diff options
| author | Sam Varshavchik | 2015-07-26 21:34:21 -0400 |
|---|---|---|
| committer | Sam Varshavchik | 2015-07-26 21:34:21 -0400 |
| commit | f1bd3147e4df1bda680a7ecbfeca5699eed7788f (patch) | |
| tree | f70a304d7f34ee14277ebe93ac0460d720751a37 /unicode | |
| parent | 19309085193effe5d231fa3c99e8f9c33fdc2b4f (diff) | |
| download | courier-libs-f1bd3147e4df1bda680a7ecbfeca5699eed7788f.tar.bz2 | |
courier-unicode: implement tn36 (unicode_category_lookup).
Diffstat (limited to 'unicode')
| -rw-r--r-- | unicode/.gitignore | 1 | ||||
| -rw-r--r-- | unicode/Makefile.am | 25 | ||||
| -rw-r--r-- | unicode/README | 2 | ||||
| -rw-r--r-- | unicode/book.xml | 223 | ||||
| -rw-r--r-- | unicode/categoriestab.h | 7183 | ||||
| -rw-r--r-- | unicode/courier-unicode-categories-tab.h | 424 | ||||
| -rw-r--r-- | unicode/courier-unicode-script-tab.h | 132 | ||||
| -rw-r--r-- | unicode/courier-unicode.h | 224 | ||||
| -rwxr-xr-x | unicode/mkcategories.pl | 113 | ||||
| -rw-r--r-- | unicode/mkcommon.pm | 73 | ||||
| -rwxr-xr-x | unicode/mkscripts.pl | 17 | ||||
| -rw-r--r-- | unicode/unicode_categories.c | 84 | ||||
| -rw-r--r-- | unicode/unicode_tablookup.c | 39 | ||||
| -rw-r--r-- | unicode/unicode_wcwidth.c | 17 |
14 files changed, 8329 insertions, 228 deletions
diff --git a/unicode/.gitignore b/unicode/.gitignore index 28019f3..aebfba2 100644 --- a/unicode/.gitignore +++ b/unicode/.gitignore @@ -1,6 +1,7 @@ /*.bz2 /*.gz /*.sig +/Categories.txt /EastAsianWidth.txt /GraphemeBreakProperty.txt /INSTALL diff --git a/unicode/Makefile.am b/unicode/Makefile.am index c51c25d..8729714 100644 --- a/unicode/Makefile.am +++ b/unicode/Makefile.am @@ -20,6 +20,7 @@ update-www: @$(MAKE) update-www-wordbreak @$(MAKE) update-www-scripts @$(MAKE) update-www-htmlent + @$(MAKE) update-www-categories update-www-unicode: @SHELL@ $(srcdir)/update.sh UnicodeData.txt http://www.unicode.org/Public/UNIDATA/UnicodeData.txt @@ -47,11 +48,20 @@ update-www-htmlent: @SHELL@ $(srcdir)/update.sh xhtml-symbol.ent http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent @SHELL@ $(srcdir)/update.sh xhtml-special.ent http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent +update-www-categories: + @SHELL@ $(srcdir)/update.sh Categories.txt http://www.unicode.org/notes/tn36/Categories.txt + lib_LTLIBRARIES=libcourier-unicode.la -include_HEADERS=courier-unicode.h -man_MANS=$(srcdir)/man/courier-unicode.7 $(srcdir)/man/unicode[\:][\:]iconvert[\:][\:]convert.3 $(srcdir)/man/unicode[\:][\:]iconvert[\:][\:]convert_tocase.3 $(srcdir)/man/unicode[\:][\:]iconvert[\:][\:]fromu.3 $(srcdir)/man/unicode[\:][\:]iconvert[\:][\:]tou.3 $(srcdir)/man/unicode[\:][\:]iso_8859_1.3 $(srcdir)/man/unicode[\:][\:]linebreak_callback_base.3 $(srcdir)/man/unicode[\:][\:]linebreak_callback_save_buf.3 $(srcdir)/man/unicode[\:][\:]linebreak_iter.3 $(srcdir)/man/unicode[\:][\:]linebreakc_callback_base.3 $(srcdir)/man/unicode[\:][\:]linebreakc_iter.3 $(srcdir)/man/unicode[\:][\:]ucs_2.3 $(srcdir)/man/unicode[\:][\:]ucs_4.3 $(srcdir)/man/unicode[\:][\:]utf_8.3 $(srcdir)/man/unicode[\:][\:]wordbreak_callback_base.3 $(srcdir)/man/unicode_convert.3 $(srcdir)/man/unicode_convert_deinit.3 $(srcdir)/man/unicode_convert_fromu_init.3 $(srcdir)/man/unicode_convert_fromu_tobuf.3 $(srcdir)/man/unicode_convert_fromutf8.3 $(srcdir)/man/unicode_convert_init.3 $(srcdir)/man/unicode_convert_tobuf.3 $(srcdir)/man/unicode_convert_tocase.3 $(srcdir)/man/unicode_convert_tocbuf_fromutf8_init.3 $(srcdir)/man/unicode_convert_tocbuf_init.3 $(srcdir)/man/unicode_convert_tocbuf_toutf8_init.3 $(srcdir)/man/unicode_convert_tou_init.3 $(srcdir)/man/unicode_convert_tou_tobuf.3 $(srcdir)/man/unicode_convert_toutf8.3 $(srcdir)/man/unicode_convert_uc.3 $(srcdir)/man/unicode_default_chset.3 $(srcdir)/man/unicode_grapheme_break.3 $(srcdir)/man/unicode_html40ent_lookup.3 $(srcdir)/man/unicode_isspace.3 $(srcdir)/man/unicode_lb_end.3 $(srcdir)/man/unicode_lb_init.3 $(srcdir)/man/unicode_lb_next.3 $(srcdir)/man/unicode_lb_next_cnt.3 $(srcdir)/man/unicode_lb_set_opts.3 $(srcdir)/man/unicode_lbc_end.3 $(srcdir)/man/unicode_lbc_init.3 $(srcdir)/man/unicode_lbc_next.3 $(srcdir)/man/unicode_lbc_next_cnt.3 $(srcdir)/man/unicode_lbc_set_opts.3 $(srcdir)/man/unicode_lc.3 $(srcdir)/man/unicode_script.3 $(srcdir)/man/unicode_tc.3 $(srcdir)/man/unicode_u_ucs2_native.3 $(srcdir)/man/unicode_u_ucs4_native.3 $(srcdir)/man/unicode_uc.3 $(srcdir)/man/unicode_wb_end.3 $(srcdir)/man/unicode_wb_init.3 $(srcdir)/man/unicode_wb_next.3 $(srcdir)/man/unicode_wb_next_cnt.3 $(srcdir)/man/unicode_wbscan_end.3 $(srcdir)/man/unicode_wbscan_init.3 $(srcdir)/man/unicode_wbscan_next.3 +include_HEADERS=courier-unicode.h \ + courier-unicode-categories-tab.h \ + courier-unicode-script-tab.h + +man_MANS=$(srcdir)/man/courier-unicode.7 $(srcdir)/man/unicode[\:][\:]iconvert[\:][\:]convert.3 $(srcdir)/man/unicode[\:][\:]iconvert[\:][\:]convert_tocase.3 $(srcdir)/man/unicode[\:][\:]iconvert[\:][\:]fromu.3 $(srcdir)/man/unicode[\:][\:]iconvert[\:][\:]tou.3 $(srcdir)/man/unicode[\:][\:]iso_8859_1.3 $(srcdir)/man/unicode[\:][\:]linebreak_callback_base.3 $(srcdir)/man/unicode[\:][\:]linebreak_callback_save_buf.3 $(srcdir)/man/unicode[\:][\:]linebreak_iter.3 $(srcdir)/man/unicode[\:][\:]linebreakc_callback_base.3 $(srcdir)/man/unicode[\:][\:]linebreakc_iter.3 $(srcdir)/man/unicode[\:][\:]ucs_2.3 $(srcdir)/man/unicode[\:][\:]ucs_4.3 $(srcdir)/man/unicode[\:][\:]utf_8.3 $(srcdir)/man/unicode[\:][\:]wordbreak_callback_base.3 $(srcdir)/man/unicode_category_lookup.3 $(srcdir)/man/unicode_convert.3 $(srcdir)/man/unicode_convert_deinit.3 $(srcdir)/man/unicode_convert_fromu_init.3 $(srcdir)/man/unicode_convert_fromu_tobuf.3 $(srcdir)/man/unicode_convert_fromutf8.3 $(srcdir)/man/unicode_convert_init.3 $(srcdir)/man/unicode_convert_tobuf.3 $(srcdir)/man/unicode_convert_tocase.3 $(srcdir)/man/unicode_convert_tocbuf_fromutf8_init.3 $(srcdir)/man/unicode_convert_tocbuf_init.3 $(srcdir)/man/unicode_convert_tocbuf_toutf8_init.3 $(srcdir)/man/unicode_convert_tou_init.3 $(srcdir)/man/unicode_convert_tou_tobuf.3 $(srcdir)/man/unicode_convert_toutf8.3 $(srcdir)/man/unicode_convert_uc.3 $(srcdir)/man/unicode_default_chset.3 $(srcdir)/man/unicode_grapheme_break.3 $(srcdir)/man/unicode_html40ent_lookup.3 $(srcdir)/man/unicode_isalnum.3 $(srcdir)/man/unicode_isalpha.3 $(srcdir)/man/unicode_isblank.3 $(srcdir)/man/unicode_isdigit.3 $(srcdir)/man/unicode_isgraph.3 $(srcdir)/man/unicode_islower.3 $(srcdir)/man/unicode_ispunct.3 $(srcdir)/man/unicode_isspace.3 $(srcdir)/man/unicode_isupper.3 $(srcdir)/man/unicode_lb_end.3 $(srcdir)/man/unicode_lb_init.3 $(srcdir)/man/unicode_lb_next.3 $(srcdir)/man/unicode_lb_next_cnt.3 $(srcdir)/man/unicode_lb_set_opts.3 $(srcdir)/man/unicode_lbc_end.3 $(srcdir)/man/unicode_lbc_init.3 $(srcdir)/man/unicode_lbc_next.3 $(srcdir)/man/unicode_lbc_next_cnt.3 $(srcdir)/man/unicode_lbc_set_opts.3 $(srcdir)/man/unicode_lc.3 $(srcdir)/man/unicode_script.3 $(srcdir)/man/unicode_tc.3 $(srcdir)/man/unicode_u_ucs2_native.3 $(srcdir)/man/unicode_u_ucs4_native.3 $(srcdir)/man/unicode_uc.3 $(srcdir)/man/unicode_wb_end.3 $(srcdir)/man/unicode_wb_init.3 $(srcdir)/man/unicode_wb_next.3 $(srcdir)/man/unicode_wb_next_cnt.3 $(srcdir)/man/unicode_wbscan_end.3 $(srcdir)/man/unicode_wbscan_init.3 $(srcdir)/man/unicode_wbscan_next.3 -libcourier_unicode_la_SOURCES=courier-unicode.h unicode.c unicodebuf.c \ +libcourier_unicode_la_SOURCES=courier-unicode.h \ + courier-unicode-categories-tab.h \ + courier-unicode-script-tab.h \ + unicode.c unicodebuf.c \ unicodecpp.C \ unicode_ultcase.c \ unicode_ultcasetab.c \ @@ -63,7 +73,10 @@ libcourier_unicode_la_SOURCES=courier-unicode.h unicode.c unicodebuf.c \ linebreaktab_internal.h \ unicode_wordbreak.c wordbreaktab.h scriptstab.h \ wordbreaktab_internal.h \ - unicode_scripts.c + unicode_scripts.c \ + categoriestab.h \ + unicode_categories.c + libcourier_unicode_la_LDFLAGS=-version-info 2:0:1 EXTRA_DIST=$(noinst_SCRIPTS) $(man_MANS) $(PACKAGE).spec @@ -92,6 +105,10 @@ scriptstab.h: Scripts.txt mkscripts.pl mkcommon.pm @PERL@ $(srcdir)/mkscripts.pl >scriptstab.h.tmp mv scriptstab.h.tmp scriptstab.h +categoriestab.h: Categories.txt mkcategories.pl mkcommon.pm + @PERL@ $(srcdir)/mkcategories.pl >categoriestab.h.tmp + mv categoriestab.h.tmp categoriestab.h + unicode_htmlent.h: xhtml-lat1.ent xhtml-special.ent xhtml-symbol.ent mkhtmlent.pl @PERL@ $(srcdir)/mkhtmlent.pl >unicode_htmlent.h.tmp mv unicode_htmlent.h.tmp unicode_htmlent.h diff --git a/unicode/README b/unicode/README index 7d03fb9..09b7438 100644 --- a/unicode/README +++ b/unicode/README @@ -39,6 +39,8 @@ Courier Unicode Library * Look up Unicode script property. + * Look up the category property. + This library also implements C++ bindings for these algorithms. Current status diff --git a/unicode/book.xml b/unicode/book.xml index 3995cea..544b47f 100644 --- a/unicode/book.xml +++ b/unicode/book.xml @@ -64,6 +64,13 @@ See COPYING for distribution information. script property</ulink>. </para> </listitem> + <listitem> + <para> + Look up the + <ulink url="http://unicode.org/notes/tn36/">category</ulink> + property. + </para> + </listitem> </itemizedlist> <para> @@ -165,8 +172,8 @@ See COPYING for distribution information. <link linkend="unicode_html40ent_lookup"> <citerefentry><refentrytitle>unicode_html40ent_lookup</refentrytitle> <manvolnum>3</manvolnum></citerefentry></link>, - <link linkend="unicode_isspace"> - <citerefentry><refentrytitle>unicode_isspace</refentrytitle> + <link linkend="unicode_category_lookup"> + <citerefentry><refentrytitle>unicode_category_lookup</refentrytitle> <manvolnum>3</manvolnum></citerefentry></link>, <link linkend="unicode_grapheme_break"> <citerefentry><refentrytitle>unicode_grapheme_break</refentrytitle> @@ -697,42 +704,224 @@ See COPYING for distribution information. </refsect1> </refentry> - <refentry id="unicode_isspace"> + <refentry id="unicode_category_lookup"> <info><author><firstname>Sam</firstname><surname>Varshavchik</surname><contrib>Author</contrib></author><productname>Courier Unicode Library</productname></info> <refmeta> - <refentrytitle>unicode_isspace</refentrytitle> + <refentrytitle>unicode_category_lookup</refentrytitle> <manvolnum>3</manvolnum> </refmeta> <refnamediv> + <refname>unicode_category_lookup</refname> + <refname>unicode_isalnum</refname> + <refname>unicode_isalpha</refname> + <refname>unicode_isblank</refname> + <refname>unicode_isdigit</refname> + <refname>unicode_isgraph</refname> + <refname>unicode_islower</refname> + <refname>unicode_ispunct</refname> <refname>unicode_isspace</refname> - <refpurpose>unicode character classification</refpurpose> + <refname>unicode_isupper</refname> + + <refpurpose>unicode character categorization</refpurpose> </refnamediv> <refsynopsisdiv> <funcsynopsis> <funcsynopsisinfo>#include <courier-unicode.h></funcsynopsisinfo> <funcprototype> + <funcdef>uint32_t <function>unicode_category_lookup</function></funcdef> + <paramdef>unicode_char <parameter>c</parameter></paramdef> + </funcprototype> + + <funcprototype> + <funcdef>int <function>unicode_isalnum</function></funcdef> + <paramdef>unicode_char <parameter>c</parameter></paramdef> + </funcprototype> + + <funcprototype> + <funcdef>int <function>unicode_isalpha</function></funcdef> + <paramdef>unicode_char <parameter>c</parameter></paramdef> + </funcprototype> + + <funcprototype> + <funcdef>int <function>unicode_isblank</function></funcdef> + <paramdef>unicode_char <parameter>c</parameter></paramdef> + </funcprototype> + + <funcprototype> + <funcdef>int <function>unicode_isdigit</function></funcdef> + <paramdef>unicode_char <parameter>c</parameter></paramdef> + </funcprototype> + + <funcprototype> + <funcdef>int <function>unicode_isgraph</function></funcdef> + <paramdef>unicode_char <parameter>c</parameter></paramdef> + </funcprototype> + + <funcprototype> + <funcdef>int <function>unicode_islower</function></funcdef> + <paramdef>unicode_char <parameter>c</parameter></paramdef> + </funcprototype> + + <funcprototype> + <funcdef>int <function>unicode_ispunct</function></funcdef> + <paramdef>unicode_char <parameter>c</parameter></paramdef> + </funcprototype> + + <funcprototype> <funcdef>int <function>unicode_isspace</function></funcdef> <paramdef>unicode_char <parameter>c</parameter></paramdef> </funcprototype> + + <funcprototype> + <funcdef>int <function>unicode_isupper</function></funcdef> + <paramdef>unicode_char <parameter>c</parameter></paramdef> + </funcprototype> </funcsynopsis> </refsynopsisdiv> <refsect1> <title>DESCRIPTION</title> + <para> - <function>unicode_isspace</function>() returns non-zero - if the unicode character <parameter>c</parameter>'s line breaking - class is - <literal>BK</literal>, - <literal>CR</literal>, - <literal>LF</literal>, - <literal>NL</literal>, or - <literal>SP</literal>; and zero for all other characters. - Those line breaking classes include the traditional ASCII control - characters, and several additional unicode characters. + <function>unicode_category_lookup</function>() looks up the + <ulink url="http://unicode.org/notes/tn36/">unicode character's + categorization</ulink>. + <function>unicode_category_lookup</function>() returns a 32 bit + value. + The value's + <symbol>UNICODE_CATEGORY_1</symbol> bits specify the first level + of the unicode character's category, with + <symbol>UNICODE_CATEGORY_2</symbol>, + <symbol>UNICODE_CATEGORY_3</symbol>, and + <symbol>UNICODE_CATEGORY_4</symbol> bits specifying the 2nd, + 3rd, and 4th level, if given. A value of 0 for each corresponding + bit set indicates that no category is specified for this level, + for this character; otherwise the possible values are defined + in <filename><courier-unicode.h></filename>. </para> + + <para> + The remaining functions implement comparable equivalents of + their non-unicode versions in the standard C library, as follows: + </para> + + <variablelist> + <varlistentry> + <term><function>unicode_isalnum</function>()</term> + <listitem> + <para> + Returns non-0 for all + <function>unicode_isalpha</function>() or + <function>unicode_isdigit</function>(). + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><function>unicode_isalpha</function>()</term> + <listitem> + <para> + Returns non-0 for all + <symbol>UNICODE_CATEGORY_1_LETTER</symbol>. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><function>unicode_isblank</function>()</term> + <listitem> + <para> + Return non-0 for + <symbol>TAB</symbol>, and all + <symbol>UNICODE_CATEGORY_2_SPACE</symbol>. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><function>unicode_isdigit</function>()</term> + <listitem> + <para> + Returns non-0 for all + <symbol>UNICODE_CATEGORY_1_NUMBER</symbol> + | <symbol>UNICODE_CATEGORY_2_DIGIT</symbol>, + only (no third categories). + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><function>unicode_isgraph</function>()</term> + <listitem> + <para> + Returns non-0 for all codepoints above + <symbol>SPACE</symbol> which are not + <function>unicode_isspace</function>(). + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><function>unicode_islower</function>()</term> + <listitem> + <para> + Returns non-0 for all + <function>unicode_isalpha</function>() for which the + character is + equal to + <link linkend="unicode_uc"> + <citerefentry><refentrytitle>unicode_lc</refentrytitle> + <manvolnum>3</manvolnum></citerefentry></link> + of itself. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><function>unicode_ispunct</function>()</term> + <listitem> + <para> + Returns non-0 for all + <symbol>UNICODE_CATEGORY_1_PUNCTUATION</symbol>. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><function>unicode_isspace</function>()</term> + <listitem> + <para> + Returns non-0 for unicode_isblank() or + for unicode characters + with linebreaking properties of + <symbol>BK</symbol>, + <symbol>CR</symbol>, + <symbol>LF</symbol>, + <symbol>NL</symbol>, + and + <symbol>SP</symbol>. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><function>unicode_isupper</function>()</term> + <listitem> + <para> + Returns non-0 for all + <function>unicode_isalpha</function>() for which the + character is + equal to + <link linkend="unicode_uc"> + <citerefentry><refentrytitle>unicode_uc</refentrytitle> + <manvolnum>3</manvolnum></citerefentry></link> + of itself. + </para> + </listitem> + </varlistentry> + </variablelist> </refsect1> <refsect1> <title>SEE ALSO</title> @@ -1481,8 +1670,8 @@ See COPYING for distribution information. <link linkend="unicode_html40ent_lookup"> <citerefentry><refentrytitle>unicode_html40ent_lookup</refentrytitle> <manvolnum>3</manvolnum></citerefentry></link>, - <link linkend="unicode_isspace"> - <citerefentry><refentrytitle>unicode_isspace</refentrytitle> + <link linkend="unicode_category_lookup"> + <citerefentry><refentrytitle>unicode_category_lookup</refentrytitle> <manvolnum>3</manvolnum></citerefentry></link>, <link linkend="unicode_grapheme_break"> <citerefentry><refentrytitle>unicode_grapheme_break</refentrytitle> diff --git a/unicode/categoriestab.h b/unicode/categoriestab.h new file mode 100644 index 0000000..95f0496 --- /dev/null +++ b/unicode/categoriestab.h @@ -0,0 +1,7183 @@ +static const uint8_t unicode_rangetab[][2]={ + {0x0000 & 0xFF, 0x001f & 0xFF}, + {0x0020 & 0xFF, 0x0020 & 0xFF}, + {0x0021 & 0xFF, 0x0021 & 0xFF}, + {0x0022 & 0xFF, 0x0022 & 0xFF}, + {0x0023 & 0xFF, 0x0023 & 0xFF}, + {0x0024 & 0xFF, 0x0024 & 0xFF}, + {0x0025 & 0xFF, 0x0027 & 0xFF}, + {0x0028 & 0xFF, 0x0029 & 0xFF}, + {0x002a & 0xFF, 0x002a & 0xFF}, + {0x002b & 0xFF, 0x002b & 0xFF}, + {0x002c & 0xFF, 0x002f & 0xFF}, + {0x0030 & 0xFF, 0x0039 & 0xFF}, + {0x003a & 0xFF, 0x003b & 0xFF}, + {0x003c & 0xFF, 0x003e & 0xFF}, + {0x003f & 0xFF, 0x0040 & 0xFF}, + {0x0041 & 0xFF, 0x005a & 0xFF}, + {0x005b & 0xFF, 0x005b & 0xFF}, + {0x005c & 0xFF, 0x005c & 0xFF}, + {0x005d & 0xFF, 0x005d & 0xFF}, + {0x005e & 0xFF, 0x005e & 0xFF}, + {0x005f & 0xFF, 0x005f & 0xFF}, + {0x0060 & 0xFF, 0x0060 & 0xFF}, + {0x0061 & 0xFF, 0x007a & 0xFF}, + {0x007b & 0xFF, 0x007b & 0xFF}, + {0x007c & 0xFF, 0x007c & 0xFF}, + {0x007d & 0xFF, 0x007d & 0xFF}, + {0x007e & 0xFF, 0x007e & 0xFF}, + {0x007f & 0xFF, 0x009f & 0xFF}, + {0x00a0 & 0xFF, 0x00a0 & 0xFF}, + {0x00a1 & 0xFF, 0x00a1 & 0xFF}, + {0x00a2 & 0xFF, 0x00a5 & 0xFF}, + {0x00a6 & 0xFF, 0x00a7 & 0xFF}, + {0x00a8 & 0xFF, 0x00a8 & 0xFF}, + {0x00a9 & 0xFF, 0x00a9 & 0xFF}, + {0x00aa & 0xFF, 0x00aa & 0xFF}, + {0x00ab & 0xFF, 0x00ab & 0xFF}, + {0x00ac & 0xFF, 0x00ac & 0xFF}, + {0x00ad & 0xFF, 0x00ad & 0xFF}, + {0x00ae & 0xFF, 0x00ae & 0xFF}, + {0x00af & 0xFF, 0x00af & 0xFF}, + {0x00b0 & 0xFF, 0x00b0 & 0xFF}, + {0x00b1 & 0xFF, 0x00b1 & 0xFF}, + {0x00b2 & 0xFF, 0x00b3 & 0xFF}, + {0x00b4 & 0xFF, 0x00b4 & 0xFF}, + {0x00b5 & 0xFF, 0x00b5 & 0xFF}, + {0x00b6 & 0xFF, 0x00b7 & 0xFF}, + {0x00b8 & 0xFF, 0x00b8 & 0xFF}, + {0x00b9 & 0xFF, 0x00b9 & 0xFF}, + {0x00ba & 0xFF, 0x00ba & 0xFF}, + {0x00bb & 0xFF, 0x00bb & 0xFF}, + {0x00bc & 0xFF, 0x00be & 0xFF}, + {0x00bf & 0xFF, 0x00bf & 0xFF}, + {0x00c0 & 0xFF, 0x00d6 & 0xFF}, + {0x00d7 & 0xFF, 0x00d7 & 0xFF}, + {0x00d8 & 0xFF, 0x00f6 & 0xFF}, + {0x00f7 & 0xFF, 0x00f7 & 0xFF}, + {0x00f8 & 0xFF, 0x00ff & 0xFF}, + {0x0100 & 0xFF, 0x01c3 & 0xFF}, + {0x01c4 & 0xFF, 0x01cc & 0xFF}, + {0x01cd & 0xFF, 0x01ff & 0xFF}, + {0x0200 & 0xFF, 0x024f & 0xFF}, + {0x0250 & 0xFF, 0x02ad & 0xFF}, + {0x02ae & 0xFF, 0x02af & 0xFF}, + {0x02b0 & 0xFF, 0x02b8 & 0xFF}, + {0x02b9 & 0xFF, 0x02c6 & 0xFF}, + {0x02c7 & 0xFF, 0x02c7 & 0xFF}, + {0x02c8 & 0xFF, 0x02d7 & 0xFF}, + {0x02d8 & 0xFF, 0x02dd & 0xFF}, + {0x02de & 0xFF, 0x02e4 & 0xFF}, + {0x02e5 & 0xFF, 0x02eb & 0xFF}, + {0x02ec & 0xFF, 0x02ff & 0xFF}, + {0x0300 & 0xFF, 0x0333 & 0xFF}, + {0x0334 & 0xFF, 0x0338 & 0xFF}, + {0x0339 & 0xFF, 0x034e & 0xFF}, + {0x034f & 0xFF, 0x034f & 0xFF}, + {0x0350 & 0xFF, 0x035b & 0xFF}, + {0x035c & 0xFF, 0x0362 & 0xFF}, + {0x0363 & 0xFF, 0x036f & 0xFF}, + {0x0370 & 0xFF, 0x0373 & 0xFF}, + {0x0374 & 0xFF, 0x0375 & 0xFF}, + {0x0376 & 0xFF, 0x0377 & 0xFF}, + {0x037a & 0xFF, 0x037a & 0xFF}, + {0x037b & 0xFF, 0x037d & 0xFF}, + {0x037e & 0xFF, 0x037e & 0xFF}, + {0x0384 & 0xFF, 0x0385 & 0xFF}, + {0x0386 & 0xFF, 0x0386 & 0xFF}, + {0x0387 & 0xFF, 0x0387 & 0xFF}, + {0x0388 & 0xFF, 0x038a & 0xFF}, + {0x038c & 0xFF, 0x038c & 0xFF}, + {0x038e & 0xFF, 0x03a1 & 0xFF}, + {0x03a3 & 0xFF, 0x03ce & 0xFF}, + {0x03cf & 0xFF, 0x03d7 & 0xFF}, + {0x03d8 & 0xFF, 0x03e1 & 0xFF}, + {0x03e2 & 0xFF, 0x03ef & 0xFF}, + {0x03f0 & 0xFF, 0x03f2 & 0xFF}, + {0x03f3 & 0xFF, 0x03f3 & 0xFF}, + {0x03f4 & 0xFF, 0x03f6 & 0xFF}, + {0x03f7 & 0xFF, 0x03f8 & 0xFF}, + {0x03f9 & 0xFF, 0x03f9 & 0xFF}, + {0x03fa & 0xFF, 0x03fb & 0xFF}, + {0x03fc & 0xFF, 0x03fc & 0xFF}, + {0x03fd & 0xFF, 0x03ff & 0xFF}, + {0x0400 & 0xFF, 0x045f & 0xFF}, + {0x0460 & 0xFF, 0x0481 & 0xFF}, + {0x0482 & 0xFF, 0x0482 & 0xFF}, + {0x0483 & 0xFF, 0x0489 & 0xFF}, + {0x048a & 0xFF, 0x04ff & 0xFF}, + {0x0500 & 0xFF, 0x0527 & 0xFF}, + {0x0531 & 0xFF, 0x0556 & 0xFF}, + {0x0559 & 0xFF, 0x0559 & 0xFF}, + {0x055a & 0xFF, 0x055f & 0xFF}, + {0x0561 & 0xFF, 0x0587 & 0xFF}, + {0x0589 & 0xFF, 0x058a & 0xFF}, + {0x058f & 0xFF, 0x058f & 0xFF}, + {0x0591 & 0xFF, 0x05af & 0xFF}, + {0x05b0 & 0xFF, 0x05bd & 0xFF}, + {0x05be & 0xFF, 0x05be & 0xFF}, + {0x05bf & 0xFF, 0x05bf & 0xFF}, + {0x05c0 & 0xFF, 0x05c0 & 0xFF}, + {0x05c1 & 0xFF, 0x05c2 & 0xFF}, + {0x05c3 & 0xFF, 0x05c3 & 0xFF}, + {0x05c4 & 0xFF, 0x05c5 & 0xFF}, + {0x05c6 & 0xFF, 0x05c6 & 0xFF}, + {0x05c7 & 0xFF, 0x05c7 & 0xFF}, + {0x05d0 & 0xFF, 0x05ea & 0xFF}, + {0x05f0 & 0xFF, 0x05f2 & 0xFF}, + {0x05f3 & 0xFF, 0x05f4 & 0xFF}, + {0x0600 & 0xFF, 0x0604 & 0xFF}, + {0x0606 & 0xFF, 0x0607 & 0xFF}, + {0x0608 & 0xFF, 0x0608 & 0xFF}, + {0x0609 & 0xFF, 0x060a & 0xFF}, + {0x060b & 0xFF, 0x060b & 0xFF}, + {0x060c & 0xFF, 0x060f & 0xFF}, + {0x0610 & 0xFF, 0x0614 & 0xFF}, + {0x0615 & 0xFF, 0x0617 & 0xFF}, + {0x0618 & 0xFF, 0x061a & 0xFF}, + {0x061b & 0xFF, 0x061b & 0xFF}, + {0x061e & 0xFF, 0x061f & 0xFF}, + {0x0620 & 0xFF, 0x063f & 0xFF}, + {0x0640 & 0xFF, 0x0640 & 0xFF}, + {0x0641 & 0xFF, 0x064a & 0xFF}, + {0x064b & 0xFF, 0x0650 & 0xFF}, + {0x0651 & 0xFF, 0x0651 & 0xFF}, + {0x0652 & 0xFF, 0x0652 & 0xFF}, + {0x0653 & 0xFF, 0x0655 & 0xFF}, + {0x0656 & 0xFF, 0x0657 & 0xFF}, + {0x0658 & 0xFF, 0x0658 & 0xFF}, + {0x0659 & 0xFF, 0x065f & 0xFF}, + {0x0660 & 0xFF, 0x0669 & 0xFF}, + {0x066a & 0xFF, 0x066d & 0xFF}, + {0x066e & 0xFF, 0x066f & 0xFF}, + {0x0670 & 0xFF, 0x0670 & 0xFF}, + {0x0671 & 0xFF, 0x06d3 & 0xFF}, + {0x06d4 & 0xFF, 0x06d4 & 0xFF}, + {0x06d5 & 0xFF, 0x06d5 & 0xFF}, + {0x06d6 & 0xFF, 0x06ed & 0xFF}, + {0x06ee & 0xFF, 0x06ef & 0xFF}, + {0x06f0 & 0xFF, 0x06f9 & 0xFF}, + {0x06fa & 0xFF, 0x06fc & 0xFF}, + {0x06fd & 0xFF, 0x06fe & 0xFF}, + {0x06ff & 0xFF, 0x06ff & 0xFF}, + {0x0700 & 0xFF, 0x070d & 0xFF}, + {0x070f & 0xFF, 0x070f & 0xFF}, + {0x0710 & 0xFF, 0x072f & 0xFF}, + {0x0730 & 0xFF, 0x073f & 0xFF}, + {0x0740 & 0xFF, 0x074a & 0xFF}, + {0x074d & 0xFF, 0x077f & 0xFF}, + {0x0780 & 0xFF, 0x07a5 & 0xFF}, + {0x07a6 & 0xFF, 0x07b0 & 0xFF}, + {0x07b1 & 0xFF, 0x07b1 & 0xFF}, + {0x07c0 & 0xFF, 0x07c9 & 0xFF}, + {0x07ca & 0xFF, 0x07e7 & 0xFF}, + {0x07e8 & 0xFF, 0x07ea & 0xFF}, + {0x07eb & 0xFF, 0x07f5 & 0xFF}, + {0x07f6 & 0xFF, 0x07f6 & 0xFF}, + {0x07f7 & 0xFF, 0x07f9 & 0xFF}, + {0x07fa & 0xFF, 0x07fa & 0xFF}, + {0x0800 & 0xFF, 0x0815 & 0xFF}, + {0x0816 & 0xFF, 0x081b & 0xFF}, + {0x081c & 0xFF, 0x082c & 0xFF}, + {0x082d & 0xFF, 0x082d & 0xFF}, + {0x0830 & 0xFF, 0x083e & 0xFF}, + {0x0840 & 0xFF, 0x0858 & 0xFF}, + {0x0859 & 0xFF, 0x085b & 0xFF}, + {0x085e & 0xFF, 0x085e & 0xFF}, + {0x08a0 & 0xFF, 0x08a0 & 0xFF}, + {0x08a2 & 0xFF, 0x08ac & 0xFF}, + {0x08e4 & 0xFF, 0x08e9 & 0xFF}, + {0x08ea & 0xFF, 0x08ef & 0xFF}, + {0x08f0 & 0xFF, 0x08f3 & 0xFF}, + {0x08f4 & 0xFF, 0x08fe & 0xFF}, + {0x0900 & 0xFF, 0x0903 & 0xFF}, + {0x0904 & 0xFF, 0x0914 & 0xFF}, + {0x0915 & 0xFF, 0x0939 & 0xFF}, + {0x093a & 0xFF, 0x093b & 0xFF}, + {0x093c & 0xFF, 0x093c & 0xFF}, + {0x093d & 0xFF, 0x093d & 0xFF}, + {0x093e & 0xFF, 0x094c & 0xFF}, + {0x094d & 0xFF, 0x094d & 0xFF}, + {0x094e & 0xFF, 0x094f & 0xFF}, + {0x0950 & 0xFF, 0x0950 & 0xFF}, + {0x0951 & 0xFF, 0x0952 & 0xFF}, + {0x0953 & 0xFF, 0x0954 & 0xFF}, + {0x0955 & 0xFF, 0x0957 & 0xFF}, + {0x0958 & 0xFF, 0x095f & 0xFF}, + {0x0960 & 0xFF, 0x0961 & 0xFF}, + {0x0962 & 0xFF, 0x0963 & 0xFF}, + {0x0964 & 0xFF, 0x0965 & 0xFF}, + {0x0966 & 0xFF, 0x096f & 0xFF}, + {0x0970 & 0xFF, 0x0970 & 0xFF}, + {0x0971 & 0xFF, 0x0971 & 0xFF}, + {0x0972 & 0xFF, 0x0977 & 0xFF}, + {0x0979 & 0xFF, 0x097f & 0xFF}, + {0x0981 & 0xFF, 0x0983 & 0xFF}, + {0x0985 & 0xFF, 0x098c & 0xFF}, + {0x098f & 0xFF, 0x0990 & 0xFF}, + {0x0993 & 0xFF, 0x0994 & 0xFF}, + {0x0995 & 0xFF, 0x09a8 & 0xFF}, + {0x09aa & 0xFF, 0x09b0 & 0xFF}, + {0x09b2 & 0xFF, 0x09b2 & 0xFF}, + {0x09b6 & 0xFF, 0x09b9 & 0xFF}, + {0x09bc & 0xFF, 0x09bc & 0xFF}, + {0x09bd & 0xFF, 0x09bd & 0xFF}, + {0x09be & 0xFF, 0x09c4 & 0xFF}, + {0x09c7 & 0xFF, 0x09c8 & 0xFF}, + {0x09cb & 0xFF, 0x09cc & 0xFF}, + {0x09cd & 0xFF, 0x09cd & 0xFF}, + {0x09ce & 0xFF, 0x09ce & 0xFF}, + {0x09d7 & 0xFF, 0x09d7 & 0xFF}, + {0x09dc & 0xFF, 0x09dd & 0xFF}, + {0x09df & 0xFF, 0x09df & 0xFF}, + {0x09e0 & 0xFF, 0x09e1 & 0xFF}, + {0x09e2 & 0xFF, 0x09e3 & 0xFF}, + {0x09e6 & 0xFF, 0x09ef & 0xFF}, + {0x09f0 & 0xFF, 0x09f1 & 0xFF}, + {0x09f2 & 0xFF, 0x09f3 & 0xFF}, + {0x09f4 & 0xFF, 0x09f9 & 0xFF}, + {0x09fa & 0xFF, 0x09fa & 0xFF}, + {0x09fb & 0xFF, 0x09fb & 0xFF}, + {0x0a01 & 0xFF, 0x0a03 & 0xFF}, + {0x0a05 & 0xFF, 0x0a0a & 0xFF}, + {0x0a0f & 0xFF, 0x0a10 & 0xFF}, + {0x0a13 & 0xFF, 0x0a14 & 0xFF}, + {0x0a15 & 0xFF, 0x0a28 & 0xFF}, + {0x0a2a & 0xFF, 0x0a30 & 0xFF}, + {0x0a32 & 0xFF, 0x0a33 & 0xFF}, + {0x0a35 & 0xFF, 0x0a36 & 0xFF}, + {0x0a38 & 0xFF, 0x0a39 & 0xFF}, + {0x0a3c & 0xFF, 0x0a3c & 0xFF}, + {0x0a3e & 0xFF, 0x0a42 & 0xFF}, + {0x0a47 & 0xFF, 0x0a48 & 0xFF}, + {0x0a4b & 0xFF, 0x0a4c & 0xFF}, + {0x0a4d & 0xFF, 0x0a4d & 0xFF}, + {0x0a51 & 0xFF, 0x0a51 & 0xFF}, + {0x0a59 & 0xFF, 0x0a5c & 0xFF}, + {0x0a5e & 0xFF, 0x0a5e & 0xFF}, + {0x0a66 & 0xFF, 0x0a6f & 0xFF}, + {0x0a70 & 0xFF, 0x0a71 & 0xFF}, + {0x0a72 & 0xFF, 0x0a73 & 0xFF}, + {0x0a74 & 0xFF, 0x0a74 & 0xFF}, + {0x0a75 & 0xFF, 0x0a75 & 0xFF}, + {0x0a81 & 0xFF, 0x0a83 & 0xFF}, + {0x0a85 & 0xFF, 0x0a8d & 0xFF}, + {0x0a8f & 0xFF, 0x0a91 & 0xFF}, + {0x0a93 & 0xFF, 0x0a94 & 0xFF}, + {0x0a95 & 0xFF, 0x0aa8 & 0xFF}, + {0x0aaa & 0xFF, 0x0ab0 & 0xFF}, + {0x0ab2 & 0xFF, 0x0ab3 & 0xFF}, + {0x0ab5 & 0xFF, 0x0ab9 & 0xFF}, + {0x0abc & 0xFF, 0x0abc & 0xFF}, + {0x0abd & 0xFF, 0x0abd & 0xFF}, + {0x0abe & 0xFF, 0x0ac5 & 0xFF}, + {0x0ac7 & 0xFF, 0x0ac9 & 0xFF}, + {0x0acb & 0xFF, 0x0acc & 0xFF}, + {0x0acd & 0xFF, 0x0acd & 0xFF}, + {0x0ad0 & 0xFF, 0x0ad0 & 0xFF}, + {0x0ae0 & 0xFF, 0x0ae1 & 0xFF}, + {0x0ae2 & 0xFF, 0x0ae3 & 0xFF}, + {0x0ae6 & 0xFF, 0x0aef & 0xFF}, + {0x0af0 & 0xFF, 0x0af0 & 0xFF}, + {0x0af1 & 0xFF, 0x0af1 & 0xFF}, + {0x0b01 & 0xFF, 0x0b03 & 0xFF}, + {0x0b05 & 0xFF, 0x0b0c & 0xFF}, + {0x0b0f & 0xFF, 0x0b10 & 0xFF}, + {0x0b13 & 0xFF, 0x0b14 & 0xFF}, + {0x0b15 & 0xFF, 0x0b28 & 0xFF}, + {0x0b2a & 0xFF, 0x0b30 & 0xFF}, + {0x0b32 & 0xFF, 0x0b33 & 0xFF}, + {0x0b35 & 0xFF, 0x0b39 & 0xFF}, + {0x0b3c & 0xFF, 0x0b3c & 0xFF}, + {0x0b3d & 0xFF, 0x0b3d & 0xFF}, + {0x0b3e & 0xFF, 0x0b44 & 0xFF}, + {0x0b47 & 0xFF, 0x0b48 & 0xFF}, + {0x0b4b & 0xFF, 0x0b4c & 0xFF}, + {0x0b4d & 0xFF, 0x0b4d & 0xFF}, + {0x0b56 & 0xFF, 0x0b57 & 0xFF}, + {0x0b5c & 0xFF, 0x0b5d & 0xFF}, + {0x0b5f & 0xFF, 0x0b5f & 0xFF}, + {0x0b60 & 0xFF, 0x0b61 & 0xFF}, + {0x0b62 & 0xFF, 0x0b63 & 0xFF}, + {0x0b66 & 0xFF, 0x0b6f & 0xFF}, + {0x0b70 & 0xFF, 0x0b70 & 0xFF}, + {0x0b71 & 0xFF, 0x0b71 & 0xFF}, + {0x0b72 & 0xFF, 0x0b77 & 0xFF}, + {0x0b82 & 0xFF, 0x0b82 & 0xFF}, + {0x0b83 & 0xFF, 0x0b83 & 0xFF}, + {0x0b85 & 0xFF, 0x0b8a & 0xFF}, + {0x0b8e & 0xFF, 0x0b90 & 0xFF}, + {0x0b92 & 0xFF, 0x0b94 & 0xFF}, + {0x0b95 & 0xFF, 0x0b95 & 0xFF}, + {0x0b99 & 0xFF, 0x0b9a & 0xFF}, + {0x0b9c & 0xFF, 0x0b9c & 0xFF}, + {0x0b9e & 0xFF, 0x0b9f & 0xFF}, + {0x0ba3 & 0xFF, 0x0ba4 & 0xFF}, + {0x0ba8 & 0xFF, 0x0baa & 0xFF}, + {0x0bae & 0xFF, 0x0bb9 & 0xFF}, + {0x0bbe & 0xFF, 0x0bc2 & 0xFF}, + {0x0bc6 & 0xFF, 0x0bc8 & 0xFF}, + {0x0bca & 0xFF, 0x0bcc & 0xFF}, + {0x0bcd & 0xFF, 0x0bcd & 0xFF}, + {0x0bd0 & 0xFF, 0x0bd0 & 0xFF}, + {0x0bd7 & 0xFF, 0x0bd7 & 0xFF}, + {0x0be6 & 0xFF, 0x0bef & 0xFF}, + {0x0bf0 & 0xFF, 0x0bf2 & 0xFF}, + {0x0bf3 & 0xFF, 0x0bf8 & 0xFF}, + {0x0bf9 & 0xFF, 0x0bf9 & 0xFF}, + {0x0bfa & 0xFF, 0x0bfa & 0xFF}, + {0x0c01 & 0xFF, 0x0c03 & 0xFF}, + {0x0c05 & 0xFF, 0x0c0c & 0xFF}, + {0x0c0e & 0xFF, 0x0c10 & 0xFF}, + {0x0c12 & 0xFF, 0x0c14 & 0xFF}, + {0x0c15 & 0xFF, 0x0c28 & 0xFF}, + {0x0c2a & 0xFF, 0x0c33 & 0xFF}, + {0x0c35 & 0xFF, 0x0c39 & 0xFF}, + {0x0c3d & 0xFF, 0x0c3d & 0xFF}, + {0x0c3e & 0xFF, 0x0c44 & 0xFF}, + {0x0c46 & 0xFF, 0x0c48 & 0xFF}, + {0x0c4a & 0xFF, 0x0c4c & 0xFF}, + {0x0c4d & 0xFF, 0x0c4d & 0xFF}, + {0x0c55 & 0xFF, 0x0c56 & 0xFF}, + {0x0c58 & 0xFF, 0x0c59 & 0xFF}, + {0x0c60 & 0xFF, 0x0c61 & 0xFF}, + {0x0c62 & 0xFF, 0x0c63 & 0xFF}, + {0x0c66 & 0xFF, 0x0c6f & 0xFF}, + {0x0c78 & 0xFF, 0x0c7e & 0xFF}, + {0x0c7f & 0xFF, 0x0c7f & 0xFF}, + {0x0c82 & 0xFF, 0x0c83 & 0xFF}, + {0x0c85 & 0xFF, 0x0c8c & 0xFF}, + {0x0c8e & 0xFF, 0x0c90 & 0xFF}, + {0x0c92 & 0xFF, 0x0c94 & 0xFF}, + {0x0c95 & 0xFF, 0x0ca8 & 0xFF}, + {0x0caa & 0xFF, 0x0cb3 & 0xFF}, + {0x0cb5 & 0xFF, 0x0cb9 & 0xFF}, + {0x0cbc & 0xFF, 0x0cbc & 0xFF}, + {0x0cbd & 0xFF, 0x0cbd & 0xFF}, + {0x0cbe & 0xFF, 0x0cc4 & 0xFF}, + {0x0cc6 & 0xFF, 0x0cc8 & 0xFF}, + {0x0cca & 0xFF, 0x0ccc & 0xFF}, + {0x0ccd & 0xFF, 0x0ccd & 0xFF}, + {0x0cd5 & 0xFF, 0x0cd6 & 0xFF}, + {0x0cde & 0xFF, 0x0cde & 0xFF}, + {0x0ce0 & 0xFF, 0x0ce1 & 0xFF}, + {0x0ce2 & 0xFF, 0x0ce3 & 0xFF}, + {0x0ce6 & 0xFF, 0x0cef & 0xFF}, + {0x0cf1 & 0xFF, 0x0cf2 & 0xFF}, + {0x0d02 & 0xFF, 0x0d03 & 0xFF}, + {0x0d05 & 0xFF, 0x0d0c & 0xFF}, + {0x0d0e & 0xFF, 0x0d10 & 0xFF}, + {0x0d12 & 0xFF, 0x0d14 & 0xFF}, + {0x0d15 & 0xFF, 0x0d3a & 0xFF}, + {0x0d3d & 0xFF, 0x0d3d & 0xFF}, + {0x0d3e & 0xFF, 0x0d44 & 0xFF}, + {0x0d46 & 0xFF, 0x0d48 & 0xFF}, + {0x0d4a & 0xFF, 0x0d4c & 0xFF}, + {0x0d4d & 0xFF, 0x0d4d & 0xFF}, + {0x0d4e & 0xFF, 0x0d4e & 0xFF}, + {0x0d57 & 0xFF, 0x0d57 & 0xFF}, + {0x0d60 & 0xFF, 0x0d61 & 0xFF}, + {0x0d62 & 0xFF, 0x0d63 & 0xFF}, + {0x0d66 & 0xFF, 0x0d6f & 0xFF}, + {0x0d70 & 0xFF, 0x0d72 & 0xFF}, + {0x0d73 & 0xFF, 0x0d75 & 0xFF}, + {0x0d79 & 0xFF, 0x0d79 & 0xFF}, + {0x0d7a & 0xFF, 0x0d7f & 0xFF}, + {0x0d82 & 0xFF, 0x0d83 & 0xFF}, + {0x0d85 & 0xFF, 0x0d96 & 0xFF}, + {0x0d9a & 0xFF, 0x0db1 & 0xFF}, + {0x0db3 & 0xFF, 0x0dbb & 0xFF}, + {0x0dbd & 0xFF, 0x0dbd & 0xFF}, + {0x0dc0 & 0xFF, 0x0dc6 & 0xFF}, + {0x0dca & 0xFF, 0x0dca & 0xFF}, + {0x0dcf & 0xFF, 0x0dd4 & 0xFF}, + {0x0dd6 & 0xFF, 0x0dd6 & 0xFF}, + {0x0dd8 & 0xFF, 0x0ddb & 0xFF}, + {0x0ddc & 0xFF, 0x0dde & 0xFF}, + {0x0ddf & 0xFF, 0x0ddf & 0xFF}, + {0x0df2 & 0xFF, 0x0df3 & 0xFF}, + {0x0df4 & 0xFF, 0x0df4 & 0xFF}, + {0x0e01 & 0xFF, 0x0e2e & 0xFF}, + {0x0e2f & 0xFF, 0x0e2f & 0xFF}, + {0x0e30 & 0xFF, 0x0e3a & 0xFF}, + {0x0e3f & 0xFF, 0x0e3f & 0xFF}, + {0x0e40 & 0xFF, 0x0e44 & 0xFF}, + {0x0e45 & 0xFF, 0x0e45 & 0xFF}, + {0x0e46 & 0xFF, 0x0e46 & 0xFF}, + {0x0e47 & 0xFF, 0x0e47 & 0xFF}, + {0x0e48 & 0xFF, 0x0e4b & 0xFF}, + {0x0e4c & 0xFF, 0x0e4e & 0xFF}, + {0x0e4f & 0xFF, 0x0e4f & 0xFF}, + {0x0e50 & 0xFF, 0x0e59 & 0xFF}, + {0x0e5a & 0xFF, 0x0e5b & 0xFF}, + {0x0e81 & 0xFF, 0x0e82 & 0xFF}, + {0x0e84 & 0xFF, 0x0e84 & 0xFF}, + {0x0e87 & 0xFF, 0x0e88 & 0xFF}, + {0x0e8a & 0xFF, 0x0e8a & 0xFF}, + {0x0e8d & 0xFF, 0x0e8d & 0xFF}, + {0x0e94 & 0xFF, 0x0e97 & 0xFF}, + {0x0e99 & 0xFF, 0x0e9f & 0xFF}, + {0x0ea1 & 0xFF, 0x0ea3 & 0xFF}, + {0x0ea5 & 0xFF, 0x0ea5 & 0xFF}, + {0x0ea7 & 0xFF, 0x0ea7 & 0xFF}, + {0x0eaa & 0xFF, 0x0eab & 0xFF}, + {0x0ead & 0xFF, 0x0eae & 0xFF}, + {0x0eaf & 0xFF, 0x0eaf & 0xFF}, + {0x0eb0 & 0xFF, 0x0eb9 & 0xFF}, + {0x0ebb & 0xFF, 0x0ebb & 0xFF}, + {0x0ebc & 0xFF, 0x0ebd & 0xFF}, + {0x0ec0 & 0xFF, 0x0ec4 & 0xFF}, + {0x0ec6 & 0xFF, 0x0ec6 & 0xFF}, + {0x0ec8 & 0xFF, 0x0ecb & 0xFF}, + {0x0ecc & 0xFF, 0x0ecd & 0xFF}, + {0x0ed0 & 0xFF, 0x0ed9 & 0xFF}, + {0x0edc & 0xFF, 0x0edd & 0xFF}, + {0x0ede & 0xFF, 0x0edf & 0xFF}, + {0x0f00 & 0xFF, 0x0f00 & 0xFF}, + {0x0f01 & 0xFF, 0x0f07 & 0xFF}, + {0x0f08 & 0xFF, 0x0f14 & 0xFF}, + {0x0f15 & 0xFF, 0x0f1f & 0xFF}, + {0x0f20 & 0xFF, 0x0f29 & 0xFF}, + {0x0f2a & 0xFF, 0x0f33 & 0xFF}, + {0x0f34 & 0xFF, 0x0f34 & 0xFF}, + {0x0f35 & 0xFF, 0x0f38 & 0xFF}, + {0x0f39 & 0xFF, 0x0f39 & 0xFF}, + {0x0f3a & 0xFF, 0x0f3d & 0xFF}, + {0x0f3e & 0xFF, 0x0f3f & 0xFF}, + {0x0f40 & 0xFF, 0x0f47 & 0xFF}, + {0x0f49 & 0xFF, 0x0f6c & 0xFF}, + {0x0f71 & 0xFF, 0x0f7d & 0xFF}, + {0x0f7e & 0xFF, 0x0f7f & 0xFF}, + {0x0f80 & 0xFF, 0x0f81 & 0xFF}, + {0x0f82 & 0xFF, 0x0f83 & 0xFF}, + {0x0f84 & 0xFF, 0x0f84 & 0xFF}, + {0x0f85 & 0xFF, 0x0f85 & 0xFF}, + {0x0f86 & 0xFF, 0x0f87 & 0xFF}, + {0x0f88 & 0xFF, 0x0f8c & 0xFF}, + {0x0f8d & 0xFF, 0x0f8f & 0xFF}, + {0x0f90 & 0xFF, 0x0f97 & 0xFF}, + {0x0f99 & 0xFF, 0x0fbc & 0xFF}, + {0x0fbe & 0xFF, 0x0fbe & 0xFF}, + {0x0fbf & 0xFF, 0x0fbf & 0xFF}, + {0x0fc0 & 0xFF, 0x0fc3 & 0xFF}, + {0x0fc4 & 0xFF, 0x0fcc & 0xFF}, + {0x0fce & 0xFF, 0x0fcf & 0xFF}, + {0x0fd0 & 0xFF, 0x0fd2 & 0xFF}, + {0x0fd3 & 0xFF, 0x0fd4 & 0xFF}, + {0x0fd5 & 0xFF, 0x0fd8 & 0xFF}, + {0x0fd9 & 0xFF, 0x0fda & 0xFF}, + {0x1000 & 0xFF, 0x1020 & 0xFF}, + {0x1021 & 0xFF, 0x102a & 0xFF}, + {0x102b & 0xFF, 0x1035 & 0xFF}, + {0x1036 & 0xFF, 0x1036 & 0xFF}, + {0x1037 & 0xFF, 0x1037 & 0xFF}, + {0x1038 & 0xFF, 0x1038 & 0xFF}, + {0x1039 & 0xFF, 0x103a & 0xFF}, + {0x103b & 0xFF, 0x103e & 0xFF}, + {0x103f & 0xFF, 0x103f & 0xFF}, + {0x1040 & 0xFF, 0x1049 & 0xFF}, + {0x104a & 0xFF, 0x104b & 0xFF}, + {0x104c & 0xFF, 0x104f & 0xFF}, + {0x1050 & 0xFF, 0x1051 & 0xFF}, + {0x1052 & 0xFF, 0x1055 & 0xFF}, + {0x1056 & 0xFF, 0x1059 & 0xFF}, + {0x105a & 0xFF, 0x105d & 0xFF}, + {0x105e & 0xFF, 0x1060 & 0xFF}, + {0x1061 & 0xFF, 0x1061 & 0xFF}, + {0x1062 & 0xFF, 0x1062 & 0xFF}, + {0x1063 & 0xFF, 0x1064 & 0xFF}, + {0x1065 & 0xFF, 0x1066 & 0xFF}, + {0x1067 & 0xFF, 0x1068 & 0xFF}, + {0x1069 & 0xFF, 0x106d & 0xFF}, + {0x106e & 0xFF, 0x1070 & 0xFF}, + {0x1071 & 0xFF, 0x1074 & 0xFF}, + {0x1075 & 0xFF, 0x1081 & 0xFF}, + {0x1082 & 0xFF, 0x1082 & 0xFF}, + {0x1083 & 0xFF, 0x1086 & 0xFF}, + {0x1087 & 0xFF, 0x108d & 0xFF}, + {0x108e & 0xFF, 0x108e & 0xFF}, + {0x108f & 0xFF, 0x108f & 0xFF}, + {0x1090 & 0xFF, 0x1099 & 0xFF}, + {0x109a & 0xFF, 0x109b & 0xFF}, + {0x109c & 0xFF, 0x109d & 0xFF}, + {0x109e & 0xFF, 0x109f & 0xFF}, + {0x10a0 & 0xFF, 0x10c5 & 0xFF}, + {0x10c7 & 0xFF, 0x10c7 & 0xFF}, + {0x10cd & 0xFF, 0x10cd & 0xFF}, + {0x10d0 & 0xFF, 0x10f0 & 0xFF}, + {0x10f1 & 0xFF, 0x10f6 & 0xFF}, + {0x10f7 & 0xFF, 0x10fa & 0xFF}, + {0x10fb & 0xFF, 0x10fb & 0xFF}, + {0x10fc & 0xFF, 0x10fc & 0xFF}, + {0x10fd & 0xFF, 0x10ff & 0xFF}, + {0x1100 & 0xFF, 0x115e & 0xFF}, + {0x115f & 0xFF, 0x115f & 0xFF}, + {0x1160 & 0xFF, 0x1160 & 0xFF}, + {0x1161 & 0xFF, 0x11a7 & 0xFF}, + {0x11a8 & 0xFF, 0x11ff & 0xFF}, + {0x1200 & 0xFF, 0x1248 & 0xFF}, + {0x124a & 0xFF, 0x124d & 0xFF}, + {0x1250 & 0xFF, 0x1256 & 0xFF}, + {0x1258 & 0xFF, 0x1258 & 0xFF}, + {0x125a & 0xFF, 0x125d & 0xFF}, + {0x1260 & 0xFF, 0x1288 & 0xFF}, + {0x128a & 0xFF, 0x128d & 0xFF}, + {0x1290 & 0xFF, 0x12b0 & 0xFF}, + {0x12b2 & 0xFF, 0x12b5 & 0xFF}, + {0x12b8 & 0xFF, 0x12be & 0xFF}, + {0x12c0 & 0xFF, 0x12c0 & 0xFF}, + {0x12c2 & 0xFF, 0x12c5 & 0xFF}, + {0x12c8 & 0xFF, 0x12d6 & 0xFF}, + {0x12d8 & 0xFF, 0x12ff & 0xFF}, + {0x1300 & 0xFF, 0x1310 & 0xFF}, + {0x1312 & 0xFF, 0x1315 & 0xFF}, + {0x1318 & 0xFF, 0x135a & 0xFF}, + {0x135d & 0xFF, 0x135f & 0xFF}, + {0x1360 & 0xFF, 0x1368 & 0xFF}, + {0x1369 & 0xFF, 0x1371 & 0xFF}, + {0x1372 & 0xFF, 0x137c & 0xFF}, + {0x1380 & 0xFF, 0x138f & 0xFF}, + {0x1390 & 0xFF, 0x1399 & 0xFF}, + {0x13a0 & 0xFF, 0x13f4 & 0xFF}, + {0x1400 & 0xFF, 0x1400 & 0xFF}, + {0x1401 & 0xFF, 0x14ff & 0xFF}, + {0x1500 & 0xFF, 0x15ff & 0xFF}, + {0x1600 & 0xFF, 0x166c & 0xFF}, + {0x166d & 0xFF, 0x166d & 0xFF}, + {0x166e & 0xFF, 0x166e & 0xFF}, + {0x166f & 0xFF, 0x167f & 0xFF}, + {0x1680 & 0xFF, 0x1680 & 0xFF}, + {0x1681 & 0xFF, 0x169a & 0xFF}, + {0x169b & 0xFF, 0x169c & 0xFF}, + {0x16a0 & 0xFF, 0x16ea & 0xFF}, + {0x16eb & 0xFF, 0x16ed & 0xFF}, + {0x16ee & 0xFF, 0x16f0 & 0xFF}, + {0x1700 & 0xFF, 0x1702 & 0xFF}, + {0x1703 & 0xFF, 0x170c & 0xFF}, + {0x170e & 0xFF, 0x1711 & 0xFF}, + {0x1712 & 0xFF, 0x1713 & 0xFF}, + {0x1714 & 0xFF, 0x1714 & 0xFF}, + {0x1720 & 0xFF, 0x1722 & 0xFF}, + {0x1723 & 0xFF, 0x1731 & 0xFF}, + {0x1732 & 0xFF, 0x1733 & 0xFF}, + {0x1734 & 0xFF, 0x1734 & 0xFF}, + {0x1735 & 0xFF, 0x1736 & 0xFF}, + {0x1740 & 0xFF, 0x1742 & 0xFF}, + {0x1743 & 0xFF, 0x1751 & 0xFF}, + {0x1752 & 0xFF, 0x1753 & 0xFF}, + {0x1760 & 0xFF, 0x1762 & 0xFF}, + {0x1763 & 0xFF, 0x176c & 0xFF}, + {0x176e & 0xFF, 0x1770 & 0xFF}, + {0x1772 & 0xFF, 0x1773 & 0xFF}, + {0x1780 & 0xFF, 0x17a2 & 0xFF}, + {0x17a3 & 0xFF, 0x17b3 & 0xFF}, + {0x17b4 & 0xFF, 0x17b5 & 0xFF}, + {0x17b6 & 0xFF, 0x17bd & 0xFF}, + {0x17be & 0xFF, 0x17c0 & 0xFF}, + {0x17c1 & 0xFF, 0x17c3 & 0xFF}, + {0x17c4 & 0xFF, 0x17c5 & 0xFF}, + {0x17c6 & 0xFF, 0x17c8 & 0xFF}, + {0x17c9 & 0xFF, 0x17d0 & 0xFF}, + {0x17d1 & 0xFF, 0x17d2 & 0xFF}, + {0x17d3 & 0xFF, 0x17d3 & 0xFF}, + {0x17d4 & 0xFF, 0x17d6 & 0xFF}, + {0x17d7 & 0xFF, 0x17d7 & 0xFF}, + {0x17d8 & 0xFF, 0x17d8 & 0xFF}, + {0x17d9 & 0xFF, 0x17da & 0xFF}, + {0x17db & 0xFF, 0x17db & 0xFF}, + {0x17dc & 0xFF, 0x17dc & 0xFF}, + {0x17dd & 0xFF, 0x17dd & 0xFF}, + {0x17e0 & 0xFF, 0x17e9 & 0xFF}, + {0x17f0 & 0xFF, 0x17f9 & 0xFF}, + {0x1800 & 0xFF, 0x180a & 0xFF}, + {0x180b & 0xFF, 0x180d & 0xFF}, + {0x180e & 0xFF, 0x180e & 0xFF}, + {0x1810 & 0xFF, 0x1819 & 0xFF}, + {0x1820 & 0xFF, 0x1877 & 0xFF}, + {0x1880 & 0xFF, 0x1881 & 0xFF}, + {0x1882 & 0xFF, 0x1884 & 0xFF}, + {0x1885 & 0xFF, 0x1886 & 0xFF}, + {0x1887 & 0xFF, 0x18a8 & 0xFF}, + {0x18a9 & 0xFF, 0x18a9 & 0xFF}, + {0x18aa & 0xFF, 0x18aa & 0xFF}, + {0x18b0 & 0xFF, 0x18f5 & 0xFF}, + {0x1900 & 0xFF, 0x191c & 0xFF}, + {0x1920 & 0xFF, 0x1928 & 0xFF}, + {0x1929 & 0xFF, 0x192b & 0xFF}, + {0x1930 & 0xFF, 0x1938 & 0xFF}, + {0x1939 & 0xFF, 0x193b & 0xFF}, + {0x1940 & 0xFF, 0x1940 & 0xFF}, + {0x1944 & 0xFF, 0x1945 & 0xFF}, + {0x1946 & 0xFF, 0x194f & 0xFF}, + {0x1950 & 0xFF, 0x1962 & 0xFF}, + {0x1963 & 0xFF, 0x196d & 0xFF}, + {0x1970 & 0xFF, 0x1974 & 0xFF}, + {0x1980 & 0xFF, 0x19ab & 0xFF}, + {0x19b0 & 0xFF, 0x19c0 & 0xFF}, + {0x19c1 & 0xFF, 0x19c7 & 0xFF}, + {0x19c8 & 0xFF, 0x19c9 & 0xFF}, + {0x19d0 & 0xFF, 0x19da & 0xFF}, + {0x19de & 0xFF, 0x19df & 0xFF}, + {0x19e0 & 0xFF, 0x19ff & 0xFF}, + {0x1a00 & 0xFF, 0x1a16 & 0xFF}, + {0x1a17 & 0xFF, 0x1a1b & 0xFF}, + {0x1a1e & 0xFF, 0x1a1f & 0xFF}, + {0x1a20 & 0xFF, 0x1a4c & 0xFF}, + {0x1a4d & 0xFF, 0x1a52 & 0xFF}, + {0x1a53 & 0xFF, 0x1a54 & 0xFF}, + {0x1a55 & 0xFF, 0x1a5e & 0xFF}, + {0x1a60 & 0xFF, 0x1a60 & 0xFF}, + {0x1a61 & 0xFF, 0x1a74 & 0xFF}, + {0x1a75 & 0xFF, 0x1a7c & 0xFF}, + {0x1a7f & 0xFF, 0x1a7f & 0xFF}, + {0x1a80 & 0xFF, 0x1a89 & 0xFF}, + {0x1a90 & 0xFF, 0x1a99 & 0xFF}, + {0x1aa0 & 0xFF, 0x1aad & 0xFF}, + {0x1b00 & 0xFF, 0x1b04 & 0xFF}, + {0x1b05 & 0xFF, 0x1b12 & 0xFF}, + {0x1b13 & 0xFF, 0x1b33 & 0xFF}, + {0x1b34 & 0xFF, 0x1b34 & 0xFF}, + {0x1b35 & 0xFF, 0x1b43 & 0xFF}, + {0x1b44 & 0xFF, 0x1b44 & 0xFF}, + {0x1b45 & 0xFF, 0x1b4b & 0xFF}, + {0x1b50 & 0xFF, 0x1b59 & 0xFF}, + {0x1b5a & 0xFF, 0x1b60 & 0xFF}, + {0x1b61 & 0xFF, 0x1b6a & 0xFF}, + {0x1b6b & 0xFF, 0x1b7c & 0xFF}, + {0x1b80 & 0xFF, 0x1b82 & 0xFF}, + {0x1b83 & 0xFF, 0x1b89 & 0xFF}, + {0x1b8a & 0xFF, 0x1ba0 & 0xFF}, + {0x1ba1 & 0xFF, 0x1ba3 & 0xFF}, + {0x1ba4 & 0xFF, 0x1ba9 & 0xFF}, + {0x1baa & 0xFF, 0x1bab & 0xFF}, + {0x1bac & 0xFF, 0x1bad & 0xFF}, + {0x1bae & 0xFF, 0x1baf & 0xFF}, + {0x1bb0 & 0xFF, 0x1bb9 & 0xFF}, + {0x1bba & 0xFF, 0x1bba & 0xFF}, + {0x1bbb & 0xFF, 0x1bbc & 0xFF}, + {0x1bbd & 0xFF, 0x1bbf & 0xFF}, + {0x1bc0 & 0xFF, 0x1be5 & 0xFF}, + {0x1be6 & 0xFF, 0x1be6 & 0xFF}, + {0x1be7 & 0xFF, 0x1bef & 0xFF}, + {0x1bf0 & 0xFF, 0x1bf1 & 0xFF}, + {0x1bf2 & 0xFF, 0x1bf3 & 0xFF}, + {0x1bfc & 0xFF, 0x1bff & 0xFF}, + {0x1c00 & 0xFF, 0x1c23 & 0xFF}, + {0x1c24 & 0xFF, 0x1c25 & 0xFF}, + {0x1c26 & 0xFF, 0x1c2c & 0xFF}, + {0x1c2d & 0xFF, 0x1c35 & 0xFF}, + {0x1c36 & 0xFF, 0x1c37 & 0xFF}, + {0x1c3b & 0xFF, 0x1c3f & 0xFF}, + {0x1c40 & 0xFF, 0x1c49 & 0xFF}, + {0x1c4d & 0xFF, 0x1c4f & 0xFF}, + {0x1c50 & 0xFF, 0x1c59 & 0xFF}, + {0x1c5a & 0xFF, 0x1c77 & 0xFF}, + {0x1c78 & 0xFF, 0x1c7d & 0xFF}, + {0x1c7e & 0xFF, 0x1c7f & 0xFF}, + {0x1cc0 & 0xFF, 0x1cc7 & 0xFF}, + {0x1cd0 & 0xFF, 0x1ce1 & 0xFF}, + {0x1ce2 & 0xFF, 0x1ce8 & 0xFF}, + {0x1ce9 & 0xFF, 0x1cf1 & 0xFF}, + {0x1cf2 & 0xFF, 0x1cf3 & 0xFF}, + {0x1cf4 & 0xFF, 0x1cf4 & 0xFF}, + {0x1cf5 & 0xFF, 0x1cf6 & 0xFF}, + {0x1d00 & 0xFF, 0x1d2b & 0xFF}, + {0x1d2c & 0xFF, 0x1d61 & 0xFF}, + {0x1d62 & 0xFF, 0x1d6a & 0xFF}, + {0x1d6b & 0xFF, 0x1d6b & 0xFF}, + {0x1d6c & 0xFF, 0x1d77 & 0xFF}, + {0x1d78 & 0xFF, 0x1d78 & 0xFF}, + {0x1d79 & 0xFF, 0x1d9a & 0xFF}, + {0x1d9b & 0xFF, 0x1dbf & 0xFF}, + {0x1dc0 & 0xFF, 0x1dc3 & 0xFF}, + {0x1dc4 & 0xFF, 0x1dc9 & 0xFF}, + {0x1dca & 0xFF, 0x1dca & 0xFF}, + {0x1dcb & 0xFF, 0x1dcc & 0xFF}, + {0x1dcd & 0xFF, 0x1dcd & 0xFF}, + {0x1dce & 0xFF, 0x1dd2 & 0xFF}, + {0x1dd3 & 0xFF, 0x1de6 & 0xFF}, + {0x1dfc & 0xFF, 0x1dfc & 0xFF}, + {0x1dfd & 0xFF, 0x1dff & 0xFF}, + {0x1e00 & 0xFF, 0x1eff & 0xFF}, + {0x1f00 & 0xFF, 0x1f15 & 0xFF}, + {0x1f18 & 0xFF, 0x1f1d & 0xFF}, + {0x1f20 & 0xFF, 0x1f45 & 0xFF}, + {0x1f48 & 0xFF, 0x1f4d & 0xFF}, + {0x1f50 & 0xFF, 0x1f57 & 0xFF}, + {0x1f59 & 0xFF, 0x1f59 & 0xFF}, + {0x1f5b & 0xFF, 0x1f5b & 0xFF}, + {0x1f5d & 0xFF, 0x1f5d & 0xFF}, + {0x1f5f & 0xFF, 0x1f7d & 0xFF}, + {0x1f80 & 0xFF, 0x1fb4 & 0xFF}, + {0x1fb6 & 0xFF, 0x1fbc & 0xFF}, + {0x1fbd & 0xFF, 0x1fc1 & 0xFF}, + {0x1fc2 & 0xFF, 0x1fc4 & 0xFF}, + {0x1fc6 & 0xFF, 0x1fcc & 0xFF}, + {0x1fcd & 0xFF, 0x1fcf & 0xFF}, + {0x1fd0 & 0xFF, 0x1fd3 & 0xFF}, + {0x1fd6 & 0xFF, 0x1fdb & 0xFF}, + {0x1fdd & 0xFF, 0x1fdf & 0xFF}, + {0x1fe0 & 0xFF, 0x1fec & 0xFF}, + {0x1fed & 0xFF, 0x1fef & 0xFF}, + {0x1ff2 & 0xFF, 0x1ff4 & 0xFF}, + {0x1ff6 & 0xFF, 0x1ffc & 0xFF}, + {0x1ffd & 0xFF, 0x1ffe & 0xFF}, + {0x2000 & 0xFF, 0x200b & 0xFF}, + {0x200c & 0xFF, 0x200d & 0xFF}, + {0x200e & 0xFF, 0x200f & 0xFF}, + {0x2010 & 0xFF, 0x2015 & 0xFF}, + {0x2016 & 0xFF, 0x2017 & 0xFF}, + {0x2018 & 0xFF, 0x201f & 0xFF}, + {0x2020 & 0xFF, 0x2027 & 0xFF}, + {0x2028 & 0xFF, 0x2029 & 0xFF}, + {0x202a & 0xFF, 0x202e & 0xFF}, + {0x202f & 0xFF, 0x202f & 0xFF}, + {0x2030 & 0xFF, 0x2038 & 0xFF}, + {0x2039 & 0xFF, 0x203a & 0xFF}, + {0x203b & 0xFF, 0x203b & 0xFF}, + {0x203c & 0xFF, 0x203c & 0xFF}, + {0x203d & 0xFF, 0x2044 & 0xFF}, + {0x2045 & 0xFF, 0x2046 & 0xFF}, + {0x2047 & 0xFF, 0x2049 & 0xFF}, + {0x204a & 0xFF, 0x2055 & 0xFF}, + {0x2056 & 0xFF, 0x2056 & 0xFF}, + {0x2057 & 0xFF, 0x2057 & 0xFF}, + {0x2058 & 0xFF, 0x205e & 0xFF}, + {0x205f & 0xFF, 0x205f & 0xFF}, + {0x2060 & 0xFF, 0x2060 & 0xFF}, + {0x2061 & 0xFF, 0x2064 & 0xFF}, + {0x206a & 0xFF, 0x206f & 0xFF}, + {0x2070 & 0xFF, 0x2070 & 0xFF}, + {0x2071 & 0xFF, 0x2071 & 0xFF}, + {0x2074 & 0xFF, 0x2079 & 0xFF}, + {0x207a & 0xFF, 0x207c & 0xFF}, + {0x207d & 0xFF, 0x207e & 0xFF}, + {0x207f & 0xFF, 0x207f & 0xFF}, + {0x2080 & 0xFF, 0x2089 & 0xFF}, + {0x208a & 0xFF, 0x208c & 0xFF}, + {0x208d & 0xFF, 0x208e & 0xFF}, + {0x2090 & 0xFF, 0x209c & 0xFF}, + {0x20a0 & 0xFF, 0x20b9 & 0xFF}, + {0x20d0 & 0xFF, 0x20d1 & 0xFF}, + {0x20d2 & 0xFF, 0x20d3 & 0xFF}, + {0x20d4 & 0xFF, 0x20d7 & 0xFF}, + {0x20d8 & 0xFF, 0x20da & 0xFF}, + {0x20db & 0xFF, 0x20dc & 0xFF}, + {0x20dd & 0xFF, 0x20e0 & 0xFF}, + {0x20e1 & 0xFF, 0x20e1 & 0xFF}, + {0x20e2 & 0xFF, 0x20e4 & 0xFF}, + {0x20e5 & 0xFF, 0x20e6 & 0xFF}, + {0x20e7 & 0xFF, 0x20e9 & 0xFF}, + {0x20ea & 0xFF, 0x20eb & 0xFF}, + {0x20ec & 0xFF, 0x20f0 & 0xFF}, + {0x2100 & 0xFF, 0x2134 & 0xFF}, + {0x2135 & 0xFF, 0x2138 & 0xFF}, + {0x2139 & 0xFF, 0x213f & 0xFF}, + {0x2140 & 0xFF, 0x2140 & 0xFF}, + {0x2141 & 0xFF, 0x2144 & 0xFF}, + {0x2145 & 0xFF, 0x2146 & 0xFF}, + {0x2147 & 0xFF, 0x2149 & 0xFF}, + {0x214a & 0xFF, 0x214d & 0xFF}, + {0x214e & 0xFF, 0x214e & 0xFF}, + {0x214f & 0xFF, 0x214f & 0xFF}, + {0x2150 & 0xFF, 0x215f & 0xFF}, + {0x2160 & 0xFF, 0x217f & 0xFF}, + {0x2180 & 0xFF, 0x2182 & 0xFF}, + {0x2183 & 0xFF, 0x2184 & 0xFF}, + {0x2185 & 0xFF, 0x2188 & 0xFF}, + {0x2189 & 0xFF, 0x2189 & 0xFF}, + {0x2190 & 0xFF, 0x21bb & 0xFF}, + {0x21bc & 0xFF, 0x21c3 & 0xFF}, + {0x21c4 & 0xFF, 0x21ca & 0xFF}, + {0x21cb & 0xFF, 0x21cc & 0xFF}, + {0x21cd & 0xFF, 0x21d9 & 0xFF}, + {0x21da & 0xFF, 0x21ff & 0xFF}, + {0x2200 & 0xFF, 0x2207 & 0xFF}, + {0x2208 & 0xFF, 0x220d & 0xFF}, + {0x220e & 0xFF, 0x220e & 0xFF}, + {0x220f & 0xFF, 0x2211 & 0xFF}, + {0x2212 & 0xFF, 0x2219 & 0xFF}, + {0x221a & 0xFF, 0x221c & 0xFF}, + {0x221d & 0xFF, 0x221d & 0xFF}, + {0x221e & 0xFF, 0x2222 & 0xFF}, + {0x2223 & 0xFF, 0x2226 & 0xFF}, + {0x2227 & 0xFF, 0x222a & 0xFF}, + {0x222b & 0xFF, 0x2233 & 0xFF}, + {0x2234 & 0xFF, 0x2235 & 0xFF}, + {0x2236 & 0xFF, 0x2237 & 0xFF}, + {0x2238 & 0xFF, 0x2238 & 0xFF}, + {0x2239 & 0xFF, 0x2239 & 0xFF}, + {0x223a & 0xFF, 0x223a & 0xFF}, + {0x223b & 0xFF, 0x223e & 0xFF}, + {0x223f & 0xFF, 0x223f & 0xFF}, + {0x2240 & 0xFF, 0x2240 & 0xFF}, + {0x2241 & 0xFF, 0x228b & 0xFF}, + {0x228c & 0xFF, 0x228e & 0xFF}, + {0x228f & 0xFF, 0x2292 & 0xFF}, + {0x2293 & 0xFF, 0x22a3 & 0xFF}, + {0x22a4 & 0xFF, 0x22a5 & 0xFF}, + {0x22a6 & 0xFF, 0x22b9 & 0xFF}, + {0x22ba & 0xFF, 0x22bd & 0xFF}, + {0x22be & 0xFF, 0x22bf & 0xFF}, + {0x22c0 & 0xFF, 0x22c3 & 0xFF}, + {0x22c4 & 0xFF, 0x22c7 & 0xFF}, + {0x22c8 & 0xFF, 0x22c8 & 0xFF}, + {0x22c9 & 0xFF, 0x22cc & 0xFF}, + {0x22cd & 0xFF, 0x22cd & 0xFF}, + {0x22ce & 0xFF, 0x22cf & 0xFF}, + {0x22d0 & 0xFF, 0x22d1 & 0xFF}, + {0x22d2 & 0xFF, 0x22d3 & 0xFF}, + {0x22d4 & 0xFF, 0x22ff & 0xFF}, + {0x2300 & 0xFF, 0x2307 & 0xFF}, + {0x2308 & 0xFF, 0x230b & 0xFF}, + {0x230c & 0xFF, 0x230f & 0xFF}, + {0x2310 & 0xFF, 0x2311 & 0xFF}, + {0x2312 & 0xFF, 0x2314 & 0xFF}, + {0x2315 & 0xFF, 0x2319 & 0xFF}, + {0x231a & 0xFF, 0x231b & 0xFF}, + {0x231c & 0xFF, 0x231f & 0xFF}, + {0x2320 & 0xFF, 0x2321 & 0xFF}, + {0x2322 & 0xFF, 0x2323 & 0xFF}, + {0x2324 & 0xFF, 0x2328 & 0xFF}, + {0x2329 & 0xFF, 0x232a & 0xFF}, + {0x232b & 0xFF, 0x232b & 0xFF}, + {0x232c & 0xFF, 0x232c & 0xFF}, + {0x232d & 0xFF, 0x2335 & 0xFF}, + {0x2336 & 0xFF, 0x237a & 0xFF}, + {0x237b & 0xFF, 0x237b & 0xFF}, + {0x237c & 0xFF, 0x237c & 0xFF}, + {0x237d & 0xFF, 0x237f & 0xFF}, + {0x2380 & 0xFF, 0x238c & 0xFF}, + {0x238d & 0xFF, 0x2394 & 0xFF}, + {0x2395 & 0xFF, 0x2395 & 0xFF}, + {0x2396 & 0xFF, 0x239a & 0xFF}, + {0x239b & 0xFF, 0x23ad & 0xFF}, + {0x23ae & 0xFF, 0x23af & 0xFF}, + {0x23b0 & 0xFF, 0x23b1 & 0xFF}, + {0x23b2 & 0xFF, 0x23b3 & 0xFF}, + {0x23b4 & 0xFF, 0x23b6 & 0xFF}, + {0x23b7 & 0xFF, 0x23bd & 0xFF}, + {0x23be & 0xFF, 0x23cc & 0xFF}, + {0x23cd & 0xFF, 0x23cd & 0xFF}, + {0x23ce & 0xFF, 0x23ce & 0xFF}, + {0x23cf & 0xFF, 0x23cf & 0xFF}, + {0x23d0 & 0xFF, 0x23d0 & 0xFF}, + {0x23d1 & 0xFF, 0x23d9 & 0xFF}, + {0x23da & 0xFF, 0x23db & 0xFF}, + {0x23dc & 0xFF, 0x23e1 & 0xFF}, + {0x23e2 & 0xFF, 0x23e2 & 0xFF}, + {0x23e3 & 0xFF, 0x23e3 & 0xFF}, + {0x23e4 & 0xFF, 0x23e8 & 0xFF}, + {0x23e9 & 0xFF, 0x23f3 & 0xFF}, + {0x2400 & 0xFF, 0x2421 & 0xFF}, + {0x2422 & 0xFF, 0x2423 & 0xFF}, + {0x2424 & 0xFF, 0x2424 & 0xFF}, + {0x2425 & 0xFF, 0x2425 & 0xFF}, + {0x2426 & 0xFF, 0x2426 & 0xFF}, + {0x2440 & 0xFF, 0x2445 & 0xFF}, + {0x2446 & 0xFF, 0x2449 & 0xFF}, + {0x244a & 0xFF, 0x244a & 0xFF}, + {0x2460 & 0xFF, 0x2473 & 0xFF}, + {0x2474 & 0xFF, 0x2487 & 0xFF}, + {0x2488 & 0xFF, 0x249b & 0xFF}, + {0x249c & 0xFF, 0x24b5 & 0xFF}, + {0x24b6 & 0xFF, 0x24e9 & 0xFF}, + {0x24ea & 0xFF, 0x24ff & 0xFF}, + {0x2500 & 0xFF, 0x257f & 0xFF}, + {0x2580 & 0xFF, 0x2590 & 0xFF}, + {0x2591 & 0xFF, 0x2593 & 0xFF}, + {0x2594 & 0xFF, 0x2595 & 0xFF}, + {0x2596 & 0xFF, 0x259f & 0xFF}, + {0x25a0 & 0xFF, 0x25ef & 0xFF}, + {0x25f0 & 0xFF, 0x25f7 & 0xFF}, + {0x25f8 & 0xFF, 0x25ff & 0xFF}, + {0x2600 & 0xFF, 0x2603 & 0xFF}, + {0x2604 & 0xFF, 0x2606 & 0xFF}, + {0x2607 & 0xFF, 0x2608 & 0xFF}, + {0x2609 & 0xFF, 0x260d & 0xFF}, + {0x260e & 0xFF, 0x2613 & 0xFF}, + {0x2614 & 0xFF, 0x2614 & 0xFF}, + {0x2615 & 0xFF, 0x2615 & 0xFF}, + {0x2616 & 0xFF, 0x2617 & 0xFF}, + {0x2618 & 0xFF, 0x2619 & 0xFF}, + {0x261a & 0xFF, 0x261f & 0xFF}, + {0x2620 & 0xFF, 0x2623 & 0xFF}, + {0x2624 & 0xFF, 0x2624 & 0xFF}, + {0x2625 & 0xFF, 0x2625 & 0xFF}, + {0x2626 & 0xFF, 0x262a & 0xFF}, + {0x262b & 0xFF, 0x262f & 0xFF}, + {0x2630 & 0xFF, 0x2637 & 0xFF}, + {0x2638 & 0xFF, 0x263c & 0xFF}, + {0x263d & 0xFF, 0x2647 & 0xFF}, + {0x2648 & 0xFF, 0x2653 & 0xFF}, + {0x2654 & 0xFF, 0x265f & 0xFF}, + {0x2660 & 0xFF, 0x2667 & 0xFF}, + {0x2668 & 0xFF, 0x2668 & 0xFF}, + {0x2669 & 0xFF, 0x266c & 0xFF}, + {0x266d & 0xFF, 0x266f & 0xFF}, + {0x2670 & 0xFF, 0x2671 & 0xFF}, + {0x2672 & 0xFF, 0x267d & 0xFF}, + {0x267e & 0xFF, 0x267f & 0xFF}, + {0x2680 & 0xFF, 0x2685 & 0xFF}, + {0x2686 & 0xFF, 0x2689 & 0xFF}, + {0x268a & 0xFF, 0x268b & 0xFF}, + {0x268c & 0xFF, 0x268f & 0xFF}, + {0x2690 & 0xFF, 0x2694 & 0xFF}, + {0x2695 & 0xFF, 0x269a & 0xFF}, + {0x269b & 0xFF, 0x269b & 0xFF}, + {0x269c & 0xFF, 0x269d & 0xFF}, + {0x269e & 0xFF, 0x269f & 0xFF}, + {0x26a0 & 0xFF, 0x26a1 & 0xFF}, + {0x26a2 & 0xFF, 0x26a9 & 0xFF}, + {0x26aa & 0xFF, 0x26ac & 0xFF}, + {0x26ad & 0xFF, 0x26b1 & 0xFF}, + {0x26b2 & 0xFF, 0x26b2 & 0xFF}, + {0x26b3 & 0xFF, 0x26bc & 0xFF}, + {0x26bd & 0xFF, 0x26be & 0xFF}, + {0x26bf & 0xFF, 0x26bf & 0xFF}, + {0x26c0 & 0xFF, 0x26c3 & 0xFF}, + {0x26c4 & 0xFF, 0x26c8 & 0xFF}, + {0x26c9 & 0xFF, 0x26ca & 0xFF}, + {0x26cb & 0xFF, 0x26cb & 0xFF}, + {0x26cc & 0xFF, 0x26cd & 0xFF}, + {0x26ce & 0xFF, 0x26ce & 0xFF}, + {0x26cf & 0xFF, 0x26e1 & 0xFF}, + {0x26e2 & 0xFF, 0x26e2 & 0xFF}, + {0x26e3 & 0xFF, 0x26e3 & 0xFF}, + {0x26e4 & 0xFF, 0x26e7 & 0xFF}, + {0x26e8 & 0xFF, 0x26ff & 0xFF}, + {0x2701 & 0xFF, 0x2709 & 0xFF}, + {0x270a & 0xFF, 0x270d & 0xFF}, + {0x270e & 0xFF, 0x2718 & 0xFF}, + {0x2719 & 0xFF, 0x2720 & 0xFF}, + {0x2721 & 0xFF, 0x274b & 0xFF}, + {0x274c & 0xFF, 0x2752 & 0xFF}, + {0x2753 & 0xFF, 0x2755 & 0xFF}, + {0x2756 & 0xFF, 0x275a & 0xFF}, + {0x275b & 0xFF, 0x2767 & 0xFF}, + {0x2768 & 0xFF, 0x2775 & 0xFF}, + {0x2776 & 0xFF, 0x2793 & 0xFF}, + {0x2794 & 0xFF, 0x2794 & 0xFF}, + {0x2795 & 0xFF, 0x2797 & 0xFF}, + {0x2798 & 0xFF, 0x27af & 0xFF}, + {0x27b0 & 0xFF, 0x27b0 & 0xFF}, + {0x27b1 & 0xFF, 0x27be & 0xFF}, + {0x27bf & 0xFF, 0x27bf & 0xFF}, + {0x27c0 & 0xFF, 0x27c9 & 0xFF}, + {0x27ca & 0xFF, 0x27cb & 0xFF}, + {0x27cc & 0xFF, 0x27cc & 0xFF}, + {0x27cd & 0xFF, 0x27cf & 0xFF}, + {0x27d0 & 0xFF, 0x27d0 & 0xFF}, + {0x27d1 & 0xFF, 0x27d4 & 0xFF}, + {0x27d5 & 0xFF, 0x27d9 & 0xFF}, + {0x27da & 0xFF, 0x27df & 0xFF}, + {0x27e0 & 0xFF, 0x27e5 & 0xFF}, + {0x27e6 & 0xFF, 0x27ef & 0xFF}, + {0x27f0 & 0xFF, 0x27f4 & 0xFF}, + {0x27f5 & 0xFF, 0x27ff & 0xFF}, + {0x2800 & 0xFF, 0x28ff & 0xFF}, + {0x2900 & 0xFF, 0x2918 & 0xFF}, + {0x2919 & 0xFF, 0x291c & 0xFF}, + {0x291d & 0xFF, 0x2926 & 0xFF}, + {0x2927 & 0xFF, 0x2932 & 0xFF}, + {0x2933 & 0xFF, 0x2949 & 0xFF}, + {0x294a & 0xFF, 0x296f & 0xFF}, + {0x2970 & 0xFF, 0x297b & 0xFF}, + {0x297c & 0xFF, 0x297f & 0xFF}, + {0x2980 & 0xFF, 0x2982 & 0xFF}, + {0x2983 & 0xFF, 0x2998 & 0xFF}, + {0x2999 & 0xFF, 0x299a & 0xFF}, + {0x299b & 0xFF, 0x29af & 0xFF}, + {0x29b0 & 0xFF, 0x29b4 & 0xFF}, + {0x29b5 & 0xFF, 0x29d7 & 0xFF}, + {0x29d8 & 0xFF, 0x29db & 0xFF}, + {0x29dc & 0xFF, 0x29e2 & 0xFF}, + {0x29e3 & 0xFF, 0x29e6 & 0xFF}, + {0x29e7 & 0xFF, 0x29ed & 0xFF}, + {0x29ee & 0xFF, 0x29f3 & 0xFF}, + {0x29f4 & 0xFF, 0x29f4 & 0xFF}, + {0x29f5 & 0xFF, 0x29f7 & 0xFF}, + {0x29f8 & 0xFF, 0x29f9 & 0xFF}, + {0x29fa & 0xFF, 0x29fb & 0xFF}, + {0x29fc & 0xFF, 0x29fd & 0xFF}, + {0x29fe & 0xFF, 0x29ff & 0xFF}, + {0x2a00 & 0xFF, 0x2a21 & 0xFF}, + {0x2a22 & 0xFF, 0x2a65 & 0xFF}, + {0x2a66 & 0xFF, 0x2ad8 & 0xFF}, + {0x2ad9 & 0xFF, 0x2add & 0xFF}, + {0x2ade & 0xFF, 0x2aed & 0xFF}, + {0x2aee & 0xFF, 0x2af6 & 0xFF}, + {0x2af7 & 0xFF, 0x2afb & 0xFF}, + {0x2afc & 0xFF, 0x2aff & 0xFF}, + {0x2b00 & 0xFF, 0x2b0d & 0xFF}, + {0x2b0e & 0xFF, 0x2b11 & 0xFF}, + {0x2b12 & 0xFF, 0x2b2f & 0xFF}, + {0x2b30 & 0xFF, 0x2b4c & 0xFF}, + {0x2b50 & 0xFF, 0x2b52 & 0xFF}, + {0x2b53 & 0xFF, 0x2b54 & 0xFF}, + {0x2b55 & 0xFF, 0x2b55 & 0xFF}, + {0x2b56 & 0xFF, 0x2b59 & 0xFF}, + {0x2c00 & 0xFF, 0x2c2e & 0xFF}, + {0x2c30 & 0xFF, 0x2c5e & 0xFF}, + {0x2c60 & 0xFF, 0x2c74 & 0xFF}, + {0x2c75 & 0xFF, 0x2c76 & 0xFF}, + {0x2c77 & 0xFF, 0x2c7d & 0xFF}, + {0x2c7e & 0xFF, 0x2cb1 & 0xFF}, + {0x2cb2 & 0xFF, 0x2ce3 & 0xFF}, + {0x2ce4 & 0xFF, 0x2cea & 0xFF}, + {0x2ceb & 0xFF, 0x2cee & 0xFF}, + {0x2cef & 0xFF, 0x2cf1 & 0xFF}, + {0x2cf2 & 0xFF, 0x2cf3 & 0xFF}, + {0x2cf9 & 0xFF, 0x2cfc & 0xFF}, + {0x2cfd & 0xFF, 0x2cfd & 0xFF}, + {0x2cfe & 0xFF, 0x2cff & 0xFF}, + {0x2d00 & 0xFF, 0x2d25 & 0xFF}, + {0x2d27 & 0xFF, 0x2d27 & 0xFF}, + {0x2d2d & 0xFF, 0x2d2d & 0xFF}, + {0x2d30 & 0xFF, 0x2d67 & 0xFF}, + {0x2d6f & 0xFF, 0x2d6f & 0xFF}, + {0x2d70 & 0xFF, 0x2d70 & 0xFF}, + {0x2d7f & 0xFF, 0x2d7f & 0xFF}, + {0x2d80 & 0xFF, 0x2d96 & 0xFF}, + {0x2da0 & 0xFF, 0x2da6 & 0xFF}, + {0x2da8 & 0xFF, 0x2dae & 0xFF}, + {0x2db0 & 0xFF, 0x2db6 & 0xFF}, + {0x2db8 & 0xFF, 0x2dbe & 0xFF}, + {0x2dc0 & 0xFF, 0x2dc6 & 0xFF}, + {0x2dc8 & 0xFF, 0x2dce & 0xFF}, + {0x2dd0 & 0xFF, 0x2dd6 & 0xFF}, + {0x2dd8 & 0xFF, 0x2dde & 0xFF}, + {0x2de0 & 0xFF, 0x2dff & 0xFF}, + {0x2e00 & 0xFF, 0x2e0d & 0xFF}, + {0x2e0e & 0xFF, 0x2e16 & 0xFF}, + {0x2e17 & 0xFF, 0x2e17 & 0xFF}, + {0x2e18 & 0xFF, 0x2e19 & 0xFF}, + {0x2e1a & 0xFF, 0x2e1b & 0xFF}, + {0x2e1c & 0xFF, 0x2e1d & 0xFF}, + {0x2e1e & 0xFF, 0x2e1f & 0xFF}, + {0x2e20 & 0xFF, 0x2e29 & 0xFF}, + {0x2e2a & 0xFF, 0x2e31 & 0xFF}, + {0x2e32 & 0xFF, 0x2e32 & 0xFF}, + {0x2e33 & 0xFF, 0x2e34 & 0xFF}, + {0x2e35 & 0xFF, 0x2e39 & 0xFF}, + {0x2e3a & 0xFF, 0x2e3b & 0xFF}, + {0x2e80 & 0xFF, 0x2e99 & 0xFF}, + {0x2e9b & 0xFF, 0x2ef3 & 0xFF}, + {0x2f00 & 0xFF, 0x2fd5 & 0xFF}, + {0x2ff0 & 0xFF, 0x2ffb & 0xFF}, + {0x3000 & 0xFF, 0x3000 & 0xFF}, + {0x3001 & 0xFF, 0x3003 & 0xFF}, + {0x3004 & 0xFF, 0x3004 & 0xFF}, + {0x3005 & 0xFF, 0x3005 & 0xFF}, + {0x3006 & 0xFF, 0x3006 & 0xFF}, + {0x3007 & 0xFF, 0x3007 & 0xFF}, + {0x3008 & 0xFF, 0x300b & 0xFF}, + {0x300c & 0xFF, 0x300f & 0xFF}, + {0x3010 & 0xFF, 0x3011 & 0xFF}, + {0x3012 & 0xFF, 0x3013 & 0xFF}, + {0x3014 & 0xFF, 0x301b & 0xFF}, + {0x301c & 0xFF, 0x301c & 0xFF}, + {0x301d & 0xFF, 0x301f & 0xFF}, + {0x3020 & 0xFF, 0x3020 & 0xFF}, + {0x3021 & 0xFF, 0x3029 & 0xFF}, + {0x302a & 0xFF, 0x302f & 0xFF}, + {0x3030 & 0xFF, 0x3030 & 0xFF}, + {0x3031 & 0xFF, 0x3035 & 0xFF}, + {0x3036 & 0xFF, 0x3037 & 0xFF}, + {0x3038 & 0xFF, 0x303a & 0xFF}, + {0x303b & 0xFF, 0x303b & 0xFF}, + {0x303c & 0xFF, 0x303c & 0xFF}, + {0x303d & 0xFF, 0x303d & 0xFF}, + {0x303e & 0xFF, 0x303f & 0xFF}, + {0x3041 & 0xFF, 0x3096 & 0xFF}, + {0x3099 & 0xFF, 0x309c & 0xFF}, + {0x309d & 0xFF, 0x309e & 0xFF}, + {0x309f & 0xFF, 0x309f & 0xFF}, + {0x30a0 & 0xFF, 0x30a0 & 0xFF}, + {0x30a1 & 0xFF, 0x30fa & 0xFF}, + {0x30fb & 0xFF, 0x30fb & 0xFF}, + {0x30fc & 0xFF, 0x30fc & 0xFF}, + {0x30fd & 0xFF, 0x30fe & 0xFF}, + {0x30ff & 0xFF, 0x30ff & 0xFF}, + {0x3105 & 0xFF, 0x312d & 0xFF}, + {0x3131 & 0xFF, 0x314e & 0xFF}, + {0x314f & 0xFF, 0x3163 & 0xFF}, + {0x3164 & 0xFF, 0x3164 & 0xFF}, + {0x3165 & 0xFF, 0x3186 & 0xFF}, + {0x3187 & 0xFF, 0x318e & 0xFF}, + {0x3190 & 0xFF, 0x3191 & 0xFF}, + {0x3192 & 0xFF, 0x319f & 0xFF}, + {0x31a0 & 0xFF, 0x31b3 & 0xFF}, + {0x31b4 & 0xFF, 0x31b7 & 0xFF}, + {0x31b8 & 0xFF, 0x31ba & 0xFF}, + {0x31c0 & 0xFF, 0x31e3 & 0xFF}, + {0x31f0 & 0xFF, 0x31ff & 0xFF}, + {0x3200 & 0xFF, 0x320d & 0xFF}, + {0x320e & 0xFF, 0x321c & 0xFF}, + {0x321d & 0xFF, 0x321e & 0xFF}, + {0x3220 & 0xFF, 0x3243 & 0xFF}, + {0x3244 & 0xFF, 0x3247 & 0xFF}, + {0x3248 & 0xFF, 0x324f & 0xFF}, + {0x3250 & 0xFF, 0x3250 & 0xFF}, + {0x3251 & 0xFF, 0x325f & 0xFF}, + {0x3260 & 0xFF, 0x326d & 0xFF}, + {0x326e & 0xFF, 0x327b & 0xFF}, + {0x327c & 0xFF, 0x327d & 0xFF}, + {0x327e & 0xFF, 0x327e & 0xFF}, + {0x327f & 0xFF, 0x327f & 0xFF}, + {0x3280 & 0xFF, 0x32b0 & 0xFF}, + {0x32b1 & 0xFF, 0x32bf & 0xFF}, + {0x32c0 & 0xFF, 0x32cb & 0xFF}, + {0x32cc & 0xFF, 0x32cf & 0xFF}, + {0x32d0 & 0xFF, 0x32fe & 0xFF}, + {0x3300 & 0xFF, 0x3357 & 0xFF}, + {0x3358 & 0xFF, 0x3370 & 0xFF}, + {0x3371 & 0xFF, 0x337a & 0xFF}, + {0x337b & 0xFF, 0x337f & 0xFF}, + {0x3380 & 0xFF, 0x33df & 0xFF}, + {0x33e0 & 0xFF, 0x33fe & 0xFF}, + {0x33ff & 0xFF, 0x33ff & 0xFF}, + {0x4dc0 & 0xFF, 0x4dff & 0xFF}, + {0xa000 & 0xFF, 0xa014 & 0xFF}, + {0xa015 & 0xFF, 0xa015 & 0xFF}, + {0xa016 & 0xFF, 0xa0ff & 0xFF}, + {0xa100 & 0xFF, 0xa1ff & 0xFF}, + {0xa200 & 0xFF, 0xa2ff & 0xFF}, + {0xa300 & 0xFF, 0xa3ff & 0xFF}, + {0xa400 & 0xFF, 0xa48c & 0xFF}, + {0xa490 & 0xFF, 0xa4c6 & 0xFF}, + {0xa4d0 & 0xFF, 0xa4ed & 0xFF}, + {0xa4ee & 0xFF, 0xa4f7 & 0xFF}, + {0xa4f8 & 0xFF, 0xa4fd & 0xFF}, + {0xa4fe & 0xFF, 0xa4ff & 0xFF}, + {0xa500 & 0xFF, 0xa5ff & 0xFF}, + {0xa600 & 0xFF, 0xa60a & 0xFF}, + {0xa60b & 0xFF, 0xa60b & 0xFF}, + {0xa60c & 0xFF, 0xa60c & 0xFF}, + {0xa60d & 0xFF, 0xa60f & 0xFF}, + {0xa610 & 0xFF, 0xa612 & 0xFF}, + {0xa613 & 0xFF, 0xa61f & 0xFF}, + {0xa620 & 0xFF, 0xa629 & 0xFF}, + {0xa62a & 0xFF, 0xa62b & 0xFF}, + {0xa640 & 0xFF, 0xa66e & 0xFF}, + {0xa66f & 0xFF, 0xa66f & 0xFF}, + {0xa670 & 0xFF, 0xa672 & 0xFF}, + {0xa673 & 0xFF, 0xa673 & 0xFF}, + {0xa674 & 0xFF, 0xa67b & 0xFF}, + {0xa67c & 0xFF, 0xa67d & 0xFF}, + {0xa67e & 0xFF, 0xa67e & 0xFF}, + {0xa67f & 0xFF, 0xa67f & 0xFF}, + {0xa680 & 0xFF, 0xa697 & 0xFF}, + {0xa69f & 0xFF, 0xa69f & 0xFF}, + {0xa6a0 & 0xFF, 0xa6ef & 0xFF}, + {0xa6f0 & 0xFF, 0xa6f1 & 0xFF}, + {0xa6f2 & 0xFF, 0xa6f7 & 0xFF}, + {0xa700 & 0xFF, 0xa71f & 0xFF}, + {0xa720 & 0xFF, 0xa721 & 0xFF}, + {0xa722 & 0xFF, 0xa787 & 0xFF}, + {0xa788 & 0xFF, 0xa78a & 0xFF}, + {0xa78b & 0xFF, 0xa78d & 0xFF}, + {0xa78e & 0xFF, 0xa78e & 0xFF}, + {0xa790 & 0xFF, 0xa793 & 0xFF}, + {0xa7a0 & 0xFF, 0xa7a9 & 0xFF}, + {0xa7aa & 0xFF, 0xa7aa & 0xFF}, + {0xa7f8 & 0xFF, 0xa7f9 & 0xFF}, + {0xa7fa & 0xFF, 0xa7fa & 0xFF}, + {0xa7fb & 0xFF, 0xa7ff & 0xFF}, + {0xa800 & 0xFF, 0xa801 & 0xFF}, + {0xa802 & 0xFF, 0xa802 & 0xFF}, + {0xa803 & 0xFF, 0xa805 & 0xFF}, + {0xa806 & 0xFF, 0xa806 & 0xFF}, + {0xa807 & 0xFF, 0xa822 & 0xFF}, + {0xa823 & 0xFF, 0xa827 & 0xFF}, + {0xa828 & 0xFF, 0xa82b & 0xFF}, + {0xa830 & 0xFF, 0xa835 & 0xFF}, + {0xa836 & 0xFF, 0xa837 & 0xFF}, + {0xa838 & 0xFF, 0xa838 & 0xFF}, + {0xa839 & 0xFF, 0xa839 & 0xFF}, + {0xa840 & 0xFF, 0xa85c & 0xFF}, + {0xa85d & 0xFF, 0xa85d & 0xFF}, + {0xa85e & 0xFF, 0xa861 & 0xFF}, + {0xa862 & 0xFF, 0xa865 & 0xFF}, + {0xa866 & 0xFF, 0xa866 & 0xFF}, + {0xa867 & 0xFF, 0xa868 & 0xFF}, + {0xa869 & 0xFF, 0xa870 & 0xFF}, + {0xa871 & 0xFF, 0xa871 & 0xFF}, + {0xa872 & 0xFF, 0xa872 & 0xFF}, + {0xa873 & 0xFF, 0xa873 & 0xFF}, + {0xa874 & 0xFF, 0xa875 & 0xFF}, + {0xa876 & 0xFF, 0xa877 & 0xFF}, + {0xa880 & 0xFF, 0xa881 & 0xFF}, + {0xa882 & 0xFF, 0xa891 & 0xFF}, + {0xa892 & 0xFF, 0xa8b4 & 0xFF}, + {0xa8b5 & 0xFF, 0xa8c3 & 0xFF}, + {0xa8c4 & 0xFF, 0xa8c4 & 0xFF}, + {0xa8ce & 0xFF, 0xa8cf & 0xFF}, + {0xa8d0 & 0xFF, 0xa8d9 & 0xFF}, + {0xa8e0 & 0xFF, 0xa8e9 & 0xFF}, + {0xa8ea & 0xFF, 0xa8f1 & 0xFF}, + {0xa8f2 & 0xFF, 0xa8f7 & 0xFF}, + {0xa8f8 & 0xFF, 0xa8fa & 0xFF}, + {0xa8fb & 0xFF, 0xa8fb & 0xFF}, + {0xa900 & 0xFF, 0xa909 & 0xFF}, + {0xa90a & 0xFF, 0xa925 & 0xFF}, + {0xa926 & 0xFF, 0xa92a & 0xFF}, + {0xa92b & 0xFF, 0xa92d & 0xFF}, + {0xa92e & 0xFF, 0xa92f & 0xFF}, + {0xa930 & 0xFF, 0xa946 & 0xFF}, + {0xa947 & 0xFF, 0xa94e & 0xFF}, + {0xa94f & 0xFF, 0xa952 & 0xFF}, + {0xa953 & 0xFF, 0xa953 & 0xFF}, + {0xa95f & 0xFF, 0xa95f & 0xFF}, + {0xa960 & 0xFF, 0xa97c & 0xFF}, + {0xa980 & 0xFF, 0xa983 & 0xFF}, + {0xa984 & 0xFF, 0xa9b2 & 0xFF}, + {0xa9b3 & 0xFF, 0xa9b3 & 0xFF}, + {0xa9b4 & 0xFF, 0xa9bc & 0xFF}, + {0xa9bd & 0xFF, 0xa9bf & 0xFF}, + {0xa9c0 & 0xFF, 0xa9c0 & 0xFF}, + {0xa9c1 & 0xFF, 0xa9cd & 0xFF}, + {0xa9cf & 0xFF, 0xa9cf & 0xFF}, + {0xa9d0 & 0xFF, 0xa9d9 & 0xFF}, + {0xa9de & 0xFF, 0xa9df & 0xFF}, + {0xaa00 & 0xFF, 0xaa05 & 0xFF}, + {0xaa06 & 0xFF, 0xaa28 & 0xFF}, + {0xaa29 & 0xFF, 0xaa32 & 0xFF}, + {0xaa33 & 0xFF, 0xaa36 & 0xFF}, + {0xaa40 & 0xFF, 0xaa4d & 0xFF}, + {0xaa50 & 0xFF, 0xaa59 & 0xFF}, + {0xaa5c & 0xFF, 0xaa5f & 0xFF}, + {0xaa60 & 0xFF, 0xaa6f & 0xFF}, + {0xaa70 & 0xFF, 0xaa70 & 0xFF}, + {0xaa71 & 0xFF, 0xaa73 & 0xFF}, + {0xaa74 & 0xFF, 0xaa76 & 0xFF}, + {0xaa77 & 0xFF, 0xaa79 & 0xFF}, + {0xaa7a & 0xFF, 0xaa7a & 0xFF}, + {0xaa7b & 0xFF, 0xaa7b & 0xFF}, + {0xaa80 & 0xFF, 0xaaaf & 0xFF}, + {0xaab0 & 0xFF, 0xaabe & 0xFF}, + {0xaabf & 0xFF, 0xaabf & 0xFF}, + {0xaac0 & 0xFF, 0xaac0 & 0xFF}, + {0xaac1 & 0xFF, 0xaac1 & 0xFF}, + {0xaac2 & 0xFF, 0xaac2 & 0xFF}, + {0xaadb & 0xFF, 0xaadc & 0xFF}, + {0xaadd & 0xFF, 0xaadd & 0xFF}, + {0xaade & 0xFF, 0xaadf & 0xFF}, + {0xaae0 & 0xFF, 0xaae1 & 0xFF}, + {0xaae2 & 0xFF, 0xaaea & 0xFF}, + {0xaaeb & 0xFF, 0xaaef & 0xFF}, + {0xaaf0 & 0xFF, 0xaaf1 & 0xFF}, + {0xaaf2 & 0xFF, 0xaaf2 & 0xFF}, + {0xaaf3 & 0xFF, 0xaaf4 & 0xFF}, + {0xaaf5 & 0xFF, 0xaaf5 & 0xFF}, + {0xaaf6 & 0xFF, 0xaaf6 & 0xFF}, + {0xab01 & 0xFF, 0xab06 & 0xFF}, + {0xab09 & 0xFF, 0xab0e & 0xFF}, + {0xab11 & 0xFF, 0xab16 & 0xFF}, + {0xab20 & 0xFF, 0xab26 & 0xFF}, + {0xab28 & 0xFF, 0xab2e & 0xFF}, + {0xabc0 & 0xFF, 0xabda & 0xFF}, + {0xabdb & 0xFF, 0xabe2 & 0xFF}, + {0xabe3 & 0xFF, 0xabea & 0xFF}, + {0xabeb & 0xFF, 0xabed & 0xFF}, + {0xabf0 & 0xFF, 0xabf9 & 0xFF}, + {0xd7b0 & 0xFF, 0xd7c6 & 0xFF}, + {0xd7cb & 0xFF, 0xd7fb & 0xFF}, + {0xf900 & 0xFF, 0xf9ff & 0xFF}, + {0xfa00 & 0xFF, 0xfa6d & 0xFF}, + {0xfa70 & 0xFF, 0xfad9 & 0xFF}, + {0xfb00 & 0xFF, 0xfb06 & 0xFF}, + {0xfb13 & 0xFF, 0xfb17 & 0xFF}, + {0xfb1d & 0xFF, 0xfb36 & 0xFF}, + {0xfb38 & 0xFF, 0xfb3c & 0xFF}, + {0xfb3e & 0xFF, 0xfb3e & 0xFF}, + {0xfb40 & 0xFF, 0xfb41 & 0xFF}, + {0xfb43 & 0xFF, 0xfb44 & 0xFF}, + {0xfb46 & 0xFF, 0xfbb1 & 0xFF}, + {0xfbb2 & 0xFF, 0xfbc1 & 0xFF}, + {0xfbd3 & 0xFF, 0xfbe9 & 0xFF}, + {0xfbea & 0xFF, 0xfbff & 0xFF}, + {0xfc00 & 0xFF, 0xfcff & 0xFF}, + {0xfd00 & 0xFF, 0xfd3d & 0xFF}, + {0xfd3e & 0xFF, 0xfd3f & 0xFF}, + {0xfd50 & 0xFF, 0xfd8f & 0xFF}, + {0xfd92 & 0xFF, 0xfdc7 & 0xFF}, + {0xfdf0 & 0xFF, 0xfdfb & 0xFF}, + {0xfdfc & 0xFF, 0xfdfc & 0xFF}, + {0xfdfd & 0xFF, 0xfdfd & 0xFF}, + {0xfe00 & 0xFF, 0xfe0f & 0xFF}, + {0xfe10 & 0xFF, 0xfe19 & 0xFF}, + {0xfe20 & 0xFF, 0xfe26 & 0xFF}, + {0xfe30 & 0xFF, 0xfe30 & 0xFF}, + {0xfe31 & 0xFF, 0xfe32 & 0xFF}, + {0xfe33 & 0xFF, 0xfe34 & 0xFF}, + {0xfe35 & 0xFF, 0xfe44 & 0xFF}, + {0xfe45 & 0xFF, 0xfe46 & 0xFF}, + {0xfe47 & 0xFF, 0xfe48 & 0xFF}, + {0xfe49 & 0xFF, 0xfe4f & 0xFF}, + {0xfe50 & 0xFF, 0xfe52 & 0xFF}, + {0xfe54 & 0xFF, 0xfe57 & 0xFF}, + {0xfe58 & 0xFF, 0xfe58 & 0xFF}, + {0xfe59 & 0xFF, 0xfe5e & 0xFF}, + {0xfe5f & 0xFF, 0xfe66 & 0xFF}, + {0xfe68 & 0xFF, 0xfe6b & 0xFF}, + {0xfe70 & 0xFF, 0xfe72 & 0xFF}, + {0xfe73 & 0xFF, 0xfe73 & 0xFF}, + {0xfe74 & 0xFF, 0xfe74 & 0xFF}, + {0xfe76 & 0xFF, 0xfe7f & 0xFF}, + {0xfe80 & 0xFF, 0xfefc & 0xFF}, + {0xfeff & 0xFF, 0xfeff & 0xFF}, + {0xff01 & 0xFF, 0xff03 & 0xFF}, + {0xff04 & 0xFF, 0xff04 & 0xFF}, + {0xff05 & 0xFF, 0xff07 & 0xFF}, + {0xff08 & 0xFF, 0xff09 & 0xFF}, + {0xff0a & 0xFF, 0xff0a & 0xFF}, + {0xff0b & 0xFF, 0xff0b & 0xFF}, + {0xff0c & 0xFF, 0xff0c & 0xFF}, + {0xff0d & 0xFF, 0xff0d & 0xFF}, + {0xff0e & 0xFF, 0xff0f & 0xFF}, + {0xff10 & 0xFF, 0xff19 & 0xFF}, + {0xff1a & 0xFF, 0xff1b & 0xFF}, + {0xff1c & 0xFF, 0xff1e & 0xFF}, + {0xff1f & 0xFF, 0xff20 & 0xFF}, + {0xff21 & 0xFF, 0xff3a & 0xFF}, + {0xff3b & 0xFF, 0xff3b & 0xFF}, + {0xff3c & 0xFF, 0xff3c & 0xFF}, + {0xff3d & 0xFF, 0xff3d & 0xFF}, + {0xff3e & 0xFF, 0xff3e & 0xFF}, + {0xff3f & 0xFF, 0xff3f & 0xFF}, + {0xff40 & 0xFF, 0xff40 & 0xFF}, + {0xff41 & 0xFF, 0xff5a & 0xFF}, + {0xff5b & 0xFF, 0xff5b & 0xFF}, + {0xff5c & 0xFF, 0xff5c & 0xFF}, + {0xff5d & 0xFF, 0xff5d & 0xFF}, + {0xff5e & 0xFF, 0xff5e & 0xFF}, + {0xff5f & 0xFF, 0xff60 & 0xFF}, + {0xff61 & 0xFF, 0xff61 & 0xFF}, + {0xff62 & 0xFF, 0xff63 & 0xFF}, + {0xff64 & 0xFF, 0xff65 & 0xFF}, + {0xff66 & 0xFF, 0xff6f & 0xFF}, + {0xff70 & 0xFF, 0xff70 & 0xFF}, + {0xff71 & 0xFF, 0xff9d & 0xFF}, + {0xff9e & 0xFF, 0xff9f & 0xFF}, + {0xffa0 & 0xFF, 0xffa0 & 0xFF}, + {0xffa1 & 0xFF, 0xffbe & 0xFF}, + {0xffc2 & 0xFF, 0xffc7 & 0xFF}, + {0xffca & 0xFF, 0xffcf & 0xFF}, + {0xffd2 & 0xFF, 0xffd7 & 0xFF}, + {0xffda & 0xFF, 0xffdc & 0xFF}, + {0xffe0 & 0xFF, 0xffe1 & 0xFF}, + {0xffe2 & 0xFF, 0xffe2 & 0xFF}, + {0xffe3 & 0xFF, 0xffe3 & 0xFF}, + {0xffe4 & 0xFF, 0xffe4 & 0xFF}, + {0xffe5 & 0xFF, 0xffe6 & 0xFF}, + {0xffe8 & 0xFF, 0xffe8 & 0xFF}, + {0xffe9 & 0xFF, 0xffec & 0xFF}, + {0xffed & 0xFF, 0xffee & 0xFF}, + {0xfff9 & 0xFF, 0xfffb & 0xFF}, + {0xfffc & 0xFF, 0xfffd & 0xFF}, + {0x10000 & 0xFF, 0x1000b & 0xFF}, + {0x1000d & 0xFF, 0x10026 & 0xFF}, + {0x10028 & 0xFF, 0x1003a & 0xFF}, + {0x1003c & 0xFF, 0x1003d & 0xFF}, + {0x1003f & 0xFF, 0x1004d & 0xFF}, + {0x10050 & 0xFF, 0x1005d & 0xFF}, + {0x10080 & 0xFF, 0x1008d & 0xFF}, + {0x1008e & 0xFF, 0x10094 & 0xFF}, + {0x10095 & 0xFF, 0x10099 & 0xFF}, + {0x1009a & 0xFF, 0x1009c & 0xFF}, + {0x1009d & 0xFF, 0x100dd & 0xFF}, + {0x100de & 0xFF, 0x100fa & 0xFF}, + {0x10100 & 0xFF, 0x10102 & 0xFF}, + {0x10107 & 0xFF, 0x10133 & 0xFF}, + {0x10137 & 0xFF, 0x1013f & 0xFF}, + {0x10140 & 0xFF, 0x10174 & 0xFF}, + {0x10175 & 0xFF, 0x10178 & 0xFF}, + {0x10179 & 0xFF, 0x10189 & 0xFF}, + {0x1018a & 0xFF, 0x1018a & 0xFF}, + {0x10190 & 0xFF, 0x10195 & 0xFF}, + {0x10196 & 0xFF, 0x1019a & 0xFF}, + {0x1019b & 0xFF, 0x1019b & 0xFF}, + {0x101d0 & 0xFF, 0x101fc & 0xFF}, + {0x101fd & 0xFF, 0x101fd & 0xFF}, + {0x10280 & 0xFF, 0x1029c & 0xFF}, + {0x102a0 & 0xFF, 0x102d0 & 0xFF}, + {0x10300 & 0xFF, 0x1031e & 0xFF}, + {0x10320 & 0xFF, 0x10323 & 0xFF}, + {0x10330 & 0xFF, 0x1034a & 0xFF}, + {0x10380 & 0xFF, 0x1039d & 0xFF}, + {0x1039f & 0xFF, 0x1039f & 0xFF}, + {0x103a0 & 0xFF, 0x103a2 & 0xFF}, + {0x103a3 & 0xFF, 0x103c3 & 0xFF}, + {0x103c8 & 0xFF, 0x103cf & 0xFF}, + {0x103d0 & 0xFF, 0x103d0 & 0xFF}, + {0x103d1 & 0xFF, 0x103d5 & 0xFF}, + {0x10400 & 0xFF, 0x1044f & 0xFF}, + {0x10450 & 0xFF, 0x10465 & 0xFF}, + {0x10466 & 0xFF, 0x1047f & 0xFF}, + {0x10480 & 0xFF, 0x1049d & 0xFF}, + {0x104a0 & 0xFF, 0x104a9 & 0xFF}, + {0x10800 & 0xFF, 0x10805 & 0xFF}, + {0x10808 & 0xFF, 0x10808 & 0xFF}, + {0x1080a & 0xFF, 0x10835 & 0xFF}, + {0x10837 & 0xFF, 0x10838 & 0xFF}, + {0x1083c & 0xFF, 0x1083c & 0xFF}, + {0x1083f & 0xFF, 0x1083f & 0xFF}, + {0x10840 & 0xFF, 0x10855 & 0xFF}, + {0x10857 & 0xFF, 0x10857 & 0xFF}, + {0x10858 & 0xFF, 0x1085f & 0xFF}, + {0x10900 & 0xFF, 0x10915 & 0xFF}, + {0x10916 & 0xFF, 0x1091b & 0xFF}, + {0x1091f & 0xFF, 0x1091f & 0xFF}, + {0x10920 & 0xFF, 0x10939 & 0xFF}, + {0x1093f & 0xFF, 0x1093f & 0xFF}, + {0x10980 & 0xFF, 0x10983 & 0xFF}, + {0x10984 & 0xFF, 0x1099d & 0xFF}, + {0x1099e & 0xFF, 0x1099f & 0xFF}, + {0x109a0 & 0xFF, 0x109a3 & 0xFF}, + {0x109a4 & 0xFF, 0x109b7 & 0xFF}, + {0x109be & 0xFF, 0x109bf & 0xFF}, + {0x10a00 & 0xFF, 0x10a00 & 0xFF}, + {0x10a01 & 0xFF, 0x10a03 & 0xFF}, + {0x10a05 & 0xFF, 0x10a06 & 0xFF}, + {0x10a0c & 0xFF, 0x10a0c & 0xFF}, + {0x10a0d & 0xFF, 0x10a0f & 0xFF}, + {0x10a10 & 0xFF, 0x10a13 & 0xFF}, + {0x10a15 & 0xFF, 0x10a17 & 0xFF}, + {0x10a19 & 0xFF, 0x10a33 & 0xFF}, + {0x10a38 & 0xFF, 0x10a3a & 0xFF}, + {0x10a3f & 0xFF, 0x10a3f & 0xFF}, + {0x10a40 & 0xFF, 0x10a43 & 0xFF}, + {0x10a44 & 0xFF, 0x10a47 & 0xFF}, + {0x10a50 & 0xFF, 0x10a58 & 0xFF}, + {0x10a60 & 0xFF, 0x10a7c & 0xFF}, + {0x10a7d & 0xFF, 0x10a7f & 0xFF}, + {0x10b00 & 0xFF, 0x10b0f & 0xFF}, + {0x10b10 & 0xFF, 0x10b35 & 0xFF}, + {0x10b39 & 0xFF, 0x10b3f & 0xFF}, + {0x10b40 & 0xFF, 0x10b55 & 0xFF}, + {0x10b58 & 0xFF, 0x10b5f & 0xFF}, + {0x10b60 & 0xFF, 0x10b72 & 0xFF}, + {0x10b78 & 0xFF, 0x10b7f & 0xFF}, + {0x10c00 & 0xFF, 0x10c08 & 0xFF}, + {0x10c09 & 0xFF, 0x10c48 & 0xFF}, + {0x10e60 & 0xFF, 0x10e68 & 0xFF}, + {0x10e69 & 0xFF, 0x10e7a & 0xFF}, + {0x10e7b & 0xFF, 0x10e7e & 0xFF}, + {0x11000 & 0xFF, 0x11002 & 0xFF}, + {0x11003 & 0xFF, 0x11004 & 0xFF}, + {0x11005 & 0xFF, 0x11012 & 0xFF}, + {0x11013 & 0xFF, 0x11037 & 0xFF}, + {0x11038 & 0xFF, 0x11045 & 0xFF}, + {0x11046 & 0xFF, 0x11046 & 0xFF}, + {0x11047 & 0xFF, 0x1104d & 0xFF}, + {0x11052 & 0xFF, 0x11065 & 0xFF}, + {0x11066 & 0xFF, 0x1106f & 0xFF}, + {0x11080 & 0xFF, 0x11082 & 0xFF}, + {0x11083 & 0xFF, 0x1108c & 0xFF}, + {0x1108d & 0xFF, 0x110af & 0xFF}, + {0x110b0 & 0xFF, 0x110b8 & 0xFF}, + {0x110b9 & 0xFF, 0x110b9 & 0xFF}, + {0x110ba & 0xFF, 0x110ba & 0xFF}, + {0x110bb & 0xFF, 0x110bc & 0xFF}, + {0x110bd & 0xFF, 0x110bd & 0xFF}, + {0x110be & 0xFF, 0x110c1 & 0xFF}, + {0x110d0 & 0xFF, 0x110e1 & 0xFF}, + {0x110e2 & 0xFF, 0x110e7 & 0xFF}, + {0x110e8 & 0xFF, 0x110e8 & 0xFF}, + {0x110f0 & 0xFF, 0x110f9 & 0xFF}, + {0x11100 & 0xFF, 0x11102 & 0xFF}, + {0x11103 & 0xFF, 0x11106 & 0xFF}, + {0x11107 & 0xFF, 0x11126 & 0xFF}, + {0x11127 & 0xFF, 0x11132 & 0xFF}, + {0x11133 & 0xFF, 0x11134 & 0xFF}, + {0x11136 & 0xFF, 0x1113f & 0xFF}, + {0x11140 & 0xFF, 0x11143 & 0xFF}, + {0x11180 & 0xFF, 0x11182 & 0xFF}, + {0x11183 & 0xFF, 0x11190 & 0xFF}, + {0x11191 & 0xFF, 0x111b2 & 0xFF}, + {0x111b3 & 0xFF, 0x111bf & 0xFF}, + {0x111c0 & 0xFF, 0x111c0 & 0xFF}, + {0x111c1 & 0xFF, 0x111c3 & 0xFF}, + {0x111c4 & 0xFF, 0x111c4 & 0xFF}, + {0x111c5 & 0xFF, 0x111c8 & 0xFF}, + {0x111d0 & 0xFF, 0x111d9 & 0xFF}, + {0x11680 & 0xFF, 0x11689 & 0xFF}, + {0x1168a & 0xFF, 0x116aa & 0xFF}, + {0x116ab & 0xFF, 0x116ac & 0xFF}, + {0x116ad & 0xFF, 0x116b5 & 0xFF}, + {0x116b6 & 0xFF, 0x116b6 & 0xFF}, + {0x116b7 & 0xFF, 0x116b7 & 0xFF}, + {0x116c0 & 0xFF, 0x116c9 & 0xFF}, + {0x12000 & 0xFF, 0x120ff & 0xFF}, + {0x12100 & 0xFF, 0x121ff & 0xFF}, + {0x12200 & 0xFF, 0x122ff & 0xFF}, + {0x12300 & 0xFF, 0x1236e & 0xFF}, + {0x12400 & 0xFF, 0x12459 & 0xFF}, + {0x1245a & 0xFF, 0x12462 & 0xFF}, + {0x12470 & 0xFF, 0x12473 & 0xFF}, + {0x13000 & 0xFF, 0x1304f & 0xFF}, + {0x13050 & 0xFF, 0x13059 & 0xFF}, + {0x1305a & 0xFF, 0x13075 & 0xFF}, + {0x13076 & 0xFF, 0x130d1 & 0xFF}, + {0x130d2 & 0xFF, 0x130fd & 0xFF}, + {0x130fe & 0xFF, 0x130ff & 0xFF}, + {0x13100 & 0xFF, 0x1313e & 0xFF}, + {0x1313f & 0xFF, 0x1317e & 0xFF}, + {0x1317f & 0xFF, 0x13187 & 0xFF}, + {0x13188 & 0xFF, 0x1319a & 0xFF}, + {0x1319b & 0xFF, 0x131a2 & 0xFF}, + {0x131a3 & 0xFF, 0x131ac & 0xFF}, + {0x131ad & 0xFF, 0x131ee & 0xFF}, + {0x131ef & 0xFF, 0x131ff & 0xFF}, + {0x13200 & 0xFF, 0x1321f & 0xFF}, + {0x13220 & 0xFF, 0x13235 & 0xFF}, + {0x13236 & 0xFF, 0x1324f & 0xFF}, + {0x13250 & 0xFF, 0x1329a & 0xFF}, + {0x1329b & 0xFF, 0x132a7 & 0xFF}, + {0x132a8 & 0xFF, 0x132ae & 0xFF}, + {0x132af & 0xFF, 0x132d0 & 0xFF}, + {0x132d1 & 0xFF, 0x132ff & 0xFF}, + {0x13300 & 0xFF, 0x13306 & 0xFF}, + {0x13307 & 0xFF, 0x13332 & 0xFF}, + {0x13333 & 0xFF, 0x13361 & 0xFF}, + {0x13362 & 0xFF, 0x133ae & 0xFF}, + {0x133af & 0xFF, 0x133ce & 0xFF}, + {0x133cf & 0xFF, 0x133da & 0xFF}, + {0x133db & 0xFF, 0x133e3 & 0xFF}, + {0x133e4 & 0xFF, 0x133ff & 0xFF}, + {0x13400 & 0xFF, 0x1342e & 0xFF}, + {0x16800 & 0xFF, 0x168ff & 0xFF}, + {0x16900 & 0xFF, 0x169ff & 0xFF}, + {0x16a00 & 0xFF, 0x16a38 & 0xFF}, + {0x16f00 & 0xFF, 0x16f44 & 0xFF}, + {0x16f50 & 0xFF, 0x16f53 & 0xFF}, + {0x16f54 & 0xFF, 0x16f7e & 0xFF}, + {0x16f8f & 0xFF, 0x16f92 & 0xFF}, + {0x16f93 & 0xFF, 0x16f9f & 0xFF}, + {0x1b000 & 0xFF, 0x1b001 & 0xFF}, + {0x1d000 & 0xFF, 0x1d002 & 0xFF}, + {0x1d003 & 0xFF, 0x1d014 & 0xFF}, + {0x1d015 & 0xFF, 0x1d045 & 0xFF}, + {0x1d046 & 0xFF, 0x1d056 & 0xFF}, + {0x1d057 & 0xFF, 0x1d07e & 0xFF}, + {0x1d07f & 0xFF, 0x1d089 & 0xFF}, + {0x1d08a & 0xFF, 0x1d08e & 0xFF}, + {0x1d08f & 0xFF, 0x1d099 & 0xFF}, + {0x1d09a & 0xFF, 0x1d0a1 & 0xFF}, + {0x1d0a2 & 0xFF, 0x1d0b5 & 0xFF}, + {0x1d0b6 & 0xFF, 0x1d0ca & 0xFF}, + {0x1d0cb & 0xFF, 0x1d0d9 & 0xFF}, + {0x1d0da & 0xFF, 0x1d0e5 & 0xFF}, + {0x1d0e6 & 0xFF, 0x1d0ef & 0xFF}, + {0x1d0f0 & 0xFF, 0x1d0f5 & 0xFF}, + {0x1d100 & 0xFF, 0x1d105 & 0xFF}, + {0x1d106 & 0xFF, 0x1d10c & 0xFF}, + {0x1d10d & 0xFF, 0x1d10f & 0xFF}, + {0x1d110 & 0xFF, 0x1d113 & 0xFF}, + {0x1d114 & 0xFF, 0x1d115 & 0xFF}, + {0x1d116 & 0xFF, 0x1d11b & 0xFF}, + {0x1d11c & 0xFF, 0x1d11d & 0xFF}, + {0x1d11e & 0xFF, 0x1d126 & 0xFF}, + {0x1d129 & 0xFF, 0x1d129 & 0xFF}, + {0x1d12a & 0xFF, 0x1d133 & 0xFF}, + {0x1d134 & 0xFF, 0x1d135 & 0xFF}, + {0x1d136 & 0xFF, 0x1d139 & 0xFF}, + {0x1d13a & 0xFF, 0x1d142 & 0xFF}, + {0x1d143 & 0xFF, 0x1d15b & 0xFF}, + {0x1d15c & 0xFF, 0x1d164 & 0xFF}, + {0x1d165 & 0xFF, 0x1d166 & 0xFF}, + {0x1d167 & 0xFF, 0x1d16c & 0xFF}, + {0x1d16d & 0xFF, 0x1d16d & 0xFF}, + {0x1d16e & 0xFF, 0x1d172 & 0xFF}, + {0x1d173 & 0xFF, 0x1d17a & 0xFF}, + {0x1d17b & 0xFF, 0x1d18e & 0xFF}, + {0x1d18f & 0xFF, 0x1d193 & 0xFF}, + {0x1d194 & 0xFF, 0x1d1a5 & 0xFF}, + {0x1d1a6 & 0xFF, 0x1d1a9 & 0xFF}, + {0x1d1aa & 0xFF, 0x1d1ad & 0xFF}, + {0x1d1ae & 0xFF, 0x1d1b0 & 0xFF}, + {0x1d1b1 & 0xFF, 0x1d1b5 & 0xFF}, + {0x1d1b6 & 0xFF, 0x1d1c0 & 0xFF}, + {0x1d1c1 & 0xFF, 0x1d1c6 & 0xFF}, + {0x1d1c7 & 0xFF, 0x1d1ce & 0xFF}, + {0x1d1cf & 0xFF, 0x1d1cf & 0xFF}, + {0x1d1d0 & 0xFF, 0x1d1dd & 0xFF}, + {0x1d200 & 0xFF, 0x1d21c & 0xFF}, + {0x1d21d & 0xFF, 0x1d241 & 0xFF}, + {0x1d242 & 0xFF, 0x1d245 & 0xFF}, + {0x1d300 & 0xFF, 0x1d300 & 0xFF}, + {0x1d301 & 0xFF, 0x1d305 & 0xFF}, + {0x1d306 & 0xFF, 0x1d356 & 0xFF}, + {0x1d360 & 0xFF, 0x1d371 & 0xFF}, + {0x1d400 & 0xFF, 0x1d433 & 0xFF}, + {0x1d434 & 0xFF, 0x1d454 & 0xFF}, + {0x1d456 & 0xFF, 0x1d467 & 0xFF}, + {0x1d468 & 0xFF, 0x1d49b & 0xFF}, + {0x1d49c & 0xFF, 0x1d49c & 0xFF}, + {0x1d49e & 0xFF, 0x1d49f & 0xFF}, + {0x1d4a2 & 0xFF, 0x1d4a2 & 0xFF}, + {0x1d4a5 & 0xFF, 0x1d4a6 & 0xFF}, + {0x1d4a9 & 0xFF, 0x1d4ac & 0xFF}, + {0x1d4ae & 0xFF, 0x1d4b9 & 0xFF}, + {0x1d4bb & 0xFF, 0x1d4bb & 0xFF}, + {0x1d4bd & 0xFF, 0x1d4c3 & 0xFF}, + {0x1d4c5 & 0xFF, 0x1d4cf & 0xFF}, + {0x1d4d0 & 0xFF, 0x1d4ff & 0xFF}, + {0x1d500 & 0xFF, 0x1d503 & 0xFF}, + {0x1d504 & 0xFF, 0x1d505 & 0xFF}, + {0x1d507 & 0xFF, 0x1d50a & 0xFF}, + {0x1d50d & 0xFF, 0x1d514 & 0xFF}, + {0x1d516 & 0xFF, 0x1d51c & 0xFF}, + {0x1d51e & 0xFF, 0x1d537 & 0xFF}, + {0x1d538 & 0xFF, 0x1d539 & 0xFF}, + {0x1d53b & 0xFF, 0x1d53e & 0xFF}, + {0x1d540 & 0xFF, 0x1d544 & 0xFF}, + {0x1d546 & 0xFF, 0x1d546 & 0xFF}, + {0x1d54a & 0xFF, 0x1d550 & 0xFF}, + {0x1d552 & 0xFF, 0x1d56b & 0xFF}, + {0x1d56c & 0xFF, 0x1d59f & 0xFF}, + {0x1d5a0 & 0xFF, 0x1d5d3 & 0xFF}, + {0x1d5d4 & 0xFF, 0x1d5ff & 0xFF}, + {0x1d600 & 0xFF, 0x1d607 & 0xFF}, + {0x1d608 & 0xFF, 0x1d63b & 0xFF}, + {0x1d63c & 0xFF, 0x1d66f & 0xFF}, + {0x1d670 & 0xFF, 0x1d6a3 & 0xFF}, + {0x1d6a4 & 0xFF, 0x1d6a5 & 0xFF}, + {0x1d6a8 & 0xFF, 0x1d6e1 & 0xFF}, + {0x1d6e2 & 0xFF, 0x1d6ff & 0xFF}, + {0x1d700 & 0xFF, 0x1d71b & 0xFF}, + {0x1d71c & 0xFF, 0x1d755 & 0xFF}, + {0x1d756 & 0xFF, 0x1d78f & 0xFF}, + {0x1d790 & 0xFF, 0x1d7c9 & 0xFF}, + {0x1d7ca & 0xFF, 0x1d7cb & 0xFF}, + {0x1d7ce & 0xFF, 0x1d7d7 & 0xFF}, + {0x1d7d8 & 0xFF, 0x1d7e1 & 0xFF}, + {0x1d7e2 & 0xFF, 0x1d7eb & 0xFF}, + {0x1d7ec & 0xFF, 0x1d7f5 & 0xFF}, + {0x1d7f6 & 0xFF, 0x1d7ff & 0xFF}, + {0x1ee00 & 0xFF, 0x1ee03 & 0xFF}, + {0x1ee05 & 0xFF, 0x1ee1f & 0xFF}, + {0x1ee21 & 0xFF, 0x1ee22 & 0xFF}, + {0x1ee24 & 0xFF, 0x1ee24 & 0xFF}, + {0x1ee27 & 0xFF, 0x1ee27 & 0xFF}, + {0x1ee29 & 0xFF, 0x1ee32 & 0xFF}, + {0x1ee34 & 0xFF, 0x1ee37 & 0xFF}, + {0x1ee39 & 0xFF, 0x1ee39 & 0xFF}, + {0x1ee3b & 0xFF, 0x1ee3b & 0xFF}, + {0x1ee42 & 0xFF, 0x1ee42 & 0xFF}, + {0x1ee47 & 0xFF, 0x1ee47 & 0xFF}, + {0x1ee49 & 0xFF, 0x1ee49 & 0xFF}, + {0x1ee4b & 0xFF, 0x1ee4b & 0xFF}, + {0x1ee4d & 0xFF, 0x1ee4f & 0xFF}, + {0x1ee51 & 0xFF, 0x1ee52 & 0xFF}, + {0x1ee54 & 0xFF, 0x1ee54 & 0xFF}, + {0x1ee57 & 0xFF, 0x1ee57 & 0xFF}, + {0x1ee59 & 0xFF, 0x1ee59 & 0xFF}, + {0x1ee5b & 0xFF, 0x1ee5b & 0xFF}, + {0x1ee5d & 0xFF, 0x1ee5d & 0xFF}, + {0x1ee5f & 0xFF, 0x1ee5f & 0xFF}, + {0x1ee61 & 0xFF, 0x1ee62 & 0xFF}, + {0x1ee64 & 0xFF, 0x1ee64 & 0xFF}, + {0x1ee67 & 0xFF, 0x1ee6a & 0xFF}, + {0x1ee6c & 0xFF, 0x1ee72 & 0xFF}, + {0x1ee74 & 0xFF, 0x1ee77 & 0xFF}, + {0x1ee79 & 0xFF, 0x1ee7c & 0xFF}, + {0x1ee7e & 0xFF, 0x1ee7e & 0xFF}, + {0x1ee80 & 0xFF, 0x1ee89 & 0xFF}, + {0x1ee8b & 0xFF, 0x1ee9b & 0xFF}, + {0x1eea1 & 0xFF, 0x1eea3 & 0xFF}, + {0x1eea5 & 0xFF, 0x1eea9 & 0xFF}, + {0x1eeab & 0xFF, 0x1eebb & 0xFF}, + {0x1eef0 & 0xFF, 0x1eef1 & 0xFF}, + {0x1f000 & 0xFF, 0x1f003 & 0xFF}, + {0x1f004 & 0xFF, 0x1f006 & 0xFF}, + {0x1f007 & 0xFF, 0x1f00f & 0xFF}, + {0x1f010 & 0xFF, 0x1f018 & 0xFF}, + {0x1f019 & 0xFF, 0x1f021 & 0xFF}, + {0x1f022 & 0xFF, 0x1f025 & 0xFF}, + {0x1f026 & 0xFF, 0x1f029 & 0xFF}, + {0x1f02a & 0xFF, 0x1f02b & 0xFF}, + {0x1f030 & 0xFF, 0x1f061 & 0xFF}, + {0x1f062 & 0xFF, 0x1f093 & 0xFF}, + {0x1f0a0 & 0xFF, 0x1f0ae & 0xFF}, + {0x1f0b1 & 0xFF, 0x1f0be & 0xFF}, + {0x1f0c1 & 0xFF, 0x1f0cf & 0xFF}, + {0x1f0d1 & 0xFF, 0x1f0df & 0xFF}, + {0x1f100 & 0xFF, 0x1f10a & 0xFF}, + {0x1f110 & 0xFF, 0x1f129 & 0xFF}, + {0x1f12a & 0xFF, 0x1f12a & 0xFF}, + {0x1f12b & 0xFF, 0x1f12c & 0xFF}, + {0x1f12d & 0xFF, 0x1f12e & 0xFF}, + {0x1f130 & 0xFF, 0x1f14f & 0xFF}, + {0x1f150 & 0xFF, 0x1f169 & 0xFF}, + {0x1f16a & 0xFF, 0x1f16b & 0xFF}, + {0x1f170 & 0xFF, 0x1f19a & 0xFF}, + {0x1f1e6 & 0xFF, 0x1f1ff & 0xFF}, + {0x1f200 & 0xFF, 0x1f202 & 0xFF}, + {0x1f210 & 0xFF, 0x1f212 & 0xFF}, + {0x1f213 & 0xFF, 0x1f213 & 0xFF}, + {0x1f214 & 0xFF, 0x1f23a & 0xFF}, + {0x1f240 & 0xFF, 0x1f248 & 0xFF}, + {0x1f250 & 0xFF, 0x1f251 & 0xFF}, + {0x1f300 & 0xFF, 0x1f305 & 0xFF}, + {0x1f306 & 0xFF, 0x1f307 & 0xFF}, + {0x1f308 & 0xFF, 0x1f308 & 0xFF}, + {0x1f309 & 0xFF, 0x1f309 & 0xFF}, + {0x1f30a & 0xFF, 0x1f30b & 0xFF}, + {0x1f30c & 0xFF, 0x1f30c & 0xFF}, + {0x1f30d & 0xFF, 0x1f310 & 0xFF}, + {0x1f311 & 0xFF, 0x1f320 & 0xFF}, + {0x1f330 & 0xFF, 0x1f335 & 0xFF}, + {0x1f337 & 0xFF, 0x1f344 & 0xFF}, + {0x1f345 & 0xFF, 0x1f353 & 0xFF}, + {0x1f354 & 0xFF, 0x1f374 & 0xFF}, + {0x1f375 & 0xFF, 0x1f37c & 0xFF}, + {0x1f380 & 0xFF, 0x1f393 & 0xFF}, + {0x1f3a0 & 0xFF, 0x1f3ad & 0xFF}, + {0x1f3ae & 0xFF, 0x1f3b4 & 0xFF}, + {0x1f3b5 & 0xFF, 0x1f3bc & 0xFF}, + {0x1f3bd & 0xFF, 0x1f3c4 & 0xFF}, + {0x1f3c6 & 0xFF, 0x1f3ca & 0xFF}, + {0x1f3e0 & 0xFF, 0x1f3f0 & 0xFF}, + {0x1f400 & 0xFF, 0x1f418 & 0xFF}, + {0x1f419 & 0xFF, 0x1f42c & 0xFF}, + {0x1f42d & 0xFF, 0x1f43e & 0xFF}, + {0x1f440 & 0xFF, 0x1f440 & 0xFF}, + {0x1f442 & 0xFF, 0x1f445 & 0xFF}, + {0x1f446 & 0xFF, 0x1f449 & 0xFF}, + {0x1f44a & 0xFF, 0x1f450 & 0xFF}, + {0x1f451 & 0xFF, 0x1f463 & 0xFF}, + {0x1f464 & 0xFF, 0x1f465 & 0xFF}, + {0x1f466 & 0xFF, 0x1f476 & 0xFF}, + {0x1f477 & 0xFF, 0x1f477 & 0xFF}, + {0x1f478 & 0xFF, 0x1f480 & 0xFF}, + {0x1f481 & 0xFF, 0x1f483 & 0xFF}, + {0x1f484 & 0xFF, 0x1f488 & 0xFF}, + {0x1f489 & 0xFF, 0x1f48a & 0xFF}, + {0x1f48b & 0xFF, 0x1f492 & 0xFF}, + {0x1f493 & 0xFF, 0x1f49f & 0xFF}, + {0x1f4a0 & 0xFF, 0x1f4ad & 0xFF}, + {0x1f4ae & 0xFF, 0x1f4af & 0xFF}, + {0x1f4b0 & 0xFF, 0x1f4b9 & 0xFF}, + {0x1f4ba & 0xFF, 0x1f4dc & 0xFF}, + {0x1f4dd & 0xFF, 0x1f4f6 & 0xFF}, + {0x1f4f7 & 0xFF, 0x1f4f7 & 0xFF}, + {0x1f4f9 & 0xFF, 0x1f4fc & 0xFF}, + {0x1f500 & 0xFF, 0x1f518 & 0xFF}, + {0x1f519 & 0xFF, 0x1f51d & 0xFF}, + {0x1f51e & 0xFF, 0x1f51e & 0xFF}, + {0x1f51f & 0xFF, 0x1f51f & 0xFF}, + {0x1f520 & 0xFF, 0x1f524 & 0xFF}, + {0x1f525 & 0xFF, 0x1f52e & 0xFF}, + {0x1f52f & 0xFF, 0x1f52f & 0xFF}, + {0x1f530 & 0xFF, 0x1f531 & 0xFF}, + {0x1f532 & 0xFF, 0x1f539 & 0xFF}, + {0x1f53a & 0xFF, 0x1f53d & 0xFF}, + {0x1f540 & 0xFF, 0x1f543 & 0xFF}, + {0x1f550 & 0xFF, 0x1f567 & 0xFF}, + {0x1f5fb & 0xFF, 0x1f5ff & 0xFF}, + {0x1f600 & 0xFF, 0x1f637 & 0xFF}, + {0x1f638 & 0xFF, 0x1f640 & 0xFF}, + {0x1f645 & 0xFF, 0x1f64f & 0xFF}, + {0x1f680 & 0xFF, 0x1f6a4 & 0xFF}, + {0x1f6a5 & 0xFF, 0x1f6a8 & 0xFF}, + {0x1f6a9 & 0xFF, 0x1f6c5 & 0xFF}, + {0x1f700 & 0xFF, 0x1f75d & 0xFF}, + {0x1f75e & 0xFF, 0x1f764 & 0xFF}, + {0x1f765 & 0xFF, 0x1f76d & 0xFF}, + {0x1f76e & 0xFF, 0x1f771 & 0xFF}, + {0x1f772 & 0xFF, 0x1f773 & 0xFF}, + {0x2f800 & 0xFF, 0x2f8ff & 0xFF}, + {0x2f900 & 0xFF, 0x2f9ff & 0xFF}, + {0x2fa00 & 0xFF, 0x2fa1d & 0xFF}, + {0xe0001 & 0xFF, 0xe0001 & 0xFF}, + {0xe0020 & 0xFF, 0xe007f & 0xFF}, + {0xe0100 & 0xFF, 0xe01ef & 0xFF}}; + +static const uint32_t unicode_classtab[]={ + UNICODE_CATEGORY_1_CONTROL, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_SPACE, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_QUOTATION, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_CURRENCY, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_RELATION, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_SPACING, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_SPACING, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH, + UNICODE_CATEGORY_1_CONTROL, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_SPACE, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_CURRENCY, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_SPACING, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_SUPERSCRIPT, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_QUOTATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_FORMAT, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_SPACING, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT|UNICODE_CATEGORY_3_SUPERSCRIPT, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_SPACING, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_LETTERLIKE, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_SPACING, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT|UNICODE_CATEGORY_3_SUPERSCRIPT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_SUPERSCRIPT, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_QUOTATION, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_FRACTION, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_DIGRAPH, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_PHONETIC|UNICODE_CATEGORY_3_IPA, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_PHONETIC|UNICODE_CATEGORY_3_SINOLOGY, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_SUPERSCRIPT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_SPACING, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_SPACING, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_OVERSTRUCK, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_FORMAT, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_DOUBLE, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_SUPERSCRIPT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_SPACING|UNICODE_CATEGORY_3_NUMERAL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_SPACING, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_EDITORIAL, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_SPACING, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VARIANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VARIANT, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VARIANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VARIANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VARIANT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_EDITORIAL, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_CURRENCY, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_CANTILLATION, + UNICODE_CATEGORY_1_MARK|UNICODE_CATEGORY_2_POINT, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_MARK|UNICODE_CATEGORY_2_POINT, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_MARK|UNICODE_CATEGORY_2_POINT, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_MARK|UNICODE_CATEGORY_2_POINT, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_DIGRAPH, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_FORMAT|UNICODE_CATEGORY_2_SUBTENDING, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR|UNICODE_CATEGORY_4_LARGE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_CURRENCY, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_ANNOTATION, + UNICODE_CATEGORY_1_MARK|UNICODE_CATEGORY_2_POINT, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_FORMAT|UNICODE_CATEGORY_2_KASHIDA, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_MARK|UNICODE_CATEGORY_2_POINT, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_MARK|UNICODE_CATEGORY_2_POINT, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_MARK|UNICODE_CATEGORY_2_POINT, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_MARK|UNICODE_CATEGORY_2_POINT, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_MARK|UNICODE_CATEGORY_2_POINT, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_ANNOTATION, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LOGOGRAPH, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_FORMAT, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_MARK|UNICODE_CATEGORY_2_POINT, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_MARK|UNICODE_CATEGORY_2_VOWEL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_FORMAT|UNICODE_CATEGORY_2_KASHIDA, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_MARK|UNICODE_CATEGORY_2_POINT, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_MARK|UNICODE_CATEGORY_2_POINT, + UNICODE_CATEGORY_1_MARK|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_ANNOTATION, + UNICODE_CATEGORY_1_MARK|UNICODE_CATEGORY_2_POINT, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LOGOGRAPH, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT|UNICODE_CATEGORY_4_TWO_PART, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT|UNICODE_CATEGORY_4_LENGTH_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_CURRENCY, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_FRACTION, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_CURRENCY, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LOGOGRAPH, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_LOGOGRAPH, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_CURRENCY, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT|UNICODE_CATEGORY_4_TWO_PART, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT|UNICODE_CATEGORY_4_LENGTH_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_FRACTION, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT|UNICODE_CATEGORY_4_TWO_PART, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_LOGOGRAPH, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT|UNICODE_CATEGORY_4_LENGTH_MARK, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_NUMBER, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_CURRENCY, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT|UNICODE_CATEGORY_4_LENGTH_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_FRACTION, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT|UNICODE_CATEGORY_4_LENGTH_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT|UNICODE_CATEGORY_4_TWO_PART, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT|UNICODE_CATEGORY_4_LENGTH_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_NUMBER, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_FRACTION, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT|UNICODE_CATEGORY_4_TWO_PART, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_CURRENCY, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_LENGTH_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_REPETITION, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_REPETITION, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_DIGRAPH, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LOGOGRAPH, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_HEAD_MARK, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ASTROLOGICAL, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_NUMBER, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ASTROLOGICAL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HEAD_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HEAD_MARK|UNICODE_CATEGORY_3_SUBJOINED, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_DEPENDENT|UNICODE_CATEGORY_4_SUBJOINED, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_DEPENDENT|UNICODE_CATEGORY_4_SUBJOINED, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_CANTILLATION, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ASTROLOGICAL, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_HEAD_MARK, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_RELIGIOUS, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_ANNOTATION, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LOGOGRAPH, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LOGOGRAPH, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_INITIAL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_INITIAL|UNICODE_CATEGORY_4_FILLER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_MEDIAL|UNICODE_CATEGORY_4_FILLER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_MEDIAL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_FINAL, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_NUMBER, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_CANTILLATION, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_SPACE, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INHERENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT|UNICODE_CATEGORY_4_TWO_PART, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT|UNICODE_CATEGORY_4_TWO_PART, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_LOGOGRAPH, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_CURRENCY, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_NUMBER, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_FORMAT|UNICODE_CATEGORY_2_VARIATION_SELECTOR, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_SPACE, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_HEAD_MARK, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_DEPENDENT|UNICODE_CATEGORY_4_SUBJOINED, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_FINAL, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_FINAL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_LOGOGRAPH, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_CALENDRICAL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSICAL|UNICODE_CATEGORY_3_BALINESE|UNICODE_CATEGORY_4_NOTE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSICAL|UNICODE_CATEGORY_3_BALINESE, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_DEPENDENT|UNICODE_CATEGORY_4_SUBJOINED, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_DEPENDENT|UNICODE_CATEGORY_4_SUBJOINED, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_HISTORIC, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_DEPENDENT|UNICODE_CATEGORY_4_SUBJOINED, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_VISARGA, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_NASALIZATION, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_VISARGA, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_PHONETIC|UNICODE_CATEGORY_3_UPA, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_SUPERSCRIPT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_SUBSCRIPT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_PHONETIC|UNICODE_CATEGORY_3_UPA, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_PHONETIC, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_SUPERSCRIPT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_PHONETIC, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_SUPERSCRIPT, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_DOUBLE, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_SUPERSCRIPT, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_DOUBLE, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_SPACING, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_SPACING, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_SPACING, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_SPACING, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_SPACING, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_SPACE, + UNICODE_CATEGORY_1_FORMAT|UNICODE_CATEGORY_2_JOINING, + UNICODE_CATEGORY_1_FORMAT|UNICODE_CATEGORY_2_BIDI, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_DASH, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_QUOTATION, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_FORMAT|UNICODE_CATEGORY_2_LINEBREAK, + UNICODE_CATEGORY_1_FORMAT|UNICODE_CATEGORY_2_BIDI, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_SPACE, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_QUOTATION, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_VERTICAL, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_VERTICAL, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_SPACE, + UNICODE_CATEGORY_1_FORMAT|UNICODE_CATEGORY_2_LINEBREAK, + UNICODE_CATEGORY_1_FORMAT, + UNICODE_CATEGORY_1_FORMAT, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT|UNICODE_CATEGORY_3_SUPERSCRIPT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_SUPERSCRIPT, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT|UNICODE_CATEGORY_3_SUPERSCRIPT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_SUPERSCRIPT, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET|UNICODE_CATEGORY_3_SUPERSCRIPT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_SUPERSCRIPT, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT|UNICODE_CATEGORY_3_SUBSCRIPT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_SUBSCRIPT, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET|UNICODE_CATEGORY_3_SUBSCRIPT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_SUBSCRIPT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_CURRENCY, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_OVERSTRUCK, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_OVERSTRUCK, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_ENCLOSING, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_ENCLOSING, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_OVERSTRUCK, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_OVERSTRUCK, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_LETTERLIKE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_HEBREW, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_LETTERLIKE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR|UNICODE_CATEGORY_4_LARGE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_LETTERLIKE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_CONSTANT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_LETTERLIKE, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_EDITORIAL|UNICODE_CATEGORY_3_BIBLICAL, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_FRACTION, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_ROMAN, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_ROMAN|UNICODE_CATEGORY_4_HISTORIC, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_ROMAN|UNICODE_CATEGORY_4_HISTORIC, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_FRACTION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ARROW, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ARROW|UNICODE_CATEGORY_3_HARPOON, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ARROW, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ARROW|UNICODE_CATEGORY_3_HARPOON, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ARROW|UNICODE_CATEGORY_3_DOUBLE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ARROW, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_RELATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR|UNICODE_CATEGORY_4_LARGE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR|UNICODE_CATEGORY_4_LARGE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_RELATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR|UNICODE_CATEGORY_4_LARGE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_RELATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_RELATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_RELATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_RELATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_RELATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_RELATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR|UNICODE_CATEGORY_4_LARGE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_RELATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_RELATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_RELATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_RELATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL|UNICODE_CATEGORY_3_CROP, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL|UNICODE_CATEGORY_3_INTERFACE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL|UNICODE_CATEGORY_3_QUINE_CORNER, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_INTEGRAL|UNICODE_CATEGORY_4_FRAGMENT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL|UNICODE_CATEGORY_3_KEYBOARD, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL|UNICODE_CATEGORY_3_KEYBOARD, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL|UNICODE_CATEGORY_3_CHEMISTRY, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL|UNICODE_CATEGORY_3_DRAFTING, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL|UNICODE_CATEGORY_3_APL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GRAPHIC|UNICODE_CATEGORY_3_CONTROL_CODE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GRAPHIC|UNICODE_CATEGORY_3_CONTROL_CODE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL|UNICODE_CATEGORY_3_KEYBOARD, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL|UNICODE_CATEGORY_3_APL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL|UNICODE_CATEGORY_3_KEYBOARD, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET|UNICODE_CATEGORY_3_FRAGMENT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ARROW|UNICODE_CATEGORY_3_FRAGMENT, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET|UNICODE_CATEGORY_3_FRAGMENT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR|UNICODE_CATEGORY_4_FRAGMENT, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET|UNICODE_CATEGORY_3_HORIZONTAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GRAPHIC|UNICODE_CATEGORY_3_TERMINAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL|UNICODE_CATEGORY_3_DENTISTRY, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL|UNICODE_CATEGORY_3_KEYBOARD, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL|UNICODE_CATEGORY_3_INTERFACE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ARROW|UNICODE_CATEGORY_3_FRAGMENT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_METRICAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET|UNICODE_CATEGORY_3_HORIZONTAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL|UNICODE_CATEGORY_3_CHEMISTRY, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL|UNICODE_CATEGORY_3_INTERFACE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GRAPHIC|UNICODE_CATEGORY_3_CONTROL_CODE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GRAPHIC|UNICODE_CATEGORY_3_SPACE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GRAPHIC|UNICODE_CATEGORY_3_CONTROL_CODE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL|UNICODE_CATEGORY_3_KEYBOARD, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GRAPHIC|UNICODE_CATEGORY_3_CONTROL_CODE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_OCR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MICR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_OCR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_NUMBER|UNICODE_CATEGORY_3_CIRCLED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_NUMBER|UNICODE_CATEGORY_3_PARENTHESIZED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_NUMBER, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_PARENTHESIZED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_CIRCLED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_NUMBER|UNICODE_CATEGORY_3_CIRCLED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GRAPHIC|UNICODE_CATEGORY_3_FORM, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GRAPHIC|UNICODE_CATEGORY_3_BLOCK, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GRAPHIC|UNICODE_CATEGORY_3_SHADE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GRAPHIC|UNICODE_CATEGORY_3_BLOCK, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GRAPHIC|UNICODE_CATEGORY_3_TERMINAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GEOMETRIC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GRAPHIC|UNICODE_CATEGORY_3_CONTROL_CODE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GEOMETRIC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_WEATHER, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_WEATHER, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ASTROLOGICAL, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_WEATHER, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MAP, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GAME|UNICODE_CATEGORY_3_JAPANESE_CHESS, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_DINGBAT|UNICODE_CATEGORY_3_HAND|UNICODE_CATEGORY_4_POINTING, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_WARNING_SIGN, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MEDICAL, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_RELIGIOUS, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TRIGRAM|UNICODE_CATEGORY_3_YIJING, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ASTROLOGICAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ZODIAC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GAME|UNICODE_CATEGORY_3_CHESS, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GAME|UNICODE_CATEGORY_3_PLAYING_CARD, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MAP, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_ACCIDENTAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_RELIGIOUS, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_RECYCLING, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GAME|UNICODE_CATEGORY_3_DICE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GAME|UNICODE_CATEGORY_3_GO|UNICODE_CATEGORY_4_MARKER, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MONOGRAM|UNICODE_CATEGORY_3_YIJING, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_DIGRAM|UNICODE_CATEGORY_3_YIJING, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MAP, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_DICTIONARY, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MAP, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_BROADCAST|UNICODE_CATEGORY_3_CLOSED_CAPTIONING, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_WARNING_SIGN, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GENDER, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GEOMETRIC|UNICODE_CATEGORY_3_CIRCLE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GENEALOGICAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GENDER, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ASTROLOGICAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_SPORTS, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GAME|UNICODE_CATEGORY_3_DRAUGHTS_AND_CHECKERS, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_WEATHER, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GAME|UNICODE_CATEGORY_3_JAPANESE_CHESS, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GAME, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TRAFFIC_SIGN, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ZODIAC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TRAFFIC_SIGN, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ASTRONOMICAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MAP, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_STARLIKE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MAP, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_DINGBAT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_DINGBAT|UNICODE_CATEGORY_3_HAND, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_DINGBAT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_DINGBAT|UNICODE_CATEGORY_3_CROSS, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_DINGBAT|UNICODE_CATEGORY_3_STARLIKE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_DINGBAT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_DINGBAT|UNICODE_CATEGORY_3_PUNCTUATION_ORNAMENT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_DINGBAT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_DINGBAT|UNICODE_CATEGORY_3_PUNCTUATION_ORNAMENT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_DINGBAT|UNICODE_CATEGORY_3_ORNAMENTAL_BRACKET, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_NUMBER|UNICODE_CATEGORY_3_CIRCLED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_DINGBAT|UNICODE_CATEGORY_3_ARROW, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_DINGBAT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_DINGBAT|UNICODE_CATEGORY_3_ARROW, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_DINGBAT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_DINGBAT|UNICODE_CATEGORY_3_ARROW, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_DINGBAT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR|UNICODE_CATEGORY_4_LARGE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR|UNICODE_CATEGORY_4_LARGE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR|UNICODE_CATEGORY_4_MODAL_LOGIC, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET|UNICODE_CATEGORY_3_MATH, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ARROW, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ARROW|UNICODE_CATEGORY_3_LONG, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_BRAILLE_PATTERN, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ARROW, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ARROW|UNICODE_CATEGORY_3_TAIL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ARROW, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ARROW|UNICODE_CATEGORY_3_CROSSING|UNICODE_CATEGORY_4_KNOT_THEORY, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ARROW, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ARROW|UNICODE_CATEGORY_3_HARPOON, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ARROW, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ARROW|UNICODE_CATEGORY_3_TAIL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET|UNICODE_CATEGORY_3_MATH, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_FENCE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ANGLE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_EMPTY_SET, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_FENCE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_RELATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ERROR_BAR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR|UNICODE_CATEGORY_4_LARGE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET|UNICODE_CATEGORY_3_MATH, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR|UNICODE_CATEGORY_4_LARGE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_RELATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_FORK, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_RELATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ARROW|UNICODE_CATEGORY_3_BLACK, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ARROW, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GEOMETRIC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ARROW, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GEOMETRIC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TRAFFIC_SIGN, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MAP, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_PHONETIC|UNICODE_CATEGORY_3_UPA, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_RELIGIOUS, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CRYPTOGRAMMIC, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_FRACTION, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_SUPERSCRIPT, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_EDITORIAL|UNICODE_CATEGORY_3_BIBLICAL, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_DASH, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_DICTIONARY, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_DICTIONARY, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TRANSLITERATION, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TRANSLITERATION, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_DASH, + UNICODE_CATEGORY_1_IDEOGRAPH|UNICODE_CATEGORY_2_RADICAL|UNICODE_CATEGORY_3_CJK, + UNICODE_CATEGORY_1_IDEOGRAPH|UNICODE_CATEGORY_2_RADICAL|UNICODE_CATEGORY_3_CJK, + UNICODE_CATEGORY_1_IDEOGRAPH|UNICODE_CATEGORY_2_RADICAL|UNICODE_CATEGORY_3_CJK|UNICODE_CATEGORY_4_KANGXI, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_IDEOGRAPHIC_DESCRIPTION, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_SPACE, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_IDEOGRAPH|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_REPETITION, + UNICODE_CATEGORY_1_IDEOGRAPH, + UNICODE_CATEGORY_1_NUMBER, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET|UNICODE_CATEGORY_3_CJK, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET|UNICODE_CATEGORY_3_CJK|UNICODE_CATEGORY_4_CORNER, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET|UNICODE_CATEGORY_3_CJK, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET|UNICODE_CATEGORY_3_CJK, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_DASH, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_QUOTATION, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_ACCOUNTING, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_DASH, + UNICODE_CATEGORY_1_SYLLABLE|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_REPETITION|UNICODE_CATEGORY_4_VERTICAL, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_ACCOUNTING, + UNICODE_CATEGORY_1_IDEOGRAPH|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_REPETITION|UNICODE_CATEGORY_4_VERTICAL, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_SYLLABLE|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_REPETITION, + UNICODE_CATEGORY_1_SYLLABLE|UNICODE_CATEGORY_2_DIGRAPH, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYLLABLE|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_LENGTH, + UNICODE_CATEGORY_1_SYLLABLE|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_REPETITION, + UNICODE_CATEGORY_1_SYLLABLE|UNICODE_CATEGORY_2_DIGRAPH, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_MEDIAL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_FILLER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_MEDIAL, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_IDEOGRAPH|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_SUPERSCRIPT, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_FINAL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_IDEOGRAPH|UNICODE_CATEGORY_2_STROKE|UNICODE_CATEGORY_3_CJK, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_PARENTHESIZED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_SYLLABLE|UNICODE_CATEGORY_3_PARENTHESIZED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_WORD|UNICODE_CATEGORY_3_PARENTHESIZED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_IDEOGRAPH|UNICODE_CATEGORY_3_PARENTHESIZED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_IDEOGRAPH|UNICODE_CATEGORY_3_CIRCLED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_NUMBER|UNICODE_CATEGORY_3_CIRCLED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_SQUARED|UNICODE_CATEGORY_4_ABBREVIATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_NUMBER|UNICODE_CATEGORY_3_CIRCLED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_CIRCLED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_SYLLABLE|UNICODE_CATEGORY_3_CIRCLED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_WORD|UNICODE_CATEGORY_3_CIRCLED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_SYLLABLE|UNICODE_CATEGORY_3_CIRCLED, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_IDEOGRAPH|UNICODE_CATEGORY_3_CIRCLED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_NUMBER|UNICODE_CATEGORY_3_CIRCLED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TELEGRAPHIC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_SQUARED|UNICODE_CATEGORY_4_ABBREVIATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_SYLLABLE|UNICODE_CATEGORY_3_CIRCLED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_WORD|UNICODE_CATEGORY_3_SQUARED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TELEGRAPHIC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_SQUARED|UNICODE_CATEGORY_4_ABBREVIATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_WORD|UNICODE_CATEGORY_3_SQUARED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_SQUARED|UNICODE_CATEGORY_4_ABBREVIATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TELEGRAPHIC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_SQUARED|UNICODE_CATEGORY_4_ABBREVIATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_HEXAGRAM|UNICODE_CATEGORY_3_YIJING, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_REPETITION, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE|UNICODE_CATEGORY_2_RADICAL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE|UNICODE_CATEGORY_2_MODIFIER, + UNICODE_CATEGORY_1_SYLLABLE|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_LENGTH, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYLLABLE|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_LOGOGRAPH, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_SYLLABLE|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_SUPERSCRIPT, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_SUPERSCRIPT, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_PHONETIC, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_PHONETIC|UNICODE_CATEGORY_3_UPA, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HISTORIC, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_POETIC, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_FRACTION, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_CURRENCY, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_VOWEL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_DEPENDENT|UNICODE_CATEGORY_4_SUBJOINED, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_DEPENDENT|UNICODE_CATEGORY_4_SUBJOINED, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_NASALIZATION, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_HEAD_MARK, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_NUMBER|UNICODE_CATEGORY_3_SUPERSCRIPT, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_SUPERSCRIPT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_NASALIZATION, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_INITIAL, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_REPETITION, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_FINAL, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LOGOGRAPH, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_LOGOGRAPH, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_REPETITION, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_REPETITION, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_FINAL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_MEDIAL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT|UNICODE_CATEGORY_3_FINAL, + UNICODE_CATEGORY_1_IDEOGRAPH, + UNICODE_CATEGORY_1_IDEOGRAPH, + UNICODE_CATEGORY_1_IDEOGRAPH, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_LIGATURE, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_LIGATURE, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_SPACING, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_LIGATURE, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_LIGATURE, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_LIGATURE, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_LIGATURE, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_LIGATURE, + UNICODE_CATEGORY_1_WORD|UNICODE_CATEGORY_2_LIGATURE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_CURRENCY, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_FORMAT|UNICODE_CATEGORY_2_VARIATION_SELECTOR, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_VERTICAL, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_VERTICAL, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_DASH|UNICODE_CATEGORY_3_VERTICAL, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_VERTICAL, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET|UNICODE_CATEGORY_3_VERTICAL, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET|UNICODE_CATEGORY_3_VERTICAL, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_VERTICAL, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_DASH, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_MARK|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_POINT|UNICODE_CATEGORY_4_SPACING, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_FRAGMENT, + UNICODE_CATEGORY_1_MARK|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_POINT|UNICODE_CATEGORY_4_SPACING, + UNICODE_CATEGORY_1_MARK|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_POINT|UNICODE_CATEGORY_4_SPACING, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_FORMAT, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_CURRENCY, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_OPERATOR, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_DASH, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_RELATION, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_SPACING, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_SPACING, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET|UNICODE_CATEGORY_3_CJK, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_PUNCTUATION|UNICODE_CATEGORY_2_BRACKET|UNICODE_CATEGORY_3_CJK|UNICODE_CATEGORY_4_CORNER, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE|UNICODE_CATEGORY_2_MODIFIER|UNICODE_CATEGORY_3_LENGTH, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_FILLER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_MEDIAL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_MEDIAL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_MEDIAL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_MEDIAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_CURRENCY, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_SPACING, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_CURRENCY, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GRAPHIC|UNICODE_CATEGORY_3_FORM, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ARROW, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GRAPHIC, + UNICODE_CATEGORY_1_FORMAT|UNICODE_CATEGORY_2_ANNOTATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_REPLACEMENT, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_IDEOGRAM|UNICODE_CATEGORY_2_PEOPLE_AND_ANIMALS, + UNICODE_CATEGORY_1_IDEOGRAM|UNICODE_CATEGORY_2_CEREALS_AND_PLANTS, + UNICODE_CATEGORY_1_IDEOGRAM|UNICODE_CATEGORY_2_EXTRACTS, + UNICODE_CATEGORY_1_IDEOGRAM|UNICODE_CATEGORY_2_METALS, + UNICODE_CATEGORY_1_IDEOGRAM|UNICODE_CATEGORY_2_OTHER_MATERIALS, + UNICODE_CATEGORY_1_IDEOGRAM|UNICODE_CATEGORY_2_VESSELS, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_NUMBER, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MEASURE, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_ACROPHONIC, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_FRACTION, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_NUMBER, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MEASURE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_CURRENCY, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_NUMBER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LOGOGRAPH, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_NUMBER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_NUMBER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_NUMBER, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LOGOGRAPH, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_DIACRITIC|UNICODE_CATEGORY_2_LENGTH, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_NUMBER, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_NUMBER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_NUMBER, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_NUMBER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_NUMBER, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_FRACTION, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_NUMBER, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_FORMAT, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_LETTER, + UNICODE_CATEGORY_1_LOGOGRAPH, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_INDEPENDENT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_MARK, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL|UNICODE_CATEGORY_3_DEPENDENT, + UNICODE_CATEGORY_1_VIRAMA, + UNICODE_CATEGORY_1_DIACRITIC, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_DIGIT, + UNICODE_CATEGORY_1_SIGN, + UNICODE_CATEGORY_1_SIGN, + UNICODE_CATEGORY_1_SIGN, + UNICODE_CATEGORY_1_SIGN, + UNICODE_CATEGORY_1_NUMBER, + UNICODE_CATEGORY_1_NUMBER|UNICODE_CATEGORY_2_FRACTION, + UNICODE_CATEGORY_1_PUNCTUATION, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_MAN_OCCUPATION, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_WOMAN_OCCUPATION, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_ANTHROPOMORPHIC_DEITY, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_PART_OF_THE_HUMAN_BODY, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_MAMMAL, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_PART_OF_MAMMAL, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_PART_OF_MAMMAL, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_BIRD, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_PART_OF_BIRD, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_AMPHIBIOUS_ANIMAL_REPTILE, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_FISH_PART_OF_FISH, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_INVERTABRATA_LESSER_ANIMAL, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_TREE_PLANT, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_SKY_EARTH_WATER, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_SKY_EARTH_WATER, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_NOME_OF_LOWER_EGYPT, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_NOME_OF_UPPER_EGYPT, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_BUILDING_PART_OF_BUILDING, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_SHIP_PART_OF_SHIP, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_DOMESTIC_AND_FUNERARY_FURNITURE, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_TEMPLE_FURNITURE_SACRED_EMBLEM, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_CROWN_DRESS_STAFF, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_CROWN_DRESS_STAFF, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_WARFARE_HUNTING_BUTCHERY, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_AGRICULTURE_CRAFT_PROFESSION, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_ROPE_FIBER_BASKET_BAG, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_VESSEL_OF_STONE_OR_EARTHENWARE, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_LOAF_CAKE, + UNICODE_CATEGORY_1_HIEROGLYPH|UNICODE_CATEGORY_2_WRITING_GAME_MUSIC, + UNICODE_CATEGORY_1_HIEROGLYPH, + UNICODE_CATEGORY_1_HIEROGLYPH, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_CONSONANT, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_MODIFIER, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_VOWEL, + UNICODE_CATEGORY_1_MARK|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_LETTER|UNICODE_CATEGORY_2_TONE, + UNICODE_CATEGORY_1_SYLLABLE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_BYZANTINE|UNICODE_CATEGORY_4_PROSODIES, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_BYZANTINE|UNICODE_CATEGORY_4_EKFONETIKA, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_BYZANTINE|UNICODE_CATEGORY_4_MELODIMATA, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_BYZANTINE|UNICODE_CATEGORY_4_FONITIKA, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_BYZANTINE|UNICODE_CATEGORY_4_AFONA_OR_YPOSTASEIS, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_BYZANTINE|UNICODE_CATEGORY_4_ARGIES, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_BYZANTINE|UNICODE_CATEGORY_4_LEIMMATA_OR_SIOPES, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_BYZANTINE|UNICODE_CATEGORY_4_SYNAGMATA_OR_GORGOTITES, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_BYZANTINE|UNICODE_CATEGORY_4_AGOGIKA, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_BYZANTINE|UNICODE_CATEGORY_4_ICHIMATA_OR_MARTYRIKA, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_BYZANTINE|UNICODE_CATEGORY_4_FTHORES, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_BYZANTINE|UNICODE_CATEGORY_4_ALLOIOSEIS, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_BYZANTINE|UNICODE_CATEGORY_4_RYTHMIKA, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_BYZANTINE|UNICODE_CATEGORY_4_GRAMMATA, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_BYZANTINE|UNICODE_CATEGORY_4_SPECIAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_BAR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_CODA, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_FIGURE_REPETITION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_HOLD_OR_PAUSE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_STAFF_BRACKET, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_STAVE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_TABLATURE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_CLEF, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_REST, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_ACCIDENTAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_TIME_SIGNATURE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_OCTAVE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_REST, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_NOTEHEAD, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_NOTE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_STEM, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_TREMOLO, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_AUGMENTATION_DOT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_FLAG, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_BEAM_SLUR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_ARTICULATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_DYNAMIC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_ORNAMENT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_ANALYTIC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_INSTRUMENTATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN|UNICODE_CATEGORY_4_PEDAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_WESTERN, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_MENSURAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_MENSURAL|UNICODE_CATEGORY_4_REST, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_MENSURAL|UNICODE_CATEGORY_4_PROLATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_MENSURAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_GREGORIAN, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_ANCIENT_GREEK|UNICODE_CATEGORY_4_VOCALIC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_ANCIENT_GREEK|UNICODE_CATEGORY_4_INSTRUMENTAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC|UNICODE_CATEGORY_3_ANCIENT_GREEK, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MONOGRAM, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_DIGRAM, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TETRAGRAM, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_NUMBER|UNICODE_CATEGORY_3_COUNTING_ROD_UNIT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_BOLD, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_ITALIC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_ITALIC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_BOLD_ITALIC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_SCRIPT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_SCRIPT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_SCRIPT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_SCRIPT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_SCRIPT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_SCRIPT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_SCRIPT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_SCRIPT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_SCRIPT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_BOLD_SCRIPT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_BOLD_SCRIPT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_FRAKTUR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_FRAKTUR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_FRAKTUR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_FRAKTUR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_FRAKTUR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_DOUBLE_STRUCK, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_DOUBLE_STRUCK, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_DOUBLE_STRUCK, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_DOUBLE_STRUCK, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_DOUBLE_STRUCK, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_DOUBLE_STRUCK, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_BOLD_FRAKTUR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_SANS_SERIF, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_SANS_SERIF_BOLD, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_SANS_SERIF_BOLD, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_SANS_SERIF_ITALIC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_SANS_SERIF_BOLD_ITALIC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_MONOSPACE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_ITALIC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_BOLD_GREEK, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_ITALIC_GREEK, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_ITALIC_GREEK, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_BOLD_ITALIC_GREEK, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_SANS_SERIF_BOLD_GREEK, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_SANS_SERIF_BOLD_ITALIC_GREEK, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_BOLD_GREEK, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_BOLD_DIGIT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_DOUBLE_STRUCK_DIGIT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_SANS_SERIF_DIGIT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_SANS_SERIF_BOLD_DIGIT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_MONOSPACE_DIGIT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_ISOLATED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_ISOLATED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_INITIAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_INITIAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_INITIAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_INITIAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_INITIAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_INITIAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_INITIAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_TAILED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_TAILED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_TAILED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_TAILED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_TAILED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_TAILED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_TAILED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_TAILED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_TAILED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_TAILED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_TAILED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_TAILED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_STRETCHED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_STRETCHED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_STRETCHED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_STRETCHED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_STRETCHED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_STRETCHED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_STRETCHED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_LOOPED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_LOOPED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_DOUBLE_STRUCK, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_DOUBLE_STRUCK, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_DOUBLE_STRUCK, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MATH|UNICODE_CATEGORY_3_ALPHANUMERIC|UNICODE_CATEGORY_4_LARGE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GAME|UNICODE_CATEGORY_3_MAHJONG_TILE|UNICODE_CATEGORY_4_PREVAILING_WIND, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GAME|UNICODE_CATEGORY_3_MAHJONG_TILE|UNICODE_CATEGORY_4_DRAGON, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GAME|UNICODE_CATEGORY_3_MAHJONG_TILE|UNICODE_CATEGORY_4_CHARACTER_SUIT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GAME|UNICODE_CATEGORY_3_MAHJONG_TILE|UNICODE_CATEGORY_4_BAMBOO_SUIT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GAME|UNICODE_CATEGORY_3_MAHJONG_TILE|UNICODE_CATEGORY_4_CIRCLE_SUIT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GAME|UNICODE_CATEGORY_3_MAHJONG_TILE|UNICODE_CATEGORY_4_FLOWER, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GAME|UNICODE_CATEGORY_3_MAHJONG_TILE|UNICODE_CATEGORY_4_SEASON, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GAME|UNICODE_CATEGORY_3_MAHJONG_TILE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GAME|UNICODE_CATEGORY_3_DOMINO_TILE|UNICODE_CATEGORY_4_HORIZONTAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GAME|UNICODE_CATEGORY_3_DOMINO_TILE|UNICODE_CATEGORY_4_VERTICAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GAME|UNICODE_CATEGORY_3_PLAYING_CARD, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GAME|UNICODE_CATEGORY_3_PLAYING_CARD, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GAME|UNICODE_CATEGORY_3_PLAYING_CARD, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GAME|UNICODE_CATEGORY_3_PLAYING_CARD, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_NUMBER, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_PARENTHESIZED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_BRACKETED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_CIRCLED|UNICODE_CATEGORY_4_ITALIC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_CIRCLED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_SQUARED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_CIRCLED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_LETTERLIKE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_SQUARED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_LETTER|UNICODE_CATEGORY_3_REGIONAL_INDICATOR, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_SYLLABLE|UNICODE_CATEGORY_3_SQUARED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_IDEOGRAPH|UNICODE_CATEGORY_3_SQUARED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_SYLLABLE|UNICODE_CATEGORY_3_SQUARED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_IDEOGRAPH|UNICODE_CATEGORY_3_SQUARED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_IDEOGRAPH|UNICODE_CATEGORY_3_BRACKETED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_IDEOGRAPH|UNICODE_CATEGORY_3_CIRCLED, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_WEATHER, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_LANDSCAPE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_WEATHER, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_LANDSCAPE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_WEATHER, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ASTRONOMICAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GLOBE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ASTRONOMICAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_PLANT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_PLANT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_FRUIT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_FOOD, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_BEVERAGE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_CELEBRATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ENTERTAINMENT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GAME, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MUSIC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_SPORT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_SPORT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MAP, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ANIMAL|UNICODE_CATEGORY_3_ZODIAC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ANIMAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ANIMAL|UNICODE_CATEGORY_3_FACE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_BODY_PART|UNICODE_CATEGORY_3_FACE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_BODY_PART|UNICODE_CATEGORY_3_FACE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_DINGBAT|UNICODE_CATEGORY_3_HAND|UNICODE_CATEGORY_4_POINTING, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_DINGBAT|UNICODE_CATEGORY_3_HAND, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_CLOTHING, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_PERSON, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_PERSON|UNICODE_CATEGORY_3_OCCUPATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_FAIRY_TALE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_PERSON|UNICODE_CATEGORY_3_OCCUPATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_PERSONAL_CARE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_MEDICAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ROMANCE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_HEART, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_COMIC_STYLE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_SCHOOL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_FINANCE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_OFFICE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_COMMUNICATION, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_AUDIO_VIDEO, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_AUDIO_VIDEO, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL|UNICODE_CATEGORY_3_INTERFACE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL|UNICODE_CATEGORY_3_INTERFACE|UNICODE_CATEGORY_4_ARROW, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_SIGNAGE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL|UNICODE_CATEGORY_3_KEYBOARD, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL|UNICODE_CATEGORY_3_INTERFACE|UNICODE_CATEGORY_4_INPUT_STATUS, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TOOL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_STARLIKE, + UNICODE_CATEGORY_1_SYMBOL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_GEOMETRIC, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TECHNICAL|UNICODE_CATEGORY_3_INTERFACE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_RELIGIOUS, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_CLOCK_FACE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_CULTURAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_EMOTICON|UNICODE_CATEGORY_3_FACE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_EMOTICON|UNICODE_CATEGORY_3_FACE|UNICODE_CATEGORY_4_CAT, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_EMOTICON|UNICODE_CATEGORY_3_GESTURE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_VEHICLE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_TRAFFIC_SIGN, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_SIGNAGE, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ALCHEMICAL, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ALCHEMICAL|UNICODE_CATEGORY_3_PROCESS, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ALCHEMICAL|UNICODE_CATEGORY_3_APPARATUS, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ALCHEMICAL|UNICODE_CATEGORY_3_TIME, + UNICODE_CATEGORY_1_SYMBOL|UNICODE_CATEGORY_2_ALCHEMICAL|UNICODE_CATEGORY_3_MEASURE, + UNICODE_CATEGORY_1_IDEOGRAPH, + UNICODE_CATEGORY_1_IDEOGRAPH, + UNICODE_CATEGORY_1_IDEOGRAPH, + UNICODE_CATEGORY_1_FORMAT|UNICODE_CATEGORY_2_TAG, + UNICODE_CATEGORY_1_FORMAT|UNICODE_CATEGORY_2_TAG, + UNICODE_CATEGORY_1_FORMAT|UNICODE_CATEGORY_2_VARIATION_SELECTOR}; + +static const size_t unicode_indextab[]={ + 0, + 57, + 60, + 71, + 102, + 107, + 127, + 161, + 177, + 191, + 239, + 281, + 327, + 365, + 398, + 434, + 467, + 511, + 516, + 530, + 540, + 542, + 543, + 553, + 590, + 602, + 620, + 634, + 663, + 682, + 699, + 700, + 723, + 771, + 793, + 829, + 870, + 884, + 892, + 947, + 976, + 977, + 1002, + 1010, + 1018, + 1032, + 1049, + 1064, + 1066, + 1100, + 1113, + 1131, + 1138, + 1138, + 1138, + 1138, + 1138, + 1138, + 1138, + 1138, + 1138, + 1138, + 1138, + 1138, + 1138, + 1138, + 1138, + 1138, + 1138, + 1138, + 1138, + 1138, + 1138, + 1138, + 1138, + 1138, + 1138, + 1138, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1139, + 1142, + 1143, + 1144, + 1145, + 1151, + 1152, + 1173, + 1185, + 1220, + 1241, + 1272, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1282, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1284, + 1285, + 1287, + 1298, + 1299, + 1306, + 1328, + 1377, + 1389, + 1401, + 1403, + 1413, + 1418, + 1418, + 1418, + 1418, + 1427, + 1438, + 1453, + 1460, + 1462, + 1462, + 1465, + 1465, + 1487, + 1503, + 1503, + 1503, + 1503, + 1503, + 1510, + 1510, + 1510, + 1510, + 1510, + 1510, + 1510, + 1510, + 1510, + 1510, + 1511, + 1512, + 1513, + 1514, + 1517, + 1517, + 1517, + 1517, + 1517, + 1517, + 1517, + 1517, + 1517, + 1517, + 1517, + 1517, + 1523, + 1531, + 1539, + 1547, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1548, + 1549, + 1550, + 1551, + 1551, + 1551, + 1551, + 1551, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1556, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1557, + 1572, + 1604, + 1607, + 1611, + 1625, + 1640, + 1647, + 1657, + 1657, + 1657, + 1657, + 1657, + 1657, + 1657, + 1657, + 1657, + 1657, + 1657, + 1657, + 1657, + 1657, + 1657, + 1657, + 1657, + 1657, + 1657, + 1657, + 1657, + 1657, + 1657, + 1691, + 1691, + 1705, + 1715, + 1721, + 1741, + 1765, + 1778, + 1784, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1789, + 1790, + 1791, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1792, + 1794, + 1795}; + diff --git a/unicode/courier-unicode-categories-tab.h b/unicode/courier-unicode-categories-tab.h new file mode 100644 index 0000000..f5311bd --- /dev/null +++ b/unicode/courier-unicode-categories-tab.h @@ -0,0 +1,424 @@ +#define UNICODE_CATEGORY_1_CONTROL 0x01000000 +#define UNICODE_CATEGORY_1_DIACRITIC 0x02000000 +#define UNICODE_CATEGORY_2_ANNOTATION 0x00010000 +#define UNICODE_CATEGORY_2_CANTILLATION 0x00020000 +#define UNICODE_CATEGORY_2_DOUBLE 0x00030000 +#define UNICODE_CATEGORY_2_ENCLOSING 0x00040000 +#define UNICODE_CATEGORY_2_HISTORIC 0x00050000 +#define UNICODE_CATEGORY_2_LENGTH 0x00060000 +#define UNICODE_CATEGORY_2_LETTER 0x00070000 +#define UNICODE_CATEGORY_3_SUPERSCRIPT 0x00000100 +#define UNICODE_CATEGORY_2_NASALIZATION 0x00080000 +#define UNICODE_CATEGORY_2_NUMBER 0x00090000 +/* #define UNICODE_CATEGORY_3_SUPERSCRIPT 0x00000100 */ +#define UNICODE_CATEGORY_2_OVERSTRUCK 0x000a0000 +#define UNICODE_CATEGORY_2_SPACING 0x000b0000 +#define UNICODE_CATEGORY_3_NUMERAL 0x00000200 +#define UNICODE_CATEGORY_2_TONE 0x000c0000 +#define UNICODE_CATEGORY_2_VISARGA 0x000d0000 +#define UNICODE_CATEGORY_1_FORMAT 0x03000000 +/* #define UNICODE_CATEGORY_2_ANNOTATION 0x00010000 */ +#define UNICODE_CATEGORY_2_BIDI 0x000e0000 +#define UNICODE_CATEGORY_2_JOINING 0x000f0000 +#define UNICODE_CATEGORY_2_KASHIDA 0x00100000 +#define UNICODE_CATEGORY_2_LINEBREAK 0x00110000 +#define UNICODE_CATEGORY_2_SUBTENDING 0x00120000 +#define UNICODE_CATEGORY_2_TAG 0x00130000 +#define UNICODE_CATEGORY_2_VARIATION_SELECTOR 0x00140000 +#define UNICODE_CATEGORY_1_HIEROGLYPH 0x04000000 +#define UNICODE_CATEGORY_2_AGRICULTURE_CRAFT_PROFESSION 0x00150000 +#define UNICODE_CATEGORY_2_AMPHIBIOUS_ANIMAL_REPTILE 0x00160000 +#define UNICODE_CATEGORY_2_ANTHROPOMORPHIC_DEITY 0x00170000 +#define UNICODE_CATEGORY_2_BIRD 0x00180000 +#define UNICODE_CATEGORY_2_BUILDING_PART_OF_BUILDING 0x00190000 +#define UNICODE_CATEGORY_2_CROWN_DRESS_STAFF 0x001a0000 +#define UNICODE_CATEGORY_2_DOMESTIC_AND_FUNERARY_FURNITURE 0x001b0000 +#define UNICODE_CATEGORY_2_FISH_PART_OF_FISH 0x001c0000 +#define UNICODE_CATEGORY_2_INVERTABRATA_LESSER_ANIMAL 0x001d0000 +#define UNICODE_CATEGORY_2_LOAF_CAKE 0x001e0000 +#define UNICODE_CATEGORY_2_MAMMAL 0x001f0000 +#define UNICODE_CATEGORY_2_MAN_OCCUPATION 0x00200000 +#define UNICODE_CATEGORY_2_NOME_OF_LOWER_EGYPT 0x00210000 +#define UNICODE_CATEGORY_2_NOME_OF_UPPER_EGYPT 0x00220000 +#define UNICODE_CATEGORY_2_PART_OF_BIRD 0x00230000 +#define UNICODE_CATEGORY_2_PART_OF_MAMMAL 0x00240000 +#define UNICODE_CATEGORY_2_PART_OF_THE_HUMAN_BODY 0x00250000 +#define UNICODE_CATEGORY_2_ROPE_FIBER_BASKET_BAG 0x00260000 +#define UNICODE_CATEGORY_2_SHIP_PART_OF_SHIP 0x00270000 +#define UNICODE_CATEGORY_2_SKY_EARTH_WATER 0x00280000 +#define UNICODE_CATEGORY_2_TEMPLE_FURNITURE_SACRED_EMBLEM 0x00290000 +#define UNICODE_CATEGORY_2_TREE_PLANT 0x002a0000 +#define UNICODE_CATEGORY_2_VESSEL_OF_STONE_OR_EARTHENWARE 0x002b0000 +#define UNICODE_CATEGORY_2_WARFARE_HUNTING_BUTCHERY 0x002c0000 +#define UNICODE_CATEGORY_2_WOMAN_OCCUPATION 0x002d0000 +#define UNICODE_CATEGORY_2_WRITING_GAME_MUSIC 0x002e0000 +#define UNICODE_CATEGORY_1_IDEOGRAM 0x05000000 +#define UNICODE_CATEGORY_2_CEREALS_AND_PLANTS 0x002f0000 +#define UNICODE_CATEGORY_2_EXTRACTS 0x00300000 +#define UNICODE_CATEGORY_2_METALS 0x00310000 +#define UNICODE_CATEGORY_2_OTHER_MATERIALS 0x00320000 +#define UNICODE_CATEGORY_2_PEOPLE_AND_ANIMALS 0x00330000 +#define UNICODE_CATEGORY_2_VESSELS 0x00340000 +#define UNICODE_CATEGORY_1_IDEOGRAPH 0x06000000 +#define UNICODE_CATEGORY_2_MODIFIER 0x00350000 +#define UNICODE_CATEGORY_3_REPETITION 0x00000300 +#define UNICODE_CATEGORY_4_VERTICAL 0x00000001 +/* #define UNICODE_CATEGORY_3_SUPERSCRIPT 0x00000100 */ +#define UNICODE_CATEGORY_2_RADICAL 0x00360000 +#define UNICODE_CATEGORY_3_CJK 0x00000400 +#define UNICODE_CATEGORY_4_KANGXI 0x00000002 +#define UNICODE_CATEGORY_2_STROKE 0x00370000 +/* #define UNICODE_CATEGORY_3_CJK 0x00000400 */ +#define UNICODE_CATEGORY_1_LETTER 0x07000000 +#define UNICODE_CATEGORY_2_CONSONANT 0x00380000 +#define UNICODE_CATEGORY_3_DEPENDENT 0x00000500 +#define UNICODE_CATEGORY_4_SUBJOINED 0x00000003 +#define UNICODE_CATEGORY_3_DIGRAPH 0x00000600 +#define UNICODE_CATEGORY_3_FINAL 0x00000700 +#define UNICODE_CATEGORY_3_HISTORIC 0x00000800 +#define UNICODE_CATEGORY_3_INITIAL 0x00000900 +#define UNICODE_CATEGORY_4_FILLER 0x00000004 +#define UNICODE_CATEGORY_2_CRYPTOGRAMMIC 0x00390000 +#define UNICODE_CATEGORY_2_DIGRAPH 0x003a0000 +#define UNICODE_CATEGORY_2_FILLER 0x003b0000 +#define UNICODE_CATEGORY_2_FRAGMENT 0x003c0000 +#define UNICODE_CATEGORY_2_HEAD_MARK 0x003d0000 +#define UNICODE_CATEGORY_3_SUBJOINED 0x00000a00 +/* #define UNICODE_CATEGORY_2_HISTORIC 0x00050000 */ +#define UNICODE_CATEGORY_2_LIGATURE 0x003e0000 +/* #define UNICODE_CATEGORY_2_MODIFIER 0x00350000 */ +#define UNICODE_CATEGORY_3_NASALIZATION 0x00000b00 +/* #define UNICODE_CATEGORY_3_REPETITION 0x00000300 */ +#define UNICODE_CATEGORY_3_SUBSCRIPT 0x00000c00 +/* #define UNICODE_CATEGORY_3_SUPERSCRIPT 0x00000100 */ +#define UNICODE_CATEGORY_2_PHONETIC 0x003f0000 +#define UNICODE_CATEGORY_3_IPA 0x00000d00 +#define UNICODE_CATEGORY_3_SINOLOGY 0x00000e00 +#define UNICODE_CATEGORY_3_UPA 0x00000f00 +/* #define UNICODE_CATEGORY_2_TONE 0x000c0000 */ +#define UNICODE_CATEGORY_2_VARIANT 0x00400000 +#define UNICODE_CATEGORY_2_VOWEL 0x00410000 +/* #define UNICODE_CATEGORY_3_DEPENDENT 0x00000500 */ +#define UNICODE_CATEGORY_4_LENGTH_MARK 0x00000005 +#define UNICODE_CATEGORY_4_TWO_PART 0x00000006 +#define UNICODE_CATEGORY_3_INDEPENDENT 0x00001000 +#define UNICODE_CATEGORY_3_INHERENT 0x00001100 +#define UNICODE_CATEGORY_3_LENGTH_MARK 0x00001200 +#define UNICODE_CATEGORY_3_MEDIAL 0x00001300 +/* #define UNICODE_CATEGORY_4_FILLER 0x00000004 */ +#define UNICODE_CATEGORY_1_LOGOGRAPH 0x08000000 +#define UNICODE_CATEGORY_1_MARK 0x09000000 +#define UNICODE_CATEGORY_2_POINT 0x00420000 +/* #define UNICODE_CATEGORY_2_TONE 0x000c0000 */ +/* #define UNICODE_CATEGORY_2_VOWEL 0x00410000 */ +#define UNICODE_CATEGORY_3_POINT 0x00001400 +#define UNICODE_CATEGORY_4_SPACING 0x00000007 +#define UNICODE_CATEGORY_1_NUMBER 0x0a000000 +#define UNICODE_CATEGORY_2_ACCOUNTING 0x00430000 +#define UNICODE_CATEGORY_2_ACROPHONIC 0x00440000 +#define UNICODE_CATEGORY_2_DIGIT 0x00450000 +/* #define UNICODE_CATEGORY_3_SUBSCRIPT 0x00000c00 */ +/* #define UNICODE_CATEGORY_3_SUPERSCRIPT 0x00000100 */ +#define UNICODE_CATEGORY_2_FRACTION 0x00460000 +/* #define UNICODE_CATEGORY_2_LETTER 0x00070000 */ +#define UNICODE_CATEGORY_3_ROMAN 0x00001500 +#define UNICODE_CATEGORY_4_HISTORIC 0x00000008 +#define UNICODE_CATEGORY_1_PUNCTUATION 0x0b000000 +/* #define UNICODE_CATEGORY_2_ANNOTATION 0x00010000 */ +#define UNICODE_CATEGORY_2_BRACKET 0x00470000 +/* #define UNICODE_CATEGORY_3_CJK 0x00000400 */ +#define UNICODE_CATEGORY_4_CORNER 0x00000009 +#define UNICODE_CATEGORY_3_FRAGMENT 0x00001600 +#define UNICODE_CATEGORY_3_HORIZONTAL 0x00001700 +#define UNICODE_CATEGORY_3_MATH 0x00001800 +/* #define UNICODE_CATEGORY_3_SUBSCRIPT 0x00000c00 */ +/* #define UNICODE_CATEGORY_3_SUPERSCRIPT 0x00000100 */ +#define UNICODE_CATEGORY_3_VERTICAL 0x00001900 +#define UNICODE_CATEGORY_2_DASH 0x00480000 +/* #define UNICODE_CATEGORY_3_VERTICAL 0x00001900 */ +#define UNICODE_CATEGORY_2_DICTIONARY 0x00490000 +#define UNICODE_CATEGORY_2_EDITORIAL 0x004a0000 +#define UNICODE_CATEGORY_3_BIBLICAL 0x00001a00 +/* #define UNICODE_CATEGORY_2_HISTORIC 0x00050000 */ +#define UNICODE_CATEGORY_2_QUOTATION 0x004b0000 +#define UNICODE_CATEGORY_2_SPACE 0x004c0000 +#define UNICODE_CATEGORY_2_VERTICAL 0x004d0000 +#define UNICODE_CATEGORY_1_SIGN 0x0c000000 +#define UNICODE_CATEGORY_1_SYLLABLE 0x0d000000 +/* #define UNICODE_CATEGORY_2_DIGRAPH 0x003a0000 */ +/* #define UNICODE_CATEGORY_2_HISTORIC 0x00050000 */ +/* #define UNICODE_CATEGORY_2_MODIFIER 0x00350000 */ +#define UNICODE_CATEGORY_3_LENGTH 0x00001b00 +/* #define UNICODE_CATEGORY_3_REPETITION 0x00000300 */ +/* #define UNICODE_CATEGORY_4_VERTICAL 0x00000001 */ +/* #define UNICODE_CATEGORY_2_RADICAL 0x00360000 */ +#define UNICODE_CATEGORY_1_SYMBOL 0x0e000000 +#define UNICODE_CATEGORY_2_ALCHEMICAL 0x004e0000 +#define UNICODE_CATEGORY_3_APPARATUS 0x00001c00 +#define UNICODE_CATEGORY_3_MEASURE 0x00001d00 +#define UNICODE_CATEGORY_3_PROCESS 0x00001e00 +#define UNICODE_CATEGORY_3_TIME 0x00001f00 +#define UNICODE_CATEGORY_2_ANIMAL 0x004f0000 +#define UNICODE_CATEGORY_3_FACE 0x00002000 +#define UNICODE_CATEGORY_3_ZODIAC 0x00002100 +#define UNICODE_CATEGORY_2_ARROW 0x00500000 +#define UNICODE_CATEGORY_3_BLACK 0x00002200 +#define UNICODE_CATEGORY_3_CROSSING 0x00002300 +#define UNICODE_CATEGORY_4_KNOT_THEORY 0x0000000a +#define UNICODE_CATEGORY_3_DOUBLE 0x00002400 +/* #define UNICODE_CATEGORY_3_FRAGMENT 0x00001600 */ +#define UNICODE_CATEGORY_3_HARPOON 0x00002500 +#define UNICODE_CATEGORY_3_LONG 0x00002600 +#define UNICODE_CATEGORY_3_TAIL 0x00002700 +#define UNICODE_CATEGORY_2_ASTROLOGICAL 0x00510000 +#define UNICODE_CATEGORY_2_ASTRONOMICAL 0x00520000 +#define UNICODE_CATEGORY_2_AUDIO_VIDEO 0x00530000 +#define UNICODE_CATEGORY_2_BEVERAGE 0x00540000 +#define UNICODE_CATEGORY_2_BODY_PART 0x00550000 +/* #define UNICODE_CATEGORY_3_FACE 0x00002000 */ +#define UNICODE_CATEGORY_2_BRAILLE_PATTERN 0x00560000 +#define UNICODE_CATEGORY_2_BROADCAST 0x00570000 +#define UNICODE_CATEGORY_3_CLOSED_CAPTIONING 0x00002800 +#define UNICODE_CATEGORY_2_CALENDRICAL 0x00580000 +/* #define UNICODE_CATEGORY_2_CANTILLATION 0x00020000 */ +#define UNICODE_CATEGORY_2_CELEBRATION 0x00590000 +#define UNICODE_CATEGORY_2_CLOCK_FACE 0x005a0000 +#define UNICODE_CATEGORY_2_CLOTHING 0x005b0000 +#define UNICODE_CATEGORY_2_COMIC_STYLE 0x005c0000 +#define UNICODE_CATEGORY_2_COMMUNICATION 0x005d0000 +#define UNICODE_CATEGORY_2_CULTURAL 0x005e0000 +#define UNICODE_CATEGORY_2_CURRENCY 0x005f0000 +/* #define UNICODE_CATEGORY_2_DICTIONARY 0x00490000 */ +#define UNICODE_CATEGORY_2_DIGRAM 0x00600000 +#define UNICODE_CATEGORY_3_YIJING 0x00002900 +#define UNICODE_CATEGORY_2_DINGBAT 0x00610000 +#define UNICODE_CATEGORY_3_ARROW 0x00002a00 +#define UNICODE_CATEGORY_3_CROSS 0x00002b00 +#define UNICODE_CATEGORY_3_HAND 0x00002c00 +#define UNICODE_CATEGORY_4_POINTING 0x0000000b +#define UNICODE_CATEGORY_3_ORNAMENTAL_BRACKET 0x00002d00 +#define UNICODE_CATEGORY_3_PUNCTUATION_ORNAMENT 0x00002e00 +#define UNICODE_CATEGORY_3_STARLIKE 0x00002f00 +/* #define UNICODE_CATEGORY_2_EDITORIAL 0x004a0000 */ +/* #define UNICODE_CATEGORY_3_BIBLICAL 0x00001a00 */ +#define UNICODE_CATEGORY_2_EMOTICON 0x00620000 +/* #define UNICODE_CATEGORY_3_FACE 0x00002000 */ +#define UNICODE_CATEGORY_4_CAT 0x0000000c +#define UNICODE_CATEGORY_3_GESTURE 0x00003000 +#define UNICODE_CATEGORY_2_ENTERTAINMENT 0x00630000 +#define UNICODE_CATEGORY_2_FAIRY_TALE 0x00640000 +#define UNICODE_CATEGORY_2_FINANCE 0x00650000 +#define UNICODE_CATEGORY_2_FOOD 0x00660000 +#define UNICODE_CATEGORY_2_FRUIT 0x00670000 +#define UNICODE_CATEGORY_2_GAME 0x00680000 +#define UNICODE_CATEGORY_3_CHESS 0x00003100 +#define UNICODE_CATEGORY_3_DICE 0x00003200 +#define UNICODE_CATEGORY_3_DOMINO_TILE 0x00003300 +#define UNICODE_CATEGORY_4_HORIZONTAL 0x0000000d +/* #define UNICODE_CATEGORY_4_VERTICAL 0x00000001 */ +#define UNICODE_CATEGORY_3_DRAUGHTS_AND_CHECKERS 0x00003400 +#define UNICODE_CATEGORY_3_GO 0x00003500 +#define UNICODE_CATEGORY_4_MARKER 0x0000000e +#define UNICODE_CATEGORY_3_JAPANESE_CHESS 0x00003600 +#define UNICODE_CATEGORY_3_MAHJONG_TILE 0x00003700 +#define UNICODE_CATEGORY_4_BAMBOO_SUIT 0x0000000f +#define UNICODE_CATEGORY_4_CHARACTER_SUIT 0x00000010 +#define UNICODE_CATEGORY_4_CIRCLE_SUIT 0x00000011 +#define UNICODE_CATEGORY_4_DRAGON 0x00000012 +#define UNICODE_CATEGORY_4_FLOWER 0x00000013 +#define UNICODE_CATEGORY_4_PREVAILING_WIND 0x00000014 +#define UNICODE_CATEGORY_4_SEASON 0x00000015 +#define UNICODE_CATEGORY_3_PLAYING_CARD 0x00003800 +#define UNICODE_CATEGORY_2_GENDER 0x00690000 +#define UNICODE_CATEGORY_2_GENEALOGICAL 0x006a0000 +#define UNICODE_CATEGORY_2_GEOMETRIC 0x006b0000 +#define UNICODE_CATEGORY_3_CIRCLE 0x00003900 +#define UNICODE_CATEGORY_2_GLOBE 0x006c0000 +#define UNICODE_CATEGORY_2_GRAPHIC 0x006d0000 +#define UNICODE_CATEGORY_3_BLOCK 0x00003a00 +#define UNICODE_CATEGORY_3_CONTROL_CODE 0x00003b00 +#define UNICODE_CATEGORY_3_FORM 0x00003c00 +#define UNICODE_CATEGORY_3_SHADE 0x00003d00 +#define UNICODE_CATEGORY_3_SPACE 0x00003e00 +#define UNICODE_CATEGORY_3_TERMINAL 0x00003f00 +/* #define UNICODE_CATEGORY_2_HEAD_MARK 0x003d0000 */ +#define UNICODE_CATEGORY_2_HEART 0x006e0000 +#define UNICODE_CATEGORY_2_HEXAGRAM 0x006f0000 +/* #define UNICODE_CATEGORY_3_YIJING 0x00002900 */ +#define UNICODE_CATEGORY_2_IDEOGRAPH 0x00700000 +#define UNICODE_CATEGORY_3_BRACKETED 0x00004000 +#define UNICODE_CATEGORY_3_CIRCLED 0x00004100 +#define UNICODE_CATEGORY_3_PARENTHESIZED 0x00004200 +#define UNICODE_CATEGORY_3_SQUARED 0x00004300 +#define UNICODE_CATEGORY_2_IDEOGRAPHIC_DESCRIPTION 0x00710000 +#define UNICODE_CATEGORY_2_LANDSCAPE 0x00720000 +/* #define UNICODE_CATEGORY_2_LETTER 0x00070000 */ +/* #define UNICODE_CATEGORY_3_BRACKETED 0x00004000 */ +/* #define UNICODE_CATEGORY_3_CIRCLED 0x00004100 */ +#define UNICODE_CATEGORY_4_ITALIC 0x00000016 +/* #define UNICODE_CATEGORY_3_PARENTHESIZED 0x00004200 */ +#define UNICODE_CATEGORY_3_REGIONAL_INDICATOR 0x00004400 +/* #define UNICODE_CATEGORY_3_SQUARED 0x00004300 */ +#define UNICODE_CATEGORY_4_ABBREVIATION 0x00000017 +#define UNICODE_CATEGORY_2_LETTERLIKE 0x00730000 +#define UNICODE_CATEGORY_2_MAP 0x00740000 +#define UNICODE_CATEGORY_2_MATH 0x00750000 +#define UNICODE_CATEGORY_3_ALPHANUMERIC 0x00004500 +#define UNICODE_CATEGORY_4_BOLD 0x00000018 +#define UNICODE_CATEGORY_4_BOLD_DIGIT 0x00000019 +#define UNICODE_CATEGORY_4_BOLD_FRAKTUR 0x0000001a +#define UNICODE_CATEGORY_4_BOLD_GREEK 0x0000001b +#define UNICODE_CATEGORY_4_BOLD_ITALIC 0x0000001c +#define UNICODE_CATEGORY_4_BOLD_ITALIC_GREEK 0x0000001d +#define UNICODE_CATEGORY_4_BOLD_SCRIPT 0x0000001e +#define UNICODE_CATEGORY_4_DOUBLE_STRUCK 0x0000001f +#define UNICODE_CATEGORY_4_DOUBLE_STRUCK_DIGIT 0x00000020 +#define UNICODE_CATEGORY_4_FRAKTUR 0x00000021 +#define UNICODE_CATEGORY_4_INITIAL 0x00000022 +#define UNICODE_CATEGORY_4_ISOLATED 0x00000023 +/* #define UNICODE_CATEGORY_4_ITALIC 0x00000016 */ +#define UNICODE_CATEGORY_4_ITALIC_GREEK 0x00000024 +#define UNICODE_CATEGORY_4_LARGE 0x00000025 +#define UNICODE_CATEGORY_4_LOOPED 0x00000026 +#define UNICODE_CATEGORY_4_MONOSPACE 0x00000027 +#define UNICODE_CATEGORY_4_MONOSPACE_DIGIT 0x00000028 +#define UNICODE_CATEGORY_4_SANS_SERIF 0x00000029 +#define UNICODE_CATEGORY_4_SANS_SERIF_BOLD 0x0000002a +#define UNICODE_CATEGORY_4_SANS_SERIF_BOLD_DIGIT 0x0000002b +#define UNICODE_CATEGORY_4_SANS_SERIF_BOLD_GREEK 0x0000002c +#define UNICODE_CATEGORY_4_SANS_SERIF_BOLD_ITALIC 0x0000002d +#define UNICODE_CATEGORY_4_SANS_SERIF_BOLD_ITALIC_GREEK 0x0000002e +#define UNICODE_CATEGORY_4_SANS_SERIF_DIGIT 0x0000002f +#define UNICODE_CATEGORY_4_SANS_SERIF_ITALIC 0x00000030 +#define UNICODE_CATEGORY_4_SCRIPT 0x00000031 +#define UNICODE_CATEGORY_4_STRETCHED 0x00000032 +#define UNICODE_CATEGORY_4_TAILED 0x00000033 +#define UNICODE_CATEGORY_3_ANGLE 0x00004600 +#define UNICODE_CATEGORY_3_CONSTANT 0x00004700 +#define UNICODE_CATEGORY_3_EMPTY_SET 0x00004800 +#define UNICODE_CATEGORY_3_ERROR_BAR 0x00004900 +#define UNICODE_CATEGORY_3_FENCE 0x00004a00 +#define UNICODE_CATEGORY_3_FORK 0x00004b00 +#define UNICODE_CATEGORY_3_HEBREW 0x00004c00 +#define UNICODE_CATEGORY_3_INTEGRAL 0x00004d00 +#define UNICODE_CATEGORY_4_FRAGMENT 0x00000034 +#define UNICODE_CATEGORY_3_OPERATOR 0x00004e00 +/* #define UNICODE_CATEGORY_4_FRAGMENT 0x00000034 */ +/* #define UNICODE_CATEGORY_4_LARGE 0x00000025 */ +#define UNICODE_CATEGORY_4_MODAL_LOGIC 0x00000035 +#define UNICODE_CATEGORY_3_RELATION 0x00004f00 +/* #define UNICODE_CATEGORY_3_SUBSCRIPT 0x00000c00 */ +/* #define UNICODE_CATEGORY_3_SUPERSCRIPT 0x00000100 */ +#define UNICODE_CATEGORY_2_MEASURE 0x00760000 +#define UNICODE_CATEGORY_2_MEDICAL 0x00770000 +#define UNICODE_CATEGORY_2_METRICAL 0x00780000 +#define UNICODE_CATEGORY_2_MICR 0x00790000 +#define UNICODE_CATEGORY_2_MONOGRAM 0x007a0000 +/* #define UNICODE_CATEGORY_3_YIJING 0x00002900 */ +#define UNICODE_CATEGORY_2_MUSIC 0x007b0000 +#define UNICODE_CATEGORY_3_ANCIENT_GREEK 0x00005000 +#define UNICODE_CATEGORY_4_INSTRUMENTAL 0x00000036 +#define UNICODE_CATEGORY_4_VOCALIC 0x00000037 +#define UNICODE_CATEGORY_3_BYZANTINE 0x00005100 +#define UNICODE_CATEGORY_4_AFONA_OR_YPOSTASEIS 0x00000038 +#define UNICODE_CATEGORY_4_AGOGIKA 0x00000039 +#define UNICODE_CATEGORY_4_ALLOIOSEIS 0x0000003a +#define UNICODE_CATEGORY_4_ARGIES 0x0000003b +#define UNICODE_CATEGORY_4_EKFONETIKA 0x0000003c +#define UNICODE_CATEGORY_4_FONITIKA 0x0000003d +#define UNICODE_CATEGORY_4_FTHORES 0x0000003e +#define UNICODE_CATEGORY_4_GRAMMATA 0x0000003f +#define UNICODE_CATEGORY_4_ICHIMATA_OR_MARTYRIKA 0x00000040 +#define UNICODE_CATEGORY_4_LEIMMATA_OR_SIOPES 0x00000041 +#define UNICODE_CATEGORY_4_MELODIMATA 0x00000042 +#define UNICODE_CATEGORY_4_PROSODIES 0x00000043 +#define UNICODE_CATEGORY_4_RYTHMIKA 0x00000044 +#define UNICODE_CATEGORY_4_SPECIAL 0x00000045 +#define UNICODE_CATEGORY_4_SYNAGMATA_OR_GORGOTITES 0x00000046 +#define UNICODE_CATEGORY_3_GREGORIAN 0x00005200 +#define UNICODE_CATEGORY_3_MENSURAL 0x00005300 +#define UNICODE_CATEGORY_4_PROLATION 0x00000047 +#define UNICODE_CATEGORY_4_REST 0x00000048 +#define UNICODE_CATEGORY_3_WESTERN 0x00005400 +#define UNICODE_CATEGORY_4_ACCIDENTAL 0x00000049 +#define UNICODE_CATEGORY_4_ANALYTIC 0x0000004a +#define UNICODE_CATEGORY_4_ARTICULATION 0x0000004b +#define UNICODE_CATEGORY_4_AUGMENTATION_DOT 0x0000004c +#define UNICODE_CATEGORY_4_BAR 0x0000004d +#define UNICODE_CATEGORY_4_BEAM_SLUR 0x0000004e +#define UNICODE_CATEGORY_4_CLEF 0x0000004f +#define UNICODE_CATEGORY_4_CODA 0x00000050 +#define UNICODE_CATEGORY_4_DYNAMIC 0x00000051 +#define UNICODE_CATEGORY_4_FIGURE_REPETITION 0x00000052 +#define UNICODE_CATEGORY_4_FLAG 0x00000053 +#define UNICODE_CATEGORY_4_HOLD_OR_PAUSE 0x00000054 +#define UNICODE_CATEGORY_4_INSTRUMENTATION 0x00000055 +#define UNICODE_CATEGORY_4_NOTE 0x00000056 +#define UNICODE_CATEGORY_4_NOTEHEAD 0x00000057 +#define UNICODE_CATEGORY_4_OCTAVE 0x00000058 +#define UNICODE_CATEGORY_4_ORNAMENT 0x00000059 +#define UNICODE_CATEGORY_4_PEDAL 0x0000005a +/* #define UNICODE_CATEGORY_4_REST 0x00000048 */ +#define UNICODE_CATEGORY_4_STAFF_BRACKET 0x0000005b +#define UNICODE_CATEGORY_4_STAVE 0x0000005c +#define UNICODE_CATEGORY_4_STEM 0x0000005d +#define UNICODE_CATEGORY_4_TABLATURE 0x0000005e +#define UNICODE_CATEGORY_4_TIME_SIGNATURE 0x0000005f +#define UNICODE_CATEGORY_4_TREMOLO 0x00000060 +#define UNICODE_CATEGORY_2_MUSICAL 0x007c0000 +#define UNICODE_CATEGORY_3_BALINESE 0x00005500 +/* #define UNICODE_CATEGORY_4_NOTE 0x00000056 */ +/* #define UNICODE_CATEGORY_2_NUMBER 0x00090000 */ +/* #define UNICODE_CATEGORY_3_CIRCLED 0x00004100 */ +#define UNICODE_CATEGORY_3_COUNTING_ROD_UNIT 0x00005600 +/* #define UNICODE_CATEGORY_3_PARENTHESIZED 0x00004200 */ +#define UNICODE_CATEGORY_2_OCR 0x007d0000 +#define UNICODE_CATEGORY_2_OFFICE 0x007e0000 +#define UNICODE_CATEGORY_2_PERSON 0x007f0000 +#define UNICODE_CATEGORY_3_OCCUPATION 0x00005700 +#define UNICODE_CATEGORY_2_PERSONAL_CARE 0x00800000 +#define UNICODE_CATEGORY_2_PLANT 0x00810000 +#define UNICODE_CATEGORY_2_POETIC 0x00820000 +#define UNICODE_CATEGORY_2_RECYCLING 0x00830000 +#define UNICODE_CATEGORY_2_RELIGIOUS 0x00840000 +#define UNICODE_CATEGORY_2_REPLACEMENT 0x00850000 +#define UNICODE_CATEGORY_2_ROMANCE 0x00860000 +#define UNICODE_CATEGORY_2_SCHOOL 0x00870000 +#define UNICODE_CATEGORY_2_SIGNAGE 0x00880000 +#define UNICODE_CATEGORY_2_SPORT 0x00890000 +#define UNICODE_CATEGORY_2_SPORTS 0x008a0000 +#define UNICODE_CATEGORY_2_STARLIKE 0x008b0000 +#define UNICODE_CATEGORY_2_SYLLABLE 0x008c0000 +/* #define UNICODE_CATEGORY_3_CIRCLED 0x00004100 */ +/* #define UNICODE_CATEGORY_3_PARENTHESIZED 0x00004200 */ +/* #define UNICODE_CATEGORY_3_SQUARED 0x00004300 */ +#define UNICODE_CATEGORY_2_TECHNICAL 0x008d0000 +#define UNICODE_CATEGORY_3_APL 0x00005800 +#define UNICODE_CATEGORY_3_CHEMISTRY 0x00005900 +#define UNICODE_CATEGORY_3_CROP 0x00005a00 +#define UNICODE_CATEGORY_3_DENTISTRY 0x00005b00 +#define UNICODE_CATEGORY_3_DRAFTING 0x00005c00 +#define UNICODE_CATEGORY_3_INTERFACE 0x00005d00 +#define UNICODE_CATEGORY_4_ARROW 0x00000061 +#define UNICODE_CATEGORY_4_INPUT_STATUS 0x00000062 +#define UNICODE_CATEGORY_3_KEYBOARD 0x00005e00 +#define UNICODE_CATEGORY_3_QUINE_CORNER 0x00005f00 +#define UNICODE_CATEGORY_2_TELEGRAPHIC 0x008e0000 +#define UNICODE_CATEGORY_2_TETRAGRAM 0x008f0000 +#define UNICODE_CATEGORY_2_TOOL 0x00900000 +#define UNICODE_CATEGORY_2_TRAFFIC_SIGN 0x00910000 +#define UNICODE_CATEGORY_2_TRANSLITERATION 0x00920000 +#define UNICODE_CATEGORY_2_TRIGRAM 0x00930000 +/* #define UNICODE_CATEGORY_3_YIJING 0x00002900 */ +#define UNICODE_CATEGORY_2_VEHICLE 0x00940000 +#define UNICODE_CATEGORY_2_WARNING_SIGN 0x00950000 +#define UNICODE_CATEGORY_2_WEATHER 0x00960000 +#define UNICODE_CATEGORY_2_WORD 0x00970000 +/* #define UNICODE_CATEGORY_3_CIRCLED 0x00004100 */ +/* #define UNICODE_CATEGORY_3_PARENTHESIZED 0x00004200 */ +/* #define UNICODE_CATEGORY_3_SQUARED 0x00004300 */ +#define UNICODE_CATEGORY_2_ZODIAC 0x00980000 +#define UNICODE_CATEGORY_1_VIRAMA 0x0f000000 +#define UNICODE_CATEGORY_1_VOWEL 0x10000000 +#define UNICODE_CATEGORY_1_WORD 0x11000000 +/* #define UNICODE_CATEGORY_2_LIGATURE 0x003e0000 */ diff --git a/unicode/courier-unicode-script-tab.h b/unicode/courier-unicode-script-tab.h new file mode 100644 index 0000000..c22eef0 --- /dev/null +++ b/unicode/courier-unicode-script-tab.h @@ -0,0 +1,132 @@ + unicode_script_unknown, + unicode_script_common, + unicode_script_latin, + unicode_script_greek, + unicode_script_cyrillic, + unicode_script_armenian, + unicode_script_hebrew, + unicode_script_arabic, + unicode_script_syriac, + unicode_script_thaana, + unicode_script_devanagari, + unicode_script_bengali, + unicode_script_gurmukhi, + unicode_script_gujarati, + unicode_script_oriya, + unicode_script_tamil, + unicode_script_telugu, + unicode_script_kannada, + unicode_script_malayalam, + unicode_script_sinhala, + unicode_script_thai, + unicode_script_lao, + unicode_script_tibetan, + unicode_script_myanmar, + unicode_script_georgian, + unicode_script_hangul, + unicode_script_ethiopic, + unicode_script_cherokee, + unicode_script_canadian_aboriginal, + unicode_script_ogham, + unicode_script_runic, + unicode_script_khmer, + unicode_script_mongolian, + unicode_script_hiragana, + unicode_script_katakana, + unicode_script_bopomofo, + unicode_script_han, + unicode_script_yi, + unicode_script_old_italic, + unicode_script_gothic, + unicode_script_deseret, + unicode_script_inherited, + unicode_script_tagalog, + unicode_script_hanunoo, + unicode_script_buhid, + unicode_script_tagbanwa, + unicode_script_limbu, + unicode_script_tai_le, + unicode_script_linear_b, + unicode_script_ugaritic, + unicode_script_shavian, + unicode_script_osmanya, + unicode_script_cypriot, + unicode_script_braille, + unicode_script_buginese, + unicode_script_coptic, + unicode_script_new_tai_lue, + unicode_script_glagolitic, + unicode_script_tifinagh, + unicode_script_syloti_nagri, + unicode_script_old_persian, + unicode_script_kharoshthi, + unicode_script_balinese, + unicode_script_cuneiform, + unicode_script_phoenician, + unicode_script_phags_pa, + unicode_script_nko, + unicode_script_sundanese, + unicode_script_lepcha, + unicode_script_ol_chiki, + unicode_script_vai, + unicode_script_saurashtra, + unicode_script_kayah_li, + unicode_script_rejang, + unicode_script_lycian, + unicode_script_carian, + unicode_script_lydian, + unicode_script_cham, + unicode_script_tai_tham, + unicode_script_tai_viet, + unicode_script_avestan, + unicode_script_egyptian_hieroglyphs, + unicode_script_samaritan, + unicode_script_lisu, + unicode_script_bamum, + unicode_script_javanese, + unicode_script_meetei_mayek, + unicode_script_imperial_aramaic, + unicode_script_old_south_arabian, + unicode_script_inscriptional_parthian, + unicode_script_inscriptional_pahlavi, + unicode_script_old_turkic, + unicode_script_kaithi, + unicode_script_batak, + unicode_script_brahmi, + unicode_script_mandaic, + unicode_script_chakma, + unicode_script_meroitic_cursive, + unicode_script_meroitic_hieroglyphs, + unicode_script_miao, + unicode_script_sharada, + unicode_script_sora_sompeng, + unicode_script_takri, + unicode_script_caucasian_albanian, + unicode_script_bassa_vah, + unicode_script_duployan, + unicode_script_elbasan, + unicode_script_grantha, + unicode_script_pahawh_hmong, + unicode_script_khojki, + unicode_script_linear_a, + unicode_script_mahajani, + unicode_script_manichaean, + unicode_script_mende_kikakui, + unicode_script_modi, + unicode_script_mro, + unicode_script_old_north_arabian, + unicode_script_nabataean, + unicode_script_palmyrene, + unicode_script_pau_cin_hau, + unicode_script_old_permic, + unicode_script_psalter_pahlavi, + unicode_script_siddham, + unicode_script_khudawadi, + unicode_script_tirhuta, + unicode_script_warang_citi, + unicode_script_ahom, + unicode_script_anatolian_hieroglyphs, + unicode_script_hatran, + unicode_script_multani, + unicode_script_old_hungarian, + unicode_script_signwriting diff --git a/unicode/courier-unicode.h b/unicode/courier-unicode.h index 42ef9a1..a84e230 100644 --- a/unicode/courier-unicode.h +++ b/unicode/courier-unicode.h @@ -67,12 +67,7 @@ unicode_char unicode_html40ent_lookup(const char *n); extern int unicode_wcwidth(unicode_char c); extern size_t unicode_wcwidth_str(const unicode_char *c); -/* -** The unicode-ish isspace() -*/ -extern int unicode_isspace(unicode_char ch); - -/* Internal unicode table lookup function */ +/* Internal unicode table lookup functions */ extern uint8_t unicode_tab_lookup(unicode_char ch, const size_t *unicode_indextab, @@ -81,6 +76,85 @@ extern uint8_t unicode_tab_lookup(unicode_char ch, const uint8_t *unicode_classtab, uint8_t uclass); +extern uint32_t unicode_tab32_lookup(unicode_char ch, + const size_t *unicode_indextab, + size_t unicode_indextab_sizeof, + const uint8_t (*unicode_rangetab)[2], + const uint32_t *unicode_classtab, + uint32_t uclass); + +/* +** Look up unicode categorization, see http://unicode.org/notes/tn36/ +** +** Returns a 32 bit value with four unicode categories encoded in the +** bits defined by UNICODE_CATEGORY_1..4 +*/ + +#define UNICODE_CATEGORY_1 0xFF000000 +#define UNICODE_CATEGORY_2 0x00FF0000 +#define UNICODE_CATEGORY_3 0x0000FF00 +#define UNICODE_CATEGORY_4 0x000000FF + +#include <courier-unicode-categories-tab.h> + +uint32_t unicode_category_lookup(unicode_char); + +/* +** Return non-0 for TAB, and all UNICODE_CATEGORY_2_SPACE. +*/ + +extern int unicode_isblank(unicode_char ch); + +/* +** The unicode-ish isspace(). In addition to return non-0 for +** unicode_isblank(), this also returns non-0 for unicode characters +** with linebreaking properties of BK, CR, LF, NL, and SP. +*/ +extern int unicode_isspace(unicode_char ch); + +/* +** Return non-0 for all UNICODE_CATEGORY_1_LETTER +*/ + +extern int unicode_isalpha(unicode_char ch); + +/* +** Return non-0 for all UNICODE_CATEGORY_1_NUMBER | UNICODE_CATEGORY_2_DIGIT, +** only (no third categories). +*/ +extern int unicode_isdigit(unicode_char ch); + +/* +** Return non-0 for all unicode_isalpha() or unicode_isdigit(). +*/ + +extern int unicode_isalnum(unicode_char ch); + +/* +** Returns non-0 for all codepoints above SPACE which are not +** unicode_isspace(). +*/ + +extern int unicode_isgraph(unicode_char ch); + +/* +** Return non-0 for all UNICODE_CATEGORY_1_PUNCTUATION. +*/ + +extern int unicode_ispunct(unicode_char ch); + +/* +** Return non-0 for all unicode_isalpha() for which the character is +** equal to unicode_lc() of itself. +*/ +extern int unicode_islower(unicode_char ch); + +/* +** Return non-0 for all unicode_isalpha() for which the character is +** equal to unicode_uc() of itself. +*/ +extern int unicode_isupper(unicode_char ch); + /* ** Implementation of grapheme cluster boundary rules, as per ** http://www.unicode.org/reports/tr29/tr29-27.html @@ -93,141 +167,9 @@ extern uint8_t unicode_tab_lookup(unicode_char ch, int unicode_grapheme_break(unicode_char a, unicode_char b); typedef enum { - /* UNICODE_SCRIPT_T */ - unicode_script_unknown, - unicode_script_common, - unicode_script_latin, - unicode_script_greek, - unicode_script_cyrillic, - unicode_script_armenian, - unicode_script_hebrew, - unicode_script_arabic, - unicode_script_syriac, - unicode_script_thaana, - unicode_script_devanagari, - unicode_script_bengali, - unicode_script_gurmukhi, - unicode_script_gujarati, - unicode_script_oriya, - unicode_script_tamil, - unicode_script_telugu, - unicode_script_kannada, - unicode_script_malayalam, - unicode_script_sinhala, - unicode_script_thai, - unicode_script_lao, - unicode_script_tibetan, - unicode_script_myanmar, - unicode_script_georgian, - unicode_script_hangul, - unicode_script_ethiopic, - unicode_script_cherokee, - unicode_script_canadian_aboriginal, - unicode_script_ogham, - unicode_script_runic, - unicode_script_khmer, - unicode_script_mongolian, - unicode_script_hiragana, - unicode_script_katakana, - unicode_script_bopomofo, - unicode_script_han, - unicode_script_yi, - unicode_script_old_italic, - unicode_script_gothic, - unicode_script_deseret, - unicode_script_inherited, - unicode_script_tagalog, - unicode_script_hanunoo, - unicode_script_buhid, - unicode_script_tagbanwa, - unicode_script_limbu, - unicode_script_tai_le, - unicode_script_linear_b, - unicode_script_ugaritic, - unicode_script_shavian, - unicode_script_osmanya, - unicode_script_cypriot, - unicode_script_braille, - unicode_script_buginese, - unicode_script_coptic, - unicode_script_new_tai_lue, - unicode_script_glagolitic, - unicode_script_tifinagh, - unicode_script_syloti_nagri, - unicode_script_old_persian, - unicode_script_kharoshthi, - unicode_script_balinese, - unicode_script_cuneiform, - unicode_script_phoenician, - unicode_script_phags_pa, - unicode_script_nko, - unicode_script_sundanese, - unicode_script_lepcha, - unicode_script_ol_chiki, - unicode_script_vai, - unicode_script_saurashtra, - unicode_script_kayah_li, - unicode_script_rejang, - unicode_script_lycian, - unicode_script_carian, - unicode_script_lydian, - unicode_script_cham, - unicode_script_tai_tham, - unicode_script_tai_viet, - unicode_script_avestan, - unicode_script_egyptian_hieroglyphs, - unicode_script_samaritan, - unicode_script_lisu, - unicode_script_bamum, - unicode_script_javanese, - unicode_script_meetei_mayek, - unicode_script_imperial_aramaic, - unicode_script_old_south_arabian, - unicode_script_inscriptional_parthian, - unicode_script_inscriptional_pahlavi, - unicode_script_old_turkic, - unicode_script_kaithi, - unicode_script_batak, - unicode_script_brahmi, - unicode_script_mandaic, - unicode_script_chakma, - unicode_script_meroitic_cursive, - unicode_script_meroitic_hieroglyphs, - unicode_script_miao, - unicode_script_sharada, - unicode_script_sora_sompeng, - unicode_script_takri, - unicode_script_caucasian_albanian, - unicode_script_bassa_vah, - unicode_script_duployan, - unicode_script_elbasan, - unicode_script_grantha, - unicode_script_pahawh_hmong, - unicode_script_khojki, - unicode_script_linear_a, - unicode_script_mahajani, - unicode_script_manichaean, - unicode_script_mende_kikakui, - unicode_script_modi, - unicode_script_mro, - unicode_script_old_north_arabian, - unicode_script_nabataean, - unicode_script_palmyrene, - unicode_script_pau_cin_hau, - unicode_script_old_permic, - unicode_script_psalter_pahlavi, - unicode_script_siddham, - unicode_script_khudawadi, - unicode_script_tirhuta, - unicode_script_warang_citi, - unicode_script_ahom, - unicode_script_anatolian_hieroglyphs, - unicode_script_hatran, - unicode_script_multani, - unicode_script_old_hungarian, - unicode_script_signwriting - - /* UNICODE_SCRIPT_T */ + +#include <courier-unicode-script-tab.h> + } unicode_script_t; /* diff --git a/unicode/mkcategories.pl b/unicode/mkcategories.pl new file mode 100755 index 0000000..c4edaa6 --- /dev/null +++ b/unicode/mkcategories.pl @@ -0,0 +1,113 @@ +#! /usr/bin/perl +# +# Compile Categories.txt into C array declarations. +# +# The array's structure is [firstchar, lastchar, mask], giving the +# category of the character range firstchar-lastchar. +# +# The ranges are sorted in numerical order. +# +# An array gets generated for each block of 4096 unicode characters. +# +# Finally, two arrays get declared: a pointer to an array for each 4096 +# unicode character block, and the number of elements in the array. +# +# The pointer is NULL for each block of 4096 unicode characters that is not +# defined in Categories.txt + +use strict; +use warnings; +use mkcommon; + +my %categories; + +my $obj=mkcommon->new(classtype => "uint32_t"); + +open(F, "Categories.txt") || die; + +while (defined($_=<F>)) +{ + chomp; + + my @w=split(/\t/); + + my $f = $w[0]; + + my @combined_category; + + my $categories = \%categories; + + foreach my $i (2..5) + { + my $c = uc($w[$i]); + + last unless $c; + + $c =~ s/[;\-\s]+/_/g; + + my $n = $i-1; + + $c = "UNICODE_CATEGORY_${n}_$c"; + + $categories = ($categories->{$c} //= {}); + + push @combined_category, $c; + } + + eval "\$f=0x$f"; + + $obj->range($f, $f, join("|",@combined_category)); +} + +open(H, ">courier-unicode-categories-tab.h.tmp") or die; + +my @counters = (0, 0, 0, 0); +my %seen; + +sub print_categories { + my ($categories, $level) = @_; + + my @names = sort keys %$categories; + + foreach my $name (@names) + { + my $seen = 1; + my $v = $seen{$name}; + + unless ($v) + { + $seen = 0; + + die if ($v = ++$counters[$level]) > 255; + $seen{$name} = $v; + } + + my $s = ""; + + $s .= "/* " + if $seen; + + $s .= "#define " + . (" " x $level) + . $name ; + + $s = substr($s . (" " x 66), 0, 66) + if length($s) < 66; + + print H "$s 0x" + . ("00" x $level) . sprintf("%02x", $v) + . ("00" x (3-$level)); + + print H " */" + if $seen; + print H "\n"; + + print_categories($categories->{$name}, $level+1); + } +} + +print_categories(\%categories, 0); +$obj->output; +close(H) or die; +rename("courier-unicode-categories-tab.h.tmp", + "courier-unicode-categories-tab.h") or die; diff --git a/unicode/mkcommon.pm b/unicode/mkcommon.pm index 2969f32..dc2fa99 100644 --- a/unicode/mkcommon.pm +++ b/unicode/mkcommon.pm @@ -16,13 +16,13 @@ our @ISA = qw(Exporter); # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK # will save memory. our %EXPORT_TAGS = ( 'all' => [ qw( - + ) ] ); our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); our @EXPORT = qw( - + ); our $VERSION = '0.01'; @@ -33,20 +33,23 @@ my $BLOCK_SIZE=256; sub new { - my $this=shift; + my ($this, %params) = @_; my $class = ref($this) || $this; - my $self = {}; + my $self = \%params; + bless $self, $class; - $$self{'char_array'}=[]; - $$self{'char_class'}=[]; - $$self{'char_start'}=[0]; + $self->{'char_array'}=[]; + $self->{'char_class'}=[]; + $self->{'char_start'}=[0]; + + $self->{'last_block'}=-1; + $self->{'last'}=""; + $self->{'last_f'}=0; + $self->{'last_l'}=0; - $$self{'last_block'}=-1; - $$self{'last'}=""; - $$self{'last_f'}=0; - $$self{'last_l'}=0; + $self->{"classtype"} //= "uint8_t"; return $self; } @@ -57,15 +60,15 @@ sub _doemit_block { my $f=shift; my $l=shift; - push @{$$this{'char_array'}}, [$f, $l]; - push @{$$this{'char_class'}}, $$this{'last'}; + push @{$this->{'char_array'}}, [$f, $l]; + push @{$this->{'char_class'}}, $this->{'last'}; } sub _doemit_endblock { my $this=shift; - push @{$$this{'char_start'}}, $#{$$this{'char_array'}}+1; + push @{$this->{'char_start'}}, $#{$this->{'char_array'}}+1; } # _doemit invokes _doemit_block() for each unicode char range with a given @@ -83,23 +86,23 @@ sub _doemit { my $this=shift; $this->_doemit_endblock() - if int($$this{'last_f'} / $BLOCK_SIZE) - != $$this{'last_block'} && $$this{'last_block'} != -1; + if int($this->{'last_f'} / $BLOCK_SIZE) + != $this->{'last_block'} && $this->{'last_block'} != -1; - if (int($$this{'last_f'} / $BLOCK_SIZE) != int($$this{'last_l'} / $BLOCK_SIZE)) + if (int($this->{'last_f'} / $BLOCK_SIZE) != int($this->{'last_l'} / $BLOCK_SIZE)) { - while (int($$this{'last_f'} / $BLOCK_SIZE) != int($$this{'last_l'} / $BLOCK_SIZE)) + while (int($this->{'last_f'} / $BLOCK_SIZE) != int($this->{'last_l'} / $BLOCK_SIZE)) { - my $n=int($$this{'last_f'} / $BLOCK_SIZE) * $BLOCK_SIZE + ($BLOCK_SIZE-1); + my $n=int($this->{'last_f'} / $BLOCK_SIZE) * $BLOCK_SIZE + ($BLOCK_SIZE-1); - $this->_doemit_block($$this{'last_f'}, $n); + $this->_doemit_block($this->{'last_f'}, $n); $this->_doemit_endblock(); - $$this{'last_f'}=$n+1; + $this->{'last_f'}=$n+1; } } - $this->_doemit_block($$this{'last_f'}, $$this{'last_l'}); + $this->_doemit_block($this->{'last_f'}, $this->{'last_l'}); - $$this{'last_block'}=int($$this{'last_l'} / $BLOCK_SIZE); + $this->{'last_block'}=int($this->{'last_l'} / $BLOCK_SIZE); } # @@ -115,17 +118,17 @@ sub range { my $l=shift; my $t=shift; - if ($$this{'last_l'} + 1 == $f && $$this{'last'} eq $t) + if ($this->{'last_l'} + 1 == $f && $this->{'last'} eq $t) { - $$this{'last_l'}=$l; + $this->{'last_l'}=$l; return; } - $this->_doemit() if $$this{'last'}; # New linebreaking class + $this->_doemit() if $this->{'last'}; # New linebreaking class - $$this{'last_f'}=$f; - $$this{'last_l'}=$l; - $$this{'last'}=$t; + $this->{'last_f'}=$f; + $this->{'last_l'}=$l; + $this->{'last'}=$t; } sub output { @@ -141,7 +144,7 @@ sub output { my $modulo=sprintf("0x%X", $BLOCK_SIZE-1); - foreach ( @{$$this{'char_array'}} ) + foreach ( @{$this->{'char_array'}} ) { print "${comma}{0x" . sprintf("%04x", $$_[0]) . " & $modulo, 0x" . sprintf("%04x", $$_[1]) . " & $modulo}"; @@ -150,10 +153,10 @@ sub output { print "};\n\n"; - print "static const uint8_t unicode_classtab[]={\n"; + print "static const " . $this->{classtype} . " unicode_classtab[]={\n"; $comma="\t"; - foreach ( @{$$this{'char_class'}} ) + foreach ( @{$this->{'char_class'}} ) { print "${comma}$_"; $comma=",\n\t"; @@ -166,14 +169,14 @@ sub output { $comma="\t"; my $prev_block=-1; - foreach (@{$$this{'char_start'}}) + foreach (@{$this->{'char_start'}}) { my $sp=$_; my $cnt=1; - if ($sp <= $#{$$this{'char_array'}}) + if ($sp <= $#{$this->{'char_array'}}) { - my $block=int($$this{'char_array'}->[$sp]->[0] / $BLOCK_SIZE); + my $block=int($this->{'char_array'}->[$sp]->[0] / $BLOCK_SIZE); $cnt = $block - $prev_block; $prev_block=$block; diff --git a/unicode/mkscripts.pl b/unicode/mkscripts.pl index 2d0d8ec..3e936a1 100755 --- a/unicode/mkscripts.pl +++ b/unicode/mkscripts.pl @@ -63,15 +63,6 @@ while (defined($_=<F>)) push @table, [$f, $l, "unicode_script_" . lc($s)]; } -open(F, "<courier-unicode.h") or die; - -my @unicode_h=<F>; -close(F); - -my ($f, $l) = grep { $unicode_h[$_] =~ /UNICODE_SCRIPT_T/ } (0..$#unicode_h); - -die unless $f && $l; - my @repl = map { "\tunicode_script_" . lc($_) . ",\n"; } sort { @@ -82,12 +73,10 @@ unshift @repl, "\tunicode_script_unknown,\n"; $repl[$#repl] =~ s/,//; -splice @unicode_h, $f+1, $l-$f-2, @repl; - -open(F, ">courier-unicode.h.tmp") or die; -print F join("", @unicode_h); +open(F, ">courier-unicode-script-tab.h.tmp") or die; +print F join("", @repl); close(F) or die; -rename("courier-unicode.h.tmp", "courier-unicode.h") or die; +rename("courier-unicode-script-tab.h.tmp", "courier-unicode-script-tab.h") or die; grep { diff --git a/unicode/unicode_categories.c b/unicode/unicode_categories.c new file mode 100644 index 0000000..9353dbf --- /dev/null +++ b/unicode/unicode_categories.c @@ -0,0 +1,84 @@ +/* +** Copyright 2015 Double Precision, Inc. +** See COPYING for distribution information. +** +*/ + +#include "unicode_config.h" +#include "courier-unicode.h" +#include "categoriestab.h" +#include "linebreaktab_internal.h" + +uint32_t unicode_category_lookup(unicode_char ch) +{ + return unicode_tab32_lookup(ch, + unicode_indextab, + sizeof(unicode_indextab) + / sizeof(unicode_indextab[0]), + unicode_rangetab, + unicode_classtab, + 0); +} + +int unicode_isspace(unicode_char ch) +{ + switch (unicode_lb_lookup(ch)) { + case UNICODE_LB_BK: + case UNICODE_LB_CR: + case UNICODE_LB_LF: + case UNICODE_LB_NL: + case UNICODE_LB_SP: + return 1; + } + + return unicode_isblank(ch); +} + +int unicode_isblank(unicode_char ch) +{ + if (ch == 9) + return 1; + + if ((unicode_category_lookup(ch) & UNICODE_CATEGORY_2) == + UNICODE_CATEGORY_2_SPACE) + return 1; + return 0; +} + +int unicode_isalpha(unicode_char ch) +{ + return (unicode_category_lookup(ch) & UNICODE_CATEGORY_1) == + UNICODE_CATEGORY_1_LETTER; +} + +int unicode_isdigit(unicode_char ch) +{ + return unicode_category_lookup(ch) == + (UNICODE_CATEGORY_1_NUMBER | UNICODE_CATEGORY_2_DIGIT); +} + +int unicode_isalnum(unicode_char ch) +{ + return unicode_is_alpha(ch) || unicode_is_digit(ch); +} + +int unicode_isgraph(unicode_char ch) +{ + return (ch >= ' ' && !unicode_isspace(ch)); +} + +int unicode_ispunct(unicode_char ch) +{ + return (unicode_category_lookup(ch) & UNICODE_CATEGORY_1) == + UNICODE_CATEGORY_1_PUNCTUATION; +} + +int unicode_islower(unicode_char ch) +{ + return unicode_isalpha(ch) && ch == unicode_lc(ch); +} + +int unicode_isupper(unicode_char ch) +{ + return unicode_isalpha(ch) && ch == unicode_uc(ch); +} diff --git a/unicode/unicode_tablookup.c b/unicode/unicode_tablookup.c index 4674da2..067aa5d 100644 --- a/unicode/unicode_tablookup.c +++ b/unicode/unicode_tablookup.c @@ -47,3 +47,42 @@ uint8_t unicode_tab_lookup(unicode_char ch, return uclass; } + +uint32_t unicode_tab32_lookup(unicode_char ch, + const size_t *unicode_indextab, + size_t unicode_indextab_sizeof, + const uint8_t (*unicode_rangetab)[2], + const uint32_t *unicode_classtab, + uint32_t uclass) +{ + size_t cl=ch / BLOCK_SIZE; + + if (cl < unicode_indextab_sizeof-1) + { + const size_t start_pos=unicode_indextab[cl]; + const uint8_t (*p)[2]=unicode_rangetab + start_pos; + size_t b=0, e=unicode_indextab[cl+1] - start_pos; + uint32_t chmodcl= ch & (BLOCK_SIZE-1); + + while (b < e) + { + size_t n=b + (e-b)/2; + + if (chmodcl >= p[n][0]) + { + if (chmodcl <= p[n][1]) + { + uclass=unicode_classtab[start_pos+n]; + break; + } + b=n+1; + } + else + { + e=n; + } + } + } + + return uclass; +} diff --git a/unicode/unicode_wcwidth.c b/unicode/unicode_wcwidth.c index 4fbfd1a..bea01f5 100644 --- a/unicode/unicode_wcwidth.c +++ b/unicode/unicode_wcwidth.c @@ -42,23 +42,6 @@ int unicode_wcwidth(unicode_char c) return 1; } -int unicode_isspace(unicode_char ch) -{ - if (ch == 9) - return 1; - - switch (unicode_lb_lookup(ch)) { - case UNICODE_LB_BK: - case UNICODE_LB_CR: - case UNICODE_LB_LF: - case UNICODE_LB_NL: - case UNICODE_LB_SP: - return 1; - } - - return 0; -} - size_t unicode_wcwidth_str(const unicode_char *c) { size_t w=0; |
