]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
Ira's I18N stuff...
authormike <mike@7a7537e8-13f0-0310-91df-b6672ffda945>
Mon, 19 Aug 2002 01:15:26 +0000 (01:15 +0000)
committermike <mike@7a7537e8-13f0-0310-91df-b6672ffda945>
Mon, 19 Aug 2002 01:15:26 +0000 (01:15 +0000)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/branches/branch-1.2@2678 7a7537e8-13f0-0310-91df-b6672ffda945

44 files changed:
cups/Makefile
cups/language.c
cups/language.h
cups/normalize.c [new file with mode: 0644]
cups/normalize.h [new file with mode: 0644]
cups/testppd.c
cups/transcode.c [new file with mode: 0644]
cups/transcode.h [new file with mode: 0644]
data/Makefile
data/i18n_sdd.txt [new file with mode: 0644]
data/iso-8859-1.txt [new file with mode: 0644]
data/iso-8859-10.txt [new file with mode: 0644]
data/iso-8859-13.txt [new file with mode: 0644]
data/iso-8859-14.txt [new file with mode: 0644]
data/iso-8859-15.txt [new file with mode: 0644]
data/iso-8859-16.txt [new file with mode: 0644]
data/iso-8859-2.txt [new file with mode: 0644]
data/iso-8859-3.txt [new file with mode: 0644]
data/iso-8859-4.txt [new file with mode: 0644]
data/iso-8859-5.txt [new file with mode: 0644]
data/iso-8859-6.txt [new file with mode: 0644]
data/iso-8859-7.txt [new file with mode: 0644]
data/iso-8859-8.txt [new file with mode: 0644]
data/iso-8859-9.txt [new file with mode: 0644]
data/koi8-r.txt [new file with mode: 0644]
data/uni-comb.txt [new file with mode: 0644]
data/uni-fold.txt [new file with mode: 0644]
data/uni-full.txt [new file with mode: 0644]
data/uni-line.txt [new file with mode: 0644]
data/uni-nfc.txt [new file with mode: 0644]
data/uni-nfd.txt [new file with mode: 0644]
data/uni-nfkd.txt [new file with mode: 0644]
data/uni-prop.txt [new file with mode: 0644]
data/unibreak.txt [new file with mode: 0644]
data/windows-1250.txt [new file with mode: 0644]
data/windows-1251.txt [new file with mode: 0644]
data/windows-1252.txt [new file with mode: 0644]
data/windows-1253.txt [new file with mode: 0644]
data/windows-1254.txt [new file with mode: 0644]
data/windows-1255.txt [new file with mode: 0644]
data/windows-1256.txt [new file with mode: 0644]
data/windows-1257.txt [new file with mode: 0644]
data/windows-1258.txt [new file with mode: 0644]
data/windows-874.txt [new file with mode: 0644]

index 2657482ec996ed47c6349fe9d8fde08acc83de00..dbd6ae45ac82f0e28ef14eddb9be1881b5dfbafd 100644 (file)
@@ -1,5 +1,5 @@
 #
-# "$Id: Makefile,v 1.53.2.16 2002/08/10 00:05:44 mike Exp $"
+# "$Id: Makefile,v 1.53.2.17 2002/08/19 01:15:19 mike Exp $"
 #
 #   API library Makefile for the Common UNIX Printing System (CUPS).
 #
@@ -32,23 +32,25 @@ include ../Makedefs
 
 LIBOBJS        =       attr.o dest.o emit.o encode.o extended.o http.o http-addr.o \
                ipp.o langprintf.o language.o mark.o md5.o md5passwd.o \
-               options.o page.o ppd.o snprintf.o string.o tempfile.o \
-               usersys.o util.o
-OBJS   =       $(LIBOBJS) testhttp.o testppd.o
+               normalize.o options.o page.o ppd.o snprintf.o string.o \
+               tempfile.o transcode.o usersys.o util.o
+OBJS   =       $(LIBOBJS) testhttp.o testi18n.o testlang.o testppd.o
 
 
 #
 # Header files to install...
 #
 
-HEADERS        =       cups.h http.h ipp.h language.h md5.h ppd.h
+HEADERS        =       cups.h http.h ipp.h language.h md5.h normalize.h ppd.h \
+               transcode.h
 
 
 #
 # Targets in this directory...
 #
 
-TARGETS        =       $(LIBCUPS) libcups.a
+TARGETS        =       $(LIBCUPS) libcups.a \
+               testhttp testi18n testlang testppd
 
 
 #
@@ -179,6 +181,15 @@ testhttp:  testhttp.o libcups.a
        $(CC) $(LDFLAGS) -o $@ testhttp.o libcups.a $(NETLIBS) $(SSLLIBS)
 
 
+#
+# testi18n (dependency on static CUPS library is intentional)
+#
+
+testi18n:      testi18n.o libcups.a
+       echo Linking $@...
+       $(CC) $(LDFLAGS) -o $@ testi18n.o libcups.a $(NETLIBS) $(SSLLIBS)
+
+
 #
 # testlang (dependency on static CUPS library is intentional)
 #
@@ -194,7 +205,7 @@ testlang:   testlang.o libcups.a
 
 testppd:       testppd.o libcups.a
        echo Linking $@...
-       $(CC) $(LDFLAGS) -o $@ testppd.o libcups.a $(NETLIBS)
+       $(CC) $(LDFLAGS) -o $@ testppd.o libcups.a $(NETLIBS) $(SSLLIBS)
 
 
 #
@@ -205,5 +216,5 @@ include Dependencies
 
 
 #
-# End of "$Id: Makefile,v 1.53.2.16 2002/08/10 00:05:44 mike Exp $".
+# End of "$Id: Makefile,v 1.53.2.17 2002/08/19 01:15:19 mike Exp $".
 #
index fce16fcfa1f3318aad55d0e4acf08432af931eb8..a412a2d21b919f8c5b0610bde783243ca9ccc4e8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: language.c,v 1.20.2.7 2002/05/23 20:13:28 mike Exp $"
+ * "$Id: language.c,v 1.20.2.8 2002/08/19 01:15:19 mike Exp $"
  *
  *   I18N/language support for the Common UNIX Printing System (CUPS).
  *
@@ -25,6 +25,8 @@
  *
  * Contents:
  *
+ *   cupsEncodingName() - Return the character encoding name string
+ *                        for the given encoding enumeration.
  *   cupsLangEncoding() - Return the character encoding (us-ascii, etc.)
  *                        for the given language.
  *   cupsLangFlush()    - Flush all language data out of the cache.
@@ -48,8 +50,8 @@
  */
 
 static cups_lang_t     *lang_cache = NULL;     /* Language string cache */
-static char            *lang_blank = "";       /* Blank constant string */
-static char            *lang_encodings[] =     /* Encoding strings */
+static const char      *lang_blank = "";       /* Blank constant string */
+static const char      *lang_encodings[] =     /* Encoding strings */
                        {
                          "us-ascii",
                          "iso-8859-1",
@@ -79,19 +81,36 @@ static char         *lang_encodings[] =     /* Encoding strings */
                          "koi8-r",
                          "koi8-u"
                        };
-static char            *lang_default[] =       /* Default POSIX locale */
+static const char      *lang_default[] =       /* Default POSIX locale */
                        {
 #include "cups_C.h"
                          NULL
                        };
 
 
+/*
+ * 'cupsEncodingName()' - Return the character encoding name string
+ *                        for the given encoding enumeration.
+ */
+
+const char *                           /* O - Character encoding */
+cupsEncodingName(cups_encoding_t encoding)
+                                       /* I - Encoding enum */
+{
+  if (encoding < 0 ||
+      encoding >= (sizeof(lang_encodings) / sizeof(const char *)))
+    return (lang_encodings[0]);
+  else
+    return (lang_encodings[encoding]);
+}
+
+
 /*
  * 'cupsLangEncoding()' - Return the character encoding (us-ascii, etc.)
  *                        for the given language.
  */
 
-char *                                 /* O - Character encoding */
+const char *                           /* O - Character encoding */
 cupsLangEncoding(cups_lang_t *lang)    /* I - Language data */
 {
   if (lang == NULL)
@@ -422,5 +441,5 @@ cupsLangGet(const char *language) /* I - Language or locale */
 
 
 /*
- * End of "$Id: language.c,v 1.20.2.7 2002/05/23 20:13:28 mike Exp $".
+ * End of "$Id: language.c,v 1.20.2.8 2002/08/19 01:15:19 mike Exp $".
  */
index 6bc44c46ceaa07d4ff723335be54be4f4e56fcb6..320d9d829f9a0fe66f70795f7a4a5c81b8308c81 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: language.h,v 1.18.2.11 2002/06/06 02:02:31 mike Exp $"
+ * "$Id: language.h,v 1.18.2.12 2002/08/19 01:15:20 mike Exp $"
  *
  *   Multi-language support for the Common UNIX Printing System (CUPS).
  *
@@ -261,7 +261,8 @@ typedef struct cups_lang_str        /**** Language Cache Structure ****/
 #    define            cupsLangDefault() cupsLangGet(setlocale(LC_MESSAGES, ""))
 #  endif /* WIN32 || __EMX__ || __APPLE__ */
 
-extern char            *cupsLangEncoding(cups_lang_t *lang);
+extern const char      *cupsEncodingName(cups_encoding_t encoding);
+extern const char      *cupsLangEncoding(cups_lang_t *lang);
 extern void            cupsLangFlush(void);
 extern void            cupsLangFree(cups_lang_t *lang);
 extern cups_lang_t     *cupsLangGet(const char *language);
@@ -278,5 +279,5 @@ extern int          cupsLangPuts(FILE *fp, cups_lang_t *lang,
 #endif /* !_CUPS_LANGUAGE_H_ */
 
 /*
- * End of "$Id: language.h,v 1.18.2.11 2002/06/06 02:02:31 mike Exp $".
+ * End of "$Id: language.h,v 1.18.2.12 2002/08/19 01:15:20 mike Exp $".
  */
diff --git a/cups/normalize.c b/cups/normalize.c
new file mode 100644 (file)
index 0000000..0f5e83e
--- /dev/null
@@ -0,0 +1,1900 @@
+/*
+ * "$Id: normalize.c,v 1.1.2.1 2002/08/19 01:15:20 mike Exp $"
+ *
+ *   Transcoding support for the Common UNIX Printing System (CUPS).
+ *
+ *   Copyright 1997-2002 by Easy Software Products.
+ *
+ *   These coded instructions, statements, and computer programs are
+ *   the property of Easy Software Products and are protected by Federal
+ *   copyright law.  Distribution and use rights are outlined in the
+ *   file "LICENSE.txt" which should have been included with this file.
+ *   If this file is missing or damaged please contact Easy Software
+ *   Products at:
+ *
+ *       Attn: CUPS Licensing Information
+ *       Easy Software Products
+ *       44141 Airport View Drive, Suite 204
+ *       Hollywood, Maryland 20636-3111 USA
+ *
+ *       Voice: (301) 373-9603
+ *       EMail: cups-info@cups.org
+ *         WWW: http://www.cups.org
+ *
+ * Contents:
+ *
+ *   cupsNormalizeMapsGet()       - Get all normalization maps into cache.
+ *   cupsNormalizeMapsFree()      - Free all normalization maps in cache.
+ *   cupsNormalizeMapsFlush()     - Flush all normalization maps in cache.
+ *   cupsUtf8Normalize()          - Normalize UTF-8 string.
+ *   cupsUtf32Normalize()         - Normalize UTF-32 string.
+ *   cupsUtf8CaseFold()           - Case fold UTF-8 string.
+ *   cupsUtf32CaseFold()          - Case fold UTF-32 string.
+ *   cupsUtf8CompareCaseless()    - Compare case folded UTF-8 strings.
+ *   cupsUtf32CompareCaseless()   - Compare case folded UTF-32 strings.
+ *   cupsUtf8CompareIdentifier()  - Compare folded NFKC UTF-8 strings.
+ *   cupsUtf32CompareIdentifier() - Compare folded NFKC UTF-32 strings.
+ *   get_general_category()       - Get UTF-32 Character General Category.
+ *   get_bidi_category()          - Get UTF-32 Character Bidi Category.
+ *   get_combining_class()        - Get UTF-32 Character Combining Class.
+ *   get_break_class()            - Get UTF-32 Character Line Break Class.
+ *   get_map_count()              - Count lines in a map file.
+ *   get_normmap()                - Get Unicode normalization map into cache.
+ *   get_foldmap()                - Get Unicode case folding map into cache.
+ *   get_propmap()                - Get Unicode character property map into cache.
+ *   get_combmap()                - Get Unicode combining class map into cache.
+ *   get_breakmap()               - Get Unicode line break class map into cache.
+ *   compare_compose()            - Compare key for compose match.
+ *   compare_decompose()          - Compare key for decompose match.
+ *   compare_foldchar()           - Compare key for case fold match.
+ *   compare_combchar()           - Compare key for combining char match.
+ *   compare_breakchar()          - Compare key for line break char match.
+ *   compare_propchar()           - Compare key for property char match.
+ */
+
+/*
+ * Include necessary headers...
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+#include <ctype.h>
+#include <time.h>
+
+#include "language.h"
+#include "string.h"
+#include "transcode.h"
+#include "normalize.h"
+
+/*
+ * Globals...
+ */
+
+int     NzSupportUcs2 = 1;  /* Support UCS-2 (16-bit) mapping */
+int     NzSupportUcs4 = 0;  /* Support UCS-4 (32-bit) mapping */
+
+/*
+ * Local Globals...
+ */
+
+static cups_normmap_t *normmap_cache = NULL;/* Normalize Map cache */
+static cups_foldmap_t *foldmap_cache = NULL;/* Case Fold cache */
+static cups_propmap_t *propmap_cache = NULL;/* Char Prop Map Cache */
+static cups_combmap_t *combmap_cache = NULL;/* Comb Class Map Cache */
+static cups_breakmap_t *breakmap_cache = NULL;/* Line Break Map Cache */
+
+typedef struct                  /**** General Category Index Struct****/
+{
+  cups_gencat_t         gencat;         /* General Category Value */
+  const char            *str;           /* General Category String */
+} gencat_t;
+
+static gencat_t gencat_index[] =        /* General Category Index */
+{
+  { CUPS_GENCAT_LU, "Lu" },     /* Letter, Uppercase */
+  { CUPS_GENCAT_LL, "Ll" },     /* Letter, Lowercase */
+  { CUPS_GENCAT_LT, "Lt" },     /* Letter, Titlecase */
+  { CUPS_GENCAT_LM, "Lm" },     /* Letter, Modifier */
+  { CUPS_GENCAT_LO, "Lo" },     /* Letter, Other */
+  { CUPS_GENCAT_MN, "Mn" },     /* Mark, Non-Spacing */
+  { CUPS_GENCAT_MC, "Mc" },     /* Mark, Spacing Combining */
+  { CUPS_GENCAT_ME, "Me" },     /* Mark, Enclosing */
+  { CUPS_GENCAT_ND, "Nd" },     /* Number, Decimal Digit */
+  { CUPS_GENCAT_NL, "Nl" },     /* Number, Letter */
+  { CUPS_GENCAT_NO, "No" },     /* Number, Other */
+  { CUPS_GENCAT_PC, "Pc" },     /* Punctuation, Connector */
+  { CUPS_GENCAT_PD, "Pd" },     /* Punctuation, Dash */
+  { CUPS_GENCAT_PS, "Ps" },     /* Punctuation, Open (start) */
+  { CUPS_GENCAT_PE, "Pe" },     /* Punctuation, Close (end) */
+  { CUPS_GENCAT_PI, "Pi" },     /* Punctuation, Initial Quote */
+  { CUPS_GENCAT_PF, "Pf" },     /* Punctuation, Final Quote */
+  { CUPS_GENCAT_PO, "Po" },     /* Punctuation, Other */
+  { CUPS_GENCAT_SM, "Sm" },     /* Symbol, Math */
+  { CUPS_GENCAT_SC, "Sc" },     /* Symbol, Currency */
+  { CUPS_GENCAT_SK, "Sk" },     /* Symbol, Modifier */
+  { CUPS_GENCAT_SO, "So" },     /* Symbol, Other */
+  { CUPS_GENCAT_ZS, "Zs" },     /* Separator, Space */
+  { CUPS_GENCAT_ZL, "Zl" },     /* Separator, Line */
+  { CUPS_GENCAT_ZP, "Zp" },     /* Separator, Paragraph */
+  { CUPS_GENCAT_CC, "Cc" },     /* Other, Control */
+  { CUPS_GENCAT_CF, "Cf" },     /* Other, Format */
+  { CUPS_GENCAT_CS, "Cs" },     /* Other, Surrogate */
+  { CUPS_GENCAT_CO, "Co" },     /* Other, Private Use */
+  { CUPS_GENCAT_CN, "Cn" },     /* Other, Not Assigned */
+  { 0, NULL }
+};
+
+static const char *bidicat_index[] =          /* Bidi Category Index */
+{
+  "L",  /* Left-to-Right (Alpha, Syllabic, Ideographic) */
+  "LRE",/* Left-to-Right Embedding (explicit) */
+  "LRO",/* Left-to-Right Override (explicit) */
+  "R",  /* Right-to-Left (Hebrew alphabet and most punct) */
+  "AL", /* Right-to-Left Arabic (Arabic, Thaana, Syriac) */
+  "RLE",/* Right-to-Left Embedding (explicit) */
+  "RLO",/* Right-to-Left Override (explicit) */
+  "PDF",/* Pop Directional Format */
+  "EN", /* Euro Number (Euro and East Arabic-Indic digits) */
+  "ES", /* Euro Number Separator (Slash) */
+  "ET", /* Euro Number Termintor (Plus, Minus, Degree, etc) */
+  "AN", /* Arabic Number (Arabic-Indic digits, separators) */
+  "CS", /* Common Number Separator (Colon, Comma, Dot, etc) */
+  "NSM",/* Non-Spacing Mark (category Mn / Me in UCD) */
+  "BN", /* Boundary Neutral (Formatting / Control chars) */
+  "B",  /* Paragraph Separator */
+  "S",  /* Segment Separator (Tab) */
+  "WS", /* Whitespace Space (Space, Line Separator, etc) */
+  "ON", /* Other Neutrals */
+  NULL
+};
+
+typedef struct                  /**** Line Break Class Index Struct****/
+{
+  cups_breakclass_t     breakclass;     /* Line Break Class Value */
+  const char            *str;           /* Line Break Class String */
+} break_t;
+
+static break_t break_index[] =          /* Line Break Class Index */
+{
+  { CUPS_BREAK_AI, "AI" },  /* Ambiguous (Alphabetic or Ideograph) */
+  { CUPS_BREAK_AL, "AL" },  /* Ordinary Alphabetic / Symbol Chars (XP) */
+  { CUPS_BREAK_BA, "BA" },  /* Break Opportunity After Chars (A) */
+  { CUPS_BREAK_BB, "BB" },  /* Break Opportunities Before Chars (B) */
+  { CUPS_BREAK_B2, "B2" },  /* Break Opportunity Before / After (B/A/XP) */
+  { CUPS_BREAK_BK, "BK" },  /* Mandatory Break (A) (normative) */
+  { CUPS_BREAK_CB, "CB" },  /* Contingent Break (B/A) (normative) */
+  { CUPS_BREAK_CL, "CL" },  /* Closing Punctuation (XB) */
+  { CUPS_BREAK_CM, "CM" },  /* Attached Chars/Combining (XB) (normative) */
+  { CUPS_BREAK_CR, "CR" },  /* Carriage Return (A) (normative) */
+  { CUPS_BREAK_EX, "EX" },  /* Exclamation / Interrogation (XB) */
+  { CUPS_BREAK_GL, "GL" },  /* Non-breaking ("Glue") (XB/XA) (normative) */
+  { CUPS_BREAK_HY, "HY" },  /* Hyphen (XA) */
+  { CUPS_BREAK_ID, "ID" },  /* Ideographic (B/A) */
+  { CUPS_BREAK_IN, "IN" },  /* Inseparable chars (XP) */
+  { CUPS_BREAK_IS, "IS" },  /* Numeric Separator (Infix) (XB) */
+  { CUPS_BREAK_LF, "LF" },  /* Line Feed (A) (normative) */
+  { CUPS_BREAK_NS, "NS" },  /* Non-starters (XB) */
+  { CUPS_BREAK_NU, "NU" },  /* Numeric (XP) */
+  { CUPS_BREAK_OP, "OP" },  /* Opening Punctuation (XA) */
+  { CUPS_BREAK_PO, "PO" },  /* Postfix (Numeric) (XB) */
+  { CUPS_BREAK_PR, "PR" },  /* Prefix (Numeric) (XA) */
+  { CUPS_BREAK_QU, "QU" },  /* Ambiguous Quotation (XB/XA) */
+  { CUPS_BREAK_SA, "SA" },  /* Context Dependent (South East Asian) (P) */
+  { CUPS_BREAK_SG, "SG" },  /* Surrogates (XP) (normative) */
+  { CUPS_BREAK_SP, "SP" },  /* Space (A) (normative) */
+  { CUPS_BREAK_SY, "SY" },  /* Symbols Allowing Break After (A) */
+  { CUPS_BREAK_XX, "XX" },  /* Unknown (XP) */
+  { CUPS_BREAK_ZW, "ZW" },  /* Zero Width Space (A) (normative) */
+  { 0, NULL }
+};
+
+static int get_bidi_category(const utf32_t ch);
+static int get_combining_class(const utf32_t ch);
+static int get_break_class(const utf32_t ch);
+static int get_general_category(const utf32_t ch);
+static int get_map_count(char *filename);
+static int get_normmap(cups_normalize_t normalize);
+static int get_foldmap(cups_folding_t fold);
+static int get_propmap(void);
+static int get_combmap(void);
+static int get_breakmap(void);
+static int compare_compose(const void *k1, const void *k2);
+static int compare_decompose(const void *k1, const void *k2);
+static int compare_foldchar(const void *k1, const void *k2);
+static int compare_combchar(const void *k1, const void *k2);
+static int compare_propchar(const void *k1, const void *k2);
+static int compare_breakchar(const void *k1, const void *k2);
+
+/*
+ * 'cupsNormalizeMapsGet()' - Get all normalization maps into cache.
+ */
+int                             /* O - Zero or -1 on error */
+cupsNormalizeMapsGet(void)
+{
+  cups_normmap_t    *nmap;      /* Unicode Normalization Map */
+  cups_foldmap_t    *fmap;      /* Unicode Case Folding Map */
+
+ /*
+  * See if we already have normalization maps loaded...
+  */
+  if (normmap_cache)
+  {
+    for (nmap = normmap_cache; nmap != NULL; nmap = nmap->next)
+      nmap->used ++;
+    for (fmap = foldmap_cache; fmap != NULL; fmap = fmap->next)
+      fmap->used ++;
+    if (combmap_cache)
+      combmap_cache->used ++;
+    if (propmap_cache)
+      propmap_cache->used ++;
+    if (breakmap_cache)
+      breakmap_cache->used ++;
+    return (0);
+  }
+
+ /*
+  * Get normalization maps...
+  */
+  if (get_normmap(CUPS_NORM_NFD) < 0)
+    return (-1);
+  if (get_normmap(CUPS_NORM_NFKD) < 0)
+    return (-1);
+  if (get_normmap(CUPS_NORM_NFC) < 0)
+    return (-1);
+
+ /*
+  * Get case folding, combining class, character property maps...
+  */
+  if (get_foldmap(CUPS_FOLD_SIMPLE) < 0)
+    return (-1);
+  if (get_foldmap(CUPS_FOLD_FULL) < 0)
+    return (-1);
+  if (get_propmap() < 0)
+    return (-1);
+  if (get_combmap() < 0)
+    return (-1);
+  if (get_breakmap() < 0)
+    return (-1);
+  return (0);
+}
+
+/*
+ * 'cupsNormalizeMapsFree()' - Free all normalization maps in cache.
+ *
+ * This does not actually free; use 'cupsNormalizeMapsFlush()' for that.
+ */
+int                             /* O - Zero or -1 on error */
+cupsNormalizeMapsFree(void)
+{
+  cups_normmap_t    *nmap;      /* Unicode Normalization Map */
+  cups_foldmap_t    *fmap;      /* Unicode Case Folding Map */
+
+ /*
+  * See if we already have normalization maps loaded...
+  */
+  if (normmap_cache == NULL)
+    return (-1);
+  for (nmap = normmap_cache; nmap != NULL; nmap = nmap->next)
+    if (nmap->used > 0)
+      nmap->used --;
+  for (fmap = foldmap_cache; fmap != NULL; fmap = fmap->next)
+    if (fmap->used > 0)
+      fmap->used --;
+  if (propmap_cache && (propmap_cache->used > 0))
+    propmap_cache->used --;
+  if (combmap_cache && (combmap_cache->used > 0))
+    combmap_cache->used --;
+  if (breakmap_cache && (breakmap_cache->used > 0))
+    breakmap_cache->used --;
+  return (0);
+}
+
+/*
+ * 'cupsNormalizeMapsFlush()' - Flush all normalization maps in cache.
+ */
+void
+cupsNormalizeMapsFlush(void)
+{
+  cups_normmap_t    *nmap;      /* Unicode Normalization Map */
+  cups_normmap_t    *nextnorm;  /* Next Unicode Normalization Map */
+  cups_foldmap_t    *fmap;      /* Unicode Case Folding Map */
+  cups_foldmap_t    *nextfold;  /* Next Unicode Case Folding Map */
+
+ /*
+  * Flush all normalization maps...
+  */
+  for (nmap = normmap_cache; nmap != NULL; nmap = nextnorm)
+  {
+    free(nmap->uni2norm);
+    nextnorm = nmap->next;
+    free(nmap);
+  }
+  normmap_cache = NULL;
+  for (fmap = foldmap_cache; fmap != NULL; fmap = nextfold)
+  {
+    free(fmap->uni2fold);
+    nextfold = fmap->next;
+    free(fmap);
+  }
+  foldmap_cache = NULL;
+  if (propmap_cache)
+  {
+    free(propmap_cache->uni2prop);
+    free(propmap_cache);
+    propmap_cache = NULL;
+  }
+  if (combmap_cache)
+  {
+    free(combmap_cache->uni2comb);
+    free(combmap_cache);
+    combmap_cache = NULL;
+  }
+  if (breakmap_cache)
+  {
+    free(breakmap_cache->uni2break);
+    free(breakmap_cache);
+    breakmap_cache = NULL;
+  }
+  return;
+}
+
+/*
+ * 'cupsUtf8Normalize()' - Normalize UTF-8 string.
+ *
+ * Normalize UTF-8 string to Unicode UAX-15 Normalization Form
+ * Note - Compatibility Normalization Forms (NFKD/NFKC) are
+ * unsafe for subsequent transcoding to legacy charsets
+ */
+int                                     /* O - Count or -1 on error */
+cupsUtf8Normalize(utf8_t *dest,         /* O - Target string */
+    const utf8_t *src,                  /* I - Source string */
+    const int maxout,                   /* I - Max output */
+    const cups_normalize_t normalize)   /* I - Normalization */
+{
+  int           len;            /* String length */
+  utf32_t       work1[CUPS_MAX_USTRING];
+                                /* First internal UCS-4 string */
+  utf32_t       work2[CUPS_MAX_USTRING];
+                                /* Second internal UCS-4 string */
+
+ /*
+  * Check for valid arguments and clear output...
+  */
+  if ((dest == NULL)
+  || (src == NULL)
+  || (maxout < 1)
+  || (maxout > CUPS_MAX_USTRING))
+    return (-1);
+  *dest = 0;
+
+ /*
+  * Convert input UTF-8 to internal UCS-4 (and insert BOM)...
+  */
+  len = cupsUtf8ToUtf32(work1, src, CUPS_MAX_USTRING);
+  if (len < 0)
+    return (-1);
+
+ /*
+  * Normalize internal UCS-4 to second internal UCS-4...
+  */
+  len = cupsUtf32Normalize(work2, work1, CUPS_MAX_USTRING, normalize);
+  if (len < 0)
+    return (-1);
+
+ /*
+  * Convert internal UCS-4 to output UTF-8 (and delete BOM)...
+  */
+  len = cupsUtf32ToUtf8(dest, work2, maxout);
+  return (len);
+}
+
+/*
+ * 'cupsUtf32Normalize()' - Normalize UTF-32 string.
+ *
+ * Normalize UTF-32 string to Unicode UAX-15 Normalization Form
+ * Note - Compatibility Normalization Forms (NFKD/NFKC) are
+ * unsafe for subsequent transcoding to legacy charsets
+ */
+int                                     /* O - Count or -1 on error */
+cupsUtf32Normalize(utf32_t *dest,       /* O - Target string */
+    const utf32_t *src,                 /* I - Source string */
+    const int maxout,                   /* I - Max output */
+    const cups_normalize_t normalize)   /* I - Normalization */
+{
+  int           i;              /* Looping variable */
+  int           result;         /* Result Value */
+  ucs2_t        *mp;            /* Map char pointer */
+  int           hit;            /* Hit count from binary search */
+  utf32_t       unichar1;       /* Unicode character value */
+  utf32_t       unichar2;       /* Unicode character value */
+  cups_combclass_t  class1;     /* First Combining Class */
+  cups_combclass_t  class2;     /* Second Combining Class */
+  int           len;            /* String length */
+  utf32_t       work1[CUPS_MAX_USTRING];
+                                /* First internal UCS-4 string */
+  utf32_t       work2[CUPS_MAX_USTRING];
+                                /* Second internal UCS-4 string */
+  utf32_t       *p1;            /* First UCS-4 string pointer */
+  utf32_t       *p2;            /* Second UCS-4 string pointer */
+  cups_normmap_t    *nmap;      /* Unicode Normalization Map */
+  cups_normalize_t  decompose;  /* Decomposition Type */
+
+ /*
+  * Check for valid arguments and clear output...
+  */
+  if ((dest == NULL)
+  || (src == NULL)
+  || (maxout < 1)
+  || (maxout > CUPS_MAX_USTRING))
+    return (-1);
+  *dest = 0;
+  result = cupsNormalizeMapsGet();
+  if (result < 0)
+    return (-1);
+
+ /*
+  * Find decomposition map...
+  */
+  switch (normalize)
+  {
+    case CUPS_NORM_NFD:
+    case CUPS_NORM_NFC:
+      decompose = CUPS_NORM_NFD;
+      break;
+    case CUPS_NORM_NFKD:
+    case CUPS_NORM_NFKC:
+      decompose = CUPS_NORM_NFKD;
+      break;
+    default:
+      return (-1);
+  }
+  for (nmap = normmap_cache; nmap != NULL; nmap = nmap->next)
+    if (nmap->normalize == decompose)
+      break;
+  if (nmap == NULL)
+    return (-1);
+
+ /*
+  * Copy input to internal buffer...
+  */
+  p1 = &work1[0];
+  for (i = 0; i < CUPS_MAX_USTRING; i ++)
+  {
+    if (*src == 0)
+      break;
+    *p1 ++ = *src ++;
+  }
+  *p1 = 0;
+  len = i;
+
+ /*
+  * Decompose until no further decomposition...
+  */
+  for (;;)
+  {
+    p1 = &work1[0];
+    p2 = &work2[0];
+    for (hit = 0; *p1 != 0; p1 ++)
+    {
+     /*
+      * Check for decomposition defined...
+      */
+      mp = (ucs2_t *) bsearch(p1,
+                              nmap->uni2norm,
+                              nmap->normcount,
+                              (sizeof(ucs2_t) * 3),
+                              compare_decompose);
+      if (mp == NULL)
+      {
+        *p2 ++ = *p1;
+        continue;
+      }
+
+     /*
+      * Decompose input character to one or two output characters...
+      */
+      hit ++;
+      mp ++;
+      *p2 ++ = (utf32_t) *mp ++;
+      if (*mp != 0)
+        *p2 ++ = (utf32_t) *mp;
+    }
+    *p2 = 0;
+    len = (int) (p2 - &work2[0]);
+
+   /*
+    * Check for decomposition finished...
+    */
+    if (hit == 0)
+      break;
+    memcpy (work1, work2, sizeof(utf32_t) * (len + 1));
+  }
+
+ /*
+  * Canonical reorder until no further reordering...
+  */
+  for (;;)
+  {
+    p1 = &work1[0];
+    for (hit = 0; *p1 != 0; p1 ++)
+    {
+     /*
+      * Check for combining characters to reorder...
+      */
+      unichar1 = *p1;
+      unichar2 = *(p1 + 1);
+      if (unichar2 == 0)
+        break;
+      class1 = get_combining_class(unichar1);
+      class2 = get_combining_class(unichar2);
+      if ((class1 < 0) || (class2 < 0))
+        return (-1);
+      if ((class1 == 0) || (class2 == 0))
+        continue;
+      if (class1 < class2)
+        continue;
+
+     /*
+      * Swap two combining characters...
+      */
+      {
+        *p1 = unichar2;
+        *(p1 + 1) = unichar1;
+        hit ++;
+      }
+    }
+    if (hit == 0)
+      break;
+  }
+
+ /*
+  * Check for decomposition only...
+  */
+  if ((normalize == CUPS_NORM_NFD) || (normalize == CUPS_NORM_NFKD))
+  {
+    memcpy (dest, work1, sizeof(utf32_t) * (len + 1));
+    return (len);
+  }
+
+ /*
+  * Find composition map...
+  */
+  for (nmap = normmap_cache; nmap != NULL; nmap = nmap->next)
+    if (nmap->normalize == CUPS_NORM_NFC)
+      break;
+  if (nmap == NULL)
+    return (-1);
+
+ /*
+  * Compose until no further composition...
+  */
+  for (;;)
+  {
+    p1 = &work1[0];
+    p2 = &work2[0];
+    for (hit = 0; *p1 != 0; p1 ++)
+    {
+     /*
+      * Check for composition defined...
+      */
+      unichar1 = *p1;
+      unichar2 = *(p1 + 1);
+      if (unichar2 == 0)
+      {
+        *p2 ++ = unichar1;
+        break;
+      }
+      mp = (ucs2_t *) bsearch(p1,
+                              nmap->uni2norm,
+                              nmap->normcount,
+                              (sizeof(ucs2_t) * 3),
+                              compare_compose);
+      if (mp == NULL)
+      {
+        *p2 ++ = *p1;
+        continue;
+      }
+
+     /*
+      * Compose two input characters to one output character...
+      */
+      hit ++;
+      mp += 2;
+      *p2 ++ = (utf32_t) *mp;
+      p1 ++;
+    }
+    *p2 = 0;
+    len = (int) (p2 - &work2[0]);
+
+   /*
+    * Check for composition finished...
+    */
+    if (hit == 0)
+      break;
+    memcpy (work1, work2, sizeof(utf32_t) * (len + 1));
+  }
+  memcpy (dest, work1, sizeof(utf32_t) * (len + 1));
+  cupsNormalizeMapsFree();
+  return (len);
+}
+
+/*
+ * 'cupsUtf8CaseFold()' - Case fold UTF-8 string.
+ *
+ * Case Fold UTF-8 string per Unicode UAX-21 Section 2.3
+ * Note - Case folding output is
+ * unsafe for subsequent transcoding to legacy charsets
+ */
+int                                     /* O - Count or -1 on error */
+cupsUtf8CaseFold(utf8_t *dest,          /* O - Target string */
+    const utf8_t *src,                  /* I - Source string */
+    const int maxout,                   /* I - Max output */
+    const cups_folding_t fold)          /* I - Fold Mode */
+{
+  int           len;            /* String length */
+  utf32_t       work1[CUPS_MAX_USTRING];
+                                /* First internal UCS-4 string */
+  utf32_t       work2[CUPS_MAX_USTRING];
+                                /* Second internal UCS-4 string */
+
+ /*
+  * Check for valid arguments and clear output...
+  */
+  if ((dest == NULL)
+  || (src == NULL)
+  || (maxout < 1)
+  || (maxout > CUPS_MAX_USTRING))
+    return (-1);
+  *dest = 0;
+  if ((fold != CUPS_FOLD_SIMPLE) && (fold != CUPS_FOLD_FULL))
+    return (-1);
+
+ /*
+  * Convert input UTF-8 to internal UCS-4 (and insert BOM)...
+  */
+  len = cupsUtf8ToUtf32(work1, src, CUPS_MAX_USTRING);
+  if (len < 0)
+    return (-1);
+
+ /*
+  * Case Fold internal UCS-4 to second internal UCS-4...
+  */
+  len = cupsUtf32CaseFold(work2, work1, CUPS_MAX_USTRING, fold);
+  if (len < 0)
+    return (-1);
+
+ /*
+  * Convert internal UCS-4 to output UTF-8 (and delete BOM)...
+  */
+  len = cupsUtf32ToUtf8(dest, work2, maxout);
+  return (len);
+}
+
+/*
+ * 'cupsUtf32CaseFold()' - Case fold UTF-32 string.
+ *
+ * Case Fold UTF-32 string per Unicode UAX-21 Section 2.3
+ * Note - Case folding output is
+ * unsafe for subsequent transcoding to legacy charsets
+ */
+int                                     /* O - Count or -1 on error */
+cupsUtf32CaseFold(utf32_t *dest,        /* O - Target string */
+    const utf32_t *src,                 /* I - Source string */
+    const int maxout,                   /* I - Max output */
+    const cups_folding_t fold)          /* I - Fold Mode */
+{
+  utf32_t       *start = dest;  /* Start of destination string */
+  int           i;              /* Looping variable */
+  int           result;         /* Result Value */
+  ucs2_t        *mp;            /* Map char pointer */
+  cups_foldmap_t    *fmap;      /* Unicode Case Folding Map */
+
+ /*
+  * Check for valid arguments and clear output...
+  */
+  if ((dest == NULL)
+  || (src == NULL)
+  || (maxout < 1)
+  || (maxout > CUPS_MAX_USTRING))
+    return (-1);
+  *dest = 0;
+  if ((fold != CUPS_FOLD_SIMPLE) && (fold != CUPS_FOLD_FULL))
+    return (-1);
+
+ /*
+  * Find case folding map...
+  */
+  result = cupsNormalizeMapsGet();
+  if (result < 0)
+    return (-1);
+  for (fmap = foldmap_cache; fmap != NULL; fmap = fmap->next)
+    if (fmap->fold == fold)
+      break;
+  if (fmap == NULL)
+    return (-1);
+
+ /*
+  * Case fold input string to output string...
+  */
+  for (i = 0; i < (maxout - 1); i ++, src ++)
+  {
+   /*
+    * Check for case folding defined...
+    */
+    mp = (ucs2_t *) bsearch(src,
+                            fmap->uni2fold,
+                            fmap->foldcount,
+                            (sizeof(ucs2_t) * 4),
+                            compare_foldchar);
+    if (mp == NULL)
+    {
+      *dest ++ = *src;
+      continue;
+    }
+
+   /*
+    * Case fold input character to one or two output characters...
+    */
+    mp ++;
+    *dest ++ = (utf32_t) *mp ++;
+    if ((*mp != 0) && (fold == CUPS_FOLD_FULL))
+    {
+      i ++;
+      if (i >= (maxout -1))
+        break;
+      *dest ++ = (utf32_t) *mp;
+    }
+  }
+  *dest = 0;
+  cupsNormalizeMapsFree();
+  return (dest - start);
+}
+
+/*
+ * 'cupsUtf8CompareCaseless()' - Compare case folded UTF-8 strings.
+ */
+int                                     /* O - Difference of strings */
+cupsUtf8CompareCaseless(const utf8_t *s1,
+                                        /* I - String1 */
+    const utf8_t *s2)                   /* I - String2 */
+{
+  int           difference;     /* Difference of two strings */
+  int           len;            /* String length */
+  utf32_t       work1[CUPS_MAX_USTRING];
+                                /* First internal UCS-4 string */
+  utf32_t       work2[CUPS_MAX_USTRING];
+                                /* Second internal UCS-4 string */
+
+ /*
+  * Check for valid arguments...
+  */
+  if ((s1 == NULL)
+  || (s2 == NULL))
+    return (-1);
+
+ /*
+  * Convert input UTF-8 to internal UCS-4 (and insert BOM)...
+  */
+  len = cupsUtf8ToUtf32(work1, s1, CUPS_MAX_USTRING);
+  if (len < 0)
+    return (-1);
+  len = cupsUtf8ToUtf32(work2, s2, CUPS_MAX_USTRING);
+  if (len < 0)
+    return (-1);
+
+ /*
+  * Compare first internal UCS-4 to second internal UCS-4...
+  */
+  difference = cupsUtf32CompareCaseless(work1, work2);
+  return (difference);
+}
+
+/*
+ * 'cupsUtf32CompareCaseless()' - Compare case folded UTF-32 strings.
+ */
+int                                     /* O - Difference of strings */
+cupsUtf32CompareCaseless(const utf32_t *s1,
+                                        /* I - String1 */
+    const utf32_t *s2)                  /* I - String2 */
+{
+  int           difference;     /* Difference of two strings */
+  int           len;            /* String length */
+  cups_folding_t fold = CUPS_FOLD_FULL;
+                                /* Case folding mode */
+  utf32_t       fold1[CUPS_MAX_USTRING];
+                                /* First UCS-4 folded string */
+  utf32_t       fold2[CUPS_MAX_USTRING];
+                                /* Second UCS-4 folded string */
+  utf32_t       *p1;            /* First UCS-4 string pointer */
+  utf32_t       *p2;            /* Second UCS-4 string pointer */
+
+ /*
+  * Check for valid arguments...
+  */
+  if ((s1 == NULL)
+  || (s2 == NULL))
+    return (-1);
+
+ /*
+  * Case Fold input UTF-32 strings to internal UCS-4 strings...
+  */
+  len = cupsUtf32CaseFold(fold1, s1, CUPS_MAX_USTRING, fold);
+  if (len < 0)
+    return (-1);
+  len = cupsUtf32CaseFold(fold2, s2, CUPS_MAX_USTRING, fold);
+  if (len < 0)
+    return (-1);
+
+ /*
+  * Compare first internal UCS-4 to second internal UCS-4...
+  */
+  p1 = &fold1[0];
+  p2 = &fold2[0];
+  for (;; p1 ++, p2 ++)
+  {
+    difference = (int) (*p1 - *p2);
+    if (difference != 0)
+      break;
+    if ((*p1 == 0) && (*p2 == 0))
+      break;
+  }
+  return (difference);
+}
+
+/*
+ * 'cupsUtf8CompareIdentifier()' - Compare folded NFKC UTF-8 strings.
+ */
+int
+cupsUtf8CompareIdentifier(const utf8_t *s1,
+                                        /* I - String1 */
+    const utf8_t *s2)                   /* I - String2 */
+{
+  int           difference;     /* Difference of two strings */
+  int           len;            /* String length */
+  utf32_t       work1[CUPS_MAX_USTRING];
+                                /* First internal UCS-4 string */
+  utf32_t       work2[CUPS_MAX_USTRING];
+                                /* Second internal UCS-4 string */
+
+ /*
+  * Check for valid arguments...
+  */
+  if ((s1 == NULL)
+  || (s2 == NULL))
+    return (-1);
+
+ /*
+  * Convert input UTF-8 to internal UCS-4 (and insert BOM)...
+  */
+  len = cupsUtf8ToUtf32(work1, s1, CUPS_MAX_USTRING);
+  if (len < 0)
+    return (-1);
+  len = cupsUtf8ToUtf32(work2, s2, CUPS_MAX_USTRING);
+  if (len < 0)
+    return (-1);
+
+ /*
+  * Compare first internal UCS-4 to second internal UCS-4...
+  */
+  difference = cupsUtf32CompareIdentifier(work1, work2);
+  return (difference);
+}
+
+/*
+ * 'cupsUtf32CompareIdentifier()' - Compare folded NFKC UTF-32 strings.
+ */
+int
+cupsUtf32CompareIdentifier(const utf32_t *s1,
+                                        /* I - String1 */
+    const utf32_t *s2)                  /* I - String2 */
+{
+  int           difference;     /* Difference of two strings */
+  int           len;            /* String length */
+  cups_folding_t fold = CUPS_FOLD_FULL;
+                                /* Case folding mode */
+  utf32_t       fold1[CUPS_MAX_USTRING];
+                                /* First UCS-4 folded string */
+  utf32_t       fold2[CUPS_MAX_USTRING];
+                                /* Second UCS-4 folded string */
+  cups_normalize_t normalize = CUPS_NORM_NFKC;
+                                /* Normalization form */
+  utf32_t       norm1[CUPS_MAX_USTRING];
+                                /* First UCS-4 normalized string */
+  utf32_t       norm2[CUPS_MAX_USTRING];
+                                /* Second UCS-4 normalized string */
+  utf32_t       *p1;            /* First UCS-4 string pointer */
+  utf32_t       *p2;            /* Second UCS-4 string pointer */
+
+ /*
+  * Check for valid arguments...
+  */
+  if ((s1 == NULL)
+  || (s2 == NULL))
+    return (-1);
+
+ /*
+  * Case Fold input UTF-32 strings to internal UCS-4 strings...
+  */
+  len = cupsUtf32CaseFold(fold1, s1, CUPS_MAX_USTRING, fold);
+  if (len < 0)
+    return (-1);
+  len = cupsUtf32CaseFold(fold2, s2, CUPS_MAX_USTRING, fold);
+  if (len < 0)
+    return (-1);
+
+ /*
+  * Normalize internal UCS-4 strings to NFKC...
+  */
+  len = cupsUtf32Normalize(norm1, fold1, CUPS_MAX_USTRING, normalize);
+  if (len < 0)
+    return (-1);
+  len = cupsUtf32Normalize(norm2, fold2, CUPS_MAX_USTRING, normalize);
+  if (len < 0)
+    return (-1);
+
+ /*
+  * Compare first internal UCS-4 to second internal UCS-4...
+  */
+  p1 = &norm1[0];
+  p2 = &norm2[0];
+  for (;; p1 ++, p2 ++)
+  {
+    difference = (int) (*p1 - *p2);
+    if (difference != 0)
+      break;
+    if ((*p1 == 0) && (*p2 == 0))
+      break;
+  }
+  return (difference);
+}
+
+/*
+ *   cupsUtf32CharacterProperty() - Get UTF-32 character property.
+ */
+int
+cupsUtf32CharacterProperty(const utf32_t ch,
+                                        /* I - Source char */
+    const cups_property_t property)     /* I - Char Property */
+{
+  int               result;     /* Result Value */
+
+ /*
+  * Check for valid arguments...
+  */
+  if (ch == 0)
+    return (-1);
+
+ /*
+  * Find character property...
+  */
+  switch (property)
+  {
+    case CUPS_PROP_GENERAL_CATEGORY:
+      result = (get_general_category(ch));
+      break;
+    case CUPS_PROP_BIDI_CATEGORY:
+      result = (get_bidi_category(ch));
+      break;
+    case CUPS_PROP_COMBINING_CLASS:
+      result = (get_combining_class(ch));
+      break;
+    case CUPS_PROP_BREAK_CLASS:
+      result = (get_break_class(ch));
+      break;
+    default:
+      return (-1);
+  }
+  return (result);
+}
+
+/*
+ * 'get_general_category()' - Get UTF-32 Character General Category.
+ */
+static int                              /* O - Class or -1 on error */
+get_general_category(const utf32_t ch)  /* I - Source char */
+{
+  int               result;     /* Result Value */
+  cups_gencat_t     gencat;     /* General Category Value */
+  cups_propmap_t    *pmap;      /* Unicode Property Map */
+  cups_prop_t       *uni2prop;  /* Unicode Char -> Properties */
+
+ /*
+  * Check for valid argument...
+  */
+  if (ch == 0)
+    return (-1);
+
+ /*
+  * Find property map...
+  */
+  result = cupsNormalizeMapsGet();
+  if (result < 0)
+    return (-1);
+  pmap = propmap_cache;
+  if (pmap == NULL)
+    return (-1);
+
+ /*
+  * Find character in map...
+  */
+  uni2prop = (cups_prop_t *) bsearch(&ch,
+                                     pmap->uni2prop,
+                                     pmap->propcount,
+                                     (sizeof(cups_prop_t)),
+                                     compare_propchar);
+  cupsNormalizeMapsFree();
+  if (uni2prop == NULL)
+    gencat = CUPS_GENCAT_CN;            /* Other, Not Assigned */
+  else
+    gencat = (cups_gencat_t) uni2prop->gencat;
+  result = (int) gencat;
+  return (result);
+}
+
+/*
+ * 'get_bidi_category()' - Get UTF-32 Character Bidi Category.
+ */
+static int                              /* O - Class or -1 on error */
+get_bidi_category(const utf32_t ch)     /* I - Source char */
+{
+  int               result;     /* Result Value */
+  cups_bidicat_t    bidicat;    /* Bidi Category Value */
+  cups_propmap_t    *pmap;      /* Unicode Property Map */
+  cups_prop_t       *uni2prop;  /* Unicode Char -> Properties */
+
+ /*
+  * Check for valid argument...
+  */
+  if (ch == 0)
+    return (-1);
+
+ /*
+  * Find property map...
+  */
+  result = cupsNormalizeMapsGet();
+  if (result < 0)
+    return (-1);
+  pmap = propmap_cache;
+  if (pmap == NULL)
+    return (-1);
+
+ /*
+  * Find character in map...
+  */
+  uni2prop = (cups_prop_t *) bsearch(&ch,
+                                     pmap->uni2prop,
+                                     pmap->propcount,
+                                     (sizeof(cups_prop_t)),
+                                     compare_propchar);
+  cupsNormalizeMapsFree();
+  if (uni2prop == NULL)
+    bidicat = CUPS_BIDI_ON;             /* Other Neutral */
+  else
+    bidicat = (cups_bidicat_t) uni2prop->bidicat;
+  result = (int) bidicat;
+  return (result);
+}
+
+/*
+ * 'get_combining_class()' - Get UTF-32 Character Combining Class.
+ *
+ * Note - Zero is non-combining (base character)
+ */
+static int                              /* O - Class or -1 on error */
+get_combining_class(const utf32_t ch)   /* I - Source char */
+{
+  int               result;     /* Result Value */
+  cups_combmap_t    *cmap;      /* Unicode Combining Class Map */
+  cups_combclass_t  combclass;  /* Unicode Combining Class */
+  cups_comb_t       *uni2comb;  /* Unicode Char -> Combining Class */
+
+ /*
+  * Check for valid argument...
+  */
+  if (ch == 0)
+    return (-1);
+
+ /*
+  * Find combining class map...
+  */
+  result = cupsNormalizeMapsGet();
+  if (result < 0)
+    return (-1);
+  cmap = combmap_cache;
+  if (cmap == NULL)
+    return (-1);
+
+ /*
+  * Find combining character in map...
+  */
+  uni2comb = (cups_comb_t *) bsearch(&ch,
+                                     cmap->uni2comb,
+                                     cmap->combcount,
+                                     (sizeof(cups_comb_t)),
+                                     compare_combchar);
+  cupsNormalizeMapsFree();
+  if (uni2comb == NULL)
+    combclass = 0;
+  else
+    combclass = (cups_combclass_t) uni2comb->combclass;
+  result = (int) combclass;
+  return (result);
+}
+
+/*
+ * 'get_break_class()' - Get UTF-32 Character Line Break Class.
+ */
+static int                              /* O - Class or -1 on error */
+get_break_class(const utf32_t ch)       /* I - Source char */
+{
+  int               result;     /* Result Value */
+  cups_breakmap_t   *bmap;      /* Unicode Line Break Class Map */
+  cups_breakclass_t breakclass; /* Unicode Line Break Class */
+  ucs2_t            *uni2break; /* Unicode Char -> Line Break Class */
+
+ /*
+  * Check for valid argument...
+  */
+  if (ch == 0)
+    return (-1);
+
+ /*
+  * Find line break class map...
+  */
+  result = cupsNormalizeMapsGet();
+  if (result < 0)
+    return (-1);
+  bmap = breakmap_cache;
+  if (bmap == NULL)
+    return (-1);
+
+ /*
+  * Find line break character in map...
+  */
+  uni2break = (ucs2_t *) bsearch(&ch,
+                                 bmap->uni2break,
+                                 bmap->breakcount,
+                                 (sizeof(ucs2_t) * 3),
+                                 compare_breakchar);
+  cupsNormalizeMapsFree();
+  if (uni2break == NULL)
+    breakclass = CUPS_BREAK_AI;
+  else
+    breakclass = (cups_breakclass_t) *(uni2break + 2);
+  result = (int) breakclass;
+  return (result);
+}
+
+/*
+ * 'get_map_count()' - Count lines in a map file.
+ */
+static int                              /* O - Count or -1 on error */
+get_map_count(char *filename)           /* I - Map Filename */
+{
+  int           i;              /* Looping variable */
+  FILE          *fp;            /* Map input file pointer */
+  char          *s;             /* Line parsing pointer */
+  char          line[256];      /* Line from input map file */
+  utf32_t       unichar;        /* Unicode character value */
+
+ /*
+  * Open map input file...
+  */
+  if ((filename == NULL) || (*filename == '\0'))
+    return (-1);
+  fp = fopen(filename, "r");
+  if (fp == NULL)
+    return (-1);
+
+ /*
+  * Count lines in map input file...
+  */
+  for (i = 0; i < 50000;)
+  {
+    s = fgets(&line[0], sizeof(line), fp);
+    if (s == NULL)
+      break;
+    if ((*s == '#') || (*s == '\n') || (*s == '\0'))
+      continue;
+    if (strncmp (s, "0x", 2) == 0)
+      s += 2;
+    if (sscanf(s, "%lx", &unichar) != 1)
+      break;
+    if (unichar > 0xffff)
+      break;
+    i ++;
+  }
+  if (i == 0)
+    i = -1;
+
+ /*
+  * Close file and return map count (non-comment line count)...
+  */
+  fclose(fp);
+  return (i);
+}
+
+/*
+ * 'get_normmap()' - Get Unicode normalization map into cache.
+ */
+static int                              /* O - Zero or -1 on error */
+get_normmap(cups_normalize_t normalize) /* I - Normalization Form */
+{
+  int           i;              /* Looping variable */
+  utf32_t       unichar1;       /* Unicode character value */
+  utf32_t       unichar2;       /* Unicode character value */
+  utf32_t       unichar3;       /* Unicode character value */
+  cups_normmap_t    *nmap;      /* Unicode Normalization Map */
+  int           normcount;      /* Count of Unicode Source Chars */
+  ucs2_t        *uni2norm;      /* Unicode Char -> Normalization */
+  char          *datadir;       /* CUPS_DATADIR environment variable */
+  char          *mapname;       /* Normalization map name */
+  char          filename[256];  /* Filename for charset map file */
+  FILE          *fp;            /* Normalization map file pointer */
+  char          *s;             /* Line parsing pointer */
+  char          line[256];      /* Line from input map file */
+
+ /*
+  * See if we already have this normalization map loaded...
+  */
+  for (nmap = normmap_cache; nmap != NULL; nmap = nmap->next)
+    if (nmap->normalize == normalize)
+      return (0);
+
+ /*
+  * Get the data directory and mapping name...
+  */
+  if ((datadir = getenv("CUPS_DATADIR")) == NULL)
+    datadir = CUPS_DATADIR;
+  switch (normalize)
+  {
+    case CUPS_NORM_NFD:         /* Canonical Decomposition */
+      mapname = "uni-nfd.txt";
+      break;
+    case CUPS_NORM_NFKD:        /* Compatibility Decomposition */
+      mapname = "uni-nfkd.txt";
+      break;
+    case CUPS_NORM_NFC:         /* Canonical Composition */
+      mapname = "uni-nfc.txt";
+      break;
+    case CUPS_NORM_NFKC:        /* no such map file... */
+    default:
+      return (-1);
+  }
+
+ /*
+  * Open normalization map input file...
+  */
+  snprintf(filename, sizeof(filename), "%s/charmaps/%s", datadir, mapname);
+  if ((normcount = get_map_count(filename)) <= 0)
+    return (-1);
+  fp = fopen(filename, "r");
+  if (fp == NULL)
+    return (-1);
+
+ /*
+  * Allocate memory for normalization map and add to cache...
+  */
+  nmap = (cups_normmap_t *)
+    calloc(1, sizeof(cups_normmap_t));
+  if (nmap == NULL)
+  {
+    fclose(fp);
+    return (-1);
+  }
+  uni2norm = (ucs2_t *)
+    calloc(1, sizeof(ucs2_t) * 3 * normcount);
+  if (uni2norm == NULL)
+  {
+    fclose(fp);
+    return (-1);
+  }
+  nmap->next = normmap_cache;
+  normmap_cache = nmap;
+  nmap->used ++;
+  nmap->normalize = normalize;
+  nmap->normcount = normcount;
+  nmap->uni2norm = uni2norm;
+
+ /*
+  * Save normalization map into memory for later use...
+  */
+  for (i = 0; i < normcount; )
+  {
+    s = fgets(&line[0], sizeof(line), fp);
+    if (s == NULL)
+      break;
+    if ((*s == '#') || (*s == '\n') || (*s == '\0'))
+      continue;
+    if (sscanf(s, "%lx %lx %lx", &unichar1, &unichar2, &unichar3) != 3)
+       break;
+    if ((unichar1 > 0xffff)
+    || (unichar2 > 0xffff)
+    || (unichar3 > 0xffff))
+      break;
+    *uni2norm ++ = (ucs2_t) unichar1;
+    *uni2norm ++ = (ucs2_t) unichar2;
+    *uni2norm ++ = (ucs2_t) unichar3;
+    i ++;
+  }
+  if (i < normcount)
+    nmap->normcount = i;
+  fclose(fp);
+  return (0);
+}
+
+/*
+ * 'get_foldmap()' - Get Unicode case folding map into cache.
+ */
+static int                              /* O - Zero or -1 on error */
+get_foldmap(cups_folding_t fold)        /* I - Case folding type */
+{
+  int           i;              /* Looping variable */
+  utf32_t       unichar1;       /* Unicode character value */
+  utf32_t       unichar2;       /* Unicode character value */
+  utf32_t       unichar3;       /* Unicode character value */
+  utf32_t       unichar4;       /* Unicode character value */
+  cups_foldmap_t    *fmap;      /* Unicode Case Folding Map */
+  int           foldcount;      /* Count of Unicode Source Chars */
+  ucs2_t        *uni2fold;      /* Unicode Char -> Folded Char(s) */
+  char          *datadir;       /* CUPS_DATADIR environment variable */
+  char          *mapname;       /* Case Folding map name */
+  char          filename[256];  /* Filename for charset map file */
+  FILE          *fp;            /* Case Folding map file pointer */
+  char          *s;             /* Line parsing pointer */
+  char          line[256];      /* Line from input map file */
+
+ /*
+  * See if we already have this case folding map loaded...
+  */
+  for (fmap = foldmap_cache; fmap != NULL; fmap = fmap->next)
+    if (fmap->fold == fold)
+      return (0);
+
+ /*
+  * Get the data directory and mapping name...
+  */
+  if ((datadir = getenv("CUPS_DATADIR")) == NULL)
+    datadir = CUPS_DATADIR;
+  switch (fold)
+  {
+    case CUPS_FOLD_SIMPLE:      /* Simple case folding */
+      mapname = "uni-fold.txt";
+      break;
+    case CUPS_FOLD_FULL:        /* Full case folding */
+      mapname = "uni-full.txt";
+      break;
+    default:
+      return (-1);
+  }
+
+ /*
+  * Open case folding map input file...
+  */
+  snprintf(filename, sizeof(filename), "%s/charmaps/%s", datadir, mapname);
+  if ((foldcount = get_map_count(filename)) <= 0)
+    return (-1);
+  fp = fopen(filename, "r");
+  if (fp == NULL)
+    return (-1);
+
+ /*
+  * Allocate memory for case folding map and add to cache...
+  */
+  fmap = (cups_foldmap_t *)
+    calloc(1, sizeof(cups_foldmap_t));
+  if (fmap == NULL)
+  {
+    fclose(fp);
+    return (-1);
+  }
+  uni2fold = (ucs2_t *)
+    calloc(1, sizeof(ucs2_t) * 4 * foldcount);
+  if (uni2fold == NULL)
+  {
+    fclose(fp);
+    return (-1);
+  }
+  fmap->next = foldmap_cache;
+  foldmap_cache = fmap;
+  fmap->used ++;
+  fmap->fold = fold;
+  fmap->foldcount = foldcount;
+  fmap->uni2fold = uni2fold;
+
+ /*
+  * Save case folding map into memory for later use...
+  */
+  for (i = 0; i < foldcount; )
+  {
+    s = fgets(&line[0], sizeof(line), fp);
+    if (s == NULL)
+      break;
+    if ((*s == '#') || (*s == '\n') || (*s == '\0'))
+      continue;
+    unichar1 = unichar2 = unichar3 = unichar4 = 0;
+    if ((fold == CUPS_FOLD_SIMPLE)
+    && (sscanf(s, "%lx %lx", &unichar1, &unichar2) != 2))
+      break;
+    if ((fold == CUPS_FOLD_FULL)
+    && (sscanf(s, "%lx %lx %lx %lx",
+               &unichar1, &unichar2, &unichar3, &unichar4) != 4))
+      break;
+    if ((unichar1 > 0xffff)
+    || (unichar2 > 0xffff)
+    || (unichar3 > 0xffff)
+    || (unichar4 > 0xffff))
+      break;
+    *uni2fold ++ = (ucs2_t) unichar1;
+    *uni2fold ++ = (ucs2_t) unichar2;
+    *uni2fold ++ = (ucs2_t) unichar3;
+    *uni2fold ++ = (ucs2_t) unichar4;
+    i ++;
+  }
+  if (i < foldcount)
+    fmap->foldcount = i;
+  fclose(fp);
+  return (0);
+}
+
+/*
+ * 'get_propmap()' - Get Unicode character property map into cache.
+ */
+static int                              /* O - Zero or -1 on error */
+get_propmap(void)
+{
+  int           i, j;           /* Looping variables */
+  int           len;            /* String length */
+  utf32_t       unichar;        /* Unicode character value */
+  cups_gencat_t     gencat;     /* General Category Value */
+  cups_bidicat_t    bidicat;    /* Bidi Category Value */
+  cups_propmap_t    *pmap;      /* Unicode Char Property Map */
+  int           propcount;      /* Count of Unicode Source Chars */
+  cups_prop_t   *uni2prop;      /* Unicode Char -> Properties */
+  char          *datadir;       /* CUPS_DATADIR environment variable */
+  char          *mapname;       /* Char Property map name */
+  char          filename[256];  /* Filename for charset map file */
+  FILE          *fp;            /* Char Property map file pointer */
+  char          *s;             /* Line parsing pointer */
+  char          line[256];      /* Line from input map file */
+
+ /*
+  * See if we already have this char properties map loaded...
+  */
+  if ((pmap = propmap_cache) != NULL)
+    return (0);
+
+ /*
+  * Get the data directory and mapping name...
+  */
+  if ((datadir = getenv("CUPS_DATADIR")) == NULL)
+    datadir = CUPS_DATADIR;
+  mapname = "uni-prop.txt";
+
+ /*
+  * Open char properties map input file...
+  */
+  snprintf(filename, sizeof(filename), "%s/charmaps/%s", datadir, mapname);
+  if ((propcount = get_map_count(filename)) <= 0)
+    return (-1);
+  fp = fopen(filename, "r");
+  if (fp == NULL)
+    return (-1);
+
+ /*
+  * Allocate memory for char properties map and add to cache...
+  */
+  pmap = (cups_propmap_t *)
+    calloc(1, sizeof(cups_propmap_t));
+  if (pmap == NULL)
+  {
+    fclose(fp);
+    return (-1);
+  }
+  uni2prop = (cups_prop_t *)
+    calloc(1, sizeof(cups_prop_t) * propcount);
+  if (uni2prop == NULL)
+  {
+    fclose(fp);
+    return (-1);
+  }
+  propmap_cache = pmap;
+  pmap->used ++;
+  pmap->propcount = propcount;
+  pmap->uni2prop = uni2prop;
+
+ /*
+  * Save char properties map into memory for later use...
+  */
+  for (i = 0; i < propcount; )
+  {
+    s = fgets(&line[0], sizeof(line), fp);
+    if (s == NULL)
+      break;
+    if (strlen(s) > 0)
+      *(s + strlen(s) - 1) = '\0';
+    if ((*s == '#') || (*s == '\0'))
+      continue;
+    if (sscanf(s, "%lx", &unichar) != 1)
+       break;
+    if (unichar > 0xffff)
+      break;
+    while ((*s != '\0') && (*s != ';'))
+      s ++;
+    if (*s != ';')
+      break;
+    s ++;
+    for (j = 0; gencat_index[j].str != NULL; j ++)
+    {
+      len = strlen(gencat_index[j].str);
+      if (strncmp (s, gencat_index[j].str, len) == 0)
+        break;
+    }
+    if (gencat_index[j].str == NULL)
+      return (-1);
+    gencat = gencat_index[j].gencat;
+    while ((*s != '\0') && (*s != ';'))
+      s ++;
+    if (*s != ';')
+      break;
+    s ++;
+    for (j = 0; bidicat_index[j] != NULL; j ++)
+    {
+      len = strlen(bidicat_index[j]);
+      if (strncmp (s, bidicat_index[j], len) == 0)
+        break;
+    }
+    if (bidicat_index[j] == NULL)
+      return (-1);
+    bidicat = (cups_bidicat_t) j;
+    uni2prop->ch = (ucs2_t) unichar;
+    uni2prop->gencat = (unsigned char) gencat;
+    uni2prop->bidicat = (unsigned char) bidicat;
+    uni2prop ++;
+    i ++;
+  }
+  if (i < propcount)
+    pmap->propcount = i;
+  fclose(fp);
+  return (0);
+}
+
+/*
+ * 'get_combmap()' - Get Unicode combining class map into cache.
+ */
+static int                              /* O - Zero or -1 on error */
+get_combmap(void)
+{
+  int           i;              /* Looping variable */
+  utf32_t       unichar;        /* Unicode character value */
+  int           combclass;      /* Unicode char combining class */
+  cups_combmap_t    *cmap;      /* Unicode Comb Class Map */
+  int           combcount;      /* Count of Unicode Source Chars */
+  cups_comb_t   *uni2comb;      /* Unicode Char -> Combining Class */
+  char          *datadir;       /* CUPS_DATADIR environment variable */
+  char          *mapname;       /* Comb Class map name */
+  char          filename[256];  /* Filename for charset map file */
+  FILE          *fp;            /* Comb Class map file pointer */
+  char          *s;             /* Line parsing pointer */
+  char          line[256];      /* Line from input map file */
+
+ /*
+  * See if we already have this combining class map loaded...
+  */
+  if ((cmap = combmap_cache) != NULL)
+    return (0);
+
+ /*
+  * Get the data directory and mapping name...
+  */
+  if ((datadir = getenv("CUPS_DATADIR")) == NULL)
+    datadir = CUPS_DATADIR;
+  mapname = "uni-comb.txt";
+
+ /*
+  * Open combining class map input file...
+  */
+  snprintf(filename, sizeof(filename), "%s/charmaps/%s", datadir, mapname);
+  if ((combcount = get_map_count(filename)) <= 0)
+    return (-1);
+  fp = fopen(filename, "r");
+  if (fp == NULL)
+    return (-1);
+
+ /*
+  * Allocate memory for combining class map and add to cache...
+  */
+  cmap = (cups_combmap_t *)
+    calloc(1, sizeof(cups_combmap_t));
+  if (cmap == NULL)
+  {
+    fclose(fp);
+    return (-1);
+  }
+  uni2comb = (cups_comb_t *)
+    calloc(1, sizeof(cups_comb_t) * combcount);
+  if (uni2comb == NULL)
+  {
+    fclose(fp);
+    return (-1);
+  }
+  combmap_cache = cmap;
+  cmap->used ++;
+  cmap->combcount = combcount;
+  cmap->uni2comb = uni2comb;
+
+ /*
+  * Save combining class map into memory for later use...
+  */
+  for (i = 0; i < combcount; )
+  {
+    s = fgets(&line[0], sizeof(line), fp);
+    if (s == NULL)
+      break;
+    if ((*s == '#') || (*s == '\n') || (*s == '\0'))
+      continue;
+    if (sscanf(s, "%lx", &unichar) != 1)
+       break;
+    if (unichar > 0xffff)
+      break;
+    while ((*s != '\0') && (*s != ';'))
+      s ++;
+    if (*s != ';')
+      break;
+    s ++;
+    if (sscanf(s, "%d", &combclass) != 1)
+       break;
+    uni2comb->ch = (ucs2_t) unichar;
+    uni2comb->combclass = (unsigned char) combclass;
+    uni2comb ++;
+    i ++;
+  }
+  if (i < combcount)
+    cmap->combcount = i;
+  fclose(fp);
+  return (0);
+}
+
+/*
+ * 'get_breakmap()' - Get Unicode line break class map into cache.
+ */
+static int                              /* O - Zero or -1 on error */
+get_breakmap(void)
+{
+  int           i, j;           /* Looping variables */
+  int           len;            /* String length */
+  utf32_t       unichar1;       /* Unicode character value */
+  utf32_t       unichar2;       /* Unicode character value */
+  cups_breakclass_t breakclass; /* Unicode char line break class */
+  cups_breakmap_t   *bmap;      /* Unicode Line Break Class Map */
+  int           breakcount;     /* Count of Unicode Source Chars */
+  ucs2_t        *uni2break;     /* Unicode Char -> Line Break Class */
+  char          *datadir;       /* CUPS_DATADIR environment variable */
+  char          *mapname;       /* Comb Class map name */
+  char          filename[256];  /* Filename for charset map file */
+  FILE          *fp;            /* Comb Class map file pointer */
+  char          *s;             /* Line parsing pointer */
+  char          line[256];      /* Line from input map file */
+
+ /*
+  * See if we already have this line break class map loaded...
+  */
+  if ((bmap = breakmap_cache) != NULL)
+    return (0);
+
+ /*
+  * Get the data directory and mapping name...
+  */
+  if ((datadir = getenv("CUPS_DATADIR")) == NULL)
+    datadir = CUPS_DATADIR;
+  mapname = "uni-line.txt";
+
+ /*
+  * Open line break class map input file...
+  */
+  snprintf(filename, sizeof(filename), "%s/charmaps/%s", datadir, mapname);
+  if ((breakcount = get_map_count(filename)) <= 0)
+    return (-1);
+  fp = fopen(filename, "r");
+  if (fp == NULL)
+    return (-1);
+
+ /*
+  * Allocate memory for line break class map and add to cache...
+  */
+  bmap = (cups_breakmap_t *)
+    calloc(1, sizeof(cups_breakmap_t));
+  if (bmap == NULL)
+  {
+    fclose(fp);
+    return (-1);
+  }
+  uni2break = (ucs2_t *)
+    calloc(1, sizeof(ucs2_t) * 3 * breakcount);
+  if (uni2break == NULL)
+  {
+    fclose(fp);
+    return (-1);
+  }
+  breakmap_cache = bmap;
+  bmap->used ++;
+  bmap->breakcount = breakcount;
+  bmap->uni2break = uni2break;
+
+ /*
+  * Save line break class map into memory for later use...
+  */
+  for (i = 0; i < breakcount; )
+  {
+    s = fgets(&line[0], sizeof(line), fp);
+    if (s == NULL)
+      break;
+    if (strlen(s) > 0)
+      *(s + strlen(s) - 1) = '\0';
+    if ((*s == '#') || (*s == '\0'))
+      continue;
+    if (sscanf(s, "%lx %lx", &unichar1, &unichar2) != 2)
+       break;
+    if ((unichar1 > 0xffff)
+    || (unichar2 > 0xffff))
+      break;
+    while ((*s != '\0') && (*s != ';'))
+      s ++;
+    if (*s != ';')
+      break;
+    s ++;
+    for (j = 0; break_index[j].str != NULL; j ++)
+    {
+      len = strlen (break_index[j].str);
+      if (strncmp (s, break_index[j].str, len) == 0)
+        break;
+    }
+    if (break_index[j].str == NULL)
+      return (-1);
+    breakclass = break_index[j].breakclass;
+    *uni2break ++ = (ucs2_t) unichar1;
+    *uni2break ++ = (ucs2_t) unichar2;
+    *uni2break ++ = (ucs2_t) breakclass;
+    i ++;
+  }
+  if (i < breakcount)
+    bmap->breakcount = i;
+  fclose(fp);
+  return (0);
+}
+
+/*
+ * 'compare_compose()' - Compare key for compose match.
+ *
+ * Note - This function cannot be easily modified for 32-bit Unicode.
+ */
+static int
+compare_compose(const void *k1,         /* I - Key char */
+    const void *k2)                     /* I - Map char */
+{
+  utf32_t       *kp = (utf32_t *) k1;   /* Key char pointer */
+  ucs2_t        *mp = (ucs2_t *) k2;    /* Map char pointer */
+  unsigned long key;                    /* Pair of key characters */
+  unsigned long map;                    /* Pair of map characters */
+  int           result;                 /* Result Value */
+
+  key = (*kp << 16);
+  key |= *(kp + 1);
+  map = (unsigned long) (*mp << 16);
+  map |= (unsigned long) *(mp + 1);
+  if (key >= map)
+    result = (int) (key - map);
+  else
+    result = -1 * ((int) (map - key));
+  return (result);
+}
+
+/*
+ * 'compare_decompose()' - Compare key for decompose match.
+ */
+static int
+compare_decompose(const void *k1,       /* I - Key char */
+    const void *k2)                     /* I - Map char */
+{
+  utf32_t       *kp = (utf32_t *) k1;   /* Key char pointer */
+  ucs2_t        *mp = (ucs2_t *) k2;    /* Map char pointer */
+  ucs2_t        ch;                     /* Key char as UCS-2 */
+  int           result;                 /* Result Value */
+
+  ch = (ucs2_t) *kp;
+  if (ch >= *mp)
+    result = (int) (ch - *mp);
+  else
+    result = -1 * ((int) (*mp - ch));
+  return (result);
+}
+
+/*
+ * 'compare_foldchar()' - Compare key for case fold match.
+ */
+static int
+compare_foldchar(const void *k1,        /* I - Key char */
+    const void *k2)                     /* I - Map char */
+{
+  utf32_t       *kp = (utf32_t *) k1;   /* Key char pointer */
+  ucs2_t        *mp = (ucs2_t *) k2;    /* Map char pointer */
+  ucs2_t        ch;                     /* Key char as UCS-2 */
+  int           result;                 /* Result Value */
+
+  ch = (ucs2_t) *kp;
+  if (ch >= *mp)
+    result = (int) (ch - *mp);
+  else
+    result = -1 * ((int) (*mp - ch));
+  return (result);
+}
+
+/*
+ * 'compare_combchar()' - Compare key for combining char match.
+ */
+static int
+compare_combchar(const void *k1,        /* I - Key char */
+    const void *k2)                     /* I - Map char */
+{
+  utf32_t       *kp = (utf32_t *) k1;   /* Key char pointer */
+  cups_comb_t   *cp = (cups_comb_t *) k2;
+                                        /* Combining map row pointer */
+  ucs2_t        ch;                     /* Key char as UCS-2 */
+  int           result;                 /* Result Value */
+
+  ch = (ucs2_t) *kp;
+  if (ch >= cp->ch)
+    result = (int) (ch - cp->ch);
+  else
+    result = -1 * ((int) (cp->ch - ch));
+  return (result);
+}
+
+/*
+ * 'compare_breakchar()' - Compare key for line break char match.
+ */
+static int
+compare_breakchar(const void *k1,       /* I - Key char */
+    const void *k2)                     /* I - Map char */
+{
+  utf32_t       *kp = (utf32_t *) k1;   /* Key char pointer */
+  ucs2_t        *mp = (ucs2_t *) k2;    /* Map char pointer */
+  ucs2_t        ch;                     /* Key char as UCS-2 */
+  int           result;                 /* Result Value */
+
+  ch = (ucs2_t) *kp;
+  if (ch < *mp)
+    result = -1 * (int) (*mp - ch);
+  else if (ch > *(mp + 1))
+    result = (int) (ch - *(mp + 1));
+  else
+    result = 0;
+  return (result);
+}
+
+/*
+ * 'compare_propchar()' - Compare key for property char match.
+ */
+static int
+compare_propchar(const void *k1,        /* I - Key char */
+    const void *k2)                     /* I - Map char */
+{
+  utf32_t       *kp = (utf32_t *) k1;   /* Key char pointer */
+  cups_prop_t   *pp = (cups_prop_t *) k2;
+                                        /* Property map row pointer */
+  ucs2_t        ch;                     /* Key char as UCS-2 */
+  int           result;                 /* Result Value */
+
+  ch = (ucs2_t) *kp;
+  if (ch >= pp->ch)
+    result = (int) (ch - pp->ch);
+  else
+    result = -1 * ((int) (pp->ch - ch));
+  return (result);
+}
+
+/*
+ * End of "$Id: normalize.c,v 1.1.2.1 2002/08/19 01:15:20 mike Exp $"
+ */
diff --git a/cups/normalize.h b/cups/normalize.h
new file mode 100644 (file)
index 0000000..c668257
--- /dev/null
@@ -0,0 +1,357 @@
+/*
+ * "$Id: normalize.h,v 1.1.2.1 2002/08/19 01:15:20 mike Exp $"
+ *
+ *   Unicode normalization for the Common UNIX Printing System (CUPS).
+ *
+ *   Copyright 1997-2002 by Easy Software Products.
+ *
+ *   These coded instructions, statements, and computer programs are
+ *   the property of Easy Software Products and are protected by Federal
+ *   copyright law.  Distribution and use rights are outlined in the
+ *   file "LICENSE.txt" which should have been included with this file.
+ *   If this file is missing or damaged please contact Easy Software
+ *   Products at:
+ *
+ *       Attn: CUPS Licensing Information
+ *       Easy Software Products
+ *       44141 Airport View Drive, Suite 204
+ *       Hollywood, Maryland 20636-3111 USA
+ *
+ *       Voice: (301) 373-9603
+ *       EMail: cups-info@cups.org
+ *         WWW: http://www.cups.org
+ */
+
+#ifndef _CUPS_NORMALIZE_H_
+#  define _CUPS_NORMALIZE_H_
+
+/*
+ * Include necessary headers...
+ */
+
+#  include "transcode.h"
+
+#  ifdef __cplusplus
+extern "C" {
+#  endif /* __cplusplus */
+
+/*
+ * Types...
+ */
+
+typedef enum                    /**** Normalizataion Types ****/
+{
+  CUPS_NORM_NFD,                /* Canonical Decomposition */
+  CUPS_NORM_NFKD,               /* Compatibility Decomposition */
+  CUPS_NORM_NFC,                /* NFD, them Canonical Composition */
+  CUPS_NORM_NFKC                /* NFKD, them Canonical Composition */
+} cups_normalize_t;
+
+typedef enum                    /**** Case Folding Types ****/
+{
+  CUPS_FOLD_SIMPLE,             /* Simple - no expansion in size */
+  CUPS_FOLD_FULL                /* Full - possible expansion in size */
+} cups_folding_t;
+
+typedef enum                    /**** Unicode Char Property Types ****/
+{
+  CUPS_PROP_GENERAL_CATEGORY,   /* See 'cups_gencat_t' enum */
+  CUPS_PROP_BIDI_CATEGORY,      /* See 'cups_bidicat_t' enum */
+  CUPS_PROP_COMBINING_CLASS,    /* See 'cups_combclass_t' type */
+  CUPS_PROP_BREAK_CLASS         /* See 'cups_breakclass_t' enum */
+} cups_property_t;
+
+/*
+ * Note - parse Unicode char general category from 'UnicodeData.txt'
+ * into sparse local table in 'normalize.c'.
+ * Use major classes for logic optimizations throughout (by mask).
+ */
+
+typedef enum                    /**** Unicode General Category ****/
+{
+  CUPS_GENCAT_L  = 0x10, /* Letter major class */
+  CUPS_GENCAT_LU = 0x11, /* Lu Letter, Uppercase */
+  CUPS_GENCAT_LL = 0x12, /* Ll Letter, Lowercase */
+  CUPS_GENCAT_LT = 0x13, /* Lt Letter, Titlecase */
+  CUPS_GENCAT_LM = 0x14, /* Lm Letter, Modifier */
+  CUPS_GENCAT_LO = 0x15, /* Lo Letter, Other */
+  CUPS_GENCAT_M  = 0x20, /* Mark major class */
+  CUPS_GENCAT_MN = 0x21, /* Mn Mark, Non-Spacing */
+  CUPS_GENCAT_MC = 0x22, /* Mc Mark, Spacing Combining */
+  CUPS_GENCAT_ME = 0x23, /* Me Mark, Enclosing */
+  CUPS_GENCAT_N  = 0x30, /* Number major class */
+  CUPS_GENCAT_ND = 0x31, /* Nd Number, Decimal Digit */
+  CUPS_GENCAT_NL = 0x32, /* Nl Number, Letter */
+  CUPS_GENCAT_NO = 0x33, /* No Number, Other */
+  CUPS_GENCAT_P  = 0x40, /* Punctuation major class */
+  CUPS_GENCAT_PC = 0x41, /* Pc Punctuation, Connector */
+  CUPS_GENCAT_PD = 0x42, /* Pd Punctuation, Dash */
+  CUPS_GENCAT_PS = 0x43, /* Ps Punctuation, Open (start) */
+  CUPS_GENCAT_PE = 0x44, /* Pe Punctuation, Close (end) */
+  CUPS_GENCAT_PI = 0x45, /* Pi Punctuation, Initial Quote */
+  CUPS_GENCAT_PF = 0x46, /* Pf Punctuation, Final Quote */
+  CUPS_GENCAT_PO = 0x47, /* Po Punctuation, Other */
+  CUPS_GENCAT_S  = 0x50, /* Symbol major class */
+  CUPS_GENCAT_SM = 0x51, /* Sm Symbol, Math */
+  CUPS_GENCAT_SC = 0x52, /* Sc Symbol, Currency */
+  CUPS_GENCAT_SK = 0x53, /* Sk Symbol, Modifier */
+  CUPS_GENCAT_SO = 0x54, /* So Symbol, Other */
+  CUPS_GENCAT_Z  = 0x60, /* Separator major class */
+  CUPS_GENCAT_ZS = 0x61, /* Zs Separator, Space */
+  CUPS_GENCAT_ZL = 0x62, /* Zl Separator, Line */
+  CUPS_GENCAT_ZP = 0x63, /* Zp Separator, Paragraph */
+  CUPS_GENCAT_C  = 0x70, /* Other (miscellaneous) major class */
+  CUPS_GENCAT_CC = 0x71, /* Cc Other, Control */
+  CUPS_GENCAT_CF = 0x72, /* Cf Other, Format */
+  CUPS_GENCAT_CS = 0x73, /* Cs Other, Surrogate */
+  CUPS_GENCAT_CO = 0x74, /* Co Other, Private Use */
+  CUPS_GENCAT_CN = 0x75  /* Cn Other, Not Assigned */
+} cups_gencat_t;
+
+/*
+ * Note - parse Unicode char bidi category from 'UnicodeData.txt'
+ * into sparse local table in 'normalize.c'.
+ * Add bidirectional support to 'textcommon.c' - per Mike
+ */
+
+typedef enum                    /**** Unicode Bidi Category ****/
+{
+  CUPS_BIDI_L,   /* Left-to-Right (Alpha, Syllabic, Ideographic) */
+  CUPS_BIDI_LRE, /* Left-to-Right Embedding (explicit) */
+  CUPS_BIDI_LRO, /* Left-to-Right Override (explicit) */
+  CUPS_BIDI_R,   /* Right-to-Left (Hebrew alphabet and most punct) */
+  CUPS_BIDI_AL,  /* Right-to-Left Arabic (Arabic, Thaana, Syriac) */
+  CUPS_BIDI_RLE, /* Right-to-Left Embedding (explicit) */
+  CUPS_BIDI_RLO, /* Right-to-Left Override (explicit) */
+  CUPS_BIDI_PDF, /* Pop Directional Format */
+  CUPS_BIDI_EN,  /* Euro Number (Euro and East Arabic-Indic digits) */
+  CUPS_BIDI_ES,  /* Euro Number Separator (Slash) */
+  CUPS_BIDI_ET,  /* Euro Number Termintor (Plus, Minus, Degree, etc) */
+  CUPS_BIDI_AN,  /* Arabic Number (Arabic-Indic digits, separators) */
+  CUPS_BIDI_CS,  /* Common Number Separator (Colon, Comma, Dot, etc) */
+  CUPS_BIDI_NSM, /* Non-Spacing Mark (category Mn / Me in UCD) */
+  CUPS_BIDI_BN,  /* Boundary Neutral (Formatting / Control chars) */
+  CUPS_BIDI_B,   /* Paragraph Separator */
+  CUPS_BIDI_S,   /* Segment Separator (Tab) */
+  CUPS_BIDI_WS,  /* Whitespace Space (Space, Line Separator, etc) */
+  CUPS_BIDI_ON   /* Other Neutrals */
+} cups_bidicat_t;
+
+/*
+ * Note - parse Unicode line break class from 'DerivedLineBreak.txt'
+ * into sparse local table (list of class ranges) in 'normalize.c'.
+ * Note - add state table from UAX-14, section 7.3 - Ira
+ * Remember to do BK and SP in outer loop (not in state table).
+ * Consider optimization for CM (combining mark).
+ * See 'LineBreak.txt' (12,875) and 'DerivedLineBreak.txt' (1,350).
+ */
+
+typedef enum                    /**** Unicode Line Break Class ****/
+{
+ /*
+  * (A) - Allow Break AFTER
+  * (XA) - Prevent Break AFTER
+  * (B) - Allow Break BEFORE
+  * (XB) - Prevent Break BEFORE
+  * (P) - Allow Break For Pair
+  * (XP) - Prevent Break For Pair
+  */
+  CUPS_BREAK_AI, /* Ambiguous (Alphabetic or Ideograph) */
+  CUPS_BREAK_AL, /* Ordinary Alphabetic / Symbol Chars (XP) */
+  CUPS_BREAK_BA, /* Break Opportunity After Chars (A) */
+  CUPS_BREAK_BB, /* Break Opportunities Before Chars (B) */
+  CUPS_BREAK_B2, /* Break Opportunity Before / After (B/A/XP) */
+  CUPS_BREAK_BK, /* Mandatory Break (A) (normative) */
+  CUPS_BREAK_CB, /* Contingent Break (B/A) (normative) */
+  CUPS_BREAK_CL, /* Closing Punctuation (XB) */
+  CUPS_BREAK_CM, /* Attached Chars / Combining (XB) (normative) */
+  CUPS_BREAK_CR, /* Carriage Return (A) (normative) */
+  CUPS_BREAK_EX, /* Exclamation / Interrogation (XB) */
+  CUPS_BREAK_GL, /* Non-breaking ("Glue") (XB/XA) (normative) */
+  CUPS_BREAK_HY, /* Hyphen (XA) */
+  CUPS_BREAK_ID, /* Ideographic (B/A) */
+  CUPS_BREAK_IN, /* Inseparable chars (XP) */
+  CUPS_BREAK_IS, /* Numeric Separator (Infix) (XB) */
+  CUPS_BREAK_LF, /* Line Feed (A) (normative) */
+  CUPS_BREAK_NS, /* Non-starters (XB) */
+  CUPS_BREAK_NU, /* Numeric (XP) */
+  CUPS_BREAK_OP, /* Opening Punctuation (XA) */
+  CUPS_BREAK_PO, /* Postfix (Numeric) (XB) */
+  CUPS_BREAK_PR, /* Prefix (Numeric) (XA) */
+  CUPS_BREAK_QU, /* Ambiguous Quotation (XB/XA) */
+  CUPS_BREAK_SA, /* Context Dependent (South East Asian) (P) */
+  CUPS_BREAK_SG, /* Surrogates (XP) (normative) */
+  CUPS_BREAK_SP, /* Space (A) (normative) */
+  CUPS_BREAK_SY, /* Symbols Allowing Break After (A) */
+  CUPS_BREAK_XX, /* Unknown (XP) */
+  CUPS_BREAK_ZW  /* Zero Width Space (A) (normative) */
+} cups_breakclass_t;
+
+typedef int cups_combclass_t;   /**** Unicode Combining Class ****/
+                                /* 0=base / 1..254=combining char */
+
+/*
+ * Structures...
+ */
+
+typedef struct cups_normmap_str /**** Normalize Map Cache Struct ****/
+{
+  struct cups_normmap_str *next;        /* Next normalize in cache */
+  int                   used;           /* Number of times entry used */
+  cups_normalize_t      normalize;      /* Normalization type */
+  int                   normcount;      /* Count of Source Chars */
+  ucs2_t                *uni2norm;      /* Char -> Normalization */
+                                        /* ...only supports UCS-2 */
+} cups_normmap_t;
+
+typedef struct cups_foldmap_str /**** Case Fold Map Cache Struct ****/
+{
+  struct cups_foldmap_str *next;        /* Next case fold in cache */
+  int                   used;           /* Number of times entry used */
+  cups_folding_t        fold;           /* Case folding type */
+  int                   foldcount;      /* Count of Source Chars */
+  ucs2_t                *uni2fold;      /* Char -> Folded Char(s) */
+                                        /* ...only supports UCS-2 */
+} cups_foldmap_t;
+
+typedef struct cups_prop_str    /**** Char Property Struct ****/
+{
+  ucs2_t                ch;             /* Unicode Char as UCS-2 */
+  unsigned char         gencat;         /* General Category */
+  unsigned char         bidicat;        /* Bidirectional Category */
+} cups_prop_t;
+
+typedef struct                  /**** Char Property Map Struct ****/
+{
+  int                   used;           /* Number of times entry used */
+  int                   propcount;      /* Count of Source Chars */
+  cups_prop_t           *uni2prop;      /* Char -> Properties */
+} cups_propmap_t;
+
+typedef struct                  /**** Line Break Class Map Struct ****/
+{
+  int                   used;           /* Number of times entry used */
+  int                   breakcount;     /* Count of Source Chars */
+  ucs2_t                *uni2break;     /* Char -> Line Break Class */
+} cups_breakmap_t;
+
+typedef struct cups_comb_str    /**** Char Combining Class Struct ****/
+{
+  ucs2_t                ch;             /* Unicode Char as UCS-2 */
+  unsigned char         combclass;      /* Combining Class */
+  unsigned char         reserved;       /* Reserved for alignment */
+} cups_comb_t;
+
+typedef struct                  /**** Combining Class Map Struct ****/
+{
+  int                   used;           /* Number of times entry used */
+  int                   combcount;      /* Count of Source Chars */
+  cups_comb_t           *uni2comb;      /* Char -> Combining Class */
+} cups_combmap_t;
+
+/*
+ * Globals...
+ */
+
+extern int      NzSupportUcs2;  /* Support UCS-2 (16-bit) mapping */
+extern int      NzSupportUcs4;  /* Support UCS-4 (32-bit) mapping */
+
+/*
+ * Prototypes...
+ */
+
+/*
+ * Utility functions for normalization module
+ */
+extern int      cupsNormalizeMapsGet(void);
+extern int      cupsNormalizeMapsFree(void);
+extern void     cupsNormalizeMapsFlush(void);
+
+/*
+ * Normalize UTF-8 string to Unicode UAX-15 Normalization Form
+ * Note - Compatibility Normalization Forms (NFKD/NFKC) are
+ * unsafe for subsequent transcoding to legacy charsets
+ */
+extern int      cupsUtf8Normalize(utf8_t *dest, /* O - Target string */
+                    const utf8_t *src,          /* I - Source string */
+                    const int maxout,           /* I - Max output */
+                    const cups_normalize_t normalize);
+                                                /* I - Normalization */
+
+/*
+ * Normalize UTF-32 string to Unicode UAX-15 Normalization Form
+ * Note - Compatibility Normalization Forms (NFKD/NFKC) are
+ * unsafe for subsequent transcoding to legacy charsets
+ */
+extern int      cupsUtf32Normalize(utf32_t *dest,
+                                                /* O - Target string */
+                    const utf32_t *src,         /* I - Source string */
+                    const int maxout,           /* I - Max output */
+                    const cups_normalize_t normalize);
+                                                /* I - Normalization */
+
+/*
+ * Case Fold UTF-8 string per Unicode UAX-21 Section 2.3
+ * Note - Case folding output is
+ * unsafe for subsequent transcoding to legacy charsets
+ */
+extern int      cupsUtf8CaseFold(utf8_t *dest,  /* O - Target string */
+                    const utf8_t *src,          /* I - Source string */
+                    const int maxout,           /* I - Max output */
+                    const cups_folding_t fold); /* I - Fold Mode */
+
+/*
+ * Case Fold UTF-32 string per Unicode UAX-21 Section 2.3
+ * Note - Case folding output is
+ * unsafe for subsequent transcoding to legacy charsets
+ */
+extern int      cupsUtf32CaseFold(utf32_t *dest,/* O - Target string */
+                    const utf32_t *src,         /* I - Source string */
+                    const int maxout,           /* I - Max output */
+                    const cups_folding_t fold); /* I - Fold Mode */
+
+/*
+ * Compare UTF-8 strings after case folding
+ */
+extern int      cupsUtf8CompareCaseless(const utf8_t *s1,
+                                                /* I - String1 */
+                    const utf8_t *s2);          /* I - String2 */
+
+/*
+ * Compare UTF-32 strings after case folding
+ */
+extern int      cupsUtf32CompareCaseless(const utf32_t *s1,
+                                                /* I - String1 */
+                    const utf32_t *s2);         /* I - String2 */
+
+/*
+ * Compare UTF-8 strings after case folding and NFKC normalization
+ */
+extern int      cupsUtf8CompareIdentifier(const utf8_t *s1,
+                                                /* I - String1 */
+                    const utf8_t *s2);          /* I - String2 */
+
+/*
+ * Compare UTF-32 strings after case folding and NFKC normalization
+ */
+extern int      cupsUtf32CompareIdentifier(const utf32_t *s1,
+                                                /* I - String1 */
+                    const utf32_t *s2);         /* I - String2 */
+
+/*
+ * Get UTF-32 character property
+ */
+extern int      cupsUtf32CharacterProperty(const utf32_t ch,
+                                                /* I - Source char */
+                    const cups_property_t property);
+                                                /* I - Char Property */
+
+#  ifdef __cplusplus
+}
+#  endif /* __cplusplus */
+
+#endif /* !_CUPS_NORMALIZE_H_ */
+
+/*
+ * End of "$Id: normalize.h,v 1.1.2.1 2002/08/19 01:15:20 mike Exp $"
+ */
index 80856a9c4227d1cc96008acceecf77672056526f..abda550625f0fa5fc7931ed9dd23d8fdc5e6c621 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: testppd.c,v 1.18.2.4 2002/03/01 19:55:14 mike Exp $"
+ * "$Id: testppd.c,v 1.18.2.5 2002/08/19 01:15:20 mike Exp $"
  *
  *   PPD test program for the Common UNIX Printing System (CUPS).
  *
@@ -47,6 +47,7 @@ main(int  argc,                       /* I - Number of command-line arguments */
      char *argv[])             /* I - Command-line arguments */
 {
   int          i, j, k, m;     /* Looping vars */
+  const char   *filename;      /* Filename */
   ppd_file_t   *ppd;           /* PPD file record */
   ppd_size_t   *size;          /* Size record */
   ppd_group_t  *group;         /* UI group */
@@ -198,5 +199,5 @@ main(int  argc,                     /* I - Number of command-line arguments */
 
 
 /*
- * End of "$Id: testppd.c,v 1.18.2.4 2002/03/01 19:55:14 mike Exp $".
+ * End of "$Id: testppd.c,v 1.18.2.5 2002/08/19 01:15:20 mike Exp $".
  */
diff --git a/cups/transcode.c b/cups/transcode.c
new file mode 100644 (file)
index 0000000..3674831
--- /dev/null
@@ -0,0 +1,981 @@
+/*
+ * "$Id: transcode.c,v 1.1.2.1 2002/08/19 01:15:20 mike Exp $"
+ *
+ *   Transcoding support for the Common UNIX Printing System (CUPS).
+ *
+ *   Copyright 1997-2002 by Easy Software Products.
+ *
+ *   These coded instructions, statements, and computer programs are
+ *   the property of Easy Software Products and are protected by Federal
+ *   copyright law.  Distribution and use rights are outlined in the
+ *   file "LICENSE.txt" which should have been included with this file.
+ *   If this file is missing or damaged please contact Easy Software
+ *   Products at:
+ *
+ *       Attn: CUPS Licensing Information
+ *       Easy Software Products
+ *       44141 Airport View Drive, Suite 204
+ *       Hollywood, Maryland 20636-3111 USA
+ *
+ *       Voice: (301) 373-9603
+ *       EMail: cups-info@cups.org
+ *         WWW: http://www.cups.org
+ *
+ * Contents:
+ *
+ *   cupsCharmapGet()    - Get a character set map.
+ *   cupsCharmapFree()   - Free a character set map.
+ *   cupsCharmapFlush()  - Flush all character set maps out of cache.
+ *   cupsUtf8ToCharset() - Convert UTF-8 to legacy character set.
+ *   cupsCharsetToUtf8() - Convert legacy character set to UTF-8.
+ *   cupsUtf8ToUtf16()   - Convert UTF-8 to UTF-16.
+ *   cupsUtf16ToUtf8()   - Convert UTF-16 to UTF-8.
+ *   cupsUtf8ToUtf32()   - Convert UTF-8 to UTF-32.
+ *   cupsUtf32ToUtf8()   - Convert UTF-32 to UTF-8.
+ *   cupsUtf16ToUtf32()  - Convert UTF-16 to UTF-32.
+ *   cupsUtf32ToUtf16()  - Convert UTF-32 to UTF-16.
+ */
+
+/*
+ * Include necessary headers...
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+#include <ctype.h>
+#include <time.h>
+
+#include "language.h"
+#include "string.h"
+#include "transcode.h"
+
+/*
+ * Globals...
+ */
+
+int     TcFixMapNames = 1;  /* Fix map names to Unicode names */
+int     TcStrictUtf8 = 0;   /* Non-shortest-form is illegal */
+int     TcStrictUtf16 = 0;  /* Invalid surrogate pair is illegal */
+int     TcStrictUtf32 = 0;  /* Greater than 0x10ffff is illegal */
+int     TcRequireBOM = 0;   /* Require BOM for little/big-endian */
+int     TcSupportBOM = 0;   /* Support BOM for little/big-endian */
+int     TcSupport8859 = 1;  /* Support ISO 8859-x repertoires */
+int     TcSupportWin = 1;   /* Support Windows-x repertoires */
+int     TcSupportCJK = 0;   /* Support CJK Asian repertoires */
+
+/*
+ * Local Globals...
+ */
+
+static cups_cmap_t      *cmap_cache = NULL;    /* SBCS Charmap Cache */
+#if 0
+static cups_dmap_t      *dmap_cache = NULL;    /* DBCS Charmap Cache */
+#endif
+
+/*
+ * 'cupsCharmapGet()' - Get a character set map.
+ *
+ * This code only handles single-byte character sets (SBCS)...
+ * This code does not handle double-byte character sets (DBCS) or
+ * multiple-byte sets (MBCS) with charset switching via escapes...
+ */
+void *                          /* O - Charset map pointer */
+cupsCharmapGet(const cups_encoding_t encoding)  /* I - Encoding */
+{
+  int           i, j;           /* Looping variables */
+  int           legchar;        /* Legacy character value */
+  utf32_t       unichar;        /* Unicode character value */
+  cups_cmap_t   *cmap;          /* Legacy SBCS / Unicode Charset Map */
+  char          *datadir;       /* CUPS_DATADIR environment variable */
+  char          mapname[80];    /* Name of charset map */
+  char          filename[256];  /* Filename for charset map file */
+  FILE          *fp;            /* Charset map file pointer */
+  char          *s;             /* Line parsing pointer */
+  sbcs_t        *row;           /* Pointer to row in 'uni2char' */
+  char          line[256];      /* Line from charset map file */
+
+ /*
+  * See if we already have this charset map loaded...
+  */
+  for (cmap = cmap_cache; cmap != NULL; cmap = cmap->next)
+  {
+    if (cmap->encoding == encoding)
+    {
+      cmap->used ++;
+      return ((void *) cmap);
+    }
+  }
+
+ /*
+  * Get the data directory and encoding name...
+  */
+  if ((datadir = getenv("CUPS_DATADIR")) == NULL)
+    datadir = CUPS_DATADIR;
+  s = cupsEncodingName(encoding);
+
+  snprintf(mapname, sizeof(mapname), "%s.txt", s);
+
+ /*
+  * Open charset map input file...
+  */
+  snprintf(filename, sizeof(filename), "%s/charmaps/%s", datadir, mapname);
+  fp = fopen(filename, "r");
+  if (fp == NULL)
+    return (NULL);
+
+ /*
+  * Allocate memory for SBCS charset map and add to cache...
+  */
+  cmap = (cups_cmap_t *) calloc(1, sizeof(cups_cmap_t));
+  if (cmap == NULL)
+  {
+    fclose(fp);
+    return (NULL);
+  }
+  cmap->next = cmap_cache;
+  cmap_cache = cmap;
+  cmap->used ++;
+  cmap->encoding = encoding;
+
+ /*
+  * Save charset map into memory for transcoding...
+  */
+  for (i = j = 0; (i < 256) && (j < 40);)
+  {
+    s = fgets(&line[0], sizeof(line), fp);
+    if (s == NULL)
+      break;
+    if ((*s == '#') || (*s == '\n') || (*s == '\0'))
+      continue;
+    i ++;
+    if (strncmp (s, "0x", 2) == 0)
+      s += 2;
+    if (sscanf(s, "%x", &legchar) != 1)
+      break;
+    if ((legchar < 0) || (legchar > 255))
+      break;
+    while ((*s != 0) && (*s != ' ') && (*s != '\t'))
+      s ++;
+    while ((*s != 0) && ((*s == ' ') || (*s == '\t')))
+      s ++;
+    if (strncmp (s, "0x", 2) == 0)
+      s += 2;
+    if (sscanf(s, "%lx", &unichar) != 1)
+      break;
+
+   /*
+    * Convert beyond Plane 0 (BMP) to Replacement Character...
+    */
+    if (unichar > 0xffff)
+      unichar = 0xfffd;
+
+   /*
+    * Save legacy to Unicode mapping in direct lookup table...
+    */
+    cmap->char2uni[legchar] = (ucs2_t) (unichar & 0xffff);
+
+   /*
+    * Save Unicode to legacy mapping in indirect lookup table...
+    */
+    row = cmap->uni2char[(((int) unichar) >> 8) & 0xff];
+    if (row == NULL)
+    {
+      row = (sbcs_t *) calloc(256, sizeof(sbcs_t));
+      if (row == NULL)
+      {
+        cupsCharmapFlush();
+        return (NULL);
+      }
+      cmap->uni2char[(((int) unichar) >> 8) & 0xff] = row;
+      j ++;
+    }
+    row += (int) (unichar & 0xff);
+
+   /*
+    * Convert Replacement Character to visible replacement...
+    */
+    if (unichar == 0xfffd)
+      *row = '?';
+    else
+      *row = (sbcs_t) legchar;
+  }
+  fclose(fp);
+  return ((void *) cmap);
+}
+
+/*
+ * 'cupsCharmapFree()' - Free a character set map.
+ *
+ * This does not actually free; use 'cupsCharmapFlush()' for that.
+ */
+void
+cupsCharmapFree(const cups_encoding_t encoding) /* I - Encoding */
+{
+  cups_cmap_t   *cmap;          /* Legacy SBCS / Unicode Charset Map */
+
+ /*
+  * See if we already have this charset map loaded...
+  */
+  for (cmap = cmap_cache; cmap != NULL; cmap = cmap->next)
+  {
+    if (cmap->encoding == encoding)
+    {
+      if (cmap->used > 0)
+        cmap->used --;
+      break;
+    }
+  }
+  return;
+}
+
+/*
+ * 'cupsCharmapFlush()' - Flush all character set maps out of cache.
+ */
+void
+cupsCharmapFlush(void)
+{
+  int           i;              /* Looping variable */
+  cups_cmap_t   *cmap;          /* Legacy SBCS / Unicode Charset Map */
+  cups_cmap_t   *next;          /* Next Legacy Charset Map */
+  sbcs_t        *row;           /* Pointer to row in 'uni2char' */
+
+ /*
+  * Loop through charset map cache, free all memory...
+  */
+  for (cmap = cmap_cache; cmap != NULL; cmap = next)
+  {
+    for (i = 0; i < 256; i ++)
+    {
+      if (row = cmap->uni2char[i])
+        free(row);
+    }
+    next = cmap->next;
+    free(cmap);
+  }
+  cmap_cache = NULL;
+  return;
+}
+
+/*
+ * 'cupsUtf8ToCharset()' - Convert UTF-8 to legacy character set.
+ *
+ * This code only handles single-byte character sets (SBCS)...
+ * This code does not handle double-byte character sets (DBCS) or
+ * multiple-byte sets (MBCS) with charset switching via escapes...
+ */
+int                             /* O - Count or -1 on error */
+cupsUtf8ToCharset(char *dest,   /* O - Target string */
+    const utf8_t *src,          /* I - Source string */
+    const int maxout,           /* I - Max output */
+    cups_encoding_t encoding)   /* I - Encoding */
+{
+  char          *start = dest;  /* Start of destination string */
+  cups_cmap_t   *cmap;          /* Legacy SBCS / Unicode Charset Map */
+  utf32_t       ch;             /* Character value */
+  int           i;              /* Looping variable */
+  int           worklen;        /* Internal UCS-4 string length */
+  utf32_t       work[CUPS_MAX_USTRING];
+                                /* Internal UCS-4 string */
+  sbcs_t        *row;           /* Pointer to row in 'uni2char' */
+
+ /*
+  * Check for valid arguments and clear output...
+  */
+  if ((dest == NULL)
+  || (src == NULL)
+  || (maxout < 1)
+  || (maxout > CUPS_MAX_USTRING)
+  || (encoding == CUPS_UTF8))
+    return (-1);
+  *dest = '\0';
+
+ /*
+  * Find legacy charset map in cache...
+  */
+  cmap = (cups_cmap_t *) cupsCharmapGet(encoding);
+  if (cmap == NULL)
+    return (-1);
+
+ /*
+  * Convert input UTF-8 to internal UCS-4 (and insert BOM)...
+  */
+  worklen = cupsUtf8ToUtf32(work, src, CUPS_MAX_USTRING);
+  if (worklen < 0)
+    return (-1);
+
+ /*
+  * Convert internal UCS-4 to output legacy charset (and delete BOM)...
+  */
+  for (i = 0; i < worklen;)
+  {
+    ch = work[i];
+    if (ch == 0)
+      break;
+    i ++;
+
+   /*
+    * Check for leading BOM (and delete from output)...
+    */
+    if ((i == 1) && (ch == 0xfeff))
+      continue;
+
+   /*
+    * Convert ASCII verbatim (optimization)...
+    */
+    if (ch < 0x7f)
+    {
+      *dest = (char) ch;
+      dest ++;
+      continue;
+    }
+
+   /*
+    * Convert unknown character to visible replacement...
+    */
+    row = cmap->uni2char[(int) ((ch >> 8) & 0xff)];
+    if (row)
+      row += (int) (ch & 0xff);
+    if ((row == NULL) || (*row == 0))
+      *dest = '?';
+    else
+      *dest = (char) (*row);
+    dest ++;
+  }
+  *dest = '\0';
+  worklen = (int) (dest - start);
+  cupsCharmapFree(encoding);
+  return (worklen);
+}
+
+/*
+ * 'cupsCharsetToUtf8()' - Convert legacy character set to UTF-8.
+ *
+ * This code only handles single-byte character sets (SBCS)...
+ * This code does not handle double-byte character sets (DBCS) or
+ * multiple-byte sets (MBCS) with charset switching via escapes...
+ */
+int                             /* O - Count or -1 on error */
+cupsCharsetToUtf8(utf8_t *dest, /* O - Target string */
+    const char *src,            /* I - Source string */
+    const int maxout,           /* I - Max output */
+    cups_encoding_t encoding)   /* I - Encoding */
+{
+  cups_cmap_t   *cmap;          /* Legacy SBCS / Unicode Charset Map */
+  int           i;              /* Looping variable */
+  int           worklen;        /* Internal UCS-4 string length */
+  utf32_t       work[CUPS_MAX_USTRING];
+                                /* Internal UCS-4 string */
+
+ /*
+  * Check for valid arguments and clear output...
+  */
+  if ((dest == NULL)
+  || (src == NULL)
+  || (maxout < 1)
+  || (maxout > CUPS_MAX_USTRING)
+  || (encoding == CUPS_UTF8))
+    return (-1);
+  *dest = '\0';
+
+ /*
+  * Find legacy charset map in cache...
+  */
+  cmap = (cups_cmap_t *) cupsCharmapGet(encoding);
+  if (cmap == NULL)
+    return (-1);
+
+ /*
+  * Convert input legacy charset to internal UCS-4 (and insert BOM)...
+  */
+  i = 0;
+  if (TcRequireBOM)
+  {
+    work[0] = 0xfeff;
+    i ++;
+  }
+  for (; i < (CUPS_MAX_USTRING - 1); src ++)
+  {
+    if (*src == '\0')
+      break;
+    if (cmap->char2uni[(sbcs_t) *src] == 0)
+      work[i] = 0xfffd;
+    else
+      work[i] = (utf32_t) cmap->char2uni[(sbcs_t) *src];
+    i ++;
+  }
+  work[i] = 0;
+
+ /*
+  * Convert internal UCS-4 to output UTF-8 (and delete BOM)...
+  */
+  worklen = cupsUtf32ToUtf8(dest, work, maxout);
+  cupsCharmapFree(encoding);
+  return (worklen);
+}
+
+/*
+ * 'cupsUtf8ToUtf16()' - Convert UTF-8 to UTF-16.
+ *
+ * This code does not support Unicode beyond 16-bits (Plane 0)...
+ */
+int                             /* O - Count or -1 on error */
+cupsUtf8ToUtf16(utf16_t *dest,  /* O - Target string */
+    const utf8_t *src,          /* I - Source string */
+    const int maxout)           /* I - Max output */
+{
+  int           worklen;        /* Internal UCS-4 string length */
+  utf32_t       work[CUPS_MAX_USTRING];
+                                /* Internal UCS-4 string */
+
+ /*
+  * Check for valid arguments and clear output...
+  */
+  if ((dest == NULL)
+  || (src == NULL)
+  || (maxout < 1)
+  || (maxout > CUPS_MAX_USTRING))
+    return (-1);
+  *dest = 0;
+
+ /*
+  * Convert input UTF-8 to internal UCS-4 (and insert BOM)...
+  */
+  worklen = cupsUtf8ToUtf32(work, src, CUPS_MAX_USTRING);
+  if (worklen < 0)
+    return (-1);
+
+ /*
+  * Convert internal UCS-4 to output UTF-16...
+  */
+  worklen = cupsUtf32ToUtf16(dest, work, maxout);
+  return (worklen);
+}
+
+/*
+ * 'cupsUtf16ToUtf8()' - Convert UTF-16 to UTF-8.
+ *
+ * This code does not support Unicode beyond 16-bits (Plane 0)...
+ */
+int                             /* O - Count or -1 on error */
+cupsUtf16ToUtf8(utf8_t *dest,   /* O - Target string */
+    const utf16_t *src,         /* I - Source string */
+    const int maxout)           /* I - Max output */
+{
+  int           worklen;        /* Internal UCS-4 string length */
+  utf32_t       work[CUPS_MAX_USTRING];
+                                /* Internal UCS-4 string */
+
+ /*
+  * Check for valid arguments and clear output...
+  */
+  if ((dest == NULL)
+  || (src == NULL)
+  || (maxout < 1)
+  || (maxout > CUPS_MAX_USTRING))
+    return (-1);
+  *dest = 0;
+
+ /*
+  * Convert input UTF-16 to internal UCS-4 (and byte-swap)...
+  */
+  worklen = cupsUtf16ToUtf32(work, src, CUPS_MAX_USTRING);
+  if (worklen < 0)
+    return (-1);
+
+ /*
+  * Convert internal UCS-4 to output UTF-8 (and delete BOM)...
+  */
+  worklen = cupsUtf32ToUtf8(dest, work, maxout);
+  return (worklen);
+}
+
+/*
+ * 'cupsUtf8ToUtf32()' - Convert UTF-8 to UTF-32.
+ *
+ * 32-bit UTF-32 (actually 21-bit) maps to UTF-8 as follows...
+ *
+ *   UTF-32 char     UTF-8 char(s)
+ *   --------------------------------------------------
+ *        0 to 127 = 0xxxxxxx (US-ASCII)
+ *     128 to 2047 = 110xxxxx 10yyyyyy
+ *   2048 to 65535 = 1110xxxx 10yyyyyy 10zzzzzz
+ *         > 65535 = 11110xxx 10yyyyyy 10zzzzzz 10xxxxxx
+ *
+ * UTF-32 prohibits chars beyond Plane 16 (> 0x10ffff) in UCS-4,
+ * which would convert to five- or six-octet UTF-8 sequences...
+ *
+ * This code does not support Unicode beyond 16-bits (Plane 0)...
+ */
+int                             /* O - Count or -1 on error */
+cupsUtf8ToUtf32(utf32_t *dest,  /* O - Target string */
+    const utf8_t *src,          /* I - Source string */
+    const int maxout)           /* I - Max output */
+{
+  utf8_t        *first = (utf8_t *) src;
+  int           srclen;         /* Source string length */
+  int           i;              /* Looping variable */
+  utf32_t       ch;             /* Character value */
+  utf32_t       next;           /* Next character value */
+  utf32_t       ch32;           /* UTF-32 character value */
+
+ /*
+  * Check for valid arguments and clear output...
+  */
+  if ((dest == NULL)
+  || (src == NULL)
+  || (maxout < 1)
+  || (maxout > CUPS_MAX_USTRING))
+    return (-1);
+  *dest = 0;
+
+ /*
+  * Convert input UTF-8 to output UTF-32 (and insert BOM)...
+  */
+  i = 0;
+  if (TcRequireBOM)
+  {
+    *dest = 0xfeff;
+    dest ++;
+    i ++;
+  }
+  srclen = strlen((char *) src);
+  for (; i < (maxout - 1); src ++, dest ++)
+  {
+    ch = (utf32_t) *src;
+    ch &= 0xff;
+    if (ch == 0)
+      break;
+    i ++;
+
+   /*
+    * Convert UTF-8 character(s) to UTF-32 character...
+    */
+    if ((ch & 0x7f) == ch)
+    {
+     /*
+      * One-octet UTF-8 <= 127 (US-ASCII)...
+      */
+      *dest = ch;
+    }
+    else if ((ch & 0xe0) == 0xc0)
+    {
+     /*
+      * Two-octet UTF-8 <= 2047 (Latin-x)...
+      */
+      src ++;
+      next = (utf32_t) *src;
+      next &= 0xff;
+      if (next == 0)
+        return (-1);
+      ch32 = ((ch & 0x1f) << 6) | (next & 0x3f);
+
+     /*
+      * Check for non-shortest form (invalid UTF-8)...
+      */
+      if ((TcStrictUtf8) && (ch32 <= 127))
+        return (-1);
+      *dest = ch32;
+    }
+    else if ((ch & 0xf0) == 0xe0)
+    {
+     /*
+      * Three-octet UTF-8 <= 65535 (Plane 0 - BMP)...
+      */
+      src ++;
+      next = (utf32_t) *src;
+      next &= 0xff;
+      if (next == 0)
+        return (-1);
+      ch32 = ((ch & 0x1f) << 6) | (next & 0x3f);
+      src ++;
+      next = (utf32_t) *src;
+      next &= 0xff;
+      if (next == 0)
+        return (-1);
+      ch32 = ((ch32 << 6) | (next & 0x3f));
+
+     /*
+      * Check for non-shortest form (invalid UTF-8)...
+      */
+      if ((TcStrictUtf8) && (ch32 <= 2047))
+        return (-1);
+      *dest = ch32;
+    }
+    else if ((ch & 0xf8) == 0xf0)
+    {
+     /*
+      * Four-octet UTF-8 to Replacement Character...
+      */
+      if (((src - first) + 3) >= srclen)
+        return (-1);
+      src += 3;
+      *dest = 0xfffd;
+    }
+    else if ((ch & 0xfc) == 0xf8)
+    {
+     /*
+      * Five-octet UTF-8 to Replacement Character...
+      */
+      if (TcStrictUtf32)
+        return (-1);
+      if (((src - first) + 4) >= srclen)
+        return (-1);
+      src += 4;
+      *dest = 0xfffd;
+    }
+    else if ((ch & 0xfe) == 0xfc)
+    {
+     /*
+      * Six-octet UTF-8 to Replacement Character...
+      */
+      if (TcStrictUtf32)
+        return (-1);
+      if (((src - first) + 5) >= srclen)
+        return (-1);
+      src += 5;
+      *dest = 0xfffd;
+    }
+    else
+    {
+     /*
+      * More than six-octet (invalid UTF-8 sequence)...
+      */
+      return (-1);
+    }
+
+   /*
+    * Check for UTF-16 surrogate (illegal UTF-8)...
+    */
+    if ((*dest >= 0xd800) && (*dest <= 0xdfff))
+      return (-1);
+
+   /*
+    * Check for beyond Plane 16 (invalid UTF-8)...
+    */
+    if ((TcStrictUtf8) && (*dest > 0x10ffff))
+      return (-1);
+  }
+  *dest = 0;
+  return (i);
+}
+
+/*
+ * 'cupsUtf32ToUtf8()' - Convert UTF-32 to UTF-8.
+ *
+ * 32-bit UTF-32 (actually 21-bit) maps to UTF-8 as follows...
+ *
+ *   UTF-32 char     UTF-8 char(s)
+ *   --------------------------------------------------
+ *        0 to 127 = 0xxxxxxx (US-ASCII)
+ *     128 to 2047 = 110xxxxx 10yyyyyy
+ *   2048 to 65535 = 1110xxxx 10yyyyyy 10zzzzzz
+ *         > 65535 = 11110xxx 10yyyyyy 10zzzzzz 10xxxxxx
+ *
+ * UTF-32 prohibits chars beyond Plane 16 (> 0x10ffff) in UCS-4,
+ * which would convert to five- or six-octet UTF-8 sequences...
+ *
+ * This code does not support Unicode beyond 16-bits (Plane 0)...
+ */
+int                             /* O - Count or -1 on error */
+cupsUtf32ToUtf8(utf8_t *dest,   /* O - Target string */
+    const utf32_t *src,         /* I - Source string */
+    const int maxout)           /* I - Max output */
+{
+  utf32_t       *first = (utf32_t *) src;
+                                /* First source char */
+  utf8_t        *start = dest;  /* Start of destination string */
+  int           i;              /* Looping variable */
+  int           swap = 0;       /* Byte-swap input to output */
+  utf32_t       ch;             /* Character value */
+
+ /*
+  * Check for valid arguments and clear output...
+  */
+  if ((dest == NULL)
+  || (src == NULL)
+  || (maxout < 1))
+    return (-1);
+  *dest = '\0';
+
+ /*
+  * Check for leading BOM in UTF-32 and inverted BOM...
+  */
+  if ((TcSupportBOM | TcRequireBOM)
+  && (*src == 0xfffe0000))
+    swap = 1;
+
+ /*
+  * Check for leading BOM in UTF-32 and unsupported...
+  */
+  if ((TcSupportBOM == 0)
+  && ((*src == 0xfeff) || (*src == 0xfffe0000)))
+    return (-1);
+
+ /*
+  * Check for missing BOM in UTF-32 and required...
+  */
+  if ((TcRequireBOM)
+  && ((*src != 0xfeff) && (*src != 0xfffe0000)))
+    return (-1);
+
+ /*
+  * Convert input UTF-32 to output UTF-8...
+  */
+  for (i = 0; i < (maxout - 1); src ++)
+  {
+    ch = *src;
+    if (ch == 0)
+      break;
+
+   /*
+    * Byte swap input UTF-32, if necessary...
+    */
+    if (swap)
+      ch = ((ch >> 24) | ((ch >> 8) & 0xff00) | ((ch << 8) & 0xff0000));
+
+   /*
+    * Check for leading BOM (and delete from output)...
+    */
+    if ((src == first) && (ch == 0xfeff))
+      continue;
+
+   /*
+    * Check for beyond Plane 16 (invalid UTF-32)...
+    */
+    if ((TcStrictUtf32) && (ch > 0x10ffff))
+      return (-1);
+
+   /*
+    * Convert beyond Plane 0 (BMP) to Replacement Character...
+    */
+    if (ch > 0xffff)
+      ch = 0xfffd;
+
+   /*
+    * Convert UTF-32 character to UTF-8 character(s)...
+    */
+    if (ch <= 0x7f)
+    {
+     /*
+      * One-octet UTF-8 <= 127 (US-ASCII)...
+      */
+      *dest = (utf8_t) ch;
+      dest ++;
+      i ++;
+    }
+    else if (ch <= 0x7ff)
+    {
+     /*
+      * Two-octet UTF-8 <= 2047 (Latin-x)...
+      */
+      if (i > (maxout - 2))
+        break;
+      *dest = (utf8_t) (0xc0 | ((ch >> 6) & 0x1f));
+      dest ++;
+      i ++;
+      *dest = (utf8_t) (0x80 | (ch & 0x3f));
+      dest ++;
+      i ++;
+    }
+    else
+    {
+     /*
+      * Three-octet UTF-8 <= 65535 (Plane 0 - BMP)...
+      */
+      if (i > (maxout - 3))
+        break;
+      *dest = (utf8_t) (0xe0 | ((ch >> 12) & 0x0f));
+      dest ++;
+      i ++;
+      *dest = (utf8_t) (0x80 | ((ch >> 6) & 0x3f));
+      dest ++;
+      i ++;
+      *dest = (utf8_t) (0x80 | (ch & 0x3f));
+      dest ++;
+      i ++;
+    }
+  }
+  *dest = '\0';
+  i = (int) (dest - start);
+  return (i);
+}
+
+/*
+ * 'cupsUtf16ToUtf32()' - Convert UTF-16 to UTF-32.
+ *
+ * This code does not support Unicode beyond 16-bits (Plane 0)...
+ */
+int                             /* O - Count or -1 on error */
+cupsUtf16ToUtf32(utf32_t *dest, /* O - Target string */
+    const utf16_t *src,         /* I - Source string */
+    const int maxout)           /* I - Max output */
+{
+  int           i;              /* Looping variable */
+  int           swap = 0;       /* Byte-swap input to output */
+  int           surrogate = 0;  /* Expecting low-half surrogate */
+  utf32_t       ch;             /* Character value */
+
+ /*
+  * Check for valid arguments and clear output...
+  */
+  if ((dest == NULL)
+  || (src == NULL)
+  || (maxout < 1)
+  || (maxout > CUPS_MAX_USTRING))
+    return (-1);
+  *dest = 0;
+
+ /*
+  * Check for leading BOM in UTF-16 and inverted BOM...
+  */
+  if ((TcSupportBOM | TcRequireBOM)
+  && (*src == 0xfffe))
+    swap = 1;
+
+ /*
+  * Check for leading BOM in UTF-16 and unsupported...
+  */
+  if ((TcSupportBOM == 0)
+  && ((*src == 0xfeff) || (*src == 0xfffe)))
+    return (-1);
+
+ /*
+  * Check for missing BOM in UTF-16 and required...
+  */
+  if ((TcRequireBOM)
+  && ((*src != 0xfeff) && (*src != 0xfffe)))
+    return (-1);
+
+ /*
+  * Convert input UTF-16 to output UTF-32...
+  */
+  for (i = 0; i < (maxout - 1); src ++)
+  {
+    ch = (utf32_t) (*src & 0xffff);
+    if (ch == 0)
+      break;
+    i ++;
+
+   /*
+    * Byte swap input UTF-16, if necessary...
+    */
+    if (swap)
+      ch = (utf32_t) ((ch << 8) | (ch >> 8));
+
+   /*
+    * Discard expected UTF-16 low-half surrogate...
+    */
+    if ((ch >= 0xdc00) && (ch <= 0xdfff))
+    {
+      if ((TcStrictUtf16) && (surrogate == 0))
+        return (-1);
+      surrogate = 0;
+      continue;
+    }
+
+   /*
+    * Convert UTF-16 high-half surrogate to Replacement Character...
+    */
+    if ((ch >= 0xd800) && (ch <= 0xdbff))
+    {
+      if ((TcStrictUtf16) && (surrogate == 1))
+        return (-1);
+      surrogate = 1;
+      ch = 0xfffd;
+    }
+    *dest = ch;
+    dest ++;
+  }
+  *dest = 0;
+  return (i);
+}
+
+/*
+ * 'cupsUtf32ToUtf16()' - Convert UTF-32 to UTF-16.
+ *
+ * This code does not support Unicode beyond 16-bits (Plane 0)...
+ */
+int                             /* O - Count or -1 on error */
+cupsUtf32ToUtf16(utf16_t *dest, /* O - Target string */
+    const utf32_t *src,         /* I - Source string */
+    const int maxout)           /* I - Max output */
+{
+  int           i;              /* Looping variable */
+  int           swap = 0;       /* Byte-swap input to output */
+  utf32_t       ch;             /* Character value */
+
+ /*
+  * Check for valid arguments and clear output...
+  */
+  if ((dest == NULL)
+  || (src == NULL)
+  || (maxout < 1)
+  || (maxout > CUPS_MAX_USTRING))
+    return (-1);
+  *dest = 0;
+
+ /*
+  * Check for leading BOM in UTF-32 and inverted BOM...
+  */
+  if ((TcSupportBOM | TcRequireBOM)
+  && (*src == 0xfffe0000))
+    swap = 1;
+
+ /*
+  * Check for leading BOM in UTF-32 and unsupported...
+  */
+  if ((TcSupportBOM == 0)
+  && ((*src == 0xfeff) || (*src == 0xfffe0000)))
+    return (-1);
+
+ /*
+  * Check for missing BOM in UTF-32 and required...
+  */
+  if ((TcRequireBOM)
+  && ((*src != 0xfeff) && (*src != 0xfffe0000)))
+    return (-1);
+
+ /*
+  * Convert input UTF-32 to output UTF-16 (w/out surrogate pairs)...
+  */
+  for (i = 0; i < (maxout - 1); src ++, dest ++)
+  {
+    ch = *src;
+    if (ch == 0)
+      break;
+    i ++;
+
+   /*
+    * Byte swap input UTF-32, if necessary...
+    */
+    if (swap)
+      ch = ((ch >> 24) | ((ch >> 8) & 0xff00) | ((ch << 8) & 0xff0000));
+
+   /*
+    * Check for UTF-16 surrogate (illegal UTF-32)...
+    */
+    if ((ch >= 0xd800) && (ch <= 0xdfff))
+      return (-1);
+
+   /*
+    * Check for beyond Plane 16 (invalid UTF-32)...
+    */
+    if ((TcStrictUtf32) && (ch > 0x10ffff))
+      return (-1);
+
+   /*
+    * Convert beyond Plane 0 (BMP) to Replacement Character...
+    */
+    if (ch > 0xffff)
+      ch = 0xfffd;
+    *dest = (utf16_t) ch;
+  }
+  *dest = 0;
+  return (i);
+}
+
+/*
+ * End of "$Id: transcode.c,v 1.1.2.1 2002/08/19 01:15:20 mike Exp $"
+ */
diff --git a/cups/transcode.h b/cups/transcode.h
new file mode 100644 (file)
index 0000000..52ea53b
--- /dev/null
@@ -0,0 +1,156 @@
+/*
+ * "$Id: transcode.h,v 1.1.2.1 2002/08/19 01:15:21 mike Exp $"
+ *
+ *   Transcoding support for the Common UNIX Printing System (CUPS).
+ *
+ *   Copyright 1997-2002 by Easy Software Products.
+ *
+ *   These coded instructions, statements, and computer programs are
+ *   the property of Easy Software Products and are protected by Federal
+ *   copyright law.  Distribution and use rights are outlined in the
+ *   file "LICENSE.txt" which should have been included with this file.
+ *   If this file is missing or damaged please contact Easy Software
+ *   Products at:
+ *
+ *       Attn: CUPS Licensing Information
+ *       Easy Software Products
+ *       44141 Airport View Drive, Suite 204
+ *       Hollywood, Maryland 20636-3111 USA
+ *
+ *       Voice: (301) 373-9603
+ *       EMail: cups-info@cups.org
+ *         WWW: http://www.cups.org
+ */
+
+#ifndef _CUPS_TRANSCODE_H_
+#  define _CUPS_TRANSCODE_H_
+
+/*
+ * Include necessary headers...
+ */
+
+#  include "language.h"
+
+#  ifdef __cplusplus
+extern "C" {
+#  endif /* __cplusplus */
+
+/*
+ * Types...
+ */
+
+typedef unsigned char  utf8_t;  /* UTF-8 Unicode/ISO-10646 code unit */
+typedef unsigned short utf16_t; /* UTF-16 Unicode/ISO-10646 code unit */
+typedef unsigned long  utf32_t; /* UTF-32 Unicode/ISO-10646 code unit */
+typedef unsigned short ucs2_t;  /* UCS-2 Unicode/ISO-10646 code unit */
+typedef unsigned long  ucs4_t;  /* UCS-4 Unicode/ISO-10646 code unit */
+typedef unsigned char  sbcs_t;  /* SBCS Legacy 8-bit code unit */
+typedef unsigned short dbcs_t;  /* DBCS Legacy 16-bit code unit */
+
+/*
+ * Structures...
+ */
+
+typedef struct cups_cmap_str    /**** SBCS Charmap Cache Structure ****/
+{
+  struct cups_cmap_str  *next;          /* Next charmap in cache */
+  int                   used;           /* Number of times entry used */
+  cups_encoding_t       encoding;       /* Legacy charset encoding */
+  ucs2_t                char2uni[256];  /* Map Legacy SBCS -> UCS-2 */
+  sbcs_t                *uni2char[256]; /* Map UCS-2 -> Legacy SBCS */
+} cups_cmap_t;
+
+#if 0
+typedef struct cups_dmap_str    /**** DBCS Charmap Cache Structure ****/
+{
+  struct cups_dmap_str  *next;          /* Next charmap in cache */
+  int                   used;           /* Number of times entry used */
+  cups_encoding_t       encoding;       /* Legacy charset encoding */
+  ucs2_t                *char2uni[256]; /* Map Legacy DBCS -> UCS-2 */
+  dbcs_t                *uni2char[256]; /* Map UCS-2 -> Legacy DBCS */
+} cups_dmap_t;
+#endif
+
+/*
+ * Constants...
+ */
+#define CUPS_MAX_USTRING    1024    /* Maximum size of Unicode string */
+
+/*
+ * Globals...
+ */
+
+extern int      TcFixMapNames;  /* Fix map names to Unicode names */
+extern int      TcStrictUtf8;   /* Non-shortest-form is illegal */
+extern int      TcStrictUtf16;  /* Invalid surrogate pair is illegal */
+extern int      TcStrictUtf32;  /* Greater than 0x10FFFF is illegal */
+extern int      TcRequireBOM;   /* Require BOM for little/big-endian */
+extern int      TcSupportBOM;   /* Support BOM for little/big-endian */
+extern int      TcSupport8859;  /* Support ISO 8859-x repertoires */
+extern int      TcSupportWin;   /* Support Windows-x repertoires */
+extern int      TcSupportCJK;   /* Support CJK (Asian) repertoires */
+
+/*
+ * Prototypes...
+ */
+
+/*
+ * Utility functions for character set maps
+ */
+extern void     *cupsCharmapGet(const cups_encoding_t encoding);
+                                                /* I - Encoding */
+extern void     cupsCharmapFree(const cups_encoding_t encoding);
+                                                /* I - Encoding */
+extern void     cupsCharmapFlush(void);
+
+/*
+ * Convert UTF-8 to and from legacy character set
+ */
+extern int      cupsUtf8ToCharset(char *dest,   /* O - Target string */
+                    const utf8_t *src,          /* I - Source string */
+                    const int maxout,           /* I - Max output */
+                    cups_encoding_t encoding);  /* I - Encoding */
+extern int      cupsCharsetToUtf8(utf8_t *dest, /* O - Target string */
+                    const char *src,            /* I - Source string */
+                    const int maxout,           /* I - Max output */
+                    cups_encoding_t encoding);  /* I - Encoding */
+
+/*
+ * Convert UTF-8 to and from UTF-16
+ */
+extern int      cupsUtf8ToUtf16(utf16_t *dest,  /* O - Target string */
+                    const utf8_t *src,          /* I - Source string */
+                    const int maxout);          /* I - Max output */
+extern int      cupsUtf16ToUtf8(utf8_t *dest,   /* O - Target string */
+                    const utf16_t *src,         /* I - Source string */
+                    const int maxout);          /* I - Max output */
+
+/*
+ * Convert UTF-8 to and from UTF-32
+ */
+extern int      cupsUtf8ToUtf32(utf32_t *dest,  /* O - Target string */
+                    const utf8_t *src,          /* I - Source string */
+                    const int maxout);          /* I - Max output */
+extern int      cupsUtf32ToUtf8(utf8_t *dest,   /* O - Target string */
+                    const utf32_t *src,         /* I - Source string */
+                    const int maxout);          /* I - Max output */
+
+/*
+ * Convert UTF-16 to and from UTF-32
+ */
+extern int      cupsUtf16ToUtf32(utf32_t *dest, /* O - Target string */
+                    const utf16_t *src,         /* I - Source string */
+                    const int maxout);          /* I - Max output */
+extern int      cupsUtf32ToUtf16(utf16_t *dest, /* O - Target string */
+                    const utf32_t *src,         /* I - Source string */
+                    const int maxout);          /* I - Max output */
+
+#  ifdef __cplusplus
+}
+#  endif /* __cplusplus */
+
+#endif /* !_CUPS_TRANSCODE_H_ */
+
+/*
+ * End of "$Id: transcode.h,v 1.1.2.1 2002/08/19 01:15:21 mike Exp $"
+ */
index d63f08389b3363413b1dd084013d0b0208b87320..b681b70ead014d95ac3a087f7591e7bfc4a7c56f 100644 (file)
@@ -1,5 +1,5 @@
 #
-# "$Id: Makefile,v 1.12.2.3 2002/01/29 20:28:02 mike Exp $"
+# "$Id: Makefile,v 1.12.2.4 2002/08/19 01:15:21 mike Exp $"
 #
 #   Datafile makefile for the Common UNIX Printing System (CUPS).
 #
@@ -34,7 +34,39 @@ BANNERS      =       classified \
                standard \
                topsecret \
                unclassified
-
+CHARMAPS =     windows-874.txt \
+               windows-1250.txt \
+               windows-1251.txt \
+               windows-1252.txt \
+               windows-1253.txt \
+               windows-1254.txt \
+               windows-1255.txt \
+               windows-1256.txt \
+               windows-1257.txt \
+               windows-1258.txt \
+               koi8-r.txt \
+               iso-8859-1.txt \
+               iso-8859-2.txt \
+               iso-8859-3.txt \
+               iso-8859-4.txt \
+               iso-8859-5.txt \
+               iso-8859-6.txt \
+               iso-8859-7.txt \
+               iso-8859-8.txt \
+               iso-8859-9.txt \
+               iso-8859-10.txt \
+               iso-8859-13.txt \
+               iso-8859-14.txt \
+               iso-8859-15.txt \
+               unibreak.txt \
+               uni-comb.txt \
+               uni-fold.txt \
+               uni-full.txt \
+               uni-line.txt \
+               uni-nfc.txt \
+               uni-nfd.txt \
+               uni-nfkd.txt \
+               uni-prop.txt
 CHARSETS =     windows-874 \
                windows-1250 \
                windows-1251 \
@@ -87,6 +119,10 @@ install:
        for file in $(BANNERS); do \
                $(INSTALL_DATA) $$file $(DATADIR)/banners; \
        done
+       $(INSTALL_DIR) $(DATADIR)/charmaps
+       for file in $(CHARMAPS); do \
+               $(INSTALL_DATA) $$file $(DATADIR)/charmaps; \
+       done
        $(INSTALL_DIR) $(DATADIR)/charsets
        for file in $(CHARSETS); do \
                $(INSTALL_DATA) $$file $(DATADIR)/charsets; \
@@ -106,5 +142,5 @@ install:
 
 
 #
-# End of "$Id: Makefile,v 1.12.2.3 2002/01/29 20:28:02 mike Exp $".
+# End of "$Id: Makefile,v 1.12.2.4 2002/08/19 01:15:21 mike Exp $".
 #
diff --git a/data/i18n_sdd.txt b/data/i18n_sdd.txt
new file mode 100644 (file)
index 0000000..734d73c
--- /dev/null
@@ -0,0 +1,2337 @@
+
+    
+    WORKING DRAFT                                               Ira McDonald
+    <i18n_sdd.txt>                                            High North Inc
+    
+                      Common UNIX Printing System ("CUPS")
+             Internationalization Software Design Description v0.3
+    
+       Copyright (C) Easy Software Products (2002) - All Rights Reserved
+    
+    
+    Status of this Document 
+    
+    This document is an unapproved working draft and is incomplete in some
+    sections (see 'Ed Note:' comments).  
+    
+    
+    Abstract 
+    
+    This document provides general information and high-level design for the
+    Internationalization extensions for the Common UNIX Printing System
+    ("CUPS") Version 1.2.  This document also provides C language header
+    files and high-level pseudo-code for all new modules and external
+    functions.  
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    McDonald                     June 20, 2002                      [Page 1]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+                               Table of Contents
+    
+    1.  Scope ......................................................       4
+      1.1.  Identification .........................................       4
+      1.2.  System Overview ........................................       4
+      1.3.  Document Overview ......................................       4
+    2.  References .................................................       5
+      2.1.  CUPS References ........................................       5
+      2.2.  Other Documents ........................................       5
+    3.  Design Overview ............................................       7
+      3.1.  Transcoding - New ......................................       7
+        3.1.1.  transcode.h - Transcoding header ...................       7
+          3.1.1.1.  cups_cmap_t - SBCS Charmap Structure ...........      10
+          3.1.1.2.  cups_dmap_t - DBCS Charmap Structure ...........      11
+        3.1.2.  transcode.c - Transcoding module ...................      11
+          3.1.2.1.  cupsUtf8ToCharset() ............................      11
+          3.1.2.2.  cupsCharsetToUtf8() ............................      12
+          3.1.2.3.  cupsUtf8ToUtf16() ..............................      12
+          3.1.2.4.  cupsUtf16ToUtf8() ..............................      12
+          3.1.2.5.  cupsUtf8ToUtf32() ..............................      12
+          3.1.2.6.  cupsUtf32ToUtf8() ..............................      13
+          3.1.2.7.  cupsUtf16ToUtf32() .............................      13
+          3.1.2.8.  cupsUtf32ToUtf16() .............................      13
+          3.1.2.9.  Transcoding Utility Functions ..................      13
+            3.1.2.9.1.  cupsCharmapGet() ...........................      14
+            3.1.2.9.2.  cupsCharmapFree() ..........................      14
+            3.1.2.9.3.  cupsCharmapFlush() .........................      14
+      3.2.  Normalization - New ....................................      15
+        3.2.1.  normalize.h - Normalization header .................      15
+          3.2.1.1.  cups_normmap_t - Normalize Map Structure .......      22
+          3.2.1.2.  cups_foldmap_t - Case Fold Map Structure .......      22
+          3.2.1.3.  cups_propmap_t - Char Property Map Structure ...      23
+          3.2.1.4.  cups_prop_t - Char Property Structure ..........      23
+          3.2.1.5.  cups_breakmap_t - Line Break Map Structure .....      23
+          3.2.1.6.  cups_combmap_t - Combining Class Map Structure .      24
+          3.2.1.7.  cups_comb_t - Combining Class Structure ........      24
+        3.2.2.  normalize.c - Normalization module .................      24
+          3.2.2.1.  cupsUtf8Normalize() ............................      24
+          3.2.2.2.  cupsUtf32Normalize() ...........................      25
+          3.2.2.3.  cupsUtf8CaseFold() .............................      25
+          3.2.2.4.  cupsUtf32CaseFold() ............................      26
+          3.2.2.5.  cupsUtf8CompareCaseless() ......................      26
+          3.2.2.6.  cupsUtf32CompareCaseless() .....................      26
+          3.2.2.7.  cupsUtf8CompareIdentifier() ....................      27
+          3.2.2.8.  cupsUtf32CompareIdentifier() ...................      27
+          3.2.2.9.  cupsUtf32CharacterProperty() ...................      27
+          3.2.2.10.  Normalization Utility Functions ...............      28
+            3.2.2.10.1.  cupsNormalizeMapsGet() ....................      28
+            3.2.2.10.2.  cupsNormalizeMapsFree() ...................      28
+            3.2.2.10.3.  cupsNormalizeMapsFlush() ..................      28
+      3.3.  Language - Existing ....................................      29
+        3.3.1.  language.h - Language header .......................      29
+
+    McDonald                     June 20, 2002                      [Page 2]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+        3.3.2.  language.c - Language module .......................      29
+          3.3.2.1.  cupsLangEncoding() - Existing ..................      29
+          3.3.2.2.  cupsLangFlush() - Existing .....................      29
+          3.3.2.3.  cupsLangFree() - Existing ......................      29
+          3.3.2.4.  cupsLangGet() - Existing .......................      30
+          3.3.2.5.  cupsLangPrintf() - New .........................      30
+          3.3.2.6.  cupsLangPuts() - New ...........................      30
+          3.3.2.7.  cupsEncodingName() - New .......................      31
+      3.4.  Common Text Filter - Existing ..........................      31
+        3.4.1.  textcommon.h - Common text filter header ...........      31
+          3.4.1.1.  lchar_t - Character/Attribute Structure ........      31
+        3.4.2.  textcommon.c - Common text filter ..................      32
+          3.4.2.1.  TextMain() - Existing ..........................      32
+          3.4.2.2.  compare_keywords() - Existing ..................      33
+          3.4.2.3.  getutf8() - Existing ...........................      33
+      3.5.  Text to PostScript Filter - Existing ...................      33
+        3.5.1.  texttops.c - Text to PostScript filter .............      33
+          3.5.1.1.  main() - Existing ..............................      33
+          3.5.1.2.  WriteEpilogue () - Existing ....................      34
+          3.5.1.3.  WritePage () - Existing ........................      34
+          3.5.1.4.  WriteProlog () - Existing ......................      34
+          3.5.1.5.  write_line() - Existing ........................      34
+          3.5.1.6.  write_string() - Existing ......................      34
+          3.5.1.7.  write_text() - Existing ........................      35
+    A.  Glossary ...................................................   A-1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    McDonald                     June 20, 2002                      [Page 3]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+    
+    
+    1.  Scope
+    
+    
+    
+    1.1.  Identification
+    
+    This document provides general information and high-level design for the
+    Internationalization extensions for the Common UNIX Printing System
+    ("CUPS") Version 1.2.  This document also provides C language header
+    files and high-level pseudo-code for all new modules and external
+    functions.  
+    
+    
+    1.2.  System Overview
+    
+    The CUPS Internationalization extensions provide multilingual support
+    via Unicode 3.2:2002 [UNICODE3.2] / ISO-10646-1:2000 [ISO10646-1] and a 
+    suite of local character sets (including all adopted parts of ISO-8859
+    and many MS Windows code pages) for CUPS 1.2.  
+    
+    The CUPS Internationalization extensions support UTF-8 [RFC2279] as the 
+    common stream-oriented representation of all character data.  UTF-8 is
+    defined in [ISO10646-1] and is further constrained (for integrity and
+    security) by [UNICODE3.2].  
+    
+    UTF-8 is the native character set of LDAPv3 [RFC2251], SLPv2 [RFC2608], 
+    IPP/1.1 [RFC2910] [RFC2911], and many other Internet protocols.  
+    
+    
+    1.3.  Document Overview
+    
+    
+    This software design description document is organized into the
+    following sections:  
+    
+    o   1 - Scope 
+    o   2 - References 
+    o   3 - Design Overview 
+    o   A - Glossary 
+
+
+
+
+
+
+
+
+
+
+
+
+    McDonald                     June 20, 2002                      [Page 4]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+    
+    
+    2.  References
+    
+    
+    
+    2.1.  CUPS References
+    
+    See:  Section 2.1 'CUPS Documentation' of CUPS Software Design
+    Description.  
+    
+    
+    2.2.  Other Documents
+    
+    The following non-CUPS documents are referenced by this document.  
+    
+    [ANSI-X3.4] ANSI Coded Character Set - 7-bit American National Standard 
+    Code for Information Interchange, ANSI X3.4, 1986 (aka US-ASCII).  
+    
+    [GB2312] Code of Chinese Graphic Character Set for Information
+    Interchange, Primary Set, GB 2312, 1980.  
+    
+    [ISO639-1] Codes for the Representation of Names of Languages -- Part 1:
+    Alpha-2 Code, ISO/IEC 639-1, 2000.  
+    
+    [ISO639-2] Codes for the Representation of Names of Languages -- Part 2:
+    Alpha-3 Code, ISO/IEC 639-2, 1998.  
+    
+    [ISO646] Information Technology - ISO 7-bit Coded Character Set for
+    Information Interchange, ISO/IEC 646, 1991.  
+    
+    [ISO2022] Information Processing - ISO 7-bit and 8-bit Coded Character
+    Sets - Code Extension Techniques, ISO/IEC 2022, 1994.  (Technically
+    identical to ECMA-35.) 
+    
+    [ISO3166-1] Codes for the Representation of Names of Countries and their
+    Subdivisions, Part 1:  Country Codes, ISO/ISO 3166-1, 1997.  
+    
+    [ISO8859] Information Processing - 8-bit Single-Byte Code Graphic
+    Character Sets, ISO/IEC 8859-n, 1987-2001.  
+    
+    [ISO10646-1] Information Technology - Universal Multiple-Octet Code
+    Character Set (UCS) - Part 1:  Architecture and Basic Multilingual
+    Plane, ISO/IEC 10646-1, September 2000.  
+    
+    [ISO10646-2] Information Technology - Universal Multiple-Octet Code
+    Character Set (UCS) - Part 2:  Supplemental Planes, ISO/IEC 10646-2,
+    January 2001.  
+    
+    [RFC2119] Bradner.  Key words for use in RFCs to Indicate Requirement
+    Levels, RFC 2119, March 1997.  
+
+
+    McDonald                     June 20, 2002                      [Page 5]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+    
+    [RFC2251] Whal, Howes, Kille.  Lightweight Directory Access Protocol
+    Version 3 (LDAPv3), RFC 2251, December 1997.  
+    
+    [RFC2277] Alvestrand.  IETF Policy on Character Sets and Languages, RFC
+    2277, January 1998.  
+    
+    [RFC2279] Yergeau.  UTF-8, a Transformation Format of ISO 10646, RFC
+    2279, January 1998.  
+    
+    [RFC2608] Guttman, Perkins, Veizades, Day.  Service Location Protocol
+    Version 2 (SLPv2), RFC 2608, June 1999.  
+    
+    [RFC2910] Herriot, Butler, Moore, Turner, Wenn.  Internet Printing
+    Protocol/1.1:  Encoding and Transport, RFC 2910, September 2000.  
+    
+    [RFC2911] Hastings, Herriot, deBry, Isaacson, Powell.  Internet Printing
+    Protocol/1.1:  Model and Semantics, RFC 2911, September 2000.  
+    
+    [UNICODE3.0] Unicode Consortium, Unicode Standard Version 3.0,
+    Addison-Wesley Developers Press, ISBN 0-201-61633-5, 2000.  
+    
+    [UNICODE3.1] Unicode Consortium, Unicode Standard Version 3.1 (UAX-27), 
+    May 2001.  
+    
+    [UNICODE3.2] Unicode Consortium, Unicode Standard Version 3.2 (UAX-28), 
+    March 2002.  
+    
+    [US-ASCII] See [ANSI-X3.4] above.  
+    
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    McDonald                     June 20, 2002                      [Page 6]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+    
+    
+    3.  Design Overview
+    
+    The CUPS Internationalization extensions are composed of several header 
+    files and modules which extend the Language functions in the existing
+    CUPS Application Programmers Interface (API).  
+    
+    
+    3.1.  Transcoding - New
+    
+    Initially, the CUPS Internationalization extensions will only support
+    SBCS (single-byte character set) transcoding.  But the design allows
+    future support for DBCS (double-byte character set) transcoding for CJK
+    (Chinese/Japanese/Korean) languages and the MBCS (multiple-byte
+    character set) compound sets that use escapes for charset switching.  
+    
+    In order to reduce code size and increase performance all conventional
+    'mapping files' (tables of values in legacy characters sets with their
+    corresponding Unicode scalar values) will ALSO be sorted and stored in
+    memory as reverse maps (for efficient conversion from Unicode scalar
+    values to their corresponding legacy character set values).  Transcoding
+    will be done directly by 2-level lookup (without any searching or
+    sorting).  
+    
+    [Ed Note:  CJK languages will be fairly costly in mapping table sizes,
+    because they have thousands (or tens of thousands) of codepoints.] 
+    
+    
+    
+    3.1.1.  transcode.h - Transcoding header
+    
+    /*
+     * "$Id: i18n_sdd.txt,v 1.1.2.1 2002/08/19 01:15:22 mike Exp $"
+     *
+     *   Transcoding support for the Common UNIX Printing System (CUPS).
+     *
+     *   Copyright 1997-2002 by Easy Software Products.
+     *
+     *   These coded instructions, statements, and computer programs are
+     *   the property of Easy Software Products and are protected by Federal
+     *   copyright law.  Distribution and use rights are outlined in the
+     *   file "LICENSE.txt" which should have been included with this file.
+     *   If this file is missing or damaged please contact Easy Software
+     *   Products at:
+     *
+     *       Attn: CUPS Licensing Information
+     *       Easy Software Products
+     *       44141 Airport View Drive, Suite 204
+     *       Hollywood, Maryland 20636-3111 USA
+     *
+     *       Voice: (301) 373-9603
+
+    McDonald                     June 20, 2002                      [Page 7]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+     *       EMail: cups-info@cups.org
+     *         WWW: http://www.cups.org
+     */
+    
+    #ifndef _CUPS_TRANSCODE_H_
+    #  define _CUPS_TRANSCODE_H_
+    
+    /*
+     * Include necessary headers...
+     */
+    
+    #  include "cups/language.h"
+    
+    #  ifdef __cplusplus
+    extern "C" {
+    #  endif /* __cplusplus */
+    
+    /*
+     * Types...
+     */
+    
+    typedef unsigned char  utf8_t;  /* UTF-8 Unicode/ISO-10646 code unit */
+    typedef unsigned short utf16_t; /* UTF-16 Unicode/ISO-10646 code unit */
+    typedef unsigned long  utf32_t; /* UTF-32 Unicode/ISO-10646 code unit */
+    typedef unsigned short ucs2_t;  /* UCS-2 Unicode/ISO-10646 code unit */
+    typedef unsigned long  ucs4_t;  /* UCS-4 Unicode/ISO-10646 code unit */
+    typedef unsigned char  sbcs_t;  /* SBCS Legacy 8-bit code unit */
+    typedef unsigned short dbcs_t;  /* DBCS Legacy 16-bit code unit */
+    
+    /*
+     * Structures...
+     */
+    
+    typedef struct cups_cmap_str    /**** SBCS Charmap Cache Structure ****/
+    {
+      struct cups_cmap_str  *next;          /* Next charmap in cache */
+      int                   used;           /* Number of times entry used */
+      cups_encoding_t       encoding;       /* Legacy charset encoding */
+      ucs2_t                char2uni[256];  /* Map Legacy SBCS -> UCS-2 */
+      sbcs_t                *uni2char[256]; /* Map UCS-2 -> Legacy SBCS */
+    } cups_cmap_t;
+    
+    #if 0
+    typedef struct cups_dmap_str    /**** DBCS Charmap Cache Structure ****/
+    {
+      struct cups_dmap_str  *next;          /* Next charmap in cache */
+      int                   used;           /* Number of times entry used */
+      cups_encoding_t       encoding;       /* Legacy charset encoding */
+      ucs2_t                *char2uni[256]; /* Map Legacy DBCS -> UCS-2 */
+      dbcs_t                *uni2char[256]; /* Map UCS-2 -> Legacy DBCS */
+    } cups_dmap_t;
+    #endif
+
+    McDonald                     June 20, 2002                      [Page 8]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+    
+    /*
+     * Constants...
+     */
+    #define CUPS_MAX_USTRING    1024    /* Maximum size of Unicode string */
+    
+    /*
+     * Globals...
+     */
+    
+    extern int      TcFixMapNames;  /* Fix map names to Unicode names */
+    extern int      TcStrictUtf8;   /* Non-shortest-form is illegal */
+    extern int      TcStrictUtf16;  /* Invalid surrogate pair is illegal */
+    extern int      TcStrictUtf32;  /* Greater than 0x10FFFF is illegal */
+    extern int      TcRequireBOM;   /* Require BOM for little/big-endian */
+    extern int      TcSupportBOM;   /* Support BOM for little/big-endian */
+    extern int      TcSupport8859;  /* Support ISO 8859-x repertoires */
+    extern int      TcSupportWin;   /* Support Windows-x repertoires */
+    extern int      TcSupportCJK;   /* Support CJK (Asian) repertoires */
+    
+    /*
+     * Prototypes...
+     */
+    
+    /*
+     * Utility functions for character set maps
+     */
+    extern void     *cupsCharmapGet(const cups_encoding_t encoding);
+                                                    /* I - Encoding */
+    extern void     cupsCharmapFree(const cups_encoding_t encoding);
+                                                    /* I - Encoding */
+    extern void     cupsCharmapFlush(void);
+    
+    /*
+     * Convert UTF-8 to and from legacy character set
+     */
+    extern int      cupsUtf8ToCharset(char *dest,   /* O - Target string */
+                        const utf8_t *src,          /* I - Source string */
+                        const int maxout,           /* I - Max output */
+                        cups_encoding_t encoding);  /* I - Encoding */
+    extern int      cupsCharsetToUtf8(utf8_t *dest, /* O - Target string */
+                        const char *src,            /* I - Source string */
+                        const int maxout,           /* I - Max output */
+                        cups_encoding_t encoding);  /* I - Encoding */
+    
+    /*
+     * Convert UTF-8 to and from UTF-16
+     */
+    extern int      cupsUtf8ToUtf16(utf16_t *dest,  /* O - Target string */
+                        const utf8_t *src,          /* I - Source string */
+                        const int maxout);          /* I - Max output */
+    extern int      cupsUtf16ToUtf8(utf8_t *dest,   /* O - Target string */
+
+    McDonald                     June 20, 2002                      [Page 9]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+                        const utf16_t *src,         /* I - Source string */
+                        const int maxout);          /* I - Max output */
+    
+    /*
+     * Convert UTF-8 to and from UTF-32
+     */
+    extern int      cupsUtf8ToUtf32(utf32_t *dest,  /* O - Target string */
+                        const utf8_t *src,          /* I - Source string */
+                        const int maxout);          /* I - Max output */
+    extern int      cupsUtf32ToUtf8(utf8_t *dest,   /* O - Target string */
+                        const utf32_t *src,         /* I - Source string */
+                        const int maxout);          /* I - Max output */
+    
+    /*
+     * Convert UTF-16 to and from UTF-32
+     */
+    extern int      cupsUtf16ToUtf32(utf32_t *dest, /* O - Target string */
+                        const utf16_t *src,         /* I - Source string */
+                        const int maxout);          /* I - Max output */
+    extern int      cupsUtf32ToUtf16(utf16_t *dest, /* O - Target string */
+                        const utf32_t *src,         /* I - Source string */
+                        const int maxout);          /* I - Max output */
+    
+    #  ifdef __cplusplus
+    }
+    #  endif /* __cplusplus */
+    
+    #endif /* !_CUPS_TRANSCODE_H_ */
+    
+    /*
+     * End of "$Id: i18n_sdd.txt,v 1.1.2.1 2002/08/19 01:15:22 mike Exp $"
+     */
+    
+    
+    
+    3.1.1.1.  cups_cmap_t - SBCS Charmap Structure
+    
+    typedef struct cups_cmap_str    /**** SBCS Charmap Cache Structure ****/
+    {
+      struct cups_cmap_str  *next;          /* Next charset map in cache */
+      int                   used;           /* Number of times entry used */
+      cups_encoding_t       encoding;       /* Legacy charset encoding */
+      ucs2_t                char2uni[256];  /* Map Legacy SBCS -> UCS-2 */
+      sbcs_t                *uni2char[256]; /* Map UCS-2 -> Legacy SBCS */
+    } cups_cmap_t;
+    
+    'char2uni[]' is a (complete) array of UCS-2 values that supports direct 
+    one-level lookup from an input SBCS legacy charset code point, for use
+    by 'cupsCharsetToUtf8()'.  
+    
+    'uni2char[]' is a (sparse) array of pointers to arrays of (256 each)
+    SBCS values, that supports direct two-level lookup from an input UCS-2
+
+    McDonald                     June 20, 2002                     [Page 10]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+    code point, for use by 'cupsUtf8ToCharset()'.  
+    
+    
+    
+    3.1.1.2.  cups_dmap_t - DBCS Charmap Structure
+    
+    typedef struct cups_dmap_str    /**** DBCS Charmap Cache Structure ****/
+    {
+      struct cups_dmap_str  *next;          /* Next charset map in cache */
+      int                   used;           /* Number of times entry used */
+      cups_encoding_t       encoding;       /* Legacy charset encoding */
+      ucs2_t                *char2uni[256]; /* Map Legacy DBCS -> UCS-2 */
+      dbcs_t                *uni2char[256]; /* Map UCS-2 -> Legacy DBCS */
+    } cups_dmap_t;
+    
+    'char2uni[]' is a (sparse) array of pointers to arrays of (256 each)
+    UCS-2 values that supports direct two-level lookup from an input DBCS
+    legacy charset code point, for (future) use by 'cupsCharsetToUtf8()'.  
+    
+    'uni2char[]' is a (sparse) array of pointers to arrays of (256 each)
+    DBCS values, that supports direct two-level lookup from an input UCS-2
+    code point, for (future) use by 'cupsUtf8ToCharset()'.  
+    
+    
+    
+    3.1.2.  transcode.c - Transcoding module
+    
+    All of the transcoding functions are modelled on the C standard library 
+    function 'strncpy()', except that they return the count of output, like
+    'strlen()', rather than the (redundant) pointer to the output.  
+    
+    If the transcoding functions detect invalid input parameters or they
+    detect an encoding error in their input, then they return '-1', rather
+    than the count of output.  
+    
+    All of the transcoding functions take an input parameter indicating the 
+    maximum output units (for safe operation).  The functions that return
+    16-bit (UTF-16) or 32-bit (UTF-32/UCS-4) output always return the output
+    string count (not including the final null) and NOT the memory size in
+    bytes.  
+    
+    
+    
+    3.1.2.1.  cupsUtf8ToCharset()
+    
+    extern int      cupsUtf8ToCharset(char *dest,   /* O - Target string */
+                        const utf8_t *src,          /* I - Source string */
+                        const int maxout,           /* I - Max output */
+                        cups_encoding_t encoding);  /* I - Encoding */
+    
+    <Find charset map by calling 'cupsCharmapGet()'>
+    <Convert input UTF-8 to internal UCS-4 by calling 'cupsUtf8ToUtf32()'>
+
+    McDonald                     June 20, 2002                     [Page 11]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+    <Convert internal UCS-4 to legacy charset via charset map>
+    <Release charset map by calling 'cupsCharmapFree()'>
+    <Return length of output legacy charset string -- size in butes>
+    
+    
+    
+    3.1.2.2.  cupsCharsetToUtf8()
+    
+    extern int      cupsCharsetToUtf8(utf8_t *dest, /* O - Target string */
+                        const char *src,            /* I - Source string */
+                        const int maxout,           /* I - Max output */
+                        cups_encoding_t encoding);  /* I - Encoding */
+    
+    <Find charset map by calling 'cupsCharmapGet()'>
+    <Convert input legacy charset to internal UCS-4 via charset map>
+    <Convert internal UCS-4 to UTF-8 by calling 'cupsUtf32ToUtf8()'>
+    <Release charset map by calling 'cupsCharmapFree()'>
+    <Return length of output UTF-8 string -- size in bytes>
+    
+    
+    
+    3.1.2.3.  cupsUtf8ToUtf16()
+    
+    extern int      cupsUtf8ToUtf16(utf16_t *dest,  /* O - Target string */
+                        const utf8_t *src,          /* I - Source string */
+                        const int maxout);          /* I - Max output */
+    
+    <...to avoid duplicate code to handle surrogate pairs...>
+    <Convert input UTF-8 to internal UCS-4 by calling 'cupsUtf8ToUtf32()'>
+    <Convert internal UCS-4 to UTF-16 by calling 'cupsUtf32ToUtf16()'>
+    <Return count of output UTF-16 string -- NOT memory size in bytes>
+    
+    
+    
+    3.1.2.4.  cupsUtf16ToUtf8()
+    
+    extern int      cupsUtf16ToUtf8(utf8_t *dest,   /* O - Target string */
+                        const utf16_t *src,         /* I - Source string */
+                        const int maxout);          /* I - Max output */
+    
+    <...to avoid duplicate code to handle surrogate pairs...>
+    <Convert input UTF-16 to internal UCS-4 by calling 'cupsUtf16ToUtf32()'>
+    <Convert internal UCS-4 to UTF-8 by calling 'cupsUtf32ToUtf8()'>
+    <Return length of output UTF-8 string -- size in bytes>
+    
+    
+    
+    3.1.2.5.  cupsUtf8ToUtf32()
+    
+    extern int      cupsUtf8ToUtf32(utf32_t *dest,  /* O - Target string */
+                        const utf8_t *src,          /* I - Source string */
+                        const int maxout);          /* I - Max output */
+
+    McDonald                     June 20, 2002                     [Page 12]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+    
+    <Convert input UTF-8 directly to output UCS-4...>
+    <...checking for valid range, shortest-form, etc.>
+    <Return count of output UTF-32 string -- NOT memory size in bytes>
+    
+    
+    
+    3.1.2.6.  cupsUtf32ToUtf8()
+    
+    extern int      cupsUtf32ToUtf8(utf8_t *dest,   /* O - Target string */
+                        const utf32_t *src,         /* I - Source string */
+                        const int maxout);          /* I - Max output */
+    
+    <Convert input UCS-4 directly to output UTF-8...>
+    <...checking for valid range, etc.>
+    <Return length of output UTF-8 string -- size in bytes>
+    
+    
+    
+    3.1.2.7.  cupsUtf16ToUtf32()
+    
+    extern int      cupsUtf16ToUtf32(utf32_t *dest, /* O - Target string */
+                        const utf16_t *src,         /* I - Source string */
+                        const int maxout);          /* I - Max output */
+    
+    <Convert input UTF-16 directly to output UCS-4...>
+    <...handling surrogate pairs decoding from UTF-16>
+    <Return count of output UTF-32 string -- NOT memory size in bytes>
+    
+    
+    
+    3.1.2.8.  cupsUtf32ToUtf16()
+    
+    extern int      cupsUtf32ToUtf16(utf16_t *dest, /* O - Target string */
+                        const utf32_t *src,         /* I - Source string */
+                        const int maxout);          /* I - Max output */
+    
+    <Convert input UCS-4 directly to output UTF-16...>
+    <...handling surrogate pairs encoding to UTF-16>
+    <Return count of output UTF-16 string -- NOT memory size in bytes>
+    
+    
+    
+    3.1.2.9.  Transcoding Utility Functions
+    
+    The transcoding utility functions are used to load (from a file into
+    memory), free (logically, without freeing memory), and flush (actually
+    free memory) character maps for SBCS (single-byte character set) and
+    (future) DBCS (double-byte character set) transcoding to and from UTF-8.
+    
+
+
+
+    McDonald                     June 20, 2002                     [Page 13]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+    
+    
+    3.1.2.9.1.  cupsCharmapGet()
+    
+    extern void     *cupsCharmapGet(const cups_encoding_t encoding);
+                                                    /* I - Encoding */
+    
+    <Find SBSC or DBCS charset map in cache>
+    <...If found, increment 'used'>
+    <...and return pointer to SBCS or DBCS charset map>
+    <Get charset map file name by calling 'cupsEncodingName()'>
+    <Open charset map file>
+    <...If not found, return void>
+    <Allocate memory for SBCS or DBCS charset map in cache>
+    <...If no memory, return void>
+    <Add to SBCS or DBCS cache by assigning 'next' field>
+    <Assign 'encoding' field>
+    <Increment 'used' field>
+    <Read charset map file into memory in loop...>
+    <If SBCS, then 'char2uni[]' is an array of 'ucs2_t' values>
+    <...and 'uni2char[]' is an array of pointers to 'sbcs_t' arrays>
+    <If DBCS, then char2uni[]' is an array of pointers to 'ucs2_t' arrays>
+    <...and 'uni2char[]' is an array of pointers to 'dbcs_t' arrays>
+    <Close charset map file>
+    <Return pointer to SBCS or DBCS charset map>
+    
+    
+    
+    3.1.2.9.2.  cupsCharmapFree()
+    
+    extern void     cupsCharmapFree(const cups_encoding_t encoding);
+                                                    /* I - Encoding */
+    
+    <Find SBSC or DBCS charset map in cache>
+    <...If found, decrement 'used'>
+    <Return void>
+    
+    
+    
+    3.1.2.9.3.  cupsCharmapFlush()
+    
+    extern void     cupsCharmapFlush(void);
+    
+    <Loop through SBCS charset map cache...>
+    <...Free 'uni2char[]' memory>
+    <...Free SBCS charset map memory>
+    <Loop through DBCS charset map cache...>
+    <...Free 'char2uni[]' memory>
+    <...Free 'uni2char[]' memory>
+    <...Free DBCS charset map memory>
+    <Return void>
+
+
+    McDonald                     June 20, 2002                     [Page 14]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+    
+    
+    
+    3.2.  Normalization - New
+    
+    
+    
+    3.2.1.  normalize.h - Normalization header
+    
+    /*
+     * "$Id: i18n_sdd.txt,v 1.1.2.1 2002/08/19 01:15:22 mike Exp $"
+     *
+     *   Unicode normalization for the Common UNIX Printing System (CUPS).
+     *
+     *   Copyright 1997-2002 by Easy Software Products.
+     *
+     *   These coded instructions, statements, and computer programs are
+     *   the property of Easy Software Products and are protected by Federal
+     *   copyright law.  Distribution and use rights are outlined in the
+     *   file "LICENSE.txt" which should have been included with this file.
+     *   If this file is missing or damaged please contact Easy Software
+     *   Products at:
+     *
+     *       Attn: CUPS Licensing Information
+     *       Easy Software Products
+     *       44141 Airport View Drive, Suite 204
+     *       Hollywood, Maryland 20636-3111 USA
+     *
+     *       Voice: (301) 373-9603
+     *       EMail: cups-info@cups.org
+     *         WWW: http://www.cups.org
+     */
+    
+    #ifndef _CUPS_NORMALIZE_H_
+    #  define _CUPS_NORMALIZE_H_
+    
+    /*
+     * Include necessary headers...
+     */
+    
+    #  include "transcod.h"
+    
+    #  ifdef __cplusplus
+    extern "C" {
+    #  endif /* __cplusplus */
+    
+    /*
+     * Types...
+     */
+    
+    typedef enum                    /**** Normalizataion Types ****/
+    {
+
+    McDonald                     June 20, 2002                     [Page 15]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+      CUPS_NORM_NFD,                /* Canonical Decomposition */
+      CUPS_NORM_NFKD,               /* Compatibility Decomposition */
+      CUPS_NORM_NFC,                /* NFD, them Canonical Composition */
+      CUPS_NORM_NFKC                /* NFKD, them Canonical Composition */
+    } cups_normalize_t;
+    
+    typedef enum                    /**** Case Folding Types ****/
+    {
+      CUPS_FOLD_SIMPLE,             /* Simple - no expansion in size */
+      CUPS_FOLD_FULL                /* Full - possible expansion in size */
+    } cups_folding_t;
+    
+    typedef enum                    /**** Unicode Char Property Types ****/
+    {
+      CUPS_PROP_GENERAL_CATEGORY,   /* See 'cups_gencat_t' enum */
+      CUPS_PROP_BIDI_CATEGORY,      /* See 'cups_bidicat_t' enum */
+      CUPS_PROP_COMBINING_CLASS,    /* See 'cups_combclass_t' type */
+      CUPS_PROP_BREAK_CLASS         /* See 'cups_breakclass_t' enum */
+    } cups_property_t;
+    
+    /*
+     * Note - parse Unicode char general category from 'UnicodeData.txt'
+     * into sparse local table in 'normalize.c'.
+     * Use major classes for logic optimizations throughout (by mask).
+     */
+    
+    typedef enum                    /**** Unicode General Category ****/
+    {
+      CUPS_GENCAT_L  = 0x10, /* Letter major class */
+      CUPS_GENCAT_LU = 0x11, /* Lu Letter, Uppercase */
+      CUPS_GENCAT_LL = 0x12, /* Ll Letter, Lowercase */
+      CUPS_GENCAT_LT = 0x13, /* Lt Letter, Titlecase */
+      CUPS_GENCAT_LM = 0x14, /* Lm Letter, Modifier */
+      CUPS_GENCAT_LO = 0x15, /* Lo Letter, Other */
+      CUPS_GENCAT_M  = 0x20, /* Mark major class */
+      CUPS_GENCAT_MN = 0x21, /* Mn Mark, Non-Spacing */
+      CUPS_GENCAT_MC = 0x22, /* Mc Mark, Spacing Combining */
+      CUPS_GENCAT_ME = 0x23, /* Me Mark, Enclosing */
+      CUPS_GENCAT_N  = 0x30, /* Number major class */
+      CUPS_GENCAT_ND = 0x31, /* Nd Number, Decimal Digit */
+      CUPS_GENCAT_NL = 0x32, /* Nl Number, Letter */
+      CUPS_GENCAT_NO = 0x33, /* No Number, Other */
+      CUPS_GENCAT_P  = 0x40, /* Punctuation major class */
+      CUPS_GENCAT_PC = 0x41, /* Pc Punctuation, Connector */
+      CUPS_GENCAT_PD = 0x42, /* Pd Punctuation, Dash */
+      CUPS_GENCAT_PS = 0x43, /* Ps Punctuation, Open (start) */
+      CUPS_GENCAT_PE = 0x44, /* Pe Punctuation, Close (end) */
+      CUPS_GENCAT_PI = 0x45, /* Pi Punctuation, Initial Quote */
+      CUPS_GENCAT_PF = 0x46, /* Pf Punctuation, Final Quote */
+      CUPS_GENCAT_PO = 0x47, /* Po Punctuation, Other */
+      CUPS_GENCAT_S  = 0x50, /* Symbol major class */
+      CUPS_GENCAT_SM = 0x51, /* Sm Symbol, Math */
+
+    McDonald                     June 20, 2002                     [Page 16]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+      CUPS_GENCAT_SC = 0x52, /* Sc Symbol, Currency */
+      CUPS_GENCAT_SK = 0x53, /* Sk Symbol, Modifier */
+      CUPS_GENCAT_SO = 0x54, /* So Symbol, Other */
+      CUPS_GENCAT_Z  = 0x60, /* Separator major class */
+      CUPS_GENCAT_ZS = 0x61, /* Zs Separator, Space */
+      CUPS_GENCAT_ZL = 0x62, /* Zl Separator, Line */
+      CUPS_GENCAT_ZP = 0x63, /* Zp Separator, Paragraph */
+      CUPS_GENCAT_C  = 0x70, /* Other (miscellaneous) major class */
+      CUPS_GENCAT_CC = 0x71, /* Cc Other, Control */
+      CUPS_GENCAT_CF = 0x72, /* Cf Other, Format */
+      CUPS_GENCAT_CS = 0x73, /* Cs Other, Surrogate */
+      CUPS_GENCAT_CO = 0x74, /* Co Other, Private Use */
+      CUPS_GENCAT_CN = 0x75  /* Cn Other, Not Assigned */
+    } cups_gencat_t;
+    
+    /*
+     * Note - parse Unicode char bidi category from 'UnicodeData.txt'
+     * into sparse local table in 'normalize.c'.
+     * Add bidirectional support to 'textcommon.c' - per Mike
+     */
+    
+    typedef enum                    /**** Unicode Bidi Category ****/
+    {
+      CUPS_BIDI_L,   /* Left-to-Right (Alpha, Syllabic, Ideographic) */
+      CUPS_BIDI_LRE, /* Left-to-Right Embedding (explicit) */
+      CUPS_BIDI_LRO, /* Left-to-Right Override (explicit) */
+      CUPS_BIDI_R,   /* Right-to-Left (Hebrew alphabet and most punct) */
+      CUPS_BIDI_AL,  /* Right-to-Left Arabic (Arabic, Thaana, Syriac) */
+      CUPS_BIDI_RLE, /* Right-to-Left Embedding (explicit) */
+      CUPS_BIDI_RLO, /* Right-to-Left Override (explicit) */
+      CUPS_BIDI_PDF, /* Pop Directional Format */
+      CUPS_BIDI_EN,  /* Euro Number (Euro and East Arabic-Indic digits) */
+      CUPS_BIDI_ES,  /* Euro Number Separator (Slash) */
+      CUPS_BIDI_ET,  /* Euro Number Termintor (Plus, Minus, Degree, etc) */
+      CUPS_BIDI_AN,  /* Arabic Number (Arabic-Indic digits, separators) */
+      CUPS_BIDI_CS,  /* Common Number Separator (Colon, Comma, Dot, etc) */
+      CUPS_BIDI_NSM, /* Non-Spacing Mark (category Mn / Me in UCD) */
+      CUPS_BIDI_BN,  /* Boundary Neutral (Formatting / Control chars) */
+      CUPS_BIDI_B,   /* Paragraph Separator */
+      CUPS_BIDI_S,   /* Segment Separator (Tab) */
+      CUPS_BIDI_WS,  /* Whitespace Space (Space, Line Separator, etc) */
+      CUPS_BIDI_ON   /* Other Neutrals */
+    } cups_bidicat_t;
+    
+    /*
+     * Note - parse Unicode line break class from 'DerivedLineBreak.txt'
+     * into sparse local table (list of class ranges) in 'normalize.c'.
+     * Note - add state table from UAX-14, section 7.3 - Ira
+     * Remember to do BK and SP in outer loop (not in state table).
+     * Consider optimization for CM (combining mark).
+     * See 'LineBreak.txt' (12,875) and 'DerivedLineBreak.txt' (1,350).
+     */
+
+    McDonald                     June 20, 2002                     [Page 17]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+    
+    typedef enum                    /**** Unicode Line Break Class ****/
+    {
+     /*
+      * (A) - Allow Break AFTER
+      * (XA) - Prevent Break AFTER
+      * (B) - Allow Break BEFORE
+      * (XB) - Prevent Break BEFORE
+      * (P) - Allow Break For Pair
+      * (XP) - Prevent Break For Pair
+      */
+      CUPS_BREAK_AI, /* Ambiguous (Alphabetic or Ideograph) */
+      CUPS_BREAK_AL, /* Ordinary Alphabetic / Symbol Chars (XP) */
+      CUPS_BREAK_BA, /* Break Opportunity After Chars (A) */
+      CUPS_BREAK_BB, /* Break Opportunities Before Chars (B) */
+      CUPS_BREAK_B2, /* Break Opportunity Before / After (B/A/XP) */
+      CUPS_BREAK_BK, /* Mandatory Break (A) (normative) */
+      CUPS_BREAK_CB, /* Contingent Break (B/A) (normative) */
+      CUPS_BREAK_CL, /* Closing Punctuation (XB) */
+      CUPS_BREAK_CM, /* Attached Chars / Combining (XB) (normative) */
+      CUPS_BREAK_CR, /* Carriage Return (A) (normative) */
+      CUPS_BREAK_EX, /* Exclamation / Interrogation (XB) */
+      CUPS_BREAK_GL, /* Non-breaking ("Glue") (XB/XA) (normative) */
+      CUPS_BREAK_HY, /* Hyphen (XA) */
+      CUPS_BREAK_ID, /* Ideographic (B/A) */
+      CUPS_BREAK_IN, /* Inseparable chars (XP) */
+      CUPS_BREAK_IS, /* Numeric Separator (Infix) (XB) */
+      CUPS_BREAK_LF, /* Line Feed (A) (normative) */
+      CUPS_BREAK_NS, /* Non-starters (XB) */
+      CUPS_BREAK_NU, /* Numeric (XP) */
+      CUPS_BREAK_OP, /* Opening Punctuation (XA) */
+      CUPS_BREAK_PO, /* Postfix (Numeric) (XB) */
+      CUPS_BREAK_PR, /* Prefix (Numeric) (XA) */
+      CUPS_BREAK_QU, /* Ambiguous Quotation (XB/XA) */
+      CUPS_BREAK_SA, /* Context Dependent (South East Asian) (P) */
+      CUPS_BREAK_SG, /* Surrogates (XP) (normative) */
+      CUPS_BREAK_SP, /* Space (A) (normative) */
+      CUPS_BREAK_SY, /* Symbols Allowing Break After (A) */
+      CUPS_BREAK_XX, /* Unknown (XP) */
+      CUPS_BREAK_ZW  /* Zero Width Space (A) (normative) */
+    } cups_breakclass_t;
+    
+    typedef int cups_combclass_t;   /**** Unicode Combining Class ****/
+                                    /* 0=base / 1..254=combining char */
+    
+    /*
+     * Structures...
+     */
+    
+    typedef struct cups_normmap_str /**** Normalize Map Cache Struct ****/
+    {
+      struct cups_normmap_str *next;        /* Next normalize in cache */
+
+    McDonald                     June 20, 2002                     [Page 18]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+      int                   used;           /* Number of times entry used */
+      cups_normalize_t      normalize;      /* Normalization type */
+      int                   normcount;      /* Count of Source Chars */
+      ucs2_t                *uni2norm;      /* Char -> Normalization */
+                                            /* ...only supports UCS-2 */
+    } cups_normmap_t;
+    
+    typedef struct cups_foldmap_str /**** Case Fold Map Cache Struct ****/
+    {
+      struct cups_foldmap_str *next;        /* Next case fold in cache */
+      int                   used;           /* Number of times entry used */
+      cups_folding_t        fold;           /* Case folding type */
+      int                   foldcount;      /* Count of Source Chars */
+      ucs2_t                *uni2fold;      /* Char -> Folded Char(s) */
+                                            /* ...only supports UCS-2 */
+    } cups_foldmap_t;
+    
+    typedef struct cups_prop_str    /**** Char Property Struct ****/
+    {
+      ucs2_t                ch;             /* Unicode Char as UCS-2 */
+      unsigned char         gencat;         /* General Category */
+      unsigned char         bidicat;        /* Bidirectional Category */
+    } cups_prop_t;
+    
+    typedef struct                  /**** Char Property Map Struct ****/
+    {
+      int                   used;           /* Number of times entry used */
+      int                   propcount;      /* Count of Source Chars */
+      cups_prop_t           *uni2prop;      /* Char -> Properties */
+    } cups_propmap_t;
+    
+    typedef struct                  /**** Line Break Class Map Struct ****/
+    {
+      int                   used;           /* Number of times entry used */
+      int                   breakcount;     /* Count of Source Chars */
+      ucs2_t                *uni2break;     /* Char -> Line Break Class */
+    } cups_breakmap_t;
+    
+    typedef struct cups_comb_str    /**** Char Combining Class Struct ****/
+    {
+      ucs2_t                ch;             /* Unicode Char as UCS-2 */
+      unsigned char         combclass;      /* Combining Class */
+      unsigned char         reserved;       /* Reserved for alignment */
+    } cups_comb_t;
+    
+    typedef struct                  /**** Combining Class Map Struct ****/
+    {
+      int                   used;           /* Number of times entry used */
+      int                   combcount;      /* Count of Source Chars */
+      cups_comb_t           *uni2comb;      /* Char -> Combining Class */
+    } cups_combmap_t;
+
+
+    McDonald                     June 20, 2002                     [Page 19]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+    
+    /*
+     * Globals...
+     */
+    
+    extern int      NzSupportUcs2;  /* Support UCS-2 (16-bit) mapping */
+    extern int      NzSupportUcs4;  /* Support UCS-4 (32-bit) mapping */
+    
+    /*
+     * Prototypes...
+     */
+    
+    /*
+     * Utility functions for normalization module
+     */
+    extern int      cupsNormalizeMapsGet(void);
+    extern int      cupsNormalizeMapsFree(void);
+    extern void     cupsNormalizeMapsFlush(void);
+    
+    /*
+     * Normalize UTF-8 string to Unicode UAX-15 Normalization Form
+     * Note - Compatibility Normalization Forms (NFKD/NFKC) are
+     * unsafe for subsequent transcoding to legacy charsets
+     */
+    extern int      cupsUtf8Normalize(utf8_t *dest, /* O - Target string */
+                        const utf8_t *src,          /* I - Source string */
+                        const int maxout,           /* I - Max output */
+                        const cups_normalize_t normalize);
+                                                    /* I - Normalization */
+    
+    /*
+     * Normalize UTF-32 string to Unicode UAX-15 Normalization Form
+     * Note - Compatibility Normalization Forms (NFKD/NFKC) are
+     * unsafe for subsequent transcoding to legacy charsets
+     */
+    extern int      cupsUtf32Normalize(utf32_t *dest,
+                                                    /* O - Target string */
+                        const utf32_t *src,         /* I - Source string */
+                        const int maxout,           /* I - Max output */
+                        const cups_normalize_t normalize);
+                                                    /* I - Normalization */
+    
+    /*
+     * Case Fold UTF-8 string per Unicode UAX-21 Section 2.3
+     * Note - Case folding output is
+     * unsafe for subsequent transcoding to legacy charsets
+     */
+    extern int      cupsUtf8CaseFold(utf8_t *dest,  /* O - Target string */
+                        const utf8_t *src,          /* I - Source string */
+                        const int maxout,           /* I - Max output */
+                        const cups_folding_t fold); /* I - Fold Mode */
+
+
+    McDonald                     June 20, 2002                     [Page 20]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+    
+    /*
+     * Case Fold UTF-32 string per Unicode UAX-21 Section 2.3
+     * Note - Case folding output is
+     * unsafe for subsequent transcoding to legacy charsets
+     */
+    extern int      cupsUtf32CaseFold(utf32_t *dest,/* O - Target string */
+                        const utf32_t *src,         /* I - Source string */
+                        const int maxout,           /* I - Max output */
+                        const cups_folding_t fold); /* I - Fold Mode */
+    
+    /*
+     * Compare UTF-8 strings after case folding
+     */
+    extern int      cupsUtf8CompareCaseless(const utf8_t *s1,
+                                                    /* I - String1 */
+                        const utf8_t *s2);          /* I - String2 */
+    
+    /*
+     * Compare UTF-32 strings after case folding
+     */
+    extern int      cupsUtf32CompareCaseless(const utf32_t *s1,
+                                                    /* I - String1 */
+                        const utf32_t *s2);         /* I - String2 */
+    
+    /*
+     * Compare UTF-8 strings after case folding and NFKC normalization
+     */
+    extern int      cupsUtf8CompareIdentifier(const utf8_t *s1,
+                                                    /* I - String1 */
+                        const utf8_t *s2);          /* I - String2 */
+    
+    /*
+     * Compare UTF-32 strings after case folding and NFKC normalization
+     */
+    extern int      cupsUtf32CompareIdentifier(const utf32_t *s1,
+                                                    /* I - String1 */
+                        const utf32_t *s2);         /* I - String2 */
+    
+    /*
+     * Get UTF-32 character property
+     */
+    extern int      cupsUtf32CharacterProperty(const utf32_t ch,
+                                                    /* I - Source char */
+                        const cups_property_t property);
+                                                    /* I - Char Property */
+    
+    #  ifdef __cplusplus
+    }
+    #  endif /* __cplusplus */
+    
+    #endif /* !_CUPS_NORMALIZE_H_ */
+
+    McDonald                     June 20, 2002                     [Page 21]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+    
+    /*
+     * End of "$Id: i18n_sdd.txt,v 1.1.2.1 2002/08/19 01:15:22 mike Exp $"
+     */
+    
+    
+    
+    3.2.1.1.  cups_normmap_t - Normalize Map Structure
+    
+    typedef struct cups_normmap_str /**** Normalize Map Cache Struct ****/
+    {
+      struct cups_normmap_str *next;        /* Next normalize in cache */
+      int                   used;           /* Number of times entry used */
+      cups_normalize_t      normalize;      /* Normalization type */
+      int                   normcount;      /* Count of Source Chars */
+      ucs2_t                *uni2norm;      /* Char -> Normalization */
+                                            /* ...only supports UCS-2 */
+    } cups_normmap_t;
+    
+    'uni2norm' is a pointer to an array of _triplets_ of UCS-2 values.
+    'normcount' is a count of _triplets_ in the 'uni2norm[]' array.  
+    
+    For decompositions (NFD and NFKD), the triplets are:  composed base
+    character, decomposed base character, and decomposed accent character.  
+    These are used by 'cupsUtf8Normalize()' and 'cupsUtf32Normalize()' in
+    performing canonical (NFD) or compatibility (NFKD) decomposition.  
+    
+    For compositions (NFC and NFKC), the triplets are:  decomposed base
+    character, decomposed accent character, and composed base character.
+    These are used by 'cupsUtf8Normalize()' and 'cupsUtf32Normalize()' in
+    performing canonical composition (for NFC or NFKC).  
+    
+    
+    
+    3.2.1.2.  cups_foldmap_t - Case Fold Map Structure
+    
+    typedef struct cups_foldmap_str /**** Case Fold Map Cache Struct ****/
+    {
+      int                   used;           /* Number of times entry used */
+      cups_folding_t        fold;           /* Case folding type */
+      int                   foldcount;      /* Count of Source Chars */
+      ucs2_t                *uni2fold;      /* Char -> Folded Char(s) */
+                                            /* ...only supports UCS-2 */
+    } cups_foldmap_t;
+    
+    'uni2fold' is a pointer to an array of _quadruplets_ of UCS-2 values.
+    'foldcount' is a count of _quadruplets_ in the 'uni2fold[]' array.  
+    
+    For simple case folding (without expansion of the size of the output
+    string), the quadruplets are:  input base character, output case folded 
+    character, zero (unused), and zero (unused).  
+
+
+    McDonald                     June 20, 2002                     [Page 22]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+    
+    For full case folding (with possible expansion of the size of the output
+    string), the quadruplets are:  input base character, output case folded 
+    character, second output character or zero, third output character or
+    zero.  
+    
+    
+    
+    3.2.1.3.  cups_propmap_t - Char Property Map Structure
+    
+    typedef struct                  /**** Char Property Map Struct ****/
+    {
+      int                   used;           /* Number of times entry used */
+      int                   propcount;      /* Count of Source Chars */
+      cups_prop_t           *uni2prop;      /* Char -> Properties */
+    } cups_propmap_t;
+    
+    'uni2prop' is a pointer to an array of 'cups_prop_t' (see below).
+    'propcount' is a count of elements in the 'uni2prop[]' array.  
+    
+    
+    
+    3.2.1.4.  cups_prop_t - Char Property Structure
+    
+    typedef struct cups_prop_str    /**** Char Property Struct ****/
+    {
+      ucs2_t                ch;             /* Unicode Char as UCS-2 */
+      unsigned char         gencat;         /* General Category */
+      unsigned char         bidicat;        /* Bidirectional Category */
+    } cups_prop_t;
+    
+    
+    
+    3.2.1.5.  cups_breakmap_t - Line Break Map Structure
+    
+    typedef struct                  /**** Line Break Class Map Struct ****/
+    {
+      int                   used;           /* Number of times entry used */
+      int                   breakcount;     /* Count of Source Chars */
+      ucs2_t                *uni2break;     /* Char -> Line Break Class */
+    } cups_breakmap_t;
+    
+    'uni2break' is a pointer to an array of _triplets_ of UCS-2 values.
+    'breakcount' is a count of _triplets_ in the 'uni2break[]' array.  
+    
+    The triplets in 'uni2break' are:  first UCS-2 value in a range, last
+    UCS-2 value in a range, and line break class stored as UCS-2.  
+    
+
+
+
+
+
+    McDonald                     June 20, 2002                     [Page 23]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+    
+    
+    3.2.1.6.  cups_combmap_t - Combining Class Map Structure
+    
+    typedef struct                  /**** Combining Class Map Struct ****/
+    {
+      int                   used;           /* Number of times entry used */
+      int                   combcount;      /* Count of Source Chars */
+      cups_comb_t           *uni2comb;      /* Char -> Combining Class */
+    } cups_combmap_t;
+    
+    'uni2comb' is a pointer to an array of 'cups_comb_t' (see below).
+    'combcount' is a count of elements in the 'uni2comb[]' array.  
+    
+    
+    
+    3.2.1.7.  cups_comb_t - Combining Class Structure
+    
+    typedef struct cups_comb_str    /**** Char Combining Class Struct ****/
+    {
+      unsigned short        ch;             /* Unicode Char as UCS-2 */
+      unsigned char         combclass;      /* Combining Class */
+      unsigned char         reserved;       /* Reserved for alignment */
+    } cups_comb_t;
+    
+    
+    
+    3.2.2.  normalize.c - Normalization module
+    
+    The normalization function 'cupsUtf8Normalize()' and the case folding
+    function 'cupsUtf8CaseFold()' are modelled on the C standard library
+    function 'strncpy()', except that they return the count of the output,
+    like 'strlen()', rather than the (redundant) pointer to the output.  
+    
+    If the normalization or case folding functions detect invalid input
+    parameters or they detect an encoding error in their input, then they
+    return '-1', rather than the count of output.  
+    
+    The normalization and case folding functions take an input parameter
+    indicating the maximum output units (for safe operation).  
+    
+    
+    
+    3.2.2.1.  cupsUtf8Normalize()
+    
+    /*
+     * Normalize UTF-8 string to Unicode UAX-15 Normalization Form
+     * Note - Compatibility Normalization Forms (NFKD/NFKC) are
+     * unsafe for subsequent transcoding to legacy charsets
+     */
+    extern int      cupsUtf8Normalize(utf8_t *dest, /* O - Target string */
+                        const utf8_t *src,          /* I - Source string */
+
+    McDonald                     June 20, 2002                     [Page 24]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+                        const int maxout,           /* I - Max output */
+                        const cups_normalize_t normalize);
+                                                    /* I - Normalization */
+    
+    <Convert input UTF-8 to internal UCS-4 by calling 'cupsUtf8ToUtf32()'>
+    <Normalize by calling 'cupsUtf32Normalize()'>
+    <Convert normalized UCS-4 to UTF-8 by calling 'cupsUtf32ToUtf8()>
+    <Return length of output UTF-8 string -- size in butes>
+    
+    
+    
+    3.2.2.2.  cupsUtf32Normalize()
+    
+    extern int      cupsUtf32Normalize(utf32_t *dest,
+                                                    /* O - Target string */
+                        const utf32_t *src,         /* I - Source string */
+                        const int maxout,           /* I - Max output */
+                        const cups_normalize_t normalize);
+                                                    /* I - Normalization */
+    
+    <Find normalize maps by calling 'cupsNormalizeMapsGet()'>
+    <...if not found, return '-1'>
+    <Repeatedly traverse internal UCS-4, decomposing (NFD or NFKD)...>
+    <...with 'bsearch()' of 'uni2norm[]' using local 'compare_decompose()'>
+    <...until one pass yields no further decomposition>
+    <Repeatedly traverse internal UCS-4, doing canonical reordering>
+    <...with 'bsearch()' of 'uni2comb[]' using local 'compare_combchar()'>
+    <...until one pass yields no further canonical reordering>
+    <If 'normalize' requests composition (NFC or NFKC)...>
+    <...repeatedly traverse internal UCS-4, composing (NFC or NFKC)...>
+    <...with 'bsearch()' of 'uni2norm[]' using local 'compare_compose()'>
+    <...until one pass yields no further composition>
+    <Release normalize maps by calling 'cupsNormalizeMapsFree()'>
+    <Return count of output UTF-32 string -- NOT memory size in butes>
+    
+    
+    
+    3.2.2.3.  cupsUtf8CaseFold()
+    
+    /*
+     * Case Fold UTF-8 string per Unicode UAX-21 Section 2.3
+     * Note - Case folding output is
+     * unsafe for subsequent transcoding to legacy charsets
+     */
+    extern int      cupsUtf8CaseFold(utf8_t *dest,  /* O - Target string */
+                        const utf8_t *src,          /* I - Source string */
+                        const int maxout,           /* I - Max output */
+                        const cups_folding_t fold); /* I - Fold Mode */
+    
+    <Find normalize maps by calling 'cupsNormalizeMapsGet()'>
+    <...if not found, return '-1'>
+    <Convert input UTF-8 to internal UCS-4 by calling 'cupsUtf8ToUtf32()'>
+
+    McDonald                     June 20, 2002                     [Page 25]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+    <Case fold internal UCS-4 by calling 'cupsUtf32CaseFold()'>
+    <Convert internal UCS-4 to output UTF-8 by calling 'cupsUtf32ToUtf8()>
+    <Release normalize maps by calling 'cupsNormalizeMapsFree()'>
+    <Return length of output UTF-8 string -- size in butes>
+    
+    
+    
+    3.2.2.4.  cupsUtf32CaseFold()
+    
+    /*
+     * Case Fold UTF-32 string per Unicode UAX-21 Section 2.3
+     * Note - Case folding output is
+     * unsafe for subsequent transcoding to legacy charsets
+     */
+    extern int      cupsUtf32CaseFold(utf32_t *dest,    /* Target string */
+                        const utf32_t *src,            /* Source string */
+                        const int maxout);            /* Max output units */
+    
+    <Find case fold maps by calling 'cupsNormalizeMapsGet()'>
+    <...if not found, return '-1'>
+    <Traverse internal UCS-4 once, performing case folding...>
+    <...with 'bsearch()' of 'uni2fold[]' using local 'compare_foldchar()'>
+    <Copy internal UCS-4 to output UTF-32 string>
+    <Release normalize maps by calling 'cupsNormalizeMapsFree()'>
+    <Return count of output UTF-32 string -- NOT memory size in bytes>
+    
+    
+    
+    3.2.2.5.  cupsUtf8CompareCaseless()
+    
+    /*
+     * Compare UTF-8 strings after case folding
+     */
+    extern int      cupsUtf8CompareCaseless(const utf8_t *s1,
+                                                    /* I - String1 */
+                        const utf8_t *s2);          /* I - String2 */
+    
+    <Case fold both input UTF-8 strings by calling 'cupsUtf8CaseFold()'>
+    <Return compare of case folded first and second strings>
+    
+    
+    
+    3.2.2.6.  cupsUtf32CompareCaseless()
+    
+    /*
+     * Compare UTF-32 strings after case folding
+     */
+    extern int      cupsUtf32CompareCaseless(const utf32_t *s1,
+                                                    /* I - String1 */
+                        const utf32_t *s2);         /* I - String2 */
+    
+    <Case fold both input UTF-32 strings by calling 'cupsUtf32CaseFold()'>
+
+    McDonald                     June 20, 2002                     [Page 26]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+    <Return compare of case folded first and second strings>
+    
+    
+    
+    3.2.2.7.  cupsUtf8CompareIdentifier()
+    
+    /*
+     * Compare UTF-8 strings after case folding and NFKC normalization
+     */
+    extern int      cupsUtf8CompareIdentifier(const utf8_t *s1,
+                                                    /* I - String1 */
+                        const utf8_t *s2);          /* I - String2 */
+    
+    <Convert input UTF-8 to internal UCS-4 by calling 'cupsUtf8ToUtf32()'>
+    <Case fold both strings by calling 'cupsUtf32CaseFold()'>
+    <Normalize both strings to NFKC by calling 'cupsUtf32Normalize()'>
+    <Return compare of case folded/normalized first and second strings>
+    
+    
+    
+    3.2.2.8.  cupsUtf32CompareIdentifier()
+    
+    /*
+     * Compare UTF-32 strings after case folding and NFKC normalization
+     */
+    extern int      cupsUtf32CompareIdentifier(const utf32_t *s1,
+                                                    /* I - String1 */
+                        const utf32_t *s2);         /* I - String2 */
+    
+    <Case fold both strings by calling 'cupsUtf32CaseFold()'>
+    <Normalize both strings to NFKC by calling 'cupsUtf32Normalize()'>
+    <Return compare of case folded/normalized first and second strings>
+    
+    
+    
+    3.2.2.9.  cupsUtf32CharacterProperty()
+    
+    /*
+     * Get UTF-32 character property
+     */
+    extern int      cupsUtf32CharacterProperty(const utf32_t ch,
+                                                    /* I - Source char */
+                        const cups_property_t property);
+                                                    /* I - Char Property */
+    
+    <Lookup UTF-32 character property in appropriate map...> <...internal
+    functions for each different map lookup> 
+    
+
+
+
+
+
+    McDonald                     June 20, 2002                     [Page 27]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+    
+    
+    3.2.2.10.  Normalization Utility Functions
+    
+    
+    
+    
+    3.2.2.10.1.  cupsNormalizeMapsGet()
+    
+    extern void     cupsNormalizeMapsMapsGet(void);
+    
+    <Find normalize maps in cache>
+    <...If found, increment 'used'>
+    <...and return void>
+    <For each map (normalization, case fold, combining class, etc.)...>
+    <Open (preprocessed form of) Unicode data file...>
+    <...If not found, return void>
+    <Count lines in preprocessed form, for mapping memory alloc>
+    <...Close (preprocessed form of) Unicode data file>
+    <Open (preprocessed form of) Unicode data file...>
+    <...If not found, return void>
+    <Allocate memory for approriate map in cache...>
+    <...If no memory, return void>
+    <Add to appropriate cache by assigning 'next' field>
+    <Assign map type field and count field>
+    <Increment 'used' field>
+    <Read normalize map into memory in loop...>
+    <...Add values to 'uni2xxx[]' array>
+    <Close (preprocessed form of) Unicode data file>
+    <Return void>
+    
+    
+    
+    3.2.2.10.2.  cupsNormalizeMapsFree()
+    
+    extern void     cupsNormalizeMapsFree(void);
+    
+    <Find normalize maps in cache>
+    <...If found, decrement 'used'>
+    <Return void>
+    
+    
+    
+    3.2.2.10.3.  cupsNormalizeMapsFlush()
+    
+    extern void     cupsNormalizeMapsFlush(void);
+    
+    <Loop through normalize maps cache...>
+    <...Free 'uni2norm[]' memory>
+    <...Free normalize map memory>
+    <Loop through case folding cache...>
+    <...Free 'uni2fold[]' memory>
+
+    McDonald                     June 20, 2002                     [Page 28]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+    <...Free case folding memory>
+    <Loop through char property map cache...>
+    <...Free 'uni2prop[]' memory>
+    <...Free char property map memory>
+    <Loop through line break class map cache...>
+    <...Free 'uni2break[]' memory>
+    <...Free line break class map memory>
+    <Loop through combining class map cache...>
+    <...Free 'uni2comb[]' memory>
+    <...Free combining class map memory>
+    <Return void>
+    
+    
+    
+    3.3.  Language - Existing
+    
+    
+    
+    3.3.1.  language.h - Language header
+    
+    Required Changes:  
+    
+    (1) Change definition of 'cups_lang_t' to correct length of 'language[]'
+        to 32 characters per [RFC3066] and [ISO639-2] and [ISO3166-1].  
+    
+    
+    
+    3.3.2.  language.c - Language module
+    
+    
+    
+    3.3.2.1.  cupsLangEncoding() - Existing
+    
+    [No Change] 
+    
+    
+    
+    3.3.2.2.  cupsLangFlush() - Existing
+    
+    [No Change] 
+    
+    
+    
+    3.3.2.3.  cupsLangFree() - Existing
+    
+    [No Change] 
+    
+
+
+
+
+
+
+    McDonald                     June 20, 2002                     [Page 29]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+    
+    
+    3.3.2.4.  cupsLangGet() - Existing
+    
+    Required Changes:  
+    
+    (1) Change length of 'langname[]' and 'real[]' to 64 characters per
+        [RFC3066] and potential length of encoding (charset) names; 
+    (2) Change language string normalization to support:  
+        (a) 8-character language codes per [RFC3066] and 3-character
+        language codes per [ISO639-2]; 
+        (b) 8-character country codes per [RFC3066] and 3-character country 
+        codes per [ISO3166-1]; 
+        (c) Support for 'i' (IANA registered) and 'x' (private) language
+        prefixes per [RFC3066]; 
+        (d) Invariant use of 'utf-8' for encoding in message catalog, but
+        save actual requested encoding name for later use.  
+    (3) Correct broken do/while statement for message catalog lookup (while
+        condition is _never_ satisfied).  
+    
+    
+    
+    3.3.2.5.  cupsLangPrintf() - New
+    
+    extern  int     cupsLangPrintf(FILE *fp,        /* I - File to write */
+                        const cups_lang_t *lang,    /* I - Language/locale*/
+                        const cups_msg_t msg,       /* I - Msg to format */
+                        ...);                       /* I - Args to format */
+    
+    <Set up variable args by calling 'va_start()'>
+    <Format CUPS message with variable args by calling 'vsnprintf()'>
+    <Clean up variable args by calling 'va_end()'>
+    <Transcode CUPS message by calling 'cupsUtf8ToCharset()'>
+    <Write CUPS message by calling 'fputs()'>
+    <Return transcoded output CUPS message length>
+    
+    
+    
+    3.3.2.6.  cupsLangPuts() - New
+    
+    extern  int     cupsLangPuts(FILE *fp,          /* I - File to write */
+                        const cups_lang_t *lang,    /* I - Language/locale*/
+                        const cups_msg_t msg);      /* I - Msg to write */
+    
+    <Transcode CUPS message by calling 'cupsUtf8ToCharset()'>
+    <Write CUPS message by calling 'fputs()'>
+    <Return transcoded output CUPS message length>
+    
+
+
+
+
+
+    McDonald                     June 20, 2002                     [Page 30]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+    
+    
+    3.3.2.7.  cupsEncodingName() - New
+    
+    extern  char    *cupsEncodingName(cups_encoding_t encoding);
+    
+    <Lookup encoding name in static 'lang_encodings[]' array>
+    <Return pointer to encoding name (charset map file name)>
+    
+    
+    
+    3.4.  Common Text Filter - Existing
+    
+    
+    
+    3.4.1.  textcommon.h - Common text filter header
+    
+    Required changes:  
+    
+    (1) Revise 'lchar_t' as specified below, adding 'attrx' bit-mask for
+        selected Unicode character properties; 
+    (2) Revise 'lchar_t' as specified below, adding 'comblen' and 'combch[]'
+        for Unicode combining/attached chars (accents); 
+    (3) Add 'COMBLEN_MAX' limit as specified below; 
+    (4) Add 'ATTRX_...' selected Unicode character properties as specified
+        below.  
+    
+    
+    
+    3.4.1.1.  lchar_t - Character/Attribute Structure
+    
+    typedef struct lchar_str    /**** Character / Attribute Structure ****/
+    {
+      unsigned short        ch;             /* Unicode Char as UCS-2 */
+                                            /* or 8/16-bit Legacy Char */
+      unsigned short        attr;           /* Attributes of Char */
+      unsigned short        attrx;          /* Extended Attributes */
+      unsigned short        comblen;        /* Combining Char Count */
+      unsigned short        combch[8];      /* Combining Chars as UCS-2 */
+    } lchar_t;
+    
+    'ch' is a 16-bit UCS-2 character or a 8/16-bit legacy char.  'attr' is
+    the character attributes defined for the existing 'lchar_t' structure
+    (defined in 'textcommon.h').  'attrx' is the extended character
+    attributes defined for future selected Unicode character properties (see
+    below).  'comblen' is the number of attached/combining characters.
+    'combch' is an array of 16-bit UCS-2 attached/combining characters.  
+    
+    Add to 'textcommon.h' constants:  
+    
+    COMBLEN_MAX 8
+
+
+    McDonald                     June 20, 2002                     [Page 31]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+    
+    ATTRX_RIGHT2LEFT 0x0001
+    
+    
+    
+    3.4.2.  textcommon.c - Common text filter
+    
+    Required Changes:  
+    
+    (1) Revise 'TextMain()' function as described below.  
+    
+    
+    
+    3.4.2.1.  TextMain() - Existing
+    
+    Required Changes:  
+    
+    [Ed Note:  Pseudo code below needs more work on bidi handling.] 
+    
+    (1) In main loop at the _beginning_ of the 'default' clause, add the
+        following code for combining marks:  
+        lchar_t *cp;
+        
+        cp = Page[line];
+        cp += column;
+        /*
+         * Check for Unicode combining mark (accent)
+         */
+        if (UTF-8 && cupsUtf32CombiningClass(ch) > 0)
+        {
+        
+         /*
+          * Save Unicode combining mark in SAME character
+          */
+          if (cp->comblen > COMBLEN_MAX)
+            break;
+          cp->combch[cp->comblen] = ch;
+          cp->comblen ++;
+          break;
+        }
+        
+    (2) In main loop _after_ combining chars section in 'default' clause,
+        add the following code for Unicode bidi control characters 
+        cups_bidicat_t bidicat;
+        
+        /*
+         * Check for Unicode bidi control character
+         */
+        if (UTF-8)
+        {
+          bidicat = (cups_bidicat_t)
+            cupsUtf32CharacterProperty(ch, CUPS_PROP_BIDI_CATEGORY);
+
+    McDonald                     June 20, 2002                     [Page 32]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+          if ((bidicat == CUPS_BIDI_LRE)        /* Left-to-Right Embedding *
+          || (bidicat == CUPS_BIDI_LRO)         /* Left-to-Right Override */
+          || (bidicat == CUPS_BIDI_RLE)         /* Right-to-Left Embedding *
+          || (bidicat == CUPS_BIDI_RLO)         /* Right-to-Left Override */
+          || (bidicat == CUPS_BIDI_PDF))        /* Pop Directional Format */
+          {
+            /* Do bidi stuff here with memory for NEXT char's direction
+            /* Discard bidi control character and break */
+          }
+          if ((bidicat == CUPS_BIDI_R)           /* Right-to-Left Hebrew */
+          || (bidicat == CUPS_BIDI_AL))          /* Right-to-Left Arabic */
+          {
+            /* Set attrx for right-to-left */
+            cp->attrx |= ATTRX_RIGHT2LEFT
+          }
+        }
+    
+    
+    
+    3.4.2.2.  compare_keywords() - Existing
+    
+    [No Change] 
+    
+    
+    
+    3.4.2.3.  getutf8() - Existing
+    
+    [No Change] 
+    
+    [Ed Note:  Future - allow 20-bit UTF-32 code points - requires updates
+    in both 'textcommon.c' and 'texttops.c' for extended PostScript.] 
+    
+    
+    
+    3.5.  Text to PostScript Filter - Existing
+    
+    
+    
+    3.5.1.  texttops.c - Text to PostScript filter
+    
+    Required Changes:  
+    
+    (1) Revise local 'write_string()' function as described below.  
+    
+    
+    
+    3.5.1.1.  main() - Existing
+    
+    [No Change] 
+    
+
+
+
+    McDonald                     June 20, 2002                     [Page 33]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+    
+    
+    3.5.1.2.  WriteEpilogue () - Existing
+    
+    [No Change] 
+    
+    
+    
+    3.5.1.3.  WritePage () - Existing
+    
+    [No Change] 
+    
+    
+    
+    3.5.1.4.  WriteProlog () - Existing
+    
+    [No Change] 
+    
+    
+    
+    3.5.1.5.  write_line() - Existing
+    
+    [No Change] 
+    
+    
+    
+    3.5.1.6.  write_string() - Existing
+    
+    Required Changes:  
+    
+    (1) At the _beginning_ of Multiple Fonts section, _replace_ the while() 
+        loop and surrounding 'putchar()' calls with the following code:  
+        
+        for (; len > 0; len --, s ++)
+        {
+          utf32_t decstr[COMBLEN_MAX * 2];
+          utf32_t cmpstr[COMBLEN_MAX * 2];
+          int     cmplen;
+          int     i;
+        
+          if (s->comblen == 0)
+          {
+            printf("<%04x>", Chars[s->ch]);
+            continue;
+          }
+        
+         /*
+          * Normalize decomposed Unicode character to NFKC
+          * (compatibility decomposition, then canonical composition)
+          */
+          decstr[0] = (utf32_t) s->ch;
+          for (i = 0; i < s->comblen; i ++)
+
+    McDonald                     June 20, 2002                     [Page 34]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+
+            decstr[i + 1] = (utf32_t) s->combch[i];
+          decstr[i] = 0;
+          cmplen = cupsUtf32Normalize (&cmpstr[0],
+                       &decstr[0], COMBLEN_MAX * 2, CUPS_NORM_NFKC);
+          if (cmplen < 1)
+            continue;
+        
+         /*
+          * Write combining chars, then composed base, to same location
+          */
+          for (i = 1; i < cmplen; i ++)
+          {
+            printf("<%04x>", Chars[(int) cmpstr[i]);
+           /*
+            * Superimpose glyphs by backing up one column width
+            */
+            printf (" -%.3f ", (72.0f / (float) CharsPerInch));
+          }
+          printf("<%04x>", Chars[(int) cmpstr[0]);
+        }
+    
+    [Ed Note:  Future - Bidi support - When writing Unicode characters
+    (checking for explicit bidi) convert input string (lchar_t) to display
+    order???] 
+    
+    
+    
+    3.5.1.7.  write_text() - Existing
+    
+    [No Change] 
+    
+    
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    McDonald                     June 20, 2002                     [Page 35]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+                                   APPENDIX A                               
+                                    Glossary                                
+
+    
+    
+    A.  Glossary
+    
+    Abstract Character:  A unit of information used for the organization,
+    control, or representation of textual data.  
+    
+    Accent Mark:  A mark placed above, below, or to the side of a character 
+    to alter its phonetic value (also 'diacritic').  
+    
+    Alphabet:  A collection of symbols that, in the context of a particular 
+    written language, represent the sounds of that language.  
+    
+    Base Character:  A character that does not graphically combine with
+    preceding characters, and that is neither a control nor a format
+    character.  
+    
+    Basic Multilingual Plane:  The Unicode (or UCS) code values 0x0000
+    through 0xFFFF, specified by [ISO10646] (also 'Plane 0').  
+    
+    BIDI:  Abbreviation for Bidirectional, in reference to mixed
+    left-to-right and right-to-left text.  
+    
+    Bidirectional Display:  The process or result of mixing left-to-right
+    oriented text and right-to-left oriented text in a single line.  
+    
+    Big-endian:  A computer architecture that stores multiple-byte numerical
+    values with the most significant byte (MSB) values first.  
+    
+    BMP:  Abbreviation for Basic Multilingual Plane.  
+    
+    BOM:  Acronym for byte order mark (also 'ZWNBSP').  
+    
+    Byte Order Mark:  The Unicode character U+FEFF Zero Width No-Break Space
+    (ZWNBSP) when used to indicate the byte order of text.  
+    
+    Canonical:  (1) Conforming to the general rules for encoding -- that is,
+    not compressed, compacted, or in any other form specified by a higher
+    protocol.  (2) Characteristic of a normative mapping and form of
+    equivalence.  
+    
+    Canonical Decomposition:  The decomposition of a character that results 
+    from recursively applying the canonical mappings defined in the Unicode 
+    Character Database until no characters can be further decomposed, then
+    reordering nonspacing marks according to section 3.10 of [UNICODE3.2].  
+    
+    Canonical Equivalent:  Two characters are canonical equivalents if their
+    full canonical decompositions are identical.  
+    
+    Case:  (1) Feature of certain alphabets wheere the letters have two
+
+    McDonald                    June 20, 2002                     [Page A-1]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+                                   APPENDIX A                               
+                                    Glossary                                
+
+    distinct forms.  These variants are called the 'uppercase' letter (also 
+    known as 'capital' or 'majuscule') and the 'lowercase' letter (also
+    known as 'small' or 'minuscule').  (2) Normative property of Unicode
+    characters, consisting of uppercase, lowercase, and titlecase.  
+    
+    Character:  (1) The smallest component of written language that has
+    semantic value; refers to the abstract meaning and/or shape, rather than
+    a specific shape (see also 'glyph').  (2) Synonym for 'abstract
+    character'.  (3) The basic unit of encoding for the Unicode character
+    encoding.  (4) The English name for the ideographic written elements of 
+    Chinese origin (see 'ideograph').  
+    
+    Character Encoding Form (CEF):  Mapping from a character set definition 
+    to the actual bits used to represent the data.  
+    
+    Character Encoding Scheme (CES):  A 'character encoding form' plus byte 
+    serialization.  [UNICODE3.2] defines seven character encoding schemes:  
+    UTF-8, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, and UTF32-LE.  
+    
+    Character Properties:  A set of property names and property values
+    associated with individual characters defined in [UNICODE3.2].  
+    
+    Character Repertoire:  (1) The collection of characters included in a
+    character set.  (2) The SUBSET of characters included in a large
+    character set, e.g., [UNICODE3.2], that are necessary to support a
+    complete mapping to another smaller character set, e.g., ISO8859-1 (also
+    called 'Latin-1').  
+    
+    Character Set:  A collection of elements used to represent textual
+    information.  
+    
+    Coded Character Set:  A character set in which each character is
+    assigned a numeric code value.  Frequently abbreviated as 'character
+    set', 'charset', or 'code set'.  
+    
+    Code Point:  (1) A numerical index (or position) in an encoding table
+    used for encoding characters.  (2) Synonym for 'Unicode scalar value'.  
+    
+    Collation:  The process of ordering units of textual information.
+    Collation is usually specific to a particular language.  Also known as
+    'alphabetizing' or 'alphabetic sorting'.  
+    
+    Combining Character:  A character that graphically combines with a
+    preceding 'base character'.  The combining character is said to 'apply' 
+    to that base character.  (See also 'nonspacing mark'.) 
+    
+    Compatibility:  (1) Consistency with existing practice or preexisting
+    character encoding standards.  (2) Characterisitic of a normative
+    mapping and form of equivalence (see 'compatibility decomposition').  
+
+
+    McDonald                    June 20, 2002                     [Page A-2]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+                                   APPENDIX A                               
+                                    Glossary                                
+
+    
+    Compatibility Character:  A character that has a compatibility
+    decomposition.  
+    
+    Compatibility Decomposition:  The decomposition of a character that
+    results from recursively applying BOTH the compatibility mappings AND
+    the canonical mappings found in the Unicode Character Database until no
+    characters can be further decomposed, then reordering nonspacing marks
+    according to section 3.10 of [UNICODE3.2].  
+    
+    Compatibility Equivalent:  Two characters are compatibility equivalents 
+    if their full compatibility decompositions are identical.  
+    
+    Composed Character:  (See 'descomposable character'.) 
+    
+    DBCS:  Acronym for 'double-byte character set'.  
+    
+    Decomposable Character:  A character that is equivalent to a sequence of
+    one or more other characters, according to the decomposition mappings
+    found in [UNICODE3.2].  It may also be known as a 'precomposed
+    character' or a 'composite character'.  
+    
+    Decomposition:  (1) The process of separating or analyzing a text
+    element into component units.  (2) A sequence of one or more characters 
+    that is equivalent to a 'decomposable character'.  
+    
+    Diacritic:  (See 'accent mark'.) 
+    
+    Double-Byte Character Set (DBCS):  One of a number of character sets
+    defined for representing Chinese, Japanese, or Korean text (for example,
+    JIS X 0208-1990).  These character sets are often encoded in such a way 
+    as to allow double-byte character encodings to be mixed with single-byte
+    character encodings.  (See also 'multiple-byte character set'.) 
+    
+    Font:  A collection of glyphs used for visual depication of character
+    data.  
+    
+    FSS-UTF:  Abbreviation for 'File System Safe UCS Transformation Format',
+    originally published by X/Open.  Now called 'UTF-8'.  
+    
+    Fullwidth:  Characters of East Asian character sets whose glyph image
+    extends across the entire character display cell.  In legacy character
+    sets, fullwidth characters are normally encoded in two or three bytes.  
+    
+    Glyph:  (1) An abstract form that represents one or more glyph images.  
+    (2) A synonym for 'glyph image'.  
+    
+    Glyph Image:  The actual, concrete image of a glyph representation
+    having been rasterized or otherwise images onto some display surface.  
+
+
+    McDonald                    June 20, 2002                     [Page A-3]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+                                   APPENDIX A                               
+                                    Glossary                                
+
+    
+    Halfwidth:  Characters of East Asian character sets whose glyph image
+    occupies half of the character display cell.  In legacy character sets, 
+    halfwidth characters are normally encoded in a single byte.  
+    
+    Han Characters:  Ideographic characters of Chinese origin.  
+    
+    Hangul:  The name of the script used to write the Korean language.  
+    
+    High-Surrogate:  A Unicode code value in the range U+D800 to U+DBFF.  
+    
+    Hiragana:  One of two standard syllabaries associated with the Japanese 
+    writing system.  Use to write particles, grammatical affixes, and words 
+    that have no 'kanji' form.  
+    
+    IANA:  Internet Assigned Numbers Authority.  
+    
+    Ideograph:  (1) Any symbol that denotes an idea (or meaning) in contrast
+    to a sound or pronunciation (for example, a 'smiley face').  (2) A
+    common term used to refer to Han characters.  
+    
+    IPA:  International Phonetic Alphabet.  
+    
+    IRG:  Abbreviation for Ideographic Rapporteur Group, a subgroup of
+    ISO/IEC JTC1/SC2/WG2 (who work on Han unification and submission of new 
+    Han characters for inclusion in revised versions of Unicode/ISO 10646).
+    
+    Jamo:  The Korean name for a single letter of the Hangul script.  Jamos 
+    are used to form Hangul syllables.  
+    
+    Joiner:  An invisible character that affects the joining behavior of
+    surrounding characters.  
+    
+    JTC1:  Abbreviation for Joint Technical Committee 1 of ISO/IEC,
+    responsible for information technology standardization.  
+    
+    Kana:  The name of a primarily syllabic script used by the Japanese
+    writing system, composed of 'hiragana' and 'katakana'.  
+    
+    Kanji:  The Japanese name for Han characters; derived from the Chinese
+    word 'hanzi'.  Also romanized as 'kanzi'.  
+    
+    Katakana:  One of two standard syllabaries associated with the Japanese 
+    writing system, typically used in representation of borrowed vocabulary.
+    
+    Ligature:  A glyph representing a combination of two or more characters,
+    for example in the Latin script the ligature between 'f' and 'i' as
+    'fi'.  
+    
+    Logical Order:  The order in which text is typed on a keyboard.  For the
+
+    McDonald                    June 20, 2002                     [Page A-4]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+                                   APPENDIX A                               
+                                    Glossary                                
+
+    most part, logical order corresponds to phonetic order.  
+    
+    Lowercase:  (See 'case'.) 
+    
+    Low-Surrogate:  A Unicode code value in the range U+DC00 to U+DFFF.  
+    
+    MBCS:  Acronym for 'multiple-byte character set'.  
+    
+    Multiple-Byte Character Set (MBCS):  A character set encoded with a
+    variable number of bytes per character.  Many large character sets have 
+    been defined as MBCS so as to keep strict compatibility with the
+    US-ASCII subset and/or [ISO2022].  
+    
+    Normalization:  Transformation of data to a normal form.  
+    
+    Plain Text:  Computer-encoded text that consists ONLY of a sequence of
+    code values from a given standard, with no other formatting or
+    structural information.  
+    
+    Precomposed Character:  (See 'decomposable character'.) 
+    
+    Rendering:  (1) The process of selecting and laying out glyphs for the
+    purpose of depicting characters.  (2) The process of making glyphs
+    visible on a display device.  
+    
+    Repertoire:  (See 'character repertoire'.) 
+    
+    Replacement Character:  A character used as a substitute for an
+    uninterpretable character from another encoding.  [UNICODE3.2] defines
+    U+FFFD REPLACEMENT CHARACTER for this function.  
+    
+    Rich Text:  The result of adding information such as font data, color,
+    formatting, phonetic annotations, etc. to 'plain text' (e.g., HTML).  
+    
+    SBCS:  Acronym for 'single-byte character set'.  
+    
+    Scalar Value:  (See 'Unicode scalar value'.) 
+    
+    Script:  A collection of symbols used to represent textual information
+    in one or more writing systems.  
+    
+    Single-Byte Character Set (SBCS):  One of a number of one-byte character
+    sets defined for representing (mostly) Western languages (for example,
+    ISO 8859-1 'Latin-1').  These character sets are often encoded in such a
+    way as to be strict supersets of 7-bit [US-ASCII].  
+    
+    Sorting:  (See 'collation'.) 
+    
+    Transcoding:  Conversion of character data between different character
+    sets.  
+
+    McDonald                    June 20, 2002                     [Page A-5]
+\f
+           CUPS Internationalization Software Design Description v0.3       
+                                   APPENDIX A                               
+                                    Glossary                                
+
+    
+    Transformation Format:  A mapping from a coded character sequence to a
+    unique sequence of code values (typically octets).  
+    
+    UCS:  Abbreviation for Universal Character Set, specified by [ISO10646].
+    
+    UCS-2:  UCS encoded in 2 octets, specified by [ISO10646].  
+    
+    UCS-4:  UCS encoded in 4 octets, specified by [ISO10646].  
+    
+    Unicode Scalar Value:  A number between 0 to 0x10FFFF.  
+    
+    Uppercase:  (See 'case'.) 
+    
+    UTF:  Abbreviation for Unicode (or UCS) Transformation Format.  
+    
+    UTF-8:  Unicode (or UCS) Transformation Format, 8-bit encoding form.
+    Serializes a Unicode (or UCS) scalar value (code point) as a sequence of
+    one to four octets.  Does NOT suffer from byte-ordering ambiguities.  
+    
+    UTF-16:  Unicode (or UCS) Transformation Format, 16-bit encoding form.  
+    Serializes a Unicode (or UCS) scalar value (code point) as a sequence of
+    two octets, in either big-endian or little-endian format.  Uses an
+    (optional) prefix of BOM to disambiguate byte-ordering.  
+    
+    UTF-32:  Unicode (or UCS) Transformation Format, 32-bit encoding form.  
+    Serializes a Unicode (or UCS) scalar value (code point) as a sequence of
+    four octets, in either big-endian or little-endian format.  Uses an
+    (optional) prefix of BOM to disambiguate byte-ordering.  
+    
+    Zero Width:  Characteristic of some spaces or format control characters 
+    that do not advance text along the horizontal baseline.  
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    McDonald                    June 20, 2002                     [Page A-6]
diff --git a/data/iso-8859-1.txt b/data/iso-8859-1.txt
new file mode 100644 (file)
index 0000000..4ab49e8
--- /dev/null
@@ -0,0 +1,303 @@
+#\r
+#      Name:             ISO/IEC 8859-1:1998 to Unicode\r
+#      Unicode version:  3.0\r
+#      Table version:    1.0\r
+#      Table format:     Format A\r
+#      Date:             1999 July 27\r
+#      Authors:          Ken Whistler <kenw@sybase.com>\r
+#\r
+#      Copyright (c) 1991-1999 Unicode, Inc.  All Rights reserved.\r
+#\r
+#      This file is provided as-is by Unicode, Inc. (The Unicode Consortium).\r
+#      No claims are made as to fitness for any particular purpose.  No\r
+#      warranties of any kind are expressed or implied.  The recipient\r
+#      agrees to determine applicability of information provided.  If this\r
+#      file has been provided on optical media by Unicode, Inc., the sole\r
+#      remedy for any claim will be exchange of defective media within 90\r
+#      days of receipt.\r
+#\r
+#      Unicode, Inc. hereby grants the right to freely use the information\r
+#      supplied in this file in the creation of products supporting the\r
+#      Unicode Standard, and to make copies of this file in any form for\r
+#      internal or external distribution as long as this notice remains\r
+#      attached.\r
+#\r
+#      General notes:\r
+#\r
+#      This table contains the data the Unicode Consortium has on how\r
+#       ISO/IEC 8859-1:1998 characters map into Unicode.\r
+#\r
+#      Format:  Three tab-separated columns\r
+#               Column #1 is the ISO/IEC 8859-1 code (in hex as 0xXX)\r
+#               Column #2 is the Unicode (in hex as 0xXXXX)\r
+#               Column #3 the Unicode name (follows a comment sign, '#')\r
+#\r
+#      The entries are in ISO/IEC 8859-1 order.\r
+#\r
+#      Version history\r
+#      1.0 version updates 0.1 version by adding mappings for all\r
+#      control characters.\r
+#\r
+#      Updated versions of this file may be found in:\r
+#              <ftp://ftp.unicode.org/Public/MAPPINGS/>\r
+#\r
+#      Any comments or problems, contact <errata@unicode.org>\r
+#      Please note that <errata@unicode.org> is an archival address;\r
+#      notices will be checked, but do not expect an immediate response.\r
+#\r
+0x00   0x0000  #       NULL\r
+0x01   0x0001  #       START OF HEADING\r
+0x02   0x0002  #       START OF TEXT\r
+0x03   0x0003  #       END OF TEXT\r
+0x04   0x0004  #       END OF TRANSMISSION\r
+0x05   0x0005  #       ENQUIRY\r
+0x06   0x0006  #       ACKNOWLEDGE\r
+0x07   0x0007  #       BELL\r
+0x08   0x0008  #       BACKSPACE\r
+0x09   0x0009  #       HORIZONTAL TABULATION\r
+0x0A   0x000A  #       LINE FEED\r
+0x0B   0x000B  #       VERTICAL TABULATION\r
+0x0C   0x000C  #       FORM FEED\r
+0x0D   0x000D  #       CARRIAGE RETURN\r
+0x0E   0x000E  #       SHIFT OUT\r
+0x0F   0x000F  #       SHIFT IN\r
+0x10   0x0010  #       DATA LINK ESCAPE\r
+0x11   0x0011  #       DEVICE CONTROL ONE\r
+0x12   0x0012  #       DEVICE CONTROL TWO\r
+0x13   0x0013  #       DEVICE CONTROL THREE\r
+0x14   0x0014  #       DEVICE CONTROL FOUR\r
+0x15   0x0015  #       NEGATIVE ACKNOWLEDGE\r
+0x16   0x0016  #       SYNCHRONOUS IDLE\r
+0x17   0x0017  #       END OF TRANSMISSION BLOCK\r
+0x18   0x0018  #       CANCEL\r
+0x19   0x0019  #       END OF MEDIUM\r
+0x1A   0x001A  #       SUBSTITUTE\r
+0x1B   0x001B  #       ESCAPE\r
+0x1C   0x001C  #       FILE SEPARATOR\r
+0x1D   0x001D  #       GROUP SEPARATOR\r
+0x1E   0x001E  #       RECORD SEPARATOR\r
+0x1F   0x001F  #       UNIT SEPARATOR\r
+0x20   0x0020  #       SPACE\r
+0x21   0x0021  #       EXCLAMATION MARK\r
+0x22   0x0022  #       QUOTATION MARK\r
+0x23   0x0023  #       NUMBER SIGN\r
+0x24   0x0024  #       DOLLAR SIGN\r
+0x25   0x0025  #       PERCENT SIGN\r
+0x26   0x0026  #       AMPERSAND\r
+0x27   0x0027  #       APOSTROPHE\r
+0x28   0x0028  #       LEFT PARENTHESIS\r
+0x29   0x0029  #       RIGHT PARENTHESIS\r
+0x2A   0x002A  #       ASTERISK\r
+0x2B   0x002B  #       PLUS SIGN\r
+0x2C   0x002C  #       COMMA\r
+0x2D   0x002D  #       HYPHEN-MINUS\r
+0x2E   0x002E  #       FULL STOP\r
+0x2F   0x002F  #       SOLIDUS\r
+0x30   0x0030  #       DIGIT ZERO\r
+0x31   0x0031  #       DIGIT ONE\r
+0x32   0x0032  #       DIGIT TWO\r
+0x33   0x0033  #       DIGIT THREE\r
+0x34   0x0034  #       DIGIT FOUR\r
+0x35   0x0035  #       DIGIT FIVE\r
+0x36   0x0036  #       DIGIT SIX\r
+0x37   0x0037  #       DIGIT SEVEN\r
+0x38   0x0038  #       DIGIT EIGHT\r
+0x39   0x0039  #       DIGIT NINE\r
+0x3A   0x003A  #       COLON\r
+0x3B   0x003B  #       SEMICOLON\r
+0x3C   0x003C  #       LESS-THAN SIGN\r
+0x3D   0x003D  #       EQUALS SIGN\r
+0x3E   0x003E  #       GREATER-THAN SIGN\r
+0x3F   0x003F  #       QUESTION MARK\r
+0x40   0x0040  #       COMMERCIAL AT\r
+0x41   0x0041  #       LATIN CAPITAL LETTER A\r
+0x42   0x0042  #       LATIN CAPITAL LETTER B\r
+0x43   0x0043  #       LATIN CAPITAL LETTER C\r
+0x44   0x0044  #       LATIN CAPITAL LETTER D\r
+0x45   0x0045  #       LATIN CAPITAL LETTER E\r
+0x46   0x0046  #       LATIN CAPITAL LETTER F\r
+0x47   0x0047  #       LATIN CAPITAL LETTER G\r
+0x48   0x0048  #       LATIN CAPITAL LETTER H\r
+0x49   0x0049  #       LATIN CAPITAL LETTER I\r
+0x4A   0x004A  #       LATIN CAPITAL LETTER J\r
+0x4B   0x004B  #       LATIN CAPITAL LETTER K\r
+0x4C   0x004C  #       LATIN CAPITAL LETTER L\r
+0x4D   0x004D  #       LATIN CAPITAL LETTER M\r
+0x4E   0x004E  #       LATIN CAPITAL LETTER N\r
+0x4F   0x004F  #       LATIN CAPITAL LETTER O\r
+0x50   0x0050  #       LATIN CAPITAL LETTER P\r
+0x51   0x0051  #       LATIN CAPITAL LETTER Q\r
+0x52   0x0052  #       LATIN CAPITAL LETTER R\r
+0x53   0x0053  #       LATIN CAPITAL LETTER S\r
+0x54   0x0054  #       LATIN CAPITAL LETTER T\r
+0x55   0x0055  #       LATIN CAPITAL LETTER U\r
+0x56   0x0056  #       LATIN CAPITAL LETTER V\r
+0x57   0x0057  #       LATIN CAPITAL LETTER W\r
+0x58   0x0058  #       LATIN CAPITAL LETTER X\r
+0x59   0x0059  #       LATIN CAPITAL LETTER Y\r
+0x5A   0x005A  #       LATIN CAPITAL LETTER Z\r
+0x5B   0x005B  #       LEFT SQUARE BRACKET\r
+0x5C   0x005C  #       REVERSE SOLIDUS\r
+0x5D   0x005D  #       RIGHT SQUARE BRACKET\r
+0x5E   0x005E  #       CIRCUMFLEX ACCENT\r
+0x5F   0x005F  #       LOW LINE\r
+0x60   0x0060  #       GRAVE ACCENT\r
+0x61   0x0061  #       LATIN SMALL LETTER A\r
+0x62   0x0062  #       LATIN SMALL LETTER B\r
+0x63   0x0063  #       LATIN SMALL LETTER C\r
+0x64   0x0064  #       LATIN SMALL LETTER D\r
+0x65   0x0065  #       LATIN SMALL LETTER E\r
+0x66   0x0066  #       LATIN SMALL LETTER F\r
+0x67   0x0067  #       LATIN SMALL LETTER G\r
+0x68   0x0068  #       LATIN SMALL LETTER H\r
+0x69   0x0069  #       LATIN SMALL LETTER I\r
+0x6A   0x006A  #       LATIN SMALL LETTER J\r
+0x6B   0x006B  #       LATIN SMALL LETTER K\r
+0x6C   0x006C  #       LATIN SMALL LETTER L\r
+0x6D   0x006D  #       LATIN SMALL LETTER M\r
+0x6E   0x006E  #       LATIN SMALL LETTER N\r
+0x6F   0x006F  #       LATIN SMALL LETTER O\r
+0x70   0x0070  #       LATIN SMALL LETTER P\r
+0x71   0x0071  #       LATIN SMALL LETTER Q\r
+0x72   0x0072  #       LATIN SMALL LETTER R\r
+0x73   0x0073  #       LATIN SMALL LETTER S\r
+0x74   0x0074  #       LATIN SMALL LETTER T\r
+0x75   0x0075  #       LATIN SMALL LETTER U\r
+0x76   0x0076  #       LATIN SMALL LETTER V\r
+0x77   0x0077  #       LATIN SMALL LETTER W\r
+0x78   0x0078  #       LATIN SMALL LETTER X\r
+0x79   0x0079  #       LATIN SMALL LETTER Y\r
+0x7A   0x007A  #       LATIN SMALL LETTER Z\r
+0x7B   0x007B  #       LEFT CURLY BRACKET\r
+0x7C   0x007C  #       VERTICAL LINE\r
+0x7D   0x007D  #       RIGHT CURLY BRACKET\r
+0x7E   0x007E  #       TILDE\r
+0x7F   0x007F  #       DELETE\r
+0x80   0x0080  #       <control>\r
+0x81   0x0081  #       <control>\r
+0x82   0x0082  #       <control>\r
+0x83   0x0083  #       <control>\r
+0x84   0x0084  #       <control>\r
+0x85   0x0085  #       <control>\r
+0x86   0x0086  #       <control>\r
+0x87   0x0087  #       <control>\r
+0x88   0x0088  #       <control>\r
+0x89   0x0089  #       <control>\r
+0x8A   0x008A  #       <control>\r
+0x8B   0x008B  #       <control>\r
+0x8C   0x008C  #       <control>\r
+0x8D   0x008D  #       <control>\r
+0x8E   0x008E  #       <control>\r
+0x8F   0x008F  #       <control>\r
+0x90   0x0090  #       <control>\r
+0x91   0x0091  #       <control>\r
+0x92   0x0092  #       <control>\r
+0x93   0x0093  #       <control>\r
+0x94   0x0094  #       <control>\r
+0x95   0x0095  #       <control>\r
+0x96   0x0096  #       <control>\r
+0x97   0x0097  #       <control>\r
+0x98   0x0098  #       <control>\r
+0x99   0x0099  #       <control>\r
+0x9A   0x009A  #       <control>\r
+0x9B   0x009B  #       <control>\r
+0x9C   0x009C  #       <control>\r
+0x9D   0x009D  #       <control>\r
+0x9E   0x009E  #       <control>\r
+0x9F   0x009F  #       <control>\r
+0xA0   0x00A0  #       NO-BREAK SPACE\r
+0xA1   0x00A1  #       INVERTED EXCLAMATION MARK\r
+0xA2   0x00A2  #       CENT SIGN\r
+0xA3   0x00A3  #       POUND SIGN\r
+0xA4   0x00A4  #       CURRENCY SIGN\r
+0xA5   0x00A5  #       YEN SIGN\r
+0xA6   0x00A6  #       BROKEN BAR\r
+0xA7   0x00A7  #       SECTION SIGN\r
+0xA8   0x00A8  #       DIAERESIS\r
+0xA9   0x00A9  #       COPYRIGHT SIGN\r
+0xAA   0x00AA  #       FEMININE ORDINAL INDICATOR\r
+0xAB   0x00AB  #       LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xAC   0x00AC  #       NOT SIGN\r
+0xAD   0x00AD  #       SOFT HYPHEN\r
+0xAE   0x00AE  #       REGISTERED SIGN\r
+0xAF   0x00AF  #       MACRON\r
+0xB0   0x00B0  #       DEGREE SIGN\r
+0xB1   0x00B1  #       PLUS-MINUS SIGN\r
+0xB2   0x00B2  #       SUPERSCRIPT TWO\r
+0xB3   0x00B3  #       SUPERSCRIPT THREE\r
+0xB4   0x00B4  #       ACUTE ACCENT\r
+0xB5   0x00B5  #       MICRO SIGN\r
+0xB6   0x00B6  #       PILCROW SIGN\r
+0xB7   0x00B7  #       MIDDLE DOT\r
+0xB8   0x00B8  #       CEDILLA\r
+0xB9   0x00B9  #       SUPERSCRIPT ONE\r
+0xBA   0x00BA  #       MASCULINE ORDINAL INDICATOR\r
+0xBB   0x00BB  #       RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xBC   0x00BC  #       VULGAR FRACTION ONE QUARTER\r
+0xBD   0x00BD  #       VULGAR FRACTION ONE HALF\r
+0xBE   0x00BE  #       VULGAR FRACTION THREE QUARTERS\r
+0xBF   0x00BF  #       INVERTED QUESTION MARK\r
+0xC0   0x00C0  #       LATIN CAPITAL LETTER A WITH GRAVE\r
+0xC1   0x00C1  #       LATIN CAPITAL LETTER A WITH ACUTE\r
+0xC2   0x00C2  #       LATIN CAPITAL LETTER A WITH CIRCUMFLEX\r
+0xC3   0x00C3  #       LATIN CAPITAL LETTER A WITH TILDE\r
+0xC4   0x00C4  #       LATIN CAPITAL LETTER A WITH DIAERESIS\r
+0xC5   0x00C5  #       LATIN CAPITAL LETTER A WITH RING ABOVE\r
+0xC6   0x00C6  #       LATIN CAPITAL LETTER AE\r
+0xC7   0x00C7  #       LATIN CAPITAL LETTER C WITH CEDILLA\r
+0xC8   0x00C8  #       LATIN CAPITAL LETTER E WITH GRAVE\r
+0xC9   0x00C9  #       LATIN CAPITAL LETTER E WITH ACUTE\r
+0xCA   0x00CA  #       LATIN CAPITAL LETTER E WITH CIRCUMFLEX\r
+0xCB   0x00CB  #       LATIN CAPITAL LETTER E WITH DIAERESIS\r
+0xCC   0x00CC  #       LATIN CAPITAL LETTER I WITH GRAVE\r
+0xCD   0x00CD  #       LATIN CAPITAL LETTER I WITH ACUTE\r
+0xCE   0x00CE  #       LATIN CAPITAL LETTER I WITH CIRCUMFLEX\r
+0xCF   0x00CF  #       LATIN CAPITAL LETTER I WITH DIAERESIS\r
+0xD0   0x00D0  #       LATIN CAPITAL LETTER ETH (Icelandic)\r
+0xD1   0x00D1  #       LATIN CAPITAL LETTER N WITH TILDE\r
+0xD2   0x00D2  #       LATIN CAPITAL LETTER O WITH GRAVE\r
+0xD3   0x00D3  #       LATIN CAPITAL LETTER O WITH ACUTE\r
+0xD4   0x00D4  #       LATIN CAPITAL LETTER O WITH CIRCUMFLEX\r
+0xD5   0x00D5  #       LATIN CAPITAL LETTER O WITH TILDE\r
+0xD6   0x00D6  #       LATIN CAPITAL LETTER O WITH DIAERESIS\r
+0xD7   0x00D7  #       MULTIPLICATION SIGN\r
+0xD8   0x00D8  #       LATIN CAPITAL LETTER O WITH STROKE\r
+0xD9   0x00D9  #       LATIN CAPITAL LETTER U WITH GRAVE\r
+0xDA   0x00DA  #       LATIN CAPITAL LETTER U WITH ACUTE\r
+0xDB   0x00DB  #       LATIN CAPITAL LETTER U WITH CIRCUMFLEX\r
+0xDC   0x00DC  #       LATIN CAPITAL LETTER U WITH DIAERESIS\r
+0xDD   0x00DD  #       LATIN CAPITAL LETTER Y WITH ACUTE\r
+0xDE   0x00DE  #       LATIN CAPITAL LETTER THORN (Icelandic)\r
+0xDF   0x00DF  #       LATIN SMALL LETTER SHARP S (German)\r
+0xE0   0x00E0  #       LATIN SMALL LETTER A WITH GRAVE\r
+0xE1   0x00E1  #       LATIN SMALL LETTER A WITH ACUTE\r
+0xE2   0x00E2  #       LATIN SMALL LETTER A WITH CIRCUMFLEX\r
+0xE3   0x00E3  #       LATIN SMALL LETTER A WITH TILDE\r
+0xE4   0x00E4  #       LATIN SMALL LETTER A WITH DIAERESIS\r
+0xE5   0x00E5  #       LATIN SMALL LETTER A WITH RING ABOVE\r
+0xE6   0x00E6  #       LATIN SMALL LETTER AE\r
+0xE7   0x00E7  #       LATIN SMALL LETTER C WITH CEDILLA\r
+0xE8   0x00E8  #       LATIN SMALL LETTER E WITH GRAVE\r
+0xE9   0x00E9  #       LATIN SMALL LETTER E WITH ACUTE\r
+0xEA   0x00EA  #       LATIN SMALL LETTER E WITH CIRCUMFLEX\r
+0xEB   0x00EB  #       LATIN SMALL LETTER E WITH DIAERESIS\r
+0xEC   0x00EC  #       LATIN SMALL LETTER I WITH GRAVE\r
+0xED   0x00ED  #       LATIN SMALL LETTER I WITH ACUTE\r
+0xEE   0x00EE  #       LATIN SMALL LETTER I WITH CIRCUMFLEX\r
+0xEF   0x00EF  #       LATIN SMALL LETTER I WITH DIAERESIS\r
+0xF0   0x00F0  #       LATIN SMALL LETTER ETH (Icelandic)\r
+0xF1   0x00F1  #       LATIN SMALL LETTER N WITH TILDE\r
+0xF2   0x00F2  #       LATIN SMALL LETTER O WITH GRAVE\r
+0xF3   0x00F3  #       LATIN SMALL LETTER O WITH ACUTE\r
+0xF4   0x00F4  #       LATIN SMALL LETTER O WITH CIRCUMFLEX\r
+0xF5   0x00F5  #       LATIN SMALL LETTER O WITH TILDE\r
+0xF6   0x00F6  #       LATIN SMALL LETTER O WITH DIAERESIS\r
+0xF7   0x00F7  #       DIVISION SIGN\r
+0xF8   0x00F8  #       LATIN SMALL LETTER O WITH STROKE\r
+0xF9   0x00F9  #       LATIN SMALL LETTER U WITH GRAVE\r
+0xFA   0x00FA  #       LATIN SMALL LETTER U WITH ACUTE\r
+0xFB   0x00FB  #       LATIN SMALL LETTER U WITH CIRCUMFLEX\r
+0xFC   0x00FC  #       LATIN SMALL LETTER U WITH DIAERESIS\r
+0xFD   0x00FD  #       LATIN SMALL LETTER Y WITH ACUTE\r
+0xFE   0x00FE  #       LATIN SMALL LETTER THORN (Icelandic)\r
+0xFF   0x00FF  #       LATIN SMALL LETTER Y WITH DIAERESIS\r
diff --git a/data/iso-8859-10.txt b/data/iso-8859-10.txt
new file mode 100644 (file)
index 0000000..3093c3f
--- /dev/null
@@ -0,0 +1,303 @@
+#\r
+#      Name:             ISO/IEC 8859-10:1998 to Unicode\r
+#      Unicode version:  3.0\r
+#      Table version:    1.1\r
+#      Table format:     Format A\r
+#      Date:             1999 October 11\r
+#      Authors:          Ken Whistler <kenw@sybase.com>\r
+#\r
+#      Copyright (c) 1999 Unicode, Inc.  All Rights reserved.\r
+#\r
+#      This file is provided as-is by Unicode, Inc. (The Unicode Consortium).\r
+#      No claims are made as to fitness for any particular purpose.  No\r
+#      warranties of any kind are expressed or implied.  The recipient\r
+#      agrees to determine applicability of information provided.  If this\r
+#      file has been provided on optical media by Unicode, Inc., the sole\r
+#      remedy for any claim will be exchange of defective media within 90\r
+#      days of receipt.\r
+#\r
+#      Unicode, Inc. hereby grants the right to freely use the information\r
+#      supplied in this file in the creation of products supporting the\r
+#      Unicode Standard, and to make copies of this file in any form for\r
+#      internal or external distribution as long as this notice remains\r
+#      attached.\r
+#\r
+#      General notes:\r
+#\r
+#      This table contains the data the Unicode Consortium has on how\r
+#       ISO/IEC 8859-10:1998 characters map into Unicode.\r
+#\r
+#      Format:  Three tab-separated columns\r
+#               Column #1 is the ISO/IEC 8859-10 code (in hex as 0xXX)\r
+#               Column #2 is the Unicode (in hex as 0xXXXX)\r
+#               Column #3 the Unicode name (follows a comment sign, '#')\r
+#\r
+#      The entries are in ISO/IEC 8859-10 order.\r
+#\r
+#      Version history\r
+#      1.0 version new.\r
+#       1.1 corrected mistake in mapping of 0xA4\r
+#\r
+#      Updated versions of this file may be found in:\r
+#              <ftp://ftp.unicode.org/Public/MAPPINGS/>\r
+#\r
+#      Any comments or problems, contact <errata@unicode.org>\r
+#      Please note that <errata@unicode.org> is an archival address;\r
+#      notices will be checked, but do not expect an immediate response.\r
+#\r
+0x00   0x0000  #       NULL\r
+0x01   0x0001  #       START OF HEADING\r
+0x02   0x0002  #       START OF TEXT\r
+0x03   0x0003  #       END OF TEXT\r
+0x04   0x0004  #       END OF TRANSMISSION\r
+0x05   0x0005  #       ENQUIRY\r
+0x06   0x0006  #       ACKNOWLEDGE\r
+0x07   0x0007  #       BELL\r
+0x08   0x0008  #       BACKSPACE\r
+0x09   0x0009  #       HORIZONTAL TABULATION\r
+0x0A   0x000A  #       LINE FEED\r
+0x0B   0x000B  #       VERTICAL TABULATION\r
+0x0C   0x000C  #       FORM FEED\r
+0x0D   0x000D  #       CARRIAGE RETURN\r
+0x0E   0x000E  #       SHIFT OUT\r
+0x0F   0x000F  #       SHIFT IN\r
+0x10   0x0010  #       DATA LINK ESCAPE\r
+0x11   0x0011  #       DEVICE CONTROL ONE\r
+0x12   0x0012  #       DEVICE CONTROL TWO\r
+0x13   0x0013  #       DEVICE CONTROL THREE\r
+0x14   0x0014  #       DEVICE CONTROL FOUR\r
+0x15   0x0015  #       NEGATIVE ACKNOWLEDGE\r
+0x16   0x0016  #       SYNCHRONOUS IDLE\r
+0x17   0x0017  #       END OF TRANSMISSION BLOCK\r
+0x18   0x0018  #       CANCEL\r
+0x19   0x0019  #       END OF MEDIUM\r
+0x1A   0x001A  #       SUBSTITUTE\r
+0x1B   0x001B  #       ESCAPE\r
+0x1C   0x001C  #       FILE SEPARATOR\r
+0x1D   0x001D  #       GROUP SEPARATOR\r
+0x1E   0x001E  #       RECORD SEPARATOR\r
+0x1F   0x001F  #       UNIT SEPARATOR\r
+0x20   0x0020  #       SPACE\r
+0x21   0x0021  #       EXCLAMATION MARK\r
+0x22   0x0022  #       QUOTATION MARK\r
+0x23   0x0023  #       NUMBER SIGN\r
+0x24   0x0024  #       DOLLAR SIGN\r
+0x25   0x0025  #       PERCENT SIGN\r
+0x26   0x0026  #       AMPERSAND\r
+0x27   0x0027  #       APOSTROPHE\r
+0x28   0x0028  #       LEFT PARENTHESIS\r
+0x29   0x0029  #       RIGHT PARENTHESIS\r
+0x2A   0x002A  #       ASTERISK\r
+0x2B   0x002B  #       PLUS SIGN\r
+0x2C   0x002C  #       COMMA\r
+0x2D   0x002D  #       HYPHEN-MINUS\r
+0x2E   0x002E  #       FULL STOP\r
+0x2F   0x002F  #       SOLIDUS\r
+0x30   0x0030  #       DIGIT ZERO\r
+0x31   0x0031  #       DIGIT ONE\r
+0x32   0x0032  #       DIGIT TWO\r
+0x33   0x0033  #       DIGIT THREE\r
+0x34   0x0034  #       DIGIT FOUR\r
+0x35   0x0035  #       DIGIT FIVE\r
+0x36   0x0036  #       DIGIT SIX\r
+0x37   0x0037  #       DIGIT SEVEN\r
+0x38   0x0038  #       DIGIT EIGHT\r
+0x39   0x0039  #       DIGIT NINE\r
+0x3A   0x003A  #       COLON\r
+0x3B   0x003B  #       SEMICOLON\r
+0x3C   0x003C  #       LESS-THAN SIGN\r
+0x3D   0x003D  #       EQUALS SIGN\r
+0x3E   0x003E  #       GREATER-THAN SIGN\r
+0x3F   0x003F  #       QUESTION MARK\r
+0x40   0x0040  #       COMMERCIAL AT\r
+0x41   0x0041  #       LATIN CAPITAL LETTER A\r
+0x42   0x0042  #       LATIN CAPITAL LETTER B\r
+0x43   0x0043  #       LATIN CAPITAL LETTER C\r
+0x44   0x0044  #       LATIN CAPITAL LETTER D\r
+0x45   0x0045  #       LATIN CAPITAL LETTER E\r
+0x46   0x0046  #       LATIN CAPITAL LETTER F\r
+0x47   0x0047  #       LATIN CAPITAL LETTER G\r
+0x48   0x0048  #       LATIN CAPITAL LETTER H\r
+0x49   0x0049  #       LATIN CAPITAL LETTER I\r
+0x4A   0x004A  #       LATIN CAPITAL LETTER J\r
+0x4B   0x004B  #       LATIN CAPITAL LETTER K\r
+0x4C   0x004C  #       LATIN CAPITAL LETTER L\r
+0x4D   0x004D  #       LATIN CAPITAL LETTER M\r
+0x4E   0x004E  #       LATIN CAPITAL LETTER N\r
+0x4F   0x004F  #       LATIN CAPITAL LETTER O\r
+0x50   0x0050  #       LATIN CAPITAL LETTER P\r
+0x51   0x0051  #       LATIN CAPITAL LETTER Q\r
+0x52   0x0052  #       LATIN CAPITAL LETTER R\r
+0x53   0x0053  #       LATIN CAPITAL LETTER S\r
+0x54   0x0054  #       LATIN CAPITAL LETTER T\r
+0x55   0x0055  #       LATIN CAPITAL LETTER U\r
+0x56   0x0056  #       LATIN CAPITAL LETTER V\r
+0x57   0x0057  #       LATIN CAPITAL LETTER W\r
+0x58   0x0058  #       LATIN CAPITAL LETTER X\r
+0x59   0x0059  #       LATIN CAPITAL LETTER Y\r
+0x5A   0x005A  #       LATIN CAPITAL LETTER Z\r
+0x5B   0x005B  #       LEFT SQUARE BRACKET\r
+0x5C   0x005C  #       REVERSE SOLIDUS\r
+0x5D   0x005D  #       RIGHT SQUARE BRACKET\r
+0x5E   0x005E  #       CIRCUMFLEX ACCENT\r
+0x5F   0x005F  #       LOW LINE\r
+0x60   0x0060  #       GRAVE ACCENT\r
+0x61   0x0061  #       LATIN SMALL LETTER A\r
+0x62   0x0062  #       LATIN SMALL LETTER B\r
+0x63   0x0063  #       LATIN SMALL LETTER C\r
+0x64   0x0064  #       LATIN SMALL LETTER D\r
+0x65   0x0065  #       LATIN SMALL LETTER E\r
+0x66   0x0066  #       LATIN SMALL LETTER F\r
+0x67   0x0067  #       LATIN SMALL LETTER G\r
+0x68   0x0068  #       LATIN SMALL LETTER H\r
+0x69   0x0069  #       LATIN SMALL LETTER I\r
+0x6A   0x006A  #       LATIN SMALL LETTER J\r
+0x6B   0x006B  #       LATIN SMALL LETTER K\r
+0x6C   0x006C  #       LATIN SMALL LETTER L\r
+0x6D   0x006D  #       LATIN SMALL LETTER M\r
+0x6E   0x006E  #       LATIN SMALL LETTER N\r
+0x6F   0x006F  #       LATIN SMALL LETTER O\r
+0x70   0x0070  #       LATIN SMALL LETTER P\r
+0x71   0x0071  #       LATIN SMALL LETTER Q\r
+0x72   0x0072  #       LATIN SMALL LETTER R\r
+0x73   0x0073  #       LATIN SMALL LETTER S\r
+0x74   0x0074  #       LATIN SMALL LETTER T\r
+0x75   0x0075  #       LATIN SMALL LETTER U\r
+0x76   0x0076  #       LATIN SMALL LETTER V\r
+0x77   0x0077  #       LATIN SMALL LETTER W\r
+0x78   0x0078  #       LATIN SMALL LETTER X\r
+0x79   0x0079  #       LATIN SMALL LETTER Y\r
+0x7A   0x007A  #       LATIN SMALL LETTER Z\r
+0x7B   0x007B  #       LEFT CURLY BRACKET\r
+0x7C   0x007C  #       VERTICAL LINE\r
+0x7D   0x007D  #       RIGHT CURLY BRACKET\r
+0x7E   0x007E  #       TILDE\r
+0x7F   0x007F  #       DELETE\r
+0x80   0x0080  #       <control>\r
+0x81   0x0081  #       <control>\r
+0x82   0x0082  #       <control>\r
+0x83   0x0083  #       <control>\r
+0x84   0x0084  #       <control>\r
+0x85   0x0085  #       <control>\r
+0x86   0x0086  #       <control>\r
+0x87   0x0087  #       <control>\r
+0x88   0x0088  #       <control>\r
+0x89   0x0089  #       <control>\r
+0x8A   0x008A  #       <control>\r
+0x8B   0x008B  #       <control>\r
+0x8C   0x008C  #       <control>\r
+0x8D   0x008D  #       <control>\r
+0x8E   0x008E  #       <control>\r
+0x8F   0x008F  #       <control>\r
+0x90   0x0090  #       <control>\r
+0x91   0x0091  #       <control>\r
+0x92   0x0092  #       <control>\r
+0x93   0x0093  #       <control>\r
+0x94   0x0094  #       <control>\r
+0x95   0x0095  #       <control>\r
+0x96   0x0096  #       <control>\r
+0x97   0x0097  #       <control>\r
+0x98   0x0098  #       <control>\r
+0x99   0x0099  #       <control>\r
+0x9A   0x009A  #       <control>\r
+0x9B   0x009B  #       <control>\r
+0x9C   0x009C  #       <control>\r
+0x9D   0x009D  #       <control>\r
+0x9E   0x009E  #       <control>\r
+0x9F   0x009F  #       <control>\r
+0xA0   0x00A0  #       NO-BREAK SPACE\r
+0xA1   0x0104  #       LATIN CAPITAL LETTER A WITH OGONEK\r
+0xA2   0x0112  #       LATIN CAPITAL LETTER E WITH MACRON\r
+0xA3   0x0122  #       LATIN CAPITAL LETTER G WITH CEDILLA\r
+0xA4   0x012A  #       LATIN CAPITAL LETTER I WITH MACRON\r
+0xA5   0x0128  #       LATIN CAPITAL LETTER I WITH TILDE\r
+0xA6   0x0136  #       LATIN CAPITAL LETTER K WITH CEDILLA\r
+0xA7   0x00A7  #       SECTION SIGN\r
+0xA8   0x013B  #       LATIN CAPITAL LETTER L WITH CEDILLA\r
+0xA9   0x0110  #       LATIN CAPITAL LETTER D WITH STROKE\r
+0xAA   0x0160  #       LATIN CAPITAL LETTER S WITH CARON\r
+0xAB   0x0166  #       LATIN CAPITAL LETTER T WITH STROKE\r
+0xAC   0x017D  #       LATIN CAPITAL LETTER Z WITH CARON\r
+0xAD   0x00AD  #       SOFT HYPHEN\r
+0xAE   0x016A  #       LATIN CAPITAL LETTER U WITH MACRON\r
+0xAF   0x014A  #       LATIN CAPITAL LETTER ENG\r
+0xB0   0x00B0  #       DEGREE SIGN\r
+0xB1   0x0105  #       LATIN SMALL LETTER A WITH OGONEK\r
+0xB2   0x0113  #       LATIN SMALL LETTER E WITH MACRON\r
+0xB3   0x0123  #       LATIN SMALL LETTER G WITH CEDILLA\r
+0xB4   0x012B  #       LATIN SMALL LETTER I WITH MACRON\r
+0xB5   0x0129  #       LATIN SMALL LETTER I WITH TILDE\r
+0xB6   0x0137  #       LATIN SMALL LETTER K WITH CEDILLA\r
+0xB7   0x00B7  #       MIDDLE DOT\r
+0xB8   0x013C  #       LATIN SMALL LETTER L WITH CEDILLA\r
+0xB9   0x0111  #       LATIN SMALL LETTER D WITH STROKE\r
+0xBA   0x0161  #       LATIN SMALL LETTER S WITH CARON\r
+0xBB   0x0167  #       LATIN SMALL LETTER T WITH STROKE\r
+0xBC   0x017E  #       LATIN SMALL LETTER Z WITH CARON\r
+0xBD   0x2015  #       HORIZONTAL BAR\r
+0xBE   0x016B  #       LATIN SMALL LETTER U WITH MACRON\r
+0xBF   0x014B  #       LATIN SMALL LETTER ENG\r
+0xC0   0x0100  #       LATIN CAPITAL LETTER A WITH MACRON\r
+0xC1   0x00C1  #       LATIN CAPITAL LETTER A WITH ACUTE\r
+0xC2   0x00C2  #       LATIN CAPITAL LETTER A WITH CIRCUMFLEX\r
+0xC3   0x00C3  #       LATIN CAPITAL LETTER A WITH TILDE\r
+0xC4   0x00C4  #       LATIN CAPITAL LETTER A WITH DIAERESIS\r
+0xC5   0x00C5  #       LATIN CAPITAL LETTER A WITH RING ABOVE\r
+0xC6   0x00C6  #       LATIN CAPITAL LETTER AE\r
+0xC7   0x012E  #       LATIN CAPITAL LETTER I WITH OGONEK\r
+0xC8   0x010C  #       LATIN CAPITAL LETTER C WITH CARON\r
+0xC9   0x00C9  #       LATIN CAPITAL LETTER E WITH ACUTE\r
+0xCA   0x0118  #       LATIN CAPITAL LETTER E WITH OGONEK\r
+0xCB   0x00CB  #       LATIN CAPITAL LETTER E WITH DIAERESIS\r
+0xCC   0x0116  #       LATIN CAPITAL LETTER E WITH DOT ABOVE\r
+0xCD   0x00CD  #       LATIN CAPITAL LETTER I WITH ACUTE\r
+0xCE   0x00CE  #       LATIN CAPITAL LETTER I WITH CIRCUMFLEX\r
+0xCF   0x00CF  #       LATIN CAPITAL LETTER I WITH DIAERESIS\r
+0xD0   0x00D0  #       LATIN CAPITAL LETTER ETH (Icelandic)\r
+0xD1   0x0145  #       LATIN CAPITAL LETTER N WITH CEDILLA\r
+0xD2   0x014C  #       LATIN CAPITAL LETTER O WITH MACRON\r
+0xD3   0x00D3  #       LATIN CAPITAL LETTER O WITH ACUTE\r
+0xD4   0x00D4  #       LATIN CAPITAL LETTER O WITH CIRCUMFLEX\r
+0xD5   0x00D5  #       LATIN CAPITAL LETTER O WITH TILDE\r
+0xD6   0x00D6  #       LATIN CAPITAL LETTER O WITH DIAERESIS\r
+0xD7   0x0168  #       LATIN CAPITAL LETTER U WITH TILDE\r
+0xD8   0x00D8  #       LATIN CAPITAL LETTER O WITH STROKE\r
+0xD9   0x0172  #       LATIN CAPITAL LETTER U WITH OGONEK\r
+0xDA   0x00DA  #       LATIN CAPITAL LETTER U WITH ACUTE\r
+0xDB   0x00DB  #       LATIN CAPITAL LETTER U WITH CIRCUMFLEX\r
+0xDC   0x00DC  #       LATIN CAPITAL LETTER U WITH DIAERESIS\r
+0xDD   0x00DD  #       LATIN CAPITAL LETTER Y WITH ACUTE\r
+0xDE   0x00DE  #       LATIN CAPITAL LETTER THORN (Icelandic)\r
+0xDF   0x00DF  #       LATIN SMALL LETTER SHARP S (German)\r
+0xE0   0x0101  #       LATIN SMALL LETTER A WITH MACRON\r
+0xE1   0x00E1  #       LATIN SMALL LETTER A WITH ACUTE\r
+0xE2   0x00E2  #       LATIN SMALL LETTER A WITH CIRCUMFLEX\r
+0xE3   0x00E3  #       LATIN SMALL LETTER A WITH TILDE\r
+0xE4   0x00E4  #       LATIN SMALL LETTER A WITH DIAERESIS\r
+0xE5   0x00E5  #       LATIN SMALL LETTER A WITH RING ABOVE\r
+0xE6   0x00E6  #       LATIN SMALL LETTER AE\r
+0xE7   0x012F  #       LATIN SMALL LETTER I WITH OGONEK\r
+0xE8   0x010D  #       LATIN SMALL LETTER C WITH CARON\r
+0xE9   0x00E9  #       LATIN SMALL LETTER E WITH ACUTE\r
+0xEA   0x0119  #       LATIN SMALL LETTER E WITH OGONEK\r
+0xEB   0x00EB  #       LATIN SMALL LETTER E WITH DIAERESIS\r
+0xEC   0x0117  #       LATIN SMALL LETTER E WITH DOT ABOVE\r
+0xED   0x00ED  #       LATIN SMALL LETTER I WITH ACUTE\r
+0xEE   0x00EE  #       LATIN SMALL LETTER I WITH CIRCUMFLEX\r
+0xEF   0x00EF  #       LATIN SMALL LETTER I WITH DIAERESIS\r
+0xF0   0x00F0  #       LATIN SMALL LETTER ETH (Icelandic)\r
+0xF1   0x0146  #       LATIN SMALL LETTER N WITH CEDILLA\r
+0xF2   0x014D  #       LATIN SMALL LETTER O WITH MACRON\r
+0xF3   0x00F3  #       LATIN SMALL LETTER O WITH ACUTE\r
+0xF4   0x00F4  #       LATIN SMALL LETTER O WITH CIRCUMFLEX\r
+0xF5   0x00F5  #       LATIN SMALL LETTER O WITH TILDE\r
+0xF6   0x00F6  #       LATIN SMALL LETTER O WITH DIAERESIS\r
+0xF7   0x0169  #       LATIN SMALL LETTER U WITH TILDE\r
+0xF8   0x00F8  #       LATIN SMALL LETTER O WITH STROKE\r
+0xF9   0x0173  #       LATIN SMALL LETTER U WITH OGONEK\r
+0xFA   0x00FA  #       LATIN SMALL LETTER U WITH ACUTE\r
+0xFB   0x00FB  #       LATIN SMALL LETTER U WITH CIRCUMFLEX\r
+0xFC   0x00FC  #       LATIN SMALL LETTER U WITH DIAERESIS\r
+0xFD   0x00FD  #       LATIN SMALL LETTER Y WITH ACUTE\r
+0xFE   0x00FE  #       LATIN SMALL LETTER THORN (Icelandic)\r
+0xFF   0x0138  #       LATIN SMALL LETTER KRA\r
diff --git a/data/iso-8859-13.txt b/data/iso-8859-13.txt
new file mode 100644 (file)
index 0000000..b24c70d
--- /dev/null
@@ -0,0 +1,299 @@
+#\r
+#      Name:             ISO/IEC 8859-13:1998  to Unicode\r
+#      Unicode version:  3.0\r
+#      Table version:    1.0\r
+#      Table format:     Format A\r
+#      Date:             1999 July 27\r
+#      Authors:          Ken Whistler <kenw@sybase.com>\r
+#\r
+#      Copyright (c) 1998 - 1999 Unicode, Inc.  All Rights reserved.\r
+#\r
+#      This file is provided as-is by Unicode, Inc. (The Unicode Consortium).\r
+#      No claims are made as to fitness for any particular purpose.  No\r
+#      warranties of any kind are expressed or implied.  The recipient\r
+#      agrees to determine applicability of information provided.  If this\r
+#      file has been provided on optical media by Unicode, Inc., the sole\r
+#      remedy for any claim will be exchange of defective media within 90\r
+#      days of receipt.\r
+#\r
+#      Unicode, Inc. hereby grants the right to freely use the information\r
+#      supplied in this file in the creation of products supporting the\r
+#      Unicode Standard, and to make copies of this file in any form for\r
+#      internal or external distribution as long as this notice remains\r
+#      attached.\r
+#\r
+#      General notes:\r
+#\r
+#      This table contains the data the Unicode Consortium has on how\r
+#       ISO/IEC 8859-13:1998 characters map into Unicode.\r
+#\r
+#      Format:  Three tab-separated columns\r
+#               Column #1 is the ISO/IEC 8859-13 code (in hex as 0xXX)\r
+#               Column #2 is the Unicode (in hex as 0xXXXX)\r
+#               Column #3 the Unicode name (follows a comment sign, '#')\r
+#\r
+#      The entries are in ISO/IEC 8859-13 order.\r
+#\r
+#      Updated versions of this file may be found in:\r
+#              <ftp://ftp.unicode.org/Public/MAPPINGS/>\r
+#\r
+#      Any comments or problems, contact <errata@unicode.org>\r
+#      Please note that <errata@unicode.org> is an archival address;\r
+#      notices will be checked, but do not expect an immediate response.\r
+#\r
+0x00   0x0000  #       NULL\r
+0x01   0x0001  #       START OF HEADING\r
+0x02   0x0002  #       START OF TEXT\r
+0x03   0x0003  #       END OF TEXT\r
+0x04   0x0004  #       END OF TRANSMISSION\r
+0x05   0x0005  #       ENQUIRY\r
+0x06   0x0006  #       ACKNOWLEDGE\r
+0x07   0x0007  #       BELL\r
+0x08   0x0008  #       BACKSPACE\r
+0x09   0x0009  #       HORIZONTAL TABULATION\r
+0x0A   0x000A  #       LINE FEED\r
+0x0B   0x000B  #       VERTICAL TABULATION\r
+0x0C   0x000C  #       FORM FEED\r
+0x0D   0x000D  #       CARRIAGE RETURN\r
+0x0E   0x000E  #       SHIFT OUT\r
+0x0F   0x000F  #       SHIFT IN\r
+0x10   0x0010  #       DATA LINK ESCAPE\r
+0x11   0x0011  #       DEVICE CONTROL ONE\r
+0x12   0x0012  #       DEVICE CONTROL TWO\r
+0x13   0x0013  #       DEVICE CONTROL THREE\r
+0x14   0x0014  #       DEVICE CONTROL FOUR\r
+0x15   0x0015  #       NEGATIVE ACKNOWLEDGE\r
+0x16   0x0016  #       SYNCHRONOUS IDLE\r
+0x17   0x0017  #       END OF TRANSMISSION BLOCK\r
+0x18   0x0018  #       CANCEL\r
+0x19   0x0019  #       END OF MEDIUM\r
+0x1A   0x001A  #       SUBSTITUTE\r
+0x1B   0x001B  #       ESCAPE\r
+0x1C   0x001C  #       FILE SEPARATOR\r
+0x1D   0x001D  #       GROUP SEPARATOR\r
+0x1E   0x001E  #       RECORD SEPARATOR\r
+0x1F   0x001F  #       UNIT SEPARATOR\r
+0x20   0x0020  #       SPACE\r
+0x21   0x0021  #       EXCLAMATION MARK\r
+0x22   0x0022  #       QUOTATION MARK\r
+0x23   0x0023  #       NUMBER SIGN\r
+0x24   0x0024  #       DOLLAR SIGN\r
+0x25   0x0025  #       PERCENT SIGN\r
+0x26   0x0026  #       AMPERSAND\r
+0x27   0x0027  #       APOSTROPHE\r
+0x28   0x0028  #       LEFT PARENTHESIS\r
+0x29   0x0029  #       RIGHT PARENTHESIS\r
+0x2A   0x002A  #       ASTERISK\r
+0x2B   0x002B  #       PLUS SIGN\r
+0x2C   0x002C  #       COMMA\r
+0x2D   0x002D  #       HYPHEN-MINUS\r
+0x2E   0x002E  #       FULL STOP\r
+0x2F   0x002F  #       SOLIDUS\r
+0x30   0x0030  #       DIGIT ZERO\r
+0x31   0x0031  #       DIGIT ONE\r
+0x32   0x0032  #       DIGIT TWO\r
+0x33   0x0033  #       DIGIT THREE\r
+0x34   0x0034  #       DIGIT FOUR\r
+0x35   0x0035  #       DIGIT FIVE\r
+0x36   0x0036  #       DIGIT SIX\r
+0x37   0x0037  #       DIGIT SEVEN\r
+0x38   0x0038  #       DIGIT EIGHT\r
+0x39   0x0039  #       DIGIT NINE\r
+0x3A   0x003A  #       COLON\r
+0x3B   0x003B  #       SEMICOLON\r
+0x3C   0x003C  #       LESS-THAN SIGN\r
+0x3D   0x003D  #       EQUALS SIGN\r
+0x3E   0x003E  #       GREATER-THAN SIGN\r
+0x3F   0x003F  #       QUESTION MARK\r
+0x40   0x0040  #       COMMERCIAL AT\r
+0x41   0x0041  #       LATIN CAPITAL LETTER A\r
+0x42   0x0042  #       LATIN CAPITAL LETTER B\r
+0x43   0x0043  #       LATIN CAPITAL LETTER C\r
+0x44   0x0044  #       LATIN CAPITAL LETTER D\r
+0x45   0x0045  #       LATIN CAPITAL LETTER E\r
+0x46   0x0046  #       LATIN CAPITAL LETTER F\r
+0x47   0x0047  #       LATIN CAPITAL LETTER G\r
+0x48   0x0048  #       LATIN CAPITAL LETTER H\r
+0x49   0x0049  #       LATIN CAPITAL LETTER I\r
+0x4A   0x004A  #       LATIN CAPITAL LETTER J\r
+0x4B   0x004B  #       LATIN CAPITAL LETTER K\r
+0x4C   0x004C  #       LATIN CAPITAL LETTER L\r
+0x4D   0x004D  #       LATIN CAPITAL LETTER M\r
+0x4E   0x004E  #       LATIN CAPITAL LETTER N\r
+0x4F   0x004F  #       LATIN CAPITAL LETTER O\r
+0x50   0x0050  #       LATIN CAPITAL LETTER P\r
+0x51   0x0051  #       LATIN CAPITAL LETTER Q\r
+0x52   0x0052  #       LATIN CAPITAL LETTER R\r
+0x53   0x0053  #       LATIN CAPITAL LETTER S\r
+0x54   0x0054  #       LATIN CAPITAL LETTER T\r
+0x55   0x0055  #       LATIN CAPITAL LETTER U\r
+0x56   0x0056  #       LATIN CAPITAL LETTER V\r
+0x57   0x0057  #       LATIN CAPITAL LETTER W\r
+0x58   0x0058  #       LATIN CAPITAL LETTER X\r
+0x59   0x0059  #       LATIN CAPITAL LETTER Y\r
+0x5A   0x005A  #       LATIN CAPITAL LETTER Z\r
+0x5B   0x005B  #       LEFT SQUARE BRACKET\r
+0x5C   0x005C  #       REVERSE SOLIDUS\r
+0x5D   0x005D  #       RIGHT SQUARE BRACKET\r
+0x5E   0x005E  #       CIRCUMFLEX ACCENT\r
+0x5F   0x005F  #       LOW LINE\r
+0x60   0x0060  #       GRAVE ACCENT\r
+0x61   0x0061  #       LATIN SMALL LETTER A\r
+0x62   0x0062  #       LATIN SMALL LETTER B\r
+0x63   0x0063  #       LATIN SMALL LETTER C\r
+0x64   0x0064  #       LATIN SMALL LETTER D\r
+0x65   0x0065  #       LATIN SMALL LETTER E\r
+0x66   0x0066  #       LATIN SMALL LETTER F\r
+0x67   0x0067  #       LATIN SMALL LETTER G\r
+0x68   0x0068  #       LATIN SMALL LETTER H\r
+0x69   0x0069  #       LATIN SMALL LETTER I\r
+0x6A   0x006A  #       LATIN SMALL LETTER J\r
+0x6B   0x006B  #       LATIN SMALL LETTER K\r
+0x6C   0x006C  #       LATIN SMALL LETTER L\r
+0x6D   0x006D  #       LATIN SMALL LETTER M\r
+0x6E   0x006E  #       LATIN SMALL LETTER N\r
+0x6F   0x006F  #       LATIN SMALL LETTER O\r
+0x70   0x0070  #       LATIN SMALL LETTER P\r
+0x71   0x0071  #       LATIN SMALL LETTER Q\r
+0x72   0x0072  #       LATIN SMALL LETTER R\r
+0x73   0x0073  #       LATIN SMALL LETTER S\r
+0x74   0x0074  #       LATIN SMALL LETTER T\r
+0x75   0x0075  #       LATIN SMALL LETTER U\r
+0x76   0x0076  #       LATIN SMALL LETTER V\r
+0x77   0x0077  #       LATIN SMALL LETTER W\r
+0x78   0x0078  #       LATIN SMALL LETTER X\r
+0x79   0x0079  #       LATIN SMALL LETTER Y\r
+0x7A   0x007A  #       LATIN SMALL LETTER Z\r
+0x7B   0x007B  #       LEFT CURLY BRACKET\r
+0x7C   0x007C  #       VERTICAL LINE\r
+0x7D   0x007D  #       RIGHT CURLY BRACKET\r
+0x7E   0x007E  #       TILDE\r
+0x7F   0x007F  #       DELETE\r
+0x80   0x0080  #       <control>\r
+0x81   0x0081  #       <control>\r
+0x82   0x0082  #       <control>\r
+0x83   0x0083  #       <control>\r
+0x84   0x0084  #       <control>\r
+0x85   0x0085  #       <control>\r
+0x86   0x0086  #       <control>\r
+0x87   0x0087  #       <control>\r
+0x88   0x0088  #       <control>\r
+0x89   0x0089  #       <control>\r
+0x8A   0x008A  #       <control>\r
+0x8B   0x008B  #       <control>\r
+0x8C   0x008C  #       <control>\r
+0x8D   0x008D  #       <control>\r
+0x8E   0x008E  #       <control>\r
+0x8F   0x008F  #       <control>\r
+0x90   0x0090  #       <control>\r
+0x91   0x0091  #       <control>\r
+0x92   0x0092  #       <control>\r
+0x93   0x0093  #       <control>\r
+0x94   0x0094  #       <control>\r
+0x95   0x0095  #       <control>\r
+0x96   0x0096  #       <control>\r
+0x97   0x0097  #       <control>\r
+0x98   0x0098  #       <control>\r
+0x99   0x0099  #       <control>\r
+0x9A   0x009A  #       <control>\r
+0x9B   0x009B  #       <control>\r
+0x9C   0x009C  #       <control>\r
+0x9D   0x009D  #       <control>\r
+0x9E   0x009E  #       <control>\r
+0x9F   0x009F  #       <control>\r
+0xA0   0x00A0  #       NO-BREAK SPACE\r
+0xA1   0x201D  #       RIGHT DOUBLE QUOTATION MARK\r
+0xA2   0x00A2  #       CENT SIGN\r
+0xA3   0x00A3  #       POUND SIGN\r
+0xA4   0x00A4  #       CURRENCY SIGN\r
+0xA5   0x201E  #       DOUBLE LOW-9 QUOTATION MARK\r
+0xA6   0x00A6  #       BROKEN BAR\r
+0xA7   0x00A7  #       SECTION SIGN\r
+0xA8   0x00D8  #       LATIN CAPITAL LETTER O WITH STROKE\r
+0xA9   0x00A9  #       COPYRIGHT SIGN\r
+0xAA   0x0156  #       LATIN CAPITAL LETTER R WITH CEDILLA\r
+0xAB   0x00AB  #       LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xAC   0x00AC  #       NOT SIGN\r
+0xAD   0x00AD  #       SOFT HYPHEN\r
+0xAE   0x00AE  #       REGISTERED SIGN\r
+0xAF   0x00C6  #       LATIN CAPITAL LETTER AE\r
+0xB0   0x00B0  #       DEGREE SIGN\r
+0xB1   0x00B1  #       PLUS-MINUS SIGN\r
+0xB2   0x00B2  #       SUPERSCRIPT TWO\r
+0xB3   0x00B3  #       SUPERSCRIPT THREE\r
+0xB4   0x201C  #       LEFT DOUBLE QUOTATION MARK\r
+0xB5   0x00B5  #       MICRO SIGN\r
+0xB6   0x00B6  #       PILCROW SIGN\r
+0xB7   0x00B7  #       MIDDLE DOT\r
+0xB8   0x00F8  #       LATIN SMALL LETTER O WITH STROKE\r
+0xB9   0x00B9  #       SUPERSCRIPT ONE\r
+0xBA   0x0157  #       LATIN SMALL LETTER R WITH CEDILLA\r
+0xBB   0x00BB  #       RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xBC   0x00BC  #       VULGAR FRACTION ONE QUARTER\r
+0xBD   0x00BD  #       VULGAR FRACTION ONE HALF\r
+0xBE   0x00BE  #       VULGAR FRACTION THREE QUARTERS\r
+0xBF   0x00E6  #       LATIN SMALL LETTER AE\r
+0xC0   0x0104  #       LATIN CAPITAL LETTER A WITH OGONEK\r
+0xC1   0x012E  #       LATIN CAPITAL LETTER I WITH OGONEK\r
+0xC2   0x0100  #       LATIN CAPITAL LETTER A WITH MACRON\r
+0xC3   0x0106  #       LATIN CAPITAL LETTER C WITH ACUTE\r
+0xC4   0x00C4  #       LATIN CAPITAL LETTER A WITH DIAERESIS\r
+0xC5   0x00C5  #       LATIN CAPITAL LETTER A WITH RING ABOVE\r
+0xC6   0x0118  #       LATIN CAPITAL LETTER E WITH OGONEK\r
+0xC7   0x0112  #       LATIN CAPITAL LETTER E WITH MACRON\r
+0xC8   0x010C  #       LATIN CAPITAL LETTER C WITH CARON\r
+0xC9   0x00C9  #       LATIN CAPITAL LETTER E WITH ACUTE\r
+0xCA   0x0179  #       LATIN CAPITAL LETTER Z WITH ACUTE\r
+0xCB   0x0116  #       LATIN CAPITAL LETTER E WITH DOT ABOVE\r
+0xCC   0x0122  #       LATIN CAPITAL LETTER G WITH CEDILLA\r
+0xCD   0x0136  #       LATIN CAPITAL LETTER K WITH CEDILLA\r
+0xCE   0x012A  #       LATIN CAPITAL LETTER I WITH MACRON\r
+0xCF   0x013B  #       LATIN CAPITAL LETTER L WITH CEDILLA\r
+0xD0   0x0160  #       LATIN CAPITAL LETTER S WITH CARON\r
+0xD1   0x0143  #       LATIN CAPITAL LETTER N WITH ACUTE\r
+0xD2   0x0145  #       LATIN CAPITAL LETTER N WITH CEDILLA\r
+0xD3   0x00D3  #       LATIN CAPITAL LETTER O WITH ACUTE\r
+0xD4   0x014C  #       LATIN CAPITAL LETTER O WITH MACRON\r
+0xD5   0x00D5  #       LATIN CAPITAL LETTER O WITH TILDE\r
+0xD6   0x00D6  #       LATIN CAPITAL LETTER O WITH DIAERESIS\r
+0xD7   0x00D7  #       MULTIPLICATION SIGN\r
+0xD8   0x0172  #       LATIN CAPITAL LETTER U WITH OGONEK\r
+0xD9   0x0141  #       LATIN CAPITAL LETTER L WITH STROKE\r
+0xDA   0x015A  #       LATIN CAPITAL LETTER S WITH ACUTE\r
+0xDB   0x016A  #       LATIN CAPITAL LETTER U WITH MACRON\r
+0xDC   0x00DC  #       LATIN CAPITAL LETTER U WITH DIAERESIS\r
+0xDD   0x017B  #       LATIN CAPITAL LETTER Z WITH DOT ABOVE\r
+0xDE   0x017D  #       LATIN CAPITAL LETTER Z WITH CARON\r
+0xDF   0x00DF  #       LATIN SMALL LETTER SHARP S (German)\r
+0xE0   0x0105  #       LATIN SMALL LETTER A WITH OGONEK\r
+0xE1   0x012F  #       LATIN SMALL LETTER I WITH OGONEK\r
+0xE2   0x0101  #       LATIN SMALL LETTER A WITH MACRON\r
+0xE3   0x0107  #       LATIN SMALL LETTER C WITH ACUTE\r
+0xE4   0x00E4  #       LATIN SMALL LETTER A WITH DIAERESIS\r
+0xE5   0x00E5  #       LATIN SMALL LETTER A WITH RING ABOVE\r
+0xE6   0x0119  #       LATIN SMALL LETTER E WITH OGONEK\r
+0xE7   0x0113  #       LATIN SMALL LETTER E WITH MACRON\r
+0xE8   0x010D  #       LATIN SMALL LETTER C WITH CARON\r
+0xE9   0x00E9  #       LATIN SMALL LETTER E WITH ACUTE\r
+0xEA   0x017A  #       LATIN SMALL LETTER Z WITH ACUTE\r
+0xEB   0x0117  #       LATIN SMALL LETTER E WITH DOT ABOVE\r
+0xEC   0x0123  #       LATIN SMALL LETTER G WITH CEDILLA\r
+0xED   0x0137  #       LATIN SMALL LETTER K WITH CEDILLA\r
+0xEE   0x012B  #       LATIN SMALL LETTER I WITH MACRON\r
+0xEF   0x013C  #       LATIN SMALL LETTER L WITH CEDILLA\r
+0xF0   0x0161  #       LATIN SMALL LETTER S WITH CARON\r
+0xF1   0x0144  #       LATIN SMALL LETTER N WITH ACUTE\r
+0xF2   0x0146  #       LATIN SMALL LETTER N WITH CEDILLA\r
+0xF3   0x00F3  #       LATIN SMALL LETTER O WITH ACUTE\r
+0xF4   0x014D  #       LATIN SMALL LETTER O WITH MACRON\r
+0xF5   0x00F5  #       LATIN SMALL LETTER O WITH TILDE\r
+0xF6   0x00F6  #       LATIN SMALL LETTER O WITH DIAERESIS\r
+0xF7   0x00F7  #       DIVISION SIGN\r
+0xF8   0x0173  #       LATIN SMALL LETTER U WITH OGONEK\r
+0xF9   0x0142  #       LATIN SMALL LETTER L WITH STROKE\r
+0xFA   0x015B  #       LATIN SMALL LETTER S WITH ACUTE\r
+0xFB   0x016B  #       LATIN SMALL LETTER U WITH MACRON\r
+0xFC   0x00FC  #       LATIN SMALL LETTER U WITH DIAERESIS\r
+0xFD   0x017C  #       LATIN SMALL LETTER Z WITH DOT ABOVE\r
+0xFE   0x017E  #       LATIN SMALL LETTER Z WITH CARON\r
+0xFF   0x2019  #       RIGHT SINGLE QUOTATION MARK\r
diff --git a/data/iso-8859-14.txt b/data/iso-8859-14.txt
new file mode 100644 (file)
index 0000000..04a8df7
--- /dev/null
@@ -0,0 +1,301 @@
+#\r
+#      Name:             ISO/IEC 8859-14:1998 to Unicode\r
+#      Unicode version:  3.0\r
+#      Table version:    1.0\r
+#      Table format:     Format A\r
+#      Date:             1999 July 27\r
+#      Authors:          Markus Kuhn <mkuhn@acm.org>\r
+#                        Ken Whistler <kenw@sybase.com>\r
+#\r
+#      Copyright (c) 1998 - 1999 Unicode, Inc.  All Rights reserved.\r
+#\r
+#      This file is provided as-is by Unicode, Inc. (The Unicode Consortium).\r
+#      No claims are made as to fitness for any particular purpose.  No\r
+#      warranties of any kind are expressed or implied.  The recipient\r
+#      agrees to determine applicability of information provided.  If this\r
+#      file has been provided on optical media by Unicode, Inc., the sole\r
+#      remedy for any claim will be exchange of defective media within 90\r
+#      days of receipt.\r
+#\r
+#      Unicode, Inc. hereby grants the right to freely use the information\r
+#      supplied in this file in the creation of products supporting the\r
+#      Unicode Standard, and to make copies of this file in any form for\r
+#      internal or external distribution as long as this notice remains\r
+#      attached.\r
+#\r
+#      General notes:\r
+#\r
+#      This table contains the data the Unicode Consortium has on how\r
+#       ISO/IEC 8859-14:1998 characters map into Unicode.\r
+#\r
+#      Format:  Three tab-separated columns\r
+#               Column #1 is the ISO/IEC 8859-14 code (in hex as 0xXX)\r
+#               Column #2 is the Unicode (in hex as 0xXXXX)\r
+#               Column #3 the Unicode name (follows a comment sign, '#')\r
+#\r
+#      The entries are in ISO/IEC 8859-14 order.\r
+#\r
+#      Updated versions of this file may be found in:\r
+#              <ftp://ftp.unicode.org/Public/MAPPINGS/>\r
+#\r
+#      Any comments or problems, contact <errata@unicode.org>\r
+#      Please note that <errata@unicode.org> is an archival address;\r
+#      notices will be checked, but do not expect an immediate response.\r
+#\r
+0x00   0x0000  #       NULL\r
+0x01   0x0001  #       START OF HEADING\r
+0x02   0x0002  #       START OF TEXT\r
+0x03   0x0003  #       END OF TEXT\r
+0x04   0x0004  #       END OF TRANSMISSION\r
+0x05   0x0005  #       ENQUIRY\r
+0x06   0x0006  #       ACKNOWLEDGE\r
+0x07   0x0007  #       BELL\r
+0x08   0x0008  #       BACKSPACE\r
+0x09   0x0009  #       HORIZONTAL TABULATION\r
+0x0A   0x000A  #       LINE FEED\r
+0x0B   0x000B  #       VERTICAL TABULATION\r
+0x0C   0x000C  #       FORM FEED\r
+0x0D   0x000D  #       CARRIAGE RETURN\r
+0x0E   0x000E  #       SHIFT OUT\r
+0x0F   0x000F  #       SHIFT IN\r
+0x10   0x0010  #       DATA LINK ESCAPE\r
+0x11   0x0011  #       DEVICE CONTROL ONE\r
+0x12   0x0012  #       DEVICE CONTROL TWO\r
+0x13   0x0013  #       DEVICE CONTROL THREE\r
+0x14   0x0014  #       DEVICE CONTROL FOUR\r
+0x15   0x0015  #       NEGATIVE ACKNOWLEDGE\r
+0x16   0x0016  #       SYNCHRONOUS IDLE\r
+0x17   0x0017  #       END OF TRANSMISSION BLOCK\r
+0x18   0x0018  #       CANCEL\r
+0x19   0x0019  #       END OF MEDIUM\r
+0x1A   0x001A  #       SUBSTITUTE\r
+0x1B   0x001B  #       ESCAPE\r
+0x1C   0x001C  #       FILE SEPARATOR\r
+0x1D   0x001D  #       GROUP SEPARATOR\r
+0x1E   0x001E  #       RECORD SEPARATOR\r
+0x1F   0x001F  #       UNIT SEPARATOR\r
+0x20   0x0020  #       SPACE\r
+0x21   0x0021  #       EXCLAMATION MARK\r
+0x22   0x0022  #       QUOTATION MARK\r
+0x23   0x0023  #       NUMBER SIGN\r
+0x24   0x0024  #       DOLLAR SIGN\r
+0x25   0x0025  #       PERCENT SIGN\r
+0x26   0x0026  #       AMPERSAND\r
+0x27   0x0027  #       APOSTROPHE\r
+0x28   0x0028  #       LEFT PARENTHESIS\r
+0x29   0x0029  #       RIGHT PARENTHESIS\r
+0x2A   0x002A  #       ASTERISK\r
+0x2B   0x002B  #       PLUS SIGN\r
+0x2C   0x002C  #       COMMA\r
+0x2D   0x002D  #       HYPHEN-MINUS\r
+0x2E   0x002E  #       FULL STOP\r
+0x2F   0x002F  #       SOLIDUS\r
+0x30   0x0030  #       DIGIT ZERO\r
+0x31   0x0031  #       DIGIT ONE\r
+0x32   0x0032  #       DIGIT TWO\r
+0x33   0x0033  #       DIGIT THREE\r
+0x34   0x0034  #       DIGIT FOUR\r
+0x35   0x0035  #       DIGIT FIVE\r
+0x36   0x0036  #       DIGIT SIX\r
+0x37   0x0037  #       DIGIT SEVEN\r
+0x38   0x0038  #       DIGIT EIGHT\r
+0x39   0x0039  #       DIGIT NINE\r
+0x3A   0x003A  #       COLON\r
+0x3B   0x003B  #       SEMICOLON\r
+0x3C   0x003C  #       LESS-THAN SIGN\r
+0x3D   0x003D  #       EQUALS SIGN\r
+0x3E   0x003E  #       GREATER-THAN SIGN\r
+0x3F   0x003F  #       QUESTION MARK\r
+0x40   0x0040  #       COMMERCIAL AT\r
+0x41   0x0041  #       LATIN CAPITAL LETTER A\r
+0x42   0x0042  #       LATIN CAPITAL LETTER B\r
+0x43   0x0043  #       LATIN CAPITAL LETTER C\r
+0x44   0x0044  #       LATIN CAPITAL LETTER D\r
+0x45   0x0045  #       LATIN CAPITAL LETTER E\r
+0x46   0x0046  #       LATIN CAPITAL LETTER F\r
+0x47   0x0047  #       LATIN CAPITAL LETTER G\r
+0x48   0x0048  #       LATIN CAPITAL LETTER H\r
+0x49   0x0049  #       LATIN CAPITAL LETTER I\r
+0x4A   0x004A  #       LATIN CAPITAL LETTER J\r
+0x4B   0x004B  #       LATIN CAPITAL LETTER K\r
+0x4C   0x004C  #       LATIN CAPITAL LETTER L\r
+0x4D   0x004D  #       LATIN CAPITAL LETTER M\r
+0x4E   0x004E  #       LATIN CAPITAL LETTER N\r
+0x4F   0x004F  #       LATIN CAPITAL LETTER O\r
+0x50   0x0050  #       LATIN CAPITAL LETTER P\r
+0x51   0x0051  #       LATIN CAPITAL LETTER Q\r
+0x52   0x0052  #       LATIN CAPITAL LETTER R\r
+0x53   0x0053  #       LATIN CAPITAL LETTER S\r
+0x54   0x0054  #       LATIN CAPITAL LETTER T\r
+0x55   0x0055  #       LATIN CAPITAL LETTER U\r
+0x56   0x0056  #       LATIN CAPITAL LETTER V\r
+0x57   0x0057  #       LATIN CAPITAL LETTER W\r
+0x58   0x0058  #       LATIN CAPITAL LETTER X\r
+0x59   0x0059  #       LATIN CAPITAL LETTER Y\r
+0x5A   0x005A  #       LATIN CAPITAL LETTER Z\r
+0x5B   0x005B  #       LEFT SQUARE BRACKET\r
+0x5C   0x005C  #       REVERSE SOLIDUS\r
+0x5D   0x005D  #       RIGHT SQUARE BRACKET\r
+0x5E   0x005E  #       CIRCUMFLEX ACCENT\r
+0x5F   0x005F  #       LOW LINE\r
+0x60   0x0060  #       GRAVE ACCENT\r
+0x61   0x0061  #       LATIN SMALL LETTER A\r
+0x62   0x0062  #       LATIN SMALL LETTER B\r
+0x63   0x0063  #       LATIN SMALL LETTER C\r
+0x64   0x0064  #       LATIN SMALL LETTER D\r
+0x65   0x0065  #       LATIN SMALL LETTER E\r
+0x66   0x0066  #       LATIN SMALL LETTER F\r
+0x67   0x0067  #       LATIN SMALL LETTER G\r
+0x68   0x0068  #       LATIN SMALL LETTER H\r
+0x69   0x0069  #       LATIN SMALL LETTER I\r
+0x6A   0x006A  #       LATIN SMALL LETTER J\r
+0x6B   0x006B  #       LATIN SMALL LETTER K\r
+0x6C   0x006C  #       LATIN SMALL LETTER L\r
+0x6D   0x006D  #       LATIN SMALL LETTER M\r
+0x6E   0x006E  #       LATIN SMALL LETTER N\r
+0x6F   0x006F  #       LATIN SMALL LETTER O\r
+0x70   0x0070  #       LATIN SMALL LETTER P\r
+0x71   0x0071  #       LATIN SMALL LETTER Q\r
+0x72   0x0072  #       LATIN SMALL LETTER R\r
+0x73   0x0073  #       LATIN SMALL LETTER S\r
+0x74   0x0074  #       LATIN SMALL LETTER T\r
+0x75   0x0075  #       LATIN SMALL LETTER U\r
+0x76   0x0076  #       LATIN SMALL LETTER V\r
+0x77   0x0077  #       LATIN SMALL LETTER W\r
+0x78   0x0078  #       LATIN SMALL LETTER X\r
+0x79   0x0079  #       LATIN SMALL LETTER Y\r
+0x7A   0x007A  #       LATIN SMALL LETTER Z\r
+0x7B   0x007B  #       LEFT CURLY BRACKET\r
+0x7C   0x007C  #       VERTICAL LINE\r
+0x7D   0x007D  #       RIGHT CURLY BRACKET\r
+0x7E   0x007E  #       TILDE\r
+0x7F   0x007F  #       DELETE\r
+0x80   0x0080  #       <control>\r
+0x81   0x0081  #       <control>\r
+0x82   0x0082  #       <control>\r
+0x83   0x0083  #       <control>\r
+0x84   0x0084  #       <control>\r
+0x85   0x0085  #       <control>\r
+0x86   0x0086  #       <control>\r
+0x87   0x0087  #       <control>\r
+0x88   0x0088  #       <control>\r
+0x89   0x0089  #       <control>\r
+0x8A   0x008A  #       <control>\r
+0x8B   0x008B  #       <control>\r
+0x8C   0x008C  #       <control>\r
+0x8D   0x008D  #       <control>\r
+0x8E   0x008E  #       <control>\r
+0x8F   0x008F  #       <control>\r
+0x90   0x0090  #       <control>\r
+0x91   0x0091  #       <control>\r
+0x92   0x0092  #       <control>\r
+0x93   0x0093  #       <control>\r
+0x94   0x0094  #       <control>\r
+0x95   0x0095  #       <control>\r
+0x96   0x0096  #       <control>\r
+0x97   0x0097  #       <control>\r
+0x98   0x0098  #       <control>\r
+0x99   0x0099  #       <control>\r
+0x9A   0x009A  #       <control>\r
+0x9B   0x009B  #       <control>\r
+0x9C   0x009C  #       <control>\r
+0x9D   0x009D  #       <control>\r
+0x9E   0x009E  #       <control>\r
+0x9F   0x009F  #       <control>\r
+0xA0   0x00A0  #       NO-BREAK SPACE\r
+0xA1   0x1E02  #       LATIN CAPITAL LETTER B WITH DOT ABOVE\r
+0xA2   0x1E03  #       LATIN SMALL LETTER B WITH DOT ABOVE\r
+0xA3   0x00A3  #       POUND SIGN\r
+0xA4   0x010A  #       LATIN CAPITAL LETTER C WITH DOT ABOVE\r
+0xA5   0x010B  #       LATIN SMALL LETTER C WITH DOT ABOVE\r
+0xA6   0x1E0A  #       LATIN CAPITAL LETTER D WITH DOT ABOVE\r
+0xA7   0x00A7  #       SECTION SIGN\r
+0xA8   0x1E80  #       LATIN CAPITAL LETTER W WITH GRAVE\r
+0xA9   0x00A9  #       COPYRIGHT SIGN\r
+0xAA   0x1E82  #       LATIN CAPITAL LETTER W WITH ACUTE\r
+0xAB   0x1E0B  #       LATIN SMALL LETTER D WITH DOT ABOVE\r
+0xAC   0x1EF2  #       LATIN CAPITAL LETTER Y WITH GRAVE\r
+0xAD   0x00AD  #       SOFT HYPHEN\r
+0xAE   0x00AE  #       REGISTERED SIGN\r
+0xAF   0x0178  #       LATIN CAPITAL LETTER Y WITH DIAERESIS\r
+0xB0   0x1E1E  #       LATIN CAPITAL LETTER F WITH DOT ABOVE\r
+0xB1   0x1E1F  #       LATIN SMALL LETTER F WITH DOT ABOVE\r
+0xB2   0x0120  #       LATIN CAPITAL LETTER G WITH DOT ABOVE\r
+0xB3   0x0121  #       LATIN SMALL LETTER G WITH DOT ABOVE\r
+0xB4   0x1E40  #       LATIN CAPITAL LETTER M WITH DOT ABOVE\r
+0xB5   0x1E41  #       LATIN SMALL LETTER M WITH DOT ABOVE\r
+0xB6   0x00B6  #       PILCROW SIGN\r
+0xB7   0x1E56  #       LATIN CAPITAL LETTER P WITH DOT ABOVE\r
+0xB8   0x1E81  #       LATIN SMALL LETTER W WITH GRAVE\r
+0xB9   0x1E57  #       LATIN SMALL LETTER P WITH DOT ABOVE\r
+0xBA   0x1E83  #       LATIN SMALL LETTER W WITH ACUTE\r
+0xBB   0x1E60  #       LATIN CAPITAL LETTER S WITH DOT ABOVE\r
+0xBC   0x1EF3  #       LATIN SMALL LETTER Y WITH GRAVE\r
+0xBD   0x1E84  #       LATIN CAPITAL LETTER W WITH DIAERESIS\r
+0xBE   0x1E85  #       LATIN SMALL LETTER W WITH DIAERESIS\r
+0xBF   0x1E61  #       LATIN SMALL LETTER S WITH DOT ABOVE\r
+0xC0   0x00C0  #       LATIN CAPITAL LETTER A WITH GRAVE\r
+0xC1   0x00C1  #       LATIN CAPITAL LETTER A WITH ACUTE\r
+0xC2   0x00C2  #       LATIN CAPITAL LETTER A WITH CIRCUMFLEX\r
+0xC3   0x00C3  #       LATIN CAPITAL LETTER A WITH TILDE\r
+0xC4   0x00C4  #       LATIN CAPITAL LETTER A WITH DIAERESIS\r
+0xC5   0x00C5  #       LATIN CAPITAL LETTER A WITH RING ABOVE\r
+0xC6   0x00C6  #       LATIN CAPITAL LETTER AE\r
+0xC7   0x00C7  #       LATIN CAPITAL LETTER C WITH CEDILLA\r
+0xC8   0x00C8  #       LATIN CAPITAL LETTER E WITH GRAVE\r
+0xC9   0x00C9  #       LATIN CAPITAL LETTER E WITH ACUTE\r
+0xCA   0x00CA  #       LATIN CAPITAL LETTER E WITH CIRCUMFLEX\r
+0xCB   0x00CB  #       LATIN CAPITAL LETTER E WITH DIAERESIS\r
+0xCC   0x00CC  #       LATIN CAPITAL LETTER I WITH GRAVE\r
+0xCD   0x00CD  #       LATIN CAPITAL LETTER I WITH ACUTE\r
+0xCE   0x00CE  #       LATIN CAPITAL LETTER I WITH CIRCUMFLEX\r
+0xCF   0x00CF  #       LATIN CAPITAL LETTER I WITH DIAERESIS\r
+0xD0   0x0174  #       LATIN CAPITAL LETTER W WITH CIRCUMFLEX\r
+0xD1   0x00D1  #       LATIN CAPITAL LETTER N WITH TILDE\r
+0xD2   0x00D2  #       LATIN CAPITAL LETTER O WITH GRAVE\r
+0xD3   0x00D3  #       LATIN CAPITAL LETTER O WITH ACUTE\r
+0xD4   0x00D4  #       LATIN CAPITAL LETTER O WITH CIRCUMFLEX\r
+0xD5   0x00D5  #       LATIN CAPITAL LETTER O WITH TILDE\r
+0xD6   0x00D6  #       LATIN CAPITAL LETTER O WITH DIAERESIS\r
+0xD7   0x1E6A  #       LATIN CAPITAL LETTER T WITH DOT ABOVE\r
+0xD8   0x00D8  #       LATIN CAPITAL LETTER O WITH STROKE\r
+0xD9   0x00D9  #       LATIN CAPITAL LETTER U WITH GRAVE\r
+0xDA   0x00DA  #       LATIN CAPITAL LETTER U WITH ACUTE\r
+0xDB   0x00DB  #       LATIN CAPITAL LETTER U WITH CIRCUMFLEX\r
+0xDC   0x00DC  #       LATIN CAPITAL LETTER U WITH DIAERESIS\r
+0xDD   0x00DD  #       LATIN CAPITAL LETTER Y WITH ACUTE\r
+0xDE   0x0176  #       LATIN CAPITAL LETTER Y WITH CIRCUMFLEX\r
+0xDF   0x00DF  #       LATIN SMALL LETTER SHARP S\r
+0xE0   0x00E0  #       LATIN SMALL LETTER A WITH GRAVE\r
+0xE1   0x00E1  #       LATIN SMALL LETTER A WITH ACUTE\r
+0xE2   0x00E2  #       LATIN SMALL LETTER A WITH CIRCUMFLEX\r
+0xE3   0x00E3  #       LATIN SMALL LETTER A WITH TILDE\r
+0xE4   0x00E4  #       LATIN SMALL LETTER A WITH DIAERESIS\r
+0xE5   0x00E5  #       LATIN SMALL LETTER A WITH RING ABOVE\r
+0xE6   0x00E6  #       LATIN SMALL LETTER AE\r
+0xE7   0x00E7  #       LATIN SMALL LETTER C WITH CEDILLA\r
+0xE8   0x00E8  #       LATIN SMALL LETTER E WITH GRAVE\r
+0xE9   0x00E9  #       LATIN SMALL LETTER E WITH ACUTE\r
+0xEA   0x00EA  #       LATIN SMALL LETTER E WITH CIRCUMFLEX\r
+0xEB   0x00EB  #       LATIN SMALL LETTER E WITH DIAERESIS\r
+0xEC   0x00EC  #       LATIN SMALL LETTER I WITH GRAVE\r
+0xED   0x00ED  #       LATIN SMALL LETTER I WITH ACUTE\r
+0xEE   0x00EE  #       LATIN SMALL LETTER I WITH CIRCUMFLEX\r
+0xEF   0x00EF  #       LATIN SMALL LETTER I WITH DIAERESIS\r
+0xF0   0x0175  #       LATIN SMALL LETTER W WITH CIRCUMFLEX\r
+0xF1   0x00F1  #       LATIN SMALL LETTER N WITH TILDE\r
+0xF2   0x00F2  #       LATIN SMALL LETTER O WITH GRAVE\r
+0xF3   0x00F3  #       LATIN SMALL LETTER O WITH ACUTE\r
+0xF4   0x00F4  #       LATIN SMALL LETTER O WITH CIRCUMFLEX\r
+0xF5   0x00F5  #       LATIN SMALL LETTER O WITH TILDE\r
+0xF6   0x00F6  #       LATIN SMALL LETTER O WITH DIAERESIS\r
+0xF7   0x1E6B  #       LATIN SMALL LETTER T WITH DOT ABOVE\r
+0xF8   0x00F8  #       LATIN SMALL LETTER O WITH STROKE\r
+0xF9   0x00F9  #       LATIN SMALL LETTER U WITH GRAVE\r
+0xFA   0x00FA  #       LATIN SMALL LETTER U WITH ACUTE\r
+0xFB   0x00FB  #       LATIN SMALL LETTER U WITH CIRCUMFLEX\r
+0xFC   0x00FC  #       LATIN SMALL LETTER U WITH DIAERESIS\r
+0xFD   0x00FD  #       LATIN SMALL LETTER Y WITH ACUTE\r
+0xFE   0x0177  #       LATIN SMALL LETTER Y WITH CIRCUMFLEX\r
+0xFF   0x00FF  #       LATIN SMALL LETTER Y WITH DIAERESIS\r
+\r
diff --git a/data/iso-8859-15.txt b/data/iso-8859-15.txt
new file mode 100644 (file)
index 0000000..79b7990
--- /dev/null
@@ -0,0 +1,303 @@
+#\r
+#      Name:             ISO/IEC 8859-15:1999 to Unicode\r
+#      Unicode version:  3.0\r
+#      Table version:    1.0\r
+#      Table format:     Format A\r
+#      Date:             1999 July 27\r
+#      Authors:          Markus Kuhn <mkuhn@acm.org>\r
+#                        Ken Whistler <kenw@sybase.com>\r
+#\r
+#      Copyright (c) 1998 - 1999 Unicode, Inc.  All Rights reserved.\r
+#\r
+#      This file is provided as-is by Unicode, Inc. (The Unicode Consortium).\r
+#      No claims are made as to fitness for any particular purpose.  No\r
+#      warranties of any kind are expressed or implied.  The recipient\r
+#      agrees to determine applicability of information provided.  If this\r
+#      file has been provided on optical media by Unicode, Inc., the sole\r
+#      remedy for any claim will be exchange of defective media within 90\r
+#      days of receipt.\r
+#\r
+#      Unicode, Inc. hereby grants the right to freely use the information\r
+#      supplied in this file in the creation of products supporting the\r
+#      Unicode Standard, and to make copies of this file in any form for\r
+#      internal or external distribution as long as this notice remains\r
+#      attached.\r
+#\r
+#      General notes:\r
+#\r
+#      This table contains the data the Unicode Consortium has on how\r
+#       ISO/IEC 8859-15:1999 characters map into Unicode.\r
+#\r
+#      Format:  Three tab-separated columns\r
+#               Column #1 is the ISO/IEC 8859-15 code (in hex as 0xXX)\r
+#               Column #2 is the Unicode (in hex as 0xXXXX)\r
+#               Column #3 the Unicode name (follows a comment sign, '#')\r
+#\r
+#      The entries are in ISO/IEC 8859-15 order.\r
+#\r
+#      Version history\r
+#\r
+#      Updated versions of this file may be found in:\r
+#              <ftp://ftp.unicode.org/Public/MAPPINGS/>\r
+#\r
+#      Any comments or problems, contact <errata@unicode.org>\r
+#      Please note that <errata@unicode.org> is an archival address;\r
+#      notices will be checked, but do not expect an immediate response.\r
+#\r
+0x00   0x0000  #       NULL\r
+0x01   0x0001  #       START OF HEADING\r
+0x02   0x0002  #       START OF TEXT\r
+0x03   0x0003  #       END OF TEXT\r
+0x04   0x0004  #       END OF TRANSMISSION\r
+0x05   0x0005  #       ENQUIRY\r
+0x06   0x0006  #       ACKNOWLEDGE\r
+0x07   0x0007  #       BELL\r
+0x08   0x0008  #       BACKSPACE\r
+0x09   0x0009  #       HORIZONTAL TABULATION\r
+0x0A   0x000A  #       LINE FEED\r
+0x0B   0x000B  #       VERTICAL TABULATION\r
+0x0C   0x000C  #       FORM FEED\r
+0x0D   0x000D  #       CARRIAGE RETURN\r
+0x0E   0x000E  #       SHIFT OUT\r
+0x0F   0x000F  #       SHIFT IN\r
+0x10   0x0010  #       DATA LINK ESCAPE\r
+0x11   0x0011  #       DEVICE CONTROL ONE\r
+0x12   0x0012  #       DEVICE CONTROL TWO\r
+0x13   0x0013  #       DEVICE CONTROL THREE\r
+0x14   0x0014  #       DEVICE CONTROL FOUR\r
+0x15   0x0015  #       NEGATIVE ACKNOWLEDGE\r
+0x16   0x0016  #       SYNCHRONOUS IDLE\r
+0x17   0x0017  #       END OF TRANSMISSION BLOCK\r
+0x18   0x0018  #       CANCEL\r
+0x19   0x0019  #       END OF MEDIUM\r
+0x1A   0x001A  #       SUBSTITUTE\r
+0x1B   0x001B  #       ESCAPE\r
+0x1C   0x001C  #       FILE SEPARATOR\r
+0x1D   0x001D  #       GROUP SEPARATOR\r
+0x1E   0x001E  #       RECORD SEPARATOR\r
+0x1F   0x001F  #       UNIT SEPARATOR\r
+0x20   0x0020  #       SPACE\r
+0x21   0x0021  #       EXCLAMATION MARK\r
+0x22   0x0022  #       QUOTATION MARK\r
+0x23   0x0023  #       NUMBER SIGN\r
+0x24   0x0024  #       DOLLAR SIGN\r
+0x25   0x0025  #       PERCENT SIGN\r
+0x26   0x0026  #       AMPERSAND\r
+0x27   0x0027  #       APOSTROPHE\r
+0x28   0x0028  #       LEFT PARENTHESIS\r
+0x29   0x0029  #       RIGHT PARENTHESIS\r
+0x2A   0x002A  #       ASTERISK\r
+0x2B   0x002B  #       PLUS SIGN\r
+0x2C   0x002C  #       COMMA\r
+0x2D   0x002D  #       HYPHEN-MINUS\r
+0x2E   0x002E  #       FULL STOP\r
+0x2F   0x002F  #       SOLIDUS\r
+0x30   0x0030  #       DIGIT ZERO\r
+0x31   0x0031  #       DIGIT ONE\r
+0x32   0x0032  #       DIGIT TWO\r
+0x33   0x0033  #       DIGIT THREE\r
+0x34   0x0034  #       DIGIT FOUR\r
+0x35   0x0035  #       DIGIT FIVE\r
+0x36   0x0036  #       DIGIT SIX\r
+0x37   0x0037  #       DIGIT SEVEN\r
+0x38   0x0038  #       DIGIT EIGHT\r
+0x39   0x0039  #       DIGIT NINE\r
+0x3A   0x003A  #       COLON\r
+0x3B   0x003B  #       SEMICOLON\r
+0x3C   0x003C  #       LESS-THAN SIGN\r
+0x3D   0x003D  #       EQUALS SIGN\r
+0x3E   0x003E  #       GREATER-THAN SIGN\r
+0x3F   0x003F  #       QUESTION MARK\r
+0x40   0x0040  #       COMMERCIAL AT\r
+0x41   0x0041  #       LATIN CAPITAL LETTER A\r
+0x42   0x0042  #       LATIN CAPITAL LETTER B\r
+0x43   0x0043  #       LATIN CAPITAL LETTER C\r
+0x44   0x0044  #       LATIN CAPITAL LETTER D\r
+0x45   0x0045  #       LATIN CAPITAL LETTER E\r
+0x46   0x0046  #       LATIN CAPITAL LETTER F\r
+0x47   0x0047  #       LATIN CAPITAL LETTER G\r
+0x48   0x0048  #       LATIN CAPITAL LETTER H\r
+0x49   0x0049  #       LATIN CAPITAL LETTER I\r
+0x4A   0x004A  #       LATIN CAPITAL LETTER J\r
+0x4B   0x004B  #       LATIN CAPITAL LETTER K\r
+0x4C   0x004C  #       LATIN CAPITAL LETTER L\r
+0x4D   0x004D  #       LATIN CAPITAL LETTER M\r
+0x4E   0x004E  #       LATIN CAPITAL LETTER N\r
+0x4F   0x004F  #       LATIN CAPITAL LETTER O\r
+0x50   0x0050  #       LATIN CAPITAL LETTER P\r
+0x51   0x0051  #       LATIN CAPITAL LETTER Q\r
+0x52   0x0052  #       LATIN CAPITAL LETTER R\r
+0x53   0x0053  #       LATIN CAPITAL LETTER S\r
+0x54   0x0054  #       LATIN CAPITAL LETTER T\r
+0x55   0x0055  #       LATIN CAPITAL LETTER U\r
+0x56   0x0056  #       LATIN CAPITAL LETTER V\r
+0x57   0x0057  #       LATIN CAPITAL LETTER W\r
+0x58   0x0058  #       LATIN CAPITAL LETTER X\r
+0x59   0x0059  #       LATIN CAPITAL LETTER Y\r
+0x5A   0x005A  #       LATIN CAPITAL LETTER Z\r
+0x5B   0x005B  #       LEFT SQUARE BRACKET\r
+0x5C   0x005C  #       REVERSE SOLIDUS\r
+0x5D   0x005D  #       RIGHT SQUARE BRACKET\r
+0x5E   0x005E  #       CIRCUMFLEX ACCENT\r
+0x5F   0x005F  #       LOW LINE\r
+0x60   0x0060  #       GRAVE ACCENT\r
+0x61   0x0061  #       LATIN SMALL LETTER A\r
+0x62   0x0062  #       LATIN SMALL LETTER B\r
+0x63   0x0063  #       LATIN SMALL LETTER C\r
+0x64   0x0064  #       LATIN SMALL LETTER D\r
+0x65   0x0065  #       LATIN SMALL LETTER E\r
+0x66   0x0066  #       LATIN SMALL LETTER F\r
+0x67   0x0067  #       LATIN SMALL LETTER G\r
+0x68   0x0068  #       LATIN SMALL LETTER H\r
+0x69   0x0069  #       LATIN SMALL LETTER I\r
+0x6A   0x006A  #       LATIN SMALL LETTER J\r
+0x6B   0x006B  #       LATIN SMALL LETTER K\r
+0x6C   0x006C  #       LATIN SMALL LETTER L\r
+0x6D   0x006D  #       LATIN SMALL LETTER M\r
+0x6E   0x006E  #       LATIN SMALL LETTER N\r
+0x6F   0x006F  #       LATIN SMALL LETTER O\r
+0x70   0x0070  #       LATIN SMALL LETTER P\r
+0x71   0x0071  #       LATIN SMALL LETTER Q\r
+0x72   0x0072  #       LATIN SMALL LETTER R\r
+0x73   0x0073  #       LATIN SMALL LETTER S\r
+0x74   0x0074  #       LATIN SMALL LETTER T\r
+0x75   0x0075  #       LATIN SMALL LETTER U\r
+0x76   0x0076  #       LATIN SMALL LETTER V\r
+0x77   0x0077  #       LATIN SMALL LETTER W\r
+0x78   0x0078  #       LATIN SMALL LETTER X\r
+0x79   0x0079  #       LATIN SMALL LETTER Y\r
+0x7A   0x007A  #       LATIN SMALL LETTER Z\r
+0x7B   0x007B  #       LEFT CURLY BRACKET\r
+0x7C   0x007C  #       VERTICAL LINE\r
+0x7D   0x007D  #       RIGHT CURLY BRACKET\r
+0x7E   0x007E  #       TILDE\r
+0x7F   0x007F  #       DELETE\r
+0x80   0x0080  #       <control>\r
+0x81   0x0081  #       <control>\r
+0x82   0x0082  #       <control>\r
+0x83   0x0083  #       <control>\r
+0x84   0x0084  #       <control>\r
+0x85   0x0085  #       <control>\r
+0x86   0x0086  #       <control>\r
+0x87   0x0087  #       <control>\r
+0x88   0x0088  #       <control>\r
+0x89   0x0089  #       <control>\r
+0x8A   0x008A  #       <control>\r
+0x8B   0x008B  #       <control>\r
+0x8C   0x008C  #       <control>\r
+0x8D   0x008D  #       <control>\r
+0x8E   0x008E  #       <control>\r
+0x8F   0x008F  #       <control>\r
+0x90   0x0090  #       <control>\r
+0x91   0x0091  #       <control>\r
+0x92   0x0092  #       <control>\r
+0x93   0x0093  #       <control>\r
+0x94   0x0094  #       <control>\r
+0x95   0x0095  #       <control>\r
+0x96   0x0096  #       <control>\r
+0x97   0x0097  #       <control>\r
+0x98   0x0098  #       <control>\r
+0x99   0x0099  #       <control>\r
+0x9A   0x009A  #       <control>\r
+0x9B   0x009B  #       <control>\r
+0x9C   0x009C  #       <control>\r
+0x9D   0x009D  #       <control>\r
+0x9E   0x009E  #       <control>\r
+0x9F   0x009F  #       <control>\r
+0xA0   0x00A0  #       NO-BREAK SPACE\r
+0xA1   0x00A1  #       INVERTED EXCLAMATION MARK\r
+0xA2   0x00A2  #       CENT SIGN\r
+0xA3   0x00A3  #       POUND SIGN\r
+0xA4   0x20AC  #       EURO SIGN\r
+0xA5   0x00A5  #       YEN SIGN\r
+0xA6   0x0160  #       LATIN CAPITAL LETTER S WITH CARON\r
+0xA7   0x00A7  #       SECTION SIGN\r
+0xA8   0x0161  #       LATIN SMALL LETTER S WITH CARON\r
+0xA9   0x00A9  #       COPYRIGHT SIGN\r
+0xAA   0x00AA  #       FEMININE ORDINAL INDICATOR\r
+0xAB   0x00AB  #       LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xAC   0x00AC  #       NOT SIGN\r
+0xAD   0x00AD  #       SOFT HYPHEN\r
+0xAE   0x00AE  #       REGISTERED SIGN\r
+0xAF   0x00AF  #       MACRON\r
+0xB0   0x00B0  #       DEGREE SIGN\r
+0xB1   0x00B1  #       PLUS-MINUS SIGN\r
+0xB2   0x00B2  #       SUPERSCRIPT TWO\r
+0xB3   0x00B3  #       SUPERSCRIPT THREE\r
+0xB4   0x017D  #       LATIN CAPITAL LETTER Z WITH CARON\r
+0xB5   0x00B5  #       MICRO SIGN\r
+0xB6   0x00B6  #       PILCROW SIGN\r
+0xB7   0x00B7  #       MIDDLE DOT\r
+0xB8   0x017E  #       LATIN SMALL LETTER Z WITH CARON\r
+0xB9   0x00B9  #       SUPERSCRIPT ONE\r
+0xBA   0x00BA  #       MASCULINE ORDINAL INDICATOR\r
+0xBB   0x00BB  #       RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xBC   0x0152  #       LATIN CAPITAL LIGATURE OE\r
+0xBD   0x0153  #       LATIN SMALL LIGATURE OE\r
+0xBE   0x0178  #       LATIN CAPITAL LETTER Y WITH DIAERESIS\r
+0xBF   0x00BF  #       INVERTED QUESTION MARK\r
+0xC0   0x00C0  #       LATIN CAPITAL LETTER A WITH GRAVE\r
+0xC1   0x00C1  #       LATIN CAPITAL LETTER A WITH ACUTE\r
+0xC2   0x00C2  #       LATIN CAPITAL LETTER A WITH CIRCUMFLEX\r
+0xC3   0x00C3  #       LATIN CAPITAL LETTER A WITH TILDE\r
+0xC4   0x00C4  #       LATIN CAPITAL LETTER A WITH DIAERESIS\r
+0xC5   0x00C5  #       LATIN CAPITAL LETTER A WITH RING ABOVE\r
+0xC6   0x00C6  #       LATIN CAPITAL LETTER AE\r
+0xC7   0x00C7  #       LATIN CAPITAL LETTER C WITH CEDILLA\r
+0xC8   0x00C8  #       LATIN CAPITAL LETTER E WITH GRAVE\r
+0xC9   0x00C9  #       LATIN CAPITAL LETTER E WITH ACUTE\r
+0xCA   0x00CA  #       LATIN CAPITAL LETTER E WITH CIRCUMFLEX\r
+0xCB   0x00CB  #       LATIN CAPITAL LETTER E WITH DIAERESIS\r
+0xCC   0x00CC  #       LATIN CAPITAL LETTER I WITH GRAVE\r
+0xCD   0x00CD  #       LATIN CAPITAL LETTER I WITH ACUTE\r
+0xCE   0x00CE  #       LATIN CAPITAL LETTER I WITH CIRCUMFLEX\r
+0xCF   0x00CF  #       LATIN CAPITAL LETTER I WITH DIAERESIS\r
+0xD0   0x00D0  #       LATIN CAPITAL LETTER ETH\r
+0xD1   0x00D1  #       LATIN CAPITAL LETTER N WITH TILDE\r
+0xD2   0x00D2  #       LATIN CAPITAL LETTER O WITH GRAVE\r
+0xD3   0x00D3  #       LATIN CAPITAL LETTER O WITH ACUTE\r
+0xD4   0x00D4  #       LATIN CAPITAL LETTER O WITH CIRCUMFLEX\r
+0xD5   0x00D5  #       LATIN CAPITAL LETTER O WITH TILDE\r
+0xD6   0x00D6  #       LATIN CAPITAL LETTER O WITH DIAERESIS\r
+0xD7   0x00D7  #       MULTIPLICATION SIGN\r
+0xD8   0x00D8  #       LATIN CAPITAL LETTER O WITH STROKE\r
+0xD9   0x00D9  #       LATIN CAPITAL LETTER U WITH GRAVE\r
+0xDA   0x00DA  #       LATIN CAPITAL LETTER U WITH ACUTE\r
+0xDB   0x00DB  #       LATIN CAPITAL LETTER U WITH CIRCUMFLEX\r
+0xDC   0x00DC  #       LATIN CAPITAL LETTER U WITH DIAERESIS\r
+0xDD   0x00DD  #       LATIN CAPITAL LETTER Y WITH ACUTE\r
+0xDE   0x00DE  #       LATIN CAPITAL LETTER THORN\r
+0xDF   0x00DF  #       LATIN SMALL LETTER SHARP S\r
+0xE0   0x00E0  #       LATIN SMALL LETTER A WITH GRAVE\r
+0xE1   0x00E1  #       LATIN SMALL LETTER A WITH ACUTE\r
+0xE2   0x00E2  #       LATIN SMALL LETTER A WITH CIRCUMFLEX\r
+0xE3   0x00E3  #       LATIN SMALL LETTER A WITH TILDE\r
+0xE4   0x00E4  #       LATIN SMALL LETTER A WITH DIAERESIS\r
+0xE5   0x00E5  #       LATIN SMALL LETTER A WITH RING ABOVE\r
+0xE6   0x00E6  #       LATIN SMALL LETTER AE\r
+0xE7   0x00E7  #       LATIN SMALL LETTER C WITH CEDILLA\r
+0xE8   0x00E8  #       LATIN SMALL LETTER E WITH GRAVE\r
+0xE9   0x00E9  #       LATIN SMALL LETTER E WITH ACUTE\r
+0xEA   0x00EA  #       LATIN SMALL LETTER E WITH CIRCUMFLEX\r
+0xEB   0x00EB  #       LATIN SMALL LETTER E WITH DIAERESIS\r
+0xEC   0x00EC  #       LATIN SMALL LETTER I WITH GRAVE\r
+0xED   0x00ED  #       LATIN SMALL LETTER I WITH ACUTE\r
+0xEE   0x00EE  #       LATIN SMALL LETTER I WITH CIRCUMFLEX\r
+0xEF   0x00EF  #       LATIN SMALL LETTER I WITH DIAERESIS\r
+0xF0   0x00F0  #       LATIN SMALL LETTER ETH\r
+0xF1   0x00F1  #       LATIN SMALL LETTER N WITH TILDE\r
+0xF2   0x00F2  #       LATIN SMALL LETTER O WITH GRAVE\r
+0xF3   0x00F3  #       LATIN SMALL LETTER O WITH ACUTE\r
+0xF4   0x00F4  #       LATIN SMALL LETTER O WITH CIRCUMFLEX\r
+0xF5   0x00F5  #       LATIN SMALL LETTER O WITH TILDE\r
+0xF6   0x00F6  #       LATIN SMALL LETTER O WITH DIAERESIS\r
+0xF7   0x00F7  #       DIVISION SIGN\r
+0xF8   0x00F8  #       LATIN SMALL LETTER O WITH STROKE\r
+0xF9   0x00F9  #       LATIN SMALL LETTER U WITH GRAVE\r
+0xFA   0x00FA  #       LATIN SMALL LETTER U WITH ACUTE\r
+0xFB   0x00FB  #       LATIN SMALL LETTER U WITH CIRCUMFLEX\r
+0xFC   0x00FC  #       LATIN SMALL LETTER U WITH DIAERESIS\r
+0xFD   0x00FD  #       LATIN SMALL LETTER Y WITH ACUTE\r
+0xFE   0x00FE  #       LATIN SMALL LETTER THORN\r
+0xFF   0x00FF  #       LATIN SMALL LETTER Y WITH DIAERESIS\r
+\r
diff --git a/data/iso-8859-16.txt b/data/iso-8859-16.txt
new file mode 100644 (file)
index 0000000..b065bb8
--- /dev/null
@@ -0,0 +1,299 @@
+#\r
+#      Name:             ISO/IEC 8859-16:2001 to Unicode\r
+#      Unicode version:  3.0\r
+#      Table version:    1.0\r
+#      Table format:     Format A\r
+#      Date:             2001 July 26\r
+#      Authors:          Markus Kuhn <mkuhn@acm.org>\r
+#\r
+#      Copyright (c) 1999-2001 Unicode, Inc.  All Rights reserved.\r
+#\r
+#      This file is provided as-is by Unicode, Inc. (The Unicode Consortium).\r
+#      No claims are made as to fitness for any particular purpose.  No\r
+#      warranties of any kind are expressed or implied.  The recipient\r
+#      agrees to determine applicability of information provided.  If this\r
+#      file has been provided on optical media by Unicode, Inc., the sole\r
+#      remedy for any claim will be exchange of defective media within 90\r
+#      days of receipt.\r
+#\r
+#      Unicode, Inc. hereby grants the right to freely use the information\r
+#      supplied in this file in the creation of products supporting the\r
+#      Unicode Standard, and to make copies of this file in any form for\r
+#      internal or external distribution as long as this notice remains\r
+#      attached.\r
+#\r
+#      General notes:\r
+#\r
+#      This table contains the data the Unicode Consortium has on how\r
+#       ISO/IEC 8859-16:2001 characters map into Unicode.\r
+#\r
+#      Format:  Three tab-separated columns\r
+#               Column #1 is the ISO/IEC 8859-16 code (in hex as 0xXX)\r
+#               Column #2 is the Unicode (in hex as 0xXXXX)\r
+#               Column #3 the Unicode name (follows a comment sign, '#')\r
+#\r
+#      The entries are in ISO/IEC 8859-16 order.\r
+#\r
+#      Updated versions of this file may be found in:\r
+#              <ftp://ftp.unicode.org/Public/MAPPINGS/>\r
+#\r
+#      Any comments or problems, contact <errata@unicode.org>\r
+#      Please note that <errata@unicode.org> is an archival address;\r
+#      notices will be checked, but do not expect an immediate response.\r
+#\r
+0x00   0x0000  #       NULL\r
+0x01   0x0001  #       START OF HEADING\r
+0x02   0x0002  #       START OF TEXT\r
+0x03   0x0003  #       END OF TEXT\r
+0x04   0x0004  #       END OF TRANSMISSION\r
+0x05   0x0005  #       ENQUIRY\r
+0x06   0x0006  #       ACKNOWLEDGE\r
+0x07   0x0007  #       BELL\r
+0x08   0x0008  #       BACKSPACE\r
+0x09   0x0009  #       HORIZONTAL TABULATION\r
+0x0A   0x000A  #       LINE FEED\r
+0x0B   0x000B  #       VERTICAL TABULATION\r
+0x0C   0x000C  #       FORM FEED\r
+0x0D   0x000D  #       CARRIAGE RETURN\r
+0x0E   0x000E  #       SHIFT OUT\r
+0x0F   0x000F  #       SHIFT IN\r
+0x10   0x0010  #       DATA LINK ESCAPE\r
+0x11   0x0011  #       DEVICE CONTROL ONE\r
+0x12   0x0012  #       DEVICE CONTROL TWO\r
+0x13   0x0013  #       DEVICE CONTROL THREE\r
+0x14   0x0014  #       DEVICE CONTROL FOUR\r
+0x15   0x0015  #       NEGATIVE ACKNOWLEDGE\r
+0x16   0x0016  #       SYNCHRONOUS IDLE\r
+0x17   0x0017  #       END OF TRANSMISSION BLOCK\r
+0x18   0x0018  #       CANCEL\r
+0x19   0x0019  #       END OF MEDIUM\r
+0x1A   0x001A  #       SUBSTITUTE\r
+0x1B   0x001B  #       ESCAPE\r
+0x1C   0x001C  #       FILE SEPARATOR\r
+0x1D   0x001D  #       GROUP SEPARATOR\r
+0x1E   0x001E  #       RECORD SEPARATOR\r
+0x1F   0x001F  #       UNIT SEPARATOR\r
+0x20   0x0020  #       SPACE\r
+0x21   0x0021  #       EXCLAMATION MARK\r
+0x22   0x0022  #       QUOTATION MARK\r
+0x23   0x0023  #       NUMBER SIGN\r
+0x24   0x0024  #       DOLLAR SIGN\r
+0x25   0x0025  #       PERCENT SIGN\r
+0x26   0x0026  #       AMPERSAND\r
+0x27   0x0027  #       APOSTROPHE\r
+0x28   0x0028  #       LEFT PARENTHESIS\r
+0x29   0x0029  #       RIGHT PARENTHESIS\r
+0x2A   0x002A  #       ASTERISK\r
+0x2B   0x002B  #       PLUS SIGN\r
+0x2C   0x002C  #       COMMA\r
+0x2D   0x002D  #       HYPHEN-MINUS\r
+0x2E   0x002E  #       FULL STOP\r
+0x2F   0x002F  #       SOLIDUS\r
+0x30   0x0030  #       DIGIT ZERO\r
+0x31   0x0031  #       DIGIT ONE\r
+0x32   0x0032  #       DIGIT TWO\r
+0x33   0x0033  #       DIGIT THREE\r
+0x34   0x0034  #       DIGIT FOUR\r
+0x35   0x0035  #       DIGIT FIVE\r
+0x36   0x0036  #       DIGIT SIX\r
+0x37   0x0037  #       DIGIT SEVEN\r
+0x38   0x0038  #       DIGIT EIGHT\r
+0x39   0x0039  #       DIGIT NINE\r
+0x3A   0x003A  #       COLON\r
+0x3B   0x003B  #       SEMICOLON\r
+0x3C   0x003C  #       LESS-THAN SIGN\r
+0x3D   0x003D  #       EQUALS SIGN\r
+0x3E   0x003E  #       GREATER-THAN SIGN\r
+0x3F   0x003F  #       QUESTION MARK\r
+0x40   0x0040  #       COMMERCIAL AT\r
+0x41   0x0041  #       LATIN CAPITAL LETTER A\r
+0x42   0x0042  #       LATIN CAPITAL LETTER B\r
+0x43   0x0043  #       LATIN CAPITAL LETTER C\r
+0x44   0x0044  #       LATIN CAPITAL LETTER D\r
+0x45   0x0045  #       LATIN CAPITAL LETTER E\r
+0x46   0x0046  #       LATIN CAPITAL LETTER F\r
+0x47   0x0047  #       LATIN CAPITAL LETTER G\r
+0x48   0x0048  #       LATIN CAPITAL LETTER H\r
+0x49   0x0049  #       LATIN CAPITAL LETTER I\r
+0x4A   0x004A  #       LATIN CAPITAL LETTER J\r
+0x4B   0x004B  #       LATIN CAPITAL LETTER K\r
+0x4C   0x004C  #       LATIN CAPITAL LETTER L\r
+0x4D   0x004D  #       LATIN CAPITAL LETTER M\r
+0x4E   0x004E  #       LATIN CAPITAL LETTER N\r
+0x4F   0x004F  #       LATIN CAPITAL LETTER O\r
+0x50   0x0050  #       LATIN CAPITAL LETTER P\r
+0x51   0x0051  #       LATIN CAPITAL LETTER Q\r
+0x52   0x0052  #       LATIN CAPITAL LETTER R\r
+0x53   0x0053  #       LATIN CAPITAL LETTER S\r
+0x54   0x0054  #       LATIN CAPITAL LETTER T\r
+0x55   0x0055  #       LATIN CAPITAL LETTER U\r
+0x56   0x0056  #       LATIN CAPITAL LETTER V\r
+0x57   0x0057  #       LATIN CAPITAL LETTER W\r
+0x58   0x0058  #       LATIN CAPITAL LETTER X\r
+0x59   0x0059  #       LATIN CAPITAL LETTER Y\r
+0x5A   0x005A  #       LATIN CAPITAL LETTER Z\r
+0x5B   0x005B  #       LEFT SQUARE BRACKET\r
+0x5C   0x005C  #       REVERSE SOLIDUS\r
+0x5D   0x005D  #       RIGHT SQUARE BRACKET\r
+0x5E   0x005E  #       CIRCUMFLEX ACCENT\r
+0x5F   0x005F  #       LOW LINE\r
+0x60   0x0060  #       GRAVE ACCENT\r
+0x61   0x0061  #       LATIN SMALL LETTER A\r
+0x62   0x0062  #       LATIN SMALL LETTER B\r
+0x63   0x0063  #       LATIN SMALL LETTER C\r
+0x64   0x0064  #       LATIN SMALL LETTER D\r
+0x65   0x0065  #       LATIN SMALL LETTER E\r
+0x66   0x0066  #       LATIN SMALL LETTER F\r
+0x67   0x0067  #       LATIN SMALL LETTER G\r
+0x68   0x0068  #       LATIN SMALL LETTER H\r
+0x69   0x0069  #       LATIN SMALL LETTER I\r
+0x6A   0x006A  #       LATIN SMALL LETTER J\r
+0x6B   0x006B  #       LATIN SMALL LETTER K\r
+0x6C   0x006C  #       LATIN SMALL LETTER L\r
+0x6D   0x006D  #       LATIN SMALL LETTER M\r
+0x6E   0x006E  #       LATIN SMALL LETTER N\r
+0x6F   0x006F  #       LATIN SMALL LETTER O\r
+0x70   0x0070  #       LATIN SMALL LETTER P\r
+0x71   0x0071  #       LATIN SMALL LETTER Q\r
+0x72   0x0072  #       LATIN SMALL LETTER R\r
+0x73   0x0073  #       LATIN SMALL LETTER S\r
+0x74   0x0074  #       LATIN SMALL LETTER T\r
+0x75   0x0075  #       LATIN SMALL LETTER U\r
+0x76   0x0076  #       LATIN SMALL LETTER V\r
+0x77   0x0077  #       LATIN SMALL LETTER W\r
+0x78   0x0078  #       LATIN SMALL LETTER X\r
+0x79   0x0079  #       LATIN SMALL LETTER Y\r
+0x7A   0x007A  #       LATIN SMALL LETTER Z\r
+0x7B   0x007B  #       LEFT CURLY BRACKET\r
+0x7C   0x007C  #       VERTICAL LINE\r
+0x7D   0x007D  #       RIGHT CURLY BRACKET\r
+0x7E   0x007E  #       TILDE\r
+0x7F   0x007F  #       DELETE\r
+0x80   0x0080  #       <control>\r
+0x81   0x0081  #       <control>\r
+0x82   0x0082  #       <control>\r
+0x83   0x0083  #       <control>\r
+0x84   0x0084  #       <control>\r
+0x85   0x0085  #       <control>\r
+0x86   0x0086  #       <control>\r
+0x87   0x0087  #       <control>\r
+0x88   0x0088  #       <control>\r
+0x89   0x0089  #       <control>\r
+0x8A   0x008A  #       <control>\r
+0x8B   0x008B  #       <control>\r
+0x8C   0x008C  #       <control>\r
+0x8D   0x008D  #       <control>\r
+0x8E   0x008E  #       <control>\r
+0x8F   0x008F  #       <control>\r
+0x90   0x0090  #       <control>\r
+0x91   0x0091  #       <control>\r
+0x92   0x0092  #       <control>\r
+0x93   0x0093  #       <control>\r
+0x94   0x0094  #       <control>\r
+0x95   0x0095  #       <control>\r
+0x96   0x0096  #       <control>\r
+0x97   0x0097  #       <control>\r
+0x98   0x0098  #       <control>\r
+0x99   0x0099  #       <control>\r
+0x9A   0x009A  #       <control>\r
+0x9B   0x009B  #       <control>\r
+0x9C   0x009C  #       <control>\r
+0x9D   0x009D  #       <control>\r
+0x9E   0x009E  #       <control>\r
+0x9F   0x009F  #       <control>\r
+0xA0   0x00A0  #       NO-BREAK SPACE\r
+0xA1   0x0104  #       LATIN CAPITAL LETTER A WITH OGONEK\r
+0xA2   0x0105  #       LATIN SMALL LETTER A WITH OGONEK\r
+0xA3   0x0141  #       LATIN CAPITAL LETTER L WITH STROKE\r
+0xA4   0x20AC  #       EURO SIGN\r
+0xA5   0x201E  #       DOUBLE LOW-9 QUOTATION MARK\r
+0xA6   0x0160  #       LATIN CAPITAL LETTER S WITH CARON\r
+0xA7   0x00A7  #       SECTION SIGN\r
+0xA8   0x0161  #       LATIN SMALL LETTER S WITH CARON\r
+0xA9   0x00A9  #       COPYRIGHT SIGN\r
+0xAA   0x0218  #       LATIN CAPITAL LETTER S WITH COMMA BELOW\r
+0xAB   0x00AB  #       LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xAC   0x0179  #       LATIN CAPITAL LETTER Z WITH ACUTE\r
+0xAD   0x00AD  #       SOFT HYPHEN\r
+0xAE   0x017A  #       LATIN SMALL LETTER Z WITH ACUTE\r
+0xAF   0x017B  #       LATIN CAPITAL LETTER Z WITH DOT ABOVE\r
+0xB0   0x00B0  #       DEGREE SIGN\r
+0xB1   0x00B1  #       PLUS-MINUS SIGN\r
+0xB2   0x010C  #       LATIN CAPITAL LETTER C WITH CARON\r
+0xB3   0x0142  #       LATIN SMALL LETTER L WITH STROKE\r
+0xB4   0x017D  #       LATIN CAPITAL LETTER Z WITH CARON\r
+0xB5   0x201D  #       RIGHT DOUBLE QUOTATION MARK\r
+0xB6   0x00B6  #       PILCROW SIGN\r
+0xB7   0x00B7  #       MIDDLE DOT\r
+0xB8   0x017E  #       LATIN SMALL LETTER Z WITH CARON\r
+0xB9   0x010D  #       LATIN SMALL LETTER C WITH CARON\r
+0xBA   0x0219  #       LATIN SMALL LETTER S WITH COMMA BELOW\r
+0xBB   0x00BB  #       RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xBC   0x0152  #       LATIN CAPITAL LIGATURE OE\r
+0xBD   0x0153  #       LATIN SMALL LIGATURE OE\r
+0xBE   0x0178  #       LATIN CAPITAL LETTER Y WITH DIAERESIS\r
+0xBF   0x017C  #       LATIN SMALL LETTER Z WITH DOT ABOVE\r
+0xC0   0x00C0  #       LATIN CAPITAL LETTER A WITH GRAVE\r
+0xC1   0x00C1  #       LATIN CAPITAL LETTER A WITH ACUTE\r
+0xC2   0x00C2  #       LATIN CAPITAL LETTER A WITH CIRCUMFLEX\r
+0xC3   0x0102  #       LATIN CAPITAL LETTER A WITH BREVE\r
+0xC4   0x00C4  #       LATIN CAPITAL LETTER A WITH DIAERESIS\r
+0xC5   0x0106  #       LATIN CAPITAL LETTER C WITH ACUTE\r
+0xC6   0x00C6  #       LATIN CAPITAL LETTER AE\r
+0xC7   0x00C7  #       LATIN CAPITAL LETTER C WITH CEDILLA\r
+0xC8   0x00C8  #       LATIN CAPITAL LETTER E WITH GRAVE\r
+0xC9   0x00C9  #       LATIN CAPITAL LETTER E WITH ACUTE\r
+0xCA   0x00CA  #       LATIN CAPITAL LETTER E WITH CIRCUMFLEX\r
+0xCB   0x00CB  #       LATIN CAPITAL LETTER E WITH DIAERESIS\r
+0xCC   0x00CC  #       LATIN CAPITAL LETTER I WITH GRAVE\r
+0xCD   0x00CD  #       LATIN CAPITAL LETTER I WITH ACUTE\r
+0xCE   0x00CE  #       LATIN CAPITAL LETTER I WITH CIRCUMFLEX\r
+0xCF   0x00CF  #       LATIN CAPITAL LETTER I WITH DIAERESIS\r
+0xD0   0x0110  #       LATIN CAPITAL LETTER D WITH STROKE\r
+0xD1   0x0143  #       LATIN CAPITAL LETTER N WITH ACUTE\r
+0xD2   0x00D2  #       LATIN CAPITAL LETTER O WITH GRAVE\r
+0xD3   0x00D3  #       LATIN CAPITAL LETTER O WITH ACUTE\r
+0xD4   0x00D4  #       LATIN CAPITAL LETTER O WITH CIRCUMFLEX\r
+0xD5   0x0150  #       LATIN CAPITAL LETTER O WITH DOUBLE ACUTE\r
+0xD6   0x00D6  #       LATIN CAPITAL LETTER O WITH DIAERESIS\r
+0xD7   0x015A  #       LATIN CAPITAL LETTER S WITH ACUTE\r
+0xD8   0x0170  #       LATIN CAPITAL LETTER U WITH DOUBLE ACUTE\r
+0xD9   0x00D9  #       LATIN CAPITAL LETTER U WITH GRAVE\r
+0xDA   0x00DA  #       LATIN CAPITAL LETTER U WITH ACUTE\r
+0xDB   0x00DB  #       LATIN CAPITAL LETTER U WITH CIRCUMFLEX\r
+0xDC   0x00DC  #       LATIN CAPITAL LETTER U WITH DIAERESIS\r
+0xDD   0x0118  #       LATIN CAPITAL LETTER E WITH OGONEK\r
+0xDE   0x021A  #       LATIN CAPITAL LETTER T WITH COMMA BELOW\r
+0xDF   0x00DF  #       LATIN SMALL LETTER SHARP S\r
+0xE0   0x00E0  #       LATIN SMALL LETTER A WITH GRAVE\r
+0xE1   0x00E1  #       LATIN SMALL LETTER A WITH ACUTE\r
+0xE2   0x00E2  #       LATIN SMALL LETTER A WITH CIRCUMFLEX\r
+0xE3   0x0103  #       LATIN SMALL LETTER A WITH BREVE\r
+0xE4   0x00E4  #       LATIN SMALL LETTER A WITH DIAERESIS\r
+0xE5   0x0107  #       LATIN SMALL LETTER C WITH ACUTE\r
+0xE6   0x00E6  #       LATIN SMALL LETTER AE\r
+0xE7   0x00E7  #       LATIN SMALL LETTER C WITH CEDILLA\r
+0xE8   0x00E8  #       LATIN SMALL LETTER E WITH GRAVE\r
+0xE9   0x00E9  #       LATIN SMALL LETTER E WITH ACUTE\r
+0xEA   0x00EA  #       LATIN SMALL LETTER E WITH CIRCUMFLEX\r
+0xEB   0x00EB  #       LATIN SMALL LETTER E WITH DIAERESIS\r
+0xEC   0x00EC  #       LATIN SMALL LETTER I WITH GRAVE\r
+0xED   0x00ED  #       LATIN SMALL LETTER I WITH ACUTE\r
+0xEE   0x00EE  #       LATIN SMALL LETTER I WITH CIRCUMFLEX\r
+0xEF   0x00EF  #       LATIN SMALL LETTER I WITH DIAERESIS\r
+0xF0   0x0111  #       LATIN SMALL LETTER D WITH STROKE\r
+0xF1   0x0144  #       LATIN SMALL LETTER N WITH ACUTE\r
+0xF2   0x00F2  #       LATIN SMALL LETTER O WITH GRAVE\r
+0xF3   0x00F3  #       LATIN SMALL LETTER O WITH ACUTE\r
+0xF4   0x00F4  #       LATIN SMALL LETTER O WITH CIRCUMFLEX\r
+0xF5   0x0151  #       LATIN SMALL LETTER O WITH DOUBLE ACUTE\r
+0xF6   0x00F6  #       LATIN SMALL LETTER O WITH DIAERESIS\r
+0xF7   0x015B  #       LATIN SMALL LETTER S WITH ACUTE\r
+0xF8   0x0171  #       LATIN SMALL LETTER U WITH DOUBLE ACUTE\r
+0xF9   0x00F9  #       LATIN SMALL LETTER U WITH GRAVE\r
+0xFA   0x00FA  #       LATIN SMALL LETTER U WITH ACUTE\r
+0xFB   0x00FB  #       LATIN SMALL LETTER U WITH CIRCUMFLEX\r
+0xFC   0x00FC  #       LATIN SMALL LETTER U WITH DIAERESIS\r
+0xFD   0x0119  #       LATIN SMALL LETTER E WITH OGONEK\r
+0xFE   0x021B  #       LATIN SMALL LETTER T WITH COMMA BELOW\r
+0xFF   0x00FF  #       LATIN SMALL LETTER Y WITH DIAERESIS\r
diff --git a/data/iso-8859-2.txt b/data/iso-8859-2.txt
new file mode 100644 (file)
index 0000000..c3fe2ad
--- /dev/null
@@ -0,0 +1,303 @@
+#\r
+#      Name:             ISO 8859-2:1999 to Unicode\r
+#      Unicode version:  3.0\r
+#      Table version:    1.0\r
+#      Table format:     Format A\r
+#      Date:             1999 July 27\r
+#      Authors:          Ken Whistler <kenw@sybase.com>\r
+#\r
+#      Copyright (c) 1991-1999 Unicode, Inc.  All Rights reserved.\r
+#\r
+#      This file is provided as-is by Unicode, Inc. (The Unicode Consortium).\r
+#      No claims are made as to fitness for any particular purpose.  No\r
+#      warranties of any kind are expressed or implied.  The recipient\r
+#      agrees to determine applicability of information provided.  If this\r
+#      file has been provided on optical media by Unicode, Inc., the sole\r
+#      remedy for any claim will be exchange of defective media within 90\r
+#      days of receipt.\r
+#\r
+#      Unicode, Inc. hereby grants the right to freely use the information\r
+#      supplied in this file in the creation of products supporting the\r
+#      Unicode Standard, and to make copies of this file in any form for\r
+#      internal or external distribution as long as this notice remains\r
+#      attached.\r
+#\r
+#      General notes:\r
+#\r
+#      This table contains the data the Unicode Consortium has on how\r
+#       ISO/IEC 8859-2:1999 characters map into Unicode.\r
+#\r
+#      Format:  Three tab-separated columns\r
+#               Column #1 is the ISO/IEC 8859-2 code (in hex as 0xXX)\r
+#               Column #2 is the Unicode (in hex as 0xXXXX)\r
+#               Column #3 the Unicode name (follows a comment sign, '#')\r
+#\r
+#      The entries are in ISO/IEC 8859-2 order.\r
+#\r
+#      Version history\r
+#      1.0 version updates 0.1 version by adding mappings for all\r
+#      control characters.\r
+#\r
+#      Updated versions of this file may be found in:\r
+#              <ftp://ftp.unicode.org/Public/MAPPINGS/>\r
+#\r
+#      Any comments or problems, contact <errata@unicode.org>\r
+#      Please note that <errata@unicode.org> is an archival address;\r
+#      notices will be checked, but do not expect an immediate response.\r
+#\r
+0x00   0x0000  #       NULL\r
+0x01   0x0001  #       START OF HEADING\r
+0x02   0x0002  #       START OF TEXT\r
+0x03   0x0003  #       END OF TEXT\r
+0x04   0x0004  #       END OF TRANSMISSION\r
+0x05   0x0005  #       ENQUIRY\r
+0x06   0x0006  #       ACKNOWLEDGE\r
+0x07   0x0007  #       BELL\r
+0x08   0x0008  #       BACKSPACE\r
+0x09   0x0009  #       HORIZONTAL TABULATION\r
+0x0A   0x000A  #       LINE FEED\r
+0x0B   0x000B  #       VERTICAL TABULATION\r
+0x0C   0x000C  #       FORM FEED\r
+0x0D   0x000D  #       CARRIAGE RETURN\r
+0x0E   0x000E  #       SHIFT OUT\r
+0x0F   0x000F  #       SHIFT IN\r
+0x10   0x0010  #       DATA LINK ESCAPE\r
+0x11   0x0011  #       DEVICE CONTROL ONE\r
+0x12   0x0012  #       DEVICE CONTROL TWO\r
+0x13   0x0013  #       DEVICE CONTROL THREE\r
+0x14   0x0014  #       DEVICE CONTROL FOUR\r
+0x15   0x0015  #       NEGATIVE ACKNOWLEDGE\r
+0x16   0x0016  #       SYNCHRONOUS IDLE\r
+0x17   0x0017  #       END OF TRANSMISSION BLOCK\r
+0x18   0x0018  #       CANCEL\r
+0x19   0x0019  #       END OF MEDIUM\r
+0x1A   0x001A  #       SUBSTITUTE\r
+0x1B   0x001B  #       ESCAPE\r
+0x1C   0x001C  #       FILE SEPARATOR\r
+0x1D   0x001D  #       GROUP SEPARATOR\r
+0x1E   0x001E  #       RECORD SEPARATOR\r
+0x1F   0x001F  #       UNIT SEPARATOR\r
+0x20   0x0020  #       SPACE\r
+0x21   0x0021  #       EXCLAMATION MARK\r
+0x22   0x0022  #       QUOTATION MARK\r
+0x23   0x0023  #       NUMBER SIGN\r
+0x24   0x0024  #       DOLLAR SIGN\r
+0x25   0x0025  #       PERCENT SIGN\r
+0x26   0x0026  #       AMPERSAND\r
+0x27   0x0027  #       APOSTROPHE\r
+0x28   0x0028  #       LEFT PARENTHESIS\r
+0x29   0x0029  #       RIGHT PARENTHESIS\r
+0x2A   0x002A  #       ASTERISK\r
+0x2B   0x002B  #       PLUS SIGN\r
+0x2C   0x002C  #       COMMA\r
+0x2D   0x002D  #       HYPHEN-MINUS\r
+0x2E   0x002E  #       FULL STOP\r
+0x2F   0x002F  #       SOLIDUS\r
+0x30   0x0030  #       DIGIT ZERO\r
+0x31   0x0031  #       DIGIT ONE\r
+0x32   0x0032  #       DIGIT TWO\r
+0x33   0x0033  #       DIGIT THREE\r
+0x34   0x0034  #       DIGIT FOUR\r
+0x35   0x0035  #       DIGIT FIVE\r
+0x36   0x0036  #       DIGIT SIX\r
+0x37   0x0037  #       DIGIT SEVEN\r
+0x38   0x0038  #       DIGIT EIGHT\r
+0x39   0x0039  #       DIGIT NINE\r
+0x3A   0x003A  #       COLON\r
+0x3B   0x003B  #       SEMICOLON\r
+0x3C   0x003C  #       LESS-THAN SIGN\r
+0x3D   0x003D  #       EQUALS SIGN\r
+0x3E   0x003E  #       GREATER-THAN SIGN\r
+0x3F   0x003F  #       QUESTION MARK\r
+0x40   0x0040  #       COMMERCIAL AT\r
+0x41   0x0041  #       LATIN CAPITAL LETTER A\r
+0x42   0x0042  #       LATIN CAPITAL LETTER B\r
+0x43   0x0043  #       LATIN CAPITAL LETTER C\r
+0x44   0x0044  #       LATIN CAPITAL LETTER D\r
+0x45   0x0045  #       LATIN CAPITAL LETTER E\r
+0x46   0x0046  #       LATIN CAPITAL LETTER F\r
+0x47   0x0047  #       LATIN CAPITAL LETTER G\r
+0x48   0x0048  #       LATIN CAPITAL LETTER H\r
+0x49   0x0049  #       LATIN CAPITAL LETTER I\r
+0x4A   0x004A  #       LATIN CAPITAL LETTER J\r
+0x4B   0x004B  #       LATIN CAPITAL LETTER K\r
+0x4C   0x004C  #       LATIN CAPITAL LETTER L\r
+0x4D   0x004D  #       LATIN CAPITAL LETTER M\r
+0x4E   0x004E  #       LATIN CAPITAL LETTER N\r
+0x4F   0x004F  #       LATIN CAPITAL LETTER O\r
+0x50   0x0050  #       LATIN CAPITAL LETTER P\r
+0x51   0x0051  #       LATIN CAPITAL LETTER Q\r
+0x52   0x0052  #       LATIN CAPITAL LETTER R\r
+0x53   0x0053  #       LATIN CAPITAL LETTER S\r
+0x54   0x0054  #       LATIN CAPITAL LETTER T\r
+0x55   0x0055  #       LATIN CAPITAL LETTER U\r
+0x56   0x0056  #       LATIN CAPITAL LETTER V\r
+0x57   0x0057  #       LATIN CAPITAL LETTER W\r
+0x58   0x0058  #       LATIN CAPITAL LETTER X\r
+0x59   0x0059  #       LATIN CAPITAL LETTER Y\r
+0x5A   0x005A  #       LATIN CAPITAL LETTER Z\r
+0x5B   0x005B  #       LEFT SQUARE BRACKET\r
+0x5C   0x005C  #       REVERSE SOLIDUS\r
+0x5D   0x005D  #       RIGHT SQUARE BRACKET\r
+0x5E   0x005E  #       CIRCUMFLEX ACCENT\r
+0x5F   0x005F  #       LOW LINE\r
+0x60   0x0060  #       GRAVE ACCENT\r
+0x61   0x0061  #       LATIN SMALL LETTER A\r
+0x62   0x0062  #       LATIN SMALL LETTER B\r
+0x63   0x0063  #       LATIN SMALL LETTER C\r
+0x64   0x0064  #       LATIN SMALL LETTER D\r
+0x65   0x0065  #       LATIN SMALL LETTER E\r
+0x66   0x0066  #       LATIN SMALL LETTER F\r
+0x67   0x0067  #       LATIN SMALL LETTER G\r
+0x68   0x0068  #       LATIN SMALL LETTER H\r
+0x69   0x0069  #       LATIN SMALL LETTER I\r
+0x6A   0x006A  #       LATIN SMALL LETTER J\r
+0x6B   0x006B  #       LATIN SMALL LETTER K\r
+0x6C   0x006C  #       LATIN SMALL LETTER L\r
+0x6D   0x006D  #       LATIN SMALL LETTER M\r
+0x6E   0x006E  #       LATIN SMALL LETTER N\r
+0x6F   0x006F  #       LATIN SMALL LETTER O\r
+0x70   0x0070  #       LATIN SMALL LETTER P\r
+0x71   0x0071  #       LATIN SMALL LETTER Q\r
+0x72   0x0072  #       LATIN SMALL LETTER R\r
+0x73   0x0073  #       LATIN SMALL LETTER S\r
+0x74   0x0074  #       LATIN SMALL LETTER T\r
+0x75   0x0075  #       LATIN SMALL LETTER U\r
+0x76   0x0076  #       LATIN SMALL LETTER V\r
+0x77   0x0077  #       LATIN SMALL LETTER W\r
+0x78   0x0078  #       LATIN SMALL LETTER X\r
+0x79   0x0079  #       LATIN SMALL LETTER Y\r
+0x7A   0x007A  #       LATIN SMALL LETTER Z\r
+0x7B   0x007B  #       LEFT CURLY BRACKET\r
+0x7C   0x007C  #       VERTICAL LINE\r
+0x7D   0x007D  #       RIGHT CURLY BRACKET\r
+0x7E   0x007E  #       TILDE\r
+0x7F   0x007F  #       DELETE\r
+0x80   0x0080  #       <control>\r
+0x81   0x0081  #       <control>\r
+0x82   0x0082  #       <control>\r
+0x83   0x0083  #       <control>\r
+0x84   0x0084  #       <control>\r
+0x85   0x0085  #       <control>\r
+0x86   0x0086  #       <control>\r
+0x87   0x0087  #       <control>\r
+0x88   0x0088  #       <control>\r
+0x89   0x0089  #       <control>\r
+0x8A   0x008A  #       <control>\r
+0x8B   0x008B  #       <control>\r
+0x8C   0x008C  #       <control>\r
+0x8D   0x008D  #       <control>\r
+0x8E   0x008E  #       <control>\r
+0x8F   0x008F  #       <control>\r
+0x90   0x0090  #       <control>\r
+0x91   0x0091  #       <control>\r
+0x92   0x0092  #       <control>\r
+0x93   0x0093  #       <control>\r
+0x94   0x0094  #       <control>\r
+0x95   0x0095  #       <control>\r
+0x96   0x0096  #       <control>\r
+0x97   0x0097  #       <control>\r
+0x98   0x0098  #       <control>\r
+0x99   0x0099  #       <control>\r
+0x9A   0x009A  #       <control>\r
+0x9B   0x009B  #       <control>\r
+0x9C   0x009C  #       <control>\r
+0x9D   0x009D  #       <control>\r
+0x9E   0x009E  #       <control>\r
+0x9F   0x009F  #       <control>\r
+0xA0   0x00A0  #       NO-BREAK SPACE\r
+0xA1   0x0104  #       LATIN CAPITAL LETTER A WITH OGONEK\r
+0xA2   0x02D8  #       BREVE\r
+0xA3   0x0141  #       LATIN CAPITAL LETTER L WITH STROKE\r
+0xA4   0x00A4  #       CURRENCY SIGN\r
+0xA5   0x013D  #       LATIN CAPITAL LETTER L WITH CARON\r
+0xA6   0x015A  #       LATIN CAPITAL LETTER S WITH ACUTE\r
+0xA7   0x00A7  #       SECTION SIGN\r
+0xA8   0x00A8  #       DIAERESIS\r
+0xA9   0x0160  #       LATIN CAPITAL LETTER S WITH CARON\r
+0xAA   0x015E  #       LATIN CAPITAL LETTER S WITH CEDILLA\r
+0xAB   0x0164  #       LATIN CAPITAL LETTER T WITH CARON\r
+0xAC   0x0179  #       LATIN CAPITAL LETTER Z WITH ACUTE\r
+0xAD   0x00AD  #       SOFT HYPHEN\r
+0xAE   0x017D  #       LATIN CAPITAL LETTER Z WITH CARON\r
+0xAF   0x017B  #       LATIN CAPITAL LETTER Z WITH DOT ABOVE\r
+0xB0   0x00B0  #       DEGREE SIGN\r
+0xB1   0x0105  #       LATIN SMALL LETTER A WITH OGONEK\r
+0xB2   0x02DB  #       OGONEK\r
+0xB3   0x0142  #       LATIN SMALL LETTER L WITH STROKE\r
+0xB4   0x00B4  #       ACUTE ACCENT\r
+0xB5   0x013E  #       LATIN SMALL LETTER L WITH CARON\r
+0xB6   0x015B  #       LATIN SMALL LETTER S WITH ACUTE\r
+0xB7   0x02C7  #       CARON\r
+0xB8   0x00B8  #       CEDILLA\r
+0xB9   0x0161  #       LATIN SMALL LETTER S WITH CARON\r
+0xBA   0x015F  #       LATIN SMALL LETTER S WITH CEDILLA\r
+0xBB   0x0165  #       LATIN SMALL LETTER T WITH CARON\r
+0xBC   0x017A  #       LATIN SMALL LETTER Z WITH ACUTE\r
+0xBD   0x02DD  #       DOUBLE ACUTE ACCENT\r
+0xBE   0x017E  #       LATIN SMALL LETTER Z WITH CARON\r
+0xBF   0x017C  #       LATIN SMALL LETTER Z WITH DOT ABOVE\r
+0xC0   0x0154  #       LATIN CAPITAL LETTER R WITH ACUTE\r
+0xC1   0x00C1  #       LATIN CAPITAL LETTER A WITH ACUTE\r
+0xC2   0x00C2  #       LATIN CAPITAL LETTER A WITH CIRCUMFLEX\r
+0xC3   0x0102  #       LATIN CAPITAL LETTER A WITH BREVE\r
+0xC4   0x00C4  #       LATIN CAPITAL LETTER A WITH DIAERESIS\r
+0xC5   0x0139  #       LATIN CAPITAL LETTER L WITH ACUTE\r
+0xC6   0x0106  #       LATIN CAPITAL LETTER C WITH ACUTE\r
+0xC7   0x00C7  #       LATIN CAPITAL LETTER C WITH CEDILLA\r
+0xC8   0x010C  #       LATIN CAPITAL LETTER C WITH CARON\r
+0xC9   0x00C9  #       LATIN CAPITAL LETTER E WITH ACUTE\r
+0xCA   0x0118  #       LATIN CAPITAL LETTER E WITH OGONEK\r
+0xCB   0x00CB  #       LATIN CAPITAL LETTER E WITH DIAERESIS\r
+0xCC   0x011A  #       LATIN CAPITAL LETTER E WITH CARON\r
+0xCD   0x00CD  #       LATIN CAPITAL LETTER I WITH ACUTE\r
+0xCE   0x00CE  #       LATIN CAPITAL LETTER I WITH CIRCUMFLEX\r
+0xCF   0x010E  #       LATIN CAPITAL LETTER D WITH CARON\r
+0xD0   0x0110  #       LATIN CAPITAL LETTER D WITH STROKE\r
+0xD1   0x0143  #       LATIN CAPITAL LETTER N WITH ACUTE\r
+0xD2   0x0147  #       LATIN CAPITAL LETTER N WITH CARON\r
+0xD3   0x00D3  #       LATIN CAPITAL LETTER O WITH ACUTE\r
+0xD4   0x00D4  #       LATIN CAPITAL LETTER O WITH CIRCUMFLEX\r
+0xD5   0x0150  #       LATIN CAPITAL LETTER O WITH DOUBLE ACUTE\r
+0xD6   0x00D6  #       LATIN CAPITAL LETTER O WITH DIAERESIS\r
+0xD7   0x00D7  #       MULTIPLICATION SIGN\r
+0xD8   0x0158  #       LATIN CAPITAL LETTER R WITH CARON\r
+0xD9   0x016E  #       LATIN CAPITAL LETTER U WITH RING ABOVE\r
+0xDA   0x00DA  #       LATIN CAPITAL LETTER U WITH ACUTE\r
+0xDB   0x0170  #       LATIN CAPITAL LETTER U WITH DOUBLE ACUTE\r
+0xDC   0x00DC  #       LATIN CAPITAL LETTER U WITH DIAERESIS\r
+0xDD   0x00DD  #       LATIN CAPITAL LETTER Y WITH ACUTE\r
+0xDE   0x0162  #       LATIN CAPITAL LETTER T WITH CEDILLA\r
+0xDF   0x00DF  #       LATIN SMALL LETTER SHARP S\r
+0xE0   0x0155  #       LATIN SMALL LETTER R WITH ACUTE\r
+0xE1   0x00E1  #       LATIN SMALL LETTER A WITH ACUTE\r
+0xE2   0x00E2  #       LATIN SMALL LETTER A WITH CIRCUMFLEX\r
+0xE3   0x0103  #       LATIN SMALL LETTER A WITH BREVE\r
+0xE4   0x00E4  #       LATIN SMALL LETTER A WITH DIAERESIS\r
+0xE5   0x013A  #       LATIN SMALL LETTER L WITH ACUTE\r
+0xE6   0x0107  #       LATIN SMALL LETTER C WITH ACUTE\r
+0xE7   0x00E7  #       LATIN SMALL LETTER C WITH CEDILLA\r
+0xE8   0x010D  #       LATIN SMALL LETTER C WITH CARON\r
+0xE9   0x00E9  #       LATIN SMALL LETTER E WITH ACUTE\r
+0xEA   0x0119  #       LATIN SMALL LETTER E WITH OGONEK\r
+0xEB   0x00EB  #       LATIN SMALL LETTER E WITH DIAERESIS\r
+0xEC   0x011B  #       LATIN SMALL LETTER E WITH CARON\r
+0xED   0x00ED  #       LATIN SMALL LETTER I WITH ACUTE\r
+0xEE   0x00EE  #       LATIN SMALL LETTER I WITH CIRCUMFLEX\r
+0xEF   0x010F  #       LATIN SMALL LETTER D WITH CARON\r
+0xF0   0x0111  #       LATIN SMALL LETTER D WITH STROKE\r
+0xF1   0x0144  #       LATIN SMALL LETTER N WITH ACUTE\r
+0xF2   0x0148  #       LATIN SMALL LETTER N WITH CARON\r
+0xF3   0x00F3  #       LATIN SMALL LETTER O WITH ACUTE\r
+0xF4   0x00F4  #       LATIN SMALL LETTER O WITH CIRCUMFLEX\r
+0xF5   0x0151  #       LATIN SMALL LETTER O WITH DOUBLE ACUTE\r
+0xF6   0x00F6  #       LATIN SMALL LETTER O WITH DIAERESIS\r
+0xF7   0x00F7  #       DIVISION SIGN\r
+0xF8   0x0159  #       LATIN SMALL LETTER R WITH CARON\r
+0xF9   0x016F  #       LATIN SMALL LETTER U WITH RING ABOVE\r
+0xFA   0x00FA  #       LATIN SMALL LETTER U WITH ACUTE\r
+0xFB   0x0171  #       LATIN SMALL LETTER U WITH DOUBLE ACUTE\r
+0xFC   0x00FC  #       LATIN SMALL LETTER U WITH DIAERESIS\r
+0xFD   0x00FD  #       LATIN SMALL LETTER Y WITH ACUTE\r
+0xFE   0x0163  #       LATIN SMALL LETTER T WITH CEDILLA\r
+0xFF   0x02D9  #       DOT ABOVE\r
diff --git a/data/iso-8859-3.txt b/data/iso-8859-3.txt
new file mode 100644 (file)
index 0000000..9e46190
--- /dev/null
@@ -0,0 +1,296 @@
+#\r
+#      Name:             ISO/IEC 8859-3:1999 to Unicode\r
+#      Unicode version:  3.0\r
+#      Table version:    1.0\r
+#      Table format:     Format A\r
+#      Date:             1999 July 27\r
+#      Authors:          Ken Whistler <kenw@sybase.com>\r
+#\r
+#      Copyright (c) 1991-1999 Unicode, Inc.  All Rights reserved.\r
+#\r
+#      This file is provided as-is by Unicode, Inc. (The Unicode Consortium).\r
+#      No claims are made as to fitness for any particular purpose.  No\r
+#      warranties of any kind are expressed or implied.  The recipient\r
+#      agrees to determine applicability of information provided.  If this\r
+#      file has been provided on optical media by Unicode, Inc., the sole\r
+#      remedy for any claim will be exchange of defective media within 90\r
+#      days of receipt.\r
+#\r
+#      Unicode, Inc. hereby grants the right to freely use the information\r
+#      supplied in this file in the creation of products supporting the\r
+#      Unicode Standard, and to make copies of this file in any form for\r
+#      internal or external distribution as long as this notice remains\r
+#      attached.\r
+#\r
+#      General notes:\r
+#\r
+#      This table contains the data the Unicode Consortium has on how\r
+#       ISO/IEC 8859-3:1999 characters map into Unicode.\r
+#\r
+#      Format:  Three tab-separated columns\r
+#               Column #1 is the ISO/IEC 8859-3 code (in hex as 0xXX)\r
+#               Column #2 is the Unicode (in hex as 0xXXXX)\r
+#               Column #3 the Unicode name (follows a comment sign, '#')\r
+#\r
+#      The entries are in ISO/IEC 8859-3 order.\r
+#\r
+#      Version history\r
+#      1.0 version updates 0.1 version by adding mappings for all\r
+#      control characters.\r
+#\r
+#      Updated versions of this file may be found in:\r
+#              <ftp://ftp.unicode.org/Public/MAPPINGS/>\r
+#\r
+#      Any comments or problems, contact <errata@unicode.org>\r
+#      Please note that <errata@unicode.org> is an archival address;\r
+#      notices will be checked, but do not expect an immediate response.\r
+#\r
+0x00   0x0000  #       NULL\r
+0x01   0x0001  #       START OF HEADING\r
+0x02   0x0002  #       START OF TEXT\r
+0x03   0x0003  #       END OF TEXT\r
+0x04   0x0004  #       END OF TRANSMISSION\r
+0x05   0x0005  #       ENQUIRY\r
+0x06   0x0006  #       ACKNOWLEDGE\r
+0x07   0x0007  #       BELL\r
+0x08   0x0008  #       BACKSPACE\r
+0x09   0x0009  #       HORIZONTAL TABULATION\r
+0x0A   0x000A  #       LINE FEED\r
+0x0B   0x000B  #       VERTICAL TABULATION\r
+0x0C   0x000C  #       FORM FEED\r
+0x0D   0x000D  #       CARRIAGE RETURN\r
+0x0E   0x000E  #       SHIFT OUT\r
+0x0F   0x000F  #       SHIFT IN\r
+0x10   0x0010  #       DATA LINK ESCAPE\r
+0x11   0x0011  #       DEVICE CONTROL ONE\r
+0x12   0x0012  #       DEVICE CONTROL TWO\r
+0x13   0x0013  #       DEVICE CONTROL THREE\r
+0x14   0x0014  #       DEVICE CONTROL FOUR\r
+0x15   0x0015  #       NEGATIVE ACKNOWLEDGE\r
+0x16   0x0016  #       SYNCHRONOUS IDLE\r
+0x17   0x0017  #       END OF TRANSMISSION BLOCK\r
+0x18   0x0018  #       CANCEL\r
+0x19   0x0019  #       END OF MEDIUM\r
+0x1A   0x001A  #       SUBSTITUTE\r
+0x1B   0x001B  #       ESCAPE\r
+0x1C   0x001C  #       FILE SEPARATOR\r
+0x1D   0x001D  #       GROUP SEPARATOR\r
+0x1E   0x001E  #       RECORD SEPARATOR\r
+0x1F   0x001F  #       UNIT SEPARATOR\r
+0x20   0x0020  #       SPACE\r
+0x21   0x0021  #       EXCLAMATION MARK\r
+0x22   0x0022  #       QUOTATION MARK\r
+0x23   0x0023  #       NUMBER SIGN\r
+0x24   0x0024  #       DOLLAR SIGN\r
+0x25   0x0025  #       PERCENT SIGN\r
+0x26   0x0026  #       AMPERSAND\r
+0x27   0x0027  #       APOSTROPHE\r
+0x28   0x0028  #       LEFT PARENTHESIS\r
+0x29   0x0029  #       RIGHT PARENTHESIS\r
+0x2A   0x002A  #       ASTERISK\r
+0x2B   0x002B  #       PLUS SIGN\r
+0x2C   0x002C  #       COMMA\r
+0x2D   0x002D  #       HYPHEN-MINUS\r
+0x2E   0x002E  #       FULL STOP\r
+0x2F   0x002F  #       SOLIDUS\r
+0x30   0x0030  #       DIGIT ZERO\r
+0x31   0x0031  #       DIGIT ONE\r
+0x32   0x0032  #       DIGIT TWO\r
+0x33   0x0033  #       DIGIT THREE\r
+0x34   0x0034  #       DIGIT FOUR\r
+0x35   0x0035  #       DIGIT FIVE\r
+0x36   0x0036  #       DIGIT SIX\r
+0x37   0x0037  #       DIGIT SEVEN\r
+0x38   0x0038  #       DIGIT EIGHT\r
+0x39   0x0039  #       DIGIT NINE\r
+0x3A   0x003A  #       COLON\r
+0x3B   0x003B  #       SEMICOLON\r
+0x3C   0x003C  #       LESS-THAN SIGN\r
+0x3D   0x003D  #       EQUALS SIGN\r
+0x3E   0x003E  #       GREATER-THAN SIGN\r
+0x3F   0x003F  #       QUESTION MARK\r
+0x40   0x0040  #       COMMERCIAL AT\r
+0x41   0x0041  #       LATIN CAPITAL LETTER A\r
+0x42   0x0042  #       LATIN CAPITAL LETTER B\r
+0x43   0x0043  #       LATIN CAPITAL LETTER C\r
+0x44   0x0044  #       LATIN CAPITAL LETTER D\r
+0x45   0x0045  #       LATIN CAPITAL LETTER E\r
+0x46   0x0046  #       LATIN CAPITAL LETTER F\r
+0x47   0x0047  #       LATIN CAPITAL LETTER G\r
+0x48   0x0048  #       LATIN CAPITAL LETTER H\r
+0x49   0x0049  #       LATIN CAPITAL LETTER I\r
+0x4A   0x004A  #       LATIN CAPITAL LETTER J\r
+0x4B   0x004B  #       LATIN CAPITAL LETTER K\r
+0x4C   0x004C  #       LATIN CAPITAL LETTER L\r
+0x4D   0x004D  #       LATIN CAPITAL LETTER M\r
+0x4E   0x004E  #       LATIN CAPITAL LETTER N\r
+0x4F   0x004F  #       LATIN CAPITAL LETTER O\r
+0x50   0x0050  #       LATIN CAPITAL LETTER P\r
+0x51   0x0051  #       LATIN CAPITAL LETTER Q\r
+0x52   0x0052  #       LATIN CAPITAL LETTER R\r
+0x53   0x0053  #       LATIN CAPITAL LETTER S\r
+0x54   0x0054  #       LATIN CAPITAL LETTER T\r
+0x55   0x0055  #       LATIN CAPITAL LETTER U\r
+0x56   0x0056  #       LATIN CAPITAL LETTER V\r
+0x57   0x0057  #       LATIN CAPITAL LETTER W\r
+0x58   0x0058  #       LATIN CAPITAL LETTER X\r
+0x59   0x0059  #       LATIN CAPITAL LETTER Y\r
+0x5A   0x005A  #       LATIN CAPITAL LETTER Z\r
+0x5B   0x005B  #       LEFT SQUARE BRACKET\r
+0x5C   0x005C  #       REVERSE SOLIDUS\r
+0x5D   0x005D  #       RIGHT SQUARE BRACKET\r
+0x5E   0x005E  #       CIRCUMFLEX ACCENT\r
+0x5F   0x005F  #       LOW LINE\r
+0x60   0x0060  #       GRAVE ACCENT\r
+0x61   0x0061  #       LATIN SMALL LETTER A\r
+0x62   0x0062  #       LATIN SMALL LETTER B\r
+0x63   0x0063  #       LATIN SMALL LETTER C\r
+0x64   0x0064  #       LATIN SMALL LETTER D\r
+0x65   0x0065  #       LATIN SMALL LETTER E\r
+0x66   0x0066  #       LATIN SMALL LETTER F\r
+0x67   0x0067  #       LATIN SMALL LETTER G\r
+0x68   0x0068  #       LATIN SMALL LETTER H\r
+0x69   0x0069  #       LATIN SMALL LETTER I\r
+0x6A   0x006A  #       LATIN SMALL LETTER J\r
+0x6B   0x006B  #       LATIN SMALL LETTER K\r
+0x6C   0x006C  #       LATIN SMALL LETTER L\r
+0x6D   0x006D  #       LATIN SMALL LETTER M\r
+0x6E   0x006E  #       LATIN SMALL LETTER N\r
+0x6F   0x006F  #       LATIN SMALL LETTER O\r
+0x70   0x0070  #       LATIN SMALL LETTER P\r
+0x71   0x0071  #       LATIN SMALL LETTER Q\r
+0x72   0x0072  #       LATIN SMALL LETTER R\r
+0x73   0x0073  #       LATIN SMALL LETTER S\r
+0x74   0x0074  #       LATIN SMALL LETTER T\r
+0x75   0x0075  #       LATIN SMALL LETTER U\r
+0x76   0x0076  #       LATIN SMALL LETTER V\r
+0x77   0x0077  #       LATIN SMALL LETTER W\r
+0x78   0x0078  #       LATIN SMALL LETTER X\r
+0x79   0x0079  #       LATIN SMALL LETTER Y\r
+0x7A   0x007A  #       LATIN SMALL LETTER Z\r
+0x7B   0x007B  #       LEFT CURLY BRACKET\r
+0x7C   0x007C  #       VERTICAL LINE\r
+0x7D   0x007D  #       RIGHT CURLY BRACKET\r
+0x7E   0x007E  #       TILDE\r
+0x7F   0x007F  #       DELETE\r
+0x80   0x0080  #       <control>\r
+0x81   0x0081  #       <control>\r
+0x82   0x0082  #       <control>\r
+0x83   0x0083  #       <control>\r
+0x84   0x0084  #       <control>\r
+0x85   0x0085  #       <control>\r
+0x86   0x0086  #       <control>\r
+0x87   0x0087  #       <control>\r
+0x88   0x0088  #       <control>\r
+0x89   0x0089  #       <control>\r
+0x8A   0x008A  #       <control>\r
+0x8B   0x008B  #       <control>\r
+0x8C   0x008C  #       <control>\r
+0x8D   0x008D  #       <control>\r
+0x8E   0x008E  #       <control>\r
+0x8F   0x008F  #       <control>\r
+0x90   0x0090  #       <control>\r
+0x91   0x0091  #       <control>\r
+0x92   0x0092  #       <control>\r
+0x93   0x0093  #       <control>\r
+0x94   0x0094  #       <control>\r
+0x95   0x0095  #       <control>\r
+0x96   0x0096  #       <control>\r
+0x97   0x0097  #       <control>\r
+0x98   0x0098  #       <control>\r
+0x99   0x0099  #       <control>\r
+0x9A   0x009A  #       <control>\r
+0x9B   0x009B  #       <control>\r
+0x9C   0x009C  #       <control>\r
+0x9D   0x009D  #       <control>\r
+0x9E   0x009E  #       <control>\r
+0x9F   0x009F  #       <control>\r
+0xA0   0x00A0  #       NO-BREAK SPACE\r
+0xA1   0x0126  #       LATIN CAPITAL LETTER H WITH STROKE\r
+0xA2   0x02D8  #       BREVE\r
+0xA3   0x00A3  #       POUND SIGN\r
+0xA4   0x00A4  #       CURRENCY SIGN\r
+0xA6   0x0124  #       LATIN CAPITAL LETTER H WITH CIRCUMFLEX\r
+0xA7   0x00A7  #       SECTION SIGN\r
+0xA8   0x00A8  #       DIAERESIS\r
+0xA9   0x0130  #       LATIN CAPITAL LETTER I WITH DOT ABOVE\r
+0xAA   0x015E  #       LATIN CAPITAL LETTER S WITH CEDILLA\r
+0xAB   0x011E  #       LATIN CAPITAL LETTER G WITH BREVE\r
+0xAC   0x0134  #       LATIN CAPITAL LETTER J WITH CIRCUMFLEX\r
+0xAD   0x00AD  #       SOFT HYPHEN\r
+0xAF   0x017B  #       LATIN CAPITAL LETTER Z WITH DOT ABOVE\r
+0xB0   0x00B0  #       DEGREE SIGN\r
+0xB1   0x0127  #       LATIN SMALL LETTER H WITH STROKE\r
+0xB2   0x00B2  #       SUPERSCRIPT TWO\r
+0xB3   0x00B3  #       SUPERSCRIPT THREE\r
+0xB4   0x00B4  #       ACUTE ACCENT\r
+0xB5   0x00B5  #       MICRO SIGN\r
+0xB6   0x0125  #       LATIN SMALL LETTER H WITH CIRCUMFLEX\r
+0xB7   0x00B7  #       MIDDLE DOT\r
+0xB8   0x00B8  #       CEDILLA\r
+0xB9   0x0131  #       LATIN SMALL LETTER DOTLESS I\r
+0xBA   0x015F  #       LATIN SMALL LETTER S WITH CEDILLA\r
+0xBB   0x011F  #       LATIN SMALL LETTER G WITH BREVE\r
+0xBC   0x0135  #       LATIN SMALL LETTER J WITH CIRCUMFLEX\r
+0xBD   0x00BD  #       VULGAR FRACTION ONE HALF\r
+0xBF   0x017C  #       LATIN SMALL LETTER Z WITH DOT ABOVE\r
+0xC0   0x00C0  #       LATIN CAPITAL LETTER A WITH GRAVE\r
+0xC1   0x00C1  #       LATIN CAPITAL LETTER A WITH ACUTE\r
+0xC2   0x00C2  #       LATIN CAPITAL LETTER A WITH CIRCUMFLEX\r
+0xC4   0x00C4  #       LATIN CAPITAL LETTER A WITH DIAERESIS\r
+0xC5   0x010A  #       LATIN CAPITAL LETTER C WITH DOT ABOVE\r
+0xC6   0x0108  #       LATIN CAPITAL LETTER C WITH CIRCUMFLEX\r
+0xC7   0x00C7  #       LATIN CAPITAL LETTER C WITH CEDILLA\r
+0xC8   0x00C8  #       LATIN CAPITAL LETTER E WITH GRAVE\r
+0xC9   0x00C9  #       LATIN CAPITAL LETTER E WITH ACUTE\r
+0xCA   0x00CA  #       LATIN CAPITAL LETTER E WITH CIRCUMFLEX\r
+0xCB   0x00CB  #       LATIN CAPITAL LETTER E WITH DIAERESIS\r
+0xCC   0x00CC  #       LATIN CAPITAL LETTER I WITH GRAVE\r
+0xCD   0x00CD  #       LATIN CAPITAL LETTER I WITH ACUTE\r
+0xCE   0x00CE  #       LATIN CAPITAL LETTER I WITH CIRCUMFLEX\r
+0xCF   0x00CF  #       LATIN CAPITAL LETTER I WITH DIAERESIS\r
+0xD1   0x00D1  #       LATIN CAPITAL LETTER N WITH TILDE\r
+0xD2   0x00D2  #       LATIN CAPITAL LETTER O WITH GRAVE\r
+0xD3   0x00D3  #       LATIN CAPITAL LETTER O WITH ACUTE\r
+0xD4   0x00D4  #       LATIN CAPITAL LETTER O WITH CIRCUMFLEX\r
+0xD5   0x0120  #       LATIN CAPITAL LETTER G WITH DOT ABOVE\r
+0xD6   0x00D6  #       LATIN CAPITAL LETTER O WITH DIAERESIS\r
+0xD7   0x00D7  #       MULTIPLICATION SIGN\r
+0xD8   0x011C  #       LATIN CAPITAL LETTER G WITH CIRCUMFLEX\r
+0xD9   0x00D9  #       LATIN CAPITAL LETTER U WITH GRAVE\r
+0xDA   0x00DA  #       LATIN CAPITAL LETTER U WITH ACUTE\r
+0xDB   0x00DB  #       LATIN CAPITAL LETTER U WITH CIRCUMFLEX\r
+0xDC   0x00DC  #       LATIN CAPITAL LETTER U WITH DIAERESIS\r
+0xDD   0x016C  #       LATIN CAPITAL LETTER U WITH BREVE\r
+0xDE   0x015C  #       LATIN CAPITAL LETTER S WITH CIRCUMFLEX\r
+0xDF   0x00DF  #       LATIN SMALL LETTER SHARP S\r
+0xE0   0x00E0  #       LATIN SMALL LETTER A WITH GRAVE\r
+0xE1   0x00E1  #       LATIN SMALL LETTER A WITH ACUTE\r
+0xE2   0x00E2  #       LATIN SMALL LETTER A WITH CIRCUMFLEX\r
+0xE4   0x00E4  #       LATIN SMALL LETTER A WITH DIAERESIS\r
+0xE5   0x010B  #       LATIN SMALL LETTER C WITH DOT ABOVE\r
+0xE6   0x0109  #       LATIN SMALL LETTER C WITH CIRCUMFLEX\r
+0xE7   0x00E7  #       LATIN SMALL LETTER C WITH CEDILLA\r
+0xE8   0x00E8  #       LATIN SMALL LETTER E WITH GRAVE\r
+0xE9   0x00E9  #       LATIN SMALL LETTER E WITH ACUTE\r
+0xEA   0x00EA  #       LATIN SMALL LETTER E WITH CIRCUMFLEX\r
+0xEB   0x00EB  #       LATIN SMALL LETTER E WITH DIAERESIS\r
+0xEC   0x00EC  #       LATIN SMALL LETTER I WITH GRAVE\r
+0xED   0x00ED  #       LATIN SMALL LETTER I WITH ACUTE\r
+0xEE   0x00EE  #       LATIN SMALL LETTER I WITH CIRCUMFLEX\r
+0xEF   0x00EF  #       LATIN SMALL LETTER I WITH DIAERESIS\r
+0xF1   0x00F1  #       LATIN SMALL LETTER N WITH TILDE\r
+0xF2   0x00F2  #       LATIN SMALL LETTER O WITH GRAVE\r
+0xF3   0x00F3  #       LATIN SMALL LETTER O WITH ACUTE\r
+0xF4   0x00F4  #       LATIN SMALL LETTER O WITH CIRCUMFLEX\r
+0xF5   0x0121  #       LATIN SMALL LETTER G WITH DOT ABOVE\r
+0xF6   0x00F6  #       LATIN SMALL LETTER O WITH DIAERESIS\r
+0xF7   0x00F7  #       DIVISION SIGN\r
+0xF8   0x011D  #       LATIN SMALL LETTER G WITH CIRCUMFLEX\r
+0xF9   0x00F9  #       LATIN SMALL LETTER U WITH GRAVE\r
+0xFA   0x00FA  #       LATIN SMALL LETTER U WITH ACUTE\r
+0xFB   0x00FB  #       LATIN SMALL LETTER U WITH CIRCUMFLEX\r
+0xFC   0x00FC  #       LATIN SMALL LETTER U WITH DIAERESIS\r
+0xFD   0x016D  #       LATIN SMALL LETTER U WITH BREVE\r
+0xFE   0x015D  #       LATIN SMALL LETTER S WITH CIRCUMFLEX\r
+0xFF   0x02D9  #       DOT ABOVE\r
diff --git a/data/iso-8859-4.txt b/data/iso-8859-4.txt
new file mode 100644 (file)
index 0000000..576765c
--- /dev/null
@@ -0,0 +1,303 @@
+#\r
+#      Name:             ISO/IEC 8859-4:1998 to Unicode\r
+#      Unicode version:  3.0\r
+#      Table version:    1.0\r
+#      Table format:     Format A\r
+#      Date:             1999 July 27\r
+#      Authors:          Ken Whistler <kenw@sybase.com>\r
+#\r
+#      Copyright (c) 1991-1999 Unicode, Inc.  All Rights reserved.\r
+#\r
+#      This file is provided as-is by Unicode, Inc. (The Unicode Consortium).\r
+#      No claims are made as to fitness for any particular purpose.  No\r
+#      warranties of any kind are expressed or implied.  The recipient\r
+#      agrees to determine applicability of information provided.  If this\r
+#      file has been provided on optical media by Unicode, Inc., the sole\r
+#      remedy for any claim will be exchange of defective media within 90\r
+#      days of receipt.\r
+#\r
+#      Unicode, Inc. hereby grants the right to freely use the information\r
+#      supplied in this file in the creation of products supporting the\r
+#      Unicode Standard, and to make copies of this file in any form for\r
+#      internal or external distribution as long as this notice remains\r
+#      attached.\r
+#\r
+#      General notes:\r
+#\r
+#      This table contains the data the Unicode Consortium has on how\r
+#       ISO/IEC 8859-4:1998 characters map into Unicode.\r
+#\r
+#      Format:  Three tab-separated columns\r
+#               Column #1 is the ISO/IEC 8859-4 code (in hex as 0xXX)\r
+#               Column #2 is the Unicode (in hex as 0xXXXX)\r
+#               Column #3 the Unicode name (follows a comment sign, '#')\r
+#\r
+#      The entries are in ISO/IEC 8859-4 order.\r
+#\r
+#      Version history\r
+#      1.0 version updates 0.1 version by adding mappings for all\r
+#      control characters.\r
+#\r
+#      Updated versions of this file may be found in:\r
+#              <ftp://ftp.unicode.org/Public/MAPPINGS/>\r
+#\r
+#      Any comments or problems, contact <errata@unicode.org>\r
+#      Please note that <errata@unicode.org> is an archival address;\r
+#      notices will be checked, but do not expect an immediate response.\r
+#\r
+0x00   0x0000  #       NULL\r
+0x01   0x0001  #       START OF HEADING\r
+0x02   0x0002  #       START OF TEXT\r
+0x03   0x0003  #       END OF TEXT\r
+0x04   0x0004  #       END OF TRANSMISSION\r
+0x05   0x0005  #       ENQUIRY\r
+0x06   0x0006  #       ACKNOWLEDGE\r
+0x07   0x0007  #       BELL\r
+0x08   0x0008  #       BACKSPACE\r
+0x09   0x0009  #       HORIZONTAL TABULATION\r
+0x0A   0x000A  #       LINE FEED\r
+0x0B   0x000B  #       VERTICAL TABULATION\r
+0x0C   0x000C  #       FORM FEED\r
+0x0D   0x000D  #       CARRIAGE RETURN\r
+0x0E   0x000E  #       SHIFT OUT\r
+0x0F   0x000F  #       SHIFT IN\r
+0x10   0x0010  #       DATA LINK ESCAPE\r
+0x11   0x0011  #       DEVICE CONTROL ONE\r
+0x12   0x0012  #       DEVICE CONTROL TWO\r
+0x13   0x0013  #       DEVICE CONTROL THREE\r
+0x14   0x0014  #       DEVICE CONTROL FOUR\r
+0x15   0x0015  #       NEGATIVE ACKNOWLEDGE\r
+0x16   0x0016  #       SYNCHRONOUS IDLE\r
+0x17   0x0017  #       END OF TRANSMISSION BLOCK\r
+0x18   0x0018  #       CANCEL\r
+0x19   0x0019  #       END OF MEDIUM\r
+0x1A   0x001A  #       SUBSTITUTE\r
+0x1B   0x001B  #       ESCAPE\r
+0x1C   0x001C  #       FILE SEPARATOR\r
+0x1D   0x001D  #       GROUP SEPARATOR\r
+0x1E   0x001E  #       RECORD SEPARATOR\r
+0x1F   0x001F  #       UNIT SEPARATOR\r
+0x20   0x0020  #       SPACE\r
+0x21   0x0021  #       EXCLAMATION MARK\r
+0x22   0x0022  #       QUOTATION MARK\r
+0x23   0x0023  #       NUMBER SIGN\r
+0x24   0x0024  #       DOLLAR SIGN\r
+0x25   0x0025  #       PERCENT SIGN\r
+0x26   0x0026  #       AMPERSAND\r
+0x27   0x0027  #       APOSTROPHE\r
+0x28   0x0028  #       LEFT PARENTHESIS\r
+0x29   0x0029  #       RIGHT PARENTHESIS\r
+0x2A   0x002A  #       ASTERISK\r
+0x2B   0x002B  #       PLUS SIGN\r
+0x2C   0x002C  #       COMMA\r
+0x2D   0x002D  #       HYPHEN-MINUS\r
+0x2E   0x002E  #       FULL STOP\r
+0x2F   0x002F  #       SOLIDUS\r
+0x30   0x0030  #       DIGIT ZERO\r
+0x31   0x0031  #       DIGIT ONE\r
+0x32   0x0032  #       DIGIT TWO\r
+0x33   0x0033  #       DIGIT THREE\r
+0x34   0x0034  #       DIGIT FOUR\r
+0x35   0x0035  #       DIGIT FIVE\r
+0x36   0x0036  #       DIGIT SIX\r
+0x37   0x0037  #       DIGIT SEVEN\r
+0x38   0x0038  #       DIGIT EIGHT\r
+0x39   0x0039  #       DIGIT NINE\r
+0x3A   0x003A  #       COLON\r
+0x3B   0x003B  #       SEMICOLON\r
+0x3C   0x003C  #       LESS-THAN SIGN\r
+0x3D   0x003D  #       EQUALS SIGN\r
+0x3E   0x003E  #       GREATER-THAN SIGN\r
+0x3F   0x003F  #       QUESTION MARK\r
+0x40   0x0040  #       COMMERCIAL AT\r
+0x41   0x0041  #       LATIN CAPITAL LETTER A\r
+0x42   0x0042  #       LATIN CAPITAL LETTER B\r
+0x43   0x0043  #       LATIN CAPITAL LETTER C\r
+0x44   0x0044  #       LATIN CAPITAL LETTER D\r
+0x45   0x0045  #       LATIN CAPITAL LETTER E\r
+0x46   0x0046  #       LATIN CAPITAL LETTER F\r
+0x47   0x0047  #       LATIN CAPITAL LETTER G\r
+0x48   0x0048  #       LATIN CAPITAL LETTER H\r
+0x49   0x0049  #       LATIN CAPITAL LETTER I\r
+0x4A   0x004A  #       LATIN CAPITAL LETTER J\r
+0x4B   0x004B  #       LATIN CAPITAL LETTER K\r
+0x4C   0x004C  #       LATIN CAPITAL LETTER L\r
+0x4D   0x004D  #       LATIN CAPITAL LETTER M\r
+0x4E   0x004E  #       LATIN CAPITAL LETTER N\r
+0x4F   0x004F  #       LATIN CAPITAL LETTER O\r
+0x50   0x0050  #       LATIN CAPITAL LETTER P\r
+0x51   0x0051  #       LATIN CAPITAL LETTER Q\r
+0x52   0x0052  #       LATIN CAPITAL LETTER R\r
+0x53   0x0053  #       LATIN CAPITAL LETTER S\r
+0x54   0x0054  #       LATIN CAPITAL LETTER T\r
+0x55   0x0055  #       LATIN CAPITAL LETTER U\r
+0x56   0x0056  #       LATIN CAPITAL LETTER V\r
+0x57   0x0057  #       LATIN CAPITAL LETTER W\r
+0x58   0x0058  #       LATIN CAPITAL LETTER X\r
+0x59   0x0059  #       LATIN CAPITAL LETTER Y\r
+0x5A   0x005A  #       LATIN CAPITAL LETTER Z\r
+0x5B   0x005B  #       LEFT SQUARE BRACKET\r
+0x5C   0x005C  #       REVERSE SOLIDUS\r
+0x5D   0x005D  #       RIGHT SQUARE BRACKET\r
+0x5E   0x005E  #       CIRCUMFLEX ACCENT\r
+0x5F   0x005F  #       LOW LINE\r
+0x60   0x0060  #       GRAVE ACCENT\r
+0x61   0x0061  #       LATIN SMALL LETTER A\r
+0x62   0x0062  #       LATIN SMALL LETTER B\r
+0x63   0x0063  #       LATIN SMALL LETTER C\r
+0x64   0x0064  #       LATIN SMALL LETTER D\r
+0x65   0x0065  #       LATIN SMALL LETTER E\r
+0x66   0x0066  #       LATIN SMALL LETTER F\r
+0x67   0x0067  #       LATIN SMALL LETTER G\r
+0x68   0x0068  #       LATIN SMALL LETTER H\r
+0x69   0x0069  #       LATIN SMALL LETTER I\r
+0x6A   0x006A  #       LATIN SMALL LETTER J\r
+0x6B   0x006B  #       LATIN SMALL LETTER K\r
+0x6C   0x006C  #       LATIN SMALL LETTER L\r
+0x6D   0x006D  #       LATIN SMALL LETTER M\r
+0x6E   0x006E  #       LATIN SMALL LETTER N\r
+0x6F   0x006F  #       LATIN SMALL LETTER O\r
+0x70   0x0070  #       LATIN SMALL LETTER P\r
+0x71   0x0071  #       LATIN SMALL LETTER Q\r
+0x72   0x0072  #       LATIN SMALL LETTER R\r
+0x73   0x0073  #       LATIN SMALL LETTER S\r
+0x74   0x0074  #       LATIN SMALL LETTER T\r
+0x75   0x0075  #       LATIN SMALL LETTER U\r
+0x76   0x0076  #       LATIN SMALL LETTER V\r
+0x77   0x0077  #       LATIN SMALL LETTER W\r
+0x78   0x0078  #       LATIN SMALL LETTER X\r
+0x79   0x0079  #       LATIN SMALL LETTER Y\r
+0x7A   0x007A  #       LATIN SMALL LETTER Z\r
+0x7B   0x007B  #       LEFT CURLY BRACKET\r
+0x7C   0x007C  #       VERTICAL LINE\r
+0x7D   0x007D  #       RIGHT CURLY BRACKET\r
+0x7E   0x007E  #       TILDE\r
+0x7F   0x007F  #       DELETE\r
+0x80   0x0080  #       <control>\r
+0x81   0x0081  #       <control>\r
+0x82   0x0082  #       <control>\r
+0x83   0x0083  #       <control>\r
+0x84   0x0084  #       <control>\r
+0x85   0x0085  #       <control>\r
+0x86   0x0086  #       <control>\r
+0x87   0x0087  #       <control>\r
+0x88   0x0088  #       <control>\r
+0x89   0x0089  #       <control>\r
+0x8A   0x008A  #       <control>\r
+0x8B   0x008B  #       <control>\r
+0x8C   0x008C  #       <control>\r
+0x8D   0x008D  #       <control>\r
+0x8E   0x008E  #       <control>\r
+0x8F   0x008F  #       <control>\r
+0x90   0x0090  #       <control>\r
+0x91   0x0091  #       <control>\r
+0x92   0x0092  #       <control>\r
+0x93   0x0093  #       <control>\r
+0x94   0x0094  #       <control>\r
+0x95   0x0095  #       <control>\r
+0x96   0x0096  #       <control>\r
+0x97   0x0097  #       <control>\r
+0x98   0x0098  #       <control>\r
+0x99   0x0099  #       <control>\r
+0x9A   0x009A  #       <control>\r
+0x9B   0x009B  #       <control>\r
+0x9C   0x009C  #       <control>\r
+0x9D   0x009D  #       <control>\r
+0x9E   0x009E  #       <control>\r
+0x9F   0x009F  #       <control>\r
+0xA0   0x00A0  #       NO-BREAK SPACE\r
+0xA1   0x0104  #       LATIN CAPITAL LETTER A WITH OGONEK\r
+0xA2   0x0138  #       LATIN SMALL LETTER KRA\r
+0xA3   0x0156  #       LATIN CAPITAL LETTER R WITH CEDILLA\r
+0xA4   0x00A4  #       CURRENCY SIGN\r
+0xA5   0x0128  #       LATIN CAPITAL LETTER I WITH TILDE\r
+0xA6   0x013B  #       LATIN CAPITAL LETTER L WITH CEDILLA\r
+0xA7   0x00A7  #       SECTION SIGN\r
+0xA8   0x00A8  #       DIAERESIS\r
+0xA9   0x0160  #       LATIN CAPITAL LETTER S WITH CARON\r
+0xAA   0x0112  #       LATIN CAPITAL LETTER E WITH MACRON\r
+0xAB   0x0122  #       LATIN CAPITAL LETTER G WITH CEDILLA\r
+0xAC   0x0166  #       LATIN CAPITAL LETTER T WITH STROKE\r
+0xAD   0x00AD  #       SOFT HYPHEN\r
+0xAE   0x017D  #       LATIN CAPITAL LETTER Z WITH CARON\r
+0xAF   0x00AF  #       MACRON\r
+0xB0   0x00B0  #       DEGREE SIGN\r
+0xB1   0x0105  #       LATIN SMALL LETTER A WITH OGONEK\r
+0xB2   0x02DB  #       OGONEK\r
+0xB3   0x0157  #       LATIN SMALL LETTER R WITH CEDILLA\r
+0xB4   0x00B4  #       ACUTE ACCENT\r
+0xB5   0x0129  #       LATIN SMALL LETTER I WITH TILDE\r
+0xB6   0x013C  #       LATIN SMALL LETTER L WITH CEDILLA\r
+0xB7   0x02C7  #       CARON\r
+0xB8   0x00B8  #       CEDILLA\r
+0xB9   0x0161  #       LATIN SMALL LETTER S WITH CARON\r
+0xBA   0x0113  #       LATIN SMALL LETTER E WITH MACRON\r
+0xBB   0x0123  #       LATIN SMALL LETTER G WITH CEDILLA\r
+0xBC   0x0167  #       LATIN SMALL LETTER T WITH STROKE\r
+0xBD   0x014A  #       LATIN CAPITAL LETTER ENG\r
+0xBE   0x017E  #       LATIN SMALL LETTER Z WITH CARON\r
+0xBF   0x014B  #       LATIN SMALL LETTER ENG\r
+0xC0   0x0100  #       LATIN CAPITAL LETTER A WITH MACRON\r
+0xC1   0x00C1  #       LATIN CAPITAL LETTER A WITH ACUTE\r
+0xC2   0x00C2  #       LATIN CAPITAL LETTER A WITH CIRCUMFLEX\r
+0xC3   0x00C3  #       LATIN CAPITAL LETTER A WITH TILDE\r
+0xC4   0x00C4  #       LATIN CAPITAL LETTER A WITH DIAERESIS\r
+0xC5   0x00C5  #       LATIN CAPITAL LETTER A WITH RING ABOVE\r
+0xC6   0x00C6  #       LATIN CAPITAL LETTER AE\r
+0xC7   0x012E  #       LATIN CAPITAL LETTER I WITH OGONEK\r
+0xC8   0x010C  #       LATIN CAPITAL LETTER C WITH CARON\r
+0xC9   0x00C9  #       LATIN CAPITAL LETTER E WITH ACUTE\r
+0xCA   0x0118  #       LATIN CAPITAL LETTER E WITH OGONEK\r
+0xCB   0x00CB  #       LATIN CAPITAL LETTER E WITH DIAERESIS\r
+0xCC   0x0116  #       LATIN CAPITAL LETTER E WITH DOT ABOVE\r
+0xCD   0x00CD  #       LATIN CAPITAL LETTER I WITH ACUTE\r
+0xCE   0x00CE  #       LATIN CAPITAL LETTER I WITH CIRCUMFLEX\r
+0xCF   0x012A  #       LATIN CAPITAL LETTER I WITH MACRON\r
+0xD0   0x0110  #       LATIN CAPITAL LETTER D WITH STROKE\r
+0xD1   0x0145  #       LATIN CAPITAL LETTER N WITH CEDILLA\r
+0xD2   0x014C  #       LATIN CAPITAL LETTER O WITH MACRON\r
+0xD3   0x0136  #       LATIN CAPITAL LETTER K WITH CEDILLA\r
+0xD4   0x00D4  #       LATIN CAPITAL LETTER O WITH CIRCUMFLEX\r
+0xD5   0x00D5  #       LATIN CAPITAL LETTER O WITH TILDE\r
+0xD6   0x00D6  #       LATIN CAPITAL LETTER O WITH DIAERESIS\r
+0xD7   0x00D7  #       MULTIPLICATION SIGN\r
+0xD8   0x00D8  #       LATIN CAPITAL LETTER O WITH STROKE\r
+0xD9   0x0172  #       LATIN CAPITAL LETTER U WITH OGONEK\r
+0xDA   0x00DA  #       LATIN CAPITAL LETTER U WITH ACUTE\r
+0xDB   0x00DB  #       LATIN CAPITAL LETTER U WITH CIRCUMFLEX\r
+0xDC   0x00DC  #       LATIN CAPITAL LETTER U WITH DIAERESIS\r
+0xDD   0x0168  #       LATIN CAPITAL LETTER U WITH TILDE\r
+0xDE   0x016A  #       LATIN CAPITAL LETTER U WITH MACRON\r
+0xDF   0x00DF  #       LATIN SMALL LETTER SHARP S\r
+0xE0   0x0101  #       LATIN SMALL LETTER A WITH MACRON\r
+0xE1   0x00E1  #       LATIN SMALL LETTER A WITH ACUTE\r
+0xE2   0x00E2  #       LATIN SMALL LETTER A WITH CIRCUMFLEX\r
+0xE3   0x00E3  #       LATIN SMALL LETTER A WITH TILDE\r
+0xE4   0x00E4  #       LATIN SMALL LETTER A WITH DIAERESIS\r
+0xE5   0x00E5  #       LATIN SMALL LETTER A WITH RING ABOVE\r
+0xE6   0x00E6  #       LATIN SMALL LETTER AE\r
+0xE7   0x012F  #       LATIN SMALL LETTER I WITH OGONEK\r
+0xE8   0x010D  #       LATIN SMALL LETTER C WITH CARON\r
+0xE9   0x00E9  #       LATIN SMALL LETTER E WITH ACUTE\r
+0xEA   0x0119  #       LATIN SMALL LETTER E WITH OGONEK\r
+0xEB   0x00EB  #       LATIN SMALL LETTER E WITH DIAERESIS\r
+0xEC   0x0117  #       LATIN SMALL LETTER E WITH DOT ABOVE\r
+0xED   0x00ED  #       LATIN SMALL LETTER I WITH ACUTE\r
+0xEE   0x00EE  #       LATIN SMALL LETTER I WITH CIRCUMFLEX\r
+0xEF   0x012B  #       LATIN SMALL LETTER I WITH MACRON\r
+0xF0   0x0111  #       LATIN SMALL LETTER D WITH STROKE\r
+0xF1   0x0146  #       LATIN SMALL LETTER N WITH CEDILLA\r
+0xF2   0x014D  #       LATIN SMALL LETTER O WITH MACRON\r
+0xF3   0x0137  #       LATIN SMALL LETTER K WITH CEDILLA\r
+0xF4   0x00F4  #       LATIN SMALL LETTER O WITH CIRCUMFLEX\r
+0xF5   0x00F5  #       LATIN SMALL LETTER O WITH TILDE\r
+0xF6   0x00F6  #       LATIN SMALL LETTER O WITH DIAERESIS\r
+0xF7   0x00F7  #       DIVISION SIGN\r
+0xF8   0x00F8  #       LATIN SMALL LETTER O WITH STROKE\r
+0xF9   0x0173  #       LATIN SMALL LETTER U WITH OGONEK\r
+0xFA   0x00FA  #       LATIN SMALL LETTER U WITH ACUTE\r
+0xFB   0x00FB  #       LATIN SMALL LETTER U WITH CIRCUMFLEX\r
+0xFC   0x00FC  #       LATIN SMALL LETTER U WITH DIAERESIS\r
+0xFD   0x0169  #       LATIN SMALL LETTER U WITH TILDE\r
+0xFE   0x016B  #       LATIN SMALL LETTER U WITH MACRON\r
+0xFF   0x02D9  #       DOT ABOVE\r
diff --git a/data/iso-8859-5.txt b/data/iso-8859-5.txt
new file mode 100644 (file)
index 0000000..055824e
--- /dev/null
@@ -0,0 +1,303 @@
+#\r
+#      Name:             ISO 8859-5:1999 to Unicode\r
+#      Unicode version:  3.0\r
+#      Table version:    1.0\r
+#      Table format:     Format A\r
+#      Date:             1999 July 27\r
+#      Authors:          Ken Whistler <kenw@sybase.com>\r
+#\r
+#      Copyright (c) 1991-1999 Unicode, Inc.  All Rights reserved.\r
+#\r
+#      This file is provided as-is by Unicode, Inc. (The Unicode Consortium).\r
+#      No claims are made as to fitness for any particular purpose.  No\r
+#      warranties of any kind are expressed or implied.  The recipient\r
+#      agrees to determine applicability of information provided.  If this\r
+#      file has been provided on optical media by Unicode, Inc., the sole\r
+#      remedy for any claim will be exchange of defective media within 90\r
+#      days of receipt.\r
+#\r
+#      Unicode, Inc. hereby grants the right to freely use the information\r
+#      supplied in this file in the creation of products supporting the\r
+#      Unicode Standard, and to make copies of this file in any form for\r
+#      internal or external distribution as long as this notice remains\r
+#      attached.\r
+#\r
+#      General notes:\r
+#\r
+#      This table contains the data the Unicode Consortium has on how\r
+#       ISO/IEC 8859-5:1999 characters map into Unicode.\r
+#\r
+#      Format:  Three tab-separated columns\r
+#               Column #1 is the ISO/IEC 8859-5 code (in hex as 0xXX)\r
+#               Column #2 is the Unicode (in hex as 0xXXXX)\r
+#               Column #3 the Unicode name (follows a comment sign, '#')\r
+#\r
+#      The entries are in ISO/IEC 8859-5 order.\r
+#\r
+#      Version history\r
+#      1.0 version updates 0.1 version by adding mappings for all\r
+#      control characters.\r
+#\r
+#      Updated versions of this file may be found in:\r
+#              <ftp://ftp.unicode.org/Public/MAPPINGS/>\r
+#\r
+#      Any comments or problems, contact <errata@unicode.org>\r
+#      Please note that <errata@unicode.org> is an archival address;\r
+#      notices will be checked, but do not expect an immediate response.\r
+#\r
+0x00   0x0000  #       NULL\r
+0x01   0x0001  #       START OF HEADING\r
+0x02   0x0002  #       START OF TEXT\r
+0x03   0x0003  #       END OF TEXT\r
+0x04   0x0004  #       END OF TRANSMISSION\r
+0x05   0x0005  #       ENQUIRY\r
+0x06   0x0006  #       ACKNOWLEDGE\r
+0x07   0x0007  #       BELL\r
+0x08   0x0008  #       BACKSPACE\r
+0x09   0x0009  #       HORIZONTAL TABULATION\r
+0x0A   0x000A  #       LINE FEED\r
+0x0B   0x000B  #       VERTICAL TABULATION\r
+0x0C   0x000C  #       FORM FEED\r
+0x0D   0x000D  #       CARRIAGE RETURN\r
+0x0E   0x000E  #       SHIFT OUT\r
+0x0F   0x000F  #       SHIFT IN\r
+0x10   0x0010  #       DATA LINK ESCAPE\r
+0x11   0x0011  #       DEVICE CONTROL ONE\r
+0x12   0x0012  #       DEVICE CONTROL TWO\r
+0x13   0x0013  #       DEVICE CONTROL THREE\r
+0x14   0x0014  #       DEVICE CONTROL FOUR\r
+0x15   0x0015  #       NEGATIVE ACKNOWLEDGE\r
+0x16   0x0016  #       SYNCHRONOUS IDLE\r
+0x17   0x0017  #       END OF TRANSMISSION BLOCK\r
+0x18   0x0018  #       CANCEL\r
+0x19   0x0019  #       END OF MEDIUM\r
+0x1A   0x001A  #       SUBSTITUTE\r
+0x1B   0x001B  #       ESCAPE\r
+0x1C   0x001C  #       FILE SEPARATOR\r
+0x1D   0x001D  #       GROUP SEPARATOR\r
+0x1E   0x001E  #       RECORD SEPARATOR\r
+0x1F   0x001F  #       UNIT SEPARATOR\r
+0x20   0x0020  #       SPACE\r
+0x21   0x0021  #       EXCLAMATION MARK\r
+0x22   0x0022  #       QUOTATION MARK\r
+0x23   0x0023  #       NUMBER SIGN\r
+0x24   0x0024  #       DOLLAR SIGN\r
+0x25   0x0025  #       PERCENT SIGN\r
+0x26   0x0026  #       AMPERSAND\r
+0x27   0x0027  #       APOSTROPHE\r
+0x28   0x0028  #       LEFT PARENTHESIS\r
+0x29   0x0029  #       RIGHT PARENTHESIS\r
+0x2A   0x002A  #       ASTERISK\r
+0x2B   0x002B  #       PLUS SIGN\r
+0x2C   0x002C  #       COMMA\r
+0x2D   0x002D  #       HYPHEN-MINUS\r
+0x2E   0x002E  #       FULL STOP\r
+0x2F   0x002F  #       SOLIDUS\r
+0x30   0x0030  #       DIGIT ZERO\r
+0x31   0x0031  #       DIGIT ONE\r
+0x32   0x0032  #       DIGIT TWO\r
+0x33   0x0033  #       DIGIT THREE\r
+0x34   0x0034  #       DIGIT FOUR\r
+0x35   0x0035  #       DIGIT FIVE\r
+0x36   0x0036  #       DIGIT SIX\r
+0x37   0x0037  #       DIGIT SEVEN\r
+0x38   0x0038  #       DIGIT EIGHT\r
+0x39   0x0039  #       DIGIT NINE\r
+0x3A   0x003A  #       COLON\r
+0x3B   0x003B  #       SEMICOLON\r
+0x3C   0x003C  #       LESS-THAN SIGN\r
+0x3D   0x003D  #       EQUALS SIGN\r
+0x3E   0x003E  #       GREATER-THAN SIGN\r
+0x3F   0x003F  #       QUESTION MARK\r
+0x40   0x0040  #       COMMERCIAL AT\r
+0x41   0x0041  #       LATIN CAPITAL LETTER A\r
+0x42   0x0042  #       LATIN CAPITAL LETTER B\r
+0x43   0x0043  #       LATIN CAPITAL LETTER C\r
+0x44   0x0044  #       LATIN CAPITAL LETTER D\r
+0x45   0x0045  #       LATIN CAPITAL LETTER E\r
+0x46   0x0046  #       LATIN CAPITAL LETTER F\r
+0x47   0x0047  #       LATIN CAPITAL LETTER G\r
+0x48   0x0048  #       LATIN CAPITAL LETTER H\r
+0x49   0x0049  #       LATIN CAPITAL LETTER I\r
+0x4A   0x004A  #       LATIN CAPITAL LETTER J\r
+0x4B   0x004B  #       LATIN CAPITAL LETTER K\r
+0x4C   0x004C  #       LATIN CAPITAL LETTER L\r
+0x4D   0x004D  #       LATIN CAPITAL LETTER M\r
+0x4E   0x004E  #       LATIN CAPITAL LETTER N\r
+0x4F   0x004F  #       LATIN CAPITAL LETTER O\r
+0x50   0x0050  #       LATIN CAPITAL LETTER P\r
+0x51   0x0051  #       LATIN CAPITAL LETTER Q\r
+0x52   0x0052  #       LATIN CAPITAL LETTER R\r
+0x53   0x0053  #       LATIN CAPITAL LETTER S\r
+0x54   0x0054  #       LATIN CAPITAL LETTER T\r
+0x55   0x0055  #       LATIN CAPITAL LETTER U\r
+0x56   0x0056  #       LATIN CAPITAL LETTER V\r
+0x57   0x0057  #       LATIN CAPITAL LETTER W\r
+0x58   0x0058  #       LATIN CAPITAL LETTER X\r
+0x59   0x0059  #       LATIN CAPITAL LETTER Y\r
+0x5A   0x005A  #       LATIN CAPITAL LETTER Z\r
+0x5B   0x005B  #       LEFT SQUARE BRACKET\r
+0x5C   0x005C  #       REVERSE SOLIDUS\r
+0x5D   0x005D  #       RIGHT SQUARE BRACKET\r
+0x5E   0x005E  #       CIRCUMFLEX ACCENT\r
+0x5F   0x005F  #       LOW LINE\r
+0x60   0x0060  #       GRAVE ACCENT\r
+0x61   0x0061  #       LATIN SMALL LETTER A\r
+0x62   0x0062  #       LATIN SMALL LETTER B\r
+0x63   0x0063  #       LATIN SMALL LETTER C\r
+0x64   0x0064  #       LATIN SMALL LETTER D\r
+0x65   0x0065  #       LATIN SMALL LETTER E\r
+0x66   0x0066  #       LATIN SMALL LETTER F\r
+0x67   0x0067  #       LATIN SMALL LETTER G\r
+0x68   0x0068  #       LATIN SMALL LETTER H\r
+0x69   0x0069  #       LATIN SMALL LETTER I\r
+0x6A   0x006A  #       LATIN SMALL LETTER J\r
+0x6B   0x006B  #       LATIN SMALL LETTER K\r
+0x6C   0x006C  #       LATIN SMALL LETTER L\r
+0x6D   0x006D  #       LATIN SMALL LETTER M\r
+0x6E   0x006E  #       LATIN SMALL LETTER N\r
+0x6F   0x006F  #       LATIN SMALL LETTER O\r
+0x70   0x0070  #       LATIN SMALL LETTER P\r
+0x71   0x0071  #       LATIN SMALL LETTER Q\r
+0x72   0x0072  #       LATIN SMALL LETTER R\r
+0x73   0x0073  #       LATIN SMALL LETTER S\r
+0x74   0x0074  #       LATIN SMALL LETTER T\r
+0x75   0x0075  #       LATIN SMALL LETTER U\r
+0x76   0x0076  #       LATIN SMALL LETTER V\r
+0x77   0x0077  #       LATIN SMALL LETTER W\r
+0x78   0x0078  #       LATIN SMALL LETTER X\r
+0x79   0x0079  #       LATIN SMALL LETTER Y\r
+0x7A   0x007A  #       LATIN SMALL LETTER Z\r
+0x7B   0x007B  #       LEFT CURLY BRACKET\r
+0x7C   0x007C  #       VERTICAL LINE\r
+0x7D   0x007D  #       RIGHT CURLY BRACKET\r
+0x7E   0x007E  #       TILDE\r
+0x7F   0x007F  #       DELETE\r
+0x80   0x0080  #       <control>\r
+0x81   0x0081  #       <control>\r
+0x82   0x0082  #       <control>\r
+0x83   0x0083  #       <control>\r
+0x84   0x0084  #       <control>\r
+0x85   0x0085  #       <control>\r
+0x86   0x0086  #       <control>\r
+0x87   0x0087  #       <control>\r
+0x88   0x0088  #       <control>\r
+0x89   0x0089  #       <control>\r
+0x8A   0x008A  #       <control>\r
+0x8B   0x008B  #       <control>\r
+0x8C   0x008C  #       <control>\r
+0x8D   0x008D  #       <control>\r
+0x8E   0x008E  #       <control>\r
+0x8F   0x008F  #       <control>\r
+0x90   0x0090  #       <control>\r
+0x91   0x0091  #       <control>\r
+0x92   0x0092  #       <control>\r
+0x93   0x0093  #       <control>\r
+0x94   0x0094  #       <control>\r
+0x95   0x0095  #       <control>\r
+0x96   0x0096  #       <control>\r
+0x97   0x0097  #       <control>\r
+0x98   0x0098  #       <control>\r
+0x99   0x0099  #       <control>\r
+0x9A   0x009A  #       <control>\r
+0x9B   0x009B  #       <control>\r
+0x9C   0x009C  #       <control>\r
+0x9D   0x009D  #       <control>\r
+0x9E   0x009E  #       <control>\r
+0x9F   0x009F  #       <control>\r
+0xA0   0x00A0  #       NO-BREAK SPACE\r
+0xA1   0x0401  #       CYRILLIC CAPITAL LETTER IO\r
+0xA2   0x0402  #       CYRILLIC CAPITAL LETTER DJE\r
+0xA3   0x0403  #       CYRILLIC CAPITAL LETTER GJE\r
+0xA4   0x0404  #       CYRILLIC CAPITAL LETTER UKRAINIAN IE\r
+0xA5   0x0405  #       CYRILLIC CAPITAL LETTER DZE\r
+0xA6   0x0406  #       CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I\r
+0xA7   0x0407  #       CYRILLIC CAPITAL LETTER YI\r
+0xA8   0x0408  #       CYRILLIC CAPITAL LETTER JE\r
+0xA9   0x0409  #       CYRILLIC CAPITAL LETTER LJE\r
+0xAA   0x040A  #       CYRILLIC CAPITAL LETTER NJE\r
+0xAB   0x040B  #       CYRILLIC CAPITAL LETTER TSHE\r
+0xAC   0x040C  #       CYRILLIC CAPITAL LETTER KJE\r
+0xAD   0x00AD  #       SOFT HYPHEN\r
+0xAE   0x040E  #       CYRILLIC CAPITAL LETTER SHORT U\r
+0xAF   0x040F  #       CYRILLIC CAPITAL LETTER DZHE\r
+0xB0   0x0410  #       CYRILLIC CAPITAL LETTER A\r
+0xB1   0x0411  #       CYRILLIC CAPITAL LETTER BE\r
+0xB2   0x0412  #       CYRILLIC CAPITAL LETTER VE\r
+0xB3   0x0413  #       CYRILLIC CAPITAL LETTER GHE\r
+0xB4   0x0414  #       CYRILLIC CAPITAL LETTER DE\r
+0xB5   0x0415  #       CYRILLIC CAPITAL LETTER IE\r
+0xB6   0x0416  #       CYRILLIC CAPITAL LETTER ZHE\r
+0xB7   0x0417  #       CYRILLIC CAPITAL LETTER ZE\r
+0xB8   0x0418  #       CYRILLIC CAPITAL LETTER I\r
+0xB9   0x0419  #       CYRILLIC CAPITAL LETTER SHORT I\r
+0xBA   0x041A  #       CYRILLIC CAPITAL LETTER KA\r
+0xBB   0x041B  #       CYRILLIC CAPITAL LETTER EL\r
+0xBC   0x041C  #       CYRILLIC CAPITAL LETTER EM\r
+0xBD   0x041D  #       CYRILLIC CAPITAL LETTER EN\r
+0xBE   0x041E  #       CYRILLIC CAPITAL LETTER O\r
+0xBF   0x041F  #       CYRILLIC CAPITAL LETTER PE\r
+0xC0   0x0420  #       CYRILLIC CAPITAL LETTER ER\r
+0xC1   0x0421  #       CYRILLIC CAPITAL LETTER ES\r
+0xC2   0x0422  #       CYRILLIC CAPITAL LETTER TE\r
+0xC3   0x0423  #       CYRILLIC CAPITAL LETTER U\r
+0xC4   0x0424  #       CYRILLIC CAPITAL LETTER EF\r
+0xC5   0x0425  #       CYRILLIC CAPITAL LETTER HA\r
+0xC6   0x0426  #       CYRILLIC CAPITAL LETTER TSE\r
+0xC7   0x0427  #       CYRILLIC CAPITAL LETTER CHE\r
+0xC8   0x0428  #       CYRILLIC CAPITAL LETTER SHA\r
+0xC9   0x0429  #       CYRILLIC CAPITAL LETTER SHCHA\r
+0xCA   0x042A  #       CYRILLIC CAPITAL LETTER HARD SIGN\r
+0xCB   0x042B  #       CYRILLIC CAPITAL LETTER YERU\r
+0xCC   0x042C  #       CYRILLIC CAPITAL LETTER SOFT SIGN\r
+0xCD   0x042D  #       CYRILLIC CAPITAL LETTER E\r
+0xCE   0x042E  #       CYRILLIC CAPITAL LETTER YU\r
+0xCF   0x042F  #       CYRILLIC CAPITAL LETTER YA\r
+0xD0   0x0430  #       CYRILLIC SMALL LETTER A\r
+0xD1   0x0431  #       CYRILLIC SMALL LETTER BE\r
+0xD2   0x0432  #       CYRILLIC SMALL LETTER VE\r
+0xD3   0x0433  #       CYRILLIC SMALL LETTER GHE\r
+0xD4   0x0434  #       CYRILLIC SMALL LETTER DE\r
+0xD5   0x0435  #       CYRILLIC SMALL LETTER IE\r
+0xD6   0x0436  #       CYRILLIC SMALL LETTER ZHE\r
+0xD7   0x0437  #       CYRILLIC SMALL LETTER ZE\r
+0xD8   0x0438  #       CYRILLIC SMALL LETTER I\r
+0xD9   0x0439  #       CYRILLIC SMALL LETTER SHORT I\r
+0xDA   0x043A  #       CYRILLIC SMALL LETTER KA\r
+0xDB   0x043B  #       CYRILLIC SMALL LETTER EL\r
+0xDC   0x043C  #       CYRILLIC SMALL LETTER EM\r
+0xDD   0x043D  #       CYRILLIC SMALL LETTER EN\r
+0xDE   0x043E  #       CYRILLIC SMALL LETTER O\r
+0xDF   0x043F  #       CYRILLIC SMALL LETTER PE\r
+0xE0   0x0440  #       CYRILLIC SMALL LETTER ER\r
+0xE1   0x0441  #       CYRILLIC SMALL LETTER ES\r
+0xE2   0x0442  #       CYRILLIC SMALL LETTER TE\r
+0xE3   0x0443  #       CYRILLIC SMALL LETTER U\r
+0xE4   0x0444  #       CYRILLIC SMALL LETTER EF\r
+0xE5   0x0445  #       CYRILLIC SMALL LETTER HA\r
+0xE6   0x0446  #       CYRILLIC SMALL LETTER TSE\r
+0xE7   0x0447  #       CYRILLIC SMALL LETTER CHE\r
+0xE8   0x0448  #       CYRILLIC SMALL LETTER SHA\r
+0xE9   0x0449  #       CYRILLIC SMALL LETTER SHCHA\r
+0xEA   0x044A  #       CYRILLIC SMALL LETTER HARD SIGN\r
+0xEB   0x044B  #       CYRILLIC SMALL LETTER YERU\r
+0xEC   0x044C  #       CYRILLIC SMALL LETTER SOFT SIGN\r
+0xED   0x044D  #       CYRILLIC SMALL LETTER E\r
+0xEE   0x044E  #       CYRILLIC SMALL LETTER YU\r
+0xEF   0x044F  #       CYRILLIC SMALL LETTER YA\r
+0xF0   0x2116  #       NUMERO SIGN\r
+0xF1   0x0451  #       CYRILLIC SMALL LETTER IO\r
+0xF2   0x0452  #       CYRILLIC SMALL LETTER DJE\r
+0xF3   0x0453  #       CYRILLIC SMALL LETTER GJE\r
+0xF4   0x0454  #       CYRILLIC SMALL LETTER UKRAINIAN IE\r
+0xF5   0x0455  #       CYRILLIC SMALL LETTER DZE\r
+0xF6   0x0456  #       CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I\r
+0xF7   0x0457  #       CYRILLIC SMALL LETTER YI\r
+0xF8   0x0458  #       CYRILLIC SMALL LETTER JE\r
+0xF9   0x0459  #       CYRILLIC SMALL LETTER LJE\r
+0xFA   0x045A  #       CYRILLIC SMALL LETTER NJE\r
+0xFB   0x045B  #       CYRILLIC SMALL LETTER TSHE\r
+0xFC   0x045C  #       CYRILLIC SMALL LETTER KJE\r
+0xFD   0x00A7  #       SECTION SIGN\r
+0xFE   0x045E  #       CYRILLIC SMALL LETTER SHORT U\r
+0xFF   0x045F  #       CYRILLIC SMALL LETTER DZHE\r
diff --git a/data/iso-8859-6.txt b/data/iso-8859-6.txt
new file mode 100644 (file)
index 0000000..dc2e72c
--- /dev/null
@@ -0,0 +1,260 @@
+#\r
+#      Name:             ISO 8859-6:1999 to Unicode\r
+#      Unicode version:  3.0\r
+#      Table version:    1.0\r
+#      Table format:     Format A\r
+#      Date:             1999 July 27\r
+#      Authors:          Ken Whistler <kenw@sybase.com>\r
+#\r
+#      Copyright (c) 1991-1999 Unicode, Inc.  All Rights reserved.\r
+#\r
+#      This file is provided as-is by Unicode, Inc. (The Unicode Consortium).\r
+#      No claims are made as to fitness for any particular purpose.  No\r
+#      warranties of any kind are expressed or implied.  The recipient\r
+#      agrees to determine applicability of information provided.  If this\r
+#      file has been provided on optical media by Unicode, Inc., the sole\r
+#      remedy for any claim will be exchange of defective media within 90\r
+#      days of receipt.\r
+#\r
+#      Unicode, Inc. hereby grants the right to freely use the information\r
+#      supplied in this file in the creation of products supporting the\r
+#      Unicode Standard, and to make copies of this file in any form for\r
+#      internal or external distribution as long as this notice remains\r
+#      attached.\r
+#\r
+#      General notes:\r
+#\r
+#      This table contains the data the Unicode Consortium has on how\r
+#       ISO/IEC 8859-6:1999 characters map into Unicode.\r
+#\r
+#      Format:  Three tab-separated columns\r
+#               Column #1 is the ISO/IEC 8859-6 code (in hex as 0xXX)\r
+#               Column #2 is the Unicode (in hex as 0xXXXX)\r
+#               Column #3 the Unicode name (follows a comment sign, '#')\r
+#\r
+#      The entries are in ISO/IEC 8859-6 order.\r
+#\r
+#      Version history\r
+#      1.0 version updates 0.1 version by adding mappings for all\r
+#      control characters.\r
+#      0x30..0x39 remapped to the ASCII digits (U+0030..U+0039) instead\r
+#      of the Arabic digits (U+0660..U+0669).\r
+#\r
+#      Updated versions of this file may be found in:\r
+#              <ftp://ftp.unicode.org/Public/MAPPINGS/>\r
+#\r
+#      Any comments or problems, contact <errata@unicode.org>\r
+#      Please note that <errata@unicode.org> is an archival address;\r
+#      notices will be checked, but do not expect an immediate response.\r
+#\r
+0x00   0x0000  #       NULL\r
+0x01   0x0001  #       START OF HEADING\r
+0x02   0x0002  #       START OF TEXT\r
+0x03   0x0003  #       END OF TEXT\r
+0x04   0x0004  #       END OF TRANSMISSION\r
+0x05   0x0005  #       ENQUIRY\r
+0x06   0x0006  #       ACKNOWLEDGE\r
+0x07   0x0007  #       BELL\r
+0x08   0x0008  #       BACKSPACE\r
+0x09   0x0009  #       HORIZONTAL TABULATION\r
+0x0A   0x000A  #       LINE FEED\r
+0x0B   0x000B  #       VERTICAL TABULATION\r
+0x0C   0x000C  #       FORM FEED\r
+0x0D   0x000D  #       CARRIAGE RETURN\r
+0x0E   0x000E  #       SHIFT OUT\r
+0x0F   0x000F  #       SHIFT IN\r
+0x10   0x0010  #       DATA LINK ESCAPE\r
+0x11   0x0011  #       DEVICE CONTROL ONE\r
+0x12   0x0012  #       DEVICE CONTROL TWO\r
+0x13   0x0013  #       DEVICE CONTROL THREE\r
+0x14   0x0014  #       DEVICE CONTROL FOUR\r
+0x15   0x0015  #       NEGATIVE ACKNOWLEDGE\r
+0x16   0x0016  #       SYNCHRONOUS IDLE\r
+0x17   0x0017  #       END OF TRANSMISSION BLOCK\r
+0x18   0x0018  #       CANCEL\r
+0x19   0x0019  #       END OF MEDIUM\r
+0x1A   0x001A  #       SUBSTITUTE\r
+0x1B   0x001B  #       ESCAPE\r
+0x1C   0x001C  #       FILE SEPARATOR\r
+0x1D   0x001D  #       GROUP SEPARATOR\r
+0x1E   0x001E  #       RECORD SEPARATOR\r
+0x1F   0x001F  #       UNIT SEPARATOR\r
+0x20   0x0020  #       SPACE\r
+0x21   0x0021  #       EXCLAMATION MARK\r
+0x22   0x0022  #       QUOTATION MARK\r
+0x23   0x0023  #       NUMBER SIGN\r
+0x24   0x0024  #       DOLLAR SIGN\r
+0x25   0x0025  #       PERCENT SIGN\r
+0x26   0x0026  #       AMPERSAND\r
+0x27   0x0027  #       APOSTROPHE\r
+0x28   0x0028  #       LEFT PARENTHESIS\r
+0x29   0x0029  #       RIGHT PARENTHESIS\r
+0x2A   0x002A  #       ASTERISK\r
+0x2B   0x002B  #       PLUS SIGN\r
+0x2C   0x002C  #       COMMA\r
+0x2D   0x002D  #       HYPHEN-MINUS\r
+0x2E   0x002E  #       FULL STOP\r
+0x2F   0x002F  #       SOLIDUS\r
+0x30   0x0030  #       DIGIT ZERO\r
+0x31   0x0031  #       DIGIT ONE\r
+0x32   0x0032  #       DIGIT TWO\r
+0x33   0x0033  #       DIGIT THREE\r
+0x34   0x0034  #       DIGIT FOUR\r
+0x35   0x0035  #       DIGIT FIVE\r
+0x36   0x0036  #       DIGIT SIX\r
+0x37   0x0037  #       DIGIT SEVEN\r
+0x38   0x0038  #       DIGIT EIGHT\r
+0x39   0x0039  #       DIGIT NINE\r
+0x3A   0x003A  #       COLON\r
+0x3B   0x003B  #       SEMICOLON\r
+0x3C   0x003C  #       LESS-THAN SIGN\r
+0x3D   0x003D  #       EQUALS SIGN\r
+0x3E   0x003E  #       GREATER-THAN SIGN\r
+0x3F   0x003F  #       QUESTION MARK\r
+0x40   0x0040  #       COMMERCIAL AT\r
+0x41   0x0041  #       LATIN CAPITAL LETTER A\r
+0x42   0x0042  #       LATIN CAPITAL LETTER B\r
+0x43   0x0043  #       LATIN CAPITAL LETTER C\r
+0x44   0x0044  #       LATIN CAPITAL LETTER D\r
+0x45   0x0045  #       LATIN CAPITAL LETTER E\r
+0x46   0x0046  #       LATIN CAPITAL LETTER F\r
+0x47   0x0047  #       LATIN CAPITAL LETTER G\r
+0x48   0x0048  #       LATIN CAPITAL LETTER H\r
+0x49   0x0049  #       LATIN CAPITAL LETTER I\r
+0x4A   0x004A  #       LATIN CAPITAL LETTER J\r
+0x4B   0x004B  #       LATIN CAPITAL LETTER K\r
+0x4C   0x004C  #       LATIN CAPITAL LETTER L\r
+0x4D   0x004D  #       LATIN CAPITAL LETTER M\r
+0x4E   0x004E  #       LATIN CAPITAL LETTER N\r
+0x4F   0x004F  #       LATIN CAPITAL LETTER O\r
+0x50   0x0050  #       LATIN CAPITAL LETTER P\r
+0x51   0x0051  #       LATIN CAPITAL LETTER Q\r
+0x52   0x0052  #       LATIN CAPITAL LETTER R\r
+0x53   0x0053  #       LATIN CAPITAL LETTER S\r
+0x54   0x0054  #       LATIN CAPITAL LETTER T\r
+0x55   0x0055  #       LATIN CAPITAL LETTER U\r
+0x56   0x0056  #       LATIN CAPITAL LETTER V\r
+0x57   0x0057  #       LATIN CAPITAL LETTER W\r
+0x58   0x0058  #       LATIN CAPITAL LETTER X\r
+0x59   0x0059  #       LATIN CAPITAL LETTER Y\r
+0x5A   0x005A  #       LATIN CAPITAL LETTER Z\r
+0x5B   0x005B  #       LEFT SQUARE BRACKET\r
+0x5C   0x005C  #       REVERSE SOLIDUS\r
+0x5D   0x005D  #       RIGHT SQUARE BRACKET\r
+0x5E   0x005E  #       CIRCUMFLEX ACCENT\r
+0x5F   0x005F  #       LOW LINE\r
+0x60   0x0060  #       GRAVE ACCENT\r
+0x61   0x0061  #       LATIN SMALL LETTER A\r
+0x62   0x0062  #       LATIN SMALL LETTER B\r
+0x63   0x0063  #       LATIN SMALL LETTER C\r
+0x64   0x0064  #       LATIN SMALL LETTER D\r
+0x65   0x0065  #       LATIN SMALL LETTER E\r
+0x66   0x0066  #       LATIN SMALL LETTER F\r
+0x67   0x0067  #       LATIN SMALL LETTER G\r
+0x68   0x0068  #       LATIN SMALL LETTER H\r
+0x69   0x0069  #       LATIN SMALL LETTER I\r
+0x6A   0x006A  #       LATIN SMALL LETTER J\r
+0x6B   0x006B  #       LATIN SMALL LETTER K\r
+0x6C   0x006C  #       LATIN SMALL LETTER L\r
+0x6D   0x006D  #       LATIN SMALL LETTER M\r
+0x6E   0x006E  #       LATIN SMALL LETTER N\r
+0x6F   0x006F  #       LATIN SMALL LETTER O\r
+0x70   0x0070  #       LATIN SMALL LETTER P\r
+0x71   0x0071  #       LATIN SMALL LETTER Q\r
+0x72   0x0072  #       LATIN SMALL LETTER R\r
+0x73   0x0073  #       LATIN SMALL LETTER S\r
+0x74   0x0074  #       LATIN SMALL LETTER T\r
+0x75   0x0075  #       LATIN SMALL LETTER U\r
+0x76   0x0076  #       LATIN SMALL LETTER V\r
+0x77   0x0077  #       LATIN SMALL LETTER W\r
+0x78   0x0078  #       LATIN SMALL LETTER X\r
+0x79   0x0079  #       LATIN SMALL LETTER Y\r
+0x7A   0x007A  #       LATIN SMALL LETTER Z\r
+0x7B   0x007B  #       LEFT CURLY BRACKET\r
+0x7C   0x007C  #       VERTICAL LINE\r
+0x7D   0x007D  #       RIGHT CURLY BRACKET\r
+0x7E   0x007E  #       TILDE\r
+0x7F   0x007F  #       DELETE\r
+0x80   0x0080  #       <control>\r
+0x81   0x0081  #       <control>\r
+0x82   0x0082  #       <control>\r
+0x83   0x0083  #       <control>\r
+0x84   0x0084  #       <control>\r
+0x85   0x0085  #       <control>\r
+0x86   0x0086  #       <control>\r
+0x87   0x0087  #       <control>\r
+0x88   0x0088  #       <control>\r
+0x89   0x0089  #       <control>\r
+0x8A   0x008A  #       <control>\r
+0x8B   0x008B  #       <control>\r
+0x8C   0x008C  #       <control>\r
+0x8D   0x008D  #       <control>\r
+0x8E   0x008E  #       <control>\r
+0x8F   0x008F  #       <control>\r
+0x90   0x0090  #       <control>\r
+0x91   0x0091  #       <control>\r
+0x92   0x0092  #       <control>\r
+0x93   0x0093  #       <control>\r
+0x94   0x0094  #       <control>\r
+0x95   0x0095  #       <control>\r
+0x96   0x0096  #       <control>\r
+0x97   0x0097  #       <control>\r
+0x98   0x0098  #       <control>\r
+0x99   0x0099  #       <control>\r
+0x9A   0x009A  #       <control>\r
+0x9B   0x009B  #       <control>\r
+0x9C   0x009C  #       <control>\r
+0x9D   0x009D  #       <control>\r
+0x9E   0x009E  #       <control>\r
+0x9F   0x009F  #       <control>\r
+0xA0   0x00A0  #       NO-BREAK SPACE\r
+0xA4   0x00A4  #       CURRENCY SIGN\r
+0xAC   0x060C  #       ARABIC COMMA\r
+0xAD   0x00AD  #       SOFT HYPHEN\r
+0xBB   0x061B  #       ARABIC SEMICOLON\r
+0xBF   0x061F  #       ARABIC QUESTION MARK\r
+0xC1   0x0621  #       ARABIC LETTER HAMZA\r
+0xC2   0x0622  #       ARABIC LETTER ALEF WITH MADDA ABOVE\r
+0xC3   0x0623  #       ARABIC LETTER ALEF WITH HAMZA ABOVE\r
+0xC4   0x0624  #       ARABIC LETTER WAW WITH HAMZA ABOVE\r
+0xC5   0x0625  #       ARABIC LETTER ALEF WITH HAMZA BELOW\r
+0xC6   0x0626  #       ARABIC LETTER YEH WITH HAMZA ABOVE\r
+0xC7   0x0627  #       ARABIC LETTER ALEF\r
+0xC8   0x0628  #       ARABIC LETTER BEH\r
+0xC9   0x0629  #       ARABIC LETTER TEH MARBUTA\r
+0xCA   0x062A  #       ARABIC LETTER TEH\r
+0xCB   0x062B  #       ARABIC LETTER THEH\r
+0xCC   0x062C  #       ARABIC LETTER JEEM\r
+0xCD   0x062D  #       ARABIC LETTER HAH\r
+0xCE   0x062E  #       ARABIC LETTER KHAH\r
+0xCF   0x062F  #       ARABIC LETTER DAL\r
+0xD0   0x0630  #       ARABIC LETTER THAL\r
+0xD1   0x0631  #       ARABIC LETTER REH\r
+0xD2   0x0632  #       ARABIC LETTER ZAIN\r
+0xD3   0x0633  #       ARABIC LETTER SEEN\r
+0xD4   0x0634  #       ARABIC LETTER SHEEN\r
+0xD5   0x0635  #       ARABIC LETTER SAD\r
+0xD6   0x0636  #       ARABIC LETTER DAD\r
+0xD7   0x0637  #       ARABIC LETTER TAH\r
+0xD8   0x0638  #       ARABIC LETTER ZAH\r
+0xD9   0x0639  #       ARABIC LETTER AIN\r
+0xDA   0x063A  #       ARABIC LETTER GHAIN\r
+0xE0   0x0640  #       ARABIC TATWEEL\r
+0xE1   0x0641  #       ARABIC LETTER FEH\r
+0xE2   0x0642  #       ARABIC LETTER QAF\r
+0xE3   0x0643  #       ARABIC LETTER KAF\r
+0xE4   0x0644  #       ARABIC LETTER LAM\r
+0xE5   0x0645  #       ARABIC LETTER MEEM\r
+0xE6   0x0646  #       ARABIC LETTER NOON\r
+0xE7   0x0647  #       ARABIC LETTER HEH\r
+0xE8   0x0648  #       ARABIC LETTER WAW\r
+0xE9   0x0649  #       ARABIC LETTER ALEF MAKSURA\r
+0xEA   0x064A  #       ARABIC LETTER YEH\r
+0xEB   0x064B  #       ARABIC FATHATAN\r
+0xEC   0x064C  #       ARABIC DAMMATAN\r
+0xED   0x064D  #       ARABIC KASRATAN\r
+0xEE   0x064E  #       ARABIC FATHA\r
+0xEF   0x064F  #       ARABIC DAMMA\r
+0xF0   0x0650  #       ARABIC KASRA\r
+0xF1   0x0651  #       ARABIC SHADDA\r
+0xF2   0x0652  #       ARABIC SUKUN\r
diff --git a/data/iso-8859-7.txt b/data/iso-8859-7.txt
new file mode 100644 (file)
index 0000000..30116a9
--- /dev/null
@@ -0,0 +1,302 @@
+#\r
+#      Name:             ISO 8859-7:1987 to Unicode\r
+#      Unicode version:  3.0\r
+#      Table version:    1.0\r
+#      Table format:     Format A\r
+#      Date:             1999 July 27\r
+#      Authors:          Ken Whistler <kenw@sybase.com>\r
+#\r
+#      Copyright (c) 1991-1999 Unicode, Inc.  All Rights reserved.\r
+#\r
+#      This file is provided as-is by Unicode, Inc. (The Unicode Consortium).\r
+#      No claims are made as to fitness for any particular purpose.  No\r
+#      warranties of any kind are expressed or implied.  The recipient\r
+#      agrees to determine applicability of information provided.  If this\r
+#      file has been provided on optical media by Unicode, Inc., the sole\r
+#      remedy for any claim will be exchange of defective media within 90\r
+#      days of receipt.\r
+#\r
+#      Unicode, Inc. hereby grants the right to freely use the information\r
+#      supplied in this file in the creation of products supporting the\r
+#      Unicode Standard, and to make copies of this file in any form for\r
+#      internal or external distribution as long as this notice remains\r
+#      attached.\r
+#\r
+#      General notes:\r
+#\r
+#      This table contains the data the Unicode Consortium has on how\r
+#       ISO 8859-7:1987 characters map into Unicode.\r
+#\r
+#      ISO 8859-7:1987 is equivalent to ISO-IR-126, ELOT 928,\r
+#      and ECMA 118.\r
+#\r
+#      Format:  Three tab-separated columns\r
+#               Column #1 is the ISO 8859-7 code (in hex as 0xXX)\r
+#               Column #2 is the Unicode (in hex as 0xXXXX)\r
+#               Column #3 the Unicode name (follows a comment sign, '#')\r
+#\r
+#      The entries are in ISO 8859-7 order.\r
+#\r
+#      Version history\r
+#      1.0 version updates 0.1 version by adding mappings for all\r
+#      control characters.\r
+#      Remap 0xA1 to U+2018 (instead of 0x02BD) to match text of 8859-7\r
+#      Remap 0xA2 to U+2019 (instead of 0x02BC) to match text of 8859-7\r
+#\r
+#      Updated versions of this file may be found in:\r
+#              <ftp://ftp.unicode.org/Public/MAPPINGS/>\r
+#\r
+#      Any comments or problems, contact <errata@unicode.org>\r
+#      Please note that <errata@unicode.org> is an archival address;\r
+#      notices will be checked, but do not expect an immediate response.\r
+#\r
+0x00   0x0000  #       NULL\r
+0x01   0x0001  #       START OF HEADING\r
+0x02   0x0002  #       START OF TEXT\r
+0x03   0x0003  #       END OF TEXT\r
+0x04   0x0004  #       END OF TRANSMISSION\r
+0x05   0x0005  #       ENQUIRY\r
+0x06   0x0006  #       ACKNOWLEDGE\r
+0x07   0x0007  #       BELL\r
+0x08   0x0008  #       BACKSPACE\r
+0x09   0x0009  #       HORIZONTAL TABULATION\r
+0x0A   0x000A  #       LINE FEED\r
+0x0B   0x000B  #       VERTICAL TABULATION\r
+0x0C   0x000C  #       FORM FEED\r
+0x0D   0x000D  #       CARRIAGE RETURN\r
+0x0E   0x000E  #       SHIFT OUT\r
+0x0F   0x000F  #       SHIFT IN\r
+0x10   0x0010  #       DATA LINK ESCAPE\r
+0x11   0x0011  #       DEVICE CONTROL ONE\r
+0x12   0x0012  #       DEVICE CONTROL TWO\r
+0x13   0x0013  #       DEVICE CONTROL THREE\r
+0x14   0x0014  #       DEVICE CONTROL FOUR\r
+0x15   0x0015  #       NEGATIVE ACKNOWLEDGE\r
+0x16   0x0016  #       SYNCHRONOUS IDLE\r
+0x17   0x0017  #       END OF TRANSMISSION BLOCK\r
+0x18   0x0018  #       CANCEL\r
+0x19   0x0019  #       END OF MEDIUM\r
+0x1A   0x001A  #       SUBSTITUTE\r
+0x1B   0x001B  #       ESCAPE\r
+0x1C   0x001C  #       FILE SEPARATOR\r
+0x1D   0x001D  #       GROUP SEPARATOR\r
+0x1E   0x001E  #       RECORD SEPARATOR\r
+0x1F   0x001F  #       UNIT SEPARATOR\r
+0x20   0x0020  #       SPACE\r
+0x21   0x0021  #       EXCLAMATION MARK\r
+0x22   0x0022  #       QUOTATION MARK\r
+0x23   0x0023  #       NUMBER SIGN\r
+0x24   0x0024  #       DOLLAR SIGN\r
+0x25   0x0025  #       PERCENT SIGN\r
+0x26   0x0026  #       AMPERSAND\r
+0x27   0x0027  #       APOSTROPHE\r
+0x28   0x0028  #       LEFT PARENTHESIS\r
+0x29   0x0029  #       RIGHT PARENTHESIS\r
+0x2A   0x002A  #       ASTERISK\r
+0x2B   0x002B  #       PLUS SIGN\r
+0x2C   0x002C  #       COMMA\r
+0x2D   0x002D  #       HYPHEN-MINUS\r
+0x2E   0x002E  #       FULL STOP\r
+0x2F   0x002F  #       SOLIDUS\r
+0x30   0x0030  #       DIGIT ZERO\r
+0x31   0x0031  #       DIGIT ONE\r
+0x32   0x0032  #       DIGIT TWO\r
+0x33   0x0033  #       DIGIT THREE\r
+0x34   0x0034  #       DIGIT FOUR\r
+0x35   0x0035  #       DIGIT FIVE\r
+0x36   0x0036  #       DIGIT SIX\r
+0x37   0x0037  #       DIGIT SEVEN\r
+0x38   0x0038  #       DIGIT EIGHT\r
+0x39   0x0039  #       DIGIT NINE\r
+0x3A   0x003A  #       COLON\r
+0x3B   0x003B  #       SEMICOLON\r
+0x3C   0x003C  #       LESS-THAN SIGN\r
+0x3D   0x003D  #       EQUALS SIGN\r
+0x3E   0x003E  #       GREATER-THAN SIGN\r
+0x3F   0x003F  #       QUESTION MARK\r
+0x40   0x0040  #       COMMERCIAL AT\r
+0x41   0x0041  #       LATIN CAPITAL LETTER A\r
+0x42   0x0042  #       LATIN CAPITAL LETTER B\r
+0x43   0x0043  #       LATIN CAPITAL LETTER C\r
+0x44   0x0044  #       LATIN CAPITAL LETTER D\r
+0x45   0x0045  #       LATIN CAPITAL LETTER E\r
+0x46   0x0046  #       LATIN CAPITAL LETTER F\r
+0x47   0x0047  #       LATIN CAPITAL LETTER G\r
+0x48   0x0048  #       LATIN CAPITAL LETTER H\r
+0x49   0x0049  #       LATIN CAPITAL LETTER I\r
+0x4A   0x004A  #       LATIN CAPITAL LETTER J\r
+0x4B   0x004B  #       LATIN CAPITAL LETTER K\r
+0x4C   0x004C  #       LATIN CAPITAL LETTER L\r
+0x4D   0x004D  #       LATIN CAPITAL LETTER M\r
+0x4E   0x004E  #       LATIN CAPITAL LETTER N\r
+0x4F   0x004F  #       LATIN CAPITAL LETTER O\r
+0x50   0x0050  #       LATIN CAPITAL LETTER P\r
+0x51   0x0051  #       LATIN CAPITAL LETTER Q\r
+0x52   0x0052  #       LATIN CAPITAL LETTER R\r
+0x53   0x0053  #       LATIN CAPITAL LETTER S\r
+0x54   0x0054  #       LATIN CAPITAL LETTER T\r
+0x55   0x0055  #       LATIN CAPITAL LETTER U\r
+0x56   0x0056  #       LATIN CAPITAL LETTER V\r
+0x57   0x0057  #       LATIN CAPITAL LETTER W\r
+0x58   0x0058  #       LATIN CAPITAL LETTER X\r
+0x59   0x0059  #       LATIN CAPITAL LETTER Y\r
+0x5A   0x005A  #       LATIN CAPITAL LETTER Z\r
+0x5B   0x005B  #       LEFT SQUARE BRACKET\r
+0x5C   0x005C  #       REVERSE SOLIDUS\r
+0x5D   0x005D  #       RIGHT SQUARE BRACKET\r
+0x5E   0x005E  #       CIRCUMFLEX ACCENT\r
+0x5F   0x005F  #       LOW LINE\r
+0x60   0x0060  #       GRAVE ACCENT\r
+0x61   0x0061  #       LATIN SMALL LETTER A\r
+0x62   0x0062  #       LATIN SMALL LETTER B\r
+0x63   0x0063  #       LATIN SMALL LETTER C\r
+0x64   0x0064  #       LATIN SMALL LETTER D\r
+0x65   0x0065  #       LATIN SMALL LETTER E\r
+0x66   0x0066  #       LATIN SMALL LETTER F\r
+0x67   0x0067  #       LATIN SMALL LETTER G\r
+0x68   0x0068  #       LATIN SMALL LETTER H\r
+0x69   0x0069  #       LATIN SMALL LETTER I\r
+0x6A   0x006A  #       LATIN SMALL LETTER J\r
+0x6B   0x006B  #       LATIN SMALL LETTER K\r
+0x6C   0x006C  #       LATIN SMALL LETTER L\r
+0x6D   0x006D  #       LATIN SMALL LETTER M\r
+0x6E   0x006E  #       LATIN SMALL LETTER N\r
+0x6F   0x006F  #       LATIN SMALL LETTER O\r
+0x70   0x0070  #       LATIN SMALL LETTER P\r
+0x71   0x0071  #       LATIN SMALL LETTER Q\r
+0x72   0x0072  #       LATIN SMALL LETTER R\r
+0x73   0x0073  #       LATIN SMALL LETTER S\r
+0x74   0x0074  #       LATIN SMALL LETTER T\r
+0x75   0x0075  #       LATIN SMALL LETTER U\r
+0x76   0x0076  #       LATIN SMALL LETTER V\r
+0x77   0x0077  #       LATIN SMALL LETTER W\r
+0x78   0x0078  #       LATIN SMALL LETTER X\r
+0x79   0x0079  #       LATIN SMALL LETTER Y\r
+0x7A   0x007A  #       LATIN SMALL LETTER Z\r
+0x7B   0x007B  #       LEFT CURLY BRACKET\r
+0x7C   0x007C  #       VERTICAL LINE\r
+0x7D   0x007D  #       RIGHT CURLY BRACKET\r
+0x7E   0x007E  #       TILDE\r
+0x7F   0x007F  #       DELETE\r
+0x80   0x0080  #       <control>\r
+0x81   0x0081  #       <control>\r
+0x82   0x0082  #       <control>\r
+0x83   0x0083  #       <control>\r
+0x84   0x0084  #       <control>\r
+0x85   0x0085  #       <control>\r
+0x86   0x0086  #       <control>\r
+0x87   0x0087  #       <control>\r
+0x88   0x0088  #       <control>\r
+0x89   0x0089  #       <control>\r
+0x8A   0x008A  #       <control>\r
+0x8B   0x008B  #       <control>\r
+0x8C   0x008C  #       <control>\r
+0x8D   0x008D  #       <control>\r
+0x8E   0x008E  #       <control>\r
+0x8F   0x008F  #       <control>\r
+0x90   0x0090  #       <control>\r
+0x91   0x0091  #       <control>\r
+0x92   0x0092  #       <control>\r
+0x93   0x0093  #       <control>\r
+0x94   0x0094  #       <control>\r
+0x95   0x0095  #       <control>\r
+0x96   0x0096  #       <control>\r
+0x97   0x0097  #       <control>\r
+0x98   0x0098  #       <control>\r
+0x99   0x0099  #       <control>\r
+0x9A   0x009A  #       <control>\r
+0x9B   0x009B  #       <control>\r
+0x9C   0x009C  #       <control>\r
+0x9D   0x009D  #       <control>\r
+0x9E   0x009E  #       <control>\r
+0x9F   0x009F  #       <control>\r
+0xA0   0x00A0  #       NO-BREAK SPACE\r
+0xA1   0x2018  #       LEFT SINGLE QUOTATION MARK\r
+0xA2   0x2019  #       RIGHT SINGLE QUOTATION MARK\r
+0xA3   0x00A3  #       POUND SIGN\r
+0xA6   0x00A6  #       BROKEN BAR\r
+0xA7   0x00A7  #       SECTION SIGN\r
+0xA8   0x00A8  #       DIAERESIS\r
+0xA9   0x00A9  #       COPYRIGHT SIGN\r
+0xAB   0x00AB  #       LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xAC   0x00AC  #       NOT SIGN\r
+0xAD   0x00AD  #       SOFT HYPHEN\r
+0xAF   0x2015  #       HORIZONTAL BAR\r
+0xB0   0x00B0  #       DEGREE SIGN\r
+0xB1   0x00B1  #       PLUS-MINUS SIGN\r
+0xB2   0x00B2  #       SUPERSCRIPT TWO\r
+0xB3   0x00B3  #       SUPERSCRIPT THREE\r
+0xB4   0x0384  #       GREEK TONOS\r
+0xB5   0x0385  #       GREEK DIALYTIKA TONOS\r
+0xB6   0x0386  #       GREEK CAPITAL LETTER ALPHA WITH TONOS\r
+0xB7   0x00B7  #       MIDDLE DOT\r
+0xB8   0x0388  #       GREEK CAPITAL LETTER EPSILON WITH TONOS\r
+0xB9   0x0389  #       GREEK CAPITAL LETTER ETA WITH TONOS\r
+0xBA   0x038A  #       GREEK CAPITAL LETTER IOTA WITH TONOS\r
+0xBB   0x00BB  #       RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xBC   0x038C  #       GREEK CAPITAL LETTER OMICRON WITH TONOS\r
+0xBD   0x00BD  #       VULGAR FRACTION ONE HALF\r
+0xBE   0x038E  #       GREEK CAPITAL LETTER UPSILON WITH TONOS\r
+0xBF   0x038F  #       GREEK CAPITAL LETTER OMEGA WITH TONOS\r
+0xC0   0x0390  #       GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS\r
+0xC1   0x0391  #       GREEK CAPITAL LETTER ALPHA\r
+0xC2   0x0392  #       GREEK CAPITAL LETTER BETA\r
+0xC3   0x0393  #       GREEK CAPITAL LETTER GAMMA\r
+0xC4   0x0394  #       GREEK CAPITAL LETTER DELTA\r
+0xC5   0x0395  #       GREEK CAPITAL LETTER EPSILON\r
+0xC6   0x0396  #       GREEK CAPITAL LETTER ZETA\r
+0xC7   0x0397  #       GREEK CAPITAL LETTER ETA\r
+0xC8   0x0398  #       GREEK CAPITAL LETTER THETA\r
+0xC9   0x0399  #       GREEK CAPITAL LETTER IOTA\r
+0xCA   0x039A  #       GREEK CAPITAL LETTER KAPPA\r
+0xCB   0x039B  #       GREEK CAPITAL LETTER LAMDA\r
+0xCC   0x039C  #       GREEK CAPITAL LETTER MU\r
+0xCD   0x039D  #       GREEK CAPITAL LETTER NU\r
+0xCE   0x039E  #       GREEK CAPITAL LETTER XI\r
+0xCF   0x039F  #       GREEK CAPITAL LETTER OMICRON\r
+0xD0   0x03A0  #       GREEK CAPITAL LETTER PI\r
+0xD1   0x03A1  #       GREEK CAPITAL LETTER RHO\r
+0xD3   0x03A3  #       GREEK CAPITAL LETTER SIGMA\r
+0xD4   0x03A4  #       GREEK CAPITAL LETTER TAU\r
+0xD5   0x03A5  #       GREEK CAPITAL LETTER UPSILON\r
+0xD6   0x03A6  #       GREEK CAPITAL LETTER PHI\r
+0xD7   0x03A7  #       GREEK CAPITAL LETTER CHI\r
+0xD8   0x03A8  #       GREEK CAPITAL LETTER PSI\r
+0xD9   0x03A9  #       GREEK CAPITAL LETTER OMEGA\r
+0xDA   0x03AA  #       GREEK CAPITAL LETTER IOTA WITH DIALYTIKA\r
+0xDB   0x03AB  #       GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA\r
+0xDC   0x03AC  #       GREEK SMALL LETTER ALPHA WITH TONOS\r
+0xDD   0x03AD  #       GREEK SMALL LETTER EPSILON WITH TONOS\r
+0xDE   0x03AE  #       GREEK SMALL LETTER ETA WITH TONOS\r
+0xDF   0x03AF  #       GREEK SMALL LETTER IOTA WITH TONOS\r
+0xE0   0x03B0  #       GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS\r
+0xE1   0x03B1  #       GREEK SMALL LETTER ALPHA\r
+0xE2   0x03B2  #       GREEK SMALL LETTER BETA\r
+0xE3   0x03B3  #       GREEK SMALL LETTER GAMMA\r
+0xE4   0x03B4  #       GREEK SMALL LETTER DELTA\r
+0xE5   0x03B5  #       GREEK SMALL LETTER EPSILON\r
+0xE6   0x03B6  #       GREEK SMALL LETTER ZETA\r
+0xE7   0x03B7  #       GREEK SMALL LETTER ETA\r
+0xE8   0x03B8  #       GREEK SMALL LETTER THETA\r
+0xE9   0x03B9  #       GREEK SMALL LETTER IOTA\r
+0xEA   0x03BA  #       GREEK SMALL LETTER KAPPA\r
+0xEB   0x03BB  #       GREEK SMALL LETTER LAMDA\r
+0xEC   0x03BC  #       GREEK SMALL LETTER MU\r
+0xED   0x03BD  #       GREEK SMALL LETTER NU\r
+0xEE   0x03BE  #       GREEK SMALL LETTER XI\r
+0xEF   0x03BF  #       GREEK SMALL LETTER OMICRON\r
+0xF0   0x03C0  #       GREEK SMALL LETTER PI\r
+0xF1   0x03C1  #       GREEK SMALL LETTER RHO\r
+0xF2   0x03C2  #       GREEK SMALL LETTER FINAL SIGMA\r
+0xF3   0x03C3  #       GREEK SMALL LETTER SIGMA\r
+0xF4   0x03C4  #       GREEK SMALL LETTER TAU\r
+0xF5   0x03C5  #       GREEK SMALL LETTER UPSILON\r
+0xF6   0x03C6  #       GREEK SMALL LETTER PHI\r
+0xF7   0x03C7  #       GREEK SMALL LETTER CHI\r
+0xF8   0x03C8  #       GREEK SMALL LETTER PSI\r
+0xF9   0x03C9  #       GREEK SMALL LETTER OMEGA\r
+0xFA   0x03CA  #       GREEK SMALL LETTER IOTA WITH DIALYTIKA\r
+0xFB   0x03CB  #       GREEK SMALL LETTER UPSILON WITH DIALYTIKA\r
+0xFC   0x03CC  #       GREEK SMALL LETTER OMICRON WITH TONOS\r
+0xFD   0x03CD  #       GREEK SMALL LETTER UPSILON WITH TONOS\r
+0xFE   0x03CE  #       GREEK SMALL LETTER OMEGA WITH TONOS\r
diff --git a/data/iso-8859-8.txt b/data/iso-8859-8.txt
new file mode 100644 (file)
index 0000000..74685aa
--- /dev/null
@@ -0,0 +1,270 @@
+#\r
+#      Name:             ISO/IEC 8859-8:1999 to Unicode\r
+#      Unicode version:  3.0\r
+#      Table version:    1.1\r
+#      Table format:     Format A\r
+#      Date:             2000-Jan-03\r
+#      Authors:          Ken Whistler <kenw@sybase.com>\r
+#\r
+#      Copyright (c) 1991-1999 Unicode, Inc.  All Rights reserved.\r
+#\r
+#      This file is provided as-is by Unicode, Inc. (The Unicode Consortium).\r
+#      No claims are made as to fitness for any particular purpose.  No\r
+#      warranties of any kind are expressed or implied.  The recipient\r
+#      agrees to determine applicability of information provided.  If this\r
+#      file has been provided on optical media by Unicode, Inc., the sole\r
+#      remedy for any claim will be exchange of defective media within 90\r
+#      days of receipt.\r
+#\r
+#      Unicode, Inc. hereby grants the right to freely use the information\r
+#      supplied in this file in the creation of products supporting the\r
+#      Unicode Standard, and to make copies of this file in any form for\r
+#      internal or external distribution as long as this notice remains\r
+#      attached.\r
+#\r
+#      General notes:\r
+#\r
+#      This table contains the data the Unicode Consortium has on how\r
+#       ISO/IEC 8859-8:1999 characters map into Unicode.\r
+#\r
+#      Format:  Three tab-separated columns\r
+#               Column #1 is the ISO/IEC 8859-8 code (in hex as 0xXX)\r
+#               Column #2 is the Unicode (in hex as 0xXXXX)\r
+#               Column #3 the Unicode name (follows a comment sign, '#')\r
+#\r
+#      The entries are in ISO/IEC 8859-8 order.\r
+#\r
+#      Version history\r
+#      1.0 version updates 0.1 version by adding mappings for all\r
+#      control characters.\r
+#       1.1 version updates to the published 8859-8:1999, correcting\r
+#          the mapping of 0xAF and adding mappings for LRM and RLM.\r
+#\r
+#      Updated versions of this file may be found in:\r
+#              <ftp://ftp.unicode.org/Public/MAPPINGS/>\r
+#\r
+#      Any comments or problems, contact <errata@unicode.org>\r
+#      Please note that <errata@unicode.org> is an archival address;\r
+#      notices will be checked, but do not expect an immediate response.\r
+#\r
+0x00   0x0000  #       NULL\r
+0x01   0x0001  #       START OF HEADING\r
+0x02   0x0002  #       START OF TEXT\r
+0x03   0x0003  #       END OF TEXT\r
+0x04   0x0004  #       END OF TRANSMISSION\r
+0x05   0x0005  #       ENQUIRY\r
+0x06   0x0006  #       ACKNOWLEDGE\r
+0x07   0x0007  #       BELL\r
+0x08   0x0008  #       BACKSPACE\r
+0x09   0x0009  #       HORIZONTAL TABULATION\r
+0x0A   0x000A  #       LINE FEED\r
+0x0B   0x000B  #       VERTICAL TABULATION\r
+0x0C   0x000C  #       FORM FEED\r
+0x0D   0x000D  #       CARRIAGE RETURN\r
+0x0E   0x000E  #       SHIFT OUT\r
+0x0F   0x000F  #       SHIFT IN\r
+0x10   0x0010  #       DATA LINK ESCAPE\r
+0x11   0x0011  #       DEVICE CONTROL ONE\r
+0x12   0x0012  #       DEVICE CONTROL TWO\r
+0x13   0x0013  #       DEVICE CONTROL THREE\r
+0x14   0x0014  #       DEVICE CONTROL FOUR\r
+0x15   0x0015  #       NEGATIVE ACKNOWLEDGE\r
+0x16   0x0016  #       SYNCHRONOUS IDLE\r
+0x17   0x0017  #       END OF TRANSMISSION BLOCK\r
+0x18   0x0018  #       CANCEL\r
+0x19   0x0019  #       END OF MEDIUM\r
+0x1A   0x001A  #       SUBSTITUTE\r
+0x1B   0x001B  #       ESCAPE\r
+0x1C   0x001C  #       FILE SEPARATOR\r
+0x1D   0x001D  #       GROUP SEPARATOR\r
+0x1E   0x001E  #       RECORD SEPARATOR\r
+0x1F   0x001F  #       UNIT SEPARATOR\r
+0x20   0x0020  #       SPACE\r
+0x21   0x0021  #       EXCLAMATION MARK\r
+0x22   0x0022  #       QUOTATION MARK\r
+0x23   0x0023  #       NUMBER SIGN\r
+0x24   0x0024  #       DOLLAR SIGN\r
+0x25   0x0025  #       PERCENT SIGN\r
+0x26   0x0026  #       AMPERSAND\r
+0x27   0x0027  #       APOSTROPHE\r
+0x28   0x0028  #       LEFT PARENTHESIS\r
+0x29   0x0029  #       RIGHT PARENTHESIS\r
+0x2A   0x002A  #       ASTERISK\r
+0x2B   0x002B  #       PLUS SIGN\r
+0x2C   0x002C  #       COMMA\r
+0x2D   0x002D  #       HYPHEN-MINUS\r
+0x2E   0x002E  #       FULL STOP\r
+0x2F   0x002F  #       SOLIDUS\r
+0x30   0x0030  #       DIGIT ZERO\r
+0x31   0x0031  #       DIGIT ONE\r
+0x32   0x0032  #       DIGIT TWO\r
+0x33   0x0033  #       DIGIT THREE\r
+0x34   0x0034  #       DIGIT FOUR\r
+0x35   0x0035  #       DIGIT FIVE\r
+0x36   0x0036  #       DIGIT SIX\r
+0x37   0x0037  #       DIGIT SEVEN\r
+0x38   0x0038  #       DIGIT EIGHT\r
+0x39   0x0039  #       DIGIT NINE\r
+0x3A   0x003A  #       COLON\r
+0x3B   0x003B  #       SEMICOLON\r
+0x3C   0x003C  #       LESS-THAN SIGN\r
+0x3D   0x003D  #       EQUALS SIGN\r
+0x3E   0x003E  #       GREATER-THAN SIGN\r
+0x3F   0x003F  #       QUESTION MARK\r
+0x40   0x0040  #       COMMERCIAL AT\r
+0x41   0x0041  #       LATIN CAPITAL LETTER A\r
+0x42   0x0042  #       LATIN CAPITAL LETTER B\r
+0x43   0x0043  #       LATIN CAPITAL LETTER C\r
+0x44   0x0044  #       LATIN CAPITAL LETTER D\r
+0x45   0x0045  #       LATIN CAPITAL LETTER E\r
+0x46   0x0046  #       LATIN CAPITAL LETTER F\r
+0x47   0x0047  #       LATIN CAPITAL LETTER G\r
+0x48   0x0048  #       LATIN CAPITAL LETTER H\r
+0x49   0x0049  #       LATIN CAPITAL LETTER I\r
+0x4A   0x004A  #       LATIN CAPITAL LETTER J\r
+0x4B   0x004B  #       LATIN CAPITAL LETTER K\r
+0x4C   0x004C  #       LATIN CAPITAL LETTER L\r
+0x4D   0x004D  #       LATIN CAPITAL LETTER M\r
+0x4E   0x004E  #       LATIN CAPITAL LETTER N\r
+0x4F   0x004F  #       LATIN CAPITAL LETTER O\r
+0x50   0x0050  #       LATIN CAPITAL LETTER P\r
+0x51   0x0051  #       LATIN CAPITAL LETTER Q\r
+0x52   0x0052  #       LATIN CAPITAL LETTER R\r
+0x53   0x0053  #       LATIN CAPITAL LETTER S\r
+0x54   0x0054  #       LATIN CAPITAL LETTER T\r
+0x55   0x0055  #       LATIN CAPITAL LETTER U\r
+0x56   0x0056  #       LATIN CAPITAL LETTER V\r
+0x57   0x0057  #       LATIN CAPITAL LETTER W\r
+0x58   0x0058  #       LATIN CAPITAL LETTER X\r
+0x59   0x0059  #       LATIN CAPITAL LETTER Y\r
+0x5A   0x005A  #       LATIN CAPITAL LETTER Z\r
+0x5B   0x005B  #       LEFT SQUARE BRACKET\r
+0x5C   0x005C  #       REVERSE SOLIDUS\r
+0x5D   0x005D  #       RIGHT SQUARE BRACKET\r
+0x5E   0x005E  #       CIRCUMFLEX ACCENT\r
+0x5F   0x005F  #       LOW LINE\r
+0x60   0x0060  #       GRAVE ACCENT\r
+0x61   0x0061  #       LATIN SMALL LETTER A\r
+0x62   0x0062  #       LATIN SMALL LETTER B\r
+0x63   0x0063  #       LATIN SMALL LETTER C\r
+0x64   0x0064  #       LATIN SMALL LETTER D\r
+0x65   0x0065  #       LATIN SMALL LETTER E\r
+0x66   0x0066  #       LATIN SMALL LETTER F\r
+0x67   0x0067  #       LATIN SMALL LETTER G\r
+0x68   0x0068  #       LATIN SMALL LETTER H\r
+0x69   0x0069  #       LATIN SMALL LETTER I\r
+0x6A   0x006A  #       LATIN SMALL LETTER J\r
+0x6B   0x006B  #       LATIN SMALL LETTER K\r
+0x6C   0x006C  #       LATIN SMALL LETTER L\r
+0x6D   0x006D  #       LATIN SMALL LETTER M\r
+0x6E   0x006E  #       LATIN SMALL LETTER N\r
+0x6F   0x006F  #       LATIN SMALL LETTER O\r
+0x70   0x0070  #       LATIN SMALL LETTER P\r
+0x71   0x0071  #       LATIN SMALL LETTER Q\r
+0x72   0x0072  #       LATIN SMALL LETTER R\r
+0x73   0x0073  #       LATIN SMALL LETTER S\r
+0x74   0x0074  #       LATIN SMALL LETTER T\r
+0x75   0x0075  #       LATIN SMALL LETTER U\r
+0x76   0x0076  #       LATIN SMALL LETTER V\r
+0x77   0x0077  #       LATIN SMALL LETTER W\r
+0x78   0x0078  #       LATIN SMALL LETTER X\r
+0x79   0x0079  #       LATIN SMALL LETTER Y\r
+0x7A   0x007A  #       LATIN SMALL LETTER Z\r
+0x7B   0x007B  #       LEFT CURLY BRACKET\r
+0x7C   0x007C  #       VERTICAL LINE\r
+0x7D   0x007D  #       RIGHT CURLY BRACKET\r
+0x7E   0x007E  #       TILDE\r
+0x7F   0x007F  #       DELETE\r
+0x80   0x0080  #       <control>\r
+0x81   0x0081  #       <control>\r
+0x82   0x0082  #       <control>\r
+0x83   0x0083  #       <control>\r
+0x84   0x0084  #       <control>\r
+0x85   0x0085  #       <control>\r
+0x86   0x0086  #       <control>\r
+0x87   0x0087  #       <control>\r
+0x88   0x0088  #       <control>\r
+0x89   0x0089  #       <control>\r
+0x8A   0x008A  #       <control>\r
+0x8B   0x008B  #       <control>\r
+0x8C   0x008C  #       <control>\r
+0x8D   0x008D  #       <control>\r
+0x8E   0x008E  #       <control>\r
+0x8F   0x008F  #       <control>\r
+0x90   0x0090  #       <control>\r
+0x91   0x0091  #       <control>\r
+0x92   0x0092  #       <control>\r
+0x93   0x0093  #       <control>\r
+0x94   0x0094  #       <control>\r
+0x95   0x0095  #       <control>\r
+0x96   0x0096  #       <control>\r
+0x97   0x0097  #       <control>\r
+0x98   0x0098  #       <control>\r
+0x99   0x0099  #       <control>\r
+0x9A   0x009A  #       <control>\r
+0x9B   0x009B  #       <control>\r
+0x9C   0x009C  #       <control>\r
+0x9D   0x009D  #       <control>\r
+0x9E   0x009E  #       <control>\r
+0x9F   0x009F  #       <control>\r
+0xA0   0x00A0  #       NO-BREAK SPACE\r
+0xA2   0x00A2  #       CENT SIGN\r
+0xA3   0x00A3  #       POUND SIGN\r
+0xA4   0x00A4  #       CURRENCY SIGN\r
+0xA5   0x00A5  #       YEN SIGN\r
+0xA6   0x00A6  #       BROKEN BAR\r
+0xA7   0x00A7  #       SECTION SIGN\r
+0xA8   0x00A8  #       DIAERESIS\r
+0xA9   0x00A9  #       COPYRIGHT SIGN\r
+0xAA   0x00D7  #       MULTIPLICATION SIGN\r
+0xAB   0x00AB  #       LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xAC   0x00AC  #       NOT SIGN\r
+0xAD   0x00AD  #       SOFT HYPHEN\r
+0xAE   0x00AE  #       REGISTERED SIGN\r
+0xAF   0x00AF  #       MACRON\r
+0xB0   0x00B0  #       DEGREE SIGN\r
+0xB1   0x00B1  #       PLUS-MINUS SIGN\r
+0xB2   0x00B2  #       SUPERSCRIPT TWO\r
+0xB3   0x00B3  #       SUPERSCRIPT THREE\r
+0xB4   0x00B4  #       ACUTE ACCENT\r
+0xB5   0x00B5  #       MICRO SIGN\r
+0xB6   0x00B6  #       PILCROW SIGN\r
+0xB7   0x00B7  #       MIDDLE DOT\r
+0xB8   0x00B8  #       CEDILLA\r
+0xB9   0x00B9  #       SUPERSCRIPT ONE\r
+0xBA   0x00F7  #       DIVISION SIGN\r
+0xBB   0x00BB  #       RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xBC   0x00BC  #       VULGAR FRACTION ONE QUARTER\r
+0xBD   0x00BD  #       VULGAR FRACTION ONE HALF\r
+0xBE   0x00BE  #       VULGAR FRACTION THREE QUARTERS\r
+0xDF   0x2017  #       DOUBLE LOW LINE\r
+0xE0   0x05D0  #       HEBREW LETTER ALEF\r
+0xE1   0x05D1  #       HEBREW LETTER BET\r
+0xE2   0x05D2  #       HEBREW LETTER GIMEL\r
+0xE3   0x05D3  #       HEBREW LETTER DALET\r
+0xE4   0x05D4  #       HEBREW LETTER HE\r
+0xE5   0x05D5  #       HEBREW LETTER VAV\r
+0xE6   0x05D6  #       HEBREW LETTER ZAYIN\r
+0xE7   0x05D7  #       HEBREW LETTER HET\r
+0xE8   0x05D8  #       HEBREW LETTER TET\r
+0xE9   0x05D9  #       HEBREW LETTER YOD\r
+0xEA   0x05DA  #       HEBREW LETTER FINAL KAF\r
+0xEB   0x05DB  #       HEBREW LETTER KAF\r
+0xEC   0x05DC  #       HEBREW LETTER LAMED\r
+0xED   0x05DD  #       HEBREW LETTER FINAL MEM\r
+0xEE   0x05DE  #       HEBREW LETTER MEM\r
+0xEF   0x05DF  #       HEBREW LETTER FINAL NUN\r
+0xF0   0x05E0  #       HEBREW LETTER NUN\r
+0xF1   0x05E1  #       HEBREW LETTER SAMEKH\r
+0xF2   0x05E2  #       HEBREW LETTER AYIN\r
+0xF3   0x05E3  #       HEBREW LETTER FINAL PE\r
+0xF4   0x05E4  #       HEBREW LETTER PE\r
+0xF5   0x05E5  #       HEBREW LETTER FINAL TSADI\r
+0xF6   0x05E6  #       HEBREW LETTER TSADI\r
+0xF7   0x05E7  #       HEBREW LETTER QOF\r
+0xF8   0x05E8  #       HEBREW LETTER RESH\r
+0xF9   0x05E9  #       HEBREW LETTER SHIN\r
+0xFA   0x05EA  #       HEBREW LETTER TAV\r
+0xFD   0x200E  #       LEFT-TO-RIGHT MARK\r
+0xFE   0x200F  #       RIGHT-TO-LEFT MARK\r
+\r
diff --git a/data/iso-8859-9.txt b/data/iso-8859-9.txt
new file mode 100644 (file)
index 0000000..be56195
--- /dev/null
@@ -0,0 +1,307 @@
+#\r
+#      Name:             ISO/IEC 8859-9:1999 to Unicode\r
+#      Unicode version:  3.0\r
+#      Table version:    1.0\r
+#      Table format:     Format A\r
+#      Date:             1999 July 27\r
+#      Authors:          Ken Whistler <kenw@sybase.com>\r
+#\r
+#      Copyright (c) 1991-1999 Unicode, Inc.  All Rights reserved.\r
+#\r
+#      This file is provided as-is by Unicode, Inc. (The Unicode Consortium).\r
+#      No claims are made as to fitness for any particular purpose.  No\r
+#      warranties of any kind are expressed or implied.  The recipient\r
+#      agrees to determine applicability of information provided.  If this\r
+#      file has been provided on magnetic media by Unicode, Inc., the sole\r
+#      remedy for any claim will be exchange of defective media within 90\r
+#      days of receipt.\r
+#\r
+#      Unicode, Inc. hereby grants the right to freely use the information\r
+#      supplied in this file in the creation of products supporting the\r
+#      Unicode Standard, and to make copies of this file in any form for\r
+#      internal or external distribution as long as this notice remains\r
+#      attached.\r
+#\r
+#      General notes:\r
+#\r
+#      This table contains the data the Unicode Consortium has on how\r
+#       ISO/IEC 8859-9:1999 characters map into Unicode.\r
+#\r
+#      Format:  Three tab-separated columns\r
+#               Column #1 is the ISO/IEC 8859-9 code (in hex as 0xXX)\r
+#               Column #2 is the Unicode (in hex as 0xXXXX)\r
+#               Column #3 the Unicode name (follows a comment sign, '#')\r
+#\r
+#      The entries are in ISO/IEC 8859-9 order.\r
+#\r
+#      ISO/IEC 8859-9 is also equivalent to ISO-IR-148.\r
+#\r
+#      Version history\r
+#      1.0 version updates 0.1 version by adding mappings for all\r
+#      control characters.\r
+#\r
+#      Updated versions of this file may be found in:\r
+#              <ftp://ftp.unicode.org/Public/MAPPINGS/>\r
+#\r
+#      Any comments or problems, contact <errata@unicode.org>\r
+#      Please note that <errata@unicode.org> is an archival address;\r
+#      notices will be checked, but do not expect an immediate response.\r
+#\r
+0x00   0x0000  #       NULL\r
+0x01   0x0001  #       START OF HEADING\r
+0x02   0x0002  #       START OF TEXT\r
+0x03   0x0003  #       END OF TEXT\r
+0x04   0x0004  #       END OF TRANSMISSION\r
+0x05   0x0005  #       ENQUIRY\r
+0x06   0x0006  #       ACKNOWLEDGE\r
+0x07   0x0007  #       BELL\r
+0x08   0x0008  #       BACKSPACE\r
+0x09   0x0009  #       HORIZONTAL TABULATION\r
+0x0A   0x000A  #       LINE FEED\r
+0x0B   0x000B  #       VERTICAL TABULATION\r
+0x0C   0x000C  #       FORM FEED\r
+0x0D   0x000D  #       CARRIAGE RETURN\r
+0x0E   0x000E  #       SHIFT OUT\r
+0x0F   0x000F  #       SHIFT IN\r
+0x10   0x0010  #       DATA LINK ESCAPE\r
+0x11   0x0011  #       DEVICE CONTROL ONE\r
+0x12   0x0012  #       DEVICE CONTROL TWO\r
+0x13   0x0013  #       DEVICE CONTROL THREE\r
+0x14   0x0014  #       DEVICE CONTROL FOUR\r
+0x15   0x0015  #       NEGATIVE ACKNOWLEDGE\r
+0x16   0x0016  #       SYNCHRONOUS IDLE\r
+0x17   0x0017  #       END OF TRANSMISSION BLOCK\r
+0x18   0x0018  #       CANCEL\r
+0x19   0x0019  #       END OF MEDIUM\r
+0x1A   0x001A  #       SUBSTITUTE\r
+0x1B   0x001B  #       ESCAPE\r
+0x1C   0x001C  #       FILE SEPARATOR\r
+0x1D   0x001D  #       GROUP SEPARATOR\r
+0x1E   0x001E  #       RECORD SEPARATOR\r
+0x1F   0x001F  #       UNIT SEPARATOR\r
+0x20   0x0020  #       SPACE\r
+0x21   0x0021  #       EXCLAMATION MARK\r
+0x22   0x0022  #       QUOTATION MARK\r
+0x23   0x0023  #       NUMBER SIGN\r
+0x24   0x0024  #       DOLLAR SIGN\r
+0x25   0x0025  #       PERCENT SIGN\r
+0x26   0x0026  #       AMPERSAND\r
+0x27   0x0027  #       APOSTROPHE\r
+0x28   0x0028  #       LEFT PARENTHESIS\r
+0x29   0x0029  #       RIGHT PARENTHESIS\r
+0x2A   0x002A  #       ASTERISK\r
+0x2B   0x002B  #       PLUS SIGN\r
+0x2C   0x002C  #       COMMA\r
+0x2D   0x002D  #       HYPHEN-MINUS\r
+0x2E   0x002E  #       FULL STOP\r
+0x2F   0x002F  #       SOLIDUS\r
+0x30   0x0030  #       DIGIT ZERO\r
+0x31   0x0031  #       DIGIT ONE\r
+0x32   0x0032  #       DIGIT TWO\r
+0x33   0x0033  #       DIGIT THREE\r
+0x34   0x0034  #       DIGIT FOUR\r
+0x35   0x0035  #       DIGIT FIVE\r
+0x36   0x0036  #       DIGIT SIX\r
+0x37   0x0037  #       DIGIT SEVEN\r
+0x38   0x0038  #       DIGIT EIGHT\r
+0x39   0x0039  #       DIGIT NINE\r
+0x3A   0x003A  #       COLON\r
+0x3B   0x003B  #       SEMICOLON\r
+0x3C   0x003C  #       LESS-THAN SIGN\r
+0x3D   0x003D  #       EQUALS SIGN\r
+0x3E   0x003E  #       GREATER-THAN SIGN\r
+0x3F   0x003F  #       QUESTION MARK\r
+0x40   0x0040  #       COMMERCIAL AT\r
+0x41   0x0041  #       LATIN CAPITAL LETTER A\r
+0x42   0x0042  #       LATIN CAPITAL LETTER B\r
+0x43   0x0043  #       LATIN CAPITAL LETTER C\r
+0x44   0x0044  #       LATIN CAPITAL LETTER D\r
+0x45   0x0045  #       LATIN CAPITAL LETTER E\r
+0x46   0x0046  #       LATIN CAPITAL LETTER F\r
+0x47   0x0047  #       LATIN CAPITAL LETTER G\r
+0x48   0x0048  #       LATIN CAPITAL LETTER H\r
+0x49   0x0049  #       LATIN CAPITAL LETTER I\r
+0x4A   0x004A  #       LATIN CAPITAL LETTER J\r
+0x4B   0x004B  #       LATIN CAPITAL LETTER K\r
+0x4C   0x004C  #       LATIN CAPITAL LETTER L\r
+0x4D   0x004D  #       LATIN CAPITAL LETTER M\r
+0x4E   0x004E  #       LATIN CAPITAL LETTER N\r
+0x4F   0x004F  #       LATIN CAPITAL LETTER O\r
+0x50   0x0050  #       LATIN CAPITAL LETTER P\r
+0x51   0x0051  #       LATIN CAPITAL LETTER Q\r
+0x52   0x0052  #       LATIN CAPITAL LETTER R\r
+0x53   0x0053  #       LATIN CAPITAL LETTER S\r
+0x54   0x0054  #       LATIN CAPITAL LETTER T\r
+0x55   0x0055  #       LATIN CAPITAL LETTER U\r
+0x56   0x0056  #       LATIN CAPITAL LETTER V\r
+0x57   0x0057  #       LATIN CAPITAL LETTER W\r
+0x58   0x0058  #       LATIN CAPITAL LETTER X\r
+0x59   0x0059  #       LATIN CAPITAL LETTER Y\r
+0x5A   0x005A  #       LATIN CAPITAL LETTER Z\r
+0x5B   0x005B  #       LEFT SQUARE BRACKET\r
+0x5C   0x005C  #       REVERSE SOLIDUS\r
+0x5D   0x005D  #       RIGHT SQUARE BRACKET\r
+0x5E   0x005E  #       CIRCUMFLEX ACCENT\r
+0x5F   0x005F  #       LOW LINE\r
+0x60   0x0060  #       GRAVE ACCENT\r
+0x61   0x0061  #       LATIN SMALL LETTER A\r
+0x62   0x0062  #       LATIN SMALL LETTER B\r
+0x63   0x0063  #       LATIN SMALL LETTER C\r
+0x64   0x0064  #       LATIN SMALL LETTER D\r
+0x65   0x0065  #       LATIN SMALL LETTER E\r
+0x66   0x0066  #       LATIN SMALL LETTER F\r
+0x67   0x0067  #       LATIN SMALL LETTER G\r
+0x68   0x0068  #       LATIN SMALL LETTER H\r
+0x69   0x0069  #       LATIN SMALL LETTER I\r
+0x6A   0x006A  #       LATIN SMALL LETTER J\r
+0x6B   0x006B  #       LATIN SMALL LETTER K\r
+0x6C   0x006C  #       LATIN SMALL LETTER L\r
+0x6D   0x006D  #       LATIN SMALL LETTER M\r
+0x6E   0x006E  #       LATIN SMALL LETTER N\r
+0x6F   0x006F  #       LATIN SMALL LETTER O\r
+0x70   0x0070  #       LATIN SMALL LETTER P\r
+0x71   0x0071  #       LATIN SMALL LETTER Q\r
+0x72   0x0072  #       LATIN SMALL LETTER R\r
+0x73   0x0073  #       LATIN SMALL LETTER S\r
+0x74   0x0074  #       LATIN SMALL LETTER T\r
+0x75   0x0075  #       LATIN SMALL LETTER U\r
+0x76   0x0076  #       LATIN SMALL LETTER V\r
+0x77   0x0077  #       LATIN SMALL LETTER W\r
+0x78   0x0078  #       LATIN SMALL LETTER X\r
+0x79   0x0079  #       LATIN SMALL LETTER Y\r
+0x7A   0x007A  #       LATIN SMALL LETTER Z\r
+0x7B   0x007B  #       LEFT CURLY BRACKET\r
+0x7C   0x007C  #       VERTICAL LINE\r
+0x7D   0x007D  #       RIGHT CURLY BRACKET\r
+0x7E   0x007E  #       TILDE\r
+0x7F   0x007F  #       DELETE\r
+0x80   0x0080  #       <control>\r
+0x81   0x0081  #       <control>\r
+0x82   0x0082  #       <control>\r
+0x83   0x0083  #       <control>\r
+0x84   0x0084  #       <control>\r
+0x85   0x0085  #       <control>\r
+0x86   0x0086  #       <control>\r
+0x87   0x0087  #       <control>\r
+0x88   0x0088  #       <control>\r
+0x89   0x0089  #       <control>\r
+0x8A   0x008A  #       <control>\r
+0x8B   0x008B  #       <control>\r
+0x8C   0x008C  #       <control>\r
+0x8D   0x008D  #       <control>\r
+0x8E   0x008E  #       <control>\r
+0x8F   0x008F  #       <control>\r
+0x90   0x0090  #       <control>\r
+0x91   0x0091  #       <control>\r
+0x92   0x0092  #       <control>\r
+0x93   0x0093  #       <control>\r
+0x94   0x0094  #       <control>\r
+0x95   0x0095  #       <control>\r
+0x96   0x0096  #       <control>\r
+0x97   0x0097  #       <control>\r
+0x98   0x0098  #       <control>\r
+0x99   0x0099  #       <control>\r
+0x9A   0x009A  #       <control>\r
+0x9B   0x009B  #       <control>\r
+0x9C   0x009C  #       <control>\r
+0x9D   0x009D  #       <control>\r
+0x9E   0x009E  #       <control>\r
+0x9F   0x009F  #       <control>\r
+0xA0   0x00A0  #       NO-BREAK SPACE\r
+0xA1   0x00A1  #       INVERTED EXCLAMATION MARK\r
+0xA2   0x00A2  #       CENT SIGN\r
+0xA3   0x00A3  #       POUND SIGN\r
+0xA4   0x00A4  #       CURRENCY SIGN\r
+0xA5   0x00A5  #       YEN SIGN\r
+0xA6   0x00A6  #       BROKEN BAR\r
+0xA7   0x00A7  #       SECTION SIGN\r
+0xA8   0x00A8  #       DIAERESIS\r
+0xA9   0x00A9  #       COPYRIGHT SIGN\r
+0xAA   0x00AA  #       FEMININE ORDINAL INDICATOR\r
+0xAB   0x00AB  #       LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xAC   0x00AC  #       NOT SIGN\r
+0xAD   0x00AD  #       SOFT HYPHEN\r
+0xAE   0x00AE  #       REGISTERED SIGN\r
+0xAF   0x00AF  #       MACRON\r
+0xB0   0x00B0  #       DEGREE SIGN\r
+0xB1   0x00B1  #       PLUS-MINUS SIGN\r
+0xB2   0x00B2  #       SUPERSCRIPT TWO\r
+0xB3   0x00B3  #       SUPERSCRIPT THREE\r
+0xB4   0x00B4  #       ACUTE ACCENT\r
+0xB5   0x00B5  #       MICRO SIGN\r
+0xB6   0x00B6  #       PILCROW SIGN\r
+0xB7   0x00B7  #       MIDDLE DOT\r
+0xB8   0x00B8  #       CEDILLA\r
+0xB9   0x00B9  #       SUPERSCRIPT ONE\r
+0xBA   0x00BA  #       MASCULINE ORDINAL INDICATOR\r
+0xBB   0x00BB  #       RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xBC   0x00BC  #       VULGAR FRACTION ONE QUARTER\r
+0xBD   0x00BD  #       VULGAR FRACTION ONE HALF\r
+0xBE   0x00BE  #       VULGAR FRACTION THREE QUARTERS\r
+0xBF   0x00BF  #       INVERTED QUESTION MARK\r
+0xC0   0x00C0  #       LATIN CAPITAL LETTER A WITH GRAVE\r
+0xC1   0x00C1  #       LATIN CAPITAL LETTER A WITH ACUTE\r
+0xC2   0x00C2  #       LATIN CAPITAL LETTER A WITH CIRCUMFLEX\r
+0xC3   0x00C3  #       LATIN CAPITAL LETTER A WITH TILDE\r
+0xC4   0x00C4  #       LATIN CAPITAL LETTER A WITH DIAERESIS\r
+0xC5   0x00C5  #       LATIN CAPITAL LETTER A WITH RING ABOVE\r
+0xC6   0x00C6  #       LATIN CAPITAL LETTER AE\r
+0xC7   0x00C7  #       LATIN CAPITAL LETTER C WITH CEDILLA\r
+0xC8   0x00C8  #       LATIN CAPITAL LETTER E WITH GRAVE\r
+0xC9   0x00C9  #       LATIN CAPITAL LETTER E WITH ACUTE\r
+0xCA   0x00CA  #       LATIN CAPITAL LETTER E WITH CIRCUMFLEX\r
+0xCB   0x00CB  #       LATIN CAPITAL LETTER E WITH DIAERESIS\r
+0xCC   0x00CC  #       LATIN CAPITAL LETTER I WITH GRAVE\r
+0xCD   0x00CD  #       LATIN CAPITAL LETTER I WITH ACUTE\r
+0xCE   0x00CE  #       LATIN CAPITAL LETTER I WITH CIRCUMFLEX\r
+0xCF   0x00CF  #       LATIN CAPITAL LETTER I WITH DIAERESIS\r
+0xD0   0x011E  #       LATIN CAPITAL LETTER G WITH BREVE\r
+0xD1   0x00D1  #       LATIN CAPITAL LETTER N WITH TILDE\r
+0xD2   0x00D2  #       LATIN CAPITAL LETTER O WITH GRAVE\r
+0xD3   0x00D3  #       LATIN CAPITAL LETTER O WITH ACUTE\r
+0xD4   0x00D4  #       LATIN CAPITAL LETTER O WITH CIRCUMFLEX\r
+0xD5   0x00D5  #       LATIN CAPITAL LETTER O WITH TILDE\r
+0xD6   0x00D6  #       LATIN CAPITAL LETTER O WITH DIAERESIS\r
+0xD7   0x00D7  #       MULTIPLICATION SIGN\r
+0xD8   0x00D8  #       LATIN CAPITAL LETTER O WITH STROKE\r
+0xD9   0x00D9  #       LATIN CAPITAL LETTER U WITH GRAVE\r
+0xDA   0x00DA  #       LATIN CAPITAL LETTER U WITH ACUTE\r
+0xDB   0x00DB  #       LATIN CAPITAL LETTER U WITH CIRCUMFLEX\r
+0xDC   0x00DC  #       LATIN CAPITAL LETTER U WITH DIAERESIS\r
+0xDD   0x0130  #       LATIN CAPITAL LETTER I WITH DOT ABOVE\r
+0xDE   0x015E  #       LATIN CAPITAL LETTER S WITH CEDILLA\r
+0xDF   0x00DF  #       LATIN SMALL LETTER SHARP S\r
+0xE0   0x00E0  #       LATIN SMALL LETTER A WITH GRAVE\r
+0xE1   0x00E1  #       LATIN SMALL LETTER A WITH ACUTE\r
+0xE2   0x00E2  #       LATIN SMALL LETTER A WITH CIRCUMFLEX\r
+0xE3   0x00E3  #       LATIN SMALL LETTER A WITH TILDE\r
+0xE4   0x00E4  #       LATIN SMALL LETTER A WITH DIAERESIS\r
+0xE5   0x00E5  #       LATIN SMALL LETTER A WITH RING ABOVE\r
+0xE6   0x00E6  #       LATIN SMALL LETTER AE\r
+0xE7   0x00E7  #       LATIN SMALL LETTER C WITH CEDILLA\r
+0xE8   0x00E8  #       LATIN SMALL LETTER E WITH GRAVE\r
+0xE9   0x00E9  #       LATIN SMALL LETTER E WITH ACUTE\r
+0xEA   0x00EA  #       LATIN SMALL LETTER E WITH CIRCUMFLEX\r
+0xEB   0x00EB  #       LATIN SMALL LETTER E WITH DIAERESIS\r
+0xEC   0x00EC  #       LATIN SMALL LETTER I WITH GRAVE\r
+0xED   0x00ED  #       LATIN SMALL LETTER I WITH ACUTE\r
+0xEE   0x00EE  #       LATIN SMALL LETTER I WITH CIRCUMFLEX\r
+0xEF   0x00EF  #       LATIN SMALL LETTER I WITH DIAERESIS\r
+0xF0   0x011F  #       LATIN SMALL LETTER G WITH BREVE\r
+0xF1   0x00F1  #       LATIN SMALL LETTER N WITH TILDE\r
+0xF2   0x00F2  #       LATIN SMALL LETTER O WITH GRAVE\r
+0xF3   0x00F3  #       LATIN SMALL LETTER O WITH ACUTE\r
+0xF4   0x00F4  #       LATIN SMALL LETTER O WITH CIRCUMFLEX\r
+0xF5   0x00F5  #       LATIN SMALL LETTER O WITH TILDE\r
+0xF6   0x00F6  #       LATIN SMALL LETTER O WITH DIAERESIS\r
+0xF7   0x00F7  #       DIVISION SIGN\r
+0xF8   0x00F8  #       LATIN SMALL LETTER O WITH STROKE\r
+0xF9   0x00F9  #       LATIN SMALL LETTER U WITH GRAVE\r
+0xFA   0x00FA  #       LATIN SMALL LETTER U WITH ACUTE\r
+0xFB   0x00FB  #       LATIN SMALL LETTER U WITH CIRCUMFLEX\r
+0xFC   0x00FC  #       LATIN SMALL LETTER U WITH DIAERESIS\r
+0xFD   0x0131  #       LATIN SMALL LETTER DOTLESS I\r
+0xFE   0x015F  #       LATIN SMALL LETTER S WITH CEDILLA\r
+0xFF   0x00FF  #       LATIN SMALL LETTER Y WITH DIAERESIS\r
+\r
+\r
diff --git a/data/koi8-r.txt b/data/koi8-r.txt
new file mode 100644 (file)
index 0000000..f91d284
--- /dev/null
@@ -0,0 +1,302 @@
+#\r
+#      Name:             KOI8-R (RFC1489) to Unicode\r
+#      Unicode version:  3.0\r
+#      Table version:    1.0\r
+#      Table format:     Format A\r
+#      Date:             18 August 1999\r
+#      Authors:          Helmut Richter <richter@lrz.de>\r
+#\r
+#      Copyright (c) 1991-1999 Unicode, Inc.  All Rights reserved.\r
+#\r
+#      This file is provided as-is by Unicode, Inc. (The Unicode Consortium).\r
+#      No claims are made as to fitness for any particular purpose.  No\r
+#      warranties of any kind are expressed or implied.  The recipient\r
+#      agrees to determine applicability of information provided.  If this\r
+#      file has been provided on optical media by Unicode, Inc., the sole\r
+#      remedy for any claim will be exchange of defective media within 90\r
+#      days of receipt.\r
+#\r
+#      Unicode, Inc. hereby grants the right to freely use the information\r
+#      supplied in this file in the creation of products supporting the\r
+#      Unicode Standard, and to make copies of this file in any form for\r
+#      internal or external distribution as long as this notice remains\r
+#      attached.\r
+#\r
+#      General notes:\r
+#\r
+#      This table contains the data the Unicode Consortium has on how\r
+#       KOI8-R characters map into Unicode. The underlying document is the\r
+#      mapping described in RFC 1489. No statements are made as to whether\r
+#      this mapping is the same as the mapping defined as "Code Page 878"\r
+#      with some vendors.\r
+#\r
+#      Format:  Three tab-separated columns\r
+#               Column #1 is the KOI8-R code (in hex as 0xXX)\r
+#               Column #2 is the Unicode (in hex as 0xXXXX)\r
+#               Column #3 the Unicode name (follows a comment sign, '#')\r
+#\r
+#      The entries are in KOI8-R order.\r
+#\r
+#      Version history\r
+#      1.0 version: created.\r
+#\r
+#      Any comments or problems, contact <errata@unicode.org>\r
+#      Please note that <errata@unicode.org> is an archival address;\r
+#      notices will be checked, but do not expect an immediate response.\r
+#\r
+0x00   0x0000  #       NULL\r
+0x01   0x0001  #       START OF HEADING\r
+0x02   0x0002  #       START OF TEXT\r
+0x03   0x0003  #       END OF TEXT\r
+0x04   0x0004  #       END OF TRANSMISSION\r
+0x05   0x0005  #       ENQUIRY\r
+0x06   0x0006  #       ACKNOWLEDGE\r
+0x07   0x0007  #       BELL\r
+0x08   0x0008  #       BACKSPACE\r
+0x09   0x0009  #       HORIZONTAL TABULATION\r
+0x0A   0x000A  #       LINE FEED\r
+0x0B   0x000B  #       VERTICAL TABULATION\r
+0x0C   0x000C  #       FORM FEED\r
+0x0D   0x000D  #       CARRIAGE RETURN\r
+0x0E   0x000E  #       SHIFT OUT\r
+0x0F   0x000F  #       SHIFT IN\r
+0x10   0x0010  #       DATA LINK ESCAPE\r
+0x11   0x0011  #       DEVICE CONTROL ONE\r
+0x12   0x0012  #       DEVICE CONTROL TWO\r
+0x13   0x0013  #       DEVICE CONTROL THREE\r
+0x14   0x0014  #       DEVICE CONTROL FOUR\r
+0x15   0x0015  #       NEGATIVE ACKNOWLEDGE\r
+0x16   0x0016  #       SYNCHRONOUS IDLE\r
+0x17   0x0017  #       END OF TRANSMISSION BLOCK\r
+0x18   0x0018  #       CANCEL\r
+0x19   0x0019  #       END OF MEDIUM\r
+0x1A   0x001A  #       SUBSTITUTE\r
+0x1B   0x001B  #       ESCAPE\r
+0x1C   0x001C  #       FILE SEPARATOR\r
+0x1D   0x001D  #       GROUP SEPARATOR\r
+0x1E   0x001E  #       RECORD SEPARATOR\r
+0x1F   0x001F  #       UNIT SEPARATOR\r
+0x20   0x0020  #       SPACE\r
+0x21   0x0021  #       EXCLAMATION MARK\r
+0x22   0x0022  #       QUOTATION MARK\r
+0x23   0x0023  #       NUMBER SIGN\r
+0x24   0x0024  #       DOLLAR SIGN\r
+0x25   0x0025  #       PERCENT SIGN\r
+0x26   0x0026  #       AMPERSAND\r
+0x27   0x0027  #       APOSTROPHE\r
+0x28   0x0028  #       LEFT PARENTHESIS\r
+0x29   0x0029  #       RIGHT PARENTHESIS\r
+0x2A   0x002A  #       ASTERISK\r
+0x2B   0x002B  #       PLUS SIGN\r
+0x2C   0x002C  #       COMMA\r
+0x2D   0x002D  #       HYPHEN-MINUS\r
+0x2E   0x002E  #       FULL STOP\r
+0x2F   0x002F  #       SOLIDUS\r
+0x30   0x0030  #       DIGIT ZERO\r
+0x31   0x0031  #       DIGIT ONE\r
+0x32   0x0032  #       DIGIT TWO\r
+0x33   0x0033  #       DIGIT THREE\r
+0x34   0x0034  #       DIGIT FOUR\r
+0x35   0x0035  #       DIGIT FIVE\r
+0x36   0x0036  #       DIGIT SIX\r
+0x37   0x0037  #       DIGIT SEVEN\r
+0x38   0x0038  #       DIGIT EIGHT\r
+0x39   0x0039  #       DIGIT NINE\r
+0x3A   0x003A  #       COLON\r
+0x3B   0x003B  #       SEMICOLON\r
+0x3C   0x003C  #       LESS-THAN SIGN\r
+0x3D   0x003D  #       EQUALS SIGN\r
+0x3E   0x003E  #       GREATER-THAN SIGN\r
+0x3F   0x003F  #       QUESTION MARK\r
+0x40   0x0040  #       COMMERCIAL AT\r
+0x41   0x0041  #       LATIN CAPITAL LETTER A\r
+0x42   0x0042  #       LATIN CAPITAL LETTER B\r
+0x43   0x0043  #       LATIN CAPITAL LETTER C\r
+0x44   0x0044  #       LATIN CAPITAL LETTER D\r
+0x45   0x0045  #       LATIN CAPITAL LETTER E\r
+0x46   0x0046  #       LATIN CAPITAL LETTER F\r
+0x47   0x0047  #       LATIN CAPITAL LETTER G\r
+0x48   0x0048  #       LATIN CAPITAL LETTER H\r
+0x49   0x0049  #       LATIN CAPITAL LETTER I\r
+0x4A   0x004A  #       LATIN CAPITAL LETTER J\r
+0x4B   0x004B  #       LATIN CAPITAL LETTER K\r
+0x4C   0x004C  #       LATIN CAPITAL LETTER L\r
+0x4D   0x004D  #       LATIN CAPITAL LETTER M\r
+0x4E   0x004E  #       LATIN CAPITAL LETTER N\r
+0x4F   0x004F  #       LATIN CAPITAL LETTER O\r
+0x50   0x0050  #       LATIN CAPITAL LETTER P\r
+0x51   0x0051  #       LATIN CAPITAL LETTER Q\r
+0x52   0x0052  #       LATIN CAPITAL LETTER R\r
+0x53   0x0053  #       LATIN CAPITAL LETTER S\r
+0x54   0x0054  #       LATIN CAPITAL LETTER T\r
+0x55   0x0055  #       LATIN CAPITAL LETTER U\r
+0x56   0x0056  #       LATIN CAPITAL LETTER V\r
+0x57   0x0057  #       LATIN CAPITAL LETTER W\r
+0x58   0x0058  #       LATIN CAPITAL LETTER X\r
+0x59   0x0059  #       LATIN CAPITAL LETTER Y\r
+0x5A   0x005A  #       LATIN CAPITAL LETTER Z\r
+0x5B   0x005B  #       LEFT SQUARE BRACKET\r
+0x5C   0x005C  #       REVERSE SOLIDUS\r
+0x5D   0x005D  #       RIGHT SQUARE BRACKET\r
+0x5E   0x005E  #       CIRCUMFLEX ACCENT\r
+0x5F   0x005F  #       LOW LINE\r
+0x60   0x0060  #       GRAVE ACCENT\r
+0x61   0x0061  #       LATIN SMALL LETTER A\r
+0x62   0x0062  #       LATIN SMALL LETTER B\r
+0x63   0x0063  #       LATIN SMALL LETTER C\r
+0x64   0x0064  #       LATIN SMALL LETTER D\r
+0x65   0x0065  #       LATIN SMALL LETTER E\r
+0x66   0x0066  #       LATIN SMALL LETTER F\r
+0x67   0x0067  #       LATIN SMALL LETTER G\r
+0x68   0x0068  #       LATIN SMALL LETTER H\r
+0x69   0x0069  #       LATIN SMALL LETTER I\r
+0x6A   0x006A  #       LATIN SMALL LETTER J\r
+0x6B   0x006B  #       LATIN SMALL LETTER K\r
+0x6C   0x006C  #       LATIN SMALL LETTER L\r
+0x6D   0x006D  #       LATIN SMALL LETTER M\r
+0x6E   0x006E  #       LATIN SMALL LETTER N\r
+0x6F   0x006F  #       LATIN SMALL LETTER O\r
+0x70   0x0070  #       LATIN SMALL LETTER P\r
+0x71   0x0071  #       LATIN SMALL LETTER Q\r
+0x72   0x0072  #       LATIN SMALL LETTER R\r
+0x73   0x0073  #       LATIN SMALL LETTER S\r
+0x74   0x0074  #       LATIN SMALL LETTER T\r
+0x75   0x0075  #       LATIN SMALL LETTER U\r
+0x76   0x0076  #       LATIN SMALL LETTER V\r
+0x77   0x0077  #       LATIN SMALL LETTER W\r
+0x78   0x0078  #       LATIN SMALL LETTER X\r
+0x79   0x0079  #       LATIN SMALL LETTER Y\r
+0x7A   0x007A  #       LATIN SMALL LETTER Z\r
+0x7B   0x007B  #       LEFT CURLY BRACKET\r
+0x7C   0x007C  #       VERTICAL LINE\r
+0x7D   0x007D  #       RIGHT CURLY BRACKET\r
+0x7E   0x007E  #       TILDE\r
+0x7F   0x007F  #       DELETE\r
+0x80   0x2500  #       BOX DRAWINGS LIGHT HORIZONTAL\r
+0x81   0x2502  #       BOX DRAWINGS LIGHT VERTICAL\r
+0x82   0x250C  #       BOX DRAWINGS LIGHT DOWN AND RIGHT\r
+0x83   0x2510  #       BOX DRAWINGS LIGHT DOWN AND LEFT\r
+0x84   0x2514  #       BOX DRAWINGS LIGHT UP AND RIGHT\r
+0x85   0x2518  #       BOX DRAWINGS LIGHT UP AND LEFT\r
+0x86   0x251C  #       BOX DRAWINGS LIGHT VERTICAL AND RIGHT\r
+0x87   0x2524  #       BOX DRAWINGS LIGHT VERTICAL AND LEFT\r
+0x88   0x252C  #       BOX DRAWINGS LIGHT DOWN AND HORIZONTAL\r
+0x89   0x2534  #       BOX DRAWINGS LIGHT UP AND HORIZONTAL\r
+0x8A   0x253C  #       BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL\r
+0x8B   0x2580  #       UPPER HALF BLOCK\r
+0x8C   0x2584  #       LOWER HALF BLOCK\r
+0x8D   0x2588  #       FULL BLOCK\r
+0x8E   0x258C  #       LEFT HALF BLOCK\r
+0x8F   0x2590  #       RIGHT HALF BLOCK\r
+0x90   0x2591  #       LIGHT SHADE\r
+0x91   0x2592  #       MEDIUM SHADE\r
+0x92   0x2593  #       DARK SHADE\r
+0x93   0x2320  #       TOP HALF INTEGRAL\r
+0x94   0x25A0  #       BLACK SQUARE\r
+0x95   0x2219  #       BULLET OPERATOR\r
+0x96   0x221A  #       SQUARE ROOT\r
+0x97   0x2248  #       ALMOST EQUAL TO\r
+0x98   0x2264  #       LESS-THAN OR EQUAL TO\r
+0x99   0x2265  #       GREATER-THAN OR EQUAL TO\r
+0x9A   0x00A0  #       NO-BREAK SPACE\r
+0x9B   0x2321  #       BOTTOM HALF INTEGRAL\r
+0x9C   0x00B0  #       DEGREE SIGN\r
+0x9D   0x00B2  #       SUPERSCRIPT TWO\r
+0x9E   0x00B7  #       MIDDLE DOT\r
+0x9F   0x00F7  #       DIVISION SIGN\r
+0xA0   0x2550  #       BOX DRAWINGS DOUBLE HORIZONTAL\r
+0xA1   0x2551  #       BOX DRAWINGS DOUBLE VERTICAL\r
+0xA2   0x2552  #       BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE\r
+0xA3   0x0451  #       CYRILLIC SMALL LETTER IO\r
+0xA4   0x2553  #       BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE\r
+0xA5   0x2554  #       BOX DRAWINGS DOUBLE DOWN AND RIGHT\r
+0xA6   0x2555  #       BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE\r
+0xA7   0x2556  #       BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE\r
+0xA8   0x2557  #       BOX DRAWINGS DOUBLE DOWN AND LEFT\r
+0xA9   0x2558  #       BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE\r
+0xAA   0x2559  #       BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE\r
+0xAB   0x255A  #       BOX DRAWINGS DOUBLE UP AND RIGHT\r
+0xAC   0x255B  #       BOX DRAWINGS UP SINGLE AND LEFT DOUBLE\r
+0xAD   0x255C  #       BOX DRAWINGS UP DOUBLE AND LEFT SINGLE\r
+0xAE   0x255D  #       BOX DRAWINGS DOUBLE UP AND LEFT\r
+0xAF   0x255E  #       BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE\r
+0xB0   0x255F  #       BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE\r
+0xB1   0x2560  #       BOX DRAWINGS DOUBLE VERTICAL AND RIGHT\r
+0xB2   0x2561  #       BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE\r
+0xB3   0x0401  #       CYRILLIC CAPITAL LETTER IO\r
+0xB4   0x2562  #       BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE\r
+0xB5   0x2563  #       BOX DRAWINGS DOUBLE VERTICAL AND LEFT\r
+0xB6   0x2564  #       BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE\r
+0xB7   0x2565  #       BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE\r
+0xB8   0x2566  #       BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL\r
+0xB9   0x2567  #       BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE\r
+0xBA   0x2568  #       BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE\r
+0xBB   0x2569  #       BOX DRAWINGS DOUBLE UP AND HORIZONTAL\r
+0xBC   0x256A  #       BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE\r
+0xBD   0x256B  #       BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE\r
+0xBE   0x256C  #       BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL\r
+0xBF   0x00A9  #       COPYRIGHT SIGN\r
+0xC0   0x044E  #       CYRILLIC SMALL LETTER YU\r
+0xC1   0x0430  #       CYRILLIC SMALL LETTER A\r
+0xC2   0x0431  #       CYRILLIC SMALL LETTER BE\r
+0xC3   0x0446  #       CYRILLIC SMALL LETTER TSE\r
+0xC4   0x0434  #       CYRILLIC SMALL LETTER DE\r
+0xC5   0x0435  #       CYRILLIC SMALL LETTER IE\r
+0xC6   0x0444  #       CYRILLIC SMALL LETTER EF\r
+0xC7   0x0433  #       CYRILLIC SMALL LETTER GHE\r
+0xC8   0x0445  #       CYRILLIC SMALL LETTER HA\r
+0xC9   0x0438  #       CYRILLIC SMALL LETTER I\r
+0xCA   0x0439  #       CYRILLIC SMALL LETTER SHORT I\r
+0xCB   0x043A  #       CYRILLIC SMALL LETTER KA\r
+0xCC   0x043B  #       CYRILLIC SMALL LETTER EL\r
+0xCD   0x043C  #       CYRILLIC SMALL LETTER EM\r
+0xCE   0x043D  #       CYRILLIC SMALL LETTER EN\r
+0xCF   0x043E  #       CYRILLIC SMALL LETTER O\r
+0xD0   0x043F  #       CYRILLIC SMALL LETTER PE\r
+0xD1   0x044F  #       CYRILLIC SMALL LETTER YA\r
+0xD2   0x0440  #       CYRILLIC SMALL LETTER ER\r
+0xD3   0x0441  #       CYRILLIC SMALL LETTER ES\r
+0xD4   0x0442  #       CYRILLIC SMALL LETTER TE\r
+0xD5   0x0443  #       CYRILLIC SMALL LETTER U\r
+0xD6   0x0436  #       CYRILLIC SMALL LETTER ZHE\r
+0xD7   0x0432  #       CYRILLIC SMALL LETTER VE\r
+0xD8   0x044C  #       CYRILLIC SMALL LETTER SOFT SIGN\r
+0xD9   0x044B  #       CYRILLIC SMALL LETTER YERU\r
+0xDA   0x0437  #       CYRILLIC SMALL LETTER ZE\r
+0xDB   0x0448  #       CYRILLIC SMALL LETTER SHA\r
+0xDC   0x044D  #       CYRILLIC SMALL LETTER E\r
+0xDD   0x0449  #       CYRILLIC SMALL LETTER SHCHA\r
+0xDE   0x0447  #       CYRILLIC SMALL LETTER CHE\r
+0xDF   0x044A  #       CYRILLIC SMALL LETTER HARD SIGN\r
+0xE0   0x042E  #       CYRILLIC CAPITAL LETTER YU\r
+0xE1   0x0410  #       CYRILLIC CAPITAL LETTER A\r
+0xE2   0x0411  #       CYRILLIC CAPITAL LETTER BE\r
+0xE3   0x0426  #       CYRILLIC CAPITAL LETTER TSE\r
+0xE4   0x0414  #       CYRILLIC CAPITAL LETTER DE\r
+0xE5   0x0415  #       CYRILLIC CAPITAL LETTER IE\r
+0xE6   0x0424  #       CYRILLIC CAPITAL LETTER EF\r
+0xE7   0x0413  #       CYRILLIC CAPITAL LETTER GHE\r
+0xE8   0x0425  #       CYRILLIC CAPITAL LETTER HA\r
+0xE9   0x0418  #       CYRILLIC CAPITAL LETTER I\r
+0xEA   0x0419  #       CYRILLIC CAPITAL LETTER SHORT I\r
+0xEB   0x041A  #       CYRILLIC CAPITAL LETTER KA\r
+0xEC   0x041B  #       CYRILLIC CAPITAL LETTER EL\r
+0xED   0x041C  #       CYRILLIC CAPITAL LETTER EM\r
+0xEE   0x041D  #       CYRILLIC CAPITAL LETTER EN\r
+0xEF   0x041E  #       CYRILLIC CAPITAL LETTER O\r
+0xF0   0x041F  #       CYRILLIC CAPITAL LETTER PE\r
+0xF1   0x042F  #       CYRILLIC CAPITAL LETTER YA\r
+0xF2   0x0420  #       CYRILLIC CAPITAL LETTER ER\r
+0xF3   0x0421  #       CYRILLIC CAPITAL LETTER ES\r
+0xF4   0x0422  #       CYRILLIC CAPITAL LETTER TE\r
+0xF5   0x0423  #       CYRILLIC CAPITAL LETTER U\r
+0xF6   0x0416  #       CYRILLIC CAPITAL LETTER ZHE\r
+0xF7   0x0412  #       CYRILLIC CAPITAL LETTER VE\r
+0xF8   0x042C  #       CYRILLIC CAPITAL LETTER SOFT SIGN\r
+0xF9   0x042B  #       CYRILLIC CAPITAL LETTER YERU\r
+0xFA   0x0417  #       CYRILLIC CAPITAL LETTER ZE\r
+0xFB   0x0428  #       CYRILLIC CAPITAL LETTER SHA\r
+0xFC   0x042D  #       CYRILLIC CAPITAL LETTER E\r
+0xFD   0x0429  #       CYRILLIC CAPITAL LETTER SHCHA\r
+0xFE   0x0427  #       CYRILLIC CAPITAL LETTER CHE\r
+0xFF   0x042A  #       CYRILLIC CAPITAL LETTER HARD SIGN\r
diff --git a/data/uni-comb.txt b/data/uni-comb.txt
new file mode 100644 (file)
index 0000000..dd8a6e7
--- /dev/null
@@ -0,0 +1,299 @@
+# uni-comb.txt - Unicode combining class\r
+0300;230;NSM;\r
+0301;230;NSM;\r
+0302;230;NSM;\r
+0303;230;NSM;\r
+0304;230;NSM;\r
+0305;230;NSM;\r
+0306;230;NSM;\r
+0307;230;NSM;\r
+0308;230;NSM;\r
+0309;230;NSM;\r
+030A;230;NSM;\r
+030B;230;NSM;\r
+030C;230;NSM;\r
+030D;230;NSM;\r
+030E;230;NSM;\r
+030F;230;NSM;\r
+0310;230;NSM;\r
+0311;230;NSM;\r
+0312;230;NSM;\r
+0313;230;NSM;\r
+0314;230;NSM;\r
+0315;232;NSM;\r
+0316;220;NSM;\r
+0317;220;NSM;\r
+0318;220;NSM;\r
+0319;220;NSM;\r
+031A;232;NSM;\r
+031B;216;NSM;\r
+031C;220;NSM;\r
+031D;220;NSM;\r
+031E;220;NSM;\r
+031F;220;NSM;\r
+0320;220;NSM;\r
+0321;202;NSM;\r
+0322;202;NSM;\r
+0323;220;NSM;\r
+0324;220;NSM;\r
+0325;220;NSM;\r
+0326;220;NSM;\r
+0327;202;NSM;\r
+0328;202;NSM;\r
+0329;220;NSM;\r
+032A;220;NSM;\r
+032B;220;NSM;\r
+032C;220;NSM;\r
+032D;220;NSM;\r
+032E;220;NSM;\r
+032F;220;NSM;\r
+0330;220;NSM;\r
+0331;220;NSM;\r
+0332;220;NSM;\r
+0333;220;NSM;\r
+0334;1;NSM;\r
+0335;1;NSM;\r
+0336;1;NSM;\r
+0337;1;NSM;\r
+0338;1;NSM;\r
+0339;220;NSM;\r
+033A;220;NSM;\r
+033B;220;NSM;\r
+033C;220;NSM;\r
+033D;230;NSM;\r
+033E;230;NSM;\r
+033F;230;NSM;\r
+0340;230;NSM;\r
+0341;230;NSM;\r
+0342;230;NSM;\r
+0343;230;NSM;\r
+0344;230;NSM;\r
+0345;240;NSM;\r
+0346;230;NSM;\r
+0347;220;NSM;\r
+0348;220;NSM;\r
+0349;220;NSM;\r
+034A;230;NSM;\r
+034B;230;NSM;\r
+034C;230;NSM;\r
+034D;220;NSM;\r
+034E;220;NSM;\r
+0360;234;NSM;\r
+0361;234;NSM;\r
+0362;233;NSM;\r
+0483;230;NSM;\r
+0484;230;NSM;\r
+0485;230;NSM;\r
+0486;230;NSM;\r
+0591;220;NSM;\r
+0592;230;NSM;\r
+0593;230;NSM;\r
+0594;230;NSM;\r
+0595;230;NSM;\r
+0596;220;NSM;\r
+0597;230;NSM;\r
+0598;230;NSM;\r
+0599;230;NSM;\r
+059A;222;NSM;\r
+059B;220;NSM;\r
+059C;230;NSM;\r
+059D;230;NSM;\r
+059E;230;NSM;\r
+059F;230;NSM;\r
+05A0;230;NSM;\r
+05A1;230;NSM;\r
+05A3;220;NSM;\r
+05A4;220;NSM;\r
+05A5;220;NSM;\r
+05A6;220;NSM;\r
+05A7;220;NSM;\r
+05A8;230;NSM;\r
+05A9;230;NSM;\r
+05AA;220;NSM;\r
+05AB;230;NSM;\r
+05AC;230;NSM;\r
+05AD;222;NSM;\r
+05AE;228;NSM;\r
+05AF;230;NSM;\r
+05B0;10;NSM;\r
+05B1;11;NSM;\r
+05B2;12;NSM;\r
+05B3;13;NSM;\r
+05B4;14;NSM;\r
+05B5;15;NSM;\r
+05B6;16;NSM;\r
+05B7;17;NSM;\r
+05B8;18;NSM;\r
+05B9;19;NSM;\r
+05BB;20;NSM;\r
+05BC;21;NSM;\r
+05BD;22;NSM;\r
+05BF;23;NSM;\r
+05C1;24;NSM;\r
+05C2;25;NSM;\r
+05C4;230;NSM;\r
+064B;27;NSM;\r
+064C;28;NSM;\r
+064D;29;NSM;\r
+064E;30;NSM;\r
+064F;31;NSM;\r
+0650;32;NSM;\r
+0651;33;NSM;\r
+0652;34;NSM;\r
+0653;230;NSM;\r
+0654;230;NSM;\r
+0655;220;NSM;\r
+0670;35;NSM;\r
+06D6;230;NSM;\r
+06D7;230;NSM;\r
+06D8;230;NSM;\r
+06D9;230;NSM;\r
+06DA;230;NSM;\r
+06DB;230;NSM;\r
+06DC;230;NSM;\r
+06DF;230;NSM;\r
+06E0;230;NSM;\r
+06E1;230;NSM;\r
+06E2;230;NSM;\r
+06E3;220;NSM;\r
+06E4;230;NSM;\r
+06E7;230;NSM;\r
+06E8;230;NSM;\r
+06EA;220;NSM;\r
+06EB;230;NSM;\r
+06EC;230;NSM;\r
+06ED;220;NSM;\r
+0711;36;NSM;\r
+0730;230;NSM;\r
+0731;220;NSM;\r
+0732;230;NSM;\r
+0733;230;NSM;\r
+0734;220;NSM;\r
+0735;230;NSM;\r
+0736;230;NSM;\r
+0737;220;NSM;\r
+0738;220;NSM;\r
+0739;220;NSM;\r
+073A;230;NSM;\r
+073B;220;NSM;\r
+073C;220;NSM;\r
+073D;230;NSM;\r
+073E;220;NSM;\r
+073F;230;NSM;\r
+0740;230;NSM;\r
+0741;230;NSM;\r
+0742;220;NSM;\r
+0743;230;NSM;\r
+0744;220;NSM;\r
+0745;230;NSM;\r
+0746;220;NSM;\r
+0747;230;NSM;\r
+0748;220;NSM;\r
+0749;230;NSM;\r
+074A;230;NSM;\r
+093C;7;NSM;\r
+094D;9;NSM;\r
+0951;230;NSM;\r
+0952;220;NSM;\r
+0953;230;NSM;\r
+0954;230;NSM;\r
+09BC;7;NSM;\r
+09CD;9;NSM;\r
+0A3C;7;NSM;\r
+0A4D;9;NSM;\r
+0ABC;7;NSM;\r
+0ACD;9;NSM;\r
+0B3C;7;NSM;\r
+0B4D;9;NSM;\r
+0BCD;9;NSM;\r
+0C4D;9;NSM;\r
+0C55;84;NSM;\r
+0C56;91;NSM;\r
+0CCD;9;NSM;\r
+0D4D;9;NSM;\r
+0DCA;9;NSM;\r
+0E38;103;NSM;\r
+0E39;103;NSM;\r
+0E3A;9;NSM;\r
+0E48;107;NSM;\r
+0E49;107;NSM;\r
+0E4A;107;NSM;\r
+0E4B;107;NSM;\r
+0EB8;118;NSM;\r
+0EB9;118;NSM;\r
+0EC8;122;NSM;\r
+0EC9;122;NSM;\r
+0ECA;122;NSM;\r
+0ECB;122;NSM;\r
+0F18;220;NSM;\r
+0F19;220;NSM;\r
+0F35;220;NSM;\r
+0F37;220;NSM;\r
+0F39;216;NSM;\r
+0F71;129;NSM;\r
+0F72;130;NSM;\r
+0F74;132;NSM;\r
+0F7A;130;NSM;\r
+0F7B;130;NSM;\r
+0F7C;130;NSM;\r
+0F7D;130;NSM;\r
+0F80;130;NSM;\r
+0F82;230;NSM;\r
+0F83;230;NSM;\r
+0F84;9;NSM;\r
+0F86;230;NSM;\r
+0F87;230;NSM;\r
+0FC6;220;NSM;\r
+1037;7;NSM;\r
+1039;9;NSM;\r
+17D2;9;NSM;\r
+18A9;228;NSM;\r
+20D0;230;NSM;\r
+20D1;230;NSM;\r
+20D2;1;NSM;\r
+20D3;1;NSM;\r
+20D4;230;NSM;\r
+20D5;230;NSM;\r
+20D6;230;NSM;\r
+20D7;230;NSM;\r
+20D8;1;NSM;\r
+20D9;1;NSM;\r
+20DA;1;NSM;\r
+20DB;230;NSM;\r
+20DC;230;NSM;\r
+20E1;230;NSM;\r
+302A;218;NSM;\r
+302B;228;NSM;\r
+302C;232;NSM;\r
+302D;222;NSM;\r
+302E;224;NSM;\r
+302F;224;NSM;\r
+3099;8;NSM;\r
+309A;8;NSM;\r
+FB1E;26;NSM;\r
+FE20;230;NSM;\r
+FE21;230;NSM;\r
+FE22;230;NSM;\r
+FE23;230;NSM;\r
+1D167;1;NSM;\r
+1D168;1;NSM;\r
+1D169;1;NSM;\r
+1D17B;220;NSM;\r
+1D17C;220;NSM;\r
+1D17D;220;NSM;\r
+1D17E;220;NSM;\r
+1D17F;220;NSM;\r
+1D180;220;NSM;\r
+1D181;220;NSM;\r
+1D182;220;NSM;\r
+1D185;230;NSM;\r
+1D186;230;NSM;\r
+1D187;230;NSM;\r
+1D188;230;NSM;\r
+1D189;230;NSM;\r
+1D18A;220;NSM;\r
+1D18B;220;NSM;\r
+1D1AA;230;NSM;\r
+1D1AB;230;NSM;\r
+1D1AC;230;NSM;\r
+1D1AD;230;NSM;\r
diff --git a/data/uni-fold.txt b/data/uni-fold.txt
new file mode 100644 (file)
index 0000000..6fbb751
--- /dev/null
@@ -0,0 +1,713 @@
+# uni-fold.txt - Unicode simple case folding\r
+0041 0061;C;\r
+0042 0062;C;\r
+0043 0063;C;\r
+0044 0064;C;\r
+0045 0065;C;\r
+0046 0066;C;\r
+0047 0067;C;\r
+0048 0068;C;\r
+0049 0069;C;\r
+004A 006A;C;\r
+004B 006B;C;\r
+004C 006C;C;\r
+004D 006D;C;\r
+004E 006E;C;\r
+004F 006F;C;\r
+0050 0070;C;\r
+0051 0071;C;\r
+0052 0072;C;\r
+0053 0073;C;\r
+0054 0074;C;\r
+0055 0075;C;\r
+0056 0076;C;\r
+0057 0077;C;\r
+0058 0078;C;\r
+0059 0079;C;\r
+005A 007A;C;\r
+00B5 03BC;C;\r
+00C0 00E0;C;\r
+00C1 00E1;C;\r
+00C2 00E2;C;\r
+00C3 00E3;C;\r
+00C4 00E4;C;\r
+00C5 00E5;C;\r
+00C6 00E6;C;\r
+00C7 00E7;C;\r
+00C8 00E8;C;\r
+00C9 00E9;C;\r
+00CA 00EA;C;\r
+00CB 00EB;C;\r
+00CC 00EC;C;\r
+00CD 00ED;C;\r
+00CE 00EE;C;\r
+00CF 00EF;C;\r
+00D0 00F0;C;\r
+00D1 00F1;C;\r
+00D2 00F2;C;\r
+00D3 00F3;C;\r
+00D4 00F4;C;\r
+00D5 00F5;C;\r
+00D6 00F6;C;\r
+00D8 00F8;C;\r
+00D9 00F9;C;\r
+00DA 00FA;C;\r
+00DB 00FB;C;\r
+00DC 00FC;C;\r
+00DD 00FD;C;\r
+00DE 00FE;C;\r
+0100 0101;C;\r
+0102 0103;C;\r
+0104 0105;C;\r
+0106 0107;C;\r
+0108 0109;C;\r
+010A 010B;C;\r
+010C 010D;C;\r
+010E 010F;C;\r
+0110 0111;C;\r
+0112 0113;C;\r
+0114 0115;C;\r
+0116 0117;C;\r
+0118 0119;C;\r
+011A 011B;C;\r
+011C 011D;C;\r
+011E 011F;C;\r
+0120 0121;C;\r
+0122 0123;C;\r
+0124 0125;C;\r
+0126 0127;C;\r
+0128 0129;C;\r
+012A 012B;C;\r
+012C 012D;C;\r
+012E 012F;C;\r
+0130 0069;I;\r
+0131 0069;I;\r
+0132 0133;C;\r
+0134 0135;C;\r
+0136 0137;C;\r
+0139 013A;C;\r
+013B 013C;C;\r
+013D 013E;C;\r
+013F 0140;C;\r
+0141 0142;C;\r
+0143 0144;C;\r
+0145 0146;C;\r
+0147 0148;C;\r
+014A 014B;C;\r
+014C 014D;C;\r
+014E 014F;C;\r
+0150 0151;C;\r
+0152 0153;C;\r
+0154 0155;C;\r
+0156 0157;C;\r
+0158 0159;C;\r
+015A 015B;C;\r
+015C 015D;C;\r
+015E 015F;C;\r
+0160 0161;C;\r
+0162 0163;C;\r
+0164 0165;C;\r
+0166 0167;C;\r
+0168 0169;C;\r
+016A 016B;C;\r
+016C 016D;C;\r
+016E 016F;C;\r
+0170 0171;C;\r
+0172 0173;C;\r
+0174 0175;C;\r
+0176 0177;C;\r
+0178 00FF;C;\r
+0179 017A;C;\r
+017B 017C;C;\r
+017D 017E;C;\r
+017F 0073;C;\r
+0181 0253;C;\r
+0182 0183;C;\r
+0184 0185;C;\r
+0186 0254;C;\r
+0187 0188;C;\r
+0189 0256;C;\r
+018A 0257;C;\r
+018B 018C;C;\r
+018E 01DD;C;\r
+018F 0259;C;\r
+0190 025B;C;\r
+0191 0192;C;\r
+0193 0260;C;\r
+0194 0263;C;\r
+0196 0269;C;\r
+0197 0268;C;\r
+0198 0199;C;\r
+019C 026F;C;\r
+019D 0272;C;\r
+019F 0275;C;\r
+01A0 01A1;C;\r
+01A2 01A3;C;\r
+01A4 01A5;C;\r
+01A6 0280;C;\r
+01A7 01A8;C;\r
+01A9 0283;C;\r
+01AC 01AD;C;\r
+01AE 0288;C;\r
+01AF 01B0;C;\r
+01B1 028A;C;\r
+01B2 028B;C;\r
+01B3 01B4;C;\r
+01B5 01B6;C;\r
+01B7 0292;C;\r
+01B8 01B9;C;\r
+01BC 01BD;C;\r
+01C4 01C6;C;\r
+01C5 01C6;C;\r
+01C7 01C9;C;\r
+01C8 01C9;C;\r
+01CA 01CC;C;\r
+01CB 01CC;C;\r
+01CD 01CE;C;\r
+01CF 01D0;C;\r
+01D1 01D2;C;\r
+01D3 01D4;C;\r
+01D5 01D6;C;\r
+01D7 01D8;C;\r
+01D9 01DA;C;\r
+01DB 01DC;C;\r
+01DE 01DF;C;\r
+01E0 01E1;C;\r
+01E2 01E3;C;\r
+01E4 01E5;C;\r
+01E6 01E7;C;\r
+01E8 01E9;C;\r
+01EA 01EB;C;\r
+01EC 01ED;C;\r
+01EE 01EF;C;\r
+01F1 01F3;C;\r
+01F2 01F3;C;\r
+01F4 01F5;C;\r
+01F6 0195;C;\r
+01F7 01BF;C;\r
+01F8 01F9;C;\r
+01FA 01FB;C;\r
+01FC 01FD;C;\r
+01FE 01FF;C;\r
+0200 0201;C;\r
+0202 0203;C;\r
+0204 0205;C;\r
+0206 0207;C;\r
+0208 0209;C;\r
+020A 020B;C;\r
+020C 020D;C;\r
+020E 020F;C;\r
+0210 0211;C;\r
+0212 0213;C;\r
+0214 0215;C;\r
+0216 0217;C;\r
+0218 0219;C;\r
+021A 021B;C;\r
+021C 021D;C;\r
+021E 021F;C;\r
+0222 0223;C;\r
+0224 0225;C;\r
+0226 0227;C;\r
+0228 0229;C;\r
+022A 022B;C;\r
+022C 022D;C;\r
+022E 022F;C;\r
+0230 0231;C;\r
+0232 0233;C;\r
+0345 03B9;C;\r
+0386 03AC;C;\r
+0388 03AD;C;\r
+0389 03AE;C;\r
+038A 03AF;C;\r
+038C 03CC;C;\r
+038E 03CD;C;\r
+038F 03CE;C;\r
+0391 03B1;C;\r
+0392 03B2;C;\r
+0393 03B3;C;\r
+0394 03B4;C;\r
+0395 03B5;C;\r
+0396 03B6;C;\r
+0397 03B7;C;\r
+0398 03B8;C;\r
+0399 03B9;C;\r
+039A 03BA;C;\r
+039B 03BB;C;\r
+039C 03BC;C;\r
+039D 03BD;C;\r
+039E 03BE;C;\r
+039F 03BF;C;\r
+03A0 03C0;C;\r
+03A1 03C1;C;\r
+03A3 03C3;C;\r
+03A4 03C4;C;\r
+03A5 03C5;C;\r
+03A6 03C6;C;\r
+03A7 03C7;C;\r
+03A8 03C8;C;\r
+03A9 03C9;C;\r
+03AA 03CA;C;\r
+03AB 03CB;C;\r
+03C2 03C3;C;\r
+03D0 03B2;C;\r
+03D1 03B8;C;\r
+03D5 03C6;C;\r
+03D6 03C0;C;\r
+03DA 03DB;C;\r
+03DC 03DD;C;\r
+03DE 03DF;C;\r
+03E0 03E1;C;\r
+03E2 03E3;C;\r
+03E4 03E5;C;\r
+03E6 03E7;C;\r
+03E8 03E9;C;\r
+03EA 03EB;C;\r
+03EC 03ED;C;\r
+03EE 03EF;C;\r
+03F0 03BA;C;\r
+03F1 03C1;C;\r
+03F2 03C3;C;\r
+03F4 03B8;C;\r
+03F5 03B5;C;\r
+0400 0450;C;\r
+0401 0451;C;\r
+0402 0452;C;\r
+0403 0453;C;\r
+0404 0454;C;\r
+0405 0455;C;\r
+0406 0456;C;\r
+0407 0457;C;\r
+0408 0458;C;\r
+0409 0459;C;\r
+040A 045A;C;\r
+040B 045B;C;\r
+040C 045C;C;\r
+040D 045D;C;\r
+040E 045E;C;\r
+040F 045F;C;\r
+0410 0430;C;\r
+0411 0431;C;\r
+0412 0432;C;\r
+0413 0433;C;\r
+0414 0434;C;\r
+0415 0435;C;\r
+0416 0436;C;\r
+0417 0437;C;\r
+0418 0438;C;\r
+0419 0439;C;\r
+041A 043A;C;\r
+041B 043B;C;\r
+041C 043C;C;\r
+041D 043D;C;\r
+041E 043E;C;\r
+041F 043F;C;\r
+0420 0440;C;\r
+0421 0441;C;\r
+0422 0442;C;\r
+0423 0443;C;\r
+0424 0444;C;\r
+0425 0445;C;\r
+0426 0446;C;\r
+0427 0447;C;\r
+0428 0448;C;\r
+0429 0449;C;\r
+042A 044A;C;\r
+042B 044B;C;\r
+042C 044C;C;\r
+042D 044D;C;\r
+042E 044E;C;\r
+042F 044F;C;\r
+0460 0461;C;\r
+0462 0463;C;\r
+0464 0465;C;\r
+0466 0467;C;\r
+0468 0469;C;\r
+046A 046B;C;\r
+046C 046D;C;\r
+046E 046F;C;\r
+0470 0471;C;\r
+0472 0473;C;\r
+0474 0475;C;\r
+0476 0477;C;\r
+0478 0479;C;\r
+047A 047B;C;\r
+047C 047D;C;\r
+047E 047F;C;\r
+0480 0481;C;\r
+048C 048D;C;\r
+048E 048F;C;\r
+0490 0491;C;\r
+0492 0493;C;\r
+0494 0495;C;\r
+0496 0497;C;\r
+0498 0499;C;\r
+049A 049B;C;\r
+049C 049D;C;\r
+049E 049F;C;\r
+04A0 04A1;C;\r
+04A2 04A3;C;\r
+04A4 04A5;C;\r
+04A6 04A7;C;\r
+04A8 04A9;C;\r
+04AA 04AB;C;\r
+04AC 04AD;C;\r
+04AE 04AF;C;\r
+04B0 04B1;C;\r
+04B2 04B3;C;\r
+04B4 04B5;C;\r
+04B6 04B7;C;\r
+04B8 04B9;C;\r
+04BA 04BB;C;\r
+04BC 04BD;C;\r
+04BE 04BF;C;\r
+04C1 04C2;C;\r
+04C3 04C4;C;\r
+04C7 04C8;C;\r
+04CB 04CC;C;\r
+04D0 04D1;C;\r
+04D2 04D3;C;\r
+04D4 04D5;C;\r
+04D6 04D7;C;\r
+04D8 04D9;C;\r
+04DA 04DB;C;\r
+04DC 04DD;C;\r
+04DE 04DF;C;\r
+04E0 04E1;C;\r
+04E2 04E3;C;\r
+04E4 04E5;C;\r
+04E6 04E7;C;\r
+04E8 04E9;C;\r
+04EA 04EB;C;\r
+04EC 04ED;C;\r
+04EE 04EF;C;\r
+04F0 04F1;C;\r
+04F2 04F3;C;\r
+04F4 04F5;C;\r
+04F8 04F9;C;\r
+0531 0561;C;\r
+0532 0562;C;\r
+0533 0563;C;\r
+0534 0564;C;\r
+0535 0565;C;\r
+0536 0566;C;\r
+0537 0567;C;\r
+0538 0568;C;\r
+0539 0569;C;\r
+053A 056A;C;\r
+053B 056B;C;\r
+053C 056C;C;\r
+053D 056D;C;\r
+053E 056E;C;\r
+053F 056F;C;\r
+0540 0570;C;\r
+0541 0571;C;\r
+0542 0572;C;\r
+0543 0573;C;\r
+0544 0574;C;\r
+0545 0575;C;\r
+0546 0576;C;\r
+0547 0577;C;\r
+0548 0578;C;\r
+0549 0579;C;\r
+054A 057A;C;\r
+054B 057B;C;\r
+054C 057C;C;\r
+054D 057D;C;\r
+054E 057E;C;\r
+054F 057F;C;\r
+0550 0580;C;\r
+0551 0581;C;\r
+0552 0582;C;\r
+0553 0583;C;\r
+0554 0584;C;\r
+0555 0585;C;\r
+0556 0586;C;\r
+1E00 1E01;C;\r
+1E02 1E03;C;\r
+1E04 1E05;C;\r
+1E06 1E07;C;\r
+1E08 1E09;C;\r
+1E0A 1E0B;C;\r
+1E0C 1E0D;C;\r
+1E0E 1E0F;C;\r
+1E10 1E11;C;\r
+1E12 1E13;C;\r
+1E14 1E15;C;\r
+1E16 1E17;C;\r
+1E18 1E19;C;\r
+1E1A 1E1B;C;\r
+1E1C 1E1D;C;\r
+1E1E 1E1F;C;\r
+1E20 1E21;C;\r
+1E22 1E23;C;\r
+1E24 1E25;C;\r
+1E26 1E27;C;\r
+1E28 1E29;C;\r
+1E2A 1E2B;C;\r
+1E2C 1E2D;C;\r
+1E2E 1E2F;C;\r
+1E30 1E31;C;\r
+1E32 1E33;C;\r
+1E34 1E35;C;\r
+1E36 1E37;C;\r
+1E38 1E39;C;\r
+1E3A 1E3B;C;\r
+1E3C 1E3D;C;\r
+1E3E 1E3F;C;\r
+1E40 1E41;C;\r
+1E42 1E43;C;\r
+1E44 1E45;C;\r
+1E46 1E47;C;\r
+1E48 1E49;C;\r
+1E4A 1E4B;C;\r
+1E4C 1E4D;C;\r
+1E4E 1E4F;C;\r
+1E50 1E51;C;\r
+1E52 1E53;C;\r
+1E54 1E55;C;\r
+1E56 1E57;C;\r
+1E58 1E59;C;\r
+1E5A 1E5B;C;\r
+1E5C 1E5D;C;\r
+1E5E 1E5F;C;\r
+1E60 1E61;C;\r
+1E62 1E63;C;\r
+1E64 1E65;C;\r
+1E66 1E67;C;\r
+1E68 1E69;C;\r
+1E6A 1E6B;C;\r
+1E6C 1E6D;C;\r
+1E6E 1E6F;C;\r
+1E70 1E71;C;\r
+1E72 1E73;C;\r
+1E74 1E75;C;\r
+1E76 1E77;C;\r
+1E78 1E79;C;\r
+1E7A 1E7B;C;\r
+1E7C 1E7D;C;\r
+1E7E 1E7F;C;\r
+1E80 1E81;C;\r
+1E82 1E83;C;\r
+1E84 1E85;C;\r
+1E86 1E87;C;\r
+1E88 1E89;C;\r
+1E8A 1E8B;C;\r
+1E8C 1E8D;C;\r
+1E8E 1E8F;C;\r
+1E90 1E91;C;\r
+1E92 1E93;C;\r
+1E94 1E95;C;\r
+1E9B 1E61;C;\r
+1EA0 1EA1;C;\r
+1EA2 1EA3;C;\r
+1EA4 1EA5;C;\r
+1EA6 1EA7;C;\r
+1EA8 1EA9;C;\r
+1EAA 1EAB;C;\r
+1EAC 1EAD;C;\r
+1EAE 1EAF;C;\r
+1EB0 1EB1;C;\r
+1EB2 1EB3;C;\r
+1EB4 1EB5;C;\r
+1EB6 1EB7;C;\r
+1EB8 1EB9;C;\r
+1EBA 1EBB;C;\r
+1EBC 1EBD;C;\r
+1EBE 1EBF;C;\r
+1EC0 1EC1;C;\r
+1EC2 1EC3;C;\r
+1EC4 1EC5;C;\r
+1EC6 1EC7;C;\r
+1EC8 1EC9;C;\r
+1ECA 1ECB;C;\r
+1ECC 1ECD;C;\r
+1ECE 1ECF;C;\r
+1ED0 1ED1;C;\r
+1ED2 1ED3;C;\r
+1ED4 1ED5;C;\r
+1ED6 1ED7;C;\r
+1ED8 1ED9;C;\r
+1EDA 1EDB;C;\r
+1EDC 1EDD;C;\r
+1EDE 1EDF;C;\r
+1EE0 1EE1;C;\r
+1EE2 1EE3;C;\r
+1EE4 1EE5;C;\r
+1EE6 1EE7;C;\r
+1EE8 1EE9;C;\r
+1EEA 1EEB;C;\r
+1EEC 1EED;C;\r
+1EEE 1EEF;C;\r
+1EF0 1EF1;C;\r
+1EF2 1EF3;C;\r
+1EF4 1EF5;C;\r
+1EF6 1EF7;C;\r
+1EF8 1EF9;C;\r
+1F08 1F00;C;\r
+1F09 1F01;C;\r
+1F0A 1F02;C;\r
+1F0B 1F03;C;\r
+1F0C 1F04;C;\r
+1F0D 1F05;C;\r
+1F0E 1F06;C;\r
+1F0F 1F07;C;\r
+1F18 1F10;C;\r
+1F19 1F11;C;\r
+1F1A 1F12;C;\r
+1F1B 1F13;C;\r
+1F1C 1F14;C;\r
+1F1D 1F15;C;\r
+1F28 1F20;C;\r
+1F29 1F21;C;\r
+1F2A 1F22;C;\r
+1F2B 1F23;C;\r
+1F2C 1F24;C;\r
+1F2D 1F25;C;\r
+1F2E 1F26;C;\r
+1F2F 1F27;C;\r
+1F38 1F30;C;\r
+1F39 1F31;C;\r
+1F3A 1F32;C;\r
+1F3B 1F33;C;\r
+1F3C 1F34;C;\r
+1F3D 1F35;C;\r
+1F3E 1F36;C;\r
+1F3F 1F37;C;\r
+1F48 1F40;C;\r
+1F49 1F41;C;\r
+1F4A 1F42;C;\r
+1F4B 1F43;C;\r
+1F4C 1F44;C;\r
+1F4D 1F45;C;\r
+1F59 1F51;C;\r
+1F5B 1F53;C;\r
+1F5D 1F55;C;\r
+1F5F 1F57;C;\r
+1F68 1F60;C;\r
+1F69 1F61;C;\r
+1F6A 1F62;C;\r
+1F6B 1F63;C;\r
+1F6C 1F64;C;\r
+1F6D 1F65;C;\r
+1F6E 1F66;C;\r
+1F6F 1F67;C;\r
+1F88 1F80;S;\r
+1F89 1F81;S;\r
+1F8A 1F82;S;\r
+1F8B 1F83;S;\r
+1F8C 1F84;S;\r
+1F8D 1F85;S;\r
+1F8E 1F86;S;\r
+1F8F 1F87;S;\r
+1F98 1F90;S;\r
+1F99 1F91;S;\r
+1F9A 1F92;S;\r
+1F9B 1F93;S;\r
+1F9C 1F94;S;\r
+1F9D 1F95;S;\r
+1F9E 1F96;S;\r
+1F9F 1F97;S;\r
+1FA8 1FA0;S;\r
+1FA9 1FA1;S;\r
+1FAA 1FA2;S;\r
+1FAB 1FA3;S;\r
+1FAC 1FA4;S;\r
+1FAD 1FA5;S;\r
+1FAE 1FA6;S;\r
+1FAF 1FA7;S;\r
+1FB8 1FB0;C;\r
+1FB9 1FB1;C;\r
+1FBA 1F70;C;\r
+1FBB 1F71;C;\r
+1FBC 1FB3;S;\r
+1FBE 03B9;C;\r
+1FC8 1F72;C;\r
+1FC9 1F73;C;\r
+1FCA 1F74;C;\r
+1FCB 1F75;C;\r
+1FCC 1FC3;S;\r
+1FD8 1FD0;C;\r
+1FD9 1FD1;C;\r
+1FDA 1F76;C;\r
+1FDB 1F77;C;\r
+1FE8 1FE0;C;\r
+1FE9 1FE1;C;\r
+1FEA 1F7A;C;\r
+1FEB 1F7B;C;\r
+1FEC 1FE5;C;\r
+1FF8 1F78;C;\r
+1FF9 1F79;C;\r
+1FFA 1F7C;C;\r
+1FFB 1F7D;C;\r
+1FFC 1FF3;S;\r
+2126 03C9;C;\r
+212A 006B;C;\r
+212B 00E5;C;\r
+2160 2170;C;\r
+2161 2171;C;\r
+2162 2172;C;\r
+2163 2173;C;\r
+2164 2174;C;\r
+2165 2175;C;\r
+2166 2176;C;\r
+2167 2177;C;\r
+2168 2178;C;\r
+2169 2179;C;\r
+216A 217A;C;\r
+216B 217B;C;\r
+216C 217C;C;\r
+216D 217D;C;\r
+216E 217E;C;\r
+216F 217F;C;\r
+24B6 24D0;C;\r
+24B7 24D1;C;\r
+24B8 24D2;C;\r
+24B9 24D3;C;\r
+24BA 24D4;C;\r
+24BB 24D5;C;\r
+24BC 24D6;C;\r
+24BD 24D7;C;\r
+24BE 24D8;C;\r
+24BF 24D9;C;\r
+24C0 24DA;C;\r
+24C1 24DB;C;\r
+24C2 24DC;C;\r
+24C3 24DD;C;\r
+24C4 24DE;C;\r
+24C5 24DF;C;\r
+24C6 24E0;C;\r
+24C7 24E1;C;\r
+24C8 24E2;C;\r
+24C9 24E3;C;\r
+24CA 24E4;C;\r
+24CB 24E5;C;\r
+24CC 24E6;C;\r
+24CD 24E7;C;\r
+24CE 24E8;C;\r
+24CF 24E9;C;\r
+FF21 FF41;C;\r
+FF22 FF42;C;\r
+FF23 FF43;C;\r
+FF24 FF44;C;\r
+FF25 FF45;C;\r
+FF26 FF46;C;\r
+FF27 FF47;C;\r
+FF28 FF48;C;\r
+FF29 FF49;C;\r
+FF2A FF4A;C;\r
+FF2B FF4B;C;\r
+FF2C FF4C;C;\r
+FF2D FF4D;C;\r
+FF2E FF4E;C;\r
+FF2F FF4F;C;\r
+FF30 FF50;C;\r
+FF31 FF51;C;\r
+FF32 FF52;C;\r
+FF33 FF53;C;\r
+FF34 FF54;C;\r
+FF35 FF55;C;\r
+FF36 FF56;C;\r
+FF37 FF57;C;\r
+FF38 FF58;C;\r
+FF39 FF59;C;\r
+FF3A FF5A;C;\r
diff --git a/data/uni-full.txt b/data/uni-full.txt
new file mode 100644 (file)
index 0000000..8504a63
--- /dev/null
@@ -0,0 +1,788 @@
+# uni-full.txt - Unicode full case folding\r
+0041 0061 0000 0000;C;\r
+0042 0062 0000 0000;C;\r
+0043 0063 0000 0000;C;\r
+0044 0064 0000 0000;C;\r
+0045 0065 0000 0000;C;\r
+0046 0066 0000 0000;C;\r
+0047 0067 0000 0000;C;\r
+0048 0068 0000 0000;C;\r
+0049 0069 0000 0000;C;\r
+004A 006A 0000 0000;C;\r
+004B 006B 0000 0000;C;\r
+004C 006C 0000 0000;C;\r
+004D 006D 0000 0000;C;\r
+004E 006E 0000 0000;C;\r
+004F 006F 0000 0000;C;\r
+0050 0070 0000 0000;C;\r
+0051 0071 0000 0000;C;\r
+0052 0072 0000 0000;C;\r
+0053 0073 0000 0000;C;\r
+0054 0074 0000 0000;C;\r
+0055 0075 0000 0000;C;\r
+0056 0076 0000 0000;C;\r
+0057 0077 0000 0000;C;\r
+0058 0078 0000 0000;C;\r
+0059 0079 0000 0000;C;\r
+005A 007A 0000 0000;C;\r
+00B5 03BC 0000 0000;C;\r
+00C0 00E0 0000 0000;C;\r
+00C1 00E1 0000 0000;C;\r
+00C2 00E2 0000 0000;C;\r
+00C3 00E3 0000 0000;C;\r
+00C4 00E4 0000 0000;C;\r
+00C5 00E5 0000 0000;C;\r
+00C6 00E6 0000 0000;C;\r
+00C7 00E7 0000 0000;C;\r
+00C8 00E8 0000 0000;C;\r
+00C9 00E9 0000 0000;C;\r
+00CA 00EA 0000 0000;C;\r
+00CB 00EB 0000 0000;C;\r
+00CC 00EC 0000 0000;C;\r
+00CD 00ED 0000 0000;C;\r
+00CE 00EE 0000 0000;C;\r
+00CF 00EF 0000 0000;C;\r
+00D0 00F0 0000 0000;C;\r
+00D1 00F1 0000 0000;C;\r
+00D2 00F2 0000 0000;C;\r
+00D3 00F3 0000 0000;C;\r
+00D4 00F4 0000 0000;C;\r
+00D5 00F5 0000 0000;C;\r
+00D6 00F6 0000 0000;C;\r
+00D8 00F8 0000 0000;C;\r
+00D9 00F9 0000 0000;C;\r
+00DA 00FA 0000 0000;C;\r
+00DB 00FB 0000 0000;C;\r
+00DC 00FC 0000 0000;C;\r
+00DD 00FD 0000 0000;C;\r
+00DE 00FE 0000 0000;C;\r
+00DF 0073 0073 0000;F;\r
+0100 0101 0000 0000;C;\r
+0102 0103 0000 0000;C;\r
+0104 0105 0000 0000;C;\r
+0106 0107 0000 0000;C;\r
+0108 0109 0000 0000;C;\r
+010A 010B 0000 0000;C;\r
+010C 010D 0000 0000;C;\r
+010E 010F 0000 0000;C;\r
+0110 0111 0000 0000;C;\r
+0112 0113 0000 0000;C;\r
+0114 0115 0000 0000;C;\r
+0116 0117 0000 0000;C;\r
+0118 0119 0000 0000;C;\r
+011A 011B 0000 0000;C;\r
+011C 011D 0000 0000;C;\r
+011E 011F 0000 0000;C;\r
+0120 0121 0000 0000;C;\r
+0122 0123 0000 0000;C;\r
+0124 0125 0000 0000;C;\r
+0126 0127 0000 0000;C;\r
+0128 0129 0000 0000;C;\r
+012A 012B 0000 0000;C;\r
+012C 012D 0000 0000;C;\r
+012E 012F 0000 0000;C;\r
+0130 0069 0000 0000;I;\r
+0131 0069 0000 0000;I;\r
+0132 0133 0000 0000;C;\r
+0134 0135 0000 0000;C;\r
+0136 0137 0000 0000;C;\r
+0139 013A 0000 0000;C;\r
+013B 013C 0000 0000;C;\r
+013D 013E 0000 0000;C;\r
+013F 0140 0000 0000;C;\r
+0141 0142 0000 0000;C;\r
+0143 0144 0000 0000;C;\r
+0145 0146 0000 0000;C;\r
+0147 0148 0000 0000;C;\r
+0149 02BC 006E 0000;F;\r
+014A 014B 0000 0000;C;\r
+014C 014D 0000 0000;C;\r
+014E 014F 0000 0000;C;\r
+0150 0151 0000 0000;C;\r
+0152 0153 0000 0000;C;\r
+0154 0155 0000 0000;C;\r
+0156 0157 0000 0000;C;\r
+0158 0159 0000 0000;C;\r
+015A 015B 0000 0000;C;\r
+015C 015D 0000 0000;C;\r
+015E 015F 0000 0000;C;\r
+0160 0161 0000 0000;C;\r
+0162 0163 0000 0000;C;\r
+0164 0165 0000 0000;C;\r
+0166 0167 0000 0000;C;\r
+0168 0169 0000 0000;C;\r
+016A 016B 0000 0000;C;\r
+016C 016D 0000 0000;C;\r
+016E 016F 0000 0000;C;\r
+0170 0171 0000 0000;C;\r
+0172 0173 0000 0000;C;\r
+0174 0175 0000 0000;C;\r
+0176 0177 0000 0000;C;\r
+0178 00FF 0000 0000;C;\r
+0179 017A 0000 0000;C;\r
+017B 017C 0000 0000;C;\r
+017D 017E 0000 0000;C;\r
+017F 0073 0000 0000;C;\r
+0181 0253 0000 0000;C;\r
+0182 0183 0000 0000;C;\r
+0184 0185 0000 0000;C;\r
+0186 0254 0000 0000;C;\r
+0187 0188 0000 0000;C;\r
+0189 0256 0000 0000;C;\r
+018A 0257 0000 0000;C;\r
+018B 018C 0000 0000;C;\r
+018E 01DD 0000 0000;C;\r
+018F 0259 0000 0000;C;\r
+0190 025B 0000 0000;C;\r
+0191 0192 0000 0000;C;\r
+0193 0260 0000 0000;C;\r
+0194 0263 0000 0000;C;\r
+0196 0269 0000 0000;C;\r
+0197 0268 0000 0000;C;\r
+0198 0199 0000 0000;C;\r
+019C 026F 0000 0000;C;\r
+019D 0272 0000 0000;C;\r
+019F 0275 0000 0000;C;\r
+01A0 01A1 0000 0000;C;\r
+01A2 01A3 0000 0000;C;\r
+01A4 01A5 0000 0000;C;\r
+01A6 0280 0000 0000;C;\r
+01A7 01A8 0000 0000;C;\r
+01A9 0283 0000 0000;C;\r
+01AC 01AD 0000 0000;C;\r
+01AE 0288 0000 0000;C;\r
+01AF 01B0 0000 0000;C;\r
+01B1 028A 0000 0000;C;\r
+01B2 028B 0000 0000;C;\r
+01B3 01B4 0000 0000;C;\r
+01B5 01B6 0000 0000;C;\r
+01B7 0292 0000 0000;C;\r
+01B8 01B9 0000 0000;C;\r
+01BC 01BD 0000 0000;C;\r
+01C4 01C6 0000 0000;C;\r
+01C5 01C6 0000 0000;C;\r
+01C7 01C9 0000 0000;C;\r
+01C8 01C9 0000 0000;C;\r
+01CA 01CC 0000 0000;C;\r
+01CB 01CC 0000 0000;C;\r
+01CD 01CE 0000 0000;C;\r
+01CF 01D0 0000 0000;C;\r
+01D1 01D2 0000 0000;C;\r
+01D3 01D4 0000 0000;C;\r
+01D5 01D6 0000 0000;C;\r
+01D7 01D8 0000 0000;C;\r
+01D9 01DA 0000 0000;C;\r
+01DB 01DC 0000 0000;C;\r
+01DE 01DF 0000 0000;C;\r
+01E0 01E1 0000 0000;C;\r
+01E2 01E3 0000 0000;C;\r
+01E4 01E5 0000 0000;C;\r
+01E6 01E7 0000 0000;C;\r
+01E8 01E9 0000 0000;C;\r
+01EA 01EB 0000 0000;C;\r
+01EC 01ED 0000 0000;C;\r
+01EE 01EF 0000 0000;C;\r
+01F0 006A 030C 0000;F;\r
+01F1 01F3 0000 0000;C;\r
+01F2 01F3 0000 0000;C;\r
+01F4 01F5 0000 0000;C;\r
+01F6 0195 0000 0000;C;\r
+01F7 01BF 0000 0000;C;\r
+01F8 01F9 0000 0000;C;\r
+01FA 01FB 0000 0000;C;\r
+01FC 01FD 0000 0000;C;\r
+01FE 01FF 0000 0000;C;\r
+0200 0201 0000 0000;C;\r
+0202 0203 0000 0000;C;\r
+0204 0205 0000 0000;C;\r
+0206 0207 0000 0000;C;\r
+0208 0209 0000 0000;C;\r
+020A 020B 0000 0000;C;\r
+020C 020D 0000 0000;C;\r
+020E 020F 0000 0000;C;\r
+0210 0211 0000 0000;C;\r
+0212 0213 0000 0000;C;\r
+0214 0215 0000 0000;C;\r
+0216 0217 0000 0000;C;\r
+0218 0219 0000 0000;C;\r
+021A 021B 0000 0000;C;\r
+021C 021D 0000 0000;C;\r
+021E 021F 0000 0000;C;\r
+0222 0223 0000 0000;C;\r
+0224 0225 0000 0000;C;\r
+0226 0227 0000 0000;C;\r
+0228 0229 0000 0000;C;\r
+022A 022B 0000 0000;C;\r
+022C 022D 0000 0000;C;\r
+022E 022F 0000 0000;C;\r
+0230 0231 0000 0000;C;\r
+0232 0233 0000 0000;C;\r
+0345 03B9 0000 0000;C;\r
+0386 03AC 0000 0000;C;\r
+0388 03AD 0000 0000;C;\r
+0389 03AE 0000 0000;C;\r
+038A 03AF 0000 0000;C;\r
+038C 03CC 0000 0000;C;\r
+038E 03CD 0000 0000;C;\r
+038F 03CE 0000 0000;C;\r
+0390 03B9 0308 0301;F;\r
+0391 03B1 0000 0000;C;\r
+0392 03B2 0000 0000;C;\r
+0393 03B3 0000 0000;C;\r
+0394 03B4 0000 0000;C;\r
+0395 03B5 0000 0000;C;\r
+0396 03B6 0000 0000;C;\r
+0397 03B7 0000 0000;C;\r
+0398 03B8 0000 0000;C;\r
+0399 03B9 0000 0000;C;\r
+039A 03BA 0000 0000;C;\r
+039B 03BB 0000 0000;C;\r
+039C 03BC 0000 0000;C;\r
+039D 03BD 0000 0000;C;\r
+039E 03BE 0000 0000;C;\r
+039F 03BF 0000 0000;C;\r
+03A0 03C0 0000 0000;C;\r
+03A1 03C1 0000 0000;C;\r
+03A3 03C3 0000 0000;C;\r
+03A4 03C4 0000 0000;C;\r
+03A5 03C5 0000 0000;C;\r
+03A6 03C6 0000 0000;C;\r
+03A7 03C7 0000 0000;C;\r
+03A8 03C8 0000 0000;C;\r
+03A9 03C9 0000 0000;C;\r
+03AA 03CA 0000 0000;C;\r
+03AB 03CB 0000 0000;C;\r
+03B0 03C5 0308 0301;F;\r
+03C2 03C3 0000 0000;C;\r
+03D0 03B2 0000 0000;C;\r
+03D1 03B8 0000 0000;C;\r
+03D5 03C6 0000 0000;C;\r
+03D6 03C0 0000 0000;C;\r
+03DA 03DB 0000 0000;C;\r
+03DC 03DD 0000 0000;C;\r
+03DE 03DF 0000 0000;C;\r
+03E0 03E1 0000 0000;C;\r
+03E2 03E3 0000 0000;C;\r
+03E4 03E5 0000 0000;C;\r
+03E6 03E7 0000 0000;C;\r
+03E8 03E9 0000 0000;C;\r
+03EA 03EB 0000 0000;C;\r
+03EC 03ED 0000 0000;C;\r
+03EE 03EF 0000 0000;C;\r
+03F0 03BA 0000 0000;C;\r
+03F1 03C1 0000 0000;C;\r
+03F2 03C3 0000 0000;C;\r
+03F4 03B8 0000 0000;C;\r
+03F5 03B5 0000 0000;C;\r
+0400 0450 0000 0000;C;\r
+0401 0451 0000 0000;C;\r
+0402 0452 0000 0000;C;\r
+0403 0453 0000 0000;C;\r
+0404 0454 0000 0000;C;\r
+0405 0455 0000 0000;C;\r
+0406 0456 0000 0000;C;\r
+0407 0457 0000 0000;C;\r
+0408 0458 0000 0000;C;\r
+0409 0459 0000 0000;C;\r
+040A 045A 0000 0000;C;\r
+040B 045B 0000 0000;C;\r
+040C 045C 0000 0000;C;\r
+040D 045D 0000 0000;C;\r
+040E 045E 0000 0000;C;\r
+040F 045F 0000 0000;C;\r
+0410 0430 0000 0000;C;\r
+0411 0431 0000 0000;C;\r
+0412 0432 0000 0000;C;\r
+0413 0433 0000 0000;C;\r
+0414 0434 0000 0000;C;\r
+0415 0435 0000 0000;C;\r
+0416 0436 0000 0000;C;\r
+0417 0437 0000 0000;C;\r
+0418 0438 0000 0000;C;\r
+0419 0439 0000 0000;C;\r
+041A 043A 0000 0000;C;\r
+041B 043B 0000 0000;C;\r
+041C 043C 0000 0000;C;\r
+041D 043D 0000 0000;C;\r
+041E 043E 0000 0000;C;\r
+041F 043F 0000 0000;C;\r
+0420 0440 0000 0000;C;\r
+0421 0441 0000 0000;C;\r
+0422 0442 0000 0000;C;\r
+0423 0443 0000 0000;C;\r
+0424 0444 0000 0000;C;\r
+0425 0445 0000 0000;C;\r
+0426 0446 0000 0000;C;\r
+0427 0447 0000 0000;C;\r
+0428 0448 0000 0000;C;\r
+0429 0449 0000 0000;C;\r
+042A 044A 0000 0000;C;\r
+042B 044B 0000 0000;C;\r
+042C 044C 0000 0000;C;\r
+042D 044D 0000 0000;C;\r
+042E 044E 0000 0000;C;\r
+042F 044F 0000 0000;C;\r
+0460 0461 0000 0000;C;\r
+0462 0463 0000 0000;C;\r
+0464 0465 0000 0000;C;\r
+0466 0467 0000 0000;C;\r
+0468 0469 0000 0000;C;\r
+046A 046B 0000 0000;C;\r
+046C 046D 0000 0000;C;\r
+046E 046F 0000 0000;C;\r
+0470 0471 0000 0000;C;\r
+0472 0473 0000 0000;C;\r
+0474 0475 0000 0000;C;\r
+0476 0477 0000 0000;C;\r
+0478 0479 0000 0000;C;\r
+047A 047B 0000 0000;C;\r
+047C 047D 0000 0000;C;\r
+047E 047F 0000 0000;C;\r
+0480 0481 0000 0000;C;\r
+048C 048D 0000 0000;C;\r
+048E 048F 0000 0000;C;\r
+0490 0491 0000 0000;C;\r
+0492 0493 0000 0000;C;\r
+0494 0495 0000 0000;C;\r
+0496 0497 0000 0000;C;\r
+0498 0499 0000 0000;C;\r
+049A 049B 0000 0000;C;\r
+049C 049D 0000 0000;C;\r
+049E 049F 0000 0000;C;\r
+04A0 04A1 0000 0000;C;\r
+04A2 04A3 0000 0000;C;\r
+04A4 04A5 0000 0000;C;\r
+04A6 04A7 0000 0000;C;\r
+04A8 04A9 0000 0000;C;\r
+04AA 04AB 0000 0000;C;\r
+04AC 04AD 0000 0000;C;\r
+04AE 04AF 0000 0000;C;\r
+04B0 04B1 0000 0000;C;\r
+04B2 04B3 0000 0000;C;\r
+04B4 04B5 0000 0000;C;\r
+04B6 04B7 0000 0000;C;\r
+04B8 04B9 0000 0000;C;\r
+04BA 04BB 0000 0000;C;\r
+04BC 04BD 0000 0000;C;\r
+04BE 04BF 0000 0000;C;\r
+04C1 04C2 0000 0000;C;\r
+04C3 04C4 0000 0000;C;\r
+04C7 04C8 0000 0000;C;\r
+04CB 04CC 0000 0000;C;\r
+04D0 04D1 0000 0000;C;\r
+04D2 04D3 0000 0000;C;\r
+04D4 04D5 0000 0000;C;\r
+04D6 04D7 0000 0000;C;\r
+04D8 04D9 0000 0000;C;\r
+04DA 04DB 0000 0000;C;\r
+04DC 04DD 0000 0000;C;\r
+04DE 04DF 0000 0000;C;\r
+04E0 04E1 0000 0000;C;\r
+04E2 04E3 0000 0000;C;\r
+04E4 04E5 0000 0000;C;\r
+04E6 04E7 0000 0000;C;\r
+04E8 04E9 0000 0000;C;\r
+04EA 04EB 0000 0000;C;\r
+04EC 04ED 0000 0000;C;\r
+04EE 04EF 0000 0000;C;\r
+04F0 04F1 0000 0000;C;\r
+04F2 04F3 0000 0000;C;\r
+04F4 04F5 0000 0000;C;\r
+04F8 04F9 0000 0000;C;\r
+0531 0561 0000 0000;C;\r
+0532 0562 0000 0000;C;\r
+0533 0563 0000 0000;C;\r
+0534 0564 0000 0000;C;\r
+0535 0565 0000 0000;C;\r
+0536 0566 0000 0000;C;\r
+0537 0567 0000 0000;C;\r
+0538 0568 0000 0000;C;\r
+0539 0569 0000 0000;C;\r
+053A 056A 0000 0000;C;\r
+053B 056B 0000 0000;C;\r
+053C 056C 0000 0000;C;\r
+053D 056D 0000 0000;C;\r
+053E 056E 0000 0000;C;\r
+053F 056F 0000 0000;C;\r
+0540 0570 0000 0000;C;\r
+0541 0571 0000 0000;C;\r
+0542 0572 0000 0000;C;\r
+0543 0573 0000 0000;C;\r
+0544 0574 0000 0000;C;\r
+0545 0575 0000 0000;C;\r
+0546 0576 0000 0000;C;\r
+0547 0577 0000 0000;C;\r
+0548 0578 0000 0000;C;\r
+0549 0579 0000 0000;C;\r
+054A 057A 0000 0000;C;\r
+054B 057B 0000 0000;C;\r
+054C 057C 0000 0000;C;\r
+054D 057D 0000 0000;C;\r
+054E 057E 0000 0000;C;\r
+054F 057F 0000 0000;C;\r
+0550 0580 0000 0000;C;\r
+0551 0581 0000 0000;C;\r
+0552 0582 0000 0000;C;\r
+0553 0583 0000 0000;C;\r
+0554 0584 0000 0000;C;\r
+0555 0585 0000 0000;C;\r
+0556 0586 0000 0000;C;\r
+0587 0565 0582 0000;F;\r
+1E00 1E01 0000 0000;C;\r
+1E02 1E03 0000 0000;C;\r
+1E04 1E05 0000 0000;C;\r
+1E06 1E07 0000 0000;C;\r
+1E08 1E09 0000 0000;C;\r
+1E0A 1E0B 0000 0000;C;\r
+1E0C 1E0D 0000 0000;C;\r
+1E0E 1E0F 0000 0000;C;\r
+1E10 1E11 0000 0000;C;\r
+1E12 1E13 0000 0000;C;\r
+1E14 1E15 0000 0000;C;\r
+1E16 1E17 0000 0000;C;\r
+1E18 1E19 0000 0000;C;\r
+1E1A 1E1B 0000 0000;C;\r
+1E1C 1E1D 0000 0000;C;\r
+1E1E 1E1F 0000 0000;C;\r
+1E20 1E21 0000 0000;C;\r
+1E22 1E23 0000 0000;C;\r
+1E24 1E25 0000 0000;C;\r
+1E26 1E27 0000 0000;C;\r
+1E28 1E29 0000 0000;C;\r
+1E2A 1E2B 0000 0000;C;\r
+1E2C 1E2D 0000 0000;C;\r
+1E2E 1E2F 0000 0000;C;\r
+1E30 1E31 0000 0000;C;\r
+1E32 1E33 0000 0000;C;\r
+1E34 1E35 0000 0000;C;\r
+1E36 1E37 0000 0000;C;\r
+1E38 1E39 0000 0000;C;\r
+1E3A 1E3B 0000 0000;C;\r
+1E3C 1E3D 0000 0000;C;\r
+1E3E 1E3F 0000 0000;C;\r
+1E40 1E41 0000 0000;C;\r
+1E42 1E43 0000 0000;C;\r
+1E44 1E45 0000 0000;C;\r
+1E46 1E47 0000 0000;C;\r
+1E48 1E49 0000 0000;C;\r
+1E4A 1E4B 0000 0000;C;\r
+1E4C 1E4D 0000 0000;C;\r
+1E4E 1E4F 0000 0000;C;\r
+1E50 1E51 0000 0000;C;\r
+1E52 1E53 0000 0000;C;\r
+1E54 1E55 0000 0000;C;\r
+1E56 1E57 0000 0000;C;\r
+1E58 1E59 0000 0000;C;\r
+1E5A 1E5B 0000 0000;C;\r
+1E5C 1E5D 0000 0000;C;\r
+1E5E 1E5F 0000 0000;C;\r
+1E60 1E61 0000 0000;C;\r
+1E62 1E63 0000 0000;C;\r
+1E64 1E65 0000 0000;C;\r
+1E66 1E67 0000 0000;C;\r
+1E68 1E69 0000 0000;C;\r
+1E6A 1E6B 0000 0000;C;\r
+1E6C 1E6D 0000 0000;C;\r
+1E6E 1E6F 0000 0000;C;\r
+1E70 1E71 0000 0000;C;\r
+1E72 1E73 0000 0000;C;\r
+1E74 1E75 0000 0000;C;\r
+1E76 1E77 0000 0000;C;\r
+1E78 1E79 0000 0000;C;\r
+1E7A 1E7B 0000 0000;C;\r
+1E7C 1E7D 0000 0000;C;\r
+1E7E 1E7F 0000 0000;C;\r
+1E80 1E81 0000 0000;C;\r
+1E82 1E83 0000 0000;C;\r
+1E84 1E85 0000 0000;C;\r
+1E86 1E87 0000 0000;C;\r
+1E88 1E89 0000 0000;C;\r
+1E8A 1E8B 0000 0000;C;\r
+1E8C 1E8D 0000 0000;C;\r
+1E8E 1E8F 0000 0000;C;\r
+1E90 1E91 0000 0000;C;\r
+1E92 1E93 0000 0000;C;\r
+1E94 1E95 0000 0000;C;\r
+1E96 0068 0331 0000;F;\r
+1E97 0074 0308 0000;F;\r
+1E98 0077 030A 0000;F;\r
+1E99 0079 030A 0000;F;\r
+1E9A 0061 02BE 0000;F;\r
+1E9B 1E61 0000 0000;C;\r
+1EA0 1EA1 0000 0000;C;\r
+1EA2 1EA3 0000 0000;C;\r
+1EA4 1EA5 0000 0000;C;\r
+1EA6 1EA7 0000 0000;C;\r
+1EA8 1EA9 0000 0000;C;\r
+1EAA 1EAB 0000 0000;C;\r
+1EAC 1EAD 0000 0000;C;\r
+1EAE 1EAF 0000 0000;C;\r
+1EB0 1EB1 0000 0000;C;\r
+1EB2 1EB3 0000 0000;C;\r
+1EB4 1EB5 0000 0000;C;\r
+1EB6 1EB7 0000 0000;C;\r
+1EB8 1EB9 0000 0000;C;\r
+1EBA 1EBB 0000 0000;C;\r
+1EBC 1EBD 0000 0000;C;\r
+1EBE 1EBF 0000 0000;C;\r
+1EC0 1EC1 0000 0000;C;\r
+1EC2 1EC3 0000 0000;C;\r
+1EC4 1EC5 0000 0000;C;\r
+1EC6 1EC7 0000 0000;C;\r
+1EC8 1EC9 0000 0000;C;\r
+1ECA 1ECB 0000 0000;C;\r
+1ECC 1ECD 0000 0000;C;\r
+1ECE 1ECF 0000 0000;C;\r
+1ED0 1ED1 0000 0000;C;\r
+1ED2 1ED3 0000 0000;C;\r
+1ED4 1ED5 0000 0000;C;\r
+1ED6 1ED7 0000 0000;C;\r
+1ED8 1ED9 0000 0000;C;\r
+1EDA 1EDB 0000 0000;C;\r
+1EDC 1EDD 0000 0000;C;\r
+1EDE 1EDF 0000 0000;C;\r
+1EE0 1EE1 0000 0000;C;\r
+1EE2 1EE3 0000 0000;C;\r
+1EE4 1EE5 0000 0000;C;\r
+1EE6 1EE7 0000 0000;C;\r
+1EE8 1EE9 0000 0000;C;\r
+1EEA 1EEB 0000 0000;C;\r
+1EEC 1EED 0000 0000;C;\r
+1EEE 1EEF 0000 0000;C;\r
+1EF0 1EF1 0000 0000;C;\r
+1EF2 1EF3 0000 0000;C;\r
+1EF4 1EF5 0000 0000;C;\r
+1EF6 1EF7 0000 0000;C;\r
+1EF8 1EF9 0000 0000;C;\r
+1F08 1F00 0000 0000;C;\r
+1F09 1F01 0000 0000;C;\r
+1F0A 1F02 0000 0000;C;\r
+1F0B 1F03 0000 0000;C;\r
+1F0C 1F04 0000 0000;C;\r
+1F0D 1F05 0000 0000;C;\r
+1F0E 1F06 0000 0000;C;\r
+1F0F 1F07 0000 0000;C;\r
+1F18 1F10 0000 0000;C;\r
+1F19 1F11 0000 0000;C;\r
+1F1A 1F12 0000 0000;C;\r
+1F1B 1F13 0000 0000;C;\r
+1F1C 1F14 0000 0000;C;\r
+1F1D 1F15 0000 0000;C;\r
+1F28 1F20 0000 0000;C;\r
+1F29 1F21 0000 0000;C;\r
+1F2A 1F22 0000 0000;C;\r
+1F2B 1F23 0000 0000;C;\r
+1F2C 1F24 0000 0000;C;\r
+1F2D 1F25 0000 0000;C;\r
+1F2E 1F26 0000 0000;C;\r
+1F2F 1F27 0000 0000;C;\r
+1F38 1F30 0000 0000;C;\r
+1F39 1F31 0000 0000;C;\r
+1F3A 1F32 0000 0000;C;\r
+1F3B 1F33 0000 0000;C;\r
+1F3C 1F34 0000 0000;C;\r
+1F3D 1F35 0000 0000;C;\r
+1F3E 1F36 0000 0000;C;\r
+1F3F 1F37 0000 0000;C;\r
+1F48 1F40 0000 0000;C;\r
+1F49 1F41 0000 0000;C;\r
+1F4A 1F42 0000 0000;C;\r
+1F4B 1F43 0000 0000;C;\r
+1F4C 1F44 0000 0000;C;\r
+1F4D 1F45 0000 0000;C;\r
+1F50 03C5 0313 0000;F;\r
+1F52 03C5 0313 0300;F;\r
+1F54 03C5 0313 0301;F;\r
+1F56 03C5 0313 0342;F;\r
+1F59 1F51 0000 0000;C;\r
+1F5B 1F53 0000 0000;C;\r
+1F5D 1F55 0000 0000;C;\r
+1F5F 1F57 0000 0000;C;\r
+1F68 1F60 0000 0000;C;\r
+1F69 1F61 0000 0000;C;\r
+1F6A 1F62 0000 0000;C;\r
+1F6B 1F63 0000 0000;C;\r
+1F6C 1F64 0000 0000;C;\r
+1F6D 1F65 0000 0000;C;\r
+1F6E 1F66 0000 0000;C;\r
+1F6F 1F67 0000 0000;C;\r
+1F80 1F00 03B9 0000;F;\r
+1F81 1F01 03B9 0000;F;\r
+1F82 1F02 03B9 0000;F;\r
+1F83 1F03 03B9 0000;F;\r
+1F84 1F04 03B9 0000;F;\r
+1F85 1F05 03B9 0000;F;\r
+1F86 1F06 03B9 0000;F;\r
+1F87 1F07 03B9 0000;F;\r
+1F88 1F00 03B9 0000;F;\r
+1F89 1F01 03B9 0000;F;\r
+1F8A 1F02 03B9 0000;F;\r
+1F8B 1F03 03B9 0000;F;\r
+1F8C 1F04 03B9 0000;F;\r
+1F8D 1F05 03B9 0000;F;\r
+1F8E 1F06 03B9 0000;F;\r
+1F8F 1F07 03B9 0000;F;\r
+1F90 1F20 03B9 0000;F;\r
+1F91 1F21 03B9 0000;F;\r
+1F92 1F22 03B9 0000;F;\r
+1F93 1F23 03B9 0000;F;\r
+1F94 1F24 03B9 0000;F;\r
+1F95 1F25 03B9 0000;F;\r
+1F96 1F26 03B9 0000;F;\r
+1F97 1F27 03B9 0000;F;\r
+1F98 1F20 03B9 0000;F;\r
+1F99 1F21 03B9 0000;F;\r
+1F9A 1F22 03B9 0000;F;\r
+1F9B 1F23 03B9 0000;F;\r
+1F9C 1F24 03B9 0000;F;\r
+1F9D 1F25 03B9 0000;F;\r
+1F9E 1F26 03B9 0000;F;\r
+1F9F 1F27 03B9 0000;F;\r
+1FA0 1F60 03B9 0000;F;\r
+1FA1 1F61 03B9 0000;F;\r
+1FA2 1F62 03B9 0000;F;\r
+1FA3 1F63 03B9 0000;F;\r
+1FA4 1F64 03B9 0000;F;\r
+1FA5 1F65 03B9 0000;F;\r
+1FA6 1F66 03B9 0000;F;\r
+1FA7 1F67 03B9 0000;F;\r
+1FA8 1F60 03B9 0000;F;\r
+1FA9 1F61 03B9 0000;F;\r
+1FAA 1F62 03B9 0000;F;\r
+1FAB 1F63 03B9 0000;F;\r
+1FAC 1F64 03B9 0000;F;\r
+1FAD 1F65 03B9 0000;F;\r
+1FAE 1F66 03B9 0000;F;\r
+1FAF 1F67 03B9 0000;F;\r
+1FB2 1F70 03B9 0000;F;\r
+1FB3 03B1 03B9 0000;F;\r
+1FB4 03AC 03B9 0000;F;\r
+1FB6 03B1 0342 0000;F;\r
+1FB7 03B1 0342 03B9;F;\r
+1FB8 1FB0 0000 0000;C;\r
+1FB9 1FB1 0000 0000;C;\r
+1FBA 1F70 0000 0000;C;\r
+1FBB 1F71 0000 0000;C;\r
+1FBC 03B1 03B9 0000;F;\r
+1FBE 03B9 0000 0000;C;\r
+1FC2 1F74 03B9 0000;F;\r
+1FC3 03B7 03B9 0000;F;\r
+1FC4 03AE 03B9 0000;F;\r
+1FC6 03B7 0342 0000;F;\r
+1FC7 03B7 0342 03B9;F;\r
+1FC8 1F72 0000 0000;C;\r
+1FC9 1F73 0000 0000;C;\r
+1FCA 1F74 0000 0000;C;\r
+1FCB 1F75 0000 0000;C;\r
+1FCC 03B7 03B9 0000;F;\r
+1FD2 03B9 0308 0300;F;\r
+1FD3 03B9 0308 0301;F;\r
+1FD6 03B9 0342 0000;F;\r
+1FD7 03B9 0308 0342;F;\r
+1FD8 1FD0 0000 0000;C;\r
+1FD9 1FD1 0000 0000;C;\r
+1FDA 1F76 0000 0000;C;\r
+1FDB 1F77 0000 0000;C;\r
+1FE2 03C5 0308 0300;F;\r
+1FE3 03C5 0308 0301;F;\r
+1FE4 03C1 0313 0000;F;\r
+1FE6 03C5 0342 0000;F;\r
+1FE7 03C5 0308 0342;F;\r
+1FE8 1FE0 0000 0000;C;\r
+1FE9 1FE1 0000 0000;C;\r
+1FEA 1F7A 0000 0000;C;\r
+1FEB 1F7B 0000 0000;C;\r
+1FEC 1FE5 0000 0000;C;\r
+1FF2 1F7C 03B9 0000;F;\r
+1FF3 03C9 03B9 0000;F;\r
+1FF4 03CE 03B9 0000;F;\r
+1FF6 03C9 0342 0000;F;\r
+1FF7 03C9 0342 03B9;F;\r
+1FF8 1F78 0000 0000;C;\r
+1FF9 1F79 0000 0000;C;\r
+1FFA 1F7C 0000 0000;C;\r
+1FFB 1F7D 0000 0000;C;\r
+1FFC 03C9 03B9 0000;F;\r
+2126 03C9 0000 0000;C;\r
+212A 006B 0000 0000;C;\r
+212B 00E5 0000 0000;C;\r
+2160 2170 0000 0000;C;\r
+2161 2171 0000 0000;C;\r
+2162 2172 0000 0000;C;\r
+2163 2173 0000 0000;C;\r
+2164 2174 0000 0000;C;\r
+2165 2175 0000 0000;C;\r
+2166 2176 0000 0000;C;\r
+2167 2177 0000 0000;C;\r
+2168 2178 0000 0000;C;\r
+2169 2179 0000 0000;C;\r
+216A 217A 0000 0000;C;\r
+216B 217B 0000 0000;C;\r
+216C 217C 0000 0000;C;\r
+216D 217D 0000 0000;C;\r
+216E 217E 0000 0000;C;\r
+216F 217F 0000 0000;C;\r
+24B6 24D0 0000 0000;C;\r
+24B7 24D1 0000 0000;C;\r
+24B8 24D2 0000 0000;C;\r
+24B9 24D3 0000 0000;C;\r
+24BA 24D4 0000 0000;C;\r
+24BB 24D5 0000 0000;C;\r
+24BC 24D6 0000 0000;C;\r
+24BD 24D7 0000 0000;C;\r
+24BE 24D8 0000 0000;C;\r
+24BF 24D9 0000 0000;C;\r
+24C0 24DA 0000 0000;C;\r
+24C1 24DB 0000 0000;C;\r
+24C2 24DC 0000 0000;C;\r
+24C3 24DD 0000 0000;C;\r
+24C4 24DE 0000 0000;C;\r
+24C5 24DF 0000 0000;C;\r
+24C6 24E0 0000 0000;C;\r
+24C7 24E1 0000 0000;C;\r
+24C8 24E2 0000 0000;C;\r
+24C9 24E3 0000 0000;C;\r
+24CA 24E4 0000 0000;C;\r
+24CB 24E5 0000 0000;C;\r
+24CC 24E6 0000 0000;C;\r
+24CD 24E7 0000 0000;C;\r
+24CE 24E8 0000 0000;C;\r
+24CF 24E9 0000 0000;C;\r
+FB00 0066 0066 0000;F;\r
+FB01 0066 0069 0000;F;\r
+FB02 0066 006C 0000;F;\r
+FB03 0066 0066 0069;F;\r
+FB04 0066 0066 006C;F;\r
+FB05 0073 0074 0000;F;\r
+FB06 0073 0074 0000;F;\r
+FB13 0574 0576 0000;F;\r
+FB14 0574 0565 0000;F;\r
+FB15 0574 056B 0000;F;\r
+FB16 057E 0576 0000;F;\r
+FB17 0574 056D 0000;F;\r
+FF21 FF41 0000 0000;C;\r
+FF22 FF42 0000 0000;C;\r
+FF23 FF43 0000 0000;C;\r
+FF24 FF44 0000 0000;C;\r
+FF25 FF45 0000 0000;C;\r
+FF26 FF46 0000 0000;C;\r
+FF27 FF47 0000 0000;C;\r
+FF28 FF48 0000 0000;C;\r
+FF29 FF49 0000 0000;C;\r
+FF2A FF4A 0000 0000;C;\r
+FF2B FF4B 0000 0000;C;\r
+FF2C FF4C 0000 0000;C;\r
+FF2D FF4D 0000 0000;C;\r
+FF2E FF4E 0000 0000;C;\r
+FF2F FF4F 0000 0000;C;\r
+FF30 FF50 0000 0000;C;\r
+FF31 FF51 0000 0000;C;\r
+FF32 FF52 0000 0000;C;\r
+FF33 FF53 0000 0000;C;\r
+FF34 FF54 0000 0000;C;\r
+FF35 FF55 0000 0000;C;\r
+FF36 FF56 0000 0000;C;\r
+FF37 FF57 0000 0000;C;\r
+FF38 FF58 0000 0000;C;\r
+FF39 FF59 0000 0000;C;\r
+FF3A FF5A 0000 0000;C;\r
diff --git a/data/uni-line.txt b/data/uni-line.txt
new file mode 100644 (file)
index 0000000..ae5afdb
--- /dev/null
@@ -0,0 +1,1126 @@
+# uni-line.txt - Unicode line break class\r
+0000 0008;CM\r
+0009 0009;BA\r
+000A 000A;LF\r
+000B 000B;CM\r
+000C 000C;BK\r
+000D 000D;CR\r
+000E 001F;CM\r
+0020 0020;SP\r
+0021 0021;EX\r
+0022 0022;QU\r
+0023 0023;AL\r
+0024 0024;PR\r
+0025 0025;PO\r
+0026 0026;AL\r
+0027 0027;QU\r
+0028 0028;OP\r
+0029 0029;CL\r
+002A 002A;AL\r
+002B 002B;PR\r
+002C 002C;IS\r
+002D 002D;HY\r
+002E 002E;IS\r
+002F 002F;SY\r
+0030 0039;NU\r
+003A 003B;IS\r
+003C 003E;AL\r
+003F 003F;EX\r
+0040 0040;AL\r
+0041 005A;AL\r
+005B 005B;OP\r
+005C 005C;PR\r
+005D 005D;CL\r
+005E 005E;AL\r
+005F 005F;AL\r
+0060 0060;AL\r
+0061 007A;AL\r
+007B 007B;OP\r
+007C 007C;BA\r
+007D 007D;CL\r
+007E 007E;AL\r
+007F 009F;CM\r
+00A0 00A0;GL\r
+00A1 00A1;AI\r
+00A2 00A2;PO\r
+00A3 00A5;PR\r
+00A6 00A6;AL\r
+00A7 00A7;AI\r
+00A8 00A8;AI\r
+00A9 00A9;AL\r
+00AA 00AA;AI\r
+00AB 00AB;QU\r
+00AC 00AC;AL\r
+00AD 00AD;BA\r
+00AE 00AE;AL\r
+00AF 00AF;AL\r
+00B0 00B0;PO\r
+00B1 00B1;PR\r
+00B2 00B3;AI\r
+00B4 00B4;BB\r
+00B5 00B5;AL\r
+00B6 00B6;AI\r
+00B7 00B7;AI\r
+00B8 00B8;AI\r
+00B9 00B9;AI\r
+00BA 00BA;AI\r
+00BB 00BB;QU\r
+00BC 00BE;AI\r
+00BF 00BF;AI\r
+00C0 00C5;AL\r
+00C6 00C6;AI\r
+00C7 00CF;AL\r
+00D0 00D0;AI\r
+00D1 00D6;AL\r
+00D7 00D7;AI\r
+00D8 00D8;AI\r
+00D9 00DD;AL\r
+00DE 00E1;AI\r
+00E2 00E5;AL\r
+00E6 00E6;AI\r
+00E7 00E7;AL\r
+00E8 00EA;AI\r
+00EB 00EB;AL\r
+00EC 00ED;AI\r
+00EE 00EF;AL\r
+00F0 00F0;AI\r
+00F1 00F1;AL\r
+00F2 00F3;AI\r
+00F4 00F6;AL\r
+00F7 00F7;AI\r
+00F8 00FA;AI\r
+00FB 00FB;AL\r
+00FC 00FC;AI\r
+00FD 00FD;AL\r
+00FE 00FE;AI\r
+00FF 0100;AL\r
+0101 0101;AI\r
+0102 0110;AL\r
+0111 0111;AI\r
+0112 0112;AL\r
+0113 0113;AI\r
+0114 011A;AL\r
+011B 011B;AI\r
+011C 0125;AL\r
+0126 0127;AI\r
+0128 012A;AL\r
+012B 012B;AI\r
+012C 0130;AL\r
+0131 0133;AI\r
+0134 0137;AL\r
+0138 0138;AI\r
+0139 013E;AL\r
+013F 0142;AI\r
+0143 0143;AL\r
+0144 0144;AI\r
+0145 0147;AL\r
+0148 014A;AI\r
+014B 014C;AL\r
+014D 014D;AI\r
+014E 0151;AL\r
+0152 0153;AI\r
+0154 0165;AL\r
+0166 0167;AI\r
+0168 016A;AL\r
+016B 016B;AI\r
+016C 01BA;AL\r
+01BB 01BB;AL\r
+01BC 01BF;AL\r
+01C0 01C3;AL\r
+01C4 01CD;AL\r
+01CE 01CE;AI\r
+01CF 01CF;AL\r
+01D0 01D0;AI\r
+01D1 01D1;AL\r
+01D2 01D2;AI\r
+01D3 01D3;AL\r
+01D4 01D4;AI\r
+01D5 01D5;AL\r
+01D6 01D6;AI\r
+01D7 01D7;AL\r
+01D8 01D8;AI\r
+01D9 01D9;AL\r
+01DA 01DA;AI\r
+01DB 01DB;AL\r
+01DC 01DC;AI\r
+01DD 021F;AL\r
+0222 0233;AL\r
+0250 0250;AL\r
+0251 0251;AI\r
+0252 0260;AL\r
+0261 0261;AI\r
+0262 02AD;AL\r
+02B0 02B8;AL\r
+02B9 02BA;AL\r
+02BB 02C1;AL\r
+02C2 02C6;AL\r
+02C7 02C7;AI\r
+02C8 02C8;BB\r
+02C9 02CB;AI\r
+02CC 02CC;BB\r
+02CD 02CD;AI\r
+02CE 02CF;AL\r
+02D0 02D0;AI\r
+02D1 02D1;AL\r
+02D2 02D7;AL\r
+02D8 02DB;AI\r
+02DC 02DC;AL\r
+02DD 02DD;AI\r
+02DE 02DF;AL\r
+02E0 02E4;AL\r
+02E5 02ED;AL\r
+02EE 02EE;AL\r
+0300 034E;CM\r
+0360 0362;CM\r
+0374 0375;AL\r
+037A 037A;AL\r
+037E 037E;AL\r
+0384 0385;AL\r
+0386 0386;AL\r
+0387 0387;AL\r
+0388 038A;AL\r
+038C 038C;AL\r
+038E 0390;AL\r
+0391 03A1;AI\r
+03A3 03A9;AI\r
+03AA 03B0;AL\r
+03B1 03C1;AI\r
+03C2 03C2;AL\r
+03C3 03C9;AI\r
+03CA 03CE;AL\r
+03D0 03D7;AL\r
+03DA 03F5;AL\r
+0400 0400;AL\r
+0401 0401;AI\r
+0402 040F;AL\r
+0410 044F;AI\r
+0450 0450;AL\r
+0451 0451;AI\r
+0452 0481;AL\r
+0482 0482;AL\r
+0483 0486;CM\r
+0488 0489;CM\r
+048C 04C4;AL\r
+04C7 04C8;AL\r
+04CB 04CC;AL\r
+04D0 04F5;AL\r
+04F8 04F9;AL\r
+0531 0556;AL\r
+0559 0559;AL\r
+055A 055F;AL\r
+0561 0587;AL\r
+0589 0589;IS\r
+058A 058A;BA\r
+0591 05A1;CM\r
+05A3 05B9;CM\r
+05BB 05BD;CM\r
+05BE 05BE;AL\r
+05BF 05BF;CM\r
+05C0 05C0;AL\r
+05C1 05C2;CM\r
+05C3 05C3;AL\r
+05C4 05C4;CM\r
+05D0 05EA;AL\r
+05F0 05F2;AL\r
+05F3 05F4;AL\r
+060C 060C;AL\r
+061B 061B;AL\r
+061F 061F;AL\r
+0621 063A;AL\r
+0640 0640;AL\r
+0641 064A;AL\r
+064B 0655;CM\r
+0660 0669;NU\r
+066A 066D;AL\r
+0670 0670;CM\r
+0671 06D3;AL\r
+06D4 06D4;AL\r
+06D5 06D5;AL\r
+06D6 06DC;CM\r
+06DD 06DE;CM\r
+06DF 06E4;CM\r
+06E5 06E6;AL\r
+06E7 06E8;CM\r
+06E9 06E9;AL\r
+06EA 06ED;CM\r
+06F0 06F9;NU\r
+06FA 06FC;AL\r
+06FD 06FE;AL\r
+0700 070D;AL\r
+070F 070F;CM\r
+0710 0710;AL\r
+0711 0711;CM\r
+0712 072C;AL\r
+0730 074A;CM\r
+0780 07A5;AL\r
+07A6 07B0;CM\r
+0901 0902;CM\r
+0903 0903;CM\r
+0905 0939;AL\r
+093C 093C;CM\r
+093D 093D;AL\r
+093E 0940;CM\r
+0941 0948;CM\r
+0949 094C;CM\r
+094D 094D;CM\r
+0950 0950;AL\r
+0951 0954;CM\r
+0958 0961;AL\r
+0962 0963;CM\r
+0964 0965;AL\r
+0966 096F;NU\r
+0970 0970;AL\r
+0981 0981;CM\r
+0982 0983;CM\r
+0985 098C;AL\r
+098F 0990;AL\r
+0993 09A8;AL\r
+09AA 09B0;AL\r
+09B2 09B2;AL\r
+09B6 09B9;AL\r
+09BC 09BC;CM\r
+09BE 09C0;CM\r
+09C1 09C4;CM\r
+09C7 09C8;CM\r
+09CB 09CC;CM\r
+09CD 09CD;CM\r
+09D7 09D7;CM\r
+09DC 09DD;AL\r
+09DF 09E1;AL\r
+09E2 09E3;CM\r
+09E6 09EF;NU\r
+09F0 09F1;AL\r
+09F2 09F3;PR\r
+09F4 09F9;AL\r
+09FA 09FA;AL\r
+0A02 0A02;CM\r
+0A05 0A0A;AL\r
+0A0F 0A10;AL\r
+0A13 0A28;AL\r
+0A2A 0A30;AL\r
+0A32 0A33;AL\r
+0A35 0A36;AL\r
+0A38 0A39;AL\r
+0A3C 0A3C;CM\r
+0A3E 0A40;CM\r
+0A41 0A42;CM\r
+0A47 0A48;CM\r
+0A4B 0A4D;CM\r
+0A59 0A5C;AL\r
+0A5E 0A5E;AL\r
+0A66 0A6F;NU\r
+0A70 0A71;CM\r
+0A72 0A74;AL\r
+0A81 0A82;CM\r
+0A83 0A83;CM\r
+0A85 0A8B;AL\r
+0A8D 0A8D;AL\r
+0A8F 0A91;AL\r
+0A93 0AA8;AL\r
+0AAA 0AB0;AL\r
+0AB2 0AB3;AL\r
+0AB5 0AB9;AL\r
+0ABC 0ABC;CM\r
+0ABD 0ABD;AL\r
+0ABE 0AC0;CM\r
+0AC1 0AC5;CM\r
+0AC7 0AC8;CM\r
+0AC9 0AC9;CM\r
+0ACB 0ACC;CM\r
+0ACD 0ACD;CM\r
+0AD0 0AD0;AL\r
+0AE0 0AE0;AL\r
+0AE6 0AEF;NU\r
+0B01 0B01;CM\r
+0B02 0B03;CM\r
+0B05 0B0C;AL\r
+0B0F 0B10;AL\r
+0B13 0B28;AL\r
+0B2A 0B30;AL\r
+0B32 0B33;AL\r
+0B36 0B39;AL\r
+0B3C 0B3C;CM\r
+0B3D 0B3D;AL\r
+0B3E 0B3E;CM\r
+0B3F 0B3F;CM\r
+0B40 0B40;CM\r
+0B41 0B43;CM\r
+0B47 0B48;CM\r
+0B4B 0B4C;CM\r
+0B4D 0B4D;CM\r
+0B56 0B56;CM\r
+0B57 0B57;CM\r
+0B5C 0B5D;AL\r
+0B5F 0B61;AL\r
+0B66 0B6F;NU\r
+0B70 0B70;AL\r
+0B82 0B82;CM\r
+0B83 0B83;CM\r
+0B85 0B8A;AL\r
+0B8E 0B90;AL\r
+0B92 0B95;AL\r
+0B99 0B9A;AL\r
+0B9C 0B9C;AL\r
+0B9E 0B9F;AL\r
+0BA3 0BA4;AL\r
+0BA8 0BAA;AL\r
+0BAE 0BB5;AL\r
+0BB7 0BB9;AL\r
+0BBE 0BBF;CM\r
+0BC0 0BC0;CM\r
+0BC1 0BC2;CM\r
+0BC6 0BC8;CM\r
+0BCA 0BCC;CM\r
+0BCD 0BCD;CM\r
+0BD7 0BD7;CM\r
+0BE7 0BEF;NU\r
+0BF0 0BF2;AL\r
+0C01 0C03;CM\r
+0C05 0C0C;AL\r
+0C0E 0C10;AL\r
+0C12 0C28;AL\r
+0C2A 0C33;AL\r
+0C35 0C39;AL\r
+0C3E 0C40;CM\r
+0C41 0C44;CM\r
+0C46 0C48;CM\r
+0C4A 0C4D;CM\r
+0C55 0C56;CM\r
+0C60 0C61;AL\r
+0C66 0C6F;NU\r
+0C82 0C83;CM\r
+0C85 0C8C;AL\r
+0C8E 0C90;AL\r
+0C92 0CA8;AL\r
+0CAA 0CB3;AL\r
+0CB5 0CB9;AL\r
+0CBE 0CBE;CM\r
+0CBF 0CBF;CM\r
+0CC0 0CC4;CM\r
+0CC6 0CC6;CM\r
+0CC7 0CC8;CM\r
+0CCA 0CCB;CM\r
+0CCC 0CCD;CM\r
+0CD5 0CD6;CM\r
+0CDE 0CDE;AL\r
+0CE0 0CE1;AL\r
+0CE6 0CEF;NU\r
+0D02 0D03;CM\r
+0D05 0D0C;AL\r
+0D0E 0D10;AL\r
+0D12 0D28;AL\r
+0D2A 0D39;AL\r
+0D3E 0D40;CM\r
+0D41 0D43;CM\r
+0D46 0D48;CM\r
+0D4A 0D4C;CM\r
+0D4D 0D4D;CM\r
+0D57 0D57;CM\r
+0D60 0D61;AL\r
+0D66 0D6F;NU\r
+0D82 0D83;CM\r
+0D85 0D96;AL\r
+0D9A 0DB1;AL\r
+0DB3 0DBB;AL\r
+0DBD 0DBD;AL\r
+0DC0 0DC6;AL\r
+0DCA 0DCA;CM\r
+0DCF 0DD1;CM\r
+0DD2 0DD4;CM\r
+0DD6 0DD6;CM\r
+0DD8 0DDF;CM\r
+0DF2 0DF3;CM\r
+0DF4 0DF4;AL\r
+0E01 0E30;SA\r
+0E31 0E31;CM\r
+0E32 0E33;SA\r
+0E34 0E3A;CM\r
+0E3F 0E3F;PR\r
+0E40 0E45;SA\r
+0E46 0E46;SA\r
+0E47 0E4E;CM\r
+0E4F 0E4F;AL\r
+0E50 0E59;NU\r
+0E5A 0E5B;NS\r
+0E81 0E82;SA\r
+0E84 0E84;SA\r
+0E87 0E88;SA\r
+0E8A 0E8A;SA\r
+0E8D 0E8D;SA\r
+0E94 0E97;SA\r
+0E99 0E9F;SA\r
+0EA1 0EA3;SA\r
+0EA5 0EA5;SA\r
+0EA7 0EA7;SA\r
+0EAA 0EAB;SA\r
+0EAD 0EB0;SA\r
+0EB1 0EB1;CM\r
+0EB2 0EB3;SA\r
+0EB4 0EB9;CM\r
+0EBB 0EBC;CM\r
+0EBD 0EBD;SA\r
+0EC0 0EC4;SA\r
+0EC6 0EC6;SA\r
+0EC8 0ECD;CM\r
+0ED0 0ED9;NU\r
+0EDC 0EDD;SA\r
+0F00 0F00;AL\r
+0F01 0F03;AL\r
+0F04 0F0A;AL\r
+0F0B 0F0B;BA\r
+0F0C 0F0C;GL\r
+0F0D 0F12;AL\r
+0F13 0F17;AL\r
+0F18 0F19;CM\r
+0F1A 0F1F;AL\r
+0F20 0F29;NU\r
+0F2A 0F33;AL\r
+0F34 0F34;AL\r
+0F35 0F35;CM\r
+0F36 0F36;AL\r
+0F37 0F37;CM\r
+0F38 0F38;AL\r
+0F39 0F39;CM\r
+0F3A 0F3A;OP\r
+0F3B 0F3B;CL\r
+0F3C 0F3C;OP\r
+0F3D 0F3D;CL\r
+0F3E 0F3F;CM\r
+0F40 0F47;AL\r
+0F49 0F6A;AL\r
+0F71 0F7E;CM\r
+0F7F 0F7F;CM\r
+0F80 0F84;CM\r
+0F85 0F85;AL\r
+0F86 0F87;CM\r
+0F88 0F8B;AL\r
+0F90 0F97;CM\r
+0F99 0FBC;CM\r
+0FBE 0FC5;AL\r
+0FC6 0FC6;CM\r
+0FC7 0FCC;AL\r
+0FCF 0FCF;AL\r
+1000 1021;SA\r
+1023 1027;SA\r
+1029 102A;SA\r
+102C 102C;CM\r
+102D 1030;CM\r
+1031 1031;CM\r
+1032 1032;CM\r
+1036 1037;CM\r
+1038 1038;CM\r
+1039 1039;CM\r
+1040 1049;NU\r
+104A 104F;AL\r
+1050 1055;SA\r
+1056 1057;CM\r
+1058 1059;CM\r
+10A0 10C5;AL\r
+10D0 10F6;AL\r
+10FB 10FB;AL\r
+1100 1159;ID\r
+115F 115F;ID\r
+1160 11A2;CM\r
+11A8 11F9;CM\r
+1200 1206;AL\r
+1208 1246;AL\r
+1248 1248;AL\r
+124A 124D;AL\r
+1250 1256;AL\r
+1258 1258;AL\r
+125A 125D;AL\r
+1260 1286;AL\r
+1288 1288;AL\r
+128A 128D;AL\r
+1290 12AE;AL\r
+12B0 12B0;AL\r
+12B2 12B5;AL\r
+12B8 12BE;AL\r
+12C0 12C0;AL\r
+12C2 12C5;AL\r
+12C8 12CE;AL\r
+12D0 12D6;AL\r
+12D8 12EE;AL\r
+12F0 130E;AL\r
+1310 1310;AL\r
+1312 1315;AL\r
+1318 131E;AL\r
+1320 1346;AL\r
+1348 135A;AL\r
+1361 1361;BA\r
+1362 1368;AL\r
+1369 1371;NU\r
+1372 137C;AL\r
+13A0 13F4;AL\r
+1401 166C;AL\r
+166D 166E;AL\r
+166F 1676;AL\r
+1680 1680;BA\r
+1681 169A;AL\r
+169B 169B;OP\r
+169C 169C;CL\r
+16A0 16EA;AL\r
+16EB 16ED;AL\r
+16EE 16F0;AL\r
+1780 17B3;SA\r
+17B4 17B6;CM\r
+17B7 17BD;CM\r
+17BE 17C5;CM\r
+17C6 17C6;CM\r
+17C7 17C8;CM\r
+17C9 17D3;CM\r
+17D4 17D4;NS\r
+17D5 17D5;BA\r
+17D6 17DA;NS\r
+17DB 17DB;PR\r
+17DC 17DC;AL\r
+17E0 17E9;NU\r
+1800 1805;AL\r
+1806 1806;BB\r
+1807 180A;AL\r
+180B 180E;CM\r
+1810 1819;NU\r
+1820 1842;AL\r
+1843 1843;AL\r
+1844 1877;AL\r
+1880 18A8;AL\r
+18A9 18A9;CM\r
+1E00 1E9B;AL\r
+1EA0 1EF9;AL\r
+1F00 1F15;AL\r
+1F18 1F1D;AL\r
+1F20 1F45;AL\r
+1F48 1F4D;AL\r
+1F50 1F57;AL\r
+1F59 1F59;AL\r
+1F5B 1F5B;AL\r
+1F5D 1F5D;AL\r
+1F5F 1F7D;AL\r
+1F80 1FB4;AL\r
+1FB6 1FBC;AL\r
+1FBD 1FBD;AL\r
+1FBE 1FBE;AL\r
+1FBF 1FC1;AL\r
+1FC2 1FC4;AL\r
+1FC6 1FCC;AL\r
+1FCD 1FCF;AL\r
+1FD0 1FD3;AL\r
+1FD6 1FDB;AL\r
+1FDD 1FDF;AL\r
+1FE0 1FEC;AL\r
+1FED 1FEF;AL\r
+1FF2 1FF4;AL\r
+1FF6 1FFC;AL\r
+1FFD 1FFE;AL\r
+2000 2006;BA\r
+2007 2007;GL\r
+2008 200A;BA\r
+200B 200B;ZW\r
+200C 200F;CM\r
+2010 2010;BA\r
+2011 2011;GL\r
+2012 2013;BA\r
+2014 2014;B2\r
+2015 2015;AI\r
+2016 2016;AI\r
+2017 2017;AL\r
+2018 2018;QU\r
+2019 2019;QU\r
+201A 201A;OP\r
+201B 201C;QU\r
+201D 201D;QU\r
+201E 201E;OP\r
+201F 201F;QU\r
+2020 2021;AI\r
+2022 2023;AL\r
+2024 2026;IN\r
+2027 2027;BA\r
+2028 2028;BK\r
+2029 2029;BK\r
+202A 202E;CM\r
+202F 202F;GL\r
+2030 2037;PO\r
+2038 2038;AL\r
+2039 2039;QU\r
+203A 203A;QU\r
+203B 203B;AI\r
+203C 203C;NS\r
+203D 203E;AL\r
+203F 2040;AL\r
+2041 2043;AL\r
+2044 2044;NS\r
+2045 2045;OP\r
+2046 2046;CL\r
+2048 204D;AL\r
+206A 206F;CM\r
+2070 2070;AL\r
+2074 2074;AI\r
+2075 2079;AL\r
+207A 207C;AL\r
+207D 207D;OP\r
+207E 207E;CL\r
+207F 207F;AI\r
+2080 2080;AL\r
+2081 2084;AI\r
+2085 2089;AL\r
+208A 208C;AL\r
+208D 208D;OP\r
+208E 208E;CL\r
+20A0 20A6;PR\r
+20A7 20A7;PO\r
+20A8 20AF;PR\r
+20D0 20DC;CM\r
+20DD 20E0;CM\r
+20E1 20E1;CM\r
+20E2 20E3;CM\r
+2100 2101;AL\r
+2102 2102;AL\r
+2103 2103;PO\r
+2104 2104;AL\r
+2105 2105;AI\r
+2106 2106;AL\r
+2107 2107;AL\r
+2108 2108;AL\r
+2109 2109;PO\r
+210A 2112;AL\r
+2113 2113;AI\r
+2114 2114;AL\r
+2115 2115;AL\r
+2116 2116;PR\r
+2117 2118;AL\r
+2119 211D;AL\r
+211E 2120;AL\r
+2121 2122;AI\r
+2123 2123;AL\r
+2124 2124;AL\r
+2125 2125;AL\r
+2126 2126;PO\r
+2127 2127;AL\r
+2128 2128;AL\r
+2129 2129;AL\r
+212A 212A;AL\r
+212B 212B;AI\r
+212C 212D;AL\r
+212E 212E;AL\r
+212F 2131;AL\r
+2132 2132;AL\r
+2133 2134;AL\r
+2135 2138;AL\r
+2139 2139;AL\r
+213A 213A;AL\r
+2153 2153;AL\r
+2154 2155;AI\r
+2156 215A;AL\r
+215B 215B;AI\r
+215C 215D;AL\r
+215E 215E;AI\r
+215F 215F;AL\r
+2160 216B;AI\r
+216C 216F;AL\r
+2170 2179;AI\r
+217A 2183;AL\r
+2190 2194;AI\r
+2195 2199;AI\r
+219A 219B;AL\r
+219C 219F;AL\r
+21A0 21A0;AL\r
+21A1 21A2;AL\r
+21A3 21A3;AL\r
+21A4 21A5;AL\r
+21A6 21A6;AL\r
+21A7 21AD;AL\r
+21AE 21AE;AL\r
+21AF 21CD;AL\r
+21CE 21CF;AL\r
+21D0 21D1;AL\r
+21D2 21D2;AI\r
+21D3 21D3;AL\r
+21D4 21D4;AI\r
+21D5 21F3;AL\r
+2200 2200;AI\r
+2201 2201;AL\r
+2202 2203;AI\r
+2204 2206;AL\r
+2207 2208;AI\r
+2209 220A;AL\r
+220B 220B;AI\r
+220C 220E;AL\r
+220F 220F;AI\r
+2210 2210;AL\r
+2211 2211;AI\r
+2212 2213;PR\r
+2214 2214;AL\r
+2215 2215;AI\r
+2216 2219;AL\r
+221A 221A;AI\r
+221B 221C;AL\r
+221D 2220;AI\r
+2221 2222;AL\r
+2223 2223;AI\r
+2224 2224;AL\r
+2225 2225;AI\r
+2226 2226;AL\r
+2227 222C;AI\r
+222D 222D;AL\r
+222E 222E;AI\r
+222F 2233;AL\r
+2234 2237;AI\r
+2238 223B;AL\r
+223C 223D;AI\r
+223E 2247;AL\r
+2248 2248;AI\r
+2249 224B;AL\r
+224C 224C;AI\r
+224D 2251;AL\r
+2252 2252;AI\r
+2253 225F;AL\r
+2260 2261;AI\r
+2262 2263;AL\r
+2264 2267;AI\r
+2268 2269;AL\r
+226A 226B;AI\r
+226C 226D;AL\r
+226E 226F;AI\r
+2270 2281;AL\r
+2282 2283;AI\r
+2284 2285;AL\r
+2286 2287;AI\r
+2288 2294;AL\r
+2295 2295;AI\r
+2296 2298;AL\r
+2299 2299;AI\r
+229A 22A4;AL\r
+22A5 22A5;AI\r
+22A6 22BE;AL\r
+22BF 22BF;AI\r
+22C0 22F1;AL\r
+2300 2307;AL\r
+2308 230B;AL\r
+230C 2311;AL\r
+2312 2312;AI\r
+2313 231F;AL\r
+2320 2321;AL\r
+2322 2328;AL\r
+2329 2329;OP\r
+232A 232A;CL\r
+232B 237B;AL\r
+237D 239A;AL\r
+2400 2426;AL\r
+2440 244A;AL\r
+2460 249B;AI\r
+249C 24BF;AI\r
+24C0 24CF;AL\r
+24D0 24E9;AI\r
+24EA 24EA;AL\r
+2500 254B;AI\r
+254C 254F;AL\r
+2550 2574;AI\r
+2575 257F;AL\r
+2580 258F;AI\r
+2590 2591;AL\r
+2592 2595;AI\r
+25A0 25A1;AI\r
+25A2 25A2;AL\r
+25A3 25A9;AI\r
+25AA 25B1;AL\r
+25B2 25B3;AI\r
+25B4 25B5;AL\r
+25B6 25B6;AI\r
+25B7 25B7;AI\r
+25B8 25BB;AL\r
+25BC 25BD;AI\r
+25BE 25BF;AL\r
+25C0 25C0;AI\r
+25C1 25C1;AI\r
+25C2 25C5;AL\r
+25C6 25C8;AI\r
+25C9 25CA;AL\r
+25CB 25CB;AI\r
+25CC 25CD;AL\r
+25CE 25D1;AI\r
+25D2 25E1;AL\r
+25E2 25E5;AI\r
+25E6 25EE;AL\r
+25EF 25EF;AI\r
+25F0 25F7;AL\r
+2600 2604;AL\r
+2605 2606;AI\r
+2607 2608;AL\r
+2609 2609;AI\r
+260A 260D;AL\r
+260E 260F;AI\r
+2610 2613;AL\r
+2619 261B;AL\r
+261C 261C;AI\r
+261D 261D;AL\r
+261E 261E;AI\r
+261F 263F;AL\r
+2640 2640;AI\r
+2641 2641;AL\r
+2642 2642;AI\r
+2643 265F;AL\r
+2660 2661;AI\r
+2662 2662;AL\r
+2663 2665;AI\r
+2666 2666;AL\r
+2667 266A;AI\r
+266B 266B;AL\r
+266C 266D;AI\r
+266E 266E;AL\r
+266F 266F;AI\r
+2670 2671;AL\r
+2701 2704;AL\r
+2706 2709;AL\r
+270C 2727;AL\r
+2729 274B;AL\r
+274D 274D;AL\r
+274F 2752;AL\r
+2756 2756;AL\r
+2758 275E;AL\r
+2761 2767;AL\r
+2776 2793;AL\r
+2794 2794;AL\r
+2798 27AF;AL\r
+27B1 27BE;AL\r
+2800 28FF;AL\r
+2E80 2E99;ID\r
+2E9B 2EF3;ID\r
+2F00 2FD5;ID\r
+2FF0 2FFB;ID\r
+3000 3000;ID\r
+3001 3002;CL\r
+3003 3003;ID\r
+3004 3004;ID\r
+3005 3005;NS\r
+3006 3006;ID\r
+3007 3007;ID\r
+3008 3008;OP\r
+3009 3009;CL\r
+300A 300A;OP\r
+300B 300B;CL\r
+300C 300C;OP\r
+300D 300D;CL\r
+300E 300E;OP\r
+300F 300F;CL\r
+3010 3010;OP\r
+3011 3011;CL\r
+3012 3013;ID\r
+3014 3014;OP\r
+3015 3015;CL\r
+3016 3016;OP\r
+3017 3017;CL\r
+3018 3018;OP\r
+3019 3019;CL\r
+301A 301A;OP\r
+301B 301B;CL\r
+301C 301C;NS\r
+301D 301D;OP\r
+301E 301F;CL\r
+3020 3020;ID\r
+3021 3029;ID\r
+302A 302F;CM\r
+3030 3030;ID\r
+3031 3035;ID\r
+3036 3037;ID\r
+3038 303A;ID\r
+303E 303F;ID\r
+3041 3041;NS\r
+3042 3042;ID\r
+3043 3043;NS\r
+3044 3044;ID\r
+3045 3045;NS\r
+3046 3046;ID\r
+3047 3047;NS\r
+3048 3048;ID\r
+3049 3049;NS\r
+304A 3062;ID\r
+3063 3063;NS\r
+3064 3082;ID\r
+3083 3083;NS\r
+3084 3084;ID\r
+3085 3085;NS\r
+3086 3086;ID\r
+3087 3087;NS\r
+3088 308D;ID\r
+308E 308E;NS\r
+308F 3094;ID\r
+3099 309A;CM\r
+309B 309C;NS\r
+309D 309E;NS\r
+30A1 30A1;NS\r
+30A2 30A2;ID\r
+30A3 30A3;NS\r
+30A4 30A4;ID\r
+30A5 30A5;NS\r
+30A6 30A6;ID\r
+30A7 30A7;NS\r
+30A8 30A8;ID\r
+30A9 30A9;NS\r
+30AA 30C2;ID\r
+30C3 30C3;NS\r
+30C4 30E2;ID\r
+30E3 30E3;NS\r
+30E4 30E4;ID\r
+30E5 30E5;NS\r
+30E6 30E6;ID\r
+30E7 30E7;NS\r
+30E8 30ED;ID\r
+30EE 30EE;NS\r
+30EF 30F4;ID\r
+30F5 30F6;NS\r
+30F7 30FA;ID\r
+30FB 30FB;NS\r
+30FC 30FC;ID\r
+30FD 30FD;NS\r
+30FE 30FE;ID\r
+3105 312C;ID\r
+3131 318E;ID\r
+3190 3191;ID\r
+3192 3195;ID\r
+3196 319F;ID\r
+31A0 31B7;ID\r
+3200 321C;ID\r
+3220 3229;ID\r
+322A 3243;ID\r
+3260 327B;ID\r
+327F 327F;ID\r
+3280 3289;ID\r
+328A 32B0;ID\r
+32C0 32CB;ID\r
+32D0 32FE;ID\r
+3300 3376;ID\r
+337B 33DD;ID\r
+33E0 33FE;ID\r
+3400 4DB5;ID\r
+4E00 9FA5;ID\r
+A000 A48C;ID\r
+A490 A4A1;ID\r
+A4A4 A4B3;ID\r
+A4B5 A4C0;ID\r
+A4C2 A4C4;ID\r
+A4C6 A4C6;ID\r
+AC00 D7A3;ID\r
+D800 DFFF;SG\r
+E000 F8FF;XX\r
+F900 FA2D;ID\r
+FB00 FB06;AL\r
+FB13 FB17;AL\r
+FB1D FB1D;AL\r
+FB1E FB1E;CM\r
+FB1F FB28;AL\r
+FB29 FB29;AL\r
+FB2A FB36;AL\r
+FB38 FB3C;AL\r
+FB3E FB3E;AL\r
+FB40 FB41;AL\r
+FB43 FB44;AL\r
+FB46 FBB1;AL\r
+FBD3 FD3D;AL\r
+FD3E FD3E;OP\r
+FD3F FD3F;CL\r
+FD50 FD8F;AL\r
+FD92 FDC7;AL\r
+FDF0 FDFB;AL\r
+FE20 FE23;CM\r
+FE30 FE30;ID\r
+FE31 FE32;ID\r
+FE33 FE34;ID\r
+FE35 FE35;OP\r
+FE36 FE36;CL\r
+FE37 FE37;OP\r
+FE38 FE38;CL\r
+FE39 FE39;OP\r
+FE3A FE3A;CL\r
+FE3B FE3B;OP\r
+FE3C FE3C;CL\r
+FE3D FE3D;OP\r
+FE3E FE3E;CL\r
+FE3F FE3F;OP\r
+FE40 FE40;CL\r
+FE41 FE41;OP\r
+FE42 FE42;CL\r
+FE43 FE43;OP\r
+FE44 FE44;CL\r
+FE49 FE4C;ID\r
+FE4D FE4F;ID\r
+FE50 FE50;CL\r
+FE51 FE51;ID\r
+FE52 FE52;CL\r
+FE54 FE55;NS\r
+FE56 FE57;EX\r
+FE58 FE58;ID\r
+FE59 FE59;OP\r
+FE5A FE5A;CL\r
+FE5B FE5B;OP\r
+FE5C FE5C;CL\r
+FE5D FE5D;OP\r
+FE5E FE5E;CL\r
+FE5F FE61;ID\r
+FE62 FE62;ID\r
+FE63 FE63;ID\r
+FE64 FE66;ID\r
+FE68 FE68;ID\r
+FE69 FE69;PR\r
+FE6A FE6A;PO\r
+FE6B FE6B;ID\r
+FE70 FE72;AL\r
+FE74 FE74;AL\r
+FE76 FEFC;AL\r
+FEFF FEFF;GL\r
+FF01 FF01;EX\r
+FF02 FF03;ID\r
+FF04 FF04;PR\r
+FF05 FF05;PO\r
+FF06 FF07;ID\r
+FF08 FF08;OP\r
+FF09 FF09;CL\r
+FF0A FF0A;ID\r
+FF0B FF0B;ID\r
+FF0C FF0C;CL\r
+FF0D FF0D;ID\r
+FF0E FF0E;CL\r
+FF0F FF0F;ID\r
+FF10 FF19;ID\r
+FF1A FF1B;NS\r
+FF1C FF1E;ID\r
+FF1F FF1F;EX\r
+FF20 FF20;ID\r
+FF21 FF3A;ID\r
+FF3B FF3B;OP\r
+FF3C FF3C;ID\r
+FF3D FF3D;CL\r
+FF3E FF3E;ID\r
+FF3F FF3F;ID\r
+FF40 FF40;ID\r
+FF41 FF5A;ID\r
+FF5B FF5B;OP\r
+FF5C FF5C;ID\r
+FF5D FF5D;CL\r
+FF5E FF5E;ID\r
+FF61 FF61;CL\r
+FF62 FF62;OP\r
+FF63 FF63;CL\r
+FF64 FF64;CL\r
+FF65 FF65;NS\r
+FF66 FF66;AL\r
+FF67 FF6F;NS\r
+FF70 FF70;NS\r
+FF71 FF9D;AL\r
+FF9E FF9F;NS\r
+FFA0 FFBE;AL\r
+FFC2 FFC7;AL\r
+FFCA FFCF;AL\r
+FFD2 FFD7;AL\r
+FFDA FFDC;AL\r
+FFE0 FFE0;PO\r
+FFE1 FFE1;PR\r
+FFE2 FFE2;ID\r
+FFE3 FFE3;ID\r
+FFE4 FFE4;ID\r
+FFE5 FFE6;PR\r
+FFE8 FFE8;AL\r
+FFE9 FFEC;AL\r
+FFED FFEE;AL\r
+FFF9 FFFB;CM\r
+FFFC FFFC;CB\r
+FFFD FFFD;AI\r
diff --git a/data/uni-nfc.txt b/data/uni-nfc.txt
new file mode 100644 (file)
index 0000000..7d39fa2
--- /dev/null
@@ -0,0 +1,989 @@
+# uni-nfc.txt - Unicode composition mapping\r
+003C 0338 226E;\r
+003D 0338 2260;\r
+003E 0338 226F;\r
+0041 0300 00C0;\r
+0041 0301 00C1;\r
+0041 0302 00C2;\r
+0041 0303 00C3;\r
+0041 0304 0100;\r
+0041 0306 0102;\r
+0041 0307 0226;\r
+0041 0308 00C4;\r
+0041 0309 1EA2;\r
+0041 030A 00C5;\r
+0041 030C 01CD;\r
+0041 030F 0200;\r
+0041 0311 0202;\r
+0041 0323 1EA0;\r
+0041 0325 1E00;\r
+0041 0328 0104;\r
+0042 0307 1E02;\r
+0042 0323 1E04;\r
+0042 0331 1E06;\r
+0043 0301 0106;\r
+0043 0302 0108;\r
+0043 0307 010A;\r
+0043 030C 010C;\r
+0043 0327 00C7;\r
+0044 0307 1E0A;\r
+0044 030C 010E;\r
+0044 0323 1E0C;\r
+0044 0327 1E10;\r
+0044 032D 1E12;\r
+0044 0331 1E0E;\r
+0045 0300 00C8;\r
+0045 0301 00C9;\r
+0045 0302 00CA;\r
+0045 0303 1EBC;\r
+0045 0304 0112;\r
+0045 0306 0114;\r
+0045 0307 0116;\r
+0045 0308 00CB;\r
+0045 0309 1EBA;\r
+0045 030C 011A;\r
+0045 030F 0204;\r
+0045 0311 0206;\r
+0045 0323 1EB8;\r
+0045 0327 0228;\r
+0045 0328 0118;\r
+0045 032D 1E18;\r
+0045 0330 1E1A;\r
+0046 0307 1E1E;\r
+0047 0301 01F4;\r
+0047 0302 011C;\r
+0047 0304 1E20;\r
+0047 0306 011E;\r
+0047 0307 0120;\r
+0047 030C 01E6;\r
+0047 0327 0122;\r
+0048 0302 0124;\r
+0048 0307 1E22;\r
+0048 0308 1E26;\r
+0048 030C 021E;\r
+0048 0323 1E24;\r
+0048 0327 1E28;\r
+0048 032E 1E2A;\r
+0049 0300 00CC;\r
+0049 0301 00CD;\r
+0049 0302 00CE;\r
+0049 0303 0128;\r
+0049 0304 012A;\r
+0049 0306 012C;\r
+0049 0307 0130;\r
+0049 0308 00CF;\r
+0049 0309 1EC8;\r
+0049 030C 01CF;\r
+0049 030F 0208;\r
+0049 0311 020A;\r
+0049 0323 1ECA;\r
+0049 0328 012E;\r
+0049 0330 1E2C;\r
+004A 0302 0134;\r
+004B 0301 1E30;\r
+004B 030C 01E8;\r
+004B 0323 1E32;\r
+004B 0327 0136;\r
+004B 0331 1E34;\r
+004C 0301 0139;\r
+004C 030C 013D;\r
+004C 0323 1E36;\r
+004C 0327 013B;\r
+004C 032D 1E3C;\r
+004C 0331 1E3A;\r
+004D 0301 1E3E;\r
+004D 0307 1E40;\r
+004D 0323 1E42;\r
+004E 0300 01F8;\r
+004E 0301 0143;\r
+004E 0303 00D1;\r
+004E 0307 1E44;\r
+004E 030C 0147;\r
+004E 0323 1E46;\r
+004E 0327 0145;\r
+004E 032D 1E4A;\r
+004E 0331 1E48;\r
+004F 0300 00D2;\r
+004F 0301 00D3;\r
+004F 0302 00D4;\r
+004F 0303 00D5;\r
+004F 0304 014C;\r
+004F 0306 014E;\r
+004F 0307 022E;\r
+004F 0308 00D6;\r
+004F 0309 1ECE;\r
+004F 030B 0150;\r
+004F 030C 01D1;\r
+004F 030F 020C;\r
+004F 0311 020E;\r
+004F 031B 01A0;\r
+004F 0323 1ECC;\r
+004F 0328 01EA;\r
+0050 0301 1E54;\r
+0050 0307 1E56;\r
+0052 0301 0154;\r
+0052 0307 1E58;\r
+0052 030C 0158;\r
+0052 030F 0210;\r
+0052 0311 0212;\r
+0052 0323 1E5A;\r
+0052 0327 0156;\r
+0052 0331 1E5E;\r
+0053 0301 015A;\r
+0053 0302 015C;\r
+0053 0307 1E60;\r
+0053 030C 0160;\r
+0053 0323 1E62;\r
+0053 0326 0218;\r
+0053 0327 015E;\r
+0054 0307 1E6A;\r
+0054 030C 0164;\r
+0054 0323 1E6C;\r
+0054 0326 021A;\r
+0054 0327 0162;\r
+0054 032D 1E70;\r
+0054 0331 1E6E;\r
+0055 0300 00D9;\r
+0055 0301 00DA;\r
+0055 0302 00DB;\r
+0055 0303 0168;\r
+0055 0304 016A;\r
+0055 0306 016C;\r
+0055 0308 00DC;\r
+0055 0309 1EE6;\r
+0055 030A 016E;\r
+0055 030B 0170;\r
+0055 030C 01D3;\r
+0055 030F 0214;\r
+0055 0311 0216;\r
+0055 031B 01AF;\r
+0055 0323 1EE4;\r
+0055 0324 1E72;\r
+0055 0328 0172;\r
+0055 032D 1E76;\r
+0055 0330 1E74;\r
+0056 0303 1E7C;\r
+0056 0323 1E7E;\r
+0057 0300 1E80;\r
+0057 0301 1E82;\r
+0057 0302 0174;\r
+0057 0307 1E86;\r
+0057 0308 1E84;\r
+0057 0323 1E88;\r
+0058 0307 1E8A;\r
+0058 0308 1E8C;\r
+0059 0300 1EF2;\r
+0059 0301 00DD;\r
+0059 0302 0176;\r
+0059 0303 1EF8;\r
+0059 0304 0232;\r
+0059 0307 1E8E;\r
+0059 0308 0178;\r
+0059 0309 1EF6;\r
+0059 0323 1EF4;\r
+005A 0301 0179;\r
+005A 0302 1E90;\r
+005A 0307 017B;\r
+005A 030C 017D;\r
+005A 0323 1E92;\r
+005A 0331 1E94;\r
+0061 0300 00E0;\r
+0061 0301 00E1;\r
+0061 0302 00E2;\r
+0061 0303 00E3;\r
+0061 0304 0101;\r
+0061 0306 0103;\r
+0061 0307 0227;\r
+0061 0308 00E4;\r
+0061 0309 1EA3;\r
+0061 030A 00E5;\r
+0061 030C 01CE;\r
+0061 030F 0201;\r
+0061 0311 0203;\r
+0061 0323 1EA1;\r
+0061 0325 1E01;\r
+0061 0328 0105;\r
+0062 0307 1E03;\r
+0062 0323 1E05;\r
+0062 0331 1E07;\r
+0063 0301 0107;\r
+0063 0302 0109;\r
+0063 0307 010B;\r
+0063 030C 010D;\r
+0063 0327 00E7;\r
+0064 0307 1E0B;\r
+0064 030C 010F;\r
+0064 0323 1E0D;\r
+0064 0327 1E11;\r
+0064 032D 1E13;\r
+0064 0331 1E0F;\r
+0065 0300 00E8;\r
+0065 0301 00E9;\r
+0065 0302 00EA;\r
+0065 0303 1EBD;\r
+0065 0304 0113;\r
+0065 0306 0115;\r
+0065 0307 0117;\r
+0065 0308 00EB;\r
+0065 0309 1EBB;\r
+0065 030C 011B;\r
+0065 030F 0205;\r
+0065 0311 0207;\r
+0065 0323 1EB9;\r
+0065 0327 0229;\r
+0065 0328 0119;\r
+0065 032D 1E19;\r
+0065 0330 1E1B;\r
+0066 0307 1E1F;\r
+0067 0301 01F5;\r
+0067 0302 011D;\r
+0067 0304 1E21;\r
+0067 0306 011F;\r
+0067 0307 0121;\r
+0067 030C 01E7;\r
+0067 0327 0123;\r
+0068 0302 0125;\r
+0068 0307 1E23;\r
+0068 0308 1E27;\r
+0068 030C 021F;\r
+0068 0323 1E25;\r
+0068 0327 1E29;\r
+0068 032E 1E2B;\r
+0068 0331 1E96;\r
+0069 0300 00EC;\r
+0069 0301 00ED;\r
+0069 0302 00EE;\r
+0069 0303 0129;\r
+0069 0304 012B;\r
+0069 0306 012D;\r
+0069 0308 00EF;\r
+0069 0309 1EC9;\r
+0069 030C 01D0;\r
+0069 030F 0209;\r
+0069 0311 020B;\r
+0069 0323 1ECB;\r
+0069 0328 012F;\r
+0069 0330 1E2D;\r
+006A 0302 0135;\r
+006A 030C 01F0;\r
+006B 0301 1E31;\r
+006B 030C 01E9;\r
+006B 0323 1E33;\r
+006B 0327 0137;\r
+006B 0331 1E35;\r
+006C 0301 013A;\r
+006C 030C 013E;\r
+006C 0323 1E37;\r
+006C 0327 013C;\r
+006C 032D 1E3D;\r
+006C 0331 1E3B;\r
+006D 0301 1E3F;\r
+006D 0307 1E41;\r
+006D 0323 1E43;\r
+006E 0300 01F9;\r
+006E 0301 0144;\r
+006E 0303 00F1;\r
+006E 0307 1E45;\r
+006E 030C 0148;\r
+006E 0323 1E47;\r
+006E 0327 0146;\r
+006E 032D 1E4B;\r
+006E 0331 1E49;\r
+006F 0300 00F2;\r
+006F 0301 00F3;\r
+006F 0302 00F4;\r
+006F 0303 00F5;\r
+006F 0304 014D;\r
+006F 0306 014F;\r
+006F 0307 022F;\r
+006F 0308 00F6;\r
+006F 0309 1ECF;\r
+006F 030B 0151;\r
+006F 030C 01D2;\r
+006F 030F 020D;\r
+006F 0311 020F;\r
+006F 031B 01A1;\r
+006F 0323 1ECD;\r
+006F 0328 01EB;\r
+0070 0301 1E55;\r
+0070 0307 1E57;\r
+0072 0301 0155;\r
+0072 0307 1E59;\r
+0072 030C 0159;\r
+0072 030F 0211;\r
+0072 0311 0213;\r
+0072 0323 1E5B;\r
+0072 0327 0157;\r
+0072 0331 1E5F;\r
+0073 0301 015B;\r
+0073 0302 015D;\r
+0073 0307 1E61;\r
+0073 030C 0161;\r
+0073 0323 1E63;\r
+0073 0326 0219;\r
+0073 0327 015F;\r
+0074 0307 1E6B;\r
+0074 0308 1E97;\r
+0074 030C 0165;\r
+0074 0323 1E6D;\r
+0074 0326 021B;\r
+0074 0327 0163;\r
+0074 032D 1E71;\r
+0074 0331 1E6F;\r
+0075 0300 00F9;\r
+0075 0301 00FA;\r
+0075 0302 00FB;\r
+0075 0303 0169;\r
+0075 0304 016B;\r
+0075 0306 016D;\r
+0075 0308 00FC;\r
+0075 0309 1EE7;\r
+0075 030A 016F;\r
+0075 030B 0171;\r
+0075 030C 01D4;\r
+0075 030F 0215;\r
+0075 0311 0217;\r
+0075 031B 01B0;\r
+0075 0323 1EE5;\r
+0075 0324 1E73;\r
+0075 0328 0173;\r
+0075 032D 1E77;\r
+0075 0330 1E75;\r
+0076 0303 1E7D;\r
+0076 0323 1E7F;\r
+0077 0300 1E81;\r
+0077 0301 1E83;\r
+0077 0302 0175;\r
+0077 0307 1E87;\r
+0077 0308 1E85;\r
+0077 030A 1E98;\r
+0077 0323 1E89;\r
+0078 0307 1E8B;\r
+0078 0308 1E8D;\r
+0079 0300 1EF3;\r
+0079 0301 00FD;\r
+0079 0302 0177;\r
+0079 0303 1EF9;\r
+0079 0304 0233;\r
+0079 0307 1E8F;\r
+0079 0308 00FF;\r
+0079 0309 1EF7;\r
+0079 030A 1E99;\r
+0079 0323 1EF5;\r
+007A 0301 017A;\r
+007A 0302 1E91;\r
+007A 0307 017C;\r
+007A 030C 017E;\r
+007A 0323 1E93;\r
+007A 0331 1E95;\r
+00A8 0300 1FED;\r
+00A8 0301 0385;\r
+00A8 0342 1FC1;\r
+00C2 0300 1EA6;\r
+00C2 0301 1EA4;\r
+00C2 0303 1EAA;\r
+00C2 0309 1EA8;\r
+00C4 0304 01DE;\r
+00C5 0301 01FA;\r
+00C6 0301 01FC;\r
+00C6 0304 01E2;\r
+00C7 0301 1E08;\r
+00CA 0300 1EC0;\r
+00CA 0301 1EBE;\r
+00CA 0303 1EC4;\r
+00CA 0309 1EC2;\r
+00CF 0301 1E2E;\r
+00D4 0300 1ED2;\r
+00D4 0301 1ED0;\r
+00D4 0303 1ED6;\r
+00D4 0309 1ED4;\r
+00D5 0301 1E4C;\r
+00D5 0304 022C;\r
+00D5 0308 1E4E;\r
+00D6 0304 022A;\r
+00D8 0301 01FE;\r
+00DC 0300 01DB;\r
+00DC 0301 01D7;\r
+00DC 0304 01D5;\r
+00DC 030C 01D9;\r
+00E2 0300 1EA7;\r
+00E2 0301 1EA5;\r
+00E2 0303 1EAB;\r
+00E2 0309 1EA9;\r
+00E4 0304 01DF;\r
+00E5 0301 01FB;\r
+00E6 0301 01FD;\r
+00E6 0304 01E3;\r
+00E7 0301 1E09;\r
+00EA 0300 1EC1;\r
+00EA 0301 1EBF;\r
+00EA 0303 1EC5;\r
+00EA 0309 1EC3;\r
+00EF 0301 1E2F;\r
+00F4 0300 1ED3;\r
+00F4 0301 1ED1;\r
+00F4 0303 1ED7;\r
+00F4 0309 1ED5;\r
+00F5 0301 1E4D;\r
+00F5 0304 022D;\r
+00F5 0308 1E4F;\r
+00F6 0304 022B;\r
+00F8 0301 01FF;\r
+00FC 0300 01DC;\r
+00FC 0301 01D8;\r
+00FC 0304 01D6;\r
+00FC 030C 01DA;\r
+0102 0300 1EB0;\r
+0102 0301 1EAE;\r
+0102 0303 1EB4;\r
+0102 0309 1EB2;\r
+0103 0300 1EB1;\r
+0103 0301 1EAF;\r
+0103 0303 1EB5;\r
+0103 0309 1EB3;\r
+0112 0300 1E14;\r
+0112 0301 1E16;\r
+0113 0300 1E15;\r
+0113 0301 1E17;\r
+014C 0300 1E50;\r
+014C 0301 1E52;\r
+014D 0300 1E51;\r
+014D 0301 1E53;\r
+015A 0307 1E64;\r
+015B 0307 1E65;\r
+0160 0307 1E66;\r
+0161 0307 1E67;\r
+0168 0301 1E78;\r
+0169 0301 1E79;\r
+016A 0308 1E7A;\r
+016B 0308 1E7B;\r
+017F 0307 1E9B;\r
+01A0 0300 1EDC;\r
+01A0 0301 1EDA;\r
+01A0 0303 1EE0;\r
+01A0 0309 1EDE;\r
+01A0 0323 1EE2;\r
+01A1 0300 1EDD;\r
+01A1 0301 1EDB;\r
+01A1 0303 1EE1;\r
+01A1 0309 1EDF;\r
+01A1 0323 1EE3;\r
+01AF 0300 1EEA;\r
+01AF 0301 1EE8;\r
+01AF 0303 1EEE;\r
+01AF 0309 1EEC;\r
+01AF 0323 1EF0;\r
+01B0 0300 1EEB;\r
+01B0 0301 1EE9;\r
+01B0 0303 1EEF;\r
+01B0 0309 1EED;\r
+01B0 0323 1EF1;\r
+01B7 030C 01EE;\r
+01EA 0304 01EC;\r
+01EB 0304 01ED;\r
+0226 0304 01E0;\r
+0227 0304 01E1;\r
+0228 0306 1E1C;\r
+0229 0306 1E1D;\r
+022E 0304 0230;\r
+022F 0304 0231;\r
+0292 030C 01EF;\r
+0308 0301 0344;\r
+0391 0300 1FBA;\r
+0391 0301 0386;\r
+0391 0304 1FB9;\r
+0391 0306 1FB8;\r
+0391 0313 1F08;\r
+0391 0314 1F09;\r
+0391 0345 1FBC;\r
+0395 0300 1FC8;\r
+0395 0301 0388;\r
+0395 0313 1F18;\r
+0395 0314 1F19;\r
+0397 0300 1FCA;\r
+0397 0301 0389;\r
+0397 0313 1F28;\r
+0397 0314 1F29;\r
+0397 0345 1FCC;\r
+0399 0300 1FDA;\r
+0399 0301 038A;\r
+0399 0304 1FD9;\r
+0399 0306 1FD8;\r
+0399 0308 03AA;\r
+0399 0313 1F38;\r
+0399 0314 1F39;\r
+039F 0300 1FF8;\r
+039F 0301 038C;\r
+039F 0313 1F48;\r
+039F 0314 1F49;\r
+03A1 0314 1FEC;\r
+03A5 0300 1FEA;\r
+03A5 0301 038E;\r
+03A5 0304 1FE9;\r
+03A5 0306 1FE8;\r
+03A5 0308 03AB;\r
+03A5 0314 1F59;\r
+03A9 0300 1FFA;\r
+03A9 0301 038F;\r
+03A9 0313 1F68;\r
+03A9 0314 1F69;\r
+03A9 0345 1FFC;\r
+03AC 0345 1FB4;\r
+03AE 0345 1FC4;\r
+03B1 0300 1F70;\r
+03B1 0301 03AC;\r
+03B1 0304 1FB1;\r
+03B1 0306 1FB0;\r
+03B1 0313 1F00;\r
+03B1 0314 1F01;\r
+03B1 0342 1FB6;\r
+03B1 0345 1FB3;\r
+03B5 0300 1F72;\r
+03B5 0301 03AD;\r
+03B5 0313 1F10;\r
+03B5 0314 1F11;\r
+03B7 0300 1F74;\r
+03B7 0301 03AE;\r
+03B7 0313 1F20;\r
+03B7 0314 1F21;\r
+03B7 0342 1FC6;\r
+03B7 0345 1FC3;\r
+03B9 0300 1F76;\r
+03B9 0301 03AF;\r
+03B9 0304 1FD1;\r
+03B9 0306 1FD0;\r
+03B9 0308 03CA;\r
+03B9 0313 1F30;\r
+03B9 0314 1F31;\r
+03B9 0342 1FD6;\r
+03BF 0300 1F78;\r
+03BF 0301 03CC;\r
+03BF 0313 1F40;\r
+03BF 0314 1F41;\r
+03C1 0313 1FE4;\r
+03C1 0314 1FE5;\r
+03C5 0300 1F7A;\r
+03C5 0301 03CD;\r
+03C5 0304 1FE1;\r
+03C5 0306 1FE0;\r
+03C5 0308 03CB;\r
+03C5 0313 1F50;\r
+03C5 0314 1F51;\r
+03C5 0342 1FE6;\r
+03C9 0300 1F7C;\r
+03C9 0301 03CE;\r
+03C9 0313 1F60;\r
+03C9 0314 1F61;\r
+03C9 0342 1FF6;\r
+03C9 0345 1FF3;\r
+03CA 0300 1FD2;\r
+03CA 0301 0390;\r
+03CA 0342 1FD7;\r
+03CB 0300 1FE2;\r
+03CB 0301 03B0;\r
+03CB 0342 1FE7;\r
+03CE 0345 1FF4;\r
+03D2 0301 03D3;\r
+03D2 0308 03D4;\r
+0406 0308 0407;\r
+0410 0306 04D0;\r
+0410 0308 04D2;\r
+0413 0301 0403;\r
+0415 0300 0400;\r
+0415 0306 04D6;\r
+0415 0308 0401;\r
+0416 0306 04C1;\r
+0416 0308 04DC;\r
+0417 0308 04DE;\r
+0418 0300 040D;\r
+0418 0304 04E2;\r
+0418 0306 0419;\r
+0418 0308 04E4;\r
+041A 0301 040C;\r
+041E 0308 04E6;\r
+0423 0304 04EE;\r
+0423 0306 040E;\r
+0423 0308 04F0;\r
+0423 030B 04F2;\r
+0427 0308 04F4;\r
+042B 0308 04F8;\r
+042D 0308 04EC;\r
+0430 0306 04D1;\r
+0430 0308 04D3;\r
+0433 0301 0453;\r
+0435 0300 0450;\r
+0435 0306 04D7;\r
+0435 0308 0451;\r
+0436 0306 04C2;\r
+0436 0308 04DD;\r
+0437 0308 04DF;\r
+0438 0300 045D;\r
+0438 0304 04E3;\r
+0438 0306 0439;\r
+0438 0308 04E5;\r
+043A 0301 045C;\r
+043E 0308 04E7;\r
+0443 0304 04EF;\r
+0443 0306 045E;\r
+0443 0308 04F1;\r
+0443 030B 04F3;\r
+0447 0308 04F5;\r
+044B 0308 04F9;\r
+044D 0308 04ED;\r
+0456 0308 0457;\r
+0474 030F 0476;\r
+0475 030F 0477;\r
+04D8 0308 04DA;\r
+04D9 0308 04DB;\r
+04E8 0308 04EA;\r
+04E9 0308 04EB;\r
+05D0 05B7 FB2E;\r
+05D0 05B8 FB2F;\r
+05D0 05BC FB30;\r
+05D1 05BC FB31;\r
+05D1 05BF FB4C;\r
+05D2 05BC FB32;\r
+05D3 05BC FB33;\r
+05D4 05BC FB34;\r
+05D5 05B9 FB4B;\r
+05D5 05BC FB35;\r
+05D6 05BC FB36;\r
+05D8 05BC FB38;\r
+05D9 05B4 FB1D;\r
+05D9 05BC FB39;\r
+05DA 05BC FB3A;\r
+05DB 05BC FB3B;\r
+05DB 05BF FB4D;\r
+05DC 05BC FB3C;\r
+05DE 05BC FB3E;\r
+05E0 05BC FB40;\r
+05E1 05BC FB41;\r
+05E3 05BC FB43;\r
+05E4 05BC FB44;\r
+05E4 05BF FB4E;\r
+05E6 05BC FB46;\r
+05E7 05BC FB47;\r
+05E8 05BC FB48;\r
+05E9 05BC FB49;\r
+05E9 05C1 FB2A;\r
+05E9 05C2 FB2B;\r
+05EA 05BC FB4A;\r
+05F2 05B7 FB1F;\r
+0627 0653 0622;\r
+0627 0654 0623;\r
+0627 0655 0625;\r
+0648 0654 0624;\r
+064A 0654 0626;\r
+06C1 0654 06C2;\r
+06D2 0654 06D3;\r
+06D5 0654 06C0;\r
+0915 093C 0958;\r
+0916 093C 0959;\r
+0917 093C 095A;\r
+091C 093C 095B;\r
+0921 093C 095C;\r
+0922 093C 095D;\r
+0928 093C 0929;\r
+092B 093C 095E;\r
+092F 093C 095F;\r
+0930 093C 0931;\r
+0933 093C 0934;\r
+09A1 09BC 09DC;\r
+09A2 09BC 09DD;\r
+09AF 09BC 09DF;\r
+09C7 09BE 09CB;\r
+09C7 09D7 09CC;\r
+0A16 0A3C 0A59;\r
+0A17 0A3C 0A5A;\r
+0A1C 0A3C 0A5B;\r
+0A2B 0A3C 0A5E;\r
+0A32 0A3C 0A33;\r
+0A38 0A3C 0A36;\r
+0B21 0B3C 0B5C;\r
+0B22 0B3C 0B5D;\r
+0B47 0B3E 0B4B;\r
+0B47 0B56 0B48;\r
+0B47 0B57 0B4C;\r
+0B92 0BD7 0B94;\r
+0BC6 0BBE 0BCA;\r
+0BC6 0BD7 0BCC;\r
+0BC7 0BBE 0BCB;\r
+0C46 0C56 0C48;\r
+0CBF 0CD5 0CC0;\r
+0CC6 0CC2 0CCA;\r
+0CC6 0CD5 0CC7;\r
+0CC6 0CD6 0CC8;\r
+0CCA 0CD5 0CCB;\r
+0D46 0D3E 0D4A;\r
+0D46 0D57 0D4C;\r
+0D47 0D3E 0D4B;\r
+0DD9 0DCA 0DDA;\r
+0DD9 0DCF 0DDC;\r
+0DD9 0DDF 0DDE;\r
+0DDC 0DCA 0DDD;\r
+0F40 0FB5 0F69;\r
+0F42 0FB7 0F43;\r
+0F4C 0FB7 0F4D;\r
+0F51 0FB7 0F52;\r
+0F56 0FB7 0F57;\r
+0F5B 0FB7 0F5C;\r
+0F71 0F72 0F73;\r
+0F71 0F74 0F75;\r
+0F71 0F80 0F81;\r
+0F90 0FB5 0FB9;\r
+0F92 0FB7 0F93;\r
+0F9C 0FB7 0F9D;\r
+0FA1 0FB7 0FA2;\r
+0FA6 0FB7 0FA7;\r
+0FAB 0FB7 0FAC;\r
+0FB2 0F80 0F76;\r
+0FB3 0F80 0F78;\r
+1025 102E 1026;\r
+1E36 0304 1E38;\r
+1E37 0304 1E39;\r
+1E5A 0304 1E5C;\r
+1E5B 0304 1E5D;\r
+1E62 0307 1E68;\r
+1E63 0307 1E69;\r
+1EA0 0302 1EAC;\r
+1EA0 0306 1EB6;\r
+1EA1 0302 1EAD;\r
+1EA1 0306 1EB7;\r
+1EB8 0302 1EC6;\r
+1EB9 0302 1EC7;\r
+1ECC 0302 1ED8;\r
+1ECD 0302 1ED9;\r
+1F00 0300 1F02;\r
+1F00 0301 1F04;\r
+1F00 0342 1F06;\r
+1F00 0345 1F80;\r
+1F01 0300 1F03;\r
+1F01 0301 1F05;\r
+1F01 0342 1F07;\r
+1F01 0345 1F81;\r
+1F02 0345 1F82;\r
+1F03 0345 1F83;\r
+1F04 0345 1F84;\r
+1F05 0345 1F85;\r
+1F06 0345 1F86;\r
+1F07 0345 1F87;\r
+1F08 0300 1F0A;\r
+1F08 0301 1F0C;\r
+1F08 0342 1F0E;\r
+1F08 0345 1F88;\r
+1F09 0300 1F0B;\r
+1F09 0301 1F0D;\r
+1F09 0342 1F0F;\r
+1F09 0345 1F89;\r
+1F0A 0345 1F8A;\r
+1F0B 0345 1F8B;\r
+1F0C 0345 1F8C;\r
+1F0D 0345 1F8D;\r
+1F0E 0345 1F8E;\r
+1F0F 0345 1F8F;\r
+1F10 0300 1F12;\r
+1F10 0301 1F14;\r
+1F11 0300 1F13;\r
+1F11 0301 1F15;\r
+1F18 0300 1F1A;\r
+1F18 0301 1F1C;\r
+1F19 0300 1F1B;\r
+1F19 0301 1F1D;\r
+1F20 0300 1F22;\r
+1F20 0301 1F24;\r
+1F20 0342 1F26;\r
+1F20 0345 1F90;\r
+1F21 0300 1F23;\r
+1F21 0301 1F25;\r
+1F21 0342 1F27;\r
+1F21 0345 1F91;\r
+1F22 0345 1F92;\r
+1F23 0345 1F93;\r
+1F24 0345 1F94;\r
+1F25 0345 1F95;\r
+1F26 0345 1F96;\r
+1F27 0345 1F97;\r
+1F28 0300 1F2A;\r
+1F28 0301 1F2C;\r
+1F28 0342 1F2E;\r
+1F28 0345 1F98;\r
+1F29 0300 1F2B;\r
+1F29 0301 1F2D;\r
+1F29 0342 1F2F;\r
+1F29 0345 1F99;\r
+1F2A 0345 1F9A;\r
+1F2B 0345 1F9B;\r
+1F2C 0345 1F9C;\r
+1F2D 0345 1F9D;\r
+1F2E 0345 1F9E;\r
+1F2F 0345 1F9F;\r
+1F30 0300 1F32;\r
+1F30 0301 1F34;\r
+1F30 0342 1F36;\r
+1F31 0300 1F33;\r
+1F31 0301 1F35;\r
+1F31 0342 1F37;\r
+1F38 0300 1F3A;\r
+1F38 0301 1F3C;\r
+1F38 0342 1F3E;\r
+1F39 0300 1F3B;\r
+1F39 0301 1F3D;\r
+1F39 0342 1F3F;\r
+1F40 0300 1F42;\r
+1F40 0301 1F44;\r
+1F41 0300 1F43;\r
+1F41 0301 1F45;\r
+1F48 0300 1F4A;\r
+1F48 0301 1F4C;\r
+1F49 0300 1F4B;\r
+1F49 0301 1F4D;\r
+1F50 0300 1F52;\r
+1F50 0301 1F54;\r
+1F50 0342 1F56;\r
+1F51 0300 1F53;\r
+1F51 0301 1F55;\r
+1F51 0342 1F57;\r
+1F59 0300 1F5B;\r
+1F59 0301 1F5D;\r
+1F59 0342 1F5F;\r
+1F60 0300 1F62;\r
+1F60 0301 1F64;\r
+1F60 0342 1F66;\r
+1F60 0345 1FA0;\r
+1F61 0300 1F63;\r
+1F61 0301 1F65;\r
+1F61 0342 1F67;\r
+1F61 0345 1FA1;\r
+1F62 0345 1FA2;\r
+1F63 0345 1FA3;\r
+1F64 0345 1FA4;\r
+1F65 0345 1FA5;\r
+1F66 0345 1FA6;\r
+1F67 0345 1FA7;\r
+1F68 0300 1F6A;\r
+1F68 0301 1F6C;\r
+1F68 0342 1F6E;\r
+1F68 0345 1FA8;\r
+1F69 0300 1F6B;\r
+1F69 0301 1F6D;\r
+1F69 0342 1F6F;\r
+1F69 0345 1FA9;\r
+1F6A 0345 1FAA;\r
+1F6B 0345 1FAB;\r
+1F6C 0345 1FAC;\r
+1F6D 0345 1FAD;\r
+1F6E 0345 1FAE;\r
+1F6F 0345 1FAF;\r
+1F70 0345 1FB2;\r
+1F74 0345 1FC2;\r
+1F7C 0345 1FF2;\r
+1FB6 0345 1FB7;\r
+1FBF 0300 1FCD;\r
+1FBF 0301 1FCE;\r
+1FBF 0342 1FCF;\r
+1FC6 0345 1FC7;\r
+1FF6 0345 1FF7;\r
+1FFE 0300 1FDD;\r
+1FFE 0301 1FDE;\r
+1FFE 0342 1FDF;\r
+2190 0338 219A;\r
+2192 0338 219B;\r
+2194 0338 21AE;\r
+21D0 0338 21CD;\r
+21D2 0338 21CF;\r
+21D4 0338 21CE;\r
+2203 0338 2204;\r
+2208 0338 2209;\r
+220B 0338 220C;\r
+2223 0338 2224;\r
+2225 0338 2226;\r
+223C 0338 2241;\r
+2243 0338 2244;\r
+2245 0338 2247;\r
+2248 0338 2249;\r
+224D 0338 226D;\r
+2261 0338 2262;\r
+2264 0338 2270;\r
+2265 0338 2271;\r
+2272 0338 2274;\r
+2273 0338 2275;\r
+2276 0338 2278;\r
+2277 0338 2279;\r
+227A 0338 2280;\r
+227B 0338 2281;\r
+227C 0338 22E0;\r
+227D 0338 22E1;\r
+2282 0338 2284;\r
+2283 0338 2285;\r
+2286 0338 2288;\r
+2287 0338 2289;\r
+2291 0338 22E2;\r
+2292 0338 22E3;\r
+22A2 0338 22AC;\r
+22A8 0338 22AD;\r
+22A9 0338 22AE;\r
+22AB 0338 22AF;\r
+22B2 0338 22EA;\r
+22B3 0338 22EB;\r
+22B4 0338 22EC;\r
+22B5 0338 22ED;\r
+3046 3099 3094;\r
+304B 3099 304C;\r
+304D 3099 304E;\r
+304F 3099 3050;\r
+3051 3099 3052;\r
+3053 3099 3054;\r
+3055 3099 3056;\r
+3057 3099 3058;\r
+3059 3099 305A;\r
+305B 3099 305C;\r
+305D 3099 305E;\r
+305F 3099 3060;\r
+3061 3099 3062;\r
+3064 3099 3065;\r
+3066 3099 3067;\r
+3068 3099 3069;\r
+306F 3099 3070;\r
+306F 309A 3071;\r
+3072 3099 3073;\r
+3072 309A 3074;\r
+3075 3099 3076;\r
+3075 309A 3077;\r
+3078 3099 3079;\r
+3078 309A 307A;\r
+307B 3099 307C;\r
+307B 309A 307D;\r
+309D 3099 309E;\r
+30A6 3099 30F4;\r
+30AB 3099 30AC;\r
+30AD 3099 30AE;\r
+30AF 3099 30B0;\r
+30B1 3099 30B2;\r
+30B3 3099 30B4;\r
+30B5 3099 30B6;\r
+30B7 3099 30B8;\r
+30B9 3099 30BA;\r
+30BB 3099 30BC;\r
+30BD 3099 30BE;\r
+30BF 3099 30C0;\r
+30C1 3099 30C2;\r
+30C4 3099 30C5;\r
+30C6 3099 30C7;\r
+30C8 3099 30C9;\r
+30CF 3099 30D0;\r
+30CF 309A 30D1;\r
+30D2 3099 30D3;\r
+30D2 309A 30D4;\r
+30D5 3099 30D6;\r
+30D5 309A 30D7;\r
+30D8 3099 30D9;\r
+30D8 309A 30DA;\r
+30DB 3099 30DC;\r
+30DB 309A 30DD;\r
+30EF 3099 30F7;\r
+30F0 3099 30F8;\r
+30F1 3099 30F9;\r
+30F2 3099 30FA;\r
+30FD 3099 30FE;\r
+FB49 05C1 FB2C;\r
+FB49 05C2 FB2D;\r
diff --git a/data/uni-nfd.txt b/data/uni-nfd.txt
new file mode 100644 (file)
index 0000000..2e01993
--- /dev/null
@@ -0,0 +1,1312 @@
+# uni-nfd.txt - Unicode decomposition mapping\r
+00C0 0041 0300;\r
+00C1 0041 0301;\r
+00C2 0041 0302;\r
+00C3 0041 0303;\r
+00C4 0041 0308;\r
+00C5 0041 030A;\r
+00C7 0043 0327;\r
+00C8 0045 0300;\r
+00C9 0045 0301;\r
+00CA 0045 0302;\r
+00CB 0045 0308;\r
+00CC 0049 0300;\r
+00CD 0049 0301;\r
+00CE 0049 0302;\r
+00CF 0049 0308;\r
+00D1 004E 0303;\r
+00D2 004F 0300;\r
+00D3 004F 0301;\r
+00D4 004F 0302;\r
+00D5 004F 0303;\r
+00D6 004F 0308;\r
+00D9 0055 0300;\r
+00DA 0055 0301;\r
+00DB 0055 0302;\r
+00DC 0055 0308;\r
+00DD 0059 0301;\r
+00E0 0061 0300;\r
+00E1 0061 0301;\r
+00E2 0061 0302;\r
+00E3 0061 0303;\r
+00E4 0061 0308;\r
+00E5 0061 030A;\r
+00E7 0063 0327;\r
+00E8 0065 0300;\r
+00E9 0065 0301;\r
+00EA 0065 0302;\r
+00EB 0065 0308;\r
+00EC 0069 0300;\r
+00ED 0069 0301;\r
+00EE 0069 0302;\r
+00EF 0069 0308;\r
+00F1 006E 0303;\r
+00F2 006F 0300;\r
+00F3 006F 0301;\r
+00F4 006F 0302;\r
+00F5 006F 0303;\r
+00F6 006F 0308;\r
+00F9 0075 0300;\r
+00FA 0075 0301;\r
+00FB 0075 0302;\r
+00FC 0075 0308;\r
+00FD 0079 0301;\r
+00FF 0079 0308;\r
+0100 0041 0304;\r
+0101 0061 0304;\r
+0102 0041 0306;\r
+0103 0061 0306;\r
+0104 0041 0328;\r
+0105 0061 0328;\r
+0106 0043 0301;\r
+0107 0063 0301;\r
+0108 0043 0302;\r
+0109 0063 0302;\r
+010A 0043 0307;\r
+010B 0063 0307;\r
+010C 0043 030C;\r
+010D 0063 030C;\r
+010E 0044 030C;\r
+010F 0064 030C;\r
+0112 0045 0304;\r
+0113 0065 0304;\r
+0114 0045 0306;\r
+0115 0065 0306;\r
+0116 0045 0307;\r
+0117 0065 0307;\r
+0118 0045 0328;\r
+0119 0065 0328;\r
+011A 0045 030C;\r
+011B 0065 030C;\r
+011C 0047 0302;\r
+011D 0067 0302;\r
+011E 0047 0306;\r
+011F 0067 0306;\r
+0120 0047 0307;\r
+0121 0067 0307;\r
+0122 0047 0327;\r
+0123 0067 0327;\r
+0124 0048 0302;\r
+0125 0068 0302;\r
+0128 0049 0303;\r
+0129 0069 0303;\r
+012A 0049 0304;\r
+012B 0069 0304;\r
+012C 0049 0306;\r
+012D 0069 0306;\r
+012E 0049 0328;\r
+012F 0069 0328;\r
+0130 0049 0307;\r
+0134 004A 0302;\r
+0135 006A 0302;\r
+0136 004B 0327;\r
+0137 006B 0327;\r
+0139 004C 0301;\r
+013A 006C 0301;\r
+013B 004C 0327;\r
+013C 006C 0327;\r
+013D 004C 030C;\r
+013E 006C 030C;\r
+0143 004E 0301;\r
+0144 006E 0301;\r
+0145 004E 0327;\r
+0146 006E 0327;\r
+0147 004E 030C;\r
+0148 006E 030C;\r
+014C 004F 0304;\r
+014D 006F 0304;\r
+014E 004F 0306;\r
+014F 006F 0306;\r
+0150 004F 030B;\r
+0151 006F 030B;\r
+0154 0052 0301;\r
+0155 0072 0301;\r
+0156 0052 0327;\r
+0157 0072 0327;\r
+0158 0052 030C;\r
+0159 0072 030C;\r
+015A 0053 0301;\r
+015B 0073 0301;\r
+015C 0053 0302;\r
+015D 0073 0302;\r
+015E 0053 0327;\r
+015F 0073 0327;\r
+0160 0053 030C;\r
+0161 0073 030C;\r
+0162 0054 0327;\r
+0163 0074 0327;\r
+0164 0054 030C;\r
+0165 0074 030C;\r
+0168 0055 0303;\r
+0169 0075 0303;\r
+016A 0055 0304;\r
+016B 0075 0304;\r
+016C 0055 0306;\r
+016D 0075 0306;\r
+016E 0055 030A;\r
+016F 0075 030A;\r
+0170 0055 030B;\r
+0171 0075 030B;\r
+0172 0055 0328;\r
+0173 0075 0328;\r
+0174 0057 0302;\r
+0175 0077 0302;\r
+0176 0059 0302;\r
+0177 0079 0302;\r
+0178 0059 0308;\r
+0179 005A 0301;\r
+017A 007A 0301;\r
+017B 005A 0307;\r
+017C 007A 0307;\r
+017D 005A 030C;\r
+017E 007A 030C;\r
+01A0 004F 031B;\r
+01A1 006F 031B;\r
+01AF 0055 031B;\r
+01B0 0075 031B;\r
+01CD 0041 030C;\r
+01CE 0061 030C;\r
+01CF 0049 030C;\r
+01D0 0069 030C;\r
+01D1 004F 030C;\r
+01D2 006F 030C;\r
+01D3 0055 030C;\r
+01D4 0075 030C;\r
+01D5 00DC 0304;\r
+01D6 00FC 0304;\r
+01D7 00DC 0301;\r
+01D8 00FC 0301;\r
+01D9 00DC 030C;\r
+01DA 00FC 030C;\r
+01DB 00DC 0300;\r
+01DC 00FC 0300;\r
+01DE 00C4 0304;\r
+01DF 00E4 0304;\r
+01E0 0226 0304;\r
+01E1 0227 0304;\r
+01E2 00C6 0304;\r
+01E3 00E6 0304;\r
+01E6 0047 030C;\r
+01E7 0067 030C;\r
+01E8 004B 030C;\r
+01E9 006B 030C;\r
+01EA 004F 0328;\r
+01EB 006F 0328;\r
+01EC 01EA 0304;\r
+01ED 01EB 0304;\r
+01EE 01B7 030C;\r
+01EF 0292 030C;\r
+01F0 006A 030C;\r
+01F4 0047 0301;\r
+01F5 0067 0301;\r
+01F8 004E 0300;\r
+01F9 006E 0300;\r
+01FA 00C5 0301;\r
+01FB 00E5 0301;\r
+01FC 00C6 0301;\r
+01FD 00E6 0301;\r
+01FE 00D8 0301;\r
+01FF 00F8 0301;\r
+0200 0041 030F;\r
+0201 0061 030F;\r
+0202 0041 0311;\r
+0203 0061 0311;\r
+0204 0045 030F;\r
+0205 0065 030F;\r
+0206 0045 0311;\r
+0207 0065 0311;\r
+0208 0049 030F;\r
+0209 0069 030F;\r
+020A 0049 0311;\r
+020B 0069 0311;\r
+020C 004F 030F;\r
+020D 006F 030F;\r
+020E 004F 0311;\r
+020F 006F 0311;\r
+0210 0052 030F;\r
+0211 0072 030F;\r
+0212 0052 0311;\r
+0213 0072 0311;\r
+0214 0055 030F;\r
+0215 0075 030F;\r
+0216 0055 0311;\r
+0217 0075 0311;\r
+0218 0053 0326;\r
+0219 0073 0326;\r
+021A 0054 0326;\r
+021B 0074 0326;\r
+021E 0048 030C;\r
+021F 0068 030C;\r
+0226 0041 0307;\r
+0227 0061 0307;\r
+0228 0045 0327;\r
+0229 0065 0327;\r
+022A 00D6 0304;\r
+022B 00F6 0304;\r
+022C 00D5 0304;\r
+022D 00F5 0304;\r
+022E 004F 0307;\r
+022F 006F 0307;\r
+0230 022E 0304;\r
+0231 022F 0304;\r
+0232 0059 0304;\r
+0233 0079 0304;\r
+0340 0300 0000;\r
+0341 0301 0000;\r
+0343 0313 0000;\r
+0344 0308 0301;\r
+0374 02B9 0000;\r
+037E 003B 0000;\r
+0385 00A8 0301;\r
+0386 0391 0301;\r
+0387 00B7 0000;\r
+0388 0395 0301;\r
+0389 0397 0301;\r
+038A 0399 0301;\r
+038C 039F 0301;\r
+038E 03A5 0301;\r
+038F 03A9 0301;\r
+0390 03CA 0301;\r
+03AA 0399 0308;\r
+03AB 03A5 0308;\r
+03AC 03B1 0301;\r
+03AD 03B5 0301;\r
+03AE 03B7 0301;\r
+03AF 03B9 0301;\r
+03B0 03CB 0301;\r
+03CA 03B9 0308;\r
+03CB 03C5 0308;\r
+03CC 03BF 0301;\r
+03CD 03C5 0301;\r
+03CE 03C9 0301;\r
+03D3 03D2 0301;\r
+03D4 03D2 0308;\r
+0400 0415 0300;\r
+0401 0415 0308;\r
+0403 0413 0301;\r
+0407 0406 0308;\r
+040C 041A 0301;\r
+040D 0418 0300;\r
+040E 0423 0306;\r
+0419 0418 0306;\r
+0439 0438 0306;\r
+0450 0435 0300;\r
+0451 0435 0308;\r
+0453 0433 0301;\r
+0457 0456 0308;\r
+045C 043A 0301;\r
+045D 0438 0300;\r
+045E 0443 0306;\r
+0476 0474 030F;\r
+0477 0475 030F;\r
+04C1 0416 0306;\r
+04C2 0436 0306;\r
+04D0 0410 0306;\r
+04D1 0430 0306;\r
+04D2 0410 0308;\r
+04D3 0430 0308;\r
+04D6 0415 0306;\r
+04D7 0435 0306;\r
+04DA 04D8 0308;\r
+04DB 04D9 0308;\r
+04DC 0416 0308;\r
+04DD 0436 0308;\r
+04DE 0417 0308;\r
+04DF 0437 0308;\r
+04E2 0418 0304;\r
+04E3 0438 0304;\r
+04E4 0418 0308;\r
+04E5 0438 0308;\r
+04E6 041E 0308;\r
+04E7 043E 0308;\r
+04EA 04E8 0308;\r
+04EB 04E9 0308;\r
+04EC 042D 0308;\r
+04ED 044D 0308;\r
+04EE 0423 0304;\r
+04EF 0443 0304;\r
+04F0 0423 0308;\r
+04F1 0443 0308;\r
+04F2 0423 030B;\r
+04F3 0443 030B;\r
+04F4 0427 0308;\r
+04F5 0447 0308;\r
+04F8 042B 0308;\r
+04F9 044B 0308;\r
+0622 0627 0653;\r
+0623 0627 0654;\r
+0624 0648 0654;\r
+0625 0627 0655;\r
+0626 064A 0654;\r
+06C0 06D5 0654;\r
+06C2 06C1 0654;\r
+06D3 06D2 0654;\r
+0929 0928 093C;\r
+0931 0930 093C;\r
+0934 0933 093C;\r
+0958 0915 093C;\r
+0959 0916 093C;\r
+095A 0917 093C;\r
+095B 091C 093C;\r
+095C 0921 093C;\r
+095D 0922 093C;\r
+095E 092B 093C;\r
+095F 092F 093C;\r
+09CB 09C7 09BE;\r
+09CC 09C7 09D7;\r
+09DC 09A1 09BC;\r
+09DD 09A2 09BC;\r
+09DF 09AF 09BC;\r
+0A33 0A32 0A3C;\r
+0A36 0A38 0A3C;\r
+0A59 0A16 0A3C;\r
+0A5A 0A17 0A3C;\r
+0A5B 0A1C 0A3C;\r
+0A5E 0A2B 0A3C;\r
+0B48 0B47 0B56;\r
+0B4B 0B47 0B3E;\r
+0B4C 0B47 0B57;\r
+0B5C 0B21 0B3C;\r
+0B5D 0B22 0B3C;\r
+0B94 0B92 0BD7;\r
+0BCA 0BC6 0BBE;\r
+0BCB 0BC7 0BBE;\r
+0BCC 0BC6 0BD7;\r
+0C48 0C46 0C56;\r
+0CC0 0CBF 0CD5;\r
+0CC7 0CC6 0CD5;\r
+0CC8 0CC6 0CD6;\r
+0CCA 0CC6 0CC2;\r
+0CCB 0CCA 0CD5;\r
+0D4A 0D46 0D3E;\r
+0D4B 0D47 0D3E;\r
+0D4C 0D46 0D57;\r
+0DDA 0DD9 0DCA;\r
+0DDC 0DD9 0DCF;\r
+0DDD 0DDC 0DCA;\r
+0DDE 0DD9 0DDF;\r
+0F43 0F42 0FB7;\r
+0F4D 0F4C 0FB7;\r
+0F52 0F51 0FB7;\r
+0F57 0F56 0FB7;\r
+0F5C 0F5B 0FB7;\r
+0F69 0F40 0FB5;\r
+0F73 0F71 0F72;\r
+0F75 0F71 0F74;\r
+0F76 0FB2 0F80;\r
+0F78 0FB3 0F80;\r
+0F81 0F71 0F80;\r
+0F93 0F92 0FB7;\r
+0F9D 0F9C 0FB7;\r
+0FA2 0FA1 0FB7;\r
+0FA7 0FA6 0FB7;\r
+0FAC 0FAB 0FB7;\r
+0FB9 0F90 0FB5;\r
+1026 1025 102E;\r
+1E00 0041 0325;\r
+1E01 0061 0325;\r
+1E02 0042 0307;\r
+1E03 0062 0307;\r
+1E04 0042 0323;\r
+1E05 0062 0323;\r
+1E06 0042 0331;\r
+1E07 0062 0331;\r
+1E08 00C7 0301;\r
+1E09 00E7 0301;\r
+1E0A 0044 0307;\r
+1E0B 0064 0307;\r
+1E0C 0044 0323;\r
+1E0D 0064 0323;\r
+1E0E 0044 0331;\r
+1E0F 0064 0331;\r
+1E10 0044 0327;\r
+1E11 0064 0327;\r
+1E12 0044 032D;\r
+1E13 0064 032D;\r
+1E14 0112 0300;\r
+1E15 0113 0300;\r
+1E16 0112 0301;\r
+1E17 0113 0301;\r
+1E18 0045 032D;\r
+1E19 0065 032D;\r
+1E1A 0045 0330;\r
+1E1B 0065 0330;\r
+1E1C 0228 0306;\r
+1E1D 0229 0306;\r
+1E1E 0046 0307;\r
+1E1F 0066 0307;\r
+1E20 0047 0304;\r
+1E21 0067 0304;\r
+1E22 0048 0307;\r
+1E23 0068 0307;\r
+1E24 0048 0323;\r
+1E25 0068 0323;\r
+1E26 0048 0308;\r
+1E27 0068 0308;\r
+1E28 0048 0327;\r
+1E29 0068 0327;\r
+1E2A 0048 032E;\r
+1E2B 0068 032E;\r
+1E2C 0049 0330;\r
+1E2D 0069 0330;\r
+1E2E 00CF 0301;\r
+1E2F 00EF 0301;\r
+1E30 004B 0301;\r
+1E31 006B 0301;\r
+1E32 004B 0323;\r
+1E33 006B 0323;\r
+1E34 004B 0331;\r
+1E35 006B 0331;\r
+1E36 004C 0323;\r
+1E37 006C 0323;\r
+1E38 1E36 0304;\r
+1E39 1E37 0304;\r
+1E3A 004C 0331;\r
+1E3B 006C 0331;\r
+1E3C 004C 032D;\r
+1E3D 006C 032D;\r
+1E3E 004D 0301;\r
+1E3F 006D 0301;\r
+1E40 004D 0307;\r
+1E41 006D 0307;\r
+1E42 004D 0323;\r
+1E43 006D 0323;\r
+1E44 004E 0307;\r
+1E45 006E 0307;\r
+1E46 004E 0323;\r
+1E47 006E 0323;\r
+1E48 004E 0331;\r
+1E49 006E 0331;\r
+1E4A 004E 032D;\r
+1E4B 006E 032D;\r
+1E4C 00D5 0301;\r
+1E4D 00F5 0301;\r
+1E4E 00D5 0308;\r
+1E4F 00F5 0308;\r
+1E50 014C 0300;\r
+1E51 014D 0300;\r
+1E52 014C 0301;\r
+1E53 014D 0301;\r
+1E54 0050 0301;\r
+1E55 0070 0301;\r
+1E56 0050 0307;\r
+1E57 0070 0307;\r
+1E58 0052 0307;\r
+1E59 0072 0307;\r
+1E5A 0052 0323;\r
+1E5B 0072 0323;\r
+1E5C 1E5A 0304;\r
+1E5D 1E5B 0304;\r
+1E5E 0052 0331;\r
+1E5F 0072 0331;\r
+1E60 0053 0307;\r
+1E61 0073 0307;\r
+1E62 0053 0323;\r
+1E63 0073 0323;\r
+1E64 015A 0307;\r
+1E65 015B 0307;\r
+1E66 0160 0307;\r
+1E67 0161 0307;\r
+1E68 1E62 0307;\r
+1E69 1E63 0307;\r
+1E6A 0054 0307;\r
+1E6B 0074 0307;\r
+1E6C 0054 0323;\r
+1E6D 0074 0323;\r
+1E6E 0054 0331;\r
+1E6F 0074 0331;\r
+1E70 0054 032D;\r
+1E71 0074 032D;\r
+1E72 0055 0324;\r
+1E73 0075 0324;\r
+1E74 0055 0330;\r
+1E75 0075 0330;\r
+1E76 0055 032D;\r
+1E77 0075 032D;\r
+1E78 0168 0301;\r
+1E79 0169 0301;\r
+1E7A 016A 0308;\r
+1E7B 016B 0308;\r
+1E7C 0056 0303;\r
+1E7D 0076 0303;\r
+1E7E 0056 0323;\r
+1E7F 0076 0323;\r
+1E80 0057 0300;\r
+1E81 0077 0300;\r
+1E82 0057 0301;\r
+1E83 0077 0301;\r
+1E84 0057 0308;\r
+1E85 0077 0308;\r
+1E86 0057 0307;\r
+1E87 0077 0307;\r
+1E88 0057 0323;\r
+1E89 0077 0323;\r
+1E8A 0058 0307;\r
+1E8B 0078 0307;\r
+1E8C 0058 0308;\r
+1E8D 0078 0308;\r
+1E8E 0059 0307;\r
+1E8F 0079 0307;\r
+1E90 005A 0302;\r
+1E91 007A 0302;\r
+1E92 005A 0323;\r
+1E93 007A 0323;\r
+1E94 005A 0331;\r
+1E95 007A 0331;\r
+1E96 0068 0331;\r
+1E97 0074 0308;\r
+1E98 0077 030A;\r
+1E99 0079 030A;\r
+1E9B 017F 0307;\r
+1EA0 0041 0323;\r
+1EA1 0061 0323;\r
+1EA2 0041 0309;\r
+1EA3 0061 0309;\r
+1EA4 00C2 0301;\r
+1EA5 00E2 0301;\r
+1EA6 00C2 0300;\r
+1EA7 00E2 0300;\r
+1EA8 00C2 0309;\r
+1EA9 00E2 0309;\r
+1EAA 00C2 0303;\r
+1EAB 00E2 0303;\r
+1EAC 1EA0 0302;\r
+1EAD 1EA1 0302;\r
+1EAE 0102 0301;\r
+1EAF 0103 0301;\r
+1EB0 0102 0300;\r
+1EB1 0103 0300;\r
+1EB2 0102 0309;\r
+1EB3 0103 0309;\r
+1EB4 0102 0303;\r
+1EB5 0103 0303;\r
+1EB6 1EA0 0306;\r
+1EB7 1EA1 0306;\r
+1EB8 0045 0323;\r
+1EB9 0065 0323;\r
+1EBA 0045 0309;\r
+1EBB 0065 0309;\r
+1EBC 0045 0303;\r
+1EBD 0065 0303;\r
+1EBE 00CA 0301;\r
+1EBF 00EA 0301;\r
+1EC0 00CA 0300;\r
+1EC1 00EA 0300;\r
+1EC2 00CA 0309;\r
+1EC3 00EA 0309;\r
+1EC4 00CA 0303;\r
+1EC5 00EA 0303;\r
+1EC6 1EB8 0302;\r
+1EC7 1EB9 0302;\r
+1EC8 0049 0309;\r
+1EC9 0069 0309;\r
+1ECA 0049 0323;\r
+1ECB 0069 0323;\r
+1ECC 004F 0323;\r
+1ECD 006F 0323;\r
+1ECE 004F 0309;\r
+1ECF 006F 0309;\r
+1ED0 00D4 0301;\r
+1ED1 00F4 0301;\r
+1ED2 00D4 0300;\r
+1ED3 00F4 0300;\r
+1ED4 00D4 0309;\r
+1ED5 00F4 0309;\r
+1ED6 00D4 0303;\r
+1ED7 00F4 0303;\r
+1ED8 1ECC 0302;\r
+1ED9 1ECD 0302;\r
+1EDA 01A0 0301;\r
+1EDB 01A1 0301;\r
+1EDC 01A0 0300;\r
+1EDD 01A1 0300;\r
+1EDE 01A0 0309;\r
+1EDF 01A1 0309;\r
+1EE0 01A0 0303;\r
+1EE1 01A1 0303;\r
+1EE2 01A0 0323;\r
+1EE3 01A1 0323;\r
+1EE4 0055 0323;\r
+1EE5 0075 0323;\r
+1EE6 0055 0309;\r
+1EE7 0075 0309;\r
+1EE8 01AF 0301;\r
+1EE9 01B0 0301;\r
+1EEA 01AF 0300;\r
+1EEB 01B0 0300;\r
+1EEC 01AF 0309;\r
+1EED 01B0 0309;\r
+1EEE 01AF 0303;\r
+1EEF 01B0 0303;\r
+1EF0 01AF 0323;\r
+1EF1 01B0 0323;\r
+1EF2 0059 0300;\r
+1EF3 0079 0300;\r
+1EF4 0059 0323;\r
+1EF5 0079 0323;\r
+1EF6 0059 0309;\r
+1EF7 0079 0309;\r
+1EF8 0059 0303;\r
+1EF9 0079 0303;\r
+1F00 03B1 0313;\r
+1F01 03B1 0314;\r
+1F02 1F00 0300;\r
+1F03 1F01 0300;\r
+1F04 1F00 0301;\r
+1F05 1F01 0301;\r
+1F06 1F00 0342;\r
+1F07 1F01 0342;\r
+1F08 0391 0313;\r
+1F09 0391 0314;\r
+1F0A 1F08 0300;\r
+1F0B 1F09 0300;\r
+1F0C 1F08 0301;\r
+1F0D 1F09 0301;\r
+1F0E 1F08 0342;\r
+1F0F 1F09 0342;\r
+1F10 03B5 0313;\r
+1F11 03B5 0314;\r
+1F12 1F10 0300;\r
+1F13 1F11 0300;\r
+1F14 1F10 0301;\r
+1F15 1F11 0301;\r
+1F18 0395 0313;\r
+1F19 0395 0314;\r
+1F1A 1F18 0300;\r
+1F1B 1F19 0300;\r
+1F1C 1F18 0301;\r
+1F1D 1F19 0301;\r
+1F20 03B7 0313;\r
+1F21 03B7 0314;\r
+1F22 1F20 0300;\r
+1F23 1F21 0300;\r
+1F24 1F20 0301;\r
+1F25 1F21 0301;\r
+1F26 1F20 0342;\r
+1F27 1F21 0342;\r
+1F28 0397 0313;\r
+1F29 0397 0314;\r
+1F2A 1F28 0300;\r
+1F2B 1F29 0300;\r
+1F2C 1F28 0301;\r
+1F2D 1F29 0301;\r
+1F2E 1F28 0342;\r
+1F2F 1F29 0342;\r
+1F30 03B9 0313;\r
+1F31 03B9 0314;\r
+1F32 1F30 0300;\r
+1F33 1F31 0300;\r
+1F34 1F30 0301;\r
+1F35 1F31 0301;\r
+1F36 1F30 0342;\r
+1F37 1F31 0342;\r
+1F38 0399 0313;\r
+1F39 0399 0314;\r
+1F3A 1F38 0300;\r
+1F3B 1F39 0300;\r
+1F3C 1F38 0301;\r
+1F3D 1F39 0301;\r
+1F3E 1F38 0342;\r
+1F3F 1F39 0342;\r
+1F40 03BF 0313;\r
+1F41 03BF 0314;\r
+1F42 1F40 0300;\r
+1F43 1F41 0300;\r
+1F44 1F40 0301;\r
+1F45 1F41 0301;\r
+1F48 039F 0313;\r
+1F49 039F 0314;\r
+1F4A 1F48 0300;\r
+1F4B 1F49 0300;\r
+1F4C 1F48 0301;\r
+1F4D 1F49 0301;\r
+1F50 03C5 0313;\r
+1F51 03C5 0314;\r
+1F52 1F50 0300;\r
+1F53 1F51 0300;\r
+1F54 1F50 0301;\r
+1F55 1F51 0301;\r
+1F56 1F50 0342;\r
+1F57 1F51 0342;\r
+1F59 03A5 0314;\r
+1F5B 1F59 0300;\r
+1F5D 1F59 0301;\r
+1F5F 1F59 0342;\r
+1F60 03C9 0313;\r
+1F61 03C9 0314;\r
+1F62 1F60 0300;\r
+1F63 1F61 0300;\r
+1F64 1F60 0301;\r
+1F65 1F61 0301;\r
+1F66 1F60 0342;\r
+1F67 1F61 0342;\r
+1F68 03A9 0313;\r
+1F69 03A9 0314;\r
+1F6A 1F68 0300;\r
+1F6B 1F69 0300;\r
+1F6C 1F68 0301;\r
+1F6D 1F69 0301;\r
+1F6E 1F68 0342;\r
+1F6F 1F69 0342;\r
+1F70 03B1 0300;\r
+1F71 03AC 0000;\r
+1F72 03B5 0300;\r
+1F73 03AD 0000;\r
+1F74 03B7 0300;\r
+1F75 03AE 0000;\r
+1F76 03B9 0300;\r
+1F77 03AF 0000;\r
+1F78 03BF 0300;\r
+1F79 03CC 0000;\r
+1F7A 03C5 0300;\r
+1F7B 03CD 0000;\r
+1F7C 03C9 0300;\r
+1F7D 03CE 0000;\r
+1F80 1F00 0345;\r
+1F81 1F01 0345;\r
+1F82 1F02 0345;\r
+1F83 1F03 0345;\r
+1F84 1F04 0345;\r
+1F85 1F05 0345;\r
+1F86 1F06 0345;\r
+1F87 1F07 0345;\r
+1F88 1F08 0345;\r
+1F89 1F09 0345;\r
+1F8A 1F0A 0345;\r
+1F8B 1F0B 0345;\r
+1F8C 1F0C 0345;\r
+1F8D 1F0D 0345;\r
+1F8E 1F0E 0345;\r
+1F8F 1F0F 0345;\r
+1F90 1F20 0345;\r
+1F91 1F21 0345;\r
+1F92 1F22 0345;\r
+1F93 1F23 0345;\r
+1F94 1F24 0345;\r
+1F95 1F25 0345;\r
+1F96 1F26 0345;\r
+1F97 1F27 0345;\r
+1F98 1F28 0345;\r
+1F99 1F29 0345;\r
+1F9A 1F2A 0345;\r
+1F9B 1F2B 0345;\r
+1F9C 1F2C 0345;\r
+1F9D 1F2D 0345;\r
+1F9E 1F2E 0345;\r
+1F9F 1F2F 0345;\r
+1FA0 1F60 0345;\r
+1FA1 1F61 0345;\r
+1FA2 1F62 0345;\r
+1FA3 1F63 0345;\r
+1FA4 1F64 0345;\r
+1FA5 1F65 0345;\r
+1FA6 1F66 0345;\r
+1FA7 1F67 0345;\r
+1FA8 1F68 0345;\r
+1FA9 1F69 0345;\r
+1FAA 1F6A 0345;\r
+1FAB 1F6B 0345;\r
+1FAC 1F6C 0345;\r
+1FAD 1F6D 0345;\r
+1FAE 1F6E 0345;\r
+1FAF 1F6F 0345;\r
+1FB0 03B1 0306;\r
+1FB1 03B1 0304;\r
+1FB2 1F70 0345;\r
+1FB3 03B1 0345;\r
+1FB4 03AC 0345;\r
+1FB6 03B1 0342;\r
+1FB7 1FB6 0345;\r
+1FB8 0391 0306;\r
+1FB9 0391 0304;\r
+1FBA 0391 0300;\r
+1FBB 0386 0000;\r
+1FBC 0391 0345;\r
+1FBE 03B9 0000;\r
+1FC1 00A8 0342;\r
+1FC2 1F74 0345;\r
+1FC3 03B7 0345;\r
+1FC4 03AE 0345;\r
+1FC6 03B7 0342;\r
+1FC7 1FC6 0345;\r
+1FC8 0395 0300;\r
+1FC9 0388 0000;\r
+1FCA 0397 0300;\r
+1FCB 0389 0000;\r
+1FCC 0397 0345;\r
+1FCD 1FBF 0300;\r
+1FCE 1FBF 0301;\r
+1FCF 1FBF 0342;\r
+1FD0 03B9 0306;\r
+1FD1 03B9 0304;\r
+1FD2 03CA 0300;\r
+1FD3 0390 0000;\r
+1FD6 03B9 0342;\r
+1FD7 03CA 0342;\r
+1FD8 0399 0306;\r
+1FD9 0399 0304;\r
+1FDA 0399 0300;\r
+1FDB 038A 0000;\r
+1FDD 1FFE 0300;\r
+1FDE 1FFE 0301;\r
+1FDF 1FFE 0342;\r
+1FE0 03C5 0306;\r
+1FE1 03C5 0304;\r
+1FE2 03CB 0300;\r
+1FE3 03B0 0000;\r
+1FE4 03C1 0313;\r
+1FE5 03C1 0314;\r
+1FE6 03C5 0342;\r
+1FE7 03CB 0342;\r
+1FE8 03A5 0306;\r
+1FE9 03A5 0304;\r
+1FEA 03A5 0300;\r
+1FEB 038E 0000;\r
+1FEC 03A1 0314;\r
+1FED 00A8 0300;\r
+1FEE 0385 0000;\r
+1FEF 0060 0000;\r
+1FF2 1F7C 0345;\r
+1FF3 03C9 0345;\r
+1FF4 03CE 0345;\r
+1FF6 03C9 0342;\r
+1FF7 1FF6 0345;\r
+1FF8 039F 0300;\r
+1FF9 038C 0000;\r
+1FFA 03A9 0300;\r
+1FFB 038F 0000;\r
+1FFC 03A9 0345;\r
+1FFD 00B4 0000;\r
+2000 2002 0000;\r
+2001 2003 0000;\r
+2126 03A9 0000;\r
+212A 004B 0000;\r
+212B 00C5 0000;\r
+219A 2190 0338;\r
+219B 2192 0338;\r
+21AE 2194 0338;\r
+21CD 21D0 0338;\r
+21CE 21D4 0338;\r
+21CF 21D2 0338;\r
+2204 2203 0338;\r
+2209 2208 0338;\r
+220C 220B 0338;\r
+2224 2223 0338;\r
+2226 2225 0338;\r
+2241 223C 0338;\r
+2244 2243 0338;\r
+2247 2245 0338;\r
+2249 2248 0338;\r
+2260 003D 0338;\r
+2262 2261 0338;\r
+226D 224D 0338;\r
+226E 003C 0338;\r
+226F 003E 0338;\r
+2270 2264 0338;\r
+2271 2265 0338;\r
+2274 2272 0338;\r
+2275 2273 0338;\r
+2278 2276 0338;\r
+2279 2277 0338;\r
+2280 227A 0338;\r
+2281 227B 0338;\r
+2284 2282 0338;\r
+2285 2283 0338;\r
+2288 2286 0338;\r
+2289 2287 0338;\r
+22AC 22A2 0338;\r
+22AD 22A8 0338;\r
+22AE 22A9 0338;\r
+22AF 22AB 0338;\r
+22E0 227C 0338;\r
+22E1 227D 0338;\r
+22E2 2291 0338;\r
+22E3 2292 0338;\r
+22EA 22B2 0338;\r
+22EB 22B3 0338;\r
+22EC 22B4 0338;\r
+22ED 22B5 0338;\r
+2329 3008 0000;\r
+232A 3009 0000;\r
+304C 304B 3099;\r
+304E 304D 3099;\r
+3050 304F 3099;\r
+3052 3051 3099;\r
+3054 3053 3099;\r
+3056 3055 3099;\r
+3058 3057 3099;\r
+305A 3059 3099;\r
+305C 305B 3099;\r
+305E 305D 3099;\r
+3060 305F 3099;\r
+3062 3061 3099;\r
+3065 3064 3099;\r
+3067 3066 3099;\r
+3069 3068 3099;\r
+3070 306F 3099;\r
+3071 306F 309A;\r
+3073 3072 3099;\r
+3074 3072 309A;\r
+3076 3075 3099;\r
+3077 3075 309A;\r
+3079 3078 3099;\r
+307A 3078 309A;\r
+307C 307B 3099;\r
+307D 307B 309A;\r
+3094 3046 3099;\r
+309E 309D 3099;\r
+30AC 30AB 3099;\r
+30AE 30AD 3099;\r
+30B0 30AF 3099;\r
+30B2 30B1 3099;\r
+30B4 30B3 3099;\r
+30B6 30B5 3099;\r
+30B8 30B7 3099;\r
+30BA 30B9 3099;\r
+30BC 30BB 3099;\r
+30BE 30BD 3099;\r
+30C0 30BF 3099;\r
+30C2 30C1 3099;\r
+30C5 30C4 3099;\r
+30C7 30C6 3099;\r
+30C9 30C8 3099;\r
+30D0 30CF 3099;\r
+30D1 30CF 309A;\r
+30D3 30D2 3099;\r
+30D4 30D2 309A;\r
+30D6 30D5 3099;\r
+30D7 30D5 309A;\r
+30D9 30D8 3099;\r
+30DA 30D8 309A;\r
+30DC 30DB 3099;\r
+30DD 30DB 309A;\r
+30F4 30A6 3099;\r
+30F7 30EF 3099;\r
+30F8 30F0 3099;\r
+30F9 30F1 3099;\r
+30FA 30F2 3099;\r
+30FE 30FD 3099;\r
+F900 8C48 0000;\r
+F901 66F4 0000;\r
+F902 8ECA 0000;\r
+F903 8CC8 0000;\r
+F904 6ED1 0000;\r
+F905 4E32 0000;\r
+F906 53E5 0000;\r
+F907 9F9C 0000;\r
+F908 9F9C 0000;\r
+F909 5951 0000;\r
+F90A 91D1 0000;\r
+F90B 5587 0000;\r
+F90C 5948 0000;\r
+F90D 61F6 0000;\r
+F90E 7669 0000;\r
+F90F 7F85 0000;\r
+F910 863F 0000;\r
+F911 87BA 0000;\r
+F912 88F8 0000;\r
+F913 908F 0000;\r
+F914 6A02 0000;\r
+F915 6D1B 0000;\r
+F916 70D9 0000;\r
+F917 73DE 0000;\r
+F918 843D 0000;\r
+F919 916A 0000;\r
+F91A 99F1 0000;\r
+F91B 4E82 0000;\r
+F91C 5375 0000;\r
+F91D 6B04 0000;\r
+F91E 721B 0000;\r
+F91F 862D 0000;\r
+F920 9E1E 0000;\r
+F921 5D50 0000;\r
+F922 6FEB 0000;\r
+F923 85CD 0000;\r
+F924 8964 0000;\r
+F925 62C9 0000;\r
+F926 81D8 0000;\r
+F927 881F 0000;\r
+F928 5ECA 0000;\r
+F929 6717 0000;\r
+F92A 6D6A 0000;\r
+F92B 72FC 0000;\r
+F92C 90CE 0000;\r
+F92D 4F86 0000;\r
+F92E 51B7 0000;\r
+F92F 52DE 0000;\r
+F930 64C4 0000;\r
+F931 6AD3 0000;\r
+F932 7210 0000;\r
+F933 76E7 0000;\r
+F934 8001 0000;\r
+F935 8606 0000;\r
+F936 865C 0000;\r
+F937 8DEF 0000;\r
+F938 9732 0000;\r
+F939 9B6F 0000;\r
+F93A 9DFA 0000;\r
+F93B 788C 0000;\r
+F93C 797F 0000;\r
+F93D 7DA0 0000;\r
+F93E 83C9 0000;\r
+F93F 9304 0000;\r
+F940 9E7F 0000;\r
+F941 8AD6 0000;\r
+F942 58DF 0000;\r
+F943 5F04 0000;\r
+F944 7C60 0000;\r
+F945 807E 0000;\r
+F946 7262 0000;\r
+F947 78CA 0000;\r
+F948 8CC2 0000;\r
+F949 96F7 0000;\r
+F94A 58D8 0000;\r
+F94B 5C62 0000;\r
+F94C 6A13 0000;\r
+F94D 6DDA 0000;\r
+F94E 6F0F 0000;\r
+F94F 7D2F 0000;\r
+F950 7E37 0000;\r
+F951 96FB 0000;\r
+F952 52D2 0000;\r
+F953 808B 0000;\r
+F954 51DC 0000;\r
+F955 51CC 0000;\r
+F956 7A1C 0000;\r
+F957 7DBE 0000;\r
+F958 83F1 0000;\r
+F959 9675 0000;\r
+F95A 8B80 0000;\r
+F95B 62CF 0000;\r
+F95C 6A02 0000;\r
+F95D 8AFE 0000;\r
+F95E 4E39 0000;\r
+F95F 5BE7 0000;\r
+F960 6012 0000;\r
+F961 7387 0000;\r
+F962 7570 0000;\r
+F963 5317 0000;\r
+F964 78FB 0000;\r
+F965 4FBF 0000;\r
+F966 5FA9 0000;\r
+F967 4E0D 0000;\r
+F968 6CCC 0000;\r
+F969 6578 0000;\r
+F96A 7D22 0000;\r
+F96B 53C3 0000;\r
+F96C 585E 0000;\r
+F96D 7701 0000;\r
+F96E 8449 0000;\r
+F96F 8AAA 0000;\r
+F970 6BBA 0000;\r
+F971 8FB0 0000;\r
+F972 6C88 0000;\r
+F973 62FE 0000;\r
+F974 82E5 0000;\r
+F975 63A0 0000;\r
+F976 7565 0000;\r
+F977 4EAE 0000;\r
+F978 5169 0000;\r
+F979 51C9 0000;\r
+F97A 6881 0000;\r
+F97B 7CE7 0000;\r
+F97C 826F 0000;\r
+F97D 8AD2 0000;\r
+F97E 91CF 0000;\r
+F97F 52F5 0000;\r
+F980 5442 0000;\r
+F981 5973 0000;\r
+F982 5EEC 0000;\r
+F983 65C5 0000;\r
+F984 6FFE 0000;\r
+F985 792A 0000;\r
+F986 95AD 0000;\r
+F987 9A6A 0000;\r
+F988 9E97 0000;\r
+F989 9ECE 0000;\r
+F98A 529B 0000;\r
+F98B 66C6 0000;\r
+F98C 6B77 0000;\r
+F98D 8F62 0000;\r
+F98E 5E74 0000;\r
+F98F 6190 0000;\r
+F990 6200 0000;\r
+F991 649A 0000;\r
+F992 6F23 0000;\r
+F993 7149 0000;\r
+F994 7489 0000;\r
+F995 79CA 0000;\r
+F996 7DF4 0000;\r
+F997 806F 0000;\r
+F998 8F26 0000;\r
+F999 84EE 0000;\r
+F99A 9023 0000;\r
+F99B 934A 0000;\r
+F99C 5217 0000;\r
+F99D 52A3 0000;\r
+F99E 54BD 0000;\r
+F99F 70C8 0000;\r
+F9A0 88C2 0000;\r
+F9A1 8AAA 0000;\r
+F9A2 5EC9 0000;\r
+F9A3 5FF5 0000;\r
+F9A4 637B 0000;\r
+F9A5 6BAE 0000;\r
+F9A6 7C3E 0000;\r
+F9A7 7375 0000;\r
+F9A8 4EE4 0000;\r
+F9A9 56F9 0000;\r
+F9AA 5BE7 0000;\r
+F9AB 5DBA 0000;\r
+F9AC 601C 0000;\r
+F9AD 73B2 0000;\r
+F9AE 7469 0000;\r
+F9AF 7F9A 0000;\r
+F9B0 8046 0000;\r
+F9B1 9234 0000;\r
+F9B2 96F6 0000;\r
+F9B3 9748 0000;\r
+F9B4 9818 0000;\r
+F9B5 4F8B 0000;\r
+F9B6 79AE 0000;\r
+F9B7 91B4 0000;\r
+F9B8 96B8 0000;\r
+F9B9 60E1 0000;\r
+F9BA 4E86 0000;\r
+F9BB 50DA 0000;\r
+F9BC 5BEE 0000;\r
+F9BD 5C3F 0000;\r
+F9BE 6599 0000;\r
+F9BF 6A02 0000;\r
+F9C0 71CE 0000;\r
+F9C1 7642 0000;\r
+F9C2 84FC 0000;\r
+F9C3 907C 0000;\r
+F9C4 9F8D 0000;\r
+F9C5 6688 0000;\r
+F9C6 962E 0000;\r
+F9C7 5289 0000;\r
+F9C8 677B 0000;\r
+F9C9 67F3 0000;\r
+F9CA 6D41 0000;\r
+F9CB 6E9C 0000;\r
+F9CC 7409 0000;\r
+F9CD 7559 0000;\r
+F9CE 786B 0000;\r
+F9CF 7D10 0000;\r
+F9D0 985E 0000;\r
+F9D1 516D 0000;\r
+F9D2 622E 0000;\r
+F9D3 9678 0000;\r
+F9D4 502B 0000;\r
+F9D5 5D19 0000;\r
+F9D6 6DEA 0000;\r
+F9D7 8F2A 0000;\r
+F9D8 5F8B 0000;\r
+F9D9 6144 0000;\r
+F9DA 6817 0000;\r
+F9DB 7387 0000;\r
+F9DC 9686 0000;\r
+F9DD 5229 0000;\r
+F9DE 540F 0000;\r
+F9DF 5C65 0000;\r
+F9E0 6613 0000;\r
+F9E1 674E 0000;\r
+F9E2 68A8 0000;\r
+F9E3 6CE5 0000;\r
+F9E4 7406 0000;\r
+F9E5 75E2 0000;\r
+F9E6 7F79 0000;\r
+F9E7 88CF 0000;\r
+F9E8 88E1 0000;\r
+F9E9 91CC 0000;\r
+F9EA 96E2 0000;\r
+F9EB 533F 0000;\r
+F9EC 6EBA 0000;\r
+F9ED 541D 0000;\r
+F9EE 71D0 0000;\r
+F9EF 7498 0000;\r
+F9F0 85FA 0000;\r
+F9F1 96A3 0000;\r
+F9F2 9C57 0000;\r
+F9F3 9E9F 0000;\r
+F9F4 6797 0000;\r
+F9F5 6DCB 0000;\r
+F9F6 81E8 0000;\r
+F9F7 7ACB 0000;\r
+F9F8 7B20 0000;\r
+F9F9 7C92 0000;\r
+F9FA 72C0 0000;\r
+F9FB 7099 0000;\r
+F9FC 8B58 0000;\r
+F9FD 4EC0 0000;\r
+F9FE 8336 0000;\r
+F9FF 523A 0000;\r
+FA00 5207 0000;\r
+FA01 5EA6 0000;\r
+FA02 62D3 0000;\r
+FA03 7CD6 0000;\r
+FA04 5B85 0000;\r
+FA05 6D1E 0000;\r
+FA06 66B4 0000;\r
+FA07 8F3B 0000;\r
+FA08 884C 0000;\r
+FA09 964D 0000;\r
+FA0A 898B 0000;\r
+FA0B 5ED3 0000;\r
+FA0C 5140 0000;\r
+FA0D 55C0 0000;\r
+FA10 585A 0000;\r
+FA12 6674 0000;\r
+FA15 51DE 0000;\r
+FA16 732A 0000;\r
+FA17 76CA 0000;\r
+FA18 793C 0000;\r
+FA19 795E 0000;\r
+FA1A 7965 0000;\r
+FA1B 798F 0000;\r
+FA1C 9756 0000;\r
+FA1D 7CBE 0000;\r
+FA1E 7FBD 0000;\r
+FA20 8612 0000;\r
+FA22 8AF8 0000;\r
+FA25 9038 0000;\r
+FA26 90FD 0000;\r
+FA2A 98EF 0000;\r
+FA2B 98FC 0000;\r
+FA2C 9928 0000;\r
+FA2D 9DB4 0000;\r
+FB1D 05D9 05B4;\r
+FB1F 05F2 05B7;\r
+FB2A 05E9 05C1;\r
+FB2B 05E9 05C2;\r
+FB2C FB49 05C1;\r
+FB2D FB49 05C2;\r
+FB2E 05D0 05B7;\r
+FB2F 05D0 05B8;\r
+FB30 05D0 05BC;\r
+FB31 05D1 05BC;\r
+FB32 05D2 05BC;\r
+FB33 05D3 05BC;\r
+FB34 05D4 05BC;\r
+FB35 05D5 05BC;\r
+FB36 05D6 05BC;\r
+FB38 05D8 05BC;\r
+FB39 05D9 05BC;\r
+FB3A 05DA 05BC;\r
+FB3B 05DB 05BC;\r
+FB3C 05DC 05BC;\r
+FB3E 05DE 05BC;\r
+FB40 05E0 05BC;\r
+FB41 05E1 05BC;\r
+FB43 05E3 05BC;\r
+FB44 05E4 05BC;\r
+FB46 05E6 05BC;\r
+FB47 05E7 05BC;\r
+FB48 05E8 05BC;\r
+FB49 05E9 05BC;\r
+FB4A 05EA 05BC;\r
+FB4B 05D5 05B9;\r
+FB4C 05D1 05BF;\r
+FB4D 05DB 05BF;\r
+FB4E 05E4 05BF;\r
diff --git a/data/uni-nfkd.txt b/data/uni-nfkd.txt
new file mode 100644 (file)
index 0000000..0e287b9
--- /dev/null
@@ -0,0 +1,3486 @@
+# uni-nfkd.txt - Unicode decomposition mapping\r
+00A0 0020 0000;<noBreak>;\r
+00A8 0020 0308;<compat>;\r
+00AA 0061 0000;<super>;\r
+00AF 0020 0304;<compat>;\r
+00B2 0032 0000;<super>;\r
+00B3 0033 0000;<super>;\r
+00B4 0020 0301;<compat>;\r
+00B5 03BC 0000;<compat>;\r
+00B8 0020 0327;<compat>;\r
+00B9 0031 0000;<super>;\r
+00BA 006F 0000;<super>;\r
+00BC 0031 2044;<fraction>;\r
+00BD 0031 2044;<fraction>;\r
+00BE 0033 2044;<fraction>;\r
+00C0 0041 0300;\r
+00C1 0041 0301;\r
+00C2 0041 0302;\r
+00C3 0041 0303;\r
+00C4 0041 0308;\r
+00C5 0041 030A;\r
+00C7 0043 0327;\r
+00C8 0045 0300;\r
+00C9 0045 0301;\r
+00CA 0045 0302;\r
+00CB 0045 0308;\r
+00CC 0049 0300;\r
+00CD 0049 0301;\r
+00CE 0049 0302;\r
+00CF 0049 0308;\r
+00D1 004E 0303;\r
+00D2 004F 0300;\r
+00D3 004F 0301;\r
+00D4 004F 0302;\r
+00D5 004F 0303;\r
+00D6 004F 0308;\r
+00D9 0055 0300;\r
+00DA 0055 0301;\r
+00DB 0055 0302;\r
+00DC 0055 0308;\r
+00DD 0059 0301;\r
+00E0 0061 0300;\r
+00E1 0061 0301;\r
+00E2 0061 0302;\r
+00E3 0061 0303;\r
+00E4 0061 0308;\r
+00E5 0061 030A;\r
+00E7 0063 0327;\r
+00E8 0065 0300;\r
+00E9 0065 0301;\r
+00EA 0065 0302;\r
+00EB 0065 0308;\r
+00EC 0069 0300;\r
+00ED 0069 0301;\r
+00EE 0069 0302;\r
+00EF 0069 0308;\r
+00F1 006E 0303;\r
+00F2 006F 0300;\r
+00F3 006F 0301;\r
+00F4 006F 0302;\r
+00F5 006F 0303;\r
+00F6 006F 0308;\r
+00F9 0075 0300;\r
+00FA 0075 0301;\r
+00FB 0075 0302;\r
+00FC 0075 0308;\r
+00FD 0079 0301;\r
+00FF 0079 0308;\r
+0100 0041 0304;\r
+0101 0061 0304;\r
+0102 0041 0306;\r
+0103 0061 0306;\r
+0104 0041 0328;\r
+0105 0061 0328;\r
+0106 0043 0301;\r
+0107 0063 0301;\r
+0108 0043 0302;\r
+0109 0063 0302;\r
+010A 0043 0307;\r
+010B 0063 0307;\r
+010C 0043 030C;\r
+010D 0063 030C;\r
+010E 0044 030C;\r
+010F 0064 030C;\r
+0112 0045 0304;\r
+0113 0065 0304;\r
+0114 0045 0306;\r
+0115 0065 0306;\r
+0116 0045 0307;\r
+0117 0065 0307;\r
+0118 0045 0328;\r
+0119 0065 0328;\r
+011A 0045 030C;\r
+011B 0065 030C;\r
+011C 0047 0302;\r
+011D 0067 0302;\r
+011E 0047 0306;\r
+011F 0067 0306;\r
+0120 0047 0307;\r
+0121 0067 0307;\r
+0122 0047 0327;\r
+0123 0067 0327;\r
+0124 0048 0302;\r
+0125 0068 0302;\r
+0128 0049 0303;\r
+0129 0069 0303;\r
+012A 0049 0304;\r
+012B 0069 0304;\r
+012C 0049 0306;\r
+012D 0069 0306;\r
+012E 0049 0328;\r
+012F 0069 0328;\r
+0130 0049 0307;\r
+0132 0049 004A;<compat>;\r
+0133 0069 006A;<compat>;\r
+0134 004A 0302;\r
+0135 006A 0302;\r
+0136 004B 0327;\r
+0137 006B 0327;\r
+0139 004C 0301;\r
+013A 006C 0301;\r
+013B 004C 0327;\r
+013C 006C 0327;\r
+013D 004C 030C;\r
+013E 006C 030C;\r
+013F 004C 00B7;<compat>;\r
+0140 006C 00B7;<compat>;\r
+0143 004E 0301;\r
+0144 006E 0301;\r
+0145 004E 0327;\r
+0146 006E 0327;\r
+0147 004E 030C;\r
+0148 006E 030C;\r
+0149 02BC 006E;<compat>;\r
+014C 004F 0304;\r
+014D 006F 0304;\r
+014E 004F 0306;\r
+014F 006F 0306;\r
+0150 004F 030B;\r
+0151 006F 030B;\r
+0154 0052 0301;\r
+0155 0072 0301;\r
+0156 0052 0327;\r
+0157 0072 0327;\r
+0158 0052 030C;\r
+0159 0072 030C;\r
+015A 0053 0301;\r
+015B 0073 0301;\r
+015C 0053 0302;\r
+015D 0073 0302;\r
+015E 0053 0327;\r
+015F 0073 0327;\r
+0160 0053 030C;\r
+0161 0073 030C;\r
+0162 0054 0327;\r
+0163 0074 0327;\r
+0164 0054 030C;\r
+0165 0074 030C;\r
+0168 0055 0303;\r
+0169 0075 0303;\r
+016A 0055 0304;\r
+016B 0075 0304;\r
+016C 0055 0306;\r
+016D 0075 0306;\r
+016E 0055 030A;\r
+016F 0075 030A;\r
+0170 0055 030B;\r
+0171 0075 030B;\r
+0172 0055 0328;\r
+0173 0075 0328;\r
+0174 0057 0302;\r
+0175 0077 0302;\r
+0176 0059 0302;\r
+0177 0079 0302;\r
+0178 0059 0308;\r
+0179 005A 0301;\r
+017A 007A 0301;\r
+017B 005A 0307;\r
+017C 007A 0307;\r
+017D 005A 030C;\r
+017E 007A 030C;\r
+017F 0073 0000;<compat>;\r
+01A0 004F 031B;\r
+01A1 006F 031B;\r
+01AF 0055 031B;\r
+01B0 0075 031B;\r
+01C4 0044 017D;<compat>;\r
+01C5 0044 017E;<compat>;\r
+01C6 0064 017E;<compat>;\r
+01C7 004C 004A;<compat>;\r
+01C8 004C 006A;<compat>;\r
+01C9 006C 006A;<compat>;\r
+01CA 004E 004A;<compat>;\r
+01CB 004E 006A;<compat>;\r
+01CC 006E 006A;<compat>;\r
+01CD 0041 030C;\r
+01CE 0061 030C;\r
+01CF 0049 030C;\r
+01D0 0069 030C;\r
+01D1 004F 030C;\r
+01D2 006F 030C;\r
+01D3 0055 030C;\r
+01D4 0075 030C;\r
+01D5 00DC 0304;\r
+01D6 00FC 0304;\r
+01D7 00DC 0301;\r
+01D8 00FC 0301;\r
+01D9 00DC 030C;\r
+01DA 00FC 030C;\r
+01DB 00DC 0300;\r
+01DC 00FC 0300;\r
+01DE 00C4 0304;\r
+01DF 00E4 0304;\r
+01E0 0226 0304;\r
+01E1 0227 0304;\r
+01E2 00C6 0304;\r
+01E3 00E6 0304;\r
+01E6 0047 030C;\r
+01E7 0067 030C;\r
+01E8 004B 030C;\r
+01E9 006B 030C;\r
+01EA 004F 0328;\r
+01EB 006F 0328;\r
+01EC 01EA 0304;\r
+01ED 01EB 0304;\r
+01EE 01B7 030C;\r
+01EF 0292 030C;\r
+01F0 006A 030C;\r
+01F1 0044 005A;<compat>;\r
+01F2 0044 007A;<compat>;\r
+01F3 0064 007A;<compat>;\r
+01F4 0047 0301;\r
+01F5 0067 0301;\r
+01F8 004E 0300;\r
+01F9 006E 0300;\r
+01FA 00C5 0301;\r
+01FB 00E5 0301;\r
+01FC 00C6 0301;\r
+01FD 00E6 0301;\r
+01FE 00D8 0301;\r
+01FF 00F8 0301;\r
+0200 0041 030F;\r
+0201 0061 030F;\r
+0202 0041 0311;\r
+0203 0061 0311;\r
+0204 0045 030F;\r
+0205 0065 030F;\r
+0206 0045 0311;\r
+0207 0065 0311;\r
+0208 0049 030F;\r
+0209 0069 030F;\r
+020A 0049 0311;\r
+020B 0069 0311;\r
+020C 004F 030F;\r
+020D 006F 030F;\r
+020E 004F 0311;\r
+020F 006F 0311;\r
+0210 0052 030F;\r
+0211 0072 030F;\r
+0212 0052 0311;\r
+0213 0072 0311;\r
+0214 0055 030F;\r
+0215 0075 030F;\r
+0216 0055 0311;\r
+0217 0075 0311;\r
+0218 0053 0326;\r
+0219 0073 0326;\r
+021A 0054 0326;\r
+021B 0074 0326;\r
+021E 0048 030C;\r
+021F 0068 030C;\r
+0226 0041 0307;\r
+0227 0061 0307;\r
+0228 0045 0327;\r
+0229 0065 0327;\r
+022A 00D6 0304;\r
+022B 00F6 0304;\r
+022C 00D5 0304;\r
+022D 00F5 0304;\r
+022E 004F 0307;\r
+022F 006F 0307;\r
+0230 022E 0304;\r
+0231 022F 0304;\r
+0232 0059 0304;\r
+0233 0079 0304;\r
+02B0 0068 0000;<super>;\r
+02B1 0266 0000;<super>;\r
+02B2 006A 0000;<super>;\r
+02B3 0072 0000;<super>;\r
+02B4 0279 0000;<super>;\r
+02B5 027B 0000;<super>;\r
+02B6 0281 0000;<super>;\r
+02B7 0077 0000;<super>;\r
+02B8 0079 0000;<super>;\r
+02D8 0020 0306;<compat>;\r
+02D9 0020 0307;<compat>;\r
+02DA 0020 030A;<compat>;\r
+02DB 0020 0328;<compat>;\r
+02DC 0020 0303;<compat>;\r
+02DD 0020 030B;<compat>;\r
+02E0 0263 0000;<super>;\r
+02E1 006C 0000;<super>;\r
+02E2 0073 0000;<super>;\r
+02E3 0078 0000;<super>;\r
+02E4 0295 0000;<super>;\r
+0340 0300 0000;\r
+0341 0301 0000;\r
+0343 0313 0000;\r
+0344 0308 0301;\r
+0374 02B9 0000;\r
+037A 0020 0345;<compat>;\r
+037E 003B 0000;\r
+0384 0020 0301;<compat>;\r
+0385 00A8 0301;\r
+0386 0391 0301;\r
+0387 00B7 0000;\r
+0388 0395 0301;\r
+0389 0397 0301;\r
+038A 0399 0301;\r
+038C 039F 0301;\r
+038E 03A5 0301;\r
+038F 03A9 0301;\r
+0390 03CA 0301;\r
+03AA 0399 0308;\r
+03AB 03A5 0308;\r
+03AC 03B1 0301;\r
+03AD 03B5 0301;\r
+03AE 03B7 0301;\r
+03AF 03B9 0301;\r
+03B0 03CB 0301;\r
+03CA 03B9 0308;\r
+03CB 03C5 0308;\r
+03CC 03BF 0301;\r
+03CD 03C5 0301;\r
+03CE 03C9 0301;\r
+03D0 03B2 0000;<compat>;\r
+03D1 03B8 0000;<compat>;\r
+03D2 03A5 0000;<compat>;\r
+03D3 03D2 0301;\r
+03D4 03D2 0308;\r
+03D5 03C6 0000;<compat>;\r
+03D6 03C0 0000;<compat>;\r
+03F0 03BA 0000;<compat>;\r
+03F1 03C1 0000;<compat>;\r
+03F2 03C2 0000;<compat>;\r
+03F4 0398 0000;<compat>;\r
+03F5 03B5 0000;<compat>;\r
+0400 0415 0300;\r
+0401 0415 0308;\r
+0403 0413 0301;\r
+0407 0406 0308;\r
+040C 041A 0301;\r
+040D 0418 0300;\r
+040E 0423 0306;\r
+0419 0418 0306;\r
+0439 0438 0306;\r
+0450 0435 0300;\r
+0451 0435 0308;\r
+0453 0433 0301;\r
+0457 0456 0308;\r
+045C 043A 0301;\r
+045D 0438 0300;\r
+045E 0443 0306;\r
+0476 0474 030F;\r
+0477 0475 030F;\r
+04C1 0416 0306;\r
+04C2 0436 0306;\r
+04D0 0410 0306;\r
+04D1 0430 0306;\r
+04D2 0410 0308;\r
+04D3 0430 0308;\r
+04D6 0415 0306;\r
+04D7 0435 0306;\r
+04DA 04D8 0308;\r
+04DB 04D9 0308;\r
+04DC 0416 0308;\r
+04DD 0436 0308;\r
+04DE 0417 0308;\r
+04DF 0437 0308;\r
+04E2 0418 0304;\r
+04E3 0438 0304;\r
+04E4 0418 0308;\r
+04E5 0438 0308;\r
+04E6 041E 0308;\r
+04E7 043E 0308;\r
+04EA 04E8 0308;\r
+04EB 04E9 0308;\r
+04EC 042D 0308;\r
+04ED 044D 0308;\r
+04EE 0423 0304;\r
+04EF 0443 0304;\r
+04F0 0423 0308;\r
+04F1 0443 0308;\r
+04F2 0423 030B;\r
+04F3 0443 030B;\r
+04F4 0427 0308;\r
+04F5 0447 0308;\r
+04F8 042B 0308;\r
+04F9 044B 0308;\r
+0587 0565 0582;<compat>;\r
+0622 0627 0653;\r
+0623 0627 0654;\r
+0624 0648 0654;\r
+0625 0627 0655;\r
+0626 064A 0654;\r
+0675 0627 0674;<compat>;\r
+0676 0648 0674;<compat>;\r
+0677 06C7 0674;<compat>;\r
+0678 064A 0674;<compat>;\r
+06C0 06D5 0654;\r
+06C2 06C1 0654;\r
+06D3 06D2 0654;\r
+0929 0928 093C;\r
+0931 0930 093C;\r
+0934 0933 093C;\r
+0958 0915 093C;\r
+0959 0916 093C;\r
+095A 0917 093C;\r
+095B 091C 093C;\r
+095C 0921 093C;\r
+095D 0922 093C;\r
+095E 092B 093C;\r
+095F 092F 093C;\r
+09CB 09C7 09BE;\r
+09CC 09C7 09D7;\r
+09DC 09A1 09BC;\r
+09DD 09A2 09BC;\r
+09DF 09AF 09BC;\r
+0A33 0A32 0A3C;\r
+0A36 0A38 0A3C;\r
+0A59 0A16 0A3C;\r
+0A5A 0A17 0A3C;\r
+0A5B 0A1C 0A3C;\r
+0A5E 0A2B 0A3C;\r
+0B48 0B47 0B56;\r
+0B4B 0B47 0B3E;\r
+0B4C 0B47 0B57;\r
+0B5C 0B21 0B3C;\r
+0B5D 0B22 0B3C;\r
+0B94 0B92 0BD7;\r
+0BCA 0BC6 0BBE;\r
+0BCB 0BC7 0BBE;\r
+0BCC 0BC6 0BD7;\r
+0C48 0C46 0C56;\r
+0CC0 0CBF 0CD5;\r
+0CC7 0CC6 0CD5;\r
+0CC8 0CC6 0CD6;\r
+0CCA 0CC6 0CC2;\r
+0CCB 0CCA 0CD5;\r
+0D4A 0D46 0D3E;\r
+0D4B 0D47 0D3E;\r
+0D4C 0D46 0D57;\r
+0DDA 0DD9 0DCA;\r
+0DDC 0DD9 0DCF;\r
+0DDD 0DDC 0DCA;\r
+0DDE 0DD9 0DDF;\r
+0E33 0E4D 0E32;<compat>;\r
+0EB3 0ECD 0EB2;<compat>;\r
+0EDC 0EAB 0E99;<compat>;\r
+0EDD 0EAB 0EA1;<compat>;\r
+0F0C 0F0B 0000;<noBreak>;\r
+0F43 0F42 0FB7;\r
+0F4D 0F4C 0FB7;\r
+0F52 0F51 0FB7;\r
+0F57 0F56 0FB7;\r
+0F5C 0F5B 0FB7;\r
+0F69 0F40 0FB5;\r
+0F73 0F71 0F72;\r
+0F75 0F71 0F74;\r
+0F76 0FB2 0F80;\r
+0F77 0FB2 0F81;<compat>;\r
+0F78 0FB3 0F80;\r
+0F79 0FB3 0F81;<compat>;\r
+0F81 0F71 0F80;\r
+0F93 0F92 0FB7;\r
+0F9D 0F9C 0FB7;\r
+0FA2 0FA1 0FB7;\r
+0FA7 0FA6 0FB7;\r
+0FAC 0FAB 0FB7;\r
+0FB9 0F90 0FB5;\r
+1026 1025 102E;\r
+1E00 0041 0325;\r
+1E01 0061 0325;\r
+1E02 0042 0307;\r
+1E03 0062 0307;\r
+1E04 0042 0323;\r
+1E05 0062 0323;\r
+1E06 0042 0331;\r
+1E07 0062 0331;\r
+1E08 00C7 0301;\r
+1E09 00E7 0301;\r
+1E0A 0044 0307;\r
+1E0B 0064 0307;\r
+1E0C 0044 0323;\r
+1E0D 0064 0323;\r
+1E0E 0044 0331;\r
+1E0F 0064 0331;\r
+1E10 0044 0327;\r
+1E11 0064 0327;\r
+1E12 0044 032D;\r
+1E13 0064 032D;\r
+1E14 0112 0300;\r
+1E15 0113 0300;\r
+1E16 0112 0301;\r
+1E17 0113 0301;\r
+1E18 0045 032D;\r
+1E19 0065 032D;\r
+1E1A 0045 0330;\r
+1E1B 0065 0330;\r
+1E1C 0228 0306;\r
+1E1D 0229 0306;\r
+1E1E 0046 0307;\r
+1E1F 0066 0307;\r
+1E20 0047 0304;\r
+1E21 0067 0304;\r
+1E22 0048 0307;\r
+1E23 0068 0307;\r
+1E24 0048 0323;\r
+1E25 0068 0323;\r
+1E26 0048 0308;\r
+1E27 0068 0308;\r
+1E28 0048 0327;\r
+1E29 0068 0327;\r
+1E2A 0048 032E;\r
+1E2B 0068 032E;\r
+1E2C 0049 0330;\r
+1E2D 0069 0330;\r
+1E2E 00CF 0301;\r
+1E2F 00EF 0301;\r
+1E30 004B 0301;\r
+1E31 006B 0301;\r
+1E32 004B 0323;\r
+1E33 006B 0323;\r
+1E34 004B 0331;\r
+1E35 006B 0331;\r
+1E36 004C 0323;\r
+1E37 006C 0323;\r
+1E38 1E36 0304;\r
+1E39 1E37 0304;\r
+1E3A 004C 0331;\r
+1E3B 006C 0331;\r
+1E3C 004C 032D;\r
+1E3D 006C 032D;\r
+1E3E 004D 0301;\r
+1E3F 006D 0301;\r
+1E40 004D 0307;\r
+1E41 006D 0307;\r
+1E42 004D 0323;\r
+1E43 006D 0323;\r
+1E44 004E 0307;\r
+1E45 006E 0307;\r
+1E46 004E 0323;\r
+1E47 006E 0323;\r
+1E48 004E 0331;\r
+1E49 006E 0331;\r
+1E4A 004E 032D;\r
+1E4B 006E 032D;\r
+1E4C 00D5 0301;\r
+1E4D 00F5 0301;\r
+1E4E 00D5 0308;\r
+1E4F 00F5 0308;\r
+1E50 014C 0300;\r
+1E51 014D 0300;\r
+1E52 014C 0301;\r
+1E53 014D 0301;\r
+1E54 0050 0301;\r
+1E55 0070 0301;\r
+1E56 0050 0307;\r
+1E57 0070 0307;\r
+1E58 0052 0307;\r
+1E59 0072 0307;\r
+1E5A 0052 0323;\r
+1E5B 0072 0323;\r
+1E5C 1E5A 0304;\r
+1E5D 1E5B 0304;\r
+1E5E 0052 0331;\r
+1E5F 0072 0331;\r
+1E60 0053 0307;\r
+1E61 0073 0307;\r
+1E62 0053 0323;\r
+1E63 0073 0323;\r
+1E64 015A 0307;\r
+1E65 015B 0307;\r
+1E66 0160 0307;\r
+1E67 0161 0307;\r
+1E68 1E62 0307;\r
+1E69 1E63 0307;\r
+1E6A 0054 0307;\r
+1E6B 0074 0307;\r
+1E6C 0054 0323;\r
+1E6D 0074 0323;\r
+1E6E 0054 0331;\r
+1E6F 0074 0331;\r
+1E70 0054 032D;\r
+1E71 0074 032D;\r
+1E72 0055 0324;\r
+1E73 0075 0324;\r
+1E74 0055 0330;\r
+1E75 0075 0330;\r
+1E76 0055 032D;\r
+1E77 0075 032D;\r
+1E78 0168 0301;\r
+1E79 0169 0301;\r
+1E7A 016A 0308;\r
+1E7B 016B 0308;\r
+1E7C 0056 0303;\r
+1E7D 0076 0303;\r
+1E7E 0056 0323;\r
+1E7F 0076 0323;\r
+1E80 0057 0300;\r
+1E81 0077 0300;\r
+1E82 0057 0301;\r
+1E83 0077 0301;\r
+1E84 0057 0308;\r
+1E85 0077 0308;\r
+1E86 0057 0307;\r
+1E87 0077 0307;\r
+1E88 0057 0323;\r
+1E89 0077 0323;\r
+1E8A 0058 0307;\r
+1E8B 0078 0307;\r
+1E8C 0058 0308;\r
+1E8D 0078 0308;\r
+1E8E 0059 0307;\r
+1E8F 0079 0307;\r
+1E90 005A 0302;\r
+1E91 007A 0302;\r
+1E92 005A 0323;\r
+1E93 007A 0323;\r
+1E94 005A 0331;\r
+1E95 007A 0331;\r
+1E96 0068 0331;\r
+1E97 0074 0308;\r
+1E98 0077 030A;\r
+1E99 0079 030A;\r
+1E9A 0061 02BE;<compat>;\r
+1E9B 017F 0307;\r
+1EA0 0041 0323;\r
+1EA1 0061 0323;\r
+1EA2 0041 0309;\r
+1EA3 0061 0309;\r
+1EA4 00C2 0301;\r
+1EA5 00E2 0301;\r
+1EA6 00C2 0300;\r
+1EA7 00E2 0300;\r
+1EA8 00C2 0309;\r
+1EA9 00E2 0309;\r
+1EAA 00C2 0303;\r
+1EAB 00E2 0303;\r
+1EAC 1EA0 0302;\r
+1EAD 1EA1 0302;\r
+1EAE 0102 0301;\r
+1EAF 0103 0301;\r
+1EB0 0102 0300;\r
+1EB1 0103 0300;\r
+1EB2 0102 0309;\r
+1EB3 0103 0309;\r
+1EB4 0102 0303;\r
+1EB5 0103 0303;\r
+1EB6 1EA0 0306;\r
+1EB7 1EA1 0306;\r
+1EB8 0045 0323;\r
+1EB9 0065 0323;\r
+1EBA 0045 0309;\r
+1EBB 0065 0309;\r
+1EBC 0045 0303;\r
+1EBD 0065 0303;\r
+1EBE 00CA 0301;\r
+1EBF 00EA 0301;\r
+1EC0 00CA 0300;\r
+1EC1 00EA 0300;\r
+1EC2 00CA 0309;\r
+1EC3 00EA 0309;\r
+1EC4 00CA 0303;\r
+1EC5 00EA 0303;\r
+1EC6 1EB8 0302;\r
+1EC7 1EB9 0302;\r
+1EC8 0049 0309;\r
+1EC9 0069 0309;\r
+1ECA 0049 0323;\r
+1ECB 0069 0323;\r
+1ECC 004F 0323;\r
+1ECD 006F 0323;\r
+1ECE 004F 0309;\r
+1ECF 006F 0309;\r
+1ED0 00D4 0301;\r
+1ED1 00F4 0301;\r
+1ED2 00D4 0300;\r
+1ED3 00F4 0300;\r
+1ED4 00D4 0309;\r
+1ED5 00F4 0309;\r
+1ED6 00D4 0303;\r
+1ED7 00F4 0303;\r
+1ED8 1ECC 0302;\r
+1ED9 1ECD 0302;\r
+1EDA 01A0 0301;\r
+1EDB 01A1 0301;\r
+1EDC 01A0 0300;\r
+1EDD 01A1 0300;\r
+1EDE 01A0 0309;\r
+1EDF 01A1 0309;\r
+1EE0 01A0 0303;\r
+1EE1 01A1 0303;\r
+1EE2 01A0 0323;\r
+1EE3 01A1 0323;\r
+1EE4 0055 0323;\r
+1EE5 0075 0323;\r
+1EE6 0055 0309;\r
+1EE7 0075 0309;\r
+1EE8 01AF 0301;\r
+1EE9 01B0 0301;\r
+1EEA 01AF 0300;\r
+1EEB 01B0 0300;\r
+1EEC 01AF 0309;\r
+1EED 01B0 0309;\r
+1EEE 01AF 0303;\r
+1EEF 01B0 0303;\r
+1EF0 01AF 0323;\r
+1EF1 01B0 0323;\r
+1EF2 0059 0300;\r
+1EF3 0079 0300;\r
+1EF4 0059 0323;\r
+1EF5 0079 0323;\r
+1EF6 0059 0309;\r
+1EF7 0079 0309;\r
+1EF8 0059 0303;\r
+1EF9 0079 0303;\r
+1F00 03B1 0313;\r
+1F01 03B1 0314;\r
+1F02 1F00 0300;\r
+1F03 1F01 0300;\r
+1F04 1F00 0301;\r
+1F05 1F01 0301;\r
+1F06 1F00 0342;\r
+1F07 1F01 0342;\r
+1F08 0391 0313;\r
+1F09 0391 0314;\r
+1F0A 1F08 0300;\r
+1F0B 1F09 0300;\r
+1F0C 1F08 0301;\r
+1F0D 1F09 0301;\r
+1F0E 1F08 0342;\r
+1F0F 1F09 0342;\r
+1F10 03B5 0313;\r
+1F11 03B5 0314;\r
+1F12 1F10 0300;\r
+1F13 1F11 0300;\r
+1F14 1F10 0301;\r
+1F15 1F11 0301;\r
+1F18 0395 0313;\r
+1F19 0395 0314;\r
+1F1A 1F18 0300;\r
+1F1B 1F19 0300;\r
+1F1C 1F18 0301;\r
+1F1D 1F19 0301;\r
+1F20 03B7 0313;\r
+1F21 03B7 0314;\r
+1F22 1F20 0300;\r
+1F23 1F21 0300;\r
+1F24 1F20 0301;\r
+1F25 1F21 0301;\r
+1F26 1F20 0342;\r
+1F27 1F21 0342;\r
+1F28 0397 0313;\r
+1F29 0397 0314;\r
+1F2A 1F28 0300;\r
+1F2B 1F29 0300;\r
+1F2C 1F28 0301;\r
+1F2D 1F29 0301;\r
+1F2E 1F28 0342;\r
+1F2F 1F29 0342;\r
+1F30 03B9 0313;\r
+1F31 03B9 0314;\r
+1F32 1F30 0300;\r
+1F33 1F31 0300;\r
+1F34 1F30 0301;\r
+1F35 1F31 0301;\r
+1F36 1F30 0342;\r
+1F37 1F31 0342;\r
+1F38 0399 0313;\r
+1F39 0399 0314;\r
+1F3A 1F38 0300;\r
+1F3B 1F39 0300;\r
+1F3C 1F38 0301;\r
+1F3D 1F39 0301;\r
+1F3E 1F38 0342;\r
+1F3F 1F39 0342;\r
+1F40 03BF 0313;\r
+1F41 03BF 0314;\r
+1F42 1F40 0300;\r
+1F43 1F41 0300;\r
+1F44 1F40 0301;\r
+1F45 1F41 0301;\r
+1F48 039F 0313;\r
+1F49 039F 0314;\r
+1F4A 1F48 0300;\r
+1F4B 1F49 0300;\r
+1F4C 1F48 0301;\r
+1F4D 1F49 0301;\r
+1F50 03C5 0313;\r
+1F51 03C5 0314;\r
+1F52 1F50 0300;\r
+1F53 1F51 0300;\r
+1F54 1F50 0301;\r
+1F55 1F51 0301;\r
+1F56 1F50 0342;\r
+1F57 1F51 0342;\r
+1F59 03A5 0314;\r
+1F5B 1F59 0300;\r
+1F5D 1F59 0301;\r
+1F5F 1F59 0342;\r
+1F60 03C9 0313;\r
+1F61 03C9 0314;\r
+1F62 1F60 0300;\r
+1F63 1F61 0300;\r
+1F64 1F60 0301;\r
+1F65 1F61 0301;\r
+1F66 1F60 0342;\r
+1F67 1F61 0342;\r
+1F68 03A9 0313;\r
+1F69 03A9 0314;\r
+1F6A 1F68 0300;\r
+1F6B 1F69 0300;\r
+1F6C 1F68 0301;\r
+1F6D 1F69 0301;\r
+1F6E 1F68 0342;\r
+1F6F 1F69 0342;\r
+1F70 03B1 0300;\r
+1F71 03AC 0000;\r
+1F72 03B5 0300;\r
+1F73 03AD 0000;\r
+1F74 03B7 0300;\r
+1F75 03AE 0000;\r
+1F76 03B9 0300;\r
+1F77 03AF 0000;\r
+1F78 03BF 0300;\r
+1F79 03CC 0000;\r
+1F7A 03C5 0300;\r
+1F7B 03CD 0000;\r
+1F7C 03C9 0300;\r
+1F7D 03CE 0000;\r
+1F80 1F00 0345;\r
+1F81 1F01 0345;\r
+1F82 1F02 0345;\r
+1F83 1F03 0345;\r
+1F84 1F04 0345;\r
+1F85 1F05 0345;\r
+1F86 1F06 0345;\r
+1F87 1F07 0345;\r
+1F88 1F08 0345;\r
+1F89 1F09 0345;\r
+1F8A 1F0A 0345;\r
+1F8B 1F0B 0345;\r
+1F8C 1F0C 0345;\r
+1F8D 1F0D 0345;\r
+1F8E 1F0E 0345;\r
+1F8F 1F0F 0345;\r
+1F90 1F20 0345;\r
+1F91 1F21 0345;\r
+1F92 1F22 0345;\r
+1F93 1F23 0345;\r
+1F94 1F24 0345;\r
+1F95 1F25 0345;\r
+1F96 1F26 0345;\r
+1F97 1F27 0345;\r
+1F98 1F28 0345;\r
+1F99 1F29 0345;\r
+1F9A 1F2A 0345;\r
+1F9B 1F2B 0345;\r
+1F9C 1F2C 0345;\r
+1F9D 1F2D 0345;\r
+1F9E 1F2E 0345;\r
+1F9F 1F2F 0345;\r
+1FA0 1F60 0345;\r
+1FA1 1F61 0345;\r
+1FA2 1F62 0345;\r
+1FA3 1F63 0345;\r
+1FA4 1F64 0345;\r
+1FA5 1F65 0345;\r
+1FA6 1F66 0345;\r
+1FA7 1F67 0345;\r
+1FA8 1F68 0345;\r
+1FA9 1F69 0345;\r
+1FAA 1F6A 0345;\r
+1FAB 1F6B 0345;\r
+1FAC 1F6C 0345;\r
+1FAD 1F6D 0345;\r
+1FAE 1F6E 0345;\r
+1FAF 1F6F 0345;\r
+1FB0 03B1 0306;\r
+1FB1 03B1 0304;\r
+1FB2 1F70 0345;\r
+1FB3 03B1 0345;\r
+1FB4 03AC 0345;\r
+1FB6 03B1 0342;\r
+1FB7 1FB6 0345;\r
+1FB8 0391 0306;\r
+1FB9 0391 0304;\r
+1FBA 0391 0300;\r
+1FBB 0386 0000;\r
+1FBC 0391 0345;\r
+1FBD 0020 0313;<compat>;\r
+1FBE 03B9 0000;\r
+1FBF 0020 0313;<compat>;\r
+1FC0 0020 0342;<compat>;\r
+1FC1 00A8 0342;\r
+1FC2 1F74 0345;\r
+1FC3 03B7 0345;\r
+1FC4 03AE 0345;\r
+1FC6 03B7 0342;\r
+1FC7 1FC6 0345;\r
+1FC8 0395 0300;\r
+1FC9 0388 0000;\r
+1FCA 0397 0300;\r
+1FCB 0389 0000;\r
+1FCC 0397 0345;\r
+1FCD 1FBF 0300;\r
+1FCE 1FBF 0301;\r
+1FCF 1FBF 0342;\r
+1FD0 03B9 0306;\r
+1FD1 03B9 0304;\r
+1FD2 03CA 0300;\r
+1FD3 0390 0000;\r
+1FD6 03B9 0342;\r
+1FD7 03CA 0342;\r
+1FD8 0399 0306;\r
+1FD9 0399 0304;\r
+1FDA 0399 0300;\r
+1FDB 038A 0000;\r
+1FDD 1FFE 0300;\r
+1FDE 1FFE 0301;\r
+1FDF 1FFE 0342;\r
+1FE0 03C5 0306;\r
+1FE1 03C5 0304;\r
+1FE2 03CB 0300;\r
+1FE3 03B0 0000;\r
+1FE4 03C1 0313;\r
+1FE5 03C1 0314;\r
+1FE6 03C5 0342;\r
+1FE7 03CB 0342;\r
+1FE8 03A5 0306;\r
+1FE9 03A5 0304;\r
+1FEA 03A5 0300;\r
+1FEB 038E 0000;\r
+1FEC 03A1 0314;\r
+1FED 00A8 0300;\r
+1FEE 0385 0000;\r
+1FEF 0060 0000;\r
+1FF2 1F7C 0345;\r
+1FF3 03C9 0345;\r
+1FF4 03CE 0345;\r
+1FF6 03C9 0342;\r
+1FF7 1FF6 0345;\r
+1FF8 039F 0300;\r
+1FF9 038C 0000;\r
+1FFA 03A9 0300;\r
+1FFB 038F 0000;\r
+1FFC 03A9 0345;\r
+1FFD 00B4 0000;\r
+1FFE 0020 0314;<compat>;\r
+2000 2002 0000;\r
+2001 2003 0000;\r
+2002 0020 0000;<compat>;\r
+2003 0020 0000;<compat>;\r
+2004 0020 0000;<compat>;\r
+2005 0020 0000;<compat>;\r
+2006 0020 0000;<compat>;\r
+2007 0020 0000;<noBreak>;\r
+2008 0020 0000;<compat>;\r
+2009 0020 0000;<compat>;\r
+200A 0020 0000;<compat>;\r
+2011 2010 0000;<noBreak>;\r
+2017 0020 0333;<compat>;\r
+2024 002E 0000;<compat>;\r
+2025 002E 002E;<compat>;\r
+2026 002E 002E;<compat>;\r
+202F 0020 0000;<noBreak>;\r
+2033 2032 2032;<compat>;\r
+2034 2032 2032;<compat>;\r
+2036 2035 2035;<compat>;\r
+2037 2035 2035;<compat>;\r
+203C 0021 0021;<compat>;\r
+203E 0020 0305;<compat>;\r
+2048 003F 0021;<compat>;\r
+2049 0021 003F;<compat>;\r
+2070 0030 0000;<super>;\r
+2074 0034 0000;<super>;\r
+2075 0035 0000;<super>;\r
+2076 0036 0000;<super>;\r
+2077 0037 0000;<super>;\r
+2078 0038 0000;<super>;\r
+2079 0039 0000;<super>;\r
+207A 002B 0000;<super>;\r
+207B 2212 0000;<super>;\r
+207C 003D 0000;<super>;\r
+207D 0028 0000;<super>;\r
+207E 0029 0000;<super>;\r
+207F 006E 0000;<super>;\r
+2080 0030 0000;<sub>;\r
+2081 0031 0000;<sub>;\r
+2082 0032 0000;<sub>;\r
+2083 0033 0000;<sub>;\r
+2084 0034 0000;<sub>;\r
+2085 0035 0000;<sub>;\r
+2086 0036 0000;<sub>;\r
+2087 0037 0000;<sub>;\r
+2088 0038 0000;<sub>;\r
+2089 0039 0000;<sub>;\r
+208A 002B 0000;<sub>;\r
+208B 2212 0000;<sub>;\r
+208C 003D 0000;<sub>;\r
+208D 0028 0000;<sub>;\r
+208E 0029 0000;<sub>;\r
+20A8 0052 0073;<compat>;\r
+2100 0061 002F;<compat>;\r
+2101 0061 002F;<compat>;\r
+2102 0043 0000;<font>;\r
+2103 00B0 0043;<compat>;\r
+2105 0063 002F;<compat>;\r
+2106 0063 002F;<compat>;\r
+2107 0190 0000;<compat>;\r
+2109 00B0 0046;<compat>;\r
+210A 0067 0000;<font>;\r
+210B 0048 0000;<font>;\r
+210C 0048 0000;<font>;\r
+210D 0048 0000;<font>;\r
+210E 0068 0000;<font>;\r
+210F 0127 0000;<font>;\r
+2110 0049 0000;<font>;\r
+2111 0049 0000;<font>;\r
+2112 004C 0000;<font>;\r
+2113 006C 0000;<font>;\r
+2115 004E 0000;<font>;\r
+2116 004E 006F;<compat>;\r
+2119 0050 0000;<font>;\r
+211A 0051 0000;<font>;\r
+211B 0052 0000;<font>;\r
+211C 0052 0000;<font>;\r
+211D 0052 0000;<font>;\r
+2120 0053 004D;<super>;\r
+2121 0054 0045;<compat>;\r
+2122 0054 004D;<super>;\r
+2124 005A 0000;<font>;\r
+2126 03A9 0000;\r
+2128 005A 0000;<font>;\r
+212A 004B 0000;\r
+212B 00C5 0000;\r
+212C 0042 0000;<font>;\r
+212D 0043 0000;<font>;\r
+212F 0065 0000;<font>;\r
+2130 0045 0000;<font>;\r
+2131 0046 0000;<font>;\r
+2133 004D 0000;<font>;\r
+2134 006F 0000;<font>;\r
+2135 05D0 0000;<compat>;\r
+2136 05D1 0000;<compat>;\r
+2137 05D2 0000;<compat>;\r
+2138 05D3 0000;<compat>;\r
+2139 0069 0000;<font>;\r
+2153 0031 2044;<fraction>;\r
+2154 0032 2044;<fraction>;\r
+2155 0031 2044;<fraction>;\r
+2156 0032 2044;<fraction>;\r
+2157 0033 2044;<fraction>;\r
+2158 0034 2044;<fraction>;\r
+2159 0031 2044;<fraction>;\r
+215A 0035 2044;<fraction>;\r
+215B 0031 2044;<fraction>;\r
+215C 0033 2044;<fraction>;\r
+215D 0035 2044;<fraction>;\r
+215E 0037 2044;<fraction>;\r
+215F 0031 2044;<fraction>;\r
+2160 0049 0000;<compat>;\r
+2161 0049 0049;<compat>;\r
+2162 0049 0049;<compat>;\r
+2163 0049 0056;<compat>;\r
+2164 0056 0000;<compat>;\r
+2165 0056 0049;<compat>;\r
+2166 0056 0049;<compat>;\r
+2167 0056 0049;<compat>;\r
+2168 0049 0058;<compat>;\r
+2169 0058 0000;<compat>;\r
+216A 0058 0049;<compat>;\r
+216B 0058 0049;<compat>;\r
+216C 004C 0000;<compat>;\r
+216D 0043 0000;<compat>;\r
+216E 0044 0000;<compat>;\r
+216F 004D 0000;<compat>;\r
+2170 0069 0000;<compat>;\r
+2171 0069 0069;<compat>;\r
+2172 0069 0069;<compat>;\r
+2173 0069 0076;<compat>;\r
+2174 0076 0000;<compat>;\r
+2175 0076 0069;<compat>;\r
+2176 0076 0069;<compat>;\r
+2177 0076 0069;<compat>;\r
+2178 0069 0078;<compat>;\r
+2179 0078 0000;<compat>;\r
+217A 0078 0069;<compat>;\r
+217B 0078 0069;<compat>;\r
+217C 006C 0000;<compat>;\r
+217D 0063 0000;<compat>;\r
+217E 0064 0000;<compat>;\r
+217F 006D 0000;<compat>;\r
+219A 2190 0338;\r
+219B 2192 0338;\r
+21AE 2194 0338;\r
+21CD 21D0 0338;\r
+21CE 21D4 0338;\r
+21CF 21D2 0338;\r
+2204 2203 0338;\r
+2209 2208 0338;\r
+220C 220B 0338;\r
+2224 2223 0338;\r
+2226 2225 0338;\r
+222C 222B 222B;<compat>;\r
+222D 222B 222B;<compat>;\r
+222F 222E 222E;<compat>;\r
+2230 222E 222E;<compat>;\r
+2241 223C 0338;\r
+2244 2243 0338;\r
+2247 2245 0338;\r
+2249 2248 0338;\r
+2260 003D 0338;\r
+2262 2261 0338;\r
+226D 224D 0338;\r
+226E 003C 0338;\r
+226F 003E 0338;\r
+2270 2264 0338;\r
+2271 2265 0338;\r
+2274 2272 0338;\r
+2275 2273 0338;\r
+2278 2276 0338;\r
+2279 2277 0338;\r
+2280 227A 0338;\r
+2281 227B 0338;\r
+2284 2282 0338;\r
+2285 2283 0338;\r
+2288 2286 0338;\r
+2289 2287 0338;\r
+22AC 22A2 0338;\r
+22AD 22A8 0338;\r
+22AE 22A9 0338;\r
+22AF 22AB 0338;\r
+22E0 227C 0338;\r
+22E1 227D 0338;\r
+22E2 2291 0338;\r
+22E3 2292 0338;\r
+22EA 22B2 0338;\r
+22EB 22B3 0338;\r
+22EC 22B4 0338;\r
+22ED 22B5 0338;\r
+2329 3008 0000;\r
+232A 3009 0000;\r
+2460 0031 0000;<circle>;\r
+2461 0032 0000;<circle>;\r
+2462 0033 0000;<circle>;\r
+2463 0034 0000;<circle>;\r
+2464 0035 0000;<circle>;\r
+2465 0036 0000;<circle>;\r
+2466 0037 0000;<circle>;\r
+2467 0038 0000;<circle>;\r
+2468 0039 0000;<circle>;\r
+2469 0031 0030;<circle>;\r
+246A 0031 0031;<circle>;\r
+246B 0031 0032;<circle>;\r
+246C 0031 0033;<circle>;\r
+246D 0031 0034;<circle>;\r
+246E 0031 0035;<circle>;\r
+246F 0031 0036;<circle>;\r
+2470 0031 0037;<circle>;\r
+2471 0031 0038;<circle>;\r
+2472 0031 0039;<circle>;\r
+2473 0032 0030;<circle>;\r
+2474 0028 0031;<compat>;\r
+2475 0028 0032;<compat>;\r
+2476 0028 0033;<compat>;\r
+2477 0028 0034;<compat>;\r
+2478 0028 0035;<compat>;\r
+2479 0028 0036;<compat>;\r
+247A 0028 0037;<compat>;\r
+247B 0028 0038;<compat>;\r
+247C 0028 0039;<compat>;\r
+247D 0028 0031;<compat>;\r
+247E 0028 0031;<compat>;\r
+247F 0028 0031;<compat>;\r
+2480 0028 0031;<compat>;\r
+2481 0028 0031;<compat>;\r
+2482 0028 0031;<compat>;\r
+2483 0028 0031;<compat>;\r
+2484 0028 0031;<compat>;\r
+2485 0028 0031;<compat>;\r
+2486 0028 0031;<compat>;\r
+2487 0028 0032;<compat>;\r
+2488 0031 002E;<compat>;\r
+2489 0032 002E;<compat>;\r
+248A 0033 002E;<compat>;\r
+248B 0034 002E;<compat>;\r
+248C 0035 002E;<compat>;\r
+248D 0036 002E;<compat>;\r
+248E 0037 002E;<compat>;\r
+248F 0038 002E;<compat>;\r
+2490 0039 002E;<compat>;\r
+2491 0031 0030;<compat>;\r
+2492 0031 0031;<compat>;\r
+2493 0031 0032;<compat>;\r
+2494 0031 0033;<compat>;\r
+2495 0031 0034;<compat>;\r
+2496 0031 0035;<compat>;\r
+2497 0031 0036;<compat>;\r
+2498 0031 0037;<compat>;\r
+2499 0031 0038;<compat>;\r
+249A 0031 0039;<compat>;\r
+249B 0032 0030;<compat>;\r
+249C 0028 0061;<compat>;\r
+249D 0028 0062;<compat>;\r
+249E 0028 0063;<compat>;\r
+249F 0028 0064;<compat>;\r
+24A0 0028 0065;<compat>;\r
+24A1 0028 0066;<compat>;\r
+24A2 0028 0067;<compat>;\r
+24A3 0028 0068;<compat>;\r
+24A4 0028 0069;<compat>;\r
+24A5 0028 006A;<compat>;\r
+24A6 0028 006B;<compat>;\r
+24A7 0028 006C;<compat>;\r
+24A8 0028 006D;<compat>;\r
+24A9 0028 006E;<compat>;\r
+24AA 0028 006F;<compat>;\r
+24AB 0028 0070;<compat>;\r
+24AC 0028 0071;<compat>;\r
+24AD 0028 0072;<compat>;\r
+24AE 0028 0073;<compat>;\r
+24AF 0028 0074;<compat>;\r
+24B0 0028 0075;<compat>;\r
+24B1 0028 0076;<compat>;\r
+24B2 0028 0077;<compat>;\r
+24B3 0028 0078;<compat>;\r
+24B4 0028 0079;<compat>;\r
+24B5 0028 007A;<compat>;\r
+24B6 0041 0000;<circle>;\r
+24B7 0042 0000;<circle>;\r
+24B8 0043 0000;<circle>;\r
+24B9 0044 0000;<circle>;\r
+24BA 0045 0000;<circle>;\r
+24BB 0046 0000;<circle>;\r
+24BC 0047 0000;<circle>;\r
+24BD 0048 0000;<circle>;\r
+24BE 0049 0000;<circle>;\r
+24BF 004A 0000;<circle>;\r
+24C0 004B 0000;<circle>;\r
+24C1 004C 0000;<circle>;\r
+24C2 004D 0000;<circle>;\r
+24C3 004E 0000;<circle>;\r
+24C4 004F 0000;<circle>;\r
+24C5 0050 0000;<circle>;\r
+24C6 0051 0000;<circle>;\r
+24C7 0052 0000;<circle>;\r
+24C8 0053 0000;<circle>;\r
+24C9 0054 0000;<circle>;\r
+24CA 0055 0000;<circle>;\r
+24CB 0056 0000;<circle>;\r
+24CC 0057 0000;<circle>;\r
+24CD 0058 0000;<circle>;\r
+24CE 0059 0000;<circle>;\r
+24CF 005A 0000;<circle>;\r
+24D0 0061 0000;<circle>;\r
+24D1 0062 0000;<circle>;\r
+24D2 0063 0000;<circle>;\r
+24D3 0064 0000;<circle>;\r
+24D4 0065 0000;<circle>;\r
+24D5 0066 0000;<circle>;\r
+24D6 0067 0000;<circle>;\r
+24D7 0068 0000;<circle>;\r
+24D8 0069 0000;<circle>;\r
+24D9 006A 0000;<circle>;\r
+24DA 006B 0000;<circle>;\r
+24DB 006C 0000;<circle>;\r
+24DC 006D 0000;<circle>;\r
+24DD 006E 0000;<circle>;\r
+24DE 006F 0000;<circle>;\r
+24DF 0070 0000;<circle>;\r
+24E0 0071 0000;<circle>;\r
+24E1 0072 0000;<circle>;\r
+24E2 0073 0000;<circle>;\r
+24E3 0074 0000;<circle>;\r
+24E4 0075 0000;<circle>;\r
+24E5 0076 0000;<circle>;\r
+24E6 0077 0000;<circle>;\r
+24E7 0078 0000;<circle>;\r
+24E8 0079 0000;<circle>;\r
+24E9 007A 0000;<circle>;\r
+24EA 0030 0000;<circle>;\r
+2E9F 6BCD 0000;<compat>;\r
+2EF3 9F9F 0000;<compat>;\r
+2F00 4E00 0000;<compat>;\r
+2F01 4E28 0000;<compat>;\r
+2F02 4E36 0000;<compat>;\r
+2F03 4E3F 0000;<compat>;\r
+2F04 4E59 0000;<compat>;\r
+2F05 4E85 0000;<compat>;\r
+2F06 4E8C 0000;<compat>;\r
+2F07 4EA0 0000;<compat>;\r
+2F08 4EBA 0000;<compat>;\r
+2F09 513F 0000;<compat>;\r
+2F0A 5165 0000;<compat>;\r
+2F0B 516B 0000;<compat>;\r
+2F0C 5182 0000;<compat>;\r
+2F0D 5196 0000;<compat>;\r
+2F0E 51AB 0000;<compat>;\r
+2F0F 51E0 0000;<compat>;\r
+2F10 51F5 0000;<compat>;\r
+2F11 5200 0000;<compat>;\r
+2F12 529B 0000;<compat>;\r
+2F13 52F9 0000;<compat>;\r
+2F14 5315 0000;<compat>;\r
+2F15 531A 0000;<compat>;\r
+2F16 5338 0000;<compat>;\r
+2F17 5341 0000;<compat>;\r
+2F18 535C 0000;<compat>;\r
+2F19 5369 0000;<compat>;\r
+2F1A 5382 0000;<compat>;\r
+2F1B 53B6 0000;<compat>;\r
+2F1C 53C8 0000;<compat>;\r
+2F1D 53E3 0000;<compat>;\r
+2F1E 56D7 0000;<compat>;\r
+2F1F 571F 0000;<compat>;\r
+2F20 58EB 0000;<compat>;\r
+2F21 5902 0000;<compat>;\r
+2F22 590A 0000;<compat>;\r
+2F23 5915 0000;<compat>;\r
+2F24 5927 0000;<compat>;\r
+2F25 5973 0000;<compat>;\r
+2F26 5B50 0000;<compat>;\r
+2F27 5B80 0000;<compat>;\r
+2F28 5BF8 0000;<compat>;\r
+2F29 5C0F 0000;<compat>;\r
+2F2A 5C22 0000;<compat>;\r
+2F2B 5C38 0000;<compat>;\r
+2F2C 5C6E 0000;<compat>;\r
+2F2D 5C71 0000;<compat>;\r
+2F2E 5DDB 0000;<compat>;\r
+2F2F 5DE5 0000;<compat>;\r
+2F30 5DF1 0000;<compat>;\r
+2F31 5DFE 0000;<compat>;\r
+2F32 5E72 0000;<compat>;\r
+2F33 5E7A 0000;<compat>;\r
+2F34 5E7F 0000;<compat>;\r
+2F35 5EF4 0000;<compat>;\r
+2F36 5EFE 0000;<compat>;\r
+2F37 5F0B 0000;<compat>;\r
+2F38 5F13 0000;<compat>;\r
+2F39 5F50 0000;<compat>;\r
+2F3A 5F61 0000;<compat>;\r
+2F3B 5F73 0000;<compat>;\r
+2F3C 5FC3 0000;<compat>;\r
+2F3D 6208 0000;<compat>;\r
+2F3E 6236 0000;<compat>;\r
+2F3F 624B 0000;<compat>;\r
+2F40 652F 0000;<compat>;\r
+2F41 6534 0000;<compat>;\r
+2F42 6587 0000;<compat>;\r
+2F43 6597 0000;<compat>;\r
+2F44 65A4 0000;<compat>;\r
+2F45 65B9 0000;<compat>;\r
+2F46 65E0 0000;<compat>;\r
+2F47 65E5 0000;<compat>;\r
+2F48 66F0 0000;<compat>;\r
+2F49 6708 0000;<compat>;\r
+2F4A 6728 0000;<compat>;\r
+2F4B 6B20 0000;<compat>;\r
+2F4C 6B62 0000;<compat>;\r
+2F4D 6B79 0000;<compat>;\r
+2F4E 6BB3 0000;<compat>;\r
+2F4F 6BCB 0000;<compat>;\r
+2F50 6BD4 0000;<compat>;\r
+2F51 6BDB 0000;<compat>;\r
+2F52 6C0F 0000;<compat>;\r
+2F53 6C14 0000;<compat>;\r
+2F54 6C34 0000;<compat>;\r
+2F55 706B 0000;<compat>;\r
+2F56 722A 0000;<compat>;\r
+2F57 7236 0000;<compat>;\r
+2F58 723B 0000;<compat>;\r
+2F59 723F 0000;<compat>;\r
+2F5A 7247 0000;<compat>;\r
+2F5B 7259 0000;<compat>;\r
+2F5C 725B 0000;<compat>;\r
+2F5D 72AC 0000;<compat>;\r
+2F5E 7384 0000;<compat>;\r
+2F5F 7389 0000;<compat>;\r
+2F60 74DC 0000;<compat>;\r
+2F61 74E6 0000;<compat>;\r
+2F62 7518 0000;<compat>;\r
+2F63 751F 0000;<compat>;\r
+2F64 7528 0000;<compat>;\r
+2F65 7530 0000;<compat>;\r
+2F66 758B 0000;<compat>;\r
+2F67 7592 0000;<compat>;\r
+2F68 7676 0000;<compat>;\r
+2F69 767D 0000;<compat>;\r
+2F6A 76AE 0000;<compat>;\r
+2F6B 76BF 0000;<compat>;\r
+2F6C 76EE 0000;<compat>;\r
+2F6D 77DB 0000;<compat>;\r
+2F6E 77E2 0000;<compat>;\r
+2F6F 77F3 0000;<compat>;\r
+2F70 793A 0000;<compat>;\r
+2F71 79B8 0000;<compat>;\r
+2F72 79BE 0000;<compat>;\r
+2F73 7A74 0000;<compat>;\r
+2F74 7ACB 0000;<compat>;\r
+2F75 7AF9 0000;<compat>;\r
+2F76 7C73 0000;<compat>;\r
+2F77 7CF8 0000;<compat>;\r
+2F78 7F36 0000;<compat>;\r
+2F79 7F51 0000;<compat>;\r
+2F7A 7F8A 0000;<compat>;\r
+2F7B 7FBD 0000;<compat>;\r
+2F7C 8001 0000;<compat>;\r
+2F7D 800C 0000;<compat>;\r
+2F7E 8012 0000;<compat>;\r
+2F7F 8033 0000;<compat>;\r
+2F80 807F 0000;<compat>;\r
+2F81 8089 0000;<compat>;\r
+2F82 81E3 0000;<compat>;\r
+2F83 81EA 0000;<compat>;\r
+2F84 81F3 0000;<compat>;\r
+2F85 81FC 0000;<compat>;\r
+2F86 820C 0000;<compat>;\r
+2F87 821B 0000;<compat>;\r
+2F88 821F 0000;<compat>;\r
+2F89 826E 0000;<compat>;\r
+2F8A 8272 0000;<compat>;\r
+2F8B 8278 0000;<compat>;\r
+2F8C 864D 0000;<compat>;\r
+2F8D 866B 0000;<compat>;\r
+2F8E 8840 0000;<compat>;\r
+2F8F 884C 0000;<compat>;\r
+2F90 8863 0000;<compat>;\r
+2F91 897E 0000;<compat>;\r
+2F92 898B 0000;<compat>;\r
+2F93 89D2 0000;<compat>;\r
+2F94 8A00 0000;<compat>;\r
+2F95 8C37 0000;<compat>;\r
+2F96 8C46 0000;<compat>;\r
+2F97 8C55 0000;<compat>;\r
+2F98 8C78 0000;<compat>;\r
+2F99 8C9D 0000;<compat>;\r
+2F9A 8D64 0000;<compat>;\r
+2F9B 8D70 0000;<compat>;\r
+2F9C 8DB3 0000;<compat>;\r
+2F9D 8EAB 0000;<compat>;\r
+2F9E 8ECA 0000;<compat>;\r
+2F9F 8F9B 0000;<compat>;\r
+2FA0 8FB0 0000;<compat>;\r
+2FA1 8FB5 0000;<compat>;\r
+2FA2 9091 0000;<compat>;\r
+2FA3 9149 0000;<compat>;\r
+2FA4 91C6 0000;<compat>;\r
+2FA5 91CC 0000;<compat>;\r
+2FA6 91D1 0000;<compat>;\r
+2FA7 9577 0000;<compat>;\r
+2FA8 9580 0000;<compat>;\r
+2FA9 961C 0000;<compat>;\r
+2FAA 96B6 0000;<compat>;\r
+2FAB 96B9 0000;<compat>;\r
+2FAC 96E8 0000;<compat>;\r
+2FAD 9751 0000;<compat>;\r
+2FAE 975E 0000;<compat>;\r
+2FAF 9762 0000;<compat>;\r
+2FB0 9769 0000;<compat>;\r
+2FB1 97CB 0000;<compat>;\r
+2FB2 97ED 0000;<compat>;\r
+2FB3 97F3 0000;<compat>;\r
+2FB4 9801 0000;<compat>;\r
+2FB5 98A8 0000;<compat>;\r
+2FB6 98DB 0000;<compat>;\r
+2FB7 98DF 0000;<compat>;\r
+2FB8 9996 0000;<compat>;\r
+2FB9 9999 0000;<compat>;\r
+2FBA 99AC 0000;<compat>;\r
+2FBB 9AA8 0000;<compat>;\r
+2FBC 9AD8 0000;<compat>;\r
+2FBD 9ADF 0000;<compat>;\r
+2FBE 9B25 0000;<compat>;\r
+2FBF 9B2F 0000;<compat>;\r
+2FC0 9B32 0000;<compat>;\r
+2FC1 9B3C 0000;<compat>;\r
+2FC2 9B5A 0000;<compat>;\r
+2FC3 9CE5 0000;<compat>;\r
+2FC4 9E75 0000;<compat>;\r
+2FC5 9E7F 0000;<compat>;\r
+2FC6 9EA5 0000;<compat>;\r
+2FC7 9EBB 0000;<compat>;\r
+2FC8 9EC3 0000;<compat>;\r
+2FC9 9ECD 0000;<compat>;\r
+2FCA 9ED1 0000;<compat>;\r
+2FCB 9EF9 0000;<compat>;\r
+2FCC 9EFD 0000;<compat>;\r
+2FCD 9F0E 0000;<compat>;\r
+2FCE 9F13 0000;<compat>;\r
+2FCF 9F20 0000;<compat>;\r
+2FD0 9F3B 0000;<compat>;\r
+2FD1 9F4A 0000;<compat>;\r
+2FD2 9F52 0000;<compat>;\r
+2FD3 9F8D 0000;<compat>;\r
+2FD4 9F9C 0000;<compat>;\r
+2FD5 9FA0 0000;<compat>;\r
+3000 0020 0000;<wide>;\r
+3036 3012 0000;<compat>;\r
+3038 5341 0000;<compat>;\r
+3039 5344 0000;<compat>;\r
+303A 5345 0000;<compat>;\r
+304C 304B 3099;\r
+304E 304D 3099;\r
+3050 304F 3099;\r
+3052 3051 3099;\r
+3054 3053 3099;\r
+3056 3055 3099;\r
+3058 3057 3099;\r
+305A 3059 3099;\r
+305C 305B 3099;\r
+305E 305D 3099;\r
+3060 305F 3099;\r
+3062 3061 3099;\r
+3065 3064 3099;\r
+3067 3066 3099;\r
+3069 3068 3099;\r
+3070 306F 3099;\r
+3071 306F 309A;\r
+3073 3072 3099;\r
+3074 3072 309A;\r
+3076 3075 3099;\r
+3077 3075 309A;\r
+3079 3078 3099;\r
+307A 3078 309A;\r
+307C 307B 3099;\r
+307D 307B 309A;\r
+3094 3046 3099;\r
+309B 0020 3099;<compat>;\r
+309C 0020 309A;<compat>;\r
+309E 309D 3099;\r
+30AC 30AB 3099;\r
+30AE 30AD 3099;\r
+30B0 30AF 3099;\r
+30B2 30B1 3099;\r
+30B4 30B3 3099;\r
+30B6 30B5 3099;\r
+30B8 30B7 3099;\r
+30BA 30B9 3099;\r
+30BC 30BB 3099;\r
+30BE 30BD 3099;\r
+30C0 30BF 3099;\r
+30C2 30C1 3099;\r
+30C5 30C4 3099;\r
+30C7 30C6 3099;\r
+30C9 30C8 3099;\r
+30D0 30CF 3099;\r
+30D1 30CF 309A;\r
+30D3 30D2 3099;\r
+30D4 30D2 309A;\r
+30D6 30D5 3099;\r
+30D7 30D5 309A;\r
+30D9 30D8 3099;\r
+30DA 30D8 309A;\r
+30DC 30DB 3099;\r
+30DD 30DB 309A;\r
+30F4 30A6 3099;\r
+30F7 30EF 3099;\r
+30F8 30F0 3099;\r
+30F9 30F1 3099;\r
+30FA 30F2 3099;\r
+30FE 30FD 3099;\r
+3131 1100 0000;<compat>;\r
+3132 1101 0000;<compat>;\r
+3133 11AA 0000;<compat>;\r
+3134 1102 0000;<compat>;\r
+3135 11AC 0000;<compat>;\r
+3136 11AD 0000;<compat>;\r
+3137 1103 0000;<compat>;\r
+3138 1104 0000;<compat>;\r
+3139 1105 0000;<compat>;\r
+313A 11B0 0000;<compat>;\r
+313B 11B1 0000;<compat>;\r
+313C 11B2 0000;<compat>;\r
+313D 11B3 0000;<compat>;\r
+313E 11B4 0000;<compat>;\r
+313F 11B5 0000;<compat>;\r
+3140 111A 0000;<compat>;\r
+3141 1106 0000;<compat>;\r
+3142 1107 0000;<compat>;\r
+3143 1108 0000;<compat>;\r
+3144 1121 0000;<compat>;\r
+3145 1109 0000;<compat>;\r
+3146 110A 0000;<compat>;\r
+3147 110B 0000;<compat>;\r
+3148 110C 0000;<compat>;\r
+3149 110D 0000;<compat>;\r
+314A 110E 0000;<compat>;\r
+314B 110F 0000;<compat>;\r
+314C 1110 0000;<compat>;\r
+314D 1111 0000;<compat>;\r
+314E 1112 0000;<compat>;\r
+314F 1161 0000;<compat>;\r
+3150 1162 0000;<compat>;\r
+3151 1163 0000;<compat>;\r
+3152 1164 0000;<compat>;\r
+3153 1165 0000;<compat>;\r
+3154 1166 0000;<compat>;\r
+3155 1167 0000;<compat>;\r
+3156 1168 0000;<compat>;\r
+3157 1169 0000;<compat>;\r
+3158 116A 0000;<compat>;\r
+3159 116B 0000;<compat>;\r
+315A 116C 0000;<compat>;\r
+315B 116D 0000;<compat>;\r
+315C 116E 0000;<compat>;\r
+315D 116F 0000;<compat>;\r
+315E 1170 0000;<compat>;\r
+315F 1171 0000;<compat>;\r
+3160 1172 0000;<compat>;\r
+3161 1173 0000;<compat>;\r
+3162 1174 0000;<compat>;\r
+3163 1175 0000;<compat>;\r
+3164 1160 0000;<compat>;\r
+3165 1114 0000;<compat>;\r
+3166 1115 0000;<compat>;\r
+3167 11C7 0000;<compat>;\r
+3168 11C8 0000;<compat>;\r
+3169 11CC 0000;<compat>;\r
+316A 11CE 0000;<compat>;\r
+316B 11D3 0000;<compat>;\r
+316C 11D7 0000;<compat>;\r
+316D 11D9 0000;<compat>;\r
+316E 111C 0000;<compat>;\r
+316F 11DD 0000;<compat>;\r
+3170 11DF 0000;<compat>;\r
+3171 111D 0000;<compat>;\r
+3172 111E 0000;<compat>;\r
+3173 1120 0000;<compat>;\r
+3174 1122 0000;<compat>;\r
+3175 1123 0000;<compat>;\r
+3176 1127 0000;<compat>;\r
+3177 1129 0000;<compat>;\r
+3178 112B 0000;<compat>;\r
+3179 112C 0000;<compat>;\r
+317A 112D 0000;<compat>;\r
+317B 112E 0000;<compat>;\r
+317C 112F 0000;<compat>;\r
+317D 1132 0000;<compat>;\r
+317E 1136 0000;<compat>;\r
+317F 1140 0000;<compat>;\r
+3180 1147 0000;<compat>;\r
+3181 114C 0000;<compat>;\r
+3182 11F1 0000;<compat>;\r
+3183 11F2 0000;<compat>;\r
+3184 1157 0000;<compat>;\r
+3185 1158 0000;<compat>;\r
+3186 1159 0000;<compat>;\r
+3187 1184 0000;<compat>;\r
+3188 1185 0000;<compat>;\r
+3189 1188 0000;<compat>;\r
+318A 1191 0000;<compat>;\r
+318B 1192 0000;<compat>;\r
+318C 1194 0000;<compat>;\r
+318D 119E 0000;<compat>;\r
+318E 11A1 0000;<compat>;\r
+3192 4E00 0000;<super>;\r
+3193 4E8C 0000;<super>;\r
+3194 4E09 0000;<super>;\r
+3195 56DB 0000;<super>;\r
+3196 4E0A 0000;<super>;\r
+3197 4E2D 0000;<super>;\r
+3198 4E0B 0000;<super>;\r
+3199 7532 0000;<super>;\r
+319A 4E59 0000;<super>;\r
+319B 4E19 0000;<super>;\r
+319C 4E01 0000;<super>;\r
+319D 5929 0000;<super>;\r
+319E 5730 0000;<super>;\r
+319F 4EBA 0000;<super>;\r
+3200 0028 1100;<compat>;\r
+3201 0028 1102;<compat>;\r
+3202 0028 1103;<compat>;\r
+3203 0028 1105;<compat>;\r
+3204 0028 1106;<compat>;\r
+3205 0028 1107;<compat>;\r
+3206 0028 1109;<compat>;\r
+3207 0028 110B;<compat>;\r
+3208 0028 110C;<compat>;\r
+3209 0028 110E;<compat>;\r
+320A 0028 110F;<compat>;\r
+320B 0028 1110;<compat>;\r
+320C 0028 1111;<compat>;\r
+320D 0028 1112;<compat>;\r
+320E 0028 1100;<compat>;\r
+320F 0028 1102;<compat>;\r
+3210 0028 1103;<compat>;\r
+3211 0028 1105;<compat>;\r
+3212 0028 1106;<compat>;\r
+3213 0028 1107;<compat>;\r
+3214 0028 1109;<compat>;\r
+3215 0028 110B;<compat>;\r
+3216 0028 110C;<compat>;\r
+3217 0028 110E;<compat>;\r
+3218 0028 110F;<compat>;\r
+3219 0028 1110;<compat>;\r
+321A 0028 1111;<compat>;\r
+321B 0028 1112;<compat>;\r
+321C 0028 110C;<compat>;\r
+3220 0028 4E00;<compat>;\r
+3221 0028 4E8C;<compat>;\r
+3222 0028 4E09;<compat>;\r
+3223 0028 56DB;<compat>;\r
+3224 0028 4E94;<compat>;\r
+3225 0028 516D;<compat>;\r
+3226 0028 4E03;<compat>;\r
+3227 0028 516B;<compat>;\r
+3228 0028 4E5D;<compat>;\r
+3229 0028 5341;<compat>;\r
+322A 0028 6708;<compat>;\r
+322B 0028 706B;<compat>;\r
+322C 0028 6C34;<compat>;\r
+322D 0028 6728;<compat>;\r
+322E 0028 91D1;<compat>;\r
+322F 0028 571F;<compat>;\r
+3230 0028 65E5;<compat>;\r
+3231 0028 682A;<compat>;\r
+3232 0028 6709;<compat>;\r
+3233 0028 793E;<compat>;\r
+3234 0028 540D;<compat>;\r
+3235 0028 7279;<compat>;\r
+3236 0028 8CA1;<compat>;\r
+3237 0028 795D;<compat>;\r
+3238 0028 52B4;<compat>;\r
+3239 0028 4EE3;<compat>;\r
+323A 0028 547C;<compat>;\r
+323B 0028 5B66;<compat>;\r
+323C 0028 76E3;<compat>;\r
+323D 0028 4F01;<compat>;\r
+323E 0028 8CC7;<compat>;\r
+323F 0028 5354;<compat>;\r
+3240 0028 796D;<compat>;\r
+3241 0028 4F11;<compat>;\r
+3242 0028 81EA;<compat>;\r
+3243 0028 81F3;<compat>;\r
+3260 1100 0000;<circle>;\r
+3261 1102 0000;<circle>;\r
+3262 1103 0000;<circle>;\r
+3263 1105 0000;<circle>;\r
+3264 1106 0000;<circle>;\r
+3265 1107 0000;<circle>;\r
+3266 1109 0000;<circle>;\r
+3267 110B 0000;<circle>;\r
+3268 110C 0000;<circle>;\r
+3269 110E 0000;<circle>;\r
+326A 110F 0000;<circle>;\r
+326B 1110 0000;<circle>;\r
+326C 1111 0000;<circle>;\r
+326D 1112 0000;<circle>;\r
+326E 1100 1161;<circle>;\r
+326F 1102 1161;<circle>;\r
+3270 1103 1161;<circle>;\r
+3271 1105 1161;<circle>;\r
+3272 1106 1161;<circle>;\r
+3273 1107 1161;<circle>;\r
+3274 1109 1161;<circle>;\r
+3275 110B 1161;<circle>;\r
+3276 110C 1161;<circle>;\r
+3277 110E 1161;<circle>;\r
+3278 110F 1161;<circle>;\r
+3279 1110 1161;<circle>;\r
+327A 1111 1161;<circle>;\r
+327B 1112 1161;<circle>;\r
+3280 4E00 0000;<circle>;\r
+3281 4E8C 0000;<circle>;\r
+3282 4E09 0000;<circle>;\r
+3283 56DB 0000;<circle>;\r
+3284 4E94 0000;<circle>;\r
+3285 516D 0000;<circle>;\r
+3286 4E03 0000;<circle>;\r
+3287 516B 0000;<circle>;\r
+3288 4E5D 0000;<circle>;\r
+3289 5341 0000;<circle>;\r
+328A 6708 0000;<circle>;\r
+328B 706B 0000;<circle>;\r
+328C 6C34 0000;<circle>;\r
+328D 6728 0000;<circle>;\r
+328E 91D1 0000;<circle>;\r
+328F 571F 0000;<circle>;\r
+3290 65E5 0000;<circle>;\r
+3291 682A 0000;<circle>;\r
+3292 6709 0000;<circle>;\r
+3293 793E 0000;<circle>;\r
+3294 540D 0000;<circle>;\r
+3295 7279 0000;<circle>;\r
+3296 8CA1 0000;<circle>;\r
+3297 795D 0000;<circle>;\r
+3298 52B4 0000;<circle>;\r
+3299 79D8 0000;<circle>;\r
+329A 7537 0000;<circle>;\r
+329B 5973 0000;<circle>;\r
+329C 9069 0000;<circle>;\r
+329D 512A 0000;<circle>;\r
+329E 5370 0000;<circle>;\r
+329F 6CE8 0000;<circle>;\r
+32A0 9805 0000;<circle>;\r
+32A1 4F11 0000;<circle>;\r
+32A2 5199 0000;<circle>;\r
+32A3 6B63 0000;<circle>;\r
+32A4 4E0A 0000;<circle>;\r
+32A5 4E2D 0000;<circle>;\r
+32A6 4E0B 0000;<circle>;\r
+32A7 5DE6 0000;<circle>;\r
+32A8 53F3 0000;<circle>;\r
+32A9 533B 0000;<circle>;\r
+32AA 5B97 0000;<circle>;\r
+32AB 5B66 0000;<circle>;\r
+32AC 76E3 0000;<circle>;\r
+32AD 4F01 0000;<circle>;\r
+32AE 8CC7 0000;<circle>;\r
+32AF 5354 0000;<circle>;\r
+32B0 591C 0000;<circle>;\r
+32C0 0031 6708;<compat>;\r
+32C1 0032 6708;<compat>;\r
+32C2 0033 6708;<compat>;\r
+32C3 0034 6708;<compat>;\r
+32C4 0035 6708;<compat>;\r
+32C5 0036 6708;<compat>;\r
+32C6 0037 6708;<compat>;\r
+32C7 0038 6708;<compat>;\r
+32C8 0039 6708;<compat>;\r
+32C9 0031 0030;<compat>;\r
+32CA 0031 0031;<compat>;\r
+32CB 0031 0032;<compat>;\r
+32D0 30A2 0000;<circle>;\r
+32D1 30A4 0000;<circle>;\r
+32D2 30A6 0000;<circle>;\r
+32D3 30A8 0000;<circle>;\r
+32D4 30AA 0000;<circle>;\r
+32D5 30AB 0000;<circle>;\r
+32D6 30AD 0000;<circle>;\r
+32D7 30AF 0000;<circle>;\r
+32D8 30B1 0000;<circle>;\r
+32D9 30B3 0000;<circle>;\r
+32DA 30B5 0000;<circle>;\r
+32DB 30B7 0000;<circle>;\r
+32DC 30B9 0000;<circle>;\r
+32DD 30BB 0000;<circle>;\r
+32DE 30BD 0000;<circle>;\r
+32DF 30BF 0000;<circle>;\r
+32E0 30C1 0000;<circle>;\r
+32E1 30C4 0000;<circle>;\r
+32E2 30C6 0000;<circle>;\r
+32E3 30C8 0000;<circle>;\r
+32E4 30CA 0000;<circle>;\r
+32E5 30CB 0000;<circle>;\r
+32E6 30CC 0000;<circle>;\r
+32E7 30CD 0000;<circle>;\r
+32E8 30CE 0000;<circle>;\r
+32E9 30CF 0000;<circle>;\r
+32EA 30D2 0000;<circle>;\r
+32EB 30D5 0000;<circle>;\r
+32EC 30D8 0000;<circle>;\r
+32ED 30DB 0000;<circle>;\r
+32EE 30DE 0000;<circle>;\r
+32EF 30DF 0000;<circle>;\r
+32F0 30E0 0000;<circle>;\r
+32F1 30E1 0000;<circle>;\r
+32F2 30E2 0000;<circle>;\r
+32F3 30E4 0000;<circle>;\r
+32F4 30E6 0000;<circle>;\r
+32F5 30E8 0000;<circle>;\r
+32F6 30E9 0000;<circle>;\r
+32F7 30EA 0000;<circle>;\r
+32F8 30EB 0000;<circle>;\r
+32F9 30EC 0000;<circle>;\r
+32FA 30ED 0000;<circle>;\r
+32FB 30EF 0000;<circle>;\r
+32FC 30F0 0000;<circle>;\r
+32FD 30F1 0000;<circle>;\r
+32FE 30F2 0000;<circle>;\r
+3300 30A2 30D1;<square>;\r
+3301 30A2 30EB;<square>;\r
+3302 30A2 30F3;<square>;\r
+3303 30A2 30FC;<square>;\r
+3304 30A4 30CB;<square>;\r
+3305 30A4 30F3;<square>;\r
+3306 30A6 30A9;<square>;\r
+3307 30A8 30B9;<square>;\r
+3308 30A8 30FC;<square>;\r
+3309 30AA 30F3;<square>;\r
+330A 30AA 30FC;<square>;\r
+330B 30AB 30A4;<square>;\r
+330C 30AB 30E9;<square>;\r
+330D 30AB 30ED;<square>;\r
+330E 30AC 30ED;<square>;\r
+330F 30AC 30F3;<square>;\r
+3310 30AE 30AC;<square>;\r
+3311 30AE 30CB;<square>;\r
+3312 30AD 30E5;<square>;\r
+3313 30AE 30EB;<square>;\r
+3314 30AD 30ED;<square>;\r
+3315 30AD 30ED;<square>;\r
+3316 30AD 30ED;<square>;\r
+3317 30AD 30ED;<square>;\r
+3318 30B0 30E9;<square>;\r
+3319 30B0 30E9;<square>;\r
+331A 30AF 30EB;<square>;\r
+331B 30AF 30ED;<square>;\r
+331C 30B1 30FC;<square>;\r
+331D 30B3 30EB;<square>;\r
+331E 30B3 30FC;<square>;\r
+331F 30B5 30A4;<square>;\r
+3320 30B5 30F3;<square>;\r
+3321 30B7 30EA;<square>;\r
+3322 30BB 30F3;<square>;\r
+3323 30BB 30F3;<square>;\r
+3324 30C0 30FC;<square>;\r
+3325 30C7 30B7;<square>;\r
+3326 30C9 30EB;<square>;\r
+3327 30C8 30F3;<square>;\r
+3328 30CA 30CE;<square>;\r
+3329 30CE 30C3;<square>;\r
+332A 30CF 30A4;<square>;\r
+332B 30D1 30FC;<square>;\r
+332C 30D1 30FC;<square>;\r
+332D 30D0 30FC;<square>;\r
+332E 30D4 30A2;<square>;\r
+332F 30D4 30AF;<square>;\r
+3330 30D4 30B3;<square>;\r
+3331 30D3 30EB;<square>;\r
+3332 30D5 30A1;<square>;\r
+3333 30D5 30A3;<square>;\r
+3334 30D6 30C3;<square>;\r
+3335 30D5 30E9;<square>;\r
+3336 30D8 30AF;<square>;\r
+3337 30DA 30BD;<square>;\r
+3338 30DA 30CB;<square>;\r
+3339 30D8 30EB;<square>;\r
+333A 30DA 30F3;<square>;\r
+333B 30DA 30FC;<square>;\r
+333C 30D9 30FC;<square>;\r
+333D 30DD 30A4;<square>;\r
+333E 30DC 30EB;<square>;\r
+333F 30DB 30F3;<square>;\r
+3340 30DD 30F3;<square>;\r
+3341 30DB 30FC;<square>;\r
+3342 30DB 30FC;<square>;\r
+3343 30DE 30A4;<square>;\r
+3344 30DE 30A4;<square>;\r
+3345 30DE 30C3;<square>;\r
+3346 30DE 30EB;<square>;\r
+3347 30DE 30F3;<square>;\r
+3348 30DF 30AF;<square>;\r
+3349 30DF 30EA;<square>;\r
+334A 30DF 30EA;<square>;\r
+334B 30E1 30AC;<square>;\r
+334C 30E1 30AC;<square>;\r
+334D 30E1 30FC;<square>;\r
+334E 30E4 30FC;<square>;\r
+334F 30E4 30FC;<square>;\r
+3350 30E6 30A2;<square>;\r
+3351 30EA 30C3;<square>;\r
+3352 30EA 30E9;<square>;\r
+3353 30EB 30D4;<square>;\r
+3354 30EB 30FC;<square>;\r
+3355 30EC 30E0;<square>;\r
+3356 30EC 30F3;<square>;\r
+3357 30EF 30C3;<square>;\r
+3358 0030 70B9;<compat>;\r
+3359 0031 70B9;<compat>;\r
+335A 0032 70B9;<compat>;\r
+335B 0033 70B9;<compat>;\r
+335C 0034 70B9;<compat>;\r
+335D 0035 70B9;<compat>;\r
+335E 0036 70B9;<compat>;\r
+335F 0037 70B9;<compat>;\r
+3360 0038 70B9;<compat>;\r
+3361 0039 70B9;<compat>;\r
+3362 0031 0030;<compat>;\r
+3363 0031 0031;<compat>;\r
+3364 0031 0032;<compat>;\r
+3365 0031 0033;<compat>;\r
+3366 0031 0034;<compat>;\r
+3367 0031 0035;<compat>;\r
+3368 0031 0036;<compat>;\r
+3369 0031 0037;<compat>;\r
+336A 0031 0038;<compat>;\r
+336B 0031 0039;<compat>;\r
+336C 0032 0030;<compat>;\r
+336D 0032 0031;<compat>;\r
+336E 0032 0032;<compat>;\r
+336F 0032 0033;<compat>;\r
+3370 0032 0034;<compat>;\r
+3371 0068 0050;<square>;\r
+3372 0064 0061;<square>;\r
+3373 0041 0055;<square>;\r
+3374 0062 0061;<square>;\r
+3375 006F 0056;<square>;\r
+3376 0070 0063;<square>;\r
+337B 5E73 6210;<square>;\r
+337C 662D 548C;<square>;\r
+337D 5927 6B63;<square>;\r
+337E 660E 6CBB;<square>;\r
+337F 682A 5F0F;<square>;\r
+3380 0070 0041;<square>;\r
+3381 006E 0041;<square>;\r
+3382 03BC 0041;<square>;\r
+3383 006D 0041;<square>;\r
+3384 006B 0041;<square>;\r
+3385 004B 0042;<square>;\r
+3386 004D 0042;<square>;\r
+3387 0047 0042;<square>;\r
+3388 0063 0061;<square>;\r
+3389 006B 0063;<square>;\r
+338A 0070 0046;<square>;\r
+338B 006E 0046;<square>;\r
+338C 03BC 0046;<square>;\r
+338D 03BC 0067;<square>;\r
+338E 006D 0067;<square>;\r
+338F 006B 0067;<square>;\r
+3390 0048 007A;<square>;\r
+3391 006B 0048;<square>;\r
+3392 004D 0048;<square>;\r
+3393 0047 0048;<square>;\r
+3394 0054 0048;<square>;\r
+3395 03BC 2113;<square>;\r
+3396 006D 2113;<square>;\r
+3397 0064 2113;<square>;\r
+3398 006B 2113;<square>;\r
+3399 0066 006D;<square>;\r
+339A 006E 006D;<square>;\r
+339B 03BC 006D;<square>;\r
+339C 006D 006D;<square>;\r
+339D 0063 006D;<square>;\r
+339E 006B 006D;<square>;\r
+339F 006D 006D;<square>;\r
+33A0 0063 006D;<square>;\r
+33A1 006D 00B2;<square>;\r
+33A2 006B 006D;<square>;\r
+33A3 006D 006D;<square>;\r
+33A4 0063 006D;<square>;\r
+33A5 006D 00B3;<square>;\r
+33A6 006B 006D;<square>;\r
+33A7 006D 2215;<square>;\r
+33A8 006D 2215;<square>;\r
+33A9 0050 0061;<square>;\r
+33AA 006B 0050;<square>;\r
+33AB 004D 0050;<square>;\r
+33AC 0047 0050;<square>;\r
+33AD 0072 0061;<square>;\r
+33AE 0072 0061;<square>;\r
+33AF 0072 0061;<square>;\r
+33B0 0070 0073;<square>;\r
+33B1 006E 0073;<square>;\r
+33B2 03BC 0073;<square>;\r
+33B3 006D 0073;<square>;\r
+33B4 0070 0056;<square>;\r
+33B5 006E 0056;<square>;\r
+33B6 03BC 0056;<square>;\r
+33B7 006D 0056;<square>;\r
+33B8 006B 0056;<square>;\r
+33B9 004D 0056;<square>;\r
+33BA 0070 0057;<square>;\r
+33BB 006E 0057;<square>;\r
+33BC 03BC 0057;<square>;\r
+33BD 006D 0057;<square>;\r
+33BE 006B 0057;<square>;\r
+33BF 004D 0057;<square>;\r
+33C0 006B 03A9;<square>;\r
+33C1 004D 03A9;<square>;\r
+33C2 0061 002E;<square>;\r
+33C3 0042 0071;<square>;\r
+33C4 0063 0063;<square>;\r
+33C5 0063 0064;<square>;\r
+33C6 0043 2215;<square>;\r
+33C7 0043 006F;<square>;\r
+33C8 0064 0042;<square>;\r
+33C9 0047 0079;<square>;\r
+33CA 0068 0061;<square>;\r
+33CB 0048 0050;<square>;\r
+33CC 0069 006E;<square>;\r
+33CD 004B 004B;<square>;\r
+33CE 004B 004D;<square>;\r
+33CF 006B 0074;<square>;\r
+33D0 006C 006D;<square>;\r
+33D1 006C 006E;<square>;\r
+33D2 006C 006F;<square>;\r
+33D3 006C 0078;<square>;\r
+33D4 006D 0062;<square>;\r
+33D5 006D 0069;<square>;\r
+33D6 006D 006F;<square>;\r
+33D7 0050 0048;<square>;\r
+33D8 0070 002E;<square>;\r
+33D9 0050 0050;<square>;\r
+33DA 0050 0052;<square>;\r
+33DB 0073 0072;<square>;\r
+33DC 0053 0076;<square>;\r
+33DD 0057 0062;<square>;\r
+33E0 0031 65E5;<compat>;\r
+33E1 0032 65E5;<compat>;\r
+33E2 0033 65E5;<compat>;\r
+33E3 0034 65E5;<compat>;\r
+33E4 0035 65E5;<compat>;\r
+33E5 0036 65E5;<compat>;\r
+33E6 0037 65E5;<compat>;\r
+33E7 0038 65E5;<compat>;\r
+33E8 0039 65E5;<compat>;\r
+33E9 0031 0030;<compat>;\r
+33EA 0031 0031;<compat>;\r
+33EB 0031 0032;<compat>;\r
+33EC 0031 0033;<compat>;\r
+33ED 0031 0034;<compat>;\r
+33EE 0031 0035;<compat>;\r
+33EF 0031 0036;<compat>;\r
+33F0 0031 0037;<compat>;\r
+33F1 0031 0038;<compat>;\r
+33F2 0031 0039;<compat>;\r
+33F3 0032 0030;<compat>;\r
+33F4 0032 0031;<compat>;\r
+33F5 0032 0032;<compat>;\r
+33F6 0032 0033;<compat>;\r
+33F7 0032 0034;<compat>;\r
+33F8 0032 0035;<compat>;\r
+33F9 0032 0036;<compat>;\r
+33FA 0032 0037;<compat>;\r
+33FB 0032 0038;<compat>;\r
+33FC 0032 0039;<compat>;\r
+33FD 0033 0030;<compat>;\r
+33FE 0033 0031;<compat>;\r
+F900 8C48 0000;\r
+F901 66F4 0000;\r
+F902 8ECA 0000;\r
+F903 8CC8 0000;\r
+F904 6ED1 0000;\r
+F905 4E32 0000;\r
+F906 53E5 0000;\r
+F907 9F9C 0000;\r
+F908 9F9C 0000;\r
+F909 5951 0000;\r
+F90A 91D1 0000;\r
+F90B 5587 0000;\r
+F90C 5948 0000;\r
+F90D 61F6 0000;\r
+F90E 7669 0000;\r
+F90F 7F85 0000;\r
+F910 863F 0000;\r
+F911 87BA 0000;\r
+F912 88F8 0000;\r
+F913 908F 0000;\r
+F914 6A02 0000;\r
+F915 6D1B 0000;\r
+F916 70D9 0000;\r
+F917 73DE 0000;\r
+F918 843D 0000;\r
+F919 916A 0000;\r
+F91A 99F1 0000;\r
+F91B 4E82 0000;\r
+F91C 5375 0000;\r
+F91D 6B04 0000;\r
+F91E 721B 0000;\r
+F91F 862D 0000;\r
+F920 9E1E 0000;\r
+F921 5D50 0000;\r
+F922 6FEB 0000;\r
+F923 85CD 0000;\r
+F924 8964 0000;\r
+F925 62C9 0000;\r
+F926 81D8 0000;\r
+F927 881F 0000;\r
+F928 5ECA 0000;\r
+F929 6717 0000;\r
+F92A 6D6A 0000;\r
+F92B 72FC 0000;\r
+F92C 90CE 0000;\r
+F92D 4F86 0000;\r
+F92E 51B7 0000;\r
+F92F 52DE 0000;\r
+F930 64C4 0000;\r
+F931 6AD3 0000;\r
+F932 7210 0000;\r
+F933 76E7 0000;\r
+F934 8001 0000;\r
+F935 8606 0000;\r
+F936 865C 0000;\r
+F937 8DEF 0000;\r
+F938 9732 0000;\r
+F939 9B6F 0000;\r
+F93A 9DFA 0000;\r
+F93B 788C 0000;\r
+F93C 797F 0000;\r
+F93D 7DA0 0000;\r
+F93E 83C9 0000;\r
+F93F 9304 0000;\r
+F940 9E7F 0000;\r
+F941 8AD6 0000;\r
+F942 58DF 0000;\r
+F943 5F04 0000;\r
+F944 7C60 0000;\r
+F945 807E 0000;\r
+F946 7262 0000;\r
+F947 78CA 0000;\r
+F948 8CC2 0000;\r
+F949 96F7 0000;\r
+F94A 58D8 0000;\r
+F94B 5C62 0000;\r
+F94C 6A13 0000;\r
+F94D 6DDA 0000;\r
+F94E 6F0F 0000;\r
+F94F 7D2F 0000;\r
+F950 7E37 0000;\r
+F951 96FB 0000;\r
+F952 52D2 0000;\r
+F953 808B 0000;\r
+F954 51DC 0000;\r
+F955 51CC 0000;\r
+F956 7A1C 0000;\r
+F957 7DBE 0000;\r
+F958 83F1 0000;\r
+F959 9675 0000;\r
+F95A 8B80 0000;\r
+F95B 62CF 0000;\r
+F95C 6A02 0000;\r
+F95D 8AFE 0000;\r
+F95E 4E39 0000;\r
+F95F 5BE7 0000;\r
+F960 6012 0000;\r
+F961 7387 0000;\r
+F962 7570 0000;\r
+F963 5317 0000;\r
+F964 78FB 0000;\r
+F965 4FBF 0000;\r
+F966 5FA9 0000;\r
+F967 4E0D 0000;\r
+F968 6CCC 0000;\r
+F969 6578 0000;\r
+F96A 7D22 0000;\r
+F96B 53C3 0000;\r
+F96C 585E 0000;\r
+F96D 7701 0000;\r
+F96E 8449 0000;\r
+F96F 8AAA 0000;\r
+F970 6BBA 0000;\r
+F971 8FB0 0000;\r
+F972 6C88 0000;\r
+F973 62FE 0000;\r
+F974 82E5 0000;\r
+F975 63A0 0000;\r
+F976 7565 0000;\r
+F977 4EAE 0000;\r
+F978 5169 0000;\r
+F979 51C9 0000;\r
+F97A 6881 0000;\r
+F97B 7CE7 0000;\r
+F97C 826F 0000;\r
+F97D 8AD2 0000;\r
+F97E 91CF 0000;\r
+F97F 52F5 0000;\r
+F980 5442 0000;\r
+F981 5973 0000;\r
+F982 5EEC 0000;\r
+F983 65C5 0000;\r
+F984 6FFE 0000;\r
+F985 792A 0000;\r
+F986 95AD 0000;\r
+F987 9A6A 0000;\r
+F988 9E97 0000;\r
+F989 9ECE 0000;\r
+F98A 529B 0000;\r
+F98B 66C6 0000;\r
+F98C 6B77 0000;\r
+F98D 8F62 0000;\r
+F98E 5E74 0000;\r
+F98F 6190 0000;\r
+F990 6200 0000;\r
+F991 649A 0000;\r
+F992 6F23 0000;\r
+F993 7149 0000;\r
+F994 7489 0000;\r
+F995 79CA 0000;\r
+F996 7DF4 0000;\r
+F997 806F 0000;\r
+F998 8F26 0000;\r
+F999 84EE 0000;\r
+F99A 9023 0000;\r
+F99B 934A 0000;\r
+F99C 5217 0000;\r
+F99D 52A3 0000;\r
+F99E 54BD 0000;\r
+F99F 70C8 0000;\r
+F9A0 88C2 0000;\r
+F9A1 8AAA 0000;\r
+F9A2 5EC9 0000;\r
+F9A3 5FF5 0000;\r
+F9A4 637B 0000;\r
+F9A5 6BAE 0000;\r
+F9A6 7C3E 0000;\r
+F9A7 7375 0000;\r
+F9A8 4EE4 0000;\r
+F9A9 56F9 0000;\r
+F9AA 5BE7 0000;\r
+F9AB 5DBA 0000;\r
+F9AC 601C 0000;\r
+F9AD 73B2 0000;\r
+F9AE 7469 0000;\r
+F9AF 7F9A 0000;\r
+F9B0 8046 0000;\r
+F9B1 9234 0000;\r
+F9B2 96F6 0000;\r
+F9B3 9748 0000;\r
+F9B4 9818 0000;\r
+F9B5 4F8B 0000;\r
+F9B6 79AE 0000;\r
+F9B7 91B4 0000;\r
+F9B8 96B8 0000;\r
+F9B9 60E1 0000;\r
+F9BA 4E86 0000;\r
+F9BB 50DA 0000;\r
+F9BC 5BEE 0000;\r
+F9BD 5C3F 0000;\r
+F9BE 6599 0000;\r
+F9BF 6A02 0000;\r
+F9C0 71CE 0000;\r
+F9C1 7642 0000;\r
+F9C2 84FC 0000;\r
+F9C3 907C 0000;\r
+F9C4 9F8D 0000;\r
+F9C5 6688 0000;\r
+F9C6 962E 0000;\r
+F9C7 5289 0000;\r
+F9C8 677B 0000;\r
+F9C9 67F3 0000;\r
+F9CA 6D41 0000;\r
+F9CB 6E9C 0000;\r
+F9CC 7409 0000;\r
+F9CD 7559 0000;\r
+F9CE 786B 0000;\r
+F9CF 7D10 0000;\r
+F9D0 985E 0000;\r
+F9D1 516D 0000;\r
+F9D2 622E 0000;\r
+F9D3 9678 0000;\r
+F9D4 502B 0000;\r
+F9D5 5D19 0000;\r
+F9D6 6DEA 0000;\r
+F9D7 8F2A 0000;\r
+F9D8 5F8B 0000;\r
+F9D9 6144 0000;\r
+F9DA 6817 0000;\r
+F9DB 7387 0000;\r
+F9DC 9686 0000;\r
+F9DD 5229 0000;\r
+F9DE 540F 0000;\r
+F9DF 5C65 0000;\r
+F9E0 6613 0000;\r
+F9E1 674E 0000;\r
+F9E2 68A8 0000;\r
+F9E3 6CE5 0000;\r
+F9E4 7406 0000;\r
+F9E5 75E2 0000;\r
+F9E6 7F79 0000;\r
+F9E7 88CF 0000;\r
+F9E8 88E1 0000;\r
+F9E9 91CC 0000;\r
+F9EA 96E2 0000;\r
+F9EB 533F 0000;\r
+F9EC 6EBA 0000;\r
+F9ED 541D 0000;\r
+F9EE 71D0 0000;\r
+F9EF 7498 0000;\r
+F9F0 85FA 0000;\r
+F9F1 96A3 0000;\r
+F9F2 9C57 0000;\r
+F9F3 9E9F 0000;\r
+F9F4 6797 0000;\r
+F9F5 6DCB 0000;\r
+F9F6 81E8 0000;\r
+F9F7 7ACB 0000;\r
+F9F8 7B20 0000;\r
+F9F9 7C92 0000;\r
+F9FA 72C0 0000;\r
+F9FB 7099 0000;\r
+F9FC 8B58 0000;\r
+F9FD 4EC0 0000;\r
+F9FE 8336 0000;\r
+F9FF 523A 0000;\r
+FA00 5207 0000;\r
+FA01 5EA6 0000;\r
+FA02 62D3 0000;\r
+FA03 7CD6 0000;\r
+FA04 5B85 0000;\r
+FA05 6D1E 0000;\r
+FA06 66B4 0000;\r
+FA07 8F3B 0000;\r
+FA08 884C 0000;\r
+FA09 964D 0000;\r
+FA0A 898B 0000;\r
+FA0B 5ED3 0000;\r
+FA0C 5140 0000;\r
+FA0D 55C0 0000;\r
+FA10 585A 0000;\r
+FA12 6674 0000;\r
+FA15 51DE 0000;\r
+FA16 732A 0000;\r
+FA17 76CA 0000;\r
+FA18 793C 0000;\r
+FA19 795E 0000;\r
+FA1A 7965 0000;\r
+FA1B 798F 0000;\r
+FA1C 9756 0000;\r
+FA1D 7CBE 0000;\r
+FA1E 7FBD 0000;\r
+FA20 8612 0000;\r
+FA22 8AF8 0000;\r
+FA25 9038 0000;\r
+FA26 90FD 0000;\r
+FA2A 98EF 0000;\r
+FA2B 98FC 0000;\r
+FA2C 9928 0000;\r
+FA2D 9DB4 0000;\r
+FB00 0066 0066;<compat>;\r
+FB01 0066 0069;<compat>;\r
+FB02 0066 006C;<compat>;\r
+FB03 0066 0066;<compat>;\r
+FB04 0066 0066;<compat>;\r
+FB05 017F 0074;<compat>;\r
+FB06 0073 0074;<compat>;\r
+FB13 0574 0576;<compat>;\r
+FB14 0574 0565;<compat>;\r
+FB15 0574 056B;<compat>;\r
+FB16 057E 0576;<compat>;\r
+FB17 0574 056D;<compat>;\r
+FB1D 05D9 05B4;\r
+FB1F 05F2 05B7;\r
+FB20 05E2 0000;<font>;\r
+FB21 05D0 0000;<font>;\r
+FB22 05D3 0000;<font>;\r
+FB23 05D4 0000;<font>;\r
+FB24 05DB 0000;<font>;\r
+FB25 05DC 0000;<font>;\r
+FB26 05DD 0000;<font>;\r
+FB27 05E8 0000;<font>;\r
+FB28 05EA 0000;<font>;\r
+FB29 002B 0000;<font>;\r
+FB2A 05E9 05C1;\r
+FB2B 05E9 05C2;\r
+FB2C FB49 05C1;\r
+FB2D FB49 05C2;\r
+FB2E 05D0 05B7;\r
+FB2F 05D0 05B8;\r
+FB30 05D0 05BC;\r
+FB31 05D1 05BC;\r
+FB32 05D2 05BC;\r
+FB33 05D3 05BC;\r
+FB34 05D4 05BC;\r
+FB35 05D5 05BC;\r
+FB36 05D6 05BC;\r
+FB38 05D8 05BC;\r
+FB39 05D9 05BC;\r
+FB3A 05DA 05BC;\r
+FB3B 05DB 05BC;\r
+FB3C 05DC 05BC;\r
+FB3E 05DE 05BC;\r
+FB40 05E0 05BC;\r
+FB41 05E1 05BC;\r
+FB43 05E3 05BC;\r
+FB44 05E4 05BC;\r
+FB46 05E6 05BC;\r
+FB47 05E7 05BC;\r
+FB48 05E8 05BC;\r
+FB49 05E9 05BC;\r
+FB4A 05EA 05BC;\r
+FB4B 05D5 05B9;\r
+FB4C 05D1 05BF;\r
+FB4D 05DB 05BF;\r
+FB4E 05E4 05BF;\r
+FB4F 05D0 05DC;<compat>;\r
+FB50 0671 0000;<isolated>;\r
+FB51 0671 0000;<final>;\r
+FB52 067B 0000;<isolated>;\r
+FB53 067B 0000;<final>;\r
+FB54 067B 0000;<initial>;\r
+FB55 067B 0000;<medial>;\r
+FB56 067E 0000;<isolated>;\r
+FB57 067E 0000;<final>;\r
+FB58 067E 0000;<initial>;\r
+FB59 067E 0000;<medial>;\r
+FB5A 0680 0000;<isolated>;\r
+FB5B 0680 0000;<final>;\r
+FB5C 0680 0000;<initial>;\r
+FB5D 0680 0000;<medial>;\r
+FB5E 067A 0000;<isolated>;\r
+FB5F 067A 0000;<final>;\r
+FB60 067A 0000;<initial>;\r
+FB61 067A 0000;<medial>;\r
+FB62 067F 0000;<isolated>;\r
+FB63 067F 0000;<final>;\r
+FB64 067F 0000;<initial>;\r
+FB65 067F 0000;<medial>;\r
+FB66 0679 0000;<isolated>;\r
+FB67 0679 0000;<final>;\r
+FB68 0679 0000;<initial>;\r
+FB69 0679 0000;<medial>;\r
+FB6A 06A4 0000;<isolated>;\r
+FB6B 06A4 0000;<final>;\r
+FB6C 06A4 0000;<initial>;\r
+FB6D 06A4 0000;<medial>;\r
+FB6E 06A6 0000;<isolated>;\r
+FB6F 06A6 0000;<final>;\r
+FB70 06A6 0000;<initial>;\r
+FB71 06A6 0000;<medial>;\r
+FB72 0684 0000;<isolated>;\r
+FB73 0684 0000;<final>;\r
+FB74 0684 0000;<initial>;\r
+FB75 0684 0000;<medial>;\r
+FB76 0683 0000;<isolated>;\r
+FB77 0683 0000;<final>;\r
+FB78 0683 0000;<initial>;\r
+FB79 0683 0000;<medial>;\r
+FB7A 0686 0000;<isolated>;\r
+FB7B 0686 0000;<final>;\r
+FB7C 0686 0000;<initial>;\r
+FB7D 0686 0000;<medial>;\r
+FB7E 0687 0000;<isolated>;\r
+FB7F 0687 0000;<final>;\r
+FB80 0687 0000;<initial>;\r
+FB81 0687 0000;<medial>;\r
+FB82 068D 0000;<isolated>;\r
+FB83 068D 0000;<final>;\r
+FB84 068C 0000;<isolated>;\r
+FB85 068C 0000;<final>;\r
+FB86 068E 0000;<isolated>;\r
+FB87 068E 0000;<final>;\r
+FB88 0688 0000;<isolated>;\r
+FB89 0688 0000;<final>;\r
+FB8A 0698 0000;<isolated>;\r
+FB8B 0698 0000;<final>;\r
+FB8C 0691 0000;<isolated>;\r
+FB8D 0691 0000;<final>;\r
+FB8E 06A9 0000;<isolated>;\r
+FB8F 06A9 0000;<final>;\r
+FB90 06A9 0000;<initial>;\r
+FB91 06A9 0000;<medial>;\r
+FB92 06AF 0000;<isolated>;\r
+FB93 06AF 0000;<final>;\r
+FB94 06AF 0000;<initial>;\r
+FB95 06AF 0000;<medial>;\r
+FB96 06B3 0000;<isolated>;\r
+FB97 06B3 0000;<final>;\r
+FB98 06B3 0000;<initial>;\r
+FB99 06B3 0000;<medial>;\r
+FB9A 06B1 0000;<isolated>;\r
+FB9B 06B1 0000;<final>;\r
+FB9C 06B1 0000;<initial>;\r
+FB9D 06B1 0000;<medial>;\r
+FB9E 06BA 0000;<isolated>;\r
+FB9F 06BA 0000;<final>;\r
+FBA0 06BB 0000;<isolated>;\r
+FBA1 06BB 0000;<final>;\r
+FBA2 06BB 0000;<initial>;\r
+FBA3 06BB 0000;<medial>;\r
+FBA4 06C0 0000;<isolated>;\r
+FBA5 06C0 0000;<final>;\r
+FBA6 06C1 0000;<isolated>;\r
+FBA7 06C1 0000;<final>;\r
+FBA8 06C1 0000;<initial>;\r
+FBA9 06C1 0000;<medial>;\r
+FBAA 06BE 0000;<isolated>;\r
+FBAB 06BE 0000;<final>;\r
+FBAC 06BE 0000;<initial>;\r
+FBAD 06BE 0000;<medial>;\r
+FBAE 06D2 0000;<isolated>;\r
+FBAF 06D2 0000;<final>;\r
+FBB0 06D3 0000;<isolated>;\r
+FBB1 06D3 0000;<final>;\r
+FBD3 06AD 0000;<isolated>;\r
+FBD4 06AD 0000;<final>;\r
+FBD5 06AD 0000;<initial>;\r
+FBD6 06AD 0000;<medial>;\r
+FBD7 06C7 0000;<isolated>;\r
+FBD8 06C7 0000;<final>;\r
+FBD9 06C6 0000;<isolated>;\r
+FBDA 06C6 0000;<final>;\r
+FBDB 06C8 0000;<isolated>;\r
+FBDC 06C8 0000;<final>;\r
+FBDD 0677 0000;<isolated>;\r
+FBDE 06CB 0000;<isolated>;\r
+FBDF 06CB 0000;<final>;\r
+FBE0 06C5 0000;<isolated>;\r
+FBE1 06C5 0000;<final>;\r
+FBE2 06C9 0000;<isolated>;\r
+FBE3 06C9 0000;<final>;\r
+FBE4 06D0 0000;<isolated>;\r
+FBE5 06D0 0000;<final>;\r
+FBE6 06D0 0000;<initial>;\r
+FBE7 06D0 0000;<medial>;\r
+FBE8 0649 0000;<initial>;\r
+FBE9 0649 0000;<medial>;\r
+FBEA 0626 0627;<isolated>;\r
+FBEB 0626 0627;<final>;\r
+FBEC 0626 06D5;<isolated>;\r
+FBED 0626 06D5;<final>;\r
+FBEE 0626 0648;<isolated>;\r
+FBEF 0626 0648;<final>;\r
+FBF0 0626 06C7;<isolated>;\r
+FBF1 0626 06C7;<final>;\r
+FBF2 0626 06C6;<isolated>;\r
+FBF3 0626 06C6;<final>;\r
+FBF4 0626 06C8;<isolated>;\r
+FBF5 0626 06C8;<final>;\r
+FBF6 0626 06D0;<isolated>;\r
+FBF7 0626 06D0;<final>;\r
+FBF8 0626 06D0;<initial>;\r
+FBF9 0626 0649;<isolated>;\r
+FBFA 0626 0649;<final>;\r
+FBFB 0626 0649;<initial>;\r
+FBFC 06CC 0000;<isolated>;\r
+FBFD 06CC 0000;<final>;\r
+FBFE 06CC 0000;<initial>;\r
+FBFF 06CC 0000;<medial>;\r
+FC00 0626 062C;<isolated>;\r
+FC01 0626 062D;<isolated>;\r
+FC02 0626 0645;<isolated>;\r
+FC03 0626 0649;<isolated>;\r
+FC04 0626 064A;<isolated>;\r
+FC05 0628 062C;<isolated>;\r
+FC06 0628 062D;<isolated>;\r
+FC07 0628 062E;<isolated>;\r
+FC08 0628 0645;<isolated>;\r
+FC09 0628 0649;<isolated>;\r
+FC0A 0628 064A;<isolated>;\r
+FC0B 062A 062C;<isolated>;\r
+FC0C 062A 062D;<isolated>;\r
+FC0D 062A 062E;<isolated>;\r
+FC0E 062A 0645;<isolated>;\r
+FC0F 062A 0649;<isolated>;\r
+FC10 062A 064A;<isolated>;\r
+FC11 062B 062C;<isolated>;\r
+FC12 062B 0645;<isolated>;\r
+FC13 062B 0649;<isolated>;\r
+FC14 062B 064A;<isolated>;\r
+FC15 062C 062D;<isolated>;\r
+FC16 062C 0645;<isolated>;\r
+FC17 062D 062C;<isolated>;\r
+FC18 062D 0645;<isolated>;\r
+FC19 062E 062C;<isolated>;\r
+FC1A 062E 062D;<isolated>;\r
+FC1B 062E 0645;<isolated>;\r
+FC1C 0633 062C;<isolated>;\r
+FC1D 0633 062D;<isolated>;\r
+FC1E 0633 062E;<isolated>;\r
+FC1F 0633 0645;<isolated>;\r
+FC20 0635 062D;<isolated>;\r
+FC21 0635 0645;<isolated>;\r
+FC22 0636 062C;<isolated>;\r
+FC23 0636 062D;<isolated>;\r
+FC24 0636 062E;<isolated>;\r
+FC25 0636 0645;<isolated>;\r
+FC26 0637 062D;<isolated>;\r
+FC27 0637 0645;<isolated>;\r
+FC28 0638 0645;<isolated>;\r
+FC29 0639 062C;<isolated>;\r
+FC2A 0639 0645;<isolated>;\r
+FC2B 063A 062C;<isolated>;\r
+FC2C 063A 0645;<isolated>;\r
+FC2D 0641 062C;<isolated>;\r
+FC2E 0641 062D;<isolated>;\r
+FC2F 0641 062E;<isolated>;\r
+FC30 0641 0645;<isolated>;\r
+FC31 0641 0649;<isolated>;\r
+FC32 0641 064A;<isolated>;\r
+FC33 0642 062D;<isolated>;\r
+FC34 0642 0645;<isolated>;\r
+FC35 0642 0649;<isolated>;\r
+FC36 0642 064A;<isolated>;\r
+FC37 0643 0627;<isolated>;\r
+FC38 0643 062C;<isolated>;\r
+FC39 0643 062D;<isolated>;\r
+FC3A 0643 062E;<isolated>;\r
+FC3B 0643 0644;<isolated>;\r
+FC3C 0643 0645;<isolated>;\r
+FC3D 0643 0649;<isolated>;\r
+FC3E 0643 064A;<isolated>;\r
+FC3F 0644 062C;<isolated>;\r
+FC40 0644 062D;<isolated>;\r
+FC41 0644 062E;<isolated>;\r
+FC42 0644 0645;<isolated>;\r
+FC43 0644 0649;<isolated>;\r
+FC44 0644 064A;<isolated>;\r
+FC45 0645 062C;<isolated>;\r
+FC46 0645 062D;<isolated>;\r
+FC47 0645 062E;<isolated>;\r
+FC48 0645 0645;<isolated>;\r
+FC49 0645 0649;<isolated>;\r
+FC4A 0645 064A;<isolated>;\r
+FC4B 0646 062C;<isolated>;\r
+FC4C 0646 062D;<isolated>;\r
+FC4D 0646 062E;<isolated>;\r
+FC4E 0646 0645;<isolated>;\r
+FC4F 0646 0649;<isolated>;\r
+FC50 0646 064A;<isolated>;\r
+FC51 0647 062C;<isolated>;\r
+FC52 0647 0645;<isolated>;\r
+FC53 0647 0649;<isolated>;\r
+FC54 0647 064A;<isolated>;\r
+FC55 064A 062C;<isolated>;\r
+FC56 064A 062D;<isolated>;\r
+FC57 064A 062E;<isolated>;\r
+FC58 064A 0645;<isolated>;\r
+FC59 064A 0649;<isolated>;\r
+FC5A 064A 064A;<isolated>;\r
+FC5B 0630 0670;<isolated>;\r
+FC5C 0631 0670;<isolated>;\r
+FC5D 0649 0670;<isolated>;\r
+FC5E 0020 064C;<isolated>;\r
+FC5F 0020 064D;<isolated>;\r
+FC60 0020 064E;<isolated>;\r
+FC61 0020 064F;<isolated>;\r
+FC62 0020 0650;<isolated>;\r
+FC63 0020 0651;<isolated>;\r
+FC64 0626 0631;<final>;\r
+FC65 0626 0632;<final>;\r
+FC66 0626 0645;<final>;\r
+FC67 0626 0646;<final>;\r
+FC68 0626 0649;<final>;\r
+FC69 0626 064A;<final>;\r
+FC6A 0628 0631;<final>;\r
+FC6B 0628 0632;<final>;\r
+FC6C 0628 0645;<final>;\r
+FC6D 0628 0646;<final>;\r
+FC6E 0628 0649;<final>;\r
+FC6F 0628 064A;<final>;\r
+FC70 062A 0631;<final>;\r
+FC71 062A 0632;<final>;\r
+FC72 062A 0645;<final>;\r
+FC73 062A 0646;<final>;\r
+FC74 062A 0649;<final>;\r
+FC75 062A 064A;<final>;\r
+FC76 062B 0631;<final>;\r
+FC77 062B 0632;<final>;\r
+FC78 062B 0645;<final>;\r
+FC79 062B 0646;<final>;\r
+FC7A 062B 0649;<final>;\r
+FC7B 062B 064A;<final>;\r
+FC7C 0641 0649;<final>;\r
+FC7D 0641 064A;<final>;\r
+FC7E 0642 0649;<final>;\r
+FC7F 0642 064A;<final>;\r
+FC80 0643 0627;<final>;\r
+FC81 0643 0644;<final>;\r
+FC82 0643 0645;<final>;\r
+FC83 0643 0649;<final>;\r
+FC84 0643 064A;<final>;\r
+FC85 0644 0645;<final>;\r
+FC86 0644 0649;<final>;\r
+FC87 0644 064A;<final>;\r
+FC88 0645 0627;<final>;\r
+FC89 0645 0645;<final>;\r
+FC8A 0646 0631;<final>;\r
+FC8B 0646 0632;<final>;\r
+FC8C 0646 0645;<final>;\r
+FC8D 0646 0646;<final>;\r
+FC8E 0646 0649;<final>;\r
+FC8F 0646 064A;<final>;\r
+FC90 0649 0670;<final>;\r
+FC91 064A 0631;<final>;\r
+FC92 064A 0632;<final>;\r
+FC93 064A 0645;<final>;\r
+FC94 064A 0646;<final>;\r
+FC95 064A 0649;<final>;\r
+FC96 064A 064A;<final>;\r
+FC97 0626 062C;<initial>;\r
+FC98 0626 062D;<initial>;\r
+FC99 0626 062E;<initial>;\r
+FC9A 0626 0645;<initial>;\r
+FC9B 0626 0647;<initial>;\r
+FC9C 0628 062C;<initial>;\r
+FC9D 0628 062D;<initial>;\r
+FC9E 0628 062E;<initial>;\r
+FC9F 0628 0645;<initial>;\r
+FCA0 0628 0647;<initial>;\r
+FCA1 062A 062C;<initial>;\r
+FCA2 062A 062D;<initial>;\r
+FCA3 062A 062E;<initial>;\r
+FCA4 062A 0645;<initial>;\r
+FCA5 062A 0647;<initial>;\r
+FCA6 062B 0645;<initial>;\r
+FCA7 062C 062D;<initial>;\r
+FCA8 062C 0645;<initial>;\r
+FCA9 062D 062C;<initial>;\r
+FCAA 062D 0645;<initial>;\r
+FCAB 062E 062C;<initial>;\r
+FCAC 062E 0645;<initial>;\r
+FCAD 0633 062C;<initial>;\r
+FCAE 0633 062D;<initial>;\r
+FCAF 0633 062E;<initial>;\r
+FCB0 0633 0645;<initial>;\r
+FCB1 0635 062D;<initial>;\r
+FCB2 0635 062E;<initial>;\r
+FCB3 0635 0645;<initial>;\r
+FCB4 0636 062C;<initial>;\r
+FCB5 0636 062D;<initial>;\r
+FCB6 0636 062E;<initial>;\r
+FCB7 0636 0645;<initial>;\r
+FCB8 0637 062D;<initial>;\r
+FCB9 0638 0645;<initial>;\r
+FCBA 0639 062C;<initial>;\r
+FCBB 0639 0645;<initial>;\r
+FCBC 063A 062C;<initial>;\r
+FCBD 063A 0645;<initial>;\r
+FCBE 0641 062C;<initial>;\r
+FCBF 0641 062D;<initial>;\r
+FCC0 0641 062E;<initial>;\r
+FCC1 0641 0645;<initial>;\r
+FCC2 0642 062D;<initial>;\r
+FCC3 0642 0645;<initial>;\r
+FCC4 0643 062C;<initial>;\r
+FCC5 0643 062D;<initial>;\r
+FCC6 0643 062E;<initial>;\r
+FCC7 0643 0644;<initial>;\r
+FCC8 0643 0645;<initial>;\r
+FCC9 0644 062C;<initial>;\r
+FCCA 0644 062D;<initial>;\r
+FCCB 0644 062E;<initial>;\r
+FCCC 0644 0645;<initial>;\r
+FCCD 0644 0647;<initial>;\r
+FCCE 0645 062C;<initial>;\r
+FCCF 0645 062D;<initial>;\r
+FCD0 0645 062E;<initial>;\r
+FCD1 0645 0645;<initial>;\r
+FCD2 0646 062C;<initial>;\r
+FCD3 0646 062D;<initial>;\r
+FCD4 0646 062E;<initial>;\r
+FCD5 0646 0645;<initial>;\r
+FCD6 0646 0647;<initial>;\r
+FCD7 0647 062C;<initial>;\r
+FCD8 0647 0645;<initial>;\r
+FCD9 0647 0670;<initial>;\r
+FCDA 064A 062C;<initial>;\r
+FCDB 064A 062D;<initial>;\r
+FCDC 064A 062E;<initial>;\r
+FCDD 064A 0645;<initial>;\r
+FCDE 064A 0647;<initial>;\r
+FCDF 0626 0645;<medial>;\r
+FCE0 0626 0647;<medial>;\r
+FCE1 0628 0645;<medial>;\r
+FCE2 0628 0647;<medial>;\r
+FCE3 062A 0645;<medial>;\r
+FCE4 062A 0647;<medial>;\r
+FCE5 062B 0645;<medial>;\r
+FCE6 062B 0647;<medial>;\r
+FCE7 0633 0645;<medial>;\r
+FCE8 0633 0647;<medial>;\r
+FCE9 0634 0645;<medial>;\r
+FCEA 0634 0647;<medial>;\r
+FCEB 0643 0644;<medial>;\r
+FCEC 0643 0645;<medial>;\r
+FCED 0644 0645;<medial>;\r
+FCEE 0646 0645;<medial>;\r
+FCEF 0646 0647;<medial>;\r
+FCF0 064A 0645;<medial>;\r
+FCF1 064A 0647;<medial>;\r
+FCF2 0640 064E;<medial>;\r
+FCF3 0640 064F;<medial>;\r
+FCF4 0640 0650;<medial>;\r
+FCF5 0637 0649;<isolated>;\r
+FCF6 0637 064A;<isolated>;\r
+FCF7 0639 0649;<isolated>;\r
+FCF8 0639 064A;<isolated>;\r
+FCF9 063A 0649;<isolated>;\r
+FCFA 063A 064A;<isolated>;\r
+FCFB 0633 0649;<isolated>;\r
+FCFC 0633 064A;<isolated>;\r
+FCFD 0634 0649;<isolated>;\r
+FCFE 0634 064A;<isolated>;\r
+FCFF 062D 0649;<isolated>;\r
+FD00 062D 064A;<isolated>;\r
+FD01 062C 0649;<isolated>;\r
+FD02 062C 064A;<isolated>;\r
+FD03 062E 0649;<isolated>;\r
+FD04 062E 064A;<isolated>;\r
+FD05 0635 0649;<isolated>;\r
+FD06 0635 064A;<isolated>;\r
+FD07 0636 0649;<isolated>;\r
+FD08 0636 064A;<isolated>;\r
+FD09 0634 062C;<isolated>;\r
+FD0A 0634 062D;<isolated>;\r
+FD0B 0634 062E;<isolated>;\r
+FD0C 0634 0645;<isolated>;\r
+FD0D 0634 0631;<isolated>;\r
+FD0E 0633 0631;<isolated>;\r
+FD0F 0635 0631;<isolated>;\r
+FD10 0636 0631;<isolated>;\r
+FD11 0637 0649;<final>;\r
+FD12 0637 064A;<final>;\r
+FD13 0639 0649;<final>;\r
+FD14 0639 064A;<final>;\r
+FD15 063A 0649;<final>;\r
+FD16 063A 064A;<final>;\r
+FD17 0633 0649;<final>;\r
+FD18 0633 064A;<final>;\r
+FD19 0634 0649;<final>;\r
+FD1A 0634 064A;<final>;\r
+FD1B 062D 0649;<final>;\r
+FD1C 062D 064A;<final>;\r
+FD1D 062C 0649;<final>;\r
+FD1E 062C 064A;<final>;\r
+FD1F 062E 0649;<final>;\r
+FD20 062E 064A;<final>;\r
+FD21 0635 0649;<final>;\r
+FD22 0635 064A;<final>;\r
+FD23 0636 0649;<final>;\r
+FD24 0636 064A;<final>;\r
+FD25 0634 062C;<final>;\r
+FD26 0634 062D;<final>;\r
+FD27 0634 062E;<final>;\r
+FD28 0634 0645;<final>;\r
+FD29 0634 0631;<final>;\r
+FD2A 0633 0631;<final>;\r
+FD2B 0635 0631;<final>;\r
+FD2C 0636 0631;<final>;\r
+FD2D 0634 062C;<initial>;\r
+FD2E 0634 062D;<initial>;\r
+FD2F 0634 062E;<initial>;\r
+FD30 0634 0645;<initial>;\r
+FD31 0633 0647;<initial>;\r
+FD32 0634 0647;<initial>;\r
+FD33 0637 0645;<initial>;\r
+FD34 0633 062C;<medial>;\r
+FD35 0633 062D;<medial>;\r
+FD36 0633 062E;<medial>;\r
+FD37 0634 062C;<medial>;\r
+FD38 0634 062D;<medial>;\r
+FD39 0634 062E;<medial>;\r
+FD3A 0637 0645;<medial>;\r
+FD3B 0638 0645;<medial>;\r
+FD3C 0627 064B;<final>;\r
+FD3D 0627 064B;<isolated>;\r
+FD50 062A 062C;<initial>;\r
+FD51 062A 062D;<final>;\r
+FD52 062A 062D;<initial>;\r
+FD53 062A 062D;<initial>;\r
+FD54 062A 062E;<initial>;\r
+FD55 062A 0645;<initial>;\r
+FD56 062A 0645;<initial>;\r
+FD57 062A 0645;<initial>;\r
+FD58 062C 0645;<final>;\r
+FD59 062C 0645;<initial>;\r
+FD5A 062D 0645;<final>;\r
+FD5B 062D 0645;<final>;\r
+FD5C 0633 062D;<initial>;\r
+FD5D 0633 062C;<initial>;\r
+FD5E 0633 062C;<final>;\r
+FD5F 0633 0645;<final>;\r
+FD60 0633 0645;<initial>;\r
+FD61 0633 0645;<initial>;\r
+FD62 0633 0645;<final>;\r
+FD63 0633 0645;<initial>;\r
+FD64 0635 062D;<final>;\r
+FD65 0635 062D;<initial>;\r
+FD66 0635 0645;<final>;\r
+FD67 0634 062D;<final>;\r
+FD68 0634 062D;<initial>;\r
+FD69 0634 062C;<final>;\r
+FD6A 0634 0645;<final>;\r
+FD6B 0634 0645;<initial>;\r
+FD6C 0634 0645;<final>;\r
+FD6D 0634 0645;<initial>;\r
+FD6E 0636 062D;<final>;\r
+FD6F 0636 062E;<final>;\r
+FD70 0636 062E;<initial>;\r
+FD71 0637 0645;<final>;\r
+FD72 0637 0645;<initial>;\r
+FD73 0637 0645;<initial>;\r
+FD74 0637 0645;<final>;\r
+FD75 0639 062C;<final>;\r
+FD76 0639 0645;<final>;\r
+FD77 0639 0645;<initial>;\r
+FD78 0639 0645;<final>;\r
+FD79 063A 0645;<final>;\r
+FD7A 063A 0645;<final>;\r
+FD7B 063A 0645;<final>;\r
+FD7C 0641 062E;<final>;\r
+FD7D 0641 062E;<initial>;\r
+FD7E 0642 0645;<final>;\r
+FD7F 0642 0645;<final>;\r
+FD80 0644 062D;<final>;\r
+FD81 0644 062D;<final>;\r
+FD82 0644 062D;<final>;\r
+FD83 0644 062C;<initial>;\r
+FD84 0644 062C;<final>;\r
+FD85 0644 062E;<final>;\r
+FD86 0644 062E;<initial>;\r
+FD87 0644 0645;<final>;\r
+FD88 0644 0645;<initial>;\r
+FD89 0645 062D;<initial>;\r
+FD8A 0645 062D;<initial>;\r
+FD8B 0645 062D;<final>;\r
+FD8C 0645 062C;<initial>;\r
+FD8D 0645 062C;<initial>;\r
+FD8E 0645 062E;<initial>;\r
+FD8F 0645 062E;<initial>;\r
+FD92 0645 062C;<initial>;\r
+FD93 0647 0645;<initial>;\r
+FD94 0647 0645;<initial>;\r
+FD95 0646 062D;<initial>;\r
+FD96 0646 062D;<final>;\r
+FD97 0646 062C;<final>;\r
+FD98 0646 062C;<initial>;\r
+FD99 0646 062C;<final>;\r
+FD9A 0646 0645;<final>;\r
+FD9B 0646 0645;<final>;\r
+FD9C 064A 0645;<final>;\r
+FD9D 064A 0645;<initial>;\r
+FD9E 0628 062E;<final>;\r
+FD9F 062A 062C;<final>;\r
+FDA0 062A 062C;<final>;\r
+FDA1 062A 062E;<final>;\r
+FDA2 062A 062E;<final>;\r
+FDA3 062A 0645;<final>;\r
+FDA4 062A 0645;<final>;\r
+FDA5 062C 0645;<final>;\r
+FDA6 062C 062D;<final>;\r
+FDA7 062C 0645;<final>;\r
+FDA8 0633 062E;<final>;\r
+FDA9 0635 062D;<final>;\r
+FDAA 0634 062D;<final>;\r
+FDAB 0636 062D;<final>;\r
+FDAC 0644 062C;<final>;\r
+FDAD 0644 0645;<final>;\r
+FDAE 064A 062D;<final>;\r
+FDAF 064A 062C;<final>;\r
+FDB0 064A 0645;<final>;\r
+FDB1 0645 0645;<final>;\r
+FDB2 0642 0645;<final>;\r
+FDB3 0646 062D;<final>;\r
+FDB4 0642 0645;<initial>;\r
+FDB5 0644 062D;<initial>;\r
+FDB6 0639 0645;<final>;\r
+FDB7 0643 0645;<final>;\r
+FDB8 0646 062C;<initial>;\r
+FDB9 0645 062E;<final>;\r
+FDBA 0644 062C;<initial>;\r
+FDBB 0643 0645;<final>;\r
+FDBC 0644 062C;<final>;\r
+FDBD 0646 062C;<final>;\r
+FDBE 062C 062D;<final>;\r
+FDBF 062D 062C;<final>;\r
+FDC0 0645 062C;<final>;\r
+FDC1 0641 0645;<final>;\r
+FDC2 0628 062D;<final>;\r
+FDC3 0643 0645;<initial>;\r
+FDC4 0639 062C;<initial>;\r
+FDC5 0635 0645;<initial>;\r
+FDC6 0633 062E;<final>;\r
+FDC7 0646 062C;<final>;\r
+FDF0 0635 0644;<isolated>;\r
+FDF1 0642 0644;<isolated>;\r
+FDF2 0627 0644;<isolated>;\r
+FDF3 0627 0643;<isolated>;\r
+FDF4 0645 062D;<isolated>;\r
+FDF5 0635 0644;<isolated>;\r
+FDF6 0631 0633;<isolated>;\r
+FDF7 0639 0644;<isolated>;\r
+FDF8 0648 0633;<isolated>;\r
+FDF9 0635 0644;<isolated>;\r
+FDFA 0635 0644;<isolated>;\r
+FDFB 062C 0644;<isolated>;\r
+FE30 2025 0000;<vertical>;\r
+FE31 2014 0000;<vertical>;\r
+FE32 2013 0000;<vertical>;\r
+FE33 005F 0000;<vertical>;\r
+FE34 005F 0000;<vertical>;\r
+FE35 0028 0000;<vertical>;\r
+FE36 0029 0000;<vertical>;\r
+FE37 007B 0000;<vertical>;\r
+FE38 007D 0000;<vertical>;\r
+FE39 3014 0000;<vertical>;\r
+FE3A 3015 0000;<vertical>;\r
+FE3B 3010 0000;<vertical>;\r
+FE3C 3011 0000;<vertical>;\r
+FE3D 300A 0000;<vertical>;\r
+FE3E 300B 0000;<vertical>;\r
+FE3F 3008 0000;<vertical>;\r
+FE40 3009 0000;<vertical>;\r
+FE41 300C 0000;<vertical>;\r
+FE42 300D 0000;<vertical>;\r
+FE43 300E 0000;<vertical>;\r
+FE44 300F 0000;<vertical>;\r
+FE49 203E 0000;<compat>;\r
+FE4A 203E 0000;<compat>;\r
+FE4B 203E 0000;<compat>;\r
+FE4C 203E 0000;<compat>;\r
+FE4D 005F 0000;<compat>;\r
+FE4E 005F 0000;<compat>;\r
+FE4F 005F 0000;<compat>;\r
+FE50 002C 0000;<small>;\r
+FE51 3001 0000;<small>;\r
+FE52 002E 0000;<small>;\r
+FE54 003B 0000;<small>;\r
+FE55 003A 0000;<small>;\r
+FE56 003F 0000;<small>;\r
+FE57 0021 0000;<small>;\r
+FE58 2014 0000;<small>;\r
+FE59 0028 0000;<small>;\r
+FE5A 0029 0000;<small>;\r
+FE5B 007B 0000;<small>;\r
+FE5C 007D 0000;<small>;\r
+FE5D 3014 0000;<small>;\r
+FE5E 3015 0000;<small>;\r
+FE5F 0023 0000;<small>;\r
+FE60 0026 0000;<small>;\r
+FE61 002A 0000;<small>;\r
+FE62 002B 0000;<small>;\r
+FE63 002D 0000;<small>;\r
+FE64 003C 0000;<small>;\r
+FE65 003E 0000;<small>;\r
+FE66 003D 0000;<small>;\r
+FE68 005C 0000;<small>;\r
+FE69 0024 0000;<small>;\r
+FE6A 0025 0000;<small>;\r
+FE6B 0040 0000;<small>;\r
+FE70 0020 064B;<isolated>;\r
+FE71 0640 064B;<medial>;\r
+FE72 0020 064C;<isolated>;\r
+FE74 0020 064D;<isolated>;\r
+FE76 0020 064E;<isolated>;\r
+FE77 0640 064E;<medial>;\r
+FE78 0020 064F;<isolated>;\r
+FE79 0640 064F;<medial>;\r
+FE7A 0020 0650;<isolated>;\r
+FE7B 0640 0650;<medial>;\r
+FE7C 0020 0651;<isolated>;\r
+FE7D 0640 0651;<medial>;\r
+FE7E 0020 0652;<isolated>;\r
+FE7F 0640 0652;<medial>;\r
+FE80 0621 0000;<isolated>;\r
+FE81 0622 0000;<isolated>;\r
+FE82 0622 0000;<final>;\r
+FE83 0623 0000;<isolated>;\r
+FE84 0623 0000;<final>;\r
+FE85 0624 0000;<isolated>;\r
+FE86 0624 0000;<final>;\r
+FE87 0625 0000;<isolated>;\r
+FE88 0625 0000;<final>;\r
+FE89 0626 0000;<isolated>;\r
+FE8A 0626 0000;<final>;\r
+FE8B 0626 0000;<initial>;\r
+FE8C 0626 0000;<medial>;\r
+FE8D 0627 0000;<isolated>;\r
+FE8E 0627 0000;<final>;\r
+FE8F 0628 0000;<isolated>;\r
+FE90 0628 0000;<final>;\r
+FE91 0628 0000;<initial>;\r
+FE92 0628 0000;<medial>;\r
+FE93 0629 0000;<isolated>;\r
+FE94 0629 0000;<final>;\r
+FE95 062A 0000;<isolated>;\r
+FE96 062A 0000;<final>;\r
+FE97 062A 0000;<initial>;\r
+FE98 062A 0000;<medial>;\r
+FE99 062B 0000;<isolated>;\r
+FE9A 062B 0000;<final>;\r
+FE9B 062B 0000;<initial>;\r
+FE9C 062B 0000;<medial>;\r
+FE9D 062C 0000;<isolated>;\r
+FE9E 062C 0000;<final>;\r
+FE9F 062C 0000;<initial>;\r
+FEA0 062C 0000;<medial>;\r
+FEA1 062D 0000;<isolated>;\r
+FEA2 062D 0000;<final>;\r
+FEA3 062D 0000;<initial>;\r
+FEA4 062D 0000;<medial>;\r
+FEA5 062E 0000;<isolated>;\r
+FEA6 062E 0000;<final>;\r
+FEA7 062E 0000;<initial>;\r
+FEA8 062E 0000;<medial>;\r
+FEA9 062F 0000;<isolated>;\r
+FEAA 062F 0000;<final>;\r
+FEAB 0630 0000;<isolated>;\r
+FEAC 0630 0000;<final>;\r
+FEAD 0631 0000;<isolated>;\r
+FEAE 0631 0000;<final>;\r
+FEAF 0632 0000;<isolated>;\r
+FEB0 0632 0000;<final>;\r
+FEB1 0633 0000;<isolated>;\r
+FEB2 0633 0000;<final>;\r
+FEB3 0633 0000;<initial>;\r
+FEB4 0633 0000;<medial>;\r
+FEB5 0634 0000;<isolated>;\r
+FEB6 0634 0000;<final>;\r
+FEB7 0634 0000;<initial>;\r
+FEB8 0634 0000;<medial>;\r
+FEB9 0635 0000;<isolated>;\r
+FEBA 0635 0000;<final>;\r
+FEBB 0635 0000;<initial>;\r
+FEBC 0635 0000;<medial>;\r
+FEBD 0636 0000;<isolated>;\r
+FEBE 0636 0000;<final>;\r
+FEBF 0636 0000;<initial>;\r
+FEC0 0636 0000;<medial>;\r
+FEC1 0637 0000;<isolated>;\r
+FEC2 0637 0000;<final>;\r
+FEC3 0637 0000;<initial>;\r
+FEC4 0637 0000;<medial>;\r
+FEC5 0638 0000;<isolated>;\r
+FEC6 0638 0000;<final>;\r
+FEC7 0638 0000;<initial>;\r
+FEC8 0638 0000;<medial>;\r
+FEC9 0639 0000;<isolated>;\r
+FECA 0639 0000;<final>;\r
+FECB 0639 0000;<initial>;\r
+FECC 0639 0000;<medial>;\r
+FECD 063A 0000;<isolated>;\r
+FECE 063A 0000;<final>;\r
+FECF 063A 0000;<initial>;\r
+FED0 063A 0000;<medial>;\r
+FED1 0641 0000;<isolated>;\r
+FED2 0641 0000;<final>;\r
+FED3 0641 0000;<initial>;\r
+FED4 0641 0000;<medial>;\r
+FED5 0642 0000;<isolated>;\r
+FED6 0642 0000;<final>;\r
+FED7 0642 0000;<initial>;\r
+FED8 0642 0000;<medial>;\r
+FED9 0643 0000;<isolated>;\r
+FEDA 0643 0000;<final>;\r
+FEDB 0643 0000;<initial>;\r
+FEDC 0643 0000;<medial>;\r
+FEDD 0644 0000;<isolated>;\r
+FEDE 0644 0000;<final>;\r
+FEDF 0644 0000;<initial>;\r
+FEE0 0644 0000;<medial>;\r
+FEE1 0645 0000;<isolated>;\r
+FEE2 0645 0000;<final>;\r
+FEE3 0645 0000;<initial>;\r
+FEE4 0645 0000;<medial>;\r
+FEE5 0646 0000;<isolated>;\r
+FEE6 0646 0000;<final>;\r
+FEE7 0646 0000;<initial>;\r
+FEE8 0646 0000;<medial>;\r
+FEE9 0647 0000;<isolated>;\r
+FEEA 0647 0000;<final>;\r
+FEEB 0647 0000;<initial>;\r
+FEEC 0647 0000;<medial>;\r
+FEED 0648 0000;<isolated>;\r
+FEEE 0648 0000;<final>;\r
+FEEF 0649 0000;<isolated>;\r
+FEF0 0649 0000;<final>;\r
+FEF1 064A 0000;<isolated>;\r
+FEF2 064A 0000;<final>;\r
+FEF3 064A 0000;<initial>;\r
+FEF4 064A 0000;<medial>;\r
+FEF5 0644 0622;<isolated>;\r
+FEF6 0644 0622;<final>;\r
+FEF7 0644 0623;<isolated>;\r
+FEF8 0644 0623;<final>;\r
+FEF9 0644 0625;<isolated>;\r
+FEFA 0644 0625;<final>;\r
+FEFB 0644 0627;<isolated>;\r
+FEFC 0644 0627;<final>;\r
+FF01 0021 0000;<wide>;\r
+FF02 0022 0000;<wide>;\r
+FF03 0023 0000;<wide>;\r
+FF04 0024 0000;<wide>;\r
+FF05 0025 0000;<wide>;\r
+FF06 0026 0000;<wide>;\r
+FF07 0027 0000;<wide>;\r
+FF08 0028 0000;<wide>;\r
+FF09 0029 0000;<wide>;\r
+FF0A 002A 0000;<wide>;\r
+FF0B 002B 0000;<wide>;\r
+FF0C 002C 0000;<wide>;\r
+FF0D 002D 0000;<wide>;\r
+FF0E 002E 0000;<wide>;\r
+FF0F 002F 0000;<wide>;\r
+FF10 0030 0000;<wide>;\r
+FF11 0031 0000;<wide>;\r
+FF12 0032 0000;<wide>;\r
+FF13 0033 0000;<wide>;\r
+FF14 0034 0000;<wide>;\r
+FF15 0035 0000;<wide>;\r
+FF16 0036 0000;<wide>;\r
+FF17 0037 0000;<wide>;\r
+FF18 0038 0000;<wide>;\r
+FF19 0039 0000;<wide>;\r
+FF1A 003A 0000;<wide>;\r
+FF1B 003B 0000;<wide>;\r
+FF1C 003C 0000;<wide>;\r
+FF1D 003D 0000;<wide>;\r
+FF1E 003E 0000;<wide>;\r
+FF1F 003F 0000;<wide>;\r
+FF20 0040 0000;<wide>;\r
+FF21 0041 0000;<wide>;\r
+FF22 0042 0000;<wide>;\r
+FF23 0043 0000;<wide>;\r
+FF24 0044 0000;<wide>;\r
+FF25 0045 0000;<wide>;\r
+FF26 0046 0000;<wide>;\r
+FF27 0047 0000;<wide>;\r
+FF28 0048 0000;<wide>;\r
+FF29 0049 0000;<wide>;\r
+FF2A 004A 0000;<wide>;\r
+FF2B 004B 0000;<wide>;\r
+FF2C 004C 0000;<wide>;\r
+FF2D 004D 0000;<wide>;\r
+FF2E 004E 0000;<wide>;\r
+FF2F 004F 0000;<wide>;\r
+FF30 0050 0000;<wide>;\r
+FF31 0051 0000;<wide>;\r
+FF32 0052 0000;<wide>;\r
+FF33 0053 0000;<wide>;\r
+FF34 0054 0000;<wide>;\r
+FF35 0055 0000;<wide>;\r
+FF36 0056 0000;<wide>;\r
+FF37 0057 0000;<wide>;\r
+FF38 0058 0000;<wide>;\r
+FF39 0059 0000;<wide>;\r
+FF3A 005A 0000;<wide>;\r
+FF3B 005B 0000;<wide>;\r
+FF3C 005C 0000;<wide>;\r
+FF3D 005D 0000;<wide>;\r
+FF3E 005E 0000;<wide>;\r
+FF3F 005F 0000;<wide>;\r
+FF40 0060 0000;<wide>;\r
+FF41 0061 0000;<wide>;\r
+FF42 0062 0000;<wide>;\r
+FF43 0063 0000;<wide>;\r
+FF44 0064 0000;<wide>;\r
+FF45 0065 0000;<wide>;\r
+FF46 0066 0000;<wide>;\r
+FF47 0067 0000;<wide>;\r
+FF48 0068 0000;<wide>;\r
+FF49 0069 0000;<wide>;\r
+FF4A 006A 0000;<wide>;\r
+FF4B 006B 0000;<wide>;\r
+FF4C 006C 0000;<wide>;\r
+FF4D 006D 0000;<wide>;\r
+FF4E 006E 0000;<wide>;\r
+FF4F 006F 0000;<wide>;\r
+FF50 0070 0000;<wide>;\r
+FF51 0071 0000;<wide>;\r
+FF52 0072 0000;<wide>;\r
+FF53 0073 0000;<wide>;\r
+FF54 0074 0000;<wide>;\r
+FF55 0075 0000;<wide>;\r
+FF56 0076 0000;<wide>;\r
+FF57 0077 0000;<wide>;\r
+FF58 0078 0000;<wide>;\r
+FF59 0079 0000;<wide>;\r
+FF5A 007A 0000;<wide>;\r
+FF5B 007B 0000;<wide>;\r
+FF5C 007C 0000;<wide>;\r
+FF5D 007D 0000;<wide>;\r
+FF5E 007E 0000;<wide>;\r
+FF61 3002 0000;<narrow>;\r
+FF62 300C 0000;<narrow>;\r
+FF63 300D 0000;<narrow>;\r
+FF64 3001 0000;<narrow>;\r
+FF65 30FB 0000;<narrow>;\r
+FF66 30F2 0000;<narrow>;\r
+FF67 30A1 0000;<narrow>;\r
+FF68 30A3 0000;<narrow>;\r
+FF69 30A5 0000;<narrow>;\r
+FF6A 30A7 0000;<narrow>;\r
+FF6B 30A9 0000;<narrow>;\r
+FF6C 30E3 0000;<narrow>;\r
+FF6D 30E5 0000;<narrow>;\r
+FF6E 30E7 0000;<narrow>;\r
+FF6F 30C3 0000;<narrow>;\r
+FF70 30FC 0000;<narrow>;\r
+FF71 30A2 0000;<narrow>;\r
+FF72 30A4 0000;<narrow>;\r
+FF73 30A6 0000;<narrow>;\r
+FF74 30A8 0000;<narrow>;\r
+FF75 30AA 0000;<narrow>;\r
+FF76 30AB 0000;<narrow>;\r
+FF77 30AD 0000;<narrow>;\r
+FF78 30AF 0000;<narrow>;\r
+FF79 30B1 0000;<narrow>;\r
+FF7A 30B3 0000;<narrow>;\r
+FF7B 30B5 0000;<narrow>;\r
+FF7C 30B7 0000;<narrow>;\r
+FF7D 30B9 0000;<narrow>;\r
+FF7E 30BB 0000;<narrow>;\r
+FF7F 30BD 0000;<narrow>;\r
+FF80 30BF 0000;<narrow>;\r
+FF81 30C1 0000;<narrow>;\r
+FF82 30C4 0000;<narrow>;\r
+FF83 30C6 0000;<narrow>;\r
+FF84 30C8 0000;<narrow>;\r
+FF85 30CA 0000;<narrow>;\r
+FF86 30CB 0000;<narrow>;\r
+FF87 30CC 0000;<narrow>;\r
+FF88 30CD 0000;<narrow>;\r
+FF89 30CE 0000;<narrow>;\r
+FF8A 30CF 0000;<narrow>;\r
+FF8B 30D2 0000;<narrow>;\r
+FF8C 30D5 0000;<narrow>;\r
+FF8D 30D8 0000;<narrow>;\r
+FF8E 30DB 0000;<narrow>;\r
+FF8F 30DE 0000;<narrow>;\r
+FF90 30DF 0000;<narrow>;\r
+FF91 30E0 0000;<narrow>;\r
+FF92 30E1 0000;<narrow>;\r
+FF93 30E2 0000;<narrow>;\r
+FF94 30E4 0000;<narrow>;\r
+FF95 30E6 0000;<narrow>;\r
+FF96 30E8 0000;<narrow>;\r
+FF97 30E9 0000;<narrow>;\r
+FF98 30EA 0000;<narrow>;\r
+FF99 30EB 0000;<narrow>;\r
+FF9A 30EC 0000;<narrow>;\r
+FF9B 30ED 0000;<narrow>;\r
+FF9C 30EF 0000;<narrow>;\r
+FF9D 30F3 0000;<narrow>;\r
+FF9E 3099 0000;<narrow>;\r
+FF9F 309A 0000;<narrow>;\r
+FFA0 3164 0000;<narrow>;\r
+FFA1 3131 0000;<narrow>;\r
+FFA2 3132 0000;<narrow>;\r
+FFA3 3133 0000;<narrow>;\r
+FFA4 3134 0000;<narrow>;\r
+FFA5 3135 0000;<narrow>;\r
+FFA6 3136 0000;<narrow>;\r
+FFA7 3137 0000;<narrow>;\r
+FFA8 3138 0000;<narrow>;\r
+FFA9 3139 0000;<narrow>;\r
+FFAA 313A 0000;<narrow>;\r
+FFAB 313B 0000;<narrow>;\r
+FFAC 313C 0000;<narrow>;\r
+FFAD 313D 0000;<narrow>;\r
+FFAE 313E 0000;<narrow>;\r
+FFAF 313F 0000;<narrow>;\r
+FFB0 3140 0000;<narrow>;\r
+FFB1 3141 0000;<narrow>;\r
+FFB2 3142 0000;<narrow>;\r
+FFB3 3143 0000;<narrow>;\r
+FFB4 3144 0000;<narrow>;\r
+FFB5 3145 0000;<narrow>;\r
+FFB6 3146 0000;<narrow>;\r
+FFB7 3147 0000;<narrow>;\r
+FFB8 3148 0000;<narrow>;\r
+FFB9 3149 0000;<narrow>;\r
+FFBA 314A 0000;<narrow>;\r
+FFBB 314B 0000;<narrow>;\r
+FFBC 314C 0000;<narrow>;\r
+FFBD 314D 0000;<narrow>;\r
+FFBE 314E 0000;<narrow>;\r
+FFC2 314F 0000;<narrow>;\r
+FFC3 3150 0000;<narrow>;\r
+FFC4 3151 0000;<narrow>;\r
+FFC5 3152 0000;<narrow>;\r
+FFC6 3153 0000;<narrow>;\r
+FFC7 3154 0000;<narrow>;\r
+FFCA 3155 0000;<narrow>;\r
+FFCB 3156 0000;<narrow>;\r
+FFCC 3157 0000;<narrow>;\r
+FFCD 3158 0000;<narrow>;\r
+FFCE 3159 0000;<narrow>;\r
+FFCF 315A 0000;<narrow>;\r
+FFD2 315B 0000;<narrow>;\r
+FFD3 315C 0000;<narrow>;\r
+FFD4 315D 0000;<narrow>;\r
+FFD5 315E 0000;<narrow>;\r
+FFD6 315F 0000;<narrow>;\r
+FFD7 3160 0000;<narrow>;\r
+FFDA 3161 0000;<narrow>;\r
+FFDB 3162 0000;<narrow>;\r
+FFDC 3163 0000;<narrow>;\r
+FFE0 00A2 0000;<wide>;\r
+FFE1 00A3 0000;<wide>;\r
+FFE2 00AC 0000;<wide>;\r
+FFE3 00AF 0000;<wide>;\r
+FFE4 00A6 0000;<wide>;\r
+FFE5 00A5 0000;<wide>;\r
+FFE6 20A9 0000;<wide>;\r
+FFE8 2502 0000;<narrow>;\r
+FFE9 2190 0000;<narrow>;\r
+FFEA 2191 0000;<narrow>;\r
+FFEB 2192 0000;<narrow>;\r
+FFEC 2193 0000;<narrow>;\r
+FFED 25A0 0000;<narrow>;\r
+FFEE 25CB 0000;<narrow>;\r
diff --git a/data/uni-prop.txt b/data/uni-prop.txt
new file mode 100644 (file)
index 0000000..f512225
--- /dev/null
@@ -0,0 +1,10620 @@
+# uni-prop.txt - Unicode character properties\r
+0000;Cc;BN;\r
+0001;Cc;BN;\r
+0002;Cc;BN;\r
+0003;Cc;BN;\r
+0004;Cc;BN;\r
+0005;Cc;BN;\r
+0006;Cc;BN;\r
+0007;Cc;BN;\r
+0008;Cc;BN;\r
+0009;Cc;S;\r
+000A;Cc;B;\r
+000B;Cc;S;\r
+000C;Cc;WS;\r
+000D;Cc;B;\r
+000E;Cc;BN;\r
+000F;Cc;BN;\r
+0010;Cc;BN;\r
+0011;Cc;BN;\r
+0012;Cc;BN;\r
+0013;Cc;BN;\r
+0014;Cc;BN;\r
+0015;Cc;BN;\r
+0016;Cc;BN;\r
+0017;Cc;BN;\r
+0018;Cc;BN;\r
+0019;Cc;BN;\r
+001A;Cc;BN;\r
+001B;Cc;BN;\r
+001C;Cc;B;\r
+001D;Cc;B;\r
+001E;Cc;B;\r
+001F;Cc;S;\r
+0020;Zs;WS;\r
+0021;Po;ON;\r
+0022;Po;ON;\r
+0023;Po;ET;\r
+0024;Sc;ET;\r
+0025;Po;ET;\r
+0026;Po;ON;\r
+0027;Po;ON;\r
+0028;Ps;ON;\r
+0029;Pe;ON;\r
+002A;Po;ON;\r
+002B;Sm;ET;\r
+002C;Po;CS;\r
+002D;Pd;ET;\r
+002E;Po;CS;\r
+002F;Po;ES;\r
+0030;Nd;EN;\r
+0031;Nd;EN;\r
+0032;Nd;EN;\r
+0033;Nd;EN;\r
+0034;Nd;EN;\r
+0035;Nd;EN;\r
+0036;Nd;EN;\r
+0037;Nd;EN;\r
+0038;Nd;EN;\r
+0039;Nd;EN;\r
+003A;Po;CS;\r
+003B;Po;ON;\r
+003C;Sm;ON;\r
+003D;Sm;ON;\r
+003E;Sm;ON;\r
+003F;Po;ON;\r
+0040;Po;ON;\r
+0041;Lu;L;\r
+0042;Lu;L;\r
+0043;Lu;L;\r
+0044;Lu;L;\r
+0045;Lu;L;\r
+0046;Lu;L;\r
+0047;Lu;L;\r
+0048;Lu;L;\r
+0049;Lu;L;\r
+004A;Lu;L;\r
+004B;Lu;L;\r
+004C;Lu;L;\r
+004D;Lu;L;\r
+004E;Lu;L;\r
+004F;Lu;L;\r
+0050;Lu;L;\r
+0051;Lu;L;\r
+0052;Lu;L;\r
+0053;Lu;L;\r
+0054;Lu;L;\r
+0055;Lu;L;\r
+0056;Lu;L;\r
+0057;Lu;L;\r
+0058;Lu;L;\r
+0059;Lu;L;\r
+005A;Lu;L;\r
+005B;Ps;ON;\r
+005C;Po;ON;\r
+005D;Pe;ON;\r
+005E;Sk;ON;\r
+005F;Pc;ON;\r
+0060;Sk;ON;\r
+0061;Ll;L;\r
+0062;Ll;L;\r
+0063;Ll;L;\r
+0064;Ll;L;\r
+0065;Ll;L;\r
+0066;Ll;L;\r
+0067;Ll;L;\r
+0068;Ll;L;\r
+0069;Ll;L;\r
+006A;Ll;L;\r
+006B;Ll;L;\r
+006C;Ll;L;\r
+006D;Ll;L;\r
+006E;Ll;L;\r
+006F;Ll;L;\r
+0070;Ll;L;\r
+0071;Ll;L;\r
+0072;Ll;L;\r
+0073;Ll;L;\r
+0074;Ll;L;\r
+0075;Ll;L;\r
+0076;Ll;L;\r
+0077;Ll;L;\r
+0078;Ll;L;\r
+0079;Ll;L;\r
+007A;Ll;L;\r
+007B;Ps;ON;\r
+007C;Sm;ON;\r
+007D;Pe;ON;\r
+007E;Sm;ON;\r
+007F;Cc;BN;\r
+0080;Cc;BN;\r
+0081;Cc;BN;\r
+0082;Cc;BN;\r
+0083;Cc;BN;\r
+0084;Cc;BN;\r
+0085;Cc;B;\r
+0086;Cc;BN;\r
+0087;Cc;BN;\r
+0088;Cc;BN;\r
+0089;Cc;BN;\r
+008A;Cc;BN;\r
+008B;Cc;BN;\r
+008C;Cc;BN;\r
+008D;Cc;BN;\r
+008E;Cc;BN;\r
+008F;Cc;BN;\r
+0090;Cc;BN;\r
+0091;Cc;BN;\r
+0092;Cc;BN;\r
+0093;Cc;BN;\r
+0094;Cc;BN;\r
+0095;Cc;BN;\r
+0096;Cc;BN;\r
+0097;Cc;BN;\r
+0098;Cc;BN;\r
+0099;Cc;BN;\r
+009A;Cc;BN;\r
+009B;Cc;BN;\r
+009C;Cc;BN;\r
+009D;Cc;BN;\r
+009E;Cc;BN;\r
+009F;Cc;BN;\r
+00A0;Zs;CS;\r
+00A1;Po;ON;\r
+00A2;Sc;ET;\r
+00A3;Sc;ET;\r
+00A4;Sc;ET;\r
+00A5;Sc;ET;\r
+00A6;So;ON;\r
+00A7;So;ON;\r
+00A8;Sk;ON;\r
+00A9;So;ON;\r
+00AA;Ll;L;\r
+00AB;Pi;ON;\r
+00AC;Sm;ON;\r
+00AD;Pd;ON;\r
+00AE;So;ON;\r
+00AF;Sk;ON;\r
+00B0;So;ET;\r
+00B1;Sm;ET;\r
+00B2;No;EN;\r
+00B3;No;EN;\r
+00B4;Sk;ON;\r
+00B5;Ll;L;\r
+00B6;So;ON;\r
+00B7;Po;ON;\r
+00B8;Sk;ON;\r
+00B9;No;EN;\r
+00BA;Ll;L;\r
+00BB;Pf;ON;\r
+00BC;No;ON;\r
+00BD;No;ON;\r
+00BE;No;ON;\r
+00BF;Po;ON;\r
+00C0;Lu;L;\r
+00C1;Lu;L;\r
+00C2;Lu;L;\r
+00C3;Lu;L;\r
+00C4;Lu;L;\r
+00C5;Lu;L;\r
+00C6;Lu;L;\r
+00C7;Lu;L;\r
+00C8;Lu;L;\r
+00C9;Lu;L;\r
+00CA;Lu;L;\r
+00CB;Lu;L;\r
+00CC;Lu;L;\r
+00CD;Lu;L;\r
+00CE;Lu;L;\r
+00CF;Lu;L;\r
+00D0;Lu;L;\r
+00D1;Lu;L;\r
+00D2;Lu;L;\r
+00D3;Lu;L;\r
+00D4;Lu;L;\r
+00D5;Lu;L;\r
+00D6;Lu;L;\r
+00D7;Sm;ON;\r
+00D8;Lu;L;\r
+00D9;Lu;L;\r
+00DA;Lu;L;\r
+00DB;Lu;L;\r
+00DC;Lu;L;\r
+00DD;Lu;L;\r
+00DE;Lu;L;\r
+00DF;Ll;L;\r
+00E0;Ll;L;\r
+00E1;Ll;L;\r
+00E2;Ll;L;\r
+00E3;Ll;L;\r
+00E4;Ll;L;\r
+00E5;Ll;L;\r
+00E6;Ll;L;\r
+00E7;Ll;L;\r
+00E8;Ll;L;\r
+00E9;Ll;L;\r
+00EA;Ll;L;\r
+00EB;Ll;L;\r
+00EC;Ll;L;\r
+00ED;Ll;L;\r
+00EE;Ll;L;\r
+00EF;Ll;L;\r
+00F0;Ll;L;\r
+00F1;Ll;L;\r
+00F2;Ll;L;\r
+00F3;Ll;L;\r
+00F4;Ll;L;\r
+00F5;Ll;L;\r
+00F6;Ll;L;\r
+00F7;Sm;ON;\r
+00F8;Ll;L;\r
+00F9;Ll;L;\r
+00FA;Ll;L;\r
+00FB;Ll;L;\r
+00FC;Ll;L;\r
+00FD;Ll;L;\r
+00FE;Ll;L;\r
+00FF;Ll;L;\r
+0100;Lu;L;\r
+0101;Ll;L;\r
+0102;Lu;L;\r
+0103;Ll;L;\r
+0104;Lu;L;\r
+0105;Ll;L;\r
+0106;Lu;L;\r
+0107;Ll;L;\r
+0108;Lu;L;\r
+0109;Ll;L;\r
+010A;Lu;L;\r
+010B;Ll;L;\r
+010C;Lu;L;\r
+010D;Ll;L;\r
+010E;Lu;L;\r
+010F;Ll;L;\r
+0110;Lu;L;\r
+0111;Ll;L;\r
+0112;Lu;L;\r
+0113;Ll;L;\r
+0114;Lu;L;\r
+0115;Ll;L;\r
+0116;Lu;L;\r
+0117;Ll;L;\r
+0118;Lu;L;\r
+0119;Ll;L;\r
+011A;Lu;L;\r
+011B;Ll;L;\r
+011C;Lu;L;\r
+011D;Ll;L;\r
+011E;Lu;L;\r
+011F;Ll;L;\r
+0120;Lu;L;\r
+0121;Ll;L;\r
+0122;Lu;L;\r
+0123;Ll;L;\r
+0124;Lu;L;\r
+0125;Ll;L;\r
+0126;Lu;L;\r
+0127;Ll;L;\r
+0128;Lu;L;\r
+0129;Ll;L;\r
+012A;Lu;L;\r
+012B;Ll;L;\r
+012C;Lu;L;\r
+012D;Ll;L;\r
+012E;Lu;L;\r
+012F;Ll;L;\r
+0130;Lu;L;\r
+0131;Ll;L;\r
+0132;Lu;L;\r
+0133;Ll;L;\r
+0134;Lu;L;\r
+0135;Ll;L;\r
+0136;Lu;L;\r
+0137;Ll;L;\r
+0138;Ll;L;\r
+0139;Lu;L;\r
+013A;Ll;L;\r
+013B;Lu;L;\r
+013C;Ll;L;\r
+013D;Lu;L;\r
+013E;Ll;L;\r
+013F;Lu;L;\r
+0140;Ll;L;\r
+0141;Lu;L;\r
+0142;Ll;L;\r
+0143;Lu;L;\r
+0144;Ll;L;\r
+0145;Lu;L;\r
+0146;Ll;L;\r
+0147;Lu;L;\r
+0148;Ll;L;\r
+0149;Ll;L;\r
+014A;Lu;L;\r
+014B;Ll;L;\r
+014C;Lu;L;\r
+014D;Ll;L;\r
+014E;Lu;L;\r
+014F;Ll;L;\r
+0150;Lu;L;\r
+0151;Ll;L;\r
+0152;Lu;L;\r
+0153;Ll;L;\r
+0154;Lu;L;\r
+0155;Ll;L;\r
+0156;Lu;L;\r
+0157;Ll;L;\r
+0158;Lu;L;\r
+0159;Ll;L;\r
+015A;Lu;L;\r
+015B;Ll;L;\r
+015C;Lu;L;\r
+015D;Ll;L;\r
+015E;Lu;L;\r
+015F;Ll;L;\r
+0160;Lu;L;\r
+0161;Ll;L;\r
+0162;Lu;L;\r
+0163;Ll;L;\r
+0164;Lu;L;\r
+0165;Ll;L;\r
+0166;Lu;L;\r
+0167;Ll;L;\r
+0168;Lu;L;\r
+0169;Ll;L;\r
+016A;Lu;L;\r
+016B;Ll;L;\r
+016C;Lu;L;\r
+016D;Ll;L;\r
+016E;Lu;L;\r
+016F;Ll;L;\r
+0170;Lu;L;\r
+0171;Ll;L;\r
+0172;Lu;L;\r
+0173;Ll;L;\r
+0174;Lu;L;\r
+0175;Ll;L;\r
+0176;Lu;L;\r
+0177;Ll;L;\r
+0178;Lu;L;\r
+0179;Lu;L;\r
+017A;Ll;L;\r
+017B;Lu;L;\r
+017C;Ll;L;\r
+017D;Lu;L;\r
+017E;Ll;L;\r
+017F;Ll;L;\r
+0180;Ll;L;\r
+0181;Lu;L;\r
+0182;Lu;L;\r
+0183;Ll;L;\r
+0184;Lu;L;\r
+0185;Ll;L;\r
+0186;Lu;L;\r
+0187;Lu;L;\r
+0188;Ll;L;\r
+0189;Lu;L;\r
+018A;Lu;L;\r
+018B;Lu;L;\r
+018C;Ll;L;\r
+018D;Ll;L;\r
+018E;Lu;L;\r
+018F;Lu;L;\r
+0190;Lu;L;\r
+0191;Lu;L;\r
+0192;Ll;L;\r
+0193;Lu;L;\r
+0194;Lu;L;\r
+0195;Ll;L;\r
+0196;Lu;L;\r
+0197;Lu;L;\r
+0198;Lu;L;\r
+0199;Ll;L;\r
+019A;Ll;L;\r
+019B;Ll;L;\r
+019C;Lu;L;\r
+019D;Lu;L;\r
+019E;Ll;L;\r
+019F;Lu;L;\r
+01A0;Lu;L;\r
+01A1;Ll;L;\r
+01A2;Lu;L;\r
+01A3;Ll;L;\r
+01A4;Lu;L;\r
+01A5;Ll;L;\r
+01A6;Lu;L;\r
+01A7;Lu;L;\r
+01A8;Ll;L;\r
+01A9;Lu;L;\r
+01AA;Ll;L;\r
+01AB;Ll;L;\r
+01AC;Lu;L;\r
+01AD;Ll;L;\r
+01AE;Lu;L;\r
+01AF;Lu;L;\r
+01B0;Ll;L;\r
+01B1;Lu;L;\r
+01B2;Lu;L;\r
+01B3;Lu;L;\r
+01B4;Ll;L;\r
+01B5;Lu;L;\r
+01B6;Ll;L;\r
+01B7;Lu;L;\r
+01B8;Lu;L;\r
+01B9;Ll;L;\r
+01BA;Ll;L;\r
+01BB;Lo;L;\r
+01BC;Lu;L;\r
+01BD;Ll;L;\r
+01BE;Ll;L;\r
+01BF;Ll;L;\r
+01C0;Lo;L;\r
+01C1;Lo;L;\r
+01C2;Lo;L;\r
+01C3;Lo;L;\r
+01C4;Lu;L;\r
+01C5;Lt;L;\r
+01C6;Ll;L;\r
+01C7;Lu;L;\r
+01C8;Lt;L;\r
+01C9;Ll;L;\r
+01CA;Lu;L;\r
+01CB;Lt;L;\r
+01CC;Ll;L;\r
+01CD;Lu;L;\r
+01CE;Ll;L;\r
+01CF;Lu;L;\r
+01D0;Ll;L;\r
+01D1;Lu;L;\r
+01D2;Ll;L;\r
+01D3;Lu;L;\r
+01D4;Ll;L;\r
+01D5;Lu;L;\r
+01D6;Ll;L;\r
+01D7;Lu;L;\r
+01D8;Ll;L;\r
+01D9;Lu;L;\r
+01DA;Ll;L;\r
+01DB;Lu;L;\r
+01DC;Ll;L;\r
+01DD;Ll;L;\r
+01DE;Lu;L;\r
+01DF;Ll;L;\r
+01E0;Lu;L;\r
+01E1;Ll;L;\r
+01E2;Lu;L;\r
+01E3;Ll;L;\r
+01E4;Lu;L;\r
+01E5;Ll;L;\r
+01E6;Lu;L;\r
+01E7;Ll;L;\r
+01E8;Lu;L;\r
+01E9;Ll;L;\r
+01EA;Lu;L;\r
+01EB;Ll;L;\r
+01EC;Lu;L;\r
+01ED;Ll;L;\r
+01EE;Lu;L;\r
+01EF;Ll;L;\r
+01F0;Ll;L;\r
+01F1;Lu;L;\r
+01F2;Lt;L;\r
+01F3;Ll;L;\r
+01F4;Lu;L;\r
+01F5;Ll;L;\r
+01F6;Lu;L;\r
+01F7;Lu;L;\r
+01F8;Lu;L;\r
+01F9;Ll;L;\r
+01FA;Lu;L;\r
+01FB;Ll;L;\r
+01FC;Lu;L;\r
+01FD;Ll;L;\r
+01FE;Lu;L;\r
+01FF;Ll;L;\r
+0200;Lu;L;\r
+0201;Ll;L;\r
+0202;Lu;L;\r
+0203;Ll;L;\r
+0204;Lu;L;\r
+0205;Ll;L;\r
+0206;Lu;L;\r
+0207;Ll;L;\r
+0208;Lu;L;\r
+0209;Ll;L;\r
+020A;Lu;L;\r
+020B;Ll;L;\r
+020C;Lu;L;\r
+020D;Ll;L;\r
+020E;Lu;L;\r
+020F;Ll;L;\r
+0210;Lu;L;\r
+0211;Ll;L;\r
+0212;Lu;L;\r
+0213;Ll;L;\r
+0214;Lu;L;\r
+0215;Ll;L;\r
+0216;Lu;L;\r
+0217;Ll;L;\r
+0218;Lu;L;\r
+0219;Ll;L;\r
+021A;Lu;L;\r
+021B;Ll;L;\r
+021C;Lu;L;\r
+021D;Ll;L;\r
+021E;Lu;L;\r
+021F;Ll;L;\r
+0222;Lu;L;\r
+0223;Ll;L;\r
+0224;Lu;L;\r
+0225;Ll;L;\r
+0226;Lu;L;\r
+0227;Ll;L;\r
+0228;Lu;L;\r
+0229;Ll;L;\r
+022A;Lu;L;\r
+022B;Ll;L;\r
+022C;Lu;L;\r
+022D;Ll;L;\r
+022E;Lu;L;\r
+022F;Ll;L;\r
+0230;Lu;L;\r
+0231;Ll;L;\r
+0232;Lu;L;\r
+0233;Ll;L;\r
+0250;Ll;L;\r
+0251;Ll;L;\r
+0252;Ll;L;\r
+0253;Ll;L;\r
+0254;Ll;L;\r
+0255;Ll;L;\r
+0256;Ll;L;\r
+0257;Ll;L;\r
+0258;Ll;L;\r
+0259;Ll;L;\r
+025A;Ll;L;\r
+025B;Ll;L;\r
+025C;Ll;L;\r
+025D;Ll;L;\r
+025E;Ll;L;\r
+025F;Ll;L;\r
+0260;Ll;L;\r
+0261;Ll;L;\r
+0262;Ll;L;\r
+0263;Ll;L;\r
+0264;Ll;L;\r
+0265;Ll;L;\r
+0266;Ll;L;\r
+0267;Ll;L;\r
+0268;Ll;L;\r
+0269;Ll;L;\r
+026A;Ll;L;\r
+026B;Ll;L;\r
+026C;Ll;L;\r
+026D;Ll;L;\r
+026E;Ll;L;\r
+026F;Ll;L;\r
+0270;Ll;L;\r
+0271;Ll;L;\r
+0272;Ll;L;\r
+0273;Ll;L;\r
+0274;Ll;L;\r
+0275;Ll;L;\r
+0276;Ll;L;\r
+0277;Ll;L;\r
+0278;Ll;L;\r
+0279;Ll;L;\r
+027A;Ll;L;\r
+027B;Ll;L;\r
+027C;Ll;L;\r
+027D;Ll;L;\r
+027E;Ll;L;\r
+027F;Ll;L;\r
+0280;Ll;L;\r
+0281;Ll;L;\r
+0282;Ll;L;\r
+0283;Ll;L;\r
+0284;Ll;L;\r
+0285;Ll;L;\r
+0286;Ll;L;\r
+0287;Ll;L;\r
+0288;Ll;L;\r
+0289;Ll;L;\r
+028A;Ll;L;\r
+028B;Ll;L;\r
+028C;Ll;L;\r
+028D;Ll;L;\r
+028E;Ll;L;\r
+028F;Ll;L;\r
+0290;Ll;L;\r
+0291;Ll;L;\r
+0292;Ll;L;\r
+0293;Ll;L;\r
+0294;Ll;L;\r
+0295;Ll;L;\r
+0296;Ll;L;\r
+0297;Ll;L;\r
+0298;Ll;L;\r
+0299;Ll;L;\r
+029A;Ll;L;\r
+029B;Ll;L;\r
+029C;Ll;L;\r
+029D;Ll;L;\r
+029E;Ll;L;\r
+029F;Ll;L;\r
+02A0;Ll;L;\r
+02A1;Ll;L;\r
+02A2;Ll;L;\r
+02A3;Ll;L;\r
+02A4;Ll;L;\r
+02A5;Ll;L;\r
+02A6;Ll;L;\r
+02A7;Ll;L;\r
+02A8;Ll;L;\r
+02A9;Ll;L;\r
+02AA;Ll;L;\r
+02AB;Ll;L;\r
+02AC;Ll;L;\r
+02AD;Ll;L;\r
+02B0;Lm;L;\r
+02B1;Lm;L;\r
+02B2;Lm;L;\r
+02B3;Lm;L;\r
+02B4;Lm;L;\r
+02B5;Lm;L;\r
+02B6;Lm;L;\r
+02B7;Lm;L;\r
+02B8;Lm;L;\r
+02B9;Sk;ON;\r
+02BA;Sk;ON;\r
+02BB;Lm;L;\r
+02BC;Lm;L;\r
+02BD;Lm;L;\r
+02BE;Lm;L;\r
+02BF;Lm;L;\r
+02C0;Lm;L;\r
+02C1;Lm;L;\r
+02C2;Sk;ON;\r
+02C3;Sk;ON;\r
+02C4;Sk;ON;\r
+02C5;Sk;ON;\r
+02C6;Sk;ON;\r
+02C7;Sk;ON;\r
+02C8;Sk;ON;\r
+02C9;Sk;ON;\r
+02CA;Sk;ON;\r
+02CB;Sk;ON;\r
+02CC;Sk;ON;\r
+02CD;Sk;ON;\r
+02CE;Sk;ON;\r
+02CF;Sk;ON;\r
+02D0;Lm;L;\r
+02D1;Lm;L;\r
+02D2;Sk;ON;\r
+02D3;Sk;ON;\r
+02D4;Sk;ON;\r
+02D5;Sk;ON;\r
+02D6;Sk;ON;\r
+02D7;Sk;ON;\r
+02D8;Sk;ON;\r
+02D9;Sk;ON;\r
+02DA;Sk;ON;\r
+02DB;Sk;ON;\r
+02DC;Sk;ON;\r
+02DD;Sk;ON;\r
+02DE;Sk;ON;\r
+02DF;Sk;ON;\r
+02E0;Lm;L;\r
+02E1;Lm;L;\r
+02E2;Lm;L;\r
+02E3;Lm;L;\r
+02E4;Lm;L;\r
+02E5;Sk;ON;\r
+02E6;Sk;ON;\r
+02E7;Sk;ON;\r
+02E8;Sk;ON;\r
+02E9;Sk;ON;\r
+02EA;Sk;ON;\r
+02EB;Sk;ON;\r
+02EC;Sk;ON;\r
+02ED;Sk;ON;\r
+02EE;Lm;L;\r
+0300;Mn;NSM;\r
+0301;Mn;NSM;\r
+0302;Mn;NSM;\r
+0303;Mn;NSM;\r
+0304;Mn;NSM;\r
+0305;Mn;NSM;\r
+0306;Mn;NSM;\r
+0307;Mn;NSM;\r
+0308;Mn;NSM;\r
+0309;Mn;NSM;\r
+030A;Mn;NSM;\r
+030B;Mn;NSM;\r
+030C;Mn;NSM;\r
+030D;Mn;NSM;\r
+030E;Mn;NSM;\r
+030F;Mn;NSM;\r
+0310;Mn;NSM;\r
+0311;Mn;NSM;\r
+0312;Mn;NSM;\r
+0313;Mn;NSM;\r
+0314;Mn;NSM;\r
+0315;Mn;NSM;\r
+0316;Mn;NSM;\r
+0317;Mn;NSM;\r
+0318;Mn;NSM;\r
+0319;Mn;NSM;\r
+031A;Mn;NSM;\r
+031B;Mn;NSM;\r
+031C;Mn;NSM;\r
+031D;Mn;NSM;\r
+031E;Mn;NSM;\r
+031F;Mn;NSM;\r
+0320;Mn;NSM;\r
+0321;Mn;NSM;\r
+0322;Mn;NSM;\r
+0323;Mn;NSM;\r
+0324;Mn;NSM;\r
+0325;Mn;NSM;\r
+0326;Mn;NSM;\r
+0327;Mn;NSM;\r
+0328;Mn;NSM;\r
+0329;Mn;NSM;\r
+032A;Mn;NSM;\r
+032B;Mn;NSM;\r
+032C;Mn;NSM;\r
+032D;Mn;NSM;\r
+032E;Mn;NSM;\r
+032F;Mn;NSM;\r
+0330;Mn;NSM;\r
+0331;Mn;NSM;\r
+0332;Mn;NSM;\r
+0333;Mn;NSM;\r
+0334;Mn;NSM;\r
+0335;Mn;NSM;\r
+0336;Mn;NSM;\r
+0337;Mn;NSM;\r
+0338;Mn;NSM;\r
+0339;Mn;NSM;\r
+033A;Mn;NSM;\r
+033B;Mn;NSM;\r
+033C;Mn;NSM;\r
+033D;Mn;NSM;\r
+033E;Mn;NSM;\r
+033F;Mn;NSM;\r
+0340;Mn;NSM;\r
+0341;Mn;NSM;\r
+0342;Mn;NSM;\r
+0343;Mn;NSM;\r
+0344;Mn;NSM;\r
+0345;Mn;NSM;\r
+0346;Mn;NSM;\r
+0347;Mn;NSM;\r
+0348;Mn;NSM;\r
+0349;Mn;NSM;\r
+034A;Mn;NSM;\r
+034B;Mn;NSM;\r
+034C;Mn;NSM;\r
+034D;Mn;NSM;\r
+034E;Mn;NSM;\r
+0360;Mn;NSM;\r
+0361;Mn;NSM;\r
+0362;Mn;NSM;\r
+0374;Sk;ON;\r
+0375;Sk;ON;\r
+037A;Lm;L;\r
+037E;Po;ON;\r
+0384;Sk;ON;\r
+0385;Sk;ON;\r
+0386;Lu;L;\r
+0387;Po;ON;\r
+0388;Lu;L;\r
+0389;Lu;L;\r
+038A;Lu;L;\r
+038C;Lu;L;\r
+038E;Lu;L;\r
+038F;Lu;L;\r
+0390;Ll;L;\r
+0391;Lu;L;\r
+0392;Lu;L;\r
+0393;Lu;L;\r
+0394;Lu;L;\r
+0395;Lu;L;\r
+0396;Lu;L;\r
+0397;Lu;L;\r
+0398;Lu;L;\r
+0399;Lu;L;\r
+039A;Lu;L;\r
+039B;Lu;L;\r
+039C;Lu;L;\r
+039D;Lu;L;\r
+039E;Lu;L;\r
+039F;Lu;L;\r
+03A0;Lu;L;\r
+03A1;Lu;L;\r
+03A3;Lu;L;\r
+03A4;Lu;L;\r
+03A5;Lu;L;\r
+03A6;Lu;L;\r
+03A7;Lu;L;\r
+03A8;Lu;L;\r
+03A9;Lu;L;\r
+03AA;Lu;L;\r
+03AB;Lu;L;\r
+03AC;Ll;L;\r
+03AD;Ll;L;\r
+03AE;Ll;L;\r
+03AF;Ll;L;\r
+03B0;Ll;L;\r
+03B1;Ll;L;\r
+03B2;Ll;L;\r
+03B3;Ll;L;\r
+03B4;Ll;L;\r
+03B5;Ll;L;\r
+03B6;Ll;L;\r
+03B7;Ll;L;\r
+03B8;Ll;L;\r
+03B9;Ll;L;\r
+03BA;Ll;L;\r
+03BB;Ll;L;\r
+03BC;Ll;L;\r
+03BD;Ll;L;\r
+03BE;Ll;L;\r
+03BF;Ll;L;\r
+03C0;Ll;L;\r
+03C1;Ll;L;\r
+03C2;Ll;L;\r
+03C3;Ll;L;\r
+03C4;Ll;L;\r
+03C5;Ll;L;\r
+03C6;Ll;L;\r
+03C7;Ll;L;\r
+03C8;Ll;L;\r
+03C9;Ll;L;\r
+03CA;Ll;L;\r
+03CB;Ll;L;\r
+03CC;Ll;L;\r
+03CD;Ll;L;\r
+03CE;Ll;L;\r
+03D0;Ll;L;\r
+03D1;Ll;L;\r
+03D2;Lu;L;\r
+03D3;Lu;L;\r
+03D4;Lu;L;\r
+03D5;Ll;L;\r
+03D6;Ll;L;\r
+03D7;Ll;L;\r
+03DA;Lu;L;\r
+03DB;Ll;L;\r
+03DC;Lu;L;\r
+03DD;Ll;L;\r
+03DE;Lu;L;\r
+03DF;Ll;L;\r
+03E0;Lu;L;\r
+03E1;Ll;L;\r
+03E2;Lu;L;\r
+03E3;Ll;L;\r
+03E4;Lu;L;\r
+03E5;Ll;L;\r
+03E6;Lu;L;\r
+03E7;Ll;L;\r
+03E8;Lu;L;\r
+03E9;Ll;L;\r
+03EA;Lu;L;\r
+03EB;Ll;L;\r
+03EC;Lu;L;\r
+03ED;Ll;L;\r
+03EE;Lu;L;\r
+03EF;Ll;L;\r
+03F0;Ll;L;\r
+03F1;Ll;L;\r
+03F2;Ll;L;\r
+03F3;Ll;L;\r
+03F4;Lu;L;\r
+03F5;Ll;L;\r
+0400;Lu;L;\r
+0401;Lu;L;\r
+0402;Lu;L;\r
+0403;Lu;L;\r
+0404;Lu;L;\r
+0405;Lu;L;\r
+0406;Lu;L;\r
+0407;Lu;L;\r
+0408;Lu;L;\r
+0409;Lu;L;\r
+040A;Lu;L;\r
+040B;Lu;L;\r
+040C;Lu;L;\r
+040D;Lu;L;\r
+040E;Lu;L;\r
+040F;Lu;L;\r
+0410;Lu;L;\r
+0411;Lu;L;\r
+0412;Lu;L;\r
+0413;Lu;L;\r
+0414;Lu;L;\r
+0415;Lu;L;\r
+0416;Lu;L;\r
+0417;Lu;L;\r
+0418;Lu;L;\r
+0419;Lu;L;\r
+041A;Lu;L;\r
+041B;Lu;L;\r
+041C;Lu;L;\r
+041D;Lu;L;\r
+041E;Lu;L;\r
+041F;Lu;L;\r
+0420;Lu;L;\r
+0421;Lu;L;\r
+0422;Lu;L;\r
+0423;Lu;L;\r
+0424;Lu;L;\r
+0425;Lu;L;\r
+0426;Lu;L;\r
+0427;Lu;L;\r
+0428;Lu;L;\r
+0429;Lu;L;\r
+042A;Lu;L;\r
+042B;Lu;L;\r
+042C;Lu;L;\r
+042D;Lu;L;\r
+042E;Lu;L;\r
+042F;Lu;L;\r
+0430;Ll;L;\r
+0431;Ll;L;\r
+0432;Ll;L;\r
+0433;Ll;L;\r
+0434;Ll;L;\r
+0435;Ll;L;\r
+0436;Ll;L;\r
+0437;Ll;L;\r
+0438;Ll;L;\r
+0439;Ll;L;\r
+043A;Ll;L;\r
+043B;Ll;L;\r
+043C;Ll;L;\r
+043D;Ll;L;\r
+043E;Ll;L;\r
+043F;Ll;L;\r
+0440;Ll;L;\r
+0441;Ll;L;\r
+0442;Ll;L;\r
+0443;Ll;L;\r
+0444;Ll;L;\r
+0445;Ll;L;\r
+0446;Ll;L;\r
+0447;Ll;L;\r
+0448;Ll;L;\r
+0449;Ll;L;\r
+044A;Ll;L;\r
+044B;Ll;L;\r
+044C;Ll;L;\r
+044D;Ll;L;\r
+044E;Ll;L;\r
+044F;Ll;L;\r
+0450;Ll;L;\r
+0451;Ll;L;\r
+0452;Ll;L;\r
+0453;Ll;L;\r
+0454;Ll;L;\r
+0455;Ll;L;\r
+0456;Ll;L;\r
+0457;Ll;L;\r
+0458;Ll;L;\r
+0459;Ll;L;\r
+045A;Ll;L;\r
+045B;Ll;L;\r
+045C;Ll;L;\r
+045D;Ll;L;\r
+045E;Ll;L;\r
+045F;Ll;L;\r
+0460;Lu;L;\r
+0461;Ll;L;\r
+0462;Lu;L;\r
+0463;Ll;L;\r
+0464;Lu;L;\r
+0465;Ll;L;\r
+0466;Lu;L;\r
+0467;Ll;L;\r
+0468;Lu;L;\r
+0469;Ll;L;\r
+046A;Lu;L;\r
+046B;Ll;L;\r
+046C;Lu;L;\r
+046D;Ll;L;\r
+046E;Lu;L;\r
+046F;Ll;L;\r
+0470;Lu;L;\r
+0471;Ll;L;\r
+0472;Lu;L;\r
+0473;Ll;L;\r
+0474;Lu;L;\r
+0475;Ll;L;\r
+0476;Lu;L;\r
+0477;Ll;L;\r
+0478;Lu;L;\r
+0479;Ll;L;\r
+047A;Lu;L;\r
+047B;Ll;L;\r
+047C;Lu;L;\r
+047D;Ll;L;\r
+047E;Lu;L;\r
+047F;Ll;L;\r
+0480;Lu;L;\r
+0481;Ll;L;\r
+0482;So;L;\r
+0483;Mn;NSM;\r
+0484;Mn;NSM;\r
+0485;Mn;NSM;\r
+0486;Mn;NSM;\r
+0488;Me;NSM;\r
+0489;Me;NSM;\r
+048C;Lu;L;\r
+048D;Ll;L;\r
+048E;Lu;L;\r
+048F;Ll;L;\r
+0490;Lu;L;\r
+0491;Ll;L;\r
+0492;Lu;L;\r
+0493;Ll;L;\r
+0494;Lu;L;\r
+0495;Ll;L;\r
+0496;Lu;L;\r
+0497;Ll;L;\r
+0498;Lu;L;\r
+0499;Ll;L;\r
+049A;Lu;L;\r
+049B;Ll;L;\r
+049C;Lu;L;\r
+049D;Ll;L;\r
+049E;Lu;L;\r
+049F;Ll;L;\r
+04A0;Lu;L;\r
+04A1;Ll;L;\r
+04A2;Lu;L;\r
+04A3;Ll;L;\r
+04A4;Lu;L;\r
+04A5;Ll;L;\r
+04A6;Lu;L;\r
+04A7;Ll;L;\r
+04A8;Lu;L;\r
+04A9;Ll;L;\r
+04AA;Lu;L;\r
+04AB;Ll;L;\r
+04AC;Lu;L;\r
+04AD;Ll;L;\r
+04AE;Lu;L;\r
+04AF;Ll;L;\r
+04B0;Lu;L;\r
+04B1;Ll;L;\r
+04B2;Lu;L;\r
+04B3;Ll;L;\r
+04B4;Lu;L;\r
+04B5;Ll;L;\r
+04B6;Lu;L;\r
+04B7;Ll;L;\r
+04B8;Lu;L;\r
+04B9;Ll;L;\r
+04BA;Lu;L;\r
+04BB;Ll;L;\r
+04BC;Lu;L;\r
+04BD;Ll;L;\r
+04BE;Lu;L;\r
+04BF;Ll;L;\r
+04C0;Lu;L;\r
+04C1;Lu;L;\r
+04C2;Ll;L;\r
+04C3;Lu;L;\r
+04C4;Ll;L;\r
+04C7;Lu;L;\r
+04C8;Ll;L;\r
+04CB;Lu;L;\r
+04CC;Ll;L;\r
+04D0;Lu;L;\r
+04D1;Ll;L;\r
+04D2;Lu;L;\r
+04D3;Ll;L;\r
+04D4;Lu;L;\r
+04D5;Ll;L;\r
+04D6;Lu;L;\r
+04D7;Ll;L;\r
+04D8;Lu;L;\r
+04D9;Ll;L;\r
+04DA;Lu;L;\r
+04DB;Ll;L;\r
+04DC;Lu;L;\r
+04DD;Ll;L;\r
+04DE;Lu;L;\r
+04DF;Ll;L;\r
+04E0;Lu;L;\r
+04E1;Ll;L;\r
+04E2;Lu;L;\r
+04E3;Ll;L;\r
+04E4;Lu;L;\r
+04E5;Ll;L;\r
+04E6;Lu;L;\r
+04E7;Ll;L;\r
+04E8;Lu;L;\r
+04E9;Ll;L;\r
+04EA;Lu;L;\r
+04EB;Ll;L;\r
+04EC;Lu;L;\r
+04ED;Ll;L;\r
+04EE;Lu;L;\r
+04EF;Ll;L;\r
+04F0;Lu;L;\r
+04F1;Ll;L;\r
+04F2;Lu;L;\r
+04F3;Ll;L;\r
+04F4;Lu;L;\r
+04F5;Ll;L;\r
+04F8;Lu;L;\r
+04F9;Ll;L;\r
+0531;Lu;L;\r
+0532;Lu;L;\r
+0533;Lu;L;\r
+0534;Lu;L;\r
+0535;Lu;L;\r
+0536;Lu;L;\r
+0537;Lu;L;\r
+0538;Lu;L;\r
+0539;Lu;L;\r
+053A;Lu;L;\r
+053B;Lu;L;\r
+053C;Lu;L;\r
+053D;Lu;L;\r
+053E;Lu;L;\r
+053F;Lu;L;\r
+0540;Lu;L;\r
+0541;Lu;L;\r
+0542;Lu;L;\r
+0543;Lu;L;\r
+0544;Lu;L;\r
+0545;Lu;L;\r
+0546;Lu;L;\r
+0547;Lu;L;\r
+0548;Lu;L;\r
+0549;Lu;L;\r
+054A;Lu;L;\r
+054B;Lu;L;\r
+054C;Lu;L;\r
+054D;Lu;L;\r
+054E;Lu;L;\r
+054F;Lu;L;\r
+0550;Lu;L;\r
+0551;Lu;L;\r
+0552;Lu;L;\r
+0553;Lu;L;\r
+0554;Lu;L;\r
+0555;Lu;L;\r
+0556;Lu;L;\r
+0559;Lm;L;\r
+055A;Po;L;\r
+055B;Po;L;\r
+055C;Po;L;\r
+055D;Po;L;\r
+055E;Po;L;\r
+055F;Po;L;\r
+0561;Ll;L;\r
+0562;Ll;L;\r
+0563;Ll;L;\r
+0564;Ll;L;\r
+0565;Ll;L;\r
+0566;Ll;L;\r
+0567;Ll;L;\r
+0568;Ll;L;\r
+0569;Ll;L;\r
+056A;Ll;L;\r
+056B;Ll;L;\r
+056C;Ll;L;\r
+056D;Ll;L;\r
+056E;Ll;L;\r
+056F;Ll;L;\r
+0570;Ll;L;\r
+0571;Ll;L;\r
+0572;Ll;L;\r
+0573;Ll;L;\r
+0574;Ll;L;\r
+0575;Ll;L;\r
+0576;Ll;L;\r
+0577;Ll;L;\r
+0578;Ll;L;\r
+0579;Ll;L;\r
+057A;Ll;L;\r
+057B;Ll;L;\r
+057C;Ll;L;\r
+057D;Ll;L;\r
+057E;Ll;L;\r
+057F;Ll;L;\r
+0580;Ll;L;\r
+0581;Ll;L;\r
+0582;Ll;L;\r
+0583;Ll;L;\r
+0584;Ll;L;\r
+0585;Ll;L;\r
+0586;Ll;L;\r
+0587;Ll;L;\r
+0589;Po;L;\r
+058A;Pd;ON;\r
+0591;Mn;NSM;\r
+0592;Mn;NSM;\r
+0593;Mn;NSM;\r
+0594;Mn;NSM;\r
+0595;Mn;NSM;\r
+0596;Mn;NSM;\r
+0597;Mn;NSM;\r
+0598;Mn;NSM;\r
+0599;Mn;NSM;\r
+059A;Mn;NSM;\r
+059B;Mn;NSM;\r
+059C;Mn;NSM;\r
+059D;Mn;NSM;\r
+059E;Mn;NSM;\r
+059F;Mn;NSM;\r
+05A0;Mn;NSM;\r
+05A1;Mn;NSM;\r
+05A3;Mn;NSM;\r
+05A4;Mn;NSM;\r
+05A5;Mn;NSM;\r
+05A6;Mn;NSM;\r
+05A7;Mn;NSM;\r
+05A8;Mn;NSM;\r
+05A9;Mn;NSM;\r
+05AA;Mn;NSM;\r
+05AB;Mn;NSM;\r
+05AC;Mn;NSM;\r
+05AD;Mn;NSM;\r
+05AE;Mn;NSM;\r
+05AF;Mn;NSM;\r
+05B0;Mn;NSM;\r
+05B1;Mn;NSM;\r
+05B2;Mn;NSM;\r
+05B3;Mn;NSM;\r
+05B4;Mn;NSM;\r
+05B5;Mn;NSM;\r
+05B6;Mn;NSM;\r
+05B7;Mn;NSM;\r
+05B8;Mn;NSM;\r
+05B9;Mn;NSM;\r
+05BB;Mn;NSM;\r
+05BC;Mn;NSM;\r
+05BD;Mn;NSM;\r
+05BE;Po;R;\r
+05BF;Mn;NSM;\r
+05C0;Po;R;\r
+05C1;Mn;NSM;\r
+05C2;Mn;NSM;\r
+05C3;Po;R;\r
+05C4;Mn;NSM;\r
+05D0;Lo;R;\r
+05D1;Lo;R;\r
+05D2;Lo;R;\r
+05D3;Lo;R;\r
+05D4;Lo;R;\r
+05D5;Lo;R;\r
+05D6;Lo;R;\r
+05D7;Lo;R;\r
+05D8;Lo;R;\r
+05D9;Lo;R;\r
+05DA;Lo;R;\r
+05DB;Lo;R;\r
+05DC;Lo;R;\r
+05DD;Lo;R;\r
+05DE;Lo;R;\r
+05DF;Lo;R;\r
+05E0;Lo;R;\r
+05E1;Lo;R;\r
+05E2;Lo;R;\r
+05E3;Lo;R;\r
+05E4;Lo;R;\r
+05E5;Lo;R;\r
+05E6;Lo;R;\r
+05E7;Lo;R;\r
+05E8;Lo;R;\r
+05E9;Lo;R;\r
+05EA;Lo;R;\r
+05F0;Lo;R;\r
+05F1;Lo;R;\r
+05F2;Lo;R;\r
+05F3;Po;R;\r
+05F4;Po;R;\r
+060C;Po;CS;\r
+061B;Po;AL;\r
+061F;Po;AL;\r
+0621;Lo;AL;\r
+0622;Lo;AL;\r
+0623;Lo;AL;\r
+0624;Lo;AL;\r
+0625;Lo;AL;\r
+0626;Lo;AL;\r
+0627;Lo;AL;\r
+0628;Lo;AL;\r
+0629;Lo;AL;\r
+062A;Lo;AL;\r
+062B;Lo;AL;\r
+062C;Lo;AL;\r
+062D;Lo;AL;\r
+062E;Lo;AL;\r
+062F;Lo;AL;\r
+0630;Lo;AL;\r
+0631;Lo;AL;\r
+0632;Lo;AL;\r
+0633;Lo;AL;\r
+0634;Lo;AL;\r
+0635;Lo;AL;\r
+0636;Lo;AL;\r
+0637;Lo;AL;\r
+0638;Lo;AL;\r
+0639;Lo;AL;\r
+063A;Lo;AL;\r
+0640;Lm;AL;\r
+0641;Lo;AL;\r
+0642;Lo;AL;\r
+0643;Lo;AL;\r
+0644;Lo;AL;\r
+0645;Lo;AL;\r
+0646;Lo;AL;\r
+0647;Lo;AL;\r
+0648;Lo;AL;\r
+0649;Lo;AL;\r
+064A;Lo;AL;\r
+064B;Mn;NSM;\r
+064C;Mn;NSM;\r
+064D;Mn;NSM;\r
+064E;Mn;NSM;\r
+064F;Mn;NSM;\r
+0650;Mn;NSM;\r
+0651;Mn;NSM;\r
+0652;Mn;NSM;\r
+0653;Mn;NSM;\r
+0654;Mn;NSM;\r
+0655;Mn;NSM;\r
+0660;Nd;AN;\r
+0661;Nd;AN;\r
+0662;Nd;AN;\r
+0663;Nd;AN;\r
+0664;Nd;AN;\r
+0665;Nd;AN;\r
+0666;Nd;AN;\r
+0667;Nd;AN;\r
+0668;Nd;AN;\r
+0669;Nd;AN;\r
+066A;Po;ET;\r
+066B;Po;AN;\r
+066C;Po;AN;\r
+066D;Po;AL;\r
+0670;Mn;NSM;\r
+0671;Lo;AL;\r
+0672;Lo;AL;\r
+0673;Lo;AL;\r
+0674;Lo;AL;\r
+0675;Lo;AL;\r
+0676;Lo;AL;\r
+0677;Lo;AL;\r
+0678;Lo;AL;\r
+0679;Lo;AL;\r
+067A;Lo;AL;\r
+067B;Lo;AL;\r
+067C;Lo;AL;\r
+067D;Lo;AL;\r
+067E;Lo;AL;\r
+067F;Lo;AL;\r
+0680;Lo;AL;\r
+0681;Lo;AL;\r
+0682;Lo;AL;\r
+0683;Lo;AL;\r
+0684;Lo;AL;\r
+0685;Lo;AL;\r
+0686;Lo;AL;\r
+0687;Lo;AL;\r
+0688;Lo;AL;\r
+0689;Lo;AL;\r
+068A;Lo;AL;\r
+068B;Lo;AL;\r
+068C;Lo;AL;\r
+068D;Lo;AL;\r
+068E;Lo;AL;\r
+068F;Lo;AL;\r
+0690;Lo;AL;\r
+0691;Lo;AL;\r
+0692;Lo;AL;\r
+0693;Lo;AL;\r
+0694;Lo;AL;\r
+0695;Lo;AL;\r
+0696;Lo;AL;\r
+0697;Lo;AL;\r
+0698;Lo;AL;\r
+0699;Lo;AL;\r
+069A;Lo;AL;\r
+069B;Lo;AL;\r
+069C;Lo;AL;\r
+069D;Lo;AL;\r
+069E;Lo;AL;\r
+069F;Lo;AL;\r
+06A0;Lo;AL;\r
+06A1;Lo;AL;\r
+06A2;Lo;AL;\r
+06A3;Lo;AL;\r
+06A4;Lo;AL;\r
+06A5;Lo;AL;\r
+06A6;Lo;AL;\r
+06A7;Lo;AL;\r
+06A8;Lo;AL;\r
+06A9;Lo;AL;\r
+06AA;Lo;AL;\r
+06AB;Lo;AL;\r
+06AC;Lo;AL;\r
+06AD;Lo;AL;\r
+06AE;Lo;AL;\r
+06AF;Lo;AL;\r
+06B0;Lo;AL;\r
+06B1;Lo;AL;\r
+06B2;Lo;AL;\r
+06B3;Lo;AL;\r
+06B4;Lo;AL;\r
+06B5;Lo;AL;\r
+06B6;Lo;AL;\r
+06B7;Lo;AL;\r
+06B8;Lo;AL;\r
+06B9;Lo;AL;\r
+06BA;Lo;AL;\r
+06BB;Lo;AL;\r
+06BC;Lo;AL;\r
+06BD;Lo;AL;\r
+06BE;Lo;AL;\r
+06BF;Lo;AL;\r
+06C0;Lo;AL;\r
+06C1;Lo;AL;\r
+06C2;Lo;AL;\r
+06C3;Lo;AL;\r
+06C4;Lo;AL;\r
+06C5;Lo;AL;\r
+06C6;Lo;AL;\r
+06C7;Lo;AL;\r
+06C8;Lo;AL;\r
+06C9;Lo;AL;\r
+06CA;Lo;AL;\r
+06CB;Lo;AL;\r
+06CC;Lo;AL;\r
+06CD;Lo;AL;\r
+06CE;Lo;AL;\r
+06CF;Lo;AL;\r
+06D0;Lo;AL;\r
+06D1;Lo;AL;\r
+06D2;Lo;AL;\r
+06D3;Lo;AL;\r
+06D4;Po;AL;\r
+06D5;Lo;AL;\r
+06D6;Mn;NSM;\r
+06D7;Mn;NSM;\r
+06D8;Mn;NSM;\r
+06D9;Mn;NSM;\r
+06DA;Mn;NSM;\r
+06DB;Mn;NSM;\r
+06DC;Mn;NSM;\r
+06DD;Me;NSM;\r
+06DE;Me;NSM;\r
+06DF;Mn;NSM;\r
+06E0;Mn;NSM;\r
+06E1;Mn;NSM;\r
+06E2;Mn;NSM;\r
+06E3;Mn;NSM;\r
+06E4;Mn;NSM;\r
+06E5;Lm;AL;\r
+06E6;Lm;AL;\r
+06E7;Mn;NSM;\r
+06E8;Mn;NSM;\r
+06E9;So;ON;\r
+06EA;Mn;NSM;\r
+06EB;Mn;NSM;\r
+06EC;Mn;NSM;\r
+06ED;Mn;NSM;\r
+06F0;Nd;EN;\r
+06F1;Nd;EN;\r
+06F2;Nd;EN;\r
+06F3;Nd;EN;\r
+06F4;Nd;EN;\r
+06F5;Nd;EN;\r
+06F6;Nd;EN;\r
+06F7;Nd;EN;\r
+06F8;Nd;EN;\r
+06F9;Nd;EN;\r
+06FA;Lo;AL;\r
+06FB;Lo;AL;\r
+06FC;Lo;AL;\r
+06FD;So;AL;\r
+06FE;So;AL;\r
+0700;Po;AL;\r
+0701;Po;AL;\r
+0702;Po;AL;\r
+0703;Po;AL;\r
+0704;Po;AL;\r
+0705;Po;AL;\r
+0706;Po;AL;\r
+0707;Po;AL;\r
+0708;Po;AL;\r
+0709;Po;AL;\r
+070A;Po;AL;\r
+070B;Po;AL;\r
+070C;Po;AL;\r
+070D;Po;AL;\r
+070F;Cf;BN;\r
+0710;Lo;AL;\r
+0711;Mn;NSM;\r
+0712;Lo;AL;\r
+0713;Lo;AL;\r
+0714;Lo;AL;\r
+0715;Lo;AL;\r
+0716;Lo;AL;\r
+0717;Lo;AL;\r
+0718;Lo;AL;\r
+0719;Lo;AL;\r
+071A;Lo;AL;\r
+071B;Lo;AL;\r
+071C;Lo;AL;\r
+071D;Lo;AL;\r
+071E;Lo;AL;\r
+071F;Lo;AL;\r
+0720;Lo;AL;\r
+0721;Lo;AL;\r
+0722;Lo;AL;\r
+0723;Lo;AL;\r
+0724;Lo;AL;\r
+0725;Lo;AL;\r
+0726;Lo;AL;\r
+0727;Lo;AL;\r
+0728;Lo;AL;\r
+0729;Lo;AL;\r
+072A;Lo;AL;\r
+072B;Lo;AL;\r
+072C;Lo;AL;\r
+0730;Mn;NSM;\r
+0731;Mn;NSM;\r
+0732;Mn;NSM;\r
+0733;Mn;NSM;\r
+0734;Mn;NSM;\r
+0735;Mn;NSM;\r
+0736;Mn;NSM;\r
+0737;Mn;NSM;\r
+0738;Mn;NSM;\r
+0739;Mn;NSM;\r
+073A;Mn;NSM;\r
+073B;Mn;NSM;\r
+073C;Mn;NSM;\r
+073D;Mn;NSM;\r
+073E;Mn;NSM;\r
+073F;Mn;NSM;\r
+0740;Mn;NSM;\r
+0741;Mn;NSM;\r
+0742;Mn;NSM;\r
+0743;Mn;NSM;\r
+0744;Mn;NSM;\r
+0745;Mn;NSM;\r
+0746;Mn;NSM;\r
+0747;Mn;NSM;\r
+0748;Mn;NSM;\r
+0749;Mn;NSM;\r
+074A;Mn;NSM;\r
+0780;Lo;AL;\r
+0781;Lo;AL;\r
+0782;Lo;AL;\r
+0783;Lo;AL;\r
+0784;Lo;AL;\r
+0785;Lo;AL;\r
+0786;Lo;AL;\r
+0787;Lo;AL;\r
+0788;Lo;AL;\r
+0789;Lo;AL;\r
+078A;Lo;AL;\r
+078B;Lo;AL;\r
+078C;Lo;AL;\r
+078D;Lo;AL;\r
+078E;Lo;AL;\r
+078F;Lo;AL;\r
+0790;Lo;AL;\r
+0791;Lo;AL;\r
+0792;Lo;AL;\r
+0793;Lo;AL;\r
+0794;Lo;AL;\r
+0795;Lo;AL;\r
+0796;Lo;AL;\r
+0797;Lo;AL;\r
+0798;Lo;AL;\r
+0799;Lo;AL;\r
+079A;Lo;AL;\r
+079B;Lo;AL;\r
+079C;Lo;AL;\r
+079D;Lo;AL;\r
+079E;Lo;AL;\r
+079F;Lo;AL;\r
+07A0;Lo;AL;\r
+07A1;Lo;AL;\r
+07A2;Lo;AL;\r
+07A3;Lo;AL;\r
+07A4;Lo;AL;\r
+07A5;Lo;AL;\r
+07A6;Mn;NSM;\r
+07A7;Mn;NSM;\r
+07A8;Mn;NSM;\r
+07A9;Mn;NSM;\r
+07AA;Mn;NSM;\r
+07AB;Mn;NSM;\r
+07AC;Mn;NSM;\r
+07AD;Mn;NSM;\r
+07AE;Mn;NSM;\r
+07AF;Mn;NSM;\r
+07B0;Mn;NSM;\r
+0901;Mn;NSM;\r
+0902;Mn;NSM;\r
+0903;Mc;L;\r
+0905;Lo;L;\r
+0906;Lo;L;\r
+0907;Lo;L;\r
+0908;Lo;L;\r
+0909;Lo;L;\r
+090A;Lo;L;\r
+090B;Lo;L;\r
+090C;Lo;L;\r
+090D;Lo;L;\r
+090E;Lo;L;\r
+090F;Lo;L;\r
+0910;Lo;L;\r
+0911;Lo;L;\r
+0912;Lo;L;\r
+0913;Lo;L;\r
+0914;Lo;L;\r
+0915;Lo;L;\r
+0916;Lo;L;\r
+0917;Lo;L;\r
+0918;Lo;L;\r
+0919;Lo;L;\r
+091A;Lo;L;\r
+091B;Lo;L;\r
+091C;Lo;L;\r
+091D;Lo;L;\r
+091E;Lo;L;\r
+091F;Lo;L;\r
+0920;Lo;L;\r
+0921;Lo;L;\r
+0922;Lo;L;\r
+0923;Lo;L;\r
+0924;Lo;L;\r
+0925;Lo;L;\r
+0926;Lo;L;\r
+0927;Lo;L;\r
+0928;Lo;L;\r
+0929;Lo;L;\r
+092A;Lo;L;\r
+092B;Lo;L;\r
+092C;Lo;L;\r
+092D;Lo;L;\r
+092E;Lo;L;\r
+092F;Lo;L;\r
+0930;Lo;L;\r
+0931;Lo;L;\r
+0932;Lo;L;\r
+0933;Lo;L;\r
+0934;Lo;L;\r
+0935;Lo;L;\r
+0936;Lo;L;\r
+0937;Lo;L;\r
+0938;Lo;L;\r
+0939;Lo;L;\r
+093C;Mn;NSM;\r
+093D;Lo;L;\r
+093E;Mc;L;\r
+093F;Mc;L;\r
+0940;Mc;L;\r
+0941;Mn;NSM;\r
+0942;Mn;NSM;\r
+0943;Mn;NSM;\r
+0944;Mn;NSM;\r
+0945;Mn;NSM;\r
+0946;Mn;NSM;\r
+0947;Mn;NSM;\r
+0948;Mn;NSM;\r
+0949;Mc;L;\r
+094A;Mc;L;\r
+094B;Mc;L;\r
+094C;Mc;L;\r
+094D;Mn;NSM;\r
+0950;Lo;L;\r
+0951;Mn;NSM;\r
+0952;Mn;NSM;\r
+0953;Mn;NSM;\r
+0954;Mn;NSM;\r
+0958;Lo;L;\r
+0959;Lo;L;\r
+095A;Lo;L;\r
+095B;Lo;L;\r
+095C;Lo;L;\r
+095D;Lo;L;\r
+095E;Lo;L;\r
+095F;Lo;L;\r
+0960;Lo;L;\r
+0961;Lo;L;\r
+0962;Mn;NSM;\r
+0963;Mn;NSM;\r
+0964;Po;L;\r
+0965;Po;L;\r
+0966;Nd;L;\r
+0967;Nd;L;\r
+0968;Nd;L;\r
+0969;Nd;L;\r
+096A;Nd;L;\r
+096B;Nd;L;\r
+096C;Nd;L;\r
+096D;Nd;L;\r
+096E;Nd;L;\r
+096F;Nd;L;\r
+0970;Po;L;\r
+0981;Mn;NSM;\r
+0982;Mc;L;\r
+0983;Mc;L;\r
+0985;Lo;L;\r
+0986;Lo;L;\r
+0987;Lo;L;\r
+0988;Lo;L;\r
+0989;Lo;L;\r
+098A;Lo;L;\r
+098B;Lo;L;\r
+098C;Lo;L;\r
+098F;Lo;L;\r
+0990;Lo;L;\r
+0993;Lo;L;\r
+0994;Lo;L;\r
+0995;Lo;L;\r
+0996;Lo;L;\r
+0997;Lo;L;\r
+0998;Lo;L;\r
+0999;Lo;L;\r
+099A;Lo;L;\r
+099B;Lo;L;\r
+099C;Lo;L;\r
+099D;Lo;L;\r
+099E;Lo;L;\r
+099F;Lo;L;\r
+09A0;Lo;L;\r
+09A1;Lo;L;\r
+09A2;Lo;L;\r
+09A3;Lo;L;\r
+09A4;Lo;L;\r
+09A5;Lo;L;\r
+09A6;Lo;L;\r
+09A7;Lo;L;\r
+09A8;Lo;L;\r
+09AA;Lo;L;\r
+09AB;Lo;L;\r
+09AC;Lo;L;\r
+09AD;Lo;L;\r
+09AE;Lo;L;\r
+09AF;Lo;L;\r
+09B0;Lo;L;\r
+09B2;Lo;L;\r
+09B6;Lo;L;\r
+09B7;Lo;L;\r
+09B8;Lo;L;\r
+09B9;Lo;L;\r
+09BC;Mn;NSM;\r
+09BE;Mc;L;\r
+09BF;Mc;L;\r
+09C0;Mc;L;\r
+09C1;Mn;NSM;\r
+09C2;Mn;NSM;\r
+09C3;Mn;NSM;\r
+09C4;Mn;NSM;\r
+09C7;Mc;L;\r
+09C8;Mc;L;\r
+09CB;Mc;L;\r
+09CC;Mc;L;\r
+09CD;Mn;NSM;\r
+09D7;Mc;L;\r
+09DC;Lo;L;\r
+09DD;Lo;L;\r
+09DF;Lo;L;\r
+09E0;Lo;L;\r
+09E1;Lo;L;\r
+09E2;Mn;NSM;\r
+09E3;Mn;NSM;\r
+09E6;Nd;L;\r
+09E7;Nd;L;\r
+09E8;Nd;L;\r
+09E9;Nd;L;\r
+09EA;Nd;L;\r
+09EB;Nd;L;\r
+09EC;Nd;L;\r
+09ED;Nd;L;\r
+09EE;Nd;L;\r
+09EF;Nd;L;\r
+09F0;Lo;L;\r
+09F1;Lo;L;\r
+09F2;Sc;ET;\r
+09F3;Sc;ET;\r
+09F4;No;L;\r
+09F5;No;L;\r
+09F6;No;L;\r
+09F7;No;L;\r
+09F8;No;L;\r
+09F9;No;L;\r
+09FA;So;L;\r
+0A02;Mn;NSM;\r
+0A05;Lo;L;\r
+0A06;Lo;L;\r
+0A07;Lo;L;\r
+0A08;Lo;L;\r
+0A09;Lo;L;\r
+0A0A;Lo;L;\r
+0A0F;Lo;L;\r
+0A10;Lo;L;\r
+0A13;Lo;L;\r
+0A14;Lo;L;\r
+0A15;Lo;L;\r
+0A16;Lo;L;\r
+0A17;Lo;L;\r
+0A18;Lo;L;\r
+0A19;Lo;L;\r
+0A1A;Lo;L;\r
+0A1B;Lo;L;\r
+0A1C;Lo;L;\r
+0A1D;Lo;L;\r
+0A1E;Lo;L;\r
+0A1F;Lo;L;\r
+0A20;Lo;L;\r
+0A21;Lo;L;\r
+0A22;Lo;L;\r
+0A23;Lo;L;\r
+0A24;Lo;L;\r
+0A25;Lo;L;\r
+0A26;Lo;L;\r
+0A27;Lo;L;\r
+0A28;Lo;L;\r
+0A2A;Lo;L;\r
+0A2B;Lo;L;\r
+0A2C;Lo;L;\r
+0A2D;Lo;L;\r
+0A2E;Lo;L;\r
+0A2F;Lo;L;\r
+0A30;Lo;L;\r
+0A32;Lo;L;\r
+0A33;Lo;L;\r
+0A35;Lo;L;\r
+0A36;Lo;L;\r
+0A38;Lo;L;\r
+0A39;Lo;L;\r
+0A3C;Mn;NSM;\r
+0A3E;Mc;L;\r
+0A3F;Mc;L;\r
+0A40;Mc;L;\r
+0A41;Mn;NSM;\r
+0A42;Mn;NSM;\r
+0A47;Mn;NSM;\r
+0A48;Mn;NSM;\r
+0A4B;Mn;NSM;\r
+0A4C;Mn;NSM;\r
+0A4D;Mn;NSM;\r
+0A59;Lo;L;\r
+0A5A;Lo;L;\r
+0A5B;Lo;L;\r
+0A5C;Lo;L;\r
+0A5E;Lo;L;\r
+0A66;Nd;L;\r
+0A67;Nd;L;\r
+0A68;Nd;L;\r
+0A69;Nd;L;\r
+0A6A;Nd;L;\r
+0A6B;Nd;L;\r
+0A6C;Nd;L;\r
+0A6D;Nd;L;\r
+0A6E;Nd;L;\r
+0A6F;Nd;L;\r
+0A70;Mn;NSM;\r
+0A71;Mn;NSM;\r
+0A72;Lo;L;\r
+0A73;Lo;L;\r
+0A74;Lo;L;\r
+0A81;Mn;NSM;\r
+0A82;Mn;NSM;\r
+0A83;Mc;L;\r
+0A85;Lo;L;\r
+0A86;Lo;L;\r
+0A87;Lo;L;\r
+0A88;Lo;L;\r
+0A89;Lo;L;\r
+0A8A;Lo;L;\r
+0A8B;Lo;L;\r
+0A8D;Lo;L;\r
+0A8F;Lo;L;\r
+0A90;Lo;L;\r
+0A91;Lo;L;\r
+0A93;Lo;L;\r
+0A94;Lo;L;\r
+0A95;Lo;L;\r
+0A96;Lo;L;\r
+0A97;Lo;L;\r
+0A98;Lo;L;\r
+0A99;Lo;L;\r
+0A9A;Lo;L;\r
+0A9B;Lo;L;\r
+0A9C;Lo;L;\r
+0A9D;Lo;L;\r
+0A9E;Lo;L;\r
+0A9F;Lo;L;\r
+0AA0;Lo;L;\r
+0AA1;Lo;L;\r
+0AA2;Lo;L;\r
+0AA3;Lo;L;\r
+0AA4;Lo;L;\r
+0AA5;Lo;L;\r
+0AA6;Lo;L;\r
+0AA7;Lo;L;\r
+0AA8;Lo;L;\r
+0AAA;Lo;L;\r
+0AAB;Lo;L;\r
+0AAC;Lo;L;\r
+0AAD;Lo;L;\r
+0AAE;Lo;L;\r
+0AAF;Lo;L;\r
+0AB0;Lo;L;\r
+0AB2;Lo;L;\r
+0AB3;Lo;L;\r
+0AB5;Lo;L;\r
+0AB6;Lo;L;\r
+0AB7;Lo;L;\r
+0AB8;Lo;L;\r
+0AB9;Lo;L;\r
+0ABC;Mn;NSM;\r
+0ABD;Lo;L;\r
+0ABE;Mc;L;\r
+0ABF;Mc;L;\r
+0AC0;Mc;L;\r
+0AC1;Mn;NSM;\r
+0AC2;Mn;NSM;\r
+0AC3;Mn;NSM;\r
+0AC4;Mn;NSM;\r
+0AC5;Mn;NSM;\r
+0AC7;Mn;NSM;\r
+0AC8;Mn;NSM;\r
+0AC9;Mc;L;\r
+0ACB;Mc;L;\r
+0ACC;Mc;L;\r
+0ACD;Mn;NSM;\r
+0AD0;Lo;L;\r
+0AE0;Lo;L;\r
+0AE6;Nd;L;\r
+0AE7;Nd;L;\r
+0AE8;Nd;L;\r
+0AE9;Nd;L;\r
+0AEA;Nd;L;\r
+0AEB;Nd;L;\r
+0AEC;Nd;L;\r
+0AED;Nd;L;\r
+0AEE;Nd;L;\r
+0AEF;Nd;L;\r
+0B01;Mn;NSM;\r
+0B02;Mc;L;\r
+0B03;Mc;L;\r
+0B05;Lo;L;\r
+0B06;Lo;L;\r
+0B07;Lo;L;\r
+0B08;Lo;L;\r
+0B09;Lo;L;\r
+0B0A;Lo;L;\r
+0B0B;Lo;L;\r
+0B0C;Lo;L;\r
+0B0F;Lo;L;\r
+0B10;Lo;L;\r
+0B13;Lo;L;\r
+0B14;Lo;L;\r
+0B15;Lo;L;\r
+0B16;Lo;L;\r
+0B17;Lo;L;\r
+0B18;Lo;L;\r
+0B19;Lo;L;\r
+0B1A;Lo;L;\r
+0B1B;Lo;L;\r
+0B1C;Lo;L;\r
+0B1D;Lo;L;\r
+0B1E;Lo;L;\r
+0B1F;Lo;L;\r
+0B20;Lo;L;\r
+0B21;Lo;L;\r
+0B22;Lo;L;\r
+0B23;Lo;L;\r
+0B24;Lo;L;\r
+0B25;Lo;L;\r
+0B26;Lo;L;\r
+0B27;Lo;L;\r
+0B28;Lo;L;\r
+0B2A;Lo;L;\r
+0B2B;Lo;L;\r
+0B2C;Lo;L;\r
+0B2D;Lo;L;\r
+0B2E;Lo;L;\r
+0B2F;Lo;L;\r
+0B30;Lo;L;\r
+0B32;Lo;L;\r
+0B33;Lo;L;\r
+0B36;Lo;L;\r
+0B37;Lo;L;\r
+0B38;Lo;L;\r
+0B39;Lo;L;\r
+0B3C;Mn;NSM;\r
+0B3D;Lo;L;\r
+0B3E;Mc;L;\r
+0B3F;Mn;NSM;\r
+0B40;Mc;L;\r
+0B41;Mn;NSM;\r
+0B42;Mn;NSM;\r
+0B43;Mn;NSM;\r
+0B47;Mc;L;\r
+0B48;Mc;L;\r
+0B4B;Mc;L;\r
+0B4C;Mc;L;\r
+0B4D;Mn;NSM;\r
+0B56;Mn;NSM;\r
+0B57;Mc;L;\r
+0B5C;Lo;L;\r
+0B5D;Lo;L;\r
+0B5F;Lo;L;\r
+0B60;Lo;L;\r
+0B61;Lo;L;\r
+0B66;Nd;L;\r
+0B67;Nd;L;\r
+0B68;Nd;L;\r
+0B69;Nd;L;\r
+0B6A;Nd;L;\r
+0B6B;Nd;L;\r
+0B6C;Nd;L;\r
+0B6D;Nd;L;\r
+0B6E;Nd;L;\r
+0B6F;Nd;L;\r
+0B70;So;L;\r
+0B82;Mn;NSM;\r
+0B83;Mc;L;\r
+0B85;Lo;L;\r
+0B86;Lo;L;\r
+0B87;Lo;L;\r
+0B88;Lo;L;\r
+0B89;Lo;L;\r
+0B8A;Lo;L;\r
+0B8E;Lo;L;\r
+0B8F;Lo;L;\r
+0B90;Lo;L;\r
+0B92;Lo;L;\r
+0B93;Lo;L;\r
+0B94;Lo;L;\r
+0B95;Lo;L;\r
+0B99;Lo;L;\r
+0B9A;Lo;L;\r
+0B9C;Lo;L;\r
+0B9E;Lo;L;\r
+0B9F;Lo;L;\r
+0BA3;Lo;L;\r
+0BA4;Lo;L;\r
+0BA8;Lo;L;\r
+0BA9;Lo;L;\r
+0BAA;Lo;L;\r
+0BAE;Lo;L;\r
+0BAF;Lo;L;\r
+0BB0;Lo;L;\r
+0BB1;Lo;L;\r
+0BB2;Lo;L;\r
+0BB3;Lo;L;\r
+0BB4;Lo;L;\r
+0BB5;Lo;L;\r
+0BB7;Lo;L;\r
+0BB8;Lo;L;\r
+0BB9;Lo;L;\r
+0BBE;Mc;L;\r
+0BBF;Mc;L;\r
+0BC0;Mn;NSM;\r
+0BC1;Mc;L;\r
+0BC2;Mc;L;\r
+0BC6;Mc;L;\r
+0BC7;Mc;L;\r
+0BC8;Mc;L;\r
+0BCA;Mc;L;\r
+0BCB;Mc;L;\r
+0BCC;Mc;L;\r
+0BCD;Mn;NSM;\r
+0BD7;Mc;L;\r
+0BE7;Nd;L;\r
+0BE8;Nd;L;\r
+0BE9;Nd;L;\r
+0BEA;Nd;L;\r
+0BEB;Nd;L;\r
+0BEC;Nd;L;\r
+0BED;Nd;L;\r
+0BEE;Nd;L;\r
+0BEF;Nd;L;\r
+0BF0;No;L;\r
+0BF1;No;L;\r
+0BF2;No;L;\r
+0C01;Mc;L;\r
+0C02;Mc;L;\r
+0C03;Mc;L;\r
+0C05;Lo;L;\r
+0C06;Lo;L;\r
+0C07;Lo;L;\r
+0C08;Lo;L;\r
+0C09;Lo;L;\r
+0C0A;Lo;L;\r
+0C0B;Lo;L;\r
+0C0C;Lo;L;\r
+0C0E;Lo;L;\r
+0C0F;Lo;L;\r
+0C10;Lo;L;\r
+0C12;Lo;L;\r
+0C13;Lo;L;\r
+0C14;Lo;L;\r
+0C15;Lo;L;\r
+0C16;Lo;L;\r
+0C17;Lo;L;\r
+0C18;Lo;L;\r
+0C19;Lo;L;\r
+0C1A;Lo;L;\r
+0C1B;Lo;L;\r
+0C1C;Lo;L;\r
+0C1D;Lo;L;\r
+0C1E;Lo;L;\r
+0C1F;Lo;L;\r
+0C20;Lo;L;\r
+0C21;Lo;L;\r
+0C22;Lo;L;\r
+0C23;Lo;L;\r
+0C24;Lo;L;\r
+0C25;Lo;L;\r
+0C26;Lo;L;\r
+0C27;Lo;L;\r
+0C28;Lo;L;\r
+0C2A;Lo;L;\r
+0C2B;Lo;L;\r
+0C2C;Lo;L;\r
+0C2D;Lo;L;\r
+0C2E;Lo;L;\r
+0C2F;Lo;L;\r
+0C30;Lo;L;\r
+0C31;Lo;L;\r
+0C32;Lo;L;\r
+0C33;Lo;L;\r
+0C35;Lo;L;\r
+0C36;Lo;L;\r
+0C37;Lo;L;\r
+0C38;Lo;L;\r
+0C39;Lo;L;\r
+0C3E;Mn;NSM;\r
+0C3F;Mn;NSM;\r
+0C40;Mn;NSM;\r
+0C41;Mc;L;\r
+0C42;Mc;L;\r
+0C43;Mc;L;\r
+0C44;Mc;L;\r
+0C46;Mn;NSM;\r
+0C47;Mn;NSM;\r
+0C48;Mn;NSM;\r
+0C4A;Mn;NSM;\r
+0C4B;Mn;NSM;\r
+0C4C;Mn;NSM;\r
+0C4D;Mn;NSM;\r
+0C55;Mn;NSM;\r
+0C56;Mn;NSM;\r
+0C60;Lo;L;\r
+0C61;Lo;L;\r
+0C66;Nd;L;\r
+0C67;Nd;L;\r
+0C68;Nd;L;\r
+0C69;Nd;L;\r
+0C6A;Nd;L;\r
+0C6B;Nd;L;\r
+0C6C;Nd;L;\r
+0C6D;Nd;L;\r
+0C6E;Nd;L;\r
+0C6F;Nd;L;\r
+0C82;Mc;L;\r
+0C83;Mc;L;\r
+0C85;Lo;L;\r
+0C86;Lo;L;\r
+0C87;Lo;L;\r
+0C88;Lo;L;\r
+0C89;Lo;L;\r
+0C8A;Lo;L;\r
+0C8B;Lo;L;\r
+0C8C;Lo;L;\r
+0C8E;Lo;L;\r
+0C8F;Lo;L;\r
+0C90;Lo;L;\r
+0C92;Lo;L;\r
+0C93;Lo;L;\r
+0C94;Lo;L;\r
+0C95;Lo;L;\r
+0C96;Lo;L;\r
+0C97;Lo;L;\r
+0C98;Lo;L;\r
+0C99;Lo;L;\r
+0C9A;Lo;L;\r
+0C9B;Lo;L;\r
+0C9C;Lo;L;\r
+0C9D;Lo;L;\r
+0C9E;Lo;L;\r
+0C9F;Lo;L;\r
+0CA0;Lo;L;\r
+0CA1;Lo;L;\r
+0CA2;Lo;L;\r
+0CA3;Lo;L;\r
+0CA4;Lo;L;\r
+0CA5;Lo;L;\r
+0CA6;Lo;L;\r
+0CA7;Lo;L;\r
+0CA8;Lo;L;\r
+0CAA;Lo;L;\r
+0CAB;Lo;L;\r
+0CAC;Lo;L;\r
+0CAD;Lo;L;\r
+0CAE;Lo;L;\r
+0CAF;Lo;L;\r
+0CB0;Lo;L;\r
+0CB1;Lo;L;\r
+0CB2;Lo;L;\r
+0CB3;Lo;L;\r
+0CB5;Lo;L;\r
+0CB6;Lo;L;\r
+0CB7;Lo;L;\r
+0CB8;Lo;L;\r
+0CB9;Lo;L;\r
+0CBE;Mc;L;\r
+0CBF;Mn;NSM;\r
+0CC0;Mc;L;\r
+0CC1;Mc;L;\r
+0CC2;Mc;L;\r
+0CC3;Mc;L;\r
+0CC4;Mc;L;\r
+0CC6;Mn;NSM;\r
+0CC7;Mc;L;\r
+0CC8;Mc;L;\r
+0CCA;Mc;L;\r
+0CCB;Mc;L;\r
+0CCC;Mn;NSM;\r
+0CCD;Mn;NSM;\r
+0CD5;Mc;L;\r
+0CD6;Mc;L;\r
+0CDE;Lo;L;\r
+0CE0;Lo;L;\r
+0CE1;Lo;L;\r
+0CE6;Nd;L;\r
+0CE7;Nd;L;\r
+0CE8;Nd;L;\r
+0CE9;Nd;L;\r
+0CEA;Nd;L;\r
+0CEB;Nd;L;\r
+0CEC;Nd;L;\r
+0CED;Nd;L;\r
+0CEE;Nd;L;\r
+0CEF;Nd;L;\r
+0D02;Mc;L;\r
+0D03;Mc;L;\r
+0D05;Lo;L;\r
+0D06;Lo;L;\r
+0D07;Lo;L;\r
+0D08;Lo;L;\r
+0D09;Lo;L;\r
+0D0A;Lo;L;\r
+0D0B;Lo;L;\r
+0D0C;Lo;L;\r
+0D0E;Lo;L;\r
+0D0F;Lo;L;\r
+0D10;Lo;L;\r
+0D12;Lo;L;\r
+0D13;Lo;L;\r
+0D14;Lo;L;\r
+0D15;Lo;L;\r
+0D16;Lo;L;\r
+0D17;Lo;L;\r
+0D18;Lo;L;\r
+0D19;Lo;L;\r
+0D1A;Lo;L;\r
+0D1B;Lo;L;\r
+0D1C;Lo;L;\r
+0D1D;Lo;L;\r
+0D1E;Lo;L;\r
+0D1F;Lo;L;\r
+0D20;Lo;L;\r
+0D21;Lo;L;\r
+0D22;Lo;L;\r
+0D23;Lo;L;\r
+0D24;Lo;L;\r
+0D25;Lo;L;\r
+0D26;Lo;L;\r
+0D27;Lo;L;\r
+0D28;Lo;L;\r
+0D2A;Lo;L;\r
+0D2B;Lo;L;\r
+0D2C;Lo;L;\r
+0D2D;Lo;L;\r
+0D2E;Lo;L;\r
+0D2F;Lo;L;\r
+0D30;Lo;L;\r
+0D31;Lo;L;\r
+0D32;Lo;L;\r
+0D33;Lo;L;\r
+0D34;Lo;L;\r
+0D35;Lo;L;\r
+0D36;Lo;L;\r
+0D37;Lo;L;\r
+0D38;Lo;L;\r
+0D39;Lo;L;\r
+0D3E;Mc;L;\r
+0D3F;Mc;L;\r
+0D40;Mc;L;\r
+0D41;Mn;NSM;\r
+0D42;Mn;NSM;\r
+0D43;Mn;NSM;\r
+0D46;Mc;L;\r
+0D47;Mc;L;\r
+0D48;Mc;L;\r
+0D4A;Mc;L;\r
+0D4B;Mc;L;\r
+0D4C;Mc;L;\r
+0D4D;Mn;NSM;\r
+0D57;Mc;L;\r
+0D60;Lo;L;\r
+0D61;Lo;L;\r
+0D66;Nd;L;\r
+0D67;Nd;L;\r
+0D68;Nd;L;\r
+0D69;Nd;L;\r
+0D6A;Nd;L;\r
+0D6B;Nd;L;\r
+0D6C;Nd;L;\r
+0D6D;Nd;L;\r
+0D6E;Nd;L;\r
+0D6F;Nd;L;\r
+0D82;Mc;L;\r
+0D83;Mc;L;\r
+0D85;Lo;L;\r
+0D86;Lo;L;\r
+0D87;Lo;L;\r
+0D88;Lo;L;\r
+0D89;Lo;L;\r
+0D8A;Lo;L;\r
+0D8B;Lo;L;\r
+0D8C;Lo;L;\r
+0D8D;Lo;L;\r
+0D8E;Lo;L;\r
+0D8F;Lo;L;\r
+0D90;Lo;L;\r
+0D91;Lo;L;\r
+0D92;Lo;L;\r
+0D93;Lo;L;\r
+0D94;Lo;L;\r
+0D95;Lo;L;\r
+0D96;Lo;L;\r
+0D9A;Lo;L;\r
+0D9B;Lo;L;\r
+0D9C;Lo;L;\r
+0D9D;Lo;L;\r
+0D9E;Lo;L;\r
+0D9F;Lo;L;\r
+0DA0;Lo;L;\r
+0DA1;Lo;L;\r
+0DA2;Lo;L;\r
+0DA3;Lo;L;\r
+0DA4;Lo;L;\r
+0DA5;Lo;L;\r
+0DA6;Lo;L;\r
+0DA7;Lo;L;\r
+0DA8;Lo;L;\r
+0DA9;Lo;L;\r
+0DAA;Lo;L;\r
+0DAB;Lo;L;\r
+0DAC;Lo;L;\r
+0DAD;Lo;L;\r
+0DAE;Lo;L;\r
+0DAF;Lo;L;\r
+0DB0;Lo;L;\r
+0DB1;Lo;L;\r
+0DB3;Lo;L;\r
+0DB4;Lo;L;\r
+0DB5;Lo;L;\r
+0DB6;Lo;L;\r
+0DB7;Lo;L;\r
+0DB8;Lo;L;\r
+0DB9;Lo;L;\r
+0DBA;Lo;L;\r
+0DBB;Lo;L;\r
+0DBD;Lo;L;\r
+0DC0;Lo;L;\r
+0DC1;Lo;L;\r
+0DC2;Lo;L;\r
+0DC3;Lo;L;\r
+0DC4;Lo;L;\r
+0DC5;Lo;L;\r
+0DC6;Lo;L;\r
+0DCA;Mn;NSM;\r
+0DCF;Mc;L;\r
+0DD0;Mc;L;\r
+0DD1;Mc;L;\r
+0DD2;Mn;NSM;\r
+0DD3;Mn;NSM;\r
+0DD4;Mn;NSM;\r
+0DD6;Mn;NSM;\r
+0DD8;Mc;L;\r
+0DD9;Mc;L;\r
+0DDA;Mc;L;\r
+0DDB;Mc;L;\r
+0DDC;Mc;L;\r
+0DDD;Mc;L;\r
+0DDE;Mc;L;\r
+0DDF;Mc;L;\r
+0DF2;Mc;L;\r
+0DF3;Mc;L;\r
+0DF4;Po;L;\r
+0E01;Lo;L;\r
+0E02;Lo;L;\r
+0E03;Lo;L;\r
+0E04;Lo;L;\r
+0E05;Lo;L;\r
+0E06;Lo;L;\r
+0E07;Lo;L;\r
+0E08;Lo;L;\r
+0E09;Lo;L;\r
+0E0A;Lo;L;\r
+0E0B;Lo;L;\r
+0E0C;Lo;L;\r
+0E0D;Lo;L;\r
+0E0E;Lo;L;\r
+0E0F;Lo;L;\r
+0E10;Lo;L;\r
+0E11;Lo;L;\r
+0E12;Lo;L;\r
+0E13;Lo;L;\r
+0E14;Lo;L;\r
+0E15;Lo;L;\r
+0E16;Lo;L;\r
+0E17;Lo;L;\r
+0E18;Lo;L;\r
+0E19;Lo;L;\r
+0E1A;Lo;L;\r
+0E1B;Lo;L;\r
+0E1C;Lo;L;\r
+0E1D;Lo;L;\r
+0E1E;Lo;L;\r
+0E1F;Lo;L;\r
+0E20;Lo;L;\r
+0E21;Lo;L;\r
+0E22;Lo;L;\r
+0E23;Lo;L;\r
+0E24;Lo;L;\r
+0E25;Lo;L;\r
+0E26;Lo;L;\r
+0E27;Lo;L;\r
+0E28;Lo;L;\r
+0E29;Lo;L;\r
+0E2A;Lo;L;\r
+0E2B;Lo;L;\r
+0E2C;Lo;L;\r
+0E2D;Lo;L;\r
+0E2E;Lo;L;\r
+0E2F;Lo;L;\r
+0E30;Lo;L;\r
+0E31;Mn;NSM;\r
+0E32;Lo;L;\r
+0E33;Lo;L;\r
+0E34;Mn;NSM;\r
+0E35;Mn;NSM;\r
+0E36;Mn;NSM;\r
+0E37;Mn;NSM;\r
+0E38;Mn;NSM;\r
+0E39;Mn;NSM;\r
+0E3A;Mn;NSM;\r
+0E3F;Sc;ET;\r
+0E40;Lo;L;\r
+0E41;Lo;L;\r
+0E42;Lo;L;\r
+0E43;Lo;L;\r
+0E44;Lo;L;\r
+0E45;Lo;L;\r
+0E46;Lm;L;\r
+0E47;Mn;NSM;\r
+0E48;Mn;NSM;\r
+0E49;Mn;NSM;\r
+0E4A;Mn;NSM;\r
+0E4B;Mn;NSM;\r
+0E4C;Mn;NSM;\r
+0E4D;Mn;NSM;\r
+0E4E;Mn;NSM;\r
+0E4F;Po;L;\r
+0E50;Nd;L;\r
+0E51;Nd;L;\r
+0E52;Nd;L;\r
+0E53;Nd;L;\r
+0E54;Nd;L;\r
+0E55;Nd;L;\r
+0E56;Nd;L;\r
+0E57;Nd;L;\r
+0E58;Nd;L;\r
+0E59;Nd;L;\r
+0E5A;Po;L;\r
+0E5B;Po;L;\r
+0E81;Lo;L;\r
+0E82;Lo;L;\r
+0E84;Lo;L;\r
+0E87;Lo;L;\r
+0E88;Lo;L;\r
+0E8A;Lo;L;\r
+0E8D;Lo;L;\r
+0E94;Lo;L;\r
+0E95;Lo;L;\r
+0E96;Lo;L;\r
+0E97;Lo;L;\r
+0E99;Lo;L;\r
+0E9A;Lo;L;\r
+0E9B;Lo;L;\r
+0E9C;Lo;L;\r
+0E9D;Lo;L;\r
+0E9E;Lo;L;\r
+0E9F;Lo;L;\r
+0EA1;Lo;L;\r
+0EA2;Lo;L;\r
+0EA3;Lo;L;\r
+0EA5;Lo;L;\r
+0EA7;Lo;L;\r
+0EAA;Lo;L;\r
+0EAB;Lo;L;\r
+0EAD;Lo;L;\r
+0EAE;Lo;L;\r
+0EAF;Lo;L;\r
+0EB0;Lo;L;\r
+0EB1;Mn;NSM;\r
+0EB2;Lo;L;\r
+0EB3;Lo;L;\r
+0EB4;Mn;NSM;\r
+0EB5;Mn;NSM;\r
+0EB6;Mn;NSM;\r
+0EB7;Mn;NSM;\r
+0EB8;Mn;NSM;\r
+0EB9;Mn;NSM;\r
+0EBB;Mn;NSM;\r
+0EBC;Mn;NSM;\r
+0EBD;Lo;L;\r
+0EC0;Lo;L;\r
+0EC1;Lo;L;\r
+0EC2;Lo;L;\r
+0EC3;Lo;L;\r
+0EC4;Lo;L;\r
+0EC6;Lm;L;\r
+0EC8;Mn;NSM;\r
+0EC9;Mn;NSM;\r
+0ECA;Mn;NSM;\r
+0ECB;Mn;NSM;\r
+0ECC;Mn;NSM;\r
+0ECD;Mn;NSM;\r
+0ED0;Nd;L;\r
+0ED1;Nd;L;\r
+0ED2;Nd;L;\r
+0ED3;Nd;L;\r
+0ED4;Nd;L;\r
+0ED5;Nd;L;\r
+0ED6;Nd;L;\r
+0ED7;Nd;L;\r
+0ED8;Nd;L;\r
+0ED9;Nd;L;\r
+0EDC;Lo;L;\r
+0EDD;Lo;L;\r
+0F00;Lo;L;\r
+0F01;So;L;\r
+0F02;So;L;\r
+0F03;So;L;\r
+0F04;Po;L;\r
+0F05;Po;L;\r
+0F06;Po;L;\r
+0F07;Po;L;\r
+0F08;Po;L;\r
+0F09;Po;L;\r
+0F0A;Po;L;\r
+0F0B;Po;L;\r
+0F0C;Po;L;\r
+0F0D;Po;L;\r
+0F0E;Po;L;\r
+0F0F;Po;L;\r
+0F10;Po;L;\r
+0F11;Po;L;\r
+0F12;Po;L;\r
+0F13;So;L;\r
+0F14;So;L;\r
+0F15;So;L;\r
+0F16;So;L;\r
+0F17;So;L;\r
+0F18;Mn;NSM;\r
+0F19;Mn;NSM;\r
+0F1A;So;L;\r
+0F1B;So;L;\r
+0F1C;So;L;\r
+0F1D;So;L;\r
+0F1E;So;L;\r
+0F1F;So;L;\r
+0F20;Nd;L;\r
+0F21;Nd;L;\r
+0F22;Nd;L;\r
+0F23;Nd;L;\r
+0F24;Nd;L;\r
+0F25;Nd;L;\r
+0F26;Nd;L;\r
+0F27;Nd;L;\r
+0F28;Nd;L;\r
+0F29;Nd;L;\r
+0F2A;No;L;\r
+0F2B;No;L;\r
+0F2C;No;L;\r
+0F2D;No;L;\r
+0F2E;No;L;\r
+0F2F;No;L;\r
+0F30;No;L;\r
+0F31;No;L;\r
+0F32;No;L;\r
+0F33;No;L;\r
+0F34;So;L;\r
+0F35;Mn;NSM;\r
+0F36;So;L;\r
+0F37;Mn;NSM;\r
+0F38;So;L;\r
+0F39;Mn;NSM;\r
+0F3A;Ps;ON;\r
+0F3B;Pe;ON;\r
+0F3C;Ps;ON;\r
+0F3D;Pe;ON;\r
+0F3E;Mc;L;\r
+0F3F;Mc;L;\r
+0F40;Lo;L;\r
+0F41;Lo;L;\r
+0F42;Lo;L;\r
+0F43;Lo;L;\r
+0F44;Lo;L;\r
+0F45;Lo;L;\r
+0F46;Lo;L;\r
+0F47;Lo;L;\r
+0F49;Lo;L;\r
+0F4A;Lo;L;\r
+0F4B;Lo;L;\r
+0F4C;Lo;L;\r
+0F4D;Lo;L;\r
+0F4E;Lo;L;\r
+0F4F;Lo;L;\r
+0F50;Lo;L;\r
+0F51;Lo;L;\r
+0F52;Lo;L;\r
+0F53;Lo;L;\r
+0F54;Lo;L;\r
+0F55;Lo;L;\r
+0F56;Lo;L;\r
+0F57;Lo;L;\r
+0F58;Lo;L;\r
+0F59;Lo;L;\r
+0F5A;Lo;L;\r
+0F5B;Lo;L;\r
+0F5C;Lo;L;\r
+0F5D;Lo;L;\r
+0F5E;Lo;L;\r
+0F5F;Lo;L;\r
+0F60;Lo;L;\r
+0F61;Lo;L;\r
+0F62;Lo;L;\r
+0F63;Lo;L;\r
+0F64;Lo;L;\r
+0F65;Lo;L;\r
+0F66;Lo;L;\r
+0F67;Lo;L;\r
+0F68;Lo;L;\r
+0F69;Lo;L;\r
+0F6A;Lo;L;\r
+0F71;Mn;NSM;\r
+0F72;Mn;NSM;\r
+0F73;Mn;NSM;\r
+0F74;Mn;NSM;\r
+0F75;Mn;NSM;\r
+0F76;Mn;NSM;\r
+0F77;Mn;NSM;\r
+0F78;Mn;NSM;\r
+0F79;Mn;NSM;\r
+0F7A;Mn;NSM;\r
+0F7B;Mn;NSM;\r
+0F7C;Mn;NSM;\r
+0F7D;Mn;NSM;\r
+0F7E;Mn;NSM;\r
+0F7F;Mc;L;\r
+0F80;Mn;NSM;\r
+0F81;Mn;NSM;\r
+0F82;Mn;NSM;\r
+0F83;Mn;NSM;\r
+0F84;Mn;NSM;\r
+0F85;Po;L;\r
+0F86;Mn;NSM;\r
+0F87;Mn;NSM;\r
+0F88;Lo;L;\r
+0F89;Lo;L;\r
+0F8A;Lo;L;\r
+0F8B;Lo;L;\r
+0F90;Mn;NSM;\r
+0F91;Mn;NSM;\r
+0F92;Mn;NSM;\r
+0F93;Mn;NSM;\r
+0F94;Mn;NSM;\r
+0F95;Mn;NSM;\r
+0F96;Mn;NSM;\r
+0F97;Mn;NSM;\r
+0F99;Mn;NSM;\r
+0F9A;Mn;NSM;\r
+0F9B;Mn;NSM;\r
+0F9C;Mn;NSM;\r
+0F9D;Mn;NSM;\r
+0F9E;Mn;NSM;\r
+0F9F;Mn;NSM;\r
+0FA0;Mn;NSM;\r
+0FA1;Mn;NSM;\r
+0FA2;Mn;NSM;\r
+0FA3;Mn;NSM;\r
+0FA4;Mn;NSM;\r
+0FA5;Mn;NSM;\r
+0FA6;Mn;NSM;\r
+0FA7;Mn;NSM;\r
+0FA8;Mn;NSM;\r
+0FA9;Mn;NSM;\r
+0FAA;Mn;NSM;\r
+0FAB;Mn;NSM;\r
+0FAC;Mn;NSM;\r
+0FAD;Mn;NSM;\r
+0FAE;Mn;NSM;\r
+0FAF;Mn;NSM;\r
+0FB0;Mn;NSM;\r
+0FB1;Mn;NSM;\r
+0FB2;Mn;NSM;\r
+0FB3;Mn;NSM;\r
+0FB4;Mn;NSM;\r
+0FB5;Mn;NSM;\r
+0FB6;Mn;NSM;\r
+0FB7;Mn;NSM;\r
+0FB8;Mn;NSM;\r
+0FB9;Mn;NSM;\r
+0FBA;Mn;NSM;\r
+0FBB;Mn;NSM;\r
+0FBC;Mn;NSM;\r
+0FBE;So;L;\r
+0FBF;So;L;\r
+0FC0;So;L;\r
+0FC1;So;L;\r
+0FC2;So;L;\r
+0FC3;So;L;\r
+0FC4;So;L;\r
+0FC5;So;L;\r
+0FC6;Mn;NSM;\r
+0FC7;So;L;\r
+0FC8;So;L;\r
+0FC9;So;L;\r
+0FCA;So;L;\r
+0FCB;So;L;\r
+0FCC;So;L;\r
+0FCF;So;L;\r
+1000;Lo;L;\r
+1001;Lo;L;\r
+1002;Lo;L;\r
+1003;Lo;L;\r
+1004;Lo;L;\r
+1005;Lo;L;\r
+1006;Lo;L;\r
+1007;Lo;L;\r
+1008;Lo;L;\r
+1009;Lo;L;\r
+100A;Lo;L;\r
+100B;Lo;L;\r
+100C;Lo;L;\r
+100D;Lo;L;\r
+100E;Lo;L;\r
+100F;Lo;L;\r
+1010;Lo;L;\r
+1011;Lo;L;\r
+1012;Lo;L;\r
+1013;Lo;L;\r
+1014;Lo;L;\r
+1015;Lo;L;\r
+1016;Lo;L;\r
+1017;Lo;L;\r
+1018;Lo;L;\r
+1019;Lo;L;\r
+101A;Lo;L;\r
+101B;Lo;L;\r
+101C;Lo;L;\r
+101D;Lo;L;\r
+101E;Lo;L;\r
+101F;Lo;L;\r
+1020;Lo;L;\r
+1021;Lo;L;\r
+1023;Lo;L;\r
+1024;Lo;L;\r
+1025;Lo;L;\r
+1026;Lo;L;\r
+1027;Lo;L;\r
+1029;Lo;L;\r
+102A;Lo;L;\r
+102C;Mc;L;\r
+102D;Mn;NSM;\r
+102E;Mn;NSM;\r
+102F;Mn;NSM;\r
+1030;Mn;NSM;\r
+1031;Mc;L;\r
+1032;Mn;NSM;\r
+1036;Mn;NSM;\r
+1037;Mn;NSM;\r
+1038;Mc;L;\r
+1039;Mn;NSM;\r
+1040;Nd;L;\r
+1041;Nd;L;\r
+1042;Nd;L;\r
+1043;Nd;L;\r
+1044;Nd;L;\r
+1045;Nd;L;\r
+1046;Nd;L;\r
+1047;Nd;L;\r
+1048;Nd;L;\r
+1049;Nd;L;\r
+104A;Po;L;\r
+104B;Po;L;\r
+104C;Po;L;\r
+104D;Po;L;\r
+104E;Po;L;\r
+104F;Po;L;\r
+1050;Lo;L;\r
+1051;Lo;L;\r
+1052;Lo;L;\r
+1053;Lo;L;\r
+1054;Lo;L;\r
+1055;Lo;L;\r
+1056;Mc;L;\r
+1057;Mc;L;\r
+1058;Mn;NSM;\r
+1059;Mn;NSM;\r
+10A0;Lu;L;\r
+10A1;Lu;L;\r
+10A2;Lu;L;\r
+10A3;Lu;L;\r
+10A4;Lu;L;\r
+10A5;Lu;L;\r
+10A6;Lu;L;\r
+10A7;Lu;L;\r
+10A8;Lu;L;\r
+10A9;Lu;L;\r
+10AA;Lu;L;\r
+10AB;Lu;L;\r
+10AC;Lu;L;\r
+10AD;Lu;L;\r
+10AE;Lu;L;\r
+10AF;Lu;L;\r
+10B0;Lu;L;\r
+10B1;Lu;L;\r
+10B2;Lu;L;\r
+10B3;Lu;L;\r
+10B4;Lu;L;\r
+10B5;Lu;L;\r
+10B6;Lu;L;\r
+10B7;Lu;L;\r
+10B8;Lu;L;\r
+10B9;Lu;L;\r
+10BA;Lu;L;\r
+10BB;Lu;L;\r
+10BC;Lu;L;\r
+10BD;Lu;L;\r
+10BE;Lu;L;\r
+10BF;Lu;L;\r
+10C0;Lu;L;\r
+10C1;Lu;L;\r
+10C2;Lu;L;\r
+10C3;Lu;L;\r
+10C4;Lu;L;\r
+10C5;Lu;L;\r
+10D0;Lo;L;\r
+10D1;Lo;L;\r
+10D2;Lo;L;\r
+10D3;Lo;L;\r
+10D4;Lo;L;\r
+10D5;Lo;L;\r
+10D6;Lo;L;\r
+10D7;Lo;L;\r
+10D8;Lo;L;\r
+10D9;Lo;L;\r
+10DA;Lo;L;\r
+10DB;Lo;L;\r
+10DC;Lo;L;\r
+10DD;Lo;L;\r
+10DE;Lo;L;\r
+10DF;Lo;L;\r
+10E0;Lo;L;\r
+10E1;Lo;L;\r
+10E2;Lo;L;\r
+10E3;Lo;L;\r
+10E4;Lo;L;\r
+10E5;Lo;L;\r
+10E6;Lo;L;\r
+10E7;Lo;L;\r
+10E8;Lo;L;\r
+10E9;Lo;L;\r
+10EA;Lo;L;\r
+10EB;Lo;L;\r
+10EC;Lo;L;\r
+10ED;Lo;L;\r
+10EE;Lo;L;\r
+10EF;Lo;L;\r
+10F0;Lo;L;\r
+10F1;Lo;L;\r
+10F2;Lo;L;\r
+10F3;Lo;L;\r
+10F4;Lo;L;\r
+10F5;Lo;L;\r
+10F6;Lo;L;\r
+10FB;Po;L;\r
+1100;Lo;L;\r
+1101;Lo;L;\r
+1102;Lo;L;\r
+1103;Lo;L;\r
+1104;Lo;L;\r
+1105;Lo;L;\r
+1106;Lo;L;\r
+1107;Lo;L;\r
+1108;Lo;L;\r
+1109;Lo;L;\r
+110A;Lo;L;\r
+110B;Lo;L;\r
+110C;Lo;L;\r
+110D;Lo;L;\r
+110E;Lo;L;\r
+110F;Lo;L;\r
+1110;Lo;L;\r
+1111;Lo;L;\r
+1112;Lo;L;\r
+1113;Lo;L;\r
+1114;Lo;L;\r
+1115;Lo;L;\r
+1116;Lo;L;\r
+1117;Lo;L;\r
+1118;Lo;L;\r
+1119;Lo;L;\r
+111A;Lo;L;\r
+111B;Lo;L;\r
+111C;Lo;L;\r
+111D;Lo;L;\r
+111E;Lo;L;\r
+111F;Lo;L;\r
+1120;Lo;L;\r
+1121;Lo;L;\r
+1122;Lo;L;\r
+1123;Lo;L;\r
+1124;Lo;L;\r
+1125;Lo;L;\r
+1126;Lo;L;\r
+1127;Lo;L;\r
+1128;Lo;L;\r
+1129;Lo;L;\r
+112A;Lo;L;\r
+112B;Lo;L;\r
+112C;Lo;L;\r
+112D;Lo;L;\r
+112E;Lo;L;\r
+112F;Lo;L;\r
+1130;Lo;L;\r
+1131;Lo;L;\r
+1132;Lo;L;\r
+1133;Lo;L;\r
+1134;Lo;L;\r
+1135;Lo;L;\r
+1136;Lo;L;\r
+1137;Lo;L;\r
+1138;Lo;L;\r
+1139;Lo;L;\r
+113A;Lo;L;\r
+113B;Lo;L;\r
+113C;Lo;L;\r
+113D;Lo;L;\r
+113E;Lo;L;\r
+113F;Lo;L;\r
+1140;Lo;L;\r
+1141;Lo;L;\r
+1142;Lo;L;\r
+1143;Lo;L;\r
+1144;Lo;L;\r
+1145;Lo;L;\r
+1146;Lo;L;\r
+1147;Lo;L;\r
+1148;Lo;L;\r
+1149;Lo;L;\r
+114A;Lo;L;\r
+114B;Lo;L;\r
+114C;Lo;L;\r
+114D;Lo;L;\r
+114E;Lo;L;\r
+114F;Lo;L;\r
+1150;Lo;L;\r
+1151;Lo;L;\r
+1152;Lo;L;\r
+1153;Lo;L;\r
+1154;Lo;L;\r
+1155;Lo;L;\r
+1156;Lo;L;\r
+1157;Lo;L;\r
+1158;Lo;L;\r
+1159;Lo;L;\r
+115F;Lo;L;\r
+1160;Lo;L;\r
+1161;Lo;L;\r
+1162;Lo;L;\r
+1163;Lo;L;\r
+1164;Lo;L;\r
+1165;Lo;L;\r
+1166;Lo;L;\r
+1167;Lo;L;\r
+1168;Lo;L;\r
+1169;Lo;L;\r
+116A;Lo;L;\r
+116B;Lo;L;\r
+116C;Lo;L;\r
+116D;Lo;L;\r
+116E;Lo;L;\r
+116F;Lo;L;\r
+1170;Lo;L;\r
+1171;Lo;L;\r
+1172;Lo;L;\r
+1173;Lo;L;\r
+1174;Lo;L;\r
+1175;Lo;L;\r
+1176;Lo;L;\r
+1177;Lo;L;\r
+1178;Lo;L;\r
+1179;Lo;L;\r
+117A;Lo;L;\r
+117B;Lo;L;\r
+117C;Lo;L;\r
+117D;Lo;L;\r
+117E;Lo;L;\r
+117F;Lo;L;\r
+1180;Lo;L;\r
+1181;Lo;L;\r
+1182;Lo;L;\r
+1183;Lo;L;\r
+1184;Lo;L;\r
+1185;Lo;L;\r
+1186;Lo;L;\r
+1187;Lo;L;\r
+1188;Lo;L;\r
+1189;Lo;L;\r
+118A;Lo;L;\r
+118B;Lo;L;\r
+118C;Lo;L;\r
+118D;Lo;L;\r
+118E;Lo;L;\r
+118F;Lo;L;\r
+1190;Lo;L;\r
+1191;Lo;L;\r
+1192;Lo;L;\r
+1193;Lo;L;\r
+1194;Lo;L;\r
+1195;Lo;L;\r
+1196;Lo;L;\r
+1197;Lo;L;\r
+1198;Lo;L;\r
+1199;Lo;L;\r
+119A;Lo;L;\r
+119B;Lo;L;\r
+119C;Lo;L;\r
+119D;Lo;L;\r
+119E;Lo;L;\r
+119F;Lo;L;\r
+11A0;Lo;L;\r
+11A1;Lo;L;\r
+11A2;Lo;L;\r
+11A8;Lo;L;\r
+11A9;Lo;L;\r
+11AA;Lo;L;\r
+11AB;Lo;L;\r
+11AC;Lo;L;\r
+11AD;Lo;L;\r
+11AE;Lo;L;\r
+11AF;Lo;L;\r
+11B0;Lo;L;\r
+11B1;Lo;L;\r
+11B2;Lo;L;\r
+11B3;Lo;L;\r
+11B4;Lo;L;\r
+11B5;Lo;L;\r
+11B6;Lo;L;\r
+11B7;Lo;L;\r
+11B8;Lo;L;\r
+11B9;Lo;L;\r
+11BA;Lo;L;\r
+11BB;Lo;L;\r
+11BC;Lo;L;\r
+11BD;Lo;L;\r
+11BE;Lo;L;\r
+11BF;Lo;L;\r
+11C0;Lo;L;\r
+11C1;Lo;L;\r
+11C2;Lo;L;\r
+11C3;Lo;L;\r
+11C4;Lo;L;\r
+11C5;Lo;L;\r
+11C6;Lo;L;\r
+11C7;Lo;L;\r
+11C8;Lo;L;\r
+11C9;Lo;L;\r
+11CA;Lo;L;\r
+11CB;Lo;L;\r
+11CC;Lo;L;\r
+11CD;Lo;L;\r
+11CE;Lo;L;\r
+11CF;Lo;L;\r
+11D0;Lo;L;\r
+11D1;Lo;L;\r
+11D2;Lo;L;\r
+11D3;Lo;L;\r
+11D4;Lo;L;\r
+11D5;Lo;L;\r
+11D6;Lo;L;\r
+11D7;Lo;L;\r
+11D8;Lo;L;\r
+11D9;Lo;L;\r
+11DA;Lo;L;\r
+11DB;Lo;L;\r
+11DC;Lo;L;\r
+11DD;Lo;L;\r
+11DE;Lo;L;\r
+11DF;Lo;L;\r
+11E0;Lo;L;\r
+11E1;Lo;L;\r
+11E2;Lo;L;\r
+11E3;Lo;L;\r
+11E4;Lo;L;\r
+11E5;Lo;L;\r
+11E6;Lo;L;\r
+11E7;Lo;L;\r
+11E8;Lo;L;\r
+11E9;Lo;L;\r
+11EA;Lo;L;\r
+11EB;Lo;L;\r
+11EC;Lo;L;\r
+11ED;Lo;L;\r
+11EE;Lo;L;\r
+11EF;Lo;L;\r
+11F0;Lo;L;\r
+11F1;Lo;L;\r
+11F2;Lo;L;\r
+11F3;Lo;L;\r
+11F4;Lo;L;\r
+11F5;Lo;L;\r
+11F6;Lo;L;\r
+11F7;Lo;L;\r
+11F8;Lo;L;\r
+11F9;Lo;L;\r
+1200;Lo;L;\r
+1201;Lo;L;\r
+1202;Lo;L;\r
+1203;Lo;L;\r
+1204;Lo;L;\r
+1205;Lo;L;\r
+1206;Lo;L;\r
+1208;Lo;L;\r
+1209;Lo;L;\r
+120A;Lo;L;\r
+120B;Lo;L;\r
+120C;Lo;L;\r
+120D;Lo;L;\r
+120E;Lo;L;\r
+120F;Lo;L;\r
+1210;Lo;L;\r
+1211;Lo;L;\r
+1212;Lo;L;\r
+1213;Lo;L;\r
+1214;Lo;L;\r
+1215;Lo;L;\r
+1216;Lo;L;\r
+1217;Lo;L;\r
+1218;Lo;L;\r
+1219;Lo;L;\r
+121A;Lo;L;\r
+121B;Lo;L;\r
+121C;Lo;L;\r
+121D;Lo;L;\r
+121E;Lo;L;\r
+121F;Lo;L;\r
+1220;Lo;L;\r
+1221;Lo;L;\r
+1222;Lo;L;\r
+1223;Lo;L;\r
+1224;Lo;L;\r
+1225;Lo;L;\r
+1226;Lo;L;\r
+1227;Lo;L;\r
+1228;Lo;L;\r
+1229;Lo;L;\r
+122A;Lo;L;\r
+122B;Lo;L;\r
+122C;Lo;L;\r
+122D;Lo;L;\r
+122E;Lo;L;\r
+122F;Lo;L;\r
+1230;Lo;L;\r
+1231;Lo;L;\r
+1232;Lo;L;\r
+1233;Lo;L;\r
+1234;Lo;L;\r
+1235;Lo;L;\r
+1236;Lo;L;\r
+1237;Lo;L;\r
+1238;Lo;L;\r
+1239;Lo;L;\r
+123A;Lo;L;\r
+123B;Lo;L;\r
+123C;Lo;L;\r
+123D;Lo;L;\r
+123E;Lo;L;\r
+123F;Lo;L;\r
+1240;Lo;L;\r
+1241;Lo;L;\r
+1242;Lo;L;\r
+1243;Lo;L;\r
+1244;Lo;L;\r
+1245;Lo;L;\r
+1246;Lo;L;\r
+1248;Lo;L;\r
+124A;Lo;L;\r
+124B;Lo;L;\r
+124C;Lo;L;\r
+124D;Lo;L;\r
+1250;Lo;L;\r
+1251;Lo;L;\r
+1252;Lo;L;\r
+1253;Lo;L;\r
+1254;Lo;L;\r
+1255;Lo;L;\r
+1256;Lo;L;\r
+1258;Lo;L;\r
+125A;Lo;L;\r
+125B;Lo;L;\r
+125C;Lo;L;\r
+125D;Lo;L;\r
+1260;Lo;L;\r
+1261;Lo;L;\r
+1262;Lo;L;\r
+1263;Lo;L;\r
+1264;Lo;L;\r
+1265;Lo;L;\r
+1266;Lo;L;\r
+1267;Lo;L;\r
+1268;Lo;L;\r
+1269;Lo;L;\r
+126A;Lo;L;\r
+126B;Lo;L;\r
+126C;Lo;L;\r
+126D;Lo;L;\r
+126E;Lo;L;\r
+126F;Lo;L;\r
+1270;Lo;L;\r
+1271;Lo;L;\r
+1272;Lo;L;\r
+1273;Lo;L;\r
+1274;Lo;L;\r
+1275;Lo;L;\r
+1276;Lo;L;\r
+1277;Lo;L;\r
+1278;Lo;L;\r
+1279;Lo;L;\r
+127A;Lo;L;\r
+127B;Lo;L;\r
+127C;Lo;L;\r
+127D;Lo;L;\r
+127E;Lo;L;\r
+127F;Lo;L;\r
+1280;Lo;L;\r
+1281;Lo;L;\r
+1282;Lo;L;\r
+1283;Lo;L;\r
+1284;Lo;L;\r
+1285;Lo;L;\r
+1286;Lo;L;\r
+1288;Lo;L;\r
+128A;Lo;L;\r
+128B;Lo;L;\r
+128C;Lo;L;\r
+128D;Lo;L;\r
+1290;Lo;L;\r
+1291;Lo;L;\r
+1292;Lo;L;\r
+1293;Lo;L;\r
+1294;Lo;L;\r
+1295;Lo;L;\r
+1296;Lo;L;\r
+1297;Lo;L;\r
+1298;Lo;L;\r
+1299;Lo;L;\r
+129A;Lo;L;\r
+129B;Lo;L;\r
+129C;Lo;L;\r
+129D;Lo;L;\r
+129E;Lo;L;\r
+129F;Lo;L;\r
+12A0;Lo;L;\r
+12A1;Lo;L;\r
+12A2;Lo;L;\r
+12A3;Lo;L;\r
+12A4;Lo;L;\r
+12A5;Lo;L;\r
+12A6;Lo;L;\r
+12A7;Lo;L;\r
+12A8;Lo;L;\r
+12A9;Lo;L;\r
+12AA;Lo;L;\r
+12AB;Lo;L;\r
+12AC;Lo;L;\r
+12AD;Lo;L;\r
+12AE;Lo;L;\r
+12B0;Lo;L;\r
+12B2;Lo;L;\r
+12B3;Lo;L;\r
+12B4;Lo;L;\r
+12B5;Lo;L;\r
+12B8;Lo;L;\r
+12B9;Lo;L;\r
+12BA;Lo;L;\r
+12BB;Lo;L;\r
+12BC;Lo;L;\r
+12BD;Lo;L;\r
+12BE;Lo;L;\r
+12C0;Lo;L;\r
+12C2;Lo;L;\r
+12C3;Lo;L;\r
+12C4;Lo;L;\r
+12C5;Lo;L;\r
+12C8;Lo;L;\r
+12C9;Lo;L;\r
+12CA;Lo;L;\r
+12CB;Lo;L;\r
+12CC;Lo;L;\r
+12CD;Lo;L;\r
+12CE;Lo;L;\r
+12D0;Lo;L;\r
+12D1;Lo;L;\r
+12D2;Lo;L;\r
+12D3;Lo;L;\r
+12D4;Lo;L;\r
+12D5;Lo;L;\r
+12D6;Lo;L;\r
+12D8;Lo;L;\r
+12D9;Lo;L;\r
+12DA;Lo;L;\r
+12DB;Lo;L;\r
+12DC;Lo;L;\r
+12DD;Lo;L;\r
+12DE;Lo;L;\r
+12DF;Lo;L;\r
+12E0;Lo;L;\r
+12E1;Lo;L;\r
+12E2;Lo;L;\r
+12E3;Lo;L;\r
+12E4;Lo;L;\r
+12E5;Lo;L;\r
+12E6;Lo;L;\r
+12E7;Lo;L;\r
+12E8;Lo;L;\r
+12E9;Lo;L;\r
+12EA;Lo;L;\r
+12EB;Lo;L;\r
+12EC;Lo;L;\r
+12ED;Lo;L;\r
+12EE;Lo;L;\r
+12F0;Lo;L;\r
+12F1;Lo;L;\r
+12F2;Lo;L;\r
+12F3;Lo;L;\r
+12F4;Lo;L;\r
+12F5;Lo;L;\r
+12F6;Lo;L;\r
+12F7;Lo;L;\r
+12F8;Lo;L;\r
+12F9;Lo;L;\r
+12FA;Lo;L;\r
+12FB;Lo;L;\r
+12FC;Lo;L;\r
+12FD;Lo;L;\r
+12FE;Lo;L;\r
+12FF;Lo;L;\r
+1300;Lo;L;\r
+1301;Lo;L;\r
+1302;Lo;L;\r
+1303;Lo;L;\r
+1304;Lo;L;\r
+1305;Lo;L;\r
+1306;Lo;L;\r
+1307;Lo;L;\r
+1308;Lo;L;\r
+1309;Lo;L;\r
+130A;Lo;L;\r
+130B;Lo;L;\r
+130C;Lo;L;\r
+130D;Lo;L;\r
+130E;Lo;L;\r
+1310;Lo;L;\r
+1312;Lo;L;\r
+1313;Lo;L;\r
+1314;Lo;L;\r
+1315;Lo;L;\r
+1318;Lo;L;\r
+1319;Lo;L;\r
+131A;Lo;L;\r
+131B;Lo;L;\r
+131C;Lo;L;\r
+131D;Lo;L;\r
+131E;Lo;L;\r
+1320;Lo;L;\r
+1321;Lo;L;\r
+1322;Lo;L;\r
+1323;Lo;L;\r
+1324;Lo;L;\r
+1325;Lo;L;\r
+1326;Lo;L;\r
+1327;Lo;L;\r
+1328;Lo;L;\r
+1329;Lo;L;\r
+132A;Lo;L;\r
+132B;Lo;L;\r
+132C;Lo;L;\r
+132D;Lo;L;\r
+132E;Lo;L;\r
+132F;Lo;L;\r
+1330;Lo;L;\r
+1331;Lo;L;\r
+1332;Lo;L;\r
+1333;Lo;L;\r
+1334;Lo;L;\r
+1335;Lo;L;\r
+1336;Lo;L;\r
+1337;Lo;L;\r
+1338;Lo;L;\r
+1339;Lo;L;\r
+133A;Lo;L;\r
+133B;Lo;L;\r
+133C;Lo;L;\r
+133D;Lo;L;\r
+133E;Lo;L;\r
+133F;Lo;L;\r
+1340;Lo;L;\r
+1341;Lo;L;\r
+1342;Lo;L;\r
+1343;Lo;L;\r
+1344;Lo;L;\r
+1345;Lo;L;\r
+1346;Lo;L;\r
+1348;Lo;L;\r
+1349;Lo;L;\r
+134A;Lo;L;\r
+134B;Lo;L;\r
+134C;Lo;L;\r
+134D;Lo;L;\r
+134E;Lo;L;\r
+134F;Lo;L;\r
+1350;Lo;L;\r
+1351;Lo;L;\r
+1352;Lo;L;\r
+1353;Lo;L;\r
+1354;Lo;L;\r
+1355;Lo;L;\r
+1356;Lo;L;\r
+1357;Lo;L;\r
+1358;Lo;L;\r
+1359;Lo;L;\r
+135A;Lo;L;\r
+1361;Po;L;\r
+1362;Po;L;\r
+1363;Po;L;\r
+1364;Po;L;\r
+1365;Po;L;\r
+1366;Po;L;\r
+1367;Po;L;\r
+1368;Po;L;\r
+1369;Nd;L;\r
+136A;Nd;L;\r
+136B;Nd;L;\r
+136C;Nd;L;\r
+136D;Nd;L;\r
+136E;Nd;L;\r
+136F;Nd;L;\r
+1370;Nd;L;\r
+1371;Nd;L;\r
+1372;No;L;\r
+1373;No;L;\r
+1374;No;L;\r
+1375;No;L;\r
+1376;No;L;\r
+1377;No;L;\r
+1378;No;L;\r
+1379;No;L;\r
+137A;No;L;\r
+137B;No;L;\r
+137C;No;L;\r
+13A0;Lo;L;\r
+13A1;Lo;L;\r
+13A2;Lo;L;\r
+13A3;Lo;L;\r
+13A4;Lo;L;\r
+13A5;Lo;L;\r
+13A6;Lo;L;\r
+13A7;Lo;L;\r
+13A8;Lo;L;\r
+13A9;Lo;L;\r
+13AA;Lo;L;\r
+13AB;Lo;L;\r
+13AC;Lo;L;\r
+13AD;Lo;L;\r
+13AE;Lo;L;\r
+13AF;Lo;L;\r
+13B0;Lo;L;\r
+13B1;Lo;L;\r
+13B2;Lo;L;\r
+13B3;Lo;L;\r
+13B4;Lo;L;\r
+13B5;Lo;L;\r
+13B6;Lo;L;\r
+13B7;Lo;L;\r
+13B8;Lo;L;\r
+13B9;Lo;L;\r
+13BA;Lo;L;\r
+13BB;Lo;L;\r
+13BC;Lo;L;\r
+13BD;Lo;L;\r
+13BE;Lo;L;\r
+13BF;Lo;L;\r
+13C0;Lo;L;\r
+13C1;Lo;L;\r
+13C2;Lo;L;\r
+13C3;Lo;L;\r
+13C4;Lo;L;\r
+13C5;Lo;L;\r
+13C6;Lo;L;\r
+13C7;Lo;L;\r
+13C8;Lo;L;\r
+13C9;Lo;L;\r
+13CA;Lo;L;\r
+13CB;Lo;L;\r
+13CC;Lo;L;\r
+13CD;Lo;L;\r
+13CE;Lo;L;\r
+13CF;Lo;L;\r
+13D0;Lo;L;\r
+13D1;Lo;L;\r
+13D2;Lo;L;\r
+13D3;Lo;L;\r
+13D4;Lo;L;\r
+13D5;Lo;L;\r
+13D6;Lo;L;\r
+13D7;Lo;L;\r
+13D8;Lo;L;\r
+13D9;Lo;L;\r
+13DA;Lo;L;\r
+13DB;Lo;L;\r
+13DC;Lo;L;\r
+13DD;Lo;L;\r
+13DE;Lo;L;\r
+13DF;Lo;L;\r
+13E0;Lo;L;\r
+13E1;Lo;L;\r
+13E2;Lo;L;\r
+13E3;Lo;L;\r
+13E4;Lo;L;\r
+13E5;Lo;L;\r
+13E6;Lo;L;\r
+13E7;Lo;L;\r
+13E8;Lo;L;\r
+13E9;Lo;L;\r
+13EA;Lo;L;\r
+13EB;Lo;L;\r
+13EC;Lo;L;\r
+13ED;Lo;L;\r
+13EE;Lo;L;\r
+13EF;Lo;L;\r
+13F0;Lo;L;\r
+13F1;Lo;L;\r
+13F2;Lo;L;\r
+13F3;Lo;L;\r
+13F4;Lo;L;\r
+1401;Lo;L;\r
+1402;Lo;L;\r
+1403;Lo;L;\r
+1404;Lo;L;\r
+1405;Lo;L;\r
+1406;Lo;L;\r
+1407;Lo;L;\r
+1408;Lo;L;\r
+1409;Lo;L;\r
+140A;Lo;L;\r
+140B;Lo;L;\r
+140C;Lo;L;\r
+140D;Lo;L;\r
+140E;Lo;L;\r
+140F;Lo;L;\r
+1410;Lo;L;\r
+1411;Lo;L;\r
+1412;Lo;L;\r
+1413;Lo;L;\r
+1414;Lo;L;\r
+1415;Lo;L;\r
+1416;Lo;L;\r
+1417;Lo;L;\r
+1418;Lo;L;\r
+1419;Lo;L;\r
+141A;Lo;L;\r
+141B;Lo;L;\r
+141C;Lo;L;\r
+141D;Lo;L;\r
+141E;Lo;L;\r
+141F;Lo;L;\r
+1420;Lo;L;\r
+1421;Lo;L;\r
+1422;Lo;L;\r
+1423;Lo;L;\r
+1424;Lo;L;\r
+1425;Lo;L;\r
+1426;Lo;L;\r
+1427;Lo;L;\r
+1428;Lo;L;\r
+1429;Lo;L;\r
+142A;Lo;L;\r
+142B;Lo;L;\r
+142C;Lo;L;\r
+142D;Lo;L;\r
+142E;Lo;L;\r
+142F;Lo;L;\r
+1430;Lo;L;\r
+1431;Lo;L;\r
+1432;Lo;L;\r
+1433;Lo;L;\r
+1434;Lo;L;\r
+1435;Lo;L;\r
+1436;Lo;L;\r
+1437;Lo;L;\r
+1438;Lo;L;\r
+1439;Lo;L;\r
+143A;Lo;L;\r
+143B;Lo;L;\r
+143C;Lo;L;\r
+143D;Lo;L;\r
+143E;Lo;L;\r
+143F;Lo;L;\r
+1440;Lo;L;\r
+1441;Lo;L;\r
+1442;Lo;L;\r
+1443;Lo;L;\r
+1444;Lo;L;\r
+1445;Lo;L;\r
+1446;Lo;L;\r
+1447;Lo;L;\r
+1448;Lo;L;\r
+1449;Lo;L;\r
+144A;Lo;L;\r
+144B;Lo;L;\r
+144C;Lo;L;\r
+144D;Lo;L;\r
+144E;Lo;L;\r
+144F;Lo;L;\r
+1450;Lo;L;\r
+1451;Lo;L;\r
+1452;Lo;L;\r
+1453;Lo;L;\r
+1454;Lo;L;\r
+1455;Lo;L;\r
+1456;Lo;L;\r
+1457;Lo;L;\r
+1458;Lo;L;\r
+1459;Lo;L;\r
+145A;Lo;L;\r
+145B;Lo;L;\r
+145C;Lo;L;\r
+145D;Lo;L;\r
+145E;Lo;L;\r
+145F;Lo;L;\r
+1460;Lo;L;\r
+1461;Lo;L;\r
+1462;Lo;L;\r
+1463;Lo;L;\r
+1464;Lo;L;\r
+1465;Lo;L;\r
+1466;Lo;L;\r
+1467;Lo;L;\r
+1468;Lo;L;\r
+1469;Lo;L;\r
+146A;Lo;L;\r
+146B;Lo;L;\r
+146C;Lo;L;\r
+146D;Lo;L;\r
+146E;Lo;L;\r
+146F;Lo;L;\r
+1470;Lo;L;\r
+1471;Lo;L;\r
+1472;Lo;L;\r
+1473;Lo;L;\r
+1474;Lo;L;\r
+1475;Lo;L;\r
+1476;Lo;L;\r
+1477;Lo;L;\r
+1478;Lo;L;\r
+1479;Lo;L;\r
+147A;Lo;L;\r
+147B;Lo;L;\r
+147C;Lo;L;\r
+147D;Lo;L;\r
+147E;Lo;L;\r
+147F;Lo;L;\r
+1480;Lo;L;\r
+1481;Lo;L;\r
+1482;Lo;L;\r
+1483;Lo;L;\r
+1484;Lo;L;\r
+1485;Lo;L;\r
+1486;Lo;L;\r
+1487;Lo;L;\r
+1488;Lo;L;\r
+1489;Lo;L;\r
+148A;Lo;L;\r
+148B;Lo;L;\r
+148C;Lo;L;\r
+148D;Lo;L;\r
+148E;Lo;L;\r
+148F;Lo;L;\r
+1490;Lo;L;\r
+1491;Lo;L;\r
+1492;Lo;L;\r
+1493;Lo;L;\r
+1494;Lo;L;\r
+1495;Lo;L;\r
+1496;Lo;L;\r
+1497;Lo;L;\r
+1498;Lo;L;\r
+1499;Lo;L;\r
+149A;Lo;L;\r
+149B;Lo;L;\r
+149C;Lo;L;\r
+149D;Lo;L;\r
+149E;Lo;L;\r
+149F;Lo;L;\r
+14A0;Lo;L;\r
+14A1;Lo;L;\r
+14A2;Lo;L;\r
+14A3;Lo;L;\r
+14A4;Lo;L;\r
+14A5;Lo;L;\r
+14A6;Lo;L;\r
+14A7;Lo;L;\r
+14A8;Lo;L;\r
+14A9;Lo;L;\r
+14AA;Lo;L;\r
+14AB;Lo;L;\r
+14AC;Lo;L;\r
+14AD;Lo;L;\r
+14AE;Lo;L;\r
+14AF;Lo;L;\r
+14B0;Lo;L;\r
+14B1;Lo;L;\r
+14B2;Lo;L;\r
+14B3;Lo;L;\r
+14B4;Lo;L;\r
+14B5;Lo;L;\r
+14B6;Lo;L;\r
+14B7;Lo;L;\r
+14B8;Lo;L;\r
+14B9;Lo;L;\r
+14BA;Lo;L;\r
+14BB;Lo;L;\r
+14BC;Lo;L;\r
+14BD;Lo;L;\r
+14BE;Lo;L;\r
+14BF;Lo;L;\r
+14C0;Lo;L;\r
+14C1;Lo;L;\r
+14C2;Lo;L;\r
+14C3;Lo;L;\r
+14C4;Lo;L;\r
+14C5;Lo;L;\r
+14C6;Lo;L;\r
+14C7;Lo;L;\r
+14C8;Lo;L;\r
+14C9;Lo;L;\r
+14CA;Lo;L;\r
+14CB;Lo;L;\r
+14CC;Lo;L;\r
+14CD;Lo;L;\r
+14CE;Lo;L;\r
+14CF;Lo;L;\r
+14D0;Lo;L;\r
+14D1;Lo;L;\r
+14D2;Lo;L;\r
+14D3;Lo;L;\r
+14D4;Lo;L;\r
+14D5;Lo;L;\r
+14D6;Lo;L;\r
+14D7;Lo;L;\r
+14D8;Lo;L;\r
+14D9;Lo;L;\r
+14DA;Lo;L;\r
+14DB;Lo;L;\r
+14DC;Lo;L;\r
+14DD;Lo;L;\r
+14DE;Lo;L;\r
+14DF;Lo;L;\r
+14E0;Lo;L;\r
+14E1;Lo;L;\r
+14E2;Lo;L;\r
+14E3;Lo;L;\r
+14E4;Lo;L;\r
+14E5;Lo;L;\r
+14E6;Lo;L;\r
+14E7;Lo;L;\r
+14E8;Lo;L;\r
+14E9;Lo;L;\r
+14EA;Lo;L;\r
+14EB;Lo;L;\r
+14EC;Lo;L;\r
+14ED;Lo;L;\r
+14EE;Lo;L;\r
+14EF;Lo;L;\r
+14F0;Lo;L;\r
+14F1;Lo;L;\r
+14F2;Lo;L;\r
+14F3;Lo;L;\r
+14F4;Lo;L;\r
+14F5;Lo;L;\r
+14F6;Lo;L;\r
+14F7;Lo;L;\r
+14F8;Lo;L;\r
+14F9;Lo;L;\r
+14FA;Lo;L;\r
+14FB;Lo;L;\r
+14FC;Lo;L;\r
+14FD;Lo;L;\r
+14FE;Lo;L;\r
+14FF;Lo;L;\r
+1500;Lo;L;\r
+1501;Lo;L;\r
+1502;Lo;L;\r
+1503;Lo;L;\r
+1504;Lo;L;\r
+1505;Lo;L;\r
+1506;Lo;L;\r
+1507;Lo;L;\r
+1508;Lo;L;\r
+1509;Lo;L;\r
+150A;Lo;L;\r
+150B;Lo;L;\r
+150C;Lo;L;\r
+150D;Lo;L;\r
+150E;Lo;L;\r
+150F;Lo;L;\r
+1510;Lo;L;\r
+1511;Lo;L;\r
+1512;Lo;L;\r
+1513;Lo;L;\r
+1514;Lo;L;\r
+1515;Lo;L;\r
+1516;Lo;L;\r
+1517;Lo;L;\r
+1518;Lo;L;\r
+1519;Lo;L;\r
+151A;Lo;L;\r
+151B;Lo;L;\r
+151C;Lo;L;\r
+151D;Lo;L;\r
+151E;Lo;L;\r
+151F;Lo;L;\r
+1520;Lo;L;\r
+1521;Lo;L;\r
+1522;Lo;L;\r
+1523;Lo;L;\r
+1524;Lo;L;\r
+1525;Lo;L;\r
+1526;Lo;L;\r
+1527;Lo;L;\r
+1528;Lo;L;\r
+1529;Lo;L;\r
+152A;Lo;L;\r
+152B;Lo;L;\r
+152C;Lo;L;\r
+152D;Lo;L;\r
+152E;Lo;L;\r
+152F;Lo;L;\r
+1530;Lo;L;\r
+1531;Lo;L;\r
+1532;Lo;L;\r
+1533;Lo;L;\r
+1534;Lo;L;\r
+1535;Lo;L;\r
+1536;Lo;L;\r
+1537;Lo;L;\r
+1538;Lo;L;\r
+1539;Lo;L;\r
+153A;Lo;L;\r
+153B;Lo;L;\r
+153C;Lo;L;\r
+153D;Lo;L;\r
+153E;Lo;L;\r
+153F;Lo;L;\r
+1540;Lo;L;\r
+1541;Lo;L;\r
+1542;Lo;L;\r
+1543;Lo;L;\r
+1544;Lo;L;\r
+1545;Lo;L;\r
+1546;Lo;L;\r
+1547;Lo;L;\r
+1548;Lo;L;\r
+1549;Lo;L;\r
+154A;Lo;L;\r
+154B;Lo;L;\r
+154C;Lo;L;\r
+154D;Lo;L;\r
+154E;Lo;L;\r
+154F;Lo;L;\r
+1550;Lo;L;\r
+1551;Lo;L;\r
+1552;Lo;L;\r
+1553;Lo;L;\r
+1554;Lo;L;\r
+1555;Lo;L;\r
+1556;Lo;L;\r
+1557;Lo;L;\r
+1558;Lo;L;\r
+1559;Lo;L;\r
+155A;Lo;L;\r
+155B;Lo;L;\r
+155C;Lo;L;\r
+155D;Lo;L;\r
+155E;Lo;L;\r
+155F;Lo;L;\r
+1560;Lo;L;\r
+1561;Lo;L;\r
+1562;Lo;L;\r
+1563;Lo;L;\r
+1564;Lo;L;\r
+1565;Lo;L;\r
+1566;Lo;L;\r
+1567;Lo;L;\r
+1568;Lo;L;\r
+1569;Lo;L;\r
+156A;Lo;L;\r
+156B;Lo;L;\r
+156C;Lo;L;\r
+156D;Lo;L;\r
+156E;Lo;L;\r
+156F;Lo;L;\r
+1570;Lo;L;\r
+1571;Lo;L;\r
+1572;Lo;L;\r
+1573;Lo;L;\r
+1574;Lo;L;\r
+1575;Lo;L;\r
+1576;Lo;L;\r
+1577;Lo;L;\r
+1578;Lo;L;\r
+1579;Lo;L;\r
+157A;Lo;L;\r
+157B;Lo;L;\r
+157C;Lo;L;\r
+157D;Lo;L;\r
+157E;Lo;L;\r
+157F;Lo;L;\r
+1580;Lo;L;\r
+1581;Lo;L;\r
+1582;Lo;L;\r
+1583;Lo;L;\r
+1584;Lo;L;\r
+1585;Lo;L;\r
+1586;Lo;L;\r
+1587;Lo;L;\r
+1588;Lo;L;\r
+1589;Lo;L;\r
+158A;Lo;L;\r
+158B;Lo;L;\r
+158C;Lo;L;\r
+158D;Lo;L;\r
+158E;Lo;L;\r
+158F;Lo;L;\r
+1590;Lo;L;\r
+1591;Lo;L;\r
+1592;Lo;L;\r
+1593;Lo;L;\r
+1594;Lo;L;\r
+1595;Lo;L;\r
+1596;Lo;L;\r
+1597;Lo;L;\r
+1598;Lo;L;\r
+1599;Lo;L;\r
+159A;Lo;L;\r
+159B;Lo;L;\r
+159C;Lo;L;\r
+159D;Lo;L;\r
+159E;Lo;L;\r
+159F;Lo;L;\r
+15A0;Lo;L;\r
+15A1;Lo;L;\r
+15A2;Lo;L;\r
+15A3;Lo;L;\r
+15A4;Lo;L;\r
+15A5;Lo;L;\r
+15A6;Lo;L;\r
+15A7;Lo;L;\r
+15A8;Lo;L;\r
+15A9;Lo;L;\r
+15AA;Lo;L;\r
+15AB;Lo;L;\r
+15AC;Lo;L;\r
+15AD;Lo;L;\r
+15AE;Lo;L;\r
+15AF;Lo;L;\r
+15B0;Lo;L;\r
+15B1;Lo;L;\r
+15B2;Lo;L;\r
+15B3;Lo;L;\r
+15B4;Lo;L;\r
+15B5;Lo;L;\r
+15B6;Lo;L;\r
+15B7;Lo;L;\r
+15B8;Lo;L;\r
+15B9;Lo;L;\r
+15BA;Lo;L;\r
+15BB;Lo;L;\r
+15BC;Lo;L;\r
+15BD;Lo;L;\r
+15BE;Lo;L;\r
+15BF;Lo;L;\r
+15C0;Lo;L;\r
+15C1;Lo;L;\r
+15C2;Lo;L;\r
+15C3;Lo;L;\r
+15C4;Lo;L;\r
+15C5;Lo;L;\r
+15C6;Lo;L;\r
+15C7;Lo;L;\r
+15C8;Lo;L;\r
+15C9;Lo;L;\r
+15CA;Lo;L;\r
+15CB;Lo;L;\r
+15CC;Lo;L;\r
+15CD;Lo;L;\r
+15CE;Lo;L;\r
+15CF;Lo;L;\r
+15D0;Lo;L;\r
+15D1;Lo;L;\r
+15D2;Lo;L;\r
+15D3;Lo;L;\r
+15D4;Lo;L;\r
+15D5;Lo;L;\r
+15D6;Lo;L;\r
+15D7;Lo;L;\r
+15D8;Lo;L;\r
+15D9;Lo;L;\r
+15DA;Lo;L;\r
+15DB;Lo;L;\r
+15DC;Lo;L;\r
+15DD;Lo;L;\r
+15DE;Lo;L;\r
+15DF;Lo;L;\r
+15E0;Lo;L;\r
+15E1;Lo;L;\r
+15E2;Lo;L;\r
+15E3;Lo;L;\r
+15E4;Lo;L;\r
+15E5;Lo;L;\r
+15E6;Lo;L;\r
+15E7;Lo;L;\r
+15E8;Lo;L;\r
+15E9;Lo;L;\r
+15EA;Lo;L;\r
+15EB;Lo;L;\r
+15EC;Lo;L;\r
+15ED;Lo;L;\r
+15EE;Lo;L;\r
+15EF;Lo;L;\r
+15F0;Lo;L;\r
+15F1;Lo;L;\r
+15F2;Lo;L;\r
+15F3;Lo;L;\r
+15F4;Lo;L;\r
+15F5;Lo;L;\r
+15F6;Lo;L;\r
+15F7;Lo;L;\r
+15F8;Lo;L;\r
+15F9;Lo;L;\r
+15FA;Lo;L;\r
+15FB;Lo;L;\r
+15FC;Lo;L;\r
+15FD;Lo;L;\r
+15FE;Lo;L;\r
+15FF;Lo;L;\r
+1600;Lo;L;\r
+1601;Lo;L;\r
+1602;Lo;L;\r
+1603;Lo;L;\r
+1604;Lo;L;\r
+1605;Lo;L;\r
+1606;Lo;L;\r
+1607;Lo;L;\r
+1608;Lo;L;\r
+1609;Lo;L;\r
+160A;Lo;L;\r
+160B;Lo;L;\r
+160C;Lo;L;\r
+160D;Lo;L;\r
+160E;Lo;L;\r
+160F;Lo;L;\r
+1610;Lo;L;\r
+1611;Lo;L;\r
+1612;Lo;L;\r
+1613;Lo;L;\r
+1614;Lo;L;\r
+1615;Lo;L;\r
+1616;Lo;L;\r
+1617;Lo;L;\r
+1618;Lo;L;\r
+1619;Lo;L;\r
+161A;Lo;L;\r
+161B;Lo;L;\r
+161C;Lo;L;\r
+161D;Lo;L;\r
+161E;Lo;L;\r
+161F;Lo;L;\r
+1620;Lo;L;\r
+1621;Lo;L;\r
+1622;Lo;L;\r
+1623;Lo;L;\r
+1624;Lo;L;\r
+1625;Lo;L;\r
+1626;Lo;L;\r
+1627;Lo;L;\r
+1628;Lo;L;\r
+1629;Lo;L;\r
+162A;Lo;L;\r
+162B;Lo;L;\r
+162C;Lo;L;\r
+162D;Lo;L;\r
+162E;Lo;L;\r
+162F;Lo;L;\r
+1630;Lo;L;\r
+1631;Lo;L;\r
+1632;Lo;L;\r
+1633;Lo;L;\r
+1634;Lo;L;\r
+1635;Lo;L;\r
+1636;Lo;L;\r
+1637;Lo;L;\r
+1638;Lo;L;\r
+1639;Lo;L;\r
+163A;Lo;L;\r
+163B;Lo;L;\r
+163C;Lo;L;\r
+163D;Lo;L;\r
+163E;Lo;L;\r
+163F;Lo;L;\r
+1640;Lo;L;\r
+1641;Lo;L;\r
+1642;Lo;L;\r
+1643;Lo;L;\r
+1644;Lo;L;\r
+1645;Lo;L;\r
+1646;Lo;L;\r
+1647;Lo;L;\r
+1648;Lo;L;\r
+1649;Lo;L;\r
+164A;Lo;L;\r
+164B;Lo;L;\r
+164C;Lo;L;\r
+164D;Lo;L;\r
+164E;Lo;L;\r
+164F;Lo;L;\r
+1650;Lo;L;\r
+1651;Lo;L;\r
+1652;Lo;L;\r
+1653;Lo;L;\r
+1654;Lo;L;\r
+1655;Lo;L;\r
+1656;Lo;L;\r
+1657;Lo;L;\r
+1658;Lo;L;\r
+1659;Lo;L;\r
+165A;Lo;L;\r
+165B;Lo;L;\r
+165C;Lo;L;\r
+165D;Lo;L;\r
+165E;Lo;L;\r
+165F;Lo;L;\r
+1660;Lo;L;\r
+1661;Lo;L;\r
+1662;Lo;L;\r
+1663;Lo;L;\r
+1664;Lo;L;\r
+1665;Lo;L;\r
+1666;Lo;L;\r
+1667;Lo;L;\r
+1668;Lo;L;\r
+1669;Lo;L;\r
+166A;Lo;L;\r
+166B;Lo;L;\r
+166C;Lo;L;\r
+166D;Po;L;\r
+166E;Po;L;\r
+166F;Lo;L;\r
+1670;Lo;L;\r
+1671;Lo;L;\r
+1672;Lo;L;\r
+1673;Lo;L;\r
+1674;Lo;L;\r
+1675;Lo;L;\r
+1676;Lo;L;\r
+1680;Zs;WS;\r
+1681;Lo;L;\r
+1682;Lo;L;\r
+1683;Lo;L;\r
+1684;Lo;L;\r
+1685;Lo;L;\r
+1686;Lo;L;\r
+1687;Lo;L;\r
+1688;Lo;L;\r
+1689;Lo;L;\r
+168A;Lo;L;\r
+168B;Lo;L;\r
+168C;Lo;L;\r
+168D;Lo;L;\r
+168E;Lo;L;\r
+168F;Lo;L;\r
+1690;Lo;L;\r
+1691;Lo;L;\r
+1692;Lo;L;\r
+1693;Lo;L;\r
+1694;Lo;L;\r
+1695;Lo;L;\r
+1696;Lo;L;\r
+1697;Lo;L;\r
+1698;Lo;L;\r
+1699;Lo;L;\r
+169A;Lo;L;\r
+169B;Ps;ON;\r
+169C;Pe;ON;\r
+16A0;Lo;L;\r
+16A1;Lo;L;\r
+16A2;Lo;L;\r
+16A3;Lo;L;\r
+16A4;Lo;L;\r
+16A5;Lo;L;\r
+16A6;Lo;L;\r
+16A7;Lo;L;\r
+16A8;Lo;L;\r
+16A9;Lo;L;\r
+16AA;Lo;L;\r
+16AB;Lo;L;\r
+16AC;Lo;L;\r
+16AD;Lo;L;\r
+16AE;Lo;L;\r
+16AF;Lo;L;\r
+16B0;Lo;L;\r
+16B1;Lo;L;\r
+16B2;Lo;L;\r
+16B3;Lo;L;\r
+16B4;Lo;L;\r
+16B5;Lo;L;\r
+16B6;Lo;L;\r
+16B7;Lo;L;\r
+16B8;Lo;L;\r
+16B9;Lo;L;\r
+16BA;Lo;L;\r
+16BB;Lo;L;\r
+16BC;Lo;L;\r
+16BD;Lo;L;\r
+16BE;Lo;L;\r
+16BF;Lo;L;\r
+16C0;Lo;L;\r
+16C1;Lo;L;\r
+16C2;Lo;L;\r
+16C3;Lo;L;\r
+16C4;Lo;L;\r
+16C5;Lo;L;\r
+16C6;Lo;L;\r
+16C7;Lo;L;\r
+16C8;Lo;L;\r
+16C9;Lo;L;\r
+16CA;Lo;L;\r
+16CB;Lo;L;\r
+16CC;Lo;L;\r
+16CD;Lo;L;\r
+16CE;Lo;L;\r
+16CF;Lo;L;\r
+16D0;Lo;L;\r
+16D1;Lo;L;\r
+16D2;Lo;L;\r
+16D3;Lo;L;\r
+16D4;Lo;L;\r
+16D5;Lo;L;\r
+16D6;Lo;L;\r
+16D7;Lo;L;\r
+16D8;Lo;L;\r
+16D9;Lo;L;\r
+16DA;Lo;L;\r
+16DB;Lo;L;\r
+16DC;Lo;L;\r
+16DD;Lo;L;\r
+16DE;Lo;L;\r
+16DF;Lo;L;\r
+16E0;Lo;L;\r
+16E1;Lo;L;\r
+16E2;Lo;L;\r
+16E3;Lo;L;\r
+16E4;Lo;L;\r
+16E5;Lo;L;\r
+16E6;Lo;L;\r
+16E7;Lo;L;\r
+16E8;Lo;L;\r
+16E9;Lo;L;\r
+16EA;Lo;L;\r
+16EB;Po;L;\r
+16EC;Po;L;\r
+16ED;Po;L;\r
+16EE;Nl;L;\r
+16EF;Nl;L;\r
+16F0;Nl;L;\r
+1780;Lo;L;\r
+1781;Lo;L;\r
+1782;Lo;L;\r
+1783;Lo;L;\r
+1784;Lo;L;\r
+1785;Lo;L;\r
+1786;Lo;L;\r
+1787;Lo;L;\r
+1788;Lo;L;\r
+1789;Lo;L;\r
+178A;Lo;L;\r
+178B;Lo;L;\r
+178C;Lo;L;\r
+178D;Lo;L;\r
+178E;Lo;L;\r
+178F;Lo;L;\r
+1790;Lo;L;\r
+1791;Lo;L;\r
+1792;Lo;L;\r
+1793;Lo;L;\r
+1794;Lo;L;\r
+1795;Lo;L;\r
+1796;Lo;L;\r
+1797;Lo;L;\r
+1798;Lo;L;\r
+1799;Lo;L;\r
+179A;Lo;L;\r
+179B;Lo;L;\r
+179C;Lo;L;\r
+179D;Lo;L;\r
+179E;Lo;L;\r
+179F;Lo;L;\r
+17A0;Lo;L;\r
+17A1;Lo;L;\r
+17A2;Lo;L;\r
+17A3;Lo;L;\r
+17A4;Lo;L;\r
+17A5;Lo;L;\r
+17A6;Lo;L;\r
+17A7;Lo;L;\r
+17A8;Lo;L;\r
+17A9;Lo;L;\r
+17AA;Lo;L;\r
+17AB;Lo;L;\r
+17AC;Lo;L;\r
+17AD;Lo;L;\r
+17AE;Lo;L;\r
+17AF;Lo;L;\r
+17B0;Lo;L;\r
+17B1;Lo;L;\r
+17B2;Lo;L;\r
+17B3;Lo;L;\r
+17B4;Mc;L;\r
+17B5;Mc;L;\r
+17B6;Mc;L;\r
+17B7;Mn;NSM;\r
+17B8;Mn;NSM;\r
+17B9;Mn;NSM;\r
+17BA;Mn;NSM;\r
+17BB;Mn;NSM;\r
+17BC;Mn;NSM;\r
+17BD;Mn;NSM;\r
+17BE;Mc;L;\r
+17BF;Mc;L;\r
+17C0;Mc;L;\r
+17C1;Mc;L;\r
+17C2;Mc;L;\r
+17C3;Mc;L;\r
+17C4;Mc;L;\r
+17C5;Mc;L;\r
+17C6;Mn;NSM;\r
+17C7;Mc;L;\r
+17C8;Mc;L;\r
+17C9;Mn;NSM;\r
+17CA;Mn;NSM;\r
+17CB;Mn;NSM;\r
+17CC;Mn;NSM;\r
+17CD;Mn;NSM;\r
+17CE;Mn;NSM;\r
+17CF;Mn;NSM;\r
+17D0;Mn;NSM;\r
+17D1;Mn;NSM;\r
+17D2;Mn;NSM;\r
+17D3;Mn;NSM;\r
+17D4;Po;L;\r
+17D5;Po;L;\r
+17D6;Po;L;\r
+17D7;Po;L;\r
+17D8;Po;L;\r
+17D9;Po;L;\r
+17DA;Po;L;\r
+17DB;Sc;ET;\r
+17DC;Po;L;\r
+17E0;Nd;L;\r
+17E1;Nd;L;\r
+17E2;Nd;L;\r
+17E3;Nd;L;\r
+17E4;Nd;L;\r
+17E5;Nd;L;\r
+17E6;Nd;L;\r
+17E7;Nd;L;\r
+17E8;Nd;L;\r
+17E9;Nd;L;\r
+1800;Po;ON;\r
+1801;Po;ON;\r
+1802;Po;ON;\r
+1803;Po;ON;\r
+1804;Po;ON;\r
+1805;Po;ON;\r
+1806;Pd;ON;\r
+1807;Po;ON;\r
+1808;Po;ON;\r
+1809;Po;ON;\r
+180A;Po;ON;\r
+180B;Cf;BN;\r
+180C;Cf;BN;\r
+180D;Cf;BN;\r
+180E;Cf;BN;\r
+1810;Nd;L;\r
+1811;Nd;L;\r
+1812;Nd;L;\r
+1813;Nd;L;\r
+1814;Nd;L;\r
+1815;Nd;L;\r
+1816;Nd;L;\r
+1817;Nd;L;\r
+1818;Nd;L;\r
+1819;Nd;L;\r
+1820;Lo;L;\r
+1821;Lo;L;\r
+1822;Lo;L;\r
+1823;Lo;L;\r
+1824;Lo;L;\r
+1825;Lo;L;\r
+1826;Lo;L;\r
+1827;Lo;L;\r
+1828;Lo;L;\r
+1829;Lo;L;\r
+182A;Lo;L;\r
+182B;Lo;L;\r
+182C;Lo;L;\r
+182D;Lo;L;\r
+182E;Lo;L;\r
+182F;Lo;L;\r
+1830;Lo;L;\r
+1831;Lo;L;\r
+1832;Lo;L;\r
+1833;Lo;L;\r
+1834;Lo;L;\r
+1835;Lo;L;\r
+1836;Lo;L;\r
+1837;Lo;L;\r
+1838;Lo;L;\r
+1839;Lo;L;\r
+183A;Lo;L;\r
+183B;Lo;L;\r
+183C;Lo;L;\r
+183D;Lo;L;\r
+183E;Lo;L;\r
+183F;Lo;L;\r
+1840;Lo;L;\r
+1841;Lo;L;\r
+1842;Lo;L;\r
+1843;Lm;L;\r
+1844;Lo;L;\r
+1845;Lo;L;\r
+1846;Lo;L;\r
+1847;Lo;L;\r
+1848;Lo;L;\r
+1849;Lo;L;\r
+184A;Lo;L;\r
+184B;Lo;L;\r
+184C;Lo;L;\r
+184D;Lo;L;\r
+184E;Lo;L;\r
+184F;Lo;L;\r
+1850;Lo;L;\r
+1851;Lo;L;\r
+1852;Lo;L;\r
+1853;Lo;L;\r
+1854;Lo;L;\r
+1855;Lo;L;\r
+1856;Lo;L;\r
+1857;Lo;L;\r
+1858;Lo;L;\r
+1859;Lo;L;\r
+185A;Lo;L;\r
+185B;Lo;L;\r
+185C;Lo;L;\r
+185D;Lo;L;\r
+185E;Lo;L;\r
+185F;Lo;L;\r
+1860;Lo;L;\r
+1861;Lo;L;\r
+1862;Lo;L;\r
+1863;Lo;L;\r
+1864;Lo;L;\r
+1865;Lo;L;\r
+1866;Lo;L;\r
+1867;Lo;L;\r
+1868;Lo;L;\r
+1869;Lo;L;\r
+186A;Lo;L;\r
+186B;Lo;L;\r
+186C;Lo;L;\r
+186D;Lo;L;\r
+186E;Lo;L;\r
+186F;Lo;L;\r
+1870;Lo;L;\r
+1871;Lo;L;\r
+1872;Lo;L;\r
+1873;Lo;L;\r
+1874;Lo;L;\r
+1875;Lo;L;\r
+1876;Lo;L;\r
+1877;Lo;L;\r
+1880;Lo;L;\r
+1881;Lo;L;\r
+1882;Lo;L;\r
+1883;Lo;L;\r
+1884;Lo;L;\r
+1885;Lo;L;\r
+1886;Lo;L;\r
+1887;Lo;L;\r
+1888;Lo;L;\r
+1889;Lo;L;\r
+188A;Lo;L;\r
+188B;Lo;L;\r
+188C;Lo;L;\r
+188D;Lo;L;\r
+188E;Lo;L;\r
+188F;Lo;L;\r
+1890;Lo;L;\r
+1891;Lo;L;\r
+1892;Lo;L;\r
+1893;Lo;L;\r
+1894;Lo;L;\r
+1895;Lo;L;\r
+1896;Lo;L;\r
+1897;Lo;L;\r
+1898;Lo;L;\r
+1899;Lo;L;\r
+189A;Lo;L;\r
+189B;Lo;L;\r
+189C;Lo;L;\r
+189D;Lo;L;\r
+189E;Lo;L;\r
+189F;Lo;L;\r
+18A0;Lo;L;\r
+18A1;Lo;L;\r
+18A2;Lo;L;\r
+18A3;Lo;L;\r
+18A4;Lo;L;\r
+18A5;Lo;L;\r
+18A6;Lo;L;\r
+18A7;Lo;L;\r
+18A8;Lo;L;\r
+18A9;Mn;NSM;\r
+1E00;Lu;L;\r
+1E01;Ll;L;\r
+1E02;Lu;L;\r
+1E03;Ll;L;\r
+1E04;Lu;L;\r
+1E05;Ll;L;\r
+1E06;Lu;L;\r
+1E07;Ll;L;\r
+1E08;Lu;L;\r
+1E09;Ll;L;\r
+1E0A;Lu;L;\r
+1E0B;Ll;L;\r
+1E0C;Lu;L;\r
+1E0D;Ll;L;\r
+1E0E;Lu;L;\r
+1E0F;Ll;L;\r
+1E10;Lu;L;\r
+1E11;Ll;L;\r
+1E12;Lu;L;\r
+1E13;Ll;L;\r
+1E14;Lu;L;\r
+1E15;Ll;L;\r
+1E16;Lu;L;\r
+1E17;Ll;L;\r
+1E18;Lu;L;\r
+1E19;Ll;L;\r
+1E1A;Lu;L;\r
+1E1B;Ll;L;\r
+1E1C;Lu;L;\r
+1E1D;Ll;L;\r
+1E1E;Lu;L;\r
+1E1F;Ll;L;\r
+1E20;Lu;L;\r
+1E21;Ll;L;\r
+1E22;Lu;L;\r
+1E23;Ll;L;\r
+1E24;Lu;L;\r
+1E25;Ll;L;\r
+1E26;Lu;L;\r
+1E27;Ll;L;\r
+1E28;Lu;L;\r
+1E29;Ll;L;\r
+1E2A;Lu;L;\r
+1E2B;Ll;L;\r
+1E2C;Lu;L;\r
+1E2D;Ll;L;\r
+1E2E;Lu;L;\r
+1E2F;Ll;L;\r
+1E30;Lu;L;\r
+1E31;Ll;L;\r
+1E32;Lu;L;\r
+1E33;Ll;L;\r
+1E34;Lu;L;\r
+1E35;Ll;L;\r
+1E36;Lu;L;\r
+1E37;Ll;L;\r
+1E38;Lu;L;\r
+1E39;Ll;L;\r
+1E3A;Lu;L;\r
+1E3B;Ll;L;\r
+1E3C;Lu;L;\r
+1E3D;Ll;L;\r
+1E3E;Lu;L;\r
+1E3F;Ll;L;\r
+1E40;Lu;L;\r
+1E41;Ll;L;\r
+1E42;Lu;L;\r
+1E43;Ll;L;\r
+1E44;Lu;L;\r
+1E45;Ll;L;\r
+1E46;Lu;L;\r
+1E47;Ll;L;\r
+1E48;Lu;L;\r
+1E49;Ll;L;\r
+1E4A;Lu;L;\r
+1E4B;Ll;L;\r
+1E4C;Lu;L;\r
+1E4D;Ll;L;\r
+1E4E;Lu;L;\r
+1E4F;Ll;L;\r
+1E50;Lu;L;\r
+1E51;Ll;L;\r
+1E52;Lu;L;\r
+1E53;Ll;L;\r
+1E54;Lu;L;\r
+1E55;Ll;L;\r
+1E56;Lu;L;\r
+1E57;Ll;L;\r
+1E58;Lu;L;\r
+1E59;Ll;L;\r
+1E5A;Lu;L;\r
+1E5B;Ll;L;\r
+1E5C;Lu;L;\r
+1E5D;Ll;L;\r
+1E5E;Lu;L;\r
+1E5F;Ll;L;\r
+1E60;Lu;L;\r
+1E61;Ll;L;\r
+1E62;Lu;L;\r
+1E63;Ll;L;\r
+1E64;Lu;L;\r
+1E65;Ll;L;\r
+1E66;Lu;L;\r
+1E67;Ll;L;\r
+1E68;Lu;L;\r
+1E69;Ll;L;\r
+1E6A;Lu;L;\r
+1E6B;Ll;L;\r
+1E6C;Lu;L;\r
+1E6D;Ll;L;\r
+1E6E;Lu;L;\r
+1E6F;Ll;L;\r
+1E70;Lu;L;\r
+1E71;Ll;L;\r
+1E72;Lu;L;\r
+1E73;Ll;L;\r
+1E74;Lu;L;\r
+1E75;Ll;L;\r
+1E76;Lu;L;\r
+1E77;Ll;L;\r
+1E78;Lu;L;\r
+1E79;Ll;L;\r
+1E7A;Lu;L;\r
+1E7B;Ll;L;\r
+1E7C;Lu;L;\r
+1E7D;Ll;L;\r
+1E7E;Lu;L;\r
+1E7F;Ll;L;\r
+1E80;Lu;L;\r
+1E81;Ll;L;\r
+1E82;Lu;L;\r
+1E83;Ll;L;\r
+1E84;Lu;L;\r
+1E85;Ll;L;\r
+1E86;Lu;L;\r
+1E87;Ll;L;\r
+1E88;Lu;L;\r
+1E89;Ll;L;\r
+1E8A;Lu;L;\r
+1E8B;Ll;L;\r
+1E8C;Lu;L;\r
+1E8D;Ll;L;\r
+1E8E;Lu;L;\r
+1E8F;Ll;L;\r
+1E90;Lu;L;\r
+1E91;Ll;L;\r
+1E92;Lu;L;\r
+1E93;Ll;L;\r
+1E94;Lu;L;\r
+1E95;Ll;L;\r
+1E96;Ll;L;\r
+1E97;Ll;L;\r
+1E98;Ll;L;\r
+1E99;Ll;L;\r
+1E9A;Ll;L;\r
+1E9B;Ll;L;\r
+1EA0;Lu;L;\r
+1EA1;Ll;L;\r
+1EA2;Lu;L;\r
+1EA3;Ll;L;\r
+1EA4;Lu;L;\r
+1EA5;Ll;L;\r
+1EA6;Lu;L;\r
+1EA7;Ll;L;\r
+1EA8;Lu;L;\r
+1EA9;Ll;L;\r
+1EAA;Lu;L;\r
+1EAB;Ll;L;\r
+1EAC;Lu;L;\r
+1EAD;Ll;L;\r
+1EAE;Lu;L;\r
+1EAF;Ll;L;\r
+1EB0;Lu;L;\r
+1EB1;Ll;L;\r
+1EB2;Lu;L;\r
+1EB3;Ll;L;\r
+1EB4;Lu;L;\r
+1EB5;Ll;L;\r
+1EB6;Lu;L;\r
+1EB7;Ll;L;\r
+1EB8;Lu;L;\r
+1EB9;Ll;L;\r
+1EBA;Lu;L;\r
+1EBB;Ll;L;\r
+1EBC;Lu;L;\r
+1EBD;Ll;L;\r
+1EBE;Lu;L;\r
+1EBF;Ll;L;\r
+1EC0;Lu;L;\r
+1EC1;Ll;L;\r
+1EC2;Lu;L;\r
+1EC3;Ll;L;\r
+1EC4;Lu;L;\r
+1EC5;Ll;L;\r
+1EC6;Lu;L;\r
+1EC7;Ll;L;\r
+1EC8;Lu;L;\r
+1EC9;Ll;L;\r
+1ECA;Lu;L;\r
+1ECB;Ll;L;\r
+1ECC;Lu;L;\r
+1ECD;Ll;L;\r
+1ECE;Lu;L;\r
+1ECF;Ll;L;\r
+1ED0;Lu;L;\r
+1ED1;Ll;L;\r
+1ED2;Lu;L;\r
+1ED3;Ll;L;\r
+1ED4;Lu;L;\r
+1ED5;Ll;L;\r
+1ED6;Lu;L;\r
+1ED7;Ll;L;\r
+1ED8;Lu;L;\r
+1ED9;Ll;L;\r
+1EDA;Lu;L;\r
+1EDB;Ll;L;\r
+1EDC;Lu;L;\r
+1EDD;Ll;L;\r
+1EDE;Lu;L;\r
+1EDF;Ll;L;\r
+1EE0;Lu;L;\r
+1EE1;Ll;L;\r
+1EE2;Lu;L;\r
+1EE3;Ll;L;\r
+1EE4;Lu;L;\r
+1EE5;Ll;L;\r
+1EE6;Lu;L;\r
+1EE7;Ll;L;\r
+1EE8;Lu;L;\r
+1EE9;Ll;L;\r
+1EEA;Lu;L;\r
+1EEB;Ll;L;\r
+1EEC;Lu;L;\r
+1EED;Ll;L;\r
+1EEE;Lu;L;\r
+1EEF;Ll;L;\r
+1EF0;Lu;L;\r
+1EF1;Ll;L;\r
+1EF2;Lu;L;\r
+1EF3;Ll;L;\r
+1EF4;Lu;L;\r
+1EF5;Ll;L;\r
+1EF6;Lu;L;\r
+1EF7;Ll;L;\r
+1EF8;Lu;L;\r
+1EF9;Ll;L;\r
+1F00;Ll;L;\r
+1F01;Ll;L;\r
+1F02;Ll;L;\r
+1F03;Ll;L;\r
+1F04;Ll;L;\r
+1F05;Ll;L;\r
+1F06;Ll;L;\r
+1F07;Ll;L;\r
+1F08;Lu;L;\r
+1F09;Lu;L;\r
+1F0A;Lu;L;\r
+1F0B;Lu;L;\r
+1F0C;Lu;L;\r
+1F0D;Lu;L;\r
+1F0E;Lu;L;\r
+1F0F;Lu;L;\r
+1F10;Ll;L;\r
+1F11;Ll;L;\r
+1F12;Ll;L;\r
+1F13;Ll;L;\r
+1F14;Ll;L;\r
+1F15;Ll;L;\r
+1F18;Lu;L;\r
+1F19;Lu;L;\r
+1F1A;Lu;L;\r
+1F1B;Lu;L;\r
+1F1C;Lu;L;\r
+1F1D;Lu;L;\r
+1F20;Ll;L;\r
+1F21;Ll;L;\r
+1F22;Ll;L;\r
+1F23;Ll;L;\r
+1F24;Ll;L;\r
+1F25;Ll;L;\r
+1F26;Ll;L;\r
+1F27;Ll;L;\r
+1F28;Lu;L;\r
+1F29;Lu;L;\r
+1F2A;Lu;L;\r
+1F2B;Lu;L;\r
+1F2C;Lu;L;\r
+1F2D;Lu;L;\r
+1F2E;Lu;L;\r
+1F2F;Lu;L;\r
+1F30;Ll;L;\r
+1F31;Ll;L;\r
+1F32;Ll;L;\r
+1F33;Ll;L;\r
+1F34;Ll;L;\r
+1F35;Ll;L;\r
+1F36;Ll;L;\r
+1F37;Ll;L;\r
+1F38;Lu;L;\r
+1F39;Lu;L;\r
+1F3A;Lu;L;\r
+1F3B;Lu;L;\r
+1F3C;Lu;L;\r
+1F3D;Lu;L;\r
+1F3E;Lu;L;\r
+1F3F;Lu;L;\r
+1F40;Ll;L;\r
+1F41;Ll;L;\r
+1F42;Ll;L;\r
+1F43;Ll;L;\r
+1F44;Ll;L;\r
+1F45;Ll;L;\r
+1F48;Lu;L;\r
+1F49;Lu;L;\r
+1F4A;Lu;L;\r
+1F4B;Lu;L;\r
+1F4C;Lu;L;\r
+1F4D;Lu;L;\r
+1F50;Ll;L;\r
+1F51;Ll;L;\r
+1F52;Ll;L;\r
+1F53;Ll;L;\r
+1F54;Ll;L;\r
+1F55;Ll;L;\r
+1F56;Ll;L;\r
+1F57;Ll;L;\r
+1F59;Lu;L;\r
+1F5B;Lu;L;\r
+1F5D;Lu;L;\r
+1F5F;Lu;L;\r
+1F60;Ll;L;\r
+1F61;Ll;L;\r
+1F62;Ll;L;\r
+1F63;Ll;L;\r
+1F64;Ll;L;\r
+1F65;Ll;L;\r
+1F66;Ll;L;\r
+1F67;Ll;L;\r
+1F68;Lu;L;\r
+1F69;Lu;L;\r
+1F6A;Lu;L;\r
+1F6B;Lu;L;\r
+1F6C;Lu;L;\r
+1F6D;Lu;L;\r
+1F6E;Lu;L;\r
+1F6F;Lu;L;\r
+1F70;Ll;L;\r
+1F71;Ll;L;\r
+1F72;Ll;L;\r
+1F73;Ll;L;\r
+1F74;Ll;L;\r
+1F75;Ll;L;\r
+1F76;Ll;L;\r
+1F77;Ll;L;\r
+1F78;Ll;L;\r
+1F79;Ll;L;\r
+1F7A;Ll;L;\r
+1F7B;Ll;L;\r
+1F7C;Ll;L;\r
+1F7D;Ll;L;\r
+1F80;Ll;L;\r
+1F81;Ll;L;\r
+1F82;Ll;L;\r
+1F83;Ll;L;\r
+1F84;Ll;L;\r
+1F85;Ll;L;\r
+1F86;Ll;L;\r
+1F87;Ll;L;\r
+1F88;Lt;L;\r
+1F89;Lt;L;\r
+1F8A;Lt;L;\r
+1F8B;Lt;L;\r
+1F8C;Lt;L;\r
+1F8D;Lt;L;\r
+1F8E;Lt;L;\r
+1F8F;Lt;L;\r
+1F90;Ll;L;\r
+1F91;Ll;L;\r
+1F92;Ll;L;\r
+1F93;Ll;L;\r
+1F94;Ll;L;\r
+1F95;Ll;L;\r
+1F96;Ll;L;\r
+1F97;Ll;L;\r
+1F98;Lt;L;\r
+1F99;Lt;L;\r
+1F9A;Lt;L;\r
+1F9B;Lt;L;\r
+1F9C;Lt;L;\r
+1F9D;Lt;L;\r
+1F9E;Lt;L;\r
+1F9F;Lt;L;\r
+1FA0;Ll;L;\r
+1FA1;Ll;L;\r
+1FA2;Ll;L;\r
+1FA3;Ll;L;\r
+1FA4;Ll;L;\r
+1FA5;Ll;L;\r
+1FA6;Ll;L;\r
+1FA7;Ll;L;\r
+1FA8;Lt;L;\r
+1FA9;Lt;L;\r
+1FAA;Lt;L;\r
+1FAB;Lt;L;\r
+1FAC;Lt;L;\r
+1FAD;Lt;L;\r
+1FAE;Lt;L;\r
+1FAF;Lt;L;\r
+1FB0;Ll;L;\r
+1FB1;Ll;L;\r
+1FB2;Ll;L;\r
+1FB3;Ll;L;\r
+1FB4;Ll;L;\r
+1FB6;Ll;L;\r
+1FB7;Ll;L;\r
+1FB8;Lu;L;\r
+1FB9;Lu;L;\r
+1FBA;Lu;L;\r
+1FBB;Lu;L;\r
+1FBC;Lt;L;\r
+1FBD;Sk;ON;\r
+1FBE;Ll;L;\r
+1FBF;Sk;ON;\r
+1FC0;Sk;ON;\r
+1FC1;Sk;ON;\r
+1FC2;Ll;L;\r
+1FC3;Ll;L;\r
+1FC4;Ll;L;\r
+1FC6;Ll;L;\r
+1FC7;Ll;L;\r
+1FC8;Lu;L;\r
+1FC9;Lu;L;\r
+1FCA;Lu;L;\r
+1FCB;Lu;L;\r
+1FCC;Lt;L;\r
+1FCD;Sk;ON;\r
+1FCE;Sk;ON;\r
+1FCF;Sk;ON;\r
+1FD0;Ll;L;\r
+1FD1;Ll;L;\r
+1FD2;Ll;L;\r
+1FD3;Ll;L;\r
+1FD6;Ll;L;\r
+1FD7;Ll;L;\r
+1FD8;Lu;L;\r
+1FD9;Lu;L;\r
+1FDA;Lu;L;\r
+1FDB;Lu;L;\r
+1FDD;Sk;ON;\r
+1FDE;Sk;ON;\r
+1FDF;Sk;ON;\r
+1FE0;Ll;L;\r
+1FE1;Ll;L;\r
+1FE2;Ll;L;\r
+1FE3;Ll;L;\r
+1FE4;Ll;L;\r
+1FE5;Ll;L;\r
+1FE6;Ll;L;\r
+1FE7;Ll;L;\r
+1FE8;Lu;L;\r
+1FE9;Lu;L;\r
+1FEA;Lu;L;\r
+1FEB;Lu;L;\r
+1FEC;Lu;L;\r
+1FED;Sk;ON;\r
+1FEE;Sk;ON;\r
+1FEF;Sk;ON;\r
+1FF2;Ll;L;\r
+1FF3;Ll;L;\r
+1FF4;Ll;L;\r
+1FF6;Ll;L;\r
+1FF7;Ll;L;\r
+1FF8;Lu;L;\r
+1FF9;Lu;L;\r
+1FFA;Lu;L;\r
+1FFB;Lu;L;\r
+1FFC;Lt;L;\r
+1FFD;Sk;ON;\r
+1FFE;Sk;ON;\r
+2000;Zs;WS;\r
+2001;Zs;WS;\r
+2002;Zs;WS;\r
+2003;Zs;WS;\r
+2004;Zs;WS;\r
+2005;Zs;WS;\r
+2006;Zs;WS;\r
+2007;Zs;WS;\r
+2008;Zs;WS;\r
+2009;Zs;WS;\r
+200A;Zs;WS;\r
+200B;Zs;BN;\r
+200C;Cf;BN;\r
+200D;Cf;BN;\r
+200E;Cf;L;\r
+200F;Cf;R;\r
+2010;Pd;ON;\r
+2011;Pd;ON;\r
+2012;Pd;ON;\r
+2013;Pd;ON;\r
+2014;Pd;ON;\r
+2015;Pd;ON;\r
+2016;Po;ON;\r
+2017;Po;ON;\r
+2018;Pi;ON;\r
+2019;Pf;ON;\r
+201A;Ps;ON;\r
+201B;Pi;ON;\r
+201C;Pi;ON;\r
+201D;Pf;ON;\r
+201E;Ps;ON;\r
+201F;Pi;ON;\r
+2020;Po;ON;\r
+2021;Po;ON;\r
+2022;Po;ON;\r
+2023;Po;ON;\r
+2024;Po;ON;\r
+2025;Po;ON;\r
+2026;Po;ON;\r
+2027;Po;ON;\r
+2028;Zl;WS;\r
+2029;Zp;B;\r
+202A;Cf;LRE;\r
+202B;Cf;RLE;\r
+202C;Cf;PDF;\r
+202D;Cf;LRO;\r
+202E;Cf;RLO;\r
+202F;Zs;WS;\r
+2030;Po;ET;\r
+2031;Po;ET;\r
+2032;Po;ET;\r
+2033;Po;ET;\r
+2034;Po;ET;\r
+2035;Po;ON;\r
+2036;Po;ON;\r
+2037;Po;ON;\r
+2038;Po;ON;\r
+2039;Pi;ON;\r
+203A;Pf;ON;\r
+203B;Po;ON;\r
+203C;Po;ON;\r
+203D;Po;ON;\r
+203E;Po;ON;\r
+203F;Pc;ON;\r
+2040;Pc;ON;\r
+2041;Po;ON;\r
+2042;Po;ON;\r
+2043;Po;ON;\r
+2044;Sm;ON;\r
+2045;Ps;ON;\r
+2046;Pe;ON;\r
+2048;Po;ON;\r
+2049;Po;ON;\r
+204A;Po;ON;\r
+204B;Po;ON;\r
+204C;Po;ON;\r
+204D;Po;ON;\r
+206A;Cf;BN;\r
+206B;Cf;BN;\r
+206C;Cf;BN;\r
+206D;Cf;BN;\r
+206E;Cf;BN;\r
+206F;Cf;BN;\r
+2070;No;EN;\r
+2074;No;EN;\r
+2075;No;EN;\r
+2076;No;EN;\r
+2077;No;EN;\r
+2078;No;EN;\r
+2079;No;EN;\r
+207A;Sm;ET;\r
+207B;Sm;ET;\r
+207C;Sm;ON;\r
+207D;Ps;ON;\r
+207E;Pe;ON;\r
+207F;Ll;L;\r
+2080;No;EN;\r
+2081;No;EN;\r
+2082;No;EN;\r
+2083;No;EN;\r
+2084;No;EN;\r
+2085;No;EN;\r
+2086;No;EN;\r
+2087;No;EN;\r
+2088;No;EN;\r
+2089;No;EN;\r
+208A;Sm;ET;\r
+208B;Sm;ET;\r
+208C;Sm;ON;\r
+208D;Ps;ON;\r
+208E;Pe;ON;\r
+20A0;Sc;ET;\r
+20A1;Sc;ET;\r
+20A2;Sc;ET;\r
+20A3;Sc;ET;\r
+20A4;Sc;ET;\r
+20A5;Sc;ET;\r
+20A6;Sc;ET;\r
+20A7;Sc;ET;\r
+20A8;Sc;ET;\r
+20A9;Sc;ET;\r
+20AA;Sc;ET;\r
+20AB;Sc;ET;\r
+20AC;Sc;ET;\r
+20AD;Sc;ET;\r
+20AE;Sc;ET;\r
+20AF;Sc;ET;\r
+20D0;Mn;NSM;\r
+20D1;Mn;NSM;\r
+20D2;Mn;NSM;\r
+20D3;Mn;NSM;\r
+20D4;Mn;NSM;\r
+20D5;Mn;NSM;\r
+20D6;Mn;NSM;\r
+20D7;Mn;NSM;\r
+20D8;Mn;NSM;\r
+20D9;Mn;NSM;\r
+20DA;Mn;NSM;\r
+20DB;Mn;NSM;\r
+20DC;Mn;NSM;\r
+20DD;Me;NSM;\r
+20DE;Me;NSM;\r
+20DF;Me;NSM;\r
+20E0;Me;NSM;\r
+20E1;Mn;NSM;\r
+20E2;Me;NSM;\r
+20E3;Me;NSM;\r
+2100;So;ON;\r
+2101;So;ON;\r
+2102;Lu;L;\r
+2103;So;ON;\r
+2104;So;ON;\r
+2105;So;ON;\r
+2106;So;ON;\r
+2107;Lu;L;\r
+2108;So;ON;\r
+2109;So;ON;\r
+210A;Ll;L;\r
+210B;Lu;L;\r
+210C;Lu;L;\r
+210D;Lu;L;\r
+210E;Ll;L;\r
+210F;Ll;L;\r
+2110;Lu;L;\r
+2111;Lu;L;\r
+2112;Lu;L;\r
+2113;Ll;L;\r
+2114;So;ON;\r
+2115;Lu;L;\r
+2116;So;ON;\r
+2117;So;ON;\r
+2118;So;ON;\r
+2119;Lu;L;\r
+211A;Lu;L;\r
+211B;Lu;L;\r
+211C;Lu;L;\r
+211D;Lu;L;\r
+211E;So;ON;\r
+211F;So;ON;\r
+2120;So;ON;\r
+2121;So;ON;\r
+2122;So;ON;\r
+2123;So;ON;\r
+2124;Lu;L;\r
+2125;So;ON;\r
+2126;Lu;L;\r
+2127;So;ON;\r
+2128;Lu;L;\r
+2129;So;ON;\r
+212A;Lu;L;\r
+212B;Lu;L;\r
+212C;Lu;L;\r
+212D;Lu;L;\r
+212E;So;ET;\r
+212F;Ll;L;\r
+2130;Lu;L;\r
+2131;Lu;L;\r
+2132;So;ON;\r
+2133;Lu;L;\r
+2134;Ll;L;\r
+2135;Lo;L;\r
+2136;Lo;L;\r
+2137;Lo;L;\r
+2138;Lo;L;\r
+2139;Ll;L;\r
+213A;So;ON;\r
+2153;No;ON;\r
+2154;No;ON;\r
+2155;No;ON;\r
+2156;No;ON;\r
+2157;No;ON;\r
+2158;No;ON;\r
+2159;No;ON;\r
+215A;No;ON;\r
+215B;No;ON;\r
+215C;No;ON;\r
+215D;No;ON;\r
+215E;No;ON;\r
+215F;No;ON;\r
+2160;Nl;L;\r
+2161;Nl;L;\r
+2162;Nl;L;\r
+2163;Nl;L;\r
+2164;Nl;L;\r
+2165;Nl;L;\r
+2166;Nl;L;\r
+2167;Nl;L;\r
+2168;Nl;L;\r
+2169;Nl;L;\r
+216A;Nl;L;\r
+216B;Nl;L;\r
+216C;Nl;L;\r
+216D;Nl;L;\r
+216E;Nl;L;\r
+216F;Nl;L;\r
+2170;Nl;L;\r
+2171;Nl;L;\r
+2172;Nl;L;\r
+2173;Nl;L;\r
+2174;Nl;L;\r
+2175;Nl;L;\r
+2176;Nl;L;\r
+2177;Nl;L;\r
+2178;Nl;L;\r
+2179;Nl;L;\r
+217A;Nl;L;\r
+217B;Nl;L;\r
+217C;Nl;L;\r
+217D;Nl;L;\r
+217E;Nl;L;\r
+217F;Nl;L;\r
+2180;Nl;L;\r
+2181;Nl;L;\r
+2182;Nl;L;\r
+2183;Nl;L;\r
+2190;Sm;ON;\r
+2191;Sm;ON;\r
+2192;Sm;ON;\r
+2193;Sm;ON;\r
+2194;Sm;ON;\r
+2195;So;ON;\r
+2196;So;ON;\r
+2197;So;ON;\r
+2198;So;ON;\r
+2199;So;ON;\r
+219A;Sm;ON;\r
+219B;Sm;ON;\r
+219C;So;ON;\r
+219D;So;ON;\r
+219E;So;ON;\r
+219F;So;ON;\r
+21A0;Sm;ON;\r
+21A1;So;ON;\r
+21A2;So;ON;\r
+21A3;Sm;ON;\r
+21A4;So;ON;\r
+21A5;So;ON;\r
+21A6;Sm;ON;\r
+21A7;So;ON;\r
+21A8;So;ON;\r
+21A9;So;ON;\r
+21AA;So;ON;\r
+21AB;So;ON;\r
+21AC;So;ON;\r
+21AD;So;ON;\r
+21AE;Sm;ON;\r
+21AF;So;ON;\r
+21B0;So;ON;\r
+21B1;So;ON;\r
+21B2;So;ON;\r
+21B3;So;ON;\r
+21B4;So;ON;\r
+21B5;So;ON;\r
+21B6;So;ON;\r
+21B7;So;ON;\r
+21B8;So;ON;\r
+21B9;So;ON;\r
+21BA;So;ON;\r
+21BB;So;ON;\r
+21BC;So;ON;\r
+21BD;So;ON;\r
+21BE;So;ON;\r
+21BF;So;ON;\r
+21C0;So;ON;\r
+21C1;So;ON;\r
+21C2;So;ON;\r
+21C3;So;ON;\r
+21C4;So;ON;\r
+21C5;So;ON;\r
+21C6;So;ON;\r
+21C7;So;ON;\r
+21C8;So;ON;\r
+21C9;So;ON;\r
+21CA;So;ON;\r
+21CB;So;ON;\r
+21CC;So;ON;\r
+21CD;So;ON;\r
+21CE;Sm;ON;\r
+21CF;Sm;ON;\r
+21D0;So;ON;\r
+21D1;So;ON;\r
+21D2;Sm;ON;\r
+21D3;So;ON;\r
+21D4;Sm;ON;\r
+21D5;So;ON;\r
+21D6;So;ON;\r
+21D7;So;ON;\r
+21D8;So;ON;\r
+21D9;So;ON;\r
+21DA;So;ON;\r
+21DB;So;ON;\r
+21DC;So;ON;\r
+21DD;So;ON;\r
+21DE;So;ON;\r
+21DF;So;ON;\r
+21E0;So;ON;\r
+21E1;So;ON;\r
+21E2;So;ON;\r
+21E3;So;ON;\r
+21E4;So;ON;\r
+21E5;So;ON;\r
+21E6;So;ON;\r
+21E7;So;ON;\r
+21E8;So;ON;\r
+21E9;So;ON;\r
+21EA;So;ON;\r
+21EB;So;ON;\r
+21EC;So;ON;\r
+21ED;So;ON;\r
+21EE;So;ON;\r
+21EF;So;ON;\r
+21F0;So;ON;\r
+21F1;So;ON;\r
+21F2;So;ON;\r
+21F3;So;ON;\r
+2200;Sm;ON;\r
+2201;Sm;ON;\r
+2202;Sm;ON;\r
+2203;Sm;ON;\r
+2204;Sm;ON;\r
+2205;Sm;ON;\r
+2206;Sm;ON;\r
+2207;Sm;ON;\r
+2208;Sm;ON;\r
+2209;Sm;ON;\r
+220A;Sm;ON;\r
+220B;Sm;ON;\r
+220C;Sm;ON;\r
+220D;Sm;ON;\r
+220E;Sm;ON;\r
+220F;Sm;ON;\r
+2210;Sm;ON;\r
+2211;Sm;ON;\r
+2212;Sm;ET;\r
+2213;Sm;ET;\r
+2214;Sm;ON;\r
+2215;Sm;ON;\r
+2216;Sm;ON;\r
+2217;Sm;ON;\r
+2218;Sm;ON;\r
+2219;Sm;ON;\r
+221A;Sm;ON;\r
+221B;Sm;ON;\r
+221C;Sm;ON;\r
+221D;Sm;ON;\r
+221E;Sm;ON;\r
+221F;Sm;ON;\r
+2220;Sm;ON;\r
+2221;Sm;ON;\r
+2222;Sm;ON;\r
+2223;Sm;ON;\r
+2224;Sm;ON;\r
+2225;Sm;ON;\r
+2226;Sm;ON;\r
+2227;Sm;ON;\r
+2228;Sm;ON;\r
+2229;Sm;ON;\r
+222A;Sm;ON;\r
+222B;Sm;ON;\r
+222C;Sm;ON;\r
+222D;Sm;ON;\r
+222E;Sm;ON;\r
+222F;Sm;ON;\r
+2230;Sm;ON;\r
+2231;Sm;ON;\r
+2232;Sm;ON;\r
+2233;Sm;ON;\r
+2234;Sm;ON;\r
+2235;Sm;ON;\r
+2236;Sm;ON;\r
+2237;Sm;ON;\r
+2238;Sm;ON;\r
+2239;Sm;ON;\r
+223A;Sm;ON;\r
+223B;Sm;ON;\r
+223C;Sm;ON;\r
+223D;Sm;ON;\r
+223E;Sm;ON;\r
+223F;Sm;ON;\r
+2240;Sm;ON;\r
+2241;Sm;ON;\r
+2242;Sm;ON;\r
+2243;Sm;ON;\r
+2244;Sm;ON;\r
+2245;Sm;ON;\r
+2246;Sm;ON;\r
+2247;Sm;ON;\r
+2248;Sm;ON;\r
+2249;Sm;ON;\r
+224A;Sm;ON;\r
+224B;Sm;ON;\r
+224C;Sm;ON;\r
+224D;Sm;ON;\r
+224E;Sm;ON;\r
+224F;Sm;ON;\r
+2250;Sm;ON;\r
+2251;Sm;ON;\r
+2252;Sm;ON;\r
+2253;Sm;ON;\r
+2254;Sm;ON;\r
+2255;Sm;ON;\r
+2256;Sm;ON;\r
+2257;Sm;ON;\r
+2258;Sm;ON;\r
+2259;Sm;ON;\r
+225A;Sm;ON;\r
+225B;Sm;ON;\r
+225C;Sm;ON;\r
+225D;Sm;ON;\r
+225E;Sm;ON;\r
+225F;Sm;ON;\r
+2260;Sm;ON;\r
+2261;Sm;ON;\r
+2262;Sm;ON;\r
+2263;Sm;ON;\r
+2264;Sm;ON;\r
+2265;Sm;ON;\r
+2266;Sm;ON;\r
+2267;Sm;ON;\r
+2268;Sm;ON;\r
+2269;Sm;ON;\r
+226A;Sm;ON;\r
+226B;Sm;ON;\r
+226C;Sm;ON;\r
+226D;Sm;ON;\r
+226E;Sm;ON;\r
+226F;Sm;ON;\r
+2270;Sm;ON;\r
+2271;Sm;ON;\r
+2272;Sm;ON;\r
+2273;Sm;ON;\r
+2274;Sm;ON;\r
+2275;Sm;ON;\r
+2276;Sm;ON;\r
+2277;Sm;ON;\r
+2278;Sm;ON;\r
+2279;Sm;ON;\r
+227A;Sm;ON;\r
+227B;Sm;ON;\r
+227C;Sm;ON;\r
+227D;Sm;ON;\r
+227E;Sm;ON;\r
+227F;Sm;ON;\r
+2280;Sm;ON;\r
+2281;Sm;ON;\r
+2282;Sm;ON;\r
+2283;Sm;ON;\r
+2284;Sm;ON;\r
+2285;Sm;ON;\r
+2286;Sm;ON;\r
+2287;Sm;ON;\r
+2288;Sm;ON;\r
+2289;Sm;ON;\r
+228A;Sm;ON;\r
+228B;Sm;ON;\r
+228C;Sm;ON;\r
+228D;Sm;ON;\r
+228E;Sm;ON;\r
+228F;Sm;ON;\r
+2290;Sm;ON;\r
+2291;Sm;ON;\r
+2292;Sm;ON;\r
+2293;Sm;ON;\r
+2294;Sm;ON;\r
+2295;Sm;ON;\r
+2296;Sm;ON;\r
+2297;Sm;ON;\r
+2298;Sm;ON;\r
+2299;Sm;ON;\r
+229A;Sm;ON;\r
+229B;Sm;ON;\r
+229C;Sm;ON;\r
+229D;Sm;ON;\r
+229E;Sm;ON;\r
+229F;Sm;ON;\r
+22A0;Sm;ON;\r
+22A1;Sm;ON;\r
+22A2;Sm;ON;\r
+22A3;Sm;ON;\r
+22A4;Sm;ON;\r
+22A5;Sm;ON;\r
+22A6;Sm;ON;\r
+22A7;Sm;ON;\r
+22A8;Sm;ON;\r
+22A9;Sm;ON;\r
+22AA;Sm;ON;\r
+22AB;Sm;ON;\r
+22AC;Sm;ON;\r
+22AD;Sm;ON;\r
+22AE;Sm;ON;\r
+22AF;Sm;ON;\r
+22B0;Sm;ON;\r
+22B1;Sm;ON;\r
+22B2;Sm;ON;\r
+22B3;Sm;ON;\r
+22B4;Sm;ON;\r
+22B5;Sm;ON;\r
+22B6;Sm;ON;\r
+22B7;Sm;ON;\r
+22B8;Sm;ON;\r
+22B9;Sm;ON;\r
+22BA;Sm;ON;\r
+22BB;Sm;ON;\r
+22BC;Sm;ON;\r
+22BD;Sm;ON;\r
+22BE;Sm;ON;\r
+22BF;Sm;ON;\r
+22C0;Sm;ON;\r
+22C1;Sm;ON;\r
+22C2;Sm;ON;\r
+22C3;Sm;ON;\r
+22C4;Sm;ON;\r
+22C5;Sm;ON;\r
+22C6;Sm;ON;\r
+22C7;Sm;ON;\r
+22C8;Sm;ON;\r
+22C9;Sm;ON;\r
+22CA;Sm;ON;\r
+22CB;Sm;ON;\r
+22CC;Sm;ON;\r
+22CD;Sm;ON;\r
+22CE;Sm;ON;\r
+22CF;Sm;ON;\r
+22D0;Sm;ON;\r
+22D1;Sm;ON;\r
+22D2;Sm;ON;\r
+22D3;Sm;ON;\r
+22D4;Sm;ON;\r
+22D5;Sm;ON;\r
+22D6;Sm;ON;\r
+22D7;Sm;ON;\r
+22D8;Sm;ON;\r
+22D9;Sm;ON;\r
+22DA;Sm;ON;\r
+22DB;Sm;ON;\r
+22DC;Sm;ON;\r
+22DD;Sm;ON;\r
+22DE;Sm;ON;\r
+22DF;Sm;ON;\r
+22E0;Sm;ON;\r
+22E1;Sm;ON;\r
+22E2;Sm;ON;\r
+22E3;Sm;ON;\r
+22E4;Sm;ON;\r
+22E5;Sm;ON;\r
+22E6;Sm;ON;\r
+22E7;Sm;ON;\r
+22E8;Sm;ON;\r
+22E9;Sm;ON;\r
+22EA;Sm;ON;\r
+22EB;Sm;ON;\r
+22EC;Sm;ON;\r
+22ED;Sm;ON;\r
+22EE;Sm;ON;\r
+22EF;Sm;ON;\r
+22F0;Sm;ON;\r
+22F1;Sm;ON;\r
+2300;So;ON;\r
+2301;So;ON;\r
+2302;So;ON;\r
+2303;So;ON;\r
+2304;So;ON;\r
+2305;So;ON;\r
+2306;So;ON;\r
+2307;So;ON;\r
+2308;Sm;ON;\r
+2309;Sm;ON;\r
+230A;Sm;ON;\r
+230B;Sm;ON;\r
+230C;So;ON;\r
+230D;So;ON;\r
+230E;So;ON;\r
+230F;So;ON;\r
+2310;So;ON;\r
+2311;So;ON;\r
+2312;So;ON;\r
+2313;So;ON;\r
+2314;So;ON;\r
+2315;So;ON;\r
+2316;So;ON;\r
+2317;So;ON;\r
+2318;So;ON;\r
+2319;So;ON;\r
+231A;So;ON;\r
+231B;So;ON;\r
+231C;So;ON;\r
+231D;So;ON;\r
+231E;So;ON;\r
+231F;So;ON;\r
+2320;Sm;ON;\r
+2321;Sm;ON;\r
+2322;So;ON;\r
+2323;So;ON;\r
+2324;So;ON;\r
+2325;So;ON;\r
+2326;So;ON;\r
+2327;So;ON;\r
+2328;So;ON;\r
+2329;Ps;ON;\r
+232A;Pe;ON;\r
+232B;So;ON;\r
+232C;So;ON;\r
+232D;So;ON;\r
+232E;So;ON;\r
+232F;So;ON;\r
+2330;So;ON;\r
+2331;So;ON;\r
+2332;So;ON;\r
+2333;So;ON;\r
+2334;So;ON;\r
+2335;So;ON;\r
+2336;So;L;\r
+2337;So;L;\r
+2338;So;L;\r
+2339;So;L;\r
+233A;So;L;\r
+233B;So;L;\r
+233C;So;L;\r
+233D;So;L;\r
+233E;So;L;\r
+233F;So;L;\r
+2340;So;L;\r
+2341;So;L;\r
+2342;So;L;\r
+2343;So;L;\r
+2344;So;L;\r
+2345;So;L;\r
+2346;So;L;\r
+2347;So;L;\r
+2348;So;L;\r
+2349;So;L;\r
+234A;So;L;\r
+234B;So;L;\r
+234C;So;L;\r
+234D;So;L;\r
+234E;So;L;\r
+234F;So;L;\r
+2350;So;L;\r
+2351;So;L;\r
+2352;So;L;\r
+2353;So;L;\r
+2354;So;L;\r
+2355;So;L;\r
+2356;So;L;\r
+2357;So;L;\r
+2358;So;L;\r
+2359;So;L;\r
+235A;So;L;\r
+235B;So;L;\r
+235C;So;L;\r
+235D;So;L;\r
+235E;So;L;\r
+235F;So;L;\r
+2360;So;L;\r
+2361;So;L;\r
+2362;So;L;\r
+2363;So;L;\r
+2364;So;L;\r
+2365;So;L;\r
+2366;So;L;\r
+2367;So;L;\r
+2368;So;L;\r
+2369;So;L;\r
+236A;So;L;\r
+236B;So;L;\r
+236C;So;L;\r
+236D;So;L;\r
+236E;So;L;\r
+236F;So;L;\r
+2370;So;L;\r
+2371;So;L;\r
+2372;So;L;\r
+2373;So;L;\r
+2374;So;L;\r
+2375;So;L;\r
+2376;So;L;\r
+2377;So;L;\r
+2378;So;L;\r
+2379;So;L;\r
+237A;So;L;\r
+237B;So;ON;\r
+237D;So;ON;\r
+237E;So;ON;\r
+237F;So;ON;\r
+2380;So;ON;\r
+2381;So;ON;\r
+2382;So;ON;\r
+2383;So;ON;\r
+2384;So;ON;\r
+2385;So;ON;\r
+2386;So;ON;\r
+2387;So;ON;\r
+2388;So;ON;\r
+2389;So;ON;\r
+238A;So;ON;\r
+238B;So;ON;\r
+238C;So;ON;\r
+238D;So;ON;\r
+238E;So;ON;\r
+238F;So;ON;\r
+2390;So;ON;\r
+2391;So;ON;\r
+2392;So;ON;\r
+2393;So;ON;\r
+2394;So;ON;\r
+2395;So;L;\r
+2396;So;ON;\r
+2397;So;ON;\r
+2398;So;ON;\r
+2399;So;ON;\r
+239A;So;ON;\r
+2400;So;ON;\r
+2401;So;ON;\r
+2402;So;ON;\r
+2403;So;ON;\r
+2404;So;ON;\r
+2405;So;ON;\r
+2406;So;ON;\r
+2407;So;ON;\r
+2408;So;ON;\r
+2409;So;ON;\r
+240A;So;ON;\r
+240B;So;ON;\r
+240C;So;ON;\r
+240D;So;ON;\r
+240E;So;ON;\r
+240F;So;ON;\r
+2410;So;ON;\r
+2411;So;ON;\r
+2412;So;ON;\r
+2413;So;ON;\r
+2414;So;ON;\r
+2415;So;ON;\r
+2416;So;ON;\r
+2417;So;ON;\r
+2418;So;ON;\r
+2419;So;ON;\r
+241A;So;ON;\r
+241B;So;ON;\r
+241C;So;ON;\r
+241D;So;ON;\r
+241E;So;ON;\r
+241F;So;ON;\r
+2420;So;ON;\r
+2421;So;ON;\r
+2422;So;ON;\r
+2423;So;ON;\r
+2424;So;ON;\r
+2425;So;ON;\r
+2426;So;ON;\r
+2440;So;ON;\r
+2441;So;ON;\r
+2442;So;ON;\r
+2443;So;ON;\r
+2444;So;ON;\r
+2445;So;ON;\r
+2446;So;ON;\r
+2447;So;ON;\r
+2448;So;ON;\r
+2449;So;ON;\r
+244A;So;ON;\r
+2460;No;EN;\r
+2461;No;EN;\r
+2462;No;EN;\r
+2463;No;EN;\r
+2464;No;EN;\r
+2465;No;EN;\r
+2466;No;EN;\r
+2467;No;EN;\r
+2468;No;EN;\r
+2469;No;EN;\r
+246A;No;EN;\r
+246B;No;EN;\r
+246C;No;EN;\r
+246D;No;EN;\r
+246E;No;EN;\r
+246F;No;EN;\r
+2470;No;EN;\r
+2471;No;EN;\r
+2472;No;EN;\r
+2473;No;EN;\r
+2474;No;EN;\r
+2475;No;EN;\r
+2476;No;EN;\r
+2477;No;EN;\r
+2478;No;EN;\r
+2479;No;EN;\r
+247A;No;EN;\r
+247B;No;EN;\r
+247C;No;EN;\r
+247D;No;EN;\r
+247E;No;EN;\r
+247F;No;EN;\r
+2480;No;EN;\r
+2481;No;EN;\r
+2482;No;EN;\r
+2483;No;EN;\r
+2484;No;EN;\r
+2485;No;EN;\r
+2486;No;EN;\r
+2487;No;EN;\r
+2488;No;EN;\r
+2489;No;EN;\r
+248A;No;EN;\r
+248B;No;EN;\r
+248C;No;EN;\r
+248D;No;EN;\r
+248E;No;EN;\r
+248F;No;EN;\r
+2490;No;EN;\r
+2491;No;EN;\r
+2492;No;EN;\r
+2493;No;EN;\r
+2494;No;EN;\r
+2495;No;EN;\r
+2496;No;EN;\r
+2497;No;EN;\r
+2498;No;EN;\r
+2499;No;EN;\r
+249A;No;EN;\r
+249B;No;EN;\r
+249C;So;L;\r
+249D;So;L;\r
+249E;So;L;\r
+249F;So;L;\r
+24A0;So;L;\r
+24A1;So;L;\r
+24A2;So;L;\r
+24A3;So;L;\r
+24A4;So;L;\r
+24A5;So;L;\r
+24A6;So;L;\r
+24A7;So;L;\r
+24A8;So;L;\r
+24A9;So;L;\r
+24AA;So;L;\r
+24AB;So;L;\r
+24AC;So;L;\r
+24AD;So;L;\r
+24AE;So;L;\r
+24AF;So;L;\r
+24B0;So;L;\r
+24B1;So;L;\r
+24B2;So;L;\r
+24B3;So;L;\r
+24B4;So;L;\r
+24B5;So;L;\r
+24B6;So;L;\r
+24B7;So;L;\r
+24B8;So;L;\r
+24B9;So;L;\r
+24BA;So;L;\r
+24BB;So;L;\r
+24BC;So;L;\r
+24BD;So;L;\r
+24BE;So;L;\r
+24BF;So;L;\r
+24C0;So;L;\r
+24C1;So;L;\r
+24C2;So;L;\r
+24C3;So;L;\r
+24C4;So;L;\r
+24C5;So;L;\r
+24C6;So;L;\r
+24C7;So;L;\r
+24C8;So;L;\r
+24C9;So;L;\r
+24CA;So;L;\r
+24CB;So;L;\r
+24CC;So;L;\r
+24CD;So;L;\r
+24CE;So;L;\r
+24CF;So;L;\r
+24D0;So;L;\r
+24D1;So;L;\r
+24D2;So;L;\r
+24D3;So;L;\r
+24D4;So;L;\r
+24D5;So;L;\r
+24D6;So;L;\r
+24D7;So;L;\r
+24D8;So;L;\r
+24D9;So;L;\r
+24DA;So;L;\r
+24DB;So;L;\r
+24DC;So;L;\r
+24DD;So;L;\r
+24DE;So;L;\r
+24DF;So;L;\r
+24E0;So;L;\r
+24E1;So;L;\r
+24E2;So;L;\r
+24E3;So;L;\r
+24E4;So;L;\r
+24E5;So;L;\r
+24E6;So;L;\r
+24E7;So;L;\r
+24E8;So;L;\r
+24E9;So;L;\r
+24EA;No;EN;\r
+2500;So;ON;\r
+2501;So;ON;\r
+2502;So;ON;\r
+2503;So;ON;\r
+2504;So;ON;\r
+2505;So;ON;\r
+2506;So;ON;\r
+2507;So;ON;\r
+2508;So;ON;\r
+2509;So;ON;\r
+250A;So;ON;\r
+250B;So;ON;\r
+250C;So;ON;\r
+250D;So;ON;\r
+250E;So;ON;\r
+250F;So;ON;\r
+2510;So;ON;\r
+2511;So;ON;\r
+2512;So;ON;\r
+2513;So;ON;\r
+2514;So;ON;\r
+2515;So;ON;\r
+2516;So;ON;\r
+2517;So;ON;\r
+2518;So;ON;\r
+2519;So;ON;\r
+251A;So;ON;\r
+251B;So;ON;\r
+251C;So;ON;\r
+251D;So;ON;\r
+251E;So;ON;\r
+251F;So;ON;\r
+2520;So;ON;\r
+2521;So;ON;\r
+2522;So;ON;\r
+2523;So;ON;\r
+2524;So;ON;\r
+2525;So;ON;\r
+2526;So;ON;\r
+2527;So;ON;\r
+2528;So;ON;\r
+2529;So;ON;\r
+252A;So;ON;\r
+252B;So;ON;\r
+252C;So;ON;\r
+252D;So;ON;\r
+252E;So;ON;\r
+252F;So;ON;\r
+2530;So;ON;\r
+2531;So;ON;\r
+2532;So;ON;\r
+2533;So;ON;\r
+2534;So;ON;\r
+2535;So;ON;\r
+2536;So;ON;\r
+2537;So;ON;\r
+2538;So;ON;\r
+2539;So;ON;\r
+253A;So;ON;\r
+253B;So;ON;\r
+253C;So;ON;\r
+253D;So;ON;\r
+253E;So;ON;\r
+253F;So;ON;\r
+2540;So;ON;\r
+2541;So;ON;\r
+2542;So;ON;\r
+2543;So;ON;\r
+2544;So;ON;\r
+2545;So;ON;\r
+2546;So;ON;\r
+2547;So;ON;\r
+2548;So;ON;\r
+2549;So;ON;\r
+254A;So;ON;\r
+254B;So;ON;\r
+254C;So;ON;\r
+254D;So;ON;\r
+254E;So;ON;\r
+254F;So;ON;\r
+2550;So;ON;\r
+2551;So;ON;\r
+2552;So;ON;\r
+2553;So;ON;\r
+2554;So;ON;\r
+2555;So;ON;\r
+2556;So;ON;\r
+2557;So;ON;\r
+2558;So;ON;\r
+2559;So;ON;\r
+255A;So;ON;\r
+255B;So;ON;\r
+255C;So;ON;\r
+255D;So;ON;\r
+255E;So;ON;\r
+255F;So;ON;\r
+2560;So;ON;\r
+2561;So;ON;\r
+2562;So;ON;\r
+2563;So;ON;\r
+2564;So;ON;\r
+2565;So;ON;\r
+2566;So;ON;\r
+2567;So;ON;\r
+2568;So;ON;\r
+2569;So;ON;\r
+256A;So;ON;\r
+256B;So;ON;\r
+256C;So;ON;\r
+256D;So;ON;\r
+256E;So;ON;\r
+256F;So;ON;\r
+2570;So;ON;\r
+2571;So;ON;\r
+2572;So;ON;\r
+2573;So;ON;\r
+2574;So;ON;\r
+2575;So;ON;\r
+2576;So;ON;\r
+2577;So;ON;\r
+2578;So;ON;\r
+2579;So;ON;\r
+257A;So;ON;\r
+257B;So;ON;\r
+257C;So;ON;\r
+257D;So;ON;\r
+257E;So;ON;\r
+257F;So;ON;\r
+2580;So;ON;\r
+2581;So;ON;\r
+2582;So;ON;\r
+2583;So;ON;\r
+2584;So;ON;\r
+2585;So;ON;\r
+2586;So;ON;\r
+2587;So;ON;\r
+2588;So;ON;\r
+2589;So;ON;\r
+258A;So;ON;\r
+258B;So;ON;\r
+258C;So;ON;\r
+258D;So;ON;\r
+258E;So;ON;\r
+258F;So;ON;\r
+2590;So;ON;\r
+2591;So;ON;\r
+2592;So;ON;\r
+2593;So;ON;\r
+2594;So;ON;\r
+2595;So;ON;\r
+25A0;So;ON;\r
+25A1;So;ON;\r
+25A2;So;ON;\r
+25A3;So;ON;\r
+25A4;So;ON;\r
+25A5;So;ON;\r
+25A6;So;ON;\r
+25A7;So;ON;\r
+25A8;So;ON;\r
+25A9;So;ON;\r
+25AA;So;ON;\r
+25AB;So;ON;\r
+25AC;So;ON;\r
+25AD;So;ON;\r
+25AE;So;ON;\r
+25AF;So;ON;\r
+25B0;So;ON;\r
+25B1;So;ON;\r
+25B2;So;ON;\r
+25B3;So;ON;\r
+25B4;So;ON;\r
+25B5;So;ON;\r
+25B6;So;ON;\r
+25B7;Sm;ON;\r
+25B8;So;ON;\r
+25B9;So;ON;\r
+25BA;So;ON;\r
+25BB;So;ON;\r
+25BC;So;ON;\r
+25BD;So;ON;\r
+25BE;So;ON;\r
+25BF;So;ON;\r
+25C0;So;ON;\r
+25C1;Sm;ON;\r
+25C2;So;ON;\r
+25C3;So;ON;\r
+25C4;So;ON;\r
+25C5;So;ON;\r
+25C6;So;ON;\r
+25C7;So;ON;\r
+25C8;So;ON;\r
+25C9;So;ON;\r
+25CA;So;ON;\r
+25CB;So;ON;\r
+25CC;So;ON;\r
+25CD;So;ON;\r
+25CE;So;ON;\r
+25CF;So;ON;\r
+25D0;So;ON;\r
+25D1;So;ON;\r
+25D2;So;ON;\r
+25D3;So;ON;\r
+25D4;So;ON;\r
+25D5;So;ON;\r
+25D6;So;ON;\r
+25D7;So;ON;\r
+25D8;So;ON;\r
+25D9;So;ON;\r
+25DA;So;ON;\r
+25DB;So;ON;\r
+25DC;So;ON;\r
+25DD;So;ON;\r
+25DE;So;ON;\r
+25DF;So;ON;\r
+25E0;So;ON;\r
+25E1;So;ON;\r
+25E2;So;ON;\r
+25E3;So;ON;\r
+25E4;So;ON;\r
+25E5;So;ON;\r
+25E6;So;ON;\r
+25E7;So;ON;\r
+25E8;So;ON;\r
+25E9;So;ON;\r
+25EA;So;ON;\r
+25EB;So;ON;\r
+25EC;So;ON;\r
+25ED;So;ON;\r
+25EE;So;ON;\r
+25EF;So;ON;\r
+25F0;So;ON;\r
+25F1;So;ON;\r
+25F2;So;ON;\r
+25F3;So;ON;\r
+25F4;So;ON;\r
+25F5;So;ON;\r
+25F6;So;ON;\r
+25F7;So;ON;\r
+2600;So;ON;\r
+2601;So;ON;\r
+2602;So;ON;\r
+2603;So;ON;\r
+2604;So;ON;\r
+2605;So;ON;\r
+2606;So;ON;\r
+2607;So;ON;\r
+2608;So;ON;\r
+2609;So;ON;\r
+260A;So;ON;\r
+260B;So;ON;\r
+260C;So;ON;\r
+260D;So;ON;\r
+260E;So;ON;\r
+260F;So;ON;\r
+2610;So;ON;\r
+2611;So;ON;\r
+2612;So;ON;\r
+2613;So;ON;\r
+2619;So;ON;\r
+261A;So;ON;\r
+261B;So;ON;\r
+261C;So;ON;\r
+261D;So;ON;\r
+261E;So;ON;\r
+261F;So;ON;\r
+2620;So;ON;\r
+2621;So;ON;\r
+2622;So;ON;\r
+2623;So;ON;\r
+2624;So;ON;\r
+2625;So;ON;\r
+2626;So;ON;\r
+2627;So;ON;\r
+2628;So;ON;\r
+2629;So;ON;\r
+262A;So;ON;\r
+262B;So;ON;\r
+262C;So;ON;\r
+262D;So;ON;\r
+262E;So;ON;\r
+262F;So;ON;\r
+2630;So;ON;\r
+2631;So;ON;\r
+2632;So;ON;\r
+2633;So;ON;\r
+2634;So;ON;\r
+2635;So;ON;\r
+2636;So;ON;\r
+2637;So;ON;\r
+2638;So;ON;\r
+2639;So;ON;\r
+263A;So;ON;\r
+263B;So;ON;\r
+263C;So;ON;\r
+263D;So;ON;\r
+263E;So;ON;\r
+263F;So;ON;\r
+2640;So;ON;\r
+2641;So;ON;\r
+2642;So;ON;\r
+2643;So;ON;\r
+2644;So;ON;\r
+2645;So;ON;\r
+2646;So;ON;\r
+2647;So;ON;\r
+2648;So;ON;\r
+2649;So;ON;\r
+264A;So;ON;\r
+264B;So;ON;\r
+264C;So;ON;\r
+264D;So;ON;\r
+264E;So;ON;\r
+264F;So;ON;\r
+2650;So;ON;\r
+2651;So;ON;\r
+2652;So;ON;\r
+2653;So;ON;\r
+2654;So;ON;\r
+2655;So;ON;\r
+2656;So;ON;\r
+2657;So;ON;\r
+2658;So;ON;\r
+2659;So;ON;\r
+265A;So;ON;\r
+265B;So;ON;\r
+265C;So;ON;\r
+265D;So;ON;\r
+265E;So;ON;\r
+265F;So;ON;\r
+2660;So;ON;\r
+2661;So;ON;\r
+2662;So;ON;\r
+2663;So;ON;\r
+2664;So;ON;\r
+2665;So;ON;\r
+2666;So;ON;\r
+2667;So;ON;\r
+2668;So;ON;\r
+2669;So;ON;\r
+266A;So;ON;\r
+266B;So;ON;\r
+266C;So;ON;\r
+266D;So;ON;\r
+266E;So;ON;\r
+266F;Sm;ON;\r
+2670;So;ON;\r
+2671;So;ON;\r
+2701;So;ON;\r
+2702;So;ON;\r
+2703;So;ON;\r
+2704;So;ON;\r
+2706;So;ON;\r
+2707;So;ON;\r
+2708;So;ON;\r
+2709;So;ON;\r
+270C;So;ON;\r
+270D;So;ON;\r
+270E;So;ON;\r
+270F;So;ON;\r
+2710;So;ON;\r
+2711;So;ON;\r
+2712;So;ON;\r
+2713;So;ON;\r
+2714;So;ON;\r
+2715;So;ON;\r
+2716;So;ON;\r
+2717;So;ON;\r
+2718;So;ON;\r
+2719;So;ON;\r
+271A;So;ON;\r
+271B;So;ON;\r
+271C;So;ON;\r
+271D;So;ON;\r
+271E;So;ON;\r
+271F;So;ON;\r
+2720;So;ON;\r
+2721;So;ON;\r
+2722;So;ON;\r
+2723;So;ON;\r
+2724;So;ON;\r
+2725;So;ON;\r
+2726;So;ON;\r
+2727;So;ON;\r
+2729;So;ON;\r
+272A;So;ON;\r
+272B;So;ON;\r
+272C;So;ON;\r
+272D;So;ON;\r
+272E;So;ON;\r
+272F;So;ON;\r
+2730;So;ON;\r
+2731;So;ON;\r
+2732;So;ON;\r
+2733;So;ON;\r
+2734;So;ON;\r
+2735;So;ON;\r
+2736;So;ON;\r
+2737;So;ON;\r
+2738;So;ON;\r
+2739;So;ON;\r
+273A;So;ON;\r
+273B;So;ON;\r
+273C;So;ON;\r
+273D;So;ON;\r
+273E;So;ON;\r
+273F;So;ON;\r
+2740;So;ON;\r
+2741;So;ON;\r
+2742;So;ON;\r
+2743;So;ON;\r
+2744;So;ON;\r
+2745;So;ON;\r
+2746;So;ON;\r
+2747;So;ON;\r
+2748;So;ON;\r
+2749;So;ON;\r
+274A;So;ON;\r
+274B;So;ON;\r
+274D;So;ON;\r
+274F;So;ON;\r
+2750;So;ON;\r
+2751;So;ON;\r
+2752;So;ON;\r
+2756;So;ON;\r
+2758;So;ON;\r
+2759;So;ON;\r
+275A;So;ON;\r
+275B;So;ON;\r
+275C;So;ON;\r
+275D;So;ON;\r
+275E;So;ON;\r
+2761;So;ON;\r
+2762;So;ON;\r
+2763;So;ON;\r
+2764;So;ON;\r
+2765;So;ON;\r
+2766;So;ON;\r
+2767;So;ON;\r
+2776;No;ON;\r
+2777;No;ON;\r
+2778;No;ON;\r
+2779;No;ON;\r
+277A;No;ON;\r
+277B;No;ON;\r
+277C;No;ON;\r
+277D;No;ON;\r
+277E;No;ON;\r
+277F;No;ON;\r
+2780;No;ON;\r
+2781;No;ON;\r
+2782;No;ON;\r
+2783;No;ON;\r
+2784;No;ON;\r
+2785;No;ON;\r
+2786;No;ON;\r
+2787;No;ON;\r
+2788;No;ON;\r
+2789;No;ON;\r
+278A;No;ON;\r
+278B;No;ON;\r
+278C;No;ON;\r
+278D;No;ON;\r
+278E;No;ON;\r
+278F;No;ON;\r
+2790;No;ON;\r
+2791;No;ON;\r
+2792;No;ON;\r
+2793;No;ON;\r
+2794;So;ON;\r
+2798;So;ON;\r
+2799;So;ON;\r
+279A;So;ON;\r
+279B;So;ON;\r
+279C;So;ON;\r
+279D;So;ON;\r
+279E;So;ON;\r
+279F;So;ON;\r
+27A0;So;ON;\r
+27A1;So;ON;\r
+27A2;So;ON;\r
+27A3;So;ON;\r
+27A4;So;ON;\r
+27A5;So;ON;\r
+27A6;So;ON;\r
+27A7;So;ON;\r
+27A8;So;ON;\r
+27A9;So;ON;\r
+27AA;So;ON;\r
+27AB;So;ON;\r
+27AC;So;ON;\r
+27AD;So;ON;\r
+27AE;So;ON;\r
+27AF;So;ON;\r
+27B1;So;ON;\r
+27B2;So;ON;\r
+27B3;So;ON;\r
+27B4;So;ON;\r
+27B5;So;ON;\r
+27B6;So;ON;\r
+27B7;So;ON;\r
+27B8;So;ON;\r
+27B9;So;ON;\r
+27BA;So;ON;\r
+27BB;So;ON;\r
+27BC;So;ON;\r
+27BD;So;ON;\r
+27BE;So;ON;\r
+2800;So;ON;\r
+2801;So;ON;\r
+2802;So;ON;\r
+2803;So;ON;\r
+2804;So;ON;\r
+2805;So;ON;\r
+2806;So;ON;\r
+2807;So;ON;\r
+2808;So;ON;\r
+2809;So;ON;\r
+280A;So;ON;\r
+280B;So;ON;\r
+280C;So;ON;\r
+280D;So;ON;\r
+280E;So;ON;\r
+280F;So;ON;\r
+2810;So;ON;\r
+2811;So;ON;\r
+2812;So;ON;\r
+2813;So;ON;\r
+2814;So;ON;\r
+2815;So;ON;\r
+2816;So;ON;\r
+2817;So;ON;\r
+2818;So;ON;\r
+2819;So;ON;\r
+281A;So;ON;\r
+281B;So;ON;\r
+281C;So;ON;\r
+281D;So;ON;\r
+281E;So;ON;\r
+281F;So;ON;\r
+2820;So;ON;\r
+2821;So;ON;\r
+2822;So;ON;\r
+2823;So;ON;\r
+2824;So;ON;\r
+2825;So;ON;\r
+2826;So;ON;\r
+2827;So;ON;\r
+2828;So;ON;\r
+2829;So;ON;\r
+282A;So;ON;\r
+282B;So;ON;\r
+282C;So;ON;\r
+282D;So;ON;\r
+282E;So;ON;\r
+282F;So;ON;\r
+2830;So;ON;\r
+2831;So;ON;\r
+2832;So;ON;\r
+2833;So;ON;\r
+2834;So;ON;\r
+2835;So;ON;\r
+2836;So;ON;\r
+2837;So;ON;\r
+2838;So;ON;\r
+2839;So;ON;\r
+283A;So;ON;\r
+283B;So;ON;\r
+283C;So;ON;\r
+283D;So;ON;\r
+283E;So;ON;\r
+283F;So;ON;\r
+2840;So;ON;\r
+2841;So;ON;\r
+2842;So;ON;\r
+2843;So;ON;\r
+2844;So;ON;\r
+2845;So;ON;\r
+2846;So;ON;\r
+2847;So;ON;\r
+2848;So;ON;\r
+2849;So;ON;\r
+284A;So;ON;\r
+284B;So;ON;\r
+284C;So;ON;\r
+284D;So;ON;\r
+284E;So;ON;\r
+284F;So;ON;\r
+2850;So;ON;\r
+2851;So;ON;\r
+2852;So;ON;\r
+2853;So;ON;\r
+2854;So;ON;\r
+2855;So;ON;\r
+2856;So;ON;\r
+2857;So;ON;\r
+2858;So;ON;\r
+2859;So;ON;\r
+285A;So;ON;\r
+285B;So;ON;\r
+285C;So;ON;\r
+285D;So;ON;\r
+285E;So;ON;\r
+285F;So;ON;\r
+2860;So;ON;\r
+2861;So;ON;\r
+2862;So;ON;\r
+2863;So;ON;\r
+2864;So;ON;\r
+2865;So;ON;\r
+2866;So;ON;\r
+2867;So;ON;\r
+2868;So;ON;\r
+2869;So;ON;\r
+286A;So;ON;\r
+286B;So;ON;\r
+286C;So;ON;\r
+286D;So;ON;\r
+286E;So;ON;\r
+286F;So;ON;\r
+2870;So;ON;\r
+2871;So;ON;\r
+2872;So;ON;\r
+2873;So;ON;\r
+2874;So;ON;\r
+2875;So;ON;\r
+2876;So;ON;\r
+2877;So;ON;\r
+2878;So;ON;\r
+2879;So;ON;\r
+287A;So;ON;\r
+287B;So;ON;\r
+287C;So;ON;\r
+287D;So;ON;\r
+287E;So;ON;\r
+287F;So;ON;\r
+2880;So;ON;\r
+2881;So;ON;\r
+2882;So;ON;\r
+2883;So;ON;\r
+2884;So;ON;\r
+2885;So;ON;\r
+2886;So;ON;\r
+2887;So;ON;\r
+2888;So;ON;\r
+2889;So;ON;\r
+288A;So;ON;\r
+288B;So;ON;\r
+288C;So;ON;\r
+288D;So;ON;\r
+288E;So;ON;\r
+288F;So;ON;\r
+2890;So;ON;\r
+2891;So;ON;\r
+2892;So;ON;\r
+2893;So;ON;\r
+2894;So;ON;\r
+2895;So;ON;\r
+2896;So;ON;\r
+2897;So;ON;\r
+2898;So;ON;\r
+2899;So;ON;\r
+289A;So;ON;\r
+289B;So;ON;\r
+289C;So;ON;\r
+289D;So;ON;\r
+289E;So;ON;\r
+289F;So;ON;\r
+28A0;So;ON;\r
+28A1;So;ON;\r
+28A2;So;ON;\r
+28A3;So;ON;\r
+28A4;So;ON;\r
+28A5;So;ON;\r
+28A6;So;ON;\r
+28A7;So;ON;\r
+28A8;So;ON;\r
+28A9;So;ON;\r
+28AA;So;ON;\r
+28AB;So;ON;\r
+28AC;So;ON;\r
+28AD;So;ON;\r
+28AE;So;ON;\r
+28AF;So;ON;\r
+28B0;So;ON;\r
+28B1;So;ON;\r
+28B2;So;ON;\r
+28B3;So;ON;\r
+28B4;So;ON;\r
+28B5;So;ON;\r
+28B6;So;ON;\r
+28B7;So;ON;\r
+28B8;So;ON;\r
+28B9;So;ON;\r
+28BA;So;ON;\r
+28BB;So;ON;\r
+28BC;So;ON;\r
+28BD;So;ON;\r
+28BE;So;ON;\r
+28BF;So;ON;\r
+28C0;So;ON;\r
+28C1;So;ON;\r
+28C2;So;ON;\r
+28C3;So;ON;\r
+28C4;So;ON;\r
+28C5;So;ON;\r
+28C6;So;ON;\r
+28C7;So;ON;\r
+28C8;So;ON;\r
+28C9;So;ON;\r
+28CA;So;ON;\r
+28CB;So;ON;\r
+28CC;So;ON;\r
+28CD;So;ON;\r
+28CE;So;ON;\r
+28CF;So;ON;\r
+28D0;So;ON;\r
+28D1;So;ON;\r
+28D2;So;ON;\r
+28D3;So;ON;\r
+28D4;So;ON;\r
+28D5;So;ON;\r
+28D6;So;ON;\r
+28D7;So;ON;\r
+28D8;So;ON;\r
+28D9;So;ON;\r
+28DA;So;ON;\r
+28DB;So;ON;\r
+28DC;So;ON;\r
+28DD;So;ON;\r
+28DE;So;ON;\r
+28DF;So;ON;\r
+28E0;So;ON;\r
+28E1;So;ON;\r
+28E2;So;ON;\r
+28E3;So;ON;\r
+28E4;So;ON;\r
+28E5;So;ON;\r
+28E6;So;ON;\r
+28E7;So;ON;\r
+28E8;So;ON;\r
+28E9;So;ON;\r
+28EA;So;ON;\r
+28EB;So;ON;\r
+28EC;So;ON;\r
+28ED;So;ON;\r
+28EE;So;ON;\r
+28EF;So;ON;\r
+28F0;So;ON;\r
+28F1;So;ON;\r
+28F2;So;ON;\r
+28F3;So;ON;\r
+28F4;So;ON;\r
+28F5;So;ON;\r
+28F6;So;ON;\r
+28F7;So;ON;\r
+28F8;So;ON;\r
+28F9;So;ON;\r
+28FA;So;ON;\r
+28FB;So;ON;\r
+28FC;So;ON;\r
+28FD;So;ON;\r
+28FE;So;ON;\r
+28FF;So;ON;\r
+2E80;So;ON;\r
+2E81;So;ON;\r
+2E82;So;ON;\r
+2E83;So;ON;\r
+2E84;So;ON;\r
+2E85;So;ON;\r
+2E86;So;ON;\r
+2E87;So;ON;\r
+2E88;So;ON;\r
+2E89;So;ON;\r
+2E8A;So;ON;\r
+2E8B;So;ON;\r
+2E8C;So;ON;\r
+2E8D;So;ON;\r
+2E8E;So;ON;\r
+2E8F;So;ON;\r
+2E90;So;ON;\r
+2E91;So;ON;\r
+2E92;So;ON;\r
+2E93;So;ON;\r
+2E94;So;ON;\r
+2E95;So;ON;\r
+2E96;So;ON;\r
+2E97;So;ON;\r
+2E98;So;ON;\r
+2E99;So;ON;\r
+2E9B;So;ON;\r
+2E9C;So;ON;\r
+2E9D;So;ON;\r
+2E9E;So;ON;\r
+2E9F;So;ON;\r
+2EA0;So;ON;\r
+2EA1;So;ON;\r
+2EA2;So;ON;\r
+2EA3;So;ON;\r
+2EA4;So;ON;\r
+2EA5;So;ON;\r
+2EA6;So;ON;\r
+2EA7;So;ON;\r
+2EA8;So;ON;\r
+2EA9;So;ON;\r
+2EAA;So;ON;\r
+2EAB;So;ON;\r
+2EAC;So;ON;\r
+2EAD;So;ON;\r
+2EAE;So;ON;\r
+2EAF;So;ON;\r
+2EB0;So;ON;\r
+2EB1;So;ON;\r
+2EB2;So;ON;\r
+2EB3;So;ON;\r
+2EB4;So;ON;\r
+2EB5;So;ON;\r
+2EB6;So;ON;\r
+2EB7;So;ON;\r
+2EB8;So;ON;\r
+2EB9;So;ON;\r
+2EBA;So;ON;\r
+2EBB;So;ON;\r
+2EBC;So;ON;\r
+2EBD;So;ON;\r
+2EBE;So;ON;\r
+2EBF;So;ON;\r
+2EC0;So;ON;\r
+2EC1;So;ON;\r
+2EC2;So;ON;\r
+2EC3;So;ON;\r
+2EC4;So;ON;\r
+2EC5;So;ON;\r
+2EC6;So;ON;\r
+2EC7;So;ON;\r
+2EC8;So;ON;\r
+2EC9;So;ON;\r
+2ECA;So;ON;\r
+2ECB;So;ON;\r
+2ECC;So;ON;\r
+2ECD;So;ON;\r
+2ECE;So;ON;\r
+2ECF;So;ON;\r
+2ED0;So;ON;\r
+2ED1;So;ON;\r
+2ED2;So;ON;\r
+2ED3;So;ON;\r
+2ED4;So;ON;\r
+2ED5;So;ON;\r
+2ED6;So;ON;\r
+2ED7;So;ON;\r
+2ED8;So;ON;\r
+2ED9;So;ON;\r
+2EDA;So;ON;\r
+2EDB;So;ON;\r
+2EDC;So;ON;\r
+2EDD;So;ON;\r
+2EDE;So;ON;\r
+2EDF;So;ON;\r
+2EE0;So;ON;\r
+2EE1;So;ON;\r
+2EE2;So;ON;\r
+2EE3;So;ON;\r
+2EE4;So;ON;\r
+2EE5;So;ON;\r
+2EE6;So;ON;\r
+2EE7;So;ON;\r
+2EE8;So;ON;\r
+2EE9;So;ON;\r
+2EEA;So;ON;\r
+2EEB;So;ON;\r
+2EEC;So;ON;\r
+2EED;So;ON;\r
+2EEE;So;ON;\r
+2EEF;So;ON;\r
+2EF0;So;ON;\r
+2EF1;So;ON;\r
+2EF2;So;ON;\r
+2EF3;So;ON;\r
+2F00;So;ON;\r
+2F01;So;ON;\r
+2F02;So;ON;\r
+2F03;So;ON;\r
+2F04;So;ON;\r
+2F05;So;ON;\r
+2F06;So;ON;\r
+2F07;So;ON;\r
+2F08;So;ON;\r
+2F09;So;ON;\r
+2F0A;So;ON;\r
+2F0B;So;ON;\r
+2F0C;So;ON;\r
+2F0D;So;ON;\r
+2F0E;So;ON;\r
+2F0F;So;ON;\r
+2F10;So;ON;\r
+2F11;So;ON;\r
+2F12;So;ON;\r
+2F13;So;ON;\r
+2F14;So;ON;\r
+2F15;So;ON;\r
+2F16;So;ON;\r
+2F17;So;ON;\r
+2F18;So;ON;\r
+2F19;So;ON;\r
+2F1A;So;ON;\r
+2F1B;So;ON;\r
+2F1C;So;ON;\r
+2F1D;So;ON;\r
+2F1E;So;ON;\r
+2F1F;So;ON;\r
+2F20;So;ON;\r
+2F21;So;ON;\r
+2F22;So;ON;\r
+2F23;So;ON;\r
+2F24;So;ON;\r
+2F25;So;ON;\r
+2F26;So;ON;\r
+2F27;So;ON;\r
+2F28;So;ON;\r
+2F29;So;ON;\r
+2F2A;So;ON;\r
+2F2B;So;ON;\r
+2F2C;So;ON;\r
+2F2D;So;ON;\r
+2F2E;So;ON;\r
+2F2F;So;ON;\r
+2F30;So;ON;\r
+2F31;So;ON;\r
+2F32;So;ON;\r
+2F33;So;ON;\r
+2F34;So;ON;\r
+2F35;So;ON;\r
+2F36;So;ON;\r
+2F37;So;ON;\r
+2F38;So;ON;\r
+2F39;So;ON;\r
+2F3A;So;ON;\r
+2F3B;So;ON;\r
+2F3C;So;ON;\r
+2F3D;So;ON;\r
+2F3E;So;ON;\r
+2F3F;So;ON;\r
+2F40;So;ON;\r
+2F41;So;ON;\r
+2F42;So;ON;\r
+2F43;So;ON;\r
+2F44;So;ON;\r
+2F45;So;ON;\r
+2F46;So;ON;\r
+2F47;So;ON;\r
+2F48;So;ON;\r
+2F49;So;ON;\r
+2F4A;So;ON;\r
+2F4B;So;ON;\r
+2F4C;So;ON;\r
+2F4D;So;ON;\r
+2F4E;So;ON;\r
+2F4F;So;ON;\r
+2F50;So;ON;\r
+2F51;So;ON;\r
+2F52;So;ON;\r
+2F53;So;ON;\r
+2F54;So;ON;\r
+2F55;So;ON;\r
+2F56;So;ON;\r
+2F57;So;ON;\r
+2F58;So;ON;\r
+2F59;So;ON;\r
+2F5A;So;ON;\r
+2F5B;So;ON;\r
+2F5C;So;ON;\r
+2F5D;So;ON;\r
+2F5E;So;ON;\r
+2F5F;So;ON;\r
+2F60;So;ON;\r
+2F61;So;ON;\r
+2F62;So;ON;\r
+2F63;So;ON;\r
+2F64;So;ON;\r
+2F65;So;ON;\r
+2F66;So;ON;\r
+2F67;So;ON;\r
+2F68;So;ON;\r
+2F69;So;ON;\r
+2F6A;So;ON;\r
+2F6B;So;ON;\r
+2F6C;So;ON;\r
+2F6D;So;ON;\r
+2F6E;So;ON;\r
+2F6F;So;ON;\r
+2F70;So;ON;\r
+2F71;So;ON;\r
+2F72;So;ON;\r
+2F73;So;ON;\r
+2F74;So;ON;\r
+2F75;So;ON;\r
+2F76;So;ON;\r
+2F77;So;ON;\r
+2F78;So;ON;\r
+2F79;So;ON;\r
+2F7A;So;ON;\r
+2F7B;So;ON;\r
+2F7C;So;ON;\r
+2F7D;So;ON;\r
+2F7E;So;ON;\r
+2F7F;So;ON;\r
+2F80;So;ON;\r
+2F81;So;ON;\r
+2F82;So;ON;\r
+2F83;So;ON;\r
+2F84;So;ON;\r
+2F85;So;ON;\r
+2F86;So;ON;\r
+2F87;So;ON;\r
+2F88;So;ON;\r
+2F89;So;ON;\r
+2F8A;So;ON;\r
+2F8B;So;ON;\r
+2F8C;So;ON;\r
+2F8D;So;ON;\r
+2F8E;So;ON;\r
+2F8F;So;ON;\r
+2F90;So;ON;\r
+2F91;So;ON;\r
+2F92;So;ON;\r
+2F93;So;ON;\r
+2F94;So;ON;\r
+2F95;So;ON;\r
+2F96;So;ON;\r
+2F97;So;ON;\r
+2F98;So;ON;\r
+2F99;So;ON;\r
+2F9A;So;ON;\r
+2F9B;So;ON;\r
+2F9C;So;ON;\r
+2F9D;So;ON;\r
+2F9E;So;ON;\r
+2F9F;So;ON;\r
+2FA0;So;ON;\r
+2FA1;So;ON;\r
+2FA2;So;ON;\r
+2FA3;So;ON;\r
+2FA4;So;ON;\r
+2FA5;So;ON;\r
+2FA6;So;ON;\r
+2FA7;So;ON;\r
+2FA8;So;ON;\r
+2FA9;So;ON;\r
+2FAA;So;ON;\r
+2FAB;So;ON;\r
+2FAC;So;ON;\r
+2FAD;So;ON;\r
+2FAE;So;ON;\r
+2FAF;So;ON;\r
+2FB0;So;ON;\r
+2FB1;So;ON;\r
+2FB2;So;ON;\r
+2FB3;So;ON;\r
+2FB4;So;ON;\r
+2FB5;So;ON;\r
+2FB6;So;ON;\r
+2FB7;So;ON;\r
+2FB8;So;ON;\r
+2FB9;So;ON;\r
+2FBA;So;ON;\r
+2FBB;So;ON;\r
+2FBC;So;ON;\r
+2FBD;So;ON;\r
+2FBE;So;ON;\r
+2FBF;So;ON;\r
+2FC0;So;ON;\r
+2FC1;So;ON;\r
+2FC2;So;ON;\r
+2FC3;So;ON;\r
+2FC4;So;ON;\r
+2FC5;So;ON;\r
+2FC6;So;ON;\r
+2FC7;So;ON;\r
+2FC8;So;ON;\r
+2FC9;So;ON;\r
+2FCA;So;ON;\r
+2FCB;So;ON;\r
+2FCC;So;ON;\r
+2FCD;So;ON;\r
+2FCE;So;ON;\r
+2FCF;So;ON;\r
+2FD0;So;ON;\r
+2FD1;So;ON;\r
+2FD2;So;ON;\r
+2FD3;So;ON;\r
+2FD4;So;ON;\r
+2FD5;So;ON;\r
+2FF0;So;ON;\r
+2FF1;So;ON;\r
+2FF2;So;ON;\r
+2FF3;So;ON;\r
+2FF4;So;ON;\r
+2FF5;So;ON;\r
+2FF6;So;ON;\r
+2FF7;So;ON;\r
+2FF8;So;ON;\r
+2FF9;So;ON;\r
+2FFA;So;ON;\r
+2FFB;So;ON;\r
+3000;Zs;WS;\r
+3001;Po;ON;\r
+3002;Po;ON;\r
+3003;Po;ON;\r
+3004;So;ON;\r
+3005;Lm;L;\r
+3006;Lo;L;\r
+3007;Nl;L;\r
+3008;Ps;ON;\r
+3009;Pe;ON;\r
+300A;Ps;ON;\r
+300B;Pe;ON;\r
+300C;Ps;ON;\r
+300D;Pe;ON;\r
+300E;Ps;ON;\r
+300F;Pe;ON;\r
+3010;Ps;ON;\r
+3011;Pe;ON;\r
+3012;So;ON;\r
+3013;So;ON;\r
+3014;Ps;ON;\r
+3015;Pe;ON;\r
+3016;Ps;ON;\r
+3017;Pe;ON;\r
+3018;Ps;ON;\r
+3019;Pe;ON;\r
+301A;Ps;ON;\r
+301B;Pe;ON;\r
+301C;Pd;ON;\r
+301D;Ps;ON;\r
+301E;Pe;ON;\r
+301F;Pe;ON;\r
+3020;So;ON;\r
+3021;Nl;L;\r
+3022;Nl;L;\r
+3023;Nl;L;\r
+3024;Nl;L;\r
+3025;Nl;L;\r
+3026;Nl;L;\r
+3027;Nl;L;\r
+3028;Nl;L;\r
+3029;Nl;L;\r
+302A;Mn;NSM;\r
+302B;Mn;NSM;\r
+302C;Mn;NSM;\r
+302D;Mn;NSM;\r
+302E;Mn;NSM;\r
+302F;Mn;NSM;\r
+3030;Pd;ON;\r
+3031;Lm;L;\r
+3032;Lm;L;\r
+3033;Lm;L;\r
+3034;Lm;L;\r
+3035;Lm;L;\r
+3036;So;ON;\r
+3037;So;ON;\r
+3038;Nl;L;\r
+3039;Nl;L;\r
+303A;Nl;L;\r
+303E;So;ON;\r
+303F;So;ON;\r
+3041;Lo;L;\r
+3042;Lo;L;\r
+3043;Lo;L;\r
+3044;Lo;L;\r
+3045;Lo;L;\r
+3046;Lo;L;\r
+3047;Lo;L;\r
+3048;Lo;L;\r
+3049;Lo;L;\r
+304A;Lo;L;\r
+304B;Lo;L;\r
+304C;Lo;L;\r
+304D;Lo;L;\r
+304E;Lo;L;\r
+304F;Lo;L;\r
+3050;Lo;L;\r
+3051;Lo;L;\r
+3052;Lo;L;\r
+3053;Lo;L;\r
+3054;Lo;L;\r
+3055;Lo;L;\r
+3056;Lo;L;\r
+3057;Lo;L;\r
+3058;Lo;L;\r
+3059;Lo;L;\r
+305A;Lo;L;\r
+305B;Lo;L;\r
+305C;Lo;L;\r
+305D;Lo;L;\r
+305E;Lo;L;\r
+305F;Lo;L;\r
+3060;Lo;L;\r
+3061;Lo;L;\r
+3062;Lo;L;\r
+3063;Lo;L;\r
+3064;Lo;L;\r
+3065;Lo;L;\r
+3066;Lo;L;\r
+3067;Lo;L;\r
+3068;Lo;L;\r
+3069;Lo;L;\r
+306A;Lo;L;\r
+306B;Lo;L;\r
+306C;Lo;L;\r
+306D;Lo;L;\r
+306E;Lo;L;\r
+306F;Lo;L;\r
+3070;Lo;L;\r
+3071;Lo;L;\r
+3072;Lo;L;\r
+3073;Lo;L;\r
+3074;Lo;L;\r
+3075;Lo;L;\r
+3076;Lo;L;\r
+3077;Lo;L;\r
+3078;Lo;L;\r
+3079;Lo;L;\r
+307A;Lo;L;\r
+307B;Lo;L;\r
+307C;Lo;L;\r
+307D;Lo;L;\r
+307E;Lo;L;\r
+307F;Lo;L;\r
+3080;Lo;L;\r
+3081;Lo;L;\r
+3082;Lo;L;\r
+3083;Lo;L;\r
+3084;Lo;L;\r
+3085;Lo;L;\r
+3086;Lo;L;\r
+3087;Lo;L;\r
+3088;Lo;L;\r
+3089;Lo;L;\r
+308A;Lo;L;\r
+308B;Lo;L;\r
+308C;Lo;L;\r
+308D;Lo;L;\r
+308E;Lo;L;\r
+308F;Lo;L;\r
+3090;Lo;L;\r
+3091;Lo;L;\r
+3092;Lo;L;\r
+3093;Lo;L;\r
+3094;Lo;L;\r
+3099;Mn;NSM;\r
+309A;Mn;NSM;\r
+309B;Sk;ON;\r
+309C;Sk;ON;\r
+309D;Lm;L;\r
+309E;Lm;L;\r
+30A1;Lo;L;\r
+30A2;Lo;L;\r
+30A3;Lo;L;\r
+30A4;Lo;L;\r
+30A5;Lo;L;\r
+30A6;Lo;L;\r
+30A7;Lo;L;\r
+30A8;Lo;L;\r
+30A9;Lo;L;\r
+30AA;Lo;L;\r
+30AB;Lo;L;\r
+30AC;Lo;L;\r
+30AD;Lo;L;\r
+30AE;Lo;L;\r
+30AF;Lo;L;\r
+30B0;Lo;L;\r
+30B1;Lo;L;\r
+30B2;Lo;L;\r
+30B3;Lo;L;\r
+30B4;Lo;L;\r
+30B5;Lo;L;\r
+30B6;Lo;L;\r
+30B7;Lo;L;\r
+30B8;Lo;L;\r
+30B9;Lo;L;\r
+30BA;Lo;L;\r
+30BB;Lo;L;\r
+30BC;Lo;L;\r
+30BD;Lo;L;\r
+30BE;Lo;L;\r
+30BF;Lo;L;\r
+30C0;Lo;L;\r
+30C1;Lo;L;\r
+30C2;Lo;L;\r
+30C3;Lo;L;\r
+30C4;Lo;L;\r
+30C5;Lo;L;\r
+30C6;Lo;L;\r
+30C7;Lo;L;\r
+30C8;Lo;L;\r
+30C9;Lo;L;\r
+30CA;Lo;L;\r
+30CB;Lo;L;\r
+30CC;Lo;L;\r
+30CD;Lo;L;\r
+30CE;Lo;L;\r
+30CF;Lo;L;\r
+30D0;Lo;L;\r
+30D1;Lo;L;\r
+30D2;Lo;L;\r
+30D3;Lo;L;\r
+30D4;Lo;L;\r
+30D5;Lo;L;\r
+30D6;Lo;L;\r
+30D7;Lo;L;\r
+30D8;Lo;L;\r
+30D9;Lo;L;\r
+30DA;Lo;L;\r
+30DB;Lo;L;\r
+30DC;Lo;L;\r
+30DD;Lo;L;\r
+30DE;Lo;L;\r
+30DF;Lo;L;\r
+30E0;Lo;L;\r
+30E1;Lo;L;\r
+30E2;Lo;L;\r
+30E3;Lo;L;\r
+30E4;Lo;L;\r
+30E5;Lo;L;\r
+30E6;Lo;L;\r
+30E7;Lo;L;\r
+30E8;Lo;L;\r
+30E9;Lo;L;\r
+30EA;Lo;L;\r
+30EB;Lo;L;\r
+30EC;Lo;L;\r
+30ED;Lo;L;\r
+30EE;Lo;L;\r
+30EF;Lo;L;\r
+30F0;Lo;L;\r
+30F1;Lo;L;\r
+30F2;Lo;L;\r
+30F3;Lo;L;\r
+30F4;Lo;L;\r
+30F5;Lo;L;\r
+30F6;Lo;L;\r
+30F7;Lo;L;\r
+30F8;Lo;L;\r
+30F9;Lo;L;\r
+30FA;Lo;L;\r
+30FB;Pc;ON;\r
+30FC;Lm;L;\r
+30FD;Lm;L;\r
+30FE;Lm;L;\r
+3105;Lo;L;\r
+3106;Lo;L;\r
+3107;Lo;L;\r
+3108;Lo;L;\r
+3109;Lo;L;\r
+310A;Lo;L;\r
+310B;Lo;L;\r
+310C;Lo;L;\r
+310D;Lo;L;\r
+310E;Lo;L;\r
+310F;Lo;L;\r
+3110;Lo;L;\r
+3111;Lo;L;\r
+3112;Lo;L;\r
+3113;Lo;L;\r
+3114;Lo;L;\r
+3115;Lo;L;\r
+3116;Lo;L;\r
+3117;Lo;L;\r
+3118;Lo;L;\r
+3119;Lo;L;\r
+311A;Lo;L;\r
+311B;Lo;L;\r
+311C;Lo;L;\r
+311D;Lo;L;\r
+311E;Lo;L;\r
+311F;Lo;L;\r
+3120;Lo;L;\r
+3121;Lo;L;\r
+3122;Lo;L;\r
+3123;Lo;L;\r
+3124;Lo;L;\r
+3125;Lo;L;\r
+3126;Lo;L;\r
+3127;Lo;L;\r
+3128;Lo;L;\r
+3129;Lo;L;\r
+312A;Lo;L;\r
+312B;Lo;L;\r
+312C;Lo;L;\r
+3131;Lo;L;\r
+3132;Lo;L;\r
+3133;Lo;L;\r
+3134;Lo;L;\r
+3135;Lo;L;\r
+3136;Lo;L;\r
+3137;Lo;L;\r
+3138;Lo;L;\r
+3139;Lo;L;\r
+313A;Lo;L;\r
+313B;Lo;L;\r
+313C;Lo;L;\r
+313D;Lo;L;\r
+313E;Lo;L;\r
+313F;Lo;L;\r
+3140;Lo;L;\r
+3141;Lo;L;\r
+3142;Lo;L;\r
+3143;Lo;L;\r
+3144;Lo;L;\r
+3145;Lo;L;\r
+3146;Lo;L;\r
+3147;Lo;L;\r
+3148;Lo;L;\r
+3149;Lo;L;\r
+314A;Lo;L;\r
+314B;Lo;L;\r
+314C;Lo;L;\r
+314D;Lo;L;\r
+314E;Lo;L;\r
+314F;Lo;L;\r
+3150;Lo;L;\r
+3151;Lo;L;\r
+3152;Lo;L;\r
+3153;Lo;L;\r
+3154;Lo;L;\r
+3155;Lo;L;\r
+3156;Lo;L;\r
+3157;Lo;L;\r
+3158;Lo;L;\r
+3159;Lo;L;\r
+315A;Lo;L;\r
+315B;Lo;L;\r
+315C;Lo;L;\r
+315D;Lo;L;\r
+315E;Lo;L;\r
+315F;Lo;L;\r
+3160;Lo;L;\r
+3161;Lo;L;\r
+3162;Lo;L;\r
+3163;Lo;L;\r
+3164;Lo;L;\r
+3165;Lo;L;\r
+3166;Lo;L;\r
+3167;Lo;L;\r
+3168;Lo;L;\r
+3169;Lo;L;\r
+316A;Lo;L;\r
+316B;Lo;L;\r
+316C;Lo;L;\r
+316D;Lo;L;\r
+316E;Lo;L;\r
+316F;Lo;L;\r
+3170;Lo;L;\r
+3171;Lo;L;\r
+3172;Lo;L;\r
+3173;Lo;L;\r
+3174;Lo;L;\r
+3175;Lo;L;\r
+3176;Lo;L;\r
+3177;Lo;L;\r
+3178;Lo;L;\r
+3179;Lo;L;\r
+317A;Lo;L;\r
+317B;Lo;L;\r
+317C;Lo;L;\r
+317D;Lo;L;\r
+317E;Lo;L;\r
+317F;Lo;L;\r
+3180;Lo;L;\r
+3181;Lo;L;\r
+3182;Lo;L;\r
+3183;Lo;L;\r
+3184;Lo;L;\r
+3185;Lo;L;\r
+3186;Lo;L;\r
+3187;Lo;L;\r
+3188;Lo;L;\r
+3189;Lo;L;\r
+318A;Lo;L;\r
+318B;Lo;L;\r
+318C;Lo;L;\r
+318D;Lo;L;\r
+318E;Lo;L;\r
+3190;So;L;\r
+3191;So;L;\r
+3192;No;L;\r
+3193;No;L;\r
+3194;No;L;\r
+3195;No;L;\r
+3196;So;L;\r
+3197;So;L;\r
+3198;So;L;\r
+3199;So;L;\r
+319A;So;L;\r
+319B;So;L;\r
+319C;So;L;\r
+319D;So;L;\r
+319E;So;L;\r
+319F;So;L;\r
+31A0;Lo;L;\r
+31A1;Lo;L;\r
+31A2;Lo;L;\r
+31A3;Lo;L;\r
+31A4;Lo;L;\r
+31A5;Lo;L;\r
+31A6;Lo;L;\r
+31A7;Lo;L;\r
+31A8;Lo;L;\r
+31A9;Lo;L;\r
+31AA;Lo;L;\r
+31AB;Lo;L;\r
+31AC;Lo;L;\r
+31AD;Lo;L;\r
+31AE;Lo;L;\r
+31AF;Lo;L;\r
+31B0;Lo;L;\r
+31B1;Lo;L;\r
+31B2;Lo;L;\r
+31B3;Lo;L;\r
+31B4;Lo;L;\r
+31B5;Lo;L;\r
+31B6;Lo;L;\r
+31B7;Lo;L;\r
+3200;So;L;\r
+3201;So;L;\r
+3202;So;L;\r
+3203;So;L;\r
+3204;So;L;\r
+3205;So;L;\r
+3206;So;L;\r
+3207;So;L;\r
+3208;So;L;\r
+3209;So;L;\r
+320A;So;L;\r
+320B;So;L;\r
+320C;So;L;\r
+320D;So;L;\r
+320E;So;L;\r
+320F;So;L;\r
+3210;So;L;\r
+3211;So;L;\r
+3212;So;L;\r
+3213;So;L;\r
+3214;So;L;\r
+3215;So;L;\r
+3216;So;L;\r
+3217;So;L;\r
+3218;So;L;\r
+3219;So;L;\r
+321A;So;L;\r
+321B;So;L;\r
+321C;So;L;\r
+3220;No;L;\r
+3221;No;L;\r
+3222;No;L;\r
+3223;No;L;\r
+3224;No;L;\r
+3225;No;L;\r
+3226;No;L;\r
+3227;No;L;\r
+3228;No;L;\r
+3229;No;L;\r
+322A;So;L;\r
+322B;So;L;\r
+322C;So;L;\r
+322D;So;L;\r
+322E;So;L;\r
+322F;So;L;\r
+3230;So;L;\r
+3231;So;L;\r
+3232;So;L;\r
+3233;So;L;\r
+3234;So;L;\r
+3235;So;L;\r
+3236;So;L;\r
+3237;So;L;\r
+3238;So;L;\r
+3239;So;L;\r
+323A;So;L;\r
+323B;So;L;\r
+323C;So;L;\r
+323D;So;L;\r
+323E;So;L;\r
+323F;So;L;\r
+3240;So;L;\r
+3241;So;L;\r
+3242;So;L;\r
+3243;So;L;\r
+3260;So;L;\r
+3261;So;L;\r
+3262;So;L;\r
+3263;So;L;\r
+3264;So;L;\r
+3265;So;L;\r
+3266;So;L;\r
+3267;So;L;\r
+3268;So;L;\r
+3269;So;L;\r
+326A;So;L;\r
+326B;So;L;\r
+326C;So;L;\r
+326D;So;L;\r
+326E;So;L;\r
+326F;So;L;\r
+3270;So;L;\r
+3271;So;L;\r
+3272;So;L;\r
+3273;So;L;\r
+3274;So;L;\r
+3275;So;L;\r
+3276;So;L;\r
+3277;So;L;\r
+3278;So;L;\r
+3279;So;L;\r
+327A;So;L;\r
+327B;So;L;\r
+327F;So;L;\r
+3280;No;L;\r
+3281;No;L;\r
+3282;No;L;\r
+3283;No;L;\r
+3284;No;L;\r
+3285;No;L;\r
+3286;No;L;\r
+3287;No;L;\r
+3288;No;L;\r
+3289;No;L;\r
+328A;So;L;\r
+328B;So;L;\r
+328C;So;L;\r
+328D;So;L;\r
+328E;So;L;\r
+328F;So;L;\r
+3290;So;L;\r
+3291;So;L;\r
+3292;So;L;\r
+3293;So;L;\r
+3294;So;L;\r
+3295;So;L;\r
+3296;So;L;\r
+3297;So;L;\r
+3298;So;L;\r
+3299;So;L;\r
+329A;So;L;\r
+329B;So;L;\r
+329C;So;L;\r
+329D;So;L;\r
+329E;So;L;\r
+329F;So;L;\r
+32A0;So;L;\r
+32A1;So;L;\r
+32A2;So;L;\r
+32A3;So;L;\r
+32A4;So;L;\r
+32A5;So;L;\r
+32A6;So;L;\r
+32A7;So;L;\r
+32A8;So;L;\r
+32A9;So;L;\r
+32AA;So;L;\r
+32AB;So;L;\r
+32AC;So;L;\r
+32AD;So;L;\r
+32AE;So;L;\r
+32AF;So;L;\r
+32B0;So;L;\r
+32C0;So;L;\r
+32C1;So;L;\r
+32C2;So;L;\r
+32C3;So;L;\r
+32C4;So;L;\r
+32C5;So;L;\r
+32C6;So;L;\r
+32C7;So;L;\r
+32C8;So;L;\r
+32C9;So;L;\r
+32CA;So;L;\r
+32CB;So;L;\r
+32D0;So;L;\r
+32D1;So;L;\r
+32D2;So;L;\r
+32D3;So;L;\r
+32D4;So;L;\r
+32D5;So;L;\r
+32D6;So;L;\r
+32D7;So;L;\r
+32D8;So;L;\r
+32D9;So;L;\r
+32DA;So;L;\r
+32DB;So;L;\r
+32DC;So;L;\r
+32DD;So;L;\r
+32DE;So;L;\r
+32DF;So;L;\r
+32E0;So;L;\r
+32E1;So;L;\r
+32E2;So;L;\r
+32E3;So;L;\r
+32E4;So;L;\r
+32E5;So;L;\r
+32E6;So;L;\r
+32E7;So;L;\r
+32E8;So;L;\r
+32E9;So;L;\r
+32EA;So;L;\r
+32EB;So;L;\r
+32EC;So;L;\r
+32ED;So;L;\r
+32EE;So;L;\r
+32EF;So;L;\r
+32F0;So;L;\r
+32F1;So;L;\r
+32F2;So;L;\r
+32F3;So;L;\r
+32F4;So;L;\r
+32F5;So;L;\r
+32F6;So;L;\r
+32F7;So;L;\r
+32F8;So;L;\r
+32F9;So;L;\r
+32FA;So;L;\r
+32FB;So;L;\r
+32FC;So;L;\r
+32FD;So;L;\r
+32FE;So;L;\r
+3300;So;L;\r
+3301;So;L;\r
+3302;So;L;\r
+3303;So;L;\r
+3304;So;L;\r
+3305;So;L;\r
+3306;So;L;\r
+3307;So;L;\r
+3308;So;L;\r
+3309;So;L;\r
+330A;So;L;\r
+330B;So;L;\r
+330C;So;L;\r
+330D;So;L;\r
+330E;So;L;\r
+330F;So;L;\r
+3310;So;L;\r
+3311;So;L;\r
+3312;So;L;\r
+3313;So;L;\r
+3314;So;L;\r
+3315;So;L;\r
+3316;So;L;\r
+3317;So;L;\r
+3318;So;L;\r
+3319;So;L;\r
+331A;So;L;\r
+331B;So;L;\r
+331C;So;L;\r
+331D;So;L;\r
+331E;So;L;\r
+331F;So;L;\r
+3320;So;L;\r
+3321;So;L;\r
+3322;So;L;\r
+3323;So;L;\r
+3324;So;L;\r
+3325;So;L;\r
+3326;So;L;\r
+3327;So;L;\r
+3328;So;L;\r
+3329;So;L;\r
+332A;So;L;\r
+332B;So;L;\r
+332C;So;L;\r
+332D;So;L;\r
+332E;So;L;\r
+332F;So;L;\r
+3330;So;L;\r
+3331;So;L;\r
+3332;So;L;\r
+3333;So;L;\r
+3334;So;L;\r
+3335;So;L;\r
+3336;So;L;\r
+3337;So;L;\r
+3338;So;L;\r
+3339;So;L;\r
+333A;So;L;\r
+333B;So;L;\r
+333C;So;L;\r
+333D;So;L;\r
+333E;So;L;\r
+333F;So;L;\r
+3340;So;L;\r
+3341;So;L;\r
+3342;So;L;\r
+3343;So;L;\r
+3344;So;L;\r
+3345;So;L;\r
+3346;So;L;\r
+3347;So;L;\r
+3348;So;L;\r
+3349;So;L;\r
+334A;So;L;\r
+334B;So;L;\r
+334C;So;L;\r
+334D;So;L;\r
+334E;So;L;\r
+334F;So;L;\r
+3350;So;L;\r
+3351;So;L;\r
+3352;So;L;\r
+3353;So;L;\r
+3354;So;L;\r
+3355;So;L;\r
+3356;So;L;\r
+3357;So;L;\r
+3358;So;L;\r
+3359;So;L;\r
+335A;So;L;\r
+335B;So;L;\r
+335C;So;L;\r
+335D;So;L;\r
+335E;So;L;\r
+335F;So;L;\r
+3360;So;L;\r
+3361;So;L;\r
+3362;So;L;\r
+3363;So;L;\r
+3364;So;L;\r
+3365;So;L;\r
+3366;So;L;\r
+3367;So;L;\r
+3368;So;L;\r
+3369;So;L;\r
+336A;So;L;\r
+336B;So;L;\r
+336C;So;L;\r
+336D;So;L;\r
+336E;So;L;\r
+336F;So;L;\r
+3370;So;L;\r
+3371;So;L;\r
+3372;So;L;\r
+3373;So;L;\r
+3374;So;L;\r
+3375;So;L;\r
+3376;So;L;\r
+337B;So;L;\r
+337C;So;L;\r
+337D;So;L;\r
+337E;So;L;\r
+337F;So;L;\r
+3380;So;L;\r
+3381;So;L;\r
+3382;So;L;\r
+3383;So;L;\r
+3384;So;L;\r
+3385;So;L;\r
+3386;So;L;\r
+3387;So;L;\r
+3388;So;L;\r
+3389;So;L;\r
+338A;So;L;\r
+338B;So;L;\r
+338C;So;L;\r
+338D;So;L;\r
+338E;So;L;\r
+338F;So;L;\r
+3390;So;L;\r
+3391;So;L;\r
+3392;So;L;\r
+3393;So;L;\r
+3394;So;L;\r
+3395;So;L;\r
+3396;So;L;\r
+3397;So;L;\r
+3398;So;L;\r
+3399;So;L;\r
+339A;So;L;\r
+339B;So;L;\r
+339C;So;L;\r
+339D;So;L;\r
+339E;So;L;\r
+339F;So;L;\r
+33A0;So;L;\r
+33A1;So;L;\r
+33A2;So;L;\r
+33A3;So;L;\r
+33A4;So;L;\r
+33A5;So;L;\r
+33A6;So;L;\r
+33A7;So;L;\r
+33A8;So;L;\r
+33A9;So;L;\r
+33AA;So;L;\r
+33AB;So;L;\r
+33AC;So;L;\r
+33AD;So;L;\r
+33AE;So;L;\r
+33AF;So;L;\r
+33B0;So;L;\r
+33B1;So;L;\r
+33B2;So;L;\r
+33B3;So;L;\r
+33B4;So;L;\r
+33B5;So;L;\r
+33B6;So;L;\r
+33B7;So;L;\r
+33B8;So;L;\r
+33B9;So;L;\r
+33BA;So;L;\r
+33BB;So;L;\r
+33BC;So;L;\r
+33BD;So;L;\r
+33BE;So;L;\r
+33BF;So;L;\r
+33C0;So;L;\r
+33C1;So;L;\r
+33C2;So;L;\r
+33C3;So;L;\r
+33C4;So;L;\r
+33C5;So;L;\r
+33C6;So;L;\r
+33C7;So;L;\r
+33C8;So;L;\r
+33C9;So;L;\r
+33CA;So;L;\r
+33CB;So;L;\r
+33CC;So;L;\r
+33CD;So;L;\r
+33CE;So;L;\r
+33CF;So;L;\r
+33D0;So;L;\r
+33D1;So;L;\r
+33D2;So;L;\r
+33D3;So;L;\r
+33D4;So;L;\r
+33D5;So;L;\r
+33D6;So;L;\r
+33D7;So;L;\r
+33D8;So;L;\r
+33D9;So;L;\r
+33DA;So;L;\r
+33DB;So;L;\r
+33DC;So;L;\r
+33DD;So;L;\r
+33E0;So;L;\r
+33E1;So;L;\r
+33E2;So;L;\r
+33E3;So;L;\r
+33E4;So;L;\r
+33E5;So;L;\r
+33E6;So;L;\r
+33E7;So;L;\r
+33E8;So;L;\r
+33E9;So;L;\r
+33EA;So;L;\r
+33EB;So;L;\r
+33EC;So;L;\r
+33ED;So;L;\r
+33EE;So;L;\r
+33EF;So;L;\r
+33F0;So;L;\r
+33F1;So;L;\r
+33F2;So;L;\r
+33F3;So;L;\r
+33F4;So;L;\r
+33F5;So;L;\r
+33F6;So;L;\r
+33F7;So;L;\r
+33F8;So;L;\r
+33F9;So;L;\r
+33FA;So;L;\r
+33FB;So;L;\r
+33FC;So;L;\r
+33FD;So;L;\r
+33FE;So;L;\r
+3400;Lo;L;\r
+4DB5;Lo;L;\r
+4E00;Lo;L;\r
+9FA5;Lo;L;\r
+A000;Lo;L;\r
+A001;Lo;L;\r
+A002;Lo;L;\r
+A003;Lo;L;\r
+A004;Lo;L;\r
+A005;Lo;L;\r
+A006;Lo;L;\r
+A007;Lo;L;\r
+A008;Lo;L;\r
+A009;Lo;L;\r
+A00A;Lo;L;\r
+A00B;Lo;L;\r
+A00C;Lo;L;\r
+A00D;Lo;L;\r
+A00E;Lo;L;\r
+A00F;Lo;L;\r
+A010;Lo;L;\r
+A011;Lo;L;\r
+A012;Lo;L;\r
+A013;Lo;L;\r
+A014;Lo;L;\r
+A015;Lo;L;\r
+A016;Lo;L;\r
+A017;Lo;L;\r
+A018;Lo;L;\r
+A019;Lo;L;\r
+A01A;Lo;L;\r
+A01B;Lo;L;\r
+A01C;Lo;L;\r
+A01D;Lo;L;\r
+A01E;Lo;L;\r
+A01F;Lo;L;\r
+A020;Lo;L;\r
+A021;Lo;L;\r
+A022;Lo;L;\r
+A023;Lo;L;\r
+A024;Lo;L;\r
+A025;Lo;L;\r
+A026;Lo;L;\r
+A027;Lo;L;\r
+A028;Lo;L;\r
+A029;Lo;L;\r
+A02A;Lo;L;\r
+A02B;Lo;L;\r
+A02C;Lo;L;\r
+A02D;Lo;L;\r
+A02E;Lo;L;\r
+A02F;Lo;L;\r
+A030;Lo;L;\r
+A031;Lo;L;\r
+A032;Lo;L;\r
+A033;Lo;L;\r
+A034;Lo;L;\r
+A035;Lo;L;\r
+A036;Lo;L;\r
+A037;Lo;L;\r
+A038;Lo;L;\r
+A039;Lo;L;\r
+A03A;Lo;L;\r
+A03B;Lo;L;\r
+A03C;Lo;L;\r
+A03D;Lo;L;\r
+A03E;Lo;L;\r
+A03F;Lo;L;\r
+A040;Lo;L;\r
+A041;Lo;L;\r
+A042;Lo;L;\r
+A043;Lo;L;\r
+A044;Lo;L;\r
+A045;Lo;L;\r
+A046;Lo;L;\r
+A047;Lo;L;\r
+A048;Lo;L;\r
+A049;Lo;L;\r
+A04A;Lo;L;\r
+A04B;Lo;L;\r
+A04C;Lo;L;\r
+A04D;Lo;L;\r
+A04E;Lo;L;\r
+A04F;Lo;L;\r
+A050;Lo;L;\r
+A051;Lo;L;\r
+A052;Lo;L;\r
+A053;Lo;L;\r
+A054;Lo;L;\r
+A055;Lo;L;\r
+A056;Lo;L;\r
+A057;Lo;L;\r
+A058;Lo;L;\r
+A059;Lo;L;\r
+A05A;Lo;L;\r
+A05B;Lo;L;\r
+A05C;Lo;L;\r
+A05D;Lo;L;\r
+A05E;Lo;L;\r
+A05F;Lo;L;\r
+A060;Lo;L;\r
+A061;Lo;L;\r
+A062;Lo;L;\r
+A063;Lo;L;\r
+A064;Lo;L;\r
+A065;Lo;L;\r
+A066;Lo;L;\r
+A067;Lo;L;\r
+A068;Lo;L;\r
+A069;Lo;L;\r
+A06A;Lo;L;\r
+A06B;Lo;L;\r
+A06C;Lo;L;\r
+A06D;Lo;L;\r
+A06E;Lo;L;\r
+A06F;Lo;L;\r
+A070;Lo;L;\r
+A071;Lo;L;\r
+A072;Lo;L;\r
+A073;Lo;L;\r
+A074;Lo;L;\r
+A075;Lo;L;\r
+A076;Lo;L;\r
+A077;Lo;L;\r
+A078;Lo;L;\r
+A079;Lo;L;\r
+A07A;Lo;L;\r
+A07B;Lo;L;\r
+A07C;Lo;L;\r
+A07D;Lo;L;\r
+A07E;Lo;L;\r
+A07F;Lo;L;\r
+A080;Lo;L;\r
+A081;Lo;L;\r
+A082;Lo;L;\r
+A083;Lo;L;\r
+A084;Lo;L;\r
+A085;Lo;L;\r
+A086;Lo;L;\r
+A087;Lo;L;\r
+A088;Lo;L;\r
+A089;Lo;L;\r
+A08A;Lo;L;\r
+A08B;Lo;L;\r
+A08C;Lo;L;\r
+A08D;Lo;L;\r
+A08E;Lo;L;\r
+A08F;Lo;L;\r
+A090;Lo;L;\r
+A091;Lo;L;\r
+A092;Lo;L;\r
+A093;Lo;L;\r
+A094;Lo;L;\r
+A095;Lo;L;\r
+A096;Lo;L;\r
+A097;Lo;L;\r
+A098;Lo;L;\r
+A099;Lo;L;\r
+A09A;Lo;L;\r
+A09B;Lo;L;\r
+A09C;Lo;L;\r
+A09D;Lo;L;\r
+A09E;Lo;L;\r
+A09F;Lo;L;\r
+A0A0;Lo;L;\r
+A0A1;Lo;L;\r
+A0A2;Lo;L;\r
+A0A3;Lo;L;\r
+A0A4;Lo;L;\r
+A0A5;Lo;L;\r
+A0A6;Lo;L;\r
+A0A7;Lo;L;\r
+A0A8;Lo;L;\r
+A0A9;Lo;L;\r
+A0AA;Lo;L;\r
+A0AB;Lo;L;\r
+A0AC;Lo;L;\r
+A0AD;Lo;L;\r
+A0AE;Lo;L;\r
+A0AF;Lo;L;\r
+A0B0;Lo;L;\r
+A0B1;Lo;L;\r
+A0B2;Lo;L;\r
+A0B3;Lo;L;\r
+A0B4;Lo;L;\r
+A0B5;Lo;L;\r
+A0B6;Lo;L;\r
+A0B7;Lo;L;\r
+A0B8;Lo;L;\r
+A0B9;Lo;L;\r
+A0BA;Lo;L;\r
+A0BB;Lo;L;\r
+A0BC;Lo;L;\r
+A0BD;Lo;L;\r
+A0BE;Lo;L;\r
+A0BF;Lo;L;\r
+A0C0;Lo;L;\r
+A0C1;Lo;L;\r
+A0C2;Lo;L;\r
+A0C3;Lo;L;\r
+A0C4;Lo;L;\r
+A0C5;Lo;L;\r
+A0C6;Lo;L;\r
+A0C7;Lo;L;\r
+A0C8;Lo;L;\r
+A0C9;Lo;L;\r
+A0CA;Lo;L;\r
+A0CB;Lo;L;\r
+A0CC;Lo;L;\r
+A0CD;Lo;L;\r
+A0CE;Lo;L;\r
+A0CF;Lo;L;\r
+A0D0;Lo;L;\r
+A0D1;Lo;L;\r
+A0D2;Lo;L;\r
+A0D3;Lo;L;\r
+A0D4;Lo;L;\r
+A0D5;Lo;L;\r
+A0D6;Lo;L;\r
+A0D7;Lo;L;\r
+A0D8;Lo;L;\r
+A0D9;Lo;L;\r
+A0DA;Lo;L;\r
+A0DB;Lo;L;\r
+A0DC;Lo;L;\r
+A0DD;Lo;L;\r
+A0DE;Lo;L;\r
+A0DF;Lo;L;\r
+A0E0;Lo;L;\r
+A0E1;Lo;L;\r
+A0E2;Lo;L;\r
+A0E3;Lo;L;\r
+A0E4;Lo;L;\r
+A0E5;Lo;L;\r
+A0E6;Lo;L;\r
+A0E7;Lo;L;\r
+A0E8;Lo;L;\r
+A0E9;Lo;L;\r
+A0EA;Lo;L;\r
+A0EB;Lo;L;\r
+A0EC;Lo;L;\r
+A0ED;Lo;L;\r
+A0EE;Lo;L;\r
+A0EF;Lo;L;\r
+A0F0;Lo;L;\r
+A0F1;Lo;L;\r
+A0F2;Lo;L;\r
+A0F3;Lo;L;\r
+A0F4;Lo;L;\r
+A0F5;Lo;L;\r
+A0F6;Lo;L;\r
+A0F7;Lo;L;\r
+A0F8;Lo;L;\r
+A0F9;Lo;L;\r
+A0FA;Lo;L;\r
+A0FB;Lo;L;\r
+A0FC;Lo;L;\r
+A0FD;Lo;L;\r
+A0FE;Lo;L;\r
+A0FF;Lo;L;\r
+A100;Lo;L;\r
+A101;Lo;L;\r
+A102;Lo;L;\r
+A103;Lo;L;\r
+A104;Lo;L;\r
+A105;Lo;L;\r
+A106;Lo;L;\r
+A107;Lo;L;\r
+A108;Lo;L;\r
+A109;Lo;L;\r
+A10A;Lo;L;\r
+A10B;Lo;L;\r
+A10C;Lo;L;\r
+A10D;Lo;L;\r
+A10E;Lo;L;\r
+A10F;Lo;L;\r
+A110;Lo;L;\r
+A111;Lo;L;\r
+A112;Lo;L;\r
+A113;Lo;L;\r
+A114;Lo;L;\r
+A115;Lo;L;\r
+A116;Lo;L;\r
+A117;Lo;L;\r
+A118;Lo;L;\r
+A119;Lo;L;\r
+A11A;Lo;L;\r
+A11B;Lo;L;\r
+A11C;Lo;L;\r
+A11D;Lo;L;\r
+A11E;Lo;L;\r
+A11F;Lo;L;\r
+A120;Lo;L;\r
+A121;Lo;L;\r
+A122;Lo;L;\r
+A123;Lo;L;\r
+A124;Lo;L;\r
+A125;Lo;L;\r
+A126;Lo;L;\r
+A127;Lo;L;\r
+A128;Lo;L;\r
+A129;Lo;L;\r
+A12A;Lo;L;\r
+A12B;Lo;L;\r
+A12C;Lo;L;\r
+A12D;Lo;L;\r
+A12E;Lo;L;\r
+A12F;Lo;L;\r
+A130;Lo;L;\r
+A131;Lo;L;\r
+A132;Lo;L;\r
+A133;Lo;L;\r
+A134;Lo;L;\r
+A135;Lo;L;\r
+A136;Lo;L;\r
+A137;Lo;L;\r
+A138;Lo;L;\r
+A139;Lo;L;\r
+A13A;Lo;L;\r
+A13B;Lo;L;\r
+A13C;Lo;L;\r
+A13D;Lo;L;\r
+A13E;Lo;L;\r
+A13F;Lo;L;\r
+A140;Lo;L;\r
+A141;Lo;L;\r
+A142;Lo;L;\r
+A143;Lo;L;\r
+A144;Lo;L;\r
+A145;Lo;L;\r
+A146;Lo;L;\r
+A147;Lo;L;\r
+A148;Lo;L;\r
+A149;Lo;L;\r
+A14A;Lo;L;\r
+A14B;Lo;L;\r
+A14C;Lo;L;\r
+A14D;Lo;L;\r
+A14E;Lo;L;\r
+A14F;Lo;L;\r
+A150;Lo;L;\r
+A151;Lo;L;\r
+A152;Lo;L;\r
+A153;Lo;L;\r
+A154;Lo;L;\r
+A155;Lo;L;\r
+A156;Lo;L;\r
+A157;Lo;L;\r
+A158;Lo;L;\r
+A159;Lo;L;\r
+A15A;Lo;L;\r
+A15B;Lo;L;\r
+A15C;Lo;L;\r
+A15D;Lo;L;\r
+A15E;Lo;L;\r
+A15F;Lo;L;\r
+A160;Lo;L;\r
+A161;Lo;L;\r
+A162;Lo;L;\r
+A163;Lo;L;\r
+A164;Lo;L;\r
+A165;Lo;L;\r
+A166;Lo;L;\r
+A167;Lo;L;\r
+A168;Lo;L;\r
+A169;Lo;L;\r
+A16A;Lo;L;\r
+A16B;Lo;L;\r
+A16C;Lo;L;\r
+A16D;Lo;L;\r
+A16E;Lo;L;\r
+A16F;Lo;L;\r
+A170;Lo;L;\r
+A171;Lo;L;\r
+A172;Lo;L;\r
+A173;Lo;L;\r
+A174;Lo;L;\r
+A175;Lo;L;\r
+A176;Lo;L;\r
+A177;Lo;L;\r
+A178;Lo;L;\r
+A179;Lo;L;\r
+A17A;Lo;L;\r
+A17B;Lo;L;\r
+A17C;Lo;L;\r
+A17D;Lo;L;\r
+A17E;Lo;L;\r
+A17F;Lo;L;\r
+A180;Lo;L;\r
+A181;Lo;L;\r
+A182;Lo;L;\r
+A183;Lo;L;\r
+A184;Lo;L;\r
+A185;Lo;L;\r
+A186;Lo;L;\r
+A187;Lo;L;\r
+A188;Lo;L;\r
+A189;Lo;L;\r
+A18A;Lo;L;\r
+A18B;Lo;L;\r
+A18C;Lo;L;\r
+A18D;Lo;L;\r
+A18E;Lo;L;\r
+A18F;Lo;L;\r
+A190;Lo;L;\r
+A191;Lo;L;\r
+A192;Lo;L;\r
+A193;Lo;L;\r
+A194;Lo;L;\r
+A195;Lo;L;\r
+A196;Lo;L;\r
+A197;Lo;L;\r
+A198;Lo;L;\r
+A199;Lo;L;\r
+A19A;Lo;L;\r
+A19B;Lo;L;\r
+A19C;Lo;L;\r
+A19D;Lo;L;\r
+A19E;Lo;L;\r
+A19F;Lo;L;\r
+A1A0;Lo;L;\r
+A1A1;Lo;L;\r
+A1A2;Lo;L;\r
+A1A3;Lo;L;\r
+A1A4;Lo;L;\r
+A1A5;Lo;L;\r
+A1A6;Lo;L;\r
+A1A7;Lo;L;\r
+A1A8;Lo;L;\r
+A1A9;Lo;L;\r
+A1AA;Lo;L;\r
+A1AB;Lo;L;\r
+A1AC;Lo;L;\r
+A1AD;Lo;L;\r
+A1AE;Lo;L;\r
+A1AF;Lo;L;\r
+A1B0;Lo;L;\r
+A1B1;Lo;L;\r
+A1B2;Lo;L;\r
+A1B3;Lo;L;\r
+A1B4;Lo;L;\r
+A1B5;Lo;L;\r
+A1B6;Lo;L;\r
+A1B7;Lo;L;\r
+A1B8;Lo;L;\r
+A1B9;Lo;L;\r
+A1BA;Lo;L;\r
+A1BB;Lo;L;\r
+A1BC;Lo;L;\r
+A1BD;Lo;L;\r
+A1BE;Lo;L;\r
+A1BF;Lo;L;\r
+A1C0;Lo;L;\r
+A1C1;Lo;L;\r
+A1C2;Lo;L;\r
+A1C3;Lo;L;\r
+A1C4;Lo;L;\r
+A1C5;Lo;L;\r
+A1C6;Lo;L;\r
+A1C7;Lo;L;\r
+A1C8;Lo;L;\r
+A1C9;Lo;L;\r
+A1CA;Lo;L;\r
+A1CB;Lo;L;\r
+A1CC;Lo;L;\r
+A1CD;Lo;L;\r
+A1CE;Lo;L;\r
+A1CF;Lo;L;\r
+A1D0;Lo;L;\r
+A1D1;Lo;L;\r
+A1D2;Lo;L;\r
+A1D3;Lo;L;\r
+A1D4;Lo;L;\r
+A1D5;Lo;L;\r
+A1D6;Lo;L;\r
+A1D7;Lo;L;\r
+A1D8;Lo;L;\r
+A1D9;Lo;L;\r
+A1DA;Lo;L;\r
+A1DB;Lo;L;\r
+A1DC;Lo;L;\r
+A1DD;Lo;L;\r
+A1DE;Lo;L;\r
+A1DF;Lo;L;\r
+A1E0;Lo;L;\r
+A1E1;Lo;L;\r
+A1E2;Lo;L;\r
+A1E3;Lo;L;\r
+A1E4;Lo;L;\r
+A1E5;Lo;L;\r
+A1E6;Lo;L;\r
+A1E7;Lo;L;\r
+A1E8;Lo;L;\r
+A1E9;Lo;L;\r
+A1EA;Lo;L;\r
+A1EB;Lo;L;\r
+A1EC;Lo;L;\r
+A1ED;Lo;L;\r
+A1EE;Lo;L;\r
+A1EF;Lo;L;\r
+A1F0;Lo;L;\r
+A1F1;Lo;L;\r
+A1F2;Lo;L;\r
+A1F3;Lo;L;\r
+A1F4;Lo;L;\r
+A1F5;Lo;L;\r
+A1F6;Lo;L;\r
+A1F7;Lo;L;\r
+A1F8;Lo;L;\r
+A1F9;Lo;L;\r
+A1FA;Lo;L;\r
+A1FB;Lo;L;\r
+A1FC;Lo;L;\r
+A1FD;Lo;L;\r
+A1FE;Lo;L;\r
+A1FF;Lo;L;\r
+A200;Lo;L;\r
+A201;Lo;L;\r
+A202;Lo;L;\r
+A203;Lo;L;\r
+A204;Lo;L;\r
+A205;Lo;L;\r
+A206;Lo;L;\r
+A207;Lo;L;\r
+A208;Lo;L;\r
+A209;Lo;L;\r
+A20A;Lo;L;\r
+A20B;Lo;L;\r
+A20C;Lo;L;\r
+A20D;Lo;L;\r
+A20E;Lo;L;\r
+A20F;Lo;L;\r
+A210;Lo;L;\r
+A211;Lo;L;\r
+A212;Lo;L;\r
+A213;Lo;L;\r
+A214;Lo;L;\r
+A215;Lo;L;\r
+A216;Lo;L;\r
+A217;Lo;L;\r
+A218;Lo;L;\r
+A219;Lo;L;\r
+A21A;Lo;L;\r
+A21B;Lo;L;\r
+A21C;Lo;L;\r
+A21D;Lo;L;\r
+A21E;Lo;L;\r
+A21F;Lo;L;\r
+A220;Lo;L;\r
+A221;Lo;L;\r
+A222;Lo;L;\r
+A223;Lo;L;\r
+A224;Lo;L;\r
+A225;Lo;L;\r
+A226;Lo;L;\r
+A227;Lo;L;\r
+A228;Lo;L;\r
+A229;Lo;L;\r
+A22A;Lo;L;\r
+A22B;Lo;L;\r
+A22C;Lo;L;\r
+A22D;Lo;L;\r
+A22E;Lo;L;\r
+A22F;Lo;L;\r
+A230;Lo;L;\r
+A231;Lo;L;\r
+A232;Lo;L;\r
+A233;Lo;L;\r
+A234;Lo;L;\r
+A235;Lo;L;\r
+A236;Lo;L;\r
+A237;Lo;L;\r
+A238;Lo;L;\r
+A239;Lo;L;\r
+A23A;Lo;L;\r
+A23B;Lo;L;\r
+A23C;Lo;L;\r
+A23D;Lo;L;\r
+A23E;Lo;L;\r
+A23F;Lo;L;\r
+A240;Lo;L;\r
+A241;Lo;L;\r
+A242;Lo;L;\r
+A243;Lo;L;\r
+A244;Lo;L;\r
+A245;Lo;L;\r
+A246;Lo;L;\r
+A247;Lo;L;\r
+A248;Lo;L;\r
+A249;Lo;L;\r
+A24A;Lo;L;\r
+A24B;Lo;L;\r
+A24C;Lo;L;\r
+A24D;Lo;L;\r
+A24E;Lo;L;\r
+A24F;Lo;L;\r
+A250;Lo;L;\r
+A251;Lo;L;\r
+A252;Lo;L;\r
+A253;Lo;L;\r
+A254;Lo;L;\r
+A255;Lo;L;\r
+A256;Lo;L;\r
+A257;Lo;L;\r
+A258;Lo;L;\r
+A259;Lo;L;\r
+A25A;Lo;L;\r
+A25B;Lo;L;\r
+A25C;Lo;L;\r
+A25D;Lo;L;\r
+A25E;Lo;L;\r
+A25F;Lo;L;\r
+A260;Lo;L;\r
+A261;Lo;L;\r
+A262;Lo;L;\r
+A263;Lo;L;\r
+A264;Lo;L;\r
+A265;Lo;L;\r
+A266;Lo;L;\r
+A267;Lo;L;\r
+A268;Lo;L;\r
+A269;Lo;L;\r
+A26A;Lo;L;\r
+A26B;Lo;L;\r
+A26C;Lo;L;\r
+A26D;Lo;L;\r
+A26E;Lo;L;\r
+A26F;Lo;L;\r
+A270;Lo;L;\r
+A271;Lo;L;\r
+A272;Lo;L;\r
+A273;Lo;L;\r
+A274;Lo;L;\r
+A275;Lo;L;\r
+A276;Lo;L;\r
+A277;Lo;L;\r
+A278;Lo;L;\r
+A279;Lo;L;\r
+A27A;Lo;L;\r
+A27B;Lo;L;\r
+A27C;Lo;L;\r
+A27D;Lo;L;\r
+A27E;Lo;L;\r
+A27F;Lo;L;\r
+A280;Lo;L;\r
+A281;Lo;L;\r
+A282;Lo;L;\r
+A283;Lo;L;\r
+A284;Lo;L;\r
+A285;Lo;L;\r
+A286;Lo;L;\r
+A287;Lo;L;\r
+A288;Lo;L;\r
+A289;Lo;L;\r
+A28A;Lo;L;\r
+A28B;Lo;L;\r
+A28C;Lo;L;\r
+A28D;Lo;L;\r
+A28E;Lo;L;\r
+A28F;Lo;L;\r
+A290;Lo;L;\r
+A291;Lo;L;\r
+A292;Lo;L;\r
+A293;Lo;L;\r
+A294;Lo;L;\r
+A295;Lo;L;\r
+A296;Lo;L;\r
+A297;Lo;L;\r
+A298;Lo;L;\r
+A299;Lo;L;\r
+A29A;Lo;L;\r
+A29B;Lo;L;\r
+A29C;Lo;L;\r
+A29D;Lo;L;\r
+A29E;Lo;L;\r
+A29F;Lo;L;\r
+A2A0;Lo;L;\r
+A2A1;Lo;L;\r
+A2A2;Lo;L;\r
+A2A3;Lo;L;\r
+A2A4;Lo;L;\r
+A2A5;Lo;L;\r
+A2A6;Lo;L;\r
+A2A7;Lo;L;\r
+A2A8;Lo;L;\r
+A2A9;Lo;L;\r
+A2AA;Lo;L;\r
+A2AB;Lo;L;\r
+A2AC;Lo;L;\r
+A2AD;Lo;L;\r
+A2AE;Lo;L;\r
+A2AF;Lo;L;\r
+A2B0;Lo;L;\r
+A2B1;Lo;L;\r
+A2B2;Lo;L;\r
+A2B3;Lo;L;\r
+A2B4;Lo;L;\r
+A2B5;Lo;L;\r
+A2B6;Lo;L;\r
+A2B7;Lo;L;\r
+A2B8;Lo;L;\r
+A2B9;Lo;L;\r
+A2BA;Lo;L;\r
+A2BB;Lo;L;\r
+A2BC;Lo;L;\r
+A2BD;Lo;L;\r
+A2BE;Lo;L;\r
+A2BF;Lo;L;\r
+A2C0;Lo;L;\r
+A2C1;Lo;L;\r
+A2C2;Lo;L;\r
+A2C3;Lo;L;\r
+A2C4;Lo;L;\r
+A2C5;Lo;L;\r
+A2C6;Lo;L;\r
+A2C7;Lo;L;\r
+A2C8;Lo;L;\r
+A2C9;Lo;L;\r
+A2CA;Lo;L;\r
+A2CB;Lo;L;\r
+A2CC;Lo;L;\r
+A2CD;Lo;L;\r
+A2CE;Lo;L;\r
+A2CF;Lo;L;\r
+A2D0;Lo;L;\r
+A2D1;Lo;L;\r
+A2D2;Lo;L;\r
+A2D3;Lo;L;\r
+A2D4;Lo;L;\r
+A2D5;Lo;L;\r
+A2D6;Lo;L;\r
+A2D7;Lo;L;\r
+A2D8;Lo;L;\r
+A2D9;Lo;L;\r
+A2DA;Lo;L;\r
+A2DB;Lo;L;\r
+A2DC;Lo;L;\r
+A2DD;Lo;L;\r
+A2DE;Lo;L;\r
+A2DF;Lo;L;\r
+A2E0;Lo;L;\r
+A2E1;Lo;L;\r
+A2E2;Lo;L;\r
+A2E3;Lo;L;\r
+A2E4;Lo;L;\r
+A2E5;Lo;L;\r
+A2E6;Lo;L;\r
+A2E7;Lo;L;\r
+A2E8;Lo;L;\r
+A2E9;Lo;L;\r
+A2EA;Lo;L;\r
+A2EB;Lo;L;\r
+A2EC;Lo;L;\r
+A2ED;Lo;L;\r
+A2EE;Lo;L;\r
+A2EF;Lo;L;\r
+A2F0;Lo;L;\r
+A2F1;Lo;L;\r
+A2F2;Lo;L;\r
+A2F3;Lo;L;\r
+A2F4;Lo;L;\r
+A2F5;Lo;L;\r
+A2F6;Lo;L;\r
+A2F7;Lo;L;\r
+A2F8;Lo;L;\r
+A2F9;Lo;L;\r
+A2FA;Lo;L;\r
+A2FB;Lo;L;\r
+A2FC;Lo;L;\r
+A2FD;Lo;L;\r
+A2FE;Lo;L;\r
+A2FF;Lo;L;\r
+A300;Lo;L;\r
+A301;Lo;L;\r
+A302;Lo;L;\r
+A303;Lo;L;\r
+A304;Lo;L;\r
+A305;Lo;L;\r
+A306;Lo;L;\r
+A307;Lo;L;\r
+A308;Lo;L;\r
+A309;Lo;L;\r
+A30A;Lo;L;\r
+A30B;Lo;L;\r
+A30C;Lo;L;\r
+A30D;Lo;L;\r
+A30E;Lo;L;\r
+A30F;Lo;L;\r
+A310;Lo;L;\r
+A311;Lo;L;\r
+A312;Lo;L;\r
+A313;Lo;L;\r
+A314;Lo;L;\r
+A315;Lo;L;\r
+A316;Lo;L;\r
+A317;Lo;L;\r
+A318;Lo;L;\r
+A319;Lo;L;\r
+A31A;Lo;L;\r
+A31B;Lo;L;\r
+A31C;Lo;L;\r
+A31D;Lo;L;\r
+A31E;Lo;L;\r
+A31F;Lo;L;\r
+A320;Lo;L;\r
+A321;Lo;L;\r
+A322;Lo;L;\r
+A323;Lo;L;\r
+A324;Lo;L;\r
+A325;Lo;L;\r
+A326;Lo;L;\r
+A327;Lo;L;\r
+A328;Lo;L;\r
+A329;Lo;L;\r
+A32A;Lo;L;\r
+A32B;Lo;L;\r
+A32C;Lo;L;\r
+A32D;Lo;L;\r
+A32E;Lo;L;\r
+A32F;Lo;L;\r
+A330;Lo;L;\r
+A331;Lo;L;\r
+A332;Lo;L;\r
+A333;Lo;L;\r
+A334;Lo;L;\r
+A335;Lo;L;\r
+A336;Lo;L;\r
+A337;Lo;L;\r
+A338;Lo;L;\r
+A339;Lo;L;\r
+A33A;Lo;L;\r
+A33B;Lo;L;\r
+A33C;Lo;L;\r
+A33D;Lo;L;\r
+A33E;Lo;L;\r
+A33F;Lo;L;\r
+A340;Lo;L;\r
+A341;Lo;L;\r
+A342;Lo;L;\r
+A343;Lo;L;\r
+A344;Lo;L;\r
+A345;Lo;L;\r
+A346;Lo;L;\r
+A347;Lo;L;\r
+A348;Lo;L;\r
+A349;Lo;L;\r
+A34A;Lo;L;\r
+A34B;Lo;L;\r
+A34C;Lo;L;\r
+A34D;Lo;L;\r
+A34E;Lo;L;\r
+A34F;Lo;L;\r
+A350;Lo;L;\r
+A351;Lo;L;\r
+A352;Lo;L;\r
+A353;Lo;L;\r
+A354;Lo;L;\r
+A355;Lo;L;\r
+A356;Lo;L;\r
+A357;Lo;L;\r
+A358;Lo;L;\r
+A359;Lo;L;\r
+A35A;Lo;L;\r
+A35B;Lo;L;\r
+A35C;Lo;L;\r
+A35D;Lo;L;\r
+A35E;Lo;L;\r
+A35F;Lo;L;\r
+A360;Lo;L;\r
+A361;Lo;L;\r
+A362;Lo;L;\r
+A363;Lo;L;\r
+A364;Lo;L;\r
+A365;Lo;L;\r
+A366;Lo;L;\r
+A367;Lo;L;\r
+A368;Lo;L;\r
+A369;Lo;L;\r
+A36A;Lo;L;\r
+A36B;Lo;L;\r
+A36C;Lo;L;\r
+A36D;Lo;L;\r
+A36E;Lo;L;\r
+A36F;Lo;L;\r
+A370;Lo;L;\r
+A371;Lo;L;\r
+A372;Lo;L;\r
+A373;Lo;L;\r
+A374;Lo;L;\r
+A375;Lo;L;\r
+A376;Lo;L;\r
+A377;Lo;L;\r
+A378;Lo;L;\r
+A379;Lo;L;\r
+A37A;Lo;L;\r
+A37B;Lo;L;\r
+A37C;Lo;L;\r
+A37D;Lo;L;\r
+A37E;Lo;L;\r
+A37F;Lo;L;\r
+A380;Lo;L;\r
+A381;Lo;L;\r
+A382;Lo;L;\r
+A383;Lo;L;\r
+A384;Lo;L;\r
+A385;Lo;L;\r
+A386;Lo;L;\r
+A387;Lo;L;\r
+A388;Lo;L;\r
+A389;Lo;L;\r
+A38A;Lo;L;\r
+A38B;Lo;L;\r
+A38C;Lo;L;\r
+A38D;Lo;L;\r
+A38E;Lo;L;\r
+A38F;Lo;L;\r
+A390;Lo;L;\r
+A391;Lo;L;\r
+A392;Lo;L;\r
+A393;Lo;L;\r
+A394;Lo;L;\r
+A395;Lo;L;\r
+A396;Lo;L;\r
+A397;Lo;L;\r
+A398;Lo;L;\r
+A399;Lo;L;\r
+A39A;Lo;L;\r
+A39B;Lo;L;\r
+A39C;Lo;L;\r
+A39D;Lo;L;\r
+A39E;Lo;L;\r
+A39F;Lo;L;\r
+A3A0;Lo;L;\r
+A3A1;Lo;L;\r
+A3A2;Lo;L;\r
+A3A3;Lo;L;\r
+A3A4;Lo;L;\r
+A3A5;Lo;L;\r
+A3A6;Lo;L;\r
+A3A7;Lo;L;\r
+A3A8;Lo;L;\r
+A3A9;Lo;L;\r
+A3AA;Lo;L;\r
+A3AB;Lo;L;\r
+A3AC;Lo;L;\r
+A3AD;Lo;L;\r
+A3AE;Lo;L;\r
+A3AF;Lo;L;\r
+A3B0;Lo;L;\r
+A3B1;Lo;L;\r
+A3B2;Lo;L;\r
+A3B3;Lo;L;\r
+A3B4;Lo;L;\r
+A3B5;Lo;L;\r
+A3B6;Lo;L;\r
+A3B7;Lo;L;\r
+A3B8;Lo;L;\r
+A3B9;Lo;L;\r
+A3BA;Lo;L;\r
+A3BB;Lo;L;\r
+A3BC;Lo;L;\r
+A3BD;Lo;L;\r
+A3BE;Lo;L;\r
+A3BF;Lo;L;\r
+A3C0;Lo;L;\r
+A3C1;Lo;L;\r
+A3C2;Lo;L;\r
+A3C3;Lo;L;\r
+A3C4;Lo;L;\r
+A3C5;Lo;L;\r
+A3C6;Lo;L;\r
+A3C7;Lo;L;\r
+A3C8;Lo;L;\r
+A3C9;Lo;L;\r
+A3CA;Lo;L;\r
+A3CB;Lo;L;\r
+A3CC;Lo;L;\r
+A3CD;Lo;L;\r
+A3CE;Lo;L;\r
+A3CF;Lo;L;\r
+A3D0;Lo;L;\r
+A3D1;Lo;L;\r
+A3D2;Lo;L;\r
+A3D3;Lo;L;\r
+A3D4;Lo;L;\r
+A3D5;Lo;L;\r
+A3D6;Lo;L;\r
+A3D7;Lo;L;\r
+A3D8;Lo;L;\r
+A3D9;Lo;L;\r
+A3DA;Lo;L;\r
+A3DB;Lo;L;\r
+A3DC;Lo;L;\r
+A3DD;Lo;L;\r
+A3DE;Lo;L;\r
+A3DF;Lo;L;\r
+A3E0;Lo;L;\r
+A3E1;Lo;L;\r
+A3E2;Lo;L;\r
+A3E3;Lo;L;\r
+A3E4;Lo;L;\r
+A3E5;Lo;L;\r
+A3E6;Lo;L;\r
+A3E7;Lo;L;\r
+A3E8;Lo;L;\r
+A3E9;Lo;L;\r
+A3EA;Lo;L;\r
+A3EB;Lo;L;\r
+A3EC;Lo;L;\r
+A3ED;Lo;L;\r
+A3EE;Lo;L;\r
+A3EF;Lo;L;\r
+A3F0;Lo;L;\r
+A3F1;Lo;L;\r
+A3F2;Lo;L;\r
+A3F3;Lo;L;\r
+A3F4;Lo;L;\r
+A3F5;Lo;L;\r
+A3F6;Lo;L;\r
+A3F7;Lo;L;\r
+A3F8;Lo;L;\r
+A3F9;Lo;L;\r
+A3FA;Lo;L;\r
+A3FB;Lo;L;\r
+A3FC;Lo;L;\r
+A3FD;Lo;L;\r
+A3FE;Lo;L;\r
+A3FF;Lo;L;\r
+A400;Lo;L;\r
+A401;Lo;L;\r
+A402;Lo;L;\r
+A403;Lo;L;\r
+A404;Lo;L;\r
+A405;Lo;L;\r
+A406;Lo;L;\r
+A407;Lo;L;\r
+A408;Lo;L;\r
+A409;Lo;L;\r
+A40A;Lo;L;\r
+A40B;Lo;L;\r
+A40C;Lo;L;\r
+A40D;Lo;L;\r
+A40E;Lo;L;\r
+A40F;Lo;L;\r
+A410;Lo;L;\r
+A411;Lo;L;\r
+A412;Lo;L;\r
+A413;Lo;L;\r
+A414;Lo;L;\r
+A415;Lo;L;\r
+A416;Lo;L;\r
+A417;Lo;L;\r
+A418;Lo;L;\r
+A419;Lo;L;\r
+A41A;Lo;L;\r
+A41B;Lo;L;\r
+A41C;Lo;L;\r
+A41D;Lo;L;\r
+A41E;Lo;L;\r
+A41F;Lo;L;\r
+A420;Lo;L;\r
+A421;Lo;L;\r
+A422;Lo;L;\r
+A423;Lo;L;\r
+A424;Lo;L;\r
+A425;Lo;L;\r
+A426;Lo;L;\r
+A427;Lo;L;\r
+A428;Lo;L;\r
+A429;Lo;L;\r
+A42A;Lo;L;\r
+A42B;Lo;L;\r
+A42C;Lo;L;\r
+A42D;Lo;L;\r
+A42E;Lo;L;\r
+A42F;Lo;L;\r
+A430;Lo;L;\r
+A431;Lo;L;\r
+A432;Lo;L;\r
+A433;Lo;L;\r
+A434;Lo;L;\r
+A435;Lo;L;\r
+A436;Lo;L;\r
+A437;Lo;L;\r
+A438;Lo;L;\r
+A439;Lo;L;\r
+A43A;Lo;L;\r
+A43B;Lo;L;\r
+A43C;Lo;L;\r
+A43D;Lo;L;\r
+A43E;Lo;L;\r
+A43F;Lo;L;\r
+A440;Lo;L;\r
+A441;Lo;L;\r
+A442;Lo;L;\r
+A443;Lo;L;\r
+A444;Lo;L;\r
+A445;Lo;L;\r
+A446;Lo;L;\r
+A447;Lo;L;\r
+A448;Lo;L;\r
+A449;Lo;L;\r
+A44A;Lo;L;\r
+A44B;Lo;L;\r
+A44C;Lo;L;\r
+A44D;Lo;L;\r
+A44E;Lo;L;\r
+A44F;Lo;L;\r
+A450;Lo;L;\r
+A451;Lo;L;\r
+A452;Lo;L;\r
+A453;Lo;L;\r
+A454;Lo;L;\r
+A455;Lo;L;\r
+A456;Lo;L;\r
+A457;Lo;L;\r
+A458;Lo;L;\r
+A459;Lo;L;\r
+A45A;Lo;L;\r
+A45B;Lo;L;\r
+A45C;Lo;L;\r
+A45D;Lo;L;\r
+A45E;Lo;L;\r
+A45F;Lo;L;\r
+A460;Lo;L;\r
+A461;Lo;L;\r
+A462;Lo;L;\r
+A463;Lo;L;\r
+A464;Lo;L;\r
+A465;Lo;L;\r
+A466;Lo;L;\r
+A467;Lo;L;\r
+A468;Lo;L;\r
+A469;Lo;L;\r
+A46A;Lo;L;\r
+A46B;Lo;L;\r
+A46C;Lo;L;\r
+A46D;Lo;L;\r
+A46E;Lo;L;\r
+A46F;Lo;L;\r
+A470;Lo;L;\r
+A471;Lo;L;\r
+A472;Lo;L;\r
+A473;Lo;L;\r
+A474;Lo;L;\r
+A475;Lo;L;\r
+A476;Lo;L;\r
+A477;Lo;L;\r
+A478;Lo;L;\r
+A479;Lo;L;\r
+A47A;Lo;L;\r
+A47B;Lo;L;\r
+A47C;Lo;L;\r
+A47D;Lo;L;\r
+A47E;Lo;L;\r
+A47F;Lo;L;\r
+A480;Lo;L;\r
+A481;Lo;L;\r
+A482;Lo;L;\r
+A483;Lo;L;\r
+A484;Lo;L;\r
+A485;Lo;L;\r
+A486;Lo;L;\r
+A487;Lo;L;\r
+A488;Lo;L;\r
+A489;Lo;L;\r
+A48A;Lo;L;\r
+A48B;Lo;L;\r
+A48C;Lo;L;\r
+A490;So;ON;\r
+A491;So;ON;\r
+A492;So;ON;\r
+A493;So;ON;\r
+A494;So;ON;\r
+A495;So;ON;\r
+A496;So;ON;\r
+A497;So;ON;\r
+A498;So;ON;\r
+A499;So;ON;\r
+A49A;So;ON;\r
+A49B;So;ON;\r
+A49C;So;ON;\r
+A49D;So;ON;\r
+A49E;So;ON;\r
+A49F;So;ON;\r
+A4A0;So;ON;\r
+A4A1;So;ON;\r
+A4A4;So;ON;\r
+A4A5;So;ON;\r
+A4A6;So;ON;\r
+A4A7;So;ON;\r
+A4A8;So;ON;\r
+A4A9;So;ON;\r
+A4AA;So;ON;\r
+A4AB;So;ON;\r
+A4AC;So;ON;\r
+A4AD;So;ON;\r
+A4AE;So;ON;\r
+A4AF;So;ON;\r
+A4B0;So;ON;\r
+A4B1;So;ON;\r
+A4B2;So;ON;\r
+A4B3;So;ON;\r
+A4B5;So;ON;\r
+A4B6;So;ON;\r
+A4B7;So;ON;\r
+A4B8;So;ON;\r
+A4B9;So;ON;\r
+A4BA;So;ON;\r
+A4BB;So;ON;\r
+A4BC;So;ON;\r
+A4BD;So;ON;\r
+A4BE;So;ON;\r
+A4BF;So;ON;\r
+A4C0;So;ON;\r
+A4C2;So;ON;\r
+A4C3;So;ON;\r
+A4C4;So;ON;\r
+A4C6;So;ON;\r
+AC00;Lo;L;\r
+D7A3;Lo;L;\r
+D800;Cs;L;\r
+DB7F;Cs;L;\r
+DB80;Cs;L;\r
+DBFF;Cs;L;\r
+DC00;Cs;L;\r
+DFFF;Cs;L;\r
+E000;Co;L;\r
+F8FF;Co;L;\r
+F900;Lo;L;\r
+F901;Lo;L;\r
+F902;Lo;L;\r
+F903;Lo;L;\r
+F904;Lo;L;\r
+F905;Lo;L;\r
+F906;Lo;L;\r
+F907;Lo;L;\r
+F908;Lo;L;\r
+F909;Lo;L;\r
+F90A;Lo;L;\r
+F90B;Lo;L;\r
+F90C;Lo;L;\r
+F90D;Lo;L;\r
+F90E;Lo;L;\r
+F90F;Lo;L;\r
+F910;Lo;L;\r
+F911;Lo;L;\r
+F912;Lo;L;\r
+F913;Lo;L;\r
+F914;Lo;L;\r
+F915;Lo;L;\r
+F916;Lo;L;\r
+F917;Lo;L;\r
+F918;Lo;L;\r
+F919;Lo;L;\r
+F91A;Lo;L;\r
+F91B;Lo;L;\r
+F91C;Lo;L;\r
+F91D;Lo;L;\r
+F91E;Lo;L;\r
+F91F;Lo;L;\r
+F920;Lo;L;\r
+F921;Lo;L;\r
+F922;Lo;L;\r
+F923;Lo;L;\r
+F924;Lo;L;\r
+F925;Lo;L;\r
+F926;Lo;L;\r
+F927;Lo;L;\r
+F928;Lo;L;\r
+F929;Lo;L;\r
+F92A;Lo;L;\r
+F92B;Lo;L;\r
+F92C;Lo;L;\r
+F92D;Lo;L;\r
+F92E;Lo;L;\r
+F92F;Lo;L;\r
+F930;Lo;L;\r
+F931;Lo;L;\r
+F932;Lo;L;\r
+F933;Lo;L;\r
+F934;Lo;L;\r
+F935;Lo;L;\r
+F936;Lo;L;\r
+F937;Lo;L;\r
+F938;Lo;L;\r
+F939;Lo;L;\r
+F93A;Lo;L;\r
+F93B;Lo;L;\r
+F93C;Lo;L;\r
+F93D;Lo;L;\r
+F93E;Lo;L;\r
+F93F;Lo;L;\r
+F940;Lo;L;\r
+F941;Lo;L;\r
+F942;Lo;L;\r
+F943;Lo;L;\r
+F944;Lo;L;\r
+F945;Lo;L;\r
+F946;Lo;L;\r
+F947;Lo;L;\r
+F948;Lo;L;\r
+F949;Lo;L;\r
+F94A;Lo;L;\r
+F94B;Lo;L;\r
+F94C;Lo;L;\r
+F94D;Lo;L;\r
+F94E;Lo;L;\r
+F94F;Lo;L;\r
+F950;Lo;L;\r
+F951;Lo;L;\r
+F952;Lo;L;\r
+F953;Lo;L;\r
+F954;Lo;L;\r
+F955;Lo;L;\r
+F956;Lo;L;\r
+F957;Lo;L;\r
+F958;Lo;L;\r
+F959;Lo;L;\r
+F95A;Lo;L;\r
+F95B;Lo;L;\r
+F95C;Lo;L;\r
+F95D;Lo;L;\r
+F95E;Lo;L;\r
+F95F;Lo;L;\r
+F960;Lo;L;\r
+F961;Lo;L;\r
+F962;Lo;L;\r
+F963;Lo;L;\r
+F964;Lo;L;\r
+F965;Lo;L;\r
+F966;Lo;L;\r
+F967;Lo;L;\r
+F968;Lo;L;\r
+F969;Lo;L;\r
+F96A;Lo;L;\r
+F96B;Lo;L;\r
+F96C;Lo;L;\r
+F96D;Lo;L;\r
+F96E;Lo;L;\r
+F96F;Lo;L;\r
+F970;Lo;L;\r
+F971;Lo;L;\r
+F972;Lo;L;\r
+F973;Lo;L;\r
+F974;Lo;L;\r
+F975;Lo;L;\r
+F976;Lo;L;\r
+F977;Lo;L;\r
+F978;Lo;L;\r
+F979;Lo;L;\r
+F97A;Lo;L;\r
+F97B;Lo;L;\r
+F97C;Lo;L;\r
+F97D;Lo;L;\r
+F97E;Lo;L;\r
+F97F;Lo;L;\r
+F980;Lo;L;\r
+F981;Lo;L;\r
+F982;Lo;L;\r
+F983;Lo;L;\r
+F984;Lo;L;\r
+F985;Lo;L;\r
+F986;Lo;L;\r
+F987;Lo;L;\r
+F988;Lo;L;\r
+F989;Lo;L;\r
+F98A;Lo;L;\r
+F98B;Lo;L;\r
+F98C;Lo;L;\r
+F98D;Lo;L;\r
+F98E;Lo;L;\r
+F98F;Lo;L;\r
+F990;Lo;L;\r
+F991;Lo;L;\r
+F992;Lo;L;\r
+F993;Lo;L;\r
+F994;Lo;L;\r
+F995;Lo;L;\r
+F996;Lo;L;\r
+F997;Lo;L;\r
+F998;Lo;L;\r
+F999;Lo;L;\r
+F99A;Lo;L;\r
+F99B;Lo;L;\r
+F99C;Lo;L;\r
+F99D;Lo;L;\r
+F99E;Lo;L;\r
+F99F;Lo;L;\r
+F9A0;Lo;L;\r
+F9A1;Lo;L;\r
+F9A2;Lo;L;\r
+F9A3;Lo;L;\r
+F9A4;Lo;L;\r
+F9A5;Lo;L;\r
+F9A6;Lo;L;\r
+F9A7;Lo;L;\r
+F9A8;Lo;L;\r
+F9A9;Lo;L;\r
+F9AA;Lo;L;\r
+F9AB;Lo;L;\r
+F9AC;Lo;L;\r
+F9AD;Lo;L;\r
+F9AE;Lo;L;\r
+F9AF;Lo;L;\r
+F9B0;Lo;L;\r
+F9B1;Lo;L;\r
+F9B2;Lo;L;\r
+F9B3;Lo;L;\r
+F9B4;Lo;L;\r
+F9B5;Lo;L;\r
+F9B6;Lo;L;\r
+F9B7;Lo;L;\r
+F9B8;Lo;L;\r
+F9B9;Lo;L;\r
+F9BA;Lo;L;\r
+F9BB;Lo;L;\r
+F9BC;Lo;L;\r
+F9BD;Lo;L;\r
+F9BE;Lo;L;\r
+F9BF;Lo;L;\r
+F9C0;Lo;L;\r
+F9C1;Lo;L;\r
+F9C2;Lo;L;\r
+F9C3;Lo;L;\r
+F9C4;Lo;L;\r
+F9C5;Lo;L;\r
+F9C6;Lo;L;\r
+F9C7;Lo;L;\r
+F9C8;Lo;L;\r
+F9C9;Lo;L;\r
+F9CA;Lo;L;\r
+F9CB;Lo;L;\r
+F9CC;Lo;L;\r
+F9CD;Lo;L;\r
+F9CE;Lo;L;\r
+F9CF;Lo;L;\r
+F9D0;Lo;L;\r
+F9D1;Lo;L;\r
+F9D2;Lo;L;\r
+F9D3;Lo;L;\r
+F9D4;Lo;L;\r
+F9D5;Lo;L;\r
+F9D6;Lo;L;\r
+F9D7;Lo;L;\r
+F9D8;Lo;L;\r
+F9D9;Lo;L;\r
+F9DA;Lo;L;\r
+F9DB;Lo;L;\r
+F9DC;Lo;L;\r
+F9DD;Lo;L;\r
+F9DE;Lo;L;\r
+F9DF;Lo;L;\r
+F9E0;Lo;L;\r
+F9E1;Lo;L;\r
+F9E2;Lo;L;\r
+F9E3;Lo;L;\r
+F9E4;Lo;L;\r
+F9E5;Lo;L;\r
+F9E6;Lo;L;\r
+F9E7;Lo;L;\r
+F9E8;Lo;L;\r
+F9E9;Lo;L;\r
+F9EA;Lo;L;\r
+F9EB;Lo;L;\r
+F9EC;Lo;L;\r
+F9ED;Lo;L;\r
+F9EE;Lo;L;\r
+F9EF;Lo;L;\r
+F9F0;Lo;L;\r
+F9F1;Lo;L;\r
+F9F2;Lo;L;\r
+F9F3;Lo;L;\r
+F9F4;Lo;L;\r
+F9F5;Lo;L;\r
+F9F6;Lo;L;\r
+F9F7;Lo;L;\r
+F9F8;Lo;L;\r
+F9F9;Lo;L;\r
+F9FA;Lo;L;\r
+F9FB;Lo;L;\r
+F9FC;Lo;L;\r
+F9FD;Lo;L;\r
+F9FE;Lo;L;\r
+F9FF;Lo;L;\r
+FA00;Lo;L;\r
+FA01;Lo;L;\r
+FA02;Lo;L;\r
+FA03;Lo;L;\r
+FA04;Lo;L;\r
+FA05;Lo;L;\r
+FA06;Lo;L;\r
+FA07;Lo;L;\r
+FA08;Lo;L;\r
+FA09;Lo;L;\r
+FA0A;Lo;L;\r
+FA0B;Lo;L;\r
+FA0C;Lo;L;\r
+FA0D;Lo;L;\r
+FA0E;Lo;L;\r
+FA0F;Lo;L;\r
+FA10;Lo;L;\r
+FA11;Lo;L;\r
+FA12;Lo;L;\r
+FA13;Lo;L;\r
+FA14;Lo;L;\r
+FA15;Lo;L;\r
+FA16;Lo;L;\r
+FA17;Lo;L;\r
+FA18;Lo;L;\r
+FA19;Lo;L;\r
+FA1A;Lo;L;\r
+FA1B;Lo;L;\r
+FA1C;Lo;L;\r
+FA1D;Lo;L;\r
+FA1E;Lo;L;\r
+FA1F;Lo;L;\r
+FA20;Lo;L;\r
+FA21;Lo;L;\r
+FA22;Lo;L;\r
+FA23;Lo;L;\r
+FA24;Lo;L;\r
+FA25;Lo;L;\r
+FA26;Lo;L;\r
+FA27;Lo;L;\r
+FA28;Lo;L;\r
+FA29;Lo;L;\r
+FA2A;Lo;L;\r
+FA2B;Lo;L;\r
+FA2C;Lo;L;\r
+FA2D;Lo;L;\r
+FB00;Ll;L;\r
+FB01;Ll;L;\r
+FB02;Ll;L;\r
+FB03;Ll;L;\r
+FB04;Ll;L;\r
+FB05;Ll;L;\r
+FB06;Ll;L;\r
+FB13;Ll;L;\r
+FB14;Ll;L;\r
+FB15;Ll;L;\r
+FB16;Ll;L;\r
+FB17;Ll;L;\r
+FB1D;Lo;R;\r
+FB1E;Mn;NSM;\r
+FB1F;Lo;R;\r
+FB20;Lo;R;\r
+FB21;Lo;R;\r
+FB22;Lo;R;\r
+FB23;Lo;R;\r
+FB24;Lo;R;\r
+FB25;Lo;R;\r
+FB26;Lo;R;\r
+FB27;Lo;R;\r
+FB28;Lo;R;\r
+FB29;Sm;ET;\r
+FB2A;Lo;R;\r
+FB2B;Lo;R;\r
+FB2C;Lo;R;\r
+FB2D;Lo;R;\r
+FB2E;Lo;R;\r
+FB2F;Lo;R;\r
+FB30;Lo;R;\r
+FB31;Lo;R;\r
+FB32;Lo;R;\r
+FB33;Lo;R;\r
+FB34;Lo;R;\r
+FB35;Lo;R;\r
+FB36;Lo;R;\r
+FB38;Lo;R;\r
+FB39;Lo;R;\r
+FB3A;Lo;R;\r
+FB3B;Lo;R;\r
+FB3C;Lo;R;\r
+FB3E;Lo;R;\r
+FB40;Lo;R;\r
+FB41;Lo;R;\r
+FB43;Lo;R;\r
+FB44;Lo;R;\r
+FB46;Lo;R;\r
+FB47;Lo;R;\r
+FB48;Lo;R;\r
+FB49;Lo;R;\r
+FB4A;Lo;R;\r
+FB4B;Lo;R;\r
+FB4C;Lo;R;\r
+FB4D;Lo;R;\r
+FB4E;Lo;R;\r
+FB4F;Lo;R;\r
+FB50;Lo;AL;\r
+FB51;Lo;AL;\r
+FB52;Lo;AL;\r
+FB53;Lo;AL;\r
+FB54;Lo;AL;\r
+FB55;Lo;AL;\r
+FB56;Lo;AL;\r
+FB57;Lo;AL;\r
+FB58;Lo;AL;\r
+FB59;Lo;AL;\r
+FB5A;Lo;AL;\r
+FB5B;Lo;AL;\r
+FB5C;Lo;AL;\r
+FB5D;Lo;AL;\r
+FB5E;Lo;AL;\r
+FB5F;Lo;AL;\r
+FB60;Lo;AL;\r
+FB61;Lo;AL;\r
+FB62;Lo;AL;\r
+FB63;Lo;AL;\r
+FB64;Lo;AL;\r
+FB65;Lo;AL;\r
+FB66;Lo;AL;\r
+FB67;Lo;AL;\r
+FB68;Lo;AL;\r
+FB69;Lo;AL;\r
+FB6A;Lo;AL;\r
+FB6B;Lo;AL;\r
+FB6C;Lo;AL;\r
+FB6D;Lo;AL;\r
+FB6E;Lo;AL;\r
+FB6F;Lo;AL;\r
+FB70;Lo;AL;\r
+FB71;Lo;AL;\r
+FB72;Lo;AL;\r
+FB73;Lo;AL;\r
+FB74;Lo;AL;\r
+FB75;Lo;AL;\r
+FB76;Lo;AL;\r
+FB77;Lo;AL;\r
+FB78;Lo;AL;\r
+FB79;Lo;AL;\r
+FB7A;Lo;AL;\r
+FB7B;Lo;AL;\r
+FB7C;Lo;AL;\r
+FB7D;Lo;AL;\r
+FB7E;Lo;AL;\r
+FB7F;Lo;AL;\r
+FB80;Lo;AL;\r
+FB81;Lo;AL;\r
+FB82;Lo;AL;\r
+FB83;Lo;AL;\r
+FB84;Lo;AL;\r
+FB85;Lo;AL;\r
+FB86;Lo;AL;\r
+FB87;Lo;AL;\r
+FB88;Lo;AL;\r
+FB89;Lo;AL;\r
+FB8A;Lo;AL;\r
+FB8B;Lo;AL;\r
+FB8C;Lo;AL;\r
+FB8D;Lo;AL;\r
+FB8E;Lo;AL;\r
+FB8F;Lo;AL;\r
+FB90;Lo;AL;\r
+FB91;Lo;AL;\r
+FB92;Lo;AL;\r
+FB93;Lo;AL;\r
+FB94;Lo;AL;\r
+FB95;Lo;AL;\r
+FB96;Lo;AL;\r
+FB97;Lo;AL;\r
+FB98;Lo;AL;\r
+FB99;Lo;AL;\r
+FB9A;Lo;AL;\r
+FB9B;Lo;AL;\r
+FB9C;Lo;AL;\r
+FB9D;Lo;AL;\r
+FB9E;Lo;AL;\r
+FB9F;Lo;AL;\r
+FBA0;Lo;AL;\r
+FBA1;Lo;AL;\r
+FBA2;Lo;AL;\r
+FBA3;Lo;AL;\r
+FBA4;Lo;AL;\r
+FBA5;Lo;AL;\r
+FBA6;Lo;AL;\r
+FBA7;Lo;AL;\r
+FBA8;Lo;AL;\r
+FBA9;Lo;AL;\r
+FBAA;Lo;AL;\r
+FBAB;Lo;AL;\r
+FBAC;Lo;AL;\r
+FBAD;Lo;AL;\r
+FBAE;Lo;AL;\r
+FBAF;Lo;AL;\r
+FBB0;Lo;AL;\r
+FBB1;Lo;AL;\r
+FBD3;Lo;AL;\r
+FBD4;Lo;AL;\r
+FBD5;Lo;AL;\r
+FBD6;Lo;AL;\r
+FBD7;Lo;AL;\r
+FBD8;Lo;AL;\r
+FBD9;Lo;AL;\r
+FBDA;Lo;AL;\r
+FBDB;Lo;AL;\r
+FBDC;Lo;AL;\r
+FBDD;Lo;AL;\r
+FBDE;Lo;AL;\r
+FBDF;Lo;AL;\r
+FBE0;Lo;AL;\r
+FBE1;Lo;AL;\r
+FBE2;Lo;AL;\r
+FBE3;Lo;AL;\r
+FBE4;Lo;AL;\r
+FBE5;Lo;AL;\r
+FBE6;Lo;AL;\r
+FBE7;Lo;AL;\r
+FBE8;Lo;AL;\r
+FBE9;Lo;AL;\r
+FBEA;Lo;AL;\r
+FBEB;Lo;AL;\r
+FBEC;Lo;AL;\r
+FBED;Lo;AL;\r
+FBEE;Lo;AL;\r
+FBEF;Lo;AL;\r
+FBF0;Lo;AL;\r
+FBF1;Lo;AL;\r
+FBF2;Lo;AL;\r
+FBF3;Lo;AL;\r
+FBF4;Lo;AL;\r
+FBF5;Lo;AL;\r
+FBF6;Lo;AL;\r
+FBF7;Lo;AL;\r
+FBF8;Lo;AL;\r
+FBF9;Lo;AL;\r
+FBFA;Lo;AL;\r
+FBFB;Lo;AL;\r
+FBFC;Lo;AL;\r
+FBFD;Lo;AL;\r
+FBFE;Lo;AL;\r
+FBFF;Lo;AL;\r
+FC00;Lo;AL;\r
+FC01;Lo;AL;\r
+FC02;Lo;AL;\r
+FC03;Lo;AL;\r
+FC04;Lo;AL;\r
+FC05;Lo;AL;\r
+FC06;Lo;AL;\r
+FC07;Lo;AL;\r
+FC08;Lo;AL;\r
+FC09;Lo;AL;\r
+FC0A;Lo;AL;\r
+FC0B;Lo;AL;\r
+FC0C;Lo;AL;\r
+FC0D;Lo;AL;\r
+FC0E;Lo;AL;\r
+FC0F;Lo;AL;\r
+FC10;Lo;AL;\r
+FC11;Lo;AL;\r
+FC12;Lo;AL;\r
+FC13;Lo;AL;\r
+FC14;Lo;AL;\r
+FC15;Lo;AL;\r
+FC16;Lo;AL;\r
+FC17;Lo;AL;\r
+FC18;Lo;AL;\r
+FC19;Lo;AL;\r
+FC1A;Lo;AL;\r
+FC1B;Lo;AL;\r
+FC1C;Lo;AL;\r
+FC1D;Lo;AL;\r
+FC1E;Lo;AL;\r
+FC1F;Lo;AL;\r
+FC20;Lo;AL;\r
+FC21;Lo;AL;\r
+FC22;Lo;AL;\r
+FC23;Lo;AL;\r
+FC24;Lo;AL;\r
+FC25;Lo;AL;\r
+FC26;Lo;AL;\r
+FC27;Lo;AL;\r
+FC28;Lo;AL;\r
+FC29;Lo;AL;\r
+FC2A;Lo;AL;\r
+FC2B;Lo;AL;\r
+FC2C;Lo;AL;\r
+FC2D;Lo;AL;\r
+FC2E;Lo;AL;\r
+FC2F;Lo;AL;\r
+FC30;Lo;AL;\r
+FC31;Lo;AL;\r
+FC32;Lo;AL;\r
+FC33;Lo;AL;\r
+FC34;Lo;AL;\r
+FC35;Lo;AL;\r
+FC36;Lo;AL;\r
+FC37;Lo;AL;\r
+FC38;Lo;AL;\r
+FC39;Lo;AL;\r
+FC3A;Lo;AL;\r
+FC3B;Lo;AL;\r
+FC3C;Lo;AL;\r
+FC3D;Lo;AL;\r
+FC3E;Lo;AL;\r
+FC3F;Lo;AL;\r
+FC40;Lo;AL;\r
+FC41;Lo;AL;\r
+FC42;Lo;AL;\r
+FC43;Lo;AL;\r
+FC44;Lo;AL;\r
+FC45;Lo;AL;\r
+FC46;Lo;AL;\r
+FC47;Lo;AL;\r
+FC48;Lo;AL;\r
+FC49;Lo;AL;\r
+FC4A;Lo;AL;\r
+FC4B;Lo;AL;\r
+FC4C;Lo;AL;\r
+FC4D;Lo;AL;\r
+FC4E;Lo;AL;\r
+FC4F;Lo;AL;\r
+FC50;Lo;AL;\r
+FC51;Lo;AL;\r
+FC52;Lo;AL;\r
+FC53;Lo;AL;\r
+FC54;Lo;AL;\r
+FC55;Lo;AL;\r
+FC56;Lo;AL;\r
+FC57;Lo;AL;\r
+FC58;Lo;AL;\r
+FC59;Lo;AL;\r
+FC5A;Lo;AL;\r
+FC5B;Lo;AL;\r
+FC5C;Lo;AL;\r
+FC5D;Lo;AL;\r
+FC5E;Lo;AL;\r
+FC5F;Lo;AL;\r
+FC60;Lo;AL;\r
+FC61;Lo;AL;\r
+FC62;Lo;AL;\r
+FC63;Lo;AL;\r
+FC64;Lo;AL;\r
+FC65;Lo;AL;\r
+FC66;Lo;AL;\r
+FC67;Lo;AL;\r
+FC68;Lo;AL;\r
+FC69;Lo;AL;\r
+FC6A;Lo;AL;\r
+FC6B;Lo;AL;\r
+FC6C;Lo;AL;\r
+FC6D;Lo;AL;\r
+FC6E;Lo;AL;\r
+FC6F;Lo;AL;\r
+FC70;Lo;AL;\r
+FC71;Lo;AL;\r
+FC72;Lo;AL;\r
+FC73;Lo;AL;\r
+FC74;Lo;AL;\r
+FC75;Lo;AL;\r
+FC76;Lo;AL;\r
+FC77;Lo;AL;\r
+FC78;Lo;AL;\r
+FC79;Lo;AL;\r
+FC7A;Lo;AL;\r
+FC7B;Lo;AL;\r
+FC7C;Lo;AL;\r
+FC7D;Lo;AL;\r
+FC7E;Lo;AL;\r
+FC7F;Lo;AL;\r
+FC80;Lo;AL;\r
+FC81;Lo;AL;\r
+FC82;Lo;AL;\r
+FC83;Lo;AL;\r
+FC84;Lo;AL;\r
+FC85;Lo;AL;\r
+FC86;Lo;AL;\r
+FC87;Lo;AL;\r
+FC88;Lo;AL;\r
+FC89;Lo;AL;\r
+FC8A;Lo;AL;\r
+FC8B;Lo;AL;\r
+FC8C;Lo;AL;\r
+FC8D;Lo;AL;\r
+FC8E;Lo;AL;\r
+FC8F;Lo;AL;\r
+FC90;Lo;AL;\r
+FC91;Lo;AL;\r
+FC92;Lo;AL;\r
+FC93;Lo;AL;\r
+FC94;Lo;AL;\r
+FC95;Lo;AL;\r
+FC96;Lo;AL;\r
+FC97;Lo;AL;\r
+FC98;Lo;AL;\r
+FC99;Lo;AL;\r
+FC9A;Lo;AL;\r
+FC9B;Lo;AL;\r
+FC9C;Lo;AL;\r
+FC9D;Lo;AL;\r
+FC9E;Lo;AL;\r
+FC9F;Lo;AL;\r
+FCA0;Lo;AL;\r
+FCA1;Lo;AL;\r
+FCA2;Lo;AL;\r
+FCA3;Lo;AL;\r
+FCA4;Lo;AL;\r
+FCA5;Lo;AL;\r
+FCA6;Lo;AL;\r
+FCA7;Lo;AL;\r
+FCA8;Lo;AL;\r
+FCA9;Lo;AL;\r
+FCAA;Lo;AL;\r
+FCAB;Lo;AL;\r
+FCAC;Lo;AL;\r
+FCAD;Lo;AL;\r
+FCAE;Lo;AL;\r
+FCAF;Lo;AL;\r
+FCB0;Lo;AL;\r
+FCB1;Lo;AL;\r
+FCB2;Lo;AL;\r
+FCB3;Lo;AL;\r
+FCB4;Lo;AL;\r
+FCB5;Lo;AL;\r
+FCB6;Lo;AL;\r
+FCB7;Lo;AL;\r
+FCB8;Lo;AL;\r
+FCB9;Lo;AL;\r
+FCBA;Lo;AL;\r
+FCBB;Lo;AL;\r
+FCBC;Lo;AL;\r
+FCBD;Lo;AL;\r
+FCBE;Lo;AL;\r
+FCBF;Lo;AL;\r
+FCC0;Lo;AL;\r
+FCC1;Lo;AL;\r
+FCC2;Lo;AL;\r
+FCC3;Lo;AL;\r
+FCC4;Lo;AL;\r
+FCC5;Lo;AL;\r
+FCC6;Lo;AL;\r
+FCC7;Lo;AL;\r
+FCC8;Lo;AL;\r
+FCC9;Lo;AL;\r
+FCCA;Lo;AL;\r
+FCCB;Lo;AL;\r
+FCCC;Lo;AL;\r
+FCCD;Lo;AL;\r
+FCCE;Lo;AL;\r
+FCCF;Lo;AL;\r
+FCD0;Lo;AL;\r
+FCD1;Lo;AL;\r
+FCD2;Lo;AL;\r
+FCD3;Lo;AL;\r
+FCD4;Lo;AL;\r
+FCD5;Lo;AL;\r
+FCD6;Lo;AL;\r
+FCD7;Lo;AL;\r
+FCD8;Lo;AL;\r
+FCD9;Lo;AL;\r
+FCDA;Lo;AL;\r
+FCDB;Lo;AL;\r
+FCDC;Lo;AL;\r
+FCDD;Lo;AL;\r
+FCDE;Lo;AL;\r
+FCDF;Lo;AL;\r
+FCE0;Lo;AL;\r
+FCE1;Lo;AL;\r
+FCE2;Lo;AL;\r
+FCE3;Lo;AL;\r
+FCE4;Lo;AL;\r
+FCE5;Lo;AL;\r
+FCE6;Lo;AL;\r
+FCE7;Lo;AL;\r
+FCE8;Lo;AL;\r
+FCE9;Lo;AL;\r
+FCEA;Lo;AL;\r
+FCEB;Lo;AL;\r
+FCEC;Lo;AL;\r
+FCED;Lo;AL;\r
+FCEE;Lo;AL;\r
+FCEF;Lo;AL;\r
+FCF0;Lo;AL;\r
+FCF1;Lo;AL;\r
+FCF2;Lo;AL;\r
+FCF3;Lo;AL;\r
+FCF4;Lo;AL;\r
+FCF5;Lo;AL;\r
+FCF6;Lo;AL;\r
+FCF7;Lo;AL;\r
+FCF8;Lo;AL;\r
+FCF9;Lo;AL;\r
+FCFA;Lo;AL;\r
+FCFB;Lo;AL;\r
+FCFC;Lo;AL;\r
+FCFD;Lo;AL;\r
+FCFE;Lo;AL;\r
+FCFF;Lo;AL;\r
+FD00;Lo;AL;\r
+FD01;Lo;AL;\r
+FD02;Lo;AL;\r
+FD03;Lo;AL;\r
+FD04;Lo;AL;\r
+FD05;Lo;AL;\r
+FD06;Lo;AL;\r
+FD07;Lo;AL;\r
+FD08;Lo;AL;\r
+FD09;Lo;AL;\r
+FD0A;Lo;AL;\r
+FD0B;Lo;AL;\r
+FD0C;Lo;AL;\r
+FD0D;Lo;AL;\r
+FD0E;Lo;AL;\r
+FD0F;Lo;AL;\r
+FD10;Lo;AL;\r
+FD11;Lo;AL;\r
+FD12;Lo;AL;\r
+FD13;Lo;AL;\r
+FD14;Lo;AL;\r
+FD15;Lo;AL;\r
+FD16;Lo;AL;\r
+FD17;Lo;AL;\r
+FD18;Lo;AL;\r
+FD19;Lo;AL;\r
+FD1A;Lo;AL;\r
+FD1B;Lo;AL;\r
+FD1C;Lo;AL;\r
+FD1D;Lo;AL;\r
+FD1E;Lo;AL;\r
+FD1F;Lo;AL;\r
+FD20;Lo;AL;\r
+FD21;Lo;AL;\r
+FD22;Lo;AL;\r
+FD23;Lo;AL;\r
+FD24;Lo;AL;\r
+FD25;Lo;AL;\r
+FD26;Lo;AL;\r
+FD27;Lo;AL;\r
+FD28;Lo;AL;\r
+FD29;Lo;AL;\r
+FD2A;Lo;AL;\r
+FD2B;Lo;AL;\r
+FD2C;Lo;AL;\r
+FD2D;Lo;AL;\r
+FD2E;Lo;AL;\r
+FD2F;Lo;AL;\r
+FD30;Lo;AL;\r
+FD31;Lo;AL;\r
+FD32;Lo;AL;\r
+FD33;Lo;AL;\r
+FD34;Lo;AL;\r
+FD35;Lo;AL;\r
+FD36;Lo;AL;\r
+FD37;Lo;AL;\r
+FD38;Lo;AL;\r
+FD39;Lo;AL;\r
+FD3A;Lo;AL;\r
+FD3B;Lo;AL;\r
+FD3C;Lo;AL;\r
+FD3D;Lo;AL;\r
+FD3E;Ps;ON;\r
+FD3F;Pe;ON;\r
+FD50;Lo;AL;\r
+FD51;Lo;AL;\r
+FD52;Lo;AL;\r
+FD53;Lo;AL;\r
+FD54;Lo;AL;\r
+FD55;Lo;AL;\r
+FD56;Lo;AL;\r
+FD57;Lo;AL;\r
+FD58;Lo;AL;\r
+FD59;Lo;AL;\r
+FD5A;Lo;AL;\r
+FD5B;Lo;AL;\r
+FD5C;Lo;AL;\r
+FD5D;Lo;AL;\r
+FD5E;Lo;AL;\r
+FD5F;Lo;AL;\r
+FD60;Lo;AL;\r
+FD61;Lo;AL;\r
+FD62;Lo;AL;\r
+FD63;Lo;AL;\r
+FD64;Lo;AL;\r
+FD65;Lo;AL;\r
+FD66;Lo;AL;\r
+FD67;Lo;AL;\r
+FD68;Lo;AL;\r
+FD69;Lo;AL;\r
+FD6A;Lo;AL;\r
+FD6B;Lo;AL;\r
+FD6C;Lo;AL;\r
+FD6D;Lo;AL;\r
+FD6E;Lo;AL;\r
+FD6F;Lo;AL;\r
+FD70;Lo;AL;\r
+FD71;Lo;AL;\r
+FD72;Lo;AL;\r
+FD73;Lo;AL;\r
+FD74;Lo;AL;\r
+FD75;Lo;AL;\r
+FD76;Lo;AL;\r
+FD77;Lo;AL;\r
+FD78;Lo;AL;\r
+FD79;Lo;AL;\r
+FD7A;Lo;AL;\r
+FD7B;Lo;AL;\r
+FD7C;Lo;AL;\r
+FD7D;Lo;AL;\r
+FD7E;Lo;AL;\r
+FD7F;Lo;AL;\r
+FD80;Lo;AL;\r
+FD81;Lo;AL;\r
+FD82;Lo;AL;\r
+FD83;Lo;AL;\r
+FD84;Lo;AL;\r
+FD85;Lo;AL;\r
+FD86;Lo;AL;\r
+FD87;Lo;AL;\r
+FD88;Lo;AL;\r
+FD89;Lo;AL;\r
+FD8A;Lo;AL;\r
+FD8B;Lo;AL;\r
+FD8C;Lo;AL;\r
+FD8D;Lo;AL;\r
+FD8E;Lo;AL;\r
+FD8F;Lo;AL;\r
+FD92;Lo;AL;\r
+FD93;Lo;AL;\r
+FD94;Lo;AL;\r
+FD95;Lo;AL;\r
+FD96;Lo;AL;\r
+FD97;Lo;AL;\r
+FD98;Lo;AL;\r
+FD99;Lo;AL;\r
+FD9A;Lo;AL;\r
+FD9B;Lo;AL;\r
+FD9C;Lo;AL;\r
+FD9D;Lo;AL;\r
+FD9E;Lo;AL;\r
+FD9F;Lo;AL;\r
+FDA0;Lo;AL;\r
+FDA1;Lo;AL;\r
+FDA2;Lo;AL;\r
+FDA3;Lo;AL;\r
+FDA4;Lo;AL;\r
+FDA5;Lo;AL;\r
+FDA6;Lo;AL;\r
+FDA7;Lo;AL;\r
+FDA8;Lo;AL;\r
+FDA9;Lo;AL;\r
+FDAA;Lo;AL;\r
+FDAB;Lo;AL;\r
+FDAC;Lo;AL;\r
+FDAD;Lo;AL;\r
+FDAE;Lo;AL;\r
+FDAF;Lo;AL;\r
+FDB0;Lo;AL;\r
+FDB1;Lo;AL;\r
+FDB2;Lo;AL;\r
+FDB3;Lo;AL;\r
+FDB4;Lo;AL;\r
+FDB5;Lo;AL;\r
+FDB6;Lo;AL;\r
+FDB7;Lo;AL;\r
+FDB8;Lo;AL;\r
+FDB9;Lo;AL;\r
+FDBA;Lo;AL;\r
+FDBB;Lo;AL;\r
+FDBC;Lo;AL;\r
+FDBD;Lo;AL;\r
+FDBE;Lo;AL;\r
+FDBF;Lo;AL;\r
+FDC0;Lo;AL;\r
+FDC1;Lo;AL;\r
+FDC2;Lo;AL;\r
+FDC3;Lo;AL;\r
+FDC4;Lo;AL;\r
+FDC5;Lo;AL;\r
+FDC6;Lo;AL;\r
+FDC7;Lo;AL;\r
+FDF0;Lo;AL;\r
+FDF1;Lo;AL;\r
+FDF2;Lo;AL;\r
+FDF3;Lo;AL;\r
+FDF4;Lo;AL;\r
+FDF5;Lo;AL;\r
+FDF6;Lo;AL;\r
+FDF7;Lo;AL;\r
+FDF8;Lo;AL;\r
+FDF9;Lo;AL;\r
+FDFA;Lo;AL;\r
+FDFB;Lo;AL;\r
+FE20;Mn;NSM;\r
+FE21;Mn;NSM;\r
+FE22;Mn;NSM;\r
+FE23;Mn;NSM;\r
+FE30;Po;ON;\r
+FE31;Pd;ON;\r
+FE32;Pd;ON;\r
+FE33;Pc;ON;\r
+FE34;Pc;ON;\r
+FE35;Ps;ON;\r
+FE36;Pe;ON;\r
+FE37;Ps;ON;\r
+FE38;Pe;ON;\r
+FE39;Ps;ON;\r
+FE3A;Pe;ON;\r
+FE3B;Ps;ON;\r
+FE3C;Pe;ON;\r
+FE3D;Ps;ON;\r
+FE3E;Pe;ON;\r
+FE3F;Ps;ON;\r
+FE40;Pe;ON;\r
+FE41;Ps;ON;\r
+FE42;Pe;ON;\r
+FE43;Ps;ON;\r
+FE44;Pe;ON;\r
+FE49;Po;ON;\r
+FE4A;Po;ON;\r
+FE4B;Po;ON;\r
+FE4C;Po;ON;\r
+FE4D;Pc;ON;\r
+FE4E;Pc;ON;\r
+FE4F;Pc;ON;\r
+FE50;Po;CS;\r
+FE51;Po;ON;\r
+FE52;Po;CS;\r
+FE54;Po;ON;\r
+FE55;Po;CS;\r
+FE56;Po;ON;\r
+FE57;Po;ON;\r
+FE58;Pd;ON;\r
+FE59;Ps;ON;\r
+FE5A;Pe;ON;\r
+FE5B;Ps;ON;\r
+FE5C;Pe;ON;\r
+FE5D;Ps;ON;\r
+FE5E;Pe;ON;\r
+FE5F;Po;ET;\r
+FE60;Po;ON;\r
+FE61;Po;ON;\r
+FE62;Sm;ET;\r
+FE63;Pd;ET;\r
+FE64;Sm;ON;\r
+FE65;Sm;ON;\r
+FE66;Sm;ON;\r
+FE68;Po;ON;\r
+FE69;Sc;ET;\r
+FE6A;Po;ET;\r
+FE6B;Po;ON;\r
+FE70;Lo;AL;\r
+FE71;Lo;AL;\r
+FE72;Lo;AL;\r
+FE74;Lo;AL;\r
+FE76;Lo;AL;\r
+FE77;Lo;AL;\r
+FE78;Lo;AL;\r
+FE79;Lo;AL;\r
+FE7A;Lo;AL;\r
+FE7B;Lo;AL;\r
+FE7C;Lo;AL;\r
+FE7D;Lo;AL;\r
+FE7E;Lo;AL;\r
+FE7F;Lo;AL;\r
+FE80;Lo;AL;\r
+FE81;Lo;AL;\r
+FE82;Lo;AL;\r
+FE83;Lo;AL;\r
+FE84;Lo;AL;\r
+FE85;Lo;AL;\r
+FE86;Lo;AL;\r
+FE87;Lo;AL;\r
+FE88;Lo;AL;\r
+FE89;Lo;AL;\r
+FE8A;Lo;AL;\r
+FE8B;Lo;AL;\r
+FE8C;Lo;AL;\r
+FE8D;Lo;AL;\r
+FE8E;Lo;AL;\r
+FE8F;Lo;AL;\r
+FE90;Lo;AL;\r
+FE91;Lo;AL;\r
+FE92;Lo;AL;\r
+FE93;Lo;AL;\r
+FE94;Lo;AL;\r
+FE95;Lo;AL;\r
+FE96;Lo;AL;\r
+FE97;Lo;AL;\r
+FE98;Lo;AL;\r
+FE99;Lo;AL;\r
+FE9A;Lo;AL;\r
+FE9B;Lo;AL;\r
+FE9C;Lo;AL;\r
+FE9D;Lo;AL;\r
+FE9E;Lo;AL;\r
+FE9F;Lo;AL;\r
+FEA0;Lo;AL;\r
+FEA1;Lo;AL;\r
+FEA2;Lo;AL;\r
+FEA3;Lo;AL;\r
+FEA4;Lo;AL;\r
+FEA5;Lo;AL;\r
+FEA6;Lo;AL;\r
+FEA7;Lo;AL;\r
+FEA8;Lo;AL;\r
+FEA9;Lo;AL;\r
+FEAA;Lo;AL;\r
+FEAB;Lo;AL;\r
+FEAC;Lo;AL;\r
+FEAD;Lo;AL;\r
+FEAE;Lo;AL;\r
+FEAF;Lo;AL;\r
+FEB0;Lo;AL;\r
+FEB1;Lo;AL;\r
+FEB2;Lo;AL;\r
+FEB3;Lo;AL;\r
+FEB4;Lo;AL;\r
+FEB5;Lo;AL;\r
+FEB6;Lo;AL;\r
+FEB7;Lo;AL;\r
+FEB8;Lo;AL;\r
+FEB9;Lo;AL;\r
+FEBA;Lo;AL;\r
+FEBB;Lo;AL;\r
+FEBC;Lo;AL;\r
+FEBD;Lo;AL;\r
+FEBE;Lo;AL;\r
+FEBF;Lo;AL;\r
+FEC0;Lo;AL;\r
+FEC1;Lo;AL;\r
+FEC2;Lo;AL;\r
+FEC3;Lo;AL;\r
+FEC4;Lo;AL;\r
+FEC5;Lo;AL;\r
+FEC6;Lo;AL;\r
+FEC7;Lo;AL;\r
+FEC8;Lo;AL;\r
+FEC9;Lo;AL;\r
+FECA;Lo;AL;\r
+FECB;Lo;AL;\r
+FECC;Lo;AL;\r
+FECD;Lo;AL;\r
+FECE;Lo;AL;\r
+FECF;Lo;AL;\r
+FED0;Lo;AL;\r
+FED1;Lo;AL;\r
+FED2;Lo;AL;\r
+FED3;Lo;AL;\r
+FED4;Lo;AL;\r
+FED5;Lo;AL;\r
+FED6;Lo;AL;\r
+FED7;Lo;AL;\r
+FED8;Lo;AL;\r
+FED9;Lo;AL;\r
+FEDA;Lo;AL;\r
+FEDB;Lo;AL;\r
+FEDC;Lo;AL;\r
+FEDD;Lo;AL;\r
+FEDE;Lo;AL;\r
+FEDF;Lo;AL;\r
+FEE0;Lo;AL;\r
+FEE1;Lo;AL;\r
+FEE2;Lo;AL;\r
+FEE3;Lo;AL;\r
+FEE4;Lo;AL;\r
+FEE5;Lo;AL;\r
+FEE6;Lo;AL;\r
+FEE7;Lo;AL;\r
+FEE8;Lo;AL;\r
+FEE9;Lo;AL;\r
+FEEA;Lo;AL;\r
+FEEB;Lo;AL;\r
+FEEC;Lo;AL;\r
+FEED;Lo;AL;\r
+FEEE;Lo;AL;\r
+FEEF;Lo;AL;\r
+FEF0;Lo;AL;\r
+FEF1;Lo;AL;\r
+FEF2;Lo;AL;\r
+FEF3;Lo;AL;\r
+FEF4;Lo;AL;\r
+FEF5;Lo;AL;\r
+FEF6;Lo;AL;\r
+FEF7;Lo;AL;\r
+FEF8;Lo;AL;\r
+FEF9;Lo;AL;\r
+FEFA;Lo;AL;\r
+FEFB;Lo;AL;\r
+FEFC;Lo;AL;\r
+FEFF;Cf;BN;\r
+FF01;Po;ON;\r
+FF02;Po;ON;\r
+FF03;Po;ET;\r
+FF04;Sc;ET;\r
+FF05;Po;ET;\r
+FF06;Po;ON;\r
+FF07;Po;ON;\r
+FF08;Ps;ON;\r
+FF09;Pe;ON;\r
+FF0A;Po;ON;\r
+FF0B;Sm;ET;\r
+FF0C;Po;CS;\r
+FF0D;Pd;ET;\r
+FF0E;Po;CS;\r
+FF0F;Po;ES;\r
+FF10;Nd;EN;\r
+FF11;Nd;EN;\r
+FF12;Nd;EN;\r
+FF13;Nd;EN;\r
+FF14;Nd;EN;\r
+FF15;Nd;EN;\r
+FF16;Nd;EN;\r
+FF17;Nd;EN;\r
+FF18;Nd;EN;\r
+FF19;Nd;EN;\r
+FF1A;Po;CS;\r
+FF1B;Po;ON;\r
+FF1C;Sm;ON;\r
+FF1D;Sm;ON;\r
+FF1E;Sm;ON;\r
+FF1F;Po;ON;\r
+FF20;Po;ON;\r
+FF21;Lu;L;\r
+FF22;Lu;L;\r
+FF23;Lu;L;\r
+FF24;Lu;L;\r
+FF25;Lu;L;\r
+FF26;Lu;L;\r
+FF27;Lu;L;\r
+FF28;Lu;L;\r
+FF29;Lu;L;\r
+FF2A;Lu;L;\r
+FF2B;Lu;L;\r
+FF2C;Lu;L;\r
+FF2D;Lu;L;\r
+FF2E;Lu;L;\r
+FF2F;Lu;L;\r
+FF30;Lu;L;\r
+FF31;Lu;L;\r
+FF32;Lu;L;\r
+FF33;Lu;L;\r
+FF34;Lu;L;\r
+FF35;Lu;L;\r
+FF36;Lu;L;\r
+FF37;Lu;L;\r
+FF38;Lu;L;\r
+FF39;Lu;L;\r
+FF3A;Lu;L;\r
+FF3B;Ps;ON;\r
+FF3C;Po;ON;\r
+FF3D;Pe;ON;\r
+FF3E;Sk;ON;\r
+FF3F;Pc;ON;\r
+FF40;Sk;ON;\r
+FF41;Ll;L;\r
+FF42;Ll;L;\r
+FF43;Ll;L;\r
+FF44;Ll;L;\r
+FF45;Ll;L;\r
+FF46;Ll;L;\r
+FF47;Ll;L;\r
+FF48;Ll;L;\r
+FF49;Ll;L;\r
+FF4A;Ll;L;\r
+FF4B;Ll;L;\r
+FF4C;Ll;L;\r
+FF4D;Ll;L;\r
+FF4E;Ll;L;\r
+FF4F;Ll;L;\r
+FF50;Ll;L;\r
+FF51;Ll;L;\r
+FF52;Ll;L;\r
+FF53;Ll;L;\r
+FF54;Ll;L;\r
+FF55;Ll;L;\r
+FF56;Ll;L;\r
+FF57;Ll;L;\r
+FF58;Ll;L;\r
+FF59;Ll;L;\r
+FF5A;Ll;L;\r
+FF5B;Ps;ON;\r
+FF5C;Sm;ON;\r
+FF5D;Pe;ON;\r
+FF5E;Sm;ON;\r
+FF61;Po;ON;\r
+FF62;Ps;ON;\r
+FF63;Pe;ON;\r
+FF64;Po;ON;\r
+FF65;Pc;ON;\r
+FF66;Lo;L;\r
+FF67;Lo;L;\r
+FF68;Lo;L;\r
+FF69;Lo;L;\r
+FF6A;Lo;L;\r
+FF6B;Lo;L;\r
+FF6C;Lo;L;\r
+FF6D;Lo;L;\r
+FF6E;Lo;L;\r
+FF6F;Lo;L;\r
+FF70;Lm;L;\r
+FF71;Lo;L;\r
+FF72;Lo;L;\r
+FF73;Lo;L;\r
+FF74;Lo;L;\r
+FF75;Lo;L;\r
+FF76;Lo;L;\r
+FF77;Lo;L;\r
+FF78;Lo;L;\r
+FF79;Lo;L;\r
+FF7A;Lo;L;\r
+FF7B;Lo;L;\r
+FF7C;Lo;L;\r
+FF7D;Lo;L;\r
+FF7E;Lo;L;\r
+FF7F;Lo;L;\r
+FF80;Lo;L;\r
+FF81;Lo;L;\r
+FF82;Lo;L;\r
+FF83;Lo;L;\r
+FF84;Lo;L;\r
+FF85;Lo;L;\r
+FF86;Lo;L;\r
+FF87;Lo;L;\r
+FF88;Lo;L;\r
+FF89;Lo;L;\r
+FF8A;Lo;L;\r
+FF8B;Lo;L;\r
+FF8C;Lo;L;\r
+FF8D;Lo;L;\r
+FF8E;Lo;L;\r
+FF8F;Lo;L;\r
+FF90;Lo;L;\r
+FF91;Lo;L;\r
+FF92;Lo;L;\r
+FF93;Lo;L;\r
+FF94;Lo;L;\r
+FF95;Lo;L;\r
+FF96;Lo;L;\r
+FF97;Lo;L;\r
+FF98;Lo;L;\r
+FF99;Lo;L;\r
+FF9A;Lo;L;\r
+FF9B;Lo;L;\r
+FF9C;Lo;L;\r
+FF9D;Lo;L;\r
+FF9E;Lm;L;\r
+FF9F;Lm;L;\r
+FFA0;Lo;L;\r
+FFA1;Lo;L;\r
+FFA2;Lo;L;\r
+FFA3;Lo;L;\r
+FFA4;Lo;L;\r
+FFA5;Lo;L;\r
+FFA6;Lo;L;\r
+FFA7;Lo;L;\r
+FFA8;Lo;L;\r
+FFA9;Lo;L;\r
+FFAA;Lo;L;\r
+FFAB;Lo;L;\r
+FFAC;Lo;L;\r
+FFAD;Lo;L;\r
+FFAE;Lo;L;\r
+FFAF;Lo;L;\r
+FFB0;Lo;L;\r
+FFB1;Lo;L;\r
+FFB2;Lo;L;\r
+FFB3;Lo;L;\r
+FFB4;Lo;L;\r
+FFB5;Lo;L;\r
+FFB6;Lo;L;\r
+FFB7;Lo;L;\r
+FFB8;Lo;L;\r
+FFB9;Lo;L;\r
+FFBA;Lo;L;\r
+FFBB;Lo;L;\r
+FFBC;Lo;L;\r
+FFBD;Lo;L;\r
+FFBE;Lo;L;\r
+FFC2;Lo;L;\r
+FFC3;Lo;L;\r
+FFC4;Lo;L;\r
+FFC5;Lo;L;\r
+FFC6;Lo;L;\r
+FFC7;Lo;L;\r
+FFCA;Lo;L;\r
+FFCB;Lo;L;\r
+FFCC;Lo;L;\r
+FFCD;Lo;L;\r
+FFCE;Lo;L;\r
+FFCF;Lo;L;\r
+FFD2;Lo;L;\r
+FFD3;Lo;L;\r
+FFD4;Lo;L;\r
+FFD5;Lo;L;\r
+FFD6;Lo;L;\r
+FFD7;Lo;L;\r
+FFDA;Lo;L;\r
+FFDB;Lo;L;\r
+FFDC;Lo;L;\r
+FFE0;Sc;ET;\r
+FFE1;Sc;ET;\r
+FFE2;Sm;ON;\r
+FFE3;Sk;ON;\r
+FFE4;So;ON;\r
+FFE5;Sc;ET;\r
+FFE6;Sc;ET;\r
+FFE8;So;ON;\r
+FFE9;Sm;ON;\r
+FFEA;Sm;ON;\r
+FFEB;Sm;ON;\r
+FFEC;Sm;ON;\r
+FFED;So;ON;\r
+FFEE;So;ON;\r
+FFF9;Cf;BN;\r
+FFFA;Cf;BN;\r
+FFFB;Cf;BN;\r
+FFFC;So;ON;\r
+FFFD;So;ON;\r
diff --git a/data/unibreak.txt b/data/unibreak.txt
new file mode 100644 (file)
index 0000000..8ae3cc6
--- /dev/null
@@ -0,0 +1,1354 @@
+# DerivedLineBreak-3.1.0.txt\r
+#\r
+# Unicode Character Database: Derived Property Data\r
+# Generated algorithmically from the Unicode Character Database\r
+# For documentation, see DerivedProperties.html\r
+# Date: 2001-03-02 00:05:44.2 GMT [MD]\r
+# Note: Unassigned and Noncharacter codepoints are omitted,\r
+#       except when listing Noncharacter or Cn.\r
+# ================================================\r
+\r
+\r
+# ================================================\r
+# Line Break (listing LineBreak.txt, field 1)\r
+# ================================================\r
+\r
+E000..F8FF    ; XX # Co [6400] \r
+F0000..FFFFD  ; XX # Co [65534] \r
+100000..10FFFD; XX # Co [65534] \r
+\r
+# Total code points: 137468\r
+\r
+# ================================================\r
+\r
+0028          ; OP # Ps       LEFT PARENTHESIS\r
+005B          ; OP # Ps       LEFT SQUARE BRACKET\r
+007B          ; OP # Ps       LEFT CURLY BRACKET\r
+0F3A          ; OP # Ps       TIBETAN MARK GUG RTAGS GYON\r
+0F3C          ; OP # Ps       TIBETAN MARK ANG KHANG GYON\r
+169B          ; OP # Ps       OGHAM FEATHER MARK\r
+201A          ; OP # Ps       SINGLE LOW-9 QUOTATION MARK\r
+201E          ; OP # Ps       DOUBLE LOW-9 QUOTATION MARK\r
+2045          ; OP # Ps       LEFT SQUARE BRACKET WITH QUILL\r
+207D          ; OP # Ps       SUPERSCRIPT LEFT PARENTHESIS\r
+208D          ; OP # Ps       SUBSCRIPT LEFT PARENTHESIS\r
+2329          ; OP # Ps       LEFT-POINTING ANGLE BRACKET\r
+3008          ; OP # Ps       LEFT ANGLE BRACKET\r
+300A          ; OP # Ps       LEFT DOUBLE ANGLE BRACKET\r
+300C          ; OP # Ps       LEFT CORNER BRACKET\r
+300E          ; OP # Ps       LEFT WHITE CORNER BRACKET\r
+3010          ; OP # Ps       LEFT BLACK LENTICULAR BRACKET\r
+3014          ; OP # Ps       LEFT TORTOISE SHELL BRACKET\r
+3016          ; OP # Ps       LEFT WHITE LENTICULAR BRACKET\r
+3018          ; OP # Ps       LEFT WHITE TORTOISE SHELL BRACKET\r
+301A          ; OP # Ps       LEFT WHITE SQUARE BRACKET\r
+301D          ; OP # Ps       REVERSED DOUBLE PRIME QUOTATION MARK\r
+FD3E          ; OP # Ps       ORNATE LEFT PARENTHESIS\r
+FE35          ; OP # Ps       PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS\r
+FE37          ; OP # Ps       PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET\r
+FE39          ; OP # Ps       PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET\r
+FE3B          ; OP # Ps       PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET\r
+FE3D          ; OP # Ps       PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET\r
+FE3F          ; OP # Ps       PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET\r
+FE41          ; OP # Ps       PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET\r
+FE43          ; OP # Ps       PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET\r
+FE59          ; OP # Ps       SMALL LEFT PARENTHESIS\r
+FE5B          ; OP # Ps       SMALL LEFT CURLY BRACKET\r
+FE5D          ; OP # Ps       SMALL LEFT TORTOISE SHELL BRACKET\r
+FF08          ; OP # Ps       FULLWIDTH LEFT PARENTHESIS\r
+FF3B          ; OP # Ps       FULLWIDTH LEFT SQUARE BRACKET\r
+FF5B          ; OP # Ps       FULLWIDTH LEFT CURLY BRACKET\r
+FF62          ; OP # Ps       HALFWIDTH LEFT CORNER BRACKET\r
+\r
+# Total code points: 38\r
+\r
+# ================================================\r
+\r
+0029          ; CL # Pe       RIGHT PARENTHESIS\r
+005D          ; CL # Pe       RIGHT SQUARE BRACKET\r
+007D          ; CL # Pe       RIGHT CURLY BRACKET\r
+0F3B          ; CL # Pe       TIBETAN MARK GUG RTAGS GYAS\r
+0F3D          ; CL # Pe       TIBETAN MARK ANG KHANG GYAS\r
+169C          ; CL # Pe       OGHAM REVERSED FEATHER MARK\r
+2046          ; CL # Pe       RIGHT SQUARE BRACKET WITH QUILL\r
+207E          ; CL # Pe       SUPERSCRIPT RIGHT PARENTHESIS\r
+208E          ; CL # Pe       SUBSCRIPT RIGHT PARENTHESIS\r
+232A          ; CL # Pe       RIGHT-POINTING ANGLE BRACKET\r
+3001..3002    ; CL # Po   [2] IDEOGRAPHIC COMMA..IDEOGRAPHIC FULL STOP\r
+3009          ; CL # Pe       RIGHT ANGLE BRACKET\r
+300B          ; CL # Pe       RIGHT DOUBLE ANGLE BRACKET\r
+300D          ; CL # Pe       RIGHT CORNER BRACKET\r
+300F          ; CL # Pe       RIGHT WHITE CORNER BRACKET\r
+3011          ; CL # Pe       RIGHT BLACK LENTICULAR BRACKET\r
+3015          ; CL # Pe       RIGHT TORTOISE SHELL BRACKET\r
+3017          ; CL # Pe       RIGHT WHITE LENTICULAR BRACKET\r
+3019          ; CL # Pe       RIGHT WHITE TORTOISE SHELL BRACKET\r
+301B          ; CL # Pe       RIGHT WHITE SQUARE BRACKET\r
+301E..301F    ; CL # Pe   [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK\r
+FD3F          ; CL # Pe       ORNATE RIGHT PARENTHESIS\r
+FE36          ; CL # Pe       PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS\r
+FE38          ; CL # Pe       PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET\r
+FE3A          ; CL # Pe       PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET\r
+FE3C          ; CL # Pe       PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET\r
+FE3E          ; CL # Pe       PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET\r
+FE40          ; CL # Pe       PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET\r
+FE42          ; CL # Pe       PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET\r
+FE44          ; CL # Pe       PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET\r
+FE50          ; CL # Po       SMALL COMMA\r
+FE52          ; CL # Po       SMALL FULL STOP\r
+FE5A          ; CL # Pe       SMALL RIGHT PARENTHESIS\r
+FE5C          ; CL # Pe       SMALL RIGHT CURLY BRACKET\r
+FE5E          ; CL # Pe       SMALL RIGHT TORTOISE SHELL BRACKET\r
+FF09          ; CL # Pe       FULLWIDTH RIGHT PARENTHESIS\r
+FF0C          ; CL # Po       FULLWIDTH COMMA\r
+FF0E          ; CL # Po       FULLWIDTH FULL STOP\r
+FF3D          ; CL # Pe       FULLWIDTH RIGHT SQUARE BRACKET\r
+FF5D          ; CL # Pe       FULLWIDTH RIGHT CURLY BRACKET\r
+FF61          ; CL # Po       HALFWIDTH IDEOGRAPHIC FULL STOP\r
+FF63          ; CL # Pe       HALFWIDTH RIGHT CORNER BRACKET\r
+FF64          ; CL # Po       HALFWIDTH IDEOGRAPHIC COMMA\r
+\r
+# Total code points: 45\r
+\r
+# ================================================\r
+\r
+0022          ; QU # Po       QUOTATION MARK\r
+0027          ; QU # Po       APOSTROPHE\r
+00AB          ; QU # Pi       LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+00BB          ; QU # Pf       RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+2018          ; QU # Pi       LEFT SINGLE QUOTATION MARK\r
+2019          ; QU # Pf       RIGHT SINGLE QUOTATION MARK\r
+201B..201C    ; QU # Pi   [2] SINGLE HIGH-REVERSED-9 QUOTATION MARK..LEFT DOUBLE QUOTATION MARK\r
+201D          ; QU # Pf       RIGHT DOUBLE QUOTATION MARK\r
+201F          ; QU # Pi       DOUBLE HIGH-REVERSED-9 QUOTATION MARK\r
+2039          ; QU # Pi       SINGLE LEFT-POINTING ANGLE QUOTATION MARK\r
+203A          ; QU # Pf       SINGLE RIGHT-POINTING ANGLE QUOTATION MARK\r
+\r
+# Total code points: 12\r
+\r
+# ================================================\r
+\r
+00A0          ; GL # Zs       NO-BREAK SPACE\r
+0F0C          ; GL # Po       TIBETAN MARK DELIMITER TSHEG BSTAR\r
+2007          ; GL # Zs       FIGURE SPACE\r
+2011          ; GL # Pd       NON-BREAKING HYPHEN\r
+202F          ; GL # Zs       NARROW NO-BREAK SPACE\r
+FEFF          ; GL # Cf       ZERO WIDTH NO-BREAK SPACE\r
+\r
+# Total code points: 6\r
+\r
+# ================================================\r
+\r
+0E5A..0E5B    ; NS # Po   [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT\r
+17D4          ; NS # Po       KHMER SIGN KHAN\r
+17D6..17DA    ; NS # Po   [5] KHMER SIGN CAMNUC PII KUUH..KHMER SIGN KOOMUUT\r
+203C          ; NS # Po       DOUBLE EXCLAMATION MARK\r
+2044          ; NS # Sm       FRACTION SLASH\r
+3005          ; NS # Lm       IDEOGRAPHIC ITERATION MARK\r
+301C          ; NS # Pd       WAVE DASH\r
+3041          ; NS # Lo       HIRAGANA LETTER SMALL A\r
+3043          ; NS # Lo       HIRAGANA LETTER SMALL I\r
+3045          ; NS # Lo       HIRAGANA LETTER SMALL U\r
+3047          ; NS # Lo       HIRAGANA LETTER SMALL E\r
+3049          ; NS # Lo       HIRAGANA LETTER SMALL O\r
+3063          ; NS # Lo       HIRAGANA LETTER SMALL TU\r
+3083          ; NS # Lo       HIRAGANA LETTER SMALL YA\r
+3085          ; NS # Lo       HIRAGANA LETTER SMALL YU\r
+3087          ; NS # Lo       HIRAGANA LETTER SMALL YO\r
+308E          ; NS # Lo       HIRAGANA LETTER SMALL WA\r
+309B..309C    ; NS # Sk   [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK\r
+309D..309E    ; NS # Lm   [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK\r
+30A1          ; NS # Lo       KATAKANA LETTER SMALL A\r
+30A3          ; NS # Lo       KATAKANA LETTER SMALL I\r
+30A5          ; NS # Lo       KATAKANA LETTER SMALL U\r
+30A7          ; NS # Lo       KATAKANA LETTER SMALL E\r
+30A9          ; NS # Lo       KATAKANA LETTER SMALL O\r
+30C3          ; NS # Lo       KATAKANA LETTER SMALL TU\r
+30E3          ; NS # Lo       KATAKANA LETTER SMALL YA\r
+30E5          ; NS # Lo       KATAKANA LETTER SMALL YU\r
+30E7          ; NS # Lo       KATAKANA LETTER SMALL YO\r
+30EE          ; NS # Lo       KATAKANA LETTER SMALL WA\r
+30F5..30F6    ; NS # Lo   [2] KATAKANA LETTER SMALL KA..KATAKANA LETTER SMALL KE\r
+30FB          ; NS # Pc       KATAKANA MIDDLE DOT\r
+30FD          ; NS # Lm       KATAKANA ITERATION MARK\r
+FE54..FE55    ; NS # Po   [2] SMALL SEMICOLON..SMALL COLON\r
+FF1A..FF1B    ; NS # Po   [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON\r
+FF65          ; NS # Pc       HALFWIDTH KATAKANA MIDDLE DOT\r
+FF67..FF6F    ; NS # Lo   [9] HALFWIDTH KATAKANA LETTER SMALL A..HALFWIDTH KATAKANA LETTER SMALL TU\r
+FF70          ; NS # Lm       HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK\r
+FF9E..FF9F    ; NS # Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK\r
+\r
+# Total code points: 57\r
+\r
+# ================================================\r
+\r
+0021          ; EX # Po       EXCLAMATION MARK\r
+003F          ; EX # Po       QUESTION MARK\r
+FE56..FE57    ; EX # Po   [2] SMALL QUESTION MARK..SMALL EXCLAMATION MARK\r
+FF01          ; EX # Po       FULLWIDTH EXCLAMATION MARK\r
+FF1F          ; EX # Po       FULLWIDTH QUESTION MARK\r
+\r
+# Total code points: 6\r
+\r
+# ================================================\r
+\r
+002F          ; SY # Po       SOLIDUS\r
+\r
+# Total code points: 1\r
+\r
+# ================================================\r
+\r
+002C          ; IS # Po       COMMA\r
+002E          ; IS # Po       FULL STOP\r
+003A..003B    ; IS # Po   [2] COLON..SEMICOLON\r
+0589          ; IS # Po       ARMENIAN FULL STOP\r
+\r
+# Total code points: 5\r
+\r
+# ================================================\r
+\r
+0024          ; PR # Sc       DOLLAR SIGN\r
+002B          ; PR # Sm       PLUS SIGN\r
+005C          ; PR # Po       REVERSE SOLIDUS\r
+00A3..00A5    ; PR # Sc   [3] POUND SIGN..YEN SIGN\r
+00B1          ; PR # Sm       PLUS-MINUS SIGN\r
+09F2..09F3    ; PR # Sc   [2] BENGALI RUPEE MARK..BENGALI RUPEE SIGN\r
+0E3F          ; PR # Sc       THAI CURRENCY SYMBOL BAHT\r
+17DB          ; PR # Sc       KHMER CURRENCY SYMBOL RIEL\r
+20A0..20A6    ; PR # Sc   [7] EURO-CURRENCY SIGN..NAIRA SIGN\r
+20A8..20AF    ; PR # Sc   [8] RUPEE SIGN..DRACHMA SIGN\r
+2116          ; PR # So       NUMERO SIGN\r
+2212..2213    ; PR # Sm   [2] MINUS SIGN..MINUS-OR-PLUS SIGN\r
+FE69          ; PR # Sc       SMALL DOLLAR SIGN\r
+FF04          ; PR # Sc       FULLWIDTH DOLLAR SIGN\r
+FFE1          ; PR # Sc       FULLWIDTH POUND SIGN\r
+FFE5..FFE6    ; PR # Sc   [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN\r
+\r
+# Total code points: 34\r
+\r
+# ================================================\r
+\r
+0025          ; PO # Po       PERCENT SIGN\r
+00A2          ; PO # Sc       CENT SIGN\r
+00B0          ; PO # So       DEGREE SIGN\r
+2030..2037    ; PO # Po   [8] PER MILLE SIGN..REVERSED TRIPLE PRIME\r
+20A7          ; PO # Sc       PESETA SIGN\r
+2103          ; PO # So       DEGREE CELSIUS\r
+2109          ; PO # So       DEGREE FAHRENHEIT\r
+2126          ; PO # L&       OHM SIGN\r
+FE6A          ; PO # Po       SMALL PERCENT SIGN\r
+FF05          ; PO # Po       FULLWIDTH PERCENT SIGN\r
+FFE0          ; PO # Sc       FULLWIDTH CENT SIGN\r
+\r
+# Total code points: 18\r
+\r
+# ================================================\r
+\r
+0030..0039    ; NU # Nd  [10] DIGIT ZERO..DIGIT NINE\r
+0660..0669    ; NU # Nd  [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE\r
+06F0..06F9    ; NU # Nd  [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE\r
+0966..096F    ; NU # Nd  [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE\r
+09E6..09EF    ; NU # Nd  [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE\r
+0A66..0A6F    ; NU # Nd  [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE\r
+0AE6..0AEF    ; NU # Nd  [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE\r
+0B66..0B6F    ; NU # Nd  [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE\r
+0BE7..0BEF    ; NU # Nd   [9] TAMIL DIGIT ONE..TAMIL DIGIT NINE\r
+0C66..0C6F    ; NU # Nd  [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE\r
+0CE6..0CEF    ; NU # Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE\r
+0D66..0D6F    ; NU # Nd  [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE\r
+0E50..0E59    ; NU # Nd  [10] THAI DIGIT ZERO..THAI DIGIT NINE\r
+0ED0..0ED9    ; NU # Nd  [10] LAO DIGIT ZERO..LAO DIGIT NINE\r
+0F20..0F29    ; NU # Nd  [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE\r
+1040..1049    ; NU # Nd  [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE\r
+1369..1371    ; NU # Nd   [9] ETHIOPIC DIGIT ONE..ETHIOPIC DIGIT NINE\r
+17E0..17E9    ; NU # Nd  [10] KHMER DIGIT ZERO..KHMER DIGIT NINE\r
+1810..1819    ; NU # Nd  [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE\r
+1D7CE..1D7FF  ; NU # Nd  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE\r
+\r
+# Total code points: 238\r
+\r
+# ================================================\r
+\r
+0023          ; AL # Po       NUMBER SIGN\r
+0026          ; AL # Po       AMPERSAND\r
+002A          ; AL # Po       ASTERISK\r
+003C..003E    ; AL # Sm   [3] LESS-THAN SIGN..GREATER-THAN SIGN\r
+0040          ; AL # Po       COMMERCIAL AT\r
+0041..005A    ; AL # L&  [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z\r
+005E          ; AL # Sk       CIRCUMFLEX ACCENT\r
+005F          ; AL # Pc       LOW LINE\r
+0060          ; AL # Sk       GRAVE ACCENT\r
+0061..007A    ; AL # L&  [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z\r
+007E          ; AL # Sm       TILDE\r
+00A6          ; AL # So       BROKEN BAR\r
+00A9          ; AL # So       COPYRIGHT SIGN\r
+00AC          ; AL # Sm       NOT SIGN\r
+00AE          ; AL # So       REGISTERED SIGN\r
+00AF          ; AL # Sk       MACRON\r
+00B5          ; AL # L&       MICRO SIGN\r
+00C0..00C5    ; AL # L&   [6] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER A WITH RING ABOVE\r
+00C7..00CF    ; AL # L&   [9] LATIN CAPITAL LETTER C WITH CEDILLA..LATIN CAPITAL LETTER I WITH DIAERESIS\r
+00D1..00D6    ; AL # L&   [6] LATIN CAPITAL LETTER N WITH TILDE..LATIN CAPITAL LETTER O WITH DIAERESIS\r
+00D9..00DD    ; AL # L&   [5] LATIN CAPITAL LETTER U WITH GRAVE..LATIN CAPITAL LETTER Y WITH ACUTE\r
+00E2..00E5    ; AL # L&   [4] LATIN SMALL LETTER A WITH CIRCUMFLEX..LATIN SMALL LETTER A WITH RING ABOVE\r
+00E7          ; AL # L&       LATIN SMALL LETTER C WITH CEDILLA\r
+00EB          ; AL # L&       LATIN SMALL LETTER E WITH DIAERESIS\r
+00EE..00EF    ; AL # L&   [2] LATIN SMALL LETTER I WITH CIRCUMFLEX..LATIN SMALL LETTER I WITH DIAERESIS\r
+00F1          ; AL # L&       LATIN SMALL LETTER N WITH TILDE\r
+00F4..00F6    ; AL # L&   [3] LATIN SMALL LETTER O WITH CIRCUMFLEX..LATIN SMALL LETTER O WITH DIAERESIS\r
+00FB          ; AL # L&       LATIN SMALL LETTER U WITH CIRCUMFLEX\r
+00FD          ; AL # L&       LATIN SMALL LETTER Y WITH ACUTE\r
+00FF..0100    ; AL # L&   [2] LATIN SMALL LETTER Y WITH DIAERESIS..LATIN CAPITAL LETTER A WITH MACRON\r
+0102..0110    ; AL # L&  [15] LATIN CAPITAL LETTER A WITH BREVE..LATIN CAPITAL LETTER D WITH STROKE\r
+0112          ; AL # L&       LATIN CAPITAL LETTER E WITH MACRON\r
+0114..011A    ; AL # L&   [7] LATIN CAPITAL LETTER E WITH BREVE..LATIN CAPITAL LETTER E WITH CARON\r
+011C..0125    ; AL # L&  [10] LATIN CAPITAL LETTER G WITH CIRCUMFLEX..LATIN SMALL LETTER H WITH CIRCUMFLEX\r
+0128..012A    ; AL # L&   [3] LATIN CAPITAL LETTER I WITH TILDE..LATIN CAPITAL LETTER I WITH MACRON\r
+012C..0130    ; AL # L&   [5] LATIN CAPITAL LETTER I WITH BREVE..LATIN CAPITAL LETTER I WITH DOT ABOVE\r
+0134..0137    ; AL # L&   [4] LATIN CAPITAL LETTER J WITH CIRCUMFLEX..LATIN SMALL LETTER K WITH CEDILLA\r
+0139..013E    ; AL # L&   [6] LATIN CAPITAL LETTER L WITH ACUTE..LATIN SMALL LETTER L WITH CARON\r
+0143          ; AL # L&       LATIN CAPITAL LETTER N WITH ACUTE\r
+0145..0147    ; AL # L&   [3] LATIN CAPITAL LETTER N WITH CEDILLA..LATIN CAPITAL LETTER N WITH CARON\r
+014B..014C    ; AL # L&   [2] LATIN SMALL LETTER ENG..LATIN CAPITAL LETTER O WITH MACRON\r
+014E..0151    ; AL # L&   [4] LATIN CAPITAL LETTER O WITH BREVE..LATIN SMALL LETTER O WITH DOUBLE ACUTE\r
+0154..0165    ; AL # L&  [18] LATIN CAPITAL LETTER R WITH ACUTE..LATIN SMALL LETTER T WITH CARON\r
+0168..016A    ; AL # L&   [3] LATIN CAPITAL LETTER U WITH TILDE..LATIN CAPITAL LETTER U WITH MACRON\r
+016C..01BA    ; AL # L&  [79] LATIN CAPITAL LETTER U WITH BREVE..LATIN SMALL LETTER EZH WITH TAIL\r
+01BB          ; AL # Lo       LATIN LETTER TWO WITH STROKE\r
+01BC..01BF    ; AL # L&   [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN\r
+01C0..01C3    ; AL # Lo   [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK\r
+01C4..01CD    ; AL # L&  [10] LATIN CAPITAL LETTER DZ WITH CARON..LATIN CAPITAL LETTER A WITH CARON\r
+01CF          ; AL # L&       LATIN CAPITAL LETTER I WITH CARON\r
+01D1          ; AL # L&       LATIN CAPITAL LETTER O WITH CARON\r
+01D3          ; AL # L&       LATIN CAPITAL LETTER U WITH CARON\r
+01D5          ; AL # L&       LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON\r
+01D7          ; AL # L&       LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE\r
+01D9          ; AL # L&       LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON\r
+01DB          ; AL # L&       LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE\r
+01DD..021F    ; AL # L&  [67] LATIN SMALL LETTER TURNED E..LATIN SMALL LETTER H WITH CARON\r
+0222..0233    ; AL # L&  [18] LATIN CAPITAL LETTER OU..LATIN SMALL LETTER Y WITH MACRON\r
+0250          ; AL # L&       LATIN SMALL LETTER TURNED A\r
+0252..0260    ; AL # L&  [15] LATIN SMALL LETTER TURNED ALPHA..LATIN SMALL LETTER G WITH HOOK\r
+0262..02AD    ; AL # L&  [76] LATIN LETTER SMALL CAPITAL G..LATIN LETTER BIDENTAL PERCUSSIVE\r
+02B0..02B8    ; AL # Lm   [9] MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y\r
+02B9..02BA    ; AL # Sk   [2] MODIFIER LETTER PRIME..MODIFIER LETTER DOUBLE PRIME\r
+02BB..02C1    ; AL # Lm   [7] MODIFIER LETTER TURNED COMMA..MODIFIER LETTER REVERSED GLOTTAL STOP\r
+02C2..02C6    ; AL # Sk   [5] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER CIRCUMFLEX ACCENT\r
+02CE..02CF    ; AL # Sk   [2] MODIFIER LETTER LOW GRAVE ACCENT..MODIFIER LETTER LOW ACUTE ACCENT\r
+02D1          ; AL # Lm       MODIFIER LETTER HALF TRIANGULAR COLON\r
+02D2..02D7    ; AL # Sk   [6] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER MINUS SIGN\r
+02DC          ; AL # Sk       SMALL TILDE\r
+02DE..02DF    ; AL # Sk   [2] MODIFIER LETTER RHOTIC HOOK..MODIFIER LETTER CROSS ACCENT\r
+02E0..02E4    ; AL # Lm   [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP\r
+02E5..02ED    ; AL # Sk   [9] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER UNASPIRATED\r
+02EE          ; AL # Lm       MODIFIER LETTER DOUBLE APOSTROPHE\r
+0374..0375    ; AL # Sk   [2] GREEK NUMERAL SIGN..GREEK LOWER NUMERAL SIGN\r
+037A          ; AL # Lm       GREEK YPOGEGRAMMENI\r
+037E          ; AL # Po       GREEK QUESTION MARK\r
+0384..0385    ; AL # Sk   [2] GREEK TONOS..GREEK DIALYTIKA TONOS\r
+0386          ; AL # L&       GREEK CAPITAL LETTER ALPHA WITH TONOS\r
+0387          ; AL # Po       GREEK ANO TELEIA\r
+0388..038A    ; AL # L&   [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS\r
+038C          ; AL # L&       GREEK CAPITAL LETTER OMICRON WITH TONOS\r
+038E..0390    ; AL # L&   [3] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS\r
+03AA..03B0    ; AL # L&   [7] GREEK CAPITAL LETTER IOTA WITH DIALYTIKA..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS\r
+03C2          ; AL # L&       GREEK SMALL LETTER FINAL SIGMA\r
+03CA..03CE    ; AL # L&   [5] GREEK SMALL LETTER IOTA WITH DIALYTIKA..GREEK SMALL LETTER OMEGA WITH TONOS\r
+03D0..03D7    ; AL # L&   [8] GREEK BETA SYMBOL..GREEK KAI SYMBOL\r
+03DA..03F5    ; AL # L&  [28] GREEK LETTER STIGMA..GREEK LUNATE EPSILON SYMBOL\r
+0400          ; AL # L&       CYRILLIC CAPITAL LETTER IE WITH GRAVE\r
+0402..040F    ; AL # L&  [14] CYRILLIC CAPITAL LETTER DJE..CYRILLIC CAPITAL LETTER DZHE\r
+0450          ; AL # L&       CYRILLIC SMALL LETTER IE WITH GRAVE\r
+0452..0481    ; AL # L&  [48] CYRILLIC SMALL LETTER DJE..CYRILLIC SMALL LETTER KOPPA\r
+0482          ; AL # So       CYRILLIC THOUSANDS SIGN\r
+048C..04C4    ; AL # L&  [57] CYRILLIC CAPITAL LETTER SEMISOFT SIGN..CYRILLIC SMALL LETTER KA WITH HOOK\r
+04C7..04C8    ; AL # L&   [2] CYRILLIC CAPITAL LETTER EN WITH HOOK..CYRILLIC SMALL LETTER EN WITH HOOK\r
+04CB..04CC    ; AL # L&   [2] CYRILLIC CAPITAL LETTER KHAKASSIAN CHE..CYRILLIC SMALL LETTER KHAKASSIAN CHE\r
+04D0..04F5    ; AL # L&  [38] CYRILLIC CAPITAL LETTER A WITH BREVE..CYRILLIC SMALL LETTER CHE WITH DIAERESIS\r
+04F8..04F9    ; AL # L&   [2] CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS..CYRILLIC SMALL LETTER YERU WITH DIAERESIS\r
+0531..0556    ; AL # L&  [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH\r
+0559          ; AL # Lm       ARMENIAN MODIFIER LETTER LEFT HALF RING\r
+055A..055F    ; AL # Po   [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK\r
+0561..0587    ; AL # L&  [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN\r
+05BE          ; AL # Po       HEBREW PUNCTUATION MAQAF\r
+05C0          ; AL # Po       HEBREW PUNCTUATION PASEQ\r
+05C3          ; AL # Po       HEBREW PUNCTUATION SOF PASUQ\r
+05D0..05EA    ; AL # Lo  [27] HEBREW LETTER ALEF..HEBREW LETTER TAV\r
+05F0..05F2    ; AL # Lo   [3] HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW LIGATURE YIDDISH DOUBLE YOD\r
+05F3..05F4    ; AL # Po   [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM\r
+060C          ; AL # Po       ARABIC COMMA\r
+061B          ; AL # Po       ARABIC SEMICOLON\r
+061F          ; AL # Po       ARABIC QUESTION MARK\r
+0621..063A    ; AL # Lo  [26] ARABIC LETTER HAMZA..ARABIC LETTER GHAIN\r
+0640          ; AL # Lm       ARABIC TATWEEL\r
+0641..064A    ; AL # Lo  [10] ARABIC LETTER FEH..ARABIC LETTER YEH\r
+066A..066D    ; AL # Po   [4] ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR\r
+0671..06D3    ; AL # Lo  [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE\r
+06D4          ; AL # Po       ARABIC FULL STOP\r
+06D5          ; AL # Lo       ARABIC LETTER AE\r
+06E5..06E6    ; AL # Lm   [2] ARABIC SMALL WAW..ARABIC SMALL YEH\r
+06E9          ; AL # So       ARABIC PLACE OF SAJDAH\r
+06FA..06FC    ; AL # Lo   [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW\r
+06FD..06FE    ; AL # So   [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN\r
+0700..070D    ; AL # Po  [14] SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS\r
+0710          ; AL # Lo       SYRIAC LETTER ALAPH\r
+0712..072C    ; AL # Lo  [27] SYRIAC LETTER BETH..SYRIAC LETTER TAW\r
+0780..07A5    ; AL # Lo  [38] THAANA LETTER HAA..THAANA LETTER WAAVU\r
+0905..0939    ; AL # Lo  [53] DEVANAGARI LETTER A..DEVANAGARI LETTER HA\r
+093D          ; AL # Lo       DEVANAGARI SIGN AVAGRAHA\r
+0950          ; AL # Lo       DEVANAGARI OM\r
+0958..0961    ; AL # Lo  [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL\r
+0964..0965    ; AL # Po   [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA\r
+0970          ; AL # Po       DEVANAGARI ABBREVIATION SIGN\r
+0985..098C    ; AL # Lo   [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L\r
+098F..0990    ; AL # Lo   [2] BENGALI LETTER E..BENGALI LETTER AI\r
+0993..09A8    ; AL # Lo  [22] BENGALI LETTER O..BENGALI LETTER NA\r
+09AA..09B0    ; AL # Lo   [7] BENGALI LETTER PA..BENGALI LETTER RA\r
+09B2          ; AL # Lo       BENGALI LETTER LA\r
+09B6..09B9    ; AL # Lo   [4] BENGALI LETTER SHA..BENGALI LETTER HA\r
+09DC..09DD    ; AL # Lo   [2] BENGALI LETTER RRA..BENGALI LETTER RHA\r
+09DF..09E1    ; AL # Lo   [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL\r
+09F0..09F1    ; AL # Lo   [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL\r
+09F4..09F9    ; AL # No   [6] BENGALI CURRENCY NUMERATOR ONE..BENGALI CURRENCY DENOMINATOR SIXTEEN\r
+09FA          ; AL # So       BENGALI ISSHAR\r
+0A05..0A0A    ; AL # Lo   [6] GURMUKHI LETTER A..GURMUKHI LETTER UU\r
+0A0F..0A10    ; AL # Lo   [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI\r
+0A13..0A28    ; AL # Lo  [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA\r
+0A2A..0A30    ; AL # Lo   [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA\r
+0A32..0A33    ; AL # Lo   [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA\r
+0A35..0A36    ; AL # Lo   [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA\r
+0A38..0A39    ; AL # Lo   [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA\r
+0A59..0A5C    ; AL # Lo   [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA\r
+0A5E          ; AL # Lo       GURMUKHI LETTER FA\r
+0A72..0A74    ; AL # Lo   [3] GURMUKHI IRI..GURMUKHI EK ONKAR\r
+0A85..0A8B    ; AL # Lo   [7] GUJARATI LETTER A..GUJARATI LETTER VOCALIC R\r
+0A8D          ; AL # Lo       GUJARATI VOWEL CANDRA E\r
+0A8F..0A91    ; AL # Lo   [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O\r
+0A93..0AA8    ; AL # Lo  [22] GUJARATI LETTER O..GUJARATI LETTER NA\r
+0AAA..0AB0    ; AL # Lo   [7] GUJARATI LETTER PA..GUJARATI LETTER RA\r
+0AB2..0AB3    ; AL # Lo   [2] GUJARATI LETTER LA..GUJARATI LETTER LLA\r
+0AB5..0AB9    ; AL # Lo   [5] GUJARATI LETTER VA..GUJARATI LETTER HA\r
+0ABD          ; AL # Lo       GUJARATI SIGN AVAGRAHA\r
+0AD0          ; AL # Lo       GUJARATI OM\r
+0AE0          ; AL # Lo       GUJARATI LETTER VOCALIC RR\r
+0B05..0B0C    ; AL # Lo   [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L\r
+0B0F..0B10    ; AL # Lo   [2] ORIYA LETTER E..ORIYA LETTER AI\r
+0B13..0B28    ; AL # Lo  [22] ORIYA LETTER O..ORIYA LETTER NA\r
+0B2A..0B30    ; AL # Lo   [7] ORIYA LETTER PA..ORIYA LETTER RA\r
+0B32..0B33    ; AL # Lo   [2] ORIYA LETTER LA..ORIYA LETTER LLA\r
+0B36..0B39    ; AL # Lo   [4] ORIYA LETTER SHA..ORIYA LETTER HA\r
+0B3D          ; AL # Lo       ORIYA SIGN AVAGRAHA\r
+0B5C..0B5D    ; AL # Lo   [2] ORIYA LETTER RRA..ORIYA LETTER RHA\r
+0B5F..0B61    ; AL # Lo   [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL\r
+0B70          ; AL # So       ORIYA ISSHAR\r
+0B85..0B8A    ; AL # Lo   [6] TAMIL LETTER A..TAMIL LETTER UU\r
+0B8E..0B90    ; AL # Lo   [3] TAMIL LETTER E..TAMIL LETTER AI\r
+0B92..0B95    ; AL # Lo   [4] TAMIL LETTER O..TAMIL LETTER KA\r
+0B99..0B9A    ; AL # Lo   [2] TAMIL LETTER NGA..TAMIL LETTER CA\r
+0B9C          ; AL # Lo       TAMIL LETTER JA\r
+0B9E..0B9F    ; AL # Lo   [2] TAMIL LETTER NYA..TAMIL LETTER TTA\r
+0BA3..0BA4    ; AL # Lo   [2] TAMIL LETTER NNA..TAMIL LETTER TA\r
+0BA8..0BAA    ; AL # Lo   [3] TAMIL LETTER NA..TAMIL LETTER PA\r
+0BAE..0BB5    ; AL # Lo   [8] TAMIL LETTER MA..TAMIL LETTER VA\r
+0BB7..0BB9    ; AL # Lo   [3] TAMIL LETTER SSA..TAMIL LETTER HA\r
+0BF0..0BF2    ; AL # No   [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND\r
+0C05..0C0C    ; AL # Lo   [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L\r
+0C0E..0C10    ; AL # Lo   [3] TELUGU LETTER E..TELUGU LETTER AI\r
+0C12..0C28    ; AL # Lo  [23] TELUGU LETTER O..TELUGU LETTER NA\r
+0C2A..0C33    ; AL # Lo  [10] TELUGU LETTER PA..TELUGU LETTER LLA\r
+0C35..0C39    ; AL # Lo   [5] TELUGU LETTER VA..TELUGU LETTER HA\r
+0C60..0C61    ; AL # Lo   [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL\r
+0C85..0C8C    ; AL # Lo   [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L\r
+0C8E..0C90    ; AL # Lo   [3] KANNADA LETTER E..KANNADA LETTER AI\r
+0C92..0CA8    ; AL # Lo  [23] KANNADA LETTER O..KANNADA LETTER NA\r
+0CAA..0CB3    ; AL # Lo  [10] KANNADA LETTER PA..KANNADA LETTER LLA\r
+0CB5..0CB9    ; AL # Lo   [5] KANNADA LETTER VA..KANNADA LETTER HA\r
+0CDE          ; AL # Lo       KANNADA LETTER FA\r
+0CE0..0CE1    ; AL # Lo   [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL\r
+0D05..0D0C    ; AL # Lo   [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L\r
+0D0E..0D10    ; AL # Lo   [3] MALAYALAM LETTER E..MALAYALAM LETTER AI\r
+0D12..0D28    ; AL # Lo  [23] MALAYALAM LETTER O..MALAYALAM LETTER NA\r
+0D2A..0D39    ; AL # Lo  [16] MALAYALAM LETTER PA..MALAYALAM LETTER HA\r
+0D60..0D61    ; AL # Lo   [2] MALAYALAM LETTER VOCALIC RR..MALAYALAM LETTER VOCALIC LL\r
+0D85..0D96    ; AL # Lo  [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA\r
+0D9A..0DB1    ; AL # Lo  [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA\r
+0DB3..0DBB    ; AL # Lo   [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA\r
+0DBD          ; AL # Lo       SINHALA LETTER DANTAJA LAYANNA\r
+0DC0..0DC6    ; AL # Lo   [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA\r
+0DF4          ; AL # Po       SINHALA PUNCTUATION KUNDDALIYA\r
+0E4F          ; AL # Po       THAI CHARACTER FONGMAN\r
+0F00          ; AL # Lo       TIBETAN SYLLABLE OM\r
+0F01..0F03    ; AL # So   [3] TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA\r
+0F04..0F0A    ; AL # Po   [7] TIBETAN MARK INITIAL YIG MGO MDUN MA..TIBETAN MARK BKA- SHOG YIG MGO\r
+0F0D..0F12    ; AL # Po   [6] TIBETAN MARK SHAD..TIBETAN MARK RGYA GRAM SHAD\r
+0F13..0F17    ; AL # So   [5] TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS\r
+0F1A..0F1F    ; AL # So   [6] TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG\r
+0F2A..0F33    ; AL # No  [10] TIBETAN DIGIT HALF ONE..TIBETAN DIGIT HALF ZERO\r
+0F34          ; AL # So       TIBETAN MARK BSDUS RTAGS\r
+0F36          ; AL # So       TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN\r
+0F38          ; AL # So       TIBETAN MARK CHE MGO\r
+0F40..0F47    ; AL # Lo   [8] TIBETAN LETTER KA..TIBETAN LETTER JA\r
+0F49..0F6A    ; AL # Lo  [34] TIBETAN LETTER NYA..TIBETAN LETTER FIXED-FORM RA\r
+0F85          ; AL # Po       TIBETAN MARK PALUTA\r
+0F88..0F8B    ; AL # Lo   [4] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN GRU MED RGYINGS\r
+0FBE..0FC5    ; AL # So   [8] TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE\r
+0FC7..0FCC    ; AL # So   [6] TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL\r
+0FCF          ; AL # So       TIBETAN SIGN RDEL NAG GSUM\r
+104A..104F    ; AL # Po   [6] MYANMAR SIGN LITTLE SECTION..MYANMAR SYMBOL GENITIVE\r
+10A0..10C5    ; AL # L&  [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE\r
+10D0..10F6    ; AL # Lo  [39] GEORGIAN LETTER AN..GEORGIAN LETTER FI\r
+10FB          ; AL # Po       GEORGIAN PARAGRAPH SEPARATOR\r
+1200..1206    ; AL # Lo   [7] ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE HO\r
+1208..1246    ; AL # Lo  [63] ETHIOPIC SYLLABLE LA..ETHIOPIC SYLLABLE QO\r
+1248          ; AL # Lo       ETHIOPIC SYLLABLE QWA\r
+124A..124D    ; AL # Lo   [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE\r
+1250..1256    ; AL # Lo   [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO\r
+1258          ; AL # Lo       ETHIOPIC SYLLABLE QHWA\r
+125A..125D    ; AL # Lo   [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE\r
+1260..1286    ; AL # Lo  [39] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XO\r
+1288          ; AL # Lo       ETHIOPIC SYLLABLE XWA\r
+128A..128D    ; AL # Lo   [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE\r
+1290..12AE    ; AL # Lo  [31] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KO\r
+12B0          ; AL # Lo       ETHIOPIC SYLLABLE KWA\r
+12B2..12B5    ; AL # Lo   [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE\r
+12B8..12BE    ; AL # Lo   [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO\r
+12C0          ; AL # Lo       ETHIOPIC SYLLABLE KXWA\r
+12C2..12C5    ; AL # Lo   [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE\r
+12C8..12CE    ; AL # Lo   [7] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE WO\r
+12D0..12D6    ; AL # Lo   [7] ETHIOPIC SYLLABLE PHARYNGEAL A..ETHIOPIC SYLLABLE PHARYNGEAL O\r
+12D8..12EE    ; AL # Lo  [23] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE YO\r
+12F0..130E    ; AL # Lo  [31] ETHIOPIC SYLLABLE DA..ETHIOPIC SYLLABLE GO\r
+1310          ; AL # Lo       ETHIOPIC SYLLABLE GWA\r
+1312..1315    ; AL # Lo   [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE\r
+1318..131E    ; AL # Lo   [7] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE GGO\r
+1320..1346    ; AL # Lo  [39] ETHIOPIC SYLLABLE THA..ETHIOPIC SYLLABLE TZO\r
+1348..135A    ; AL # Lo  [19] ETHIOPIC SYLLABLE FA..ETHIOPIC SYLLABLE FYA\r
+1362..1368    ; AL # Po   [7] ETHIOPIC FULL STOP..ETHIOPIC PARAGRAPH SEPARATOR\r
+1372..137C    ; AL # No  [11] ETHIOPIC NUMBER TEN..ETHIOPIC NUMBER TEN THOUSAND\r
+13A0..13F4    ; AL # Lo  [85] CHEROKEE LETTER A..CHEROKEE LETTER YV\r
+1401..166C    ; AL # Lo [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA\r
+166D..166E    ; AL # Po   [2] CANADIAN SYLLABICS CHI SIGN..CANADIAN SYLLABICS FULL STOP\r
+166F..1676    ; AL # Lo   [8] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS NNGAA\r
+1681..169A    ; AL # Lo  [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH\r
+16A0..16EA    ; AL # Lo  [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X\r
+16EB..16ED    ; AL # Po   [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION\r
+16EE..16F0    ; AL # Nl   [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL\r
+17DC          ; AL # Po       KHMER SIGN AVAKRAHASANYA\r
+1800..1805    ; AL # Po   [6] MONGOLIAN BIRGA..MONGOLIAN FOUR DOTS\r
+1807..180A    ; AL # Po   [4] MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER..MONGOLIAN NIRUGU\r
+1820..1842    ; AL # Lo  [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI\r
+1843          ; AL # Lm       MONGOLIAN LETTER TODO LONG VOWEL SIGN\r
+1844..1877    ; AL # Lo  [52] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER MANCHU ZHA\r
+1880..18A8    ; AL # Lo  [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA\r
+1E00..1E9B    ; AL # L& [156] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER LONG S WITH DOT ABOVE\r
+1EA0..1EF9    ; AL # L&  [90] LATIN CAPITAL LETTER A WITH DOT BELOW..LATIN SMALL LETTER Y WITH TILDE\r
+1F00..1F15    ; AL # L&  [22] GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA\r
+1F18..1F1D    ; AL # L&   [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA\r
+1F20..1F45    ; AL # L&  [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA\r
+1F48..1F4D    ; AL # L&   [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA\r
+1F50..1F57    ; AL # L&   [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI\r
+1F59          ; AL # L&       GREEK CAPITAL LETTER UPSILON WITH DASIA\r
+1F5B          ; AL # L&       GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA\r
+1F5D          ; AL # L&       GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA\r
+1F5F..1F7D    ; AL # L&  [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA\r
+1F80..1FB4    ; AL # L&  [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI\r
+1FB6..1FBC    ; AL # L&   [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI\r
+1FBD          ; AL # Sk       GREEK KORONIS\r
+1FBE          ; AL # L&       GREEK PROSGEGRAMMENI\r
+1FBF..1FC1    ; AL # Sk   [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI\r
+1FC2..1FC4    ; AL # L&   [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI\r
+1FC6..1FCC    ; AL # L&   [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI\r
+1FCD..1FCF    ; AL # Sk   [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI\r
+1FD0..1FD3    ; AL # L&   [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA\r
+1FD6..1FDB    ; AL # L&   [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA\r
+1FDD..1FDF    ; AL # Sk   [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI\r
+1FE0..1FEC    ; AL # L&  [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA\r
+1FED..1FEF    ; AL # Sk   [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA\r
+1FF2..1FF4    ; AL # L&   [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI\r
+1FF6..1FFC    ; AL # L&   [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI\r
+1FFD..1FFE    ; AL # Sk   [2] GREEK OXIA..GREEK DASIA\r
+2017          ; AL # Po       DOUBLE LOW LINE\r
+2022..2023    ; AL # Po   [2] BULLET..TRIANGULAR BULLET\r
+2038          ; AL # Po       CARET\r
+203D..203E    ; AL # Po   [2] INTERROBANG..OVERLINE\r
+203F..2040    ; AL # Pc   [2] UNDERTIE..CHARACTER TIE\r
+2041..2043    ; AL # Po   [3] CARET INSERTION POINT..HYPHEN BULLET\r
+2048..204D    ; AL # Po   [6] QUESTION EXCLAMATION MARK..BLACK RIGHTWARDS BULLET\r
+2070          ; AL # No       SUPERSCRIPT ZERO\r
+2075..2079    ; AL # No   [5] SUPERSCRIPT FIVE..SUPERSCRIPT NINE\r
+207A..207C    ; AL # Sm   [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN\r
+2080          ; AL # No       SUBSCRIPT ZERO\r
+2085..2089    ; AL # No   [5] SUBSCRIPT FIVE..SUBSCRIPT NINE\r
+208A..208C    ; AL # Sm   [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN\r
+2100..2101    ; AL # So   [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT\r
+2102          ; AL # L&       DOUBLE-STRUCK CAPITAL C\r
+2104          ; AL # So       CENTRE LINE SYMBOL\r
+2106          ; AL # So       CADA UNA\r
+2107          ; AL # L&       EULER CONSTANT\r
+2108          ; AL # So       SCRUPLE\r
+210A..2112    ; AL # L&   [9] SCRIPT SMALL G..SCRIPT CAPITAL L\r
+2114          ; AL # So       L B BAR SYMBOL\r
+2115          ; AL # L&       DOUBLE-STRUCK CAPITAL N\r
+2117..2118    ; AL # So   [2] SOUND RECORDING COPYRIGHT..SCRIPT CAPITAL P\r
+2119..211D    ; AL # L&   [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R\r
+211E..2120    ; AL # So   [3] PRESCRIPTION TAKE..SERVICE MARK\r
+2123          ; AL # So       VERSICLE\r
+2124          ; AL # L&       DOUBLE-STRUCK CAPITAL Z\r
+2125          ; AL # So       OUNCE SIGN\r
+2127          ; AL # So       INVERTED OHM SIGN\r
+2128          ; AL # L&       BLACK-LETTER CAPITAL Z\r
+2129          ; AL # So       TURNED GREEK SMALL LETTER IOTA\r
+212A          ; AL # L&       KELVIN SIGN\r
+212C..212D    ; AL # L&   [2] SCRIPT CAPITAL B..BLACK-LETTER CAPITAL C\r
+212E          ; AL # So       ESTIMATED SYMBOL\r
+212F..2131    ; AL # L&   [3] SCRIPT SMALL E..SCRIPT CAPITAL F\r
+2132          ; AL # So       TURNED CAPITAL F\r
+2133..2134    ; AL # L&   [2] SCRIPT CAPITAL M..SCRIPT SMALL O\r
+2135..2138    ; AL # Lo   [4] ALEF SYMBOL..DALET SYMBOL\r
+2139          ; AL # L&       INFORMATION SOURCE\r
+213A          ; AL # So       ROTATED CAPITAL Q\r
+2153          ; AL # No       VULGAR FRACTION ONE THIRD\r
+2156..215A    ; AL # No   [5] VULGAR FRACTION TWO FIFTHS..VULGAR FRACTION FIVE SIXTHS\r
+215C..215D    ; AL # No   [2] VULGAR FRACTION THREE EIGHTHS..VULGAR FRACTION FIVE EIGHTHS\r
+215F          ; AL # No       FRACTION NUMERATOR ONE\r
+216C..216F    ; AL # Nl   [4] ROMAN NUMERAL FIFTY..ROMAN NUMERAL ONE THOUSAND\r
+217A..2183    ; AL # Nl  [10] SMALL ROMAN NUMERAL ELEVEN..ROMAN NUMERAL REVERSED ONE HUNDRED\r
+219A..219B    ; AL # Sm   [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE\r
+219C..219F    ; AL # So   [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW\r
+21A0          ; AL # Sm       RIGHTWARDS TWO HEADED ARROW\r
+21A1..21A2    ; AL # So   [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL\r
+21A3          ; AL # Sm       RIGHTWARDS ARROW WITH TAIL\r
+21A4..21A5    ; AL # So   [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR\r
+21A6          ; AL # Sm       RIGHTWARDS ARROW FROM BAR\r
+21A7..21AD    ; AL # So   [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE ARROW\r
+21AE          ; AL # Sm       LEFT RIGHT ARROW WITH STROKE\r
+21AF..21CD    ; AL # So  [31] DOWNWARDS ZIGZAG ARROW..LEFTWARDS DOUBLE ARROW WITH STROKE\r
+21CE..21CF    ; AL # Sm   [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE\r
+21D0..21D1    ; AL # So   [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW\r
+21D3          ; AL # So       DOWNWARDS DOUBLE ARROW\r
+21D5..21F3    ; AL # So  [31] UP DOWN DOUBLE ARROW..UP DOWN WHITE ARROW\r
+2201          ; AL # Sm       COMPLEMENT\r
+2204..2206    ; AL # Sm   [3] THERE DOES NOT EXIST..INCREMENT\r
+2209..220A    ; AL # Sm   [2] NOT AN ELEMENT OF..SMALL ELEMENT OF\r
+220C..220E    ; AL # Sm   [3] DOES NOT CONTAIN AS MEMBER..END OF PROOF\r
+2210          ; AL # Sm       N-ARY COPRODUCT\r
+2214          ; AL # Sm       DOT PLUS\r
+2216..2219    ; AL # Sm   [4] SET MINUS..BULLET OPERATOR\r
+221B..221C    ; AL # Sm   [2] CUBE ROOT..FOURTH ROOT\r
+2221..2222    ; AL # Sm   [2] MEASURED ANGLE..SPHERICAL ANGLE\r
+2224          ; AL # Sm       DOES NOT DIVIDE\r
+2226          ; AL # Sm       NOT PARALLEL TO\r
+222D          ; AL # Sm       TRIPLE INTEGRAL\r
+222F..2233    ; AL # Sm   [5] SURFACE INTEGRAL..ANTICLOCKWISE CONTOUR INTEGRAL\r
+2238..223B    ; AL # Sm   [4] DOT MINUS..HOMOTHETIC\r
+223E..2247    ; AL # Sm  [10] INVERTED LAZY S..NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO\r
+2249..224B    ; AL # Sm   [3] NOT ALMOST EQUAL TO..TRIPLE TILDE\r
+224D..2251    ; AL # Sm   [5] EQUIVALENT TO..GEOMETRICALLY EQUAL TO\r
+2253..225F    ; AL # Sm  [13] IMAGE OF OR APPROXIMATELY EQUAL TO..QUESTIONED EQUAL TO\r
+2262..2263    ; AL # Sm   [2] NOT IDENTICAL TO..STRICTLY EQUIVALENT TO\r
+2268..2269    ; AL # Sm   [2] LESS-THAN BUT NOT EQUAL TO..GREATER-THAN BUT NOT EQUAL TO\r
+226C..226D    ; AL # Sm   [2] BETWEEN..NOT EQUIVALENT TO\r
+2270..2281    ; AL # Sm  [18] NEITHER LESS-THAN NOR EQUAL TO..DOES NOT SUCCEED\r
+2284..2285    ; AL # Sm   [2] NOT A SUBSET OF..NOT A SUPERSET OF\r
+2288..2294    ; AL # Sm  [13] NEITHER A SUBSET OF NOR EQUAL TO..SQUARE CUP\r
+2296..2298    ; AL # Sm   [3] CIRCLED MINUS..CIRCLED DIVISION SLASH\r
+229A..22A4    ; AL # Sm  [11] CIRCLED RING OPERATOR..DOWN TACK\r
+22A6..22BE    ; AL # Sm  [25] ASSERTION..RIGHT ANGLE WITH ARC\r
+22C0..22F1    ; AL # Sm  [50] N-ARY LOGICAL AND..DOWN RIGHT DIAGONAL ELLIPSIS\r
+2300..2307    ; AL # So   [8] DIAMETER SIGN..WAVY LINE\r
+2308..230B    ; AL # Sm   [4] LEFT CEILING..RIGHT FLOOR\r
+230C..2311    ; AL # So   [6] BOTTOM RIGHT CROP..SQUARE LOZENGE\r
+2313..231F    ; AL # So  [13] SEGMENT..BOTTOM RIGHT CORNER\r
+2320..2321    ; AL # Sm   [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL\r
+2322..2328    ; AL # So   [7] FROWN..KEYBOARD\r
+232B..237B    ; AL # So  [81] ERASE TO THE LEFT..NOT CHECK MARK\r
+237D..239A    ; AL # So  [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL\r
+2400..2426    ; AL # So  [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO\r
+2440..244A    ; AL # So  [11] OCR HOOK..OCR DOUBLE BACKSLASH\r
+24C0..24CF    ; AL # So  [16] CIRCLED LATIN CAPITAL LETTER K..CIRCLED LATIN CAPITAL LETTER Z\r
+24EA          ; AL # No       CIRCLED DIGIT ZERO\r
+254C..254F    ; AL # So   [4] BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL..BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL\r
+2575..257F    ; AL # So  [11] BOX DRAWINGS LIGHT UP..BOX DRAWINGS HEAVY UP AND LIGHT DOWN\r
+2590..2591    ; AL # So   [2] RIGHT HALF BLOCK..LIGHT SHADE\r
+25A2          ; AL # So       WHITE SQUARE WITH ROUNDED CORNERS\r
+25AA..25B1    ; AL # So   [8] BLACK SMALL SQUARE..WHITE PARALLELOGRAM\r
+25B4..25B5    ; AL # So   [2] BLACK UP-POINTING SMALL TRIANGLE..WHITE UP-POINTING SMALL TRIANGLE\r
+25B8..25BB    ; AL # So   [4] BLACK RIGHT-POINTING SMALL TRIANGLE..WHITE RIGHT-POINTING POINTER\r
+25BE..25BF    ; AL # So   [2] BLACK DOWN-POINTING SMALL TRIANGLE..WHITE DOWN-POINTING SMALL TRIANGLE\r
+25C2..25C5    ; AL # So   [4] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE LEFT-POINTING POINTER\r
+25C9..25CA    ; AL # So   [2] FISHEYE..LOZENGE\r
+25CC..25CD    ; AL # So   [2] DOTTED CIRCLE..CIRCLE WITH VERTICAL FILL\r
+25D2..25E1    ; AL # So  [16] CIRCLE WITH LOWER HALF BLACK..LOWER HALF CIRCLE\r
+25E6..25EE    ; AL # So   [9] WHITE BULLET..UP-POINTING TRIANGLE WITH RIGHT HALF BLACK\r
+25F0..25F7    ; AL # So   [8] WHITE SQUARE WITH UPPER LEFT QUADRANT..WHITE CIRCLE WITH UPPER RIGHT QUADRANT\r
+2600..2604    ; AL # So   [5] BLACK SUN WITH RAYS..COMET\r
+2607..2608    ; AL # So   [2] LIGHTNING..THUNDERSTORM\r
+260A..260D    ; AL # So   [4] ASCENDING NODE..OPPOSITION\r
+2610..2613    ; AL # So   [4] BALLOT BOX..SALTIRE\r
+2619..261B    ; AL # So   [3] REVERSED ROTATED FLORAL HEART BULLET..BLACK RIGHT POINTING INDEX\r
+261D          ; AL # So       WHITE UP POINTING INDEX\r
+261F..263F    ; AL # So  [33] WHITE DOWN POINTING INDEX..MERCURY\r
+2641          ; AL # So       EARTH\r
+2643..265F    ; AL # So  [29] JUPITER..BLACK CHESS PAWN\r
+2662          ; AL # So       WHITE DIAMOND SUIT\r
+2666          ; AL # So       BLACK DIAMOND SUIT\r
+266B          ; AL # So       BEAMED EIGHTH NOTES\r
+266E          ; AL # So       MUSIC NATURAL SIGN\r
+2670..2671    ; AL # So   [2] WEST SYRIAC CROSS..EAST SYRIAC CROSS\r
+2701..2704    ; AL # So   [4] UPPER BLADE SCISSORS..WHITE SCISSORS\r
+2706..2709    ; AL # So   [4] TELEPHONE LOCATION SIGN..ENVELOPE\r
+270C..2727    ; AL # So  [28] VICTORY HAND..WHITE FOUR POINTED STAR\r
+2729..274B    ; AL # So  [35] STRESS OUTLINED WHITE STAR..HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK\r
+274D          ; AL # So       SHADOWED WHITE CIRCLE\r
+274F..2752    ; AL # So   [4] LOWER RIGHT DROP-SHADOWED WHITE SQUARE..UPPER RIGHT SHADOWED WHITE SQUARE\r
+2756          ; AL # So       BLACK DIAMOND MINUS WHITE X\r
+2758..275E    ; AL # So   [7] LIGHT VERTICAL BAR..HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT\r
+2761..2767    ; AL # So   [7] CURVED STEM PARAGRAPH SIGN ORNAMENT..ROTATED FLORAL HEART BULLET\r
+2776..2793    ; AL # No  [30] DINGBAT NEGATIVE CIRCLED DIGIT ONE..DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN\r
+2794          ; AL # So       HEAVY WIDE-HEADED RIGHTWARDS ARROW\r
+2798..27AF    ; AL # So  [24] HEAVY SOUTH EAST ARROW..NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW\r
+27B1..27BE    ; AL # So  [14] NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW..OPEN-OUTLINED RIGHTWARDS ARROW\r
+2800..28FF    ; AL # So [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678\r
+FB00..FB06    ; AL # L&   [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST\r
+FB13..FB17    ; AL # L&   [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH\r
+FB1D          ; AL # Lo       HEBREW LETTER YOD WITH HIRIQ\r
+FB1F..FB28    ; AL # Lo  [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV\r
+FB29          ; AL # Sm       HEBREW LETTER ALTERNATIVE PLUS SIGN\r
+FB2A..FB36    ; AL # Lo  [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH\r
+FB38..FB3C    ; AL # Lo   [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH\r
+FB3E          ; AL # Lo       HEBREW LETTER MEM WITH DAGESH\r
+FB40..FB41    ; AL # Lo   [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH\r
+FB43..FB44    ; AL # Lo   [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH\r
+FB46..FBB1    ; AL # Lo [108] HEBREW LETTER TSADI WITH DAGESH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM\r
+FBD3..FD3D    ; AL # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM\r
+FD50..FD8F    ; AL # Lo  [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM\r
+FD92..FDC7    ; AL # Lo  [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM\r
+FDF0..FDFB    ; AL # Lo  [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU\r
+FE70..FE72    ; AL # Lo   [3] ARABIC FATHATAN ISOLATED FORM..ARABIC DAMMATAN ISOLATED FORM\r
+FE74          ; AL # Lo       ARABIC KASRATAN ISOLATED FORM\r
+FE76..FEFC    ; AL # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM\r
+FF66          ; AL # Lo       HALFWIDTH KATAKANA LETTER WO\r
+FF71..FF9D    ; AL # Lo  [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N\r
+FFA0..FFBE    ; AL # Lo  [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH\r
+FFC2..FFC7    ; AL # Lo   [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E\r
+FFCA..FFCF    ; AL # Lo   [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE\r
+FFD2..FFD7    ; AL # Lo   [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU\r
+FFDA..FFDC    ; AL # Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I\r
+FFE8          ; AL # So       HALFWIDTH FORMS LIGHT VERTICAL\r
+FFE9..FFEC    ; AL # Sm   [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW\r
+FFED..FFEE    ; AL # So   [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE\r
+10300..1031E  ; AL # Lo  [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU\r
+10320..10323  ; AL # No   [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY\r
+10330..10349  ; AL # Lo  [26] GOTHIC LETTER AHSA..GOTHIC LETTER OTHAL\r
+1034A         ; AL # Nl       GOTHIC LETTER NINE HUNDRED\r
+10400..10425  ; AL # L&  [38] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER ENG\r
+10428..1044D  ; AL # L&  [38] DESERET SMALL LETTER LONG I..DESERET SMALL LETTER ENG\r
+1D000..1D0F5  ; AL # So [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO\r
+1D100..1D126  ; AL # So  [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2\r
+1D12A..1D164  ; AL # So  [59] MUSICAL SYMBOL DOUBLE SHARP..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE\r
+1D16A..1D16C  ; AL # So   [3] MUSICAL SYMBOL FINGERED TREMOLO-1..MUSICAL SYMBOL FINGERED TREMOLO-3\r
+1D183..1D184  ; AL # So   [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN\r
+1D18C..1D1A9  ; AL # So  [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH\r
+1D1AE..1D1DD  ; AL # So  [48] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL PES SUBPUNCTIS\r
+1D400..1D454  ; AL # L&  [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G\r
+1D456..1D49C  ; AL # L&  [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A\r
+1D49E..1D49F  ; AL # L&   [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D\r
+1D4A2         ; AL # L&       MATHEMATICAL SCRIPT CAPITAL G\r
+1D4A5..1D4A6  ; AL # L&   [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K\r
+1D4A9..1D4AC  ; AL # L&   [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q\r
+1D4AE..1D4B9  ; AL # L&  [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D\r
+1D4BB         ; AL # L&       MATHEMATICAL SCRIPT SMALL F\r
+1D4BD..1D4C0  ; AL # L&   [4] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL K\r
+1D4C2..1D4C3  ; AL # L&   [2] MATHEMATICAL SCRIPT SMALL M..MATHEMATICAL SCRIPT SMALL N\r
+1D4C5..1D505  ; AL # L&  [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B\r
+1D507..1D50A  ; AL # L&   [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G\r
+1D50D..1D514  ; AL # L&   [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q\r
+1D516..1D51C  ; AL # L&   [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y\r
+1D51E..1D539  ; AL # L&  [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B\r
+1D53B..1D53E  ; AL # L&   [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G\r
+1D540..1D544  ; AL # L&   [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M\r
+1D546         ; AL # L&       MATHEMATICAL DOUBLE-STRUCK CAPITAL O\r
+1D54A..1D550  ; AL # L&   [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y\r
+1D552..1D6A3  ; AL # L& [338] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL MONOSPACE SMALL Z\r
+1D6A8..1D6C0  ; AL # L&  [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA\r
+1D6C1         ; AL # Sm       MATHEMATICAL BOLD NABLA\r
+1D6C2..1D6DA  ; AL # L&  [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA\r
+1D6DB         ; AL # Sm       MATHEMATICAL BOLD PARTIAL DIFFERENTIAL\r
+1D6DC..1D6FA  ; AL # L&  [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA\r
+1D6FB         ; AL # Sm       MATHEMATICAL ITALIC NABLA\r
+1D6FC..1D714  ; AL # L&  [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA\r
+1D715         ; AL # Sm       MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL\r
+1D716..1D734  ; AL # L&  [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA\r
+1D735         ; AL # Sm       MATHEMATICAL BOLD ITALIC NABLA\r
+1D736..1D74E  ; AL # L&  [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA\r
+1D74F         ; AL # Sm       MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL\r
+1D750..1D76E  ; AL # L&  [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA\r
+1D76F         ; AL # Sm       MATHEMATICAL SANS-SERIF BOLD NABLA\r
+1D770..1D788  ; AL # L&  [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA\r
+1D789         ; AL # Sm       MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL\r
+1D78A..1D7A8  ; AL # L&  [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA\r
+1D7A9         ; AL # Sm       MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA\r
+1D7AA..1D7C2  ; AL # L&  [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA\r
+1D7C3         ; AL # Sm       MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL\r
+1D7C4..1D7C9  ; AL # L&   [6] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL\r
+\r
+# Total code points: 7183\r
+\r
+# ================================================\r
+\r
+1100..1159    ; ID # Lo  [90] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG YEORINHIEUH\r
+115F          ; ID # Lo       HANGUL CHOSEONG FILLER\r
+2E80..2E99    ; ID # So  [26] CJK RADICAL REPEAT..CJK RADICAL RAP\r
+2E9B..2EF3    ; ID # So  [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE\r
+2F00..2FD5    ; ID # So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE\r
+2FF0..2FFB    ; ID # So  [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID\r
+3000          ; ID # Zs       IDEOGRAPHIC SPACE\r
+3003          ; ID # Po       DITTO MARK\r
+3004          ; ID # So       JAPANESE INDUSTRIAL STANDARD SYMBOL\r
+3006          ; ID # Lo       IDEOGRAPHIC CLOSING MARK\r
+3007          ; ID # Nl       IDEOGRAPHIC NUMBER ZERO\r
+3012..3013    ; ID # So   [2] POSTAL MARK..GETA MARK\r
+3020          ; ID # So       POSTAL MARK FACE\r
+3021..3029    ; ID # Nl   [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE\r
+3030          ; ID # Pd       WAVY DASH\r
+3031..3035    ; ID # Lm   [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF\r
+3036..3037    ; ID # So   [2] CIRCLED POSTAL MARK..IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL\r
+3038..303A    ; ID # Nl   [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY\r
+303E..303F    ; ID # So   [2] IDEOGRAPHIC VARIATION INDICATOR..IDEOGRAPHIC HALF FILL SPACE\r
+3042          ; ID # Lo       HIRAGANA LETTER A\r
+3044          ; ID # Lo       HIRAGANA LETTER I\r
+3046          ; ID # Lo       HIRAGANA LETTER U\r
+3048          ; ID # Lo       HIRAGANA LETTER E\r
+304A..3062    ; ID # Lo  [25] HIRAGANA LETTER O..HIRAGANA LETTER DI\r
+3064..3082    ; ID # Lo  [31] HIRAGANA LETTER TU..HIRAGANA LETTER MO\r
+3084          ; ID # Lo       HIRAGANA LETTER YA\r
+3086          ; ID # Lo       HIRAGANA LETTER YU\r
+3088..308D    ; ID # Lo   [6] HIRAGANA LETTER YO..HIRAGANA LETTER RO\r
+308F..3094    ; ID # Lo   [6] HIRAGANA LETTER WA..HIRAGANA LETTER VU\r
+30A2          ; ID # Lo       KATAKANA LETTER A\r
+30A4          ; ID # Lo       KATAKANA LETTER I\r
+30A6          ; ID # Lo       KATAKANA LETTER U\r
+30A8          ; ID # Lo       KATAKANA LETTER E\r
+30AA..30C2    ; ID # Lo  [25] KATAKANA LETTER O..KATAKANA LETTER DI\r
+30C4..30E2    ; ID # Lo  [31] KATAKANA LETTER TU..KATAKANA LETTER MO\r
+30E4          ; ID # Lo       KATAKANA LETTER YA\r
+30E6          ; ID # Lo       KATAKANA LETTER YU\r
+30E8..30ED    ; ID # Lo   [6] KATAKANA LETTER YO..KATAKANA LETTER RO\r
+30EF..30F4    ; ID # Lo   [6] KATAKANA LETTER WA..KATAKANA LETTER VU\r
+30F7..30FA    ; ID # Lo   [4] KATAKANA LETTER VA..KATAKANA LETTER VO\r
+30FC          ; ID # Lm       KATAKANA-HIRAGANA PROLONGED SOUND MARK\r
+30FE          ; ID # Lm       KATAKANA VOICED ITERATION MARK\r
+3105..312C    ; ID # Lo  [40] BOPOMOFO LETTER B..BOPOMOFO LETTER GN\r
+3131..318E    ; ID # Lo  [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE\r
+3190..3191    ; ID # So   [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK\r
+3192..3195    ; ID # No   [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK\r
+3196..319F    ; ID # So  [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK\r
+31A0..31B7    ; ID # Lo  [24] BOPOMOFO LETTER BU..BOPOMOFO FINAL LETTER H\r
+3200..321C    ; ID # So  [29] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED HANGUL CIEUC U\r
+3220..3229    ; ID # No  [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN\r
+322A..3243    ; ID # So  [26] PARENTHESIZED IDEOGRAPH MOON..PARENTHESIZED IDEOGRAPH REACH\r
+3260..327B    ; ID # So  [28] CIRCLED HANGUL KIYEOK..CIRCLED HANGUL HIEUH A\r
+327F          ; ID # So       KOREAN STANDARD SYMBOL\r
+3280..3289    ; ID # No  [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN\r
+328A..32B0    ; ID # So  [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT\r
+32C0..32CB    ; ID # So  [12] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER\r
+32D0..32FE    ; ID # So  [47] CIRCLED KATAKANA A..CIRCLED KATAKANA WO\r
+3300..3376    ; ID # So [119] SQUARE APAATO..SQUARE PC\r
+337B..33DD    ; ID # So  [99] SQUARE ERA NAME HEISEI..SQUARE WB\r
+33E0..33FE    ; ID # So  [31] IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE..IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE\r
+3400..4DB5    ; ID # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5\r
+4E00..9FA5    ; ID # Lo [20902] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FA5\r
+A000..A48C    ; ID # Lo [1165] YI SYLLABLE IT..YI SYLLABLE YYR\r
+A490..A4A1    ; ID # So  [18] YI RADICAL QOT..YI RADICAL GA\r
+A4A4..A4B3    ; ID # So  [16] YI RADICAL DDUR..YI RADICAL JO\r
+A4B5..A4C0    ; ID # So  [12] YI RADICAL JJY..YI RADICAL SHAT\r
+A4C2..A4C4    ; ID # So   [3] YI RADICAL SHOP..YI RADICAL ZZIET\r
+A4C6          ; ID # So       YI RADICAL KE\r
+AC00..D7A3    ; ID # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH\r
+F900..FA2D    ; ID # Lo [302] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA2D\r
+FE30          ; ID # Po       PRESENTATION FORM FOR VERTICAL TWO DOT LEADER\r
+FE31..FE32    ; ID # Pd   [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH\r
+FE33..FE34    ; ID # Pc   [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE\r
+FE49..FE4C    ; ID # Po   [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE\r
+FE4D..FE4F    ; ID # Pc   [3] DASHED LOW LINE..WAVY LOW LINE\r
+FE51          ; ID # Po       SMALL IDEOGRAPHIC COMMA\r
+FE58          ; ID # Pd       SMALL EM DASH\r
+FE5F..FE61    ; ID # Po   [3] SMALL NUMBER SIGN..SMALL ASTERISK\r
+FE62          ; ID # Sm       SMALL PLUS SIGN\r
+FE63          ; ID # Pd       SMALL HYPHEN-MINUS\r
+FE64..FE66    ; ID # Sm   [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN\r
+FE68          ; ID # Po       SMALL REVERSE SOLIDUS\r
+FE6B          ; ID # Po       SMALL COMMERCIAL AT\r
+FF02..FF03    ; ID # Po   [2] FULLWIDTH QUOTATION MARK..FULLWIDTH NUMBER SIGN\r
+FF06..FF07    ; ID # Po   [2] FULLWIDTH AMPERSAND..FULLWIDTH APOSTROPHE\r
+FF0A          ; ID # Po       FULLWIDTH ASTERISK\r
+FF0B          ; ID # Sm       FULLWIDTH PLUS SIGN\r
+FF0D          ; ID # Pd       FULLWIDTH HYPHEN-MINUS\r
+FF0F          ; ID # Po       FULLWIDTH SOLIDUS\r
+FF10..FF19    ; ID # Nd  [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE\r
+FF1C..FF1E    ; ID # Sm   [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN\r
+FF20          ; ID # Po       FULLWIDTH COMMERCIAL AT\r
+FF21..FF3A    ; ID # L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z\r
+FF3C          ; ID # Po       FULLWIDTH REVERSE SOLIDUS\r
+FF3E          ; ID # Sk       FULLWIDTH CIRCUMFLEX ACCENT\r
+FF3F          ; ID # Pc       FULLWIDTH LOW LINE\r
+FF40          ; ID # Sk       FULLWIDTH GRAVE ACCENT\r
+FF41..FF5A    ; ID # L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z\r
+FF5C          ; ID # Sm       FULLWIDTH VERTICAL LINE\r
+FF5E          ; ID # Sm       FULLWIDTH TILDE\r
+FFE2          ; ID # Sm       FULLWIDTH NOT SIGN\r
+FFE3          ; ID # Sk       FULLWIDTH MACRON\r
+FFE4          ; ID # So       FULLWIDTH BROKEN BAR\r
+20000..2A6D6  ; ID # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6\r
+2F800..2FA1D  ; ID # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D\r
+\r
+# Total code points: 84774\r
+\r
+# ================================================\r
+\r
+2024..2026    ; IN # Po   [3] ONE DOT LEADER..HORIZONTAL ELLIPSIS\r
+\r
+# Total code points: 3\r
+\r
+# ================================================\r
+\r
+002D          ; HY # Pd       HYPHEN-MINUS\r
+\r
+# Total code points: 1\r
+\r
+# ================================================\r
+\r
+0000..0008    ; CM # Cc   [9] <control>..<control>\r
+000B          ; CM # Cc       <control>\r
+000E..001F    ; CM # Cc  [18] <control>..<control>\r
+007F..009F    ; CM # Cc  [33] <control>..<control>\r
+0300..034E    ; CM # Mn  [79] COMBINING GRAVE ACCENT..COMBINING UPWARDS ARROW BELOW\r
+0360..0362    ; CM # Mn   [3] COMBINING DOUBLE TILDE..COMBINING DOUBLE RIGHTWARDS ARROW BELOW\r
+0483..0486    ; CM # Mn   [4] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC PSILI PNEUMATA\r
+0488..0489    ; CM # Me   [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN\r
+0591..05A1    ; CM # Mn  [17] HEBREW ACCENT ETNAHTA..HEBREW ACCENT PAZER\r
+05A3..05B9    ; CM # Mn  [23] HEBREW ACCENT MUNAH..HEBREW POINT HOLAM\r
+05BB..05BD    ; CM # Mn   [3] HEBREW POINT QUBUTS..HEBREW POINT METEG\r
+05BF          ; CM # Mn       HEBREW POINT RAFE\r
+05C1..05C2    ; CM # Mn   [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT\r
+05C4          ; CM # Mn       HEBREW MARK UPPER DOT\r
+064B..0655    ; CM # Mn  [11] ARABIC FATHATAN..ARABIC HAMZA BELOW\r
+0670          ; CM # Mn       ARABIC LETTER SUPERSCRIPT ALEF\r
+06D6..06DC    ; CM # Mn   [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN\r
+06DD..06DE    ; CM # Me   [2] ARABIC END OF AYAH..ARABIC START OF RUB EL HIZB\r
+06DF..06E4    ; CM # Mn   [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA\r
+06E7..06E8    ; CM # Mn   [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON\r
+06EA..06ED    ; CM # Mn   [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM\r
+070F          ; CM # Cf       SYRIAC ABBREVIATION MARK\r
+0711          ; CM # Mn       SYRIAC LETTER SUPERSCRIPT ALAPH\r
+0730..074A    ; CM # Mn  [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH\r
+07A6..07B0    ; CM # Mn  [11] THAANA ABAFILI..THAANA SUKUN\r
+0901..0902    ; CM # Mn   [2] DEVANAGARI SIGN CANDRABINDU..DEVANAGARI SIGN ANUSVARA\r
+0903          ; CM # Mc       DEVANAGARI SIGN VISARGA\r
+093C          ; CM # Mn       DEVANAGARI SIGN NUKTA\r
+093E..0940    ; CM # Mc   [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II\r
+0941..0948    ; CM # Mn   [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI\r
+0949..094C    ; CM # Mc   [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU\r
+094D          ; CM # Mn       DEVANAGARI SIGN VIRAMA\r
+0951..0954    ; CM # Mn   [4] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI ACUTE ACCENT\r
+0962..0963    ; CM # Mn   [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL\r
+0981          ; CM # Mn       BENGALI SIGN CANDRABINDU\r
+0982..0983    ; CM # Mc   [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA\r
+09BC          ; CM # Mn       BENGALI SIGN NUKTA\r
+09BE..09C0    ; CM # Mc   [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II\r
+09C1..09C4    ; CM # Mn   [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR\r
+09C7..09C8    ; CM # Mc   [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI\r
+09CB..09CC    ; CM # Mc   [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU\r
+09CD          ; CM # Mn       BENGALI SIGN VIRAMA\r
+09D7          ; CM # Mc       BENGALI AU LENGTH MARK\r
+09E2..09E3    ; CM # Mn   [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL\r
+0A02          ; CM # Mn       GURMUKHI SIGN BINDI\r
+0A3C          ; CM # Mn       GURMUKHI SIGN NUKTA\r
+0A3E..0A40    ; CM # Mc   [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II\r
+0A41..0A42    ; CM # Mn   [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU\r
+0A47..0A48    ; CM # Mn   [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI\r
+0A4B..0A4D    ; CM # Mn   [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA\r
+0A70..0A71    ; CM # Mn   [2] GURMUKHI TIPPI..GURMUKHI ADDAK\r
+0A81..0A82    ; CM # Mn   [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA\r
+0A83          ; CM # Mc       GUJARATI SIGN VISARGA\r
+0ABC          ; CM # Mn       GUJARATI SIGN NUKTA\r
+0ABE..0AC0    ; CM # Mc   [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II\r
+0AC1..0AC5    ; CM # Mn   [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E\r
+0AC7..0AC8    ; CM # Mn   [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI\r
+0AC9          ; CM # Mc       GUJARATI VOWEL SIGN CANDRA O\r
+0ACB..0ACC    ; CM # Mc   [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU\r
+0ACD          ; CM # Mn       GUJARATI SIGN VIRAMA\r
+0B01          ; CM # Mn       ORIYA SIGN CANDRABINDU\r
+0B02..0B03    ; CM # Mc   [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA\r
+0B3C          ; CM # Mn       ORIYA SIGN NUKTA\r
+0B3E          ; CM # Mc       ORIYA VOWEL SIGN AA\r
+0B3F          ; CM # Mn       ORIYA VOWEL SIGN I\r
+0B40          ; CM # Mc       ORIYA VOWEL SIGN II\r
+0B41..0B43    ; CM # Mn   [3] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC R\r
+0B47..0B48    ; CM # Mc   [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI\r
+0B4B..0B4C    ; CM # Mc   [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU\r
+0B4D          ; CM # Mn       ORIYA SIGN VIRAMA\r
+0B56          ; CM # Mn       ORIYA AI LENGTH MARK\r
+0B57          ; CM # Mc       ORIYA AU LENGTH MARK\r
+0B82          ; CM # Mn       TAMIL SIGN ANUSVARA\r
+0B83          ; CM # Mc       TAMIL SIGN VISARGA\r
+0BBE..0BBF    ; CM # Mc   [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I\r
+0BC0          ; CM # Mn       TAMIL VOWEL SIGN II\r
+0BC1..0BC2    ; CM # Mc   [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU\r
+0BC6..0BC8    ; CM # Mc   [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI\r
+0BCA..0BCC    ; CM # Mc   [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU\r
+0BCD          ; CM # Mn       TAMIL SIGN VIRAMA\r
+0BD7          ; CM # Mc       TAMIL AU LENGTH MARK\r
+0C01..0C03    ; CM # Mc   [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA\r
+0C3E..0C40    ; CM # Mn   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II\r
+0C41..0C44    ; CM # Mc   [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR\r
+0C46..0C48    ; CM # Mn   [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI\r
+0C4A..0C4D    ; CM # Mn   [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA\r
+0C55..0C56    ; CM # Mn   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK\r
+0C82..0C83    ; CM # Mc   [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA\r
+0CBE          ; CM # Mc       KANNADA VOWEL SIGN AA\r
+0CBF          ; CM # Mn       KANNADA VOWEL SIGN I\r
+0CC0..0CC4    ; CM # Mc   [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR\r
+0CC6          ; CM # Mn       KANNADA VOWEL SIGN E\r
+0CC7..0CC8    ; CM # Mc   [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI\r
+0CCA..0CCB    ; CM # Mc   [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO\r
+0CCC..0CCD    ; CM # Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA\r
+0CD5..0CD6    ; CM # Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK\r
+0D02..0D03    ; CM # Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA\r
+0D3E..0D40    ; CM # Mc   [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II\r
+0D41..0D43    ; CM # Mn   [3] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC R\r
+0D46..0D48    ; CM # Mc   [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI\r
+0D4A..0D4C    ; CM # Mc   [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU\r
+0D4D          ; CM # Mn       MALAYALAM SIGN VIRAMA\r
+0D57          ; CM # Mc       MALAYALAM AU LENGTH MARK\r
+0D82..0D83    ; CM # Mc   [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA\r
+0DCA          ; CM # Mn       SINHALA SIGN AL-LAKUNA\r
+0DCF..0DD1    ; CM # Mc   [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA\r
+0DD2..0DD4    ; CM # Mn   [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA\r
+0DD6          ; CM # Mn       SINHALA VOWEL SIGN DIGA PAA-PILLA\r
+0DD8..0DDF    ; CM # Mc   [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA\r
+0DF2..0DF3    ; CM # Mc   [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA\r
+0E31          ; CM # Mn       THAI CHARACTER MAI HAN-AKAT\r
+0E34..0E3A    ; CM # Mn   [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU\r
+0E47..0E4E    ; CM # Mn   [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN\r
+0EB1          ; CM # Mn       LAO VOWEL SIGN MAI KAN\r
+0EB4..0EB9    ; CM # Mn   [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU\r
+0EBB..0EBC    ; CM # Mn   [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO\r
+0EC8..0ECD    ; CM # Mn   [6] LAO TONE MAI EK..LAO NIGGAHITA\r
+0F18..0F19    ; CM # Mn   [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS\r
+0F35          ; CM # Mn       TIBETAN MARK NGAS BZUNG NYI ZLA\r
+0F37          ; CM # Mn       TIBETAN MARK NGAS BZUNG SGOR RTAGS\r
+0F39          ; CM # Mn       TIBETAN MARK TSA -PHRU\r
+0F3E..0F3F    ; CM # Mc   [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES\r
+0F71..0F7E    ; CM # Mn  [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO\r
+0F7F          ; CM # Mc       TIBETAN SIGN RNAM BCAD\r
+0F80..0F84    ; CM # Mn   [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA\r
+0F86..0F87    ; CM # Mn   [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS\r
+0F90..0F97    ; CM # Mn   [8] TIBETAN SUBJOINED LETTER KA..TIBETAN SUBJOINED LETTER JA\r
+0F99..0FBC    ; CM # Mn  [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA\r
+0FC6          ; CM # Mn       TIBETAN SYMBOL PADMA GDAN\r
+102C          ; CM # Mc       MYANMAR VOWEL SIGN AA\r
+102D..1030    ; CM # Mn   [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU\r
+1031          ; CM # Mc       MYANMAR VOWEL SIGN E\r
+1032          ; CM # Mn       MYANMAR VOWEL SIGN AI\r
+1036..1037    ; CM # Mn   [2] MYANMAR SIGN ANUSVARA..MYANMAR SIGN DOT BELOW\r
+1038          ; CM # Mc       MYANMAR SIGN VISARGA\r
+1039          ; CM # Mn       MYANMAR SIGN VIRAMA\r
+1056..1057    ; CM # Mc   [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR\r
+1058..1059    ; CM # Mn   [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL\r
+1160..11A2    ; CM # Lo  [67] HANGUL JUNGSEONG FILLER..HANGUL JUNGSEONG SSANGARAEA\r
+11A8..11F9    ; CM # Lo  [82] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG YEORINHIEUH\r
+17B4..17B6    ; CM # Mc   [3] KHMER VOWEL INHERENT AQ..KHMER VOWEL SIGN AA\r
+17B7..17BD    ; CM # Mn   [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA\r
+17BE..17C5    ; CM # Mc   [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU\r
+17C6          ; CM # Mn       KHMER SIGN NIKAHIT\r
+17C7..17C8    ; CM # Mc   [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU\r
+17C9..17D3    ; CM # Mn  [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT\r
+180B..180E    ; CM # Cf   [4] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN VOWEL SEPARATOR\r
+18A9          ; CM # Mn       MONGOLIAN LETTER ALI GALI DAGALGA\r
+200C..200F    ; CM # Cf   [4] ZERO WIDTH NON-JOINER..RIGHT-TO-LEFT MARK\r
+202A..202E    ; CM # Cf   [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE\r
+206A..206F    ; CM # Cf   [6] INHIBIT SYMMETRIC SWAPPING..NOMINAL DIGIT SHAPES\r
+20D0..20DC    ; CM # Mn  [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE\r
+20DD..20E0    ; CM # Me   [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH\r
+20E1          ; CM # Mn       COMBINING LEFT RIGHT ARROW ABOVE\r
+20E2..20E3    ; CM # Me   [2] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING KEYCAP\r
+302A..302F    ; CM # Mn   [6] IDEOGRAPHIC LEVEL TONE MARK..HANGUL DOUBLE DOT TONE MARK\r
+3099..309A    ; CM # Mn   [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK\r
+FB1E          ; CM # Mn       HEBREW POINT JUDEO-SPANISH VARIKA\r
+FE20..FE23    ; CM # Mn   [4] COMBINING LIGATURE LEFT HALF..COMBINING DOUBLE TILDE RIGHT HALF\r
+FFF9..FFFB    ; CM # Cf   [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR\r
+1D165..1D166  ; CM # Mc   [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM\r
+1D167..1D169  ; CM # Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3\r
+1D16D..1D172  ; CM # Mc   [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5\r
+1D173..1D17A  ; CM # Cf   [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE\r
+1D17B..1D182  ; CM # Mn   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE\r
+1D185..1D18B  ; CM # Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE\r
+1D1AA..1D1AD  ; CM # Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO\r
+E0001         ; CM # Cf       LANGUAGE TAG\r
+E0020..E007F  ; CM # Cf  [96] TAG SPACE..CANCEL TAG\r
+\r
+# Total code points: 943\r
+\r
+# ================================================\r
+\r
+00B4          ; BB # Sk       ACUTE ACCENT\r
+02C8          ; BB # Sk       MODIFIER LETTER VERTICAL LINE\r
+02CC          ; BB # Sk       MODIFIER LETTER LOW VERTICAL LINE\r
+1806          ; BB # Pd       MONGOLIAN TODO SOFT HYPHEN\r
+\r
+# Total code points: 4\r
+\r
+# ================================================\r
+\r
+0009          ; BA # Cc       <control>\r
+007C          ; BA # Sm       VERTICAL LINE\r
+00AD          ; BA # Pd       SOFT HYPHEN\r
+058A          ; BA # Pd       ARMENIAN HYPHEN\r
+0F0B          ; BA # Po       TIBETAN MARK INTERSYLLABIC TSHEG\r
+1361          ; BA # Po       ETHIOPIC WORDSPACE\r
+1680          ; BA # Zs       OGHAM SPACE MARK\r
+17D5          ; BA # Po       KHMER SIGN BARIYOOSAN\r
+2000..2006    ; BA # Zs   [7] EN QUAD..SIX-PER-EM SPACE\r
+2008..200A    ; BA # Zs   [3] PUNCTUATION SPACE..HAIR SPACE\r
+2010          ; BA # Pd       HYPHEN\r
+2012..2013    ; BA # Pd   [2] FIGURE DASH..EN DASH\r
+2027          ; BA # Po       HYPHENATION POINT\r
+\r
+# Total code points: 22\r
+\r
+# ================================================\r
+\r
+0020          ; SP # Zs       SPACE\r
+\r
+# Total code points: 1\r
+\r
+# ================================================\r
+\r
+000C          ; BK # Cc       <control>\r
+2028          ; BK # Zl       LINE SEPARATOR\r
+2029          ; BK # Zp       PARAGRAPH SEPARATOR\r
+\r
+# Total code points: 3\r
+\r
+# ================================================\r
+\r
+000D          ; CR # Cc       <control>\r
+\r
+# Total code points: 1\r
+\r
+# ================================================\r
+\r
+000A          ; LF # Cc       <control>\r
+\r
+# Total code points: 1\r
+\r
+# ================================================\r
+\r
+FFFC          ; CB # So       OBJECT REPLACEMENT CHARACTER\r
+\r
+# Total code points: 1\r
+\r
+# ================================================\r
+\r
+0E01..0E30    ; SA # Lo  [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A\r
+0E32..0E33    ; SA # Lo   [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM\r
+0E40..0E45    ; SA # Lo   [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO\r
+0E46          ; SA # Lm       THAI CHARACTER MAIYAMOK\r
+0E81..0E82    ; SA # Lo   [2] LAO LETTER KO..LAO LETTER KHO SUNG\r
+0E84          ; SA # Lo       LAO LETTER KHO TAM\r
+0E87..0E88    ; SA # Lo   [2] LAO LETTER NGO..LAO LETTER CO\r
+0E8A          ; SA # Lo       LAO LETTER SO TAM\r
+0E8D          ; SA # Lo       LAO LETTER NYO\r
+0E94..0E97    ; SA # Lo   [4] LAO LETTER DO..LAO LETTER THO TAM\r
+0E99..0E9F    ; SA # Lo   [7] LAO LETTER NO..LAO LETTER FO SUNG\r
+0EA1..0EA3    ; SA # Lo   [3] LAO LETTER MO..LAO LETTER LO LING\r
+0EA5          ; SA # Lo       LAO LETTER LO LOOT\r
+0EA7          ; SA # Lo       LAO LETTER WO\r
+0EAA..0EAB    ; SA # Lo   [2] LAO LETTER SO SUNG..LAO LETTER HO SUNG\r
+0EAD..0EB0    ; SA # Lo   [4] LAO LETTER O..LAO VOWEL SIGN A\r
+0EB2..0EB3    ; SA # Lo   [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM\r
+0EBD          ; SA # Lo       LAO SEMIVOWEL SIGN NYO\r
+0EC0..0EC4    ; SA # Lo   [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI\r
+0EC6          ; SA # Lm       LAO KO LA\r
+0EDC..0EDD    ; SA # Lo   [2] LAO HO NO..LAO HO MO\r
+1000..1021    ; SA # Lo  [34] MYANMAR LETTER KA..MYANMAR LETTER A\r
+1023..1027    ; SA # Lo   [5] MYANMAR LETTER I..MYANMAR LETTER E\r
+1029..102A    ; SA # Lo   [2] MYANMAR LETTER O..MYANMAR LETTER AU\r
+1050..1055    ; SA # Lo   [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL\r
+1780..17B3    ; SA # Lo  [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU\r
+\r
+# Total code points: 196\r
+\r
+# ================================================\r
+\r
+00A1          ; AI # Po       INVERTED EXCLAMATION MARK\r
+00A7          ; AI # So       SECTION SIGN\r
+00A8          ; AI # Sk       DIAERESIS\r
+00AA          ; AI # L&       FEMININE ORDINAL INDICATOR\r
+00B2..00B3    ; AI # No   [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE\r
+00B6          ; AI # So       PILCROW SIGN\r
+00B7          ; AI # Po       MIDDLE DOT\r
+00B8          ; AI # Sk       CEDILLA\r
+00B9          ; AI # No       SUPERSCRIPT ONE\r
+00BA          ; AI # L&       MASCULINE ORDINAL INDICATOR\r
+00BC..00BE    ; AI # No   [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS\r
+00BF          ; AI # Po       INVERTED QUESTION MARK\r
+00C6          ; AI # L&       LATIN CAPITAL LETTER AE\r
+00D0          ; AI # L&       LATIN CAPITAL LETTER ETH\r
+00D7          ; AI # Sm       MULTIPLICATION SIGN\r
+00D8          ; AI # L&       LATIN CAPITAL LETTER O WITH STROKE\r
+00DE..00E1    ; AI # L&   [4] LATIN CAPITAL LETTER THORN..LATIN SMALL LETTER A WITH ACUTE\r
+00E6          ; AI # L&       LATIN SMALL LETTER AE\r
+00E8..00EA    ; AI # L&   [3] LATIN SMALL LETTER E WITH GRAVE..LATIN SMALL LETTER E WITH CIRCUMFLEX\r
+00EC..00ED    ; AI # L&   [2] LATIN SMALL LETTER I WITH GRAVE..LATIN SMALL LETTER I WITH ACUTE\r
+00F0          ; AI # L&       LATIN SMALL LETTER ETH\r
+00F2..00F3    ; AI # L&   [2] LATIN SMALL LETTER O WITH GRAVE..LATIN SMALL LETTER O WITH ACUTE\r
+00F7          ; AI # Sm       DIVISION SIGN\r
+00F8..00FA    ; AI # L&   [3] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER U WITH ACUTE\r
+00FC          ; AI # L&       LATIN SMALL LETTER U WITH DIAERESIS\r
+00FE          ; AI # L&       LATIN SMALL LETTER THORN\r
+0101          ; AI # L&       LATIN SMALL LETTER A WITH MACRON\r
+0111          ; AI # L&       LATIN SMALL LETTER D WITH STROKE\r
+0113          ; AI # L&       LATIN SMALL LETTER E WITH MACRON\r
+011B          ; AI # L&       LATIN SMALL LETTER E WITH CARON\r
+0126..0127    ; AI # L&   [2] LATIN CAPITAL LETTER H WITH STROKE..LATIN SMALL LETTER H WITH STROKE\r
+012B          ; AI # L&       LATIN SMALL LETTER I WITH MACRON\r
+0131..0133    ; AI # L&   [3] LATIN SMALL LETTER DOTLESS I..LATIN SMALL LIGATURE IJ\r
+0138          ; AI # L&       LATIN SMALL LETTER KRA\r
+013F..0142    ; AI # L&   [4] LATIN CAPITAL LETTER L WITH MIDDLE DOT..LATIN SMALL LETTER L WITH STROKE\r
+0144          ; AI # L&       LATIN SMALL LETTER N WITH ACUTE\r
+0148..014A    ; AI # L&   [3] LATIN SMALL LETTER N WITH CARON..LATIN CAPITAL LETTER ENG\r
+014D          ; AI # L&       LATIN SMALL LETTER O WITH MACRON\r
+0152..0153    ; AI # L&   [2] LATIN CAPITAL LIGATURE OE..LATIN SMALL LIGATURE OE\r
+0166..0167    ; AI # L&   [2] LATIN CAPITAL LETTER T WITH STROKE..LATIN SMALL LETTER T WITH STROKE\r
+016B          ; AI # L&       LATIN SMALL LETTER U WITH MACRON\r
+01CE          ; AI # L&       LATIN SMALL LETTER A WITH CARON\r
+01D0          ; AI # L&       LATIN SMALL LETTER I WITH CARON\r
+01D2          ; AI # L&       LATIN SMALL LETTER O WITH CARON\r
+01D4          ; AI # L&       LATIN SMALL LETTER U WITH CARON\r
+01D6          ; AI # L&       LATIN SMALL LETTER U WITH DIAERESIS AND MACRON\r
+01D8          ; AI # L&       LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE\r
+01DA          ; AI # L&       LATIN SMALL LETTER U WITH DIAERESIS AND CARON\r
+01DC          ; AI # L&       LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE\r
+0251          ; AI # L&       LATIN SMALL LETTER ALPHA\r
+0261          ; AI # L&       LATIN SMALL LETTER SCRIPT G\r
+02C7          ; AI # Sk       CARON\r
+02C9..02CB    ; AI # Sk   [3] MODIFIER LETTER MACRON..MODIFIER LETTER GRAVE ACCENT\r
+02CD          ; AI # Sk       MODIFIER LETTER LOW MACRON\r
+02D0          ; AI # Lm       MODIFIER LETTER TRIANGULAR COLON\r
+02D8..02DB    ; AI # Sk   [4] BREVE..OGONEK\r
+02DD          ; AI # Sk       DOUBLE ACUTE ACCENT\r
+0391..03A1    ; AI # L&  [17] GREEK CAPITAL LETTER ALPHA..GREEK CAPITAL LETTER RHO\r
+03A3..03A9    ; AI # L&   [7] GREEK CAPITAL LETTER SIGMA..GREEK CAPITAL LETTER OMEGA\r
+03B1..03C1    ; AI # L&  [17] GREEK SMALL LETTER ALPHA..GREEK SMALL LETTER RHO\r
+03C3..03C9    ; AI # L&   [7] GREEK SMALL LETTER SIGMA..GREEK SMALL LETTER OMEGA\r
+0401          ; AI # L&       CYRILLIC CAPITAL LETTER IO\r
+0410..044F    ; AI # L&  [64] CYRILLIC CAPITAL LETTER A..CYRILLIC SMALL LETTER YA\r
+0451          ; AI # L&       CYRILLIC SMALL LETTER IO\r
+2015          ; AI # Pd       HORIZONTAL BAR\r
+2016          ; AI # Po       DOUBLE VERTICAL LINE\r
+2020..2021    ; AI # Po   [2] DAGGER..DOUBLE DAGGER\r
+203B          ; AI # Po       REFERENCE MARK\r
+2074          ; AI # No       SUPERSCRIPT FOUR\r
+207F          ; AI # L&       SUPERSCRIPT LATIN SMALL LETTER N\r
+2081..2084    ; AI # No   [4] SUBSCRIPT ONE..SUBSCRIPT FOUR\r
+2105          ; AI # So       CARE OF\r
+2113          ; AI # L&       SCRIPT SMALL L\r
+2121..2122    ; AI # So   [2] TELEPHONE SIGN..TRADE MARK SIGN\r
+212B          ; AI # L&       ANGSTROM SIGN\r
+2154..2155    ; AI # No   [2] VULGAR FRACTION TWO THIRDS..VULGAR FRACTION ONE FIFTH\r
+215B          ; AI # No       VULGAR FRACTION ONE EIGHTH\r
+215E          ; AI # No       VULGAR FRACTION SEVEN EIGHTHS\r
+2160..216B    ; AI # Nl  [12] ROMAN NUMERAL ONE..ROMAN NUMERAL TWELVE\r
+2170..2179    ; AI # Nl  [10] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL TEN\r
+2190..2194    ; AI # Sm   [5] LEFTWARDS ARROW..LEFT RIGHT ARROW\r
+2195..2199    ; AI # So   [5] UP DOWN ARROW..SOUTH WEST ARROW\r
+21D2          ; AI # Sm       RIGHTWARDS DOUBLE ARROW\r
+21D4          ; AI # Sm       LEFT RIGHT DOUBLE ARROW\r
+2200          ; AI # Sm       FOR ALL\r
+2202..2203    ; AI # Sm   [2] PARTIAL DIFFERENTIAL..THERE EXISTS\r
+2207..2208    ; AI # Sm   [2] NABLA..ELEMENT OF\r
+220B          ; AI # Sm       CONTAINS AS MEMBER\r
+220F          ; AI # Sm       N-ARY PRODUCT\r
+2211          ; AI # Sm       N-ARY SUMMATION\r
+2215          ; AI # Sm       DIVISION SLASH\r
+221A          ; AI # Sm       SQUARE ROOT\r
+221D..2220    ; AI # Sm   [4] PROPORTIONAL TO..ANGLE\r
+2223          ; AI # Sm       DIVIDES\r
+2225          ; AI # Sm       PARALLEL TO\r
+2227..222C    ; AI # Sm   [6] LOGICAL AND..DOUBLE INTEGRAL\r
+222E          ; AI # Sm       CONTOUR INTEGRAL\r
+2234..2237    ; AI # Sm   [4] THEREFORE..PROPORTION\r
+223C..223D    ; AI # Sm   [2] TILDE OPERATOR..REVERSED TILDE\r
+2248          ; AI # Sm       ALMOST EQUAL TO\r
+224C          ; AI # Sm       ALL EQUAL TO\r
+2252          ; AI # Sm       APPROXIMATELY EQUAL TO OR THE IMAGE OF\r
+2260..2261    ; AI # Sm   [2] NOT EQUAL TO..IDENTICAL TO\r
+2264..2267    ; AI # Sm   [4] LESS-THAN OR EQUAL TO..GREATER-THAN OVER EQUAL TO\r
+226A..226B    ; AI # Sm   [2] MUCH LESS-THAN..MUCH GREATER-THAN\r
+226E..226F    ; AI # Sm   [2] NOT LESS-THAN..NOT GREATER-THAN\r
+2282..2283    ; AI # Sm   [2] SUBSET OF..SUPERSET OF\r
+2286..2287    ; AI # Sm   [2] SUBSET OF OR EQUAL TO..SUPERSET OF OR EQUAL TO\r
+2295          ; AI # Sm       CIRCLED PLUS\r
+2299          ; AI # Sm       CIRCLED DOT OPERATOR\r
+22A5          ; AI # Sm       UP TACK\r
+22BF          ; AI # Sm       RIGHT TRIANGLE\r
+2312          ; AI # So       ARC\r
+2460..249B    ; AI # No  [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP\r
+249C..24BF    ; AI # So  [36] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN CAPITAL LETTER J\r
+24D0..24E9    ; AI # So  [26] CIRCLED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z\r
+2500..254B    ; AI # So  [76] BOX DRAWINGS LIGHT HORIZONTAL..BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL\r
+2550..2574    ; AI # So  [37] BOX DRAWINGS DOUBLE HORIZONTAL..BOX DRAWINGS LIGHT LEFT\r
+2580..258F    ; AI # So  [16] UPPER HALF BLOCK..LEFT ONE EIGHTH BLOCK\r
+2592..2595    ; AI # So   [4] MEDIUM SHADE..RIGHT ONE EIGHTH BLOCK\r
+25A0..25A1    ; AI # So   [2] BLACK SQUARE..WHITE SQUARE\r
+25A3..25A9    ; AI # So   [7] WHITE SQUARE CONTAINING BLACK SMALL SQUARE..SQUARE WITH DIAGONAL CROSSHATCH FILL\r
+25B2..25B3    ; AI # So   [2] BLACK UP-POINTING TRIANGLE..WHITE UP-POINTING TRIANGLE\r
+25B6          ; AI # So       BLACK RIGHT-POINTING TRIANGLE\r
+25B7          ; AI # Sm       WHITE RIGHT-POINTING TRIANGLE\r
+25BC..25BD    ; AI # So   [2] BLACK DOWN-POINTING TRIANGLE..WHITE DOWN-POINTING TRIANGLE\r
+25C0          ; AI # So       BLACK LEFT-POINTING TRIANGLE\r
+25C1          ; AI # Sm       WHITE LEFT-POINTING TRIANGLE\r
+25C6..25C8    ; AI # So   [3] BLACK DIAMOND..WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND\r
+25CB          ; AI # So       WHITE CIRCLE\r
+25CE..25D1    ; AI # So   [4] BULLSEYE..CIRCLE WITH RIGHT HALF BLACK\r
+25E2..25E5    ; AI # So   [4] BLACK LOWER RIGHT TRIANGLE..BLACK UPPER RIGHT TRIANGLE\r
+25EF          ; AI # So       LARGE CIRCLE\r
+2605..2606    ; AI # So   [2] BLACK STAR..WHITE STAR\r
+2609          ; AI # So       SUN\r
+260E..260F    ; AI # So   [2] BLACK TELEPHONE..WHITE TELEPHONE\r
+261C          ; AI # So       WHITE LEFT POINTING INDEX\r
+261E          ; AI # So       WHITE RIGHT POINTING INDEX\r
+2640          ; AI # So       FEMALE SIGN\r
+2642          ; AI # So       MALE SIGN\r
+2660..2661    ; AI # So   [2] BLACK SPADE SUIT..WHITE HEART SUIT\r
+2663..2665    ; AI # So   [3] BLACK CLUB SUIT..BLACK HEART SUIT\r
+2667..266A    ; AI # So   [4] WHITE CLUB SUIT..EIGHTH NOTE\r
+266C..266D    ; AI # So   [2] BEAMED SIXTEENTH NOTES..MUSIC FLAT SIGN\r
+266F          ; AI # Sm       MUSIC SHARP SIGN\r
+FFFD          ; AI # So       REPLACEMENT CHARACTER\r
+\r
+# Total code points: 610\r
+\r
+# ================================================\r
+\r
+2014          ; B2 # Pd       EM DASH\r
+\r
+# Total code points: 1\r
+\r
+# ================================================\r
+\r
+D800..DFFF    ; SG # Cs [2048] \r
+\r
+# Total code points: 2048\r
+\r
+# ================================================\r
+\r
+200B          ; ZW # Zs       ZERO WIDTH SPACE\r
+\r
+# Total code points: 1\r
+\r
+\r
+\r
+\1a
\ No newline at end of file
diff --git a/data/windows-1250.txt b/data/windows-1250.txt
new file mode 100644 (file)
index 0000000..aa27ca3
--- /dev/null
@@ -0,0 +1,274 @@
+#\r
+#    Name:     cp1250 to Unicode table\r
+#    Unicode version: 2.0\r
+#    Table version: 2.01\r
+#    Table format:  Format A\r
+#    Date:          04/15/98\r
+#\r
+#    Contact:       cpxlate@microsoft.com\r
+#\r
+#    General notes: none\r
+#\r
+#    Format: Three tab-separated columns\r
+#        Column #1 is the cp1250 code (in hex)\r
+#        Column #2 is the Unicode (in hex as 0xXXXX)\r
+#        Column #3 is the Unicode name (follows a comment sign, '#')\r
+#\r
+#    The entries are in cp1250 order\r
+#\r
+0x00   0x0000  #NULL\r
+0x01   0x0001  #START OF HEADING\r
+0x02   0x0002  #START OF TEXT\r
+0x03   0x0003  #END OF TEXT\r
+0x04   0x0004  #END OF TRANSMISSION\r
+0x05   0x0005  #ENQUIRY\r
+0x06   0x0006  #ACKNOWLEDGE\r
+0x07   0x0007  #BELL\r
+0x08   0x0008  #BACKSPACE\r
+0x09   0x0009  #HORIZONTAL TABULATION\r
+0x0A   0x000A  #LINE FEED\r
+0x0B   0x000B  #VERTICAL TABULATION\r
+0x0C   0x000C  #FORM FEED\r
+0x0D   0x000D  #CARRIAGE RETURN\r
+0x0E   0x000E  #SHIFT OUT\r
+0x0F   0x000F  #SHIFT IN\r
+0x10   0x0010  #DATA LINK ESCAPE\r
+0x11   0x0011  #DEVICE CONTROL ONE\r
+0x12   0x0012  #DEVICE CONTROL TWO\r
+0x13   0x0013  #DEVICE CONTROL THREE\r
+0x14   0x0014  #DEVICE CONTROL FOUR\r
+0x15   0x0015  #NEGATIVE ACKNOWLEDGE\r
+0x16   0x0016  #SYNCHRONOUS IDLE\r
+0x17   0x0017  #END OF TRANSMISSION BLOCK\r
+0x18   0x0018  #CANCEL\r
+0x19   0x0019  #END OF MEDIUM\r
+0x1A   0x001A  #SUBSTITUTE\r
+0x1B   0x001B  #ESCAPE\r
+0x1C   0x001C  #FILE SEPARATOR\r
+0x1D   0x001D  #GROUP SEPARATOR\r
+0x1E   0x001E  #RECORD SEPARATOR\r
+0x1F   0x001F  #UNIT SEPARATOR\r
+0x20   0x0020  #SPACE\r
+0x21   0x0021  #EXCLAMATION MARK\r
+0x22   0x0022  #QUOTATION MARK\r
+0x23   0x0023  #NUMBER SIGN\r
+0x24   0x0024  #DOLLAR SIGN\r
+0x25   0x0025  #PERCENT SIGN\r
+0x26   0x0026  #AMPERSAND\r
+0x27   0x0027  #APOSTROPHE\r
+0x28   0x0028  #LEFT PARENTHESIS\r
+0x29   0x0029  #RIGHT PARENTHESIS\r
+0x2A   0x002A  #ASTERISK\r
+0x2B   0x002B  #PLUS SIGN\r
+0x2C   0x002C  #COMMA\r
+0x2D   0x002D  #HYPHEN-MINUS\r
+0x2E   0x002E  #FULL STOP\r
+0x2F   0x002F  #SOLIDUS\r
+0x30   0x0030  #DIGIT ZERO\r
+0x31   0x0031  #DIGIT ONE\r
+0x32   0x0032  #DIGIT TWO\r
+0x33   0x0033  #DIGIT THREE\r
+0x34   0x0034  #DIGIT FOUR\r
+0x35   0x0035  #DIGIT FIVE\r
+0x36   0x0036  #DIGIT SIX\r
+0x37   0x0037  #DIGIT SEVEN\r
+0x38   0x0038  #DIGIT EIGHT\r
+0x39   0x0039  #DIGIT NINE\r
+0x3A   0x003A  #COLON\r
+0x3B   0x003B  #SEMICOLON\r
+0x3C   0x003C  #LESS-THAN SIGN\r
+0x3D   0x003D  #EQUALS SIGN\r
+0x3E   0x003E  #GREATER-THAN SIGN\r
+0x3F   0x003F  #QUESTION MARK\r
+0x40   0x0040  #COMMERCIAL AT\r
+0x41   0x0041  #LATIN CAPITAL LETTER A\r
+0x42   0x0042  #LATIN CAPITAL LETTER B\r
+0x43   0x0043  #LATIN CAPITAL LETTER C\r
+0x44   0x0044  #LATIN CAPITAL LETTER D\r
+0x45   0x0045  #LATIN CAPITAL LETTER E\r
+0x46   0x0046  #LATIN CAPITAL LETTER F\r
+0x47   0x0047  #LATIN CAPITAL LETTER G\r
+0x48   0x0048  #LATIN CAPITAL LETTER H\r
+0x49   0x0049  #LATIN CAPITAL LETTER I\r
+0x4A   0x004A  #LATIN CAPITAL LETTER J\r
+0x4B   0x004B  #LATIN CAPITAL LETTER K\r
+0x4C   0x004C  #LATIN CAPITAL LETTER L\r
+0x4D   0x004D  #LATIN CAPITAL LETTER M\r
+0x4E   0x004E  #LATIN CAPITAL LETTER N\r
+0x4F   0x004F  #LATIN CAPITAL LETTER O\r
+0x50   0x0050  #LATIN CAPITAL LETTER P\r
+0x51   0x0051  #LATIN CAPITAL LETTER Q\r
+0x52   0x0052  #LATIN CAPITAL LETTER R\r
+0x53   0x0053  #LATIN CAPITAL LETTER S\r
+0x54   0x0054  #LATIN CAPITAL LETTER T\r
+0x55   0x0055  #LATIN CAPITAL LETTER U\r
+0x56   0x0056  #LATIN CAPITAL LETTER V\r
+0x57   0x0057  #LATIN CAPITAL LETTER W\r
+0x58   0x0058  #LATIN CAPITAL LETTER X\r
+0x59   0x0059  #LATIN CAPITAL LETTER Y\r
+0x5A   0x005A  #LATIN CAPITAL LETTER Z\r
+0x5B   0x005B  #LEFT SQUARE BRACKET\r
+0x5C   0x005C  #REVERSE SOLIDUS\r
+0x5D   0x005D  #RIGHT SQUARE BRACKET\r
+0x5E   0x005E  #CIRCUMFLEX ACCENT\r
+0x5F   0x005F  #LOW LINE\r
+0x60   0x0060  #GRAVE ACCENT\r
+0x61   0x0061  #LATIN SMALL LETTER A\r
+0x62   0x0062  #LATIN SMALL LETTER B\r
+0x63   0x0063  #LATIN SMALL LETTER C\r
+0x64   0x0064  #LATIN SMALL LETTER D\r
+0x65   0x0065  #LATIN SMALL LETTER E\r
+0x66   0x0066  #LATIN SMALL LETTER F\r
+0x67   0x0067  #LATIN SMALL LETTER G\r
+0x68   0x0068  #LATIN SMALL LETTER H\r
+0x69   0x0069  #LATIN SMALL LETTER I\r
+0x6A   0x006A  #LATIN SMALL LETTER J\r
+0x6B   0x006B  #LATIN SMALL LETTER K\r
+0x6C   0x006C  #LATIN SMALL LETTER L\r
+0x6D   0x006D  #LATIN SMALL LETTER M\r
+0x6E   0x006E  #LATIN SMALL LETTER N\r
+0x6F   0x006F  #LATIN SMALL LETTER O\r
+0x70   0x0070  #LATIN SMALL LETTER P\r
+0x71   0x0071  #LATIN SMALL LETTER Q\r
+0x72   0x0072  #LATIN SMALL LETTER R\r
+0x73   0x0073  #LATIN SMALL LETTER S\r
+0x74   0x0074  #LATIN SMALL LETTER T\r
+0x75   0x0075  #LATIN SMALL LETTER U\r
+0x76   0x0076  #LATIN SMALL LETTER V\r
+0x77   0x0077  #LATIN SMALL LETTER W\r
+0x78   0x0078  #LATIN SMALL LETTER X\r
+0x79   0x0079  #LATIN SMALL LETTER Y\r
+0x7A   0x007A  #LATIN SMALL LETTER Z\r
+0x7B   0x007B  #LEFT CURLY BRACKET\r
+0x7C   0x007C  #VERTICAL LINE\r
+0x7D   0x007D  #RIGHT CURLY BRACKET\r
+0x7E   0x007E  #TILDE\r
+0x7F   0x007F  #DELETE\r
+0x80   0x20AC  #EURO SIGN\r
+0x81           #UNDEFINED\r
+0x82   0x201A  #SINGLE LOW-9 QUOTATION MARK\r
+0x83           #UNDEFINED\r
+0x84   0x201E  #DOUBLE LOW-9 QUOTATION MARK\r
+0x85   0x2026  #HORIZONTAL ELLIPSIS\r
+0x86   0x2020  #DAGGER\r
+0x87   0x2021  #DOUBLE DAGGER\r
+0x88           #UNDEFINED\r
+0x89   0x2030  #PER MILLE SIGN\r
+0x8A   0x0160  #LATIN CAPITAL LETTER S WITH CARON\r
+0x8B   0x2039  #SINGLE LEFT-POINTING ANGLE QUOTATION MARK\r
+0x8C   0x015A  #LATIN CAPITAL LETTER S WITH ACUTE\r
+0x8D   0x0164  #LATIN CAPITAL LETTER T WITH CARON\r
+0x8E   0x017D  #LATIN CAPITAL LETTER Z WITH CARON\r
+0x8F   0x0179  #LATIN CAPITAL LETTER Z WITH ACUTE\r
+0x90           #UNDEFINED\r
+0x91   0x2018  #LEFT SINGLE QUOTATION MARK\r
+0x92   0x2019  #RIGHT SINGLE QUOTATION MARK\r
+0x93   0x201C  #LEFT DOUBLE QUOTATION MARK\r
+0x94   0x201D  #RIGHT DOUBLE QUOTATION MARK\r
+0x95   0x2022  #BULLET\r
+0x96   0x2013  #EN DASH\r
+0x97   0x2014  #EM DASH\r
+0x98           #UNDEFINED\r
+0x99   0x2122  #TRADE MARK SIGN\r
+0x9A   0x0161  #LATIN SMALL LETTER S WITH CARON\r
+0x9B   0x203A  #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK\r
+0x9C   0x015B  #LATIN SMALL LETTER S WITH ACUTE\r
+0x9D   0x0165  #LATIN SMALL LETTER T WITH CARON\r
+0x9E   0x017E  #LATIN SMALL LETTER Z WITH CARON\r
+0x9F   0x017A  #LATIN SMALL LETTER Z WITH ACUTE\r
+0xA0   0x00A0  #NO-BREAK SPACE\r
+0xA1   0x02C7  #CARON\r
+0xA2   0x02D8  #BREVE\r
+0xA3   0x0141  #LATIN CAPITAL LETTER L WITH STROKE\r
+0xA4   0x00A4  #CURRENCY SIGN\r
+0xA5   0x0104  #LATIN CAPITAL LETTER A WITH OGONEK\r
+0xA6   0x00A6  #BROKEN BAR\r
+0xA7   0x00A7  #SECTION SIGN\r
+0xA8   0x00A8  #DIAERESIS\r
+0xA9   0x00A9  #COPYRIGHT SIGN\r
+0xAA   0x015E  #LATIN CAPITAL LETTER S WITH CEDILLA\r
+0xAB   0x00AB  #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xAC   0x00AC  #NOT SIGN\r
+0xAD   0x00AD  #SOFT HYPHEN\r
+0xAE   0x00AE  #REGISTERED SIGN\r
+0xAF   0x017B  #LATIN CAPITAL LETTER Z WITH DOT ABOVE\r
+0xB0   0x00B0  #DEGREE SIGN\r
+0xB1   0x00B1  #PLUS-MINUS SIGN\r
+0xB2   0x02DB  #OGONEK\r
+0xB3   0x0142  #LATIN SMALL LETTER L WITH STROKE\r
+0xB4   0x00B4  #ACUTE ACCENT\r
+0xB5   0x00B5  #MICRO SIGN\r
+0xB6   0x00B6  #PILCROW SIGN\r
+0xB7   0x00B7  #MIDDLE DOT\r
+0xB8   0x00B8  #CEDILLA\r
+0xB9   0x0105  #LATIN SMALL LETTER A WITH OGONEK\r
+0xBA   0x015F  #LATIN SMALL LETTER S WITH CEDILLA\r
+0xBB   0x00BB  #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xBC   0x013D  #LATIN CAPITAL LETTER L WITH CARON\r
+0xBD   0x02DD  #DOUBLE ACUTE ACCENT\r
+0xBE   0x013E  #LATIN SMALL LETTER L WITH CARON\r
+0xBF   0x017C  #LATIN SMALL LETTER Z WITH DOT ABOVE\r
+0xC0   0x0154  #LATIN CAPITAL LETTER R WITH ACUTE\r
+0xC1   0x00C1  #LATIN CAPITAL LETTER A WITH ACUTE\r
+0xC2   0x00C2  #LATIN CAPITAL LETTER A WITH CIRCUMFLEX\r
+0xC3   0x0102  #LATIN CAPITAL LETTER A WITH BREVE\r
+0xC4   0x00C4  #LATIN CAPITAL LETTER A WITH DIAERESIS\r
+0xC5   0x0139  #LATIN CAPITAL LETTER L WITH ACUTE\r
+0xC6   0x0106  #LATIN CAPITAL LETTER C WITH ACUTE\r
+0xC7   0x00C7  #LATIN CAPITAL LETTER C WITH CEDILLA\r
+0xC8   0x010C  #LATIN CAPITAL LETTER C WITH CARON\r
+0xC9   0x00C9  #LATIN CAPITAL LETTER E WITH ACUTE\r
+0xCA   0x0118  #LATIN CAPITAL LETTER E WITH OGONEK\r
+0xCB   0x00CB  #LATIN CAPITAL LETTER E WITH DIAERESIS\r
+0xCC   0x011A  #LATIN CAPITAL LETTER E WITH CARON\r
+0xCD   0x00CD  #LATIN CAPITAL LETTER I WITH ACUTE\r
+0xCE   0x00CE  #LATIN CAPITAL LETTER I WITH CIRCUMFLEX\r
+0xCF   0x010E  #LATIN CAPITAL LETTER D WITH CARON\r
+0xD0   0x0110  #LATIN CAPITAL LETTER D WITH STROKE\r
+0xD1   0x0143  #LATIN CAPITAL LETTER N WITH ACUTE\r
+0xD2   0x0147  #LATIN CAPITAL LETTER N WITH CARON\r
+0xD3   0x00D3  #LATIN CAPITAL LETTER O WITH ACUTE\r
+0xD4   0x00D4  #LATIN CAPITAL LETTER O WITH CIRCUMFLEX\r
+0xD5   0x0150  #LATIN CAPITAL LETTER O WITH DOUBLE ACUTE\r
+0xD6   0x00D6  #LATIN CAPITAL LETTER O WITH DIAERESIS\r
+0xD7   0x00D7  #MULTIPLICATION SIGN\r
+0xD8   0x0158  #LATIN CAPITAL LETTER R WITH CARON\r
+0xD9   0x016E  #LATIN CAPITAL LETTER U WITH RING ABOVE\r
+0xDA   0x00DA  #LATIN CAPITAL LETTER U WITH ACUTE\r
+0xDB   0x0170  #LATIN CAPITAL LETTER U WITH DOUBLE ACUTE\r
+0xDC   0x00DC  #LATIN CAPITAL LETTER U WITH DIAERESIS\r
+0xDD   0x00DD  #LATIN CAPITAL LETTER Y WITH ACUTE\r
+0xDE   0x0162  #LATIN CAPITAL LETTER T WITH CEDILLA\r
+0xDF   0x00DF  #LATIN SMALL LETTER SHARP S\r
+0xE0   0x0155  #LATIN SMALL LETTER R WITH ACUTE\r
+0xE1   0x00E1  #LATIN SMALL LETTER A WITH ACUTE\r
+0xE2   0x00E2  #LATIN SMALL LETTER A WITH CIRCUMFLEX\r
+0xE3   0x0103  #LATIN SMALL LETTER A WITH BREVE\r
+0xE4   0x00E4  #LATIN SMALL LETTER A WITH DIAERESIS\r
+0xE5   0x013A  #LATIN SMALL LETTER L WITH ACUTE\r
+0xE6   0x0107  #LATIN SMALL LETTER C WITH ACUTE\r
+0xE7   0x00E7  #LATIN SMALL LETTER C WITH CEDILLA\r
+0xE8   0x010D  #LATIN SMALL LETTER C WITH CARON\r
+0xE9   0x00E9  #LATIN SMALL LETTER E WITH ACUTE\r
+0xEA   0x0119  #LATIN SMALL LETTER E WITH OGONEK\r
+0xEB   0x00EB  #LATIN SMALL LETTER E WITH DIAERESIS\r
+0xEC   0x011B  #LATIN SMALL LETTER E WITH CARON\r
+0xED   0x00ED  #LATIN SMALL LETTER I WITH ACUTE\r
+0xEE   0x00EE  #LATIN SMALL LETTER I WITH CIRCUMFLEX\r
+0xEF   0x010F  #LATIN SMALL LETTER D WITH CARON\r
+0xF0   0x0111  #LATIN SMALL LETTER D WITH STROKE\r
+0xF1   0x0144  #LATIN SMALL LETTER N WITH ACUTE\r
+0xF2   0x0148  #LATIN SMALL LETTER N WITH CARON\r
+0xF3   0x00F3  #LATIN SMALL LETTER O WITH ACUTE\r
+0xF4   0x00F4  #LATIN SMALL LETTER O WITH CIRCUMFLEX\r
+0xF5   0x0151  #LATIN SMALL LETTER O WITH DOUBLE ACUTE\r
+0xF6   0x00F6  #LATIN SMALL LETTER O WITH DIAERESIS\r
+0xF7   0x00F7  #DIVISION SIGN\r
+0xF8   0x0159  #LATIN SMALL LETTER R WITH CARON\r
+0xF9   0x016F  #LATIN SMALL LETTER U WITH RING ABOVE\r
+0xFA   0x00FA  #LATIN SMALL LETTER U WITH ACUTE\r
+0xFB   0x0171  #LATIN SMALL LETTER U WITH DOUBLE ACUTE\r
+0xFC   0x00FC  #LATIN SMALL LETTER U WITH DIAERESIS\r
+0xFD   0x00FD  #LATIN SMALL LETTER Y WITH ACUTE\r
+0xFE   0x0163  #LATIN SMALL LETTER T WITH CEDILLA\r
+0xFF   0x02D9  #DOT ABOVE\r
diff --git a/data/windows-1251.txt b/data/windows-1251.txt
new file mode 100644 (file)
index 0000000..f6876e6
--- /dev/null
@@ -0,0 +1,274 @@
+#\r
+#    Name:     cp1251 to Unicode table\r
+#    Unicode version: 2.0\r
+#    Table version: 2.01\r
+#    Table format:  Format A\r
+#    Date:          04/15/98\r
+#\r
+#    Contact:       cpxlate@microsoft.com\r
+#\r
+#    General notes: none\r
+#\r
+#    Format: Three tab-separated columns\r
+#        Column #1 is the cp1251 code (in hex)\r
+#        Column #2 is the Unicode (in hex as 0xXXXX)\r
+#        Column #3 is the Unicode name (follows a comment sign, '#')\r
+#\r
+#    The entries are in cp1251 order\r
+#\r
+0x00   0x0000  #NULL\r
+0x01   0x0001  #START OF HEADING\r
+0x02   0x0002  #START OF TEXT\r
+0x03   0x0003  #END OF TEXT\r
+0x04   0x0004  #END OF TRANSMISSION\r
+0x05   0x0005  #ENQUIRY\r
+0x06   0x0006  #ACKNOWLEDGE\r
+0x07   0x0007  #BELL\r
+0x08   0x0008  #BACKSPACE\r
+0x09   0x0009  #HORIZONTAL TABULATION\r
+0x0A   0x000A  #LINE FEED\r
+0x0B   0x000B  #VERTICAL TABULATION\r
+0x0C   0x000C  #FORM FEED\r
+0x0D   0x000D  #CARRIAGE RETURN\r
+0x0E   0x000E  #SHIFT OUT\r
+0x0F   0x000F  #SHIFT IN\r
+0x10   0x0010  #DATA LINK ESCAPE\r
+0x11   0x0011  #DEVICE CONTROL ONE\r
+0x12   0x0012  #DEVICE CONTROL TWO\r
+0x13   0x0013  #DEVICE CONTROL THREE\r
+0x14   0x0014  #DEVICE CONTROL FOUR\r
+0x15   0x0015  #NEGATIVE ACKNOWLEDGE\r
+0x16   0x0016  #SYNCHRONOUS IDLE\r
+0x17   0x0017  #END OF TRANSMISSION BLOCK\r
+0x18   0x0018  #CANCEL\r
+0x19   0x0019  #END OF MEDIUM\r
+0x1A   0x001A  #SUBSTITUTE\r
+0x1B   0x001B  #ESCAPE\r
+0x1C   0x001C  #FILE SEPARATOR\r
+0x1D   0x001D  #GROUP SEPARATOR\r
+0x1E   0x001E  #RECORD SEPARATOR\r
+0x1F   0x001F  #UNIT SEPARATOR\r
+0x20   0x0020  #SPACE\r
+0x21   0x0021  #EXCLAMATION MARK\r
+0x22   0x0022  #QUOTATION MARK\r
+0x23   0x0023  #NUMBER SIGN\r
+0x24   0x0024  #DOLLAR SIGN\r
+0x25   0x0025  #PERCENT SIGN\r
+0x26   0x0026  #AMPERSAND\r
+0x27   0x0027  #APOSTROPHE\r
+0x28   0x0028  #LEFT PARENTHESIS\r
+0x29   0x0029  #RIGHT PARENTHESIS\r
+0x2A   0x002A  #ASTERISK\r
+0x2B   0x002B  #PLUS SIGN\r
+0x2C   0x002C  #COMMA\r
+0x2D   0x002D  #HYPHEN-MINUS\r
+0x2E   0x002E  #FULL STOP\r
+0x2F   0x002F  #SOLIDUS\r
+0x30   0x0030  #DIGIT ZERO\r
+0x31   0x0031  #DIGIT ONE\r
+0x32   0x0032  #DIGIT TWO\r
+0x33   0x0033  #DIGIT THREE\r
+0x34   0x0034  #DIGIT FOUR\r
+0x35   0x0035  #DIGIT FIVE\r
+0x36   0x0036  #DIGIT SIX\r
+0x37   0x0037  #DIGIT SEVEN\r
+0x38   0x0038  #DIGIT EIGHT\r
+0x39   0x0039  #DIGIT NINE\r
+0x3A   0x003A  #COLON\r
+0x3B   0x003B  #SEMICOLON\r
+0x3C   0x003C  #LESS-THAN SIGN\r
+0x3D   0x003D  #EQUALS SIGN\r
+0x3E   0x003E  #GREATER-THAN SIGN\r
+0x3F   0x003F  #QUESTION MARK\r
+0x40   0x0040  #COMMERCIAL AT\r
+0x41   0x0041  #LATIN CAPITAL LETTER A\r
+0x42   0x0042  #LATIN CAPITAL LETTER B\r
+0x43   0x0043  #LATIN CAPITAL LETTER C\r
+0x44   0x0044  #LATIN CAPITAL LETTER D\r
+0x45   0x0045  #LATIN CAPITAL LETTER E\r
+0x46   0x0046  #LATIN CAPITAL LETTER F\r
+0x47   0x0047  #LATIN CAPITAL LETTER G\r
+0x48   0x0048  #LATIN CAPITAL LETTER H\r
+0x49   0x0049  #LATIN CAPITAL LETTER I\r
+0x4A   0x004A  #LATIN CAPITAL LETTER J\r
+0x4B   0x004B  #LATIN CAPITAL LETTER K\r
+0x4C   0x004C  #LATIN CAPITAL LETTER L\r
+0x4D   0x004D  #LATIN CAPITAL LETTER M\r
+0x4E   0x004E  #LATIN CAPITAL LETTER N\r
+0x4F   0x004F  #LATIN CAPITAL LETTER O\r
+0x50   0x0050  #LATIN CAPITAL LETTER P\r
+0x51   0x0051  #LATIN CAPITAL LETTER Q\r
+0x52   0x0052  #LATIN CAPITAL LETTER R\r
+0x53   0x0053  #LATIN CAPITAL LETTER S\r
+0x54   0x0054  #LATIN CAPITAL LETTER T\r
+0x55   0x0055  #LATIN CAPITAL LETTER U\r
+0x56   0x0056  #LATIN CAPITAL LETTER V\r
+0x57   0x0057  #LATIN CAPITAL LETTER W\r
+0x58   0x0058  #LATIN CAPITAL LETTER X\r
+0x59   0x0059  #LATIN CAPITAL LETTER Y\r
+0x5A   0x005A  #LATIN CAPITAL LETTER Z\r
+0x5B   0x005B  #LEFT SQUARE BRACKET\r
+0x5C   0x005C  #REVERSE SOLIDUS\r
+0x5D   0x005D  #RIGHT SQUARE BRACKET\r
+0x5E   0x005E  #CIRCUMFLEX ACCENT\r
+0x5F   0x005F  #LOW LINE\r
+0x60   0x0060  #GRAVE ACCENT\r
+0x61   0x0061  #LATIN SMALL LETTER A\r
+0x62   0x0062  #LATIN SMALL LETTER B\r
+0x63   0x0063  #LATIN SMALL LETTER C\r
+0x64   0x0064  #LATIN SMALL LETTER D\r
+0x65   0x0065  #LATIN SMALL LETTER E\r
+0x66   0x0066  #LATIN SMALL LETTER F\r
+0x67   0x0067  #LATIN SMALL LETTER G\r
+0x68   0x0068  #LATIN SMALL LETTER H\r
+0x69   0x0069  #LATIN SMALL LETTER I\r
+0x6A   0x006A  #LATIN SMALL LETTER J\r
+0x6B   0x006B  #LATIN SMALL LETTER K\r
+0x6C   0x006C  #LATIN SMALL LETTER L\r
+0x6D   0x006D  #LATIN SMALL LETTER M\r
+0x6E   0x006E  #LATIN SMALL LETTER N\r
+0x6F   0x006F  #LATIN SMALL LETTER O\r
+0x70   0x0070  #LATIN SMALL LETTER P\r
+0x71   0x0071  #LATIN SMALL LETTER Q\r
+0x72   0x0072  #LATIN SMALL LETTER R\r
+0x73   0x0073  #LATIN SMALL LETTER S\r
+0x74   0x0074  #LATIN SMALL LETTER T\r
+0x75   0x0075  #LATIN SMALL LETTER U\r
+0x76   0x0076  #LATIN SMALL LETTER V\r
+0x77   0x0077  #LATIN SMALL LETTER W\r
+0x78   0x0078  #LATIN SMALL LETTER X\r
+0x79   0x0079  #LATIN SMALL LETTER Y\r
+0x7A   0x007A  #LATIN SMALL LETTER Z\r
+0x7B   0x007B  #LEFT CURLY BRACKET\r
+0x7C   0x007C  #VERTICAL LINE\r
+0x7D   0x007D  #RIGHT CURLY BRACKET\r
+0x7E   0x007E  #TILDE\r
+0x7F   0x007F  #DELETE\r
+0x80   0x0402  #CYRILLIC CAPITAL LETTER DJE\r
+0x81   0x0403  #CYRILLIC CAPITAL LETTER GJE\r
+0x82   0x201A  #SINGLE LOW-9 QUOTATION MARK\r
+0x83   0x0453  #CYRILLIC SMALL LETTER GJE\r
+0x84   0x201E  #DOUBLE LOW-9 QUOTATION MARK\r
+0x85   0x2026  #HORIZONTAL ELLIPSIS\r
+0x86   0x2020  #DAGGER\r
+0x87   0x2021  #DOUBLE DAGGER\r
+0x88   0x20AC  #EURO SIGN\r
+0x89   0x2030  #PER MILLE SIGN\r
+0x8A   0x0409  #CYRILLIC CAPITAL LETTER LJE\r
+0x8B   0x2039  #SINGLE LEFT-POINTING ANGLE QUOTATION MARK\r
+0x8C   0x040A  #CYRILLIC CAPITAL LETTER NJE\r
+0x8D   0x040C  #CYRILLIC CAPITAL LETTER KJE\r
+0x8E   0x040B  #CYRILLIC CAPITAL LETTER TSHE\r
+0x8F   0x040F  #CYRILLIC CAPITAL LETTER DZHE\r
+0x90   0x0452  #CYRILLIC SMALL LETTER DJE\r
+0x91   0x2018  #LEFT SINGLE QUOTATION MARK\r
+0x92   0x2019  #RIGHT SINGLE QUOTATION MARK\r
+0x93   0x201C  #LEFT DOUBLE QUOTATION MARK\r
+0x94   0x201D  #RIGHT DOUBLE QUOTATION MARK\r
+0x95   0x2022  #BULLET\r
+0x96   0x2013  #EN DASH\r
+0x97   0x2014  #EM DASH\r
+0x98           #UNDEFINED\r
+0x99   0x2122  #TRADE MARK SIGN\r
+0x9A   0x0459  #CYRILLIC SMALL LETTER LJE\r
+0x9B   0x203A  #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK\r
+0x9C   0x045A  #CYRILLIC SMALL LETTER NJE\r
+0x9D   0x045C  #CYRILLIC SMALL LETTER KJE\r
+0x9E   0x045B  #CYRILLIC SMALL LETTER TSHE\r
+0x9F   0x045F  #CYRILLIC SMALL LETTER DZHE\r
+0xA0   0x00A0  #NO-BREAK SPACE\r
+0xA1   0x040E  #CYRILLIC CAPITAL LETTER SHORT U\r
+0xA2   0x045E  #CYRILLIC SMALL LETTER SHORT U\r
+0xA3   0x0408  #CYRILLIC CAPITAL LETTER JE\r
+0xA4   0x00A4  #CURRENCY SIGN\r
+0xA5   0x0490  #CYRILLIC CAPITAL LETTER GHE WITH UPTURN\r
+0xA6   0x00A6  #BROKEN BAR\r
+0xA7   0x00A7  #SECTION SIGN\r
+0xA8   0x0401  #CYRILLIC CAPITAL LETTER IO\r
+0xA9   0x00A9  #COPYRIGHT SIGN\r
+0xAA   0x0404  #CYRILLIC CAPITAL LETTER UKRAINIAN IE\r
+0xAB   0x00AB  #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xAC   0x00AC  #NOT SIGN\r
+0xAD   0x00AD  #SOFT HYPHEN\r
+0xAE   0x00AE  #REGISTERED SIGN\r
+0xAF   0x0407  #CYRILLIC CAPITAL LETTER YI\r
+0xB0   0x00B0  #DEGREE SIGN\r
+0xB1   0x00B1  #PLUS-MINUS SIGN\r
+0xB2   0x0406  #CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I\r
+0xB3   0x0456  #CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I\r
+0xB4   0x0491  #CYRILLIC SMALL LETTER GHE WITH UPTURN\r
+0xB5   0x00B5  #MICRO SIGN\r
+0xB6   0x00B6  #PILCROW SIGN\r
+0xB7   0x00B7  #MIDDLE DOT\r
+0xB8   0x0451  #CYRILLIC SMALL LETTER IO\r
+0xB9   0x2116  #NUMERO SIGN\r
+0xBA   0x0454  #CYRILLIC SMALL LETTER UKRAINIAN IE\r
+0xBB   0x00BB  #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xBC   0x0458  #CYRILLIC SMALL LETTER JE\r
+0xBD   0x0405  #CYRILLIC CAPITAL LETTER DZE\r
+0xBE   0x0455  #CYRILLIC SMALL LETTER DZE\r
+0xBF   0x0457  #CYRILLIC SMALL LETTER YI\r
+0xC0   0x0410  #CYRILLIC CAPITAL LETTER A\r
+0xC1   0x0411  #CYRILLIC CAPITAL LETTER BE\r
+0xC2   0x0412  #CYRILLIC CAPITAL LETTER VE\r
+0xC3   0x0413  #CYRILLIC CAPITAL LETTER GHE\r
+0xC4   0x0414  #CYRILLIC CAPITAL LETTER DE\r
+0xC5   0x0415  #CYRILLIC CAPITAL LETTER IE\r
+0xC6   0x0416  #CYRILLIC CAPITAL LETTER ZHE\r
+0xC7   0x0417  #CYRILLIC CAPITAL LETTER ZE\r
+0xC8   0x0418  #CYRILLIC CAPITAL LETTER I\r
+0xC9   0x0419  #CYRILLIC CAPITAL LETTER SHORT I\r
+0xCA   0x041A  #CYRILLIC CAPITAL LETTER KA\r
+0xCB   0x041B  #CYRILLIC CAPITAL LETTER EL\r
+0xCC   0x041C  #CYRILLIC CAPITAL LETTER EM\r
+0xCD   0x041D  #CYRILLIC CAPITAL LETTER EN\r
+0xCE   0x041E  #CYRILLIC CAPITAL LETTER O\r
+0xCF   0x041F  #CYRILLIC CAPITAL LETTER PE\r
+0xD0   0x0420  #CYRILLIC CAPITAL LETTER ER\r
+0xD1   0x0421  #CYRILLIC CAPITAL LETTER ES\r
+0xD2   0x0422  #CYRILLIC CAPITAL LETTER TE\r
+0xD3   0x0423  #CYRILLIC CAPITAL LETTER U\r
+0xD4   0x0424  #CYRILLIC CAPITAL LETTER EF\r
+0xD5   0x0425  #CYRILLIC CAPITAL LETTER HA\r
+0xD6   0x0426  #CYRILLIC CAPITAL LETTER TSE\r
+0xD7   0x0427  #CYRILLIC CAPITAL LETTER CHE\r
+0xD8   0x0428  #CYRILLIC CAPITAL LETTER SHA\r
+0xD9   0x0429  #CYRILLIC CAPITAL LETTER SHCHA\r
+0xDA   0x042A  #CYRILLIC CAPITAL LETTER HARD SIGN\r
+0xDB   0x042B  #CYRILLIC CAPITAL LETTER YERU\r
+0xDC   0x042C  #CYRILLIC CAPITAL LETTER SOFT SIGN\r
+0xDD   0x042D  #CYRILLIC CAPITAL LETTER E\r
+0xDE   0x042E  #CYRILLIC CAPITAL LETTER YU\r
+0xDF   0x042F  #CYRILLIC CAPITAL LETTER YA\r
+0xE0   0x0430  #CYRILLIC SMALL LETTER A\r
+0xE1   0x0431  #CYRILLIC SMALL LETTER BE\r
+0xE2   0x0432  #CYRILLIC SMALL LETTER VE\r
+0xE3   0x0433  #CYRILLIC SMALL LETTER GHE\r
+0xE4   0x0434  #CYRILLIC SMALL LETTER DE\r
+0xE5   0x0435  #CYRILLIC SMALL LETTER IE\r
+0xE6   0x0436  #CYRILLIC SMALL LETTER ZHE\r
+0xE7   0x0437  #CYRILLIC SMALL LETTER ZE\r
+0xE8   0x0438  #CYRILLIC SMALL LETTER I\r
+0xE9   0x0439  #CYRILLIC SMALL LETTER SHORT I\r
+0xEA   0x043A  #CYRILLIC SMALL LETTER KA\r
+0xEB   0x043B  #CYRILLIC SMALL LETTER EL\r
+0xEC   0x043C  #CYRILLIC SMALL LETTER EM\r
+0xED   0x043D  #CYRILLIC SMALL LETTER EN\r
+0xEE   0x043E  #CYRILLIC SMALL LETTER O\r
+0xEF   0x043F  #CYRILLIC SMALL LETTER PE\r
+0xF0   0x0440  #CYRILLIC SMALL LETTER ER\r
+0xF1   0x0441  #CYRILLIC SMALL LETTER ES\r
+0xF2   0x0442  #CYRILLIC SMALL LETTER TE\r
+0xF3   0x0443  #CYRILLIC SMALL LETTER U\r
+0xF4   0x0444  #CYRILLIC SMALL LETTER EF\r
+0xF5   0x0445  #CYRILLIC SMALL LETTER HA\r
+0xF6   0x0446  #CYRILLIC SMALL LETTER TSE\r
+0xF7   0x0447  #CYRILLIC SMALL LETTER CHE\r
+0xF8   0x0448  #CYRILLIC SMALL LETTER SHA\r
+0xF9   0x0449  #CYRILLIC SMALL LETTER SHCHA\r
+0xFA   0x044A  #CYRILLIC SMALL LETTER HARD SIGN\r
+0xFB   0x044B  #CYRILLIC SMALL LETTER YERU\r
+0xFC   0x044C  #CYRILLIC SMALL LETTER SOFT SIGN\r
+0xFD   0x044D  #CYRILLIC SMALL LETTER E\r
+0xFE   0x044E  #CYRILLIC SMALL LETTER YU\r
+0xFF   0x044F  #CYRILLIC SMALL LETTER YA\r
diff --git a/data/windows-1252.txt b/data/windows-1252.txt
new file mode 100644 (file)
index 0000000..970002d
--- /dev/null
@@ -0,0 +1,274 @@
+#\r
+#    Name:     cp1252 to Unicode table\r
+#    Unicode version: 2.0\r
+#    Table version: 2.01\r
+#    Table format:  Format A\r
+#    Date:          04/15/98\r
+#\r
+#    Contact:       cpxlate@microsoft.com\r
+#\r
+#    General notes: none\r
+#\r
+#    Format: Three tab-separated columns\r
+#        Column #1 is the cp1252 code (in hex)\r
+#        Column #2 is the Unicode (in hex as 0xXXXX)\r
+#        Column #3 is the Unicode name (follows a comment sign, '#')\r
+#\r
+#    The entries are in cp1252 order\r
+#\r
+0x00   0x0000  #NULL\r
+0x01   0x0001  #START OF HEADING\r
+0x02   0x0002  #START OF TEXT\r
+0x03   0x0003  #END OF TEXT\r
+0x04   0x0004  #END OF TRANSMISSION\r
+0x05   0x0005  #ENQUIRY\r
+0x06   0x0006  #ACKNOWLEDGE\r
+0x07   0x0007  #BELL\r
+0x08   0x0008  #BACKSPACE\r
+0x09   0x0009  #HORIZONTAL TABULATION\r
+0x0A   0x000A  #LINE FEED\r
+0x0B   0x000B  #VERTICAL TABULATION\r
+0x0C   0x000C  #FORM FEED\r
+0x0D   0x000D  #CARRIAGE RETURN\r
+0x0E   0x000E  #SHIFT OUT\r
+0x0F   0x000F  #SHIFT IN\r
+0x10   0x0010  #DATA LINK ESCAPE\r
+0x11   0x0011  #DEVICE CONTROL ONE\r
+0x12   0x0012  #DEVICE CONTROL TWO\r
+0x13   0x0013  #DEVICE CONTROL THREE\r
+0x14   0x0014  #DEVICE CONTROL FOUR\r
+0x15   0x0015  #NEGATIVE ACKNOWLEDGE\r
+0x16   0x0016  #SYNCHRONOUS IDLE\r
+0x17   0x0017  #END OF TRANSMISSION BLOCK\r
+0x18   0x0018  #CANCEL\r
+0x19   0x0019  #END OF MEDIUM\r
+0x1A   0x001A  #SUBSTITUTE\r
+0x1B   0x001B  #ESCAPE\r
+0x1C   0x001C  #FILE SEPARATOR\r
+0x1D   0x001D  #GROUP SEPARATOR\r
+0x1E   0x001E  #RECORD SEPARATOR\r
+0x1F   0x001F  #UNIT SEPARATOR\r
+0x20   0x0020  #SPACE\r
+0x21   0x0021  #EXCLAMATION MARK\r
+0x22   0x0022  #QUOTATION MARK\r
+0x23   0x0023  #NUMBER SIGN\r
+0x24   0x0024  #DOLLAR SIGN\r
+0x25   0x0025  #PERCENT SIGN\r
+0x26   0x0026  #AMPERSAND\r
+0x27   0x0027  #APOSTROPHE\r
+0x28   0x0028  #LEFT PARENTHESIS\r
+0x29   0x0029  #RIGHT PARENTHESIS\r
+0x2A   0x002A  #ASTERISK\r
+0x2B   0x002B  #PLUS SIGN\r
+0x2C   0x002C  #COMMA\r
+0x2D   0x002D  #HYPHEN-MINUS\r
+0x2E   0x002E  #FULL STOP\r
+0x2F   0x002F  #SOLIDUS\r
+0x30   0x0030  #DIGIT ZERO\r
+0x31   0x0031  #DIGIT ONE\r
+0x32   0x0032  #DIGIT TWO\r
+0x33   0x0033  #DIGIT THREE\r
+0x34   0x0034  #DIGIT FOUR\r
+0x35   0x0035  #DIGIT FIVE\r
+0x36   0x0036  #DIGIT SIX\r
+0x37   0x0037  #DIGIT SEVEN\r
+0x38   0x0038  #DIGIT EIGHT\r
+0x39   0x0039  #DIGIT NINE\r
+0x3A   0x003A  #COLON\r
+0x3B   0x003B  #SEMICOLON\r
+0x3C   0x003C  #LESS-THAN SIGN\r
+0x3D   0x003D  #EQUALS SIGN\r
+0x3E   0x003E  #GREATER-THAN SIGN\r
+0x3F   0x003F  #QUESTION MARK\r
+0x40   0x0040  #COMMERCIAL AT\r
+0x41   0x0041  #LATIN CAPITAL LETTER A\r
+0x42   0x0042  #LATIN CAPITAL LETTER B\r
+0x43   0x0043  #LATIN CAPITAL LETTER C\r
+0x44   0x0044  #LATIN CAPITAL LETTER D\r
+0x45   0x0045  #LATIN CAPITAL LETTER E\r
+0x46   0x0046  #LATIN CAPITAL LETTER F\r
+0x47   0x0047  #LATIN CAPITAL LETTER G\r
+0x48   0x0048  #LATIN CAPITAL LETTER H\r
+0x49   0x0049  #LATIN CAPITAL LETTER I\r
+0x4A   0x004A  #LATIN CAPITAL LETTER J\r
+0x4B   0x004B  #LATIN CAPITAL LETTER K\r
+0x4C   0x004C  #LATIN CAPITAL LETTER L\r
+0x4D   0x004D  #LATIN CAPITAL LETTER M\r
+0x4E   0x004E  #LATIN CAPITAL LETTER N\r
+0x4F   0x004F  #LATIN CAPITAL LETTER O\r
+0x50   0x0050  #LATIN CAPITAL LETTER P\r
+0x51   0x0051  #LATIN CAPITAL LETTER Q\r
+0x52   0x0052  #LATIN CAPITAL LETTER R\r
+0x53   0x0053  #LATIN CAPITAL LETTER S\r
+0x54   0x0054  #LATIN CAPITAL LETTER T\r
+0x55   0x0055  #LATIN CAPITAL LETTER U\r
+0x56   0x0056  #LATIN CAPITAL LETTER V\r
+0x57   0x0057  #LATIN CAPITAL LETTER W\r
+0x58   0x0058  #LATIN CAPITAL LETTER X\r
+0x59   0x0059  #LATIN CAPITAL LETTER Y\r
+0x5A   0x005A  #LATIN CAPITAL LETTER Z\r
+0x5B   0x005B  #LEFT SQUARE BRACKET\r
+0x5C   0x005C  #REVERSE SOLIDUS\r
+0x5D   0x005D  #RIGHT SQUARE BRACKET\r
+0x5E   0x005E  #CIRCUMFLEX ACCENT\r
+0x5F   0x005F  #LOW LINE\r
+0x60   0x0060  #GRAVE ACCENT\r
+0x61   0x0061  #LATIN SMALL LETTER A\r
+0x62   0x0062  #LATIN SMALL LETTER B\r
+0x63   0x0063  #LATIN SMALL LETTER C\r
+0x64   0x0064  #LATIN SMALL LETTER D\r
+0x65   0x0065  #LATIN SMALL LETTER E\r
+0x66   0x0066  #LATIN SMALL LETTER F\r
+0x67   0x0067  #LATIN SMALL LETTER G\r
+0x68   0x0068  #LATIN SMALL LETTER H\r
+0x69   0x0069  #LATIN SMALL LETTER I\r
+0x6A   0x006A  #LATIN SMALL LETTER J\r
+0x6B   0x006B  #LATIN SMALL LETTER K\r
+0x6C   0x006C  #LATIN SMALL LETTER L\r
+0x6D   0x006D  #LATIN SMALL LETTER M\r
+0x6E   0x006E  #LATIN SMALL LETTER N\r
+0x6F   0x006F  #LATIN SMALL LETTER O\r
+0x70   0x0070  #LATIN SMALL LETTER P\r
+0x71   0x0071  #LATIN SMALL LETTER Q\r
+0x72   0x0072  #LATIN SMALL LETTER R\r
+0x73   0x0073  #LATIN SMALL LETTER S\r
+0x74   0x0074  #LATIN SMALL LETTER T\r
+0x75   0x0075  #LATIN SMALL LETTER U\r
+0x76   0x0076  #LATIN SMALL LETTER V\r
+0x77   0x0077  #LATIN SMALL LETTER W\r
+0x78   0x0078  #LATIN SMALL LETTER X\r
+0x79   0x0079  #LATIN SMALL LETTER Y\r
+0x7A   0x007A  #LATIN SMALL LETTER Z\r
+0x7B   0x007B  #LEFT CURLY BRACKET\r
+0x7C   0x007C  #VERTICAL LINE\r
+0x7D   0x007D  #RIGHT CURLY BRACKET\r
+0x7E   0x007E  #TILDE\r
+0x7F   0x007F  #DELETE\r
+0x80   0x20AC  #EURO SIGN\r
+0x81           #UNDEFINED\r
+0x82   0x201A  #SINGLE LOW-9 QUOTATION MARK\r
+0x83   0x0192  #LATIN SMALL LETTER F WITH HOOK\r
+0x84   0x201E  #DOUBLE LOW-9 QUOTATION MARK\r
+0x85   0x2026  #HORIZONTAL ELLIPSIS\r
+0x86   0x2020  #DAGGER\r
+0x87   0x2021  #DOUBLE DAGGER\r
+0x88   0x02C6  #MODIFIER LETTER CIRCUMFLEX ACCENT\r
+0x89   0x2030  #PER MILLE SIGN\r
+0x8A   0x0160  #LATIN CAPITAL LETTER S WITH CARON\r
+0x8B   0x2039  #SINGLE LEFT-POINTING ANGLE QUOTATION MARK\r
+0x8C   0x0152  #LATIN CAPITAL LIGATURE OE\r
+0x8D           #UNDEFINED\r
+0x8E   0x017D  #LATIN CAPITAL LETTER Z WITH CARON\r
+0x8F           #UNDEFINED\r
+0x90           #UNDEFINED\r
+0x91   0x2018  #LEFT SINGLE QUOTATION MARK\r
+0x92   0x2019  #RIGHT SINGLE QUOTATION MARK\r
+0x93   0x201C  #LEFT DOUBLE QUOTATION MARK\r
+0x94   0x201D  #RIGHT DOUBLE QUOTATION MARK\r
+0x95   0x2022  #BULLET\r
+0x96   0x2013  #EN DASH\r
+0x97   0x2014  #EM DASH\r
+0x98   0x02DC  #SMALL TILDE\r
+0x99   0x2122  #TRADE MARK SIGN\r
+0x9A   0x0161  #LATIN SMALL LETTER S WITH CARON\r
+0x9B   0x203A  #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK\r
+0x9C   0x0153  #LATIN SMALL LIGATURE OE\r
+0x9D           #UNDEFINED\r
+0x9E   0x017E  #LATIN SMALL LETTER Z WITH CARON\r
+0x9F   0x0178  #LATIN CAPITAL LETTER Y WITH DIAERESIS\r
+0xA0   0x00A0  #NO-BREAK SPACE\r
+0xA1   0x00A1  #INVERTED EXCLAMATION MARK\r
+0xA2   0x00A2  #CENT SIGN\r
+0xA3   0x00A3  #POUND SIGN\r
+0xA4   0x00A4  #CURRENCY SIGN\r
+0xA5   0x00A5  #YEN SIGN\r
+0xA6   0x00A6  #BROKEN BAR\r
+0xA7   0x00A7  #SECTION SIGN\r
+0xA8   0x00A8  #DIAERESIS\r
+0xA9   0x00A9  #COPYRIGHT SIGN\r
+0xAA   0x00AA  #FEMININE ORDINAL INDICATOR\r
+0xAB   0x00AB  #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xAC   0x00AC  #NOT SIGN\r
+0xAD   0x00AD  #SOFT HYPHEN\r
+0xAE   0x00AE  #REGISTERED SIGN\r
+0xAF   0x00AF  #MACRON\r
+0xB0   0x00B0  #DEGREE SIGN\r
+0xB1   0x00B1  #PLUS-MINUS SIGN\r
+0xB2   0x00B2  #SUPERSCRIPT TWO\r
+0xB3   0x00B3  #SUPERSCRIPT THREE\r
+0xB4   0x00B4  #ACUTE ACCENT\r
+0xB5   0x00B5  #MICRO SIGN\r
+0xB6   0x00B6  #PILCROW SIGN\r
+0xB7   0x00B7  #MIDDLE DOT\r
+0xB8   0x00B8  #CEDILLA\r
+0xB9   0x00B9  #SUPERSCRIPT ONE\r
+0xBA   0x00BA  #MASCULINE ORDINAL INDICATOR\r
+0xBB   0x00BB  #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xBC   0x00BC  #VULGAR FRACTION ONE QUARTER\r
+0xBD   0x00BD  #VULGAR FRACTION ONE HALF\r
+0xBE   0x00BE  #VULGAR FRACTION THREE QUARTERS\r
+0xBF   0x00BF  #INVERTED QUESTION MARK\r
+0xC0   0x00C0  #LATIN CAPITAL LETTER A WITH GRAVE\r
+0xC1   0x00C1  #LATIN CAPITAL LETTER A WITH ACUTE\r
+0xC2   0x00C2  #LATIN CAPITAL LETTER A WITH CIRCUMFLEX\r
+0xC3   0x00C3  #LATIN CAPITAL LETTER A WITH TILDE\r
+0xC4   0x00C4  #LATIN CAPITAL LETTER A WITH DIAERESIS\r
+0xC5   0x00C5  #LATIN CAPITAL LETTER A WITH RING ABOVE\r
+0xC6   0x00C6  #LATIN CAPITAL LETTER AE\r
+0xC7   0x00C7  #LATIN CAPITAL LETTER C WITH CEDILLA\r
+0xC8   0x00C8  #LATIN CAPITAL LETTER E WITH GRAVE\r
+0xC9   0x00C9  #LATIN CAPITAL LETTER E WITH ACUTE\r
+0xCA   0x00CA  #LATIN CAPITAL LETTER E WITH CIRCUMFLEX\r
+0xCB   0x00CB  #LATIN CAPITAL LETTER E WITH DIAERESIS\r
+0xCC   0x00CC  #LATIN CAPITAL LETTER I WITH GRAVE\r
+0xCD   0x00CD  #LATIN CAPITAL LETTER I WITH ACUTE\r
+0xCE   0x00CE  #LATIN CAPITAL LETTER I WITH CIRCUMFLEX\r
+0xCF   0x00CF  #LATIN CAPITAL LETTER I WITH DIAERESIS\r
+0xD0   0x00D0  #LATIN CAPITAL LETTER ETH\r
+0xD1   0x00D1  #LATIN CAPITAL LETTER N WITH TILDE\r
+0xD2   0x00D2  #LATIN CAPITAL LETTER O WITH GRAVE\r
+0xD3   0x00D3  #LATIN CAPITAL LETTER O WITH ACUTE\r
+0xD4   0x00D4  #LATIN CAPITAL LETTER O WITH CIRCUMFLEX\r
+0xD5   0x00D5  #LATIN CAPITAL LETTER O WITH TILDE\r
+0xD6   0x00D6  #LATIN CAPITAL LETTER O WITH DIAERESIS\r
+0xD7   0x00D7  #MULTIPLICATION SIGN\r
+0xD8   0x00D8  #LATIN CAPITAL LETTER O WITH STROKE\r
+0xD9   0x00D9  #LATIN CAPITAL LETTER U WITH GRAVE\r
+0xDA   0x00DA  #LATIN CAPITAL LETTER U WITH ACUTE\r
+0xDB   0x00DB  #LATIN CAPITAL LETTER U WITH CIRCUMFLEX\r
+0xDC   0x00DC  #LATIN CAPITAL LETTER U WITH DIAERESIS\r
+0xDD   0x00DD  #LATIN CAPITAL LETTER Y WITH ACUTE\r
+0xDE   0x00DE  #LATIN CAPITAL LETTER THORN\r
+0xDF   0x00DF  #LATIN SMALL LETTER SHARP S\r
+0xE0   0x00E0  #LATIN SMALL LETTER A WITH GRAVE\r
+0xE1   0x00E1  #LATIN SMALL LETTER A WITH ACUTE\r
+0xE2   0x00E2  #LATIN SMALL LETTER A WITH CIRCUMFLEX\r
+0xE3   0x00E3  #LATIN SMALL LETTER A WITH TILDE\r
+0xE4   0x00E4  #LATIN SMALL LETTER A WITH DIAERESIS\r
+0xE5   0x00E5  #LATIN SMALL LETTER A WITH RING ABOVE\r
+0xE6   0x00E6  #LATIN SMALL LETTER AE\r
+0xE7   0x00E7  #LATIN SMALL LETTER C WITH CEDILLA\r
+0xE8   0x00E8  #LATIN SMALL LETTER E WITH GRAVE\r
+0xE9   0x00E9  #LATIN SMALL LETTER E WITH ACUTE\r
+0xEA   0x00EA  #LATIN SMALL LETTER E WITH CIRCUMFLEX\r
+0xEB   0x00EB  #LATIN SMALL LETTER E WITH DIAERESIS\r
+0xEC   0x00EC  #LATIN SMALL LETTER I WITH GRAVE\r
+0xED   0x00ED  #LATIN SMALL LETTER I WITH ACUTE\r
+0xEE   0x00EE  #LATIN SMALL LETTER I WITH CIRCUMFLEX\r
+0xEF   0x00EF  #LATIN SMALL LETTER I WITH DIAERESIS\r
+0xF0   0x00F0  #LATIN SMALL LETTER ETH\r
+0xF1   0x00F1  #LATIN SMALL LETTER N WITH TILDE\r
+0xF2   0x00F2  #LATIN SMALL LETTER O WITH GRAVE\r
+0xF3   0x00F3  #LATIN SMALL LETTER O WITH ACUTE\r
+0xF4   0x00F4  #LATIN SMALL LETTER O WITH CIRCUMFLEX\r
+0xF5   0x00F5  #LATIN SMALL LETTER O WITH TILDE\r
+0xF6   0x00F6  #LATIN SMALL LETTER O WITH DIAERESIS\r
+0xF7   0x00F7  #DIVISION SIGN\r
+0xF8   0x00F8  #LATIN SMALL LETTER O WITH STROKE\r
+0xF9   0x00F9  #LATIN SMALL LETTER U WITH GRAVE\r
+0xFA   0x00FA  #LATIN SMALL LETTER U WITH ACUTE\r
+0xFB   0x00FB  #LATIN SMALL LETTER U WITH CIRCUMFLEX\r
+0xFC   0x00FC  #LATIN SMALL LETTER U WITH DIAERESIS\r
+0xFD   0x00FD  #LATIN SMALL LETTER Y WITH ACUTE\r
+0xFE   0x00FE  #LATIN SMALL LETTER THORN\r
+0xFF   0x00FF  #LATIN SMALL LETTER Y WITH DIAERESIS\r
diff --git a/data/windows-1253.txt b/data/windows-1253.txt
new file mode 100644 (file)
index 0000000..3b246f5
--- /dev/null
@@ -0,0 +1,274 @@
+#\r
+#    Name:     cp1253 to Unicode table\r
+#    Unicode version: 2.0\r
+#    Table version: 2.01\r
+#    Table format:  Format A\r
+#    Date:          04/15/98\r
+#\r
+#    Contact:       cpxlate@microsoft.com\r
+#\r
+#    General notes: none\r
+#\r
+#    Format: Three tab-separated columns\r
+#        Column #1 is the cp1253 code (in hex)\r
+#        Column #2 is the Unicode (in hex as 0xXXXX)\r
+#        Column #3 is the Unicode name (follows a comment sign, '#')\r
+#\r
+#    The entries are in cp1253 order\r
+#\r
+0x00   0x0000  #NULL\r
+0x01   0x0001  #START OF HEADING\r
+0x02   0x0002  #START OF TEXT\r
+0x03   0x0003  #END OF TEXT\r
+0x04   0x0004  #END OF TRANSMISSION\r
+0x05   0x0005  #ENQUIRY\r
+0x06   0x0006  #ACKNOWLEDGE\r
+0x07   0x0007  #BELL\r
+0x08   0x0008  #BACKSPACE\r
+0x09   0x0009  #HORIZONTAL TABULATION\r
+0x0A   0x000A  #LINE FEED\r
+0x0B   0x000B  #VERTICAL TABULATION\r
+0x0C   0x000C  #FORM FEED\r
+0x0D   0x000D  #CARRIAGE RETURN\r
+0x0E   0x000E  #SHIFT OUT\r
+0x0F   0x000F  #SHIFT IN\r
+0x10   0x0010  #DATA LINK ESCAPE\r
+0x11   0x0011  #DEVICE CONTROL ONE\r
+0x12   0x0012  #DEVICE CONTROL TWO\r
+0x13   0x0013  #DEVICE CONTROL THREE\r
+0x14   0x0014  #DEVICE CONTROL FOUR\r
+0x15   0x0015  #NEGATIVE ACKNOWLEDGE\r
+0x16   0x0016  #SYNCHRONOUS IDLE\r
+0x17   0x0017  #END OF TRANSMISSION BLOCK\r
+0x18   0x0018  #CANCEL\r
+0x19   0x0019  #END OF MEDIUM\r
+0x1A   0x001A  #SUBSTITUTE\r
+0x1B   0x001B  #ESCAPE\r
+0x1C   0x001C  #FILE SEPARATOR\r
+0x1D   0x001D  #GROUP SEPARATOR\r
+0x1E   0x001E  #RECORD SEPARATOR\r
+0x1F   0x001F  #UNIT SEPARATOR\r
+0x20   0x0020  #SPACE\r
+0x21   0x0021  #EXCLAMATION MARK\r
+0x22   0x0022  #QUOTATION MARK\r
+0x23   0x0023  #NUMBER SIGN\r
+0x24   0x0024  #DOLLAR SIGN\r
+0x25   0x0025  #PERCENT SIGN\r
+0x26   0x0026  #AMPERSAND\r
+0x27   0x0027  #APOSTROPHE\r
+0x28   0x0028  #LEFT PARENTHESIS\r
+0x29   0x0029  #RIGHT PARENTHESIS\r
+0x2A   0x002A  #ASTERISK\r
+0x2B   0x002B  #PLUS SIGN\r
+0x2C   0x002C  #COMMA\r
+0x2D   0x002D  #HYPHEN-MINUS\r
+0x2E   0x002E  #FULL STOP\r
+0x2F   0x002F  #SOLIDUS\r
+0x30   0x0030  #DIGIT ZERO\r
+0x31   0x0031  #DIGIT ONE\r
+0x32   0x0032  #DIGIT TWO\r
+0x33   0x0033  #DIGIT THREE\r
+0x34   0x0034  #DIGIT FOUR\r
+0x35   0x0035  #DIGIT FIVE\r
+0x36   0x0036  #DIGIT SIX\r
+0x37   0x0037  #DIGIT SEVEN\r
+0x38   0x0038  #DIGIT EIGHT\r
+0x39   0x0039  #DIGIT NINE\r
+0x3A   0x003A  #COLON\r
+0x3B   0x003B  #SEMICOLON\r
+0x3C   0x003C  #LESS-THAN SIGN\r
+0x3D   0x003D  #EQUALS SIGN\r
+0x3E   0x003E  #GREATER-THAN SIGN\r
+0x3F   0x003F  #QUESTION MARK\r
+0x40   0x0040  #COMMERCIAL AT\r
+0x41   0x0041  #LATIN CAPITAL LETTER A\r
+0x42   0x0042  #LATIN CAPITAL LETTER B\r
+0x43   0x0043  #LATIN CAPITAL LETTER C\r
+0x44   0x0044  #LATIN CAPITAL LETTER D\r
+0x45   0x0045  #LATIN CAPITAL LETTER E\r
+0x46   0x0046  #LATIN CAPITAL LETTER F\r
+0x47   0x0047  #LATIN CAPITAL LETTER G\r
+0x48   0x0048  #LATIN CAPITAL LETTER H\r
+0x49   0x0049  #LATIN CAPITAL LETTER I\r
+0x4A   0x004A  #LATIN CAPITAL LETTER J\r
+0x4B   0x004B  #LATIN CAPITAL LETTER K\r
+0x4C   0x004C  #LATIN CAPITAL LETTER L\r
+0x4D   0x004D  #LATIN CAPITAL LETTER M\r
+0x4E   0x004E  #LATIN CAPITAL LETTER N\r
+0x4F   0x004F  #LATIN CAPITAL LETTER O\r
+0x50   0x0050  #LATIN CAPITAL LETTER P\r
+0x51   0x0051  #LATIN CAPITAL LETTER Q\r
+0x52   0x0052  #LATIN CAPITAL LETTER R\r
+0x53   0x0053  #LATIN CAPITAL LETTER S\r
+0x54   0x0054  #LATIN CAPITAL LETTER T\r
+0x55   0x0055  #LATIN CAPITAL LETTER U\r
+0x56   0x0056  #LATIN CAPITAL LETTER V\r
+0x57   0x0057  #LATIN CAPITAL LETTER W\r
+0x58   0x0058  #LATIN CAPITAL LETTER X\r
+0x59   0x0059  #LATIN CAPITAL LETTER Y\r
+0x5A   0x005A  #LATIN CAPITAL LETTER Z\r
+0x5B   0x005B  #LEFT SQUARE BRACKET\r
+0x5C   0x005C  #REVERSE SOLIDUS\r
+0x5D   0x005D  #RIGHT SQUARE BRACKET\r
+0x5E   0x005E  #CIRCUMFLEX ACCENT\r
+0x5F   0x005F  #LOW LINE\r
+0x60   0x0060  #GRAVE ACCENT\r
+0x61   0x0061  #LATIN SMALL LETTER A\r
+0x62   0x0062  #LATIN SMALL LETTER B\r
+0x63   0x0063  #LATIN SMALL LETTER C\r
+0x64   0x0064  #LATIN SMALL LETTER D\r
+0x65   0x0065  #LATIN SMALL LETTER E\r
+0x66   0x0066  #LATIN SMALL LETTER F\r
+0x67   0x0067  #LATIN SMALL LETTER G\r
+0x68   0x0068  #LATIN SMALL LETTER H\r
+0x69   0x0069  #LATIN SMALL LETTER I\r
+0x6A   0x006A  #LATIN SMALL LETTER J\r
+0x6B   0x006B  #LATIN SMALL LETTER K\r
+0x6C   0x006C  #LATIN SMALL LETTER L\r
+0x6D   0x006D  #LATIN SMALL LETTER M\r
+0x6E   0x006E  #LATIN SMALL LETTER N\r
+0x6F   0x006F  #LATIN SMALL LETTER O\r
+0x70   0x0070  #LATIN SMALL LETTER P\r
+0x71   0x0071  #LATIN SMALL LETTER Q\r
+0x72   0x0072  #LATIN SMALL LETTER R\r
+0x73   0x0073  #LATIN SMALL LETTER S\r
+0x74   0x0074  #LATIN SMALL LETTER T\r
+0x75   0x0075  #LATIN SMALL LETTER U\r
+0x76   0x0076  #LATIN SMALL LETTER V\r
+0x77   0x0077  #LATIN SMALL LETTER W\r
+0x78   0x0078  #LATIN SMALL LETTER X\r
+0x79   0x0079  #LATIN SMALL LETTER Y\r
+0x7A   0x007A  #LATIN SMALL LETTER Z\r
+0x7B   0x007B  #LEFT CURLY BRACKET\r
+0x7C   0x007C  #VERTICAL LINE\r
+0x7D   0x007D  #RIGHT CURLY BRACKET\r
+0x7E   0x007E  #TILDE\r
+0x7F   0x007F  #DELETE\r
+0x80   0x20AC  #EURO SIGN\r
+0x81           #UNDEFINED\r
+0x82   0x201A  #SINGLE LOW-9 QUOTATION MARK\r
+0x83   0x0192  #LATIN SMALL LETTER F WITH HOOK\r
+0x84   0x201E  #DOUBLE LOW-9 QUOTATION MARK\r
+0x85   0x2026  #HORIZONTAL ELLIPSIS\r
+0x86   0x2020  #DAGGER\r
+0x87   0x2021  #DOUBLE DAGGER\r
+0x88           #UNDEFINED\r
+0x89   0x2030  #PER MILLE SIGN\r
+0x8A           #UNDEFINED\r
+0x8B   0x2039  #SINGLE LEFT-POINTING ANGLE QUOTATION MARK\r
+0x8C           #UNDEFINED\r
+0x8D           #UNDEFINED\r
+0x8E           #UNDEFINED\r
+0x8F           #UNDEFINED\r
+0x90           #UNDEFINED\r
+0x91   0x2018  #LEFT SINGLE QUOTATION MARK\r
+0x92   0x2019  #RIGHT SINGLE QUOTATION MARK\r
+0x93   0x201C  #LEFT DOUBLE QUOTATION MARK\r
+0x94   0x201D  #RIGHT DOUBLE QUOTATION MARK\r
+0x95   0x2022  #BULLET\r
+0x96   0x2013  #EN DASH\r
+0x97   0x2014  #EM DASH\r
+0x98           #UNDEFINED\r
+0x99   0x2122  #TRADE MARK SIGN\r
+0x9A           #UNDEFINED\r
+0x9B   0x203A  #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK\r
+0x9C           #UNDEFINED\r
+0x9D           #UNDEFINED\r
+0x9E           #UNDEFINED\r
+0x9F           #UNDEFINED\r
+0xA0   0x00A0  #NO-BREAK SPACE\r
+0xA1   0x0385  #GREEK DIALYTIKA TONOS\r
+0xA2   0x0386  #GREEK CAPITAL LETTER ALPHA WITH TONOS\r
+0xA3   0x00A3  #POUND SIGN\r
+0xA4   0x00A4  #CURRENCY SIGN\r
+0xA5   0x00A5  #YEN SIGN\r
+0xA6   0x00A6  #BROKEN BAR\r
+0xA7   0x00A7  #SECTION SIGN\r
+0xA8   0x00A8  #DIAERESIS\r
+0xA9   0x00A9  #COPYRIGHT SIGN\r
+0xAA           #UNDEFINED\r
+0xAB   0x00AB  #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xAC   0x00AC  #NOT SIGN\r
+0xAD   0x00AD  #SOFT HYPHEN\r
+0xAE   0x00AE  #REGISTERED SIGN\r
+0xAF   0x2015  #HORIZONTAL BAR\r
+0xB0   0x00B0  #DEGREE SIGN\r
+0xB1   0x00B1  #PLUS-MINUS SIGN\r
+0xB2   0x00B2  #SUPERSCRIPT TWO\r
+0xB3   0x00B3  #SUPERSCRIPT THREE\r
+0xB4   0x0384  #GREEK TONOS\r
+0xB5   0x00B5  #MICRO SIGN\r
+0xB6   0x00B6  #PILCROW SIGN\r
+0xB7   0x00B7  #MIDDLE DOT\r
+0xB8   0x0388  #GREEK CAPITAL LETTER EPSILON WITH TONOS\r
+0xB9   0x0389  #GREEK CAPITAL LETTER ETA WITH TONOS\r
+0xBA   0x038A  #GREEK CAPITAL LETTER IOTA WITH TONOS\r
+0xBB   0x00BB  #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xBC   0x038C  #GREEK CAPITAL LETTER OMICRON WITH TONOS\r
+0xBD   0x00BD  #VULGAR FRACTION ONE HALF\r
+0xBE   0x038E  #GREEK CAPITAL LETTER UPSILON WITH TONOS\r
+0xBF   0x038F  #GREEK CAPITAL LETTER OMEGA WITH TONOS\r
+0xC0   0x0390  #GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS\r
+0xC1   0x0391  #GREEK CAPITAL LETTER ALPHA\r
+0xC2   0x0392  #GREEK CAPITAL LETTER BETA\r
+0xC3   0x0393  #GREEK CAPITAL LETTER GAMMA\r
+0xC4   0x0394  #GREEK CAPITAL LETTER DELTA\r
+0xC5   0x0395  #GREEK CAPITAL LETTER EPSILON\r
+0xC6   0x0396  #GREEK CAPITAL LETTER ZETA\r
+0xC7   0x0397  #GREEK CAPITAL LETTER ETA\r
+0xC8   0x0398  #GREEK CAPITAL LETTER THETA\r
+0xC9   0x0399  #GREEK CAPITAL LETTER IOTA\r
+0xCA   0x039A  #GREEK CAPITAL LETTER KAPPA\r
+0xCB   0x039B  #GREEK CAPITAL LETTER LAMDA\r
+0xCC   0x039C  #GREEK CAPITAL LETTER MU\r
+0xCD   0x039D  #GREEK CAPITAL LETTER NU\r
+0xCE   0x039E  #GREEK CAPITAL LETTER XI\r
+0xCF   0x039F  #GREEK CAPITAL LETTER OMICRON\r
+0xD0   0x03A0  #GREEK CAPITAL LETTER PI\r
+0xD1   0x03A1  #GREEK CAPITAL LETTER RHO\r
+0xD2           #UNDEFINED\r
+0xD3   0x03A3  #GREEK CAPITAL LETTER SIGMA\r
+0xD4   0x03A4  #GREEK CAPITAL LETTER TAU\r
+0xD5   0x03A5  #GREEK CAPITAL LETTER UPSILON\r
+0xD6   0x03A6  #GREEK CAPITAL LETTER PHI\r
+0xD7   0x03A7  #GREEK CAPITAL LETTER CHI\r
+0xD8   0x03A8  #GREEK CAPITAL LETTER PSI\r
+0xD9   0x03A9  #GREEK CAPITAL LETTER OMEGA\r
+0xDA   0x03AA  #GREEK CAPITAL LETTER IOTA WITH DIALYTIKA\r
+0xDB   0x03AB  #GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA\r
+0xDC   0x03AC  #GREEK SMALL LETTER ALPHA WITH TONOS\r
+0xDD   0x03AD  #GREEK SMALL LETTER EPSILON WITH TONOS\r
+0xDE   0x03AE  #GREEK SMALL LETTER ETA WITH TONOS\r
+0xDF   0x03AF  #GREEK SMALL LETTER IOTA WITH TONOS\r
+0xE0   0x03B0  #GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS\r
+0xE1   0x03B1  #GREEK SMALL LETTER ALPHA\r
+0xE2   0x03B2  #GREEK SMALL LETTER BETA\r
+0xE3   0x03B3  #GREEK SMALL LETTER GAMMA\r
+0xE4   0x03B4  #GREEK SMALL LETTER DELTA\r
+0xE5   0x03B5  #GREEK SMALL LETTER EPSILON\r
+0xE6   0x03B6  #GREEK SMALL LETTER ZETA\r
+0xE7   0x03B7  #GREEK SMALL LETTER ETA\r
+0xE8   0x03B8  #GREEK SMALL LETTER THETA\r
+0xE9   0x03B9  #GREEK SMALL LETTER IOTA\r
+0xEA   0x03BA  #GREEK SMALL LETTER KAPPA\r
+0xEB   0x03BB  #GREEK SMALL LETTER LAMDA\r
+0xEC   0x03BC  #GREEK SMALL LETTER MU\r
+0xED   0x03BD  #GREEK SMALL LETTER NU\r
+0xEE   0x03BE  #GREEK SMALL LETTER XI\r
+0xEF   0x03BF  #GREEK SMALL LETTER OMICRON\r
+0xF0   0x03C0  #GREEK SMALL LETTER PI\r
+0xF1   0x03C1  #GREEK SMALL LETTER RHO\r
+0xF2   0x03C2  #GREEK SMALL LETTER FINAL SIGMA\r
+0xF3   0x03C3  #GREEK SMALL LETTER SIGMA\r
+0xF4   0x03C4  #GREEK SMALL LETTER TAU\r
+0xF5   0x03C5  #GREEK SMALL LETTER UPSILON\r
+0xF6   0x03C6  #GREEK SMALL LETTER PHI\r
+0xF7   0x03C7  #GREEK SMALL LETTER CHI\r
+0xF8   0x03C8  #GREEK SMALL LETTER PSI\r
+0xF9   0x03C9  #GREEK SMALL LETTER OMEGA\r
+0xFA   0x03CA  #GREEK SMALL LETTER IOTA WITH DIALYTIKA\r
+0xFB   0x03CB  #GREEK SMALL LETTER UPSILON WITH DIALYTIKA\r
+0xFC   0x03CC  #GREEK SMALL LETTER OMICRON WITH TONOS\r
+0xFD   0x03CD  #GREEK SMALL LETTER UPSILON WITH TONOS\r
+0xFE   0x03CE  #GREEK SMALL LETTER OMEGA WITH TONOS\r
+0xFF           #UNDEFINED\r
diff --git a/data/windows-1254.txt b/data/windows-1254.txt
new file mode 100644 (file)
index 0000000..284923e
--- /dev/null
@@ -0,0 +1,274 @@
+#\r
+#    Name:     cp1254 to Unicode table\r
+#    Unicode version: 2.0\r
+#    Table version: 2.01\r
+#    Table format:  Format A\r
+#    Date:          04/15/98\r
+#\r
+#    Contact:       cpxlate@microsoft.com\r
+#\r
+#    General notes: none\r
+#\r
+#    Format: Three tab-separated columns\r
+#        Column #1 is the cp1254 code (in hex)\r
+#        Column #2 is the Unicode (in hex as 0xXXXX)\r
+#        Column #3 is the Unicode name (follows a comment sign, '#')\r
+#\r
+#    The entries are in cp1254 order\r
+#\r
+0x00   0x0000  #NULL\r
+0x01   0x0001  #START OF HEADING\r
+0x02   0x0002  #START OF TEXT\r
+0x03   0x0003  #END OF TEXT\r
+0x04   0x0004  #END OF TRANSMISSION\r
+0x05   0x0005  #ENQUIRY\r
+0x06   0x0006  #ACKNOWLEDGE\r
+0x07   0x0007  #BELL\r
+0x08   0x0008  #BACKSPACE\r
+0x09   0x0009  #HORIZONTAL TABULATION\r
+0x0A   0x000A  #LINE FEED\r
+0x0B   0x000B  #VERTICAL TABULATION\r
+0x0C   0x000C  #FORM FEED\r
+0x0D   0x000D  #CARRIAGE RETURN\r
+0x0E   0x000E  #SHIFT OUT\r
+0x0F   0x000F  #SHIFT IN\r
+0x10   0x0010  #DATA LINK ESCAPE\r
+0x11   0x0011  #DEVICE CONTROL ONE\r
+0x12   0x0012  #DEVICE CONTROL TWO\r
+0x13   0x0013  #DEVICE CONTROL THREE\r
+0x14   0x0014  #DEVICE CONTROL FOUR\r
+0x15   0x0015  #NEGATIVE ACKNOWLEDGE\r
+0x16   0x0016  #SYNCHRONOUS IDLE\r
+0x17   0x0017  #END OF TRANSMISSION BLOCK\r
+0x18   0x0018  #CANCEL\r
+0x19   0x0019  #END OF MEDIUM\r
+0x1A   0x001A  #SUBSTITUTE\r
+0x1B   0x001B  #ESCAPE\r
+0x1C   0x001C  #FILE SEPARATOR\r
+0x1D   0x001D  #GROUP SEPARATOR\r
+0x1E   0x001E  #RECORD SEPARATOR\r
+0x1F   0x001F  #UNIT SEPARATOR\r
+0x20   0x0020  #SPACE\r
+0x21   0x0021  #EXCLAMATION MARK\r
+0x22   0x0022  #QUOTATION MARK\r
+0x23   0x0023  #NUMBER SIGN\r
+0x24   0x0024  #DOLLAR SIGN\r
+0x25   0x0025  #PERCENT SIGN\r
+0x26   0x0026  #AMPERSAND\r
+0x27   0x0027  #APOSTROPHE\r
+0x28   0x0028  #LEFT PARENTHESIS\r
+0x29   0x0029  #RIGHT PARENTHESIS\r
+0x2A   0x002A  #ASTERISK\r
+0x2B   0x002B  #PLUS SIGN\r
+0x2C   0x002C  #COMMA\r
+0x2D   0x002D  #HYPHEN-MINUS\r
+0x2E   0x002E  #FULL STOP\r
+0x2F   0x002F  #SOLIDUS\r
+0x30   0x0030  #DIGIT ZERO\r
+0x31   0x0031  #DIGIT ONE\r
+0x32   0x0032  #DIGIT TWO\r
+0x33   0x0033  #DIGIT THREE\r
+0x34   0x0034  #DIGIT FOUR\r
+0x35   0x0035  #DIGIT FIVE\r
+0x36   0x0036  #DIGIT SIX\r
+0x37   0x0037  #DIGIT SEVEN\r
+0x38   0x0038  #DIGIT EIGHT\r
+0x39   0x0039  #DIGIT NINE\r
+0x3A   0x003A  #COLON\r
+0x3B   0x003B  #SEMICOLON\r
+0x3C   0x003C  #LESS-THAN SIGN\r
+0x3D   0x003D  #EQUALS SIGN\r
+0x3E   0x003E  #GREATER-THAN SIGN\r
+0x3F   0x003F  #QUESTION MARK\r
+0x40   0x0040  #COMMERCIAL AT\r
+0x41   0x0041  #LATIN CAPITAL LETTER A\r
+0x42   0x0042  #LATIN CAPITAL LETTER B\r
+0x43   0x0043  #LATIN CAPITAL LETTER C\r
+0x44   0x0044  #LATIN CAPITAL LETTER D\r
+0x45   0x0045  #LATIN CAPITAL LETTER E\r
+0x46   0x0046  #LATIN CAPITAL LETTER F\r
+0x47   0x0047  #LATIN CAPITAL LETTER G\r
+0x48   0x0048  #LATIN CAPITAL LETTER H\r
+0x49   0x0049  #LATIN CAPITAL LETTER I\r
+0x4A   0x004A  #LATIN CAPITAL LETTER J\r
+0x4B   0x004B  #LATIN CAPITAL LETTER K\r
+0x4C   0x004C  #LATIN CAPITAL LETTER L\r
+0x4D   0x004D  #LATIN CAPITAL LETTER M\r
+0x4E   0x004E  #LATIN CAPITAL LETTER N\r
+0x4F   0x004F  #LATIN CAPITAL LETTER O\r
+0x50   0x0050  #LATIN CAPITAL LETTER P\r
+0x51   0x0051  #LATIN CAPITAL LETTER Q\r
+0x52   0x0052  #LATIN CAPITAL LETTER R\r
+0x53   0x0053  #LATIN CAPITAL LETTER S\r
+0x54   0x0054  #LATIN CAPITAL LETTER T\r
+0x55   0x0055  #LATIN CAPITAL LETTER U\r
+0x56   0x0056  #LATIN CAPITAL LETTER V\r
+0x57   0x0057  #LATIN CAPITAL LETTER W\r
+0x58   0x0058  #LATIN CAPITAL LETTER X\r
+0x59   0x0059  #LATIN CAPITAL LETTER Y\r
+0x5A   0x005A  #LATIN CAPITAL LETTER Z\r
+0x5B   0x005B  #LEFT SQUARE BRACKET\r
+0x5C   0x005C  #REVERSE SOLIDUS\r
+0x5D   0x005D  #RIGHT SQUARE BRACKET\r
+0x5E   0x005E  #CIRCUMFLEX ACCENT\r
+0x5F   0x005F  #LOW LINE\r
+0x60   0x0060  #GRAVE ACCENT\r
+0x61   0x0061  #LATIN SMALL LETTER A\r
+0x62   0x0062  #LATIN SMALL LETTER B\r
+0x63   0x0063  #LATIN SMALL LETTER C\r
+0x64   0x0064  #LATIN SMALL LETTER D\r
+0x65   0x0065  #LATIN SMALL LETTER E\r
+0x66   0x0066  #LATIN SMALL LETTER F\r
+0x67   0x0067  #LATIN SMALL LETTER G\r
+0x68   0x0068  #LATIN SMALL LETTER H\r
+0x69   0x0069  #LATIN SMALL LETTER I\r
+0x6A   0x006A  #LATIN SMALL LETTER J\r
+0x6B   0x006B  #LATIN SMALL LETTER K\r
+0x6C   0x006C  #LATIN SMALL LETTER L\r
+0x6D   0x006D  #LATIN SMALL LETTER M\r
+0x6E   0x006E  #LATIN SMALL LETTER N\r
+0x6F   0x006F  #LATIN SMALL LETTER O\r
+0x70   0x0070  #LATIN SMALL LETTER P\r
+0x71   0x0071  #LATIN SMALL LETTER Q\r
+0x72   0x0072  #LATIN SMALL LETTER R\r
+0x73   0x0073  #LATIN SMALL LETTER S\r
+0x74   0x0074  #LATIN SMALL LETTER T\r
+0x75   0x0075  #LATIN SMALL LETTER U\r
+0x76   0x0076  #LATIN SMALL LETTER V\r
+0x77   0x0077  #LATIN SMALL LETTER W\r
+0x78   0x0078  #LATIN SMALL LETTER X\r
+0x79   0x0079  #LATIN SMALL LETTER Y\r
+0x7A   0x007A  #LATIN SMALL LETTER Z\r
+0x7B   0x007B  #LEFT CURLY BRACKET\r
+0x7C   0x007C  #VERTICAL LINE\r
+0x7D   0x007D  #RIGHT CURLY BRACKET\r
+0x7E   0x007E  #TILDE\r
+0x7F   0x007F  #DELETE\r
+0x80   0x20AC  #EURO SIGN\r
+0x81           #UNDEFINED\r
+0x82   0x201A  #SINGLE LOW-9 QUOTATION MARK\r
+0x83   0x0192  #LATIN SMALL LETTER F WITH HOOK\r
+0x84   0x201E  #DOUBLE LOW-9 QUOTATION MARK\r
+0x85   0x2026  #HORIZONTAL ELLIPSIS\r
+0x86   0x2020  #DAGGER\r
+0x87   0x2021  #DOUBLE DAGGER\r
+0x88   0x02C6  #MODIFIER LETTER CIRCUMFLEX ACCENT\r
+0x89   0x2030  #PER MILLE SIGN\r
+0x8A   0x0160  #LATIN CAPITAL LETTER S WITH CARON\r
+0x8B   0x2039  #SINGLE LEFT-POINTING ANGLE QUOTATION MARK\r
+0x8C   0x0152  #LATIN CAPITAL LIGATURE OE\r
+0x8D           #UNDEFINED\r
+0x8E           #UNDEFINED\r
+0x8F           #UNDEFINED\r
+0x90           #UNDEFINED\r
+0x91   0x2018  #LEFT SINGLE QUOTATION MARK\r
+0x92   0x2019  #RIGHT SINGLE QUOTATION MARK\r
+0x93   0x201C  #LEFT DOUBLE QUOTATION MARK\r
+0x94   0x201D  #RIGHT DOUBLE QUOTATION MARK\r
+0x95   0x2022  #BULLET\r
+0x96   0x2013  #EN DASH\r
+0x97   0x2014  #EM DASH\r
+0x98   0x02DC  #SMALL TILDE\r
+0x99   0x2122  #TRADE MARK SIGN\r
+0x9A   0x0161  #LATIN SMALL LETTER S WITH CARON\r
+0x9B   0x203A  #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK\r
+0x9C   0x0153  #LATIN SMALL LIGATURE OE\r
+0x9D           #UNDEFINED\r
+0x9E           #UNDEFINED\r
+0x9F   0x0178  #LATIN CAPITAL LETTER Y WITH DIAERESIS\r
+0xA0   0x00A0  #NO-BREAK SPACE\r
+0xA1   0x00A1  #INVERTED EXCLAMATION MARK\r
+0xA2   0x00A2  #CENT SIGN\r
+0xA3   0x00A3  #POUND SIGN\r
+0xA4   0x00A4  #CURRENCY SIGN\r
+0xA5   0x00A5  #YEN SIGN\r
+0xA6   0x00A6  #BROKEN BAR\r
+0xA7   0x00A7  #SECTION SIGN\r
+0xA8   0x00A8  #DIAERESIS\r
+0xA9   0x00A9  #COPYRIGHT SIGN\r
+0xAA   0x00AA  #FEMININE ORDINAL INDICATOR\r
+0xAB   0x00AB  #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xAC   0x00AC  #NOT SIGN\r
+0xAD   0x00AD  #SOFT HYPHEN\r
+0xAE   0x00AE  #REGISTERED SIGN\r
+0xAF   0x00AF  #MACRON\r
+0xB0   0x00B0  #DEGREE SIGN\r
+0xB1   0x00B1  #PLUS-MINUS SIGN\r
+0xB2   0x00B2  #SUPERSCRIPT TWO\r
+0xB3   0x00B3  #SUPERSCRIPT THREE\r
+0xB4   0x00B4  #ACUTE ACCENT\r
+0xB5   0x00B5  #MICRO SIGN\r
+0xB6   0x00B6  #PILCROW SIGN\r
+0xB7   0x00B7  #MIDDLE DOT\r
+0xB8   0x00B8  #CEDILLA\r
+0xB9   0x00B9  #SUPERSCRIPT ONE\r
+0xBA   0x00BA  #MASCULINE ORDINAL INDICATOR\r
+0xBB   0x00BB  #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xBC   0x00BC  #VULGAR FRACTION ONE QUARTER\r
+0xBD   0x00BD  #VULGAR FRACTION ONE HALF\r
+0xBE   0x00BE  #VULGAR FRACTION THREE QUARTERS\r
+0xBF   0x00BF  #INVERTED QUESTION MARK\r
+0xC0   0x00C0  #LATIN CAPITAL LETTER A WITH GRAVE\r
+0xC1   0x00C1  #LATIN CAPITAL LETTER A WITH ACUTE\r
+0xC2   0x00C2  #LATIN CAPITAL LETTER A WITH CIRCUMFLEX\r
+0xC3   0x00C3  #LATIN CAPITAL LETTER A WITH TILDE\r
+0xC4   0x00C4  #LATIN CAPITAL LETTER A WITH DIAERESIS\r
+0xC5   0x00C5  #LATIN CAPITAL LETTER A WITH RING ABOVE\r
+0xC6   0x00C6  #LATIN CAPITAL LETTER AE\r
+0xC7   0x00C7  #LATIN CAPITAL LETTER C WITH CEDILLA\r
+0xC8   0x00C8  #LATIN CAPITAL LETTER E WITH GRAVE\r
+0xC9   0x00C9  #LATIN CAPITAL LETTER E WITH ACUTE\r
+0xCA   0x00CA  #LATIN CAPITAL LETTER E WITH CIRCUMFLEX\r
+0xCB   0x00CB  #LATIN CAPITAL LETTER E WITH DIAERESIS\r
+0xCC   0x00CC  #LATIN CAPITAL LETTER I WITH GRAVE\r
+0xCD   0x00CD  #LATIN CAPITAL LETTER I WITH ACUTE\r
+0xCE   0x00CE  #LATIN CAPITAL LETTER I WITH CIRCUMFLEX\r
+0xCF   0x00CF  #LATIN CAPITAL LETTER I WITH DIAERESIS\r
+0xD0   0x011E  #LATIN CAPITAL LETTER G WITH BREVE\r
+0xD1   0x00D1  #LATIN CAPITAL LETTER N WITH TILDE\r
+0xD2   0x00D2  #LATIN CAPITAL LETTER O WITH GRAVE\r
+0xD3   0x00D3  #LATIN CAPITAL LETTER O WITH ACUTE\r
+0xD4   0x00D4  #LATIN CAPITAL LETTER O WITH CIRCUMFLEX\r
+0xD5   0x00D5  #LATIN CAPITAL LETTER O WITH TILDE\r
+0xD6   0x00D6  #LATIN CAPITAL LETTER O WITH DIAERESIS\r
+0xD7   0x00D7  #MULTIPLICATION SIGN\r
+0xD8   0x00D8  #LATIN CAPITAL LETTER O WITH STROKE\r
+0xD9   0x00D9  #LATIN CAPITAL LETTER U WITH GRAVE\r
+0xDA   0x00DA  #LATIN CAPITAL LETTER U WITH ACUTE\r
+0xDB   0x00DB  #LATIN CAPITAL LETTER U WITH CIRCUMFLEX\r
+0xDC   0x00DC  #LATIN CAPITAL LETTER U WITH DIAERESIS\r
+0xDD   0x0130  #LATIN CAPITAL LETTER I WITH DOT ABOVE\r
+0xDE   0x015E  #LATIN CAPITAL LETTER S WITH CEDILLA\r
+0xDF   0x00DF  #LATIN SMALL LETTER SHARP S\r
+0xE0   0x00E0  #LATIN SMALL LETTER A WITH GRAVE\r
+0xE1   0x00E1  #LATIN SMALL LETTER A WITH ACUTE\r
+0xE2   0x00E2  #LATIN SMALL LETTER A WITH CIRCUMFLEX\r
+0xE3   0x00E3  #LATIN SMALL LETTER A WITH TILDE\r
+0xE4   0x00E4  #LATIN SMALL LETTER A WITH DIAERESIS\r
+0xE5   0x00E5  #LATIN SMALL LETTER A WITH RING ABOVE\r
+0xE6   0x00E6  #LATIN SMALL LETTER AE\r
+0xE7   0x00E7  #LATIN SMALL LETTER C WITH CEDILLA\r
+0xE8   0x00E8  #LATIN SMALL LETTER E WITH GRAVE\r
+0xE9   0x00E9  #LATIN SMALL LETTER E WITH ACUTE\r
+0xEA   0x00EA  #LATIN SMALL LETTER E WITH CIRCUMFLEX\r
+0xEB   0x00EB  #LATIN SMALL LETTER E WITH DIAERESIS\r
+0xEC   0x00EC  #LATIN SMALL LETTER I WITH GRAVE\r
+0xED   0x00ED  #LATIN SMALL LETTER I WITH ACUTE\r
+0xEE   0x00EE  #LATIN SMALL LETTER I WITH CIRCUMFLEX\r
+0xEF   0x00EF  #LATIN SMALL LETTER I WITH DIAERESIS\r
+0xF0   0x011F  #LATIN SMALL LETTER G WITH BREVE\r
+0xF1   0x00F1  #LATIN SMALL LETTER N WITH TILDE\r
+0xF2   0x00F2  #LATIN SMALL LETTER O WITH GRAVE\r
+0xF3   0x00F3  #LATIN SMALL LETTER O WITH ACUTE\r
+0xF4   0x00F4  #LATIN SMALL LETTER O WITH CIRCUMFLEX\r
+0xF5   0x00F5  #LATIN SMALL LETTER O WITH TILDE\r
+0xF6   0x00F6  #LATIN SMALL LETTER O WITH DIAERESIS\r
+0xF7   0x00F7  #DIVISION SIGN\r
+0xF8   0x00F8  #LATIN SMALL LETTER O WITH STROKE\r
+0xF9   0x00F9  #LATIN SMALL LETTER U WITH GRAVE\r
+0xFA   0x00FA  #LATIN SMALL LETTER U WITH ACUTE\r
+0xFB   0x00FB  #LATIN SMALL LETTER U WITH CIRCUMFLEX\r
+0xFC   0x00FC  #LATIN SMALL LETTER U WITH DIAERESIS\r
+0xFD   0x0131  #LATIN SMALL LETTER DOTLESS I\r
+0xFE   0x015F  #LATIN SMALL LETTER S WITH CEDILLA\r
+0xFF   0x00FF  #LATIN SMALL LETTER Y WITH DIAERESIS\r
diff --git a/data/windows-1255.txt b/data/windows-1255.txt
new file mode 100644 (file)
index 0000000..c87644f
--- /dev/null
@@ -0,0 +1,274 @@
+#\r
+#    Name:     cp1255 to Unicode table\r
+#    Unicode version: 2.0\r
+#    Table version: 2.01\r
+#    Table format:  Format A\r
+#    Date:          1/7/2000\r
+#\r
+#    Contact:       cpxlate@microsoft.com\r
+#\r
+#    General notes: none\r
+#\r
+#    Format: Three tab-separated columns\r
+#        Column #1 is the cp1255 code (in hex)\r
+#        Column #2 is the Unicode (in hex as 0xXXXX)\r
+#        Column #3 is the Unicode name (follows a comment sign, '#')\r
+#\r
+#    The entries are in cp1255 order\r
+#\r
+0x00   0x0000  #NULL\r
+0x01   0x0001  #START OF HEADING\r
+0x02   0x0002  #START OF TEXT\r
+0x03   0x0003  #END OF TEXT\r
+0x04   0x0004  #END OF TRANSMISSION\r
+0x05   0x0005  #ENQUIRY\r
+0x06   0x0006  #ACKNOWLEDGE\r
+0x07   0x0007  #BELL\r
+0x08   0x0008  #BACKSPACE\r
+0x09   0x0009  #HORIZONTAL TABULATION\r
+0x0A   0x000A  #LINE FEED\r
+0x0B   0x000B  #VERTICAL TABULATION\r
+0x0C   0x000C  #FORM FEED\r
+0x0D   0x000D  #CARRIAGE RETURN\r
+0x0E   0x000E  #SHIFT OUT\r
+0x0F   0x000F  #SHIFT IN\r
+0x10   0x0010  #DATA LINK ESCAPE\r
+0x11   0x0011  #DEVICE CONTROL ONE\r
+0x12   0x0012  #DEVICE CONTROL TWO\r
+0x13   0x0013  #DEVICE CONTROL THREE\r
+0x14   0x0014  #DEVICE CONTROL FOUR\r
+0x15   0x0015  #NEGATIVE ACKNOWLEDGE\r
+0x16   0x0016  #SYNCHRONOUS IDLE\r
+0x17   0x0017  #END OF TRANSMISSION BLOCK\r
+0x18   0x0018  #CANCEL\r
+0x19   0x0019  #END OF MEDIUM\r
+0x1A   0x001A  #SUBSTITUTE\r
+0x1B   0x001B  #ESCAPE\r
+0x1C   0x001C  #FILE SEPARATOR\r
+0x1D   0x001D  #GROUP SEPARATOR\r
+0x1E   0x001E  #RECORD SEPARATOR\r
+0x1F   0x001F  #UNIT SEPARATOR\r
+0x20   0x0020  #SPACE\r
+0x21   0x0021  #EXCLAMATION MARK\r
+0x22   0x0022  #QUOTATION MARK\r
+0x23   0x0023  #NUMBER SIGN\r
+0x24   0x0024  #DOLLAR SIGN\r
+0x25   0x0025  #PERCENT SIGN\r
+0x26   0x0026  #AMPERSAND\r
+0x27   0x0027  #APOSTROPHE\r
+0x28   0x0028  #LEFT PARENTHESIS\r
+0x29   0x0029  #RIGHT PARENTHESIS\r
+0x2A   0x002A  #ASTERISK\r
+0x2B   0x002B  #PLUS SIGN\r
+0x2C   0x002C  #COMMA\r
+0x2D   0x002D  #HYPHEN-MINUS\r
+0x2E   0x002E  #FULL STOP\r
+0x2F   0x002F  #SOLIDUS\r
+0x30   0x0030  #DIGIT ZERO\r
+0x31   0x0031  #DIGIT ONE\r
+0x32   0x0032  #DIGIT TWO\r
+0x33   0x0033  #DIGIT THREE\r
+0x34   0x0034  #DIGIT FOUR\r
+0x35   0x0035  #DIGIT FIVE\r
+0x36   0x0036  #DIGIT SIX\r
+0x37   0x0037  #DIGIT SEVEN\r
+0x38   0x0038  #DIGIT EIGHT\r
+0x39   0x0039  #DIGIT NINE\r
+0x3A   0x003A  #COLON\r
+0x3B   0x003B  #SEMICOLON\r
+0x3C   0x003C  #LESS-THAN SIGN\r
+0x3D   0x003D  #EQUALS SIGN\r
+0x3E   0x003E  #GREATER-THAN SIGN\r
+0x3F   0x003F  #QUESTION MARK\r
+0x40   0x0040  #COMMERCIAL AT\r
+0x41   0x0041  #LATIN CAPITAL LETTER A\r
+0x42   0x0042  #LATIN CAPITAL LETTER B\r
+0x43   0x0043  #LATIN CAPITAL LETTER C\r
+0x44   0x0044  #LATIN CAPITAL LETTER D\r
+0x45   0x0045  #LATIN CAPITAL LETTER E\r
+0x46   0x0046  #LATIN CAPITAL LETTER F\r
+0x47   0x0047  #LATIN CAPITAL LETTER G\r
+0x48   0x0048  #LATIN CAPITAL LETTER H\r
+0x49   0x0049  #LATIN CAPITAL LETTER I\r
+0x4A   0x004A  #LATIN CAPITAL LETTER J\r
+0x4B   0x004B  #LATIN CAPITAL LETTER K\r
+0x4C   0x004C  #LATIN CAPITAL LETTER L\r
+0x4D   0x004D  #LATIN CAPITAL LETTER M\r
+0x4E   0x004E  #LATIN CAPITAL LETTER N\r
+0x4F   0x004F  #LATIN CAPITAL LETTER O\r
+0x50   0x0050  #LATIN CAPITAL LETTER P\r
+0x51   0x0051  #LATIN CAPITAL LETTER Q\r
+0x52   0x0052  #LATIN CAPITAL LETTER R\r
+0x53   0x0053  #LATIN CAPITAL LETTER S\r
+0x54   0x0054  #LATIN CAPITAL LETTER T\r
+0x55   0x0055  #LATIN CAPITAL LETTER U\r
+0x56   0x0056  #LATIN CAPITAL LETTER V\r
+0x57   0x0057  #LATIN CAPITAL LETTER W\r
+0x58   0x0058  #LATIN CAPITAL LETTER X\r
+0x59   0x0059  #LATIN CAPITAL LETTER Y\r
+0x5A   0x005A  #LATIN CAPITAL LETTER Z\r
+0x5B   0x005B  #LEFT SQUARE BRACKET\r
+0x5C   0x005C  #REVERSE SOLIDUS\r
+0x5D   0x005D  #RIGHT SQUARE BRACKET\r
+0x5E   0x005E  #CIRCUMFLEX ACCENT\r
+0x5F   0x005F  #LOW LINE\r
+0x60   0x0060  #GRAVE ACCENT\r
+0x61   0x0061  #LATIN SMALL LETTER A\r
+0x62   0x0062  #LATIN SMALL LETTER B\r
+0x63   0x0063  #LATIN SMALL LETTER C\r
+0x64   0x0064  #LATIN SMALL LETTER D\r
+0x65   0x0065  #LATIN SMALL LETTER E\r
+0x66   0x0066  #LATIN SMALL LETTER F\r
+0x67   0x0067  #LATIN SMALL LETTER G\r
+0x68   0x0068  #LATIN SMALL LETTER H\r
+0x69   0x0069  #LATIN SMALL LETTER I\r
+0x6A   0x006A  #LATIN SMALL LETTER J\r
+0x6B   0x006B  #LATIN SMALL LETTER K\r
+0x6C   0x006C  #LATIN SMALL LETTER L\r
+0x6D   0x006D  #LATIN SMALL LETTER M\r
+0x6E   0x006E  #LATIN SMALL LETTER N\r
+0x6F   0x006F  #LATIN SMALL LETTER O\r
+0x70   0x0070  #LATIN SMALL LETTER P\r
+0x71   0x0071  #LATIN SMALL LETTER Q\r
+0x72   0x0072  #LATIN SMALL LETTER R\r
+0x73   0x0073  #LATIN SMALL LETTER S\r
+0x74   0x0074  #LATIN SMALL LETTER T\r
+0x75   0x0075  #LATIN SMALL LETTER U\r
+0x76   0x0076  #LATIN SMALL LETTER V\r
+0x77   0x0077  #LATIN SMALL LETTER W\r
+0x78   0x0078  #LATIN SMALL LETTER X\r
+0x79   0x0079  #LATIN SMALL LETTER Y\r
+0x7A   0x007A  #LATIN SMALL LETTER Z\r
+0x7B   0x007B  #LEFT CURLY BRACKET\r
+0x7C   0x007C  #VERTICAL LINE\r
+0x7D   0x007D  #RIGHT CURLY BRACKET\r
+0x7E   0x007E  #TILDE\r
+0x7F   0x007F  #DELETE\r
+0x80   0x20AC  #EURO SIGN\r
+0x81           #UNDEFINED\r
+0x82   0x201A  #SINGLE LOW-9 QUOTATION MARK\r
+0x83   0x0192  #LATIN SMALL LETTER F WITH HOOK\r
+0x84   0x201E  #DOUBLE LOW-9 QUOTATION MARK\r
+0x85   0x2026  #HORIZONTAL ELLIPSIS\r
+0x86   0x2020  #DAGGER\r
+0x87   0x2021  #DOUBLE DAGGER\r
+0x88   0x02C6  #MODIFIER LETTER CIRCUMFLEX ACCENT\r
+0x89   0x2030  #PER MILLE SIGN\r
+0x8A           #UNDEFINED\r
+0x8B   0x2039  #SINGLE LEFT-POINTING ANGLE QUOTATION MARK\r
+0x8C           #UNDEFINED\r
+0x8D           #UNDEFINED\r
+0x8E           #UNDEFINED\r
+0x8F           #UNDEFINED\r
+0x90           #UNDEFINED\r
+0x91   0x2018  #LEFT SINGLE QUOTATION MARK\r
+0x92   0x2019  #RIGHT SINGLE QUOTATION MARK\r
+0x93   0x201C  #LEFT DOUBLE QUOTATION MARK\r
+0x94   0x201D  #RIGHT DOUBLE QUOTATION MARK\r
+0x95   0x2022  #BULLET\r
+0x96   0x2013  #EN DASH\r
+0x97   0x2014  #EM DASH\r
+0x98   0x02DC  #SMALL TILDE\r
+0x99   0x2122  #TRADE MARK SIGN\r
+0x9A           #UNDEFINED\r
+0x9B   0x203A  #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK\r
+0x9C           #UNDEFINED\r
+0x9D           #UNDEFINED\r
+0x9E           #UNDEFINED\r
+0x9F           #UNDEFINED\r
+0xA0   0x00A0  #NO-BREAK SPACE\r
+0xA1   0x00A1  #INVERTED EXCLAMATION MARK\r
+0xA2   0x00A2  #CENT SIGN\r
+0xA3   0x00A3  #POUND SIGN\r
+0xA4   0x20AA  #NEW SHEQEL SIGN\r
+0xA5   0x00A5  #YEN SIGN\r
+0xA6   0x00A6  #BROKEN BAR\r
+0xA7   0x00A7  #SECTION SIGN\r
+0xA8   0x00A8  #DIAERESIS\r
+0xA9   0x00A9  #COPYRIGHT SIGN\r
+0xAA   0x00D7  #MULTIPLICATION SIGN\r
+0xAB   0x00AB  #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xAC   0x00AC  #NOT SIGN\r
+0xAD   0x00AD  #SOFT HYPHEN\r
+0xAE   0x00AE  #REGISTERED SIGN\r
+0xAF   0x00AF  #MACRON\r
+0xB0   0x00B0  #DEGREE SIGN\r
+0xB1   0x00B1  #PLUS-MINUS SIGN\r
+0xB2   0x00B2  #SUPERSCRIPT TWO\r
+0xB3   0x00B3  #SUPERSCRIPT THREE\r
+0xB4   0x00B4  #ACUTE ACCENT\r
+0xB5   0x00B5  #MICRO SIGN\r
+0xB6   0x00B6  #PILCROW SIGN\r
+0xB7   0x00B7  #MIDDLE DOT\r
+0xB8   0x00B8  #CEDILLA\r
+0xB9   0x00B9  #SUPERSCRIPT ONE\r
+0xBA   0x00F7  #DIVISION SIGN\r
+0xBB   0x00BB  #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xBC   0x00BC  #VULGAR FRACTION ONE QUARTER\r
+0xBD   0x00BD  #VULGAR FRACTION ONE HALF\r
+0xBE   0x00BE  #VULGAR FRACTION THREE QUARTERS\r
+0xBF   0x00BF  #INVERTED QUESTION MARK\r
+0xC0   0x05B0  #HEBREW POINT SHEVA\r
+0xC1   0x05B1  #HEBREW POINT HATAF SEGOL\r
+0xC2   0x05B2  #HEBREW POINT HATAF PATAH\r
+0xC3   0x05B3  #HEBREW POINT HATAF QAMATS\r
+0xC4   0x05B4  #HEBREW POINT HIRIQ\r
+0xC5   0x05B5  #HEBREW POINT TSERE\r
+0xC6   0x05B6  #HEBREW POINT SEGOL\r
+0xC7   0x05B7  #HEBREW POINT PATAH\r
+0xC8   0x05B8  #HEBREW POINT QAMATS\r
+0xC9   0x05B9  #HEBREW POINT HOLAM\r
+0xCA           #UNDEFINED\r
+0xCB   0x05BB  #HEBREW POINT QUBUTS\r
+0xCC   0x05BC  #HEBREW POINT DAGESH OR MAPIQ\r
+0xCD   0x05BD  #HEBREW POINT METEG\r
+0xCE   0x05BE  #HEBREW PUNCTUATION MAQAF\r
+0xCF   0x05BF  #HEBREW POINT RAFE\r
+0xD0   0x05C0  #HEBREW PUNCTUATION PASEQ\r
+0xD1   0x05C1  #HEBREW POINT SHIN DOT\r
+0xD2   0x05C2  #HEBREW POINT SIN DOT\r
+0xD3   0x05C3  #HEBREW PUNCTUATION SOF PASUQ\r
+0xD4   0x05F0  #HEBREW LIGATURE YIDDISH DOUBLE VAV\r
+0xD5   0x05F1  #HEBREW LIGATURE YIDDISH VAV YOD\r
+0xD6   0x05F2  #HEBREW LIGATURE YIDDISH DOUBLE YOD\r
+0xD7   0x05F3  #HEBREW PUNCTUATION GERESH\r
+0xD8   0x05F4  #HEBREW PUNCTUATION GERSHAYIM\r
+0xD9           #UNDEFINED\r
+0xDA           #UNDEFINED\r
+0xDB           #UNDEFINED\r
+0xDC           #UNDEFINED\r
+0xDD           #UNDEFINED\r
+0xDE           #UNDEFINED\r
+0xDF           #UNDEFINED\r
+0xE0   0x05D0  #HEBREW LETTER ALEF\r
+0xE1   0x05D1  #HEBREW LETTER BET\r
+0xE2   0x05D2  #HEBREW LETTER GIMEL\r
+0xE3   0x05D3  #HEBREW LETTER DALET\r
+0xE4   0x05D4  #HEBREW LETTER HE\r
+0xE5   0x05D5  #HEBREW LETTER VAV\r
+0xE6   0x05D6  #HEBREW LETTER ZAYIN\r
+0xE7   0x05D7  #HEBREW LETTER HET\r
+0xE8   0x05D8  #HEBREW LETTER TET\r
+0xE9   0x05D9  #HEBREW LETTER YOD\r
+0xEA   0x05DA  #HEBREW LETTER FINAL KAF\r
+0xEB   0x05DB  #HEBREW LETTER KAF\r
+0xEC   0x05DC  #HEBREW LETTER LAMED\r
+0xED   0x05DD  #HEBREW LETTER FINAL MEM\r
+0xEE   0x05DE  #HEBREW LETTER MEM\r
+0xEF   0x05DF  #HEBREW LETTER FINAL NUN\r
+0xF0   0x05E0  #HEBREW LETTER NUN\r
+0xF1   0x05E1  #HEBREW LETTER SAMEKH\r
+0xF2   0x05E2  #HEBREW LETTER AYIN\r
+0xF3   0x05E3  #HEBREW LETTER FINAL PE\r
+0xF4   0x05E4  #HEBREW LETTER PE\r
+0xF5   0x05E5  #HEBREW LETTER FINAL TSADI\r
+0xF6   0x05E6  #HEBREW LETTER TSADI\r
+0xF7   0x05E7  #HEBREW LETTER QOF\r
+0xF8   0x05E8  #HEBREW LETTER RESH\r
+0xF9   0x05E9  #HEBREW LETTER SHIN\r
+0xFA   0x05EA  #HEBREW LETTER TAV\r
+0xFB           #UNDEFINED\r
+0xFC           #UNDEFINED\r
+0xFD   0x200E  #LEFT-TO-RIGHT MARK\r
+0xFE   0x200F  #RIGHT-TO-LEFT MARK\r
+0xFF           #UNDEFINED\r
diff --git a/data/windows-1256.txt b/data/windows-1256.txt
new file mode 100644 (file)
index 0000000..a5af15e
--- /dev/null
@@ -0,0 +1,274 @@
+#\r
+#    Name:     cp1256 to Unicode table\r
+#    Unicode version: 2.1\r
+#    Table version: 2.01\r
+#    Table format:  Format A\r
+#    Date:          01/5/99\r
+#\r
+#    Contact:       cpxlate@microsoft.com\r
+#\r
+#    General notes: none\r
+#\r
+#    Format: Three tab-separated columns\r
+#        Column #1 is the cp1256 code (in hex)\r
+#        Column #2 is the Unicode (in hex as 0xXXXX)\r
+#        Column #3 is the Unicode name (follows a comment sign, '#')\r
+#\r
+#    The entries are in cp1256 order\r
+#\r
+0x00   0x0000  #NULL\r
+0x01   0x0001  #START OF HEADING\r
+0x02   0x0002  #START OF TEXT\r
+0x03   0x0003  #END OF TEXT\r
+0x04   0x0004  #END OF TRANSMISSION\r
+0x05   0x0005  #ENQUIRY\r
+0x06   0x0006  #ACKNOWLEDGE\r
+0x07   0x0007  #BELL\r
+0x08   0x0008  #BACKSPACE\r
+0x09   0x0009  #HORIZONTAL TABULATION\r
+0x0A   0x000A  #LINE FEED\r
+0x0B   0x000B  #VERTICAL TABULATION\r
+0x0C   0x000C  #FORM FEED\r
+0x0D   0x000D  #CARRIAGE RETURN\r
+0x0E   0x000E  #SHIFT OUT\r
+0x0F   0x000F  #SHIFT IN\r
+0x10   0x0010  #DATA LINK ESCAPE\r
+0x11   0x0011  #DEVICE CONTROL ONE\r
+0x12   0x0012  #DEVICE CONTROL TWO\r
+0x13   0x0013  #DEVICE CONTROL THREE\r
+0x14   0x0014  #DEVICE CONTROL FOUR\r
+0x15   0x0015  #NEGATIVE ACKNOWLEDGE\r
+0x16   0x0016  #SYNCHRONOUS IDLE\r
+0x17   0x0017  #END OF TRANSMISSION BLOCK\r
+0x18   0x0018  #CANCEL\r
+0x19   0x0019  #END OF MEDIUM\r
+0x1A   0x001A  #SUBSTITUTE\r
+0x1B   0x001B  #ESCAPE\r
+0x1C   0x001C  #FILE SEPARATOR\r
+0x1D   0x001D  #GROUP SEPARATOR\r
+0x1E   0x001E  #RECORD SEPARATOR\r
+0x1F   0x001F  #UNIT SEPARATOR\r
+0x20   0x0020  #SPACE\r
+0x21   0x0021  #EXCLAMATION MARK\r
+0x22   0x0022  #QUOTATION MARK\r
+0x23   0x0023  #NUMBER SIGN\r
+0x24   0x0024  #DOLLAR SIGN\r
+0x25   0x0025  #PERCENT SIGN\r
+0x26   0x0026  #AMPERSAND\r
+0x27   0x0027  #APOSTROPHE\r
+0x28   0x0028  #LEFT PARENTHESIS\r
+0x29   0x0029  #RIGHT PARENTHESIS\r
+0x2A   0x002A  #ASTERISK\r
+0x2B   0x002B  #PLUS SIGN\r
+0x2C   0x002C  #COMMA\r
+0x2D   0x002D  #HYPHEN-MINUS\r
+0x2E   0x002E  #FULL STOP\r
+0x2F   0x002F  #SOLIDUS\r
+0x30   0x0030  #DIGIT ZERO\r
+0x31   0x0031  #DIGIT ONE\r
+0x32   0x0032  #DIGIT TWO\r
+0x33   0x0033  #DIGIT THREE\r
+0x34   0x0034  #DIGIT FOUR\r
+0x35   0x0035  #DIGIT FIVE\r
+0x36   0x0036  #DIGIT SIX\r
+0x37   0x0037  #DIGIT SEVEN\r
+0x38   0x0038  #DIGIT EIGHT\r
+0x39   0x0039  #DIGIT NINE\r
+0x3A   0x003A  #COLON\r
+0x3B   0x003B  #SEMICOLON\r
+0x3C   0x003C  #LESS-THAN SIGN\r
+0x3D   0x003D  #EQUALS SIGN\r
+0x3E   0x003E  #GREATER-THAN SIGN\r
+0x3F   0x003F  #QUESTION MARK\r
+0x40   0x0040  #COMMERCIAL AT\r
+0x41   0x0041  #LATIN CAPITAL LETTER A\r
+0x42   0x0042  #LATIN CAPITAL LETTER B\r
+0x43   0x0043  #LATIN CAPITAL LETTER C\r
+0x44   0x0044  #LATIN CAPITAL LETTER D\r
+0x45   0x0045  #LATIN CAPITAL LETTER E\r
+0x46   0x0046  #LATIN CAPITAL LETTER F\r
+0x47   0x0047  #LATIN CAPITAL LETTER G\r
+0x48   0x0048  #LATIN CAPITAL LETTER H\r
+0x49   0x0049  #LATIN CAPITAL LETTER I\r
+0x4A   0x004A  #LATIN CAPITAL LETTER J\r
+0x4B   0x004B  #LATIN CAPITAL LETTER K\r
+0x4C   0x004C  #LATIN CAPITAL LETTER L\r
+0x4D   0x004D  #LATIN CAPITAL LETTER M\r
+0x4E   0x004E  #LATIN CAPITAL LETTER N\r
+0x4F   0x004F  #LATIN CAPITAL LETTER O\r
+0x50   0x0050  #LATIN CAPITAL LETTER P\r
+0x51   0x0051  #LATIN CAPITAL LETTER Q\r
+0x52   0x0052  #LATIN CAPITAL LETTER R\r
+0x53   0x0053  #LATIN CAPITAL LETTER S\r
+0x54   0x0054  #LATIN CAPITAL LETTER T\r
+0x55   0x0055  #LATIN CAPITAL LETTER U\r
+0x56   0x0056  #LATIN CAPITAL LETTER V\r
+0x57   0x0057  #LATIN CAPITAL LETTER W\r
+0x58   0x0058  #LATIN CAPITAL LETTER X\r
+0x59   0x0059  #LATIN CAPITAL LETTER Y\r
+0x5A   0x005A  #LATIN CAPITAL LETTER Z\r
+0x5B   0x005B  #LEFT SQUARE BRACKET\r
+0x5C   0x005C  #REVERSE SOLIDUS\r
+0x5D   0x005D  #RIGHT SQUARE BRACKET\r
+0x5E   0x005E  #CIRCUMFLEX ACCENT\r
+0x5F   0x005F  #LOW LINE\r
+0x60   0x0060  #GRAVE ACCENT\r
+0x61   0x0061  #LATIN SMALL LETTER A\r
+0x62   0x0062  #LATIN SMALL LETTER B\r
+0x63   0x0063  #LATIN SMALL LETTER C\r
+0x64   0x0064  #LATIN SMALL LETTER D\r
+0x65   0x0065  #LATIN SMALL LETTER E\r
+0x66   0x0066  #LATIN SMALL LETTER F\r
+0x67   0x0067  #LATIN SMALL LETTER G\r
+0x68   0x0068  #LATIN SMALL LETTER H\r
+0x69   0x0069  #LATIN SMALL LETTER I\r
+0x6A   0x006A  #LATIN SMALL LETTER J\r
+0x6B   0x006B  #LATIN SMALL LETTER K\r
+0x6C   0x006C  #LATIN SMALL LETTER L\r
+0x6D   0x006D  #LATIN SMALL LETTER M\r
+0x6E   0x006E  #LATIN SMALL LETTER N\r
+0x6F   0x006F  #LATIN SMALL LETTER O\r
+0x70   0x0070  #LATIN SMALL LETTER P\r
+0x71   0x0071  #LATIN SMALL LETTER Q\r
+0x72   0x0072  #LATIN SMALL LETTER R\r
+0x73   0x0073  #LATIN SMALL LETTER S\r
+0x74   0x0074  #LATIN SMALL LETTER T\r
+0x75   0x0075  #LATIN SMALL LETTER U\r
+0x76   0x0076  #LATIN SMALL LETTER V\r
+0x77   0x0077  #LATIN SMALL LETTER W\r
+0x78   0x0078  #LATIN SMALL LETTER X\r
+0x79   0x0079  #LATIN SMALL LETTER Y\r
+0x7A   0x007A  #LATIN SMALL LETTER Z\r
+0x7B   0x007B  #LEFT CURLY BRACKET\r
+0x7C   0x007C  #VERTICAL LINE\r
+0x7D   0x007D  #RIGHT CURLY BRACKET\r
+0x7E   0x007E  #TILDE\r
+0x7F   0x007F  #DELETE\r
+0x80   0x20AC  #EURO SIGN\r
+0x81   0x067E  #ARABIC LETTER PEH\r
+0x82   0x201A  #SINGLE LOW-9 QUOTATION MARK\r
+0x83   0x0192  #LATIN SMALL LETTER F WITH HOOK\r
+0x84   0x201E  #DOUBLE LOW-9 QUOTATION MARK\r
+0x85   0x2026  #HORIZONTAL ELLIPSIS\r
+0x86   0x2020  #DAGGER\r
+0x87   0x2021  #DOUBLE DAGGER\r
+0x88   0x02C6  #MODIFIER LETTER CIRCUMFLEX ACCENT\r
+0x89   0x2030  #PER MILLE SIGN\r
+0x8A   0x0679  #ARABIC LETTER TTEH\r
+0x8B   0x2039  #SINGLE LEFT-POINTING ANGLE QUOTATION MARK\r
+0x8C   0x0152  #LATIN CAPITAL LIGATURE OE\r
+0x8D   0x0686  #ARABIC LETTER TCHEH\r
+0x8E   0x0698  #ARABIC LETTER JEH\r
+0x8F   0x0688  #ARABIC LETTER DDAL\r
+0x90   0x06AF  #ARABIC LETTER GAF\r
+0x91   0x2018  #LEFT SINGLE QUOTATION MARK\r
+0x92   0x2019  #RIGHT SINGLE QUOTATION MARK\r
+0x93   0x201C  #LEFT DOUBLE QUOTATION MARK\r
+0x94   0x201D  #RIGHT DOUBLE QUOTATION MARK\r
+0x95   0x2022  #BULLET\r
+0x96   0x2013  #EN DASH\r
+0x97   0x2014  #EM DASH\r
+0x98   0x06A9  #ARABIC LETTER KEHEH\r
+0x99   0x2122  #TRADE MARK SIGN\r
+0x9A   0x0691  #ARABIC LETTER RREH\r
+0x9B   0x203A  #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK\r
+0x9C   0x0153  #LATIN SMALL LIGATURE OE\r
+0x9D   0x200C  #ZERO WIDTH NON-JOINER\r
+0x9E   0x200D  #ZERO WIDTH JOINER\r
+0x9F   0x06BA  #ARABIC LETTER NOON GHUNNA\r
+0xA0   0x00A0  #NO-BREAK SPACE\r
+0xA1   0x060C  #ARABIC COMMA\r
+0xA2   0x00A2  #CENT SIGN\r
+0xA3   0x00A3  #POUND SIGN\r
+0xA4   0x00A4  #CURRENCY SIGN\r
+0xA5   0x00A5  #YEN SIGN\r
+0xA6   0x00A6  #BROKEN BAR\r
+0xA7   0x00A7  #SECTION SIGN\r
+0xA8   0x00A8  #DIAERESIS\r
+0xA9   0x00A9  #COPYRIGHT SIGN\r
+0xAA   0x06BE  #ARABIC LETTER HEH DOACHASHMEE\r
+0xAB   0x00AB  #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xAC   0x00AC  #NOT SIGN\r
+0xAD   0x00AD  #SOFT HYPHEN\r
+0xAE   0x00AE  #REGISTERED SIGN\r
+0xAF   0x00AF  #MACRON\r
+0xB0   0x00B0  #DEGREE SIGN\r
+0xB1   0x00B1  #PLUS-MINUS SIGN\r
+0xB2   0x00B2  #SUPERSCRIPT TWO\r
+0xB3   0x00B3  #SUPERSCRIPT THREE\r
+0xB4   0x00B4  #ACUTE ACCENT\r
+0xB5   0x00B5  #MICRO SIGN\r
+0xB6   0x00B6  #PILCROW SIGN\r
+0xB7   0x00B7  #MIDDLE DOT\r
+0xB8   0x00B8  #CEDILLA\r
+0xB9   0x00B9  #SUPERSCRIPT ONE\r
+0xBA   0x061B  #ARABIC SEMICOLON\r
+0xBB   0x00BB  #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xBC   0x00BC  #VULGAR FRACTION ONE QUARTER\r
+0xBD   0x00BD  #VULGAR FRACTION ONE HALF\r
+0xBE   0x00BE  #VULGAR FRACTION THREE QUARTERS\r
+0xBF   0x061F  #ARABIC QUESTION MARK\r
+0xC0   0x06C1  #ARABIC LETTER HEH GOAL\r
+0xC1   0x0621  #ARABIC LETTER HAMZA\r
+0xC2   0x0622  #ARABIC LETTER ALEF WITH MADDA ABOVE\r
+0xC3   0x0623  #ARABIC LETTER ALEF WITH HAMZA ABOVE\r
+0xC4   0x0624  #ARABIC LETTER WAW WITH HAMZA ABOVE\r
+0xC5   0x0625  #ARABIC LETTER ALEF WITH HAMZA BELOW\r
+0xC6   0x0626  #ARABIC LETTER YEH WITH HAMZA ABOVE\r
+0xC7   0x0627  #ARABIC LETTER ALEF\r
+0xC8   0x0628  #ARABIC LETTER BEH\r
+0xC9   0x0629  #ARABIC LETTER TEH MARBUTA\r
+0xCA   0x062A  #ARABIC LETTER TEH\r
+0xCB   0x062B  #ARABIC LETTER THEH\r
+0xCC   0x062C  #ARABIC LETTER JEEM\r
+0xCD   0x062D  #ARABIC LETTER HAH\r
+0xCE   0x062E  #ARABIC LETTER KHAH\r
+0xCF   0x062F  #ARABIC LETTER DAL\r
+0xD0   0x0630  #ARABIC LETTER THAL\r
+0xD1   0x0631  #ARABIC LETTER REH\r
+0xD2   0x0632  #ARABIC LETTER ZAIN\r
+0xD3   0x0633  #ARABIC LETTER SEEN\r
+0xD4   0x0634  #ARABIC LETTER SHEEN\r
+0xD5   0x0635  #ARABIC LETTER SAD\r
+0xD6   0x0636  #ARABIC LETTER DAD\r
+0xD7   0x00D7  #MULTIPLICATION SIGN\r
+0xD8   0x0637  #ARABIC LETTER TAH\r
+0xD9   0x0638  #ARABIC LETTER ZAH\r
+0xDA   0x0639  #ARABIC LETTER AIN\r
+0xDB   0x063A  #ARABIC LETTER GHAIN\r
+0xDC   0x0640  #ARABIC TATWEEL\r
+0xDD   0x0641  #ARABIC LETTER FEH\r
+0xDE   0x0642  #ARABIC LETTER QAF\r
+0xDF   0x0643  #ARABIC LETTER KAF\r
+0xE0   0x00E0  #LATIN SMALL LETTER A WITH GRAVE\r
+0xE1   0x0644  #ARABIC LETTER LAM\r
+0xE2   0x00E2  #LATIN SMALL LETTER A WITH CIRCUMFLEX\r
+0xE3   0x0645  #ARABIC LETTER MEEM\r
+0xE4   0x0646  #ARABIC LETTER NOON\r
+0xE5   0x0647  #ARABIC LETTER HEH\r
+0xE6   0x0648  #ARABIC LETTER WAW\r
+0xE7   0x00E7  #LATIN SMALL LETTER C WITH CEDILLA\r
+0xE8   0x00E8  #LATIN SMALL LETTER E WITH GRAVE\r
+0xE9   0x00E9  #LATIN SMALL LETTER E WITH ACUTE\r
+0xEA   0x00EA  #LATIN SMALL LETTER E WITH CIRCUMFLEX\r
+0xEB   0x00EB  #LATIN SMALL LETTER E WITH DIAERESIS\r
+0xEC   0x0649  #ARABIC LETTER ALEF MAKSURA\r
+0xED   0x064A  #ARABIC LETTER YEH\r
+0xEE   0x00EE  #LATIN SMALL LETTER I WITH CIRCUMFLEX\r
+0xEF   0x00EF  #LATIN SMALL LETTER I WITH DIAERESIS\r
+0xF0   0x064B  #ARABIC FATHATAN\r
+0xF1   0x064C  #ARABIC DAMMATAN\r
+0xF2   0x064D  #ARABIC KASRATAN\r
+0xF3   0x064E  #ARABIC FATHA\r
+0xF4   0x00F4  #LATIN SMALL LETTER O WITH CIRCUMFLEX\r
+0xF5   0x064F  #ARABIC DAMMA\r
+0xF6   0x0650  #ARABIC KASRA\r
+0xF7   0x00F7  #DIVISION SIGN\r
+0xF8   0x0651  #ARABIC SHADDA\r
+0xF9   0x00F9  #LATIN SMALL LETTER U WITH GRAVE\r
+0xFA   0x0652  #ARABIC SUKUN\r
+0xFB   0x00FB  #LATIN SMALL LETTER U WITH CIRCUMFLEX\r
+0xFC   0x00FC  #LATIN SMALL LETTER U WITH DIAERESIS\r
+0xFD   0x200E  #LEFT-TO-RIGHT MARK\r
+0xFE   0x200F  #RIGHT-TO-LEFT MARK\r
+0xFF   0x06D2  #ARABIC LETTER YEH BARREE\r
diff --git a/data/windows-1257.txt b/data/windows-1257.txt
new file mode 100644 (file)
index 0000000..1ba4dc2
--- /dev/null
@@ -0,0 +1,274 @@
+#\r
+#    Name:     cp1257 to Unicode table\r
+#    Unicode version: 2.0\r
+#    Table version: 2.01\r
+#    Table format:  Format A\r
+#    Date:          04/15/98\r
+#\r
+#    Contact:       cpxlate@microsoft.com\r
+#\r
+#    General notes: none\r
+#\r
+#    Format: Three tab-separated columns\r
+#        Column #1 is the cp1257 code (in hex)\r
+#        Column #2 is the Unicode (in hex as 0xXXXX)\r
+#        Column #3 is the Unicode name (follows a comment sign, '#')\r
+#\r
+#    The entries are in cp1257 order\r
+#\r
+0x00   0x0000  #NULL\r
+0x01   0x0001  #START OF HEADING\r
+0x02   0x0002  #START OF TEXT\r
+0x03   0x0003  #END OF TEXT\r
+0x04   0x0004  #END OF TRANSMISSION\r
+0x05   0x0005  #ENQUIRY\r
+0x06   0x0006  #ACKNOWLEDGE\r
+0x07   0x0007  #BELL\r
+0x08   0x0008  #BACKSPACE\r
+0x09   0x0009  #HORIZONTAL TABULATION\r
+0x0A   0x000A  #LINE FEED\r
+0x0B   0x000B  #VERTICAL TABULATION\r
+0x0C   0x000C  #FORM FEED\r
+0x0D   0x000D  #CARRIAGE RETURN\r
+0x0E   0x000E  #SHIFT OUT\r
+0x0F   0x000F  #SHIFT IN\r
+0x10   0x0010  #DATA LINK ESCAPE\r
+0x11   0x0011  #DEVICE CONTROL ONE\r
+0x12   0x0012  #DEVICE CONTROL TWO\r
+0x13   0x0013  #DEVICE CONTROL THREE\r
+0x14   0x0014  #DEVICE CONTROL FOUR\r
+0x15   0x0015  #NEGATIVE ACKNOWLEDGE\r
+0x16   0x0016  #SYNCHRONOUS IDLE\r
+0x17   0x0017  #END OF TRANSMISSION BLOCK\r
+0x18   0x0018  #CANCEL\r
+0x19   0x0019  #END OF MEDIUM\r
+0x1A   0x001A  #SUBSTITUTE\r
+0x1B   0x001B  #ESCAPE\r
+0x1C   0x001C  #FILE SEPARATOR\r
+0x1D   0x001D  #GROUP SEPARATOR\r
+0x1E   0x001E  #RECORD SEPARATOR\r
+0x1F   0x001F  #UNIT SEPARATOR\r
+0x20   0x0020  #SPACE\r
+0x21   0x0021  #EXCLAMATION MARK\r
+0x22   0x0022  #QUOTATION MARK\r
+0x23   0x0023  #NUMBER SIGN\r
+0x24   0x0024  #DOLLAR SIGN\r
+0x25   0x0025  #PERCENT SIGN\r
+0x26   0x0026  #AMPERSAND\r
+0x27   0x0027  #APOSTROPHE\r
+0x28   0x0028  #LEFT PARENTHESIS\r
+0x29   0x0029  #RIGHT PARENTHESIS\r
+0x2A   0x002A  #ASTERISK\r
+0x2B   0x002B  #PLUS SIGN\r
+0x2C   0x002C  #COMMA\r
+0x2D   0x002D  #HYPHEN-MINUS\r
+0x2E   0x002E  #FULL STOP\r
+0x2F   0x002F  #SOLIDUS\r
+0x30   0x0030  #DIGIT ZERO\r
+0x31   0x0031  #DIGIT ONE\r
+0x32   0x0032  #DIGIT TWO\r
+0x33   0x0033  #DIGIT THREE\r
+0x34   0x0034  #DIGIT FOUR\r
+0x35   0x0035  #DIGIT FIVE\r
+0x36   0x0036  #DIGIT SIX\r
+0x37   0x0037  #DIGIT SEVEN\r
+0x38   0x0038  #DIGIT EIGHT\r
+0x39   0x0039  #DIGIT NINE\r
+0x3A   0x003A  #COLON\r
+0x3B   0x003B  #SEMICOLON\r
+0x3C   0x003C  #LESS-THAN SIGN\r
+0x3D   0x003D  #EQUALS SIGN\r
+0x3E   0x003E  #GREATER-THAN SIGN\r
+0x3F   0x003F  #QUESTION MARK\r
+0x40   0x0040  #COMMERCIAL AT\r
+0x41   0x0041  #LATIN CAPITAL LETTER A\r
+0x42   0x0042  #LATIN CAPITAL LETTER B\r
+0x43   0x0043  #LATIN CAPITAL LETTER C\r
+0x44   0x0044  #LATIN CAPITAL LETTER D\r
+0x45   0x0045  #LATIN CAPITAL LETTER E\r
+0x46   0x0046  #LATIN CAPITAL LETTER F\r
+0x47   0x0047  #LATIN CAPITAL LETTER G\r
+0x48   0x0048  #LATIN CAPITAL LETTER H\r
+0x49   0x0049  #LATIN CAPITAL LETTER I\r
+0x4A   0x004A  #LATIN CAPITAL LETTER J\r
+0x4B   0x004B  #LATIN CAPITAL LETTER K\r
+0x4C   0x004C  #LATIN CAPITAL LETTER L\r
+0x4D   0x004D  #LATIN CAPITAL LETTER M\r
+0x4E   0x004E  #LATIN CAPITAL LETTER N\r
+0x4F   0x004F  #LATIN CAPITAL LETTER O\r
+0x50   0x0050  #LATIN CAPITAL LETTER P\r
+0x51   0x0051  #LATIN CAPITAL LETTER Q\r
+0x52   0x0052  #LATIN CAPITAL LETTER R\r
+0x53   0x0053  #LATIN CAPITAL LETTER S\r
+0x54   0x0054  #LATIN CAPITAL LETTER T\r
+0x55   0x0055  #LATIN CAPITAL LETTER U\r
+0x56   0x0056  #LATIN CAPITAL LETTER V\r
+0x57   0x0057  #LATIN CAPITAL LETTER W\r
+0x58   0x0058  #LATIN CAPITAL LETTER X\r
+0x59   0x0059  #LATIN CAPITAL LETTER Y\r
+0x5A   0x005A  #LATIN CAPITAL LETTER Z\r
+0x5B   0x005B  #LEFT SQUARE BRACKET\r
+0x5C   0x005C  #REVERSE SOLIDUS\r
+0x5D   0x005D  #RIGHT SQUARE BRACKET\r
+0x5E   0x005E  #CIRCUMFLEX ACCENT\r
+0x5F   0x005F  #LOW LINE\r
+0x60   0x0060  #GRAVE ACCENT\r
+0x61   0x0061  #LATIN SMALL LETTER A\r
+0x62   0x0062  #LATIN SMALL LETTER B\r
+0x63   0x0063  #LATIN SMALL LETTER C\r
+0x64   0x0064  #LATIN SMALL LETTER D\r
+0x65   0x0065  #LATIN SMALL LETTER E\r
+0x66   0x0066  #LATIN SMALL LETTER F\r
+0x67   0x0067  #LATIN SMALL LETTER G\r
+0x68   0x0068  #LATIN SMALL LETTER H\r
+0x69   0x0069  #LATIN SMALL LETTER I\r
+0x6A   0x006A  #LATIN SMALL LETTER J\r
+0x6B   0x006B  #LATIN SMALL LETTER K\r
+0x6C   0x006C  #LATIN SMALL LETTER L\r
+0x6D   0x006D  #LATIN SMALL LETTER M\r
+0x6E   0x006E  #LATIN SMALL LETTER N\r
+0x6F   0x006F  #LATIN SMALL LETTER O\r
+0x70   0x0070  #LATIN SMALL LETTER P\r
+0x71   0x0071  #LATIN SMALL LETTER Q\r
+0x72   0x0072  #LATIN SMALL LETTER R\r
+0x73   0x0073  #LATIN SMALL LETTER S\r
+0x74   0x0074  #LATIN SMALL LETTER T\r
+0x75   0x0075  #LATIN SMALL LETTER U\r
+0x76   0x0076  #LATIN SMALL LETTER V\r
+0x77   0x0077  #LATIN SMALL LETTER W\r
+0x78   0x0078  #LATIN SMALL LETTER X\r
+0x79   0x0079  #LATIN SMALL LETTER Y\r
+0x7A   0x007A  #LATIN SMALL LETTER Z\r
+0x7B   0x007B  #LEFT CURLY BRACKET\r
+0x7C   0x007C  #VERTICAL LINE\r
+0x7D   0x007D  #RIGHT CURLY BRACKET\r
+0x7E   0x007E  #TILDE\r
+0x7F   0x007F  #DELETE\r
+0x80   0x20AC  #EURO SIGN\r
+0x81           #UNDEFINED\r
+0x82   0x201A  #SINGLE LOW-9 QUOTATION MARK\r
+0x83           #UNDEFINED\r
+0x84   0x201E  #DOUBLE LOW-9 QUOTATION MARK\r
+0x85   0x2026  #HORIZONTAL ELLIPSIS\r
+0x86   0x2020  #DAGGER\r
+0x87   0x2021  #DOUBLE DAGGER\r
+0x88           #UNDEFINED\r
+0x89   0x2030  #PER MILLE SIGN\r
+0x8A           #UNDEFINED\r
+0x8B   0x2039  #SINGLE LEFT-POINTING ANGLE QUOTATION MARK\r
+0x8C           #UNDEFINED\r
+0x8D   0x00A8  #DIAERESIS\r
+0x8E   0x02C7  #CARON\r
+0x8F   0x00B8  #CEDILLA\r
+0x90           #UNDEFINED\r
+0x91   0x2018  #LEFT SINGLE QUOTATION MARK\r
+0x92   0x2019  #RIGHT SINGLE QUOTATION MARK\r
+0x93   0x201C  #LEFT DOUBLE QUOTATION MARK\r
+0x94   0x201D  #RIGHT DOUBLE QUOTATION MARK\r
+0x95   0x2022  #BULLET\r
+0x96   0x2013  #EN DASH\r
+0x97   0x2014  #EM DASH\r
+0x98           #UNDEFINED\r
+0x99   0x2122  #TRADE MARK SIGN\r
+0x9A           #UNDEFINED\r
+0x9B   0x203A  #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK\r
+0x9C           #UNDEFINED\r
+0x9D   0x00AF  #MACRON\r
+0x9E   0x02DB  #OGONEK\r
+0x9F           #UNDEFINED\r
+0xA0   0x00A0  #NO-BREAK SPACE\r
+0xA1           #UNDEFINED\r
+0xA2   0x00A2  #CENT SIGN\r
+0xA3   0x00A3  #POUND SIGN\r
+0xA4   0x00A4  #CURRENCY SIGN\r
+0xA5           #UNDEFINED\r
+0xA6   0x00A6  #BROKEN BAR\r
+0xA7   0x00A7  #SECTION SIGN\r
+0xA8   0x00D8  #LATIN CAPITAL LETTER O WITH STROKE\r
+0xA9   0x00A9  #COPYRIGHT SIGN\r
+0xAA   0x0156  #LATIN CAPITAL LETTER R WITH CEDILLA\r
+0xAB   0x00AB  #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xAC   0x00AC  #NOT SIGN\r
+0xAD   0x00AD  #SOFT HYPHEN\r
+0xAE   0x00AE  #REGISTERED SIGN\r
+0xAF   0x00C6  #LATIN CAPITAL LETTER AE\r
+0xB0   0x00B0  #DEGREE SIGN\r
+0xB1   0x00B1  #PLUS-MINUS SIGN\r
+0xB2   0x00B2  #SUPERSCRIPT TWO\r
+0xB3   0x00B3  #SUPERSCRIPT THREE\r
+0xB4   0x00B4  #ACUTE ACCENT\r
+0xB5   0x00B5  #MICRO SIGN\r
+0xB6   0x00B6  #PILCROW SIGN\r
+0xB7   0x00B7  #MIDDLE DOT\r
+0xB8   0x00F8  #LATIN SMALL LETTER O WITH STROKE\r
+0xB9   0x00B9  #SUPERSCRIPT ONE\r
+0xBA   0x0157  #LATIN SMALL LETTER R WITH CEDILLA\r
+0xBB   0x00BB  #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xBC   0x00BC  #VULGAR FRACTION ONE QUARTER\r
+0xBD   0x00BD  #VULGAR FRACTION ONE HALF\r
+0xBE   0x00BE  #VULGAR FRACTION THREE QUARTERS\r
+0xBF   0x00E6  #LATIN SMALL LETTER AE\r
+0xC0   0x0104  #LATIN CAPITAL LETTER A WITH OGONEK\r
+0xC1   0x012E  #LATIN CAPITAL LETTER I WITH OGONEK\r
+0xC2   0x0100  #LATIN CAPITAL LETTER A WITH MACRON\r
+0xC3   0x0106  #LATIN CAPITAL LETTER C WITH ACUTE\r
+0xC4   0x00C4  #LATIN CAPITAL LETTER A WITH DIAERESIS\r
+0xC5   0x00C5  #LATIN CAPITAL LETTER A WITH RING ABOVE\r
+0xC6   0x0118  #LATIN CAPITAL LETTER E WITH OGONEK\r
+0xC7   0x0112  #LATIN CAPITAL LETTER E WITH MACRON\r
+0xC8   0x010C  #LATIN CAPITAL LETTER C WITH CARON\r
+0xC9   0x00C9  #LATIN CAPITAL LETTER E WITH ACUTE\r
+0xCA   0x0179  #LATIN CAPITAL LETTER Z WITH ACUTE\r
+0xCB   0x0116  #LATIN CAPITAL LETTER E WITH DOT ABOVE\r
+0xCC   0x0122  #LATIN CAPITAL LETTER G WITH CEDILLA\r
+0xCD   0x0136  #LATIN CAPITAL LETTER K WITH CEDILLA\r
+0xCE   0x012A  #LATIN CAPITAL LETTER I WITH MACRON\r
+0xCF   0x013B  #LATIN CAPITAL LETTER L WITH CEDILLA\r
+0xD0   0x0160  #LATIN CAPITAL LETTER S WITH CARON\r
+0xD1   0x0143  #LATIN CAPITAL LETTER N WITH ACUTE\r
+0xD2   0x0145  #LATIN CAPITAL LETTER N WITH CEDILLA\r
+0xD3   0x00D3  #LATIN CAPITAL LETTER O WITH ACUTE\r
+0xD4   0x014C  #LATIN CAPITAL LETTER O WITH MACRON\r
+0xD5   0x00D5  #LATIN CAPITAL LETTER O WITH TILDE\r
+0xD6   0x00D6  #LATIN CAPITAL LETTER O WITH DIAERESIS\r
+0xD7   0x00D7  #MULTIPLICATION SIGN\r
+0xD8   0x0172  #LATIN CAPITAL LETTER U WITH OGONEK\r
+0xD9   0x0141  #LATIN CAPITAL LETTER L WITH STROKE\r
+0xDA   0x015A  #LATIN CAPITAL LETTER S WITH ACUTE\r
+0xDB   0x016A  #LATIN CAPITAL LETTER U WITH MACRON\r
+0xDC   0x00DC  #LATIN CAPITAL LETTER U WITH DIAERESIS\r
+0xDD   0x017B  #LATIN CAPITAL LETTER Z WITH DOT ABOVE\r
+0xDE   0x017D  #LATIN CAPITAL LETTER Z WITH CARON\r
+0xDF   0x00DF  #LATIN SMALL LETTER SHARP S\r
+0xE0   0x0105  #LATIN SMALL LETTER A WITH OGONEK\r
+0xE1   0x012F  #LATIN SMALL LETTER I WITH OGONEK\r
+0xE2   0x0101  #LATIN SMALL LETTER A WITH MACRON\r
+0xE3   0x0107  #LATIN SMALL LETTER C WITH ACUTE\r
+0xE4   0x00E4  #LATIN SMALL LETTER A WITH DIAERESIS\r
+0xE5   0x00E5  #LATIN SMALL LETTER A WITH RING ABOVE\r
+0xE6   0x0119  #LATIN SMALL LETTER E WITH OGONEK\r
+0xE7   0x0113  #LATIN SMALL LETTER E WITH MACRON\r
+0xE8   0x010D  #LATIN SMALL LETTER C WITH CARON\r
+0xE9   0x00E9  #LATIN SMALL LETTER E WITH ACUTE\r
+0xEA   0x017A  #LATIN SMALL LETTER Z WITH ACUTE\r
+0xEB   0x0117  #LATIN SMALL LETTER E WITH DOT ABOVE\r
+0xEC   0x0123  #LATIN SMALL LETTER G WITH CEDILLA\r
+0xED   0x0137  #LATIN SMALL LETTER K WITH CEDILLA\r
+0xEE   0x012B  #LATIN SMALL LETTER I WITH MACRON\r
+0xEF   0x013C  #LATIN SMALL LETTER L WITH CEDILLA\r
+0xF0   0x0161  #LATIN SMALL LETTER S WITH CARON\r
+0xF1   0x0144  #LATIN SMALL LETTER N WITH ACUTE\r
+0xF2   0x0146  #LATIN SMALL LETTER N WITH CEDILLA\r
+0xF3   0x00F3  #LATIN SMALL LETTER O WITH ACUTE\r
+0xF4   0x014D  #LATIN SMALL LETTER O WITH MACRON\r
+0xF5   0x00F5  #LATIN SMALL LETTER O WITH TILDE\r
+0xF6   0x00F6  #LATIN SMALL LETTER O WITH DIAERESIS\r
+0xF7   0x00F7  #DIVISION SIGN\r
+0xF8   0x0173  #LATIN SMALL LETTER U WITH OGONEK\r
+0xF9   0x0142  #LATIN SMALL LETTER L WITH STROKE\r
+0xFA   0x015B  #LATIN SMALL LETTER S WITH ACUTE\r
+0xFB   0x016B  #LATIN SMALL LETTER U WITH MACRON\r
+0xFC   0x00FC  #LATIN SMALL LETTER U WITH DIAERESIS\r
+0xFD   0x017C  #LATIN SMALL LETTER Z WITH DOT ABOVE\r
+0xFE   0x017E  #LATIN SMALL LETTER Z WITH CARON\r
+0xFF   0x02D9  #DOT ABOVE\r
diff --git a/data/windows-1258.txt b/data/windows-1258.txt
new file mode 100644 (file)
index 0000000..e9660ac
--- /dev/null
@@ -0,0 +1,274 @@
+#\r
+#    Name:     cp1258 to Unicode table\r
+#    Unicode version: 2.0\r
+#    Table version: 2.01\r
+#    Table format:  Format A\r
+#    Date:          04/15/98\r
+#\r
+#    Contact:       cpxlate@microsoft.com\r
+#\r
+#    General notes: none\r
+#\r
+#    Format: Three tab-separated columns\r
+#        Column #1 is the cp1258 code (in hex)\r
+#        Column #2 is the Unicode (in hex as 0xXXXX)\r
+#        Column #3 is the Unicode name (follows a comment sign, '#')\r
+#\r
+#    The entries are in cp1258 order\r
+#\r
+0x00   0x0000  #NULL\r
+0x01   0x0001  #START OF HEADING\r
+0x02   0x0002  #START OF TEXT\r
+0x03   0x0003  #END OF TEXT\r
+0x04   0x0004  #END OF TRANSMISSION\r
+0x05   0x0005  #ENQUIRY\r
+0x06   0x0006  #ACKNOWLEDGE\r
+0x07   0x0007  #BELL\r
+0x08   0x0008  #BACKSPACE\r
+0x09   0x0009  #HORIZONTAL TABULATION\r
+0x0A   0x000A  #LINE FEED\r
+0x0B   0x000B  #VERTICAL TABULATION\r
+0x0C   0x000C  #FORM FEED\r
+0x0D   0x000D  #CARRIAGE RETURN\r
+0x0E   0x000E  #SHIFT OUT\r
+0x0F   0x000F  #SHIFT IN\r
+0x10   0x0010  #DATA LINK ESCAPE\r
+0x11   0x0011  #DEVICE CONTROL ONE\r
+0x12   0x0012  #DEVICE CONTROL TWO\r
+0x13   0x0013  #DEVICE CONTROL THREE\r
+0x14   0x0014  #DEVICE CONTROL FOUR\r
+0x15   0x0015  #NEGATIVE ACKNOWLEDGE\r
+0x16   0x0016  #SYNCHRONOUS IDLE\r
+0x17   0x0017  #END OF TRANSMISSION BLOCK\r
+0x18   0x0018  #CANCEL\r
+0x19   0x0019  #END OF MEDIUM\r
+0x1A   0x001A  #SUBSTITUTE\r
+0x1B   0x001B  #ESCAPE\r
+0x1C   0x001C  #FILE SEPARATOR\r
+0x1D   0x001D  #GROUP SEPARATOR\r
+0x1E   0x001E  #RECORD SEPARATOR\r
+0x1F   0x001F  #UNIT SEPARATOR\r
+0x20   0x0020  #SPACE\r
+0x21   0x0021  #EXCLAMATION MARK\r
+0x22   0x0022  #QUOTATION MARK\r
+0x23   0x0023  #NUMBER SIGN\r
+0x24   0x0024  #DOLLAR SIGN\r
+0x25   0x0025  #PERCENT SIGN\r
+0x26   0x0026  #AMPERSAND\r
+0x27   0x0027  #APOSTROPHE\r
+0x28   0x0028  #LEFT PARENTHESIS\r
+0x29   0x0029  #RIGHT PARENTHESIS\r
+0x2A   0x002A  #ASTERISK\r
+0x2B   0x002B  #PLUS SIGN\r
+0x2C   0x002C  #COMMA\r
+0x2D   0x002D  #HYPHEN-MINUS\r
+0x2E   0x002E  #FULL STOP\r
+0x2F   0x002F  #SOLIDUS\r
+0x30   0x0030  #DIGIT ZERO\r
+0x31   0x0031  #DIGIT ONE\r
+0x32   0x0032  #DIGIT TWO\r
+0x33   0x0033  #DIGIT THREE\r
+0x34   0x0034  #DIGIT FOUR\r
+0x35   0x0035  #DIGIT FIVE\r
+0x36   0x0036  #DIGIT SIX\r
+0x37   0x0037  #DIGIT SEVEN\r
+0x38   0x0038  #DIGIT EIGHT\r
+0x39   0x0039  #DIGIT NINE\r
+0x3A   0x003A  #COLON\r
+0x3B   0x003B  #SEMICOLON\r
+0x3C   0x003C  #LESS-THAN SIGN\r
+0x3D   0x003D  #EQUALS SIGN\r
+0x3E   0x003E  #GREATER-THAN SIGN\r
+0x3F   0x003F  #QUESTION MARK\r
+0x40   0x0040  #COMMERCIAL AT\r
+0x41   0x0041  #LATIN CAPITAL LETTER A\r
+0x42   0x0042  #LATIN CAPITAL LETTER B\r
+0x43   0x0043  #LATIN CAPITAL LETTER C\r
+0x44   0x0044  #LATIN CAPITAL LETTER D\r
+0x45   0x0045  #LATIN CAPITAL LETTER E\r
+0x46   0x0046  #LATIN CAPITAL LETTER F\r
+0x47   0x0047  #LATIN CAPITAL LETTER G\r
+0x48   0x0048  #LATIN CAPITAL LETTER H\r
+0x49   0x0049  #LATIN CAPITAL LETTER I\r
+0x4A   0x004A  #LATIN CAPITAL LETTER J\r
+0x4B   0x004B  #LATIN CAPITAL LETTER K\r
+0x4C   0x004C  #LATIN CAPITAL LETTER L\r
+0x4D   0x004D  #LATIN CAPITAL LETTER M\r
+0x4E   0x004E  #LATIN CAPITAL LETTER N\r
+0x4F   0x004F  #LATIN CAPITAL LETTER O\r
+0x50   0x0050  #LATIN CAPITAL LETTER P\r
+0x51   0x0051  #LATIN CAPITAL LETTER Q\r
+0x52   0x0052  #LATIN CAPITAL LETTER R\r
+0x53   0x0053  #LATIN CAPITAL LETTER S\r
+0x54   0x0054  #LATIN CAPITAL LETTER T\r
+0x55   0x0055  #LATIN CAPITAL LETTER U\r
+0x56   0x0056  #LATIN CAPITAL LETTER V\r
+0x57   0x0057  #LATIN CAPITAL LETTER W\r
+0x58   0x0058  #LATIN CAPITAL LETTER X\r
+0x59   0x0059  #LATIN CAPITAL LETTER Y\r
+0x5A   0x005A  #LATIN CAPITAL LETTER Z\r
+0x5B   0x005B  #LEFT SQUARE BRACKET\r
+0x5C   0x005C  #REVERSE SOLIDUS\r
+0x5D   0x005D  #RIGHT SQUARE BRACKET\r
+0x5E   0x005E  #CIRCUMFLEX ACCENT\r
+0x5F   0x005F  #LOW LINE\r
+0x60   0x0060  #GRAVE ACCENT\r
+0x61   0x0061  #LATIN SMALL LETTER A\r
+0x62   0x0062  #LATIN SMALL LETTER B\r
+0x63   0x0063  #LATIN SMALL LETTER C\r
+0x64   0x0064  #LATIN SMALL LETTER D\r
+0x65   0x0065  #LATIN SMALL LETTER E\r
+0x66   0x0066  #LATIN SMALL LETTER F\r
+0x67   0x0067  #LATIN SMALL LETTER G\r
+0x68   0x0068  #LATIN SMALL LETTER H\r
+0x69   0x0069  #LATIN SMALL LETTER I\r
+0x6A   0x006A  #LATIN SMALL LETTER J\r
+0x6B   0x006B  #LATIN SMALL LETTER K\r
+0x6C   0x006C  #LATIN SMALL LETTER L\r
+0x6D   0x006D  #LATIN SMALL LETTER M\r
+0x6E   0x006E  #LATIN SMALL LETTER N\r
+0x6F   0x006F  #LATIN SMALL LETTER O\r
+0x70   0x0070  #LATIN SMALL LETTER P\r
+0x71   0x0071  #LATIN SMALL LETTER Q\r
+0x72   0x0072  #LATIN SMALL LETTER R\r
+0x73   0x0073  #LATIN SMALL LETTER S\r
+0x74   0x0074  #LATIN SMALL LETTER T\r
+0x75   0x0075  #LATIN SMALL LETTER U\r
+0x76   0x0076  #LATIN SMALL LETTER V\r
+0x77   0x0077  #LATIN SMALL LETTER W\r
+0x78   0x0078  #LATIN SMALL LETTER X\r
+0x79   0x0079  #LATIN SMALL LETTER Y\r
+0x7A   0x007A  #LATIN SMALL LETTER Z\r
+0x7B   0x007B  #LEFT CURLY BRACKET\r
+0x7C   0x007C  #VERTICAL LINE\r
+0x7D   0x007D  #RIGHT CURLY BRACKET\r
+0x7E   0x007E  #TILDE\r
+0x7F   0x007F  #DELETE\r
+0x80   0x20AC  #EURO SIGN\r
+0x81           #UNDEFINED\r
+0x82   0x201A  #SINGLE LOW-9 QUOTATION MARK\r
+0x83   0x0192  #LATIN SMALL LETTER F WITH HOOK\r
+0x84   0x201E  #DOUBLE LOW-9 QUOTATION MARK\r
+0x85   0x2026  #HORIZONTAL ELLIPSIS\r
+0x86   0x2020  #DAGGER\r
+0x87   0x2021  #DOUBLE DAGGER\r
+0x88   0x02C6  #MODIFIER LETTER CIRCUMFLEX ACCENT\r
+0x89   0x2030  #PER MILLE SIGN\r
+0x8A           #UNDEFINED\r
+0x8B   0x2039  #SINGLE LEFT-POINTING ANGLE QUOTATION MARK\r
+0x8C   0x0152  #LATIN CAPITAL LIGATURE OE\r
+0x8D           #UNDEFINED\r
+0x8E           #UNDEFINED\r
+0x8F           #UNDEFINED\r
+0x90           #UNDEFINED\r
+0x91   0x2018  #LEFT SINGLE QUOTATION MARK\r
+0x92   0x2019  #RIGHT SINGLE QUOTATION MARK\r
+0x93   0x201C  #LEFT DOUBLE QUOTATION MARK\r
+0x94   0x201D  #RIGHT DOUBLE QUOTATION MARK\r
+0x95   0x2022  #BULLET\r
+0x96   0x2013  #EN DASH\r
+0x97   0x2014  #EM DASH\r
+0x98   0x02DC  #SMALL TILDE\r
+0x99   0x2122  #TRADE MARK SIGN\r
+0x9A           #UNDEFINED\r
+0x9B   0x203A  #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK\r
+0x9C   0x0153  #LATIN SMALL LIGATURE OE\r
+0x9D           #UNDEFINED\r
+0x9E           #UNDEFINED\r
+0x9F   0x0178  #LATIN CAPITAL LETTER Y WITH DIAERESIS\r
+0xA0   0x00A0  #NO-BREAK SPACE\r
+0xA1   0x00A1  #INVERTED EXCLAMATION MARK\r
+0xA2   0x00A2  #CENT SIGN\r
+0xA3   0x00A3  #POUND SIGN\r
+0xA4   0x00A4  #CURRENCY SIGN\r
+0xA5   0x00A5  #YEN SIGN\r
+0xA6   0x00A6  #BROKEN BAR\r
+0xA7   0x00A7  #SECTION SIGN\r
+0xA8   0x00A8  #DIAERESIS\r
+0xA9   0x00A9  #COPYRIGHT SIGN\r
+0xAA   0x00AA  #FEMININE ORDINAL INDICATOR\r
+0xAB   0x00AB  #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xAC   0x00AC  #NOT SIGN\r
+0xAD   0x00AD  #SOFT HYPHEN\r
+0xAE   0x00AE  #REGISTERED SIGN\r
+0xAF   0x00AF  #MACRON\r
+0xB0   0x00B0  #DEGREE SIGN\r
+0xB1   0x00B1  #PLUS-MINUS SIGN\r
+0xB2   0x00B2  #SUPERSCRIPT TWO\r
+0xB3   0x00B3  #SUPERSCRIPT THREE\r
+0xB4   0x00B4  #ACUTE ACCENT\r
+0xB5   0x00B5  #MICRO SIGN\r
+0xB6   0x00B6  #PILCROW SIGN\r
+0xB7   0x00B7  #MIDDLE DOT\r
+0xB8   0x00B8  #CEDILLA\r
+0xB9   0x00B9  #SUPERSCRIPT ONE\r
+0xBA   0x00BA  #MASCULINE ORDINAL INDICATOR\r
+0xBB   0x00BB  #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0xBC   0x00BC  #VULGAR FRACTION ONE QUARTER\r
+0xBD   0x00BD  #VULGAR FRACTION ONE HALF\r
+0xBE   0x00BE  #VULGAR FRACTION THREE QUARTERS\r
+0xBF   0x00BF  #INVERTED QUESTION MARK\r
+0xC0   0x00C0  #LATIN CAPITAL LETTER A WITH GRAVE\r
+0xC1   0x00C1  #LATIN CAPITAL LETTER A WITH ACUTE\r
+0xC2   0x00C2  #LATIN CAPITAL LETTER A WITH CIRCUMFLEX\r
+0xC3   0x0102  #LATIN CAPITAL LETTER A WITH BREVE\r
+0xC4   0x00C4  #LATIN CAPITAL LETTER A WITH DIAERESIS\r
+0xC5   0x00C5  #LATIN CAPITAL LETTER A WITH RING ABOVE\r
+0xC6   0x00C6  #LATIN CAPITAL LETTER AE\r
+0xC7   0x00C7  #LATIN CAPITAL LETTER C WITH CEDILLA\r
+0xC8   0x00C8  #LATIN CAPITAL LETTER E WITH GRAVE\r
+0xC9   0x00C9  #LATIN CAPITAL LETTER E WITH ACUTE\r
+0xCA   0x00CA  #LATIN CAPITAL LETTER E WITH CIRCUMFLEX\r
+0xCB   0x00CB  #LATIN CAPITAL LETTER E WITH DIAERESIS\r
+0xCC   0x0300  #COMBINING GRAVE ACCENT\r
+0xCD   0x00CD  #LATIN CAPITAL LETTER I WITH ACUTE\r
+0xCE   0x00CE  #LATIN CAPITAL LETTER I WITH CIRCUMFLEX\r
+0xCF   0x00CF  #LATIN CAPITAL LETTER I WITH DIAERESIS\r
+0xD0   0x0110  #LATIN CAPITAL LETTER D WITH STROKE\r
+0xD1   0x00D1  #LATIN CAPITAL LETTER N WITH TILDE\r
+0xD2   0x0309  #COMBINING HOOK ABOVE\r
+0xD3   0x00D3  #LATIN CAPITAL LETTER O WITH ACUTE\r
+0xD4   0x00D4  #LATIN CAPITAL LETTER O WITH CIRCUMFLEX\r
+0xD5   0x01A0  #LATIN CAPITAL LETTER O WITH HORN\r
+0xD6   0x00D6  #LATIN CAPITAL LETTER O WITH DIAERESIS\r
+0xD7   0x00D7  #MULTIPLICATION SIGN\r
+0xD8   0x00D8  #LATIN CAPITAL LETTER O WITH STROKE\r
+0xD9   0x00D9  #LATIN CAPITAL LETTER U WITH GRAVE\r
+0xDA   0x00DA  #LATIN CAPITAL LETTER U WITH ACUTE\r
+0xDB   0x00DB  #LATIN CAPITAL LETTER U WITH CIRCUMFLEX\r
+0xDC   0x00DC  #LATIN CAPITAL LETTER U WITH DIAERESIS\r
+0xDD   0x01AF  #LATIN CAPITAL LETTER U WITH HORN\r
+0xDE   0x0303  #COMBINING TILDE\r
+0xDF   0x00DF  #LATIN SMALL LETTER SHARP S\r
+0xE0   0x00E0  #LATIN SMALL LETTER A WITH GRAVE\r
+0xE1   0x00E1  #LATIN SMALL LETTER A WITH ACUTE\r
+0xE2   0x00E2  #LATIN SMALL LETTER A WITH CIRCUMFLEX\r
+0xE3   0x0103  #LATIN SMALL LETTER A WITH BREVE\r
+0xE4   0x00E4  #LATIN SMALL LETTER A WITH DIAERESIS\r
+0xE5   0x00E5  #LATIN SMALL LETTER A WITH RING ABOVE\r
+0xE6   0x00E6  #LATIN SMALL LETTER AE\r
+0xE7   0x00E7  #LATIN SMALL LETTER C WITH CEDILLA\r
+0xE8   0x00E8  #LATIN SMALL LETTER E WITH GRAVE\r
+0xE9   0x00E9  #LATIN SMALL LETTER E WITH ACUTE\r
+0xEA   0x00EA  #LATIN SMALL LETTER E WITH CIRCUMFLEX\r
+0xEB   0x00EB  #LATIN SMALL LETTER E WITH DIAERESIS\r
+0xEC   0x0301  #COMBINING ACUTE ACCENT\r
+0xED   0x00ED  #LATIN SMALL LETTER I WITH ACUTE\r
+0xEE   0x00EE  #LATIN SMALL LETTER I WITH CIRCUMFLEX\r
+0xEF   0x00EF  #LATIN SMALL LETTER I WITH DIAERESIS\r
+0xF0   0x0111  #LATIN SMALL LETTER D WITH STROKE\r
+0xF1   0x00F1  #LATIN SMALL LETTER N WITH TILDE\r
+0xF2   0x0323  #COMBINING DOT BELOW\r
+0xF3   0x00F3  #LATIN SMALL LETTER O WITH ACUTE\r
+0xF4   0x00F4  #LATIN SMALL LETTER O WITH CIRCUMFLEX\r
+0xF5   0x01A1  #LATIN SMALL LETTER O WITH HORN\r
+0xF6   0x00F6  #LATIN SMALL LETTER O WITH DIAERESIS\r
+0xF7   0x00F7  #DIVISION SIGN\r
+0xF8   0x00F8  #LATIN SMALL LETTER O WITH STROKE\r
+0xF9   0x00F9  #LATIN SMALL LETTER U WITH GRAVE\r
+0xFA   0x00FA  #LATIN SMALL LETTER U WITH ACUTE\r
+0xFB   0x00FB  #LATIN SMALL LETTER U WITH CIRCUMFLEX\r
+0xFC   0x00FC  #LATIN SMALL LETTER U WITH DIAERESIS\r
+0xFD   0x01B0  #LATIN SMALL LETTER U WITH HORN\r
+0xFE   0x20AB  #DONG SIGN\r
+0xFF   0x00FF  #LATIN SMALL LETTER Y WITH DIAERESIS\r
diff --git a/data/windows-874.txt b/data/windows-874.txt
new file mode 100644 (file)
index 0000000..ce1f578
--- /dev/null
@@ -0,0 +1,274 @@
+#\r
+#    Name:     cp874 to Unicode table\r
+#    Unicode version: 2.0\r
+#    Table version: 2.01\r
+#    Table format:  Format A\r
+#    Date:          02/28/98\r
+#\r
+#    Contact:       cpxlate@microsoft.com\r
+#\r
+#    General notes: none\r
+#\r
+#    Format: Three tab-separated columns\r
+#        Column #1 is the cp874 code (in hex)\r
+#        Column #2 is the Unicode (in hex as 0xXXXX)\r
+#        Column #3 is the Unicode name (follows a comment sign, '#')\r
+#\r
+#    The entries are in cp874 order\r
+#\r
+0x00   0x0000  #NULL\r
+0x01   0x0001  #START OF HEADING\r
+0x02   0x0002  #START OF TEXT\r
+0x03   0x0003  #END OF TEXT\r
+0x04   0x0004  #END OF TRANSMISSION\r
+0x05   0x0005  #ENQUIRY\r
+0x06   0x0006  #ACKNOWLEDGE\r
+0x07   0x0007  #BELL\r
+0x08   0x0008  #BACKSPACE\r
+0x09   0x0009  #HORIZONTAL TABULATION\r
+0x0A   0x000A  #LINE FEED\r
+0x0B   0x000B  #VERTICAL TABULATION\r
+0x0C   0x000C  #FORM FEED\r
+0x0D   0x000D  #CARRIAGE RETURN\r
+0x0E   0x000E  #SHIFT OUT\r
+0x0F   0x000F  #SHIFT IN\r
+0x10   0x0010  #DATA LINK ESCAPE\r
+0x11   0x0011  #DEVICE CONTROL ONE\r
+0x12   0x0012  #DEVICE CONTROL TWO\r
+0x13   0x0013  #DEVICE CONTROL THREE\r
+0x14   0x0014  #DEVICE CONTROL FOUR\r
+0x15   0x0015  #NEGATIVE ACKNOWLEDGE\r
+0x16   0x0016  #SYNCHRONOUS IDLE\r
+0x17   0x0017  #END OF TRANSMISSION BLOCK\r
+0x18   0x0018  #CANCEL\r
+0x19   0x0019  #END OF MEDIUM\r
+0x1A   0x001A  #SUBSTITUTE\r
+0x1B   0x001B  #ESCAPE\r
+0x1C   0x001C  #FILE SEPARATOR\r
+0x1D   0x001D  #GROUP SEPARATOR\r
+0x1E   0x001E  #RECORD SEPARATOR\r
+0x1F   0x001F  #UNIT SEPARATOR\r
+0x20   0x0020  #SPACE\r
+0x21   0x0021  #EXCLAMATION MARK\r
+0x22   0x0022  #QUOTATION MARK\r
+0x23   0x0023  #NUMBER SIGN\r
+0x24   0x0024  #DOLLAR SIGN\r
+0x25   0x0025  #PERCENT SIGN\r
+0x26   0x0026  #AMPERSAND\r
+0x27   0x0027  #APOSTROPHE\r
+0x28   0x0028  #LEFT PARENTHESIS\r
+0x29   0x0029  #RIGHT PARENTHESIS\r
+0x2A   0x002A  #ASTERISK\r
+0x2B   0x002B  #PLUS SIGN\r
+0x2C   0x002C  #COMMA\r
+0x2D   0x002D  #HYPHEN-MINUS\r
+0x2E   0x002E  #FULL STOP\r
+0x2F   0x002F  #SOLIDUS\r
+0x30   0x0030  #DIGIT ZERO\r
+0x31   0x0031  #DIGIT ONE\r
+0x32   0x0032  #DIGIT TWO\r
+0x33   0x0033  #DIGIT THREE\r
+0x34   0x0034  #DIGIT FOUR\r
+0x35   0x0035  #DIGIT FIVE\r
+0x36   0x0036  #DIGIT SIX\r
+0x37   0x0037  #DIGIT SEVEN\r
+0x38   0x0038  #DIGIT EIGHT\r
+0x39   0x0039  #DIGIT NINE\r
+0x3A   0x003A  #COLON\r
+0x3B   0x003B  #SEMICOLON\r
+0x3C   0x003C  #LESS-THAN SIGN\r
+0x3D   0x003D  #EQUALS SIGN\r
+0x3E   0x003E  #GREATER-THAN SIGN\r
+0x3F   0x003F  #QUESTION MARK\r
+0x40   0x0040  #COMMERCIAL AT\r
+0x41   0x0041  #LATIN CAPITAL LETTER A\r
+0x42   0x0042  #LATIN CAPITAL LETTER B\r
+0x43   0x0043  #LATIN CAPITAL LETTER C\r
+0x44   0x0044  #LATIN CAPITAL LETTER D\r
+0x45   0x0045  #LATIN CAPITAL LETTER E\r
+0x46   0x0046  #LATIN CAPITAL LETTER F\r
+0x47   0x0047  #LATIN CAPITAL LETTER G\r
+0x48   0x0048  #LATIN CAPITAL LETTER H\r
+0x49   0x0049  #LATIN CAPITAL LETTER I\r
+0x4A   0x004A  #LATIN CAPITAL LETTER J\r
+0x4B   0x004B  #LATIN CAPITAL LETTER K\r
+0x4C   0x004C  #LATIN CAPITAL LETTER L\r
+0x4D   0x004D  #LATIN CAPITAL LETTER M\r
+0x4E   0x004E  #LATIN CAPITAL LETTER N\r
+0x4F   0x004F  #LATIN CAPITAL LETTER O\r
+0x50   0x0050  #LATIN CAPITAL LETTER P\r
+0x51   0x0051  #LATIN CAPITAL LETTER Q\r
+0x52   0x0052  #LATIN CAPITAL LETTER R\r
+0x53   0x0053  #LATIN CAPITAL LETTER S\r
+0x54   0x0054  #LATIN CAPITAL LETTER T\r
+0x55   0x0055  #LATIN CAPITAL LETTER U\r
+0x56   0x0056  #LATIN CAPITAL LETTER V\r
+0x57   0x0057  #LATIN CAPITAL LETTER W\r
+0x58   0x0058  #LATIN CAPITAL LETTER X\r
+0x59   0x0059  #LATIN CAPITAL LETTER Y\r
+0x5A   0x005A  #LATIN CAPITAL LETTER Z\r
+0x5B   0x005B  #LEFT SQUARE BRACKET\r
+0x5C   0x005C  #REVERSE SOLIDUS\r
+0x5D   0x005D  #RIGHT SQUARE BRACKET\r
+0x5E   0x005E  #CIRCUMFLEX ACCENT\r
+0x5F   0x005F  #LOW LINE\r
+0x60   0x0060  #GRAVE ACCENT\r
+0x61   0x0061  #LATIN SMALL LETTER A\r
+0x62   0x0062  #LATIN SMALL LETTER B\r
+0x63   0x0063  #LATIN SMALL LETTER C\r
+0x64   0x0064  #LATIN SMALL LETTER D\r
+0x65   0x0065  #LATIN SMALL LETTER E\r
+0x66   0x0066  #LATIN SMALL LETTER F\r
+0x67   0x0067  #LATIN SMALL LETTER G\r
+0x68   0x0068  #LATIN SMALL LETTER H\r
+0x69   0x0069  #LATIN SMALL LETTER I\r
+0x6A   0x006A  #LATIN SMALL LETTER J\r
+0x6B   0x006B  #LATIN SMALL LETTER K\r
+0x6C   0x006C  #LATIN SMALL LETTER L\r
+0x6D   0x006D  #LATIN SMALL LETTER M\r
+0x6E   0x006E  #LATIN SMALL LETTER N\r
+0x6F   0x006F  #LATIN SMALL LETTER O\r
+0x70   0x0070  #LATIN SMALL LETTER P\r
+0x71   0x0071  #LATIN SMALL LETTER Q\r
+0x72   0x0072  #LATIN SMALL LETTER R\r
+0x73   0x0073  #LATIN SMALL LETTER S\r
+0x74   0x0074  #LATIN SMALL LETTER T\r
+0x75   0x0075  #LATIN SMALL LETTER U\r
+0x76   0x0076  #LATIN SMALL LETTER V\r
+0x77   0x0077  #LATIN SMALL LETTER W\r
+0x78   0x0078  #LATIN SMALL LETTER X\r
+0x79   0x0079  #LATIN SMALL LETTER Y\r
+0x7A   0x007A  #LATIN SMALL LETTER Z\r
+0x7B   0x007B  #LEFT CURLY BRACKET\r
+0x7C   0x007C  #VERTICAL LINE\r
+0x7D   0x007D  #RIGHT CURLY BRACKET\r
+0x7E   0x007E  #TILDE\r
+0x7F   0x007F  #DELETE\r
+0x80   0x20AC  #EURO SIGN\r
+0x81           #UNDEFINED\r
+0x82           #UNDEFINED\r
+0x83           #UNDEFINED\r
+0x84           #UNDEFINED\r
+0x85   0x2026  #HORIZONTAL ELLIPSIS\r
+0x86           #UNDEFINED\r
+0x87           #UNDEFINED\r
+0x88           #UNDEFINED\r
+0x89           #UNDEFINED\r
+0x8A           #UNDEFINED\r
+0x8B           #UNDEFINED\r
+0x8C           #UNDEFINED\r
+0x8D           #UNDEFINED\r
+0x8E           #UNDEFINED\r
+0x8F           #UNDEFINED\r
+0x90           #UNDEFINED\r
+0x91   0x2018  #LEFT SINGLE QUOTATION MARK\r
+0x92   0x2019  #RIGHT SINGLE QUOTATION MARK\r
+0x93   0x201C  #LEFT DOUBLE QUOTATION MARK\r
+0x94   0x201D  #RIGHT DOUBLE QUOTATION MARK\r
+0x95   0x2022  #BULLET\r
+0x96   0x2013  #EN DASH\r
+0x97   0x2014  #EM DASH\r
+0x98           #UNDEFINED\r
+0x99           #UNDEFINED\r
+0x9A           #UNDEFINED\r
+0x9B           #UNDEFINED\r
+0x9C           #UNDEFINED\r
+0x9D           #UNDEFINED\r
+0x9E           #UNDEFINED\r
+0x9F           #UNDEFINED\r
+0xA0   0x00A0  #NO-BREAK SPACE\r
+0xA1   0x0E01  #THAI CHARACTER KO KAI\r
+0xA2   0x0E02  #THAI CHARACTER KHO KHAI\r
+0xA3   0x0E03  #THAI CHARACTER KHO KHUAT\r
+0xA4   0x0E04  #THAI CHARACTER KHO KHWAI\r
+0xA5   0x0E05  #THAI CHARACTER KHO KHON\r
+0xA6   0x0E06  #THAI CHARACTER KHO RAKHANG\r
+0xA7   0x0E07  #THAI CHARACTER NGO NGU\r
+0xA8   0x0E08  #THAI CHARACTER CHO CHAN\r
+0xA9   0x0E09  #THAI CHARACTER CHO CHING\r
+0xAA   0x0E0A  #THAI CHARACTER CHO CHANG\r
+0xAB   0x0E0B  #THAI CHARACTER SO SO\r
+0xAC   0x0E0C  #THAI CHARACTER CHO CHOE\r
+0xAD   0x0E0D  #THAI CHARACTER YO YING\r
+0xAE   0x0E0E  #THAI CHARACTER DO CHADA\r
+0xAF   0x0E0F  #THAI CHARACTER TO PATAK\r
+0xB0   0x0E10  #THAI CHARACTER THO THAN\r
+0xB1   0x0E11  #THAI CHARACTER THO NANGMONTHO\r
+0xB2   0x0E12  #THAI CHARACTER THO PHUTHAO\r
+0xB3   0x0E13  #THAI CHARACTER NO NEN\r
+0xB4   0x0E14  #THAI CHARACTER DO DEK\r
+0xB5   0x0E15  #THAI CHARACTER TO TAO\r
+0xB6   0x0E16  #THAI CHARACTER THO THUNG\r
+0xB7   0x0E17  #THAI CHARACTER THO THAHAN\r
+0xB8   0x0E18  #THAI CHARACTER THO THONG\r
+0xB9   0x0E19  #THAI CHARACTER NO NU\r
+0xBA   0x0E1A  #THAI CHARACTER BO BAIMAI\r
+0xBB   0x0E1B  #THAI CHARACTER PO PLA\r
+0xBC   0x0E1C  #THAI CHARACTER PHO PHUNG\r
+0xBD   0x0E1D  #THAI CHARACTER FO FA\r
+0xBE   0x0E1E  #THAI CHARACTER PHO PHAN\r
+0xBF   0x0E1F  #THAI CHARACTER FO FAN\r
+0xC0   0x0E20  #THAI CHARACTER PHO SAMPHAO\r
+0xC1   0x0E21  #THAI CHARACTER MO MA\r
+0xC2   0x0E22  #THAI CHARACTER YO YAK\r
+0xC3   0x0E23  #THAI CHARACTER RO RUA\r
+0xC4   0x0E24  #THAI CHARACTER RU\r
+0xC5   0x0E25  #THAI CHARACTER LO LING\r
+0xC6   0x0E26  #THAI CHARACTER LU\r
+0xC7   0x0E27  #THAI CHARACTER WO WAEN\r
+0xC8   0x0E28  #THAI CHARACTER SO SALA\r
+0xC9   0x0E29  #THAI CHARACTER SO RUSI\r
+0xCA   0x0E2A  #THAI CHARACTER SO SUA\r
+0xCB   0x0E2B  #THAI CHARACTER HO HIP\r
+0xCC   0x0E2C  #THAI CHARACTER LO CHULA\r
+0xCD   0x0E2D  #THAI CHARACTER O ANG\r
+0xCE   0x0E2E  #THAI CHARACTER HO NOKHUK\r
+0xCF   0x0E2F  #THAI CHARACTER PAIYANNOI\r
+0xD0   0x0E30  #THAI CHARACTER SARA A\r
+0xD1   0x0E31  #THAI CHARACTER MAI HAN-AKAT\r
+0xD2   0x0E32  #THAI CHARACTER SARA AA\r
+0xD3   0x0E33  #THAI CHARACTER SARA AM\r
+0xD4   0x0E34  #THAI CHARACTER SARA I\r
+0xD5   0x0E35  #THAI CHARACTER SARA II\r
+0xD6   0x0E36  #THAI CHARACTER SARA UE\r
+0xD7   0x0E37  #THAI CHARACTER SARA UEE\r
+0xD8   0x0E38  #THAI CHARACTER SARA U\r
+0xD9   0x0E39  #THAI CHARACTER SARA UU\r
+0xDA   0x0E3A  #THAI CHARACTER PHINTHU\r
+0xDB           #UNDEFINED\r
+0xDC           #UNDEFINED\r
+0xDD           #UNDEFINED\r
+0xDE           #UNDEFINED\r
+0xDF   0x0E3F  #THAI CURRENCY SYMBOL BAHT\r
+0xE0   0x0E40  #THAI CHARACTER SARA E\r
+0xE1   0x0E41  #THAI CHARACTER SARA AE\r
+0xE2   0x0E42  #THAI CHARACTER SARA O\r
+0xE3   0x0E43  #THAI CHARACTER SARA AI MAIMUAN\r
+0xE4   0x0E44  #THAI CHARACTER SARA AI MAIMALAI\r
+0xE5   0x0E45  #THAI CHARACTER LAKKHANGYAO\r
+0xE6   0x0E46  #THAI CHARACTER MAIYAMOK\r
+0xE7   0x0E47  #THAI CHARACTER MAITAIKHU\r
+0xE8   0x0E48  #THAI CHARACTER MAI EK\r
+0xE9   0x0E49  #THAI CHARACTER MAI THO\r
+0xEA   0x0E4A  #THAI CHARACTER MAI TRI\r
+0xEB   0x0E4B  #THAI CHARACTER MAI CHATTAWA\r
+0xEC   0x0E4C  #THAI CHARACTER THANTHAKHAT\r
+0xED   0x0E4D  #THAI CHARACTER NIKHAHIT\r
+0xEE   0x0E4E  #THAI CHARACTER YAMAKKAN\r
+0xEF   0x0E4F  #THAI CHARACTER FONGMAN\r
+0xF0   0x0E50  #THAI DIGIT ZERO\r
+0xF1   0x0E51  #THAI DIGIT ONE\r
+0xF2   0x0E52  #THAI DIGIT TWO\r
+0xF3   0x0E53  #THAI DIGIT THREE\r
+0xF4   0x0E54  #THAI DIGIT FOUR\r
+0xF5   0x0E55  #THAI DIGIT FIVE\r
+0xF6   0x0E56  #THAI DIGIT SIX\r
+0xF7   0x0E57  #THAI DIGIT SEVEN\r
+0xF8   0x0E58  #THAI DIGIT EIGHT\r
+0xF9   0x0E59  #THAI DIGIT NINE\r
+0xFA   0x0E5A  #THAI CHARACTER ANGKHANKHU\r
+0xFB   0x0E5B  #THAI CHARACTER KHOMUT\r
+0xFC           #UNDEFINED\r
+0xFD           #UNDEFINED\r
+0xFE           #UNDEFINED\r
+0xFF           #UNDEFINED\r