]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ucnid-2011-1.c: New test.
authorJoseph Myers <joseph@codesourcery.com>
Sat, 16 Nov 2013 00:05:08 +0000 (00:05 +0000)
committerJoseph Myers <jsm28@gcc.gnu.org>
Sat, 16 Nov 2013 00:05:08 +0000 (00:05 +0000)
gcc/testsuite:
* c-c++-common/cpp/ucnid-2011-1.c: New test.

libcpp:
* ucnid.tab: Add C11 and C11NOSTART data.
* makeucnid.c (digit): Rename enum value to N99.
(C11, N11, all_languages): New enum values.
(NUM_CODE_POINTS, MAX_CODE_POINT): New macros.
(flags, decomp, combining_value): Use NUM_CODE_POINTS as array
size.
(decomp): Use unsigned int as element type.
(all_decomp): New array.
(read_ucnid): Handle C11 and C11NOSTART.  Use MAX_CODE_POINT.
(read_table): Use MAX_CODE_POINT.  Store all decompositions in
all_decomp.
(read_derived): Use MAX_CODE_POINT.
(write_table): Use NUM_CODE_POINTS.  Print N99, C11 and N11
flags.  Print whole array variable declaration rather than just
array contents.
(char_id_valid, write_context_switch): New functions.
(main): Call write_context_switch.
* ucnid.h: Regenerate.
* include/cpplib.h (struct cpp_options): Add c11_identifiers.
* init.c (struct lang_flags): Add c11_identifiers.
(cpp_set_lang): Set c11_identifiers option from selected language.
* internal.h (struct normalize_state): Document "previous" as
previous starter character.
(NORMALIZE_STATE_UPDATE_IDNUM): Take character as argument.
* charset.c (DIG): Rename enum value to N99.
(C11, N11): New enum values.
(struct ucnrange): Give name to struct.  Use short for flags and
unsigned int for end of range.  Include ucnid.h for whole variable
declaration.
(ucn_valid_in_identifier): Allow for characters up to 0x10FFFF.
Allow for C11 in determining valid characters and valid start
characters.  Use check_nfc for non-Hangul context-dependent
checks.  Only store starter characters in nst->previous.
(_cpp_valid_ucn): Pass new argument to
NORMALIZE_STATE_UPDATE_IDNUM.
* lex.c (lex_identifier): Pass new argument to
NORMALIZE_STATE_UPDATE_IDNUM.  Call NORMALIZE_STATE_UPDATE_IDNUM
after initial non-UCN part of identifier.
(lex_number): Pass new argument to NORMALIZE_STATE_UPDATE_IDNUM.

From-SVN: r204886

gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/cpp/ucnid-2011-1.c [new file with mode: 0644]
libcpp/ChangeLog
libcpp/charset.c
libcpp/include/cpplib.h
libcpp/init.c
libcpp/internal.h
libcpp/lex.c
libcpp/makeucnid.c
libcpp/ucnid.h
libcpp/ucnid.tab

index 265b8545c4c1695a0499cf035184983f1fa8a8ed..066ee011915728b24fecde3e8c4b4f5a3f90e980 100644 (file)
@@ -1,3 +1,7 @@
+2013-11-15  Joseph Myers  <joseph@codesourcery.com>
+
+       * c-c++-common/cpp/ucnid-2011-1.c: New test.
+
 2013-11-15  Paolo Carlini  <paolo.carlini@oracle.com>
 
        PR c++/58188
diff --git a/gcc/testsuite/c-c++-common/cpp/ucnid-2011-1.c b/gcc/testsuite/c-c++-common/cpp/ucnid-2011-1.c
new file mode 100644 (file)
index 0000000..e3c6d26
--- /dev/null
@@ -0,0 +1,15 @@
+/* { dg-do preprocess } */
+/* { dg-options "-std=c11 -pedantic -fextended-identifiers" { target c } } */
+/* { dg-options "-std=c++11 -pedantic -fextended-identifiers" { target c++ } } */
+
+\u00A8
+
+B\u0300
+
+\u0300 /* { dg-error "not valid at the start of an identifier" } */
+
+A\u0300 /* { dg-warning "not in NFC" } */
+
+\U00010000
+\U0001FFFD
+\U000E1234
index efbfe233c40e7a7c70705b3d1bbe2aa681105534..5e38c4b5dff2939879879db4f642a111c13c7063 100644 (file)
@@ -1,3 +1,45 @@
+2013-11-15  Joseph Myers  <joseph@codesourcery.com>
+
+       * ucnid.tab: Add C11 and C11NOSTART data.
+       * makeucnid.c (digit): Rename enum value to N99.
+       (C11, N11, all_languages): New enum values.
+       (NUM_CODE_POINTS, MAX_CODE_POINT): New macros.
+       (flags, decomp, combining_value): Use NUM_CODE_POINTS as array
+       size.
+       (decomp): Use unsigned int as element type.
+       (all_decomp): New array.
+       (read_ucnid): Handle C11 and C11NOSTART.  Use MAX_CODE_POINT.
+       (read_table): Use MAX_CODE_POINT.  Store all decompositions in
+       all_decomp.
+       (read_derived): Use MAX_CODE_POINT.
+       (write_table): Use NUM_CODE_POINTS.  Print N99, C11 and N11
+       flags.  Print whole array variable declaration rather than just
+       array contents.
+       (char_id_valid, write_context_switch): New functions.
+       (main): Call write_context_switch.
+       * ucnid.h: Regenerate.
+       * include/cpplib.h (struct cpp_options): Add c11_identifiers.
+       * init.c (struct lang_flags): Add c11_identifiers.
+       (cpp_set_lang): Set c11_identifiers option from selected language.
+       * internal.h (struct normalize_state): Document "previous" as
+       previous starter character.
+       (NORMALIZE_STATE_UPDATE_IDNUM): Take character as argument.
+       * charset.c (DIG): Rename enum value to N99.
+       (C11, N11): New enum values.
+       (struct ucnrange): Give name to struct.  Use short for flags and
+       unsigned int for end of range.  Include ucnid.h for whole variable
+       declaration.
+       (ucn_valid_in_identifier): Allow for characters up to 0x10FFFF.
+       Allow for C11 in determining valid characters and valid start
+       characters.  Use check_nfc for non-Hangul context-dependent
+       checks.  Only store starter characters in nst->previous.
+       (_cpp_valid_ucn): Pass new argument to
+       NORMALIZE_STATE_UPDATE_IDNUM.
+       * lex.c (lex_identifier): Pass new argument to
+       NORMALIZE_STATE_UPDATE_IDNUM.  Call NORMALIZE_STATE_UPDATE_IDNUM
+       after initial non-UCN part of identifier.
+       (lex_number): Pass new argument to NORMALIZE_STATE_UPDATE_IDNUM.
+
 2013-11-15  Joseph Myers  <joseph@codesourcery.com>
 
        * ucnid.tab: Mark C99 digits as [C99DIG].
index ae56c5a7cf7cd7f3d4760531e130431626422809..c48e64aa4b56c5f485e60dae08a3794a6c12fe45 100644 (file)
@@ -828,29 +828,32 @@ enum {
   /* Valid in a C99 identifier?  */
   C99 = 1,
   /* Valid in a C99 identifier, but not as the first character?  */
-  DIG = 2,
+  N99 = 2,
   /* Valid in a C++ identifier?  */
   CXX = 4,
+  /* Valid in a C11/C++11 identifier?  */
+  C11 = 8,
+  /* Valid in a C11/C++11 identifier, but not as the first character?  */
+  N11 = 16,
   /* NFC representation is not valid in an identifier?  */
-  CID = 8,
+  CID = 32,
   /* Might be valid NFC form?  */
-  NFC = 16,
+  NFC = 64,
   /* Might be valid NFKC form?  */
-  NKC = 32,
+  NKC = 128,
   /* Certain preceding characters might make it not valid NFC/NKFC form?  */
-  CTX = 64
+  CTX = 256
 };
 
-static const struct {
+struct ucnrange {
   /* Bitmap of flags above.  */
-  unsigned char flags;
+  unsigned short flags;
   /* Combining class of the character.  */
   unsigned char combine;
   /* Last character in the range described by this entry.  */
-  unsigned short end;
-} ucnranges[] = {
-#include "ucnid.h"
+  unsigned int end;
 };
+#include "ucnid.h"
 
 /* Returns 1 if C is valid in an identifier, 2 if C is valid except at
    the start of an identifier, and 0 if C is not valid in an
@@ -864,8 +867,9 @@ ucn_valid_in_identifier (cpp_reader *pfile, cppchar_t c,
                         struct normalize_state *nst)
 {
   int mn, mx, md;
+  unsigned short valid_flags, invalid_start_flags;
 
-  if (c > 0xFFFF)
+  if (c > 0x10FFFF)
     return 0;
 
   mn = 0;
@@ -881,15 +885,25 @@ ucn_valid_in_identifier (cpp_reader *pfile, cppchar_t c,
 
   /* When -pedantic, we require the character to have been listed by
      the standard for the current language.  Otherwise, we accept the
-     union of the acceptable sets for C++98 and C99.  */
-  if (! (ucnranges[mn].flags & (C99 | CXX)))
+     union of the acceptable sets for all supported language versions.  */
+  valid_flags = C99 | CXX | C11;
+  if (CPP_PEDANTIC (pfile))
+    {
+      if (CPP_OPTION (pfile, c11_identifiers))
+       valid_flags = C11;
+      else if (CPP_OPTION (pfile, c99))
+       valid_flags = C99;
+      else if (CPP_OPTION (pfile, cplusplus))
+       valid_flags = CXX;
+    }
+  if (! (ucnranges[mn].flags & valid_flags))
       return 0;
-
-  if (CPP_PEDANTIC (pfile)
-      && ((CPP_OPTION (pfile, c99) && !(ucnranges[mn].flags & C99))
-         || (CPP_OPTION (pfile, cplusplus)
-             && !(ucnranges[mn].flags & CXX))))
-    return 0;
+  if (CPP_OPTION (pfile, c11_identifiers))
+    invalid_start_flags = N11;
+  else if (CPP_OPTION (pfile, c99))
+    invalid_start_flags = N99;
+  else
+    invalid_start_flags = 0;
 
   /* Update NST.  */
   if (ucnranges[mn].combine != 0 && ucnranges[mn].combine < nst->prev_class)
@@ -899,17 +913,6 @@ ucn_valid_in_identifier (cpp_reader *pfile, cppchar_t c,
       bool safe;
       cppchar_t p = nst->previous;
 
-      /* Easy cases from Bengali, Oriya, Tamil, Jannada, and Malayalam.  */
-      if (c == 0x09BE)
-       safe = p != 0x09C7;  /* Use 09CB instead of 09C7 09BE.  */
-      else if (c == 0x0B3E)
-       safe = p != 0x0B47;  /* Use 0B4B instead of 0B47 0B3E.  */
-      else if (c == 0x0BBE)
-       safe = p != 0x0BC6 && p != 0x0BC7;  /* Use 0BCA/0BCB instead.  */
-      else if (c == 0x0CC2)
-       safe = p != 0x0CC6;  /* Use 0CCA instead of 0CC6 0CC2.  */
-      else if (c == 0x0D3E)
-       safe = p != 0x0D46 && p != 0x0D47;  /* Use 0D4A/0D4B instead.  */
       /* For Hangul, characters in the range AC00-D7A3 are NFC/NFKC,
         and are combined algorithmically from a sequence of the form
         1100-1112 1161-1175 11A8-11C2
@@ -917,20 +920,19 @@ ucn_valid_in_identifier (cpp_reader *pfile, cppchar_t c,
         really a valid character).
         Unfortunately, C99 allows (only) the NFC form, but C++ allows
         only the combining characters.  */
-      else if (c >= 0x1161 && c <= 0x1175)
+      if (c >= 0x1161 && c <= 0x1175)
        safe = p < 0x1100 || p > 0x1112;
       else if (c >= 0x11A8 && c <= 0x11C2)
        safe = (p < 0xAC00 || p > 0xD7A3 || (p - 0xAC00) % 28 != 0);
       else
+       safe = check_nfc (pfile, c, p);
+      if (!safe)
        {
-         /* Uh-oh, someone updated ucnid.h without updating this code.  */
-         cpp_error (pfile, CPP_DL_ICE, "Character %x might not be NFKC", c);
-         safe = true;
+         if ((c >= 0x1161 && c <= 0x1175) || (c >= 0x11A8 && c <= 0x11C2))
+           nst->level = MAX (nst->level, normalized_identifier_C);
+         else
+           nst->level = normalized_none;
        }
-      if (!safe && c < 0x1161)
-       nst->level = normalized_none;
-      else if (!safe)
-       nst->level = MAX (nst->level, normalized_identifier_C);
     }
   else if (ucnranges[mn].flags & NKC)
     ;
@@ -940,11 +942,13 @@ ucn_valid_in_identifier (cpp_reader *pfile, cppchar_t c,
     nst->level = MAX (nst->level, normalized_identifier_C);
   else
     nst->level = normalized_none;
-  nst->previous = c;
+  if (ucnranges[mn].combine == 0)
+    nst->previous = c;
   nst->prev_class = ucnranges[mn].combine;
 
-  /* In C99, UCN digits may not begin identifiers.  */
-  if (CPP_OPTION (pfile, c99) && (ucnranges[mn].flags & DIG))
+  /* In C99, UCN digits may not begin identifiers.  In C11 and C++11,
+     UCN combining characters may not begin identifiers.  */
+  if (ucnranges[mn].flags & invalid_start_flags)
     return 2;
 
   return 1;
@@ -1054,7 +1058,7 @@ _cpp_valid_ucn (cpp_reader *pfile, const uchar **pstr,
          CPP_OPTION (pfile, warn_dollars) = 0;
          cpp_error (pfile, CPP_DL_PEDWARN, "'$' in identifier or number");
        }
-      NORMALIZE_STATE_UPDATE_IDNUM (nst);
+      NORMALIZE_STATE_UPDATE_IDNUM (nst, result);
     }
   else if (identifier_pos)
     {
index 02927d4c6cbe826664de373a4715148609720dc2..7540e05383f35888b950df69b146d57fade4f11a 100644 (file)
@@ -437,6 +437,10 @@ struct cpp_options
      literal number suffixes as user-defined literal number suffixes.  */
   unsigned char ext_numeric_literals;
 
+  /* Nonzero means extended identifiers allow the characters specified
+     in C11 and C++11.  */
+  unsigned char c11_identifiers;
+
   /* Nonzero for C++ 2014 Standard binary constants.  */
   unsigned char binary_constants;
 
index 67444301590b503a19c3965be7e4131b990b49cc..aba295cd1bed2ba3be3a890eecc4a37159758a68 100644 (file)
@@ -77,6 +77,7 @@ struct lang_flags
   char cplusplus;
   char extended_numbers;
   char extended_identifiers;
+  char c11_identifiers;
   char std;
   char cplusplus_comments;
   char digraphs;
@@ -88,21 +89,21 @@ struct lang_flags
 };
 
 static const struct lang_flags lang_defaults[] =
-{ /*              c99 c++ xnum xid std  //   digr ulit rlit udlit bin_cst dig_sep */
-  /* GNUC89   */  { 0,  0,  1,   0,  0,   1,   1,   0,   0,   0,    0,      0 },
-  /* GNUC99   */  { 1,  0,  1,   0,  0,   1,   1,   1,   1,   0,    0,      0 },
-  /* GNUC11   */  { 1,  0,  1,   0,  0,   1,   1,   1,   1,   0,    0,      0 },
-  /* STDC89   */  { 0,  0,  0,   0,  1,   0,   0,   0,   0,   0,    0,      0 },
-  /* STDC94   */  { 0,  0,  0,   0,  1,   0,   1,   0,   0,   0,    0,      0 },
-  /* STDC99   */  { 1,  0,  1,   0,  1,   1,   1,   0,   0,   0,    0,      0 },
-  /* STDC11   */  { 1,  0,  1,   0,  1,   1,   1,   1,   0,   0,    0,      0 },
-  /* GNUCXX   */  { 0,  1,  1,   0,  0,   1,   1,   0,   0,   0,    0,      0 },
-  /* CXX98    */  { 0,  1,  1,   0,  1,   1,   1,   0,   0,   0,    0,      0 },
-  /* GNUCXX11 */  { 1,  1,  1,   0,  0,   1,   1,   1,   1,   1,    0,      0 },
-  /* CXX11    */  { 1,  1,  1,   0,  1,   1,   1,   1,   1,   1,    0,      0 },
-  /* GNUCXX1Y */  { 1,  1,  1,   0,  0,   1,   1,   1,   1,   1,    1,      1 },
-  /* CXX1Y    */  { 1,  1,  1,   0,  1,   1,   1,   1,   1,   1,    1,      1 },
-  /* ASM      */  { 0,  0,  1,   0,  0,   1,   0,   0,   0,   0,    0,      0 }
+{ /*              c99 c++ xnum xid c11 std  //   digr ulit rlit udlit bin_cst dig_sep */
+  /* GNUC89   */  { 0,  0,  1,   0,  0,  0,   1,   1,   0,   0,   0,    0,      0 },
+  /* GNUC99   */  { 1,  0,  1,   0,  0,  0,   1,   1,   1,   1,   0,    0,      0 },
+  /* GNUC11   */  { 1,  0,  1,   0,  1,  0,   1,   1,   1,   1,   0,    0,      0 },
+  /* STDC89   */  { 0,  0,  0,   0,  0,  1,   0,   0,   0,   0,   0,    0,      0 },
+  /* STDC94   */  { 0,  0,  0,   0,  0,  1,   0,   1,   0,   0,   0,    0,      0 },
+  /* STDC99   */  { 1,  0,  1,   0,  0,  1,   1,   1,   0,   0,   0,    0,      0 },
+  /* STDC11   */  { 1,  0,  1,   0,  1,  1,   1,   1,   1,   0,   0,    0,      0 },
+  /* GNUCXX   */  { 0,  1,  1,   0,  0,  0,   1,   1,   0,   0,   0,    0,      0 },
+  /* CXX98    */  { 0,  1,  1,   0,  0,  1,   1,   1,   0,   0,   0,    0,      0 },
+  /* GNUCXX11 */  { 1,  1,  1,   0,  1,  0,   1,   1,   1,   1,   1,    0,      0 },
+  /* CXX11    */  { 1,  1,  1,   0,  1,  1,   1,   1,   1,   1,   1,    0,      0 },
+  /* GNUCXX1Y */  { 1,  1,  1,   0,  1,  0,   1,   1,   1,   1,   1,    1,      1 },
+  /* CXX1Y    */  { 1,  1,  1,   0,  1,  1,   1,   1,   1,   1,   1,    1,      1 },
+  /* ASM      */  { 0,  0,  1,   0,  0,  0,   1,   0,   0,   0,   0,    0,      0 }
   /* xid should be 1 for GNUC99, STDC99, GNUCXX, CXX98, GNUCXX11, CXX11,
      GNUCXX1Y, and CXX1Y when no longer experimental (when all uses of
      identifiers in the compiler have been audited for correct handling
@@ -121,6 +122,7 @@ cpp_set_lang (cpp_reader *pfile, enum c_lang lang)
   CPP_OPTION (pfile, cplusplus)                         = l->cplusplus;
   CPP_OPTION (pfile, extended_numbers)          = l->extended_numbers;
   CPP_OPTION (pfile, extended_identifiers)      = l->extended_identifiers;
+  CPP_OPTION (pfile, c11_identifiers)           = l->c11_identifiers;
   CPP_OPTION (pfile, std)                       = l->std;
   CPP_OPTION (pfile, trigraphs)                         = l->std;
   CPP_OPTION (pfile, cplusplus_comments)        = l->cplusplus_comments;
index 6de44ed355621e994f0afee790106b1d5e7f4bca..532145824c80d0505e8d11e275ebc4ae54e499b1 100644 (file)
@@ -713,9 +713,10 @@ extern size_t _cpp_replacement_text_len (const cpp_macro *);
 
 struct normalize_state 
 {
-  /* The previous character.  */
+  /* The previous starter character.  */
   cppchar_t previous;
-  /* The combining class of the previous character.  */
+  /* The combining class of the previous character (whether or not a
+     starter).  */
   unsigned char prev_class;
   /* The lowest normalization level so far.  */
   enum cpp_normalize_level level;
@@ -723,10 +724,10 @@ struct normalize_state
 #define INITIAL_NORMALIZE_STATE { 0, 0, normalized_KC }
 #define NORMALIZE_STATE_RESULT(st) ((st)->level)
 
-/* We saw a character that matches ISIDNUM(), update a
+/* We saw a character that matches ISIDNUM(), update a
    normalize_state appropriately.  */
-#define NORMALIZE_STATE_UPDATE_IDNUM(st) \
-  ((st)->previous = 0, (st)->prev_class = 0)
+#define NORMALIZE_STATE_UPDATE_IDNUM(st, c)    \
+  ((st)->previous = (c), (st)->prev_class = 0)
 
 extern cppchar_t _cpp_valid_ucn (cpp_reader *, const unsigned char **,
                                 const unsigned char *, int,
index 95995edca336e8b237ab4e7fbd0d334634b763b6..99c2140c357af8c0bfc5dc4b2a1037380759cafc 100644 (file)
@@ -1204,11 +1204,14 @@ lex_identifier (cpp_reader *pfile, const uchar *base, bool starts_ucn,
 
   cur = pfile->buffer->cur;
   if (! starts_ucn)
-    while (ISIDNUM (*cur))
-      {
-       hash = HT_HASHSTEP (hash, *cur);
-       cur++;
-      }
+    {
+      while (ISIDNUM (*cur))
+       {
+         hash = HT_HASHSTEP (hash, *cur);
+         cur++;
+       }
+      NORMALIZE_STATE_UPDATE_IDNUM (nst, *(cur - 1));
+    }
   pfile->buffer->cur = cur;
   if (starts_ucn || forms_identifier_p (pfile, false, nst))
     {
@@ -1216,8 +1219,8 @@ lex_identifier (cpp_reader *pfile, const uchar *base, bool starts_ucn,
       do {
        while (ISIDNUM (*pfile->buffer->cur))
          {
+           NORMALIZE_STATE_UPDATE_IDNUM (nst, *pfile->buffer->cur);
            pfile->buffer->cur++;
-           NORMALIZE_STATE_UPDATE_IDNUM (nst);
          }
       } while (forms_identifier_p (pfile, false, nst));
       result = _cpp_interpret_identifier (pfile, base,
@@ -1277,8 +1280,8 @@ lex_number (cpp_reader *pfile, cpp_string *number,
       while (ISIDNUM (*cur) || *cur == '.' || DIGIT_SEP (*cur)
             || VALID_SIGN (*cur, cur[-1]))
        {
+         NORMALIZE_STATE_UPDATE_IDNUM (nst, *cur);
          cur++;
-         NORMALIZE_STATE_UPDATE_IDNUM (nst);
        }
 
       pfile->buffer->cur = cur;
index da06065595367a110974a9eddf516a7c05276ec9..2697c6b7cac8d6a1623f7861d80f3ea7f40c7ed5 100644 (file)
@@ -29,15 +29,22 @@ along with this program; see the file COPYING3.  If not see
 enum {
   C99 = 1,
   CXX = 2,
-  digit = 4,
-  not_NFC = 8,
-  not_NFKC = 16,
-  maybe_not_NFC = 32
+  N99 = 4,
+  C11 = 8,
+  N11 = 16,
+  all_languages = C99 | CXX | C11,
+  not_NFC = 32,
+  not_NFKC = 64,
+  maybe_not_NFC = 128
 };
 
-static unsigned flags[65536];
-static unsigned short decomp[65536][2];
-static unsigned char combining_value[65536];
+#define NUM_CODE_POINTS 0x110000
+#define MAX_CODE_POINT 0x10ffff
+
+static unsigned flags[NUM_CODE_POINTS];
+static unsigned int all_decomp[NUM_CODE_POINTS][2];
+static unsigned int decomp[NUM_CODE_POINTS][2];
+static unsigned char combining_value[NUM_CODE_POINTS];
 
 /* Die!  */
 
@@ -48,7 +55,7 @@ fail (const char *s)
   exit (1);
 }
 
-/* Read ucnid.tab and set the C99 and CXX flags in header[].  */
+/* Read ucnid.tab and set the flags for language versions in header[].  */
 
 static void
 read_ucnid (const char *fname)
@@ -66,10 +73,14 @@ read_ucnid (const char *fname)
        break;
       if (strcmp (line, "[C99]\n") == 0)
        fl = C99;
-      if (strcmp (line, "[C99DIG]\n") == 0)
-       fl = C99|digit;
+      else if (strcmp (line, "[C99DIG]\n") == 0)
+       fl = C99|N99;
       else if (strcmp (line, "[CXX]\n") == 0)
        fl = CXX;
+      else if (strcmp (line, "[C11]\n") == 0)
+       fl = C11;
+      else if (strcmp (line, "[C11NOSTART]\n") == 0)
+       fl = C11|N11;
       else if (isxdigit (line[0]))
        {
          char *l = line;
@@ -94,7 +105,7 @@ read_ucnid (const char *fname)
                }
              while (isspace (*l))
                l++;
-             if (end > 0xFFFF)
+             if (end > MAX_CODE_POINT)
                fail ("parsing ucnid.tab, end too large");
              while (start <= end)
                flags[start++] |= fl;
@@ -108,8 +119,10 @@ read_ucnid (const char *fname)
 
 /* Read UnicodeData.txt and fill in the 'decomp' table to be the
    decompositions of characters for which both the character
-   decomposed and all the code points in the decomposition are either
-   C99 or CXX.  */
+   decomposed and all the code points in the decomposition are valid
+   for some supported language version, and the 'all_decomp' table to
+   be the decompositions of all characters without those
+   constraints.  */
 
 static void
 read_table (char *fname)
@@ -123,7 +136,7 @@ read_table (char *fname)
       char line[256];
       unsigned long codepoint, this_decomp[4];
       char *l;
-      int i;
+      int i, j;
       int decomp_useful;
 
       if (!fgets (line, sizeof (line), f))
@@ -131,8 +144,8 @@ read_table (char *fname)
       codepoint = strtoul (line, &l, 16);
       if (l == line || *l != ';')
        fail ("parsing UnicodeData.txt, reading code point");
-      if (codepoint > 0xffff || ! (flags[codepoint] & (C99 | CXX)))
-       continue;
+      if (codepoint > MAX_CODE_POINT)
+       fail ("parsing UnicodeData.txt, code point too large");
 
       do {
        l++;
@@ -171,7 +184,9 @@ read_table (char *fname)
        }
       if (i > 2)  /* Decomposition too long.  */
        fail ("parsing UnicodeData.txt, decomposition too long");
-      if (decomp_useful)
+      for (j = 0; j < i; j++)
+       all_decomp[codepoint][j] = this_decomp[j];
+      if ((flags[codepoint] & all_languages) && decomp_useful)
        while (--i >= 0)
          decomp[codepoint][i] = this_decomp[i];
     }
@@ -208,8 +223,8 @@ read_derived (const char *fname)
       start = strtoul (line, &l, 16);
       if (l == line)
        fail ("parsing DerivedNormalizationProps.txt, reading start");
-      if (start > 0xffff)
-       continue;
+      if (start > MAX_CODE_POINT)
+       fail ("parsing DerivedNormalizationProps.txt, code point too large");
       if (*l == '.' && l[1] == '.')
        end = strtoul (l + 2, &l, 16);
       else
@@ -237,17 +252,21 @@ write_table (void)
   unsigned last_flag = flags[0];
   bool really_safe = decomp[0][0] == 0;
   unsigned char last_combine = combining_value[0];
+
+  printf ("static const struct ucnrange ucnranges[] = {\n");
   
-  for (i = 1; i <= 65536; i++)
-    if (i == 65536
-       || (flags[i] != last_flag && ((flags[i] | last_flag) & (C99 | CXX)))
+  for (i = 1; i <= NUM_CODE_POINTS; i++)
+    if (i == NUM_CODE_POINTS
+       || (flags[i] != last_flag && ((flags[i] | last_flag) & all_languages))
        || really_safe != (decomp[i][0] == 0)
        || combining_value[i] != last_combine)
       {
-       printf ("{ %s|%s|%s|%s|%s|%s|%s, %3d, %#06x },\n",
+       printf ("{ %s|%s|%s|%s|%s|%s|%s|%s|%s, %3d, %#06x },\n",
                last_flag & C99 ? "C99" : "  0",
-               last_flag & digit ? "DIG" : "  0",
+               last_flag & N99 ? "N99" : "  0",
                last_flag & CXX ? "CXX" : "  0",
+               last_flag & C11 ? "C11" : "  0",
+               last_flag & N11 ? "N11" : "  0",
                really_safe ? "CID" : "  0",
                last_flag & not_NFC ? "  0" : "NFC",
                last_flag & not_NFKC ? "  0" : "NKC",
@@ -258,6 +277,98 @@ write_table (void)
        last_combine = combining_value[0];
        really_safe = decomp[i][0] == 0;
       }
+
+  printf ("};\n");
+}
+
+/* Return whether a given character is valid in an identifier for some
+   supported language, either as itself or as a UCN.  */
+
+static bool
+char_id_valid (unsigned int c)
+{
+  return ((flags[c] & all_languages)
+         || (c == 0x24)
+         || (c >= 0x30 && c <= 0x39)
+         || (c >= 0x41 && c <= 0x5a)
+         || (c >= 0x61 && c <= 0x7a));
+}
+
+/* Write out the switch statement over characters for which it is
+   context-dependent whether they are in NFC.  */
+
+static void
+write_context_switch (void)
+{
+  unsigned i;
+  printf ("static bool\n"
+         "check_nfc (cpp_reader *pfile, cppchar_t c, cppchar_t p)\n"
+         "{\n"
+         "  switch (c)\n"
+         "    {\n");
+  for (i = 0; i < NUM_CODE_POINTS; i++)
+    {
+      bool found_case = false;
+      unsigned j;
+      if (!(flags[i] & all_languages) || !(flags[i] & maybe_not_NFC))
+       continue;
+      if ((i >= 0x1161 && i <= 0x1175) || (i >= 0x11A8 && i <= 0x11C2))
+       continue; /* Hangul handled algorithmically.  */
+      printf ("    case %#06x:\n"
+             "      switch (p)\n"
+             "\t{\n", i);
+      /* If an NFC starter character decomposes with this character I
+        as the second character and an NFC starter character S as the
+        first character, that latter character as a previous
+        character means this character is not NFC.  Furthermore, any
+        NFC starter character K made by a series of compositions of S
+        with combining characters whose combining class is greater
+        than that of I also means this character is not NFC.  */
+      for (j = 0; j < NUM_CODE_POINTS; j++)
+       {
+         unsigned s, k;
+         if (all_decomp[j][1] != i)
+           continue;
+         s = all_decomp[j][0];
+         if (combining_value[s] != 0 || (flags[s] & not_NFC) != 0)
+           continue;
+         if (char_id_valid (s))
+           {
+             found_case = true;
+             printf ("\tcase %#06x:\n", s);
+           }
+         for (k = 0; k < NUM_CODE_POINTS; k++)
+           {
+             unsigned t = k;
+             if (k == s || !char_id_valid (k))
+               continue;
+             while (all_decomp[t][1] != 0
+                    && combining_value[all_decomp[t][1]] > combining_value[i])
+               {
+                 if (combining_value[t] != 0 || (flags[t] & not_NFC) != 0)
+                   break;
+                 t = all_decomp[t][0];
+               }
+             if (t == s)
+               {
+                 found_case = true;
+                 printf ("\tcase %#06x:\n", k);
+               }
+           }
+       }
+      if (found_case)
+       printf ("\t  return false;\n");
+      else
+       printf ("\t/* Non-NFC cases not applicable to C/C++.  */\n");
+      printf ("\tdefault:\n"
+             "\t  return true;\n"
+             "\t}\n\n");
+    }
+  printf ("    default:\n"
+         "      cpp_error (pfile, CPP_DL_ICE, \"Character %%x might not be NFKC\", c);\n"
+         "      return true;\n"
+         "  }\n"
+         "}\n");
 }
 
 /* Print out the huge copyright notice.  */
@@ -336,5 +447,6 @@ main(int argc, char ** argv)
 
   write_copyright ();
   write_table ();
+  write_context_switch ();
   return 0;
 }
index d049cc70b9ed412b48a6b7c2d7139f9697c0ecd5..352e95cb206aa9d83c4e3360aedeefc17bd8fd92 100644 (file)
    use or other dealings in these Data Files or Software without prior
    written authorization of the copyright holder.  */
 
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x00a9 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x00aa },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x00b4 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x00b5 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x00b6 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x00b7 },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x00b9 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x00ba },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x00bf },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x00d6 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x00d7 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x00f6 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x00f7 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0131 },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x0133 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x013e },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x0140 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0148 },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x0149 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x017e },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x017f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x01c3 },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x01cc },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x01f0 },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x01f3 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x01f5 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x01f9 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0217 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x024f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x02a8 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x02af },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x02b8 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x02ba },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x02bb },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x02bc },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x02c1 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x02cf },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x02d1 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x02df },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x02e4 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0379 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x037a },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0383 },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0x0384 },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x0385 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0386 },
-{   0|  0|  0|CID|  0|  0|  0,   0, 0x0387 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x038a },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x038b },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x038c },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x038d },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x03a1 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x03a2 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x03ce },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x03cf },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x03d6 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x03d9 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x03da },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x03db },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x03dc },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x03dd },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x03de },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x03df },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x03e0 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x03e1 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x03ef },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x03f2 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x03f3 },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x0400 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x040c },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0x040d },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x040e },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x044f },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0450 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x045c },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x045d },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0481 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x048f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x04c4 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x04c6 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x04c8 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x04ca },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x04cc },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x04cf },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x04eb },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x04ed },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x04f5 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x04f7 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x04f9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0530 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0556 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0558 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0559 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0560 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0586 },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x0587 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x05af },
-{ C99|  0|  0|CID|NFC|NKC|  0,  10, 0x05b0 },
-{ C99|  0|  0|CID|NFC|NKC|  0,  11, 0x05b1 },
-{ C99|  0|  0|CID|NFC|NKC|  0,  12, 0x05b2 },
-{ C99|  0|  0|CID|NFC|NKC|  0,  13, 0x05b3 },
-{ C99|  0|  0|CID|NFC|NKC|  0,  14, 0x05b4 },
-{ C99|  0|  0|CID|NFC|NKC|  0,  15, 0x05b5 },
-{ C99|  0|  0|CID|NFC|NKC|  0,  16, 0x05b6 },
-{ C99|  0|  0|CID|NFC|NKC|  0,  17, 0x05b7 },
-{ C99|  0|  0|CID|NFC|NKC|  0,  18, 0x05b8 },
-{ C99|  0|  0|CID|NFC|NKC|  0,  19, 0x05b9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x05ba },
-{ C99|  0|  0|CID|NFC|NKC|  0,  20, 0x05bb },
-{ C99|  0|  0|CID|NFC|NKC|  0,  21, 0x05bc },
-{ C99|  0|  0|CID|NFC|NKC|  0,  22, 0x05bd },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x05be },
-{ C99|  0|  0|CID|NFC|NKC|  0,  23, 0x05bf },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x05c0 },
-{ C99|  0|  0|CID|NFC|NKC|  0,  24, 0x05c1 },
-{ C99|  0|  0|CID|NFC|NKC|  0,  25, 0x05c2 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x05cf },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x05ea },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x05ef },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x05f2 },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0x05f4 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0620 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x063a },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x063f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x064a },
-{ C99|  0|CXX|CID|NFC|NKC|  0,  27, 0x064b },
-{ C99|  0|CXX|CID|NFC|NKC|  0,  28, 0x064c },
-{ C99|  0|CXX|CID|NFC|NKC|  0,  29, 0x064d },
-{ C99|  0|CXX|CID|NFC|NKC|  0,  30, 0x064e },
-{ C99|  0|CXX|CID|NFC|NKC|  0,  31, 0x064f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,  32, 0x0650 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,  33, 0x0651 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,  34, 0x0652 },
-{   0|  0|  0|CID|NFC|NKC|CTX,   0, 0x065f },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x0669 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x066f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0674 },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x0678 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x06b7 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x06b9 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x06be },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x06bf },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x06ce },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x06cf },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x06d5 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x06d6 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x06d7 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x06d8 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x06d9 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x06da },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x06db },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x06dc },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x06e4 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x06e6 },
-{ C99|  0|CXX|CID|NFC|NKC|  0, 230, 0x06e7 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x06e8 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x06e9 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 220, 0x06ea },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x06eb },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x06ec },
-{ C99|  0|  0|CID|NFC|NKC|  0, 220, 0x06ed },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x06ef },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x06f9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0900 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0903 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0904 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0939 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x093c },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x094c },
-{ C99|  0|  0|CID|NFC|NKC|  0,   9, 0x094d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x094f },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0950 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x0951 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 220, 0x0952 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0957 },
-{ C99|  0|CXX|CID|  0|  0|  0,   0, 0x095f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0962 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0963 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0965 },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x096f },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0980 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0983 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0984 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x098c },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x098e },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0990 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0992 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x09a8 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x09a9 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x09b0 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x09b1 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x09b2 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x09b5 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x09b9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x09bd },
-{ C99|  0|  0|CID|NFC|NKC|CTX,   0, 0x09be },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x09c4 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x09c6 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x09c8 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x09ca },
-{ C99|  0|  0|  0|NFC|NKC|  0,   0, 0x09cb },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x09cc },
-{ C99|  0|  0|CID|NFC|NKC|  0,   9, 0x09cd },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x09db },
-{ C99|  0|CXX|CID|  0|  0|  0,   0, 0x09dd },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x09de },
-{ C99|  0|CXX|CID|  0|  0|  0,   0, 0x09df },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x09e1 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x09e3 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x09e5 },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x09ef },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x09f1 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a01 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0a02 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a04 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0a0a },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a0e },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0a10 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a12 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0a28 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a29 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0a30 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a31 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0a32 },
-{ C99|  0|CXX|CID|  0|  0|  0,   0, 0x0a33 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a34 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0a35 },
-{ C99|  0|CXX|CID|  0|  0|  0,   0, 0x0a36 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a37 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0a39 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a3d },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0a42 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a46 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0a48 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a4a },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0a4c },
-{ C99|  0|  0|CID|NFC|NKC|  0,   9, 0x0a4d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a58 },
-{ C99|  0|CXX|CID|  0|  0|  0,   0, 0x0a5b },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0a5c },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a5d },
-{ C99|  0|CXX|CID|  0|  0|  0,   0, 0x0a5e },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a65 },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x0a6f },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a73 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0a74 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a80 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0a83 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a84 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0a8b },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a8c },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0a8d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a8e },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0a91 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a92 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0aa8 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0aa9 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ab0 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ab1 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ab3 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ab4 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ab9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0abc },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0ac5 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ac6 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0ac9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0aca },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0acc },
-{ C99|  0|  0|CID|NFC|NKC|  0,   9, 0x0acd },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0acf },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0ad0 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0adf },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ae0 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ae5 },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x0aef },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b00 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0b03 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b04 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b0c },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b0e },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b10 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b12 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b28 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b29 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b30 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b31 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b33 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b35 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b39 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b3c },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0b3d },
-{ C99|  0|  0|CID|NFC|NKC|CTX,   0, 0x0b3e },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0b43 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b46 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0b48 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b4a },
-{ C99|  0|  0|  0|NFC|NKC|  0,   0, 0x0b4b },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0b4c },
-{ C99|  0|  0|CID|NFC|NKC|  0,   9, 0x0b4d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b5b },
-{ C99|  0|CXX|CID|  0|  0|  0,   0, 0x0b5d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b5e },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b61 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b65 },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x0b6f },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b81 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0b83 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b84 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b8a },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b8d },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b90 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b91 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b95 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b98 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b9a },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b9b },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b9c },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b9d },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b9f },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ba2 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ba4 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ba7 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0baa },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0bad },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0bb5 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0bb6 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0bb9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0bbd },
-{ C99|  0|  0|CID|NFC|NKC|CTX,   0, 0x0bbe },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0bc2 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0bc5 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0bc8 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0bc9 },
-{ C99|  0|  0|  0|NFC|NKC|  0,   0, 0x0bcb },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0bcc },
-{ C99|  0|  0|CID|NFC|NKC|  0,   9, 0x0bcd },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0be6 },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x0bef },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c00 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0c03 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c04 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0c0c },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c0d },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0c10 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c11 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0c28 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c29 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0c33 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c34 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0c39 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c3d },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0c44 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c45 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0c48 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c49 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0c4c },
-{ C99|  0|  0|CID|NFC|NKC|  0,   9, 0x0c4d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c5f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0c61 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c65 },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x0c6f },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c81 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0c83 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c84 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0c8c },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c8d },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0c90 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c91 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ca8 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ca9 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0cb3 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0cb4 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0cb9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0cbd },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0cc1 },
-{ C99|  0|  0|CID|NFC|NKC|CTX,   0, 0x0cc2 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0cc4 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0cc5 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0cc8 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0cc9 },
-{ C99|  0|  0|  0|NFC|NKC|  0,   0, 0x0cca },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0ccc },
-{ C99|  0|  0|CID|NFC|NKC|  0,   9, 0x0ccd },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0cdd },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0cde },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0cdf },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ce1 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ce5 },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x0cef },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0d01 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0d03 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0d04 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0d0c },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0d0d },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0d10 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0d11 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0d28 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0d29 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0d39 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0d3d },
-{ C99|  0|  0|CID|NFC|NKC|CTX,   0, 0x0d3e },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0d43 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0d45 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0d48 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0d49 },
-{ C99|  0|  0|  0|NFC|NKC|  0,   0, 0x0d4b },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0d4c },
-{ C99|  0|  0|CID|NFC|NKC|  0,   9, 0x0d4d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0d5f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0d61 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0d65 },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x0d6f },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0e00 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0e30 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0e31 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0e32 },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x0e33 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0e37 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 103, 0x0e38 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 103, 0x0e39 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   9, 0x0e3a },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0e3f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0e46 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0e47 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 107, 0x0e48 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 107, 0x0e49 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0e4e },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0x0e4f },
-{ C99|DIG|CXX|CID|NFC|NKC|  0,   0, 0x0e59 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0e5b },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0e80 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0e82 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0e83 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0e84 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0e86 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0e88 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0e89 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0e8a },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0e8c },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0e8d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0e93 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0e97 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0e98 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0e9f },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ea0 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ea3 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ea4 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ea5 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ea6 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ea7 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ea9 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0eab },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0eac },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0eae },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0x0eaf },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0eb0 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0eb1 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0eb2 },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x0eb3 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0eb7 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 118, 0x0eb8 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 118, 0x0eb9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0eba },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0ebc },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ebd },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ebf },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ec4 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ec5 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ec6 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ec7 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 122, 0x0ec8 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 122, 0x0ec9 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 122, 0x0eca },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0ecd },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ecf },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x0ed9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0edb },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x0edd },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0eff },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f00 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0f17 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 220, 0x0f18 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 220, 0x0f19 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0f1f },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x0f33 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0f34 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 220, 0x0f35 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0f36 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 220, 0x0f37 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0f38 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 216, 0x0f39 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0f3d },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f42 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0f43 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f47 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0f48 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f4c },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0f4d },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f51 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0f52 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f56 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0f57 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f5b },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0f5c },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f68 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0f69 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0f70 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 129, 0x0f71 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 130, 0x0f72 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0f73 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 132, 0x0f74 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0f76 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x0f77 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0f78 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x0f79 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 130, 0x0f7a },
-{ C99|  0|  0|CID|NFC|NKC|  0, 130, 0x0f7b },
-{ C99|  0|  0|CID|NFC|NKC|  0, 130, 0x0f7c },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f7f },
-{ C99|  0|  0|CID|NFC|NKC|  0, 130, 0x0f80 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0f81 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x0f82 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x0f83 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   9, 0x0f84 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0f85 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x0f86 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f8b },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0f8f },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f92 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0f93 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f95 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0f96 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f97 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0f98 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f9c },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0f9d },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0fa1 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0fa2 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0fa6 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0fa7 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0fab },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0fac },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0fad },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0fb0 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0fb7 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0fb8 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0fb9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x109f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x10c5 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x10cf },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x10f6 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x10ff },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0x1159 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1160 },
-{   0|  0|CXX|CID|NFC|NKC|CTX,   0, 0x1175 },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0x11a2 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x11a7 },
-{   0|  0|CXX|CID|NFC|NKC|CTX,   0, 0x11c2 },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0x11f9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1dff },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1e99 },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x1e9a },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x1e9b },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1e9f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1ef9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1eff },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f15 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1f17 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f1d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1f1f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f45 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1f47 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f4d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1f4f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f57 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1f58 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f59 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1f5a },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f5b },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1f5c },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f5d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1f5e },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f70 },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1f71 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f72 },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1f73 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f74 },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1f75 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f76 },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1f77 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f78 },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1f79 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f7a },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1f7b },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f7c },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1f7d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1f7f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1fb4 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1fb5 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1fba },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1fbb },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1fbc },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x1fbd },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x1fbe },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x1fc1 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1fc4 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1fc5 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1fc8 },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1fc9 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1fca },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1fcb },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1fcc },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x1fcf },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1fd2 },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1fd3 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1fd5 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1fda },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1fdb },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1fdf },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1fe2 },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1fe3 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1fea },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1feb },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1fec },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x1ff1 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1ff4 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1ff5 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1ff8 },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1ff9 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1ffa },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1ffb },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1ffc },
-{   0|  0|  0|CID|  0|  0|  0,   0, 0x203e },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x2040 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x207e },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x207f },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x2101 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x2102 },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x2106 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x2107 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x2109 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x2113 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x2114 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x2115 },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x2117 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x2118 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x211d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x2123 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x2124 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x2125 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x2126 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x2127 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x2128 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x2129 },
-{ C99|  0|  0|CID|  0|  0|  0,   0, 0x212a },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x212b },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x212d },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x212e },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x2131 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x2132 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x2138 },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x215f },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x217f },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x2182 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x3004 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x3007 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x3020 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x3029 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x3040 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x3093 },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0x3094 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x309a },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x309c },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0x309e },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x30a0 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x30f6 },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0x30fa },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x30fc },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0x30fe },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x3104 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x312c },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x4dff },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x9fa5 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xabff },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0xd7a3 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xf8ff },
-{   0|  0|CXX|  0|  0|  0|  0,   0, 0xfa0d },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0xfa0f },
-{   0|  0|CXX|  0|  0|  0|  0,   0, 0xfa10 },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0xfa11 },
-{   0|  0|CXX|  0|  0|  0|  0,   0, 0xfa12 },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0xfa14 },
-{   0|  0|CXX|  0|  0|  0|  0,   0, 0xfa1e },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0xfa1f },
-{   0|  0|CXX|  0|  0|  0|  0,   0, 0xfa20 },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0xfa21 },
-{   0|  0|CXX|  0|  0|  0|  0,   0, 0xfa22 },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0xfa24 },
-{   0|  0|CXX|  0|  0|  0|  0,   0, 0xfa26 },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0xfa29 },
-{   0|  0|CXX|  0|  0|  0|  0,   0, 0xfa2d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xfb1e },
-{   0|  0|CXX|CID|  0|  0|  0,   0, 0xfb1f },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xfb29 },
-{   0|  0|CXX|CID|  0|  0|  0,   0, 0xfb36 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xfb37 },
-{   0|  0|CXX|CID|  0|  0|  0,   0, 0xfb3c },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xfb3d },
-{   0|  0|CXX|CID|  0|  0|  0,   0, 0xfb3e },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xfb3f },
-{   0|  0|CXX|CID|  0|  0|  0,   0, 0xfb41 },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0xfb42 },
-{   0|  0|CXX|CID|  0|  0|  0,   0, 0xfb44 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xfb45 },
-{   0|  0|CXX|CID|  0|  0|  0,   0, 0xfb4e },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xfbb1 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xfbd2 },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xfd3d },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0xfd3f },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xfd4f },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xfd8f },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xfd91 },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xfdc7 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xfdef },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xfdfb },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0xfe6f },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xfe72 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xfe73 },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xfe74 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xfe75 },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xfefc },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xff20 },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xff3a },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0xff40 },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xff5a },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0xff65 },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xffbe },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xffc1 },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xffc7 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xffc9 },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xffcf },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xffd1 },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xffd7 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xffd9 },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xffdc },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xffff },
+static const struct ucnrange ucnranges[] = {
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x00a7 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x00a8 },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x00a9 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x00aa },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x00ac },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x00ad },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x00ae },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x00af },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x00b1 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x00b4 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x00b5 },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x00b6 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x00b7 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x00b9 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x00ba },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x00bb },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x00be },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x00bf },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x00d6 },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x00d7 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x00f6 },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x00f7 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0131 },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x0133 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x013e },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x0140 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0148 },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x0149 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x017e },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x017f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x01c3 },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x01cc },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x01d4 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x01dc },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x01dd },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x01e3 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x01eb },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x01ef },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x01f0 },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x01f3 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x01f5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x01f9 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x01ff },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0217 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0229 },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x022d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x022f },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0231 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x024f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x02a8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x02af },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x02b8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x02ba },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x02bb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x02bc },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x02c1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x02cf },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x02d1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x02d7 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x02dd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x02df },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x02e4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x02ff },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0300 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0301 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0302 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0303 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0304 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0305 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0306 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0307 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0308 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0309 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x030a },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x030b },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x030c },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x030d },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x030e },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x030f },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0310 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0311 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0312 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0313 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0314 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 232, 0x0315 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0316 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0317 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0318 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0319 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 232, 0x031a },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 216, 0x031b },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x031c },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x031d },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x031e },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x031f },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0320 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 202, 0x0321 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 202, 0x0322 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 220, 0x0323 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 220, 0x0324 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 220, 0x0325 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 220, 0x0326 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 202, 0x0327 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 202, 0x0328 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0329 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x032a },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x032b },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x032c },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 220, 0x032d },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 220, 0x032e },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x032f },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 220, 0x0330 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 220, 0x0331 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0332 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0333 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x0334 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x0335 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x0336 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x0337 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX,   1, 0x0338 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0339 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x033a },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x033b },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x033c },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x033d },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x033e },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x033f },
+{   0|  0|  0|C11|N11|  0|  0|  0|  0, 230, 0x0340 },
+{   0|  0|  0|C11|N11|  0|  0|  0|  0, 230, 0x0341 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0342 },
+{   0|  0|  0|C11|N11|  0|  0|  0|  0, 230, 0x0343 },
+{   0|  0|  0|C11|N11|  0|  0|  0|  0, 230, 0x0344 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 240, 0x0345 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0346 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0347 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0348 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0349 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x034a },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x034b },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x034c },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x034d },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   0, 0x034f },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0350 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0351 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0352 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0353 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0354 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0355 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0356 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0357 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 232, 0x0358 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0359 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x035a },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x035b },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 233, 0x035c },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 234, 0x035d },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 234, 0x035e },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 233, 0x035f },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 234, 0x0360 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 234, 0x0361 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 233, 0x0362 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0363 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0364 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0365 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0366 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0367 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0368 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0369 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x036a },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x036b },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x036c },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x036d },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x036e },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x036f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0373 },
+{   0|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0374 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0379 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x037a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x037d },
+{   0|  0|  0|C11|  0|CID|  0|  0|  0,   0, 0x037e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0383 },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x0384 },
+{   0|  0|  0|C11|  0|  0|NFC|  0|  0,   0, 0x0385 },
+{ C99|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0386 },
+{   0|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0387 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x038a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x038b },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x038c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x038d },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0390 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x03a1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x03a2 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x03a9 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x03b0 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x03c9 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x03ce },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x03cf },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x03d2 },
+{ C99|  0|CXX|C11|  0|  0|NFC|  0|  0,   0, 0x03d4 },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x03d6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x03d9 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x03da },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x03db },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x03dc },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x03dd },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x03de },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x03df },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x03e0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x03e1 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x03ef },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x03f2 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x03f3 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x03f5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x03f8 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x03f9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x03ff },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0400 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0401 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0402 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0403 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0406 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0407 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x040b },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x040c },
+{   0|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x040d },
+{ C99|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x040e },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0418 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0419 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0438 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0439 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x044f },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0450 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0451 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0452 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0453 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0456 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0457 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x045b },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x045c },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x045d },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x045e },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0475 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0477 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0481 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0482 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0483 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0484 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0485 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0486 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x048f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x04c0 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x04c2 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x04c4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x04c6 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x04c8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x04ca },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x04cc },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x04cf },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x04d3 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x04d5 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x04d7 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x04d9 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x04df },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x04e1 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x04e7 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x04e9 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x04eb },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x04ed },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x04f5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x04f7 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x04f9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0530 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0556 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0558 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0559 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0560 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0586 },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x0587 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0590 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0591 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0592 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0593 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0594 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0595 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0596 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0597 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0598 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0599 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 222, 0x059a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x059b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x059c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x059d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x059e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x059f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x05a0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x05a1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x05a2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x05a3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x05a4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x05a5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x05a6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x05a7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x05a8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x05a9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x05aa },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x05ab },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x05ac },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 222, 0x05ad },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 228, 0x05ae },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x05af },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  10, 0x05b0 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  11, 0x05b1 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  12, 0x05b2 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  13, 0x05b3 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  14, 0x05b4 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  15, 0x05b5 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  16, 0x05b6 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  17, 0x05b7 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  18, 0x05b8 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  19, 0x05b9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,  19, 0x05ba },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  20, 0x05bb },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  21, 0x05bc },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  22, 0x05bd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x05be },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  23, 0x05bf },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x05c0 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  24, 0x05c1 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  25, 0x05c2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x05c3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x05c4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x05c6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x05cf },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x05ea },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x05ef },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x05f2 },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x05f4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x060f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0610 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0611 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0612 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0613 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0614 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0615 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0616 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0617 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,  30, 0x0618 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,  31, 0x0619 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0620 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0621 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0626 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x063a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x063f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x064a },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,  27, 0x064b },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,  28, 0x064c },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,  29, 0x064d },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,  30, 0x064e },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,  31, 0x064f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,  32, 0x0650 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,  33, 0x0651 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,  34, 0x0652 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX, 230, 0x0653 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX, 230, 0x0654 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX, 220, 0x0655 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0656 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0657 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0658 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0659 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x065a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x065b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x065c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x065d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x065e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x065f },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0669 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x066f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0674 },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x0678 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x06b7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x06b9 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x06be },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x06bf },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x06c0 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x06c1 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x06c2 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x06ce },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x06cf },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x06d2 },
+{ C99|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x06d3 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x06d5 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06d6 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06d7 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06d8 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06d9 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06da },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06db },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06dc },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x06de },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06df },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06e0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06e1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06e2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x06e3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06e4 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x06e6 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0, 230, 0x06e7 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06e8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x06e9 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x06ea },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06eb },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06ec },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x06ed },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x06ef },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x06f9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0710 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x072f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0730 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0731 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0732 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0733 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0734 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0735 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0736 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0737 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0738 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0739 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x073a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x073b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x073c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x073d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x073e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x073f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0740 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0741 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0742 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0743 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0744 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0745 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0746 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0747 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0748 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0749 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x07ea },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x07eb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x07ec },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x07ed },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x07ee },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x07ef },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x07f0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x07f1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x07f2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0815 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0816 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0817 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0818 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x081a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x081b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x081c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x081d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x081e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x081f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0820 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0821 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0822 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0824 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0825 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0826 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0828 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0829 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x082a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x082b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x082c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0858 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0859 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x085a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x08e3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08e4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08e5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x08e6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08e7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08e8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x08e9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08ea },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08eb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08ec },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x08ed },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x08ee },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x08ef },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,  27, 0x08f0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,  28, 0x08f1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,  29, 0x08f2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08f3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08f4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08f5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x08f6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08f7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08f8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x08f9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x08fa },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08fb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08fc },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08fd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0900 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0903 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0904 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0928 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0929 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0930 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0931 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0933 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0934 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0939 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x093b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   7, 0x093c },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x094c },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x094d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x094f },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0950 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0951 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0952 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0953 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0957 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x095f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0962 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0963 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0965 },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x096f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0980 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0983 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0984 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x098c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x098e },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0990 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0992 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x09a8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09a9 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x09b0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09b1 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x09b2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09b5 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x09b9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09bb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09bd },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x09be },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09c4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09c6 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09c8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09ca },
+{ C99|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x09cc },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x09cd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09d6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x09d7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09db },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x09dd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09de },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x09df },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x09e1 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09e3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09e5 },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09ef },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x09f1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a01 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a02 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a04 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0a0a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a0e },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0a10 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a12 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0a28 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a29 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0a30 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a31 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0a32 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x0a33 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a34 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0a35 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x0a36 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a37 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0a39 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a3b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a3d },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a42 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a46 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a48 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a4a },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a4c },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x0a4d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a58 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x0a5b },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0a5c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a5d },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x0a5e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a65 },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a6f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a73 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a74 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a80 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a83 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a84 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0a8b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a8c },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0a8d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a8e },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0a91 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a92 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0aa8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0aa9 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ab0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ab1 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ab3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ab4 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ab9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0abb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   7, 0x0abc },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ac5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ac6 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ac9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0aca },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0acc },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x0acd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0acf },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ad0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0adf },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ae0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ae5 },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0aef },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b00 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b03 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b04 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b0c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b0e },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b10 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b12 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b28 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b29 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b30 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b31 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b33 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b35 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b39 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b3b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   7, 0x0b3c },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b3d },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x0b3e },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b43 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b46 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b47 },
+{ C99|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0b48 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b4a },
+{ C99|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0b4c },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x0b4d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b55 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x0b57 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b5b },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x0b5d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b5e },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b61 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b65 },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b6f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b81 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b83 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b84 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b8a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b8d },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b90 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b91 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b93 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0b94 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b95 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b98 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b9a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b9b },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b9c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b9d },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b9f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ba2 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ba4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ba7 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0baa },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0bad },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0bb5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0bb6 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0bb9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0bbd },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x0bbe },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0bc2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0bc5 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0bc8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0bc9 },
+{ C99|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0bcc },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x0bcd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0bd6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x0bd7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0be6 },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0bef },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c00 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c03 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c04 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0c0c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c0d },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0c10 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c11 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0c28 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c29 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0c33 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c34 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0c39 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c3d },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c44 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c45 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c47 },
+{ C99|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0c48 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c49 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c4c },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x0c4d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c54 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,  84, 0x0c55 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,  91, 0x0c56 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c5f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0c61 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c65 },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c6f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c81 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c83 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c84 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0c8c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c8d },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0c90 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c91 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ca8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ca9 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0cb3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cb4 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0cb9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cbb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cbd },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cbf },
+{ C99|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0cc0 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cc1 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x0cc2 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cc4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cc5 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cc6 },
+{ C99|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0cc8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cc9 },
+{ C99|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0ccb },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ccc },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x0ccd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cd4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x0cd6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cdd },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cde },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cdf },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ce1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ce5 },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cef },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d01 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d03 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d04 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0d0c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d0d },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0d10 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d11 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0d28 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d29 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0d39 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d3d },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x0d3e },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d43 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d45 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d48 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d49 },
+{ C99|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0d4c },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x0d4d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d56 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x0d57 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d5f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0d61 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d65 },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d6f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0dc9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   9, 0x0dca },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0dce },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x0dcf },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0dd9 },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0dda },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ddb },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0dde },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x0ddf },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e00 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e30 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e31 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e32 },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x0e33 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e37 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 103, 0x0e38 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 103, 0x0e39 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x0e3a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e3f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e46 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e47 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 107, 0x0e48 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 107, 0x0e49 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 107, 0x0e4a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e4e },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e4f },
+{ C99|N99|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e59 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e5b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e80 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e82 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e83 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e84 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e86 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e88 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e89 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e8a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e8c },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e8d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e93 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e97 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e98 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e9f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ea0 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ea3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ea4 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ea5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ea6 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ea7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ea9 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0eab },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0eac },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0eae },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0eaf },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0eb0 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0eb1 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0eb2 },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x0eb3 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0eb7 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 118, 0x0eb8 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 118, 0x0eb9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0eba },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ebc },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ebd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ebf },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ec4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ec5 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ec6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ec7 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 122, 0x0ec8 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 122, 0x0ec9 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 122, 0x0eca },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ecd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ecf },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ed9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0edb },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x0edd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0eff },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f00 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f0b },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x0f0c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f17 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0f18 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0f19 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f1f },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f33 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f34 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0f35 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f36 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0f37 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f38 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 216, 0x0f39 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f3d },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f42 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0f43 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f47 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f48 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f4c },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0f4d },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f51 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0f52 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f56 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0f57 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f5b },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0f5c },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f68 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0f69 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f70 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 129, 0x0f71 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 130, 0x0f72 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0f73 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 132, 0x0f74 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0f76 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x0f77 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0f78 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x0f79 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 130, 0x0f7a },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 130, 0x0f7b },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 130, 0x0f7c },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f7f },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 130, 0x0f80 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0f81 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0f82 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0f83 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x0f84 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f85 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0f86 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f8b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f8f },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f92 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0f93 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f95 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f96 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f97 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f98 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f9c },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0f9d },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0fa1 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0fa2 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0fa6 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0fa7 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0fab },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0fac },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0fad },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0fb0 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0fb7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0fb8 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0fb9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0fc5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1025 },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1026 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x102d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x102e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1036 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1038 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x1039 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x108c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x109f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x10c5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x10cf },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x10f6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x10fb },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x10fc },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x10ff },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1159 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1160 },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|CTX,   0, 0x1175 },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x11a2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x11a7 },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|CTX,   0, 0x11c2 },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x11f9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x135c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x135d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x135e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x167f },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x1680 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1713 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1733 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x17d1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x17dc },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x180d },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x180e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x18a8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1938 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 222, 0x1939 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x193a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1a16 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1a17 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1a5f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1a74 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1a75 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1a76 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1a77 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1a78 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1a79 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1a7a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1a7b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1a7e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1b05 },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1b06 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1b07 },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1b08 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1b09 },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1b0a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1b0b },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1b0c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1b0d },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1b0e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1b11 },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1b12 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1b33 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   7, 0x1b34 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x1b35 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1b3a },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1b3b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1b3c },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1b3d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1b3f },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1b41 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1b42 },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1b43 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1b6a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1b6b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1b6c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1b6d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1b6e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1b6f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1b70 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1b71 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1b72 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ba9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x1baa },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1be5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1bf1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x1bf2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1c36 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ccf },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1cd0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1cd1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1cd3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   1, 0x1cd4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1cd5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1cd6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1cd7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1cd8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1cd9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1cda },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1cdb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1cdc },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1cdd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1cde },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1cdf },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ce1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   1, 0x1ce2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   1, 0x1ce3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   1, 0x1ce4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   1, 0x1ce5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   1, 0x1ce6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   1, 0x1ce7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1cec },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1cf3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d2b },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d2e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d2f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d3a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d3b },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d4d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d4e },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d6a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d77 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d78 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d9a },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1dbf },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dc0 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dc1 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x1dc2 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dc3 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dc4 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dc5 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dc6 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dc7 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dc8 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dc9 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x1dca },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dcb },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dcc },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 234, 0x1dcd },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 214, 0x1dce },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x1dcf },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 202, 0x1dd0 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dd1 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dd2 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dd3 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dd4 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dd5 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dd6 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dd7 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dd8 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dd9 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dda },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1ddb },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1ddc },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1ddd },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dde },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1ddf },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1de0 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1de1 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1de2 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1de3 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1de4 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1de5 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   0, 0x1dfb },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 233, 0x1dfc },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x1dfd },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dfe },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x1dff },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1e07 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1e09 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1e13 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1e17 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1e1b },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1e1d },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1e2d },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1e2f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1e37 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1e39 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1e4b },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1e53 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1e5b },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1e5d },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1e63 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1e69 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1e77 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1e7b },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1e99 },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x1e9a },
+{ C99|  0|  0|C11|  0|  0|NFC|  0|  0,   0, 0x1e9b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1e9f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1ea3 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1eb7 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1ebd },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1ec7 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1ecf },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1ee3 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee7 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1ef1 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1ef9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1eff },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f15 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f17 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f1d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f1f },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f45 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f47 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f4d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f4f },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f57 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f58 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f59 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f5a },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f5b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f5c },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f5d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f5e },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f70 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1f71 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f72 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1f73 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f74 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1f75 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f76 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1f77 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f78 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1f79 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f7a },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1f7b },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f7c },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1f7d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f7f },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1fb4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1fb5 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1fba },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1fbb },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1fbc },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1fbd },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x1fbe },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1fc0 },
+{   0|  0|  0|C11|  0|  0|NFC|  0|  0,   0, 0x1fc1 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1fc4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1fc5 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1fc8 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1fc9 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1fca },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1fcb },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1fcc },
+{   0|  0|  0|C11|  0|  0|NFC|  0|  0,   0, 0x1fcf },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1fd2 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1fd3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1fd5 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1fda },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1fdb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1fdc },
+{   0|  0|  0|C11|  0|  0|NFC|  0|  0,   0, 0x1fdf },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1fe2 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1fe3 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1fea },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1feb },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1fec },
+{   0|  0|  0|C11|  0|  0|NFC|  0|  0,   0, 0x1fed },
+{   0|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x1fee },
+{   0|  0|  0|C11|  0|CID|  0|  0|  0,   0, 0x1fef },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ff1 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1ff4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ff5 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1ff8 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1ff9 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1ffa },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1ffb },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1ffc },
+{   0|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x1ffd },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ffe },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1fff },
+{   0|  0|  0|  0|  0|CID|  0|  0|  0,   0, 0x200a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x200d },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x2029 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x202e },
+{   0|  0|  0|  0|  0|CID|NFC|  0|  0,   0, 0x203e },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2040 },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x2053 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2054 },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x205f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x206f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2071 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2073 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x207e },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x207f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x208e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x208f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x209c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x20a7 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x20a8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x20cf },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x20d0 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x20d1 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x20d2 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x20d3 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x20d4 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x20d5 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x20d6 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x20d7 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x20d8 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x20d9 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x20da },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x20db },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   0, 0x20e0 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   0, 0x20e4 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x20e5 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x20e6 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x20e7 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x20e8 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x20e9 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x20ea },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x20eb },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x20ec },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x20ed },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x20ee },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x20ef },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   0, 0x20ff },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2101 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2102 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2103 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2104 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2106 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2107 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2108 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2109 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2113 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2114 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2115 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2116 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2117 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2118 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x211d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x211f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2122 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2123 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2124 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2125 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x2126 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2127 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2128 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2129 },
+{ C99|  0|  0|C11|  0|CID|  0|  0|  0,   0, 0x212a },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x212b },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x212d },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x212e },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2131 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2132 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2138 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2139 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x213a },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2140 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2144 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2149 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x214f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x215f },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x217f },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2182 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2188 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2189 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x218f },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x245f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x24ea },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x24ff },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x2775 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2793 },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x2bff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2c7b },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2c7d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2cee },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2cef },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2cf0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2d6e },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2d6f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2d7e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2ddf },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2de0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2de1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2de2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2de3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2de4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2de5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2de6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2de7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2de8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2de9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2dea },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2deb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2dec },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2ded },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2dee },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2def },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2df0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2df1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2df2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2df3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2df4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2df5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2df6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2df7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2df8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2df9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2dfa },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2dfb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2dfc },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2dfd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2dfe },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2dff },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x2e7f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2e9e },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2e9f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2ef2 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2ef3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2eff },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2fd5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2fff },
+{   0|  0|  0|  0|  0|CID|NFC|  0|  0,   0, 0x3003 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x3004 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x3007 },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x3020 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x3029 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 218, 0x302a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 228, 0x302b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 232, 0x302c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 222, 0x302d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 224, 0x302e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 224, 0x302f },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x3030 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x3035 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x3036 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x3037 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x303a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x3040 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x304b },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x304c },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x304d },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x304e },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x304f },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3050 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3051 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3052 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3053 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3054 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3055 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3056 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3057 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3058 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3059 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x305a },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x305b },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x305c },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x305d },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x305e },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x305f },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3060 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3061 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3062 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3064 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3065 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3066 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3067 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3068 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3069 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x306f },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3071 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3072 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3074 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3075 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3077 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3078 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x307a },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x307b },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x307d },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3093 },
+{   0|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3094 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x3098 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   8, 0x3099 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   8, 0x309a },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x309c },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x309d },
+{   0|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x309e },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x309f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x30a0 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30ab },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30ac },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30ad },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30ae },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30af },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30b0 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30b1 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30b2 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30b3 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30b4 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30b5 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30b6 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30b7 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30b8 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30b9 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30ba },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30bb },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30bc },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30bd },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30be },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30bf },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30c0 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30c1 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30c2 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30c4 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30c5 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30c6 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30c7 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30c8 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30c9 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30cf },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30d1 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30d2 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30d4 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30d5 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30d7 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30d8 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30da },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30db },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30dd },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30f3 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30f4 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30f6 },
+{   0|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30fa },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30fc },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30fd },
+{   0|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30fe },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x30ff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x3104 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x312c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x3130 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x318e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x3191 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x319f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x31ff },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x321e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x321f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x3247 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x324f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x327e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x327f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x32fe },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x32ff },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x33ff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x4dff },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x9fa5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa66e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa673 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa674 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa675 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa676 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa677 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa678 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa679 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa67a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa67b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa67c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa69e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa6ef },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa6f0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa76f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xa770 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa7f7 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xa7f9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa805 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa8c3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa8df },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8e0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8e1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8e2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8e3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8e4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8e5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8e6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8e7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8e8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8e9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8ea },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8eb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8ec },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8ed },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8ee },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8ef },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8f0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa92a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0xa92b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0xa92c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa952 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa9b2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa9bf },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xaaaf },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xaab1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xaab2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xaab3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xaab6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xaab7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xaabd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xaabe },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xaac0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xaaf5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xabec },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xabff },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xd7a3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xd7ff },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0xf8ff },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfa0d },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0xfa0f },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfa10 },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0xfa11 },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfa12 },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0xfa14 },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfa1e },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0xfa1f },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfa20 },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0xfa21 },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfa22 },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0xfa24 },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfa26 },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0xfa29 },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfa2d },
+{   0|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0xfa6d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfa6f },
+{   0|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0xfad9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfaff },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xfb06 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfb12 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xfb17 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfb1c },
+{   0|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0xfb1d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,  26, 0xfb1e },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfb1f },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xfb29 },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfb36 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfb37 },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfb3c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfb3d },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfb3e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfb3f },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfb41 },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0xfb42 },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfb44 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfb45 },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfb4e },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xfbb1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfbd2 },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xfd3d },
+{   0|  0|CXX|  0|  0|CID|NFC|NKC|  0,   0, 0xfd3f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfd4f },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xfd8f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfd91 },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xfdc7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfdcf },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0xfdef },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xfdfb },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xfdfc },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfe0f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xfe19 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfe1f },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0xfe20 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0xfe21 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0xfe22 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0xfe23 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0xfe24 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0xfe25 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   0, 0xfe2f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xfe44 },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0xfe46 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xfe52 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfe53 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xfe66 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfe67 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xfe6b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfe6f },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xfe72 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfe73 },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xfe74 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfe75 },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xfefc },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xff00 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xff20 },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xff3a },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xff40 },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xff5a },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xff65 },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xffbe },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xffc1 },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xffc7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xffc9 },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xffcf },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xffd1 },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xffd7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xffd9 },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xffdc },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xffdf },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xffe6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xffe7 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xffee },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0xffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x101fc },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x10a0c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x10a0e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x10a37 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x10a38 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   1, 0x10a39 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x10a3e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x11045 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x11099 },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1109a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1109b },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1109c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x110aa },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x110ab },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x110b8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x110b9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   7, 0x110ba },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x110ff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x11100 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x11101 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x11126 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x11127 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1112d },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1112f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x11132 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x11133 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x111bf },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x116b5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x116b6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d15d },
+{   0|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x1d164 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 216, 0x1d165 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 216, 0x1d166 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   1, 0x1d167 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   1, 0x1d168 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d16c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 226, 0x1d16d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 216, 0x1d16e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 216, 0x1d16f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 216, 0x1d170 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 216, 0x1d171 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d17a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1d17b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1d17c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1d17d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1d17e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1d17f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1d180 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1d181 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d184 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1d185 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1d186 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1d187 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1d188 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1d189 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1d18a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d1a9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1d1aa },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1d1ab },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1d1ac },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d1ba },
+{   0|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x1d1c0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d241 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1d242 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1d243 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d3ff },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d454 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d455 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d49c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d49d },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d49f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d4a1 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d4a2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d4a4 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d4a6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d4a8 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d4ac },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d4ad },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d4b9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d4ba },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d4bb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d4bc },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d4c3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d4c4 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d505 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d506 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d50a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d50c },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d514 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d515 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d51c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d51d },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d539 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d53a },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d53e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d53f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d544 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d545 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d546 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d549 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d550 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d551 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d6a5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d6a7 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d7cb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d7cd },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d7ff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1edff },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee03 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee04 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee1f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee20 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee22 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee23 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee24 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee26 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee27 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee28 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee32 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee33 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee37 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee38 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee39 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee3a },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee3b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee41 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee42 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee46 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee47 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee48 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee49 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee4a },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee4b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee4c },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee4f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee50 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee52 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee53 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee54 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee56 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee57 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee58 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee59 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee5a },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee5b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee5c },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee5d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee5e },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee5f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee60 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee62 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee63 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee64 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee66 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee6a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee6b },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee72 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee73 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee77 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee78 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee7c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee7d },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee7e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee7f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee89 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee8a },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee9b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1eea0 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1eea3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1eea4 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1eea9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1eeaa },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1eebb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f0ff },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1f10a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f10f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1f12e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f12f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1f14f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f169 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1f16b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f18f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1f190 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f1ff },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1f202 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f20f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1f23a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f23f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1f248 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f24f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1f251 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1fffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x1ffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2f7ff },
+{   0|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x2fa1d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2fffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x2ffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x3fffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x3ffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x4fffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x4ffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x5fffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x5ffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x6fffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x6ffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x7fffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x7ffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x8fffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x8ffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x9fffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x9ffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xafffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0xaffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xbfffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0xbffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xcfffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0xcffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xdfffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0xdffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xefffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x10ffff },
+};
+static bool
+check_nfc (cpp_reader *pfile, cppchar_t c, cppchar_t p)
+{
+  switch (c)
+    {
+    case 0x0300:
+      switch (p)
+       {
+       case 0x0041:
+       case 0x0045:
+       case 0x0049:
+       case 0x004f:
+       case 0x0055:
+       case 0x0061:
+       case 0x0065:
+       case 0x0069:
+       case 0x006f:
+       case 0x0075:
+       case 0x00dc:
+       case 0x00fc:
+       case 0x004e:
+       case 0x006e:
+       case 0x0415:
+       case 0x0418:
+       case 0x0435:
+       case 0x0438:
+       case 0x0112:
+       case 0x0113:
+       case 0x014c:
+       case 0x014d:
+       case 0x0057:
+       case 0x0077:
+       case 0x00c2:
+       case 0x00e2:
+       case 0x0102:
+       case 0x0103:
+       case 0x00ca:
+       case 0x00ea:
+       case 0x00d4:
+       case 0x00f4:
+       case 0x01a0:
+       case 0x01a1:
+       case 0x01af:
+       case 0x01b0:
+       case 0x0059:
+       case 0x0079:
+       case 0x1f00:
+       case 0x1f80:
+       case 0x1f01:
+       case 0x1f81:
+       case 0x1f08:
+       case 0x1f88:
+       case 0x1f09:
+       case 0x1f89:
+       case 0x1f10:
+       case 0x1f11:
+       case 0x1f18:
+       case 0x1f19:
+       case 0x1f20:
+       case 0x1f90:
+       case 0x1f21:
+       case 0x1f91:
+       case 0x1f28:
+       case 0x1f98:
+       case 0x1f29:
+       case 0x1f99:
+       case 0x1f30:
+       case 0x1f31:
+       case 0x1f38:
+       case 0x1f39:
+       case 0x1f40:
+       case 0x1f41:
+       case 0x1f48:
+       case 0x1f49:
+       case 0x1f50:
+       case 0x1f51:
+       case 0x1f59:
+       case 0x1f60:
+       case 0x1fa0:
+       case 0x1f61:
+       case 0x1fa1:
+       case 0x1f68:
+       case 0x1fa8:
+       case 0x1f69:
+       case 0x1fa9:
+       case 0x03b1:
+       case 0x1fb3:
+       case 0x03b5:
+       case 0x03b7:
+       case 0x1fc3:
+       case 0x03b9:
+       case 0x03bf:
+       case 0x03c5:
+       case 0x03c9:
+       case 0x1ff3:
+       case 0x0391:
+       case 0x1fbc:
+       case 0x0395:
+       case 0x0397:
+       case 0x1fcc:
+       case 0x1fbf:
+       case 0x03ca:
+       case 0x0399:
+       case 0x1ffe:
+       case 0x03cb:
+       case 0x03a5:
+       case 0x00a8:
+       case 0x039f:
+       case 0x03a9:
+       case 0x1ffc:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0301:
+      switch (p)
+       {
+       case 0x0041:
+       case 0x0045:
+       case 0x0049:
+       case 0x004f:
+       case 0x0055:
+       case 0x0059:
+       case 0x0061:
+       case 0x0065:
+       case 0x0069:
+       case 0x006f:
+       case 0x0075:
+       case 0x0079:
+       case 0x0043:
+       case 0x0063:
+       case 0x004c:
+       case 0x006c:
+       case 0x004e:
+       case 0x006e:
+       case 0x0052:
+       case 0x0072:
+       case 0x0053:
+       case 0x0073:
+       case 0x005a:
+       case 0x007a:
+       case 0x00dc:
+       case 0x00fc:
+       case 0x0047:
+       case 0x0067:
+       case 0x00c5:
+       case 0x00e5:
+       case 0x00c6:
+       case 0x00e6:
+       case 0x00d8:
+       case 0x00f8:
+       case 0x00a8:
+       case 0x0391:
+       case 0x1fbc:
+       case 0x0395:
+       case 0x0397:
+       case 0x1fcc:
+       case 0x0399:
+       case 0x039f:
+       case 0x03a5:
+       case 0x03a9:
+       case 0x1ffc:
+       case 0x03ca:
+       case 0x03b1:
+       case 0x1fb3:
+       case 0x03b5:
+       case 0x03b7:
+       case 0x1fc3:
+       case 0x03b9:
+       case 0x03cb:
+       case 0x03bf:
+       case 0x03c5:
+       case 0x03c9:
+       case 0x1ff3:
+       case 0x03d2:
+       case 0x0413:
+       case 0x041a:
+       case 0x0433:
+       case 0x043a:
+       case 0x00c7:
+       case 0x00e7:
+       case 0x0112:
+       case 0x0113:
+       case 0x00cf:
+       case 0x00ef:
+       case 0x004b:
+       case 0x006b:
+       case 0x004d:
+       case 0x006d:
+       case 0x00d5:
+       case 0x00f5:
+       case 0x014c:
+       case 0x014d:
+       case 0x0050:
+       case 0x0070:
+       case 0x0168:
+       case 0x0169:
+       case 0x0057:
+       case 0x0077:
+       case 0x00c2:
+       case 0x00e2:
+       case 0x0102:
+       case 0x0103:
+       case 0x00ca:
+       case 0x00ea:
+       case 0x00d4:
+       case 0x00f4:
+       case 0x01a0:
+       case 0x01a1:
+       case 0x01af:
+       case 0x01b0:
+       case 0x1f00:
+       case 0x1f80:
+       case 0x1f01:
+       case 0x1f81:
+       case 0x1f08:
+       case 0x1f88:
+       case 0x1f09:
+       case 0x1f89:
+       case 0x1f10:
+       case 0x1f11:
+       case 0x1f18:
+       case 0x1f19:
+       case 0x1f20:
+       case 0x1f90:
+       case 0x1f21:
+       case 0x1f91:
+       case 0x1f28:
+       case 0x1f98:
+       case 0x1f29:
+       case 0x1f99:
+       case 0x1f30:
+       case 0x1f31:
+       case 0x1f38:
+       case 0x1f39:
+       case 0x1f40:
+       case 0x1f41:
+       case 0x1f48:
+       case 0x1f49:
+       case 0x1f50:
+       case 0x1f51:
+       case 0x1f59:
+       case 0x1f60:
+       case 0x1fa0:
+       case 0x1f61:
+       case 0x1fa1:
+       case 0x1f68:
+       case 0x1fa8:
+       case 0x1f69:
+       case 0x1fa9:
+       case 0x1fbf:
+       case 0x1ffe:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0302:
+      switch (p)
+       {
+       case 0x0041:
+       case 0x0045:
+       case 0x0049:
+       case 0x004f:
+       case 0x0055:
+       case 0x0061:
+       case 0x0065:
+       case 0x0069:
+       case 0x006f:
+       case 0x0075:
+       case 0x0043:
+       case 0x0063:
+       case 0x0047:
+       case 0x0067:
+       case 0x0048:
+       case 0x0068:
+       case 0x004a:
+       case 0x006a:
+       case 0x0053:
+       case 0x0073:
+       case 0x0057:
+       case 0x0077:
+       case 0x0059:
+       case 0x0079:
+       case 0x005a:
+       case 0x007a:
+       case 0x1ea0:
+       case 0x1ea1:
+       case 0x1eb8:
+       case 0x1eb9:
+       case 0x1ecc:
+       case 0x1ecd:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0303:
+      switch (p)
+       {
+       case 0x0041:
+       case 0x004e:
+       case 0x004f:
+       case 0x0061:
+       case 0x006e:
+       case 0x006f:
+       case 0x0049:
+       case 0x0069:
+       case 0x0055:
+       case 0x0075:
+       case 0x0056:
+       case 0x0076:
+       case 0x00c2:
+       case 0x00e2:
+       case 0x0102:
+       case 0x0103:
+       case 0x0045:
+       case 0x0065:
+       case 0x00ca:
+       case 0x00ea:
+       case 0x00d4:
+       case 0x00f4:
+       case 0x01a0:
+       case 0x01a1:
+       case 0x01af:
+       case 0x01b0:
+       case 0x0059:
+       case 0x0079:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0304:
+      switch (p)
+       {
+       case 0x0041:
+       case 0x0061:
+       case 0x0045:
+       case 0x0065:
+       case 0x0049:
+       case 0x0069:
+       case 0x004f:
+       case 0x006f:
+       case 0x0055:
+       case 0x0075:
+       case 0x00dc:
+       case 0x00fc:
+       case 0x00c4:
+       case 0x00e4:
+       case 0x0226:
+       case 0x0227:
+       case 0x00c6:
+       case 0x00e6:
+       case 0x01ea:
+       case 0x01eb:
+       case 0x00d6:
+       case 0x00f6:
+       case 0x00d5:
+       case 0x00f5:
+       case 0x022e:
+       case 0x022f:
+       case 0x0059:
+       case 0x0079:
+       case 0x0418:
+       case 0x0438:
+       case 0x0423:
+       case 0x0443:
+       case 0x0047:
+       case 0x0067:
+       case 0x1e36:
+       case 0x1e37:
+       case 0x1e5a:
+       case 0x1e5b:
+       case 0x03b1:
+       case 0x1fb3:
+       case 0x0391:
+       case 0x1fbc:
+       case 0x03b9:
+       case 0x0399:
+       case 0x03c5:
+       case 0x03a5:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0306:
+      switch (p)
+       {
+       case 0x0041:
+       case 0x0061:
+       case 0x0045:
+       case 0x0065:
+       case 0x0047:
+       case 0x0067:
+       case 0x0049:
+       case 0x0069:
+       case 0x004f:
+       case 0x006f:
+       case 0x0055:
+       case 0x0075:
+       case 0x0423:
+       case 0x0418:
+       case 0x0438:
+       case 0x0443:
+       case 0x0416:
+       case 0x0436:
+       case 0x0410:
+       case 0x0430:
+       case 0x0415:
+       case 0x0435:
+       case 0x0228:
+       case 0x0229:
+       case 0x1ea0:
+       case 0x1ea1:
+       case 0x03b1:
+       case 0x1fb3:
+       case 0x0391:
+       case 0x1fbc:
+       case 0x03b9:
+       case 0x0399:
+       case 0x03c5:
+       case 0x03a5:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0307:
+      switch (p)
+       {
+       case 0x0043:
+       case 0x0063:
+       case 0x0045:
+       case 0x0065:
+       case 0x0047:
+       case 0x0067:
+       case 0x0049:
+       case 0x005a:
+       case 0x007a:
+       case 0x0041:
+       case 0x0061:
+       case 0x004f:
+       case 0x006f:
+       case 0x0042:
+       case 0x0062:
+       case 0x0044:
+       case 0x0064:
+       case 0x0046:
+       case 0x0066:
+       case 0x0048:
+       case 0x0068:
+       case 0x004d:
+       case 0x006d:
+       case 0x004e:
+       case 0x006e:
+       case 0x0050:
+       case 0x0070:
+       case 0x0052:
+       case 0x0072:
+       case 0x0053:
+       case 0x0073:
+       case 0x015a:
+       case 0x015b:
+       case 0x0160:
+       case 0x0161:
+       case 0x1e62:
+       case 0x1e63:
+       case 0x0054:
+       case 0x0074:
+       case 0x0057:
+       case 0x0077:
+       case 0x0058:
+       case 0x0078:
+       case 0x0059:
+       case 0x0079:
+       case 0x017f:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0308:
+      switch (p)
+       {
+       case 0x0041:
+       case 0x0045:
+       case 0x0049:
+       case 0x004f:
+       case 0x0055:
+       case 0x0061:
+       case 0x0065:
+       case 0x0069:
+       case 0x006f:
+       case 0x0075:
+       case 0x0079:
+       case 0x0059:
+       case 0x0399:
+       case 0x03a5:
+       case 0x03b9:
+       case 0x03c5:
+       case 0x03d2:
+       case 0x0415:
+       case 0x0406:
+       case 0x0435:
+       case 0x0456:
+       case 0x0410:
+       case 0x0430:
+       case 0x04d8:
+       case 0x04d9:
+       case 0x0416:
+       case 0x0436:
+       case 0x0417:
+       case 0x0437:
+       case 0x0418:
+       case 0x0438:
+       case 0x041e:
+       case 0x043e:
+       case 0x04e8:
+       case 0x04e9:
+       case 0x042d:
+       case 0x044d:
+       case 0x0423:
+       case 0x0443:
+       case 0x0427:
+       case 0x0447:
+       case 0x042b:
+       case 0x044b:
+       case 0x0048:
+       case 0x0068:
+       case 0x00d5:
+       case 0x00f5:
+       case 0x016a:
+       case 0x016b:
+       case 0x0057:
+       case 0x0077:
+       case 0x0058:
+       case 0x0078:
+       case 0x0074:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0309:
+      switch (p)
+       {
+       case 0x0041:
+       case 0x0061:
+       case 0x00c2:
+       case 0x00e2:
+       case 0x0102:
+       case 0x0103:
+       case 0x0045:
+       case 0x0065:
+       case 0x00ca:
+       case 0x00ea:
+       case 0x0049:
+       case 0x0069:
+       case 0x004f:
+       case 0x006f:
+       case 0x00d4:
+       case 0x00f4:
+       case 0x01a0:
+       case 0x01a1:
+       case 0x0055:
+       case 0x0075:
+       case 0x01af:
+       case 0x01b0:
+       case 0x0059:
+       case 0x0079:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x030a:
+      switch (p)
+       {
+       case 0x0041:
+       case 0x0061:
+       case 0x0055:
+       case 0x0075:
+       case 0x0077:
+       case 0x0079:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x030b:
+      switch (p)
+       {
+       case 0x004f:
+       case 0x006f:
+       case 0x0055:
+       case 0x0075:
+       case 0x0423:
+       case 0x0443:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x030c:
+      switch (p)
+       {
+       case 0x0043:
+       case 0x0063:
+       case 0x0044:
+       case 0x0064:
+       case 0x0045:
+       case 0x0065:
+       case 0x004c:
+       case 0x006c:
+       case 0x004e:
+       case 0x006e:
+       case 0x0052:
+       case 0x0072:
+       case 0x0053:
+       case 0x0073:
+       case 0x0054:
+       case 0x0074:
+       case 0x005a:
+       case 0x007a:
+       case 0x0041:
+       case 0x0061:
+       case 0x0049:
+       case 0x0069:
+       case 0x004f:
+       case 0x006f:
+       case 0x0055:
+       case 0x0075:
+       case 0x00dc:
+       case 0x00fc:
+       case 0x0047:
+       case 0x0067:
+       case 0x004b:
+       case 0x006b:
+       case 0x01b7:
+       case 0x0292:
+       case 0x006a:
+       case 0x0048:
+       case 0x0068:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x030f:
+      switch (p)
+       {
+       case 0x0041:
+       case 0x0061:
+       case 0x0045:
+       case 0x0065:
+       case 0x0049:
+       case 0x0069:
+       case 0x004f:
+       case 0x006f:
+       case 0x0052:
+       case 0x0072:
+       case 0x0055:
+       case 0x0075:
+       case 0x0474:
+       case 0x0475:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0311:
+      switch (p)
+       {
+       case 0x0041:
+       case 0x0061:
+       case 0x0045:
+       case 0x0065:
+       case 0x0049:
+       case 0x0069:
+       case 0x004f:
+       case 0x006f:
+       case 0x0052:
+       case 0x0072:
+       case 0x0055:
+       case 0x0075:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0313:
+      switch (p)
+       {
+       case 0x03b1:
+       case 0x1fb3:
+       case 0x0391:
+       case 0x1fbc:
+       case 0x03b5:
+       case 0x0395:
+       case 0x03b7:
+       case 0x1fc3:
+       case 0x0397:
+       case 0x1fcc:
+       case 0x03b9:
+       case 0x0399:
+       case 0x03bf:
+       case 0x039f:
+       case 0x03c5:
+       case 0x03c9:
+       case 0x1ff3:
+       case 0x03a9:
+       case 0x1ffc:
+       case 0x03c1:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0314:
+      switch (p)
+       {
+       case 0x03b1:
+       case 0x1fb3:
+       case 0x0391:
+       case 0x1fbc:
+       case 0x03b5:
+       case 0x0395:
+       case 0x03b7:
+       case 0x1fc3:
+       case 0x0397:
+       case 0x1fcc:
+       case 0x03b9:
+       case 0x0399:
+       case 0x03bf:
+       case 0x039f:
+       case 0x03c5:
+       case 0x03a5:
+       case 0x03c9:
+       case 0x1ff3:
+       case 0x03a9:
+       case 0x1ffc:
+       case 0x03c1:
+       case 0x03a1:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x031b:
+      switch (p)
+       {
+       case 0x004f:
+       case 0x00d2:
+       case 0x00d3:
+       case 0x00d4:
+       case 0x00d5:
+       case 0x00d6:
+       case 0x014c:
+       case 0x014e:
+       case 0x0150:
+       case 0x01d1:
+       case 0x020c:
+       case 0x020e:
+       case 0x022a:
+       case 0x022c:
+       case 0x022e:
+       case 0x0230:
+       case 0x1e4c:
+       case 0x1e4e:
+       case 0x1e50:
+       case 0x1e52:
+       case 0x1ecc:
+       case 0x1ece:
+       case 0x1ed0:
+       case 0x1ed2:
+       case 0x1ed4:
+       case 0x1ed6:
+       case 0x1ed8:
+       case 0x006f:
+       case 0x00f2:
+       case 0x00f3:
+       case 0x00f4:
+       case 0x00f5:
+       case 0x00f6:
+       case 0x014d:
+       case 0x014f:
+       case 0x0151:
+       case 0x01d2:
+       case 0x020d:
+       case 0x020f:
+       case 0x022b:
+       case 0x022d:
+       case 0x022f:
+       case 0x0231:
+       case 0x1e4d:
+       case 0x1e4f:
+       case 0x1e51:
+       case 0x1e53:
+       case 0x1ecd:
+       case 0x1ecf:
+       case 0x1ed1:
+       case 0x1ed3:
+       case 0x1ed5:
+       case 0x1ed7:
+       case 0x1ed9:
+       case 0x0055:
+       case 0x00d9:
+       case 0x00da:
+       case 0x00db:
+       case 0x00dc:
+       case 0x0168:
+       case 0x016a:
+       case 0x016c:
+       case 0x016e:
+       case 0x0170:
+       case 0x01d3:
+       case 0x01d5:
+       case 0x01d7:
+       case 0x01d9:
+       case 0x01db:
+       case 0x0214:
+       case 0x0216:
+       case 0x1e72:
+       case 0x1e74:
+       case 0x1e76:
+       case 0x1e78:
+       case 0x1e7a:
+       case 0x1ee4:
+       case 0x1ee6:
+       case 0x0075:
+       case 0x00f9:
+       case 0x00fa:
+       case 0x00fb:
+       case 0x00fc:
+       case 0x0169:
+       case 0x016b:
+       case 0x016d:
+       case 0x016f:
+       case 0x0171:
+       case 0x01d4:
+       case 0x01d6:
+       case 0x01d8:
+       case 0x01da:
+       case 0x01dc:
+       case 0x0215:
+       case 0x0217:
+       case 0x1e73:
+       case 0x1e75:
+       case 0x1e77:
+       case 0x1e79:
+       case 0x1e7b:
+       case 0x1ee5:
+       case 0x1ee7:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0323:
+      switch (p)
+       {
+       case 0x0042:
+       case 0x1e02:
+       case 0x0062:
+       case 0x1e03:
+       case 0x0044:
+       case 0x010e:
+       case 0x1e0a:
+       case 0x0064:
+       case 0x010f:
+       case 0x1e0b:
+       case 0x0048:
+       case 0x0124:
+       case 0x021e:
+       case 0x1e22:
+       case 0x1e26:
+       case 0x0068:
+       case 0x0125:
+       case 0x021f:
+       case 0x1e23:
+       case 0x1e27:
+       case 0x004b:
+       case 0x01e8:
+       case 0x1e30:
+       case 0x006b:
+       case 0x01e9:
+       case 0x1e31:
+       case 0x004c:
+       case 0x0139:
+       case 0x013d:
+       case 0x006c:
+       case 0x013a:
+       case 0x013e:
+       case 0x004d:
+       case 0x1e3e:
+       case 0x1e40:
+       case 0x006d:
+       case 0x1e3f:
+       case 0x1e41:
+       case 0x004e:
+       case 0x00d1:
+       case 0x0143:
+       case 0x0147:
+       case 0x01f8:
+       case 0x1e44:
+       case 0x006e:
+       case 0x00f1:
+       case 0x0144:
+       case 0x0148:
+       case 0x01f9:
+       case 0x1e45:
+       case 0x0052:
+       case 0x0154:
+       case 0x0158:
+       case 0x0210:
+       case 0x0212:
+       case 0x1e58:
+       case 0x0072:
+       case 0x0155:
+       case 0x0159:
+       case 0x0211:
+       case 0x0213:
+       case 0x1e59:
+       case 0x0053:
+       case 0x015a:
+       case 0x015c:
+       case 0x0160:
+       case 0x1e60:
+       case 0x1e64:
+       case 0x1e66:
+       case 0x0073:
+       case 0x015b:
+       case 0x015d:
+       case 0x0161:
+       case 0x1e61:
+       case 0x1e65:
+       case 0x1e67:
+       case 0x0054:
+       case 0x0164:
+       case 0x1e6a:
+       case 0x0074:
+       case 0x0165:
+       case 0x1e6b:
+       case 0x1e97:
+       case 0x0056:
+       case 0x1e7c:
+       case 0x0076:
+       case 0x1e7d:
+       case 0x0057:
+       case 0x0174:
+       case 0x1e80:
+       case 0x1e82:
+       case 0x1e84:
+       case 0x1e86:
+       case 0x0077:
+       case 0x0175:
+       case 0x1e81:
+       case 0x1e83:
+       case 0x1e85:
+       case 0x1e87:
+       case 0x1e98:
+       case 0x005a:
+       case 0x0179:
+       case 0x017b:
+       case 0x017d:
+       case 0x1e90:
+       case 0x007a:
+       case 0x017a:
+       case 0x017c:
+       case 0x017e:
+       case 0x1e91:
+       case 0x0041:
+       case 0x00c0:
+       case 0x00c1:
+       case 0x00c2:
+       case 0x00c3:
+       case 0x00c4:
+       case 0x00c5:
+       case 0x0100:
+       case 0x0102:
+       case 0x01cd:
+       case 0x01de:
+       case 0x01e0:
+       case 0x01fa:
+       case 0x0200:
+       case 0x0202:
+       case 0x0226:
+       case 0x1ea2:
+       case 0x1ea4:
+       case 0x1ea6:
+       case 0x1ea8:
+       case 0x1eaa:
+       case 0x1eae:
+       case 0x1eb0:
+       case 0x1eb2:
+       case 0x1eb4:
+       case 0x0061:
+       case 0x00e0:
+       case 0x00e1:
+       case 0x00e2:
+       case 0x00e3:
+       case 0x00e4:
+       case 0x00e5:
+       case 0x0101:
+       case 0x0103:
+       case 0x01ce:
+       case 0x01df:
+       case 0x01e1:
+       case 0x01fb:
+       case 0x0201:
+       case 0x0203:
+       case 0x0227:
+       case 0x1ea3:
+       case 0x1ea5:
+       case 0x1ea7:
+       case 0x1ea9:
+       case 0x1eab:
+       case 0x1eaf:
+       case 0x1eb1:
+       case 0x1eb3:
+       case 0x1eb5:
+       case 0x0045:
+       case 0x00c8:
+       case 0x00c9:
+       case 0x00ca:
+       case 0x00cb:
+       case 0x0112:
+       case 0x0114:
+       case 0x0116:
+       case 0x011a:
+       case 0x0204:
+       case 0x0206:
+       case 0x1e14:
+       case 0x1e16:
+       case 0x1eba:
+       case 0x1ebc:
+       case 0x1ebe:
+       case 0x1ec0:
+       case 0x1ec2:
+       case 0x1ec4:
+       case 0x0065:
+       case 0x00e8:
+       case 0x00e9:
+       case 0x00ea:
+       case 0x00eb:
+       case 0x0113:
+       case 0x0115:
+       case 0x0117:
+       case 0x011b:
+       case 0x0205:
+       case 0x0207:
+       case 0x1e15:
+       case 0x1e17:
+       case 0x1ebb:
+       case 0x1ebd:
+       case 0x1ebf:
+       case 0x1ec1:
+       case 0x1ec3:
+       case 0x1ec5:
+       case 0x0049:
+       case 0x00cc:
+       case 0x00cd:
+       case 0x00ce:
+       case 0x00cf:
+       case 0x0128:
+       case 0x012a:
+       case 0x012c:
+       case 0x0130:
+       case 0x01cf:
+       case 0x0208:
+       case 0x020a:
+       case 0x1e2e:
+       case 0x1ec8:
+       case 0x0069:
+       case 0x00ec:
+       case 0x00ed:
+       case 0x00ee:
+       case 0x00ef:
+       case 0x0129:
+       case 0x012b:
+       case 0x012d:
+       case 0x01d0:
+       case 0x0209:
+       case 0x020b:
+       case 0x1e2f:
+       case 0x1ec9:
+       case 0x004f:
+       case 0x00d2:
+       case 0x00d3:
+       case 0x00d4:
+       case 0x00d5:
+       case 0x00d6:
+       case 0x014c:
+       case 0x014e:
+       case 0x0150:
+       case 0x01d1:
+       case 0x020c:
+       case 0x020e:
+       case 0x022a:
+       case 0x022c:
+       case 0x022e:
+       case 0x0230:
+       case 0x1e4c:
+       case 0x1e4e:
+       case 0x1e50:
+       case 0x1e52:
+       case 0x1ece:
+       case 0x1ed0:
+       case 0x1ed2:
+       case 0x1ed4:
+       case 0x1ed6:
+       case 0x006f:
+       case 0x00f2:
+       case 0x00f3:
+       case 0x00f4:
+       case 0x00f5:
+       case 0x00f6:
+       case 0x014d:
+       case 0x014f:
+       case 0x0151:
+       case 0x01d2:
+       case 0x020d:
+       case 0x020f:
+       case 0x022b:
+       case 0x022d:
+       case 0x022f:
+       case 0x0231:
+       case 0x1e4d:
+       case 0x1e4f:
+       case 0x1e51:
+       case 0x1e53:
+       case 0x1ecf:
+       case 0x1ed1:
+       case 0x1ed3:
+       case 0x1ed5:
+       case 0x1ed7:
+       case 0x01a0:
+       case 0x1eda:
+       case 0x1edc:
+       case 0x1ede:
+       case 0x1ee0:
+       case 0x01a1:
+       case 0x1edb:
+       case 0x1edd:
+       case 0x1edf:
+       case 0x1ee1:
+       case 0x0055:
+       case 0x00d9:
+       case 0x00da:
+       case 0x00db:
+       case 0x00dc:
+       case 0x0168:
+       case 0x016a:
+       case 0x016c:
+       case 0x016e:
+       case 0x0170:
+       case 0x01d3:
+       case 0x01d5:
+       case 0x01d7:
+       case 0x01d9:
+       case 0x01db:
+       case 0x0214:
+       case 0x0216:
+       case 0x1e78:
+       case 0x1e7a:
+       case 0x1ee6:
+       case 0x0075:
+       case 0x00f9:
+       case 0x00fa:
+       case 0x00fb:
+       case 0x00fc:
+       case 0x0169:
+       case 0x016b:
+       case 0x016d:
+       case 0x016f:
+       case 0x0171:
+       case 0x01d4:
+       case 0x01d6:
+       case 0x01d8:
+       case 0x01da:
+       case 0x01dc:
+       case 0x0215:
+       case 0x0217:
+       case 0x1e79:
+       case 0x1e7b:
+       case 0x1ee7:
+       case 0x01af:
+       case 0x1ee8:
+       case 0x1eea:
+       case 0x1eec:
+       case 0x1eee:
+       case 0x01b0:
+       case 0x1ee9:
+       case 0x1eeb:
+       case 0x1eed:
+       case 0x1eef:
+       case 0x0059:
+       case 0x00dd:
+       case 0x0176:
+       case 0x0178:
+       case 0x0232:
+       case 0x1e8e:
+       case 0x1ef2:
+       case 0x1ef6:
+       case 0x1ef8:
+       case 0x0079:
+       case 0x00fd:
+       case 0x00ff:
+       case 0x0177:
+       case 0x0233:
+       case 0x1e8f:
+       case 0x1e99:
+       case 0x1ef3:
+       case 0x1ef7:
+       case 0x1ef9:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0324:
+      switch (p)
+       {
+       case 0x0055:
+       case 0x00d9:
+       case 0x00da:
+       case 0x00db:
+       case 0x00dc:
+       case 0x0168:
+       case 0x016a:
+       case 0x016c:
+       case 0x016e:
+       case 0x0170:
+       case 0x01d3:
+       case 0x01d5:
+       case 0x01d7:
+       case 0x01d9:
+       case 0x01db:
+       case 0x0214:
+       case 0x0216:
+       case 0x1e78:
+       case 0x1e7a:
+       case 0x1ee6:
+       case 0x0075:
+       case 0x00f9:
+       case 0x00fa:
+       case 0x00fb:
+       case 0x00fc:
+       case 0x0169:
+       case 0x016b:
+       case 0x016d:
+       case 0x016f:
+       case 0x0171:
+       case 0x01d4:
+       case 0x01d6:
+       case 0x01d8:
+       case 0x01da:
+       case 0x01dc:
+       case 0x0215:
+       case 0x0217:
+       case 0x1e79:
+       case 0x1e7b:
+       case 0x1ee7:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0325:
+      switch (p)
+       {
+       case 0x0041:
+       case 0x00c0:
+       case 0x00c1:
+       case 0x00c2:
+       case 0x00c3:
+       case 0x00c4:
+       case 0x00c5:
+       case 0x0100:
+       case 0x0102:
+       case 0x01cd:
+       case 0x01de:
+       case 0x01e0:
+       case 0x01fa:
+       case 0x0200:
+       case 0x0202:
+       case 0x0226:
+       case 0x1ea2:
+       case 0x1ea4:
+       case 0x1ea6:
+       case 0x1ea8:
+       case 0x1eaa:
+       case 0x1eae:
+       case 0x1eb0:
+       case 0x1eb2:
+       case 0x1eb4:
+       case 0x0061:
+       case 0x00e0:
+       case 0x00e1:
+       case 0x00e2:
+       case 0x00e3:
+       case 0x00e4:
+       case 0x00e5:
+       case 0x0101:
+       case 0x0103:
+       case 0x01ce:
+       case 0x01df:
+       case 0x01e1:
+       case 0x01fb:
+       case 0x0201:
+       case 0x0203:
+       case 0x0227:
+       case 0x1ea3:
+       case 0x1ea5:
+       case 0x1ea7:
+       case 0x1ea9:
+       case 0x1eab:
+       case 0x1eaf:
+       case 0x1eb1:
+       case 0x1eb3:
+       case 0x1eb5:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0326:
+      switch (p)
+       {
+       case 0x0053:
+       case 0x015a:
+       case 0x015c:
+       case 0x0160:
+       case 0x1e60:
+       case 0x1e64:
+       case 0x1e66:
+       case 0x0073:
+       case 0x015b:
+       case 0x015d:
+       case 0x0161:
+       case 0x1e61:
+       case 0x1e65:
+       case 0x1e67:
+       case 0x0054:
+       case 0x0164:
+       case 0x1e6a:
+       case 0x0074:
+       case 0x0165:
+       case 0x1e6b:
+       case 0x1e97:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0327:
+      switch (p)
+       {
+       case 0x0043:
+       case 0x0106:
+       case 0x0108:
+       case 0x010a:
+       case 0x010c:
+       case 0x0063:
+       case 0x0107:
+       case 0x0109:
+       case 0x010b:
+       case 0x010d:
+       case 0x0047:
+       case 0x011c:
+       case 0x011e:
+       case 0x0120:
+       case 0x01e6:
+       case 0x01f4:
+       case 0x1e20:
+       case 0x0067:
+       case 0x011d:
+       case 0x011f:
+       case 0x0121:
+       case 0x01e7:
+       case 0x01f5:
+       case 0x1e21:
+       case 0x004b:
+       case 0x01e8:
+       case 0x1e30:
+       case 0x1e32:
+       case 0x1e34:
+       case 0x006b:
+       case 0x01e9:
+       case 0x1e31:
+       case 0x1e33:
+       case 0x1e35:
+       case 0x004c:
+       case 0x0139:
+       case 0x013d:
+       case 0x1e36:
+       case 0x1e38:
+       case 0x1e3a:
+       case 0x1e3c:
+       case 0x006c:
+       case 0x013a:
+       case 0x013e:
+       case 0x1e37:
+       case 0x1e39:
+       case 0x1e3b:
+       case 0x1e3d:
+       case 0x004e:
+       case 0x00d1:
+       case 0x0143:
+       case 0x0147:
+       case 0x01f8:
+       case 0x1e44:
+       case 0x1e46:
+       case 0x1e48:
+       case 0x1e4a:
+       case 0x006e:
+       case 0x00f1:
+       case 0x0144:
+       case 0x0148:
+       case 0x01f9:
+       case 0x1e45:
+       case 0x1e47:
+       case 0x1e49:
+       case 0x1e4b:
+       case 0x0052:
+       case 0x0154:
+       case 0x0158:
+       case 0x0210:
+       case 0x0212:
+       case 0x1e58:
+       case 0x1e5a:
+       case 0x1e5c:
+       case 0x1e5e:
+       case 0x0072:
+       case 0x0155:
+       case 0x0159:
+       case 0x0211:
+       case 0x0213:
+       case 0x1e59:
+       case 0x1e5b:
+       case 0x1e5d:
+       case 0x1e5f:
+       case 0x0053:
+       case 0x015a:
+       case 0x015c:
+       case 0x0160:
+       case 0x0218:
+       case 0x1e60:
+       case 0x1e62:
+       case 0x1e64:
+       case 0x1e66:
+       case 0x1e68:
+       case 0x0073:
+       case 0x015b:
+       case 0x015d:
+       case 0x0161:
+       case 0x0219:
+       case 0x1e61:
+       case 0x1e63:
+       case 0x1e65:
+       case 0x1e67:
+       case 0x1e69:
+       case 0x0054:
+       case 0x0164:
+       case 0x021a:
+       case 0x1e6a:
+       case 0x1e6c:
+       case 0x1e6e:
+       case 0x1e70:
+       case 0x0074:
+       case 0x0165:
+       case 0x021b:
+       case 0x1e6b:
+       case 0x1e6d:
+       case 0x1e6f:
+       case 0x1e71:
+       case 0x1e97:
+       case 0x0045:
+       case 0x00c8:
+       case 0x00c9:
+       case 0x00ca:
+       case 0x00cb:
+       case 0x0112:
+       case 0x0114:
+       case 0x0116:
+       case 0x011a:
+       case 0x0204:
+       case 0x0206:
+       case 0x1e14:
+       case 0x1e16:
+       case 0x1e18:
+       case 0x1e1a:
+       case 0x1eb8:
+       case 0x1eba:
+       case 0x1ebc:
+       case 0x1ebe:
+       case 0x1ec0:
+       case 0x1ec2:
+       case 0x1ec4:
+       case 0x1ec6:
+       case 0x0065:
+       case 0x00e8:
+       case 0x00e9:
+       case 0x00ea:
+       case 0x00eb:
+       case 0x0113:
+       case 0x0115:
+       case 0x0117:
+       case 0x011b:
+       case 0x0205:
+       case 0x0207:
+       case 0x1e15:
+       case 0x1e17:
+       case 0x1e19:
+       case 0x1e1b:
+       case 0x1eb9:
+       case 0x1ebb:
+       case 0x1ebd:
+       case 0x1ebf:
+       case 0x1ec1:
+       case 0x1ec3:
+       case 0x1ec5:
+       case 0x1ec7:
+       case 0x0044:
+       case 0x010e:
+       case 0x1e0a:
+       case 0x1e0c:
+       case 0x1e0e:
+       case 0x1e12:
+       case 0x0064:
+       case 0x010f:
+       case 0x1e0b:
+       case 0x1e0d:
+       case 0x1e0f:
+       case 0x1e13:
+       case 0x0048:
+       case 0x0124:
+       case 0x021e:
+       case 0x1e22:
+       case 0x1e24:
+       case 0x1e26:
+       case 0x1e2a:
+       case 0x0068:
+       case 0x0125:
+       case 0x021f:
+       case 0x1e23:
+       case 0x1e25:
+       case 0x1e27:
+       case 0x1e2b:
+       case 0x1e96:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0328:
+      switch (p)
+       {
+       case 0x0041:
+       case 0x00c0:
+       case 0x00c1:
+       case 0x00c2:
+       case 0x00c3:
+       case 0x00c4:
+       case 0x00c5:
+       case 0x0100:
+       case 0x0102:
+       case 0x01cd:
+       case 0x01de:
+       case 0x01e0:
+       case 0x01fa:
+       case 0x0200:
+       case 0x0202:
+       case 0x0226:
+       case 0x1e00:
+       case 0x1ea0:
+       case 0x1ea2:
+       case 0x1ea4:
+       case 0x1ea6:
+       case 0x1ea8:
+       case 0x1eaa:
+       case 0x1eac:
+       case 0x1eae:
+       case 0x1eb0:
+       case 0x1eb2:
+       case 0x1eb4:
+       case 0x1eb6:
+       case 0x0061:
+       case 0x00e0:
+       case 0x00e1:
+       case 0x00e2:
+       case 0x00e3:
+       case 0x00e4:
+       case 0x00e5:
+       case 0x0101:
+       case 0x0103:
+       case 0x01ce:
+       case 0x01df:
+       case 0x01e1:
+       case 0x01fb:
+       case 0x0201:
+       case 0x0203:
+       case 0x0227:
+       case 0x1e01:
+       case 0x1ea1:
+       case 0x1ea3:
+       case 0x1ea5:
+       case 0x1ea7:
+       case 0x1ea9:
+       case 0x1eab:
+       case 0x1ead:
+       case 0x1eaf:
+       case 0x1eb1:
+       case 0x1eb3:
+       case 0x1eb5:
+       case 0x1eb7:
+       case 0x0045:
+       case 0x00c8:
+       case 0x00c9:
+       case 0x00ca:
+       case 0x00cb:
+       case 0x0112:
+       case 0x0114:
+       case 0x0116:
+       case 0x011a:
+       case 0x0204:
+       case 0x0206:
+       case 0x1e14:
+       case 0x1e16:
+       case 0x1e18:
+       case 0x1e1a:
+       case 0x1eb8:
+       case 0x1eba:
+       case 0x1ebc:
+       case 0x1ebe:
+       case 0x1ec0:
+       case 0x1ec2:
+       case 0x1ec4:
+       case 0x1ec6:
+       case 0x0065:
+       case 0x00e8:
+       case 0x00e9:
+       case 0x00ea:
+       case 0x00eb:
+       case 0x0113:
+       case 0x0115:
+       case 0x0117:
+       case 0x011b:
+       case 0x0205:
+       case 0x0207:
+       case 0x1e15:
+       case 0x1e17:
+       case 0x1e19:
+       case 0x1e1b:
+       case 0x1eb9:
+       case 0x1ebb:
+       case 0x1ebd:
+       case 0x1ebf:
+       case 0x1ec1:
+       case 0x1ec3:
+       case 0x1ec5:
+       case 0x1ec7:
+       case 0x0049:
+       case 0x00cc:
+       case 0x00cd:
+       case 0x00ce:
+       case 0x00cf:
+       case 0x0128:
+       case 0x012a:
+       case 0x012c:
+       case 0x0130:
+       case 0x01cf:
+       case 0x0208:
+       case 0x020a:
+       case 0x1e2c:
+       case 0x1e2e:
+       case 0x1ec8:
+       case 0x1eca:
+       case 0x0069:
+       case 0x00ec:
+       case 0x00ed:
+       case 0x00ee:
+       case 0x00ef:
+       case 0x0129:
+       case 0x012b:
+       case 0x012d:
+       case 0x01d0:
+       case 0x0209:
+       case 0x020b:
+       case 0x1e2d:
+       case 0x1e2f:
+       case 0x1ec9:
+       case 0x1ecb:
+       case 0x0055:
+       case 0x00d9:
+       case 0x00da:
+       case 0x00db:
+       case 0x00dc:
+       case 0x0168:
+       case 0x016a:
+       case 0x016c:
+       case 0x016e:
+       case 0x0170:
+       case 0x01af:
+       case 0x01d3:
+       case 0x01d5:
+       case 0x01d7:
+       case 0x01d9:
+       case 0x01db:
+       case 0x0214:
+       case 0x0216:
+       case 0x1e72:
+       case 0x1e74:
+       case 0x1e76:
+       case 0x1e78:
+       case 0x1e7a:
+       case 0x1ee4:
+       case 0x1ee6:
+       case 0x1ee8:
+       case 0x1eea:
+       case 0x1eec:
+       case 0x1eee:
+       case 0x1ef0:
+       case 0x0075:
+       case 0x00f9:
+       case 0x00fa:
+       case 0x00fb:
+       case 0x00fc:
+       case 0x0169:
+       case 0x016b:
+       case 0x016d:
+       case 0x016f:
+       case 0x0171:
+       case 0x01b0:
+       case 0x01d4:
+       case 0x01d6:
+       case 0x01d8:
+       case 0x01da:
+       case 0x01dc:
+       case 0x0215:
+       case 0x0217:
+       case 0x1e73:
+       case 0x1e75:
+       case 0x1e77:
+       case 0x1e79:
+       case 0x1e7b:
+       case 0x1ee5:
+       case 0x1ee7:
+       case 0x1ee9:
+       case 0x1eeb:
+       case 0x1eed:
+       case 0x1eef:
+       case 0x1ef1:
+       case 0x004f:
+       case 0x00d2:
+       case 0x00d3:
+       case 0x00d4:
+       case 0x00d5:
+       case 0x00d6:
+       case 0x014c:
+       case 0x014e:
+       case 0x0150:
+       case 0x01a0:
+       case 0x01d1:
+       case 0x020c:
+       case 0x020e:
+       case 0x022a:
+       case 0x022c:
+       case 0x022e:
+       case 0x0230:
+       case 0x1e4c:
+       case 0x1e4e:
+       case 0x1e50:
+       case 0x1e52:
+       case 0x1ecc:
+       case 0x1ece:
+       case 0x1ed0:
+       case 0x1ed2:
+       case 0x1ed4:
+       case 0x1ed6:
+       case 0x1ed8:
+       case 0x1eda:
+       case 0x1edc:
+       case 0x1ede:
+       case 0x1ee0:
+       case 0x1ee2:
+       case 0x006f:
+       case 0x00f2:
+       case 0x00f3:
+       case 0x00f4:
+       case 0x00f5:
+       case 0x00f6:
+       case 0x014d:
+       case 0x014f:
+       case 0x0151:
+       case 0x01a1:
+       case 0x01d2:
+       case 0x020d:
+       case 0x020f:
+       case 0x022b:
+       case 0x022d:
+       case 0x022f:
+       case 0x0231:
+       case 0x1e4d:
+       case 0x1e4f:
+       case 0x1e51:
+       case 0x1e53:
+       case 0x1ecd:
+       case 0x1ecf:
+       case 0x1ed1:
+       case 0x1ed3:
+       case 0x1ed5:
+       case 0x1ed7:
+       case 0x1ed9:
+       case 0x1edb:
+       case 0x1edd:
+       case 0x1edf:
+       case 0x1ee1:
+       case 0x1ee3:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x032d:
+      switch (p)
+       {
+       case 0x0044:
+       case 0x010e:
+       case 0x1e0a:
+       case 0x0064:
+       case 0x010f:
+       case 0x1e0b:
+       case 0x0045:
+       case 0x00c8:
+       case 0x00c9:
+       case 0x00ca:
+       case 0x00cb:
+       case 0x0112:
+       case 0x0114:
+       case 0x0116:
+       case 0x011a:
+       case 0x0204:
+       case 0x0206:
+       case 0x1e14:
+       case 0x1e16:
+       case 0x1eba:
+       case 0x1ebc:
+       case 0x1ebe:
+       case 0x1ec0:
+       case 0x1ec2:
+       case 0x1ec4:
+       case 0x0065:
+       case 0x00e8:
+       case 0x00e9:
+       case 0x00ea:
+       case 0x00eb:
+       case 0x0113:
+       case 0x0115:
+       case 0x0117:
+       case 0x011b:
+       case 0x0205:
+       case 0x0207:
+       case 0x1e15:
+       case 0x1e17:
+       case 0x1ebb:
+       case 0x1ebd:
+       case 0x1ebf:
+       case 0x1ec1:
+       case 0x1ec3:
+       case 0x1ec5:
+       case 0x004c:
+       case 0x0139:
+       case 0x013d:
+       case 0x006c:
+       case 0x013a:
+       case 0x013e:
+       case 0x004e:
+       case 0x00d1:
+       case 0x0143:
+       case 0x0147:
+       case 0x01f8:
+       case 0x1e44:
+       case 0x006e:
+       case 0x00f1:
+       case 0x0144:
+       case 0x0148:
+       case 0x01f9:
+       case 0x1e45:
+       case 0x0054:
+       case 0x0164:
+       case 0x1e6a:
+       case 0x0074:
+       case 0x0165:
+       case 0x1e6b:
+       case 0x1e97:
+       case 0x0055:
+       case 0x00d9:
+       case 0x00da:
+       case 0x00db:
+       case 0x00dc:
+       case 0x0168:
+       case 0x016a:
+       case 0x016c:
+       case 0x016e:
+       case 0x0170:
+       case 0x01d3:
+       case 0x01d5:
+       case 0x01d7:
+       case 0x01d9:
+       case 0x01db:
+       case 0x0214:
+       case 0x0216:
+       case 0x1e78:
+       case 0x1e7a:
+       case 0x1ee6:
+       case 0x0075:
+       case 0x00f9:
+       case 0x00fa:
+       case 0x00fb:
+       case 0x00fc:
+       case 0x0169:
+       case 0x016b:
+       case 0x016d:
+       case 0x016f:
+       case 0x0171:
+       case 0x01d4:
+       case 0x01d6:
+       case 0x01d8:
+       case 0x01da:
+       case 0x01dc:
+       case 0x0215:
+       case 0x0217:
+       case 0x1e79:
+       case 0x1e7b:
+       case 0x1ee7:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x032e:
+      switch (p)
+       {
+       case 0x0048:
+       case 0x0124:
+       case 0x021e:
+       case 0x1e22:
+       case 0x1e26:
+       case 0x0068:
+       case 0x0125:
+       case 0x021f:
+       case 0x1e23:
+       case 0x1e27:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0330:
+      switch (p)
+       {
+       case 0x0045:
+       case 0x00c8:
+       case 0x00c9:
+       case 0x00ca:
+       case 0x00cb:
+       case 0x0112:
+       case 0x0114:
+       case 0x0116:
+       case 0x011a:
+       case 0x0204:
+       case 0x0206:
+       case 0x1e14:
+       case 0x1e16:
+       case 0x1eba:
+       case 0x1ebc:
+       case 0x1ebe:
+       case 0x1ec0:
+       case 0x1ec2:
+       case 0x1ec4:
+       case 0x0065:
+       case 0x00e8:
+       case 0x00e9:
+       case 0x00ea:
+       case 0x00eb:
+       case 0x0113:
+       case 0x0115:
+       case 0x0117:
+       case 0x011b:
+       case 0x0205:
+       case 0x0207:
+       case 0x1e15:
+       case 0x1e17:
+       case 0x1ebb:
+       case 0x1ebd:
+       case 0x1ebf:
+       case 0x1ec1:
+       case 0x1ec3:
+       case 0x1ec5:
+       case 0x0049:
+       case 0x00cc:
+       case 0x00cd:
+       case 0x00ce:
+       case 0x00cf:
+       case 0x0128:
+       case 0x012a:
+       case 0x012c:
+       case 0x0130:
+       case 0x01cf:
+       case 0x0208:
+       case 0x020a:
+       case 0x1e2e:
+       case 0x1ec8:
+       case 0x0069:
+       case 0x00ec:
+       case 0x00ed:
+       case 0x00ee:
+       case 0x00ef:
+       case 0x0129:
+       case 0x012b:
+       case 0x012d:
+       case 0x01d0:
+       case 0x0209:
+       case 0x020b:
+       case 0x1e2f:
+       case 0x1ec9:
+       case 0x0055:
+       case 0x00d9:
+       case 0x00da:
+       case 0x00db:
+       case 0x00dc:
+       case 0x0168:
+       case 0x016a:
+       case 0x016c:
+       case 0x016e:
+       case 0x0170:
+       case 0x01d3:
+       case 0x01d5:
+       case 0x01d7:
+       case 0x01d9:
+       case 0x01db:
+       case 0x0214:
+       case 0x0216:
+       case 0x1e78:
+       case 0x1e7a:
+       case 0x1ee6:
+       case 0x0075:
+       case 0x00f9:
+       case 0x00fa:
+       case 0x00fb:
+       case 0x00fc:
+       case 0x0169:
+       case 0x016b:
+       case 0x016d:
+       case 0x016f:
+       case 0x0171:
+       case 0x01d4:
+       case 0x01d6:
+       case 0x01d8:
+       case 0x01da:
+       case 0x01dc:
+       case 0x0215:
+       case 0x0217:
+       case 0x1e79:
+       case 0x1e7b:
+       case 0x1ee7:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0331:
+      switch (p)
+       {
+       case 0x0042:
+       case 0x1e02:
+       case 0x0062:
+       case 0x1e03:
+       case 0x0044:
+       case 0x010e:
+       case 0x1e0a:
+       case 0x0064:
+       case 0x010f:
+       case 0x1e0b:
+       case 0x004b:
+       case 0x01e8:
+       case 0x1e30:
+       case 0x006b:
+       case 0x01e9:
+       case 0x1e31:
+       case 0x004c:
+       case 0x0139:
+       case 0x013d:
+       case 0x006c:
+       case 0x013a:
+       case 0x013e:
+       case 0x004e:
+       case 0x00d1:
+       case 0x0143:
+       case 0x0147:
+       case 0x01f8:
+       case 0x1e44:
+       case 0x006e:
+       case 0x00f1:
+       case 0x0144:
+       case 0x0148:
+       case 0x01f9:
+       case 0x1e45:
+       case 0x0052:
+       case 0x0154:
+       case 0x0158:
+       case 0x0210:
+       case 0x0212:
+       case 0x1e58:
+       case 0x0072:
+       case 0x0155:
+       case 0x0159:
+       case 0x0211:
+       case 0x0213:
+       case 0x1e59:
+       case 0x0054:
+       case 0x0164:
+       case 0x1e6a:
+       case 0x0074:
+       case 0x0165:
+       case 0x1e6b:
+       case 0x1e97:
+       case 0x005a:
+       case 0x0179:
+       case 0x017b:
+       case 0x017d:
+       case 0x1e90:
+       case 0x007a:
+       case 0x017a:
+       case 0x017c:
+       case 0x017e:
+       case 0x1e91:
+       case 0x0068:
+       case 0x0125:
+       case 0x021f:
+       case 0x1e23:
+       case 0x1e27:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0338:
+      switch (p)
+       {
+       /* Non-NFC cases not applicable to C/C++.  */
+       default:
+         return true;
+       }
+
+    case 0x0342:
+      switch (p)
+       {
+       case 0x1f00:
+       case 0x1f80:
+       case 0x1f01:
+       case 0x1f81:
+       case 0x1f08:
+       case 0x1f88:
+       case 0x1f09:
+       case 0x1f89:
+       case 0x1f20:
+       case 0x1f90:
+       case 0x1f21:
+       case 0x1f91:
+       case 0x1f28:
+       case 0x1f98:
+       case 0x1f29:
+       case 0x1f99:
+       case 0x1f30:
+       case 0x1f31:
+       case 0x1f38:
+       case 0x1f39:
+       case 0x1f50:
+       case 0x1f51:
+       case 0x1f59:
+       case 0x1f60:
+       case 0x1fa0:
+       case 0x1f61:
+       case 0x1fa1:
+       case 0x1f68:
+       case 0x1fa8:
+       case 0x1f69:
+       case 0x1fa9:
+       case 0x03b1:
+       case 0x1fb3:
+       case 0x00a8:
+       case 0x03b7:
+       case 0x1fc3:
+       case 0x1fbf:
+       case 0x03b9:
+       case 0x03ca:
+       case 0x1ffe:
+       case 0x03c5:
+       case 0x03cb:
+       case 0x03c9:
+       case 0x1ff3:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0345:
+      switch (p)
+       {
+       case 0x1f00:
+       case 0x1f01:
+       case 0x1f02:
+       case 0x1f03:
+       case 0x1f04:
+       case 0x1f05:
+       case 0x1f06:
+       case 0x1f07:
+       case 0x1f08:
+       case 0x1f09:
+       case 0x1f0a:
+       case 0x1f0b:
+       case 0x1f0c:
+       case 0x1f0d:
+       case 0x1f0e:
+       case 0x1f0f:
+       case 0x1f20:
+       case 0x1f21:
+       case 0x1f22:
+       case 0x1f23:
+       case 0x1f24:
+       case 0x1f25:
+       case 0x1f26:
+       case 0x1f27:
+       case 0x1f28:
+       case 0x1f29:
+       case 0x1f2a:
+       case 0x1f2b:
+       case 0x1f2c:
+       case 0x1f2d:
+       case 0x1f2e:
+       case 0x1f2f:
+       case 0x1f60:
+       case 0x1f61:
+       case 0x1f62:
+       case 0x1f63:
+       case 0x1f64:
+       case 0x1f65:
+       case 0x1f66:
+       case 0x1f67:
+       case 0x1f68:
+       case 0x1f69:
+       case 0x1f6a:
+       case 0x1f6b:
+       case 0x1f6c:
+       case 0x1f6d:
+       case 0x1f6e:
+       case 0x1f6f:
+       case 0x1f70:
+       case 0x03b1:
+       case 0x03ac:
+       case 0x1fb6:
+       case 0x0391:
+       case 0x1f74:
+       case 0x03b7:
+       case 0x03ae:
+       case 0x1fc6:
+       case 0x0397:
+       case 0x1f7c:
+       case 0x03c9:
+       case 0x03ce:
+       case 0x1ff6:
+       case 0x03a9:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0653:
+      switch (p)
+       {
+       case 0x0627:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0654:
+      switch (p)
+       {
+       case 0x0627:
+       case 0x0648:
+       case 0x064a:
+       case 0x06d5:
+       case 0x06c1:
+       case 0x06d2:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0655:
+      switch (p)
+       {
+       case 0x0627:
+       case 0x0622:
+       case 0x0623:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x093c:
+      switch (p)
+       {
+       case 0x0928:
+       case 0x0930:
+       case 0x0933:
+       case 0x0915:
+       case 0x0916:
+       case 0x0917:
+       case 0x091c:
+       case 0x0921:
+       case 0x0922:
+       case 0x092b:
+       case 0x092f:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x09be:
+      switch (p)
+       {
+       case 0x09c7:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x09d7:
+      switch (p)
+       {
+       case 0x09c7:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0b3e:
+      switch (p)
+       {
+       case 0x0b47:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0b56:
+      switch (p)
+       {
+       case 0x0b47:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0b57:
+      switch (p)
+       {
+       case 0x0b47:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0bbe:
+      switch (p)
+       {
+       case 0x0bc6:
+       case 0x0bc7:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0bd7:
+      switch (p)
+       {
+       case 0x0b92:
+       case 0x0bc6:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0c56:
+      switch (p)
+       {
+       case 0x0c46:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0cc2:
+      switch (p)
+       {
+       case 0x0cc6:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0cd5:
+      switch (p)
+       {
+       case 0x0cbf:
+       case 0x0cc6:
+       case 0x0cca:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0cd6:
+      switch (p)
+       {
+       case 0x0cc6:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0d3e:
+      switch (p)
+       {
+       case 0x0d46:
+       case 0x0d47:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0d57:
+      switch (p)
+       {
+       case 0x0d46:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0dca:
+      switch (p)
+       {
+       case 0x0dd9:
+       case 0x0ddc:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0dcf:
+      switch (p)
+       {
+       case 0x0dd9:
+       case 0x0dda:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x0ddf:
+      switch (p)
+       {
+       case 0x0dd9:
+       case 0x0dda:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x102e:
+      switch (p)
+       {
+       case 0x1025:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x1b35:
+      switch (p)
+       {
+       case 0x1b05:
+       case 0x1b07:
+       case 0x1b09:
+       case 0x1b0b:
+       case 0x1b0d:
+       case 0x1b11:
+       case 0x1b3a:
+       case 0x1b3c:
+       case 0x1b3e:
+       case 0x1b3f:
+       case 0x1b42:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x3099:
+      switch (p)
+       {
+       case 0x304b:
+       case 0x304d:
+       case 0x304f:
+       case 0x3051:
+       case 0x3053:
+       case 0x3055:
+       case 0x3057:
+       case 0x3059:
+       case 0x305b:
+       case 0x305d:
+       case 0x305f:
+       case 0x3061:
+       case 0x3064:
+       case 0x3066:
+       case 0x3068:
+       case 0x306f:
+       case 0x3072:
+       case 0x3075:
+       case 0x3078:
+       case 0x307b:
+       case 0x3046:
+       case 0x309d:
+       case 0x30ab:
+       case 0x30ad:
+       case 0x30af:
+       case 0x30b1:
+       case 0x30b3:
+       case 0x30b5:
+       case 0x30b7:
+       case 0x30b9:
+       case 0x30bb:
+       case 0x30bd:
+       case 0x30bf:
+       case 0x30c1:
+       case 0x30c4:
+       case 0x30c6:
+       case 0x30c8:
+       case 0x30cf:
+       case 0x30d2:
+       case 0x30d5:
+       case 0x30d8:
+       case 0x30db:
+       case 0x30a6:
+       case 0x30ef:
+       case 0x30f0:
+       case 0x30f1:
+       case 0x30f2:
+       case 0x30fd:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x309a:
+      switch (p)
+       {
+       case 0x306f:
+       case 0x3072:
+       case 0x3075:
+       case 0x3078:
+       case 0x307b:
+       case 0x30cf:
+       case 0x30d2:
+       case 0x30d5:
+       case 0x30d8:
+       case 0x30db:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x110ba:
+      switch (p)
+       {
+       case 0x11099:
+       case 0x1109b:
+       case 0x110a5:
+         return false;
+       default:
+         return true;
+       }
+
+    case 0x11127:
+      switch (p)
+       {
+       case 0x11131:
+       case 0x11132:
+         return false;
+       default:
+         return true;
+       }
+
+    default:
+      cpp_error (pfile, CPP_DL_ICE, "Character %x might not be NFKC", c);
+      return true;
+  }
+}
index 643c230110eeb60435e8c260960a63d2d2148ce2..68d9e068b317a2d0ef19629cc6f5efd632853cc3 100644 (file)
@@ -19,7 +19,8 @@
 ; D, which is itself a reproduction from ISO/IEC TR 10176:1998, and
 ; the similar table from ISO/IEC 14882:1988 (C++98) Annex E, which is
 ; a reproduction of ISO/IEC PDTR 10176.  Unfortunately these tables
-; are not identical.
+; are not identical.  It also reproduces the somewhat different tables
+; in C11 and C++11, which are identical to each other.
 
 [C99]
 
@@ -209,3 +210,34 @@ fbd3-fd3f fd50-fd8f fd92-fdc7 fdf0-fdfb fe70-fe72 fe74 fe76-fefc
 ff21-ff3a ff41-ff5a ff66-ffbe ffc2-ffc7 ffca-ffcf ffd2-ffd7
 ffda-ffdc 4e00-9fa5
 
+[C11]
+; Group 1
+00a8 00aa 00ad 00af 00b2-00b5 00b7-00ba 00bc-00be 00c0-00d6 00d8-00f6
+00f8-00ff
+
+; Group 2, minus characters under C11NOSTART
+0100-02ff 0370-167f 1681-180d 180f-1dbf 1e00-1fff
+
+; Group 3
+200b-200d 202a-202e 203f-2040 2054 2060-206f
+
+; Group 4, minus characters under C11NOSTART
+2070-20cf 2100-218f 2460-24ff 2776-2793 2c00-2dff 2e80-2fff
+
+; Group 5
+3004-3007 3021-302f 3031-303f
+
+; Group 6
+3040-d7ff
+
+; Group 7, minus characters under C11NOSTART
+f900-fd3d fd40-fdcf fdf0-fe1f fe30-fe44 fe47-fffd
+
+; Group 8
+10000-1fffd 20000-2fffd 30000-3fffd 40000-4fffd 50000-5fffd
+60000-6fffd 70000-7fffd 80000-8fffd 90000-9fffd a0000-afffd
+b0000-bfffd c0000-cfffd d0000-dfffd e0000-efffd
+
+[C11NOSTART]
+; Group 1
+0300-036f 1dc0-1dff 20d0-20ff fe20-fe2f