From 11e6c04d7ee196c794d19ae43ad4d1ad57786d3d Mon Sep 17 00:00:00 2001 From: Bertrand Bellenot <bertrand.bellenot@cern.ch> Date: Wed, 6 Nov 2013 11:37:46 +0100 Subject: [PATCH] From Gordon Watts: build iconv and glib (needed by gdk) from source --- graf2d/win32gdk/CMakeLists.txt | 89 +- graf2d/win32gdk/Module.mk | 63 +- graf2d/win32gdk/gdk/dll/glib-1.3.dll | Bin 360316 -> 0 bytes graf2d/win32gdk/gdk/dll/iconv-1.3.dll | Bin 747486 -> 0 bytes graf2d/win32gdk/gdk/lib/glib-1.3.lib | Bin 402760 -> 0 bytes graf2d/win32gdk/gdk/src/gdk/gdkevents.c | 4 - graf2d/win32gdk/gdk/src/gdk/makefile.msc | 2 +- .../gdk/src/gdk/win32/gdkcolor-win32.c | 10 - .../win32gdk/gdk/src/gdk/win32/gdkdnd-win32.c | 3 +- .../gdk/src/gdk/win32/gdkdrawable-win32.c | 3 +- .../gdk/src/gdk/win32/gdkevents-win32.c | 17 +- .../gdk/src/gdk/win32/gdkfont-win32.c | 10 +- .../win32gdk/gdk/src/gdk/win32/gdkim-win32.c | 1 - .../gdk/src/gdk/win32/gdkmain-win32.c | 1 - .../gdk/src/gdk/win32/gdkpixmap-win32.c | 2 +- .../gdk/src/gdk/win32/gdkproperty-win32.c | 2 +- .../gdk/src/gdk/win32/gdkregion-win32.c | 1 - .../gdk/src/gdk/win32/gdkselection-win32.c | 1 - .../gdk/src/gdk/win32/gdkwindow-win32.c | 7 - graf2d/win32gdk/gdk/src/glib/config.h | 182 + graf2d/win32gdk/gdk/src/glib/config.h.win32 | 182 + graf2d/win32gdk/gdk/src/glib/galloca.h | 2 +- graf2d/win32gdk/gdk/src/glib/garray.c | 670 + graf2d/win32gdk/gdk/src/glib/garray.h | 14 +- graf2d/win32gdk/gdk/src/glib/gasyncqueue.c | 443 + graf2d/win32gdk/gdk/src/glib/gasyncqueue.h | 2 +- graf2d/win32gdk/gdk/src/glib/gbacktrace.c | 300 + graf2d/win32gdk/gdk/src/glib/gbacktrace.h | 2 +- graf2d/win32gdk/gdk/src/glib/gbsearcharray.c | 213 + graf2d/win32gdk/gdk/src/glib/gbsearcharray.h | 148 + graf2d/win32gdk/gdk/src/glib/gcache.c | 212 + graf2d/win32gdk/gdk/src/glib/gcache.h | 2 +- graf2d/win32gdk/gdk/src/glib/gcompletion.c | 294 + graf2d/win32gdk/gdk/src/glib/gcompletion.h | 10 +- graf2d/win32gdk/gdk/src/glib/gconvert.c | 1321 ++ graf2d/win32gdk/gdk/src/glib/gconvert.h | 64 +- graf2d/win32gdk/gdk/src/glib/gdataset.c | 631 + graf2d/win32gdk/gdk/src/glib/gdataset.h | 2 +- graf2d/win32gdk/gdk/src/glib/gdate.c | 1445 ++ graf2d/win32gdk/gdk/src/glib/gdate.h | 60 +- graf2d/win32gdk/gdk/src/glib/gerror.c | 254 + graf2d/win32gdk/gdk/src/glib/gerror.h | 2 +- graf2d/win32gdk/gdk/src/glib/gfileutils.c | 820 + graf2d/win32gdk/gdk/src/glib/gfileutils.h | 10 +- graf2d/win32gdk/gdk/src/glib/ghash.c | 696 + graf2d/win32gdk/gdk/src/glib/ghash.h | 90 +- graf2d/win32gdk/gdk/src/glib/ghook.c | 640 + graf2d/win32gdk/gdk/src/glib/ghook.h | 74 +- graf2d/win32gdk/gdk/src/glib/giochannel.c | 2256 +++ graf2d/win32gdk/gdk/src/glib/giochannel.h | 269 +- graf2d/win32gdk/gdk/src/glib/giounix.c | 583 + graf2d/win32gdk/gdk/src/glib/giowin32.c | 1463 ++ graf2d/win32gdk/gdk/src/glib/glib-object.h | 3 +- graf2d/win32gdk/gdk/src/glib/glib.def | 703 + graf2d/win32gdk/gdk/src/glib/glib.h | 86 +- graf2d/win32gdk/gdk/src/glib/glib.rc | 30 + .../win32gdk/gdk/src/glib/glibconfig-bogus.h | 202 + graf2d/win32gdk/gdk/src/glib/glibconfig.h | 175 +- .../win32gdk/gdk/src/glib/glibconfig.h.win32 | 169 + graf2d/win32gdk/gdk/src/glib/glibintl.h | 28 + graf2d/win32gdk/gdk/src/glib/glist.c | 876 + graf2d/win32gdk/gdk/src/glib/glist.h | 13 +- graf2d/win32gdk/gdk/src/glib/gmacros.h | 12 + graf2d/win32gdk/gdk/src/glib/gmain.c | 3203 ++++ graf2d/win32gdk/gdk/src/glib/gmain.h | 50 +- graf2d/win32gdk/gdk/src/glib/gmarkup.c | 1735 ++ graf2d/win32gdk/gdk/src/glib/gmarkup.h | 20 +- graf2d/win32gdk/gdk/src/glib/gmem.c | 1262 ++ graf2d/win32gdk/gdk/src/glib/gmem.h | 154 +- graf2d/win32gdk/gdk/src/glib/gmessages.c | 1185 ++ graf2d/win32gdk/gdk/src/glib/gmessages.h | 30 +- graf2d/win32gdk/gdk/src/glib/gnode.c | 1064 ++ graf2d/win32gdk/gdk/src/glib/gnode.h | 4 +- graf2d/win32gdk/gdk/src/glib/gobject/gtype.h | 401 + graf2d/win32gdk/gdk/src/glib/gpattern.c | 300 + graf2d/win32gdk/gdk/src/glib/gpattern.h | 58 + graf2d/win32gdk/gdk/src/glib/gprimes.c | 83 + graf2d/win32gdk/gdk/src/glib/gprimes.h | 2 +- graf2d/win32gdk/gdk/src/glib/gqsort.c | 282 + graf2d/win32gdk/gdk/src/glib/gqsort.h | 4 +- graf2d/win32gdk/gdk/src/glib/gquark.h | 10 +- graf2d/win32gdk/gdk/src/glib/gqueue.c | 263 + graf2d/win32gdk/gdk/src/glib/gqueue.h | 2 +- graf2d/win32gdk/gdk/src/glib/grand.c | 403 + graf2d/win32gdk/gdk/src/glib/grand.h | 6 +- graf2d/win32gdk/gdk/src/glib/grel.c | 449 + graf2d/win32gdk/gdk/src/glib/grel.h | 2 +- graf2d/win32gdk/gdk/src/glib/gscanner.c | 1707 ++ graf2d/win32gdk/gdk/src/glib/gscanner.h | 17 +- graf2d/win32gdk/gdk/src/glib/gshell.c | 658 + graf2d/win32gdk/gdk/src/glib/gshell.h | 2 +- graf2d/win32gdk/gdk/src/glib/gslist.c | 767 + graf2d/win32gdk/gdk/src/glib/gslist.h | 8 +- .../gdk/src/glib/gspawn-win32-helper.c | 231 + graf2d/win32gdk/gdk/src/glib/gspawn-win32.c | 984 + graf2d/win32gdk/gdk/src/glib/gspawn.c | 1404 ++ graf2d/win32gdk/gdk/src/glib/gspawn.h | 13 +- graf2d/win32gdk/gdk/src/glib/gstrfuncs.c | 1428 ++ graf2d/win32gdk/gdk/src/glib/gstrfuncs.h | 192 +- graf2d/win32gdk/gdk/src/glib/gstring.c | 750 + graf2d/win32gdk/gdk/src/glib/gstring.h | 65 +- graf2d/win32gdk/gdk/src/glib/gthread.c | 823 + graf2d/win32gdk/gdk/src/glib/gthread.h | 124 +- graf2d/win32gdk/gdk/src/glib/gthreadpool.c | 678 + graf2d/win32gdk/gdk/src/glib/gthreadpool.h | 26 +- graf2d/win32gdk/gdk/src/glib/gtimer.c | 261 + graf2d/win32gdk/gdk/src/glib/gtimer.h | 20 +- graf2d/win32gdk/gdk/src/glib/gtree.c | 1066 ++ graf2d/win32gdk/gdk/src/glib/gtree.h | 66 +- graf2d/win32gdk/gdk/src/glib/gtypes.h | 350 + graf2d/win32gdk/gdk/src/glib/gunibreak.c | 55 + graf2d/win32gdk/gdk/src/glib/gunibreak.h | 2815 +-- graf2d/win32gdk/gdk/src/glib/gunichartables.h | 372 +- graf2d/win32gdk/gdk/src/glib/gunicode.h | 137 +- graf2d/win32gdk/gdk/src/glib/gunicollate.c | 235 + graf2d/win32gdk/gdk/src/glib/gunicomp.h | 667 + graf2d/win32gdk/gdk/src/glib/gunidecomp.c | 413 + graf2d/win32gdk/gdk/src/glib/gunidecomp.h | 4798 +++-- graf2d/win32gdk/gdk/src/glib/guniprop.c | 912 + graf2d/win32gdk/gdk/src/glib/gutf8.c | 1523 ++ graf2d/win32gdk/gdk/src/glib/gutils.c | 1136 ++ graf2d/win32gdk/gdk/src/glib/gutils.h | 95 +- graf2d/win32gdk/gdk/src/glib/gwin32.c | 837 + graf2d/win32gdk/gdk/src/glib/gwin32.h | 25 +- graf2d/win32gdk/gdk/src/glib/makefile.msc | 133 + graf2d/win32gdk/gdk/src/iconv/aliases.h | 1714 ++ graf2d/win32gdk/gdk/src/iconv/aliases2.h | 40 + graf2d/win32gdk/gdk/src/iconv/aliases_aix.h | 18 + .../gdk/src/iconv/aliases_aix_sysaix.h | 24 + graf2d/win32gdk/gdk/src/iconv/aliases_dos.h | 48 + graf2d/win32gdk/gdk/src/iconv/aliases_extra.h | 12 + graf2d/win32gdk/gdk/src/iconv/aliases_osf1.h | 2 + .../gdk/src/iconv/aliases_osf1_sysosf1.h | 4 + .../win32gdk/gdk/src/iconv/aliases_sysaix.h | 1765 ++ .../win32gdk/gdk/src/iconv/aliases_syshpux.h | 1769 ++ .../win32gdk/gdk/src/iconv/aliases_sysosf1.h | 1735 ++ .../gdk/src/iconv/aliases_syssolaris.h | 1753 ++ graf2d/win32gdk/gdk/src/iconv/armscii_8.h | 116 + graf2d/win32gdk/gdk/src/iconv/ascii.h | 44 + graf2d/win32gdk/gdk/src/iconv/atarist.h | 158 + graf2d/win32gdk/gdk/src/iconv/big5.h | 4160 +++++ graf2d/win32gdk/gdk/src/iconv/big5_2003.h | 476 + graf2d/win32gdk/gdk/src/iconv/big5hkscs1999.h | 197 + graf2d/win32gdk/gdk/src/iconv/big5hkscs2001.h | 215 + graf2d/win32gdk/gdk/src/iconv/big5hkscs2004.h | 231 + graf2d/win32gdk/gdk/src/iconv/c99.h | 125 + graf2d/win32gdk/gdk/src/iconv/canonical.h | 109 + graf2d/win32gdk/gdk/src/iconv/canonical_aix.h | 9 + .../gdk/src/iconv/canonical_aix_sysaix.h | 9 + graf2d/win32gdk/gdk/src/iconv/canonical_dos.h | 15 + .../win32gdk/gdk/src/iconv/canonical_extra.h | 7 + .../win32gdk/gdk/src/iconv/canonical_local.h | 2 + .../gdk/src/iconv/canonical_local_sysaix.h | 2 + .../gdk/src/iconv/canonical_local_syshpux.h | 2 + .../gdk/src/iconv/canonical_local_sysosf1.h | 2 + .../src/iconv/canonical_local_syssolaris.h | 2 + .../win32gdk/gdk/src/iconv/canonical_osf1.h | 2 + .../gdk/src/iconv/canonical_osf1_sysosf1.h | 2 + .../win32gdk/gdk/src/iconv/canonical_sysaix.h | 109 + .../gdk/src/iconv/canonical_syshpux.h | 109 + .../gdk/src/iconv/canonical_sysosf1.h | 109 + .../gdk/src/iconv/canonical_syssolaris.h | 109 + graf2d/win32gdk/gdk/src/iconv/ces_big5.h | 70 + graf2d/win32gdk/gdk/src/iconv/ces_gbk.h | 65 + graf2d/win32gdk/gdk/src/iconv/cjk_variants.h | 4241 +++++ graf2d/win32gdk/gdk/src/iconv/cns11643.h | 41 + graf2d/win32gdk/gdk/src/iconv/cns11643_1.h | 893 + graf2d/win32gdk/gdk/src/iconv/cns11643_15.h | 1083 ++ graf2d/win32gdk/gdk/src/iconv/cns11643_2.h | 1112 ++ graf2d/win32gdk/gdk/src/iconv/cns11643_3.h | 974 + graf2d/win32gdk/gdk/src/iconv/cns11643_4.h | 61 + graf2d/win32gdk/gdk/src/iconv/cns11643_4a.h | 460 + graf2d/win32gdk/gdk/src/iconv/cns11643_4b.h | 668 + graf2d/win32gdk/gdk/src/iconv/cns11643_5.h | 1278 ++ graf2d/win32gdk/gdk/src/iconv/cns11643_6.h | 968 + graf2d/win32gdk/gdk/src/iconv/cns11643_7.h | 988 + graf2d/win32gdk/gdk/src/iconv/cns11643_inv.h | 15412 ++++++++++++++++ graf2d/win32gdk/gdk/src/iconv/config.h | 458 + graf2d/win32gdk/gdk/src/iconv/converters.h | 297 + graf2d/win32gdk/gdk/src/iconv/cp1046.h | 157 + graf2d/win32gdk/gdk/src/iconv/cp1124.h | 102 + graf2d/win32gdk/gdk/src/iconv/cp1125.h | 129 + graf2d/win32gdk/gdk/src/iconv/cp1129.h | 121 + graf2d/win32gdk/gdk/src/iconv/cp1131.h | 132 + graf2d/win32gdk/gdk/src/iconv/cp1133.h | 110 + graf2d/win32gdk/gdk/src/iconv/cp1161.h | 89 + graf2d/win32gdk/gdk/src/iconv/cp1162.h | 70 + graf2d/win32gdk/gdk/src/iconv/cp1163.h | 63 + graf2d/win32gdk/gdk/src/iconv/cp1250.h | 139 + graf2d/win32gdk/gdk/src/iconv/cp1251.h | 131 + graf2d/win32gdk/gdk/src/iconv/cp1252.h | 103 + graf2d/win32gdk/gdk/src/iconv/cp1253.h | 122 + graf2d/win32gdk/gdk/src/iconv/cp1254.h | 146 + graf2d/win32gdk/gdk/src/iconv/cp1255.h | 380 + graf2d/win32gdk/gdk/src/iconv/cp1256.h | 153 + graf2d/win32gdk/gdk/src/iconv/cp1257.h | 139 + graf2d/win32gdk/gdk/src/iconv/cp1258.h | 288 + graf2d/win32gdk/gdk/src/iconv/cp437.h | 156 + graf2d/win32gdk/gdk/src/iconv/cp737.h | 141 + graf2d/win32gdk/gdk/src/iconv/cp775.h | 142 + graf2d/win32gdk/gdk/src/iconv/cp850.h | 124 + graf2d/win32gdk/gdk/src/iconv/cp852.h | 143 + graf2d/win32gdk/gdk/src/iconv/cp853.h | 151 + graf2d/win32gdk/gdk/src/iconv/cp855.h | 128 + graf2d/win32gdk/gdk/src/iconv/cp856.h | 134 + graf2d/win32gdk/gdk/src/iconv/cp857.h | 138 + graf2d/win32gdk/gdk/src/iconv/cp858.h | 61 + graf2d/win32gdk/gdk/src/iconv/cp860.h | 149 + graf2d/win32gdk/gdk/src/iconv/cp861.h | 156 + graf2d/win32gdk/gdk/src/iconv/cp862.h | 155 + graf2d/win32gdk/gdk/src/iconv/cp863.h | 156 + graf2d/win32gdk/gdk/src/iconv/cp864.h | 188 + graf2d/win32gdk/gdk/src/iconv/cp865.h | 156 + graf2d/win32gdk/gdk/src/iconv/cp866.h | 125 + graf2d/win32gdk/gdk/src/iconv/cp869.h | 137 + graf2d/win32gdk/gdk/src/iconv/cp874.h | 111 + graf2d/win32gdk/gdk/src/iconv/cp922.h | 99 + graf2d/win32gdk/gdk/src/iconv/cp932.h | 240 + graf2d/win32gdk/gdk/src/iconv/cp932ext.h | 709 + graf2d/win32gdk/gdk/src/iconv/cp936.h | 126 + graf2d/win32gdk/gdk/src/iconv/cp936ext.h | 99 + graf2d/win32gdk/gdk/src/iconv/cp943.h | 29 + graf2d/win32gdk/gdk/src/iconv/cp949.h | 128 + graf2d/win32gdk/gdk/src/iconv/cp950.h | 284 + graf2d/win32gdk/gdk/src/iconv/cp950ext.h | 161 + graf2d/win32gdk/gdk/src/iconv/dec_hanyu.h | 115 + graf2d/win32gdk/gdk/src/iconv/dec_kanji.h | 71 + graf2d/win32gdk/gdk/src/iconv/encodings.def | 1025 + .../win32gdk/gdk/src/iconv/encodings_aix.def | 97 + .../win32gdk/gdk/src/iconv/encodings_dos.def | 127 + .../gdk/src/iconv/encodings_extra.def | 57 + .../gdk/src/iconv/encodings_local.def | 29 + .../win32gdk/gdk/src/iconv/encodings_osf1.def | 37 + graf2d/win32gdk/gdk/src/iconv/euc_cn.h | 72 + graf2d/win32gdk/gdk/src/iconv/euc_jisx0213.h | 268 + graf2d/win32gdk/gdk/src/iconv/euc_jp.h | 191 + graf2d/win32gdk/gdk/src/iconv/euc_kr.h | 74 + graf2d/win32gdk/gdk/src/iconv/euc_tw.h | 116 + graf2d/win32gdk/gdk/src/iconv/flags.h | 156 + graf2d/win32gdk/gdk/src/iconv/flushwc.h | 37 + graf2d/win32gdk/gdk/src/iconv/gb12345.h | 67 + graf2d/win32gdk/gdk/src/iconv/gb12345ext.h | 1796 ++ graf2d/win32gdk/gdk/src/iconv/gb18030.h | 382 + graf2d/win32gdk/gdk/src/iconv/gb18030ext.h | 300 + graf2d/win32gdk/gdk/src/iconv/gb18030uni.h | 249 + graf2d/win32gdk/gdk/src/iconv/gb2312.h | 2571 +++ graf2d/win32gdk/gdk/src/iconv/gbk.h | 169 + graf2d/win32gdk/gdk/src/iconv/gbkext1.h | 853 + graf2d/win32gdk/gdk/src/iconv/gbkext2.h | 1174 ++ graf2d/win32gdk/gdk/src/iconv/gbkext_inv.h | 2343 +++ .../win32gdk/gdk/src/iconv/georgian_academy.h | 106 + graf2d/win32gdk/gdk/src/iconv/georgian_ps.h | 123 + graf2d/win32gdk/gdk/src/iconv/hkscs1999.h | 3005 +++ graf2d/win32gdk/gdk/src/iconv/hkscs2001.h | 683 + graf2d/win32gdk/gdk/src/iconv/hkscs2004.h | 679 + graf2d/win32gdk/gdk/src/iconv/hp_roman8.h | 119 + graf2d/win32gdk/gdk/src/iconv/hz.h | 163 + graf2d/win32gdk/gdk/src/iconv/iconv.c | 592 + graf2d/win32gdk/gdk/src/iconv/iconv.h | 242 + graf2d/win32gdk/gdk/src/iconv/iconv_open1.h | 201 + graf2d/win32gdk/gdk/src/iconv/iconv_open2.h | 89 + graf2d/win32gdk/gdk/src/iconv/iso2022_cn.h | 324 + graf2d/win32gdk/gdk/src/iconv/iso2022_cnext.h | 590 + graf2d/win32gdk/gdk/src/iconv/iso2022_jp.h | 216 + graf2d/win32gdk/gdk/src/iconv/iso2022_jp1.h | 264 + graf2d/win32gdk/gdk/src/iconv/iso2022_jp2.h | 693 + graf2d/win32gdk/gdk/src/iconv/iso2022_jp3.h | 538 + graf2d/win32gdk/gdk/src/iconv/iso2022_kr.h | 222 + graf2d/win32gdk/gdk/src/iconv/iso646_cn.h | 58 + graf2d/win32gdk/gdk/src/iconv/iso646_jp.h | 60 + graf2d/win32gdk/gdk/src/iconv/iso8859_1.h | 41 + graf2d/win32gdk/gdk/src/iconv/iso8859_10.h | 106 + graf2d/win32gdk/gdk/src/iconv/iso8859_11.h | 52 + graf2d/win32gdk/gdk/src/iconv/iso8859_13.h | 109 + graf2d/win32gdk/gdk/src/iconv/iso8859_14.h | 127 + graf2d/win32gdk/gdk/src/iconv/iso8859_15.h | 81 + graf2d/win32gdk/gdk/src/iconv/iso8859_16.h | 116 + graf2d/win32gdk/gdk/src/iconv/iso8859_2.h | 112 + graf2d/win32gdk/gdk/src/iconv/iso8859_3.h | 118 + graf2d/win32gdk/gdk/src/iconv/iso8859_4.h | 112 + graf2d/win32gdk/gdk/src/iconv/iso8859_5.h | 95 + graf2d/win32gdk/gdk/src/iconv/iso8859_6.h | 98 + graf2d/win32gdk/gdk/src/iconv/iso8859_7.h | 111 + graf2d/win32gdk/gdk/src/iconv/iso8859_8.h | 107 + graf2d/win32gdk/gdk/src/iconv/iso8859_9.h | 85 + graf2d/win32gdk/gdk/src/iconv/isoir165.h | 159 + graf2d/win32gdk/gdk/src/iconv/isoir165ext.h | 800 + graf2d/win32gdk/gdk/src/iconv/java.h | 137 + graf2d/win32gdk/gdk/src/iconv/jisx0201.h | 66 + graf2d/win32gdk/gdk/src/iconv/jisx0208.h | 2415 +++ graf2d/win32gdk/gdk/src/iconv/jisx0212.h | 2189 +++ graf2d/win32gdk/gdk/src/iconv/jisx0213.h | 5924 ++++++ graf2d/win32gdk/gdk/src/iconv/johab.h | 139 + graf2d/win32gdk/gdk/src/iconv/johab_hangul.h | 262 + graf2d/win32gdk/gdk/src/iconv/koi8_r.h | 153 + graf2d/win32gdk/gdk/src/iconv/koi8_ru.h | 159 + graf2d/win32gdk/gdk/src/iconv/koi8_t.h | 143 + graf2d/win32gdk/gdk/src/iconv/koi8_u.h | 161 + graf2d/win32gdk/gdk/src/iconv/ksc5601.h | 3022 +++ graf2d/win32gdk/gdk/src/iconv/libiconv.rc | 38 + graf2d/win32gdk/gdk/src/iconv/localcharset.c | 502 + graf2d/win32gdk/gdk/src/iconv/localcharset.h | 49 + graf2d/win32gdk/gdk/src/iconv/loop_unicode.h | 527 + graf2d/win32gdk/gdk/src/iconv/loop_wchar.h | 458 + graf2d/win32gdk/gdk/src/iconv/loops.h | 25 + graf2d/win32gdk/gdk/src/iconv/mac_arabic.h | 132 + .../gdk/src/iconv/mac_centraleurope.h | 139 + graf2d/win32gdk/gdk/src/iconv/mac_croatian.h | 165 + graf2d/win32gdk/gdk/src/iconv/mac_cyrillic.h | 136 + graf2d/win32gdk/gdk/src/iconv/mac_greek.h | 135 + graf2d/win32gdk/gdk/src/iconv/mac_hebrew.h | 132 + graf2d/win32gdk/gdk/src/iconv/mac_iceland.h | 162 + graf2d/win32gdk/gdk/src/iconv/mac_roman.h | 167 + graf2d/win32gdk/gdk/src/iconv/mac_romania.h | 165 + graf2d/win32gdk/gdk/src/iconv/mac_thai.h | 128 + graf2d/win32gdk/gdk/src/iconv/mac_turkish.h | 163 + graf2d/win32gdk/gdk/src/iconv/mac_ukraine.h | 143 + graf2d/win32gdk/gdk/src/iconv/makefile.msc | 83 + graf2d/win32gdk/gdk/src/iconv/mulelao.h | 96 + graf2d/win32gdk/gdk/src/iconv/nextstep.h | 141 + graf2d/win32gdk/gdk/src/iconv/pt154.h | 118 + graf2d/win32gdk/gdk/src/iconv/relocatable.c | 493 + graf2d/win32gdk/gdk/src/iconv/relocatable.h | 83 + graf2d/win32gdk/gdk/src/iconv/riscos1.h | 96 + graf2d/win32gdk/gdk/src/iconv/rk1048.h | 145 + .../win32gdk/gdk/src/iconv/shift_jisx0213.h | 310 + graf2d/win32gdk/gdk/src/iconv/sjis.h | 132 + graf2d/win32gdk/gdk/src/iconv/tcvn.h | 291 + graf2d/win32gdk/gdk/src/iconv/tds565.h | 107 + graf2d/win32gdk/gdk/src/iconv/tis620.h | 52 + graf2d/win32gdk/gdk/src/iconv/translit.def | 3918 ++++ graf2d/win32gdk/gdk/src/iconv/translit.h | 4411 +++++ graf2d/win32gdk/gdk/src/iconv/ucs2.h | 68 + graf2d/win32gdk/gdk/src/iconv/ucs2be.h | 51 + graf2d/win32gdk/gdk/src/iconv/ucs2internal.h | 51 + graf2d/win32gdk/gdk/src/iconv/ucs2le.h | 51 + graf2d/win32gdk/gdk/src/iconv/ucs2swapped.h | 60 + graf2d/win32gdk/gdk/src/iconv/ucs4.h | 69 + graf2d/win32gdk/gdk/src/iconv/ucs4be.h | 46 + graf2d/win32gdk/gdk/src/iconv/ucs4internal.h | 43 + graf2d/win32gdk/gdk/src/iconv/ucs4le.h | 46 + graf2d/win32gdk/gdk/src/iconv/ucs4swapped.h | 53 + graf2d/win32gdk/gdk/src/iconv/uhc_1.h | 1725 ++ graf2d/win32gdk/gdk/src/iconv/uhc_2.h | 1022 + graf2d/win32gdk/gdk/src/iconv/utf16.h | 113 + graf2d/win32gdk/gdk/src/iconv/utf16be.h | 80 + graf2d/win32gdk/gdk/src/iconv/utf16le.h | 80 + graf2d/win32gdk/gdk/src/iconv/utf32.h | 93 + graf2d/win32gdk/gdk/src/iconv/utf32be.h | 55 + graf2d/win32gdk/gdk/src/iconv/utf32le.h | 55 + graf2d/win32gdk/gdk/src/iconv/utf7.h | 355 + graf2d/win32gdk/gdk/src/iconv/utf8.h | 128 + graf2d/win32gdk/gdk/src/iconv/vietcomb.h | 467 + graf2d/win32gdk/gdk/src/iconv/viscii.h | 141 + 354 files changed, 157073 insertions(+), 4171 deletions(-) delete mode 100755 graf2d/win32gdk/gdk/dll/glib-1.3.dll delete mode 100755 graf2d/win32gdk/gdk/dll/iconv-1.3.dll delete mode 100644 graf2d/win32gdk/gdk/lib/glib-1.3.lib create mode 100644 graf2d/win32gdk/gdk/src/glib/config.h create mode 100644 graf2d/win32gdk/gdk/src/glib/config.h.win32 create mode 100644 graf2d/win32gdk/gdk/src/glib/garray.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gasyncqueue.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gbacktrace.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gbsearcharray.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gbsearcharray.h create mode 100644 graf2d/win32gdk/gdk/src/glib/gcache.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gcompletion.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gconvert.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gdataset.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gdate.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gerror.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gfileutils.c create mode 100644 graf2d/win32gdk/gdk/src/glib/ghash.c create mode 100644 graf2d/win32gdk/gdk/src/glib/ghook.c create mode 100644 graf2d/win32gdk/gdk/src/glib/giochannel.c create mode 100644 graf2d/win32gdk/gdk/src/glib/giounix.c create mode 100644 graf2d/win32gdk/gdk/src/glib/giowin32.c create mode 100644 graf2d/win32gdk/gdk/src/glib/glib.def create mode 100644 graf2d/win32gdk/gdk/src/glib/glib.rc create mode 100644 graf2d/win32gdk/gdk/src/glib/glibconfig-bogus.h create mode 100644 graf2d/win32gdk/gdk/src/glib/glibconfig.h.win32 create mode 100644 graf2d/win32gdk/gdk/src/glib/glibintl.h create mode 100644 graf2d/win32gdk/gdk/src/glib/glist.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gmain.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gmarkup.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gmem.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gmessages.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gnode.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gobject/gtype.h create mode 100644 graf2d/win32gdk/gdk/src/glib/gpattern.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gpattern.h create mode 100644 graf2d/win32gdk/gdk/src/glib/gprimes.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gqsort.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gqueue.c create mode 100644 graf2d/win32gdk/gdk/src/glib/grand.c create mode 100644 graf2d/win32gdk/gdk/src/glib/grel.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gscanner.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gshell.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gslist.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gspawn-win32-helper.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gspawn-win32.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gspawn.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gstrfuncs.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gstring.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gthread.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gthreadpool.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gtimer.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gtree.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gtypes.h create mode 100644 graf2d/win32gdk/gdk/src/glib/gunibreak.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gunicollate.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gunicomp.h create mode 100644 graf2d/win32gdk/gdk/src/glib/gunidecomp.c create mode 100644 graf2d/win32gdk/gdk/src/glib/guniprop.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gutf8.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gutils.c create mode 100644 graf2d/win32gdk/gdk/src/glib/gwin32.c create mode 100644 graf2d/win32gdk/gdk/src/glib/makefile.msc create mode 100644 graf2d/win32gdk/gdk/src/iconv/aliases.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/aliases2.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/aliases_aix.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/aliases_aix_sysaix.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/aliases_dos.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/aliases_extra.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/aliases_osf1.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/aliases_osf1_sysosf1.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/aliases_sysaix.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/aliases_syshpux.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/aliases_sysosf1.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/aliases_syssolaris.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/armscii_8.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/ascii.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/atarist.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/big5.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/big5_2003.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/big5hkscs1999.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/big5hkscs2001.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/big5hkscs2004.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/c99.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/canonical.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/canonical_aix.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/canonical_aix_sysaix.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/canonical_dos.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/canonical_extra.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/canonical_local.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/canonical_local_sysaix.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/canonical_local_syshpux.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/canonical_local_sysosf1.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/canonical_local_syssolaris.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/canonical_osf1.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/canonical_osf1_sysosf1.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/canonical_sysaix.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/canonical_syshpux.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/canonical_sysosf1.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/canonical_syssolaris.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/ces_big5.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/ces_gbk.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cjk_variants.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cns11643.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cns11643_1.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cns11643_15.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cns11643_2.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cns11643_3.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cns11643_4.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cns11643_4a.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cns11643_4b.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cns11643_5.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cns11643_6.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cns11643_7.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cns11643_inv.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/config.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/converters.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp1046.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp1124.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp1125.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp1129.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp1131.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp1133.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp1161.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp1162.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp1163.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp1250.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp1251.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp1252.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp1253.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp1254.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp1255.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp1256.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp1257.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp1258.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp437.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp737.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp775.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp850.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp852.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp853.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp855.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp856.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp857.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp858.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp860.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp861.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp862.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp863.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp864.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp865.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp866.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp869.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp874.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp922.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp932.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp932ext.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp936.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp936ext.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp943.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp949.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp950.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/cp950ext.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/dec_hanyu.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/dec_kanji.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/encodings.def create mode 100644 graf2d/win32gdk/gdk/src/iconv/encodings_aix.def create mode 100644 graf2d/win32gdk/gdk/src/iconv/encodings_dos.def create mode 100644 graf2d/win32gdk/gdk/src/iconv/encodings_extra.def create mode 100644 graf2d/win32gdk/gdk/src/iconv/encodings_local.def create mode 100644 graf2d/win32gdk/gdk/src/iconv/encodings_osf1.def create mode 100644 graf2d/win32gdk/gdk/src/iconv/euc_cn.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/euc_jisx0213.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/euc_jp.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/euc_kr.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/euc_tw.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/flags.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/flushwc.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/gb12345.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/gb12345ext.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/gb18030.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/gb18030ext.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/gb18030uni.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/gb2312.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/gbk.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/gbkext1.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/gbkext2.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/gbkext_inv.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/georgian_academy.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/georgian_ps.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/hkscs1999.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/hkscs2001.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/hkscs2004.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/hp_roman8.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/hz.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iconv.c create mode 100644 graf2d/win32gdk/gdk/src/iconv/iconv.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iconv_open1.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iconv_open2.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iso2022_cn.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iso2022_cnext.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iso2022_jp.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iso2022_jp1.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iso2022_jp2.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iso2022_jp3.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iso2022_kr.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iso646_cn.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iso646_jp.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iso8859_1.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iso8859_10.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iso8859_11.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iso8859_13.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iso8859_14.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iso8859_15.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iso8859_16.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iso8859_2.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iso8859_3.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iso8859_4.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iso8859_5.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iso8859_6.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iso8859_7.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iso8859_8.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/iso8859_9.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/isoir165.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/isoir165ext.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/java.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/jisx0201.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/jisx0208.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/jisx0212.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/jisx0213.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/johab.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/johab_hangul.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/koi8_r.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/koi8_ru.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/koi8_t.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/koi8_u.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/ksc5601.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/libiconv.rc create mode 100644 graf2d/win32gdk/gdk/src/iconv/localcharset.c create mode 100644 graf2d/win32gdk/gdk/src/iconv/localcharset.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/loop_unicode.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/loop_wchar.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/loops.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/mac_arabic.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/mac_centraleurope.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/mac_croatian.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/mac_cyrillic.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/mac_greek.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/mac_hebrew.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/mac_iceland.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/mac_roman.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/mac_romania.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/mac_thai.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/mac_turkish.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/mac_ukraine.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/makefile.msc create mode 100644 graf2d/win32gdk/gdk/src/iconv/mulelao.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/nextstep.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/pt154.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/relocatable.c create mode 100644 graf2d/win32gdk/gdk/src/iconv/relocatable.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/riscos1.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/rk1048.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/shift_jisx0213.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/sjis.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/tcvn.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/tds565.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/tis620.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/translit.def create mode 100644 graf2d/win32gdk/gdk/src/iconv/translit.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/ucs2.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/ucs2be.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/ucs2internal.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/ucs2le.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/ucs2swapped.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/ucs4.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/ucs4be.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/ucs4internal.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/ucs4le.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/ucs4swapped.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/uhc_1.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/uhc_2.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/utf16.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/utf16be.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/utf16le.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/utf32.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/utf32be.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/utf32le.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/utf7.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/utf8.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/vietcomb.h create mode 100644 graf2d/win32gdk/gdk/src/iconv/viscii.h diff --git a/graf2d/win32gdk/CMakeLists.txt b/graf2d/win32gdk/CMakeLists.txt index 409f97726a0..c3affb78b1e 100644 --- a/graf2d/win32gdk/CMakeLists.txt +++ b/graf2d/win32gdk/CMakeLists.txt @@ -4,52 +4,107 @@ ############################################################################ ROOT_USE_PACKAGE(gui/gui) include_directories(${FREETYPE_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/gdk/src - ${CMAKE_CURRENT_SOURCE_DIR}/gdk/src/gdk ${CMAKE_CURRENT_SOURCE_DIR}/gdk/src/glib) + ${CMAKE_CURRENT_SOURCE_DIR}/gdk/src/gdk + ${CMAKE_CURRENT_BINARY_DIR}/gdk/src/glib) + +set(iconvlib ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/iconv-1.3.lib) +set(iconvdll ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/iconv-1.3.dll) +set(iconvliba ${CMAKE_CURRENT_BINARY_DIR}/gdk/src/iconv/iconv-1.3.lib) +set(iconvdlla ${CMAKE_CURRENT_BINARY_DIR}/gdk/src/iconv/iconv-1.3.dll) + +set(gliblib ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/glib-1.3.lib) +set(glibdll ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/glib-1.3.dll) +set(glibliba ${CMAKE_CURRENT_BINARY_DIR}/gdk/src/glib/glib-1.3.lib) +set(glibdlla ${CMAKE_CURRENT_BINARY_DIR}/gdk/src/glib/glib-1.3.dll) set(gdklib ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/gdk-1.3.lib) -set(glib ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/glib-1.3.lib) set(gdkdll ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/gdk-1.3.dll) set(gdkliba ${CMAKE_CURRENT_BINARY_DIR}/gdk/src/gdk/gdk-1.3.lib) set(gdkdlla ${CMAKE_CURRENT_BINARY_DIR}/gdk/src/gdk/gdk-1.3.dll) + if(winrtdebug) set(nmcxxflags "${CMAKE_CXX_FLAGS}" DEBUG=1) else() set(nmcxxflags "${CMAKE_CXX_FLAGS}") endif() +# Build iconv + +add_custom_command( OUTPUT ${iconvliba} ${iconvdlla} + COMMAND cmake -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/gdk gdk + COMMAND echo "*** Building ${iconvliba}" + COMMAND cmake -E chdir gdk/src/iconv + nmake -nologo -f makefile.msc NMCXXFLAGS=${nmcxxflags} VC_MAJOR=${VC_MAJOR} + ) + +add_custom_command( OUTPUT ${iconvlib} ${iconvdll} + COMMAND cmake -E copy_if_different ${iconvliba} ${iconvlib} + COMMAND cmake -E copy_if_different ${iconvdlla} ${iconvdll} + DEPENDS ${iconvliba} ${iconvdlla} + ) + +add_custom_target(iconv DEPENDS ${iconvlib}) +set_target_properties(iconv PROPERTIES FOLDER Builtins) + +# Build glib + +add_custom_command( OUTPUT ${glibliba} ${glibdlla} + COMMAND echo "*** Building ${glibliba}" + COMMAND cmake -E chdir gdk/src/glib + nmake -nologo -f makefile.msc NMCXXFLAGS=${nmcxxflags} VC_MAJOR=${VC_MAJOR} + DEPENDS iconv + ) + +add_custom_command( OUTPUT ${gliblib} ${glibdll} + COMMAND cmake -E copy_if_different ${glibliba} ${gliblib} + COMMAND cmake -E copy_if_different ${glibdlla} ${glibdll} + DEPENDS ${glibliba} ${glibdlla}) + +add_custom_target(glib DEPENDS ${gliblib}) +set_target_properties(glib PROPERTIES FOLDER Builtins) + +# Build gdk + add_custom_command( OUTPUT ${gdkliba} - COMMAND cmake -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/gdk gdk - COMMAND cmake -E copy_if_different gdk/lib/glib-1.3.lib ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} - COMMAND cmake -E copy_if_different gdk/dll/glib-1.3.dll ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR} - COMMAND cmake -E copy_if_different gdk/dll/iconv-1.3.dll ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR} COMMAND echo "*** Building ${gdkliba}" - COMMAND cmake -E chdir gdk/src/gdk/win32 - nmake -nologo -f makefile.msc NMCXXFLAGS=${nmcxxflags} VC_MAJOR=${VC_MAJOR} - COMMAND cmake -E chdir gdk/src/gdk - nmake -nologo -f makefile.msc NMCXXFLAGS=${nmcxxflags} VC_MAJOR=${VC_MAJOR} + COMMAND cmake -E chdir gdk/src/gdk/win32 + nmake -nologo -f makefile.msc NMCXXFLAGS=${nmcxxflags} VC_MAJOR=${VC_MAJOR} + COMMAND cmake -E chdir gdk/src/gdk + nmake -nologo -f makefile.msc NMCXXFLAGS=${nmcxxflags} VC_MAJOR=${VC_MAJOR} + DEPENDS glib ) add_custom_command( OUTPUT ${gdklib} ${gdkdll} - COMMAND cmake -E copy_if_different ${gdkliba} ${gdklib} + COMMAND cmake -E copy_if_different ${gdkliba} ${gdklib} COMMAND cmake -E copy_if_different ${gdkdlla} ${gdkdll} DEPENDS ${gdkliba} ) add_custom_target(GDKLIB DEPENDS ${gdklib}) set_target_properties(GDKLIB PROPERTIES FOLDER Builtins) +# +# ROOT Dicts for the win32gdk library +# + ROOT_GENERATE_DICTIONARY(G__Win32gdk TGWin32.h TGWin32GL.h LINKDEF LinkDef.h) ROOT_GENERATE_ROOTMAP(Win32gdk LINKDEF LinkDef.h DEPENDENCIES) -ROOT_LINKER_LIBRARY(Win32gdk *.cxx *.c G__Win32gdk.cxx LIBRARIES Core Graf ${FREETYPE_LIBRARIES} - ${gdklib} ${glib} Glu32.lib Opengl32.lib) -add_dependencies(Win32gdk GDKLIB) +# +# The library itself +# + +ROOT_LINKER_LIBRARY(Win32gdk *.cxx *.c G__Win32gdk.cxx LIBRARIES Cint Core Graf ${FREETYPE_LIBRARIES} + ${gdklib} ${gliblib} Glu32.lib Opengl32.lib) + +add_dependencies(Win32gdk GDKLIB glib) + if(builtin_freetype) add_dependencies(Win32gdk FREETYPE) endif() install(FILES ${gdkdlla} - gdk/dll/glib-1.3.dll - gdk/dll/iconv-1.3.dll - DESTINATION bin) + ${glibdlla} + ${iconvdlla} + DESTINATION bin) ROOT_INSTALL_HEADERS() diff --git a/graf2d/win32gdk/Module.mk b/graf2d/win32gdk/Module.mk index 4c5cfdd9177..d1e96810ac1 100644 --- a/graf2d/win32gdk/Module.mk +++ b/graf2d/win32gdk/Module.mk @@ -15,7 +15,32 @@ WIN32GDKDIRI := $(WIN32GDKDIR)/inc GDKVERS := gdk/src GDKDIRS := $(MODDIR)/$(GDKVERS)/gdk GDKDIRI := $(MODDIR)/$(GDKVERS)/gdk +GLIBDIR := $(MODDIR)/$(GDKVERS)/glib GLIBDIRI := $(MODDIR)/$(GDKVERS)/glib +ICONVDIR := $(MODDIR)/$(GDKVERS)/iconv + +##### iconv-1.3.dll ##### +ICONVDLLA := $(call stripsrc,$(ICONVDIR))/iconv-1.3.dll +ICONVLIBA := $(call stripsrc,$(ICONVDIR))/iconv-1.3.lib +ICONVDLL := bin/iconv-1.3.dll +ICONVSRC := $(wildcard $(ICONVDIR)/*.c) + +ICONVNMCXXFLAGS:= "$(OPT) $(BLDCXXFLAGS) -FI$(shell cygpath -w '$(ROOT_SRCDIR)/build/win/w32pragma.h')" +ifeq (yes,$(WINRTDEBUG)) +ICONVNMCXXFLAGS += DEBUG=1 +endif + +##### glib-1.3.dll ##### +GLIBDLLA := $(call stripsrc,$(GLIBDIR))/glib-1.3.dll +GLIBLIBA := $(call stripsrc,$(GLIBDIR))/glib-1.3.lib +GLIBDLL := bin/glib-1.3.dll +GLIBLIB := $(LPATH)/glib-1.3.lib +GLIBSRC := $(wildcard $(GLIBDIR)/*.c) + +GLIBNMCXXFLAGS:= "$(OPT) $(BLDCXXFLAGS) -FI$(shell cygpath -w '$(ROOT_SRCDIR)/build/win/w32pragma.h')" +ifeq (yes,$(WINRTDEBUG)) +GLIBNMCXXFLAGS += DEBUG=1 +endif ##### gdk-1.3.dll ##### GDKDLLA := $(call stripsrc,$(GDKDIRS)/gdk-1.3.dll) @@ -49,8 +74,8 @@ WIN32GDKLIB := $(LPATH)/libWin32gdk.$(SOEXT) WIN32GDKMAP := $(WIN32GDKLIB:.$(SOEXT)=.rootmap) # GDK libraries and DLL's -GDKLIBS := lib/glib-1.3.lib -GDKDLLS := bin/glib-1.3.dll bin/iconv-1.3.dll +GDKLIBS := $(GLIBLIB) +GDKDLLS := $(GLIBDLL) $(ICONVDLL) # used in the main Makefile ALLHDRS += $(patsubst $(MODDIRI)/%.h,include/%.h,$(WIN32GDKH)) @@ -66,23 +91,47 @@ INCLUDEFILES += $(WIN32GDKDEP) include/%.h: $(WIN32GDKDIRI)/%.h cp $< $@ -lib/%.lib: $(WIN32GDKDIR)/gdk/lib/%.lib - cp $< $@ +$(ICONVLIBA): $(ICONVSRC) + $(MAKEDIR) +ifneq ($(ROOT_OBJDIR),$(ROOT_SRCDIR)) + @$(RSYNC) --exclude '.svn' --exclude '*.o' --exclude '*.lib' --exclude '*.dll' $(ICONVDIR) $(dir $(call stripsrc,$(ICONVDIR))) +endif + @(echo "*** Building $@..."; \ + unset MAKEFLAGS; \ + cd $(call stripsrc,$(ICONVDIR)); \ + nmake -nologo -f makefile.msc \ + NMCXXFLAGS=$(ICONVNMCXXFLAGS) VC_MAJOR=$(VC_MAJOR)); + +$(GLIBLIBA): $(GLIBSRC) $(ICONVLIBA) + $(MAKEDIR) +ifneq ($(ROOT_OBJDIR),$(ROOT_SRCDIR)) + @$(RSYNC) --exclude '.svn' --exclude '*.o' --exclude '*.lib' --exclude '*.dll' $(GLIBDIR) $(dir $(call stripsrc,$(GLIBDIR))) +endif + @(echo "*** Building $@..."; \ + unset MAKEFLAGS; \ + cd $(call stripsrc,$(GLIBDIR)); \ + nmake -nologo -f makefile.msc \ + NMCXXFLAGS=$(GLIBNMCXXFLAGS) VC_MAJOR=$(VC_MAJOR)); + +$(ICONVDLL): $(ICONVLIBA) + cp $(ICONVDLLA) $@ -bin/%.dll: $(WIN32GDKDIR)/gdk/dll/%.dll +$(GLIBLIB): $(GLIBLIBA) cp $< $@ +$(GLIBDLL): $(GLIBLIBA) + cp $(GLIBDLLA) $@ + $(GDKLIB): $(GDKLIBA) cp $< $@ $(GDKDLL): $(GDKLIBA) cp $(GDKDLLA) $@ -$(GDKLIBA): $(GDKSRC) +$(GDKLIBA): $(GDKSRC) $(GLIBLIB) $(MAKEDIR) ifneq ($(ROOT_OBJDIR),$(ROOT_SRCDIR)) @$(RSYNC) --exclude '.svn' --exclude '*.o' --exclude '*.lib' --exclude '*.dll' $(GDKDIRS) $(dir $(call stripsrc,$(GDKDIRS))) - @$(RSYNC) --exclude '.svn' $(WIN32GDKDIR)/gdk/lib $(call stripsrc,$(WIN32GDKDIR)/gdk) endif @(echo "*** Building $@..."; \ unset MAKEFLAGS; \ diff --git a/graf2d/win32gdk/gdk/dll/glib-1.3.dll b/graf2d/win32gdk/gdk/dll/glib-1.3.dll deleted file mode 100755 index b3d65ec5007b1d03e4e7dc48a16b645388a0cf7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 360316 zcmeZ`n!v!!z`(%5z`*eTKLf)K1_*F~P<Y7(1_lN``CWVrTR6`u?qKves~D1zS*%b{ zl%HOdn5&SSn3tDdqL7rTP*j?ykeR38;vcM#o1c=Z$IHv50yR0nm4U&Bk)5Gxzq=KK z4-1144+Fyk1~x@*MkaHHYfKCb4U7y7ObiSR0#N(_#9<Hs^O+#-W`w#QY~%zMh#&(4 z*k24F-5|Xn4PY8#6vG2%h7?Bz1_lEbh9x`<3=9n{AR(|3D1-wG!v{MQ5vp+XN>VFI z7#J9y9A|<!=mgX=NTw?=FeK=uB$gyHFfdrWW?*0d`TY$81H&0`7{FCJFfbg@ODZk~ z2^4^c3!oSUF;H;>NL?z#K(OB*Ff%YXF)%RfKvnO+z~G>l2~h_Q8v_;w20jJ`hF=)! z4(Ju7=Hw?cK*Gp@g@FN-a5zAz31PPb14EErQE^c+$O|AN8lZ9HfuSw{p=*>yj}Qp$ zeA@g*AS}2$mZ$kQV=3#4@*_+P%}4(HFBJ&>U&`^~&S55o&ST9-SXytFvc9+l;(h2% zeGwgZ@(>S0Zy7^q=TpN2Cl7<@<~JN!4F5|7{+IHAbP6#rFq}M`SX7i)sgRqRtB{;g znwJex2ePkJq}f*GIg<cGiAnR3FU__JAa<!l^N}wZ91oZTURaxg+#&FqyLTHX9Cipi zU=j#e=<=LN;Qxi@BLdB~3=fzD7)qtHm@+_xSC&Xdf&hcSiwZMFhQ%N$keVZ3{+oi> zFYZ||GISmW2|?{NK(bQ=Zs&0mh@I@6-*!Ok^MToS9F%Sujyr=>>~UufkeixoIT-k- z9%x7w_{ZTa&|J#{;xT~ue>t25x?Kf2oq4`F3ow?lw0<kmYCiHKEck^98v{f05dn~J zi8v^ni+Qpbx}ACW*E_Q?GY7ml01Dw7kPwCh9z%LOI1uC0ic(V<(!p%KWQNzg6Och# zW=^VtYO$3<PG(-Jf@+F_hH9~<l|o{1acWUXW`3SRf@-n4LRw;GPHGA?-k|Z$(R#bo zu=&WJjJbjg0vU@183eLQGB$wNCqQhD|E4aFm;_!ldoeN?9(cK!fq|j7M2!LD+Y-U% zBVYa-zeq4)WH9{Jd_>?iQ@1fJR`rlVSO^}%sm72HW`%|?B0i7&2!=+MuO%ZWh+qa8 zAsHkIH%JC*5Kr$GHBekY&4a{OCp3v3?)(N$-#p=A!QHhS-K9L;u>#FUegucVSi{1= z(CyB{zuujt^A`X5a2{s%<|BWC!UA5H9b#f&jAv;+qVUaKfDsZ&<)BD{sAgslcp-g= ziJ|icIFjN|9-e^94p8w1N^?j4Ky3=>77yyY!N1;}hw(zdi=zj@VF3|nKJq6Z?7#Vo z9S5Pd3*fYU?m=YRA$hR*4a|?RJl&-tptKhL;si4TI3PjxvuJ|t4S?9zEzWo$pqIrM z<`gT4Q~1}%^K^ay2{Oxr9MtV95D@%A738FH7Er3i6(C$FPC|r7EJt@OPv<@BYL+s~ z<|98ke`q_i1O&g(hdAt;vj9_xB3Q8b$RGao&O8Aqd11=|NC4Hbd~*|EED-}`moiXH zxbg6>KhDe+@M6*dCWcN(Zizp67?x3rQgidmQsXo8Qc^1zz@&nW0yy93+U2C?A(cTK z-M&1XpIg6yLJXP#&WJDwWISSEV0bNV?afl83(6S}L1JKuCkzY>STaYNJ1BF!4(kqP z>2>;Vc@UJ_|8!o^JmCTMRj(r>i0&3<yb#cN0>lKz|9-Id{(H0FEDbj8XJUXSW^CSz zPfIK=LCMdhSp2kFltCcl58O}2a6f@1{$cmiBsZ|10wCpYw=;`}<-rmKP#hG4N-G{T z-+bRk&^J%^A^8Rz9}0@L3VxwJKJYTGIKQZb0W76!2Wo)86@b$eN4G0S>j6k)Rf;hP zWVC|_F-A~iHCr&0YJ)sB1tbQR5NE_1Svy@B8D4{HsREw=1uXv!UKsCVVn8GxkQ?I5 zGfOh!K`vl`mLX8PL1lIZ*luod27wGUklj+fWelj+gXPq*TW<xjUJO)nLaIubBTlt2 zGMqdd+WE9Qlw${|No#qbmW}a%<%ODGurdZ*Z*p{pu`q}7@NaVyXnw%Rc&PI-|N1x{ z>o|@wjpid?f?w?V|NnpU5rNLb&A$bTS$Bilyr3fQzuAijJw}F3w$3;XaLEO>tN9H_ z^N}xE3@<?S+DTY>39$!O0Atk83ZVLVwk|ln;q|iydi^YcT0iqZ>gOAJj0}rGQs9E| z%YRc4`-Pn$q52tYr#jS5Q2h+C4^rMY9}&P-Kev7>;R2O}!7tbt8DQlED4q*SijeD6 zaM}X-ITlnGnt~D$xGwxG!61;)i9HreoI$zc<q`%4h6%lB^<jW6G4&zXN1-~9P-NW! z@ef*k2o4-uBmDIt*dQLLLGbzzVjd)X;6(^DEsF$q$8vN#voO2zSUYo+=`<ht67Ztw zFC^VKb2R@DC}!OON;sX)9L-059DKkO@Zb1_qz)rPCv$h~3)CPiPA!Qq&a6shfYgJa za0Jz}pr8cjM{rP@NihgyY{njxnof)iuMMn=SwIQ+N9PAf9TEKh|Nrh_7RyhyLZI;N zW<Jg`0aVdDS$?Yd)LF~|O~dK&h{!}K_fhIaU!HDo+)BdZ_5jF1S3$W~1{{B=Wj$E- zI(Fw)If7#TwL!OWw@n|sz?W%00xs}-Sz7=6|NlRrSER4ki6tQD#r>U34FA1Z5X}W# zE{+Em<>0gkuFFe#x_voXPnL?p-CQKiAdvAM<YtKp)`iG*6IkXWcK4og0J~SZTd><^ zQ+Fgwuk(M)V<qg}F0=l0vTXYAiPvc;b!9A1=cm?7r8aN}@yaj=WN<KHEoFlp7#Uux zHXr#B5cZ<@-~a#MBJH)9;Q?zWmSWy+E=!rll7|k~PAo-V4G-XsOmLvU;u4&;IJ%+k zu!Xy$7vv6E?Cv;i&&cpvX9C0_^WYAVfjC6Cn+sCEft+(2k8=`JQXpXg&O5EQOZDKk z%g8baWEf(%-4|rL45)rM@*|5e_(koX|NpzaS-OS0U3ofLy8b(}VCE;JDzE@l0}-eL z+d$UaFrn0e(?Mcj30v&$+G@wh@S6XBDNhy)qzW|H4yghWxe2Wrgv9~09uxt2A6yUe z$uS6Icww<0Ea8paep8VBqVP%(=89vr&^i#@m&{_!V#s26aq{E;|0fT_?f+lO0hQPQ zmVlONpn?k8^Hlf@(f}0)#}}y80<LX?U%dYO|9|HVaHxax8oIpx7p(F>{+IFuzfk%L zmxQ?osvjc1h=6?9Hw^tq?w0tD<ZceQn?arFO0X2D{KJ8vegReHA}`jff~wPn4&csf zC-cG(2*a7>#mfdphE8XW<IbQVFNWjJ0-%NlG&l-NQ%h4pEwSRtyySQ=FTN->jUhb| zBmm~?B{Lv*I+55U^*_O8>Dm>gro|`cm*$ly*eMvm+F9W6Y`tA72ufhw3Jd}nf(i@* zSx&D-o2vyFN;N>jrEp>A3}q181Ed7jQ@v>os!w387k*G8Ge!&?{C5_BN%26WAax`- zMWn}r{fh8>d}&@zesVTapBb9|5zgaNWDv*-c`e#pf#N){a3~h%S%I9#{NF*~<Y7?7 z*1Ja?6s4#(m*#=OCNVDsYCi)s#L5#hOEUA)<4ZD%QWH~(6>M!443O$wa2*G(FTerU z0diT+>rjw2;J^br8XS0Fsod9A|GfqHryStl_5l_q(BOiEN%Ikb)^8=1&DA^%CE)UI zxgvu=23T(?7M~?pF*3aN?gfw6z{~@+N&g!!3;?G<P@4}r03!ej`(l=b8E}asU;Y<! zylANhHFmxPzu;D3WPn!-$gu(r8`QEGTo{49yhI7qWCQhdB)~ofw?M!?2FrATx;mIC zX1OIJ!)ryDlc7O?)D-&?{9?wx|NpTh5m4fQxCNRn!2JWTQw)_E1TtoWoFWY>|3Rq( z;To{y9PF-<1i3~O<{EG!HGrmHP|FK7EWi$cl|@iDAcA89$PKGNZjb;cPlN-&GOMvW zV1@-F!)tU0KvD#{0}4uuGZ;XX6iOd77Btk-db?B#lvyExp~4`Lu?yr78)*6fWoEEE zICcy{^1DIuG7$OJZ>2gQ-7X*ru<Rb}j(u&;$ne^F0xY;NBM&s{1{%OeN_^ljHC_nu z64pcp@)tDkA?1B=+0^aI(|Q}y2L*eLQ<Xs=;~dE8hTtRz&VOJ}fo0BvWW*=59zgOB zSmFY9|44)UqXurTfbv5?Ehs<0i!5Gfwut~|8*qXwN-Zf%%)wPI!-{Cs@}(fZAU-p% zB(*3H;YpZE>@>mh9Wu0N1s->VmF1xJ8YnG5GCRkM_l;oBv>xDZ1*Lt^7$Sdb4+8^3 z>$g(7|IR$GrD4%1)O_T}f8+nfEDICBJ_SV{q<~lrGo$44e{Y`G;n4BF|IXk@E#`R9 z1yfL}05k1r^N~Mc5aUu{#<d<OJ@?-mrYRJziOul9Ysb!S;Be-6ky{U{NkQe{?NUup zdOQS*?H3^8D?I)*)EES^SfJyi(WZ>ZT}|ZNT997=DJvl1(t5j85@aMe6~(E8n$n=Q zy)3vt0!~Wc!6$H10!wp(8u*x{*Gtgw>w(vfFyCTkfj^*jRPc+8fB*l3#`58*3G91V zK7e-;F_Q|s5`?y?pyiA--1Wj53<4SQAlK_b;{#OOl<+qn0b3pL;_cu6|6e0YAFz4_ z?B0<Adk4LsDJiOq#}|IHKrS!=xd3bUfu&8cTe#8~+(9A`evH8{H2xA5epoXQYM?@W zgOvHe?Kfz+BFgU!O$LDsACRxqkpq-5;KiIjC;<vq=!@NdCyhY<!wAsK+|(3skRtl+ zXzhpBAls8bwo6VxOOIfwWbF1ug6(_lgeN_MIvxzcFRuS4DnLQ)7qsw$IUW&$IP1U_ zS_}di)gWK!g2ND0K7;KKcoF{l|Nqwpko<P!PX;)rftA-__gTFmwvfz8%}X!IKrQo7 zY6w$p27!zzAQwOyCE)Q_uw`JGsn{(O0$cXl0a7303e4_cj&5h3?jjD&V=yJe<Z6hU z5upc30~qP=CCKF)KrV--zwQ8zZU>(3AP&t#ofnWYG+5zA>>lwnfP@;TnTr#r$LHt8 zrxq3E7l9hzMU@K4i8(o`DLU}g1SP3OxtV#1pyn^UtpRl}>x)y9m>9AI3@^1FC}D4~ zU?^egJQS4Cp~E1M#qeU+GSCnkXpFOD1rwzF<#>^}f(hJiKF(_LfC=0Qf{n3qyl`EC zI=v2db6H|eX=;34YI%HGX<jnCOP(H|oS2*emS9K+GjVj02-cs-^K%f(Qc{acit;N_ zEzC}>j87>oz#@oEbw*-wMm$Ihilf1z5Ia!BK?+j~OA~WYO^2in@R$^64o#u;Kcw}e zq01nUVXq77{k#ONN&r>orQr7ORJcs&%S)gM!!m~ES^)+~dvF6>GVJA6kR+tPP%8qJ zKMI!*e>oLNUV;JAC%gxjk9b|tTr0y+Dh#TJzQBbeUnh2cYyDQ@1L_P*yjUa#s=_<1 zK_f2CEZ|vLj&4_xPEdp4M_9M3M8FICJO+kNXMyG;3e87;WHEHR$^^X728)Sw-gvD8 zDt|y$@aVxj9F^e>vMvMUd04kI2{h^p8Oe%2c^I4)Fp>#0N?~OMxINi=8`7zb&}R_H zNYiH!$jZTDI*TqN!)qmQt3=>Md>&|G@5}#UkryFgrUH26|ArVN1Gq^DOO=^<pxIwY zng_>UDNl1P2SceA$Twj7u7d2V!D8PO9Z;ryoeLU2?{?+*Um)<J5ELSyN%Yp+r2)-H zzJzs$a&$X!{J#KdQ$To3|1WeN2M6Pq@E4{`4B$!kKfz&86F$Qn`zI{CJCx&pk;sb& zc?=A%Sv$XhM#7lEO>yu<9ys{oAp^P$dHE@+@Sud1^I-oVrh~w~nQFiwkTDa~;I;y} z=|{IKPr&~&kr&%@85ltB`Vs!WOyI>z5btpF5rx*<kQt*TAZ=j13qWl;%&2YGW@LEn z2ATrvbY>~FZ9ej&JCr8~WHN6)C?+80GJ@Hls0i<N;{mNw`10Sl+l>Xp0*MB{c+SWG z>C+<l5tQlD@{3XvlQS4lawEL070LnXa$JIBI<P-04H*P7KzZl2SnC0ZA9_JTU~y1( z!V;l}wLl|&kU^yYP{>ymg4Soik_xmqfI0+^-3&$y0vSg@VT@`wSo|pV@N-ACTj0gN z0+8L{NLB#HE@FWQEPh3TVf7it{F4J{{z+OGRIDS`hj^gRKUtv8KXGK#7%>REh!A09 zSPYVa_9#q2>=*mMWdukFIy|9^wCDi5J_Ky%av_MFp!p|=eUL6>w<|{{^KoYuq`@>u zdk*FWLnPxsqn;UH<07EOarBlk?0}euH0bc-e<{a*i1Vx^!2KqeX~>IL#6c?}z@~9Q zP2&Q$XQ1Xm+y`5q11@hsrJ~4-9zjNi<KUX@xC3M?&;h)rr89!%xPw5+RVD#&Ns^pf z0MB{p@yYqQ1v#mp<s|WmDJk)pC8@c^4Cx3_9CaV4K}=Hp2R0aPFQonf^_faRWB;w+ zN`*k>m%IssK!&yngFu$mYmo`9w;}!Osc=#23?~pf1Ed00M(<N+WOyA2F3;<D7)n4< z@xP4c#q$LW49DHT!2n7FbsP*O;Bl)mju$PUaB>3&&1*qOr_}6)^<oBwPPXo7(3*(W z+odnS<rb)cjR*>8*#!+FXnq2hS*4&g5v|`Kl^NI*KBf!;SrM;=TmM690<a&zf{|GK z@Jo%6;dNN&?`AuO64ln*C5qtqhB<A{QY5DxC;=_odeZs38RT1~*4rg=5OrldFN#45 z-FTp$fT(-~_6VeKLPT|PPHJKi)FY6%0H>qY+mLz$>;*A127#<xEUxtdxz-ZWpEiC` zH=lt4GE)n#$#`Dmf&?Ig(U58bH0B{7z{mhyVg*iw;JhRg9u^F0Veq&7VqjqCcI9ZU z;9)4`>kj1st)OIJc=;G2++D%3f#J{2|NsC0|Fo|2#P<sxovwdCHB}T(a}^5%XcY;l zSat#z%L1K;UbBP44>Tk5r`JTF^E;~U-irUPoqNj|x<fg@+Clm4zi~H0I|rnF-Yv`= z`p593<<DB-E;cKsQeH>PpS2uaEQVGrf+e3j&v!?&wB9aZY5iZiwfV@G?$AHIF5-*< zFFg4e8M;GxI+>b}{OJz;69ldmIRai>oC_*xK&vgn!@5E4=V4|Fc(Hpf6GLz6jp#Ux zD1yXRDnmh0YFcImJnKNy9VqO&OF0a0w|*-Ht)j^Q$JtJE27!z<ppsmw^BX8=OASEz z>O4poEVmX^nqy|7N)=Gk;AH_L14DN$4{C6M0=v16gMq&V)N}(SJN}k#P{f3BbY4eO zYVG=`z6i9;C<s(fce_Cr_O%`;jqQ%(X}w(%2nrL|KLO2kEDWHb1W>d=YE#fcGv)wP zT_v*MRSso5FFF@P+8qMcaXcm4JL7m>Z|eNk9nJE3^=?oB-Fmw;3zYiGcwW4p1JC!} za-j8Vt|VCrYIuT1smgd>XwGL~=yc<0J|fT^&C>141L}l;^4@w-U_i?mju+;<j10#i zg$cNv;bABNEsX<t<i+l%j0~M_93b%{KmL~rguP(>`~N@GDAsN_p4Uv>Y*-^7ye<%& zM_~EV2o#UtINoN-AdvA4dpvGbVq|zN2^+5gEgg~n16l&`CHO@j540r-%I~1e<I2<N zByjRDxWd3nfGUT)vecpyNGA@`=HzI$Ww^jBzyK<+zhrn=f!1d#GcYU$2`&T?h&3pn z`Lq9}91G_du?YOXfDr%kzf|IXsR(>o>B1>c1+aDkX#EOE;|!=csItL=o%2DiD+aBE zOe@L<twv2ON=z<EEm9~>ErBeKEXjw^nZ*jAb?e2Y1qJ!MC7|Ko5;X?r{L-8huy}q! zYMw$e*f@}Ouxa4V8&toQf@(3iZwXzK2O0q70X3t8U-19`{~y#26=?qdzck_n%Pb~_ zW(%=WWl+iu%Xnc0?ynyD_y2zYXyx4tj&KHs*M^YtrTNI8<|AKTT%5_o@ZaFYp_xn! z0l{Gz8rBQ~Sxhhb;aaYSF(9o>EG{X67X|PL0#(?cuqe?>26d#N^G_tz&n5Zs$@wX% zppb(t-~t5$h9Ib-g_`e~SC*KQnWB(XS(2(yoLX3#nwOjk+7ti@NpQqu<`tBdFt~yS z0Tfb7i!$@lq2UaYg#;^>n1u)hBo>uqCgvz4XCUGgYDr>=LTX-$LVlV8!~#&7ZhoT! zS`!*7(CsR6-1P-0NrQVv;90J_)(ip}FG0j~P|o=bVsY3o2xP&U5#{oX3@<g97#LbF zLDm77+Q4+oz^=m;q~jYS14HY9QWH?_^nmLC^;a@5?GOg(I0EW0fEx6mCE4A+3V{JZ zFBXADAzj~q3W^{9OVyieB^XLLyImz9tvOJKn7^e5R5pjoKx@W2Mh5VD-CEJ^TFlCk zr#qCRGxP&!C8Y0{&U0>^zMzyA_9Ba&k)iW=XYCJ=O-H`;y8a31b^Q_0>-r_2*Y!g{ zx9gjL7h&K6L!tS{fBx3_3=9k}45u?ObTc&n5aVy@XJBBc=V<=HUc&V{ctZ0JtrG3m z-rcc3G=DRG17(Ns7bn0r^om$_hW_aMpm_sSdAyzoN$(jMpa5rlvE?@?H~1<9zW5c) zz;N941*ixI71hR|CiRgoFZNFZ=ZFo{m>2>wCV@0Dy{HFka#aX;aTHmTLAUFVW1#-p zm+sIvK`-|H29<UK-~bfpcKx93%F*pB(aHE)4^-cS`PQyHB?=iQK&CRk&;*+rsu1)d zAK6p^P>`2!b-Vu1{L$?z)5+Le`+}jArSr#Y?&c$3!e2PCgR0Bk)D!S(8=U(fD-6>T zb8?arld~B@L)>&N@J!<1$e+a-@Nx;X&j!?sOijUNj5B024kWjgD8TGhPzNmwFUePc z<!2C|A*P~Q)j%tv7B)`d1IjD0JjY!hfHKN)*E<mE2822Tp-w<3&@xj7a9#orV}tWj zfjxsjh5=|8(Fi;a1eO8k8L*5YNJgR=Gy()}fq?S{SjGr6qKKI{zDt9G^ko$@14HZW zS`my?-5c@0`N$toitP?n2m%e~bcc!rfy&h2?of`P7r&w7&I--7e;D{%jKIs0|70<~ zaQpfHf589JKQFchfYOOT>j6-E>Bs-lKi#e>0WWR`GBCVu1Gg7JEr`-TFAn;H)q$D~ zp(;Tc9rg^Mb^ie`{{H;`zti;!DC<BnsSGHS!g6GDtpWpoixp^vo2vpO-@eoVFWdan z9jX!p%4RS}gN+RCcI60o;R<rK>l4tx#R2}7KcETe&?lXtFM6FBJ6$hy#(rrAE#uqF z%*fDrth4k(^AUlUkKpA;x9g8iP@(Y!mVbL)-vso!z6j_Jy%O}I@5lfDork(z-*meE z0JXz^{pWAZXJlY_kvJKepG)NGc|dvD{iPCUE#)^*e$IXgT6zn~ugyn(WPqcr7#?LS z?2)F$T%<r<ScR7XAQzRWF?7d%(EQx(dV%pkr|SjC;;fxum-mVogGwXU3*hqL3&<BT z;PUGZLx}-s<i%AWpgZ(IP{s?8@r*Afe+Ly1pxC+T4=NzeKne(jm!MV;C~t$x+b{o1 zU%aSI1+}UF1ngpCU|_HXZFVbX-340r8k8aGz##A<^DZMpr|W~}BMPtCCv=BObcR0Y z4t>GDjfsC>!;X{80*r?`L+^Bl{?I(s8G57J^+BiWi_YU{ZQ4%PAFm5Q)gH8TQk(=X zorESKl}-=8fm|G_67)hH*~JF0&6{iQFqCM49Sxeq>vnw*@Pe5c6mSCFp?5k%Uv#_P z=yd%7&491jkGq}#`?mH3Ln&8t?HLCC77<XgaQy%)=B@<2xb_WN%qcLGaCe7(&<2es zDRhG7WV>CT1iV<p1hxRAy+jl20#SquLLUUZXoM;_@+Is=DH9{Z%f>(d|AS@=SAa`2 z)IJ7E|LOGi%ihgLzVxz42fUDG1cmMwP*W!$I1Dr)`66Z#69cGoR{F*8w&DNgBNCR! zYYm|7QU2{>&BvJ1nt#=ovpByNnUL1_>py!rXY*mE*X-c%J<RNGUHhlzI>>xy#()>Q z89?TL=q~-zc@SinfOYL3{@#PI^|?sqi5z$R0V=D&y@A*2kn{^NpYOQqj{^)047))y z0IzwDyZ!)`c)LM+e|nw&H~(NQPyesdYT?QtFwvDkpv9Fzpxl)~Aj_3OAl8*ZAi$MD zpyPsyJx@c2BWv2hS8Om23o?fpnZtz4VFYoyTz_y}=wM{L3GyC)kIVo6|Brzp=u5Zj zmw*>v85kM5T|dD30mxw=iqXUByxbeY{J%5w57fiWN4_u~2zW8^KWH?x^JnuB0qfX5 z{4J+JVbmqua;b)AA1FEPst5H6b2=`lJg_-X%Cip?7Q5s@Vi6q|R6f`|C>7cV3Xxs> zATbw6_;p-R`C;>+lxH6(L+xS*$!K+4Q2Ar?qm*YKD+2?=E|8YjVqmd9{H>tY!9Gw% z+y%0-mqpIn^-p<i8vizC#S3Yjj9^jAPqp%0EK({5Y#K_F(he%JfjIW6{}~t<(l{AG z3xOXper`U<^xyRd$Rn*5|Ns9lwFGsqU4Qh-IP`*&#gcyv44ub7$t^gnJM>3TIEeY; zRX-EMF%|;`a0R^(6doU-we^($3=E+4sE|%JG<=cP=n4EqU84u>x4bC%2NDM*E9@Aw zMkXh-xCE&^4ikz853n$#gZRa%pk_IwNsB__sQ>Zr?*ffCfvaNh{;mvn27!!95YY;1 zq;`Q=E8LNqwF^WT8D4_QZ_s)r=s+mOHm(5B;Oo4<pd=~qnsrA6`mk#PXxNp%6*M9A z;;;|{!%NU!n$B<Ct{mM4kgBfr8-L4L1_p-C&)sIt)jSOREzJxJ46wmXP`hqFXxI|A zB@i@7mjSj_18OUHycBG4H#=x>9aNP4F9ywnLU>T8gN8}>g9cP#CV~3e5R>lxL2*CS zm`2-@2TTJ085tPLB^DMuU=rwL?vw@5|5-s2FP*_vG-#h%4k!?oLdr#O%{>7$AZ5Y8 z-zox919gBls1kr~Y(&_dglaePDx`R5zZX1S6U))f-0Aw~C1@8*=eO=+7U<?fQ1F44 z8zF+P1u6JIgXJi}2ij=@@$}2z5KnW0%1=ndK|Ky?%#aj*^PomS;~#1aq40A8g$;P0 zA2|F{8Nu#(sr~=|{|U{uDWHT?!m|)WcZdG56aWuacDw!w_-_hIR4+aTgWFoI2TE8M zgA{chZoOS%+g#1Uz~6fJ-~a#CvLMk?uH&pA8k7w|&4tiEK~VjPp&<RB=*s{_-!lf# z0z*hXhi1L_oc!cO(C{`|E(L9IfKA=O#vNc|E#Mv_n>T3v3y1)%am&EWTCReO4B**L zSTff~N*ltUF??_ecl!knlGkh#An^lT_6KT4+JeG>p~MyzP@Ld^vXm&1234t0FP;km zc~Jl!M6Cx(K&t@)UMz)d?ts~joU0M}>%>op?TGvZO`PCS*mUrAC{R#jro@9NP@u)9 zmFDCyK*I(yZER}`+0q4?*vd=+FYSee8K^vhY{UTf0KlQ9<-;J5;STBnIDz{HQlNf7 z30U40Bn6iD1j#Fb$0#j8s`y)?A#L`ID7YH%>KDwAKh4j`@KP6~8k#FjkwPB4pA;PO zXMRBZ4&OfmE?+Rhzm)aGJ6=#>1x{imSR=tR5H%7ykF|a)1=;%F6rAt^|A4BbPB~D^ z#f>H41uMuv(A4vvu>WSzh&%}~qqmNwJB|hH<JLWl3=D>sT5t2WXfuHZz<Dg4S@>H) z8xmVDm9TX)cQU<}=w|L@Z#_^7TD1#`_pldhp?zF%F$-F02MS&O)+VG91GK+(A98^U zp6>z&%J%P&KmpBnfy1Ml4N}5_m*RChgC{xRtI0s+?LO?~Z64GhSa|_4rV(D=^0$HJ z&L9aHTsC<A1&85F2S(`rs?J;8(yh1oTUq}9|Nl}8G`!&o2>{TBWJoP?6Ex0T&C^}X zfilStjdqahb|ZTeQ6gXX2Jt4$b<8kNhW)<|&U)Z|>ijLwL7{f!%Wh;pg60Dt#cLPT z6zKdLB)lL-y{?%6alJdJ1hfTJDGVjH-Qc>Vn|U#a|DP9B#k{u0Qt!OB1CK`tbUH)V zExgu+%%_-wgNo@Fbhx{ly^|Spkwd3EEYoAJjxK*i@jNug_ky<ggJ&5)xg6ARiO0zG zka09{o(8Q8;c5L3S<eV=XUGRI2xMe~vaKtmzYJObQ7giLl()f(azTm|TECUrfYW)) zc_vWQ|AFLeu!=%Zml88)f8=Ilc)5@Xx*r`H&B!GiB8K06LG>gk1|g9QDOO8aUx;%t zFm%g<ozS`vp4E7npy|)Dn1#O;)KZ3LHWpB3gQPs{84Hx+P%;+6J#nb+!JDnX`4i+| zSThEZKgFTOpyyBIjP)CwXhF3eIJJEE2?|{S(3(*OSe{Y<<tb%G1_rPv7lAZ@%L~x> zPB%Fjs{S)daCbv;0cgnxYK8(8Ud?D33ejG%gqnifUV)hOx)Pe7yvfQ>*68_33pqb+ z`i7LBI*U<O3?VWTXwM`pLJ;+L+b4*};q^DD!1;dxH8+9k&de0p1aV$|d|rM@W?CiM zoIx#*;kVY?rRJc)VsJ&78_Xb((SkiIJmUZlh`E6VS0Lvhz%o7d{BZ9h#GTL*4^hpv z{^xH2&GIxu@&$hjXz&?tlOx&-oS@)Mj?P1^m-t&iUC7=dmhLDP!;`JIOA04gR<o4G zx1KCv?`G~~d@VVlo4Jz>TvJ^Fw@`v!Fn<LPQ*;+|AX0C+B(~yE4b*-`sw-r_gI(~N zuk$9Tlr5bCk~jPY3jt96fyES}zQ6MU5&~%TJtV$BgBvfPgB#HK3rOn+RuDoKCdK25 zyHXy*|E;$n)2ZOnP$QH<AY&HxxYJ?>$K5MXwu2U8$WBJ&2TiDxk@5pl#C<EtgGO3O zYPYcA$<|9H(UwIlr9Q1EOW3-ZIvHQHbTf4_cSm6fU#3n`a2*8h=DZdIg<tcLA3^^i z70lkR;PCCd|C*=sVz*H1rPAe{-wglb58s;i_`(-{b_OI^p*bQwwFKP81WikU=QBZT zKETswu>F?cj8GrOAds;FdtlyWWn_2>I?w>-IvnZ$9mI8*>HiyKz8V^o{4I6hXu;Fk zi*^Tx4m|z09w_ncjsQ*eyIB^qlv=|a0$Ndoqc#XYbq%OC=yv9KZ39ltyI=-juf9c4 z^+Ky}&<F<TjGn`g@P#E?cmTu3H9)=cP@dKUpyuhH3~*AtAI>0<aTI&#*0V4&yjB3$ z=iLq*uO(V9l?c6tw0A56SV~@ZgQmB>g3bei*b9nRd~4glZ3l1!ch?HQ_6vdII6Q(u zAmbLOWq{ZZ1ny~Nf+WDQx3RnNHZvo`OK#AJF*GxQTHaXl{~JgOK+FH2dKS51z~2Je zGKRMRjB-Uy0G)?nF@`<uB|&Y5r9DWI1Kwg%5(Zf&;t#5i{)GQ8=J;RC^8XrWRe^Nt z?b6q;&0t1@QWMNmi1q+G)M$8n0Gb?7>mP7xfJF;9pMm4S6|`v!6c5k?Ho&RjZ6t$0 z#&=LWh_!x$tTY7209gD7_85p{Vq|zN-7V328?^8Ni#M=1Co?az1iEGba>j=~sNMrR zp(ct!AcGOKjTo~D_>Pg0;WZbiyn+lZf!1Jw8myp%2kXnnXOw{UNkWeq0m;ULY|Bi{ z0UcW4?vhxN2%5<DP0e)%pHKxBQGjz{eOC@>kx&BO#c~1UsCOWO3%kogKrRaeFDK5} zbAU<U#cf9hhQ**hJYskPbaWLX149-^217K1z>B@F85kCWdWg+O6hKlO3=CNU8A2eb zMIb3q`|af6;u7%0IBecMJ-)Csu_!wpw4($f1#L$_%1&?_0=(Z~V>E+6#sLr^huy`C z7{K+=B+!!UGWc*DMjEaFjh)PU3CTUII~vf(|2n|KIG_`Vg8!R>I4>-nK>b}rM+!8J z13&N!+<yX_=>;_tQl3B!hGY(CeGH0Sh;PBG4WQnImSrISmU2LP+J7>@zFil?AdsPp z-M3r7<Ge3H3s%A987yOA_wTwF1pF%un$d>(*V7TyfP5_pniAtMVG_vDFagECJp;pH zP<R;L2IqCqN_o(XUD%6*2N@XxUNA#fOT#y<VU+jaP*Op22{eEpXCPq&P-01Day*W3 z0#CJq!|8l1gFuE0_HgR?2O1B537SWN1rcb75mxqq&uaratou16h+yZn;Yb+bNCBnb z01hZwQ2s>?taWy1fyD>vJiNFM8Z`#3K!-U6dl)f5odQdpXki5Dw}R43EC-^Qh&|%B zK7;rQW)!@BXuVw`Xe~S80h2&E=fa)`Oak2{GycGwg*><iZoh#;C=+THr2Pg7AE?vN z&MO1Ct(0RS$n=$<;pkG(vdvzWRt63RhJgR3AnRUqKVx863}S(52T_nxuroSMCj4gw z@w&l|Yd-QPI1HLDOYM;k!2u1AB4cnp09s3x#qnaxQ_$*ca21{!4_>wtpORatpplYT zsiTmqqfn{I0F?yohe^q;1kYWh;#vJWVFF3>7f{o|Rx4<vXfkwuBd8zS{!{QcdM!_v zD@TXx|L#%&{_V&3w}pb%1_Xo$y<i0m3LXK?@q_n6NF^``WSA!~2xQr0xPjOiAU15t zPs?vmK6qUYT0PD2!tV(v<u)X<{A=)LVe0&$!rze0`hmllwafMYfd@<t$t=tq&Mf@f zj~#r#)0oWipP%6ar!#1^a5HF`9cbkws0=tzss^g%rh+U3TkH<8cm>E}*nU#(-;h{? z3{)eBOng>pPG(}Bf<_ifd_Y7|+R&w-hz)xII!6^^FL*v^eIkQE#_>c3fvf<Cy(k`@ z{0r>i2<Ut)#NT0$!T$DUVQffd`P*p>D%3$fng?nngM$*`Be2Pl5R*}SWC<Fuf)!XP zs6*|kkW&t!Wjb_!7x>JFh9m}ojIJaGfviM`nJBJ(`jdg-H79rh#HGjRsTUp=5c5ie zzd5il^G`hho=JSI3n~AP{K)`YaRX#UCKfB2eu4tz<Y5MR8F@K*Ie9R_ATJB1!34^L z9U2Fe*W?+j8KM{}7^X99Ww^rdnL&`zfYFZ;H2%fFAkSdK5Y14@FoR(m!&Qba3_^^C zjQ)&yjG*(tTsb_Ne{l0pgE$yGN0bJd)`NKgdTv*jE62YRHgYKHy1{zcP{dHR!rC|B zyb=mpo8Ij!&~dr*+;La%Ql4J-|II(R%N<)TmDr}Wo-DE8-*%gS`!R4(XDfjgw3P_+ zZ)>+tW)QGETqpcm0x}=WzpdQ}EL6{a-1QG=j<?(O4{X{Rnu<$7$J?YrlQBbzt{tc- zQB2XbgC$|m-~&VNeo)v!wSbERXlVpGA+AzKAw}0NH$Sf=1I(&SO)S#Hw*Co4Kg4_m z4Y*bDDT$TEn(%Z2DSunPLB=z|$)YrcK_Fv20|UcLd+_>~Z*DA1ko|03AQ`aq29UG@ zXbh%|;hP%^V+r_tgNbnYjUagjh<vvn%fXjC{M%3RZwq5>e#GD9#&X~V6F5aSANdm) z6!0SLA9z5d^#G`)@F!yh+?Y)uV|IcDyW?06zUJ}f-+s84=RhydiC&)0w1cmi__tqX zyx4i+-~$fL3kM%CYhLJOIdJfWfac+}gRdDG4|m>3JNSY{6}0|E^I+P+*KGXTZ!@0m zl<Rh5IrxGHEDny`J_TsMhJWe-{%t3q?(Ag&P2DnRo;dh`iGO=bKt?iyKvx*cfmclY z+b%I)V7$@E2G%_VGT{W<p7a9l`eUHEXUy_d<r@RTYnBE-7DjOI0MwF6Ni0c?ho%uw z%7Dif11ODvM0(2@t~Y33JA3BL8F2jtTGI(i-H@$P;CP#v#vqV!1+*L?x!aZFn*$3Y zL~=Dq94vViB<a>2%JI#Kg$aDzXU0~z<Ta3_CTKqV$d~R|j{n9lc7vBZf@%$Le-!L7 zusPSUd(8VQ1H((udK1txYNp<fx`R>-y(X<I9C8_U?Pbfh?7Z;(S?7g=FZg>4{`azc zJNSTw@x#FfESeuW4;_5Org`Y#D<;j0y*9mDSQ!|06>rED>%8#&IY<M0Z^i#!mjAsh z$9q{CdRf{JzF^Wk*c;OMyZI1P=Y{X82htb>4!&aV41KfkNE(B{_eY(V558vZWr^-( zY5faYdKUTyw36vhx9gi;kprOg!qOWezywo#;ou7<jf1@`+j?0V4nAOF{Ly&W;qCwb zj5oSM|1><}?~dgFS9!s#2OdJ|J8wvuLaFgUwIgEXBRE1qV-V%3so5!smGJxqn@a`f z7jU#?WiSY2fW~oN)<XLuplZha*MHE_hOi?b!4)T1C1^>=>#%RmER5i#=D{yaA+ZD! zDbeZX_S~iFIZ37S!uN-rCp0e{e8I>F@?Nh9sQJ&Jc?cxf>%rK00<xnSoHoGbvVwZJ zn2ELgGpH&+%!;PQgM0-pg)saC-fsc+lS3whKn5?UFC7W$-+u{yk^U3YKVVgSAXUcS zoLQKl{*i@bCy+=9C;v8Q*5(KN5XXXxAFw77?2bM437ca<1to@C5#j$9<W|tSyVn_z z@*Lc7+5Q95y<nBHAotpVTnBY;E<F61N<_My;U&v!BY1n_PX^fOVEv%U2P{=CKUSxM zQVygI4@)=T*<x@QugC&z3In+&0qkN{EG`DC(E+KkL2~hK$V@3nq(rF88D1JAoeuzZ zFIYEtT`Fd}i2sN!sI$P$G}u~NOgBelGYDi@f!q@Vc5~o&SSW+z1DwjiYOFzOEFkd# zO4-n`_JpJ&kVpwfH}h+KNPp^21~?sqbvj~C8tXq`b8kvwWqf{GJUE4*hBMeb;Be;1 zVGzjhW@KP^30l4mDIbGhOouErM9H6EmEa>Ria=otb+a!dCxb*vJdn}{xb6^<0yQgO z)lM*|dPJ>ura-D4L?ki7Pa^=w5!lWk?0(+;9`0vINTReap!paS1fW6+EgTfWg1f<E z42T5Bk;@>EkpPMqKX4ay3S=4sH3&dz5<zOTz|96{uu3mzw1FBD;PyDg=^(Y~*qzP* zcKYiSNc{fDVgxM|elZU;8SVzpVF6i;P>EDNPz4U!c??!J>DT}N;Dym&!d|HT`~Sb! zhxtFGSUmCl5vT-&6^pI6OBo%&O*K%%5_$e36<p30m*x>4J{oxp0vS~xzeB>O<O?iu zgToM<xWQ_`Cv+f(j}|2Bf<p`uK47(t*u&?+TTs-#&P5F$&<H+K+XfLnuCR3%U%=s0 z1X{8U9$fg%UdjX-rTG%};_n|K0}9%{ge>LD1J!iJpq`BZyo}`l)&H(Mt<Zhk;9TU9 z&mfR75fnI}z0~0Iu0laVVDU-VJ^A|$1H)^93C&0T9DKkWki`)6qBj+EbR&4%40!CX z@eOE2K4{5)EzdF6j||6LpD`SBz0GjU^#Vh8EXQ%s;!My6$_5LDlI&jJ3!S|_|Ns9t z{PtSBo4r@0p;sh;@lzLbH(0cTh0EEk!J452G|<DpjXB^&J9rf}c!^Q-Kd!nnt>5az z5c;}XL1rCeVPg2t4${W$3?f;Z?V0Q5HQO`PfsE;Oy%6xi0%FW-PH25#c%ajrrP-db z4m4iU>v}ujg&0%?WPc_|o}<~GsSdns#`Rgii*G5Q<=g_V`N93S&T@g5y$qoE?{w!m z?hZP<mZ906slEohq!n}yQGK^BM_}*VfdBvh2fru;YyJ}aLSQRsfJb3MFAHctJwx-3 z9pLdxG0;BQ4Ip;#i&n5&P>XLCRMoB@510g+Z3GxV&BY)8O$35pB)}B$w-)~Y|KF|o zA5Y!t-lZD<|NjS1B!Whxa}cK(K$A;BQEEYAQEGfietbb<Q8DQBMNra#47w<2sHJE! zs3tL}Ix(nLK<baiH=twCKwDu!2UTRTzIc$##L#&deENRt?NU$BctS=YgFr?(h>!=L z$_Wl1kVHR73@l*=8tlWYzvjPUV0Z}{?FY3_K;=to1n4Z=7uJy0N3*TYL(qi{;J`5j zv4dYkB!goCH2nn*Y0&D#<%|pr`$1hk(7Hmfx)-)rKxNUF;1^fcFfuF#X>C5D&<i%c zvo+-Z|Np&P6aN4IpT!uS#n=rN2zarS6Ql>UxDzH~{sCHe@VDrITCfm>84C*;1hVSG zUX)0KG<@lm*$e71{@)CWr5A@Ug9JgPVAu=g&7jEs686Gx4I@KmGf2Mqhyv8~j3rQG zbRow4-wcZW7tKieA8&%{=L72p$-9HLOZ?~I?{obB|9{2~b_Rwl_AC~N&jMaN;$UEa zvNM*0jqjZc@@Mdi6H-uT{pfXl5D@&r<<I~B&}HinYBPIFpX@Yv$RyA$>Hs2RA57?G z*$3KwAyLoX{DY-L@wIjH51$e(Tabk%8n1OH9B0`H3h~#<(EN0q1=K@icr6U&?*hpl zXW0o_%<XP@zh-?W*l18Phg{cj`1k++y-Pt$sKMzKnm|DlDUg&|P@<Ptnj4>)S5mBC zqhJCr*K)$cf}tA{j=O?ZjDW6!039*{?jC`QIf)Vmfs7g0lbp^A28NgY;E}i=S&ZGF zeJ*DqZ3Ea~D#rZX4A2aO%tcUC2)u^R-z`9!h&Tcc*#D(GFOEXmqRq7rKxcPAW(E0M zq``K==OMsrbHFAax&SembqB;q$Pn$z*PvxdwGSBi`#=TuaaT~ElELtHbL|7>I&jIY z3GyY_s~g~6MH%;Ud=8HC?$9gNp%3_bKY_-~elzj+zXbJge4ljsUf|zuYx9svAg#0Z zT<5Q}gRhwQw_oaInbga2=->lZP-mV=^FpWV3Gm*NHQl}+AjzXM^hoEoZkD;A1k?P3 zv4pcorTGU_iNou<=Grw(rJSuNOISO7@4PPRuD#OjdZF89M`!Jw*NI?B-qw?)oX1^n zfKtcnz;4$o-Jut{S(-XsZ@hMZDmU5DTziC}#IX5aa=Ff~6b1$c{_U>kI<Kc0UP}A^ zoqzkKZr2kBUkHLbp`f0k<+Wnw<^w5=$Nsxsaqf0qW9fROmb3Xc6MrA5Fad=Zf2$B9 z$Q00E><!Qc@NVBbfk7`y-@<ZtD=2KbOP_StzUZvI1KyT&quCae6&UziKwa|Yf64sq zpn(X(Z!bXu3ZVV#4;cAdL91_@Yd<iQh<1m5=nTCB^;vi6lb4|FiQTbJ_RF`v4($B# z{dMQXgFjh2?;ZRn-+4;&Q)lR%&I{k)AN<AI?Rw|n4|&Z);BW`|N7MC==Eq)^PDnpk z^KfVEjm~RO*Od5xLdBhbyDTW)c7g(@^9DFzK6YN`-+sRH7LHg%39xg}0BihbFVDbG z9sn7pMhcneH_(tNG3j!>qr%@^%h8a|`hmlpwafJeXuLU{g_*;hrSk)L^aj)ePlt>- zyR$U-voOJO62@!^IK5vwi!HtPrgos010|WcsSE`rxsZ8U$euvZ(KMZ|XIgKArYN8z zs0tMf0vYPe3=A(%fl@YfJrZaK>6w5R3bBy;galv*d>VjMgSF@}GcZ6pfhgIA>j^m9 z^wwVZvy+p7f#LH~(71cI>jMX*QTIEbP=JiOce_4e&0%L?fQJQq{Jq;7KIR7QR3P>8 zpkr>IUO@x86g>Y79&-b`%@Xc5lws$*#|#XwIY8}A$VdldM-)=o2^kZB3P1)g!9ofe zxtfr01dTO<mq5VQKY)wOkV*!D3@2s=hSwU9UJAI&@ct#tdEm*rRFERDN@wiOJO7A* z;dLyy{_k>TQDL@WECnqK4t{YClAu5V+4%t;jD*AI(#!w<TMv}5fqeU#1vCeMI$8&+ zE<oLL6c48)LgtPT<Etv5`v<yQc{*G{%cQ^^0kE&#s~7|_LO{M&<KO1`AKV#KhWi;@ z%7%fIfYpU!_w((C3=FTMC!qTG-fM8cf&7ayLqpid4_=`AxI6X+d~_1zUvNJe#ls*G z1&vCCf05%DF&<=I4La}(<XiR5Z?GYCg%@C#wjL-2AO7hMQUg|)j@`R&9xyPxPV4-J z>fd*ebPVz@`Xm%#FTZ^b_A)OxlDVPn2OM#oTM22GHopPSAAs)r5r9N&cd1D0ZP0yQ z&{Dy;2GkJ*`4&7r0V(5PQ*l+#VZH{ht^iNPfi+ZP_w~2?3=FRgK;9#E?hWJ_aGw^o zs5vzr6nR-FV>8I{gh-WNKrZhDxg2!<TG)%7&rlo-o<;+!>B8<<Pmp7|I*l8k(`Kky zCbKv`EwiY&1T@qDE*ijnxaK#oaUw)|sj6iV$e0RpM*ygO{w4T@`cs%oz^(;%ropPF zfmCUMMpsJRz+*~xA;}6X0zQ8LJlFtMI|sX~C*K2gre4cH;~!F1+Ax-Y&c_9<F9Nj~ zkVil>i{o<=k-Y((!vlpW+L(z`9fLr|a*z{)!Npp_6PP!^=i!3A0amjDq(&cHeu0Mp z?7_+fp?(1koPaY4*e_rW>#+Of_+7AH0+5CQz-7y7cEmsvWCDhN+YR_c2PY$Fl7sOC z|F#wZ$Xr$lr{MwUdN=TO7N{`^IuZ*sj|3^#G2_pro<SgEC&){%_)C8b^Ee{@z^Xu- zC0~Q$j}dg*+?U`NsgRfkjqyQNVS&f?z-kX*_w(gDpc&C_R~|-YP~Jt3s^Ze5642o% z;8`!wyc;AJfVm2G3ZT)QVtD%=6n~iY(_4^VPJ;ZB1FxTgUrc|5=^wDlQy`U2VArdG z)8kY~l!HaUeh2#ptQK^6<!doZ<8p9$&(y#mkO3CIh~1yBZ!<8wW}l#G4Duyrgn+YD zF~fw_t5&T7&k=$AQwlvt3^AU06=cmlkSjyr{t0_={2``)z$)*9R6+);K=~`|MJ+Ub zKxq<@zrbprVt2RkZ3c#ypiTtDKK^ZPpfUa47>WO#H@>UBXaG&#F!!<q9elu~dARci zsIimA`hmlZ6_SV<5Akombnp>RV;ZET7sdh+2e*2_iTfN2sNE#cdH^zzN=*8$;{r9K z(pZ=|+*lgYSpI>t+o1=rKmZ?r4bGilkA1`Lv8Y?nLk<zOBrLr_BO^uE4qQdrDS)VA z2CQ)-2O6;ew+dpL7zDs~Jc0*!pyd(RY3gvNfzuG!X<*fiEDQ{<lfY#LD7}TfxC_Z? zU=grdaG3#C%MMa&1`70+CZs^`ys3E*DM&3Zl!H68B_PLu_3^O4nyV;H!swd}3@<-` zW@o`;vYHpbF#>9nLu1N~1sd0uC(3v=PpI%WK;rea5ma3B;11AHbVyPVcX(i$1d#xX zgX8=bsFMm>he2VSpSy<{=U`9EWA}904fHq%6^4-5h1LU@<zZk8=mIrR=)=mxaJaSL zI0DBfSd}_R6{tL9f|iH8kdg*mpMjeU;P?cq)y3|_!`B%YUi(3&8kk)n^W30Vf%gvh zw>z__{^4g}NV6?rDpi1}L<DU;<nSI2(Au5`Z<Yd3;{$7<3h^}}jpsoGVCyVE<qu|g z>eR|0kO8_r_jNg>JOG!H?ss9)fCvw;N=Hz5_=0^8O5edR{z7sBSOlyV93Eh`?jW^_ zNZzshP!1kXj{w;TRsy=H64LWRNy-zhF)+LihPVf!UlY;8BsSdKLC5<aC`Ac3)M6Ua zEdqs-f(D4xgsm<EH7QaP3m`L5u<!$~RgUH0-+maJ;y>Jh1rfL@P}2r#BY}u$?8#uy zRd7?l%<$y5!_1{3;PH&k8?e!gG|=$;t_h$O9ydC#fjjcwKw_-m!L`m4V22}Gkf7Nj zP>mm-nHLW(+h8t-cnK_|paG^pYuHfhAD9pH;64DKrw{glSv!M3Mmi|s0+GwR_qU;* zEzyAKe(?{~SO;hK3%x8tj2A$2^%wZJwHSb!ERZQ;e~@WlBQvlE%JM6qKmmL1<YBah zOHeMfg9Gw$Za%1m5D%IkD+c)-6lah&4`hA})|Cl`xwaI19v#?Y8XXJ*870_Vp$K-x zOVCPgQ2Q1%{_OfA;KjaY|NrxEKZcmM>HQ1}1<;5tc;05$eGpdwH1bsgR>zYi50*#; ztAkALOa&`a04WOR-+m9AyVgQRwObFA1O;a?W-);^86as&Kxk5enk)xa#EqoL8l>n4 zV=3PbQ_xxw_;{oVXzT-YRwLw^AEfX@nm@xEexkR)9&0^-6n+_<pjB|#!|&lGP%L7E zU)@u*@bmoyG8Z0xRggj#G`fr$eyU(~knjryD^dU{f`=b;jvqDrK70fj4$-85(1aR( zr;!x>29<F?*ztv5P6l``4Y7hh6?_tHVo@qX5vCM4?<r{HWE8^-5~xrSNGK<x7{0)) z2#F0VUogt&C0z^x85=;vd=>_Vm%WhnTdm(pL0A4|><3AJWfy>CL5C)R`zzoS)_xrn z7@(OW@UiHp;c6Fx)H;JUselgENq{Q@_kZrel`R4(1Fgd7{03?%m&k)xl}UCpTeI;u zHG<k0AXYnQ3jQSzBLf4d_~&n#$iM(ve#XS#(hgD*%yRG*52T@xW_hT{w;NTUJdS@G zcr*;!`mj7yqlGR~Zw2Z8@o&2TX-0zAsaYPX<=O!{XZ0m$&j5B6brs-_((7W7`=NtR zGjD)H1>_g7NZ5;ZsE9KQV~HF{oWGR^w6pWbpNzloz&Hjf4#6k?euRr1#hw$cp9kdx zXn6+Bc_sOvh47`xCGjP>3?;ds$ysoMg2g+uUg<7{-|ho$d_L*{tsetfoeqxDEmy&g zN15LTtGNnN<J|fUa$n;&kT$URHITUW1W?pK+b)4O!A5{Z5N#K*;yc*=!+svrobCK> zcmO&Cx*8JN;ArS{<AE*+^5}FEfYj6AW((^S(5YT-pzT4yFQz~Wlja|wx$Og;ZlH<S z;1_cD{{Q#rbdx#m2HFGs9~@$c>aDn>C=ER5Tbz@c2R_IlEx#x?5qyS?0RuQsBIdVk zz!T0KpkbeHkR^8D@DuF=E#v})K{2?=UUCKOd6e)2tN9O7;}1UK0o;I51!)A!Ft9Q( zyfy{x%!aJT)Pu_~f@Gw@`K|RoWWdY{F3H4-wSB((EGTWfR&GA>qc`?KaM+7~fB*jv z2AvHDI)*j;MY$UjXcrsvF?NRD)E(e4aL{Zbxb8-z5zumIo)_-hz$YomcY<!m{?Y9! z0y($y$pl7*PIrz@_%268uz{0YI^>L0&}|Y7>EJsr@GhMP*T4kVzk`n;g)D++NXgGl z%*+ENaYX!Zbo+92hYEliIG~<YYCotV?q?9la(=DWTgK3OvP7WQRU{zje<@Gk3%>vV z|Gx$=yS@rn=aSI?Vy^({fvt+qI|B;LlZSIti;EM}k*Bx8-U9hBJ}0vzwJ0$MHcki* zL(m!60<HfcXJETcU=YX%n*dtb{o1_sTZsxJa9?c!tu^m7h8$@CKB;MXANcmd&KpQ> z18Ype;<ihtL2iR3X|Q`hA%YSE;G=U<*EoTF{Q~5qZy+a?V==knGy}tHP__acR-L>R z)Xn}9{32>A1MKz%ux0Vd`304bb`hvf0gZu`fHs+A@x0&%d##(TleycCrPG<E+l>Q! z)9#o5WgIUy^};*}E*!v437*IxkO4YJ8H;OPor3!la)(KGC<l1^FX)a@OQuquZdU<I zCl>HEe<wOm;Ar5vgV&FM55vtbOD$3;$w*Zw$uCgIPg6)#C@4xT%giq=R)DI?FH$JY zLu{f;QOHfr%`d9d;|j^hELO<OOUX=5EJ-a^NK{BFO$QzFTAZJonxB`dUJO2GQcoc= zzf>W&v>0?SYjJ5&szPF(0yxYRGK;~7$0#JFf;K2BWR|EGgWRMC2}fujvc$028oVOq zPX@;%27xRA=+#>fPJ*IBpx0F*0Dfff3un+_b&y+&i;IviZYe0rFGx%WtuY2$4NISp zxay7tRRiD%cr%GXAmay!039%bB?2-}GBCW>Z~a!v-+H@59b8MS0$q0{13IA{blVWB zE3Hm4Fm%d+(<LOn;A6cdq9A{P7Cihnev$t7|9{9)>EK=_xcqSm1}!3r<@t74po9;+ zxA3(fw14pJFbDV~pe)9q7b1?JB8-0uWWT^`Gtm4LsJL^z5D@g@y#q+HM*iDj#uE0l z=GtovHQe70vy||CbG`0R!U3tSnI{+?=#JfS@^HE?sNm5BhmbCK?;R|hIGSxEK&wH( z3;HtTr!WY-m~-;~|HUA|g&+dFPXV(3K$X8ehmnEdze;Px6b1osd3}B=gMi0W27wz> z83guEWe_+ql|djL$_I(fhq8A}Wf16?${?UIl|i5aDh84lfU+~DG6+OWWe|{<${?^} zDucj`sSE=BP&tq~5Uz*v^P%*5C=HTB#uif<1Pl*=CzL0E!{H_9MnXvccL!+U#7oeH ziBLZ1IJ=ji>m8wd(7AUnL0J^a2c3EMx^4&Ph`ZP2o!>wUH5gv!?Eu{*@H)No+YT;J zZy^pm((^jJ^V<$y5Z`YHABb}A{I&ypxSk#O7Vg*Po!@o{f+X~I2!SZ|&Tl(}K@7Pa zA|Oh<^V<$l5QA@r7>ELm&x<pFw!x$!ioDd4_~iV&lGMDC;`ri{l+1jFbWq%umSpA> zQ=$HWR6SOZ`~RSaID;-J1)bsyvIl(9EaVX9(9WlgZ)7+a7{E;i(77?-q2BvbL5C=V z2no>Aw?813#x$feL>a)RT7o(*8DY~H1YS&7$jH#y`UkRHws$MTkN^K)_JO)xC29=e z8KBK_S&U&X{@H<6NP+8**LI-AN(!w9O2V3t`~aP&-Dn3spR>r0i6H>A_#`8I8UrW; zzQ}+`SVH=U0WUcIf)DMK2zpTjUMLJYiWIa|31oY~i(LyrduLy#g16gsPX!4Ey--{R zo>&Ll46+Bj^@_hG3EZ;%68<6->>2^kiA*JY5KY}qEZw0ZpxXd`WHEGuy%z8y7Ua!C zpfimGz^Sr#>5cEuRb@p<3~q^;IjJcMCHV^AgUL~Y8anm{D$_t?PM}@68T+O)2n4^l zU<(Qg&@w*I`Cnm>^VI`_UnKnd|NpfOxc?0bpF~@5_ypO4&Ku7-I2{r=-Vjk4$ikX{ z7q3AlBZs|+`1Sw4;Q?sL269MVVlHx<03-xnK?+NUph*Vk`cjabf@-mqLQZC0s)A~Y zf`)3brj-Kr^9^D8;fWjSPe>aFRN=LrgtS2;XD|q4WPymckY$#aAkD<BAR(~$J9t{_ zn1OT_;*`UnTJ^Ow<OprhoHuA(f`Q?GsYpOj;ESc;;~qf;E7bjtPR=f_ZtfnQUfw>w ze*OW0LBS!RVc`*xQ3i%a#wMm_<`$M9@2W5`Fhqa>be<19Z(56fEO+w{);fvqP>$Xb zreFI@W-<uu1g+Zqvx4FCvJz;gD;Biw7oq}mk{D>Hq&o$4CBq-%+8@leF%Ovp{<DI} z<E~#oE!gHG0y`}G9$S2W-+AHS59ZEa2Y<<T9@M<p%X0GI1E$Vjpc~z~8a!q)2z0PP z6uyKgJOxsCSo3l(%WcqP#KF!JP-Sk65OuF1>TZG5!3_jWTENsXLDUg6j~Swlpm{71 zbx7txHaR_D(nN9{E2y2@0E%9wRtC@o9zic&Swd5Nt<sA&E70ltf~CTZ#}nlk82-C{ zX|DZ}%-?q%bVod>TML^m)&oaZ1VaqAeP!Ur`Gg4*LQ-=JauQ2Y!Nr_HW=>9OdSZ@_ z0@C^1phOF5l_!FgFudl4X$8}$`cv{#i}S#z)|Y3NWGFx#09J^DKokSXMX4ZnfHM^6 zG;esB3%`$`^>!)iZspmay!<08Ciul3Sg4c;fVN?4&t?z^&hVJcAn@9y^Zo_~l*?3_ zf3TLRqKo#HF#kkPrJz=Pa7M>$27xT`7pEYHGz$d0F!}cXKV;AVwBGhbqY@KC=OOf~ zL3V<i&``tlFQ$}rC#a~;Vh9cldg0Lmy2%aPz&Z$O)g1$^z5MsTG#FZ#Z?OOuR!c3w zh1ChL2fw_S2NBJOR1*O&?BH%$0bZ*QI;Jc5#hjH43}AOb&o=>eL_vqT^K?qQ=7H^R zC|}9I06mK!9_=y=aQh5W&VsrxA}_R8fKEL)&c@9Ex?=>?I$&r%BG7rG^*|}>4$z4Z zoo+m!u8kY0y6I*+_<$+k#rNf)TSPbvFIkHf^LM*(9A}vT%DGO~VnrXJ_MSWpzP+y` zF$rZgF+wmNdKe=^I!Fw3#{+m5B{(?{TfV}^L_q!l^;;m<5^b6bIvHjzgFsel#w`&0 z1&9sn3MTJkV0dk8c-va8SP~Lm-EJKJO=i5f#Q|=WJ6p>Yy#g%=F5`HizXBu#+J~?L zY2FCr-gvOb;&bxzvr7v=<s~>=;eAG))^CvV8|;?Oc?<#>ptIMoIOob<aQU49s(rz? zu^C?aZr1I_(JM0nv}w6cfT2X`HEXwY^I;B9quaRo$dB-D=KltWYiLRyy_N+@Npv$? zT9gQNGxtVtG*@sil(2U@a9CQDzUyWNUpUF!9l+9wbi@~uH!$zt1MRPE{Z<N|e*ya; zU_R(%DA3kH%peum3tAfsYS5H{Pb$XY50%&Ko!{U-vB2sRC6G^K!9EcOx4$vH15&}& z&D<R-&>6t;8g!~CXiy~l#XMF9hEC@HZY<#O8y6O6jDd%Vko*cc5)0B#Ly0d_P%#Yl ztIYxifecV;#1daBdqDB^avJC?YEZR`C*G*!-_D!OmJFrrh6i4&^p-Jn3wAqkbTT#{ z`4aSE1}g)@e?N$SL95XqtuFY9h)AA>q|^A+ijvg4l++Yh-w22Q4Hq&9WL&@=*DAXi z7+!*|8-e!cXz%}S;nqtf8lYjd683JUZeIb=%@raHB^<CuDA?Ptq4!%s+ja4vEkU83 zPfs3(lo6mgex&dKb=nh?GoWYNVZF}~+TMX4N#6P&GF}Q!AC8L{1TsLI&R<JT0F}Rx z1Jq(cqF|}N*n{rnPH@rz?f!u7S$|zP!SGwRJ4biupKh56t+z|!K>KC7eFXwR=P4O? zhw}Wt1a6I&*!*|>@!y}N^;@Z2cQ{A4Ge@`YpH7x8a2+!dyh2>y^%hWi>~`h=-_G<U z_(df%=<I4xVScYWnxpl0>Ei#cf4W`&ShE*(f}-sOXbX6^>knA_Aw3>5gpl${EeGsE zRd66AFJ=(P03C4pS^^vf;4uhr7=UH8LG2mLqT=Ze28P$xhTp8sYfT~f+nu9ZW&`MY zI7ojKbVG%!Kmf%5u8@OUA+CSwW^G=Bz5FT$osa}?TZ1m!1QmWPkn>0XWPsf(u!KP% z!wkEt{C9w22Ao!m!Qiqzs6Jz0;BWw!>!AJG-L4$B9awHN-1~V)G-C;a!2JgePh3kt zyQP|~xa(E#$QHl^8~!lzw|oXoX@qh#TCH-r%)s9dIzjR^)7=}OL*IQl{ui>m*#8Yw zw+Ps-cDl?^ZV3{1<@jH~@?tqey!i)L8K}ntzG#i*#YBi`=keFV`$07|d_Tc{kbY3R zngzU>B;dvT1q=+Gu5VzM1sxIS_I=Uq%3;k>>jh39;JZ*kVkRA}-%2#Q<3ML_{5Jy) z*f{b0zhHRj`}c0&H{C1~JKZ=sO(ueqPwThR>;GL}bi2Oj4&|_Bs@Vl{F31}kFL)M$ znyha?H%kU^bXveRQG-$v`i+^e@k`h;Z;bPK5*{)Mym&ny+#7ujJD(@xA(KD=;{3p7 z+Y-=dPKkK8EQrzV%&{0mzqW&wN45nZ`BLdDM(|pkES`+@OBn=Sa4ckCSPYT^)v8Cn z{5J)$U*y5AV1u~{<GeDko5G=P0*zNd+ymKc0rE97sBz@X0=);Y^9Fbn44M|f<A5-u zG4_Xmjs7za;$8TBEW~{H`8^9kzUy@6=mdKgW){W@d9Ya<pk}e|fEWUGWb6yr_#LdB z#1B3#uJbea(l^fTXpZJ;4u;b2Fw;S!zp#Uo!23<WrU#*!j_E{GkXvDfV0R)fnjsJ; zLc8LiJeQH5pB)c6`3>G@PLGF+fe%DuNC)w8jRcX@egqj54=Owq>}(Z4bbgwGhPy|8 zezqn9m;xQImJB{^4O|X@<Fh*yG~^1ND1EV<K_KJTat47cz1LFE^6Qs;Ik+ecT>+ER z&)^2JHC7;X+wX1$m4m%y49A&43sgIUSsJ`K7>`44n9O1VpK=folu@{XLEwe&JO<FM z&&QoXV`vP=oh3lw1WsniL6Z!+{Sw+&2iNQ1@)|Nr0CJ}2N(O-}2P{qr0y!o0n>z<% ziGM>n$G`4!Q0o<R-r4_hffpg5i!a^5+Z10LfZNMI!opt&v4RRO5bF-8cOS<B>fsy# z@j<I}JMV!it#755!SM=dfPtblF()TKnE@Q=pcvM*%Pa;hZZ0i=wMQW5-auwsz+t-= z<mjZ=k>4CR7)xA0t?~ka7mW)U;8((e`zyyGSHd250G%wr0KX>|?C9eT;NUv$AOi|D z$b8JHl?(zIV55_<goo26NM!>=3Kj$j$Hs=^pRl@9!P&85|$#=i}+;?dqbS0aAdv zjvlslQxMdw1be1v6@x%l+3Uz}ZXArI;PeA_2w1rMwG$-$wBCkzzit(SKn7T<;<b8n zH48(j5IB?aG*=5Sl(K=&a|Yf0`X{3suCNk|XG%9RFuay;t`lJ>;RPK<8`kY60y#Gl zbiYBFz>AIr&~`Gog#?NvXum8zCo?Y_nw}u#257DUI%Nv>Px5L8feg?U9k0b&p*K{6 zT@4m*1GRxL)BV#83=FShKz=9*JMIjQp@w9Uf6a9gp!2rtBp6Ffq0W@}f8n)S=eOo+ z8HN%?P|O>5JInmP0GVolW`g6+;8+D0=|6(QUdV&iJb>E2=$?TjI_N3?uzILF7PKp< z^>!(EJrmeV25T4uGC&7Qzm|p8C$J3;_8=Ls^kVEj<K6&DHm_BhkNgM-esLGlnQT2! z%3^rnH9tgf18Bqsl--dtZ)sjpY8pf5H|Y2rC?SE%KV3U8GdDFCTmZpSA4pW!t|&Dv zJ~_WMuLL~Z4G{y8@tG;0LnI9t6k(~<FW%YF#|M@|k^SzAT8>=;`EWA>1H;S7pdEjp zWCot#egP5(OKt&;*;lrngq$Y?j%%<uXoTc-A|(AbSMo4G<T=+e2xNfeL0zfWju83( zo;>`m;8Xf41wc`L<WGhyTp?&0<F&*$M-e8->6Hd>8PINGEXjM?ItGT<WzCfwpev&S zIl3KLI-OWvvw>)5p5{sxh7y79K$dPtj!q|z<DkWe3=GE|K~ozH-<&xZON~H<Zu5~J zfslQz4apq;KxwI(hoKal<cbAegv?@KfF{(}ypZxQF!+Vopa1`nBM}mX;5q`7rod<W zfM?XescQN<27!!wpujVn09#N14n430=&-=o65v~c!Ryb!;Rcog-RXqI(+k%!fDRLd z>{t8mzynY0pk3Ojc`1-KI|tJFq+nObt_Mw9U{Ab$AR~oA?L+Xz>pcGpcmiJNf@fx+ z#UNyeARaQ`3C>Qsb|}}tL;6|JIl}Hxo^D^zNx6^|1gd{3LDqv>#jh*CVGrIf0xkf- zGN7T~*KwWSU<2ad@Bzzw1qGZ7C^AchKrvm)(_9HI0xNl-2?$&Sg4KQlsg-E1lwg4D zKIj8k3YPhf-Q%Ha7#Lm$b~AT63jAk2?g(0(#L#-FM5eh4oTQvMIvqJWJy>2dcY5=5 z2C{T|alBRrm%UQm!H|2JIlF^cKsPRze(wzA==6dpMNS)_sxCe=uPi@16;{t7>Ssjw zY~H{ikf8_~{FeaL#Sr&{!v`z_y3GztT9~?;f#J0W=>8a2o`CQdQlRzz2HkEF-EkrZ zUo$p8W^C{iVFHz&X5do4^>!&sLz>86a4(A|AT0bv52%xP3{qboN2{-qTppjCk(!*1 z&;7X@83ZzHu(=;BV+-neVb%v%S1~ZWPKLWb3Um;FHy-yNfXx=eeA0RVT(O0PzX*by zQ-bi?M$k#6P_M1Q=C$0!qT-Ci9H`%*yqr|TU9_+?jV-=BHZcff#DM&30*)_4dIrmY zW<6d@f%f|fK+|FpNCQ|d4trRfTnXAD2M-HBklB7{5%~jjL1b8Wr~q_e0C#XWLyjdu z1ji!KYGG(_ti%%>&^jNRpTjqU_QrwSWd!y!IQ4?lC|Cx3G>Qahqz00D!9E7d)L{4V z^%V>Zuf5?ujsfLfV+<d=iUfppyFzc>#z?@RyDmDR-a3NjEy#v7@TyAeW3=G$O>pU` zw*`8{36@M|0CJ`~r2Yam-b$<?7k`_8n<_6@q2~ZpgDSLd&LWH@e69aW*}gf8FqN`& z-T>A9f5L;qUMPaR$AlQ5f|jg#sTC!VgEUaxSPR<x)9otId9U?9Bs{?my$o{b8tmcO zz8ti7p!If%*K2cV`vu(8(gM3mrS$;RRZ<{_hrjRv=NM3{{n_{b|2uEI76sow-g>+A zB<S?p@E7O5!zW4+t@!lR5?DC^s$)Rip#w<nYu?HrkO8{x5lcWmU&g@j+Oripw+U`i zft8=c?wuXWz)dQtZU>&$10{ms@gmCrffCMc2bR_YrC%TixPzNLX_<K`sKa=ec^BL* z1Bao+HU@!=d)O^?2Dz~goQT26TLq*Rtl>T=;hzO}k4j>j>jW4|S-Z<vUVnsy)qn83 z4R~=KEPpDr9w<=&DJ+o!4Uv_weRBgP4v6~VZ=lO5UyF5vI!~ZDNCF9fdQPwBW26y~ z_aIjez}grb-M&2Cp`azZ;Qa((Z+!<jl@)ZT17<;+vy_41wMyqVNLWf+3X}>oR|qha zaJ8N+;s53!!dMCo)u(8o3cf50S|)IGgRUNi+KULzyzLAE8M4^z{j!9C;k9k+CD8q} ze=@*<305u#D(TO|+#_QdAc4z4Pp~-%5*V;J76Dy6+Z_vXShueT{47UMv*SO=ZRXhB z76EdbYwIOQdll?9uyPBq+aUQJ5?%_H9HpYjZoG{eXb(WkkY2zWV$jA?aeh$==$2z} zoI%P{9&pnTyq^yoWy^Lj2xJ5@F)%=u=#+uZI|6lfk@|;VB|#u3RfE<){)a3W0Jo38 zQo$gpgywp17qOm$p_He&9^5{vM`<5{)rNr7nl#r-FhJr1+&%)!go0#X^_2st&k7C? zuv{4S;FDYoT4oOFD;)U|2EMO&{%7!_+1I(CbW*_cnzi#=cNt6Tw~`oeF8JK~tt1GP z`oW6Nflt`_5f%=u%@kS>)U$!qm9FoOV|mR94gYA+6%}mYV(c?mFX-qMv(Nwk!$uj_ zH6QsC4za)b>woy#U`W~kIV6;)J4m40K|u4u$-|(waknc6WR1je2heR^3?~mKXC&t3 zrRKo<Sn2VZ`SDP}cu?CuJu@H5#Wn5(o9-rQ{0ZX5<~N{x)p`Ijdl|cnK_DY{7lS~S zNk$!ry#mCB&0a2D$iVQL`M(1TD6Jtm64HxAm>0^?dI`xqq21u)qA|@21(_%K--`vj z!oAyxBdFU!<o^XU(?RQ_5M@5d>=N;ACl2`H#h`A6{}&MF`GLJq0J72(ix(a(U|`q* zT9t-oNqJFbNh&CQK;Z$lLj=_h2bTXAARC3i7F-2c5Q4>mMjRFtr>173nh$CmfxIE` zzmzAa+kpece6u|a0$Fib%vZ!=esWHJaVoqH2h9w$UV@y@0e0^+ka=lX%)2<B0df8j zXk;B63p|Ke056n?FHbB<&OmWL=rDh95P=*o@c+VV@cmGKGQie-16h}k#k!>Vpjs6g z_@M2NV1pqSBtplnLE}B(Yc^UBl!AAYf=vwC3p&0Ei-`hY6JG~F`j0>UmkI>D0G*Z9 z2|A^&^&6yt9{fVm0yJnS@V`{%f2qX(Qjy>n&E_DHA6X2+FD4j*mLY(L5x)e#$g_bj zV1SKXgYLG?0xfHTECB;CIbQhvN59S1J>JtlKHSsK*eKq`)hW~+9v|SbThIlT8v7Uo zUThR+VrV^3!g<^oJZAWs9X`4W9#J~(tN|J>JnpOmp$s4tXs;Ax?KET+GI$9KXyIUL zS!!MhcmWHztcUC`JMQ`cv_BTQtO+`i2)foci?KKML+}ex2_}Y4H-pv#CBk4)hTs=W zU?G#%1Erv4DKCDDGcg3b_$Umzl)HZ)(h9?Qb3p;80Gju4vj})`TbzjjJd1boa7hLz zvnr@6S6C?&mn0UIWag#oDHLR;Sg9&k=qRM6SgEGyD1dJlNi0ju%z+3O7bGU9#=`}; z7?6!AN-3}fX(}%Q(Omde7fqOeqA|5NwFKk<1tjx93qtUifvmqgF%zsiEx!n20v7{{ z`N@enIiS!7`8c&m0i;YdMIouOB()f)4anxF=a+z1@PRexC=lmOWc{c*bU+Kh!R`fx zt^znPA)bZQWRUYak@bV@clCEew;GQ@Wsv+2o|}#ZP22^)*bQ#P3p7`YFq9~Pj!7#v z`Cn}CznJI6Sy3j2fd9oh85;W;1YY#7hb5T|1_1_!7sf3N44uw0$DI`*X&bcQkKwqp z255W|G+<C{@?wf8Xcd}FbF~Hof6H;u*s8Ndrz>bZD(Hsl7qwt%9<a?~|BDs=7ps75 z%Lmz}2)0e2+gqVGkg@YZ>!n(@-bRqUsth0g{|7DMvvyYDZw227401WBC<AF;0n+?r z9muJm^+x}TO<u?$Sp!q{0;Fs&Tv<10QQ<!kkZZqW{Re6K3FiC(yYniTErZpal@K$! zofW!+Wf%{2hW=p%Ik4MXMe|^9;D4CQ|M4?0KwZ8A<crQ@+QkZ%*Xo!$uYrvP^%TND z?&mnbAn-y3VkjtgR$GL>NCn&fBdpu?Pr(0To^I!W{}(_#R)yAYB_-gAcw?{%NJvV7 z10NKaU;{ls23}qZ3J`_P56sRAs{i>x5vKsLHvk&w9Ux_Ez{()uX7J*gFcSmV|4)TM z0mB21##VdqY3*Nnoh<@h>=9-H#W*Pbn~y+jM~cT2AR{ADjBFNWVgT!$B+LXVv%y`S zFIkK)qJ)?bw~-%W!Ba$_6`atl3&|DW0u<JU0hia{xzzyBo&aZ^fGmdK432{g0-(b3 z#REZ*rxaQbl&XT){|bVa)CCEGipmp*84#N-if4es4zvpaoHFhUF+qxOSc?sn1~~{+ zrhsnlQGhrLRG8u^C!if|==eQynFTHf&<w&^FhQM>n_mX99#)Pikf?nEN{NdogusO( z!aKNK0V+fh>Z~wI#Ugl_4)PtO$^eyepba<(eO!=o3f$)bpS1+a3!o(D363^MT9bvR zbkG7WQ0~b%!XWVC*(z{^bvvtAJ1dkX!F0+a>4X&nD?sYEfz^Xngo3iZ!Ha(app@~a zx7Z@=#Vs(K2WplWC<~N=@<-T<3j&}N3%-C2B3sMeU96ya>@^oWgM+GIaB5!yF~#y< z8B^y!NWKFNlNalRWxN2nzy#ugZf6x{XV7NbumI3;j??&<7&O1boF5>-!~n{_D$x9^ z(tHF`BEkHkag;&e#jBMdzk^%|D#Sz}_JVCh%9t4-l?R|It2G!(^dUYdRR^nt8Q1|* zHWR80bP=+_i_83=paC7N2KLt(ekO))R}n~OsM}RQ6TT4;+z#w^<vGp(T3`(7fKPxX zb8y$FJTuSO2r_JH1+VqMEiaGI0OVW)sUa0$EeF)R?QGIqp}|n9+Z~`{9iULE+FT*R zP$C%gzd+@GflfxpaRz}Gw^lGPG<X|9_7lA3>Mdj7-|lRr>}&xZV25TI6w2MxKOE$` za8PSmAtkf80K`a5Q2;Ga&Mz%d05uwt5|gvJ;Cs73A`0p8#rdU0$)FwEd3mYHB^sL0 zy<DJne77%8>q+n>asNS=^EeqPJ6Qz$FEaUm@illJSK|ayfx|Qf(!K_VA*e6o3aY68 z7nr<A_ylULqBs|WgB-p{?S3mr%S|C8F)t-271U_sf{w{R^BAanbI7Owt)Tg-0%}Tk ze(#I}t*{AxG4td9|Db}@%>vZCt~LOT5P)te2m~)H7U*_1=yccV4&_Pf3^xF$AW&@v zs;M$woL~@m5w;wXCaZNAN<kBu|4RjeUqnL3Jdgb7b=L_9dl9G!Z?MOM*HMAn!6u+_ zndVvn>2eP6zNFW-6F`fO89^oZ{{o5L*ayKcPIH3OWa|OYwy-~0GQps{6T}TonV{CV z;epqz;5B~Tu_sW>j^${s6_6?6ftd~IfBeak`CrNdI<58vH#ZZ*|I#=AOJDpiee%Cp z;zb%KxY^GOPW5oJL7h<~v!R_+aQq?c1J_63*=Tuixn=NTE)Np}D4R~@f!2ysc)(r( zOUu0YR1FHZFTpQfRx?0q9B`OG<EtCg;r@{YjWRc7@CMy@NQAw3|Nnnyxy5mJooSB^ z7}Gk-4L}hG3F`0{&(s+h5L<T96A)7RNdw*8o0tMiI^gMIE7cTe*$i$&mI`#&igd?v zz@t6ve=$#n#%TtD7x7C$&KGE|)?p}->vjDD8iVHv2!5gb3v`f2tvl>^?mw?VqeWq$ zP064}X9hSr1zHc(szOw}I0h225G!SeM3WFWcwfWL>+56(4R%5<jRM6Vs{6}9V*=<N zP_R`1`2rk2(7giSeY&7=p#P;j|I2t@+~R=jr4j(Id=Lr_|6j(F@dD(njwN7kwcf5Z z1t$Vf<L8AkClf<AL-P;r5`pF)Vx>Y5mr8@&15S9a1t5;*?EKd4D$*$da`FrCmTUCj zpMdIq(2#?bLTO%hUVeF=0*I$jQdt0>2LxRJ-yO;UI_-nAh#PbmuE1+i!vn8%A-00{ zJ42iTs#P*poIxsO=JZ2HQC{nVPNoI<yNKt-Ep|`}1cko%3qKCfz7es~n-C-5>tn(D z9g)f<o)>f2K?k!#!;=G4wUvTKME;j@yqF1=f|c7Kxr~&v3^3X1-{1lboUXxrUY>4W zf$mrlke{k_7)q2t=_W8N=*7G5;6$SYS-sKi`scL<v_8pV2n_pQ#Pi|{D=25yuyryU z9(c_SQ3nomXulS02XvfQ1l0KlyP<&R#bH(^hUOptOKl-~UhHONVz5<HXJ9B1spqs6 z0WpMLOWGQP7@V&KAb}wQ31HsNZ(uuKvw*Ax*C}9oK;v<sTwK8OqJ$MWY~U7`a=dT? z%RtnF#!DN{!NVo_7b09hV=3UST2{!5{bit%8N5Ed1bosbs0SbRBIf=7|Hs`pIvz3! z9Crh+iRp}!fbXM#1{Ab?shXmYS)8X{qL8Sdk(yfy+RBrnsQ?~zOi3+HF3Kz@$uEM9 z)j5FgfdDn1T`vTLy;uVZsv`o;KmM0kfXd;J7kVHEfet7Ne(@N56eq|*!7om~`~UyA zGsgmugPa9GJ;Kgnp3WPu#XG-+WpJEFN`|7npvn$>00B5%fyP@wD-s~<OpyJ4xD@X9 z3b<8aFA_jjxpC|OS>+}G+PvBs#{>5}M)sP3<bO0zE94g`Bq|i=CugUYK<h>q(D|)U z?+3qF%L2_DrQG0k(>Fm|2t7an!H~s}!6CrFkO8`ED)>bQGe{wiExP~%L#bSF2FC>? zA1n8OeEeDf8ZBUx_(6xfgSH_f^3WGh?s*N~eFq8)(DGVWo=zu`lZW%-(^85-3l0q! zz=Z{LU^yPrs4B?M$ze#(%m?$Z3^s#3P3ry_P~FATdb>uV`N$uze_vQSg0=_>1phCE z4|<-uz#x!u6+{$)4$ONCVsTtVTC=Fx4e~iSmq7gqir-QJaQy*qRs4n=*$Zk_uywog zq;<Nnfa;J^t>$V0Mo{DX2e<?Yej)bh|Nqw_&D8=-rJz0H8KC?V{DR>VbO;}5+z%X< z+J6yw3f!P7<#-_u7lYN)XuF+2r8_DHuR%;K$wy4`r-PSUL1th<yX@gA7}7xtAmBTb zAmcYAg+JUV@KVRpywc)S@bavXpioy>9tFh>XmLJx{eZ_M27!#IOAG>8manD2^PS&7 z>y*IvK5m7}S!I-f*c~8su!(`5PS6p`p!0P(4!mG&e!vf^RFoT%IUY86b1;FYPozOb zTCu>3#!~o_Ch%$}0fthAEJo0=a=k1L2Ols6WbynresR4RG|V6X9Tx>HjRMC!xV!_q z8Me?DW3})dP$N{O2(qr3b;lF51>B&fC)5A`{}*0)$RyC|%+o0gVt`x%Ir1K~^b7U4 zd$56*3sDV(tQ<zTi37iTrl4tuuU>Ap1zFEfA_;a+cK}bPC`bUhinPIlgAr!1Ve=8V zyFka%WPsge4K*0HULE3Hi0e)scK69lQb<WnODxSPQE>OkEG|)iCkjX(StJ-{KB(~r zTXu~w|8@by->BxJJ0G;$>_<ieXpz(QD+~fJ4pxH>B>@*s(?AC_Ko%Cmf?5IWS5SYe z6x^6C5O|SN0@47fLz|BXyf%ZDZ(x<(0V2&-3?;(dQr*rholFo_ufglZy1}8<9VG&i zaT0;~1!MI$IIQ@get{(lNGKh5hOFXs1~1HmuAm2}Gf?>w%h7t9zoi3oqwYPB9n3H* zFxJz9tyq%}2`>10dPsc0!wc$OCy`D!md+>w?u~~UhU#AMA`|HTBItTIkP}-$8z@0t z3HY7V#z+YUw4NH0V7Q=$Lhp~p={{$|?%SUS@hqzQ5P1R=ex>k?fjxayL(L#9eI-_c zk_$L}nf(Se7C<u{40zHPOA$x|B;`;cePJ(j*5_gikLDu+s7Vae8D?(%240*a2yTsm z_I`Fouz>biz^*ukwRus)5VQ#wmPbJ+>p-H^9BMCUe+XK9LW>vl{Ha(03J!4iefvpF z_#G(#X`ov8Vb7oWIoQGvHSjubfr5{z^;?Mqc>4$s=un^l@X<g{9Gzhtokg%+rm#90 z+DEGe^>$hh)To0_V)+5;FNVLE_3!`xm%-rk<$eT&zffm`v=Kp<E`ToYfhaQk`~Uw- zJ<#++i5fg_VNU?-vQa$%&-OT?VHTqOoBsn}G=R$E{{;dsZ1Yj0L7%GS<NGXB=VL7& zA>ofD?2A}B!#FJem9TXFc+G^^>5J4>i{$_v8}|)#8`PKJ7f)G1r;3-bb{4R_X6pP5 z+V2Is?HH;DJXTQ(TG8D38FXP1Xsw+ka|w5MG|S8F(EYyE91JC#-N787ve}6Rv{M1Z zWdZF&bmFkQSIP`p0dkwar5~es1l6beK`{i&P{N?;S#T--EE5tCY!e{Ohi-Q8@>N9P z?TlPFnl~T$vKtguFoVFGmcRzhg&G7cA-kFXUw93wP+Cp@gO*=`i*ndr(O}S$s#uQJ zlO@KWb;c!}-LMtqpvA`^E_5Zi<;_y&?r0X&1?8PLqTzJ{sLY7v>GtJly<K7q+O`1- z5*#6Px|F%wn*}Y8odZ=Upvf_4hKII{jF2i6(EVeO(r0G|B(Na&wWF0kID!mE{)d_b z4XuTsF#Uf4-Wvng$)Ir~==N36S|<J$XV6*BPzQpd6c!1f-HQ+hN<fX}=q+P_#3%B8 zK2U3m0lj==1hqaP9n))H@MTO``(;TsYR06n{er!C@lS_@G-~)@)GwW}e?a{`rcUPW z(myXnLB$(1d_dL5Zsa77NU5LGP|OCURB)RZYw$cO1o;+ReQf`XFL+?(R%;eW12i=q z5qPbQTyF8Bw(IzzX$HMb2a4SNpd<l{VMKm4gE}59zoMn;IF`<0j_xuRNZ_z_JF#?v z_UiJt-u(v}p@v_(4Z2GldN!O;=SAoS4o8;GK+vM5cc7!;z~vM8pg^A2%-x<Wofo`X z50tR9o-F+Yl7`gX*yRlmw4N+s>Sl!WFG1rKp&&CrD@sdPECouxo;-}QuL0UU1h2qM zE-fy}hu$j$E*n8}TRh#Rp!&)lGzOIOfI%Rm5=1-)tuDpvrac9<%Wu4v03Ckt-}wJE z(8BuzC2zYytK3RoA&o0S!l2ui$M8Vwr4k;?Qzg6(-9ap^mrB2YkN<#{HK3q`s)4SL z<-$-19)AD@bP0cR1q-OOc3=T9O25Oyp!EPq4qTEufDey=%Y|})9l!y#{0G!tXq^uC z|Lqd!ed?ekdjF08U+<1)0r~BA={r~%3k^t|Ya?R?KzEkjhMYM84#-0f83Zyw3lp*Q zcjr_wfYwUBYyg!$wHyrmt;qQdd-k1>jFQC&7D6?7piBeKWq}{?<udS`eSyFW`E-y5 zL@qPz{Dz#*DDFR<PeSzoC^P=QfR@W3?Sq%8paxSJLw6YqXi<n6s44aTa_4bSnNr8X zP{Pvszy2|-D}_C{647h}m0RFy7)N8uHy7l4aBwMsMl^BuIl%)F1p+TVq=Gacg3GA4 zjDf1*H9wK)@M^9Dt)FfEU&q%O#?n~?8UcQ-4%+Wk$H7p7+QtR9v#d)wN?5yHIgndg z;QA4KRsd)|f~Pn3!*SO)py8+2Uf{#iI6><TT_pluGlQbU9JJ{kwvVG;ytA04^K-ZB z8&Dr4_Dy#&%WF~4{6l9oOXu(I&^MjI9G$Umx~oB}X<1tTm#*t92Au}M+*!>6YI#L) zbi00mZN3M)171D}fR4JoT?)DnCmyt)l7*p^tMdlzy!_5v-OenpnY)8ny1_*tJD4hc z-|fV5+zH$-2X&CbyF+<`!oq_BUMv8g3MUW{77j{L!7nC2`7i#1uIdHty+oS-;{Z?e zLGEo#2QSqFl|{{OIR2LkWHEx~EJ|T(_>kRf2)b>H-SEIm(6#5C_dso-6|nPGIzPV# zwY|XYOmG*$ndQI1f25-_>K=lMpzs&r;*1QP$GeMRO)F4o^sV&3>qNs#oxeN(wf--0 z0j-%X0o7_CXM()b4KeJ6@xTB7JJ~uvf$Az}mhK49_U6{xCBh(EOV797F5&EEhRP!a z(u*ac;N%7}wsdAUsAUrVVuC0mLnowJ4L*t~Jsvc|Yo!pLm|5ZrJ&hJ}Bq0M#Dmb+y zBr_MZpbdOv9s_jw*dBFIQi3V+Elvj+;g(<ITbfgnS&)<JpOlrFTvDt6H4Ss<94rFU zk6$ymer<dM+TH{{`%vI`>z#j~!EpwL<E=NKEJ)qc%W}%{P;qqcT+mX1&benmLD#wm zlo&wUJ{g*=7;22aIk7O7=r&q`rZY=<A!dPQ6<$kD=w|Bf1sT{4(aF;7*a_x0AL6i{ z3Nof>Z}VQT-TW;9pqA8LkZK10R?xor=Kudo?Z5-tpcu?z=xu%Q@BjaR7v--(5y8`X zpw#0<^=n4ZImzJa`NT7%f&8cv(5-c?|4VhSm|*&vkzpSb_$m$l7I8)f2E%VJK@%b1 z`D+GL+c@F2-O6GJ2g$wQdks1Pto1f%y!%ha<7W&4FPkC#r5CSXf!y{ZIE&%M2Qc#w zNCybRT)*=blHH(_I~(^t`S<_7Fz7DI7SPF^FY`ec(L(lrg1Suq85ltJ_O^neAfOu@ zLg6oFy<%hlEi>b3{`bE$9Mn4Dc#h=#=wb$j*A5e!!KxYfTR0g}3<1Y-z>AY_!G`>U z9)IJ3Y=UGl=;#kn@9^LQ=FWqR7c37I3wB;$Jdt+XiH(7w`4ETYp`y<q+qpVFyac6& z-ZF;9f1pt1Z<z(!Hvoy)5^L+Nphzt>Mov*BkYo=^KSJR2!vjq}EDc_4j1a>gz4n7> zE%pOxjpgZOxn+5%*s|9Kv?ZCLbMFaIIs~W8ZdaaOo<p7Az(xsnGj)UItXbqs;pUwx zdIT}8h|BQ6Yv}%iUN^?xr8E9P&#?sOi{>|={vBdmjUP0wZiZ-0bi0YP9w?E6xW79B zbOb{dV_3k8nV<uzZh*?61EnuuRWIlq-v4IMo))NbhV~Soh6X%mf^2*Pt?yv`U&is` zyDn&t#h3qOIxi+fgXXe9Q+EH$R9>u#1@Q!62J?YjRc7+yJ0x|2O7R!*(eTaw(6w5M zw%~J&8Pel(6EpK52d`F?fDXT8NC%04W<MYa4Lbiw()<Uw#6cyT6Z7)&OBBE>r&ATm z6SGrwOA8c=Q*#pwGV+U3!Ak(abpa%dTfadLR|<H|AdnFcB2++|QHnsUj@L+&Q#}Qs z$*GsDpdtbqgrcB|AVcO6lfa9%I8c5BjXSb+%PL%87HGZA-+CRC1dn{lig=M732KNS zg+Av(2XMf5GIxS15Kzu%fX;**clIcF&LDugH2g)R_W%E#&K$>`LqLTzEDnmY7_w48 zS^GsNC^I_47j`SXVq^$-A@PinAt2)f$QvxsqoI%HgCbF(+u5Yk*&^+@vkj=Q_ybz4 z1zIHkSqUTyk7D7Bj#mr<!C??TCdDx_yk_eJdk<RUK-%}sZ{S0~pvn%`djt2+-+<<7 zDk4C(2)qXO&%dBe*VuxB3%p(E%Zte=AZN$^`~QD2NE9i+Fvb(W2FpVYX59fX71CZ^ z2-17<Fm$~YsIvt=q91zTIaD|=wH)gz(&CaL(A@~2!&*Rds301AXiG47^%nH5Qt<p# zw=3v;1JGKgj7x7B1Tvn3h}ocRPPWZIw97#E5e2*`3};~IjNmx#0N(k1+yQdLiUa6i zUxwFup!VO9KN%eFVA|(kPkj7&pu`6ocMk*2I(L`y7@q776M4-F>cMKXUILw0CSvU@ zQun?y7{q1nj8f_JR%tz1!qXY4@tO-d-_jW;5*-JLw{BmK=1LV%>oZWL+fk#_N#ixw zgzi8M(D-YBNOPqIs4Ew!(e0?x>7;Vp5wd{W5xj8$7P`82$)KZ@D@qh>;Tatoz=<U# ziOCrZioyP&LC&u6F0R2LLH?1TvrHfgG@*0opz)sWTF}5DXj@qcI6MvBGYDjOfQVP1 z@Ra!GF2Ps|K0hx4BnXxP-9w#$nNOeOfP(5JXtD%6zuEe&l>J5c-~azRkHK;cwCIC( zH#*A&y4?gi-DNsm|NM6o`0vgG%GlvACW1x{;uT(lPFVSG{J&fz?8PN{1_pS~^98uf zn~$1jK#L#Y<!!es@|XkkZcuRB9lZZj0>wq<h!Xyrn*<}|){=%aiGST}ovwen<5-S^ z&d_E!?gnl(x85$XN7D{T{h&;9<O^smIH<LG0mOxtS73i5+0q@S(0UuR>hQ;Z<M0>! z3P@gi-F)Ov7GrqWi;wJ(5}{Urp;Q!RAJ~uP&^iUYekLB4Adt4WL83VxdfW?qpA4wy z1KUCA_>n;%BLGA=f|dke#->;{1H)^D?f`+-OCX2-$zli!c(D<*t^&5ct06(+A84-; z)Hcw)OqnSR5FR3R!m1&p`V}<q2ifWfcEvuBE22Qh8%TgAvq9s9e=^R21i>=V*xgr_ z1xjtNEnp!78gA=$7Wi*~h|BI`8JH|60wA)GsDclC!WV~voDa=Wu=#sXcztt_U@T$n zb`XGUPXlLy+E1VZe6Ty~ekRCSNWlWyh6U;uFr=lxV+a}+;C>u9O}0W0-vNimRgm%E z%U(@e|3mH@c@7c+i-RtBeJu;lU!bH4*_{n`6<E3(yQ@4i85mwib;k*`-Y!8+`o@Uh z0uNl3DZJ3(W@PAeQvkJQZkMQnm)@0$1iuKBfuu)hk_M+lV|Yr$v1Sgrg#ZugV$eD8 zi8(o-wYu@3s~U<@lS>#TfEMe5g;44Zg_;`p!d~#!V0d{4ZcBj6Fz^Af;NlA$fG<8X z2xM#mB`7&?W;X+G(FWgF&GCgnAOkGF8GA^{XMj$v0EaJu;DVG5bu6GVn+>#?-wm{# z6+Ltz$qf{i|4TqY1}+`kS^i&uWnOSv=yv7!&j25P1EstF9HoMwgJViS3!45HaCAF> zcMXPiJ`IKpes;$SfX>2U0-b=v9F3IVkV6-?4xt;I<-q&>z#-)Jl|dlmKlTuiO=n<$ zo(J|NOW?&be+GumLm*E&v4DK(!~t3->BIx-btpVy5(o-@Q4A`rK}XS{#Bf1TW`0p- z3H1IEa9XbgoihpETn=`{DUd59LH7+|7C+O|7#Lnxb(af(XCt9$4wQ@kBR9ugc{<%i zTECS99(M;<j>p}>Rb_WPsCWgP*Yw{w?8OEtP{RH5A9RgNK-h~;NoZ-S(0aS{4oU&x z4k|t%G1dzm?|^#=R6fAH1Rd+>1`oZmcRPr{&Z7kTYwkA&fed@>{@S04Rz5(YD=)q% zHMz8?7`}cK-bO|Q*H@6SA=r)0NCh3YK_JC~vjJy=pM=6|_TDmvhBS%$;93Y8x}fCw zA0<a4r7Dp3lM@lngp9*O)|$2+DB<pQkU02)wfO-fq?`nY!<_F70vQF^9lSjSEgV35 zvB7x()(3-~vkW%sFUY7S>_+8)je2cM!1w>%cyRg_vpN9px{lAxD@iTNOUz*ajn_eY zO;(16mIhYvbb+c+L(@tDae$Ytt%8A$LQ-jo0;E<1-7QmGl9`jE0BNE@E=@>OfYv*T z&~_O(uYf0XyK6xwEg|x4&kqKHj5*kYAvKwS;U(xSq}KnXGWc@Me{Y`BjMi@@hTohe z7)!th7OePzG<+bF%)s#9nddbhVt=nEY(D`9xJ&}2lwfd)1Zv}eHlQfHXkubyfbKX1 zj}xEs0p&Uc9FBoxvgRWKh6h>?l(@A1N2`{QyUj<wWHEqlt78C<P`CasL2V7e$^(oX z3yvA&x*VnL<Nu36AOmzkF_xCBR1yQjYd%mzjNyNQK){PM@M2Hc8FR>W8ZsNLqYa)` zg2a1#Qe}K*3cMW#j$cT<54|#M1;{ZcK*S^Lk=v07$}X=%!EI{hPx#u@-EktX*+J>G zJ6falb_q8)mOooo%ap!@6?UNbgSV8S9m;sf<QSsAhU_&k8^8a+m3Dk-acU8`mWG8p zre8aMGYDj?01;fQ3=CL8e@+6}uMuFsihm^JS7wMmg<$^VD18UIZi>0|IRWp2+Yd<Y z19ewcd?3;~E~s_ZrSAz?Q<9htKFJSWVnB~6htwh9b?>nIHShlc^+rKNIQF1vj0Xpe z4!C^+I(aaQ;l)Z&4-32<|8@x{IP39$`TxK5Hvd$}<x8->D`>3X$dCV}99ax67$HOZ ztp`d$<6$Dbpb<RK`R)NPE`R?2e+Os)7xR)XG!K9hHF~5&`~+&hv>t$*j{u47zo08a zv3qG<9N0?+p!;6_{4eDR$YOYL2y*33>w!{k!vn8Hq5Ws@WxK`*_Z6iUgO*;xIvDAo zp{@Aj(xRf&ypnkErGe1;1UzQYdK+@yfyF-tfed#Lu?f3_WaAhZUZ;b`2W)j7F$pk~ zO1)TjgOOn|hyxmu6}Z4G@FL_ocwFVhlpBl;od>mfL6W;J`z8r=Uikj-;48L;AXSVP zI+;Poy|RL?25CC@fEjc($iWA!nkRZ$8bJfA&Me@_ffN$3fjZd6HjFV6g5z_L=>h2d zM-W31{V-cwSTzGLhd}dL&?5{$W2{abork)8zgT;)@Hh8?&VFU;4*k+CGXZ)9MC)zP zaQdGN#{Ucg85|(u96SIu{v(}Wa3=;_@;4+)ya#0x{uX{l1_tQ566jG0pi|BrI67Tl zbQiO9Tep4#w{pX~*}x@yx3@&|L#9sO4-MWDOt8!a?%ug_{5OF1I6y7xZ{Q&d&_)!{ zmAK)c%O1d;?jwKxm;U)*`XjhI^abKDHU4cUI(^?@ng<_@X#ECmp@(<7v4GvtT>F8c zl%*kA;%{^98-@}ekY`HVx<ffEg9S>!*F}YaLIE5U|F8$eMc6RzpDf01Uyi`w7y0i& zW4r>*)jW)4tpB}vUW2X^&0_3!<p>CV@ejP~THwFy7f>5N5H#^;?Zm?0R0Q7H4Z4ph zl;eL9#|tq@&`SCf;B891Wem{qTeR{SbYx^=QL2U}xciivq5x@OW|pPqR6_P1gZ52k z=7D!sfc8g%uEql$1*oA3+HZl-o|~GRlv<<*OP|ojN<3VFl>%ruSs^Dszd#`|2eiw& zQXw(9B(p3PbnjkbUVcdi_%=U~3_R^Y`)$zlaNPCF|NsB%!6m-xYkWoUaW}{?Ea+5O zIZz+OgOL%jBRnw*RG7TH2s#h%TXUTQLkVaLRmKWrHMUWp<Ov^Xy#N|ahc!1|A3E;l z04n`JWAY53G5OWvpbb2rt6={(9}(zw6M4=3-<#(pNKv<g2I!m-@Cd=@{|-Ezhe6Ys zYLLVZ+FaXQ`-7oQv)lEHrL#z#A}Gqs4}%&NjA6kqguj8)0l2{iE#JDGC7K^7HUD6O ztf>3uEFn-D0m>;B|J_i#l`!XmTVFpw86f!ob;tq$Xj>k=r}W=XqV<0XOM|zB0La`D zf&Z>Qx`RbJL%$q%1F!FGuKmMMBi&rb!%)i(+Qh{R+7I`~+Ks1<x!aAW(~YO|M(gcT z9#G=~Hl7KocR9h?;`4uJp4J2WEx$l1wStGSjN`ut&&xL;9%wi#EZ~I_qzU;FG#v!3 zZ=h~PX^nvUC>)@I$Cam302G4!^C9&ZtiuecW5D$`XzUWc&KvAy<T18z8N=JJb-SHd z(m+dMN))VPC2FO*89G_+bvv=}Z+Bo(IiA+(a*rkLxXV2@1_tNuAdc2cCG6d<Jl0IL zCyu+jfXDl51sF>ByWK$tkaaR0cZZ}tWS7H6;}GpAaBB&ZK+B)tV>hXnJE3(QIA7Ir zK#N;gX@?#*pku;H<U!fz1q)L4Q3?lVpAN|SlID5`h7$JU?hfE^sCQu~;Wa$)G8-fb zZZCAl%NU-t_7$mBg~VrfFiRTfxYQEfZqQb0mvd}solb0y-O(J@z9KabyWK@z^MmpZ z2grmHH3sbY=M`w`ruGj*ol>_e4=CeEfiuoAaK;G_esSv)B;y<c-NFFNF(n0{R9zYh z$}I&f|J_lu3oM4f+2u>{|7)PRQ+NS@9yb5|C0f5BWfjr?&Y)50;Q!?uFKWg9|Nrm$ z2Xu1+C_Aur$BTg0EP&eCsQJJM)W8De11?ZLPyww-{RZ(tzzYee4?s8E!XgNq2jK3k z{lkEs>S6tDa9akZ3+!~H5xj0^4scQjnHKy)0(wj+a$<#b@4@X3MQBm3YnPmuoROLW zUcV5ZSX7i)iC)-)FVKaZ;RQ}(rJz%rKt)g33+-S3|98560R=DAF0jL39W#)4oeo2Z zP<Nd{x0_C<>xbiR;KP?*%XPbHbh;UUO0F-xETFqp7y@3D+JbJm_yE#{Y8t%H2s&7$ z+x0^LsMh~q`X}tgtKa|sgHEJUu>8&6UjYjGS{{Z{c4*}SY7>K$LmCBPFKR$D*hdtC zp<-b#4nr;xL<v=N$AjzpN_IwpjHw`^haJ{+L23Ft3<lLL3f-<BI^A?S>kQD0MEC$y zs(>2nVK3A`gJ+-xKG2QQ&~t#GZD`gPVoyNn9lVkt;6*LCBMM6ka5bMEL)3uQ-2}Xd z04su)2k>zu_7`U!gDch}pi#XL&?#JpJB>l1T+71%>nn6Rv%s7z2%9H$=6KBm?r%Wv z!GPXm04?rL9tPL@h(<W5EdaVat02CpG!M4GWk0A0ftG(D^&mM7O@;ErVp!t@d>Be` zYI1&F3hb1Lq|%b~c*tZn_;v`WhP+hJ<-nl9;?xv9@W2de`=_Wh4>Sq`Q9xm%M@IpY z@H6xC6hL#^1^LCrnMpaRdhm7(Jbc0D&F<%96v#LOB0j+r2+Cacfj|a^my<vRU>QTV z+zVNEMg~h~7XFrnpi&Q-+$BLRk}?jYfq95TDY(7!f)lC0E(`>vH-Xn~p#DCn@-F3C z81fvnuAtM62fXf$>$n^EBt&q3M&&t^07D7*6p=EH|7AQ26ToUgi2$@l?jAJm`CC4K zoO1+p7c{iF{StJ>IaIm?w6Ug}4P~Z<t+_&ip+pu`qj+#3Iq*UN1H((usryLwYk>~J z18GNO2Z#qjcmILygg41yjtAE_Fzdl*sFZO)T?TSIsELuq_}}bBEcjwnc+n112{#WM zB->#I@j?R{;tufm5op8{k%9|LGhzFU!R0Qj4+)OuJ|0Ga41Eq*Ie-$)H~kqHz!!<Z ztOC2F7%5JnD?7mlj!VK+IfEQj%(E~C9xc#-0R`FrVq`BvCBRX^j2smpBaC0PfN$}D z2Lx!v2<U1#XqbUZf8^{4n<-QTWlr#p)}qq9yv)3GcshsqA3R(L_J27qqd<l?2Lr=v z=z18?5<1Wh&p#R6AStlC5BBic>BqqE+7ae$Sl}R5#8mSzl)ys;BF(cf10E`%eWrO9 z(4#ky{gGJ=Dp|k|M=JlolOKruY0t+fkdcDjVG4er7SL-8aDIY@F~okPxa%&4my+Nl z1dkZ_FfwSuPs2zPx?oQsr4)3NIcNcl9?G~FXpOZ5=s;<3tG5gm9^l#&xmqvwK$C)` zSV+<bt!@klo!1FjabBzcLjM>eL$d`-iRueg5bMa7{{}Crg~0<B0U4M1kg}(tFLc#V zJY-!0e9vPk`-{1E|AQ)3Xds}w34D|U5BR_s3vgipPivsY2Yea<oYLF_@^f;6Qj<Y< zv@3wGyeL-CFgDUe4~tTs?plH7Y88f3$t=bU(6y;qJQ)x983kUbnuB&MtAIRQtpK_Z zB3J=*SDv%NYe?j%yr{PXO;a@=5lB1k4%%u~#nNeHc(U7B<~3{Q!EOf*&>jM7gWAun zCrj8n135tF*LDWWbUJbTch&%HVlR>Hb~dnf)+h$8o%vs^^McO|w3Qm%P66)%ae;IT zzXZR~U_t~McnlGiH`rff-oYPcKmM2U1iz3c6kyP_D*~SCbLBC--5m(>$7M(lMbpxW zrSwzl?Giq47;wDifwsRvR~pE4J1TTKadZYM{P)y2?g(>r;EN*Ahz`mm9e7FydAJPL zt^kiof{u`e4ETVj;`0R=1v0`pv6gnPy%-o?M^EUEfTsbB)KVP+S!dMi>=W=J{S9cv zeF!8#1-hMmx`P9{eR(<=I|Jbv3o{i#`hB4K7Cbf5db^bU#m`&#!W%TM)LHEDnimp2 z(B)mQtb}3%wD3o^18l(zycTpLGA4>?@NxiR9;lrLvsI?K!hxYg?6?D@S9Ju`uw(pR zVDcj92qOddoDJ}*T<`($<tDHp#dn<-5B_B9{B-b_yynHu6UbwTpEM6Kb9egdAO;${ zgIRi64t2U4*xEbsGt_aj9@zWgf2X^_e|H`5h!Hr=g4^(*!%KdETG7ETn8D4^AKk$^ znuj_s9(>5Ed9jzLtK0QYcd>!yvHjqo%^%<2bzblMaqtJ!B^P={PJqVYF4eLaUV1HR z9c)quI;#z0AgBk_9c%)cI2LHV1iQ=t)`<tZK?Ss$3VenK=w6-1zyJRmUg~z%v3C7Y z!&S-)%8#yp>RESz(n;rq?${fcL((XnY|zST&@o_;kxz0C2!qVU=71L_XlTOAYVi3t zpvADApIZ+=7G!vcAeEx8-NBUxXbT_c1Y6J;WGm!$AbF_o!d@%}_c5S>Ee5+S2pk;n zd4G^S;3&zm$oK<Vy~lME)MAGm_5}*n7rHM&4SfZ;sb@iB{~w^HfCl4BKrK~7V;nRJ zo?luL4_bthR+^IoSq}gnI|0o<3A94zpFBhv1u`N*gf|z~EY1P(q9>?zQOfhe7u2Bz z&pE)402X@ya+(0-{NM247fts;eDDFl{a|l^54!pi{37=W^7c$vnFBia1L+8!EQS|> z;9Ug}dGL94pgsg_Y9h4rDU^vA|MX1BNrg?c!UoYvI2{f>^5J<GbVC6b*yEssn8ByQ zd59rJ{~K3O^n>#*WR4|ECxZvHG}Ze$=v<TZ_{@}?R74a&%!S7R4@w-|7h@F2IDkD4 zTEO<ac6c!v9Quga+1d9%K`rpVROElDKzQ&Ab}%0t^ddJvDF_zypB^CxJva|?fC8Q8 ze<?@C2?hp+7YX1%ht@x!9zIA0>=~tJAkTo}02fZz%}p%IE-lbaEh@?{(k(1aEXszr zA32(BO~A7$pn?316XJ{lFFv^b|GyX{xDZ4@!w(!T-~t}Bbf4ozx-J6)czhuEg$z3* zLnk}LFJUkEKs<LAq~p@S{sGs;pvW?Q;iCuY9DVs;%<{q!%mgi`4t`;(2W>bOBo-AT z-3S9}M}nLm4;GJyj*Y~FR;#8%Jci}W9^?Xu;QUO2YOy-BNeB-YuzNw{#-IZ}Kwfrv zQKAEC%5+MBicaX78v*c|8<FEqps_QC<4%wztxk~p@0>uV-7y?@f}Hm21YQAi+zGNC z#z_Y>5PjSUa>}(6_>}A8PM{VW!*M4YP)s&>IWRUPIsEN}9>889!6=Z?4kADoA!jTC zu}(-Z3S_~KqxtIuO77r>9W;#K>)LPxA^4s>#9$LBd_i3cM0~a0hAao%CCMm|aSB9$ zt`U1J@y*$RsRX?G;TcE}ECU+%!{VxRCkBR>ouGyl=*(eIf9HR(K({mOM!Y{+3>h90 zi~|3QRbB+Vfu;+U7iS-Wm<phgIfjfCZXkJu7X~nSg%@j~^3@Uypw8)!EJn~#gZ^^h zwsdo~2}0E5g(XxJ)H%7R4NYU2pq0!942dNrMVU#ZC8>}DiAwSzqin?}<0Ayq56b)= zG>^jT@h`zI;$MSC&OoD+;QoXX=zvm|R?wQ&fEV&wAh{pip?{#$d7u^Z@DVc5a1`jU z-R{soy)089I^KfLeRTbTp#yZC7ejaHpVtMTnY&u>z}OurMuCjSAmShBoEmVV;gDt& z$bv0?Kj8og=vp4|_`{d~<}ZAi89|2_cd~2(HS0kx0G+z=zntZTF<9mcM8@zy>+KR| z&_=k!eyz7lyTRM-z}G6fihw2vctF=hhk_2B0PzICyf59Z0-XZjYB3&Ku7KKL#~oyN zL8Hb3%~ha5eNY#s0Cd(|K(~_s=tzFZ0mk`x3OSj1si0$llQR;F6jW0{9XE`=ia@U` zXsd6)|5A|`Wz3)rY2fvf#XSFuIWjtB7zM&!F#iVaSYj-O6v3bk;^8m0Yk~seM_BNS zRM0r(5l~$YK4I|%V;N{t54w&LkvBl2moLsXf_FM`HUEw;VQv0xRmu*o{a!N}9sp-V zNSy*MOTg+CA?ih%f9sX-H~-cxLFnX!=w#{qhM|`SvR^X|JT`I6nT-K-mk{W%Gr3;S zPB*Ykkop+XPXrH(gUZ@cju(r&z<DCz#X3;sbOWpwJv=eOv6iDdRK)N$Xt~CP67B{I zu2M#42g?hkUwd6a;S%t_ROW>g6L_1_kuPE0?i`vo0y1vOGJ;weFP8oUh3?`)a1Y=J zD0IVKL~4LTH#qzSJ9z2|WD5Ay(Iq8_z-1^<uu&*Uttg2H-KbZZms*^hSdbbI62X{r zM=sx8a|=o;6;ks`GD|8I)YYujL8m_ESu21qp@N8KrWPwCg0{M-CFT}bE2tHg=9gG2 zsO5l&bP$nPkY8+#!xra^#G=IHlGGvvbx=i-SqvU>gqWUKqEM2N3OV*4bRKhJ9>l^* zg}lVvRBN!LngS@jLQF_XP0!3LR)8zBR>(|KD9OkyR!Gb(NG&Q(%!3^^SX^3AkPkY% ztR!C{DHWkZM*$Kp3YjGeiNy+F58-e)G?4JQKQpg5GX=?Xu(KI*N*K~h7!q>}7(fBV z016xiS4jARyoC}D;Bz+dIsmFOB{KyaaH)BalYv3=+o`#k$@w|?dDaTK`Nbs)Ihom@ zN$|@2QU&n2ZHakE!GZ`x(EK>4LjhU^n3n=NySpSG8U^rxRnUcn6Cz;Y!KGE8U~8+O zZmkX;rgj7G`BW&$R{+(3sbJsfD3oVpCTA!VXXKaWq$p%0mZd5rrKW-=<x?`#GfNa; z0f!W~MX712MX7nosR|lu%0|W}*5DJsQ!5g43vyC56?7E}Qj0PY3yQ&s0%}UJLP>tU zLQY~)dMeH^M8qG$25?GD$xnr(#nimyd{8WcY{<<lDM?L1IE!HdB!3`+4{nMz%zK%6 z$vLH910c>SE=|q=CoW|ZQxja-0-CxeOu**8K@`~&aMa(>s0B?QB&8}8rGls0utfs2 zHKl7;T#{Il3Q9S_A&w!g@vcEZ{z0H+@Nn@^h=iwKu&0Y_e28mA2)sQR0~$Vv1&u~z z6v#0Oym&9d$k6F}<GAY;P-Cw%c28$4sDBD7au4&j9A^dZ^K7n?;pK0UVPjzE_7$-7 z-BSdv)C=Vp1v2VD#41Jx21uI=rBeS4zV$_+x%LVpf6Gz^28JS;=GrSv{4Je~3=GY+ zSD5)*B$yc(UaGP(fZW$zDqvZ<r$nRMbx(tZT8YB09VeLux_$TXZ)4=&$0ERZu+w)B zNX^F*)&@(p(x=_77c5=(fNlu>)9t!P+x0>~cj$$nZr>Y$FFYj~8IHSN0C@?tDg$gV zf6Gr6(7_QP!}(ipurM(2?_<4pl39S!b<c6vE1*$?mxn+qLiaRSDVHkp?_<3Ul0DQJ zx~DVr!g1FtpcCF+&SznOw#q;!@*Mfn?Yk%N#nEQa?znXDgevG_f|TykJq>o&rHai* zeq^kWV-(0@0v&W8)*UJl1X}0wLgMHD|1SesK()~yaBuxXKzHe$uonk@{Qn=2!6A>S z;~Cg+gO~Df`@2i`be4kL1v)zQB|DN~4+6Sf_XNBs1{-z)Vpym^5Xh<Br4nJF#Y8Wr zLCkyYcia^;o5PR>Ug^~xDqtD9r^K?`cTa<*HF$@7cj+GfeQW_Qc0v{(wH_#$!M}}- ze_sPAdKiy&mhJ&1mSZKXAP=7hpZ^O=E#=Ix)WYAw1sYonz0m9Xp}TaC<);z>@O)tx zQwO7?lXd8x(y!g2d-%68!OTR2I4A;pT|eyqCC@0Z6BPWN$NsEf_`Ix?9kc+)=5;wp z@-J3NyVp@5Nd^T*ft{cRD@-RRNT=Fs+s<zwX%>()E9itlsKHzyX{Fb4pkV{o5BoXM z<w5r+W~q0(-UxV6Ar5ZRyzB*y_kzwRJMyR3^+P}gp8`1c&;wlc`~Uwh<3MMY9Ql#q zfu!a_AUskSL29g^<{fuE1M+`2C_Pq`3jKFI!@rN!;1sg}=&}+}l7wVN{+1)4-~}hR z5-o71fsAKj%R2lm(-|2U8Z50#AA(}dbq{|_8%Q_E4(k$dw!WnR%hrCNEsvOObs1Ao zvQ_Bz-DBx{fxkr+l$nqG=sc|*dm*^H^g`GR{vV(|`El1fAm=mw?u<S0V$WJe=*8{e z#{3zE5_V9hO5imsh~nyXy#qP}ZXI;1Znx_ROV>N4TrXPJf@UfhN>o6*j51ze4Yb!q z(DhNh&flAVFqUaH|K=@G>2-c!d;dBELzz@>GlRna|F(bS85qiVdz%>;{{OfA|DT_s z95na_&U+66f?tS#{r^9pJM>1-i$W1bhS$oV`N$)G!ZSJ)!I9}J5D4;Gx2r?|_y)TO z@M<Lm&`N_BEOMZf4k@M}nF3T&b^3y`CMX0zJ*gb9c|S5vK#VID2<rxySJ2{s^Xvcr zuU$cfg@zK?K6C{yzWo0WzF-_u;4X&8%n6WsSTCx{7!ot!@~(up+m)laLWY;W)$P~+ z|ImzC64_jPg#i-N9LlhmUIjM~r2sdAng`mAD#KeM2g(}^-K96eUgYqDI%guCOpxA! zEO<Wb$d4>WaPjL0k}Va1?1}`PY%~Krung%NfR`@XAZ7OposKsD9eF^_d#?YE9MG$n zyB%$;9S!)WLKb(y$3Ve-7)bgC^(=~QUU=4lvmto(Z)Q1|-Fg7j8~+mgq8HqU0$r7P z3EbmA>IZ?=6Mumk!Bz(<zHfln-GFZH1Wg(RzX*V9z6#b1?sI|1pGv{Q@3jJ;yX#BA zM`3~M(#5=>jd2pqM+7W?gC@cMbpFu15fJ>pOyb23Aw~x990IJr3HC=bXxu;q6sq8H z193jk776g64cJ0xc)4<PJ1BHBz|K?zom=Ig(#-%8fj0@@%bG#mmYmc)@QQNq4g(Y! zP=}@fG#mqBApBFy(e19&9k0Q7xb;9ixDb%mW)#S<1QEQTU0|4nfVd$fsg-NI=7i=y z(5k5)!C@~xR6`@7^sVJR$P|%3$Rx0FlGu$qVE{G`sbcwHd83rIGv44eXfMC!=ismx zQ+OB|I^9h)<8?aA4Pb$ZV@L_yf@T19*+9Mp?=Odk6{MM@XsZBeCAor{PYh_Xwy3h6 zd5~^aXo#Dxg#x6Rn*#15A~cpHrpFhTBqnErT4rDyU-M2t1}^!@rManjB?`Hv#U%>h z9+(2C3jyv^<)nh8G*b1_^%QK9^7FIpG#PB5Ee*)|)8Mu?wAYsi?NuUL(`orRIiRD% z(-jgG)NRxe4R32u4=p#b65Q#5*b3^MKrICIqp<k_Hb(%;*wFPe{wYY!d1&t>wW1(3 z8Pv{CR8Y4=vJ}*d0d=qtol?*?hx{~!RH(fm&oDp}4w2^Dsw*U>fx5r&(K2u^5$qCB zpBKew<ba2=iEw{@k%GEDsou~5Er-r808OnV=Hyg@q7&{yYfx7R+}T3zOlCrp6C(CN z%dGQ2yS^a9fMAa?prs%D?$1-mFG$T(C@jq{NmT%iM?(V(6a%S+rHMJk3dNb}c?#tj zsd)<Nnc%CY$`W%*Q^CDMxPx(oCMX$zq71Y{4b)S?m;OLD!hKe(pl+kDZVfROe=2lE zN*a)*U!YqxQ*;#a^5MxQvseLIpygD8Jq+qNK+_LS{h$qYU`IhFv!ObX%>;Rk0Ynh( zKakVlCV(;#*oTmT7SJ)@<;Z<skg4i+>aa1wnsD&t44_+!YeDA+g3o^kk8R89FbZV2 zfOaPPbbf1vj(S^x1i><{AQ_|PIvHNbc(^-U#tkGR@y*SFsRX=_89W{i*5eK@a8X9- z!?i)9^e?-)85mms*9v#u-@x!^CulC<)4I+R-!Jr5{BQkV$_uXDU#4+``)3V)4ouB; zCJg*7j~GCmCuY?H3=9mmpoxhR*3Q@&uR#mPdRgQHf?vEX1@$UtfZKXA82DQzf`(PY zOgclSfX_jj0jd^*UM%KjWN1ip_<P(9Jnzu$DiY8gI^};6%YUP=7ndLdbl|N|buzpq z;A$xq?%^!Bw@_Lv4O-xO1YD(dyG{vsahQ#f0p##**BP2OG>>=3f*kc)1(cpaZOY*P zWhO7AxfvO{-Aq8Ptzcp2?@QxiV0c|Hp)*dSvreZo&ZaZYqV+$2i$52duS<C|nspcj zvOqU!1-$kGpE<D{+^zc4>$)f4f0@qzGL08oD?!zvLhAwkRz@xc2E$9;ZW`8Z1|{GI z52KTVwVOfd7sfCSm|3ABL18a8y!`+F<vmUY22f=4w=d*mVCZ&}`LEI{Vay1-e<Hw` zQQ(C!qd>O_qrff`MuD}ai~_u7i~=Xj7zMm67zNf^FbZf}G74x|F$#2BF$%o4W)!$> z!zj>PrvPmL&VvW%DeS>%2p)|FHFLvW)IxS7bi3JDyBYAeIC3&DG+5Y_YJ$D3@(r{N zLI%`{?sl{3bhBtkbNJVMMBpVKCj+dQ&o}`JEGAGihrKxe0z4=A@*M|UzT3^F!NR_T zwZTFWa)0q}kn?`&fQHH&zWx6XG5ENf3}{0F$m~rVpir@Cu+T3B9d;V_V%}G<E4V<@ zJVyjxPT~M125=*<%;tq+38;~G7;G=Nk$2op2GlWpDFt!@xc~MA+#UE3@W0IFh1pAR zPh1z=91j%<die>oWUfwup;Y|1n+2#{f7}f`vG!6Msvqt?P6h^sm!ce?O-(yM3PAx5 zX$K|gG74mXv!xDbA17wB>VP`P$qL6^!5X{8!0Y8jdtG+~{4W#ec2oFo5Z3Jk-F|fB z3s~Sqiy%nPk8U@GfPfc|&oDp^XHaOa-N8@-8sPq4x+Cm`_;XNr|M*|J0~G!*w#5Gb z|1zH)8h&=r@QVYTx9cVY8czU)ZxHx|5zwWdVK0h7{UdPjJOBreI5->y0x~)fA#?#e z1o0*8#We8!-U6_s;s#z&{pWv~&HplsuoqjvvOhq1lmXN>R$yji2>4&7@Z$0bu-lKj zft$d`-9Q6Q4A8)CK4S3l5ZIhAVK2<UCcw>q28x*@aPvdJvOmCwFP(S@8U6=_Ll)S! zO`!P#X1E>Tm;}#bl&QQ30y{vZ+s&r=h(d#fZK(`6al3=g*>#g)hbAj)HU{u`E#yX( zuon?u{{Ij7Z;TW;zn*~tTOc6gg)XDOOVCLYkn-kB*bDQ|U@2J8{ALB^B3Syp_X(VS zK?5D2@UI7znxIT!R|;Bn7WQHvL>?MHuR#|if_gAzHZNQXL5cg>Q;^}H#4UW>O$Icq z0ZEh4^@>LzQMuyt|Nr2NHC-W5=>v1EhaN1khrQ4T8)eY#CewW2U-J(}{&p8uP=ek7 zO3=q$w}2>c;6#D$V?Uh5(CfM-px1Rn0O&ljrpN#PA9q~?QqwI4nvk~wE!RBqqt|r} zC>{SV-SWS5LvUC()Bg(~*&|>6mu`3w`4g0kzx*%V^1=_ygigDHr)A4jUhF&vkuOtu zVRnRp;kX-kA{(T?b`1l6%TjRS`|-bYP1p-9@S1oK8=TmWNB#f*5_C8KxP(yxt&{!| z_M-43IIuxCPe4Km6y)(>Q$RQ6guQ6^1P-S!VK3UiJwpNHKobXtk3c{MhdwOOUS0r= zq=4c}3Ece*d%^b+6d$1O=L=YbTQP%t0Z*$dKo|76fv%hE4iyRNW@tXZ63`tc(e1>- z%oG5s2Hn9ICK-VCPJu?zz(KwpbRsQU?httS8kSmYpteu=0Jj}9l?ly#W)L^Q+*8F2 zidE1Vo1p!@py29tU4iO^BalT!ASbkgPI7l$0*%-z4u%p?@!#vZ1Qe~^wJT5?5gq~m zOIL(}t|^B{^NJVOct8Ol&|JHOp%iotXxIzTop;CGkm?T5fQbUAfBxft>5{M)F^@q0 z0I@+~^x|g(hzqHcHbT7kas?9u1L%B4Xl^je1LcMrV11z6z;oP9h8t8U>qCa$Kv^~R zLNKV9_kRqI<R4&;6L_Bls8EAMs;fvq*b7y#F$OPPz<R%gz1RWSq6rJZ4Dk3DJVvj9 zWq&{l8`poJ)8(Lr4JfIC>JQM7!ND0XAXb2D`$G@^|9=TOF18t(MOi=m{~r+iV%{uh z)1gEiCiD6|NG3zW0G#T;4s3Y{3J`;r>p%%0%%;K0u0#V=qJezrdLSU^MK;(60s$Er z5M5w9{T}}R|GFBSp3=b=ae<3{XlZ-gbpbSvj|hOPAi-YO1)w+%#;kr=xj_*Mt$tFD zfs1gES8EqAfJcn}mo5l<F$28%>&O4n1)wDM!ZaM@WKbLizc|VT(l7Ax3CQ`N++zn# zzZc$u6d~mvP$~E)09=O@yaUU<Tn|o=b3l#-du0w-4?HqF-~Im&DS@hZ7(lm7e(80c z1M)|=o5cSD7I1CK11p5WUL-+GZLXceP%3yFQV~MRhS#3Z^f)K%#Tm%Twg07a!09nF z?EinrdBI11K<aiqHrR9s%IMq^d5}jHpy{Sn>D&MRpw=(Ag$Etx>Rk%jodg~%gLYbx zC>%o_sd*`oB}v%kjF7ZXfR8_bw$-HOf+nl;i@=+{6EpKtQxx*^aw<X7jU}nYpgZ9) zjDzb>%}Ys5Q7FxWb^dcI6|z7>8qnT3v?rRFm!6ZVkW`cix|IzyB!OWdvg0O9K)4T! z`QUL9Xa~Po0dhtPxWB6l?stK^i=ZxEPGWHhyjuoRkeb3U0Xocp$Nf4AFu#BXE{aoA z6%rMa!CgF5U!+2(c{5TKK;s!Us>S+t#F!7Crp<#p4%BCa4evnC_r>ErB>jk<I>dw$ zHQ4@c;`BoUQ5O_A;3@0GbUg;}d<;JQkf;TPF!ERe(wGza;Dt4)*N$*2c%*?q0>Ec~ zc}8XqXuCLUl>oZQp!O9${m^N0kOv^~3W~n8{32**fD;h`=iyDCQ1d}Y_2hyF^74xm z3X1ZRQ;Um1ft;BKIlMA6KM#6_5Ar&7ME{?|mQf(XlZ}DlwN>Xg@ai`3ej0FZ9xUet zl9Pjue^<-!LXJoUj{|_^y%9wZ@|wI%X>f19j*)@ko3jIBiD-t0Eu%mdXrsB??f?G` z54=nUO$&KDFf~`p@bb4Sf?6`pp#EluBfP)4$B9wkfFq;8DMv<u*N%(={~Z|xIGq>; z1e_QJB%Bxp<eeA=G@KX(@}RiGiBVvN6Qe*zhb^PP%fq17bF~5kf6EIH>j<b@7W_g6 z+{=0aQZNBYm=!GSVaF)&x+Y_V9izZY(2Xb=FF*pd85;JC0<X&^WMqKoyo?thDjjsb zxdH=HHwzpd{qXQW877DXANd8Uf56M3ro905^+2w84cf4i@kfhMAVb3eRK<n`zfigL z|Nm>V&TknVFcBe;2<Z5*46r3j;g+D3_g^F#7#flt{(^%PR=|Uf4a2cc9Y^^N+J;e( zUz}M2N<82(dy!z!aU8xp-LV3#mmnwnfk%&CfC76z!ZFAxAYGDy;k8if$r4u3rVz%~ z+aLx{Co_1W0kU`pv<!(sExp8=K@GIh#+m`LJPBz{cq~VEC{O2g=2`*EU;HhgwWf$^ zoL&=wE+&?H{QC|x|B&HtKhMCx@L#3%fHR{&g$tuV2NJe$0S$7YiXqFB%l3fU5#hop z04fha(`iZ0i~_+g=KWw`c<m43XMp*AAih0_p9|*Kf%y6$ei4|T2jYXK2Qw<c{5TMw zzxl|Y&JUUw0)m2Hy!-*G$^|+<S^na0{Q){@8WgYbkllgcMZ%E9QIJJrka-;Fy&0f& z^*pWLAa`AWhxXQh!h;jE9~3+ufHF+CK^&BEUps^R10JXQj@rcTt@sZ*a|S&9r1BZm z*aVGgg$2KGhYX*AJK4c6_I^feNdmQ%u;OI!5+m^FZca{qGH8v7YEFtmQe{bMF=&_- zoc18)R_pCj7Q+Lt)xo)E!UV_)JkU_4aBxP3E7H2o4`T4k!C~`Pkn`KXd+tDHXo8%` z82rKsk14B=O+jllAh-zk7o~!RV4*%Jh57(8_Xl#nE9gku)^DJ@N52HTaAg1ovE_u; z1ErvKF<~$E_cJoQ=AHmLYBu1-qJBmO(B5&-L2JTc85(X#z7qnu3v$9gY=0bR9VzJ4 z5AbwkTt9Tr4$SW-4=0x7=f;DME(XugrN`%{=Ej4!yg?U|r{>~ZMUG?rP-1a$Y7wY# zP(WTko>-Kc2(`yn0d6T$UakdSUh}_R60|4xtQ(_1#%(ac$iVPg8r&YR{8tPfOEz_f zN!|gi^LY(Y#^KJ0Sn<s*3JSrOpFzjmmze+W{9t(L`}fXc{OiAi7Ob1RI1Ji_a=6=- zqmvo5PTiRWb*K1oXUKSuGh~6fGq_)W+!?Y!-5ET_)>$n88lC;Y1f6XSU=(;USCf&U z(^&(wzQ<Xh^HB36<`RzP11y>sI-Lc2!z6m$!OL%hUVH_QVhJ=Kc+u%B0^4Q<nza3I zYVn9k0I`jFq0J-Et)x1~ox!W&TMv{lcSaa=%7TPp`am<oP<@a+me6hP@h1<%V-h~& zh#b4H9kj5r0Fn+{4?qr`TJFIpkg*d)@PcOIF@t!8Fm#`E=dtcMnbzASVx8YQZ*+sM zQwey{3_T9(cIlgD&_N2E-C;W2ZU&uB2F-N_pp&A*z~?GB>A-w}&G*)(Ab*x}bi3&+ z2C=ZHh4>g05p^u!n|r^2#<x8+K%G=jz=XZ{`3Jg;7F-g-lQuXvBBedhv6zsS3)th^ zJQ)Qt%&>cWy%0EUfm$w|$C~R@82DR2<4WCiD&6dzpn;P=;TcN;7zIEs3D$yURnVRG z{4F)$4y6FIGf$^8kF}df=>h9FiBe8zZ@lvxXjrzy>%SjIvo%8rN4GF&4LS50JNE8i zmTu-wChItvQr2$fPB)omkeB&E-D;3cns7e{zhDLL+!A=r+!?3v-;d{I`2YX^!TIOE zv%t$EphgYoEFvM$sE(TevlEB4n+ShfFIZdwbaafHLZ_R=aW`<{e;o+g`|c*vd_W@L zMGxrMj6<Da693&ey4_?tnY!I1jyr&ctQo*@AOntCnQk|UPA3)+33Vke=vMdukTZqU zK@%Gi#~na}Tnu0rh;%yffXxvA)d64@_~7$yH;L{5j@}vp3Fa_?&HxUuVgXIC;{Of; zh;1~`eFdQO3p(QCOV|q)(7hkv&0e=l_`oAg0-zJ?XLf=Xg@fnmQBwnWyGL$nE<B&W z@&tHIM0Y6s>~?VCIO5GHkZ}QY*0>m~v2zt91Qx%@#K4e&nOmv^7#LogG*`1QmFjgn zt8_AT27^`*1wm3uvBnEf{B<7cb`tRDbP_1#I_@L_nz{Jz%mZ!?A?MrVoYX{En;pED z0-SbDK!qmQd4)cV0vZ3YJL5Ay1H;Q}pi&WhJ^?8GvM}+tg3<)^{GIMP70}GmCQxbs ztu}(C<W6;zlnlB+1atsX2~RhBcj%u^Ch&Rv;0(}h-|dE!#5ex;<M{8#LrjVWWd?R= zW<X8d-m0)19sEN5CuE={6trx=_D{F{OK({EhV7p~4z8lq;?xq@JSQlPfP)KsMlCqF z7Wgs>WY~iyn=oVT2p{+!Yfu4q+zp&!p))K{N4DNB5rLO^{or{vP^J6^HWFN?!2n8s z;6iDOGRzAZ1)$2JKpC_&M*~Z0EGWv%D*=z^gRWMGH+U3E!5uf%6!4~WP;H9Z1_Jv_ z7oH4){1^o?VzK+{4KJiW*LkozP{#0E>!lK*?nn_(`K|55!+5M)sP$6mXVA4!g&bl3 z4Kp(Q7zMH%pqD~y;Dt8aP9BCj1>9Ibaf{(MEM+zPNQ-W8{ndKAgu|^nTBr4P=?^Tb z;U#-m2D?9!^@hCQb}kkjXy(IID1t^{A@wT6%-5hMRq%@=pzXuaI-uRaw@cqbqXCic zVcM}(Ob`#iRN%58`p^IW-Ea%Q**LWGDfm8y9iXDl@<uTm;{nSXMZY=^9(>8zd93r6 z<|)k^mWPTtt$lflSUOL<X6pO^yMF<^u|AfkH&CM2S;F#A8FV|1FifBb)N*A7-^LdW zYuiEkWW7!jmM6-kyPY_i4@fXxusm4IVR+y*xIY4(On(j0b@DK1^afr6rpJS;NYLf< z;C3LStqNXi20FtGv<DP?KE<^F&^{^<VE~#x#LPnt+@R|6bt0(00BU?myy*G@nF0F} z{^Ivp28K@N#($vOoXRCZ`$N+@!IzCeu6Y6N>jB*(0;2!_Z}8?|1l=JIJ<jL2Gbj{c zH=!U}J#cqp^$WPDhbsXe98#JG-cn&}s}K?t>I&~yfXn{Y+oj;~j=6!10vYQ;gd+>$ z{E%<X9E_0O?g5Y#SRQmw8I}s55;TJkJ`~0HMJjkYPylpw0Hk;*7I;w!nac)uUqD9- z!qQ9g8xH8PMvFmh!;_#v3s5}?#-Iz`8Oj-){r&tyLsX#SI2_HkIpBS(uFbX?V1^AS z+`qn9)dDJkc$$CwFV%Xnw1tu3I4ejVRL?XY`LnRWm_?xZfI>h<ZxEwEMt=~az>9)r zP;UWIzw&R3<!C<5(){=@Eb&9KhXYEhwcFGO)NGXnkuY_j#@K&TusTRCgdaEn4{vZ? z2J4Hm?(+#|6lgxr()=91U9ujJm_T;~SVPj+kFfv7FMc+HJPI17mxI}F1ug}U><7*0 zsCGw#YW9;bMM$23I1+T)^X=B#rFozL6nN1KI@uR=4{X>Ar_-Q>d)%1?G^GjcJb<Pc zpl6RDnFKGE7J^*b>CDp!b}~LYLCrqbKb_Sq&Hq{XTkAkoaWw}+X$5+*3ib}F`L9_! zk9E6&_J12%-YESHI!~h88FU!pYwq4MhHht`#UNLJ0>k*lJ@CBSm*5vy!3+hMlQ7~6 z>1Gn>z%_JzlSWQ{dVEf5S!zzPf|`PRypO+oypL;`t53YIW3aa-C<7WWq{o9)f%d9r zB<7{$q!uxx=R)q9E5_Negm$4x>R*Cv0Uam+vK7485t?qHW!86Bo<INp|1XsW)sP&a zi~<?DAVLe&yOf7|3w-wixQ96vBnMWY4eDXqgSZ)?NIlGzY@lKde70cg|5Dcd;N*%Y z_PfEc-g>*l61?fs_(e!PERn(k9x2tp(_iPk*U)5o92P&=lo@_&{Z?84Nv6-<!OPd# zpydP1G)ktO_dxcEyeNa(2R};%$${|H`JXlC8I!<55YfpD^9h!e#?$ExzO=y^d})I- z__9l9fzCJ%uvTz29e?sLG$qAD4>*S;F~}*^@lZKXxq?j`e9{_xTnV%wSplj8vh+1G zMIk{oMIF2bF(n^#vX+99YOxYhUlCG9{fCT~HHI?^WJ~}N?${Gb0}BJg%XY~5X|3N% zp#>W;Da8Uj-t*u1g=Q@*sZggp<8OHY8euxw9n8^siNEDCygy)R#or2A=F@r-bU~Cr zr=!4Ywr(eZPG`_r7eO!9f~PVCnyXn@`CCEjEkL)4^S7=78HU#4!&Wr0O@Nh6rqHs9 zA6ho?L-QYM`D6#S?o03sQ!oRbO>9BM7jj+lS{tgr^I~@p=;)SKWAH-xFJa*sE5eb^ zz4!v!#{wM}4efl|_y)A*3AFSPbltB=w=0jzpU&17zyJRStt{9Ho?ZVF2I@H;Rs^>? zZ9x~1l!L~n!h(BSKY%w&yVNi;yq1T~e;oOf!N9`60GG6{W@I?#`T^8C-U;eXgHML> z?7VRKK`YoE{#H&V28Py?^{-zVGchoL+hd)_x_h7e{{R2-v(~L3xA3=o2F>R~Qw(VR z&wtYtP=#9nJ6){v_-k%(|GwK6Byqg;&2LbH3beJ1qxC>3>kd%i)Y<v~bkrQw7;IS- zUPOV$p}WD#1O6MoSX~86eef6nH7HPOb5L!n-uVqupB{u|ZzN0L<(c8_*8e5U&F2{1 zVX8p;m%^c5DuH?FH5aHp?*#h?rVz<Ec(KxYyF{wnnT4Ab)YxeKP%80SvfGKLld(I9 z<8|1Cg&<KL*47Uo8=0_}19w($FDT4fZ<m1Yp#W!$62S?bAC#R~EI*X20Vk`{54&vQ z7zO@s1u2C_e;8=*9QefU@5exkph{#wi@Y)#9x(}IF}x@#XJmMxUC9VrZ|Dzm0%+d~ zrl0vb!4d!36yk44GH5+n%ZfGalwNE-S^xfcD=4jimdQ5n1+f_Td$;}l|G#(XiQmv` zB4K?Rj$T)h0MKbakSlQi`~jVg0<CCqP>}L7B{eOvG^Yesu!0Iu4NwKEsQ|6V88o01 ziwst(rJ7a>3<??rnJG{<7lST?mX-p8D`-=Lf(GPB@6;4c1uZQrm?)UZm6()YRFavO zuBWHR#o!#|8RF^e=!2mHE&<jQ?il3f>F1823MLL#<O^wTAStp^V1No*DKL2Yx%s2Y zfkdnn7+hSPLXnMz30WyH==%60$yh=83}~WYE`vdZfdME~Kp5I4$pIBQr93a(6B!vg zKQ%vM><rz~`RU**Mlf?j^RqwTrU?6SSAiEXjG&e*=&q<23(7!uG)l%Y3cMBq<&Wkg ze_r%}#S~&01$tc%1iV-a*>BV>3vSLIR_J!!uo%=GfTcWanW$Sd0@Pp+UDItF11eY& zKs?tKShT?NOY=Vg{+2>k28Md!=6@_D7R~=S_*?EXF)+N`1L~mvbKr0J%*nt|&)57< zfxqPiI|IYZ#k>p*jsHMvv-w-LbAt{Q1*xp%U?`Pnu3f`W0y<`=8?;5yb<O_^FMkU# zFid!%4O*KB>CTiGf%fGwX6VE+3j8<Cc*Z2~;$SHw!$J_NH-NEI6vQ~@04}RuD?-ZS z;4H>0h>jOq%Rn+;f?q5FGZdOZ*R;2+1`Wv8a$wG2LG1*c<Pr|rUI(?&AGC`62Qw?k zuEikY7`R@5mH)w6jN#y|tnOe-z68H812Yt$T{7^=Fj<TldI&%KEy3l7q|R>;_k&bJ z=G$P#fL5MoF=rScjM;`Th8Y$V%%E!LwKT{Oh}st$N}+);AIwl_uHC{=;srAm)Su51 z%`icjnt(7>6lSU@*wj>TeFHKYq5+HhxH7yDCW#?T;)0pP1vUxnK8V^E0$^u-34Zav z1msYK?pgtyQ3JZkHXM{*pi#4>n316qOVmh0B1ItJ#U`+!UxHsO1Tz$xYd3&W9VDvx zTmSGfFuYXYV_<-W2Y;&>9|Hr(i;yJrl8=vp;l)hQ`aXyj@V*9U`hq$_zZh3+%7gMN z!mt;rU^jdTejx&8keMF$7h(4_v^@gxI!C~Z?Zu$*{1W_P8JK}5J?0kS@&QTdQ4L`X zp7f{ycFmXI7yMubw)7~Gk&H-17YgBylYpfn32-Vxq(_JbEa{OqqXuD88^R=Bm`S`~ zlfdZ_qV`2Y5j5EH!3>hpqe>z6s6nJhC9t7if?o)N8Q}ED-<kuOI)fxI{?;wrC@HW9 zw6GCWVv4o?hm@DD0s;T8zdQ%p4pXAW@ZvY9r3}%GrM#S201rNb<z;Ij)axZ+2ASzo zz5sh5pr=o9uq9uDU$B80c+%(Dd|ZAYDSfsfjKPyW8w#L-kPl{HOP}HyU5Hd=fG|}Y zma4?TsS1%kAsVoxPo9iL2$P=W!M(`?Gl>Um5;%QA)V_F-4|U&pFoUG@*^-AnY7ptO z32f+>;1`8p1~h%1`St%lyo40tL`k1-K-*hD=~KM9b_D}y!!hVwtAOs%75^{2)Z}Df zcoFsb|9?o;3tk(Hr|N~4?;JtUqV-BHUiWeYyttGH4UL0f20RggYfF?$w<8xGx@Z{z z9J&y-FPgx{fcy_;D1d8AAE@6;j6uy2k&N|-I5R?+Dgui$5pbNPL;I(o@*koFOZ;<Y z96^}%EC=pFPMBGoV6(t3gs6S-AQ$T6^I!&P@t=b?JOu(?G=U8T`5(-H#Xo483sS`J zw~DZ%#y=Ya!;5mz;(T!Hiqt6nn2py-904!h=RiGt56r+5#Y?l{0f;Ax=Yx&;68xeM z%z#9(CoGCVBY|0h8Rrnu;*T&@5Ed<h;AlyK)$b7XSmKv0;{n1THiSWJFoQs+mkB`H zYY??B7{IRj68z$QHpt&3#qW|Vyn!hY@M00z&@aI+CW0Bz_<aMKh=9ef2`ftc@~|>6 zyqNx++$=1J-$@(+FZjVO`4ar%Ul!QIu$aKi!bdZSiQoNTW4;8xSO;cci(jFP=ZI*@ zN0=%Eixwf&_=Tv)62I&jzYqqgAq--N8N?1Y2%LW*YF{XTT?K0YfEgsk?~x2b@p~u} z6oy}dUu*<3pz+HCIwu4czah*h@vFnk!0=)_Xde+c|ANj<>?WazHpK5Fj(`{XV3&Le zejx{DV2cm_3?|SZ3#5m4KOG*+{IFo;2L<EHKMV{E6F}uDME%R#AU-U)fUeNWV#^Rh z7&HxG5NdvVxtReH1Q6vfCxd2NK;0r|m|@_w$Cn|AFw7HS7$3}4d>~i7&IGv#qV}~< z=Qo%U=AgQQHA4eo1RKH#R+tg2U?bEzPrZ&psxKhgUVKf5M&=VRL!tE>e+y{I&O*I7 zMuBcoqc}!^PS+isp?i93ccBj#9V=bkdb0lWF3>1Z=Y@kWSUT9<J1(g3cN}UsWY8hr z@XNA}g~hysz1MXI%*CMEH;X+0TK7hz!J`2!HOGQH%pUOC1>7Hm=>`WGbA}nhzhVdz zu(!8BYF`L|{RZm)rGb1)QhwNyN+>^U0vihI|A86c{7?d~&ox1D#G4U{$iqpga9<<! z5niW&ybMwJA|7ngm*5wEX^af7;XP@vS&&{MGz7&EW+7EauO&ccK@`3ahMC2b20EFg z1H9)3I$k6ajAbweJ_y<^8}Nuppxc#WF^Gn##F$*^ywMFhO+PKaC^xZ00d|~5dOT#k zNoeO&$U4|ij@C=1rl47}y#=7VVL-$!&~hToNw6ia|NnnE8#H|YnXm741s$*%5cEQP zJp%*i@D;pMLJ()eoQpIt1s`Q<y$!zKFzo+j&;YZ}gcs7_jb%UJbJbxlwx)nm$``oE ziz8qG&_epK7k{q67ym)lFAxgH5NJ4pXqdxrg(EcJQj3Zpb3>rDMc}Xl4H{*D!;ZCx zQ6Pf_v<3$=>@r^c|NpWN6n3ycd$g9QKtpyLjzHrE?L317np*P_Sa3N6guQ4>Mh-5A zfEQE20+8T3dl?>FM5a5?xFIOrfoMYE1sjJZ6bCWTH~`VqG7~hS334ZhCc;e6;tEiE z4xBU6;)_d)GV{{oOA888i{g{=OY>4dW8kHEiAg!2TT-C&hYGMQ5s5jV<1!O-Q%h2d ziWM|eRr6FdvG3#|&HSAFymW<>{L-YHR2_xn{G6QBWYBOqR0zCT4mQyMou4Po{BqEF zr=Vj}6d)chW*|*}f@-olXt!QYD#-uf#cGhUhT(tZ`~YE>%l6<h27K0tD@Uj68qn5_ z&=tpBmw=X_v>qrG0MCEDlmhK$2d_`;_FdCp$-v*j3K9X`zvsH9OTwYkbxp%>)e?^X zu1j9t2OZQ{d%*C(pPitCl0UERbY0NtI>+!^x9gft*BRZRYr3SIIz!j+?>pT5ql&-X zixs>H<U}c>KyMkt?<z(Cj_QHKKgtnypD1S(*ip_XAYBO&lc<2uAoq2E*dScZDDa}3 zQ9uLAzERF7U{OIBgUrB%6QK5SR51!@R5A)AL-{ZoBnH<Dl>_lX;wzBCPXo#ZiG$=p z*bJ&(5l<My?B}my6flC?53(DCZ&X0UVESKFFbeFeVied^#VDX($tVD}A8Lnw6{7%1 zoiUV;Za*kLgDSNb#f$<k4}d0u%NUNko&Y7im%hx9^AnD{o&oc1;e5~rdWM&}aQ+Rj zyeym#+JC_C5_BRN$b8tLoqs{bm#8rucYOj@{}#&U-*>tB(1mW_HC>XgMSIH_{=2T} zWtqgk?{aU5(}iwO;_h|6V8dDVyt(!XLy1u51?$iw#mwEVM><`PfOnLGL=F`DzV?93 zZ#28EVCfEB(e3mHtO0bQOHU&c=q!F~SCGcgBb}i~Ugm>r2j{2O1GSvrZya|8`^wt& z0LbhEovsI7`hb*x!s7+ly|y4O==_n|1q`K9$6eomM31{J08uX$K$4L99xn3%EW^gc zz~J_h0Ykp|7?WG`F_z=54?xPAk8y$SDJ~IY{062un_X9MygUV(<91!a^70^vaf}JB zn4{bENb?VgV%8m?JsFJ0z<MM=G3il)G_@}Y*(eV(tJ`-)x8slQz&{PY(@H%+4PFt| z|LhD5tq1C?Z2z${Fw`5fGXDAhzteTkZPz__cnwM!1#Z5$ckpKIuC(sZU1^P{7<ke; zLwDTF-Elj1Pq*uyo4LCfk2N1-0-aOH-=e_Cz`*$Jr6l;)TyV&MFI(nlKF0LY>i_@$ zZZAz>>ye@11CAz;qyB*I2X8*c@mdQSf1qgQVlF-MS`yrT?mUh*-BH5!|G4WMaH!S3 zVc>58opS*4`U+&P%Rx5NH@YqXtvz@Nnqh<XAE4>G`4|_}l$SIA{r~^sU=+9!@ZaEt z_zLj+RqKHgQ4G5S{=a52ywrKYmVuFhp_q3Eh<eS|?Yc(Wbq3?H*D}3j4E*~J2V}fJ zcFQDi15E&Y9jWgeM$o=>{+2S(VUMl{AZgO|h~<Z3rp^zY$C_(TFqAMiA7e5+&|G_i zp_He&_6|cSTXXFLh7wkARls<Rv2;my=$ZyA2L9InKmY&lc3pzJAst+wz}H8D)|`M= zBrz<^0WTw1obrfC0K66!rTziUy&iX60|`_PhEguDRp45u+m)lif`Pw<8&=<ha)7H3 z4rqO|=H*k&`esF^>k?3X!_n!wpc|$Et-i6S0oOO#jf?^n1Bf%~5cb>GF$!qZF$#3o zL&Q3e<bHtIAl%3(5K+e{Fayf=u45EfK?KI<#|u#V>KYgYX4EqZT!!*tG)N4tA1Vjp zgTy6}!fsvz#N8lqkUR)4gQ}m7qz)vGjA8b-HZTe-g4z$V8-zXTA!0E75%r7$dX0<% zN{x&H^XnM}!1hD!SlYlS08+OY$_LqjY(J<z09|Uq-*OYOkSGIO^Xy?_fLA*{;FC@u zRgMEQ1H%Mp$^6n7UcW%<8)Y~jQr`%}`H(}Rnc;j$ee)Sq1ed5W!0H<gczwfxT;FhX zN#Ln()`2RL3)Z11^^E{acc=hLebWw7b_kNUA@xlu$aehoO%O;4qP}qkal!S?3I?S5 zW(6pZzElHAVy$m@!1WEN)`6FIkn)&NeIvjDJ{hOkRe<H?af0;?59rj8+7ApRn6=L0 zJK()2&8`9*-M#`O)jAuhsZs0jf@&RjedG30^FQdEBS<K?3b2431*&yeLA8zwxRpS# zz5zGKL3J8`3utK{C=o-vj#BHaxDEDtqw5-Ytuq0+z5$y8sc!;9VD-)Ng{0Rv9NMl6 z7>~VH0-aY3x{O5<v(}M;xCK({EMWwl<ip=mKuN8$raP1aT<iP<*E(x@Qz7Fq3@8A; zj{s>jB`-fEH6DC6Yhp<%ViN^JI!Hn<8Fs)1_<muM);Gf~!?tMw-e2zqZ(|0Z-@wtt zD3Br5#3+zu`&tUzz5wr6&;m6eO5t*L873gM2S^<UbdS%OoB#j6j_v%`<;-#51!MCA z{^lRdCCZ?^7Y*JVY~XzhpnabIiv?aBJPNuQ5xf%vv<0wQfT2_&i;;i3GfOW^!@&nk z0a+sdjbDf#`TxJuS>U)ccxPWjGRHsgP!zcS2Jf?gb;|WXN7&mcfNuRQ1uY25XaFtr zNjU^gHm_NCbUb4c2taI*1#g#N`v3p`!U@knJ7sw~WkC#(OP~uKwXqr~jAkHY#0lXh z4*c%9auAn$Y(dsDlt_Zz(;dLmDGCxe?f^O<kfFhYgAr!1A(Fd5M+HJWS`9Ur8`3_6 zdKcollZQduJrtm;@f6(sz!zIU_QmHz$Dj~nD<)XYm&R&7d?2wI;`~xw(7^+sc4S6* z3!}gb#xwu_gEpLh34Sr{FDSafzJUd`0@$z36(S7a82eu!@L~xlx<UIdU-Nf^1E4!f z1hlEaNd)G7(9MI*(0B&j9u4t+%>hWb@<7XT6#s*FYlAQP0bO$n*^TE6b_sMR5OjPK zHqHbZk1OTq{0vU6(Cf8cJOVEa1}$M`C}Hi6W_kS(<|1RH022qDU;s{eul7S+#0Abj zQ1`&Y3+g#1kxplp&LX(yu&25CP@`ap7!s@C740Vv7v<+856Obcig?%tZM3`%-ntmn z#wd^x4<bNUN?^&toY(&Uf2|I>thtm2v`o8{4Sd-#Wbc~}Xp-XyXkat=#RbqlxY!pb z4}<JPFULyrax(L>A>*4I-M$>HCn4LNu7YfS1R_B5E?BJZy88eBYnSFq4$#%NfgIhA zES*j)ulbuRc|co)19`v#0>>S}@z-3*!cZd69mvw{$kFM<aU8V8ih<#{BRG!X=d6R` zGnT{fTkGu-YtRaC;}@KuUHr$uWk3@j<fI9O*4v;vy+Owc2ERD^|NsAhuottKL2;<i z9nH~tyYw-9<559k5$Nb^#5g!80OB+AKxY>)xX1hXyST=C2FC~a`-doKfaEkG;Q(?+ zDMz;}_^^|2ko_b_+ZhEiu7C(e(0-B_X!>ov4a!P?GQhzFmSzHN62L5Qqp$q`Z+PH! zHAZ}a_j5i184T9Wj9t6TmH+=cZ@ji?Jy0jpeB@7X^N}9`VJ~ih)>j@82nc%-!2sH` z*7>dV0BFD2pWrNpuoo^MG0@!-!C@~dKus*ry7-fa)8j#2g$6@>QfgX$Q7S`mW>QXO zUb?OwG|X&mK_h&rdGLL;;QM#GL%~4;JwN~)B)2;l1u{T8nXx31^vnPMzr4u6z|eZT z)C^Q7fkO$bLlnC=O)rB&>E(RTpgFjGi4k0&Rk9i2-~yW?28xW9)=MQamQFk+;CnDX zfLsKYlwf3Fc$os)MC{DddZ|RY8FY9cFX${9XO7MYme(Ae-$2_FA_O{vSvsRQUTb!K z1KluOBHbMTIf0IALU#}g=q$R@@14OMolz{W*`OLA6D_Dg2|lk1whtL{PckIDPC^b` z0Ed@a7o$Li6L#O5U;6+5CCJ+-;RV*=j9mxoC2)9w4l07wCwRgOY!2w|<=2q#@<I+T zu%sJ2yu3l-B?a<%30t=lOJ@WJh;(LwhJt8wr2s<-Pq(80XfKbWKxYI;XQTkMbcO~> zK~ZW!YF-Lbc({UYFlaqc0y@+t_<w;wz>7tH|NnmtF73c!W8KXtkdcbrr_vWe830^= zLoEQEQ3NVfA$b;Z21+StUKo-Y=YR~$#ctTS3!q?oEeMKlaB=0p(_F#BQ2HH_JBs5I z^O94GOY(~tQc{bPQ}a?1^AP1XWUh$=wEfnV2Yy5VsI>eEvbGYtwc!{3|9|b-dZ5%2 zlo@z>7zHxG%B!#|*8nM(0*_t17KN5KmH|8^Z@V3MS`U<dF+2diN3c7T!|*`sr4k-c zf7GEn2;`n0aE}zFmZcUIr^Y8|Wagw4rRE{U2e=&xp2`B}%R?ad%){=Kx#$1?f2{%9 zUl=T4c(V0Ui6qoLofn~nx+6<xAZS|gU8lDIIF_Jwnm|}^w=1Yjhg?3a+#Lbh%L!@_ z1i!cqsj4kMlreQ4>yBn=y<Pge*NqWcVM4+fytfa0_iA^o2)LrRgYLr+1Z}em?hX|I zZ_a2vP-@*B4KmxN^G0_x3wYshSip<z5Ib5Al*+W;E`9P^?)x!NpR+^^p}X}!2?r#U znJ0iQ4taq*FAK9Dd~^-i{=o0Y!TUf!cW8j_W(n>N6@fXy&#xp1;tFp_egwM(biPKY zL=foY#<1{!7fZlS0$tf8-+H_B?rVkbpdKo?^Z5f|VC#Vr=nilugrktc1avXI2>7-Y z0frJiNU+LI0NV%i`+2ZMpuGj^AiqPyP3biUGz>t8)qq#Cg98z(h2Zu(I1Io60JG1+ zuS5%Cr83w?G#?%VTMY7{Hpqw208@L-IRWZb>E<I~uYwldgM$yN<*;@h*naSyyyiLq zhLZU1I8a#=%>oKg(E9N3fEQQ5HiEnw1+@(lJt6^NV9$XL0XR@<*Lu6e5$s?jtux_T zLDBILEjnNZV09ogjf33>+A}ZETra>-QsY-r&>atPB67fVhw=mkyf_864iq*y-L5<< zm`cD74V4HA2L}Yip@FTpOF}^T8SGe0Lt5d6fMWL6YYm7|im%y03`S6A{zo_5Ou}v# z=q?4NB}kNNLoBTT-CO$2m4~V1^=r0ot~`t-kHM!?{l5-zqt5Hgo!>wuU=%3VsUb9d z3=4;NbvD?Q0<8y1?%~g0r2^fx5}-R~z=eZ1!YBoZ{h+)WfC!$FTM*+SI=_M4bs9~+ z^ug;L(DKQz#1L+-I>OwKpi7iMX&?;Z(n7FHL6Nfb^;JZ6gVr=9MTy`-lmTV)aeh%s zYLSACEofIXct^B<kc(>&Lt0K^dND*eB*-z$H7M8>yjPkbCAFX=19VS|uAxFrjRJ&g zr(nQ<$YY=urwAx0N@YMxXdxFafI9+glNbduI6xOJRJ8twT=y;p5(0~Jg2WTR{g>t+ z%w^#H&&qIFE|9DfG(4JX1(?gg=N(wV6>x(TK=;!$|NdWM)Ox!fTrC8{mGFR8IAAtv z+fM%f|56Avy!L~!M6{@?`3F;pYx56g{+5}blaGIZn|`&@Vd0>Q=s<b>g~qS{|6hXk zro!BF<V#q1FkHG5Bn`S}x%GCf2$D9|-~a!=TnX;eps0@piGwbBKvRG8_y7N|Ye3^k zsOJ0r`TzfQ3ak|K>JAn7c8CeoV*U{p087`dt+#6>knFw+(qjO1uXl+WXypZxlg&VF z7{P8=ffbA;pvHC>$e;hOgDbIk@Z3ab=hJRq&?$!9OxBF0yq#VwkmSqSTgCvY!=b4R zv{4z778D>?b@=jhhl0+x1IH&g7354|6v*%cMOP-&J<UIn;~OmR50dwU$^T+5*9IMc z=K7;I_6M|Y-F)OnaE8wmMuDvVL4jc}YX1KJ-|fuuS`Qpve=@)+18h_P_Gs@v4r)Gu zkK%#%-N0p_D@QlDngF+=wV?$u(|<NdxuOCwKP)`>#mWDmlT%ng1<CEw*RQ#t)dJIh zHdwep10@gKSt*8uiv%PXq30O2o<zzYjZ+x~GC<e=z1DC3#as>=$L)3f6A%>mA`WDg z>z~&Kko<83>OZiC3he${e+=Y5coQlovA6`%euAC9(G5O{2edvM($-|1#wd`{gx#<t zuwk(MW8Ds*;!vo$f`y@k2h^T&U;(j_TAq0&8Boi><pQ{k=?iMpfzN*ex73P3)=j`} z-RGkqx4%}0#y@ylYl(R02~W`dWS!r-gIFMJmexz9pE@tVJ(&lw6x2e5+Y4$|B6V+H zfvla6-P#(6wfqqKI2^izKo%gHp`gSKu>l%}sQpQB9{}t(&*_W;85^)$B7XG$|JO0i zznIIwon~-41*_kPUH$VT;IPnv1iEtP#pZ{M&5xKYB}xTADYTTW^<)X#Yu?sNrJUUk zEUgDhpF*#nh9*96n>ik~=!XH!g^!<rdC2``P_G)2PN8uI4nA-}3ijDQkk8Izcd6}> z|Nmd7^_DTf61B(-Mu7~ljtijde8w`6rv#kdl;9E<u^aX2@c;kdLxNsQgVGmhw|ohY z<*5>0Xq<cjOTyzF?2Y)$yp+@m(0K~*xbODm0lOcxLLQRHAAxLsirvy$xTW%t6d(*u zf0kUhEKbWTDlUnKjyu4@4V<sQkqZv8=$VWH8Q-v5$#obUxw4>+TM0+E15dYuz-#{I z3J%cllLH5cft0Jjc^GCHtX&E1Ga~Fe39^p`bjlHCT{r6x*gk$xb}a#=7Z3x<25>+Y zrRK$h##0iLGoa}lTrS2!%SG7jN?^}v&teqF5CWYwWYGMdxl9z)Cj=*Hu!Jy3LVQB& zH^}M2;L08>A%fj`zYqTZ|Jq^#r1N0_Z|RisL5tRxufhF8XqkK))cy_?2@3ds4Ycm^ z46M{enfm~7xEUB2gc%qZR2di;JQ)}mav2yH7Bes~{AOTa$Y*3=&}Cv^FlT09xXQx7 z;L6UxaFdIHAy9yUAzgxjVYUhb!%H&;hQuHShVE(x2KSu|49`Uw86GZRWbiCxVtBfe znc;CAD}$vS2Sa)+4+Ce95X1kA(hS18H5s~R*fAV@63d`?y@z47(`5!F1_n?X3GR;N zFub&rV>Y7zq<_`RG8N=ZOBs$b)@~M#*W6CczZA<}F6^1jC=h+}FhfaxNn%cXYEEiy zG4$}$!s7g*l6cVB?(r#!C5a5_U;$j`)Q~iPQ;?KcoQfzQ@^e9hY4IqHM(~*wHjE4m zpzYzI9Gz4DfCgt>1)2}=t9*E2WWmVLxfFD^Z?~(!!3Rv8tzSS#>eliw)Pv`HPRwQ$ z$ha|^Q6MYtwLZ8$YrRw|2ue7nb6_(0uSJ_{MHnEXxXy6lf{a%n%^Y)(PPjR~|NsA& z`$1!;wLC2ReV~c!Zm@$or+xrCi^qe1y{iD@h0fMDp!0@XIY47+tuOxl|NpX<34A|S z_f(K;JEuMXsRyglZUyNzy!5?P;NS~JkpAwyAQ8sn;A^-f0=mJ5BX@UdCAv!mI)8Wf zg4A^hcQJM_J9h{=`hiZU`_t_z5fI)z732U=4;tFjuJwj$0f}SNLb5FaAX`A*2zudd z&dAUWK4Q7E6(j;Ni#b%FbLtb2Klg$x)vg5{5Br+4+f{(E6(kJu9;lZO))LSSR*K}} znrp9FJHLT-!Tba=8(GC8%e^3jinY2+1-j>gn4LdS{06s6^Z09CaQs7blte;k{<d;Z z4E=z_fi*bwl*e>K;{{|ORLrs&9E(4?r-CB0TL>EAV8Lz&7D#-*1U2HjLj@RrLHw;< zEAV=8H`uS8;7ER5Jpt3~vV_iG+EYO>i7aP%s7|9BtO;UeCsSt?OY<R)PKX1*fdz5I zYc)vFb%Pz#DFBK3&H$F?100<YF>v_zwle(x|KA!c!rxQ^YQwrh(kpW-C{uN|-T}uI zh}{hiiC!5C>$xDoGPZ6o-5n~>Yhq=2uUrlkcc63@hUjG0GIf4uE)}r6SN6zyFUXJ* zSSkf^(4z&CZ+cCftha(}D9?e`f1TfvVjRiznirr0&A*pecDoAn#u)s!{9L35>hE_6 zcTBwvI@|PS=Pl6qH0ZwS&WqZi0+zpuKX<i)q&gVAEk74uV=fhd*i|;Wcj=CQ|NnzW ztw4n#G6qj5x(Ak~mZmCzPjN(y|G}okFeYSYfF@)wF9A)d2)t(9u>f^Kwp(<~GbVx7 zOC`MBOp8HG@MsuA=jGPhrRL4HE1oe4FqBGXF=jAuF)(C_WSm&QDDdLv(*OS#gQP(7 zwnx7FHwCd@#IJzNI>Pr5AUg$g`&0(lDIQR#aP*cjKwSfwSvwB8w2I-lGx&H~=n-wu zLFhuTj}bFJV17LKXuxzZTQ3=W{w7J~JFMLRp3iQ*T?#s{BICe9MuCiT3mFBnoHK5N z*e^hA*gSj6uK)jE_JF1{AnRKo(^`GT;FT5lV<2!bju==73iVFrPFWBQGXrBr5*&2A zXl6jd4Lm-Z9uE$O_=3{njQEVy#1v5d+WZFQH_-MVh~FM9Vid><#p1V)o&W#8294zX zFXj1f{KD4s|Nl;A&>UnbbEh-Qe`gNt_QZoH96<!UsswR#?Fx!g%M@&F6+kD?FhGRz zQY%W}Ldb2?)=QAiA2{^A7BdQDCBF86w4cHCVd7#&fef&C(rW|oBqg|gl?NA2ek}>g zZ{UeZ@Op_xxKs)jzs}hK@@wa}Zl+F0mS!u4683JUP7jXP%$;5=om~H&I6w_*qyQ~R z%*=ter!m9ScnPCGRxuWPOhER4E?xqKX)()-B}SlS72rN1sFBOk>CEz)6*SS#j5T~g z)<VJ;mR6yC5tQ&+wS-Y1qY*Sa=mqO<fWr$c-UJdi0tXp*t_>VyU>VSfz^^61AqMWR zfkO-|1Db!r;+gdA|Np<10nHpaa)9TOz_UmmEU%e5xjMaAP(v-h0Fnx!W2&He1Mma| zxOEPW=FFvx0vVGS7#Ofv^=I4v|F11Ozkv=RHtH7cHUino44Msv9z^|`2V7r53ybC> zUxHq&G5G)gzc)wchu5$XcBDvzItLP%P&XmZkAq$G1LPvm3Mwov$^yB_pxKh4M7x`@ zJAkEAu=P@jz;P$=l=pGSk=n1>p)=wCJvm;pfzl&nJP4YQ@(bcY5sI9Sz}t_&p$~RI z%`!%T4A6n0SRC+j>;M0+O~K)=-|fZHEeW1`XK6i9!UeZ}0;KT%?*%&kE%3!Geb6Ku zC^%5FF4Q5Az<|s_K*It&-v)LH>vBec4Deck+Zd%_9LOmqApe0=k5;!MOLqWAXCMnC zNFe1m<iPOPY~aZd22hBwbbdn)kIdqD@C{P%@PPE+N_d+s82G0^?reVz?r(z~)U%vX zAOp0)6-(Hh-SYoGcn}UL##2+XAt?}A&Vc)(2>-nT83)>vip99PE#SVPNawd^3(#^1 zhHi$}?BMi<?EV6f4d4icrzfx-h!pO#0<@b9GzEtlhEfna1VG(Ra8c0B@ESB<g?e5r za@`MNgZ%=@OQ01mM?fbuyqWX=KWOV7=-%`MMx?tkijo-gQ&P+HON$coQu1@*;j9we zY<mP$ua`uDmJNLcx$?&fMu8WLbf8Cux85!>1#NU>0S&snSgZqD4Jgq3gRz9`I4f8u zWau{dMFm9awIH;8gd`2I0(>iIuj_|^7gs|-tHD1QyMF0({R3?`l>T|41sczby>ap| z$dT|GBt0I)g;ww&CMESdBwayzP>WZB#-l(4sKCtF17e+6iPVW|+VubbYfkXh8~JlU z2d+V#0y+-0I2Cji7&s2VbwIZ(=rmez_63`3y$W=+B&bBgG*=5`t~dB_KMlo}>`vz6 z%?CIcKuh!)y1PNF?vU<3ofi&1U}L<{%hJ@#;?&F1)OqOOBUZ)>oh;q|!Kxc~gH(dH zhm@THXK7HHxW9p8Ce)FjW5^--89Yu=%hCEDaz_H#c@IF&1KoCq#oOH*K}r6lFe3v) z<9?VW{B0+}Cq?$kYz0}=En?jWy0*EY*N?HArC;^`|Nr%zhd|pk7>!%Dn}BXseZ*+Y zGWEtPMuAQi>&|nH|3J#?4mAGDV`5;ack28`lu0F^+Yr!A0+~>EpnLirP6h^uE4tZH zT+nX7#=rm`6Wj%IfH6x~XFEvo@ph1R!0rdL4nAP&7P0sbW`o?$Z3yzh19sJhFrB#& zHoqzZ!?E{Z_6s2p1shL61T!dorl&Hb=A|guDI}$)XXb(1p9~D3g_R#{!D$3E?(Yk_ zC#Ks~p!2ZiXISM7jtuuTi~<?=L6x(Z<%fE3nGpdJ0*ixYRIo(Sv-SV~cYb(X(fAvb zaLPeT@&aG*{`>#m@KUGikIv9P_j7;T;mugXDA0KWN$B25`1o=2kuNAx&2KpF%BX-& zKn#4bfPsPGX6?7M?$B?r9W`HW=6<;y`=Q(Q!_C}pj31y=1ifXT&}3j>fcjGfG>ijY z)YbSG%`E|I83pdfegI3Rph>!ZxWfyVSGf7&PV9&K4;r4h{yWp~$DxSzuImSIJ`8>_ z9acm@%UOxLt~_^Rf82Eyff)V2l;cJ5|NsB*x_-Em`s3coJFY+A^B8#6S8f3Hi*`?k zw8~-YH+P`+j+$)`fC|b|t`~=X{r|rh!~r$=O+kzolR;aOK#L|}jdqOw4%mtas1@M; z4#a#&yB*rM0jCv&JCO|mFQ^3@A`CTzbqB-*_=-k^3l$J9`~zxkmU8@uxHBKL>JHhR z7@Z5S6&t2Of&yj*iX&m|PYIY`O_5e#f|h?|fX&E(ngL%Aiqo}4KQY2{{onup@5cTB z)eX?Kz`975h=3|QuqEtJOV~TVK|=%L)VoOWu5s6u1Dr;{$q#BA@)BNfe-v!oj;RoT zBgGGv&^`16$-Sjt{+E9EU;5{N=?`caCxhMo0_j9?WXr(og~672LoGv1Z!q`2KuWjW zvAEYXgN<T<8U>3l3`c`fPw<PA-=Pi%ua7$NBN*ypQ^>6xu=oTOCMfHB!FJ4<0tp+m z_=LC@UIRgk1K60ZFKA(y;iYayYvxkWx>0Lq7XB#*__tl?ybuk!;|er~FJK(N0-CVO z%U38VEyzh#$Ve>C03YJ43hlds>TS>zv{XRG?2U{9SuD`S?)O)L>MHR4B|CaHG75lJ z!a~ge-z*6;1eRuD=7<Mm+($NNI>a2-9T{Llf>Lu5!FOOeXO!k;qmK83cBx6cXqx>0 zf9LT|`7EZ+8wVe72K1WD1$jLzLuC`Az>6nS{{QcE7XT#z@D;qlFY5mP2i=nWCHRF7 zctL_dz>D3l{{8QC=Kw4E686FXWTHC{;%XeYn?c1)DbI`O*Z=-Q!VGfO1E>#Gk^+(} z=6GTE`XA`(Hqfg6*Hi!hH~iLoM8Vp)*09@|r`cu$Ly0ozgbap^HJca({+n!gk^cd# zyxW-v#A5_&R&cX6t~n1jkLN|*WY9Rqm*5wrli}wI6v09TG57)#f=)A~7p3Na#@j*t z0g}dFu$*CAl$xV!mz-ak2OcIcP*77-01JWAMruktIHAOsfVS}$N2g_`=A^{JhZ7*} z9#Gr3ln1h>0^HxV+RP}B;SC}{arIgebgxq>CoF`({ecxAS+Ek&Le-2I5I18pQkyVu z#sB}Wr9l1zU9nOs^1oEz#itkl{&yY%Egu!x0B#<@)&?}cf!>P%3e+-z7oJl=8(07I zhVmSD1+Aa}of*^Z`oo&7R<iS3^C6aQr$61kKe}W8bh30icKZIX=Bs%L9>4q(5b(c@ z<Hgcf|Nj4X6G74(`omg`zZY~h)r4+09*}06j@JJrDc!Mux@EdMW50kF1cbj>@$w&d z69DLf8}nvxlKgM>;?*BWn*49}VmhdubwnWGg&N2&hrwy`PjI*Emw@mW`maD~MF8ZG z&_6*z!7t<>0{>lqbc5a43T_O<pF9kSlkC(=P)tBLkegc5<KYP<B{e6tBoz{U*bi2K zrUioOCoM5ECpE=NK|{4z6E^k<Y3qXSqO+{!C;=U1lM%g@Q6QrPMBD^5$H7s$Vk;w} z44J(Ql++arZ(GaN>ViU%Wk&0P5;^NQmJ&%&B%90+c#-}B6b3)S177fgJ+I(wEmw0H zv^WVAFF#-Y`~Tlh1RVF^TN}}Q%K%QM@E#4c?E+03AR9vkx@{(OyNPtV{%QRN>79TR zYtlB*Tru3)C@JyD(*OToXSMz>6$8x@m4H-&mH!7dB+rBImj<nX3V*TsIXv=9th!wV zI^9^BkNgSCxUm&<nPuu5u+Jb$4PJscpaVsMU%Ywt?|--JA8j`g*!Tr3nvr6&I2Ck| z1vECH{sPAVDB}rqSF;>^&SY7N91~9483i&xx3fbs7fMVBE(OO#H#7fwXO@Exn3$b8 z!1qrEyqGM@$nc*TO8`S0zyL2Nz^SfS*DeRK9u^$Vu^ipbphY*`HlT~$vv^({?1gld zL0JM(IvfVM&H%LXTnyG<0*5SE+z`}#2d5vDh=^VSs)JtkgFC`Mx?On!!e5v_`}ZHx zw{1O8QU=aC0zn`t&=R5-wG0dloyVJxeCcJ`3#v8v*E0vac+>O$f2SJ<=z2I7Nd61U zh}q64(Czvs;KhD$suQrbD*+u(lyMd0Ot72m;ch|+$>WPb-2*HU1`a65crXWe&5b~} zBTqNWgjVQEc5t%$yn|67!xwHcif?llgNEZk<FN-I<Fw%L0qgJsh1(fWmMP^4cwzDs zl$JniVn8R_1iV=B>K|xR`T=;m2Aob}LBms^T1$5VC_Z|9c?>T#9}%z?uH|b!$kOfj zr;}xxleKWoC(r`L|HT|H?mmGU%Rlu1|F$0xVSyK1lm7olRGrXvG`Q>st-|~Q(z&_^ zl)AnIzgX1s|3A3F0!b_e@Qj%bNyx?VkVO;VT1CMI(w->RwJXm|Dan9`oj^Bu#16C` zDT8|#qd<l<h-d<ZfexsCu=Zl973_B9;a~5>!g!)Ph@+dO39=$y3#1UNx*2;Ib1nj< zsFR1I8B_}xbQoeGc7oG!tw6Uc4>)Cg$ymLMQQ$>wE$HAO!`q-hldlD>B<gnk^WS7f z#@bzs0%0%eIvE(c**%(%2v{Dj1+A;j*Z>y4)d+6QIa|xufMP6T6Ik>JSoF_-Gx&{R zbqhg(rU1TGHSEQaS_TGKqSDgRQUDe8ss+&Y5v;xy_+QGA;jtU(-Y-kAA%B81wt#K< z^!(p{a8^Ef7-UFdP7XAP6*N>+G#Nl*;0RDqh3_!{nH|gVzgQ%r7unzk3qY=e8Vri# z>CgYc+ddYsnq4a_V<EDxRWMy4yBP(bO`y2vpkxJZ0-b=m4U{wSU<FQIE_@YOVp4KS zYFc_mW>$7iZeD&tVNr2OX<2ziWmUYRle3Gfo4bdnm$#3vpMOALP;f|SSa?Ka6lh=$ zdj1bt`V9<?j7?0<%q=YMKX~})@sp>|p1*kc>h+tq@7{m-`04YPuit+B{Pp|K-+%uP z96WUR$kAiRPn<k;`pnsL=Pz8mbot8FYd3D*x_#&FJqBei23Va63j0!yR?zh)C!R5Z zHlAf=ylCnGP4HoxrbE5q3)ET`c@Y9qeW){7q{~e}g|Q(?;2(#RKzFc6H(MuDx3dVS zxU*m=WjoHGxt9?v?grX&22$V#+EfN+@PMwGbQb9f6KHtE)Q}+Xmm@%+8_H*CND%mq z#OG*85crP77idTjc#p(aXh;yakHmLqND$bM#BXRw5U7Xo1sfhQHY5oC;|LH0+b0ON zU+^yypQRx|@HY~lqai`?I}%@@Awlpx5?`SqLGV5j-=QHva6b~ip&>!A9>x~}+b{Hw zBR~jjzYy4dp}$CcmWBkO-$;Cph6JJSNPK~Y1flmF0Yad=aY09)!0yJ?0Bx8!?hM*e z$N;*h7A$80O7zE_9UyX`t!50Mv0<LWi~<=BhZzN4Fx~t2zth>{xU&!FP{QNR0T2x# z5DK(kjp4X+41||pau75G1<g{3av9VjE@pWl-VVyZUxHuowL{C~;^f4<ywoD3G8rlY z-%^<l6##WKplwBL6v6f*^8LoJz7{C0gZfpF`+?@~2VEQoBEZ|=4uV)O_9OKM66XB> z{}OZ$0c8Da7DGnOenx@+#U3yC9)rr0FCgaPyZ`?87EAO7D>NTb=ysN{1>JOBB2Xl4 z%ge~XP%dK2#mK-=1iC5yztIb}Hc)^F9A^U!2lo~m^afjWI~(BDa=8^r3piXwUhD^p zefeJ;@nQ>@32D=<XoYv?(&M4Q7@u354!a(NLABUQHN{GSA+@L|zsO2~LA96*R3w4p z4b*pTJpgH)f<uP=AfrHrDyRy>3>mlC|Np-Z`Cp*%zknx0_8_AG;*h`ZB9J+RS^)-d z13N<%MfwI*`Uq&`Dnl1VZjT5f1880c=5(+#86XFh!BY%sTq0cn3wHD&kfV)2wKV(! z*h?TGu(&aH&s5I(|NphYe`k*7>I8-o^<Gzj<|97>f?m9h1=YQvo;71waJO^9{|lg! z?8uj}7xpb!0=hi02zK`?D4msp7LK=mgS6klZYwwh>Y#$$Ceit=^%7)#AlP+a86WJf zyFK&&|JQmGn(I*976@|NVUXJxg2TGq;BE_kvA7xTHgLQ`<}ZAC3@>#vTQh>3^W%RZ z%l~4Q7r8==46O%X12*6$6S$2J+V|DX(H+6kV9ihhzrX3!!AC6o`<Q!q1UgTFhvh$% zaDqnFB@7Q5UUY7-W+=VWc_JD)`ihhD3sU0~Q&QrKD|3_ba~L2LJSHLicyPO?Q~<nf z0=&Ng99E5>;%FHttYjeT1zW#C_F~QfNq}XSV-K&@Gyea7X~GD)VTq^H^#f?1i<8JV z2LVR@R!~P8G%o%f^(d!+7ygZ)p8J>1<DH+Ij|eo_F_h@?Z{zL~?sd|zVJj2qb#kx~ zE932T+HWIS#@2D-HCyMmjuSiz9qi8TAdg=@20B0Z2WaxEJCx&pk;e<MTmQg4@-P2O zzq}A^0_9+Z*HWFOpbk4&nJ>rxLXQ{kZ$gv_blz|MUs?mIO?h4%Y5<Krf!cxWpdAY@ zilRWLhINLsbo+{Q`h%PGj-Waf<fl@T&dZ=!(w#t*dzr!UbOqGw0&O4rU*Pe=;MTwY zp!G`Kp(35(9I)0OqWFMBVo_>tepxCk9>M7fIo`lMEO5NJ9c2{AI0=e3F_ahsi-Qgl z%fKv5eop)U|K%0XbuXZ{FG`G6fqPwFIx%8wZasR8X(NSz5G2O9Au-0%apE-#a(rFI zh_AF8kca@sS7HNZe7SOf0?Qt%47_g&H1-0G?&~+9)d9;36^Lf=JcvXCC@bEGjsuSx zz)H28{QT_F0+g`S0WB&89kRv20NHO14$B$G7zHx!Vo&8qL8E{NUiL6DKu;}c{Z{fG zG}!78)9LyKE!~5Ti@=)h!|SLTiVD|}LQ%RN5{e3t{ELzHKVO3=7U;audVs$bbm&Sm z_#m~lpp@Xt(H$uA%}GdrzXdd!cii;@sKN2gNr17m9IID)YN_g#P^jy`2_m5G|NqzG z7(Orrs{uQ|r2w>K(Sf5k^#odML-G%nI7iMu;Pq(WIBz=vTKj-K&M!^|^&4Mq2MsTL zYyDR88B|6fmvE)kSc9gp20du>JHH|27Bb2=v#XHE0|$>`En4tEGK&yc4J3G6K@)qR z;6cv};K_DSJ%Q8?0d>4f_`AJgK>l-z={)gT7c}1WCj%TpOHVQiWUzw{J;p3a)=vV3 z5Mq25R1f>|bh`?48+1p2R<3k2S~HdMfX-p~U&sNf2CqSzt{6>B^b!!dIRKVzA$6Ao zWRL*7E&%K}k5h~S89LY<Cp78*|JQ2Wt^%Ok=_=Cc`lT0C-u-Ak@&{BUWN@5f6adv7 zn{I$60zx~V!u)|;r-GNFfEL%qm*i)s!rB|)Iv#eS1=t~1K@I^O9f_s9?VJb-rPqdy z)drwuXsK$qvqq=0L$|X|r?U%a*vi=@px4<Upx4<Vpx4<TAozu_00Tp}vjMn?fCw1S zK7J&pfZGm;xeLhtBd}u<PlHZG!5%7qCV(AN19ePEIHWC&)R2~dG^7O~4QVb=6WHj* z-m3rqA+6|cXM;{>iEd|$?qHivXNAsSm2PK;PG^m7XO~WA9cZ`bHE80p*I6f^*I6T= z*I6N;*I6PU_=Pn;$X^oBG=T6~a%mAt_(IyoCEVQ(60Z#*<r!#H7VJ6eGmHWmpi?@q zgtR=^bI9=rG8r;xj@*uQ<uJV6dZ2{6J3^tmK;^X#q`v`4?^8kMw_p#v{r#Y2U!9+@ zdLSn=FBLj=gK)nFhWr13%%6bW{P=!Q<e<ABzOM@04uG1?+U=kN8UF%@O6XZefs7g0 zP36QeH8npCDgT4kR+aEKS4bchhv`p%hxclb$qTTXyuJ@<br`I^&CDw(Er|#97a5?; z6a_n51p{c<fXWE)F$J*u#KG?8IL9cEv66{_;WfPdSqq+TkOfJAWmjQ$gLWV2fUXJ6 z)jkY0kRyH0g7(=S5g?*>-dXH}+TU)jj$kMSjmcyz<Y!=bvAhhls5Am2x*`55Nv$Yh z01@yOHY|-n$6~undAe)iBjR9xz6N>c5XhfWt^Z5(TfafFEyH<6fef(R5$wKn?fw7% zb)4ZhByT=r0FOBm;Z5k!LT7OR<G;@05RfOqS7w3wvro!Er&xhU8Nl9*hs}wC{ZPu$ z?G|9|7E;X0zm4H_NOPSJLyb>&T?C|lSisM~5dOc+=LI(_ba`9z@BgJDFLGEJ8JaCv zN^ZYM0<*YFF1FsT<L#^qVEo+~7s9`d{Wa%tH}G%=@)mMf0xGV|O9rQ(`24iA;?xqz zcrC2VMHK#?7eI>uL7Uz%YbMd2|NmdRfkVro+d0JAIiSn})O%y>4i3;f)OjJ`f3eRC z7Zz~Wx%EJeAZjvr%`@S}au!C0<Df<m1GpFl=RMRg;pvk2?-ua74!nL595jX9brI0@ zdZ7FR51-e}DB<G+vKJgaPGA-!d~|!=89Ut|LDVJRa=TO&+#UH3YU#KIbh?E=gX}eL zFX%jFNce4LX!y-lD%9;N0ClS?&ueawe9P?;)^1mU{|x-w4#OfAQQ(&5rB)O`i`>kV z)Vz|+w9M2ZXonHJ_9{P30i1<FhoC1Wm!uXcfX*~$K;p)z=BqPkl;&mU<(KDaDuC-p z1sl~AJBG|W@S%U8@eb8u1<=3{gKDvAF}~s53DC&5QUE(GHMt};MFF%14CW3b`I6M4 z+|0a0kP67@><Y>GdBr7(c_j?kRVC-==BDPA5NCg0ex5=~W_o6cLS`PqV1)Z%o-0aB z$*ce`h)B!HPXwPn4|fJe>t+H%e{Nz9XoMv-MS&=NFr(l;gSxF)At|*oKQBcA><(m) zgX2R1GM1B9nv=tjSDKpyj=!7~bp%JxI8B`ayi6DpPiR32x#=4ga-H8mi9tcN*h&FZ z%_*p+fai&=6pAz8_lGB?DiozACTFCkFhHXpYOzLUUP)?tYLO<)at*N0H5pWk(JW<9 z&{e<@OGwE=wOB_XwW0u$MnDNmwU_~$7>X8<I&dmfh3=6D_Xlcuz~dl@{=k}xi~<=c z*vpiI?f?J3G=`pseBAX*!y!h2=2``Y687V+U!EKUaReAjK^N5?x(MQkfH@*(FER@3 z28{xPh8rwj1Q&p2=0I%67w#ao>!0JUKR~0ypz+L5j&3IjTXseU2L2Y%t=r{#wxDCw z_*-f~gPVe_2TH=ghfwpkD1x>-N7{l;QR8os16?;;&BVZ9%MDVe3~syeH%o#<K;xtQ zEj=J6C)nJLpeb#6NGng`<x$A~L{NEk<szfN%e@djXf`uYqSxua?LP(vhVrCdrw7eH z;>rx0kNgPgb`<$v!1Chge{coVdH{6r+mCKgFGQl-LF9h{$BR`ksS<H;mt7*`!9~yv z*2@GY1_p3>*$o<zk;r%t5%y$aV1SJr32~GP{V$Tp_z!Z8K1_Y%e~{x#L_qFx6#3>L z#8JZE_@9rFfuW2Ywt}Npf}sR-UL$BHB<ReN9U_-N@$dt5hBjy_Bp^ff5~DzH*o*pG z3=A(>z-JME>Gl-~#8jvbQ5XhNc$*P?9x-@{$$n4^9(*i@0y}^EbWqpXLE*njEBAFq zff?5s1+=d-3Rqlc6!5stC=hX-QJ~{Gqd>-WMuCd!jG!eS86KAy1ztvh8z_G=GC&;A z#4xn|*$3j=f`%B%7(nrH0>sxv@Lz!VvIxG$Wk!LQpiytA{tOWRFK7=HM1MPo{}#gU z4&~tA=A;k+j)<2xK!WYxKzn9?FqXpu@W_uH^DZ+Abo+8NR!V@z(My@T9TfsVr;cC- z5i~4~Z!$2v+yM#*&`_L0#^TG20<Wt<%L2ertn$B5A!Ea3aIkZLl!9(*>Mdhv{0~Z( zpxgouSMWA#j&3J~fL)-NYOr7^W!<&!GNV8cro~4grtP}Hz;Mh(?w`^z7rFlouR+y& z#yyDC{2Snu`5Lr8C<C0O{~@yUWk$qem3PhHL6gS+kQ}ED$~<a~|3Q(=-!dP><7)lS z-%<}6VAE;*&kD{zA3^y?4w4}GTR^vD@i&1&z41RN^YOQVj_m7ohi07cUUzWDF#@e_ zfh1l~-s$`Uc46xQ&=EC1K=&$lJArdf0ZgJqFdQ6LSq|O4e*#~EVj~=!U0(hK-S35z zTSUUac?GKQAt-9g7z{6UyK*#ENPu&VXtx6-%LqcE7MyKZcR>oBFWs&p0XsmU-g>Eo zb%*E`MuC6~Q2Nhu=nnl8^tue3UqR_n<_ahegPila4#d~J!YJ@M57Iva8_*rf(O4w` zj#!vMHV8dlpyQcb1p>fMmtX~@K5%3=|6nX<-378Y2xhPEpTHNlu7QF`;k7i}eo*<8 z<p5s6u@@{U&|E9SP{O;z?+T+pcc@H*6+<Zp*dd*+GLTp-v2L#Y!BC<IN?*P*fdL@R zVHp`<^&COnzF+=deC-WtFM$+<$^->~d>59{4)U26SgRPw)gY~58M8s6A`t%~MAw20 zbL9x=4*de!a}Amr3VYF;4N6#FK&HKD%tj1LLdG#5eIQUBpz@+U3sN8a2n&8O`6mMd z|MoaG*t~~(HmJV|Zoa|Sd4TJ!QqV%s?plFvW;}CQ<}cX6t`IoR3`)=-7rROXfMPp5 zIP3)|b%SagVR#uY3NG8-ME)DRc=Zz$_MlV3<~CY`s+dxl<|9A&x3LFwgXK@b<oR1G z|NsBrXbmcbN_o58KqLQ5{H-ZqK^{g12ACiVf2%)eP>PxLFSyiUFOT`J(&}-C5qdsB z#~nri5T1@igV>dK7zHx!FbaT;7Gf$<JI)MBU$5mL0vsix-Rzyrulc*(L>ejt8EV;% zGlOzzqcw;ug{opK5k1Zf%HrMZNUQhn%D*`Dg8|yehmFJ==wWYwB!f?+0<W8dv~(3g z=UIjLd%OC@`}zC1G9Vh)pm7?on)sX?h6&LA0FL%kVln89)y(`n1(fx7;GLb2v=Rdv zt9Iq+b`a@webF5%0NIEJE=dBc9Yc!Pnk#)6YB;+~IhyMv7)trNU3nl~ftND;3=GFz zK|3B8j=SCgb!Cpbf(m|y<F265e+EPF+KxY<<Ig~qV7DtrzzfmO|NnO!?kqiV-1P}0 z(Fk;hzWC-OAW$OLa=SzdoC*#H{4Zj8aqK%ZjqtZ7b1{JW8O=W|`P(ORg0B^lxyLBL zai39O#q)v3F%KYa$an;yL2i11$88pm7zHHnGYZUl#3*3(gfIq`AE598Rf4_}{~2E< zaWOD-m%jMsCcwep(!>D@r!U~(T?D!^{fK~#7Jq9tSQrudr5s@|rhfz-S^or-nP8W` z9Ql#~Dw<zBiGVC}Q+O>7Ef0Ty4u21S(H{qq05vaQ4WDjbj=&dQA3;&sd_<t-Hh;@0 zW(J0a-&&<7K&1f4Dha4d^h>vb*3*FshES29uoog=Cx8=8^AUlUlR$Sdfc)3(`{J9U zpaOr(W_D1jdIHLX$6dj9GJv)ZfZga2!NBlZ7*;+)-S-|eb9x-K_29^#?ox>`Q27I1 zwzuj7lKZs4?o$V)J8%+xDap*h0I}17zr`NePVhYsa68Y0Gcdd?WCZyxhQBo$(y~Ia z#|dT+|F*-;KhpSH7BVm})ay6@Ft3+t{$ar13*xsP;BNsfRD21#%Le4%<{vR7+RZ<b zO444kf!cq~KZ;7c>$#eL<dvwr1Z|dV{!vn*_3{;{E(WVV@*^we<s(q#3p$t<w8kTg z>*XaBKIh9rD16?Rn^5>1FBhTkd0v7x@j}9rf7|EgV;4ZN2a4OMcmMyZf|jN>AGiPt z+8^xYkx0=9iU0SY@C9}MOFn=#g7UW_ibjRzAME7{AdR5&IDAC{!HHB5RU>G2zVj3R zzC*9sK)HY4;ehZLQZY!0&Q~I^yHq3$toQ0WkfqQ>7YdFRCH~fgf1q>?E_7ak7Q%qe zTLP6Tf-L+k$*kb?1S*~PK^i1~x<MwoihvplL9aC-{)eOm0sa<ah<Z?@fE*4@xL_Yg zz$||Wx}NE{>l08N(Czx-n}Z+|sFU`D1)My-fRms2Tc}GRCUfw&fF{Bkepi%mHvEp@ zZw0MbKkoVjn>`;uSIZv(A5H@5W`OO!12s;e<#wqA=&~!&;vdMJTHU1*|Jh#pu`w`o z+yY-RQqIzG=(PlRvb3DN;n2y~Je}Wqo#xv}mP<4oS_wXOs^OPFF*E<RL#+q+doMG9 zLkQFlJnnjem4Sg_Gs8<}HqeYa$ZL%JEugK34Zo8>E_dQ@1*PZXu1`P*WP?HoIcm+I zE=LwqLUOqzn#)5a{xiLt!pguf0p@h}jzh0yd&?LguIB`~o)47%A?_DJxSy*S;{IB3 zgqfiI%P;LgC$D_lY;fH52q?ZAYrz!_s3!o9ujV6Pz)iT;ZzZfdF5F=h2zc=#7?Rqc zCCc1L2v@=ITVw4LP{JwYZ}^>B!rJiLwUiZ_h`xYh#ppFCk~?lS9}$3rJV(c&*K!c| z?zfRF$K!q#nEO>ADToDRzFvtK=(gF%;DoIW3U6Kh)~n!Dg<6uI1zX&FL;zIi9Jt#2 z!-~HhblCBKl~#+Vi~^nCBAzh{ta!#K0HQUZ>=Vxz1&F~QeZ=AnsM*A-r?xtf{h;vf zc74JMIuEA#2V+_04mJh`23Xv&?qFwNVCZxOH90_O{N*%InF^B)c%2Ha?;2~tS+OJ> z78~Y`wcz|*A_P@h!r530PC=zIFvVKOUBT(&wc-Sr5L#+{tpjbJ!HYKga7gMBc+Gy? z^$4id)LeUnfxopMblrpN8;}6VFOXI&OL@Y7l~#`Di~=&x83i<+GYaTGXB6;$&M08< z9Ngj0VtTC$c0XwFnd7x0h~j!J1sXs9(d+sq;J^8cHY)~(yRj!;3xnhYpn{U`!9fBl z+iTx2lxTLlzG<*vC{cvwr3MR7a<_0T<vi|s0+g#jjy(Y?8o*17!(U_uGB6na-wfIk z^Ac2HPUsGO(OkvDz~9or0B);w2l4Rl6SBNeT7BI038<ld+!cJG61-w94uFIMq%?+> z@2}<H;UpdglSi)9uf70fxaK1YphibLsJp!FaJTP^?m!;?eL;+t7fSa-o1!l*e*gau zX(I{nw+JyZFo1M`20K7DY&#tAzl`NY@>@{TNdQzigVrN-yS@OOR>$80TD$;K4w{;W z?7smQ=`PQqwPHZG?~DJ1950l?`ayRAwt$Y7Iqv!d)QyIFae_a@3(#`KH59^C0Hs$@ z$%*W-KhGf^gQ}H;sfE?ZC!Rs%!L6;BU;qC@z0qCz0<@=P<{PL_N|(K~`}P0-1aLAI zP$-c`I4X<jMO6%F>A;B&32@A{+%A#l-*&k(^a;3*5@IRkI_~-e)E(=HJ+Yag<#s73 z$%C5dkhN_uKz$|7yNm)EeQXR2koi%KyGX+w|BFEG0>w=$<Cp*cLD$Qb3W2Yh;{jhg z#|FCAufztL$XfrGfa?A%#_$(X{-EU4d_(|Tmx1-Mf%KJt(jVw>A#nNwo%Y@OzeKp3 zz0>ssC?PV0zj)vW_IP70IOzFX3&A6OFB+-@82EcZ3(i128PAwb-viyHCpt^_bozb( zj}L%4l8mKwSQl6bM1w-<OXsof*b^W(h3;vvVkjYIK@yv@8)yO9)nja+1{!D?0C<qf z<Hgm@{}2nvE<}Ta>9uTk=^mt2D4+pOj~A<<Dg|0^^S7P>&B4_kVBl}r2WtF-MsG#F zIe=EttON0VPjve3fUTu*5P<sUJo<7thbT1v?4Z~`tWZ~i7mP3<{IdhYKesnQd=6S; z1)8<*4m}a{;#?G{!S)0+c+?%u(HVOJ9)F<0V{mE|aDd#w*d2SK^FG2y%|Czfw}LX; zuCTj|0z1LOiJ)0TaD0~NbunA9f+R|FI&V01F<3b<mL_%HXg<IMVl$P7f!NF-Hgl=h zYsYTa6I~2eOeHK<jHTAyt|uTmN?5HN8B4XhT~EODfkc=}CBY&P-5?QWaGL@&CfDuy z1a!eJQ@87h?$9&cz5<<$oq;U9sWZTfhd@O-L%MEpMruxuZYpT0u5MvzViD}FmuA~L z&zJ-tH~M6pc*7|0;!DB5|BFF_3qi!m!=QO8*e1@>yu#A_l2q75$(eZtIf==s4C!Fg z@vN~XI6eTHMuQF#Fr*e0f%XJ~MhQSCWNRVu8H!5~tGz)58Fc?cAjnlI3gGGLl>F4< zJoOUD=?V&<6CM>36+q60?9$Bz`5kl$B<R*1*fq)o-G?%M0h_f#(4l#`i6x-PAvB91 zvuwG!iFqlIsipiPh5V9?)FK6Ni0Oiyl?rh;WF8ni2V2Vlx{3|5c$(!cqd<nhTSkE_ ziwt!T+XKXgoh!zZ_y7M(ZO~9ZXn{276gkkzGlrny%TkbHutrNP8ZYPm|Nrt6Xs{jJ zpKJXODPt$XHCbWNG!LX{FQ~uR`MdL87qg90iJpymiB>bna`0-~6(Gkkyjb}6|Nnp& zix>R+-yJH@$<*!2(`oUtg^_{5*+z-K6}0uM!J2`;#S3n~<>zwnUbP!=`vW2NzW^Bs z+rTZC3og097W3M~l*qhxhqiByu`xJ<@&M$TjF-|NtGbwNR7ynZxoo&f_-vF)xLym` z#FVhuB$RS=F?X;zyS)}T#unrDnhTVSKq79=n69Y7;))qLU{`>A(CYI4|Nobu1F^sk zaOLTg03Rpxaux#vgXQOP@EQ-epE5uSu^8wMGf=%`2izfOTBm^ab%Ns`B}8~&S{X_w zfJ%LML}<KY6v$$DApzR8`$B3yQbb4~79~J)a|$#&!xws_$AeR6JUDeSs57Xmt0V94 z0q=PLpFDE!1L$C05U~gDK9uyClMPz(^Ew99C}H`?DDdL98)Ox{0BD`DeuK3-XkXxu z47QJ;{bxnq3=FRYLGb}<UhHEI2z$}*1Fm4fD~&ILDqZ!k7u8^~A6X1xFB05Ad(2)$ z$DKS3b}UY>K)uR<efV<%xLiapbn+2J4S0P7cx)Q9oCtC@&gzeh0vQKE#8>Q|&(He* z|0SsX0%{L`33%~c2h;-V{M}jm2NWI`LE-V*6%rl_4fYHrl_lk`?IwWy-(Ve6DhKj( zNos>N7r3Fq4-SudZ%BB&25rxS2<3P)FgSx2np-oJm^WA}m9T<>buTD@L8teDHj;vl zV+wvT`!^`zf;L%#w&(?iy<qZUVCath^ZL*PP{=Zby%2O`V0ax2nr{Q$zi84O%F}Gc z04W(>fIJHJtsZDSDP~e^%mkSZnjZ*%ksAzR|Hxttd$G@zfdQ1_AWJpD;Ru-@=q}{} zozf-`ZsGpOV)$?TVv;KZL%@Ht7jE1P44rI{{bJDR0Yp)Yl@$UyATTvAB{fAMtF*X8 z0elCOLZX7Yx&nMnhn|8)NJc88jwnwoR!~<hR@a2CcSh0=xd}@FT%Kp<rGpFfR0WWR zwEWV%6!4k|)nx33VRaiw5Ntlk49JoMjr=0e;){~R%)HbTh5WpnN`>-_%#zgNg2d!h zO$PArdS+E>JZOPJVqOa9z_nCJ{Qypb;5$&D)56eG@Q=BEXXyOgV8_7Uk_GC%*M5&F z^#Uaw3(z!AsW3djRXKyYUf{!0Kx2CUOMkr3_5`J=AE49(;>v)z3Lq0-g0?b&(_`&- z<x=_AjNl~6+F;F9`V}M(Dg#@7f$n&C&A`CWQ2U*sM6Jv9y9G0UD`?QhMyZs~@^cAS zL-qd{e(=g`kfxWQvaE~QMw!0_R3O$%+9;G5*7MqMmT22>m59Es=q+QgQ7W;2oo}OF zVrdgolJGjU`N$7Y8t!%d5%6Ni-~az#SA)D&Qqk@D19T8tT|Tmc=^zDBAO%SNZgN8M zH_WSs9w46!bTN0het)fvrXv8Gj{ojp9iVXFZ=D93>p^mv++R?#7XXKYQ3EInK)ad4 zGFE(M6nM=C+I`Hw&-Hsi#*5G3!nyj}|NjBuFC6B8misHbHf*l_!%zY`U*>=5pBIPt zK<@qXx)fX<WO#gG6v$$H;Q`UY3)Ujg`oF}m*&aEAmVE*3vH~r#!_1%$QbDd$0NWx9 z>WwpGtZ-u#09kgEALOeqAZ8dVa(+clfEd+7K_cizsl=l6GNiPLC?6TVGYVvgf`|aP zgHS35|J48gUxFs3LFMBQ&{$)@3vtkyL&rcDLVV+I0X1&HtHc!f!GQr<P0Z2?8W0G0 zq2~wcRs1mg587m-(E6=J8#Kr1DiZMD_=O+nLfFtBoh-XR1|29#F+9+EyM!5ZUglx< z*4w355xx(5ahDJ5_plc+EFgvgsOeS0(H;5+)M^m`H*EyFLw|I;3Ums*hMi{*>KB93 zqJkv@1GvV2odP;-yTqhBR0Ori1P4GXJOEH?Z@&~sj2!vW4KnPq1;_z^vLNvi_QDzL zGEj*c_F_LXa<qWk^vDGK%2?z`%E>G)!FoY$F-S%)8MH_i+I}Y3{zYz|!!0BBe%cj3 z7zHwR{a_Txvc$NbR`e%K&MM<7NZkvNI#~NwC;9*X*HI|<(=x&Dr)2@(!v(vaR?#1{ z)Dv`!8faJuBvmS#1-_s5-~;A>ERO%iFRFY&3tllUr-iL+1+T$`ooj?~oYn)-v0q0Z z)$eQ89WT%h{5tX__yzcW+7Gb%X+aFo2p9AaDQ%=PsX!+zWq=JVMl%rUgd}iXiTf-k zuyzwP?MP=ifvgAJPYa^K_tSzH#N1B{Hu$y|C@l)ShMhMB@h-%5==akG`(%QuT=)gG zi1363rU8=Q!RK*-?I?%Z0XmNhVm`X_LCc4KWPmmtWr+V~6nK#s3ff5C3<_(M`)NU5 zYd)f|5KM#ar<Dh->n{*^!2&8J4ntZJpc@X%p#24~%I*MAUM&&smI9RwOb}JCg+cXQ zw<yRcjLU4X$KiT#g$X(%8{!K{C_#^yg&x)h3lm7&r}Z{}OB-ld_#Vh+W>_#`Pjdli z#=`>%>PRP%PB)g$DEOtc$bk*M-xeI$Tu@V>_uC@76xzfBr#EmO06DK6G%W)f`(nWF zx=oNO6f;L4T<47JI*jwez^==IngTyB4B36)70O8aK}rc^3VEnun3>cT6srvAsfs%o zo~j&vg9;JwUA3LEAjK%D3N(Q9zd+!{I&Y8$NO}RKDuW4RrYGzX9uH|_z=IT$o|-{x z{y}vg1E^wRZv9ru)p_GJV!ck-i~H;h44n}y@Oy7zX-*^<e-yrVgXDE$!|Qe+$ot@2 zDDaDz@T&6yX`n)QVb6d1XzquE7dVtaS4lgwpyfg67)y7lK<l?!(6XRz@G(4d{{H{} z5;Uj}I<Mv%=!$FT`8?Y}7hQlZMTG?;@)3QY_8O!pU*QS~M(}xnkn{`Bs?FF_-oyY< zz<@*Y*bjUm2`kS`JV6=|AxV?+?7j=cBe3)U2~TKw1`gKN|D`OQH(r|>p6vY9`N6OC zK%EF^I30WoD1;BX_US|G$r5hR{m;%UoslfBSv#v)I`4P>02ep$;5$oU`@6bJd0M}f zh_v1Y-NE)H_=PAd14Cy4%WJ02&z(2G>S6mfz~xi7E05vH&RefpJ1>GSm?}}VWGej( zy2S}}+_xi(<>gZ5?r4_dPT=eUKIFUp7ig^+xFiYfd>Rb8)Y+HA@OI~^*PNj8zVkA~ zAQ{U;rJq}GLvFiuX0g0j%G~V<GYGsP9a;{-(-2SRPs7`tzh1K<jQ9jK!VPpxJDL&a zK@+T?BZQBGCJEtXt3FZ%3GS<bOT{o}NJOwrKyPj!3RgG0_mP8*;fET78lQ-WfRz*A zzGW>3v_}bA8EOa`S%kJ<u$NVvoghwxnN29g&j&TZ4ueztm9O|xyezZ^cXC5b@h0H@ z5LL_D_l~H3fTVXsdD|KL2eb;W+x1VU>ksffhZA5Wfl2d`FS|j0h8=+kT2Bcn4rW44 z1*b1a{B<*f4t)^7Q5dxNfP4xLnw?+p1r6v_P*63b?h4X?C=9fbLxmr;Rl^TWF;OC* z7KanOv0&VM<jX#ghhZK-lxH^_Ai;tt&$`*b?uV5Gp+7pKSUO{WfCHzVrS(5Q_)?f| z*FUi3hM+ZmpnHiyR|WHd@}?I{=f%!L;5+9|K-YYNX2?Q$UW4*k=LN6U10^i2Crdwd zo`CIF#V&7np!H-4Q#T`|TmWrV2b%%9zO97CQlRwf$-^iYE~UqVJ3aA`3+PIVOOVbr z2j^w@-CW;FT|mR<dsvwSGERbsr=amJ%&y7AFi?r|S{9rhLCc^28~+F0qSbn!<OSps z<5!?@FUT#zpt~PKIiQ!RmGDl$auFLetYB(*uw0o2E_=Y24uUo`vVd<m1K$Y&x_=C+ zA9Pz=3DU)TU_H%mQ2ltjL<lq*@!$CW_3mis^^5Po<t*fE0Z{)Cb~8Nao~%^(*;?Q- zB37Wg6kbd~?>_;D*B3S>febfLXBRWPKyCMzxuESAC29<yeJT8{pow`{PQqTigxEpS zAhE@Z1Gs(!=b=*2Qa@*0O*uJe@$%RaH4m9W)?*>(B#Qe7{kEu{0A;uT7ofSQ^9E?% zLf~Z>c$v+Q|7M`Z$ZP)2(m&m0ETH4@%s{6t{=W=50#Km2j)kFwrS*UP1N^}zi)JIJ zgaT(>97PYO2PhQ4!Djb?n4)Km14sj+=+Q$CFd@{UM+meYj+FjXyba;-0)<2=XY2nu z)=oE;*OH(?tx~S;P>#+3me+is`-uN^I<a&Xuynh^Pay&KZ@}pnyuQ4*_Qz`z@SqJR zXf=eZM8IoiP<R{vH$z+%UC-57&eHk4yPV}UM`t`s=Y3Gl{#F9IqWnl_IZNxeQs&Nh z7NimnR+qx_8|X^q*4w2lh6i4UgD=GaHJp4qZ-H)FW$q4Q0pB=T!VacN-*-E~8XKT- zFYx`zVc|gmFIGU$0S*fXC6C}2Gobtz>i<Ej?;(W@%x(_Qx$KaWykF%12i-*gDjS;L zaQrV7$YO*_gn=bsV@T<`sTHZoDAU7GJ<Ya%5c9(?xR?Z9TnYO3e=$gKA&5A67&HKg zJnU4ESe_T32-@b#kX{Vp=$2>Z85`l59iA|Or12-XKSB2>901+K`{#ct_%Qk`hX17s z|4U{5mrDExAGaF-I^$iLlYs%UnOudNNg%@zM9cwA+1P_v8Qe?)S+Mb@JprKkDrnmj z+|~q@6UHw-oM2!$&I~%i4BUhS4e6s`H}LVY3MKiVO@b*3pc@4h(u(qP6~Na)Dijpu zC#Mz{gTr)(iU0${3;z=g48h&8JiV=d-v9p}kO4aXzqgg)!~g#Q!7sShgGPh}n)ia_ z7)sf9fR>)T4ubOQl$wwH`M(t;2h{=c<Rt^xNTe2M{^kc`$&%IsrO>P6#WOT`m_Xyl z8vp+P4*(rQe7g1Df5QXab8ox{rH}M@a74v}BMrr4P>!Mo<UVUP1^4*i0LO5@co+Y8 zKmU;UAXmqLcxMk!9~Vsqs9J0kX#Z+TVo^$berZWTDfp0P*z`W8(ZL}u{-Gi9A^!0$ zu3_;Yb$HDN*#|ctV<Hc$@vcEZsK(=SJIH+1Vk_h@vQkJ+%*g@G4yDIu=Eo;zfR3Td zi3g|i_=5bL936$cw3K37)f6tse!x)Bj%3J|PKXOL^AvDs)zAc|A&}vSWR!@WkU)+? z!l;hRFD-#O$x0!})zKy1&C%1x)dkN9lmzs<`nz#~wt#?gGdPi0DInY7?~TW3uq#o` zPc15<$bA_4vA7Re4aj}ab`W^Ki7!ugs0er=a;NK)PS+QP|2u2Xbh;ktbUo2od!Vy+ z5A4PbaCz~Zhe;qq475is40KC4_;e}`UM7JIu!J~B!WO(yR_fa!4$%C~p9~MUG-$#7 zYq<%{wJHoHR^JW@l$e4Vmn-1%pp^<4nB|a(52ze^`4_f70c<{Jx2pnV^9$HG&Tdx~ z2)El+Cjhjv((nLSg1OiAMF5Dcz)-^6>-r=BR4jtZM9=|itj!M?13(NG7=szcV1h7A z7(w*^Qh~t#r5srdFFd$G)v-hCfl{598KCN>M2!Kw3^~Jt4_v5R{`voZKzFE4(2LSW zaKZJmh>3y0@LO~36NVblcwfc~UM7JT4C<gsoCBZ&we-o0OMCzQ2eoNH>+^eEZv<pX zhQE+I0M_1I`+|YLM-0^WJn{vi_lO!u?;fz;7cZuP^tzq_?<4!u>v|y|OS0SbOu&nK z`@#BOg0{38-UeGQ((QVqJM>Pc>xa(JFP*U`c7qmWgDj{K>Gl24?Rud*^hzho&CZaU zES<4OoSSWbfNHxE&@tJ;ka*$XV-k3AA`UcD1KNa=^*<Q2u<nHv#IDu@{5|hM(}1;4 z82EcYr#p7Lo;dh``J0QzH%9&z&^i!M>mpPqD7@SCK){RNklPbl50vnLt|(A{9R=w> zK<wpj0j;9|&DE~pV-k3|9I;;lA`e;!@Fn8~$VFx_7kvqTQMcmXe?!oT{-DTy;Q+Qm z;k6{pGvE_Hc=(wFUNAy5wSMDoJr7>n2MTD=#(?h7Bi~%Ef?N#R7yxpyt4=_7=$W8y z*F6C*+`uM+77nn39If;^0mWz!kkQLx!65`r7_UoF<U2s}Z4i0T#98Q>pcki?|NDR3 z6|}&R0W_=U`Xb;(#}AMR3a@2A^%t^#*MRi9LG-tNE0t*dRw@FDT>f5haLB)4;P2)A z_y2$E{}Rv<Dd8{jmV?tlbL|<15`K`4pu`ag6MVu@0}=#>l?d2Q0dRtV2)+n-@&7x> zAp))6N-Uad4=|K~mRe*nc84AadhtO8lote=Yxgklw?u=_!T*uP2o9vHplgmj{`~(B z8c%Aj)nF*$=yrY69jejE1kSx;;58QDM6gN)v>#ldlL<6E1S%PXp>lfyUi5+GR63b< zfKn=K5g)Al1UIW7w-y&<7Ni!#)~~_qKk(Tt$O~C8>pyU99q;Mq;Tq%_5*!~K;^OHC zKNBA`KT!%Q9=l^zx_vdeU3I{redJFDxGd}tVG_tt1|9Gc(R#8(5>()U%R_L12bNR? zNm{oaD3Jk`cH;2T4lJn-l9U6Duih>(`gTYGw4eP?#tM+3V0kT2*AcTcRC5QFhOYzv zml|X-1Ox^{T6myBjD*rG?0+c-NDCvRe0xy{I_e-5ymScHEH}8iLzV>BeV}Pma9=_t z7_^o*RsuF)cB#Z87_>?uiy`R6>j#iDbf6>_bh00$HTu7l2h=prVgVJ%f3g@}Wc~zo zqneL^rffiy?-!*Q7&>pf)|mhbwr8SD0vW$SL^Sqb;dcWCOE>5eG+6pTaV$8ofZLqS zZ=i1FLAccx?pAxaTZ4kZ?qfi>aPk+33l+dc@1Ga?5Ep`vsR281g&31SMmu%~=DETh z2x~Tmd-@q0#k;sVg}S5k4s<h8a|%+67*tajbQ!7`DjCY5D|325tKk{o%`I>{71E)A zYJslsEJ`o4;$i?b78yVtl4#YGSStn4iL{V@Oip-Mu;G75vGl)G3sl5<iZcnkklzQ+ z(4g}8I4h{^2j#lgTo5*>chv2w&}_4Vp@hr5J5-_BW*0;0H&B7avR8wFfg#{UvMy+U z^KrIVanNDcpfv*l8HM6Z0===Tf?sg$V_@iv10T>|E5J|#T6EDJDi8!!uqF7#%e^24 z9H2QQvF2I}h7!)>ZX6}zOrYHvZX9JGGiyZ{YC!ucKpP988utai*Z|hZ1JWoBDQ^rI zO1O@@@qqNa=9qBYjR#~*bFBnJ4d^x(&@Nc0?i0Z;iom+T_g2e7#ygs8O~CpE;Q9q1 z`ehhOgu7j3K)W-zJKaQH^Fq`gcN2lgYk=J>Q2}+c1VmJap@jFin+#YKd|uCSHyMZw z2UxuVi1V8LxSK+iIFo?kZOh;F{N14n-7K>@UFNAcTmG*5*j#JF0G<u_U+U29Y6Bg; z0L2hP3Fuh4j1Exr8HE4;4?fPm*PYAqaIJRdaftgsH5ki0@U3|p#F+#Ff-|;)lrx5d zbEUK8@0z>drjmGfs7g>+1}OHj7++ZJW?*<N0uE2moflA1ncd(d0<K4R0$x1b1>u5X z6jWt^V)VrYn4k!xaskEGi`_6m38-MGM9_<6P(jeaziv99{L!1*0bZyLZYbj*REw>O zQWI0+GxJJ{trSX%DnZ=?SZ`A`MIouOB()gQ;{??UdU|?X40?Kc3hDVJpwn!?()ilw zX#H2@u4`sND)=-U$QmE;xJIpj;Wy}Q6rG1GkMTEy8Y+;y#Q@qw{ipMS=7#`C^Ql9M zN#I3iC^+0fXA?p$vC#Yw(Cx~@2qHNGUaZ>5z|aY~Xbcj;pc*$gV-HBHA4F^G?OISF z`QrUfQ0Ra8Z}7sE9mEm{$ao>eB#<Ti!WYz!25k|3@xBbyw|%YDdb>oB@m{Y8_}UE1 zYy3@-pe_2YA_w0wbs9jcSIEf81cd)V9h3A_P)|N3vnVyWB)_N<yiyPn1~{SzNk3>D zrL+We%XVf?3asM~(F_~6umSCPuQln8bwORj2knvk=meda1KJV9aNHHN7ncFldUgGB z-1P;hKspZDrPb;BqSN&ad;|OwkW{DZgWk{wolY#!T}YssC+LL&xFHSRX0(-&fuZ$( zi3CUjyp|4fN(@*Iv_BYJ20>*%1iW|#9+L#ig0?V$vm{jZMZk*_2w9LTL4y*d2LDTS z{+DX}FI7Pshye{-{V#p<zw`^}?z7S-pdpK7(45?{<|7WEfyZ9gI{{ftpvL_F(g!al zfLGFiw>HfHH&pL1l}2~FUI5)C%2^i(YK1Dk_5v>*{qn!`$_ootNMZnum1ew<W)jF^ z0w2-{uC=bbkc3KSXvl!misD=FILomTP&-lKwZ(+i|Df~4{&cc~Lx7_jbPlQosNrS< zZpOXn4z&UC92h{#9H6P^bvCFbaD5Q);w*UM>6c#DCjl=Gg4v+@5*)&tz}zpOcEO8f zU^YbRL%@saVD6V**DnDty1{IS)Qf-@HDK-+P^a!i!COcvu>(&jfs}rWQWHy36+oo` zc&RF=MNpcTnG89@3%nZwWlRc^G{Nl|(ET|X3=Iqn;L#{h3^i^C2W#tr8a{A-d2Iq+ zKhu2V%Zrq4AW2YG+{FxH2?S)UkOK$rq1WJ1CY~3m#h{#c@-R}_0lFNbL>=qKCvi1M zTLW}fi2Zg3hSyAnx1rO&sOR?8f-c8w{SP`2{!7@42dWTlf5O6pUrgW10KN|wNh8>A zka7#EPZ1PvZj1phmLhAd*~-9hj75&&HR!%!bp7CVF-KP{sDsf9(wYU*dZ?F&&GJMs z$Ak_kC(BbsKaVjnfM-!)b63!L7w~v9XomL)=&s!dA)w6>S|I($Azj$uu<#epwlXjv zrewix=IC|h0i7KWii!2$;abRnVur}0ttCat`FY8SB@F4sB}JequVQQitz?a_g2N0H zUy$|g{R&J18S_B|=*G{C)gaah1*E~#dTUTZeO=O9#(;9f_NniedSeA%i+3JJY^3Tu z@%=(?2-E-O!z|s-e_9WeJ_1kEi>QE3D~BAY9Txt=a4Q2tZ>&JK^PlD;3atl9#6iIk z{z7Ui0|P`OcztK-OGLos6(DU8N(XIhD9KM@aE7<pA!lQAbl38r7N@P>AfDW)$Rv=l z4@4XVjSypca+cNq|2N;gTmxDj<qEn7ngLpfLsuY&y(rnjzyQ8rQ~)$9QIg&5`Uli} z3V<YlEQTzW7oM9zZO7+-APE<=8b9N>B9lNC%M1O@pse%*RCI*B&;pwTz8vz%kKinp z7lL5fFTpQ(R6zS1|1gyBLQQA2cKuPr2QS7zm!R@Mct1MX@4CK#9VHDt&=7Kfo&xv^ z9Y|UOmy{eY+BY#UoILEASCU#(R9aBN;F*(?nx2@WkeOFpQdF7@y62F=(?3L^q$sgK z-!Un_sD!}{c0gc3er8^YLTW{FY5`bXaB4c}U_!{YtF*+@oDzl*_~C{OFqaf(rspN* zK%4?;t3&cyuiL-oA0qti6B)oKuJkE03A|8d5|B_~5_k`#L2MBIkHqItfv5qAgD^iD zA0!6DKa`oE=kx6NuEZqpx@ZTZGLyjT?9OjHL_v(C9V#Fyy7Su(TM#2?M*xWO2CY~A zlELzvN#KP&XkZG|bZNa^ssuXn$l*nRA|zV>fR|SXL)6_?1H~(7uq!MhTA4{8_{H0e zpuQfoxB%@%L(SDW$pw`R#YM?*QApT8@+9cs)$Ul1&X1kHT5p4P(EQ2BP+=0tC<PIr zpri9Z=jDU9=+uLRz~W(`L&7i<^htAYt~G4ER3hb7A`WRkcQHD4Fgv##C}H+0{oHz~ z6qK@<k1;cJF*>#!DE--aLi2+M*y)h@;*z2qP!R+jV}-a8l*d4erayN6?mPq=PzAeE zMU_b)qYdK9|D`6NzAo66VDWbBu2hD&G7(z;G*~i}h&8`rEE0sc*AXPZ+Wd;K_-p4W z%}<@zIuB`nDpf_^x(P0ET-g4D&v$74#aP1D#oWQ@=;aLBGW-4*BSYs6%^#q<iXlxx zNKp$9eQ;5dl3xxxBO8)NVF%p)0{MtjjY%M58FuHVn1KUX5xhmCL;`ev9RD`vfENxM z7#KR3p}TiVU&5E}fvqbofYh5<?5Y6SwFA3dKTN@PsY2|Mfs8L6`2x1@#CkmT6{VJ? z78R$$%SvcG!iq+)CtrXpK7rlhdWglwy=4rbOD{A#KciFwpc3DQ?VshjV*UwT!d;9V z%+4Kxo|dPJK0&=5fAVlKdfk>-oSK|lz))-ij|rrF06S<IJOovs&Logg4I<uvl9m)` zkh2fec0BSYqXQ%imV1lc=|@b!VOFYnyz|HFd~p5-hu4I4plk~o`2?-X0t@v*ggTGE zX6D~#-3$s?wtyGu5Yg5H;2Y%lx3LAhNP!5wX6r3u;NQn)dAxKXcz<>YYl9s_>0JJ8 z!u;FVK&SPhWTd=gsF$($QxcR_!2ZnDU=qmSWMN=<Ef0=gkY_uQJquRA#lpaVrJlZS z4D#$t&`}BheL;i6V1F%Li{aHp5Fs?L)<8sC50nVPd|wF>0)+_3pNh_I;C&ObKzq=@ zzMT%@m-4^vfaYItICJ3$f|S&p%-qZphIri?I|Um(czOiS-GkeHU9JKhuK!#AgI4nX z$p9zJ0!=1?40Y@ter5#n@N2_X(6wZ>noI(nzd_sWKwHm1JAuMp+*}RwJ8PHg{|?B- zCJ#Za3dpuKaCS^i%*)S%9R3QL@hd8ZCrN0z2X-HLZx+;j-%7#bpJ4Z~YcUCA*nnb8 z5;Xn^b-EBp6f9+n-Ras8r)xkmGt9-|FVtZ!E=6%M<f`>}wDu?X-bD1WFyO^<DbUze z=ST1^u63YYW7aYJt<xZTXIU=r?>o@^!-c=Sl@VM4^J_B+Xz1X_y*f++Ljh-?xic4y zkM4&GH2GR6ze9&f0G$6o)yJ(~XJ*U8#Rd)5`gPh3*5>tUy;aQ6^xh?S;1P2dGs^{r zLmh(7mcNU+K&n_9tj+75IC{U<I>yNHTICoc&ue)|eRhnI>$S)+M&8%_Fh1vN7I1w9 zs;>B3gZ};h53=(Etn4VxFD*(=g{Mexf=w+>PAmZL8*F?7x<nN;?BELS0v&)fc30{! z31sX55gpi5-&%c8#(9~>2pOOGf}VzYSz7;s?y7zfBk})#XDjFgoX$hNdl~+NwEfxX zz`(%pc{OOoD`@zj^J9Z01AhzXL?eh2{%wrMSS%Ppb$99Km+!$Rw=g&C(Ew>@;BN(; zl*Ye}x%mfAiF3VN^AFCFOwb8s93`4BL8q)X|KKXI0Pnp9%@_SpD#@<rZ2rMpV)DAE z^Bd@VGw;`#$CzTAjxi;@1hpX{?6jAyp!0VioV?f7(D;Gyi(Y4=@Jn7tqwr&1d!z7` zURy)?UCb;GY~so^K<0EYA9%sWV$i|l1Y$9(utV7(#%m5pe0DK+FgZb@lH>pX|HqgZ zy1}8>yY$At|Np@qeQ*>eXOyPH%Rg-OakU<kK*lxfvG-mV6b-L!LH)7M(7l`RYHZzd zXpvX?y!pr<^oR`z4twFUjDZ1BGeez|pId;}JzV-s0vS)SyC)vv9tUXqzzm~x5X1KG zH76uLF*A5uelCK$mI3bCr)W+pF38C&VSrW{NLK+OmC4XKkK?XiK!f|BrH7CvGq_xy z3v%!;P`NAt+WA)snV$y<f@OYV_sSIT$n8tessONiLDgG5=xpr&|Nqy6HzM+Y&v$!~ zz7#ZZ4cczodZ47TyOsy73taIZtiL<<hc>vB?saAic)=$MDwsj{%7703348Hq320=( zm;pRm@FNU-?5ff^(Ei6i|6M_Q2N{2Kx^jT54dn?6c=34&)J}!}z5*pItp`dMKt{^I zhlUlt1I^Zh?g_qs7HkCA)GytkUwT=lf)>mNyyz1F^<cVvzZ_@j28}CvcKUwl4*dh_ zY+ou72aS(+Gj;oZ>162!%LIWI`@aQ`kN*jHA$l6LE*7=|7&hh!Yr~eP8s2WUgKl#* znfJn36g)EQ+-x(Cq4YIq(c23HQRtF3$l6}$7)mWi>;Doz!`sdF3?&>BoSSXtGnD=W zjpMM)g*f`AFeuOrL3i7N)PNUBo6LXF^!ES%PL_F~CN@~li{mWwKz{1{@R|v+KDW4} zC_b^MD6tZ?1kK9N%qwGnoqYhQ-+5r|;TMKX0vW$RL@X=Tc2>R?DF3}Y25Ohpa)6IZ z=U_Er5@-hP(gw}5ch_>DCI^pB*FW8MNMfhHUxKVy04@Af?6#SQBzNNbg>K(Jy)KOZ z84p3i?>=}8<$@4m4CTLB_=`7-85kgj98mx*n=CN{wQoTung@ixIKLQF4E*?SGB5na zVK7?(V%FW)pvjF4kb7U)y#bksXbwU17N|S|=O*^!u3(R0_@}qve|IepXeR+E9ih6t zH{gG7tjKFf{{&6Sh3!A%A<zg<^`F-N;Gv;jC&qvm-vmKX3_9oH$dCV}JYg>c7lX!! zM7pcN<3s;TK-blS4r&a0@qH24U*Tad-hx<%Szu~P@4OZS`Tq;VYss%cMk2}-P}0DH zVPhm9YeB<t4GS3{mmPwSsRXYV?Dpm0-zV65sYLWO?}W|^2OqF%Uf|y+$an}`zrE|c z0A26i{06qJFiYfxis1kMyFjIq<*iya#!HsBYJMFDTYuaEl&Tpz12{SZ1UdtFz{?Jk zGfMNaQB!DUUV1!OI6kc?6?70!Nl|8AI%se27B!GT<m~T7&$FeVV<a;AOqc{R=9n-E zWL0Hs0I^Si*sz6@&FcUEzxDzrFU{^ame$+ge$ap87fFKP3=Ud1d%N@vXq2gp<;BNi zU_nqp0KUr9?8WK~&`><6GZOYfUl3jZfNLFuA2ahn=Ly5|BPjiKgWKC^$*1B!tYZ## zbb~3AKnCcnQ7rC0tp>`YuTwgIFuQR$SiAAmnRmwt^tv;49<n@K%f@)y@^Z~DNa-2; zqKqFju3g6RV(AIc_3JF1aXiP}I6%P+I%?XDr8|tHTY~X2s33Ob2?%~swSa-4+l|A4 z@kgf{2Vx`}tEb|@*K45Gt+hPe;Ne&Bc|KsTgqkr4WPpxU#o`qPh*ttZ<#V$g1E}xu zBZC7JQyL~r0xv4l{{8P{1FbkY@+17e*^7he|G;O0fo|}T2JK$}Wt<m_|AC5rP}LLs z-|R(V#=rjvcf-;JIQ@1zvoO2zSUYpnX!Zs$f@cRTFVylv+e3^8EHBjj>U8D+4cPuS ze({Iz|Nl;Aa3Y2dtmLMG7RQ$6LC>K=>`?@5sex@q0TtpI9H4PFZ$40dM(jrxc+Mmc zun=ioyTo(QDOS>1Oc@L;3=CO38NudE0xvrF|NmbMk^=kt%YRc4`^7s@IRYBAYliM^ z0!=N#>;&&m2HSa^7h)%9e=@{A$jW{2&LD8KL)Y-b*1?0y)aD;d#jM~3y8*#3&Vp{Y zVLk>L=mYy5(x(>)5AFt6_N})|#L!z_4zI!cZ9pr21717?#Rlkf;nv$FT%bw2@E3k8 zuz3QEIgwbN*4wq96DPu7O!@!+|7*~u!QdBjL1utYRQO-Q4T{+Cuop`~h9LS5;4%ZV zTmhFT(6Sy>e}m8c0k@ByS}+M@d;t-l<&Rj>Vu>;+TfJNYYHNejBj`LC&~U+j;}-$E z|G`Id3%q9PHipH39%yvjRskG|;N9`y7zpKo!~p9KNcbb-`^b-AXk^+7LCO+nRD#wU z!lF_Vw9Er+5D(NK`2J#ud64*omj2N48GK)@FHd&>i*+DN37g@8*HWF|x+S_fTQ8Mx zcQIQrmcDUz^eX)dPV&)^HVRmeM7IZv;U&oVMey=pnDLNv=Lyf&1Ep^|FF@|I1&4Ng zVlimoo1v&IF$W&<C}9oS6L}jlzyS{KKr1GJ4A3qSEWypH1PbogZmr+IQzTgo!7qY9 zt&St0sWchTqAT#}T8SVdz~+R5_B3IZ;(I|u*RTzj@M5Z@s1!8AlnN_%MS?+lvSN8U zPqdyya^N43>8aQaPEiCqP^3G6#qw4eQ|GPD0G4isV=PPzohQIK18y0lh>y=n1rN2r zgQg(ASi#0t0aAGA+JU6Obuy$5;OVXv=>{iHGtdwjIJ`2gnFKP*usi3f0?0WpuOrr1 z)(S8{ZUn9cX#?vm$F6s#!vFu^^S!K#S?a*+pgQ4NDzIxwQ~3Y?byn;DT9NKr0W5V@ zEpvA<Xs=Ir@Qc~tvo!^*i&<(xqkY}ZESetzIzKQo2QdB!c(HK?I6r`H+y&iQ0v3NU zX9fd9=P%}9md;?7Ze~!Jf;YWDhOyHiAqEdecsM5(6r|>*!0Q`GneNKddb`vZ6odzD zm;^E|f(X!f5SAo2Ngfo0ubm+M+13LkyjlMPvi=9ZNd5Q!KV-KBI4HqpOvfHBe)6EM z0&4t2+y#z*)cOYOHt>`NBzkR`1Tq$4H}{(y*lo702TJ(<mkNNLbq;hW5IDNP&dLO7 zUxZ!zb~&8RN`~bDj_y#7E?1t`OQ3enAO3v@0<!)Gy_gBgYI>mYh$DY8z(L4h$0U%k z8oNFIU}u8wLxhwG1x2agNP(6ENO7VMkCRl8fm^T}_)iw>Z@bQKu=rpIesT2=N_>Fz zgVupyiPL?um>!3^2^=Aq?n1=JPmsIzV|P~?#9fH^U<iI;hw3b__5;|ptK)H2GIV_- zmiS-@dI37&^EFC*Ot1%S>%?x)ei=~kA;kxzEMkC`J<zNKDSS}VW++d$E2td>4i0d< ze+Aid8M{5<V0&JNw;lks(f(wB6C_vz=q%&cYQ1F)*1;_GJX!w(f`VU&{)WXLs{@lj z23Q^FOl~ak_fHx#{vdvchlLZk4~sO0-ub)re<`?q3C>kJK~_A(?(7B9px}931**?c z%RaEKN7!{`N&o-<+6A<}nKAgq-ml=gy7e2l!~+#_qM(&}h(gXG;KkX=3=G}OU7`Ow zMA*86S)Aad8lwLRFT_%d5{pwAa#HgkS8#$N3VatQh@q_j631O<aCC=)rcpaT!}{~! z0GQ^;B#`kJyI1B*fdb&=HwMrms#-lzmRt%_4%YJzyPj;R|Np`FBD7wD=vW8W@gKVm zOOTEU3=E(&fK<PLEnxtyv&F2o*`)sef1S|FB5v&rt&+CGZDGW&<+9}e|F3l+T53VF z6y4q|ng=^i1TYKtvWN!+y>Oevz|bAcqWKFE{_qAPJp92EqKJC9mZS4WcR5Sz|59*y z1rAU#XC{FR5$ulelLQ6mYk5%ns`VRa>kMR;Qfo47meQ~EH7MF4bs5~+QnWEhguUPl z2)4HuWUnT6d#_1=?N#iSX#G|q2};l4i7e)T7b_-VwHexO4}-MZfBY{M_+QHNLi!G9 z>;SZpI{3wQ@J0gA`mL}R`AqQsD>!T*ZD-JVhev*Znr7R-{r}(V3ffE(5ElGmA!tht zWF0!ReC2>jLU(F5fS3M&dYQO!dVEO+c!4N*cNwfqY_>JHzzjRvcZCa+zzYe<fBzSQ z1Q&t`@VEtNJmQ4`FLZ=IqsNCyU}4U4CV~GK7SDJNTGad_IACE3SO79o2)gWeVGmef zp#zv&JmEQ$0E|85Ig<dmN{6%zAnUi&<8w<(QY+#Mit<ZRlS|@@OA<>mlc9pp^Taaq z^FVvdkYzx34M8+!<`(2Iq(eN3Wq}jH^-U<}_d>%NT)#p)Am9zURn4{_pFj`P^KfMn z$S432pd<S;`arA|uAo&q|4m&UF$uir7Xy`M3Q!YDK!er)O+f}A^-HZ8N;#n+(+NN4 z2{g<BRSD^VbVItvV6P&=pePj<LOJ=#*?6}o67)av`E9VeO9hmiTcP{+^W2yOGD<)M zXfZF;w{A$QyB3Q6|NlA@+P{bSITADi>-r-AnjS#MmAn41c9tk*{qHRB+8U+|bk{4i zQ&z&->&)>Qw2UtJMHy)O&JlP&zT5Rjr?bRyX93WFSa<9VNKFh*D2SjaDXIjA1~d*~ zegK!oU_aEmGYMqu1ufo!#2B(4?uvjjelh&~jugD^cZ0bfX?y_L{oBB+R0RSSdVsS5 zXuqxDf!Cs-{qD$K0rwPf`KL4w>>XH~fZ8#wmmuXQ*gO6nOad8Kv3rM4<p2NIe&F&8 z+WU2Et`cA@WBu<X@Y-yl!v$u6PA3VNCr~572@(lGFFt~IF$n}Lgd|0*fevzFd>ZJs zRhT=$d8hR@<cw;tL%)C=`W(AMQ-%Nkf9(!)h+T;WqPLG6o@p?rAocUVAQd;Dvxl4^ zh0AMRl%?39ssSybKmr!xYDoDl0@|<BdZ`qAA1c_*D?FJ5GC=h?mh`?+2%J`;!Sgdv zr^EJByLCqiz=HR<6XeW6Xbfl~d5yEziQ}~ZIDU?N33|~EIe!-x($G_>;BEsA3H^An zjGciYAozth=z#s$7bg!xiaflTf5L<baQ_z+WtJtDq{f3v&b0g@Xte-YM+8b+;4Slz z+21BFCV`9<AObWyizNis3xY!cv|p>+L!|X&$){#3hLX44OxBJp<<Gi>x*5A&F8n~O zH2|jxXx(_94eSjUm^V;j3zLK4{^Hb<cy#xJ`}(z@y8&BoLptkVFJyQ#31pan8dI1V z{*A!@|1Woe98oON`mGeStuu=wi!qDgMb?qO|2vO$7K?yJ2JIP2y`WJHEyh8$7*a8A z&rr(ypLGtXngbD?>{wJo@(-v8WVd!>DdPnVeTKc@JMs5FNKE|TBj#?lULS!U&6O++ zC34-2-GMCKu>zfv-LWE_ku1$ez6AUSjUIu|WAAnq=wyUQz-IU%=>!}GpfgrWLOYK) z*NZTen01$n7~ZyyV=0#FX6t3S0Xh%21U#y4(Cxqi-Z$fH9mi7i2;2q_d!cv~?4ag) z4u(=eNFsIzjkAWo*#7h1f0%7(`3rn-GPs4IP+VDDlA5cKS*(zkU!qW%3c5);vm`Sy zC$lOwMGxLT2DOeke35F)M1Igo1E4MK4Di-UGI+5%s8vu=2}z@%wo)kvxKR#10X@(c zH0lK+IuJ38TnTgWqg2A6U6#TBO+hUec%wz&HCv}FNCXyX8HhYu3O?^>0ceQ%1!UVN zWc+mn`uMU6XlSwoW0(@Ga~)JC>kf!EcuD|IcL;R5@%+C44p>-rjt4E&Mh^yjdAy(~ zGruUaq!QH6agPu20PpG#2=ep~@(hWL_wf(Mr+LDJ32^;3;Cmg>^oItyyZVK|$AaK} zL>bV6R)rV!-~RpYJPe&h2TcM)+xLNfOad9PAOdtD8I}ShkN5xom!PZkCN%$JE(2H5 zCqT-<dccD(m^s!8qz81DTDPl6r!z;lt3;<WOQ&&XH4mipKkh67Y6ioi5_^Qmegh>6 z(21Oo2!YopplukS3MCA*Q3$k2>wl?0a7K<Vlfc3Xa2*b6;zCPu>_#7gbYWj(#&zu< zhEn#<8<73Wpb5%9|4S8K9CHFqY<&rS5%~?Y7Xmgf4$lIhDP{&pA+Ku(;v^>Jq+-OT zVtPCz-$4uX_|(Eu(4y(0)WjTJI}|A$g{st|e5g9qeZ7!;1zs%)E;%Cum;^FFgD$Ua zn(H_iN<kxz8R;NFu*^Zw(FRK3`mftr!kQJ-o`6*N9dI>=5V;b$p;f~D|Nm<>P~*y3 zB4A+yIB20$WsoAr8C2wiy>R&oEpkB34oE1(gNlAwdWEM+aNW}F%hP$Q^%7+D2G|GL zflLA!*Fo+y>vn=U5$r**6T#A;TO41DH~(ZV0}ua!Qy^I47IwGq;QIgnwNxiJEQ#?q zANdj3>m(7dumkK5NaqH6=Cug?Y)w#RffhUkV0Fz$1Ue7D=7xkHxcq6oU0MRkQaYc( zS;`qUiv()%9tT}%$8a2SWYuwJaH|5A+K&jpT%!vMR7ejDRC__wD`*orYS9NP_n<8e zP%93pcTpY>5{L(N8&iwGY-qm`T*rV%)4^HxY!H(`#w8HJ3+hf|X4!Vm|Nmctw&_CM z$ln5*p)4szl(NW;yv9%9ya}1Sd+iDBB^C>SPi*E|7y=HvPG`7>b()X-*q;FEi9)7_ zkj*lMn)TnTn;l%!HCM|plx}LSR$wSy^WPaq(-+?V`1TR%6i9*H3+jb~X4UYtPl`}O z4b~e$>gOANYrPF=zk>sgBZNsHLl%3$`Eh_7SaqG>pdklqU*=#BIyabm;pG|FzkFc- za{PCe*au2SP_s%<+xu`&Gr|mkcp5(Wh3RP|5qSFy&Hs=_HZ<LU^C+x83GsX=lR$<Z zcFza0|NsAT1!x8abRHZe4fD5v?wrTfJ#dFy>Iz9Y;OPGEEdla-iFk9h2<V&!h$$tZ zpnA7h<h3X$O_fN(0>ln1EU+*FoWziF4vvtz{vIWHfb%^@K$I6{mcX(Pv`>mH{|JUL z31nDf4+(d+|Nmc}1I^b#+|S=~kb!{#S135bTm?@A|D6?Hd-N8IfC8Zuk%Qo8JmSki zpWi|Jh>?RNKsm@;;kYws<tPIz2$2rpE#U@r<b@#l7qo-(#d4@w(4HhLJAwK?xPlE= z{xJYGAHhk;Bb-Sf!xwwN@v(yP4|qi<)Pb-JREj+VvBF#k4?A!M5^AoNU?}B*`V}P; zfldm5ja+bnJS+$<&%yrP4&I~*?>XbkNx1w^ApdwoFbQPDVfVZs%m4o`ccAAV(BKWO zl*0~lFWmRXon^p{scHp=5*bkPDG`GPWJw}8vxq>?>qpH<u3$MV8A%5z*m*#qg>+v+ z@Qe00khBI(AK3E~c+ml*uY*~hBt|j`WMpFx4@Tzy|6e=7#;2+U7!VmBJl<9;urLFj z@j=A}+^gWuQn3hB8tg1ks37ABaZCc>G9H?@!2uxgLh&THFV*=C6h8b@4)AaL0hKv@ z5!Af|l`+*S45eJn)fx<?wXNUkDxvb1&qC$9ofWK|W$NUbt7RY?v%~%uOT1Wf>hFKh zWE#V3Q%HIPnZgD(1+;e-q(l>J_mBU@B4LnoWkG|_Ac-DGj}vN<6N*DDz(%mNeyf*( zMKomC@(!qL8-oZR6^2qCuv(GUZ}n`i`C7l#Fd6;_t>hB~ZKAK{`R}dJ404oZbF~gb zsWGS+2DKl*fLzcAcEOk67rEf0qZD2%bvrA3zhQX{tRnbD5f1~yYtTX!km5wJVsI3h z><zfUEb!v=ad4=@90(eGLpfs?yguXvsLN*h3Y?-|v+lS6>aRh<L15v5=S%|DtVf<R z3Do$am;$Qupt%`zzW0|5uqp3fVlxF4eozPPJO1}S_*U%ytRSOdMw){T|3x+uyxs(C z<Q%Ax@bxCh?n5&9%;~?7MOZL1!RPUU@+Zuh;QlGtOb@7;;PpWe^C0K({^vz@73gqs zloNeH5e)Gt8`K203DEF@=tpwTm1E$bZ~P5P@cgZ!f1xuOpjHt${e%04pu=B(fU-w- z9Z$CmIMTY^6s+B3YPg!~Wd8HFf^KX87m*BL^S%VX*nJLUutMvBS`o;E$*JRi{~ve# z0dBAy0mXjsi*T@F0q`|EcJS`zA5fny{C^oo7Q_ECmaq(-C?<gyA>c-g0(gThsNMU& z^bcr8CerlZfAD^*|85Gfo))xMf!gCP$j{G-&r2<bO(}r*Sf&-=Eg+J{*WtPl48_!n z<ebvt%(7I_jfT0270~_}cn^`TAp^3AovnhdA!2Z#xU`@kzo;ZNML|OoGDZT91JK$) z3GnJ$aChf$ER#USc@S}nfq~(5RCBEir~v%`AJSR!h=WPr21#2t|Nmbr4XR@^;1YL0 z5=yZ06VehX^#!S^f~&a;8s2>fvV|iKX=<SDFQ{w#5_EeoOh2^$tMcNQF{uA50G<N{ z^?eLp7(4^@eLyGkGk3cRbUL#@ditHkJl(D`oz4Q?t_q#bA}>4-{QckQEYVplbKF@0 zl-Q0ttH4r=?G4aqOsNiZW@Rym3+*{929;!n-(GNmw6kml6)0|?(T8`SBD%y2l-7$S zUSu2wB}V~B;ajWOTlxo{-at#H1R(?apyb8hY5*$mz@>D}EvWXjhyQ}tMM8FmfjZ%c z_yQ%R_=3{n3<i+6u3b@SUS4KiI<$=pAK$uN3J!nO1SWwDEf66H>cu+3!w+1L9y|ng zCb*!rhuUojaXMHG+@ZAv=>{7i0qW3VM$hx#|Ng&rXs#1rC<UE-04j8KPJ<0@Jpeii z4K$w_{6h8*xD*5(fm_N0QloJMqz3Gcy@&onMh20(>0p0?`szq&7h~K4mID+aVFA*k zM<6Re>V8NX2aWZ1{)3%B1`aEsL?(d@ZBSSRHP@*yl!6uzWPpPJETaRGv6ukzY>8C! z@Ba{a50ECXJm?DM*Af$&fB&xq2Oc>6gJr<i+F=IXs$c*9zpes>eVN1y!-IeScgD$p zs`YvSh7uX=IEB~hp!O{|)c$}DR=s8bPVcX6pjr-{gqHBFx9c=|YyUvn%ZSt#9`<4} zWX%^SwUuu3ZoOUq5USVhASl=&i3~nq1PVj&@IG?5gUe=6+5&gm!6gDXw7QZ&t!Ge} zn1T{a3HVffQ2Iac_kVXWc*vqy;>A5sUiko7v;_`Iur|;&of((`GV>=Wvx6J==&1oT z>5x~N3oF}TW5IBDfybA??ovo*6377Ewei{t-oAl5?(}|;<6zAhM|8)5^(J6X>VJOV zbX;j3^c3FI6lh-L03W3eDImeF+6!`3At<yYnk!Vm_r&~xq%E*a5q3K}z;=QzWc>2K zK;nhy@xT9D57aUl9zYKsNYfUUB~a+h+}zZZOwhqCH8r5)UvqTrkfIl~dd~n<ail}e zRgNz#O)X6YEy+qR$xzUM<Snq6Cg|ut1E~MNZPilHA{WToNbn7<V2|3TFbQNdfIJ!k zNspk!Q3{p^$3IxU5hQN{k#GH0>I3d7xq*^qvBV2~NL}4}pai^sKLcbSSQluwD3(-{ z{Qckmm!R|BA?86%dARrQ|KrXopwhjwSfjIA2RypW-vV0x0&5Wkfz+CUOL$Pb=>LV+ zw&496pdw0jAE=0e4;4v*vLRUMe^XF3un;tC1Rf{=nNck9qHr%n{Sk1frhe@2|IS0; zrfKsL0n0<BD`9qmnoR$}20{BOpd1g;^yw&?CJk`Y7j*9f$VHREHhc+wQ3R?^L8r_I zzi5UWlyux#2jo$xQ?mAg@-}2)3n)vYRUn|W0y^z0wJ0w!hd~jf0#TJfct|-766@%5 zv*7qlO9OS8Km=%q?`u0~_*bhyPU^~N2T5gvi1ncOmV?PFFo15<`;##ZBn6h=fIazl ze*O3VHE7X1$onn3K>_?F_(k^pfB(TfDTsNfrB``kc4}!sJm_Z2;*$J=_{5wX224LG z+A0{p&bP#t@Z%w!XHdfkq8X6`bRhyrA%t8Of%jB^%SdqGc%(B4Wb6TXJ_S^xfERQ^ zf(0zI7bN4=T&DmXAI}0Q2g`s43SJvP%C93|{+CI-xC*J8I}dfcf%-d#AVJsx*8v)9 z$C5eRzWn?DTIIN#2B>`ln#)rt2F+t-F@nroxCa!Z0?yWP3PrD=#V$(O0pg&BFRWHB z%_}WVO@SB3AcZ(^eojh!a!!76YCLF3SA1S+E~v~w6~S4#Paxv_c5Lf!z;%2q2dFLv zuNMQ?#VazH1Ts!xPik_X|NVcd3c7z9mQgY0Xuv%sxjW#d46Iv-n8)pu1$7FoWkLNV z{$9{nN%Qaj{4Jmjf!(GcLCt%h-O7Co3=Ey6e+>V(ek<_>$1k*(1Mbu4>;y%~m*5xA z4}ut=J`LzLjSNtiDfq>wU4Q@kL5hpu7p-8W0`ATKnZcI@?655TQ#u#arhWnPCfKj9 z;C|J}M4B!&`UGl6D7?)1|NlRHd>E9TzQB5hh;FdnZB+k)`lO&4M@Y*7+%`bWQ()|` z0SDRZTM#2)_x*wUmxzGt1_vCrP)GDnS3r$G^iQFMCv^G&%^ldIE*WYFv`3HZ0#N+G zT!1vt1i9lC><KlfW?26gtNkzDfHuT{t{}={cu@jw=!43uzyBfS6{v{D#4xuX`I5!+ zBLC*U|DA^$yg3+O7-TarbTUIdSdy8Gv;jFi9?Xvi9qm(;U&)XT=HlpNlGMM1mGjW{ z3wU>)ZVqUCIfqFgD=5Po#LfV*VY~C5zW?|CH796^!HY{b|NRFyOhAqWt-~uSft8K0 z@iv5kH$aBOU@>qC$Utsz5a?!sf&g6B!@LYC)S+z<n3>?2B(Nj(a+w6Oa<Q1{05TIg zp4^bk@$bduOa=x}_YkxU24-|oYH?}_n%M~Vc7n{V!(#T6cmMvsW`EHLG7+-Y4rX9# zPGUiEY6|qUS#Zod^gDp#TOka*ucwr!6?$F**!{P1nFKN>gF3>P;avOfALwu}(A~$K zhrc;<FqUw<;04*~%+l@5V$EF4)h!G<@#Xu4*PPwVpyjoPIxiSr>U90l8T#jb?vFdB zA99&M2TvD3lv{LjYaaZ5ao1(vB!SKg-ya@)#RlD3)XUOz@BuSu#V%;0>4{#J#)A)- zJK0{FL+aaZX7GAm;x&RtOQ7pPIl6s0nvZ;eXg=}%5$M!p(0Mi)prgUSA%sD=`(!35 zxQ7&_ruyZlq$(gb_rcOCp7Q4bXe2ND8fy9T0yLh7$o<W>UqC(n67g<X5To0fV=;(+ zZ3pWw+kODamr7?bLiYcOWN74r_Wxb~_kS@+3Q{8fHwCd@yaQ)okPu{;19S{EyjTS_ zWir5Sx_%YnCeZ#rh<hLfD`dMLZ0{dr4i_|>;S61(04)x{X$YGBAro8RrXR<P$KcCb zzWgs{d2s{GgfAh*C=<c%@Q1pCbqB;1kY;f65rKuEFz9sV=mZA}tZW30m%{1@$o-$7 z0Oo=k0=xec9KI0$fb(v4Y9;8p@q)ynRPgE)Q2h@+O*uWjq$o8NG*}j23R%4a;)8Y= zgI6j+*7uTCenG>g1bl89&kKnw|NeI#Iu6?T$j}+Z0$T3j#L;;HzJKFY0h2%mb0L#J z#!^u369KU_3Xz7P{=Wis{=mKghdpTXDd?naju*Y)CDb5yqk9WhIwR64q^|@nug-$3 zxCJ71W4E#Q)xZC*#lZW0zWg_S!3AE=3L5vm0&V?50}rwZ16IzeK-b-Z2Oz+9I217n zWSqushbG7lWyF91XgCzI$nJkJ$NyrM|HdzVF+qx8@QPWGFXM|+bMwnm(aK4LeH%gc zfkpx|Fhg<Y%YXl03xU?2!;JsT3^D!%xZVIIhMfHT?9u|5e<1Zx30O}7$NvJB{{}C- z*<g3>fITQs%p{QU61xXIUV@?xZgxpgBJ>zCr1S+1N0^+3Cg>1kh&qLm%7Rn{_jn)I zFjt>={~#CFAcf50JoOR<(3<g7&<TV{>(WHPMS3hxcc?(OuSn|w$a)sA8*@Nz{E6L- zOJ4l@|2n?ef}tb|bab3RkzDgHrV`EOU(6*YuiZiY(LaH~{|#PzVP#-=ZI0jvfPz6C z!QTMli-Y+Y9mPxnSpv|t<jyZpQ%rGcVo`DiWV{y=zL1@kV3!t^FbQOUZw|qXzF*Hl zq4`>_*@B^z6SNu`+<pZg&I{VK@ZaFY6gE&f4h_+a)XemZ5)^yD`~Sf9+ydF71!|vS z+A|4aj{>B=0olfFc;K}ltUNvfIv2JH*`~a_{FKyU)HH+SCznztfecIRcBw(^5&_x5 zYIxu^H|YGl{{}BW_j^L?Ebv$d=ng-L*4w3u-L5jn89<#W@V@p?k)RjlKmY%KsmRCx zt>;0zj$8!-{uhI;Itc0x<@tXJH1u$wR1B;YRKImr3%q;>+rQj;pf(3|dsm5Dw=+w( z0ceMRs0`>z50QZGP=O%u>Bhw@FA718b!X6l@74zVEmJ{L`W6iQEj^$kEV;q+)X?zh z4wX611b3jTNWhD0KR|brv;60N9S1re>_A;qb2SHOb*D22F8erMFoNylXg;D~ZBU{K zN}ekJnO`e_?mt5}zYJ_X$A4zfV$@I>&`Mt6Zf1w(A53MSnYiE=pn;pt!-(DfNaL`e za20924N6ZhgF$COeM5vF=#DaI;PJPD)~R>i2RXcywL6;SwPQEb_25FQnBzqYNVhXb zcj%vPXO>PU7BGXO(+MoX47w2GM;PcL1kjo-(23v#YDUv@kQy3C&FIe232rw)YexQ- zDWDiR0<Y@9^L5}V_RU#{LGbxHNKFf=A73X-XgyG?1CIYtaQugZcHe@|ng-S3S3vy< zP^5!q4jzMsee@=@9;nj>1w)A{I0TT?bG%prRu8J2!h&CbPQ8MJI;69PQV%s-|F2c; zc4ld|V5kF~#uD(N1ymG+?1Idgodlh9r~#^ftQqT+x}7<iEf{JcD%XKkg02<-cUrwc z+{4h833QzbXk4}wv<(h?Y=>O88%wuD^N}Ax0Wa=?(v=%%OLB173(!Ke*Q}jJ-EJJv z;RmRG(0cObDi($k{%$W&b#2L5!rpAjP|Eb5so9FLp1bqHYXN9_2OmtM46cPC=?bEk z1FV;$+m#2Qm#f+8e+^6L1#o{Q=*7E#pk>40`W&9eA$RJPSb_FI|1ahVL(0Ew-Od89 zl|k{v1CB2-P%^v>iVq%ee6V##bG$x00devV)Gwg0h~)r{=rDlwfzK)^W_fWRv^%SS z5!6-$Wk<+T0ge|Z{{R2acnq=P1J!*z-KC)2U19%=1^yTF{J#z<S`5JkgT|f0!a?Z< zWClb=9PBjEd=N;6<HfrF|NplhDB%Kc9C^*!TgHIlUU*o5?W$&B01sP%w6nap4Q^Bl zv>pK6bMXhw6%f1Rn~(efDTdnxJ>Q!X8ee4Erw8^3%!?c^4#Hgm7K4RH>jCg~D^{@o zz-bCTzl`Fq*4w4ruZ??4)EGdqssoxhMuca{>sn4w<bv;)XgyHJ+#Su)dK-M))is3k zVfhJaZtLw53&U@Q|G`lK%0r-t0EJg4=!6Wg>tRuR6qE;!cmA;aP|MW$!2$WSC~%qq zZwBlR<^Wx5>&yXauyS`ZwH~M!X+2rT?D3kV*M;L>CzEF<_iMS%Z<Yt^d3p=~z2<_3 zZ*Rf>P9sq7&7+gK^FnkS^y~?!nJnE-9H3RtQ5@Y6GZidP)baEdFe3C9GC}k^bTYpd z?)=vL^M5_F1K3igPA11rZkVCa^M9bVJ*WzfPtHh9&bCs3jmW8{C}@E0h|uJM)y;^o zsxSnd)B#Feu&`PWD!f1^l7PbsBFgb%CP)+%f}I~Ue^@h@NP~Jh#sL{8YM2DF9H32{ zg!|wTEpX8DffN+8yy$@>5U^pOYUqD4$BPP3mV++E1XaW!48F5FmZS0a|NjgO<rbYc z4!+<x_<(8G4+Um{ZXN;tZ6~dH1WGwOPrOzHw|Bq_I&blByVT9n3R1+skA>+q<Xo2M zlZP2tpRn#{U|_usCNF}?tE@X27+7Di?qOhHeF-LCfXU}z@)?+X0wy1W$%kO_0hqi8 zChvgB+hFn*n7j!lZ-B{bVDc)MyaFaKgUL%^@*<eL03~-YFtA==-41aH>mew85KKdO zAoeG)ikqxk7#QYmVPKf4!N4%%4+F!D_Y4dZ{xUF3uwY>5`oX}^Cd9x{zn6ibW*-B? z^e_g7%6<lh%2Wo1$~XpwN*e}-vQrEU#aavuf%g~~(n=T@BBB@=LJu%71UfJ<#9d}! z=<H@-nC8pC(BZ?t&~MGakhX<^Ay<xpA-a`;q2?L`L(*jihPY)63_<J+3_(^549#W? z41Na~7`h`E7z$=GFcckNV5phIz)-Egz)*FXfuZpQ14Hg<28Q(M3=H$;Gce2vXJDAN zn1P}77Xw4d3<ie63k(b)vJ4D)yBHXP?HL%RJz`*(c!q(Y;~@h>$9V>Z`bq|d(nkyo zC2R}~IZqiFGFC7!r28>2qzN-H#H2DXgzz&k1ZgrbOlxCc$Pi~>NOWOfi0@`#=+|Ok z$bH4Y5G%>R5TMP#Fs*`tAxV#cAuyMLVMZJSL#+S<Lq#?NLun)fLkTAXL*5()hFnJm zhV;)24C&Pj3_+a?4Ab-&7}7cz80PmfFifanU}*Wnz)<GIz)*OOfgyD!14E2G14HyX z28MuJ3=Dp43=9bm85pMRU|^WIg@K`R9Rq`ZHv_{A2?mDg9t;fAzA-RNGGSn7aARPo zpT)pXlF7hOyorG!L56`Lb{7Lf*iQxqzb6a~#ia}kHFgXP+3Oe>lB*dQ;=eL5#GPbd z=s3i{P;i2QA!IKDL(pOdh9GeUhRI$G3=@<Y7+T&jF!ZZ2Ff`;dFw}lwV5mIBz);f3 zz)<MPz>u%Zz>qSFfgy>3fgy1M14CR114Dlj14DK>14G&|28N*73=H$mF)+-V&cHA$ zi-BS4S_XznEe3}Ce+&$%M;RF6-Y_sk7Bet}I598;ePv*nc%Ffw>k<P)Q$7Pj&2t8Z zj7A2Az>^FNftd^pe(M+*N>dpak{2*AG(BZtNczXXkki4y(7%C!A$u1CL)R(>h89l- z2GCh65pfI*!G{?bYLyrmQY#o3a?UU?`0+9@#IIyv@ZZnCQ1P3AAy}M&p|pU3p}3ua zAwh_NA^JH3gP$b>L)SkBhNSZh4BZV34AV*(7@9vaFx2j2V5pK|U<f?Jzz}$cfuW(B zfg$J;1H-i63=DPV3=FmU3=H}F3=Fxq7#OlZX(x$+A>sxD!?f=V3_XV!7%EONFcc** zFf`OLFw`V4FvPPkFhtyEVCcHWz%Z|#fnhQW14Hvk28P-N3=Ea^3=9=L3=DIBF)+-| zXJD9a#K6$|o`In)hJm4tje!9)*IM?RfuTr%fg$TM14GIY28N(}3=DzW85sQA7#Jp; zV_+!y!@!W6#lVm*&cG0Nih-d+o`Iq91_MLVNd|__6b6RYvkVORuNfF(0~i?Q$uTgr z=`t`BNi#5HvoJ6OmohN;H8C*E{K&vCF^hqr#g>7g_#Oj8!A%B+TxkY|EG7nq3H=NV z9X}Wt+IKN9wAnK-)VDG)lw~q7Bz|LHi1c7!2yJIzn0S$aAu^DGVg4KjhTx|R41Puo z40#tB7<x`HF!Y^bU`YGIz|iBtz+mv#U?u~D!6z{J5lnsnlkdUgGBA1DU={;|!EG@6 z2AF*V%)Sa{Uj?%-f!UY9?DJsuc`*9~m^=n1kATU8U~)g0+zTdmgUOv>ayyvZ3MMy$ z$&FxgJ(yezCRc;WxnR-_Ojd(!tOm0y!0ZYzyA;eW1+$C5>>@BbAI#1NvopYC8kkH0 zlZjw59!$o9$!IVc2`0nAWGI*n29tqc(jQFvf=O>M$;rTAz`?+vw3XR{fk9~tnA{8| zH-X7XU~(dutOb)bU~)B>TnQ#ufXPK*vK>sefyrht*#su5!DJPfEC-WiV6qrY7J<oB zFqr}(8SKEM4Tx0o1(S&&lED^4DtUlOS1{=eCLt<S!E9wP$qgnsz$7z>RJ;TxuYk!5 zU~&qW1p85O0*KAv&A`CCl7T^inSlXxml4Aj5TDr<OfoPqFwbWOktdm*z+xwvofsIH zPckz?c_4KsnHfMlh6Dx%h81Ad3z<b27?_uW*-M#Oz-%@K2Iiy89AN!N!Q?@(s)NkJ zP#KUtN5QI(GP5x-$o~VWlK%(VxFi1$Y}QOD2{LgeNDcE&sEIp4YQa2^DLcWY>;$Qh z-w%?J-w!rrKUn{CkZYNzgV|HT<aVg<wu96%Z-@GBJ6PRzsP9&Q<#sYKFi!-FPXz0n z2)1b=$R_5EP*XO7Rc?fuvJtF$Bg7QujbQZ~!Rl8si$Ha(WEO_AM4<XWVvtY<sRM^F zGe``^5&@eF5`n}4%&e1evraO@%mRr)%mRr)OaO_&SP-*7A|SJ-!`(F<ZWc%kVgg7E z#u9=03M2+G3#1NWhA`ND+u>$yhnocwgO~skgRx*{fy5wYfz*M_0*Qd=iEy(f!p#DS zK}-ON!B{Y}Kw=QHK<Xf7K-{$vZq`P)Ss*cp2_P{T3uYEb3}O~Y9mp(@2#5xa6M)h- zDCI#?*iLZT*bXMQg2|0w5)_l5`~!+L2rU9im*9A11m`#rs5)UN4a!F=!8rsJb09sS zSc1?Hy&yhFFGwEb0uUcUgY=#R>s<=+EjSlK^nmyvHA}%c@F-OFC@3Vrc@d%t#0QxS zk_V{<@gX$G<fCAd=Y!H1xRekE`vk-XshQ6V@xgqs4fDZj_e0h0XNIT+@j+@qd<YFP zcRyI|OsJb?Lfr)7gWLk*Lug1yf%qW3Gr{)E1nb=i)w>g_7sLnY0r4R;L@$UB(z_F^ zcPCgcDE)#$7nGtQG$brQe2`v{JV+0S51~PBo(|RvO0OV2p!5o%A$mc4kY12HNDqh) zp+S1LgY`~@hRsxH*ns#TH6T8O2C1D2R=X9db}LjZh!0W&;zMYV+O1%<pmYy%3n(W* zXo#CYe2|+!@*q7RK7<D8oe0(oO6MRwpmYwQA$mc4kY12HNDqh)p+R~#g7h*}GK0Jr z2_`F<IT;ujBEe)Ovoe?sA}c{k7$U)BDYG<KCKO78_#g=oA4G%rAX7km5DnskyROXA zAZZ2=A2i|%k_XYHVB12$WGU2Ske&HZ^ZlVThz~LV#0SwJKFE9!A4G%rAbUW35Dnsk z%m?v7bUw2(GiXlDA4=ylGlBi=52ZnTkU1behz9XN=79Jh8pH>g1LA||e6WlC!DK$z z-Tq)Q6HI!7$xN`UCzwoy+Up9XQ=#^{LTL~mWG{#hqCtF+y&yh_2Ju1mg7_dh73_Lf zFqsOr!4*uVf^BvMlZnjAp!$o!5lSaAvw_t+LTL~mWEY4JqCtF+T_8S)2Ju05f%qUA zWF9CCLFR$zM5x;xp)`mOG6%#5(I7s^91tHwgZLnGKztCL2zId}m`nt_*bziB)-$s+ zFfddyb1^V5l!M6<X3!Sl3}!<H28Jpy83iV*K<XKyz+@FTextx-CD?>WFj)cC8v!OO zz#<V~vK*`{988vjMZ&>kIap;lm@EgCl?>rvvK*A`7{bA18CX{sm@ET_X&9I+Wo7~E z3x(39%*<fDp-{S%S(kx<ArwrOG8=%|AhMJhwE8m?OqPIUL%?JS*q0$-vIJ~f2$(DZ zyEFt$7Bee@>0l^b%*+GjL+D~=MkpUb7lTa*29w258Bll^fo%x_lSRzRp!N?#5R@(g zs}2H_MPNNaV6p&A27t)|uulWPWIi(snD&R#AU-GsfcPLfpP3mPPX16D#0RAa5FbS6 zfqm}>CiB29@&l83U>Ep-$vm*Feqb^eEaD3$bHO6MU@{l%3STgp12)YEOy+=1^8u4N zP(S)W=^U^rK43B%til^iW`jk%!DKerL~k&e$;<(!J)v|aI9@%$WCpVy0|SExn9N{S z2eUzB2H5u=U@`-2q6e7F0K3`)Os0clz#UAcfkoWFWGb^dI9Izu=~S>yu3$11>^oO5 znF<YiS11kQgTfxf2hk~DRW4vM1?)B#Fqs1OtqYh;0lUftOs0TscL9^h%<5o2J45Lt zuxckTnFLnt1SXTfs-3`OBC{$31A`-o6i^k=V_@K)z`vD&fqymsb_NFiWngk4n4AM9 zCxOXA{ssmH{>@-=6PPUIFJWNdFXS&`VBmKEn-C3F83rZ;!K4qEbOMpQH+k<fF!0{w zJ<odzLW4;V+l@Dzfq~bZ*N%aK*9}DS9OF5}bCrPsM1#p|U=k#<A1v<16UM;6eT@4$ z0|WPQ?tNf3h@1o#QR22?VBl5+lkVK%3=G`v+;(6xjDdkmo6ClQflCHVii1fpFlhlM zjX)&ldd@uz44jL=<U%lcobx&Z1LtwheGCko`kXcl44m3vQVC2df=L-LDGnyZz@#Xc zGzOCfU{V7_vRz^eVPIf82qv$BNiQ&|&KAnRz~%vEgVd<A1v4<Pc!N?Xi#C{a2b1bx z(wUi?fq_LCOge)_l)<DkD7CVH%MKP_u!t_0d<iCBfJr+rDF-Gkz@!A2v;gas0F&lm z5pghS1}4S8<V`Sn15BENasi7dm^1*32!Kfgu!sPdGy{`jV6v2%pMim;1WY=EMJzyN zIg1r2C9{Nq^%{fOreL-ySk?lpQUXkZYf}~pu(%XhB^y{JxRuNz3TBIfWSK94*vywe zYCwH(a9bVJ5(D>cLA`4R22dXuEDkO`n0JEJZU>WF!Q@6TxfE>DOfU)RLxW6N36%k{ z=Y!cZ!Q^x>ITb`QYzOy$L1pO*FyESifeF+nhS&z`$%Ax*%7IEyh%-cj$$VyZFzpYe z^T9dSA54PEXwYp8pfVan=QDFa)k5f0aOvR+CKJIr9KmD;GY`1j1Cb@npz9byz+^F) z3<i^>%!1&$5JZCGi6ImePYgw1@gOi+1QrPbllfo~e=wO37V!s@nP3r5FqsJ!@dT5p zU=dd^nF<zh1(S(j5l1kY2o`Y!lRv;=b^}a41Cz(VWFj*cn0AEHd7#*4@B@?SU>SEX znFaDQ(<BhdxE(|?<TGnPLkmLZGixv~F!+PXY_JM%FqsY}-NEEDu#RJ3G7%ahj!-%g z8v2e<x|Ep%?21q*4dR1B9K;9FAU-HHfcPL9#0SM9h!3Jm!8V41$$T*B4<<9gq$ik6 z1e1<nvXogG9Ah9dAI$a#lT~2ZC@@(Cj{hhySp^Q4C@>ibO3e(F;Fek>m@EgA;b5{9 z944V)vJ_OpFoc51QgBN!6ik+a@*_him@EZ{Pbioy1-HUN!DI>84IyB%1e_{Ez+^F4 zBp6H<gGGYDWHH$GU@%z>c4sh{ECQ<x0+U5xl|f*#2rL@}CiB5A^aqpqU|0Er$$YS@ z{J~@%*aSZ?nFlt(4@~BPP4EMgIbc~IFqs3E^#PMPU|An9nGF{429sG}*Ls0TPjEPA zg2T-dOlE@J;0Y!(!EW#blbPV~@dT3@V7(q-G97HDJD5xdo8}HC)4?XVgUNKTN_Q}s z3U;R}m`nxR=n5uN!Ma?*WGYyfE0|0L+wKY`Q^2}hz+^I*bOw{jU|r5&G8t@(Gnh;U z``sB#CW38o1e1wilO4fiBG_a{Fj)yrW6-qDz`#%nHm4M9LMb?}<b&1ZgTo;oESnFO z%?HcofyFbyYBIsHnPAyWuxu(=JQXaS3KmZVizkCaFA<zd6TxZ{!R91_RVIQ}CW2K) zg4v;9HKAbHP^bu~RQ3mp`-AoRgJu1}vi@MbeqeD=uo_RWtS4C36D;cr7Iy`UyMo1C z!Q#$fw>g5{<_K2f2sXzNtkMyz(h;N*yp99BFQpc=D#fGI^#gc58G6Taqdj>3*|D1) zGXLB?;fFc10ROg2)?h{{M`!4l*IJ<SKS2t*#i8@hU^P5UoxWdQ^Fr3k9e4c#@+)*z z=gUi=6ADBBG}cUK0bAhE?J}JOyA`aR*Ip}6==S~7?a~iY(jC&zf^3Zm6Zrn}Z>`@- zDlJRD)RlDm{%Ji~lGSL_4>sDho2CEY3yxk9&^>qzyFu>nW|0D4V`R-DRmyH@B2{Pm zS{b6MTcjV^Y!)WV4|NK!**d?qeyf!L+1$<2-|5oN(kapp-OKM;I<33(OK0hq|E_<! zT|Zd5{^4&@0!{MQ{$Sv5-3q(h4jj&)ySSkt&{)d>avgs=C?pJT@04d{VCZF$>^yYv zl|18x&SMAvG4_gl1qB)Z_NE`!%mS9K9Q>_a3=9m0|GS(1SThSWfYv)UR4_7>NP*Tv z9cSuh`3e@dVP`1)&`@K+$N;)0{NM|D#vccNFm{LXfL5D*IrxAn;Dwh3=)$x=;Jd>t zf7b>ce8${a`lj>d!I$!kHxK?~>@I!NJq=_S|27ukgAX|Pw}nVCa$e{z{nN?P*L;}C z@^{Up*V6pkS-wJ@R>so#`88ALN6XXvt)^h#|6wQvEsDrud2!bqY*}|GN2fq{DbH~> zP)6-`{R6w98{|pQdQ8wFVa)XoQ&87CoWi=^VG6SV|2`3>*Q~ohgB6A+d!0Um*7->` z|6(l>Y5v7o!r%OhqlByZ7h4Hy^Dp*N)}0_Xbe@QYo#lySw<&lj1$eCmirp-oCtk~e z<>1RKz}B)by#}q92U~op`3K0tA0P{VfGqq0vhW9cDJ%HSt4`2`DB!g;NcOpc&BU~i zxAi3dlmp;&`dWDcSP`<t4K_>+aCznlh6k|u#T%@xmj|5mcl`kQheZ%<q&16RDPOaV zATQhuMX*{lD-hC5U>iVd*^u0B3D$$@c2HO;f#s0R120K|?YDx37fTsu^AB16sR#JC zUBDVXg#EyZ-wz0BtbU*%zMFrr@K1+C5&T{p_?jIPu>Uc`hPCs=Ygx?r1P2aey-xFi z56wT=_@}{5hOFrVg?saF-g2Ji-<(D4J3uM;bqqAanB%aFqw~aT1<-mjuslX&K<qQT z)cixXgsb_7bO~$o4;kddiWc95<AM`^Tp*-T<HGRL&L1b31$tS6__wn-THb&iYsKNz z{7bIv1-7(@JA6-J4`1Z+!Fhi357sh)Ug!NFngdc^lp_@jIM-i+@({uGSFnNs628qp znE0o{BNLqeyF)n|fBhF=U?>OOw^Z2q&G2Mz6T|!e|C@irmqqtBHC+7v-`2m3fuUTu z^McAdTP_0zh7yj(U-kwJ45ik+O$;Ib|JyFsW?(4O>uq9S|Nq|>bh$#AVsFz0Mvx)) zWn#Te3}9w_8Fz1!0s}~t4emo&xfcdXRM0eJ3{E4M2^N%@Wx#Sc(ogdb)>3`2f`bp3 zcK$fREYNJj!BD~nRnEb`oh9J4iQ$3Q2K?Kbew|<zc&$F6`3Fa-yy3}x;8-tFW9Vh^ z>=j|)-_BxWd86cpWAjhBvNxSKP}d1U-H9vWLGF|VI|FKQE2zK&=PR}e;0wx{e{hzX zfmNV5R2Zrr;!taF`^WIWYa{;cO@BbH)dbbA_}qI9!@Z!JhhsUQ{@V{S1;vBH(15VK zQ3A5m%JN1jUoVR%|8^F)*VSPA!6u%D`Zx{jW@rm$C&*XbEL_lHoU4?h*@la?MDn!* zSQXSSV81umFtL_uf`w5$ECf{qvOC~47pQzNJn)(c6yDHvsYuBp6RaPf<-8@5ubsiF zpyt9X=PlI%3!_*r3RMKL9JXHC@W5-<9smFT{~rzB-vF{7k~zycdYuovYyuto2F|qQ zti8?)UY9~cCIf6fF2`{-+i>xgNWXUK{03GBwHe_&EMbG1YIzM0yygUj51QMc)>Byj zffi;mKtO2cQ_vk_p**i8!12$&k4g0a0|SFC=wzu9(CTn@FUwQqFF=QEfYgR^bo=r& zSTU5?wVo`|a<V*CY>J|#R1GAih$2?<=Cyzms>lb!1D2;sm^v>&*W-4FLhoz#LQ@A) z5!(3_l&-;68-DA&++f8}%5HezwP9}=!~Pv7nFU%;)^K!Q(7a)JqE?!J8x#LN77NBh zZXj3kw4SVc2$8D0+4%u{-!rIg2@CEn<uE+iCDwAOh6j9S>&|-6hJxIV3n~w64wUlj z2DKA*%7errJ1(evuz66*vm4ZL*~t$QbM3gG^26psslaZ~$i_}~keDGTzB(?b{IU5_ z%Cno5fq?-$_y1b5<ATaRn?I#IyV*cu;QEtwHz>`4j?H1|yz$zZf1jA*DRA4+@@B0u z|2{Xy*D{d)%fUx%T`Yzw_Wb(}a2|5Byjd&CzmLTbDT?mx0-4kaUfK++uS0pdeK|TW zc(ooV5#0?6ApUKP{QFoW7!QI4OFw{HpwMstZPDT|JZX8WSa=^qEhqpD7!NsG-YWXk zc>-P*LhlC#-viq1E719?^<;@+gFQou4A>5cdm+Iu!Fb5CgcTG|??HE7U)KB`93J+f zMH_OvGITY6{K>=49*#l5t|1JeA#S=B49)?nX!oRnt`+>Yl1bpjLv8SVY^?`M^jdG1 zus2&XlrnWPw;m{wZ$9!P<KIdqfq)mOa5d2N{5rj546V0IltHTHnveW>A*{>55Rk#L zib)_N0d)S|Wo-tA<IEtY;Q{b&MsOVox~BznZKUmvQ_KSYOToMU_ncxDc#-n||Nq4x zL68#`f`mGm7lQZ*y`XgJ%h6rS)BLl(oYU|dIBC63Y5e)0oq?fTXdftRfs@wj07!T> z{seW$%6axZU|?VXC$QIMATfD{a-Mx3Kw_W-_F4%f_Mf?2U?1o>IB?>6%?C<v`~HB` zfD%^g{}Q?0;Qy_c>I6GZsMzx~bg)<*e97k3da3?>=Le1x9qdTuZ1Wq?p6gPM<|99P zV?P9gj&!pFU60Np!2r7bGVFzf76Suxt1>8^G`|7&)xkF>{4eDRev$D9bW<_th-4Pf z6(9@&FAmN8_rKHikKwoGBMO%PYBeGL1Mi9H{`3ETcj%u^mQDQInECfLfRY&_=vq)W z%YQX@!Cf-QrW|PagYBy2F}!W~&GKKZ6zDvChHh7m|0Ww=%=q{JKV0iGkp0d~0WaJj zc6S~I*)CxD4|Jv956}igkQUHAd2lVyk1;bKSqSnQD9&nmKo^UbfHuo?y9#s)bjNbM z1jWb%!;@XYpfUoyVFgk~6vE1geTXt57FtFK>_e0ho}l=FmJ>YtK+y;-Ctzj7K13NI z3oRoA_JN`jToORa|9zm`-Td!=Np|c18vf23+O8a(zd$?NEkD#m@b43b6&oLGb@}%> zGrkrB7Z{T80^=jNz>vf!Fq(h;FOgvU-1@(U6KtsEk6O+KYX<&SZg4MJfT4sH6c7@v z|7&==T{#$kSRO9rZ2e!$-(by9!UftI2#H^CcK}?h!s`=I9op^71MYcFaO}Kr`9bU9 zQl93Y@^zoUwb^SXaPb3<YpB}RleMfnL1)i_HF-kyaJQbU|BS2!QoePEau^<PIQWXO z^cT3!hSXo(jGauKg0S`_NDOpEG*>rMCnI#HGrX>G<>+RB)jO^nhL>J5I(0L&9w_|@ zs%(18!220N(FlrOh_4tJCP4R-IOmt<q<}AEC`wJwEG|hcQb;UGt;j6V&{P1Od{~m1 zpJ%0@T8wm_I%u@x3+OKEh(ypaCIYPoN<>~vPy-ccpuL;ViorYLIuEzrE)fpSSh0>t zAd3aMlVjRi=w?+=I_&~oe#h~e(V@YDp@hXkp!D0x!v#h8=|zd)Gi0E9$kQ_OQb6}S zfP~{S^WqB<OEMVJOG`3yia|$WkhFh1z%j&wK|d)o&q}|vxCqRE-#Y=yqu^5!!6yit zuV)g-a0d~aLHl~+K&*`QNL$9wtO4zoeF-|_xZ9PZ!9u@O6_l+x0$!|o3=0*|t?J#O z96>M4^Z);U`4MzB%r{UCFm*kXz>Ccs;L#k&J}&m-u775&XA(fY2mRdlYu&Yf{_F&0 znNRCFPk+Dc4Jsg9<QM~9s7(F$zw>x!?T=m;YevwXERaP3FD|MuFm%`cV7z~fUB5dP zbh&vai2RXd75t(TwAThyN?FJLDP`|1X9Vpp0%evzpd8qI<WE4i>z{z27riPB43J$- zM}A~+guS@=2<o9yi7sa6mII}0nvZ<x4*e1IV*k{C|6hKC>|GCg5ts+L0s2d~>yLmJ zi$M;&0WNamPaZBVDMH#nUz}G^l$lqO#*n9Ar(nR4mRkas1ds25_YswX&hYCF6=?ki zIbV!_BWUk3h!6%HtW*KXudTNs$FQk^B&0!v2uL=n^-_sTuPf-t(14&9t3fV14!y$o zoH7H$F&DZ244@kuj(iD!@pH<*|DE4aZ&&qrZ3r<RbmWc>$XKx1qM&WYn2BNkDo|p8 z?MF+GFN1p!l+F?Dj9Bn(kI4S{4Kmsm<YH|80n6HfWTRRSlz{F+{9h^(@ZwG`q^|k{ zYJ~h(Li3ImR__==^E=!>V6*M9`{(^iWdC4X1Y3|;1Um02HK`PII&~4~j7rc!ToAv4 z@=<pz2XuJ0^)}?npwpX}1Tt=c2+%g*49p;`0bBX<B6y$ekBs-5m;{1fc$a{SlGX#I z3Woo!YX$h5*MY{nU3t1)ez0)5{&Bai6)5`fawb^Qm*5xYv;Y4G9f@)bI!fMrM4-Wr zp`-wmGp)j2=qN$%ssmlPDUBZEy)kV6kGp;WwPueoGk~ot)&T9d{}Be-C2I2P#a>9k z)_S0ns~gn`w|a{i8>$%@O4yofzc7@5HkpI-$NWkE{v%b+pt34HFEKY2p4!vnlM;(l zK|)C7E94vr@P&jTTbKkg)IdZh_Ly>A0g9>D)*v6o1iuJU0+qs`5}DoMwHm0t2Hj7% zk2&Clff55l>wyx1hH6HuQm$TSrq}G?{t<LzZ#uYK1)mNHcaa`L4D=ibP<{lLjo|w} z!H!xFa@2h6j@qys<fxaQKzrc9g(E{L=+cgi!&{gHUTA0i|BrNkGHQu;;`@c(h<~lO zYec(4IT~z)V@i3vD>y-B*f7VGd};puzeJ_^HzVi{r!U>19Q^y30$zkE!u%`&Qdq%g zRSMe3oN*Ln+uqFo|6k{H-fR5^HBv05gvSqRBwI}Bm*#)}OI5(-8N@UWxM_Sa(^$c6 zCC$&Eve%h0;Kj;*P|*wO;kk%`ir(OW@E4Ktpss*51M;1dpqeT^vp7C6sW?BUv?LWY zHV<u!!|p!=2PNY+CV`9-*n={4*}wm<wHvHsN<c?$@`GYBO#vK}V&Iq*XsBk2DTVeA zAp3p6jdy5#7H4M`#24k~m*BFy9%MIY&peha`Eu#M|E~=itYbjwh4HlpIK9Bq(*t?1 zD+Ix=;0C*bwbz*$wAmHe0ic6DQ!<OdDI8KhfYMTTEl2DBQt<hY;1FQg&LoiW8hZ#N zF9jv0*Rk;O>qk~h_=`+=XdTu14YXtW3nXowPyhe_wXvV&zcSVayO@%1z3%@zKWl<c z?CJ$Y+=t$O|DhEdxagcC3yL&j21Nf2+=gp@13JVA)WGpZ+IKDx77S{?H{0Gg#Vo*3 zs&bqa%wS<)cnwP2!7n!T{rkTVB*u7PF^FnDBG3p{{O|w&`f{`8BVWL>4goJRK<+qv zj2YB5`ELqR8~lPn7UCg=)^DYJFPvl<7@94VN|v>LD`9Q0W+-Jp#vF6ZnUMk9{dkcE zxjytu@C)0%fB&J*KY6$;u_zOC2@q28lAc<Unpeh<npdW4SC*Jln#zE7KNqM>Qcx|n zQpm~7O9k!b)le<gv{FbcE>0~1wf*3`eL>=|eZHVF9#I~Y>|heeXay1A+ZHg(_63VU zQTXyBBLf5c{zS|Ji$Fcnc|G6)|26B57pIuv*E@pt(A$0h2Rrm0Hij&Q7mvdJ{$C6d zZ9XDkczYp;)p^J|f`z{sR3CIR^_tuOowni15%Aya1*Z(OkSNUuomo%{z9Os-<YutL zV?j3qfE~VK2U2tO`69^1W5{7o{4Jm}f}4+g*$q0~0d`OlxI6s-<oJi(D30%De))@m zfx)?36y!APC>H*vbWmU9$d_(cj(`{Ur5PAHLHnUw|Cidr&zZOiX-r`n-hyg4^nf~0 z7X1(MCD@K`Cl-f*pchvo|NaLDM|S|r!AH#9480`+KbnvH$ztkt{TC4a;;9Uz8vGIb z;$GLk|DA52V@E(mAjnxgDgXa>vVodP|I1jyU+e^j8~j2L<X8ir-v{>ii!O-A!RPlu zA`TQn|1WgAvA`ODA-(}Fo<R&Dz5xs&uD$^b&Q>uD9{#?rV8SKHGYrB4x6q68b5oP@ zQz{uk^Rn~u%k$uMqeED5vn|JIW&sBN*0<oZQNMuN(*nDh1YRWn{r^AU#o6Tl{}+Q) zG#^oDJx~g|WfY`B9Hhb#tYS5)3eZvfAQjRe74l#eov13n{!{=-7a$}Anr%fO?pO<H ze1ObQ0V%ru2jmV{kW!Eeusir$+aanlG(k$9NJ0}M_@<)_W02SdxL7>sDvTpvAWD0| zrhQL>WO&fY#vqHpI*PzjcR*5y!A;peSq#BpFRD}i|6dHT`AgUf*)B*5KJq2_g&>$M zaNP9{Xw4XCq{Q`3KyU1W;1|-;AO~?khM&F!zi3bT|9>&hX=VX%aZ?H634nPD&9)$6 z@Zs5CGHgH&j|Rzt1i`r!q>KU7UjLHe3X-)2$$|u5J3!jg-LhaFqcf=At<zwwQ~DKL z5Ptb@3X*ui1N9G#AJh5oe<xT^Z|V-v&>f`D3@W1`xf1hcy&s^=7}5brldL-!PNS71 zpya_&%KBm@=m<xsAxPKLKnBRbhVY{q0!h^iLB56dw~^do3W_(#O;h08Dl))EoN0%+ z1AaaXPUlDwbWQ`*ESR65&H;rRY@C3gdu*U)5Oz-&=va5W!SkUF;x{z+fD#|k?pXsh zgRpyk{r>+ST25k~W(p4L1gKeP?g7O&!aXAJd)F||GX)zW4K)Ndzm67P-Lev(oB$0M zjPej{#En)+xPZ$;h<->^K^xoPJ}$x?$cBJx6R;tZp@zUb13$YD>VhNSA(*>y|Nk!r zy9kuS_1hr19qKxa^ZdXDTR{zmp67?`zHZQgncy~1w<`x^EXtJ!v|t9he&Xa|P#dn> z6?F7ZH-j}3Y>pZs&T#TDWb7O4M^HN|<JSQuffuH6pu>1zgHK3wS_<f9N&|-U`0~s= zW25-AlA_YQ<iwIxhIFt1Xp9HP(ZgV2g6$V<_g90@a%(+M3%<`+;~<kjhQUE5fh^k$ zClEUW#D*P!`efF>|BxZO99a7|;KgSVPz?&Y4Hk4O`&>~_=_%0s<9~@#76a(qK%U?i z9U#FU|4Sf6XcLHc1ausz%8P3v3=GXb*h+a{#0WDm9B1GJ&9%&V;Sc73Mo?e(Lr3qS z4QHh095_hg^9xe*QZkDeREuM@;B})wcrc_{4emI)9AXm42sy+gkQIl;Q~b03{eO83 zJ{|?SHv5Hm^FQ!~GG8(r7#SE|aDceZJm8AuOZbb@nE(Gf4|NK6UPl`z0gqpm@HEsg z{f{YSJ?6p$8dv%8-#8=X5R<@*yjaLc#gG5RJmD`|K*8qB0Xlr?MN2azsaA9RFX2A! z%mV6nciwny_F}s*C^SKbA|`^BeEDC@^CAq)1XX{*FTB8PffsT@pwI&a8065N_>+fI zGLc7_Ab|zCr4STYuzCY>UQ_GsQgAqx9%d5AXao_U8X8MbJ(&S&yS^>~A3no*+!-|N z&G6b1bY6Th59rVth<iC&50t9B_$>sATA@<Vc(N0uzI#zFh;Zg>UGUI=Gf(pYoq!h$ zKR{~rA7Rah1%h9IPFsNlci4-xrhnjTLSBGsJXqE!N-fXKO9A@@G||6D9h8kgxg;Jg z13KQ&Ei*608FV5yXaqMgGbc3#em)P}@8AO+!G8BX!X%Kf8Z^d<nf6~y|M&kj=t4A* zKd*!Q22R2fpfRM3BS>cu?w<~dOaV}!KqJ018tOODDO)ePg+S-=f+9ZbMRy}etwM7( z$Ny5H7bgW77+!=3z=G&CJ2WYP$I?J2J3=B6e4aSS=b-Wj(T4`-U$8gajxq^kfKoJ; zC{zS_!w=qn`~va~C(JkC%MSk=zxdJsauztTy#zBMiS2F!IQm6jD1aQgnjhv+aFGBm zE`6Ni9esQle4OK*Lm~rQ8GIc5+!+$n7>WxS5{npu9T_|W8C=~Nd?FcKq8NM~8AALR z{CycBT^WKS8NB=%e4H4(!x<c18Js*A0v#DLDj5=s84{})QcD?<QW=u+7?RQ%k`o!K zG8jU_8Js;BJiHl#-5GrS8Hx)Sii;RBiWriM8B!7%@^ToQTp3dH7~Gv0977qL9U1(h z7(87WynGoPk`s$Elaf*s^BA0>7(zlAqQV&hJQz|-7}D|?(h?ccG8xi}7<@t*e4QDx z6B$xc85~0xd^{Oaa~RS~88T8CGBO!5N*OYX88TBCGD{e;5*f1d7_y5QJpCB5vl+7U zL6{+@j3K9lAvc>Lx0u1nk0CdQAvZ6RA-9MjFO?xLpTQxoGB3ZVIGZ8Ah@l{dp`e7p zDTtvUk)bG`p{SIhIFX?^g`qf`p*V*jwV1&-g25p-KP9y&kHI~J!8wQ_z>&elpCQbZ z!P%c7z?H!<h{4sF!P$o)G?F18lEKNJAvlb|!;itwlOZ68p}3r(xQxNglc6M$p`?VN zB$c5ggQ28|p){MJw1^?Vo1wId!6CV_C^IJ~GZ}P{Nks)iJiHt=2nz;Hx_!xbd6Y@u zg(V-TGy<K72D*7Z;{!-c6)pxo@%JZ4Ob{kk0y?1T<pVC*d66%c^D{7X9%_8_pP7Ln z?cfV8RnYvXSM#p~{`Lkg28RDCQ}s_U3EVizBv5ghNuc92lfaDAOadNfm;@ruFbPPU zV-l!1$0X2jhDl(?1tx(NXPE?coMjT2agIq~$2lf}6X%!&UYuhRU^vet;BlTwAma>^ zz=QKl0vs2Z1SCM}FEI&NU0@RMxWFX9afV5t;sTSviIYqM`j?mlA}%or#9v|($iKuS zaN`{4s#Yd}2#^~tFbPzgWfF)0nRlK^V8taSff;9+1QuLk5|B8}Bwzt@-)V?=1ymlS z1|9D>$t1vWj!B^7ER(>Ba}f2&YC6s{31~p|Yg~fJ_g`WX@VEpz)0RoV-~y9C$2lf} zALp3_94;{l_+MfY;5yGFumGg*G?T!N^GpH}P(LD@i_Eq-&m^!4<PSXRB+fGloH)-U z0IuJ6{yWMf@bWbWEdF*f9%B-Cc^koJImRU5(fos-zx@~oDEeC8fxLN^NkH!ulYqr3 zCIOFAOac+7m;^FTF$q+hViM>$#UwD}6qCS;Q%nLoPB96bIK?Dz;}ny?i&IPjKTa_T zaGYim*vAF3rIdq#VIMDul?}IVp8$v-jo=G|_}&P<7>I9;;7fw|+6cZ3h%b%c%Y*pb z2)+`C|C=4=-+ihe{%ZtZ1H`|L;A?~UrxAQT5Pvs<ZwTVAM(|BQ{Mm5+PIC~y8^N~% z@v9MhTM$1R!FK@hqY->(5Z@cYcLVXQ5qwV&UmL;q0r8~~e1Ay%vGBLEv4i7p-DxI) z6Q`L3zMW$dxN(|E;KgYsfgh)t1R(YIz95kP+idXgi2(6WBlyuEK4>KjRDB$XzZx#z z{DY~4yZHxmiP&ou(0KgLM38(pTz+Q?h+mE1r-S&}2!0lbAC2JWg7~0Ak|Fl(EI7s_ z09qK?YR<;Mu&)>-tINi~u(J##e&Ap84{rW;88)y_XPjXYIB|wa;Kmsyffr|)1YVqB z68Le3Nr2-llYqooCIOAJOac~XnFKsQng1-4K*m`nfqj)A6K{i7)q_t}-d6+SpGNST zKzz^w4v2g9wSxGo5%TOH{%i!l1H|t}@Vi0$Y6O28h@Xw%&jj(K5&StIzBhtDAH=tY z^LH)+@wE~Br69gEg1-X9=SJ{XgZRH$VDY<i9W2~f_}ibbfWz&=StfxpXqbUgNd%}+ zI?E&giqC!ZApM|KQ&9hJ0r6KO%-as)&qnZffz1EGT%uMl0*bbllMD<DFRS75%|BR5 zq(Q6S)n2BtFfdHmw-=;88ZN(YBZ%*f;2!|-t>OHghe3R81pgR_FOA@z1o62M{4*f_ zZ)Ujv&x81{5&TOa{%r*RDu{m?!M_3a4-<bY=t!7-p&;3{%nS@WZ-ZEiL9BZq7U*~* zP<ZWp2;zYnoRIL^`5eTrMws^s#Lq_X-+}ni2>wS9A9N@!RR0$c-x?wR9mLm0@PEPF zC(g{ku<tKOmKWqIhT}{EFPT9sW)SNq69WU-ee59KYY-2d-gj~xhvu*AObiVBo`Ce9 zWny61$qN(T4-yvu>Dmesmjtm^BlOFF__Gmwd9Xf4{?>MoJ|&QBEl8g#h*b<?X@FRn zARQ%Y3_G<!yl4;);vPK^-y6X<1o1)lLqo&E1jN@y$eV-s(g?m4$bL|{AjIF!!URs= z8!j*j`~fu(E;0#7Tx1f^xX2`6agj;D<06wl#6>27jEhVH6&INVIxaE^%(%!Tu;L<< zz>bSd0w*pq3Ea5IB=F)QlfaLQOadIB2ErvKfqk|hJC}n_Z2q>-0mPmSKR<h)2Z-N| z;CqAk)d;>Hh@Xw%2ZH#~2!05N?~UMxgZS16eiVogy5<iO9{XZJe9)2SP<{f4&y7%@ z4C4O=EsF(*@4hq;|22Z23F3oJyoc(~0r5d6?nC+cApUNI`XUe?k-qnpg7~u$@)aO{ zH=Mt-`Z$xo>$;tFplJEQR9dpH5hReivjs$@P1xBEqT_aUfvE7#Z##QI48NTdK$Lsu zx1Ezg47;7v!1@_W_`!ur$lw3}Uu%NW^S+rNdAXf)!17F`BKzip1bBC@1W{}gcCG<Q z9QhFl9tdUvolJNHbdQKMXdUAE<Dgmir_7)>FzAeGP%!}MqV~Ez2zZg;1G?lDyr2@& zFH;EzO*1fLG4#6r3CLpjU&@iikij6#!0=)v3j+ga#T@4F0Za1_raEEJ_yJcbXc*xi zFL)T?A84uzbfEWdZ^#gW0O*#(67W&4rGH)|vM?}o{^+i~aq=*z7mOSKSDj<TA~0dX zf7K~adIpsCFoB2%K<N-D9RsB!ptK8=_JPtRP`Uz2XF%y3C|v-iLpz^>my(@4!~>ao z<yfcy8aT9ID3JxTx*7go05f_6SUN?)auqBLrH>(FX`nvt!YkK7MbH0INy7upwl}Ub z2{4rK?E=xwhgck%tr$wbgBMxxbhFF_DgA%JyA(Vh!gGa5;Kgq1zmR*0z~gz4abeJm zMJfMrR+ZDtpfMkY7n8sfoPnJWn-6l>G6;Z<nQVLsqMJDxbV2m%mzoEgIT<=1be`$v z=yqWF4_ZX{U)9GL5_U0A+5}45Kxqpo?E$3|pmYF~c7f6%P&xuiJ3#3dQ2GIsz5}J7 zK<N%BT>+&<z+wJhRRBtJK<N^wJP(wA1<GfD@;^ZNGEjaGlz#$B|AEp=p!5_dJqJo} zfYLLdbPkj*fYJw`v<}pK4Jf?@D*gsaPk_=lpmYP2UIV4SKxqr8{vA;M0w}!)N~=KS zS3vnKQ2Gp%z5u07py~{uv;vg=0hMQg@{d6I5>S2(l+OaCHK6n!Xr6ijrGG%_Cs0}h zs_q1o&jaQEf$~+L{2fsK5h$$y6+Zywe}U2*Q1LfV{uU@L0~LP&<)4Al5>RmgD18Mg zegjHhfYKkJ^c^V809C&N!v7EIyE8C=*5lzWaj?ta(gPC*jela(36qD(q4Qzl=rkd9 zxa3dfgR(ukX~gp>(GLm(&>Gb)(Dnl&twi@n!EpwG6UP|@N=`5cY&pRou;C<w0M97~ zfs9iO0wt#y1dg0y5U4rDAmDSFK|tgTgTRF|3<5r983Y>6Ld55sWe{LE2T`AKjzM6? zIfytm=b+mS;}-}s3Vab}6qqBz2)Y7+K|zdBz(kBuV1^ik4>s#7g8<K01_7O~xWl_6 z2%;V|#tqg(0uh>5T#%ZanU<NFqL7wYl9;2AT2z!@q>!4IoL`z(l3J9SqN9+QlwVYm znU}6dg2AIoM?+vV1O`nAG(2Jgmoc~;1S^x!<%tmomB$`?7zHx+Fbb^L!ziG(mr-Ee zJMat`+&FY|(D^Wh=;9!=VRG1L6JJb!VG{%CMHWY9gX9Qdba&xWk4qi8I5P}zF)=eR z!Z-+;Q%F!;LQ-6iUqD<!lvh+t1P(++#l^*i#Bl?D2?5-a;^N}`Tms?<i*T^mr6naK zB*dkq#ia$sxx~dKC8VXf#HB$%5JW(1kcLp=;^I)2G=zq!kOt`h86pm1fs{#uOa!Th zD1_?=DS&d2WWdHj_#llS10agP7Jwwc!XO6N7KkK*MADBCqybAB?0f`CxfL=pm}bb} z0iYm7(E$z<6cGwI*jxiPPMTX<TAEuL9{-^D1_c9H5{bZYIgVsUt}r(9F~r2hK|&w` zgyDXY5eJ1eC`F-Q87L3x3n&jkfxQY&e&XU_6Tk}Lrh<8>1ju$6MvpIqx#Y3X%|o>r zD-RUbGR(~QT#Qv8LJ*`Cf<YmO5XZ@aDux9DDKt(qQ6xYXfCY$jkhqK}7sM5y&_Ka5 zC_DrQBreV@&de;%4ABWD!Iokt5b|IaCILx}aB&b9k)SZm1S>=mMmP=0LGbEA1f)_% zh8aZB93wde#1sdI5;G``p}Gg%dos-8_#7xB0}6DIiP$hWJV+&o3koFbNVR~FdQhkk z=Lj@aptwYG7nms{1Fq3!;K^Sc9Q5Kyp^okzWcxwdKp4#?Fc+4QWWdQ1RMg2Z!(syz zEg+0YcVHHzI7E+i2??-ykU|&~qc9smE(3`|rO_ya{h&l615yaJAEXat3CJfPHUxvT zgWU?^BK*$`N?#x$7zXJAsRj86WHJ~-1&}FJ`$4Kfi4`2`%wUIr0z(FFBg}YEXvxSR z?1zcNX(ao_K_LOc$o9h6$o7NTi1-HuA~Q<(gMtHO5J(}&CWQSE_khG;n3)-*3hW^e z1B5|}K#>OyWf%bwgg6JJ2&5nEeX#Z5AOOcYNL&WN0&@`o0I>%m2qsbd50Zu0fI)(+ zgbG5KAl+d55y20$72<u60*K=g){B4zQ3$yIK|Y3Hs68kY#8R*jgb6Z)ko};<1X70x ze-IB9lWsrQ5uoS*B{@*|foKqh`CkSR{-At<H~oQXeu#m{BuWW_EP)(Apu`T91Em3w zw;%z6C>ang0?C3gGc(xfV782mj1-B0SxO3G3D{@}sBWkbGg3*%#|N_lFD)e{BL#8= zn1rYVnF(_jh?apXk&=>v+b_e+4Av+GHUZ)Q)R2~vf|!SogoYo8;$jDpPz)}o#Kn>P z1C;<#pjwidUw~f#rV2S$Knk#8h%+D#MI}MiGbrnUVi76>PEJrZP70C{Ky?hnLd@b1 zVkaIF6xR4LC<Z`5ECq8C)RhoJ5jhLu1c+H67enMJB_XB~A`!L_QVEp@X#i&fVVVJu z6*9u0kf0EQ4WiHtEZV`w!cq{7h6WGG6r}G4u0X+h(fMFOJOr`o(bZw{A(r6s4=!<t zE>JcGs{qyAU?DIM%)(D#QwIrPE~rL$MuGA{6hsAH5~Pgk7}-Xu8$N0v5g`DN0a)_D zqK97qPb&b6dg6rOHV+O4q`n}H#8Q}{2=Q_8fq(?4fQM&0EG<t^2tWdj8$^N3z-Xz0 zBxr#_c7rg{W`mnsARW}jMB6_A3PC=lowXp-;pIG<H861)jV6u3g{gzlkctFaIbo<q z2q4rW#E4*_*EVQ;n5k&OV1vPO2niW32w>;p;$j7504{beE*^1daX~?TK@bLw+_SN< zaWOD}WSQ9|p+H<vP?`^HqPRF8zW~%kNSI<L!TP~{5BQKczW``D0%QfmByfp`s#^jA zK$9R~7OE^J4`K@{iKz-9A}%g22_CbRgg5~*wE-I<0r5bt1xtb$a7EDOI>I0X3pN7+ z9*svHMFwd`@IgEXMrf6R4R*uEvmpvdBC!qoqZ)u>AH=nwH~{%iT3i}5+XPY%az5A@ zAOj)J1_zWlc)%U30;B`P00k2iBW55V5@3TN#()ikh$52^704oBYmm$a^HCJQImoKu zg7_K8z6a+9H03yq<i|gmhh_*-Txh1jr54qpG~(g198Daj?MUjds(~aN+L1{1gPFK( z0<{J(orqgK=`tV(5Ty&G5Q@>&Lvk0wouFx2h#IH{aDD~l8IVc{hLYg?1(AWN1<@eg zAR3I}i5q4EL=>bI#DeGs%YpMVTscS*D+Uz~SS6r>5cflh3=kVK9tO5ya1bDOf-@qv zvH&Cr!C)m2CQcGs--BB1Fy(MVQ9X;(2#5s81PBX*gc%H#Ks9y<@^BBo$l#WuPzE`e zC^Tx2YDe}VDjV6sAQ@o+0byZ2VPVi{CIlnceEc9um<~vr3dR!_7M78b5f+x=6NW(~ zDHJ9j3J;S5(GM1fDg`-=nHkiFlc9<Ed|-P(_JV8zc>`=aK?0<jpdyMC5S{2jPN4?I z>soLO<5dBc#ODsM0vrU9#-r*+vkX}hB!$c;f=zUI6JZu9O2}|3DaOOp5=`1M!qAFj zlo~=I04jPxDToSqH2#M`yi+m0(UT0Uq!<(cYlVPWhM^SNAdU?A0W_Na2Yvb{KXTC% zI~G36p!fc;b|A|DhyOs^Kdd8n2zZW#@Cers@WrST$qfN%(%L;(Dv%*A1PwT3Ux0<c z0=O50Lxv&21D>EIo?tC>BET-gN6^U~AZsuuEJ31_VEBMBiH6_{5M()IW0A#iu|cDL z$a3KP0vRYokRSzM31MLYVF4LFJ|Q9KfFe{>SVmYv5<CF|nl}Zl%0+g^fU#v{*ky!- zg(W0GW1e8Q!`v$@EDRnb6haa}XYvaRpbMe!LGm&(0{j93eBz+7Ob8~)vwW~Ac3isP zGX=18gF?&5$Vf^E3kyp~K=Lc{<O?%1Gl#T{%#Y_x0zY0b3H*4;B=F-ElfaMHOaedN zFbVv4%OvpQ9g~0z0|Ud4_e=smJ}?RV_{b#i;}es>kIzg3KfW*t{P@Zw@Z%ekz>n`t z0zZB*3H<oUB=F-GlYlr#&u=DyAAgtxe*A@)0Wt>}|M<rw@Z&#|zz+syfgg;_0za6T z1%5Cy3;bYV7Wl!+EbxPkS>OjdGuSL-eK7V94rYNLoXi40xR?cga5D@1;9(Z{!OJZ0 zgAbwy<OW*dAN<S$KLluR53SrkSj_z)$SfetzyLaM2#$XUF@w__ES}NnAHqW?+<%BL z3;Ym8xc7$`v%n8=B)$Z*zz<0TpBC}*LkbecKctxje#k)V`XS3K@I#JS;D<c3z%y*% z#hp8M?!34GBJZ3!1)?A%h;`@A9YzoUv0-{YJiBw}&a-FF?%ZKO2d`eeL>C(6qlN$| z6j4P+G7prFo`HyaAmZ7xXAGc}cIO#L?B0`ST--doeEb4}Lc$CpqGAl<3=)zI&jv?$ zNz2H}$tx%-J$r_k4d5<RhO=nN03|6<&@q4*cb+jYfPxXPyWp--fwQnOK+yn-j5~Lp zfe<LuKf42lgCrKPx|%kE7{?xQGB7ZJ0*E%&VVH{5ehgK#6BxB0Eo?#Yk0wM{?qIP$ zB$}??hFdmR{10~!JsI@%e0n;nec9RB+4S^nSsAKrRaI40s3Mf{ury^62Hs(~!*Bz^ zC5hG8#LxoP(A3n_#K6$R@a!2UsCovAkxSrdaFA;xetqoVYjE(Z8I>K75J1hB1L6c) zSo(w(h7Lb7pFLw_1U32@K@`Y)RBM*sdh+7l1JH58AX90NIXGx<2SFR82&x$F3P5RT zxcd?2zaJ{h0zXul1%9Y83;a-L7WkpT3_h#zhbFVY4=rYaAKJ_UKXjM{e&{j_{Lo_- z_@U1%@WTM224)5_{lk!1;D-@zd63#4#`xtyYVhG7CY0&NXZEPvXb23a5cpw=$SXh0 zAnXGS3=FSkGYK4IU|@JMn@Qjh0|Udo*-QeUYYJ}6W)e8Uz`$^6Hj}_n1_p*RvzY{r zGcYh5o6RI}f`NhIz-%S~&~-4oW-|$#Vqjp{GMh;NbkoGT*-Qdw7#J8<%w`fe%fP^} zXf~6;IR*xXIkTAr&NDDDOq<OlaFKz5VZv-CflCYw3|+IC1THf$Ftp5O61c*^z)&}v zN#H6214G4ZCV^`V3=BoHnFMY!FfioIW)ir?z`&3;n@Iq4!$rbuCIL{(KWa9Uz+DCg zhLG7z0-y@oZ#I*_Lk0#0kJ(HDj~EyjoMtl#JZ4~Eu$j#y0BS~=&1MpK%D}*2Fq=u> zIRgWO)@&w$7YqyxDzljcK%@0?vzY{5F)%Pl%w`e*-K-%rn@Qje0|NukY$k!X3=9lx zvzY|mffB}SCV}@13=F?!F$sKRU|{$%i%H-U0|UdmSxf?-85kH|%wiJw!oa}rXcm*e zR|W=#JF}PszA-Q`T${xt@RNao;leB?0nnA(r)Dt;fNu0SGK)#z4+8_kzFABHe;F7U zcFbZD_|L$=uxS>P00Scf!<t!40*s6d49jLQ2{17-Ff5qGB*4tbz%XkTlK|*K$|<v$ z1Xvjv82V;039vCTFm%jf5@2U!U}&1fB*4MQz)&-bNr01)fuU>`lK>YZ14F?qCIQgR zB3ZMT1b7%37*b|23Ggy9FvQJb65wNGV2GH-B*4$ezz{TxNkE8^fx%}MlYlTI1B2Tv zCIJyf1_p;&Oah{e3=CGYm;}Ta85m4vF$st>GBD`PViJ&GWMI&k#Uvof$iSd9i%CF= zk%2*G7Lx$zW)rblOad~D3=9IZm;_`Q85p=`F$u^qGBB{rViJ&NWMKF=lSx2<k%8gI zOeO(EMh1pYGnoXG7#SGe%w!T!W@KP^Hj_y}g^_{b!AvFrRYnGeTQiviG#D8euFPZ- z&}3v_I5(3?K#P%q;lxZP0np7Vhh{Pf=rA%c?3u|Vpv%a>ux%!jfF2_Q!-knm0{V;$ z469}`2^cUkFf5tLBw)hGz%XwnlYl8B1H+7&Oaf+%3=ETIG6|S7GBEVaWD>AsWMF8U z$s}OK$iUDrlSu${lS|c1CIK5p28NQEOaiuy3=DZQnFQ<@85lBVG6^^{GB6~~WD;;; zWMGJy$t2*)$iNUblS#mhk%1v#CX;|WBLjoiOeO&jMg|6#nM?vcj0_BRGnoW@85tNX zW-<x*F)}b1&14erXJlZ|naLy&z{tR$Hj_ypkdc8wVJ4G62qOc7)J!IUP(}s@k(o>a zVT=q6d^4E@!WkJDIA$^lL@+WiFwJBVh-747_%nk^Ac~QJ;oA%*0niOKA7(HK#4s{2 zyqduz5X;EG@MH#)KpZ0j!@U_y0`ZIt3^!&l2_!HwFkG6!B#_9+z;I>;lRy$91H-Wy zOajS_3=9WmFbSkEGBE6#!6cB%$iT2=29rPrBLl;_8B7A1j0_AbW-tk4F)}bLn!zLh zx*=!I3?_jbMh1pyGnfQ&85tNR%wQ78V`O0Hn!zNH&&a^gGJ{E=fRTZrZU&P;AtM7r z#SA8aB1Q&=q8UsA#f%ILIWw39N*Ea!(q=FTlrl0fB+OtEC}U(`h?>D9P|nD}5Hf>F zpn{Qs!EXkWKqVssgU1XefhtA@2B#TJ0-zgvY-TVC)G#tIn9X1ksAXheFqpw4P{+u? zpf!U@U;!fogUSphfrX3=401D=1lBV$Fi6Z`64=1Vz#ue(N#HCa0|U<tCV_K|3=C{D zm;}y)4uqb;ByfR|f#KJ5CV`8L3=ChUGYMQ`WMFtVok`#_=u+D0OafOJ85kZ-XA-yy zN~hDA1g?R?b2^j2bw&n;Q`4CQZZI-19GcD~a1#`c)0qTrF)}c0n$9F}8<Z}mGYQ-Q zh2L~0fqS5QKAlP6J}5m-XA*b-3b*M@0uMp?dpeWABT)XH&Lr>{l)tAl2|NSk@99he z&lwpQvZgZ$ya46z=}ZDILHT<+lfWxb{+`Yx@EVlAr!xt>0j0y~Oah>5>Yb)D3A|%u zV6d6aB=8;-UelQbK7hh&I+MT`P<Tye68H)VujxzzKS1F%ok`#)D7>aK3H$=(>*-7a zzd`A5I+MU3Q2LwBB=8rM{-!Yr`~#)GX-oqD85tNpOk)yYU}9i+HH}Gtk%@uf$uuSb zCME`kd()T%n3)(DZcJkm0A2ZXX&RFND-#35nQ2S{Y)lLc$EGm}uro0*9GJ!=z`?}8 zuxlEV04Eaz!<K1G0$fZC4C|&b32-wpFszuyB*4SOz_4f<lK?Lh1H+tYOagpN3=Gqz zF$wT9F)&P+#v~xX#K6!sjY&X|iGiVI8k2w!69YrtG$sLICI*IzX-onlObiS~)0hNA znHU&yrZEYKF)=WtO=A)eXJTMTn8qX^!NkB2HH}F?l8J#KWEzuz6cYo3-!vux&<$1| z)0hP0m>3wGrZEY~GchpOOk)yIV`5-1o5m!d&cwiAFpWt-gNcDbYZ{Y)CKCgL$}}bc zEhYvAnQ2S{pc}D7rZEZVFflOjOk)zzWny4pnZ_ib$Hc(!Zz_|3J`)4OkEu)o222bL zAEq)17&0+1yqL-)V8q10@MtQNfH4yT!=0&20uIa!3^%4S2{<w{FkG3+B;d@<z;IzI zlYk2|1H-AQOadj$3=GGnG6~c%GcX*Q$|TUr%)qc`Dw9APGXul6sZ0Xx%nS^hrZNe1 zFf%Z$naU*4$;`m8Y$}sL7c&FHf~iabJ<JRYv!*f$^f5CqOqt3g(9g`k&^MJyU;;A( zL)%m)fmO^53=LD61XeRMFjP%t5?I5`z)&)kNdR=`THaJ9fpyFb3>j0I1lBV%FeFW7 z64=1Zzz{W+N#GPS14GDECIQgRZGKak1kNxsFnCO55;)7uz~D5MN#Gna1B1;}CV|V$ z3=C#dnFOvdGcXuTWfEXuVPMdj$|S(Z!oZ+1l}Uh^g@HkCDw6;^3j>41R3-r)76t~P zsZ0XAEDQ`hQ<((#SQr@CrZNdgf{uxw$|PXP!ocur3X?zp3j@QKDNF)^EDQ|qrZ5Qv zvoJ8cn8G9w&ceX(XbO`+3=0FpoheKLu`CP>*QPKD#IZ0iT$sWnP{zW*aB2#ZKsgHo z!;vXW0tZ<b81_wJ5;(-dz_4QqlfVTQ28K;jm;^4eFfgo{!X$8sg@Iw&6efYoEDQ__ zrZ5RyV_{&JHHAswItv5ClqpOCw^$e$`lc`m+-6~5=$OJJaEFC~p=k<}z+DywhMFl% z0{2)L7|NzF3EXF4U?`ZvB=CrZfgx)OlfYvZ28NU=Oah=Q0pq4H2|Q(CV2GH)B=C%d zfgxxLlfZKp1_qxgOaiZ17#Q59FbTY7VPJ5W!X)s9g@M6p3X{NF76t~BDNF*O<MZ{V zFbTY8VPMdh!X)s4g@Hk73X{M`76t~HDNF*NSQr?@rZ5S7W?^6un8GCRg@u8EYYLOV zR~7~amMKgEKUf$T{!L~Q_{qY+@MAKQfD#)6!>7qi0?KR*3~weg38=6!Fg%;gB%sR1 z!0=!)lYkl<1H-M!Oacek7#OZhW)e8W#=vlHGLyh%HU@?hlbHlGIT;uZO=c1><YZvj zGnq-igp+|`+hitz2u=ou4U?G!A~_itR!wFSh~i{mSTdPOAexhbVcujWff!B(h8dHY z1Y$WE7$!|-5{TnuVCb35BoNQZz|c0CN#Ham14F}PCV?}Y3=CD1nFQ`|GBA`(W)ir| z$-s~|nMvS2Cj&#qWF`S)E(V6A$xH%fTnr2`Ap5u&7{WmIaWOCifb8R9VDJK&&&9yt zGMP!hgPVcDZZeaAH#Y-=#bhP{A8rN)BanNz85ndx?%`%&P@BvoFom0eL18kJz$tD9 z1}TtxxEUBkK<?pYVBiCp!^6P90SXr$1_q|dOajMw7#RLcViGvP!@%%u5|h9w9tMUF zlb8ff^Dr>Hn8YOD#mm6(XcCivH!lOjok>grKD-PJ*CsIu+~Q?mxG;%H;0`YX!>LJ3 z0(W^C7!FNh61d09z_4c$lYlcn1H-mSOai|A3=A74F$o0mGcc^0#3T^T&%m%`5|cm- zKLf+ONlXHn{0s~;CNT*V^D{6^n#3ef%Fn>iGl@x{jGuv_Z4#3}1wR8r!z3nwMt%l{ zs!2=&lld7KN+vN0%;jfb$eY9@u!x_5A!8Dg0O-2mq)AKyYxo%$VkR*O?Br))2%E$t zpeDe;5HN{JfI*Id!D|we0HYiOgUci)0VX*H2D?d20?cv@3>K4^1X$!47>p({39!mB zFz8HT5@3^KU{IUHB)~4mz@RXRNq|F+fk9#tlK`h21B1XMCIK!v1_rK4Oak0;3=Axj zm;`v_7#RLdWD?+&V_^6(kx770j)CFRL?!`#IR=I|6PW}A<QN#9O=J=flw)9cFp)_> zNRENw)<h-&VL1kdD-)RnMC2G4&P-$y5S3$KI5Lq*KunH-Vb4S+0dYA7hAk7B1SI4b z7}iZ>5|ET*U|2DcNkB@Dfnm`^CIM+V28KBknFM6y7#OBZWD<~-V_@i+$Rr>q$H34w zkx4*aj)9?JB9nlE90NnuL?!`6IR=K3iA(}YatsW46PW~*<ro+;CNc@A$T2V^O=J>K zm1AItnaCudCda@KHjzm{U5<evU?P)%1}OX{G6`sc!fzszfEFnHCNc?VgTikjlYkB= z{3bF9=z_v;B9nlg90P;OL?!`!IR*xqiA(|patsV&6PW}ILE$%%Nx%pceiNAlj6vZy zkx9S=6n+z!1WZBUH-SmO3>1D7m;}s0;WvRvz(S6J;mHIh0ZTashC36O1gzv37_LoV z60nwIV7M@WNx(*qf#K8yCIMSe_)TCEu#;n8*f)Vmz+R4lVaEg}0S7q-hD{Tg1RUiU z7}iW+5^$1ZU|2SRNx)f-fnmV}CIJ^Y28LM^m;_uw;W&Xwz)g;Up>G0{fV&(6L&pRr z0S`F_hNcNj0-kaV3^fy&1ia)J7|JFv33$sfFceH+67T_q;{+xFUpWSbgb7RnesT;9 z5fhjM{6XP2fk_}hj)B2r0+T?X90P;H1SWwXP`FKC5(t)KU@(}#BoHFUz@RmONgxyy zZWEXU!sHkj<R&l)goD!E1SWw9IR*xy2}}Z!atsVS6PN^|<QN#(CNK#^%Yiz;Oad{W zaO-Chh?Qet_|VTJ5GTjL@T#9lARZKM{Y(N0atsXj`k4e0<ro-l^fL)0$uTfo>Sq#2 z2Bo`xCV>=Cxb-s$q=M32Ka)TjDBbll38aI<tDi|ALym!ANk5Z7CMdo2GYMqLF)&Q) zXA;PkV_=xj&m@o|$H36l&m@p5$H36i&m@p1$G}k6&m@p9$G}k0&m>SF$G}k3&m>SN z$H0)&&m>SJ$H0)*&m>R`3a@@9ff6|ehNylffl@gJhLC<HfigJ;2ETqLfpSo|^)m@n zfWobxNuUxGZv9LGRiJR|XA-EEV_?weXA-E9V_;C~XA-CdrMG@2fjUrn>t_<E2c@@u zCV>V}dh2HrXauFVekOq?P<rcQ5@-g6TOX4^3n;zyF$uJS(pw*sKpQB(_Av>xgYs)1 zlRyV3zxFW+bb|70ACo|r90S9-J|=-~IR=IkeM|y9atsWI`j`ZILE+cOB+w_vz_6{4 zNuXbjfnh@*lfVQy28LCAOac=@;n>F{FiDPqVO}4Tz+^cFh8cZK0#oD|7$)^G2}}j$ z-##XRX`uYu$0RTvlz;n}1ZIHpZy%GuOi=#qV-lDR%D;U~0t-Otu8&DzAt?X$F$pXJ z<=;LgfyJQw+s7oZ1Qd>aOae>g7#Q68m;{!A@@*fJz;ZbT2D3gUffaHL40?S`0xLn~ zT_2OcDp0!XV-i>m3co%kfi-dr419e|0&79(t&d4y9Vpy-nFQ9$F))1VWfIsR$H4He zmq}nFD7<=^1U7-vSuc~oW>Eg@WfIr|3a4Hsfvs{3499wz1h#?lWiOM!c2M~AG70Pe zg-<V&z)n#3^fC$T0)<a6lfZ6J`1CRf>;Z*OFO$GtQ26vR3G4%<vtA~F{h<8V%Or3B z6fV6?0tZ3qtCvaOkQ@U;RxgvlVNiJVG6@_3rK?^hfunK^3_-n20>?n*STB>naXAJC zr(Pz36LJg;HoZ&&Cqd!S%Or3Ll&*T21WtqUV=t4y8Bl)gWfC|G3YT6cfpehz*vlkv z9+V$@nFKC?(p4{$z(qL*2BuynflG1>48MAq1TKTpQxB8C6;M9xVG_71$H4HYhe_ZX zC>`}M30w!|zaA!m8=!Klhe_ZjDE;&>3EYxnVA$2eByby4UiB~u+yRA450k)MP<h|O zBybN@PW3Pe+y{k650k(HP<Zq(2|NUaM-P+0BT#tsFbO;cg+~vQz!Ok@>tPaj3d(Oi zOajk9`K^aZ;5jH<dYA-WfWoDRN#G?YTzZ%UUV*};he_bI90P+@50k(fP`Td2B=8m# z9z9F~??Cyihe_bQ90P+?50k(LP&o83348>FLl2X{Cs6+CVG{TZN+;b+0$)J+tD8yS zD=0j=nFPLp@>e&Lz;{r3>1Go60m@(9Oaeba;nK|{z#z}SaHX3`fKi@-;aoS90Fyie z!?A8A0cLpyhJD>k0xa?j4BNVy1X$%67}j+&39!jCFf8k45@45SV3^m<B)}ohz%Zkm zNq|$HfnicNlK_`I14CCglK{6o14C0clK_uA14C6elK`(g14B_alK`JQ14C9flK{Uw z14B|blYoFc14B$VlYpQ+14CFhlYo#s1A|{TlYp>11A|*PlYodk1A|>RlYpo^1A|#N zlYoRg1A{>~lYpc=1A|sKlYo>w1A|gGlYq251A|mIlYopo1A|aElYp!|0|Qq#lYoLe z0|QGplYpW;1H->ACIKaR28M54OajXC3=HqOm;_Yh85o{*F$t*3GceriViHi3XJEM2 z#U!8(3Xd)(0S$Quh7(;(0-Ev+42Qay1hnKC7<P3r324hRFl_2#63~%nU|7|~B%mwL zz_6%`NkC7Yfnin`lYl-bJi3?!4CEOYdb*ed4CNUZ+PatojN};@>bjT&jO7^^%DR{Y zOyn6D^17G=OywCE(z=)g%;Xsu;<}gw%t7JN#Ux-M&%hAS#Ux-U&%of-#Ux-Q&%of+ z#Ux-Y&%j{S#Ux-O&%j{R#Ux-03Xd)(0XtB5bTJ9ogTkYWNx(s#fkC8;Nx)H_fq}1! zNx(^-fq|`yNx&Ht9-T}AE}-z}WD;-%g-0iofQLK-!;4NP0Z(}bhDV)D0$%bA47WO& z1ia-L7%p`(3HZn}Fr4aS67U6uM<<g&fII`ko=zr#Ku|jAWD*DhrISu3fnZQN>0}ZJ z0i}~pCV^0S28L;!Oafu@3=DmpOakGc@aSX`h?HkwXy{}Th?ZwysOV%8h?QqxDClGo zh?i$z$mnDeNC2giP9}jwP&(;k5=fF~U<m1C5=fS3VDRZ=5=fC}U~uVV5=fP2V6f?A z5=fJ0U@+-q5=fV4V9@Dg63CEeU{LF163CQiU{L5}63CKgV36o!63CWkU=ZkJ63CHf zVBqLv63CTjU|{HE63CNhVEEC&B#<x9!0@4iNuWTUf#FpLlR%+7r2kta&%p4cgGrzm z6mOt@I4Iq8FbR}`+&h&?piG{D;YJ6OKsm_WQ<(%RK;hQGBv2_2=?7QIGccU#U=pYX z#p6^aff`VL>tGV71-XAJlRyI~-*qqvG=jpjgGr!Co`GRa2a`ZED1CJ>3ABLnTL+Us zD<~X0m;~D785mkRm;~BE`K*IUpaYc8I+z4HLHVqMNuW!ffgz!TNuV2)o;sKWdO+dU z!6eWNvcH2#piiEG!J>mnpkJPWL9c^JU;-$-I+z3|$}=#?bubA`0;Qi0CV|PI{M5lD zFa;D&9ZUjKLFuNQNnn~h1H+qkCV}ao^wQ2GFawlc+L;7qg8bdiBrpq<f7+P@W`q3I z&Ll8Lo`GRYJCnd%P`+tr5|}5?z_6g5Nnk!GeY7(PECBhdok?IJD1Edu2`rLlV5n(l z5?BoKS38ry5>Pm|GYKpO<&$<Mfn}id(9R^V9F#xWnFLmV{MF7Ruo9F%+L;7afy#?^ zCV|x;f3-6StdVD6kZETUSPLpA+L;8_f#ScNNnkxFKeRCkYyic78<W6Bc?O10ZA=22 zK=I$kB(ND2?`=#1TjUuS?zAxpYy*`OZA=2&LFGgnlfVv;KiilDc7pOn8<W5;P`+qm z64(uj$Ei#Ldq8v>lfXVuxzWZXa1a!)ZA=1(<QW*2v@r=B2IZ4BCV?ZMaA;!^I3~}) zFrke};J7>kLq{8vzzI-!+QuYs5~L3_&H@UTHYS17pnL`zX91NbZA=1ZLHVbRN#GnP z{@a)Y&dW0}q_i;!TmXev8<W6Ac?O1vHYR~fpmL>+N#HUloToAgTmyw)8<W6wQ24bm z3ETjs$2KN`o1k*HjY;4ZC>-0E1a5=kYbuk#T~K+`#w2i0o`FH7jY;4>D7~~X2|NJh zuQn!uhoJCnV-k1-N;hpx0*~b(<3mqC<#8L6z*A6ow=xMl1BG`hlfZLOershCcmWFU zRwjX$pzv;G5_kp5U#(06ujL`*RBu4}tCdOMEhv4pG6}o`h4WM<f%l+zXk`-k1j<jX zOah<f85j<<G6{T<XJFXT$|Ud&6z;7|0^dRDu9ZpP2PoWInFM}<%Im320>41v-^wKL z8<hU0G70<v<+D~MfxjSoTbTqH6c`vLv@!`WDljngv@!{(DKap0v@!{3DKap$v@!{3 zD?;YkW+^f-)U`4R%vNMzsAy#pSf|LqP}IsKa8{9lA*Yo|;G7}@Ls~17z<EUmhJ;oo z0Tv|&hNxC10Zt_bhLBb!0Ujj=2ESG&0Tm?%1`m)uN(>B6txN)rN(>A(txN(gN(>BU ztxN*$N(>AJtxN)*N(>BItxN(5N(>AttxN(*N(>BgtxN*BN(>AVtxN)WN(>A_txN*> zN(>A<txN(1N(>BatxN)iN(>APtxN(XN(>CYT9^b%l^7Vlv@i)&C^0a+Yhe<oRAOLw z(ZVFqpv1uNsD(+OQHg=!P79MjixLCFwH79URwV|83oT3n9ZC!gr&^c<I+Yk0j<hfd ztWjcM*w?}&uvUqIVMhy-z&a%chD|L@0_&9+7}m5f2|Q3@U|80|B=As)fnh-llfWY- z28LNJOahOU7#OCsFbTX;VqoZNVG?+)#K6$e!X)rUiGiW1g-PJ85(7g`3zLARG6O?J z3zLABG6O?N3zLA40Rux`3zLAK0Ruxu3zI;A0Rux)3zI;Q0Rux!3zI;I0Rux=3zI;Y z0Ruxo3zI;E0Rw|q3zI;U0Rw|e3zI;M0Rw|w3zI;c0Rw|Y3zI;C0Rw|k3zI;S0Rw|h z3zI;q0Rw|t3zI;)0Rw|V3zI;m0Rw|n3zI;B0Rw|b3zI;h0RsbH3zI;x0Rsa^3zI;J z0Rsb53zI;Z0RzLIW+s7h0|tg~%}fH71`G@znwbQu3>X+*H8Tm+7%(tAX=W0rHDF-4 z*UTg^#ejj~Ml+MZJOc)XOU+CIYYZ3|&NMR#tTSL>IM&Q0u)%<V;XpH!z$OC*hF#4} z0$U6i7`8Ms32ZZ9U|848B(TGPfnh~6lfW(m28Kn=Oaglh7#QX>GYRZ7U|^Wm%p`EY zfPrB`Gn2p}0|th!W+s871`G@>%}fHv4Hy{enwbPn8Za<aG&2cYFkoOPYGx9+Xu!ab z)667r*?@r|t(i&SiU9*dLNk-VH3J5QsAeXC>jn%AA<awzHw_pV{F<2rZW%Bzcr-H! z+%aHaaB5}}xNE?`VAISb@Wp_E!K|4{;JX0>gF!Qszz+ik2CZf$fu9Bp3@Xh`0>2Cx z804Cn1pXN?Fi12r2{8O*U=V3$5@7tvz#!1fB*65Ofq|!)Nr3q$0|Q4hlK{(41_qX9 zCIME^L~JvY0NYOnhCfYA0_;B-7=AP{32;DZ&YuhnUz(T%xPCG)d}v}4;Qq<L@TQ4L zfafOz!;2;+0p6bs3{RSv1o(b3Fg$2t65#*Iz;LIDNdPp#d!va-K=3C6!<8l`0imA^ z3>TW11cZMwFq~;(5)k>xz;L38NkH@`1H+LfCIPXZ3=9XFm;}UsGBE6EViJ(}$-uCq ziAg~6Cj-NlCME%?p9~BenwSKne=;zvX<`zP`N_brqKQdB_9p|wk|rhrxt|OS3!0b& z<bN_S%xPj0Q25EfFr$e{K=CI7!;~f_0i~Y|3=^7|1eAX=F!VGr38?&JVCZOK5>Wlg zz|hjfB%t<_fuW&^NkIK414B&{lYqug28N0zCIQW#3=AbrOafXz85jzhm;|(cGBD&c zF$w7WWMIf>ViM5($-t1(#3Z2ilYt?jiAg~JCj&!F6O(|!PX>mFCME&Hp9~BkO-uqt zKN%PTnwSKPe=;!mG%*R7{A6J8XkrpD{mH=K(!?ZS_LG6Zp@~Vr{3ip0O%s!V#ZLwX zizX%k%byGkCQVENRzDdS44Rk(tbZ~v=rl12*!*N*&}d>3u>Hxvpwh%7VE2=OL7|CB z!2Tx#gG>{XfWuD)28kvn0Y^|eXkrp@0;Pi{CIM$qI%r}NZ~>)*CME$_P&#O05^w{h zgC-^ccThTLWD@WI#eXA{fF~&a8<_;WK=I$mB;XB-|3)SOA5i=^G70#C;=hqezz-Dv zjZ6amp!jcO5(xOoz;L6HNgxmu|BXxnL7@0=WD*Dl#eXA{KnN)Q8<_+`LGj<nBoGFQ z|3)T(a8Ud=G6_V0;=hqeAQBY+jZ6Yjp!jcO5{L%He<PDX3`l<ylRzve9W*it#DUU5 zBa=WpC>=C12_%5hK_inuA}Ad+G6^Js(m^AWKr$#DG%^XKfYL!DlRzpc9W*itq=C{w zBa=WnC>=C131ooMK_inuCMX>=G6`gX(m^AWKsG2HG%^X~fYL!DlRz#g9W*it<bl#b zBa=WrC>=C12^4_RK_inuAt)U*G6@uc(m^AWKrtvCG%^X4fYL!DlRzmb9W*itl!4Mg zBa=WmC>=C12~>d6K_inuB`6&<G6__H(m^AWKs6{GG%^X)fYL!DlRzyf9W*it)Pd4L zBa=WqC>=C12{eGxK_inuBPbm-G6^(+(m^AWKr<*EG%^XafYL!DlRzsd9W*itw1Lt= zBa=WoC>=C133PzcK?9ROCny~>FbQ;l(m?~0KsP8IG%yMDfYLz&lRz&h9W*cr^nubr z1Cu~MC>=B~2}}T`g9avniJ)}Qz$7pUlnxr01SW&hK?9S(6i_;7U=o-LipK^ffoY(0 z(7+@x9h43lm;`2k(m?~0z)Vm&XkZeU1xg1EOaik(>7ap0U=Ao9G%yLw1;u{@lfXPs z{5LQO%m>AP1Czi4Q2aMA2`q%h$0ATVXkZdp3`z$LOae<l>7ap0U@0gaG%yJ)1Eqro zCV}OkbkM*gumY408khuDg3>_)lfWvFxs6N$t3m0Zfk|KuC_OYV39JRBhXy8rb)fXn zz$CC9lpY$G1U7)uLj#k*Mv(mtOahxg>7jv1U^6H^G%yKl0i}lqCV{P>^w7X0unm+R z8khvOgVI9-lfVv8dT3x0*a=Dx4NL;NK<S}@Nnkf9Jv1;0>;a{R1}1^Mp!CqdB(M*Z z9vYYg_JhK+iAmr9C|xu#2^<8aiv}ivL!flgz$9=Olr9>W1df2xMFW$-QBb;QU=lb6 zN*4`G0>?q=qJc@^1SnlJFbSLlrHck8fm5J#(ZD2d8k8>TnFP*&(nUR!z*$hbsAm#5 z2TB+9OakXY>7t%V-~uRJ)H4ZO1f`35CV@+!bWzVFa2b>?>X`(tfYL=hlfYF_x~OLo zxCTlW^-KcSLFuBNN#F*^AN5QEH$my5o=M;qC|%Su3ET$7V<VHm9Z>qHXA-yzN+0!1 z0{1}aqn=6NJ}7<EGYLEZrH^_hfrp^<QO_js2$VkRnFJn#;<27d;0Y*w)H4Y@1({dR zB=8KBF6x;Co`cdwJ(Iu-P`apR5_kzp7xhd6uR!Udo=M;}C|%Su3A_QNi+U!3x1jV; z&m{2fCj&!CJ(IwDP<p6m68Hd05A{p}A3^D%o=M;nC_U6O348{nhk7P~FQD{L&m`~_ zlpgAt1ipdNLp_tgcTjq$2c4zBz~EEQB=8fI9_pC{eu2_MJ(Iw1P<p6m68Hm35A{p} ze?jS?o=M;zC_U6O3H%48hk7OfhF=T}I`vEfjK3HdH0qfIn0_%ZsMIqFF#lp;P^f1T zVEM(sAXCpI!1{}UL86{XfbACpgGfD-0Q)Zn27!7e0ghh`3_SHr0-V1X7&z*g1h{@N zFtF4!32=iJY}GRf@cd$6_*2Iu!264V;YS^l0B9lCmpUc^p<fIPAL^I{M1L_bys2Xn z5c|cz@S=`MK>Qa2!;?BD0f}D>3=is<1SEekFx;tQ5|H}Ez;L6ENkIA+1H+X%CIOjW z3=9|Qm;_{hF)*B|V-k@2#lUc)j!8h_7X!nQIwk?7UknTf>X-yne=#uZsbdmQ`^CVp zqmD^H>lXvVmO3T@?OzNG8|s(@bbc`~tf^xX(EY{0umWV>Zw7`%bxZ>CzZn?jfYkqH zV3-C{|C@nf0!aOD28Irh`rix;4RuTcdcPSMs_K{o^nWujl+-Z^82n~n$g5)#F#OHH zkWt4ZVDy`TA*qf@!1y-<Lrfi$fXQzLhOjy&0n^_M3;}ga0%pG%7`*D31T20tFu2q) z30VGSV6dxW60rKsz+h3wBw+oUfx)PbNx<ee1A|T-lYrfC1_re{CIN@v3=9f&OahL- z85pGMm;{`EGcbtMF$uW*W?<l}V-j%t&A`A>$0XqXn}LC;j!D4dHv_|;S|$O{-wX`j zYMBJQelsw9sAUrH{>{Mfs+LK>=QjhxlUgPL-`@-j_iC90{C+bq+^EI8tDOM{kQEgb z6&Dp16%!Jb6crQ|<%I)LQAtTjQBh8uKulCfLO_BQClHeqlEh&vLRc1b%euIfl!O$k zh@_yDgp?#dzXYq4s02T&Fh4&(F6$+suEJ%xBus*nl{|={4MTu{xe#eqR!%U3la-T` z6T|^=p&YOjSQgA;1=#?R0+Fn&?3}EutnBRU?3^5|Py|wfgprs~b6CMD!Ir^9@Y768 znDR_`04!W-Lo+e4!GMGWlm)&P22QZC!I@wNSP_^7BG@oo&O=>*&3p_o2?>x8$StBE z29tyYCny~=aWa8pADVPw6cdaAif%%|$^=eBtgNiq;tdp&AOpabLJ7FxL^447Nx>jH z@nb1a3@~wX<8m>6-JlQydlsaf2}BT356%-Hb<hAHl_D;jn3&i^!GMX#z+w^=gt!D0 z8Yq|vg@@pP#6@{Td3Z#5AUeS$s64=dVe+DoR0rmw5NP5ct|$`@!`Ru`!Ft&c@(8CP zIS5`|@PdMaiHQfHo@OjjcBoUhxgiWTHXa^GGGjuxhn<~WN{R{ODg<U?WXI<~CMHmz zL(Ie^!QnwFL0ljpSw^Y_gw*r!aN&t#JkA5fB^MVL%xPR8HWL##=$V+1jO5`#X*Hm` zhldMcKS&!0W3v@zA`>XxffO(?@i2kx<l*6AV&dWgVMMy)0$Ib(4$=gYMvirHaegq6 z0x1E-D9lC>AC#&=hGSxoQ6Nz!u&E#tW<N+D$P%zaKpZfJs0A~bkWw8FD1AXi!4y*X zGlAU;vj}7W5{3zbYz7M>hd&d@6fQ0vCUEG0&4m)6&_cE!DvY2=4}W$@fPwAj0mVNP zDC|KP9{xN?;SaJ35&p1H2Z=&3JpDmZ4cMPxCO9}CEU=AWCfMtcZ~|Kkaz4mvE^u0a zm<W=9vmgw(1Niy*AtEr63pxFPN;QZL7$n$T5K#ydWB?Bj4=CM(N(B&x`5%-TK+<3r zgBWn@c|kl>Oo{zmVC%V<K%oH2icph5xdF@s1r&%uUHhS-019T1rQqy`EBrwj3UB%Y zWnGAY$Rs%AkOdHINa%z3pu`TML9qrZ4G<0jmkgko0jEPy2p}*Q7pP)`^PvV1P4TdU zi#TXz7l-I$gO!3P{Uf*?_!yw#1eCnNo`EO?nF;eHhz4Z@h!S>oQ2hk4jERQ_niJWX z*ubd|l<bgW8WQ#pGjWmZQc_Zg`VY(kU&hMA1E!=9=79@MFd@YQf?`5qLR?%Rw}LRp zogf+yhByJ@co+#PK0qxPP^kzms$ddO55c(DX(osprKF&aWn#iCULdyOB=NWxDh2Tw zsMrNN7F5WBid$%2M}!YJ>_j1&K-mJPl_W_J+uVd13bCIc2~rNu1_V`-tpH>NB<#pG z0-}*>20@I2kziwC4usJ#Nm6N076lhWP>tw(s4z~7SoP@YF!>NGaQO$9I7An?ECMk> zr45J%)gNG*5P{8HNB~2!1yU0bT!cUfhzh(UA&be9N4AkH14cEG6#}Br;t{E0lErP1 zm=K;;0B&tKWkf|qF<O7fDPcg^I9-cJ0@~|=Ha<bk93D`G1Fs{YSxy{Oz$5A>?B0W@ z6$DYBQ(cjIDiHN}oB@+U8Ula`5vC!g!^;`M8ld$pOdqvqVn&PTuLd$`1o9*8>;{?6 z1RtJ)wKHHgL-@Gl!J~{|CAids1~WkzB9E>fCW<hh0}5a=P%Z~nK4g@WlS6`4LIO0w z0Ox~wtRPcCj$?wzf{g(2IVC_Nub{zEh<i9BB$#B804M_pf`O>0h_ILl2!k>P2usU= zWEnxzAs{YD0f-h55ET`b6cd7uBSFFxI|<g$2<m-8DnCg{NiiW-2pdF#`50Q!4}Ql` zfF=Mh1V9XKZf<TK(8wy9A|$Sq6ep+=%_$`Xo)iERU?FgTfuukxIHfqHKms5|Qk>vP z2UeU-ZIEZ+7;@-6eiF$!OyKL~!PZJjf+$HTDF^~_Kuj==iva17B&Z6*KCq=Dg+TT_ z6TAln@;$at1%)VBTucZ|QImjMj@?jHhti0L-D(U`oVFvW#Ht3K5y)U5nN0;IsN}(P zA{7j#fe{FI;xHUsHh|?2EHIZ?0%ij?^<X({5|oQcO5rRv!M4($0Qm`=5fNnpNC+K+ zm7oiv@tLH+s+d5-Fi<JDp{O3ipBX?w1l5m0fo(vDq8d8{c?hqdv(S8sE=>U+IhZIg zW)N#d_8}@8+0h^wP=ij2jhzoPnhC*DQV?29NKi~jNDAI`0X3+2cm%-<3Zy{7pmZ*U zZQz4&XNG_Zki&R*Kr0+b=pYd=6H{7%jSaL0frL&r$X%G`P*a3SN(xjqAYuuZ;UK3_ z10!t0!eU}#0=Wi)vB*P(@VNu31S<tfKoGM*BvvJuf@qc@D*#C$^NC>7u8_fRIT=pH zZy<JAc=dx_T8cK=7gw64o;WD@sDr8JCR&<A9lv5Tg_f=+*=$gOfRR!$(=bY=1#w89 z_JRim$!;6~4RFWOfI*sfXyAYWHWEBI23jtNa0gfj%mqz0!vaVW#sJfhW)FDw2{bbb z7NZjZb{Rf`PVN9%1D>KlaSKS45=?G`55*C9ILL0pqYMr}tzI~XiHS*6P*6Ys)<A~Q zAO(=oP|$EFcq~*9A_p2B6_k{eWCATB2Pp$hk`g_ui0oKeu$h<`L5`*2`gSHJ(8_rM zgyTt@EMX(09Nu_`r5hBQiHS*ETv9?xT%1V?GQbCl0tjYgWCV>x{77LI_>syi@FR^` z;72;Mz>f@OfghR70za~t1%6~RgN}z}_>sdb@FSO5;71;_z>j=pfgc6T0zV3w1%4DU z3;ZZ%7Wh%ZEbyb0S>Q(*v%rsXW&zN>P(Lb|1%6aA3;d{pn8C!r06OXtj(=1$3;d{I z7Wh%iEbya_S>Q)Kv%rrAW`Q4#%mP1}m<4_`GYkA^VHN<Lz>lsM#Q)LCEbya^S>Q)I zv%rrIW`Q4_%mP2UAa;Z7rzQT;O&@z`>4(8!_KzOSaQxAWJ-vY99E1mhyNPwfk3MDr z(6O5MFf#)K1FbR0y+8Vy1%6C`g!hk$%mP0qF$?^d3^@ZGvD=0gEJg+<24)5p237_( z26hGxjEjR38Il;18B!Qh8PXWi88R3$8L}9%8FCnM8S)tN844H*8HyN+8A=#R8Oj*S z87dem8Bi~Ja%6B~aAt5}aAj~~aA)vf@MQ2}@MiE~@MZ90@Mj2M2xJIi2xbUj2xSOk z2xo|3h-8SOg*OSBIR_NY7^)sHJY;yp@R;EV!&8Q549^)}FuY`V#qgTp4Z~Z8cMR_t zJ}`V__{8v;;S0l82GH5*KNx;8{9^dc@Q2|q!#~g&^b7|X4lx{NIKpt0;TXelh7$}Y z8BQ^rW;nxemf;-3d4>xN7a1-wTxPh!aFqdcmi!Hdn+&%YZZq6rxXW;lp@NZ-k%5t! zk%^I&k%f_+k&Tg)k%N(&k&BU+k%y6=k&jW3QGijHQHW8LQG`*PQH)WNQG!vLQHoKP zQHD{TQI1iOQGrpJQHfENQH4>RQH@cPQG-#NQHxQRQHN2VQI9c`!IQz5(TLHM(S*^Q z(F}B2I-@0{4Wl)q9iuIy1EW2o6Qd)e3!^im8>1_u2P5b_aBoI0MqfrBMt?>>#z4jZ z#$d)E#!$u(#&E_k#z@8p#%RVU##qJ}#(2g!#ze*h#$?7M##F`>#&pIs#!SWx#%#tc z#$3i6#(c&+#zMvd#$v`I#!|)-#&X6o#{UdejFpTvjMa>FjJ1rx3=9mxOwEi<jIE3< zj3G=NjO~nJOyNvDjNOb340jnLnWC8{F-~MmU`l5C#+b>J!8DU`2I%B#hJ2<XCI*I5 zriF|P7#A}xVqD6>38X1><tYW>7K3u$FNRV+Yd)#`TO{Ox;Xd7&kL+W8BI(iD@U} z4zT{cjC&Xv7`}tqphR(uk%8d|<4HyahU1K9Kxbn!o?|@Ac!BXe<0Zz6j8_;hGhSo7 z%6NnEI^!+In~ZlDZ!`8W-e<hW_>l1d<7380j87S#Fg|B|#`u!)1><YRSB!5N-!Q&s z1f632nUR6vBjZ=bFN{+e_cQ)v{K5E}@fYJ?#y^bz8UHadGBGeQGchr-GO;j$){$~D zaWHW+aWU~S@i6f-@i7T92`~vW2{DN>i7<&Xi7`nsNiaz>NioSX$uP+?flha3U{GdK zVp3&NVNz#OW71^OVA5vNV$x;OVbW*PV=`niU@~R`oyrXICAqkfv5k>|p_8$Tk%6Hf zbaFa8+$MurQ@|w1^y!S#;A{qlIbil&FgYJgg47`6Wnj^jU=k$0j*)?3BjYAGA0)ON zg$EKD#ltZK)-W?LtYu!u3_6P&bl&z^X3#0y8<{sTZ)V=Yyp?$y^LFMP%sZKPG4E#H z!@QSyAM<|Z1I!1R85j;TA7MVqe2n=x^9kmY%%_-7Gq*8!Fn2P8P6?mLJc)TS^AzT( z%+r{sGtXe2$vlgBHuD_jxy<vJ=QA&0UdX(dc`@@6=B3Qbn3prJU|z|*ig`724|5+g z=q&L`%rl_%#xmvwP}XhcTg-Qv?=atIzQ_EK`2q7|=10s=nV&E}XMV=~lKBPmYvxzX zZ<*gPzh{2OJPT|-?$`=o31kUk31$gl31tam31^95iDZdliDrpmiDijniDxljF=R1f zF=jDgF=a7hF=w%0v1GAgv1YMhv1PGiv1f5$ab$5~ab|I0ab<C1acA*h@nrF0@n-R1 z@n!L2@n;cW5o8f!5oQr#5oHl$5oeKLkz|o#k!F!$k!6u%k!Mk0QDjkKQD#wLQDsqM zQD@O$(PYtL(Pq(M(PhzN(Pv>`VPs)qVP;`rVP#=sVQ1lB;bh@r;b!4s;bq}t;b%!? zNnlB4Nn%N5NnuH6Nn^=m$zaK5$zsW6$zjQ7$zv&GDPSpPDPk#QDPbvRDPyT*sbHyQ zsbZ;RsbQ&SsbgtmX#h3PFaoHTrH7@TrH^GI%LJCmER$HKvP@x_&N7W<Cd&+#*(|eI z=CaITna?thWg*J~mc=ZKSeCLZVOh?yjAbRu3YOI@t60{utYKNtvW{gV%LbOsESp%i zvTR}5&a#bVC(90&-7LFU_Ok3@+0U|%g@NG^%R!bSEQi6aIKgrpOrK#n4W=0wF0x!; zxy*8j<tob+mg_9nSZ=c1V7bk5i{&oM9hUnn_gEgXJYadu@`&Xr%M+I8EYDb8vb<n< z&GL%nEz290_bl&NKC*mZ`ONZ(<tq#5WO4?EpDdsg$uYc3LxDurB-Uis6xLMMG}d(1 z4AxB6EY@t+9M)XcJl1^H0@gy-BGzKo64p}IGS+g|3f4;2D%NV&8rE9YI@WsD2G&N_ zCe~)w7S>kQHdbuTG-NemHD)zoHDxtpHD|S8wPdwowPv+pwPm$qwP$r;b!2s7b!K&8 zb!By9b!YWp^<?#8^=9>9^=0*A^=A!W4P*^s4Q35t4P_0(YCbkQN5uwD2oUOD3?7#b zj7vsR_>3gKVoOb<{>MMofGy01lh|ndkH$Z~v9{rq*0K3zH2sgJ|B;;jvE_-OE;gE{ z2X~$x>G3nv^VdMTe>D9JbPNnH`$yB$@QTk--{21cTBmnfn~&djqq4LO0Y*6nIc7N~ zIaWCqId(ZVIZinaIc_;FIbJy)Ies}lIYBuAIbk^=IZ-(gIdM5LIY~JQIcYg5IaxUw zIe9rbIYl`IIb}H|IaN6oIdwTTIZZhYIc+&DIbAs&Iej@jIYT)EIb%5^Ia4_kIdeHP zIZHVUIcqs9Ia@g!IeR%fIY&7MIcGU1IafIsId?fXIZrtcId3^HIbS&+Ie$4nxj?x9 zxnQ{<xlp+fxp28Kxk$MPxoEj4xmdXvxp=uaxkR}Hxn#K{xm39nxpcWSxlFkXxoo*C zxm>v%xqP`ixk9-Dxnj8@xl*|jxpKKOxk|YTxoWv8xmvjzxq7)exkkALxn{X0xmLLr zxpuiWxlXwbxo){Gxn8**xqi7mxruTU<R;5alA9_Ay6F%W7ob}yA?$^63*;8dEs|R* zw?uBa+%mb9ax3Ik%dL`IE4M~&z1%vvjdC00Hp^|2+bXw3ZoAwzxt(%5<aW#LlG`h{ zM{d8|KDmQ(2jmXR9g;gLcSP>E+%dV6awp_Y%bk)tD|bfjyxcjti*gs_F3Vk#yDE1@ z?z-GHxtnq~<ZjE|lDjK+NAAAdJ-LT+59A)pJ(7DW_eAcw+%vhCaxdgw%e|6&EB8k3 zz1%ywk8&U6KFfWQ`zrTE?z`MKxu0^No9iHM2az1|obp`q-10o~yz+eV{PGO)jPgwK z%<?SqtnzH~?D7)wlJZjW((*F$pqt<r7zE@6<%Q&h<wfK{H_0(DXvk~IYsqWN>&WZM z>&ffOE66L#E6FR%tH`U$tI4a&TgY3=Tgh9?+sNC>+sWI@8^{~V8_65Xo5-8Wo5`EY zd&qmrd&zst`^bZCLStZXkav`Kl6RJOkq6zR26ADfJOcyhRx{9zW}w^50_7PPK)0fS zZbA!}&ydfQ&yvrU&ymlS&y&xWPmoWPPm)iTPmxcRPm@oV-zC3W{)GHV`BU<z<!{N~ zmj5CDQ~s6wYx!UDzd<)}F?7gx%6G|k%lF9l%J<2GZtnuwiNG`DXUfl#pDjN}ey;pH zdC=`z2ssdIh5SnSRr0Il*T}DxUndW`{R$+Cz&qqYH(7yht%8Vckl!d@AP>3)je%h% zbUvSf;SAU<AQeUO#quTcpj*&DJO+jv@}QfeAZ!qMLH?qAnLOxLG!T!0;e|Zth9?jk zbfXgk!vpz;@>TNH@}PU6K%x)~x`heCs*taguaU2X+XoS)4tWylpKOMw)G=_>ltB;z zgzA6C|4#p%|GWHm{qOeQ{lCY5&;MTkz5o0C_x<np-~WHW|G@u2|AYUB{15#f_CNf8 z#Q(_uQU8&>rTAazzw&>T|EmAh{;U7j_^<h2>%aDYo&UQ3_5SPsH~4S(-{`;bf0O^F z|IPlJ|F`&W`QHjfKeAb)Y*Itu#|&nHAG4SRe#~JO_%V-J;Ku@Hfgg*Q1%50+tPTFL zj9K8v3TA;HtC$6TtYH@Tv5r~b#|CDBADfs3er!Qfw++Dtx#PzUW`Q5OP{lyvApBzw zv%rsi5V;=*AT&sP6px0$Xb8|J1b!T17C6dygz*^T3C81$CmByOo?<-1_=)i&<7Y<D z{ihA`pxaLy<w19!HpzF(GcYvEgYG?Tkq6y++A0sa^Rx}zW@?uQ-B&t69&}sjM0wC% zrIX}AH<eD72i;RTMILlZ=~Q{p9i`L2ZK&z;p!-D^$b)VdT__K_TXc~;=w{Ky@}PS~ zm&k)|6<sP1x>Ix+xJ|WO9@K)`EDvfY9hL{RW<En(FpyKVhAs)&jD?$IMguHR0NSL< z#>T+#|NnoIYC~M=af!oH;)CnN-x&kbGt}tH{q9yEH)}j#W&kbu_GDsU0AY&<%nUIv znHd^BF*Bs+WG3kv>KW^$<m7<Vifm(I_#w!^a737a!9#$7!9|#X;fn|Z!wFFah7b`3 zh5`WwhAZos7)-V>F`QV-#PDS;6NAP&CWbryj0~VV(n0sUgL;;KK=-+W?q&wvs|&iD zR*r$8LZ5-*i9Q3v976^M6+H$9&|Q@hMhpxMlNlJ6m@qIHm@zOsFlS&mVadSo!kB>} z!<2#Hiwy%qgcSpWf&&A?4R;0x&}Nq(;S3BOp$rT*0SpX1Q49<w-V6*C5ey77!WbBO zf*BYxd>9x)>KPc`G%zrvv@kHF<TEhvbTcr_NMc~vk;TBEki)=`)6T$<lg+@Ok;}l~ z(ZRqFlF7i}k;lN$(aFHjkio#fkj20-r51D-5(C4UHU<Wc1O|p12@DK(5*Zi@su&nt zY8V(eY8e=6Dj67TN*EYSDi|0Nsu>tu`WP5w8bEh3g6?%?U|{KGV0e+lz;Gg&fq^B3 zf#E|k1H*!328KJy3=CV685oWnU}D&FfQezpb|!{|i3|)Z6B!sTOk`kq($Bz<Gl792 zW(os?$rJ{L6EheXUd(1-STUJ_!NQ$^LBXAYVTBtbL&qv628M%73}?18F~t01U?|zg z#4u$)6T_3eObjghnHXaBGBMoP!NedjkAb0LF#|)+A_fMNMGOon^BEWx%wu2(SjfQO zF_(cMU;zVz$`S?!n?(!^4^}cTnCxO;@L9vaP_deU!DJf)1IKm-hKB773=%sS7+kh6 zFsxX`z%XGe1H+Q_3=DgAFfeGWWMF7m!N7200|P_HMh1qQ%?u0`n-~~gY++!~S<k?* zWE}&8$65x48CDDod#o538mt%?D#RHXK8P_gOc7^fI3dQ!aN__I!-oS*41e}AFl6jy zU|6$<fx%-J14GMh28J8E7#KYEFfgpRz`$T|fq_9|Hv_|x^9&3VE;29}oM&Lza*l!F z%S8qTj!O&-8_qK@s9a)Tkh#RbU~!RwVb28yh8MdT7_MAlU@*AOz+iKmfuZFt1H+0t z3=AO;7#MmUFfc?sWMJrd$iVR7Dg(omYYYq`4;dJC++<+5@sNSR<{<+^$wLMPfd>o> z1`ik*K0IJxD7nGFP;i@pA>j@K!<+jI3>%&@Fr0YGz;M8ofx*Rvfnh@oBZEyGBg2<) zMurbTj0^$6j0`J685xd5GBR}VGctIvGBQ}aWnj=?XJokXn}OlYF9wE+KMV|SUNbQC z2r)94a56Foa56G{U}R)4U}0p~Bf!X@A;ieAfR~XWf{&3Qf|HS90S_a?4lYK94p&Bo zGp>vb55yT6j<_%~TyS7y_#w&2z~juw@I!);;fw(z!wEM=h7+EQ3=_N=8CrZ887_D* zGCc8SWRUP@WbkokWa#l@WZ2@%$dD1l$Z)`ok)cPPiJ_yKk)dWL1H%IsCWap~7#S>P zFfzEzVq_?2XJlB>!^lw3#>h}Hg^?j<IwM2DOh$$^-HZ%B+8G&ax)>RFIvE)hdKeib zrZF-+n90cC(#y#3XBs2JgsF@SQ(71qTBb2F_;fQe-05Lt$eF~*@S%;7VTTR_!v`G( zhA*3#7*1?qVi4KR#PC3ffnmZnCWZ?SnHa7VFfs@fF)~<`GBWT?W?;~fWnf^DWMKFs z&cL7`!@#gYhJoRZ6a&KqX$A%#DFy}s2?mCUIgAW%Vi_2Y#4s>?iDO{663xIMv51jj z!E#21I|~>Y{w!x?NLazhP_vYgL0}mp!-Qpw3^L0Z8NMuHWSFv;k-=jLBg2s;j0_QL z85vHjWn}oVl9A!fDn^EaHH-`#D;XJ1tYBpDS;ffUvYwIQ&3Z<LFKZbY=B#66ShInV z!NZM_fn_HnL(4Wsh69@z8CrHSGCbML$dIvxk-=mWBg2N>j0|tKGcpLAWn{=X%g7LL zhLK^-8Ab+)1B?uN&N4DQImpOx;uIr8&1pskopX!~0_PbSHXLJQ(Amq#@Zl6A!<xg4 z3>l{w8J3)2WJo#6$gt-mBZI+hMuwCNj0_h}F*0nq!pP8Yh>>B%BnE~jMT`tR#f%Ix z2bdUg3K$u-6f!bc6f-htd}n0f`N+t?@rjYa;x{8h&tFD{7)B<B7fehHB1}vSOIVp0 z9<VYo9ART(@cF~Y@a7LALk=4g!-fBh3_R>i3=`Ox7}l^cF(j}uF*L9;F?g^sF&y~E z$k4;c#Bha?iNS%DiD3g56T=BECI*X*OblN>F))<8XJAPA$iT4UI|IX%PYet_f{Y9= zJ~A+D`NqJY@s5Fk=LZABk3S3yXZ|uUr2J)Ii22IEVDW{4LEt+B!-KC33<<v&7^ci- zWSGIt#PCLhiQ$MC6N7{p6T=@aCWbToObj<%nHW;Mm>4v?nHX-kF)_?>XJW|lU}C6< zWMcRb#KfQx!o;8v%EVw0#>9{j&cu)r!NkB}!o;8f!dgrWQ`DIlB=ngWI`o(r_GmFN z{7_(G=+I<h5K&`d@Q`O>s8C>Huu))QXfR}Ac%sC_a72fR!3D&&VPX)mV`6BqWnw6> zVq*AV!o)Dcl!>9ljENz@go#1LnTg?pB@@F1M<xaqOC|;x2PTFy4onPlteF@BESMN7 z?3fsq*fTK**fTMtm@_drxG*skxG*sYSTixqab{wWFlJ)lFk)gbP-SB1QDI`J(O_aY zBG1IYqQJ!PLyd`{K$(eQk3JK_8AT?B1~n#z4}MGxJ6xC;9G){V90_1z*pb4-Fd>eK z!6$)<K_-Zap(T)sLE$+QgUWLz1_m)kh8$5w1{P69h8a0b3_o(27&vm67-r-$F}%oO zVz9|&VklY1#E`L$iNR+b6NAM%CWbeKObjndm>2?zm>3j_nHY8yGBJddGBF$|Vq$10 zVPZH_%*60yCnJNyE=C59HB1a0wM+~w%a|A{<}opRna9MCGM|ZoV=)uMf%!}f3JaJR zS{5)dJXyfRV6%{kVa7rxhJr;*3<8Uo7*ZB9G0a)S#BgL46T_4xObjkdnHb(IW@1oS z&cx8NjENy)E)&Ct*-Q){@|YNwEN5b<SkA<dvx14iV<i(q$x0@MKg*dIcAR8p$XU(A zAhUvrVZll!hB>R57%J8<F>q{RVu(1(#PHz~6T^&yOblC&Gcn{GVq%zbn2BM+5hjK? z>zEj3tYc#6S;xdMWgQd4gmp{|Lf@Gg)V?z_7=LGGaR1KC5d58)A>%tUL+y8FhUwp# z8CHB}X4v(enc?tvW`=X$nHlbUXJ&ZyotfdscV-5*AIuC=KbRSGelRoG{$OSZ`oYYQ z^Mje8`v)__!XL~GJAN=TocO`aaQz1}!|NZ+4Bvk+GqC++W{~;G%%Js?nZfZVGegu* zW`=^F%nVIGnHeVkWM)|VlbK=rPiBU*KbaYx{$ytO_LG@`^A|IN!Y^h9`(Mlq(Z84( zvVSo%)c#^-=>Nscu=E!*!{J}d4EKI9Grar7%)s!QnL+S3GlSf3W(M8g%nX*lnHfBO zGc&~hW@f1P&CJmCo0(zdZ)S#*znK|s{bpwP`J0(R@((kE&L3t5n?KA9p?{bea{n+h zH2z^`==sCUF#8WP!`eU0414}CGo1dz%y9P)GsC+-%nbkkFf;J~WoD57%gmtvmzlxk zFEc~*UuK5FzswA+f0-F3{bgoY{Fj+w%U@=O6MvZ*ZvSOw`0$sRf$1MJgWx}A2Kj%? z44VI#8O;7MGdTZaW(fYr%n<*NnW6X}Geh@3W`=qHm>D+xV`ez?kD1}zKW2u<|CkxR z{bOeM`;VD{`#&>-<bP%c?f=XScK?|feE%~uME_@I$o|jFQ2C#kq4Pg8!=(Sr49ovB zGwk`#%y8pBGsBzzpaEbO1`!4p215oG1}6p<hA;*eh71N4hAIXYhIR%PhFJ_O3@aH} z81^!-Fq~vyVYtP>!tk1bg@KWgg+YXog+YOlg+ZH<g~5T5g&~xYg(01hg`t9xg`t~~ zg<%OJ3&RdZ7KTfVEDTQ=Sr|SuvM~H(WMSZDVqp+wVqs8ZVqwr@VqvgkVqx%PVqu79 zVqqv`VqvIdVqxfDVquuh#KN$eiG^Vw6AQxyCKiTAOe_qanOGQDnOPX*m{}N1m{}Oy znOPVTnOPVbm{}NRF|#o2VrF5u#>~R-pP7Y0g@uK|m4$^NmxYC)m4$_25eo~$Ru&e9 zLo6%|7g$&r?y;~iykcQt_{+k=z{$$OAj8VSpvlU@V8P15;KItn5X8#D5YNiOkju)# z(8S8Z(8tQcFo%_eVL2-c!**5{hU2U(4A)p$7@n}QFnniaVPIopVGv?tVbEY>VX$Un zVenyNVF+SlVaQ-(VW?$eVVJ_k!myH!g<&@v3&SBc7KU4FEDZ12SQyyYSs3KlSr~lS zSr~HJSs13WvoNe+XJI(X&cbkyorU2mI|~C32MdED2MdD@2Ma?a2Ma?k2Ma?B2Mfa# z4i<)`94ri5IanC>aj-C);9z06%fZ6%iGzhfn3IJ;pOb|ln3IJekCTO=o0ElMIwuRm zN=_DrJ)A5I=Qvpy9&xfTeCA|fVBun65aD8BP~&1@u;5~0aOPrR2;^d6h~i>l$l_vQ zDB)sZXyjsHn8L-vu!@U?;Sd)K!#OS%hTB{$46nFY7`}0_FmQ0QFvxPVFz9l#Fj#Z5 zF!*z`Fr;v^FqCt%Fm!UWFwEs<VOY=2!f=qAh2a7>3&U-07KS(6EDXQ7Sr~+QSQwOf zSQrd>SQwmmSQsLCSQzqnSQwgkSQw`AurRFPVPV+G!@_WuhlSxP4-3Ns9u|f_JS+@+ zyetfIyetg*yetg%yetesyete^yetgOyete0d07~?@v<<S;bmdC$IHU-lb3~omyd-( zo{xpWh>wNAo{xngfRBYChL43IkB^0+fsch@A|DIGay}M@9egYd=lEC{9`La+eCK0f z;N)jvP~c}_(Bo%eaN=iS@Z)D;h~#Hs$l_;VDCK8i=;CK#n8nY+u!^6B;Q&7i!&!b7 zh6nsC44?Q}82<3HFz^bnFvttAFc=B2Ft`Y?FoX)QFr*8xFq8?fFtiJ>Fw7KSVOS%; z!f;rCh2gpY3&U#x7KXn9EDYR&EDX|uEDV-{EDS+{EDY&_EDSY*EDTcwSr`@xvM}rs zWMQ~2$inbVkcB}+h=svOh=svTh=n0ah=rk4h=pOI5DUX{Ar^*hLM#l2gjg7^39&G| z5n^HZCB(wOC(Od2D$K%QEzH8;C(ObSBh12(Bh123CCtLmDa^t!LzsnOsW1z}PGJ^? zW5O&9w}e?3UJ0`>d>3Y6U=v|s5D{TvP!?ffuoPioa1&u+2o+&rNEBgVC=y{|Xcl2% zm@LA=ut<c3VVejG!!Z#ShRY%>46j637`}?IFtCfVFo=t?FldOfFgS{`FocP+FcgTg zFf@p=FiaC=VOT86!mvS<h2elG3&Uek76t|}76vgf76wx>76v~t7KRit7KUOm7KUyy z7KWK(EDW2(SQyTVu`oOrV`2C$#=^iM&cdK3&ca|V&cYBN&ccu(&ce_v&cZNPoP}Yt zI19rCaTbOT;w%jO5-bcl5-bcp5-bea5-bem5-bc&5-be85-bd}Bv=@hO0Y1jmtbMo zE5X8WQi6ryngk2O0|^#}ml7-tKP6ZgxFlH^L?l@l<Rw`cv?W;>%p_SD+$32TA|zQD zawJ(8Y9v`0CP=a{ER$qmI3&r!a8;6p;jttO!zW1=21Y3s27W0P26-tK216+p23IK- zh9D^xhGZ!ghB7G@hHfbqhIvvf4C|#>7!FFYFkF^mVYn~F!thdxh2e`73&TGt76uM! z76vhC76t`r76xr;76uDx76un-76yN57KR9E7KQ|A7KQ?87KT=77KWwLEDW2aSs0E< zvoPF{W?^_O&BE|gnuUR1hJ`^>hK0ddhJ_(ehJ_(ThJ~S0hJ~S1hJ|6K3=6|j85V}k zGAs-SWmp)_$*?dymSJJ|Cd0zOA<M!bEz827CCkEKA<M$xCd<MQBFn-MFU!J^E6c)A zEz82tDa*nzQ<jBcl`IRxPFWU)6S6D}cV$@^KFhK&u*$J8h|94sXv(oL*vhdm_{*^{ zB+9Wc6w9$Nw92tCOqXL}SSiQCuv?CW;jA1B!#z0`hL3VA49xN@45IQZ4C?YM43_dN z3?A|<4Ds?T42|+E4D;k!7?#VkFzl6QVYn>M!thw0h2alKy#fn^ngR=hkpc^Yg8~bK zp8^X*tO5%|jsgoqjRFfphXM=3Oa&H(^$IKu2NhTtE-SDwJXT;~_^iOfz^cf?Agaj1 zprOdZV6Di);HSvKpu&hb&&I{T&A`LJ%fQFL&mh1c$RNZZ%pk%b${@xd&LF`c$solb z%^<@d%OJ-f&!E7d$e_fa%%H-c%Am%e&Y;1d$)Lrc&7i}e%b>@g&tSk{$Y8`^%wWP` z%3#J|&S1e{$za7`&0xb|%V5V~&)~q|NX9uT(F`#Ru?%qx@eBzJ<ecMD%}~Qo%TUKq z&(Ofo$k4>l%+SKn%FxEp&d|Zo$<W2n&CtWp%h1Qr&oF^uBEuwx$qZ8%rZP-pn9eYR zVJ5>YhS>~r80Ip}W0=pdfMFrSB8J5bOBj|iEMr*Cu!3PF!zzZ=3~LzHGOS}*&#-}E zBf}<!%?w)@wlZvE*v_znVJE{bhTRN%81^#kW7yAdfTVL&t}~#XqjI0&0ZHe$d}lyC z$K^i*10y3N6C*Pt3nMEd8zVa-2O}pV7b7<#4<j!lA0t1b0HYwI5Th`o2%{*Y7^66& z1fwLQ6r(hw45KWg9HTs=0;3|M5~DIB1A{7~8lyU+2BRjU7Na(!4x=uk9-}^^0iz+K z5u-7q38N{a8KXI)1*0XS6{9ty4Wlii9iu&?1EV9O6QeVu3!^Ke8>2g;2csvW7o#_$ z52G)mAEQ5G0AnCy5MwZ72xBN?7-KkN1Y;y)6k{}F3}Y-~9Ai9V0%Ia$5@RxB3S%l` z8e=+R24f~;7GpMJ4r4B39%DXZ0b?O!5o0l931cZ^8DlwP1!E;+6=OAH4Pz~19b-LX z17jm&6Js-D3u7x|8)G|T2P5dTk8Z{u#$Lug#(u^Lj1w6rF-~Tj!Z?+28sl`v8H_U- zXEDxZoWnSmaUSD*#s!QE85c1wW?aI!lyMp3a>f;mD;ZZYu4Y`rxR!Ap<9fyojG$9J zHZyKv+{(C(aXaG<#+{727<V)7Vcg5Ok8wZa0mg%jhZqkt9$`Gnc#QEl;|a!-jHeh+ zGoE2Q%Xp6QJmUq%i;R~TFEd_Yyvlfu@jBxT#+!_{7;iJ)VZ6(DkMTa^1ICApj~E{_ zK4E;y_>A#6;|s=@jIS79GrnPb%lMA*J>v()kBpxfKQn$|{L1)^@jK%W#-EJ87=JVV zVf@SZkMTbv0}~??6B9EN3ll378xuPd2NNd~7ZW!V4-+pF9}_>50Fxk-5R)*I2$Lw2 z7?U`Y1d}9_6q7WQ43jLA9Fshg0+S+>5|c8M3X>|68k0Jc29qX}7LzuU4wEjE9+N(k z0h1w<5tA{K36m+48Iw7a1(PL{6_YiS4U;XC9g{ti1Ct|@6O%KO3zI988<RVe2UB`{ zVo_0IWqe{mL26z~d|6^nF#}92ttd4W&dJOxPAw`yRgjlj4wo+|O2ssxC^a{~EHyqe zFD11Ct`b==J}t4h1TIsYS`uHJS%t6^#7T*VT2qo*kqJ_plvtdamzWDum6TZ$pI4F* zpHrO1kRA`?<-&QzCHX~(>0p&P`Q`D+8KrsIApa#*mZYM19Hbi|2K6|SDu@%11fbqU z)rage+%hmfBbkQeab(fVs#KWolM|COQsYxni%W{~D;d(`A$&-rz`5C}mGNo$MX8C& z8E`R(%OT1k?t@E}CFYc-B5TM=O)QE}Eh@?{0;$Q*EyzhN$;{7-PfSUP&n!vJ1qEF) zLO2<$9-9P24Jh1^ltV)mNd)RPh-#2U5C<aJl~<Np1d8+Id@u{*xcI`-#G-7l6CtAI znI#$VX^A;GNr}lI@sz}p#GK6Hl6bHS8Pen70*KIo3uUInr>B;Hl_0CkOo@lOCNDoe zFTW%+4HWFix<HWz;>V|z=H#Gg%>$=XkQ`VIJknqysICC1!E^*v6o(t2vLFg%D3TLW z!LgN+SP6=(ltfTEPf3Z-&Ce^zKoO}-O)P>7Aca$EJSc(^i$IYF)((v}FdGt3(11vV zhFfKPep)=pI7k@4g^S}e^B@)@OJtSiWG3bzi{$3#r6g9ym#3y?V>1a!8f+rEO<=Df zn^#<l*E}R?tmc8-k&=kwM`SBAi{sNWi;7D?PDQagvp7B{5r=qcVgX7BK@vVVNb^$5 z<5P0s)`7UFK?I3oxB@U2p&rD=RFC2?kdlJLqGEWAf&@x3!38MT2_QbQ7mG`Z(op0} zlS+yblR<d|k*bPef?&JgDG4qNG7v6Wk{@4OQdF8;5?_)Fi>k83oXivyPCQbugJqEe z1|op!Rfrha0jLI{#UVr;$VDJ!nMJ9|CGn|+rHSBN3*lxY7K6&nl*}S%)dDUC<CF6X zKp_v|Kyw0wlbcwQoRJFhA%qW!QaC$4C$l8A2y8=IW=<-!;7TjX&jm5_@)^?Ok;GvI z8dwOF$&&N)N>cMmK*oc`@(WV);!AQ1VA@Jj!PO>64&>f=u)(DzX%<igV8N37c$g5R zCI_3G0ZIy>G8N3rPf0CKh4V^_ic<4R;!`p~6#!TsDgsRoAfb%>+*BkL1x4u~%NWwZ zr9n|@Vop2~za+N+No{FyY7vrbYF-&bdORrP<4Y2ga*(SxBtb-Bi75yzqESr&MH9FU zfutT@Q6h=u<mYFXf<hESEIzfOBsDK36_h-YBq33ZBmgO#QEdk`Sx`kvG7>?}q>TLh z?D)i-ocv^vG>8K&XyY?eK=BNgM^y00-1wZ#JW#y`7E8;_1G@`k0*DQ(x!{uVX{C8^ zJHRSH0%*!WB^Wqcz#Ib#H5fY`oFc#mLIN&6DHRkAFnOq8aeh$=B#c0AL8)-Tdch)@ zkjfBQpe#QdR2HEN#V2Q^f~#+YL~deHaRxXOVThrs&P%NTw@tw%3Ro?ofd=LlrGi?B zU}k9^gp&zsR4}B+gX#F>oP2Nz3E_eA8%Qc82V9>bF=170CP)gB0OFG>VWA5aEzU13 zN=}6~TQl<zWetc8N<JXt^1=0VIj9st<HBvok5A4>%*#v7K{yT}1P#|rgh)|pA}C>? zh=4qeBv7213Q9*vBBgnm72uqkhNc%R0ZH*F%AsM0u(mui&)5j75fGW&#O&1gg8ZBu zbQ>Vjpb8JSOm1p%abh~Sm_>30LT5o{0VpZql#2&94a*a=Q%eg#nGCDK;*z4&#N7De z{N!wK!pBeqvLzlAyr5DF5?ipCfj9-Kps+NxxFjBrZJ=PlrXN%Tr=%v8rlUy~WtM=v z2hK>aq65MKch?xw<H5Y-{Ji8uP$3TGf$J<VJ0&$IwImf*et?BQB?3$%h#j9?T3nJ3 zs+OVBMc}Fh!hv@tAY4c_0%yk?!VH4-@W4`#;sGHA?l{5=3$PMUO9`eRCp9m<1XTHg zW%5v%uzUrUD#$O+1ocN?8WC9>EDgzwFi8jx#pgw-WvP&65Li9PMKIMMHYBZpn$sZB z{N%)(RFrx(2O@;1Rdez|@s*RG9-oq$mROoo5}%Qnmy(kTsysoWP$!@Yf}%Pxr#!K; zI6e*3O#$1L9uE=*^W$?9i$Qr5WB^DIMK`Fv%uUS9iwCz4DoVg*2sBZlh{K9f6hWvf z8PelXg)@r_pv4f1I5=@Y%d(_OaII1t53a(YVT4aLxFE)-0H;Ba$_GU&sM!JXCD;w< z&Ih-%pveM77ic&lGY=F+sKQ051(5Cyig00RY7wZZhaw1#L6F_()`H>&B#z>yoc#O( zq)s~6EU;K+aePr}ULKNjz`~I76``!K6x?$}2o#lqx=OjQyboa*fZbA*U0MKYOXe5B z`@^}35W(W)#DdiLlGF-NnE(|8_W<DO1~k?K7C{&V=E4;~n*&%iL!two7qO~=`3&qJ zRHMN>kiDt7@Jc)v%r4DCw2;t5z<!1+0`*tH0RtC7G@K9`VSa!s%FIgxHM|ijpss`~ zC@9Lz1BV%0qzKwP2I+xTxgcgiQ9h{c4e><^xD^Sjs^VeFvWrVn!7cXO(vs8)m~dWx zN@{#^MrKY5d{_)g2&sreh!&;hA&t^N#3B6>Fgqo+09<B5Ij|8TFc*}E8Pen7Y>3SW z5l}O*I5Q~+k}$!_K(SktpAQNKFdtr;Bk|%B(@Ma_9I_a^jR+Aej!(=>P6ds?!K?!n z`lt>7i=f$`n^+N_k(!yF0e3+jL{m{JD9XWx=Yf3$s?Z@^@HixdS&{)!4YL$cNr2^{ zbpS*Sl8GfniLlB6tgbW<+UCyBgJ&{G0Ra~%E=f$zjtBLOL3K1ZRmX!XaZq0u5}*Z% zB^ltR5z?3?Tny3I1Pf&r$0sHg=jW7yt9-Cfadu`wJTxw#O^n18P#YvZw-{8e!ICSO zPAvk}J78uS)CKXS1qG=^@k#lm;4VW!QGP*UI%r4;+)ZUjk1r@Gf(?VFfZBfuJ~Zzj z1Rz-j!G{!$C}u!}V8ff}O5w>Jy9A~-Pzej|O(C>^1Yl#Lg&4IqxE~Fvw2Mm;OEQz8 z0l|<CDI;N0MUd!$D2EJApokPzB5O<qjgmr|K82+qPG)g@YHmRZsJeg%KmrHCE&z>V zWkA~ENFpVPnV{hYs7QW6JgO3?0Ia=&P==uoB!H%@v^WFJIG6|)g&_Ul@BsOw0HhEk z0#jI&n3octl3$vX14`6Ly!fKTJn%?5SPYsxz-&m731gzFg9Hp%4%E;u2MyE~r-D0; zU_o#kBl!8bsCL8oD5mD;#v|;6aM0zE%}s^Xo<*rSiJ*o;d~$v%xR{3vK$^)6>G4P+ zuyPbGlv<Hl3?7kzi@;jFNCKd?F0wh$0D##H&YsBf#i==|$)J+1I2qK{D~eApEds>_ zDD;tqkSYdb;gbApaH)ta1|HUDNRNk!A*x20NNPT)UkK+FK?eL`d{Eq0rN$Rm<|gIm zKt^VeOaoO9;NCX6)tPw(r6u4&EhN<tL1;?^W&vd21!@73Vn|rQRDtsmR-1~G^9#V; za!ey2QlPPl#N-TI(zxu0Xoi+z5bq<o4xFSwHY1CbB$mYI=BFUXR&ixsGB_CG^V8BG zV{0%kfkuL$j=~7n(!A7)f_U^mEl(^0ReB)1VP!U)jnvx!i9y>RXrhSWIglD~^21P( znOBlpRD>oBvN<ykG&~3E(iCT;=H$df>bb<CbWmReB2-wK53aKyywW^4AKcA?<-TGF z57u#oaN#{y7#G}ig>WF55|kN0{UL}Lv^|61AbPJ*F?f#^%7>KO2oAW<3gN=CFN_Dx zyU5&lP!$6%t{|eI1`8<u!G3{vTp@Cho-3RU>$*Y&kn=BCGooDrQ2<GHaI+y?RL?`( zE^sv<x1n%Qda%WL;MfM|bjW}dXc`aHWdZ4dij<T<<_e+RJfxxmq5zcJlN0mei&B$I zAzf#vO0WcIkQ&^_Ko&$DF-DRBcL|aB1x1<pMVa7Q6e<cW03cRF2AZHUkl;W#9Kr_; zyn)6xQM;umT0lyWyP8l*P-aL*Oc-Jj1vOW|Qv(P~A)2rR21o+aH?VQW;)2BF)Rg#w zqRiaXV#rV)c!Z_6AhA3zJ`q%2fb2l<AkheF@PS&m5M{~vxw)XKIVUqO6-^I{6pCr! zA_LO$f!hF60BIgUx+b8=gs?Jm3qY+DXyd7%D6<UIT!eJV(FCDI8^oNV)Z}=G2|4-T zF<hu(gm_6&B`&GbJT#f|c#uFms3HQn8)^kq6f_Q(S_D>sQxelMRL!_-EC&s^;W8U4 ziPLPTJd)W(@L8tf5>WXHo?<F4DN0Vv%Lf<hAZBrDGPsur63@s-Fu{X?Ai@0Hf}+%7 za8f8KLKK)KMJcH{nYrKrgW{5+l>Bn2k&x~vNT{>`l<M+Iz-2&5QA%k+d>Nup01JRi z@sc8NN&yFFQ7U-!0Kx{v08|C2E`Tf&fk+|v@u10u;u27s8n%oi2hu2kiWL`UrbFEZ z(gj|HfrwnNK8P5+s|hs?Srjxf0m(KHQz3HD5(6TH2m+8bun9h>S*b;d;PHJZ7vwX9 zN6;;X@R2<R6+!VBiseY<Im9(k0c1m9LMWyn_h_JwD@KkakYAtzi3k^$6qSO;e8CM5 zh<)Heh~ko>to%%9V1roD*vo;84;Pmd<s?I@*pi~W<V2*jmj_Qad1;y8^$f)&MMyPH zNf9U(!E-UiB}K&rIk1FRk`L-Rf~I#tb7>_Rp!^x1T$Gv!ZWBQH;PeGAiJ*d@q8rp6 zF9wZn#Dn(Sf`%6v(&M4>AonA91^M|ouv7z802YG80<s9GQ-jb~oSFkl|4;>JMKx5k zv=}t`2pPkL7J(3%;`sFZ67bMXW?~L#IS$C&%-q!cQt;R-Di1bs1DY%aDS*~0PzPq_ zrWPTM4T2OE#i!;Z78HZq7Z5(OTG-GNM5eeT5xf!x#>)qXc2Qz+Mm%I70zPI^f+PrP zM1vfOEQFyG7G6cEpiqGIdrClDBtug{>$spzB(NN$84Wf)6*k)imdFE*pn%FNFb`5y z!;}@LCKiELCxPXVMqNru3vyD6kpl=K0BfX`CKsE;BgWoK^D>h&5{u%Kic%A^<4Y>R z(?Br6l+5%@@N{4)D1X32Gm8^*@=8Gy9mpaD8K7K+5J}D}DFRi22$7W3w9Gtk93hE; zY+y)_M~I{sB^H1tF%Tj-`Q_j-GK2^?TchYID9r=+{t#-wtpyY{C7C7Q&NxC1cvuHT zO?f7`4}wrq0S*HsHJCwHl8^4fl6-W#O7hX|LJMk$J)mWQ@UR9CaDr;M%;dzJ_>@%8 zG&f@A2INFk75POesh~;#<k;ez)KpNy2CZ9&2Q~KN!974wRD+~T(kvjN1x2Z4pxIH- zkQZ1js0o9t3exuiC76PIaQ_CT9m)mCK-9n`(2WF*zQH6x^>7B<GEgxJuHnE|7lVpY zaG?t3f&x0Z*aW5%Jjo6z3(Jt2<dAto@T4<jwFN`~Qcgm<at!J55YaTG(jFp`o>~H# zj)JQJ%~&Iw1S*D6`Q@2;DPWPD%%u3F%)G>+%6RbNNDv<!Mrn!3sR*Im#H{?Hc+jY5 zCaARnQk9#TT$GP4l!v4WbXdY5#!C#K7j7|t_S~~DOfh0%*nuRr#)^eug%JzG5hO7a zYZitrMl1|2h6ueS)+`Jr#w-jqNMZptEDSluEDRw=2z3=UEDSCtEDRM$Vl!-57&1%{ zYS4qL!GwjO$ApDp0g{>xNbCb9EDRS+SQs9durPcuVPRk~WnqvpWnnNeWnl;~WnqXh zWnm~VWnpMAWnq|N%EGX~l!al3DGS31Qx=9BrYsC^Oj#KIn6fZPn6WSzn6WU}n6WT~ zn6WTqn6WTan6WT)n6WTSF=Js^VaCF+!Hk9Bj2R2V6ElQ+|Cq5baG0|&h?ui5D44S_ z=$NxGSeUagxR|pr_?WXWgqX81B$%@><e0NCl$ay*HJGz7OfhF+SYpn?u)&;#VTU;j z!x?iHhAZYQ40p^~7@nB3FuXBmVfbOr!oXs|!oXv}!XRP6!k}Wo!k}Zp!eC*+!r)-R z!r)=S!VqA=!VqJ@!jNIX!cbzt!q8yB!q8*E!Z5>vg<**W3&REr7KS|*EDR?sSQxHY zurNHZU}1P+!NTyxf`x&>l7)fCl7&ISl7&IVl7+#*l7+#>l7+#;l7%6}l7%6`l7%71 zl7*qdl7*qgl7(S{B@4qGOBRL|mMjb#ELj-#Sh6sjutfOliX{uf14|Z$4<K``SQuoi zSQvDySQsp<5NbTESQuigSQv7wSQu)oSQuK6<VNFrB*k}5W)gUX5d#Aw1B?wB69AP1 zOb9VhdCpM7;GS9%TAW(smzbOC$iTqD;0Rhk=A55boS&1*z#z@w3|hA20bX{%z`$V0 z;0$hfyOyQql{hjmxI_8Dskw;-8TmyZGeQ|$z>7khi!w_<HFR)lGN=*Gkiy^!8V5ud zW~gIuttd#$OL5IB%Ph*z%T3KI2?qB#iX9pH7~C@RQowFtm;`3Kf!4;lW#)ivVqlmJ z7V}H3D1ivAWpK+c%1tcsg)HlF1o?S8$d8WB0U-8g5Zk#Fyb3X(C_g#1xY#p=0kjR@ zJ+;IqvADz)JXX!%&*+|75?qo3^LQ$V9|G=r_<&bwfR3sGi)AKfJA+628J078=4F;Z zn(^qK+{fsXnpl>KF3fO}5p0|rXb|x(qi<<WNv2a}Noq)bcxFnfb4Fqj0|SEuQ&4J7 zYGQFJJdha}WSN3M^Tyz40Qt+GDLA#nH7~_K4HOQb+lWDYP$V%hM1bT#!U52R3IhW} z3sW$-A+(JtJTbGxEx!nCbwN(5e^ORza!E1B%pEYf;LN;qm<$60!yYD><3jSm+CVM_ zX<&#?Oa_H00|Nsa10v1IGsLHXMr%MyR2V?BmC5CxFjob$3o=1$eTMiP@Y*p31_o1x zcyQXZW&kgVV(?&y2M<w|6)-S(!r7?|UJRg)NeM#+Lp*q71Y~{@Lwr(ddS)J^bCp^F z5}UvfpPH9~5Sh#XnsCj_2g%K2hzD=_H~@A_e135nWH}5-?jA#YW_}U_Llk2?XsC?g zA7f%teo+YnJ5ypwekKD07ZYfJFFzTiR*WeP+|&ZG#hKDT^B)WnOljcO7D!BzDJ?Ch zv>0^45rZOA8rXkIOljcudKv=*g9=kxL1{@bgE~_hs9nXN0ishG7&JjNSTzHK0aF^> zpC(M{sU@K0tqcqd)=Z#|2dJCDz+lUiSqy2IGcY(aWfnsk`wR>&Oqs=yhBgC3I1{*K z2kPfBL^DBFe1P1T$dsF!3+lWxFfb&6*r2U73=9m(AU0?)j)8$8j|n^{%23DzT8Il; zYRbS+&QuI<EY>hVM-mtq7#f&BjoQQ#klBr3b_OUpGc<wOxdkBc7BIV@62xu;v7sT> z4q`*rh%<D7*m<BaECz;d2pg=S7sM_~1{>NBVi%Wy&7S~bm*j(z6~iP5I|pR`WC*(y z#F@ne_CCX0CRithfngpKtTV#Eu#Bk;?vZdt@64Q>5K#A;p`6hdQnEPZSAYta21eiF zbR1b|B4a>mYBp58BLl-^#(?}{q>||=V{mE-#8?JJCXgXewG0dlQVik2j;KWvgDL|! zi9uHpGB6l1q^FjEc=-k3Ft%kVN=+_fU~pzAPR#@P9@NH!VsMq9i#Tvh#DImt(Iw0= zz|+`B&&9_F6h0aTEDQsIy<LO+Tz!m<U}vG(7_cyqf^&<@l8Z_px&sVY7|?NpF{T*0 zn!(CP_FIYp3j;138tfVb3&9El76x=29_;VzjfiScbdO?Mgn$48gA5}BL#;ul!4!j) z2I~!W8Jsq_YVgqDqrqPT4ns*pc|&d^0V8oE86y>=V54}WETc-JdZRw0IYujtHXEHZ zI&Z{dDrl-|s%2_oYH8|d`oQ$5=}*&trW|IxW};?0&GwmHGP`c}(CnGnJ2O*rEAv3} zF!KcSRP$VOSqn`I6AMoZe~T!KY>QHhMvI9Sb1ha_?6lZ#A#N#Ssb;BdX>6HnnQvKT z*=gBtInQ#9<qpfkmNzZ$TP9hhTNPTBS=Cv6w)$ZuXf0-~V6AGcYrWihjrBq6W7Zd} zuUg-=wy?3aakufY39&g~bJXU%%@vzFHg>kow!XGOwo$fwZ4cRAv%PKm)b^F_CtF)P zC%Z7aXuDLqEW0ARJN8fQ859^8Iv5!k<{2zD*lMuL;Gn@VgL4MA4PF?0GhjBfHFPoz zF^n`!FibVfHN0+k$MBQkcS9~CaU(q=V<Rggdn0$FD5G?vBBKVQQ%2{Fo*2C}`fT*W zh{2fGSjsrmILf%lxZJqWxXrlFc((Bh<D16!j6WOyFlI7gH{mytG0`+hGD$aSGHEwi zV6xO?y~!4nJtn72uA96!`D0>h>SP*j8e>{uT54Kv+G5&cy3%yJ=|r=IX7|lLm>HOx zn%kSZnERMFn|GKmGGA`K(R`cvKJ&BYx6HqrvsgG<xLFihlvy-bv|9999JV-N@yO!2 z#Yc;87XK`GEu}2YEnO^UTF$dPWO>~3qUANqdzRu>GFC=b=2nhYZdQI)u~u1D9adAV z?pi&v;;|OAmbO-~*07GZPO+}EuCwm2?zNt3y~=vK^;zp%){-`IHcmF~Hi0%_HgPt$ zZ5VB>?Huev?V{|8?8@yX*-f|GWVhY!q}@3?9eYE23wv98SNksee*0<mv+Wn#|FZvY z&%nT7z`*bT)J8MlHV`&AVQ|)f#gNlb*igby!El4&R>Kp9XTjnB#8Ah`(8$He(<s;| z!YILLuF*=PE#MS-%jmVyS0hGaL1S5C4P#4Vd*cM-9OH81PUC*#1;*=)cNrfwzG-~l zSj=RX$$payCRa`Fm^?IjX#xt{DW)?`7nm+JU2E!O=5FR^7Hk%6_RajaxsZjpg`$O; zg`UMN%lnouE#FywvrMqcwkox%vYKGE(dwjCxAi`25nD-HWm^qf16wy+Z`)AYDBC34 z3fo%ScH17?DYi51&e^Ge4k2K$VPs%PFi171GN?D0VldNSvB3(14F-OO3k`jY!i=Jg zl8ts5u^Foy=NOxqTA13HI+(hcdYJl{zBd10{>%KoIlG0Fg_?z-g@c8gMW98u#WagK z7RxPmT3oewVDZf2qXmN{pQWUwqNTc}nPr$|l4Y)Cjb)SNDa)&tw=JJp{<IXeQm|69 zGPH8A^0SJxO0-J1Dzoacnq;-iYP;20tE*PetiD>gS$kWDT1QzYSr=K?S$A5`w4QIh z%6hZ)ZtIiQx2!){|FLGbk+hMwsj+FanPamMDbKyJ`C-FsD`_ilt7U6p>tO3=8*iIu zJIVHsExR4BorImHovU4dU6@^>U4dPl-6XrmcJJ)I*!{QTvsbk@vA42!wU4wfv9Gmn zvG1~<Xg||_zWrYNr}iK1|JXAGFfi~iF)(l&2pR+%L>N>U)Edk(m~XJsV4cA>gHs0A z3?3SMF!*M`Xc%gkV3=lDXxLyl$8fpfTEiWNCk?L~zBV*5vNv)y3NVT{Dl=*|>Nc8Y zw9@E^(OIJ_Mz@R}8oe}nZ^UbCWNc^bX&h-BZ@koamGKtioyG@^Zy7%`{%Fi#!e%0A zqGqCJVq@ZKGSy^($qJKoCi_h8n7lCgY{F^EZ<=VD2F|Corv0X~O_!POG~I7{&h)D( zgBgbzpP8JQjhTm8uvw;AzS%mn&1QSe4w;=YyJhyw?4ucjIh(npxth72xsAE6d9rz) zd5L+wd7t?b^9|;^%}<$MFz2xlw2-z?u+XrWWHH@hgT+>h{T4?o&RE>BcwzC`g42@U zQp!@@Qs2_n(hn)tH(KtsJOM66rL5$U^7UM+MOJI9Hd^hp(y=zTwy_4qcd&Jeb)I#J zb({4B>xI^<tzTNdv;JZI*P7Kv%0|t`(8j^W%_h($&L+>M%BIz3rp<ht>o#|6p4q&% z`E0{wD`u-`YhY_;>j;kV6x%%8DYgr2SKIEgJz)Famc@?GPS{S`PS?)T&c!a$F5WK7 zuH3H2Zlc|6yB&5%?9SWWvwLF4Y|n2mWv^+kZ*OPsYVU6!ZJ%aeX<u(Y$9{|bKKtYL zXY8-q-?o1SDkl;c7!(*87`P1i4aE$l4V4X>4Lc0`4W}5+G5l@FV8m|3V<ch}Y7}LZ zXq0A@XSC92ozYgKT}FqDc#H*&C5&Z_RgFDNqD_=dHB6mM-A$8B(@j^Jt}}HoOE=3g zD>JJ$Yc{)W_Q33i*<UkJb18ENb60bJ^APhG^IPUm&4s{mu*c${g@~o3rLv`lrGaId zWwvFH<wVPamd7kFSYEZfYbj(UZe?TTXjNm?Xw_{s!D@!pDXa5V@2oys=~x?DTU$F= zdsx?5H(M{VUT%HI`l0n}>krmHtc`5UZDMQ^ZMNH7u(@h;-{y(U8yjm|2itht6x(jw z3AVFr=i4r~jkZg$tG8>hTWz<&ZkOGDyW@5h_O<pC?5En#w_jqv#-5>ofq{pSfkDtv z*3iuGvf&NGH-;a<A;V#$XJloRWK?Q&#ORLEA0uvK8DkscEaO?m3ygmo$D5>><e3zk zRGZ8(Sz)r-<fO@YlTRj0ro5&yrb?z>rv9dprg5ferV~u}o1QjZZDwiiVgAhgllfnB z9t$B0KZ{_CMvFF!2^Lc==32;FDp~4S8d_RfPO_YCxySOL<!Q?cmNzUrta`0BSZ%f1 zZ*|1#j8&O+we@`KCD!Y}rAvxUrp;8FSvE^-R@!W|k+W5{b+UE04YUojjk8^5yV~}Q z?M2%kwtsEe?Re}&?DFkO>?YgIusdRR((ba|4Z8<+>h@{&+4ep56YY1{?**rrEA|Wx zkgzZ^FgJ)XNHpj$=rveiu+(6^!4`u(226(RhB}6Zh7pFbhUtbmh9!p64cUzhjm(T3 zj9iU;jpi9GHacT;(ddWKUn3r417lNTdt(=4ALHM~swP?{CMK39jwWT`@LFhc!sM*U zb(1?LPfVIj+fCP)ZZy4Nde`)~DT5i88NZph*?F@oX7|h<o4q!hXg<ySmiZI&m*$_% zf0#2^WLe}}R9e(ov{|gOTyMG4a-ZcfOC@V{YX@sr>m2Js>&ezLtQXiUwb^2`)8??v z37ZQx(zXh=_O>pz;kGfhEw-JulWk|%E`X<tnRfH+Hrws6yI^<K?!Mg<yEk?}?EixD z%>)L};2VR2fvSOyfuVt=L9;=J!5)Ky;JWsz0Vppi8LAuV8!j|l2Ci}U8tykbZlq+a zZft05W^8AiYMg6qW8!WSXcA_UZ&G1WW71&KV$xyKV=}>HipdO<IVKBCmYA$CS!1%n zWQ)lTlRYK}OpchGFgas#!Q_g`4U;=24@{nzyfArV^1<Yb$q$o1CJd%5rW~d`rrl-} z%x0O*H(PGD-Auszlew<NeTyd+-!1-Fuvv0j3R^A#mtz7}=2r1m?N;lpu3G)H7PgVJ z@v@1xnP#)d=9W#Ft+t(kow=Qjor~ReyFGTt>`vQVwyU;p0Jk%ygZ#gMfx&{2fg#-> z$Dquh+MwA06z64z)rQT6?M6LDi;R{VZ8X|uw9lx=c%tz#<JHDnjdvLzGPW^sH1ReG zFo`hfHCbeG*7T<76Vsoj|4q5fgw3SQw9Kr{T+IT_63ueWD$F{~`px#3oiMv>_R{RV z*-tYja}IM6b9r+;a})D4^CI(F^B(g_=5x%Kny)tBZhpx8qWN|6sTQ*=Hd<`6*lTgf z;*`ZV3mZ#EOAkw5%TUXYmftLWtOBhftYWQFt@c?Rwz_I{%j$#GS1U<tIcrsGEo&p| zKI_TW%dA&hZ?)cKeaJe|Ce5b7rq!n3W{S-mn^@Z<+bY|7+ex<5Z8zC&x4muq!1k-{ zFIyHnPCG$xD1p+*E4%l0Kkfe6vDw?&JK6i#2iiy4@3B8<f6e~3{RjK6_6!>s7&I6e z7-S3-4a^Lz4O|Vp41x^q7(6uiX7Jm9)sV|j$Z(F~Lc?u_yA6*To-({-*kd%&XqnM! zqeDi=jV>BpGrDKgVBBgv%XmJxPCaaV!uW!5v`K<VmPx)zxe1FYr>U^1gsFn*64RBY zn@x9^9x%OZdc*XQ>2uTfrXFU#X5nTrW+`TsW_4!r<|^iT=EmmM=F`pRm@hM5ZNAz3 znE7dQV+#ulCkuBAe~ToGbc;(C*DbzU{IU?R6tx6}W|(EPWszmMWus-AWuN6st9Mpk zt$tZCSzB7$S-V<$SqE9KvEFFC!+NjvQEOfsAsbL@R?Q~YrpTt!rp~6#X0Od5o0B%@ zY_8ep*c#ee*xK5<+Sb`N+jiOZ+fKLjvSYO81f{P744`HTgN@-T!{>&4MnOi)jeZ!( z8y6X~o9LLBm^?KVHJfhs(2U#M$o!-ET#Ka^YL=yzH?4B4oo$$Hxox{_7uh|wE3xmg zpJaa@WZne^h7v{wh8lwwgCxUr!$QL{!#cw=hK~%N8ND`QGG;gCGZr?MHlAX<z<9Os zF5?5nmyPcjKQ;bn{KuHvM9@UV#K6Sb#LFbWB-$j|B*&!Iq|;=I$x4&;CU;F<ntTDb zTBJ<1Ox;cWO)E`jnXWY5YI?x*yy;a_9y19uWiv}NdowSyNV8P40<(IvR<m_xyUdQ7 z-88#z_R8$18LPQ~xxBfmxvjaUd5C$YdA@m-d6)Te^Y!L8&3~D5T8LUGSm;}rS~Obp zTFkImX|dj7m&GZI=N9iRBrUBhJuO2m6D;#BOD(yq#H<vp46Mwo9IXPa@~q0NW?JpC zI%##)>VegJtFKmPt#4T0vwms))0*8z%tp~h-Nwkq(dNGmx2>41rmeoMm93|3sBMC6 zzHO=P0^2pV+ig$Up0~Ya`^uKxj^EDGF3K*`uGFr<uHSB|-2uDPb{FmL*uA#<X~$`= zX0K--XrE_aYu{ntXFt<^B`C}vFfiO;U|?8gu-X9B7d&L}-tddzKSO3CZX*pNP#e<E zD8wk<DBq~ZXo}HJqgzHVjlLQ&81oy88iyMv8|N9<8aEsF8P7A`ZG71Hr7@R@q=~AD zfr-6|tBI?Huf-k<7fT;-Dx7My$m){SeXCbi->tN*|68-z@Yx94NZaVzSlW2oWY`qg z^w_Moxn=XnhR;^aR@PR_*1^`tHrzJTHs7|&c7p9p+oiS}Z1>w9wLJsw)7IEE+I8Da zu$y7mYd^_;x&0dZZT7qE58FSr{{-^a2L^@^Mg|5a1Al{ZgBF8r28Rvq8oV-4Gc-0V zHLNmhG3+#)2yP>Y8c7+c7-<?A8aWsR7{wXo8LcteXtdktfYAvfZesysWn&FvCu4Wx zK;tmuIO8JYdgBeodyRce0!?yE3Qej_8caG&7MiRxxnOeFB+s<iwAQrAw99mt=@-+V zrp#s>W&&m^W`<_<X8mSo%r1i4Suf0#%{9!8%+1a1&4bMo%$v;n&99i>G=FUV!u*4| zyoHK|o`tc6wMC#soJD~}tp#Yjz|_*p(#bN)GTpM-vfJ{x<rhm%D={k*D@X8XL4#GR zRj(DZHHWp3wYasswWYP2b&hqV^?U0t*8i-TZMbbzZH#Q9Z8B`8*etX;WOLqz%a-3( z(pJt^&GxSCBilE&A8miy=Ghh7)!H@Lb=l3bTW+`B?ugx0yY=AK=wbWQpfF`%1h=!~ z4fGB24eAYc8SFPWX>iWqnt`~Hijkd>n^BTcmQjUKtC6~~iLsw?wDB)vb`wVvKa(vc z2Tfv4vrKDETTR2vlFcg3+RXl$ahsc%JDMk&=Yf0h(iR#PT^7?VR#~jK*lDrP;+Vx< zi&qvCEN57rwz^<-%j&+>b1N=u32S9*J!>;-f9ovkYU>{BdDg3~cUhmezHa@>`lmIE zjgXC&jfG8!O_EKqO{2{wo9#9SZI0QTv$<#U#)idK$X3=?+t$q1)i%~P2V6s3vb}Em z(Ds?_JKNv3oOV)n8g|)s1$I?-^>*!cv+P#bZL>RK$89fRuV!y-pJ!iYKi__h{Ym?4 z_6!1y3_T1C3~~mS4IUW$GGI4cV7Sz9z2O$aJ%(ouZyE9%$rw2s1sG);6&lqUEiu|? zwBP8A(Q_lvXosk2vuTIvB-81p^G!FK?KZn&#%|7IE@m!mu57;0{Dt{v^S|ay7JZhJ zE$3P;vRq}!WyNo$Vx?(iY-M5PV3lFjVRhL0g!Lus>(=+JFWczbfjS4E36==s8OC#s zmm9A!-eUaIIL4&P<bcU16MNGcrf*D{%@oXR&0@@I%r=-^G2=DYGtW0KF|RXkHt#m) zw5YXMYjMWntp%T@gr%&ds%4~QoMnb(u4Sp^ZObKACDxVJ&DI^(6RZ*TezXRSUoe82 zn+(qkUK=nNvKmSm${U&(S{gbVdKd<PN7tl`<c-vg<`}&&;x(2qmN8Z^Rx#Ev)-g6P zHZis^wlQ`vb}{xa_A!n!jyKLU&ND7EK56{Z_@8l&$!U`dCbvxPn>;s}XS&-g)BL~r zJd0whYgQuGUe;@Dw%P2qIc&q=z{pU*$N;t<)UpM&<qQqY4DAd<4QmZM40{YG7)~*q zVK~Qdf#DLv6^3gJHyCa)++n!K@Sx!%!=Hu>MqEaMMv_JfMn*>FMvg{qMt(*aMny*D zMx91;!1eiNBNby!V`F0rV+Z3!#(Rtp7#}e{VSL8;g7FpO8^(8x9~eI|eqsE^_=E8m z;~&O<j2TQ=OgKz<Oax3sOe9QXOcYF1Of*b%ObkqHOngjYOma+WOm3SzFnMM2-sHQ9 zvgvx$?WSK%|C;uiO*Kn4&oFN=Z#C~XpJG189Mr#vvWU0Hv}mws1NXolTfDINWbxhN zzlD!wgk`K{hGmgug=LFnr{x{XhnBA`KUn^-RJ8hO{m)v^M$AURM%6~w#@l9w&0L%1 zHfwCQ*u1tmZhHniF8J8i-fq6#61#PFo9%Yny|?>rr($nlZ))#gA7meApA1gtE#Usu z0{dn5o9wrP$0WYlGXyX)WH2%?FdDEM2pdQka2pDM<6Ip)LMUV;Zlq|WW~677Z&YTq zz-Xn>Nu#Sq_lzDJu^0;&iyA8!s~PJUTNv9Krx+I)*BCb%_ZY7+-eJ7g_@eP$<44BQ zCh8_SCT8H81JvHGHfcBMF_~tv$K-~|6O)%F2ThNGTSy;GznT6s6*iMJQ#I2vGc^k| zi#1C!t1xRZ>ohxLcFydw*<G_|W^c?uy;(_fRdX$K(CDm_xu1Ekd8s+Kg@A>Wg}jBj zg{_6Ng}+6JMZ86gMTbSN#X^g<7Mm=@ER`(PEe$PWpkce(a<gTrRijm#)hw$GR(q^Y zSe>=HVfD+3&6?X<(OTEq$lBdH#5&SC%euh2#=6mZvh_;q9o9#zPg?)9R<yCU@v!l= zNwUcSkNzyNTW`13?x5W<yNh<W?C#sWu=`^7(=Ok>#=gnE$9}5)I{U}=UqIz-0wcp0 za5%FW7#lbkxETZ(L>lB7R2j4z^cqYzSYWW(;DW(jgU1GM4Za!h8A=(d8|oUG8#)*U z8`c^2gWIO(3?CSNG-Nd5GZHb9Gg3FQGb%P}F`8&J&FHYv1*2<54~$+K{WIb+7B`kP zRyQ^<b~a8h&NVJJt~G8mo@czuc)Rgl<KxB`j2|2GnaG>ym>8NQnG~DMH(6t{$z+eo zQImTn!lo*whNfnw$)*LSWu^_Lou>0lSD9`%-D`T>^n&SQQwB3$Ghs7XGc_|iGcU7n zvsklqvjVebvvp?s!8IY1xv+VhdA@m#d87FX^R4E)&5xR&Gk<9Q&zu`P`lDiDXW?ZL zZV_vdZc$*-Y_ZN_zr`7gixy0l!j_JfL6-5BDVE)qGc4y>uCUx_dBpOe<vYtSmj5i- zt>mn<tjw)!t=z2wtdgzztmcD9e;!$Vwo<e<vbMK&vCg)x0FUTSv|eI;(E6P973+J} z&#nJibJ>X7$l9pe7}z-5<k{5Q^w><aIb?I$hS65YR^C>{HqbWC7Bt#ZZrf)&%XYc# zTHEcm2W+p|KDYe>?q%@WDcEV*ncLagx!VQU<=OSvO#-*RzS{k>ld@O0*R?mdcd!q( zue0yBpJTt!{+#`7`-k?gL9t%I$gqZqfq}(9%0S&f*TCGs!63k()S%Iz&0wOzOoRCb zs|_|7JU4g)?t?HJ>KIxW+8TNo`WZ$U#v3*oPBz?Yc+&8k;Z4JbhR+Q@8~!j<Hqro> zYxYKoM!7~sMzu!GM*T)pj5Zh@GJ0$D)99ZOr?H^1IJkY|XzXhoWE^XpYMgCcZd_wL z)p()tGUJWLJB{}npEkZ=e9-iS=^4`trdLdFnBFmcVEV-Lh3Om952jyCf0+I;WiVqg z<1phf6EG7olQ5GpQ!rC8(=gL9GcYqTvoNzUb1-u;^Dy%<3or{Yi!h5ZOE60@%P`9^ zD=;fDt1zoEYcOju>oDsvn_xD@Y=+q!vjt{L%vPAKG239a#cYS!9<u{xN6b!`oiV#$ zcE#+5*&VY7W>3ssn7uLkVD`oAhuI%926Gm34s#xJ0do;^33C~91#=a14RalH19KB| z3v(ND2Xhy54|5;$0P_&@2=f^81oIU04D%fG0`n5{3iBHC2J;s44)Y%K3FcGGXPD11 zUtqq(e1-WM^9|;E%t8I9bC!)(omRZoqSpP^)2tU*FSj<dv9PhRaj<c*@v!l+39t#V ziLi;WNw7(=$*{?>DX=NAsj#WBX|QRr>9FasnP4-;W`@lin*}yYY*yH;vDsj=#b$@i z9-9L;M{G{moUyrJbH(O{%^jNuHcxC`*u1g%VDrW1hs_@w23r<e4qF~u0b3DU30oOk z1zQzc4O<;s16vbY3tJmo2U{0g4_hDG0NW7T2-_Ij1lttb4BH&r0^1VX3fmgn2HO_f z4%;5v3AR&gXV}iMU0}P!c7^R4+YPo`Y<Jl1u{~gW#P)>k8QTlCS8Q+C-m!gP`^5Hz z?Hk(<wqI<2*#5C)uw${~u;Z~4uoJP9u#>S<urss!11g^y7(q=A1{MPsgYO3a4Vn$R z4Pm|Cb4HhqZX1OdCm3fNR~a`LPd1)oywrH3@gC#T#utsB7=JMSZOmmNU?OdzY@%ag zYvO4VVv=c+Z!*_prO6iX2;41`S0?PH{HD65Hl`k?!KRs}`KISgZ-HmuKw}V~a^Jwr z-ptjk$*kRMqS-XFd1j2}Y~}*yqUN&Zf)-*H1{S6k_7*M{J{I{FB^GrS%@*AjDwdj- z#+DYA4wj(4ajIpOWs&7P%f*(vEe}|RSVdYTTV+@kShZPoTTQi^WwpraoYiHk*H#~_ z3am@5>#bX?d#v|bAF@7UebM@+wTX?TjkAr1O@K|ZO@>X8O}S0I%{!aVHh*oHY`JV1 z7#JonGF)L`VCXiQV6@n1h0#HyV@8jRo*S_ma~X>mOByR0Pc)fkve9Il$s?0LCXA-s zrUIrCrmIainBFmcX!_dpgXs@bO*1_+3o~0YSF;&rbIq2UtufnT#&0fSE@!T6u5Dgo zUJ0H9n_#}ge5Ltj^Bv{~%t7Oku@*@dS>XAvnHKXbR#>dH*lNLNDQpQEozw!4228M= zYB?7?&ca~DYQ<|6XO(PKZdGG7!D_12e5)l^Ypmv3AF!TgGuvi^%~qS^HfL-u+uX2u zV8gJ0ks*bVf#IpaM}t2G+=haNGKT7gmWE!2A%+Qt1%@?-?S?ZA=NoDn=^L3DSsOVU zr5hC+)fx2~O*WcqwA5&|(RQOlMi-5)8?hO48w(kW8_OH7FkWkX!1$=~b>ln6pNzj7 z|1)Mb;Wmjfi8o0z$u=oAxnXkG<b%mq6E0JJQx#K9Q)5#LQwP(2(<!F&Oc$H3HdQoJ zGczzVHM2EaWVYOFquDmIeP+7mM&>r=j^>```^*oUpEbW^e#@NKLdZhKLeWAKX?9T1 zQpQrz(%Ul2vc!_piqA^IO4dr%D$y#<s=%t$s@96Zn$?=$TEtq$I@fx;^*ifcn@KiH zZB~KDBoErWv8k|~Vf)vX(@w-r(@x*c3S8bN*yY%j+jZLY+by-*XtxL2_kL;j!;ZsV z#9rQB&)&q|$3DV789dJ4Wk211f&E7Nz4j;UZ$idDHZU^W0nLRQ@EC|2Xd37nSQ)q* z#2DlnR2sB^>wp~wM-0vz+%tG$@ZNyIkk3%YP{YvJ(9_W0@POe7!<&X2Mgm51M)5{} zjeZ&bH<mR~0@vJ@CLc_{n*KLsG2;QJq-|!q%?_JgGrMiZX<lVsZ{BI%XFknb!a^1) z=d7_fVsX;qvc(OH2NrUc%9gs8MwV8V0hXcQ+|p##ZZ*+rn$<k3Q&umm7_7ytHLcUE z^Q>#E_gf#gzH0r|`mZ&&jg9SGThPpBKB&w%z{v1{fq_BWz`(%Dz}~>!AkM%QoO&V+ z6Ag<ED-0(YPB&a<xY_WR;eSI!TXLGwY@-cETaES`9Wgp%bjbL)@dM+h#_x^482>S@ zGOY*qq86GiGhJtT%<Qz;RkK@WkIZ&i?6){+an9nJ1)^nKX;o(h8jGK5wabdhn%x>S zvo2@dZ#~6&p7mnu)z&#Sg*MeT4K^J%XKXIo+_rgO^8!5f1)7cUux+w!x1DG^&32yc z9ovVtuWdir{;+kjbGJ*dO9hY1*Vt*<>)X58d)tTFN7*NV{Ck0s!GMv00W|K~YS3jc z$>5a9d6Sza_e`Fd{5Ih*6*W~dJ!7h2W^Wc{HrH&0**ddhW*5z_o3Wd7oAa9sn~R%E zo6DOko2#4ao7<TCn8%psnAe#1n9niaXnw)`rTG{0U*>`qsun>OF&0S{xfaD1eHM!> z)>v$`*l7`KnP=H%dBXCd<#o$9mVYcct)#3Jtn95kt^BQWtXi!mS#7ntX7$F3$=VL1 z{(_YADs~!nI(7zjCUzEfHg*nnE_NPvK6U|iA$AdVF?I=dDRvolId%nhC3Y2dHFgbl zEp{DtJ$4i9rr6D}n`5`YZi(FryES$j?6%nLu-jvI!0w3M3A;0P7woRs-LSi3_rUIn z-3z-nb|37%*!{5kW5-~hY|rq35j+>pZcuFyY7%E+gfbf(U>af?VH#taV47l@VVYxF zU|M2YVOnF_VA^8ZVcKIl!E}o04AVKL3rv@ot}tC=y1{gd=?>F9rUy)qkl1oTZb@7* z-);e#<(h4|z;cD9l#RTNvCR{k_clLm{@FCywcGXCO}3kDx7+T3-Eq4!c312^*nPG8 z10EYSurIJLwXd;nwC}Y4X8#+M9zHNKxG*v>Fd48L@Ef=oc!Fnj6AbDNS`7LOCL7E) z*l8edsA8yRXl!V0=wp~+C}X5(q-|tiWMLFz#AVEHENLuftY&=H<f!R)Q#Z3Pvre<s zW*f|Qne8__Zg$@cROWe`2bf2g-!-?jaI)~R2(*Z_D7SF4^tMd0Ot;LlEVit+{9?&q z#SKmk##S~~u2z9oF;>}Dg;p(A6Rc)it+Lu+wcF~j)fub1Rxho-SaDkOTRU3&T1QxC zTIX9=S$A14w_b03)B2Y+r;VtMf{nh7sZEAWiA}vtpUo7T`8MlpcG(=YxoLCXh7CN@ zqGM}hYisLc8)2JlTWMR5G=g`*_JQqRTUI+wJ1@IPyHvXZyL!7;yOVZT?H<^@xBF_x zU@u^=Yj0{FX<udEX+PC|f&F^>t@aEIObjm=7#IW$WDL{|EDh`pybPiY$_?rbRvMf# zxM}dz;Df<`16IQ%qdcQZqfVoKqgh5PjkX#cFgkB^)ri$t&{)P;+t|?9#@NR=)40%h zrtvQ0lg3w#9~i$k{%R~`qH3aTVrJrL5^j=i(qhtMvfkv3$!(KoCT~o>n{b-`GW~DL zX~t(JW~ODXZ*FOBXYOX6VqRcgZQf-*!F;y)YV#B37tDW}OIc`Im|8ek_*;Zp%(hr= zvB~0~#c_*E7LP3cTd-SdS$bJUTBceSSk_y%TC!O4TZ3jc&Rc_eAdjtITc5P~Z_gmW z#IS_{)EAI2kTozjurUZXh%rbr$Tlc8kTY~QY&QG^9-#%TSn4vGYP8?zl#!INs<D-^ zt8tZat1+lOp<$|P>T2p`nrfP5T4Gvh+Gtv1)@TNrb(&!&Yp!IjV{T|}X@1fCj`=(D zU*;eehgp<Z)LQggY_!;Ian|Ca#cvB~OASjyOFK(%%LvOv%L$gVEe~6svV3m&*HYKo z*4oLs(7M)oiS<_73%2_9450hq7#SFN3<V9P4HXPE3_luvGh{GgHR3hOGU_t!GoEBT z&3KmaJmW>i%ZyhUuQT3cyv=x*@jl~2#>b3L8J{!0WPHu|mhnB~m&PBAe;PBGaGD61 z$e7rfxR`{RtTI_|a>(Sk$wiZECihGNOhZjGOmj`kO>0bBOx4YF%*@QJ&7939o6P{X z1lF7Jm<yUqn=6=Wn6Eb9V1C^EjQKV5+vbnWCtJ+0*kZ90yf)~9#Zt>vmRl@$S{}5# zZ0Ty{WtCu+YL#zQVpU_sZOv~jY%OjrZ7pxDY^`psZLM!@Y;A6BZEbJuZ0&CCZS8Lz zY#nYLZ5?l&Y@KeMZJlpjY+Y_$ZC!8OY~60%ZQXA@*?PM5Z0q^fi>;SiueM%qz1e!Z z^=|9^)`zW+Tc5T*Z++SNy7g`A`__-GpIg7SesBHR`n&aS>;KlwHtaUsHvBfiHsUtY zHu5(2Y#!UZwfSW8%Vv(<Lhu~;4)B^HYkLQK5Bt0JkL<sL){7W0f!pM4;I%}EvLn!l z(OAp)4meGSo64A~m>w`aYI@%Eis>DsImm-%$INogE6rQXXPVD9Uj^=qUo?Mc{?`15 zIj03b!BuOh?Pk#WsaIC&);iW^*4Ea}*4wOiTOYMPWqrx|ll6CNMjJL8J{wgVEgMif z+7Voua@g|PirU)RI@$Wz2HHm2PPLt7yTo>-?MB-xwl{4b+rF^<U~6ONXy<JgU>9N6 zYd6Ub6c#J(&e~nFyJPpz?xmfoy_UU+y`{aQeTsdieX)IoeS`fO`-}Fs?H|~`0F}QE zOyD(dCI*%U&ITR^0S2iCSq8lZlMLn<EHqeY@Y>*m!7qdV2JD84hH8cehNgzLNUI1G zj8u*EjZBPejDn29p{p!fjk=7c7|k?VXtcv<uhDU%Ge%d8Y>l0aeT)N*Bf&GNM~qJz zUo<{oa@ypo$t{ylCf`l|nQ)j&nkty8o9dVvn?5o9X!^&L(Tv+nz)ZqS&CJNm+|11^ zz%0fr(d?BOXg2kq8JoG3xu&_JxvzP;`8xB>=6lT#nV&MhW&YBf(Sp}P-J;f_$)d+% zqQy*$RTg_Kj#*r?c!M-w;BOggS#H^3iCD?SWhG;!V`X6#W_8EvA-IS0!wRt?;jJ}j z{17rPqi&;P^U%i5*3Gujw#{~e?Nr;jwySM-*zUDGWqZN)j_q^XpSJ&Px$MO36zvS` z%<N?CmFz)l-7M_`?ZfO7>{IP??PuFBx8G!c(EhmnGyB)}-$3yYz{F4kt_OJyWDJxH zZW`P(_-ydQfY(smP{vTrP}|Vh(9JN!aJJzB!wrVJ4EKZAb38J9Zus8tpCO--DtNVm zmr;+=Y@=mHn~ioD9Wr7u<}?;ImM~T@HZXQFjxjDWt~Ks3?lV4UeAf86v8{=d323$^ z(j?2I)?~WLHj_gpcTB8I?M*#R{Y=A5vrKDDr<rarJ#Ko{^nvLcQ#LafGf%T%vk0>U zvjVdwvpHs4%=Vj|GP_{LWiDoJW?pOFWZq*w(R`-)YV&>OH_U&Vvs<WHR9VzpbXxRT zOtV;JvB%<?#TN?!OF2tTOH<1*%Pz})@VdigmIo})S>CsNYsmqwVc%I5fY+P#ThFpy zX}!&QkM$Aj^VV0bA6UP)X0#Es5w}sY(XcVL@wADy$+ju8sj+FdnQ61!X06Q*n|(GX zZEo7Uw)ttJYCG9>rQJHa6Lx3q9@;&#`(?*!&t)%SFKMr6Kf`_jcxG&~{XtOJCoqBM z#1akC43-$IG}vsg!{C5Hui+%a<%Vkvj~kvbd}#R0@Ppx3!@q{0`L9n#-;EfJ*^K#& zgN-AM`;Dg<&of?ZyxRDs@jGK?6Alw06LAxHlS?Mo!D$;*<CvS;n7WwOns%D@nXWM1 zV!F$8zv)NQzotxPhs=(fJu-W4#$?WJE@&=hE@yt<{E7Kb^MB^T77`Y&7G4%17LgW- z7P*#1mNk}*mYtTfESFhsv^-#W4BC$6w$ibRw2HIJu*$V6wd%5(X0_02gVi>xvsO2) zo>={~`ftT$EnqEUt!`~;ZEqcFooJn7U2WZH-D5q;dY<)4>z&s7tykKtv)O91%jS^H zFPr~1Y_{CC!nS_4!M0Jh@wVx<t8CZXZnNEOd)SuGPS{S?PRUNouF%fcKGHq~+GCq+ zKihtl{ciiC_809R+P}5`Vb4&&#IS^cfq~P2-yqYV)S$tj-(af2e1jDR>kM`o95uLU zaNnTEa3VN8uK?HDyhcJsQbtKe=|+V{Wkz*ImyE6(Jv4e|^v=lH*uyx;INUhi__^^L z<8Q{ljhRhiOj1lhqXnR~vTIF#f=duyQ&FUPz1h6qe3to2^Y!LC%@3KMFu!5`*!-vY ze{*|VciRQFN5SI}OrWKv42m{dHm)`;HoZ1$Y#!Qh*iN-wX1mXp+s?plg56d-9(x`8 z8vCX8ckCG!Ffnv6Ffec!SQtbYEHF4@@W(*LFvPIb@Sx#SLmi_Cqbj2<Mpum#j9rac zO;k;sOcG5BOxBv5HF<5qZ>nGls-Lq=7n`0my<@6i=4KXYw%6>b*$*=d^9XZGizv%B z%YBwoR<>5zRs~koR#U9zTdlO(WVO@ktu?2;p#6UPBlhR)FWcX?XV}2RPyt?tVPp_w z7;ac#SZa92@S@>u!v}^h43&)3!K;?$7%enfZM4B?hY`QAh_Rfpvaz<Yy|J5#w@Ii; zlt~iOe2a)_lc}1SwwbA!m6;Q`r2rW-&@k6EH#fI2cQG$8zh(Z|{JZ%-b9M_+3oVP+ z79T8rf!l3TmTH!UmJXI~mVuV(mW7r}ELU1?w%h^E(RVE$TfVdWYsq6}VC7)tZ53se zU{zq%V0FRjj@5H;%8atkv97W1vz}+Y!TNypdFz|jkF38~v)G8+Xxlj1#M;!^9J0A! zbJOOD%{!a#HcYlWwo<mnw$8SGwkfs+w$-*>wi9e;+pe_TYJ0%;yzN!nJGO6Zf7mkH zN!rQVY1vuWx!C#J#o49UW!u%*b=Xa|TWPo6ZkOE&yDN70!7EOG+ws^-*elyx+S}WE z*+<x?*yr2V*|*qt+t0OMX}`t(r2TpOTlNp^-`IZ#l@kY;7)+QTX<F65(7?vP+aS;& z#vsR_&Y;U+DtI+Lm*FbI_23mShYjnET8uzrT{Dar!LyIsz-s{(o2)R|WU}34zsUoW z7bd?<vP|<$D^2T6+e{CcUo(GYu5F=jVQgV;VQpb=;cVe<;cek>5o{4|5p5A~k!+D} zk!_K0QEX9eQEgFg(QMIf(QVOhG1+3e#cYfD7K<>dcNNZ?V~8yTxvc{T7EUj$53z zIB#*;;=09ci~AOjEuLGvws>#x+2Xs!Z;SsH%$Dqy+?M>7!j|He(w6d;%9iSu+Lrp3 z#+K%m)|U2`&X(?$-j@EB!It5c(U$R+$(HGs*_Qd1#g^rk)t2>^&6e$!-Io29lP#xP z&bFLyx!7{K<!bQSwUd@NEniu_v;1WF&GMJ!KT9SnHY+YGJ}V(BF)Jx6IV&YAH7hME zeJe{VPpe3)Osh((POF(#E3I}~owT}X_0sC66{oeNwWhVDwWoEYb*6PCc>VDz>vh(f zthZV3vfgKX()uQNHHf5*rj4bIr%j|yrcJp`Bc3s3P|fht=BEv(t)#7{t);D}ZKQ3c zZKZ9e?M&O1wmVTqd|%rBwB@vuwDYu!w9B-swCl8+X}8jDr`<`rn|3elzS}X{bK6VW zYua1dd)i0ZXWCcVciK<4UueJDey9CO`|I`(?cdw~1f`h^ObiW-pfn?Cpl)DjU~S-O z5NVKUP-)O<Fw<a-!3KjZ20IM)7#uJ-VsOIXjKKwiD+V_V?if5Ucw+Fv;ElltgD(a@ z4E`E$8cG^!8d@598b%ss8de&18qPFaX}Htyq~T4&mxezLIgKQZG>r_5tc)CuJdFa3 zB8?J^GK~t1I*le6%`#eOw9@FPQJ3)~<5|Xwj8_?N0<UK~Wqir_mhmIwSH_==e;Es# z$eO5`=$p8h1e!#e<eSu(Ofi`Y9+!D%^3CL*37aXOshFvpshX*tshO#rsT;VJ09pr{ zXIchMzkR0DOy_~eoVJ<nGd*T{&h(n;J=15V@4z#YY-XT7qMVtUnVy-MnVp%NnV(sh zS)5s#S)N&$S)Ey%Ss!@JdYRce@QCFxvvX$G%<h5rk$f`)wfOkJ^&@C~v>CXU>1Q5h z9%r6ro@ZWWUT5A09<7^azRY|bc=y9G^K<453=9vL7!nv57<L%^FsLxBF>Ekw!8-$f z!0?FS3Bxmne+(InSd4g#1dK$C6pU1iG>lw~GT^f<4(1`|Ip!50^A(sGY8V(8ei-~Q zU@&Ac<S^th6fhJqlrdB=R58>r)G;(LG%>U=v@vurbOF!*hZsf}78sToqPqq*2M=+9 zj*)>;iE)SV3gZxy2$K|(43iR*3X>b)b(4@)lc045%nYEhG!_dE3myvr3lR$$3k3@m z3k?e$3j+%i3k!=7iwKJfiyanEz^nCHY<O%$Y-DUyY;<f)Y;0^?z&mAPY*K7;Y)Wiu zY+7u3z^et9fak^c*c`DrV*}bj16qCj#paI<i!G0>h^>sRimi^ViLH&Ti>;4sh;58* zifxW<iEWK-3wV#i9NQ(fYizgJ?y)^$d&c&P?H$`Ewr^~|*#5C)0k7AUu~V_ru`>a$ z&-Aeiv5T=wvCFY5v8%CbvFov$VmHTbiQO8zEp~hCj(|sx?toXWezE&w$70W8FJdoa zuVSxbZ(?s_?_%#`A7US4pJJb5Ut(Wl-(ufmKgE6yc<u8R`#ttY?9bR=vA<*g#Qu%_ z7f@f&fti7W1vGxZV<2K6W1wQ7V_;%nW8h-oV-R8xV~}EyV^CsHW6)yIV=%>Fj=>Ux zHQ?33M-0vwTrs#~@WkMa!54!+1}ug=;22gh)G;(Mv@vus^f3%Ej4@0BuN<y1Y%%Ns zuR&j8xCXrL<%r=K!z+e&44)XjG5liq#}JgRM8Ny2bijQl7b72|5Th8Q6r&uY5~CWU z7Vw&~IYvv2));Lu+5;Zpy<&97=!wxAqc28(j983$j75xPj8%+vj7^Mfz$=kMjAM*b zjB|`jjBAWrjC+iy7|$_Y0$%a5$M}fx8RIL)cZ{DHzcB`l53`u?n24Cjn5ckPBifj_ znE054fLl~KCM6~{;4z*lCUZ=dn5+TsLONn{#^efkMe`ezFD8FXSWJ0LMZkS#9a9r< z%hty<#5Be<#WcsX1U&Z8V>-ojj_DH9HKtok_n00rJp=AnKQVn{`o;7Qc)VT2OvX&b zOvlW`%*M>c%*QMQys|ULti-Iwti`OyY>L?&vnAl!ojqnp%+8oyF}q{-#O#gP7qdTR zEap7sBIYvYD&{)oCgApo4|r96ig}KCiFu8Ai+K-tt;iDdHRfB)_n03sKVyEy{Eqn( z^Ec*S%>S6PSnz=Jii(Afg^7g?ct$M5BE}-cBFCb{qQ;`dqQ_#2#T<(z7HcfFSnL7s zu()Dz$Kr{_8;dU%e=Jxmc`QXNWh_-Jbu3LRZ7e}6`9dsXEK@9VEK4kFEL$vlET>q` zv0P%g#&V109?K(^XDqK+-m!dQ`Nr~#<sVBHD;_HmD;X;lD;+BnD;p~pD<7*6s~D>k zs~qqsON&*H)fB5a;8~|FR(rrJ<gZxWv3g?l#_EgJA1fAX9`Fo|inWfliM5Tji?xq+ zh;@v0igk{4iFFNlR&I**9P1_4Ypl0`drxPquUOx)eq#N``iu1+>k(fL1dNsgqvgP8 zIWXeOfdppo+!KqzXnTO%_5i~KW`+z<`xj{sj{vxJpkS(Es$r^QYG8`IgB3DkiEW+| zd2Uk2ti-&-JjCJwxX%4x@x_AS05gLHhCMQ-sJ6I(=R-lJ*O-2>PynsP1+5zx#V8?A zy5HRjBEZNX06M>i0lZw90a=_8)V;tW4$|krz`zjEz{1eM4B|m>2eSzS149@?Fhe{; z7=tTA5JND7CxbtOA45EYCxah@8-qVs;a-;a|3I71m>C!u#2A<uKs0Fn5-bUt+haiH zK}26Lf#_g{5{4p%Oolv$bOtwuOokkWR0dCmJccv|&_Ovzz-kN_Oc)FpEEzzw6L@Sd zib0lvk-?cEpCOl_fFY3~kD-#mk0FsEmmw8oC_@NC216=?0)sn)4?`wH5`zLm3PUPG z8AB>V4nsae0YfT75rYClGFX2uLn%WZLncEB1Nb-?1|tSm21dABTo_UriW!o@ZY*FZ zVaR02XUGHF0W%xKF=F6E(h~+YzZglaA%h-+F@qk15f~eRv@k&Qfc#nlR-ea^$dH5N zi*$w@u-kPRAi6=CL>Ma=7#VyRQW?_0szD)8z)%TxT{=Ss1L!~&Ofdz9l?)0Dh76Vr zmJFs0AoD;ha|Q*50EScsi0ujtz6^;BC14*GGw3iVFa(3cDUTr;>^cPoZ-z{UT!tjD zy*UgD;80ItP+;(4$Y&^K$Y6k&kj&r$4k3_VQW*5WqWKId44DjR44Dk63?Lmz43!KD z44@N~P~#|sAr%~l2($B{s)`tj;XW{D&}A@UFaSe61_lNv23`h627hQ6fKn33Zdh6Z zg(@Ufpoga(LkdF<1L#y91_mu~oCh!zF@W4!%8<-Zf)o>=^Tr_Q2owhf3~UUH45(_+ zV;mA=p!jBBZ~<vz2xCZOD1xUdP^?2zI0J(U1L!=x5QZXfh!!*Cfa3v?&Nx{%fE0jD z!A0nSFKuFANM&MR`1hZIA)PTTF&mN<;99`9mohLgXh8ELGeaWipyFZ%a0v{uf|(%^ zq^OvIA%+ulCL03-NF=`~rI>-CK?o+2XJly%GE_($Ap+tvFsLC!z$zFRj1eNBf`oyA z!5txD3egpe5HW*@WFSO9V=)X247CUmP<6q;z%U&lVhPc;0wH2(02bPXBw`2_IgBI% z$%W^TL?Dj7gCqiR^eZG0h@*cXi9j69CIJr(Lx`iLkVGJk)<F`1INBB=Vgzw>5RwSQ z%{fRS5I1)ti9p=E5J?2$<{d~P5I3Jd5`nn+I+6&)&99L}Aa4GSBm!|Wn<U()#t=8l zAc;WStc4^3akC?m2*k}%NFoq77a)m1+}wmD0&(+XBoT<4*CL5P+`Ju01mfni2oV#A zo1Y?yK-~NdNd)3%PARxgO(1SoKoWtt*&ay*;^t^15r~_!kwhSFu0;}oxVaxm1mfnU z2oY0=n-3$2K-_!}Nd)5NcSs@-H#11XePIf5vmlZP#LaR@A`mz0B8foUY>6ZSakB@K z2*l0t2oW=gn=6n+Aa3qL5`nmRC6Wll%_osWAa1^eBm!~sPb3kDn<Zu7J~e~5SqDi3 z;$|Bp5r~^Z5hCUgH|HXWK-}DjBm!}B50VJP&9jk2AZ}iZBm!~s9wZTnn@=N&K-_#6 zNd)5NcSs@-H~&Y7SU}v&FAMj(1;owrNFoq7>m!Lk-0XrR0&#ORk_g1jg-9Y0H@6~* zK-@eDNd)5N#YiF$H*Z0RSVG)<0!ako=G#aj5I2875`nmxNe=E)ONg5VkwhSFmPZnS zxLFfP1mb2hBoT<4osmQ!ZVpC>7#e^b9gi#mc62ea2-wlx$Rc1z&qEdgJ9-nc2-wkw zkVU|bK8Gv<cJyOp5wN4bA&Y<={TE3DQW0{?!$Zu_5bS12WD&5NwUI@@Zni@f0lV23 zSp@9nXk-zvo3oKcz;3QY76H4t6Ilf8=1E8*kcx0QvIyACdyqxIZoYvm0(SEoWD&5N zL8pH~+BSKHMqoFKC?G<^2<&D<WD&5NosdPqZVp2h0lPT^Nd!_6Rw0Xk-Q12W0(SE( zWD&5NS0amm-MklB1nlOM$Rc1j-$E7vyZJS;2-wYxiU^+?gWW8GBm$`j6_7>1Zq`N? z0lV1&Sp@9nP-GFXo70g+z;3QU76H4t8(9SG<|W7?U^nkT76H5Y5|Rj{B7A}@0(SFf zWD&5N{~?Qj-OR0o2n|R@D2yxucC#X~2-wYf$Rc1jTOx~q-Ry}h0(Nsek_e<CEJPLo zySWxw1nlMxWD&5Nrz4Ai!+ABb2-wa0kVU|5zJM$OcJm`-5wM#-Ba49D%&LqCA4o+g zhb#hivk9^Y*v;<9B49TsB8!0C+<+_scJnM`5wM$gA&Y?Bd<|Iy?B@T-B49VGs36=7 zsR&(>MZj*(MHT_OxfNLi?B+$tB49UfMHT_O`4F-Q*v%J^MZj*phb#hi^DAT#u$%uP zi9jksPE~|2EWvJ;K^6hKSrb_V>}CsO5wM$GkVU|54nh_IyEz_N1nlNqWD&5Nn~+7o zZtg>f7(wd6ImjYlH!nvP0lRrSvIyAC$B{+AZoY;r0(SEgWD&5Nzaxu)-OQ#24>2PH zu$zUDMZj*>KoWt}gVx9*U^n|9i-6r6ge(Gfa|W^q*v+-bB49U9K^6hKc_p$4*v-3< zMZj)8ge(Gf^DQJ1NIm!-Sp@86Hg$yGjlgb}LlyzM*#}t!?B-l#5wM%5B8!0CyaHJS z?B=7$B49V)LlyzM`74qLq#oqaK)BEt>}Ew|5wM$WkVU|5jzkuLxEWal?B*6^5wM%5 zAd7(AycAgk?B=b=B49V~LlS}1gC~$hz;3>aECP1(Cu9+@n}szIJ~aWmSsz&h?B-x( z5wM%{kVU|5?nV{?yLmdY2-wXlkwhT%;2vZVu$#{zi-6ty2w4Q|=Fi9?U^la9A$(y9 zcC!ew2-wYP$Rc1jTOf;o-Rz7k0(NsCk_e<8j6xOxyEzM41nlM#WD&5N8<9o8Zk~cH z0(SE%WD&5N4<U<y-FyyN1nlP9$Rc1jzd{m$)PvuUMZj+6&_;xqIoQpz$Rc1j>mrMQ z-E5640(P@MvIyACDaayVH<u%efZg1QECP1(TqF@lJ-8lO1nlO6$Rc1jUqBWCyZJV< z2-wYUkVU|5{*5dGcC)Y!A~Y<(ZdOJX0lV1{Sp@86CnOO_Js62B0(NsAvIyACO$ZUN z3I>L$2oWPlhj0b52-wX#kww66K8q{@cJoza5wM#dAd7(A{0AXo45<hCbm4wCHUPUw z4p{{3W_@H4a5&o|i-5y92w4Q|<}73pu$!BaMZj)eh%5qj^EPA=u$#{yi9qVXd&nYS zH~&Ny0lS%358*FEu$$$PMZj)0LKXqL*&bO0?B)Pu5wM$MkVU|5&O;UfySV{L1X2%9 zL>2+Nc{#EO*v&hTMZj)8hb#hi^8;iNu$#Xli-6tCsgLlx5!lTN$Rc1j>miGP-Ry)U z0;vc6kVU|5jzks#yEzM41nlNgWD&5NyO2e|Zk~lK0(SE%WD&5N4<L(x-Fy~V1nlMq zNFtDW@Ds8K*v)^CMZj+6H9&+9WMEVtSp@86P^>}w-Nq(hH@hIK0lPUASp@9nbYu~* zo6C?zz;13w5`ol%Gm%BWZeD{d0(SFZWD#&UUq==JyZJS;2-wYkkww66<~Bt5-4yI* zX=D+wn?Y@OnBPsoZVp0H1E~kokww66u0a+7yLk$-2-wYwkVU|5-h(UxcJp;)5wM%T zA&Y?BEMkQ4g&Ek*pq3=e&1PUXyCJE8)PqsTB49U{B8!0CJP}z0?B?ajB49UfLlyzM z`4F-Q*v;3FMZj);gDe7e^Dkr(u$%de5&nYIgR00PU^iPMi-6tihb#hia}2Tw*v&b} zB49UHA&Y?B+=(m#cJmBm5wM$=B8!0Cyc0<TQV$+O76H5Y7P1J~&99I}z;6DIECO~j zn+YN`EWvITK^6hKSs7Ub>}F6M3QGx=U^lxVs{y+?6d_^)sRt90MZj(@LKXqLxfxjm z?B>bHB49T!LKXqLc^k3_*v-d~MZj*pj4T3n^DAT#u$#Xki9qT>c2juxm_Wuw#gRq8 zZq`5+0lV1|Sp@9nFk}(1n+uRdz;13p76H3?8nOu3&5Mymz;51vBmyc?85j;Ai-5!V zF|r8Q%?xG;e;I+@EQTxscC#t62-wYj$Rc1jryz@f-CT?;0(NsZvIyACGm%6f_24FC z5wM%jB8!0C{2W;X?B?IdB49Ujm?QjU40f{`vIyAC*2p4YHwPe#fZd#dECP0OGm;3T z9-NCT0(SFeWD&5NFCdG6-TVPr1ng#h3xt~?^`H*22-wX&$Rc1jXCsS%-CT|=0(Nr~ zk_e<8>_rv<yLlF}2-wX_kww66UXLsScJp3j5pX!4L>2+N`5Lka*v$`+MZj);i7Wzk z^G_rZNIl49i3lGvu$x7YMZj*BM-~CQSsPgd>}F7%1ueBq%)oATLskQJa|E&o*v&b} zB49VyAd7(AJON1rQV%Xe76H5Y5V8o^%~z2{z;1qwECP1(Cu9+@n;ESTp<xboGe5Ej z*v<0DB49TgB8!0C?204;sRx6QMZj)OMiv3PxeQqZ?B;G{5wM%*A&Y?BydGHu?B;{W zB49UPMiv3P`987;*v&7IL?HFx7i1BzoBtt;fZfbtjR-Nwx)d>F5wM#<D+Xa{15yua zBdY<s*#cPv>}D5a5wM&6kww66jzEZ*Lh8W;WD&5N3y?*?Zf->u0f+NaWD&5NHzSLH z!}%Dp2-wXxkVU|5evK>wcJohU5wM&2ZQvnh3aJM*kww66c19KfyEzb91nlM%WD&5N zE0IOOZtg@D0lRr7vIyACOOZvuZr+S60(SF3BoRnGcn(<v?B>VFB49UvLlyzMnZp+0 zcO$TyrIAIzZq`B;0lV1(Sp@86H)Ij8n?sOAz;2F55`ol%xyT}5H&-KzfZg1QECP1( zOk@$Tn^z%=fZe<kSp@9n6UZW9H{V4T0lWD#vIyACtaga-fz*TI$Rc1jYa)w)-E502 z0(P@MvIyACiO3>gHy0y|fZg1RECP1(bYu~*n^z)>fZe<sNd!_4o<$Y`yZIin2-wXZ zkww66X0}K89Wp;CiYx+lvpTW}*v*#6B49UrAd7(A9FHslc5@?=2&5jIhb#hi^KxVn zu$%WHi-6sH8Ce7z&X18rz-|VeVF)e#OwGV<7Ii@Q6tYl84Os;2W+P+~u$vu_L?HE` zAF>G8&9TTLU^nL=i-6r+gDe7ea|f~r*v&JMMZj)ek1PTX=Yz;1U^ibz76H5YF_H+R z9{h|f0(LX2BO){`z-|^r76H3i16c&@W@}^-u$%qhA~}gk;MIm80<_|qnL)24wF0y@ z7qrG2ECM1x(nwe@C9xzC$_FibX2zx_sTh1mDo7b<nKo86sR)C>@y?jy$iOfS!~|&r zW4)qO$R(Pf`?wew7?>G9*nuU`2$&|2Q`o?A!eEkt0U@Fa7g1nf0trL;Fe*N=1bo-2 z1NeFp1qLQ~Xn<6JG%z!Q!Ug0XkO%}*Ei|AjV`suw#-=A06(v^cf$vX+*aad%J_We~ z<Q{}iQAJ=I55Tbl(!>C|z>)*HwjJVr(4t$2F6^NJ(pCi8@c=sUm;n?TAdv>hmSzS< zxX4rn1_l>qP&mWXtY%<fID#T_fPsM_gauj6B?bnDFDN3Q6U0uiBC7$VnH6lvB7%$z z3@Yr%BASd03=^Ot5PyMgR#|}};>XCqAc5ldWJU(iavKIj_<;7v|AFcPi83%uWMp7q z;Y7A;F(U)R2dD_duDy&53_e`QYA!P}Fx){Ac?)tOH?kTYCI$ut9%K;(CI*HTC?b|j z3=BHF$ZEWp7#P-|h{S-@@FA<IU}9jHf+Erd(uE?jh>3yW2#Uy7CI*H(C?cnr7#RMb zh&*6oV36TQw(C0+1A`5Uh!8UaLkx<D5i<ir4T^{>GXujE6p<um1_l8RWRokI89-M@ zLDLv!iPXT)z_16D7~vQ*4}zD#!R0{=Jz`3vl%mw+k}^=%0BK=hW;6k1GcX%Qz*eyD zK+31Zm3hg9rKzQ<NSPIsPfvh-3cBqXq#INsp^Ee{GcZ6zaOc7K%nS@Y0?6UBiJ5^x zM-W-$95VyM5fqVk%nS@Wgpk!RvoJ8Y2qTM#voJ86KoQYpVPNnPL003)!oUzA1`&az z`4kogh5~Vj2qdSJvoJ6iNFa+$W?^91fFiPrg@K_%5?ReD&`x+MWRb@#3=C&bL|9oF z7<{CW)kw24FmT8qi&(KTFldOvL|~}}5~`s3;s6f=!y!=c!!azifYJ!a2cU8WE(v8& zJGFpv6lA|cdQxI?c1clUGIC-8@2uzm`wKa>po)aEGBE4_tHGUGGFcfIKETv~{nE(F zzyN9pfPD%Unas+-@CT{}5~nLz85nqEAz_GU1Hf!&W?aC)z`zdH3nMVY5LCOsWFa)Q z!|)*@$0a8wXP|^1$VO0((*XMdISf%nwz5KYksw0jC@TX4sK!T#++}58P?3X#2DWwr z$gWqc3=9?WP&FU{hTp6V3{Ox*xY-yOwkRO0k!E9Hn4^d+V!+10AfbdT;?BmvFa;_C ziJeF`28IY_h#Exf!2HF`cz}%ox|<B_5C#SYSnPlrn_z!2g6cn*EQF?Z?0iFto&4N_ zoYa!c{5-Vs@CDcx$gzVelF!D#01?5R!W-Eb7?!9&LIdPC28Nkz3=A2n$Rb<V7#IxH zkVVdcbU{TRq56!Cf#HEVvYNka3=AhUkwpa985k6_U?Q-x1>!<b*^<D<zyNOILxL13 z<O5*s4UGDOfq~i~&(F-j04-aR^YhA5i%O7!9lD3g1MCarkVh5Kf@W_}*nlttg9$qW zLj+hC?zr$~XJBZ6sbPpuj|X3)J_9ZS3YJKA28KN-A{ii)wIQJjv8#fef#Hh|L<AD2 z&7hDsKo*(9&cNVef-JI*9Wu*+Xp0^K=`u%FbB&#W0kqNsq6QX&FuyZ1D)2HeAo@Tc z_rmfHX)y@e#|qMoz<MOKB`gs!2<j3Qr(%gg&|Cm0F(KOgs3LFJ8Nj!`fx-_Gs%#t# z;IoGiBC;F|44{ke5hD5=4B-9K2oV<!2Jl`(gh&_%q&<cZN#S4s@8Cp;RB|vdfbKd% zh)m>QU;v#~hY*>|!2rIS2_dqagMk5b86-kvI|l>94Ok3<yo(4>IO`-xmn9^YAwGS| z!N6c*4G{sE#lY|b<S!d!5fM%X1{()t5kpP}h8|~RkpNBx1`k(ckpfNzh8b?iBJG?E z3_skFMdoudFjROTi)`X#U|{e<7CFYrz@Xv{5rMe*CMN^K6{rZr&2Kpw7>@Wr)Ida- zxEL7T_#%tQaWOD_@k16d<YHi$;13ajm~6+zz|aG?9hT-{sfC$wfdm5ssGkB4P<VZT zNb{hcAwnL+f|XjJln$~7YpaQbG+)aMFSSw<OE4;PaEpi|0OT*^QVUhYpNoM3B7(b& zisoWqxB)f?)<4bWVqmxv2r?NaQpd%>Fe3<Aq??O@!6+Cc0<(QK7Xw2EipWYX28IP- z5tuo9xfmF>pom=HVqiFdBJv1iJBr8;E(QjHP>@{;44{x@VBq6sU^o$mETYKGz|ar@ z5rL!)Q*H)^kVs?^cWwp-hA3o_2yO<39Vj9h+zbpk(a375xfvJ~Vvt29b2Bh##3GAq z=4N2<h(i{+%+0_s16Id@k_W>pkX<Muf4CVKexQi(^Dr>zfKHhOjpTrJ$@4IP&kzIo z3F3Dx9tH**6gBod44^B;kb3K(JPZsM;vw#V=*s6|U|5rgEYbloCj}w`GM#~877qi1 zNd~gWY90oLnoMMoy*vyI1zE@<XL%SH60(s+?(r}%aO5J3eB@zZn1Uk0&C9?LlZUKE zg_nULBp+GCl$U`)rT|&Qo0oy%4T?w{F9SnI5we;xUIvDg5@eAMUIvDoQe=_&Adzxp zk)6B@3?3E8BDX*$S0ao2=4D{usYVvz=3`)BsYMo1;A3ELsY4bq1c~Gzi#YNzFr+|Z z2NLrBd<+b0%8=Eh@G&raK*<G_d<+aPQ1W0q$o3GJE?7AR$?u@n7ig{9Rg^jcR(Hcw zCL?I%3E~EDas#!{pyL44D#s=x%CXd<qWmJ%wijf?R-+!|3s^}48V5iXnaRh%01;7O zz*eq;+`g8Nf#C_*99U_yi;saJrvYR#OyoQ$#2S%B?(#7(B%p}A=3`*EfFc4K=~>Z) ztc#PMfq|zPSp+op(*PHN#RbI8ptxuNjRAn13CFOwh=Ao~l$e4jqjsIL1`!va(bUqC z%$#E6_yF|~SAczi92ck}+WZU*5E1NkN_?Rnc&R1aUtq6T@G~%&v>=C=4?hD#42no9 zKLbNa8$=DH)T-oXV0h4uEYi!*z;L1iA_7Ubi})EBJUT%lFgLH`XJ9Bm5!ns03l`2` z_Z;VEV5kABfu)U0{0s~)x<TfEL|`!p@hK<<7jQCwPci{(2NRevh`WzZt=x1P5rY|t z#Tm$v2X+%E20eN~zJP@WC^w;sJmzO$NI(gVt*i{-8!15{3JLjNptwL$!zIAL05J!9 zyo0Ql5ny1D=mXgf3PX^HkpKh30u&K<0S1PYeq=Q<0t^fR6Ocs;K_U~8MfwF87)&N1 zi!2dfV6Z_E*)G7qkb@#}MSy{!VluL>R{{(SDpQa}{({s%MIe3`5@cXFG8Li*BBCtF zz_4K&vWSHs1B1hKm<TMjK*9%{TDTY(3PAw?$FS4_4|zOe4%A95?~zhVettIA)baxC z3*^*-D&i-|z|b%Q;!|9sJqdyg3>q_`YQR1&7Gz*}fFjZ;$iT2-7P6W?K?Vk&ImjaO z1Q{4~<|B)&6J%gGu>e`*kRSs?$3kS0JAw=h6^oEXz6&xi<Sa%O;SpkBFj<ByA}Pec zz_A=zL|ce~p#eq2R)~Q?Vg<6A5FrMJJt!hsAd^=itEm%WV0f_vS!ALR1A_~S$WkE& zh9xLI-7UnxFkvaOuH!-s3?6flMXm}lFjUM&7I_6SXC6!hmJVSt$jq1^#K3R?93wCS zmJUHDl!Nm-9qJu67I<GKGe0>aF)uGQ2RSi<OD%91BBw(S6p?SB&;X0zE`K<M85nNB z)POxKEzH26u^JXWAR&EW28I?C5hq~=h8HLzVZsay9&3<wWePJetU(c}6=q=ISc|M? zf-nO^28zg1VFrdja1mJS!2HF`_<$KQ_6%|t1P?^)*dxbId1jum5pvu>TWIS*K1Gfl z4HS{B!VC;HU=iFcv~$7?3@c!2z}~$J3d4;clVLr(cft$|Z#E-~u!t})Y}kq{A}GSZ zP_P|YL{)@=;RK3^xd;P8$qr;Spn01uC?W|W4B&J6!MOnJo?;OO29ce}x_UsiqlhdN zVPN3dg{)?~2m?a~ipXh@?I<D-MHm=rP((h7FfbfJ5#bkQVDQ<EY_hT_1B1vOWDyHd z28IhLB0eBpdy&;7iZU>yporv%GB7lth;)cDFw8*_nJ3D?z_1V5oUNh^3>hdQXF%ql zh};xqV3>g-@?Dexd}9qFR0YHsK-VxL^-nd#7#Mb-v@V>)7#Oxd%>n6TU`Q5YU@+JZ zaSueKPK<$J35v)}F$RVWC?fkox(*=gx+ccJumVNogBSzD9uyHiaRvs9gUGtn#TghT zpooCZyZVA6k|NH)z;Os!SD!cogA9tuc5wy<6}Skj1c2ooW<~`O28QY2v<D+FOMn;# z1_m*hG?=D#zaSS;0_0>CqYbXYM##awKrR71P(*HuGca61iPJaY3=DTrMA#)57_NYI z;VvbVBp4Vv4kL%Er33?m%n@V}e~>vSBC!$-3?GgntI3jJV3=|YS)@{efx+N7vPg#n z14GFPWRV#X3=BI?B8x1SU|_I0jV!WFf`Op`MdYXi14F_YWHmP>7#LQdh`g0xU}!mu ztmc;l1H+s1$Rb>l3=9SrkVT{=85lxPL^LEB7<y1dY$O>NKA?#BN-{8rTtqe}T9Sbw z0!1WKl7XQFMWg~`GKvUjM*0Sd$UI2~h9y@ZCPUiB8zmVSbgn`~Ao=vLBm=_+6p;&( z3=AhwM4n4BFg!pJ`6|i4Ab{cvMkxjc8@TPTyaP*h%!~~p3=CY1;0ysJV0j0g4(ZUw zK8DCUxrv#`GkOq5f!a1Fu7Sb_Iq#r~@JTT+yg|t+ic$;=e^5jWq!<`LD`P-m%nX`K zD#*{tVJNr`G8uPnvXNq7=(q({19nh|6a#|{6XX<6NDQWcY`+ar12Ua~p+X9>{s$xv z!VC<3QVa|hcahaBlVV`dxQ8sVMT&u81yls0>$nsH!v_?RyHX4cCHIkafzCNgcmNTB z=;D-SU`Tlg5rMczTAG331&WA{Gy}twN62cNq!}2#pooM@GcZ^@K~_^L&A`C$6e0q# zt4ErFfd@rosWbzF4vNSgX$H_Wfk^e&RcQu>7^oVE3*SgHFg!pJVU}TF*zycw7etMe z3<HC}b7T<{83u+OC?b9`3=BLkkk!P1L|#HfAZ{*|VPHsj1rdRm+$zJs@CHR>xeNot zjn~L(uE{VkRJ=hJ0i8Ye14TqYmVqJVEwUOtSq6qPC?Y|!3=BFb=_g5+0ens^$aNsh zz)&R1z!38e*_<|628NRN5D|!)>9PzAA3j1vAih{H%fMjp1zF^%ECYkbS7Z^;xndgM zkww19GBB)xia<=}kz-&G_=&6rv|7OgMZ`{yfgu7##9xkqVaG3IT?ujw3=94sixh!G z{vwOCgUkV+m<t>6m@mh`@Bu0UanBYx28NFR$hywTF);jria^x7mjkWYVuY^g0%cTg zc?Jd%Mu-SRje$G^Ll0C05@O!+3=A4f5H%2yOpqEBk#>0ohC5IZh&l7*85nq&A-W(U zJLDM{3Q$B&%QG;1K@qtl&%iK;1zFbz&>3B<5D|#&YzhnvIVd7h3ZR9l$Z9kd7#I}T zAR-XkEfp9TOi)DJ6&M(1pol~$Ffg2eia_kjR$yTGfFe?(z`#(!4lx;`rbB^&VG3LX zR)fIGUS>uHLk5NySZfe?X$)S`3YxA2#R&vsw!T1~gvh~2Qf9Z`BiA5B*`)=j-7oM= z-wCiUP-+kqk@=u7M9G!w6&M&EfYspcFCSH4VBp|@gcu|)t|%}tc%X<pQ2@;rL)1V* zl|hk#;Rh$Oh^!(5g9SH41Y(Z4A_GGL53-1}B4`aKvWTA|1A_=JvPhC51A_~SNP!{) zLj#IPl_CSf1{9GNMFxfsC?Ycy85lf-kxgE%$iQ$$5?N%cA_D`56tc)6MFs{R6p`zS z3=AD8BF_~W7%rfQd{ty%_=6(Cro_O&BaLjbq!I%|1d51(5(C2-1&A6*sQM`}FkCP| z7AXLkV~i{^Rf&P20V)Cs=T%A!3`b00YTzjx9Pi+9NL>boP^>8&bW<A0W@biE3k8;L zAv7$7gH`~7?7=qYLP`o3VTF(X<fi7LC2wf|BEuBq3*;1zDsn)Hfx!YLg<n)+V6Z_E zxvRv$&;d3Fcbb0=3VE0suy;QxF)(<TfozAB;eVAF7!II_@F+7doInwgRAylCF-O*= zrOd!^!2(&t9;C|>StLlAfnkC*vPhaT1H%&(kqTu7h87!SHQmY#3|nlGMdm3pF!b0V zi)>V8V34p!7CEfUz;Fje<dQN2gM|Y`4Jck27~Uu|FchGOu&FRGEI|>GS7BiI0u=$J z7zPFd6$XX}ju3MoB2Fp{3>i)^k@)oZw4&5hh86G-gQZMZoI+L>f!4o(qX106TJP{! zX2d<8LamhPgq$*qixbmRQ6|K|Wp4-AU&tvFRm4w)fx!VK9mcCLFnFMd<f$+)_@Ib1 zsW31EpomOXVPFVB5m~Onzz~5VvO|S|0kp0i6zY%|JgvgOkbt5Fbaq_|ipXnF?4XD+ zsxmO-pos9PGB7lth{&okFl4YH_Y`zg85m}OLj!k@!%>xi;R93+$dwEXk*W*~0nV_r z0gCE;knJcY*QqivtZ+qEGf|a+;fp&=BtAVpCqKQ6;fN<p1Y{2Aq`I60m`Hqjd_hrW zUda`>2uRHyRR)GFi7+)Fkt?bU3<62WA`es<7@nYrd{t#&ut-K$!=uK)(1RkPtj56b z04xGa8zyQD3>K-#x&qZ07&@|%MUvDQ7<NEKm_hxxocweKh7CT*YCz}G+4#XkV0j0Y z>X;cD^cfiHA<+-=5NOsOv@VVTDIGF8us~uCssN-0I<rr$yi<Y5J9+sjI94bXfqVfA zAJAMR2Z{)2jHm%6C4k0}CZLFb&g7c{)`dIOtyg1U@F)h^1uMgksWC9zK@qv5#=tP8 z1X;}sH3o(Sr4SKFaDG!`U??bqh(J;==#;*Ka%2%<bq0nXC?ZPg3=B3^$ZE{h85q`7 zBa3*bGcYLBAdAGPGcc?`5y?_#V7P-K(yY$F;8KgMYnnO(Lkm;{;^vK@bNlKbY9Jz) z)EO9NpoqLvXJFu{M^+=C!NAagBBG_iz@X89tj0@&f#C^?NQwpnLrNpE8qi68IZY4| zNQh0<U|{fRfrvodvs{CLp#mxbQL{yZfkCGgS<P_`28Ibx5r~@W8Vn47+8}BmBCj+U z7-HIyMgD3qFj#aTi->44F#JFf(a;2~2S8S1r^&$Zpc7dHbhe*M7qUo>CIdqYitTlp z3=BM#$ZDo&GBEg{#PSkN1_lWfUE4Jo7(T#L6f7^pase|VgCqk32i6uEJYV1$#iCYT z?m*<_f}+e^v|11{2gK10@;gdiMiDut$-scB=7J^z!vqvHw>23UrhrATx6t6>16BiS z!D3mV1TE`kz)A^}(1VnB)Na8}LxfLZaX$JAa!B}`fVvs60vT20izWj@L=Pwo@%tU7 zi<yxDwC@DsAt(uJBhl0Eo00sEwuuYuDp3F7!~~GPkkbaL2)h=jM-QoyAZ3EQ76Sul z_aZ1~Lqzno7#P;T;uLJMqZR|h9k9vRLky(IPm6&;ViL%9Sjiuw#lY|dMI>K~fnmyI zWHs$t3=AGqkVR%`F)$oK5!s~0z)&+4S<MkG1_ps?$ReOqCnunYywzf0keQCGhDDo! zVF8MWm^K5$9~2QyZ3c#f88BV2TmTD0W<~}M28L>oci|W_CE(t}LakEbA|fReCFZ4I zbmYJ(0qhHulz<{)qs_pu0VS4$wHX*ddvp*fAxWEo;RIM0?s%`zW?(piVotv{0|UoQ zSQvr=YPL25!w(dZ71|68H)es<z+AXVn}OjCSOk`S_GvRP6wCpsfr)_5*Nm8pEOK9) zf#C~^$Xjg&hB@<))iCNXFu2S|77@~6V0eQfqN&5cux0_W8XFx3h7%|z2kI~|_`qEV zPaELy0hN#oI2ahpLEeR9SlWPxGaYJ>Pe^G4b#({CS)jC$u@K}_SjdA~gQy}&It&aD z5!@}kLLCN%9<VvEH3RiJ3=A7kM7nht7=ECL%+O(AFj)k$9TumcvqjfHMIhzRejNse z15goAT4Z3jti!<YWHGX?ryv(DK^FO;!@zK3DMSQfj-W0BL(4LV2*ex}T?U4j<q#2w z8e3fkhBr_Vh?)S9u9Xlq5RqhE28JgnBBi<v3=XT1)wJp|Fl>Q}Kun&k%fJw_8lnaw zvRRjbVFOeIV)9YYDWPzaVJQj{@}Ly;fQx~l6%uVw5|*M)z;YZN>Rd%O_^45FGHA^Z z+S*}Iit<<k@+oqPLKV5L3mP{@u6I7^GBD_@1?j?FwlL~3Fx0GvsDXr`x*h|A#0H26 zBn++e7#K`8LPQ{H0`(Xeo<Kz)YLfIA7#cP~)Idav^cWa;HbX=py4v*^7#vVUX6rF9 ztbvL^bZysTU`W{t(FGB?rpLgrVH>i@dp!n*B|DHs`1BbV_UuF!QPyW*;MfHbf!J=Z z4_dnd5rLQ-ug}160;&cgQm4<rZ~;YRwmt*H2NaQQ`V0&;yOGVgpwGY%um@S>sXhb4 z8WfRV`V0&Ldy&=f889&9popj$Ffi;v5dobIqq7fLm$v}}gTQ`dkwgOqhAU7Jh)=5x z7#Ln0fT)3p^cyfRY&ilEf%tTp0Rw}<X=IVzAooB;Ai6FYFfhcNg{XmuyfR>5NP(J+ zI1>Yw4w)Gn3>X-mqU0CM+#~`W1%+le8uZr9kaAN-Y7WZ!JCLoQ+;rj&$Y0302~`BN z3-S)E1ORDbU^8T3xC7ROJ2!#ORn55vG8tC(g3glXd5A3HWXQn4@d#NY*pPuC;4wr5 z63$763=BO_kVPsD85lI4LqrfE4|6j!;{$F6hBmM}VFWDX;l7~5=ywuQ$YWbx0}A;S zFF?LP4tZ1&&^XBhl#mCFlYBrC={00vFnI|w2Y2nc5;WrlRRc-$2Mrk*YF<HfK}2pC zGB8-YMizN)$iU$923h2*Ap^r36cJV<28N!u$ZAB57#I$`Ll#jpVqm!N9$Cc9h=C#I zBeIAa$Q%@rFe3(rD<~q_MhpxhpOAGm7%?!sKoRLPVqkFiimYb75d%X4ipUxx28IR{ zk$pxC3`<Z%&KNN;JU|h7XvDza@eSGJ&qfRkIVd7b#taN=P(*}`85oYBh$tH~Fz|dw zHpj}Cf#J+ghzKOjgHE(H`GqW!Xw1N{0V)ECuY6+$h7%|v?ZylY6X15i>UUU*VrFy@ zVqo|M%MxH3mM`FGj1DcvTBLkYkXW9li?;R@lrLU@{e_$_5F+s@sY#{j3=BU|asjA} z`hy}e)tG_d57->sWz;HT28J2GA>j-ORnTd^KcFIzxHxajz!2~Uq6Q)YI?eaYe~1V~ z*9&6?1_?GMq<MVM#k)t~BJnBt@u?N5$w$~BY9Qvwn=ml&a3hOonJ_Q}@F0sgm@qKB z;6oPiHeq0R!vYaOlzy=AVP*uaZ(RhAT^Iq2Wq63uVTJ|N$A|8|FD@wpUsQ_HZv@4% z2S3Oc$gzwnl4`=h01?3*gZU;53_W0TV6{x82?N6s6p<Ft$-x33yI^W2m@qKdpooCZ zEv`Tj*=)kV@B>BUfC&S`89`)oPJxaPVMlIf-ZEiecp`+X<{8L#6gA&W7#IqKk<~Dp zGBEUrAdB#sGB6m3B8y0xGBAjU!9?QI<BLm*N(&m`BB0n-F=b%*fg%FBGi{1EOczLv zgDC?;jRdlYzbWVx8f1}JQw9bNDP)mMQwD}TC?XZ63=BtPkkzz;%#lMDnPAGmAR&(| zG6!T1ipUC61_l>JWHnn%85kN+ME099FmNa#t2qraSs5k*E9)Ss1=N>009w<Hwe<x$ zvIUfDndy)Vt|FCnB}JKe=_q*sGJeRR0`diNE<hEz2J$;f`uPCzJBkRC83O}E7w(+G zZ^po&0k#X43#82$7y?j4^vxI;exQiBm@zQSPzAXVrYqWvfuTeVS){^@fk8kWA_6Jd z`pp;^QlKKBux4Ob46;iDq6Q+e(Tss%0gA|B(23ES$Z9T`F)(~U5qV_Bz@VaqtmdN` z1499d2$MMj!yIj7HR9$B3?h2SB3kAQ3>7FMHs%Zr0{X~mg3K8hmY|5FnKLlR7$B=D zH)mkDV2CWzZqC4<VvH;@4dfmak;Uc=3>+p9HINY7WzN9h02P6R&lz(Dh5{6k`{oP` zXHaba1adQqPgyM(7#egTCPU1TvS46%q5~6w<rGM20p*kh0t^gaKm`LF!|DqTSQ?{4 ztALpu-s>;PC`wI4A7up97c0P_ft*uNML=x;_?RcyH`*2q3_HNOaOVq03&>e{pwNQE zMV19<{TOno-fY3ZFas7EV3X%rFfcrTnG6<LW5K|1!xR?IAfeMB5i?|wCl(A0bIg%N z7%UkWax9QVq%9#QFM-?w!VC-=mJAFcmdI*AXJem05lORTU`Vk-Rs%W-Tf-VzWRfKV z1L(XMgijY*GBEVmK-56&+HA?dU}B3ba>$Z_VF8NYZ-d;7q6Tyl_6IwNE|BRA49r#x z3`ZQ0MTD#v7+M^WMKrBIYX*=-+^rZGG+dBHGC(4($RZt93=9Tt$Rf+E7#K3#kwuP! zL_Cm1o?9_6RCpqbfX<@sKnWjtYX*iBC}HSe&A=ez1k(k}JFry8%$Oj`z@UP)mQjF( z82FShQ0fJx2nfcUrJ`&lp&EMLDag-9?&yPT=kNmg0y*!Xih$0>Mit4hW?(n~^99)9 z71j(4M^Hq1Kp}=Avc#H!;RcGxCTj+UJ18Ritr-}2!0y4_W4&z+IkyLtDnXcm;R8sQ zFUS|L5nvu01_qx1hzKOrDcCSDlmsG+*xN8LtO!CDiL+r~a0o^gskLEXxPc-v!-j!j zM+mZ-H8u<k8^RzW5ciz4VPH5Djx6%VhJhg>5+VX|kB}_`!;vUt5ztxGKGDb`akdN$ zXHY~MZ5bFQ_`%e`QXMRIm>C&_7#LWvraE|hF=9zk&~+f7(`-OKU}gmEHwH&6oFHX& zpA}N7%gjwh8>NM|ZDK&aKuL8dB2#P`7&yQpxXb5-whRn2U~0fF-DJza@B&5Tpe+M~ zO)SVRSS#f`NEeF8JzEBbA1EU4Z5bFo#KCmI!x?NcsAg1PW?)bU+Xy3IHRA(VdPa!_ zh$>j_PJo`~Lg^~XG^B7YO2xk3Mk5~N3*>M{75QlkS{003qk;DRe}MS{>~PTD|1T&a z0(J}xE?|>!=Tk*H1_ql1knONsX=ca35RnKGf#d=YI|hawC?X+t3=D5jL{jV+7y^=z zb%D+oKY$|AWXHgukc_Nmq8$Un85EI4b_@&+DadLz+A%P^KoL1$$G{Mhimc|m9RtG> zs0b);Ffcr}V_^7`22leM`EJL+P?CWx!eh_Ca05j|)1HArA`@ASw><+x2#QFaJp)4r zib#_^1H%&(k*W3!3>sO;=B%-2V3>j;atL%%cs8<{TlNeLIVd9U>=_u2polOzFfd5u zAnTHLU|`5W5ixaOVE6zRf#nNWiehF=;KOw$1|nbJo|UFnz5tzb2OVK3&C5(GN=-yP z=>Sygb>xD4ikvSHBJl-@>8S<`3_sv$9xP(W06rxRlyaFFz#>MVb?>me0~Rr6U;v#? zg`@^FR=|y-2GkShK@kD<t$0yH%o!Md@S%uUGBEt$M-eeJVE7?`Dq_g+Ll9NOh~bA2 zs)#Ye4`Eah6NVoms3N8eKSWVQ%ou)%p^BI@{18VKv0(TifhuCj@Iw+s#K?f*hZL%a z5yKB@R1sr_A2O&SCJaAhQACUl7=Fm1iWoBdkVh3UV)&teDq_s=LlITPgyDx0s)#AW z4`oylGlm~3s3PVJKU7ggEEs;Mp^8{C{7^>`F)?HKp@Ax5&hSGMRm6hfhZd@cCBqMG z6cJMc2GATcQW`TgWcZ<rs>X=nhaQTExjDlReN+((h93qfB8H}xKMYYt%uIe5p^BIr z{V+xmF)}p$VS*-N_QMoS#PWw3s)&)n4|6mT;~y4iA|^j9QAJEFepsQ3m>T@BMiVjo zVS^@O{KFPa#N>w^nuzHSdzc8Q+VgN=VEEyHEE4CyzyK*Fu(wHI<sn23sGR_6QGwzK zWF7>=+6nNog^|IQ0o2ulNP|ggw-YWQ+6kq3nJKBs`MD@tia_Pz4UF;-ArhaQoRe5w zZ2ZFo78+0ylOL{VBBnpw&_v8YXFr0%fSCcR%lwB2ni|U=o-h$m0F;12-V0fz4kY4@ zECRY&;)f5i$Rv;&Uu2OvAQ3-gk!2tee`JvjAdvuMkzF8>KxC04Adw(sk#iuCU}TXS zAdwJckw+krP-Ky}AdxU+5m5U25soav@5sRLBN|ym){%kXLpP|l!k+3tAqKj$BBB?n z27U_zEC!hw7bq|=@Pib>F+3f@;*=3|sIw6(TmjOIGqvhv8xHtLPHA3dK~X+RDunb4 zD*8aaK(3b&BH$VpR4=!{!Urq@s+U_)L_qa&8;S_1UT#Mb0oBVLC?cSGxf4YMR4;d- zh=A(lZWIwvz1)K$0;-pLQAG?He)OS=7%}|lM-?$<_%Q)h#Dw9;L{t$|h98qqMa&p} zOhy$kXZSG%Rm6hf$5d1iONJlQP((oW@^n-YBZeO{P(_Rxe#}G_F=6;I3q=G}FV995 zF=Y5L2UWy~;m2H55o3lQ^H4=h7=Fx06)|P_u>e)XjN!*ZR1tHAAB#{$EEs+)MisGS z_^|{<1XM3CMHMk;_^}LC#Dd|+a#RsZh94_XL_qcON>mX;h99d?L_oFhY7`Mrox28A z#LVQ!S`-mb4Z99i#MI!&dNdKk9~;m_jDKuI6EXR*2~EWG$7YxaDDTIC%AYOBB3U4j z9mpc3Ady|jA`KvsJ;);6Ad!8@BGW)32arV;f<z7>i>v{O96=V@4iY(rEOH1WaspZ8 z97yC8vdArv$QfjjXCRSt$ReLWA{UTF{((d;A&YQ1F);kNf-E8i61j#fq68ATfh?j2 z61jyeVg(YpgDm0(61j&g5(E-?fGiRR5_yCyk_{4hf-F)F5_y3v(&EIxPysGQan~2q zofsItz|?@Eone&|=oCIs*$W#d+3Uo>aG)Pq<bo3egTe%4k;hI93@s=k-<%j2o}h?u zIx{fXOhnct<IKP?14TsNnSnuI60#a6X9k7>6p>J828KB(BALz%3>=e@b=5gDFr=V} zOmJpkc!MIc*qMQ0$`oW>+ngB~T&5z6oOEVjV3~$2^1zvap#??chcg3%!gQD#SlbU0 z@}RaK11AG$J2^OXAq2e6ZGpxY<AD?g1~-T#l%#gsFB+-NElIOLn`MO7xnN(Q)VU}k z94-tD6<`tEDN5djfnf<u4cIScE}%8-u<!v1dAKkz$jm?%33p*&$UzawaA9EZn2D^W z$%TQT1Vv<y3j@Of6p=M9kdxa%<1rx2z_8PWfq`ch#2kpoH5Uek9j~Av4{{E}OBV)) zJt!i7T^JZTpt?Y9Rt5$hR|bY7C?fK%3=BE5AtpoA=(#d5%s~;cb7f%Qn1igw&y|6p z0xkkiE#MFXrIr9T1_p7kt6&5ywd{Babu*&^#+V{zYN2f8b`o-GK|2c;<StN8;lx~! zzmQW4sz|&mXuUc}4er#E=L%Xa4^;y)n4#8{fk9&)vPh3B1A_&M$O2ae1|JlW&8`d# z87LyhT^SfkP(<#!GB8|05qa*)z@RW6VizQBe061DSOXP-#3`>E1B1mvh#H89q#FYR z$0B4AH8%!^FDN25ZVU`2OOVxgxG^xCKoN;`V_*<jhODO0je%hTibyj^&2nTl)7=;t zcA$tXa${h)fs%UHxiK)DK~Zzije+3-ikd5K3=AJoL>{^^F#JFf`3dsrYiOzi#}11- z0|O6=h@d+Ig8+(%oI3-92#Sc7I|D<&YKSi&;cVs3z!0+*A_56jZ+8ZUCnzE@?hFhi z>yXvtxHB-YtVb59c4uIaK(VXMoq=HrikhkJ3=A?GkaaC_XJFWaBC^??f#C>>$YFN| zh8rj%7u*>bKA?!)ac5v)*obWMYmlxLFcDbphUE)p#spyo1|yW*3(MW`7zCdy0uF3A z0n6P5RGKf4=Z5#c&{oz#tOVt54Y0qEb2qBUS9b=68DKTIb2o<v14GUxSZILEmh@m? zn6epJM9YJLVZs(<5nB%ihKQ}mBK{r>3|qD%izIn4Fnl-!6M=;@%!QECO>41+vjQx& zpvZ#UhPYpb;&6uE1=(>J<U$4pW(K`X(AGp1^C?^mpsjld5z{$LXd)(S7|=w_7O=oY zpe9eiFu4cA<S7^?FTpSwbow}`tB<%HX$FSL6EIAkfno9r43m2>+`It8<OCkLzaZgb z>VeP&5itRsasYK9M8xa?CtMdaG*)1koPl9-0EWq+vk_2D=0W%rYVrmQlXEak2Hnqy zVvb1)dia>hV3@oE!{ibSlVdR4oP%Mq1%}B7FibAMFgXIl<O~dxbudgmfnjnChRH4% zCWB6{KnWkSD;P0&0mI}J43m8@Oa`5Ifod}7mPx1xGzM>Am^=Z)<Pr>%TQEYS1|u{c zV3<4w!{iDKlRGd>Zox451%}Bj7$#?6m<+nZ66$woPVvAn`2&W@pxZuBbeZO0m|TP5 z<`@i<e_)v0gW=`^43k0UilEqTmIF5#R3?LJB8DT7QWUX!8dancbmb0M4fdJ{Ry)9S zF*EXjj7Gt*TA0$>0c0r1%{*ZDAlIG<k@x~V@QuT8yFi*4T0IyTAZoDt0;Fh$2Lpo* z*koAWe6<Gyg9@xhV~CHB2c0y@&;wTk^E<?3Q2zpSBO$8)G5roYT?e&#B&G#YP?Vnp zx&U+&*mjWLQ}Xjb0t_eNA~5%?fr>CQf>z^!{D#0V_h`WUh3XWrLSozlQV5ERJ5ak2 z=?5VKa}P`e`$`PRt<4DcVCh>ySI*#VIY3J!xLxp8K@2y%MuX&BQy*qD5tA53G!Ziw zcDM-C<R?&{BH9}{7$(PHn4E)Qat?;cZ!k=D!7$kb!(<l>lR^70p!pr@<}Vl~`(T)C zgJH4{hRGrrZvKN|vImCA78oXbV3-VA<BIBLmZOjo2@%eq`=X#~pfTuyVKV666BIRO z78q{k!7#Z1!_5g8CKq71xdg*x5e$<PFiZ}>Fd1|w1*)5UFie)gFgXOnWY9g=DCU@i zV7OTa!(<f<lT$EE4#9A93Wmuc7$)mrn4E!Oas-CS85kxfV3=%zVR8V5$qpDM2Vj^C zS{(`vF=$S)!7v$gPZ(4UG}XPpF!=|D$qzWt%MBL{lfPiN8FV87id`ljFibvyVX_Z~ z$saIGzJuXr&>5R3cA4$LFgXOn<R2I&Kfy5h3x=DoV3-_(Ve%XdlRGd>o`GR9Xhkd3 z7tk0?!7#Z8!{iDKlRGd>-hh$naxhHRz-WDmV6?teFxqtq7%lS>43kwbOcuZ}8FVi@ z)bEg#X%>QEat(&bG8iUvV3;g{;bt2QlUp!M?!XA=5{z(e!3gIi7~$N5VKV4GdK90U z@?f|bbgDLr8Z!?JH&4MZ`2~iXuVA?O38tGd((@b)lSMGX8FZW>iVIByFv3{{!_7-D zOlH9_`2&WVLC0mI*k$$w!_8|jOg6wUSq3AVL8ninnp}b5<}DZ|FTe<A(CzXl=9tXE z2<ImlX=4wD$#*bJK7kP$H!w_YzzB^a7$yr~gvK8XlR;;~qxiy10wXleV3@oE!_7-D zOx}XwW)%!KU%@bW1%}B}Fic*8VKQia6x0{cQuGdn$r~_Co`YfX8Vr+pFx>nE!{j3v zCU3wn`2dE=4j3lC!7zCZhRHK9OkROuG7E;uUocE=z%V%n!{izalN&J7^B)Y8TQE#6 zz%aQ1!{jL#CbJwvZ$DqbF!=z6$rmt8&cFx_9t@KmFmj3xM!5kxD;S!_ptaQsjGQ8Z zVX_T|$r>0YgHEhPHF*w($ubxwpTG!>Ef}G31S2#&FhWBG!(;{wH^0F!8Fae@s+(V6 zn5=_g@)8U;PrxvF0fw7FcW*=Og63`$43pnrn0y1nWYAgdP;;O$xB<h>HW(&P!7#Z2 z!{iAVZa#yNo?S3ZK7e5|=!Q)c7n<zBFxdjb%{~|=b6~{a7YsMEVAS29H3(4Kq2U~Y zVX_Z~$rc#t8FY3r)EsCypTJ1ZF&HMF!3d2V7;Zj+5gGv)p^<`N@)it}7hssY0mEbo z43l#(Oum3&@*WJ6&tRAwgJE(BhRGHf;jDrY&Y&~cQNwuxMmX1Cn7jwW%_}h647yzl z)npwEH@9GzJOjhz77UZ8V1&jMjGWSgVKV3>9u)VOp208~bXOFL8nYe@H&4MZ`3Z)b zFJPGb0K?5QFif6<VX_BC44PoXpbJJG+=CH=OE64!!7$kX!(`Bj;;5mq0mI}q7$%!w zn5=+dvH^yhTQE%Cf?+ZbhRHuL!kGiZWF8EY_h6VTfnhQWhMPq&Og6wU`3Q!|H!#x1 z5ezqj?utSU=Ms#xaR$R=9Sk>1V7OTW!_7GuZoYzH@&pVw*I>B02O~Z2z{rDlFihsb zFqs9zWDyLLZP?Jqk)B|fY=B|128PKN7$!f#F!>FJ$w%PxM9{f)(>>^+YH|i+R{8-V zE}-?`7Yvg>V3_;@!{i?rChuTH4~;(<CNp4!#t#gWK_@<=rn)~ECbJwzZ$H1maPt!k zlR+mqpqjh@!(<)|lVvd6EP@e(p#ANrCU;=Opa_P^7cks>0>jNWFv3{|!_6`nCW~OW znFqtoG8m~2bfW>(7tpk!f?+ZXhRJ_0+{}YvvIItG=wO(vgJH4?hMP?=Og@8QvI&OC z2Qb2U2ZozZV1)ApjGSVFVe%OalaFASd<DZ~7K|8l!7y0^BQ!uet)a04X?dC$V1x$f zR9mPTXbk#bn0x}m%?B{t47wK?Y7WFMvkw@d5rSdz9}JVfV3-WrlaFfh8;sD1!7y0> zBQ!WL(uM>^XoO&-jT8)%zhJoe4ThWlV8q}F3^(Usn7jwW<SiH`AHgvB07f{MV3@3e z5gIZWp`n8j8lcn0pdk-U8#Ndvzrb+w0}MBRz;N>vjL>MoF!>6G$!9Q3zJp=135Ll% z7$z%VgoXr0XlP)B#uSXSF$Ke92@I13FiZxmM23bcG^bQxm^=r=<U1IlaRnnZo?wJV z3`S@y!7v$gJ~4`WOmASA`~t(|0t}PaV3>RZ!_5~kOn!i2asY<OTQE!p?Gs0J^9Kx* z88Bk-28PLdFid`e;pRISCcnXOa|4FSM=(t0z(^Ym7->TQ!_5X5Y2yrr$ty72yaL0` zJ22e50a0#1(xDM(^#^LGPQWk+v=#<MjS=XyT@(@1B^bK4pxbVwfi7aY0Yew)wh9!J zjchP<8DNB=19})5fp!w3m}8oOp{oKzR|<w*pj&`Y%rODoIfWu(RDq!@1wEWiN-%u7 z0YldUbT#HP&|}$T4~DKa7`oPA=(0igsi_WnXqcOzr&W^@3|%Q0x=Ju~fo|zS2_I7% z^w2O5K=1vT6rlUUGyy|b1%|F33|%!Cx@I7B6%`jHgAzOg1L){NP*!AMVA$cozyMpn z3Rz=+(u08kR?<R59)i|mL-QaLLwtH_NkL``17t-9Y>nAR4+aL<$`FXIzaF3)4Iq6G zhzOr20|RWto{1qov$(h*F*y}7+5<C3#*={o*1uq4h%W|T$(05f;e@Ht@MK_s)fY?* z@oA~~X$%Yukl7QM8Y@o*23QN0i6K5dwIZ{GfdMkN4pZar2?-96>p+-+A<mP5;SSuV zAlY1y8fd(O>;m0O$G`v?jR%<nIz2Nvv4jCK;sFu?>1qJ!f~Hl7$x}TU7+@<%LH;T! zO3p1{fXuqWbS?2@V1UIkMAvpt1_scK28aj33=C&H85m$aO^C=NPX-3q+9!y}drt-i z*tiWu<gX_K1FVjNh=_PGFu>N^Ktz<h7#LuA2O?tb#lQd=0fxEI(Tjlrw!#*oCe@39 zp$EKQ2C@T$fuYiifdSTI1&4f5QC>a+WVRh<&KxfW23Svli6OoyHMz{e&<wT;7h>{O zF9rtK3JQqGAuk37Sgi*Ux$VUOzC8H<f0*rGycif@BX|%s%-*0FVPHb2k@be`WJ8Ep zdNVM<R?9<lIeRlOz(ye;B8lD%46qf65Rq(e1_oFe1rcfRW?+Ez6d)qAy%`u(peMsX zM7DV|FgT!yT=!;RfUOUQsCnnjzyNCrLqu477#LvnAVfsOhk*e$E&&ly@nK+qtw(~0 znD{U-z<M_j5l@f^JUxR#Ce(+40ao%u)MWTDFu;0J5RpzF1_s!y2SjA54+8^iZXF`B z*oT1uw#EY@vdM>m0XEwO$~(m+i6smSkhOfUlyJ}o<Ob002T%;gm*kfg6r>hGMpI#G z&igPhz}B-tOupm8zyKS`frxwtnIpi!fQVCWUj_!)+IWZ>1z!dR*!}{Dh=DHy18hYi zM8wXQfdMwQ3=#45Wnh4<0|EJ>ptPizfdMj`19D+}T53^Ieh~v?#u+36@=>%e0|RV4 z3Sv%<F9QQ?uLne=+LwU=HqOSx5T9R=n#aJv09pA7GiS0d0|RWH8lr2VF9QQ)J{P8D zBgm)lIE{}_$;pY22Q>zfLSwHl$W^fLiBBsp$}CA`fXryX%(>*tzyMp32q~lTk_##! ztA=1|?)x$@OhC!+pM4=G?15@Mhzr^L7#Kh+(?C2BW?)eCV_<;wg&`t_eqi?qAmYox zkAVTU{{mb)fKviw#2#jQI7k;fmg5sk@-rD27$B=PU}|#x7#Lvd&>(iz_%SfR`a2Mj zseTL$u+exXhWOmn+~k5v2FN-zm^n-QK(|^$#_J%ucK9(cz(ye;BA5Lb7+`xeAR>?a z7#Lt}Hi*f^sU-}Mb!ae?zxy#TOhE}lZhr;_$T}IA8Zmzc2H1=|#AF?R28KW2*>;ec zct~bqfUM>PiGae>%AbJ&wzmSJ%NHa9y_XXrlHkw409jQ9(v_MA%KIR_u(SbUXZbTQ zz{UX}x~lvc7+`G)h)AD50|RU&Aw*=hKj`FtP(FrW28I>>3=FVd5)(swNq$a#d1?`4 zMgwF!$gZva3=CIL>fFQrpxeV?As?TXmQz}s!2p@p1L;bI_RXK5=(^<3zyRx0L)`Ph zpMe3k)*6(aQ}a?B49#FWG9YUH_%krT#z`O|;sFc{ur@73L_2_i0XEJC5%CCMU;wR2 z2l2pV0_ft<G{{^V$c6Foi8(p>$%&}-MN9w#1FT06(#gQk5Wv6y+oQq65T8?=nwrhP z09iQ<G6xhsGXoeHU}HoeUz8M;<mWIzW(;9!)(0>!z{dF@CLax8V1TXmfrwlVU|@jl z+JK0>2tW_{?*R-9urXnfzd#4*GB7|^yuj=d31nb^twMpAqY%iz0P7P$L`(x27+~W7 z5E1V{1_s!QR*=b%!Va>s2xf9*AOizzj0mDDGmwD+wnL4HAwC%#stk~I1u$KefeZ|= z{xT?yW#)pm6F}B@z|`~vGB7~qN?;;$0vQ-!`^X@6Z36iVC08B`WMF{JK||DB4P;<| zt?hw`JPKrBfQ{2aM1BS`Fu=y%AtC}n3=FXKs}K>nAO;55nq-KGZV&?lY@`ArViyFt z)CEzl`UEjBK-Lz*d=VDJzyRCH1<{oZ(#3?Fm&<|}7+|YeAZnU|7#Lt9(h!jaK@1GA z87Oeso0wCOkqDU)1KAZ{lnM@d$XXGQ2q<N)4`N_|t+Ifavlrw-q?)K8vmlj$0Wwnz z({(b4fdRJ46r$@!5PEy;Z4d(kY>XPB=1&j<18fxvqz{ssSH=KYBLp%zJ~25twYZo8 zvIhYq0&*dDFayI8lu|+>n1KPdn-bhQ%}a@o2Ps9WD|Lez7+@ouupF1d0GTZXnGA08 zXB06&R@{L^Kn6GmGcdsRJVM+Y8O*={8yf`G1>hiLfUI4C>B<a7?s3GYCFkT9r!qj+ z#lh5+2Qx6h=I9|Nw*@mWz(#T)A~S;-7-0MLAR=o(?t$*Ng7^Yd$3f;#VJ7bhW?+EL zxj=MX31(n`jV(h&UIsHTz}84ZM7{?zFu;1g5D}gb1_szVJ&1@@2m=FbhZ;mgH-v!! zwvz%PVif`kHvy!O4-R2qfUOyTs7VN6V1UgfK}3o|7#LuC#2_N=A&~YXqAf8sgn<FJ zmIk6`Q3wMAY}E%uWJ3r818hwNL}XtG0|RXC7$R~8<S%%g3v%uC5C#U=nk6QN_{60A zq7nuM$ZBv{s6GXm1J4B@UCf~j46t>%5R*kh85m$|CLtn<p$rVLQ7njvc_;$|>^uiZ znollIVSwx%0NDjfhk41l1(4O(AQ6yVE};wzuock|b3#HH7+`x0AtK443=FWDM~Fy6 zC<6m*b{itnAIiW0TT#Zu5D#fEGC=m8!0ehG%7E0)j7MrrAmU<kDCjN{SZxk+;jvH# z2H0F1#I9SRAaUeU>vbpt18h|TM9r^I1_sz#BZvrB7y|=r9W^9{7bRyDL1x=QE(C>7 zNq%V#WK|wmB(pdrGd;5evI-X@0<u>sjDZ0*ItMZbbel|B0c2kZOpSgR0|RUaF~oL< zFpyqkH^+oAFu=xpA!_n5)U<~&Fu-OaAZn(CF)%=On!xN@08)ceYOM=nV1Vtbh3MKH z#=rpErwQ&sCxY5>ko`L#b3kp{-2Ads$gT~L2*|ak!Wcjs9KpNGA?CacV_<;IV1nx9 zqEt}L3|XB8)5RFhzyRBO3(+MX&cFa0F@uPhgflR}c6UNVoWmIyVC%XeA|c@n46ykW zh)7&G0|RU?14JY{oPhzh{+Wp(9(-Fa0|R7N3(P%L;S3D0F={4;_~4w>)B*<+*c=eV zoXOz~46v03pg1ilDlREvfUFpYnX@{afdMvG0@1Y(<O`IXdj{kl=r|jw1p+Rf86dmH zVCK9EXJCM>`(k1MozRz_oNN@IoS$2enUk8L2ikI(o>vMNh)-sScge}|P0Y-54hjh_ zNh~TUEpRY2Vu(*HDoU&bMO}PyMrmF)=ze!}vG|<)WUvH8ZC+|QNEL*W1{$4;Plswr zEGS6LONlQ_%qd1FDJV+CBAS_3oLW?ZrnES<B)&MaDixu*C>4~X;xqG7QY)~F#-}9~ zmms7-cO9eh;>$BjGU7q!9Dv00QWJ|(i%a4Q@{xRzn^>8Y8lPHGkeHXk5MNMI1ocmD zYA#Z+U=fE04MGkYJO}|;5FtcRtxHF;5IF!4>d^xMy9_)a(4|4%Mi;}PI58y!RV6Ga z5qd!)sKJ?3S&|A3EU3qkL_krQ5|1ek3lSuxkdy<mA4w3Ja?nJP!w5++dLZGDf_ofE z9^@@_OY)0KP<@IN3Yk@@aBo4f0g6u(i!1Yz;|oDIPs2QqEL4=52C@uID84igl+9AX zaeypWnpc#X7N3}x0#$*o7c7r12r>#?3}OMgXaT6B3(CMqjxNYAh|kO`NiE8Q+KK6^ zg8Tvulky92DlaLjjK`t{DvVoOW^QT<R*f(ToLX~I^U_N)(A@|T#i<Dt7$}nYdGX+( zHc)I9Rf0@|ixih6CTGW&6eT97GJu9gV4QgH?s627;>`5qjGPn{Weo9o`6;Pr1uv=) zyl_cQOwLG!B_#+aCAGMuC?D)1hybKK1-THyhhzr?KRdNDJ}ti}H8B|+C=f+ui8-aI zn8ILZK(j4GAy@?2&ivehoYa!c{5-g`5F&{wDe;*lskz`f08}MGRYIJERVq0rHL(aL zgQO)nBQ-fY9_$9NR}hv!6@jY?C>!J&SkZzc1S&5;+{B_(hWNtL#G-6HBNK>ed1atF z2o}SMMc`U4GdVx63^FttpB@k4LHbBw!FZ5#YEemQ5t125Oh~DbmY9>1lnALdLBldR zsqrQG@uekc79gcik+h=xT)0?TW=?8eVlIk0xEPAc_;he>2J%;WPJU8i4m_cNDmjoa z$b4|*WPoc%m@qgT!37LV1f_xl38E%Qun1Te$khm5JR~211mn{oVH%I-6mUStL+l5$ z!KneviZ4zrjL(F-19Zb^JU9V>%mY~h@&YumLCc}U94vCkLYXP?U|oqNiScQrIdJ7* z!*NN1bY!N)L(^qmetcejNoE>2Q-PcT(~C<Usy#im1RNhQ=fJd~i-VLS<v_R%Xkzi1 zd6^}di8;__5G2Gv1!Zvw=o&VVEf6tqn!q8LSdy6x>WgINr6V+y<YNdyGdbKXAiF^t zQW8tx1rCfIpOOm;8n9e^R%uRVVjf&MB<rOlRu;!+=Edjc=apm>GsMIAm8pr~3<EZ; zEHNiD1)>D59U_KBSxO?pT8N_Z)YNQb(b592sc7zjiXyuj6eZ}IL1JLX!d(IqL2(C2 z0NFkeAI&n5P)cHDe12LyhSuEtJdhN~VyyDTrC8-5**q0BW98)Mr9%QP9#mKqGsG8X zfSM{`AHal?ON)w9^GZO)LSjxT11RF+^NUhIC00p!KDavys-KEVpl&TK&df`Xhf9Gx z0M4!8P)*Cs$%!vWEGh<-OxdY<2pLfGEU^eA43UQiASk7Sb)blpfQCt7o&qTWyBS3Z zav+0LfLwy204>xri{sNWi;7D?!HQ~HW^sH@A~p$7<pfHT2xCi=K$SQs4_6}m22ut# z5g}9zQ-~%GQVMb?7L};N&@_U`9&k5+WROw`SOrKgiUOo$f~f#r!GY@raGZcH*-S2p zFUf_Q0=mu=BNmYJ2XZN#8V?G?)Wia4B7qtV$$@C`02YK>1LlDe9Y_RHx#p#ogSvW| zke(V`3{^o+W=U!hq@;(afRrfd&?Z=NegU{3fXL-0mLzASg2Nn?Qow>B<3OjjC#Hjn zFSrocR}e!$DnONLd`T+ADPRs*C8QdID}acB%h*)#astpI6j0q?lA2di9A8|Ll9>-) zn1T=kpIHbu02HUm`FUXF4DmUsB_*jv#d;>j4Do(Gt|1|=LBV<^CJgb(`K6$iww{S8 zNM~+#aY<?}xM>Y`8E9lAz62r=pB|r)Se$`c9)KHWpm2%@RXZRfz-meolXAd?G@1ys zRz(xd$<NO&1zU=w8PT9b5`<KRShdHeR+OaXr9iq0NLoOSgY@W;1WPg!!QF2pA!s!S zt&P#FfJ&l?f_hzOLPe=4g5cnRR&rpwzyj!@01_;YM;6V`&jtr5xH1M?0T%(MCb$q} zfE^SyAO#@5!lls70~ME`;YyfdP=v*2=9T4VgB!6KAOn!Z;=yfSxM^US+{B{djKmx~ zQgHQYnV_MJ^mwqbAP&5Zf)D}SZH%HJ9wdUQ5RweyL0x2M)PmdzEpFm7Q@}Y8Y-C<) z1$aCM(y{{!K?-MZc>uQuYG6_-C{E#`>8aqBDp(i1M+@dbgE2lQ6EZpl7KHYpGxOt< zGZORiQgh%Dg(QTj2yQZpszh*86iEm&@C<7FBg_ZSlcEYiI|b?SAgx8IpfaZ%R4Rcy zm6;z8su#d~c!LyK5UL2~d~n$T^+Ynntkg14NdsD{l$erQ6c4#u)B#jvK;%I)rEqbE z_@vUbwA3Qdv>D7h5Hmr^4&3ztyAvV?Pg<Gz@eq-e%;Ewhw?hSColFQ9=9#=?aHPZa zLfs3NhI$L4A-6ak(>)+T<N$^!&C8ER3So#CNF{O@LquVD3~oJG86-$Bosb4<-oqmp zYC;NhY5@|Ra6t?Qq@~0|?S~ozYC$0dBS;>X#l`u_*_fUOi(>j7EDW^@%!b4*N??M; zQG*)da##`qg##%67BfKO6ef|D0?yYM;$Rb@I>5eyX@Hmus<U%bi;EM}A=NA>l|wTd zLO~iVv7zb(Rem_6K*koA6s0ES#)BLH$@fTRm*!<wzy=l2h4B~*Y6PUDCY6HwJ4pH< zPA$lXbO|veauc&t<3X}`TnnC3hNKl#UxK^>l7w{m%M-IxOABCG163thRZ(hTDQM`K z2!)9$pbDHJ9@dfvS2Kwv`QR=TrYNYT4<5S!*An3J7E~Ic=mJZD2e_~Z=NCYik3g*e zD+a3rr9m(cmha%4ctf}xV)Pa)3o3G;H654_De~c}lk@XH>sRB`Ayq7*O#xO6;lhi1 zuvkiJPHIUisu-*}2v$&(T9#T=46aAP{5+%)f3N_k2825R#EDNXEiTCiw~fIH3i69H zK|>~RMer#Hur#<PgUca?KOmBbaWya>;$NgX6D$g<LgRB&i_#I!1Pg%{I>1c^iJ)*G zX$#arM-euH^YS30oM0<JT^^7G__)pZoc#O(XvzS!`twUmVC6t&N=_<_oeoh9ZmL$4 zAX-5MMVV!wM3kLcsb_2eGBr0bGY`_*ttbJth8f~hQqvMkb4pN5z)%TQ1QIXKFD*)j zw@aZsu*;#756D80gn*<iv7`h#dI?nqYZ^etsv$iGR4F9gpt1wfG=VAs2|#^~qzqJR zgUSOWAyCl*S_cFg&jZawWfr9-gIg<5gWz(|1_!z@yw!m&0d4f43&V?Ks06b8XwE7q z%FHjyECKh6psGRM!XgYYBoDOkxfGgHkTfJGVv|Aj57-+h<8e>}z!D&bp(GG+CWER- zs)UaB;Zp(jc6@1ZY7x8zicdL;La03$Nd_VipHzuzE{bxHEQa01pefS$lFa06Jwrna z@W_2pNjxYU=@}YYf;<ZfXISwJ5(kNa-HY6m0t-MBSv;s%gto*`#0yJPA#)2TqVP5v ziYQLQ!F}fvaM6OI0W|dr9R)-Yhp5lY2an%@Wx&M+w6BB^C@Mu$QCOM@PW%WZ&};|~ z0I)%s#qmX@d3o5ZhGj3X39!IH&UaWPQ08S&R6rvctFcIOC<Z`N0M1B+ISZ6+Kn8<L zOSlhVvLNlaWg+!ENE0Z1fQny`X{i+jnMH}Pss<*5lr~^O@B{!8K#qHu7}OuoXoHD@ z0uwe0jwA+h3b^P;vJK3KTLtDJ+XEIrwFE4LYy(UHZag&5lPaMZ88Vgv9<_!}z2qhq zWtSE}#$;dvFNq~3MVU#Zuz_a;7uNECY66ce!s{WZ&#}ruG$ITF*EA*hkooFjhIo)B zh#MHdvj<>zf_4dk2U4L!q{$hef$Pj-h!}(iB0*#64B*)t2n!UqrFp5v$%zH2Fhk*d z@bcmK#FVncyyR3+pS6e~zBoIxARfFQsh9ySRgw>}2i$xD1#(F~XmAxYA;1t1@(+Rs zD|}LOQgc)DN{||huz+NU2N%LHg&;?O7fi*2>U?knpoS%w2Z}{dz?2q%tSU~0hcswq z2YwZh>;P*=K^leekPu0U2icBfHbfXI3ZI55hPGD_0uU{rrOgNyxHST5Hs$0egGEzw z;|q%NK_g}`E<8oUO@j3)5CX{M7Hpvhq#2Abr8F-aA_TS*p%)YtsH#BYLXe^oZdOq$ zXeB-<wBbVF&1I+>GxO3wBZ=`zIr-&~)h6IR1i~)RU<)W)z(%$ZGKod0iQqLpuxbTv z4_Kx+HL(aX-3xBYgZdA!P(TPE`vf-q1MBudV<SC2CqF$tB_CAkg53t<Cgzlbrh3v6 zOTZ1UoXn(nu;*YUC0ro2s0djMoXL;{$`gw~)daE-)P9%{#QM|%P)ir=a8Q~o&d*5& zFV6-KOXcU~B|?`*#)F*{59$slm8LNuaSKX{7~)g&ic5=9K?As;5*gfA0>uZ&OQ0-_ z<}I+*AaSUniN)Cr@fnGEDLJV{@tG-lCeZoZbZ`Lzm4KNCEeDZAK_)>$37a4&q>#kH z3R8=~eLj#zNXQ{6013iE4^0>rf^gxC{Ji|qqIl5!QL&x{c(564ej2Fs0!{yb_rAm@ z<(ERn4WR~rW*R{CJzlk-u!FYpVPOLb0?@E3c+?*}j|7f5P!fboVRlBrIzX#WFcm|~ zd60@?a6t$+1}PhZWaD8SLof%@6@#mVaN`rxpwstYHK1avC_f+EssRgR7RQ6i>0)SS z7%Y|oNq*^&WgF1`W_)r+W=={`DmdSRmE|T@#Al>trb8ya!9pcPiQvvDsQm|<hJzXd zHWajm1eXGY-h9wx7Gw?&hh|I_aNU`C_$|hehwH@fAexgg<Y7ADK@P5hK<#T35jY1t z{{heF-~h`5hcURIf$}kI0UHVyMHmE%ig@I1JXkYW5vbP&Sw9FC19#@*i!+mQpv_aT zD5&#{Aqdu9l$wXUNCvDLG{OLuggXG5wh#l`V0ECTRw^V*f%#xtP&Jn3!N#@=iZXK{ zgKc>TCb)@^0xDc{Q;Q)3l90J8@JdzG@d3~}rBd*!BJgTXX!#9UiU!(p23g_>D)ON! zL2d$vG(-(Fmq9onWgy={c;MWckqQ}0MH7OL%pi%EBxZtFVW0`2E6p#6M>7;Ef<+;k zk@*GjAQ3c$nZ@y`xdo6eG1TtV)NFK1KtdqRApgN;)QS@GQu1@5VFq2!0uckL0<l1~ zCnUg&Q$f{EN@`hrDM%te7qs2GxTILm$Q)TQoDB)f+{APPLp@`Jl1xy$Ej=D&1gK{X zVnBw6z#=L6rAeUqdx(PkT#yo&i4Y#DhWy-k3@s1=40WKY1L6mW;ZTjJ>cDjxL{&*? zK~8FXYGG+&PP`FAJcJ9LQA6RuWWWl+PEE}L_jN!ahr$O12&5s7B8*g+7s0f`N8*q~ zK#PabG=hf+!4AVBfg)6#nv)8e83*|Ziv)^LYDH#o2{?y<jYgR!go<Fg4_sTugKn9L z2hD&$g8(9mLp6$};6f23Qk)E$-6{gLchWM`<3V%7If;;7K1>RlWno-s0LB+r<|gIm z#6u>6Q}aq7BMfM&kgWi<m*B01^mv#`aH9iR9jL*9%m*zjghw|_7f2A4I*=6>C+8QW zf@j4bZo`y=wwExaArsV4KVj;_Ee%>v4zd<m4`|*oF*yU2nNo}Lz>Qb9Zy|1kslapy zDAiV_LLCALTx6p`)7m&C3qWNKc#^avKO53yfCU$*1%h2BxwI%ALpewgymS-UZjfM3 zW*&G12xcxw47o;xiGz->h)2Y6W?lhkY&a8A*1!}&L}A@Fm?***piVHd13;cY7c0$6 ztti0s0B9$1d~SXUieo|g!CsBeL^l>944J}#IRw038Pw&A&reG$hD;+BXQbxjKsw*B zQH9dH!qWT_P<tP=dM-XQuOJ7!VmCb=q8Ka-whycqsvI=5os*fHSpsuA*aewYpx$t9 zE@&|}JgC9i!2RO*#G>>vuu<TF25{E`G=h%Om@Nj&fh$vN;^-4G5anQ%2$Mmn5S0g+ zi-9TzZ^A&xBeg&v3Lp&?gaX8T3`8E14H5DXKD?TRC_<Z(fe6By-Vh$Nk&G}1I#mIY z1vQ{x(;5&FP@@i^7{o)Gq=6_wNzCAogcqj}1&Em$2p^i25ynD1k2E&}Q3slLK}^md ziGhY05V}FiP<fE%0IEkoZ9K3l(6%nr<d_Z`@hQ)X2e0sFfVAeoi~BS4VCe-i;}0D= zgQ*9lc7&11`G`aqk4Fk>3urbORNNIafSR${@u?N5$q;vg<|V-cVW3%1(9T&<sQ`90 zSSyO6bWl$*1+q>kH#HZ^DlRF?Lt=tf3xeHQQj}6!5MKta^T7KZiXkE>0!S$jw8uP! z0o-ec&OAZ;)}Xm!@M#w)a;D%3u;P-U;>>hd8D3J91KMv2@&bsN2=35<tj#Y6chHJU zijb3JNl|iQaVqFc9EgrQRBlQtxB!59COI(=GE`n%QUn^0DFW^Mh3JEfWWm&BKxUvp z$};jH3%5Y7EXV=%qQOB3%Ds?c0vsYRW>$V?9x@wbASlE^eRIT!4`gEpWYsU~TJ7SJ zB1roTq!Gk{*T3L(!;q0BSThW20Hl)uau8G#$TEl^B%k0A2DL{ZeGsTY=sTLA!k`f= z_)Zz97_7YlaTRC^JqKDDLPXG9gJ@bnq|tnpSPV)4NX~?~8?-<jNf0^|2_7tjIs>^> zgqRE!LDLEoMb-<k1Ihf<qD08#Gt}@DM2Z82C?wB7<)G(FC4w>}k`Yj0Op!z+A&AAG z&3xdL1Twp%s1!7t4yj2Y9)bE6HCQ2nAhRF~iO`Fs+|rWN3eYHO38-lds-QEI;~|3J z+6UZ<N77zgkeZyC22+Dg0-B9MQV?@sql+kpgKB-KbZ!B-!w8iwN`=`EN%J5dgO{}< zBua`ZamvAVJ5{9?<wMs_fn0*saQFf(3|WXN=<-mXLFT~W?t+Pe+aloB9Jp@MGX)P3 zLPH%qN(@O4P?0ofKRG@f>dbiPA|II7pz5Ha1x5K4;OSlzVUX9L0-$mPi3{rJp-cyt zKmxHG+|LECP)Y?23qrQ4zybhO7E3szDu4tN$W}B1z)PKQ8V{AlZ9G%~PU8_}1=v$a zF#xLQpy7$+ESLgNqD#v!LQ((?yyDcHG|*%(XlNlLvlyxXJW&K%`&F7(TAZ2!6$RIu z74hg|>G5bn;DBa`2MzNV<wCL)oR^#r85)9GUyu*#vSonlYiLBH7!Mh=0eJ{n19Yw$ ztPNcb)X+p110@O2I3>gkNZ%H$IUa03C~yc!=auFn0s)?G!MaQH3X1YU=VE}yM^L3; zu?4XgVi`ybR1(5_V#tz^2~=?NsJH~uGREZ>lwiW?CBmveKEtmH>=OJ+pj8}b=Cue` z<3c#l-Z|J8nYpP&kU2(VE@WRNL^XW=2*ORxNh~Oa1Z!zAXa_n-AE?+UN=4fxk{(|I z5(5qH!R?0&AiDu9m|7lR3TwbZ^g(ubgW2e+Ayp8_X0SA*Zvf{)dg5>{@?bDnIbuc% z%tefpgSmMi2SXwc>@d&<Ni_RFDv*|lL$ra^B_-y7#_Zu%BPoo}Nlh!s&4)Bt5IR8H z!1Iez!Lso<w1cJqQsaw2<N4T?pm`W<D}3|@VOK#>Dq;j4A&flkju0(C8OcY8qXiz= zF7yxt1w~PQ38>o%@-<p;KqSE4L6w0{mnIdZCT4>g0R^c=C6$QrjnceKP|rRdB41Kj zkjfCBoSc(bTx@6nXBom-MsSufoCR994AEf<7c+ygjNs}(J2N3B8^cWj&9Onmj7;H{ z7@2}h%+F2A1Wz7<jfOcmB^A^}hw;+mLCyyS47d@WnVgsdi3{l9Kc*~1KYT$T$iFbd zK#K_q64O%+7~)|}Lj)6ao<d1U5lDeCLevDoG(|AY5KK!16BM3sgON-IAJqUg+7QWX zLnOlukxVy4G9I*E31%iJq~UBNy`U9-FmYofdySFoGBSl)01J$g%o5PPR>)FSNHAxB zw(%Ax=H!)vmsWzp7A91X0dC47gp%`0ioh*Cgb;Xd8YpQZgwl%=3&2~J5klZ2-B4A5 zyOn4{rFoELdI*i+sT5RI;Au}(A+Wblg(|Q(EG0E9GY?uEL-R*wad{?WPzz=!^mIvN z)1XJvp$cKx3APY4ds+%^+QZC)I0RE1lt#fOmZVugR(%u{rItZgnxsRPsengRzztJS zW`?WAR9IY61noSOf{X(-2vBrD2HZd!nhWy5YcCOILHHmkh$6TQXq*7tJ5SC}Nd;vP zX!jn)22jfcY#_Kx50(OLWd=|5CugKWm)n5c0#XUzm<)3uxaEyVhe#W)!A61m<lxzK zFc&19Tnyd`UYcBN0&+7*9PVPocuabHQf5g!Xuv9`7(A8%<K`l`pqe5PGIvu_1lpzr zIUfMt{z4Xm*73+fpi}t3RXIW{qG(Sn0iPutpIZqU5J=7_$}0uu8*qdc6y>KEC4%OL z;tLW%D<sn6i$Sx8c_m<{mLYQ>!<67<@*tC-1z=KQF?i=W$mbv<K>eC{3_;MOcv5kG zPAO#i0jv<bgb6lv4i*7LMM`E7Xm2XWI5-p3pv+0l(=!9FqXDUctx8JC1V;(T($u^% zaAR4|%mlPfqb##1Kd)HN47^w&9+ZePbBbY;b@1L%Zb3ZM2=Izfn9ZPZJMdB}kTWv! zb5mieKz1kQRYLdLq=W2*EDnX~1Svq#4H7^%p#))VK~XxgRwOPcks@(Zzzc`LoA^ME zf^y*l9GQ6~hyffB2R76JvLBRdpvgNuwFGn!U3@xpn@1Y*5CCMm18CbIG*BP{pdJO9 zKzU|f3W^YT{|SmndTI$I`+=MbF$g>z6c1e-0zXp-e3DRnd`dnnc2Y|6i;6*q5Fvz; zAwr-*0Lbq46o&YK{NfT{$QBbv2T+w2pP5?_AMci#m*NK6*Xx#<lj`VT!4MyuTH>0Q z;-3Z*0BwPSr~~<mAwC_n(kLl2FR`dH9-IRqlCWR`X$9@10%^lE7^2o0bjFegcvTNb z8F=g!(ln2c2l>J!#6KwB$1^wt%musACqFqc$E_$e6|4a?g$+F_!Z6+#bQ~^2Jj7_| zLDLNJIhjeI1Zr#)4;uPO%mo+gpz&959~@MNf(AHY+T2r1d=iUGTtOqB4hAsMG*I^% z#wmslnL_LVdCf1iq68E|;2?ttLr+cz*$!HLSdfWqe;Itx38L7yI6XWuv&1dG$hS17 zB(oqV)jugKHMykN!3dOXLE)U6n3Z1?4_dAQUOEiX=LtWtz_}>11k}I^PE7`_a0P{p z3wZAa772*nMDTHT(7<v}EeQelM8Tn(3idc?3=y=y8&aNvM!qvk5YdoX46VSy=SCsa zfx1pbWvO6=5H}Z>CKXqLcGtpO50cBtOadS90SnXc%#>8;jKrdld~gUjRhFbWfEuFl z@yQw4#U<GcsF56>3CZ~ouQ-GEf(57MCKhDm7o|c{bULh~9G{+F0xopmsUIc<Ui|_J zu43@01vovIg2ode#^T5%j-WM>&iQ$ub#S17a!)M@Elw@+OU#928SE*j7&N$F25P@! zbuGk3Q1QVK4_-0>N;t4&3lAjhX#|mf<1_P<V2VM5-=Jl85R<{J0MMv7oC`WFk0Cxj zsTj1UI<W{TYQcj)Fk>LDbp>T)NVvk|I|H;u9X(lqk}<Sk0fh~e>6Bjq)eO$U(DOT? zX%Big0L((r_-I}}Lp+AXup|RM42B^do=!sYVTs29)QN$35PDE|e0)-BdS)JEYy-3q z2_g&4&AFL*`9<;h#mEU0q5yI_FQkNns6ymCaFLUfnUq^xmRwX44{lpSEC5w!@U1zS z;89gj#>!02b_Q)W2L(ucW^Q77D!7sdWdn$90ja6k(2#Nj=lJ+yNH&g7%*jm811&N} zD9%mI1)a<W3$EZ)aLE$@Y5yUW<?seD#17E<V~8t3!2pUTETs)7C4r=%jsZIu?%n*H z6i}uEdl+0IWhNKp!-5XHjvH2IL2X12`qaD>gbN^QyfbrhLO|m&pt=TmwJSL2K?8zC z;EInS-aWM>xFiKpRpewQm4mi1A{VO=Gr_B~7~&yy325zfJOj951J^a6f-&A1vsQr@ z$gbeC=v?!_Z6Hv{2ZP7<iya|VEhxJ{&4kz%l$w*8Seyzkd?3nTfd+RXEV@9U>y}>> zoSBynE9Ajm2L&kngsY6ioD!G@0`39lr|@7$?1c`N)K?H64{mwo7pFlMoxm)DHPRv8 z0=G#(;hS0l4l-<E=AK&O3_0*505bCEnF3BRU^jtp>Od4_h&m8vAE<eN*|JDaEdd>T z8joJcLR<wa0>H@uqrw6;*D$;VP0H{R2wcd6yE<u!$*IWgmNdwDm@xOHK^i$YA`GwJ zK@0vsM`l1A4K4X0i4aRm0Tl3{k{NMGNN{QiBvXL$V?21N1(t#UG&TuytWRoUSt`z| z9yI@&oKXZ*oC}^;g7Lry>qCoTa4i9LIi%`FEgHcY2$2IJz5_Mb!Mg##EeCkJ44ejF z(FHBBAsWy#GDH-v6rAv2ZgWp9adZv<Cn_v0!8GvLLmET8TYgb)BBDKOWC7EU5|HRt zxPp%Vz!GNIb2QjPxv9C}z5uB7hZl#aZ4v0H&ha?&B+P@b<`uXaMQ$~LZHfmqP?5X= zu7JTg5iFgaS^~<P`2{7=`U2j@0yUe#O47iWS3n~cdagc{2X4UTz)T0FKTw>5OK;>v z1=?N-+UEg@A^i0%hUPSATL$bF^d=IhOPOW?-iU+b3TR0Wv91_$f<Hq%-Zm~oZDuj} z40D)Kps5Xp_;^SXhSayv+8b1hg5nNZbEC#w5NOi~BAj#b!KXi@<s_yTgY-eHf{!6V zxabXeL>`7W;<8hV@=|j^)f7WKW<?KaTwrY?Lu>$bFTfcO9QhFC7=D5%g&vLzx=AUq zJP+K~MD-I&Z3|9^phN^M;lUAwv(JF5fWhB$$;nJYcpnzp=xG;haWSIDi<IfXQlJIC o@ahnHs5308vE+PMV-US3fwQ3mO8=lGE093MRVqMap?9eO05&_GSO5S3 diff --git a/graf2d/win32gdk/gdk/dll/iconv-1.3.dll b/graf2d/win32gdk/gdk/dll/iconv-1.3.dll deleted file mode 100755 index 4463871dc6aae7435ca74b922d3d554d98c2d003..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 747486 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�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�VTs^+6Qm1*4@aDe*d1{o;z$Hzq<pkQv|zMo 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 WIf?1TV1GkG6k#@!erRZ;n+pJT8Mvze diff --git a/graf2d/win32gdk/gdk/lib/glib-1.3.lib b/graf2d/win32gdk/gdk/lib/glib-1.3.lib deleted file mode 100644 index 2a12574b056cf1f1933d3f242ee4fcc2b80dbcd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 402760 zcmY$iNi0gvu;bEKKn0fO=H?a#W(LNn!U_gZzOkX9p#_+oz{SA8GL?bh^D+j8Z(a-x z-z69relS7sFAoL=5dPD|zyQMkPB1Y1JHf!n@DGBSJs224m~|2ZBM7rUVPFJdE;R;5 z5a!8XU<6^lSqzLIEO3E=5rl=g7#KlV)P;c&gvIL^7(rNa2LmGrOaEhF1YtP`21XE8 zXkuUlVWl$+j3BHk$G`}}>NO0EAgp<eff0mtL>L%BSTBfy5rhpUFff9!(KQA}5H{su zU<6@vF9t>sww%Ji2*TFq7#Km=PKJRIgdOr27(v)+2LmGryZmBc1Yvg@21XF}>|<aA zVebPBj3DgC#lQ%{0TB$0ARIJ{ff0m59xyP1aJU`=BM3+KFff8}^dkmF5ROw|U<BcW zBnCzhPFlji2*N4v7#Kk~-GhM<gfr(cFoJOQ9R@}a&XZ$c1mS`N21XDrn#I5f!X-Bt z7(uw4kAV?{D}5LkLAZJr10x96zF}Yl;RZbhMi6f5VPFK|mRAgnAl$CQzzD*fT?~vM z-2H-q5rq5n7#Kl#LJk8X2v6F_zzD)qc^DW$czO^6BM8szU|<B{*~b_dL3kbq10x78 zaARNu;YBSBj3B(^7y}~+FXv!j1mTrl42&SWx`Tlcgx4NpU<Ba}EDVewyvdJ&5rntQ zVPFK|ZO<4OL3pPQ10x9UPGevM;k_#u7(sadD+WdoK4iea2*O9o7#KnL*Z~Gc5I)Jo zzzD*p9T*rv_-qveBM6^g!@vl_7oRaOg76gu21XFR7RSH{!Z)TcFoN){TMUdKd{={k z5rpsOF))Jg!z~PqApH0f10x7O(_ml(;TJ^=j3E4K2LmGrzj?;M2*U3b7#KnLV-y1; z2!Ec#zzD)$A2Be3@DBwBMiBlL#lQ%{e`YW+g7Cjf42=ISF)%R-Krpit0}}|d_AoGk zF#9zICJ^S*VPFDbo+1V&5a!##zy!hq{}`A+SU7@#34}#wF))F!_yYze5SCJ6U;<&8 z6b2>`mYc`G1i}hW7??m<S&4xOgjF*bm_S&49s?5yYd&CL0%08`1||^J%VA&wVS`N! zOdxFZf`JKyP30JvK-fHkfeC~yH!(1Qu=N)PCJ?qWV_*VdhZ+VZ5OzApzy!jsA`DC* z?4HKJ1j3#x7??oV`xyfh2>Zz}FoAGD7y}as2emLTfpEw^1||>=`@z5j!jXCmOduSc z!@vZ>vD+A!Ksf#f0}}`*=`k>Ya7qdT69}g*VqgN{j28?{Ae^nozy!j%1q@6eoWF^I z34{y3Fff5|i5UYE2$yv*FoAHzB?cxCu9je60^!;$1||@$Kf%BR!c9^POd#A+!N3H< zZRZ%6K)BO^feD1WS1~Ywa32o?69`YJVqgN{NhcVXKzOPW0}}{O&tPBz;hBpVm_T^; z9R?;4o+rk@1i}k^7??nK(If^Y5MFYEfeD0{^D!`i@JbH`CJ<iT#=r!^YxgiPf$;io z3``)r$$)_ggtufdFoE#4EeuQ`yyF!E6A15CVPFE`y-^HIAiRGD0}}`zyvD!;!be0H zm_YcL9|IEzpP0hH1j45-F))GfSq=s!5I!Hozy!h<XD~2<@a0<!Odx!Xg@Fl#Z}>4V zf$*&v3``(==NSVN2;VngU;^QXMGQ<J{CEKa69_+j$G`-_FDw|CK=@S~0}}|pxx&B% z!tebUm_YdB1_mY&{vyY~1j64^7??o#$36xo5dJN|zy!j7;~1Dg`2QLPrvGagm>Iu8 zFpCcZGYGRSV_*hhjyDX<Ak1yWzzo8?6%5QE%)g6)8H5FYFffC#h!z7g2#duqFoUqf zG6rT4mioZJ48pQO49p-bzk-1ogq8Rhm_b-2g@GA_)%GzkgRsUI24)b}He+B0Vci-A zW)Rlj$G{B2Ml1}>AZ+5szzo7>9SqDMY;lZ%8HBAl7??rW){B7|gzXy`m_gWa7Xvd0 zJHKII24OcX24)cUh+$v`VXtWn%pmM@hk+S{{nZ$lK{&94ff<B@S1~YyaOe{TW)O~0 zVqga0s0apT5RRF}zzo81PZ*d%I8lj#8HAH#7??pgbrAzI2&cbcU<TnVBL-#=&M9GF z2I0J249p;0@P~mJgp2JMm_fL-hJhJ`%QrDFgK*^+24)bhF=Ai_;kpI}W)N=J$G{B2 zO+OfzLAce5ff<C`I~bTjxbqSNGYI!cFffB~UmOE72v1nTzzo8Zo-r_k@KhZJW)Pkp z#lQ^0Gbb=GgYfKU49p-rPlJIOgcqbSFoW=-6%5QEyyO`JGYBu&VPFQ~l~oMPAiVkv z12YJ(Q)6HT;SB{0%pkmJ7Xvd0Z~4Q(48q%k7??qL=L`mB5Z--@ff<DNDKIdD@PQ}> zW)MC!hk+S{k6dD42I1o(49p;WGK_&4gip_4U<To{j~JLi_<{-pGYDVGV_*j1D;pS? zLHOD~24)bx>A=7Y!ngYvm_hjN2?k~me!$1T48o6G7??r$NfiS#2tV7yzzo7KJ~1$Z z@M{|eW)OZ`#lQ^0?{_dTgYYLN24)ccV#B};!rz)0m_hi*5e8-u{`HN48HE2@FffDg z|0)LN|5Xeuj0Yf?g^7U$gxOpeSU{Mgje!M(xsEWffG{r`0}BZAdoZwouwWkp3kVC} zVPFAaF(n2T5SGYbU;$yNRSYa3Ec1kc1%&057+649v4(*Kgq6=Ruz;|d1Op2QYa}tS zfUwpE1{M(3dBwm2!umE0EFf$+iGc-#jXyB3fUubt0}BXSEMZ^)VXIdREFf%az`z2+ z_H7I-AnbUDfdzzJ)EHPm*e!*D1%y3jF|dHJ*8>I?5cbt#U;$zO6b2R$4qU~+0>Z&R z7+63!%!z>ogd;i_SU@=H5CaPc$1*UmfN;DO0}BWzRxq%DaPl?=77$MTz`z2+8D<PD zAe>dezyiWK+Zb3tIPVJs3kVnLF|dGeaSj6u2$wEnU;*LsCk!kgT&2gr0>U*J3@jjA zw~T=Wgd6TKuz+y090Lmow<a*KfN=Xf1{M(Ryu-i(!aYh1EFj#Mz`z2+6J{~6fbgUj z3@ji#RgQrLgr_Gkuz>K)c?>KdJo^Cy3kc6MVqgK`1vLyTAiU@t0}BW*<zZj};pJfr zEFipc0s{*OuRg`V0>bM!7+64fLmmSQ2yZ&UzyiWsg&0^sczXc@3kdH##J~c=dw3XF zKzN@Q0}BWrn8CmT!iO#~uz>JU6$Ta%K3>JZ0>UTHFtC8|86gH15I*O_zyiV-mNBq^ z@TCt7EFgT<ih%`$uXix8fbh+G3@jjg$AEzagzr@`uz>J`D-0|k{Md+r1%#hYU|<2^ z=dT!8K=_ph0}BYhS;oKu!td@duz>JKAqEx@{_MfP0>WRL7+65~`wj*c5dQg!fdz#B zs4%dA@V_VqmVZ$UtPE2inCTb;D+sgvU|<Ddb~6T65az64U<G0BRSc{k%=>_W6@&%E z7+67A$cKRyghjd-SV36q3<E0&OA0Ztg0OS|11kv2PGevNVfhCPtRSpp#=r`~Dm4tO zAgs2Hffa-`zA&(Yu(lBcD+uf6FtCEK{wfAm5H@_nzzV`9MhvVVY?i~o3c?oa7+68r z>I(xa2;15*u!69C3j-?%J04?T1z{Hs238Pu^I~8HVUGp|RuJ~u#J~!|J}($pLD*l4 zffa-UeHd6lIJk|06@)`~FtCDf_&Wwx5RTGdU<KirI0jY_j+?^33c?A;7+66#=?eoZ z2&Wn`u!3-U4Ff9(XWn991>qbK238Qxi(+5};et5~tRP(Uh=CP^OJx{XLAX4Pffa-+ zcQCMma19p&D+t%QFtCDfLl*-p2sd3}U<Kh;AqG|uZVzB!1>w#%238R6KES{V!o9y3 zSV4G#2?Hw#PpV^J1>q@27+67gIvWEk2+#CkU<KjXT@0)sJog9#D+tg3$G{50i!2ye zL3l|X11ktGTfx8z!Ydvzu!8Vv83tAmUK_>03c~B>FtCE~##;=mAiPC_ffa<eB{8sq z@QyVMtRTGW9Rn)}?=@gx1>yZg46Go0a0de`2p|5%zzV|0Y#3NU_(UB8D+r%Dz`zQ^ zXPFpSLHN8211kt$Y-3;r;mao&SV8z27XvE@-w0q}1>swh7+690&J_k$5WX+QzzV_- zBN$jg`0+FbRuF#rgn<==U$`-_g7B*a46Gph<`M%d2)~zMU<KiiX$-6&{CNojD+qu6 z#=r`~KRg&%LHJh}11kvsIl#aQ!vB6Tu>SkSz{Y3-!OTSrY#_|Kfq@N#+21j+fiRZ} z0~-kQq%p98Fy96SHV_v0#J~o^!X^xCAS_zMzy`wN8yMI?Sn?AC8wkr7FtCBJTp0r! z2rKMiU;|-gCI&WTrucYI-vIxhka!o@VCNvufDr$n`1G92Bwa&2V}|&6zfd0^Ocf0E zFeMNLAs(TA-tjJuA&w03@tL^=@$u>LiA6<;mGOxM1*v%{@nwlQ#SGX5QPrmvrKTbj zLU^buGV_X4i%QT;L=i+)pO;#WFc8c^l`kkt#o|O%QB)m8sk!-OsqvY4DXA3*qfte1 z>xfTFEH1&W4Jw7Iw>Y&VzBscADO3<5Xeu+SQd8o=UW5fdNF!7TuC^q#A`{{OC<`W& zlvtdamzWE-3BiWTW|qX~m1M-{6sLh)pM=asSCfmX2FyiPQ(Tf?l$Z{&D6=FU&V{SV z$uEyj&M3{x2B(@NWG-AyWl1VZA_Kb$QxJ=KNU}<gPeQ1M2w_nR4NfGbU=b`Tp-BeK z8E{c7I#81gihEF{2<U~T8=M9}<*}H8NJ=Q05yIH?ASW}VaKVz+k`t3NQsYxni%W{~ zD?tH+CIB-XA`HpI2xTxns;cbN%J{VWqSVCX41`h?K~(kN=t_@=SOMms%0ogLVHAvy zs;Vq8r!*DQUNm92o}ARgqWILJqWmJT!N^>=n*7{?oYa!c{Ji+Yl$7|)lGI#qVo$~@ zjzw28*i>x#P-L*_gjfO2e@NCrnW=~}94Z2GBP4^Q$72X#F&`YtC`!R1SX4p+8>{D0 zr4V}a%2JEK#aD7Zl!+z>3HSKI(!`={aOgwSp$enxDbFm)h)+w*$w^8~M$v^P0n?X~ zSdy5NSzHni4r`D#=pq;@krFLjEnEykb!JL@dTL2LNF|EtDB{?3LBlOCKRz$NBr^@1 z?Lel0U7MK_k13DM6i^8O(iNXpnv;X>05nNV{dtfI24n!lTCf1JI<OIlasi|gMF?Fj zJfPCSK>|_>7eZHy5=02~D8g9uU<M3|UQB5$W`NuU@(W6^fdn&C;z1OW9Fp!-a0!r- zSP3owQW8NGTS`hiL;yowZhl@#2C7P!5Qf^y)WjlGrBD$RmB?v06_%n=RpjRuBo=`S z46yS+r2v?Zq6$_<fR#WvDDsd54NH-!&;(wIC~v?Tp{nBZ)8avng(g0@YJ@m8vy0<1 z^Wwq5fvyi(21937X-;Nh9*P#25Qf^^{JfOJ%J}ls)NF)Xz)2+)>?5r5_)G!248yBP z#vm!cW=;vXB7}z>)b|)Fi%apl8>>7%Q;?j6<b5P#kQ88;0}8&BMAWnZ7sF7E5jqe7 z6m^-!@oAYw#U-FffrbIpSy*Jyb><}E(1<31p)WPD05zFr7RTox1X0w3YeA@+z-)Bc z_>^2kh~%Y~L--h~vQSeiNFhuJMJ=SnL6`{VW2!>37pw}z$4~{c1nLElLYNSSTGSW- zDTRt)s4Pe<Dn^tnAeB%N43#CBkj@D>se=?k1TfS=5(kniAp)rCN{Z4T+F|P80;uXr zlS+yblR-5xQt@1jDvDhP*u#j@7p?~;j$IeXtynZcg;DgB<i{766qP2I#Fym4%Pv$w z6!m3^IhiSNg-{-*3Q)y^stO{4O(iIuKm!nL9+ngf5r-ud6vZ$>EGB~k3C$HyF)XU# zB?pS}a8WEeK;emIJVXetHnS)-xg<Wdurv|U07BuTsme$!h7`gOMG!8M8d$eFC9?>^ zgvo*X2=U4J1>jtY%tKWHsZG<NjaUc|RYh)MNpeOiIORZ$feWCj0~b6ngTNdN`S_g7 zlGGxIw;^VMiWs;cOnq8rPAc3%`MDrwUOp&HaY$g%2XCY!X@QENs0OtOlJoOQQu9i{ zJ_IXA6+}^=Uyzy?Uy@q@cMU=SMO{fMWGn`39)yD|4~nb!w4(gn_|lRz3z%W(q8K_# z@-fxJ#o(%;BVDL*3HDP4s6+(!aZtE0onXQIl+@x>gc=wZMNMf@QEFaEd`c#`7Yf#f zEQC!htVl#w3=u<CosplLifk-`kF2VoC><13pkM<T2j?QIDN0SuiAPq2B!H~0B)0(B zLO2&$O=)pz5sFzz0!Zpo^U9!30<&N;pgbF2l9-f(GGKvC6pIdcUnD&qNe5gMw+?7` z4CEk8jc`e9`ioLiA%lX*`k;bX)WZf-P#g#o#G*bYKR>$^oPUtahY8|TAD>!LlA4#2 z3a(`^G$P4jF#%i_p*RmLf<+~yD~1+kFhMNpK_gRWsv$yH)Rtr<g2#)I91jtKtIf~P zj!(?V$xj9wiNr%u0qr5hXQqG)tPGGk6fqRlNJC^`m2f^bRq;8QdEhY$WTj9+6!mGD zd60+zSq|Y~$b-AnaG!t_K}9fCrj_O){0vqJ5y7q!YD{`O*p+bQP+>GZpk_O`oq*&L zBr#Og(1H_UE|`NNpAIP&!O~zhiYz3_$0wzNGAG<NG*N6iit~#~py?VEoKPJwQ4}5E zF%NjB8tf2cAxyQI;PDY?P=S>~M6jtW%g+Y4mJ!Bg=0U`8sg6(1NQDe)q3eOkVCu|G zEGo``v;YvA;DR{S!wf|B3RD+N3Po>TY6W;I2huDB+k`BHq82`q4mBLkM^ROj3Z9+- z8wF;g$d=}T#h@lYc`y~3pb<q-l7KQ$#N(55@*&+6uq=#=ss_}`fEy4G;lWj;<bcO{ z!18c5x-5L)C=;p#DuAL6Qq;vKRYEgUdOTP)x-g2K;{4L0<W$(~5Li935L|5@Qj<3m z!9kV>6^&qD<duMHJH+@+W<Gc%s~pr61*<^e!_7bvg?cYN9$70?5J`P<Mq*xGY7Q*a z!OGFZu&9P)A{50CAuMW(QWL>tWoCXn%wUKRR<+<XhN3hLB@|#r6sM+wOKK#g5Fsq4 zmgZ$vfCrG$&>eyzgG(p4vPAJKSQ}Uvs~%`hKyn&-en138d1jum5q8I+N@1}Hq98Xh zJ2k!_KPLyncUa_cngZ&F;4lCtg;#HGYH@L5I;59`<Z*}-Kqep*;5DZpvjAKOV>JUJ zNl<@0cxs_MF*~)i0Nh5vX&9PHye1cy6s0ES#uw)&XG7{itfr!=!f7JNEAgOw0BRRQ zb2Kb%Ljny=1tF6POH+$W;_-PJY9N|I+~(#(<|i<`2})~N^CZOGpy8vG)TGjMtiD2$ z#b$F+W(h|0L&RXJ!Ie0?m59tkRRLZe0dfLF36zVXCOJPZIT75`1FL~?(bPZ&5TGhR z92EJK)ST3kRA?J9JszwKMGQqXsIdlj6NG~yAD>)WT#^qSb^@CQQU(`8Q(Xk<WJA?~ zd8jH7)432eFg~g(a8nQJc+_4qL|0L2YP=!B-B2!y8Sph5U>#5%nhMbJ61XXlW*#CP zLG^*u#KYQtP$xl@!bMR`1&t!Z&4h4J<x}(0A;b7!3v!@b6g7EB3czf1S$JyzYzAnp z257no&FuyG#hIW<XSiz+0x0IeTUSuu!TBhvAWaUqSuidZHK=J1q7W*Ern)Q@Ivx!6 zMo}u1kD>|`^l)1t91M9#sR;=Js3$-wk%i%U@{<#DQc*{GaxlcuRKrJf(&M3O;UWl? z;Nm4GKOHF+^3&r}QqvMkb3m=9yp)_&@aRkqHen=lpko2?8Hp%bpaBUNMb-f-#1eDL z6Dy13(?HYJ-~h`{2Tw$zilgfSE051jECx4TKu!ahg)EA$1MUD&U_h*Z3n8fmkG$mM zr<WnZBR4TKFCIL$S5X3PJwgiZ^mrT+Fw;<^;XNE|qF8l6qW}~pD0<-H*mY$V7r+{~ zsM_EXSoMKRM`(LHsWKkaZ!V4p4^P3;CyHr=loMkIq)Ua*Sda>0Od{HyND8r<3+|1h zMJ!khmuhf>5gb|=@dO@G%+JYz%3?JEJc<n~>`+1iNd~J<(2Bs!JaFbk(FYgDuB#{& zHcO7G3nq?LS7B*t5qR_;MGsUIs}5+U$C^=4<gn@nWo3|7Xvm?(2bwI32|4-s1<0$p zzz#+g#8jVI9A8wLmxmmhU@gevn7Y8-7O2y}%E1Dd>IzFCOHB|?frwzLEGh-h?;{j~ z1rX|BBYL^eRvW5}0VDx}6d53wT}9cY1)zzK{367HqufMHQG{s_x#Hx+g4Fnu)CzFJ z4yFTH6io+sP842Fg4Wc6MIg=sn+fJ)Q-RkcNJ9z~(pU_ENaEEG$%lwG1=K63jzLv~ z*F11M<8TgG4zF&owK&5BDhoFuH5WE0l^&mq;GoKv<{=IDLR29M;ZO@nE?^_!ijmU| zTn02s2uYXdLYOAQ2Zdp-1sM$eN7J!HiY5loetd1>H@JB0TjBA6<{QGjeDSO8O9 zK~ZKNBx%F_1r@?nTLhcQLRb$KLRJeIxq(;>VI#{H6y<~F@W4@@ni~)2BB@D%OlRb# z=7L!W8OV@8Jj76t1t<b=b=k!wsgN1PTo@BBS6Y%<fiM7x2UC%kpOPA%oROK6f><|> zDTYNgqIsSkkE8)1jH#z6H4k~EDnb{E1gbvh1T;h~n1dppl3D=ieSj4}d1xx&i+rJK zpnMcnpoR@7j=)MF91M9#Frlb|38AS4%@7o4Cgniu7O0^pq9{5*#ZXaxJ~&;16(a;t z)IoZ3a2LS1Sk%NPrj<b2?_l#FDq(`y)Fb8{kTt+WQFRo@C*~!mf)>XkoPsQdq8ikx zgas2cr63Dosznbtuxhv<iu&BdiujDw%=8RI$RP`%sLg{oq9_$ys)0R;EQF>OBo7|@ z0x{zAz$v^KQNKb&AsaXlY*aH!G9Wg>!wA&z1?Mz0bKpH#Xz;-KDCR-?n-DXReSs-~ zqOYVV5!z9O8jlb_QCFG=o4o^j2*!n}$<KqgCZMfCbP)`d#U+W!+3}!7O5iamxOx<E zm@aS?7!Mx!0<9f_<{WII2puIE;E`X%mXP%Lf<z2K4E6A}E=bDZVkoLJi{lfMit}?y zA){(w!%@UgR2OGw7R1A{F<32<2wY`mK`MOUGCsE$+?0n7EheUbMl&ITaP_eI3ayp` zb5o1JU33H+MOPX$Amd953Q~*Wlk!U;v#wy}*d-DA^9vHwLF;|N%WObNxS$A42(GrI z2)5lN1w27efGU8g4pQ5v$0HO%L@-r?D{*9nU;#{Zkj@3znQ+TtVz^X8H=iJz4$%UY zz^M;9I)_CgR0h9JsPVY8L!~jz0Cj*Ms{@d=B1Ez1K;9682yBocXnU^;(FdT?<1vI_ z=7X0(L58G?OA<>mlcC8B6#BU3u<9;?W^)v65J6P+khOy-s*!}y)D~4@xTpk4452y| zv~vbJcw1PC;GwF>ERIjjEhqu^gdwUBBB(0Ci8DPOq6o}El`jCT%+7$$=Rs5<31LxN zl9&lz;)kRbB7~+kzaSpXShxswmCylBm|F{=%AvxTdLXtUD~E_+R|z!+T{%=3O;2fY z2D;-BLO9eyO@dnh(*PC6q6^|&6b%p|9BQE^VQ7Gg!*mrT=B31^<d-JpfU7tZE*3TM zMTvQk-GxXhVS*^?Aq8SONG>HF!a<RTc4ENBfZ6D>Ae~57fo9C1mZPWyr&6djU^coe zWK_C16|%wvY#(SkvK+K62_lN316&*-D@F()tIN+t3pFGGtm;s`16K_bM$-ch5s0ty zbK}80OcgM_$m(EXXsQvOfGb7_!PTZh2WZkk^*d-l2GPzdO3g_GjrYYT=a)jdpXee8 zQ=lp#vtXb?6|NK}gheg1PXn?Vt{*Cfp*po9vly~k6>c(22tzHjMnf_eDuP8NXzmHc zy^vl9mQVnvG$b>@d<+x8?GzLPp&}S6i&Jw_lfiuexQ}2$Ftx?WpoJPm@yVq{pgauD zu9#xjR3mz{>G8-q5aQT$mE>nbdK$=Dpn}-cgEwq~Jd3OzDu}KgKD2^x5L^gdZE8Mv zNeIkTFc(8j5p+K&ToptBT^*<#s!EM7uFOr!&w(sSMRqY(X>>C{JzMZfDri_Bynrr) zt}`>QptK|&Hkbl)DzYec9k8)XR2>jebRCd&q);Cs`wdM3T^~3BBfJ9UqN@Q{_1L|R zA%(8DI61!nyhsa+(=g?*>jteWOia$eX#%=Dc2m#-0^w(fGti{5n*nWRL(&m)C_~IZ zlg2OubnXBsJWzBZ1ToZ?B$mYI=BJ=!c~Hw0Du|)JGA|jN%;NLY(x6M(VQHrrLk?Xx zXiY9Oh%s{r7D;sdrFp3p1@Rb}14S5JPkCYycu)i8N(djWDzyaCbq9wRf`cKCJcSFY z-oRZygdnnd=xQW{BxGh4Ll{{Pe3?B&Eu4$02Gmf2Ptd|tq6lKBPc14!cL=zmKoLjQ z1qz?cJkW}6_>?uszZk-BJsGJvIq{IOh{Ph$9C3PlF@_kb>cY}|$e;m4A(V@%rZf*K z3^NWc09OZIY5;Fn6eDxd)IeA0q{l-QLHVevU~6<>s$hI{RiJe`2sI!cstQO;1XPiN zC*mPiq6ng@hm5GgOoZ?-Rlt|&AS;9mqN#^1#eu7Z381Ni_U|B01XWRp_6R}@vOEWs zk7^FI*#ol;%0*WLYXU(`LT~>di^7-VAWQ^lh6|&b3>pIkXJ2pvfbh^%Kv(9#j6+|k z1F;*tJO`!(%t18;G(-uT_=oF&F5f{_iD>=6j6;Z^sf3(kgK$2^_$I_ANU@Jl2IHfe z1`$O|c_@PD>fxiGFl(R!sOmriAPBo5JWLgk-VkaCfz%?4!*%6>OCd<}3(khiLY6&) zPS^m=d4sJ+7eZHCQUX0&1iD}&5h{SD4&D|_kB2IRi=e3lHMx=#^WuwAlS`p%o1i){ zWU%Q3?R$gF6C>+_iDJ_M-Q@+@xCM6}*fJC;EP6qULQr&o1hA+pD9X$)%7hHpAUO*m zjHU<NR)ZT1=Ao&8u1AI%2IgU?03E!96o-%miB!@+q81_yS|5*Pp$*)8kXcyOV6_#b z5@~%4+$RXTkYv$J0M&ZQNN0;coq#HgM-OPq5WKMz$?M3Pk>s(Of-U7i^dre&(TRvm zxOYL?5W;ABpzFusilKbCs)EGi)Rg#wqRiaXV#rc{$imQK>=H=&%JbqAL5)Ii02Cx5 zxLDLc3JK6yKX_)T7@-_R232Qrer_&kkSQlKFBRP?Y;t&Xqq-ACGeiniFQoYg9-2k? z4n+`EJ;aRkc!<9sJh%$TKyfa30veRvA*{^Y0`T}Is5PFM91jshmqs(ApeVBpG%*2Q zpOqdD)rumDLkFxa4{-}j2UrwMM^P%wF**5=4N6dJ&?Ru{D=DhPsTD4VQ+H_|PR%eW zbiL)EwVv6~p+b1D6rl*?&;wdVpIQXg4~}R^_`tNH$l^Bv?lBDep@zT};5P^6M_k6h z<Z+l%4qEY!(?2M(_)UO27sDY?L*NSVn*(z%E@NQw2vdp>+xv@4;2dOm*j^`)G=z;L zo1B=J59tw>6hYZ2vc;*%kOd>fAbBVcSw%)ZLLS0Kk%eqd0BOzuF_Go+a|?=6iy;ME zNfBscDTIrn2DWbiWCC;(0g`-5YEEV@Wc6HeNfDfftRlZ0=Did!6Il+jng*m3#6pz; zmGOBckS1A4QA%k6TmVg78B*H~q7W{EsuH|#7-AXH+F{T(7RVSHD9($(r6y8qprj}j zyrK@0-QXM~lR+I7n9)!+k}Rn63OT?MY67wVR(0{<4YI{0pvg7Z*_X*EE<zX)p93Aa zL{SYEL^r#*I5Qm<6JP_N0%+>MCnh45O<-3b3u09d>pp>l5M(+;2TT}`9?)V#XbleW z1F}w-Bv$?4_8*#sU@<h+kYoo}2;risfuGO;4R$CWT~$#cWcwye6@-tb3X}$r;u^w5 zQv(YaxT|0SSk<AV2#89M5O%fT$VW35l1$LlgTo505X?hU0q_06Rl!BDs|2|UT`foq zhiX)(Le0kNR-}1wxcNw8XyzBAln9{Y2p7SwG7%}hph^=la$HGKDX1`nj7>t)Dnba& zTu^ZacPNO1B%hU^3Co8NCYl_qECETPmQy*<JzT{lMGz*E&YWb>&=1&72op&zFF6rf zae(C!Tx2!i1&t7SFcVoWEfcaquDGNq55h*0g)VA>1|gh>qykj(K=y$bmlVM`$npg_ z@H(Uz!bXxU$p<f0DK04jvyfy!0Sk69hyfEX$pE!r;**O~6CtB|XaZ>Jz~wz+-8ED( ziYS^6P=63KL0Al0APGL_7_<um<b9}STnf<40mUzpE(jM*O+kKs4!kgi8jmD~O*J?p zr^h2J1`A<RTTlu)atK*5L<~)JacT~@CWb16a52=BfU0PCj~=cTSr|=EX))-e6v##< zSPuiL4^s+NZ*hEjehGNJY-VB(X!Q&tEU`$z^=9U#=9hvu34zrkbFrv_?jlc*2MvQj z^+CnZRYN=E;IKxhM;1laQG~n)0%SOn0IIswoWz1+$do=r9b5oa9g@XGkS+SC^3dhb z5T_NzL%FDGic1n9=b}Pvf^yN-<b#iNfhhs;;3|p|i!(s|yyR@8#hxWtM6u}rO|5|= z1xY<b46AC8#p$3mi*PFoKtfp6!qPdi$zU;r>QqolgwDf*j78?7s6wn_Edgy0g>g~T zKq_g7XHr4Oe1isz5j6@}BV_&!t_H?MF$Wf@AdA3kR9VpSPjLGkY+xRgi=qZHwgk5Y z#zj$6oC>;I5UvKsMNxxTiV6)JgaBM!X+chEF-pQl6G2l69hpy$FM+6o@?ok<lZ#E_ z;rk)e<5Br=Re71o8Hq*lNkyrN+3_WnkWKZaSVYlvq-3UNf=>=91=r~?Ehxh1dNPX> zbMi{TTb5z!;X>Hd7G!|i7RYMBLYQik^Gb@qBP<BDP$5jUDXD3hd5|&zp&BlTMLo!; zp!h{n4H3drn_iSy06vEfp%yBHsWvCS9I|p9p%yBHsTSNOLv;gG2#ea%Jjfamgt-L} zAxyR4fj?App+cByOEOC!tG^KDLWMBZf>+|AnhO=eR9l`2nX*P03lYIoSpiO6sK&y? z&{ZQReQ0uq3t_5-27G!v%n>E|P$5jUP){SPg$iM+g?buUEmR0YEn41#<VAE<5Z{9C zUO>%usN%@Fz}sFx!z7u>i8=8psi2Vxq#fuW|Ke4G+pPSelvGd$7Zx9=#vo+jCKTtS zrh;p~QYZ^9Q<7#851K5E2QM1|l}KPiu?b`9DJV)U105LyULp=UCJ<s2k}!%M(6B3t z4F~}gb&y37pdz#&KQj-y$pmaX78w+sQ1u|K5T$U>V39%9iQyGoz5uPbhZ_swpqK<2 zamql12#kxa2HJ@PdkfSt0u6|utI30Qj$n!)d=yonoRwT`0(TIckD>~Ez8JJ$0X7UF z08>|144*(uk4NIb<RM3gfKP&g9;%2gf~peI6@f0-067n$98DNiPa2|QnjQ~Pk0gYu zHa)cja`XVgY$PF6wV>0eP#g^xKvf6ofuX2_3!tkj&&*3fQwbM>s?EtviciYSODw94 zhurspE`X#CoXXP@lT(qDqKP4?&P~k9FNz1vF=v9uU_l0>i6N`bOfJetSB)x$qB;-L z>`Y`aGH!A<g5Bio!^FU_>@x#{*Ea?RiSG;yOg|VHJbp1SH2q;<IPs4Gd~LG_Gb6(! zRz`*=?2HU*T#O7EJd6yp_!t>32rx2m2{SUdh%z$Ni8C_nkYr@|C(X#<Ajiniq`=5< zMv0L@PL+|NMxBx2m?k5Ghz=t|kRBt$1OrBfYetL=Jf@5cUgnGpQ!E)7&RH`u$k;J5 z<T)@h>~Laa_~pXLVB^ln(C5j>aKM|9fy<APAtHd0VO9_$!-Eh;2EA}bhMq`9hDXti z3<`0K3`q%$3`>$28Q!HZGI*pjGR(_lWVn;f$RL-;$dFLL$S|vjk>N%OBLiPKBZE&R zBg3p}Mus=Fj0}1Wj0`<Zj0~?@7#Vch85z1d85v%5GcxG)F*4*#U}V@giIIV4DkDSC zbVi1bnT!m_W-~Hy%wuG5TfoTBvWSu4*b+ttj^&IDUMm?HI#x3>99zrCz_Njn!EX~I z!<;RQ49~VPGU)7NWJuf1$gpBBBg3oxj0^^c7#YfrFftrC#>l{Ql99pTG$TXRSw@C6 z=NTEEU1VfXxWdQ~ca4!@$_++_Telb)H10Ao<lSdv*z%B(;nQPA290No3`H*(8Fsv4 zWO(+5kwM`-BSX|jMus_`85tgZWn@tJ!N?Hxi;-c*A4Y~t{}>qr7?~KHn3))QSeY2E zu`@B~a4|6y@h~y$;A3L=C&0uIA<V=uOO%P>fjAR`k`xm|iVPFOJUJ$YCkjjqO3F+O z8LCVS^VFFb9%wQ#DCsaU<mfRmY%*YCcwxlEAZN<NkYUcmu*s5%;fpmBgP9!@LyZFy z!#O7=1`$^#hBS93h83Pn49~oo7-amI7{UUW7+Qju81{uQG5iQ)V$h3ZV#tYRV%QeT z#PB1Yi9s)ki6JG0iD6M16T^!PCI-E1CWeAsCWcM<OblNNnHbDUm>4?Bm>4cqFfm9} zGcjb<GBKQ}XJU|QVq&OhVPZJf#>C*z$;7a#n~8y^kBOmb0u#fDNlXk%Q<)etrZX`t zn#sg)XEqaq*gPf%p9M?|lNK>CoLIudz_*-<!DA&8L)&U5hCOSU7{0A%Vlddm#E`Xx ziDAn&CWco#m>5)cGciQ%Wn!4IpNZkxK_&)~BTNi_$CwzVoM2+Obc%_A<17<H(0L|? z85fxtZe3<#V7bP`;CF+GVa6>chG%z}7!2++F%&&yVp#B)iQ(N-CI*WaObl(Wm>90S zVPf!m&&06dBNKz%7bb?3Z%hpPelRfz{AOZ^`^&_z=06j|H%4X#9~NeYWo*n0Z#bA4 zthkvODtMV0cJVVa{19Yj&=O&0h!JCESSG>D@Ii{1AxM^)VTC+11D_HzLy8JB!#*`; zhA$e-3})KQ3^lsU4Eyw%8CZ;%8Qe^m89L0E8ID;nGjLclGkDoDGc?#UGwgC?W_aVw z%%J7Q%n;+j%rMQ1nc<EPGlQBxGeb!rGsCK2W`-xB%nV8q%nT7x%nY+)m>HhLF*7J7 zGBd;^GcznoWoCGj&dgwx#mrEW!_2TNkD1|50W*VLF*8F=DKo>Sa%P4vmCOuAHOveR zb<7O=8kiY=G%+(+wK6kwv@<hY>SSh+=wW7v>tkkEGJ%=l*(7ELovF+WQPY_jCd_1J zcs84vL1P{>L)rpnh82sL8J;a+X3$yA%uuzGnc>W8W(Ku&%nSt^m>G6$VrKZWg_$8} zJ2S(Koy-ikb~7_5>|<t#I>5{@=MXc)r6bG?BFC8-!cH<X%s9==@aQZvgUSVFhP+G6 z3>&U6GyJ>8%;0d7nW67CGsB6y%nW=Fm>FCiF*8&>VP@F#jG5un3uXqJ*USu6Z<!f( zyk}-$`ozp&^M#qA=^Hb{ksr(q-+nPOSo~#XsQS;$aDb78fr*8M!G(>5p^bxu;RqKC z0~;?3g9kqgL!TfE!yRE31|=~Th71W7hE-B53{PZO7?k8$7-|$*7|toPFi5DeFeGWP zFl^9bVR)s(!eFD%!Z68@h2euS3xk&Ro%7KT?=EDQ#=EDUY-EDU!XSs2t@SQt{= zSQut`urNIEVqwtoWnoD1XJJ?s$ina=n1#V9jD?{if`#Ew6bl1GEDM8GJPSibA`8Q| zWEO@GsVod;87vG1Su70Oa#$F?<gqa56|yko6tgfaD`jDLQqIDlSH;4RQNzNptd51@ zP6G>rTr&$pLMscyyml6bJDn^HN<AzL34JUKvnH@GyqLtoAUBnTAz?ZT!@QX+3=d|r zFc{5aVW?Ta!f<X83j@zm7KX6pEDRG?vM`)l&BDO3j)fs_0}I26O)LyTTUi(iwzDuC z+R4JevxkMjYaa{4i~}qTmkzNos2pWss5;KVaONZngU}fk2A^{*49hOCFnqYg!eDik zg`wj*3&XveEDQ#BSQx7Au`pbDz`|hkn1x}&Qx=9-&si8eUa>GNd&9zT=N$`!&_@;q zkIyU&O<!3Uc6?`Hc=eNoLFEq%L)1SO@Ku$^m{=Kpu&^?iv9mH%aI!M2;$~%dz{|=Y zCcw(zBgD$kCBn*ZMvRp~NRpKyK$?|dnk*~B19?^kGbL7r8WmQCZECCxUo==5jI>!9 za&%c4R_U`cyfI{DFfw6f$T4GOSZBe?@WqOi!OoVIp~aq+;g};U1BVMMgO?jCLxTq^ z!zM3Qh8I4p3{w8A3_gLZ3~j-z3_C(u8Qz7nGH67xGQ`EOGE9kMWjL0=%J3zLmBA>L zm7yk`mEl$<D}zW5D??NsE5n=uR)$AKtPC=xtPE-8tPDFUSsA!$SQ%XESQ)w+SQ)M~ zu`&p?vN8m;vof@GvN9a#W@Y%*%gSIfft8_d5-Y=zDXa`^(^(mOX0kGL&1PjdGMAO% z-+WdEi$$yqc}rLsRxD#>c(j6*L1r~8L)2PUhB@n58E$Q4Wsumy%8;~;m0`^eR)%-G zSQ!lVvN9CyXJy!Nkd@)rVO9p4W2_8yCs-K{oML5QI?Kx7a-Nl;?IJ6~iOZ}ET-R6` z0&cJ}OuEI&aODmwgV=pmhKPr(4AUO7GCX<8%HZ~bm0`gvR)$M&SQ%vAvofT8WMx?L znU&$&S5^j(AFK>rzgQU#{9$GI^^cXogprM*h?$LH11lTDJ9ah(6)rZ0G#)mF4SZ}2 zp9I(#OoZ7OibUBMHi)w^e3E2iFpyzmD3fDj*rUM4z@*H^FqMUYfsuiUfrWvUfsKKk zfrEjQfs28gfro*YfscWoL4ZM!L5M+^L4-k+L5xA1L4rY&L5e||L54w=L5@M5L4iS$ zL5V?`L4`q;L5)G3L4!e)L5o3~L5D$?L61S7!GOV#!HB__!Gyt-!HmJ2!Ggh(!HU6} z!G^(>!H&V6!GXb%!HL0{!G*z<!HvP4!Gpn*!HdD0!H2<@!H>b8A%G!}A&4QEA%r26 zA&eoMA%Y>2A&McIA%-EAA&w!QA%P*0A&DWGA%!88A&nuOA%h{4A&ViKA%`KCA&()S zp@5-~p@^ZFp@gB7p^TxNp@N~3p^BlJp@yNBp^l-Rp@E^1p^2fHp@pH9p^c%Pp@X55 zp^KrLp@*TDp^u@TVFJTMhDi*Q8Ky8yWthe=onZ#UOomwuvl-?v%w?FzFrQ%o!$O8d z42v0-Ff3(Q#;}}W1;a{)RSc^c)-bGPSjVuQVFSZPhD{8c8MZKNW!T2BonZ&VPKI3! zyBYQ{>}A-;u%F=o!$F2a42KzxFdSt##&DeB1j9*&Qw*mW&M=&1ILC0F;R3@&hD!{W z8Llu~Ww^$0o#6(<O@><xw;Ap*+-11OaG&7;!$XEg438O}Fg#^=#_*is1;a~*R}8Ni z-Y~pnc*pRb;RC}*hEEKi8NM)lW%$PMo#6+=PljI%zZw28{AKvZ@SlN!k&%&!k(rT& zk(H5+k)4r)k&}^&k(-f+k(ZH=k)Kh3QIJuHQJ7JLQIt`PQJhhNQIb)LQJPVPQI=7T zQJztOQIS!JQJGPNQI%1RQJqnPQIk=NQJYbRQI}DVQJ>L((U8%I(U{SM(Uj4Q(VWqO z(UQ@M(VEeQ(U#GU(Vo$P(UH-K(V5YO(UsAS(VfwQ(UZ}O(VNkS(U;MW(VsDZF_1Bc zF_<xgF_bZkF`O}iF_JNgF`6-kF_tloF`hAjF_AHeF_|%iF_kfmF`Y4kF_STiF`F@m zF_$rqF`u!3v5>Kdv6!)hv6Qilv7E7jv68Whv6``lv6iupv7WJkv5~Qfv6-=jv6Zon zv7NDlv6Hcjv751nv6r!rv7d1Q<3z?ujFTCsFivHh#yFjE2IEY|S&Xw8=P=G?oX0qy zaRK8(#zl;a8J93FWn9L%oN)!?O2$=;s~OiYu4P=uxSnwX<3`3!jGGy^Fm7es#<-nv z2jfo0U5vXK_b~2d+{d_|@c`pN#zTyU8ILd?Wjw}sobd$XNybx*ry0*Mo@G48c%JbB z<3+|xjF%a&FkWT6#(16a2IEb}Ta33E?=aqFyvKN-@d4vQ#z%~g8J{pdWqii?obd(Y zOU74>uNmJkzGZyJ_@40t<449%jGr05Fn(qH#`vA_2jfr1UyQ#Q|1kb#{Kxp8k%5Vk ziHV7siG_)kiH(V!iGzugiHnJwiHC`oiI0h&Nq|X^Nr*|9NrXw1NsLLHNrFj|Ns39D zNrp+5NsdXLNr6d`Nr_3BNrg$3NsURJNrOp~NsCFFNry?7NsmdN$$-g_$%x6A$%M(2 z$&AUI$%4s}$%@IE$%e_6$&SgM$$`m{$%)CC$%V<4$&JaK$%Dz0$&1OG$%kpQL>euT zMoXm85^3<1NX!i6-RX?)=4R;N81w)V)MZhSi=H8~rl6?-r1N_qQYe$35FyxlA;`VZ zsHQ`vIYDdMLDwtemP0$i17a{}eL84y5n{d;Dh^s@fI79Fi1Yemn4N_0I7U_pI;aUe z$O#uD^4em!dSb65#-aflpa^dxUCfI;KyfHQ3sodlm_dsyi5b3-8+S4G#6W~0$pztD zh$x|Jd|@7ksD}6p-3;(%ZqV``$PK}8E#TX7!6WZTI`XmI!3)=dkOdvnR|LDJ7Mnao zDZZ<7vFJj{7@(Q49LRmZ5RYM6N6dY<2y4KqAzL2O;G0ii(xAOn;7x8|pCLj7E)LzM zj70|LJ*r^y$h~0}!(ou)_>hG`2@oSWfgB8y!0KL*1WxBdC82?hbYCvIokZW=ilh;; ziyVAm9a4D+zPJ#y7Y%gP9J)AWOr(NuTTTSsyNY5oYWWK`6f}znzD^TGAygD}BPPg3 zl*mj4AL<3VV;1SkR1Do&(5ogfB#^Er#bZ2@DtwoLg2M@m>yYje#bXJQDtwk;zYP!+ zL|DRx^eaPALWs~MpeTw#2fctV{=^W)8v3Agiy75mQP6FSD29MUaT<ax)Il1+JFwAW z10)VwHHJkPOXw97b(bcpOJO%^f?b84H;Q4hAj{AtAxBifuE9hx6+Fd@=4P-M{u?bZ z&4|YuiV&l~F2-sJ_9O?<1@Z}!Ch-0~*me}S{SZ;qjVBmq=z%LW=pB+Uoe(k9f&wCj z?^;My-Jo<y?4^$|ouG3=AjcrYL$|b{$bfPi_^fyEJ&q_+py_DHm5nIEgfC@8Rt~yJ zFunwK{UTfjyg41l1G@os#UhFz!AlfTRAb#q3o@L*ZHUN*5W4LUSuJ>fDaeC}RFj@s zLhuelm=T~v1UV`LvvGte2fc0pVHL8HBFNQ)SWHH5)*<OaUn7YjMa1oZSZst;-&oy= z+7Cdo4|F~Vk`B;yZqTzI;1+<yKrOPwqEyHgekd{+t&j|mdZ;LL(>#g>(CQ*I8$m*7 zTmHeOfW<+}(6OlpiDTCUI`tM@u%K&0N&8?Mz*{;|oCk?E_@#K*<Urf+L8}%~<iIUH zv~~;F3a|uf3l3SFxcllbt%6=9hvr4FWl$;Df!-*3!OOa^1rA293G7Iet><77w2jQ* z8{iO*0COSxnb8G7g&L9=^iDTSk@&Py&@K&_tHIZ^K~gqo-#Ms_i>3$L+H}zIEohsc zKtiB|kE9#v@-^(D=x#yW0tR0AgrW&{7Zhq#Bi+RWT0DeR2TC9#X&~-;G<ZNE97oJ; zXIQjBR#<_GZP2}9I2E8=Uxrf^sK&%=3`hZVIT%ta2Fd#n=YW)fHn3w2IaDQ(4j%kM zExb+xZI?v48w{sfkkz2W^}y%k;&B619cfo};j|Uh!~`EqjNL}iZexTDIM1UM+7L0c z19`xL=;!Z11wp&6V9o&xVLe(0ECVW)(QF3^VVs%+RgCA3D-;V+8)y*Cp#1`dXm+8k zt_LfG6xtXHLAw<&j<*48Kt0a}A_P6o2E|b*2iAa<A<nBoQHXgI4OlfssR|Z_6lZA8 zg$Sb6m{8@QwS7nfDqvAiErezSNC=V%P>V^(!br#gx}fErNZKGbJ7F{v318C$_kBL- zR7LOsA{nszn2_Z_NtyT?me6%#GZJYtA@~Lpa3dP!!X%g}DALe-k+8}Ud(#nC&EUij zt%R^$Xhe)A<dbDkT#aTpxZ#T$xhTp}+B4`f$X5tqbrjK80b$h*O6w>CG${5HeTffN zvq7l{bZ8Ouq8=1A;5%`k4NgSL23ro6BI0%(O!M$wor6%0dgdzRz8vJsO-Q`{24OIk z8)%R&y1}aswIHR+B{X>LLmMN3+*|^_Wf`swe(?!fH3d-%y1NA|fgEyhEuc1a9#Xu* zB`~8LE`=5ZaB;j>xnQ~$ZDS9@wP?EzK@zCVK9C5`i&qd9;lEu4t`2;L4XOp8J#vtX z8PI2kkYq3`C4?lQ3s7K|gLUA&<pf0~sJuc%7FaV#2;x)>2~bZB`#l?=Rw(3R0~F)Y zD|)a65J6(D8bLLSs0&0;w1Aoo@z@<q)GZ(=hT*y5165rK{8|qbaZq`i3c6nbMHISm z9TMQ+OFK}cF}FK{gOJeO8!$6Szfl9G6MQ=bC{_`7XJANS4CjG05q13q+$_w?F5ps- zdo577si5mDP((<)r2?)OehEY(=t>GqVbmfCaWw+U#1}#s(i%i$7<3u5xk(IZv{o{9 zd7OrTs$0|{BZL7UaYA=Fz`PG0_k^@Np~qQ4jvPVw3q=KF4;!jx$cQ%h9tJdtBE+Q& z2pPgxDxj)G34WwY4<MHtpsEFJ;*Q69hClQ&17vT3975zJ2WYnB7l186>j^;J2D^6v z!z!2rZf#gy4$=maK+^_3bsu)i0L*<zg4j;2haT{Nq8j5Me9+POST&<W1lT4}&%d1D zq5sI%!4K(2gbv6gxG*-037^)FW&=2HfbScCOTdodM+oGgoV|}B4(VJYxe|6*KSrAd ze!4uN^YSt5fYgdu>_81^n9XQy9k{)OPql~H3_A-NblyE?%L7>!de$^Hjo>8<2uH(o zVT21z0^jNK=;nipV2s1$(G`KJDDWUD4o4Du`a8P0kTHMgIo+5ZM2Qrb=fDLHKF2^# zF9*${!%j9ww-%xTx*`Cl?GRN2oCr|_shDt^MAWJ17_KDekaKiHh&Zquu7#*G$&pn< zM=BAgej`f~bFet7dhljWq%*{kWl1;`9Ig#~G&uBVZ&X422YkcTf`^n~2fU$*qK_Ct z4mD0jxfu~61}WCisuGA4s1tyc>cQ55#4tt;p~~}%P}eL$g;8d35MrRiv{4<6*8YJg zMK2POMKQ(+A(EgLKf1f|9CVH92+XlUh@n_YM{s~(wCEwqAz2RH6%bLZfeq~gpz8n) z4`LI;He`s{{SEh0erXYCLvl(AcpM4IAgBa^qoL8v0hO~T2SH<#C;DJ#ESiyr)S#nt zAUkoM*o#^ML;Qp?GXpgQ67Cq@hX{kFs6Z2wC^wp;IS!!`%V-|d5>O)paZECr0mzb| z-amL{1crkks)#++7|jZ_Sw8SdB$&q)!!;q!6-IIfLJ*R`KvN`0Gd++)dr{5=hMsGT zYAlKhv@?FeRzTKrfIAZCwxcPB95YM$nZIxcK@1?}9A7l8h|_#=9^?u?2pIE>R`At# zuv2nDtr;Z$LYxMZ1kE+V57<R_1N4Mms2ZFOK~+Y;HPGW}A%_U#un?+-kcCiXm=@wW zl@?(mzSC!sRpB^e7Fh}WU|AGF(BX;5;g09HSR{SuXAu%}5G<;8q-hV(<R#>+S0p8{ z^IegIKuH8u8|V;8j9MOY2qZ)}9{&-oNQQ%rDh3^ch!PqgVaVC1Alq?BVN}ErCqVQ; zBnh9Hislx42cn`WO~rHIDVkD<V=%k{5ylc&Pzms9E@(!fRxl7BW7ha6;#e$z>L7Hy zD4N~S(?Bu&0ToZgkU*Tgf@Tu(8I{E)MX1L;LIqIM9F8+Sk<7(&k|(k%+(&jIsRAX) z#2gg=6k|V&6G;=Yr=aIHCPNS2gsFlGW36nUa-fPI+liWJMxX{6R4*~7VWOD>)`I7l zOEl%6_5fz%2WmYTr&Pj?C+_S?bmh>74oao~t*Rw_fF!a>_>PD~Rfp#gNVvix%wr$1 z$$`4%hy;dwEF^)G8xe*PJe3heDWp(AwlXy}9@1M!6GRP8(DDhqrzxV?Lg2haxLU{| zhZrL=#2kJIGouuG4jl4fhv;(P6Xrmhs6gkdp-U1ztPoQN;bRCf^?)6L2xFMLGm8nG zC5UMh+5j8EC_+a9Vj6|xkh{!c94Fdk785$h58V!o1tBo!5<ZO&(<mISBIaB@WW!KT zwL?2U54S?x$KS#AkbJrwicV0k5^{_kiZJBBInWAh=vi|}$p~a2R1~BDq7+>oaRMER zxp<D4LseH&gwhHDE&Ku9QjPD>I1~fGt3<(v#KDA#I0g=;6tXf8Qd>gD&Jg~CND_0D z8>(@jC8Xd})=-5(9T}{`gpOc?8Us2n4Ll%+IB^Y0hUk;jkoBOPkQSc~-7E@iVncR% z!UQ4BWEc-p)PssW@PW9H9h=}%9i{@-07NwfI;a30_JXNJ7KKjs!K6UV0nk()=(s$H zEg&9rVlO=&wj(q>9x-2=9*?pM6v53c2A`@8l7;X5Opi}O-t(CrkF-M)5)L4nkpyAk zfFuO<H<Ad{^JrR;y@^K(9s)=PA_oJqFk%m9dOT!{CA`9e2|%I>WFJHU%8pH#BB&Q2 zDj@De=m1Z4AhsZ+$Ai|o6hZckfK@@ZQfB7o#e>H9GfPr)!KnhY8Xvkp5~2gE3`8^d zOkgApuwX_Kg1Hf*0c0D*p|D+->7c$?St{g6?c{vOW=crbhK{<xRX|315PK}s!7KE^ zgPUNNf_w#9z6KV7&Pt$&p=?n^(v5X5C8|6qDnVvL7i}X;=0VQo2g!m}rNR%$h6$m$ z1*8g#Q=r1o;6d6a39$?+4WdBiB0B`K2@<r$5b9ls0C>L?I8MP^7eTQM+6;vdK@K&f zJ&<7gQlT@hP!6ab0&j*x<s)_rqKbp}2ZHT~y9i_gY;zZqVx*mmSPesx2OA3V0g9QJ zwjk|O#A+mxJa!}D+sTmJiDEC7U5ikqpbd$M#U&tnQ5^=7NKGt=M==MQIl$2anvn+Y zPK25S;-iHZB<?HW-UstRdl8{pKzuA(P#pqN1YK2!qz%+NLNOP`orrygFfFisf+&d& zzIzaCBO;x_#X*K5gdwXhVEYN7CW9LWaF>92kUfOR^6|(41yO_MZ-^k+9cYH3M=nGq z$Yo%K;PGzQ{=oG36bK)(w*$<D><mkX6r|AIfG{4c{DYKV@Ew3KX=rpqWI^!@-}RRc zxuF>%lU9_U3o<@0ALJs;oqkZopbQ0Go($gO2NeXhVj#QwpaPJ6eGm@F>5v68p!OQf zaIh%6O`Z<V_h9p3`}fkpyO@(<JNKYm=+-=N`v_GCmYzU{Aol4&)WBynAzY-rc@Tk; z+yYRzgWLzw4xY#WIT9)W-iZgg?YKAty3Y=&_5?)~R1~Sy#T13_yF)Pu6n|CVN)1T| zqAErbgmsWnv_k}u_Sd1vLSrAv5J*uE@)nXHsHKD^1ldQI9uM9l1zyYwRsh-y2dZh| zd*`4kkb?uH2Fi!d=0O#K=11YCfH>gF6jcN?=7cGNt`M}&5}b(;O2IR!P>aB;#-VIT zP{Q}Wp^AcL5J5ZNprYVf99~0#y$%+FELBBTl$i(F=Y}Z;+ogsq1Kq#|cP!XYs34kp z@ahOuuOYP&!A=5C;z5mv&TFN|gEy*yEC4fLJJz7$@t`aUmW1z8OOFR{L<3dOko{>; z0Z94)P5Xgre7GLu(XDjwnkVRPGzbTjmcVLJcA%xlXCm?8tp}tnQP5pyV1=mr%}|6u z9U`dlFjde%Kr#!my9`Aic;6T(KZ7=IVah;r2a*|x;6!XbgLLk&ngWqR**}J23q&4N z>S8zmAqDMCg6k+Gryvx7<{8m^k17diq{8=!;cx<Ik_Bmp7#39^i;(t);Z}jRD-4^$ ze9)dpEE1rm0CXo9sw`v=Sb97-Z@>#22oJjN3n~d)zX9ih_Ig1%C@VIgVxW=+6n<c{ zKpglQ4Y&gEo-P;<wp0Vghn6f5?Vuq@L%3=1?kQLjQq&+xqU_g#8V6Z`0pmdTXhFH) z-B}1Wywn4mj#y*?Re@A4fE7TpF5G$u7hVEGl|Xl1L5%>Fe{c;T4kRhTvOeZMt8~yE zr-?bKpiv%Jg$~|Z1(HaQhweK<tSW*CL!AQO`~(pNB?Z)-R0#33#FE6E_}s+eY_Rk4 z)8j#^Q4IiJ$OhgP18$O_?3hZAN0ET;l|mDRx)x*uit3ci;)2AIWbkb(C=%er11$=% z?TkV*A5A%E0SA5+;ARIb@KJ1r)@bNr;FT-TJw#|mBkg@clPO5eO98JxMi(ziEdcL# zLKBDXbV3t_#wlnM6Gi}n;tC{z>N4==C1}F{t_3WJyrT(f4OkpnK!be^7J%$xLRL~# z3cj=tvQr6SDrgUr0fY(Obp&bQ!h8164MdRX<@l0R$o1<`QE)E>G&}$jk4M^}1hNxs z8mbCV>kY{&R7p^sft+ix+5z_?7SqATfsF_6_yO-hN{<Ka#evK$!;48YA&Bq6dO&-T zKrI?bD8Yr0qX8}m_Y7PFvcCw~N|<xuN}$sK$ZDXwi6BC-wiC#S@Et^8Dew{k5DR73 zP<niBc5z86<nmm|(iWHz;GG@G8JRgLpjASk6Xeq4k;IUL8X=6bF9@a{yw(rOf$jx@ z^WZ}%U^75@7!(6=4rC(=k`SmZ3g1ElH3by&klj8|0YudRHVDFn?eIZSgVa)mC`I1Y z162vCL(tp-7D9Ih@*W<j);x$l@J1TA5Xd5M`vb&)oTLYnL+sUoiXhcGVAasId6>o` zcIH5J!uI5($HRBsz>5~RNO4JGa&~-4QDQQ<PXx{Z@!$pnXsjPvY=O7YfWjDgEEg^a z-*uB74;Dk&ZvzzrO*+KGVhE+(6Q5h04vJlPx&|}A`)blb_bBF-VBb*#lFTniOb1=8 z4lZ%PhM?}ENsmWtJAq|3ga|ZiAp{^rEUGyWG5E+Yx?)7ez%GMDBdD;3bpR2XKqBzL z^Fqv~0k}AYbnMY~!lXk^2ZG5#_Q1ddA>%L5XoQ$iQiRy|0#XLrXaWly$R?4@;`r3u zf)el`6hs6XR1gkm`Z^x6zXhfrECkvH0t!5+D)^ojxFV<syorQRh^ZAMg02v>*96U8 zm=HFlAS00615yeSf-41W?TCl%QAr2w?MQ)gLF{yJegLb1g$|el-jM=T4LTB}C@~L7 zDKwzKDnb2_a>V`<s2*_igSUS`1mK%XKu!hegA1U#0=CZtt_#ER{9JIOtr%uFY*z_r ze?97c5+o5w10HNQY$pd&T?OC80oy%-q!Zp2hbw}VvM6T3!UJYDICG<@fb9=SkB9AA z0PX+C$;<<XKe8BdeS<6x-DrVo0C;KyWD!gylCNMw;JqIRZSYbACJ%~tjQt)6^`HU~ zJbZxR0OUO$2=x$AP(ugVUC;p~*!~NIa%j-O90Sf`*sX(XtN;xyV44DvgN~EIcU>TC zfym=@1VkEI2x2iEv0DSl$dbg8_}qNRRe&((gI3Z)20&qx)d&rsu`j68Ame(-;e)a( z1EB}B$pNeku@eK*X933|a)$_%;h=qfbYY}XN{}jW;>1(~p4vs)YXPwb<N(lGMWjAb zF?bgRqzX+eN(c9sAY#y+73uL1E__c#dOT!>KD=QG<-$AQ5I&*@4&y_*;1C`p3&V>w zh#;&Th2SCe!l8nQjyF^Q+Ve*6K>H$KZiMG|h%_RzBlF?AAYi&c?IdtKf&0U-oewZs zXa^i(0%ErVOd2J}gAG7x4M8+Pk|x3i2p=slplv3EDp383%0umlBX%#O$3y#{pzH<e zV}Z3nR`(}DcPzlwAeS)^C7?0_WtRe6Em#J&KLJ$~I^+%;UxzvXqyf^UMG`<P$b%aJ zD>onxfR5WiwLn4#$qNtx(C{N@AQ)xW0o*`@8kGJr)JRaqLF_buYeE(VHIl${EJzkZ z<dJq4py<TnE%;C&j=cow@sJGx&^-VsTu9`Cnw{WQH$)-Iz5p~`C~}~p3+!^t-2yOM z;7TB?=po%GP=rBPuq(ZxEjQTuf9N0snrLxq3D`D>QHTZqkfrgUd)^_-_~GmP;p^eC z$iWuDBc!0K@<DYQvNcd)(8w=*-9LsVs4Nx>QMKc=6}mJZ-78StP+8o@Llqz!4`0&{ zaxAEjhTP;1x+N2IRVu`bMahZ9smYKoE=UHlb|0)GIinQZ{QwEW*Xu)M@*ykr!JL%T zoXlLvB7owOBFIv4hy-ZqFN_84uRtvYEzvIn*D2uDEg*fR1&~UiqzGJ1K@~!VMxY!} z#K07R>KDXX7s%H4c!&UKWjEMbgc`__ZiFCoZ9QB7GKK*%A8HjyD?|{fFo&!kM-~PR z&lE$`B&c^050QkGGY}0(K>{)sK3f5GG<3y0+%0IXz_1@8fZ|E05O_@*+#FO#AlD8M zXF)|!41$TFnuO8;gSr~Jx*aLFpd#SQtf7h!E8XF)f~N_{Qf;s}hzW~V$clEba1QiJ z*5Z;P#42{MOdfQ+1|$PnxegXauFFb_V5`-^QqXnkV0KA<3e?#U$3WL<!&arI$3q3c z=@8O`1gVFLf+_=SE79TFK)yjz4_-<Ri&Ll>U@>U?APYfOoWo5jPR#*l52zAQy?|W$ zLxnNdm%|Jwj!(}oi3bf?WhUl;R$YOeg}kObJswn(=9iX$7eT>h-(X_UY7FMk%-mF@ z732`DMe(UQi3P=wiA#_^=&Es;EPVV8A_rY54wEe|$p>GRjJ(b}BQ-NU1DvIhML|t` zu<Mc5k%L!+gRYuKEG>rzAZTs`smW0S;v<`!ni>zuG!R3P)_j8uOihK2Jb^XB)_Fsv zAeBB`BW!IqR2F%x3A%0@*&&b>-tYz^>V@@)8?=#EZzDv(OQt~!7(wf{5yJ2l+o(d| zTjY_2psTczh2S^BqX<GSen%F9uE|Cg%E`yL*&SS>g8~M&q&c$~x&j+nBe<1<stUU5 z8d()|Wizr6WTiE-2;@d^WV4V~a=;t`UssLLS(1-oV@W=SjgVE;2wf1{P{SYZ%4vvJ zR3(Tt)9LZBE5g&`K@(Vz8@<8(Sjd`ZWMQN$vZ2DDHWZ3FNbeCe9R^+h3=S6@>!G2B zU>XY=j)ZFjRsE<JY(r}XuzNwpFSLvX^Fd*cd_gvN?ErX{Gs-pBu=}RLGw#sEGmu$i zNQn#Wk%Aln5k^|g4AYBr|1?Ypw6FlhG*FWaO#r@XIUTex8RN=maCa85QW>lWZH+QS z4E0WDs90V;;-=_&keIHao^iZisE<#4h)1ZOcf5;Zh$90`LN6sJ2Xw!)rMbDeg@KuY zu>vYEfO5?Y&7iCVE+0lFhU)$9RxOMS3>*v$3=bF>7`Yi)c^L2k0R{#JCI$u;d}_dQ z0t^fwwIBjaL%CqNfg|)XL9>u5MlctMFfcH<FfuSiFhWF_85kHG7z_?T)tNy=85sB& z7#PZs)Pcku7!(eGXmkt;K#)1?U<pu2v4cW^ft7)QfgL5r7#JKtYmW3XQ@+XzGyMP0 zzyQ*R2wjk)m>8gLF>+vFH~<pKfQf)z$HV~A1yy4LQUkIUuErE00uomQ5l{@$$-rO* z<$)+Bh7bk@GH+s{UK%wtF-1zFjNmjH07-TrM>0bFY7F9lFenafKnx@dibEtWoJmZ0 z%YwrIoYOpg1N?(R;$2*Wor63BLi~dmxJb=$hUO+nzJcVp98BMs!kh?7FDWn%lm__* z>T46I5I6^Bz&KDEqz=j?DrLzrFfdRr-b{^*kbKGlj<;_N3=E+Bz`(%3s0SXAg}IM` zfsKKIVG9ET!!D>0C~YeUC?r6AiV`A67#J8%AgOZ@fag(^5V^#_z;F$_I&f|QNr^$q zIuH|%9Rw5({8t5WLAe6tG7tvw85lUh`4+-P@L=0BpuI%!CJ)Tih3sdL|Ckv;=7Lxd z^I$A42$zA8L4g6D<G~>Sat|{jC{@7Jf^L<CC<lpxSRgfUUEuHll_RLSn84)^G;G0P z0n*LP2nr3586XT%17gX82q<P^0Oc;cH?3jhlXzG*K`HNusi8~_EHP5ihe4Q%K$Y49 zXb8b5Qd1El11uGRyL4Fc?BGv7pm2csACZ0}U_#)M4wR75(hu0fc<=lpxuhLQ<qs1) z<v==~pl(F*kW4>hmOsee#+!^_1rf0=WK#p=7BZw3dp8KnA5e>w((;EHo{B)DGDETU z0)+yss6muI;xHj_=>w_|(MlhXcd46djF8)`kW}+y5T+VXxlC!QVS%R_*Z?oM@iQb# zA5eI}5(^^zD8Pik>Bkn_AIQuth==bFM)5e_ghWOyHgZxDD?BAZMnOUIm#G!ldc}jk z9YkhILh(42Q<5=q&l6H6{TYO1k_;94V{BMc5@b=}P^{NLVFD|J5aklMg9;U9VsOGN zmylBv#PfKQ6v=HPLvxJ2*_T0>qCg`;l-6?W@Dv4_DFaPf4$X226c*4V!+=OhsOifR zGbO=2jW+?2Ub`7ujF=R}fk;81=~D0{;7}}!u%{r<C@CUcfku(h+Ss5h16^nxPu1}u zLyQ#kW)PM^pixgs%OFlr3Mxsh$SfI}We+F}5NQN7{{iBmrYA#`vIpW>DwjD1m@Vqz z+N0-UKspC#NcPCE_vleai9l07@X`jcRR&)%Lq<&nn==K?ltNn1!*v{*8<c7?OX5Kb zgL8`0hGe?IJ`ODjDsZ5fi2*e2fk-z<9>!bXklsojIVpz+Ddm6;7aNN08?sXl$it&4 z2b#M`o%`a2rX1KgbR#C^z&t#fa>z_Me4vzrbY$VkNI6Izrf$j^L8~_SK`E!QBo*b9 z&mq~`L2VDidRBN=Z6F<)30bj%f0-BQZJv=ct|Ne&ioh!whGH3n+7E}NAw1(cNNEV{ zY3i0kBWP?{5H$sXW}}B>DTF-*;Tc;-N<kn`<4r)M_t;0!9J~-}3WCl@56w|Rl4nkl zQW4DKR8C1FXy#NHH6<a>AP&hg3AOZr)oOTVPLWa*is$hrDU#bqC~Mjwqlrw6gKurL z5*6m+MR2Dm$ei?$Ojn?gfp%Dt=25j^Lg1A`?#Oc)IMNj)2=FE@GHO1|HH*V_^_eJY z>VnTx55*QZ_L>iMkB%LVGzIrK-lRlwIc0>o`u^7-oL!ZoLOCUdmXhF;^h2_I0)+^y zFhZ>JKrOZGait}=*YPGM(#s`7%oS*#24QLvqC#pCXMo)#0^6WH6iXyfNMNQSX_yeW zma{-kMUeYaU|z<Xd`K>f3}L%i5i_vEHT6iqQx9Zg!_e%>VNX4%C6hU3>VbM0Z{i`n z>={Ah+LG|pgM78oP%M8)9@mDHKgiz3n~X><gGSJ9ASrk%0*%cL#ngj+?GT>bK#<e} z@-B5#%?PTwq~WOsGI}ziYA&dk@g^QJYOayfo0oy79`HG`@GJI)V(CM2Zyr+mpn4o{ zQX;wbG8{Q8(PTj>DJL}%b}QphOhF{CL<3!b0P`?)Q_ct)2a*G&9K@BHpz~)T*L04I zaUjqMM9@1*5njiem`JbDj4^xi!*wU3JZfr!<j^6Up0LlSsi2GqIimFG5m^b@^Hfez zMkA+<q=1&9AmN)jBugjK+ei@Kg6=wo7F4ODE7xF|kJL5Sil`|GyohTkwv({0JHoSa z4VrX7sR-<8yoC|zt?ZGrD_RLP1%XCRhGaQ}Jq4lGbtt={kx~%I(|8jQ8SNv?d9vZ! zK2k<aL68v?=mqveu`EJOGeoR6LP|*}p2wS{NG_8MFwbHfuDhgFz$q%PEVZa)NR~y| zcS(!FDtYjnE9k&l_|C=Te28bMn_@;#i&_<tVnBDp=NCcG<sXXW4;d|LaOy$vICWE! zG3Kb_a9u;BhLn=PSJ0&;=Hw(LCT9=Hk_dIC9#)qrqm)DrsC|7%T0-?YbyL#_+83hE zkPf~Y8+-#7c<^Ls&Zd#vx&|G}j^t^)35fL8wGrltF~jv-Y7OKR1ig%KXr>|TD?vaf zmcxo8CI)NdvIw4rVBV&7DjGQ}V>OXeQD#a!=yDKH@D9zCguPb7voaRsRd8v9>~$)q zrV+FsL<=o7L3_P<`SE%AC7EfJLo-#OrXN^a3D15I<Wz+b1XNC4#+bXY{|&-**Pzmz z(lgSu(NY&^Uj!(q<H7fj4aFWEC{z%294uw2!-T-&0WMf;zRVQx#ncGz<4sm1k136y z)%-drsVXmXXpSslUyqGvH9sijKx#gam#Lh3Fw3OjdUmWXH1&YXqSWG&qWsDsIUaz$ zABSh24U~S6Jw2L&prtmcGqrk1DG1h|8H#lo*(nI-Y3in+5j4iFkCcLt`!Pc?6_Gr~ z4J(I`Jx<+}WP&-r#xMx?^Mh`(ptOZ;fSQsp`YuB;MS;QvS~Mf==GTM?f!o+_=xuCJ z&6b%Gj}ZXWO<Bg6t4W4y-^~y;Wr4yMlyf0nw;|bL!rpgNLrGW8IMNlW_wgnw(#OC@ zP~Xi6lB!a{w~(hKRu0X3(a7n$A$b{Z@*%zFKXUqR#>lBBH$Sf=V`!!ya$4Sy^aJ%Y zl~WLAtu|bH|0c*Os4_LNsCa0OaAQwFsO#NO)<~u#f{s>ANr{Je8gBw3y#^aW_rjXO zQqT}y1Au)m8){Du<z85D>VbHe$|+|A?Z!5Pr=0xUg2bZKp;_`^Z~LIm<D#4+0!cei zFH<@7jGz-B%weeqyh&mx_UlPL0Ro(Iz~051Y)Ef0WA1nyu4flnz)}rlnaB{G&nK_U zfq5Bk;vv1QGlF(sTcV|&`1~|*`*CR2T&Q&vZ0;U)tq95~eBkm2nu_3Fr*di<LA$T5 z&{9)zd}dxexI;TM(-UfM3znYn?7l`$Pe`7pa*7&3w|H73r>LyboXo_$AvrRQy*H14 zE<Y8#@-qwKX}n2@<o3}BTK{N+oPu)m^HLHk<I7W1v*E@4kW5dgbsDT>!oU786`Y>1 z1p(f~MSA<m1oL!=;d<J-EsoR$F8o0Qal<HeX`{@ed7#asVWciZ5a3N-B$r(yXh)JA zTIwpv7@F-U?6n_i>k4x$8`Lg`G#>FLATr7)%o~Y^Yx!i4oPvr=M||yvEeNQcx<*dz z=YS)1A&UN?IEsnAZADD&hm^VyL4Y@TkzD(Ypxu;?$f*m|WKT&PqNAJS?52dYr(oX3 zn}|rS0Y}h!Bq!ulG-O-k*vH55?<IkxAh4J5CLfZ^pb<2p=?qIfnZ@yGnMK7VpkV_@ zqjX62>`>d>uyF%IBbu0=$D5!?FONphnI$erDJmxsIYAA@wi5Ok7d&T{fJewPi{nwf zjyE}xTt1DUyGLA+Q&VbU0c7%SD5fOrZ6rK*YQs|!+}qSmMFyCo1n&mnE^g483rhEx zxWQ5p=y1g$S+9XY0X95|xPJ{bO&Md1Sc1HZH_?z@lZ~L&Zth5_CO##1i1y8}x2#d? zHO$p+d8y@KFH<}9jGUGJ9>}RD3o^+$6zeVQW7~vgc0uU}>S?@5h~&1<2r7R(VJQf* zb!$YGKQJ%jO+2Hu7qm&h$-uzC4rMbiKzLp#sb^%>Uf|S|TZ#WDe=<_f$f>=&ky8(} zARjrk7byKeJ&m^jBE9w+Is4RnkW<hQ9#O>J{y`mQ#GKm)r67o>@g^WL%Ak>xf_#xv zP(fl*@eti_M1Bf_c$(TN2=g|G;ktLk4><*uWabXdTaB>y;0eu*fl45-m+>Ya(rd7h zlY0D-QxABWaVWNc$WJ|BFOQ}kXupcoGu8s&si&kU4V)22Q0jqsnYyXR2y@2b#~_@s z0PRAjbjBhOo_b1?N{SMbOX9&t%?!!83s87KGZE5hSg2=Y*<#FH6r*??Z$cuy6+MD> zKn7u?ByhiEh@KjPI&T46-+{WK5pxG5JS{=JPVLl$xgvJBmP^4HsR`6d7@B7oVK0{y zVMP`Als-G$<r2i>c#{&zt?LoAvLghRl1lR9i%W`1lS|@Da))I7hB^xmE0YMV>_G80 zbyLv@I?E^&mWs*}b23wg=I$Z#&N6~{7;nNMy<Ied_MU~Iq#RK5dT6E|@<tcIsR!)o z(G&!$@Ja3AhohySp*qJ(Q3|5|Eb9nr14W>wAn26iP#h;BuMGq#g`nQXTM&`nk{&s? z@<pPiB5)sfXx3%eQxWQ^*XXzMrN%>25yabg6A|g{p%FCV7=@aOU>oy>WRDDc&z{hT zBP1QcJWl15G=k1FibhRIpmCBRnToKtiwLcJg`^^|r|~8sl54aPwDL6ul!7vgQj<&K zQwvKIbB1PZhJEH0bp#uA<vp^O@g^S9YcfO3Thl)b!nrfhSO}$aXR(OXlaW}QF(k_# zP&mN)rHK7Lk}x6g*t8kS*fb>VfIW;i>5yFR7+~H-^kxvI93BP+21-*-93<uBB@WS* zLZC2!B@slb5rqkXQ;iW?ssVeJ$|(l(F6-f1*2FWU$EOw*<rl>#=NAmo9U9on8q_v4 z%31nI9>$w+NUx<v(9A^wJmrAT2OmbY6v31O_Ar%G&Img3B@v!-auZ9EGg61<>^t_> zF`iYekWvTcWxUCU^fnIW3Xb8r7d{D|dO*9whvHZ>_Py}pD6Je5<W>$O<$%0P-BdGz zW-5}AQ%!tMW=U#MV$P7Pv#^gb<5{f%Pd#vNQ#TcjptFHe7}Dd@GILU)P3E+s{9F(- zFMmj;B-D`{*t#D)X9HpPI(1Xi2s%G86*V;#mL?Wu56zK6>}3+3c`u}t1o1ZBL_~T& zYy{P8X|PlTI*vIxKd&S;uViSpsIjLaJT)6Q6`^<=Z!#jeRXu|GWa+R}lwXjV7hjTF zFeGa<lKW)f6a@D&byLp>x*0D6mU>E3i%W)N$|1Q=22MF(?@~9_jGz@8nb1@N8o`eT zx1~!<(kzB%3kY@05Z0E)vtk33e$YIQHzASH1{ygl$g+@AQb~UN&`n3!+du?b(%^Ii z^EP!;k%=Ydc^$6?;p{0F6=qMfL8+)HmF!bG;?v{7GXtQ3JVpiu1||l*%#_5EL>18F z69W?i0|PT73j+fKBS--l!&o3ukN`*xTo-5vkbxOP7i3-(YBFdFodKkqnGqBMATvN1 zq6Wl5Z4v1sk1B%QO5N0AI)YYd<S?Xz@9Rp=0G;eIG+RB`XHM~~(g1h1pdQAXbV%=O zjhyv8xv-RzpORXfI+9Wj)WcLxIV0y(yF6IRDJ?2W%`1sd$t)U@y)BYgrh>~IBu`T} z1&yFF=X|sj1U}ehNTwl@Tgu332<&aViHP+6)(BePTmVf)8Tq-X;6i9frXbX|F|5yy zIxB{<z8RE);9jP7>KQrhpF(KrDJV(@^<0N!+99ju4D&GFq(gekdE}gER|HKtMX8B7 z@k2K4U@v#@tQ-TCI|wgRIrWU3a;F%YdP;H&z?IfeTsuZqxdZbsl~c~hDR)YsDW|kJ zwP=KuI|wgRH}x1`&Q1*1T{)$Y)RUT5HZ<q9u<y!2?ZX=)k1VIBmVi8qH^GqJzZyX^ zqh$=~@t~b>@g<2#IjQj}sl_El`9pMf4#_j4SUf(Ol0b7gAWZ5RKjo+?DJ{P!H8DA3 zXqH2iq$HTfshpCGF~^?&4Z_(`(EKr_drK>@rlk0y)ZF~Cp?NMnC{#ds3WO0ers^Or z6f-fnAlGY1B@;9~!Mu+*S&`hMA3>{EE74L_QEF<{&`eF($D{GAUPVq#5O0sBB51xN zwU(<wO+}e`#i>O@b6%B_R0Q?*XeuHz6;-3AqMZEv?9!pR4w{lw1obv`Q;`W~Zy&S_ z3fi+|)GJA?D1pWrh+<=4VA#UIz_1I%fv%WR5Ku^fu6hEmrvgcVRz4kJU|=`_;y~3o z2pAlIsspc}0!e|?U1DHhxCY{2sspd00!e|^Yf{=ys==0u;!`V1Qu9($hv*5vpl|_& z4+tY#N*W+86f-fn;%F&B(i0*8@FpzMM+HXEiNCd|DGRh8cu3Bjp^hBE=3VjJNQcx? z0(qLsDQE<>w(C$+&=BssQBuP}y^S{+k=$n+LFXgZqo$(b%puxi!(I;IIUf<J90GfK zGzCFxe^UEv4X7!oBqOnW7}aFNr691UshfgE(CJf+pcIs!pB<l=larr3G{>{C&*h_z za)Y`$@$s3t1@ZCe@fipY<4riEx1vYT3fLxC%1O@8El4a%jn7OOqIZd5Zv&x@YNMPs z4o*MF-llRY8bK>yn_;PFNYBk;Ux|ii1uQrP!Msf6)H8zmVJ&E>Cq5@LFMCL~fUuWA z_+~vobr>`SLA;GO8Ijx%8$qWow8BzRT4r9#kW4)!pSl1pf56_QZmJnUqlj(DsU{w@ zKY3`jp0W4d@r@#aN*++!fp{8k0wTQyJ%UnDJ4y;lE6p3C{Vxhq5ZKdHPC-VPXSfd6 zTX;J#QV=9h4#gGusQq==YzCfNc;R(eJSY`GJdQUhk=zCvLB07-L`o_uE`eO7H8krp z>@8_Rz4^3Egtze~BGPNL5!90If~O+T@h?NM6e6=F4e~DDWJ7Y<V_>QP0SR0_j4TY* z``xXE>q+F@uvC+tS~4`t9PFtEwInh|S=Rw-Lxa4FH_?z@){LON9X+sA16i&YpOgw( zOFT5w5B9bX>S`fdjP!%*@zIn7okV3Ibr!W3EhQD_7nKav6=oErB&f%!oRUV+ijF>5 zO3KMBE{RXhNlhFf=L&)QVo09Gn}kSi3yq*Lp?;JUl$n<~L|a7UjR}EM5ZKdr6A&5g zBFuHu-v;6SGEj?=(sk1l&{9xYem2=Bae``8*m;=rKZz3*8Xy;dFk-bdp`JW64S~H) z<y2&B4C#_7Ao^r~24N}!jonk4iY8)7Me)fQsmVk1W(`o7fYK2NBhr!zhzrF`42~Er zY^1aV^*ohR)CiiZpM;X4aubV+Ge*kIQHa(N%-eXA5y|Z%W6Tp|hHJSr8CxoX=FOov z-iW<iQiYaDAc~2>346H&O-oSEQ#VD8pg!9aSc=L^t$<B@48@d$y~T}h4K-*C63Nq4 zPC=M$rB8#ftpr-RM`>GWDl7#R6r~oV<_*!kiJ*`Gl{X-aXdw|=!wB;--o!(Ce{BTK zeoTX<o}$#Wp*ea@-s}g+yVOoKBj>*P>9AB&ng<HVA-QUiynP!G4^ubgm{?+-KQvr# zXPLo}9-o<<pI1g^nu&*L2k-wM9JjLwgDNd3W@0cvZZAW;iZ{8C+}|2Ox3kQIrIz^Q zoc!XUd7=>Zat6=sEZ{T)^)Pi)&IsCBI18R~K=(op&6W-Jl!H3Qin6m1l5)Tv#+z_P zTg1@Pnv;QnfgQ?bV1V#ugHldPPHKE&$`I{Kk=!EAgn5_Bsb&P7Ej<S*)x@Wj=H!ss zz5yl1ft&Nf-V4Wbradg>K)j4M`H<Ys89^)Q=fYAC<WQ6Nq)Nzw@}W2qh+01pv63E~ zhR{4t-IO$f#*^p4Qc`h#X;E@&Jm{pQp_qzD9#00RA|y{!HwBHLRrK>gDJZWbKDDrP zh|Z8=Z~uscs#YjwVgMZ~2tSb{6YgCqr<#$oihcn!)qoCH8k)T=?5PHI6%fiQdQhqX zdlzq_A-%6Pg3jMq2ud~ipq^HId1A>>J<%R}s~OMSRVK2RshoO7(3+k_XsHL%2^os5 z9n?|=)@H_Y{swXif_NKmG9tb2HF8$0E{3F{<c!3;ywn`%xa*MYy<<;Bcvh@t=EtLY z8*d^aqb9?g*ZMLDS7Ctq8kDZWSc000z^llIVo3xF3uq&m0kIAP&pIBYGz9iE-XuhF zIW&TL?n_ZqP*G~)&^!%@k`x5?G?i13ImW8_;aUbQLr+0NbVU#L6ok4~)e>cv9Z`>g zmZRWJK%=!7w0MWic0oDNxv%A@DX2I#b!eVvhdl)mSBrr?jW-FAT#JpMojWT~Q&4GM zW<@;c;^VX-I+u!C>cDztcy{g}wTF;Bk2gV)UM7v8xv`a4Qq)kL)gXOt3{kUzQxnMJ zc#{&zWzz^cWoi|AN&+<&MqE#y7AsgyN6;Ry)u^ecJTuSO2v)@n#U4NQ8V=7MFr*p| z#q-oHmrO9{&X^b(7zW#2V@eDR43v%?t-+R}auc&t;|ub0a)xTl2^2E0-UVVLNed># zz`(%7;Etmg2T51RL4Y@Lk=}k9LFLt2Y^f_RwLCs;XpS#YUS2^xk2gt?+>SEAJok0D zmRIX=rKsH0;^M^g)Z!u8rovucX`_@^9(c<uP`ZK#0d-T?2)dzsJ+9PMkXbM^cYvVI zz`@24@Z3<2(ZT|yEU@>fo2tw(+gLn<u#Kfdg*Mg(e5oqFJhLPtzC1BIwX|S}-Xa7F zBUn*|Xl;R3xgkUY36@@<G=>@&coQ7y?JiTy*%*#NnBqWp;!@hG--s*46_*sHCg#Q$ z=O<?m)e~ny;e$w5uo4Zl^AREHOE9&e1_YH;nhEA^Y?eWo(m*50l%}*z*isreD}&}! z6O(d==m~6~utB6JSSmv;={)hKGSonzatbpu!kAg+8iXkf)Z?Z!g>A-@!U{`Mi%Z~@ z=TIC01BDP~Is>isMTiCvlg?0s0&j97xqoSFfRWmM4Z^ilpjEGwrnW6uQ(OKJ-BSk& z5kxwIm14>;A@Deu1OC(n@;Y@>lL_YfPKH5Pc7e_yr!+Nf#g>|iQ%mAgQj<#4hvr@d zP`JPn5Tdn@+A4F!o2C!}fHz^0-ohV2^NHKgQdUuB$q;R6QL=Kl9PDi>r=k&bQpI+L z^my<|uOsOWY$Oj;IpvI?({XmdQ%(W+;J=~R_Qrn337*q&ASnmpVZ2F)<QDb_N;x}W zDJMBUFFCPfNY2-gmvW#Urf$j^LA%3uAyQ63<&aD_*!TJ3*&Plpagy^3DjBGoYDQ2? zc{eQ8q@?DgmZU;%3?GuIhvb$rIQ1ZV8*d^ay}vbr%AP&2R0O*Ic}S)n^2#2tckw10 zlG{2XsO;H`oND5eON&eLbBE@r4|!z|DD}X+jW-dIQTAZYv3(eXW743OBBi5<`w*$9 zsCbCpiUkS>%uz$sJqal1NrLMx@ZH4tn?9tcoDp=!$$ogs$uCMx95H8{K++D>%hWD+ zFxOfR*V~B?z*7(ClINi~!b4`82jpG6$%f=M&j=ddIf$HU;thvnTN!(8MQCI&ttd4$ z-VlFvMRLj+L9-EuU@0dvFD12NXttBFryN4<9EgYU7CB_Jb1+wJ4A&O&VMNL)PAwWq zW6F@5(5YPJ7-6o>{xJyqR-jx(Y2WGyYRZX+UIacQYb{WCVD_<4*K61!ugn0qlOZVx z=5Z>QK_h5{@F*-L<s=pl%@T;b)-u?;c#{puZJrU-T0RC(HK}>&B^g7q+`-=FA=FyV zfq0m@DQ5)To_8FUa`H+thGttCdwGL8(hOP&4L>UzTwj5_i#O4b(Ne~|MR>U0*m(je z)ePNx9<ZN!jOVTpSjvHT8E^6-y|x-Tspljt^%Ue6XO?8<=MBmFioDbV_cE1J&&atg z_!K<#jHug!!DSDPZVMhkE#=d&)C0M$XGoSj<h7Kc9;R-&GlEuOoIy=FBW?v4B>h0V zjW-dI(Q+O+wbxlhDk@7YDjuS{ZLqg}Q1=O%V~i0Nr9!++<<v8RMhDNqQV(c=c}Uh> z*n8`Q)-Hp+i#OSj+}|2O=g*!;PBoCjQBo315{G2^!9F{o2%E3~??tx5D0x8X2g&19 zPDz+Mk-rVXc`ne17^U-E7eFZ~KRGccH9oB<KR3R#B+X)Ijv9hO1D0qI`;Sr2xw1w{ zN9f+hn~2D017V&kG+b|axQIwaCHX@*4Pif{AN6!clv^HhAZZBZY3imR6HCky#216G z9O9tDS!kEQDJY%H8Z16NJ|{mNlKUAM6d0Ho^fEyeq6%o~Far|<0|PT73j+h_I0=X% zI13~S5(24#>jEE9#*Cp0QmQ~rHUsGb>1JjG`5(jsVTc+KOAtgrF%yFxYRQvM?Ufmr zt51jP%8bj9loFqknwD6aQxcz%n3s~1T0~~b0Y%Wj-EB^K+b2IA!{c}h9nxFTBWI1z z6=+I=j)TAw(lAO%_}2L3r^lmt9B)D*z5Qc^xf5r&o(^>tnvy^#*d*qZCsr26rzMso z<_yi2H0r1i>~tv9vxx1{>a%zZuTwiUjhu4n8d7QkC!_e>#NzCsnU=8Ea0JRFP+CIr zIF(b<2)e)VI#No4Rc}LazYg|(8J@e-a`Mx`B@)cjc#{yRZ6p&*%%1(LLD(+?wQDII zAG!faL1pBYK9HVS8K{}fK>wZ@C<MS(gGUizH5uw$hdx?OR))W8MtVDF1f7z3lOa7m zH!(9WJ~=<HB(<U>J~1T)d|}LxY*S-z2jMv-6T8=`TK1TZpgkD3&{I=#Mr!g%X$PUC zC5XrICM43!r4iIWyN#Zbpo2%`)@q<S1y;AvzgELuF5&5)p`<04*QuPEMo=wx2O~9Q z78fLzBoED98rV}4v9(+Z%<FiQ6R9n1Q*+Fj4}n2=7BuK~2})bochOT5_;8%!{L-T2 z)cB;z__Wfz<l^|!;?yF@BK4uze*=XRsLTXmCI(nL95j;#5&>Z*hA`xII7*2{AV8>_ z@<z}d9rp;Nyv!kbKQ_sCbl^*EnJLun500QaI_?ulVMDuABl(UFeCZ4k6x1!xM$mfh z2k5CSeW>1LMe<rEl#~VXHr_-;dS7t_-Oce3ODY17VS!s>L$k+-I^P0of8n{C13f(< z1pt*(mNDi|fj@(AEFH84jMA3=BlMJ&S&~|m2;MF^B*#ZVVFGHqgD|31kJ|cj#M!Dx zc%I5BY6OjIJw{JapgR{b^M>dRLfA(lh#l90d3`iBf$}2=I|wKo_^%3LfmS!NF)%QI zFo@5<z{$YCzz$(Dz<5tEQd3cCL1NJm-O)s0YJz&5+No*etYUeJo|+0vQ;RBxX8Vcc zRV*m&Cy2+XoRW+&*C6~GgzYBK{tHUmP0!F%5_H{S0q73GA=z>Qg$k_jMYNpMU_#*4 z3eGrNPRQP;a;h3Z{k-SssS32}43wlsY(Eb*0H~a@j4*E|9<F=pUcgdTPJVttd`fC@ zNm2gLyq5_3IFvj}Ic0-UPN8@kZ!#izUT_5U?Ovj!qRis>qSCy)5!SZ@rz9k=<4sJY zk7^oX&N2_z^W9#dq^7*o@*&x7LS4BD8^^?Rz8kn54o*cNFXK%<B$q{om@V+(y1(}| zO6n;r%^ae)&0t?gjyjGBT9p7lSrU<cz@EmNfJVz7XuAO0*wP!66jW3?LQV)oq#ux% z@g^UV%O3;GQ!3sJ!Vv%-D(nt_3r;;bIr+&$bNmPt2GGpGfavd|mPUrC?P#!P@g^A3 z%NqmCKG<+gG4J3h#$ZUcbg-uwQCK1Zj}RGQrWgbKi<L+&V@A+!gZJPRQ<Pm=5T9C9 zlwTBISejTga&{YFc$~^*&j?CMACOW~adKioYCLE!)X=QC$e8(nq$DJdQ#mD#pcT3w z5h<x4v8Xr|zOODdFC`u<GBi^a>KYMPKVAo=cJoB7-N2~|>}4#0K;;x>Y@q-F30yvm zEDY8A-K~b}+}bBxDGYRJ-H>cKVV_%5M@d^Q1k)DS`*@QT$!#f9%+W@+LAa*{Gz&@T zjO}M!sVY6SBp!ZX{!rY>0ty{iQbP3P^kG8acDWD1)P)iZ)J<h0XkEY;T&WB+);o;K zF4Q!Kwk`lmy$JF?-b6+E$iWC&7w{EVsscAYhGu(<jP>7G(iJ2CsGPD!&{^N#Kq)IV zHy*N^e<;>|B%k%23->PGWJ7XWY6P9(^c|jRO7pVg6T#!cLow~3j&{TPe0a`qf}|aU zr>UEQM$o>vADAh~U})B3*w-VW_V`fF_(n@Z1ct{+Zx@ZAa_A>YDoV~tO&pqYxD=E_ z5KmLN9KxKF8?Ngjf1#wHk+m)o+ztZOWiW43Hx-SbwMf5FQW1EZZb<g^v6n;m)*`{v z5ZKdr6A&3S*~nSV_6H>eW#*;j56#vP1t|#ZX=<k+%<=8vx|;ScN(usvw++P}8R@HO z;Uy5r%XpK|XpbH;C4g-$<Uf?uQ&5zdS2B!hFrs?&5KoV$AV?x%Aa$qqf0Ptdlv<oR z;!+UA)6`8t2AI3E-wnbQwV+X0N@r*p7}MiHgCm)FLv<}bC={UC2Wd?$>IjiB%1mr( zZamn#coPj7EoTGBVi5(zYLO3vFx7zWn5Hz<FhWyJK~a8MW=`smthGSlfSGP2VM5>; ze9+}yh&>>wx$!U$<4rmww|Pd;3VtR?%1J3L7@B=8?CY^ndtj(5_)~L1p2eGB$S7+@ zP9KXIoMMWL6Vp?RA?5Z6>0=>#8E^6-y}ZF3YaXuqKUhGiC%d>LHMd|$)>7EZ8+`je zpq{02iov|YZMe2=SV1YKv?R3xQrHa1RD->3gSv(vbR{aHZG-SI-h@MXO*Mk%*V!1; z<MZ-UQsa{|GILVmGxJhXD~4t(2etPETcd$zejUTx)J{bs=U!WO)KoO2S4pFmIIwi2 zh|<ThL++a+r6ah<@g^mb+dd=cei9CplvI?O7oV12l$tnF?k7Q{C1kHtH#Lo*RjZuv z)RbQ^G*7X@K2j)-QW}A-e22G+ASnpsT`H%Vk<*&yf~A_2)Pj<Xq1hTDxit+=HxLiw zO*o{trVTMqNgu9r>)eQx135TvNcP0A&#j}LNo<bM0wQX080o2J1l3kNu+#&(G-^nu z9P(-_uy^qmIwZH4N6^}4UgT5*>BbMqw1YYy0qb|+S&;#*u|R1D>S^kxpb>QD2OlB@ z6&07n7iT8r4B4|fvG?9l_Ym4*)Lm(r$R5X=kVvn=M$k!}{IHY++9Y0-pFcEL_F!-S z;5n%iToS>(j5qm^UXzWS6&eDt)RUQ4oLV$A(+>827oHUw;IsqvFm+ST2s*V~5H;n* zC#IF877fW(5cXLNJg1f;r5~ubsho;1*A@O4ge$~A^**I5#DvgNQBo>s?0IO8|A4{+ zHb{s#>xED|2vQEkLp_c+A(7q=8bPzF!tj(-9G{q%oLXFxUo<q+5%%(k(5z}ElDDax zibhb+UIdnkauSP6pq<>IxQ>jxo;{MM@g^aXTht?{T_lQ<f?yr{p_qoSmqUcwMc_09 z^EP!;(FiJs#9*l?H?bl<BQ-NUV`%ox$Sa4CJUyC%piN3r_k4-NQcxbG8Y@a2A?I&^ zduK?Vrg91zIWwygh!g}0)8e7on#Mk|NN8p?54=LN82|D3r1!^0(2hY#c<M<lADSr# z`^+k8s|aPsASjo_6Wr=fda4;gr?p7IQ%y+*q~02uX$O0|2hV9OkhBB$G~P;!j1)9- zYAtD43Mwc{1>NyJG}8}xwHD0FR8Bo3Xf3o1EcFznmZgGkPyp@G7^-b&)K(5`eTOo% zM**Uk7#uKW<}tjEH#w0!7Bqt9=4D~2siY_ooScT_{22DKh|t_T+{;u>JtJpsUJjOe zO7n6u^RkCz+97Xl9_nE#r<{><Vx2r=dVGE!{9dxuqROG!3L?1`jpk{*35fJo^a#35 zTmd-+6_+F?XUCTmB_^j1&2)sl9i#+m06{SmgFSLP2%e6Ry-w}aG;&sXC^Du)t{;m} zNlhwEk1sAM8ab<7!Pj7*dYsxR3G<we;d&;t5;!H5WW<A(ekLUrr{*Q*4$X6=P{$Er zeKS0>s|AVZ-o~4ZNbZ-7ptVBE$f+nLvk07shGhF1dn&@SRtTPoVBW@?h{$LoVcs%6 zT+1RASSkW7y-F(1&nYb#qU|H{QW3JZsho;N(2R#FEEN@JXBNbRH*gHel8EHK8n`4v zc$&&7Xaub|Qv;=-%!1VTqSVBc#H5_m_}t?3A(@7-mqYm4L>S)2n~X?p6PZ|I-t7Bo z5U#}MVqjpPbS1tzC>2p~ws?GcJmi#a1_lO31_cHt2EELb#F9i6&;eo$ObiSR%#18x zIcS%gff338iGr9QHE>;^12!0#F?2!J)k94N9lOc^(#^~W3IUKAAPi9hVhMu?C}v_X zK<?o~+)CBdVmg9WcWA&;OKQ;&U1d-5>JD&<0eKg1q9MJ-Jc4cy*My~-H0Tged}%>J zYEgVreraCHkgTy#ds?twJf7Rb!KnzV_wgnxQfn^L5wuoX3!JL*3lh^4OHv_|9z!xM zVQ)d>IgO#92-VY6PC+B*>}YLJ3MwgzPb?}*tc*`g8JcAg$@BCDC|;&=>KQq+tvV>F z2YlJuFe-oWtXV{)AF!wKCLq$=MI&gPkS<CJ0<9n(iu=VVD1Sg+#+!UdZvTv+*$h3D z)Kiq2n_o6!#-ZUg7}VQ%6A|fU&<I-js*fcV#iu0}56yjt*jIeuS^0{n%OEKU;&r^q ziR3cL7;_c=pFud92&(ZZ9ZfXAmYRm}N%x>Ifes`h-5#a_69V4?<%lxAh*mN|kNL-& zphz#DOfXk|fQD6}w}CL~m84dbAi0r^fq`KQ0|Ub@s2FGjRzW}^0Xm)v9;pRMfyPvi zFfcHj0CAvWwhjUY2cYV}W3wPBkh)6@3=G#m987iK@mY`*=nND}Q<Ndj6a~quL$SpK z3KvlLfG}dzS`);DVkQPR!l?=p0C<xY$z|0DI*ZW=C1n+-f{tUX8lo*IlFuMQ)O&D` z<4s7Umr+I|=S~h|)RdH2m6`(H4>}afChRE*&z&4dDGBazyh(}VGHC>jX`3*n#}^jo z7nQ`9XO?8dgC<gk(U=mRF>Q2DQ#S<}V~$Gx8-y)z(5w=r?IlxC3Mx%3%8pMf%Fm52 zE=erOOomRo4b4^jpiqG}i;&vjYA_*i8{8SWwN!}9`*;%-88sYcD}1=Fc{D>$Rp5pE zL$Q7%d94vjY65#3Z!#LK-5?p0lYxPO9l~T_V1V$<;i;%3A66s{#WY0nj4dP$Av{gp z6f}ayye$wZsHhT_gob1b341w&TGv@))@mgPZ{tlwq}OH!Bj?sBOK>VmElrIFPhbwo z^n-neHEQn-G_VK1t*o#V?qMpYoDsBY-wK{`GK=F=a|=pF$_{Ht>VbQj$|-0B-8^Lt zPeGu`@1fZG;e)s87?Ap7c<xDrq#clV@g|$mmNO(^A#G&{8`g5Rfv1{+)YR<wjMT)T zxmJygmNTf<LU?*K1wj)AsprDlqNbpd#LS!_+3ukv1%W+H<rIWDviM~Xjx2&gjna`t zJ46b~FMt$5!zcxz&h%TN_PoGl5X{qf6A<bBt`Rg(W{;7A;)m=BSExNL*bWdp^JI`# zPysX*K|GE(DUseD8aZW=14>E)m+K>~ECPEPZvq-Ei=b^KY%OX>j1&aPl0&gaMnPEw zN<|Ql<4sDWmqnO6sE2F2$O(~>N{cff4Wpr$ia>2dXof-R*W;VB2ahNgz&%af6f}ZP z-E+oFL6AH-B<nQnYq0U0x(96;!O{`L>v$6r={4I3T0`W5nwmf*{E$pXl$1wcPvcEO zB-dyos62ATOhJ%LIV95&CFKz)9YMT~H!+b>9*vyytlb#X<BJmWQsPtcOOtYj=BbU? zXIt^yHI3|Hyh(@ja%kkNI&()&IiOUOJ~Y!0_SGJEPPjr!KTvN|Hx-Sb8CMTjDgrO| z7>YeJl4o4OsR!&`DyJIEv#Z|?!r2Z`cu_jr;R#DMnRz8cbKNv36fpbqs3j4~J!ark z1M)83L_<bfXXK1adm*J7Xt_Nk+sxSeUU=rnU}*>HX)33n5p=?yH!KB#*2@gZv_oFG z1M)7FQ_Tq4%j$!aY9L$3ic?clhGxBmeKrGi&$KP_{5-hq$xAIq@;H@K(g-?}$QPE9 z!25zhiD)Rcm`Og92%LuCUdEezNba$Zpw#0BO+ER!LwU4^tki?>GIdkW2wETHkDhv< zt;wNS0%5Pk@T?C4l|b+`1ob#|Q_=|9;S+#JNuUnxkZea|A9F@cS13DtpeYFCVY~^4 z^d9^O+F=-ol5(K=a7d;f)R7+83Pn6S3=!!E>TN2gq7gI)AB0Fn@J8iOti`a81L0W{ z1WiM5PvcEOB)6muFz3GB48rke&^c_Bjz0&3Qc!AQPELOEkSu*bVSqXMED93>pW0!B z(u;?Bmbxis1no@?0jHRp#FEVXy!hn&(xEzUfxXPZH};&0;%U4Ii1fD42&%P0kyB7g zYEEj&(41|@o`UezTCfxZ^)%ijL~^Y)f?CgEs41wpq$q!g?vN+F^^8bE5O3p6M5E;p zv?YLTZ$>zBDoU-$EG{V?l5HUJ%OR+z@g^aX%b^j}7K%VlK|}cbY3wP8n6?na(|8lm zXc>g342nceLB**>L-Ry@>?w$twoqms*wc8E5b0$Q=2`fk24N2#Gy_Cw4?YSx1%Z|~ z49PkS6cW&Eg0w3PbxplFYCj&@8v}V6Z{i`N{24hb$)b@{5BT=Lp}Cp^d-+354F>Tv zwNuc@*_RrFoPvr|b5fH>S`7yEG~Ogcat$_udh@Z2>G8$MiFtXcMe)g{MWBsPL-c+G zl6&(Q-o~4VNUzC8&~Cywv{Y1(Uz`aVqaK>|8EVT1HmizfcQbNIf_t6XsR?slY`C68 z9*>rqO7gQ)^M+*08he?9XHOV%N`iPBZ!#jiW*a%FC;=@Ml_lns4$Zj^ic%58+tf`( zBWS)X5h)d=q(VmhN5m=*SV;u)G?i1($k`j8gp`6(^V5c8J%)XqBA&hRu+#(cFqKoz z$ho^d89C(?73CKV$+UxgbWs{M;0RtNWPv=o2v0j;FH<-5jG$XJQ;<>*XrFjhYJ72J zZc=_ud`aR^J);A4hZwA9hUZpISX#ms0Mt!cBj^U;RHT%Zo>~&0ms(L059zH8$r1{6 zq#Bm0@Z10lOI2u|$D5$Y7(c>1iQ&f}oJRxgR-kkqEe$C}W#$!>mc*xJ<_ytsNKkmd zDmTQ<zo;b_%HCF3YC`h(Xi9>GAgO2Ir(>if$VJ&hvCl?fN&<VF$|=bhv)}e>5SB@x z5nM{kqzt5#l#`#IU0MKbKMlz`4iqA=JcTHglwm^PR=5MURyeBH@g^sdM<Wd}Q`3h* zn3_PnUrJL`CQ@nwt(q8$<q;?xU<n41hKLvi0C||YDaROd6yVPwOgW&IC8a4R3n}G* zFUdh_ZV$y&1PT+(RHO<M0+&Qi*h(UF&r>-?VXiwGuJ=c0Bc-U~<otrv_{5YHSmib( zYd6##udp5*p8KO=ZEg(j<4shg_u))1`*2K*3=GhnbBuc6HX0)7voSC*Y++zv*aa10 zWME)W5Ku_a%LH8$uL9Z%4whkIU|=}Hz`$?<%wu2xsdEr8H~>{=0u^Qesk_9$z;F#J zfTqq2D$D?y+orUf%E3rgY57H|iOCs5I%R=E1{O+)I!_BG1TL-Iv6WVkl!X=q)J|QP zv$>$8FxXNTsP9W@>dM7PU8oJyp;!}w!UdL)5NV5u(M(9%LJa`CNsHu``3M>(&%;Pr zMX9;@Ww6omAz2?%n6gj<fVwHm2(!!@uIrfckyBP`Njx~)4$1UH_6ij6ArYV^Cc|hd zf)@3pj%XGjr=pU?lK9;Glo7U$sTl5U>ZT&&k<;fZL{3GOdCA}jmiYX%wBpnudiFK> zeLi&W<4shg_xX%5_n!>ck%S_oR8^9ZSPt##4dE3A*i)4{wCn~^ObjmA`g@q($D6E3 zZjq0mGa`$TQdMbQYDEEbalugR<6)n}!*fO?Y-9@A<J3(_h9hTxZV6IKDo-rR8=Cu3 zu&<y)ozX+tp9@PvU@zlMJfzodBj{F{Qc&tiEs0MBFGL)Qr4ROV`o%%j7!)%xfCh`> z<1=#$;^WifLH#v|ckw10(rd4g)9WuoPBrlviFqkGsY7$+F6q5~SZ0BHo64!kOaTHC zxO^B{7^?TXTMgG0aplldl$%;yoS2>p5741l3X$FhN-c>;_c(P^(g<34QUOg#1x4w3 ziMc~_<cRc@C#fazFb`8V<&2>5>q>aa$;>Mm(j^dCH5vGD61caioQf<V6`2B}CL6Bn zD65cDQEE{UJVb}&ObBYP3%1e(b(MfU%J>ktB+ASyLH0V{#6)_ZYy^!BRYOw~sB4>< zmkv)%Bc@%1?s2?HiS&M&Ax610TxVx%Kq)CBH76&&AhD=8H9oN@y=-WX4`Hv}P)D+@ zQOYEAZ{tlwq?bn{sC8WnPep~L`9t(9ZPHuU;PeCWFy5p?a``iY?oq3Qr<~F}NKg*N zIt=^RG``*4;IsqtGL=)$$k|U)4@x~bnZ+gXL-+m=(#str4^uhijGQ^K21Lp!C`ip4 zqBqE5FLzLTXQ*>xkhBBwGTy{PMtf)Eq@G52>PgPeOHLf3Ylp~8Jy0)GIrWU7I~$vj zQcuAUy)^`Tt%W+r0otg8m{SFpJjwY5mG~FIl3wnNpt0y?c*=p?-vc_RHhV~pAY$*W z<2w@)oPLnKjkf?Ixz9C%%AXc^DoV>7sx2Qf%O9|Z@g|(n@&~#m2HSl_ttcrcKDo5G zBtLf~l|P{L1M@cCWJGfLGlIr^+7PJ-vNv`}rXcLCXMAHm;2I3N7Z!gbh~(5Wf@-gJ zMCvI@9ipdWkz0F#JdC&4A-(n*LF=G9P*P63;n1At!d~tW9P<I4{TOeEzt|xo^^Bac z=1zF(f!sJZ6z3_hmpk~*E&|tC5D()mcu20XMo_uag_Lr@H_Z*B_71^vhnUOtNH2Fr z&|05vwA2${oL^LunldEQ5bF3KY~2{XePGb?2b67K9;a?OG=f^rJ@Ay2lUO`N=Pa<- zV5sQ|%eXVx!*~-8>1EIes=;~@DJL~Ay(D8qwVZPxUZ!&D89_S;`{1c3uOwqg)?1|S zAOzQ2An)Q$Hl(+jG0*DwG6+xn1l@&7=~-v}$f+hCbn@TOEOkI(0Uc6Dx>p$W{7*}i zb*Zql1MxK81Vl!yHF8qW1b7O9Uq?73OCK^*5Zu$$PC=Nb4iDFx%_kyKP*Ey)nb=Sq z^}#-3NN}d20P1DD$%phBY~-vGn*>iikfQ{LX8nad^$;BQfqEHl;vv2E8bND)CZnaE z5x3R{l7b-K#+!^tFM~!-4K@WS6_uqH6%Wmw@7T*Af;CuCD#XjwO+6!M#BeG+^?(MQ zhi3gn=7=HK!*~-88MW8Q+3!9LCFR7IXO?6@y0b&F2Zq|(fz4as+wTtU!-LWglGmx6 znhY>+Rd_cD$AUm(XOxZwO$Vi>Jn&HzX+yIV0)+zRC=lu@Xk(O7AeeWloN7kUt>rU7 zsV2X)C>e6KOF@24&X6p9u#f-9!jcpC_6;kPw1ehpyh&)Z^$ZC}Z0nt8BBh{`lEmbp zIeS5R>lvDUAYP_&>KQrX&$AGzCndGGq$q!g?)Ac6{@|OzfTSOor|~8r(p%9Z=#J^x zh!h06WjQ%9FTN->xfIlmACfg0YMOzyqw(D_4M|Dpo~Lq(GQw<057!el=b)vi{5;6z zYeR8f19jC8EH$Ct`h$AMG*W7UdYsBBX$0NKITtM@l@=AH=9R>kWDe2OHL;gX_-^Dx zN=?X~$D5=^Tidu>+w)LUROZlJ<4SI88&t<-rr_V8L2~LDLF=UFqo$sMqRjlF%#z9> z*-pY<v*BAOjVO!Y9;a?OG=gS579dg*=+5pTnSw~4^?;-xkcaUm9Mb!1BPiu8M5LUe z)FC=jO>W8od6>#6X9VquUxb`;Ko_qL$x?^hwhv^f2bJ4CrkE?u*aqRP<DmQ5DV-l% zjGlVplPcrWO7oJ7<4cQEi-z#bD=2gzJq8A()zf+~A@JOXH<q~%NQ%N13{)<oOfb)i z9<H~KFTs||hIsly9W8>5A!(qbFIT+j3lRWRPFW+U@3s_?vOsrlB`4<OBqb&f&6CZ@ z?Yp6P9B)!0c@)3|b9|d=5Y~jC^)!^$gv+p}r1;Fdl+2>k<RQB26%;bCB8iCsR!V8X zguu0+JC;%kIZYvg0B_<Vy?-}?=Hr&5r>+q?9|uWS2+vbFMU9}EZv|?Kf)CyepZPe# zqn4o51ot@Jq(pMfH-h%)uSBGz(mc>$%rF{3KwW=}dZIaG+!Eqtyora5nho=GtKoV- z*(y-#DM(CCO^Gik%FInIj!(|XFHS8k8Iq|8HNC*vOUfwiB?pxD5>~I{O-`hjMVP7S z!ysI*4I2NYv=zP@lA6l%;uDK2^OA>T8Ulp_EWse!-1yE)D@cTUn7S!v1huf&pr#zi z?umlTg4E)nx$YnPsuFxF-Vmt>+4Fc46d5%e<|^EOgRm?D-QGrNS+o|OqLTA-a})DY zKs!oPp#{^BESW%|f>|=5j+8s2)o$f^@mRc1?No)iulCO%OjV#fNolHDhdosd+1d^i zCYWgo-|9DTIfas@z@EpOq)2WvjiCMh>)|OXwWuh+D88^Xv1n+HfTQkegSEc#-R%KR zOUT})ZYml<D^NDTQxP~f4$1lrd&?VjUIq1xM{xQ9dl+xRA-$bsVuW!M@Nk{o-3UrK zC5a`O$?>_RC8-thparQAR%UL&(A+tReRfw9R?&gyP25mgN_YYQZ_*;YX2YD58?Jj! zHX%}0K~ZK|Vo53}Z4J%-9BL^9tJ_f18S0)BNQy%CINpRrdKoo>b}wzlOi9J5Lv&7; z(v$@9IF(b9G3E&6a2@a7f=Ee4sjwO^Cx3{pIU#+#8&WEvc^z+ZBDsb$9yw!7Td}34 zlA=m*f*O)-aMH(^&{Gu5`*;%->9ySm+F`j3TdFF}11GAXxITdNF(&jh1@%1MBt>#L zHG)=~Y)48_<?*0|6c4%=YDkt)*xOI|R+~Um6SBvto03M*TJRm1DXAzmF(tJKoT`Rq z-ww4G2kYD6TMLewqL2dsZ^9zI)-y4~7>63JD|mO}Oj)oN#ZavKu&?0NMj46nz%mk5 z1TC$gX$uwvc#{{&HQ)$ZAHEA`>Vmc{hGbocJ$2z*AC9%;f(8NJ#6?EgHF9=H?Z!-9 z<wcn#Bf3^Z4ghMWtdUbI?!lR|U{%6MtQDbY3l;=;lh<gi2x)9!JLhsQ&eR315=LaL z2u)qkAi$frNUs$~(EV@wz^SV!KDDqkacIsXV?VuF9Fn2HBol)PYU>^5UA)PL<T7al zo%y{Vnrbo<i-+ialh{)Y>gp)eGrvoU;=$g<n`p==YcSUu4A+z54?t2)a$;V7-q0L{ zA}7^Ayi4s=gLzxUaNVzR5SD6+Q<HNGhGx1Uebrn^QF0>0!_-bWBd5GM1Wh>^`9n3` zkX7D*y-V#>gSpo7%^=)8z{9}6K<Vy*!?09Snm#0ZR-iBdH+#V=C}A@tqA($_s1aIw zI60#<oysSC8Dg$i8m=|e5on6Z&n+lQEiN9CsRnxug>Oe?Nl`M)!*~lD()&@EBZtGa zMSK*Na`KWBhvsf>>@^hr-gk07*t=9tH6y1*d<>FmQc`m=b2EqN3R~>u4eGiP)O{o+ zMKBNJO*mxqz(-Eo<~TIv<d^3S$y$n>woMAivv`vX=`|GQtm$xV4WEFfn9?EI^TwWH zP;X5#L~9MFlosG`43l2QjG)t!Pr_3S=(L)=lC&XN(vW^ya!FB2X#vd3)GcoeF<0w< z8HBxWP_Cl1_k9YHddi0KouZ(yfOWYMC)A*>vbMx5cj955#+!ghFMkY1P8;VmJOz~v z$&v?qjfH>wCZ)8X41bkHdK+itj1!-Mq!{oS2Samy0edeT|7<42yVNdcM$XvHS!k*$ zPEIUH9g-yt_Edv^>?RfBUA)O=w5);D{Mc4=or9zr(9WK+kyF+{yo)!{klv;lL4B(8 zkW`bImmZ&3P>`B8Qf}WXDMIox-sD4anPX^yv1@0z_NgwQr=IwsdFm(jK9ww_umzJ$ z3|44;Dn$B;Po{DUc?6w*b`c{5<)jYH5oFXhF>H1m-}z_AWl%iG+f*)xFwbTDGziCb zK;vPQj_q7RN=3!Rndw6_1%W~WT-bnDQovG>G)xFAYJsg3f_Ry_sb>V0L6;G!Cpn`u zFMH_jjwiPaLh?41QxRsbeYl=?b_G2ZW#$#977fj{7pSx4u#yPxDGT8CG$b8CJx<+} zWQ^IW9<FCsU&Wr1;*<09hUm=<*v}PGN2%Fdu+(hG=?Ut6>ZU3q%=z|jgRqSRD%UA( zBV9vJRiI0shveuYC^TS62QdSNn#QbgrY4ZL@g^cN#*0SIiqz|fR0LlBG8Fe8V_zYL ze?=;&w-5F(-lRkNSP|xJ#ly9ab_0=eAX`F*WZ8qgkA`{@BkE06kX}B-%XkwH8RgE% zNj*1_QcqE0aq7^V;UGKpfW1uZ)H8Bwty_rH1DY@zk|hthwHDaJc#{t4wbsZPS-g!% zInZwHP;BvFFLwx!EJD3Z<<x`OlOL}0V|UO~&j_0zgQTC)`7u~;m4U%QK;giD@C8du z3=9lxPz;gBwyNVUMhXH=6b;2P2z#%c@cbAw4S~E(-EwFI-4ApRk%~aWAH%5qgE~@; zzOM_^YX^B4Z^9v?-!*bp&EH3)oPwfM@B*PBnR>9V@W8)n9+Y}uo~CjN8bRaE4=_?t zeDcujy<@Mz2#-5M(-5I%5b5R62)YC4A!aH9wFrh}S%g|=!Dd%c&ml*<O$t1_3QI>I zkB^o|kTx^vE$T;zlvJEqm6{R{Y9I{BbVP1>gzz?%Q_%?8P52lo6^*prgrIg&G1Sx4 zPC+AQZ0HF_3Q8Q3r4aU(HQ}|>&=izN<+alzX!ZS5L<%Y?Dg~W<Gc<RLk(+|xp2k}U zkvzLGg3f4uhDbrB1w*p*A!nx{sQw~!5C`e0X5{RHe-24CS^1embDcdo`{2QzrE)nl za`wT$K%|%vv^N!$W(XXfK>C=^2s&@$B_!444Am11$th>Ro~3d*GjeLCSFjXQP&p)9 zGvuY1f=X)lp+?Tiu-A|jlLtE!eJIYXle01m?%~n020D;T>dK5a(3Ar@({CuI8gj~- zJdkIpoMJ{!EBGxm#iV8C<P6OjQ0%>J)OiT>yKVBo-o=|}$Y=$RoHLo<K~haoYFTR0 zP+j+qy@o=a2Ss1I1M@JoQx4{i<l%Y-{Ch~s0iB01f^J}gdKYi9A$@dj<kV6hpsA)H zXQ-Y4PfjgW4E8SGL_<a`g}J+UxSr<y5t3?3@>7Op%LaRE7<Fa}{WNcoXQ`WFOe`_y zzh4c){peg&xDDwOB*l<D?-ZXNUtCfIIz66&fssLhfr&vcGbOPkQ3ceHU;wSIXJ%w! z0Lei+cnpkC21pdd1gU}R0$t?Ez|6qFfT|0!zZ`0^8AumMH!~wB1VB6xhNuCtgh2!p zGcg#T?LnvdoYM$8r|>gldVEPnQEFmJd~#80V#&~)=_Yv}7OI!=7B(ceX-3fM(JzS9 z13sKMzOXd0D0^tuRH(fsB36$=(-5-9@g^kF+c_qfeJUnK1_o%I%BWY8T2TTm6+ske z*V7gT28LZA4zz?;5Ku^fma^dT8zcoPX^${4Fq{B!pz0h13=TlmflF+V6iD4A1_p*} zAP%NFaH$QFQldhw^%aql(n|A^OEUBGisRGri{e4qFTS*RXqHQ$kO74d2qS7UZ4eiV znHW5fYcpt?!Vv^`lNTtUbPe^4^-^+j^c55oEX~c$Eey;IU}qUX4^LHq%|V!sp!@#5 zAyOA;@_0zjVPPNZ!E?F_G%bNWOx=_-f_B+_N2HvB{QMlq5r#uD{h*E}!|FFYyKJE8 z2jOkJiHP*tZ3L|-{ehN>KwBe*;@lQ$za5r_@T^HjPD3D1<4r;&*I*;49Quitf(lBD zGlph6o1$_E>}|Y>h>UUw)*?#a@?m6QsNU~xHC*pK{)I?I#i=<%^PV?y+d*It<4roG zmp_>Ov*CIQ?{DOkQv$j)FTW_WWN5Ai!`{=!a|$oC7AsCg@;G%<k}>AVPk#pC_%vu= zKc(lT{z0Uq(&E(kl+?7u(wvg`%-n*UA=$15g$cAX&w%LTgO8$t3NtY{Vd>*zcz!fR zLBosG6=Q$lDXKU=J-;MAGcU6wGcgCW33()?C``{&H${!0@uGjA6qT8qnqOKHpO`W< z?`|T!orL6J>ZY6#)KB}5nsVaPN{8y2MAG|di1Y*THr_-;dOvLh&8smmrN@^*gR?ll zv?w`s=$@v5y|s<!R2D2Ar*cXfLG$~J(3DgZpORW!Qj|Y5du*i7?`P(wBD{<@`H<Y} zA3>>y37&dVa}o=RQ-@|th|JUj^D=c)&j>mNff=59KtumSalQllidQ`MEraT=B5++z z-BdGz`d%#XR8y2%oH{h``68?DRTK~L@My{*a~y~jo^pyy5{Kvwab%_(h=-}0az@ZO z&TL32C%<55&Z}ZiIjFra&=SCS&`^7PJfwqJ6klADUx0s``)E%cS{`9LN1h#&a*7g* zGvbR&5|gvzGg33tGfIYL3PMdQu+<&-dg_=S$6ExEk&-ZX`V7~51Ub-BQbB6!5M4=4 z`p6+tIs$u}%Bg4stu*6APeu7d^ZYr|SDGQGAwpFe$zwhvXa<7|Jq3-Rm1f9k2;^;Q zmqW0%_=uHe!}V55Zg46}1+DLZ3_B0WnRx6Yhj?zKEGa_rGPP6B$XTbz14}*7=JZe; zJH*}}!?#}ply;yV#+!6VuDwRk=pipG<v^~t8j__Bc_|0#;n9=>?X8o#ii{7Ia&q$X zv&r5)53(G#hn@br=gCVsP!Cf#<rs{dlU?{>DF-yoH6%+M?DJfx{dkn~$H46zkazJW z8q&vmMo>*908ce}`6;QzLo(fvSKj17Jd8K#jJ9z=H3<U)wlQZxSjs6%&CM?xnmgmk zOF2*vkER?*;vo6fTOnA=DNao+O3oNTWe(KCR8BdVyLN`_c#beE<&+d9LJrIvihXkI z<2iWlYX`S;;9jP3>KQq=-HL!xPia9;YB78n>X0mZu+K`M?f|ny+3SVsX}k%DjMnnV z8BZ2Pq@c{al+=o$Im3><{J}S#3`su_FOQ}kXtRgpc8?fSdVFbeu}OSMetc<3n#Bl7 zJt$tLa_SjDyK%%psV6TpIU}(sKB*`*F+0AbvLJP6rXiBo_>^LLoZ2aA<eZ`)fs~R` zGSf3l;>!|qN{40-9(zi{bBY2iB_VqpZ&D(C3<&d--!Fsk6a`Q#lG0NYB#}~5W^rOp zUTN+yYEk1kQ3{rdV4faLLC{7Ksq<Y@Xep>5V}#t3jGTf%o*qp>WTqf#loXVlS5h=I zPjCU1$Iu`^I>CjgG6>>n>ZTwg%zFig>zZd7loXVbnwFV2ME97Y&XvN}&dbA+6$1kU z6N3%%$Pl6wf_a;|sb~bPd6q>@MWA-|NNWp$+tm2C@r<^nA(;`|jH(<;3Q8|ZEEt+| zV-(b65KoVmL6Ag3@(80mN(#!!FHbERX=M<^)1xVf%oL=6l7b3~GV_M!-ggShAc&_& zQxKUcND(y!fv(XQX=P9W*wdpah|CnEgpz`a3lfuu=GZg^We~*EqbZ2Y6r_xjf=V(= zaz<PVf_Qo~1(BJ8R8Ue-X+gorYe_>qP306ca#owEqNJem%#<NISC73G!?W59F{TLi zG~NV6`f9Tgv<F@dB?VPLM%RX9TN?YgG@e_Z5NQbNZ7Qdt5i~BXj+BaE3(tn)s%h-y z5E1iZFi+!6LZjo-kcJYracK>d6a*Py8(}F3;_1;81W6<$k4tN!q##JwWQ3(4h^I$W z5Sb}R3nc|Xx+Wtm1wlMb<rFk>_HJk+r=TIba+>758?cr%c(FL%#6w13%o2K?GvXwv zUxRR^D`;m6r7K-^kWvq%O9EXqJtX^Mpb&u;#7Jw+Q11!1$F@!g#p_f~O{SP9OR)^X zd*)TBaL>FhG&SX?q{b&F=H=&QCMV{^r=%w5=N9A_XM*mXACl<`6gHUYN*5*sUVr9= zp04l(0^TG>a-Yov^Bh-(L72ioXWdd-Ug=>?VfjTVsYRK2=|gkZ5GY(=NeOYsp$1F{ zoVr}`r!IH^;7wSh*MtU`DeKK3tO<FjP<H8qQdV(JYU&U@p&S$juq1;>MW~}ohA62B z;#n%E7^9K1-^>7%VoK61;?pwoQsVPcD@x))yBLRL4M+NZGb|p*o0Led)kaWCGDJy9 z1x2Z4BQhl+JWkz|G=lCFGlHe0^wc3-8ety|z;lue=-7dHxR<G$dW<p0l7{Q;;l{Ak zlb@Cbx{tjiKfWM8Gp{7IXlS;qQD^gE`-V_^bB-u&B2cY{>3O^fiu6|X2ue{VuoMMN zN1!u8AmKZbQWU1=shpw=N6z{qQ+SGkH<N~BiyO6P1}mFTODvSruE2F1kxeAh%OnHL ze%rf2*wg2uLQmfemV%12Gl%B=Euc`q?CayXITM_Az~04M@Q~a`8$l-uo5NF0Nl|jf z(A<AU^0}~(bOZ75Xv%>CQqKahKuS3|sd+=Pwjw*_fILj)l!MtH8?NWVS|X*KyySw) zq1k4}-kV3At2M{yg%y_+fxV13@sQrmF&sIm#|oBuKr2O)i%mvS>VbKg+No#coJnmB zOFd<YIhiSmB|~$k8TPV=&`2WO%XpIy$*tuP)W@=6N{=rq&I9i`PaBdg9+LZ52=7ui z)r_FA9b2aK`0~s=W25-woc!X{l*}PI?o9I74w|R&CLq$=JR@i()efG5Qj3c6i{f)r zi;EM}hi2VH@|-**6`^_@Z&D(;1{*>9%k1GPDXpZaG%tCmwt%pgMR@j?K~fRI)1xVf z%yAzFcnV5SEy>AGP8=zxH9%4j!qZevK_jOR<_J$g`30$Ypytp}+#5u49}JRyU|t?g zJ!F<YPVm%Il$w|_!cq^+%T!K1Bj*f!XQb3qo|!jf(+`>LpQ2Qlr>UHRMo#VJ!UXDH z#3yCuB^Fi257k~6skK*5W)iZOshfI6&?zylkkkWSeVCS*oC;1rLvkdM)Kg+WDG1fu zcoPvB<3X6adWP#6_->F?l$)59Ulb3zS~D|0Z)nbgk&}v0y*-+Wpbcq~&-rkNrlQQ` fqWlq<icq{gnu^FxMINwJls6*FqD*9O<4;8Z-Amva diff --git a/graf2d/win32gdk/gdk/src/gdk/gdkevents.c b/graf2d/win32gdk/gdk/src/gdk/gdkevents.c index ce2c84547b6..7c4bbd92184 100644 --- a/graf2d/win32gdk/gdk/src/gdk/gdkevents.c +++ b/graf2d/win32gdk/gdk/src/gdk/gdkevents.c @@ -604,10 +604,6 @@ gboolean gdk_check_typed_window_event(GdkWindow * w, gint type, GdkEvent * event) { - GList *cPtr; - GdkEventPrivate *pevent; - GList *head; - // GList *tmp_list = gdk_queued_events; GList *tmp_list = gdk_event_queue_find_first(); while (tmp_list) { diff --git a/graf2d/win32gdk/gdk/src/gdk/makefile.msc b/graf2d/win32gdk/gdk/src/gdk/makefile.msc index c4d07b60dff..274620807f8 100644 --- a/graf2d/win32gdk/gdk/src/gdk/makefile.msc +++ b/graf2d/win32gdk/gdk/src/gdk/makefile.msc @@ -73,7 +73,7 @@ win32\gdk-win32.lib: cd .. gdk-$(GTK_VER).dll : $(gdk_OBJECTS) gdk.def win32\gdk-win32.lib - $(CC) $(CFLAGS) -LD -Fegdk-$(GTK_VER).dll $(gdk_OBJECTS) win32\gdk-win32.lib ..\..\lib\glib-$(GLIB_VER).lib gdi32.lib user32.lib imm32.lib shell32.lib ole32.lib uuid.lib Msimg32.lib win32\gdk.res $(LDFLAGS) /def:gdk.def + $(CC) $(CFLAGS) -LD -Fegdk-$(GTK_VER).dll $(gdk_OBJECTS) win32\gdk-win32.lib $(GLIB)\glib-$(GLIB_VER).lib gdi32.lib user32.lib imm32.lib shell32.lib ole32.lib uuid.lib Msimg32.lib win32\gdk.res $(LDFLAGS) /def:gdk.def $(MT_DLL) $(CLEAN_MT) diff --git a/graf2d/win32gdk/gdk/src/gdk/win32/gdkcolor-win32.c b/graf2d/win32gdk/gdk/src/gdk/win32/gdkcolor-win32.c index d1c61ebfbc6..196dcf59ff8 100644 --- a/graf2d/win32gdk/gdk/src/gdk/win32/gdkcolor-win32.c +++ b/graf2d/win32gdk/gdk/src/gdk/win32/gdkcolor-win32.c @@ -165,7 +165,6 @@ terms specified in this license. static int alloc_color(Colormap colormap, XColor * color, gulong * pixelp) { PALETTEENTRY entry, closeEntry; - HDC hdc; unsigned int i; entry = *color; @@ -333,7 +332,6 @@ static Colormap create_colormap(HWND w, Visual * visual, gboolean alloc) { char logPalBuf[sizeof(LOGPALETTE) + 256 * sizeof(PALETTEENTRY)]; LOGPALETTE *logPalettePtr; - PALETTEENTRY *entryPtr; Colormap colormap; guint i; HPALETTE sysPal; @@ -1263,7 +1261,6 @@ gboolean parse_color(Colormap map, const char *spec, GdkColor * colorPtr) static Colormap default_colormap() { static Colormap colormap; - gint i; if (colormap) return colormap; @@ -1277,7 +1274,6 @@ GdkColormap *gdk_colormap_new(GdkVisual * visual, gint private_cmap) GdkColormap *colormap; GdkColormapPrivateWin32 *private; Visual *xvisual; - int size; int i; g_return_val_if_fail(visual != NULL, NULL); @@ -1410,7 +1406,6 @@ GdkColormap *gdk_colormap_get_system(void) { static GdkColormap *colormap = NULL; GdkColormapPrivateWin32 *private; - gint i; if (!colormap) { private = g_new(GdkColormapPrivateWin32, 1); @@ -1467,11 +1462,7 @@ gint gdk_colormap_get_system_size(void) void gdk_colormap_change(GdkColormap * colormap, gint ncolors) { GdkColormapPrivateWin32 *private; - GdkVisual *visual; XColor *palette; - gint shift; - int max_colors; - int size; int i; g_return_if_fail(colormap != NULL); @@ -1532,7 +1523,6 @@ gdk_colors_alloc(GdkColormap * colormap, gboolean gdk_color_parse(const gchar * spec, GdkColor * color) { Colormap xcolormap; - XColor xcolor; g_return_val_if_fail(spec != NULL, FALSE); g_return_val_if_fail(color != NULL, FALSE); diff --git a/graf2d/win32gdk/gdk/src/gdk/win32/gdkdnd-win32.c b/graf2d/win32gdk/gdk/src/gdk/win32/gdkdnd-win32.c index 2a6041abf2b..b10fb20876d 100644 --- a/graf2d/win32gdk/gdk/src/gdk/win32/gdkdnd-win32.c +++ b/graf2d/win32gdk/gdk/src/gdk/win32/gdkdnd-win32.c @@ -591,7 +591,7 @@ gdk_dropfiles_filter(GdkXEvent * xev, GdkEvent * event, gpointer data) MSG *msg = (MSG *) xev; HANDLE hdrop; POINT pt; - gint nfiles, i, k; + gint nfiles, i; guchar fileName[MAX_PATH], linkedFile[MAX_PATH]; if (text_uri_list_atom == GDK_NONE) @@ -658,7 +658,6 @@ gdk_dropfiles_filter(GdkXEvent * xev, GdkEvent * event, gpointer data) void gdk_dnd_init(void) { - HRESULT hres; #ifdef OLE2_DND hres = OleInitialize(NULL); diff --git a/graf2d/win32gdk/gdk/src/gdk/win32/gdkdrawable-win32.c b/graf2d/win32gdk/gdk/src/gdk/win32/gdkdrawable-win32.c index 319cbe67039..b0c1a4bd7d1 100644 --- a/graf2d/win32gdk/gdk/src/gdk/win32/gdkdrawable-win32.c +++ b/graf2d/win32gdk/gdk/src/gdk/win32/gdkdrawable-win32.c @@ -177,7 +177,6 @@ gdk_win32_draw_rectangle(GdkDrawable * drawable, HDC hdc; HGDIOBJ oldpen_or_brush; POINT pts[4]; - HBRUSH stipple; gboolean ok = TRUE; GDK_NOTE(MISC, @@ -597,7 +596,7 @@ gdk_win32_draw_text_wc(GdkDrawable * drawable, gint y, const GdkWChar * text, gint text_length) { GdkGCPrivate *gc_private; - gint i, wlen; + gint i; wchar_t *wcstr; gdk_draw_text_arg arg; diff --git a/graf2d/win32gdk/gdk/src/gdk/win32/gdkevents-win32.c b/graf2d/win32gdk/gdk/src/gdk/win32/gdkevents-win32.c index 94fda911ac9..273c5688368 100644 --- a/graf2d/win32gdk/gdk/src/gdk/win32/gdkevents-win32.c +++ b/graf2d/win32gdk/gdk/src/gdk/win32/gdkevents-win32.c @@ -283,8 +283,6 @@ void gdk_events_init(void) { GSource *source; HRESULT hres; - HMODULE user32, imm32; - HINSTANCE commctrl32; gdk_ping_msg = RegisterWindowMessage("gdk-ping"); GDK_NOTE(EVENTS, g_print("gdk-ping = %#x\n", gdk_ping_msg)); @@ -389,8 +387,6 @@ gboolean gdk_events_pending(void) GdkEvent *gdk_event_get_graphics_expose(GdkWindow * window) { - MSG xevent; - GdkEvent *event; GdkWindowPrivate *private = (GdkWindowPrivate *) window; g_return_val_if_fail(window != NULL, NULL); @@ -686,7 +682,6 @@ gint gdk_key_grab(gint keycode, gint mod, GdkWindow * window) void gdk_key_ungrab(gint keycode, gint mod, GdkWindow * window) { _Gdk_key_mod *key_mod; - int i; if (window == NULL) return; if (!GDK_IS_WINDOW(window)) return; @@ -4212,7 +4207,6 @@ build_keypress_event(GdkWindowWin32Data * windata, bp = event->key.string; while (ucleft-- > 0) { int first; - int i; wchar_t c = *wcp++; if (c < 0x80) { @@ -4765,9 +4759,6 @@ gdk_event_translate(GdkEvent * event, MSG * xevent, gboolean * ret_val_flagp, gint * ret_valp) { - DWORD pidActWin; - DWORD pidThis; - DWORD dwStyle; PAINTSTRUCT paintstruct; HDC hdc; HDC bgdc; @@ -4781,15 +4772,12 @@ gdk_event_translate(GdkEvent * event, HCURSOR xcursor; GdkWindow *window, *orig_window, *newwindow; GdkColormapPrivateWin32 *colormap_private; - GdkEventMask mask; GdkPixmap *pixmap; GdkDrawablePrivate *pixmap_private; int button; - int i, j, n, k; + int i, j; gchar buf[256]; - gchar *msgname; gboolean return_val; - gboolean flag; return_val = FALSE; @@ -6462,10 +6450,7 @@ gdk_event_translate(GdkEvent * event, void gdk_events_queue(void) { - GList *node; - GdkEvent *event; MSG msg; - LRESULT lres; while (!gdk_event_queue_find_first() && PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { diff --git a/graf2d/win32gdk/gdk/src/gdk/win32/gdkfont-win32.c b/graf2d/win32gdk/gdk/src/gdk/win32/gdkfont-win32.c index 8dd0d671976..dff4fc0daf7 100644 --- a/graf2d/win32gdk/gdk/src/gdk/win32/gdkfont-win32.c +++ b/graf2d/win32gdk/gdk/src/gdk/win32/gdkfont-win32.c @@ -229,7 +229,7 @@ static gchar *logfont_to_xlfd(const LOGFONT * lfp, /* Convert the facename Windows fives us from the locale-dependent * codepage to UTF-8. */ - utf8_facename = g_filename_to_utf8(lfp->lfFaceName, NULL); + utf8_facename = g_filename_to_utf8(lfp->lfFaceName, -1, NULL, NULL, NULL); /* Replace characters illegal in an XLFD with hex escapes. */ p = facename; @@ -1103,7 +1103,7 @@ GdkWin32SingleFont *gdk_font_load_internal(const gchar * font_name) fdwClipPrecision = CLIP_DEFAULT_PRECIS; fdwQuality = PROOF_QUALITY; fdwPitchAndFamily = DEFAULT_PITCH; - lpszFace = g_filename_from_utf8(font_name, NULL); + lpszFace = g_filename_from_utf8(font_name, -1, NULL, NULL, NULL); } else if (numfields != 5) { g_warning("gdk_font_load: font name %s illegal", font_name); return NULL; @@ -1287,7 +1287,7 @@ GdkWin32SingleFont *gdk_font_load_internal(const gchar * font_name) fdwPitchAndFamily = VARIABLE_PITCH; else fdwPitchAndFamily = DEFAULT_PITCH; - lpszFace = g_filename_from_utf8(family, NULL); + lpszFace = g_filename_from_utf8(family, -1, NULL, NULL, NULL); } for (tries = 0;; tries++) { @@ -1385,7 +1385,6 @@ GdkFont *gdk_font_load(const gchar * font_name) GdkFontPrivateWin32 *private; GdkWin32SingleFont *singlefont; HGDIOBJ oldfont; - HANDLE *f; TEXTMETRIC textmetric; g_return_val_if_fail(font_name != NULL, NULL); @@ -1428,7 +1427,6 @@ GdkFont *gdk_fontset_load(const gchar * fontset_name) GdkFontPrivateWin32 *private; GdkWin32SingleFont *singlefont; HGDIOBJ oldfont; - HANDLE *f; TEXTMETRIC textmetric; GSList *base_font_list = NULL; gchar *fs; @@ -1611,7 +1609,7 @@ gdk_wchar_text_handle(GdkFont * font, GdkFontPrivateWin32 *private; GdkWin32SingleFont *singlefont; GSList *list; - int i, block; + int block; const wchar_t *start, *end, *wcp; wcp = wcstr; diff --git a/graf2d/win32gdk/gdk/src/gdk/win32/gdkim-win32.c b/graf2d/win32gdk/gdk/src/gdk/win32/gdkim-win32.c index d9f9e3730bc..5eaf4537e55 100644 --- a/graf2d/win32gdk/gdk/src/gdk/win32/gdkim-win32.c +++ b/graf2d/win32gdk/gdk/src/gdk/win32/gdkim-win32.c @@ -161,7 +161,6 @@ gchar *gdk_wcstombs(const GdkWChar * src) bp = mbstr; while (*wcp) { int first; - int i; GdkWChar c = *wcp++; if (c < 0x80) { diff --git a/graf2d/win32gdk/gdk/src/gdk/win32/gdkmain-win32.c b/graf2d/win32gdk/gdk/src/gdk/win32/gdkmain-win32.c index 98c91ce0c69..879cd21b279 100644 --- a/graf2d/win32gdk/gdk/src/gdk/win32/gdkmain-win32.c +++ b/graf2d/win32gdk/gdk/src/gdk/win32/gdkmain-win32.c @@ -63,7 +63,6 @@ int __stdcall DllMain(HINSTANCE hinstDLL, DWORD dwReason, LPVOID reserved) gboolean _gdk_windowing_init_check(int argc, char **argv) { - gint i, j, k; if (getenv("GDK_IGNORE_WINTAB") != NULL) gdk_input_ignore_wintab = TRUE; diff --git a/graf2d/win32gdk/gdk/src/gdk/win32/gdkpixmap-win32.c b/graf2d/win32gdk/gdk/src/gdk/win32/gdkpixmap-win32.c index 9db6316a0a1..a787ce4d585 100644 --- a/graf2d/win32gdk/gdk/src/gdk/win32/gdkpixmap-win32.c +++ b/graf2d/win32gdk/gdk/src/gdk/win32/gdkpixmap-win32.c @@ -874,7 +874,7 @@ GdkPixmap *gdk_pixmap_foreign_new(guint32 anid) GdkDrawablePrivate *private; HBITMAP xpixmap; SIZE size; - unsigned int x_ret, y_ret, w_ret, h_ret, bw_ret, depth_ret; + unsigned int w_ret, h_ret; /* check to make sure we were passed something at least a little sane */ diff --git a/graf2d/win32gdk/gdk/src/gdk/win32/gdkproperty-win32.c b/graf2d/win32gdk/gdk/src/gdk/win32/gdkproperty-win32.c index d73ba843929..0686ea10596 100644 --- a/graf2d/win32gdk/gdk/src/gdk/win32/gdkproperty-win32.c +++ b/graf2d/win32gdk/gdk/src/gdk/win32/gdkproperty-win32.c @@ -208,7 +208,7 @@ gdk_property_change(GdkWindow * window, void gdk_property_delete(GdkWindow * window, GdkAtom property) { - gchar *prop_name, *type_name; + gchar *prop_name; extern void gdk_selection_property_delete(GdkWindow *); g_return_if_fail(window != NULL); diff --git a/graf2d/win32gdk/gdk/src/gdk/win32/gdkregion-win32.c b/graf2d/win32gdk/gdk/src/gdk/win32/gdkregion-win32.c index 31081ad00c2..8bb5afe6bd4 100644 --- a/graf2d/win32gdk/gdk/src/gdk/win32/gdkregion-win32.c +++ b/graf2d/win32gdk/gdk/src/gdk/win32/gdkregion-win32.c @@ -117,7 +117,6 @@ GdkOverlapType gdk_region_rect_in(GdkRegion * region, GdkRectangle * rect) { GdkRegionPrivate *private; RECT r; - int res; g_return_val_if_fail(region != NULL, 0); diff --git a/graf2d/win32gdk/gdk/src/gdk/win32/gdkselection-win32.c b/graf2d/win32gdk/gdk/src/gdk/win32/gdkselection-win32.c index 52731855da8..623fd98736c 100644 --- a/graf2d/win32gdk/gdk/src/gdk/win32/gdkselection-win32.c +++ b/graf2d/win32gdk/gdk/src/gdk/win32/gdkselection-win32.c @@ -158,7 +158,6 @@ gdk_selection_convert(GdkWindow * requestor, GdkAtom selection, GdkAtom target, guint32 time) { HGLOBAL hdata; - GdkSelProp *prop; guchar *ptr, *data, *datap, *p; guint i, length, slength; gchar *sel_name, *tgt_name; diff --git a/graf2d/win32gdk/gdk/src/gdk/win32/gdkwindow-win32.c b/graf2d/win32gdk/gdk/src/gdk/win32/gdkwindow-win32.c index 4e84f0efc9a..96db3932ba0 100644 --- a/graf2d/win32gdk/gdk/src/gdk/win32/gdkwindow-win32.c +++ b/graf2d/win32gdk/gdk/src/gdk/win32/gdkwindow-win32.c @@ -1214,7 +1214,6 @@ gdk_window_set_geometry_hints(GdkWindow * window, RECT rect; DWORD dwStyle; DWORD dwExStyle; - int diff; int maxw, maxh; g_return_if_fail(window != NULL); @@ -1317,10 +1316,6 @@ gdk_window_set_geometry_hints(GdkWindow * window, void gdk_window_set_title(GdkWindow * window, const gchar * title) { - gint titlelen; - wchar_t *wcstr; - gint wlen; - char *mbstr; g_return_if_fail(window != NULL); g_return_if_fail(GDK_IS_WINDOW(window)); @@ -1721,7 +1716,6 @@ GdkWindow *gdk_window_at_pointer(gint * win_x, gint * win_y) GList *gdk_window_get_children(GdkWindow * window) { - GdkWindowPrivate *private; GList *children; g_return_val_if_fail(window != NULL, NULL); @@ -2015,7 +2009,6 @@ static void gdk_propagate_shapes(HANDLE win, gboolean merge) { RECT emptyRect; HRGN region, childRegion; - RECT rect; HWND *list = NULL; gint i, num; diff --git a/graf2d/win32gdk/gdk/src/glib/config.h b/graf2d/win32gdk/gdk/src/glib/config.h new file mode 100644 index 00000000000..801c796b3d0 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/config.h @@ -0,0 +1,182 @@ +/* config.h.win32. Handcrafted for Microsoft C and gcc -mno-cygwin */ + +#if ! (defined(_MSC_VER) || defined(__GNUC__)) +#error Unrecognized Win32 compiler, edit config.h.win32 by hand +#endif + +/* Define if using alloca.c. */ +/* #undef C_ALLOCA */ + +/* Define to empty if the keyword does not work. */ +/* #undef const */ + +/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. + This function is required for alloca.c support on those systems. */ +/* #undef CRAY_STACKSEG_END */ + +/* Define if you have a working `mmap' system call. */ +/* #undef HAVE_MMAP */ + +/* Define to empty, or __inline if that's what your compiler wants. */ +#define inline __inline + +/* Define to `long' if <sys/types.h> doesn't define. */ +/* #undef off_t */ + +/* Define if you need to in order for stat and other things to work. */ +/* #undef _POSIX_SOURCE*/ + +/* Define as the return type of signal handlers (int or void). */ +#define RETSIGTYPE void + +/* Define to `unsigned' if <sys/types.h> doesn't define. */ +/* #undef size_t */ + +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at run-time. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown + */ +/* #undef STACK_DIRECTION */ + +/* Define if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Other stuff */ +//#define ENABLE_NLS 1 +#define GTK_COMPILED_WITH_DEBUGGING "minimum" + +/* #undef HAVE_CATGETS */ +/* #undef HAVE_DIRENT_H */ +#define HAVE_GETTEXT 1 +/* #undef HAVE_IPC_H */ +/* #undef HAVE_LC_MESSAGES */ +/* #undef HAVE_PWD_H */ +/* #undef HAVE_SHM_H */ +/* #undef HAVE_STPCPY */ +/* #undef HAVE_XSHM_H */ +#define HAVE_SHAPE_EXT 1 +/* #undef HAVE_SYS_SELECT_H */ +/* #undef HAVE_SYS_TIME_H */ +/* #undef HAVE_XCONVERTCASE */ + +/* #undef NO_FD_SET */ + +/* #undef XINPUT_NONE */ +/* #undef XINPUT_GXI */ +/* #undef XINPUT_XFREE */ +#define XINPUT_WIN32 1 + +/* Define as the return type of signal handlers (int or void). */ +#define RETSIGTYPE void + +/* Define if you have the __argz_count function. */ +/* #undef HAVE___ARGZ_COUNT */ + +/* Define if you have the __argz_next function. */ +/* #undef HAVE___ARGZ_NEXT */ + +/* Define if you have the __argz_stringify function. */ +/* #undef HAVE___ARGZ_STRINGIFY */ + +/* Define if you have the broken_wctype function. */ +/* #undef HAVE_BROKEN_WCTYPE */ + +/* Define if you have the dcgettext function. */ +/* #undef HAVE_DCGETTEXT */ + +/* Define if you have the getcwd function. */ +#define HAVE_GETCWD 1 + +/* Define if you have the getpagesize function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define if you have the lstat function. */ +/* #undef HAVE_LSTAT */ + +/* Define if you have the munmap function. */ +/* #undef HAVE_MUNMAP */ + +/* Define if you have the putenv function. */ +#define HAVE_PUTENV 1 +#define putenv _putenv + +/* Define if you have the setenv function. */ +/* #undef HAVE_SETENV */ + +/* Define if you have the setlocale function. */ +#define HAVE_SETLOCALE 1 + +/* Define if you have the stpcpy function. */ +/* #undef HAVE_STPCPY */ + +/* Define if you have the strcasecmp function. */ +#define HAVE_STRCASECMP 1 +#define strcasecmp _stricmp + +/* Define if you have the strchr function. */ +#define HAVE_STRCHR 1 + +/* Define if you have the strdup function. */ +#define HAVE_STRDUP 1 + +/* Define if you have the <argz.h> header file. */ +/* #undef HAVE_ARGZ_H */ + +/* Define if you have the <dirent.h> header file. */ +/* #undef HAVE_DIRENT_H */ + +/* Define if you have the <limits.h> header file. */ +#define HAVE_LIMITS_H 1 + +/* Define if you have the <locale.h> header file. */ +#define HAVE_LOCALE_H 1 + +/* Define if you have the <malloc.h> header file. */ +#define HAVE_MALLOC_H 1 + +/* Define if you have the <nl_types.h> header file. */ +/* #undef HAVE_NL_TYPES_H */ + +/* Define if you have the <pwd.h> header file. */ +/* #undef HAVE_PWD_H */ + +/* Define if you have the <string.h> header file. */ +#define HAVE_STRING_H 1 + +/* Define if you have the <sys/param.h> header file. */ +/* #undef HAVE_SYS_PARAM_H */ + +/* Define if you have the <sys/time.h> header file. */ +/* #undef HAVE_SYS_TIME_H */ + +/* Define if you have the <unistd.h> header file. */ +/* #undef HAVE_UNISTD_H */ + +/* Define if you have the <wchar.h> header file. */ +#define HAVE_WCHAR_H 1 + +/* Define if you have the <wctype.h> header file. */ +#ifdef _MSC_VER +#define HAVE_WCTYPE_H 1 +#endif /* _MSC_VER */ + +/* Define if you have the i library (-li). */ +/* #undef HAVE_LIBI */ + +/* Define if you have the intl library (-lintl). */ +/*#define HAVE_LIBINTL 1*/ + +/* define if compiled symbols have a leading underscore */ +/* #undef WITH_SYMBOL_UNDERSCORE */ + +/* Define if you have the Wintab programmer's kit */ +/* #define HAVE_WINTAB 1 */ +#undef HAVE_WINTAB + +/* Define if you have the <dimm.h> header file + * (available in the Platform SDK) +*/ +/* #define HAVE_DIMM_H 1 */ diff --git a/graf2d/win32gdk/gdk/src/glib/config.h.win32 b/graf2d/win32gdk/gdk/src/glib/config.h.win32 new file mode 100644 index 00000000000..801c796b3d0 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/config.h.win32 @@ -0,0 +1,182 @@ +/* config.h.win32. Handcrafted for Microsoft C and gcc -mno-cygwin */ + +#if ! (defined(_MSC_VER) || defined(__GNUC__)) +#error Unrecognized Win32 compiler, edit config.h.win32 by hand +#endif + +/* Define if using alloca.c. */ +/* #undef C_ALLOCA */ + +/* Define to empty if the keyword does not work. */ +/* #undef const */ + +/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. + This function is required for alloca.c support on those systems. */ +/* #undef CRAY_STACKSEG_END */ + +/* Define if you have a working `mmap' system call. */ +/* #undef HAVE_MMAP */ + +/* Define to empty, or __inline if that's what your compiler wants. */ +#define inline __inline + +/* Define to `long' if <sys/types.h> doesn't define. */ +/* #undef off_t */ + +/* Define if you need to in order for stat and other things to work. */ +/* #undef _POSIX_SOURCE*/ + +/* Define as the return type of signal handlers (int or void). */ +#define RETSIGTYPE void + +/* Define to `unsigned' if <sys/types.h> doesn't define. */ +/* #undef size_t */ + +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at run-time. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown + */ +/* #undef STACK_DIRECTION */ + +/* Define if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Other stuff */ +//#define ENABLE_NLS 1 +#define GTK_COMPILED_WITH_DEBUGGING "minimum" + +/* #undef HAVE_CATGETS */ +/* #undef HAVE_DIRENT_H */ +#define HAVE_GETTEXT 1 +/* #undef HAVE_IPC_H */ +/* #undef HAVE_LC_MESSAGES */ +/* #undef HAVE_PWD_H */ +/* #undef HAVE_SHM_H */ +/* #undef HAVE_STPCPY */ +/* #undef HAVE_XSHM_H */ +#define HAVE_SHAPE_EXT 1 +/* #undef HAVE_SYS_SELECT_H */ +/* #undef HAVE_SYS_TIME_H */ +/* #undef HAVE_XCONVERTCASE */ + +/* #undef NO_FD_SET */ + +/* #undef XINPUT_NONE */ +/* #undef XINPUT_GXI */ +/* #undef XINPUT_XFREE */ +#define XINPUT_WIN32 1 + +/* Define as the return type of signal handlers (int or void). */ +#define RETSIGTYPE void + +/* Define if you have the __argz_count function. */ +/* #undef HAVE___ARGZ_COUNT */ + +/* Define if you have the __argz_next function. */ +/* #undef HAVE___ARGZ_NEXT */ + +/* Define if you have the __argz_stringify function. */ +/* #undef HAVE___ARGZ_STRINGIFY */ + +/* Define if you have the broken_wctype function. */ +/* #undef HAVE_BROKEN_WCTYPE */ + +/* Define if you have the dcgettext function. */ +/* #undef HAVE_DCGETTEXT */ + +/* Define if you have the getcwd function. */ +#define HAVE_GETCWD 1 + +/* Define if you have the getpagesize function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define if you have the lstat function. */ +/* #undef HAVE_LSTAT */ + +/* Define if you have the munmap function. */ +/* #undef HAVE_MUNMAP */ + +/* Define if you have the putenv function. */ +#define HAVE_PUTENV 1 +#define putenv _putenv + +/* Define if you have the setenv function. */ +/* #undef HAVE_SETENV */ + +/* Define if you have the setlocale function. */ +#define HAVE_SETLOCALE 1 + +/* Define if you have the stpcpy function. */ +/* #undef HAVE_STPCPY */ + +/* Define if you have the strcasecmp function. */ +#define HAVE_STRCASECMP 1 +#define strcasecmp _stricmp + +/* Define if you have the strchr function. */ +#define HAVE_STRCHR 1 + +/* Define if you have the strdup function. */ +#define HAVE_STRDUP 1 + +/* Define if you have the <argz.h> header file. */ +/* #undef HAVE_ARGZ_H */ + +/* Define if you have the <dirent.h> header file. */ +/* #undef HAVE_DIRENT_H */ + +/* Define if you have the <limits.h> header file. */ +#define HAVE_LIMITS_H 1 + +/* Define if you have the <locale.h> header file. */ +#define HAVE_LOCALE_H 1 + +/* Define if you have the <malloc.h> header file. */ +#define HAVE_MALLOC_H 1 + +/* Define if you have the <nl_types.h> header file. */ +/* #undef HAVE_NL_TYPES_H */ + +/* Define if you have the <pwd.h> header file. */ +/* #undef HAVE_PWD_H */ + +/* Define if you have the <string.h> header file. */ +#define HAVE_STRING_H 1 + +/* Define if you have the <sys/param.h> header file. */ +/* #undef HAVE_SYS_PARAM_H */ + +/* Define if you have the <sys/time.h> header file. */ +/* #undef HAVE_SYS_TIME_H */ + +/* Define if you have the <unistd.h> header file. */ +/* #undef HAVE_UNISTD_H */ + +/* Define if you have the <wchar.h> header file. */ +#define HAVE_WCHAR_H 1 + +/* Define if you have the <wctype.h> header file. */ +#ifdef _MSC_VER +#define HAVE_WCTYPE_H 1 +#endif /* _MSC_VER */ + +/* Define if you have the i library (-li). */ +/* #undef HAVE_LIBI */ + +/* Define if you have the intl library (-lintl). */ +/*#define HAVE_LIBINTL 1*/ + +/* define if compiled symbols have a leading underscore */ +/* #undef WITH_SYMBOL_UNDERSCORE */ + +/* Define if you have the Wintab programmer's kit */ +/* #define HAVE_WINTAB 1 */ +#undef HAVE_WINTAB + +/* Define if you have the <dimm.h> header file + * (available in the Platform SDK) +*/ +/* #define HAVE_DIMM_H 1 */ diff --git a/graf2d/win32gdk/gdk/src/glib/galloca.h b/graf2d/win32gdk/gdk/src/glib/galloca.h index 703802b58b2..7bc0a5fa34b 100644 --- a/graf2d/win32gdk/gdk/src/glib/galloca.h +++ b/graf2d/win32gdk/gdk/src/glib/galloca.h @@ -27,7 +27,7 @@ #ifndef __G_ALLOCA_H__ #define __G_ALLOCA_H__ -#include <g_types.h> +#include <glib/gtypes.h> #ifdef __GNUC__ /* GCC does the right thing */ diff --git a/graf2d/win32gdk/gdk/src/glib/garray.c b/graf2d/win32gdk/gdk/src/glib/garray.c new file mode 100644 index 00000000000..9a5758f8854 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/garray.c @@ -0,0 +1,670 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <string.h> +#include <stdlib.h> +#include "glib.h" + + +#define MIN_ARRAY_SIZE 16 + +typedef struct _GRealArray GRealArray; + +struct _GRealArray +{ + guint8 *data; + guint len; + guint alloc; + guint elt_size; + guint zero_terminated : 1; + guint clear : 1; +}; + +#define g_array_elt_len(array,i) ((array)->elt_size * (i)) +#define g_array_elt_pos(array,i) ((array)->data + g_array_elt_len((array),(i))) +#define g_array_elt_zero(array, pos, len) \ + (memset (g_array_elt_pos ((array), pos), 0, g_array_elt_len ((array), len))) +#define g_array_zero_terminate(array) G_STMT_START{ \ + if ((array)->zero_terminated) \ + g_array_elt_zero ((array), (array)->len, 1); \ +}G_STMT_END + +static gint g_nearest_pow (gint num) G_GNUC_CONST; +static void g_array_maybe_expand (GRealArray *array, + gint len); + +static GMemChunk *array_mem_chunk = NULL; +G_LOCK_DEFINE_STATIC (array_mem_chunk); + +GArray* +g_array_new (gboolean zero_terminated, + gboolean clear, + guint elt_size) +{ + return (GArray*) g_array_sized_new (zero_terminated, clear, elt_size, 0); +} + +GArray* g_array_sized_new (gboolean zero_terminated, + gboolean clear, + guint elt_size, + guint reserved_size) +{ + GRealArray *array; + + G_LOCK (array_mem_chunk); + if (!array_mem_chunk) + array_mem_chunk = g_mem_chunk_new ("array mem chunk", + sizeof (GRealArray), + 1024, G_ALLOC_AND_FREE); + + array = g_chunk_new (GRealArray, array_mem_chunk); + G_UNLOCK (array_mem_chunk); + + array->data = NULL; + array->len = 0; + array->alloc = 0; + array->zero_terminated = (zero_terminated ? 1 : 0); + array->clear = (clear ? 1 : 0); + array->elt_size = elt_size; + + if (array->zero_terminated || reserved_size != 0) + { + g_array_maybe_expand (array, reserved_size); + g_array_zero_terminate(array); + } + + return (GArray*) array; +} + +gchar* +g_array_free (GArray *array, + gboolean free_segment) +{ + gchar* segment; + + g_return_val_if_fail (array, NULL); + + if (free_segment) + { + g_free (array->data); + segment = NULL; + } + else + segment = array->data; + + G_LOCK (array_mem_chunk); + g_mem_chunk_free (array_mem_chunk, array); + G_UNLOCK (array_mem_chunk); + + return segment; +} + +GArray* +g_array_append_vals (GArray *farray, + gconstpointer data, + guint len) +{ + GRealArray *array = (GRealArray*) farray; + + g_array_maybe_expand (array, len); + + memcpy (g_array_elt_pos (array, array->len), data, + g_array_elt_len (array, len)); + + array->len += len; + + g_array_zero_terminate (array); + + return farray; +} + +GArray* +g_array_prepend_vals (GArray *farray, + gconstpointer data, + guint len) +{ + GRealArray *array = (GRealArray*) farray; + + g_array_maybe_expand (array, len); + + g_memmove (g_array_elt_pos (array, len), g_array_elt_pos (array, 0), + g_array_elt_len (array, array->len)); + + memcpy (g_array_elt_pos (array, 0), data, g_array_elt_len (array, len)); + + array->len += len; + + g_array_zero_terminate (array); + + return farray; +} + +GArray* +g_array_insert_vals (GArray *farray, + guint index, + gconstpointer data, + guint len) +{ + GRealArray *array = (GRealArray*) farray; + + g_array_maybe_expand (array, len); + + g_memmove (g_array_elt_pos (array, len + index), + g_array_elt_pos (array, index), + g_array_elt_len (array, array->len - index)); + + memcpy (g_array_elt_pos (array, index), data, g_array_elt_len (array, len)); + + array->len += len; + + g_array_zero_terminate (array); + + return farray; +} + +GArray* +g_array_set_size (GArray *farray, + guint length) +{ + GRealArray *array = (GRealArray*) farray; + if (length > array->len) + { + g_array_maybe_expand (array, length - array->len); + + if (array->clear) + g_array_elt_zero (array, array->len, length - array->len); + } +#ifdef ENABLE_GC_FRIENDLY + else if (length < array->len) + g_array_elt_zero (array, length, array->len - length); +#endif /* ENABLE_GC_FRIENDLY */ + + array->len = length; + + g_array_zero_terminate (array); + + return farray; +} + +GArray* +g_array_remove_index (GArray* farray, + guint index) +{ + GRealArray* array = (GRealArray*) farray; + + g_return_val_if_fail (array, NULL); + + g_return_val_if_fail (index < array->len, NULL); + + if (index != array->len - 1) + g_memmove (g_array_elt_pos (array, index), + g_array_elt_pos (array, index + 1), + g_array_elt_len (array, array->len - index - 1)); + + array->len -= 1; + +#ifdef ENABLE_GC_FRIENDLY + g_array_elt_zero (array, array->len, 1); +#else /* !ENABLE_GC_FRIENDLY */ + g_array_zero_terminate (array); +#endif /* ENABLE_GC_FRIENDLY */ + + return farray; +} + +GArray* +g_array_remove_index_fast (GArray* farray, + guint index) +{ + GRealArray* array = (GRealArray*) farray; + + g_return_val_if_fail (array, NULL); + + g_return_val_if_fail (index < array->len, NULL); + + if (index != array->len - 1) + memcpy (g_array_elt_pos (array, index), + g_array_elt_pos (array, array->len - 1), + g_array_elt_len (array, 1)); + + array->len -= 1; + +#ifdef ENABLE_GC_FRIENDLY + g_array_elt_zero (array, array->len, 1); +#else /* !ENABLE_GC_FRIENDLY */ + g_array_zero_terminate (array); +#endif /* ENABLE_GC_FRIENDLY */ + + return farray; +} + +void +g_array_sort (GArray *farray, + GCompareFunc compare_func) +{ + GRealArray *array = (GRealArray*) farray; + + g_return_if_fail (array != NULL); + g_return_if_fail (array->data != NULL); + + qsort (array->data, + array->len, + array->elt_size, + compare_func); +} + +void +g_array_sort_with_data (GArray *farray, + GCompareDataFunc compare_func, + gpointer user_data) +{ + GRealArray *array = (GRealArray*) farray; + + g_return_if_fail (array != NULL); + g_return_if_fail (array->data != NULL); + + g_qsort_with_data (array->data, + array->len, + array->elt_size, + compare_func, + user_data); +} + + +static gint +g_nearest_pow (gint num) +{ + gint n = 1; + + while (n < num) + n <<= 1; + + return n; +} + +static void +g_array_maybe_expand (GRealArray *array, + gint len) +{ + guint want_alloc = g_array_elt_len (array, array->len + len + + array->zero_terminated); + + if (want_alloc > array->alloc) + { + want_alloc = g_nearest_pow (want_alloc); + want_alloc = MAX (want_alloc, MIN_ARRAY_SIZE); + + array->data = g_realloc (array->data, want_alloc); + +#ifdef ENABLE_GC_FRIENDLY + memset (array->data + array->alloc, 0, want_alloc - array->alloc); +#endif /* ENABLE_GC_FRIENDLY */ + + array->alloc = want_alloc; + } +} + +/* Pointer Array + */ + +typedef struct _GRealPtrArray GRealPtrArray; + +struct _GRealPtrArray +{ + gpointer *pdata; + guint len; + guint alloc; +}; + +static void g_ptr_array_maybe_expand (GRealPtrArray *array, + gint len); + +static GMemChunk *ptr_array_mem_chunk = NULL; +G_LOCK_DEFINE_STATIC (ptr_array_mem_chunk); + + +GPtrArray* +g_ptr_array_new (void) +{ + return g_ptr_array_sized_new (0); +} + +GPtrArray* +g_ptr_array_sized_new (guint reserved_size) +{ + GRealPtrArray *array; + + G_LOCK (ptr_array_mem_chunk); + if (!ptr_array_mem_chunk) + ptr_array_mem_chunk = g_mem_chunk_new ("array mem chunk", + sizeof (GRealPtrArray), + 1024, G_ALLOC_AND_FREE); + + array = g_chunk_new (GRealPtrArray, ptr_array_mem_chunk); + G_UNLOCK (ptr_array_mem_chunk); + + array->pdata = NULL; + array->len = 0; + array->alloc = 0; + + if (reserved_size != 0) + g_ptr_array_maybe_expand (array, reserved_size); + + return (GPtrArray*) array; +} + +gpointer* +g_ptr_array_free (GPtrArray *array, + gboolean free_segment) +{ + gpointer* segment; + + g_return_val_if_fail (array, NULL); + + if (free_segment) + { + g_free (array->pdata); + segment = NULL; + } + else + segment = array->pdata; + + G_LOCK (ptr_array_mem_chunk); + g_mem_chunk_free (ptr_array_mem_chunk, array); + G_UNLOCK (ptr_array_mem_chunk); + + return segment; +} + +static void +g_ptr_array_maybe_expand (GRealPtrArray *array, + gint len) +{ + if ((array->len + len) > array->alloc) + { +#ifdef ENABLE_GC_FRIENDLY + guint old_alloc = array->alloc; +#endif /* ENABLE_GC_FRIENDLY */ + array->alloc = g_nearest_pow (array->len + len); + array->alloc = MAX (array->alloc, MIN_ARRAY_SIZE); + array->pdata = g_realloc (array->pdata, sizeof(gpointer) * array->alloc); +#ifdef ENABLE_GC_FRIENDLY + for ( ; old_alloc < array->alloc; old_alloc++) + array->pdata [old_alloc] = NULL; +#endif /* ENABLE_GC_FRIENDLY */ + } +} + +void +g_ptr_array_set_size (GPtrArray *farray, + gint length) +{ + GRealPtrArray* array = (GRealPtrArray*) farray; + + g_return_if_fail (array); + + if (length > array->len) + { + int i; + g_ptr_array_maybe_expand (array, (length - array->len)); + /* This is not + * memset (array->pdata + array->len, 0, + * sizeof (gpointer) * (length - array->len)); + * to make it really portable. Remember (void*)NULL needn't be + * bitwise zero. It of course is silly not to use memset (..,0,..). + */ + for (i = array->len; i < length; i++) + array->pdata[i] = NULL; + } +#ifdef ENABLE_GC_FRIENDLY + else if (length < array->len) + { + int i; + for (i = length; i < array->len; i++) + array->pdata[i] = NULL; + } +#endif /* ENABLE_GC_FRIENDLY */ + + array->len = length; +} + +gpointer +g_ptr_array_remove_index (GPtrArray* farray, + guint index) +{ + GRealPtrArray* array = (GRealPtrArray*) farray; + gpointer result; + + g_return_val_if_fail (array, NULL); + + g_return_val_if_fail (index < array->len, NULL); + + result = array->pdata[index]; + + if (index != array->len - 1) + g_memmove (array->pdata + index, array->pdata + index + 1, + sizeof (gpointer) * (array->len - index - 1)); + + array->len -= 1; + +#ifdef ENABLE_GC_FRIENDLY + array->pdata[array->len] = NULL; +#endif /* ENABLE_GC_FRIENDLY */ + + return result; +} + +gpointer +g_ptr_array_remove_index_fast (GPtrArray* farray, + guint index) +{ + GRealPtrArray* array = (GRealPtrArray*) farray; + gpointer result; + + g_return_val_if_fail (array, NULL); + + g_return_val_if_fail (index < array->len, NULL); + + result = array->pdata[index]; + + if (index != array->len - 1) + array->pdata[index] = array->pdata[array->len - 1]; + + array->len -= 1; + +#ifdef ENABLE_GC_FRIENDLY + array->pdata[array->len] = NULL; +#endif /* ENABLE_GC_FRIENDLY */ + + return result; +} + +gboolean +g_ptr_array_remove (GPtrArray* farray, + gpointer data) +{ + GRealPtrArray* array = (GRealPtrArray*) farray; + guint i; + + g_return_val_if_fail (array, FALSE); + + for (i = 0; i < array->len; i += 1) + { + if (array->pdata[i] == data) + { + g_ptr_array_remove_index (farray, i); + return TRUE; + } + } + + return FALSE; +} + +gboolean +g_ptr_array_remove_fast (GPtrArray* farray, + gpointer data) +{ + GRealPtrArray* array = (GRealPtrArray*) farray; + guint i; + + g_return_val_if_fail (array, FALSE); + + for (i = 0; i < array->len; i += 1) + { + if (array->pdata[i] == data) + { + g_ptr_array_remove_index_fast (farray, i); + return TRUE; + } + } + + return FALSE; +} + +void +g_ptr_array_add (GPtrArray* farray, + gpointer data) +{ + GRealPtrArray* array = (GRealPtrArray*) farray; + + g_return_if_fail (array); + + g_ptr_array_maybe_expand (array, 1); + + array->pdata[array->len++] = data; +} + +void +g_ptr_array_sort (GPtrArray *array, + GCompareFunc compare_func) +{ + g_return_if_fail (array != NULL); + g_return_if_fail (array->pdata != NULL); + + qsort (array->pdata, + array->len, + sizeof (gpointer), + compare_func); +} + +void +g_ptr_array_sort_with_data (GPtrArray *array, + GCompareDataFunc compare_func, + gpointer user_data) +{ + g_return_if_fail (array != NULL); + g_return_if_fail (array->pdata != NULL); + + g_qsort_with_data (array->pdata, + array->len, + sizeof (gpointer), + compare_func, + user_data); +} + +/* Byte arrays + */ + +GByteArray* g_byte_array_new (void) +{ + return (GByteArray*) g_array_sized_new (FALSE, FALSE, 1, 0); +} + +GByteArray* g_byte_array_sized_new (guint reserved_size) +{ + return (GByteArray*) g_array_sized_new (FALSE, FALSE, 1, reserved_size); +} + +guint8* g_byte_array_free (GByteArray *array, + gboolean free_segment) +{ + return (guint8*) g_array_free ((GArray*) array, free_segment); +} + +GByteArray* g_byte_array_append (GByteArray *array, + const guint8 *data, + guint len) +{ + g_array_append_vals ((GArray*) array, (guint8*)data, len); + + return array; +} + +GByteArray* g_byte_array_prepend (GByteArray *array, + const guint8 *data, + guint len) +{ + g_array_prepend_vals ((GArray*) array, (guint8*)data, len); + + return array; +} + +GByteArray* g_byte_array_set_size (GByteArray *array, + guint length) +{ + g_array_set_size ((GArray*) array, length); + + return array; +} + +GByteArray* g_byte_array_remove_index (GByteArray *array, + guint index) +{ + g_array_remove_index((GArray*) array, index); + + return array; +} + +GByteArray* g_byte_array_remove_index_fast (GByteArray *array, + guint index) +{ + g_array_remove_index_fast((GArray*) array, index); + + return array; +} + +void +g_byte_array_sort (GByteArray *array, + GCompareFunc compare_func) +{ + g_array_sort ((GArray *) array, compare_func); +} + +void +g_byte_array_sort_with_data (GByteArray *array, + GCompareDataFunc compare_func, + gpointer user_data) +{ + g_array_sort_with_data ((GArray *) array, compare_func, user_data); +} diff --git a/graf2d/win32gdk/gdk/src/glib/garray.h b/graf2d/win32gdk/gdk/src/glib/garray.h index 30189d06c99..56b3937fef0 100644 --- a/graf2d/win32gdk/gdk/src/glib/garray.h +++ b/graf2d/win32gdk/gdk/src/glib/garray.h @@ -27,7 +27,7 @@ #ifndef __G_ARRAY_H__ #define __G_ARRAY_H__ -#include <g_types.h> +#include <glib/gtypes.h> G_BEGIN_DECLS @@ -58,9 +58,9 @@ struct _GPtrArray * order by moving the last element to the position of the removed */ -#define g_array_append_val(a,v) g_array_append_vals (a, &v, 1) -#define g_array_prepend_val(a,v) g_array_prepend_vals (a, &v, 1) -#define g_array_insert_val(a,i,v) g_array_insert_vals (a, i, &v, 1) +#define g_array_append_val(a,v) g_array_append_vals (a, &(v), 1) +#define g_array_prepend_val(a,v) g_array_prepend_vals (a, &(v), 1) +#define g_array_insert_val(a,i,v) g_array_insert_vals (a, i, &(v), 1) #define g_array_index(a,t,i) (((t*) (a)->data) [(i)]) GArray* g_array_new (gboolean zero_terminated, @@ -91,7 +91,7 @@ GArray* g_array_remove_index_fast (GArray *array, void g_array_sort (GArray *array, GCompareFunc compare_func); void g_array_sort_with_data (GArray *array, - GCompareFuncData compare_func, + GCompareDataFunc compare_func, gpointer user_data); /* Resizable pointer array. This interface is much less complicated @@ -119,7 +119,7 @@ void g_ptr_array_add (GPtrArray *array, void g_ptr_array_sort (GPtrArray *array, GCompareFunc compare_func); void g_ptr_array_sort_with_data (GPtrArray *array, - GCompareFuncData compare_func, + GCompareDataFunc compare_func, gpointer user_data); @@ -146,7 +146,7 @@ GByteArray* g_byte_array_remove_index_fast (GByteArray *array, void g_byte_array_sort (GByteArray *array, GCompareFunc compare_func); void g_byte_array_sort_with_data (GByteArray *array, - GCompareFuncData compare_func, + GCompareDataFunc compare_func, gpointer user_data); diff --git a/graf2d/win32gdk/gdk/src/glib/gasyncqueue.c b/graf2d/win32gdk/gdk/src/glib/gasyncqueue.c new file mode 100644 index 00000000000..cb966b0ee0d --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gasyncqueue.c @@ -0,0 +1,443 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * GAsyncQueue: asynchronous queue implementation, based on Gqueue. + * Copyright (C) 2000 Sebastian Wilhelmi; University of Karlsruhe + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * MT safe + */ + +#include "glib.h" + +struct _GAsyncQueue +{ + GMutex *mutex; + GCond *cond; + GQueue *queue; + guint waiting_threads; + guint ref_count; +}; + +/** + * g_async_queue_new: + * + * Creates a new asynchronous queue with the initial reference count of 1. + * + * Return value: the new #GAsyncQueue. + **/ +GAsyncQueue* +g_async_queue_new () +{ + GAsyncQueue* retval = g_new (GAsyncQueue, 1); + retval->mutex = g_mutex_new (); + retval->cond = g_cond_new (); + retval->queue = g_queue_new (); + retval->waiting_threads = 0; + retval->ref_count = 1; + return retval; +} + +/** + * g_async_queue_ref: + * @queue: a #GAsyncQueue. + * + * Increases the reference count of the asynchronous @queue by 1. + **/ +void +g_async_queue_ref (GAsyncQueue *queue) +{ + g_return_if_fail (queue); + g_return_if_fail (queue->ref_count > 0); + + g_mutex_lock (queue->mutex); + queue->ref_count++; + g_mutex_unlock (queue->mutex); +} + +/** + * g_async_queue_ref_unlocked: + * @queue: a #GAsyncQueue. + * + * Increases the reference count of the asynchronous @queue by 1. This + * function must be called while holding the @queue's lock. + **/ +void +g_async_queue_ref_unlocked (GAsyncQueue *queue) +{ + g_return_if_fail (queue); + g_return_if_fail (queue->ref_count > 0); + + queue->ref_count++; +} + +/** + * g_async_queue_unref_and_unlock: + * @queue: a #GAsyncQueue. + * + * Decreases the reference count of the asynchronous @queue by 1 and + * releases the lock. This function must be called while holding the + * @queue's lock. If the reference count went to 0, the @queue will be + * destroyed and the memory allocated will be freed. So you are not + * allowed to use the @queue afterwards, as it might have disappeared. + * The obvious asymmetry (it is not named + * g_async_queue_unref_unlocked) is because the queue can't be + * unlocked after dereffing it, as it might already have disappeared. + **/ +void +g_async_queue_unref_and_unlock (GAsyncQueue *queue) +{ + gboolean stop; + + g_return_if_fail (queue); + g_return_if_fail (queue->ref_count > 0); + + queue->ref_count--; + stop = (queue->ref_count == 0); + g_mutex_unlock (queue->mutex); + + if (stop) + { + g_return_if_fail (queue->waiting_threads == 0); + g_mutex_free (queue->mutex); + g_cond_free (queue->cond); + g_queue_free (queue->queue); + g_free (queue); + } +} + +/** + * g_async_queue_unref: + * @queue: a #GAsyncQueue. + * + * Decreases the reference count of the asynchronous @queue by 1. If + * the reference count went to 0, the @queue will be destroyed and the + * memory allocated will be freed. So you are not allowed to use the + * @queue afterwards, as it might have disappeared. + **/ +void +g_async_queue_unref (GAsyncQueue *queue) +{ + g_return_if_fail (queue); + g_return_if_fail (queue->ref_count > 0); + + g_mutex_lock (queue->mutex); + g_async_queue_unref_and_unlock (queue); +} + +/** + * g_async_queue_lock: + * @queue: a #GAsyncQueue. + * + * Acquire the @queue's lock. After that you can only call the + * g_async_queue_*_unlocked function variants on that + * @queue. Otherwise it will deadlock. + **/ +void +g_async_queue_lock (GAsyncQueue *queue) +{ + g_return_if_fail (queue); + g_return_if_fail (queue->ref_count > 0); + + g_mutex_lock (queue->mutex); +} + +/** + * g_async_queue_unlock: + * @queue: a #GAsyncQueue. + * + * Release the queue's lock. + **/ +void +g_async_queue_unlock (GAsyncQueue *queue) +{ + g_return_if_fail (queue); + g_return_if_fail (queue->ref_count > 0); + + g_mutex_unlock (queue->mutex); +} + +/** + * g_async_queue_push: + * @queue: a #GAsyncQueue. + * @data: @data to push into the @queue. + * + * Push the @data into the @queue. @data must not be #NULL. + **/ +void +g_async_queue_push (GAsyncQueue* queue, gpointer data) +{ + g_return_if_fail (queue); + g_return_if_fail (queue->ref_count > 0); + g_return_if_fail (data); + + g_mutex_lock (queue->mutex); + g_async_queue_push_unlocked (queue, data); + g_mutex_unlock (queue->mutex); +} + +/** + * g_async_queue_push_unlocked: + * @queue: a #GAsyncQueue. + * @data: @data to push into the @queue. + * + * Push the @data into the @queue. @data must not be #NULL. This + * function must be called while holding the @queue's lock. + **/ +void +g_async_queue_push_unlocked (GAsyncQueue* queue, gpointer data) +{ + g_return_if_fail (queue); + g_return_if_fail (queue->ref_count > 0); + g_return_if_fail (data); + + g_queue_push_head (queue->queue, data); + g_cond_signal (queue->cond); +} + +static gpointer +g_async_queue_pop_intern_unlocked (GAsyncQueue* queue, gboolean tryit, + GTimeVal *end_time) +{ + gpointer retval; + + if (!g_queue_peek_tail (queue->queue)) + { + if (tryit) + return NULL; + if (!end_time) + { + queue->waiting_threads++; + while (!g_queue_peek_tail (queue->queue)) + g_cond_wait(queue->cond, queue->mutex); + queue->waiting_threads--; + } + else + { + queue->waiting_threads++; + while (!g_queue_peek_tail (queue->queue)) + if (!g_cond_timed_wait (queue->cond, queue->mutex, end_time)) + break; + queue->waiting_threads--; + if (!g_queue_peek_tail (queue->queue)) + return NULL; + } + } + + retval = g_queue_pop_tail (queue->queue); + + g_assert (retval); + + return retval; +} + +/** + * g_async_queue_pop: + * @queue: a #GAsyncQueue. + * + * Pop data from the @queue. This function blocks until data become + * available. + * + * Return value: data from the queue. + **/ +gpointer +g_async_queue_pop (GAsyncQueue* queue) +{ + gpointer retval; + + g_return_val_if_fail (queue, NULL); + g_return_val_if_fail (queue->ref_count > 0, NULL); + + g_mutex_lock (queue->mutex); + retval = g_async_queue_pop_intern_unlocked (queue, FALSE, NULL); + g_mutex_unlock (queue->mutex); + + return retval; +} + +/** + * g_async_queue_pop_unlocked: + * @queue: a #GAsyncQueue. + * + * Pop data from the @queue. This function blocks until data become + * available. This function must be called while holding the @queue's + * lock. + * + * Return value: data from the queue. + **/ +gpointer +g_async_queue_pop_unlocked (GAsyncQueue* queue) +{ + g_return_val_if_fail (queue, NULL); + g_return_val_if_fail (queue->ref_count > 0, NULL); + + return g_async_queue_pop_intern_unlocked (queue, FALSE, NULL); +} + +/** + * g_async_queue_try_pop: + * @queue: a #GAsyncQueue. + * + * Try to pop data from the @queue. If no data is available, #NULL is + * returned. + * + * Return value: data from the queue or #NULL, when no data is + * available immediately. + **/ +gpointer +g_async_queue_try_pop (GAsyncQueue* queue) +{ + gpointer retval; + + g_return_val_if_fail (queue, NULL); + g_return_val_if_fail (queue->ref_count > 0, NULL); + + g_mutex_lock (queue->mutex); + retval = g_async_queue_pop_intern_unlocked (queue, TRUE, NULL); + g_mutex_unlock (queue->mutex); + + return retval; +} + +/** + * g_async_queue_try_pop_unlocked: + * @queue: a #GAsyncQueue. + * + * Try to pop data from the @queue. If no data is available, #NULL is + * returned. This function must be called while holding the @queue's + * lock. + * + * Return value: data from the queue or #NULL, when no data is + * available immediately. + **/ +gpointer +g_async_queue_try_pop_unlocked (GAsyncQueue* queue) +{ + g_return_val_if_fail (queue, NULL); + g_return_val_if_fail (queue->ref_count > 0, NULL); + + return g_async_queue_pop_intern_unlocked (queue, TRUE, NULL); +} + +/** + * g_async_queue_timed_pop: + * @queue: a #GAsyncQueue. + * @end_time: a #GTimeVal, determining the final time. + * + * Pop data from the @queue. If no data is received before @end_time, + * #NULL is returned. + * + * To easily calculate @end_time a combination of g_get_current_time() + * and g_time_val_add() can be used. + * + * Return value: data from the queue or #NULL, when no data is + * received before @end_time. + **/ +gpointer +g_async_queue_timed_pop (GAsyncQueue* queue, GTimeVal *end_time) +{ + gpointer retval; + + g_return_val_if_fail (queue, NULL); + g_return_val_if_fail (queue->ref_count > 0, NULL); + + g_mutex_lock (queue->mutex); + retval = g_async_queue_pop_intern_unlocked (queue, FALSE, end_time); + g_mutex_unlock (queue->mutex); + + return retval; +} + +/** + * g_async_queue_timed_pop_unlocked: + * @queue: a #GAsyncQueue. + * @end_time: a #GTimeVal, determining the final time. + * + * Pop data from the @queue. If no data is received before @end_time, + * #NULL is returned. This function must be called while holding the + * @queue's lock. + * + * To easily calculate @end_time a combination of g_get_current_time() + * and g_time_val_add() can be used. + * + * Return value: data from the queue or #NULL, when no data is + * received before @end_time. + **/ +gpointer +g_async_queue_timed_pop_unlocked (GAsyncQueue* queue, GTimeVal *end_time) +{ + g_return_val_if_fail (queue, NULL); + g_return_val_if_fail (queue->ref_count > 0, NULL); + + return g_async_queue_pop_intern_unlocked (queue, FALSE, end_time); +} + +/** + * g_async_queue_length: + * @queue: a #GAsyncQueue. + * + * Returns the length of the queue, negative values mean waiting + * threads, positive values mean available entries in the + * @queue. Actually this function returns the number of data items in + * the queue minus the number of waiting threads. Thus a return value + * of 0 could mean 'n' entries in the queue and 'n' thread waiting. + * That can happen due to locking of the queue or due to + * scheduling. + * + * Return value: the length of the @queue. + **/ +gint +g_async_queue_length (GAsyncQueue* queue) +{ + gint retval; + + g_return_val_if_fail (queue, 0); + g_return_val_if_fail (queue->ref_count > 0, 0); + + g_mutex_lock (queue->mutex); + retval = queue->queue->length - queue->waiting_threads; + g_mutex_unlock (queue->mutex); + + return retval; +} + +/** + * g_async_queue_length_unlocked: + * @queue: a #GAsyncQueue. + * + * Returns the length of the queue, negative values mean waiting + * threads, positive values mean available entries in the + * @queue. Actually this function returns the number of data items in + * the queue minus the number of waiting threads. Thus a return value + * of 0 could mean 'n' entries in the queue and 'n' thread waiting. + * That can happen due to locking of the queue or due to + * scheduling. This function must be called while holding the @queue's + * lock. + * + * Return value: the length of the @queue. + **/ +gint +g_async_queue_length_unlocked (GAsyncQueue* queue) +{ + g_return_val_if_fail (queue, 0); + g_return_val_if_fail (queue->ref_count > 0, 0); + + return queue->queue->length - queue->waiting_threads; +} + diff --git a/graf2d/win32gdk/gdk/src/glib/gasyncqueue.h b/graf2d/win32gdk/gdk/src/glib/gasyncqueue.h index 6e87425f7a8..0f1a80db996 100644 --- a/graf2d/win32gdk/gdk/src/glib/gasyncqueue.h +++ b/graf2d/win32gdk/gdk/src/glib/gasyncqueue.h @@ -27,7 +27,7 @@ #ifndef __G_ASYNCQUEUE_H__ #define __G_ASYNCQUEUE_H__ -#include <gthread.h> +#include <glib/gthread.h> G_BEGIN_DECLS diff --git a/graf2d/win32gdk/gdk/src/glib/gbacktrace.c b/graf2d/win32gdk/gdk/src/glib/gbacktrace.c new file mode 100644 index 00000000000..7d131af7407 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gbacktrace.c @@ -0,0 +1,300 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe ; except for g_on_error_stack_trace, but who wants thread safety + * then + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <signal.h> +#include <stdarg.h> +#include <stdio.h> +#include <stdlib.h> +#include "glib.h" +#ifdef HAVE_SYS_TIME_H +#include <sys/time.h> +#endif +#ifdef HAVE_SYS_TIMES_H +#include <sys/times.h> +#endif +#include <sys/types.h> + +#include <time.h> +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif + +#ifdef HAVE_SYS_SELECT_H +#include <sys/select.h> +#endif /* HAVE_SYS_SELECT_H */ + +#ifdef STDC_HEADERS +#include <string.h> /* for bzero on BSD systems */ +#endif + +#ifdef G_OS_WIN32 +# define STRICT /* Strict typing, please */ +# include <windows.h> +# undef STRICT +#endif + +#ifndef NO_FD_SET +# define SELECT_MASK fd_set +#else +# if defined(_IBMR2) +# define SELECT_MASK void +# else +# define SELECT_MASK int +# endif +#endif + + +#ifndef G_OS_WIN32 +static void stack_trace (char **args); +#endif + +extern volatile gboolean glib_on_error_halt; +volatile gboolean glib_on_error_halt = TRUE; + +void +g_on_error_query (const gchar *prg_name) +{ +#ifndef G_OS_WIN32 + static const gchar *query1 = "[E]xit, [H]alt"; + static const gchar *query2 = ", show [S]tack trace"; + static const gchar *query3 = " or [P]roceed"; + gchar buf[16]; + + if (!prg_name) + prg_name = g_get_prgname (); + + retry: + + if (prg_name) + fprintf (stdout, + "%s (pid:%u): %s%s%s: ", + prg_name, + (guint) getpid (), + query1, + query2, + query3); + else + fprintf (stdout, + "(process:%u): %s%s: ", + (guint) getpid (), + query1, + query3); + fflush (stdout); + + if (isatty(0) && isatty(1)) + fgets (buf, 8, stdin); + else + strcpy (buf, "E\n"); + + if ((buf[0] == 'E' || buf[0] == 'e') + && buf[1] == '\n') + _exit (0); + else if ((buf[0] == 'P' || buf[0] == 'p') + && buf[1] == '\n') + return; + else if (prg_name + && (buf[0] == 'S' || buf[0] == 's') + && buf[1] == '\n') + { + g_on_error_stack_trace (prg_name); + goto retry; + } + else if ((buf[0] == 'H' || buf[0] == 'h') + && buf[1] == '\n') + { + while (glib_on_error_halt) + ; + glib_on_error_halt = TRUE; + return; + } + else + goto retry; +#else + if (!prg_name) + prg_name = g_get_prgname (); + + MessageBox (NULL, "g_on_error_query called, program terminating", + (prg_name && *prg_name) ? prg_name : NULL, + MB_OK|MB_ICONERROR); + _exit(0); +#endif +} + +void +g_on_error_stack_trace (const gchar *prg_name) +{ +#ifdef G_OS_UNIX + pid_t pid; + gchar buf[16]; + gchar *args[4] = { "gdb", NULL, NULL, NULL }; + + if (!prg_name) + return; + + sprintf (buf, "%u", (guint) getpid ()); + + args[1] = (gchar*) prg_name; + args[2] = buf; + + pid = fork (); + if (pid == 0) + { + stack_trace (args); + _exit (0); + } + else if (pid == (pid_t) -1) + { + perror ("unable to fork gdb"); + return; + } + + while (glib_on_error_halt) + ; + glib_on_error_halt = TRUE; +#else + abort (); +#endif +} + +#ifndef G_OS_WIN32 + +static gboolean stack_trace_done = FALSE; + +static void +stack_trace_sigchld (int signum) +{ + stack_trace_done = TRUE; +} + +static void +stack_trace (char **args) +{ + pid_t pid; + int in_fd[2]; + int out_fd[2]; + SELECT_MASK fdset; + SELECT_MASK readset; + struct timeval tv; + int sel, index, state; + char buffer[256]; + char c; + + stack_trace_done = FALSE; + signal (SIGCHLD, stack_trace_sigchld); + + if ((pipe (in_fd) == -1) || (pipe (out_fd) == -1)) + { + perror ("unable to open pipe"); + _exit (0); + } + + pid = fork (); + if (pid == 0) + { + close (0); dup (in_fd[0]); /* set the stdin to the in pipe */ + close (1); dup (out_fd[1]); /* set the stdout to the out pipe */ + close (2); dup (out_fd[1]); /* set the stderr to the out pipe */ + + execvp (args[0], args); /* exec gdb */ + perror ("exec failed"); + _exit (0); + } + else if (pid == (pid_t) -1) + { + perror ("unable to fork"); + _exit (0); + } + + FD_ZERO (&fdset); + FD_SET (out_fd[0], &fdset); + + write (in_fd[1], "backtrace\n", 10); + write (in_fd[1], "p x = 0\n", 8); + write (in_fd[1], "quit\n", 5); + + index = 0; + state = 0; + + while (1) + { + readset = fdset; + tv.tv_sec = 1; + tv.tv_usec = 0; + + sel = select (FD_SETSIZE, &readset, NULL, NULL, &tv); + if (sel == -1) + break; + + if ((sel > 0) && (FD_ISSET (out_fd[0], &readset))) + { + if (read (out_fd[0], &c, 1)) + { + switch (state) + { + case 0: + if (c == '#') + { + state = 1; + index = 0; + buffer[index++] = c; + } + break; + case 1: + buffer[index++] = c; + if ((c == '\n') || (c == '\r')) + { + buffer[index] = 0; + fprintf (stdout, "%s", buffer); + state = 0; + index = 0; + } + break; + default: + break; + } + } + } + else if (stack_trace_done) + break; + } + + close (in_fd[0]); + close (in_fd[1]); + close (out_fd[0]); + close (out_fd[1]); + _exit (0); +} + +#endif /* !G_OS_WIN32 */ diff --git a/graf2d/win32gdk/gdk/src/glib/gbacktrace.h b/graf2d/win32gdk/gdk/src/glib/gbacktrace.h index 38d667ff46a..93b51749ca9 100644 --- a/graf2d/win32gdk/gdk/src/glib/gbacktrace.h +++ b/graf2d/win32gdk/gdk/src/glib/gbacktrace.h @@ -27,7 +27,7 @@ #ifndef __G_BACKTRACE_H__ #define __G_BACKTRACE_H__ -#include <g_types.h> +#include <glib/gtypes.h> G_BEGIN_DECLS diff --git a/graf2d/win32gdk/gdk/src/glib/gbsearcharray.c b/graf2d/win32gdk/gdk/src/glib/gbsearcharray.c new file mode 100644 index 00000000000..3343e8477dd --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gbsearcharray.c @@ -0,0 +1,213 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * Copyright (C) 2000-2001 Tim Janik + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307, USA. + */ +#define G_IMPLEMENT_INLINES 1 +#define __G_BSEARCHARRAY_C__ +#include "gbsearcharray.h" + +#include <string.h> + + +/* --- structures --- */ +GBSearchArray* +g_bsearch_array_new (guint16 sizeof_node, + GBSearchCompareFunc node_cmp_func, + GBSearchArrayFlags flags) +{ + GBSearchArray *barray; + + g_return_val_if_fail (sizeof_node > 0, NULL); + g_return_val_if_fail (node_cmp_func != NULL, NULL); + + barray = g_new0 (GBSearchArray, 1); + barray->sizeof_node = sizeof_node; + barray->cmp_nodes = node_cmp_func; + barray->flags = flags; + + return barray; +} + +void +g_bsearch_array_destroy (GBSearchArray *barray) +{ + g_return_if_fail (barray != NULL); + +#if 0 + if (barray->destroy_node) + while (barray->n_nodes) + { + barray->destroy_node (((guint8*) barray->nodes) + (barray->n_nodes - 1) * barray->sizeof_node); + barray->n_nodes--; + } +#endif + g_free (barray->nodes); + g_free (barray); +} + +static inline guint +upper_power2 (guint number) +{ +#ifdef DISABLE_MEM_POOLS + return number; +#else /* !DISABLE_MEM_POOLS */ + return number ? 1 << g_bit_storage (number - 1) : 0; +#endif /* !DISABLE_MEM_POOLS */ +} + +static inline gpointer +bsearch_array_insert (GBSearchArray *barray, + gconstpointer key_node, + gboolean replace) +{ + gint sizeof_node; + guint8 *check; + + sizeof_node = barray->sizeof_node; + if (barray->n_nodes == 0) + { + guint new_size = barray->sizeof_node; + + if (barray->flags & G_BSEARCH_ARRAY_ALIGN_POWER2) + new_size = upper_power2 (new_size); + barray->nodes = g_realloc (barray->nodes, new_size); + barray->n_nodes = 1; + check = barray->nodes; + } + else + { + GBSearchCompareFunc cmp_nodes = barray->cmp_nodes; + guint n_nodes = barray->n_nodes; + guint8 *nodes = barray->nodes; + gint cmp; + guint i; + + nodes -= sizeof_node; + do + { + i = (n_nodes + 1) >> 1; + check = nodes + i * sizeof_node; + cmp = cmp_nodes (key_node, check); + if (cmp > 0) + { + n_nodes -= i; + nodes = check; + } + else if (cmp < 0) + n_nodes = i - 1; + else /* if (cmp == 0) */ + { + if (replace) + { +#if 0 + if (barray->destroy_node) + barray->destroy_node (check); +#endif + memcpy (check, key_node, sizeof_node); + } + return check; + } + } + while (n_nodes); + /* grow */ + if (cmp > 0) + check += sizeof_node; + i = (check - ((guint8*) barray->nodes)) / sizeof_node; + n_nodes = barray->n_nodes++; + if (barray->flags & G_BSEARCH_ARRAY_ALIGN_POWER2) + { + guint new_size = upper_power2 (barray->n_nodes * sizeof_node); + guint old_size = upper_power2 (n_nodes * sizeof_node); + + if (new_size != old_size) + barray->nodes = g_realloc (barray->nodes, new_size); + } + else + barray->nodes = g_realloc (barray->nodes, barray->n_nodes * sizeof_node); + check = ((guint8*) barray->nodes) + i * sizeof_node; + g_memmove (check + sizeof_node, check, (n_nodes - i) * sizeof_node); + } + memcpy (check, key_node, sizeof_node); + + return check; +} + +gpointer +g_bsearch_array_insert (GBSearchArray *barray, + gconstpointer key_node, + gboolean replace_existing) +{ + g_return_val_if_fail (barray != NULL, NULL); + g_return_val_if_fail (key_node != NULL, NULL); + + return bsearch_array_insert (barray, key_node, replace_existing); +} + +void +g_bsearch_array_remove_node (GBSearchArray *barray, + gpointer _node_in_array) +{ + guint8 *nodes, *bound, *node_in_array = _node_in_array; + guint old_size; + + g_return_if_fail (barray != NULL); + + nodes = barray->nodes; + old_size = barray->sizeof_node; + old_size *= barray->n_nodes; /* beware of int widths */ + bound = nodes + old_size; + + g_return_if_fail (node_in_array >= nodes && node_in_array < bound); + +#if 0 + if (barray->destroy_node) + barray->destroy_node (node_in_array); +#endif + bound -= barray->sizeof_node; + barray->n_nodes -= 1; + g_memmove (node_in_array, node_in_array + barray->sizeof_node, (bound - node_in_array) / barray->sizeof_node); + + if ((barray->flags & G_BSEARCH_ARRAY_DEFER_SHRINK) == 0) + { + guint new_size = bound - nodes; /* old_size - barray->sizeof_node */ + + if (barray->flags & G_BSEARCH_ARRAY_ALIGN_POWER2) + { + new_size = upper_power2 (new_size); + old_size = upper_power2 (old_size); + if (old_size != new_size) + barray->nodes = g_realloc (barray->nodes, new_size); + } + else + barray->nodes = g_realloc (barray->nodes, new_size); + } +} + +void +g_bsearch_array_remove (GBSearchArray *barray, + gconstpointer key_node) +{ + gpointer node_in_array; + + g_return_if_fail (barray != NULL); + + node_in_array = g_bsearch_array_lookup (barray, key_node); + if (!node_in_array) + g_warning (G_STRLOC ": unable to remove unexistant node"); + else + g_bsearch_array_remove_node (barray, node_in_array); +} diff --git a/graf2d/win32gdk/gdk/src/glib/gbsearcharray.h b/graf2d/win32gdk/gdk/src/glib/gbsearcharray.h new file mode 100644 index 00000000000..1682a76064e --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gbsearcharray.h @@ -0,0 +1,148 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * Copyright (C) 2000-2001 Tim Janik + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307, USA. + * + * gbsearcharray.h: binary searchable sorted array maintenance + */ +#ifndef __G_BSEARCH_ARRAY_H__ +#define __G_BSEARCH_ARRAY_H__ + +#include <gobject/gtype.h> + +G_BEGIN_DECLS + +/* helper macro to avoid signed overflow for value comparisions */ +#define G_BSEARCH_ARRAY_CMP(v1,v2) ((v1) < (v2) ? -1 : (v1) > (v2)) + + +/* --- typedefs --- */ +typedef struct _GBSearchArray GBSearchArray; +typedef gint (*GBSearchCompareFunc) (gconstpointer bsearch_node1, + gconstpointer bsearch_node2); +typedef enum +{ + G_BSEARCH_ARRAY_ALIGN_POWER2 = 1 << 0, + G_BSEARCH_ARRAY_DEFER_SHRINK = 1 << 1 +} GBSearchArrayFlags; + + +/* --- structures --- */ +struct _GBSearchArray +{ + GBSearchCompareFunc cmp_nodes; + guint16 flags; + guint16 sizeof_node; + guint n_nodes; + gpointer nodes; +}; + + +/* --- prototypes --- */ +GBSearchArray* g_bsearch_array_new (guint16 sizeof_node, + GBSearchCompareFunc node_cmp_func, + GBSearchArrayFlags flags); +void g_bsearch_array_destroy (GBSearchArray *barray); +gpointer g_bsearch_array_insert (GBSearchArray *barray, + gconstpointer key_node, + gboolean replace_existing); +void g_bsearch_array_remove (GBSearchArray *barray, + gconstpointer key_node); +void g_bsearch_array_remove_node (GBSearchArray *barray, + gpointer node_in_array); +G_INLINE_FUNC +gpointer g_bsearch_array_lookup (GBSearchArray *barray, + gconstpointer key_node); +G_INLINE_FUNC +gpointer g_bsearch_array_get_nth (GBSearchArray *barray, + guint n); +G_INLINE_FUNC +guint g_bsearch_array_get_index (GBSearchArray *barray, + gpointer node_in_array); + + +/* initialization of static arrays */ +#define G_STATIC_BSEARCH_ARRAY_INIT(sizeof_node, cmp_nodes, flags) \ + { (cmp_nodes), (flags), (sizeof_node), 0, NULL } + + +/* --- implementation details --- */ +#if defined (G_CAN_INLINE) || defined (__G_BSEARCHARRAY_C__) +G_INLINE_FUNC gpointer +g_bsearch_array_lookup (GBSearchArray *barray, + gconstpointer key_node) +{ + if (barray->n_nodes > 0) + { + GBSearchCompareFunc cmp_nodes = barray->cmp_nodes; + gint sizeof_node = barray->sizeof_node; + guint n_nodes = barray->n_nodes; + guint8 *nodes = (guint8 *) barray->nodes; + + nodes -= sizeof_node; + do + { + guint8 *check; + guint i; + register gint cmp; + + i = (n_nodes + 1) >> 1; + check = nodes + i * sizeof_node; + cmp = cmp_nodes (key_node, check); + if (cmp == 0) + return check; + else if (cmp > 0) + { + n_nodes -= i; + nodes = check; + } + else /* if (cmp < 0) */ + n_nodes = i - 1; + } + while (n_nodes); + } + + return NULL; +} +G_INLINE_FUNC gpointer +g_bsearch_array_get_nth (GBSearchArray *barray, + guint n) +{ + if (n < barray->n_nodes) + { + guint8 *nodes = (guint8*) barray->nodes; + + return nodes + n * barray->sizeof_node; + } + else + return NULL; +} +G_INLINE_FUNC +guint +g_bsearch_array_get_index (GBSearchArray *barray, + gpointer node_in_array) +{ + guint distance = ((guint8*) node_in_array) - ((guint8*) barray->nodes); + + distance /= barray->sizeof_node; + + return MIN (distance, barray->n_nodes); +} +#endif /* G_CAN_INLINE || __G_BSEARCHARRAY_C__ */ + +G_END_DECLS + +#endif /* __G_BSEARCH_ARRAY_H__ */ diff --git a/graf2d/win32gdk/gdk/src/glib/gcache.c b/graf2d/win32gdk/gdk/src/glib/gcache.c new file mode 100644 index 00000000000..12e99a66b3c --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gcache.c @@ -0,0 +1,212 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe + */ + +#include "glib.h" + + +typedef struct _GCacheNode GCacheNode; + +struct _GCacheNode +{ + /* A reference counted node */ + gpointer value; + gint ref_count; +}; + +struct _GCache +{ + /* Called to create a value from a key */ + GCacheNewFunc value_new_func; + + /* Called to destroy a value */ + GCacheDestroyFunc value_destroy_func; + + /* Called to duplicate a key */ + GCacheDupFunc key_dup_func; + + /* Called to destroy a key */ + GCacheDestroyFunc key_destroy_func; + + /* Associates keys with nodes */ + GHashTable *key_table; + + /* Associates nodes with keys */ + GHashTable *value_table; +}; + + +static GCacheNode* g_cache_node_new (gpointer value); +static void g_cache_node_destroy (GCacheNode *node); + + +static GMemChunk *node_mem_chunk = NULL; +G_LOCK_DEFINE_STATIC (node_mem_chunk); + +GCache* +g_cache_new (GCacheNewFunc value_new_func, + GCacheDestroyFunc value_destroy_func, + GCacheDupFunc key_dup_func, + GCacheDestroyFunc key_destroy_func, + GHashFunc hash_key_func, + GHashFunc hash_value_func, + GEqualFunc key_equal_func) +{ + GCache *cache; + + g_return_val_if_fail (value_new_func != NULL, NULL); + g_return_val_if_fail (value_destroy_func != NULL, NULL); + g_return_val_if_fail (key_dup_func != NULL, NULL); + g_return_val_if_fail (key_destroy_func != NULL, NULL); + g_return_val_if_fail (hash_key_func != NULL, NULL); + g_return_val_if_fail (hash_value_func != NULL, NULL); + g_return_val_if_fail (key_equal_func != NULL, NULL); + + cache = g_new (GCache, 1); + cache->value_new_func = value_new_func; + cache->value_destroy_func = value_destroy_func; + cache->key_dup_func = key_dup_func; + cache->key_destroy_func = key_destroy_func; + cache->key_table = g_hash_table_new (hash_key_func, key_equal_func); + cache->value_table = g_hash_table_new (hash_value_func, NULL); + + return cache; +} + +void +g_cache_destroy (GCache *cache) +{ + g_return_if_fail (cache != NULL); + + g_hash_table_destroy (cache->key_table); + g_hash_table_destroy (cache->value_table); + g_free (cache); +} + +gpointer +g_cache_insert (GCache *cache, + gpointer key) +{ + GCacheNode *node; + gpointer value; + + g_return_val_if_fail (cache != NULL, NULL); + + node = g_hash_table_lookup (cache->key_table, key); + if (node) + { + node->ref_count += 1; + return node->value; + } + + key = (* cache->key_dup_func) (key); + value = (* cache->value_new_func) (key); + node = g_cache_node_new (value); + + g_hash_table_insert (cache->key_table, key, node); + g_hash_table_insert (cache->value_table, value, key); + + return node->value; +} + +void +g_cache_remove (GCache *cache, + gconstpointer value) +{ + GCacheNode *node; + gpointer key; + + g_return_if_fail (cache != NULL); + + key = g_hash_table_lookup (cache->value_table, value); + node = g_hash_table_lookup (cache->key_table, key); + + g_return_if_fail (node != NULL); + + node->ref_count -= 1; + if (node->ref_count == 0) + { + g_hash_table_remove (cache->value_table, value); + g_hash_table_remove (cache->key_table, key); + + (* cache->key_destroy_func) (key); + (* cache->value_destroy_func) (node->value); + g_cache_node_destroy (node); + } +} + +void +g_cache_key_foreach (GCache *cache, + GHFunc func, + gpointer user_data) +{ + g_return_if_fail (cache != NULL); + g_return_if_fail (func != NULL); + + g_hash_table_foreach (cache->value_table, func, user_data); +} + +void +g_cache_value_foreach (GCache *cache, + GHFunc func, + gpointer user_data) +{ + g_return_if_fail (cache != NULL); + g_return_if_fail (func != NULL); + + g_hash_table_foreach (cache->key_table, func, user_data); +} + + +static GCacheNode* +g_cache_node_new (gpointer value) +{ + GCacheNode *node; + + G_LOCK (node_mem_chunk); + if (!node_mem_chunk) + node_mem_chunk = g_mem_chunk_new ("cache node mem chunk", sizeof (GCacheNode), + 1024, G_ALLOC_AND_FREE); + + node = g_chunk_new (GCacheNode, node_mem_chunk); + G_UNLOCK (node_mem_chunk); + + node->value = value; + node->ref_count = 1; + + return node; +} + +static void +g_cache_node_destroy (GCacheNode *node) +{ + G_LOCK (node_mem_chunk); + g_mem_chunk_free (node_mem_chunk, node); + G_UNLOCK (node_mem_chunk); +} diff --git a/graf2d/win32gdk/gdk/src/glib/gcache.h b/graf2d/win32gdk/gdk/src/glib/gcache.h index 74ef5b654b9..a9128b653a0 100644 --- a/graf2d/win32gdk/gdk/src/glib/gcache.h +++ b/graf2d/win32gdk/gdk/src/glib/gcache.h @@ -27,7 +27,7 @@ #ifndef __G_CACHE_H__ #define __G_CACHE_H__ -#include <glist.h> +#include <glib/glist.h> G_BEGIN_DECLS diff --git a/graf2d/win32gdk/gdk/src/glib/gcompletion.c b/graf2d/win32gdk/gdk/src/glib/gcompletion.c new file mode 100644 index 00000000000..9a33ff5ca19 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gcompletion.c @@ -0,0 +1,294 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe + */ + +#include "glib.h" +#include <string.h> + +static void completion_check_cache (GCompletion* cmp, + gchar** new_prefix); + +GCompletion* +g_completion_new (GCompletionFunc func) +{ + GCompletion* gcomp; + + gcomp = g_new (GCompletion, 1); + gcomp->items = NULL; + gcomp->cache = NULL; + gcomp->prefix = NULL; + gcomp->func = func; + gcomp->strncmp_func = strncmp; + + return gcomp; +} + +void +g_completion_add_items (GCompletion* cmp, + GList* items) +{ + GList* it; + + g_return_if_fail (cmp != NULL); + g_return_if_fail (items != NULL); + + /* optimize adding to cache? */ + if (cmp->cache) + { + g_list_free (cmp->cache); + cmp->cache = NULL; + } + + if (cmp->prefix) + { + g_free (cmp->prefix); + cmp->prefix = NULL; + } + + it = items; + while (it) + { + cmp->items = g_list_prepend (cmp->items, it->data); + it = it->next; + } +} + +void +g_completion_remove_items (GCompletion* cmp, + GList* items) +{ + GList* it; + + g_return_if_fail (cmp != NULL); + g_return_if_fail (items != NULL); + + it = items; + while (cmp->items && it) + { + cmp->items = g_list_remove (cmp->items, it->data); + it = it->next; + } + + it = items; + while (cmp->cache && it) + { + cmp->cache = g_list_remove(cmp->cache, it->data); + it = it->next; + } +} + +void +g_completion_clear_items (GCompletion* cmp) +{ + g_return_if_fail (cmp != NULL); + + g_list_free (cmp->items); + cmp->items = NULL; + g_list_free (cmp->cache); + cmp->cache = NULL; + g_free (cmp->prefix); + cmp->prefix = NULL; +} + +static void +completion_check_cache (GCompletion* cmp, + gchar** new_prefix) +{ + register GList* list; + register gsize len; + register gsize i; + register gsize plen; + gchar* postfix; + gchar* s; + + if (!new_prefix) + return; + if (!cmp->cache) + { + *new_prefix = NULL; + return; + } + + len = strlen(cmp->prefix); + list = cmp->cache; + s = cmp->func ? cmp->func (list->data) : (gchar*) list->data; + postfix = s + len; + plen = strlen (postfix); + list = list->next; + + while (list && plen) + { + s = cmp->func ? cmp->func (list->data) : (gchar*) list->data; + s += len; + for (i = 0; i < plen; ++i) + { + if (postfix[i] != s[i]) + break; + } + plen = i; + list = list->next; + } + + *new_prefix = g_new0 (gchar, len + plen + 1); + strncpy (*new_prefix, cmp->prefix, len); + strncpy (*new_prefix + len, postfix, plen); +} + +GList* +g_completion_complete (GCompletion* cmp, + gchar* prefix, + gchar** new_prefix) +{ + gsize plen, len; + gboolean done = FALSE; + GList* list; + + g_return_val_if_fail (cmp != NULL, NULL); + g_return_val_if_fail (prefix != NULL, NULL); + + len = strlen (prefix); + if (cmp->prefix && cmp->cache) + { + plen = strlen (cmp->prefix); + if (plen <= len && ! cmp->strncmp_func (prefix, cmp->prefix, plen)) + { + /* use the cache */ + list = cmp->cache; + while (list) + { + GList *next = list->next; + + if (cmp->strncmp_func (prefix, + cmp->func ? cmp->func (list->data) : (gchar*) list->data, + len)) + cmp->cache = g_list_delete_link (cmp->cache, list); + + list = next; + } + done = TRUE; + } + } + + if (!done) + { + /* normal code */ + g_list_free (cmp->cache); + cmp->cache = NULL; + list = cmp->items; + while (*prefix && list) + { + if (!cmp->strncmp_func (prefix, + cmp->func ? cmp->func (list->data) : (gchar*) list->data, + len)) + cmp->cache = g_list_prepend (cmp->cache, list->data); + list = list->next; + } + } + if (cmp->prefix) + { + g_free (cmp->prefix); + cmp->prefix = NULL; + } + if (cmp->cache) + cmp->prefix = g_strdup (prefix); + completion_check_cache (cmp, new_prefix); + + return *prefix ? cmp->cache : cmp->items; +} + +void +g_completion_free (GCompletion* cmp) +{ + g_return_if_fail (cmp != NULL); + + g_completion_clear_items (cmp); + g_free (cmp); +} + +void +g_completion_set_compare(GCompletion *cmp, + GCompletionStrncmpFunc strncmp_func) +{ + cmp->strncmp_func = strncmp_func; +} + +#ifdef TEST_COMPLETION +#include <stdio.h> +int +main (int argc, + char* argv[]) +{ + FILE *file; + gchar buf[1024]; + GList *list; + GList *result; + GList *tmp; + GCompletion *cmp; + gint i; + gchar *longp = NULL; + + if (argc < 3) + { + g_warning ("Usage: %s filename prefix1 [prefix2 ...]\n", argv[0]); + return 1; + } + + file = fopen (argv[1], "r"); + if (!file) + { + g_warning ("Cannot open %s\n", argv[1]); + return 1; + } + + cmp = g_completion_new (NULL); + list = g_list_alloc (); + while (fgets (buf, 1024, file)) + { + list->data = g_strdup (buf); + g_completion_add_items (cmp, list); + } + fclose (file); + + for (i = 2; i < argc; ++i) + { + printf ("COMPLETING: %s\n", argv[i]); + result = g_completion_complete (cmp, argv[i], &longp); + g_list_foreach (result, (GFunc) printf, NULL); + printf ("LONG MATCH: %s\n", longp); + g_free (longp); + longp = NULL; + } + + g_list_foreach (cmp->items, (GFunc) g_free, NULL); + g_completion_free (cmp); + g_list_free (list); + + return 0; +} +#endif diff --git a/graf2d/win32gdk/gdk/src/glib/gcompletion.h b/graf2d/win32gdk/gdk/src/glib/gcompletion.h index d5fca3f3af4..eab0699b518 100644 --- a/graf2d/win32gdk/gdk/src/glib/gcompletion.h +++ b/graf2d/win32gdk/gdk/src/glib/gcompletion.h @@ -27,11 +27,7 @@ #ifndef __G_COMPLETION_H__ #define __G_COMPLETION_H__ -#include <glist.h> -#include <stddef.h> /* For size_t */ -#ifdef G_OS_UNIX -#include <unistd.h> -#endif +#include <glib/glist.h> G_BEGIN_DECLS @@ -42,7 +38,9 @@ typedef gchar* (*GCompletionFunc) (gpointer); /* GCompletion */ -typedef int (*GCompletionStrncmpFunc)(const char *s1, const char *s2, size_t n); +typedef gint (*GCompletionStrncmpFunc) (const gchar *s1, + const gchar *s2, + gsize n); struct _GCompletion { diff --git a/graf2d/win32gdk/gdk/src/glib/gconvert.c b/graf2d/win32gdk/gdk/src/glib/gconvert.c new file mode 100644 index 00000000000..d904335503f --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gconvert.c @@ -0,0 +1,1321 @@ +/* GLIB - Library of useful routines for C programming + * + * gconvert.c: Convert between character sets using iconv + * Copyright Red Hat Inc., 2000 + * Authors: Havoc Pennington <hp@redhat.com>, Owen Taylor <otaylor@redhat.com + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#include <iconv.h> +#include <errno.h> +#include <string.h> +#include <stdlib.h> + +#include "glib.h" +#include "config.h" + +#ifdef G_PLATFORM_WIN32 +#define STRICT +#include <windows.h> +#undef STRICT +#endif + +#include "glibintl.h" + +GQuark +g_convert_error_quark() +{ + static GQuark quark; + if (!quark) + quark = g_quark_from_static_string ("g_convert_error"); + + return quark; +} + +#if defined(USE_LIBICONV) && !defined (_LIBICONV_H) +#error libiconv in use but included iconv.h not from libiconv +#endif +#if !defined(USE_LIBICONV) && defined (_LIBICONV_H) +#error libiconv not in use but included iconv.h is from libiconv +#endif + +/** + * g_iconv_open: + * @to_codeset: destination codeset + * @from_codeset: source codeset + * + * Same as the standard UNIX routine iconv_open(), but + * may be implemented via libiconv on UNIX flavors that lack + * a native implementation. + * + * GLib provides g_convert() and g_locale_to_utf8() which are likely + * more convenient than the raw iconv wrappers. + * + * Return value: a "conversion descriptor" + **/ +GIConv +g_iconv_open (const gchar *to_codeset, + const gchar *from_codeset) +{ + iconv_t cd = iconv_open (to_codeset, from_codeset); + + return (GIConv)cd; +} + +/** + * g_iconv: + * @converter: conversion descriptor from g_iconv_open() + * @inbuf: bytes to convert + * @inbytes_left: inout parameter, bytes remaining to convert in @inbuf + * @outbuf: converted output bytes + * @outbytes_left: inout parameter, bytes available to fill in @outbuf + * + * Same as the standard UNIX routine iconv(), but + * may be implemented via libiconv on UNIX flavors that lack + * a native implementation. + * + * GLib provides g_convert() and g_locale_to_utf8() which are likely + * more convenient than the raw iconv wrappers. + * + * Return value: count of non-reversible conversions, or -1 on error + **/ +size_t +g_iconv (GIConv converter, + gchar **inbuf, + gsize *inbytes_left, + gchar **outbuf, + gsize *outbytes_left) +{ + iconv_t cd = (iconv_t)converter; + + return iconv (cd, inbuf, inbytes_left, outbuf, outbytes_left); +} + +/** + * g_iconv_close: + * @converter: a conversion descriptor from g_iconv_open() + * + * Same as the standard UNIX routine iconv_close(), but + * may be implemented via libiconv on UNIX flavors that lack + * a native implementation. Should be called to clean up + * the conversion descriptor from iconv_open() when + * you are done converting things. + * + * GLib provides g_convert() and g_locale_to_utf8() which are likely + * more convenient than the raw iconv wrappers. + * + * Return value: -1 on error, 0 on success + **/ +gint +g_iconv_close (GIConv converter) +{ + iconv_t cd = (iconv_t)converter; + + return iconv_close (cd); +} + +static GIConv +open_converter (const gchar *to_codeset, + const gchar *from_codeset, + GError **error) +{ + GIConv cd = g_iconv_open (to_codeset, from_codeset); + + if (cd == (iconv_t) -1) + { + /* Something went wrong. */ + if (errno == EINVAL) + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_NO_CONVERSION, + _("Conversion from character set `%s' to `%s' is not supported"), + from_codeset, to_codeset); + else + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_FAILED, + _("Could not open converter from `%s' to `%s': %s"), + from_codeset, to_codeset, strerror (errno)); + } + + return cd; + +} + +/** + * g_convert: + * @str: the string to convert + * @len: the length of the string + * @to_codeset: name of character set into which to convert @str + * @from_codeset: character set of @str. + * @bytes_read: location to store the number of bytes in the + * input string that were successfully converted, or %NULL. + * Even if the conversion was succesful, this may be + * less than len if there were partial characters + * at the end of the input. If the error + * G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value + * stored will the byte fofset after the last valid + * input sequence. + * @bytes_written: the stored in the output buffer (not including the + * terminating nul. + * @error: location to store the error occuring, or %NULL to ignore + * errors. Any of the errors in #GConvertError may occur. + * + * Convert a string from one character set to another. + * + * Return value: If the conversion was successful, a newly allocated + * NUL-terminated string, which must be freed with + * g_free. Otherwise %NULL and @error will be set. + **/ +gchar* +g_convert (const gchar *str, + gssize len, + const gchar *to_codeset, + const gchar *from_codeset, + gsize *bytes_read, + gsize *bytes_written, + GError **error) +{ + gchar *res; + GIConv cd; + + g_return_val_if_fail (str != NULL, NULL); + g_return_val_if_fail (to_codeset != NULL, NULL); + g_return_val_if_fail (from_codeset != NULL, NULL); + + cd = open_converter (to_codeset, from_codeset, error); + + if (cd == (GIConv) -1) + { + if (bytes_read) + *bytes_read = 0; + + if (bytes_written) + *bytes_written = 0; + + return NULL; + } + + res = g_convert_with_iconv (str, len, cd, + bytes_read, bytes_written, + error); + + g_iconv_close (cd); + + return res; +} + +/** + * g_convert_with_iconv: + * @str: the string to convert + * @len: the length of the string + * @converter: conversion descriptor from g_iconv_open() + * @bytes_read: location to store the number of bytes in the + * input string that were successfully converted, or %NULL. + * Even if the conversion was succesful, this may be + * less than len if there were partial characters + * at the end of the input. If the error + * G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value + * stored will the byte fofset after the last valid + * input sequence. + * @bytes_written: the stored in the output buffer (not including the + * terminating nul. + * @error: location to store the error occuring, or %NULL to ignore + * errors. Any of the errors in #GConvertError may occur. + * + * Convert a string from one character set to another. + * + * Return value: If the conversion was successful, a newly allocated + * NUL-terminated string, which must be freed with + * g_free. Otherwise %NULL and @error will be set. + **/ +gchar* +g_convert_with_iconv (const gchar *str, + gssize len, + GIConv converter, + gsize *bytes_read, + gsize *bytes_written, + GError **error) +{ + gchar *dest; + gchar *outp; + const gchar *p; + gsize inbytes_remaining; + gsize outbytes_remaining; + gsize err; + gsize outbuf_size; + gboolean have_error = FALSE; + + g_return_val_if_fail (str != NULL, NULL); + g_return_val_if_fail (converter != (GIConv) -1, NULL); + + if (len < 0) + len = strlen (str); + + p = str; + inbytes_remaining = len; + outbuf_size = len + 1; /* + 1 for nul in case len == 1 */ + + outbytes_remaining = outbuf_size - 1; /* -1 for nul */ + outp = dest = g_malloc (outbuf_size); + + again: + + err = g_iconv (converter, (char **)&p, &inbytes_remaining, &outp, &outbytes_remaining); + + if (err == (size_t) -1) + { + switch (errno) + { + case EINVAL: + /* Incomplete text, do not report an error */ + break; + case E2BIG: + { + size_t used = outp - dest; + + outbuf_size *= 2; + dest = g_realloc (dest, outbuf_size); + + outp = dest + used; + outbytes_remaining = outbuf_size - used - 1; /* -1 for nul */ + + goto again; + } + case EILSEQ: + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, + _("Invalid byte sequence in conversion input")); + have_error = TRUE; + break; + default: + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_FAILED, + _("Error during conversion: %s"), + strerror (errno)); + have_error = TRUE; + break; + } + } + + *outp = '\0'; + + if (bytes_read) + *bytes_read = p - str; + else + { + if ((p - str) != len) + { + if (!have_error) + { + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_PARTIAL_INPUT, + _("Partial character sequence at end of input")); + have_error = TRUE; + } + } + } + + if (bytes_written) + *bytes_written = outp - dest; /* Doesn't include '\0' */ + + if (have_error) + { + g_free (dest); + return NULL; + } + else + return dest; +} + +/** + * g_convert_with_fallback: + * @str: the string to convert + * @len: the length of the string + * @to_codeset: name of character set into which to convert @str + * @from_codeset: character set of @str. + * @fallback: UTF-8 string to use in place of character not + * present in the target encoding. (This must be + * in the target encoding), if %NULL, characters + * not in the target encoding will be represented + * as Unicode escapes \x{XXXX} or \x{XXXXXX}. + * @bytes_read: location to store the number of bytes in the + * input string that were successfully converted, or %NULL. + * Even if the conversion was succesful, this may be + * less than len if there were partial characters + * at the end of the input. + * @bytes_written: the stored in the output buffer (not including the + * terminating nul. + * @error: location to store the error occuring, or %NULL to ignore + * errors. Any of the errors in #GConvertError may occur. + * + * Convert a string from one character set to another, possibly + * including fallback sequences for characters not representable + * in the output. Note that it is not guaranteed that the specification + * for the fallback sequences in @fallback will be honored. Some + * systems may do a approximate conversion from @from_codeset + * to @to_codeset in their iconv() functions, in which case GLib + * will simply return that approximate conversion. + * + * Return value: If the conversion was successful, a newly allocated + * NUL-terminated string, which must be freed with + * g_free. Otherwise %NULL and @error will be set. + **/ +gchar* +g_convert_with_fallback (const gchar *str, + gssize len, + const gchar *to_codeset, + const gchar *from_codeset, + gchar *fallback, + gsize *bytes_read, + gsize *bytes_written, + GError **error) +{ + gchar *utf8; + gchar *dest; + gchar *outp; + const gchar *insert_str = NULL; + const gchar *p; + gsize inbytes_remaining; + const gchar *save_p = NULL; + gsize save_inbytes = 0; + gsize outbytes_remaining; + gsize err; + GIConv cd; + gsize outbuf_size; + gboolean have_error = FALSE; + gboolean done = FALSE; + + GError *local_error = NULL; + + g_return_val_if_fail (str != NULL, NULL); + g_return_val_if_fail (to_codeset != NULL, NULL); + g_return_val_if_fail (from_codeset != NULL, NULL); + + if (len < 0) + len = strlen (str); + + /* Try an exact conversion; we only proceed if this fails + * due to an illegal sequence in the input string. + */ + dest = g_convert (str, len, to_codeset, from_codeset, + bytes_read, bytes_written, &local_error); + if (!local_error) + return dest; + + if (!g_error_matches (local_error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE)) + { + g_propagate_error (error, local_error); + return NULL; + } + else + g_error_free (local_error); + + local_error = NULL; + + /* No go; to proceed, we need a converter from "UTF-8" to + * to_codeset, and the string as UTF-8. + */ + cd = open_converter (to_codeset, "UTF-8", error); + if (cd == (GIConv) -1) + { + if (bytes_read) + *bytes_read = 0; + + if (bytes_written) + *bytes_written = 0; + + return NULL; + } + + utf8 = g_convert (str, len, "UTF-8", from_codeset, + bytes_read, &inbytes_remaining, error); + if (!utf8) + return NULL; + + /* Now the heart of the code. We loop through the UTF-8 string, and + * whenever we hit an offending character, we form fallback, convert + * the fallback to the target codeset, and then go back to + * converting the original string after finishing with the fallback. + * + * The variables save_p and save_inbytes store the input state + * for the original string while we are converting the fallback + */ + p = utf8; + + outbuf_size = len + 1; /* + 1 for nul in case len == 1 */ + outbytes_remaining = outbuf_size - 1; /* -1 for nul */ + outp = dest = g_malloc (outbuf_size); + + while (!done && !have_error) + { + size_t inbytes_tmp = inbytes_remaining; + err = g_iconv (cd, (char **)&p, &inbytes_tmp, &outp, &outbytes_remaining); + inbytes_remaining = inbytes_tmp; + + if (err == (size_t) -1) + { + switch (errno) + { + case EINVAL: + g_assert_not_reached(); + break; + case E2BIG: + { + size_t used = outp - dest; + + outbuf_size *= 2; + dest = g_realloc (dest, outbuf_size); + + outp = dest + used; + outbytes_remaining = outbuf_size - used - 1; /* -1 for nul */ + + break; + } + case EILSEQ: + if (save_p) + { + /* Error converting fallback string - fatal + */ + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, + _("Cannot convert fallback '%s' to codeset '%s'"), + insert_str, to_codeset); + have_error = TRUE; + break; + } + else + { + if (!fallback) + { + gunichar ch = g_utf8_get_char (p); + insert_str = g_strdup_printf ("\\x{%0*X}", + (ch < 0x10000) ? 4 : 6, + ch); + } + else + insert_str = fallback; + + save_p = g_utf8_next_char (p); + save_inbytes = inbytes_remaining - (save_p - p); + p = insert_str; + inbytes_remaining = strlen (p); + } + break; + default: + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_FAILED, + _("Error during conversion: %s"), + strerror (errno)); + have_error = TRUE; + break; + } + } + else + { + if (save_p) + { + if (!fallback) + g_free ((gchar *)insert_str); + p = save_p; + inbytes_remaining = save_inbytes; + save_p = NULL; + } + else + done = TRUE; + } + } + + /* Cleanup + */ + *outp = '\0'; + + g_iconv_close (cd); + + if (bytes_written) + *bytes_written = outp - str; /* Doesn't include '\0' */ + + g_free (utf8); + + if (have_error) + { + if (save_p && !fallback) + g_free ((gchar *)insert_str); + g_free (dest); + return NULL; + } + else + return dest; +} + +/* + * g_locale_to_utf8 + * + * + */ + +static gchar * +strdup_len (const gchar *string, + gssize len, + gsize *bytes_written, + gsize *bytes_read, + GError **error) + +{ + gsize real_len; + + if (!g_utf8_validate (string, -1, NULL)) + { + if (bytes_read) + *bytes_read = 0; + if (bytes_written) + *bytes_written = 0; + + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, + _("Invalid byte sequence in conversion input")); + return NULL; + } + + if (len < 0) + real_len = strlen (string); + else + { + real_len = 0; + + while (real_len < len && string[real_len]) + real_len++; + } + + if (bytes_read) + *bytes_read = real_len; + if (bytes_written) + *bytes_written = real_len; + + return g_strndup (string, real_len); +} + +/** + * g_locale_to_utf8: + * @opsysstring: a string in the encoding of the current locale + * @len: the length of the string, or -1 if the string is + * NULL-terminated. + * @bytes_read: location to store the number of bytes in the + * input string that were successfully converted, or %NULL. + * Even if the conversion was succesful, this may be + * less than len if there were partial characters + * at the end of the input. If the error + * G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value + * stored will the byte fofset after the last valid + * input sequence. + * @bytes_written: the stored in the output buffer (not including the + * terminating nul. + * @error: location to store the error occuring, or %NULL to ignore + * errors. Any of the errors in #GConvertError may occur. + * + * Converts a string which is in the encoding used for strings by + * the C runtime (usually the same as that used by the operating + * system) in the current locale into a UTF-8 string. + * + * Return value: The converted string, or %NULL on an error. + **/ +gchar * +g_locale_to_utf8 (const gchar *opsysstring, + gssize len, + gsize *bytes_read, + gsize *bytes_written, + GError **error) +{ +#ifdef G_PLATFORM_WIN32 + + gint i, clen, total_len, wclen, first; + wchar_t *wcs, wc; + gchar *result, *bp; + const wchar_t *wcp; + + if (len == -1) + len = strlen (opsysstring); + + wcs = g_new (wchar_t, len); + wclen = MultiByteToWideChar (CP_ACP, 0, opsysstring, len, wcs, len); + + wcp = wcs; + total_len = 0; + for (i = 0; i < wclen; i++) + { + wc = *wcp++; + + if (wc < 0x80) + total_len += 1; + else if (wc < 0x800) + total_len += 2; + else if (wc < 0x10000) + total_len += 3; + else if (wc < 0x200000) + total_len += 4; + else if (wc < 0x4000000) + total_len += 5; + else + total_len += 6; + } + + result = g_malloc (total_len + 1); + + wcp = wcs; + bp = result; + for (i = 0; i < wclen; i++) + { + wc = *wcp++; + + if (wc < 0x80) + { + first = 0; + clen = 1; + } + else if (wc < 0x800) + { + first = 0xc0; + clen = 2; + } + else if (wc < 0x10000) + { + first = 0xe0; + clen = 3; + } + else if (wc < 0x200000) + { + first = 0xf0; + clen = 4; + } + else if (wc < 0x4000000) + { + first = 0xf8; + clen = 5; + } + else + { + first = 0xfc; + clen = 6; + } + + /* Woo-hoo! */ + switch (clen) + { + case 6: bp[5] = (wc & 0x3f) | 0x80; wc >>= 6; /* Fall through */ + case 5: bp[4] = (wc & 0x3f) | 0x80; wc >>= 6; /* Fall through */ + case 4: bp[3] = (wc & 0x3f) | 0x80; wc >>= 6; /* Fall through */ + case 3: bp[2] = (wc & 0x3f) | 0x80; wc >>= 6; /* Fall through */ + case 2: bp[1] = (wc & 0x3f) | 0x80; wc >>= 6; /* Fall through */ + case 1: bp[0] = wc | first; + } + + bp += clen; + } + *bp = 0; + + g_free (wcs); + + if (bytes_read) + *bytes_read = len; + if (bytes_written) + *bytes_written = total_len; + + return result; + +#else /* !G_PLATFORM_WIN32 */ + + const char *charset; + + if (g_get_charset (&charset)) + return strdup_len (opsysstring, len, bytes_read, bytes_written, error); + else + return g_convert (opsysstring, len, + "UTF-8", charset, bytes_read, bytes_written, error); + +#endif /* !G_PLATFORM_WIN32 */ +} + +/** + * g_locale_from_utf8: + * @utf8string: a UTF-8 encoded string + * @len: the length of the string, or -1 if the string is + * NULL-terminated. + * @bytes_read: location to store the number of bytes in the + * input string that were successfully converted, or %NULL. + * Even if the conversion was succesful, this may be + * less than len if there were partial characters + * at the end of the input. If the error + * G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value + * stored will the byte fofset after the last valid + * input sequence. + * @bytes_written: the stored in the output buffer (not including the + * terminating nul. + * @error: location to store the error occuring, or %NULL to ignore + * errors. Any of the errors in #GConvertError may occur. + * + * Converts a string from UTF-8 to the encoding used for strings by + * the C runtime (usually the same as that used by the operating + * system) in the current locale. + * + * Return value: The converted string, or %NULL on an error. + **/ +gchar * +g_locale_from_utf8 (const gchar *utf8string, + gssize len, + gsize *bytes_read, + gsize *bytes_written, + GError **error) +{ +#ifdef G_PLATFORM_WIN32 + + gint i, mask, clen, mblen; + wchar_t *wcs, *wcp; + gchar *result; + guchar *cp, *end, c; + gint n; + + if (len == -1) + len = strlen (utf8string); + + /* First convert to wide chars */ + cp = (guchar *) utf8string; + end = cp + len; + n = 0; + wcs = g_new (wchar_t, len + 1); + wcp = wcs; + while (cp != end) + { + mask = 0; + c = *cp; + + if (c < 0x80) + { + clen = 1; + mask = 0x7f; + } + else if ((c & 0xe0) == 0xc0) + { + clen = 2; + mask = 0x1f; + } + else if ((c & 0xf0) == 0xe0) + { + clen = 3; + mask = 0x0f; + } + else if ((c & 0xf8) == 0xf0) + { + clen = 4; + mask = 0x07; + } + else if ((c & 0xfc) == 0xf8) + { + clen = 5; + mask = 0x03; + } + else if ((c & 0xfc) == 0xfc) + { + clen = 6; + mask = 0x01; + } + else + { + g_free (wcs); + return NULL; + } + + if (cp + clen > end) + { + g_free (wcs); + return NULL; + } + + *wcp = (cp[0] & mask); + for (i = 1; i < clen; i++) + { + if ((cp[i] & 0xc0) != 0x80) + { + g_free (wcs); + return NULL; + } + *wcp <<= 6; + *wcp |= (cp[i] & 0x3f); + } + + cp += clen; + wcp++; + n++; + } + if (cp != end) + { + g_free (wcs); + return NULL; + } + + /* n is the number of wide chars constructed */ + + /* Convert to a string in the current ANSI codepage */ + + result = g_new (gchar, 3 * n + 1); + mblen = WideCharToMultiByte (CP_ACP, 0, wcs, n, result, 3*n, NULL, NULL); + result[mblen] = 0; + g_free (wcs); + + if (bytes_read) + *bytes_read = len; + if (bytes_written) + *bytes_written = mblen; + + return result; + +#else /* !G_PLATFORM_WIN32 */ + + const gchar *charset; + + if (g_get_charset (&charset)) + return strdup_len (utf8string, len, bytes_read, bytes_written, error); + else + return g_convert (utf8string, len, + charset, "UTF-8", bytes_read, bytes_written, error); + +#endif /* !G_PLATFORM_WIN32 */ +} + +/** + * g_filename_to_utf8: + * @opsysstring: a string in the encoding for filenames + * @len: the length of the string, or -1 if the string is + * NULL-terminated. + * @bytes_read: location to store the number of bytes in the + * input string that were successfully converted, or %NULL. + * Even if the conversion was succesful, this may be + * less than len if there were partial characters + * at the end of the input. If the error + * G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value + * stored will the byte fofset after the last valid + * input sequence. + * @bytes_written: the stored in the output buffer (not including the + * terminating nul. + * @error: location to store the error occuring, or %NULL to ignore + * errors. Any of the errors in #GConvertError may occur. + * + * Converts a string which is in the encoding used for filenames + * into a UTF-8 string. + * + * Return value: The converted string, or %NULL on an error. + **/ +gchar* +g_filename_to_utf8 (const gchar *opsysstring, + gssize len, + gsize *bytes_read, + gsize *bytes_written, + GError **error) +{ +#ifdef G_PLATFORM_WIN32 + return g_locale_to_utf8 (opsysstring, len, + bytes_read, bytes_written, + error); +#else /* !G_PLATFORM_WIN32 */ + + if (getenv ("G_BROKEN_FILENAMES")) + return g_locale_to_utf8 (opsysstring, len, + bytes_read, bytes_written, + error); + else + return strdup_len (opsysstring, len, bytes_read, bytes_written, error); +#endif /* !G_PLATFORM_WIN32 */ +} + +/** + * g_filename_from_utf8: + * @utf8string: a UTF-8 encoded string + * @len: the length of the string, or -1 if the string is + * NULL-terminated. + * @bytes_read: location to store the number of bytes in the + * input string that were successfully converted, or %NULL. + * Even if the conversion was succesful, this may be + * less than len if there were partial characters + * at the end of the input. If the error + * G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value + * stored will the byte fofset after the last valid + * input sequence. + * @bytes_written: the stored in the output buffer (not including the + * terminating nul. + * @error: location to store the error occuring, or %NULL to ignore + * errors. Any of the errors in #GConvertError may occur. + * + * Converts a string from UTF-8 to the encoding used for filenames. + * + * Return value: The converted string, or %NULL on an error. + **/ +gchar* +g_filename_from_utf8 (const gchar *utf8string, + gssize len, + gsize *bytes_read, + gsize *bytes_written, + GError **error) +{ +#ifdef G_PLATFORM_WIN32 + return g_locale_from_utf8 (utf8string, len, + bytes_read, bytes_written, + error); +#else /* !G_PLATFORM_WIN32 */ + if (getenv ("G_BROKEN_FILENAMES")) + return g_locale_from_utf8 (utf8string, len, + bytes_read, bytes_written, + error); + else + return strdup_len (utf8string, len, bytes_read, bytes_written, error); +#endif /* !G_PLATFORM_WIN32 */ +} + +/* Test of haystack has the needle prefix, comparing case + * insensitive. haystack may be UTF-8, but needle must + * contain only ascii. */ +static gboolean +has_case_prefix (const gchar *haystack, const gchar *needle) +{ + const gchar *h, *n; + + /* Eat one character at a time. */ + h = haystack; + n = needle; + + while (*n && *h && + g_ascii_tolower (*n) == g_ascii_tolower (*h)) + { + n++; + h++; + } + + return *n == '\0'; +} + +typedef enum { + UNSAFE_ALL = 0x1, /* Escape all unsafe characters */ + UNSAFE_ALLOW_PLUS = 0x2, /* Allows '+' */ + UNSAFE_PATH = 0x4, /* Allows '/' and '?' and '&' and '=' */ + UNSAFE_DOS_PATH = 0x8, /* Allows '/' and '?' and '&' and '=' and ':' */ + UNSAFE_HOST = 0x10, /* Allows '/' and ':' and '@' */ + UNSAFE_SLASHES = 0x20 /* Allows all characters except for '/' and '%' */ +} UnsafeCharacterSet; + +static const guchar acceptable[96] = { + /* X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */ + 0x00,0x3F,0x20,0x20,0x20,0x00,0x2C,0x3F,0x3F,0x3F,0x3F,0x22,0x20,0x3F,0x3F,0x1C, /* 2X !"#$%&'()*+,-./ */ + 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x38,0x20,0x20,0x2C,0x20,0x2C, /* 3X 0123456789:;<=>? */ + 0x30,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F, /* 4X @ABCDEFGHIJKLMNO */ + 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,0x3F, /* 5X PQRSTUVWXYZ[\]^_ */ + 0x20,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F, /* 6X `abcdefghijklmno */ + 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x3F,0x20 /* 7X pqrstuvwxyz{|}~DEL */ +}; + +static const gchar hex[16] = "0123456789ABCDEF"; + +/* Note: This escape function works on file: URIs, but if you want to + * escape something else, please read RFC-2396 */ +static gchar * +g_escape_uri_string (const gchar *string, + UnsafeCharacterSet mask) +{ +#define ACCEPTABLE(a) ((a)>=32 && (a)<128 && (acceptable[(a)-32] & use_mask)) + + const gchar *p; + gchar *q; + gchar *result; + int c; + gint unacceptable; + UnsafeCharacterSet use_mask; + + g_return_val_if_fail (mask == UNSAFE_ALL + || mask == UNSAFE_ALLOW_PLUS + || mask == UNSAFE_PATH + || mask == UNSAFE_DOS_PATH + || mask == UNSAFE_HOST + || mask == UNSAFE_SLASHES, NULL); + + unacceptable = 0; + use_mask = mask; + for (p = string; *p != '\0'; p++) + { + c = *p; + if (!ACCEPTABLE (c)) + unacceptable++; + } + + result = g_malloc (p - string + unacceptable * 2 + 1); + + use_mask = mask; + for (q = result, p = string; *p != '\0'; p++) + { + c = (unsigned char)*p; + + if (!ACCEPTABLE (c)) + { + *q++ = '%'; /* means hex coming */ + *q++ = hex[c >> 4]; + *q++ = hex[c & 15]; + } + else + *q++ = *p; + } + + *q = '\0'; + + return result; +} + + +static gchar * +g_escape_file_uri (const gchar *hostname, + const gchar *pathname) +{ + char *escaped_hostname = NULL; + char *escaped_path; + char *res; + + if (hostname && *hostname != '\0') + { + escaped_hostname = g_escape_uri_string (hostname, UNSAFE_HOST); + } + + escaped_path = g_escape_uri_string (pathname, UNSAFE_DOS_PATH); + + res = g_strconcat ("file://", + (escaped_hostname) ? escaped_hostname : "", + (*escaped_path != '/') ? "/" : "", + escaped_path, + NULL); + + g_free (escaped_hostname); + g_free (escaped_path); + + return res; +} + +static int +unescape_character (const char *scanner) +{ + int first_digit; + int second_digit; + + first_digit = g_ascii_xdigit_value (*scanner++); + + if (first_digit < 0) + return -1; + + second_digit = g_ascii_xdigit_value (*scanner++); + if (second_digit < 0) + return -1; + + return (first_digit << 4) | second_digit; +} + +static gchar * +g_unescape_uri_string (const gchar *escaped, + const gchar *illegal_characters, + int len) +{ + const gchar *in, *in_end; + gchar *out, *result; + int character; + + if (escaped == NULL) + return NULL; + + if (len < 0) + len = strlen (escaped); + + result = g_malloc (len + 1); + + out = result; + for (in = escaped, in_end = escaped + len; in < in_end && *in != '\0'; in++) + { + character = *in; + if (character == '%') + { + character = unescape_character (in + 1); + + /* Check for an illegal character. We consider '\0' illegal here. */ + if (character == 0 + || (illegal_characters != NULL + && strchr (illegal_characters, (char)character) != NULL)) + { + g_free (result); + return NULL; + } + in += 2; + } + *out++ = character; + } + + *out = '\0'; + + g_assert (out - result <= strlen (escaped)); + + if (!g_utf8_validate (result, -1, NULL)) + { + g_free (result); + return NULL; + } + + return result; +} + +/** + * g_filename_from_uri: + * @uri: a uri describing a filename (escaped, encoded in UTF-8) + * @hostname: Location to store hostname for the URI, or %NULL. + * If there is no hostname in the URI, %NULL will be + * stored in this location. + * @error: location to store the error occuring, or %NULL to ignore + * errors. Any of the errors in #GConvertError may occur. + * + * Converts an escaped UTF-8 encoded URI to a local filename in the + * encoding used for filenames. + * + * Return value: a newly allocated string holding the resulting + * filename, or %NULL on an error. + **/ +gchar * +g_filename_from_uri (const char *uri, + char **hostname, + GError **error) +{ + const char *path_part; + const char *host_part; + char *unescaped_hostname; + char *result; + char *filename; + int offs; + + if (hostname) + *hostname = NULL; + + if (!has_case_prefix (uri, "file:/")) + { + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_NOT_ABSOLUTE_FILE_URI, + _("The URI `%s' is not an absolute URI using the file scheme"), + uri); + return NULL; + } + + path_part = uri + strlen ("file:"); + + if (strchr (path_part, '#') != NULL) + { + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_INVALID_URI, + _("The local file URI `%s' may not include a `#'"), + uri); + return NULL; + } + + if (has_case_prefix (path_part, "///")) + path_part += 2; + else if (has_case_prefix (path_part, "//")) + { + path_part += 2; + host_part = path_part; + + path_part = strchr (path_part, '/'); + + if (path_part == NULL) + { + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_INVALID_URI, + _("The URI `%s' is invalid"), + uri); + return NULL; + } + + unescaped_hostname = g_unescape_uri_string (host_part, "", path_part - host_part); + if (unescaped_hostname == NULL) + { + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_INVALID_URI, + _("The hostname of the URI `%s' contains invalidly escaped characters"), + uri); + return NULL; + } + + if (hostname) + *hostname = unescaped_hostname; + else + g_free (unescaped_hostname); + } + + filename = g_unescape_uri_string (path_part, "/", -1); + + if (filename == NULL) + { + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_INVALID_URI, + _("The URI `%s' contains invalidly escaped characters"), + uri); + return NULL; + } + + /* DOS uri's are like "file://host/c:\foo", so we need to check if we need to + * drop the initial slash */ + offs = 0; + if (g_path_is_absolute (filename+1)) + offs = 1; + + result = g_filename_from_utf8 (filename + offs, -1, NULL, NULL, error); + g_free (filename); + + return result; +} + +/** + * g_filename_to_uri: + * @filename: an absolute filename specified in the encoding + * used for filenames by the operating system. + * @hostname: A UTF-8 encoded hostname, or %NULL for none. + * @error: location to store the error occuring, or %NULL to ignore + * errors. Any of the errors in #GConvertError may occur. + * + * Converts an absolute filename to an escaped UTF-8 encoded URI. + * + * Return value: a newly allocated string holding the resulting + * URI, or %NULL on an error. + **/ +gchar * +g_filename_to_uri (const char *filename, + char *hostname, + GError **error) +{ + char *escaped_uri; + char *utf8_filename; + + g_return_val_if_fail (filename != NULL, NULL); + + if (!g_path_is_absolute (filename)) + { + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_NOT_ABSOLUTE_PATH, + _("The pathname '%s' is not an absolute path"), + filename); + return NULL; + } + + utf8_filename = g_filename_to_utf8 (filename, -1, NULL, NULL, error); + if (utf8_filename == NULL) + return NULL; + + if (hostname && + !g_utf8_validate (hostname, -1, NULL)) + { + g_free (utf8_filename); + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, + _("Invalid byte sequence in hostname")); + return NULL; + } + + escaped_uri = g_escape_file_uri (hostname, + utf8_filename); + g_free (utf8_filename); + + return escaped_uri; +} + diff --git a/graf2d/win32gdk/gdk/src/glib/gconvert.h b/graf2d/win32gdk/gdk/src/glib/gconvert.h index ce19b36722b..a6e9d78744f 100644 --- a/graf2d/win32gdk/gdk/src/glib/gconvert.h +++ b/graf2d/win32gdk/gdk/src/glib/gconvert.h @@ -28,7 +28,7 @@ #define __G_CONVERT_H__ #include <stddef.h> /* For size_t */ -#include <gerror.h> +#include <glib/gerror.h> G_BEGIN_DECLS @@ -37,11 +37,14 @@ typedef enum G_CONVERT_ERROR_NO_CONVERSION, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, G_CONVERT_ERROR_FAILED, - G_CONVERT_ERROR_PARTIAL_INPUT + G_CONVERT_ERROR_PARTIAL_INPUT, + G_CONVERT_ERROR_NOT_ABSOLUTE_FILE_URI, + G_CONVERT_ERROR_INVALID_URI, + G_CONVERT_ERROR_NOT_ABSOLUTE_PATH } GConvertError; #define G_CONVERT_ERROR g_convert_error_quark() -GQuark g_convert_error_quark(); +GQuark g_convert_error_quark (void); /* Thin wrappers around iconv */ @@ -51,39 +54,70 @@ GIConv g_iconv_open (const gchar *to_codeset, const gchar *from_codeset); size_t g_iconv (GIConv converter, gchar **inbuf, - size_t *inbytes_left, + gsize *inbytes_left, gchar **outbuf, - size_t *outbytes_left); + gsize *outbytes_left); gint g_iconv_close (GIConv converter); gchar* g_convert (const gchar *str, - gint len, + gssize len, const gchar *to_codeset, const gchar *from_codeset, - gint *bytes_read, - gint *bytes_written, + gsize *bytes_read, + gsize *bytes_written, + GError **error); +gchar* g_convert_with_iconv (const gchar *str, + gssize len, + GIConv converter, + gsize *bytes_read, + gsize *bytes_written, GError **error); gchar* g_convert_with_fallback (const gchar *str, - gint len, + gssize len, const gchar *to_codeset, const gchar *from_codeset, gchar *fallback, - gint *bytes_read, - gint *bytes_written, + gsize *bytes_read, + gsize *bytes_written, GError **error); /* Convert between libc's idea of strings and UTF-8. */ -gchar* g_locale_to_utf8 (const gchar *opsysstring, GError **error); -gchar* g_locale_from_utf8 (const gchar *utf8string, GError **error); +gchar* g_locale_to_utf8 (const gchar *opsysstring, + gssize len, + gsize *bytes_read, + gsize *bytes_written, + GError **error); +gchar* g_locale_from_utf8 (const gchar *utf8string, + gssize len, + gsize *bytes_read, + gsize *bytes_written, + GError **error); /* Convert between the operating system (or C runtime) * representation of file names and UTF-8. */ -gchar* g_filename_to_utf8 (const gchar *opsysstring, GError **error); -gchar* g_filename_from_utf8 (const gchar *utf8string, GError **error); +gchar* g_filename_to_utf8 (const gchar *opsysstring, + gssize len, + gsize *bytes_read, + gsize *bytes_written, + GError **error); +gchar* g_filename_from_utf8 (const gchar *utf8string, + gssize len, + gsize *bytes_read, + gsize *bytes_written, + GError **error); + +gchar *g_filename_from_uri (const char *uri, + char **hostname, + GError **error); + +gchar *g_filename_to_uri (const char *filename, + char *hostname, + GError **error); + G_END_DECLS diff --git a/graf2d/win32gdk/gdk/src/glib/gdataset.c b/graf2d/win32gdk/gdk/src/glib/gdataset.c new file mode 100644 index 00000000000..7d8d9afd47f --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gdataset.c @@ -0,0 +1,631 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * gdataset.c: Generic dataset mechanism, similar to GtkObject data. + * Copyright (C) 1998 Tim Janik + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe ; FIXME: might still freeze, watch out, not thoroughly + * looked at yet. + */ + +#include <string.h> +#include "glib.h" + + + +/* --- defines --- */ +#define G_QUARK_BLOCK_SIZE (512) +#define G_DATA_MEM_CHUNK_PREALLOC (128) +#define G_DATA_CACHE_MAX (512) +#define G_DATASET_MEM_CHUNK_PREALLOC (32) + + +/* --- structures --- */ +typedef struct _GDataset GDataset; +struct _GData +{ + GData *next; + GQuark id; + gpointer data; + GDestroyNotify destroy_func; +}; + +struct _GDataset +{ + gconstpointer location; + GData *datalist; +}; + + +/* --- prototypes --- */ +static inline GDataset* g_dataset_lookup (gconstpointer dataset_location); +static inline void g_datalist_clear_i (GData **datalist); +static void g_dataset_destroy_internal (GDataset *dataset); +static inline gpointer g_data_set_internal (GData **datalist, + GQuark key_id, + gpointer data, + GDestroyNotify destroy_func, + GDataset *dataset); +static void g_data_initialize (void); +static inline GQuark g_quark_new (gchar *string); + + +/* --- variables --- */ +G_LOCK_DEFINE_STATIC (g_dataset_global); +static GHashTable *g_dataset_location_ht = NULL; +static GDataset *g_dataset_cached = NULL; /* should this be + threadspecific? */ +static GMemChunk *g_dataset_mem_chunk = NULL; +static GMemChunk *g_data_mem_chunk = NULL; +static GData *g_data_cache = NULL; +static guint g_data_cache_length = 0; + +G_LOCK_DEFINE_STATIC (g_quark_global); +static GHashTable *g_quark_ht = NULL; +static gchar **g_quarks = NULL; +static GQuark g_quark_seq_id = 0; + + +/* --- functions --- */ + +/* HOLDS: g_dataset_global_lock */ +static inline void +g_datalist_clear_i (GData **datalist) +{ + register GData *list; + + /* unlink *all* items before walking their destructors + */ + list = *datalist; + *datalist = NULL; + + while (list) + { + register GData *prev; + + prev = list; + list = prev->next; + + if (prev->destroy_func) + { + G_UNLOCK (g_dataset_global); + prev->destroy_func (prev->data); + G_LOCK (g_dataset_global); + } + + if (g_data_cache_length < G_DATA_CACHE_MAX) + { + prev->next = g_data_cache; + g_data_cache = prev; + g_data_cache_length++; + } + else + g_mem_chunk_free (g_data_mem_chunk, prev); + } +} + +void +g_datalist_clear (GData **datalist) +{ + g_return_if_fail (datalist != NULL); + + G_LOCK (g_dataset_global); + if (!g_dataset_location_ht) + g_data_initialize (); + + while (*datalist) + g_datalist_clear_i (datalist); + G_UNLOCK (g_dataset_global); +} + +/* HOLDS: g_dataset_global_lock */ +static inline GDataset* +g_dataset_lookup (gconstpointer dataset_location) +{ + register GDataset *dataset; + + if (g_dataset_cached && g_dataset_cached->location == dataset_location) + return g_dataset_cached; + + dataset = g_hash_table_lookup (g_dataset_location_ht, dataset_location); + if (dataset) + g_dataset_cached = dataset; + + return dataset; +} + +/* HOLDS: g_dataset_global_lock */ +static void +g_dataset_destroy_internal (GDataset *dataset) +{ + register gconstpointer dataset_location; + + dataset_location = dataset->location; + while (dataset) + { + if (!dataset->datalist) + { + if (dataset == g_dataset_cached) + g_dataset_cached = NULL; + g_hash_table_remove (g_dataset_location_ht, dataset_location); + g_mem_chunk_free (g_dataset_mem_chunk, dataset); + break; + } + + g_datalist_clear_i (&dataset->datalist); + dataset = g_dataset_lookup (dataset_location); + } +} + +void +g_dataset_destroy (gconstpointer dataset_location) +{ + g_return_if_fail (dataset_location != NULL); + + G_LOCK (g_dataset_global); + if (g_dataset_location_ht) + { + register GDataset *dataset; + + dataset = g_dataset_lookup (dataset_location); + if (dataset) + g_dataset_destroy_internal (dataset); + } + G_UNLOCK (g_dataset_global); +} + +/* HOLDS: g_dataset_global_lock */ +static inline gpointer +g_data_set_internal (GData **datalist, + GQuark key_id, + gpointer data, + GDestroyNotify destroy_func, + GDataset *dataset) +{ + register GData *list; + + list = *datalist; + if (!data) + { + register GData *prev; + + prev = NULL; + while (list) + { + if (list->id == key_id) + { + gpointer ret_data = NULL; + + if (prev) + prev->next = list->next; + else + { + *datalist = list->next; + + /* the dataset destruction *must* be done + * prior to invokation of the data destroy function + */ + if (!*datalist && dataset) + g_dataset_destroy_internal (dataset); + } + + /* the GData struct *must* already be unlinked + * when invoking the destroy function. + * we use (data==NULL && destroy_func!=NULL) as + * a special hint combination to "steal" + * data without destroy notification + */ + if (list->destroy_func && !destroy_func) + { + G_UNLOCK (g_dataset_global); + list->destroy_func (list->data); + G_LOCK (g_dataset_global); + } + else + ret_data = list->data; + + if (g_data_cache_length < G_DATA_CACHE_MAX) + { + list->next = g_data_cache; + g_data_cache = list; + g_data_cache_length++; + } + else + g_mem_chunk_free (g_data_mem_chunk, list); + + return ret_data; + } + + prev = list; + list = list->next; + } + } + else + { + while (list) + { + if (list->id == key_id) + { + if (!list->destroy_func) + { + list->data = data; + list->destroy_func = destroy_func; + } + else + { + register GDestroyNotify dfunc; + register gpointer ddata; + + dfunc = list->destroy_func; + ddata = list->data; + list->data = data; + list->destroy_func = destroy_func; + + /* we need to have updated all structures prior to + * invokation of the destroy function + */ + G_UNLOCK (g_dataset_global); + dfunc (ddata); + G_LOCK (g_dataset_global); + } + + return NULL; + } + + list = list->next; + } + + if (g_data_cache) + { + list = g_data_cache; + g_data_cache = list->next; + g_data_cache_length--; + } + else + list = g_chunk_new (GData, g_data_mem_chunk); + list->next = *datalist; + list->id = key_id; + list->data = data; + list->destroy_func = destroy_func; + *datalist = list; + } + + return NULL; +} + +void +g_dataset_id_set_data_full (gconstpointer dataset_location, + GQuark key_id, + gpointer data, + GDestroyNotify destroy_func) +{ + register GDataset *dataset; + + g_return_if_fail (dataset_location != NULL); + if (!data) + g_return_if_fail (destroy_func == NULL); + if (!key_id) + { + if (data) + g_return_if_fail (key_id > 0); + else + return; + } + + G_LOCK (g_dataset_global); + if (!g_dataset_location_ht) + g_data_initialize (); + + dataset = g_dataset_lookup (dataset_location); + if (!dataset) + { + dataset = g_chunk_new (GDataset, g_dataset_mem_chunk); + dataset->location = dataset_location; + g_datalist_init (&dataset->datalist); + g_hash_table_insert (g_dataset_location_ht, + (gpointer) dataset->location, + dataset); + } + + g_data_set_internal (&dataset->datalist, key_id, data, destroy_func, dataset); + G_UNLOCK (g_dataset_global); +} + +void +g_datalist_id_set_data_full (GData **datalist, + GQuark key_id, + gpointer data, + GDestroyNotify destroy_func) +{ + g_return_if_fail (datalist != NULL); + if (!data) + g_return_if_fail (destroy_func == NULL); + if (!key_id) + { + if (data) + g_return_if_fail (key_id > 0); + else + return; + } + + G_LOCK (g_dataset_global); + if (!g_dataset_location_ht) + g_data_initialize (); + + g_data_set_internal (datalist, key_id, data, destroy_func, NULL); + G_UNLOCK (g_dataset_global); +} + +gpointer +g_dataset_id_remove_no_notify (gconstpointer dataset_location, + GQuark key_id) +{ + gpointer ret_data = NULL; + + g_return_val_if_fail (dataset_location != NULL, NULL); + + G_LOCK (g_dataset_global); + if (key_id && g_dataset_location_ht) + { + GDataset *dataset; + + dataset = g_dataset_lookup (dataset_location); + if (dataset) + ret_data = g_data_set_internal (&dataset->datalist, key_id, NULL, (GDestroyNotify) 42, dataset); + } + G_UNLOCK (g_dataset_global); + + return ret_data; +} + +gpointer +g_datalist_id_remove_no_notify (GData **datalist, + GQuark key_id) +{ + gpointer ret_data = NULL; + + g_return_val_if_fail (datalist != NULL, NULL); + + G_LOCK (g_dataset_global); + if (key_id && g_dataset_location_ht) + ret_data = g_data_set_internal (datalist, key_id, NULL, (GDestroyNotify) 42, NULL); + G_UNLOCK (g_dataset_global); + + return ret_data; +} + +gpointer +g_dataset_id_get_data (gconstpointer dataset_location, + GQuark key_id) +{ + g_return_val_if_fail (dataset_location != NULL, NULL); + + G_LOCK (g_dataset_global); + if (key_id && g_dataset_location_ht) + { + register GDataset *dataset; + + dataset = g_dataset_lookup (dataset_location); + if (dataset) + { + register GData *list; + + for (list = dataset->datalist; list; list = list->next) + if (list->id == key_id) + { + G_UNLOCK (g_dataset_global); + return list->data; + } + } + } + G_UNLOCK (g_dataset_global); + + return NULL; +} + +gpointer +g_datalist_id_get_data (GData **datalist, + GQuark key_id) +{ + g_return_val_if_fail (datalist != NULL, NULL); + + if (key_id) + { + register GData *list; + + for (list = *datalist; list; list = list->next) + if (list->id == key_id) + return list->data; + } + + return NULL; +} + +void +g_dataset_foreach (gconstpointer dataset_location, + GDataForeachFunc func, + gpointer user_data) +{ + register GDataset *dataset; + + g_return_if_fail (dataset_location != NULL); + g_return_if_fail (func != NULL); + + G_LOCK (g_dataset_global); + if (g_dataset_location_ht) + { + dataset = g_dataset_lookup (dataset_location); + G_UNLOCK (g_dataset_global); + if (dataset) + { + register GData *list, *next; + + for (list = dataset->datalist; list; list = next) + { + next = list->next; + func (list->id, list->data, user_data); + } + } + } + else + { + G_UNLOCK (g_dataset_global); + } +} + +void +g_datalist_foreach (GData **datalist, + GDataForeachFunc func, + gpointer user_data) +{ + register GData *list, *next; + + g_return_if_fail (datalist != NULL); + g_return_if_fail (func != NULL); + + for (list = *datalist; list; list = next) + { + next = list->next; + func (list->id, list->data, user_data); + } +} + +void +g_datalist_init (GData **datalist) +{ + g_return_if_fail (datalist != NULL); + + *datalist = NULL; +} + +/* HOLDS: g_dataset_global_lock */ +static void +g_data_initialize (void) +{ + g_return_if_fail (g_dataset_location_ht == NULL); + + g_dataset_location_ht = g_hash_table_new (g_direct_hash, NULL); + g_dataset_cached = NULL; + g_dataset_mem_chunk = + g_mem_chunk_new ("GDataset MemChunk", + sizeof (GDataset), + sizeof (GDataset) * G_DATASET_MEM_CHUNK_PREALLOC, + G_ALLOC_AND_FREE); + g_data_mem_chunk = + g_mem_chunk_new ("GData MemChunk", + sizeof (GData), + sizeof (GData) * G_DATA_MEM_CHUNK_PREALLOC, + G_ALLOC_AND_FREE); +} + +GQuark +g_quark_try_string (const gchar *string) +{ + GQuark quark = 0; + g_return_val_if_fail (string != NULL, 0); + + G_LOCK (g_quark_global); + if (g_quark_ht) + quark = GPOINTER_TO_UINT (g_hash_table_lookup (g_quark_ht, string)); + G_UNLOCK (g_quark_global); + + return quark; +} + +GQuark +g_quark_from_string (const gchar *string) +{ + GQuark quark; + + g_return_val_if_fail (string != NULL, 0); + + G_LOCK (g_quark_global); + if (g_quark_ht) + quark = (gulong) g_hash_table_lookup (g_quark_ht, string); + else + { + g_quark_ht = g_hash_table_new (g_str_hash, g_str_equal); + quark = 0; + } + + if (!quark) + quark = g_quark_new (g_strdup (string)); + G_UNLOCK (g_quark_global); + + return quark; +} + +GQuark +g_quark_from_static_string (const gchar *string) +{ + GQuark quark; + + g_return_val_if_fail (string != NULL, 0); + + G_LOCK (g_quark_global); + if (g_quark_ht) + quark = (gulong) g_hash_table_lookup (g_quark_ht, string); + else + { + g_quark_ht = g_hash_table_new (g_str_hash, g_str_equal); + quark = 0; + } + + if (!quark) + quark = g_quark_new ((gchar*) string); + G_UNLOCK (g_quark_global); + + return quark; +} + +G_CONST_RETURN gchar* +g_quark_to_string (GQuark quark) +{ + gchar* result = NULL; + G_LOCK (g_quark_global); + if (quark > 0 && quark <= g_quark_seq_id) + result = g_quarks[quark - 1]; + G_UNLOCK (g_quark_global); + + return result; +} + +/* HOLDS: g_quark_global_lock */ +static inline GQuark +g_quark_new (gchar *string) +{ + GQuark quark; + + if (g_quark_seq_id % G_QUARK_BLOCK_SIZE == 0) + g_quarks = g_renew (gchar*, g_quarks, g_quark_seq_id + G_QUARK_BLOCK_SIZE); + + g_quarks[g_quark_seq_id] = string; + g_quark_seq_id++; + quark = g_quark_seq_id; + g_hash_table_insert (g_quark_ht, string, GUINT_TO_POINTER (quark)); + + return quark; +} diff --git a/graf2d/win32gdk/gdk/src/glib/gdataset.h b/graf2d/win32gdk/gdk/src/glib/gdataset.h index f9d15b3088f..e04a706c102 100644 --- a/graf2d/win32gdk/gdk/src/glib/gdataset.h +++ b/graf2d/win32gdk/gdk/src/glib/gdataset.h @@ -27,7 +27,7 @@ #ifndef __G_DATASET_H__ #define __G_DATASET_H__ -#include <gquark.h> +#include <glib/gquark.h> G_BEGIN_DECLS diff --git a/graf2d/win32gdk/gdk/src/glib/gdate.c b/graf2d/win32gdk/gdk/src/glib/gdate.c new file mode 100644 index 00000000000..08b0334bb9d --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gdate.c @@ -0,0 +1,1445 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe + */ + +#define DEBUG_MSG(x) /* */ +#ifdef G_ENABLE_DEBUG +/* #define DEBUG_MSG(args) g_message args ; */ +#endif + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include "glib.h" + +#include <time.h> +#include <string.h> +#include <ctype.h> +#include <stdlib.h> +#include <locale.h> + +GDate* +g_date_new () +{ + GDate *d = g_new0 (GDate, 1); /* happily, 0 is the invalid flag for everything. */ + + return d; +} + +GDate* +g_date_new_dmy (GDateDay day, GDateMonth m, GDateYear y) +{ + GDate *d; + g_return_val_if_fail (g_date_valid_dmy (day, m, y), NULL); + + d = g_new (GDate, 1); + + d->julian = FALSE; + d->dmy = TRUE; + + d->month = m; + d->day = day; + d->year = y; + + g_assert (g_date_valid (d)); + + return d; +} + +GDate* +g_date_new_julian (guint32 j) +{ + GDate *d; + g_return_val_if_fail (g_date_valid_julian (j), NULL); + + d = g_new (GDate, 1); + + d->julian = TRUE; + d->dmy = FALSE; + + d->julian_days = j; + + g_assert (g_date_valid (d)); + + return d; +} + +void +g_date_free (GDate *d) +{ + g_return_if_fail (d != NULL); + + g_free (d); +} + +gboolean +g_date_valid (const GDate *d) +{ + g_return_val_if_fail (d != NULL, FALSE); + + return (d->julian || d->dmy); +} + +static const guint8 days_in_months[2][13] = +{ /* error, jan feb mar apr may jun jul aug sep oct nov dec */ + { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, + { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } /* leap year */ +}; + +static const guint16 days_in_year[2][14] = +{ /* 0, jan feb mar apr may jun jul aug sep oct nov dec */ + { 0, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 }, + { 0, 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366 } +}; + +gboolean +g_date_valid_month (GDateMonth m) +{ + return ( (m > G_DATE_BAD_MONTH) && (m < 13) ); +} + +gboolean +g_date_valid_year (GDateYear y) +{ + return ( y > G_DATE_BAD_YEAR ); +} + +gboolean +g_date_valid_day (GDateDay d) +{ + return ( (d > G_DATE_BAD_DAY) && (d < 32) ); +} + +gboolean +g_date_valid_weekday (GDateWeekday w) +{ + return ( (w > G_DATE_BAD_WEEKDAY) && (w < 8) ); +} + +gboolean +g_date_valid_julian (guint32 j) +{ + return (j > G_DATE_BAD_JULIAN); +} + +gboolean +g_date_valid_dmy (GDateDay d, + GDateMonth m, + GDateYear y) +{ + return ( (m > G_DATE_BAD_MONTH) && + (m < 13) && + (d > G_DATE_BAD_DAY) && + (y > G_DATE_BAD_YEAR) && /* must check before using g_date_is_leap_year */ + (d <= (g_date_is_leap_year (y) ? + days_in_months[1][m] : days_in_months[0][m])) ); +} + + +/* "Julian days" just means an absolute number of days, where Day 1 == + * Jan 1, Year 1 + */ +static void +g_date_update_julian (const GDate *const_d) +{ + GDate *d = (GDate *) const_d; + GDateYear year; + gint index; + + g_return_if_fail (d != NULL); + g_return_if_fail (d->dmy); + g_return_if_fail (!d->julian); + g_return_if_fail (g_date_valid_dmy (d->day, d->month, d->year)); + + /* What we actually do is: multiply years * 365 days in the year, + * add the number of years divided by 4, subtract the number of + * years divided by 100 and add the number of years divided by 400, + * which accounts for leap year stuff. Code from Steffen Beyer's + * DateCalc. + */ + + year = d->year - 1; /* we know d->year > 0 since it's valid */ + + d->julian_days = year * 365U; + d->julian_days += (year >>= 2); /* divide by 4 and add */ + d->julian_days -= (year /= 25); /* divides original # years by 100 */ + d->julian_days += year >> 2; /* divides by 4, which divides original by 400 */ + + index = g_date_is_leap_year (d->year) ? 1 : 0; + + d->julian_days += days_in_year[index][d->month] + d->day; + + g_return_if_fail (g_date_valid_julian (d->julian_days)); + + d->julian = TRUE; +} + +static void +g_date_update_dmy (const GDate *const_d) +{ + GDate *d = (GDate *) const_d; + GDateYear y; + GDateMonth m; + GDateDay day; + + guint32 A, B, C, D, E, M; + + g_return_if_fail (d != NULL); + g_return_if_fail (d->julian); + g_return_if_fail (!d->dmy); + g_return_if_fail (g_date_valid_julian (d->julian_days)); + + /* Formula taken from the Calendar FAQ; the formula was for the + * Julian Period which starts on 1 January 4713 BC, so we add + * 1,721,425 to the number of days before doing the formula. + * + * I'm sure this can be simplified for our 1 January 1 AD period + * start, but I can't figure out how to unpack the formula. + */ + + A = d->julian_days + 1721425 + 32045; + B = ( 4 *(A + 36524) )/ 146097 - 1; + C = A - (146097 * B)/4; + D = ( 4 * (C + 365) ) / 1461 - 1; + E = C - ((1461*D) / 4); + M = (5 * (E - 1) + 2)/153; + + m = M + 3 - (12*(M/10)); + day = E - (153*M + 2)/5; + y = 100 * B + D - 4800 + (M/10); + +#ifdef G_ENABLE_DEBUG + if (!g_date_valid_dmy (day, m, y)) + { + g_warning ("\nOOPS julian: %u computed dmy: %u %u %u\n", + d->julian_days, day, m, y); + } +#endif + + d->month = m; + d->day = day; + d->year = y; + + d->dmy = TRUE; +} + +GDateWeekday +g_date_get_weekday (const GDate *d) +{ + g_return_val_if_fail (d != NULL, G_DATE_BAD_WEEKDAY); + g_return_val_if_fail (g_date_valid (d), G_DATE_BAD_WEEKDAY); + + if (!d->julian) + { + g_date_update_julian (d); + } + g_return_val_if_fail (d->julian, G_DATE_BAD_WEEKDAY); + + return ((d->julian_days - 1) % 7) + 1; +} + +GDateMonth +g_date_get_month (const GDate *d) +{ + g_return_val_if_fail (d != NULL, G_DATE_BAD_MONTH); + g_return_val_if_fail (g_date_valid (d), G_DATE_BAD_MONTH); + + if (!d->dmy) + { + g_date_update_dmy (d); + } + g_return_val_if_fail (d->dmy, G_DATE_BAD_MONTH); + + return d->month; +} + +GDateYear +g_date_get_year (const GDate *d) +{ + g_return_val_if_fail (d != NULL, G_DATE_BAD_YEAR); + g_return_val_if_fail (g_date_valid (d), G_DATE_BAD_YEAR); + + if (!d->dmy) + { + g_date_update_dmy (d); + } + g_return_val_if_fail (d->dmy, G_DATE_BAD_YEAR); + + return d->year; +} + +GDateDay +g_date_get_day (const GDate *d) +{ + g_return_val_if_fail (d != NULL, G_DATE_BAD_DAY); + g_return_val_if_fail (g_date_valid (d), G_DATE_BAD_DAY); + + if (!d->dmy) + { + g_date_update_dmy (d); + } + g_return_val_if_fail (d->dmy, G_DATE_BAD_DAY); + + return d->day; +} + +guint32 +g_date_get_julian (const GDate *d) +{ + g_return_val_if_fail (d != NULL, G_DATE_BAD_JULIAN); + g_return_val_if_fail (g_date_valid (d), G_DATE_BAD_JULIAN); + + if (!d->julian) + { + g_date_update_julian (d); + } + g_return_val_if_fail (d->julian, G_DATE_BAD_JULIAN); + + return d->julian_days; +} + +guint +g_date_get_day_of_year (const GDate *d) +{ + gint index; + + g_return_val_if_fail (d != NULL, 0); + g_return_val_if_fail (g_date_valid (d), 0); + + if (!d->dmy) + { + g_date_update_dmy (d); + } + g_return_val_if_fail (d->dmy, 0); + + index = g_date_is_leap_year (d->year) ? 1 : 0; + + return (days_in_year[index][d->month] + d->day); +} + +guint +g_date_get_monday_week_of_year (const GDate *d) +{ + GDateWeekday wd; + guint day; + GDate first; + + g_return_val_if_fail (d != NULL, 0); + g_return_val_if_fail (g_date_valid (d), 0); + + if (!d->dmy) + { + g_date_update_dmy (d); + } + g_return_val_if_fail (d->dmy, 0); + + g_date_clear (&first, 1); + + g_date_set_dmy (&first, 1, 1, d->year); + + wd = g_date_get_weekday (&first) - 1; /* make Monday day 0 */ + day = g_date_get_day_of_year (d) - 1; + + return ((day + wd)/7U + (wd == 0 ? 1 : 0)); +} + +guint +g_date_get_sunday_week_of_year (const GDate *d) +{ + GDateWeekday wd; + guint day; + GDate first; + + g_return_val_if_fail (d != NULL, 0); + g_return_val_if_fail (g_date_valid (d), 0); + + if (!d->dmy) + { + g_date_update_dmy (d); + } + g_return_val_if_fail (d->dmy, 0); + + g_date_clear (&first, 1); + + g_date_set_dmy (&first, 1, 1, d->year); + + wd = g_date_get_weekday (&first); + if (wd == 7) wd = 0; /* make Sunday day 0 */ + day = g_date_get_day_of_year (d) - 1; + + return ((day + wd)/7U + (wd == 0 ? 1 : 0)); +} + +gint +g_date_days_between (const GDate *d1, + const GDate *d2) +{ + g_return_val_if_fail (d1 != NULL, 0); + g_return_val_if_fail (d2 != NULL, 0); + + g_return_val_if_fail (g_date_valid (d1), 0); + g_return_val_if_fail (g_date_valid (d2), 0); + + return (gint)g_date_get_julian (d2) - (gint)g_date_get_julian (d1); +} + +void +g_date_clear (GDate *d, guint ndates) +{ + g_return_if_fail (d != NULL); + g_return_if_fail (ndates != 0); + + memset (d, 0x0, ndates*sizeof (GDate)); +} + +G_LOCK_DEFINE_STATIC (g_date_global); + +/* These are for the parser, output to the user should use * + * g_date_strftime () - this creates more never-freed memory to annoy + * all those memory debugger users. :-) + */ + +static gchar *long_month_names[13] = +{ + "Error", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL +}; + +static gchar *short_month_names[13] = +{ + "Error", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL +}; + +/* This tells us if we need to update the parse info */ +static gchar *current_locale = NULL; + +/* order of these in the current locale */ +static GDateDMY dmy_order[3] = +{ + G_DATE_DAY, G_DATE_MONTH, G_DATE_YEAR +}; + +/* Where to chop two-digit years: i.e., for the 1930 default, numbers + * 29 and below are counted as in the year 2000, numbers 30 and above + * are counted as in the year 1900. + */ + +static GDateYear twodigit_start_year = 1930; + +/* It is impossible to enter a year between 1 AD and 99 AD with this + * in effect. + */ +static gboolean using_twodigit_years = FALSE; + +struct _GDateParseTokens { + gint num_ints; + gint n[3]; + guint month; +}; + +typedef struct _GDateParseTokens GDateParseTokens; + +#define NUM_LEN 10 + +/* HOLDS: g_date_global_lock */ +static void +g_date_fill_parse_tokens (const gchar *str, GDateParseTokens *pt) +{ + gchar num[4][NUM_LEN+1]; + gint i; + const guchar *s; + + /* We count 4, but store 3; so we can give an error + * if there are 4. + */ + num[0][0] = num[1][0] = num[2][0] = num[3][0] = '\0'; + + s = (const guchar *) str; + pt->num_ints = 0; + while (*s && pt->num_ints < 4) + { + + i = 0; + while (*s && isdigit (*s) && i <= NUM_LEN) + { + num[pt->num_ints][i] = *s; + ++s; + ++i; + } + + if (i > 0) + { + num[pt->num_ints][i] = '\0'; + ++(pt->num_ints); + } + + if (*s == '\0') break; + + ++s; + } + + pt->n[0] = pt->num_ints > 0 ? atoi (num[0]) : 0; + pt->n[1] = pt->num_ints > 1 ? atoi (num[1]) : 0; + pt->n[2] = pt->num_ints > 2 ? atoi (num[2]) : 0; + + pt->month = G_DATE_BAD_MONTH; + + if (pt->num_ints < 3) + { + gchar *casefold; + gchar *normalized; + + casefold = g_utf8_casefold (str, -1); + normalized = g_utf8_normalize (casefold, -1, G_NORMALIZE_ALL); + g_free (casefold); + + i = 1; + while (i < 13) + { + if (long_month_names[i] != NULL) + { + const gchar *found = strstr (normalized, long_month_names[i]); + + if (found != NULL) + { + pt->month = i; + return; + } + } + + if (short_month_names[i] != NULL) + { + const gchar *found = strstr (normalized, short_month_names[i]); + + if (found != NULL) + { + pt->month = i; + return; + } + } + + ++i; + } + } +} + +/* HOLDS: g_date_global_lock */ +static void +g_date_prepare_to_parse (const gchar *str, GDateParseTokens *pt) +{ + const gchar *locale = setlocale (LC_TIME, NULL); + gboolean recompute_localeinfo = FALSE; + GDate d; + + g_return_if_fail (locale != NULL); /* should not happen */ + + g_date_clear (&d, 1); /* clear for scratch use */ + + if ( (current_locale == NULL) || (strcmp (locale, current_locale) != 0) ) + { + recompute_localeinfo = TRUE; /* Uh, there used to be a reason for the temporary */ + } + + if (recompute_localeinfo) + { + int i = 1; + GDateParseTokens testpt; + gchar buf[128]; + + g_free (current_locale); /* still works if current_locale == NULL */ + + current_locale = g_strdup (locale); + + while (i < 13) + { + gchar *casefold; + + g_date_set_dmy (&d, 1, i, 1); + + g_return_if_fail (g_date_valid (&d)); + + g_date_strftime (buf, 127, "%b", &d); + + casefold = g_utf8_casefold (buf, -1); + g_free (short_month_names[i]); + short_month_names[i] = g_utf8_normalize (casefold, -1, G_NORMALIZE_ALL); + g_free (casefold); + + g_date_strftime (buf, 127, "%B", &d); + casefold = g_utf8_casefold (buf, -1); + g_free (long_month_names[i]); + long_month_names[i] = g_utf8_normalize (casefold, -1, G_NORMALIZE_ALL); + g_free (casefold); + + ++i; + } + + /* Determine DMY order */ + + /* had to pick a random day - don't change this, some strftimes + * are broken on some days, and this one is good so far. */ + g_date_set_dmy (&d, 4, 7, 1976); + + g_date_strftime (buf, 127, "%x", &d); + + g_date_fill_parse_tokens (buf, &testpt); + + i = 0; + while (i < testpt.num_ints) + { + switch (testpt.n[i]) + { + case 7: + dmy_order[i] = G_DATE_MONTH; + break; + case 4: + dmy_order[i] = G_DATE_DAY; + break; + case 76: + using_twodigit_years = TRUE; /* FALL THRU */ + case 1976: + dmy_order[i] = G_DATE_YEAR; + break; + default: + /* leave it unchanged */ + break; + } + ++i; + } + +#ifdef G_ENABLE_DEBUG + DEBUG_MSG (("**GDate prepared a new set of locale-specific parse rules.")); + i = 1; + while (i < 13) + { + DEBUG_MSG ((" %s %s", long_month_names[i], short_month_names[i])); + ++i; + } + if (using_twodigit_years) + DEBUG_MSG (("**Using twodigit years with cutoff year: %u", twodigit_start_year)); + { + gchar *strings[3]; + i = 0; + while (i < 3) + { + switch (dmy_order[i]) + { + case G_DATE_MONTH: + strings[i] = "Month"; + break; + case G_DATE_YEAR: + strings[i] = "Year"; + break; + case G_DATE_DAY: + strings[i] = "Day"; + break; + default: + strings[i] = NULL; + break; + } + ++i; + } + DEBUG_MSG (("**Order: %s, %s, %s", strings[0], strings[1], strings[2])); + DEBUG_MSG (("**Sample date in this locale: `%s'", buf)); + } +#endif + } + + g_date_fill_parse_tokens (str, pt); +} + +void +g_date_set_parse (GDate *d, + const gchar *str) +{ + GDateParseTokens pt; + guint m = G_DATE_BAD_MONTH, day = G_DATE_BAD_DAY, y = G_DATE_BAD_YEAR; + + g_return_if_fail (d != NULL); + + /* set invalid */ + g_date_clear (d, 1); + + G_LOCK (g_date_global); + + g_date_prepare_to_parse (str, &pt); + + DEBUG_MSG (("Found %d ints, `%d' `%d' `%d' and written out month %d", + pt.num_ints, pt.n[0], pt.n[1], pt.n[2], pt.month)); + + + if (pt.num_ints == 4) + { + G_UNLOCK (g_date_global); + return; /* presumably a typo; bail out. */ + } + + if (pt.num_ints > 1) + { + int i = 0; + int j = 0; + + g_assert (pt.num_ints < 4); /* i.e., it is 2 or 3 */ + + while (i < pt.num_ints && j < 3) + { + switch (dmy_order[j]) + { + case G_DATE_MONTH: + { + if (pt.num_ints == 2 && pt.month != G_DATE_BAD_MONTH) + { + m = pt.month; + ++j; /* skip months, but don't skip this number */ + continue; + } + else + m = pt.n[i]; + } + break; + case G_DATE_DAY: + { + if (pt.num_ints == 2 && pt.month == G_DATE_BAD_MONTH) + { + day = 1; + ++j; /* skip days, since we may have month/year */ + continue; + } + day = pt.n[i]; + } + break; + case G_DATE_YEAR: + { + y = pt.n[i]; + + if (using_twodigit_years && y < 100) + { + guint two = twodigit_start_year % 100; + guint century = (twodigit_start_year / 100) * 100; + + if (y < two) + century += 100; + + y += century; + } + } + break; + default: + break; + } + + ++i; + ++j; + } + + + if (pt.num_ints == 3 && !g_date_valid_dmy (day, m, y)) + { + /* Try YYYY MM DD */ + y = pt.n[0]; + m = pt.n[1]; + day = pt.n[2]; + + if (using_twodigit_years && y < 100) + y = G_DATE_BAD_YEAR; /* avoids ambiguity */ + } + else if (pt.num_ints == 2) + { + if (m == G_DATE_BAD_MONTH && pt.month != G_DATE_BAD_MONTH) + { + m = pt.month; + } + } + } + else if (pt.num_ints == 1) + { + if (pt.month != G_DATE_BAD_MONTH) + { + /* Month name and year? */ + m = pt.month; + day = 1; + y = pt.n[0]; + } + else + { + /* Try yyyymmdd and yymmdd */ + + m = (pt.n[0]/100) % 100; + day = pt.n[0] % 100; + y = pt.n[0]/10000; + + /* FIXME move this into a separate function */ + if (using_twodigit_years && y < 100) + { + guint two = twodigit_start_year % 100; + guint century = (twodigit_start_year / 100) * 100; + + if (y < two) + century += 100; + + y += century; + } + } + } + + /* See if we got anything valid out of all this. */ + /* y < 8000 is to catch 19998 style typos; the library is OK up to 65535 or so */ + if (y < 8000 && g_date_valid_dmy (day, m, y)) + { + d->month = m; + d->day = day; + d->year = y; + d->dmy = TRUE; + } +#ifdef G_ENABLE_DEBUG + else + DEBUG_MSG (("Rejected DMY %u %u %u", day, m, y)); +#endif + G_UNLOCK (g_date_global); +} + +void +g_date_set_time (GDate *d, + GTime time) +{ + time_t t = time; + struct tm tm; + + g_return_if_fail (d != NULL); + +#ifdef HAVE_LOCALTIME_R + localtime_r (&t, &tm); +#else + { + struct tm *ptm = localtime (&t); + g_assert (ptm); + memcpy ((void *) &tm, (void *) ptm, sizeof(struct tm)); + } +#endif + + d->julian = FALSE; + + d->month = tm.tm_mon + 1; + d->day = tm.tm_mday; + d->year = tm.tm_year + 1900; + + g_return_if_fail (g_date_valid_dmy (d->day, d->month, d->year)); + + d->dmy = TRUE; +} + +void +g_date_set_month (GDate *d, + GDateMonth m) +{ + g_return_if_fail (d != NULL); + g_return_if_fail (g_date_valid_month (m)); + + if (d->julian && !d->dmy) g_date_update_dmy(d); + d->julian = FALSE; + + d->month = m; + + if (g_date_valid_dmy (d->day, d->month, d->year)) + d->dmy = TRUE; + else + d->dmy = FALSE; +} + +void +g_date_set_day (GDate *d, + GDateDay day) +{ + g_return_if_fail (d != NULL); + g_return_if_fail (g_date_valid_day (day)); + + if (d->julian && !d->dmy) g_date_update_dmy(d); + d->julian = FALSE; + + d->day = day; + + if (g_date_valid_dmy (d->day, d->month, d->year)) + d->dmy = TRUE; + else + d->dmy = FALSE; +} + +void +g_date_set_year (GDate *d, + GDateYear y) +{ + g_return_if_fail (d != NULL); + g_return_if_fail (g_date_valid_year (y)); + + if (d->julian && !d->dmy) g_date_update_dmy(d); + d->julian = FALSE; + + d->year = y; + + if (g_date_valid_dmy (d->day, d->month, d->year)) + d->dmy = TRUE; + else + d->dmy = FALSE; +} + +void +g_date_set_dmy (GDate *d, + GDateDay day, + GDateMonth m, + GDateYear y) +{ + g_return_if_fail (d != NULL); + g_return_if_fail (g_date_valid_dmy (day, m, y)); + + d->julian = FALSE; + + d->month = m; + d->day = day; + d->year = y; + + d->dmy = TRUE; +} + +void +g_date_set_julian (GDate *d, guint32 j) +{ + g_return_if_fail (d != NULL); + g_return_if_fail (g_date_valid_julian (j)); + + d->julian_days = j; + d->julian = TRUE; + d->dmy = FALSE; +} + + +gboolean +g_date_is_first_of_month (const GDate *d) +{ + g_return_val_if_fail (d != NULL, FALSE); + g_return_val_if_fail (g_date_valid (d), FALSE); + + if (!d->dmy) + { + g_date_update_dmy (d); + } + g_return_val_if_fail (d->dmy, FALSE); + + if (d->day == 1) return TRUE; + else return FALSE; +} + +gboolean +g_date_is_last_of_month (const GDate *d) +{ + gint index; + + g_return_val_if_fail (d != NULL, FALSE); + g_return_val_if_fail (g_date_valid (d), FALSE); + + if (!d->dmy) + { + g_date_update_dmy (d); + } + g_return_val_if_fail (d->dmy, FALSE); + + index = g_date_is_leap_year (d->year) ? 1 : 0; + + if (d->day == days_in_months[index][d->month]) return TRUE; + else return FALSE; +} + +void +g_date_add_days (GDate *d, guint ndays) +{ + g_return_if_fail (d != NULL); + g_return_if_fail (g_date_valid (d)); + + if (!d->julian) + { + g_date_update_julian (d); + } + g_return_if_fail (d->julian); + + d->julian_days += ndays; + d->dmy = FALSE; +} + +void +g_date_subtract_days (GDate *d, guint ndays) +{ + g_return_if_fail (d != NULL); + g_return_if_fail (g_date_valid (d)); + + if (!d->julian) + { + g_date_update_julian (d); + } + g_return_if_fail (d->julian); + g_return_if_fail (d->julian_days > ndays); + + d->julian_days -= ndays; + d->dmy = FALSE; +} + +void +g_date_add_months (GDate *d, + guint nmonths) +{ + guint years, months; + gint index; + + g_return_if_fail (d != NULL); + g_return_if_fail (g_date_valid (d)); + + if (!d->dmy) + { + g_date_update_dmy (d); + } + g_return_if_fail (d->dmy); + + nmonths += d->month - 1; + + years = nmonths/12; + months = nmonths%12; + + d->month = months + 1; + d->year += years; + + index = g_date_is_leap_year (d->year) ? 1 : 0; + + if (d->day > days_in_months[index][d->month]) + d->day = days_in_months[index][d->month]; + + d->julian = FALSE; + + g_return_if_fail (g_date_valid (d)); +} + +void +g_date_subtract_months (GDate *d, + guint nmonths) +{ + guint years, months; + gint index; + + g_return_if_fail (d != NULL); + g_return_if_fail (g_date_valid (d)); + + if (!d->dmy) + { + g_date_update_dmy (d); + } + g_return_if_fail (d->dmy); + + years = nmonths/12; + months = nmonths%12; + + g_return_if_fail (d->year > years); + + d->year -= years; + + if (d->month > months) d->month -= months; + else + { + months -= d->month; + d->month = 12 - months; + d->year -= 1; + } + + index = g_date_is_leap_year (d->year) ? 1 : 0; + + if (d->day > days_in_months[index][d->month]) + d->day = days_in_months[index][d->month]; + + d->julian = FALSE; + + g_return_if_fail (g_date_valid (d)); +} + +void +g_date_add_years (GDate *d, + guint nyears) +{ + g_return_if_fail (d != NULL); + g_return_if_fail (g_date_valid (d)); + + if (!d->dmy) + { + g_date_update_dmy (d); + } + g_return_if_fail (d->dmy); + + d->year += nyears; + + if (d->month == 2 && d->day == 29) + { + if (!g_date_is_leap_year (d->year)) + { + d->day = 28; + } + } + + d->julian = FALSE; +} + +void +g_date_subtract_years (GDate *d, + guint nyears) +{ + g_return_if_fail (d != NULL); + g_return_if_fail (g_date_valid (d)); + + if (!d->dmy) + { + g_date_update_dmy (d); + } + g_return_if_fail (d->dmy); + g_return_if_fail (d->year > nyears); + + d->year -= nyears; + + if (d->month == 2 && d->day == 29) + { + if (!g_date_is_leap_year (d->year)) + { + d->day = 28; + } + } + + d->julian = FALSE; +} + + +gboolean +g_date_is_leap_year (GDateYear year) +{ + g_return_val_if_fail (g_date_valid_year (year), FALSE); + + return ( (((year % 4) == 0) && ((year % 100) != 0)) || + (year % 400) == 0 ); +} + +guint8 +g_date_get_days_in_month (GDateMonth month, + GDateYear year) +{ + gint index; + + g_return_val_if_fail (g_date_valid_year (year), 0); + g_return_val_if_fail (g_date_valid_month (month), 0); + + index = g_date_is_leap_year (year) ? 1 : 0; + + return days_in_months[index][month]; +} + +guint8 +g_date_get_monday_weeks_in_year (GDateYear year) +{ + GDate d; + + g_return_val_if_fail (g_date_valid_year (year), 0); + + g_date_clear (&d, 1); + g_date_set_dmy (&d, 1, 1, year); + if (g_date_get_weekday (&d) == G_DATE_MONDAY) return 53; + g_date_set_dmy (&d, 31, 12, year); + if (g_date_get_weekday (&d) == G_DATE_MONDAY) return 53; + if (g_date_is_leap_year (year)) + { + g_date_set_dmy (&d, 2, 1, year); + if (g_date_get_weekday (&d) == G_DATE_MONDAY) return 53; + g_date_set_dmy (&d, 30, 12, year); + if (g_date_get_weekday (&d) == G_DATE_MONDAY) return 53; + } + return 52; +} + +guint8 +g_date_get_sunday_weeks_in_year (GDateYear year) +{ + GDate d; + + g_return_val_if_fail (g_date_valid_year (year), 0); + + g_date_clear (&d, 1); + g_date_set_dmy (&d, 1, 1, year); + if (g_date_get_weekday (&d) == G_DATE_SUNDAY) return 53; + g_date_set_dmy (&d, 31, 12, year); + if (g_date_get_weekday (&d) == G_DATE_SUNDAY) return 53; + if (g_date_is_leap_year (year)) + { + g_date_set_dmy (&d, 2, 1, year); + if (g_date_get_weekday (&d) == G_DATE_SUNDAY) return 53; + g_date_set_dmy (&d, 30, 12, year); + if (g_date_get_weekday (&d) == G_DATE_SUNDAY) return 53; + } + return 52; +} + +gint +g_date_compare (const GDate *lhs, + const GDate *rhs) +{ + g_return_val_if_fail (lhs != NULL, 0); + g_return_val_if_fail (rhs != NULL, 0); + g_return_val_if_fail (g_date_valid (lhs), 0); + g_return_val_if_fail (g_date_valid (rhs), 0); + + /* Remember the self-comparison case! I think it works right now. */ + + while (TRUE) + { + + if (lhs->julian && rhs->julian) + { + if (lhs->julian_days < rhs->julian_days) return -1; + else if (lhs->julian_days > rhs->julian_days) return 1; + else return 0; + } + else if (lhs->dmy && rhs->dmy) + { + if (lhs->year < rhs->year) return -1; + else if (lhs->year > rhs->year) return 1; + else + { + if (lhs->month < rhs->month) return -1; + else if (lhs->month > rhs->month) return 1; + else + { + if (lhs->day < rhs->day) return -1; + else if (lhs->day > rhs->day) return 1; + else return 0; + } + + } + + } + else + { + if (!lhs->julian) g_date_update_julian (lhs); + if (!rhs->julian) g_date_update_julian (rhs); + g_return_val_if_fail (lhs->julian, 0); + g_return_val_if_fail (rhs->julian, 0); + } + + } + return 0; /* warnings */ +} + + +void +g_date_to_struct_tm (const GDate *d, + struct tm *tm) +{ + GDateWeekday day; + + g_return_if_fail (d != NULL); + g_return_if_fail (g_date_valid (d)); + g_return_if_fail (tm != NULL); + + if (!d->dmy) + { + g_date_update_dmy (d); + } + g_return_if_fail (d->dmy); + + /* zero all the irrelevant fields to be sure they're valid */ + + /* On Linux and maybe other systems, there are weird non-POSIX + * fields on the end of struct tm that choke strftime if they + * contain garbage. So we need to 0 the entire struct, not just the + * fields we know to exist. + */ + + memset (tm, 0x0, sizeof (struct tm)); + + tm->tm_mday = d->day; + tm->tm_mon = d->month - 1; /* 0-11 goes in tm */ + tm->tm_year = ((int)d->year) - 1900; /* X/Open says tm_year can be negative */ + + day = g_date_get_weekday (d); + if (day == 7) day = 0; /* struct tm wants days since Sunday, so Sunday is 0 */ + + tm->tm_wday = (int)day; + + tm->tm_yday = g_date_get_day_of_year (d) - 1; /* 0 to 365 */ + tm->tm_isdst = -1; /* -1 means "information not available" */ +} + +void +g_date_clamp (GDate *date, + const GDate *min_date, + const GDate *max_date) +{ + g_return_if_fail (date); + g_return_if_fail (g_date_valid (date)); + if (min_date != NULL) + g_return_if_fail (g_date_valid (min_date)); + if (max_date != NULL) + g_return_if_fail (g_date_valid (max_date)); + if (min_date != NULL && max_date != NULL) + g_return_if_fail (g_date_compare (min_date, max_date) <= 0); + + if (min_date && g_date_compare (date, min_date) < 0) + *date = *min_date; + + if (max_date && g_date_compare (max_date, date) < 0) + *date = *max_date; +} + +void +g_date_order (GDate *date1, + GDate *date2) +{ + g_return_if_fail (date1 != NULL); + g_return_if_fail (date2 != NULL); + g_return_if_fail (g_date_valid (date1)); + g_return_if_fail (g_date_valid (date2)); + + if (g_date_compare (date1, date2) == 1) { + GDate tmp = *date1; + *date1 = *date2; + *date2 = tmp; + } +} + +gsize +g_date_strftime (gchar *s, + gsize slen, + const gchar *format, + const GDate *d) +{ + struct tm tm; + const gchar *charset; + + g_return_val_if_fail (d != NULL, 0); + g_return_val_if_fail (g_date_valid (d), 0); + g_return_val_if_fail (slen > 0, 0); + g_return_val_if_fail (format != 0, 0); + g_return_val_if_fail (s != 0, 0); + + g_date_to_struct_tm (d, &tm); + + if (g_get_charset (&charset)) + { + gint retval = strftime (s, slen, format, &tm); + if (retval == 0) + { + /* If retval == 0, the contents of s are undefined. We define + * them. + */ + s[0] = '\0'; + } + + return retval; + } + else + { + gchar *locale_format; + gsize tmplen; + gchar *tmpbuf; + gsize tmpbufsize; + gsize convlen = 0; + gchar *convbuf; + GError *error = NULL; + + locale_format = g_convert (format, -1 , "UTF-8", charset, + NULL, NULL, &error); + if (error) + { + g_warning (G_STRLOC "Error converting format to %s: %s\n", + charset, error->message); + g_error_free (error); + + return 0; + } + + tmpbufsize = MAX (128, strlen (locale_format) * 2); + while (TRUE) + { + tmpbuf = g_malloc (tmpbufsize + 1); + tmplen = strftime (tmpbuf, tmpbufsize + 1, locale_format, &tm); + if (tmplen == tmpbufsize + 1) + { + g_free (tmpbuf); + tmpbufsize *= 2; + } + else + break; + } + g_free (locale_format); + + if (tmplen == 0) + { + /* If retval == 0, the contents of s are undefined. We define + * them. + */ + g_free (locale_format); + s[0] = '\0'; + return 0; + } + + convbuf = g_convert (tmpbuf, tmplen, "UTF-8", charset, NULL, &convlen, &error); + g_free (tmpbuf); + + if (error) + { + g_warning (G_STRLOC "Error converting results of strftime to UTF-8: %s\n", error->message); + g_error_free (error); + } + else + { + /* Only copy whole characters into the buffer + */ + gchar *in = convbuf; + gchar *out = s; + gchar *end = s + slen - 1; + + while (*in) + { + int len = g_utf8_skip[*(guchar *)in]; + if (out + len < end) + { + out += len; + in += len; + } + else + break; + } + + memcpy (s, convbuf, out - s); + *out = '\0'; + } + + g_free (convbuf); + + return convlen; + } +} diff --git a/graf2d/win32gdk/gdk/src/glib/gdate.h b/graf2d/win32gdk/gdk/src/glib/gdate.h index c5fa2dc2c36..96d827f66b2 100644 --- a/graf2d/win32gdk/gdk/src/glib/gdate.h +++ b/graf2d/win32gdk/gdk/src/glib/gdate.h @@ -27,7 +27,7 @@ #ifndef __G_DATE_H__ #define __G_DATE_H__ -#include <gquark.h> +#include <glib/gquark.h> G_BEGIN_DECLS @@ -126,7 +126,7 @@ void g_date_free (GDate *date); * dates (the exceptions are the mutators, since you need those to * return to validity). */ -gboolean g_date_valid (GDate *date); +gboolean g_date_valid (const GDate *date); gboolean g_date_valid_day (GDateDay day) G_GNUC_CONST; gboolean g_date_valid_month (GDateMonth month) G_GNUC_CONST; gboolean g_date_valid_year (GDateYear year) G_GNUC_CONST; @@ -136,20 +136,20 @@ gboolean g_date_valid_dmy (GDateDay day, GDateMonth month, GDateYear year) G_GNUC_CONST; -GDateWeekday g_date_get_weekday (GDate *date); -GDateMonth g_date_get_month (GDate *date); -GDateYear g_date_get_year (GDate *date); -GDateDay g_date_get_day (GDate *date); -guint32 g_date_get_julian (GDate *date); -guint g_date_get_day_of_year (GDate *date); +GDateWeekday g_date_get_weekday (const GDate *date); +GDateMonth g_date_get_month (const GDate *date); +GDateYear g_date_get_year (const GDate *date); +GDateDay g_date_get_day (const GDate *date); +guint32 g_date_get_julian (const GDate *date); +guint g_date_get_day_of_year (const GDate *date); /* First monday/sunday is the start of week 1; if we haven't reached * that day, return 0. These are not ISO weeks of the year; that * routine needs to be added. * these functions return the number of weeks, starting on the * corrsponding day */ -guint g_date_get_monday_week_of_year (GDate *date); -guint g_date_get_sunday_week_of_year (GDate *date); +guint g_date_get_monday_week_of_year (const GDate *date); +guint g_date_get_sunday_week_of_year (const GDate *date); /* If you create a static date struct you need to clear it to get it * in a sane state before use. You can clear a whole array at @@ -178,8 +178,8 @@ void g_date_set_dmy (GDate *date, GDateYear y); void g_date_set_julian (GDate *date, guint32 julian_date); -gboolean g_date_is_first_of_month (GDate *date); -gboolean g_date_is_last_of_month (GDate *date); +gboolean g_date_is_first_of_month (const GDate *date); +gboolean g_date_is_last_of_month (const GDate *date); /* To go forward by some number of weeks just go forward weeks*7 days */ void g_date_add_days (GDate *date, @@ -204,19 +204,47 @@ guint8 g_date_get_days_in_month (GDateMonth month, guint8 g_date_get_monday_weeks_in_year (GDateYear year) G_GNUC_CONST; guint8 g_date_get_sunday_weeks_in_year (GDateYear year) G_GNUC_CONST; +/* Returns the number of days between the two dates. If date2 comes + before date1, a negative value is return. */ +gint g_date_days_between (const GDate *date1, + const GDate *date2); + /* qsort-friendly (with a cast...) */ -gint g_date_compare (GDate *lhs, - GDate *rhs); -void g_date_to_struct_tm (GDate *date, +gint g_date_compare (const GDate *lhs, + const GDate *rhs); +void g_date_to_struct_tm (const GDate *date, struct tm *tm); +void g_date_clamp (GDate *date, + const GDate *min_date, + const GDate *max_date); + +/* Swap date1 and date2's values if date1 > date2. */ +void g_date_order (GDate *date1, GDate *date2); + /* Just like strftime() except you can only use date-related formats. * Using a time format is undefined. */ gsize g_date_strftime (gchar *s, gsize slen, const gchar *format, - GDate *date); + const GDate *date); + +#ifndef G_DISABLE_DEPRECATED + +#define g_date_weekday g_date_get_weekday +#define g_date_month g_date_get_month +#define g_date_year g_date_get_year +#define g_date_day g_date_get_day +#define g_date_julian g_date_get_julian +#define g_date_day_of_year g_date_get_day_of_year +#define g_date_monday_week_of_year g_date_get_monday_week_of_year +#define g_date_sunday_week_of_year g_date_get_sunday_week_of_year +#define g_date_days_in_month g_date_get_days_in_month +#define g_date_monday_weeks_in_year g_date_get_monday_weeks_in_year +#define g_date_sunday_weeks_in_year g_date_get_sunday_weeks_in_year + +#endif /* G_DISABLE_DEPRECATED */ G_END_DECLS diff --git a/graf2d/win32gdk/gdk/src/glib/gerror.c b/graf2d/win32gdk/gdk/src/glib/gerror.c new file mode 100644 index 00000000000..eff62588a85 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gerror.c @@ -0,0 +1,254 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#include "glib.h" + +static GError* +g_error_new_valist(GQuark domain, + gint code, + const gchar *format, + va_list args) +{ + GError *error; + + error = g_new (GError, 1); + + error->domain = domain; + error->code = code; + error->message = g_strdup_vprintf (format, args); + + return error; +} + +/** + * g_error_new: + * @domain: error domain + * @code: error code + * @format: printf()-style format for error message + * @Varargs: parameters for message format + * + * Creates a new #GError with the given @domain and @code, + * and a message formatted with @format. + * + * Return value: a new #GError + **/ +GError* +g_error_new (GQuark domain, + gint code, + const gchar *format, + ...) +{ + GError* error; + va_list args; + + g_return_val_if_fail (format != NULL, NULL); + g_return_val_if_fail (domain != 0, NULL); + + va_start (args, format); + error = g_error_new_valist (domain, code, format, args); + va_end (args); + + return error; +} + +/** + * g_error_new_literal: + * @domain: error domain + * @code: error code + * @message: error message + * + * Creates a new #GError; unlike g_error_new(), @message is not + * a printf()-style format string. Use this function if @message + * contains text you don't have control over, that could include + * printf() escape sequences. + * + * Return value: a new #GError + **/ +GError* +g_error_new_literal (GQuark domain, + gint code, + const gchar *message) +{ + GError* err; + + g_return_val_if_fail (message != NULL, NULL); + g_return_val_if_fail (domain != 0, NULL); + + err = g_new (GError, 1); + + err->domain = domain; + err->code = code; + err->message = g_strdup (message); + + return err; +} + +/** + * g_error_free: + * @error: a #GError + * + * Frees a #GError and associated resources. + * + **/ +void +g_error_free (GError *error) +{ + g_return_if_fail (error != NULL); + + g_free (error->message); + + g_free (error); +} + +/** + * g_error_copy: + * @error: a #GError + * + * Makes a copy of @error. + * + * Return value: a new #GError + **/ +GError* +g_error_copy (const GError *error) +{ + GError *copy; + + g_return_val_if_fail (error != NULL, NULL); + + copy = g_new (GError, 1); + + *copy = *error; + + copy->message = g_strdup (error->message); + + return copy; +} + +/** + * g_error_matches: + * @error: a #GError + * @domain: an error domain + * @code: an error code + * + * Returns TRUE if @error matches @domain and @code, FALSE + * otherwise. + * + * Return value: whether @error has @domain and @code + **/ +gboolean +g_error_matches (const GError *error, + GQuark domain, + gint code) +{ + return error && + error->domain == domain && + error->code == code; +} + +#define ERROR_OVERWRITTEN_WARNING "GError set over the top of a previous GError or uninitialized memory.\n" \ + "This indicates a bug in someone's code. You must ensure an error is NULL before it's set.\n" \ + "The overwriting error message was: %s" + +/** + * g_set_error: + * @err: a return location for a #GError, or NULL + * @domain: error domain + * @code: error code + * @format: printf()-style format + * @Varargs: args for @format + * + * Does nothing if @err is NULL; if @err is non-NULL, then *@err must + * be NULL. A new #GError is created and assigned to *@err. + **/ +void +g_set_error (GError **err, + GQuark domain, + gint code, + const gchar *format, + ...) +{ + GError *new; + + va_list args; + + if (err == NULL) + return; + + va_start (args, format); + new = g_error_new_valist (domain, code, format, args); + va_end (args); + + if (*err == NULL) + *err = new; + else + g_warning (ERROR_OVERWRITTEN_WARNING, new->message); +} + +/** + * g_propagate_error: + * @dest: error return location + * @src: error to move into the return location + * + * If @dest is NULL, free @src; otherwise, + * moves @src into *@dest. *@dest must be NULL. + **/ +void +g_propagate_error (GError **dest, + GError *src) +{ + g_return_if_fail (src != NULL); + + if (dest == NULL) + { + if (src) + g_error_free (src); + return; + } + else + { + if (*dest != NULL) + g_warning (ERROR_OVERWRITTEN_WARNING, src->message); + else + *dest = src; + } +} + +/** + * g_clear_error: + * @err: a #GError return location + * + * If @err is NULL, does nothing. If @err is non-NULL, + * calls g_error_free() on *@err and sets *@err to NULL. + **/ +void +g_clear_error (GError **err) +{ + if (err && *err) + { + g_error_free (*err); + *err = NULL; + } +} diff --git a/graf2d/win32gdk/gdk/src/glib/gerror.h b/graf2d/win32gdk/gdk/src/glib/gerror.h index a7eb8fdab7d..ea0d25aaf5f 100644 --- a/graf2d/win32gdk/gdk/src/glib/gerror.h +++ b/graf2d/win32gdk/gdk/src/glib/gerror.h @@ -21,7 +21,7 @@ #ifndef __G_ERROR_H__ #define __G_ERROR_H__ -#include <gquark.h> +#include <glib/gquark.h> G_BEGIN_DECLS diff --git a/graf2d/win32gdk/gdk/src/glib/gfileutils.c b/graf2d/win32gdk/gdk/src/glib/gfileutils.c new file mode 100644 index 00000000000..3ab354c4ca3 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gfileutils.c @@ -0,0 +1,820 @@ +/* gfileutils.c - File utility functions + * + * Copyright 2000 Red Hat, Inc. + * + * GLib is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * GLib is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with GLib; see the file COPYING.LIB. If not, + * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#include "config.h" + +#include "glib.h" + +#include <sys/stat.h> +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif +#include <stdio.h> +#include <stdlib.h> +#include <stdarg.h> +#include <string.h> +#include <errno.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <stdlib.h> + +#ifdef G_OS_WIN32 +#include <io.h> +#ifndef F_OK +#define F_OK 0 +#define X_OK 1 +#define W_OK 2 +#define R_OK 4 +#endif /* !F_OK */ + +#ifndef S_ISREG +#define S_ISREG(mode) ((mode)&_S_IFREG) +#endif + +#ifndef S_ISDIR +#define S_ISDIR(mode) ((mode)&_S_IFDIR) +#endif + +#endif /* G_OS_WIN32 */ + +#ifndef S_ISLNK +#define S_ISLNK(x) 0 +#endif + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + +#include "glibintl.h" + +/** + * g_file_test: + * @filename: a filename to test + * @test: bitfield of #GFileTest flags + * + * Returns TRUE if any of the tests in the bitfield @test are + * TRUE. For example, (G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR) + * will return TRUE if the file exists; the check whether it's + * a directory doesn't matter since the existence test is TRUE. + * With the current set of available tests, there's no point + * passing in more than one test at a time. + * + * Return value: whether a test was TRUE + **/ +gboolean +g_file_test (const gchar *filename, + GFileTest test) +{ + if (test & G_FILE_TEST_EXISTS) + return (access (filename, F_OK) == 0); + else if (test & G_FILE_TEST_IS_EXECUTABLE) + return (access (filename, X_OK) == 0); + else + { + struct stat s; + + if (stat (filename, &s) < 0) + return FALSE; + + if ((test & G_FILE_TEST_IS_REGULAR) && + S_ISREG (s.st_mode)) + return TRUE; + else if ((test & G_FILE_TEST_IS_DIR) && + S_ISDIR (s.st_mode)) + return TRUE; + else if ((test & G_FILE_TEST_IS_SYMLINK) && + S_ISLNK (s.st_mode)) + return TRUE; + else + return FALSE; + } +} + +GQuark +g_file_error_quark (void) +{ + static GQuark q = 0; + if (q == 0) + q = g_quark_from_static_string ("g-file-error-quark"); + + return q; +} + +/** + * g_file_error_from_errno: + * @err_no: an "errno" value + * + * Gets a #GFileError constant based on the passed-in errno. + * For example, if you pass in EEXIST this function returns + * #G_FILE_ERROR_EXIST. Unlike errno values, you can portably + * assume that all #GFileError values will exist. + * + * Normally a #GFileError value goes into a #GError returned + * from a function that manipulates files. So you would use + * g_file_error_from_errno() when constructing a #GError. + * + * Return value: #GFileError corresponding to the given errno + **/ +GFileError +g_file_error_from_errno (gint err_no) +{ + switch (err_no) + { +#ifdef EEXIST + case EEXIST: + return G_FILE_ERROR_EXIST; + break; +#endif + +#ifdef EISDIR + case EISDIR: + return G_FILE_ERROR_ISDIR; + break; +#endif + +#ifdef EACCES + case EACCES: + return G_FILE_ERROR_ACCES; + break; +#endif + +#ifdef ENAMETOOLONG + case ENAMETOOLONG: + return G_FILE_ERROR_NAMETOOLONG; + break; +#endif + +#ifdef ENOENT + case ENOENT: + return G_FILE_ERROR_NOENT; + break; +#endif + +#ifdef ENOTDIR + case ENOTDIR: + return G_FILE_ERROR_NOTDIR; + break; +#endif + +#ifdef ENXIO + case ENXIO: + return G_FILE_ERROR_NXIO; + break; +#endif + +#ifdef ENODEV + case ENODEV: + return G_FILE_ERROR_NODEV; + break; +#endif + +#ifdef EROFS + case EROFS: + return G_FILE_ERROR_ROFS; + break; +#endif + +#ifdef ETXTBSY + case ETXTBSY: + return G_FILE_ERROR_TXTBSY; + break; +#endif + +#ifdef EFAULT + case EFAULT: + return G_FILE_ERROR_FAULT; + break; +#endif + +#ifdef ELOOP + case ELOOP: + return G_FILE_ERROR_LOOP; + break; +#endif + +#ifdef ENOSPC + case ENOSPC: + return G_FILE_ERROR_NOSPC; + break; +#endif + +#ifdef ENOMEM + case ENOMEM: + return G_FILE_ERROR_NOMEM; + break; +#endif + +#ifdef EMFILE + case EMFILE: + return G_FILE_ERROR_MFILE; + break; +#endif + +#ifdef ENFILE + case ENFILE: + return G_FILE_ERROR_NFILE; + break; +#endif + +#ifdef EBADF + case EBADF: + return G_FILE_ERROR_BADF; + break; +#endif + +#ifdef EINVAL + case EINVAL: + return G_FILE_ERROR_INVAL; + break; +#endif + +#ifdef EPIPE + case EPIPE: + return G_FILE_ERROR_PIPE; + break; +#endif + +#ifdef EAGAIN + case EAGAIN: + return G_FILE_ERROR_AGAIN; + break; +#endif + +#ifdef EINTR + case EINTR: + return G_FILE_ERROR_INTR; + break; +#endif + +#ifdef EIO + case EIO: + return G_FILE_ERROR_IO; + break; +#endif + +#ifdef EPERM + case EPERM: + return G_FILE_ERROR_PERM; + break; +#endif + + default: + return G_FILE_ERROR_FAILED; + break; + } +} + +static gboolean +get_contents_stdio (const gchar *filename, + FILE *f, + gchar **contents, + gsize *length, + GError **error) +{ + gchar buf[2048]; + size_t bytes; + GString *str; + + g_assert (f != NULL); + + str = g_string_new (""); + + while (!feof (f)) + { + bytes = fread (buf, 1, 2048, f); + + if (ferror (f)) + { + g_set_error (error, + G_FILE_ERROR, + g_file_error_from_errno (errno), + _("Error reading file '%s': %s"), + filename, strerror (errno)); + + g_string_free (str, TRUE); + fclose (f); + + return FALSE; + } + + g_string_append_len (str, buf, bytes); + } + + fclose (f); + + if (length) + *length = str->len; + + *contents = g_string_free (str, FALSE); + + return TRUE; +} + +#ifndef G_OS_WIN32 + +static gboolean +get_contents_regfile (const gchar *filename, + struct stat *stat_buf, + gint fd, + gchar **contents, + gsize *length, + GError **error) +{ + gchar *buf; + size_t bytes_read; + size_t size; + + size = stat_buf->st_size; + + buf = g_new (gchar, size + 1); + + bytes_read = 0; + while (bytes_read < size) + { + gssize rc; + + rc = read (fd, buf + bytes_read, size - bytes_read); + + if (rc < 0) + { + if (errno != EINTR) + { + close (fd); + + g_free (buf); + + g_set_error (error, + G_FILE_ERROR, + g_file_error_from_errno (errno), + _("Failed to read from file '%s': %s"), + filename, strerror (errno)); + + return FALSE; + } + } + else if (rc == 0) + break; + else + bytes_read += rc; + } + + buf[bytes_read] = '\0'; + + if (length) + *length = bytes_read; + + *contents = buf; + + return TRUE; +} + +static gboolean +get_contents_posix (const gchar *filename, + gchar **contents, + gsize *length, + GError **error) +{ + struct stat stat_buf; + gint fd; + + /* O_BINARY useful on Cygwin */ + fd = open (filename, O_RDONLY|O_BINARY); + + if (fd < 0) + { + g_set_error (error, + G_FILE_ERROR, + g_file_error_from_errno (errno), + _("Failed to open file '%s': %s"), + filename, strerror (errno)); + + return FALSE; + } + + /* I don't think this will ever fail, aside from ENOMEM, but. */ + if (fstat (fd, &stat_buf) < 0) + { + close (fd); + + g_set_error (error, + G_FILE_ERROR, + g_file_error_from_errno (errno), + _("Failed to get attributes of file '%s': fstat() failed: %s"), + filename, strerror (errno)); + + return FALSE; + } + + if (stat_buf.st_size > 0 && S_ISREG (stat_buf.st_mode)) + { + return get_contents_regfile (filename, + &stat_buf, + fd, + contents, + length, + error); + } + else + { + FILE *f; + + f = fdopen (fd, "r"); + + if (f == NULL) + { + g_set_error (error, + G_FILE_ERROR, + g_file_error_from_errno (errno), + _("Failed to open file '%s': fdopen() failed: %s"), + filename, strerror (errno)); + + return FALSE; + } + + return get_contents_stdio (filename, f, contents, length, error); + } +} + +#else /* G_OS_WIN32 */ + +static gboolean +get_contents_win32 (const gchar *filename, + gchar **contents, + gsize *length, + GError **error) +{ + FILE *f; + + /* I guess you want binary mode; maybe you want text sometimes? */ + f = fopen (filename, "rb"); + + if (f == NULL) + { + g_set_error (error, + G_FILE_ERROR, + g_file_error_from_errno (errno), + _("Failed to open file '%s': %s"), + filename, strerror (errno)); + + return FALSE; + } + + return get_contents_stdio (filename, f, contents, length, error); +} + +#endif + +/** + * g_file_get_contents: + * @filename: a file to read contents from + * @contents: location to store an allocated string + * @length: location to store length in bytes of the contents + * @error: return location for a #GError + * + * Reads an entire file into allocated memory, with good error + * checking. If @error is set, FALSE is returned, and @contents is set + * to NULL. If TRUE is returned, @error will not be set, and @contents + * will be set to the file contents. The string stored in @contents + * will be nul-terminated, so for text files you can pass NULL for the + * @length argument. The error domain is #G_FILE_ERROR. Possible + * error codes are those in the #GFileError enumeration. + * + * FIXME currently crashes if the file is too big to fit in memory; + * should probably use g_try_malloc() when we have that function. + * + * Return value: TRUE on success, FALSE if error is set + **/ +gboolean +g_file_get_contents (const gchar *filename, + gchar **contents, + gsize *length, + GError **error) +{ + g_return_val_if_fail (filename != NULL, FALSE); + g_return_val_if_fail (contents != NULL, FALSE); + + *contents = NULL; + if (length) + *length = 0; + +#ifdef G_OS_WIN32 + return get_contents_win32 (filename, contents, length, error); +#else + return get_contents_posix (filename, contents, length, error); +#endif +} + +/* + * mkstemp() implementation is from the GNU C library. + * Copyright (C) 1991,92,93,94,95,96,97,98,99 Free Software Foundation, Inc. + */ +/** + * g_mkstemp: + * @tmpl: template filename + * + * Open a temporary file. See "man mkstemp" on most UNIX-like systems. + * This is a portability wrapper, which simply calls mkstemp() on systems + * that have it, and implements it in GLib otherwise. + * + * The parameter is a string that should match the rules for mktemp, i.e. + * end in "XXXXXX". The X string will be modified to form the name + * of a file that didn't exist. + * + * Return value: A file handle (as from open()) to the file + * opened for reading and writing. The file is opened in binary mode + * on platforms where there is a difference. The file handle should be + * closed with close(). In case of errors, -1 is returned. + */ +int +g_mkstemp (char *tmpl) +{ +#ifdef HAVE_MKSTEMP + return mkstemp (tmpl); +#else + int len; + char *XXXXXX; + int count, fd; + static const char letters[] = + "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; + static const int NLETTERS = sizeof (letters) - 1; + glong value; + GTimeVal tv; + static int counter = 0; + + len = strlen (tmpl); + if (len < 6 || strcmp (&tmpl[len - 6], "XXXXXX")) + return -1; + + /* This is where the Xs start. */ + XXXXXX = &tmpl[len - 6]; + + /* Get some more or less random data. */ + g_get_current_time (&tv); + value = (tv.tv_usec ^ tv.tv_sec) + counter++; + + for (count = 0; count < 100; value += 7777, ++count) + { + glong v = value; + + /* Fill in the random bits. */ + XXXXXX[0] = letters[v % NLETTERS]; + v /= NLETTERS; + XXXXXX[1] = letters[v % NLETTERS]; + v /= NLETTERS; + XXXXXX[2] = letters[v % NLETTERS]; + v /= NLETTERS; + XXXXXX[3] = letters[v % NLETTERS]; + v /= NLETTERS; + XXXXXX[4] = letters[v % NLETTERS]; + v /= NLETTERS; + XXXXXX[5] = letters[v % NLETTERS]; + + fd = open (tmpl, O_RDWR | O_CREAT | O_EXCL | O_BINARY, 0600); + + if (fd >= 0) + return fd; + else if (errno != EEXIST) + /* Any other error will apply also to other names we might + * try, and there are 2^32 or so of them, so give up now. + */ + return -1; + } + + /* We got out of the loop because we ran out of combinations to try. */ + return -1; +#endif +} + +/** + * g_file_open_tmp: + * @tmpl: Template for file name, as in g_mkstemp, basename only + * @name_used: location to store actual name used + * @error: return location for a #GError + * + * Opens a file for writing in the preferred directory for temporary + * files (as returned by g_get_tmp_dir()). + * + * @tmpl should be a string ending with six 'X' characters, as the + * parameter to g_mkstemp() (or mkstemp()). However, unlike these + * functions, the template should only be a basename, no directory + * components are allowed. If template is NULL, a default template is + * used. + * + * Note that in contrast to g_mkstemp() (and mkstemp()) @tmpl is not + * modified, and might thus be a read-only literal string. + * + * The actual name used is returned in @name_used if non-NULL. This + * string should be freed with g_free when not needed any longer. + * + * Return value: A file handle (as from open()) to the file + * opened for reading and writing. The file is opened in binary mode + * on platforms where there is a difference. The file handle should be + * closed with close(). In case of errors, -1 is returned and + * @error will be set. + **/ +int +g_file_open_tmp (const char *tmpl, + char **name_used, + GError **error) +{ + int retval; + const char *tmpdir; + char *sep; + char *fulltemplate; + + if (tmpl == NULL) + tmpl = ".XXXXXX"; + + if (strchr (tmpl, G_DIR_SEPARATOR) +#ifdef G_OS_WIN32 + || strchr (tmpl, '/') +#endif + ) + { + g_set_error (error, + G_FILE_ERROR, + G_FILE_ERROR_FAILED, + _("Template '%s' invalid, should not contain a '%s'"), + tmpl, G_DIR_SEPARATOR_S); + + return -1; + } + + if (strlen (tmpl) < 6 || + strcmp (tmpl + strlen (tmpl) - 6, "XXXXXX") != 0) + { + g_set_error (error, + G_FILE_ERROR, + G_FILE_ERROR_FAILED, + _("Template '%s' doesn't end with XXXXXX"), + tmpl); + return -1; + } + + tmpdir = g_get_tmp_dir (); + + if (tmpdir [strlen (tmpdir) - 1] == G_DIR_SEPARATOR) + sep = ""; + else + sep = G_DIR_SEPARATOR_S; + + fulltemplate = g_strconcat (tmpdir, sep, tmpl, NULL); + + retval = g_mkstemp (fulltemplate); + + if (retval == -1) + { + g_set_error (error, + G_FILE_ERROR, + g_file_error_from_errno (errno), + _("Failed to create file '%s': %s"), + fulltemplate, strerror (errno)); + g_free (fulltemplate); + return -1; + } + + if (name_used) + *name_used = fulltemplate; + else + g_free (fulltemplate); + + return retval; +} + +static gchar * +g_build_pathv (const gchar *separator, + const gchar *first_element, + va_list args) +{ + GString *result; + gint separator_len = strlen (separator); + gboolean is_first = TRUE; + const gchar *next_element; + + result = g_string_new (NULL); + + next_element = first_element; + + while (TRUE) + { + const gchar *element; + const gchar *start; + const gchar *end; + + if (next_element) + { + element = next_element; + next_element = va_arg (args, gchar *); + } + else + break; + + start = element; + + if (is_first) + is_first = FALSE; + else if (separator_len) + { + while (start && + strncmp (start, separator, separator_len) == 0) + start += separator_len; + } + + end = start + strlen (start); + + if (next_element && separator_len) + { + while (end > start + separator_len && + strncmp (end - separator_len, separator, separator_len) == 0) + end -= separator_len; + } + + if (end > start) + { + if (result->len > 0) + g_string_append (result, separator); + + g_string_append_len (result, start, end - start); + } + } + + return g_string_free (result, FALSE); +} + +/** + * g_build_path: + * @separator: a string used to separator the elements of the path. + * @first_element: the first element in the path + * @Varargs: remaining elements in path + * + * Create a path from a series of elements using @separator as the + * separator between elements. At the boundary between two elements, + * any trailing occurrences of separator in the first element, or + * leading occurrences of separator in the second element are removed + * and exactly one copy of the separator is inserted. + * + * Return value: a newly allocated string that must be freed with g_free(). + **/ +gchar * +g_build_path (const gchar *separator, + const gchar *first_element, + ...) +{ + gchar *str; + va_list args; + + g_return_val_if_fail (separator != NULL, NULL); + + va_start (args, first_element); + str = g_build_pathv (separator, first_element, args); + va_end (args); + + return str; +} + +/** + * g_build_filename: + * @first_element: the first element in the path + * @Varargs: remaining elements in path + * + * Create a filename from a series of elements using the correct + * separator for filenames. This function behaves identically + * to g_build_path (G_DIR_SEPARATOR_S, first_element, ....) + * + * No attempt is made to force the resulting filename to be an absolute + * path. If the first element is a relative path, the result will + * be a relative path. + * + * Return value: a newly allocated string that must be freed with g_free(). + **/ +gchar * +g_build_filename (const gchar *first_element, + ...) +{ + gchar *str; + va_list args; + + va_start (args, first_element); + str = g_build_pathv (G_DIR_SEPARATOR_S, first_element, args); + va_end (args); + + return str; +} diff --git a/graf2d/win32gdk/gdk/src/glib/gfileutils.h b/graf2d/win32gdk/gdk/src/glib/gfileutils.h index 9929ee152bf..f966e01451a 100644 --- a/graf2d/win32gdk/gdk/src/glib/gfileutils.h +++ b/graf2d/win32gdk/gdk/src/glib/gfileutils.h @@ -21,7 +21,7 @@ #ifndef __G_FILEUTILS_H__ #define __G_FILEUTILS_H__ -#include <gerror.h> +#include <glib/gerror.h> G_BEGIN_DECLS @@ -76,7 +76,7 @@ gboolean g_file_test (const gchar *filename, GFileTest test); gboolean g_file_get_contents (const gchar *filename, gchar **contents, - guint *length, + gsize *length, GError **error); @@ -88,6 +88,12 @@ int g_file_open_tmp (const char *tmpl, char **name_used, GError **error); +gchar *g_build_path (const gchar *separator, + const gchar *first_element, + ...); +gchar *g_build_filename (const gchar *first_element, + ...); + G_END_DECLS #endif /* __G_FILEUTILS_H__ */ diff --git a/graf2d/win32gdk/gdk/src/glib/ghash.c b/graf2d/win32gdk/gdk/src/glib/ghash.c new file mode 100644 index 00000000000..40be7d391dc --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/ghash.c @@ -0,0 +1,696 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include "glib.h" + + +#define HASH_TABLE_MIN_SIZE 11 +#define HASH_TABLE_MAX_SIZE 13845163 + + +typedef struct _GHashNode GHashNode; + +struct _GHashNode +{ + gpointer key; + gpointer value; + GHashNode *next; +}; + +struct _GHashTable +{ + gint size; + gint nnodes; + GHashNode **nodes; + GHashFunc hash_func; + GEqualFunc key_equal_func; + GDestroyNotify key_destroy_func; + GDestroyNotify value_destroy_func; +}; + +#define G_HASH_TABLE_RESIZE(hash_table) \ + G_STMT_START { \ + if ((hash_table->size >= 3 * hash_table->nnodes && \ + hash_table->size > HASH_TABLE_MIN_SIZE) || \ + (3 * hash_table->size <= hash_table->nnodes && \ + hash_table->size < HASH_TABLE_MAX_SIZE)) \ + g_hash_table_resize (hash_table); \ + } G_STMT_END + +static void g_hash_table_resize (GHashTable *hash_table); +static GHashNode** g_hash_table_lookup_node (GHashTable *hash_table, + gconstpointer key); +static GHashNode* g_hash_node_new (gpointer key, + gpointer value); +static void g_hash_node_destroy (GHashNode *hash_node, + GDestroyNotify key_destroy_func, + GDestroyNotify value_destroy_func); +static void g_hash_nodes_destroy (GHashNode *hash_node, + GDestroyNotify key_destroy_func, + GDestroyNotify value_destroy_func); +static guint g_hash_table_foreach_remove_or_steal (GHashTable *hash_table, + GHRFunc func, + gpointer user_data, + gboolean notify); + + +G_LOCK_DEFINE_STATIC (g_hash_global); + +static GMemChunk *node_mem_chunk = NULL; +static GHashNode *node_free_list = NULL; + +/** + * g_hash_table_new: + * @hash_func: a function to create a hash value from a key. + * Hash values are used to determine where keys are stored within the + * #GHashTable data structure. The g_direct_hash(), g_int_hash() and + * g_str_hash() functions are provided for some common types of keys. + * If hash_func is NULL, g_direct_hash() is used. + * @key_equal_func: a function to check two keys for equality. This is + * used when looking up keys in the #GHashTable. The g_direct_equal(), + * g_int_equal() and g_str_equal() functions are provided for the most + * common types of keys. If @key_equal_func is NULL, keys are compared + * directly in a similar fashion to g_direct_equal(), but without the + * overhead of a function call. + * + * Creates a new #GHashTable. + * + * Return value: a new #GHashTable. + **/ +GHashTable* +g_hash_table_new (GHashFunc hash_func, + GEqualFunc key_equal_func) +{ + return g_hash_table_new_full (hash_func, key_equal_func, NULL, NULL); +} + + +/** + * g_hash_table_new_full: + * @hash_func: a function to create a hash value from a key. + * @key_equal_func: a function to check two keys for equality. + * @key_destroy_func: a function to free the memory allocated for the key + * used when removing the entry from the #GHashTable or #NULL if you + * don't want to supply such a function. + * @value_destroy_func: a function to free the memory allocated for the + * value used when removing the entry from the #GHashTable or #NULL if + * you don't want to supply such a function. + * + * Creates a new #GHashTable like g_hash_table_new() and allows to specify + * functions to free the memory allocated for the key and value that get + * called when removing the entry from the #GHashTable. + * + * Return value: a new #GHashTable. + **/ +GHashTable* +g_hash_table_new_full (GHashFunc hash_func, + GEqualFunc key_equal_func, + GDestroyNotify key_destroy_func, + GDestroyNotify value_destroy_func) +{ + GHashTable *hash_table; + guint i; + + hash_table = g_new (GHashTable, 1); + hash_table->size = HASH_TABLE_MIN_SIZE; + hash_table->nnodes = 0; + hash_table->hash_func = hash_func ? hash_func : g_direct_hash; + hash_table->key_equal_func = key_equal_func; + hash_table->key_destroy_func = key_destroy_func; + hash_table->value_destroy_func = value_destroy_func; + hash_table->nodes = g_new (GHashNode*, hash_table->size); + + for (i = 0; i < hash_table->size; i++) + hash_table->nodes[i] = NULL; + + return hash_table; +} + +/** + * g_hash_table_destroy: + * @hash_table: a #GHashTable. + * + * Destroys the #GHashTable. If keys and/or values are dynamically + * allocated, you should either free them first or create the #GHashTable + * using g_hash_table_new_full(). In the latter case the destroy functions + * you supplied will be called on all keys and values before destroying + * the #GHashTable. + **/ +void +g_hash_table_destroy (GHashTable *hash_table) +{ + guint i; + + g_return_if_fail (hash_table != NULL); + + for (i = 0; i < hash_table->size; i++) + g_hash_nodes_destroy (hash_table->nodes[i], + hash_table->key_destroy_func, + hash_table->value_destroy_func); + + g_free (hash_table->nodes); + g_free (hash_table); +} + +static inline GHashNode** +g_hash_table_lookup_node (GHashTable *hash_table, + gconstpointer key) +{ + GHashNode **node; + + node = &hash_table->nodes + [(* hash_table->hash_func) (key) % hash_table->size]; + + /* Hash table lookup needs to be fast. + * We therefore remove the extra conditional of testing + * whether to call the key_equal_func or not from + * the inner loop. + */ + if (hash_table->key_equal_func) + while (*node && !(*hash_table->key_equal_func) ((*node)->key, key)) + node = &(*node)->next; + else + while (*node && (*node)->key != key) + node = &(*node)->next; + + return node; +} + +/** + * g_hash_table_lookup: + * @hash_table: a #GHashTable. + * @key: the key to look up. + * + * Looks up a key in a #GHashTable. + * + * Return value: the associated value, or NULL if the key is not found. + **/ +gpointer +g_hash_table_lookup (GHashTable *hash_table, + gconstpointer key) +{ + GHashNode *node; + + g_return_val_if_fail (hash_table != NULL, NULL); + + node = *g_hash_table_lookup_node (hash_table, key); + + return node ? node->value : NULL; +} + +/** + * g_hash_table_lookup_extended: + * @hash_table: a #GHashTable. + * @lookup_key: the key to look up. + * @orig_key: returns the original key. + * @value: returns the value associated with the key. + * + * Looks up a key in the #GHashTable, returning the original key and the + * associated value and a gboolean which is TRUE if the key was found. This + * is useful if you need to free the memory allocated for the original key, + * for example before calling g_hash_table_remove(). + * + * Return value: #TRUE if the key was found in the #GHashTable. + **/ +gboolean +g_hash_table_lookup_extended (GHashTable *hash_table, + gconstpointer lookup_key, + gpointer *orig_key, + gpointer *value) +{ + GHashNode *node; + + g_return_val_if_fail (hash_table != NULL, FALSE); + + node = *g_hash_table_lookup_node (hash_table, lookup_key); + + if (node) + { + if (orig_key) + *orig_key = node->key; + if (value) + *value = node->value; + return TRUE; + } + else + return FALSE; +} + +/** + * g_hash_table_insert: + * @hash_table: a #GHashTable. + * @key: a key to insert. + * @value: the value to associate with the key. + * + * Inserts a new key and value into a #GHashTable. + * + * If the key already exists in the #GHashTable its current value is replaced + * with the new value. If you supplied a value_destroy_func when creating the + * #GHashTable, the old value is freed using that function. If you supplied + * a key_destroy_func when creating the #GHashTable, the passed key is freed + * using that function. + **/ +void +g_hash_table_insert (GHashTable *hash_table, + gpointer key, + gpointer value) +{ + GHashNode **node; + + g_return_if_fail (hash_table != NULL); + + node = g_hash_table_lookup_node (hash_table, key); + + if (*node) + { + /* do not reset node->key in this place, keeping + * the old key is the intended behaviour. + * g_hash_table_replace() can be used instead. + */ + + /* free the passed key */ + if (hash_table->key_destroy_func) + hash_table->key_destroy_func (key); + + if (hash_table->value_destroy_func) + hash_table->value_destroy_func ((*node)->value); + + (*node)->value = value; + } + else + { + *node = g_hash_node_new (key, value); + hash_table->nnodes++; + G_HASH_TABLE_RESIZE (hash_table); + } +} + +/** + * g_hash_table_replace: + * @hash_table: a #GHashTable. + * @key: a key to insert. + * @value: the value to associate with the key. + * + * Inserts a new key and value into a #GHashTable similar to + * g_hash_table_insert(). The difference is that if the key already exists + * in the #GHashTable, it gets replaced by the new key. If you supplied a + * value_destroy_func when creating the #GHashTable, the old value is freed + * using that function. If you supplied a key_destroy_func when creating the + * #GHashTable, the old key is freed using that function. + **/ +void +g_hash_table_replace (GHashTable *hash_table, + gpointer key, + gpointer value) +{ + GHashNode **node; + + g_return_if_fail (hash_table != NULL); + + node = g_hash_table_lookup_node (hash_table, key); + + if (*node) + { + if (hash_table->key_destroy_func) + hash_table->key_destroy_func ((*node)->key); + + if (hash_table->value_destroy_func) + hash_table->value_destroy_func ((*node)->value); + + (*node)->key = key; + (*node)->value = value; + } + else + { + *node = g_hash_node_new (key, value); + hash_table->nnodes++; + G_HASH_TABLE_RESIZE (hash_table); + } +} + +/** + * g_hash_table_remove: + * @hash_table: a #GHashTable. + * @key: the key to remove. + * + * Removes a key and its associated value from a #GHashTable. + * + * If the #GHashTable was created using g_hash_table_new_full(), the + * key and value are freed using the supplied destroy_functions, otherwise + * you have to make sure that any dynamically allocated values are freed + * yourself. + * + * Return value: #TRUE if the key was found and removed from the #GHashTable. + **/ +gboolean +g_hash_table_remove (GHashTable *hash_table, + gconstpointer key) +{ + GHashNode **node, *dest; + + g_return_val_if_fail (hash_table != NULL, FALSE); + + node = g_hash_table_lookup_node (hash_table, key); + if (*node) + { + dest = *node; + (*node) = dest->next; + g_hash_node_destroy (dest, + hash_table->key_destroy_func, + hash_table->value_destroy_func); + hash_table->nnodes--; + + G_HASH_TABLE_RESIZE (hash_table); + + return TRUE; + } + + return FALSE; +} + +/** + * g_hash_table_steal: + * @hash_table: a #GHashTable. + * @key: the key to remove. + * + * Removes a key and its associated value from a #GHashTable without + * calling the key and value destroy functions. + * + * Return value: #TRUE if the key was found and removed from the #GHashTable. + **/ +gboolean +g_hash_table_steal (GHashTable *hash_table, + gconstpointer key) +{ + GHashNode **node, *dest; + + g_return_val_if_fail (hash_table != NULL, FALSE); + + node = g_hash_table_lookup_node (hash_table, key); + if (*node) + { + dest = *node; + (*node) = dest->next; + g_hash_node_destroy (dest, NULL, NULL); + hash_table->nnodes--; + + G_HASH_TABLE_RESIZE (hash_table); + + return TRUE; + } + + return FALSE; +} + +/** + * g_hash_table_foreach_remove: + * @hash_table: a #GHashTable. + * @func: the function to call for each key/value pair. + * @user_data: user data to pass to the function. + * + * Calls the given function for each key/value pair in the #GHashTable. + * If the function returns TRUE, then the key/value pair is removed from the + * #GHashTable. If you supplied key or value destroy functions when creating + * the #GHashTable, they are used to free the memory allocated for the removed + * keys and values. + * + * Return value: the number of key/value pairs removed. + **/ +guint +g_hash_table_foreach_remove (GHashTable *hash_table, + GHRFunc func, + gpointer user_data) +{ + g_return_val_if_fail (hash_table != NULL, 0); + g_return_val_if_fail (func != NULL, 0); + + return g_hash_table_foreach_remove_or_steal (hash_table, func, user_data, TRUE); +} + +/** + * g_hash_table_foreach_steal: + * @hash_table: a #GHashTable. + * @func: the function to call for each key/value pair. + * @user_data: user data to pass to the function. + * + * Calls the given function for each key/value pair in the #GHashTable. + * If the function returns TRUE, then the key/value pair is removed from the + * #GHashTable, but no key or value destroy functions are called. + * + * Return value: the number of key/value pairs removed. + **/ +guint +g_hash_table_foreach_steal (GHashTable *hash_table, + GHRFunc func, + gpointer user_data) +{ + g_return_val_if_fail (hash_table != NULL, 0); + g_return_val_if_fail (func != NULL, 0); + + return g_hash_table_foreach_remove_or_steal (hash_table, func, user_data, FALSE); +} + +static guint +g_hash_table_foreach_remove_or_steal (GHashTable *hash_table, + GHRFunc func, + gpointer user_data, + gboolean notify) +{ + GHashNode *node, *prev; + guint i; + guint deleted = 0; + + for (i = 0; i < hash_table->size; i++) + { + restart: + + prev = NULL; + + for (node = hash_table->nodes[i]; node; prev = node, node = node->next) + { + if ((* func) (node->key, node->value, user_data)) + { + deleted += 1; + + hash_table->nnodes -= 1; + + if (prev) + { + prev->next = node->next; + g_hash_node_destroy (node, + notify ? hash_table->key_destroy_func : NULL, + notify ? hash_table->value_destroy_func : NULL); + node = prev; + } + else + { + hash_table->nodes[i] = node->next; + g_hash_node_destroy (node, + notify ? hash_table->key_destroy_func : NULL, + notify ? hash_table->value_destroy_func : NULL); + goto restart; + } + } + } + } + + G_HASH_TABLE_RESIZE (hash_table); + + return deleted; +} + +/** + * g_hash_table_foreach: + * @hash_table: a #GHashTable. + * @func: the function to call for each key/value pair. + * @user_data: user data to pass to the function. + * + * Calls the given function for each of the key/value pairs in the #GHashTable. + * The function is passed the key and value of each pair, and the given + * @user_data parameter. + **/ +void +g_hash_table_foreach (GHashTable *hash_table, + GHFunc func, + gpointer user_data) +{ + GHashNode *node; + gint i; + + g_return_if_fail (hash_table != NULL); + g_return_if_fail (func != NULL); + + for (i = 0; i < hash_table->size; i++) + for (node = hash_table->nodes[i]; node; node = node->next) + (* func) (node->key, node->value, user_data); +} + +/** + * g_hash_table_size: + * @hash_table: a #GHashTable. + * + * Returns the number of elements contained in the #GHashTable. + * + * Return value: the number of key/value pairs in the #GHashTable. + **/ +guint +g_hash_table_size (GHashTable *hash_table) +{ + g_return_val_if_fail (hash_table != NULL, 0); + + return hash_table->nnodes; +} + +static void +g_hash_table_resize (GHashTable *hash_table) +{ + GHashNode **new_nodes; + GHashNode *node; + GHashNode *next; + guint hash_val; + gint new_size; + gint i; + + new_size = CLAMP(g_spaced_primes_closest (hash_table->nnodes), + HASH_TABLE_MIN_SIZE, + HASH_TABLE_MAX_SIZE); + new_nodes = g_new0 (GHashNode*, new_size); + + for (i = 0; i < hash_table->size; i++) + for (node = hash_table->nodes[i]; node; node = next) + { + next = node->next; + + hash_val = (* hash_table->hash_func) (node->key) % new_size; + + node->next = new_nodes[hash_val]; + new_nodes[hash_val] = node; + } + + g_free (hash_table->nodes); + hash_table->nodes = new_nodes; + hash_table->size = new_size; +} + +static GHashNode* +g_hash_node_new (gpointer key, + gpointer value) +{ + GHashNode *hash_node; + + G_LOCK (g_hash_global); + if (node_free_list) + { + hash_node = node_free_list; + node_free_list = node_free_list->next; + } + else + { + if (!node_mem_chunk) + node_mem_chunk = g_mem_chunk_new ("hash node mem chunk", + sizeof (GHashNode), + 1024, G_ALLOC_ONLY); + + hash_node = g_chunk_new (GHashNode, node_mem_chunk); + } + G_UNLOCK (g_hash_global); + + hash_node->key = key; + hash_node->value = value; + hash_node->next = NULL; + + return hash_node; +} + +static void +g_hash_node_destroy (GHashNode *hash_node, + GDestroyNotify key_destroy_func, + GDestroyNotify value_destroy_func) +{ + if (key_destroy_func) + key_destroy_func (hash_node->key); + if (value_destroy_func) + value_destroy_func (hash_node->value); + +#ifdef ENABLE_GC_FRIENDLY + hash_node->key = NULL; + hash_node->value = NULL; +#endif /* ENABLE_GC_FRIENDLY */ + + G_LOCK (g_hash_global); + hash_node->next = node_free_list; + node_free_list = hash_node; + G_UNLOCK (g_hash_global); +} + +static void +g_hash_nodes_destroy (GHashNode *hash_node, + GFreeFunc key_destroy_func, + GFreeFunc value_destroy_func) +{ + if (hash_node) + { + GHashNode *node = hash_node; + + while (node->next) + { + if (key_destroy_func) + key_destroy_func (node->key); + if (value_destroy_func) + value_destroy_func (node->value); + +#ifdef ENABLE_GC_FRIENDLY + node->key = NULL; + node->value = NULL; +#endif /* ENABLE_GC_FRIENDLY */ + + node = node->next; + } + + if (key_destroy_func) + key_destroy_func (node->key); + if (value_destroy_func) + value_destroy_func (node->value); + +#ifdef ENABLE_GC_FRIENDLY + node->key = NULL; + node->value = NULL; +#endif /* ENABLE_GC_FRIENDLY */ + + G_LOCK (g_hash_global); + node->next = node_free_list; + node_free_list = hash_node; + G_UNLOCK (g_hash_global); + } +} diff --git a/graf2d/win32gdk/gdk/src/glib/ghash.h b/graf2d/win32gdk/gdk/src/glib/ghash.h index 6a9a8e263ec..acc2d176ea6 100644 --- a/graf2d/win32gdk/gdk/src/glib/ghash.h +++ b/graf2d/win32gdk/gdk/src/glib/ghash.h @@ -27,54 +27,70 @@ #ifndef __G_HASH_H__ #define __G_HASH_H__ -#include <g_types.h> +#include <glib/gtypes.h> G_BEGIN_DECLS -typedef struct _GHashTable GHashTable; +typedef struct _GHashTable GHashTable; -typedef gboolean (*GHRFunc) (gpointer key, - gpointer value, - gpointer user_data); +typedef gboolean (*GHRFunc) (gpointer key, + gpointer value, + gpointer user_data); /* Hash tables */ -GHashTable* g_hash_table_new (GHashFunc hash_func, - GEqualFunc key_equal_func); -void g_hash_table_destroy (GHashTable *hash_table); -void g_hash_table_insert (GHashTable *hash_table, - gpointer key, - gpointer value); -gboolean g_hash_table_remove (GHashTable *hash_table, - gconstpointer key); -gpointer g_hash_table_lookup (GHashTable *hash_table, - gconstpointer key); -gboolean g_hash_table_lookup_extended(GHashTable *hash_table, - gconstpointer lookup_key, - gpointer *orig_key, - gpointer *value); -void g_hash_table_foreach (GHashTable *hash_table, - GHFunc func, - gpointer user_data); -guint g_hash_table_foreach_remove (GHashTable *hash_table, - GHRFunc func, - gpointer user_data); -guint g_hash_table_size (GHashTable *hash_table); +GHashTable* g_hash_table_new (GHashFunc hash_func, + GEqualFunc key_equal_func); +GHashTable* g_hash_table_new_full (GHashFunc hash_func, + GEqualFunc key_equal_func, + GDestroyNotify key_destroy_func, + GDestroyNotify value_destroy_func); +void g_hash_table_destroy (GHashTable *hash_table); +void g_hash_table_insert (GHashTable *hash_table, + gpointer key, + gpointer value); +void g_hash_table_replace (GHashTable *hash_table, + gpointer key, + gpointer value); +gboolean g_hash_table_remove (GHashTable *hash_table, + gconstpointer key); +gboolean g_hash_table_steal (GHashTable *hash_table, + gconstpointer key); +gpointer g_hash_table_lookup (GHashTable *hash_table, + gconstpointer key); +gboolean g_hash_table_lookup_extended (GHashTable *hash_table, + gconstpointer lookup_key, + gpointer *orig_key, + gpointer *value); +void g_hash_table_foreach (GHashTable *hash_table, + GHFunc func, + gpointer user_data); +guint g_hash_table_foreach_remove (GHashTable *hash_table, + GHRFunc func, + gpointer user_data); +guint g_hash_table_foreach_steal (GHashTable *hash_table, + GHRFunc func, + gpointer user_data); +guint g_hash_table_size (GHashTable *hash_table); + +#ifndef G_DISABLE_DEPRECATED /* The following two functions are deprecated and will be removed in * the next major release. They do no good. */ -void g_hash_table_freeze (GHashTable *hash_table); -void g_hash_table_thaw (GHashTable *hash_table); +#define g_hash_table_freeze(hash_table) ((void)0) +#define g_hash_table_thaw(hash_table) ((void)0) + +#endif /* G_DISABLE_DEPRECATED */ /* Hash Functions */ -gboolean g_str_equal (gconstpointer v, - gconstpointer v2); -guint g_str_hash (gconstpointer v); +gboolean g_str_equal (gconstpointer v, + gconstpointer v2); +guint g_str_hash (gconstpointer v); -gboolean g_int_equal (gconstpointer v, - gconstpointer v2) G_GNUC_CONST; -guint g_int_hash (gconstpointer v) G_GNUC_CONST; +gboolean g_int_equal (gconstpointer v, + gconstpointer v2) G_GNUC_CONST; +guint g_int_hash (gconstpointer v) G_GNUC_CONST; /* This "hash" function will just return the key's adress as an * unsigned integer. Useful for hashing on plain adresses or @@ -82,9 +98,9 @@ guint g_int_hash (gconstpointer v) G_GNUC_CONST; * passing NULL into g_hash_table_new() as GHashFunc has the * same effect as passing g_direct_hash(). */ -guint g_direct_hash (gconstpointer v) G_GNUC_CONST; -gboolean g_direct_equal (gconstpointer v, - gconstpointer v2) G_GNUC_CONST; +guint g_direct_hash (gconstpointer v) G_GNUC_CONST; +gboolean g_direct_equal (gconstpointer v, + gconstpointer v2) G_GNUC_CONST; G_END_DECLS diff --git a/graf2d/win32gdk/gdk/src/glib/ghook.c b/graf2d/win32gdk/gdk/src/glib/ghook.c new file mode 100644 index 00000000000..d04162fa162 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/ghook.c @@ -0,0 +1,640 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * GHook: Callback maintenance functions + * Copyright (C) 1998 Tim Janik + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe + */ + +#include "glib.h" + + +/* --- defines --- */ +#define G_HOOKS_PREALLOC (16) + + +/* --- functions --- */ +static void +default_finalize_hook (GHookList *hook_list, + GHook *hook) +{ + GDestroyNotify destroy = hook->destroy; + + if (destroy) + { + hook->destroy = NULL; + destroy (hook->data); + } +} + +void +g_hook_list_init (GHookList *hook_list, + guint hook_size) +{ + g_return_if_fail (hook_list != NULL); + g_return_if_fail (hook_size >= sizeof (GHook)); + g_return_if_fail (hook_size < 65536); + + hook_list->seq_id = 1; + hook_list->hook_size = hook_size; + hook_list->is_setup = TRUE; + hook_list->hooks = NULL; + hook_list->hook_memchunk = g_mem_chunk_new ("GHook Memchunk", + hook_size, + hook_size * G_HOOKS_PREALLOC, + G_ALLOC_AND_FREE); + hook_list->finalize_hook = default_finalize_hook; +} + +void +g_hook_list_clear (GHookList *hook_list) +{ + g_return_if_fail (hook_list != NULL); + + if (hook_list->is_setup) + { + GHook *hook; + + hook_list->is_setup = FALSE; + + hook = hook_list->hooks; + if (!hook) + { + g_mem_chunk_destroy (hook_list->hook_memchunk); + hook_list->hook_memchunk = NULL; + } + else + do + { + GHook *tmp; + + g_hook_ref (hook_list, hook); + g_hook_destroy_link (hook_list, hook); + tmp = hook->next; + g_hook_unref (hook_list, hook); + hook = tmp; + } + while (hook); + if (hook_list->hook_memchunk) + g_warning (G_STRLOC ": failed to clear hooklist, unconsolidated references on hooks left"); + } +} + +GHook* +g_hook_alloc (GHookList *hook_list) +{ + GHook *hook; + + g_return_val_if_fail (hook_list != NULL, NULL); + g_return_val_if_fail (hook_list->is_setup, NULL); + + hook = g_chunk_new0 (GHook, hook_list->hook_memchunk); + hook->data = NULL; + hook->next = NULL; + hook->prev = NULL; + hook->flags = G_HOOK_FLAG_ACTIVE; + hook->ref_count = 0; + hook->hook_id = 0; + hook->func = NULL; + hook->destroy = NULL; + + return hook; +} + +void +g_hook_free (GHookList *hook_list, + GHook *hook) +{ + g_return_if_fail (hook_list != NULL); + g_return_if_fail (hook_list->is_setup); + g_return_if_fail (hook != NULL); + g_return_if_fail (G_HOOK_IS_UNLINKED (hook)); + g_return_if_fail (!G_HOOK_IN_CALL (hook)); + + hook_list->finalize_hook (hook_list, hook); + g_chunk_free (hook, hook_list->hook_memchunk); +} + +void +g_hook_destroy_link (GHookList *hook_list, + GHook *hook) +{ + g_return_if_fail (hook_list != NULL); + g_return_if_fail (hook != NULL); + + hook->flags &= ~G_HOOK_FLAG_ACTIVE; + if (hook->hook_id) + { + hook->hook_id = 0; + g_hook_unref (hook_list, hook); /* counterpart to g_hook_insert_before */ + } +} + +gboolean +g_hook_destroy (GHookList *hook_list, + gulong hook_id) +{ + GHook *hook; + + g_return_val_if_fail (hook_list != NULL, FALSE); + g_return_val_if_fail (hook_id > 0, FALSE); + + hook = g_hook_get (hook_list, hook_id); + if (hook) + { + g_hook_destroy_link (hook_list, hook); + return TRUE; + } + + return FALSE; +} + +void +g_hook_unref (GHookList *hook_list, + GHook *hook) +{ + g_return_if_fail (hook_list != NULL); + g_return_if_fail (hook_list->hook_memchunk != NULL); + g_return_if_fail (hook != NULL); + g_return_if_fail (hook->ref_count > 0); + + hook->ref_count--; + if (!hook->ref_count) + { + g_return_if_fail (hook->hook_id == 0); + g_return_if_fail (!G_HOOK_IN_CALL (hook)); + + if (hook->prev) + hook->prev->next = hook->next; + else + hook_list->hooks = hook->next; + if (hook->next) + { + hook->next->prev = hook->prev; + hook->next = NULL; + } + hook->prev = NULL; + + if (!hook_list->is_setup) + { + hook_list->is_setup = TRUE; + g_hook_free (hook_list, hook); + hook_list->is_setup = FALSE; + + if (!hook_list->hooks) + { + g_mem_chunk_destroy (hook_list->hook_memchunk); + hook_list->hook_memchunk = NULL; + } + } + else + g_hook_free (hook_list, hook); + } +} + +void +g_hook_ref (GHookList *hook_list, + GHook *hook) +{ + g_return_if_fail (hook_list != NULL); + g_return_if_fail (hook != NULL); + g_return_if_fail (hook->ref_count > 0); + + hook->ref_count++; +} + +void +g_hook_prepend (GHookList *hook_list, + GHook *hook) +{ + g_return_if_fail (hook_list != NULL); + + g_hook_insert_before (hook_list, hook_list->hooks, hook); +} + +void +g_hook_insert_before (GHookList *hook_list, + GHook *sibling, + GHook *hook) +{ + g_return_if_fail (hook_list != NULL); + g_return_if_fail (hook_list->is_setup); + g_return_if_fail (hook != NULL); + g_return_if_fail (G_HOOK_IS_UNLINKED (hook)); + g_return_if_fail (hook->ref_count == 0); + + hook->hook_id = hook_list->seq_id++; + hook->ref_count = 1; /* counterpart to g_hook_destroy_link */ + + if (sibling) + { + if (sibling->prev) + { + hook->prev = sibling->prev; + hook->prev->next = hook; + hook->next = sibling; + sibling->prev = hook; + } + else + { + hook_list->hooks = hook; + hook->next = sibling; + sibling->prev = hook; + } + } + else + { + if (hook_list->hooks) + { + sibling = hook_list->hooks; + while (sibling->next) + sibling = sibling->next; + hook->prev = sibling; + sibling->next = hook; + } + else + hook_list->hooks = hook; + } +} + +void +g_hook_list_invoke (GHookList *hook_list, + gboolean may_recurse) +{ + GHook *hook; + + g_return_if_fail (hook_list != NULL); + g_return_if_fail (hook_list->is_setup); + + hook = g_hook_first_valid (hook_list, may_recurse); + while (hook) + { + GHookFunc func; + gboolean was_in_call; + + func = (GHookFunc) hook->func; + + was_in_call = G_HOOK_IN_CALL (hook); + hook->flags |= G_HOOK_FLAG_IN_CALL; + func (hook->data); + if (!was_in_call) + hook->flags &= ~G_HOOK_FLAG_IN_CALL; + + hook = g_hook_next_valid (hook_list, hook, may_recurse); + } +} + +void +g_hook_list_invoke_check (GHookList *hook_list, + gboolean may_recurse) +{ + GHook *hook; + + g_return_if_fail (hook_list != NULL); + g_return_if_fail (hook_list->is_setup); + + hook = g_hook_first_valid (hook_list, may_recurse); + while (hook) + { + GHookCheckFunc func; + gboolean was_in_call; + gboolean need_destroy; + + func = (GHookCheckFunc) hook->func; + + was_in_call = G_HOOK_IN_CALL (hook); + hook->flags |= G_HOOK_FLAG_IN_CALL; + need_destroy = !func (hook->data); + if (!was_in_call) + hook->flags &= ~G_HOOK_FLAG_IN_CALL; + if (need_destroy) + g_hook_destroy_link (hook_list, hook); + + hook = g_hook_next_valid (hook_list, hook, may_recurse); + } +} + +void +g_hook_list_marshal_check (GHookList *hook_list, + gboolean may_recurse, + GHookCheckMarshaller marshaller, + gpointer data) +{ + GHook *hook; + + g_return_if_fail (hook_list != NULL); + g_return_if_fail (hook_list->is_setup); + g_return_if_fail (marshaller != NULL); + + hook = g_hook_first_valid (hook_list, may_recurse); + while (hook) + { + gboolean was_in_call; + gboolean need_destroy; + + was_in_call = G_HOOK_IN_CALL (hook); + hook->flags |= G_HOOK_FLAG_IN_CALL; + need_destroy = !marshaller (hook, data); + if (!was_in_call) + hook->flags &= ~G_HOOK_FLAG_IN_CALL; + if (need_destroy) + g_hook_destroy_link (hook_list, hook); + + hook = g_hook_next_valid (hook_list, hook, may_recurse); + } +} + +void +g_hook_list_marshal (GHookList *hook_list, + gboolean may_recurse, + GHookMarshaller marshaller, + gpointer data) +{ + GHook *hook; + + g_return_if_fail (hook_list != NULL); + g_return_if_fail (hook_list->is_setup); + g_return_if_fail (marshaller != NULL); + + hook = g_hook_first_valid (hook_list, may_recurse); + while (hook) + { + gboolean was_in_call; + + was_in_call = G_HOOK_IN_CALL (hook); + hook->flags |= G_HOOK_FLAG_IN_CALL; + marshaller (hook, data); + if (!was_in_call) + hook->flags &= ~G_HOOK_FLAG_IN_CALL; + + hook = g_hook_next_valid (hook_list, hook, may_recurse); + } +} + +GHook* +g_hook_first_valid (GHookList *hook_list, + gboolean may_be_in_call) +{ + g_return_val_if_fail (hook_list != NULL, NULL); + + if (hook_list->is_setup) + { + GHook *hook; + + hook = hook_list->hooks; + if (hook) + { + g_hook_ref (hook_list, hook); + if (G_HOOK_IS_VALID (hook) && (may_be_in_call || !G_HOOK_IN_CALL (hook))) + return hook; + else + return g_hook_next_valid (hook_list, hook, may_be_in_call); + } + } + + return NULL; +} + +GHook* +g_hook_next_valid (GHookList *hook_list, + GHook *hook, + gboolean may_be_in_call) +{ + GHook *ohook = hook; + + g_return_val_if_fail (hook_list != NULL, NULL); + + if (!hook) + return NULL; + + hook = hook->next; + while (hook) + { + if (G_HOOK_IS_VALID (hook) && (may_be_in_call || !G_HOOK_IN_CALL (hook))) + { + g_hook_ref (hook_list, hook); + g_hook_unref (hook_list, ohook); + + return hook; + } + hook = hook->next; + } + g_hook_unref (hook_list, ohook); + + return NULL; +} + +GHook* +g_hook_get (GHookList *hook_list, + gulong hook_id) +{ + GHook *hook; + + g_return_val_if_fail (hook_list != NULL, NULL); + g_return_val_if_fail (hook_id > 0, NULL); + + hook = hook_list->hooks; + while (hook) + { + if (hook->hook_id == hook_id) + return hook; + hook = hook->next; + } + + return NULL; +} + +GHook* +g_hook_find (GHookList *hook_list, + gboolean need_valids, + GHookFindFunc func, + gpointer data) +{ + GHook *hook; + + g_return_val_if_fail (hook_list != NULL, NULL); + g_return_val_if_fail (func != NULL, NULL); + + hook = hook_list->hooks; + while (hook) + { + GHook *tmp; + + /* test only non-destroyed hooks */ + if (!hook->hook_id) + { + hook = hook->next; + continue; + } + + g_hook_ref (hook_list, hook); + + if (func (hook, data) && hook->hook_id && (!need_valids || G_HOOK_ACTIVE (hook))) + { + g_hook_unref (hook_list, hook); + + return hook; + } + + tmp = hook->next; + g_hook_unref (hook_list, hook); + hook = tmp; + } + + return NULL; +} + +GHook* +g_hook_find_data (GHookList *hook_list, + gboolean need_valids, + gpointer data) +{ + GHook *hook; + + g_return_val_if_fail (hook_list != NULL, NULL); + + hook = hook_list->hooks; + while (hook) + { + /* test only non-destroyed hooks */ + if (hook->data == data && + hook->hook_id && + (!need_valids || G_HOOK_ACTIVE (hook))) + return hook; + + hook = hook->next; + } + + return NULL; +} + +GHook* +g_hook_find_func (GHookList *hook_list, + gboolean need_valids, + gpointer func) +{ + GHook *hook; + + g_return_val_if_fail (hook_list != NULL, NULL); + g_return_val_if_fail (func != NULL, NULL); + + hook = hook_list->hooks; + while (hook) + { + /* test only non-destroyed hooks */ + if (hook->func == func && + hook->hook_id && + (!need_valids || G_HOOK_ACTIVE (hook))) + return hook; + + hook = hook->next; + } + + return NULL; +} + +GHook* +g_hook_find_func_data (GHookList *hook_list, + gboolean need_valids, + gpointer func, + gpointer data) +{ + GHook *hook; + + g_return_val_if_fail (hook_list != NULL, NULL); + g_return_val_if_fail (func != NULL, NULL); + + hook = hook_list->hooks; + while (hook) + { + /* test only non-destroyed hooks */ + if (hook->data == data && + hook->func == func && + hook->hook_id && + (!need_valids || G_HOOK_ACTIVE (hook))) + return hook; + + hook = hook->next; + } + + return NULL; +} + +void +g_hook_insert_sorted (GHookList *hook_list, + GHook *hook, + GHookCompareFunc func) +{ + GHook *sibling; + + g_return_if_fail (hook_list != NULL); + g_return_if_fail (hook_list->is_setup); + g_return_if_fail (hook != NULL); + g_return_if_fail (G_HOOK_IS_UNLINKED (hook)); + g_return_if_fail (hook->func != NULL); + g_return_if_fail (func != NULL); + + /* first non-destroyed hook */ + sibling = hook_list->hooks; + while (sibling && !sibling->hook_id) + sibling = sibling->next; + + while (sibling) + { + GHook *tmp; + + g_hook_ref (hook_list, sibling); + if (func (hook, sibling) <= 0 && sibling->hook_id) + { + g_hook_unref (hook_list, sibling); + break; + } + + /* next non-destroyed hook */ + tmp = sibling->next; + while (tmp && !tmp->hook_id) + tmp = tmp->next; + + g_hook_unref (hook_list, sibling); + sibling = tmp; + } + + g_hook_insert_before (hook_list, sibling, hook); +} + +gint +g_hook_compare_ids (GHook *new_hook, + GHook *sibling) +{ + if (new_hook->hook_id < sibling->hook_id) + return -1; + else if (new_hook->hook_id > sibling->hook_id) + return 1; + + return 0; +} diff --git a/graf2d/win32gdk/gdk/src/glib/ghook.h b/graf2d/win32gdk/gdk/src/glib/ghook.h index fe350e18e2d..e6bfb461480 100644 --- a/graf2d/win32gdk/gdk/src/glib/ghook.h +++ b/graf2d/win32gdk/gdk/src/glib/ghook.h @@ -27,10 +27,12 @@ #ifndef __G_HOOK_H__ #define __G_HOOK_H__ -#include <gmem.h> +#include <glib/gmem.h> G_BEGIN_DECLS + +/* --- typedefs --- */ typedef struct _GHook GHook; typedef struct _GHookList GHookList; @@ -39,60 +41,63 @@ typedef gint (*GHookCompareFunc) (GHook *new_hook, typedef gboolean (*GHookFindFunc) (GHook *hook, gpointer data); typedef void (*GHookMarshaller) (GHook *hook, - gpointer data); + gpointer marshal_data); typedef gboolean (*GHookCheckMarshaller) (GHook *hook, - gpointer data); + gpointer marshal_data); typedef void (*GHookFunc) (gpointer data); typedef gboolean (*GHookCheckFunc) (gpointer data); -typedef void (*GHookFreeFunc) (GHookList *hook_list, +typedef void (*GHookFinalizeFunc) (GHookList *hook_list, GHook *hook); - -/* Callback maintenance functions - */ -#define G_HOOK_FLAG_USER_SHIFT (4) typedef enum { - G_HOOK_FLAG_ACTIVE = 1 << 0, - G_HOOK_FLAG_IN_CALL = 1 << 1, - G_HOOK_FLAG_MASK = 0x0f + G_HOOK_FLAG_ACTIVE = 1 << 0, + G_HOOK_FLAG_IN_CALL = 1 << 1, + G_HOOK_FLAG_MASK = 0x0f } GHookFlagMask; +#define G_HOOK_FLAG_USER_SHIFT (4) -#define G_HOOK_DEFERRED_DESTROY ((GHookFreeFunc) 0x01) +/* --- structures --- */ struct _GHookList { - guint seq_id; - guint hook_size; - guint is_setup : 1; - GHook *hooks; - GMemChunk *hook_memchunk; - GHookFreeFunc hook_free; /* virtual function */ - GHookFreeFunc hook_destroy; /* virtual function */ + gulong seq_id; + guint hook_size : 16; + guint is_setup : 1; + GHook *hooks; + GMemChunk *hook_memchunk; + GHookFinalizeFunc finalize_hook; }; - struct _GHook { gpointer data; GHook *next; GHook *prev; guint ref_count; - guint hook_id; + gulong hook_id; guint flags; gpointer func; GDestroyNotify destroy; }; -#define G_HOOK_ACTIVE(hook) ((((GHook*) hook)->flags & \ + +/* --- macros --- */ +#define G_HOOK(hook) ((GHook*) (hook)) +#define G_HOOK_FLAGS(hook) (G_HOOK (hook)->flags) +#define G_HOOK_ACTIVE(hook) ((G_HOOK_FLAGS (hook) & \ G_HOOK_FLAG_ACTIVE) != 0) -#define G_HOOK_IN_CALL(hook) ((((GHook*) hook)->flags & \ +#define G_HOOK_IN_CALL(hook) ((G_HOOK_FLAGS (hook) & \ G_HOOK_FLAG_IN_CALL) != 0) -#define G_HOOK_IS_VALID(hook) (((GHook*) hook)->hook_id != 0 && \ - G_HOOK_ACTIVE (hook)) -#define G_HOOK_IS_UNLINKED(hook) (((GHook*) hook)->next == NULL && \ - ((GHook*) hook)->prev == NULL && \ - ((GHook*) hook)->hook_id == 0 && \ - ((GHook*) hook)->ref_count == 0) +#define G_HOOK_IS_VALID(hook) (G_HOOK (hook)->hook_id != 0 && \ + (G_HOOK_FLAGS (hook) & \ + G_HOOK_FLAG_ACTIVE)) +#define G_HOOK_IS_UNLINKED(hook) (G_HOOK (hook)->next == NULL && \ + G_HOOK (hook)->prev == NULL && \ + G_HOOK (hook)->hook_id == 0 && \ + G_HOOK (hook)->ref_count == 0) + +/* --- prototypes --- */ +/* callback mainenance functions */ void g_hook_list_init (GHookList *hook_list, guint hook_size); void g_hook_list_clear (GHookList *hook_list); @@ -104,7 +109,7 @@ void g_hook_ref (GHookList *hook_list, void g_hook_unref (GHookList *hook_list, GHook *hook); gboolean g_hook_destroy (GHookList *hook_list, - guint hook_id); + gulong hook_id); void g_hook_destroy_link (GHookList *hook_list, GHook *hook); void g_hook_prepend (GHookList *hook_list, @@ -116,7 +121,7 @@ void g_hook_insert_sorted (GHookList *hook_list, GHook *hook, GHookCompareFunc func); GHook* g_hook_get (GHookList *hook_list, - guint hook_id); + gulong hook_id); GHook* g_hook_find (GHookList *hook_list, gboolean need_valids, GHookFindFunc func, @@ -140,15 +145,12 @@ GHook* g_hook_first_valid (GHookList *hook_list, GHook* g_hook_next_valid (GHookList *hook_list, GHook *hook, gboolean may_be_in_call); - /* GHookCompareFunc implementation to insert hooks sorted by their id */ gint g_hook_compare_ids (GHook *new_hook, GHook *sibling); - /* convenience macros */ #define g_hook_append( hook_list, hook ) \ g_hook_insert_before ((hook_list), NULL, (hook)) - /* invoke all valid hooks with the (*GHookFunc) signature. */ void g_hook_list_invoke (GHookList *hook_list, @@ -163,11 +165,11 @@ void g_hook_list_invoke_check (GHookList *hook_list, void g_hook_list_marshal (GHookList *hook_list, gboolean may_recurse, GHookMarshaller marshaller, - gpointer data); + gpointer marshal_data); void g_hook_list_marshal_check (GHookList *hook_list, gboolean may_recurse, GHookCheckMarshaller marshaller, - gpointer data); + gpointer marshal_data); G_END_DECLS diff --git a/graf2d/win32gdk/gdk/src/glib/giochannel.c b/graf2d/win32gdk/gdk/src/glib/giochannel.c new file mode 100644 index 00000000000..bebab838caf --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/giochannel.c @@ -0,0 +1,2256 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * giochannel.c: IO Channel abstraction + * Copyright 1998 Owen Taylor + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe + */ + +#include "config.h" +#include "giochannel.h" + +#include <string.h> +#include <errno.h> + +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif + +#undef G_DISABLE_DEPRECATED + +#include "glib.h" + +#include "glibintl.h" + +#define G_IO_NICE_BUF_SIZE 1024 + +/* This needs to be as wide as the largest character in any possible encoding */ +#define MAX_CHAR_SIZE 10 + +/* Some simplifying macros, which reduce the need to worry whether the + * buffers have been allocated. These also make USE_BUF () an lvalue, + * which is used in g_io_channel_read_to_end (). + */ +#define USE_BUF(channel) ((channel)->encoding ? (channel)->encoded_read_buf \ + : (channel)->read_buf) +#define BUF_LEN(string) ((string) ? (string)->len : 0) + +static GIOError g_io_error_get_from_g_error (GIOStatus status, + GError *err); +static void g_io_channel_purge (GIOChannel *channel); +static GIOStatus g_io_channel_fill_buffer (GIOChannel *channel, + GError **err); +static GIOStatus g_io_channel_read_line_backend (GIOChannel *channel, + gsize *length, + gsize *terminator_pos, + GError **error); + +void +g_io_channel_init (GIOChannel *channel) +{ + channel->ref_count = 1; + channel->encoding = g_strdup ("UTF-8"); + channel->line_term = NULL; + channel->line_term_len = 0; + channel->buf_size = G_IO_NICE_BUF_SIZE; + channel->read_cd = (GIConv) -1; + channel->write_cd = (GIConv) -1; + channel->read_buf = NULL; /* Lazy allocate buffers */ + channel->encoded_read_buf = NULL; + channel->write_buf = NULL; + channel->partial_write_buf[0] = '\0'; + channel->use_buffer = TRUE; + channel->do_encode = FALSE; + channel->close_on_unref = FALSE; +} + +void +g_io_channel_ref (GIOChannel *channel) +{ + g_return_if_fail (channel != NULL); + + channel->ref_count++; +} + +void +g_io_channel_unref (GIOChannel *channel) +{ + g_return_if_fail (channel != NULL); + + channel->ref_count--; + if (channel->ref_count == 0) + { + if (channel->close_on_unref) + g_io_channel_shutdown (channel, TRUE, NULL); + else + g_io_channel_purge (channel); + g_free (channel->encoding); + if (channel->read_cd != (GIConv) -1) + g_iconv_close (channel->read_cd); + if (channel->write_cd != (GIConv) -1) + g_iconv_close (channel->write_cd); + if (channel->line_term) + g_free (channel->line_term); + if (channel->read_buf) + g_string_free (channel->read_buf, TRUE); + if (channel->write_buf) + g_string_free (channel->write_buf, TRUE); + if (channel->encoded_read_buf) + g_string_free (channel->encoded_read_buf, TRUE); + channel->funcs->io_free (channel); + } +} + +static GIOError +g_io_error_get_from_g_error (GIOStatus status, + GError *err) +{ + switch (status) + { + case G_IO_STATUS_NORMAL: + case G_IO_STATUS_EOF: + return G_IO_ERROR_NONE; + case G_IO_STATUS_AGAIN: + return G_IO_ERROR_AGAIN; + case G_IO_STATUS_ERROR: + if (err->domain != G_IO_CHANNEL_ERROR) + return G_IO_ERROR_UNKNOWN; + switch (err->code) + { + case G_IO_CHANNEL_ERROR_INVAL: + return G_IO_ERROR_INVAL; + default: + return G_IO_ERROR_UNKNOWN; + } + default: + g_assert_not_reached (); + return G_IO_ERROR_UNKNOWN; /* Keep the compiler happy */ + } +} + +/** + * g_io_channel_read: + * @channel: a #GIOChannel. + * @buf: a buffer to read the data into (which should be at least count bytes long). + * @count: the number of bytes to read from the #GIOChannel. + * @bytes_read: returns the number of bytes actually read. + * + * Reads data from a #GIOChannel. This function is depricated. New code should + * use g_io_channel_read_chars() instead. + * + * Return value: %G_IO_ERROR_NONE if the operation was successful. + **/ +GIOError +g_io_channel_read (GIOChannel *channel, + gchar *buf, + gsize count, + gsize *bytes_read) +{ + GError *err = NULL; + GIOError error; + GIOStatus status; + + g_return_val_if_fail (channel != NULL, G_IO_ERROR_UNKNOWN); + g_return_val_if_fail (bytes_read != NULL, G_IO_ERROR_UNKNOWN); + + status = channel->funcs->io_read (channel, buf, count, bytes_read, &err); + + error = g_io_error_get_from_g_error (status, err); + + if (err) + g_error_free (err); + + return error; +} + +/** + * g_io_channel_write: + * @channel: a #GIOChannel. + * @buf: the buffer containing the data to write. + * @count: the number of bytes to write. + * @bytes_written: the number of bytes actually written. + * + * Writes data to a #GIOChannel. This function is depricated. New code should + * use g_io_channel_write_chars() instead. + * + * Return value: %G_IO_ERROR_NONE if the operation was successful. + **/ +GIOError +g_io_channel_write (GIOChannel *channel, + const gchar *buf, + gsize count, + gsize *bytes_written) +{ + GError *err = NULL; + GIOError error; + GIOStatus status; + + g_return_val_if_fail (channel != NULL, G_IO_ERROR_UNKNOWN); + g_return_val_if_fail (bytes_written != NULL, G_IO_ERROR_UNKNOWN); + + status = channel->funcs->io_write (channel, buf, count, bytes_written, &err); + + error = g_io_error_get_from_g_error (status, err); + + if (err) + g_error_free (err); + + return error; +} + +/** + * g_io_channel_seek: + * @channel: a #GIOChannel. + * @offset: an offset, in bytes, which is added to the position specified by @type + * @type: the position in the file, which can be %G_SEEK_CUR (the current + * position), %G_SEEK_SET (the start of the file), or %G_SEEK_END (the end of the + * file). + * + * Sets the current position in the #GIOChannel, similar to the standard library + * function fseek(). This function is depricated. New code should + * use g_io_channel_seek_position() instead. + * + * Return value: %G_IO_ERROR_NONE if the operation was successful. + **/ +GIOError +g_io_channel_seek (GIOChannel *channel, + glong offset, + GSeekType type) +{ + GError *err = NULL; + GIOError error; + GIOStatus status; + + g_return_val_if_fail (channel != NULL, G_IO_ERROR_UNKNOWN); + g_return_val_if_fail (channel->is_seekable, G_IO_ERROR_UNKNOWN); + + switch (type) + { + case G_SEEK_CUR: + case G_SEEK_SET: + case G_SEEK_END: + break; + default: + g_warning ("g_io_channel_seek: unknown seek type"); + return G_IO_ERROR_UNKNOWN; + } + + status = channel->funcs->io_seek (channel, offset, type, &err); + + error = g_io_error_get_from_g_error (status, err); + + if (err) + g_error_free (err); + + return error; +} + +/* The function g_io_channel_new_file() is prototyped in both + * giounix.c and giowin32.c, so we stick its documentation here. + */ + +/** + * g_io_channel_new_file: + * @filename: A string containing the name of a file. + * @mode: One of "r", "w", "a", "r+", "w+", "a+". These have + * the same meaning as in fopen(). + * @error: A location to return an error of type %G_IO_FILE_ERROR. + * + * Open a file @filename as a #GIOChannel using mode @mode. This + * channel will be closed when the last reference to it is dropped, + * so there is no need to call g_io_channel_close() (though doing + * so will not cause problems, as long as no attempt is made to + * access the channel after it is closed). + * + * Return value: A #GIOChannel on success, %NULL on failure. + **/ + +/** + * g_io_channel_close: + * @channel: A #GIOChannel + * + * Close an IO channel. Any pending data to be written will be + * flushed, ignoring errors. The channel will not be freed until the + * last reference is dropped using g_io_channel_unref(). This + * function is deprecated: you should use g_io_channel_shutdown() + * instead. + **/ +void +g_io_channel_close (GIOChannel *channel) +{ + GError *err = NULL; + + g_return_if_fail (channel != NULL); + + g_io_channel_purge (channel); + + channel->funcs->io_close (channel, &err); + + if (err) + { /* No way to return the error */ + g_warning ("Error closing channel: %s", err->message); + g_error_free (err); + } + + channel->close_on_unref = FALSE; /* Because we already did */ + channel->is_readable = FALSE; + channel->is_writeable = FALSE; + channel->is_seekable = FALSE; +} + +/** + * g_io_channel_shutdown: + * @channel: a #GIOChannel + * @flush: if %TRUE, flush pending + * @err: location to store a #GIOChannelError + * + * Close an IO channel. Any pending data to be written will be + * flushed if @flush is %TRUE. The channel will not be freed until the + * last reference is dropped using g_io_channel_unref(). + * + * Return value: + **/ +GIOStatus +g_io_channel_shutdown (GIOChannel *channel, + gboolean flush, + GError **err) +{ + GIOStatus status, result; + GError *tmperr = NULL; + + g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); + g_return_val_if_fail (err == NULL || *err == NULL, G_IO_STATUS_ERROR); + + if (flush && channel->write_buf && channel->write_buf->len > 0) + { + GIOFlags flags; + + /* Set the channel to blocking, to avoid a busy loop + */ + flags = g_io_channel_get_flags (channel); + /* Ignore any errors here, they're irrelevant */ + g_io_channel_set_flags (channel, flags & ~G_IO_FLAG_NONBLOCK, NULL); + + result = g_io_channel_flush (channel, &tmperr); + + if (channel->partial_write_buf[0] != '\0') + { + g_warning ("Partial character at end of write buffer not flushed.\n"); + channel->partial_write_buf[0] = '\0'; + } + } + else + result = G_IO_STATUS_NORMAL; + + status = channel->funcs->io_close (channel, err); + + channel->close_on_unref = FALSE; /* Because we already did */ + channel->is_readable = FALSE; + channel->is_writeable = FALSE; + channel->is_seekable = FALSE; + + if (status != G_IO_STATUS_NORMAL) + { + g_clear_error (&tmperr); + return status; + } + else if (result != G_IO_STATUS_NORMAL) + { + g_propagate_error (err, tmperr); + return result; + } + else + return G_IO_STATUS_NORMAL; +} + +/* This function is used for the final flush on close or unref */ +static void +g_io_channel_purge (GIOChannel *channel) +{ + GError *err = NULL; + GIOStatus status; + + g_return_if_fail (channel != NULL); + + if (channel->write_buf && channel->write_buf->len > 0) + { + GIOFlags flags; + + /* Set the channel to blocking, to avoid a busy loop + */ + flags = g_io_channel_get_flags (channel); + g_io_channel_set_flags (channel, flags & ~G_IO_FLAG_NONBLOCK, NULL); + + status = g_io_channel_flush (channel, &err); + + if (err) + { /* No way to return the error */ + g_warning ("Error flushing string: %s", err->message); + g_error_free (err); + } + } + + /* Flush these in case anyone tries to close without unrefing */ + + if (channel->read_buf) + g_string_truncate (channel->read_buf, 0); + if (channel->write_buf) + g_string_truncate (channel->write_buf, 0); + if (channel->encoding) + { + if (channel->encoded_read_buf) + g_string_truncate (channel->encoded_read_buf, 0); + + if (channel->partial_write_buf[0] != '\0') + { + g_warning ("Partial character at end of write buffer not flushed.\n"); + channel->partial_write_buf[0] = '\0'; + } + } +} + +GSource * +g_io_create_watch (GIOChannel *channel, + GIOCondition condition) +{ + g_return_val_if_fail (channel != NULL, NULL); + + return channel->funcs->io_create_watch (channel, condition); +} + +guint +g_io_add_watch_full (GIOChannel *channel, + gint priority, + GIOCondition condition, + GIOFunc func, + gpointer user_data, + GDestroyNotify notify) +{ + GSource *source; + guint id; + + g_return_val_if_fail (channel != NULL, 0); + + source = g_io_create_watch (channel, condition); + + if (priority != G_PRIORITY_DEFAULT) + g_source_set_priority (source, priority); + g_source_set_callback (source, (GSourceFunc)func, user_data, notify); + + id = g_source_attach (source, NULL); + g_source_unref (source); + + return id; +} + +guint +g_io_add_watch (GIOChannel *channel, + GIOCondition condition, + GIOFunc func, + gpointer user_data) +{ + return g_io_add_watch_full (channel, G_PRIORITY_DEFAULT, condition, func, user_data, NULL); +} + +/** + * g_io_channel_get_buffer_condition: + * @channel: A #GIOChannel + * + * This function returns a #GIOCondition depending on whether there + * is data to be read/space to write data in the + * internal buffers in the #GIOChannel. Only the flags %G_IO_IN and + * %G_IO_OUT may be set. + * + * Return value: A #GIOCondition + **/ +GIOCondition +g_io_channel_get_buffer_condition (GIOChannel *channel) +{ + GIOCondition condition = 0; + + if (channel->encoding) + { + if (channel->encoded_read_buf && (channel->encoded_read_buf->len > 0)) + condition |= G_IO_IN; /* Only return if we have full characters */ + } + else + { + if (channel->read_buf && (channel->read_buf->len > 0)) + condition |= G_IO_IN; + } + + if (channel->write_buf && (channel->write_buf->len < channel->buf_size)) + condition |= G_IO_OUT; + + return condition; +} + +/** + * g_io_channel_error_from_errno: + * @en: An errno error number, e.g. EINVAL + * + * Return value: A #GIOChannelError error number, e.g. %G_IO_CHANNEL_ERROR_INVAL + **/ +GIOChannelError +g_io_channel_error_from_errno (gint en) +{ +#ifdef EAGAIN + g_return_val_if_fail (en != EAGAIN, G_IO_CHANNEL_ERROR_FAILED); +#endif +#ifdef EINTR + g_return_val_if_fail (en != EINTR, G_IO_CHANNEL_ERROR_FAILED); +#endif + + switch (en) + { +#ifdef EBADF + case EBADF: + g_warning("Invalid file descriptor.\n"); + return G_IO_CHANNEL_ERROR_FAILED; +#endif + +#ifdef EFAULT + case EFAULT: + g_warning("File descriptor outside valid address space.\n"); + return G_IO_CHANNEL_ERROR_FAILED; +#endif + +#ifdef EFBIG + case EFBIG: + return G_IO_CHANNEL_ERROR_FBIG; +#endif + +#ifdef EINVAL + case EINVAL: + return G_IO_CHANNEL_ERROR_INVAL; +#endif + +#ifdef EIO + case EIO: + return G_IO_CHANNEL_ERROR_IO; +#endif + +#ifdef EISDIR + case EISDIR: + return G_IO_CHANNEL_ERROR_ISDIR; +#endif + +#ifdef ENOSPC + case ENOSPC: + return G_IO_CHANNEL_ERROR_NOSPC; +#endif + +#ifdef ENXIO + case ENXIO: + return G_IO_CHANNEL_ERROR_NXIO; +#endif + +#ifdef EOVERFLOW + case EOVERFLOW: + return G_IO_CHANNEL_ERROR_OVERFLOW; +#endif + +#ifdef EPIPE + case EPIPE: + return G_IO_CHANNEL_ERROR_PIPE; +#endif + + default: + return G_IO_CHANNEL_ERROR_FAILED; + } +} + +/** + * g_io_channel_set_buffer_size: + * @channel: a #GIOChannel + * @size: the size of the buffer. 0 == pick a good size + * + * Set the buffer size. + **/ +void +g_io_channel_set_buffer_size (GIOChannel *channel, + gsize size) +{ + g_return_if_fail (channel != NULL); + + if (size == 0) + size = G_IO_NICE_BUF_SIZE; + + if (size < MAX_CHAR_SIZE) + size = MAX_CHAR_SIZE; + + channel->buf_size = size; +} + +/** + * g_io_channel_get_buffer_size: + * @channel: a #GIOChannel + * + * Get the buffer size. + * + * Return value: the size of the buffer. + **/ +gsize +g_io_channel_get_buffer_size (GIOChannel *channel) +{ + g_return_val_if_fail (channel != NULL, 0); + + return channel->buf_size; +} + +/** + * g_io_channel_set_line_term: + * @channel: a #GIOChannel + * @line_term: The line termination string. Use %NULL for auto detect. + * Auto detection breaks on "\n", "\r\n", "\r", "\0", and + * the unicode paragraph separator. Auto detection should + * not be used for anything other than file-based channels. + * @length: The length of the termination string. If -1 is passed, the + * string is assumed to be null terminated. This option allows + * termination strings with embeded nulls. + * + * This sets the string that #GIOChannel uses to determine + * where in the file a line break occurs. + **/ +void +g_io_channel_set_line_term (GIOChannel *channel, + const gchar *line_term, + gint length) +{ + g_return_if_fail (channel != NULL); + g_return_if_fail (line_term == NULL || length != 0); /* Disallow "" */ + + if (line_term == NULL) + length = 0; + else if (length < 0) + length = strlen (line_term); + + if (channel->line_term) + g_free (channel->line_term); + channel->line_term = line_term ? g_memdup (line_term, length) : NULL; + channel->line_term_len = length; +} + +/** + * g_io_channel_get_line_term: + * @channel: a #GIOChannel + * @length: a location to return the length of the line terminator + * + * This returns the string that #GIOChannel uses to determine + * where in the file a line break occurs. A value of %NULL + * indicates auto detection. + * + * Return value: The line termination string. This value + * is owned by GLib and must not be freed. + **/ +G_CONST_RETURN gchar* +g_io_channel_get_line_term (GIOChannel *channel, + gint *length) +{ + g_return_val_if_fail (channel != NULL, 0); + + if (length) + *length = channel->line_term_len; + + return channel->line_term; +} + +/** + * g_io_channel_set_flags: + * @channel: a #GIOChannel + * @flags: the flags to set on the channel + * @error: A location to return an error of type #GIOChannelError + * + * Return value: + **/ +GIOStatus +g_io_channel_set_flags (GIOChannel *channel, + GIOFlags flags, + GError **error) +{ + g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); + g_return_val_if_fail ((error == NULL) || (*error == NULL), + G_IO_STATUS_ERROR); + + return (* channel->funcs->io_set_flags)(channel, + flags & G_IO_FLAG_SET_MASK, + error); +} + +/** + * g_io_channel_get_flags: + * @channel: a #GIOChannel + * + * Gets the current flags for a #GIOChannel, including read-only + * flags such as %G_IO_FLAG_IS_READABLE. + * + * The values of the flags %G_IO_FLAG_IS_READABLE and %G_IO_FLAG_IS_WRITEABLE + * are cached for internal use by the channel when it is created. + * If they should change at some later point (e.g. partial shutdown + * of a socket with the unix shutdown () function), the user + * should immediately call g_io_channel_get_flags () to update + * the internal values of these flags. + * + * Return value: the flags which are set on the channel + **/ +GIOFlags +g_io_channel_get_flags (GIOChannel *channel) +{ + GIOFlags flags; + + g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); + + flags = (* channel->funcs->io_get_flags) (channel); + + /* Cross implementation code */ + + if (channel->is_seekable) + flags |= G_IO_FLAG_IS_SEEKABLE; + if (channel->is_readable) + flags |= G_IO_FLAG_IS_READABLE; + if (channel->is_writeable) + flags |= G_IO_FLAG_IS_WRITEABLE; + + return flags; +} + +/** + * g_io_channel_set_close_on_unref: + * @channel: a #GIOChannel + * @do_close: Whether to close the channel on the final unref of + * the GIOChannel data structure. The default value of + * this is %TRUE for channels created by g_io_channel_new_file (), + * and %FALSE for all other channels. + * + * Setting this flag to %TRUE for a channel you have already closed + * can cause problems. + **/ +void +g_io_channel_set_close_on_unref (GIOChannel *channel, + gboolean do_close) +{ + g_return_if_fail (channel != NULL); + + channel->close_on_unref = do_close; +} + +/** + * g_io_channel_get_close_on_unref: + * @channel: a #GIOChannel + * + * Return value: Whether the channel will be closedi on the final unref of + * the GIOChannel data structure. The default value of + * this is %TRUE for channels created by g_io_channel_new_file (), + * and %FALSE for all other channels. + **/ +gboolean +g_io_channel_get_close_on_unref (GIOChannel *channel) +{ + g_return_val_if_fail (channel != NULL, FALSE); + + return channel->close_on_unref; +} + +/** + * g_io_channel_seek_position: + * @channel: a #GIOChannel + * @offset: The offset in bytes from the position specified by @type + * @type: a #GSeekType. The type %G_SEEK_CUR is only allowed in those + * cases where a call to g_io_channel_set_encoding () + * is allowed. See the documentation for + * g_io_channel_set_encoding () for details. + * @error: A location to return an error of type #GIOChannelError + * + * Replacement for g_io_channel_seek() with the new API. + * + * Return value: + **/ +GIOStatus +g_io_channel_seek_position (GIOChannel* channel, + glong offset, + GSeekType type, + GError **error) +{ + GIOStatus status; + + /* For files, only one of the read and write buffers can contain data. + * For sockets, both can contain data. + */ + + g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); + g_return_val_if_fail ((error == NULL) || (*error == NULL), + G_IO_STATUS_ERROR); + g_return_val_if_fail (channel->is_seekable, G_IO_STATUS_ERROR); + + switch (type) + { + case G_SEEK_CUR: /* The user is seeking relative to the head of the buffer */ + if (channel->use_buffer) + { + if (channel->do_encode && channel->encoded_read_buf + && channel->encoded_read_buf->len > 0) + { + g_warning ("Seek type G_SEEK_CUR not allowed for this" + " channel's encoding.\n"); + return G_IO_STATUS_ERROR; + } + if (channel->read_buf) + offset -= channel->read_buf->len; + if (channel->encoded_read_buf) + { + g_assert (channel->encoded_read_buf->len == 0 || !channel->do_encode); + + /* If there's anything here, it's because the encoding is UTF-8, + * so we can just subtract the buffer length, the same as for + * the unencoded data. + */ + + offset -= channel->encoded_read_buf->len; + } + } + break; + case G_SEEK_SET: + case G_SEEK_END: + break; + default: + g_warning ("g_io_channel_seek_position: unknown seek type"); + return G_IO_STATUS_ERROR; + } + + if (channel->use_buffer) + { + status = g_io_channel_flush (channel, error); + if (status != G_IO_STATUS_NORMAL) + return status; + } + + status = channel->funcs->io_seek (channel, offset, type, error); + + if ((status == G_IO_STATUS_NORMAL) && (channel->use_buffer)) + { + if (channel->read_buf) + g_string_truncate (channel->read_buf, 0); + + /* Conversion state no longer matches position in file */ + if (channel->read_cd != (GIConv) -1) + g_iconv (channel->read_cd, NULL, NULL, NULL, NULL); + if (channel->write_cd != (GIConv) -1) + g_iconv (channel->write_cd, NULL, NULL, NULL, NULL); + + if (channel->encoded_read_buf) + { + g_assert (channel->encoded_read_buf->len == 0 || !channel->do_encode); + g_string_truncate (channel->encoded_read_buf, 0); + } + + if (channel->partial_write_buf[0] != '\0') + { + g_warning ("Partial character at end of write buffer not flushed.\n"); + channel->partial_write_buf[0] = '\0'; + } + } + + return status; +} + +/** + * g_io_channel_flush: + * @channel: a #GIOChannel + * @error: location to store an error of type #GIOChannelError + * + * Flush the write buffer for the GIOChannel. + * + * Return value: the status of the operation: One of + * G_IO_CHANNEL_NORMAL, G_IO_CHANNEL_AGAIN, or + * G_IO_CHANNEL_ERROR. + **/ +GIOStatus +g_io_channel_flush (GIOChannel *channel, + GError **error) +{ + GIOStatus status; + gsize this_time = 1, bytes_written = 0; + + g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); + g_return_val_if_fail ((error == NULL) || (*error == NULL), G_IO_STATUS_ERROR); + + if (channel->write_buf == NULL || channel->write_buf->len == 0) + return G_IO_STATUS_NORMAL; + + do + { + g_assert (this_time > 0); + + status = channel->funcs->io_write (channel, + channel->write_buf->str + bytes_written, + channel->write_buf->len - bytes_written, + &this_time, error); + bytes_written += this_time; + } + while ((bytes_written < channel->write_buf->len) + && (status == G_IO_STATUS_NORMAL)); + + g_string_erase (channel->write_buf, 0, bytes_written); + + return status; +} + +/** + * g_io_channel_set_buffered: + * @channel: a #GIOChannel + * @buffered: whether to set the channel buffered or unbuffered + * + * The buffering state can only be set if the channel's encoding + * is %NULL. For any other encoding, the channel must be buffered. + * + * A buffered channel can only be set unbuffered if the channel's + * internal buffers have been flushed. Newly created channels or + * channels which have returned G_IO_STATUS_EOF + * not require such a flush. For write-only channels, a call to + * g_io_channel_flush () is sufficient. For all other channels, + * the buffers may be flushed by a call to g_io_channel_seek_position (). + * This includes the possibility of seeking with seek type %G_SEEK_CUR + * and an offset of zero. Note that this means that socket-based + * channels cannot be set unbuffered once they have had data + * read from them. + * + * On unbuffered channels, it is safe to mix read and write + * calls from the new and old APIs, if this is necessary for + * maintaining old code. + * + * The default state of the channel is buffered. + **/ +void +g_io_channel_set_buffered (GIOChannel *channel, + gboolean buffered) +{ + g_return_if_fail (channel != NULL); + + if (channel->encoding != NULL) + { + g_warning ("Need to have NULL encoding to set the buffering state of the " + "channel.\n"); + return; + } + + g_return_if_fail (!channel->read_buf || channel->read_buf->len == 0); + g_return_if_fail (!channel->write_buf || channel->write_buf->len == 0); + + channel->use_buffer = buffered; +} + +/** + * g_io_channel_get_buffered: + * @channel: a #GIOChannel + * + * Return Value: the buffering state of the channel + **/ +gboolean +g_io_channel_get_buffered (GIOChannel *channel) +{ + g_return_val_if_fail (channel != NULL, FALSE); + + return channel->use_buffer; +} + +/** + * g_io_channel_set_encoding: + * @channel: a #GIOChannel + * @encoding: the encoding type + * @error: location to store an error of type #GConvertError. + * + * Set the encoding for the input/output of the channel. The internal + * encoding is always UTF-8. The default encoding for the + * external file is UTF-8. + * + * The encoding %NULL is safe to use with binary data. + * + * The encoding can only be set under the following conditions: + * + * 1. The channel was just created, and has not been written to + * or read from yet. + * + * 2. The channel is write-only. + * + * 3. The channel is a file, and the file pointer was just + * repositioned by a call to g_io_channel_seek_position(). + * (This flushes all the internal buffers.) + * + * 4. The current encoding is %NULL or UTF-8. + * + * 5. One of the (new API) read functions has just returned G_IO_STATUS_EOF + * (or, in the case of g_io_channel_read_to_end (), G_IO_STATUS_NORMAL). + * + * 6. One of the functions g_io_channel_read_chars () or g_io_channel_read_unichar () + * has returned G_IO_STATUS_AGAIN or G_IO_STATUS_ERROR. This may be + * useful in the case of G_CONVERT_ERROR_ILLEGAL_SEQUENCE. + * Returning one of these statuses from g_io_channel_read_line (), + * g_io_channel_read_line_string (), or g_io_channel_read_to_end () + * does _not_ guarantee that the encoding can be changed. + * + * Channels which do not meet the above conditions cannot call + * g_io_channel_seek_position () with an offset of %G_SEEK_CUR, + * and if they are "seekable" cannot + * call g_io_channel_write_chars () after calling one + * of the API "read" functions. + * + * Return Value: %G_IO_STATUS_NORMAL if the encoding was succesfully set. + **/ +GIOStatus +g_io_channel_set_encoding (GIOChannel *channel, + const gchar *encoding, + GError **error) +{ + GIConv read_cd, write_cd; + gboolean did_encode; + + g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); + g_return_val_if_fail ((error == NULL) || (*error == NULL), G_IO_STATUS_ERROR); + + /* Make sure the encoded buffers are empty */ + + g_return_val_if_fail (!channel->do_encode || !channel->encoded_read_buf || + channel->encoded_read_buf->len == 0, G_IO_STATUS_ERROR); + + if (!channel->use_buffer) + { + g_warning ("Need to set the channel buffered before setting the encoding.\n"); + g_warning ("Assuming this is what you meant and acting accordingly.\n"); + + channel->use_buffer = TRUE; + } + + if (channel->partial_write_buf[0] != '\0') + { + g_warning ("Partial character at end of write buffer not flushed.\n"); + channel->partial_write_buf[0] = '\0'; + } + + did_encode = channel->do_encode; + + if (!encoding || strcmp (encoding, "UTF8") == 0 || strcmp (encoding, "UTF-8") == 0) + { + channel->do_encode = FALSE; + read_cd = write_cd = (GIConv) -1; + } + else + { + gint err = 0; + const gchar *from_enc = NULL, *to_enc = NULL; + + if (channel->is_readable) + { + read_cd = g_iconv_open ("UTF-8", encoding); + + if (read_cd == (GIConv) -1) + { + err = errno; + from_enc = "UTF-8"; + to_enc = encoding; + } + } + else + read_cd = (GIConv) -1; + + if (channel->is_writeable && err == 0) + { + write_cd = g_iconv_open (encoding, "UTF-8"); + + if (write_cd == (GIConv) -1) + { + err = errno; + from_enc = encoding; + to_enc = "UTF-8"; + } + } + else + write_cd = (GIConv) -1; + + if (err != 0) + { + g_assert (from_enc); + g_assert (to_enc); + + if (err == EINVAL) + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_NO_CONVERSION, + _("Conversion from character set `%s' to `%s' is not supported"), + from_enc, to_enc); + else + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_FAILED, + _("Could not open converter from `%s' to `%s': %s"), + from_enc, to_enc, strerror (err)); + + if (read_cd != (GIConv) -1) + g_iconv_close (read_cd); + if (write_cd != (GIConv) -1) + g_iconv_close (write_cd); + + return G_IO_STATUS_ERROR; + } + + channel->do_encode = TRUE; + } + + /* The encoding is ok, so set the fields in channel */ + + if (channel->read_cd != (GIConv) -1) + g_iconv_close (channel->read_cd); + if (channel->write_cd != (GIConv) -1) + g_iconv_close (channel->write_cd); + + if (channel->encoded_read_buf && channel->encoded_read_buf->len > 0) + { + g_assert (!did_encode); /* Encoding UTF-8, NULL doesn't use encoded_read_buf */ + + /* This is just validated UTF-8, so we can copy it back into read_buf + * so it can be encoded in whatever the new encoding is. + */ + + g_string_prepend_len (channel->read_buf, channel->encoded_read_buf->str, + channel->encoded_read_buf->len); + g_string_truncate (channel->encoded_read_buf, 0); + } + + channel->read_cd = read_cd; + channel->write_cd = write_cd; + + g_free (channel->encoding); + channel->encoding = g_strdup (encoding); + + return G_IO_STATUS_NORMAL; +} + +/** + * g_io_channel_get_encoding: + * @channel: a #GIOChannel + * + * Get the encoding for the input/output of the channel. The internal + * encoding is always UTF-8. The encoding %NULL makes the + * channel safe for binary data. + * + * Return value: A string containing the encoding, this string is + * owned by GLib and must not be freed. + **/ +G_CONST_RETURN gchar* +g_io_channel_get_encoding (GIOChannel *channel) +{ + g_return_val_if_fail (channel != NULL, NULL); + + return channel->encoding; +} + +static GIOStatus +g_io_channel_fill_buffer (GIOChannel *channel, + GError **err) +{ + gsize read_size, cur_len, oldlen; + GIOStatus status; + + if (channel->is_seekable && channel->write_buf && channel->write_buf->len > 0) + { + status = g_io_channel_flush (channel, err); + if (status != G_IO_STATUS_NORMAL) + return status; + } + if (channel->is_seekable && channel->partial_write_buf[0] != '\0') + { + g_warning ("Partial character at end of write buffer not flushed.\n"); + channel->partial_write_buf[0] = '\0'; + } + + if (!channel->read_buf) + channel->read_buf = g_string_sized_new (channel->buf_size); + + cur_len = channel->read_buf->len; + + g_string_set_size (channel->read_buf, channel->read_buf->len + channel->buf_size); + + status = channel->funcs->io_read (channel, channel->read_buf->str + cur_len, + channel->buf_size, &read_size, err); + + g_assert ((status == G_IO_STATUS_NORMAL) || (read_size == 0)); + + g_string_truncate (channel->read_buf, read_size + cur_len); + + if ((status != G_IO_STATUS_NORMAL) + && ((status != G_IO_STATUS_EOF) || (channel->read_buf->len == 0))) + return status; + + g_assert (channel->read_buf->len > 0); + + if (channel->encoded_read_buf) + oldlen = channel->encoded_read_buf->len; + else + { + oldlen = 0; + if (channel->encoding) + channel->encoded_read_buf = g_string_sized_new (channel->buf_size); + } + + if (channel->do_encode) + { + size_t errnum, inbytes_left, outbytes_left; + gchar *inbuf, *outbuf; + int errval; + + g_assert (channel->encoded_read_buf); + +reencode: + + inbytes_left = channel->read_buf->len; + outbytes_left = MAX (channel->read_buf->len, + channel->encoded_read_buf->allocated_len + - channel->encoded_read_buf->len - 1); /* 1 for NULL */ + outbytes_left = MAX (outbytes_left, 6); + + inbuf = channel->read_buf->str; + g_string_set_size (channel->encoded_read_buf, + channel->encoded_read_buf->len + outbytes_left); + outbuf = channel->encoded_read_buf->str + channel->encoded_read_buf->len + - outbytes_left; + + errnum = g_iconv (channel->read_cd, &inbuf, &inbytes_left, + &outbuf, &outbytes_left); + errval = errno; + + g_assert (inbuf + inbytes_left == channel->read_buf->str + + channel->read_buf->len); + g_assert (outbuf + outbytes_left == channel->encoded_read_buf->str + + channel->encoded_read_buf->len); + + g_string_erase (channel->read_buf, 0, + channel->read_buf->len - inbytes_left); + g_string_truncate (channel->encoded_read_buf, + channel->encoded_read_buf->len - outbytes_left); + + if (errnum == (size_t) -1) + { + switch (errval) + { + case EINVAL: + if ((oldlen == channel->encoded_read_buf->len) + && (status == G_IO_STATUS_EOF)) + status = G_IO_STATUS_EOF; + else + status = G_IO_STATUS_NORMAL; + break; + case E2BIG: + /* Buffer size at least 6, wrote at least on character */ + g_assert (inbuf != channel->read_buf->str); + goto reencode; + case EILSEQ: + if (oldlen < channel->encoded_read_buf->len) + status = G_IO_STATUS_NORMAL; + else + { + g_set_error (err, G_CONVERT_ERROR, + G_CONVERT_ERROR_ILLEGAL_SEQUENCE, + _("Invalid byte sequence in conversion input")); + return G_IO_STATUS_ERROR; + } + break; + default: + g_assert (errval != EBADF); /* The converter should be open */ + g_set_error (err, G_CONVERT_ERROR, G_CONVERT_ERROR_FAILED, + _("Error during conversion: %s"), strerror (errval)); + return G_IO_STATUS_ERROR; + } + } + g_assert ((status != G_IO_STATUS_NORMAL) + || (channel->encoded_read_buf->len > 0)); + } + else if (channel->encoding) /* UTF-8 */ + { + gchar *nextchar, *lastchar; + + g_assert (channel->encoded_read_buf); + + nextchar = channel->read_buf->str; + lastchar = channel->read_buf->str + channel->read_buf->len; + + while (nextchar < lastchar) + { + gunichar val_char; + + val_char = g_utf8_get_char_validated (nextchar, lastchar - nextchar); + + switch (val_char) + { + case -2: + /* stop, leave partial character in buffer */ + lastchar = nextchar; + break; + case -1: + if (oldlen < channel->encoded_read_buf->len) + status = G_IO_STATUS_NORMAL; + else + { + g_set_error (err, G_CONVERT_ERROR, + G_CONVERT_ERROR_ILLEGAL_SEQUENCE, + _("Invalid byte sequence in conversion input")); + status = G_IO_STATUS_ERROR; + } + lastchar = nextchar; + break; + default: + nextchar = g_utf8_next_char (nextchar); + break; + } + } + + if (lastchar > channel->read_buf->str) + { + gint copy_len = lastchar - channel->read_buf->str; + + g_string_append_len (channel->encoded_read_buf, channel->read_buf->str, + copy_len); + g_string_erase (channel->read_buf, 0, copy_len); + } + } + + return status; +} + +/** + * g_io_channel_read_line: + * @channel: a #GIOChannel + * @str_return: The line read from the #GIOChannel, not including the + * line terminator. This data should be freed with g_free() + * when no longer needed. This + * is a null terminated string. If a @length of zero is + * returned, this will be %NULL instead. + * @length: location to store length of the read data, or %NULL + * @terminator_pos: location to store position of line terminator, or %NULL + * @error: A location to return an error of type #GConvertError + * or #GIOChannelError + * + * Read a line, including the terminating character(s), + * from a #GIOChannel into a newly allocated string. + * @length will contain allocated memory if the return + * is %G_IO_STATUS_NORMAL. + * + * Return value: a newly allocated string. Free this string + * with g_free() when you are done with it. + **/ +GIOStatus +g_io_channel_read_line (GIOChannel *channel, + gchar **str_return, + gsize *length, + gsize *terminator_pos, + GError **error) +{ + GIOStatus status; + gsize got_length; + + g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); + g_return_val_if_fail (str_return != NULL, G_IO_STATUS_ERROR); + g_return_val_if_fail ((error == NULL) || (*error == NULL), + G_IO_STATUS_ERROR); + g_return_val_if_fail (channel->is_readable, G_IO_STATUS_ERROR); + + status = g_io_channel_read_line_backend (channel, &got_length, terminator_pos, error); + + if (length) + *length = got_length; + + if (status == G_IO_STATUS_NORMAL) + { + g_assert (USE_BUF (channel)); + *str_return = g_strndup (USE_BUF (channel)->str, got_length); + g_string_erase (USE_BUF (channel), 0, got_length); + } + else + *str_return = NULL; + + return status; +} + +/** + * g_io_channel_read_line_string: + * @channel: a #GIOChannel + * @buffer: a #GString into which the line will be written. + * If @buffer already contains data, the old data will + * be overwritten. + * @terminator_pos: location to store position of line terminator, or %NULL + * @error: a location to store an error of type #GConvertError + * or #GIOChannelError + * + * Read a line from a #GIOChannel, using a #GString as a buffer. + * + * Return value: + **/ +GIOStatus +g_io_channel_read_line_string (GIOChannel *channel, + GString *buffer, + gsize *terminator_pos, + GError **error) +{ + gsize length; + GIOStatus status; + + g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); + g_return_val_if_fail (buffer != NULL, G_IO_STATUS_ERROR); + g_return_val_if_fail ((error == NULL) || (*error == NULL), + G_IO_STATUS_ERROR); + g_return_val_if_fail (channel->is_readable, G_IO_STATUS_ERROR); + + if (buffer->len > 0) + g_string_truncate (buffer, 0); /* clear out the buffer */ + + status = g_io_channel_read_line_backend (channel, &length, terminator_pos, error); + + if (status == G_IO_STATUS_NORMAL) + { + g_assert (USE_BUF (channel)); + g_string_append_len (buffer, USE_BUF (channel)->str, length); + g_string_erase (USE_BUF (channel), 0, length); + } + + return status; +} + + +static GIOStatus +g_io_channel_read_line_backend (GIOChannel *channel, + gsize *length, + gsize *terminator_pos, + GError **error) +{ + GIOStatus status; + gsize checked_to, line_term_len, line_length, got_term_len; + gboolean first_time = TRUE; + + if (!channel->use_buffer) + { + /* Can't do a raw read in read_line */ + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_FAILED, + _("Can't do a raw read in g_io_channel_read_line_string")); + return G_IO_STATUS_ERROR; + } + + status = G_IO_STATUS_NORMAL; + + if (channel->line_term) + line_term_len = channel->line_term_len; + else + line_term_len = 3; + /* This value used for setting checked_to, it's the longest of the four + * we autodetect for. + */ + + checked_to = 0; + + while (TRUE) + { + gchar *nextchar, *lastchar; + GString *use_buf; + + if (!first_time || (BUF_LEN (USE_BUF (channel)) == 0)) + { +read_again: + status = g_io_channel_fill_buffer (channel, error); + switch (status) + { + case G_IO_STATUS_NORMAL: + if (BUF_LEN (USE_BUF (channel)) == 0) + /* Can happen when using conversion and only read + * part of a character + */ + { + first_time = FALSE; + continue; + } + break; + case G_IO_STATUS_EOF: + if (BUF_LEN (USE_BUF (channel)) == 0) + { + if (length) + *length = 0; + + if (channel->encoding && channel->read_buf->len != 0) + { + g_set_error (error, G_CONVERT_ERROR, + G_CONVERT_ERROR_PARTIAL_INPUT, + "Leftover unconverted data in read buffer"); + return G_IO_STATUS_ERROR; + } + else + return G_IO_STATUS_EOF; + } + break; + default: + if (length) + *length = 0; + return status; + } + } + + g_assert (BUF_LEN (USE_BUF (channel)) != 0); + + use_buf = USE_BUF (channel); /* The buffer has been created by this point */ + + first_time = FALSE; + + lastchar = use_buf->str + use_buf->len; + + for (nextchar = use_buf->str + checked_to; nextchar < lastchar; + channel->encoding ? nextchar = g_utf8_next_char (nextchar) : nextchar++) + { + if (channel->line_term) + { + if (memcmp (channel->line_term, nextchar, line_term_len) == 0) + { + line_length = nextchar - use_buf->str; + got_term_len = line_term_len; + goto done; + } + } + else /* auto detect */ + { + switch (*nextchar) + { + case '\n': /* unix */ + line_length = nextchar - use_buf->str; + got_term_len = 1; + goto done; + case '\r': /* Warning: do not use with sockets */ + line_length = nextchar - use_buf->str; + if ((nextchar == lastchar - 1) && (status != G_IO_STATUS_EOF) + && (lastchar == use_buf->str + use_buf->len)) + goto read_again; /* Try to read more data */ + if ((nextchar < lastchar - 1) && (*(nextchar + 1) == '\n')) /* dos */ + got_term_len = 2; + else /* mac */ + got_term_len = 1; + goto done; + case '\xe2': /* Unicode paragraph separator */ + if (strncmp ("\xe2\x80\xa9", nextchar, 3) == 0) + { + line_length = nextchar - use_buf->str; + got_term_len = 3; + goto done; + } + break; + case '\0': /* Embeded null in input */ + line_length = nextchar - use_buf->str; + got_term_len = 1; + goto done; + default: /* no match */ + break; + } + } + } + + /* If encoding != NULL, valid UTF-8, didn't overshoot */ + g_assert (nextchar == lastchar); + + /* Check for EOF */ + + if (status == G_IO_STATUS_EOF) + { + if (channel->encoding && channel->read_buf->len > 0) + { + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_PARTIAL_INPUT, + "Channel terminates in a partial character"); + return G_IO_STATUS_ERROR; + } + line_length = use_buf->len; + got_term_len = 0; + break; + } + + checked_to = MAX (use_buf->len - (line_term_len - 1), 0); + } + +done: + + if (terminator_pos) + *terminator_pos = line_length; + + if (length) + *length = line_length + got_term_len; + + return G_IO_STATUS_NORMAL; +} + +/** + * g_io_channel_read_to_end: + * @channel: a #GIOChannel + * @str_return: Location to store a pointer to a string holding + * the remaining data in the #GIOChannel. This data should + * be freed with g_free() when no longer needed. This + * data is terminated by an extra null, but there may be other + * nulls in the intervening data. + * @length: Location to store length of the data + * @error: A location to return an error of type #GConvertError + * or #GIOChannelError + * + * Read all the remaining data from the file. + * + * Return value: %G_IO_STATUS_NORMAL on success. This function never + * returns %G_IO_STATUS_EOF. + **/ +GIOStatus +g_io_channel_read_to_end (GIOChannel *channel, + gchar **str_return, + gsize *length, + GError **error) +{ + GIOStatus status; + + g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); + g_return_val_if_fail ((error == NULL) || (*error == NULL), + G_IO_STATUS_ERROR); + g_return_val_if_fail (channel->is_readable, G_IO_STATUS_ERROR); + + if (str_return) + *str_return = NULL; + if (length) + *length = 0; + + if (!channel->use_buffer) + { + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_FAILED, + _("Can't do a raw read in g_io_channel_read_to_end")); + return G_IO_STATUS_ERROR; + } + + do + status = g_io_channel_fill_buffer (channel, error); + while (status == G_IO_STATUS_NORMAL); + + if (status != G_IO_STATUS_EOF) + return status; + + if (channel->encoding && channel->read_buf->len > 0) + { + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_PARTIAL_INPUT, + "Channel terminates in a partial character"); + return G_IO_STATUS_ERROR; + } + + if (USE_BUF (channel) == NULL) + { + /* length is already set to zero */ + if (str_return) + *str_return = g_strdup (""); + } + else + { + if (length) + *length = USE_BUF (channel)->len; + + if (str_return) + *str_return = g_string_free (USE_BUF (channel), FALSE); + else + g_string_free (USE_BUF (channel), TRUE); + + if (channel->encoding) + channel->encoded_read_buf = NULL; + else + channel->read_buf = NULL; + } + + return G_IO_STATUS_NORMAL; +} + +/** + * g_io_channel_read_chars: + * @channel: a #GIOChannel + * @buf: a buffer to read data into + * @count: the size of the buffer. Note that the buffer may + * not be complelely filled even if there is data + * in the buffer if the remaining data is not a + * complete character. + * @bytes_read: The number of bytes read. This may be zero even on + * success if count < 6 and the channel's encoding is non-%NULL. + * This indicates that the next UTF-8 character is too wide for + * the buffer. + * @error: A location to return an error of type #GConvertError + * or #GIOChannelError. + * + * Replacement for g_io_channel_read() with the new API. + * + * Return value: + **/ +GIOStatus +g_io_channel_read_chars (GIOChannel *channel, + gchar *buf, + gsize count, + gsize *bytes_read, + GError **error) +{ + GIOStatus status; + gsize got_bytes; + + g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); + g_return_val_if_fail ((error == NULL) || (*error == NULL), + G_IO_STATUS_ERROR); + g_return_val_if_fail (channel->is_readable, G_IO_STATUS_ERROR); + + if (count == 0) + { + *bytes_read = 0; + return G_IO_STATUS_NORMAL; + } + g_return_val_if_fail (buf != NULL, G_IO_STATUS_ERROR); + + if (!channel->use_buffer) + { + gint tmp_bytes; + + g_assert (!channel->read_buf || channel->read_buf->len == 0); + + status = channel->funcs->io_read (channel, buf, count, &tmp_bytes, error); + + if (bytes_read) + *bytes_read = tmp_bytes; + + return status; + } + + status = G_IO_STATUS_NORMAL; + + while (BUF_LEN (USE_BUF (channel)) < count && status == G_IO_STATUS_NORMAL) + status = g_io_channel_fill_buffer (channel, error); + + /* Only return an error if we have no data */ + + if (BUF_LEN (USE_BUF (channel)) == 0) + { + g_assert (status != G_IO_STATUS_NORMAL); + + if (status == G_IO_STATUS_EOF && channel->encoding + && BUF_LEN (channel->read_buf) > 0) + { + g_set_error (error, G_CONVERT_ERROR, + G_CONVERT_ERROR_PARTIAL_INPUT, + "Leftover unconverted data in read buffer"); + status = G_IO_STATUS_ERROR; + } + + if (bytes_read) + *bytes_read = 0; + + return status; + } + + if (status == G_IO_STATUS_ERROR) + g_clear_error (error); + + got_bytes = MIN (count, BUF_LEN (USE_BUF (channel))); + + g_assert (got_bytes > 0); + + if (channel->encoding) + /* Don't validate for NULL encoding, binary safe */ + { + gchar *nextchar, *prevchar; + + g_assert (USE_BUF (channel) == channel->encoded_read_buf); + + nextchar = channel->encoded_read_buf->str; + + do + { + prevchar = nextchar; + nextchar = g_utf8_next_char (nextchar); + g_assert (nextchar != prevchar); /* Possible for *prevchar of -1 or -2 */ + } + while (nextchar < channel->encoded_read_buf->str + got_bytes); + + if (nextchar > channel->encoded_read_buf->str + got_bytes) + got_bytes = prevchar - channel->encoded_read_buf->str; + + g_assert (got_bytes > 0 || count < 6); + } + + memcpy (buf, USE_BUF (channel)->str, got_bytes); + g_string_erase (USE_BUF (channel), 0, got_bytes); + + if (bytes_read) + *bytes_read = got_bytes; + + return G_IO_STATUS_NORMAL; +} + +/** + * g_io_channel_read_unichar: + * @channel: a #GIOChannel + * @thechar: a location to return a character + * @error: A location to return an error of type #GConvertError + * or #GIOChannelError + * + * This function cannot be called on a channel with %NULL encoding. + * + * Return value: a #GIOStatus + **/ +GIOStatus +g_io_channel_read_unichar (GIOChannel *channel, + gunichar *thechar, + GError **error) +{ + GIOStatus status = G_IO_STATUS_NORMAL; + + g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); + g_return_val_if_fail (channel->encoding != NULL, G_IO_STATUS_ERROR); + g_return_val_if_fail ((error == NULL) || (*error == NULL), + G_IO_STATUS_ERROR); + g_return_val_if_fail (channel->is_readable, G_IO_STATUS_ERROR); + + while (BUF_LEN (channel->encoded_read_buf) == 0 && status == G_IO_STATUS_NORMAL) + status = g_io_channel_fill_buffer (channel, error); + + /* Only return an error if we have no data */ + + if (BUF_LEN (USE_BUF (channel)) == 0) + { + g_assert (status != G_IO_STATUS_NORMAL); + + if (status == G_IO_STATUS_EOF && BUF_LEN (channel->read_buf) > 0) + { + g_set_error (error, G_CONVERT_ERROR, + G_CONVERT_ERROR_PARTIAL_INPUT, + "Leftover unconverted data in read buffer"); + status = G_IO_STATUS_ERROR; + } + + if (thechar) + *thechar = (gunichar) -1; + + return status; + } + + if (status == G_IO_STATUS_ERROR) + g_clear_error (error); + + if (thechar) + *thechar = g_utf8_get_char (channel->encoded_read_buf->str); + + g_string_erase (channel->encoded_read_buf, 0, + g_utf8_next_char (channel->encoded_read_buf->str) + - channel->encoded_read_buf->str); + + return G_IO_STATUS_NORMAL; +} + +/** + * g_io_channel_write_chars: + * @channel: a #GIOChannel + * @buf: a buffer to write data from + * @count: the size of the buffer. If -1, the buffer + * is taken to be a nul terminated string. + * @bytes_written: The number of bytes written. This can be nonzero + * even if the return value is not %G_IO_STATUS_NORMAL. + * If the return value is %G_IO_STATUS_NORMAL and the + * channel is blocking, this will always be equal + * to @count if @count >= 0. + * @error: A location to return an error of type #GConvertError + * or #GIOChannelError + * + * Replacement for g_io_channel_write() with the new API. + * + * On seekable channels with encodings other than %NULL or UTF-8, generic + * mixing of reading and writing is not allowed. A call to g_io_channel_write_chars () + * may only be made on a channel from which data has been read in the + * cases described in the documentation for g_io_channel_set_encoding (). + * + * Return value: + **/ +GIOStatus +g_io_channel_write_chars (GIOChannel *channel, + const gchar *buf, + gssize count, + gsize *bytes_written, + GError **error) +{ + GIOStatus status; + gssize wrote_bytes = 0; + + g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); + g_return_val_if_fail ((error == NULL) || (*error == NULL), + G_IO_STATUS_ERROR); + g_return_val_if_fail (channel->is_writeable, G_IO_STATUS_ERROR); + + if ((count < 0) && buf) + count = strlen (buf); + + if (count == 0) + { + if (bytes_written) + *bytes_written = 0; + return G_IO_STATUS_NORMAL; + } + + g_return_val_if_fail (buf != NULL, G_IO_STATUS_ERROR); + g_return_val_if_fail (count > 0, G_IO_STATUS_ERROR); + + /* Raw write case */ + + if (!channel->use_buffer) + { + gint tmp_bytes; + + g_assert (!channel->write_buf || channel->write_buf->len == 0); + g_assert (channel->partial_write_buf[0] == '\0'); + + status = channel->funcs->io_write (channel, buf, count, &tmp_bytes, error); + + if (bytes_written) + *bytes_written = tmp_bytes; + + return status; + } + + /* General case */ + + if (channel->is_seekable && (( BUF_LEN (channel->read_buf) > 0) + || (BUF_LEN (channel->encoded_read_buf) > 0))) + { + if (channel->do_encode && BUF_LEN (channel->encoded_read_buf) > 0) + { + g_warning("Mixed reading and writing not allowed on encoded files"); + return G_IO_STATUS_ERROR; + } + status = g_io_channel_seek_position (channel, 0, G_SEEK_CUR, error); + if (status != G_IO_STATUS_NORMAL) + { + if (bytes_written) + *bytes_written = 0; + return status; + } + } + + if (!channel->write_buf) + channel->write_buf = g_string_sized_new (channel->buf_size); + + while (wrote_bytes < count) + { + gsize space_in_buf; + + /* If the buffer is full, try a write immediately. In + * the nonblocking case, this prevents the user from + * writing just a little bit to the buffer every time + * and never receiving an EAGAIN. + */ + + if (channel->write_buf->len >= channel->buf_size) + { + gsize did_write = 0, this_time; + + do + { + status = channel->funcs->io_write (channel, channel->write_buf->str + + did_write, channel->write_buf->len + - did_write, &this_time, error); + did_write += this_time; + } + while (status == G_IO_STATUS_NORMAL && + did_write < MIN (channel->write_buf->len, MAX_CHAR_SIZE)); + + g_string_erase (channel->write_buf, 0, did_write); + + if (status != G_IO_STATUS_NORMAL) + { + if (status == G_IO_STATUS_AGAIN && wrote_bytes > 0) + status = G_IO_STATUS_NORMAL; + if (bytes_written) + *bytes_written = wrote_bytes; + return status; + } + } + + space_in_buf = MAX (channel->buf_size, channel->write_buf->allocated_len - 1) + - channel->write_buf->len; /* 1 for NULL */ + + /* This is only true because g_io_channel_set_buffer_size () + * ensures that channel->buf_size >= MAX_CHAR_SIZE. + */ + g_assert (space_in_buf >= MAX_CHAR_SIZE); + + if (!channel->encoding) + { + gssize write_this = MIN (space_in_buf, count - wrote_bytes); + + g_string_append_len (channel->write_buf, buf, write_this); + buf += write_this; + wrote_bytes += write_this; + } + else + { + const gchar *from_buf; + gsize from_buf_len, from_buf_old_len, left_len; + size_t err; + gint errnum; + + if (channel->partial_write_buf[0] != '\0') + { + g_assert (wrote_bytes == 0); + + from_buf = channel->partial_write_buf; + from_buf_old_len = strlen (channel->partial_write_buf); + g_assert (from_buf_old_len > 0); + from_buf_len = MIN (6, from_buf_old_len + count); + + memcpy (channel->partial_write_buf + from_buf_old_len, buf, + from_buf_len - from_buf_old_len); + } + else + { + from_buf = buf; + from_buf_len = count - wrote_bytes; + from_buf_old_len = 0; + } + +reconvert: + + if (!channel->do_encode) /* UTF-8 encoding */ + { + const gchar *badchar; + gsize try_len = MIN (from_buf_len, space_in_buf); + + /* UTF-8, just validate, emulate g_iconv */ + + if (!g_utf8_validate (from_buf, try_len, &badchar)) + { + gunichar try_char; + + left_len = from_buf + try_len - badchar; + + try_char = g_utf8_get_char_validated (badchar, left_len); + + switch (try_char) + { + case -2: + g_assert (left_len < 6); + if (try_len == from_buf_len) + { + errnum = EINVAL; + err = (size_t) -1; + } + else + { + errnum = 0; + err = (size_t) -1; + } + break; + case -1: + g_warning ("Invalid UTF-8 passed to g_io_channel_write_chars()."); + /* FIXME bail here? */ + errnum = EILSEQ; + err = (size_t) -1; + break; + default: + g_assert_not_reached (); + err = (size_t) -1; + errnum = 0; /* Don't confunse the compiler */ + } + } + else + { + err = (size_t) 0; + errnum = 0; + left_len = 0; + } + + g_string_append_len (channel->write_buf, from_buf, + try_len - left_len); + from_buf += try_len - left_len; + } + else + { + gchar *outbuf; + + left_len = from_buf_len; + g_string_set_size (channel->write_buf, channel->write_buf->len + + space_in_buf); + outbuf = channel->write_buf->str + channel->write_buf->len + - space_in_buf; + err = g_iconv (channel->write_cd, (gchar **) &from_buf, &left_len, + &outbuf, &space_in_buf); + errnum = errno; + g_string_truncate (channel->write_buf, channel->write_buf->len + - space_in_buf); + } + + if (err == (size_t) -1) + { + switch (errnum) + { + case EINVAL: + g_assert (left_len < 6); + + if (from_buf_old_len == 0) + { + /* Not from partial_write_buf */ + + memcpy (channel->partial_write_buf, from_buf, left_len); + channel->partial_write_buf[left_len] = '\0'; + if (bytes_written) + *bytes_written = count; + return G_IO_STATUS_NORMAL; + } + + /* Working in partial_write_buf */ + + if (left_len == from_buf_len) + { + /* Didn't convert anything, must still have + * less than a full character + */ + + g_assert (count == from_buf_len - from_buf_old_len); + + channel->partial_write_buf[from_buf_len] = '\0'; + + if (bytes_written) + *bytes_written = count; + + return G_IO_STATUS_NORMAL; + } + + g_assert (from_buf_len - left_len >= from_buf_old_len); + + /* We converted all the old data. This is fine */ + + break; + case E2BIG: + if (from_buf_len == left_len) + { + /* Nothing was written, add enough space for + * at least one character. + */ + space_in_buf += MAX_CHAR_SIZE; + goto reconvert; + } + break; + case EILSEQ: + g_set_error (error, G_CONVERT_ERROR, + G_CONVERT_ERROR_ILLEGAL_SEQUENCE, + _("Invalid byte sequence in conversion input")); + if (from_buf_old_len > 0 && from_buf_len == left_len) + g_warning ("Illegal sequence due to partial character " + "at the end of a previous write.\n"); + else + wrote_bytes += from_buf_len - left_len - from_buf_old_len; + if (bytes_written) + *bytes_written = wrote_bytes; + channel->partial_write_buf[0] = '\0'; + return G_IO_STATUS_ERROR; + default: + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_FAILED, + _("Error during conversion: %s"), strerror (errnum)); + if (from_buf_len >= left_len + from_buf_old_len) + wrote_bytes += from_buf_len - left_len - from_buf_old_len; + if (bytes_written) + *bytes_written = wrote_bytes; + channel->partial_write_buf[0] = '\0'; + return G_IO_STATUS_ERROR; + } + } + + g_assert (from_buf_len - left_len >= from_buf_old_len); + + wrote_bytes += from_buf_len - left_len - from_buf_old_len; + + if (from_buf_old_len > 0) + { + /* We were working in partial_write_buf */ + + buf += from_buf_len - left_len - from_buf_old_len; + channel->partial_write_buf[0] = '\0'; + } + else + buf = from_buf; + } + } + + if (bytes_written) + *bytes_written = count; + + return G_IO_STATUS_NORMAL; +} + +/** + * g_io_channel_write_unichar: + * @channel: a #GIOChannel + * @thechar: a character + * @error: A location to return an error of type #GConvertError + * or #GIOChannelError + * + * This function cannot be called on a channel with %NULL encoding. + * + * Return value: a #GIOStatus + **/ +GIOStatus +g_io_channel_write_unichar (GIOChannel *channel, + gunichar thechar, + GError **error) +{ + GIOStatus status; + gchar static_buf[6]; + gsize char_len, wrote_len; + + g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR); + g_return_val_if_fail (channel->encoding != NULL, G_IO_STATUS_ERROR); + g_return_val_if_fail ((error == NULL) || (*error == NULL), + G_IO_STATUS_ERROR); + g_return_val_if_fail (channel->is_writeable, G_IO_STATUS_ERROR); + + char_len = g_unichar_to_utf8 (thechar, static_buf); + + if (channel->partial_write_buf[0] != '\0') + { + g_warning ("Partial charater written before writing unichar.\n"); + channel->partial_write_buf[0] = '\0'; + } + + status = g_io_channel_write_chars (channel, static_buf, + char_len, &wrote_len, error); + + /* We validate UTF-8, so we can't get a partial write */ + + g_assert (wrote_len == char_len || status != G_IO_STATUS_NORMAL); + + return status; +} + +/** + * g_io_channel_error_quark: + * + * Return value: The quark used as %G_IO_CHANNEL_ERROR + **/ +GQuark +g_io_channel_error_quark (void) +{ + static GQuark q = 0; + if (q == 0) + q = g_quark_from_static_string ("g-io-channel-error-quark"); + + return q; +} diff --git a/graf2d/win32gdk/gdk/src/glib/giochannel.h b/graf2d/win32gdk/gdk/src/glib/giochannel.h index cf9f11526c2..1ff325b5b3a 100644 --- a/graf2d/win32gdk/gdk/src/glib/giochannel.h +++ b/graf2d/win32gdk/gdk/src/glib/giochannel.h @@ -27,8 +27,9 @@ #ifndef __G_IOCHANNEL_H__ #define __G_IOCHANNEL_H__ -#include <gmain.h> -#include <g_types.h> +#include <glib/gconvert.h> +#include <glib/gmain.h> +#include <glib/gstring.h> G_BEGIN_DECLS @@ -37,6 +38,7 @@ G_BEGIN_DECLS typedef struct _GIOChannel GIOChannel; typedef struct _GIOFuncs GIOFuncs; + typedef enum { G_IO_ERROR_NONE, @@ -44,12 +46,39 @@ typedef enum G_IO_ERROR_INVAL, G_IO_ERROR_UNKNOWN } GIOError; + +#define G_IO_CHANNEL_ERROR g_io_channel_error_quark() + +typedef enum +{ + /* Derived from errno */ + G_IO_CHANNEL_ERROR_FBIG, + G_IO_CHANNEL_ERROR_INVAL, + G_IO_CHANNEL_ERROR_IO, + G_IO_CHANNEL_ERROR_ISDIR, + G_IO_CHANNEL_ERROR_NOSPC, + G_IO_CHANNEL_ERROR_NXIO, + G_IO_CHANNEL_ERROR_OVERFLOW, + G_IO_CHANNEL_ERROR_PIPE, + /* Other */ + G_IO_CHANNEL_ERROR_FAILED +} GIOChannelError; + +typedef enum +{ + G_IO_STATUS_ERROR, + G_IO_STATUS_NORMAL, + G_IO_STATUS_EOF, + G_IO_STATUS_AGAIN +} GIOStatus; + typedef enum { G_SEEK_CUR, G_SEEK_SET, G_SEEK_END } GSeekType; + typedef enum { G_IO_IN GLIB_SYSDEF_POLLIN, @@ -60,11 +89,44 @@ typedef enum G_IO_NVAL GLIB_SYSDEF_POLLNVAL } GIOCondition; +typedef enum +{ + G_IO_FLAG_APPEND = 1 << 0, + G_IO_FLAG_NONBLOCK = 1 << 1, + G_IO_FLAG_IS_READABLE = 1 << 2, /* Read only flag */ + G_IO_FLAG_IS_WRITEABLE = 1 << 3, /* Read only flag */ + G_IO_FLAG_IS_SEEKABLE = 1 << 4, /* Read only flag */ + G_IO_FLAG_MASK = (1 << 5) - 1, + G_IO_FLAG_GET_MASK = G_IO_FLAG_MASK, + G_IO_FLAG_SET_MASK = G_IO_FLAG_APPEND | G_IO_FLAG_NONBLOCK +} GIOFlags; + struct _GIOChannel { - guint channel_flags; + /*< private >*/ guint ref_count; GIOFuncs *funcs; + + gchar *encoding; + GIConv read_cd; + GIConv write_cd; + gchar *line_term; /* String which indicates the end of a line of text */ + guint line_term_len; /* So we can have null in the line term */ + + gsize buf_size; + GString *read_buf; /* Raw data from the channel */ + GString *encoded_read_buf; /* Channel data converted to UTF-8 */ + GString *write_buf; /* Data ready to be written to the file */ + gchar partial_write_buf[6]; /* UTF-8 partial characters, null terminated */ + + /* Group the flags together, immediately after partial_write_buf, to save memory */ + + guint use_buffer : 1; /* The encoding uses the buffers */ + guint do_encode : 1; /* The encoding uses the GIConv coverters */ + guint close_on_unref : 1; /* Close the channel on final unref */ + guint is_readable : 1; /* Cached GIOFlag */ + guint is_writeable : 1; /* ditto */ + guint is_seekable : 1; /* ditto */ }; typedef gboolean (*GIOFunc) (GIOChannel *source, @@ -72,66 +134,163 @@ typedef gboolean (*GIOFunc) (GIOChannel *source, gpointer data); struct _GIOFuncs { - GIOError (*io_read) (GIOChannel *channel, - gchar *buf, - guint count, - guint *bytes_read); - GIOError (*io_write) (GIOChannel *channel, - gchar *buf, - guint count, - guint *bytes_written); - GIOError (*io_seek) (GIOChannel *channel, - gint offset, - GSeekType type); - void (*io_close) (GIOChannel *channel); - GSource * (*io_create_watch) (GIOChannel *channel, - GIOCondition condition); - void (*io_free) (GIOChannel *channel); + GIOStatus (*io_read) (GIOChannel *channel, + gchar *buf, + gsize count, + gsize *bytes_read, + GError **err); + GIOStatus (*io_write) (GIOChannel *channel, + const gchar *buf, + gsize count, + gsize *bytes_written, + GError **err); + GIOStatus (*io_seek) (GIOChannel *channel, + glong offset, + GSeekType type, + GError **err); + GIOStatus (*io_close) (GIOChannel *channel, + GError **err); + GSource* (*io_create_watch) (GIOChannel *channel, + GIOCondition condition); + void (*io_free) (GIOChannel *channel); + GIOStatus (*io_set_flags) (GIOChannel *channel, + GIOFlags flags, + GError **err); + GIOFlags (*io_get_flags) (GIOChannel *channel); }; void g_io_channel_init (GIOChannel *channel); void g_io_channel_ref (GIOChannel *channel); void g_io_channel_unref (GIOChannel *channel); + +#ifndef G_DISABLE_DEPRECATED GIOError g_io_channel_read (GIOChannel *channel, gchar *buf, - guint count, - guint *bytes_read); + gsize count, + gsize *bytes_read); GIOError g_io_channel_write (GIOChannel *channel, - gchar *buf, - guint count, - guint *bytes_written); + const gchar *buf, + gsize count, + gsize *bytes_written); GIOError g_io_channel_seek (GIOChannel *channel, - gint offset, + glong offset, GSeekType type); void g_io_channel_close (GIOChannel *channel); -guint g_io_add_watch_full (GIOChannel *channel, - gint priority, - GIOCondition condition, - GIOFunc func, - gpointer user_data, - GDestroyNotify notify); -GSource *g_io_create_watch (GIOChannel *channel, - GIOCondition condition); -guint g_io_add_watch (GIOChannel *channel, - GIOCondition condition, - GIOFunc func, - gpointer user_data); +#endif /* G_DISABLE_DEPRECATED */ + +GIOStatus g_io_channel_shutdown (GIOChannel *channel, + gboolean flush, + GError **err); +guint g_io_add_watch_full (GIOChannel *channel, + gint priority, + GIOCondition condition, + GIOFunc func, + gpointer user_data, + GDestroyNotify notify); +GSource * g_io_create_watch (GIOChannel *channel, + GIOCondition condition); +guint g_io_add_watch (GIOChannel *channel, + GIOCondition condition, + GIOFunc func, + gpointer user_data); + +/* character encoding conversion involved functions. + */ + +void g_io_channel_set_buffer_size (GIOChannel *channel, + gsize size); +gsize g_io_channel_get_buffer_size (GIOChannel *channel); +GIOCondition g_io_channel_get_buffer_condition (GIOChannel *channel); +GIOStatus g_io_channel_set_flags (GIOChannel *channel, + GIOFlags flags, + GError **error); +GIOFlags g_io_channel_get_flags (GIOChannel *channel); +void g_io_channel_set_line_term (GIOChannel *channel, + const gchar *line_term, + gint length); +G_CONST_RETURN gchar* g_io_channel_get_line_term (GIOChannel *channel, + gint *length); +void g_io_channel_set_buffered (GIOChannel *channel, + gboolean buffered); +gboolean g_io_channel_get_buffered (GIOChannel *channel); +GIOStatus g_io_channel_set_encoding (GIOChannel *channel, + const gchar *encoding, + GError **error); +G_CONST_RETURN gchar* g_io_channel_get_encoding (GIOChannel *channel); +void g_io_channel_set_close_on_unref (GIOChannel *channel, + gboolean do_close); +gboolean g_io_channel_get_close_on_unref (GIOChannel *channel); + + +GIOStatus g_io_channel_flush (GIOChannel *channel, + GError **error); +GIOStatus g_io_channel_read_line (GIOChannel *channel, + gchar **str_return, + gsize *length, + gsize *terminator_pos, + GError **error); +GIOStatus g_io_channel_read_line_string (GIOChannel *channel, + GString *buffer, + gsize *terminator_pos, + GError **error); +GIOStatus g_io_channel_read_to_end (GIOChannel *channel, + gchar **str_return, + gsize *length, + GError **error); +GIOStatus g_io_channel_read_chars (GIOChannel *channel, + gchar *buf, + gsize count, + gsize *bytes_read, + GError **error); +GIOStatus g_io_channel_read_unichar (GIOChannel *channel, + gunichar *thechar, + GError **error); +GIOStatus g_io_channel_write_chars (GIOChannel *channel, + const gchar *buf, + gssize count, + gsize *bytes_written, + GError **error); +GIOStatus g_io_channel_write_unichar (GIOChannel *channel, + gunichar thechar, + GError **error); +GIOStatus g_io_channel_seek_position (GIOChannel *channel, + glong offset, + GSeekType type, + GError **error); +GIOChannel* g_io_channel_new_file (const gchar *filename, + const gchar *mode, + GError **error); + +/* Error handling */ + +GQuark g_io_channel_error_quark (void); +GIOChannelError g_io_channel_error_from_errno (gint en); /* On Unix, IO channels created with this function for any file * descriptor or socket. * - * On Win32, use this only for files opened with the MSVCRT (the - * Microsoft run-time C library) _open() or _pipe, including file - * descriptors 0, 1 and 2 (corresponding to stdin, stdout and stderr). + * On Win32, this can be used either for files opened with the MSVCRT + * (the Microsoft run-time C library) _open() or _pipe, including file + * descriptors 0, 1 and 2 (corresponding to stdin, stdout and stderr), + * or for Winsock SOCKETs. If the parameter is a legal file + * descriptor, it is assumed to be such, otherwise it should be a + * SOCKET. This relies on SOCKETs and file descriptors not + * overlapping. If you want to be certain, call either + * g_io_channel_win32_new_fd() or g_io_channel_win32_new_socket() + * instead as appropriate. * * The term file descriptor as used in the context of Win32 refers to * the emulated Unix-like file descriptors MSVCRT provides. The native * corresponding concept is file HANDLE. There isn't as of yet a way to - * get GIOChannels for file HANDLEs. + * get GIOChannels for Win32 file HANDLEs. */ GIOChannel* g_io_channel_unix_new (int fd); gint g_io_channel_unix_get_fd (GIOChannel *channel); + +/* Hook for GClosure / GSource integration. Don't touch */ +GLIB_VAR GSourceFuncs g_io_watch_funcs; + #ifdef G_OS_WIN32 #define G_WIN32_MSG_HANDLE 19981206 @@ -139,7 +298,8 @@ gint g_io_channel_unix_get_fd (GIOChannel *channel); /* Use this to get a GPollFD from a GIOChannel, so that you can call * g_io_channel_win32_poll(). After calling this you should only use * g_io_channel_read() to read from the GIOChannel, i.e. never read() - * or recv() from the underlying file descriptor or SOCKET. + * from the underlying file descriptor. For SOCKETs, it is possible to call + * recv(). */ void g_io_channel_win32_make_pollfd (GIOChannel *channel, GIOCondition condition, @@ -147,7 +307,6 @@ void g_io_channel_win32_make_pollfd (GIOChannel *channel, /* This can be used to wait a until at least one of the channels is readable. * On Unix you would do a select() on the file descriptors of the channels. - * This should probably be available for all platforms? */ gint g_io_channel_win32_poll (GPollFD *fds, gint n_fds, @@ -160,25 +319,29 @@ void g_main_poll_win32_msg_add (gint priority, GPollFD *fd, guint hwnd); -/* An IO channel for Windows messages for window handle hwnd. */ +/* Create an IO channel for Windows messages for window handle hwnd. */ GIOChannel *g_io_channel_win32_new_messages (guint hwnd); -/* An IO channel for C runtime (emulated Unix-like) file - * descriptors. Identical to g_io_channel_unix_new above. - * After calling g_io_add_watch() on a IO channel returned - * by this function, you shouldn't call read() on the file - * descriptor. +/* Create an IO channel for C runtime (emulated Unix-like) file + * descriptors. After calling g_io_add_watch() on a IO channel + * returned by this function, you shouldn't call read() on the file + * descriptor. This is because adding polling for a file descriptor is + * implemented on Win32 by starting a thread that sits blocked in a + * read() from the file descriptor most of the time. All reads from + * the file descriptor should be done by this internal GLib + * thread. Your code should call only g_io_channel_read(). */ -GIOChannel* g_io_channel_win32_new_fd (int fd); +GIOChannel* g_io_channel_win32_new_fd (gint fd); /* Get the C runtime file descriptor of a channel. */ gint g_io_channel_win32_get_fd (GIOChannel *channel); -/* An IO channel for a SOCK_STREAM winsock socket. The parameter - * should be a SOCKET. After calling g_io_add_watch() on a IO channel - * returned by this function, you shouldn't call recv() on the SOCKET. +/* Create an IO channel for a winsock socket. The parameter should be + * a SOCKET. Contrary to IO channels for file descriptors (on *Win32), + * you can use normal recv() or recvfrom() on sockets even if GLib + * is polling them. */ -GIOChannel *g_io_channel_win32_new_stream_socket (int socket); +GIOChannel *g_io_channel_win32_new_socket (gint socket); #endif diff --git a/graf2d/win32gdk/gdk/src/glib/giounix.c b/graf2d/win32gdk/gdk/src/glib/giounix.c new file mode 100644 index 00000000000..c2db911a874 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/giounix.c @@ -0,0 +1,583 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * giounix.c: IO Channels using unix file descriptors + * Copyright 1998 Owen Taylor + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe + */ + +#include "glib.h" +#include <sys/types.h> +#include <sys/stat.h> +#include <stdio.h> +#include <unistd.h> +#include <errno.h> +#include <string.h> +#include <fcntl.h> + +/* + * Unix IO Channels + */ + +typedef struct _GIOUnixChannel GIOUnixChannel; +typedef struct _GIOUnixWatch GIOUnixWatch; + +struct _GIOUnixChannel +{ + GIOChannel channel; + gint fd; +}; + +struct _GIOUnixWatch +{ + GSource source; + GPollFD pollfd; + GIOChannel *channel; + GIOCondition condition; + GIOFunc callback; +}; + + +static GIOStatus g_io_unix_read (GIOChannel *channel, + gchar *buf, + gsize count, + gsize *bytes_read, + GError **err); +static GIOStatus g_io_unix_write (GIOChannel *channel, + const gchar *buf, + gsize count, + gsize *bytes_written, + GError **err); +static GIOStatus g_io_unix_seek (GIOChannel *channel, + glong offset, + GSeekType type, + GError **err); +static GIOStatus g_io_unix_close (GIOChannel *channel, + GError **err); +static void g_io_unix_free (GIOChannel *channel); +static GSource* g_io_unix_create_watch (GIOChannel *channel, + GIOCondition condition); +static GIOStatus g_io_unix_set_flags (GIOChannel *channel, + GIOFlags flags, + GError **err); +static GIOFlags g_io_unix_get_flags (GIOChannel *channel); + +static gboolean g_io_unix_prepare (GSource *source, + gint *timeout); +static gboolean g_io_unix_check (GSource *source); +static gboolean g_io_unix_dispatch (GSource *source, + GSourceFunc callback, + gpointer user_data); +static void g_io_unix_finalize (GSource *source); + +GSourceFuncs g_io_watch_funcs = { + g_io_unix_prepare, + g_io_unix_check, + g_io_unix_dispatch, + g_io_unix_finalize +}; + +static GIOFuncs unix_channel_funcs = { + g_io_unix_read, + g_io_unix_write, + g_io_unix_seek, + g_io_unix_close, + g_io_unix_create_watch, + g_io_unix_free, + g_io_unix_set_flags, + g_io_unix_get_flags, +}; + +static gboolean +g_io_unix_prepare (GSource *source, + gint *timeout) +{ + GIOUnixWatch *watch = (GIOUnixWatch *)source; + GIOCondition buffer_condition = g_io_channel_get_buffer_condition (watch->channel); + + *timeout = -1; + + /* Only return TRUE here if _all_ bits in watch->condition will be set + */ + return ((watch->condition & buffer_condition) == watch->condition); +} + +static gboolean +g_io_unix_check (GSource *source) +{ + GIOUnixWatch *watch = (GIOUnixWatch *)source; + GIOCondition buffer_condition = g_io_channel_get_buffer_condition (watch->channel); + GIOCondition poll_condition = watch->pollfd.revents; + + return ((poll_condition | buffer_condition) & watch->condition); +} + +static gboolean +g_io_unix_dispatch (GSource *source, + GSourceFunc callback, + gpointer user_data) + +{ + GIOFunc func = (GIOFunc)callback; + GIOUnixWatch *watch = (GIOUnixWatch *)source; + GIOCondition buffer_condition = g_io_channel_get_buffer_condition (watch->channel); + + if (!func) + { + g_warning ("IO watch dispatched without callback\n" + "You must call g_source_connect()."); + return FALSE; + } + + return (*func) (watch->channel, + (watch->pollfd.revents | buffer_condition) & watch->condition, + user_data); +} + +static void +g_io_unix_finalize (GSource *source) +{ + GIOUnixWatch *watch = (GIOUnixWatch *)source; + + g_io_channel_unref (watch->channel); +} + +static GIOStatus +g_io_unix_read (GIOChannel *channel, + gchar *buf, + gsize count, + gsize *bytes_read, + GError **err) +{ + GIOUnixChannel *unix_channel = (GIOUnixChannel *)channel; + gssize result; + + if (count > SSIZE_MAX) /* At least according to the Debian manpage for read */ + count = SSIZE_MAX; + + retry: + result = read (unix_channel->fd, buf, count); + + if (result < 0) + { + *bytes_read = 0; + + switch (errno) + { +#ifdef EINTR + case EINTR: + goto retry; +#endif +#ifdef EAGAIN + case EAGAIN: + return G_IO_STATUS_AGAIN; +#endif + default: + g_set_error (err, G_IO_CHANNEL_ERROR, + g_io_channel_error_from_errno (errno), + strerror (errno)); + return G_IO_STATUS_ERROR; + } + } + + *bytes_read = result; + + return (result > 0) ? G_IO_STATUS_NORMAL : G_IO_STATUS_EOF; +} + +static GIOStatus +g_io_unix_write (GIOChannel *channel, + const gchar *buf, + gsize count, + gsize *bytes_written, + GError **err) +{ + GIOUnixChannel *unix_channel = (GIOUnixChannel *)channel; + gssize result; + + retry: + result = write (unix_channel->fd, buf, count); + + if (result < 0) + { + *bytes_written = 0; + + switch (errno) + { +#ifdef EINTR + case EINTR: + goto retry; +#endif +#ifdef EAGAIN + case EAGAIN: + return G_IO_STATUS_AGAIN; +#endif + default: + g_set_error (err, G_IO_CHANNEL_ERROR, + g_io_channel_error_from_errno (errno), + strerror (errno)); + return G_IO_STATUS_ERROR; + } + } + + *bytes_written = result; + + return G_IO_STATUS_NORMAL; +} + +static GIOStatus +g_io_unix_seek (GIOChannel *channel, + glong offset, + GSeekType type, + GError **err) +{ + GIOUnixChannel *unix_channel = (GIOUnixChannel *)channel; + int whence; + off_t result; + + switch (type) + { + case G_SEEK_SET: + whence = SEEK_SET; + break; + case G_SEEK_CUR: + whence = SEEK_CUR; + break; + case G_SEEK_END: + whence = SEEK_END; + break; + default: + whence = -1; /* Shut the compiler up */ + g_assert_not_reached (); + } + + result = lseek (unix_channel->fd, offset, whence); + + if (result < 0) + { + g_set_error (err, G_IO_CHANNEL_ERROR, + g_io_channel_error_from_errno (errno), + strerror (errno)); + return G_IO_STATUS_ERROR; + } + + return G_IO_STATUS_NORMAL; +} + + +static GIOStatus +g_io_unix_close (GIOChannel *channel, + GError **err) +{ + GIOUnixChannel *unix_channel = (GIOUnixChannel *)channel; + + if (close (unix_channel->fd) < 0) + { + g_set_error (err, G_IO_CHANNEL_ERROR, + g_io_channel_error_from_errno (errno), + strerror (errno)); + return G_IO_STATUS_ERROR; + } + + return G_IO_STATUS_NORMAL; +} + +static void +g_io_unix_free (GIOChannel *channel) +{ + GIOUnixChannel *unix_channel = (GIOUnixChannel *)channel; + + g_free (unix_channel); +} + +static GSource * +g_io_unix_create_watch (GIOChannel *channel, + GIOCondition condition) +{ + GIOUnixChannel *unix_channel = (GIOUnixChannel *)channel; + GSource *source; + GIOUnixWatch *watch; + + + source = g_source_new (&g_io_watch_funcs, sizeof (GIOUnixWatch)); + watch = (GIOUnixWatch *)source; + + watch->channel = channel; + g_io_channel_ref (channel); + + watch->condition = condition; + + watch->pollfd.fd = unix_channel->fd; + watch->pollfd.events = condition; + + g_source_add_poll (source, &watch->pollfd); + + return source; +} + +static GIOStatus +g_io_unix_set_flags (GIOChannel *channel, + GIOFlags flags, + GError **err) +{ + glong fcntl_flags; + GIOUnixChannel *unix_channel = (GIOUnixChannel *) channel; + + fcntl_flags = 0; + + if (flags & G_IO_FLAG_APPEND) + fcntl_flags |= O_APPEND; + if (flags & G_IO_FLAG_NONBLOCK) +#ifdef O_NONBLOCK + fcntl_flags |= O_NONBLOCK; +#else + fcntl_flags |= O_NDELAY; +#endif + + if (fcntl (unix_channel->fd, F_SETFL, fcntl_flags) == -1) + { + g_set_error (err, G_IO_CHANNEL_ERROR, + g_io_channel_error_from_errno (errno), + g_strerror (errno)); + return G_IO_STATUS_ERROR; + } + + return G_IO_STATUS_NORMAL; +} + +static GIOFlags +g_io_unix_get_flags (GIOChannel *channel) +{ + GIOFlags flags = 0; + glong fcntl_flags; + GIOUnixChannel *unix_channel = (GIOUnixChannel *) channel; + + fcntl_flags = fcntl (unix_channel->fd, F_GETFL); + + if (fcntl_flags == -1) + { + g_warning (G_STRLOC "Error while getting flags for FD: %s (%d)\n", + g_strerror (errno), errno); + return 0; + } + + if (fcntl_flags & O_APPEND) + flags |= G_IO_FLAG_APPEND; +#ifdef O_NONBLOCK + if (fcntl_flags & O_NONBLOCK) +#else + if (fcntl_flags & O_NDELAY) +#endif + flags |= G_IO_FLAG_NONBLOCK; + + switch (fcntl_flags & (O_RDONLY | O_WRONLY | O_RDWR)) + { + case O_RDONLY: + channel->is_readable = TRUE; + channel->is_writeable = FALSE; + break; + case O_WRONLY: + channel->is_readable = FALSE; + channel->is_writeable = TRUE; + break; + case O_RDWR: + channel->is_readable = TRUE; + channel->is_writeable = TRUE; + break; + default: + g_assert_not_reached (); + } + + return flags; +} + +GIOChannel * +g_io_channel_new_file (const gchar *filename, + const gchar *mode, + GError **error) +{ + int fid, flags; + mode_t create_mode; + GIOChannel *channel; + enum { /* Cheesy hack */ + MODE_R = 1 << 0, + MODE_W = 1 << 1, + MODE_A = 1 << 2, + MODE_PLUS = 1 << 3, + } mode_num; + struct stat buffer; + + g_return_val_if_fail (filename != NULL, NULL); + g_return_val_if_fail (mode != NULL, NULL); + g_return_val_if_fail ((error == NULL) || (*error == NULL), NULL); + + switch (mode[0]) + { + case 'r': + mode_num = MODE_R; + break; + case 'w': + mode_num = MODE_W; + break; + case 'a': + mode_num = MODE_A; + break; + default: + g_warning ("Invalid GIOFileMode %s.\n", mode); + return NULL; + } + + switch (mode[1]) + { + case '\0': + break; + case '+': + if (mode[2] == '\0') + { + mode_num |= MODE_PLUS; + break; + } + /* Fall through */ + default: + g_warning ("Invalid GIOFileMode %s.\n", mode); + return NULL; + } + + switch (mode_num) + { + case MODE_R: + flags = O_RDONLY; + break; + case MODE_W: + flags = O_WRONLY | O_TRUNC | O_CREAT; + break; + case MODE_A: + flags = O_WRONLY | O_APPEND | O_CREAT; + break; + case MODE_R | MODE_PLUS: + flags = O_RDWR; + break; + case MODE_W | MODE_PLUS: + flags = O_RDWR | O_TRUNC | O_CREAT; + break; + case MODE_A | MODE_PLUS: + flags = O_RDWR | O_APPEND | O_CREAT; + break; + default: + g_assert_not_reached (); + flags = 0; + } + + create_mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH; + fid = open (filename, flags, create_mode); + if (fid == -1) + { + g_set_error (error, G_FILE_ERROR, + g_file_error_from_errno (errno), + strerror (errno)); + return (GIOChannel *)NULL; + } + + if (fstat (fid, &buffer) == -1) /* In case someone opens a FIFO */ + { + close (fid); + g_set_error (error, G_FILE_ERROR, + g_file_error_from_errno (errno), + strerror (errno)); + return (GIOChannel *)NULL; + } + + channel = (GIOChannel *) g_new (GIOUnixChannel, 1); + + channel->is_seekable = S_ISREG (buffer.st_mode) || S_ISCHR (buffer.st_mode) + || S_ISBLK (buffer.st_mode); + + switch (mode_num) + { + case MODE_R: + channel->is_readable = TRUE; + channel->is_writeable = FALSE; + break; + case MODE_W: + case MODE_A: + channel->is_readable = FALSE; + channel->is_writeable = TRUE; + break; + case MODE_R | MODE_PLUS: + case MODE_W | MODE_PLUS: + case MODE_A | MODE_PLUS: + channel->is_readable = TRUE; + channel->is_writeable = TRUE; + break; + default: + g_assert_not_reached (); + } + + g_io_channel_init (channel); + channel->close_on_unref = TRUE; /* must be after g_io_channel_init () */ + channel->funcs = &unix_channel_funcs; + + ((GIOUnixChannel *) channel)->fd = fid; + return channel; +} + +GIOChannel * +g_io_channel_unix_new (gint fd) +{ + struct stat buffer; + GIOUnixChannel *unix_channel = g_new (GIOUnixChannel, 1); + GIOChannel *channel = (GIOChannel *)unix_channel; + + g_io_channel_init (channel); + channel->funcs = &unix_channel_funcs; + + /* I'm not sure if fstat on a non-file (e.g., socket) works + * it should be safe to say if it fails, the fd isn't seekable. + */ + /* Newer UNIX versions support S_ISSOCK(), fstat() will probably + * succeed in most cases. + */ + if (fstat (unix_channel->fd, &buffer) == 0) + channel->is_seekable = S_ISREG (buffer.st_mode) || S_ISCHR (buffer.st_mode) + || S_ISBLK (buffer.st_mode); + else /* Assume not seekable */ + channel->is_seekable = FALSE; + + unix_channel->fd = fd; + + g_io_unix_get_flags (channel); /* Sets is_readable, is_writeable */ + + return channel; +} + +gint +g_io_channel_unix_get_fd (GIOChannel *channel) +{ + GIOUnixChannel *unix_channel = (GIOUnixChannel *)channel; + return unix_channel->fd; +} diff --git a/graf2d/win32gdk/gdk/src/glib/giowin32.c b/graf2d/win32gdk/gdk/src/glib/giowin32.c new file mode 100644 index 00000000000..425e710d43b --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/giowin32.c @@ -0,0 +1,1463 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * giowin32.c: IO Channels for Win32. + * Copyright 1998 Owen Taylor and Tor Lillqvist + * Copyright 1999-2000 Tor Lillqvist and Craig Setera + * Copyright 2001 Andrew Lanoix + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* Define this to get (very) verbose logging of all channels */ +/* #define G_IO_WIN32_DEBUG */ + +#include "glib.h" + +#include <stdlib.h> +#include <windows.h> +#include <winsock.h> /* Not everybody has winsock2 */ +#include <fcntl.h> +#include <io.h> +#include <process.h> +#include <errno.h> +#include <sys/stat.h> + +#include "glibintl.h" + +typedef struct _GIOWin32Channel GIOWin32Channel; +typedef struct _GIOWin32Watch GIOWin32Watch; + +#define BUFFER_SIZE 4096 + +typedef enum { + G_IO_WIN32_WINDOWS_MESSAGES, /* Windows messages */ + G_IO_WIN32_FILE_DESC, /* Unix-like file descriptors from + * _open() or _pipe(). Read with read(). + * Have to create separate thread to read. + */ + G_IO_WIN32_SOCKET /* Sockets. A separate thread is blocked + * in select() most of the time. + */ +} GIOWin32ChannelType; + +struct _GIOWin32Channel { + GIOChannel channel; + gint fd; /* Either a Unix-like file handle as provided + * by the Microsoft C runtime, or a SOCKET + * as provided by WinSock. + */ + GIOWin32ChannelType type; + + gboolean debug; + + CRITICAL_SECTION mutex; + + /* This is used by G_IO_WIN32_WINDOWS_MESSAGES channels */ + HWND hwnd; /* handle of window, or NULL */ + + /* Following fields are used by both fd and socket channels. */ + gboolean running; /* Is reader thread running. FALSE if + * EOF has been reached. + */ + gboolean needs_close; /* If the channel has been closed while + * the reader thread was still running. + */ + guint thread_id; /* If non-NULL has a reader thread, or has + * had.*/ + HANDLE thread_handle; + HANDLE data_avail_event; + + gushort revents; + + /* Following fields used by fd channels for input */ + + /* Data is kept in a circular buffer. To be able to distinguish between + * empty and full buffer, we cannot fill it completely, but have to + * leave a one character gap. + * + * Data available is between indexes rdp and wrp-1 (modulo BUFFER_SIZE). + * + * Empty: wrp == rdp + * Full: (wrp + 1) % BUFFER_SIZE == rdp + * Partial: otherwise + */ + guchar *buffer; /* (Circular) buffer */ + gint wrp, rdp; /* Buffer indices for writing and reading */ + HANDLE space_avail_event; + + /* Following fields used by socket channels */ + GSList *watches; + HANDLE data_avail_noticed_event; +}; + +#define LOCK(mutex) EnterCriticalSection (&mutex) +#define UNLOCK(mutex) LeaveCriticalSection (&mutex) + +struct _GIOWin32Watch { + GSource source; + GPollFD pollfd; + GIOChannel *channel; + GIOCondition condition; + GIOFunc callback; +}; + +static void +g_io_channel_win32_init (GIOWin32Channel *channel) +{ +#ifdef G_IO_WIN32_DEBUG + channel->debug = TRUE; +#else + if (getenv ("G_IO_WIN32_DEBUG") != NULL) + channel->debug = TRUE; + else + channel->debug = FALSE; +#endif + channel->buffer = NULL; + channel->running = FALSE; + channel->needs_close = FALSE; + channel->thread_id = 0; + channel->data_avail_event = NULL; + channel->revents = 0; + channel->space_avail_event = NULL; + channel->data_avail_noticed_event = NULL; + channel->watches = NULL; + InitializeCriticalSection (&channel->mutex); +} + +static void +create_events (GIOWin32Channel *channel) +{ + SECURITY_ATTRIBUTES sec_attrs; + + sec_attrs.nLength = sizeof(SECURITY_ATTRIBUTES); + sec_attrs.lpSecurityDescriptor = NULL; + sec_attrs.bInheritHandle = FALSE; + + /* The data available event is manual reset, the space available event + * is automatic reset. + */ + if (!(channel->data_avail_event = CreateEvent (&sec_attrs, TRUE, FALSE, NULL)) + || !(channel->space_avail_event = CreateEvent (&sec_attrs, FALSE, FALSE, NULL)) + || !(channel->data_avail_noticed_event = CreateEvent (&sec_attrs, FALSE, FALSE, NULL))) + { + gchar *msg = g_win32_error_message (GetLastError ()); + g_error ("Error creating event: %s", msg); + } +} + +static unsigned __stdcall +read_thread (void *parameter) +{ + GIOWin32Channel *channel = parameter; + guchar *buffer; + guint nbytes; + + g_io_channel_ref ((GIOChannel *)channel); + + if (channel->debug) + g_print ("read_thread %#x: start fd:%d, data_avail:%#x, space_avail:%#x\n", + channel->thread_id, + channel->fd, + (guint) channel->data_avail_event, + (guint) channel->space_avail_event); + + channel->buffer = g_malloc (BUFFER_SIZE); + channel->rdp = channel->wrp = 0; + channel->running = TRUE; + + SetEvent (channel->space_avail_event); + + while (channel->running) + { + LOCK (channel->mutex); + if (channel->debug) + g_print ("read_thread %#x: rdp=%d, wrp=%d\n", + channel->thread_id, channel->rdp, channel->wrp); + if ((channel->wrp + 1) % BUFFER_SIZE == channel->rdp) + { + /* Buffer is full */ + if (channel->debug) + g_print ("read_thread %#x: resetting space_avail\n", + channel->thread_id); + ResetEvent (channel->space_avail_event); + if (channel->debug) + g_print ("read_thread %#x: waiting for space\n", + channel->thread_id); + UNLOCK (channel->mutex); + WaitForSingleObject (channel->space_avail_event, INFINITE); + LOCK (channel->mutex); + if (channel->debug) + g_print ("read_thread %#x: rdp=%d, wrp=%d\n", + channel->thread_id, channel->rdp, channel->wrp); + } + + buffer = channel->buffer + channel->wrp; + + /* Always leave at least one byte unused gap to be able to + * distinguish between the full and empty condition... + */ + nbytes = MIN ((channel->rdp + BUFFER_SIZE - channel->wrp - 1) % BUFFER_SIZE, + BUFFER_SIZE - channel->wrp); + + if (channel->debug) + g_print ("read_thread %#x: calling read() for %d bytes\n", + channel->thread_id, nbytes); + + UNLOCK (channel->mutex); + + nbytes = read (channel->fd, buffer, nbytes); + + LOCK (channel->mutex); + + channel->revents = G_IO_IN; + if (nbytes == 0) + channel->revents |= G_IO_HUP; + else if (nbytes < 0) + channel->revents |= G_IO_ERR; + + if (channel->debug) + g_print ("read_thread %#x: read() returned %d, rdp=%d, wrp=%d\n", + channel->thread_id, nbytes, channel->rdp, channel->wrp); + + if (nbytes <= 0) + break; + + channel->wrp = (channel->wrp + nbytes) % BUFFER_SIZE; + if (channel->debug) + g_print ("read_thread %#x: rdp=%d, wrp=%d, setting data_avail\n", + channel->thread_id, channel->rdp, channel->wrp); + SetEvent (channel->data_avail_event); + UNLOCK (channel->mutex); + } + + channel->running = FALSE; + if (channel->needs_close) + { + if (channel->debug) + g_print ("read_thread %#x: channel fd %d needs closing\n", + channel->thread_id, channel->fd); + close (channel->fd); + channel->fd = -1; + } + + if (channel->debug) + g_print ("read_thread %#x: EOF, rdp=%d, wrp=%d, setting data_avail\n", + channel->thread_id, channel->rdp, channel->wrp); + SetEvent (channel->data_avail_event); + UNLOCK (channel->mutex); + + g_io_channel_unref((GIOChannel *)channel); + + /* No need to call _endthreadex(), the actual thread starter routine + * in MSVCRT (see crt/src/threadex.c:_threadstartex) calls + * _endthreadex() for us. + */ + + CloseHandle (channel->thread_handle); + + return 0; +} + +static void +create_thread (GIOWin32Channel *channel, + GIOCondition condition, + unsigned (__stdcall *thread) (void *parameter)) +{ + channel->thread_handle = + (HANDLE) _beginthreadex (NULL, 0, thread, channel, 0, + &channel->thread_id); + if (channel->thread_handle == 0) + g_warning (G_STRLOC ": Error creating reader thread: %s", + strerror (errno)); + WaitForSingleObject (channel->space_avail_event, INFINITE); +} + +static GIOStatus +buffer_read (GIOWin32Channel *channel, + guchar *dest, + gsize count, + gsize *bytes_read, + GError **err) +{ + guint nbytes; + guint left = count; + + LOCK (channel->mutex); + if (channel->debug) + g_print ("reading from thread %#x %d bytes, rdp=%d, wrp=%d\n", + channel->thread_id, count, channel->rdp, channel->wrp); + + if (channel->wrp == channel->rdp) + { + UNLOCK (channel->mutex); + if (channel->debug) + g_print ("waiting for data from thread %#x\n", channel->thread_id); + WaitForSingleObject (channel->data_avail_event, INFINITE); + if (channel->debug) + g_print ("done waiting for data from thread %#x\n", channel->thread_id); + LOCK (channel->mutex); + if (channel->wrp == channel->rdp && !channel->running) + { + UNLOCK (channel->mutex); + *bytes_read = 0; + return G_IO_STATUS_NORMAL; /* as before, normal case ? */ + } + } + + if (channel->rdp < channel->wrp) + nbytes = channel->wrp - channel->rdp; + else + nbytes = BUFFER_SIZE - channel->rdp; + UNLOCK (channel->mutex); + nbytes = MIN (left, nbytes); + if (channel->debug) + g_print ("moving %d bytes from thread %#x\n", + nbytes, channel->thread_id); + memcpy (dest, channel->buffer + channel->rdp, nbytes); + dest += nbytes; + left -= nbytes; + LOCK (channel->mutex); + channel->rdp = (channel->rdp + nbytes) % BUFFER_SIZE; + if (channel->debug) + g_print ("setting space_avail for thread %#x\n", channel->thread_id); + SetEvent (channel->space_avail_event); + if (channel->debug) + g_print ("for thread %#x: rdp=%d, wrp=%d\n", + channel->thread_id, channel->rdp, channel->wrp); + if (channel->running && channel->wrp == channel->rdp) + { + if (channel->debug) + g_print ("resetting data_avail of thread %#x\n", + channel->thread_id); + ResetEvent (channel->data_avail_event); + }; + UNLOCK (channel->mutex); + + /* We have no way to indicate any errors form the actual + * read() or recv() call in the reader thread. Should we have? + */ + *bytes_read = count - left; + return (*bytes_read > 0) ? G_IO_STATUS_NORMAL : G_IO_STATUS_EOF; +} + +static unsigned __stdcall +select_thread (void *parameter) +{ + GIOWin32Channel *channel = parameter; + fd_set read_fds, write_fds, except_fds; + GSList *tmp; + int n; + + g_io_channel_ref ((GIOChannel *)channel); + + if (channel->debug) + g_print ("select_thread %#x: start fd:%d,\n\tdata_avail:%#x, data_avail_noticed:%#x\n", + channel->thread_id, + channel->fd, + (guint) channel->data_avail_event, + (guint) channel->data_avail_noticed_event); + + channel->rdp = channel->wrp = 0; + channel->running = TRUE; + + SetEvent (channel->space_avail_event); + + while (channel->running) + { + FD_ZERO (&read_fds); + FD_ZERO (&write_fds); + FD_ZERO (&except_fds); + + tmp = channel->watches; + while (tmp) + { + GIOWin32Watch *watch = (GIOWin32Watch *)tmp->data; + + if (watch->condition & (G_IO_IN | G_IO_HUP)) + FD_SET (channel->fd, &read_fds); + if (watch->condition & G_IO_OUT) + FD_SET (channel->fd, &write_fds); + if (watch->condition & G_IO_ERR) + FD_SET (channel->fd, &except_fds); + + tmp = tmp->next; + } + if (channel->debug) + g_print ("select_thread %#x: calling select() for%s%s%s\n", + channel->thread_id, + (FD_ISSET (channel->fd, &read_fds) ? " IN" : ""), + (FD_ISSET (channel->fd, &write_fds) ? " OUT" : ""), + (FD_ISSET (channel->fd, &except_fds) ? " ERR" : "")); + + n = select (1, &read_fds, &write_fds, &except_fds, NULL); + + if (n == SOCKET_ERROR) + { + if (channel->debug) + g_print ("select_thread %#x: select returned SOCKET_ERROR\n", + channel->thread_id); + break; + } + + if (channel->debug) + g_print ("select_thread %#x: got%s%s%s\n", + channel->thread_id, + (FD_ISSET (channel->fd, &read_fds) ? " IN" : ""), + (FD_ISSET (channel->fd, &write_fds) ? " OUT" : ""), + (FD_ISSET (channel->fd, &except_fds) ? " ERR" : "")); + + if (FD_ISSET (channel->fd, &read_fds)) + channel->revents |= G_IO_IN; + if (FD_ISSET (channel->fd, &write_fds)) + channel->revents |= G_IO_OUT; + if (FD_ISSET (channel->fd, &except_fds)) + channel->revents |= G_IO_ERR; + + if (channel->debug) + g_print ("select_thread %#x: resetting data_avail_noticed,\n" + "\tsetting data_avail\n", + channel->thread_id); + ResetEvent (channel->data_avail_noticed_event); + SetEvent (channel->data_avail_event); + + LOCK (channel->mutex); + if (channel->needs_close) + { + UNLOCK (channel->mutex); + break; + } + UNLOCK (channel->mutex); + + if (channel->debug) + g_print ("select_thread %#x: waiting for data_avail_noticed\n", + channel->thread_id); + + WaitForSingleObject (channel->data_avail_noticed_event, INFINITE); + if (channel->debug) + g_print ("select_thread %#x: got data_avail_noticed\n", + channel->thread_id); + } + + channel->running = FALSE; + LOCK (channel->mutex); + if (channel->fd != -1) + { + /* DO NOT close the fd here */ + channel->fd = -1; + } + + if (channel->debug) + g_print ("select_thread %#x: got error, setting data_avail\n", + channel->thread_id); + SetEvent (channel->data_avail_event); + UNLOCK (channel->mutex); + + g_io_channel_unref((GIOChannel *)channel); + + /* No need to call _endthreadex(), the actual thread starter routine + * in MSVCRT (see crt/src/threadex.c:_threadstartex) calls + * _endthreadex() for us. + */ + + CloseHandle (channel->thread_handle); + + return 0; +} + +static gboolean +g_io_win32_prepare (GSource *source, + gint *timeout) +{ + GIOWin32Watch *watch = (GIOWin32Watch *)source; + GIOWin32Channel *channel = (GIOWin32Channel *)watch->channel; + + *timeout = -1; + + if (channel->type == G_IO_WIN32_FILE_DESC) + { + LOCK (channel->mutex); + if (channel->running && channel->wrp == channel->rdp) + channel->revents = 0; + UNLOCK (channel->mutex); + } + else if (channel->type == G_IO_WIN32_SOCKET) + { + channel->revents = 0; + + if (channel->debug) + g_print ("g_io_win32_prepare: thread %#x, setting data_avail_noticed\n", + channel->thread_id); + SetEvent (channel->data_avail_noticed_event); + if (channel->debug) + g_print ("g_io_win32_prepare: thread %#x, there.\n", + channel->thread_id); + } + + return FALSE; + /* XXX: why should we want to do this ? */ + watch->condition = g_io_channel_get_buffer_condition (watch->channel); + + return (watch->pollfd.revents & (G_IO_IN | G_IO_OUT)) == watch->condition; +} + +static gboolean +g_io_win32_check (GSource *source) +{ + MSG msg; + GIOWin32Watch *watch = (GIOWin32Watch *)source; + GIOWin32Channel *channel = (GIOWin32Channel *)watch->channel; + GIOCondition buffer_condition = g_io_channel_get_buffer_condition (watch->channel); + + + if (channel->debug) + g_print ("g_io_win32_check: for thread %#x:\n" + "\twatch->pollfd.events:%#x, watch->pollfd.revents:%#x, channel->revents:%#x\n", + channel->thread_id, + watch->pollfd.events, watch->pollfd.revents, channel->revents); + + if (channel->type != G_IO_WIN32_WINDOWS_MESSAGES) + { + watch->pollfd.revents = (watch->pollfd.events & channel->revents); + } + else + { + return (PeekMessage (&msg, channel->hwnd, 0, 0, PM_NOREMOVE)); + } + + if (channel->type == G_IO_WIN32_SOCKET) + { + if (channel->debug) + g_print ("g_io_win32_check: thread %#x, resetting data_avail\n", + channel->thread_id); + ResetEvent (channel->data_avail_event); + if (channel->debug) + g_print ("g_io_win32_check: thread %#x, there.\n", + channel->thread_id); + } + + return (watch->pollfd.revents & watch->condition); +} + +static gboolean +g_io_win32_dispatch (GSource *source, + GSourceFunc callback, + gpointer user_data) +{ + GIOFunc func = (GIOFunc)callback; + GIOWin32Watch *watch = (GIOWin32Watch *)source; + + if (!func) + { + g_warning (G_STRLOC ": GIOWin32Watch dispatched without callback\n" + "You must call g_source_connect()."); + return FALSE; + } + + return (*func) (watch->channel, + watch->pollfd.revents & watch->condition, + user_data); +} + +static void +g_io_win32_finalize (GSource *source) +{ + GIOWin32Watch *watch = (GIOWin32Watch *)source; + GIOWin32Channel *channel = (GIOWin32Channel *)watch->channel; + + if (channel->debug) + g_print ("g_io_win32_finalize: channel with thread %#x\n", + channel->thread_id); + + channel->watches = g_slist_remove (channel->watches, watch); + + SetEvent (channel->data_avail_noticed_event); + g_io_channel_unref (watch->channel); +} + +#if defined(G_PLATFORM_WIN32) && defined(__GNUC__) +__declspec(dllexport) +#endif +GSourceFuncs g_io_watch_funcs = { + g_io_win32_prepare, + g_io_win32_check, + g_io_win32_dispatch, + g_io_win32_finalize +}; + +static GSource * +g_io_win32_create_watch (GIOChannel *channel, + GIOCondition condition, + unsigned (__stdcall *thread) (void *parameter)) +{ + GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; + GIOWin32Watch *watch; + GSource *source; + + source = g_source_new (&g_io_watch_funcs, sizeof (GIOWin32Watch)); + watch = (GIOWin32Watch *)source; + + watch->channel = channel; + g_io_channel_ref (channel); + + watch->condition = condition; + + if (win32_channel->data_avail_event == NULL) + create_events (win32_channel); + + watch->pollfd.fd = (gint) win32_channel->data_avail_event; + watch->pollfd.events = condition; + + if (win32_channel->debug) + g_print ("g_io_win32_create_watch: fd:%d condition:%#x handle:%#x\n", + win32_channel->fd, condition, watch->pollfd.fd); + + win32_channel->watches = g_slist_append (win32_channel->watches, watch); + + if (win32_channel->thread_id == 0) + create_thread (win32_channel, condition, thread); + + g_source_add_poll (source, &watch->pollfd); + + return source; +} + +static GIOStatus +g_io_win32_msg_read (GIOChannel *channel, + gchar *buf, + gsize count, + gsize *bytes_read, + GError **err) +{ + GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; + MSG msg; /* In case of alignment problems */ + + if (count < sizeof (MSG)) + { + g_set_error(err, G_IO_CHANNEL_ERROR, G_IO_CHANNEL_ERROR_INVAL, + _("Incorrect message size")); /* Correct error message? FIXME */ + return G_IO_STATUS_ERROR; + } + + if (win32_channel->debug) + g_print ("g_io_win32_msg_read: for %#x\n", + win32_channel->hwnd); + if (!PeekMessage (&msg, win32_channel->hwnd, 0, 0, PM_REMOVE)) + return G_IO_STATUS_AGAIN; + + memmove (buf, &msg, sizeof (MSG)); + *bytes_read = sizeof (MSG); + + return (*bytes_read > 0) ? G_IO_STATUS_NORMAL : G_IO_STATUS_EOF; +} + +static GIOStatus +g_io_win32_msg_write (GIOChannel *channel, + const gchar *buf, + gsize count, + gsize *bytes_written, + GError **err) +{ + GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; + MSG msg; + + if (count != sizeof (MSG)) + { + g_set_error(err, G_IO_CHANNEL_ERROR, G_IO_CHANNEL_ERROR_INVAL, + _("Incorrect message size")); /* Correct error message? FIXME */ + return G_IO_STATUS_ERROR; + } + + /* In case of alignment problems */ + memmove (&msg, buf, sizeof (MSG)); + if (!PostMessage (win32_channel->hwnd, msg.message, msg.wParam, msg.lParam)) + { + g_set_error(err, G_IO_CHANNEL_ERROR, G_IO_CHANNEL_ERROR_FAILED, + _("Unknown error")); /* Correct error message? FIXME */ + return G_IO_STATUS_ERROR; + } + + *bytes_written = sizeof (MSG); + + return G_IO_STATUS_NORMAL; +} + +static GIOStatus +g_io_win32_no_seek (GIOChannel *channel, + glong offset, + GSeekType type, + GError **err) +{ + g_assert_not_reached (); + + return G_IO_STATUS_ERROR; +} + +static GIOStatus +g_io_win32_msg_close (GIOChannel *channel, + GError **err) +{ + /* Nothing to be done. Or should we set hwnd to some invalid value? */ + + return G_IO_STATUS_NORMAL; +} + +static void +g_io_win32_free (GIOChannel *channel) +{ + GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; + + if (win32_channel->debug) + g_print ("thread %#x: freeing channel, fd: %d\n", + win32_channel->thread_id, + win32_channel->fd); + + if (win32_channel->data_avail_event) + CloseHandle (win32_channel->data_avail_event); + if (win32_channel->space_avail_event) + CloseHandle (win32_channel->space_avail_event); + if (win32_channel->data_avail_noticed_event) + CloseHandle (win32_channel->data_avail_noticed_event); + DeleteCriticalSection (&win32_channel->mutex); + + g_free (win32_channel->buffer); + g_slist_free (win32_channel->watches); + g_free (win32_channel); +} + +static GSource * +g_io_win32_msg_create_watch (GIOChannel *channel, + GIOCondition condition) +{ + GIOWin32Watch *watch; + GSource *source; + + source = g_source_new (&g_io_watch_funcs, sizeof (GIOWin32Watch)); + watch = (GIOWin32Watch *)source; + + watch->channel = channel; + g_io_channel_ref (channel); + + watch->condition = condition; + + watch->pollfd.fd = G_WIN32_MSG_HANDLE; + watch->pollfd.events = condition; + + g_source_add_poll (source, &watch->pollfd); + + return source; +} + +static GIOStatus +g_io_win32_fd_read (GIOChannel *channel, + gchar *buf, + gsize count, + gsize *bytes_read, + GError **err) +{ + GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; + gint result; + + if (win32_channel->debug) + g_print ("g_io_win32_fd_read: fd:%d count:%d\n", + win32_channel->fd, count); + + if (win32_channel->thread_id) + { + return buffer_read (win32_channel, buf, count, bytes_read, err); + } + + result = read (win32_channel->fd, buf, count); + + if (result < 0) + { + *bytes_read = 0; + + switch(errno) + { +#ifdef EAGAIN + case EAGAIN: + return G_IO_STATUS_AGAIN; +#endif + default: + g_set_error (err, G_IO_CHANNEL_ERROR, + g_io_channel_error_from_errno (errno), + strerror (errno)); + return G_IO_STATUS_ERROR; + } + } + + *bytes_read = result; + + return G_IO_STATUS_NORMAL; /* XXX: 0 byte read an error ?? */ + return (result > 0) ? G_IO_STATUS_NORMAL : G_IO_STATUS_EOF; +} + +static GIOStatus +g_io_win32_fd_write (GIOChannel *channel, + const gchar *buf, + gsize count, + gsize *bytes_written, + GError **err) +{ + GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; + gint result; + + result = write (win32_channel->fd, buf, count); + if (win32_channel->debug) + g_print ("g_io_win32_fd_write: fd:%d count:%d = %d\n", + win32_channel->fd, count, result); + + if (result < 0) + { + *bytes_written = 0; + + switch(errno) + { +#ifdef EAGAIN + case EAGAIN: + return G_IO_STATUS_AGAIN; +#endif + default: + g_set_error (err, G_IO_CHANNEL_ERROR, + g_io_channel_error_from_errno (errno), + strerror (errno)); + return G_IO_STATUS_ERROR; + } + } + + *bytes_written = result; + + return G_IO_STATUS_NORMAL; +} + +static GIOStatus +g_io_win32_fd_seek (GIOChannel *channel, + glong offset, + GSeekType type, + GError **err) +{ + GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; + int whence; + off_t result; + + switch (type) + { + case G_SEEK_SET: + whence = SEEK_SET; + break; + case G_SEEK_CUR: + whence = SEEK_CUR; + break; + case G_SEEK_END: + whence = SEEK_END; + break; + default: + whence = -1; /* Keep the compiler quiet */ + g_assert_not_reached(); + } + + result = lseek (win32_channel->fd, offset, whence); + + if (result < 0) + { + g_set_error (err, G_IO_CHANNEL_ERROR, + g_io_channel_error_from_errno (errno), + strerror (errno)); + return G_IO_STATUS_ERROR; + } + + return G_IO_STATUS_NORMAL; +} + +static GIOStatus +g_io_win32_fd_close (GIOChannel *channel, + GError **err) +{ + GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; + + if (win32_channel->debug) + g_print ("thread %#x: closing fd %d\n", + win32_channel->thread_id, + win32_channel->fd); + LOCK (win32_channel->mutex); + if (win32_channel->running) + { + if (win32_channel->debug) + g_print ("thread %#x: running, marking fd %d for later close\n", + win32_channel->thread_id, win32_channel->fd); + win32_channel->running = FALSE; + win32_channel->needs_close = TRUE; + SetEvent (win32_channel->data_avail_event); + } + else + { + if (win32_channel->debug) + g_print ("closing fd %d\n", win32_channel->fd); + close (win32_channel->fd); + if (win32_channel->debug) + g_print ("closed fd %d, setting to -1\n", + win32_channel->fd); + win32_channel->fd = -1; + } + UNLOCK (win32_channel->mutex); + + /* FIXME error detection? */ + + return G_IO_STATUS_NORMAL; +} + +static GSource * +g_io_win32_fd_create_watch (GIOChannel *channel, + GIOCondition condition) +{ + return g_io_win32_create_watch (channel, condition, read_thread); +} + +static GIOStatus +g_io_win32_sock_read (GIOChannel *channel, + gchar *buf, + gsize count, + gsize *bytes_read, + GError **err) +{ + GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; + gint result; + GIOChannelError error; + + if (win32_channel->debug) + g_print ("g_io_win32_sock_read: sockfd:%d count:%d\n", + win32_channel->fd, count); +#ifdef WE_NEED_TO_HANDLE_WSAEINTR /* not anymore with wsock2 ? */ +repeat: +#endif + result = recv (win32_channel->fd, buf, count, 0); + + if (win32_channel->debug) + g_print ("g_io_win32_sock_read: recv:%d\n", result); + + if (result == SOCKET_ERROR) + { + *bytes_read = 0; + + switch (WSAGetLastError ()) + { + case WSAEINVAL: + error = G_IO_CHANNEL_ERROR_INVAL; + break; + case WSAEWOULDBLOCK: + return G_IO_STATUS_AGAIN; +#ifdef WE_NEED_TO_HANDLE_WSAEINTR /* not anymore with wsock2 ? */ + case WSAEINTR: + goto repeat; +#endif + default: + error = G_IO_CHANNEL_ERROR_FAILED; + break; + } + g_set_error(err, G_IO_CHANNEL_ERROR, error, _("Socket error")); + return G_IO_STATUS_ERROR; + /* FIXME get all errors, better error messages */ + } + else + { + *bytes_read = result; + + return G_IO_STATUS_NORMAL; /* XXX: 0 byte read an error ?? */ + return (result > 0) ? G_IO_STATUS_NORMAL : G_IO_STATUS_EOF; + } +} + +static GIOStatus +g_io_win32_sock_write (GIOChannel *channel, + const gchar *buf, + gsize count, + gsize *bytes_written, + GError **err) +{ + GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; + gint result; + GIOChannelError error; + + if (win32_channel->debug) + g_print ("g_io_win32_sock_write: sockfd:%d count:%d\n", + win32_channel->fd, count); +#ifdef WE_NEED_TO_HANDLE_WSAEINTR /* not anymore with wsock2 ? */ +repeat: +#endif + result = send (win32_channel->fd, buf, count, 0); + + if (win32_channel->debug) + g_print ("g_io_win32_sock_write: send:%d\n", result); + + if (result == SOCKET_ERROR) + { + *bytes_written = 0; + + switch (WSAGetLastError ()) + { + case WSAEINVAL: + error = G_IO_CHANNEL_ERROR_INVAL; + break; + case WSAEWOULDBLOCK: + return G_IO_STATUS_AGAIN; +#ifdef WE_NEED_TO_HANDLE_WSAEINTR /* not anymore with wsock2 ? */ + case WSAEINTR: + goto repeat; +#endif + default: + error = G_IO_CHANNEL_ERROR_FAILED; + break; + } + g_set_error(err, G_IO_CHANNEL_ERROR, error, _("Socket error")); + return G_IO_STATUS_ERROR; + /* FIXME get all errors, better error messages */ + } + else + { + *bytes_written = result; + + return G_IO_STATUS_NORMAL; + } +} + +static GIOStatus +g_io_win32_sock_close (GIOChannel *channel, + GError **err) +{ + GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; + + LOCK(win32_channel->mutex); + if (win32_channel->running) + { + if (win32_channel->debug) + g_print ("thread %#x: running, marking for later close\n", + win32_channel->thread_id); + win32_channel->running = FALSE; + win32_channel->needs_close = TRUE; + SetEvent(win32_channel->data_avail_noticed_event); + } + if (win32_channel->fd != -1) + { + if (win32_channel->debug) + g_print ("thread %#x: closing socket %d\n", + win32_channel->thread_id, + win32_channel->fd); + + closesocket (win32_channel->fd); + win32_channel->fd = -1; + } + UNLOCK(win32_channel->mutex); + + /* FIXME error detection? */ + + return G_IO_STATUS_NORMAL; +} + +static GSource * +g_io_win32_sock_create_watch (GIOChannel *channel, + GIOCondition condition) +{ + return g_io_win32_create_watch (channel, condition, select_thread); +} + +GIOChannel * +g_io_channel_new_file (const gchar *filename, + const gchar *mode, + GError **error) +{ + int fid, flags, pmode; + GIOChannel *channel; + + enum { /* Cheesy hack */ + MODE_R = 1 << 0, + MODE_W = 1 << 1, + MODE_A = 1 << 2, + MODE_PLUS = 1 << 3, + } mode_num; + + g_return_val_if_fail (filename != NULL, NULL); + g_return_val_if_fail (mode != NULL, NULL); + g_return_val_if_fail ((error == NULL) || (*error == NULL), NULL); + + switch (mode[0]) + { + case 'r': + mode_num = MODE_R; + break; + case 'w': + mode_num = MODE_W; + break; + case 'a': + mode_num = MODE_A; + break; + default: + g_warning (G_STRLOC ": Invalid GIOFileMode %s.\n", mode); + return NULL; + } + + switch (mode[1]) + { + case '\0': + break; + case '+': + if (mode[2] == '\0') + { + mode_num |= MODE_PLUS; + break; + } + /* Fall through */ + default: + g_warning (G_STRLOC ": Invalid GIOFileMode %s.\n", mode); + return NULL; + } + + switch (mode_num) + { + case MODE_R: + flags = O_RDONLY; + pmode = _S_IREAD; + break; + case MODE_W: + flags = O_WRONLY | O_TRUNC | O_CREAT; + pmode = _S_IWRITE; + break; + case MODE_A: + flags = O_WRONLY | O_APPEND | O_CREAT; + pmode = _S_IWRITE; + break; + case MODE_R | MODE_PLUS: + flags = O_RDWR; + pmode = _S_IREAD | _S_IWRITE; + break; + case MODE_W | MODE_PLUS: + flags = O_RDWR | O_TRUNC | O_CREAT; + pmode = _S_IREAD | _S_IWRITE; + break; + case MODE_A | MODE_PLUS: + flags = O_RDWR | O_APPEND | O_CREAT; + pmode = _S_IREAD | _S_IWRITE; + break; + default: + g_assert_not_reached (); + flags = 0; + pmode = 0; + } + + + /* always open 'untranslated' */ + fid = open (filename, flags | _O_BINARY, pmode); + if (fid < 0) + { + g_set_error (error, G_FILE_ERROR, + g_file_error_from_errno (errno), + strerror (errno)); + return (GIOChannel *)NULL; + } + + channel = g_io_channel_win32_new_fd (fid); + + /* XXX: move this to g_io_channel_win32_new_fd () */ + channel->close_on_unref = TRUE; + channel->is_seekable = TRUE; + + switch (mode_num) + { + case MODE_R: + channel->is_readable = TRUE; + channel->is_writeable = FALSE; + break; + case MODE_W: + case MODE_A: + channel->is_readable = FALSE; + channel->is_writeable = TRUE; + break; + case MODE_R | MODE_PLUS: + case MODE_W | MODE_PLUS: + case MODE_A | MODE_PLUS: + channel->is_readable = TRUE; + channel->is_writeable = TRUE; + break; + default: + g_assert_not_reached (); + } + + if (((GIOWin32Channel *)channel)->debug) + g_print ("g_io_channel_win32_new_file: fd = %ud\n", fid); + + return channel; +} + +GIOStatus +g_io_win32_set_flags (GIOChannel *channel, + GIOFlags flags, + GError **err) +{ + GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; + + g_set_error (err, + G_IO_CHANNEL_ERROR, + g_file_error_from_errno (EACCES), + _("Channel set flags unsupported")); + return G_IO_STATUS_ERROR; +} + +GIOFlags +g_io_win32_fd_get_flags (GIOChannel *channel) +{ + GIOFlags flags = 0; + struct _stat st; + GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; + + g_return_val_if_fail (win32_channel != NULL, 0); + g_return_val_if_fail (win32_channel->type == G_IO_WIN32_FILE_DESC, 0); + + if (0 == _fstat (win32_channel->fd, &st)) + { + /* XXX: G_IO_FLAG_APPEND */ + /* XXX: G_IO_FLAG_NONBLOCK */ + if (st.st_mode & _S_IREAD) flags |= G_IO_FLAG_IS_READABLE; + if (st.st_mode & _S_IWRITE) flags |= G_IO_FLAG_IS_WRITEABLE; + /* XXX: */ + if (!(st.st_mode & _S_IFIFO)) flags |= G_IO_FLAG_IS_SEEKABLE; + } + + return flags; +} + +/* + * Generic implementation, just translating createion flags + */ +GIOFlags +g_io_win32_get_flags (GIOChannel *channel) +{ + GIOFlags flags; + + flags = (channel->is_readable ? G_IO_FLAG_IS_READABLE : 0) + | (channel->is_writeable ? G_IO_FLAG_IS_READABLE : 0) + | (channel->is_seekable ? G_IO_FLAG_IS_SEEKABLE : 0); + + return flags; +} + +static GIOFuncs win32_channel_msg_funcs = { + g_io_win32_msg_read, + g_io_win32_msg_write, + g_io_win32_no_seek, + g_io_win32_msg_close, + g_io_win32_msg_create_watch, + g_io_win32_free, + g_io_win32_set_flags, + g_io_win32_get_flags, +}; + +static GIOFuncs win32_channel_fd_funcs = { + g_io_win32_fd_read, + g_io_win32_fd_write, + g_io_win32_fd_seek, + g_io_win32_fd_close, + g_io_win32_fd_create_watch, + g_io_win32_free, + g_io_win32_set_flags, + g_io_win32_fd_get_flags, +}; + +static GIOFuncs win32_channel_sock_funcs = { + g_io_win32_sock_read, + g_io_win32_sock_write, + g_io_win32_no_seek, + g_io_win32_sock_close, + g_io_win32_sock_create_watch, + g_io_win32_free, + g_io_win32_set_flags, + g_io_win32_get_flags, +}; + +GIOChannel * +g_io_channel_win32_new_messages (guint hwnd) +{ + GIOWin32Channel *win32_channel = g_new (GIOWin32Channel, 1); + GIOChannel *channel = (GIOChannel *)win32_channel; + + g_io_channel_init (channel); + g_io_channel_win32_init (win32_channel); + if (win32_channel->debug) + g_print ("g_io_channel_win32_new_messages: hwnd = %ud\n", hwnd); + channel->funcs = &win32_channel_msg_funcs; + win32_channel->type = G_IO_WIN32_WINDOWS_MESSAGES; + win32_channel->hwnd = (HWND) hwnd; + + /* XXX: check this. */ + channel->is_readable = IsWindow (win32_channel->hwnd); + channel->is_writeable = IsWindow (win32_channel->hwnd); + + channel->is_seekable = FALSE; + + return channel; +} + +GIOChannel * +g_io_channel_win32_new_fd (gint fd) +{ + GIOWin32Channel *win32_channel; + GIOChannel *channel; + struct stat st; + + if (fstat (fd, &st) == -1) + { + g_warning (G_STRLOC ": %d isn't a (emulated) file descriptor", fd); + return NULL; + } + + win32_channel = g_new (GIOWin32Channel, 1); + channel = (GIOChannel *)win32_channel; + + g_io_channel_init (channel); + g_io_channel_win32_init (win32_channel); + if (win32_channel->debug) + g_print ("g_io_channel_win32_new_fd: fd = %d\n", fd); + channel->funcs = &win32_channel_fd_funcs; + win32_channel->type = G_IO_WIN32_FILE_DESC; + win32_channel->fd = fd; + + + /* fstat doesn't deliver senseful values, but + * fcntl isn't available, so guess ... + */ + if (st.st_mode & _S_IFIFO) + { + channel->is_readable = TRUE; + channel->is_writeable = TRUE; + channel->is_seekable = FALSE; + } + else + { + channel->is_readable = !!(st.st_mode & _S_IREAD); + channel->is_writeable = !!(st.st_mode & _S_IWRITE); + /* XXX: pipes aren't seeakable, are they ? */ + channel->is_seekable = !(st.st_mode & _S_IFIFO); + } + + return channel; +} + +gint +g_io_channel_win32_get_fd (GIOChannel *channel) +{ + GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; + + return win32_channel->fd; +} + +GIOChannel * +g_io_channel_win32_new_socket (int socket) +{ + GIOWin32Channel *win32_channel = g_new (GIOWin32Channel, 1); + GIOChannel *channel = (GIOChannel *)win32_channel; + + g_io_channel_init (channel); + g_io_channel_win32_init (win32_channel); + if (win32_channel->debug) + g_print ("g_io_channel_win32_new_socket: sockfd:%d\n", socket); + channel->funcs = &win32_channel_sock_funcs; + win32_channel->type = G_IO_WIN32_SOCKET; + win32_channel->fd = socket; + + /* XXX: check this */ + channel->is_readable = TRUE; + channel->is_writeable = TRUE; + channel->is_seekable = FALSE; + + return channel; +} + +GIOChannel * +g_io_channel_unix_new (gint fd) +{ + struct stat st; + + if (fstat (fd, &st) == 0) + return g_io_channel_win32_new_fd (fd); + + if (getsockopt (fd, SOL_SOCKET, SO_TYPE, NULL, NULL) != SO_ERROR) + return g_io_channel_win32_new_socket(fd); + + g_warning (G_STRLOC ": %d is neither a file descriptor or a socket", fd); + return NULL; +} + +gint +g_io_channel_unix_get_fd (GIOChannel *channel) +{ + return g_io_channel_win32_get_fd (channel); +} + +void +g_io_channel_win32_set_debug (GIOChannel *channel, + gboolean flag) +{ + GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; + + win32_channel->debug = flag; +} + +gint +g_io_channel_win32_poll (GPollFD *fds, + gint n_fds, + gint timeout) +{ + int result; + + g_return_val_if_fail (n_fds >= 0, 0); + + result = (*g_main_context_get_poll_func (NULL)) (fds, n_fds, timeout); + + return result; +} + +void +g_io_channel_win32_make_pollfd (GIOChannel *channel, + GIOCondition condition, + GPollFD *fd) +{ + GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel; + + if (win32_channel->data_avail_event == NULL) + create_events (win32_channel); + + fd->fd = (gint) win32_channel->data_avail_event; + fd->events = condition; + + if (win32_channel->thread_id == 0) + if ((condition & G_IO_IN) && win32_channel->type == G_IO_WIN32_FILE_DESC) + create_thread (win32_channel, condition, read_thread); + else if (win32_channel->type == G_IO_WIN32_SOCKET) + create_thread (win32_channel, condition, select_thread); +} + +/* Binary compatibility */ +GIOChannel * +g_io_channel_win32_new_stream_socket (int socket) +{ + return g_io_channel_win32_new_socket (socket); +} diff --git a/graf2d/win32gdk/gdk/src/glib/glib-object.h b/graf2d/win32gdk/gdk/src/glib/glib-object.h index b4392431b74..aefdd2f8045 100644 --- a/graf2d/win32gdk/gdk/src/glib/glib-object.h +++ b/graf2d/win32gdk/gdk/src/glib/glib-object.h @@ -21,16 +21,17 @@ /* topmost include file for GObject header files */ #include <gobject/gboxed.h> -#include <gobject/gbsearcharray.h> #include <gobject/genums.h> #include <gobject/gobject.h> #include <gobject/gparam.h> #include <gobject/gparamspecs.h> #include <gobject/gsignal.h> +#include <gobject/gsourceclosure.h> #include <gobject/gtype.h> #include <gobject/gtypemodule.h> #include <gobject/gtypeplugin.h> #include <gobject/gvalue.h> +#include <gobject/gvaluearray.h> #include <gobject/gvaluetypes.h> diff --git a/graf2d/win32gdk/gdk/src/glib/glib.def b/graf2d/win32gdk/gdk/src/glib/glib.def new file mode 100644 index 00000000000..c24f57e222a --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/glib.def @@ -0,0 +1,703 @@ +EXPORTS + g_allocator_free + g_allocator_new + g_array_append_vals + g_array_free + g_array_insert_vals + g_array_new + g_array_prepend_vals + g_array_remove_index + g_array_remove_index_fast + g_array_set_size + g_array_sized_new + g_array_sort + g_array_sort_with_data + g_ascii_digit_value + g_ascii_strcasecmp + g_ascii_strncasecmp + g_ascii_strdown + g_ascii_strup + g_ascii_table + g_ascii_tolower + g_ascii_toupper + g_ascii_xdigit_value + g_async_queue_length + g_async_queue_length_unlocked + g_async_queue_lock + g_async_queue_new + g_async_queue_pop + g_async_queue_pop_unlocked + g_async_queue_push + g_async_queue_push_unlocked + g_async_queue_ref + g_async_queue_ref_unlocked + g_async_queue_timed_pop + g_async_queue_timed_pop_unlocked + g_async_queue_try_pop + g_async_queue_try_pop_unlocked + g_async_queue_unlock + g_async_queue_unref + g_async_queue_unref_and_unlock + g_atexit + g_basename + g_bit_nth_lsf + g_bit_nth_msf + g_bit_storage + g_blow_chunks + g_bsearch_array_destroy + g_bsearch_array_get_index + g_bsearch_array_get_nth + g_bsearch_array_new + g_bsearch_array_insert + g_bsearch_array_lookup + g_bsearch_array_remove + g_bsearch_array_remove_node + g_build_filename + g_build_path + g_byte_array_append + g_byte_array_free + g_byte_array_new + g_byte_array_prepend + g_byte_array_remove_index + g_byte_array_remove_index_fast + g_byte_array_set_size + g_byte_array_sized_new + g_byte_array_sort + g_byte_array_sort_with_data + g_cache_destroy + g_cache_insert + g_cache_key_foreach + g_cache_new + g_cache_remove + g_cache_value_foreach + g_clear_error + g_completion_add_items + g_completion_clear_items + g_completion_complete + g_completion_free + g_completion_new + g_completion_remove_items + g_convert + g_convert_error_quark + g_convert_with_fallback + g_datalist_clear + g_datalist_foreach + g_datalist_id_get_data + g_datalist_id_remove_no_notify + g_datalist_id_set_data_full + g_datalist_init + g_dataset_destroy + g_dataset_foreach + g_dataset_id_get_data + g_dataset_id_remove_no_notify + g_dataset_id_set_data_full + g_date_add_days + g_date_add_months + g_date_add_years + g_date_clear + g_date_compare + g_date_free + g_date_get_day + g_date_get_day_of_year + g_date_get_days_in_month + g_date_get_julian + g_date_get_monday_week_of_year + g_date_get_monday_weeks_in_year + g_date_get_month + g_date_get_sunday_week_of_year + g_date_get_sunday_weeks_in_year + g_date_get_weekday + g_date_get_year + g_date_is_first_of_month + g_date_is_last_of_month + g_date_is_leap_year + g_date_new + g_date_new_dmy + g_date_new_julian + g_date_set_day + g_date_set_dmy + g_date_set_julian + g_date_set_month + g_date_set_parse + g_date_set_time + g_date_set_year + g_date_strftime + g_date_subtract_days + g_date_subtract_months + g_date_subtract_years + g_date_to_struct_tm + g_date_valid + g_date_valid_day + g_date_valid_dmy + g_date_valid_julian + g_date_valid_month + g_date_valid_weekday + g_date_valid_year + g_direct_equal + g_direct_hash + g_error_copy + g_error_free + g_error_matches + g_error_new + g_error_new_literal + g_file_error_from_errno + g_file_error_quark + g_file_get_contents + g_file_open_tmp + g_file_test + g_filename_from_uri + g_filename_from_utf8 + g_filename_to_uri + g_filename_to_utf8 + g_find_program_in_path + g_free + g_get_charset + g_get_codeset + g_get_current_dir + g_get_current_time + g_get_home_dir + g_get_prgname + g_get_real_name + g_get_tmp_dir + g_get_user_name + g_getenv + g_hash_table_destroy + g_hash_table_foreach + g_hash_table_foreach_remove + g_hash_table_insert + g_hash_table_lookup + g_hash_table_lookup_extended + g_hash_table_new + g_hash_table_new_full + g_hash_table_remove + g_hash_table_size + g_hook_alloc + g_hook_compare_ids + g_hook_destroy + g_hook_destroy_link + g_hook_find + g_hook_find_data + g_hook_find_func + g_hook_find_func_data + g_hook_first_valid + g_hook_free + g_hook_get + g_hook_insert_before + g_hook_insert_sorted + g_hook_list_clear + g_hook_list_init + g_hook_list_invoke + g_hook_list_invoke_check + g_hook_list_marshal + g_hook_list_marshal_check + g_hook_next_valid + g_hook_prepend + g_hook_ref + g_hook_unref + g_iconv + g_iconv_close + g_iconv_open + g_idle_add + g_idle_add_full + g_idle_funcs + g_idle_remove_by_data + g_idle_source_new + g_int_equal + g_int_hash + g_io_add_watch + g_io_add_watch_full + g_io_channel_close + g_io_channel_error_from_errno + g_io_channel_error_quark + g_io_channel_flush + g_io_channel_get_buffer_condition + g_io_channel_get_buffer_size + g_io_channel_get_buffered + g_io_channel_get_close_on_unref + g_io_channel_get_encoding + g_io_channel_get_flags + g_io_channel_get_line_term + g_io_channel_init + g_io_channel_new_file + g_io_channel_read + g_io_channel_read_chars + g_io_channel_read_line + g_io_channel_read_line_string + g_io_channel_read_to_end + g_io_channel_read_unichar + g_io_channel_ref + g_io_channel_seek + g_io_channel_seek_position + g_io_channel_set_buffer_size + g_io_channel_set_buffered + g_io_channel_set_close_on_unref + g_io_channel_set_encoding + g_io_channel_set_flags + g_io_channel_set_line_term + g_io_channel_unix_get_fd + g_io_channel_unix_new + g_io_channel_unref + g_io_channel_win32_get_fd + g_io_channel_win32_make_pollfd + g_io_channel_win32_new_fd + g_io_channel_win32_new_messages + g_io_channel_win32_new_socket + g_io_channel_win32_new_stream_socket + g_io_channel_win32_poll + g_io_channel_win32_set_debug + g_io_channel_write + g_io_channel_write_chars + g_io_channel_write_unichar + g_io_create_watch + g_io_watch_funcs + g_list_alloc + g_list_append + g_list_concat + g_list_copy + g_list_delete_link + g_list_find + g_list_find_custom + g_list_first + g_list_foreach + g_list_free + g_list_free_1 + g_list_index + g_list_insert + g_list_insert_before + g_list_insert_sorted + g_list_last + g_list_length + g_list_nth + g_list_nth_data + g_list_position + g_list_prepend + g_list_remove + g_list_remove_all + g_list_remove_link + g_list_reverse + g_list_sort + g_list_sort_with_data + g_locale_from_utf8 + g_locale_to_utf8 + g_log + g_log_default_handler + g_log_domain_glib + g_log_remove_handler + g_log_set_always_fatal + g_log_set_fatal_mask + g_log_set_handler + g_logv + g_main_context_add_poll + g_main_context_check + g_main_context_default + g_main_context_dispatch + g_main_context_find_source_by_funcs_user_data + g_main_context_find_source_by_id + g_main_context_find_source_by_user_data + g_main_context_new + g_main_context_get_poll_func + g_main_context_iteration + g_main_context_pending + g_main_context_prepare + g_main_context_query + g_main_context_remove_poll + g_main_context_set_poll_func + g_main_loop_is_running + g_main_loop_new + g_main_loop_quit + g_main_loop_ref + g_main_loop_run + g_main_loop_unref + g_malloc + g_malloc0 + g_markup_error_quark + g_markup_escape_text + g_markup_parse_context_end_parse + g_markup_parse_context_free + g_markup_parse_context_get_position + g_markup_parse_context_new + g_markup_parse_context_parse + g_mem_chunk_alloc + g_mem_chunk_alloc0 + g_mem_chunk_clean + g_mem_chunk_destroy + g_mem_chunk_free + g_mem_chunk_info + g_mem_chunk_new + g_mem_chunk_print + g_mem_chunk_reset + g_mem_init + g_mem_profile + g_mem_set_vtable + g_memdup + g_messages_init + g_mkstemp + g_mutex_init + g_node_child_index + g_node_child_position + g_node_children_foreach + g_node_copy + g_node_depth + g_node_destroy + g_node_find + g_node_find_child + g_node_first_sibling + g_node_get_root + g_node_insert + g_node_insert_after + g_node_insert_before + g_node_is_ancestor + g_node_last_child + g_node_last_sibling + g_node_max_height + g_node_n_children + g_node_n_nodes + g_node_new + g_node_nth_child + g_node_prepend + g_node_reverse_children + g_node_traverse + g_node_unlink + g_nullify_pointer + g_on_error_query + g_on_error_stack_trace + g_parse_debug_string + g_path_get_basename + g_path_get_dirname + g_path_is_absolute + g_path_skip_root + g_pattern_match + g_pattern_match_string + g_pattern_spec_free + g_pattern_spec_new + g_print + g_printerr + g_printf_string_upper_bound + g_propagate_error + g_ptr_array_add + g_ptr_array_free + g_ptr_array_new + g_ptr_array_remove + g_ptr_array_remove_fast + g_ptr_array_remove_index + g_ptr_array_remove_index_fast + g_ptr_array_set_size + g_ptr_array_sized_new + g_ptr_array_sort + g_ptr_array_sort_with_data + g_qsort_with_data + g_quark_from_static_string + g_quark_from_string + g_quark_to_string + g_quark_try_string + g_queue_free + g_queue_is_empty + g_queue_new + g_queue_peek_head + g_queue_peek_tail + g_queue_pop_head + g_queue_pop_head_link + g_queue_pop_tail + g_queue_pop_tail_link + g_queue_push_head + g_queue_push_head_link + g_queue_push_tail + g_queue_push_tail_link + g_rand_double + g_rand_double_range + g_rand_free + g_rand_int + g_rand_int_range + g_rand_new + g_rand_new_with_seed + g_rand_set_seed + g_random_double + g_random_double_range + g_random_int + g_random_int_range + g_random_set_seed + g_realloc + g_relation_count + g_relation_delete + g_relation_destroy + g_relation_exists + g_relation_index + g_relation_insert + g_relation_new + g_relation_print + g_relation_select + g_scanner_cur_line + g_scanner_cur_position + g_scanner_cur_token + g_scanner_cur_value + g_scanner_destroy + g_scanner_eof + g_scanner_error + g_scanner_get_next_token + g_scanner_input_file + g_scanner_input_text + g_scanner_lookup_symbol + g_scanner_new + g_scanner_peek_next_token + g_scanner_scope_add_symbol + g_scanner_scope_foreach_symbol + g_scanner_scope_lookup_symbol + g_scanner_scope_remove_symbol + g_scanner_set_scope + g_scanner_sync_file_offset + g_scanner_unexp_token + g_scanner_warn + g_set_error + g_set_prgname + g_set_print_handler + g_set_printerr_handler + g_shell_error_quark + g_shell_parse_argv + g_shell_quote + g_shell_unquote + g_slist_alloc + g_slist_append + g_slist_concat + g_slist_copy + g_slist_delete_link + g_slist_find + g_slist_find_custom + g_slist_foreach + g_slist_free + g_slist_free_1 + g_slist_index + g_slist_insert + g_slist_insert_before + g_slist_insert_sorted + g_slist_last + g_slist_length + g_slist_nth + g_slist_nth_data + g_slist_position + g_slist_prepend + g_slist_remove + g_slist_remove_all + g_slist_remove_link + g_slist_reverse + g_slist_sort + g_slist_sort_with_data + g_snprintf + g_source_add_poll + g_source_attach + g_source_destroy + g_source_get_can_recurse + g_source_get_context + g_source_get_current_time + g_source_get_id + g_source_get_priority + g_source_new + g_source_ref + g_source_remove + g_source_remove_by_funcs_user_data + g_source_remove_by_user_data + g_source_set_callback + g_source_set_callback_indirect + g_source_set_can_recurse + g_source_set_priority + g_source_unref + g_spaced_primes_closest + g_spawn_async + g_spawn_async_with_pipes + g_spawn_command_line_async + g_spawn_command_line_sync + g_spawn_error_quark + g_spawn_sync + g_static_mutex_get_mutex_impl + g_static_private_free + g_static_private_get + g_static_private_init + g_static_private_set + g_static_rec_mutex_free + g_static_rec_mutex_init + g_static_rec_mutex_lock + g_static_rec_mutex_trylock + g_static_rec_mutex_unlock + g_static_rw_lock_free + g_static_rw_lock_init + g_static_rw_lock_reader_lock + g_static_rw_lock_reader_trylock + g_static_rw_lock_reader_unlock + g_static_rw_lock_writer_lock + g_static_rw_lock_writer_trylock + g_static_rw_lock_writer_unlock + g_stpcpy + g_str_equal + g_str_hash + g_strcanon + g_strcasecmp + g_strchomp + g_strchug + g_strcompress + g_strconcat + g_strdelimit + g_strdown + g_strdup + g_strdup_printf + g_strdup_vprintf + g_strdupv + g_strerror + g_strescape + g_strfreev + g_string_append + g_string_append_c + g_string_append_len + g_string_append_unichar + g_string_ascii_down + g_string_assign + g_string_chunk_free + g_string_chunk_insert + g_string_chunk_insert_const + g_string_chunk_new + g_string_down + g_string_equal + g_string_erase + g_string_free + g_string_insert + g_string_insert_c + g_string_insert_len + g_string_insert_unichar + g_string_new + g_string_new_len + g_string_prepend + g_string_prepend_c + g_string_prepend_len + g_string_prepend_unichar + g_string_printf + g_string_printfa + g_string_sized_new + g_string_truncate + g_string_up + g_strjoin + g_strjoinv + g_strlcat + g_strlcpy + g_strncasecmp + g_strndup + g_strnfill + g_strreverse + g_strsignal + g_strsplit + g_strrstr + g_strrstr_len + g_strstr_len + g_strtod + g_strup + g_thread_create_full + g_thread_error_quark + g_thread_functions_for_glib_use + g_thread_join + g_thread_exit + g_thread_pool_free + g_thread_pool_new + g_thread_pool_push + g_thread_self + g_thread_set_priority + g_thread_use_default_impl + g_threads_got_initialized + g_timeout_add + g_timeout_add_full + g_timeout_funcs + g_timeout_source_new + g_timer_destroy + g_timer_elapsed + g_timer_new + g_timer_reset + g_timer_start + g_timer_stop + g_trash_stack_height + g_trash_stack_peek + g_trash_stack_pop + g_trash_stack_push + g_tree_destroy + g_tree_height + g_tree_insert + g_tree_lookup + g_tree_new + g_tree_nnodes + g_tree_remove + g_tree_search + g_tree_traverse + g_try_malloc + g_try_realloc + g_tuples_destroy + g_tuples_index + g_ucs4_to_utf16 + g_ucs4_to_utf8 + g_unichar_break_type + g_unichar_digit_value + g_unichar_isalnum + g_unichar_isalpha + g_unichar_iscntrl + g_unichar_isdefined + g_unichar_isdigit + g_unichar_isgraph + g_unichar_islower + g_unichar_isprint + g_unichar_ispunct + g_unichar_isspace + g_unichar_istitle + g_unichar_isupper + g_unichar_iswide + g_unichar_isxdigit + g_unichar_to_utf8 + g_unichar_tolower + g_unichar_totitle + g_unichar_toupper + g_unichar_type + g_unichar_validate + g_unichar_xdigit_value + g_unicode_canonical_decomposition + g_unicode_canonical_ordering + g_usleep + g_utf16_to_ucs4 + g_utf16_to_utf8 + g_utf8_casefold + g_utf8_collate + g_utf8_collate_key + g_utf8_find_next_char + g_utf8_find_prev_char + g_utf8_get_char + g_utf8_get_char_validated + g_utf8_normalize + g_utf8_offset_to_pointer + g_utf8_pointer_to_offset + g_utf8_prev_char + g_utf8_skip + g_utf8_strchr + g_utf8_strdown + g_utf8_strlen + g_utf8_strncpy + g_utf8_strup + g_utf8_to_ucs4 + g_utf8_to_ucs4_fast + g_utf8_to_utf16 + g_utf8_validate + g_vsnprintf + g_win32_closedir + g_win32_error_message + g_win32_ftruncate + g_win32_get_package_installation_directory + g_win32_get_package_installation_subdirectory + g_win32_getlocale + g_win32_opendir + g_win32_readdir + g_win32_rewinddir + glib_binary_age + glib_interface_age + glib_major_version + glib_mem_profiler_table + glib_micro_version + glib_minor_version + +; compatibility for older win32 apps, which should +; not need an update because of simple function renaming +; and vice versa, i.e.: +; compatibility of Dia 0.87 with tml's latest Gtk+ version (2000-12-26) + g_dirname=g_path_get_dirname + g_string_sprintfa=g_string_printfa + g_string_sprintf=g_string_printf diff --git a/graf2d/win32gdk/gdk/src/glib/glib.h b/graf2d/win32gdk/gdk/src/glib/glib.h index 8b2ee4e769a..0febae39e4e 100644 --- a/graf2d/win32gdk/gdk/src/glib/glib.h +++ b/graf2d/win32gdk/gdk/src/glib/glib.h @@ -27,49 +27,49 @@ #ifndef __G_LIB_H__ #define __G_LIB_H__ -#include <galloca.h> -#include <garray.h> -#include <gasyncqueue.h> -#include <gbacktrace.h> -#include <gcache.h> -#include <gcompat.h> -#include <gcompletion.h> -#include <gconvert.h> -#include <gdataset.h> -#include <gdate.h> -#include <gerror.h> -#include <gfileutils.h> -#include <ghash.h> -#include <ghook.h> -#include <giochannel.h> -#include <glist.h> -#include <gmacros.h> -#include <gmain.h> -#include <gmarkup.h> -#include <gmem.h> -#include <gmessages.h> -#include <gnode.h> -#include <gprimes.h> -#include <gqsort.h> -#include <gquark.h> -#include <gqueue.h> -#include <grand.h> -#include <grel.h> -#include <gscanner.h> -#include <gshell.h> -#include <gslist.h> -#include <gspawn.h> -#include <gstrfuncs.h> -#include <gstring.h> -#include <gthread.h> -#include <gthreadpool.h> -#include <gtimer.h> -#include <gtree.h> -#include <g_types.h> -#include <gunicode.h> -#include <gutils.h> -#ifdef G_OS_WIN32 -#include <gwin32.h> +#include <glib/galloca.h> +#include <glib/garray.h> +#include <glib/gasyncqueue.h> +#include <glib/gbacktrace.h> +#include <glib/gcache.h> +#include <glib/gcompletion.h> +#include <glib/gconvert.h> +#include <glib/gdataset.h> +#include <glib/gdate.h> +#include <glib/gerror.h> +#include <glib/gfileutils.h> +#include <glib/ghash.h> +#include <glib/ghook.h> +#include <glib/giochannel.h> +#include <glib/glist.h> +#include <glib/gmacros.h> +#include <glib/gmain.h> +#include <glib/gmarkup.h> +#include <glib/gmem.h> +#include <glib/gmessages.h> +#include <glib/gnode.h> +#include <glib/gpattern.h> +#include <glib/gprimes.h> +#include <glib/gqsort.h> +#include <glib/gquark.h> +#include <glib/gqueue.h> +#include <glib/grand.h> +#include <glib/grel.h> +#include <glib/gscanner.h> +#include <glib/gshell.h> +#include <glib/gslist.h> +#include <glib/gspawn.h> +#include <glib/gstrfuncs.h> +#include <glib/gstring.h> +#include <glib/gthread.h> +#include <glib/gthreadpool.h> +#include <glib/gtimer.h> +#include <glib/gtree.h> +#include <glib/gtypes.h> +#include <glib/gunicode.h> +#include <glib/gutils.h> +#ifdef G_PLATFORM_WIN32 +#include <glib/gwin32.h> #endif #endif /* __G_LIB_H__ */ diff --git a/graf2d/win32gdk/gdk/src/glib/glib.rc b/graf2d/win32gdk/gdk/src/glib/glib.rc new file mode 100644 index 00000000000..c31875be4c2 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/glib.rc @@ -0,0 +1,30 @@ +#include <winver.h> + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,3,9,BUILDNUMBER + PRODUCTVERSION 1,3,9,0 + FILEFLAGSMASK 0 + FILEFLAGS 0 + FILEOS VOS__WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE VFT2_UNKNOWN + BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "The GLib developer community" + VALUE "FileDescription", "GLib" + VALUE "FileVersion", "1.3.9.BUILDNUMBER" + VALUE "InternalName", "libglib-1.3-9" + VALUE "LegalCopyright", "Copyright � 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald. Modified by the GLib Team and others 1997-2000." + VALUE "OriginalFilename", "libglib-1.3-9.dll" + VALUE "ProductName", "GLib" + VALUE "ProductVersion", "1.3.9" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END + END diff --git a/graf2d/win32gdk/gdk/src/glib/glibconfig-bogus.h b/graf2d/win32gdk/gdk/src/glib/glibconfig-bogus.h new file mode 100644 index 00000000000..b2def861498 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/glibconfig-bogus.h @@ -0,0 +1,202 @@ +/* glibconfig.h.win32 */ +/* Handcrafted for Microsoft C and gcc -mno-cygwin ("mingw32"). */ + +#ifndef __G_LIBCONFIG_H__ +#define __G_LIBCONFIG_H__ + +#include <gmacros.h> + +#ifdef _MSC_VER +/* Make MSVC more pedantic, this is a recommended pragma list + * from _Win32_Programming_ by Rector and Newcomer. + */ + +#pragma warning(error:4002) +#pragma warning(error:4003) +#pragma warning(1:4010) +#pragma warning(error:4013) +#pragma warning(1:4016) +#pragma warning(error:4020) +#pragma warning(error:4021) +#pragma warning(error:4027) +#pragma warning(error:4029) +#pragma warning(error:4033) +#pragma warning(error:4035) +#pragma warning(error:4045) +#pragma warning(error:4047) +#pragma warning(error:4049) +#pragma warning(error:4053) +#pragma warning(error:4071) +#pragma warning(disable:4101) +#pragma warning(error:4150) + +#pragma warning(disable:4244) // No possible loss of data warnings +#pragma warning(disable:4305) // No truncation from int to char warnings + +#endif /* _MSC_VER */ + +#include <limits.h> +#include <float.h> + +#define G_MINFLOAT FLT_MIN +#define G_MAXFLOAT FLT_MAX +#define G_MINDOUBLE DBL_MIN +#define G_MAXDOUBLE DBL_MAX +#define G_MINSHORT SHRT_MIN +#define G_MAXSHORT SHRT_MAX +#define G_MAXUSHORT USHRT_MAX +#define G_MININT INT_MIN +#define G_MAXINT INT_MAX +#define G_MAXUINT UINT_MAX +#define G_MINLONG LONG_MIN +#define G_MAXLONG LONG_MAX +#define G_MAXULONG ULONG_MAX + +G_BEGIN_DECLS + +typedef signed char gint8; +typedef unsigned char guint8; +typedef signed short gint16; +typedef unsigned short guint16; +#define G_GINT16_FORMAT "hi" +#define G_GUINT16_FORMAT "hu" +typedef signed int gint32; +typedef unsigned int guint32; +#define G_GINT32_FORMAT "i" +#define G_GUINT32_FORMAT "u" + +#define G_HAVE_GINT64 1 + +/* These are compiler specific */ +#ifdef _MSC_VER +typedef __int64 gint64; +typedef unsigned __int64 guint64; +#define G_GINT64_CONSTANT(val) (val##i64) +#elif __GNUC__ +typedef long long gint64; +typedef unsigned long long guint64; +#define G_GINT64_CONSTANT(val) (val##LL) +#endif + +/* These depend on the C library. Using this file means the we + * use the (bundled) Microsoft msvcrt.dll. + */ +#define G_GINT64_FORMAT "I64i" +#define G_GUINT64_FORMAT "I64u" + +typedef gint32 gssize; +typedef guint32 gsize; + +#define GPOINTER_TO_INT(p) ((gint)(p)) +#define GPOINTER_TO_UINT(p) ((guint)(p)) + +#define GINT_TO_POINTER(i) ((gpointer)(i)) +#define GUINT_TO_POINTER(u) ((gpointer)(u)) + +#define g_ATEXIT(proc) (atexit (proc)) + +#define g_memmove(d,s,n) G_STMT_START { memmove ((d), (s), (n)); } G_STMT_END + +#define GLIB_MAJOR_VERSION 1 +#define GLIB_MINOR_VERSION 3 +#define GLIB_MICRO_VERSION 2 + +#define G_OS_WIN32 + +#ifdef __cplusplus +#define G_HAVE_INLINE 1 +#else /* !__cplusplus */ +#define G_HAVE___INLINE 1 +#endif + +#define G_THREADS_ENABLED +/* + * The following program can be used to determine the magic values below: + * #include <stdio.h> + * #include <pthread.h> + * main(int argc, char **argv) + * { + * int i; + * pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER; + * printf ("sizeof (pthread_mutex_t) = %d\n", sizeof (pthread_mutex_t)); + * printf ("sizeof (pthread_t) = %d\n", sizeof (pthread_t)); + * printf ("PTHREAD_MUTEX_INITIALIZER = "); + * for (i = 0; i < sizeof (pthread_mutex_t); i++) + * printf ("%u, ", ((unsigned char *) &m)[i]); + * printf ("\n"); + * exit(0); + * } + */ + +#define G_THREADS_IMPL_POSIX +typedef struct _GStaticMutex GStaticMutex; +struct _GStaticMutex +{ + struct _GMutex *runtime_mutex; + union { + /* The size of the pad array should be sizeof (pthread_mutex_t) */ + /* This value corresponds to the 1999-05-30 version of pthreads-win32 */ + char pad[4]; + double dummy_double; + void *dummy_pointer; + long dummy_long; + } aligned_pad_u; +}; +/* This should be NULL followed by the bytes in PTHREAD_MUTEX_INITIALIZER */ +#define G_STATIC_MUTEX_INIT { NULL, { { 255, 255, 255, 255 } } } +#define g_static_mutex_get_mutex(mutex) \ + (g_thread_use_default_impl ? ((GMutex*) &((mutex)->aligned_pad_u)) : \ + g_static_mutex_get_mutex_impl (&((mutex)->runtime_mutex))) +/* This represents a system thread as used by the implementation. An + * alien implementaion, as loaded by g_thread_init can only count on + * "sizeof (gpointer)" bytes to store their info. We however need more + * for some of our native implementations. */ +typedef union _GSystemThread GSystemThread; +union _GSystemThread +{ + /* The size of the data array should be sizeof (pthread_t) */ + /* This value corresponds to the 1999-05-30 version of pthreads-win32 */ + char data[4]; + double dummy_double; + void *dummy_pointer; + long dummy_long; +}; + +#define GINT16_TO_LE(val) ((gint16) (val)) +#define GUINT16_TO_LE(val) ((guint16) (val)) +#define GINT16_TO_BE(val) ((gint16) GUINT16_SWAP_LE_BE (val)) +#define GUINT16_TO_BE(val) (GUINT16_SWAP_LE_BE (val)) + +#define GINT32_TO_LE(val) ((gint32) (val)) +#define GUINT32_TO_LE(val) ((guint32) (val)) +#define GINT32_TO_BE(val) ((gint32) GUINT32_SWAP_LE_BE (val)) +#define GUINT32_TO_BE(val) (GUINT32_SWAP_LE_BE (val)) + +#define GINT64_TO_LE(val) ((gint64) (val)) +#define GUINT64_TO_LE(val) ((guint64) (val)) +#define GINT64_TO_BE(val) ((gint64) GUINT64_SWAP_LE_BE (val)) +#define GUINT64_TO_BE(val) (GUINT64_SWAP_LE_BE (val)) + +#define GLONG_TO_LE(val) ((glong) GINT32_TO_LE (val)) +#define GULONG_TO_LE(val) ((gulong) GUINT32_TO_LE (val)) +#define GLONG_TO_BE(val) ((glong) GINT32_TO_BE (val)) +#define GULONG_TO_BE(val) ((gulong) GUINT32_TO_BE (val)) + +#define GINT_TO_LE(val) ((gint) GINT32_TO_LE (val)) +#define GUINT_TO_LE(val) ((guint) GUINT32_TO_LE (val)) +#define GINT_TO_BE(val) ((gint) GINT32_TO_BE (val)) +#define GUINT_TO_BE(val) ((guint) GUINT32_TO_BE (val)) +#define G_BYTE_ORDER G_LITTLE_ENDIAN + +#define GLIB_SYSDEF_POLLIN = 1 +#define GLIB_SYSDEF_POLLOUT = 4 +#define GLIB_SYSDEF_POLLPRI = 2 +#define GLIB_SYSDEF_POLLERR = 8 +#define GLIB_SYSDEF_POLLHUP = 16 +#define GLIB_SYSDEF_POLLNVAL = 32 + +#define G_MODULE_SUFFIX "dll" + +G_END_DECLS + +#endif /* __G_LIBCONFIG_H__ */ diff --git a/graf2d/win32gdk/gdk/src/glib/glibconfig.h b/graf2d/win32gdk/gdk/src/glib/glibconfig.h index b2def861498..e2e23be589a 100644 --- a/graf2d/win32gdk/gdk/src/glib/glibconfig.h +++ b/graf2d/win32gdk/gdk/src/glib/glibconfig.h @@ -1,43 +1,19 @@ -/* glibconfig.h.win32 */ -/* Handcrafted for Microsoft C and gcc -mno-cygwin ("mingw32"). */ +/* glibconfig.h.win32.in Merged from two versions generated by configure for gcc and MSVC. */ +/* glibconfig.h + * + * This is a generated file. Please modify 'configure.in' + */ #ifndef __G_LIBCONFIG_H__ #define __G_LIBCONFIG_H__ -#include <gmacros.h> - -#ifdef _MSC_VER -/* Make MSVC more pedantic, this is a recommended pragma list - * from _Win32_Programming_ by Rector and Newcomer. - */ - -#pragma warning(error:4002) -#pragma warning(error:4003) -#pragma warning(1:4010) -#pragma warning(error:4013) -#pragma warning(1:4016) -#pragma warning(error:4020) -#pragma warning(error:4021) -#pragma warning(error:4027) -#pragma warning(error:4029) -#pragma warning(error:4033) -#pragma warning(error:4035) -#pragma warning(error:4045) -#pragma warning(error:4047) -#pragma warning(error:4049) -#pragma warning(error:4053) -#pragma warning(error:4071) -#pragma warning(disable:4101) -#pragma warning(error:4150) - -#pragma warning(disable:4244) // No possible loss of data warnings -#pragma warning(disable:4305) // No truncation from int to char warnings - -#endif /* _MSC_VER */ +#include <glib/gmacros.h> #include <limits.h> #include <float.h> +G_BEGIN_DECLS + #define G_MINFLOAT FLT_MIN #define G_MAXFLOAT FLT_MAX #define G_MINDOUBLE DBL_MIN @@ -52,7 +28,9 @@ #define G_MAXLONG LONG_MAX #define G_MAXULONG ULONG_MAX -G_BEGIN_DECLS +#define G_MININT64 ((gint64) 0x8000000000000000) +#define G_MAXINT64 ((gint64) 0x7fffffffffffffff) +#define G_MAXUINT64 ((guint64) 0xffffffffffffffff) typedef signed char gint8; typedef unsigned char guint8; @@ -64,89 +42,84 @@ typedef signed int gint32; typedef unsigned int guint32; #define G_GINT32_FORMAT "i" #define G_GUINT32_FORMAT "u" +#define G_HAVE_GINT64 1 /* deprecated, always true */ -#define G_HAVE_GINT64 1 - -/* These are compiler specific */ -#ifdef _MSC_VER -typedef __int64 gint64; +#ifndef _MSC_VER +G_GNUC_EXTENSION typedef signed long long gint64; +G_GNUC_EXTENSION typedef unsigned long long guint64; +#else /* _MSC_VER */ +typedef signed __int64 gint64; typedef unsigned __int64 guint64; -#define G_GINT64_CONSTANT(val) (val##i64) -#elif __GNUC__ -typedef long long gint64; -typedef unsigned long long guint64; -#define G_GINT64_CONSTANT(val) (val##LL) -#endif +#endif /* _MSC_VER */ -/* These depend on the C library. Using this file means the we - * use the (bundled) Microsoft msvcrt.dll. - */ +#ifndef _MSC_VER +#define G_GINT64_CONSTANT(val) (G_GNUC_EXTENSION (val##LL)) +#else /* _MSC_VER */ +#define G_GINT64_CONSTANT(val) (val##i64) +#endif /* _MSC_VER */ #define G_GINT64_FORMAT "I64i" #define G_GUINT64_FORMAT "I64u" -typedef gint32 gssize; +#define GLIB_SIZEOF_VOID_P 4 +#define GLIB_SIZEOF_LONG 4 +#define GLIB_SIZEOF_SIZE_T 4 + +typedef gint32 gssize; typedef guint32 gsize; -#define GPOINTER_TO_INT(p) ((gint)(p)) -#define GPOINTER_TO_UINT(p) ((guint)(p)) +#define GPOINTER_TO_INT(p) ((gint) (p)) +#define GPOINTER_TO_UINT(p) ((guint) (p)) -#define GINT_TO_POINTER(i) ((gpointer)(i)) -#define GUINT_TO_POINTER(u) ((gpointer)(u)) +#define GINT_TO_POINTER(i) ((gpointer) (i)) +#define GUINT_TO_POINTER(u) ((gpointer) (u)) -#define g_ATEXIT(proc) (atexit (proc)) +#ifdef NeXT /* @#%@! NeXTStep */ +# define g_ATEXIT(proc) (!atexit (proc)) +#else +# define g_ATEXIT(proc) (atexit (proc)) +#endif +#define G_NATIVE_ATEXIT #define g_memmove(d,s,n) G_STMT_START { memmove ((d), (s), (n)); } G_STMT_END #define GLIB_MAJOR_VERSION 1 #define GLIB_MINOR_VERSION 3 -#define GLIB_MICRO_VERSION 2 +#define GLIB_MICRO_VERSION 15 #define G_OS_WIN32 +#define G_PLATFORM_WIN32 + + #ifdef __cplusplus #define G_HAVE_INLINE 1 #else /* !__cplusplus */ +#ifndef _MSC_VER +#define G_HAVE_INLINE 1 +#else /* _MSC_VER */ + +#endif /* _MSC_VER */ #define G_HAVE___INLINE 1 +#ifndef _MSC_VER +#define G_HAVE___INLINE__ 1 +#endif /* not _MSC_VER */ +#endif /* !__cplusplus */ + +#ifndef _MSC_VER +#ifndef __cplusplus +# define G_HAVE_ISO_VARARGS 1 #endif -#define G_THREADS_ENABLED -/* - * The following program can be used to determine the magic values below: - * #include <stdio.h> - * #include <pthread.h> - * main(int argc, char **argv) - * { - * int i; - * pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER; - * printf ("sizeof (pthread_mutex_t) = %d\n", sizeof (pthread_mutex_t)); - * printf ("sizeof (pthread_t) = %d\n", sizeof (pthread_t)); - * printf ("PTHREAD_MUTEX_INITIALIZER = "); - * for (i = 0; i < sizeof (pthread_mutex_t); i++) - * printf ("%u, ", ((unsigned char *) &m)[i]); - * printf ("\n"); - * exit(0); - * } - */ +#define G_HAVE_GNUC_VARARGS 1 +#endif /* not _MSC_VER */ +#define G_HAVE_GROWING_STACK 0 -#define G_THREADS_IMPL_POSIX -typedef struct _GStaticMutex GStaticMutex; -struct _GStaticMutex -{ - struct _GMutex *runtime_mutex; - union { - /* The size of the pad array should be sizeof (pthread_mutex_t) */ - /* This value corresponds to the 1999-05-30 version of pthreads-win32 */ - char pad[4]; - double dummy_double; - void *dummy_pointer; - long dummy_long; - } aligned_pad_u; -}; -/* This should be NULL followed by the bytes in PTHREAD_MUTEX_INITIALIZER */ -#define G_STATIC_MUTEX_INIT { NULL, { { 255, 255, 255, 255 } } } -#define g_static_mutex_get_mutex(mutex) \ - (g_thread_use_default_impl ? ((GMutex*) &((mutex)->aligned_pad_u)) : \ - g_static_mutex_get_mutex_impl (&((mutex)->runtime_mutex))) + +#define G_THREADS_ENABLED +#define G_THREADS_IMPL_WIN32 +typedef struct _GMutex* GStaticMutex; +#define G_STATIC_MUTEX_INIT NULL +#define g_static_mutex_get_mutex(mutex) (g_static_mutex_get_mutex_impl (mutex)) /* This represents a system thread as used by the implementation. An * alien implementaion, as loaded by g_thread_init can only count on * "sizeof (gpointer)" bytes to store their info. We however need more @@ -154,8 +127,6 @@ struct _GStaticMutex typedef union _GSystemThread GSystemThread; union _GSystemThread { - /* The size of the data array should be sizeof (pthread_t) */ - /* This value corresponds to the 1999-05-30 version of pthreads-win32 */ char data[4]; double dummy_double; void *dummy_pointer; @@ -166,37 +137,33 @@ union _GSystemThread #define GUINT16_TO_LE(val) ((guint16) (val)) #define GINT16_TO_BE(val) ((gint16) GUINT16_SWAP_LE_BE (val)) #define GUINT16_TO_BE(val) (GUINT16_SWAP_LE_BE (val)) - #define GINT32_TO_LE(val) ((gint32) (val)) #define GUINT32_TO_LE(val) ((guint32) (val)) #define GINT32_TO_BE(val) ((gint32) GUINT32_SWAP_LE_BE (val)) #define GUINT32_TO_BE(val) (GUINT32_SWAP_LE_BE (val)) - #define GINT64_TO_LE(val) ((gint64) (val)) #define GUINT64_TO_LE(val) ((guint64) (val)) #define GINT64_TO_BE(val) ((gint64) GUINT64_SWAP_LE_BE (val)) #define GUINT64_TO_BE(val) (GUINT64_SWAP_LE_BE (val)) - #define GLONG_TO_LE(val) ((glong) GINT32_TO_LE (val)) #define GULONG_TO_LE(val) ((gulong) GUINT32_TO_LE (val)) #define GLONG_TO_BE(val) ((glong) GINT32_TO_BE (val)) #define GULONG_TO_BE(val) ((gulong) GUINT32_TO_BE (val)) - #define GINT_TO_LE(val) ((gint) GINT32_TO_LE (val)) #define GUINT_TO_LE(val) ((guint) GUINT32_TO_LE (val)) #define GINT_TO_BE(val) ((gint) GINT32_TO_BE (val)) #define GUINT_TO_BE(val) ((guint) GUINT32_TO_BE (val)) #define G_BYTE_ORDER G_LITTLE_ENDIAN -#define GLIB_SYSDEF_POLLIN = 1 -#define GLIB_SYSDEF_POLLOUT = 4 -#define GLIB_SYSDEF_POLLPRI = 2 -#define GLIB_SYSDEF_POLLERR = 8 -#define GLIB_SYSDEF_POLLHUP = 16 -#define GLIB_SYSDEF_POLLNVAL = 32 +#define GLIB_SYSDEF_POLLIN =1 +#define GLIB_SYSDEF_POLLOUT =4 +#define GLIB_SYSDEF_POLLPRI =2 +#define GLIB_SYSDEF_POLLERR =8 +#define GLIB_SYSDEF_POLLHUP =16 +#define GLIB_SYSDEF_POLLNVAL =32 #define G_MODULE_SUFFIX "dll" G_END_DECLS -#endif /* __G_LIBCONFIG_H__ */ +#endif /* GLIBCONFIG_H */ diff --git a/graf2d/win32gdk/gdk/src/glib/glibconfig.h.win32 b/graf2d/win32gdk/gdk/src/glib/glibconfig.h.win32 new file mode 100644 index 00000000000..e2e23be589a --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/glibconfig.h.win32 @@ -0,0 +1,169 @@ +/* glibconfig.h.win32.in Merged from two versions generated by configure for gcc and MSVC. */ +/* glibconfig.h + * + * This is a generated file. Please modify 'configure.in' + */ + +#ifndef __G_LIBCONFIG_H__ +#define __G_LIBCONFIG_H__ + +#include <glib/gmacros.h> + +#include <limits.h> +#include <float.h> + +G_BEGIN_DECLS + +#define G_MINFLOAT FLT_MIN +#define G_MAXFLOAT FLT_MAX +#define G_MINDOUBLE DBL_MIN +#define G_MAXDOUBLE DBL_MAX +#define G_MINSHORT SHRT_MIN +#define G_MAXSHORT SHRT_MAX +#define G_MAXUSHORT USHRT_MAX +#define G_MININT INT_MIN +#define G_MAXINT INT_MAX +#define G_MAXUINT UINT_MAX +#define G_MINLONG LONG_MIN +#define G_MAXLONG LONG_MAX +#define G_MAXULONG ULONG_MAX + +#define G_MININT64 ((gint64) 0x8000000000000000) +#define G_MAXINT64 ((gint64) 0x7fffffffffffffff) +#define G_MAXUINT64 ((guint64) 0xffffffffffffffff) + +typedef signed char gint8; +typedef unsigned char guint8; +typedef signed short gint16; +typedef unsigned short guint16; +#define G_GINT16_FORMAT "hi" +#define G_GUINT16_FORMAT "hu" +typedef signed int gint32; +typedef unsigned int guint32; +#define G_GINT32_FORMAT "i" +#define G_GUINT32_FORMAT "u" +#define G_HAVE_GINT64 1 /* deprecated, always true */ + +#ifndef _MSC_VER +G_GNUC_EXTENSION typedef signed long long gint64; +G_GNUC_EXTENSION typedef unsigned long long guint64; +#else /* _MSC_VER */ +typedef signed __int64 gint64; +typedef unsigned __int64 guint64; +#endif /* _MSC_VER */ + +#ifndef _MSC_VER +#define G_GINT64_CONSTANT(val) (G_GNUC_EXTENSION (val##LL)) +#else /* _MSC_VER */ +#define G_GINT64_CONSTANT(val) (val##i64) +#endif /* _MSC_VER */ +#define G_GINT64_FORMAT "I64i" +#define G_GUINT64_FORMAT "I64u" + +#define GLIB_SIZEOF_VOID_P 4 +#define GLIB_SIZEOF_LONG 4 +#define GLIB_SIZEOF_SIZE_T 4 + +typedef gint32 gssize; +typedef guint32 gsize; + +#define GPOINTER_TO_INT(p) ((gint) (p)) +#define GPOINTER_TO_UINT(p) ((guint) (p)) + +#define GINT_TO_POINTER(i) ((gpointer) (i)) +#define GUINT_TO_POINTER(u) ((gpointer) (u)) + +#ifdef NeXT /* @#%@! NeXTStep */ +# define g_ATEXIT(proc) (!atexit (proc)) +#else +# define g_ATEXIT(proc) (atexit (proc)) +#endif +#define G_NATIVE_ATEXIT + +#define g_memmove(d,s,n) G_STMT_START { memmove ((d), (s), (n)); } G_STMT_END + +#define GLIB_MAJOR_VERSION 1 +#define GLIB_MINOR_VERSION 3 +#define GLIB_MICRO_VERSION 15 + +#define G_OS_WIN32 +#define G_PLATFORM_WIN32 + + + +#ifdef __cplusplus +#define G_HAVE_INLINE 1 +#else /* !__cplusplus */ +#ifndef _MSC_VER +#define G_HAVE_INLINE 1 +#else /* _MSC_VER */ + +#endif /* _MSC_VER */ +#define G_HAVE___INLINE 1 +#ifndef _MSC_VER +#define G_HAVE___INLINE__ 1 +#endif /* not _MSC_VER */ +#endif /* !__cplusplus */ + +#ifndef _MSC_VER +#ifndef __cplusplus +# define G_HAVE_ISO_VARARGS 1 +#endif + +#define G_HAVE_GNUC_VARARGS 1 +#endif /* not _MSC_VER */ +#define G_HAVE_GROWING_STACK 0 + + +#define G_THREADS_ENABLED +#define G_THREADS_IMPL_WIN32 +typedef struct _GMutex* GStaticMutex; +#define G_STATIC_MUTEX_INIT NULL +#define g_static_mutex_get_mutex(mutex) (g_static_mutex_get_mutex_impl (mutex)) +/* This represents a system thread as used by the implementation. An + * alien implementaion, as loaded by g_thread_init can only count on + * "sizeof (gpointer)" bytes to store their info. We however need more + * for some of our native implementations. */ +typedef union _GSystemThread GSystemThread; +union _GSystemThread +{ + char data[4]; + double dummy_double; + void *dummy_pointer; + long dummy_long; +}; + +#define GINT16_TO_LE(val) ((gint16) (val)) +#define GUINT16_TO_LE(val) ((guint16) (val)) +#define GINT16_TO_BE(val) ((gint16) GUINT16_SWAP_LE_BE (val)) +#define GUINT16_TO_BE(val) (GUINT16_SWAP_LE_BE (val)) +#define GINT32_TO_LE(val) ((gint32) (val)) +#define GUINT32_TO_LE(val) ((guint32) (val)) +#define GINT32_TO_BE(val) ((gint32) GUINT32_SWAP_LE_BE (val)) +#define GUINT32_TO_BE(val) (GUINT32_SWAP_LE_BE (val)) +#define GINT64_TO_LE(val) ((gint64) (val)) +#define GUINT64_TO_LE(val) ((guint64) (val)) +#define GINT64_TO_BE(val) ((gint64) GUINT64_SWAP_LE_BE (val)) +#define GUINT64_TO_BE(val) (GUINT64_SWAP_LE_BE (val)) +#define GLONG_TO_LE(val) ((glong) GINT32_TO_LE (val)) +#define GULONG_TO_LE(val) ((gulong) GUINT32_TO_LE (val)) +#define GLONG_TO_BE(val) ((glong) GINT32_TO_BE (val)) +#define GULONG_TO_BE(val) ((gulong) GUINT32_TO_BE (val)) +#define GINT_TO_LE(val) ((gint) GINT32_TO_LE (val)) +#define GUINT_TO_LE(val) ((guint) GUINT32_TO_LE (val)) +#define GINT_TO_BE(val) ((gint) GINT32_TO_BE (val)) +#define GUINT_TO_BE(val) ((guint) GUINT32_TO_BE (val)) +#define G_BYTE_ORDER G_LITTLE_ENDIAN + +#define GLIB_SYSDEF_POLLIN =1 +#define GLIB_SYSDEF_POLLOUT =4 +#define GLIB_SYSDEF_POLLPRI =2 +#define GLIB_SYSDEF_POLLERR =8 +#define GLIB_SYSDEF_POLLHUP =16 +#define GLIB_SYSDEF_POLLNVAL =32 + +#define G_MODULE_SUFFIX "dll" + +G_END_DECLS + +#endif /* GLIBCONFIG_H */ diff --git a/graf2d/win32gdk/gdk/src/glib/glibintl.h b/graf2d/win32gdk/gdk/src/glib/glibintl.h new file mode 100644 index 00000000000..c7a1b6acce7 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/glibintl.h @@ -0,0 +1,28 @@ +#ifndef __GLIBINTL_H__ +#define __GLIBINTL_H__ + +#include "config.h" + +#ifdef ENABLE_NLS + +gchar *_glib_gettext (const gchar *str); + +#include <libintl.h> +#define _(String) _glib_gettext(String) + +#ifdef gettext_noop +#define N_(String) gettext_noop(String) +#else +#define N_(String) (String) +#endif +#else /* NLS is disabled */ +#define _(String) (String) +#define N_(String) (String) +#define textdomain(String) (String) +#define gettext(String) (String) +#define dgettext(Domain,String) (String) +#define dcgettext(Domain,String,Type) (String) +#define bindtextdomain(Domain,Directory) (Domain) +#endif + +#endif /* __GLIBINTL_H__ */ diff --git a/graf2d/win32gdk/gdk/src/glib/glist.c b/graf2d/win32gdk/gdk/src/glib/glist.c new file mode 100644 index 00000000000..3935cb1b116 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/glist.c @@ -0,0 +1,876 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include "glib.h" + + +#ifndef DISABLE_MEM_POOLS +struct _GAllocator /* from gmem.c */ +{ + gchar *name; + guint16 n_preallocs; + guint is_unused : 1; + guint type : 4; + GAllocator *last; + GMemChunk *mem_chunk; + GList *free_lists; /* implementation specific */ +}; + +static GAllocator *current_allocator = NULL; +G_LOCK_DEFINE_STATIC (current_allocator); + +/* HOLDS: current_allocator_lock */ +static void +g_list_validate_allocator (GAllocator *allocator) +{ + g_return_if_fail (allocator != NULL); + g_return_if_fail (allocator->is_unused == TRUE); + + if (allocator->type != G_ALLOCATOR_LIST) + { + allocator->type = G_ALLOCATOR_LIST; + if (allocator->mem_chunk) + { + g_mem_chunk_destroy (allocator->mem_chunk); + allocator->mem_chunk = NULL; + } + } + + if (!allocator->mem_chunk) + { + allocator->mem_chunk = g_mem_chunk_new (allocator->name, + sizeof (GList), + sizeof (GList) * allocator->n_preallocs, + G_ALLOC_ONLY); + allocator->free_lists = NULL; + } + + allocator->is_unused = FALSE; +} + +void +g_list_push_allocator(GAllocator *allocator) +{ + G_LOCK (current_allocator); + g_list_validate_allocator (allocator); + allocator->last = current_allocator; + current_allocator = allocator; + G_UNLOCK (current_allocator); +} + +void +g_list_pop_allocator (void) +{ + G_LOCK (current_allocator); + if (current_allocator) + { + GAllocator *allocator; + + allocator = current_allocator; + current_allocator = allocator->last; + allocator->last = NULL; + allocator->is_unused = TRUE; + } + G_UNLOCK (current_allocator); +} + +static inline GList* +_g_list_alloc (void) +{ + GList *list; + + G_LOCK (current_allocator); + if (!current_allocator) + { + GAllocator *allocator = g_allocator_new ("GLib default GList allocator", + 128); + g_list_validate_allocator (allocator); + allocator->last = NULL; + current_allocator = allocator; + } + if (!current_allocator->free_lists) + { + list = g_chunk_new (GList, current_allocator->mem_chunk); + list->data = NULL; + } + else + { + if (current_allocator->free_lists->data) + { + list = current_allocator->free_lists->data; + current_allocator->free_lists->data = list->next; + list->data = NULL; + } + else + { + list = current_allocator->free_lists; + current_allocator->free_lists = list->next; + } + } + G_UNLOCK (current_allocator); + list->next = NULL; + list->prev = NULL; + + return list; +} + +GList* +g_list_alloc (void) +{ + return _g_list_alloc (); +} + +void +g_list_free (GList *list) +{ + if (list) + { + GList *last_node = list; + +#ifdef ENABLE_GC_FRIENDLY + while (last_node->next) + { + last_node->data = NULL; + last_node->prev = NULL; + last_node = last_node->next; + } + last_node->data = NULL; + last_node->prev = NULL; +#else /* !ENABLE_GC_FRIENDLY */ + list->data = list->next; +#endif /* ENABLE_GC_FRIENDLY */ + + G_LOCK (current_allocator); + last_node->next = current_allocator->free_lists; + current_allocator->free_lists = list; + G_UNLOCK (current_allocator); + } +} + +static inline void +_g_list_free_1 (GList *list) +{ + if (list) + { + list->data = NULL; + +#ifdef ENABLE_GC_FRIENDLY + list->prev = NULL; +#endif /* ENABLE_GC_FRIENDLY */ + + G_LOCK (current_allocator); + list->next = current_allocator->free_lists; + current_allocator->free_lists = list; + G_UNLOCK (current_allocator); + } +} + +void +g_list_free_1 (GList *list) +{ + _g_list_free_1 (list); +} + +#else /* DISABLE_MEM_POOLS */ + +#define _g_list_alloc g_list_alloc +GList* +g_list_alloc (void) +{ + GList *list; + + list = g_new0 (GList, 1); + + return list; +} + +void +g_list_free (GList *list) +{ + GList *last; + + while (list) + { + last = list; + list = list->next; + g_free (last); + } +} + +#define _g_list_free_1 g_list_free_1 +void +g_list_free_1 (GList *list) +{ + g_free (list); +} + +#endif + +GList* +g_list_append (GList *list, + gpointer data) +{ + GList *new_list; + GList *last; + + new_list = _g_list_alloc (); + new_list->data = data; + + if (list) + { + last = g_list_last (list); + /* g_assert (last != NULL); */ + last->next = new_list; + new_list->prev = last; + + return list; + } + else + return new_list; +} + +GList* +g_list_prepend (GList *list, + gpointer data) +{ + GList *new_list; + + new_list = _g_list_alloc (); + new_list->data = data; + + if (list) + { + if (list->prev) + { + list->prev->next = new_list; + new_list->prev = list->prev; + } + list->prev = new_list; + new_list->next = list; + } + + return new_list; +} + +GList* +g_list_insert (GList *list, + gpointer data, + gint position) +{ + GList *new_list; + GList *tmp_list; + + if (position < 0) + return g_list_append (list, data); + else if (position == 0) + return g_list_prepend (list, data); + + tmp_list = g_list_nth (list, position); + if (!tmp_list) + return g_list_append (list, data); + + new_list = _g_list_alloc (); + new_list->data = data; + + if (tmp_list->prev) + { + tmp_list->prev->next = new_list; + new_list->prev = tmp_list->prev; + } + new_list->next = tmp_list; + tmp_list->prev = new_list; + + if (tmp_list == list) + return new_list; + else + return list; +} + +GList* +g_list_insert_before (GList *list, + GList *sibling, + gpointer data) +{ + if (!list) + { + list = g_list_alloc (); + list->data = data; + g_return_val_if_fail (sibling == NULL, list); + return list; + } + else if (sibling) + { + GList *node; + + node = g_list_alloc (); + node->data = data; + if (sibling->prev) + { + node->prev = sibling->prev; + node->prev->next = node; + node->next = sibling; + sibling->prev = node; + return list; + } + else + { + node->next = sibling; + sibling->prev = node; + g_return_val_if_fail (sibling == list, node); + return node; + } + } + else + { + GList *last; + + last = list; + while (last->next) + last = last->next; + + last->next = g_list_alloc (); + last->next->data = data; + last->next->prev = last; + + return list; + } +} + +GList * +g_list_concat (GList *list1, GList *list2) +{ + GList *tmp_list; + + if (list2) + { + tmp_list = g_list_last (list1); + if (tmp_list) + tmp_list->next = list2; + else + list1 = list2; + list2->prev = tmp_list; + } + + return list1; +} + +GList* +g_list_remove (GList *list, + gconstpointer data) +{ + GList *tmp; + + tmp = list; + while (tmp) + { + if (tmp->data != data) + tmp = tmp->next; + else + { + if (tmp->prev) + tmp->prev->next = tmp->next; + if (tmp->next) + tmp->next->prev = tmp->prev; + + if (list == tmp) + list = list->next; + + _g_list_free_1 (tmp); + + break; + } + } + return list; +} + +GList* +g_list_remove_all (GList *list, + gconstpointer data) +{ + GList *tmp = list; + + while (tmp) + { + if (tmp->data != data) + tmp = tmp->next; + else + { + GList *next = tmp->next; + + if (tmp->prev) + tmp->prev->next = next; + else + list = next; + if (next) + next->prev = tmp->prev; + + _g_list_free_1 (tmp); + tmp = next; + } + } + return list; +} + +static inline GList* +_g_list_remove_link (GList *list, + GList *link) +{ + if (link) + { + if (link->prev) + link->prev->next = link->next; + if (link->next) + link->next->prev = link->prev; + + if (link == list) + list = list->next; + + link->next = NULL; + link->prev = NULL; + } + + return list; +} + +GList* +g_list_remove_link (GList *list, + GList *link) +{ + return _g_list_remove_link (list, link); +} + +GList* +g_list_delete_link (GList *list, + GList *link) +{ + list = _g_list_remove_link (list, link); + _g_list_free_1 (link); + + return list; +} + +GList* +g_list_copy (GList *list) +{ + GList *new_list = NULL; + + if (list) + { + GList *last; + + new_list = _g_list_alloc (); + new_list->data = list->data; + last = new_list; + list = list->next; + while (list) + { + last->next = _g_list_alloc (); + last->next->prev = last; + last = last->next; + last->data = list->data; + list = list->next; + } + } + + return new_list; +} + +GList* +g_list_reverse (GList *list) +{ + GList *last; + + last = NULL; + while (list) + { + last = list; + list = last->next; + last->next = last->prev; + last->prev = list; + } + + return last; +} + +GList* +g_list_nth (GList *list, + guint n) +{ + while ((n-- > 0) && list) + list = list->next; + + return list; +} + +GList* +g_list_nth_prev (GList *list, + guint n) +{ + while ((n-- > 0) && list) + list = list->prev; + + return list; +} + +gpointer +g_list_nth_data (GList *list, + guint n) +{ + while ((n-- > 0) && list) + list = list->next; + + return list ? list->data : NULL; +} + +GList* +g_list_find (GList *list, + gconstpointer data) +{ + while (list) + { + if (list->data == data) + break; + list = list->next; + } + + return list; +} + +GList* +g_list_find_custom (GList *list, + gconstpointer data, + GCompareFunc func) +{ + g_return_val_if_fail (func != NULL, list); + + while (list) + { + if (! func (list->data, data)) + return list; + list = list->next; + } + + return NULL; +} + + +gint +g_list_position (GList *list, + GList *link) +{ + gint i; + + i = 0; + while (list) + { + if (list == link) + return i; + i++; + list = list->next; + } + + return -1; +} + +gint +g_list_index (GList *list, + gconstpointer data) +{ + gint i; + + i = 0; + while (list) + { + if (list->data == data) + return i; + i++; + list = list->next; + } + + return -1; +} + +GList* +g_list_last (GList *list) +{ + if (list) + { + while (list->next) + list = list->next; + } + + return list; +} + +GList* +g_list_first (GList *list) +{ + if (list) + { + while (list->prev) + list = list->prev; + } + + return list; +} + +guint +g_list_length (GList *list) +{ + guint length; + + length = 0; + while (list) + { + length++; + list = list->next; + } + + return length; +} + +void +g_list_foreach (GList *list, + GFunc func, + gpointer user_data) +{ + while (list) + { + GList *next = list->next; + (*func) (list->data, user_data); + list = next; + } +} + + +GList* +g_list_insert_sorted (GList *list, + gpointer data, + GCompareFunc func) +{ + GList *tmp_list = list; + GList *new_list; + gint cmp; + + g_return_val_if_fail (func != NULL, list); + + if (!list) + { + new_list = _g_list_alloc (); + new_list->data = data; + return new_list; + } + + cmp = (*func) (data, tmp_list->data); + + while ((tmp_list->next) && (cmp > 0)) + { + tmp_list = tmp_list->next; + cmp = (*func) (data, tmp_list->data); + } + + new_list = _g_list_alloc (); + new_list->data = data; + + if ((!tmp_list->next) && (cmp > 0)) + { + tmp_list->next = new_list; + new_list->prev = tmp_list; + return list; + } + + if (tmp_list->prev) + { + tmp_list->prev->next = new_list; + new_list->prev = tmp_list->prev; + } + new_list->next = tmp_list; + tmp_list->prev = new_list; + + if (tmp_list == list) + return new_list; + else + return list; +} + +static GList * +g_list_sort_merge (GList *l1, + GList *l2, + GFunc compare_func, + gboolean use_data, + gpointer user_data) +{ + GList list, *l, *lprev; + gint cmp; + + l = &list; + lprev = NULL; + + while (l1 && l2) + { + if (use_data) + cmp = ((GCompareDataFunc) compare_func) (l1->data, l2->data, user_data); + else + cmp = ((GCompareFunc) compare_func) (l1->data, l2->data); + + if (cmp <= 0) + { + l->next = l1; + l = l->next; + l->prev = lprev; + lprev = l; + l1 = l1->next; + } + else + { + l->next = l2; + l = l->next; + l->prev = lprev; + lprev = l; + l2 = l2->next; + } + } + l->next = l1 ? l1 : l2; + l->next->prev = l; + + return list.next; +} + +static GList* +g_list_sort_real (GList *list, + GFunc compare_func, + gboolean use_data, + gpointer user_data) +{ + GList *l1, *l2; + + if (!list) + return NULL; + if (!list->next) + return list; + + l1 = list; + l2 = list->next; + + while ((l2 = l2->next) != NULL) + { + if ((l2 = l2->next) == NULL) + break; + l1 = l1->next; + } + l2 = l1->next; + l1->next = NULL; + + return g_list_sort_merge (g_list_sort_real (list, compare_func, use_data, user_data), + g_list_sort_real (l2, compare_func, use_data, user_data), + compare_func, + use_data, + user_data); +} + +GList * +g_list_sort (GList *list, + GCompareFunc compare_func) +{ + return g_list_sort_real (list, (GFunc) compare_func, FALSE, NULL); + +} + +GList * +g_list_sort_with_data (GList *list, + GCompareDataFunc compare_func, + gpointer user_data) +{ + return g_list_sort_real (list, (GFunc) compare_func, TRUE, user_data); +} + +static GList* +g_list_sort2 (GList *list, + GCompareFunc compare_func) +{ + GSList *runs = NULL; + GList *tmp; + + /* Degenerate case. */ + if (!list) return NULL; + + /* Assume: list = [12,2,4,11,2,4,6,1,1,12]. */ + for (tmp = list; tmp; ) + { + GList *tmp2; + for (tmp2 = tmp; + tmp2->next && compare_func (tmp2->data, tmp2->next->data) <= 0; + tmp2 = tmp2->next) + /* Nothing */; + runs = g_slist_append (runs, tmp); + tmp = tmp2->next; + tmp2->next = NULL; + } + /* Now: runs = [[12],[2,4,11],[2,4,6],[1,1,12]]. */ + + while (runs->next) + { + /* We have more than one run. Merge pairwise. */ + GSList *dst, *src, *dstprev = NULL; + dst = src = runs; + while (src && src->next) + { + dst->data = g_list_sort_merge (src->data, + src->next->data, + (GFunc) compare_func, + FALSE, NULL); + dstprev = dst; + dst = dst->next; + src = src->next->next; + } + + /* If number of runs was odd, just keep the last. */ + if (src) + { + dst->data = src->data; + dstprev = dst; + dst = dst->next; + } + + dstprev->next = NULL; + g_slist_free (dst); + } + + /* After 1st loop: runs = [[2,4,11,12],[1,1,2,4,6,12]]. */ + /* After 2nd loop: runs = [[1,1,2,2,4,4,6,11,12,12]]. */ + + list = runs->data; + g_slist_free (runs); + return list; +} diff --git a/graf2d/win32gdk/gdk/src/glib/glist.h b/graf2d/win32gdk/gdk/src/glib/glist.h index 8f8ae939933..e434d6951c1 100644 --- a/graf2d/win32gdk/gdk/src/glib/glist.h +++ b/graf2d/win32gdk/gdk/src/glib/glist.h @@ -27,7 +27,7 @@ #ifndef __G_LIST_H__ #define __G_LIST_H__ -#include <gmem.h> +#include <glib/gmem.h> G_BEGIN_DECLS @@ -42,7 +42,7 @@ struct _GList /* Doubly linked lists */ -void g_list_push_allocator (GAllocator *allocato); +void g_list_push_allocator (GAllocator *allocator); void g_list_pop_allocator (void); GList* g_list_alloc (void); void g_list_free (GList *list); @@ -57,10 +57,15 @@ GList* g_list_insert (GList *list, GList* g_list_insert_sorted (GList *list, gpointer data, GCompareFunc func); +GList* g_list_insert_before (GList *list, + GList *sibling, + gpointer data); GList* g_list_concat (GList *list1, GList *list2); GList* g_list_remove (GList *list, gconstpointer data); +GList* g_list_remove_all (GList *list, + gconstpointer data); GList* g_list_remove_link (GList *list, GList *llink); GList* g_list_delete_link (GList *list, @@ -69,6 +74,8 @@ GList* g_list_reverse (GList *list); GList* g_list_copy (GList *list); GList* g_list_nth (GList *list, guint n); +GList* g_list_nth_prev (GList *list, + guint n); GList* g_list_find (GList *list, gconstpointer data); GList* g_list_find_custom (GList *list, @@ -87,7 +94,7 @@ void g_list_foreach (GList *list, GList* g_list_sort (GList *list, GCompareFunc compare_func); GList* g_list_sort_with_data (GList *list, - GCompareFuncData compare_func, + GCompareDataFunc compare_func, gpointer user_data); gpointer g_list_nth_data (GList *list, guint n); diff --git a/graf2d/win32gdk/gdk/src/glib/gmacros.h b/graf2d/win32gdk/gdk/src/glib/gmacros.h index 633d7fa3cc8..896948e8735 100644 --- a/graf2d/win32gdk/gdk/src/glib/gmacros.h +++ b/graf2d/win32gdk/gdk/src/glib/gmacros.h @@ -31,6 +31,10 @@ #ifndef __G_MACROS_H__ #define __G_MACROS_H__ +/* We include stddef.h to get the system's definition of NULL + */ +#include <stddef.h> + /* Here we provide G_GNUC_EXTENSION as an alias for __extension__, * where this is valid. This allows for warningless compilation of * "long long" types even in the presence of '-ansi -pedantic'. @@ -63,6 +67,8 @@ __attribute__((const)) #define G_GNUC_UNUSED \ __attribute__((unused)) +#define G_GNUC_NO_INSTRUMENT \ + __attribute__((no_instrument_function)) #else /* !__GNUC__ */ #define G_GNUC_PRINTF( format_idx, arg_idx ) #define G_GNUC_SCANF( format_idx, arg_idx ) @@ -70,6 +76,7 @@ #define G_GNUC_NORETURN #define G_GNUC_CONST #define G_GNUC_UNUSED +#define G_GNUC_NO_INSTRUMENT #endif /* !__GNUC__ */ /* Wrap the gcc __PRETTY_FUNCTION__ and __FUNCTION__ variables with @@ -141,6 +148,11 @@ */ #define G_N_ELEMENTS(arr) (sizeof (arr) / sizeof ((arr)[0])) +/* Macros by analogy to GINT_TO_POINTER, GPOINTER_TO_INT + */ +#define GPOINTER_TO_SIZE(p) ((gsize) (p)) +#define GSIZE_TO_POINTER(s) ((gpointer) (gsize) (s)) + /* Provide convenience macros for handling structure * fields through their offsets. */ diff --git a/graf2d/win32gdk/gdk/src/glib/gmain.c b/graf2d/win32gdk/gdk/src/glib/gmain.c new file mode 100644 index 00000000000..fe152f3a427 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gmain.c @@ -0,0 +1,3203 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * gmain.c: Main loop abstraction, timeouts, and idle functions + * Copyright 1998 Owen Taylor + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe + */ + +#include "config.h" + +/* uncomment the next line to get poll() debugging info */ +/* #define G_MAIN_POLL_DEBUG */ + +#include "glib.h" +#include <sys/types.h> +#include <time.h> +#ifdef HAVE_SYS_TIME_H +#include <sys/time.h> +#endif /* HAVE_SYS_TIME_H */ +#ifdef GLIB_HAVE_SYS_POLL_H +# include <sys/poll.h> +# undef events /* AIX 4.1.5 & 4.3.2 define this for SVR3,4 compatibility */ +# undef revents /* AIX 4.1.5 & 4.3.2 define this for SVR3,4 compatibility */ +#endif /* GLIB_HAVE_SYS_POLL_H */ +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif /* HAVE_UNISTD_H */ +#include <errno.h> + +#ifdef G_OS_WIN32 +#define STRICT +#include <windows.h> +#endif /* G_OS_WIN32 */ + +#ifdef G_OS_BEOS +#include <net/socket.h> +#endif /* G_OS_BEOS */ + +/* Types */ + +typedef struct _GTimeoutSource GTimeoutSource; +typedef struct _GPollRec GPollRec; +typedef struct _GSourceCallback GSourceCallback; + +typedef enum +{ + G_SOURCE_READY = 1 << G_HOOK_FLAG_USER_SHIFT, + G_SOURCE_CAN_RECURSE = 1 << (G_HOOK_FLAG_USER_SHIFT + 1) +} GSourceFlags; + +#ifdef G_THREADS_ENABLED +typedef struct _GMainWaiter GMainWaiter; + +struct _GMainWaiter +{ + GCond *cond; + GMutex *mutex; +}; +#endif + +struct _GMainContext +{ +#ifdef G_THREADS_ENABLED + /* The following lock is used for both the list of sources + * and the list of poll records + */ + GStaticMutex mutex; + GCond *cond; + GThread *owner; + guint owner_count; + GSList *waiters; +#endif + + guint ref_count; + + GPtrArray *pending_dispatches; + gint timeout; /* Timeout for current iteration */ + + guint next_id; + GSource *source_list; + gint in_check_or_prepare; + + GPollRec *poll_records; + GPollRec *poll_free_list; + GMemChunk *poll_chunk; + guint n_poll_records; + GPollFD *cached_poll_array; + guint cached_poll_array_size; + +#ifdef G_THREADS_ENABLED +#ifndef G_OS_WIN32 +/* this pipe is used to wake up the main loop when a source is added. + */ + gint wake_up_pipe[2]; +#else /* G_OS_WIN32 */ + HANDLE wake_up_semaphore; +#endif /* G_OS_WIN32 */ + + GPollFD wake_up_rec; + gboolean poll_waiting; + +/* Flag indicating whether the set of fd's changed during a poll */ + gboolean poll_changed; +#endif /* G_THREADS_ENABLED */ + + GPollFunc poll_func; + + GTimeVal current_time; + gboolean time_is_current; +}; + +struct _GSourceCallback +{ + guint ref_count; + GSourceFunc func; + gpointer data; + GDestroyNotify notify; +}; + +struct _GMainLoop +{ + GMainContext *context; + gboolean is_running; + guint ref_count; +}; + +struct _GTimeoutSource +{ + GSource source; + GTimeVal expiration; + gint interval; +}; + +struct _GPollRec +{ + gint priority; + GPollFD *fd; + GPollRec *next; +}; + +#ifdef G_THREADS_ENABLED +#define LOCK_CONTEXT(context) g_static_mutex_lock (&context->mutex) +#define UNLOCK_CONTEXT(context) g_static_mutex_unlock (&context->mutex) +#define G_THREAD_SELF g_thread_self () +#else +#define LOCK_CONTEXT(context) (void)0 +#define UNLOCK_CONTEXT(context) (void)0 +#define G_THREAD_SELF NULL +#endif + +#define SOURCE_DESTROYED(source) (((source)->flags & G_HOOK_FLAG_ACTIVE) == 0) + +#define SOURCE_UNREF(source, context) \ + G_STMT_START { \ + if ((source)->ref_count > 1) \ + (source)->ref_count--; \ + else \ + g_source_unref_internal ((source), (context), TRUE); \ + } G_STMT_END + + +/* Forward declarations */ + +static void g_source_unref_internal (GSource *source, + GMainContext *context, + gboolean have_lock); +static void g_source_destroy_internal (GSource *source, + GMainContext *context, + gboolean have_lock); +static void g_main_context_poll (GMainContext *context, + gint timeout, + gint priority, + GPollFD *fds, + gint n_fds); +static void g_main_context_add_poll_unlocked (GMainContext *context, + gint priority, + GPollFD *fd); +static void g_main_context_remove_poll_unlocked (GMainContext *context, + GPollFD *fd); +static void g_main_context_wakeup_unlocked (GMainContext *context); + +static gboolean g_timeout_prepare (GSource *source, + gint *timeout); +static gboolean g_timeout_check (GSource *source); +static gboolean g_timeout_dispatch (GSource *source, + GSourceFunc callback, + gpointer user_data); +static gboolean g_idle_prepare (GSource *source, + gint *timeout); +static gboolean g_idle_check (GSource *source); +static gboolean g_idle_dispatch (GSource *source, + GSourceFunc callback, + gpointer user_data); + +G_LOCK_DEFINE_STATIC (main_loop); +static GMainContext *default_main_context; + +#if defined(G_PLATFORM_WIN32) && defined(__GNUC__) +__declspec(dllexport) +#endif +GSourceFuncs g_timeout_funcs = +{ + g_timeout_prepare, + g_timeout_check, + g_timeout_dispatch, + NULL +}; + +#if defined(G_PLATFORM_WIN32) && defined(__GNUC__) +__declspec(dllexport) +#endif +GSourceFuncs g_idle_funcs = +{ + g_idle_prepare, + g_idle_check, + g_idle_dispatch, + NULL +}; + +#ifdef HAVE_POLL +/* SunOS has poll, but doesn't provide a prototype. */ +# if defined (sun) && !defined (__SVR4) +extern gint poll (GPollFD *ufds, guint nfsd, gint timeout); +# endif /* !sun */ +#else /* !HAVE_POLL */ + +#ifdef G_OS_WIN32 + +static gint +g_poll (GPollFD *fds, + guint nfds, + gint timeout) +{ + HANDLE handles[MAXIMUM_WAIT_OBJECTS]; + gboolean poll_msgs = FALSE; + GPollFD *f; + DWORD ready; + MSG msg; + UINT timer; + gint nhandles = 0; + + for (f = fds; f < &fds[nfds]; ++f) + if (f->fd >= 0) + { + if (f->events & G_IO_IN) + { + if (f->fd == G_WIN32_MSG_HANDLE) + poll_msgs = TRUE; + else + { +#ifdef G_MAIN_POLL_DEBUG + g_print ("g_poll: waiting for %#x\n", f->fd); +#endif + handles[nhandles++] = (HANDLE) f->fd; + } + } + } + + if (timeout == -1) + timeout = INFINITE; + + if (poll_msgs) + { + /* Waiting for messages, and maybe events + * -> First PeekMessage + */ +#ifdef G_MAIN_POLL_DEBUG + g_print ("PeekMessage\n"); +#endif + if (PeekMessage (&msg, NULL, 0, 0, PM_NOREMOVE)) + ready = WAIT_OBJECT_0 + nhandles; + else + { + if (nhandles == 0) + { + /* Waiting just for messages */ + if (timeout == INFINITE) + { + /* Infinite timeout + * -> WaitMessage + */ +#ifdef G_MAIN_POLL_DEBUG + g_print ("WaitMessage\n"); +#endif + if (!WaitMessage ()) + g_warning (G_STRLOC ": WaitMessage() failed"); + ready = WAIT_OBJECT_0 + nhandles; + } + else if (timeout == 0) + { + /* Waiting just for messages, zero timeout. + * If we got here, there was no message + */ + ready = WAIT_TIMEOUT; + } + else + { + /* Waiting just for messages, some timeout + * -> Set a timer, wait for message, + * kill timer, use PeekMessage + */ + timer = SetTimer (NULL, 0, timeout, NULL); + if (timer == 0) + g_warning (G_STRLOC ": SetTimer() failed"); + else + { +#ifdef G_MAIN_POLL_DEBUG + g_print ("WaitMessage\n"); +#endif + WaitMessage (); + KillTimer (NULL, timer); +#ifdef G_MAIN_POLL_DEBUG + g_print ("PeekMessage\n"); +#endif + if (PeekMessage (&msg, NULL, 0, 0, PM_NOREMOVE) + && msg.message != WM_TIMER) + ready = WAIT_OBJECT_0; + else + ready = WAIT_TIMEOUT; + } + } + } + else + { + /* Wait for either message or event + * -> Use MsgWaitForMultipleObjects + */ +#ifdef G_MAIN_POLL_DEBUG + g_print ("MsgWaitForMultipleObjects(%d, %d)\n", nhandles, timeout); +#endif + ready = MsgWaitForMultipleObjects (nhandles, handles, FALSE, + timeout, QS_ALLINPUT); + + if (ready == WAIT_FAILED) + g_warning (G_STRLOC ": MsgWaitForMultipleObjects() failed"); + } + } + } + else if (nhandles == 0) + { + /* Wait for nothing (huh?) */ + return 0; + } + else + { + /* Wait for just events + * -> Use WaitForMultipleObjects + */ +#ifdef G_MAIN_POLL_DEBUG + g_print ("WaitForMultipleObjects(%d, %d)\n", nhandles, timeout); +#endif + ready = WaitForMultipleObjects (nhandles, handles, FALSE, timeout); + if (ready == WAIT_FAILED) + g_warning (G_STRLOC ": WaitForMultipleObjects() failed"); + } + +#ifdef G_MAIN_POLL_DEBUG + g_print ("wait returns %d%s\n", + ready, + (ready == WAIT_FAILED ? " (WAIT_FAILED)" : + (ready == WAIT_TIMEOUT ? " (WAIT_TIMEOUT)" : + (poll_msgs && ready == WAIT_OBJECT_0 + nhandles ? " (msg)" : "")))); +#endif + for (f = fds; f < &fds[nfds]; ++f) + f->revents = 0; + + if (ready == WAIT_FAILED) + return -1; + else if (ready == WAIT_TIMEOUT) + return 0; + else if (poll_msgs && ready == WAIT_OBJECT_0 + nhandles) + { + for (f = fds; f < &fds[nfds]; ++f) + if (f->fd >= 0) + { + if (f->events & G_IO_IN) + if (f->fd == G_WIN32_MSG_HANDLE) + f->revents |= G_IO_IN; + } + } +#if TEST_WITHOUT_THIS + else if (ready >= WAIT_OBJECT_0 && ready < WAIT_OBJECT_0 + nhandles) + for (f = fds; f < &fds[nfds]; ++f) + { + if ((f->events & G_IO_IN) + && f->fd == (gint) handles[ready - WAIT_OBJECT_0]) + { + f->revents |= G_IO_IN; +#ifdef G_MAIN_POLL_DEBUG + g_print ("g_poll: got event %#x\n", f->fd); +#endif +#if 0 + ResetEvent ((HANDLE) f->fd); +#endif + } + } +#endif + + return 1; +} + +#else /* !G_OS_WIN32 */ + +/* The following implementation of poll() comes from the GNU C Library. + * Copyright (C) 1994, 1996, 1997 Free Software Foundation, Inc. + */ + +#include <string.h> /* for bzero on BSD systems */ + +#ifdef HAVE_SYS_SELECT_H +#include <sys/select.h> +#endif /* HAVE_SYS_SELECT_H */ + +#ifdef G_OS_BEOS +#undef NO_FD_SET +#endif /* G_OS_BEOS */ + +#ifndef NO_FD_SET +# define SELECT_MASK fd_set +#else /* !NO_FD_SET */ +# ifndef _AIX +typedef long fd_mask; +# endif /* _AIX */ +# ifdef _IBMR2 +# define SELECT_MASK void +# else /* !_IBMR2 */ +# define SELECT_MASK int +# endif /* !_IBMR2 */ +#endif /* !NO_FD_SET */ + +static gint +g_poll (GPollFD *fds, + guint nfds, + gint timeout) +{ + struct timeval tv; + SELECT_MASK rset, wset, xset; + GPollFD *f; + int ready; + int maxfd = 0; + + FD_ZERO (&rset); + FD_ZERO (&wset); + FD_ZERO (&xset); + + for (f = fds; f < &fds[nfds]; ++f) + if (f->fd >= 0) + { + if (f->events & G_IO_IN) + FD_SET (f->fd, &rset); + if (f->events & G_IO_OUT) + FD_SET (f->fd, &wset); + if (f->events & G_IO_PRI) + FD_SET (f->fd, &xset); + if (f->fd > maxfd && (f->events & (G_IO_IN|G_IO_OUT|G_IO_PRI))) + maxfd = f->fd; + } + + tv.tv_sec = timeout / 1000; + tv.tv_usec = (timeout % 1000) * 1000; + + ready = select (maxfd + 1, &rset, &wset, &xset, + timeout == -1 ? NULL : &tv); + if (ready > 0) + for (f = fds; f < &fds[nfds]; ++f) + { + f->revents = 0; + if (f->fd >= 0) + { + if (FD_ISSET (f->fd, &rset)) + f->revents |= G_IO_IN; + if (FD_ISSET (f->fd, &wset)) + f->revents |= G_IO_OUT; + if (FD_ISSET (f->fd, &xset)) + f->revents |= G_IO_PRI; + } + } + + return ready; +} + +#endif /* !G_OS_WIN32 */ + +#endif /* !HAVE_POLL */ + +/** + * g_main_context_ref: + * @context: a #GMainContext + * + * Increases the reference count on a #GMainContext object by one. + **/ +void +g_main_context_ref (GMainContext *context) +{ + g_return_if_fail (context != NULL); + g_return_if_fail (context->ref_count > 0); + + LOCK_CONTEXT (context); + + context->ref_count++; + + UNLOCK_CONTEXT (context); +} + +static void +g_main_context_unref_and_unlock (GMainContext *context) +{ + GSource *source; + + context->ref_count--; + + if (context->ref_count != 0) + { + UNLOCK_CONTEXT (context); + return; + } + + source = context->source_list; + while (source) + { + GSource *next = source->next; + g_source_destroy_internal (source, context, TRUE); + source = next; + } + UNLOCK_CONTEXT (context); + +#ifdef G_THREADS_ENABLED + g_static_mutex_free (&context->mutex); +#endif + + g_ptr_array_free (context->pending_dispatches, TRUE); + g_free (context->cached_poll_array); + + g_mem_chunk_destroy (context->poll_chunk); + +#ifdef G_THREADS_ENABLED + if (g_thread_supported()) + { +#ifndef G_OS_WIN32 + close (context->wake_up_pipe[0]); + close (context->wake_up_pipe[1]); +#else + CloseHandle (context->wake_up_semaphore); +#endif + } +#endif + + g_free (context); +} + +/** + * g_main_context_unref: + * @context: a #GMainContext + * + * Decreases the reference count on a #GMainContext object by one. If + * the result is zero, free the context and free all associated memory. + **/ +void +g_main_context_unref (GMainContext *context) +{ + g_return_if_fail (context != NULL); + g_return_if_fail (context->ref_count > 0); + + LOCK_CONTEXT (context); + g_main_context_unref_and_unlock (context); +} + +/** + * g_main_context_new: + * + * Creates a new #GMainContext strcuture + * + * Return value: the new #GMainContext + **/ +GMainContext * +g_main_context_new () +{ + GMainContext *context = g_new0 (GMainContext, 1); + +#ifdef G_THREADS_ENABLED + g_static_mutex_init (&context->mutex); + + context->owner = NULL; + context->waiters = NULL; +#endif + + context->ref_count = 1; + + context->next_id = 1; + + context->source_list = NULL; + +#if HAVE_POLL + context->poll_func = (GPollFunc)poll; +#else + context->poll_func = g_poll; +#endif + + context->cached_poll_array = NULL; + context->cached_poll_array_size = 0; + + context->pending_dispatches = g_ptr_array_new (); + + context->time_is_current = FALSE; + +#ifdef G_THREADS_ENABLED + if (g_thread_supported ()) + { +#ifndef G_OS_WIN32 + if (pipe (context->wake_up_pipe) < 0) + g_error ("Cannot create pipe main loop wake-up: %s\n", + g_strerror (errno)); + + context->wake_up_rec.fd = context->wake_up_pipe[0]; + context->wake_up_rec.events = G_IO_IN; + g_main_context_add_poll_unlocked (context, 0, &context->wake_up_rec); +#else + context->wake_up_semaphore = CreateSemaphore (NULL, 0, 100, NULL); + if (context->wake_up_semaphore == NULL) + g_error ("Cannot create wake-up semaphore: %s", + g_win32_error_message (GetLastError ())); + context->wake_up_rec.fd = (gint) context->wake_up_semaphore; + context->wake_up_rec.events = G_IO_IN; +#ifdef G_MAIN_POLL_DEBUG + g_print ("wake-up semaphore: %#x\n", (guint) context->wake_up_semaphore); +#endif + g_main_context_add_poll_unlocked (context, 0, &context->wake_up_rec); +#endif + } +#endif + + return context; +} + +/** + * g_main_context_default: + * + * Return the default main context. This is the main context used + * for main loop functions when a main loop is not explicitly + * specified. + * + * Return value: the default main context. + **/ +GMainContext * +g_main_context_default (void) +{ + /* Slow, but safe */ + + G_LOCK (main_loop); + + if (!default_main_context) + default_main_context = g_main_context_new (); + + G_UNLOCK (main_loop); + + return default_main_context; +} + +/* Hooks for adding to the main loop */ + +/** + * g_source_new: + * @source_funcs: structure containing functions that implement + * the sources behavior. + * @struct_size: size of the #GSource structure to create + * + * Create a new GSource structure. The size is specified to + * allow creating structures derived from GSource that contain + * additional data. The size passed in must be at least + * sizeof(GSource). + * + * The source will not initially be associated with any #GMainContext + * and must be added to one with g_source_add() before it will be + * executed. + * + * Return value: the newly create #GSource + **/ +GSource * +g_source_new (GSourceFuncs *source_funcs, + guint struct_size) +{ + GSource *source; + + g_return_val_if_fail (source_funcs != NULL, NULL); + g_return_val_if_fail (struct_size >= sizeof (GSource), NULL); + + source = (GSource*) g_malloc0 (struct_size); + + source->source_funcs = source_funcs; + source->ref_count = 1; + + source->priority = G_PRIORITY_DEFAULT; + + source->flags = G_HOOK_FLAG_ACTIVE; + + /* NULL/0 initialization for all other fields */ + + return source; +} + +/* Holds context's lock + */ +static void +g_source_list_add (GSource *source, + GMainContext *context) +{ + GSource *tmp_source, *last_source; + + last_source = NULL; + tmp_source = context->source_list; + while (tmp_source && tmp_source->priority <= source->priority) + { + last_source = tmp_source; + tmp_source = tmp_source->next; + } + + source->next = tmp_source; + if (tmp_source) + tmp_source->prev = source; + + source->prev = last_source; + if (last_source) + last_source->next = source; + else + context->source_list = source; +} + +/* Holds context's lock + */ +static void +g_source_list_remove (GSource *source, + GMainContext *context) +{ + if (source->prev) + source->prev->next = source->next; + else + context->source_list = source->next; + + if (source->next) + source->next->prev = source->prev; + + source->prev = NULL; + source->next = NULL; +} + +/** + * g_source_attach: + * @source: a #GSource + * @context: a #GMainContext (if %NULL, the default context will be used) + * + * Adds a #GSource to a @context so that it will be executed within + * that context. + * + * Return value: the ID for the source within the #GMainContext + **/ +guint +g_source_attach (GSource *source, + GMainContext *context) +{ + guint result = 0; + GSList *tmp_list; + + g_return_val_if_fail (source->context == NULL, 0); + g_return_val_if_fail (!SOURCE_DESTROYED (source), 0); + + if (!context) + context = g_main_context_default (); + + LOCK_CONTEXT (context); + + source->context = context; + result = source->id = context->next_id++; + + source->ref_count++; + g_source_list_add (source, context); + + tmp_list = source->poll_fds; + while (tmp_list) + { + g_main_context_add_poll_unlocked (context, source->priority, tmp_list->data); + tmp_list = tmp_list->next; + } + +#ifdef G_THREADS_ENABLED + /* Now wake up the main loop if it is waiting in the poll() */ + g_main_context_wakeup_unlocked (context); +#endif + + UNLOCK_CONTEXT (context); + + return result; +} + +static void +g_source_destroy_internal (GSource *source, + GMainContext *context, + gboolean have_lock) +{ + if (!have_lock) + LOCK_CONTEXT (context); + + if (!SOURCE_DESTROYED (source)) + { + GSList *tmp_list; + gpointer old_cb_data; + GSourceCallbackFuncs *old_cb_funcs; + + source->flags &= ~G_HOOK_FLAG_ACTIVE; + + old_cb_data = source->callback_data; + old_cb_funcs = source->callback_funcs; + + source->callback_data = NULL; + source->callback_funcs = NULL; + + if (old_cb_funcs) + { + UNLOCK_CONTEXT (context); + old_cb_funcs->unref (old_cb_data); + LOCK_CONTEXT (context); + } + + tmp_list = source->poll_fds; + while (tmp_list) + { + g_main_context_remove_poll_unlocked (context, tmp_list->data); + tmp_list = tmp_list->next; + } + + g_source_unref_internal (source, context, TRUE); + } + + if (!have_lock) + UNLOCK_CONTEXT (context); +} + +/** + * g_source_destroy: + * @source: a #GSource + * + * Remove a source from its #GMainContext, if any, and mark it as + * destroyed. The source cannot be subsequently added to another + * context. + **/ +void +g_source_destroy (GSource *source) +{ + GMainContext *context; + + g_return_if_fail (source != NULL); + + context = source->context; + + if (context) + g_source_destroy_internal (source, context, FALSE); + else + source->flags &= ~G_HOOK_FLAG_ACTIVE; +} + +/** + * g_source_get_id: + * @source: a #GSource + * + * Return the numeric ID for a particular source. The ID of a source + * is unique within a particular main loop context. The reverse + * mapping from ID to source is done by g_main_context_find_source_by_id(). + * + * Return value: the ID for the source + **/ +guint +g_source_get_id (GSource *source) +{ + guint result; + + g_return_val_if_fail (source != NULL, 0); + g_return_val_if_fail (source->context != NULL, 0); + + LOCK_CONTEXT (source->context); + result = source->id; + UNLOCK_CONTEXT (source->context); + + return result; +} + +/** + * g_source_get_context: + * @source: a #GSource + * + * Get the #GMainContext with which the source is associated. + * Calling this function on a destroyed source is an error. + * + * Return value: the #GMainContext with which the source is associated, + * or %NULL if the context has not yet been added + * to a source. + **/ +GMainContext * +g_source_get_context (GSource *source) +{ + g_return_val_if_fail (!SOURCE_DESTROYED (source), NULL); + + return source->context; +} + +/** + * g_source_add_poll: + * @source:a #GSource + * @fd: a #GPollFD structure holding information about a file + * descriptor to watch. + * + * Add a file descriptor to the set of file descriptors polled for + * this source. This is usually combined with g_source_new() to add an + * event source. The event source's check function will typically test + * the revents field in the #GPollFD struct and return %TRUE if events need + * to be processed. + **/ +void +g_source_add_poll (GSource *source, + GPollFD *fd) +{ + GMainContext *context; + + g_return_if_fail (source != NULL); + g_return_if_fail (fd != NULL); + g_return_if_fail (!SOURCE_DESTROYED (source)); + + context = source->context; + + if (context) + LOCK_CONTEXT (context); + + source->poll_fds = g_slist_prepend (source->poll_fds, fd); + + if (context) + { + g_main_context_add_poll_unlocked (context, source->priority, fd); + UNLOCK_CONTEXT (context); + } +} + +/** + * g_source_remove_poll: + * @source:a #GSource + * @fd: a #GPollFD structure previously passed to g_source_poll. + * + * Remove a file descriptor from the set of file descriptors polled for + * this source. + **/ +void +g_source_remove_poll (GSource *source, + GPollFD *fd) +{ + GMainContext *context; + + g_return_if_fail (source != NULL); + g_return_if_fail (fd != NULL); + g_return_if_fail (!SOURCE_DESTROYED (source)); + + context = source->context; + + if (context) + LOCK_CONTEXT (context); + + source->poll_fds = g_slist_remove (source->poll_fds, fd); + + if (context) + { + g_main_context_remove_poll_unlocked (context, fd); + UNLOCK_CONTEXT (context); + } +} + +/** + * g_source_set_callback_indirect: + * @source: the source + * @callback_data: pointer to callback data "object" + * @callback_funcs: functions for reference counting callback_data + * and getting the callback and data + * + * Set the callback function storing the data as a refcounted callback + * "object". This is used to implement g_source_set_callback_closure() + * and internally. Note that calling g_source_set_callback_indirect() assumes + * an initial reference count on @callback_data, and thus + * @callback_funcs->unref will eventually be called once more + * than @callback_funcs->ref. + **/ +void +g_source_set_callback_indirect (GSource *source, + gpointer callback_data, + GSourceCallbackFuncs *callback_funcs) +{ + GMainContext *context; + gpointer old_cb_data; + GSourceCallbackFuncs *old_cb_funcs; + + g_return_if_fail (source != NULL); + g_return_if_fail (callback_funcs != NULL || callback_data == NULL); + + context = source->context; + + if (context) + LOCK_CONTEXT (context); + + old_cb_data = source->callback_data; + old_cb_funcs = source->callback_funcs; + + source->callback_data = callback_data; + source->callback_funcs = callback_funcs; + + if (context) + UNLOCK_CONTEXT (context); + + if (old_cb_funcs) + old_cb_funcs->unref (old_cb_data); +} + +static void +g_source_callback_ref (gpointer cb_data) +{ + GSourceCallback *callback = cb_data; + + callback->ref_count++; +} + + +static void +g_source_callback_unref (gpointer cb_data) +{ + GSourceCallback *callback = cb_data; + + callback->ref_count--; + if (callback->ref_count == 0) + { + if (callback->notify) + callback->notify (callback->data); + g_free (callback); + } +} + +static void +g_source_callback_get (gpointer cb_data, + GSource *source, + GSourceFunc *func, + gpointer *data) +{ + GSourceCallback *callback = cb_data; + + *func = callback->func; + *data = callback->data; +} + +static GSourceCallbackFuncs g_source_callback_funcs = { + g_source_callback_ref, + g_source_callback_unref, + g_source_callback_get, +}; + +/** + * g_source_set_callback: + * @source: the source + * @func: a callback function + * @data: the data to pass to callback function + * @notify: a function to call when @data is no longer in use, or %NULL. + * + * Set the callback function for a source. + **/ +void +g_source_set_callback (GSource *source, + GSourceFunc func, + gpointer data, + GDestroyNotify notify) +{ + GSourceCallback *new_callback; + + g_return_if_fail (source != NULL); + + new_callback = g_new (GSourceCallback, 1); + + new_callback->ref_count = 1; + new_callback->func = func; + new_callback->data = data; + new_callback->notify = notify; + + g_source_set_callback_indirect (source, new_callback, &g_source_callback_funcs); +} + +/** + * g_source_set_priority: + * @source: a #GSource + * @priority: the new priority. + * + * Set the priority of a source. While the main loop is being + * run, a source will + **/ +void +g_source_set_priority (GSource *source, + gint priority) +{ + GSList *tmp_list; + GMainContext *context; + + g_return_if_fail (source != NULL); + + context = source->context; + + if (context) + LOCK_CONTEXT (context); + + source->priority = priority; + + if (context) + { + source->next = NULL; + source->prev = NULL; + + tmp_list = source->poll_fds; + while (tmp_list) + { + g_main_context_remove_poll_unlocked (context, tmp_list->data); + g_main_context_add_poll_unlocked (context, priority, tmp_list->data); + + tmp_list = tmp_list->next; + } + + UNLOCK_CONTEXT (source->context); + } +} + +/** + * g_source_get_priority: + * @source: a #GSource + * + * Gets the priority of a surce + * + * Return value: the priority of the source + **/ +gint +g_source_get_priority (GSource *source) +{ + g_return_val_if_fail (source != NULL, 0); + + return source->priority; +} + +/** + * g_source_set_can_recurse: + * @source: a #GSource + * @can_recurse: whether recursion is allowed for this source + * + * Sets whether a source can be called recursively. If @can_recurse is + * %TRUE, then while the source is being dispatched then this source + * will be processed normally. Otherwise, all processing of this + * source is blocked until the dispatch function returns. + **/ +void +g_source_set_can_recurse (GSource *source, + gboolean can_recurse) +{ + GMainContext *context; + + g_return_if_fail (source != NULL); + + context = source->context; + + if (context) + LOCK_CONTEXT (context); + + if (can_recurse) + source->flags |= G_SOURCE_CAN_RECURSE; + else + source->flags &= ~G_SOURCE_CAN_RECURSE; + + if (context) + UNLOCK_CONTEXT (context); +} + +/** + * g_source_get_can_recurse: + * @source: a #GSource + * + * Checks whether a source is allowed to be called recursively. + * see g_source_set_can_recurse. + * + * Return value: whether recursion is allowed. + **/ +gboolean +g_source_get_can_recurse (GSource *source) +{ + g_return_val_if_fail (source != NULL, FALSE); + + return (source->flags & G_SOURCE_CAN_RECURSE) != 0; +} + +/** + * g_source_ref: + * @source: a #GSource + * + * Increases the reference count on a source by one. + * + * Return value: @source + **/ +GSource * +g_source_ref (GSource *source) +{ + GMainContext *context; + + g_return_val_if_fail (source != NULL, NULL); + + context = source->context; + + if (context) + LOCK_CONTEXT (context); + + source->ref_count++; + + if (context) + UNLOCK_CONTEXT (context); + + return source; +} + +/* g_source_unref() but possible to call within context lock + */ +static void +g_source_unref_internal (GSource *source, + GMainContext *context, + gboolean have_lock) +{ + gpointer old_cb_data = NULL; + GSourceCallbackFuncs *old_cb_funcs = NULL; + + g_return_if_fail (source != NULL); + + if (!have_lock && context) + LOCK_CONTEXT (context); + + source->ref_count--; + if (source->ref_count == 0) + { + old_cb_data = source->callback_data; + old_cb_funcs = source->callback_funcs; + + source->callback_data = NULL; + source->callback_funcs = NULL; + + if (context && !SOURCE_DESTROYED (source)) + { + g_warning (G_STRLOC ": ref_count == 0, but source is still attached to a context!"); + source->ref_count++; + } + else if (context) + g_source_list_remove (source, context); + + if (source->source_funcs->finalize) + source->source_funcs->finalize (source); + + g_slist_free (source->poll_fds); + source->poll_fds = NULL; + g_free (source); + } + + if (!have_lock && context) + UNLOCK_CONTEXT (context); + + if (old_cb_funcs) + { + if (have_lock) + UNLOCK_CONTEXT (context); + + old_cb_funcs->unref (old_cb_data); + + if (have_lock) + LOCK_CONTEXT (context); + } +} + +/** + * g_source_unref: + * @source: a #GSource + * + * Decreases the reference count of a source by one. If the + * resulting reference count is zero the source and associated + * memory will be destroyed. + **/ +void +g_source_unref (GSource *source) +{ + g_return_if_fail (source != NULL); + + g_source_unref_internal (source, source->context, FALSE); +} + +/** + * g_main_context_find_source_by_id: + * @context: a #GMainContext (if %NULL, the default context will be used) + * @id: the source ID, as returned by g_source_get_id() + * + * Finds a #GSource given a pair of context and ID + * + * Return value: the #GSource if found, otherwise, %NULL + **/ +GSource * +g_main_context_find_source_by_id (GMainContext *context, + guint id) +{ + GSource *source; + + g_return_val_if_fail (id > 0, FALSE); + + if (context == NULL) + context = g_main_context_default (); + + LOCK_CONTEXT (context); + + source = context->source_list; + while (source) + { + if (!SOURCE_DESTROYED (source) && + source->id == id) + break; + source = source->next; + } + + UNLOCK_CONTEXT (context); + + return source; +} + +/** + * g_main_context_find_source_by_funcs_user_data: + * @context: a #GMainContext (if %NULL, the default context will be used). + * @funcs: the @source_funcs passed to g_source_new(). + * @user_data: the user data from the callback. + * + * Finds a source with the given source functions and user data. If + * multiple sources exist with the same source function and user data, + * the first one found will be returned. + * + * Return value: the source, if one was found, otherwise %NULL + **/ +GSource * +g_main_context_find_source_by_funcs_user_data (GMainContext *context, + GSourceFuncs *funcs, + gpointer user_data) +{ + GSource *source; + + g_return_val_if_fail (funcs != NULL, FALSE); + + if (context == NULL) + context = g_main_context_default (); + + LOCK_CONTEXT (context); + + source = context->source_list; + while (source) + { + if (!SOURCE_DESTROYED (source) && + source->source_funcs == funcs && + source->callback_funcs) + { + GSourceFunc callback; + gpointer callback_data; + + source->callback_funcs->get (source->callback_data, source, &callback, &callback_data); + + if (callback_data == user_data) + break; + } + source = source->next; + } + + UNLOCK_CONTEXT (context); + + return source; +} + +/** + * g_main_context_find_source_by_user_data: + * @context: a #GMainContext + * @user_data: the user_data for the callback. + * + * Finds a source with the given user data for the callback. If + * multiple sources exist with the same user data, the first + * one found will be returned. + * + * Return value: the source, if one was found, otherwise %NULL + **/ +GSource * +g_main_context_find_source_by_user_data (GMainContext *context, + gpointer user_data) +{ + GSource *source; + + if (context == NULL) + context = g_main_context_default (); + + LOCK_CONTEXT (context); + + source = context->source_list; + while (source) + { + if (!SOURCE_DESTROYED (source) && + source->callback_funcs) + { + GSourceFunc callback; + gpointer callback_data = NULL; + + source->callback_funcs->get (source->callback_data, source, &callback, &callback_data); + + if (callback_data == user_data) + break; + } + source = source->next; + } + + UNLOCK_CONTEXT (context); + + return source; +} + +/** + * g_source_remove: + * @tag: the id of the source to remove. + * + * Removes the source with the given id from the default main + * context. The id of a #GSource is given by g_source_get_id(), + * or will be returned by the functions g_source_attach(), + * g_idle_add(), g_idle_add_full(), g_timeout_add(), + * g_timeout_add_full(), g_io_add_watch, and g_io_add_watch_full(). + * + * See also g_source_destroy(). + * + * Return value: %TRUE if the source was found and removed. + **/ +gboolean +g_source_remove (guint tag) +{ + GSource *source; + + g_return_val_if_fail (tag > 0, FALSE); + + source = g_main_context_find_source_by_id (NULL, tag); + if (source) + g_source_destroy (source); + + return source != NULL; +} + +/** + * g_source_remove_by_user_data: + * @user_data: the user_data for the callback. + * + * Removes a source from the default main loop context given the user + * data for the callback. If multiple sources exist with the same user + * data, only one will be destroyed. + * + * Return value: %TRUE if a source was found and removed. + **/ +gboolean +g_source_remove_by_user_data (gpointer user_data) +{ + GSource *source; + + source = g_main_context_find_source_by_user_data (NULL, user_data); + if (source) + { + g_source_destroy (source); + return TRUE; + } + else + return FALSE; +} + +/** + * g_source_remove_by_funcs_user_data: + * @funcs: The @source_funcs passed to g_source_new() + * @user_data: the user data for the callback + * + * Removes a source from the default main loop context given the + * source functions and user data. If multiple sources exist with the + * same source functions and user data, only one will be destroyed. + * + * Return value: %TRUE if a source was found and removed. + **/ +gboolean +g_source_remove_by_funcs_user_data (GSourceFuncs *funcs, + gpointer user_data) +{ + GSource *source; + + g_return_val_if_fail (funcs != NULL, FALSE); + + source = g_main_context_find_source_by_funcs_user_data (NULL, funcs, user_data); + if (source) + { + g_source_destroy (source); + return TRUE; + } + else + return FALSE; +} + +/** + * g_get_current_time: + * @result: #GTimeVal structure in which to store current time. + * + * Equivalent to Unix's <function>gettimeofday()</function>, but portable + **/ +void +g_get_current_time (GTimeVal *result) +{ +#ifndef G_OS_WIN32 + struct timeval r; + + g_return_if_fail (result != NULL); + + /*this is required on alpha, there the timeval structs are int's + not longs and a cast only would fail horribly*/ + gettimeofday (&r, NULL); + result->tv_sec = r.tv_sec; + result->tv_usec = r.tv_usec; +#else + /* Avoid calling time() except for the first time. + * GetTickCount() should be pretty fast and low-level? + * I could also use ftime() but it seems unnecessarily overheady. + */ + static DWORD start_tick = 0; + static time_t start_time; + DWORD tick; + + g_return_if_fail (result != NULL); + + if (start_tick == 0) + { + start_tick = GetTickCount (); + time (&start_time); + } + + tick = GetTickCount (); + + result->tv_sec = (tick - start_tick) / 1000 + start_time; + result->tv_usec = ((tick - start_tick) % 1000) * 1000; +#endif +} + +/* Running the main loop */ + +/* HOLDS: context's lock */ +static void +g_main_dispatch (GMainContext *context) +{ + guint i; + + for (i = 0; i < context->pending_dispatches->len; i++) + { + GSource *source = context->pending_dispatches->pdata[i]; + + context->pending_dispatches->pdata[i] = NULL; + g_assert (source); + + source->flags &= ~G_SOURCE_READY; + + if (!SOURCE_DESTROYED (source)) + { + gboolean was_in_call; + gpointer user_data = NULL; + GSourceFunc callback = NULL; + GSourceCallbackFuncs *cb_funcs; + gpointer cb_data; + gboolean need_destroy; + + gboolean (*dispatch) (GSource *, + GSourceFunc, + gpointer); + + dispatch = source->source_funcs->dispatch; + cb_funcs = source->callback_funcs; + cb_data = source->callback_data; + + if (cb_funcs) + cb_funcs->ref (cb_data); + + was_in_call = source->flags & G_HOOK_FLAG_IN_CALL; + source->flags |= G_HOOK_FLAG_IN_CALL; + + if (cb_funcs) + cb_funcs->get (cb_data, source, &callback, &user_data); + + UNLOCK_CONTEXT (context); + + need_destroy = ! dispatch (source, + callback, + user_data); + LOCK_CONTEXT (context); + + if (cb_funcs) + cb_funcs->unref (cb_data); + + if (!was_in_call) + source->flags &= ~G_HOOK_FLAG_IN_CALL; + + /* Note: this depends on the fact that we can't switch + * sources from one main context to another + */ + if (need_destroy && !SOURCE_DESTROYED (source)) + { + g_assert (source->context == context); + g_source_destroy_internal (source, context, TRUE); + } + } + + SOURCE_UNREF (source, context); + } + + g_ptr_array_set_size (context->pending_dispatches, 0); +} + +/* Holds context's lock */ +static inline GSource * +next_valid_source (GMainContext *context, + GSource *source) +{ + GSource *new_source = source ? source->next : context->source_list; + + while (new_source) + { + if (!SOURCE_DESTROYED (new_source)) + { + new_source->ref_count++; + break; + } + + new_source = new_source->next; + } + + if (source) + SOURCE_UNREF (source, context); + + return new_source; +} + +/** + * g_main_context_acquire: + * @context: a #GMainContext + * + * Tries to become the owner of the specified context. + * If some other context is the owner of the context, + * returns %FALSE immediately. Ownership is properly + * recursive: the owner can require ownership again + * and will release ownership when g_main_context_release() + * is called as many times as g_main_context_acquire(). + * + * You must be the owner of a context before you + * can call g_main_context_prepare(), g_main_context_query(), + * g_main_context_check(), g_main_context_dispatch(). + * + * Return value: %TRUE if the operation succeeded, and + * this thread is now the owner of @context. + **/ +gboolean +g_main_context_acquire (GMainContext *context) +{ +#ifdef G_THREAD_ENABLED + gboolean result = FALSE; + GThread *self = G_THREAD_SELF; + + if (context == NULL) + context = g_main_context_default (); + + LOCK_CONTEXT (context); + + if (!context->owner) + { + context->owner = self; + g_assert (context->owner_count == 0); + } + + if (context->owner == self) + { + context->owner_count++; + result = TRUE; + } + + UNLOCK_CONTEXT (context); + + return result; +#else /* !G_THREAD_ENABLED */ + return TRUE; +#endif /* G_THREAD_ENABLED */ +} + +/** + * g_main_context_release: + * @context: a #GMainContext + * + * Release ownership of a context previously acquired by this thread + * with g_main_context_acquire(). If the context was acquired multiple + * times, the only release ownership when g_main_context_release() + * is called as many times as it was acquired. + **/ +void +g_main_context_release (GMainContext *context) +{ +#ifdef G_THREAD_ENABLED + if (context == NULL) + context = g_main_context_default (); + + LOCK_CONTEXT (context); + + context->owner_count--; + if (context->owner_count == 0) + { + context->owner = NULL; + + if (context->waiters) + { + GMainWaiter *waiter = context->waiters->data; + gboolean loop_internal_waiter = + (waiter->mutex == g_static_mutex_get_mutex (&context->mutex)); + context->waiters = g_slist_delete_link (context->waiters, + context->waiters); + if (!loop_internal_waiter) + g_mutex_lock (waiter->mutex); + + g_cond_signal (waiter->cond); + + if (!loop_internal_waiter) + g_mutex_unlock (waiter->mutex); + } + } + + UNLOCK_CONTEXT (context); + + return result; +#endif /* G_THREAD_ENABLED */ +} + +/** + * g_main_context_wait: + * @context: a #GMainContext + * @cond: a condition variable + * @mutex: a mutex, currently held + * + * Tries to become the owner of the specified context, + * as with g_main_context_acquire. But if another thread + * is the owner, atomically drop @mutex and wait on + * @cond until wait until that owner releases + * ownership or until @cond is signaled, then + * try again (once) to become the owner. + * + * Return value: %TRUE if the operation succeeded, and + * this thread is now the owner of @context. + **/ +gboolean +g_main_context_wait (GMainContext *context, + GCond *cond, + GMutex *mutex) +{ +#ifdef G_THREAD_ENABLED + gboolean result = FALSE; + GThread *self = G_THREAD_SELF; + gboolean loop_internal_waiter; + + if (context == NULL) + context = g_main_context_default (); + + loop_internal_waiter = (mutex == g_static_mutex_get_mutex (&context->mutex)); + + if (!loop_internal_waiter) + LOCK_CONTEXT (context); + + if (context->owner && context->owner != self) + { + GMainWaiter waiter; + + waiter.cond = cond; + waiter.mutex = mutex; + + context->waiters = g_slist_append (context->waiters, &waiter); + + if (!loop_internal_waiter) + UNLOCK_CONTEXT (context); + g_cond_wait (cond, mutex); + if (!loop_internal_waiter) + LOCK_CONTEXT (context); + + context->waiters = g_slist_remove (context->waiters, &waiter); + } + + if (!context->owner) + { + context->owner = self; + g_assert (context->owner_count == 0); + } + + if (context->owner == self) + { + context->owner_count++; + result = TRUE; + } + + if (!loop_internal_waiter) + UNLOCK_CONTEXT (context); + + return result; +#else /* !G_THREAD_ENABLED */ + return TRUE; +#endif /* G_THREAD_ENABLED */ +} + +/** + * g_main_context_prepare: + * @context: a #GMainContext + * @priority: location to store priority of highest priority + * source already ready. + * + * Prepares to poll sources within a main loop. The resulting information + * for polling is determined by calling g_main_context_query (). + * + * Return value: %TRUE if some source is ready to be dispatched + * prior to polling. + **/ +gboolean +g_main_context_prepare (GMainContext *context, + gint *priority) +{ + gint n_ready = 0; + gint current_priority = G_MAXINT; + GSource *source; + + if (context == NULL) + context = g_main_context_default (); + + LOCK_CONTEXT (context); + + context->time_is_current = FALSE; + + if (context->in_check_or_prepare) + { + g_warning ("g_main_context_prepare() called recursively from within a source's check() or " + "prepare() member."); + UNLOCK_CONTEXT (context); + return FALSE; + } + +#ifdef G_THREADS_ENABLED + if (context->poll_waiting) + { + g_warning("g_main_context_prepare(): main loop already active in another thread"); + UNLOCK_CONTEXT (context); + return FALSE; + } + + context->poll_waiting = TRUE; +#endif /* G_THREADS_ENABLED */ + +#if 0 + /* If recursing, finish up current dispatch, before starting over */ + if (context->pending_dispatches) + { + if (dispatch) + g_main_dispatch (context, ¤t_time); + + UNLOCK_CONTEXT (context); + return TRUE; + } +#endif + + /* If recursing, clear list of pending dispatches */ + g_ptr_array_set_size (context->pending_dispatches, 0); + + /* Prepare all sources */ + + context->timeout = -1; + + source = next_valid_source (context, NULL); + while (source) + { + gint source_timeout = -1; + + if ((n_ready > 0) && (source->priority > current_priority)) + { + SOURCE_UNREF (source, context); + break; + } + if ((source->flags & G_HOOK_FLAG_IN_CALL) && !(source->flags & G_SOURCE_CAN_RECURSE)) + goto next; + + if (!(source->flags & G_SOURCE_READY)) + { + gboolean result; + gboolean (*prepare) (GSource *source, + gint *timeout); + + prepare = source->source_funcs->prepare; + context->in_check_or_prepare++; + UNLOCK_CONTEXT (context); + + result = (*prepare) (source, &source_timeout); + + LOCK_CONTEXT (context); + context->in_check_or_prepare--; + + if (result) + source->flags |= G_SOURCE_READY; + } + + if (source->flags & G_SOURCE_READY) + { + n_ready++; + current_priority = source->priority; + context->timeout = 0; + } + + if (source_timeout >= 0) + { + if (context->timeout < 0) + context->timeout = source_timeout; + else + context->timeout = MIN (context->timeout, source_timeout); + } + + next: + source = next_valid_source (context, source); + } + + UNLOCK_CONTEXT (context); + + if (priority) + *priority = current_priority; + + return (n_ready > 0); +} + +/** + * g_main_context_query: + * @context: a #GMainContext + * @max_priority: maximum priority source to check + * @timeout: location to store timeout to be used in polling + * @fds: location to store #GPollFD records that need to be polled. + * @n_fds: length of @fds. + * + * Determines information necessary to poll this main loop. + * + * Return value: the number of records actually stored in @fds, + * or, if more than @n_fds records need to be stored, the number + * of records that need to be stored. + **/ +gint +g_main_context_query (GMainContext *context, + gint max_priority, + gint *timeout, + GPollFD *fds, + gint n_fds) +{ + gint n_poll; + GPollRec *pollrec; + + LOCK_CONTEXT (context); + + pollrec = context->poll_records; + n_poll = 0; + while (pollrec && max_priority >= pollrec->priority) + { + if (pollrec->fd->events) + { + if (n_poll < n_fds) + { + fds[n_poll].fd = pollrec->fd->fd; + /* In direct contradiction to the Unix98 spec, IRIX runs into + * difficulty if you pass in POLLERR, POLLHUP or POLLNVAL + * flags in the events field of the pollfd while it should + * just ignoring them. So we mask them out here. + */ + fds[n_poll].events = pollrec->fd->events & ~(G_IO_ERR|G_IO_HUP|G_IO_NVAL); + fds[n_poll].revents = 0; + } + n_poll++; + } + + pollrec = pollrec->next; + } + +#ifdef G_THREADS_ENABLED + context->poll_changed = FALSE; +#endif + + if (timeout) + { + *timeout = context->timeout; + if (timeout != 0) + context->time_is_current = FALSE; + } + + UNLOCK_CONTEXT (context); + + return n_poll; +} + +/** + * g_main_context_check: + * @context: a #GMainContext + * @max_priority: the maximum numerical priority of sources to check + * @fds: array of #GPollFD's that was passed to the last call to + * g_main_context_query() + * @n_fds: return value of g_main_context_query() + * + * Pass the results of polling back to the main loop. + * + * Return value: %TRUE if some sources are ready to be dispatched. + **/ +gboolean +g_main_context_check (GMainContext *context, + gint max_priority, + GPollFD *fds, + gint n_fds) +{ + GSource *source; + GPollRec *pollrec; + gint n_ready = 0; + gint i; + + LOCK_CONTEXT (context); + + if (context->in_check_or_prepare) + { + g_warning ("g_main_context_check() called recursively from within a source's check() or " + "prepare() member."); + UNLOCK_CONTEXT (context); + return FALSE; + } + +#ifdef G_THREADS_ENABLED + if (!context->poll_waiting) + { +#ifndef G_OS_WIN32 + gchar c; + read (context->wake_up_pipe[0], &c, 1); +#endif + } + else + context->poll_waiting = FALSE; + + /* If the set of poll file descriptors changed, bail out + * and let the main loop rerun + */ + if (context->poll_changed) + { + UNLOCK_CONTEXT (context); + return 0; + } +#endif /* G_THREADS_ENABLED */ + + pollrec = context->poll_records; + i = 0; + while (i < n_fds) + { + if (pollrec->fd->events) + { + pollrec->fd->revents = fds[i].revents; + i++; + } + pollrec = pollrec->next; + } + + source = next_valid_source (context, NULL); + while (source) + { + if ((n_ready > 0) && (source->priority > max_priority)) + { + SOURCE_UNREF (source, context); + break; + } + if ((source->flags & G_HOOK_FLAG_IN_CALL) && !(source->flags & G_SOURCE_CAN_RECURSE)) + goto next; + + if (!(source->flags & G_SOURCE_READY)) + { + gboolean result; + gboolean (*check) (GSource *source); + + check = source->source_funcs->check; + + context->in_check_or_prepare++; + UNLOCK_CONTEXT (context); + + result = (*check) (source); + + LOCK_CONTEXT (context); + context->in_check_or_prepare--; + + if (result) + source->flags |= G_SOURCE_READY; + } + + if (source->flags & G_SOURCE_READY) + { + source->ref_count++; + g_ptr_array_add (context->pending_dispatches, source); + + n_ready++; + } + + next: + source = next_valid_source (context, source); + } + + UNLOCK_CONTEXT (context); + + return n_ready > 0; +} + +/** + * g_main_context_dispatch: + * @context: a #GMainContext + * + * Dispatch all pending sources() + **/ +void +g_main_context_dispatch (GMainContext *context) +{ + LOCK_CONTEXT (context); + + if (context->pending_dispatches->len > 0) + { + g_main_dispatch (context); + } + + UNLOCK_CONTEXT (context); +} + +/* HOLDS context lock */ +static gboolean +g_main_context_iterate (GMainContext *context, + gboolean block, + gboolean dispatch, + GThread *self) +{ + gint max_priority; + gint timeout; + gboolean some_ready; + gint nfds, allocated_nfds; + GPollFD *fds = NULL; + + UNLOCK_CONTEXT (context); + +#ifdef G_THREADS_ENABLED + if (!g_main_context_acquire (context)) + { + gboolean got_ownership; + + g_return_val_if_fail (g_thread_supported (), FALSE); + + if (!block) + return FALSE; + + LOCK_CONTEXT (context); + + if (!context->cond) + context->cond = g_cond_new (); + + got_ownership = g_main_context_wait (context, + context->cond, + g_static_mutex_get_mutex (&context->mutex)); + + if (!got_ownership) + { + UNLOCK_CONTEXT (context); + return FALSE; + } + } + else + LOCK_CONTEXT (context); +#endif /* G_THREADS_ENABLED */ + + if (!context->cached_poll_array) + { + context->cached_poll_array_size = context->n_poll_records; + context->cached_poll_array = g_new (GPollFD, context->n_poll_records); + } + + allocated_nfds = context->cached_poll_array_size; + fds = context->cached_poll_array; + + UNLOCK_CONTEXT (context); + + some_ready = g_main_context_prepare (context, &max_priority); + + while ((nfds = g_main_context_query (context, max_priority, &timeout, fds, + allocated_nfds)) > allocated_nfds) + { + LOCK_CONTEXT (context); + g_free (fds); + context->cached_poll_array_size = allocated_nfds = nfds; + context->cached_poll_array = fds = g_new (GPollFD, nfds); + UNLOCK_CONTEXT (context); + } + + if (!block) + timeout = 0; + + g_main_context_poll (context, timeout, max_priority, fds, nfds); + + g_main_context_check (context, max_priority, fds, nfds); + + if (dispatch) + g_main_context_dispatch (context); + +#ifdef G_THREADS_ENABLED + g_main_context_release (context); +#endif /* G_THREADS_ENABLED */ + + LOCK_CONTEXT (context); + + return some_ready; +} + +/** + * g_main_context_pending: + * @context: a #GMainContext (if %NULL, the default context will be used) + * + * Check if any sources have pending events for the given context. + * + * Return value: %TRUE if events are pending. + **/ +gboolean +g_main_context_pending (GMainContext *context) +{ + gboolean retval; + + if (!context) + context = g_main_context_default(); + + LOCK_CONTEXT (context); + retval = g_main_context_iterate (context, FALSE, FALSE, G_THREAD_SELF); + UNLOCK_CONTEXT (context); + + return retval; +} + +/** + * g_main_context_iteration: + * @context: a #GMainContext (if %NULL, the default context will be used) + * @may_block: whether the call may block. + * + * Run a single iteration for the given main loop. This involves + * checking to see if any event sources are ready to be processed, + * then if no events sources are ready and @may_block is %TRUE, waiting + * for a source to become ready, then dispatching the highest priority + * events sources that are ready. Note that even when @may_block is %TRUE, + * it is still possible for g_main_context_iteration() to return + * %FALSE, since the the wait may be interrupted for other + * reasons than an event source becoming ready. + * + * Return value: %TRUE if events were dispatched. + **/ +gboolean +g_main_context_iteration (GMainContext *context, gboolean may_block) +{ + gboolean retval; + + if (!context) + context = g_main_context_default(); + + LOCK_CONTEXT (context); + retval = g_main_context_iterate (context, may_block, TRUE, G_THREAD_SELF); + UNLOCK_CONTEXT (context); + + return retval; +} + +/** + * g_main_loop_new: + * @context: a #GMainContext (if %NULL, the default context will be used). + * @is_running: set to TRUE to indicate that the loop is running. This + * is not very important since calling g_main_run() will set this to + * TRUE anyway. + * + * Create a new #GMainLoop structure + * + * Return value: + **/ +GMainLoop * +g_main_loop_new (GMainContext *context, + gboolean is_running) +{ + GMainLoop *loop; + + if (!context) + context = g_main_context_default(); + + g_main_context_ref (context); + + loop = g_new0 (GMainLoop, 1); + loop->context = context; + loop->is_running = is_running != FALSE; + loop->ref_count = 1; + + return loop; +} + +/** + * g_main_loop_ref: + * @loop: a #GMainLoop + * + * Increase the reference count on a #GMainLoop object by one. + * + * Return value: @loop + **/ +GMainLoop * +g_main_loop_ref (GMainLoop *loop) +{ + g_return_val_if_fail (loop != NULL, NULL); + g_return_val_if_fail (loop->ref_count > 0, NULL); + + LOCK_CONTEXT (loop->context); + loop->ref_count++; + UNLOCK_CONTEXT (loop->context); + + return loop; +} + +static void +g_main_loop_unref_and_unlock (GMainLoop *loop) +{ + loop->ref_count--; + if (loop->ref_count == 0) + { + /* When the ref_count is 0, there can be nobody else using the + * loop, so it is safe to unlock before destroying. + */ + g_main_context_unref_and_unlock (loop->context); + g_free (loop); + } + else + UNLOCK_CONTEXT (loop->context); +} + +/** + * g_main_loop_unref: + * @loop: a #GMainLoop + * + * Decreases the reference count on a #GMainLoop object by one. If + * the result is zero, free the loop and free all associated memory. + **/ +void +g_main_loop_unref (GMainLoop *loop) +{ + g_return_if_fail (loop != NULL); + g_return_if_fail (loop->ref_count > 0); + + LOCK_CONTEXT (loop->context); + + g_main_loop_unref_and_unlock (loop); +} + +/** + * g_main_loop_run: + * @loop: a #GMainLoop + * + * Run a main loop until g_main_quit() is called on the loop. + * If this is called for the thread of the loop's #GMainContext, + * it will process events from the loop, otherwise it will + * simply wait. + **/ +void +g_main_loop_run (GMainLoop *loop) +{ + GThread *self = G_THREAD_SELF; + + g_return_if_fail (loop != NULL); + g_return_if_fail (loop->ref_count > 0); + +#ifdef G_THREADS_ENABLED + if (!g_main_context_acquire (loop->context)) + { + gboolean got_ownership = FALSE; + + /* Another thread owns this context */ + if (!g_thread_supported ()) + { + g_warning ("g_main_loop_run() was called from second thread but" + "g_thread_init() was never called."); + return; + } + + LOCK_CONTEXT (loop->context); + + loop->ref_count++; + + if (!loop->is_running) + loop->is_running = TRUE; + + if (!loop->context->cond) + loop->context->cond = g_cond_new (); + + while (loop->is_running || !got_ownership) + got_ownership = g_main_context_wait (loop->context, + loop->context->cond, + g_static_mutex_get_mutex (&loop->context->mutex)); + + if (!loop->is_running) + { + UNLOCK_CONTEXT (loop->context); + if (got_ownership) + g_main_context_release (loop->context); + g_main_loop_unref (loop); + return; + } + + g_assert (got_ownership); + } + else + LOCK_CONTEXT (loop->context); +#endif /* G_THREADS_ENABLED */ + + if (loop->context->in_check_or_prepare) + { + g_warning ("g_main_run(): called recursively from within a source's check() or " + "prepare() member, iteration not possible."); + return; + } + + loop->ref_count++; + loop->is_running = TRUE; + while (loop->is_running) + g_main_context_iterate (loop->context, TRUE, TRUE, self); + +#ifdef G_THREADS_ENABLED + g_main_context_release (loop->context); +#endif /* G_THREADS_ENABLED */ + + g_main_loop_unref_and_unlock (loop); +} + +/** + * g_main_loop_quit: + * @loop: a #GMainLoop + * + * Stops a #GMainLoop from running. Any calls to g_main_loop_run() + * for the loop will return. + **/ +void +g_main_loop_quit (GMainLoop *loop) +{ + g_return_if_fail (loop != NULL); + g_return_if_fail (loop->ref_count > 0); + + LOCK_CONTEXT (loop->context); + loop->is_running = FALSE; + g_main_context_wakeup_unlocked (loop->context); + + if (loop->context->cond) + g_cond_broadcast (loop->context->cond); + UNLOCK_CONTEXT (loop->context); +} + +/** + * g_main_loop_is_running: + * @loop: a #GMainLoop. + * + * Check to see if the main loop is currently being run via g_main_run() + * + * Return value: %TRUE if the mainloop is currently being run. + **/ +gboolean +g_main_loop_is_running (GMainLoop *loop) +{ + g_return_val_if_fail (loop != NULL, FALSE); + g_return_val_if_fail (loop->ref_count > 0, FALSE); + + return loop->is_running; +} + +/** + * g_main_loop_get_context: + * @loop: a #GMainLoop. + * + * Returns the #GMainContext of @loop. + * + * Return value: the #GMainContext of @loop + **/ +GMainContext * +g_main_loop_get_context (GMainLoop *loop) +{ + g_return_val_if_fail (loop != NULL, NULL); + g_return_val_if_fail (loop->ref_count > 0, NULL); + + return loop->context; +} + +/* HOLDS: context's lock */ +static void +g_main_context_poll (GMainContext *context, + gint timeout, + gint priority, + GPollFD *fds, + gint n_fds) +{ +#ifdef G_MAIN_POLL_DEBUG + GTimer *poll_timer; + GPollRec *pollrec; + gint i; +#endif + + GPollFunc poll_func; + + if (n_fds || timeout != 0) + { +#ifdef G_MAIN_POLL_DEBUG + g_print ("g_main_poll(%d) timeout: %d\n", n_fds, timeout); + poll_timer = g_timer_new (); +#endif + + LOCK_CONTEXT (context); + + poll_func = context->poll_func; + + UNLOCK_CONTEXT (context); + if ((*poll_func) (fds, n_fds, timeout) < 0 && errno != EINTR) + g_warning ("poll(2) failed due to: %s.", + g_strerror (errno)); + +#ifdef G_MAIN_POLL_DEBUG + LOCK_CONTEXT (context); + + g_print ("g_main_poll(%d) timeout: %d - elapsed %12.10f seconds", + n_fds, + timeout, + g_timer_elapsed (poll_timer, NULL)); + g_timer_destroy (poll_timer); + pollrec = context->poll_records; + i = 0; + while (i < n_fds) + { + if (pollrec->fd->events) + { + if (fds[i].revents) + { + g_print (" [%d:", fds[i].fd); + if (fds[i].revents & G_IO_IN) + g_print ("i"); + if (fds[i].revents & G_IO_OUT) + g_print ("o"); + if (fds[i].revents & G_IO_PRI) + g_print ("p"); + if (fds[i].revents & G_IO_ERR) + g_print ("e"); + if (fds[i].revents & G_IO_HUP) + g_print ("h"); + if (fds[i].revents & G_IO_NVAL) + g_print ("n"); + g_print ("]"); + } + i++; + } + pollrec = pollrec->next; + } + g_print ("\n"); + + UNLOCK_CONTEXT (context); +#endif + } /* if (n_fds || timeout != 0) */ +} + +/** + * g_main_context_add_poll: + * @context: a #GMainContext (or %NULL for the default context) + * @fd: a #GPollFD structure holding information about a file + * descriptor to watch. + * @priority: the priority for this file descriptor which should be + * the same as the priority used for g_source_attach() to ensure that the + * file descriptor is polled whenever the results may be needed. + * + * Add a file descriptor to the set of file descriptors polled * for + * this context. This will very seldom be used directly. Instead + * a typical event source will use g_source_add_poll() instead. + **/ +void +g_main_context_add_poll (GMainContext *context, + GPollFD *fd, + gint priority) +{ + if (!context) + context = g_main_context_default (); + + g_return_if_fail (context->ref_count > 0); + g_return_if_fail (fd); + + LOCK_CONTEXT (context); + g_main_context_add_poll_unlocked (context, priority, fd); + UNLOCK_CONTEXT (context); +} + +/* HOLDS: main_loop_lock */ +static void +g_main_context_add_poll_unlocked (GMainContext *context, + gint priority, + GPollFD *fd) +{ + GPollRec *lastrec, *pollrec, *newrec; + + if (!context->poll_chunk) + context->poll_chunk = g_mem_chunk_create (GPollRec, 32, G_ALLOC_ONLY); + + if (context->poll_free_list) + { + newrec = context->poll_free_list; + context->poll_free_list = newrec->next; + } + else + newrec = g_chunk_new (GPollRec, context->poll_chunk); + + /* This file descriptor may be checked before we ever poll */ + fd->revents = 0; + newrec->fd = fd; + newrec->priority = priority; + + lastrec = NULL; + pollrec = context->poll_records; + while (pollrec && priority >= pollrec->priority) + { + lastrec = pollrec; + pollrec = pollrec->next; + } + + if (lastrec) + lastrec->next = newrec; + else + context->poll_records = newrec; + + newrec->next = pollrec; + + context->n_poll_records++; + +#ifdef G_THREADS_ENABLED + context->poll_changed = TRUE; + + /* Now wake up the main loop if it is waiting in the poll() */ + g_main_context_wakeup_unlocked (context); +#endif +} + +/** + * g_main_context_remove_poll: + * @context:a #GMainContext + * @fd: a #GPollFD descriptor previously added with g_main_context_add_poll() + * + * Remove file descriptor from the set of file descriptors to be + * polled for a particular context. + **/ +void +g_main_context_remove_poll (GMainContext *context, + GPollFD *fd) +{ + if (!context) + context = g_main_context_default (); + + g_return_if_fail (context->ref_count > 0); + g_return_if_fail (fd); + + LOCK_CONTEXT (context); + g_main_context_remove_poll_unlocked (context, fd); + UNLOCK_CONTEXT (context); +} + +static void +g_main_context_remove_poll_unlocked (GMainContext *context, + GPollFD *fd) +{ + GPollRec *pollrec, *lastrec; + + lastrec = NULL; + pollrec = context->poll_records; + + while (pollrec) + { + if (pollrec->fd == fd) + { + if (lastrec != NULL) + lastrec->next = pollrec->next; + else + context->poll_records = pollrec->next; + +#ifdef ENABLE_GC_FRIENDLY + pollrec->fd = NULL; +#endif /* ENABLE_GC_FRIENDLY */ + + pollrec->next = context->poll_free_list; + context->poll_free_list = pollrec; + + context->n_poll_records--; + break; + } + lastrec = pollrec; + pollrec = pollrec->next; + } + +#ifdef G_THREADS_ENABLED + context->poll_changed = TRUE; + + /* Now wake up the main loop if it is waiting in the poll() */ + g_main_context_wakeup_unlocked (context); +#endif +} + +/** + * g_source_get_current_time: + * @source: a #GSource + * @timeval: #GTimeVal structure in which to store current time. + * + * Gets the "current time" to be used when checking + * this source. The advantage of calling this function over + * calling g_get_current_time() directly is that when + * checking multiple sources, GLib can cache a single value + * instead of having to repeatedly get the system time. + **/ +void +g_source_get_current_time (GSource *source, + GTimeVal *timeval) +{ + GMainContext *context; + + g_return_if_fail (source->context != NULL); + + context = source->context; + + LOCK_CONTEXT (context); + + if (!context->time_is_current) + { + g_get_current_time (&context->current_time); + context->time_is_current = TRUE; + } + + *timeval = context->current_time; + + UNLOCK_CONTEXT (context); +} + +/** + * g_main_context_set_poll_func: + * @context: a #GMainContext + * @func: the function to call to poll all file descriptors + * + * Sets the function to use to handle polling of file descriptors. It + * will be used instead of the poll() system call (or GLib's + * replacement function, which is used where poll() isn't available). + * + * This function could possibly be used to integrate the GLib event + * loop with an external event loop. + **/ +void +g_main_context_set_poll_func (GMainContext *context, + GPollFunc func) +{ + if (!context) + context = g_main_context_default (); + + g_return_if_fail (context->ref_count > 0); + + LOCK_CONTEXT (context); + + if (func) + context->poll_func = func; + else + { +#ifdef HAVE_POLL + context->poll_func = (GPollFunc) poll; +#else + context->poll_func = (GPollFunc) g_poll; +#endif + } + + UNLOCK_CONTEXT (context); +} + +/** + * g_main_context_get_poll_func: + * @context: a #GMainContext + * + * Gets the poll function set by g_main_context_set_poll_func() + * + * Return value: the poll function + **/ +GPollFunc +g_main_context_get_poll_func (GMainContext *context) +{ + GPollFunc result; + + if (!context) + context = g_main_context_default (); + + g_return_val_if_fail (context->ref_count > 0, NULL); + + LOCK_CONTEXT (context); + result = context->poll_func; + UNLOCK_CONTEXT (context); + + return result; +} + +/* HOLDS: context's lock */ +/* Wake the main loop up from a poll() */ +static void +g_main_context_wakeup_unlocked (GMainContext *context) +{ +#ifdef G_THREADS_ENABLED + if (g_thread_supported() && context->poll_waiting) + { + context->poll_waiting = FALSE; +#ifndef G_OS_WIN32 + write (context->wake_up_pipe[1], "A", 1); +#else + ReleaseSemaphore (context->wake_up_semaphore, 1, NULL); +#endif + } +#endif +} + +/** + * g_main_context_wakeup: + * @context: a #GMainContext + * + * If @context is currently waiting in a poll(), interrupt + * the poll(), and continue the iteration process. + **/ +void +g_main_context_wakeup (GMainContext *context) +{ + if (!context) + context = g_main_context_default (); + + g_return_if_fail (context->ref_count > 0); + + LOCK_CONTEXT (context); + g_main_context_wakeup_unlocked (context); + UNLOCK_CONTEXT (context); +} + +/* Timeouts */ + +static void +g_timeout_set_expiration (GTimeoutSource *timeout_source, + GTimeVal *current_time) +{ + guint seconds = timeout_source->interval / 1000; + guint msecs = timeout_source->interval - seconds * 1000; + + timeout_source->expiration.tv_sec = current_time->tv_sec + seconds; + timeout_source->expiration.tv_usec = current_time->tv_usec + msecs * 1000; + if (timeout_source->expiration.tv_usec >= 1000000) + { + timeout_source->expiration.tv_usec -= 1000000; + timeout_source->expiration.tv_sec++; + } +} + +static gboolean +g_timeout_prepare (GSource *source, + gint *timeout) +{ + glong sec; + glong msec; + GTimeVal current_time; + + GTimeoutSource *timeout_source = (GTimeoutSource *)source; + + g_source_get_current_time (source, ¤t_time); + + sec = timeout_source->expiration.tv_sec - current_time.tv_sec; + msec = (timeout_source->expiration.tv_usec - current_time.tv_usec) / 1000; + + /* We do the following in a rather convoluted fashion to deal with + * the fact that we don't have an integral type big enough to hold + * the difference of two timevals in millseconds. + */ + if (sec < 0 || (sec == 0 && msec < 0)) + msec = 0; + else + { + glong interval_sec = timeout_source->interval / 1000; + glong interval_msec = timeout_source->interval % 1000; + + if (msec < 0) + { + msec += 1000; + sec -= 1; + } + + if (sec > interval_sec || + (sec == interval_sec && msec > interval_msec)) + { + /* The system time has been set backwards, so we + * reset the expiration time to now + timeout_source->interval; + * this at least avoids hanging for long periods of time. + */ + g_timeout_set_expiration (timeout_source, ¤t_time); + msec = timeout_source->interval; + } + else + { + msec += sec * 1000; + } + } + + *timeout = (gint)msec; + + return msec == 0; +} + +static gboolean +g_timeout_check (GSource *source) +{ + GTimeVal current_time; + GTimeoutSource *timeout_source = (GTimeoutSource *)source; + + g_source_get_current_time (source, ¤t_time); + + return ((timeout_source->expiration.tv_sec < current_time.tv_sec) || + ((timeout_source->expiration.tv_sec == current_time.tv_sec) && + (timeout_source->expiration.tv_usec <= current_time.tv_usec))); +} + +static gboolean +g_timeout_dispatch (GSource *source, + GSourceFunc callback, + gpointer user_data) +{ + GTimeoutSource *timeout_source = (GTimeoutSource *)source; + + if (!callback) + { + g_warning ("Timeout source dispatched without callback\n" + "You must call g_source_set_callback()."); + return FALSE; + } + + if (callback (user_data)) + { + GTimeVal current_time; + + g_source_get_current_time (source, ¤t_time); + g_timeout_set_expiration (timeout_source, ¤t_time); + + return TRUE; + } + else + return FALSE; +} + +/** + * g_timeout_source_new: + * @interval: the timeout interval in milliseconds. + * + * Create a new timeout source. + * + * The source will not initially be associated with any #GMainContext + * and must be added to one with g_source_attach() before it will be + * executed. + * + * Return value: the newly create timeout source + **/ +GSource * +g_timeout_source_new (guint interval) +{ + GSource *source = g_source_new (&g_timeout_funcs, sizeof (GTimeoutSource)); + GTimeoutSource *timeout_source = (GTimeoutSource *)source; + GTimeVal current_time; + + timeout_source->interval = interval; + + g_get_current_time (¤t_time); + g_timeout_set_expiration (timeout_source, ¤t_time); + + return source; +} + +/** + * g_timeout_add_full: + * @priority: the priority of the idle source. Typically this will be in the + * range btweeen #G_PRIORITY_DEFAULT_IDLE and #G_PRIORITY_HIGH_IDLE. + * @interval: the time between calls to the function, in milliseconds + * (1/1000ths of a second.) + * @function: function to call + * @data: data to pass to @function + * @notify: function to call when the idle is removed, or %NULL + * + * Sets a function to be called at regular intervals, with the given + * priority. The function is called repeatedly until it returns + * FALSE, at which point the timeout is automatically destroyed and + * the function will not be called again. The @notify function is + * called when the timeout is destroyed. The first call to the + * function will be at the end of the first @interval. + * + * Note that timeout functions may be delayed, due to the processing of other + * event sources. Thus they should not be relied on for precise timing. + * After each call to the timeout function, the time of the next + * timeout is recalculated based on the current time and the given interval + * (it does not try to 'catch up' time lost in delays). + * + * Return value: the id of event source. + **/ +guint +g_timeout_add_full (gint priority, + guint interval, + GSourceFunc function, + gpointer data, + GDestroyNotify notify) +{ + GSource *source; + guint id; + + g_return_val_if_fail (function != NULL, 0); + + source = g_timeout_source_new (interval); + + if (priority != G_PRIORITY_DEFAULT) + g_source_set_priority (source, priority); + + g_source_set_callback (source, function, data, notify); + id = g_source_attach (source, NULL); + g_source_unref (source); + + return id; +} + +/** + * g_timeout_add: + * @interval: the time between calls to the function, in milliseconds + * (1/1000ths of a second.) + * @function: function to call + * @data: data to pass to @function + * + * Sets a function to be called at regular intervals, with the default + * priority, #G_PRIORITY_DEFAULT. The function is called repeatedly + * until it returns FALSE, at which point the timeout is automatically + * destroyed and the function will not be called again. The @notify + * function is called when the timeout is destroyed. The first call + * to the function will be at the end of the first @interval. + * + * Note that timeout functions may be delayed, due to the processing of other + * event sources. Thus they should not be relied on for precise timing. + * After each call to the timeout function, the time of the next + * timeout is recalculated based on the current time and the given interval + * (it does not try to 'catch up' time lost in delays). + * + * Return value: the id of event source. + **/ +guint +g_timeout_add (guint32 interval, + GSourceFunc function, + gpointer data) +{ + return g_timeout_add_full (G_PRIORITY_DEFAULT, + interval, function, data, NULL); +} + +/* Idle functions */ + +static gboolean +g_idle_prepare (GSource *source, + gint *timeout) +{ + *timeout = 0; + + return TRUE; +} + +static gboolean +g_idle_check (GSource *source) +{ + return TRUE; +} + +static gboolean +g_idle_dispatch (GSource *source, + GSourceFunc callback, + gpointer user_data) +{ + if (!callback) + { + g_warning ("Idle source dispatched without callback\n" + "You must call g_source_set_callback()."); + return FALSE; + } + + return callback (user_data); +} + +/** + * g_idle_source_new: + * + * Create a new idle source. + * + * The source will not initially be associated with any #GMainContext + * and must be added to one with g_source_attach() before it will be + * executed. + * + * Return value: the newly created idle source + **/ +GSource * +g_idle_source_new (void) +{ + return g_source_new (&g_idle_funcs, sizeof (GSource)); +} + +/** + * g_idle_add_full: + * @priority: the priority of the idle source. Typically this will be in the + * range btweeen #G_PRIORITY_DEFAULT_IDLE and #G_PRIORITY_HIGH_IDLE. + * @function: function to call + * @data: data to pass to @function + * @notify: function to call when the idle is removed, or %NULL + * + * Adds a function to be called whenever there are no higher priority + * events pending. If the function returns FALSE it is automatically + * removed from the list of event sources and will not be called again. + * + * Return value: the id of the event source. + **/ +guint +g_idle_add_full (gint priority, + GSourceFunc function, + gpointer data, + GDestroyNotify notify) +{ + GSource *source; + guint id; + + g_return_val_if_fail (function != NULL, 0); + + source = g_idle_source_new (); + + if (priority != G_PRIORITY_DEFAULT) + g_source_set_priority (source, priority); + + g_source_set_callback (source, function, data, notify); + id = g_source_attach (source, NULL); + g_source_unref (source); + + return id; +} + +/** + * g_idle_add: + * @function: function to call + * @data: data to pass to @function. + * + * Adds a function to be called whenever there are no higher priority + * events pending to the default main loop. The function is given the + * default idle priority, #G_PRIORITY_DEFAULT_IDLE. If the function + * returns FALSE it is automatically removed from the list of event + * sources and will not be called again. + * + * Return value: the id of the event source. + **/ +guint +g_idle_add (GSourceFunc function, + gpointer data) +{ + return g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, function, data, NULL); +} + +/** + * g_idle_remove_by_data: + * @data: the data for the idle source's callback. + * + * Removes the idle function with the given data. + * + * Return value: %TRUE if an idle source was found and removed. + **/ +gboolean +g_idle_remove_by_data (gpointer data) +{ + return g_source_remove_by_funcs_user_data (&g_idle_funcs, data); +} + diff --git a/graf2d/win32gdk/gdk/src/glib/gmain.h b/graf2d/win32gdk/gdk/src/glib/gmain.h index dd500c6e83c..cd952888712 100644 --- a/graf2d/win32gdk/gdk/src/glib/gmain.h +++ b/graf2d/win32gdk/gdk/src/glib/gmain.h @@ -20,8 +20,8 @@ #ifndef __G_MAIN_H__ #define __G_MAIN_H__ -#include <gslist.h> -#include <gthread.h> +#include <glib/gslist.h> +#include <glib/gthread.h> G_BEGIN_DECLS @@ -59,10 +59,13 @@ struct _GSourceCallbackFuncs void (*ref) (gpointer cb_data); void (*unref) (gpointer cb_data); void (*get) (gpointer cb_data, + GSource *source, GSourceFunc *func, gpointer *data); }; +typedef void (*GSourceDummyMarshal) (void); + struct _GSourceFuncs { gboolean (*prepare) (GSource *source, @@ -71,7 +74,11 @@ struct _GSourceFuncs gboolean (*dispatch) (GSource *source, GSourceFunc callback, gpointer user_data); - void (*destroy) (GSource *source); /* Can be NULL */ + void (*finalize) (GSource *source); /* Can be NULL */ + + /* For use by g_source_set_closure */ + GSourceFunc closure_callback; + GSourceDummyMarshal closure_marshal; /* Really is of type GClosureMarshal */ }; /* Any definitions using GPollFD or GPollFunc are primarily @@ -124,7 +131,9 @@ struct _GPollFD /* GMainContext: */ -GMainContext *g_main_context_get (GThread *thread); +GMainContext *g_main_context_new (void); +void g_main_context_ref (GMainContext *context); +void g_main_context_unref (GMainContext *context); GMainContext *g_main_context_default (void); gboolean g_main_context_iteration (GMainContext *context, @@ -143,6 +152,13 @@ GSource *g_main_context_find_source_by_funcs_user_data (GMainContext *conte /* Low level functions for implementing custom main loops. */ +void g_main_context_wakeup (GMainContext *context); +gboolean g_main_context_acquire (GMainContext *context); +void g_main_context_release (GMainContext *context); +gboolean g_main_context_wait (GMainContext *context, + GCond *cond, + GMutex *mutex); + gboolean g_main_context_prepare (GMainContext *context, gint *priority); gint g_main_context_query (GMainContext *context, @@ -174,8 +190,10 @@ GMainLoop *g_main_loop_new (GMainContext *context, gboolean is_running); void g_main_loop_run (GMainLoop *loop); void g_main_loop_quit (GMainLoop *loop); -void g_main_loop_destroy (GMainLoop *loop); +GMainLoop *g_main_loop_ref (GMainLoop *loop); +void g_main_loop_unref (GMainLoop *loop); gboolean g_main_loop_is_running (GMainLoop *loop); +GMainContext *g_main_loop_get_context (GMainLoop *loop); /* GSource: */ @@ -232,20 +250,16 @@ void g_get_current_time (GTimeVal *result); /* ============== Compat main loop stuff ================== */ +#ifndef G_DISABLE_DEPRECATED + /* Legacy names for GMainLoop functions */ #define g_main_new(is_running) g_main_loop_new (NULL, is_running); #define g_main_run(loop) g_main_loop_run(loop) #define g_main_quit(loop) g_main_loop_quit(loop) -#define g_main_destroy(loop) g_main_loop_destroy(loop) +#define g_main_destroy(loop) g_main_loop_unref(loop) #define g_main_is_running(loop) g_main_loop_is_running(loop) -/* Source manipulation by ID */ -gboolean g_source_remove (guint tag); -gboolean g_source_remove_by_user_data (gpointer user_data); -gboolean g_source_remove_by_funcs_user_data (GSourceFuncs *funcs, - gpointer user_data); - /* Functions to manipulate the default main loop */ @@ -254,6 +268,14 @@ gboolean g_source_remove_by_funcs_user_data (GSourceFuncs *funcs, #define g_main_set_poll_func(func) g_main_context_set_poll_func (NULL, func) +#endif /* G_DISABLE_DEPRECATED */ + +/* Source manipulation by ID */ +gboolean g_source_remove (guint tag); +gboolean g_source_remove_by_user_data (gpointer user_data); +gboolean g_source_remove_by_funcs_user_data (GSourceFuncs *funcs, + gpointer user_data); + /* Idles and timeouts */ guint g_timeout_add_full (gint priority, guint interval, @@ -271,6 +293,10 @@ guint g_idle_add_full (gint priority, GDestroyNotify notify); gboolean g_idle_remove_by_data (gpointer data); +/* Hook for GClosure / GSource integration. Don't touch */ +GLIB_VAR GSourceFuncs g_timeout_funcs; +GLIB_VAR GSourceFuncs g_idle_funcs; + #ifdef G_OS_WIN32 /* This is used to add polling for Windows messages. GDK (GTK+) programs diff --git a/graf2d/win32gdk/gdk/src/glib/gmarkup.c b/graf2d/win32gdk/gdk/src/glib/gmarkup.c new file mode 100644 index 00000000000..bf7ff376c97 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gmarkup.c @@ -0,0 +1,1735 @@ +/* gmarkup.c - Simple XML-like parser + * + * Copyright 2000 Red Hat, Inc. + * + * GLib is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * GLib is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with GLib; see the file COPYING.LIB. If not, + * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#include "glib.h" + +#include <string.h> +#include <stdio.h> +#include <stdlib.h> +#include <errno.h> + +#include "glibintl.h" + +GQuark +g_markup_error_quark () +{ + static GQuark error_quark = 0; + + if (error_quark == 0) + error_quark = g_quark_from_static_string ("g-markup-error-quark"); + + return error_quark; +} + +typedef enum +{ + STATE_START, + STATE_AFTER_OPEN_ANGLE, + STATE_AFTER_CLOSE_ANGLE, + STATE_AFTER_ELISION_SLASH, /* the slash that obviates need for end element */ + STATE_INSIDE_OPEN_TAG_NAME, + STATE_INSIDE_ATTRIBUTE_NAME, + STATE_BETWEEN_ATTRIBUTES, + STATE_AFTER_ATTRIBUTE_EQUALS_SIGN, + STATE_INSIDE_ATTRIBUTE_VALUE, + STATE_INSIDE_TEXT, + STATE_AFTER_CLOSE_TAG_SLASH, + STATE_INSIDE_CLOSE_TAG_NAME, + STATE_INSIDE_PASSTHROUGH, + STATE_ERROR +} GMarkupParseState; + +struct _GMarkupParseContext +{ + const GMarkupParser *parser; + + GMarkupParseFlags flags; + + gint line_number; + gint char_number; + + gpointer user_data; + GDestroyNotify dnotify; + + /* A piece of character data or an element that + * hasn't "ended" yet so we haven't yet called + * the callback for it. + */ + GString *partial_chunk; + + GMarkupParseState state; + GSList *tag_stack; + gchar **attr_names; + gchar **attr_values; + gint cur_attr; + gint alloc_attrs; + + const gchar *current_text; + gssize current_text_len; + const gchar *current_text_end; + + GString *leftover_char_portion; + + /* used to save the start of the last interesting thingy */ + const gchar *start; + + const gchar *iter; + + guint document_empty : 1; + guint parsing : 1; +}; + +/** + * g_markup_parse_context_new: + * @parser: a #GMarkupParser + * @flags: one or more #GMarkupParseFlags + * @user_data: user data to pass to #GMarkupParser functions + * @user_data_dnotify: user data destroy notifier called when the parse context is freed + * + * Creates a new parse context. A parse context is used to parse + * marked-up documents. You can feed any number of documents into + * a context, as long as no errors occur; once an error occurs, + * the parse context can't continue to parse text (you have to free it + * and create a new parse context). + * + * Return value: a new #GMarkupParseContext + **/ +GMarkupParseContext * +g_markup_parse_context_new (const GMarkupParser *parser, + GMarkupParseFlags flags, + gpointer user_data, + GDestroyNotify user_data_dnotify) +{ + GMarkupParseContext *context; + + g_return_val_if_fail (parser != NULL, NULL); + + context = g_new (GMarkupParseContext, 1); + + context->parser = parser; + context->flags = flags; + context->user_data = user_data; + context->dnotify = user_data_dnotify; + + context->line_number = 1; + context->char_number = 1; + + context->partial_chunk = NULL; + + context->state = STATE_START; + context->tag_stack = NULL; + context->attr_names = NULL; + context->attr_values = NULL; + context->cur_attr = -1; + context->alloc_attrs = 0; + + context->current_text = NULL; + context->current_text_len = -1; + context->current_text_end = NULL; + context->leftover_char_portion = NULL; + + context->start = NULL; + context->iter = NULL; + + context->document_empty = TRUE; + context->parsing = FALSE; + + return context; +} + +/** + * g_markup_parse_context_free: + * @context: a #GMarkupParseContext + * + * Frees a #GMarkupParseContext. Can't be called from inside + * one of the #GMarkupParser functions. + * + **/ +void +g_markup_parse_context_free (GMarkupParseContext *context) +{ + g_return_if_fail (context != NULL); + g_return_if_fail (!context->parsing); + + if (context->dnotify) + (* context->dnotify) (context->user_data); + + g_strfreev (context->attr_names); + g_strfreev (context->attr_values); + + g_slist_foreach (context->tag_stack, (GFunc)g_free, NULL); + g_slist_free (context->tag_stack); + + if (context->partial_chunk) + g_string_free (context->partial_chunk, TRUE); + + if (context->leftover_char_portion) + g_string_free (context->leftover_char_portion, TRUE); + + g_free (context); +} + +static void +mark_error (GMarkupParseContext *context, + GError *error) +{ + context->state = STATE_ERROR; + + if (context->parser->error) + (*context->parser->error) (context, error, context->user_data); +} + +static void +set_error (GMarkupParseContext *context, + GError **error, + GMarkupError code, + const gchar *format, + ...) +{ + GError *tmp_error; + gchar *s; + va_list args; + + va_start (args, format); + s = g_strdup_vprintf (format, args); + va_end (args); + + tmp_error = g_error_new (G_MARKUP_ERROR, + code, + _("Error on line %d char %d: %s"), + context->line_number, + context->char_number, + s); + + g_free (s); + + mark_error (context, tmp_error); + + g_propagate_error (error, tmp_error); +} + +static gboolean +is_name_start_char (gunichar c) +{ + if (g_unichar_isalpha (c) || + c == '_' || + c == ':') + return TRUE; + else + return FALSE; +} + +static gboolean +is_name_char (gunichar c) +{ + if (g_unichar_isalnum (c) || + c == '.' || + c == '-' || + c == '_' || + c == ':') + return TRUE; + else + return FALSE; +} + + +static gchar* +char_str (gunichar c, + gchar *buf) +{ + memset (buf, 0, 7); + g_unichar_to_utf8 (c, buf); + return buf; +} + +static gchar* +utf8_str (const gchar *utf8, + gchar *buf) +{ + char_str (g_utf8_get_char (utf8), buf); + return buf; +} + +static void +set_unescape_error (GMarkupParseContext *context, + GError **error, + const gchar *remaining_text, + const gchar *remaining_text_end, + GMarkupError code, + const gchar *format, + ...) +{ + GError *tmp_error; + gchar *s; + va_list args; + gint remaining_newlines; + const gchar *p; + + remaining_newlines = 0; + p = remaining_text; + while (p != remaining_text_end) + { + if (*p == '\n') + ++remaining_newlines; + ++p; + } + + va_start (args, format); + s = g_strdup_vprintf (format, args); + va_end (args); + + tmp_error = g_error_new (G_MARKUP_ERROR, + code, + _("Error on line %d: %s"), + context->line_number - remaining_newlines, + s); + + g_free (s); + + mark_error (context, tmp_error); + + g_propagate_error (error, tmp_error); +} + +typedef enum +{ + USTATE_INSIDE_TEXT, + USTATE_AFTER_AMPERSAND, + USTATE_INSIDE_ENTITY_NAME, + USTATE_AFTER_CHARREF_HASH +} UnescapeState; + +static gboolean +unescape_text (GMarkupParseContext *context, + const gchar *text, + const gchar *text_end, + gchar **unescaped, + GError **error) +{ +#define MAX_ENT_LEN 5 + GString *str; + const gchar *p; + UnescapeState state; + const gchar *start; + + str = g_string_new (""); + + state = USTATE_INSIDE_TEXT; + p = text; + start = p; + while (p != text_end && context->state != STATE_ERROR) + { + g_assert (p < text_end); + + switch (state) + { + case USTATE_INSIDE_TEXT: + { + while (p != text_end && *p != '&') + p = g_utf8_next_char (p); + + if (p != start) + { + g_string_append_len (str, start, p - start); + + start = NULL; + } + + if (p != text_end && *p == '&') + { + p = g_utf8_next_char (p); + state = USTATE_AFTER_AMPERSAND; + } + } + break; + + case USTATE_AFTER_AMPERSAND: + { + if (*p == '#') + { + p = g_utf8_next_char (p); + + start = p; + state = USTATE_AFTER_CHARREF_HASH; + } + else if (!is_name_start_char (g_utf8_get_char (p))) + { + if (*p == ';') + { + set_unescape_error (context, error, + p, text_end, + G_MARKUP_ERROR_PARSE, + _("Empty entity '&;' seen; valid " + "entities are: & " < > '")); + } + else + { + gchar buf[7]; + + set_unescape_error (context, error, + p, text_end, + G_MARKUP_ERROR_PARSE, + _("Character '%s' is not valid at " + "the start of an entity name; " + "the & character begins an entity; " + "if this ampersand isn't supposed " + "to be an entity, escape it as " + "&"), + utf8_str (p, buf)); + } + } + else + { + start = p; + state = USTATE_INSIDE_ENTITY_NAME; + } + } + break; + + + case USTATE_INSIDE_ENTITY_NAME: + { + gchar buf[MAX_ENT_LEN+1] = { + '\0', '\0', '\0', '\0', '\0', '\0' + }; + gchar *dest; + + while (p != text_end) + { + if (*p == ';') + break; + else if (!is_name_char (*p)) + { + gchar ubuf[7]; + + set_unescape_error (context, error, + p, text_end, + G_MARKUP_ERROR_PARSE, + _("Character '%s' is not valid " + "inside an entity name"), + utf8_str (p, ubuf)); + break; + } + + p = g_utf8_next_char (p); + } + + if (context->state != STATE_ERROR) + { + if (p != text_end) + { + const gchar *src; + + src = start; + dest = buf; + while (src != p) + { + *dest = *src; + ++dest; + ++src; + } + + /* move to after semicolon */ + p = g_utf8_next_char (p); + start = p; + state = USTATE_INSIDE_TEXT; + + if (strcmp (buf, "lt") == 0) + g_string_append_c (str, '<'); + else if (strcmp (buf, "gt") == 0) + g_string_append_c (str, '>'); + else if (strcmp (buf, "amp") == 0) + g_string_append_c (str, '&'); + else if (strcmp (buf, "quot") == 0) + g_string_append_c (str, '"'); + else if (strcmp (buf, "apos") == 0) + g_string_append_c (str, '\''); + else + { + set_unescape_error (context, error, + p, text_end, + G_MARKUP_ERROR_PARSE, + _("Entity name '%s' is not known"), + buf); + } + } + else + { + set_unescape_error (context, error, + /* give line number of the & */ + start, text_end, + G_MARKUP_ERROR_PARSE, + _("Entity did not end with a semicolon; " + "most likely you used an ampersand " + "character without intending to start " + "an entity - escape ampersand as &")); + } + } + } + break; + + case USTATE_AFTER_CHARREF_HASH: + { + gboolean is_hex = FALSE; + if (*p == 'x') + { + is_hex = TRUE; + p = g_utf8_next_char (p); + start = p; + } + + while (p != text_end && *p != ';') + p = g_utf8_next_char (p); + + if (p != text_end) + { + g_assert (*p == ';'); + + /* digit is between start and p */ + + if (start != p) + { + gchar *digit = g_strndup (start, p - start); + gulong l; + gchar *end = NULL; + gchar *digit_end = digit + (p - start); + + errno = 0; + if (is_hex) + l = strtoul (digit, &end, 16); + else + l = strtoul (digit, &end, 10); + + if (end != digit_end || errno != 0) + { + set_unescape_error (context, error, + start, text_end, + G_MARKUP_ERROR_PARSE, + _("Failed to parse '%s', which " + "should have been a digit " + "inside a character reference " + "(ê for example) - perhaps " + "the digit is too large"), + digit); + } + else + { + /* characters XML permits */ + if (l == 0x9 || + l == 0xA || + l == 0xD || + (l >= 0x20 && l <= 0xD7FF) || + (l >= 0xE000 && l <= 0xFFFD) || + (l >= 0x10000 && l <= 0x10FFFF)) + { + gchar buf[7]; + g_string_append (str, char_str (l, buf)); + } + else + { + set_unescape_error (context, error, + start, text_end, + G_MARKUP_ERROR_PARSE, + _("Character reference '%s' does not encode a permitted character"), + digit); + } + } + + g_free (digit); + + /* Move to next state */ + p = g_utf8_next_char (p); /* past semicolon */ + start = p; + state = USTATE_INSIDE_TEXT; + } + else + { + set_unescape_error (context, error, + start, text_end, + G_MARKUP_ERROR_PARSE, + _("Empty character reference; " + "should include a digit such as " + "dž")); + } + } + else + { + set_unescape_error (context, error, + start, text_end, + G_MARKUP_ERROR_PARSE, + _("Character reference did not end with a " + "semicolon; " + "most likely you used an ampersand " + "character without intending to start " + "an entity - escape ampersand as &")); + } + } + break; + + default: + g_assert_not_reached (); + break; + } + } + + /* If no errors, we should have returned to USTATE_INSIDE_TEXT */ + g_assert (context->state == STATE_ERROR || + state == USTATE_INSIDE_TEXT); + + if (context->state == STATE_ERROR) + { + g_string_free (str, TRUE); + *unescaped = NULL; + return FALSE; + } + else + { + *unescaped = g_string_free (str, FALSE); + return TRUE; + } + +#undef MAX_ENT_LEN +} + +static gboolean +advance_char (GMarkupParseContext *context) +{ + + context->iter = g_utf8_next_char (context->iter); + context->char_number += 1; + if (*context->iter == '\n') + { + context->line_number += 1; + context->char_number = 1; + } + + return context->iter != context->current_text_end; +} + +static void +skip_spaces (GMarkupParseContext *context) +{ + do + { + if (!g_unichar_isspace (g_utf8_get_char (context->iter))) + return; + } + while (advance_char (context)); +} + +static void +advance_to_name_end (GMarkupParseContext *context) +{ + do + { + if (!is_name_char (g_utf8_get_char (context->iter))) + return; + } + while (advance_char (context)); +} + +static void +add_to_partial (GMarkupParseContext *context, + const gchar *text_start, + const gchar *text_end) +{ + if (context->partial_chunk == NULL) + context->partial_chunk = g_string_new (""); + + if (text_start != text_end) + g_string_append_len (context->partial_chunk, text_start, + text_end - text_start); + + /* Invariant here that partial_chunk exists */ +} + +static void +truncate_partial (GMarkupParseContext *context) +{ + if (context->partial_chunk != NULL) + { + context->partial_chunk = g_string_truncate (context->partial_chunk, 0); + } +} + +static const gchar* +current_element (GMarkupParseContext *context) +{ + return context->tag_stack->data; +} + +static const gchar* +current_attribute (GMarkupParseContext *context) +{ + g_assert (context->cur_attr >= 0); + return context->attr_names[context->cur_attr]; +} + +static void +find_current_text_end (GMarkupParseContext *context) +{ + /* This function must be safe (non-segfaulting) on invalid UTF8 */ + const gchar *end = context->current_text + context->current_text_len; + const gchar *p; + const gchar *next; + + g_assert (context->current_text_len > 0); + + p = context->current_text; + next = g_utf8_find_next_char (p, end); + + while (next) + { + p = next; + next = g_utf8_find_next_char (p, end); + } + + /* p is now the start of the last character or character portion. */ + g_assert (p != end); + next = g_utf8_next_char (p); /* this only touches *p, nothing beyond */ + + if (next == end) + { + /* whole character */ + context->current_text_end = end; + } + else + { + /* portion */ + context->leftover_char_portion = g_string_new_len (p, end - p); + context->current_text_len -= (end - p); + context->current_text_end = p; + } +} + +static void +add_attribute (GMarkupParseContext *context, char *name) +{ + if (context->cur_attr + 2 >= context->alloc_attrs) + { + context->alloc_attrs += 5; /* silly magic number */ + context->attr_names = g_realloc (context->attr_names, sizeof(char*)*context->alloc_attrs); + context->attr_values = g_realloc (context->attr_values, sizeof(char*)*context->alloc_attrs); + } + context->cur_attr++; + context->attr_names[context->cur_attr] = name; + context->attr_values[context->cur_attr] = NULL; + context->attr_names[context->cur_attr+1] = NULL; +} + +/** + * g_markup_parse_context_parse: + * @context: a #GMarkupParseContext + * @text: chunk of text to parse + * @text_len: length of @text in bytes + * @error: return location for a #GError + * + * Feed some data to the #GMarkupParseContext. The data need not + * be valid UTF-8; an error will be signaled if it's invalid. + * The data need not be an entire document; you can feed a document + * into the parser incrementally, via multiple calls to this function. + * Typically, as you receive data from a network connection or file, + * you feed each received chunk of data into this function, aborting + * the process if an error occurs. Once an error is reported, no further + * data may be fed to the #GMarkupParseContext; all errors are fatal. + * + * Return value: %FALSE if an error occurred, %TRUE on success + **/ +gboolean +g_markup_parse_context_parse (GMarkupParseContext *context, + const gchar *text, + gssize text_len, + GError **error) +{ + const gchar *first_invalid; + + g_return_val_if_fail (context != NULL, FALSE); + g_return_val_if_fail (text != NULL, FALSE); + g_return_val_if_fail (context->state != STATE_ERROR, FALSE); + g_return_val_if_fail (!context->parsing, FALSE); + + if (text_len < 0) + text_len = strlen (text); + + if (text_len == 0) + return TRUE; + + context->parsing = TRUE; + + if (context->leftover_char_portion) + { + const gchar *first_char; + + if ((*text & 0xc0) != 0x80) + first_char = text; + else + first_char = g_utf8_find_next_char (text, text + text_len); + + if (first_char) + { + /* leftover_char_portion was completed. Parse it. */ + GString *portion = context->leftover_char_portion; + + g_string_append_len (context->leftover_char_portion, + text, first_char - text); + + /* hacks to allow recursion */ + context->parsing = FALSE; + context->leftover_char_portion = NULL; + + if (!g_markup_parse_context_parse (context, + portion->str, portion->len, + error)) + { + g_assert (context->state == STATE_ERROR); + } + + g_string_free (portion, TRUE); + context->parsing = TRUE; + + /* Skip the fraction of char that was in this text */ + text_len -= (first_char - text); + text = first_char; + } + else + { + /* another little chunk of the leftover char; geez + * someone is inefficient. + */ + g_string_append_len (context->leftover_char_portion, + text, text_len); + + if (context->leftover_char_portion->len > 7) + { + /* The leftover char portion is too big to be + * a UTF-8 character + */ + set_error (context, + error, + G_MARKUP_ERROR_BAD_UTF8, + _("Invalid UTF-8 encoded text")); + } + + goto finished; + } + } + + context->current_text = text; + context->current_text_len = text_len; + context->iter = context->current_text; + context->start = context->iter; + + /* Nothing left after finishing the leftover char, or nothing + * passed in to begin with. + */ + if (context->current_text_len == 0) + goto finished; + + /* find_current_text_end () assumes the string starts at + * a character start, so we need to validate at least + * that much. It doesn't assume any following bytes + * are valid. + */ + if ((*context->current_text & 0xc0) == 0x80) /* not a char start */ + { + set_error (context, + error, + G_MARKUP_ERROR_BAD_UTF8, + _("Invalid UTF-8 encoded text")); + goto finished; + } + + /* Initialize context->current_text_end, possibly adjusting + * current_text_len, and add any leftover char portion + */ + find_current_text_end (context); + + /* Validate UTF8 (must be done after we find the end, since + * we could have a trailing incomplete char) + */ + if (!g_utf8_validate (context->current_text, + context->current_text_len, + &first_invalid)) + { + gint newlines = 0; + const gchar *p; + p = context->current_text; + while (p != context->current_text_end) + { + if (*p == '\n') + ++newlines; + ++p; + } + + context->line_number += newlines; + + set_error (context, + error, + G_MARKUP_ERROR_BAD_UTF8, + _("Invalid UTF-8 encoded text")); + goto finished; + } + + while (context->iter != context->current_text_end) + { + switch (context->state) + { + case STATE_START: + /* Possible next state: AFTER_OPEN_ANGLE */ + + g_assert (context->tag_stack == NULL); + + /* whitespace is ignored outside of any elements */ + skip_spaces (context); + + if (context->iter != context->current_text_end) + { + if (*context->iter == '<') + { + /* Move after the open angle */ + advance_char (context); + + context->state = STATE_AFTER_OPEN_ANGLE; + + /* this could start a passthrough */ + context->start = context->iter; + + /* document is now non-empty */ + context->document_empty = FALSE; + } + else + { + set_error (context, + error, + G_MARKUP_ERROR_PARSE, + _("Document must begin with an element (e.g. <book>)")); + } + } + break; + + case STATE_AFTER_OPEN_ANGLE: + /* Possible next states: INSIDE_OPEN_TAG_NAME, + * AFTER_CLOSE_TAG_SLASH, INSIDE_PASSTHROUGH + */ + if (*context->iter == '?' || + *context->iter == '!') + { + /* include < in the passthrough */ + const gchar *openangle = "<"; + add_to_partial (context, openangle, openangle + 1); + context->start = context->iter; + context->state = STATE_INSIDE_PASSTHROUGH; + } + else if (*context->iter == '/') + { + /* move after it */ + advance_char (context); + + context->state = STATE_AFTER_CLOSE_TAG_SLASH; + } + else if (is_name_start_char (g_utf8_get_char (context->iter))) + { + context->state = STATE_INSIDE_OPEN_TAG_NAME; + + /* start of tag name */ + context->start = context->iter; + } + else + { + gchar buf[7]; + set_error (context, + error, + G_MARKUP_ERROR_PARSE, + _("'%s' is not a valid character following " + "a '<' character; it may not begin an " + "element name"), + utf8_str (context->iter, buf)); + } + break; + + /* The AFTER_CLOSE_ANGLE state is actually sort of + * broken, because it doesn't correspond to a range + * of characters in the input stream as the others do, + * and thus makes things harder to conceptualize + */ + case STATE_AFTER_CLOSE_ANGLE: + /* Possible next states: INSIDE_TEXT, STATE_START */ + if (context->tag_stack == NULL) + { + context->start = NULL; + context->state = STATE_START; + } + else + { + context->start = context->iter; + context->state = STATE_INSIDE_TEXT; + } + break; + + case STATE_AFTER_ELISION_SLASH: + /* Possible next state: AFTER_CLOSE_ANGLE */ + + { + /* We need to pop the tag stack and call the end_element + * function, since this is the close tag + */ + GError *tmp_error = NULL; + + g_assert (context->tag_stack != NULL); + + tmp_error = NULL; + if (context->parser->end_element) + (* context->parser->end_element) (context, + context->tag_stack->data, + context->user_data, + &tmp_error); + + if (tmp_error) + { + mark_error (context, tmp_error); + g_propagate_error (error, tmp_error); + } + else + { + if (*context->iter == '>') + { + /* move after the close angle */ + advance_char (context); + context->state = STATE_AFTER_CLOSE_ANGLE; + } + else + { + gchar buf[7]; + set_error (context, + error, + G_MARKUP_ERROR_PARSE, + _("Odd character '%s', expected a '>' character " + "to end the start tag of element '%s'"), + utf8_str (context->iter, buf), + current_element (context)); + } + } + + g_free (context->tag_stack->data); + context->tag_stack = g_slist_delete_link (context->tag_stack, + context->tag_stack); + } + break; + + case STATE_INSIDE_OPEN_TAG_NAME: + /* Possible next states: BETWEEN_ATTRIBUTES */ + + /* if there's a partial chunk then it's the first part of the + * tag name. If there's a context->start then it's the start + * of the tag name in current_text, the partial chunk goes + * before that start though. + */ + advance_to_name_end (context); + + if (context->iter == context->current_text_end) + { + /* The name hasn't necessarily ended. Merge with + * partial chunk, leave state unchanged. + */ + add_to_partial (context, context->start, context->iter); + } + else + { + /* The name has ended. Combine it with the partial chunk + * if any; push it on the stack; enter next state. + */ + add_to_partial (context, context->start, context->iter); + context->tag_stack = + g_slist_prepend (context->tag_stack, + g_string_free (context->partial_chunk, + FALSE)); + + context->partial_chunk = NULL; + + context->state = STATE_BETWEEN_ATTRIBUTES; + context->start = NULL; + } + break; + + case STATE_INSIDE_ATTRIBUTE_NAME: + /* Possible next states: AFTER_ATTRIBUTE_EQUALS_SIGN */ + + /* read the full name, if we enter the equals sign state + * then add the attribute to the list (without the value), + * otherwise store a partial chunk to be prepended later. + */ + advance_to_name_end (context); + + if (context->iter == context->current_text_end) + { + /* The name hasn't necessarily ended. Merge with + * partial chunk, leave state unchanged. + */ + add_to_partial (context, context->start, context->iter); + } + else + { + /* The name has ended. Combine it with the partial chunk + * if any; push it on the stack; enter next state. + */ + add_to_partial (context, context->start, context->iter); + + add_attribute (context, g_string_free (context->partial_chunk, FALSE)); + + context->partial_chunk = NULL; + context->start = NULL; + + if (*context->iter == '=') + { + advance_char (context); + context->state = STATE_AFTER_ATTRIBUTE_EQUALS_SIGN; + } + else + { + gchar buf[7]; + set_error (context, + error, + G_MARKUP_ERROR_PARSE, + _("Odd character '%s', expected a '=' after " + "attribute name '%s' of element '%s'"), + utf8_str (context->iter, buf), + current_attribute (context), + current_element (context)); + + } + } + break; + + case STATE_BETWEEN_ATTRIBUTES: + /* Possible next states: AFTER_CLOSE_ANGLE, + * AFTER_ELISION_SLASH, INSIDE_ATTRIBUTE_NAME + */ + skip_spaces (context); + + if (context->iter != context->current_text_end) + { + if (*context->iter == '/') + { + advance_char (context); + context->state = STATE_AFTER_ELISION_SLASH; + } + else if (*context->iter == '>') + { + + advance_char (context); + context->state = STATE_AFTER_CLOSE_ANGLE; + } + else if (is_name_start_char (g_utf8_get_char (context->iter))) + { + context->state = STATE_INSIDE_ATTRIBUTE_NAME; + /* start of attribute name */ + context->start = context->iter; + } + else + { + gchar buf[7]; + set_error (context, + error, + G_MARKUP_ERROR_PARSE, + _("Odd character '%s', expected a '>' or '/' " + "character to end the start tag of " + "element '%s', or optionally an attribute; " + "perhaps you used an invalid character in " + "an attribute name"), + utf8_str (context->iter, buf), + current_element (context)); + } + + /* If we're done with attributes, invoke + * the start_element callback + */ + if (context->state == STATE_AFTER_ELISION_SLASH || + context->state == STATE_AFTER_CLOSE_ANGLE) + { + const gchar *start_name; + /* Ugly, but the current code expects an empty array instead of NULL */ + const gchar *empty = NULL; + const gchar **attr_names = ∅ + const gchar **attr_values = ∅ + GError *tmp_error; + + /* Call user callback for element start */ + start_name = current_element (context); + + if (context->cur_attr >= 0) + { + attr_names = (const gchar**)context->attr_names; + attr_values = (const gchar**)context->attr_values; + } + + tmp_error = NULL; + if (context->parser->start_element) + (* context->parser->start_element) (context, + start_name, + (const gchar **)attr_names, + (const gchar **)attr_values, + context->user_data, + &tmp_error); + + /* Go ahead and free the attributes. */ + for (; context->cur_attr >= 0; context->cur_attr--) + { + int pos = context->cur_attr; + g_free (context->attr_names[pos]); + g_free (context->attr_values[pos]); + context->attr_names[pos] = context->attr_values[pos] = NULL; + } + context->cur_attr = -1; + + if (tmp_error != NULL) + { + mark_error (context, tmp_error); + g_propagate_error (error, tmp_error); + } + } + } + break; + + case STATE_AFTER_ATTRIBUTE_EQUALS_SIGN: + /* Possible next state: INSIDE_ATTRIBUTE_VALUE */ + if (*context->iter == '"') + { + advance_char (context); + context->state = STATE_INSIDE_ATTRIBUTE_VALUE; + context->start = context->iter; + } + else + { + gchar buf[7]; + set_error (context, + error, + G_MARKUP_ERROR_PARSE, + _("Odd character '%s', expected an open quote mark " + "after the equals sign when giving value for " + "attribute '%s' of element '%s'"), + utf8_str (context->iter, buf), + current_attribute (context), + current_element (context)); + } + break; + + case STATE_INSIDE_ATTRIBUTE_VALUE: + /* Possible next states: BETWEEN_ATTRIBUTES */ + do + { + if (*context->iter == '"') + break; + } + while (advance_char (context)); + + if (context->iter == context->current_text_end) + { + /* The value hasn't necessarily ended. Merge with + * partial chunk, leave state unchanged. + */ + add_to_partial (context, context->start, context->iter); + } + else + { + /* The value has ended at the quote mark. Combine it + * with the partial chunk if any; set it for the current + * attribute. + */ + add_to_partial (context, context->start, context->iter); + + g_assert (context->cur_attr >= 0); + + if (unescape_text (context, + context->partial_chunk->str, + context->partial_chunk->str + + context->partial_chunk->len, + &context->attr_values[context->cur_attr], + error)) + { + /* success, advance past quote and set state. */ + advance_char (context); + context->state = STATE_BETWEEN_ATTRIBUTES; + context->start = NULL; + } + + truncate_partial (context); + } + break; + + case STATE_INSIDE_TEXT: + /* Possible next states: AFTER_OPEN_ANGLE */ + do + { + if (*context->iter == '<') + break; + } + while (advance_char (context)); + + /* The text hasn't necessarily ended. Merge with + * partial chunk, leave state unchanged. + */ + + add_to_partial (context, context->start, context->iter); + + if (context->iter != context->current_text_end) + { + gchar *unescaped = NULL; + + /* The text has ended at the open angle. Call the text + * callback. + */ + + if (unescape_text (context, + context->partial_chunk->str, + context->partial_chunk->str + + context->partial_chunk->len, + &unescaped, + error)) + { + GError *tmp_error = NULL; + + if (context->parser->text) + (*context->parser->text) (context, + unescaped, + strlen (unescaped), + context->user_data, + &tmp_error); + + g_free (unescaped); + + if (tmp_error == NULL) + { + /* advance past open angle and set state. */ + advance_char (context); + context->state = STATE_AFTER_OPEN_ANGLE; + /* could begin a passthrough */ + context->start = context->iter; + } + else + { + mark_error (context, tmp_error); + g_propagate_error (error, tmp_error); + } + } + + truncate_partial (context); + } + break; + + case STATE_AFTER_CLOSE_TAG_SLASH: + /* Possible next state: INSIDE_CLOSE_TAG_NAME */ + if (is_name_start_char (g_utf8_get_char (context->iter))) + { + context->state = STATE_INSIDE_CLOSE_TAG_NAME; + + /* start of tag name */ + context->start = context->iter; + } + else + { + gchar buf[7]; + set_error (context, + error, + G_MARKUP_ERROR_PARSE, + _("'%s' is not a valid character following " + "the characters '</'; '%s' may not begin an " + "element name"), + utf8_str (context->iter, buf), + utf8_str (context->iter, buf)); + } + break; + + case STATE_INSIDE_CLOSE_TAG_NAME: + /* Possible next state: AFTER_CLOSE_ANGLE */ + advance_to_name_end (context); + + if (context->iter == context->current_text_end) + { + /* The name hasn't necessarily ended. Merge with + * partial chunk, leave state unchanged. + */ + add_to_partial (context, context->start, context->iter); + } + else + { + /* The name has ended. Combine it with the partial chunk + * if any; check that it matches stack top and pop + * stack; invoke proper callback; enter next state. + */ + gchar *close_name; + + add_to_partial (context, context->start, context->iter); + + close_name = g_string_free (context->partial_chunk, FALSE); + context->partial_chunk = NULL; + + if (context->tag_stack == NULL) + { + set_error (context, + error, + G_MARKUP_ERROR_PARSE, + _("Element '%s' was closed, no element " + "is currently open"), + close_name); + } + else if (strcmp (close_name, current_element (context)) != 0) + { + set_error (context, + error, + G_MARKUP_ERROR_PARSE, + _("Element '%s' was closed, but the currently " + "open element is '%s'"), + close_name, + current_element (context)); + } + else if (*context->iter != '>') + { + gchar buf[7]; + set_error (context, + error, + G_MARKUP_ERROR_PARSE, + _("'%s' is not a valid character following " + "the close element name '%s'; the allowed " + "character is '>'"), + utf8_str (context->iter, buf), + close_name); + } + else + { + GError *tmp_error; + advance_char (context); + context->state = STATE_AFTER_CLOSE_ANGLE; + context->start = NULL; + + /* call the end_element callback */ + tmp_error = NULL; + if (context->parser->end_element) + (* context->parser->end_element) (context, + close_name, + context->user_data, + &tmp_error); + + + /* Pop the tag stack */ + g_free (context->tag_stack->data); + context->tag_stack = g_slist_delete_link (context->tag_stack, + context->tag_stack); + + if (tmp_error) + { + mark_error (context, tmp_error); + g_propagate_error (error, tmp_error); + } + } + + g_free (close_name); + } + break; + + case STATE_INSIDE_PASSTHROUGH: + /* Possible next state: AFTER_CLOSE_ANGLE */ + do + { + if (*context->iter == '>') + break; + } + while (advance_char (context)); + + if (context->iter == context->current_text_end) + { + /* The passthrough hasn't necessarily ended. Merge with + * partial chunk, leave state unchanged. + */ + add_to_partial (context, context->start, context->iter); + } + else + { + /* The passthrough has ended at the close angle. Combine + * it with the partial chunk if any. Call the passthrough + * callback. Note that the open/close angles are + * included in the text of the passthrough. + */ + GError *tmp_error = NULL; + + advance_char (context); /* advance past close angle */ + add_to_partial (context, context->start, context->iter); + + if (context->parser->passthrough) + (*context->parser->passthrough) (context, + context->partial_chunk->str, + context->partial_chunk->len, + context->user_data, + &tmp_error); + + truncate_partial (context); + + if (tmp_error == NULL) + { + context->state = STATE_AFTER_CLOSE_ANGLE; + context->start = context->iter; /* could begin text */ + } + else + { + mark_error (context, tmp_error); + g_propagate_error (error, tmp_error); + } + } + break; + + case STATE_ERROR: + goto finished; + break; + + default: + g_assert_not_reached (); + break; + } + } + + finished: + context->parsing = FALSE; + + return context->state != STATE_ERROR; +} + +/** + * g_markup_parse_context_end_parse: + * @context: a #GMarkupParseContext + * @error: return location for a #GError + * + * Signals to the #GMarkupParseContext that all data has been + * fed into the parse context with g_markup_parse_context_parse(). + * This function reports an error if the document isn't complete, + * for example if elements are still open. + * + * Return value: %TRUE on success, %FALSE if an error was set + **/ +gboolean +g_markup_parse_context_end_parse (GMarkupParseContext *context, + GError **error) +{ + g_return_val_if_fail (context != NULL, FALSE); + g_return_val_if_fail (!context->parsing, FALSE); + g_return_val_if_fail (context->state != STATE_ERROR, FALSE); + + if (context->partial_chunk != NULL) + { + g_string_free (context->partial_chunk, TRUE); + context->partial_chunk = NULL; + } + + if (context->document_empty) + { + set_error (context, error, G_MARKUP_ERROR_EMPTY, + _("Document was empty or contained only whitespace")); + return FALSE; + } + + context->parsing = TRUE; + + switch (context->state) + { + case STATE_START: + /* Nothing to do */ + break; + + case STATE_AFTER_OPEN_ANGLE: + set_error (context, error, G_MARKUP_ERROR_PARSE, + _("Document ended unexpectedly just after an open angle bracket '<'")); + break; + + case STATE_AFTER_CLOSE_ANGLE: + if (context->tag_stack != NULL) + { + /* Error message the same as for INSIDE_TEXT */ + set_error (context, error, G_MARKUP_ERROR_PARSE, + _("Document ended unexpectedly with elements still open - " + "'%s' was the last element opened"), + current_element (context)); + } + break; + + case STATE_AFTER_ELISION_SLASH: + set_error (context, error, G_MARKUP_ERROR_PARSE, + _("Document ended unexpectedly, expected to see a close angle " + "bracket ending the tag <%s/>"), current_element (context)); + break; + + case STATE_INSIDE_OPEN_TAG_NAME: + set_error (context, error, G_MARKUP_ERROR_PARSE, + _("Document ended unexpectedly inside an element name")); + break; + + case STATE_INSIDE_ATTRIBUTE_NAME: + set_error (context, error, G_MARKUP_ERROR_PARSE, + _("Document ended unexpectedly inside an attribute name")); + break; + + case STATE_BETWEEN_ATTRIBUTES: + set_error (context, error, G_MARKUP_ERROR_PARSE, + _("Document ended unexpectedly inside an element-opening " + "tag.")); + break; + + case STATE_AFTER_ATTRIBUTE_EQUALS_SIGN: + set_error (context, error, G_MARKUP_ERROR_PARSE, + _("Document ended unexpectedly after the equals sign " + "following an attribute name; no attribute value")); + break; + + case STATE_INSIDE_ATTRIBUTE_VALUE: + set_error (context, error, G_MARKUP_ERROR_PARSE, + _("Document ended unexpectedly while inside an attribute " + "value")); + break; + + case STATE_INSIDE_TEXT: + g_assert (context->tag_stack != NULL); + set_error (context, error, G_MARKUP_ERROR_PARSE, + _("Document ended unexpectedly with elements still open - " + "'%s' was the last element opened"), + current_element (context)); + break; + + case STATE_AFTER_CLOSE_TAG_SLASH: + case STATE_INSIDE_CLOSE_TAG_NAME: + set_error (context, error, G_MARKUP_ERROR_PARSE, + _("Document ended unexpectedly inside the close tag for " + "element '%s'"), current_element); + break; + + case STATE_INSIDE_PASSTHROUGH: + set_error (context, error, G_MARKUP_ERROR_PARSE, + _("Document ended unexpectedly inside a comment or " + "processing instruction")); + break; + + case STATE_ERROR: + default: + g_assert_not_reached (); + break; + } + + context->parsing = FALSE; + + return context->state != STATE_ERROR; +} + +/** + * g_markup_parse_context_get_position: + * @context: a #GMarkupParseContext + * @line_number: return location for a line number, or %NULL + * @char_number: return location for a char-on-line number, or %NULL + * + * Retrieves the current line number and the number of the character on + * that line. Intended for use in error messages; there are no strict + * semantics for what constitutes the "current" line number other than + * "the best number we could come up with for error messages." + * + **/ +void +g_markup_parse_context_get_position (GMarkupParseContext *context, + gint *line_number, + gint *char_number) +{ + g_return_if_fail (context != NULL); + + if (line_number) + *line_number = context->line_number; + + if (char_number) + *char_number = context->char_number; +} + +static void +append_escaped_text (GString *str, + const gchar *text, + gssize length) +{ + const gchar *p; + const gchar *end; + + p = text; + end = text + length; + + while (p != end) + { + const gchar *next; + next = g_utf8_next_char (p); + + switch (*p) + { + case '&': + g_string_append (str, "&"); + break; + + case '<': + g_string_append (str, "<"); + break; + + case '>': + g_string_append (str, ">"); + break; + + case '\'': + g_string_append (str, "'"); + break; + + case '"': + g_string_append (str, """); + break; + + default: + g_string_append_len (str, p, next - p); + break; + } + + p = next; + } +} + +/** + * g_markup_escape_text: + * @text: some valid UTF-8 text + * @length: length of @text in bytes + * + * Escapes text so that the markup parser will parse it verbatim. + * Less than, greater than, ampersand, etc. are replaced with the + * corresponding entities. This function would typically be used + * when writing out a file to be parsed with the markup parser. + * + * Return value: escaped text + **/ +gchar* +g_markup_escape_text (const gchar *text, + gssize length) +{ + GString *str; + + g_return_val_if_fail (text != NULL, NULL); + + if (length < 0) + length = strlen (text); + + str = g_string_new (""); + append_escaped_text (str, text, length); + + return g_string_free (str, FALSE); +} diff --git a/graf2d/win32gdk/gdk/src/glib/gmarkup.h b/graf2d/win32gdk/gdk/src/glib/gmarkup.h index 57a7c1e3947..3fba0d67717 100644 --- a/graf2d/win32gdk/gdk/src/glib/gmarkup.h +++ b/graf2d/win32gdk/gdk/src/glib/gmarkup.h @@ -21,12 +21,9 @@ #ifndef __G_MARKUP_H__ #define __G_MARKUP_H__ -#include <gerror.h> +#include <glib/gerror.h> -#ifdef __cplusplus -extern "C" -{ -#endif +G_BEGIN_DECLS typedef enum { @@ -75,7 +72,7 @@ struct _GMarkupParser /* text is not nul-terminated */ void (*text) (GMarkupParseContext *context, const gchar *text, - gint text_len, + gsize text_len, gpointer user_data, GError **error); @@ -86,7 +83,7 @@ struct _GMarkupParser /* text is not nul-terminated. */ void (*passthrough) (GMarkupParseContext *context, const gchar *passthrough_text, - gint text_len, + gsize text_len, gpointer user_data, GError **error); @@ -105,7 +102,7 @@ GMarkupParseContext *g_markup_parse_context_new (const GMarkupParser *parser, void g_markup_parse_context_free (GMarkupParseContext *context); gboolean g_markup_parse_context_parse (GMarkupParseContext *context, const gchar *text, - gint text_len, + gssize text_len, GError **error); gboolean g_markup_parse_context_end_parse (GMarkupParseContext *context, @@ -118,12 +115,9 @@ void g_markup_parse_context_get_position (GMarkupParseContext *c /* useful when saving */ gchar* g_markup_escape_text (const gchar *text, - gint length); - + gssize length); -#ifdef __cplusplus -} -#endif +G_END_DECLS #endif /* __G_MARKUP_H__ */ diff --git a/graf2d/win32gdk/gdk/src/glib/gmem.c b/graf2d/win32gdk/gdk/src/glib/gmem.c new file mode 100644 index 00000000000..43623aa04f5 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gmem.c @@ -0,0 +1,1262 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <stdlib.h> +#include <string.h> +#include "glib.h" + + +/* notes on macros: + * having DISABLE_MEM_POOLS defined, disables mem_chunks alltogether, their + * allocations are performed through ordinary g_malloc/g_free. + * having G_DISABLE_CHECKS defined disables use of glib_mem_profiler_table and + * g_mem_profile(). + * REALLOC_0_WORKS is defined if g_realloc (NULL, x) works. + * SANE_MALLOC_PROTOS is defined if the systems malloc() and friends functions + * match the corresponding GLib prototypes, keep configure.in and gmem.h in sync here. + * if ENABLE_GC_FRIENDLY is defined, freed memory should be 0-wiped. + */ + +#define MEM_PROFILE_TABLE_SIZE 4096 + +#define MEM_AREA_SIZE 4L + +#ifdef G_DISABLE_CHECKS +# define ENTER_MEM_CHUNK_ROUTINE() +# define LEAVE_MEM_CHUNK_ROUTINE() +# define IN_MEM_CHUNK_ROUTINE() FALSE +#else /* !G_DISABLE_CHECKS */ +static GPrivate* mem_chunk_recursion = NULL; +# define MEM_CHUNK_ROUTINE_COUNT() GPOINTER_TO_UINT (g_private_get (mem_chunk_recursion)) +# define ENTER_MEM_CHUNK_ROUTINE() g_private_set (mem_chunk_recursion, GUINT_TO_POINTER (MEM_CHUNK_ROUTINE_COUNT () + 1)) +# define LEAVE_MEM_CHUNK_ROUTINE() g_private_set (mem_chunk_recursion, GUINT_TO_POINTER (MEM_CHUNK_ROUTINE_COUNT () - 1)) +#endif /* !G_DISABLE_CHECKS */ + +#ifndef REALLOC_0_WORKS +static gpointer +standard_realloc (gpointer mem, + gsize n_bytes) +{ + if (!mem) + return malloc (n_bytes); + else + return realloc (mem, n_bytes); +} +#endif /* !REALLOC_0_WORKS */ + +#ifdef SANE_MALLOC_PROTOS +# define standard_malloc malloc +# ifdef REALLOC_0_WORKS +# define standard_realloc realloc +# endif /* REALLOC_0_WORKS */ +# define standard_free free +# define standard_calloc calloc +# define standard_try_malloc malloc +# define standard_try_realloc realloc +#else /* !SANE_MALLOC_PROTOS */ +static gpointer +standard_malloc (gsize n_bytes) +{ + return malloc (n_bytes); +} +# ifdef REALLOC_0_WORKS +static gpointer +standard_realloc (gpointer mem, + gsize n_bytes) +{ + return realloc (mem, n_bytes); +} +# endif /* REALLOC_0_WORKS */ +static void +standard_free (gpointer mem) +{ + free (mem); +} +static gpointer +standard_calloc (gsize n_blocks, + gsize n_bytes) +{ + return calloc (n_blocks, n_bytes); +} +#define standard_try_malloc standard_malloc +#define standard_try_realloc standard_realloc +#endif /* !SANE_MALLOC_PROTOS */ + + +/* --- variables --- */ +static GMemVTable glib_mem_vtable = { + standard_malloc, + standard_realloc, + standard_free, + standard_calloc, + standard_try_malloc, + standard_try_realloc, +}; + + +/* --- functions --- */ +gpointer +g_malloc (gulong n_bytes) +{ + if (n_bytes) + { + gpointer mem; + + mem = glib_mem_vtable.malloc (n_bytes); + if (mem) + return mem; + + g_error ("%s: failed to allocate %lu bytes", G_STRLOC, n_bytes); + } + + return NULL; +} + +gpointer +g_malloc0 (gulong n_bytes) +{ + if (n_bytes) + { + gpointer mem; + + mem = glib_mem_vtable.calloc (1, n_bytes); + if (mem) + return mem; + + g_error ("%s: failed to allocate %lu bytes", G_STRLOC, n_bytes); + } + + return NULL; +} + +gpointer +g_realloc (gpointer mem, + gulong n_bytes) +{ + if (n_bytes) + { + mem = glib_mem_vtable.realloc (mem, n_bytes); + if (mem) + return mem; + + g_error ("%s: failed to allocate %lu bytes", G_STRLOC, n_bytes); + } + + if (mem) + glib_mem_vtable.free (mem); + + return NULL; +} + +void +g_free (gpointer mem) +{ + if (mem) + glib_mem_vtable.free (mem); +} + +gpointer +g_try_malloc (gulong n_bytes) +{ + if (n_bytes) + return glib_mem_vtable.try_malloc (n_bytes); + else + return NULL; +} + +gpointer +g_try_realloc (gpointer mem, + gulong n_bytes) +{ + if (n_bytes) + return glib_mem_vtable.try_realloc (mem, n_bytes); + + if (mem) + glib_mem_vtable.free (mem); + + return NULL; +} + +static gpointer +fallback_calloc (gsize n_blocks, + gsize n_block_bytes) +{ + gsize l = n_blocks * n_block_bytes; + gpointer mem = glib_mem_vtable.malloc (l); + + if (mem) + memset (mem, 0, l); + + return mem; +} + +static gboolean vtable_set = FALSE; + +/** + * g_mem_is_system_malloc + * + * Checks whether the allocator used by g_malloc() is the system's + * malloc implementation. If it returns %TRUE memory allocated with + * malloc() can be used interchangeable with memory allocated using + * g_malloc(). This function is useful for avoiding an extra copy + * of allocated memory returned by a non-GLib-based API. + * + * A different allocator can be set using g_mem_set_vtable(). + * + * Return value: if %TRUE, malloc() and g_malloc() can be mixed. + **/ +gboolean +g_mem_is_system_malloc (void) +{ + return vtable_set; +} + +void +g_mem_set_vtable (GMemVTable *vtable) +{ + if (!vtable_set) + { + vtable_set = TRUE; + if (vtable->malloc && vtable->realloc && vtable->free) + { + glib_mem_vtable.malloc = vtable->malloc; + glib_mem_vtable.realloc = vtable->realloc; + glib_mem_vtable.free = vtable->free; + glib_mem_vtable.calloc = vtable->calloc ? vtable->calloc : fallback_calloc; + glib_mem_vtable.try_malloc = vtable->try_malloc ? vtable->try_malloc : glib_mem_vtable.malloc; + glib_mem_vtable.try_realloc = vtable->try_realloc ? vtable->try_realloc : glib_mem_vtable.realloc; + } + else + g_warning (G_STRLOC ": memory allocation vtable lacks one of malloc(), realloc() or free()"); + } + else + g_warning (G_STRLOC ": memory allocation vtable can only be set once at startup"); +} + + +/* --- memory profiling and checking --- */ +#ifdef G_DISABLE_CHECKS +GMemVTable *glib_mem_profiler_table = &glib_mem_vtable; +void +g_mem_profile (void) +{ +} +#else /* !G_DISABLE_CHECKS */ +typedef enum { + PROFILER_FREE = 0, + PROFILER_ALLOC = 1, + PROFILER_RELOC = 2, + PROFILER_ZINIT = 4 +} ProfilerJob; +static guint *profile_data = NULL; +static gulong profile_allocs = 0; +static gulong profile_mc_allocs = 0; +static gulong profile_zinit = 0; +static gulong profile_frees = 0; +static gulong profile_mc_frees = 0; +static GMutex *g_profile_mutex = NULL; +#ifdef G_ENABLE_DEBUG +static volatile gulong g_trap_free_size = 0; +static volatile gulong g_trap_realloc_size = 0; +static volatile gulong g_trap_malloc_size = 0; +#endif /* G_ENABLE_DEBUG */ + +#define PROFILE_TABLE(f1,f2,f3) ( ( ((f3) << 2) | ((f2) << 1) | (f1) ) * (MEM_PROFILE_TABLE_SIZE + 1)) + +static void +profiler_log (ProfilerJob job, + gulong n_bytes, + gboolean success) +{ + g_mutex_lock (g_profile_mutex); + if (!profile_data) + { + profile_data = standard_malloc ((MEM_PROFILE_TABLE_SIZE + 1) * 8 * sizeof (profile_data[0])); + if (!profile_data) /* memory system kiddin' me, eh? */ + { + g_mutex_unlock (g_profile_mutex); + return; + } + } + + if (MEM_CHUNK_ROUTINE_COUNT () == 0) + { + if (n_bytes < MEM_PROFILE_TABLE_SIZE) + profile_data[n_bytes + PROFILE_TABLE ((job & PROFILER_ALLOC) != 0, + (job & PROFILER_RELOC) != 0, + success != 0)] += 1; + else + profile_data[MEM_PROFILE_TABLE_SIZE + PROFILE_TABLE ((job & PROFILER_ALLOC) != 0, + (job & PROFILER_RELOC) != 0, + success != 0)] += 1; + if (success) + { + if (job & PROFILER_ALLOC) + { + profile_allocs += n_bytes; + if (job & PROFILER_ZINIT) + profile_zinit += n_bytes; + } + else + profile_frees += n_bytes; + } + } + else if (success) + { + if (job & PROFILER_ALLOC) + profile_mc_allocs += n_bytes; + else + profile_mc_frees += n_bytes; + } + g_mutex_unlock (g_profile_mutex); +} + +static void +profile_print_locked (guint *local_data, + gboolean success) +{ + gboolean need_header = TRUE; + guint i; + + for (i = 0; i <= MEM_PROFILE_TABLE_SIZE; i++) + { + glong t_malloc = local_data[i + PROFILE_TABLE (1, 0, success)]; + glong t_realloc = local_data[i + PROFILE_TABLE (1, 1, success)]; + glong t_free = local_data[i + PROFILE_TABLE (0, 0, success)]; + glong t_refree = local_data[i + PROFILE_TABLE (0, 1, success)]; + + if (!t_malloc && !t_realloc && !t_free && !t_refree) + continue; + else if (need_header) + { + need_header = FALSE; + g_print (" blocks of | allocated | freed | allocated | freed | n_bytes \n"); + g_print (" n_bytes | n_times by | n_times by | n_times by | n_times by | remaining \n"); + g_print (" | malloc() | free() | realloc() | realloc() | \n"); + g_print ("===========|============|============|============|============|===========\n"); + } + if (i < MEM_PROFILE_TABLE_SIZE) + g_print ("%10u | %10ld | %10ld | %10ld | %10ld |%+11ld\n", + i, t_malloc, t_free, t_realloc, t_refree, + (t_malloc - t_free + t_realloc - t_refree) * i); + else if (i >= MEM_PROFILE_TABLE_SIZE) + g_print (" >%6u | %10ld | %10ld | %10ld | %10ld | ***\n", + i, t_malloc, t_free, t_realloc, t_refree); + } + if (need_header) + g_print (" --- none ---\n"); +} + +void +g_mem_profile (void) +{ + guint local_data[(MEM_PROFILE_TABLE_SIZE + 1) * 8 * sizeof (profile_data[0])]; + gulong local_allocs; + gulong local_zinit; + gulong local_frees; + gulong local_mc_allocs; + gulong local_mc_frees; + + g_mutex_lock (g_profile_mutex); + + local_allocs = profile_allocs; + local_zinit = profile_zinit; + local_frees = profile_frees; + local_mc_allocs = profile_mc_allocs; + local_mc_frees = profile_mc_frees; + + if (!profile_data) + { + g_mutex_unlock (g_profile_mutex); + return; + } + + memcpy (local_data, profile_data, + (MEM_PROFILE_TABLE_SIZE + 1) * 8 * sizeof (profile_data[0])); + + g_mutex_unlock (g_profile_mutex); + + g_print ("GLib Memory statistics (successful operations):\n"); + profile_print_locked (local_data, TRUE); + g_print ("GLib Memory statistics (failing operations):\n"); + profile_print_locked (local_data, FALSE); + g_print ("Total bytes: allocated=%lu, zero-initialized=%lu (%.2f%%), freed=%lu (%.2f%%), remaining=%lu\n", + local_allocs, + local_zinit, + ((gdouble) local_zinit) / local_allocs * 100.0, + local_frees, + ((gdouble) local_frees) / local_allocs * 100.0, + local_allocs - local_frees); + g_print ("MemChunk bytes: allocated=%lu, freed=%lu (%.2f%%), remaining=%lu\n", + local_mc_allocs, + local_mc_frees, + ((gdouble) local_mc_frees) / local_mc_allocs * 100.0, + local_mc_allocs - local_mc_frees); +} + +static gpointer +profiler_try_malloc (gsize n_bytes) +{ + gulong *p; + +#ifdef G_ENABLE_DEBUG + if (g_trap_malloc_size == n_bytes) + G_BREAKPOINT (); +#endif /* G_ENABLE_DEBUG */ + + p = standard_malloc (sizeof (gulong) * 2 + n_bytes); + + if (p) + { + p[0] = 0; /* free count */ + p[1] = n_bytes; /* length */ + profiler_log (PROFILER_ALLOC, n_bytes, TRUE); + p += 2; + } + else + profiler_log (PROFILER_ALLOC, n_bytes, FALSE); + + return p; +} + +static gpointer +profiler_malloc (gsize n_bytes) +{ + gpointer mem = profiler_try_malloc (n_bytes); + + if (!mem) + g_mem_profile (); + + return mem; +} + +static gpointer +profiler_calloc (gsize n_blocks, + gsize n_block_bytes) +{ + gsize l = n_blocks * n_block_bytes; + gulong *p; + +#ifdef G_ENABLE_DEBUG + if (g_trap_malloc_size == l) + G_BREAKPOINT (); +#endif /* G_ENABLE_DEBUG */ + + p = standard_calloc (1, sizeof (gulong) * 2 + l); + + if (p) + { + p[0] = 0; /* free count */ + p[1] = l; /* length */ + profiler_log (PROFILER_ALLOC | PROFILER_ZINIT, l, TRUE); + p += 2; + } + else + { + profiler_log (PROFILER_ALLOC | PROFILER_ZINIT, l, FALSE); + g_mem_profile (); + } + + return p; +} + +static void +profiler_free (gpointer mem) +{ + gulong *p = mem; + + p -= 2; + if (p[0]) /* free count */ + { + g_warning ("free(%p): memory has been freed %lu times already", p + 2, p[0]); + profiler_log (PROFILER_FREE, + p[1], /* length */ + FALSE); + } + else + { +#ifdef G_ENABLE_DEBUG + if (g_trap_free_size == p[1]) + G_BREAKPOINT (); +#endif /* G_ENABLE_DEBUG */ + + profiler_log (PROFILER_FREE, + p[1], /* length */ + TRUE); + memset (p + 2, 0xaa, p[1]); + + /* for all those that miss standard_free (p); in this place, yes, + * we do leak all memory when profiling, and that is intentional + * to catch double frees. patch submissions are futile. + */ + } + p[0] += 1; +} + +static gpointer +profiler_try_realloc (gpointer mem, + gsize n_bytes) +{ + gulong *p = mem; + + p -= 2; + +#ifdef G_ENABLE_DEBUG + if (g_trap_realloc_size == n_bytes) + G_BREAKPOINT (); +#endif /* G_ENABLE_DEBUG */ + + if (mem && p[0]) /* free count */ + { + g_warning ("realloc(%p, %u): memory has been freed %lu times already", p + 2, n_bytes, p[0]); + profiler_log (PROFILER_ALLOC | PROFILER_RELOC, n_bytes, FALSE); + + return NULL; + } + else + { + p = standard_realloc (mem ? p : NULL, sizeof (gulong) * 2 + n_bytes); + + if (p) + { + if (mem) + profiler_log (PROFILER_FREE | PROFILER_RELOC, p[1], TRUE); + p[0] = 0; + p[1] = n_bytes; + profiler_log (PROFILER_ALLOC | PROFILER_RELOC, p[1], TRUE); + p += 2; + } + else + profiler_log (PROFILER_ALLOC | PROFILER_RELOC, n_bytes, FALSE); + + return p; + } +} + +static gpointer +profiler_realloc (gpointer mem, + gsize n_bytes) +{ + mem = profiler_try_realloc (mem, n_bytes); + + if (!mem) + g_mem_profile (); + + return mem; +} + +static GMemVTable profiler_table = { + profiler_malloc, + profiler_realloc, + profiler_free, + profiler_calloc, + profiler_try_malloc, + profiler_try_realloc, +}; +GMemVTable *glib_mem_profiler_table = &profiler_table; + +#endif /* !G_DISABLE_CHECKS */ + + +/* --- MemChunks --- */ +typedef struct _GFreeAtom GFreeAtom; +typedef struct _GMemArea GMemArea; + +struct _GFreeAtom +{ + GFreeAtom *next; +}; + +struct _GMemArea +{ + GMemArea *next; /* the next mem area */ + GMemArea *prev; /* the previous mem area */ + gulong index; /* the current index into the "mem" array */ + gulong free; /* the number of free bytes in this mem area */ + gulong allocated; /* the number of atoms allocated from this area */ + gulong mark; /* is this mem area marked for deletion */ + gchar mem[MEM_AREA_SIZE]; /* the mem array from which atoms get allocated + * the actual size of this array is determined by + * the mem chunk "area_size". ANSI says that it + * must be declared to be the maximum size it + * can possibly be (even though the actual size + * may be less). + */ +}; + +struct _GMemChunk +{ + const gchar *name; /* name of this MemChunk...used for debugging output */ + gint type; /* the type of MemChunk: ALLOC_ONLY or ALLOC_AND_FREE */ + gint num_mem_areas; /* the number of memory areas */ + gint num_marked_areas; /* the number of areas marked for deletion */ + guint atom_size; /* the size of an atom */ + gulong area_size; /* the size of a memory area */ + GMemArea *mem_area; /* the current memory area */ + GMemArea *mem_areas; /* a list of all the mem areas owned by this chunk */ + GMemArea *free_mem_area; /* the free area...which is about to be destroyed */ + GFreeAtom *free_atoms; /* the free atoms list */ + GTree *mem_tree; /* tree of mem areas sorted by memory address */ + GMemChunk *next; /* pointer to the next chunk */ + GMemChunk *prev; /* pointer to the previous chunk */ +}; + + +#ifndef DISABLE_MEM_POOLS +static gulong g_mem_chunk_compute_size (gulong size, + gulong min_size) G_GNUC_CONST; +static gint g_mem_chunk_area_compare (GMemArea *a, + GMemArea *b); +static gint g_mem_chunk_area_search (GMemArea *a, + gchar *addr); + +/* here we can't use StaticMutexes, as they depend upon a working + * g_malloc, the same holds true for StaticPrivate + */ +static GMutex *mem_chunks_lock = NULL; +static GMemChunk *mem_chunks = NULL; + +GMemChunk* +g_mem_chunk_new (const gchar *name, + gint atom_size, + gulong area_size, + gint type) +{ + GMemChunk *mem_chunk; + gulong rarea_size; + + g_return_val_if_fail (atom_size > 0, NULL); + g_return_val_if_fail (area_size >= atom_size, NULL); + + ENTER_MEM_CHUNK_ROUTINE (); + + area_size = (area_size + atom_size - 1) / atom_size; + area_size *= atom_size; + + mem_chunk = g_new (GMemChunk, 1); + mem_chunk->name = name; + mem_chunk->type = type; + mem_chunk->num_mem_areas = 0; + mem_chunk->num_marked_areas = 0; + mem_chunk->mem_area = NULL; + mem_chunk->free_mem_area = NULL; + mem_chunk->free_atoms = NULL; + mem_chunk->mem_tree = NULL; + mem_chunk->mem_areas = NULL; + mem_chunk->atom_size = atom_size; + + if (mem_chunk->type == G_ALLOC_AND_FREE) + mem_chunk->mem_tree = g_tree_new ((GCompareFunc) g_mem_chunk_area_compare); + + if (mem_chunk->atom_size % G_MEM_ALIGN) + mem_chunk->atom_size += G_MEM_ALIGN - (mem_chunk->atom_size % G_MEM_ALIGN); + + rarea_size = area_size + sizeof (GMemArea) - MEM_AREA_SIZE; + rarea_size = g_mem_chunk_compute_size (rarea_size, atom_size + sizeof (GMemArea) - MEM_AREA_SIZE); + mem_chunk->area_size = rarea_size - (sizeof (GMemArea) - MEM_AREA_SIZE); + + g_mutex_lock (mem_chunks_lock); + mem_chunk->next = mem_chunks; + mem_chunk->prev = NULL; + if (mem_chunks) + mem_chunks->prev = mem_chunk; + mem_chunks = mem_chunk; + g_mutex_unlock (mem_chunks_lock); + + LEAVE_MEM_CHUNK_ROUTINE (); + + return mem_chunk; +} + +void +g_mem_chunk_destroy (GMemChunk *mem_chunk) +{ + GMemArea *mem_areas; + GMemArea *temp_area; + + g_return_if_fail (mem_chunk != NULL); + + ENTER_MEM_CHUNK_ROUTINE (); + + mem_areas = mem_chunk->mem_areas; + while (mem_areas) + { + temp_area = mem_areas; + mem_areas = mem_areas->next; + g_free (temp_area); + } + + if (mem_chunk->next) + mem_chunk->next->prev = mem_chunk->prev; + if (mem_chunk->prev) + mem_chunk->prev->next = mem_chunk->next; + + g_mutex_lock (mem_chunks_lock); + if (mem_chunk == mem_chunks) + mem_chunks = mem_chunks->next; + g_mutex_unlock (mem_chunks_lock); + + if (mem_chunk->type == G_ALLOC_AND_FREE) + g_tree_destroy (mem_chunk->mem_tree); + + g_free (mem_chunk); + + LEAVE_MEM_CHUNK_ROUTINE (); +} + +gpointer +g_mem_chunk_alloc (GMemChunk *mem_chunk) +{ + GMemArea *temp_area; + gpointer mem; + + ENTER_MEM_CHUNK_ROUTINE (); + + g_return_val_if_fail (mem_chunk != NULL, NULL); + + while (mem_chunk->free_atoms) + { + /* Get the first piece of memory on the "free_atoms" list. + * We can go ahead and destroy the list node we used to keep + * track of it with and to update the "free_atoms" list to + * point to its next element. + */ + mem = mem_chunk->free_atoms; + mem_chunk->free_atoms = mem_chunk->free_atoms->next; + + /* Determine which area this piece of memory is allocated from */ + temp_area = g_tree_search (mem_chunk->mem_tree, + (GCompareFunc) g_mem_chunk_area_search, + mem); + + /* If the area has been marked, then it is being destroyed. + * (ie marked to be destroyed). + * We check to see if all of the segments on the free list that + * reference this area have been removed. This occurs when + * the ammount of free memory is less than the allocatable size. + * If the chunk should be freed, then we place it in the "free_mem_area". + * This is so we make sure not to free the mem area here and then + * allocate it again a few lines down. + * If we don't allocate a chunk a few lines down then the "free_mem_area" + * will be freed. + * If there is already a "free_mem_area" then we'll just free this mem area. + */ + if (temp_area->mark) + { + /* Update the "free" memory available in that area */ + temp_area->free += mem_chunk->atom_size; + + if (temp_area->free == mem_chunk->area_size) + { + if (temp_area == mem_chunk->mem_area) + mem_chunk->mem_area = NULL; + + if (mem_chunk->free_mem_area) + { + mem_chunk->num_mem_areas -= 1; + + if (temp_area->next) + temp_area->next->prev = temp_area->prev; + if (temp_area->prev) + temp_area->prev->next = temp_area->next; + if (temp_area == mem_chunk->mem_areas) + mem_chunk->mem_areas = mem_chunk->mem_areas->next; + + if (mem_chunk->type == G_ALLOC_AND_FREE) + g_tree_remove (mem_chunk->mem_tree, temp_area); + g_free (temp_area); + } + else + mem_chunk->free_mem_area = temp_area; + + mem_chunk->num_marked_areas -= 1; + } + } + else + { + /* Update the number of allocated atoms count. + */ + temp_area->allocated += 1; + + /* The area wasn't marked...return the memory + */ + goto outa_here; + } + } + + /* If there isn't a current mem area or the current mem area is out of space + * then allocate a new mem area. We'll first check and see if we can use + * the "free_mem_area". Otherwise we'll just malloc the mem area. + */ + if ((!mem_chunk->mem_area) || + ((mem_chunk->mem_area->index + mem_chunk->atom_size) > mem_chunk->area_size)) + { + if (mem_chunk->free_mem_area) + { + mem_chunk->mem_area = mem_chunk->free_mem_area; + mem_chunk->free_mem_area = NULL; + } + else + { +#ifdef ENABLE_GC_FRIENDLY + mem_chunk->mem_area = (GMemArea*) g_malloc0 (sizeof (GMemArea) - + MEM_AREA_SIZE + + mem_chunk->area_size); +#else /* !ENABLE_GC_FRIENDLY */ + mem_chunk->mem_area = (GMemArea*) g_malloc (sizeof (GMemArea) - + MEM_AREA_SIZE + + mem_chunk->area_size); +#endif /* ENABLE_GC_FRIENDLY */ + + mem_chunk->num_mem_areas += 1; + mem_chunk->mem_area->next = mem_chunk->mem_areas; + mem_chunk->mem_area->prev = NULL; + + if (mem_chunk->mem_areas) + mem_chunk->mem_areas->prev = mem_chunk->mem_area; + mem_chunk->mem_areas = mem_chunk->mem_area; + + if (mem_chunk->type == G_ALLOC_AND_FREE) + g_tree_insert (mem_chunk->mem_tree, mem_chunk->mem_area, mem_chunk->mem_area); + } + + mem_chunk->mem_area->index = 0; + mem_chunk->mem_area->free = mem_chunk->area_size; + mem_chunk->mem_area->allocated = 0; + mem_chunk->mem_area->mark = 0; + } + + /* Get the memory and modify the state variables appropriately. + */ + mem = (gpointer) &mem_chunk->mem_area->mem[mem_chunk->mem_area->index]; + mem_chunk->mem_area->index += mem_chunk->atom_size; + mem_chunk->mem_area->free -= mem_chunk->atom_size; + mem_chunk->mem_area->allocated += 1; + +outa_here: + + LEAVE_MEM_CHUNK_ROUTINE (); + + return mem; +} + +gpointer +g_mem_chunk_alloc0 (GMemChunk *mem_chunk) +{ + gpointer mem; + + mem = g_mem_chunk_alloc (mem_chunk); + if (mem) + { + memset (mem, 0, mem_chunk->atom_size); + } + + return mem; +} + +void +g_mem_chunk_free (GMemChunk *mem_chunk, + gpointer mem) +{ + GMemArea *temp_area; + GFreeAtom *free_atom; + + g_return_if_fail (mem_chunk != NULL); + g_return_if_fail (mem != NULL); + + ENTER_MEM_CHUNK_ROUTINE (); + +#ifdef ENABLE_GC_FRIENDLY + memset (mem, 0, mem_chunk->atom_size); +#endif /* ENABLE_GC_FRIENDLY */ + + /* Don't do anything if this is an ALLOC_ONLY chunk + */ + if (mem_chunk->type == G_ALLOC_AND_FREE) + { + /* Place the memory on the "free_atoms" list + */ + free_atom = (GFreeAtom*) mem; + free_atom->next = mem_chunk->free_atoms; + mem_chunk->free_atoms = free_atom; + + temp_area = g_tree_search (mem_chunk->mem_tree, + (GCompareFunc) g_mem_chunk_area_search, + mem); + + temp_area->allocated -= 1; + + if (temp_area->allocated == 0) + { + temp_area->mark = 1; + mem_chunk->num_marked_areas += 1; + } + } + + LEAVE_MEM_CHUNK_ROUTINE (); +} + +/* This doesn't free the free_area if there is one */ +void +g_mem_chunk_clean (GMemChunk *mem_chunk) +{ + GMemArea *mem_area; + GFreeAtom *prev_free_atom; + GFreeAtom *temp_free_atom; + gpointer mem; + + g_return_if_fail (mem_chunk != NULL); + + ENTER_MEM_CHUNK_ROUTINE (); + + if (mem_chunk->type == G_ALLOC_AND_FREE) + { + prev_free_atom = NULL; + temp_free_atom = mem_chunk->free_atoms; + + while (temp_free_atom) + { + mem = (gpointer) temp_free_atom; + + mem_area = g_tree_search (mem_chunk->mem_tree, + (GCompareFunc) g_mem_chunk_area_search, + mem); + + /* If this mem area is marked for destruction then delete the + * area and list node and decrement the free mem. + */ + if (mem_area->mark) + { + if (prev_free_atom) + prev_free_atom->next = temp_free_atom->next; + else + mem_chunk->free_atoms = temp_free_atom->next; + temp_free_atom = temp_free_atom->next; + + mem_area->free += mem_chunk->atom_size; + if (mem_area->free == mem_chunk->area_size) + { + mem_chunk->num_mem_areas -= 1; + mem_chunk->num_marked_areas -= 1; + + if (mem_area->next) + mem_area->next->prev = mem_area->prev; + if (mem_area->prev) + mem_area->prev->next = mem_area->next; + if (mem_area == mem_chunk->mem_areas) + mem_chunk->mem_areas = mem_chunk->mem_areas->next; + if (mem_area == mem_chunk->mem_area) + mem_chunk->mem_area = NULL; + + if (mem_chunk->type == G_ALLOC_AND_FREE) + g_tree_remove (mem_chunk->mem_tree, mem_area); + g_free (mem_area); + } + } + else + { + prev_free_atom = temp_free_atom; + temp_free_atom = temp_free_atom->next; + } + } + } + LEAVE_MEM_CHUNK_ROUTINE (); +} + +void +g_mem_chunk_reset (GMemChunk *mem_chunk) +{ + GMemArea *mem_areas; + GMemArea *temp_area; + + g_return_if_fail (mem_chunk != NULL); + + ENTER_MEM_CHUNK_ROUTINE (); + + mem_areas = mem_chunk->mem_areas; + mem_chunk->num_mem_areas = 0; + mem_chunk->mem_areas = NULL; + mem_chunk->mem_area = NULL; + + while (mem_areas) + { + temp_area = mem_areas; + mem_areas = mem_areas->next; + g_free (temp_area); + } + + mem_chunk->free_atoms = NULL; + + if (mem_chunk->mem_tree) + g_tree_destroy (mem_chunk->mem_tree); + mem_chunk->mem_tree = g_tree_new ((GCompareFunc) g_mem_chunk_area_compare); + + LEAVE_MEM_CHUNK_ROUTINE (); +} + +void +g_mem_chunk_print (GMemChunk *mem_chunk) +{ + GMemArea *mem_areas; + gulong mem; + + g_return_if_fail (mem_chunk != NULL); + + mem_areas = mem_chunk->mem_areas; + mem = 0; + + while (mem_areas) + { + mem += mem_chunk->area_size - mem_areas->free; + mem_areas = mem_areas->next; + } + + g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, + "%s: %ld bytes using %d mem areas", + mem_chunk->name, mem, mem_chunk->num_mem_areas); +} + +void +g_mem_chunk_info (void) +{ + GMemChunk *mem_chunk; + gint count; + + count = 0; + g_mutex_lock (mem_chunks_lock); + mem_chunk = mem_chunks; + while (mem_chunk) + { + count += 1; + mem_chunk = mem_chunk->next; + } + g_mutex_unlock (mem_chunks_lock); + + g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "%d mem chunks", count); + + g_mutex_lock (mem_chunks_lock); + mem_chunk = mem_chunks; + g_mutex_unlock (mem_chunks_lock); + + while (mem_chunk) + { + g_mem_chunk_print ((GMemChunk*) mem_chunk); + mem_chunk = mem_chunk->next; + } +} + +void +g_blow_chunks (void) +{ + GMemChunk *mem_chunk; + + g_mutex_lock (mem_chunks_lock); + mem_chunk = mem_chunks; + g_mutex_unlock (mem_chunks_lock); + while (mem_chunk) + { + g_mem_chunk_clean ((GMemChunk*) mem_chunk); + mem_chunk = mem_chunk->next; + } +} + +static gulong +g_mem_chunk_compute_size (gulong size, + gulong min_size) +{ + gulong power_of_2; + gulong lower, upper; + + power_of_2 = 16; + while (power_of_2 < size) + power_of_2 <<= 1; + + lower = power_of_2 >> 1; + upper = power_of_2; + + if (size - lower < upper - size && lower >= min_size) + return lower; + else + return upper; +} + +static gint +g_mem_chunk_area_compare (GMemArea *a, + GMemArea *b) +{ + if (a->mem > b->mem) + return 1; + else if (a->mem < b->mem) + return -1; + return 0; +} + +static gint +g_mem_chunk_area_search (GMemArea *a, + gchar *addr) +{ + if (a->mem <= addr) + { + if (addr < &a->mem[a->index]) + return 0; + return 1; + } + return -1; +} + +#else /* DISABLE_MEM_POOLS */ + +typedef struct { + guint alloc_size; /* the size of an atom */ +} GMinimalMemChunk; + +GMemChunk* +g_mem_chunk_new (const gchar *name, + gint atom_size, + gulong area_size, + gint type) +{ + GMinimalMemChunk *mem_chunk; + + g_return_val_if_fail (atom_size > 0, NULL); + + mem_chunk = g_new (GMinimalMemChunk, 1); + mem_chunk->alloc_size = atom_size; + + return ((GMemChunk*) mem_chunk); +} + +void +g_mem_chunk_destroy (GMemChunk *mem_chunk) +{ + g_return_if_fail (mem_chunk != NULL); + + g_free (mem_chunk); +} + +gpointer +g_mem_chunk_alloc (GMemChunk *mem_chunk) +{ + GMinimalMemChunk *minimal = (GMinimalMemChunk *)mem_chunk; + + g_return_val_if_fail (mem_chunk != NULL, NULL); + + return g_malloc (minimal->alloc_size); +} + +gpointer +g_mem_chunk_alloc0 (GMemChunk *mem_chunk) +{ + GMinimalMemChunk *minimal = (GMinimalMemChunk *)mem_chunk; + + g_return_val_if_fail (mem_chunk != NULL, NULL); + + return g_malloc0 (minimal->alloc_size); +} + +void +g_mem_chunk_free (GMemChunk *mem_chunk, + gpointer mem) +{ + g_return_if_fail (mem_chunk != NULL); + + g_free (mem); +} + +void g_mem_chunk_clean (GMemChunk *mem_chunk) {} +void g_mem_chunk_reset (GMemChunk *mem_chunk) {} +void g_mem_chunk_print (GMemChunk *mem_chunk) {} +void g_mem_chunk_info (void) {} +void g_blow_chunks (void) {} + +#endif /* DISABLE_MEM_POOLS */ + + +/* generic allocators + */ +struct _GAllocator /* from gmem.c */ +{ + gchar *name; + guint16 n_preallocs; + guint is_unused : 1; + guint type : 4; + GAllocator *last; + GMemChunk *mem_chunk; + gpointer dummy; /* implementation specific */ +}; + +GAllocator* +g_allocator_new (const gchar *name, + guint n_preallocs) +{ + GAllocator *allocator; + + g_return_val_if_fail (name != NULL, NULL); + + allocator = g_new0 (GAllocator, 1); + allocator->name = g_strdup (name); + allocator->n_preallocs = CLAMP (n_preallocs, 1, 65535); + allocator->is_unused = TRUE; + allocator->type = 0; + allocator->last = NULL; + allocator->mem_chunk = NULL; + allocator->dummy = NULL; + + return allocator; +} + +void +g_allocator_free (GAllocator *allocator) +{ + g_return_if_fail (allocator != NULL); + g_return_if_fail (allocator->is_unused == TRUE); + + g_free (allocator->name); + if (allocator->mem_chunk) + g_mem_chunk_destroy (allocator->mem_chunk); + + g_free (allocator); +} + +void +g_mem_init (void) +{ +#ifndef DISABLE_MEM_POOLS + mem_chunks_lock = g_mutex_new (); +#endif +#ifndef G_DISABLE_CHECKS + mem_chunk_recursion = g_private_new (NULL); + g_profile_mutex = g_mutex_new (); +#endif +} diff --git a/graf2d/win32gdk/gdk/src/glib/gmem.h b/graf2d/win32gdk/gdk/src/glib/gmem.h index e9cdb867d8a..9d5b41850e9 100644 --- a/graf2d/win32gdk/gdk/src/glib/gmem.h +++ b/graf2d/win32gdk/gdk/src/glib/gmem.h @@ -27,37 +27,72 @@ #ifndef __G_MEM_H__ #define __G_MEM_H__ -#include <g_types.h> +#include <glib/gtypes.h> -/* optionally feature DMALLOC memory allocation debugger +G_BEGIN_DECLS + +typedef struct _GAllocator GAllocator; +typedef struct _GMemChunk GMemChunk; +typedef struct _GMemVTable GMemVTable; + + +#if GLIB_SIZEOF_VOID_P > GLIB_SIZEOF_LONG +# define G_MEM_ALIGN GLIB_SIZEOF_VOID_P +#else /* GLIB_SIZEOF_VOID_P <= GLIB_SIZEOF_LONG */ +# define G_MEM_ALIGN GLIB_SIZEOF_LONG +#endif /* GLIB_SIZEOF_VOID_P <= GLIB_SIZEOF_LONG */ + + +/* Memory allocation functions */ -#ifdef USE_DMALLOC -#include "dmalloc.h" -#endif +gpointer g_malloc (gulong n_bytes); +gpointer g_malloc0 (gulong n_bytes); +gpointer g_realloc (gpointer mem, + gulong n_bytes); +void g_free (gpointer mem); +gpointer g_try_malloc (gulong n_bytes); +gpointer g_try_realloc (gpointer mem, + gulong n_bytes); -G_BEGIN_DECLS -typedef struct _GAllocator GAllocator; -typedef struct _GMemChunk GMemChunk; +/* Convenience memory allocators + */ +#define g_new(struct_type, n_structs) \ + ((struct_type *) g_malloc (((gsize) sizeof (struct_type)) * ((gsize) (n_structs)))) +#define g_new0(struct_type, n_structs) \ + ((struct_type *) g_malloc0 (((gsize) sizeof (struct_type)) * ((gsize) (n_structs)))) +#define g_renew(struct_type, mem, n_structs) \ + ((struct_type *) g_realloc ((mem), ((gsize) sizeof (struct_type)) * ((gsize) (n_structs)))) -/* Provide macros for easily allocating memory. The macros - * will cast the allocated memory to the specified type - * in order to avoid compiler warnings. (Makes the code neater). + +/* Memory allocation virtualization for debugging purposes + * g_mem_set_vtable() has to be the very first GLib function called + * if being used + */ +struct _GMemVTable +{ + gpointer (*malloc) (gsize n_bytes); + gpointer (*realloc) (gpointer mem, + gsize n_bytes); + void (*free) (gpointer mem); + /* optional */ + gpointer (*calloc) (gsize n_blocks, + gsize n_block_bytes); + gpointer (*try_malloc) (gsize n_bytes); + gpointer (*try_realloc) (gpointer mem, + gsize n_bytes); +}; +void g_mem_set_vtable (GMemVTable *vtable); +gboolean g_mem_is_system_malloc (void); + +/* Memory profiler and checker, has to be enabled via g_mem_set_vtable() */ +GLIB_VAR GMemVTable *glib_mem_profiler_table; +void g_mem_profile (void); -#ifdef __DMALLOC_H__ -# define g_new(type, count) (ALLOC (type, count)) -# define g_new0(type, count) (CALLOC (type, count)) -# define g_renew(type, mem, count) (REALLOC (mem, type, count)) -#else /* __DMALLOC_H__ */ -# define g_new(type, count) \ - ((type *) g_malloc ((unsigned) sizeof (type) * (count))) -# define g_new0(type, count) \ - ((type *) g_malloc0 ((unsigned) sizeof (type) * (count))) -# define g_renew(type, mem, count) \ - ((type *) g_realloc (mem, (unsigned) sizeof (type) * (count))) -#endif /* __DMALLOC_H__ */ +/* Memchunk convenience functions + */ #define g_mem_chunk_create(type, pre_alloc, alloc_type) ( \ g_mem_chunk_new (#type " mem chunks (" #pre_alloc ")", \ sizeof (type), \ @@ -74,37 +109,6 @@ typedef struct _GMemChunk GMemChunk; g_mem_chunk_free ((mem_chunk), (mem)); \ } G_STMT_END -/* Memory allocation and debugging - */ -#ifdef USE_DMALLOC - -#define g_malloc(size) ((gpointer) MALLOC (size)) -#define g_malloc0(size) ((gpointer) CALLOC (char, size)) -#define g_realloc(mem,size) ((gpointer) REALLOC (mem, char, size)) -#define g_free(mem) FREE (mem) - -#else /* !USE_DMALLOC */ - -gpointer g_malloc (gulong size); -gpointer g_malloc0 (gulong size); -gpointer g_realloc (gpointer mem, - gulong size); -void g_free (gpointer mem); - -#endif /* !USE_DMALLOC */ - -void g_mem_profile (void); -void g_mem_check (gpointer mem); - -/* Generic allocators - */ -GAllocator* g_allocator_new (const gchar *name, - guint n_preallocs); -void g_allocator_free (GAllocator *allocato); - -#define G_ALLOCATOR_LIST (1) -#define G_ALLOCATOR_SLIST (2) -#define G_ALLOCATOR_NODE (3) /* "g_mem_chunk_new" creates a new memory chunk. * Memory chunks are used to allocate pieces of memory which are @@ -128,19 +132,19 @@ void g_allocator_free (GAllocator *allocato); #define G_ALLOC_ONLY 1 #define G_ALLOC_AND_FREE 2 -GMemChunk* g_mem_chunk_new (gchar *name, - gint atom_size, - gulong area_size, - gint type); -void g_mem_chunk_destroy (GMemChunk *mem_chunk); -gpointer g_mem_chunk_alloc (GMemChunk *mem_chunk); -gpointer g_mem_chunk_alloc0 (GMemChunk *mem_chunk); -void g_mem_chunk_free (GMemChunk *mem_chunk, - gpointer mem); -void g_mem_chunk_clean (GMemChunk *mem_chunk); -void g_mem_chunk_reset (GMemChunk *mem_chunk); -void g_mem_chunk_print (GMemChunk *mem_chunk); -void g_mem_chunk_info (void); +GMemChunk* g_mem_chunk_new (const gchar *name, + gint atom_size, + gulong area_size, + gint type); +void g_mem_chunk_destroy (GMemChunk *mem_chunk); +gpointer g_mem_chunk_alloc (GMemChunk *mem_chunk); +gpointer g_mem_chunk_alloc0 (GMemChunk *mem_chunk); +void g_mem_chunk_free (GMemChunk *mem_chunk, + gpointer mem); +void g_mem_chunk_clean (GMemChunk *mem_chunk); +void g_mem_chunk_reset (GMemChunk *mem_chunk); +void g_mem_chunk_print (GMemChunk *mem_chunk); +void g_mem_chunk_info (void); /* Ah yes...we have a "g_blow_chunks" function. * "g_blow_chunks" simply compresses all the chunks. This operation @@ -150,9 +154,21 @@ void g_mem_chunk_info (void); * much better name than "g_mem_chunk_clean_all" or something * similar. */ -void g_blow_chunks (void); +void g_blow_chunks (void); + + +/* Generic allocators + */ +GAllocator* g_allocator_new (const gchar *name, + guint n_preallocs); +void g_allocator_free (GAllocator *allocator); + +/* internal */ +#define G_ALLOCATOR_LIST (1) +#define G_ALLOCATOR_SLIST (2) +#define G_ALLOCATOR_NODE (3) + G_END_DECLS #endif /* __G_MEM_H__ */ - diff --git a/graf2d/win32gdk/gdk/src/glib/gmessages.c b/graf2d/win32gdk/gdk/src/glib/gmessages.c new file mode 100644 index 00000000000..f659dbc6803 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gmessages.c @@ -0,0 +1,1185 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <stdlib.h> +#include <stdarg.h> +#include <stdio.h> +#include <string.h> +#include "glib.h" +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif +#include <signal.h> +#include <locale.h> +#include <errno.h> + +#ifdef G_OS_WIN32 +typedef FILE* GFileDescriptor; +#else +typedef gint GFileDescriptor; +#endif + +/* --- structures --- */ +typedef struct _GLogDomain GLogDomain; +typedef struct _GLogHandler GLogHandler; +struct _GLogDomain +{ + gchar *log_domain; + GLogLevelFlags fatal_mask; + GLogHandler *handlers; + GLogDomain *next; +}; +struct _GLogHandler +{ + guint id; + GLogLevelFlags log_level; + GLogFunc log_func; + gpointer data; + GLogHandler *next; +}; + + +/* --- prototypes --- */ +static gsize printf_string_upper_bound (const gchar *format, + gboolean may_warn, + va_list args); + + +/* --- variables --- */ + +static GMutex* g_messages_lock = NULL; + +const gchar *g_log_domain_glib = "GLib"; +static GLogDomain *g_log_domains = NULL; +static GLogLevelFlags g_log_always_fatal = G_LOG_FATAL_MASK; +static GPrintFunc glib_print_func = NULL; +static GPrintFunc glib_printerr_func = NULL; + +static GPrivate* g_log_depth = NULL; + +/* --- functions --- */ +#ifdef G_OS_WIN32 +# define STRICT +# include <windows.h> +# undef STRICT +# include <process.h> /* For _getpid() */ + +static gboolean alloc_console_called = FALSE; + +static gboolean gonna_abort = FALSE; + +/* This default message will usually be overwritten. */ +/* Yes, a fixed size buffer is bad. So sue me. But g_error is never + * with huge strings, is it? */ +static char fatal_msg_buf[1000] = "Unspecified fatal error encountered, aborting."; +static char *fatal_msg_ptr = fatal_msg_buf; + +/* Just use stdio. If we're out of memory, we're hosed anyway. */ +#undef write +static inline int +dowrite (GFileDescriptor fd, + const void *buf, + unsigned int len) +{ + if (gonna_abort) + { + memcpy (fatal_msg_ptr, buf, len); + fatal_msg_ptr += len; + *fatal_msg_ptr = 0; + return len; + } + + fwrite (buf, len, 1, fd); + fflush (fd); + + return len; +} + +#define write(fd, buf, len) dowrite(fd, buf, len) + +static void +ensure_stdout_valid (void) +{ + HANDLE handle; + + if (gonna_abort) + return; + + if (!alloc_console_called) + { + handle = GetStdHandle (STD_OUTPUT_HANDLE); + + if (handle == INVALID_HANDLE_VALUE) + { + AllocConsole (); + alloc_console_called = TRUE; + freopen ("CONOUT$", "w", stdout); + } + } +} +#else +#define ensure_stdout_valid() /* Define as empty */ +#endif + +static void +write_unsigned (GFileDescriptor fd, + gulong num, + guint radix) +{ + char buffer[64]; + gulong tmp; + char c; + int i, n; + + g_return_if_fail (radix >= 2 && radix <= 36); + + if (!num) + { + write (fd, "0", 1); + return; + } + + if (radix == 16) + write (fd, "0x", 2); + else if (radix == 8) + write (fd, "0", 1); + + n = 0; + tmp = num; + while (tmp) + { + tmp /= radix; + n++; + } + + i = n; + while (num) + { + i--; + c = (num % radix); + if (c < 10) + buffer[i] = c + '0'; + else + buffer[i] = c + 'a' - 10; + num /= radix; + } + + write (fd, buffer, n); +} + +static void +write_string (GFileDescriptor fd, + gchar *string) +{ + write (fd, string, strlen (string)); +} + +static void +g_log_write_prefix (GFileDescriptor fd, + GLogLevelFlags mask) +{ + static GLogLevelFlags g_log_msg_prefix = G_LOG_LEVEL_ERROR | G_LOG_LEVEL_WARNING | G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_DEBUG; + static gboolean initialized = FALSE; + + g_mutex_lock (g_messages_lock); + + if (!initialized) + { + const gchar *val; + initialized = TRUE; + + val = g_getenv ("G_MESSAGES_PREFIXED"); + + if (val) + { + static const GDebugKey keys[] = { + { "error", G_LOG_LEVEL_ERROR }, + { "critical", G_LOG_LEVEL_CRITICAL }, + { "warning", G_LOG_LEVEL_WARNING }, + { "message", G_LOG_LEVEL_MESSAGE }, + { "info", G_LOG_LEVEL_INFO }, + { "debug", G_LOG_LEVEL_DEBUG } + }; + + g_log_msg_prefix = g_parse_debug_string (val, keys, G_N_ELEMENTS (keys)); + } + } + + g_mutex_unlock (g_messages_lock); + + if ((g_log_msg_prefix & mask) == mask) + { + gchar *prg_name; + + prg_name = g_get_prgname (); + + if (!prg_name) + write_string (fd, "(process:"); + else + { + write_string (fd, prg_name); + write_string (fd, " (pid:"); + } + + write_unsigned (fd, getpid (), 10); + write_string (fd, "): "); + } +} + +static inline GLogDomain* +g_log_find_domain (const gchar *log_domain) +{ + register GLogDomain *domain; + + g_mutex_lock (g_messages_lock); + domain = g_log_domains; + while (domain) + { + if (strcmp (domain->log_domain, log_domain) == 0) + { + g_mutex_unlock (g_messages_lock); + return domain; + } + domain = domain->next; + } + g_mutex_unlock (g_messages_lock); + return NULL; +} + +static inline GLogDomain* +g_log_domain_new (const gchar *log_domain) +{ + register GLogDomain *domain; + + domain = g_new (GLogDomain, 1); + domain->log_domain = g_strdup (log_domain); + domain->fatal_mask = G_LOG_FATAL_MASK; + domain->handlers = NULL; + + g_mutex_lock (g_messages_lock); + domain->next = g_log_domains; + g_log_domains = domain; + g_mutex_unlock (g_messages_lock); + + return domain; +} + +static inline void +g_log_domain_check_free (GLogDomain *domain) +{ + if (domain->fatal_mask == G_LOG_FATAL_MASK && + domain->handlers == NULL) + { + register GLogDomain *last, *work; + + last = NULL; + + g_mutex_lock (g_messages_lock); + work = g_log_domains; + while (work) + { + if (work == domain) + { + if (last) + last->next = domain->next; + else + g_log_domains = domain->next; + g_free (domain->log_domain); + g_free (domain); + break; + } + last = work; + work = last->next; + } + g_mutex_unlock (g_messages_lock); + } +} + +static inline GLogFunc +g_log_domain_get_handler (GLogDomain *domain, + GLogLevelFlags log_level, + gpointer *data) +{ + if (domain && log_level) + { + register GLogHandler *handler; + + handler = domain->handlers; + while (handler) + { + if ((handler->log_level & log_level) == log_level) + { + *data = handler->data; + return handler->log_func; + } + handler = handler->next; + } + } + return g_log_default_handler; +} + +GLogLevelFlags +g_log_set_always_fatal (GLogLevelFlags fatal_mask) +{ + GLogLevelFlags old_mask; + + /* restrict the global mask to levels that are known to glib */ + fatal_mask &= (1 << G_LOG_LEVEL_USER_SHIFT) - 1; + /* force errors to be fatal */ + fatal_mask |= G_LOG_LEVEL_ERROR; + /* remove bogus flag */ + fatal_mask &= ~G_LOG_FLAG_FATAL; + + g_mutex_lock (g_messages_lock); + old_mask = g_log_always_fatal; + g_log_always_fatal = fatal_mask; + g_mutex_unlock (g_messages_lock); + + return old_mask; +} + +GLogLevelFlags +g_log_set_fatal_mask (const gchar *log_domain, + GLogLevelFlags fatal_mask) +{ + GLogLevelFlags old_flags; + register GLogDomain *domain; + + if (!log_domain) + log_domain = ""; + + /* force errors to be fatal */ + fatal_mask |= G_LOG_LEVEL_ERROR; + /* remove bogus flag */ + fatal_mask &= ~G_LOG_FLAG_FATAL; + + domain = g_log_find_domain (log_domain); + if (!domain) + domain = g_log_domain_new (log_domain); + old_flags = domain->fatal_mask; + + domain->fatal_mask = fatal_mask; + g_log_domain_check_free (domain); + + return old_flags; +} + +guint +g_log_set_handler (const gchar *log_domain, + GLogLevelFlags log_levels, + GLogFunc log_func, + gpointer user_data) +{ + register GLogDomain *domain; + register GLogHandler *handler; + static guint handler_id = 0; + + g_return_val_if_fail ((log_levels & G_LOG_LEVEL_MASK) != 0, 0); + g_return_val_if_fail (log_func != NULL, 0); + + if (!log_domain) + log_domain = ""; + + domain = g_log_find_domain (log_domain); + if (!domain) + domain = g_log_domain_new (log_domain); + + handler = g_new (GLogHandler, 1); + g_mutex_lock (g_messages_lock); + handler->id = ++handler_id; + g_mutex_unlock (g_messages_lock); + handler->log_level = log_levels; + handler->log_func = log_func; + handler->data = user_data; + handler->next = domain->handlers; + domain->handlers = handler; + + return handler_id; +} + +void +g_log_remove_handler (const gchar *log_domain, + guint handler_id) +{ + register GLogDomain *domain; + + g_return_if_fail (handler_id > 0); + + if (!log_domain) + log_domain = ""; + + domain = g_log_find_domain (log_domain); + if (domain) + { + register GLogHandler *work, *last; + + last = NULL; + work = domain->handlers; + while (work) + { + if (work->id == handler_id) + { + if (last) + last->next = work->next; + else + domain->handlers = work->next; + g_free (work); + g_log_domain_check_free (domain); + return; + } + last = work; + work = last->next; + } + } + g_warning ("g_log_remove_handler(): could not find handler with id `%d' for domain \"%s\"", + handler_id, + log_domain); +} + +void +g_logv (const gchar *log_domain, + GLogLevelFlags log_level, + const gchar *format, + va_list args1) +{ + va_list args2; + gchar buffer[1025]; + register gint i; + + log_level &= G_LOG_LEVEL_MASK; + if (!log_level) + return; + + /* we use a stack buffer of fixed size, because we might get called + * recursively. + */ +#ifdef HAVE_VSNPRINTF + vsnprintf (buffer, 1024, format, args1); +#else /* !HAVE_VSNPRINTF */ + G_VA_COPY (args2, args1); + if (printf_string_upper_bound (format, FALSE, args1) < 1024) + vsprintf (buffer, format, args2); + else + { + /* since we might be out of memory, we can't use g_vsnprintf(). */ + /* we are out of luck here */ + strncpy (buffer, format, 1024); + buffer[1024] = 0; + } + va_end (args2); +#endif /* !HAVE_VSNPRINTF */ + + for (i = g_bit_nth_msf (log_level, -1); i >= 0; i = g_bit_nth_msf (log_level, i)) + { + register GLogLevelFlags test_level; + + test_level = 1 << i; + if (log_level & test_level) + { + guint depth = GPOINTER_TO_UINT (g_private_get (g_log_depth)); + GLogDomain *domain; + GLogFunc log_func; + gpointer data = NULL; + + domain = g_log_find_domain (log_domain ? log_domain : ""); + + if (depth) + test_level |= G_LOG_FLAG_RECURSION; + + depth++; + g_private_set (g_log_depth, GUINT_TO_POINTER (depth)); + + g_mutex_lock (g_messages_lock); + if ((((domain ? domain->fatal_mask : G_LOG_FATAL_MASK) | + g_log_always_fatal) & test_level) != 0) + test_level |= G_LOG_FLAG_FATAL; + g_mutex_unlock (g_messages_lock); + + log_func = g_log_domain_get_handler (domain, test_level, &data); + log_func (log_domain, test_level, buffer, data); + + /* *domain can be cluttered now */ + + if (test_level & G_LOG_FLAG_FATAL) + { +#if defined (G_ENABLE_DEBUG) && defined (SIGTRAP) + if (!(test_level & G_LOG_FLAG_RECURSION)) + G_BREAKPOINT (); + else + abort (); +#else /* !G_ENABLE_DEBUG || !SIGTRAP */ +#ifdef G_OS_WIN32 + MessageBox (NULL, fatal_msg_buf, NULL, MB_OK); +#endif +# if defined (_MSC_VER) && defined (_DEBUG) + /* let's see the call stack ... */ + __asm int 3 +# endif + abort (); +#endif /* !G_ENABLE_DEBUG || !SIGTRAP */ + } + + depth--; + g_private_set (g_log_depth, GUINT_TO_POINTER (depth)); + } + } +} + +void +g_log (const gchar *log_domain, + GLogLevelFlags log_level, + const gchar *format, + ...) +{ + va_list args; + + va_start (args, format); + g_logv (log_domain, log_level, format, args); + va_end (args); +} + +void +g_log_default_handler (const gchar *log_domain, + GLogLevelFlags log_level, + const gchar *message, + gpointer unused_data) +{ + GFileDescriptor fd; + gboolean in_recursion; + gboolean is_fatal; + + in_recursion = (log_level & G_LOG_FLAG_RECURSION) != 0; + is_fatal = (log_level & G_LOG_FLAG_FATAL) != 0; + log_level &= G_LOG_LEVEL_MASK; + + if (!message) + message = "g_log_default_handler(): (NULL) message"; + +#ifdef G_OS_WIN32 + /* Use just stdout as stderr is hard to get redirected from the + * DOS prompt. + */ + fd = stdout; + gonna_abort = is_fatal; +#else + fd = (log_level > G_LOG_LEVEL_MESSAGE) ? 1 : 2; +#endif + + switch (log_level) + { + case G_LOG_LEVEL_ERROR: + /* use write(2) for output, in case we are out of memeory */ + ensure_stdout_valid (); + write (fd, "\n", 1); + g_log_write_prefix (fd, log_level); + + if (log_domain) + { + write (fd, log_domain, strlen (log_domain)); + write (fd, "-", 1); + } + else + write (fd, "** ", 3); + if (in_recursion) + write (fd, "ERROR (recursed) **: ", 21); + else + write (fd, "ERROR **: ", 10); + write (fd, message, strlen (message)); + if (is_fatal) + write (fd, "\naborting...\n", 13); + else + write (fd, "\n", 1); + break; + case G_LOG_LEVEL_CRITICAL: + ensure_stdout_valid (); + write (fd, "\n", 1); + g_log_write_prefix (fd, log_level); + + if (log_domain) + { + write (fd, log_domain, strlen (log_domain)); + write (fd, "-", 1); + } + else + write (fd, "** ", 3); + if (in_recursion) + write (fd, "CRITICAL (recursed) **: ", 24); + else + write (fd, "CRITICAL **: ", 13); + write (fd, message, strlen (message)); + if (is_fatal) + write (fd, "\naborting...\n", 13); + else + write (fd, "\n", 1); + break; + case G_LOG_LEVEL_WARNING: + ensure_stdout_valid (); + write (fd, "\n", 1); + g_log_write_prefix (fd, log_level); + + if (log_domain) + { + write (fd, log_domain, strlen (log_domain)); + write (fd, "-", 1); + } + else + write (fd, "** ", 3); + if (in_recursion) + write (fd, "WARNING (recursed) **: ", 23); + else + write (fd, "WARNING **: ", 12); + write (fd, message, strlen (message)); + if (is_fatal) + write (fd, "\naborting...\n", 13); + else + write (fd, "\n", 1); + break; + case G_LOG_LEVEL_MESSAGE: + ensure_stdout_valid (); + + g_log_write_prefix (fd, log_level); + + if (log_domain) + { + write (fd, log_domain, strlen (log_domain)); + write (fd, "-", 1); + } + if (in_recursion) + write (fd, "Message (recursed): ", 20); + else + write (fd, "Message: ", 9); + write (fd, message, strlen (message)); + if (is_fatal) + write (fd, "\naborting...\n", 13); + else + write (fd, "\n", 1); + break; + case G_LOG_LEVEL_INFO: + ensure_stdout_valid (); + + g_log_write_prefix (fd, log_level); + + if (log_domain) + { + write (fd, log_domain, strlen (log_domain)); + write (fd, "-", 1); + } + if (in_recursion) + write (fd, "INFO (recursed): ", 17); + else + write (fd, "INFO: ", 6); + write (fd, message, strlen (message)); + if (is_fatal) + write (fd, "\naborting...\n", 13); + else + write (fd, "\n", 1); + break; + case G_LOG_LEVEL_DEBUG: + ensure_stdout_valid (); + + g_log_write_prefix (fd, log_level); + + if (log_domain) + { + write (fd, log_domain, strlen (log_domain)); + write (fd, "-", 1); + } + if (in_recursion) + write (fd, "DEBUG (recursed): ", 18); + else + write (fd, "DEBUG: ", 7); + write (fd, message, strlen (message)); + if (is_fatal) + write (fd, "\naborting...\n", 13); + else + write (fd, "\n", 1); + break; + default: + /* we are used for a log level that is not defined by GLib itself, + * try to make the best out of it. + */ + ensure_stdout_valid (); + + g_log_write_prefix (fd, log_level); + + if (log_domain) + { + write (fd, log_domain, strlen (log_domain)); + if (in_recursion) + write (fd, "-LOG (recursed:", 15); + else + write (fd, "-LOG (", 6); + } + else if (in_recursion) + write (fd, "LOG (recursed:", 14); + else + write (fd, "LOG (", 5); + if (log_level) + { + gchar string[] = "0x00): "; + gchar *p = string + 2; + guint i; + + i = g_bit_nth_msf (log_level, -1); + *p = i >> 4; + p++; + *p = '0' + (i & 0xf); + if (*p > '9') + *p += 'A' - '9' - 1; + + write (fd, string, 7); + } + else + write (fd, "): ", 3); + write (fd, message, strlen (message)); + if (is_fatal) + write (fd, "\naborting...\n", 13); + else + write (fd, "\n", 1); + break; + } +} + +GPrintFunc +g_set_print_handler (GPrintFunc func) +{ + GPrintFunc old_print_func; + + g_mutex_lock (g_messages_lock); + old_print_func = glib_print_func; + glib_print_func = func; + g_mutex_unlock (g_messages_lock); + + return old_print_func; +} + +void +g_print (const gchar *format, + ...) +{ + va_list args; + gchar *string; + GPrintFunc local_glib_print_func; + + g_return_if_fail (format != NULL); + + va_start (args, format); + string = g_strdup_vprintf (format, args); + va_end (args); + + g_mutex_lock (g_messages_lock); + local_glib_print_func = glib_print_func; + g_mutex_unlock (g_messages_lock); + + if (local_glib_print_func) + local_glib_print_func (string); + else + { + ensure_stdout_valid (); + fputs (string, stdout); + fflush (stdout); + } + g_free (string); +} + +GPrintFunc +g_set_printerr_handler (GPrintFunc func) +{ + GPrintFunc old_printerr_func; + + g_mutex_lock (g_messages_lock); + old_printerr_func = glib_printerr_func; + glib_printerr_func = func; + g_mutex_unlock (g_messages_lock); + + return old_printerr_func; +} + +void +g_printerr (const gchar *format, + ...) +{ + va_list args; + gchar *string; + GPrintFunc local_glib_printerr_func; + + g_return_if_fail (format != NULL); + + va_start (args, format); + string = g_strdup_vprintf (format, args); + va_end (args); + + g_mutex_lock (g_messages_lock); + local_glib_printerr_func = glib_printerr_func; + g_mutex_unlock (g_messages_lock); + + if (local_glib_printerr_func) + local_glib_printerr_func (string); + else + { + fputs (string, stderr); + fflush (stderr); + } + g_free (string); +} + +#ifndef MB_LEN_MAX +# define MB_LEN_MAX 8 +#endif + +typedef struct +{ + guint min_width; + guint precision; + gboolean alternate_format, zero_padding, adjust_left, locale_grouping; + gboolean add_space, add_sign, possible_sign, seen_precision; + gboolean mod_half, mod_long, mod_extra_long; +} PrintfArgSpec; + +static gsize +printf_string_upper_bound (const gchar *format, + gboolean may_warn, + va_list args) +{ + static const gboolean honour_longs = sizeof(long) > 4 || sizeof(void*) > 4; + gsize len = 1; + + if (!format) + return len; + + while (*format) + { + register gchar c = *format++; + + if (c != '%') + len += 1; + else /* (c == '%') */ + { + PrintfArgSpec spec = { 0, }; + gboolean seen_l = FALSE, conv_done = FALSE; + gsize conv_len = 0; + const gchar *spec_start = format; + + do + { + c = *format++; + switch (c) + { + GDoubleIEEE754 u_double; + guint v_uint; + gint v_int; + const gchar *v_string; + + /* beware of positional parameters + */ + case '$': + if (may_warn) + g_warning (G_GNUC_PRETTY_FUNCTION + "(): unable to handle positional parameters (%%n$)"); + len += 1024; /* try adding some safety padding */ + conv_done = TRUE; + break; + + /* parse flags + */ + case '#': + spec.alternate_format = TRUE; + break; + case '0': + spec.zero_padding = TRUE; + break; + case '-': + spec.adjust_left = TRUE; + break; + case ' ': + spec.add_space = TRUE; + break; + case '+': + spec.add_sign = TRUE; + break; + case '\'': + spec.locale_grouping = TRUE; + break; + + /* parse output size specifications + */ + case '.': + spec.seen_precision = TRUE; + break; + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + v_uint = c - '0'; + c = *format; + while (c >= '0' && c <= '9') + { + format++; + v_uint = v_uint * 10 + c - '0'; + c = *format; + } + if (spec.seen_precision) + spec.precision = MAX (spec.precision, v_uint); + else + spec.min_width = MAX (spec.min_width, v_uint); + break; + case '*': + v_int = va_arg (args, int); + if (spec.seen_precision) + { + /* forget about negative precision */ + if (v_int >= 0) + spec.precision = MAX (spec.precision, v_int); + } + else + { + if (v_int < 0) + { + v_int = - v_int; + spec.adjust_left = TRUE; + } + spec.min_width = MAX (spec.min_width, v_int); + } + break; + + /* parse type modifiers + */ + case 'h': + spec.mod_half = TRUE; + break; + case 'l': + if (!seen_l) + { + spec.mod_long = TRUE; + seen_l = TRUE; + break; + } + /* else, fall through */ + case 'L': + case 'q': + spec.mod_long = TRUE; + spec.mod_extra_long = TRUE; + break; + case 'z': + case 'Z': +#if GLIB_SIZEOF_SIZE_T > 4 + spec.mod_long = TRUE; + spec.mod_extra_long = TRUE; +#endif /* GLIB_SIZEOF_SIZE_T > 4 */ + break; + case 't': +#if GLIB_SIZEOF_PTRDIFF_T > 4 + spec.mod_long = TRUE; + spec.mod_extra_long = TRUE; +#endif /* GLIB_SIZEOF_PTRDIFF_T > 4 */ + break; + case 'j': +#if GLIB_SIZEOF_INTMAX_T > 4 + spec.mod_long = TRUE; + spec.mod_extra_long = TRUE; +#endif /* GLIB_SIZEOF_INTMAX_T > 4 */ + break; + + /* parse output conversions + */ + case '%': + conv_len += 1; + break; + case 'O': + case 'D': + case 'I': + case 'U': + /* some C libraries feature long variants for these as well? */ + spec.mod_long = TRUE; + /* fall through */ + case 'o': + conv_len += 2; + /* fall through */ + case 'd': + case 'i': + conv_len += 1; /* sign */ + /* fall through */ + case 'u': + conv_len += 4; + /* fall through */ + case 'x': + case 'X': + spec.possible_sign = TRUE; + conv_len += 10; + if (spec.mod_long && honour_longs) + conv_len *= 2; + if (spec.mod_extra_long) + conv_len *= 2; + if (spec.mod_extra_long) + { +#ifdef G_HAVE_GINT64 + (void) va_arg (args, gint64); +#else /* !G_HAVE_GINT64 */ + (void) va_arg (args, long); +#endif /* !G_HAVE_GINT64 */ + } + else if (spec.mod_long) + (void) va_arg (args, long); + else + (void) va_arg (args, int); + break; + case 'A': + case 'a': + /* 0x */ + conv_len += 2; + /* fall through */ + case 'g': + case 'G': + case 'e': + case 'E': + case 'f': + spec.possible_sign = TRUE; + /* n . dddddddddddddddddddddddd E +- eeee */ + conv_len += 1 + 1 + MAX (24, spec.precision) + 1 + 1 + 4; + if (may_warn && spec.mod_extra_long) + g_warning (G_GNUC_PRETTY_FUNCTION + "(): unable to handle long double, collecting double only"); +#ifdef HAVE_LONG_DOUBLE +#error need to implement special handling for long double +#endif + u_double.v_double = va_arg (args, double); + /* %f can expand up to all significant digits before '.' (308) */ + if (c == 'f' && + u_double.mpn.biased_exponent > 0 && u_double.mpn.biased_exponent < 2047) + { + gint exp = u_double.mpn.biased_exponent; + + exp -= G_IEEE754_DOUBLE_BIAS; + exp = exp * G_LOG_2_BASE_10 + 1; + conv_len += ABS (exp); /* exp can be <0 */ + } + /* some printf() implementations require extra padding for rounding */ + conv_len += 2; + /* we can't really handle locale specific grouping here */ + if (spec.locale_grouping) + conv_len *= 2; + break; + case 'C': + spec.mod_long = TRUE; + /* fall through */ + case 'c': + conv_len += spec.mod_long ? MB_LEN_MAX : 1; + (void) va_arg (args, int); + break; + case 'S': + spec.mod_long = TRUE; + /* fall through */ + case 's': + v_string = va_arg (args, char*); + if (!v_string) + conv_len += 8; /* hold "(null)" */ + else if (spec.seen_precision) + conv_len += spec.precision; + else + conv_len += strlen (v_string); + conv_done = TRUE; + if (spec.mod_long) + { + if (may_warn) + g_warning (G_GNUC_PRETTY_FUNCTION + "(): unable to handle wide char strings"); + len += 1024; /* try adding some safety padding */ + } + break; + case 'P': /* do we actually need this? */ + /* fall through */ + case 'p': + spec.alternate_format = TRUE; + conv_len += 10; + if (honour_longs) + conv_len *= 2; + /* fall through */ + case 'n': + conv_done = TRUE; + (void) va_arg (args, void*); + break; + case 'm': + /* there's not much we can do to be clever */ + v_string = g_strerror (errno); + v_uint = v_string ? strlen (v_string) : 0; + conv_len += MAX (256, v_uint); + break; + + /* handle invalid cases + */ + case '\000': + /* no conversion specification, bad bad */ + conv_len += format - spec_start; + break; + default: + if (may_warn) + g_warning (G_GNUC_PRETTY_FUNCTION + "(): unable to handle `%c' while parsing format", + c); + break; + } + conv_done |= conv_len > 0; + } + while (!conv_done); + /* handle width specifications */ + conv_len = MAX (conv_len, MAX (spec.precision, spec.min_width)); + /* handle flags */ + conv_len += spec.alternate_format ? 2 : 0; + conv_len += (spec.add_space || spec.add_sign || spec.possible_sign); + /* finally done */ + len += conv_len; + } /* else (c == '%') */ + } /* while (*format) */ + + return len; +} + +gsize +g_printf_string_upper_bound (const gchar *format, + va_list args) +{ + return printf_string_upper_bound (format, TRUE, args); +} + +void +g_messages_init (void) +{ + g_messages_lock = g_mutex_new(); + g_log_depth = g_private_new(NULL); +} diff --git a/graf2d/win32gdk/gdk/src/glib/gmessages.h b/graf2d/win32gdk/gdk/src/glib/gmessages.h index f5a11ad4b8f..9fc556fa721 100644 --- a/graf2d/win32gdk/gdk/src/glib/gmessages.h +++ b/graf2d/win32gdk/gdk/src/glib/gmessages.h @@ -28,13 +28,13 @@ #define __G_MESSAGES_H__ #include <stdarg.h> -#include <g_types.h> +#include <glib/gtypes.h> G_BEGIN_DECLS /* calculate a string size, guarranteed to fit format + args. */ -guint g_printf_string_upper_bound (const gchar* format, +gsize g_printf_string_upper_bound (const gchar* format, va_list args); /* Log level shift offset for user defined @@ -71,7 +71,7 @@ typedef void (*GLogFunc) (const gchar *log_domain, /* Logging mechanism */ -extern const gchar *g_log_domain_glib; +GLIB_VAR const gchar *g_log_domain_glib; guint g_log_set_handler (const gchar *log_domain, GLogLevelFlags log_levels, GLogFunc log_func, @@ -97,7 +97,7 @@ GLogLevelFlags g_log_set_always_fatal (GLogLevelFlags fatal_mask); #ifndef G_LOG_DOMAIN #define G_LOG_DOMAIN ((gchar*) 0) #endif /* G_LOG_DOMAIN */ -#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#ifdef G_HAVE_ISO_VARARGS #define g_error(...) g_log (G_LOG_DOMAIN, \ G_LOG_LEVEL_ERROR, \ __VA_ARGS__) @@ -110,7 +110,7 @@ GLogLevelFlags g_log_set_always_fatal (GLogLevelFlags fatal_mask); #define g_warning(...) g_log (G_LOG_DOMAIN, \ G_LOG_LEVEL_WARNING, \ __VA_ARGS__) -#elif __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 4) +#elif defined(G_HAVE_GNUC_VARARGS) #define g_error(format...) g_log (G_LOG_DOMAIN, \ G_LOG_LEVEL_ERROR, \ format) @@ -123,7 +123,7 @@ GLogLevelFlags g_log_set_always_fatal (GLogLevelFlags fatal_mask); #define g_warning(format...) g_log (G_LOG_DOMAIN, \ G_LOG_LEVEL_WARNING, \ format) -#else /* !__GNUC__ */ +#else /* no varargs macros */ static void g_error (const gchar *format, ...) @@ -170,12 +170,6 @@ void g_printerr (const gchar *format, ...) G_GNUC_PRINTF (1, 2); GPrintFunc g_set_printerr_handler (GPrintFunc func); -/* deprecated compatibility functions, use g_log_set_handler() instead */ -typedef void (*GErrorFunc) (const gchar *str); -typedef void (*GWarningFunc) (const gchar *str); -GErrorFunc g_set_error_handler (GErrorFunc func); -GWarningFunc g_set_warning_handler (GWarningFunc func); -GPrintFunc g_set_message_handler (GPrintFunc func); /* Provide macros for error handling. The "assert" macros will * exit on failure. The "return" macros will exit the current @@ -186,8 +180,8 @@ GPrintFunc g_set_message_handler (GPrintFunc func); #ifdef G_DISABLE_ASSERT -#define g_assert(expr) -#define g_assert_not_reached() +#define g_assert(expr) G_STMT_START{ }G_STMT_END +#define g_assert_not_reached() G_STMT_START{ }G_STMT_END #else /* !G_DISABLE_ASSERT */ @@ -236,10 +230,10 @@ GPrintFunc g_set_message_handler (GPrintFunc func); #ifdef G_DISABLE_CHECKS -#define g_return_if_fail(expr) -#define g_return_val_if_fail(expr,val) -#define g_return_if_reached() return -#define g_return_val_if_reached(val) return (val) +#define g_return_if_fail(expr) G_STMT_START{ }G_STMT_END +#define g_return_val_if_fail(expr,val) G_STMT_START{ }G_STMT_END +#define g_return_if_reached() G_STMT_START{ return; }G_STMT_END +#define g_return_val_if_reached(val) G_STMT_START{ return (val); }G_STMT_END #else /* !G_DISABLE_CHECKS */ diff --git a/graf2d/win32gdk/gdk/src/glib/gnode.c b/graf2d/win32gdk/gdk/src/glib/gnode.c new file mode 100644 index 00000000000..77143a8c432 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gnode.c @@ -0,0 +1,1064 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * GNode: N-way tree implementation. + * Copyright (C) 1998 Tim Janik + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include "glib.h" + +#ifndef DISABLE_MEM_POOLS +/* node allocation + */ +struct _GAllocator /* from gmem.c */ +{ + gchar *name; + guint16 n_preallocs; + guint is_unused : 1; + guint type : 4; + GAllocator *last; + GMemChunk *mem_chunk; + GNode *free_nodes; /* implementation specific */ +}; + +G_LOCK_DEFINE_STATIC (current_allocator); +static GAllocator *current_allocator = NULL; + +/* HOLDS: current_allocator_lock */ +static void +g_node_validate_allocator (GAllocator *allocator) +{ + g_return_if_fail (allocator != NULL); + g_return_if_fail (allocator->is_unused == TRUE); + + if (allocator->type != G_ALLOCATOR_NODE) + { + allocator->type = G_ALLOCATOR_NODE; + if (allocator->mem_chunk) + { + g_mem_chunk_destroy (allocator->mem_chunk); + allocator->mem_chunk = NULL; + } + } + + if (!allocator->mem_chunk) + { + allocator->mem_chunk = g_mem_chunk_new (allocator->name, + sizeof (GNode), + sizeof (GNode) * allocator->n_preallocs, + G_ALLOC_ONLY); + allocator->free_nodes = NULL; + } + + allocator->is_unused = FALSE; +} + +void +g_node_push_allocator (GAllocator *allocator) +{ + G_LOCK (current_allocator); + g_node_validate_allocator (allocator); + allocator->last = current_allocator; + current_allocator = allocator; + G_UNLOCK (current_allocator); +} + +void +g_node_pop_allocator (void) +{ + G_LOCK (current_allocator); + if (current_allocator) + { + GAllocator *allocator; + + allocator = current_allocator; + current_allocator = allocator->last; + allocator->last = NULL; + allocator->is_unused = TRUE; + } + G_UNLOCK (current_allocator); +} + + +/* --- functions --- */ +GNode* +g_node_new (gpointer data) +{ + GNode *node; + + G_LOCK (current_allocator); + if (!current_allocator) + { + GAllocator *allocator = g_allocator_new ("GLib default GNode allocator", + 128); + g_node_validate_allocator (allocator); + allocator->last = NULL; + current_allocator = allocator; + } + if (!current_allocator->free_nodes) + node = g_chunk_new (GNode, current_allocator->mem_chunk); + else + { + node = current_allocator->free_nodes; + current_allocator->free_nodes = node->next; + } + G_UNLOCK (current_allocator); + + node->data = data; + node->next = NULL; + node->prev = NULL; + node->parent = NULL; + node->children = NULL; + + return node; +} + +static void +g_nodes_free (GNode *node) +{ + GNode *parent; + + parent = node; + while (1) + { + if (parent->children) + g_nodes_free (parent->children); + +#ifdef ENABLE_GC_FRIENDLY + parent->data = NULL; + parent->prev = NULL; + parent->parent = NULL; + parent->children = NULL; +#endif /* ENABLE_GC_FRIENDLY */ + + if (parent->next) + parent = parent->next; + else + break; + } + + G_LOCK (current_allocator); + parent->next = current_allocator->free_nodes; + current_allocator->free_nodes = node; + G_UNLOCK (current_allocator); +} +#else /* DISABLE_MEM_POOLS */ + +GNode* +g_node_new (gpointer data) +{ + GNode *node; + + node = g_new0 (GNode, 1); + + node->data = data; + + return node; +} + +static void +g_nodes_free (GNode *root) +{ + GNode *node, *next; + + node = root; + while (node != NULL) + { + next = node->next; + g_nodes_free (node->children); + g_free (node); + node = next; + } +} +#endif + +void +g_node_destroy (GNode *root) +{ + g_return_if_fail (root != NULL); + + if (!G_NODE_IS_ROOT (root)) + g_node_unlink (root); + + g_nodes_free (root); +} + +void +g_node_unlink (GNode *node) +{ + g_return_if_fail (node != NULL); + + if (node->prev) + node->prev->next = node->next; + else if (node->parent) + node->parent->children = node->next; + node->parent = NULL; + if (node->next) + { + node->next->prev = node->prev; + node->next = NULL; + } + node->prev = NULL; +} + +GNode* +g_node_copy (GNode *node) +{ + GNode *new_node = NULL; + + if (node) + { + GNode *child; + + new_node = g_node_new (node->data); + + for (child = g_node_last_child (node); child; child = child->prev) + g_node_prepend (new_node, g_node_copy (child)); + } + + return new_node; +} + +GNode* +g_node_insert (GNode *parent, + gint position, + GNode *node) +{ + g_return_val_if_fail (parent != NULL, node); + g_return_val_if_fail (node != NULL, node); + g_return_val_if_fail (G_NODE_IS_ROOT (node), node); + + if (position > 0) + return g_node_insert_before (parent, + g_node_nth_child (parent, position), + node); + else if (position == 0) + return g_node_prepend (parent, node); + else /* if (position < 0) */ + return g_node_append (parent, node); +} + +GNode* +g_node_insert_before (GNode *parent, + GNode *sibling, + GNode *node) +{ + g_return_val_if_fail (parent != NULL, node); + g_return_val_if_fail (node != NULL, node); + g_return_val_if_fail (G_NODE_IS_ROOT (node), node); + if (sibling) + g_return_val_if_fail (sibling->parent == parent, node); + + node->parent = parent; + + if (sibling) + { + if (sibling->prev) + { + node->prev = sibling->prev; + node->prev->next = node; + node->next = sibling; + sibling->prev = node; + } + else + { + node->parent->children = node; + node->next = sibling; + sibling->prev = node; + } + } + else + { + if (parent->children) + { + sibling = parent->children; + while (sibling->next) + sibling = sibling->next; + node->prev = sibling; + sibling->next = node; + } + else + node->parent->children = node; + } + + return node; +} + +GNode* +g_node_insert_after (GNode *parent, + GNode *sibling, + GNode *node) +{ + g_return_val_if_fail (parent != NULL, node); + g_return_val_if_fail (node != NULL, node); + g_return_val_if_fail (G_NODE_IS_ROOT (node), node); + if (sibling) + g_return_val_if_fail (sibling->parent == parent, node); + + node->parent = parent; + + if (sibling) + { + if (sibling->next) + { + sibling->next->prev = node; + } + node->next = sibling->next; + node->prev = sibling; + sibling->next = node; + } + else + { + if (parent->children) + { + node->next = parent->children; + parent->children->prev = node; + } + parent->children = node; + } + + return node; +} + +GNode* +g_node_prepend (GNode *parent, + GNode *node) +{ + g_return_val_if_fail (parent != NULL, node); + + return g_node_insert_before (parent, parent->children, node); +} + +GNode* +g_node_get_root (GNode *node) +{ + g_return_val_if_fail (node != NULL, NULL); + + while (node->parent) + node = node->parent; + + return node; +} + +gboolean +g_node_is_ancestor (GNode *node, + GNode *descendant) +{ + g_return_val_if_fail (node != NULL, FALSE); + g_return_val_if_fail (descendant != NULL, FALSE); + + while (descendant) + { + if (descendant->parent == node) + return TRUE; + + descendant = descendant->parent; + } + + return FALSE; +} + +/* returns 1 for root, 2 for first level children, + * 3 for children's children... + */ +guint +g_node_depth (GNode *node) +{ + register guint depth = 0; + + while (node) + { + depth++; + node = node->parent; + } + + return depth; +} + +void +g_node_reverse_children (GNode *node) +{ + GNode *child; + GNode *last; + + g_return_if_fail (node != NULL); + + child = node->children; + last = NULL; + while (child) + { + last = child; + child = last->next; + last->next = last->prev; + last->prev = child; + } + node->children = last; +} + +guint +g_node_max_height (GNode *root) +{ + register GNode *child; + register guint max_height = 0; + + if (!root) + return 0; + + child = root->children; + while (child) + { + register guint tmp_height; + + tmp_height = g_node_max_height (child); + if (tmp_height > max_height) + max_height = tmp_height; + child = child->next; + } + + return max_height + 1; +} + +static gboolean +g_node_traverse_pre_order (GNode *node, + GTraverseFlags flags, + GNodeTraverseFunc func, + gpointer data) +{ + if (node->children) + { + GNode *child; + + if ((flags & G_TRAVERSE_NON_LEAFS) && + func (node, data)) + return TRUE; + + child = node->children; + while (child) + { + register GNode *current; + + current = child; + child = current->next; + if (g_node_traverse_pre_order (current, flags, func, data)) + return TRUE; + } + } + else if ((flags & G_TRAVERSE_LEAFS) && + func (node, data)) + return TRUE; + + return FALSE; +} + +static gboolean +g_node_depth_traverse_pre_order (GNode *node, + GTraverseFlags flags, + guint depth, + GNodeTraverseFunc func, + gpointer data) +{ + if (node->children) + { + GNode *child; + + if ((flags & G_TRAVERSE_NON_LEAFS) && + func (node, data)) + return TRUE; + + depth--; + if (!depth) + return FALSE; + + child = node->children; + while (child) + { + register GNode *current; + + current = child; + child = current->next; + if (g_node_depth_traverse_pre_order (current, flags, depth, func, data)) + return TRUE; + } + } + else if ((flags & G_TRAVERSE_LEAFS) && + func (node, data)) + return TRUE; + + return FALSE; +} + +static gboolean +g_node_traverse_post_order (GNode *node, + GTraverseFlags flags, + GNodeTraverseFunc func, + gpointer data) +{ + if (node->children) + { + GNode *child; + + child = node->children; + while (child) + { + register GNode *current; + + current = child; + child = current->next; + if (g_node_traverse_post_order (current, flags, func, data)) + return TRUE; + } + + if ((flags & G_TRAVERSE_NON_LEAFS) && + func (node, data)) + return TRUE; + + } + else if ((flags & G_TRAVERSE_LEAFS) && + func (node, data)) + return TRUE; + + return FALSE; +} + +static gboolean +g_node_depth_traverse_post_order (GNode *node, + GTraverseFlags flags, + guint depth, + GNodeTraverseFunc func, + gpointer data) +{ + if (node->children) + { + depth--; + if (depth) + { + GNode *child; + + child = node->children; + while (child) + { + register GNode *current; + + current = child; + child = current->next; + if (g_node_depth_traverse_post_order (current, flags, depth, func, data)) + return TRUE; + } + } + + if ((flags & G_TRAVERSE_NON_LEAFS) && + func (node, data)) + return TRUE; + + } + else if ((flags & G_TRAVERSE_LEAFS) && + func (node, data)) + return TRUE; + + return FALSE; +} + +static gboolean +g_node_traverse_in_order (GNode *node, + GTraverseFlags flags, + GNodeTraverseFunc func, + gpointer data) +{ + if (node->children) + { + GNode *child; + register GNode *current; + + child = node->children; + current = child; + child = current->next; + + if (g_node_traverse_in_order (current, flags, func, data)) + return TRUE; + + if ((flags & G_TRAVERSE_NON_LEAFS) && + func (node, data)) + return TRUE; + + while (child) + { + current = child; + child = current->next; + if (g_node_traverse_in_order (current, flags, func, data)) + return TRUE; + } + } + else if ((flags & G_TRAVERSE_LEAFS) && + func (node, data)) + return TRUE; + + return FALSE; +} + +static gboolean +g_node_depth_traverse_in_order (GNode *node, + GTraverseFlags flags, + guint depth, + GNodeTraverseFunc func, + gpointer data) +{ + if (node->children) + { + depth--; + if (depth) + { + GNode *child; + register GNode *current; + + child = node->children; + current = child; + child = current->next; + + if (g_node_depth_traverse_in_order (current, flags, depth, func, data)) + return TRUE; + + if ((flags & G_TRAVERSE_NON_LEAFS) && + func (node, data)) + return TRUE; + + while (child) + { + current = child; + child = current->next; + if (g_node_depth_traverse_in_order (current, flags, depth, func, data)) + return TRUE; + } + } + else if ((flags & G_TRAVERSE_NON_LEAFS) && + func (node, data)) + return TRUE; + } + else if ((flags & G_TRAVERSE_LEAFS) && + func (node, data)) + return TRUE; + + return FALSE; +} + +static gboolean +g_node_traverse_children (GNode *node, + GTraverseFlags flags, + GNodeTraverseFunc func, + gpointer data) +{ + GNode *child; + + child = node->children; + + while (child) + { + register GNode *current; + + current = child; + child = current->next; + + if (current->children) + { + if ((flags & G_TRAVERSE_NON_LEAFS) && + func (current, data)) + return TRUE; + } + else if ((flags & G_TRAVERSE_LEAFS) && + func (current, data)) + return TRUE; + } + + child = node->children; + + while (child) + { + register GNode *current; + + current = child; + child = current->next; + + if (current->children && + g_node_traverse_children (current, flags, func, data)) + return TRUE; + } + + return FALSE; +} + +static gboolean +g_node_depth_traverse_children (GNode *node, + GTraverseFlags flags, + guint depth, + GNodeTraverseFunc func, + gpointer data) +{ + GNode *child; + + child = node->children; + + while (child) + { + register GNode *current; + + current = child; + child = current->next; + + if (current->children) + { + if ((flags & G_TRAVERSE_NON_LEAFS) && + func (current, data)) + return TRUE; + } + else if ((flags & G_TRAVERSE_LEAFS) && + func (current, data)) + return TRUE; + } + + depth--; + if (!depth) + return FALSE; + + child = node->children; + + while (child) + { + register GNode *current; + + current = child; + child = current->next; + + if (current->children && + g_node_depth_traverse_children (current, flags, depth, func, data)) + return TRUE; + } + + return FALSE; +} + +void +g_node_traverse (GNode *root, + GTraverseType order, + GTraverseFlags flags, + gint depth, + GNodeTraverseFunc func, + gpointer data) +{ + g_return_if_fail (root != NULL); + g_return_if_fail (func != NULL); + g_return_if_fail (order <= G_LEVEL_ORDER); + g_return_if_fail (flags <= G_TRAVERSE_MASK); + g_return_if_fail (depth == -1 || depth > 0); + + switch (order) + { + case G_PRE_ORDER: + if (depth < 0) + g_node_traverse_pre_order (root, flags, func, data); + else + g_node_depth_traverse_pre_order (root, flags, depth, func, data); + break; + case G_POST_ORDER: + if (depth < 0) + g_node_traverse_post_order (root, flags, func, data); + else + g_node_depth_traverse_post_order (root, flags, depth, func, data); + break; + case G_IN_ORDER: + if (depth < 0) + g_node_traverse_in_order (root, flags, func, data); + else + g_node_depth_traverse_in_order (root, flags, depth, func, data); + break; + case G_LEVEL_ORDER: + if (root->children) + { + if (!((flags & G_TRAVERSE_NON_LEAFS) && + func (root, data))) + { + if (depth < 0) + g_node_traverse_children (root, flags, func, data); + else + { + depth--; + if (depth) + g_node_depth_traverse_children (root, flags, depth, func, data); + } + } + } + else if (flags & G_TRAVERSE_LEAFS) + func (root, data); + break; + } +} + +static gboolean +g_node_find_func (GNode *node, + gpointer data) +{ + register gpointer *d = data; + + if (*d != node->data) + return FALSE; + + *(++d) = node; + + return TRUE; +} + +GNode* +g_node_find (GNode *root, + GTraverseType order, + GTraverseFlags flags, + gpointer data) +{ + gpointer d[2]; + + g_return_val_if_fail (root != NULL, NULL); + g_return_val_if_fail (order <= G_LEVEL_ORDER, NULL); + g_return_val_if_fail (flags <= G_TRAVERSE_MASK, NULL); + + d[0] = data; + d[1] = NULL; + + g_node_traverse (root, order, flags, -1, g_node_find_func, d); + + return d[1]; +} + +static void +g_node_count_func (GNode *node, + GTraverseFlags flags, + guint *n) +{ + if (node->children) + { + GNode *child; + + if (flags & G_TRAVERSE_NON_LEAFS) + (*n)++; + + child = node->children; + while (child) + { + g_node_count_func (child, flags, n); + child = child->next; + } + } + else if (flags & G_TRAVERSE_LEAFS) + (*n)++; +} + +guint +g_node_n_nodes (GNode *root, + GTraverseFlags flags) +{ + guint n = 0; + + g_return_val_if_fail (root != NULL, 0); + g_return_val_if_fail (flags <= G_TRAVERSE_MASK, 0); + + g_node_count_func (root, flags, &n); + + return n; +} + +GNode* +g_node_last_child (GNode *node) +{ + g_return_val_if_fail (node != NULL, NULL); + + node = node->children; + if (node) + while (node->next) + node = node->next; + + return node; +} + +GNode* +g_node_nth_child (GNode *node, + guint n) +{ + g_return_val_if_fail (node != NULL, NULL); + + node = node->children; + if (node) + while ((n-- > 0) && node) + node = node->next; + + return node; +} + +guint +g_node_n_children (GNode *node) +{ + guint n = 0; + + g_return_val_if_fail (node != NULL, 0); + + node = node->children; + while (node) + { + n++; + node = node->next; + } + + return n; +} + +GNode* +g_node_find_child (GNode *node, + GTraverseFlags flags, + gpointer data) +{ + g_return_val_if_fail (node != NULL, NULL); + g_return_val_if_fail (flags <= G_TRAVERSE_MASK, NULL); + + node = node->children; + while (node) + { + if (node->data == data) + { + if (G_NODE_IS_LEAF (node)) + { + if (flags & G_TRAVERSE_LEAFS) + return node; + } + else + { + if (flags & G_TRAVERSE_NON_LEAFS) + return node; + } + } + node = node->next; + } + + return NULL; +} + +gint +g_node_child_position (GNode *node, + GNode *child) +{ + register guint n = 0; + + g_return_val_if_fail (node != NULL, -1); + g_return_val_if_fail (child != NULL, -1); + g_return_val_if_fail (child->parent == node, -1); + + node = node->children; + while (node) + { + if (node == child) + return n; + n++; + node = node->next; + } + + return -1; +} + +gint +g_node_child_index (GNode *node, + gpointer data) +{ + register guint n = 0; + + g_return_val_if_fail (node != NULL, -1); + + node = node->children; + while (node) + { + if (node->data == data) + return n; + n++; + node = node->next; + } + + return -1; +} + +GNode* +g_node_first_sibling (GNode *node) +{ + g_return_val_if_fail (node != NULL, NULL); + + if (node->parent) + return node->parent->children; + + while (node->prev) + node = node->prev; + + return node; +} + +GNode* +g_node_last_sibling (GNode *node) +{ + g_return_val_if_fail (node != NULL, NULL); + + while (node->next) + node = node->next; + + return node; +} + +void +g_node_children_foreach (GNode *node, + GTraverseFlags flags, + GNodeForeachFunc func, + gpointer data) +{ + g_return_if_fail (node != NULL); + g_return_if_fail (flags <= G_TRAVERSE_MASK); + g_return_if_fail (func != NULL); + + node = node->children; + while (node) + { + register GNode *current; + + current = node; + node = current->next; + if (G_NODE_IS_LEAF (current)) + { + if (flags & G_TRAVERSE_LEAFS) + func (current, data); + } + else + { + if (flags & G_TRAVERSE_NON_LEAFS) + func (current, data); + } + } +} diff --git a/graf2d/win32gdk/gdk/src/glib/gnode.h b/graf2d/win32gdk/gdk/src/glib/gnode.h index ba584948467..6d79ab0a471 100644 --- a/graf2d/win32gdk/gdk/src/glib/gnode.h +++ b/graf2d/win32gdk/gdk/src/glib/gnode.h @@ -27,7 +27,7 @@ #ifndef __G_NODE_H__ #define __G_NODE_H__ -#include <gmem.h> +#include <glib/gmem.h> G_BEGIN_DECLS @@ -72,7 +72,7 @@ struct _GNode ((GNode*) (node))->next == NULL) #define G_NODE_IS_LEAF(node) (((GNode*) (node))->children == NULL) -void g_node_push_allocator (GAllocator *allocato); +void g_node_push_allocator (GAllocator *allocator); void g_node_pop_allocator (void); GNode* g_node_new (gpointer data); void g_node_destroy (GNode *root); diff --git a/graf2d/win32gdk/gdk/src/glib/gobject/gtype.h b/graf2d/win32gdk/gdk/src/glib/gobject/gtype.h new file mode 100644 index 00000000000..64f82851bb1 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gobject/gtype.h @@ -0,0 +1,401 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * Copyright (C) 1998-1999, 2000-2001 Tim Janik and Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307, USA. + */ +#ifndef __G_TYPE_H__ +#define __G_TYPE_H__ + +extern const char *g_log_domain_gruntime; +#include <glib.h> + +G_BEGIN_DECLS + +/* Basic Type Macros + */ +#define G_TYPE_FUNDAMENTAL(type) ((type) & 0xff) +#define G_TYPE_FUNDAMENTAL_MAX (0xff) +#define G_TYPE_DERIVE_ID(ptype, branch_seqno) (G_TYPE_FUNDAMENTAL (ptype) | ((branch_seqno) << 8)) +#define G_TYPE_BRANCH_SEQNO(type) ((type) >> 8) +#define G_TYPE_FUNDAMENTAL_LAST ((GType) g_type_fundamental_last ()) + + +/* predefined fundamental and derived types + */ +typedef enum /*< skip >*/ +{ + /* standard types, introduced by g_type_init() */ + G_TYPE_INVALID, + G_TYPE_NONE, + G_TYPE_INTERFACE, + + /* GLib type ids */ + G_TYPE_CHAR, + G_TYPE_UCHAR, + G_TYPE_BOOLEAN, + G_TYPE_INT, + G_TYPE_UINT, + G_TYPE_LONG, + G_TYPE_ULONG, + G_TYPE_ENUM, + G_TYPE_FLAGS, + G_TYPE_FLOAT, + G_TYPE_DOUBLE, + G_TYPE_STRING, + G_TYPE_POINTER, + G_TYPE_BOXED, + G_TYPE_PARAM, + G_TYPE_OBJECT, + + /* reserved fundamental type ids, + * mail gtk-devel-list@redhat.com for reservations + */ + G_TYPE_RESERVED_BSE_FIRST, + G_TYPE_RESERVED_BSE_LAST = G_TYPE_RESERVED_BSE_FIRST + 15, + G_TYPE_RESERVED_LAST_FUNDAMENTAL, + + /* derived type ids */ + G_TYPE_CLOSURE = G_TYPE_DERIVE_ID (G_TYPE_BOXED, 1), + G_TYPE_VALUE = G_TYPE_DERIVE_ID (G_TYPE_BOXED, 2), + G_TYPE_VALUE_ARRAY = G_TYPE_DERIVE_ID (G_TYPE_BOXED, 3), + G_TYPE_GSTRING = G_TYPE_DERIVE_ID (G_TYPE_BOXED, 4), + G_TYPE_PARAM_CHAR = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 1), + G_TYPE_PARAM_UCHAR = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 2), + G_TYPE_PARAM_BOOLEAN = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 3), + G_TYPE_PARAM_INT = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 4), + G_TYPE_PARAM_UINT = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 5), + G_TYPE_PARAM_LONG = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 6), + G_TYPE_PARAM_ULONG = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 7), + G_TYPE_PARAM_UNICHAR = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 8), + G_TYPE_PARAM_ENUM = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 9), + G_TYPE_PARAM_FLAGS = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 10), + G_TYPE_PARAM_FLOAT = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 11), + G_TYPE_PARAM_DOUBLE = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 12), + G_TYPE_PARAM_STRING = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 13), + G_TYPE_PARAM_PARAM = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 14), + G_TYPE_PARAM_BOXED = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 15), + G_TYPE_PARAM_POINTER = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 16), + G_TYPE_PARAM_VALUE_ARRAY = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 17), + G_TYPE_PARAM_CLOSURE = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 18), + G_TYPE_PARAM_OBJECT = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 19) +} GTypeFundamentals; + + +/* Type Checking Macros + */ +#define G_TYPE_IS_FUNDAMENTAL(type) (G_TYPE_BRANCH_SEQNO (type) == 0) +#define G_TYPE_IS_DERIVED(type) (G_TYPE_BRANCH_SEQNO (type) > 0) +#define G_TYPE_IS_INTERFACE(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_INTERFACE) +#define G_TYPE_IS_CLASSED(type) (g_type_check_flags ((type), G_TYPE_FLAG_CLASSED)) +#define G_TYPE_IS_INSTANTIATABLE(type) (g_type_check_flags ((type), G_TYPE_FLAG_INSTANTIATABLE)) +#define G_TYPE_IS_DERIVABLE(type) (g_type_check_flags ((type), G_TYPE_FLAG_DERIVABLE)) +#define G_TYPE_IS_DEEP_DERIVABLE(type) (g_type_check_flags ((type), G_TYPE_FLAG_DEEP_DERIVABLE)) +#define G_TYPE_IS_ABSTRACT(type) (g_type_check_flags ((type), G_TYPE_FLAG_ABSTRACT)) +#define G_TYPE_IS_VALUE_ABSTRACT(type) (g_type_check_flags ((type), G_TYPE_FLAG_VALUE_ABSTRACT)) +#define G_TYPE_IS_PARAM(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_PARAM) +#define G_TYPE_IS_VALUE_TYPE(type) (g_type_check_is_value_type (type)) +#define G_TYPE_HAS_VALUE_TABLE(type) (g_type_value_table_peek (type) != NULL) + + +/* Typedefs + */ +typedef guint32 GType; +typedef struct _GValue GValue; +typedef union _GTypeCValue GTypeCValue; +typedef struct _GTypePlugin GTypePlugin; +typedef struct _GTypeClass GTypeClass; +typedef struct _GTypeInterface GTypeInterface; +typedef struct _GTypeInstance GTypeInstance; +typedef struct _GTypeInfo GTypeInfo; +typedef struct _GTypeFundamentalInfo GTypeFundamentalInfo; +typedef struct _GInterfaceInfo GInterfaceInfo; +typedef struct _GTypeValueTable GTypeValueTable; +typedef struct _GTypeQuery GTypeQuery; + + +/* Basic Type Structures + */ +struct _GTypeClass +{ + /*< private >*/ + GType g_type; +}; +struct _GTypeInstance +{ + /*< private >*/ + GTypeClass *g_class; +}; +struct _GTypeInterface +{ + /*< private >*/ + GType g_type; /* iface type */ + GType g_instance_type; +}; +struct _GTypeQuery +{ + GType type; + const gchar *type_name; + guint class_size; + guint instance_size; +}; + + +/* Casts, checks and accessors for structured types + * usage of these macros is reserved to type implementations only + */ +/*< protected >*/ +#define G_TYPE_CHECK_INSTANCE(instance) (_G_TYPE_CHI ((GTypeInstance*) (instance))) +#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type) (_G_TYPE_CIC ((instance), (g_type), c_type)) +#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type) (_G_TYPE_CIT ((instance), (g_type))) +#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type) (_G_TYPE_IGC ((instance), (g_type), c_type)) +#define G_TYPE_INSTANCE_GET_INTERFACE(instance, g_type, c_type) (_G_TYPE_IGI ((instance), (g_type), c_type)) +#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type) (_G_TYPE_CCC ((g_class), (g_type), c_type)) +#define G_TYPE_CHECK_CLASS_TYPE(g_class, g_type) (_G_TYPE_CCT ((g_class), (g_type))) +#define G_TYPE_CHECK_VALUE(value) (_G_TYPE_CHV ((value))) +#define G_TYPE_CHECK_VALUE_TYPE(value, g_type) (_G_TYPE_CVH ((value), (g_type))) +#define G_TYPE_FROM_INSTANCE(instance) (G_TYPE_FROM_CLASS (((GTypeInstance*) (instance))->g_class)) +#define G_TYPE_FROM_CLASS(g_class) (((GTypeClass*) (g_class))->g_type) +#define G_TYPE_FROM_INTERFACE(g_iface) (((GTypeInterface*) (g_iface))->g_type) + + +/* debug flags for g_type_init_with_debug_flags() */ +typedef enum /*< skip >*/ +{ + G_TYPE_DEBUG_NONE = 0, + G_TYPE_DEBUG_OBJECTS = 1 << 0, + G_TYPE_DEBUG_SIGNALS = 1 << 1, + G_TYPE_DEBUG_MASK = 0x03 +} GTypeDebugFlags; + + +/* --- prototypes --- */ +void g_type_init (void); +void g_type_init_with_debug_flags (GTypeDebugFlags debug_flags); +G_CONST_RETURN gchar* g_type_name (GType type); +GQuark g_type_qname (GType type); +GType g_type_from_name (const gchar *name); +GType g_type_parent (GType type); +guint g_type_depth (GType type); +GType g_type_next_base (GType leaf_type, + GType root_type); +gboolean g_type_is_a (GType type, + GType is_a_type); +guint g_type_fundamental_branch_last (GType type); +gpointer g_type_class_ref (GType type); +gpointer g_type_class_peek (GType type); +void g_type_class_unref (gpointer g_class); +gpointer g_type_class_peek_parent (gpointer g_class); +gpointer g_type_interface_peek (gpointer instance_class, + GType iface_type); +gpointer g_type_interface_peek_parent (gpointer g_iface); + +/* g_free() the returned arrays */ +GType* g_type_children (GType type, + guint *n_children); +GType* g_type_interfaces (GType type, + guint *n_interfaces); + +/* per-type _static_ data */ +void g_type_set_qdata (GType type, + GQuark quark, + gpointer data); +gpointer g_type_get_qdata (GType type, + GQuark quark); +void g_type_query (GType type, + GTypeQuery *query); + + +/* --- type registration --- */ +typedef void (*GBaseInitFunc) (gpointer g_class); +typedef void (*GBaseFinalizeFunc) (gpointer g_class); +typedef void (*GClassInitFunc) (gpointer g_class, + gpointer class_data); +typedef void (*GClassFinalizeFunc) (gpointer g_class, + gpointer class_data); +typedef void (*GInstanceInitFunc) (GTypeInstance *instance, + gpointer g_class); +typedef void (*GInterfaceInitFunc) (gpointer g_iface, + gpointer iface_data); +typedef void (*GInterfaceFinalizeFunc) (gpointer g_iface, + gpointer iface_data); +typedef gboolean (*GTypeClassCacheFunc) (gpointer cache_data, + GTypeClass *g_class); +typedef enum /*< skip >*/ +{ + G_TYPE_FLAG_CLASSED = (1 << 0), + G_TYPE_FLAG_INSTANTIATABLE = (1 << 1), + G_TYPE_FLAG_DERIVABLE = (1 << 2), + G_TYPE_FLAG_DEEP_DERIVABLE = (1 << 3) +} GTypeFundamentalFlags; +typedef enum /*< skip >*/ +{ + G_TYPE_FLAG_ABSTRACT = (1 << 4), + G_TYPE_FLAG_VALUE_ABSTRACT = (1 << 5) +} GTypeFlags; +struct _GTypeInfo +{ + /* interface types, classed types, instantiated types */ + guint16 class_size; + + GBaseInitFunc base_init; + GBaseFinalizeFunc base_finalize; + + /* classed types, instantiated types */ + GClassInitFunc class_init; + GClassFinalizeFunc class_finalize; + gconstpointer class_data; + + /* instantiated types */ + guint16 instance_size; + guint16 n_preallocs; + GInstanceInitFunc instance_init; + + /* value handling */ + const GTypeValueTable *value_table; +}; +struct _GTypeFundamentalInfo +{ + GTypeFundamentalFlags type_flags; +}; +struct _GInterfaceInfo +{ + GInterfaceInitFunc interface_init; + GInterfaceFinalizeFunc interface_finalize; + gpointer interface_data; +}; +struct _GTypeValueTable +{ + void (*value_init) (GValue *value); + void (*value_free) (GValue *value); + void (*value_copy) (const GValue *src_value, + GValue *dest_value); + /* varargs functionality (optional) */ + gpointer (*value_peek_pointer) (const GValue *value); + gchar *collect_format; + gchar* (*collect_value) (GValue *value, + guint n_collect_values, + GTypeCValue *collect_values, + guint collect_flags); + gchar *lcopy_format; + gchar* (*lcopy_value) (const GValue *value, + guint n_collect_values, + GTypeCValue *collect_values, + guint collect_flags); +}; +GType g_type_register_static (GType parent_type, + const gchar *type_name, + const GTypeInfo *info, + GTypeFlags flags); +GType g_type_register_dynamic (GType parent_type, + const gchar *type_name, + GTypePlugin *plugin, + GTypeFlags flags); +GType g_type_register_fundamental (GType type_id, + const gchar *type_name, + const GTypeInfo *info, + const GTypeFundamentalInfo *finfo, + GTypeFlags flags); +void g_type_add_interface_static (GType instance_type, + GType interface_type, + const GInterfaceInfo *info); +void g_type_add_interface_dynamic (GType instance_type, + GType interface_type, + GTypePlugin *plugin); +void g_type_interface_add_prerequisite (GType interface_type, + GType prerequisite_type); + + +/* --- protected (for fundamental type implementations) --- */ +GTypePlugin* g_type_get_plugin (GType type); +GTypePlugin* g_type_interface_get_plugin (GType instance_type, + GType implementation_type); + +GType g_type_fundamental_last (void); +gboolean g_type_check_flags (GType type, + guint flags); +GTypeInstance* g_type_create_instance (GType type); +void g_type_free_instance (GTypeInstance *instance); +void g_type_add_class_cache_func (gpointer cache_data, + GTypeClassCacheFunc cache_func); +void g_type_remove_class_cache_func (gpointer cache_data, + GTypeClassCacheFunc cache_func); +void g_type_class_unref_uncached (gpointer g_class); + + +/*< private >*/ +gboolean g_type_check_instance (GTypeInstance *instance); +GTypeInstance* g_type_check_instance_cast (GTypeInstance *instance, + GType iface_type); +gboolean g_type_instance_is_a (GTypeInstance *instance, + GType iface_type); +GTypeClass* g_type_check_class_cast (GTypeClass *g_class, + GType is_a_type); +gboolean g_type_class_is_a (GTypeClass *g_class, + GType is_a_type); +gboolean g_type_check_is_value_type (GType type); +gboolean g_type_check_value (GValue *value); +gboolean g_type_check_value_holds (GValue *value, + GType type); +GTypeValueTable* g_type_value_table_peek (GType type); + + +/* --- debugging functions --- */ +G_CONST_RETURN gchar* g_type_name_from_instance (GTypeInstance *instance); +G_CONST_RETURN gchar* g_type_name_from_class (GTypeClass *g_class); + + +/* --- implementation bits --- */ +#ifndef G_DISABLE_CAST_CHECKS +# define _G_TYPE_CIC(ip, gt, ct) \ + ((ct*) g_type_check_instance_cast ((GTypeInstance*) ip, gt)) +# define _G_TYPE_CCC(cp, gt, ct) \ + ((ct*) g_type_check_class_cast ((GTypeClass*) cp, gt)) +#else /* G_DISABLE_CAST_CHECKS */ +# define _G_TYPE_CIC(ip, gt, ct) ((ct*) ip) +# define _G_TYPE_CCC(cp, gt, ct) ((ct*) cp) +#endif /* G_DISABLE_CAST_CHECKS */ +#define _G_TYPE_CHI(ip) (g_type_check_instance ((GTypeInstance*) ip)) +#define _G_TYPE_CVH(vl, gt) (g_type_check_value_holds ((GValue*) vl, gt)) +#define _G_TYPE_CHV(vl) (g_type_check_value ((GValue*) vl)) +#define _G_TYPE_IGC(ip, gt, ct) ((ct*) (((GTypeInstance*) ip)->g_class)) +#define _G_TYPE_IGI(ip, gt, ct) ((ct*) g_type_interface_peek (((GTypeInstance*) ip)->g_class, gt)) +#ifdef __GNUC__ +# define _G_TYPE_CIT(ip, gt) ({ \ + GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \ + if (__inst && __inst->g_class && __inst->g_class->g_type == __t) \ + __r = TRUE; \ + else \ + __r = g_type_instance_is_a (__inst, __t); \ + __r; \ +}) +# define _G_TYPE_CCT(cp, gt) ({ \ + GTypeClass *__class = (GTypeClass*) cp; GType __t = gt; gboolean __r; \ + if (__class && __class->g_type == __t) \ + __r = TRUE; \ + else \ + __r = g_type_class_is_a (__class, __t); \ + __r; \ +}) +#else /* !__GNUC__ */ +# define _G_TYPE_CIT(ip, gt) (g_type_instance_is_a ((GTypeInstance*) ip, gt)) +# define _G_TYPE_CCT(cp, gt) (g_type_class_is_a ((GTypeClass*) cp, gt)) +#endif /* !__GNUC__ */ +#define G_TYPE_FLAG_RESERVED_ID_BIT (1 << 30) +extern GTypeDebugFlags _g_type_debug_flags; + +G_END_DECLS + +#endif /* __G_TYPE_H__ */ diff --git a/graf2d/win32gdk/gdk/src/glib/gpattern.c b/graf2d/win32gdk/gdk/src/glib/gpattern.c new file mode 100644 index 00000000000..a149273a0d3 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gpattern.c @@ -0,0 +1,300 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997, 1999 Peter Mattis, Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ +#include "gpattern.h" + +#include "gmacros.h" +#include "gmessages.h" +#include "gmem.h" +#include "gutils.h" /* inline hassle */ +#include <string.h> + + +/* --- functions --- */ +static inline gboolean +g_pattern_ph_match (const gchar *match_pattern, + const gchar *match_string) +{ + register const gchar *pattern, *string; + register gchar ch; + + pattern = match_pattern; + string = match_string; + + ch = *pattern; + pattern++; + while (ch) + { + switch (ch) + { + case '?': + if (!*string) + return FALSE; + string++; + break; + + case '*': + do + { + ch = *pattern; + pattern++; + if (ch == '?') + { + if (!*string) + return FALSE; + string++; + } + } + while (ch == '*' || ch == '?'); + if (!ch) + return TRUE; + do + { + while (ch != *string) + { + if (!*string) + return FALSE; + string++; + } + string++; + if (g_pattern_ph_match (pattern, string)) + return TRUE; + } + while (*string); + break; + + default: + if (ch == *string) + string++; + else + return FALSE; + break; + } + + ch = *pattern; + pattern++; + } + + return *string == 0; +} + +gboolean +g_pattern_match (GPatternSpec *pspec, + guint string_length, + const gchar *string, + const gchar *string_reversed) +{ + g_return_val_if_fail (pspec != NULL, FALSE); + g_return_val_if_fail (string != NULL, FALSE); + g_return_val_if_fail (string_reversed != NULL, FALSE); + + switch (pspec->match_type) + { + case G_MATCH_ALL: + return g_pattern_ph_match (pspec->pattern, string); + + case G_MATCH_ALL_TAIL: + return g_pattern_ph_match (pspec->pattern_reversed, string_reversed); + + case G_MATCH_HEAD: + if (pspec->pattern_length > string_length) + return FALSE; + else if (pspec->pattern_length == string_length) + return strcmp (pspec->pattern, string) == 0; + else if (pspec->pattern_length) + return strncmp (pspec->pattern, string, pspec->pattern_length) == 0; + else + return TRUE; + + case G_MATCH_TAIL: + if (pspec->pattern_length > string_length) + return FALSE; + else if (pspec->pattern_length == string_length) + return strcmp (pspec->pattern_reversed, string_reversed) == 0; + else if (pspec->pattern_length) + return strncmp (pspec->pattern_reversed, + string_reversed, + pspec->pattern_length) == 0; + else + return TRUE; + + case G_MATCH_EXACT: + if (pspec->pattern_length != string_length) + return FALSE; + else + return strcmp (pspec->pattern_reversed, string_reversed) == 0; + + default: + g_return_val_if_fail (pspec->match_type < G_MATCH_LAST, FALSE); + return FALSE; + } +} + +GPatternSpec* +g_pattern_spec_new (const gchar *pattern) +{ + GPatternSpec *pspec; + gchar *p, *t; + const gchar *h; + guint hw = 0, tw = 0, hj = 0, tj = 0; + + g_return_val_if_fail (pattern != NULL, NULL); + + pspec = g_new (GPatternSpec, 1); + pspec->pattern_length = strlen (pattern); + pspec->pattern = strcpy (g_new (gchar, pspec->pattern_length + 1), pattern); + pspec->pattern_reversed = g_new (gchar, pspec->pattern_length + 1); + t = pspec->pattern_reversed + pspec->pattern_length; + *(t--) = 0; + h = pattern; + while (t >= pspec->pattern_reversed) + { + register gchar c = *(h++); + + if (c == '*') + { + if (t < h) + hw++; + else + tw++; + } + else if (c == '?') + { + if (t < h) + hj++; + else + tj++; + } + + *(t--) = c; + } + pspec->match_type = hw > tw || (hw == tw && hj > tj) ? G_MATCH_ALL_TAIL : G_MATCH_ALL; + + if (hj || tj) + return pspec; + + if (hw == 0 && tw == 0) + { + pspec->match_type = G_MATCH_EXACT; + return pspec; + } + + if (hw) + { + p = pspec->pattern; + while (*p == '*') + p++; + if (p > pspec->pattern && !strchr (p, '*')) + { + gchar *tmp; + + pspec->match_type = G_MATCH_TAIL; + pspec->pattern_length = strlen (p); + tmp = pspec->pattern; + pspec->pattern = strcpy (g_new (gchar, pspec->pattern_length + 1), p); + g_free (tmp); + g_free (pspec->pattern_reversed); + pspec->pattern_reversed = g_new (gchar, pspec->pattern_length + 1); + t = pspec->pattern_reversed + pspec->pattern_length; + *(t--) = 0; + h = pspec->pattern; + while (t >= pspec->pattern_reversed) + *(t--) = *(h++); + return pspec; + } + } + + if (tw) + { + p = pspec->pattern_reversed; + while (*p == '*') + p++; + if (p > pspec->pattern_reversed && !strchr (p, '*')) + { + gchar *tmp; + + pspec->match_type = G_MATCH_HEAD; + pspec->pattern_length = strlen (p); + tmp = pspec->pattern_reversed; + pspec->pattern_reversed = strcpy (g_new (gchar, pspec->pattern_length + 1), p); + g_free (tmp); + g_free (pspec->pattern); + pspec->pattern = g_new (gchar, pspec->pattern_length + 1); + t = pspec->pattern + pspec->pattern_length; + *(t--) = 0; + h = pspec->pattern_reversed; + while (t >= pspec->pattern) + *(t--) = *(h++); + } + } + + return pspec; +} + +gboolean +g_pattern_match_string (GPatternSpec *pspec, + const gchar *string) +{ + gchar *string_reversed, *t; + const gchar *h; + guint length; + gboolean ergo; + + g_return_val_if_fail (pspec != NULL, FALSE); + g_return_val_if_fail (string != NULL, FALSE); + + length = strlen (string); + string_reversed = g_new (gchar, length + 1); + t = string_reversed + length; + *(t--) = 0; + h = string; + while (t >= string_reversed) + *(t--) = *(h++); + + ergo = g_pattern_match (pspec, length, string, string_reversed); + g_free (string_reversed); + + return ergo; +} + +gboolean +g_pattern_match_simple (const gchar *pattern, + const gchar *string) +{ + GPatternSpec *pspec; + gboolean ergo; + + g_return_val_if_fail (pattern != NULL, FALSE); + g_return_val_if_fail (string != NULL, FALSE); + + pspec = g_pattern_spec_new (pattern); + ergo = g_pattern_match_string (pspec, string); + g_pattern_spec_free (pspec); + + return ergo; +} + +void +g_pattern_spec_free (GPatternSpec *pspec) +{ + g_return_if_fail (pspec != NULL); + + g_free (pspec->pattern); + g_free (pspec->pattern_reversed); + g_free (pspec); +} diff --git a/graf2d/win32gdk/gdk/src/glib/gpattern.h b/graf2d/win32gdk/gdk/src/glib/gpattern.h new file mode 100644 index 00000000000..bd29ad7ac7c --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gpattern.h @@ -0,0 +1,58 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997, 1999 Peter Mattis, Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ +#ifndef __G_PATTERN_H__ +#define __G_PATTERN_H__ + +#include <glib/gtypes.h> + +G_BEGIN_DECLS + +typedef enum +{ + G_MATCH_ALL, /* "*A?A*" */ + G_MATCH_ALL_TAIL, /* "*A?AA" */ + G_MATCH_HEAD, /* "AAAA*" */ + G_MATCH_TAIL, /* "*AAAA" */ + G_MATCH_EXACT, /* "AAAAA" */ + G_MATCH_LAST +} GMatchType; + +typedef struct _GPatternSpec GPatternSpec; +struct _GPatternSpec +{ + GMatchType match_type; + guint pattern_length; + gchar *pattern; + gchar *pattern_reversed; +}; + +GPatternSpec* g_pattern_spec_new (const gchar *pattern); +void g_pattern_spec_free (GPatternSpec *pspec); +gboolean g_pattern_match (GPatternSpec *pspec, + guint string_length, + const gchar *string, + const gchar *string_reversed); +gboolean g_pattern_match_string (GPatternSpec *pspec, + const gchar *string); +gboolean g_pattern_match_simple (const gchar *pattern, + const gchar *string); + +G_END_DECLS + +#endif /* __G_PATTERN_H__ */ diff --git a/graf2d/win32gdk/gdk/src/glib/gprimes.c b/graf2d/win32gdk/gdk/src/glib/gprimes.c new file mode 100644 index 00000000000..0d63bb76c75 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gprimes.c @@ -0,0 +1,83 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe + */ + +#include "glib.h" + +static const guint g_primes[] = +{ + 11, + 19, + 37, + 73, + 109, + 163, + 251, + 367, + 557, + 823, + 1237, + 1861, + 2777, + 4177, + 6247, + 9371, + 14057, + 21089, + 31627, + 47431, + 71143, + 106721, + 160073, + 240101, + 360163, + 540217, + 810343, + 1215497, + 1823231, + 2734867, + 4102283, + 6153409, + 9230113, + 13845163, +}; + +static const guint g_nprimes = sizeof (g_primes) / sizeof (g_primes[0]); + +guint +g_spaced_primes_closest (guint num) +{ + gint i; + + for (i = 0; i < g_nprimes; i++) + if (g_primes[i] > num) + return g_primes[i]; + + return g_primes[g_nprimes - 1]; +} diff --git a/graf2d/win32gdk/gdk/src/glib/gprimes.h b/graf2d/win32gdk/gdk/src/glib/gprimes.h index 5431b8929b8..0f1740cb16f 100644 --- a/graf2d/win32gdk/gdk/src/glib/gprimes.h +++ b/graf2d/win32gdk/gdk/src/glib/gprimes.h @@ -27,7 +27,7 @@ #ifndef __G_PRIMES_H__ #define __G_PRIMES_H__ -#include <g_types.h> +#include <glib/gtypes.h> G_BEGIN_DECLS diff --git a/graf2d/win32gdk/gdk/src/glib/gqsort.c b/graf2d/win32gdk/gdk/src/glib/gqsort.c new file mode 100644 index 00000000000..040be793fbf --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gqsort.c @@ -0,0 +1,282 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1991, 1992, 1996, 1997 Free Software Foundation, Inc. + * Copyright (C) 2000 Eazel, Inc. + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * This file was originally part of the GNU C Library, and was modified to allow + * user data to be passed in to the sorting function. + * + * Written by Douglas C. Schmidt (schmidt@ics.uci.edu). + * Modified by Maciej Stachowiak (mjs@eazel.com) + * + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with GLib + * at ftp://ftp.gtk.org/pub/gtk/. + */ + +#include <string.h> + +#include "glib.h" + +/* Byte-wise swap two items of size SIZE. */ +#define SWAP(a, b, size) \ + do \ + { \ + register size_t __size = (size); \ + register char *__a = (a), *__b = (b); \ + do \ + { \ + char __tmp = *__a; \ + *__a++ = *__b; \ + *__b++ = __tmp; \ + } while (--__size > 0); \ + } while (0) + +/* Discontinue quicksort algorithm when partition gets below this size. + This particular magic number was chosen to work best on a Sun 4/260. */ +#define MAX_THRESH 4 + +/* Stack node declarations used to store unfulfilled partition obligations. */ +typedef struct +{ + char *lo; + char *hi; +} +stack_node; + +/* The next 4 #defines implement a very fast in-line stack abstraction. */ +#define STACK_SIZE (8 * sizeof(unsigned long int)) +#define PUSH(low, high) ((void) ((top->lo = (low)), (top->hi = (high)), ++top)) +#define POP(low, high) ((void) (--top, (low = top->lo), (high = top->hi))) +#define STACK_NOT_EMPTY (stack < top) + + +/* Order size using quicksort. This implementation incorporates + * four optimizations discussed in Sedgewick: + * + * 1. Non-recursive, using an explicit stack of pointer that store the next + * array partition to sort. To save time, this maximum amount of space + * required to store an array of MAX_INT is allocated on the stack. Assuming + * a 32-bit integer, this needs only 32 * sizeof(stack_node) == 136 bits. + * Pretty cheap, actually. + * + * 2. Chose the pivot element using a median-of-three decision tree. This + * reduces the probability of selecting a bad pivot value and eliminates + * certain * extraneous comparisons. + * + * 3. Only quicksorts TOTAL_ELEMS / MAX_THRESH partitions, leaving insertion + * sort to order the MAX_THRESH items within each partition. This is a big + * win, since insertion sort is faster for small, mostly sorted array + * segments. + * + * 4. The larger of the two sub-partitions is always pushed onto the stack + * first, with the algorithm then concentrating on the smaller partition. + * This *guarantees* no more than log (n) stack size is needed (actually O(1) + * in this case)! + */ + +/** + * g_qsort_with_data: + * @pbase: start of array to sort + * @total_elems: elements in the array + * @size: size of each element + * @compare_func: function to compare elements + * @user_data: data to pass to @compare_func + * + * This is just like the standard C qsort() function, but + * the comparison routine accepts a user data argument. + * + **/ +void +g_qsort_with_data (gconstpointer pbase, + gint total_elems, + size_t size, + GCompareDataFunc compare_func, + gpointer user_data) +{ + register char *base_ptr = (char *) pbase; + + /* Allocating SIZE bytes for a pivot buffer facilitates a better + * algorithm below since we can do comparisons directly on the pivot. + */ + char *pivot_buffer = (char *) g_alloca (size); + const size_t max_thresh = MAX_THRESH * size; + + g_return_if_fail (total_elems > 0); + g_return_if_fail (pbase != NULL); + g_return_if_fail (compare_func != NULL); + + if (total_elems > MAX_THRESH) + { + char *lo = base_ptr; + char *hi = &lo[size * (total_elems - 1)]; + /* Largest size needed for 32-bit int!!! */ + stack_node stack[STACK_SIZE]; + stack_node *top = stack + 1; + + while (STACK_NOT_EMPTY) + { + char *left_ptr; + char *right_ptr; + + char *pivot = pivot_buffer; + + /* Select median value from among LO, MID, and HI. Rearrange + * LO and HI so the three values are sorted. This lowers the + * probability of picking a pathological pivot value and + * skips a comparison for both the LEFT_PTR and RIGHT_PTR. */ + + char *mid = lo + size * ((hi - lo) / size >> 1); + + if ((*compare_func) ((void *) mid, (void *) lo, user_data) < 0) + SWAP (mid, lo, size); + if ((*compare_func) ((void *) hi, (void *) mid, user_data) < 0) + SWAP (mid, hi, size); + else + goto jump_over; + if ((*compare_func) ((void *) mid, (void *) lo, user_data) < 0) + SWAP (mid, lo, size); + jump_over:; + memcpy (pivot, mid, size); + pivot = pivot_buffer; + + left_ptr = lo + size; + right_ptr = hi - size; + + /* Here's the famous ``collapse the walls'' section of quicksort. + * Gotta like those tight inner loops! They are the main reason + * that this algorithm runs much faster than others. */ + do + { + while ((*compare_func) + ((void *) left_ptr, (void *) pivot, + user_data) < 0) + left_ptr += size; + + while ((*compare_func) + ((void *) pivot, (void *) right_ptr, + user_data) < 0) + right_ptr -= size; + + if (left_ptr < right_ptr) + { + SWAP (left_ptr, right_ptr, size); + left_ptr += size; + right_ptr -= size; + } + else if (left_ptr == right_ptr) + { + left_ptr += size; + right_ptr -= size; + break; + } + } + while (left_ptr <= right_ptr); + + /* Set up pointers for next iteration. First determine whether + * left and right partitions are below the threshold size. If so, + * ignore one or both. Otherwise, push the larger partition's + * bounds on the stack and continue sorting the smaller one. */ + + if ((size_t) (right_ptr - lo) <= max_thresh) + { + if ((size_t) (hi - left_ptr) <= max_thresh) + /* Ignore both small partitions. */ + POP (lo, hi); + else + /* Ignore small left partition. */ + lo = left_ptr; + } + else if ((size_t) (hi - left_ptr) <= max_thresh) + /* Ignore small right partition. */ + hi = right_ptr; + else if ((right_ptr - lo) > (hi - left_ptr)) + { + /* Push larger left partition indices. */ + PUSH (lo, right_ptr); + lo = left_ptr; + + } + else + { + /* Push larger right partition indices. */ + PUSH (left_ptr, hi); + hi = right_ptr; + } + } + } + + /* Once the BASE_PTR array is partially sorted by quicksort the rest + * is completely sorted using insertion sort, since this is efficient + * for partitions below MAX_THRESH size. BASE_PTR points to the beginning + * of the array to sort, and END_PTR points at the very last element in + * the array (*not* one beyond it!). */ + + { + char *const end_ptr = &base_ptr[size * (total_elems - 1)]; + char *tmp_ptr = base_ptr; + char *thresh = MIN (end_ptr, base_ptr + max_thresh); + register char *run_ptr; + + /* Find smallest element in first threshold and place it at the + * array's beginning. This is the smallest array element, + * and the operation speeds up insertion sort's inner loop. */ + + for (run_ptr = tmp_ptr + size; run_ptr <= thresh; + run_ptr += + size) if ((*compare_func) ((void *) run_ptr, (void *) tmp_ptr, + user_data) < 0) + tmp_ptr = run_ptr; + + if (tmp_ptr != base_ptr) + SWAP (tmp_ptr, base_ptr, size); + + /* Insertion sort, running from left-hand-side up to right-hand-side. */ + + run_ptr = base_ptr + size; + while ((run_ptr += size) <= end_ptr) + { + tmp_ptr = run_ptr - size; + while ((*compare_func) + ((void *) run_ptr, (void *) tmp_ptr, + user_data) < 0) + tmp_ptr -= size; + + tmp_ptr += size; + if (tmp_ptr != run_ptr) + { + char *trav; + + trav = run_ptr + size; + while (--trav >= run_ptr) + { + char c = *trav; + char *hi, *lo; + + for (hi = lo = trav; + (lo -= size) >= tmp_ptr; hi = lo) + *hi = *lo; + *hi = c; + } + } + } + } +} diff --git a/graf2d/win32gdk/gdk/src/glib/gqsort.h b/graf2d/win32gdk/gdk/src/glib/gqsort.h index 45fe333005f..12e7a05b13e 100644 --- a/graf2d/win32gdk/gdk/src/glib/gqsort.h +++ b/graf2d/win32gdk/gdk/src/glib/gqsort.h @@ -28,14 +28,14 @@ #ifndef __G_QSORT_H__ #define __G_QSORT_H__ -#include <g_types.h> +#include <glib/gtypes.h> G_BEGIN_DECLS void g_qsort_with_data (gconstpointer pbase, gint total_elems, size_t size, - GCompareFuncData compare_func, + GCompareDataFunc compare_func, gpointer user_data); G_END_DECLS diff --git a/graf2d/win32gdk/gdk/src/glib/gquark.h b/graf2d/win32gdk/gdk/src/glib/gquark.h index 69d5fb0889c..6b96dcf64d1 100644 --- a/graf2d/win32gdk/gdk/src/glib/gquark.h +++ b/graf2d/win32gdk/gdk/src/glib/gquark.h @@ -27,7 +27,7 @@ #ifndef __G_QUARK_H__ #define __G_QUARK_H__ -#include <g_types.h> +#include <glib/gtypes.h> G_BEGIN_DECLS @@ -35,10 +35,10 @@ typedef guint32 GQuark; /* Quarks (string<->id association) */ -GQuark g_quark_try_string (const gchar *string); -GQuark g_quark_from_static_string (const gchar *string); -GQuark g_quark_from_string (const gchar *string); -gchar* g_quark_to_string (GQuark quark) G_GNUC_CONST; +GQuark g_quark_try_string (const gchar *string); +GQuark g_quark_from_static_string (const gchar *string); +GQuark g_quark_from_string (const gchar *string); +G_CONST_RETURN gchar* g_quark_to_string (GQuark quark) G_GNUC_CONST; G_END_DECLS diff --git a/graf2d/win32gdk/gdk/src/glib/gqueue.c b/graf2d/win32gdk/gdk/src/glib/gqueue.c new file mode 100644 index 00000000000..b15adb4f9f8 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gqueue.c @@ -0,0 +1,263 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * GQueue: Double ended queue implementation, piggy backed on GList. + * Copyright (C) 1998 Tim Janik + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * MT safe + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include "glib.h" + + +G_LOCK_DEFINE_STATIC (queue_memchunk); +static GMemChunk *queue_memchunk = NULL; +static GTrashStack *free_queue_nodes = NULL; + +GQueue* +g_queue_new (void) +{ + GQueue *queue; + + G_LOCK (queue_memchunk); + queue = g_trash_stack_pop (&free_queue_nodes); + + if (!queue) + { + if (!queue_memchunk) + queue_memchunk = g_mem_chunk_new ("GLib GQueue chunk", + sizeof (GNode), + sizeof (GNode) * 128, + G_ALLOC_ONLY); + queue = g_chunk_new (GQueue, queue_memchunk); + } + G_UNLOCK (queue_memchunk); + + queue->head = NULL; + queue->tail = NULL; + queue->length = 0; + + return queue; +} + +void +g_queue_free (GQueue *queue) +{ + g_return_if_fail (queue != NULL); + + g_list_free (queue->head); + +#ifdef ENABLE_GC_FRIENDLY + queue->head = NULL; + queue->tail = NULL; +#endif /* ENABLE_GC_FRIENDLY */ + + G_LOCK (queue_memchunk); + g_trash_stack_push (&free_queue_nodes, queue); + G_UNLOCK (queue_memchunk); +} + +void +g_queue_push_head (GQueue *queue, + gpointer data) +{ + g_return_if_fail (queue != NULL); + + queue->head = g_list_prepend (queue->head, data); + if (!queue->tail) + queue->tail = queue->head; + queue->length++; +} + +void +g_queue_push_head_link (GQueue *queue, + GList *link) +{ + g_return_if_fail (queue != NULL); + g_return_if_fail (link != NULL); + g_return_if_fail (link->prev == NULL); + g_return_if_fail (link->next == NULL); + + link->next = queue->head; + if (queue->head) + queue->head->prev = link; + else + queue->tail = link; + queue->head = link; + queue->length++; +} + +void +g_queue_push_tail (GQueue *queue, + gpointer data) +{ + g_return_if_fail (queue != NULL); + + queue->tail = g_list_append (queue->tail, data); + if (queue->tail->next) + queue->tail = queue->tail->next; + else + queue->head = queue->tail; + queue->length++; +} + +void +g_queue_push_tail_link (GQueue *queue, + GList *link) +{ + g_return_if_fail (queue != NULL); + g_return_if_fail (link != NULL); + g_return_if_fail (link->prev == NULL); + g_return_if_fail (link->next == NULL); + + link->prev = queue->tail; + if (queue->tail) + queue->tail->next = link; + else + queue->head = link; + queue->tail = link; + queue->length++; +} + +gpointer +g_queue_pop_head (GQueue *queue) +{ + g_return_val_if_fail (queue != NULL, NULL); + + if (queue->head) + { + GList *node = queue->head; + gpointer data = node->data; + + queue->head = node->next; + if (queue->head) + queue->head->prev = NULL; + else + queue->tail = NULL; + g_list_free_1 (node); + queue->length--; + + return data; + } + + return NULL; +} + +GList* +g_queue_pop_head_link (GQueue *queue) +{ + g_return_val_if_fail (queue != NULL, NULL); + + if (queue->head) + { + GList *node = queue->head; + + queue->head = node->next; + if (queue->head) + { + queue->head->prev = NULL; + node->next = NULL; + } + else + queue->tail = NULL; + queue->length--; + + return node; + } + + return NULL; +} + +gpointer +g_queue_pop_tail (GQueue *queue) +{ + g_return_val_if_fail (queue != NULL, NULL); + + if (queue->tail) + { + GList *node = queue->tail; + gpointer data = node->data; + + queue->tail = node->prev; + if (queue->tail) + queue->tail->next = NULL; + else + queue->head = NULL; + queue->length--; + g_list_free_1 (node); + + return data; + } + + return NULL; +} + +GList* +g_queue_pop_tail_link (GQueue *queue) +{ + g_return_val_if_fail (queue != NULL, NULL); + + if (queue->tail) + { + GList *node = queue->tail; + + queue->tail = node->prev; + if (queue->tail) + { + queue->tail->next = NULL; + node->prev = NULL; + } + else + queue->head = NULL; + queue->length--; + + return node; + } + + return NULL; +} + +gboolean +g_queue_is_empty (GQueue *queue) +{ + g_return_val_if_fail (queue != NULL, TRUE); + + return queue->head == NULL; +} + +gpointer +g_queue_peek_head (GQueue *queue) +{ + g_return_val_if_fail (queue != NULL, NULL); + + return queue->head ? queue->head->data : NULL; +} + +gpointer +g_queue_peek_tail (GQueue *queue) +{ + g_return_val_if_fail (queue != NULL, NULL); + + return queue->tail ? queue->tail->data : NULL; +} diff --git a/graf2d/win32gdk/gdk/src/glib/gqueue.h b/graf2d/win32gdk/gdk/src/glib/gqueue.h index b71b6d61ef2..64fd6928222 100644 --- a/graf2d/win32gdk/gdk/src/glib/gqueue.h +++ b/graf2d/win32gdk/gdk/src/glib/gqueue.h @@ -27,7 +27,7 @@ #ifndef __G_QUEUE_H__ #define __G_QUEUE_H__ -#include <glist.h> +#include <glib/glist.h> G_BEGIN_DECLS diff --git a/graf2d/win32gdk/gdk/src/glib/grand.c b/graf2d/win32gdk/gdk/src/glib/grand.c new file mode 100644 index 00000000000..2a60e5bd51d --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/grand.c @@ -0,0 +1,403 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* Originally developed and coded by Makoto Matsumoto and Takuji + * Nishimura. Please mail <matumoto@math.keio.ac.jp>, if you're using + * code from this file in your own programs or libraries. + * Further information on the Mersenne Twister can be found at + * http://www.math.keio.ac.jp/~matumoto/emt.html + * This code was adapted to glib by Sebastian Wilhelmi <wilhelmi@ira.uka.de>. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe + */ + +#include <glib.h> +#include <math.h> +#include <stdio.h> + +G_LOCK_DEFINE_STATIC (global_random); +static GRand* global_random = NULL; + +/* Period parameters */ +#define N 624 +#define M 397 +#define MATRIX_A 0x9908b0df /* constant vector a */ +#define UPPER_MASK 0x80000000 /* most significant w-r bits */ +#define LOWER_MASK 0x7fffffff /* least significant r bits */ + +/* Tempering parameters */ +#define TEMPERING_MASK_B 0x9d2c5680 +#define TEMPERING_MASK_C 0xefc60000 +#define TEMPERING_SHIFT_U(y) (y >> 11) +#define TEMPERING_SHIFT_S(y) (y << 7) +#define TEMPERING_SHIFT_T(y) (y << 15) +#define TEMPERING_SHIFT_L(y) (y >> 18) + +struct _GRand +{ + guint32 mt[N]; /* the array for the state vector */ + guint mti; +}; + +/** + * g_rand_new_with_seed: + * @seed: a value to initialize the random number generator. + * + * Creates a new random number generator initialized with @seed. + * + * Return value: the new #GRand. + **/ +GRand* +g_rand_new_with_seed (guint32 seed) +{ + GRand *rand = g_new0 (GRand, 1); + g_rand_set_seed (rand, seed); + return rand; +} + +/** + * g_rand_new: + * + * Creates a new random number generator initialized with a seed taken + * either from /dev/urandom (if existing) or from the current time (as + * a fallback). + * + * Return value: the new #GRand. + **/ +GRand* +g_rand_new (void) +{ + guint32 seed; + GTimeVal now; + static gboolean dev_urandom_exists = TRUE; + + if (dev_urandom_exists) + { + FILE* dev_urandom = fopen("/dev/urandom", "rb"); + if (dev_urandom) + { + if (fread (&seed, sizeof (seed), 1, dev_urandom) != 1) + dev_urandom_exists = FALSE; + fclose (dev_urandom); + } + else + dev_urandom_exists = FALSE; + } + if (!dev_urandom_exists) + { + g_get_current_time (&now); + seed = now.tv_sec ^ now.tv_usec; + } + + return g_rand_new_with_seed (seed); +} + +/** + * g_rand_free: + * @rand: a #GRand. + * + * Frees the memory allocated for the #GRand. + **/ +void +g_rand_free (GRand* rand) +{ + g_return_if_fail (rand != NULL); + + g_free (rand); +} + +/** + * g_rand_set_seed: + * @rand: a #GRand. + * @seed: a value to reinitialize the random number generator. + * + * Sets the seed for the random number generator #GRand to @seed. + **/ +void +g_rand_set_seed (GRand* rand, guint32 seed) +{ + g_return_if_fail (rand != NULL); + + /* setting initial seeds to mt[N] using */ + /* the generator Line 25 of Table 1 in */ + /* [KNUTH 1981, The Art of Computer Programming */ + /* Vol. 2 (2nd Ed.), pp102] */ + + if (seed == 0) /* This would make the PRNG procude only zeros */ + seed = 0x6b842128; /* Just set it to another number */ + + rand->mt[0]= seed & 0xffffffff; + for (rand->mti=1; rand->mti<N; rand->mti++) + rand->mt[rand->mti] = (69069 * rand->mt[rand->mti-1]) & 0xffffffff; +} + +/** + * g_rand_int: + * @rand: a #GRand. + * + * Return the next random #guint32 from @rand equaly distributed over + * the range [0..2^32-1]. + * + * Return value: A random number. + **/ +guint32 +g_rand_int (GRand* rand) +{ + guint32 y; + static const guint32 mag01[2]={0x0, MATRIX_A}; + /* mag01[x] = x * MATRIX_A for x=0,1 */ + + g_return_val_if_fail (rand != NULL, 0); + + if (rand->mti >= N) { /* generate N words at one time */ + int kk; + + for (kk=0;kk<N-M;kk++) { + y = (rand->mt[kk]&UPPER_MASK)|(rand->mt[kk+1]&LOWER_MASK); + rand->mt[kk] = rand->mt[kk+M] ^ (y >> 1) ^ mag01[y & 0x1]; + } + for (;kk<N-1;kk++) { + y = (rand->mt[kk]&UPPER_MASK)|(rand->mt[kk+1]&LOWER_MASK); + rand->mt[kk] = rand->mt[kk+(M-N)] ^ (y >> 1) ^ mag01[y & 0x1]; + } + y = (rand->mt[N-1]&UPPER_MASK)|(rand->mt[0]&LOWER_MASK); + rand->mt[N-1] = rand->mt[M-1] ^ (y >> 1) ^ mag01[y & 0x1]; + + rand->mti = 0; + } + + y = rand->mt[rand->mti++]; + y ^= TEMPERING_SHIFT_U(y); + y ^= TEMPERING_SHIFT_S(y) & TEMPERING_MASK_B; + y ^= TEMPERING_SHIFT_T(y) & TEMPERING_MASK_C; + y ^= TEMPERING_SHIFT_L(y); + + return y; +} + +/* transform [0..2^32] -> [0..1] */ +#define G_RAND_DOUBLE_TRANSFORM 2.3283064365386962890625e-10 + +/** + * g_rand_int_range: + * @rand: a #GRand. + * @begin: lower closed bound of the interval. + * @end: upper open bound of the interval. + * + * Return the next random #gint32 from @rand equaly distributed over + * the range [@begin..@end-1]. + * + * Return value: A random number. + **/ +gint32 +g_rand_int_range (GRand* rand, gint32 begin, gint32 end) +{ + guint32 dist = end - begin; + guint32 random; + + g_return_val_if_fail (rand != NULL, begin); + g_return_val_if_fail (end > begin, begin); + + /* All tricks doing modulo calculations do not have a perfect + * distribution -> We must use the slower way through gdouble for + * maximal quality. */ + + if (dist <= 0x10000L) /* 2^16 */ + { + /* This method, which only calls g_rand_int once is only good + * for (end - begin) <= 2^16, because we only have 32 bits set + * from the one call to g_rand_int (). */ + + /* we are using (trans + trans * trans), because g_rand_int only + * covers [0..2^32-1] and thus g_rand_int * trans only covers + * [0..1-2^-32], but the biggest double < 1 is 1-2^-52. + */ + + gdouble double_rand = g_rand_int (rand) * + (G_RAND_DOUBLE_TRANSFORM + + G_RAND_DOUBLE_TRANSFORM * G_RAND_DOUBLE_TRANSFORM); + + random = (gint32) (double_rand * dist); + } + else + { + /* Now we use g_rand_double_range (), which will set 52 bits for + us, so that it is safe to round and still get a decent + distribution */ + random = (gint32) g_rand_double_range (rand, 0, dist); + } + + return begin + random; +} + +/** + * g_rand_double: + * @rand: a #GRand. + * + * Return the next random #gdouble from @rand equaly distributed over + * the range [0..1). + * + * Return value: A random number. + **/ +gdouble +g_rand_double (GRand* rand) +{ + /* We set all 52 bits after the point for this, not only the first + 32. Thats why we need two calls to g_rand_int */ + gdouble retval = g_rand_int (rand) * G_RAND_DOUBLE_TRANSFORM; + retval = (retval + g_rand_int (rand)) * G_RAND_DOUBLE_TRANSFORM; + + /* The following might happen due to very bad rounding luck, but + * actually this should be more than rare, we just try again then */ + if (retval >= 1.0) + return g_rand_double (rand); + + return retval; +} + +/** + * g_rand_double_range: + * @rand: a #GRand. + * @begin: lower closed bound of the interval. + * @end: upper open bound of the interval. + * + * Return the next random #gdouble from @rand equaly distributed over + * the range [@begin..@end). + * + * Return value: A random number. + **/ +gdouble +g_rand_double_range (GRand* rand, gdouble begin, gdouble end) +{ + return g_rand_double (rand) * (end - begin) + begin; +} + +/** + * g_random_int: + * + * Return a random #guint32 equaly distributed over the range + * [0..2^32-1]. + * + * Return value: A random number. + **/ +guint32 +g_random_int (void) +{ + guint32 result; + G_LOCK (global_random); + if (!global_random) + global_random = g_rand_new (); + + result = g_rand_int (global_random); + G_UNLOCK (global_random); + return result; +} + +/** + * g_random_int_range: + * @begin: lower closed bound of the interval. + * @end: upper open bound of the interval. + * + * Return a random #gint32 equaly distributed over the range + * [@begin..@end-1]. + * + * Return value: A random number. + **/ +gint32 +g_random_int_range (gint32 begin, gint32 end) +{ + gint32 result; + G_LOCK (global_random); + if (!global_random) + global_random = g_rand_new (); + + result = g_rand_int_range (global_random, begin, end); + G_UNLOCK (global_random); + return result; +} + +/** + * g_random_double: + * + * Return a random #gdouble equaly distributed over the range [0..1). + * + * Return value: A random number. + **/ +gdouble +g_random_double (void) +{ + double result; + G_LOCK (global_random); + if (!global_random) + global_random = g_rand_new (); + + result = g_rand_double (global_random); + G_UNLOCK (global_random); + return result; +} + +/** + * g_random_double_range: + * @begin: lower closed bound of the interval. + * @end: upper open bound of the interval. + * + * Return a random #gdouble equaly distributed over the range [@begin..@end). + * + * Return value: A random number. + **/ +gdouble +g_random_double_range (gdouble begin, gdouble end) +{ + double result; + G_LOCK (global_random); + if (!global_random) + global_random = g_rand_new (); + + result = g_rand_double_range (global_random, begin, end); + G_UNLOCK (global_random); + return result; +} + +/** + * g_random_set_seed: + * @seed: a value to reinitialize the global random number generator. + * + * Sets the seed for the global random number generator, which is used + * by te g_random_* functions, to @seed. + **/ +void +g_random_set_seed (guint32 seed) +{ + G_LOCK (global_random); + if (!global_random) + global_random = g_rand_new_with_seed (seed); + else + g_rand_set_seed (global_random, seed); + G_UNLOCK (global_random); +} + diff --git a/graf2d/win32gdk/gdk/src/glib/grand.h b/graf2d/win32gdk/gdk/src/glib/grand.h index 020ca1b7ce6..d743953f94c 100644 --- a/graf2d/win32gdk/gdk/src/glib/grand.h +++ b/graf2d/win32gdk/gdk/src/glib/grand.h @@ -27,7 +27,7 @@ #ifndef __G_RAND_H__ #define __G_RAND_H__ -#include <g_types.h> +#include <glib/gtypes.h> G_BEGIN_DECLS @@ -49,7 +49,7 @@ void g_rand_free (GRand *rand); void g_rand_set_seed (GRand *rand, guint32 seed); -#define g_rand_boolean(rand) (g_rand_int ((rand)) & (1<<15)) +#define g_rand_boolean(rand) ((g_rand_int (rand) & (1 << 15)) != 0) guint32 g_rand_int (GRand *rand); gint32 g_rand_int_range (GRand *rand, @@ -62,7 +62,7 @@ gdouble g_rand_double_range (GRand *rand, void g_random_set_seed (guint32 seed); -#define g_random_boolean() (g_rand_boolean ((rand))) +#define g_random_boolean() ((g_random_int () & (1 << 15)) != 0) guint32 g_random_int (void); gint32 g_random_int_range (gint32 begin, diff --git a/graf2d/win32gdk/gdk/src/glib/grel.c b/graf2d/win32gdk/gdk/src/glib/grel.c new file mode 100644 index 00000000000..69cad2c9973 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/grel.c @@ -0,0 +1,449 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe + */ + +#include "glib.h" +#include <stdarg.h> +#include <string.h> + +typedef struct _GRealTuples GRealTuples; + +struct _GRelation +{ + gint fields; + gint current_field; + + GHashTable *all_tuples; + GHashTable **hashed_tuple_tables; + GMemChunk *tuple_chunk; + + gint count; +}; + +struct _GRealTuples +{ + gint len; + gint width; + gpointer *data; +}; + +static gboolean +tuple_equal_2 (gconstpointer v_a, + gconstpointer v_b) +{ + gpointer* a = (gpointer*) v_a; + gpointer* b = (gpointer*) v_b; + + return a[0] == b[0] && a[1] == b[1]; +} + +static guint +tuple_hash_2 (gconstpointer v_a) +{ + gpointer* a = (gpointer*) v_a; + + return (gulong)a[0] ^ (gulong)a[1]; +} + +static GHashFunc +tuple_hash (gint fields) +{ + switch (fields) + { + case 2: + return tuple_hash_2; + default: + g_error ("no tuple hash for %d", fields); + } + + return NULL; +} + +static GEqualFunc +tuple_equal (gint fields) +{ + switch (fields) + { + case 2: + return tuple_equal_2; + default: + g_error ("no tuple equal for %d", fields); + } + + return NULL; +} + +GRelation* +g_relation_new (gint fields) +{ + GRelation* rel = g_new0 (GRelation, 1); + + rel->fields = fields; + rel->tuple_chunk = g_mem_chunk_new ("Relation Chunk", + fields * sizeof (gpointer), + fields * sizeof (gpointer) * 128, + G_ALLOC_AND_FREE); + rel->all_tuples = g_hash_table_new (tuple_hash (fields), tuple_equal (fields)); + rel->hashed_tuple_tables = g_new0 (GHashTable*, fields); + + return rel; +} + +static void +g_relation_free_array (gpointer key, gpointer value, gpointer user_data) +{ + g_hash_table_destroy ((GHashTable*) value); +} + +void +g_relation_destroy (GRelation *relation) +{ + gint i; + + if (relation) + { + g_hash_table_destroy (relation->all_tuples); + g_mem_chunk_destroy (relation->tuple_chunk); + + for (i = 0; i < relation->fields; i += 1) + { + if (relation->hashed_tuple_tables[i]) + { + g_hash_table_foreach (relation->hashed_tuple_tables[i], g_relation_free_array, NULL); + g_hash_table_destroy (relation->hashed_tuple_tables[i]); + } + } + + g_free (relation->hashed_tuple_tables); + g_free (relation); + } +} + +void +g_relation_index (GRelation *relation, + gint field, + GHashFunc hash_func, + GEqualFunc key_equal_func) +{ + g_return_if_fail (relation != NULL); + + g_return_if_fail (relation->count == 0 && relation->hashed_tuple_tables[field] == NULL); + + relation->hashed_tuple_tables[field] = g_hash_table_new (hash_func, key_equal_func); +} + +void +g_relation_insert (GRelation *relation, + ...) +{ + gpointer* tuple = g_chunk_new (gpointer, relation->tuple_chunk); + va_list args; + gint i; + + va_start(args, relation); + + for (i = 0; i < relation->fields; i += 1) + tuple[i] = va_arg(args, gpointer); + + va_end(args); + + g_hash_table_insert (relation->all_tuples, tuple, tuple); + + relation->count += 1; + + for (i = 0; i < relation->fields; i += 1) + { + GHashTable *table; + gpointer key; + GHashTable *per_key_table; + + table = relation->hashed_tuple_tables[i]; + + if (table == NULL) + continue; + + key = tuple[i]; + per_key_table = g_hash_table_lookup (table, key); + + if (per_key_table == NULL) + { + per_key_table = g_hash_table_new (tuple_hash (relation->fields), tuple_equal (relation->fields)); + g_hash_table_insert (table, key, per_key_table); + } + + g_hash_table_insert (per_key_table, tuple, tuple); + } +} + +static void +g_relation_delete_tuple (gpointer tuple_key, + gpointer tuple_value, + gpointer user_data) +{ + gpointer *tuple = (gpointer*) tuple_value; + GRelation *rel = (GRelation *) user_data; + gint j; + + g_assert (tuple_key == tuple_value); + + for (j = 0; j < rel->fields; j += 1) + { + GHashTable *one_table = rel->hashed_tuple_tables[j]; + gpointer one_key; + GHashTable *per_key_table; + + if (one_table == NULL) + continue; + + if (j == rel->current_field) + /* can't delete from the table we're foreaching in */ + continue; + + one_key = tuple[j]; + + per_key_table = g_hash_table_lookup (one_table, one_key); + + g_hash_table_remove (per_key_table, tuple); + } + + g_hash_table_remove (rel->all_tuples, tuple); + + rel->count -= 1; +} + +gint +g_relation_delete (GRelation *relation, + gconstpointer key, + gint field) +{ + GHashTable *table = relation->hashed_tuple_tables[field]; + GHashTable *key_table; + gint count = relation->count; + + g_return_val_if_fail (relation != NULL, 0); + g_return_val_if_fail (table != NULL, 0); + + key_table = g_hash_table_lookup (table, key); + + if (!key_table) + return 0; + + relation->current_field = field; + + g_hash_table_foreach (key_table, g_relation_delete_tuple, relation); + + g_hash_table_remove (table, key); + + g_hash_table_destroy (key_table); + + /* @@@ FIXME: Remove empty hash tables. */ + + return count - relation->count; +} + +static void +g_relation_select_tuple (gpointer tuple_key, + gpointer tuple_value, + gpointer user_data) +{ + gpointer *tuple = (gpointer*) tuple_value; + GRealTuples *tuples = (GRealTuples*) user_data; + gint stride = sizeof (gpointer) * tuples->width; + + g_assert (tuple_key == tuple_value); + + memcpy (tuples->data + (tuples->len * tuples->width), + tuple, + stride); + + tuples->len += 1; +} + +GTuples* +g_relation_select (GRelation *relation, + gconstpointer key, + gint field) +{ + GHashTable *table = relation->hashed_tuple_tables[field]; + GHashTable *key_table; + GRealTuples *tuples = g_new0 (GRealTuples, 1); + gint count; + + g_return_val_if_fail (relation != NULL, NULL); + g_return_val_if_fail (table != NULL, NULL); + + key_table = g_hash_table_lookup (table, key); + + if (!key_table) + return (GTuples*)tuples; + + count = g_relation_count (relation, key, field); + + tuples->data = g_malloc (sizeof (gpointer) * relation->fields * count); + tuples->width = relation->fields; + + g_hash_table_foreach (key_table, g_relation_select_tuple, tuples); + + g_assert (count == tuples->len); + + return (GTuples*)tuples; +} + +gint +g_relation_count (GRelation *relation, + gconstpointer key, + gint field) +{ + GHashTable *table = relation->hashed_tuple_tables[field]; + GHashTable *key_table; + + g_return_val_if_fail (relation != NULL, 0); + g_return_val_if_fail (table != NULL, 0); + + key_table = g_hash_table_lookup (table, key); + + if (!key_table) + return 0; + + return g_hash_table_size (key_table); +} + +gboolean +g_relation_exists (GRelation *relation, ...) +{ + gpointer* tuple = g_chunk_new (gpointer, relation->tuple_chunk); + va_list args; + gint i; + gboolean result; + + va_start(args, relation); + + for (i = 0; i < relation->fields; i += 1) + tuple[i] = va_arg(args, gpointer); + + va_end(args); + + result = g_hash_table_lookup (relation->all_tuples, tuple) != NULL; + + g_mem_chunk_free (relation->tuple_chunk, tuple); + + return result; +} + +void +g_tuples_destroy (GTuples *tuples0) +{ + GRealTuples *tuples = (GRealTuples*) tuples0; + + if (tuples) + { + g_free (tuples->data); + g_free (tuples); + } +} + +gpointer +g_tuples_index (GTuples *tuples0, + gint index, + gint field) +{ + GRealTuples *tuples = (GRealTuples*) tuples0; + + g_return_val_if_fail (tuples0 != NULL, NULL); + g_return_val_if_fail (field < tuples->width, NULL); + + return tuples->data[index * tuples->width + field]; +} + +/* Print + */ + +static void +g_relation_print_one (gpointer tuple_key, + gpointer tuple_value, + gpointer user_data) +{ + gint i; + GString *gstring; + GRelation* rel = (GRelation*) user_data; + gpointer* tuples = (gpointer*) tuple_value; + + gstring = g_string_new ("["); + + for (i = 0; i < rel->fields; i += 1) + { + g_string_printfa (gstring, "%p", tuples[i]); + + if (i < (rel->fields - 1)) + g_string_append (gstring, ","); + } + + g_string_append (gstring, "]"); + g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, gstring->str); + g_string_free (gstring, TRUE); +} + +static void +g_relation_print_index (gpointer tuple_key, + gpointer tuple_value, + gpointer user_data) +{ + GRelation* rel = (GRelation*) user_data; + GHashTable* table = (GHashTable*) tuple_value; + + g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "*** key %p", tuple_key); + + g_hash_table_foreach (table, + g_relation_print_one, + rel); +} + +void +g_relation_print (GRelation *relation) +{ + gint i; + + g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "*** all tuples (%d)", relation->count); + + g_hash_table_foreach (relation->all_tuples, + g_relation_print_one, + relation); + + for (i = 0; i < relation->fields; i += 1) + { + if (relation->hashed_tuple_tables[i] == NULL) + continue; + + g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, "*** index %d", i); + + g_hash_table_foreach (relation->hashed_tuple_tables[i], + g_relation_print_index, + relation); + } + +} diff --git a/graf2d/win32gdk/gdk/src/glib/grel.h b/graf2d/win32gdk/gdk/src/glib/grel.h index 5d92b43930c..562bd136017 100644 --- a/graf2d/win32gdk/gdk/src/glib/grel.h +++ b/graf2d/win32gdk/gdk/src/glib/grel.h @@ -27,7 +27,7 @@ #ifndef __G_REL_H__ #define __G_REL_H__ -#include <g_types.h> +#include <glib/gtypes.h> G_BEGIN_DECLS diff --git a/graf2d/win32gdk/gdk/src/glib/gscanner.c b/graf2d/win32gdk/gdk/src/glib/gscanner.c new file mode 100644 index 00000000000..dd95b71a96f --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gscanner.c @@ -0,0 +1,1707 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * GScanner: Flexible lexical scanner for general purpose. + * Copyright (C) 1997, 1998 Tim Janik + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <stdlib.h> +#include <stdarg.h> +#include <string.h> +#include <stdio.h> +#include "glib.h" +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif +#include <errno.h> +#ifdef G_OS_WIN32 +#include <io.h> /* For _read() */ +#endif + +/* --- defines --- */ +#define to_lower(c) ( \ + (guchar) ( \ + ( (((guchar)(c))>='A' && ((guchar)(c))<='Z') * ('a'-'A') ) | \ + ( (((guchar)(c))>=192 && ((guchar)(c))<=214) * (224-192) ) | \ + ( (((guchar)(c))>=216 && ((guchar)(c))<=222) * (248-216) ) | \ + ((guchar)(c)) \ + ) \ +) +#define READ_BUFFER_SIZE (4000) + + +/* --- typedefs --- */ +typedef struct _GScannerKey GScannerKey; + +struct _GScannerKey +{ + guint scope_id; + gchar *symbol; + gpointer value; +}; + + + +/* --- variables --- */ +static GScannerConfig g_scanner_config_template = +{ + ( + " \t\r\n" + ) /* cset_skip_characters */, + ( + G_CSET_a_2_z + "_" + G_CSET_A_2_Z + ) /* cset_identifier_first */, + ( + G_CSET_a_2_z + "_" + G_CSET_A_2_Z + G_CSET_DIGITS + G_CSET_LATINS + G_CSET_LATINC + ) /* cset_identifier_nth */, + ( "#\n" ) /* cpair_comment_single */, + + FALSE /* case_sensitive */, + + TRUE /* skip_comment_multi */, + TRUE /* skip_comment_single */, + TRUE /* scan_comment_multi */, + TRUE /* scan_identifier */, + FALSE /* scan_identifier_1char */, + FALSE /* scan_identifier_NULL */, + TRUE /* scan_symbols */, + FALSE /* scan_binary */, + TRUE /* scan_octal */, + TRUE /* scan_float */, + TRUE /* scan_hex */, + FALSE /* scan_hex_dollar */, + TRUE /* scan_string_sq */, + TRUE /* scan_string_dq */, + TRUE /* numbers_2_int */, + FALSE /* int_2_float */, + FALSE /* identifier_2_string */, + TRUE /* char_2_token */, + FALSE /* symbol_2_token */, + FALSE /* scope_0_fallback */, +}; + + +/* --- prototypes --- */ +static inline +GScannerKey* g_scanner_lookup_internal (GScanner *scanner, + guint scope_id, + const gchar *symbol); +static gboolean g_scanner_key_equal (gconstpointer v1, + gconstpointer v2); +static guint g_scanner_key_hash (gconstpointer v); +static void g_scanner_get_token_ll (GScanner *scanner, + GTokenType *token_p, + GTokenValue *value_p, + guint *line_p, + guint *position_p); +static void g_scanner_get_token_i (GScanner *scanner, + GTokenType *token_p, + GTokenValue *value_p, + guint *line_p, + guint *position_p); + +static guchar g_scanner_peek_next_char (GScanner *scanner); +static guchar g_scanner_get_char (GScanner *scanner, + guint *line_p, + guint *position_p); +static void g_scanner_msg_handler (GScanner *scanner, + gchar *message, + gint is_error); + + +/* --- functions --- */ +static inline gint +g_scanner_char_2_num (guchar c, + guchar base) +{ + if (c >= '0' && c <= '9') + c -= '0'; + else if (c >= 'A' && c <= 'Z') + c -= 'A' - 10; + else if (c >= 'a' && c <= 'z') + c -= 'a' - 10; + else + return -1; + + if (c < base) + return c; + + return -1; +} + +GScanner* +g_scanner_new (const GScannerConfig *config_templ) +{ + GScanner *scanner; + + if (!config_templ) + config_templ = &g_scanner_config_template; + + scanner = g_new0 (GScanner, 1); + + scanner->user_data = NULL; + scanner->max_parse_errors = 0; + scanner->parse_errors = 0; + scanner->input_name = NULL; + g_datalist_init (&scanner->qdata); + + scanner->config = g_new0 (GScannerConfig, 1); + + scanner->config->case_sensitive = config_templ->case_sensitive; + scanner->config->cset_skip_characters = config_templ->cset_skip_characters; + if (!scanner->config->cset_skip_characters) + scanner->config->cset_skip_characters = ""; + scanner->config->cset_identifier_first = config_templ->cset_identifier_first; + scanner->config->cset_identifier_nth = config_templ->cset_identifier_nth; + scanner->config->cpair_comment_single = config_templ->cpair_comment_single; + scanner->config->skip_comment_multi = config_templ->skip_comment_multi; + scanner->config->skip_comment_single = config_templ->skip_comment_single; + scanner->config->scan_comment_multi = config_templ->scan_comment_multi; + scanner->config->scan_identifier = config_templ->scan_identifier; + scanner->config->scan_identifier_1char = config_templ->scan_identifier_1char; + scanner->config->scan_identifier_NULL = config_templ->scan_identifier_NULL; + scanner->config->scan_symbols = config_templ->scan_symbols; + scanner->config->scan_binary = config_templ->scan_binary; + scanner->config->scan_octal = config_templ->scan_octal; + scanner->config->scan_float = config_templ->scan_float; + scanner->config->scan_hex = config_templ->scan_hex; + scanner->config->scan_hex_dollar = config_templ->scan_hex_dollar; + scanner->config->scan_string_sq = config_templ->scan_string_sq; + scanner->config->scan_string_dq = config_templ->scan_string_dq; + scanner->config->numbers_2_int = config_templ->numbers_2_int; + scanner->config->int_2_float = config_templ->int_2_float; + scanner->config->identifier_2_string = config_templ->identifier_2_string; + scanner->config->char_2_token = config_templ->char_2_token; + scanner->config->symbol_2_token = config_templ->symbol_2_token; + scanner->config->scope_0_fallback = config_templ->scope_0_fallback; + + scanner->token = G_TOKEN_NONE; + scanner->value.v_int = 0; + scanner->line = 1; + scanner->position = 0; + + scanner->next_token = G_TOKEN_NONE; + scanner->next_value.v_int = 0; + scanner->next_line = 1; + scanner->next_position = 0; + + scanner->symbol_table = g_hash_table_new (g_scanner_key_hash, g_scanner_key_equal); + scanner->input_fd = -1; + scanner->text = NULL; + scanner->text_end = NULL; + scanner->buffer = NULL; + scanner->scope_id = 0; + + scanner->msg_handler = g_scanner_msg_handler; + + return scanner; +} + +static inline void +g_scanner_free_value (GTokenType *token_p, + GTokenValue *value_p) +{ + switch (*token_p) + { + case G_TOKEN_STRING: + case G_TOKEN_IDENTIFIER: + case G_TOKEN_IDENTIFIER_NULL: + case G_TOKEN_COMMENT_SINGLE: + case G_TOKEN_COMMENT_MULTI: + g_free (value_p->v_string); + break; + + default: + break; + } + + *token_p = G_TOKEN_NONE; +} + +static void +g_scanner_destroy_symbol_table_entry (gpointer _key, + gpointer _value, + gpointer _data) +{ + GScannerKey *key = _key; + + g_free (key->symbol); + g_free (key); +} + +void +g_scanner_destroy (GScanner *scanner) +{ + g_return_if_fail (scanner != NULL); + + g_datalist_clear (&scanner->qdata); + g_hash_table_foreach (scanner->symbol_table, + g_scanner_destroy_symbol_table_entry, NULL); + g_hash_table_destroy (scanner->symbol_table); + g_scanner_free_value (&scanner->token, &scanner->value); + g_scanner_free_value (&scanner->next_token, &scanner->next_value); + g_free (scanner->config); + g_free (scanner->buffer); + g_free (scanner); +} + +static void +g_scanner_msg_handler (GScanner *scanner, + gchar *message, + gint is_error) +{ + g_return_if_fail (scanner != NULL); + + fprintf (stderr, "%s:%d: ", scanner->input_name, scanner->line); + if (is_error) + fprintf (stderr, "error: "); + fprintf (stderr, "%s\n", message); +} + +void +g_scanner_error (GScanner *scanner, + const gchar *format, + ...) +{ + g_return_if_fail (scanner != NULL); + g_return_if_fail (format != NULL); + + scanner->parse_errors++; + + if (scanner->msg_handler) + { + va_list args; + gchar *string; + + va_start (args, format); + string = g_strdup_vprintf (format, args); + va_end (args); + + scanner->msg_handler (scanner, string, TRUE); + + g_free (string); + } +} + +void +g_scanner_warn (GScanner *scanner, + const gchar *format, + ...) +{ + g_return_if_fail (scanner != NULL); + g_return_if_fail (format != NULL); + + if (scanner->msg_handler) + { + va_list args; + gchar *string; + + va_start (args, format); + string = g_strdup_vprintf (format, args); + va_end (args); + + scanner->msg_handler (scanner, string, FALSE); + + g_free (string); + } +} + +static gboolean +g_scanner_key_equal (gconstpointer v1, + gconstpointer v2) +{ + const GScannerKey *key1 = v1; + const GScannerKey *key2 = v2; + + return (key1->scope_id == key2->scope_id) && (strcmp (key1->symbol, key2->symbol) == 0); +} + +static guint +g_scanner_key_hash (gconstpointer v) +{ + const GScannerKey *key = v; + gchar *c; + guint h; + + h = key->scope_id; + for (c = key->symbol; *c; c++) + h = (h << 5) - h + *c; + + return h; +} + +static inline GScannerKey* +g_scanner_lookup_internal (GScanner *scanner, + guint scope_id, + const gchar *symbol) +{ + GScannerKey *key_p; + GScannerKey key; + + key.scope_id = scope_id; + + if (!scanner->config->case_sensitive) + { + gchar *d; + const gchar *c; + + key.symbol = g_new (gchar, strlen (symbol) + 1); + for (d = key.symbol, c = symbol; *c; c++, d++) + *d = to_lower (*c); + *d = 0; + key_p = g_hash_table_lookup (scanner->symbol_table, &key); + g_free (key.symbol); + } + else + { + key.symbol = (gchar*) symbol; + key_p = g_hash_table_lookup (scanner->symbol_table, &key); + } + + return key_p; +} + +void +g_scanner_scope_add_symbol (GScanner *scanner, + guint scope_id, + const gchar *symbol, + gpointer value) +{ + GScannerKey *key; + + g_return_if_fail (scanner != NULL); + g_return_if_fail (symbol != NULL); + + key = g_scanner_lookup_internal (scanner, scope_id, symbol); + + if (!key) + { + key = g_new (GScannerKey, 1); + key->scope_id = scope_id; + key->symbol = g_strdup (symbol); + key->value = value; + if (!scanner->config->case_sensitive) + { + gchar *c; + + c = key->symbol; + while (*c != 0) + { + *c = to_lower (*c); + c++; + } + } + g_hash_table_insert (scanner->symbol_table, key, key); + } + else + key->value = value; +} + +void +g_scanner_scope_remove_symbol (GScanner *scanner, + guint scope_id, + const gchar *symbol) +{ + GScannerKey *key; + + g_return_if_fail (scanner != NULL); + g_return_if_fail (symbol != NULL); + + key = g_scanner_lookup_internal (scanner, scope_id, symbol); + + if (key) + { + g_hash_table_remove (scanner->symbol_table, key); + g_free (key->symbol); + g_free (key); + } +} + +gpointer +g_scanner_lookup_symbol (GScanner *scanner, + const gchar *symbol) +{ + GScannerKey *key; + guint scope_id; + + g_return_val_if_fail (scanner != NULL, NULL); + + if (!symbol) + return NULL; + + scope_id = scanner->scope_id; + key = g_scanner_lookup_internal (scanner, scope_id, symbol); + if (!key && scope_id && scanner->config->scope_0_fallback) + key = g_scanner_lookup_internal (scanner, 0, symbol); + + if (key) + return key->value; + else + return NULL; +} + +gpointer +g_scanner_scope_lookup_symbol (GScanner *scanner, + guint scope_id, + const gchar *symbol) +{ + GScannerKey *key; + + g_return_val_if_fail (scanner != NULL, NULL); + + if (!symbol) + return NULL; + + key = g_scanner_lookup_internal (scanner, scope_id, symbol); + + if (key) + return key->value; + else + return NULL; +} + +guint +g_scanner_set_scope (GScanner *scanner, + guint scope_id) +{ + guint old_scope_id; + + g_return_val_if_fail (scanner != NULL, 0); + + old_scope_id = scanner->scope_id; + scanner->scope_id = scope_id; + + return old_scope_id; +} + +static void +g_scanner_foreach_internal (gpointer _key, + gpointer _value, + gpointer _user_data) +{ + GScannerKey *key; + gpointer *d; + GHFunc func; + gpointer user_data; + guint *scope_id; + + d = _user_data; + func = (GHFunc) d[0]; + user_data = d[1]; + scope_id = d[2]; + key = _value; + + if (key->scope_id == *scope_id) + func (key->symbol, key->value, user_data); +} + +void +g_scanner_scope_foreach_symbol (GScanner *scanner, + guint scope_id, + GHFunc func, + gpointer user_data) +{ + gpointer d[3]; + + g_return_if_fail (scanner != NULL); + + d[0] = (gpointer) func; + d[1] = user_data; + d[2] = &scope_id; + + g_hash_table_foreach (scanner->symbol_table, g_scanner_foreach_internal, d); +} + +GTokenType +g_scanner_peek_next_token (GScanner *scanner) +{ + g_return_val_if_fail (scanner != NULL, G_TOKEN_EOF); + + if (scanner->next_token == G_TOKEN_NONE) + { + scanner->next_line = scanner->line; + scanner->next_position = scanner->position; + g_scanner_get_token_i (scanner, + &scanner->next_token, + &scanner->next_value, + &scanner->next_line, + &scanner->next_position); + } + + return scanner->next_token; +} + +GTokenType +g_scanner_get_next_token (GScanner *scanner) +{ + g_return_val_if_fail (scanner != NULL, G_TOKEN_EOF); + + if (scanner->next_token != G_TOKEN_NONE) + { + g_scanner_free_value (&scanner->token, &scanner->value); + + scanner->token = scanner->next_token; + scanner->value = scanner->next_value; + scanner->line = scanner->next_line; + scanner->position = scanner->next_position; + scanner->next_token = G_TOKEN_NONE; + } + else + g_scanner_get_token_i (scanner, + &scanner->token, + &scanner->value, + &scanner->line, + &scanner->position); + + return scanner->token; +} + +GTokenType +g_scanner_cur_token (GScanner *scanner) +{ + g_return_val_if_fail (scanner != NULL, G_TOKEN_EOF); + + return scanner->token; +} + +GTokenValue +g_scanner_cur_value (GScanner *scanner) +{ + GTokenValue v; + + v.v_int = 0; + + g_return_val_if_fail (scanner != NULL, v); + + /* MSC isn't capable of handling return scanner->value; ? */ + + v = scanner->value; + + return v; +} + +guint +g_scanner_cur_line (GScanner *scanner) +{ + g_return_val_if_fail (scanner != NULL, 0); + + return scanner->line; +} + +guint +g_scanner_cur_position (GScanner *scanner) +{ + g_return_val_if_fail (scanner != NULL, 0); + + return scanner->position; +} + +gboolean +g_scanner_eof (GScanner *scanner) +{ + g_return_val_if_fail (scanner != NULL, TRUE); + + return scanner->token == G_TOKEN_EOF; +} + +void +g_scanner_input_file (GScanner *scanner, + gint input_fd) +{ + g_return_if_fail (scanner != NULL); + g_return_if_fail (input_fd >= 0); + + if (scanner->input_fd >= 0) + g_scanner_sync_file_offset (scanner); + + scanner->token = G_TOKEN_NONE; + scanner->value.v_int = 0; + scanner->line = 1; + scanner->position = 0; + scanner->next_token = G_TOKEN_NONE; + + scanner->input_fd = input_fd; + scanner->text = NULL; + scanner->text_end = NULL; + + if (!scanner->buffer) + scanner->buffer = g_new (gchar, READ_BUFFER_SIZE + 1); +} + +void +g_scanner_input_text (GScanner *scanner, + const gchar *text, + guint text_len) +{ + g_return_if_fail (scanner != NULL); + if (text_len) + g_return_if_fail (text != NULL); + else + text = NULL; + + if (scanner->input_fd >= 0) + g_scanner_sync_file_offset (scanner); + + scanner->token = G_TOKEN_NONE; + scanner->value.v_int = 0; + scanner->line = 1; + scanner->position = 0; + scanner->next_token = G_TOKEN_NONE; + + scanner->input_fd = -1; + scanner->text = text; + scanner->text_end = text + text_len; + + if (scanner->buffer) + { + g_free (scanner->buffer); + scanner->buffer = NULL; + } +} + +static guchar +g_scanner_peek_next_char (GScanner *scanner) +{ + if (scanner->text < scanner->text_end) + { + return *scanner->text; + } + else if (scanner->input_fd >= 0) + { + gint count; + gchar *buffer; + + buffer = scanner->buffer; + do + { + count = read (scanner->input_fd, buffer, READ_BUFFER_SIZE); + } + while (count == -1 && (errno == EINTR || errno == EAGAIN)); + + if (count < 1) + { + scanner->input_fd = -1; + + return 0; + } + else + { + scanner->text = buffer; + scanner->text_end = buffer + count; + + return *buffer; + } + } + else + return 0; +} + +void +g_scanner_sync_file_offset (GScanner *scanner) +{ + g_return_if_fail (scanner != NULL); + + /* for file input, rewind the filedescriptor to the current + * buffer position and blow the file read ahead buffer. usefull for + * third party uses of our filedescriptor, which hooks onto the current + * scanning position. + */ + + if (scanner->input_fd >= 0 && scanner->text_end > scanner->text) + { + gint buffered; + + buffered = scanner->text_end - scanner->text; + if (lseek (scanner->input_fd, - buffered, SEEK_CUR) >= 0) + { + /* we succeeded, blow our buffer's contents now */ + scanner->text = NULL; + scanner->text_end = NULL; + } + else + errno = 0; + } +} + +static guchar +g_scanner_get_char (GScanner *scanner, + guint *line_p, + guint *position_p) +{ + guchar fchar; + + if (scanner->text < scanner->text_end) + fchar = *(scanner->text++); + else if (scanner->input_fd >= 0) + { + gint count; + gchar *buffer; + + buffer = scanner->buffer; + do + { + count = read (scanner->input_fd, buffer, READ_BUFFER_SIZE); + } + while (count == -1 && (errno == EINTR || errno == EAGAIN)); + + if (count < 1) + { + scanner->input_fd = -1; + fchar = 0; + } + else + { + scanner->text = buffer + 1; + scanner->text_end = buffer + count; + fchar = *buffer; + if (!fchar) + { + g_scanner_sync_file_offset (scanner); + scanner->text_end = scanner->text; + scanner->input_fd = -1; + } + } + } + else + fchar = 0; + + if (fchar == '\n') + { + (*position_p) = 0; + (*line_p)++; + } + else if (fchar) + { + (*position_p)++; + } + + return fchar; +} + +void +g_scanner_unexp_token (GScanner *scanner, + GTokenType expected_token, + const gchar *identifier_spec, + const gchar *symbol_spec, + const gchar *symbol_name, + const gchar *message, + gint is_error) +{ + gchar *token_string; + guint token_string_len; + gchar *expected_string; + guint expected_string_len; + gchar *message_prefix; + gboolean print_unexp; + void (*msg_handler) (GScanner*, const gchar*, ...); + + g_return_if_fail (scanner != NULL); + + if (is_error) + msg_handler = g_scanner_error; + else + msg_handler = g_scanner_warn; + + if (!identifier_spec) + identifier_spec = "identifier"; + if (!symbol_spec) + symbol_spec = "symbol"; + + token_string_len = 56; + token_string = g_new (gchar, token_string_len + 1); + expected_string_len = 64; + expected_string = g_new (gchar, expected_string_len + 1); + print_unexp = TRUE; + + switch (scanner->token) + { + case G_TOKEN_EOF: + g_snprintf (token_string, token_string_len, "end of file"); + break; + + default: + if (scanner->token >= 1 && scanner->token <= 255) + { + if ((scanner->token >= ' ' && scanner->token <= '~') || + strchr (scanner->config->cset_identifier_first, scanner->token) || + strchr (scanner->config->cset_identifier_nth, scanner->token)) + g_snprintf (token_string, expected_string_len, "character `%c'", scanner->token); + else + g_snprintf (token_string, expected_string_len, "character `\\%o'", scanner->token); + break; + } + else if (!scanner->config->symbol_2_token) + { + g_snprintf (token_string, token_string_len, "(unknown) token <%d>", scanner->token); + break; + } + /* fall through */ + case G_TOKEN_SYMBOL: + if (expected_token == G_TOKEN_SYMBOL || + (scanner->config->symbol_2_token && + expected_token > G_TOKEN_LAST)) + print_unexp = FALSE; + if (symbol_name) + g_snprintf (token_string, + token_string_len, + "%s%s `%s'", + print_unexp ? "" : "invalid ", + symbol_spec, + symbol_name); + else + g_snprintf (token_string, + token_string_len, + "%s%s", + print_unexp ? "" : "invalid ", + symbol_spec); + break; + + case G_TOKEN_ERROR: + print_unexp = FALSE; + expected_token = G_TOKEN_NONE; + switch (scanner->value.v_error) + { + case G_ERR_UNEXP_EOF: + g_snprintf (token_string, token_string_len, "scanner: unexpected end of file"); + break; + + case G_ERR_UNEXP_EOF_IN_STRING: + g_snprintf (token_string, token_string_len, "scanner: unterminated string constant"); + break; + + case G_ERR_UNEXP_EOF_IN_COMMENT: + g_snprintf (token_string, token_string_len, "scanner: unterminated comment"); + break; + + case G_ERR_NON_DIGIT_IN_CONST: + g_snprintf (token_string, token_string_len, "scanner: non digit in constant"); + break; + + case G_ERR_FLOAT_RADIX: + g_snprintf (token_string, token_string_len, "scanner: invalid radix for floating constant"); + break; + + case G_ERR_FLOAT_MALFORMED: + g_snprintf (token_string, token_string_len, "scanner: malformed floating constant"); + break; + + case G_ERR_DIGIT_RADIX: + g_snprintf (token_string, token_string_len, "scanner: digit is beyond radix"); + break; + + case G_ERR_UNKNOWN: + default: + g_snprintf (token_string, token_string_len, "scanner: unknown error"); + break; + } + break; + + case G_TOKEN_CHAR: + g_snprintf (token_string, token_string_len, "character `%c'", scanner->value.v_char); + break; + + case G_TOKEN_IDENTIFIER: + case G_TOKEN_IDENTIFIER_NULL: + if (expected_token == G_TOKEN_IDENTIFIER || + expected_token == G_TOKEN_IDENTIFIER_NULL) + print_unexp = FALSE; + g_snprintf (token_string, + token_string_len, + "%s%s `%s'", + print_unexp ? "" : "invalid ", + identifier_spec, + scanner->token == G_TOKEN_IDENTIFIER ? scanner->value.v_string : "null"); + break; + + case G_TOKEN_BINARY: + case G_TOKEN_OCTAL: + case G_TOKEN_INT: + case G_TOKEN_HEX: + g_snprintf (token_string, token_string_len, "number `%ld'", scanner->value.v_int); + break; + + case G_TOKEN_FLOAT: + g_snprintf (token_string, token_string_len, "number `%.3f'", scanner->value.v_float); + break; + + case G_TOKEN_STRING: + if (expected_token == G_TOKEN_STRING) + print_unexp = FALSE; + g_snprintf (token_string, + token_string_len, + "%s%sstring constant \"%s\"", + print_unexp ? "" : "invalid ", + scanner->value.v_string[0] == 0 ? "empty " : "", + scanner->value.v_string); + token_string[token_string_len - 2] = '"'; + token_string[token_string_len - 1] = 0; + break; + + case G_TOKEN_COMMENT_SINGLE: + case G_TOKEN_COMMENT_MULTI: + g_snprintf (token_string, token_string_len, "comment"); + break; + + case G_TOKEN_NONE: + /* somehow the user's parsing code is screwed, there isn't much + * we can do about it. + * Note, a common case to trigger this is + * g_scanner_peek_next_token(); g_scanner_unexp_token(); + * without an intermediate g_scanner_get_next_token(). + */ + g_assert_not_reached (); + break; + } + + + switch (expected_token) + { + gboolean need_valid; + + default: + if (expected_token >= 1 && expected_token <= 255) + { + if ((expected_token >= ' ' && expected_token <= '~') || + strchr (scanner->config->cset_identifier_first, expected_token) || + strchr (scanner->config->cset_identifier_nth, expected_token)) + g_snprintf (expected_string, expected_string_len, "character `%c'", expected_token); + else + g_snprintf (expected_string, expected_string_len, "character `\\%o'", expected_token); + break; + } + else if (!scanner->config->symbol_2_token) + { + g_snprintf (expected_string, expected_string_len, "(unknown) token <%d>", expected_token); + break; + } + /* fall through */ + case G_TOKEN_SYMBOL: + need_valid = (scanner->token == G_TOKEN_SYMBOL || + (scanner->config->symbol_2_token && + scanner->token > G_TOKEN_LAST)); + g_snprintf (expected_string, + expected_string_len, + "%s%s", + need_valid ? "valid " : "", + symbol_spec); + /* FIXME: should we attempt to lookup the symbol_name for symbol_2_token? */ + break; + + case G_TOKEN_INT: + g_snprintf (expected_string, expected_string_len, "%snumber (integer)", + scanner->token == G_TOKEN_INT ? "valid " : ""); + break; + + case G_TOKEN_FLOAT: + g_snprintf (expected_string, expected_string_len, "%snumber (float)", + scanner->token == G_TOKEN_FLOAT ? "valid " : ""); + break; + + case G_TOKEN_STRING: + g_snprintf (expected_string, + expected_string_len, + "%sstring constant", + scanner->token == G_TOKEN_STRING ? "valid " : ""); + break; + + case G_TOKEN_IDENTIFIER: + case G_TOKEN_IDENTIFIER_NULL: + g_snprintf (expected_string, + expected_string_len, + "%s%s", + (scanner->token == G_TOKEN_IDENTIFIER_NULL || + scanner->token == G_TOKEN_IDENTIFIER ? "valid " : ""), + identifier_spec); + break; + + case G_TOKEN_EOF: + g_snprintf (expected_string, expected_string_len, "end of file"); + break; + + case G_TOKEN_NONE: + break; + } + + if (message && message[0] != 0) + message_prefix = " - "; + else + { + message_prefix = ""; + message = ""; + } + + if (expected_token != G_TOKEN_NONE) + { + if (print_unexp) + msg_handler (scanner, + "unexpected %s, expected %s%s%s", + token_string, + expected_string, + message_prefix, + message); + else + msg_handler (scanner, + "%s, expected %s%s%s", + token_string, + expected_string, + message_prefix, + message); + } + else + { + if (print_unexp) + msg_handler (scanner, + "unexpected %s%s%s", + token_string, + message_prefix, + message); + else + msg_handler (scanner, + "%s%s%s", + token_string, + message_prefix, + message); + } + + g_free (token_string); + g_free (expected_string); +} + +static void +g_scanner_get_token_i (GScanner *scanner, + GTokenType *token_p, + GTokenValue *value_p, + guint *line_p, + guint *position_p) +{ + do + { + g_scanner_free_value (token_p, value_p); + g_scanner_get_token_ll (scanner, token_p, value_p, line_p, position_p); + } + while (((*token_p > 0 && *token_p < 256) && + strchr (scanner->config->cset_skip_characters, *token_p)) || + (*token_p == G_TOKEN_CHAR && + strchr (scanner->config->cset_skip_characters, value_p->v_char)) || + (*token_p == G_TOKEN_COMMENT_MULTI && + scanner->config->skip_comment_multi) || + (*token_p == G_TOKEN_COMMENT_SINGLE && + scanner->config->skip_comment_single)); + + switch (*token_p) + { + case G_TOKEN_IDENTIFIER: + if (scanner->config->identifier_2_string) + *token_p = G_TOKEN_STRING; + break; + + case G_TOKEN_SYMBOL: + if (scanner->config->symbol_2_token) + *token_p = (GTokenType) value_p->v_symbol; + break; + + case G_TOKEN_BINARY: + case G_TOKEN_OCTAL: + case G_TOKEN_HEX: + if (scanner->config->numbers_2_int) + *token_p = G_TOKEN_INT; + break; + + default: + break; + } + + if (*token_p == G_TOKEN_INT && + scanner->config->int_2_float) + { + *token_p = G_TOKEN_FLOAT; + value_p->v_float = value_p->v_int; + } + + errno = 0; +} + +static void +g_scanner_get_token_ll (GScanner *scanner, + GTokenType *token_p, + GTokenValue *value_p, + guint *line_p, + guint *position_p) +{ + GScannerConfig *config; + GTokenType token; + gboolean in_comment_multi; + gboolean in_comment_single; + gboolean in_string_sq; + gboolean in_string_dq; + GString *gstring; + GTokenValue value; + guchar ch; + + config = scanner->config; + (*value_p).v_int = 0; + + if ((scanner->text >= scanner->text_end && scanner->input_fd < 0) || + scanner->token == G_TOKEN_EOF) + { + *token_p = G_TOKEN_EOF; + return; + } + + in_comment_multi = FALSE; + in_comment_single = FALSE; + in_string_sq = FALSE; + in_string_dq = FALSE; + gstring = NULL; + + do /* while (ch != 0) */ + { + gboolean dotted_float = FALSE; + + ch = g_scanner_get_char (scanner, line_p, position_p); + + value.v_int = 0; + token = G_TOKEN_NONE; + + /* this is *evil*, but needed ;( + * we first check for identifier first character, because it + * might interfere with other key chars like slashes or numbers + */ + if (config->scan_identifier && + ch && strchr (config->cset_identifier_first, ch)) + goto identifier_precedence; + + switch (ch) + { + case 0: + token = G_TOKEN_EOF; + (*position_p)++; + /* ch = 0; */ + break; + + case '/': + if (!config->scan_comment_multi || + g_scanner_peek_next_char (scanner) != '*') + goto default_case; + g_scanner_get_char (scanner, line_p, position_p); + token = G_TOKEN_COMMENT_MULTI; + in_comment_multi = TRUE; + gstring = g_string_new (""); + while ((ch = g_scanner_get_char (scanner, line_p, position_p)) != 0) + { + if (ch == '*' && g_scanner_peek_next_char (scanner) == '/') + { + g_scanner_get_char (scanner, line_p, position_p); + in_comment_multi = FALSE; + break; + } + else + gstring = g_string_append_c (gstring, ch); + } + ch = 0; + break; + + case '\'': + if (!config->scan_string_sq) + goto default_case; + token = G_TOKEN_STRING; + in_string_sq = TRUE; + gstring = g_string_new (""); + while ((ch = g_scanner_get_char (scanner, line_p, position_p)) != 0) + { + if (ch == '\'') + { + in_string_sq = FALSE; + break; + } + else + gstring = g_string_append_c (gstring, ch); + } + ch = 0; + break; + + case '"': + if (!config->scan_string_dq) + goto default_case; + token = G_TOKEN_STRING; + in_string_dq = TRUE; + gstring = g_string_new (""); + while ((ch = g_scanner_get_char (scanner, line_p, position_p)) != 0) + { + if (ch == '"') + { + in_string_dq = FALSE; + break; + } + else + { + if (ch == '\\') + { + ch = g_scanner_get_char (scanner, line_p, position_p); + switch (ch) + { + guint i; + guint fchar; + + case 0: + break; + + case '\\': + gstring = g_string_append_c (gstring, '\\'); + break; + + case 'n': + gstring = g_string_append_c (gstring, '\n'); + break; + + case 't': + gstring = g_string_append_c (gstring, '\t'); + break; + + case 'r': + gstring = g_string_append_c (gstring, '\r'); + break; + + case 'b': + gstring = g_string_append_c (gstring, '\b'); + break; + + case 'f': + gstring = g_string_append_c (gstring, '\f'); + break; + + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + i = ch - '0'; + fchar = g_scanner_peek_next_char (scanner); + if (fchar >= '0' && fchar <= '7') + { + ch = g_scanner_get_char (scanner, line_p, position_p); + i = i * 8 + ch - '0'; + fchar = g_scanner_peek_next_char (scanner); + if (fchar >= '0' && fchar <= '7') + { + ch = g_scanner_get_char (scanner, line_p, position_p); + i = i * 8 + ch - '0'; + } + } + gstring = g_string_append_c (gstring, i); + break; + + default: + gstring = g_string_append_c (gstring, ch); + break; + } + } + else + gstring = g_string_append_c (gstring, ch); + } + } + ch = 0; + break; + + case '.': + if (!config->scan_float) + goto default_case; + token = G_TOKEN_FLOAT; + dotted_float = TRUE; + ch = g_scanner_get_char (scanner, line_p, position_p); + goto number_parsing; + + case '$': + if (!config->scan_hex_dollar) + goto default_case; + token = G_TOKEN_HEX; + ch = g_scanner_get_char (scanner, line_p, position_p); + goto number_parsing; + + case '0': + if (config->scan_octal) + token = G_TOKEN_OCTAL; + else + token = G_TOKEN_INT; + ch = g_scanner_peek_next_char (scanner); + if (config->scan_hex && (ch == 'x' || ch == 'X')) + { + token = G_TOKEN_HEX; + g_scanner_get_char (scanner, line_p, position_p); + ch = g_scanner_get_char (scanner, line_p, position_p); + if (ch == 0) + { + token = G_TOKEN_ERROR; + value.v_error = G_ERR_UNEXP_EOF; + (*position_p)++; + break; + } + if (g_scanner_char_2_num (ch, 16) < 0) + { + token = G_TOKEN_ERROR; + value.v_error = G_ERR_DIGIT_RADIX; + ch = 0; + break; + } + } + else if (config->scan_binary && (ch == 'b' || ch == 'B')) + { + token = G_TOKEN_BINARY; + g_scanner_get_char (scanner, line_p, position_p); + ch = g_scanner_get_char (scanner, line_p, position_p); + if (ch == 0) + { + token = G_TOKEN_ERROR; + value.v_error = G_ERR_UNEXP_EOF; + (*position_p)++; + break; + } + if (g_scanner_char_2_num (ch, 10) < 0) + { + token = G_TOKEN_ERROR; + value.v_error = G_ERR_NON_DIGIT_IN_CONST; + ch = 0; + break; + } + } + else + ch = '0'; + /* fall through */ + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + number_parsing: + { + gboolean in_number = TRUE; + gchar *endptr; + + if (token == G_TOKEN_NONE) + token = G_TOKEN_INT; + + gstring = g_string_new (dotted_float ? "0." : ""); + gstring = g_string_append_c (gstring, ch); + + do /* while (in_number) */ + { + gboolean is_E; + + is_E = token == G_TOKEN_FLOAT && (ch == 'e' || ch == 'E'); + + ch = g_scanner_peek_next_char (scanner); + + if (g_scanner_char_2_num (ch, 36) >= 0 || + (config->scan_float && ch == '.') || + (is_E && (ch == '+' || ch == '-'))) + { + ch = g_scanner_get_char (scanner, line_p, position_p); + + switch (ch) + { + case '.': + if (token != G_TOKEN_INT && token != G_TOKEN_OCTAL) + { + value.v_error = token == G_TOKEN_FLOAT ? G_ERR_FLOAT_MALFORMED : G_ERR_FLOAT_RADIX; + token = G_TOKEN_ERROR; + in_number = FALSE; + } + else + { + token = G_TOKEN_FLOAT; + gstring = g_string_append_c (gstring, ch); + } + break; + + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + gstring = g_string_append_c (gstring, ch); + break; + + case '-': + case '+': + if (token != G_TOKEN_FLOAT) + { + token = G_TOKEN_ERROR; + value.v_error = G_ERR_NON_DIGIT_IN_CONST; + in_number = FALSE; + } + else + gstring = g_string_append_c (gstring, ch); + break; + + case 'e': + case 'E': + if ((token != G_TOKEN_HEX && !config->scan_float) || + (token != G_TOKEN_HEX && + token != G_TOKEN_OCTAL && + token != G_TOKEN_FLOAT && + token != G_TOKEN_INT)) + { + token = G_TOKEN_ERROR; + value.v_error = G_ERR_NON_DIGIT_IN_CONST; + in_number = FALSE; + } + else + { + if (token != G_TOKEN_HEX) + token = G_TOKEN_FLOAT; + gstring = g_string_append_c (gstring, ch); + } + break; + + default: + if (token != G_TOKEN_HEX) + { + token = G_TOKEN_ERROR; + value.v_error = G_ERR_NON_DIGIT_IN_CONST; + in_number = FALSE; + } + else + gstring = g_string_append_c (gstring, ch); + break; + } + } + else + in_number = FALSE; + } + while (in_number); + + endptr = NULL; + switch (token) + { + case G_TOKEN_BINARY: + value.v_binary = strtol (gstring->str, &endptr, 2); + break; + + case G_TOKEN_OCTAL: + value.v_octal = strtol (gstring->str, &endptr, 8); + break; + + case G_TOKEN_INT: + value.v_int = strtol (gstring->str, &endptr, 10); + break; + + case G_TOKEN_FLOAT: + value.v_float = g_strtod (gstring->str, &endptr); + break; + + case G_TOKEN_HEX: + value.v_hex = strtol (gstring->str, &endptr, 16); + break; + + default: + break; + } + if (endptr && *endptr) + { + token = G_TOKEN_ERROR; + if (*endptr == 'e' || *endptr == 'E') + value.v_error = G_ERR_NON_DIGIT_IN_CONST; + else + value.v_error = G_ERR_DIGIT_RADIX; + } + g_string_free (gstring, TRUE); + gstring = NULL; + ch = 0; + } /* number_parsing:... */ + break; + + default: + default_case: + { + if (config->cpair_comment_single && + ch == config->cpair_comment_single[0]) + { + token = G_TOKEN_COMMENT_SINGLE; + in_comment_single = TRUE; + gstring = g_string_new (""); + ch = g_scanner_get_char (scanner, line_p, position_p); + while (ch != 0) + { + if (ch == config->cpair_comment_single[1]) + { + in_comment_single = FALSE; + ch = 0; + break; + } + + gstring = g_string_append_c (gstring, ch); + ch = g_scanner_get_char (scanner, line_p, position_p); + } + } + else if (config->scan_identifier && ch && + strchr (config->cset_identifier_first, ch)) + { + identifier_precedence: + + if (config->cset_identifier_nth && ch && + strchr (config->cset_identifier_nth, + g_scanner_peek_next_char (scanner))) + { + token = G_TOKEN_IDENTIFIER; + gstring = g_string_new (""); + gstring = g_string_append_c (gstring, ch); + do + { + ch = g_scanner_get_char (scanner, line_p, position_p); + gstring = g_string_append_c (gstring, ch); + ch = g_scanner_peek_next_char (scanner); + } + while (ch && strchr (config->cset_identifier_nth, ch)); + ch = 0; + } + else if (config->scan_identifier_1char) + { + token = G_TOKEN_IDENTIFIER; + value.v_identifier = g_new0 (gchar, 2); + value.v_identifier[0] = ch; + ch = 0; + } + } + if (ch) + { + if (config->char_2_token) + token = ch; + else + { + token = G_TOKEN_CHAR; + value.v_char = ch; + } + ch = 0; + } + } /* default_case:... */ + break; + } + g_assert (ch == 0 && token != G_TOKEN_NONE); /* paranoid */ + } + while (ch != 0); + + if (in_comment_multi || in_comment_single || + in_string_sq || in_string_dq) + { + token = G_TOKEN_ERROR; + if (gstring) + { + g_string_free (gstring, TRUE); + gstring = NULL; + } + (*position_p)++; + if (in_comment_multi || in_comment_single) + value.v_error = G_ERR_UNEXP_EOF_IN_COMMENT; + else /* (in_string_sq || in_string_dq) */ + value.v_error = G_ERR_UNEXP_EOF_IN_STRING; + } + + if (gstring) + { + value.v_string = gstring->str; + g_string_free (gstring, FALSE); + gstring = NULL; + } + + if (token == G_TOKEN_IDENTIFIER) + { + if (config->scan_symbols) + { + GScannerKey *key; + guint scope_id; + + scope_id = scanner->scope_id; + key = g_scanner_lookup_internal (scanner, scope_id, value.v_identifier); + if (!key && scope_id && scanner->config->scope_0_fallback) + key = g_scanner_lookup_internal (scanner, 0, value.v_identifier); + + if (key) + { + g_free (value.v_identifier); + token = G_TOKEN_SYMBOL; + value.v_symbol = key->value; + } + } + + if (token == G_TOKEN_IDENTIFIER && + config->scan_identifier_NULL && + strlen (value.v_identifier) == 4) + { + gchar *null_upper = "NULL"; + gchar *null_lower = "null"; + + if (scanner->config->case_sensitive) + { + if (value.v_identifier[0] == null_upper[0] && + value.v_identifier[1] == null_upper[1] && + value.v_identifier[2] == null_upper[2] && + value.v_identifier[3] == null_upper[3]) + token = G_TOKEN_IDENTIFIER_NULL; + } + else + { + if ((value.v_identifier[0] == null_upper[0] || + value.v_identifier[0] == null_lower[0]) && + (value.v_identifier[1] == null_upper[1] || + value.v_identifier[1] == null_lower[1]) && + (value.v_identifier[2] == null_upper[2] || + value.v_identifier[2] == null_lower[2]) && + (value.v_identifier[3] == null_upper[3] || + value.v_identifier[3] == null_lower[3])) + token = G_TOKEN_IDENTIFIER_NULL; + } + } + } + + *token_p = token; + *value_p = value; +} diff --git a/graf2d/win32gdk/gdk/src/glib/gscanner.h b/graf2d/win32gdk/gdk/src/glib/gscanner.h index 8cee79b414e..951d3ff20d0 100644 --- a/graf2d/win32gdk/gdk/src/glib/gscanner.h +++ b/graf2d/win32gdk/gdk/src/glib/gscanner.h @@ -27,7 +27,7 @@ #ifndef __G_SCANNER_H__ #define __G_SCANNER_H__ -#include <ghash.h> +#include <glib/ghash.h> G_BEGIN_DECLS @@ -168,8 +168,8 @@ struct _GScanner /* name of input stream, featured by the default message handler */ const gchar *input_name; - /* data pointer for derived structures */ - gpointer derived_data; + /* quarked data */ + GData *qdata; /* link into the scanner configuration */ GScannerConfig *config; @@ -198,7 +198,7 @@ struct _GScanner GScannerMsgFunc msg_handler; }; -GScanner* g_scanner_new (GScannerConfig *config_templ); +GScanner* g_scanner_new (const GScannerConfig *config_templ); void g_scanner_destroy (GScanner *scanner); void g_scanner_input_file (GScanner *scanner, gint input_fd); @@ -244,7 +244,6 @@ void g_scanner_error (GScanner *scanner, void g_scanner_warn (GScanner *scanner, const gchar *format, ...) G_GNUC_PRINTF (2,3); -gint g_scanner_stat_mode (const gchar *filename); /* keep downward source compatibility */ #define g_scanner_add_symbol( scanner, symbol, value ) G_STMT_START { \ g_scanner_scope_add_symbol ((scanner), 0, (symbol), (value)); \ @@ -256,10 +255,14 @@ gint g_scanner_stat_mode (const gchar *filename); g_scanner_scope_foreach_symbol ((scanner), 0, (func), (data)); \ } G_STMT_END +#ifndef G_DISABLE_DEPRECATED + /* The following two functions are deprecated and will be removed in * the next major release. They do no good. */ -void g_scanner_freeze_symbol_table (GScanner *scanner); -void g_scanner_thaw_symbol_table (GScanner *scanner); +#define g_scanner_freeze_symbol_table(scanner) ((void)0) +#define g_scanner_thaw_symbol_table(scanner) ((void)0) + +#endif /* G_DISABLE_DEPRECATED */ G_END_DECLS diff --git a/graf2d/win32gdk/gdk/src/glib/gshell.c b/graf2d/win32gdk/gdk/src/glib/gshell.c new file mode 100644 index 00000000000..3f6134b6be8 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gshell.c @@ -0,0 +1,658 @@ +/* gshell.c - Shell-related utilities + * + * Copyright 2000 Red Hat, Inc. + * g_execvpe implementation based on GNU libc execvp: + * Copyright 1991, 92, 95, 96, 97, 98, 99 Free Software Foundation, Inc. + * + * GLib is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * GLib is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with GLib; see the file COPYING.LIB. If not, write + * to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#include "glib.h" +#include <string.h> + +#ifdef _ +#warning "FIXME remove gettext hack" +#endif + +#include "glibintl.h" + +GQuark +g_shell_error_quark (void) +{ + static GQuark quark = 0; + if (quark == 0) + quark = g_quark_from_static_string ("g-shell-error-quark"); + return quark; +} + +/* Single quotes preserve the literal string exactly. escape + * sequences are not allowed; not even \' - if you want a ' + * in the quoted text, you have to do something like 'foo'\''bar' + * + * Double quotes allow $ ` " \ and newline to be escaped with backslash. + * Otherwise double quotes preserve things literally. + */ + +static gboolean +unquote_string_inplace (gchar* str, gchar** end, GError** err) +{ + gchar* dest; + gchar* s; + gchar quote_char; + + g_return_val_if_fail(end != NULL, FALSE); + g_return_val_if_fail(err == NULL || *err == NULL, FALSE); + g_return_val_if_fail(str != NULL, FALSE); + + dest = s = str; + + quote_char = *s; + + if (!(*s == '"' || *s == '\'')) + { + if (err) + *err = g_error_new(G_SHELL_ERROR, + G_SHELL_ERROR_BAD_QUOTING, + _("Quoted text doesn't begin with a quotation mark")); + *end = str; + return FALSE; + } + + /* Skip the initial quote mark */ + ++s; + + if (quote_char == '"') + { + while (*s) + { + g_assert(s > dest); /* loop invariant */ + + switch (*s) + { + case '"': + /* End of the string, return now */ + *dest = '\0'; + ++s; + *end = s; + return TRUE; + break; + + case '\\': + /* Possible escaped quote or \ */ + ++s; + switch (*s) + { + case '"': + case '\\': + case '`': + case '$': + case '\n': + *dest = *s; + ++s; + ++dest; + break; + + default: + /* not an escaped char */ + *dest = '\\'; + ++dest; + /* ++s already done. */ + break; + } + break; + + default: + *dest = *s; + ++dest; + ++s; + break; + } + + g_assert(s > dest); /* loop invariant */ + } + } + else + { + while (*s) + { + g_assert(s > dest); /* loop invariant */ + + if (*s == '\'') + { + /* End of the string, return now */ + *dest = '\0'; + ++s; + *end = s; + return TRUE; + } + else + { + *dest = *s; + ++dest; + ++s; + } + + g_assert(s > dest); /* loop invariant */ + } + } + + /* If we reach here this means the close quote was never encountered */ + + *dest = '\0'; + + if (err) + *err = g_error_new(G_SHELL_ERROR, + G_SHELL_ERROR_BAD_QUOTING, + _("Unmatched quotation mark in command line or other shell-quoted text")); + *end = s; + return FALSE; +} + +/** + * g_shell_quote: + * @unquoted_string: a literal string + * + * Quotes a string so that the shell (/bin/sh) will interpret the + * quoted string to mean @unquoted_string. If you pass a filename to + * the shell, for example, you should first quote it with this + * function. The return value must be freed with g_free(). The + * quoting style used is undefined (single or double quotes may be + * used). + * + * Return value: quoted string + **/ +gchar* +g_shell_quote (const gchar *unquoted_string) +{ + /* We always use single quotes, because the algorithm is cheesier. + * We could use double if we felt like it, that might be more + * human-readable. + */ + + const gchar *p; + GString *dest; + + g_return_val_if_fail (unquoted_string != NULL, NULL); + + dest = g_string_new ("'"); + + p = unquoted_string; + + /* could speed this up a lot by appending chunks of text at a + * time. + */ + while (*p) + { + /* Replace literal ' with a close ', a \', and a open ' */ + if (*p == '\'') + g_string_append (dest, "'\\''"); + else + g_string_append_c (dest, *p); + + ++p; + } + + /* close the quote */ + g_string_append_c (dest, '\''); + + return g_string_free (dest, FALSE); +} + +/** + * g_shell_unquote: + * @quoted_string: shell-quoted string + * @error: error return location or NULL + * + * Unquotes a string as the shell (/bin/sh) would. Only handles + * quotes; if a string contains file globs, arithmetic operators, + * variables, backticks, redirections, or other special-to-the-shell + * features, the result will be different from the result a real shell + * would produce (the variables, backticks, etc. will be passed + * through literally instead of being expanded). This function is + * guaranteed to succeed if applied to the result of + * g_shell_quote(). If it fails, it returns NULL and sets the + * error. The @quoted_string need not actually contain quoted or + * escaped text; g_shell_unquote() simply goes through the string and + * unquotes/unescapes anything that the shell would. Both single and + * double quotes are handled, as are escapes including escaped + * newlines. The return value must be freed with g_free(). Possible + * errors are in the #G_SHELL_ERROR domain. + * + * Shell quoting rules are a bit strange. Single quotes preserve the + * literal string exactly. escape sequences are not allowed; not even + * \' - if you want a ' in the quoted text, you have to do something + * like 'foo'\''bar'. Double quotes allow $, `, ", \, and newline to + * be escaped with backslash. Otherwise double quotes preserve things + * literally. + * + * Return value: an unquoted string + **/ +gchar* +g_shell_unquote (const gchar *quoted_string, + GError **error) +{ + gchar *unquoted; + gchar *end; + gchar *start; + GString *retval; + + g_return_val_if_fail (quoted_string != NULL, NULL); + + unquoted = g_strdup (quoted_string); + + start = unquoted; + end = unquoted; + retval = g_string_new (""); + + /* The loop allows cases such as + * "foo"blah blah'bar'woo foo"baz"la la la\'\''foo' + */ + while (*start) + { + /* Append all non-quoted chars, honoring backslash escape + */ + + while (*start && !(*start == '"' || *start == '\'')) + { + if (*start == '\\') + { + /* all characters can get escaped by backslash, + * except newline, which is removed if it follows + * a backslash outside of quotes + */ + + ++start; + if (*start) + { + if (*start != '\n') + g_string_append_c (retval, *start); + ++start; + } + } + else + { + g_string_append_c (retval, *start); + ++start; + } + } + + if (*start) + { + if (!unquote_string_inplace (start, &end, error)) + { + goto error; + } + else + { + g_string_append (retval, start); + start = end; + } + } + } + + return g_string_free (retval, FALSE); + + error: + g_assert (error == NULL || *error != NULL); + + g_free (unquoted); + g_string_free (retval, TRUE); + return NULL; +} + +/* g_parse_argv() does a semi-arbitrary weird subset of the way + * the shell parses a command line. We don't do variable expansion, + * don't understand that operators are tokens, don't do tilde expansion, + * don't do command substitution, no arithmetic expansion, IFS gets ignored, + * don't do filename globs, don't remove redirection stuff, etc. + * + * READ THE UNIX98 SPEC on "Shell Command Language" before changing + * the behavior of this code. + * + * Steps to parsing the argv string: + * + * - tokenize the string (but since we ignore operators, + * our tokenization may diverge from what the shell would do) + * note that tokenization ignores the internals of a quoted + * word and it always splits on spaces, not on IFS even + * if we used IFS. We also ignore "end of input indicator" + * (I guess this is control-D?) + * + * Tokenization steps, from UNIX98 with operator stuff removed, + * are: + * + * 1) "If the current character is backslash, single-quote or + * double-quote (\, ' or ") and it is not quoted, it will affect + * quoting for subsequent characters up to the end of the quoted + * text. The rules for quoting are as described in Quoting + * . During token recognition no substitutions will be actually + * performed, and the result token will contain exactly the + * characters that appear in the input (except for newline + * character joining), unmodified, including any embedded or + * enclosing quotes or substitution operators, between the quote + * mark and the end of the quoted text. The token will not be + * delimited by the end of the quoted field." + * + * 2) "If the current character is an unquoted newline character, + * the current token will be delimited." + * + * 3) "If the current character is an unquoted blank character, any + * token containing the previous character is delimited and the + * current character will be discarded." + * + * 4) "If the previous character was part of a word, the current + * character will be appended to that word." + * + * 5) "If the current character is a "#", it and all subsequent + * characters up to, but excluding, the next newline character + * will be discarded as a comment. The newline character that + * ends the line is not considered part of the comment. The + * "#" starts a comment only when it is at the beginning of a + * token. Since the search for the end-of-comment does not + * consider an escaped newline character specially, a comment + * cannot be continued to the next line." + * + * 6) "The current character will be used as the start of a new word." + * + * + * - for each token (word), perform portions of word expansion, namely + * field splitting (using default whitespace IFS) and quote + * removal. Field splitting may increase the number of words. + * Quote removal does not increase the number of words. + * + * "If the complete expansion appropriate for a word results in an + * empty field, that empty field will be deleted from the list of + * fields that form the completely expanded command, unless the + * original word contained single-quote or double-quote characters." + * - UNIX98 spec + * + * + */ + +static inline void +ensure_token (GString **token) +{ + if (*token == NULL) + *token = g_string_new (""); +} + +static void +delimit_token (GString **token, + GSList **retval) +{ + if (*token == NULL) + return; + + *retval = g_slist_prepend (*retval, g_string_free (*token, FALSE)); + + *token = NULL; +} + +static GSList* +tokenize_command_line (const gchar *command_line, + GError **error) +{ + gchar current_quote; + const gchar *p; + GString *current_token = NULL; + GSList *retval = NULL; + + current_quote = '\0'; + p = command_line; + + while (*p) + { + if (current_quote == '\\') + { + if (*p == '\n') + { + /* we append nothing; backslash-newline become nothing */ + } + else + { + /* we append the backslash and the current char, + * to be interpreted later after tokenization + */ + ensure_token (¤t_token); + g_string_append_c (current_token, '\\'); + g_string_append_c (current_token, *p); + } + + current_quote = '\0'; + } + else if (current_quote == '#') + { + /* Discard up to and including next newline */ + while (*p && *p != '\n') + ++p; + + current_quote = '\0'; + + if (*p == '\0') + break; + } + else if (current_quote) + { + if (*p == current_quote && + /* check that it isn't an escaped double quote */ + !(current_quote == '"' && p != command_line && *(p - 1) == '\\')) + { + /* close the quote */ + current_quote = '\0'; + } + + /* Everything inside quotes, and the close quote, + * gets appended literally. + */ + + ensure_token (¤t_token); + g_string_append_c (current_token, *p); + } + else + { + switch (*p) + { + case '\n': + delimit_token (¤t_token, &retval); + break; + + case ' ': + case '\t': + /* If the current token contains the previous char, delimit + * the current token. A nonzero length + * token should always contain the previous char. + */ + if (current_token && + current_token->len > 0) + { + delimit_token (¤t_token, &retval); + } + + /* discard all unquoted blanks (don't add them to a token) */ + break; + + + /* single/double quotes are appended to the token, + * escapes are maybe appended next time through the loop, + * comment chars are never appended. + */ + + case '\'': + case '"': + ensure_token (¤t_token); + g_string_append_c (current_token, *p); + + /* FALL THRU */ + + case '#': + case '\\': + current_quote = *p; + break; + + default: + /* Combines rules 4) and 6) - if we have a token, append to it, + * otherwise create a new token. + */ + ensure_token (¤t_token); + g_string_append_c (current_token, *p); + break; + } + } + + ++p; + } + + delimit_token (¤t_token, &retval); + + if (current_quote) + { + if (current_quote == '\\') + g_set_error (error, + G_SHELL_ERROR, + G_SHELL_ERROR_BAD_QUOTING, + _("Text ended just after a '\' character." + " (The text was '%s')"), + command_line); + else + g_set_error (error, + G_SHELL_ERROR, + G_SHELL_ERROR_BAD_QUOTING, + _("Text ended before matching quote was found for %c." + " (The text was '%s')"), + current_quote, command_line); + + goto error; + } + + if (retval == NULL) + { + g_set_error (error, + G_SHELL_ERROR, + G_SHELL_ERROR_EMPTY_STRING, + _("Text was empty (or contained only whitespace)")); + + goto error; + } + + /* we appended backward */ + retval = g_slist_reverse (retval); + + return retval; + + error: + g_assert (error == NULL || *error != NULL); + + if (retval) + { + g_slist_foreach (retval, (GFunc)g_free, NULL); + g_slist_free (retval); + } + + return NULL; +} + +/** + * g_shell_parse_argv: + * @command_line: command line to parse + * @argcp: return location for number of args + * @argvp: return location for array of args + * @error: return location for error + * + * Parses a command line into an argument vector, in much the same way + * the shell would, but without many of the expansions the shell would + * perform (variable expansion, globs, operators, filename expansion, + * etc. are not supported). The results are defined to be the same as + * those you would get from a UNIX98 /bin/sh, as long as the input + * contains none of the unsupported shell expansions. If the input + * does contain such expansions, they are passed through + * literally. Possible errors are those from the #G_SHELL_ERROR + * domain. + * + * Return value: TRUE on success, FALSE if error set + **/ +gboolean +g_shell_parse_argv (const gchar *command_line, + gint *argcp, + gchar ***argvp, + GError **error) +{ + /* Code based on poptParseArgvString() from libpopt */ + gint argc = 0; + gchar **argv = NULL; + GSList *tokens = NULL; + gint i; + GSList *tmp_list; + + g_return_val_if_fail (command_line != NULL, FALSE); + + tokens = tokenize_command_line (command_line, error); + if (tokens == NULL) + return FALSE; + + /* Because we can't have introduced any new blank space into the + * tokens (we didn't do any new expansions), we don't need to + * perform field splitting. If we were going to honor IFS or do any + * expansions, we would have to do field splitting on each word + * here. Also, if we were going to do any expansion we would need to + * remove any zero-length words that didn't contain quotes + * originally; but since there's no expansion we know all words have + * nonzero length, unless they contain quotes. + * + * So, we simply remove quotes, and don't do any field splitting or + * empty word removal, since we know there was no way to introduce + * such things. + */ + + argc = g_slist_length (tokens); + argv = g_new0 (gchar*, argc + 1); + i = 0; + tmp_list = tokens; + while (tmp_list) + { + argv[i] = g_shell_unquote (tmp_list->data, error); + + /* Since we already checked that quotes matched up in the + * tokenizer, this shouldn't be possible to reach I guess. + */ + if (argv[i] == NULL) + goto failed; + + tmp_list = g_slist_next (tmp_list); + ++i; + } + + g_slist_foreach (tokens, (GFunc)g_free, NULL); + g_slist_free (tokens); + + if (argcp) + *argcp = argc; + + if (argvp) + *argvp = argv; + else + g_strfreev (argv); + + return TRUE; + + failed: + + g_assert (error == NULL || *error != NULL); + g_strfreev (argv); + g_slist_foreach (tokens, (GFunc) g_free, NULL); + g_slist_free (tokens); + + return FALSE; +} diff --git a/graf2d/win32gdk/gdk/src/glib/gshell.h b/graf2d/win32gdk/gdk/src/glib/gshell.h index c433cbaeb48..b3f9d914807 100644 --- a/graf2d/win32gdk/gdk/src/glib/gshell.h +++ b/graf2d/win32gdk/gdk/src/glib/gshell.h @@ -21,7 +21,7 @@ #ifndef __G_SHELL_H__ #define __G_SHELL_H__ -#include <gerror.h> +#include <glib/gerror.h> G_BEGIN_DECLS diff --git a/graf2d/win32gdk/gdk/src/glib/gslist.c b/graf2d/win32gdk/gdk/src/glib/gslist.c new file mode 100644 index 00000000000..18e08e42dc6 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gslist.c @@ -0,0 +1,767 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include "glib.h" + + +#ifndef DISABLE_MEM_POOLS +struct _GAllocator /* from gmem.c */ +{ + gchar *name; + guint16 n_preallocs; + guint is_unused : 1; + guint type : 4; + GAllocator *last; + GMemChunk *mem_chunk; + GSList *free_lists; /* implementation specific */ +}; + +G_LOCK_DEFINE_STATIC (current_allocator); +static GAllocator *current_allocator = NULL; + +/* HOLDS: current_allocator_lock */ +static void +g_slist_validate_allocator (GAllocator *allocator) +{ + g_return_if_fail (allocator != NULL); + g_return_if_fail (allocator->is_unused == TRUE); + + if (allocator->type != G_ALLOCATOR_SLIST) + { + allocator->type = G_ALLOCATOR_SLIST; + if (allocator->mem_chunk) + { + g_mem_chunk_destroy (allocator->mem_chunk); + allocator->mem_chunk = NULL; + } + } + + if (!allocator->mem_chunk) + { + allocator->mem_chunk = g_mem_chunk_new (allocator->name, + sizeof (GSList), + sizeof (GSList) * allocator->n_preallocs, + G_ALLOC_ONLY); + allocator->free_lists = NULL; + } + + allocator->is_unused = FALSE; +} + +void +g_slist_push_allocator (GAllocator *allocator) +{ + G_LOCK (current_allocator); + g_slist_validate_allocator (allocator); + allocator->last = current_allocator; + current_allocator = allocator; + G_UNLOCK (current_allocator); +} + +void +g_slist_pop_allocator (void) +{ + G_LOCK (current_allocator); + if (current_allocator) + { + GAllocator *allocator; + + allocator = current_allocator; + current_allocator = allocator->last; + allocator->last = NULL; + allocator->is_unused = TRUE; + } + G_UNLOCK (current_allocator); +} + +static inline GSList* +_g_slist_alloc (void) +{ + GSList *list; + + G_LOCK (current_allocator); + if (!current_allocator) + { + GAllocator *allocator = g_allocator_new ("GLib default GSList allocator", + 128); + g_slist_validate_allocator (allocator); + allocator->last = NULL; + current_allocator = allocator; + } + if (!current_allocator->free_lists) + { + list = g_chunk_new (GSList, current_allocator->mem_chunk); + list->data = NULL; + } + else + { + if (current_allocator->free_lists->data) + { + list = current_allocator->free_lists->data; + current_allocator->free_lists->data = list->next; + list->data = NULL; + } + else + { + list = current_allocator->free_lists; + current_allocator->free_lists = list->next; + } + } + G_UNLOCK (current_allocator); + + list->next = NULL; + + return list; +} + +GSList* +g_slist_alloc (void) +{ + return _g_slist_alloc (); +} + +void +g_slist_free (GSList *list) +{ + if (list) + { + GSList *last_node = list; + +#ifdef ENABLE_GC_FRIENDLY + while (last_node->next) + { + last_node->data = NULL; + last_node = last_node->next; + } + last_node->data = NULL; +#else /* !ENABLE_GC_FRIENDLY */ + list->data = list->next; +#endif /* ENABLE_GC_FRIENDLY */ + + G_LOCK (current_allocator); + last_node->next = current_allocator->free_lists; + current_allocator->free_lists = list; + G_UNLOCK (current_allocator); + } +} + +static inline void +_g_slist_free_1 (GSList *list) +{ + if (list) + { + list->data = NULL; + G_LOCK (current_allocator); + list->next = current_allocator->free_lists; + current_allocator->free_lists = list; + G_UNLOCK (current_allocator); + } +} + +void +g_slist_free_1 (GSList *list) +{ + _g_slist_free_1 (list); +} +#else /* DISABLE_MEM_POOLS */ + +#define _g_slist_alloc g_slist_alloc +GSList* +g_slist_alloc (void) +{ + GSList *list; + + list = g_new0 (GSList, 1); + + return list; +} + +void +g_slist_free (GSList *list) +{ + GSList *last; + + while (list) + { + last = list; + list = list->next; + g_free (last); + } +} + +#define _g_slist_free_1 g_slist_free_1 +void +g_slist_free_1 (GSList *list) +{ + g_free (list); +} + +#endif + +GSList* +g_slist_append (GSList *list, + gpointer data) +{ + GSList *new_list; + GSList *last; + + new_list = _g_slist_alloc (); + new_list->data = data; + + if (list) + { + last = g_slist_last (list); + /* g_assert (last != NULL); */ + last->next = new_list; + + return list; + } + else + return new_list; +} + +GSList* +g_slist_prepend (GSList *list, + gpointer data) +{ + GSList *new_list; + + new_list = _g_slist_alloc (); + new_list->data = data; + new_list->next = list; + + return new_list; +} + +GSList* +g_slist_insert (GSList *list, + gpointer data, + gint position) +{ + GSList *prev_list; + GSList *tmp_list; + GSList *new_list; + + if (position < 0) + return g_slist_append (list, data); + else if (position == 0) + return g_slist_prepend (list, data); + + new_list = _g_slist_alloc (); + new_list->data = data; + + if (!list) + return new_list; + + prev_list = NULL; + tmp_list = list; + + while ((position-- > 0) && tmp_list) + { + prev_list = tmp_list; + tmp_list = tmp_list->next; + } + + if (prev_list) + { + new_list->next = prev_list->next; + prev_list->next = new_list; + } + else + { + new_list->next = list; + list = new_list; + } + + return list; +} + +GSList* +g_slist_insert_before (GSList *slist, + GSList *sibling, + gpointer data) +{ + if (!slist) + { + slist = g_slist_alloc (); + slist->data = data; + g_return_val_if_fail (sibling == NULL, slist); + return slist; + } + else + { + GSList *node, *last = NULL; + + for (node = slist; node; last = node, node = last->next) + if (node == sibling) + break; + if (!last) + { + node = g_slist_alloc (); + node->data = data; + node->next = slist; + + return node; + } + else + { + node = g_slist_alloc (); + node->data = data; + node->next = last->next; + last->next = node; + + return slist; + } + } +} + +GSList * +g_slist_concat (GSList *list1, GSList *list2) +{ + if (list2) + { + if (list1) + g_slist_last (list1)->next = list2; + else + list1 = list2; + } + + return list1; +} + +GSList* +g_slist_remove (GSList *list, + gconstpointer data) +{ + GSList *tmp, *prev = NULL; + + tmp = list; + while (tmp) + { + if (tmp->data == data) + { + if (prev) + prev->next = tmp->next; + else + list = tmp->next; + + g_slist_free_1 (tmp); + break; + } + prev = tmp; + tmp = prev->next; + } + + return list; +} + +GSList* +g_slist_remove_all (GSList *list, + gconstpointer data) +{ + GSList *tmp, *prev = NULL; + + tmp = list; + while (tmp) + { + if (tmp->data == data) + { + GSList *next = tmp->next; + + if (prev) + prev->next = next; + else + list = next; + + g_slist_free_1 (tmp); + tmp = next; + } + else + { + prev = tmp; + tmp = prev->next; + } + } + + return list; +} + +static inline GSList* +_g_slist_remove_link (GSList *list, + GSList *link) +{ + GSList *tmp; + GSList *prev; + + prev = NULL; + tmp = list; + + while (tmp) + { + if (tmp == link) + { + if (prev) + prev->next = tmp->next; + if (list == tmp) + list = list->next; + + tmp->next = NULL; + break; + } + + prev = tmp; + tmp = tmp->next; + } + + return list; +} + +GSList* +g_slist_remove_link (GSList *list, + GSList *link) +{ + return _g_slist_remove_link (list, link); +} + +GSList* +g_slist_delete_link (GSList *list, + GSList *link) +{ + list = _g_slist_remove_link (list, link); + _g_slist_free_1 (link); + + return list; +} + +GSList* +g_slist_copy (GSList *list) +{ + GSList *new_list = NULL; + + if (list) + { + GSList *last; + + new_list = _g_slist_alloc (); + new_list->data = list->data; + last = new_list; + list = list->next; + while (list) + { + last->next = _g_slist_alloc (); + last = last->next; + last->data = list->data; + list = list->next; + } + } + + return new_list; +} + +GSList* +g_slist_reverse (GSList *list) +{ + GSList *prev = NULL; + + while (list) + { + GSList *next = list->next; + + list->next = prev; + + prev = list; + list = next; + } + + return prev; +} + +GSList* +g_slist_nth (GSList *list, + guint n) +{ + while (n-- > 0 && list) + list = list->next; + + return list; +} + +gpointer +g_slist_nth_data (GSList *list, + guint n) +{ + while (n-- > 0 && list) + list = list->next; + + return list ? list->data : NULL; +} + +GSList* +g_slist_find (GSList *list, + gconstpointer data) +{ + while (list) + { + if (list->data == data) + break; + list = list->next; + } + + return list; +} + +GSList* +g_slist_find_custom (GSList *list, + gconstpointer data, + GCompareFunc func) +{ + g_return_val_if_fail (func != NULL, list); + + while (list) + { + if (! func (list->data, data)) + return list; + list = list->next; + } + + return NULL; +} + +gint +g_slist_position (GSList *list, + GSList *link) +{ + gint i; + + i = 0; + while (list) + { + if (list == link) + return i; + i++; + list = list->next; + } + + return -1; +} + +gint +g_slist_index (GSList *list, + gconstpointer data) +{ + gint i; + + i = 0; + while (list) + { + if (list->data == data) + return i; + i++; + list = list->next; + } + + return -1; +} + +GSList* +g_slist_last (GSList *list) +{ + if (list) + { + while (list->next) + list = list->next; + } + + return list; +} + +guint +g_slist_length (GSList *list) +{ + guint length; + + length = 0; + while (list) + { + length++; + list = list->next; + } + + return length; +} + +void +g_slist_foreach (GSList *list, + GFunc func, + gpointer user_data) +{ + while (list) + { + GSList *next = list->next; + (*func) (list->data, user_data); + list = next; + } +} + +GSList* +g_slist_insert_sorted (GSList *list, + gpointer data, + GCompareFunc func) +{ + GSList *tmp_list = list; + GSList *prev_list = NULL; + GSList *new_list; + gint cmp; + + g_return_val_if_fail (func != NULL, list); + + if (!list) + { + new_list = _g_slist_alloc (); + new_list->data = data; + return new_list; + } + + cmp = (*func) (data, tmp_list->data); + + while ((tmp_list->next) && (cmp > 0)) + { + prev_list = tmp_list; + tmp_list = tmp_list->next; + cmp = (*func) (data, tmp_list->data); + } + + new_list = _g_slist_alloc (); + new_list->data = data; + + if ((!tmp_list->next) && (cmp > 0)) + { + tmp_list->next = new_list; + return list; + } + + if (prev_list) + { + prev_list->next = new_list; + new_list->next = tmp_list; + return list; + } + else + { + new_list->next = list; + return new_list; + } +} + +static GSList * +g_slist_sort_merge (GSList *l1, + GSList *l2, + GFunc compare_func, + gboolean use_data, + gpointer user_data) +{ + GSList list, *l; + gint cmp; + + l=&list; + + while (l1 && l2) + { + if (use_data) + cmp = ((GCompareDataFunc) compare_func) (l1->data, l2->data, user_data); + else + cmp = ((GCompareFunc) compare_func) (l1->data, l2->data); + + if (cmp <= 0) + { + l=l->next=l1; + l1=l1->next; + } + else + { + l=l->next=l2; + l2=l2->next; + } + } + l->next= l1 ? l1 : l2; + + return list.next; +} + +static GSList * +g_slist_sort_real (GSList *list, + GFunc compare_func, + gboolean use_data, + gpointer user_data) +{ + GSList *l1, *l2; + + if (!list) + return NULL; + if (!list->next) + return list; + + l1 = list; + l2 = list->next; + + while ((l2 = l2->next) != NULL) + { + if ((l2 = l2->next) == NULL) + break; + l1=l1->next; + } + l2 = l1->next; + l1->next = NULL; + + return g_slist_sort_merge (g_slist_sort_real (list, compare_func, use_data, user_data), + g_slist_sort_real (l2, compare_func, use_data, user_data), + compare_func, + use_data, + user_data); +} + +GSList * +g_slist_sort (GSList *list, + GCompareFunc compare_func) +{ + return g_slist_sort_real (list, (GFunc) compare_func, FALSE, NULL); +} + +GSList * +g_slist_sort_with_data (GSList *list, + GCompareDataFunc compare_func, + gpointer user_data) +{ + return g_slist_sort_real (list, (GFunc) compare_func, TRUE, user_data); +} diff --git a/graf2d/win32gdk/gdk/src/glib/gslist.h b/graf2d/win32gdk/gdk/src/glib/gslist.h index a31d0efc65e..32a3b245255 100644 --- a/graf2d/win32gdk/gdk/src/glib/gslist.h +++ b/graf2d/win32gdk/gdk/src/glib/gslist.h @@ -27,7 +27,7 @@ #ifndef __G_SLIST_H__ #define __G_SLIST_H__ -#include <gmem.h> +#include <glib/gmem.h> G_BEGIN_DECLS @@ -41,7 +41,7 @@ struct _GSList /* Singly linked lists */ -void g_slist_push_allocator (GAllocator *allocato); +void g_slist_push_allocator (GAllocator *allocator); void g_slist_pop_allocator (void); GSList* g_slist_alloc (void); void g_slist_free (GSList *list); @@ -63,6 +63,8 @@ GSList* g_slist_concat (GSList *list1, GSList *list2); GSList* g_slist_remove (GSList *list, gconstpointer data); +GSList* g_slist_remove_all (GSList *list, + gconstpointer data); GSList* g_slist_remove_link (GSList *list, GSList *link); GSList* g_slist_delete_link (GSList *list, @@ -88,7 +90,7 @@ void g_slist_foreach (GSList *list, GSList* g_slist_sort (GSList *list, GCompareFunc compare_func); GSList* g_slist_sort_with_data (GSList *list, - GCompareFuncData compare_func, + GCompareDataFunc compare_func, gpointer user_data); gpointer g_slist_nth_data (GSList *list, guint n); diff --git a/graf2d/win32gdk/gdk/src/glib/gspawn-win32-helper.c b/graf2d/win32gdk/gdk/src/glib/gspawn-win32-helper.c new file mode 100644 index 00000000000..59709b8d24c --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gspawn-win32-helper.c @@ -0,0 +1,231 @@ +/* gspawn-win32-helper.c - Helper program for process launching on Win32. + * + * Copyright 2000 Red Hat, Inc. + * Copyright 2000 Tor Lillqvist + * + * GLib is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * GLib is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with GLib; see the file COPYING.LIB. If not, write + * to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#undef G_LOG_DOMAIN +#include "glib.h" +#define GSPAWN_HELPER +#include "gspawn-win32.c" /* For shared definitions */ + +static GString *debugstring; + +static void +write_err_and_exit (gint fd, + gint msg) +{ + gint en = errno; + + if (debug) + { + debugstring = g_string_new (""); + g_string_append (debugstring, + g_strdup_printf ("writing error code %d and errno %d", + msg, en)); + MessageBox (NULL, debugstring->str, "gspawn-win32-helper", 0); + } + + write (fd, &msg, sizeof(msg)); + write (fd, &en, sizeof(en)); + + _exit (1); +} + +#ifdef __GNUC__ +# ifndef _stdcall +# define _stdcall __attribute__((stdcall)) +# endif +#endif + +/* We build gspawn-win32-helper.exe as a Windows GUI application + * to avoid any temporarily flashing console windows in case + * the gspawn function is invoked by a GUI program. Thus, no main() + * but a WinMain(). We do, however, still use argc and argv tucked + * away in the global __argc and __argv by the C runtime startup code. + */ + +int _stdcall +WinMain (struct HINSTANCE__ *hInstance, + struct HINSTANCE__ *hPrevInstance, + char *lpszCmdLine, + int nCmdShow) +{ + int child_err_report_fd; + int i; + int fd; + int mode; + gint zero = 0; + + SETUP_DEBUG(); + + if (debug) + { + debugstring = g_string_new (""); + + g_string_append (debugstring, + g_strdup_printf ("g-spawn-win32-helper: " + "argc = %d, argv: ", + __argc)); + for (i = 0; i < __argc; i++) + { + if (i > 0) + g_string_append (debugstring, " "); + g_string_append (debugstring, __argv[i]); + } + + MessageBox (NULL, debugstring->str, "gspawn-win32-helper", 0); + } + + g_assert (__argc >= ARG_COUNT); + + /* argv[ARG_CHILD_ERR_REPORT] is the file descriptor onto which + * write error messages. + */ + child_err_report_fd = atoi (__argv[ARG_CHILD_ERR_REPORT]); + + /* argv[ARG_STDIN..ARG_STDERR] are the file descriptors that should + * be dup2'd to stdin, stdout and stderr, '-' if the corresponding + * std* should be let alone, and 'z' if it should be connected to + * the bit bucket NUL:. + */ + if (__argv[ARG_STDIN][0] == '-') + ; /* Nothing */ + else if (__argv[ARG_STDIN][0] == 'z') + { + fd = open ("NUL:", O_RDONLY); + if (fd != 0) + { + dup2 (fd, 0); + close (fd); + } + } + else + { + fd = atoi (__argv[ARG_STDIN]); + if (fd != 0) + { + dup2 (fd, 0); + close (fd); + } + } + + if (__argv[ARG_STDOUT][0] == '-') + ; /* Nothing */ + else if (__argv[ARG_STDOUT][0] == 'z') + { + fd = open ("NUL:", O_WRONLY); + if (fd != 1) + { + dup2 (fd, 1); + close (fd); + } + } + else + { + fd = atoi (__argv[ARG_STDOUT]); + if (fd != 1) + { + dup2 (fd, 1); + close (fd); + } + } + + if (__argv[ARG_STDERR][0] == '-') + ; /* Nothing */ + else if (__argv[ARG_STDERR][0] == 'z') + { + fd = open ("NUL:", O_WRONLY); + if (fd != 2) + { + dup2 (fd, 2); + close (fd); + } + } + else + { + fd = atoi (__argv[ARG_STDERR]); + if (fd != 2) + { + dup2 (fd, 2); + close (fd); + } + } + + /* __argv[ARG_WORKING_DIRECTORY] is the directory in which to run the + * process. If "-", don't change directory. + */ + if (__argv[ARG_WORKING_DIRECTORY][0] == '-' && + __argv[ARG_WORKING_DIRECTORY][1] == 0) + ; /* Nothing */ + else if (chdir (__argv[ARG_WORKING_DIRECTORY]) < 0) + write_err_and_exit (child_err_report_fd, + CHILD_CHDIR_FAILED); + + /* __argv[ARG_CLOSE_DESCRIPTORS] is "y" if file descriptors from 3 + * upwards should be closed + */ + + if (__argv[ARG_CLOSE_DESCRIPTORS][0] == 'y') + for (i = 3; i < 1000; i++) /* FIXME real limit? */ + if (i != child_err_report_fd) + close (i); + + /* __argv[ARG_WAIT] is "w" to wait for the program to exit */ + + if (__argv[ARG_WAIT][0] == 'w') + mode = P_WAIT; + else + mode = P_NOWAIT; + + /* __argv[ARG_USE_PATH] is "y" to use PATH, otherwise not */ + + /* __argv[ARG_PROGRAM] is program file to run, + * __argv[ARG_PROGRAM+1]... is its __argv. + */ + + if (debug) + { + debugstring = g_string_new (""); + g_string_append (debugstring, + g_strdup_printf ("calling %s on program %s, __argv: ", + (__argv[ARG_USE_PATH][0] == 'y' ? + "spawnvp" : "spawnv"), + __argv[ARG_PROGRAM])); + i = ARG_PROGRAM+1; + while (__argv[i]) + g_string_append (debugstring, __argv[i++]); + MessageBox (NULL, debugstring->str, "gspawn-win32-helper", 0); + } + + if (__argv[ARG_USE_PATH][0] == 'y') + { + if (spawnvp (mode, __argv[ARG_PROGRAM], __argv+ARG_PROGRAM) < 0) + write_err_and_exit (child_err_report_fd, CHILD_SPAWN_FAILED); + } + else + { + if (spawnv (mode, __argv[ARG_PROGRAM], __argv+ARG_PROGRAM) < 0) + write_err_and_exit (child_err_report_fd, CHILD_SPAWN_FAILED); + } + write (child_err_report_fd, &zero, sizeof (zero)); + write (child_err_report_fd, &zero, sizeof (zero)); + Sleep (10000); + return 0; +} + diff --git a/graf2d/win32gdk/gdk/src/glib/gspawn-win32.c b/graf2d/win32gdk/gdk/src/glib/gspawn-win32.c new file mode 100644 index 00000000000..aa9e3072da1 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gspawn-win32.c @@ -0,0 +1,984 @@ +/* gspawn-win32.c - Process launching on Win32 + * + * Copyright 2000 Red Hat, Inc. + * + * GLib is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * GLib is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with GLib; see the file COPYING.LIB. If not, write + * to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Implementation details on Win32. + * + * - There is no way to set the no-inherit flag for + * a "file descriptor" in the MS C runtime. The flag is there, + * and the dospawn() function uses it, but unfortunately + * this flag can only be set when opening the file. + * - As there is no fork(), we cannot reliably change directory + * before starting the child process. (There might be several threads + * running, and the current directory is common for all threads.) + * + * Thus, we must in most cases use a helper program to handle closing + * of (inherited) file descriptors and changing of directory. In fact, + * we do it all the time. + */ + +/* Define this to get some logging all the time */ +/* #define G_SPAWN_WIN32_DEBUG */ + +#include "glib.h" + +#include <string.h> +#include <stdlib.h> +#include <stdio.h> + +#include <windows.h> +#include <errno.h> +#include <fcntl.h> +#include <io.h> +#include <process.h> +#include <direct.h> + +#include "glibintl.h" + +#ifdef G_SPAWN_WIN32_DEBUG + static int debug = 1; + #define SETUP_DEBUG() /* empty */ + +#else + static int debug = -1; + #define SETUP_DEBUG() \ + G_STMT_START \ + { \ + if (debug == -1) \ + { \ + if (getenv ("G_SPAWN_WIN32_DEBUG") != NULL) \ + debug = 1; \ + else \ + debug = 0; \ + } \ + } \ + G_STMT_END +#endif + +enum +{ + CHILD_NO_ERROR, + CHILD_CHDIR_FAILED, + CHILD_SPAWN_FAILED, +}; + +enum { + ARG_CHILD_ERR_REPORT = 1, + ARG_STDIN, + ARG_STDOUT, + ARG_STDERR, + ARG_WORKING_DIRECTORY, + ARG_CLOSE_DESCRIPTORS, + ARG_USE_PATH, + ARG_WAIT, + ARG_PROGRAM, + ARG_COUNT = ARG_PROGRAM +}; + +#ifndef GSPAWN_HELPER + +static gboolean make_pipe (gint p[2], + GError **error); +static gboolean fork_exec_with_pipes (gboolean dont_wait, + const gchar *working_directory, + gchar **argv, + gchar **envp, + gboolean close_descriptors, + gboolean search_path, + gboolean stdout_to_null, + gboolean stderr_to_null, + gboolean child_inherits_stdin, + GSpawnChildSetupFunc child_setup, + gpointer user_data, + gint *standard_input, + gint *standard_output, + gint *standard_error, + gint *exit_status, + GError **error); + +GQuark +g_spawn_error_quark (void) +{ + static GQuark quark = 0; + if (quark == 0) + quark = g_quark_from_static_string ("g-exec-error-quark"); + return quark; +} + +/** + * g_spawn_async: + * @working_directory: child's current working directory, or NULL to inherit parent's + * @argv: child's argument vector + * @envp: child's environment, or NULL to inherit parent's + * @flags: flags from #GSpawnFlags + * @child_setup: function to run in the child just before exec() + * @user_data: user data for @child_setup + * @child_pid: return location for child process ID, or NULL + * @error: return location for error + * + * See g_spawn_async_with_pipes() for a full description; this function + * simply calls the g_spawn_async_with_pipes() without any pipes. + * + * Return value: TRUE on success, FALSE if error is set + **/ +gboolean +g_spawn_async (const gchar *working_directory, + gchar **argv, + gchar **envp, + GSpawnFlags flags, + GSpawnChildSetupFunc child_setup, + gpointer user_data, + gint *child_pid, + GError **error) +{ + g_return_val_if_fail (argv != NULL, FALSE); + + return g_spawn_async_with_pipes (working_directory, + argv, envp, + flags, + child_setup, + user_data, + child_pid, + NULL, NULL, NULL, + error); +} + +/* Avoids a danger in threaded situations (calling close() + * on a file descriptor twice, and another thread has + * re-opened it since the first close) + */ +static gint +close_and_invalidate (gint *fd) +{ + gint ret; + + ret = close (*fd); + *fd = -1; + + return ret; +} + +typedef enum +{ + READ_FAILED = 0, /* FALSE */ + READ_OK, + READ_EOF +} ReadResult; + +static ReadResult +read_data (GString *str, + GIOChannel *iochannel, + GError **error) +{ + GIOError gioerror; + gint bytes; + gchar buf[4096]; + + again: + + gioerror = g_io_channel_read (iochannel, buf, sizeof (buf), &bytes); + + if (bytes == 0) + return READ_EOF; + else if (bytes > 0) + { + g_string_append_len (str, buf, bytes); + return READ_OK; + } + else if (gioerror == G_IO_ERROR_AGAIN) + goto again; + else if (gioerror != G_IO_ERROR_NONE) + { + g_set_error (error, + G_SPAWN_ERROR, + G_SPAWN_ERROR_READ, + _("Failed to read data from child process")); + + return READ_FAILED; + } + else + return READ_OK; +} + +/** + * g_spawn_sync: + * @working_directory: child's current working directory, or NULL to inherit parent's + * @argv: child's argument vector + * @envp: child's environment, or NULL to inherit parent's + * @flags: flags from #GSpawnFlags + * @child_setup: function to run in the child just before exec() + * @user_data: user data for @child_setup + * @standard_output: return location for child output + * @standard_error: return location for child error messages + * @exit_status: child exit status, as returned by waitpid() + * @error: return location for error + * + * Executes a child synchronously (waits for the child to exit before returning). + * All output from the child is stored in @standard_output and @standard_error, + * if those parameters are non-NULL. If @exit_status is non-NULL, the exit status + * of the child is stored there as it would be by waitpid(); standard UNIX + * macros such as WIFEXITED() and WEXITSTATUS() must be used to evaluate the + * exit status. If an error occurs, no data is returned in @standard_output, + * @standard_error, or @exit_status. + * + * This function calls g_spawn_async_with_pipes() internally; see that function + * for full details on the other parameters. + * + * Return value: TRUE on success, FALSE if an error was set. + **/ +gboolean +g_spawn_sync (const gchar *working_directory, + gchar **argv, + gchar **envp, + GSpawnFlags flags, + GSpawnChildSetupFunc child_setup, + gpointer user_data, + gchar **standard_output, + gchar **standard_error, + gint *exit_status, + GError **error) +{ + gint outpipe = -1; + gint errpipe = -1; + GIOChannel *outchannel = NULL; + GIOChannel *errchannel = NULL; + GPollFD outfd, errfd; + GPollFD fds[2]; + gint nfds; + gint outindex = -1; + gint errindex = -1; + gint ret; + GString *outstr = NULL; + GString *errstr = NULL; + gboolean failed; + gint status; + + g_return_val_if_fail (argv != NULL, FALSE); + g_return_val_if_fail (!(flags & G_SPAWN_DO_NOT_REAP_CHILD), FALSE); + g_return_val_if_fail (standard_output == NULL || + !(flags & G_SPAWN_STDOUT_TO_DEV_NULL), FALSE); + g_return_val_if_fail (standard_error == NULL || + !(flags & G_SPAWN_STDERR_TO_DEV_NULL), FALSE); + + /* Just to ensure segfaults if callers try to use + * these when an error is reported. + */ + if (standard_output) + *standard_output = NULL; + + if (standard_error) + *standard_error = NULL; + + if (!fork_exec_with_pipes (FALSE, + working_directory, + argv, + envp, + !(flags & G_SPAWN_LEAVE_DESCRIPTORS_OPEN), + (flags & G_SPAWN_SEARCH_PATH) != 0, + (flags & G_SPAWN_STDOUT_TO_DEV_NULL) != 0, + (flags & G_SPAWN_STDERR_TO_DEV_NULL) != 0, + (flags & G_SPAWN_CHILD_INHERITS_STDIN) != 0, + child_setup, + user_data, + NULL, + standard_output ? &outpipe : NULL, + standard_error ? &errpipe : NULL, + &status, + error)) + return FALSE; + + /* Read data from child. */ + + failed = FALSE; + + if (outpipe >= 0) + { + outstr = g_string_new (""); + outchannel = g_io_channel_win32_new_fd (outpipe); + g_io_channel_win32_make_pollfd (outchannel, + G_IO_IN | G_IO_ERR | G_IO_HUP, + &outfd); + } + + if (errpipe >= 0) + { + errstr = g_string_new (""); + errchannel = g_io_channel_win32_new_fd (errpipe); + g_io_channel_win32_make_pollfd (errchannel, + G_IO_IN | G_IO_ERR | G_IO_HUP, + &errfd); + } + + /* Read data until we get EOF on both pipes. */ + while (!failed && + (outpipe >= 0 || + errpipe >= 0)) + { + nfds = 0; + if (outpipe >= 0) + { + fds[nfds] = outfd; + outindex = nfds; + nfds++; + } + if (errpipe >= 0) + { + fds[nfds] = errfd; + errindex = nfds; + nfds++; + } + + if (debug) + g_print ("%s:g_spawn_sync: calling g_io_channel_win32_poll, nfds=%d\n", + __FILE__, nfds); + + ret = g_io_channel_win32_poll (fds, nfds, -1); + + if (ret < 0) + { + failed = TRUE; + + g_set_error (error, + G_SPAWN_ERROR, + G_SPAWN_ERROR_READ, + _("Unexpected error in g_io_channel_win32_poll() reading data from a child process")); + + break; + } + + if (outpipe >= 0 && (fds[outindex].revents & G_IO_IN)) + { + switch (read_data (outstr, outchannel, error)) + { + case READ_FAILED: + if (debug) + g_print ("g_spawn_sync: outchannel: READ_FAILED\n"); + failed = TRUE; + break; + case READ_EOF: + if (debug) + g_print ("g_spawn_sync: outchannel: READ_EOF\n"); + g_io_channel_unref (outchannel); + outchannel = NULL; + close_and_invalidate (&outpipe); + break; + default: + if (debug) + g_print ("g_spawn_sync: outchannel: OK\n"); + break; + } + + if (failed) + break; + } + + if (errpipe >= 0 && (fds[errindex].revents & G_IO_IN)) + { + switch (read_data (errstr, errchannel, error)) + { + case READ_FAILED: + if (debug) + g_print ("g_spawn_sync: errchannel: READ_FAILED\n"); + failed = TRUE; + break; + case READ_EOF: + if (debug) + g_print ("g_spawn_sync: errchannel: READ_EOF\n"); + g_io_channel_unref (errchannel); + errchannel = NULL; + close_and_invalidate (&errpipe); + break; + default: + if (debug) + g_print ("g_spawn_sync: errchannel: OK\n"); + break; + } + + if (failed) + break; + } + } + + /* These should only be open still if we had an error. */ + + if (outchannel != NULL) + g_io_channel_unref (outchannel); + if (errchannel != NULL) + g_io_channel_unref (errchannel); + if (outpipe >= 0) + close_and_invalidate (&outpipe); + if (errpipe >= 0) + close_and_invalidate (&errpipe); + + if (failed) + { + if (outstr) + g_string_free (outstr, TRUE); + if (errstr) + g_string_free (errstr, TRUE); + + return FALSE; + } + else + { + if (exit_status) + *exit_status = status; + + if (standard_output) + *standard_output = g_string_free (outstr, FALSE); + + if (standard_error) + *standard_error = g_string_free (errstr, FALSE); + + return TRUE; + } +} + +/** + * g_spawn_async_with_pipes: + * @working_directory: child's current working directory, or NULL to inherit parent's + * @argv: child's argument vector + * @envp: child's environment, or NULL to inherit parent's + * @flags: flags from #GSpawnFlags + * @child_setup: function to run in the child just before exec() + * @user_data: user data for @child_setup + * @child_pid: return location for child process ID, or NULL + * @standard_input: return location for file descriptor to write to child's stdin, or NULL + * @standard_output: return location for file descriptor to read child's stdout, or NULL + * @standard_error: return location for file descriptor to read child's stderr, or NULL + * @error: return location for error + * + * Executes a child program asynchronously (your program will not + * block waiting for the child to exit). The child program is + * specified by the only argument that must be provided, @argv. @argv + * should be a NULL-terminated array of strings, to be passed as the + * argument vector for the child. The first string in @argv is of + * course the name of the program to execute. By default, the name of + * the program must be a full path; the PATH shell variable will only + * be searched if you pass the %G_SPAWN_SEARCH_PATH flag. + * + * @envp is a NULL-terminated array of strings, where each string + * has the form <literal>KEY=VALUE</literal>. This will become + * the child's environment. If @envp is NULL, the child inherits its + * parent's environment. + * + * @flags should be the bitwise OR of any flags you want to affect the + * function's behavior. The %G_SPAWN_DO_NOT_REAP_CHILD means that the + * child will not be automatically reaped; you must call waitpid() or + * handle SIGCHLD yourself, or the child will become a zombie. + * %G_SPAWN_LEAVE_DESCRIPTORS_OPEN means that the parent's open file + * descriptors will be inherited by the child; otherwise all + * descriptors except stdin/stdout/stderr will be closed before + * calling exec() in the child. %G_SPAWN_SEARCH_PATH means that + * <literal>argv[0]</literal> need not be an absolute path, it + * will be looked for in the user's PATH. %G_SPAWN_STDOUT_TO_DEV_NULL + * means that the child's standad output will be discarded, instead + * of going to the same location as the parent's standard output. + * %G_SPAWN_STDERR_TO_DEV_NULL means that the child's standard error + * will be discarded. %G_SPAWN_CHILD_INHERITS_STDIN means that + * the child will inherit the parent's standard input (by default, + * the child's standard input is attached to /dev/null). + * + * @child_setup and @user_data are a function and user data to be + * called in the child after GLib has performed all the setup it plans + * to perform (including creating pipes, closing file descriptors, + * etc.) but before calling exec(). That is, @child_setup is called + * just before calling exec() in the child. Obviously actions taken in + * this function will only affect the child, not the parent. + * + * If non-NULL, @child_pid will be filled with the child's process + * ID. You can use the process ID to send signals to the child, or + * to waitpid() if you specified the %G_SPAWN_DO_NOT_REAP_CHILD flag. + * + * If non-NULL, the @standard_input, @standard_output, @standard_error + * locations will be filled with file descriptors for writing to the child's + * standard input or reading from its standard output or standard error. + * The caller of g_spawn_async_with_pipes() must close these file descriptors + * when they are no longer in use. If these parameters are NULL, the + * corresponding pipe won't be created. + * + * @error can be NULL to ignore errors, or non-NULL to report errors. + * If an error is set, the function returns FALSE. Errors + * are reported even if they occur in the child (for example if the + * executable in <literal>argv[0]</literal> is not found). Typically + * the <literal>message</literal> field of returned errors should be displayed + * to users. Possible errors are those from the #G_SPAWN_ERROR domain. + * + * If an error occurs, @child_pid, @standard_input, @standard_output, + * and @standard_error will not be filled with valid values. + * + * Return value: TRUE on success, FALSE if an error was set + **/ +gboolean +g_spawn_async_with_pipes (const gchar *working_directory, + gchar **argv, + gchar **envp, + GSpawnFlags flags, + GSpawnChildSetupFunc child_setup, + gpointer user_data, + gint *child_pid, + gint *standard_input, + gint *standard_output, + gint *standard_error, + GError **error) +{ + g_return_val_if_fail (argv != NULL, FALSE); + g_return_val_if_fail (standard_output == NULL || + !(flags & G_SPAWN_STDOUT_TO_DEV_NULL), FALSE); + g_return_val_if_fail (standard_error == NULL || + !(flags & G_SPAWN_STDERR_TO_DEV_NULL), FALSE); + /* can't inherit stdin if we have an input pipe. */ + g_return_val_if_fail (standard_input == NULL || + !(flags & G_SPAWN_CHILD_INHERITS_STDIN), FALSE); + + return fork_exec_with_pipes (!(flags & G_SPAWN_DO_NOT_REAP_CHILD), + working_directory, + argv, + envp, + !(flags & G_SPAWN_LEAVE_DESCRIPTORS_OPEN), + (flags & G_SPAWN_SEARCH_PATH) != 0, + (flags & G_SPAWN_STDOUT_TO_DEV_NULL) != 0, + (flags & G_SPAWN_STDERR_TO_DEV_NULL) != 0, + (flags & G_SPAWN_CHILD_INHERITS_STDIN) != 0, + child_setup, + user_data, + standard_input, + standard_output, + standard_error, + NULL, + error); +} + +/** + * g_spawn_command_line_sync: + * @command_line: a command line + * @standard_output: return location for child output + * @standard_error: return location for child errors + * @exit_status: return location for child exit status + * @error: return location for errors + * + * A simple version of g_spawn_sync() with little-used parameters + * removed, taking a command line instead of an argument vector. See + * g_spawn_sync() for full details. @command_line will be parsed by + * g_shell_parse_argv(). Unlike g_spawn_sync(), the %G_SPAWN_SEARCH_PATH flag + * is enabled. Note that %G_SPAWN_SEARCH_PATH can have security + * implications, so consider using g_spawn_sync() directly if + * appropriate. Possible errors are those from g_spawn_sync() and those + * from g_shell_parse_argv(). + * + * Return value: TRUE on success, FALSE if an error was set + **/ +gboolean +g_spawn_command_line_sync (const gchar *command_line, + gchar **standard_output, + gchar **standard_error, + gint *exit_status, + GError **error) +{ + gboolean retval; + gchar **argv = 0; + + g_return_val_if_fail (command_line != NULL, FALSE); + + if (!g_shell_parse_argv (command_line, + NULL, &argv, + error)) + return FALSE; + + retval = g_spawn_sync (NULL, + argv, + NULL, + G_SPAWN_SEARCH_PATH, + NULL, + NULL, + standard_output, + standard_error, + exit_status, + error); + g_strfreev (argv); + + return retval; +} + +/** + * g_spawn_command_line_async: + * @command_line: a command line + * @error: return location for errors + * + * A simple version of g_spawn_async() that parses a command line with + * g_shell_parse_argv() and passes it to g_spawn_async(). Runs a + * command line in the background. Unlike g_spawn_async(), the + * %G_SPAWN_SEARCH_PATH flag is enabled, other flags are not. Note + * that %G_SPAWN_SEARCH_PATH can have security implications, so + * consider using g_spawn_async() directly if appropriate. Possible + * errors are those from g_shell_parse_argv() and g_spawn_async(). + * + * Return value: TRUE on success, FALSE if error is set. + **/ +gboolean +g_spawn_command_line_async (const gchar *command_line, + GError **error) +{ + gboolean retval; + gchar **argv = 0; + + g_return_val_if_fail (command_line != NULL, FALSE); + + if (!g_shell_parse_argv (command_line, + NULL, &argv, + error)) + return FALSE; + + retval = g_spawn_async (NULL, + argv, + NULL, + G_SPAWN_SEARCH_PATH, + NULL, + NULL, + NULL, + error); + g_strfreev (argv); + + return retval; +} + +static gint +do_exec (gboolean dont_wait, + gint child_err_report_fd, + gint stdin_fd, + gint stdout_fd, + gint stderr_fd, + const gchar *working_directory, + gchar **argv, + gchar **envp, + gboolean close_descriptors, + gboolean search_path, + gboolean stdout_to_null, + gboolean stderr_to_null, + gboolean child_inherits_stdin, + GSpawnChildSetupFunc child_setup, + gpointer user_data) +{ + const gchar **new_argv; + gchar args[ARG_COUNT][10]; + gint i; + int argc = 0; + + SETUP_DEBUG(); + + while (argv[argc]) + ++argc; + + new_argv = g_new (gchar *, argc + 1 + ARG_COUNT); + + new_argv[0] = "gspawn-win32-helper"; + sprintf (args[ARG_CHILD_ERR_REPORT], "%d", child_err_report_fd); + new_argv[ARG_CHILD_ERR_REPORT] = args[ARG_CHILD_ERR_REPORT]; + + if (stdin_fd >= 0) + { + sprintf (args[ARG_STDIN], "%d", stdin_fd); + new_argv[ARG_STDIN] = args[ARG_STDIN]; + } + else if (child_inherits_stdin) + { + /* Let stdin be alone */ + new_argv[ARG_STDIN] = "-"; + } + else + { + /* Keep process from blocking on a read of stdin */ + new_argv[ARG_STDIN] = "z"; + } + + if (stdout_fd >= 0) + { + sprintf (args[ARG_STDOUT], "%d", stdout_fd); + new_argv[ARG_STDOUT] = args[ARG_STDOUT]; + } + else if (stdout_to_null) + { + new_argv[ARG_STDOUT] = "z"; + } + else + { + new_argv[ARG_STDOUT] = "-"; + } + + if (stderr_fd >= 0) + { + sprintf (args[ARG_STDERR], "%d", stderr_fd); + new_argv[ARG_STDERR] = args[ARG_STDERR]; + } + else if (stderr_to_null) + { + new_argv[ARG_STDERR] = "z"; + } + else + { + new_argv[ARG_STDERR] = "-"; + } + + if (working_directory && *working_directory) + new_argv[ARG_WORKING_DIRECTORY] = working_directory; + else + new_argv[ARG_WORKING_DIRECTORY] = "-"; + + if (close_descriptors) + new_argv[ARG_CLOSE_DESCRIPTORS] = "y"; + else + new_argv[ARG_CLOSE_DESCRIPTORS] = "-"; + + if (search_path) + new_argv[ARG_USE_PATH] = "y"; + else + new_argv[ARG_USE_PATH] = "-"; + + if (dont_wait) + new_argv[ARG_WAIT] = "-"; + else + new_argv[ARG_WAIT] = "w"; + + for (i = 0; i <= argc; i++) + new_argv[ARG_PROGRAM + i] = argv[i]; + + /* Call user function just before we execute the helper program, + * which executes the program. Dunno what's the usefulness of this. + * A child setup function used on Unix probably isn't of much use + * as such on Win32, anyhow. + */ + if (child_setup) + { + (* child_setup) (user_data); + } + + if (debug) + { + g_print ("calling gspawn-win32-helper with argv:\n"); + for (i = 0; i < argc + 1 + ARG_COUNT; i++) + g_print ("argv[%d]: %s\n", i, (new_argv[i] ? new_argv[i] : "NULL")); + } + + if (envp != NULL) + /* Let's hope envp hasn't mucked with PATH so that + * gspawn-win32-helper.exe isn't found. + */ + spawnvpe (P_NOWAIT, "gspawn-win32-helper", new_argv, envp); + else + spawnvp (P_NOWAIT, "gspawn-win32-helper", new_argv); + + /* FIXME: What if gspawn-win32-helper.exe isn't found? */ + + /* Close the child_err_report_fd and the other process's ends of the + * pipes in this process, otherwise the reader will never get + * EOF. + */ + close (child_err_report_fd); + if (stdin_fd >= 0) + close (stdin_fd); + if (stdout_fd >= 0) + close (stdout_fd); + if (stderr_fd >= 0) + close (stderr_fd); + + g_free ((void*)new_argv); + + return 0; +} + +static gboolean +read_ints (int fd, + gint* buf, + gint n_ints_in_buf, + gint *n_ints_read, + GError **error) +{ + gint bytes = 0; + + while (bytes < sizeof(gint)*n_ints_in_buf) + { + gint chunk; + + if (debug) + g_print ("%s:read_ints: trying to read %d bytes from pipe...\n", + __FILE__, + sizeof(gint)*n_ints_in_buf - bytes); + + chunk = read (fd, ((gchar*)buf) + bytes, + sizeof(gint)*n_ints_in_buf - bytes); + + if (debug) + g_print ("... got %d bytes\n", chunk); + + if (chunk < 0) + { + /* Some weird shit happened, bail out */ + + g_set_error (error, + G_SPAWN_ERROR, + G_SPAWN_ERROR_FAILED, + _("Failed to read from child pipe (%s)"), + g_strerror (errno)); + + return FALSE; + } + else if (chunk == 0) + break; /* EOF */ + else + bytes += chunk; + } + + *n_ints_read = bytes/sizeof(gint); + + return TRUE; +} + +static gboolean +fork_exec_with_pipes (gboolean dont_wait, + const gchar *working_directory, + gchar **argv, + gchar **envp, + gboolean close_descriptors, + gboolean search_path, + gboolean stdout_to_null, + gboolean stderr_to_null, + gboolean child_inherits_stdin, + GSpawnChildSetupFunc child_setup, + gpointer user_data, + gint *standard_input, + gint *standard_output, + gint *standard_error, + gint *exit_status, + GError **error) +{ + gint stdin_pipe[2] = { -1, -1 }; + gint stdout_pipe[2] = { -1, -1 }; + gint stderr_pipe[2] = { -1, -1 }; + gint child_err_report_pipe[2] = { -1, -1 }; + gint status; + //gint bytes; + gint buf[2]; + gint n_ints = 0; + + if (!make_pipe (child_err_report_pipe, error)) + return FALSE; + + if (standard_input && !make_pipe (stdin_pipe, error)) + goto cleanup_and_fail; + + if (standard_output && !make_pipe (stdout_pipe, error)) + goto cleanup_and_fail; + + if (standard_error && !make_pipe (stderr_pipe, error)) + goto cleanup_and_fail; + + status = do_exec (dont_wait, + child_err_report_pipe[1], + stdin_pipe[0], + stdout_pipe[1], + stderr_pipe[1], + working_directory, + argv, + envp, + close_descriptors, + search_path, + stdout_to_null, + stderr_to_null, + child_inherits_stdin, + child_setup, + user_data); + + if (!read_ints (child_err_report_pipe[0], + buf, 2, &n_ints, + error)) + goto cleanup_and_fail; + + if (n_ints == 2) + { + /* Error from the child. */ + + switch (buf[0]) + { + case CHILD_NO_ERROR: + break; + + case CHILD_CHDIR_FAILED: + g_set_error (error, + G_SPAWN_ERROR, + G_SPAWN_ERROR_CHDIR, + _("Failed to change to directory '%s' (%s)"), + working_directory, + g_strerror (buf[1])); + goto cleanup_and_fail; + + case CHILD_SPAWN_FAILED: + g_set_error (error, + G_SPAWN_ERROR, + G_SPAWN_ERROR_FAILED, + _("Failed to execute child process (%s)"), + g_strerror (buf[1])); + goto cleanup_and_fail; + } + } + + /* Success against all odds! return the information */ + + if (standard_input) + *standard_input = stdin_pipe[1]; + if (standard_output) + *standard_output = stdout_pipe[0]; + if (standard_error) + *standard_error = stderr_pipe[0]; + if (exit_status) + *exit_status = status; + + return TRUE; + + cleanup_and_fail: + close_and_invalidate (&child_err_report_pipe[0]); + close_and_invalidate (&child_err_report_pipe[1]); + close_and_invalidate (&stdin_pipe[0]); + close_and_invalidate (&stdin_pipe[1]); + close_and_invalidate (&stdout_pipe[0]); + close_and_invalidate (&stdout_pipe[1]); + close_and_invalidate (&stderr_pipe[0]); + close_and_invalidate (&stderr_pipe[1]); + + return FALSE; +} + +static gboolean +make_pipe (gint p[2], + GError **error) +{ + if (pipe (p) < 0) + { + g_set_error (error, + G_SPAWN_ERROR, + G_SPAWN_ERROR_FAILED, + _("Failed to create pipe for communicating with child process (%s)"), + g_strerror (errno)); + return FALSE; + } + else + return TRUE; +} + +#endif /* !GSPAWN_HELPER */ diff --git a/graf2d/win32gdk/gdk/src/glib/gspawn.c b/graf2d/win32gdk/gdk/src/glib/gspawn.c new file mode 100644 index 00000000000..8dc0e4b131c --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gspawn.c @@ -0,0 +1,1404 @@ +/* gspawn.c - Process launching + * + * Copyright 2000 Red Hat, Inc. + * g_execvpe implementation based on GNU libc execvp: + * Copyright 1991, 92, 95, 96, 97, 98, 99 Free Software Foundation, Inc. + * + * GLib is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * GLib is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with GLib; see the file COPYING.LIB. If not, write + * to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#include "glib.h" +#include <sys/time.h> +#include <sys/types.h> +#include <sys/wait.h> +#include <unistd.h> +#include <errno.h> +#include <fcntl.h> +#include <signal.h> +#include <string.h> + +#ifdef HAVE_SYS_SELECT_H +#include <sys/select.h> +#endif /* HAVE_SYS_SELECT_H */ + +#include "glibintl.h" + +static gint g_execute (const gchar *file, + gchar **argv, + gchar **envp, + gboolean search_path); + +static gboolean make_pipe (gint p[2], + GError **error); +static gboolean fork_exec_with_pipes (gboolean intermediate_child, + const gchar *working_directory, + gchar **argv, + gchar **envp, + gboolean close_descriptors, + gboolean search_path, + gboolean stdout_to_null, + gboolean stderr_to_null, + gboolean child_inherits_stdin, + gboolean file_and_argv_zero, + GSpawnChildSetupFunc child_setup, + gpointer user_data, + gint *child_pid, + gint *standard_input, + gint *standard_output, + gint *standard_error, + GError **error); + +GQuark +g_spawn_error_quark (void) +{ + static GQuark quark = 0; + if (quark == 0) + quark = g_quark_from_static_string ("g-exec-error-quark"); + return quark; +} + +/** + * g_spawn_async: + * @working_directory: child's current working directory, or NULL to inherit parent's + * @argv: child's argument vector + * @envp: child's environment, or NULL to inherit parent's + * @flags: flags from #GSpawnFlags + * @child_setup: function to run in the child just before exec() + * @user_data: user data for @child_setup + * @child_pid: return location for child process ID, or NULL + * @error: return location for error + * + * See g_spawn_async_with_pipes() for a full description; this function + * simply calls the g_spawn_async_with_pipes() without any pipes. + * + * Return value: TRUE on success, FALSE if error is set + **/ +gboolean +g_spawn_async (const gchar *working_directory, + gchar **argv, + gchar **envp, + GSpawnFlags flags, + GSpawnChildSetupFunc child_setup, + gpointer user_data, + gint *child_pid, + GError **error) +{ + g_return_val_if_fail (argv != NULL, FALSE); + + return g_spawn_async_with_pipes (working_directory, + argv, envp, + flags, + child_setup, + user_data, + child_pid, + NULL, NULL, NULL, + error); +} + +/* Avoids a danger in threaded situations (calling close() + * on a file descriptor twice, and another thread has + * re-opened it since the first close) + */ +static gint +close_and_invalidate (gint *fd) +{ + gint ret; + + ret = close (*fd); + *fd = -1; + + return ret; +} + +typedef enum +{ + READ_FAILED = 0, /* FALSE */ + READ_OK, + READ_EOF +} ReadResult; + +static ReadResult +read_data (GString *str, + gint fd, + GError **error) +{ + gssize bytes; + gchar buf[4096]; + + again: + + bytes = read (fd, &buf, 4096); + + if (bytes == 0) + return READ_EOF; + else if (bytes > 0) + { + g_string_append_len (str, buf, bytes); + return READ_OK; + } + else if (bytes < 0 && errno == EINTR) + goto again; + else if (bytes < 0) + { + g_set_error (error, + G_SPAWN_ERROR, + G_SPAWN_ERROR_READ, + _("Failed to read data from child process (%s)"), + g_strerror (errno)); + + return READ_FAILED; + } + else + return READ_OK; +} + +/** + * g_spawn_sync: + * @working_directory: child's current working directory, or NULL to inherit parent's + * @argv: child's argument vector + * @envp: child's environment, or NULL to inherit parent's + * @flags: flags from #GSpawnFlags + * @child_setup: function to run in the child just before exec() + * @user_data: user data for @child_setup + * @standard_output: return location for child output + * @standard_error: return location for child error messages + * @exit_status: child exit status, as returned by waitpid() + * @error: return location for error + * + * Executes a child synchronously (waits for the child to exit before returning). + * All output from the child is stored in @standard_output and @standard_error, + * if those parameters are non-NULL. If @exit_status is non-NULL, the exit status + * of the child is stored there as it would be by waitpid(); standard UNIX + * macros such as WIFEXITED() and WEXITSTATUS() must be used to evaluate the + * exit status. If an error occurs, no data is returned in @standard_output, + * @standard_error, or @exit_status. + * + * This function calls g_spawn_async_with_pipes() internally; see that function + * for full details on the other parameters. + * + * Return value: TRUE on success, FALSE if an error was set. + **/ +gboolean +g_spawn_sync (const gchar *working_directory, + gchar **argv, + gchar **envp, + GSpawnFlags flags, + GSpawnChildSetupFunc child_setup, + gpointer user_data, + gchar **standard_output, + gchar **standard_error, + gint *exit_status, + GError **error) +{ + gint outpipe = -1; + gint errpipe = -1; + gint pid; + fd_set fds; + gint ret; + GString *outstr = NULL; + GString *errstr = NULL; + gboolean failed; + gint status; + + g_return_val_if_fail (argv != NULL, FALSE); + g_return_val_if_fail (!(flags & G_SPAWN_DO_NOT_REAP_CHILD), FALSE); + g_return_val_if_fail (standard_output == NULL || + !(flags & G_SPAWN_STDOUT_TO_DEV_NULL), FALSE); + g_return_val_if_fail (standard_error == NULL || + !(flags & G_SPAWN_STDERR_TO_DEV_NULL), FALSE); + + /* Just to ensure segfaults if callers try to use + * these when an error is reported. + */ + if (standard_output) + *standard_output = NULL; + + if (standard_error) + *standard_error = NULL; + + if (!fork_exec_with_pipes (FALSE, + working_directory, + argv, + envp, + !(flags & G_SPAWN_LEAVE_DESCRIPTORS_OPEN), + (flags & G_SPAWN_SEARCH_PATH) != 0, + (flags & G_SPAWN_STDOUT_TO_DEV_NULL) != 0, + (flags & G_SPAWN_STDERR_TO_DEV_NULL) != 0, + (flags & G_SPAWN_CHILD_INHERITS_STDIN) != 0, + (flags & G_SPAWN_FILE_AND_ARGV_ZERO) != 0, + child_setup, + user_data, + &pid, + NULL, + standard_output ? &outpipe : NULL, + standard_error ? &errpipe : NULL, + error)) + return FALSE; + + /* Read data from child. */ + + failed = FALSE; + + if (outpipe >= 0) + { + outstr = g_string_new (""); + } + + if (errpipe >= 0) + { + errstr = g_string_new (""); + } + + /* Read data until we get EOF on both pipes. */ + while (!failed && + (outpipe >= 0 || + errpipe >= 0)) + { + ret = 0; + + FD_ZERO (&fds); + if (outpipe >= 0) + FD_SET (outpipe, &fds); + if (errpipe >= 0) + FD_SET (errpipe, &fds); + + ret = select (MAX (outpipe, errpipe) + 1, + &fds, + NULL, NULL, + NULL /* no timeout */); + + if (ret < 0 && errno != EINTR) + { + failed = TRUE; + + g_set_error (error, + G_SPAWN_ERROR, + G_SPAWN_ERROR_READ, + _("Unexpected error in select() reading data from a child process (%s)"), + g_strerror (errno)); + + break; + } + + if (outpipe >= 0 && FD_ISSET (outpipe, &fds)) + { + switch (read_data (outstr, outpipe, error)) + { + case READ_FAILED: + failed = TRUE; + break; + case READ_EOF: + close_and_invalidate (&outpipe); + outpipe = -1; + break; + default: + break; + } + + if (failed) + break; + } + + if (errpipe >= 0 && FD_ISSET (errpipe, &fds)) + { + switch (read_data (errstr, errpipe, error)) + { + case READ_FAILED: + failed = TRUE; + break; + case READ_EOF: + close_and_invalidate (&errpipe); + errpipe = -1; + break; + default: + break; + } + + if (failed) + break; + } + } + + /* These should only be open still if we had an error. */ + + if (outpipe >= 0) + close_and_invalidate (&outpipe); + if (errpipe >= 0) + close_and_invalidate (&errpipe); + + /* Wait for child to exit, even if we have + * an error pending. + */ + again: + + ret = waitpid (pid, &status, 0); + + if (ret < 0) + { + if (errno == EINTR) + goto again; + else if (errno == ECHILD) + { + if (exit_status) + { + g_warning ("In call to g_spawn_sync(), exit status of a child process was requested but SIGCHLD action was set to SIG_IGN and ECHILD was received by waitpid(), so exit status can't be returned. This is a bug in the program calling g_spawn_sync(); either don't request the exit status, or don't set the SIGCHLD action."); + } + else + { + /* We don't need the exit status. */ + } + } + else + { + if (!failed) /* avoid error pileups */ + { + failed = TRUE; + + g_set_error (error, + G_SPAWN_ERROR, + G_SPAWN_ERROR_READ, + _("Unexpected error in waitpid() (%s)"), + g_strerror (errno)); + } + } + } + + if (failed) + { + if (outstr) + g_string_free (outstr, TRUE); + if (errstr) + g_string_free (errstr, TRUE); + + return FALSE; + } + else + { + if (exit_status) + *exit_status = status; + + if (standard_output) + *standard_output = g_string_free (outstr, FALSE); + + if (standard_error) + *standard_error = g_string_free (errstr, FALSE); + + return TRUE; + } +} + +/** + * g_spawn_async_with_pipes: + * @working_directory: child's current working directory, or NULL to inherit parent's + * @argv: child's argument vector + * @envp: child's environment, or NULL to inherit parent's + * @flags: flags from #GSpawnFlags + * @child_setup: function to run in the child just before exec() + * @user_data: user data for @child_setup + * @child_pid: return location for child process ID, or NULL + * @standard_input: return location for file descriptor to write to child's stdin, or NULL + * @standard_output: return location for file descriptor to read child's stdout, or NULL + * @standard_error: return location for file descriptor to read child's stderr, or NULL + * @error: return location for error + * + * Executes a child program asynchronously (your program will not + * block waiting for the child to exit). The child program is + * specified by the only argument that must be provided, @argv. @argv + * should be a NULL-terminated array of strings, to be passed as the + * argument vector for the child. The first string in @argv is of + * course the name of the program to execute. By default, the name of + * the program must be a full path; the PATH shell variable will only + * be searched if you pass the %G_SPAWN_SEARCH_PATH flag. + * + * @envp is a NULL-terminated array of strings, where each string + * has the form <literal>KEY=VALUE</literal>. This will become + * the child's environment. If @envp is NULL, the child inherits its + * parent's environment. + * + * @flags should be the bitwise OR of any flags you want to affect the + * function's behavior. The %G_SPAWN_DO_NOT_REAP_CHILD means that the + * child will not be automatically reaped; you must call waitpid() or + * handle SIGCHLD yourself, or the child will become a zombie. + * %G_SPAWN_LEAVE_DESCRIPTORS_OPEN means that the parent's open file + * descriptors will be inherited by the child; otherwise all + * descriptors except stdin/stdout/stderr will be closed before + * calling exec() in the child. %G_SPAWN_SEARCH_PATH means that + * <literal>argv[0]</literal> need not be an absolute path, it + * will be looked for in the user's PATH. %G_SPAWN_STDOUT_TO_DEV_NULL + * means that the child's standad output will be discarded, instead + * of going to the same location as the parent's standard output. + * %G_SPAWN_STDERR_TO_DEV_NULL means that the child's standard error + * will be discarded. %G_SPAWN_CHILD_INHERITS_STDIN means that + * the child will inherit the parent's standard input (by default, + * the child's standard input is attached to /dev/null). + * %G_SPAWN_FILE_AND_ARGV_ZERO means that the first element of @argv is + * the file to execute, while the remaining elements are the + * actual argument vector to pass to the file. Normally + * g_spawn_async_with_pipes() uses @argv[0] as the file to execute, and + * passes all of @argv to the child. + * + * @child_setup and @user_data are a function and user data to be + * called in the child after GLib has performed all the setup it plans + * to perform (including creating pipes, closing file descriptors, + * etc.) but before calling exec(). That is, @child_setup is called + * just before calling exec() in the child. Obviously actions taken in + * this function will only affect the child, not the parent. + * + * If non-NULL, @child_pid will be filled with the child's process + * ID. You can use the process ID to send signals to the child, or + * to waitpid() if you specified the %G_SPAWN_DO_NOT_REAP_CHILD flag. + * + * If non-NULL, the @standard_input, @standard_output, @standard_error + * locations will be filled with file descriptors for writing to the child's + * standard input or reading from its standard output or standard error. + * The caller of g_spawn_async_with_pipes() must close these file descriptors + * when they are no longer in use. If these parameters are NULL, the + * corresponding pipe won't be created. + * + * @error can be NULL to ignore errors, or non-NULL to report errors. + * If an error is set, the function returns FALSE. Errors + * are reported even if they occur in the child (for example if the + * executable in <literal>argv[0]</literal> is not found). Typically + * the <literal>message</literal> field of returned errors should be displayed + * to users. Possible errors are those from the #G_SPAWN_ERROR domain. + * + * If an error occurs, @child_pid, @standard_input, @standard_output, + * and @standard_error will not be filled with valid values. + * + * Return value: TRUE on success, FALSE if an error was set + **/ +gboolean +g_spawn_async_with_pipes (const gchar *working_directory, + gchar **argv, + gchar **envp, + GSpawnFlags flags, + GSpawnChildSetupFunc child_setup, + gpointer user_data, + gint *child_pid, + gint *standard_input, + gint *standard_output, + gint *standard_error, + GError **error) +{ + g_return_val_if_fail (argv != NULL, FALSE); + g_return_val_if_fail (standard_output == NULL || + !(flags & G_SPAWN_STDOUT_TO_DEV_NULL), FALSE); + g_return_val_if_fail (standard_error == NULL || + !(flags & G_SPAWN_STDERR_TO_DEV_NULL), FALSE); + /* can't inherit stdin if we have an input pipe. */ + g_return_val_if_fail (standard_input == NULL || + !(flags & G_SPAWN_CHILD_INHERITS_STDIN), FALSE); + + return fork_exec_with_pipes (!(flags & G_SPAWN_DO_NOT_REAP_CHILD), + working_directory, + argv, + envp, + !(flags & G_SPAWN_LEAVE_DESCRIPTORS_OPEN), + (flags & G_SPAWN_SEARCH_PATH) != 0, + (flags & G_SPAWN_STDOUT_TO_DEV_NULL) != 0, + (flags & G_SPAWN_STDERR_TO_DEV_NULL) != 0, + (flags & G_SPAWN_CHILD_INHERITS_STDIN) != 0, + (flags & G_SPAWN_FILE_AND_ARGV_ZERO) != 0, + child_setup, + user_data, + child_pid, + standard_input, + standard_output, + standard_error, + error); +} + +/** + * g_spawn_command_line_sync: + * @command_line: a command line + * @standard_output: return location for child output + * @standard_error: return location for child errors + * @exit_status: return location for child exit status + * @error: return location for errors + * + * A simple version of g_spawn_sync() with little-used parameters + * removed, taking a command line instead of an argument vector. See + * g_spawn_sync() for full details. @command_line will be parsed by + * g_shell_parse_argv(). Unlike g_spawn_sync(), the %G_SPAWN_SEARCH_PATH flag + * is enabled. Note that %G_SPAWN_SEARCH_PATH can have security + * implications, so consider using g_spawn_sync() directly if + * appropriate. Possible errors are those from g_spawn_sync() and those + * from g_shell_parse_argv(). + * + * Return value: TRUE on success, FALSE if an error was set + **/ +gboolean +g_spawn_command_line_sync (const gchar *command_line, + gchar **standard_output, + gchar **standard_error, + gint *exit_status, + GError **error) +{ + gboolean retval; + gchar **argv = 0; + + g_return_val_if_fail (command_line != NULL, FALSE); + + if (!g_shell_parse_argv (command_line, + NULL, &argv, + error)) + return FALSE; + + retval = g_spawn_sync (NULL, + argv, + NULL, + G_SPAWN_SEARCH_PATH, + NULL, + NULL, + standard_output, + standard_error, + exit_status, + error); + g_strfreev (argv); + + return retval; +} + +/** + * g_spawn_command_line_async: + * @command_line: a command line + * @error: return location for errors + * + * A simple version of g_spawn_async() that parses a command line with + * g_shell_parse_argv() and passes it to g_spawn_async(). Runs a + * command line in the background. Unlike g_spawn_async(), the + * %G_SPAWN_SEARCH_PATH flag is enabled, other flags are not. Note + * that %G_SPAWN_SEARCH_PATH can have security implications, so + * consider using g_spawn_async() directly if appropriate. Possible + * errors are those from g_shell_parse_argv() and g_spawn_async(). + * + * Return value: TRUE on success, FALSE if error is set. + **/ +gboolean +g_spawn_command_line_async (const gchar *command_line, + GError **error) +{ + gboolean retval; + gchar **argv = 0; + + g_return_val_if_fail (command_line != NULL, FALSE); + + if (!g_shell_parse_argv (command_line, + NULL, &argv, + error)) + return FALSE; + + retval = g_spawn_async (NULL, + argv, + NULL, + G_SPAWN_SEARCH_PATH, + NULL, + NULL, + NULL, + error); + g_strfreev (argv); + + return retval; +} + +static gint +exec_err_to_g_error (gint en) +{ + switch (en) + { +#ifdef EACCES + case EACCES: + return G_SPAWN_ERROR_ACCES; + break; +#endif + +#ifdef EPERM + case EPERM: + return G_SPAWN_ERROR_PERM; + break; +#endif + +#ifdef E2BIG + case E2BIG: + return G_SPAWN_ERROR_2BIG; + break; +#endif + +#ifdef ENOEXEC + case ENOEXEC: + return G_SPAWN_ERROR_NOEXEC; + break; +#endif + +#ifdef ENAMETOOLONG + case ENAMETOOLONG: + return G_SPAWN_ERROR_NAMETOOLONG; + break; +#endif + +#ifdef ENOENT + case ENOENT: + return G_SPAWN_ERROR_NOENT; + break; +#endif + +#ifdef ENOMEM + case ENOMEM: + return G_SPAWN_ERROR_NOMEM; + break; +#endif + +#ifdef ENOTDIR + case ENOTDIR: + return G_SPAWN_ERROR_NOTDIR; + break; +#endif + +#ifdef ELOOP + case ELOOP: + return G_SPAWN_ERROR_LOOP; + break; +#endif + +#ifdef ETXTBUSY + case ETXTBUSY: + return G_SPAWN_ERROR_TXTBUSY; + break; +#endif + +#ifdef EIO + case EIO: + return G_SPAWN_ERROR_IO; + break; +#endif + +#ifdef ENFILE + case ENFILE: + return G_SPAWN_ERROR_NFILE; + break; +#endif + +#ifdef EMFILE + case EMFILE: + return G_SPAWN_ERROR_MFILE; + break; +#endif + +#ifdef EINVAL + case EINVAL: + return G_SPAWN_ERROR_INVAL; + break; +#endif + +#ifdef EISDIR + case EISDIR: + return G_SPAWN_ERROR_ISDIR; + break; +#endif + +#ifdef ELIBBAD + case ELIBBAD: + return G_SPAWN_ERROR_LIBBAD; + break; +#endif + + default: + return G_SPAWN_ERROR_FAILED; + break; + } +} + +static void +write_err_and_exit (gint fd, gint msg) +{ + gint en = errno; + + write (fd, &msg, sizeof(msg)); + write (fd, &en, sizeof(en)); + + _exit (1); +} + +static void +set_cloexec (gint fd) +{ + fcntl (fd, F_SETFD, FD_CLOEXEC); +} + +static gint +sane_dup2 (gint fd1, gint fd2) +{ + gint ret; + + retry: + ret = dup2 (fd1, fd2); + if (ret < 0 && errno == EINTR) + goto retry; + + return ret; +} + +enum +{ + CHILD_CHDIR_FAILED, + CHILD_EXEC_FAILED, + CHILD_DUP2_FAILED, + CHILD_FORK_FAILED +}; + +static void +do_exec (gint child_err_report_fd, + gint stdin_fd, + gint stdout_fd, + gint stderr_fd, + const gchar *working_directory, + gchar **argv, + gchar **envp, + gboolean close_descriptors, + gboolean search_path, + gboolean stdout_to_null, + gboolean stderr_to_null, + gboolean child_inherits_stdin, + gboolean file_and_argv_zero, + GSpawnChildSetupFunc child_setup, + gpointer user_data) +{ + if (working_directory && chdir (working_directory) < 0) + write_err_and_exit (child_err_report_fd, + CHILD_CHDIR_FAILED); + + /* Close all file descriptors but stdin stdout and stderr as + * soon as we exec. Note that this includes + * child_err_report_fd, which keeps the parent from blocking + * forever on the other end of that pipe. + */ + if (close_descriptors) + { + gint open_max; + gint i; + + open_max = sysconf (_SC_OPEN_MAX); + for (i = 3; i < open_max; i++) + set_cloexec (i); + } + else + { + /* We need to do child_err_report_fd anyway */ + set_cloexec (child_err_report_fd); + } + + /* Redirect pipes as required */ + + if (stdin_fd >= 0) + { + /* dup2 can't actually fail here I don't think */ + + if (sane_dup2 (stdin_fd, 0) < 0) + write_err_and_exit (child_err_report_fd, + CHILD_DUP2_FAILED); + + /* ignore this if it doesn't work */ + close_and_invalidate (&stdin_fd); + } + else if (!child_inherits_stdin) + { + /* Keep process from blocking on a read of stdin */ + gint read_null = open ("/dev/null", O_RDONLY); + sane_dup2 (read_null, 0); + close_and_invalidate (&read_null); + } + + if (stdout_fd >= 0) + { + /* dup2 can't actually fail here I don't think */ + + if (sane_dup2 (stdout_fd, 1) < 0) + write_err_and_exit (child_err_report_fd, + CHILD_DUP2_FAILED); + + /* ignore this if it doesn't work */ + close_and_invalidate (&stdout_fd); + } + else if (stdout_to_null) + { + gint write_null = open ("/dev/null", O_WRONLY); + sane_dup2 (write_null, 1); + close_and_invalidate (&write_null); + } + + if (stderr_fd >= 0) + { + /* dup2 can't actually fail here I don't think */ + + if (sane_dup2 (stderr_fd, 2) < 0) + write_err_and_exit (child_err_report_fd, + CHILD_DUP2_FAILED); + + /* ignore this if it doesn't work */ + close_and_invalidate (&stderr_fd); + } + else if (stderr_to_null) + { + gint write_null = open ("/dev/null", O_WRONLY); + sane_dup2 (write_null, 2); + close_and_invalidate (&write_null); + } + + /* Call user function just before we exec */ + if (child_setup) + { + (* child_setup) (user_data); + } + + g_execute (argv[0], + file_and_argv_zero ? argv + 1 : argv, + envp, search_path); + + /* Exec failed */ + write_err_and_exit (child_err_report_fd, + CHILD_EXEC_FAILED); +} + +static gboolean +read_ints (int fd, + gint* buf, + gint n_ints_in_buf, + gint *n_ints_read, + GError **error) +{ + gsize bytes = 0; + + while (TRUE) + { + gssize chunk; + + if (bytes >= sizeof(gint)*2) + break; /* give up, who knows what happened, should not be + * possible. + */ + + again: + chunk = read (fd, + ((gchar*)buf) + bytes, + sizeof(gint) * n_ints_in_buf - bytes); + if (chunk < 0 && errno == EINTR) + goto again; + + if (chunk < 0) + { + /* Some weird shit happened, bail out */ + + g_set_error (error, + G_SPAWN_ERROR, + G_SPAWN_ERROR_FAILED, + _("Failed to read from child pipe (%s)"), + g_strerror (errno)); + + return FALSE; + } + else if (chunk == 0) + break; /* EOF */ + else /* chunk > 0 */ + bytes += chunk; + } + + *n_ints_read = (gint)(bytes / sizeof(gint)); + + return TRUE; +} + +static gboolean +fork_exec_with_pipes (gboolean intermediate_child, + const gchar *working_directory, + gchar **argv, + gchar **envp, + gboolean close_descriptors, + gboolean search_path, + gboolean stdout_to_null, + gboolean stderr_to_null, + gboolean child_inherits_stdin, + gboolean file_and_argv_zero, + GSpawnChildSetupFunc child_setup, + gpointer user_data, + gint *child_pid, + gint *standard_input, + gint *standard_output, + gint *standard_error, + GError **error) +{ + gint pid; + gint stdin_pipe[2] = { -1, -1 }; + gint stdout_pipe[2] = { -1, -1 }; + gint stderr_pipe[2] = { -1, -1 }; + gint child_err_report_pipe[2] = { -1, -1 }; + gint child_pid_report_pipe[2] = { -1, -1 }; + gint status; + + if (!make_pipe (child_err_report_pipe, error)) + return FALSE; + + if (intermediate_child && !make_pipe (child_pid_report_pipe, error)) + goto cleanup_and_fail; + + if (standard_input && !make_pipe (stdin_pipe, error)) + goto cleanup_and_fail; + + if (standard_output && !make_pipe (stdout_pipe, error)) + goto cleanup_and_fail; + + if (standard_error && !make_pipe (stderr_pipe, error)) + goto cleanup_and_fail; + + pid = fork (); + + if (pid < 0) + { + g_set_error (error, + G_SPAWN_ERROR, + G_SPAWN_ERROR_FORK, + _("Failed to fork (%s)"), + g_strerror (errno)); + + goto cleanup_and_fail; + } + else if (pid == 0) + { + /* Immediate child. This may or may not be the child that + * actually execs the new process. + */ + + /* Be sure we crash if the parent exits + * and we write to the err_report_pipe + */ + signal (SIGPIPE, SIG_DFL); + + /* Close the parent's end of the pipes; + * not needed in the close_descriptors case, + * though + */ + close_and_invalidate (&child_err_report_pipe[0]); + close_and_invalidate (&child_pid_report_pipe[0]); + close_and_invalidate (&stdin_pipe[1]); + close_and_invalidate (&stdout_pipe[0]); + close_and_invalidate (&stderr_pipe[0]); + + if (intermediate_child) + { + /* We need to fork an intermediate child that launches the + * final child. The purpose of the intermediate child + * is to exit, so we can waitpid() it immediately. + * Then the grandchild will not become a zombie. + */ + gint grandchild_pid; + + grandchild_pid = fork (); + + if (grandchild_pid < 0) + { + /* report -1 as child PID */ + write (child_pid_report_pipe[1], &grandchild_pid, + sizeof(grandchild_pid)); + + write_err_and_exit (child_err_report_pipe[1], + CHILD_FORK_FAILED); + } + else if (grandchild_pid == 0) + { + do_exec (child_err_report_pipe[1], + stdin_pipe[0], + stdout_pipe[1], + stderr_pipe[1], + working_directory, + argv, + envp, + close_descriptors, + search_path, + stdout_to_null, + stderr_to_null, + child_inherits_stdin, + file_and_argv_zero, + child_setup, + user_data); + } + else + { + write (child_pid_report_pipe[1], &grandchild_pid, sizeof(grandchild_pid)); + close_and_invalidate (&child_pid_report_pipe[1]); + + _exit (0); + } + } + else + { + /* Just run the child. + */ + + do_exec (child_err_report_pipe[1], + stdin_pipe[0], + stdout_pipe[1], + stderr_pipe[1], + working_directory, + argv, + envp, + close_descriptors, + search_path, + stdout_to_null, + stderr_to_null, + child_inherits_stdin, + file_and_argv_zero, + child_setup, + user_data); + } + } + else + { + /* Parent */ + + gint buf[2]; + gint n_ints = 0; + + /* Close the uncared-about ends of the pipes */ + close_and_invalidate (&child_err_report_pipe[1]); + close_and_invalidate (&child_pid_report_pipe[1]); + close_and_invalidate (&stdin_pipe[0]); + close_and_invalidate (&stdout_pipe[1]); + close_and_invalidate (&stderr_pipe[1]); + + /* If we had an intermediate child, reap it */ + if (intermediate_child) + { + wait_again: + if (waitpid (pid, &status, 0) < 0) + { + if (errno == EINTR) + goto wait_again; + else if (errno == ECHILD) + ; /* do nothing, child already reaped */ + else + g_warning ("waitpid() should not fail in " + "'fork_exec_with_pipes'"); + } + } + + + if (!read_ints (child_err_report_pipe[0], + buf, 2, &n_ints, + error)) + goto cleanup_and_fail; + + if (n_ints >= 2) + { + /* Error from the child. */ + + switch (buf[0]) + { + case CHILD_CHDIR_FAILED: + g_set_error (error, + G_SPAWN_ERROR, + G_SPAWN_ERROR_CHDIR, + _("Failed to change to directory '%s' (%s)"), + working_directory, + g_strerror (buf[1])); + + break; + + case CHILD_EXEC_FAILED: + g_set_error (error, + G_SPAWN_ERROR, + exec_err_to_g_error (buf[1]), + _("Failed to execute child process (%s)"), + g_strerror (buf[1])); + + break; + + case CHILD_DUP2_FAILED: + g_set_error (error, + G_SPAWN_ERROR, + G_SPAWN_ERROR_FAILED, + _("Failed to redirect output or input of child process (%s)"), + g_strerror (buf[1])); + + break; + + case CHILD_FORK_FAILED: + g_set_error (error, + G_SPAWN_ERROR, + G_SPAWN_ERROR_FORK, + _("Failed to fork child process (%s)"), + g_strerror (buf[1])); + break; + + default: + g_set_error (error, + G_SPAWN_ERROR, + G_SPAWN_ERROR_FAILED, + _("Unknown error executing child process")); + break; + } + + goto cleanup_and_fail; + } + + /* Get child pid from intermediate child pipe. */ + if (intermediate_child) + { + n_ints = 0; + + if (!read_ints (child_pid_report_pipe[0], + buf, 1, &n_ints, error)) + goto cleanup_and_fail; + + if (n_ints < 1) + { + g_set_error (error, + G_SPAWN_ERROR, + G_SPAWN_ERROR_FAILED, + _("Failed to read enough data from child pid pipe (%s)"), + g_strerror (errno)); + goto cleanup_and_fail; + } + else + { + /* we have the child pid */ + pid = buf[0]; + } + } + + /* Success against all odds! return the information */ + + if (child_pid) + *child_pid = pid; + + if (standard_input) + *standard_input = stdin_pipe[1]; + if (standard_output) + *standard_output = stdout_pipe[0]; + if (standard_error) + *standard_error = stderr_pipe[0]; + + return TRUE; + } + + cleanup_and_fail: + close_and_invalidate (&child_err_report_pipe[0]); + close_and_invalidate (&child_err_report_pipe[1]); + close_and_invalidate (&child_pid_report_pipe[0]); + close_and_invalidate (&child_pid_report_pipe[1]); + close_and_invalidate (&stdin_pipe[0]); + close_and_invalidate (&stdin_pipe[1]); + close_and_invalidate (&stdout_pipe[0]); + close_and_invalidate (&stdout_pipe[1]); + close_and_invalidate (&stderr_pipe[0]); + close_and_invalidate (&stderr_pipe[1]); + + return FALSE; +} + +static gboolean +make_pipe (gint p[2], + GError **error) +{ + if (pipe (p) < 0) + { + g_set_error (error, + G_SPAWN_ERROR, + G_SPAWN_ERROR_FAILED, + _("Failed to create pipe for communicating with child process (%s)"), + g_strerror (errno)); + return FALSE; + } + else + return TRUE; +} + +/* Based on execvp from GNU C Library */ + +static void +script_execute (const gchar *file, + gchar **argv, + gchar **envp, + gboolean search_path) +{ + /* Count the arguments. */ + int argc = 0; + while (argv[argc]) + ++argc; + + /* Construct an argument list for the shell. */ + { + gchar **new_argv; + + new_argv = g_new0 (gchar*, argc + 1); + + new_argv[0] = (char *) "/bin/sh"; + new_argv[1] = (char *) file; + while (argc > 1) + { + new_argv[argc] = argv[argc - 1]; + --argc; + } + + /* Execute the shell. */ + if (envp) + execve (new_argv[0], new_argv, envp); + else + execv (new_argv[0], new_argv); + + g_free (new_argv); + } +} + +static gchar* +my_strchrnul (const gchar *str, gchar c) +{ + gchar *p = (gchar*) str; + while (*p && (*p != c)) + ++p; + + return p; +} + +static gint +g_execute (const gchar *file, + gchar **argv, + gchar **envp, + gboolean search_path) +{ + if (*file == '\0') + { + /* We check the simple case first. */ + errno = ENOENT; + return -1; + } + + if (!search_path || strchr (file, '/') != NULL) + { + /* Don't search when it contains a slash. */ + if (envp) + execve (file, argv, envp); + else + execv (file, argv); + + if (errno == ENOEXEC) + script_execute (file, argv, envp, FALSE); + } + else + { + gboolean got_eacces = 0; + const gchar *path, *p; + gchar *name, *freeme; + size_t len; + size_t pathlen; + + path = g_getenv ("PATH"); + if (path == NULL) + { + /* There is no `PATH' in the environment. The default + * search path in libc is the current directory followed by + * the path `confstr' returns for `_CS_PATH'. + */ + + /* In GLib we put . last, for security, and don't use the + * unportable confstr(); UNIX98 does not actually specify + * what to search if PATH is unset. POSIX may, dunno. + */ + + path = "/bin:/usr/bin:."; + } + + len = strlen (file) + 1; + pathlen = strlen (path); + freeme = name = g_malloc (pathlen + len + 1); + + /* Copy the file name at the top, including '\0' */ + memcpy (name + pathlen + 1, file, len); + name = name + pathlen; + /* And add the slash before the filename */ + *name = '/'; + + p = path; + do + { + char *startp; + + path = p; + p = my_strchrnul (path, ':'); + + if (p == path) + /* Two adjacent colons, or a colon at the beginning or the end + * of `PATH' means to search the current directory. + */ + startp = name + 1; + else + startp = memcpy (name - (p - path), path, p - path); + + /* Try to execute this name. If it works, execv will not return. */ + if (envp) + execve (startp, argv, envp); + else + execv (startp, argv); + + if (errno == ENOEXEC) + script_execute (startp, argv, envp, search_path); + + switch (errno) + { + case EACCES: + /* Record the we got a `Permission denied' error. If we end + * up finding no executable we can use, we want to diagnose + * that we did find one but were denied access. + */ + got_eacces = TRUE; + + /* FALL THRU */ + + case ENOENT: +#ifdef ESTALE + case ESTALE: +#endif +#ifdef ENOTDIR + case ENOTDIR: +#endif + /* Those errors indicate the file is missing or not executable + * by us, in which case we want to just try the next path + * directory. + */ + break; + + default: + /* Some other error means we found an executable file, but + * something went wrong executing it; return the error to our + * caller. + */ + g_free (freeme); + return -1; + } + } + while (*p++ != '\0'); + + /* We tried every element and none of them worked. */ + if (got_eacces) + /* At least one failure was due to permissions, so report that + * error. + */ + errno = EACCES; + + g_free (freeme); + } + + /* Return the error from the last attempt (probably ENOENT). */ + return -1; +} diff --git a/graf2d/win32gdk/gdk/src/glib/gspawn.h b/graf2d/win32gdk/gdk/src/glib/gspawn.h index 57530cb6d4b..795bb3ce642 100644 --- a/graf2d/win32gdk/gdk/src/glib/gspawn.h +++ b/graf2d/win32gdk/gdk/src/glib/gspawn.h @@ -21,7 +21,7 @@ #ifndef __G_SPAWN_H__ #define __G_SPAWN_H__ -#include <gerror.h> +#include <glib/gerror.h> G_BEGIN_DECLS @@ -59,13 +59,14 @@ typedef void (* GSpawnChildSetupFunc) (gpointer user_data); typedef enum { G_SPAWN_LEAVE_DESCRIPTORS_OPEN = 1 << 0, - G_SPAWN_DO_NOT_REAP_CHILD = 1 << 1, + G_SPAWN_DO_NOT_REAP_CHILD = 1 << 1, /* look for argv[0] in the path i.e. use execvp() */ - G_SPAWN_SEARCH_PATH = 1 << 2, + G_SPAWN_SEARCH_PATH = 1 << 2, /* Dump output to /dev/null */ - G_SPAWN_STDOUT_TO_DEV_NULL = 1 << 3, - G_SPAWN_STDERR_TO_DEV_NULL = 1 << 4, - G_SPAWN_CHILD_INHERITS_STDIN = 1 << 5 + G_SPAWN_STDOUT_TO_DEV_NULL = 1 << 3, + G_SPAWN_STDERR_TO_DEV_NULL = 1 << 4, + G_SPAWN_CHILD_INHERITS_STDIN = 1 << 5, + G_SPAWN_FILE_AND_ARGV_ZERO = 1 << 6 } GSpawnFlags; GQuark g_spawn_error_quark (void); diff --git a/graf2d/win32gdk/gdk/src/glib/gstrfuncs.c b/graf2d/win32gdk/gdk/src/glib/gstrfuncs.c new file mode 100644 index 00000000000..94e96f187bf --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gstrfuncs.c @@ -0,0 +1,1428 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#define _GNU_SOURCE /* For stpcpy */ + +#include <stdarg.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <locale.h> +#include <ctype.h> /* For tolower() */ +#if !defined (HAVE_STRSIGNAL) || !defined(NO_SYS_SIGLIST_DECL) +#include <signal.h> +#endif +#include "glib.h" + +#ifdef G_OS_WIN32 +#include <windows.h> +#endif + +/* do not include <unistd.h> in this place since it + * inteferes with g_strsignal() on some OSes + */ + +static const guint16 ascii_table_data[256] = { + 0x004, 0x004, 0x004, 0x004, 0x004, 0x004, 0x004, 0x004, + 0x004, 0x104, 0x104, 0x004, 0x104, 0x104, 0x004, 0x004, + 0x004, 0x004, 0x004, 0x004, 0x004, 0x004, 0x004, 0x004, + 0x004, 0x004, 0x004, 0x004, 0x004, 0x004, 0x004, 0x004, + 0x140, 0x0d0, 0x0d0, 0x0d0, 0x0d0, 0x0d0, 0x0d0, 0x0d0, + 0x0d0, 0x0d0, 0x0d0, 0x0d0, 0x0d0, 0x0d0, 0x0d0, 0x0d0, + 0x459, 0x459, 0x459, 0x459, 0x459, 0x459, 0x459, 0x459, + 0x459, 0x459, 0x0d0, 0x0d0, 0x0d0, 0x0d0, 0x0d0, 0x0d0, + 0x0d0, 0x653, 0x653, 0x653, 0x653, 0x653, 0x653, 0x253, + 0x253, 0x253, 0x253, 0x253, 0x253, 0x253, 0x253, 0x253, + 0x253, 0x253, 0x253, 0x253, 0x253, 0x253, 0x253, 0x253, + 0x253, 0x253, 0x253, 0x0d0, 0x0d0, 0x0d0, 0x0d0, 0x0d0, + 0x0d0, 0x473, 0x473, 0x473, 0x473, 0x473, 0x473, 0x073, + 0x073, 0x073, 0x073, 0x073, 0x073, 0x073, 0x073, 0x073, + 0x073, 0x073, 0x073, 0x073, 0x073, 0x073, 0x073, 0x073, + 0x073, 0x073, 0x073, 0x0d0, 0x0d0, 0x0d0, 0x0d0, 0x004 + /* the upper 128 are all zeroes */ +}; + +#if defined(G_PLATFORM_WIN32) && defined(__GNUC__) +__declspec(dllexport) +#endif +const guint16 * const g_ascii_table = ascii_table_data; + +gchar* +g_strdup (const gchar *str) +{ + gchar *new_str; + + if (str) + { + new_str = g_new (char, strlen (str) + 1); + strcpy (new_str, str); + } + else + new_str = NULL; + + return new_str; +} + +gpointer +g_memdup (gconstpointer mem, + guint byte_size) +{ + gpointer new_mem; + + if (mem) + { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } + else + new_mem = NULL; + + return new_mem; +} + +gchar* +g_strndup (const gchar *str, + gsize n) +{ + gchar *new_str; + + if (str) + { + new_str = g_new (gchar, n + 1); + strncpy (new_str, str, n); + new_str[n] = '\0'; + } + else + new_str = NULL; + + return new_str; +} + +gchar* +g_strnfill (gsize length, + gchar fill_char) +{ + register gchar *str, *s, *end; + + str = g_new (gchar, length + 1); + s = str; + end = str + length; + while (s < end) + *(s++) = fill_char; + *s = 0; + + return str; +} + +/** + * g_stpcpy: + * @dest: destination buffer + * @src: source string + * + * Copies a nul-terminated string into the dest buffer, include the + * trailing nul, and return a pointer to the trailing nul byte. + * This is useful for concatenating multiple strings together + * without having to repeatedly scan for the end. + * + * Return value: a pointer to trailing nul byte. + **/ +gchar * +g_stpcpy (gchar *dest, + const gchar *src) +{ +#ifdef HAVE_STPCPY + g_return_val_if_fail (dest != NULL, NULL); + g_return_val_if_fail (src != NULL, NULL); + return stpcpy (dest, src); +#else + register gchar *d = dest; + register const gchar *s = src; + + g_return_val_if_fail (dest != NULL, NULL); + g_return_val_if_fail (src != NULL, NULL); + do + *d++ = *s; + while (*s++ != '\0'); + + return d - 1; +#endif +} + +gchar* +g_strdup_vprintf (const gchar *format, + va_list args1) +{ + gchar *buffer; +#ifdef HAVE_VASPRINTF + vasprintf (&buffer, format, args1); + if (g_mem_is_system_malloc ()) + { + gchar *buffer1 = g_strdup (buffer); + free (buffer); + buffer = buffer1; + } +#else + va_list args2; + + G_VA_COPY (args2, args1); + + buffer = g_new (gchar, g_printf_string_upper_bound (format, args1)); + + vsprintf (buffer, format, args2); + va_end (args2); +#endif + return buffer; +} + +gchar* +g_strdup_printf (const gchar *format, + ...) +{ + gchar *buffer; + va_list args; + + va_start (args, format); + buffer = g_strdup_vprintf (format, args); + va_end (args); + + return buffer; +} + +gchar* +g_strconcat (const gchar *string1, ...) +{ + gsize l; + va_list args; + gchar *s; + gchar *concat; + gchar *ptr; + + g_return_val_if_fail (string1 != NULL, NULL); + + l = 1 + strlen (string1); + va_start (args, string1); + s = va_arg (args, gchar*); + while (s) + { + l += strlen (s); + s = va_arg (args, gchar*); + } + va_end (args); + + concat = g_new (gchar, l); + ptr = concat; + + ptr = g_stpcpy (ptr, string1); + va_start (args, string1); + s = va_arg (args, gchar*); + while (s) + { + ptr = g_stpcpy (ptr, s); + s = va_arg (args, gchar*); + } + va_end (args); + + return concat; +} + +gdouble +g_strtod (const gchar *nptr, + gchar **endptr) +{ + gchar *fail_pos_1; + gchar *fail_pos_2; + gdouble val_1; + gdouble val_2 = 0; + + g_return_val_if_fail (nptr != NULL, 0); + + fail_pos_1 = NULL; + fail_pos_2 = NULL; + + val_1 = strtod (nptr, &fail_pos_1); + + if (fail_pos_1 && fail_pos_1[0] != 0) + { + gchar *old_locale; + + old_locale = g_strdup (setlocale (LC_NUMERIC, NULL)); + setlocale (LC_NUMERIC, "C"); + val_2 = strtod (nptr, &fail_pos_2); + setlocale (LC_NUMERIC, old_locale); + g_free (old_locale); + } + + if (!fail_pos_1 || fail_pos_1[0] == 0 || fail_pos_1 >= fail_pos_2) + { + if (endptr) + *endptr = fail_pos_1; + return val_1; + } + else + { + if (endptr) + *endptr = fail_pos_2; + return val_2; + } +} + +G_CONST_RETURN gchar* +g_strerror (gint errnum) +{ + static GStaticPrivate msg_private = G_STATIC_PRIVATE_INIT; + char *msg; + + // + // Removed a lot fo code as errors are not common on windows that actually would mean anythign here... + // + + msg = g_static_private_get (&msg_private); + if (!msg) + { + msg = g_new (gchar, 64); + g_static_private_set (&msg_private, msg, g_free); + } + + sprintf (msg, "unknown error (%d)", errnum); + + return msg; +} + +G_CONST_RETURN gchar* +g_strsignal (gint signum) +{ + static GStaticPrivate msg_private = G_STATIC_PRIVATE_INIT; + char *msg; + + // + // A lot of code removed by GTW - this will be building only on win32, and signals are... not really the thing + // here! + // + + msg = g_static_private_get (&msg_private); + if (!msg) + { + msg = g_new (gchar, 64); + g_static_private_set (&msg_private, msg, g_free); + } + + sprintf (msg, "unknown signal (%d)", signum); + + return msg; +} + +/* Functions g_strlcpy and g_strlcat were originally developed by + * Todd C. Miller <Todd.Miller@courtesan.com> to simplify writing secure code. + * See ftp://ftp.openbsd.org/pub/OpenBSD/src/lib/libc/string/strlcpy.3 + * for more information. + */ + +#ifdef HAVE_STRLCPY +/* Use the native ones, if available; they might be implemented in assembly */ +gsize +g_strlcpy (gchar *dest, + const gchar *src, + gsize dest_size) +{ + g_return_val_if_fail (dest != NULL, 0); + g_return_val_if_fail (src != NULL, 0); + + return strlcpy (dest, src, dest_size); +} + +gsize +g_strlcat (gchar *dest, + const gchar *src, + gsize dest_size) +{ + g_return_val_if_fail (dest != NULL, 0); + g_return_val_if_fail (src != NULL, 0); + + return strlcat (dest, src, dest_size); +} + +#else /* ! HAVE_STRLCPY */ +/* g_strlcpy + * + * Copy string src to buffer dest (of buffer size dest_size). At most + * dest_size-1 characters will be copied. Always NUL terminates + * (unless dest_size == 0). This function does NOT allocate memory. + * Unlike strncpy, this function doesn't pad dest (so it's often faster). + * Returns size of attempted result, strlen(src), + * so if retval >= dest_size, truncation occurred. + */ +gsize +g_strlcpy (gchar *dest, + const gchar *src, + gsize dest_size) +{ + register gchar *d = dest; + register const gchar *s = src; + register gsize n = dest_size; + + g_return_val_if_fail (dest != NULL, 0); + g_return_val_if_fail (src != NULL, 0); + + /* Copy as many bytes as will fit */ + if (n != 0 && --n != 0) + do + { + register gchar c = *s++; + + *d++ = c; + if (c == 0) + break; + } + while (--n != 0); + + /* If not enough room in dest, add NUL and traverse rest of src */ + if (n == 0) + { + if (dest_size != 0) + *d = 0; + while (*s++) + ; + } + + return s - src - 1; /* count does not include NUL */ +} + +/* g_strlcat + * + * Appends string src to buffer dest (of buffer size dest_size). + * At most dest_size-1 characters will be copied. + * Unlike strncat, dest_size is the full size of dest, not the space left over. + * This function does NOT allocate memory. + * This always NUL terminates (unless siz == 0 or there were no NUL characters + * in the dest_size characters of dest to start with). + * Returns size of attempted result, which is + * MIN (dest_size, strlen (original dest)) + strlen (src), + * so if retval >= dest_size, truncation occurred. + */ +gsize +g_strlcat (gchar *dest, + const gchar *src, + gsize dest_size) +{ + register gchar *d = dest; + register const gchar *s = src; + register gsize bytes_left = dest_size; + gsize dlength; /* Logically, MIN (strlen (d), dest_size) */ + + g_return_val_if_fail (dest != NULL, 0); + g_return_val_if_fail (src != NULL, 0); + + /* Find the end of dst and adjust bytes left but don't go past end */ + while (*d != 0 && bytes_left-- != 0) + d++; + dlength = d - dest; + bytes_left = dest_size - dlength; + + if (bytes_left == 0) + return dlength + strlen (s); + + while (*s != 0) + { + if (bytes_left != 1) + { + *d++ = *s; + bytes_left--; + } + s++; + } + *d = 0; + + return dlength + (s - src); /* count does not include NUL */ +} +#endif /* ! HAVE_STRLCPY */ + +/** + * g_ascii_strdown: + * @str: a string + * @len: length of @str in bytes, or -1 if @str is nul-terminated. + * + * Converts all upper case ASCII letters to lower case ASCII letters. + * + * Return value: a newly allocated string, with all the upper case + * characters in @str converted to lower case, with + * semantics that exactly match g_ascii_tolower. (Note + * that this is unlike the old g_strdown, which modified + * the string in place.) + **/ +gchar* +g_ascii_strdown (const gchar *str, + gint len) +{ + gchar *result, *s; + + g_return_val_if_fail (str != NULL, NULL); + + if (len < 0) + len = strlen (str); + + result = g_strndup (str, len); + for (s = result; *s; s++) + *s = g_ascii_tolower (*s); + + return result; +} + +/** + * g_ascii_strup: + * @str: a string + * @len: length of @str in bytes, or -1 if @str is nul-terminated. + * + * Converts all lower case ASCII letters to upper case ASCII letters. + * + * Return value: a newly allocated string, with all the lower case + * characters in @str converted to upper case, with + * semantics that exactly match g_ascii_toupper. (Note + * that this is unlike the old g_strup, which modified + * the string in place.) + **/ +gchar* +g_ascii_strup (const gchar *str, + gint len) +{ + gchar *result, *s; + + g_return_val_if_fail (str != NULL, NULL); + + if (len < 0) + len = strlen (str); + + result = g_strndup (str, len); + for (s = result; *s; s++) + *s = g_ascii_toupper (*s); + + return result; +} + +gchar* +g_strdown (gchar *string) +{ + register guchar *s; + + g_return_val_if_fail (string != NULL, NULL); + + s = (guchar *) string; + + while (*s) + { + if (isupper (*s)) + *s = tolower (*s); + s++; + } + + return (gchar *) string; +} + +gchar* +g_strup (gchar *string) +{ + register guchar *s; + + g_return_val_if_fail (string != NULL, NULL); + + s = (guchar *) string; + + while (*s) + { + if (islower (*s)) + *s = toupper (*s); + s++; + } + + return (gchar *) string; +} + +gchar* +g_strreverse (gchar *string) +{ + g_return_val_if_fail (string != NULL, NULL); + + if (*string) + { + register gchar *h, *t; + + h = string; + t = string + strlen (string) - 1; + + while (h < t) + { + register gchar c; + + c = *h; + *h = *t; + h++; + *t = c; + t--; + } + } + + return string; +} + +/** + * g_ascii_tolower: + * @c: any character + * + * Convert a character to ASCII lower case. + * + * Unlike the standard C library tolower function, this only + * recognizes standard ASCII letters and ignores the locale, returning + * all non-ASCII characters unchanged, even if they are lower case + * letters in a particular character set. Also unlike the standard + * library function, this takes and returns a char, not an int, so + * don't call it on EOF but no need to worry about casting to guchar + * before passing a possibly non-ASCII character in. + * + * Return value: the result of converting @c to lower case. + * If @c is not an ASCII upper case letter, + * @c is returned unchanged. + **/ +gchar +g_ascii_tolower (gchar c) +{ + return g_ascii_isupper (c) ? c - 'A' + 'a' : c; +} + +/** + * g_ascii_toupper: + * @c: any character + * + * Convert a character to ASCII upper case. + * + * Unlike the standard C library toupper function, this only + * recognizes standard ASCII letters and ignores the locale, returning + * all non-ASCII characters unchanged, even if they are upper case + * letters in a particular character set. Also unlike the standard + * library function, this takes and returns a char, not an int, so + * don't call it on EOF but no need to worry about casting to guchar + * before passing a possibly non-ASCII character in. + * + * Return value: the result of converting @c to upper case. + * If @c is not an ASCII lower case letter, + * @c is returned unchanged. + **/ +gchar +g_ascii_toupper (gchar c) +{ + return g_ascii_islower (c) ? c - 'a' + 'A' : c; +} + +/** + * g_ascii_digit_value: + * @c: an ASCII character + * + * Determines the numeric value of a character as a decimal + * digit. Differs from g_unichar_digit_value because it takes + * a char, so there's no worry about sign extension if characters + * are signed. + * + * Return value: If @c is a decimal digit (according to + * `g_ascii_isdigit'), its numeric value. Otherwise, -1. + **/ +int +g_ascii_digit_value (gchar c) +{ + if (g_ascii_isdigit (c)) + return c - '0'; + return -1; +} + +/** + * g_ascii_xdigit_value: + * @c: an ASCII character + * + * Determines the numeric value of a character as a hexidecimal + * digit. Differs from g_unichar_xdigit_value because it takes + * a char, so there's no worry about sign extension if characters + * are signed. + * + * Return value: If @c is a hex digit (according to + * `g_ascii_isxdigit'), its numeric value. Otherwise, -1. + **/ +int +g_ascii_xdigit_value (gchar c) +{ + if (c >= 'A' && c <= 'F') + return c - 'A' + 10; + if (c >= 'a' && c <= 'f') + return c - 'a' + 10; + return g_ascii_digit_value (c); +} + +/** + * g_ascii_strcasecmp: + * @s1: string to compare with @s2 + * @s2: string to compare with @s1 + * + * Compare two strings, ignoring the case of ASCII characters. + * + * Unlike the BSD strcasecmp function, this only recognizes standard + * ASCII letters and ignores the locale, treating all non-ASCII + * characters as if they are not letters. + * + * Return value: an integer less than, equal to, or greater than + * zero if @s1 is found, respectively, to be less than, + * to match, or to be greater than @s2. + **/ +gint +g_ascii_strcasecmp (const gchar *s1, + const gchar *s2) +{ + gint c1, c2; + + g_return_val_if_fail (s1 != NULL, 0); + g_return_val_if_fail (s2 != NULL, 0); + + while (*s1 && *s2) + { + c1 = (gint)(guchar) g_ascii_tolower (*s1); + c2 = (gint)(guchar) g_ascii_tolower (*s2); + if (c1 != c2) + return (c1 - c2); + s1++; s2++; + } + + return (((gint)(guchar) *s1) - ((gint)(guchar) *s2)); +} + +/** + * g_ascii_strncasecmp: + * @s1: string to compare with @s2 + * @s2: string to compare with @s1 + * @n: number of characters to compare + * + * Compare @s1 and @s2, ignoring the case of ASCII characters and any + * characters after the first @n in each string. + * + * Unlike the BSD strcasecmp function, this only recognizes standard + * ASCII letters and ignores the locale, treating all non-ASCII + * characters as if they are not letters. + * + * Return value: an integer less than, equal to, or greater than zero + * if the first @n bytes of @s1 is found, respectively, + * to be less than, to match, or to be greater than the + * first @n bytes of @s2. + **/ +gint +g_ascii_strncasecmp (const gchar *s1, + const gchar *s2, + guint n) +{ + gint c1, c2; + + g_return_val_if_fail (s1 != NULL, 0); + g_return_val_if_fail (s2 != NULL, 0); + + while (n && *s1 && *s2) + { + n -= 1; + c1 = (gint)(guchar) g_ascii_tolower (*s1); + c2 = (gint)(guchar) g_ascii_tolower (*s2); + if (c1 != c2) + return (c1 - c2); + s1++; s2++; + } + + if (n) + return (((gint) (guchar) *s1) - ((gint) (guchar) *s2)); + else + return 0; +} + +gint +g_strcasecmp (const gchar *s1, + const gchar *s2) +{ +#ifdef HAVE_STRCASECMP + g_return_val_if_fail (s1 != NULL, 0); + g_return_val_if_fail (s2 != NULL, 0); + + return strcasecmp (s1, s2); +#else + gint c1, c2; + + g_return_val_if_fail (s1 != NULL, 0); + g_return_val_if_fail (s2 != NULL, 0); + + while (*s1 && *s2) + { + /* According to A. Cox, some platforms have islower's that + * don't work right on non-uppercase + */ + c1 = isupper ((guchar)*s1) ? tolower ((guchar)*s1) : *s1; + c2 = isupper ((guchar)*s2) ? tolower ((guchar)*s2) : *s2; + if (c1 != c2) + return (c1 - c2); + s1++; s2++; + } + + return (((gint)(guchar) *s1) - ((gint)(guchar) *s2)); +#endif +} + +gint +g_strncasecmp (const gchar *s1, + const gchar *s2, + gsize n) +{ +#ifdef HAVE_STRNCASECMP + return strncasecmp (s1, s2, n); +#else + gint c1, c2; + + g_return_val_if_fail (s1 != NULL, 0); + g_return_val_if_fail (s2 != NULL, 0); + + while (n && *s1 && *s2) + { + n -= 1; + /* According to A. Cox, some platforms have islower's that + * don't work right on non-uppercase + */ + c1 = isupper ((guchar)*s1) ? tolower ((guchar)*s1) : *s1; + c2 = isupper ((guchar)*s2) ? tolower ((guchar)*s2) : *s2; + if (c1 != c2) + return (c1 - c2); + s1++; s2++; + } + + if (n) + return (((gint) (guchar) *s1) - ((gint) (guchar) *s2)); + else + return 0; +#endif +} + +gchar* +g_strdelimit (gchar *string, + const gchar *delimiters, + gchar new_delim) +{ + register gchar *c; + + g_return_val_if_fail (string != NULL, NULL); + + if (!delimiters) + delimiters = G_STR_DELIMITERS; + + for (c = string; *c; c++) + { + if (strchr (delimiters, *c)) + *c = new_delim; + } + + return string; +} + +gchar* +g_strcanon (gchar *string, + const gchar *valid_chars, + gchar substitutor) +{ + register gchar *c; + + g_return_val_if_fail (string != NULL, NULL); + g_return_val_if_fail (valid_chars != NULL, NULL); + + for (c = string; *c; c++) + { + if (!strchr (valid_chars, *c)) + *c = substitutor; + } + + return string; +} + +gchar* +g_strcompress (const gchar *source) +{ + const gchar *p = source, *octal; + gchar *dest = g_malloc (strlen (source) + 1); + gchar *q = dest; + + while (*p) + { + if (*p == '\\') + { + p++; + switch (*p) + { + case '0': case '1': case '2': case '3': case '4': + case '5': case '6': case '7': + *q = 0; + octal = p; + while ((p < octal + 3) && (*p >= '0') && (*p <= '7')) + { + *q = (*q * 8) + (*p - '0'); + p++; + } + q++; + p--; + break; + case 'b': + *q++ = '\b'; + break; + case 'f': + *q++ = '\f'; + break; + case 'n': + *q++ = '\n'; + break; + case 'r': + *q++ = '\r'; + break; + case 't': + *q++ = '\t'; + break; + default: /* Also handles \" and \\ */ + *q++ = *p; + break; + } + } + else + *q++ = *p; + p++; + } + *q = 0; + + return dest; +} + +gchar * +g_strescape (const gchar *source, + const gchar *exceptions) +{ + const guchar *p; + gchar *dest; + gchar *q; + guchar excmap[256]; + + g_return_val_if_fail (source != NULL, NULL); + + p = (guchar *) source; + /* Each source byte needs maximally four destination chars (\777) */ + q = dest = g_malloc (strlen (source) * 4 + 1); + + memset (excmap, 0, 256); + if (exceptions) + { + guchar *e = (guchar *) exceptions; + + while (*e) + { + excmap[*e] = 1; + e++; + } + } + + while (*p) + { + if (excmap[*p]) + *q++ = *p; + else + { + switch (*p) + { + case '\b': + *q++ = '\\'; + *q++ = 'b'; + break; + case '\f': + *q++ = '\\'; + *q++ = 'f'; + break; + case '\n': + *q++ = '\\'; + *q++ = 'n'; + break; + case '\r': + *q++ = '\\'; + *q++ = 'r'; + break; + case '\t': + *q++ = '\\'; + *q++ = 't'; + break; + case '\\': + *q++ = '\\'; + *q++ = '\\'; + break; + case '"': + *q++ = '\\'; + *q++ = '"'; + break; + default: + if ((*p < ' ') || (*p >= 0177)) + { + *q++ = '\\'; + *q++ = '0' + (((*p) >> 6) & 07); + *q++ = '0' + (((*p) >> 3) & 07); + *q++ = '0' + ((*p) & 07); + } + else + *q++ = *p; + break; + } + } + p++; + } + *q = 0; + return dest; +} + +gchar* +g_strchug (gchar *string) +{ + guchar *start; + + g_return_val_if_fail (string != NULL, NULL); + + for (start = (guchar*) string; *start && g_ascii_isspace (*start); start++) + ; + + g_memmove (string, start, strlen ((gchar *) start) + 1); + + return string; +} + +gchar* +g_strchomp (gchar *string) +{ + gchar *s; + + g_return_val_if_fail (string != NULL, NULL); + + if (!*string) + return string; + + for (s = string + strlen (string) - 1; s >= string && g_ascii_isspace ((guchar)*s); + s--) + *s = '\0'; + + return string; +} + +/** + * g_strsplit: + * @string: a string to split. + * @delimiter: a string which specifies the places at which to split the string. + * The delimiter is not included in any of the resulting strings, unless + * max_tokens is reached. + * @max_tokens: the maximum number of pieces to split @string into. If this is + * less than 1, the string is split completely. + * + * Splits a string into a maximum of @max_tokens pieces, using the given + * @delimiter. If @max_tokens is reached, the remainder of @string is appended + * to the last token. + * + * As a special case, the result of splitting the empty string "" is an empty + * vector, not a vector containing a single string. The reason for this + * special case is that being able to represent a empty vector is typically + * more useful than consistent handling of empty elements. If you do need + * to represent empty elements, you'll need to check for the empty string + * before calling g_strsplit(). + * + * Return value: a newly-allocated %NULL-terminated array of strings. Use g_strfreev() + * to free it. + **/ +gchar** +g_strsplit (const gchar *string, + const gchar *delimiter, + gint max_tokens) +{ + GSList *string_list = NULL, *slist; + gchar **str_array, *s; + guint n = 0; + const gchar *remainder; + + g_return_val_if_fail (string != NULL, NULL); + g_return_val_if_fail (delimiter != NULL, NULL); + g_return_val_if_fail (delimiter[0] != '\0', NULL); + + if (max_tokens < 1) + max_tokens = G_MAXINT; + else + --max_tokens; + + remainder = string; + s = strstr (remainder, delimiter); + if (s) + { + gsize delimiter_len = strlen (delimiter); + + do + { + gsize len; + gchar *new_string; + + len = s - remainder; + new_string = g_new (gchar, len + 1); + strncpy (new_string, remainder, len); + new_string[len] = 0; + string_list = g_slist_prepend (string_list, new_string); + n++; + remainder = s + delimiter_len; + s = strstr (remainder, delimiter); + } + while (--max_tokens && s); + } + if (*string) + { + n++; + string_list = g_slist_prepend (string_list, g_strdup (remainder)); + } + + str_array = g_new (gchar*, n + 1); + + str_array[n--] = NULL; + for (slist = string_list; slist; slist = slist->next) + str_array[n--] = slist->data; + + g_slist_free (string_list); + + return str_array; +} + +void +g_strfreev (gchar **str_array) +{ + if (str_array) + { + int i; + + for(i = 0; str_array[i] != NULL; i++) + g_free(str_array[i]); + + g_free (str_array); + } +} + +/** + * g_strdupv: + * @str_array: %NULL-terminated array of strings + * + * Copies %NULL-terminated array of strings. The copy is a deep copy; + * the new array should be freed by first freeing each string, then + * the array itself. g_strfreev() does this for you. If called + * on a %NULL value, g_strdupv() simply returns %NULL. + * + * Return value: a new %NULL-terminated array of strings + **/ +gchar** +g_strdupv (gchar **str_array) +{ + if (str_array) + { + gint i; + gchar **retval; + + i = 0; + while (str_array[i]) + ++i; + + retval = g_new (gchar*, i + 1); + + i = 0; + while (str_array[i]) + { + retval[i] = g_strdup (str_array[i]); + ++i; + } + retval[i] = NULL; + + return retval; + } + else + return NULL; +} + +gchar* +g_strjoinv (const gchar *separator, + gchar **str_array) +{ + gchar *string; + gchar *ptr; + + g_return_val_if_fail (str_array != NULL, NULL); + + if (separator == NULL) + separator = ""; + + if (*str_array) + { + gint i; + gsize len; + gsize separator_len; + + separator_len = strlen (separator); + /* First part, getting length */ + len = 1 + strlen (str_array[0]); + for (i = 1; str_array[i] != NULL; i++) + len += strlen (str_array[i]); + len += separator_len * (i - 1); + + /* Second part, building string */ + string = g_new (gchar, len); + ptr = g_stpcpy (string, *str_array); + for (i = 1; str_array[i] != NULL; i++) + { + ptr = g_stpcpy (ptr, separator); + ptr = g_stpcpy (ptr, str_array[i]); + } + } + else + string = g_strdup (""); + + return string; +} + +gchar* +g_strjoin (const gchar *separator, + ...) +{ + gchar *string, *s; + va_list args; + gsize len; + gsize separator_len; + gchar *ptr; + + if (separator == NULL) + separator = ""; + + separator_len = strlen (separator); + + va_start (args, separator); + + s = va_arg (args, gchar*); + + if (s) + { + /* First part, getting length */ + len = 1 + strlen (s); + + s = va_arg (args, gchar*); + while (s) + { + len += separator_len + strlen (s); + s = va_arg (args, gchar*); + } + va_end (args); + + /* Second part, building string */ + string = g_new (gchar, len); + + va_start (args, separator); + + s = va_arg (args, gchar*); + ptr = g_stpcpy (string, s); + + s = va_arg (args, gchar*); + while (s) + { + ptr = g_stpcpy (ptr, separator); + ptr = g_stpcpy (ptr, s); + s = va_arg (args, gchar*); + } + } + else + string = g_strdup (""); + + va_end (args); + + return string; +} + + +/** + * g_strstr_len: + * @haystack: a string + * @haystack_len: The maximum length of haystack + * @needle: The string to search for. + * + * Searches the string haystack for the first occurrence + * of the string needle, limiting the length of the search + * to haystack_len. + * + * Return value: A pointer to the found occurrence, or + * NULL if not found. + **/ +gchar * +g_strstr_len (const gchar *haystack, + gssize haystack_len, + const gchar *needle) +{ + g_return_val_if_fail (haystack != NULL, NULL); + g_return_val_if_fail (needle != NULL, NULL); + + if (haystack_len < 0) + return strstr (haystack, needle); + else + { + const gchar *p = haystack; + gsize needle_len = strlen (needle); + const gchar *end; + gsize i; + + if (needle_len == 0) + return (gchar *)haystack; + + if (haystack_len < needle_len) + return NULL; + + end = haystack + haystack_len - needle_len; + + while (*p && p <= end) + { + for (i = 0; i < needle_len; i++) + if (p[i] != needle[i]) + goto next; + + return (gchar *)p; + + next: + p++; + } + + return NULL; + } +} + +/** + * g_strrstr_len: + * @haystack: a nul-terminated string + * @needle: The nul-terminated string to search for. + * + * Searches the string haystack for the last occurrence + * of the string needle. + * + * Return value: A pointer to the found occurrence, or + * NULL if not found. + **/ +gchar * +g_strrstr (const gchar *haystack, + const gchar *needle) +{ + gsize i; + gsize needle_len; + gsize haystack_len; + const gchar *p; + + g_return_val_if_fail (haystack != NULL, NULL); + g_return_val_if_fail (needle != NULL, NULL); + + needle_len = strlen (needle); + haystack_len = strlen (haystack); + + if (needle_len == 0) + return (gchar *)haystack; + + if (haystack_len < needle_len) + return NULL; + + p = haystack + haystack_len - needle_len; + + while (p >= haystack) + { + for (i = 0; i < needle_len; i++) + if (p[i] != needle[i]) + goto next; + + return (gchar *)p; + + next: + p--; + } + + return NULL; +} + +/** + * g_strrstr_len: + * @haystack: a nul-terminated string + * @haystack_len: The maximum length of haystack + * @needle: The nul-terminated string to search for. + * + * Searches the string haystack for the last occurrence + * of the string needle, limiting the length of the search + * to haystack_len. + * + * Return value: A pointer to the found occurrence, or + * NULL if not found. + **/ +gchar * +g_strrstr_len (const gchar *haystack, + gssize haystack_len, + const gchar *needle) +{ + g_return_val_if_fail (haystack != NULL, NULL); + g_return_val_if_fail (needle != NULL, NULL); + + if (haystack_len < 0) + return g_strrstr (haystack, needle); + else + { + gsize needle_len = strlen (needle); + const gchar *haystack_max = haystack + haystack_len; + const gchar *p = haystack; + gsize i; + + while (p < haystack_max && *p) + p++; + + if (p < haystack + needle_len) + return NULL; + + p -= needle_len; + + while (p >= haystack) + { + for (i = 0; i < needle_len; i++) + if (p[i] != needle[i]) + goto next; + + return (gchar *)p; + + next: + p--; + } + + return NULL; + } +} + + diff --git a/graf2d/win32gdk/gdk/src/glib/gstrfuncs.h b/graf2d/win32gdk/gdk/src/glib/gstrfuncs.h index ac6b456de67..2f5bfbfd468 100644 --- a/graf2d/win32gdk/gdk/src/glib/gstrfuncs.h +++ b/graf2d/win32gdk/gdk/src/glib/gstrfuncs.h @@ -28,66 +28,151 @@ #define __G_STRFUNCS_H__ #include <stdarg.h> -#include <g_types.h> +#include <glib/gtypes.h> G_BEGIN_DECLS +/* Functions like the ones in <ctype.h> that are not affected by locale. */ +typedef enum { + G_ASCII_ALNUM = 1 << 0, + G_ASCII_ALPHA = 1 << 1, + G_ASCII_CNTRL = 1 << 2, + G_ASCII_DIGIT = 1 << 3, + G_ASCII_GRAPH = 1 << 4, + G_ASCII_LOWER = 1 << 5, + G_ASCII_PRINT = 1 << 6, + G_ASCII_PUNCT = 1 << 7, + G_ASCII_SPACE = 1 << 8, + G_ASCII_UPPER = 1 << 9, + G_ASCII_XDIGIT = 1 << 10 +} GAsciiType; + +GLIB_VAR const guint16 * const g_ascii_table; + +#define g_ascii_isalnum(c) \ + ((g_ascii_table[(guchar) (c)] & G_ASCII_ALNUM) != 0) + +#define g_ascii_isalpha(c) \ + ((g_ascii_table[(guchar) (c)] & G_ASCII_ALPHA) != 0) + +#define g_ascii_iscntrl(c) \ + ((g_ascii_table[(guchar) (c)] & G_ASCII_CNTRL) != 0) + +#define g_ascii_isdigit(c) \ + ((g_ascii_table[(guchar) (c)] & G_ASCII_DIGIT) != 0) + +#define g_ascii_isgraph(c) \ + ((g_ascii_table[(guchar) (c)] & G_ASCII_GRAPH) != 0) + +#define g_ascii_islower(c) \ + ((g_ascii_table[(guchar) (c)] & G_ASCII_LOWER) != 0) + +#define g_ascii_isprint(c) \ + ((g_ascii_table[(guchar) (c)] & G_ASCII_PRINT) != 0) + +#define g_ascii_ispunct(c) \ + ((g_ascii_table[(guchar) (c)] & G_ASCII_PUNCT) != 0) + +#define g_ascii_isspace(c) \ + ((g_ascii_table[(guchar) (c)] & G_ASCII_SPACE) != 0) + +#define g_ascii_isupper(c) \ + ((g_ascii_table[(guchar) (c)] & G_ASCII_UPPER) != 0) + +#define g_ascii_isxdigit(c) \ + ((g_ascii_table[(guchar) (c)] & G_ASCII_XDIGIT) != 0) + +gchar g_ascii_tolower (gchar c) G_GNUC_CONST; +gchar g_ascii_toupper (gchar c) G_GNUC_CONST; + +gint g_ascii_digit_value (gchar c) G_GNUC_CONST; +gint g_ascii_xdigit_value (gchar c) G_GNUC_CONST; + /* String utility functions that modify a string argument or * return a constant string that must not be freed. */ #define G_STR_DELIMITERS "_-|> <." -gchar* g_strdelimit (gchar *string, - const gchar *delimiters, - gchar new_delimiter); -gchar* g_strcanon (gchar *string, - const gchar *valid_chars, - gchar subsitutor); -gdouble g_strtod (const gchar *nptr, - gchar **endptr); -gchar* g_strerror (gint errnum) G_GNUC_CONST; -gchar* g_strsignal (gint signum) G_GNUC_CONST; -gint g_strcasecmp (const gchar *s1, - const gchar *s2); -gint g_strncasecmp (const gchar *s1, - const gchar *s2, - guint n); -gchar* g_strdown (gchar *string); -gchar* g_strup (gchar *string); -gchar* g_strreverse (gchar *string); -gsize g_strlcpy (gchar *dest, - const gchar *src, - gsize dest_size); -gsize g_strlcat (gchar *dest, - const gchar *src, - gsize dest_size); +gchar* g_strdelimit (gchar *string, + const gchar *delimiters, + gchar new_delimiter); +gchar* g_strcanon (gchar *string, + const gchar *valid_chars, + gchar substitutor); +gdouble g_strtod (const gchar *nptr, + gchar **endptr); +G_CONST_RETURN gchar* g_strerror (gint errnum) G_GNUC_CONST; +G_CONST_RETURN gchar* g_strsignal (gint signum) G_GNUC_CONST; +gchar* g_strreverse (gchar *string); +gsize g_strlcpy (gchar *dest, + const gchar *src, + gsize dest_size); +gsize g_strlcat (gchar *dest, + const gchar *src, + gsize dest_size); +gchar * g_strstr_len (const gchar *haystack, + gssize haystack_len, + const gchar *needle); +gchar * g_strrstr (const gchar *haystack, + const gchar *needle); +gchar * g_strrstr_len (const gchar *haystack, + gssize haystack_len, + const gchar *needle); + /* removes leading spaces */ -gchar* g_strchug (gchar *string); +gchar* g_strchug (gchar *string); /* removes trailing spaces */ -gchar* g_strchomp (gchar *string); +gchar* g_strchomp (gchar *string); /* removes leading & trailing spaces */ #define g_strstrip( string ) g_strchomp (g_strchug (string)) +gint g_ascii_strcasecmp (const gchar *s1, + const gchar *s2); +gint g_ascii_strncasecmp (const gchar *s1, + const gchar *s2, + guint n); +gchar* g_ascii_strdown (const gchar *str, + gssize len); +gchar* g_ascii_strup (const gchar *str, + gssize len); + +#ifndef G_DISABLE_DEPRECATED + +/* The following four functions are deprecated and will be removed in + * the next major release. They use the locale-specific tolower and + * toupper, which is almost never the right thing. + */ + +gint g_strcasecmp (const gchar *s1, + const gchar *s2); +gint g_strncasecmp (const gchar *s1, + const gchar *s2, + guint n); +gchar* g_strdown (gchar *string); +gchar* g_strup (gchar *string); + +#endif /* G_DISABLE_DEPRECATED */ + /* String utility functions that return a newly allocated string which * ought to be freed with g_free from the caller at some point. */ -gchar* g_strdup (const gchar *str); -gchar* g_strdup_printf (const gchar *format, - ...) G_GNUC_PRINTF (1, 2); -gchar* g_strdup_vprintf (const gchar *format, - va_list args); -gchar* g_strndup (const gchar *str, - guint n); -gchar* g_strnfill (guint length, - gchar fill_char); -gchar* g_strconcat (const gchar *string1, - ...); /* NULL terminated */ -gchar* g_strjoin (const gchar *separator, - ...); /* NULL terminated */ +gchar* g_strdup (const gchar *str); +gchar* g_strdup_printf (const gchar *format, + ...) G_GNUC_PRINTF (1, 2); +gchar* g_strdup_vprintf (const gchar *format, + va_list args); +gchar* g_strndup (const gchar *str, + gsize n); +gchar* g_strnfill (gsize length, + gchar fill_char); +gchar* g_strconcat (const gchar *string1, + ...); /* NULL terminated */ +gchar* g_strjoin (const gchar *separator, + ...); /* NULL terminated */ /* Make a copy of a string interpreting C string -style escape * sequences. Inverse of g_strescape. The recognized sequences are \b * \f \n \r \t \\ \" and the octal format. */ -gchar* g_strcompress (const gchar *source); +gchar* g_strcompress (const gchar *source); /* Copy a string escaping nonprintable characters like in C strings. * Inverse of g_strcompress. The exceptions parameter, if non-NULL, points @@ -97,11 +182,11 @@ gchar* g_strcompress (const gchar *source); * Luckily this function wasn't used much, using NULL as second parameter * provides mostly identical semantics. */ -gchar* g_strescape (const gchar *source, - const gchar *exceptions); +gchar* g_strescape (const gchar *source, + const gchar *exceptions); -gpointer g_memdup (gconstpointer mem, - guint byte_size); +gpointer g_memdup (gconstpointer mem, + guint byte_size); /* NULL terminated string arrays. * g_strsplit() splits up string into max_tokens tokens at delim and @@ -111,13 +196,16 @@ gpointer g_memdup (gconstpointer mem, * g_strfreev() frees the array itself and all of its strings. * g_strdupv() copies a NULL-terminated array of strings */ -gchar** g_strsplit (const gchar *string, - const gchar *delimiter, - gint max_tokens); -gchar* g_strjoinv (const gchar *separator, - gchar **str_array); -void g_strfreev (gchar **str_array); -gchar** g_strdupv (gchar **str_array); +gchar** g_strsplit (const gchar *string, + const gchar *delimiter, + gint max_tokens); +gchar* g_strjoinv (const gchar *separator, + gchar **str_array); +void g_strfreev (gchar **str_array); +gchar** g_strdupv (gchar **str_array); + +gchar* g_stpcpy (gchar *dest, + const char *src); G_END_DECLS diff --git a/graf2d/win32gdk/gdk/src/glib/gstring.c b/graf2d/win32gdk/gdk/src/glib/gstring.c new file mode 100644 index 00000000000..a062bbbc11a --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gstring.c @@ -0,0 +1,750 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif +#include <stdarg.h> +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <ctype.h> +#include "glib.h" + +struct _GStringChunk +{ + GHashTable *const_table; + GSList *storage_list; + gsize storage_next; + gsize this_size; + gsize default_size; +}; + +G_LOCK_DEFINE_STATIC (string_mem_chunk); +static GMemChunk *string_mem_chunk = NULL; + +/* Hash Functions. + */ + +gboolean +g_str_equal (gconstpointer v1, + gconstpointer v2) +{ + const gchar *string1 = v1; + const gchar *string2 = v2; + + return strcmp (string1, string2) == 0; +} + +/* 31 bit hash function */ +guint +g_str_hash (gconstpointer key) +{ + const char *p = key; + guint h = *p; + + if (h) + for (p += 1; *p != '\0'; p++) + h = (h << 5) - h + *p; + + return h; +} + +#define MY_MAXSIZE ((gsize)-1) + +static inline gsize +nearest_power (gsize base, gsize num) +{ + if (num > MY_MAXSIZE / 2) + { + return MY_MAXSIZE; + } + else + { + gsize n = base; + + while (n < num) + n <<= 1; + + return n; + } +} + +/* String Chunks. + */ + +GStringChunk* +g_string_chunk_new (gsize default_size) +{ + GStringChunk *new_chunk = g_new (GStringChunk, 1); + gsize size = 1; + + size = nearest_power (1, default_size); + + new_chunk->const_table = NULL; + new_chunk->storage_list = NULL; + new_chunk->storage_next = size; + new_chunk->default_size = size; + new_chunk->this_size = size; + + return new_chunk; +} + +void +g_string_chunk_free (GStringChunk *chunk) +{ + GSList *tmp_list; + + g_return_if_fail (chunk != NULL); + + if (chunk->storage_list) + { + for (tmp_list = chunk->storage_list; tmp_list; tmp_list = tmp_list->next) + g_free (tmp_list->data); + + g_slist_free (chunk->storage_list); + } + + if (chunk->const_table) + g_hash_table_destroy (chunk->const_table); + + g_free (chunk); +} + +gchar* +g_string_chunk_insert (GStringChunk *chunk, + const gchar *string) +{ + gsize len = strlen (string); + char* pos; + + g_return_val_if_fail (chunk != NULL, NULL); + + if ((chunk->storage_next + len + 1) > chunk->this_size) + { + gsize new_size = nearest_power (chunk->default_size, len + 1); + + chunk->storage_list = g_slist_prepend (chunk->storage_list, + g_new (char, new_size)); + + chunk->this_size = new_size; + chunk->storage_next = 0; + } + + pos = ((char *) chunk->storage_list->data) + chunk->storage_next; + + strcpy (pos, string); + + chunk->storage_next += len + 1; + + return pos; +} + +gchar* +g_string_chunk_insert_const (GStringChunk *chunk, + const gchar *string) +{ + char* lookup; + + g_return_val_if_fail (chunk != NULL, NULL); + + if (!chunk->const_table) + chunk->const_table = g_hash_table_new (g_str_hash, g_str_equal); + + lookup = (char*) g_hash_table_lookup (chunk->const_table, (gchar *)string); + + if (!lookup) + { + lookup = g_string_chunk_insert (chunk, string); + g_hash_table_insert (chunk->const_table, lookup, lookup); + } + + return lookup; +} + +/* Strings. + */ +static void +g_string_maybe_expand (GString* string, + gsize len) +{ + if (string->len + len >= string->allocated_len) + { + string->allocated_len = nearest_power (1, string->len + len + 1); + string->str = g_realloc (string->str, string->allocated_len); + } +} + +GString* +g_string_sized_new (gsize dfl_size) +{ + GString *string; + + G_LOCK (string_mem_chunk); + if (!string_mem_chunk) + string_mem_chunk = g_mem_chunk_new ("string mem chunk", + sizeof (GString), + 1024, G_ALLOC_AND_FREE); + + string = g_chunk_new (GString, string_mem_chunk); + G_UNLOCK (string_mem_chunk); + + string->allocated_len = 0; + string->len = 0; + string->str = NULL; + + g_string_maybe_expand (string, MAX (dfl_size, 2)); + string->str[0] = 0; + + return string; +} + +GString* +g_string_new (const gchar *init) +{ + GString *string; + + string = g_string_sized_new (init ? strlen (init) + 2 : 2); + + if (init) + g_string_append (string, init); + + return string; +} + +GString* +g_string_new_len (const gchar *init, + gssize len) +{ + GString *string; + + if (len < 0) + return g_string_new (init); + else + { + string = g_string_sized_new (len); + + if (init) + g_string_append_len (string, init, len); + + return string; + } +} + +gchar* +g_string_free (GString *string, + gboolean free_segment) +{ + gchar *segment; + + g_return_val_if_fail (string != NULL, NULL); + + if (free_segment) + { + g_free (string->str); + segment = NULL; + } + else + segment = string->str; + + G_LOCK (string_mem_chunk); + g_mem_chunk_free (string_mem_chunk, string); + G_UNLOCK (string_mem_chunk); + + return segment; +} + +gboolean +g_string_equal (const GString *v, + const GString *v2) +{ + gchar *p, *q; + GString *string1 = (GString *) v; + GString *string2 = (GString *) v2; + gsize i = string1->len; + + if (i != string2->len) + return FALSE; + + p = string1->str; + q = string2->str; + while (i) + { + if (*p != *q) + return FALSE; + p++; + q++; + i--; + } + return TRUE; +} + +/* 31 bit hash function */ +guint +g_string_hash (const GString *str) +{ + const gchar *p = str->str; + gsize n = str->len; + guint h = 0; + + while (n--) + { + h = (h << 5) - h + *p; + p++; + } + + return h; +} + +GString* +g_string_assign (GString *string, + const gchar *rval) +{ + g_return_val_if_fail (string != NULL, NULL); + g_return_val_if_fail (rval != NULL, string); + + g_string_truncate (string, 0); + g_string_append (string, rval); + + return string; +} + +GString* +g_string_truncate (GString *string, + gsize len) +{ + g_return_val_if_fail (string != NULL, NULL); + + string->len = MIN (len, string->len); + string->str[string->len] = 0; + + return string; +} + +/** + * g_string_set_size: + * @string: a #GString + * @len: the new length + * + * Sets the length of a #GString. If the length is less than + * the current length, the string will be truncated. If the + * length is greater than the current length, the contents + * of the newly added area are undefined. (However, as + * always, string->str[string->len] will be a nul byte.) + * + * Return value: @string + **/ +GString* +g_string_set_size (GString *string, + gsize len) +{ + g_return_val_if_fail (string != NULL, NULL); + + if (len >= string->allocated_len) + g_string_maybe_expand (string, len - string->len); + + string->len = len; + string->str[len] = 0; + + return string; +} + +GString* +g_string_insert_len (GString *string, + gssize pos, + const gchar *val, + gssize len) +{ + g_return_val_if_fail (string != NULL, NULL); + g_return_val_if_fail (val != NULL, string); + + if (len < 0) + len = strlen (val); + + if (pos < 0) + pos = string->len; + else + g_return_val_if_fail (pos <= string->len, string); + + g_string_maybe_expand (string, len); + + /* If we aren't appending at the end, move a hunk + * of the old string to the end, opening up space + */ + if (pos < string->len) + g_memmove (string->str + pos + len, string->str + pos, string->len - pos); + + /* insert the new string */ + g_memmove (string->str + pos, val, len); + + string->len += len; + + string->str[string->len] = 0; + + return string; +} + +GString* +g_string_append (GString *string, + const gchar *val) +{ + g_return_val_if_fail (string != NULL, NULL); + g_return_val_if_fail (val != NULL, string); + + return g_string_insert_len (string, -1, val, -1); +} + +GString* +g_string_append_len (GString *string, + const gchar *val, + gssize len) +{ + g_return_val_if_fail (string != NULL, NULL); + g_return_val_if_fail (val != NULL, string); + + return g_string_insert_len (string, -1, val, len); +} + +GString* +g_string_append_c (GString *string, + gchar c) +{ + g_return_val_if_fail (string != NULL, NULL); + + return g_string_insert_c (string, -1, c); +} + +/** + * g_string_append_unichar: + * @string: a #GString + * @wc: a Unicode character + * + * Converts a Unicode character into UTF-8, and appends it + * to the string. + * + * Return value: @string + **/ +GString* +g_string_append_unichar (GString *string, + gunichar wc) +{ + g_return_val_if_fail (string != NULL, NULL); + + return g_string_insert_unichar (string, -1, wc); +} + +GString* +g_string_prepend (GString *string, + const gchar *val) +{ + g_return_val_if_fail (string != NULL, NULL); + g_return_val_if_fail (val != NULL, string); + + return g_string_insert_len (string, 0, val, -1); +} + +GString* +g_string_prepend_len (GString *string, + const gchar *val, + gssize len) +{ + g_return_val_if_fail (string != NULL, NULL); + g_return_val_if_fail (val != NULL, string); + + return g_string_insert_len (string, 0, val, len); +} + +GString* +g_string_prepend_c (GString *string, + gchar c) +{ + g_return_val_if_fail (string != NULL, NULL); + + return g_string_insert_c (string, 0, c); +} + +/** + * g_string_append_unichar: + * @string: a #GString + * @wc: a Unicode character + * + * Converts a Unicode character into UTF-8, and prepends it + * to the string. + * + * Return value: @string + **/ +GString* +g_string_prepend_unichar (GString *string, + gunichar wc) +{ + g_return_val_if_fail (string != NULL, NULL); + + return g_string_insert_unichar (string, 0, wc); +} + +GString* +g_string_insert (GString *string, + gssize pos, + const gchar *val) +{ + g_return_val_if_fail (string != NULL, NULL); + g_return_val_if_fail (val != NULL, string); + if (pos >= 0) + g_return_val_if_fail (pos <= string->len, string); + + return g_string_insert_len (string, pos, val, -1); +} + +GString* +g_string_insert_c (GString *string, + gssize pos, + gchar c) +{ + g_return_val_if_fail (string != NULL, NULL); + + g_string_maybe_expand (string, 1); + + if (pos < 0) + pos = string->len; + else + g_return_val_if_fail (pos <= string->len, string); + + /* If not just an append, move the old stuff */ + if (pos < string->len) + g_memmove (string->str + pos + 1, string->str + pos, string->len - pos); + + string->str[pos] = c; + + string->len += 1; + + string->str[string->len] = 0; + + return string; +} + +/** + * g_string_insert_unichar: + * @string: a #Gstring + * @pos: the position at which to insert character, or -1 to + * append at the end of the string. + * @wc: a Unicode character + * + * Converts a Unicode character into UTF-8, and insert it + * into the string at the given position. + * + * Return value: @string + **/ +GString* +g_string_insert_unichar (GString *string, + gssize pos, + gunichar wc) +{ + gchar buf[6]; + gint charlen; + + /* We could be somewhat more efficient here by computing + * the length, adding the space, then converting into that + * space, by cut-and-pasting the internals of g_unichar_to_utf8. + */ + g_return_val_if_fail (string != NULL, NULL); + + charlen = g_unichar_to_utf8 (wc, buf); + return g_string_insert_len (string, pos, buf, charlen); +} + +GString* +g_string_erase (GString *string, + gsize pos, + gsize len) +{ + g_return_val_if_fail (string != NULL, NULL); + g_return_val_if_fail (pos >= 0, string); + g_return_val_if_fail (pos <= string->len, string); + + if (len < 0) + len = string->len - pos; + else + { + g_return_val_if_fail (pos + len <= string->len, string); + + if (pos + len < string->len) + g_memmove (string->str + pos, string->str + pos + len, string->len - (pos + len)); + } + + string->len -= len; + + string->str[string->len] = 0; + + return string; +} + +/** + * g_string_ascii_down: + * @string: a GString + * + * Converts all upper case ASCII letters to lower case ASCII letters. + * + * Return value: passed-in @string pointer, with all the upper case + * characters converted to lower case in place, with + * semantics that exactly match g_ascii_tolower. + **/ +GString* +g_string_ascii_down (GString *string) +{ + gchar *s; + gint n = string->len; + + g_return_val_if_fail (string != NULL, NULL); + + s = string->str; + + while (n) + { + *s = g_ascii_tolower (*s); + s++; + n--; + } + + return string; +} + +/** + * g_string_ascii_up: + * @string: a GString + * + * Converts all lower case ASCII letters to upper case ASCII letters. + * + * Return value: passed-in @string pointer, with all the lower case + * characters converted to upper case in place, with + * semantics that exactly match g_ascii_toupper. + **/ +GString* +g_string_ascii_up (GString *string) +{ + gchar *s; + gint n = string->len; + + g_return_val_if_fail (string != NULL, NULL); + + s = string->str; + + while (n) + { + *s = g_ascii_toupper (*s); + s++; + n--; + } + + return string; +} + +GString* +g_string_down (GString *string) +{ + guchar *s; + glong n = string->len; + + g_return_val_if_fail (string != NULL, NULL); + + s = (guchar *) string->str; + + while (n) + { + if (isupper (*s)) + *s = tolower (*s); + s++; + n--; + } + + return string; +} + +GString* +g_string_up (GString *string) +{ + guchar *s; + glong n = string->len; + + g_return_val_if_fail (string != NULL, NULL); + + s = (guchar *) string->str; + + while (n) + { + if (islower (*s)) + *s = toupper (*s); + s++; + n--; + } + + return string; +} + +static void +g_string_printfa_internal (GString *string, + const gchar *fmt, + va_list args) +{ + gchar *buffer; + + buffer = g_strdup_vprintf (fmt, args); + g_string_append (string, buffer); + g_free (buffer); +} + +void +g_string_printf (GString *string, + const gchar *fmt, + ...) +{ + va_list args; + + g_string_truncate (string, 0); + + va_start (args, fmt); + g_string_printfa_internal (string, fmt, args); + va_end (args); +} + +void +g_string_printfa (GString *string, + const gchar *fmt, + ...) +{ + va_list args; + + va_start (args, fmt); + g_string_printfa_internal (string, fmt, args); + va_end (args); +} diff --git a/graf2d/win32gdk/gdk/src/glib/gstring.h b/graf2d/win32gdk/gdk/src/glib/gstring.h index cdd0c6c15b8..7241273b668 100644 --- a/graf2d/win32gdk/gdk/src/glib/gstring.h +++ b/graf2d/win32gdk/gdk/src/glib/gstring.h @@ -27,7 +27,8 @@ #ifndef __G_STRING_H__ #define __G_STRING_H__ -#include <g_types.h> +#include <glib/gtypes.h> +#include <glib/gunicode.h> G_BEGIN_DECLS @@ -36,13 +37,14 @@ typedef struct _GStringChunk GStringChunk; struct _GString { - gchar *str; - gint len; + gchar *str; + gsize len; + gsize allocated_len; }; /* String Chunks */ -GStringChunk* g_string_chunk_new (gint size); +GStringChunk* g_string_chunk_new (gsize size); void g_string_chunk_free (GStringChunk *chunk); gchar* g_string_chunk_insert (GStringChunk *chunk, const gchar *string); @@ -54,8 +56,8 @@ gchar* g_string_chunk_insert_const (GStringChunk *chunk, */ GString* g_string_new (const gchar *init); GString* g_string_new_len (const gchar *init, - gint len); -GString* g_string_sized_new (guint dfl_size); + gssize len); +GString* g_string_sized_new (gsize dfl_size); gchar* g_string_free (GString *string, gboolean free_segment); gboolean g_string_equal (const GString *v, @@ -64,43 +66,68 @@ guint g_string_hash (const GString *str); GString* g_string_assign (GString *string, const gchar *rval); GString* g_string_truncate (GString *string, - guint len); + gsize len); +GString* g_string_set_size (GString *string, + gsize len); GString* g_string_insert_len (GString *string, - gint pos, + gssize pos, const gchar *val, - gint len); + gssize len); GString* g_string_append (GString *string, const gchar *val); GString* g_string_append_len (GString *string, const gchar *val, - gint len); + gssize len); GString* g_string_append_c (GString *string, gchar c); +GString* g_string_append_unichar (GString *string, + gunichar wc); GString* g_string_prepend (GString *string, const gchar *val); GString* g_string_prepend_c (GString *string, gchar c); +GString* g_string_prepend_unichar (GString *string, + gunichar wc); GString* g_string_prepend_len (GString *string, const gchar *val, - gint len); + gssize len); GString* g_string_insert (GString *string, - gint pos, + gssize pos, const gchar *val); GString* g_string_insert_c (GString *string, - gint pos, + gssize pos, gchar c); +GString* g_string_insert_unichar (GString *string, + gssize pos, + gunichar wc); GString* g_string_erase (GString *string, - gint pos, - gint len); -GString* g_string_down (GString *string); -GString* g_string_up (GString *string); -void g_string_sprintf (GString *string, + gsize pos, + gsize len); +GString* g_string_ascii_down (GString *string); +GString* g_string_ascii_up (GString *string); +void g_string_printf (GString *string, const gchar *format, ...) G_GNUC_PRINTF (2, 3); -void g_string_sprintfa (GString *string, +void g_string_printfa (GString *string, const gchar *format, ...) G_GNUC_PRINTF (2, 3); +#ifndef G_DISABLE_DEPRECATED + +/* The following two functions are deprecated and will be removed in + * the next major release. They use the locale-specific tolower and + * toupper, which is almost never the right thing. + */ + +GString* g_string_down (GString *string); +GString* g_string_up (GString *string); + +/* These aliases are included for compatibility. */ +#define g_string_sprintf g_string_printf +#define g_string_sprintfa g_string_printfa + +#endif /* G_DISABLE_DEPRECATED */ + G_END_DECLS #endif /* __G_STRING_H__ */ diff --git a/graf2d/win32gdk/gdk/src/glib/gthread.c b/graf2d/win32gdk/gdk/src/glib/gthread.c new file mode 100644 index 00000000000..0392f282d70 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gthread.c @@ -0,0 +1,823 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * gmutex.c: MT safety related functions + * Copyright 1998 Sebastian Wilhelmi; University of Karlsruhe + * Owen Taylor + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe + */ + +#include "config.h" +#include "glib.h" + +#ifdef G_THREAD_USE_PID_SURROGATE +#include <sys/types.h> +#include <sys/time.h> +#include <sys/resource.h> +#include <errno.h> +#endif /* G_THREAD_USE_PID_SURROGATE */ + +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif + +#include <string.h> + +#if GLIB_SIZEOF_SYSTEM_THREAD == SIZEOF_VOID_P +# define g_system_thread_equal_simple(thread1, thread2) \ + ((thread1).dummy_pointer == (thread2).dummy_pointer) +# define g_system_thread_assign(dest, src) \ + ((dest).dummy_pointer = (src).dummy_pointer) +#else /* GLIB_SIZEOF_SYSTEM_THREAD != SIZEOF_VOID_P */ +# define g_system_thread_equal_simple(thread1, thread2) \ + (memcmp (&(thread1), &(thread2), GLIB_SIZEOF_SYSTEM_THREAD) == 0) +# define g_system_thread_assign(dest, src) \ + (memcpy (&(dest), &(src), GLIB_SIZEOF_SYSTEM_THREAD)) +#endif /* GLIB_SIZEOF_SYSTEM_THREAD == SIZEOF_VOID_P */ + +#define g_system_thread_equal(thread1, thread2) \ + (g_thread_functions_for_glib_use.thread_equal ? \ + g_thread_functions_for_glib_use.thread_equal (&(thread1), &(thread2)) :\ + g_system_thread_equal_simple((thread1), (thread2))) + +GQuark +g_thread_error_quark (void) +{ + static GQuark quark; + if (!quark) + quark = g_quark_from_static_string ("g_thread_error"); + return quark; +} + +/* Keep this in sync with GRealThread in gmain.c! */ +typedef struct _GRealThread GRealThread; +struct _GRealThread +{ + GThread thread; + gpointer private_data; + gpointer retval; + GSystemThread system_thread; +#ifdef G_THREAD_USE_PID_SURROGATE + pid_t pid; +#endif /* G_THREAD_USE_PID_SURROGATE */ +}; + +#ifdef G_THREAD_USE_PID_SURROGATE +static gint priority_map[] = { 15, 0, -15, -20 }; +static gboolean prio_warned = FALSE; +# define SET_PRIO(pid, prio) G_STMT_START{ \ + gint error = setpriority (PRIO_PROCESS, (pid), priority_map[prio]); \ + if (error == -1 && errno == EACCES && !prio_warned) \ + { \ + prio_warned = TRUE; \ + g_warning ("Priorities can only be increased by root."); \ + } \ + }G_STMT_END +#endif /* G_THREAD_USE_PID_SURROGATE */ + +typedef struct _GStaticPrivateNode GStaticPrivateNode; +struct _GStaticPrivateNode +{ + gpointer data; + GDestroyNotify destroy; +}; + +static void g_thread_cleanup (gpointer data); +static void g_thread_fail (void); + +/* Global variables */ + +static GSystemThread zero_thread; /* This is initialized to all zero */ +gboolean g_thread_use_default_impl = TRUE; +gboolean g_threads_got_initialized = FALSE; + +#if defined(G_PLATFORM_WIN32) && defined(__GNUC__) +__declspec(dllexport) +#endif +GThreadFunctions g_thread_functions_for_glib_use = { + (GMutex*(*)(void))g_thread_fail, /* mutex_new */ + NULL, /* mutex_lock */ + NULL, /* mutex_trylock */ + NULL, /* mutex_unlock */ + NULL, /* mutex_free */ + (GCond*(*)(void))g_thread_fail, /* cond_new */ + NULL, /* cond_signal */ + NULL, /* cond_broadcast */ + NULL, /* cond_wait */ + NULL, /* cond_timed_wait */ + NULL, /* cond_free */ + (GPrivate*(*)(GDestroyNotify))g_thread_fail, /* private_new */ + NULL, /* private_get */ + NULL, /* private_set */ + (void(*)(GThreadFunc, gpointer, gulong, + gboolean, gboolean, GThreadPriority, + gpointer, GError**))g_thread_fail, /* thread_create */ + NULL, /* thread_yield */ + NULL, /* thread_join */ + NULL, /* thread_exit */ + NULL, /* thread_set_priority */ + NULL /* thread_self */ +}; + +/* Local data */ + +static GMutex *g_mutex_protect_static_mutex_allocation = NULL; +static GPrivate *g_thread_specific_private = NULL; +static GSList *g_thread_all_threads = NULL; +static GSList *g_thread_free_indeces = NULL; + +G_LOCK_DEFINE_STATIC (g_thread); + +/* This must be called only once, before any threads are created. + * It will only be called from g_thread_init() in -lgthread. + */ +void +g_mutex_init (void) +{ + GRealThread* main_thread; + + /* We let the main thread (the one that calls g_thread_init) inherit + * the data, that it set before calling g_thread_init + */ + main_thread = (GRealThread*) g_thread_self (); + + g_thread_specific_private = g_private_new (g_thread_cleanup); + G_THREAD_UF (private_set, (g_thread_specific_private, main_thread)); + G_THREAD_UF (thread_self, (&main_thread->system_thread)); + + g_mutex_protect_static_mutex_allocation = g_mutex_new (); +} + +void +g_static_mutex_init (GStaticMutex *mutex) +{ + static GStaticMutex init_mutex = G_STATIC_MUTEX_INIT; + + g_return_if_fail (mutex); + + *mutex = init_mutex; +} + +GMutex * +g_static_mutex_get_mutex_impl (GMutex** mutex) +{ + if (!g_thread_supported ()) + return NULL; + + g_assert (g_mutex_protect_static_mutex_allocation); + + g_mutex_lock (g_mutex_protect_static_mutex_allocation); + + if (!(*mutex)) + *mutex = g_mutex_new (); + + g_mutex_unlock (g_mutex_protect_static_mutex_allocation); + + return *mutex; +} + +void +g_static_mutex_free (GStaticMutex* mutex) +{ + GMutex **runtime_mutex; + + g_return_if_fail (mutex); + + /* The runtime_mutex is the first (or only) member of GStaticMutex, + * see both versions (of glibconfig.h) in configure.in */ + runtime_mutex = ((GMutex**)mutex); + + if (*runtime_mutex) + g_mutex_free (*runtime_mutex); + + *runtime_mutex = NULL; +} + +void +g_static_rec_mutex_init (GStaticRecMutex *mutex) +{ + static GStaticRecMutex init_mutex = G_STATIC_REC_MUTEX_INIT; + + g_return_if_fail (mutex); + + *mutex = init_mutex; +} + +void +g_static_rec_mutex_lock (GStaticRecMutex* mutex) +{ + GSystemThread self; + + g_return_if_fail (mutex); + + if (!g_thread_supported ()) + return; + + G_THREAD_UF (thread_self, (&self)); + + if (g_system_thread_equal (self, mutex->owner)) + { + mutex->depth++; + return; + } + g_static_mutex_lock (&mutex->mutex); + g_system_thread_assign (mutex->owner, self); + mutex->depth = 1; +} + +gboolean +g_static_rec_mutex_trylock (GStaticRecMutex* mutex) +{ + GSystemThread self; + + g_return_val_if_fail (mutex, FALSE); + + if (!g_thread_supported ()) + return TRUE; + + G_THREAD_UF (thread_self, (&self)); + + if (g_system_thread_equal (self, mutex->owner)) + { + mutex->depth++; + return TRUE; + } + + if (!g_static_mutex_trylock (&mutex->mutex)) + return FALSE; + + g_system_thread_assign (mutex->owner, self); + mutex->depth = 1; + return TRUE; +} + +void +g_static_rec_mutex_unlock (GStaticRecMutex* mutex) +{ + g_return_if_fail (mutex); + + if (!g_thread_supported ()) + return; + + if (mutex->depth > 1) + { + mutex->depth--; + return; + } + g_system_thread_assign (mutex->owner, zero_thread); + g_static_mutex_unlock (&mutex->mutex); +} + +void +g_static_rec_mutex_lock_full (GStaticRecMutex *mutex, + guint depth) +{ + GSystemThread self; + g_return_if_fail (mutex); + + if (!g_thread_supported ()) + return; + + G_THREAD_UF (thread_self, (&self)); + + if (g_system_thread_equal (self, mutex->owner)) + { + mutex->depth += depth; + return; + } + g_static_mutex_lock (&mutex->mutex); + g_system_thread_assign (mutex->owner, self); + mutex->depth = depth; +} + +guint +g_static_rec_mutex_unlock_full (GStaticRecMutex *mutex) +{ + gint depth; + + g_return_val_if_fail (mutex, 0); + + if (!g_thread_supported ()) + return 1; + + depth = mutex->depth; + + g_system_thread_assign (mutex->owner, zero_thread); + mutex->depth = 0; + g_static_mutex_unlock (&mutex->mutex); + + return depth; +} + +void +g_static_rec_mutex_free (GStaticRecMutex *mutex) +{ + g_return_if_fail (mutex); + + g_static_mutex_free (&mutex->mutex); +} + +void +g_static_private_init (GStaticPrivate *private_key) +{ + private_key->index = 0; +} + +gpointer +g_static_private_get (GStaticPrivate *private_key) +{ + GRealThread *self = (GRealThread*) g_thread_self (); + GArray *array; + + array = self->private_data; + if (!array) + return NULL; + + if (!private_key->index) + return NULL; + else if (private_key->index <= array->len) + return g_array_index (array, GStaticPrivateNode, + private_key->index - 1).data; + else + return NULL; +} + +void +g_static_private_set (GStaticPrivate *private_key, + gpointer data, + GDestroyNotify notify) +{ + GRealThread *self = (GRealThread*) g_thread_self (); + GArray *array; + static guint next_index = 0; + GStaticPrivateNode *node; + + array = self->private_data; + if (!array) + { + array = g_array_new (FALSE, TRUE, sizeof (GStaticPrivateNode)); + self->private_data = array; + } + + if (!private_key->index) + { + G_LOCK (g_thread); + + if (!private_key->index) + { + if (g_thread_free_indeces) + { + private_key->index = + GPOINTER_TO_UINT (g_thread_free_indeces->data); + g_thread_free_indeces = + g_slist_delete_link (g_thread_free_indeces, + g_thread_free_indeces); + } + else + private_key->index = ++next_index; + } + + G_UNLOCK (g_thread); + } + + if (private_key->index > array->len) + g_array_set_size (array, private_key->index); + + node = &g_array_index (array, GStaticPrivateNode, private_key->index - 1); + if (node->destroy) + { + gpointer ddata = node->data; + GDestroyNotify ddestroy = node->destroy; + + node->data = data; + node->destroy = notify; + + ddestroy (ddata); + } + else + { + node->data = data; + node->destroy = notify; + } +} + +void +g_static_private_free (GStaticPrivate *private_key) +{ + guint index = private_key->index; + GSList *list; + + if (!index) + return; + + private_key->index = 0; + + G_LOCK (g_thread); + list = g_thread_all_threads; + while (list) + { + GRealThread *thread = list->data; + GArray *array = thread->private_data; + list = list->next; + + if (array && index <= array->len) + { + GStaticPrivateNode *node = &g_array_index (array, + GStaticPrivateNode, + index - 1); + gpointer ddata = node->data; + GDestroyNotify ddestroy = node->destroy; + + node->data = NULL; + node->destroy = NULL; + + if (ddestroy) + { + G_UNLOCK (g_thread); + ddestroy (ddata); + G_LOCK (g_thread); + } + } + } + g_thread_free_indeces = g_slist_prepend (g_thread_free_indeces, + GUINT_TO_POINTER (index)); + G_UNLOCK (g_thread); +} + +static void +g_thread_cleanup (gpointer data) +{ + if (data) + { + GRealThread* thread = data; + if (thread->private_data) + { + GArray* array = thread->private_data; + guint i; + + for (i = 0; i < array->len; i++ ) + { + GStaticPrivateNode *node = + &g_array_index (array, GStaticPrivateNode, i); + if (node->destroy) + node->destroy (node->data); + } + g_array_free (array, TRUE); + } + + /* We only free the thread structure, if it isn't joinable. If + it is, the structure is freed in g_thread_join */ + if (!thread->thread.joinable) + { + G_LOCK (g_thread); + g_thread_all_threads = g_slist_remove (g_thread_all_threads, data); + G_UNLOCK (g_thread); + + /* Just to make sure, this isn't used any more */ + g_system_thread_assign (thread->system_thread, zero_thread); + g_free (thread); + } + } +} + +static void +g_thread_fail (void) +{ + g_error ("The thread system is not yet initialized."); +} + +static gpointer +g_thread_create_proxy (gpointer data) +{ + GRealThread* thread = data; + + g_assert (data); + +#ifdef G_THREAD_USE_PID_SURROGATE + thread->pid = getpid (); +#endif /* G_THREAD_USE_PID_SURROGATE */ + + /* This has to happen before G_LOCK, as that might call g_thread_self */ + g_private_set (g_thread_specific_private, data); + + /* the lock makes sure, that thread->system_thread is written, + before thread->thread.func is called. See g_thread_create. */ + G_LOCK (g_thread); + G_UNLOCK (g_thread); + +#ifdef G_THREAD_USE_PID_SURROGATE + if (g_thread_use_default_impl) + SET_PRIO (thread->pid, thread->thread.priority); +#endif /* G_THREAD_USE_PID_SURROGATE */ + + thread->retval = thread->thread.func (thread->thread.data); + + return NULL; +} + +GThread* +g_thread_create_full (GThreadFunc func, + gpointer data, + gulong stack_size, + gboolean joinable, + gboolean bound, + GThreadPriority priority, + GError **error) +{ + GRealThread* result = g_new (GRealThread, 1); + GError *local_error = NULL; + g_return_val_if_fail (func, NULL); + g_return_val_if_fail (priority >= G_THREAD_PRIORITY_LOW, NULL); + g_return_val_if_fail (priority <= G_THREAD_PRIORITY_URGENT, NULL); + + result->thread.joinable = joinable; + result->thread.priority = priority; + result->thread.func = func; + result->thread.data = data; + result->private_data = NULL; + G_LOCK (g_thread); + G_THREAD_UF (thread_create, (g_thread_create_proxy, result, + stack_size, joinable, bound, priority, + &result->system_thread, &local_error)); + g_thread_all_threads = g_slist_prepend (g_thread_all_threads, result); + G_UNLOCK (g_thread); + + if (local_error) + { + g_propagate_error (error, local_error); + g_free (result); + return NULL; + } + + return (GThread*) result; +} + +void +g_thread_exit (gpointer retval) +{ + GRealThread* real = (GRealThread*) g_thread_self (); + real->retval = retval; + G_THREAD_CF (thread_exit, (void)0, ()); +} + +gpointer +g_thread_join (GThread* thread) +{ + GRealThread* real = (GRealThread*) thread; + gpointer retval; + + g_return_val_if_fail (thread, NULL); + g_return_val_if_fail (thread->joinable, NULL); + g_return_val_if_fail (!g_system_thread_equal (real->system_thread, + zero_thread), NULL); + + G_THREAD_UF (thread_join, (&real->system_thread)); + + retval = real->retval; + + G_LOCK (g_thread); + g_thread_all_threads = g_slist_remove (g_thread_all_threads, thread); + G_UNLOCK (g_thread); + + /* Just to make sure, this isn't used any more */ + thread->joinable = 0; + g_system_thread_assign (real->system_thread, zero_thread); + + /* the thread structure for non-joinable threads is freed upon + thread end. We free the memory here. This will leave a loose end, + if a joinable thread is not joined. */ + + g_free (thread); + + return retval; +} + +void +g_thread_set_priority (GThread* thread, + GThreadPriority priority) +{ + GRealThread* real = (GRealThread*) thread; + + g_return_if_fail (thread); + g_return_if_fail (!g_system_thread_equal (real->system_thread, zero_thread)); + g_return_if_fail (priority >= G_THREAD_PRIORITY_LOW); + g_return_if_fail (priority <= G_THREAD_PRIORITY_URGENT); + + thread->priority = priority; + +#ifdef G_THREAD_USE_PID_SURROGATE + if (g_thread_use_default_impl) + SET_PRIO (real->pid, priority); + else +#endif /* G_THREAD_USE_PID_SURROGATE */ + G_THREAD_CF (thread_set_priority, (void)0, + (&real->system_thread, priority)); +} + +GThread* +g_thread_self (void) +{ + GRealThread* thread = g_private_get (g_thread_specific_private); + + if (!thread) + { + /* If no thread data is available, provide and set one. This + can happen for the main thread and for threads, that are not + created by GLib. */ + thread = g_new (GRealThread, 1); + thread->thread.joinable = FALSE; /* This is a save guess */ + thread->thread.priority = G_THREAD_PRIORITY_NORMAL; /* This is + just a guess */ + thread->thread.func = NULL; + thread->thread.data = NULL; + thread->private_data = NULL; + + if (g_thread_supported ()) + G_THREAD_UF (thread_self, (&thread->system_thread)); + +#ifdef G_THREAD_USE_PID_SURROGATE + thread->pid = getpid (); +#endif /* G_THREAD_USE_PID_SURROGATE */ + + g_private_set (g_thread_specific_private, thread); + + G_LOCK (g_thread); + g_thread_all_threads = g_slist_prepend (g_thread_all_threads, thread); + G_UNLOCK (g_thread); + } + + return (GThread*)thread; +} + +void +g_static_rw_lock_init (GStaticRWLock* lock) +{ + static GStaticRWLock init_lock = G_STATIC_RW_LOCK_INIT; + + g_return_if_fail (lock); + + *lock = init_lock; +} + +static void inline +g_static_rw_lock_wait (GCond** cond, GStaticMutex* mutex) +{ + if (!*cond) + *cond = g_cond_new (); + g_cond_wait (*cond, g_static_mutex_get_mutex (mutex)); +} + +static void inline +g_static_rw_lock_signal (GStaticRWLock* lock) +{ + if (lock->want_to_write && lock->write_cond) + g_cond_signal (lock->write_cond); + else if (lock->want_to_read && lock->read_cond) + g_cond_broadcast (lock->read_cond); +} + +void +g_static_rw_lock_reader_lock (GStaticRWLock* lock) +{ + g_return_if_fail (lock); + + if (!g_threads_got_initialized) + return; + + g_static_mutex_lock (&lock->mutex); + lock->want_to_read++; + while (lock->write || lock->want_to_write) + g_static_rw_lock_wait (&lock->read_cond, &lock->mutex); + lock->want_to_read--; + lock->read_counter++; + g_static_mutex_unlock (&lock->mutex); +} + +gboolean +g_static_rw_lock_reader_trylock (GStaticRWLock* lock) +{ + gboolean ret_val = FALSE; + + g_return_val_if_fail (lock, FALSE); + + if (!g_threads_got_initialized) + return TRUE; + + g_static_mutex_lock (&lock->mutex); + if (!lock->write && !lock->want_to_write) + { + lock->read_counter++; + ret_val = TRUE; + } + g_static_mutex_unlock (&lock->mutex); + return ret_val; +} + +void +g_static_rw_lock_reader_unlock (GStaticRWLock* lock) +{ + g_return_if_fail (lock); + + if (!g_threads_got_initialized) + return; + + g_static_mutex_lock (&lock->mutex); + lock->read_counter--; + if (lock->read_counter == 0) + g_static_rw_lock_signal (lock); + g_static_mutex_unlock (&lock->mutex); +} + +void +g_static_rw_lock_writer_lock (GStaticRWLock* lock) +{ + g_return_if_fail (lock); + + if (!g_threads_got_initialized) + return; + + g_static_mutex_lock (&lock->mutex); + lock->want_to_write++; + while (lock->write || lock->read_counter) + g_static_rw_lock_wait (&lock->write_cond, &lock->mutex); + lock->want_to_write--; + lock->write = TRUE; + g_static_mutex_unlock (&lock->mutex); +} + +gboolean +g_static_rw_lock_writer_trylock (GStaticRWLock* lock) +{ + gboolean ret_val = FALSE; + + g_return_val_if_fail (lock, FALSE); + + if (!g_threads_got_initialized) + return TRUE; + + g_static_mutex_lock (&lock->mutex); + if (!lock->write && !lock->read_counter) + { + lock->write = TRUE; + ret_val = TRUE; + } + g_static_mutex_unlock (&lock->mutex); + return ret_val; +} + +void +g_static_rw_lock_writer_unlock (GStaticRWLock* lock) +{ + g_return_if_fail (lock); + + if (!g_threads_got_initialized) + return; + + g_static_mutex_lock (&lock->mutex); + lock->write = FALSE; + g_static_rw_lock_signal (lock); + g_static_mutex_unlock (&lock->mutex); +} + +void +g_static_rw_lock_free (GStaticRWLock* lock) +{ + g_return_if_fail (lock); + + if (lock->read_cond) + { + g_cond_free (lock->read_cond); + lock->read_cond = NULL; + } + if (lock->write_cond) + { + g_cond_free (lock->write_cond); + lock->write_cond = NULL; + } + g_static_mutex_free (&lock->mutex); +} diff --git a/graf2d/win32gdk/gdk/src/glib/gthread.h b/graf2d/win32gdk/gdk/src/glib/gthread.h index 12681784be2..d4573a1b83c 100644 --- a/graf2d/win32gdk/gdk/src/glib/gthread.h +++ b/graf2d/win32gdk/gdk/src/glib/gthread.h @@ -27,34 +27,23 @@ #ifndef __G_THREAD_H__ #define __G_THREAD_H__ -#include <gerror.h> +#include <glib/gerror.h> +#include <glib/gtypes.h> G_BEGIN_DECLS -#ifndef GLIB_VAR -# ifdef G_OS_WIN32 -# ifdef GLIB_COMPILATION -# define GLIB_VAR __declspec(dllexport) -# else /* !GLIB_COMPILATION */ -# define GLIB_VAR extern __declspec(dllimport) -# endif /* !GLIB_COMPILATION */ -# else /* !G_OS_WIN32 */ -# define GLIB_VAR extern -# endif /* !G_OS_WIN32 */ -#endif /* GLIB_VAR */ - /* GLib Thread support */ -extern GQuark g_thread_error_quark(); -#define G_THREAD_ERROR g_thread_error_quark() +extern GQuark g_thread_error_quark (void); +#define G_THREAD_ERROR g_thread_error_quark () typedef enum { G_THREAD_ERROR_AGAIN /* Resource temporarily unavailable */ } GThreadError; -typedef void (*GThreadFunc) (gpointer value); +typedef gpointer (*GThreadFunc) (gpointer data); typedef enum { @@ -67,9 +56,10 @@ typedef enum typedef struct _GThread GThread; struct _GThread { - GThreadPriority priority; - gboolean bound; + GThreadFunc func; + gpointer data; gboolean joinable; + GThreadPriority priority; }; typedef struct _GMutex GMutex; @@ -98,8 +88,8 @@ struct _GThreadFunctions gpointer (*private_get) (GPrivate *private_key); void (*private_set) (GPrivate *private_key, gpointer data); - void (*thread_create) (GThreadFunc thread_func, - gpointer arg, + void (*thread_create) (GThreadFunc func, + gpointer data, gulong stack_size, gboolean joinable, gboolean bound, @@ -112,6 +102,8 @@ struct _GThreadFunctions void (*thread_set_priority)(gpointer thread, GThreadPriority priority); void (*thread_self) (gpointer thread); + gboolean (*thread_equal) (gpointer thread1, + gpointer thread2); }; GLIB_VAR GThreadFunctions g_thread_functions_for_glib_use; @@ -147,7 +139,7 @@ GMutex* g_static_mutex_get_mutex_impl (GMutex **mutex); #define G_THREAD_UF(op, arglist) \ (*g_thread_functions_for_glib_use . op) arglist -#define G_THREAD_CF(op, fail, arg) \ +#define G_THREAD_CF(op, fail, arg) \ (g_thread_supported () ? G_THREAD_UF (op, arg) : (fail)) #define G_THREAD_ECF(op, fail, mutex, type) \ (g_thread_supported () ? ((type(*)(GMutex*, gulong, gchar*)) \ @@ -155,37 +147,40 @@ GMutex* g_static_mutex_get_mutex_impl (GMutex **mutex); (mutex, G_MUTEX_DEBUG_MAGIC, G_STRLOC) : (fail)) #ifndef G_ERRORCHECK_MUTEXES -# define g_mutex_lock(mutex) \ +# define g_mutex_lock(mutex) \ G_THREAD_CF (mutex_lock, (void)0, (mutex)) -# define g_mutex_trylock(mutex) \ +# define g_mutex_trylock(mutex) \ G_THREAD_CF (mutex_trylock, TRUE, (mutex)) -# define g_mutex_unlock(mutex) \ +# define g_mutex_unlock(mutex) \ G_THREAD_CF (mutex_unlock, (void)0, (mutex)) -# define g_cond_wait(cond, mutex) \ +# define g_mutex_free(mutex) \ + G_THREAD_CF (mutex_free, (void)0, (mutex)) +# define g_cond_wait(cond, mutex) \ G_THREAD_CF (cond_wait, (void)0, (cond, mutex)) -# define g_cond_timed_wait(cond, mutex, abs_time) \ +# define g_cond_timed_wait(cond, mutex, abs_time) \ G_THREAD_CF (cond_timed_wait, TRUE, (cond, mutex, abs_time)) #else /* G_ERRORCHECK_MUTEXES */ -# define g_mutex_lock(mutex) \ - G_THREAD_ECF (mutex_lock, (void)0, mutex, void) -# define g_mutex_trylock(mutex) \ - G_THREAD_ECF (mutex_trylock, TRUE, mutex, gboolean) -# define g_mutex_unlock(mutex) \ - G_THREAD_ECF (mutex_unlock, (void)0, mutex, void) +# define g_mutex_lock(mutex) \ + G_THREAD_ECF (mutex_lock, (void)0, (mutex), void) +# define g_mutex_trylock(mutex) \ + G_THREAD_ECF (mutex_trylock, TRUE, (mutex), gboolean) +# define g_mutex_unlock(mutex) \ + G_THREAD_ECF (mutex_unlock, (void)0, (mutex), void) +# define g_mutex_free(mutex) \ + G_THREAD_ECF (mutex_free, (void)0, (mutex), void) # define g_cond_wait(cond, mutex) \ (g_thread_supported () ? ((void(*)(GCond*, GMutex*, gulong, gchar*))\ g_thread_functions_for_glib_use.cond_wait) \ (cond, mutex, G_MUTEX_DEBUG_MAGIC, G_STRLOC) : (void) 0) -# define g_cond_timed_wait(cond, mutex, abs_time) \ - (g_thread_supported () ? \ +# define g_cond_timed_wait(cond, mutex, abs_time) \ + (g_thread_supported () ? \ ((gboolean(*)(GCond*, GMutex*, GTimeVal*, gulong, gchar*)) \ - g_thread_functions_for_glib_use.cond_timed_wait) \ + g_thread_functions_for_glib_use.cond_timed_wait) \ (cond, mutex, abs_time, G_MUTEX_DEBUG_MAGIC, G_STRLOC) : TRUE) #endif /* G_ERRORCHECK_MUTEXES */ #define g_thread_supported() (g_threads_got_initialized) #define g_mutex_new() G_THREAD_UF (mutex_new, ()) -#define g_mutex_free(mutex) G_THREAD_CF (mutex_free, (void)0, (mutex)) #define g_cond_new() G_THREAD_UF (cond_new, ()) #define g_cond_signal(cond) G_THREAD_CF (cond_signal, (void)0, (cond)) #define g_cond_broadcast(cond) G_THREAD_CF (cond_broadcast, (void)0, (cond)) @@ -199,19 +194,24 @@ GMutex* g_static_mutex_get_mutex_impl (GMutex **mutex); (GPrivate*) (value)), \ (private_key, value)) #define g_thread_yield() G_THREAD_CF (thread_yield, (void)0, ()) -#define g_thread_exit() G_THREAD_CF (thread_exit, (void)0, ()) - -GThread* g_thread_create (GThreadFunc thread_func, - gpointer arg, - gulong stack_size, - gboolean joinable, - gboolean bound, - GThreadPriority priority, - GError **error); -GThread* g_thread_self (void); -void g_thread_join (GThread *thread); -void g_thread_set_priority (GThread *thread, - GThreadPriority priority); + +#define g_thread_create(func, data, joinable, error) \ + (g_thread_create_full (func, data, 0, joinable, FALSE, \ + G_THREAD_PRIORITY_NORMAL, error)) + +GThread* g_thread_create_full (GThreadFunc func, + gpointer data, + gulong stack_size, + gboolean joinable, + gboolean bound, + GThreadPriority priority, + GError **error); +GThread* g_thread_self (void); +void g_thread_exit (gpointer retval); +gpointer g_thread_join (GThread *thread); + +void g_thread_set_priority (GThread *thread, + GThreadPriority priority); /* GStaticMutexes can be statically initialized with the value * G_STATIC_MUTEX_INIT, and then they can directly be used, that is @@ -224,22 +224,20 @@ void g_thread_set_priority (GThread *thread, g_mutex_trylock (g_static_mutex_get_mutex (mutex)) #define g_static_mutex_unlock(mutex) \ g_mutex_unlock (g_static_mutex_get_mutex (mutex)) +void g_static_mutex_init (GStaticMutex *mutex); +void g_static_mutex_free (GStaticMutex *mutex); struct _GStaticPrivate { guint index; }; #define G_STATIC_PRIVATE_INIT { 0 } -gpointer g_static_private_get (GStaticPrivate *private_key); -void g_static_private_set (GStaticPrivate *private_key, - gpointer data, - GDestroyNotify notify); -gpointer g_static_private_get_for_thread (GStaticPrivate *private_key, - GThread *thread); -void g_static_private_set_for_thread (GStaticPrivate *private_key, - GThread *thread, - gpointer data, - GDestroyNotify notify); +void g_static_private_init (GStaticPrivate *private_key); +gpointer g_static_private_get (GStaticPrivate *private_key); +void g_static_private_set (GStaticPrivate *private_key, + gpointer data, + GDestroyNotify notify); +void g_static_private_free (GStaticPrivate *private_key); typedef struct _GStaticRecMutex GStaticRecMutex; struct _GStaticRecMutex @@ -250,12 +248,14 @@ struct _GStaticRecMutex }; #define G_STATIC_REC_MUTEX_INIT { G_STATIC_MUTEX_INIT } +void g_static_rec_mutex_init (GStaticRecMutex *mutex); void g_static_rec_mutex_lock (GStaticRecMutex *mutex); gboolean g_static_rec_mutex_trylock (GStaticRecMutex *mutex); void g_static_rec_mutex_unlock (GStaticRecMutex *mutex); void g_static_rec_mutex_lock_full (GStaticRecMutex *mutex, guint depth); guint g_static_rec_mutex_unlock_full (GStaticRecMutex *mutex); +void g_static_rec_mutex_free (GStaticRecMutex *mutex); typedef struct _GStaticRWLock GStaticRWLock; struct _GStaticRWLock @@ -265,18 +265,20 @@ struct _GStaticRWLock GCond *write_cond; guint read_counter; gboolean write; + guint want_to_read; guint want_to_write; }; -#define G_STATIC_RW_LOCK_INIT { G_STATIC_MUTEX_INIT, NULL, NULL, 0, FALSE, FALSE } +#define G_STATIC_RW_LOCK_INIT { G_STATIC_MUTEX_INIT, NULL, NULL, 0, FALSE, 0, 0 } +void g_static_rw_lock_init (GStaticRWLock* lock); void g_static_rw_lock_reader_lock (GStaticRWLock* lock); gboolean g_static_rw_lock_reader_trylock (GStaticRWLock* lock); void g_static_rw_lock_reader_unlock (GStaticRWLock* lock); void g_static_rw_lock_writer_lock (GStaticRWLock* lock); gboolean g_static_rw_lock_writer_trylock (GStaticRWLock* lock); void g_static_rw_lock_writer_unlock (GStaticRWLock* lock); -void g_static_rw_lock_free (GStaticRWLock* lock); +void g_static_rw_lock_free (GStaticRWLock* lock); /* these are some convenience macros that expand to nothing if GLib * was configured with --disable-threads. for using StaticMutexes, diff --git a/graf2d/win32gdk/gdk/src/glib/gthreadpool.c b/graf2d/win32gdk/gdk/src/glib/gthreadpool.c new file mode 100644 index 00000000000..601022830c4 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gthreadpool.c @@ -0,0 +1,678 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * GAsyncQueue: thread pool implementation. + * Copyright (C) 2000 Sebastian Wilhelmi; University of Karlsruhe + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * MT safe + */ + +#include "glib.h" + +typedef struct _GRealThreadPool GRealThreadPool; + +struct _GRealThreadPool +{ + GThreadPool pool; + GAsyncQueue* queue; + gint max_threads; + gint num_threads; + gboolean running; + gboolean immediate; + gboolean waiting; +}; + +/* The following is just an address to mark the stop order for a + * thread, it could be any address (as long, as it isn't a valid + * GThreadPool address) */ +static const gpointer stop_this_thread_marker = (gpointer) &g_thread_pool_new; + +/* Here all unused threads are waiting */ +static GAsyncQueue *unused_thread_queue; +static gint unused_threads = 0; +static gint max_unused_threads = 0; +G_LOCK_DEFINE_STATIC (unused_threads); + +static GMutex *inform_mutex = NULL; +static GCond *inform_cond = NULL; + +static void g_thread_pool_free_internal (GRealThreadPool* pool); +static gpointer g_thread_pool_thread_proxy (gpointer data); +static void g_thread_pool_start_thread (GRealThreadPool* pool, + GError **error); +static void g_thread_pool_wakeup_and_stop_all (GRealThreadPool* pool); + +#define g_thread_should_run(pool, len) \ + ((pool)->running || (!(pool)->immediate && (len) > 0)) + +static gpointer +g_thread_pool_thread_proxy (gpointer data) +{ + GRealThreadPool *pool = data; + gboolean watcher = FALSE; + + g_async_queue_lock (pool->queue); + while (TRUE) + { + gpointer task; + gboolean goto_global_pool = !pool->pool.exclusive; + gint len = g_async_queue_length_unlocked (pool->queue); + + if (g_thread_should_run (pool, len)) + { + if (watcher) + { + /* This thread is actually not needed here, but it waits + * for some time anyway. If during that time a new + * request arrives, this saves process + * swicthes. Otherwise the thread will go to the global + * pool afterwards */ + GTimeVal end_time; + g_get_current_time (&end_time); + g_time_val_add (&end_time, G_USEC_PER_SEC / 2); /* 1/2 second */ + task = g_async_queue_timed_pop_unlocked (pool->queue, &end_time); + } + else + task = g_async_queue_pop_unlocked (pool->queue); + + if (task) + { + watcher = FALSE; + if (pool->num_threads > pool->max_threads && + pool->max_threads != -1) + /* We are in fact a superfluous threads, so we go to + * the global pool and just hand the data further to + * the next one waiting in the queue */ + { + g_async_queue_push_unlocked (pool->queue, task); + goto_global_pool = TRUE; + } + else if (pool->running || !pool->immediate) + { + g_async_queue_unlock (pool->queue); + pool->pool.func (task, pool->pool.user_data); + g_async_queue_lock (pool->queue); + } + } + len = g_async_queue_length_unlocked (pool->queue); + } + + if (!g_thread_should_run (pool, len)) + { + g_cond_broadcast (inform_cond); + goto_global_pool = TRUE; + } + else if (len > 0) + { + /* At this pool there are no threads waiting, but tasks are. */ + goto_global_pool = FALSE; + } + else if (len == 0 && !watcher && !pool->pool.exclusive) + { + /* Here neither threads nor tasks are queued and we didn't + * just return from a timed wait. We now wait for a limited + * time at this pool for new tasks to avoid costly context + * switches. */ + goto_global_pool = FALSE; + watcher = TRUE; + } + + + if (goto_global_pool) + { + pool->num_threads--; + + if (!pool->running && !pool->waiting) + { + if (pool->num_threads == 0) + { + g_async_queue_unlock (pool->queue); + g_thread_pool_free_internal (pool); + } + else if (len == - pool->num_threads) + { + g_thread_pool_wakeup_and_stop_all (pool); + g_async_queue_unlock (pool->queue); + } + } + else + g_async_queue_unlock (pool->queue); + + g_async_queue_lock (unused_thread_queue); + + G_LOCK (unused_threads); + if ((unused_threads >= max_unused_threads && + max_unused_threads != -1)) + { + G_UNLOCK (unused_threads); + g_async_queue_unlock (unused_thread_queue); + /* Stop this thread */ + return NULL; + } + unused_threads++; + G_UNLOCK (unused_threads); + + pool = g_async_queue_pop_unlocked (unused_thread_queue); + + G_LOCK (unused_threads); + unused_threads--; + G_UNLOCK (unused_threads); + + g_async_queue_unlock (unused_thread_queue); + + if (pool == stop_this_thread_marker) + /* Stop this thread */ + return NULL; + + g_async_queue_lock (pool->queue); + + /* pool->num_threads++ is not done here, but in + * g_thread_pool_start_thread to make the new started thread + * known to the pool, before itself can do it. */ + } + } + return NULL; +} + +static void +g_thread_pool_start_thread (GRealThreadPool *pool, + GError **error) +{ + gboolean success = FALSE; + + if (pool->num_threads >= pool->max_threads && pool->max_threads != -1) + /* Enough threads are already running */ + return; + + g_async_queue_lock (unused_thread_queue); + + if (g_async_queue_length_unlocked (unused_thread_queue) < 0) + { + g_async_queue_push_unlocked (unused_thread_queue, pool); + success = TRUE; + } + + g_async_queue_unlock (unused_thread_queue); + + if (!success) + { + GError *local_error = NULL; + /* No thread was found, we have to start a new one */ + g_thread_create (g_thread_pool_thread_proxy, pool, FALSE, &local_error); + + if (local_error) + { + g_propagate_error (error, local_error); + return; + } + } + + /* See comment in g_thread_pool_thread_proxy as to why this is done + * here and not there */ + pool->num_threads++; +} + +/** + * g_thread_pool_new: + * @func: a function to execute in the threads of the new thread pool + * @user_data: user data that is handed over to @func every time it + * is called + * @max_threads: the maximal number of threads to execute concurrently in + * the new thread pool, -1 means no limit + * @exclusive: should this thread pool be exclusive? + * @error: return location for error + * + * This function creates a new thread pool. + * + * Whenever you call g_thread_pool_push(), either a new thread is + * created or an unused one is reused. At most @max_threads threads + * are running concurrently for this thread pool. @max_threads = -1 + * allows unlimited threads to be created for this thread pool. The + * newly created or reused thread now executes the function @func with + * the two arguments. The first one is the parameter to + * g_thread_pool_push() and the second one is @user_data. + * + * The parameter @exclusive determines, whether the thread pool owns + * all threads exclusive or whether the threads are shared + * globally. If @exclusive is @TRUE, @max_threads threads are started + * immediately and they will run exclusively for this thread pool until + * it is destroyed by g_thread_pool_free(). If @exclusive is @FALSE, + * threads are created, when needed and shared between all + * non-exclusive thread pools. This implies that @max_threads may not + * be -1 for exclusive thread pools. + * + * @error can be NULL to ignore errors, or non-NULL to report + * errors. An error can only occur, when @exclusive is set to @TRUE and + * not all @max_threads threads could be created. + * + * Return value: the new #GThreadPool + **/ +GThreadPool* +g_thread_pool_new (GFunc func, + gpointer user_data, + gint max_threads, + gboolean exclusive, + GError **error) +{ + GRealThreadPool *retval; + G_LOCK_DEFINE_STATIC (init); + + g_return_val_if_fail (func, NULL); + g_return_val_if_fail (!exclusive || max_threads != -1, NULL); + g_return_val_if_fail (max_threads >= -1, NULL); + g_return_val_if_fail (g_thread_supported (), NULL); + + retval = g_new (GRealThreadPool, 1); + + retval->pool.func = func; + retval->pool.user_data = user_data; + retval->pool.exclusive = exclusive; + retval->queue = g_async_queue_new (); + retval->max_threads = max_threads; + retval->num_threads = 0; + retval->running = TRUE; + + G_LOCK (init); + + if (!inform_mutex) + { + inform_mutex = g_mutex_new (); + inform_cond = g_cond_new (); + unused_thread_queue = g_async_queue_new (); + } + + G_UNLOCK (init); + + if (retval->pool.exclusive) + { + g_async_queue_lock (retval->queue); + + while (retval->num_threads < retval->max_threads) + { + GError *local_error = NULL; + g_thread_pool_start_thread (retval, &local_error); + if (local_error) + { + g_propagate_error (error, local_error); + break; + } + } + + g_async_queue_unlock (retval->queue); + } + + return (GThreadPool*) retval; +} + +/** + * g_thread_pool_push: + * @pool: a #GThreadPool + * @data: a new task for @pool + * @error: return location for error + * + * Inserts @data into the list of tasks to be executed by @pool. When + * the number of currently running threads is lower than the maximal + * allowed number of threads, a new thread is started (or reused) with + * the properties given to g_thread_pool_new (). Otherwise @data stays + * in the queue until a thread in this pool finishes its previous task + * and processes @data. + * + * @error can be NULL to ignore errors, or non-NULL to report + * errors. An error can only occur, when a new thread couldn't be + * created. In that case @data is simply appended to the queue of work + * to do. + **/ +void +g_thread_pool_push (GThreadPool *pool, + gpointer data, + GError **error) +{ + GRealThreadPool *real = (GRealThreadPool*) pool; + + g_return_if_fail (real); + + g_async_queue_lock (real->queue); + + if (!real->running) + { + g_async_queue_unlock (real->queue); + g_return_if_fail (real->running); + } + + if (g_async_queue_length_unlocked (real->queue) >= 0) + /* No thread is waiting in the queue */ + g_thread_pool_start_thread (real, error); + + g_async_queue_push_unlocked (real->queue, data); + g_async_queue_unlock (real->queue); +} + +/** + * g_thread_pool_set_max_threads: + * @pool: a #GThreadPool + * @max_threads: a new maximal number of threads for @pool + * @error: return location for error + * + * Sets the maximal allowed number of threads for @pool. A value of -1 + * means, that the maximal number of threads is unlimited. + * + * Setting @max_threads to 0 means stopping all work for @pool. It is + * effectively frozen until @max_threads is set to a non-zero value + * again. + * + * A thread is never terminated while calling @func, as supplied by + * g_thread_pool_new (). Instead the maximal number of threads only + * has effect for the allocation of new threads in g_thread_pool_push + * (). A new thread is allocated, whenever the number of currently + * running threads in @pool is smaller than the maximal number. + * + * @error can be NULL to ignore errors, or non-NULL to report + * errors. An error can only occur, when a new thread couldn't be + * created. + **/ +void +g_thread_pool_set_max_threads (GThreadPool *pool, + gint max_threads, + GError **error) +{ + GRealThreadPool *real = (GRealThreadPool*) pool; + gint to_start; + + g_return_if_fail (real); + g_return_if_fail (real->running); + g_return_if_fail (!real->pool.exclusive || max_threads != -1); + g_return_if_fail (max_threads >= -1); + + g_async_queue_lock (real->queue); + + real->max_threads = max_threads; + + if (pool->exclusive) + to_start = real->max_threads - real->num_threads; + else + to_start = g_async_queue_length_unlocked (real->queue); + + for ( ; to_start > 0; to_start--) + { + GError *local_error = NULL; + g_thread_pool_start_thread (real, &local_error); + if (local_error) + { + g_propagate_error (error, local_error); + break; + } + } + + g_async_queue_unlock (real->queue); +} + +/** + * g_thread_pool_get_max_threads: + * @pool: a #GThreadPool + * + * Returns the maximal number of threads for @pool. + * + * Return value: the maximal number of threads + **/ +gint +g_thread_pool_get_max_threads (GThreadPool *pool) +{ + GRealThreadPool *real = (GRealThreadPool*) pool; + gint retval; + + g_return_val_if_fail (real, 0); + g_return_val_if_fail (real->running, 0); + + g_async_queue_lock (real->queue); + + retval = real->max_threads; + + g_async_queue_unlock (real->queue); + + return retval; +} + +/** + * g_thread_pool_get_num_threads: + * @pool: a #GThreadPool + * + * Returns the number of threads currently running in @pool. + * + * Return value: the number of threads currently running + **/ +guint +g_thread_pool_get_num_threads (GThreadPool *pool) +{ + GRealThreadPool *real = (GRealThreadPool*) pool; + guint retval; + + g_return_val_if_fail (real, 0); + g_return_val_if_fail (real->running, 0); + + g_async_queue_lock (real->queue); + + retval = real->num_threads; + + g_async_queue_unlock (real->queue); + + return retval; +} + +/** + * g_thread_pool_unprocessed: + * @pool: a #GThreadPool + * + * Returns the number of tasks still unprocessed in @pool. + * + * Return value: the number of unprocessed tasks + **/ +guint +g_thread_pool_unprocessed (GThreadPool *pool) +{ + GRealThreadPool *real = (GRealThreadPool*) pool; + gint unprocessed; + + g_return_val_if_fail (real, 0); + g_return_val_if_fail (real->running, 0); + + unprocessed = g_async_queue_length (real->queue); + + return MAX (unprocessed, 0); +} + +/** + * g_thread_pool_free: + * @pool: a #GThreadPool + * @immediate: should @pool shut down immediately? + * @wait: should the function wait for all tasks to be finished? + * + * Frees all resources allocated for @pool. + * + * If @immediate is #TRUE, no new task is processed for + * @pool. Otherwise @pool is not freed before the last task is + * processed. Note however, that no thread of this pool is + * interrupted, while processing a task. Instead at least all still + * running threads can finish their tasks before the @pool is freed. + * + * If @wait is #TRUE, the functions does not return before all tasks + * to be processed (dependent on @immediate, whether all or only the + * currently running) are ready. Otherwise the function returns immediately. + * + * After calling this function @pool must not be used anymore. + **/ +void +g_thread_pool_free (GThreadPool *pool, + gboolean immediate, + gboolean wait) +{ + GRealThreadPool *real = (GRealThreadPool*) pool; + + g_return_if_fail (real); + g_return_if_fail (real->running); + /* It there's no thread allowed here, there is not much sense in + * not stopping this pool immediately, when it's not empty */ + g_return_if_fail (immediate || real->max_threads != 0 || + g_async_queue_length (real->queue) == 0); + + g_async_queue_lock (real->queue); + + real->running = FALSE; + real->immediate = immediate; + real->waiting = wait; + + if (wait) + { + g_mutex_lock (inform_mutex); + while (g_async_queue_length_unlocked (real->queue) != -real->num_threads) + { + g_async_queue_unlock (real->queue); + g_cond_wait (inform_cond, inform_mutex); + g_async_queue_lock (real->queue); + } + g_mutex_unlock (inform_mutex); + } + + if (g_async_queue_length_unlocked (real->queue) == -real->num_threads) + { + /* No thread is currently doing something (and nothing is left + * to process in the queue) */ + if (real->num_threads == 0) /* No threads left, we clean up */ + { + g_async_queue_unlock (real->queue); + g_thread_pool_free_internal (real); + return; + } + + g_thread_pool_wakeup_and_stop_all (real); + } + + real->waiting = FALSE; /* The last thread should cleanup the pool */ + g_async_queue_unlock (real->queue); +} + +static void +g_thread_pool_free_internal (GRealThreadPool* pool) +{ + g_return_if_fail (pool); + g_return_if_fail (!pool->running); + g_return_if_fail (pool->num_threads == 0); + + g_async_queue_unref (pool->queue); + + g_free (pool); +} + +static void +g_thread_pool_wakeup_and_stop_all (GRealThreadPool* pool) +{ + guint i; + + g_return_if_fail (pool); + g_return_if_fail (!pool->running); + g_return_if_fail (pool->num_threads != 0); + g_return_if_fail (g_async_queue_length_unlocked (pool->queue) == + -pool->num_threads); + + pool->immediate = TRUE; + for (i = 0; i < pool->num_threads; i++) + g_async_queue_push_unlocked (pool->queue, GUINT_TO_POINTER (1)); +} + +/** + * g_thread_pool_set_max_unused_threads: + * @max_threads: maximal number of unused threads + * + * Sets the maximal number of unused threads to @max_threads. If + * @max_threads is -1, no limit is imposed on the number of unused + * threads. + **/ +void +g_thread_pool_set_max_unused_threads (gint max_threads) +{ + g_return_if_fail (max_threads >= -1); + + G_LOCK (unused_threads); + + max_unused_threads = max_threads; + + if (max_unused_threads < unused_threads && max_unused_threads != -1) + { + guint i; + + g_async_queue_lock (unused_thread_queue); + for (i = unused_threads - max_unused_threads; i > 0; i--) + g_async_queue_push_unlocked (unused_thread_queue, + stop_this_thread_marker); + g_async_queue_unlock (unused_thread_queue); + } + + G_UNLOCK (unused_threads); +} + +/** + * g_thread_pool_get_max_unused_threads: + * + * Returns the maximal allowed number of unused threads. + * + * Return value: the maximal number of unused threads + **/ +gint +g_thread_pool_get_max_unused_threads (void) +{ + gint retval; + + G_LOCK (unused_threads); + retval = max_unused_threads; + G_UNLOCK (unused_threads); + + return retval; +} + +/** + * g_thread_pool_get_num_unused_threads: + * + * Returns the number of currently unused threads. + * + * Return value: the number of currently unused threads + **/ +guint g_thread_pool_get_num_unused_threads (void) +{ + guint retval; + + G_LOCK (unused_threads); + retval = unused_threads; + G_UNLOCK (unused_threads); + + return retval; +} + +/** + * g_thread_pool_stop_unused_threads: + * + * Stops all currently unused threads. This does not change the + * maximal number of unused threads. This function can be used to + * regularly stop all unused threads e.g. from g_timeout_add(). + **/ +void g_thread_pool_stop_unused_threads (void) +{ + guint oldval = g_thread_pool_get_max_unused_threads (); + g_thread_pool_set_max_unused_threads (0); + g_thread_pool_set_max_unused_threads (oldval); +} diff --git a/graf2d/win32gdk/gdk/src/glib/gthreadpool.h b/graf2d/win32gdk/gdk/src/glib/gthreadpool.h index d6fa87c8a98..ed1e81ba350 100644 --- a/graf2d/win32gdk/gdk/src/glib/gthreadpool.h +++ b/graf2d/win32gdk/gdk/src/glib/gthreadpool.h @@ -27,7 +27,7 @@ #ifndef __G_THREADPOOL_H__ #define __G_THREADPOOL_H__ -#include <gthread.h> +#include <glib/gthread.h> G_BEGIN_DECLS @@ -40,26 +40,20 @@ typedef struct _GThreadPool GThreadPool; * pool with the constructor function */ struct _GThreadPool { - GFunc thread_func; - gulong stack_size; - gboolean bound; - GThreadPriority priority; - gboolean exclusive; + GFunc func; gpointer user_data; + gboolean exclusive; }; -/* Get a thread pool with the function thread_func, at most max_threads may - * run at a time (max_threads == -1 means no limit), stack_size, bound, - * priority like in g_thread_create, exclusive == TRUE means, that the threads - * shouldn't be shared and that they will be prestarted (otherwise they are - * started, as needed) user_data is the 2nd argument to the thread_func */ -GThreadPool* g_thread_pool_new (GFunc thread_func, +/* Get a thread pool with the function func, at most max_threads may + * run at a time (max_threads == -1 means no limit), exclusive == TRUE + * means, that the threads shouldn't be shared and that they will be + * prestarted (otherwise they are started as needed) user_data is the + * 2nd argument to the func */ +GThreadPool* g_thread_pool_new (GFunc func, + gpointer user_data, gint max_threads, - gulong stack_size, - gboolean bound, - GThreadPriority priority, gboolean exclusive, - gpointer user_data, GError **error); /* Push new data into the thread pool. This task is assigned to a thread later diff --git a/graf2d/win32gdk/gdk/src/glib/gtimer.c b/graf2d/win32gdk/gdk/src/glib/gtimer.c new file mode 100644 index 00000000000..f06d5bb9e7f --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gtimer.c @@ -0,0 +1,261 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include "glib.h" +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif /* HAVE_UNISTD_H */ +#ifndef G_OS_WIN32 +#include <sys/time.h> +#include <time.h> +#include <errno.h> +#endif /* G_OS_WIN32 */ + +#ifdef G_OS_WIN32 +#include <windows.h> +#endif /* G_OS_WIN32 */ + +struct _GTimer +{ +#ifdef G_OS_WIN32 + DWORD start; + DWORD end; +#else /* !G_OS_WIN32 */ + struct timeval start; + struct timeval end; +#endif /* !G_OS_WIN32 */ + + guint active : 1; +}; + +#ifdef G_OS_WIN32 +# define GETTIME(v) \ + v = GetTickCount () +#else /* !G_OS_WIN32 */ +# define GETTIME(v) \ + gettimeofday (&v, NULL) +#endif /* !G_OS_WIN32 */ + +GTimer* +g_timer_new (void) +{ + GTimer *timer; + + timer = g_new (GTimer, 1); + timer->active = TRUE; + + GETTIME (timer->start); + + return timer; +} + +void +g_timer_destroy (GTimer *timer) +{ + g_return_if_fail (timer != NULL); + + g_free (timer); +} + +void +g_timer_start (GTimer *timer) +{ + g_return_if_fail (timer != NULL); + + timer->active = TRUE; + + GETTIME (timer->start); +} + +void +g_timer_stop (GTimer *timer) +{ + g_return_if_fail (timer != NULL); + + timer->active = FALSE; + + GETTIME(timer->end); +} + +void +g_timer_reset (GTimer *timer) +{ + g_return_if_fail (timer != NULL); + + GETTIME (timer->start); +} + +gdouble +g_timer_elapsed (GTimer *timer, + gulong *microseconds) +{ + gdouble total; +#ifndef G_OS_WIN32 + struct timeval elapsed; +#endif /* G_OS_WIN32 */ + + g_return_val_if_fail (timer != NULL, 0); + +#ifdef G_OS_WIN32 + if (timer->active) + timer->end = GetTickCount (); + + /* Check for wraparound, which happens every 49.7 days. */ + if (timer->end < timer->start) + total = (UINT_MAX - (timer->start - timer->end)) / 1000.0; + else + total = (timer->end - timer->start) / 1000.0; + + if (microseconds) + { + if (timer->end < timer->start) + *microseconds = + ((UINT_MAX - (timer->start - timer->end)) % 1000) * 1000; + else + *microseconds = + ((timer->end - timer->start) % 1000) * 1000; + } +#else /* !G_OS_WIN32 */ + if (timer->active) + gettimeofday (&timer->end, NULL); + + if (timer->start.tv_usec > timer->end.tv_usec) + { + timer->end.tv_usec += G_USEC_PER_SEC; + timer->end.tv_sec--; + } + + elapsed.tv_usec = timer->end.tv_usec - timer->start.tv_usec; + elapsed.tv_sec = timer->end.tv_sec - timer->start.tv_sec; + + total = elapsed.tv_sec + ((gdouble) elapsed.tv_usec / 1e6); + if (total < 0) + { + total = 0; + + if (microseconds) + *microseconds = 0; + } + else if (microseconds) + *microseconds = elapsed.tv_usec; + +#endif /* !G_OS_WIN32 */ + + return total; +} + +void +g_usleep (gulong microseconds) +{ +#ifdef G_OS_WIN32 + Sleep (microseconds / 1000); +#else /* !G_OS_WIN32 */ +# ifdef HAVE_NANOSLEEP + struct timespec request, remaining; + request.tv_sec = microseconds / G_USEC_PER_SEC; + request.tv_nsec = 1000 * (microseconds % G_USEC_PER_SEC); + while (nanosleep (&request, &remaining) == EINTR) + request = remaining; +# else /* !HAVE_NANOSLEEP */ + if (g_thread_supported ()) + { + static GStaticMutex mutex = G_STATIC_MUTEX_INIT; + static GCond* cond = NULL; + GTimeVal end_time; + + g_get_current_time (&end_time); + if (microseconds > G_MAXLONG) + { + microseconds -= G_MAXLONG; + g_time_val_add (&end_time, G_MAXLONG); + } + g_time_val_add (&end_time, microseconds); + + g_static_mutex_lock (&mutex); + + if (!cond) + cond = g_cond_new (); + + while (g_cond_timed_wait (cond, g_static_mutex_get_mutex (&mutex), + &end_time)) + /* do nothing */; + + g_static_mutex_unlock (&mutex); + } + else + { + struct timeval tv; + tv.tv_sec = microseconds / G_USEC_PER_SEC; + tv.tv_usec = microseconds % G_USEC_PER_SEC; + select(0, NULL, NULL, NULL, &tv); + } +# endif /* !HAVE_NANOSLEEP */ +#endif /* !G_OS_WIN32 */ +} + +/** + * g_time_val_add: + * @time: a #GTimeVal + * @microseconds: number of microseconds to add to @time + * + * Adds the given number of microseconds to @time. @microseconds can + * also be negative to decrease the value of @time. + **/ +void +g_time_val_add (GTimeVal *time, glong microseconds) +{ + g_return_if_fail (time->tv_usec >= 0 && time->tv_usec < G_USEC_PER_SEC); + + if (microseconds >= 0) + { + time->tv_usec += microseconds % G_USEC_PER_SEC; + time->tv_sec += microseconds / G_USEC_PER_SEC; + if (time->tv_usec >= G_USEC_PER_SEC) + { + time->tv_usec -= G_USEC_PER_SEC; + time->tv_sec++; + } + } + else + { + microseconds *= -1; + time->tv_usec -= microseconds % G_USEC_PER_SEC; + time->tv_sec -= microseconds / G_USEC_PER_SEC; + if (time->tv_usec < 0) + { + time->tv_usec += G_USEC_PER_SEC; + time->tv_sec--; + } + } +} diff --git a/graf2d/win32gdk/gdk/src/glib/gtimer.h b/graf2d/win32gdk/gdk/src/glib/gtimer.h index d537921e68a..3a9b265063d 100644 --- a/graf2d/win32gdk/gdk/src/glib/gtimer.h +++ b/graf2d/win32gdk/gdk/src/glib/gtimer.h @@ -27,7 +27,7 @@ #ifndef __G_TIMER_H__ #define __G_TIMER_H__ -#include <g_types.h> +#include <glib/gtypes.h> G_BEGIN_DECLS @@ -40,13 +40,17 @@ typedef struct _GTimer GTimer; #define G_USEC_PER_SEC 1000000 GTimer* g_timer_new (void); -void g_timer_destroy (GTimer *timer); -void g_timer_start (GTimer *timer); -void g_timer_stop (GTimer *timer); -void g_timer_reset (GTimer *timer); -gdouble g_timer_elapsed (GTimer *timer, - gulong *microseconds); -void g_usleep (gulong microseconds); +void g_timer_destroy (GTimer *timer); +void g_timer_start (GTimer *timer); +void g_timer_stop (GTimer *timer); +void g_timer_reset (GTimer *timer); +gdouble g_timer_elapsed (GTimer *timer, + gulong *microseconds); + +void g_usleep (gulong microseconds); + +void g_time_val_add (GTimeVal *time, + glong microseconds); G_END_DECLS diff --git a/graf2d/win32gdk/gdk/src/glib/gtree.c b/graf2d/win32gdk/gdk/src/glib/gtree.c new file mode 100644 index 00000000000..5b0406bc2a3 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gtree.c @@ -0,0 +1,1066 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include "glib.h" + + +typedef struct _GTreeNode GTreeNode; + +struct _GTree +{ + GTreeNode *root; + GCompareDataFunc key_compare; + GDestroyNotify key_destroy_func; + GDestroyNotify value_destroy_func; + gpointer key_compare_data; +}; + +struct _GTreeNode +{ + gint balance; /* height (left) - height (right) */ + GTreeNode *left; /* left subtree */ + GTreeNode *right; /* right subtree */ + gpointer key; /* key for this node */ + gpointer value; /* value stored at this node */ +}; + + +static GTreeNode* g_tree_node_new (gpointer key, + gpointer value); +static void g_tree_node_destroy (GTreeNode *node, + GDestroyNotify key_destroy_func, + GDestroyNotify value_destroy_func); +static GTreeNode* g_tree_node_insert (GTree *tree, + GTreeNode *node, + gpointer key, + gpointer value, + gboolean replace, + gboolean *inserted); +static GTreeNode* g_tree_node_remove (GTree *tree, + GTreeNode *node, + gconstpointer key, + gboolean notify); +static GTreeNode* g_tree_node_balance (GTreeNode *node); +static GTreeNode* g_tree_node_remove_leftmost (GTreeNode *node, + GTreeNode **leftmost); +static GTreeNode* g_tree_node_restore_left_balance (GTreeNode *node, + gint old_balance); +static GTreeNode* g_tree_node_restore_right_balance (GTreeNode *node, + gint old_balance); +static GTreeNode* g_tree_node_lookup (GTreeNode *node, + GCompareDataFunc compare, + gpointer comp_data, + gconstpointer key); +static gint g_tree_node_count (GTreeNode *node); +static gint g_tree_node_pre_order (GTreeNode *node, + GTraverseFunc traverse_func, + gpointer data); +static gint g_tree_node_in_order (GTreeNode *node, + GTraverseFunc traverse_func, + gpointer data); +static gint g_tree_node_post_order (GTreeNode *node, + GTraverseFunc traverse_func, + gpointer data); +static gpointer g_tree_node_search (GTreeNode *node, + GCompareFunc search_func, + gconstpointer data); +static gint g_tree_node_height (GTreeNode *node); +static GTreeNode* g_tree_node_rotate_left (GTreeNode *node); +static GTreeNode* g_tree_node_rotate_right (GTreeNode *node); +static void g_tree_node_check (GTreeNode *node); + + +G_LOCK_DEFINE_STATIC (g_tree_global); +static GMemChunk *node_mem_chunk = NULL; +static GTreeNode *node_free_list = NULL; + + +static GTreeNode* +g_tree_node_new (gpointer key, + gpointer value) +{ + GTreeNode *node; + + G_LOCK (g_tree_global); + if (node_free_list) + { + node = node_free_list; + node_free_list = node->right; + } + else + { + if (!node_mem_chunk) + node_mem_chunk = g_mem_chunk_new ("GLib GTreeNode mem chunk", + sizeof (GTreeNode), + 1024, + G_ALLOC_ONLY); + + node = g_chunk_new (GTreeNode, node_mem_chunk); + } + G_UNLOCK (g_tree_global); + + node->balance = 0; + node->left = NULL; + node->right = NULL; + node->key = key; + node->value = value; + + return node; +} + +static void +g_tree_node_destroy (GTreeNode *node, + GDestroyNotify key_destroy_func, + GDestroyNotify value_destroy_func) +{ + if (node) + { + g_tree_node_destroy (node->right, + key_destroy_func, value_destroy_func); + g_tree_node_destroy (node->left, + key_destroy_func, value_destroy_func); + + if (key_destroy_func) + key_destroy_func (node->key); + if (value_destroy_func) + value_destroy_func (node->value); + +#ifdef ENABLE_GC_FRIENDLY + node->left = NULL; + node->key = NULL; + node->value = NULL; +#endif /* ENABLE_GC_FRIENDLY */ + + G_LOCK (g_tree_global); + node->right = node_free_list; + node_free_list = node; + G_UNLOCK (g_tree_global); + } +} + +/** + * g_tree_new: + * @key_compare_func: the function used to order the nodes in the #GTree. + * It should return values similar to the standard + * <function>strcmp()</function> function - + * 0 if the two arguments are equal, a negative value if the first argument + * comes before the second, or a positive value if the first argument comes + * after the second. + * + * Creates a new #GTree. + * + * Return value: a new #GTree. + **/ +GTree* +g_tree_new (GCompareFunc key_compare_func) +{ + g_return_val_if_fail (key_compare_func != NULL, NULL); + + return g_tree_new_full ((GCompareDataFunc) key_compare_func, NULL, + NULL, NULL); +} + +/** + * g_tree_new_with_data: + * @key_compare_func: qsort()-style comparison function. + * @key_compare_data: data to pass to comparison function. + * + * Creates a new #GTree with a comparison function that accepts user data. + * See g_tree_new() for more details. + * + * Return value: a new #GTree. + **/ +GTree* +g_tree_new_with_data (GCompareDataFunc key_compare_func, + gpointer key_compare_data) +{ + g_return_val_if_fail (key_compare_func != NULL, NULL); + + return g_tree_new_full (key_compare_func, key_compare_data, + NULL, NULL); +} + +/** + * g_tree_new_full: + * @key_compare_func: qsort()-style comparison function. + * @key_compare_data: data to pass to comparison function. + * @key_destroy_func: a function to free the memory allocated for the key + * used when removing the entry from the #GTree or #NULL if you don't + * want to supply such a function. + * @value_destroy_func: a function to free the memory allocated for the + * value used when removing the entry from the #GTree or #NULL if you + * don't want to supply such a function. + * + * Creates a new #GTree like g_tree_new() and allows to specify functions + * to free the memory allocated for the key and value that get called when + * removing the entry from the #GTree. + * + * Return value: a new #GTree. + **/ +GTree* +g_tree_new_full (GCompareDataFunc key_compare_func, + gpointer key_compare_data, + GDestroyNotify key_destroy_func, + GDestroyNotify value_destroy_func) +{ + GTree *tree; + + g_return_val_if_fail (key_compare_func != NULL, NULL); + + tree = g_new (GTree, 1); + tree->root = NULL; + tree->key_compare = key_compare_func; + tree->key_destroy_func = key_destroy_func; + tree->value_destroy_func = value_destroy_func; + tree->key_compare_data = key_compare_data; + + return tree; +} + +/** + * g_tree_destroy: + * @tree: a #GTree. + * + * Destroys the #GTree. If keys and/or values are dynamically allocated, you + * should either free them first or create the #GTree using g_tree_new_full(). + * In the latter case the destroy functions you supplied will be called on + * all keys and values before destroying the #GTree. + **/ +void +g_tree_destroy (GTree *tree) +{ + g_return_if_fail (tree != NULL); + + g_tree_node_destroy (tree->root, + tree->key_destroy_func, + tree->value_destroy_func); + + g_free (tree); +} + +/** + * g_tree_insert: + * @tree: a #Gtree. + * @key: the key to insert. + * @value: the value corresponding to the key. + * + * Inserts a key/value pair into a #GTree. If the given key already exists + * in the #GTree its corresponding value is set to the new value. If you + * supplied a value_destroy_func when creating the #GTree, the old value is + * freed using that function. If you supplied a key_destroy_func when + * creating the #GTree, the passed key is freed using that function. + * + * The tree is automatically 'balanced' as new key/value pairs are added, + * so that the distance from the root to every leaf is as small as possible. + **/ +void +g_tree_insert (GTree *tree, + gpointer key, + gpointer value) +{ + gboolean inserted; + + g_return_if_fail (tree != NULL); + + inserted = FALSE; + tree->root = g_tree_node_insert (tree, + tree->root, + key, value, + FALSE, &inserted); +} + +/** + * g_tree_replace: + * @tree: a #Gtree. + * @key: the key to insert. + * @value: the value corresponding to the key. + * + * Inserts a new key and value into a #GTree similar to g_tree_insert(). + * The difference is that if the key already exists in the #GTree, it gets + * replaced by the new key. If you supplied a value_destroy_func when + * creating the #GTree, the old value is freed using that function. If you + * supplied a key_destroy_func when creating the #GTree, the old key is + * freed using that function. + * + * The tree is automatically 'balanced' as new key/value pairs are added, + * so that the distance from the root to every leaf is as small as possible. + **/ +void +g_tree_replace (GTree *tree, + gpointer key, + gpointer value) +{ + gboolean inserted; + + g_return_if_fail (tree != NULL); + + inserted = FALSE; + tree->root = g_tree_node_insert (tree, + tree->root, + key, value, + TRUE, &inserted); +} + +/** + * g_tree_remove: + * @tree: a #Gtree. + * @key: the key to remove. + * + * Removes a key/value pair from a #GTree. + * + * If the #GTree was created using g_tree_new_full(), the key and value + * are freed using the supplied destroy_functions, otherwise you have to + * make sure that any dynamically allocated values are freed yourself. + **/ +void +g_tree_remove (GTree *tree, + gconstpointer key) +{ + g_return_if_fail (tree != NULL); + + tree->root = g_tree_node_remove (tree, tree->root, key, TRUE); +} + +/** + * g_tree_steal: + * @tree: a #Gtree. + * @key: the key to remove. + * + * Removes a key and its associated value from a #GTree without calling + * the key and value destroy functions. + **/ +void +g_tree_steal (GTree *tree, + gconstpointer key) +{ + g_return_if_fail (tree != NULL); + + tree->root = g_tree_node_remove (tree, tree->root, key, FALSE); +} + +/** + * g_tree_lookup: + * @tree: a #GTree. + * @key: the key to look up. + * + * Gets the value corresponding to the given key. Since a #GTree is + * automatically balanced as key/value pairs are added, key lookup is very + * fast. + * + * Return value: the value corresponding to the key. + **/ +gpointer +g_tree_lookup (GTree *tree, + gconstpointer key) +{ + GTreeNode *node; + + g_return_val_if_fail (tree != NULL, NULL); + + node = g_tree_node_lookup (tree->root, + tree->key_compare, tree->key_compare_data, key); + + return node ? node->value : NULL; +} + +/** + * g_tree_lookup_extended: + * @tree: a #GTree. + * @lookup_key: the key to look up. + * @orig_key: returns the original key. + * @value: returns the value associated with the key. + * + * Looks up a key in the #GTree, returning the original key and the + * associated value and a gboolean which is TRUE if the key was found. This + * is useful if you need to free the memory allocated for the original key, + * for example before calling g_tree_remove(). + * + * Return value: #TRUE if the key was found in the #GTree. + **/ +gboolean +g_tree_lookup_extended (GTree *tree, + gconstpointer lookup_key, + gpointer *orig_key, + gpointer *value) +{ + GTreeNode *node; + + g_return_val_if_fail (tree != NULL, FALSE); + + node = g_tree_node_lookup (tree->root, + tree->key_compare, tree->key_compare_data, lookup_key); + + if (node) + { + if (orig_key) + *orig_key = node->key; + if (value) + *value = node->value; + return TRUE; + } + else + return FALSE; +} + +/** + * g_tree_foreach: + * @tree: a #GTree. + * @func: the function to call for each node visited. If this function + * returns TRUE, the traversal is stopped. + * @user_data: user data to pass to the function. + * + * Calls the given function for each of the key/value pairs in the #GTree. + * The function is passed the key and value of each pair, and the given + * @data parameter. + **/ +void +g_tree_foreach (GTree *tree, + GTraverseFunc func, + gpointer user_data) +{ + g_return_if_fail (tree != NULL); + + if (!tree->root) + return; + + g_tree_node_in_order (tree->root, func, user_data); +} + +/** + * g_tree_traverse: + * @tree: a #GTree. + * @traverse_func: the function to call for each node visited. If this + * function returns TRUE, the traversal is stopped. + * @traverse_type: the order in which nodes are visited, one of %G_IN_ORDER, + * %G_PRE_ORDER and %G_POST_ORDER. + * @user_data: user data to pass to the function. + * + * Calls the given function for each node in the GTree. This function is + * deprecated, use g_tree_foreach() instead. + **/ +void +g_tree_traverse (GTree *tree, + GTraverseFunc traverse_func, + GTraverseType traverse_type, + gpointer user_data) +{ + g_return_if_fail (tree != NULL); + + if (!tree->root) + return; + + switch (traverse_type) + { + case G_PRE_ORDER: + g_tree_node_pre_order (tree->root, traverse_func, user_data); + break; + + case G_IN_ORDER: + g_tree_node_in_order (tree->root, traverse_func, user_data); + break; + + case G_POST_ORDER: + g_tree_node_post_order (tree->root, traverse_func, user_data); + break; + + case G_LEVEL_ORDER: + g_warning ("g_tree_traverse(): traverse type G_LEVEL_ORDER isn't implemented."); + break; + } +} + +/** + * g_tree_search: + * @tree: a #GTree. + * @search_func: the comparison function used to search the #GTree. + * @user_data: the data passed as the second argument to the @search_func + * function. + * + * Searches a #GTree using an alternative form of the comparison function. + * + * This function is not as useful as it sounds. + * It allows you to use a different function for performing the lookup of + * a key. However, since the tree is ordered according to the @key_compare_func + * function passed to g_tree_new(), the function you pass to g_tree_search() + * must return exactly the same value as would be returned by the comparison + * function, for each pair of tree nodes, or the search will not work. + * + * To search for a specific value, you can use g_tree_foreach() or + * g_tree_traverse(). + * + * Return value: the value corresponding to the found key, or NULL if the key + * is not found. + **/ +gpointer +g_tree_search (GTree *tree, + GCompareFunc search_func, + gconstpointer user_data) +{ + g_return_val_if_fail (tree != NULL, NULL); + + if (tree->root) + return g_tree_node_search (tree->root, search_func, user_data); + else + return NULL; +} + +/** + * g_tree_height: + * @tree: a #GTree. + * + * Gets the height of a #GTree. + * + * If the #GTree contains no nodes, the height is 0. + * If the #GTree contains only one root node the height is 1. + * If the root node has children the height is 2, etc. + * + * Return value: the height of the #GTree. + **/ +gint +g_tree_height (GTree *tree) +{ + g_return_val_if_fail (tree != NULL, 0); + + if (tree->root) + return g_tree_node_height (tree->root); + else + return 0; +} + +/** + * g_tree_nnodes: + * @tree: a #GTree. + * + * Gets the number of nodes in a #GTree. + * + * Return value: the number of nodes in the #GTree. + **/ +gint +g_tree_nnodes (GTree *tree) +{ + g_return_val_if_fail (tree != NULL, 0); + + if (tree->root) + return g_tree_node_count (tree->root); + else + return 0; +} + +static GTreeNode* +g_tree_node_insert (GTree *tree, + GTreeNode *node, + gpointer key, + gpointer value, + gboolean replace, + gboolean *inserted) +{ + gint old_balance; + gint cmp; + + if (!node) + { + *inserted = TRUE; + return g_tree_node_new (key, value); + } + + cmp = tree->key_compare (key, node->key, tree->key_compare_data); + if (cmp == 0) + { + *inserted = FALSE; + + if (tree->value_destroy_func) + tree->value_destroy_func (node->value); + + node->value = value; + + if (replace) + { + if (tree->key_destroy_func) + tree->key_destroy_func (node->key); + + node->key = key; + } + else + { + /* free the passed key */ + if (tree->key_destroy_func) + tree->key_destroy_func (key); + } + + return node; + } + + if (cmp < 0) + { + if (node->left) + { + old_balance = node->left->balance; + node->left = g_tree_node_insert (tree, + node->left, + key, value, + replace, inserted); + + if ((old_balance != node->left->balance) && node->left->balance) + node->balance -= 1; + } + else + { + *inserted = TRUE; + node->left = g_tree_node_new (key, value); + node->balance -= 1; + } + } + else if (cmp > 0) + { + if (node->right) + { + old_balance = node->right->balance; + node->right = g_tree_node_insert (tree, + node->right, + key, value, + replace, inserted); + + if ((old_balance != node->right->balance) && node->right->balance) + node->balance += 1; + } + else + { + *inserted = TRUE; + node->right = g_tree_node_new (key, value); + node->balance += 1; + } + } + + if (*inserted) + { + if ((node->balance < -1) || (node->balance > 1)) + node = g_tree_node_balance (node); + } + + return node; +} + +static GTreeNode* +g_tree_node_remove (GTree *tree, + GTreeNode *node, + gconstpointer key, + gboolean notify) +{ + GTreeNode *new_root; + gint old_balance; + gint cmp; + + if (!node) + return NULL; + + cmp = tree->key_compare (key, node->key, tree->key_compare_data); + if (cmp == 0) + { + GTreeNode *garbage; + + garbage = node; + + if (!node->right) + { + node = node->left; + } + else + { + old_balance = node->right->balance; + node->right = g_tree_node_remove_leftmost (node->right, &new_root); + new_root->left = node->left; + new_root->right = node->right; + new_root->balance = node->balance; + node = g_tree_node_restore_right_balance (new_root, old_balance); + } + + if (notify) + { + if (tree->key_destroy_func) + tree->key_destroy_func (garbage->key); + if (tree->value_destroy_func) + tree->value_destroy_func (garbage->value); + } + +#ifdef ENABLE_GC_FRIENDLY + garbage->left = NULL; + garbage->key = NULL; + garbage->value = NULL; +#endif /* ENABLE_GC_FRIENDLY */ + + G_LOCK (g_tree_global); + garbage->right = node_free_list; + node_free_list = garbage; + G_UNLOCK (g_tree_global); + } + else if (cmp < 0) + { + if (node->left) + { + old_balance = node->left->balance; + node->left = g_tree_node_remove (tree, node->left, key, notify); + node = g_tree_node_restore_left_balance (node, old_balance); + } + } + else if (cmp > 0) + { + if (node->right) + { + old_balance = node->right->balance; + node->right = g_tree_node_remove (tree, node->right, key, notify); + node = g_tree_node_restore_right_balance (node, old_balance); + } + } + + return node; +} + +static GTreeNode* +g_tree_node_balance (GTreeNode *node) +{ + if (node->balance < -1) + { + if (node->left->balance > 0) + node->left = g_tree_node_rotate_left (node->left); + node = g_tree_node_rotate_right (node); + } + else if (node->balance > 1) + { + if (node->right->balance < 0) + node->right = g_tree_node_rotate_right (node->right); + node = g_tree_node_rotate_left (node); + } + + return node; +} + +static GTreeNode* +g_tree_node_remove_leftmost (GTreeNode *node, + GTreeNode **leftmost) +{ + gint old_balance; + + if (!node->left) + { + *leftmost = node; + return node->right; + } + + old_balance = node->left->balance; + node->left = g_tree_node_remove_leftmost (node->left, leftmost); + return g_tree_node_restore_left_balance (node, old_balance); +} + +static GTreeNode* +g_tree_node_restore_left_balance (GTreeNode *node, + gint old_balance) +{ + if (!node->left) + node->balance += 1; + else if ((node->left->balance != old_balance) && + (node->left->balance == 0)) + node->balance += 1; + + if (node->balance > 1) + return g_tree_node_balance (node); + return node; +} + +static GTreeNode* +g_tree_node_restore_right_balance (GTreeNode *node, + gint old_balance) +{ + if (!node->right) + node->balance -= 1; + else if ((node->right->balance != old_balance) && + (node->right->balance == 0)) + node->balance -= 1; + + if (node->balance < -1) + return g_tree_node_balance (node); + return node; +} + +static GTreeNode * +g_tree_node_lookup (GTreeNode *node, + GCompareDataFunc compare, + gpointer compare_data, + gconstpointer key) +{ + gint cmp; + + if (!node) + return NULL; + + cmp = (* compare) (key, node->key, compare_data); + if (cmp == 0) + return node; + + if (cmp < 0) + { + if (node->left) + return g_tree_node_lookup (node->left, compare, compare_data, key); + } + else if (cmp > 0) + { + if (node->right) + return g_tree_node_lookup (node->right, compare, compare_data, key); + } + + return NULL; +} + +static gint +g_tree_node_count (GTreeNode *node) +{ + gint count; + + count = 1; + if (node->left) + count += g_tree_node_count (node->left); + if (node->right) + count += g_tree_node_count (node->right); + + return count; +} + +static gint +g_tree_node_pre_order (GTreeNode *node, + GTraverseFunc traverse_func, + gpointer data) +{ + if ((*traverse_func) (node->key, node->value, data)) + return TRUE; + if (node->left) + { + if (g_tree_node_pre_order (node->left, traverse_func, data)) + return TRUE; + } + if (node->right) + { + if (g_tree_node_pre_order (node->right, traverse_func, data)) + return TRUE; + } + + return FALSE; +} + +static gint +g_tree_node_in_order (GTreeNode *node, + GTraverseFunc traverse_func, + gpointer data) +{ + if (node->left) + { + if (g_tree_node_in_order (node->left, traverse_func, data)) + return TRUE; + } + if ((*traverse_func) (node->key, node->value, data)) + return TRUE; + if (node->right) + { + if (g_tree_node_in_order (node->right, traverse_func, data)) + return TRUE; + } + + return FALSE; +} + +static gint +g_tree_node_post_order (GTreeNode *node, + GTraverseFunc traverse_func, + gpointer data) +{ + if (node->left) + { + if (g_tree_node_post_order (node->left, traverse_func, data)) + return TRUE; + } + if (node->right) + { + if (g_tree_node_post_order (node->right, traverse_func, data)) + return TRUE; + } + if ((*traverse_func) (node->key, node->value, data)) + return TRUE; + + return FALSE; +} + +static gpointer +g_tree_node_search (GTreeNode *node, + GCompareFunc search_func, + gconstpointer data) +{ + gint dir; + + if (!node) + return NULL; + + do { + dir = (* search_func) (node->key, data); + if (dir == 0) + return node->value; + + if (dir < 0) + node = node->left; + else if (dir > 0) + node = node->right; + } while (node); + + return NULL; +} + +static gint +g_tree_node_height (GTreeNode *node) +{ + gint left_height; + gint right_height; + + if (node) + { + left_height = 0; + right_height = 0; + + if (node->left) + left_height = g_tree_node_height (node->left); + + if (node->right) + right_height = g_tree_node_height (node->right); + + return MAX (left_height, right_height) + 1; + } + + return 0; +} + +static GTreeNode* +g_tree_node_rotate_left (GTreeNode *node) +{ + GTreeNode *right; + gint a_bal; + gint b_bal; + + right = node->right; + + node->right = right->left; + right->left = node; + + a_bal = node->balance; + b_bal = right->balance; + + if (b_bal <= 0) + { + if (a_bal >= 1) + right->balance = b_bal - 1; + else + right->balance = a_bal + b_bal - 2; + node->balance = a_bal - 1; + } + else + { + if (a_bal <= b_bal) + right->balance = a_bal - 2; + else + right->balance = b_bal - 1; + node->balance = a_bal - b_bal - 1; + } + + return right; +} + +static GTreeNode* +g_tree_node_rotate_right (GTreeNode *node) +{ + GTreeNode *left; + gint a_bal; + gint b_bal; + + left = node->left; + + node->left = left->right; + left->right = node; + + a_bal = node->balance; + b_bal = left->balance; + + if (b_bal <= 0) + { + if (b_bal > a_bal) + left->balance = b_bal + 1; + else + left->balance = a_bal + 2; + node->balance = a_bal - b_bal + 1; + } + else + { + if (a_bal <= -1) + left->balance = b_bal + 1; + else + left->balance = a_bal + b_bal + 2; + node->balance = a_bal + 1; + } + + return left; +} + +static void +g_tree_node_check (GTreeNode *node) +{ + gint left_height; + gint right_height; + gint balance; + + if (node) + { + left_height = 0; + right_height = 0; + + if (node->left) + left_height = g_tree_node_height (node->left); + if (node->right) + right_height = g_tree_node_height (node->right); + + balance = right_height - left_height; + if (balance != node->balance) + g_log (g_log_domain_glib, G_LOG_LEVEL_INFO, + "g_tree_node_check: failed: %d ( %d )\n", + balance, node->balance); + + if (node->left) + g_tree_node_check (node->left); + if (node->right) + g_tree_node_check (node->right); + } +} diff --git a/graf2d/win32gdk/gdk/src/glib/gtree.h b/graf2d/win32gdk/gdk/src/glib/gtree.h index 3530a6374be..6742c4a1956 100644 --- a/graf2d/win32gdk/gdk/src/glib/gtree.h +++ b/graf2d/win32gdk/gdk/src/glib/gtree.h @@ -27,38 +27,54 @@ #ifndef __G_TREE_H__ #define __G_TREE_H__ -#include <gnode.h> +#include <glib/gnode.h> G_BEGIN_DECLS -typedef struct _GTree GTree; +typedef struct _GTree GTree; -typedef gint (*GTraverseFunc) (gpointer key, - gpointer value, - gpointer data); +typedef gint (*GTraverseFunc) (gpointer key, + gpointer value, + gpointer data); /* Balanced binary trees */ -GTree* g_tree_new (GCompareFunc key_compare_func); -GTree* g_tree_new_with_data (GCompareFuncData key_compare_func, - gpointer user_data); -void g_tree_destroy (GTree *tree); -void g_tree_insert (GTree *tree, - gpointer key, - gpointer value); -void g_tree_remove (GTree *tree, - gconstpointer key); -gpointer g_tree_lookup (GTree *tree, - gconstpointer key); -void g_tree_traverse (GTree *tree, - GTraverseFunc traverse_func, - GTraverseType traverse_type, - gpointer data); -gpointer g_tree_search (GTree *tree, - GCompareFunc search_func, - gconstpointer data); -gint g_tree_height (GTree *tree); -gint g_tree_nnodes (GTree *tree); +GTree* g_tree_new (GCompareFunc key_compare_func); +GTree* g_tree_new_with_data (GCompareDataFunc key_compare_func, + gpointer key_compare_data); +GTree* g_tree_new_full (GCompareDataFunc key_compare_func, + gpointer key_compare_data, + GDestroyNotify key_destroy_func, + GDestroyNotify value_destroy_func); +void g_tree_destroy (GTree *tree); +void g_tree_insert (GTree *tree, + gpointer key, + gpointer value); +void g_tree_replace (GTree *tree, + gpointer key, + gpointer value); +void g_tree_remove (GTree *tree, + gconstpointer key); +void g_tree_steal (GTree *tree, + gconstpointer key); +gpointer g_tree_lookup (GTree *tree, + gconstpointer key); +gboolean g_tree_lookup_extended (GTree *tree, + gconstpointer lookup_key, + gpointer *orig_key, + gpointer *value); +void g_tree_foreach (GTree *tree, + GTraverseFunc func, + gpointer user_data); +void g_tree_traverse (GTree *tree, + GTraverseFunc traverse_func, + GTraverseType traverse_type, + gpointer user_data); +gpointer g_tree_search (GTree *tree, + GCompareFunc search_func, + gconstpointer user_data); +gint g_tree_height (GTree *tree); +gint g_tree_nnodes (GTree *tree); diff --git a/graf2d/win32gdk/gdk/src/glib/gtypes.h b/graf2d/win32gdk/gdk/src/glib/gtypes.h new file mode 100644 index 00000000000..27597b70066 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gtypes.h @@ -0,0 +1,350 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_TYPES_H__ +#define __G_TYPES_H__ + +#include <glibconfig.h> + +G_BEGIN_DECLS + +/* Provide type definitions for commonly used types. + * These are useful because a "gint8" can be adjusted + * to be 1 byte (8 bits) on all platforms. Similarly and + * more importantly, "gint32" can be adjusted to be + * 4 bytes (32 bits) on all platforms. + */ + +typedef char gchar; +typedef short gshort; +typedef long glong; +typedef int gint; +typedef gint gboolean; + +typedef unsigned char guchar; +typedef unsigned short gushort; +typedef unsigned long gulong; +typedef unsigned int guint; + +typedef float gfloat; +typedef double gdouble; + +/* HAVE_LONG_DOUBLE doesn't work correctly on all platforms. + * Since gldouble isn't used anywhere, just disable it for now */ + +#if 0 +#ifdef HAVE_LONG_DOUBLE +typedef long double gldouble; +#else /* HAVE_LONG_DOUBLE */ +typedef double gldouble; +#endif /* HAVE_LONG_DOUBLE */ +#endif /* 0 */ + +typedef void* gpointer; +typedef const void *gconstpointer; + +typedef gint (*GCompareFunc) (gconstpointer a, + gconstpointer b); +typedef gint (*GCompareDataFunc) (gconstpointer a, + gconstpointer b, + gpointer user_data); +typedef gboolean (*GEqualFunc) (gconstpointer a, + gconstpointer b); +typedef void (*GDestroyNotify) (gpointer data); +typedef void (*GFunc) (gpointer data, + gpointer user_data); +typedef guint (*GHashFunc) (gconstpointer key); +typedef void (*GHFunc) (gpointer key, + gpointer value, + gpointer user_data); +typedef void (*GFreeFunc) (gpointer data); + +/* Define some mathematical constants that aren't available + * symbolically in some strict ISO C implementations. + */ +#define G_E 2.7182818284590452354E0 +#define G_LN2 6.9314718055994530942E-1 +#define G_LN10 2.3025850929940456840E0 +#define G_PI 3.14159265358979323846E0 +#define G_PI_2 1.57079632679489661923E0 +#define G_PI_4 0.78539816339744830962E0 +#define G_SQRT2 1.4142135623730950488E0 + +/* Portable endian checks and conversions + * + * glibconfig.h defines G_BYTE_ORDER which expands to one of + * the below macros. + */ +#define G_LITTLE_ENDIAN 1234 +#define G_BIG_ENDIAN 4321 +#define G_PDP_ENDIAN 3412 /* unused, need specific PDP check */ + + +/* Basic bit swapping functions + */ +#define GUINT16_SWAP_LE_BE_CONSTANT(val) ((guint16) ( \ + (((guint16) (val) & (guint16) 0x00ffU) << 8) | \ + (((guint16) (val) & (guint16) 0xff00U) >> 8))) +#define GUINT32_SWAP_LE_BE_CONSTANT(val) ((guint32) ( \ + (((guint32) (val) & (guint32) 0x000000ffU) << 24) | \ + (((guint32) (val) & (guint32) 0x0000ff00U) << 8) | \ + (((guint32) (val) & (guint32) 0x00ff0000U) >> 8) | \ + (((guint32) (val) & (guint32) 0xff000000U) >> 24))) + +/* Intel specific stuff for speed + */ +#if defined (__i386__) && defined (__GNUC__) && __GNUC__ >= 2 +# define GUINT16_SWAP_LE_BE_X86(val) \ + (G_GNUC_EXTENSION \ + ({ register guint16 __v; \ + if (__builtin_constant_p (val)) \ + __v = GUINT16_SWAP_LE_BE_CONSTANT (val); \ + else \ + __asm__ __const__ ("rorw $8, %w0" \ + : "=r" (__v) \ + : "0" ((guint16) (val))); \ + __v; })) +# define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_X86 (val)) +# if !defined(__i486__) && !defined(__i586__) \ + && !defined(__pentium__) && !defined(__i686__) && !defined(__pentiumpro__) +# define GUINT32_SWAP_LE_BE_X86(val) \ + (G_GNUC_EXTENSION \ + ({ register guint32 __v; \ + if (__builtin_constant_p (val)) \ + __v = GUINT32_SWAP_LE_BE_CONSTANT (val); \ + else \ + __asm__ __const__ ("rorw $8, %w0\n\t" \ + "rorl $16, %0\n\t" \ + "rorw $8, %w0" \ + : "=r" (__v) \ + : "0" ((guint32) (val))); \ + __v; })) +# else /* 486 and higher has bswap */ +# define GUINT32_SWAP_LE_BE_X86(val) \ + (G_GNUC_EXTENSION \ + ({ register guint32 __v; \ + if (__builtin_constant_p (val)) \ + __v = GUINT32_SWAP_LE_BE_CONSTANT (val); \ + else \ + __asm__ __const__ ("bswap %0" \ + : "=r" (__v) \ + : "0" ((guint32) (val))); \ + __v; })) +# endif /* processor specific 32-bit stuff */ +# define GUINT32_SWAP_LE_BE(val) (GUINT32_SWAP_LE_BE_X86 (val)) +#else /* !__i386__ */ +# define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_CONSTANT (val)) +# define GUINT32_SWAP_LE_BE(val) (GUINT32_SWAP_LE_BE_CONSTANT (val)) +#endif /* __i386__ */ + +#ifdef G_HAVE_GINT64 +# define GUINT64_SWAP_LE_BE_CONSTANT(val) ((guint64) ( \ + (((guint64) (val) & \ + (guint64) G_GINT64_CONSTANT(0x00000000000000ffU)) << 56) | \ + (((guint64) (val) & \ + (guint64) G_GINT64_CONSTANT(0x000000000000ff00U)) << 40) | \ + (((guint64) (val) & \ + (guint64) G_GINT64_CONSTANT(0x0000000000ff0000U)) << 24) | \ + (((guint64) (val) & \ + (guint64) G_GINT64_CONSTANT(0x00000000ff000000U)) << 8) | \ + (((guint64) (val) & \ + (guint64) G_GINT64_CONSTANT(0x000000ff00000000U)) >> 8) | \ + (((guint64) (val) & \ + (guint64) G_GINT64_CONSTANT(0x0000ff0000000000U)) >> 24) | \ + (((guint64) (val) & \ + (guint64) G_GINT64_CONSTANT(0x00ff000000000000U)) >> 40) | \ + (((guint64) (val) & \ + (guint64) G_GINT64_CONSTANT(0xff00000000000000U)) >> 56))) +# if defined (__i386__) && defined (__GNUC__) && __GNUC__ >= 2 +# define GUINT64_SWAP_LE_BE_X86(val) \ + (__extension__ \ + ({ union { guint64 __ll; \ + guint32 __l[2]; } __r; \ + if (__builtin_constant_p (val)) \ + __r.__ll = GUINT64_SWAP_LE_BE_CONSTANT (val); \ + else \ + { \ + union { guint64 __ll; \ + guint32 __l[2]; } __w; \ + __w.__ll = ((guint64) val); \ + __r.__l[0] = GUINT32_SWAP_LE_BE (__w.__l[1]); \ + __r.__l[1] = GUINT32_SWAP_LE_BE (__w.__l[0]); \ + } \ + __r.__ll; })) +# define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_X86 (val)) +# else /* !__i386__ */ +# define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_CONSTANT(val)) +# endif +#endif + +#define GUINT16_SWAP_LE_PDP(val) ((guint16) (val)) +#define GUINT16_SWAP_BE_PDP(val) (GUINT16_SWAP_LE_BE (val)) +#define GUINT32_SWAP_LE_PDP(val) ((guint32) ( \ + (((guint32) (val) & (guint32) 0x0000ffffU) << 16) | \ + (((guint32) (val) & (guint32) 0xffff0000U) >> 16))) +#define GUINT32_SWAP_BE_PDP(val) ((guint32) ( \ + (((guint32) (val) & (guint32) 0x00ff00ffU) << 8) | \ + (((guint32) (val) & (guint32) 0xff00ff00U) >> 8))) + +/* The G*_TO_?E() macros are defined in glibconfig.h. + * The transformation is symmetric, so the FROM just maps to the TO. + */ +#define GINT16_FROM_LE(val) (GINT16_TO_LE (val)) +#define GUINT16_FROM_LE(val) (GUINT16_TO_LE (val)) +#define GINT16_FROM_BE(val) (GINT16_TO_BE (val)) +#define GUINT16_FROM_BE(val) (GUINT16_TO_BE (val)) +#define GINT32_FROM_LE(val) (GINT32_TO_LE (val)) +#define GUINT32_FROM_LE(val) (GUINT32_TO_LE (val)) +#define GINT32_FROM_BE(val) (GINT32_TO_BE (val)) +#define GUINT32_FROM_BE(val) (GUINT32_TO_BE (val)) + +#ifdef G_HAVE_GINT64 +#define GINT64_FROM_LE(val) (GINT64_TO_LE (val)) +#define GUINT64_FROM_LE(val) (GUINT64_TO_LE (val)) +#define GINT64_FROM_BE(val) (GINT64_TO_BE (val)) +#define GUINT64_FROM_BE(val) (GUINT64_TO_BE (val)) +#endif + +#define GLONG_FROM_LE(val) (GLONG_TO_LE (val)) +#define GULONG_FROM_LE(val) (GULONG_TO_LE (val)) +#define GLONG_FROM_BE(val) (GLONG_TO_BE (val)) +#define GULONG_FROM_BE(val) (GULONG_TO_BE (val)) + +#define GINT_FROM_LE(val) (GINT_TO_LE (val)) +#define GUINT_FROM_LE(val) (GUINT_TO_LE (val)) +#define GINT_FROM_BE(val) (GINT_TO_BE (val)) +#define GUINT_FROM_BE(val) (GUINT_TO_BE (val)) + + +/* Portable versions of host-network order stuff + */ +#define g_ntohl(val) (GUINT32_FROM_BE (val)) +#define g_ntohs(val) (GUINT16_FROM_BE (val)) +#define g_htonl(val) (GUINT32_TO_BE (val)) +#define g_htons(val) (GUINT16_TO_BE (val)) + +/* IEEE Standard 754 Single Precision Storage Format (gfloat): + * + * 31 30 23 22 0 + * +--------+---------------+---------------+ + * | s 1bit | e[30:23] 8bit | f[22:0] 23bit | + * +--------+---------------+---------------+ + * B0------------------->B1------->B2-->B3--> + * + * IEEE Standard 754 Double Precision Storage Format (gdouble): + * + * 63 62 52 51 32 31 0 + * +--------+----------------+----------------+ +---------------+ + * | s 1bit | e[62:52] 11bit | f[51:32] 20bit | | f[31:0] 32bit | + * +--------+----------------+----------------+ +---------------+ + * B0--------------->B1---------->B2--->B3----> B4->B5->B6->B7-> + */ +/* subtract from biased_exponent to form base2 exponent (normal numbers) */ +typedef union _GDoubleIEEE754 GDoubleIEEE754; +typedef union _GFloatIEEE754 GFloatIEEE754; +#define G_IEEE754_FLOAT_BIAS (127) +#define G_IEEE754_DOUBLE_BIAS (1023) +/* multiply with base2 exponent to get base10 exponent (nomal numbers) */ +#define G_LOG_2_BASE_10 (0.30102999566398119521) +#if G_BYTE_ORDER == G_LITTLE_ENDIAN +union _GFloatIEEE754 +{ + gfloat v_float; + struct { + guint mantissa : 23; + guint biased_exponent : 8; + guint sign : 1; + } mpn; +}; +union _GDoubleIEEE754 +{ + gdouble v_double; + struct { + guint mantissa_low : 32; + guint mantissa_high : 20; + guint biased_exponent : 11; + guint sign : 1; + } mpn; +}; +#elif G_BYTE_ORDER == G_BIG_ENDIAN +union _GFloatIEEE754 +{ + gfloat v_float; + struct { + guint sign : 1; + guint biased_exponent : 8; + guint mantissa : 23; + } mpn; +}; +union _GDoubleIEEE754 +{ + gdouble v_double; + struct { + guint sign : 1; + guint biased_exponent : 11; + guint mantissa_high : 20; + guint mantissa_low : 32; + } mpn; +}; +#else /* !G_LITTLE_ENDIAN && !G_BIG_ENDIAN */ +#error unknown ENDIAN type +#endif /* !G_LITTLE_ENDIAN && !G_BIG_ENDIAN */ + +typedef struct _GTimeVal GTimeVal; + +struct _GTimeVal +{ + glong tv_sec; + glong tv_usec; +}; + +G_END_DECLS + +/* We prefix variable declarations so they can + * properly get exported in windows dlls. + */ +#ifndef GLIB_VAR +# ifdef G_PLATFORM_WIN32 +# ifdef GLIB_STATIC_COMPILATION +# define GLIB_VAR extern +# else /* !GLIB_STATIC_COMPILATION */ +# ifdef GLIB_COMPILATION +# ifdef DLL_EXPORT +# define GLIB_VAR __declspec(dllexport) +# else /* !DLL_EXPORT */ +# define GLIB_VAR extern +# endif /* !DLL_EXPORT */ +# else /* !GLIB_COMPILATION */ +# define GLIB_VAR extern __declspec(dllimport) +# endif /* !GLIB_COMPILATION */ +# endif /* !GLIB_STATIC_COMPILATION */ +# else /* !G_PLATFORM_WIN32 */ +# define GLIB_VAR extern +# endif /* !G_PLATFORM_WIN32 */ +#endif /* GLIB_VAR */ + +#endif /* __G_TYPES_H__ */ + diff --git a/graf2d/win32gdk/gdk/src/glib/gunibreak.c b/graf2d/win32gdk/gdk/src/glib/gunibreak.c new file mode 100644 index 00000000000..5bcb946c98e --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gunibreak.c @@ -0,0 +1,55 @@ +/* gunibreak.c - line break properties + * + * Copyright 2000 Red Hat, Inc. + * + * The Gnome Library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * The Gnome Library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the Gnome Library; see the file COPYING.LIB. If not, + * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#include "glib.h" +#include "gunibreak.h" + +#include <config.h> + +#include <stdlib.h> + + +/* We cheat a bit and cast type values to (char *). We detect these + using the &0xff trick. */ +#define TPROP(Page, Char) \ + (((GPOINTER_TO_INT(break_property_table[Page]) & 0xff) == GPOINTER_TO_INT(break_property_table[Page])) \ + ? GPOINTER_TO_INT(break_property_table[Page]) \ + : (break_property_table[Page][Char])) + +#define PROP(Char) (((Char) > (G_UNICODE_LAST_CHAR)) ? G_UNICODE_UNASSIGNED : TPROP ((Char) >> 8, (Char) & 0xff)) + +/** + * g_unichar_break_type: + * @c: a Unicode character + * + * Determines the break type of @c. @c should be a Unicode character + * (to derive a character from UTF-8 encoded text, use + * g_utf8_get_char()). The break type is used to find word and line + * breaks ("text boundaries"), Pango implements the Unicode boundary + * resolution algorithms and normally you would use a function such + * as pango_break() instead of caring about break types yourself. + * + * Return value: the break type of @c + **/ +GUnicodeBreakType +g_unichar_break_type (gunichar c) +{ + return PROP (c); +} diff --git a/graf2d/win32gdk/gdk/src/glib/gunibreak.h b/graf2d/win32gdk/gdk/src/glib/gunibreak.h index 34912b3ad51..c8294a07857 100644 --- a/graf2d/win32gdk/gdk/src/glib/gunibreak.h +++ b/graf2d/win32gdk/gdk/src/glib/gunibreak.h @@ -4,7 +4,7 @@ #ifndef BREAKTABLES_H #define BREAKTABLES_H -#define G_UNICODE_DATA_VERSION "3.0.1" +#define G_UNICODE_DATA_VERSION "3.1" #define G_UNICODE_LAST_CHAR 0xffff @@ -96,7 +96,7 @@ static char page0[256] = { G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AFTER, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_BEFORE, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, @@ -508,11 +508,11 @@ static char page3[256] = { G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }; static char page4[256] = { @@ -3064,7 +3064,7 @@ static char page32[256] = { G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_BEFORE_AND_AFTER, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, @@ -3751,7 +3751,7 @@ static char page37[256] = { G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, @@ -4746,229 +4746,209 @@ static char page51[256] = { G_UNICODE_BREAK_UNKNOWN }; -static char page52[256] = { - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC +static char page77[256] = { + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }; -static char page77[256] = { - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_IDEOGRAPHIC, +static char page159[256] = { + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, @@ -4993,254 +4973,12 @@ static char page77[256] = { G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN -}; - -static char page78[256] = { - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC -}; - -static char page159[256] = { - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }; static char page164[256] = { @@ -5365,97 +5103,234 @@ static char page164[256] = { G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }; -static char page172[256] = { - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, +static char page215[256] = { + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN +}; + +static char page250[256] = { + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN +}; + +static char page251[256] = { + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, @@ -5466,7 +5341,14 @@ static char page172[256] = { G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, @@ -5493,10 +5375,6 @@ static char page172[256] = { G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC -}; - -static char page215[256] = { G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, @@ -5525,6 +5403,17 @@ static char page215[256] = { G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, @@ -5547,6 +5436,10 @@ static char page215[256] = { G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC +}; + +static char page253[256] = { G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, @@ -5578,105 +5471,13 @@ static char page215[256] = { G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN -}; - -static char page216[256] = { - G_UNICODE_BREAK_SURROGATE, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, @@ -5708,6 +5509,8 @@ static char page216[256] = { G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, @@ -5734,24 +5537,82 @@ static char page216[256] = { G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN }; -static char page219[256] = { - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, +static char page254[256] = { + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_EXCLAMATION, + G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_POSTFIX, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, @@ -5807,8 +5668,6 @@ static char page219[256] = { G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_SURROGATE, - G_UNICODE_BREAK_SURROGATE, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, @@ -5821,6 +5680,68 @@ static char page219[256] = { G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NON_BREAKING_GLUE +}; + +static char page255[256] = { + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_EXCLAMATION, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_POSTFIX, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_EXCLAMATION, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, @@ -5843,6 +5764,7 @@ static char page219[256] = { G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, @@ -5858,1138 +5780,37 @@ static char page219[256] = { G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_POSTFIX, + G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_SURROGATE -}; - -static char page220[256] = { - G_UNICODE_BREAK_SURROGATE, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC -}; - -static char page223[256] = { - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_SURROGATE -}; - -static char page224[256] = { - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC -}; - -static char page248[256] = { - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS -}; - -static char page250[256] = { - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN -}; - -static char page251[256] = { - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC -}; - -static char page253[256] = { - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN -}; - -static char page254[256] = { - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_EXCLAMATION, - G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_POSTFIX, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NON_BREAKING_GLUE -}; - -static char page255[256] = { - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_EXCLAMATION, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_POSTFIX, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_EXCLAMATION, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, - G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_POSTFIX, - G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, - G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, - G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, - G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_CONTINGENT, - G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_UNKNOWN, - G_UNICODE_BREAK_UNKNOWN + G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_CONTINGENT, + G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_UNKNOWN }; static char *break_property_table[256] = { @@ -7023,141 +5844,218 @@ static char *break_property_table[256] = { (char *) G_UNICODE_BREAK_UNKNOWN, (char *) G_UNICODE_BREAK_UNKNOWN, (char *) G_UNICODE_BREAK_UNKNOWN, - page30, - page31, - page32, - page33, - page34, - page35, - page36, - page37, - page38, - page39, - (char *) G_UNICODE_BREAK_ALPHABETIC, + page30, + page31, + page32, + page33, + page34, + page35, + page36, + page37, + page38, + page39, + (char *) G_UNICODE_BREAK_ALPHABETIC, + (char *) G_UNICODE_BREAK_UNKNOWN, + (char *) G_UNICODE_BREAK_UNKNOWN, + (char *) G_UNICODE_BREAK_UNKNOWN, + (char *) G_UNICODE_BREAK_UNKNOWN, + (char *) G_UNICODE_BREAK_UNKNOWN, + page46, + page47, + page48, + page49, + page50, + page51, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + page77, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + page159, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + page164, + (char *) G_UNICODE_BREAK_UNKNOWN, + (char *) G_UNICODE_BREAK_UNKNOWN, (char *) G_UNICODE_BREAK_UNKNOWN, (char *) G_UNICODE_BREAK_UNKNOWN, (char *) G_UNICODE_BREAK_UNKNOWN, (char *) G_UNICODE_BREAK_UNKNOWN, (char *) G_UNICODE_BREAK_UNKNOWN, - page46, - page47, - page48, - page49, - page50, - page51, - page52, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - page77, - page78, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - page159, (char *) G_UNICODE_BREAK_IDEOGRAPHIC, (char *) G_UNICODE_BREAK_IDEOGRAPHIC, (char *) G_UNICODE_BREAK_IDEOGRAPHIC, (char *) G_UNICODE_BREAK_IDEOGRAPHIC, - page164, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + (char *) G_UNICODE_BREAK_IDEOGRAPHIC, + page215, + (char *) G_UNICODE_BREAK_SURROGATE, + (char *) G_UNICODE_BREAK_SURROGATE, + (char *) G_UNICODE_BREAK_SURROGATE, + (char *) G_UNICODE_BREAK_SURROGATE, + (char *) G_UNICODE_BREAK_SURROGATE, + (char *) G_UNICODE_BREAK_SURROGATE, + (char *) G_UNICODE_BREAK_SURROGATE, + (char *) G_UNICODE_BREAK_SURROGATE, + (char *) G_UNICODE_BREAK_UNKNOWN, + (char *) G_UNICODE_BREAK_UNKNOWN, + (char *) G_UNICODE_BREAK_UNKNOWN, + (char *) G_UNICODE_BREAK_UNKNOWN, + (char *) G_UNICODE_BREAK_UNKNOWN, + (char *) G_UNICODE_BREAK_UNKNOWN, + (char *) G_UNICODE_BREAK_UNKNOWN, + (char *) G_UNICODE_BREAK_UNKNOWN, + (char *) G_UNICODE_BREAK_UNKNOWN, + (char *) G_UNICODE_BREAK_UNKNOWN, + (char *) G_UNICODE_BREAK_UNKNOWN, + (char *) G_UNICODE_BREAK_UNKNOWN, + (char *) G_UNICODE_BREAK_UNKNOWN, + (char *) G_UNICODE_BREAK_UNKNOWN, + (char *) G_UNICODE_BREAK_UNKNOWN, + (char *) G_UNICODE_BREAK_UNKNOWN, + (char *) G_UNICODE_BREAK_UNKNOWN, + (char *) G_UNICODE_BREAK_UNKNOWN, (char *) G_UNICODE_BREAK_UNKNOWN, (char *) G_UNICODE_BREAK_UNKNOWN, (char *) G_UNICODE_BREAK_UNKNOWN, @@ -7165,83 +6063,6 @@ static char *break_property_table[256] = { (char *) G_UNICODE_BREAK_UNKNOWN, (char *) G_UNICODE_BREAK_UNKNOWN, (char *) G_UNICODE_BREAK_UNKNOWN, - page172, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - page215, - page216, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - page219, - page220, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - page223, - page224, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - (char *) G_UNICODE_BREAK_ALPHABETIC, - page248, (char *) G_UNICODE_BREAK_IDEOGRAPHIC, page250, page251, diff --git a/graf2d/win32gdk/gdk/src/glib/gunichartables.h b/graf2d/win32gdk/gdk/src/glib/gunichartables.h index bcbbb18c8d7..d71700e705d 100644 --- a/graf2d/win32gdk/gdk/src/glib/gunichartables.h +++ b/graf2d/win32gdk/gdk/src/glib/gunichartables.h @@ -4,7 +4,7 @@ #ifndef CHARTABLES_H #define CHARTABLES_H -#define G_UNICODE_DATA_VERSION "3.0.1" +#define G_UNICODE_DATA_VERSION "3.1" #define G_UNICODE_LAST_CHAR 0xffff @@ -487,11 +487,11 @@ static char page3[256] = { G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, + G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UPPERCASE_LETTER, G_UNICODE_LOWERCASE_LETTER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, - G_UNICODE_UNASSIGNED + G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED }; static char page4[256] = { @@ -2142,7 +2142,7 @@ static char page22[256] = { G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_LETTER, G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, G_UNICODE_OTHER_PUNCTUATION, - G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, G_UNICODE_OTHER_NUMBER, + G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, G_UNICODE_LETTER_NUMBER, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, G_UNICODE_UNASSIGNED, @@ -4982,7 +4982,7 @@ static unsigned short attrpage0[256] = { 0x0000, 0x0000, 0x0000, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x0000, - 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x0000, 0x00c0, + 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0xd800, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x0000, 0x00d8, 0x00d9, 0x00da, 0x00db, @@ -4998,7 +4998,7 @@ static unsigned short attrpage1[256] = { 0x012c, 0x012f, 0x012e, 0x0069, 0x0049, 0x0133, 0x0132, 0x0135, 0x0134, 0x0137, 0x0136, 0x0000, 0x013a, 0x0139, 0x013c, 0x013b, 0x013e, 0x013d, 0x0140, 0x013f, 0x0142, 0x0141, 0x0144, 0x0143, 0x0146, 0x0145, 0x0148, - 0x0147, 0x0000, 0x014b, 0x014a, 0x014d, 0x014c, 0x014f, 0x014e, 0x0151, + 0x0147, 0xd80e, 0x014b, 0x014a, 0x014d, 0x014c, 0x014f, 0x014e, 0x0151, 0x0150, 0x0153, 0x0152, 0x0155, 0x0154, 0x0157, 0x0156, 0x0159, 0x0158, 0x015b, 0x015a, 0x015d, 0x015c, 0x015f, 0x015e, 0x0161, 0x0160, 0x0163, 0x0162, 0x0165, 0x0164, 0x0167, 0x0166, 0x0169, 0x0168, 0x016b, 0x016a, @@ -5016,7 +5016,7 @@ static unsigned short attrpage1[256] = { 0x01d0, 0x01cf, 0x01d2, 0x01d1, 0x01d4, 0x01d3, 0x01d6, 0x01d5, 0x01d8, 0x01d7, 0x01da, 0x01d9, 0x01dc, 0x01db, 0x018e, 0x01df, 0x01de, 0x01e1, 0x01e0, 0x01e3, 0x01e2, 0x01e5, 0x01e4, 0x01e7, 0x01e6, 0x01e9, 0x01e8, - 0x01eb, 0x01ea, 0x01ed, 0x01ec, 0x01ef, 0x01ee, 0x0000, 0x01f3, 0x0000, + 0x01eb, 0x01ea, 0x01ed, 0x01ec, 0x01ef, 0x01ee, 0xd811, 0x01f3, 0x0000, 0x01f1, 0x01f5, 0x01f4, 0x0195, 0x01bf, 0x01f9, 0x01f8, 0x01fb, 0x01fa, 0x01fd, 0x01fc, 0x01ff, 0x01fe }; @@ -5070,10 +5070,10 @@ static unsigned short attrpage3[256] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03ac, 0x0000, 0x03ad, 0x03ae, 0x03af, 0x0000, 0x03cc, 0x0000, 0x03cd, 0x03ce, - 0x0000, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, + 0xd80f, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x0000, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x03ca, - 0x03cb, 0x0386, 0x0388, 0x0389, 0x038a, 0x0000, 0x0391, 0x0392, 0x0393, + 0x03cb, 0x0386, 0x0388, 0x0389, 0x038a, 0xd810, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x038c, 0x038e, 0x038f, @@ -5081,7 +5081,7 @@ static unsigned short attrpage3[256] = { 0x0000, 0x0000, 0x03db, 0x03da, 0x03dd, 0x03dc, 0x03df, 0x03de, 0x03e1, 0x03e0, 0x03e3, 0x03e2, 0x03e5, 0x03e4, 0x03e7, 0x03e6, 0x03e9, 0x03e8, 0x03eb, 0x03ea, 0x03ed, 0x03ec, 0x03ef, 0x03ee, 0x039a, 0x03a1, 0x03a3, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x03b8, 0x0395, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }; @@ -5133,7 +5133,7 @@ static unsigned short attrpage5[256] = { 0x053c, 0x053d, 0x053e, 0x053f, 0x0540, 0x0541, 0x0542, 0x0543, 0x0544, 0x0545, 0x0546, 0x0547, 0x0548, 0x0549, 0x054a, 0x054b, 0x054c, 0x054d, 0x054e, 0x054f, 0x0550, 0x0551, 0x0552, 0x0553, 0x0554, 0x0555, 0x0556, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xd808, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, @@ -5550,8 +5550,8 @@ static unsigned short attrpage30[256] = { 0x1e74, 0x1e77, 0x1e76, 0x1e79, 0x1e78, 0x1e7b, 0x1e7a, 0x1e7d, 0x1e7c, 0x1e7f, 0x1e7e, 0x1e81, 0x1e80, 0x1e83, 0x1e82, 0x1e85, 0x1e84, 0x1e87, 0x1e86, 0x1e89, 0x1e88, 0x1e8b, 0x1e8a, 0x1e8d, 0x1e8c, 0x1e8f, 0x1e8e, - 0x1e91, 0x1e90, 0x1e93, 0x1e92, 0x1e95, 0x1e94, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x1e60, 0x0000, 0x0000, 0x0000, 0x0000, 0x1ea1, 0x1ea0, + 0x1e91, 0x1e90, 0x1e93, 0x1e92, 0x1e95, 0x1e94, 0xd812, 0xd813, 0xd814, + 0xd815, 0xd816, 0x1e60, 0x0000, 0x0000, 0x0000, 0x0000, 0x1ea1, 0x1ea0, 0x1ea3, 0x1ea2, 0x1ea5, 0x1ea4, 0x1ea7, 0x1ea6, 0x1ea9, 0x1ea8, 0x1eab, 0x1eaa, 0x1ead, 0x1eac, 0x1eaf, 0x1eae, 0x1eb1, 0x1eb0, 0x1eb3, 0x1eb2, 0x1eb5, 0x1eb4, 0x1eb7, 0x1eb6, 0x1eb9, 0x1eb8, 0x1ebb, 0x1eba, 0x1ebd, @@ -5574,27 +5574,27 @@ static unsigned short attrpage31[256] = { 0x1f25, 0x1f26, 0x1f27, 0x1f38, 0x1f39, 0x1f3a, 0x1f3b, 0x1f3c, 0x1f3d, 0x1f3e, 0x1f3f, 0x1f30, 0x1f31, 0x1f32, 0x1f33, 0x1f34, 0x1f35, 0x1f36, 0x1f37, 0x1f48, 0x1f49, 0x1f4a, 0x1f4b, 0x1f4c, 0x1f4d, 0x0000, 0x0000, - 0x1f40, 0x1f41, 0x1f42, 0x1f43, 0x1f44, 0x1f45, 0x0000, 0x0000, 0x0000, - 0x1f59, 0x0000, 0x1f5b, 0x0000, 0x1f5d, 0x0000, 0x1f5f, 0x0000, 0x1f51, + 0x1f40, 0x1f41, 0x1f42, 0x1f43, 0x1f44, 0x1f45, 0x0000, 0x0000, 0xd817, + 0x1f59, 0xd818, 0x1f5b, 0xd819, 0x1f5d, 0xd81a, 0x1f5f, 0x0000, 0x1f51, 0x0000, 0x1f53, 0x0000, 0x1f55, 0x0000, 0x1f57, 0x1f68, 0x1f69, 0x1f6a, 0x1f6b, 0x1f6c, 0x1f6d, 0x1f6e, 0x1f6f, 0x1f60, 0x1f61, 0x1f62, 0x1f63, 0x1f64, 0x1f65, 0x1f66, 0x1f67, 0x1fba, 0x1fbb, 0x1fc8, 0x1fc9, 0x1fca, 0x1fcb, 0x1fda, 0x1fdb, 0x1ff8, 0x1ff9, 0x1fea, 0x1feb, 0x1ffa, 0x1ffb, - 0x0000, 0x0000, 0x1f88, 0x1f89, 0x1f8a, 0x1f8b, 0x1f8c, 0x1f8d, 0x1f8e, - 0x1f8f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1f98, 0x1f99, 0x1f9a, 0x1f9b, 0x1f9c, 0x1f9d, 0x1f9e, 0x1f9f, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1fa8, 0x1fa9, - 0x1faa, 0x1fab, 0x1fac, 0x1fad, 0x1fae, 0x1faf, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1fb8, 0x1fb9, 0x0000, 0x1fbc, - 0x0000, 0x0000, 0x0000, 0x0000, 0x1fb0, 0x1fb1, 0x1f70, 0x1f71, 0x0000, - 0x0000, 0x0399, 0x0000, 0x0000, 0x0000, 0x0000, 0x1fcc, 0x0000, 0x0000, - 0x0000, 0x0000, 0x1f72, 0x1f73, 0x1f74, 0x1f75, 0x0000, 0x0000, 0x0000, - 0x0000, 0x1fd8, 0x1fd9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xd827, 0xd828, 0xd829, 0xd82a, 0xd82b, 0xd82c, 0xd82d, + 0xd82e, 0xd82f, 0xd830, 0xd831, 0xd832, 0xd833, 0xd834, 0xd835, 0xd836, + 0xd837, 0xd838, 0xd839, 0xd83a, 0xd83b, 0xd83c, 0xd83d, 0xd83e, 0xd83f, + 0xd840, 0xd841, 0xd842, 0xd843, 0xd844, 0xd845, 0xd846, 0xd847, 0xd848, + 0xd849, 0xd84a, 0xd84b, 0xd84c, 0xd84d, 0xd84e, 0xd84f, 0xd850, 0xd851, + 0xd852, 0xd853, 0xd854, 0xd855, 0xd856, 0x1fb8, 0x1fb9, 0xd85d, 0xd857, + 0xd85e, 0x0000, 0xd81b, 0xd863, 0x1fb0, 0x1fb1, 0x1f70, 0x1f71, 0xd858, + 0x0000, 0x0399, 0x0000, 0x0000, 0x0000, 0xd85f, 0xd859, 0xd860, 0x0000, + 0xd81c, 0xd864, 0x1f72, 0x1f73, 0x1f74, 0x1f75, 0xd85a, 0x0000, 0x0000, + 0x0000, 0x1fd8, 0x1fd9, 0xd81d, 0xd81e, 0x0000, 0x0000, 0xd81f, 0xd820, 0x1fd0, 0x1fd1, 0x1f76, 0x1f77, 0x0000, 0x0000, 0x0000, 0x0000, 0x1fe8, - 0x1fe9, 0x0000, 0x0000, 0x0000, 0x1fec, 0x0000, 0x0000, 0x1fe0, 0x1fe1, - 0x1f7a, 0x1f7b, 0x1fe5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1ffc, 0x0000, 0x0000, 0x0000, 0x0000, 0x1f78, 0x1f79, 0x1f7c, 0x1f7d, - 0x0000, 0x0000, 0x0000, 0x0000 + 0x1fe9, 0xd821, 0xd822, 0xd823, 0x1fec, 0xd824, 0xd825, 0x1fe0, 0x1fe1, + 0x1f7a, 0x1f7b, 0x1fe5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xd861, + 0xd85b, 0xd862, 0x0000, 0xd826, 0xd865, 0x1f78, 0x1f79, 0x1f7c, 0x1f7d, + 0xd85c, 0x0000, 0x0000, 0x0000 }; static unsigned short attrpage33[256] = { @@ -5629,6 +5629,38 @@ static unsigned short attrpage33[256] = { 0x0000, 0x0000, 0x0000, 0x0000 }; +static unsigned short attrpage251[256] = { + 0xd801, 0xd802, 0xd803, 0xd804, 0xd805, 0xd806, 0xd807, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xd809, 0xd80a, 0xd80b, 0xd80c, 0xd80d, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000 +}; + static unsigned short attrpage255[256] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, @@ -5913,7 +5945,7 @@ static unsigned short *attr_table[256] = { 0x0000, 0x0000, 0x0000, - 0x0000, + attrpage251, 0x0000, 0x0000, 0x0000, @@ -5954,4 +5986,284 @@ static unsigned short title_table[][3] = { { 0x1ffc, 0x0000, 0x1ff3 } }; + +/* Table of special cases for case conversion; each record contains + * First, the best single character mapping to lowercase if Lu, + * and to uppercase if Ll, followed by the output mapping for the two cases + * other than the case of the codepoint, in the order [Ll],[Lu],[Lt], + * separated and terminated by a double NUL. + */ +static guchar special_case_table[][18] = { + "\x00\x00\x00\x53\x00\x53\x00\x00\x00\x53\x00\x73\0", + "\x00\x00\x00\x46\x00\x46\x00\x00\x00\x46\x00\x66\0", + "\x00\x00\x00\x46\x00\x49\x00\x00\x00\x46\x00\x69\0", + "\x00\x00\x00\x46\x00\x4c\x00\x00\x00\x46\x00\x6c\0", + "\x00\x00\x00\x46\x00\x46\x00\x49\x00\x00\x00\x46\x00\x66\x00\x69\0", + "\x00\x00\x00\x46\x00\x46\x00\x4c\x00\x00\x00\x46\x00\x66\x00\x6c\0", + "\x00\x00\x00\x53\x00\x54\x00\x00\x00\x53\x00\x74\0", + "\x00\x00\x00\x53\x00\x54\x00\x00\x00\x53\x00\x74\0", + "\x00\x00\x05\x35\x05\x52\x00\x00\x05\x35\x05\x82\0", + "\x00\x00\x05\x44\x05\x46\x00\x00\x05\x44\x05\x76\0", + "\x00\x00\x05\x44\x05\x35\x00\x00\x05\x44\x05\x65\0", + "\x00\x00\x05\x44\x05\x3b\x00\x00\x05\x44\x05\x6b\0", + "\x00\x00\x05\x4e\x05\x46\x00\x00\x05\x4e\x05\x76\0", + "\x00\x00\x05\x44\x05\x3d\x00\x00\x05\x44\x05\x6d\0", + "\x00\x00\x02\xbc\x00\x4e\x00\x00\x02\xbc\x00\x4e\0", + "\x00\x00\x03\x99\x03\x08\x03\x01\x00\x00\x03\x99\x03\x08\x03\x01\0", + "\x00\x00\x03\xa5\x03\x08\x03\x01\x00\x00\x03\xa5\x03\x08\x03\x01\0", + "\x00\x00\x00\x4a\x03\x0c\x00\x00\x00\x4a\x03\x0c\0", + "\x00\x00\x00\x48\x03\x31\x00\x00\x00\x48\x03\x31\0", + "\x00\x00\x00\x54\x03\x08\x00\x00\x00\x54\x03\x08\0", + "\x00\x00\x00\x57\x03\x0a\x00\x00\x00\x57\x03\x0a\0", + "\x00\x00\x00\x59\x03\x0a\x00\x00\x00\x59\x03\x0a\0", + "\x00\x00\x00\x41\x02\xbe\x00\x00\x00\x41\x02\xbe\0", + "\x00\x00\x03\xa5\x03\x13\x00\x00\x03\xa5\x03\x13\0", + "\x00\x00\x03\xa5\x03\x13\x03\x00\x00\x00\x03\xa5\x03\x13\x03\x00\0", + "\x00\x00\x03\xa5\x03\x13\x03\x01\x00\x00\x03\xa5\x03\x13\x03\x01\0", + "\x00\x00\x03\xa5\x03\x13\x03\x42\x00\x00\x03\xa5\x03\x13\x03\x42\0", + "\x00\x00\x03\x91\x03\x42\x00\x00\x03\x91\x03\x42\0", + "\x00\x00\x03\x97\x03\x42\x00\x00\x03\x97\x03\x42\0", + "\x00\x00\x03\x99\x03\x08\x03\x00\x00\x00\x03\x99\x03\x08\x03\x00\0", + "\x00\x00\x03\x99\x03\x08\x03\x01\x00\x00\x03\x99\x03\x08\x03\x01\0", + "\x00\x00\x03\x99\x03\x42\x00\x00\x03\x99\x03\x42\0", + "\x00\x00\x03\x99\x03\x08\x03\x42\x00\x00\x03\x99\x03\x08\x03\x42\0", + "\x00\x00\x03\xa5\x03\x08\x03\x00\x00\x00\x03\xa5\x03\x08\x03\x00\0", + "\x00\x00\x03\xa5\x03\x08\x03\x01\x00\x00\x03\xa5\x03\x08\x03\x01\0", + "\x00\x00\x03\xa1\x03\x13\x00\x00\x03\xa1\x03\x13\0", + "\x00\x00\x03\xa5\x03\x42\x00\x00\x03\xa5\x03\x42\0", + "\x00\x00\x03\xa5\x03\x08\x03\x42\x00\x00\x03\xa5\x03\x08\x03\x42\0", + "\x00\x00\x03\xa9\x03\x42\x00\x00\x03\xa9\x03\x42\0", + "\x1f\x88\x1f\x08\x03\x99\x00\x00\x1f\x88\0", + "\x1f\x89\x1f\x09\x03\x99\x00\x00\x1f\x89\0", + "\x1f\x8a\x1f\x0a\x03\x99\x00\x00\x1f\x8a\0", + "\x1f\x8b\x1f\x0b\x03\x99\x00\x00\x1f\x8b\0", + "\x1f\x8c\x1f\x0c\x03\x99\x00\x00\x1f\x8c\0", + "\x1f\x8d\x1f\x0d\x03\x99\x00\x00\x1f\x8d\0", + "\x1f\x8e\x1f\x0e\x03\x99\x00\x00\x1f\x8e\0", + "\x1f\x8f\x1f\x0f\x03\x99\x00\x00\x1f\x8f\0", + "\x1f\x80\x00\x00\x1f\x08\x03\x99\0", + "\x1f\x81\x00\x00\x1f\x09\x03\x99\0", + "\x1f\x82\x00\x00\x1f\x0a\x03\x99\0", + "\x1f\x83\x00\x00\x1f\x0b\x03\x99\0", + "\x1f\x84\x00\x00\x1f\x0c\x03\x99\0", + "\x1f\x85\x00\x00\x1f\x0d\x03\x99\0", + "\x1f\x86\x00\x00\x1f\x0e\x03\x99\0", + "\x1f\x87\x00\x00\x1f\x0f\x03\x99\0", + "\x1f\x98\x1f\x28\x03\x99\x00\x00\x1f\x98\0", + "\x1f\x99\x1f\x29\x03\x99\x00\x00\x1f\x99\0", + "\x1f\x9a\x1f\x2a\x03\x99\x00\x00\x1f\x9a\0", + "\x1f\x9b\x1f\x2b\x03\x99\x00\x00\x1f\x9b\0", + "\x1f\x9c\x1f\x2c\x03\x99\x00\x00\x1f\x9c\0", + "\x1f\x9d\x1f\x2d\x03\x99\x00\x00\x1f\x9d\0", + "\x1f\x9e\x1f\x2e\x03\x99\x00\x00\x1f\x9e\0", + "\x1f\x9f\x1f\x2f\x03\x99\x00\x00\x1f\x9f\0", + "\x1f\x90\x00\x00\x1f\x28\x03\x99\0", + "\x1f\x91\x00\x00\x1f\x29\x03\x99\0", + "\x1f\x92\x00\x00\x1f\x2a\x03\x99\0", + "\x1f\x93\x00\x00\x1f\x2b\x03\x99\0", + "\x1f\x94\x00\x00\x1f\x2c\x03\x99\0", + "\x1f\x95\x00\x00\x1f\x2d\x03\x99\0", + "\x1f\x96\x00\x00\x1f\x2e\x03\x99\0", + "\x1f\x97\x00\x00\x1f\x2f\x03\x99\0", + "\x1f\xa8\x1f\x68\x03\x99\x00\x00\x1f\xa8\0", + "\x1f\xa9\x1f\x69\x03\x99\x00\x00\x1f\xa9\0", + "\x1f\xaa\x1f\x6a\x03\x99\x00\x00\x1f\xaa\0", + "\x1f\xab\x1f\x6b\x03\x99\x00\x00\x1f\xab\0", + "\x1f\xac\x1f\x6c\x03\x99\x00\x00\x1f\xac\0", + "\x1f\xad\x1f\x6d\x03\x99\x00\x00\x1f\xad\0", + "\x1f\xae\x1f\x6e\x03\x99\x00\x00\x1f\xae\0", + "\x1f\xaf\x1f\x6f\x03\x99\x00\x00\x1f\xaf\0", + "\x1f\xa0\x00\x00\x1f\x68\x03\x99\0", + "\x1f\xa1\x00\x00\x1f\x69\x03\x99\0", + "\x1f\xa2\x00\x00\x1f\x6a\x03\x99\0", + "\x1f\xa3\x00\x00\x1f\x6b\x03\x99\0", + "\x1f\xa4\x00\x00\x1f\x6c\x03\x99\0", + "\x1f\xa5\x00\x00\x1f\x6d\x03\x99\0", + "\x1f\xa6\x00\x00\x1f\x6e\x03\x99\0", + "\x1f\xa7\x00\x00\x1f\x6f\x03\x99\0", + "\x1f\xbc\x03\x91\x03\x99\x00\x00\x1f\xbc\0", + "\x1f\xb3\x00\x00\x03\x91\x03\x99\0", + "\x1f\xcc\x03\x97\x03\x99\x00\x00\x1f\xcc\0", + "\x1f\xc3\x00\x00\x03\x97\x03\x99\0", + "\x1f\xfc\x03\xa9\x03\x99\x00\x00\x1f\xfc\0", + "\x1f\xf3\x00\x00\x03\xa9\x03\x99\0", + "\x00\x00\x1f\xba\x03\x99\x00\x00\x1f\xba\x03\x45\0", + "\x00\x00\x03\x86\x03\x99\x00\x00\x03\x86\x03\x45\0", + "\x00\x00\x1f\xca\x03\x99\x00\x00\x1f\xca\x03\x45\0", + "\x00\x00\x03\x89\x03\x99\x00\x00\x03\x89\x03\x45\0", + "\x00\x00\x1f\xfa\x03\x99\x00\x00\x1f\xfa\x03\x45\0", + "\x00\x00\x03\x8f\x03\x99\x00\x00\x03\x8f\x03\x45\0", + "\x00\x00\x03\x91\x03\x42\x03\x99\x00\x00\x03\x91\x03\x42\x03\x45\0", + "\x00\x00\x03\x97\x03\x42\x03\x99\x00\x00\x03\x97\x03\x42\x03\x45\0", + "\x00\x00\x03\xa9\x03\x42\x03\x99\x00\x00\x03\xa9\x03\x42\x03\x45\0", +}; + + +/* Table of casefolding cases that can't be derived by lowercasing + */ +static struct { + guint16 ch; + gchar data[7]; +} casefold_table[] = { +{ 0xb5, "μ" }, +{ 0xdf, "ss" }, +{ 0x131, "i" }, +{ 0x149, "ʼn" }, +{ 0x17f, "s" }, +{ 0x1f0, "ǰ" }, +{ 0x345, "ι" }, +{ 0x390, "ΐ" }, +{ 0x3b0, "ΰ" }, +{ 0x3c2, "σ" }, +{ 0x3d0, "β" }, +{ 0x3d1, "θ" }, +{ 0x3d5, "φ" }, +{ 0x3d6, "π" }, +{ 0x3f0, "κ" }, +{ 0x3f1, "ρ" }, +{ 0x3f2, "σ" }, +{ 0x3f5, "ε" }, +{ 0x587, "եւ" }, +{ 0x1e96, "ẖ" }, +{ 0x1e97, "ẗ" }, +{ 0x1e98, "ẘ" }, +{ 0x1e99, "ẙ" }, +{ 0x1e9a, "aʾ" }, +{ 0x1e9b, "ṡ" }, +{ 0x1f50, "ὐ" }, +{ 0x1f52, "ὒ" }, +{ 0x1f54, "ὔ" }, +{ 0x1f56, "ὖ" }, +{ 0x1f80, "ἀι" }, +{ 0x1f81, "ἁι" }, +{ 0x1f82, "ἂι" }, +{ 0x1f83, "ἃι" }, +{ 0x1f84, "ἄι" }, +{ 0x1f85, "ἅι" }, +{ 0x1f86, "ἆι" }, +{ 0x1f87, "ἇι" }, +{ 0x1f88, "ἀι" }, +{ 0x1f89, "ἁι" }, +{ 0x1f8a, "ἂι" }, +{ 0x1f8b, "ἃι" }, +{ 0x1f8c, "ἄι" }, +{ 0x1f8d, "ἅι" }, +{ 0x1f8e, "ἆι" }, +{ 0x1f8f, "ἇι" }, +{ 0x1f90, "ἠι" }, +{ 0x1f91, "ἡι" }, +{ 0x1f92, "ἢι" }, +{ 0x1f93, "ἣι" }, +{ 0x1f94, "ἤι" }, +{ 0x1f95, "ἥι" }, +{ 0x1f96, "ἦι" }, +{ 0x1f97, "ἧι" }, +{ 0x1f98, "ἠι" }, +{ 0x1f99, "ἡι" }, +{ 0x1f9a, "ἢι" }, +{ 0x1f9b, "ἣι" }, +{ 0x1f9c, "ἤι" }, +{ 0x1f9d, "ἥι" }, +{ 0x1f9e, "ἦι" }, +{ 0x1f9f, "ἧι" }, +{ 0x1fa0, "ὠι" }, +{ 0x1fa1, "ὡι" }, +{ 0x1fa2, "ὢι" }, +{ 0x1fa3, "ὣι" }, +{ 0x1fa4, "ὤι" }, +{ 0x1fa5, "ὥι" }, +{ 0x1fa6, "ὦι" }, +{ 0x1fa7, "ὧι" }, +{ 0x1fa8, "ὠι" }, +{ 0x1fa9, "ὡι" }, +{ 0x1faa, "ὢι" }, +{ 0x1fab, "ὣι" }, +{ 0x1fac, "ὤι" }, +{ 0x1fad, "ὥι" }, +{ 0x1fae, "ὦι" }, +{ 0x1faf, "ὧι" }, +{ 0x1fb2, "ὰι" }, +{ 0x1fb3, "αι" }, +{ 0x1fb4, "άι" }, +{ 0x1fb6, "ᾶ" }, +{ 0x1fb7, "ᾶι" }, +{ 0x1fbc, "αι" }, +{ 0x1fbe, "ι" }, +{ 0x1fc2, "ὴι" }, +{ 0x1fc3, "ηι" }, +{ 0x1fc4, "ήι" }, +{ 0x1fc6, "ῆ" }, +{ 0x1fc7, "ῆι" }, +{ 0x1fcc, "ηι" }, +{ 0x1fd2, "ῒ" }, +{ 0x1fd3, "ΐ" }, +{ 0x1fd6, "ῖ" }, +{ 0x1fd7, "ῗ" }, +{ 0x1fe2, "ῢ" }, +{ 0x1fe3, "ΰ" }, +{ 0x1fe4, "ῤ" }, +{ 0x1fe6, "ῦ" }, +{ 0x1fe7, "ῧ" }, +{ 0x1ff2, "ὼι" }, +{ 0x1ff3, "ωι" }, +{ 0x1ff4, "ώι" }, +{ 0x1ff6, "ῶ" }, +{ 0x1ff7, "ῶι" }, +{ 0x1ffc, "ωι" }, +{ 0x2160, "ⅰ" }, +{ 0x2161, "ⅱ" }, +{ 0x2162, "ⅲ" }, +{ 0x2163, "ⅳ" }, +{ 0x2164, "ⅴ" }, +{ 0x2165, "ⅵ" }, +{ 0x2166, "ⅶ" }, +{ 0x2167, "ⅷ" }, +{ 0x2168, "ⅸ" }, +{ 0x2169, "ⅹ" }, +{ 0x216a, "ⅺ" }, +{ 0x216b, "ⅻ" }, +{ 0x216c, "ⅼ" }, +{ 0x216d, "ⅽ" }, +{ 0x216e, "ⅾ" }, +{ 0x216f, "ⅿ" }, +{ 0x24b6, "ⓐ" }, +{ 0x24b7, "ⓑ" }, +{ 0x24b8, "ⓒ" }, +{ 0x24b9, "ⓓ" }, +{ 0x24ba, "ⓔ" }, +{ 0x24bb, "ⓕ" }, +{ 0x24bc, "ⓖ" }, +{ 0x24bd, "ⓗ" }, +{ 0x24be, "ⓘ" }, +{ 0x24bf, "ⓙ" }, +{ 0x24c0, "ⓚ" }, +{ 0x24c1, "ⓛ" }, +{ 0x24c2, "ⓜ" }, +{ 0x24c3, "ⓝ" }, +{ 0x24c4, "ⓞ" }, +{ 0x24c5, "ⓟ" }, +{ 0x24c6, "ⓠ" }, +{ 0x24c7, "ⓡ" }, +{ 0x24c8, "ⓢ" }, +{ 0x24c9, "ⓣ" }, +{ 0x24ca, "ⓤ" }, +{ 0x24cb, "ⓥ" }, +{ 0x24cc, "ⓦ" }, +{ 0x24cd, "ⓧ" }, +{ 0x24ce, "ⓨ" }, +{ 0x24cf, "ⓩ" }, +{ 0xfb00, "ff" }, +{ 0xfb01, "fi" }, +{ 0xfb02, "fl" }, +{ 0xfb03, "ffi" }, +{ 0xfb04, "ffl" }, +{ 0xfb05, "st" }, +{ 0xfb06, "st" }, +{ 0xfb13, "մն" }, +{ 0xfb14, "մե" }, +{ 0xfb15, "մի" }, +{ 0xfb16, "վն" }, +{ 0xfb17, "մխ" }, +}; + #endif /* CHARTABLES_H */ diff --git a/graf2d/win32gdk/gdk/src/glib/gunicode.h b/graf2d/win32gdk/gdk/src/glib/gunicode.h index e730485bf71..f93f3b1d8af 100644 --- a/graf2d/win32gdk/gdk/src/glib/gunicode.h +++ b/graf2d/win32gdk/gdk/src/glib/gunicode.h @@ -22,8 +22,8 @@ #ifndef __G_UNICODE_H__ #define __G_UNICODE_H__ -#include <stddef.h> /* For size_t */ -#include <g_types.h> +#include <glib/gerror.h> +#include <glib/gtypes.h> G_BEGIN_DECLS @@ -109,7 +109,7 @@ typedef enum * in case the locale's charset will be changed later using setlocale() * or in some other way. */ -gboolean g_get_charset (char **charset); +gboolean g_get_charset (G_CONST_RETURN char **charset); /* These are all analogs of the <ctype.h> functions. */ @@ -151,89 +151,130 @@ GUnicodeBreakType g_unichar_break_type (gunichar c) G_GNUC_CONST; decomposed characters in the string according to their combining classes. See the Unicode manual for more information. */ void g_unicode_canonical_ordering (gunichar *string, - size_t len); + gsize len); /* Compute canonical decomposition of a character. Returns g_malloc()d string of Unicode characters. RESULT_LEN is set to the resulting length of the string. */ gunichar *g_unicode_canonical_decomposition (gunichar ch, - size_t *result_len); + gsize *result_len); /* Array of skip-bytes-per-initial character. - * We prefix variable declarations so they can - * properly get exported in windows dlls. */ -#ifndef GLIB_VAR -# ifdef G_OS_WIN32 -# ifdef GLIB_COMPILATION -# define GLIB_VAR __declspec(dllexport) -# else /* !GLIB_COMPILATION */ -# define GLIB_VAR extern __declspec(dllimport) -# endif /* !GLIB_COMPILATION */ -# else /* !G_OS_WIN32 */ -# define GLIB_VAR extern -# endif /* !G_OS_WIN32 */ -#endif /* !GLIB_VAR */ - -GLIB_VAR char g_utf8_skip[256]; +GLIB_VAR const gchar * const g_utf8_skip; #define g_utf8_next_char(p) (char *)((p) + g_utf8_skip[*(guchar *)(p)]) -gunichar g_utf8_get_char (const gchar *p); -gchar * g_utf8_offset_to_pointer (const gchar *str, - gint offset); -gint g_utf8_pointer_to_offset (const gchar *str, +gunichar g_utf8_get_char (const gchar *p); +gunichar g_utf8_get_char_validated (const gchar *p, + gssize max_len); + +gchar* g_utf8_offset_to_pointer (const gchar *str, + glong offset); +glong g_utf8_pointer_to_offset (const gchar *str, const gchar *pos); -gchar * g_utf8_prev_char (const gchar *p); -gchar * g_utf8_find_next_char (const gchar *p, +gchar* g_utf8_prev_char (const gchar *p); +gchar* g_utf8_find_next_char (const gchar *p, const gchar *end); -gchar * g_utf8_find_prev_char (const gchar *str, +gchar* g_utf8_find_prev_char (const gchar *str, const gchar *p); -gint g_utf8_strlen (const gchar *p, - gint max); +glong g_utf8_strlen (const gchar *p, + gssize max); /* Copies n characters from src to dest */ -gchar *g_utf8_strncpy (gchar *dest, +gchar* g_utf8_strncpy (gchar *dest, const gchar *src, - size_t n); + gsize n); /* Find the UTF-8 character corresponding to ch, in string p. These functions are equivalants to strchr and strrchr */ - -gchar *g_utf8_strchr (const gchar *p, +gchar* g_utf8_strchr (const gchar *p, + gssize len, gunichar c); -gchar *g_utf8_strrchr (const gchar *p, +gchar* g_utf8_strrchr (const gchar *p, + gssize len, gunichar c); -gunichar2 *g_utf8_to_utf16 (const gchar *str, - gint len); -gunichar * g_utf8_to_ucs4 (const gchar *str, - gint len); -gunichar * g_utf16_to_ucs4 (const gunichar2 *str, - gint len); -gchar * g_utf16_to_utf8 (const gunichar2 *str, - gint len); -gunichar * g_ucs4_to_utf16 (const gunichar *str, - gint len); -gchar * g_ucs4_to_utf8 (const gunichar *str, - gint len); +gunichar2 *g_utf8_to_utf16 (const gchar *str, + glong len, + glong *items_read, + glong *items_written, + GError **error); +gunichar * g_utf8_to_ucs4 (const gchar *str, + glong len, + glong *items_read, + glong *items_written, + GError **error); +gunichar * g_utf8_to_ucs4_fast (const gchar *str, + glong len, + glong *items_written); +gunichar * g_utf16_to_ucs4 (const gunichar2 *str, + glong len, + glong *items_read, + glong *items_written, + GError **error); +gchar* g_utf16_to_utf8 (const gunichar2 *str, + glong len, + glong *items_read, + glong *items_written, + GError **error); +gunichar2 *g_ucs4_to_utf16 (const gunichar *str, + glong len, + glong *items_read, + glong *items_written, + GError **error); +gchar* g_ucs4_to_utf8 (const gunichar *str, + glong len, + glong *items_read, + glong *items_written, + GError **error); /* Convert a single character into UTF-8. outbuf must have at * least 6 bytes of space. Returns the number of bytes in the * result. */ gint g_unichar_to_utf8 (gunichar c, - char *outbuf); + gchar *outbuf); /* Validate a UTF8 string, return TRUE if valid, put pointer to * first invalid char in **end */ gboolean g_utf8_validate (const gchar *str, - gint max_len, + gssize max_len, const gchar **end); +/* Validate a Unicode character */ +gboolean g_unichar_validate (gunichar ch); + +gchar *g_utf8_strup (const gchar *str, + gssize len); +gchar *g_utf8_strdown (const gchar *str, + gssize len); +gchar *g_utf8_casefold (const gchar *str, + gssize len); + +typedef enum { + G_NORMALIZE_DEFAULT, + G_NORMALIZE_NFD = G_NORMALIZE_DEFAULT, + G_NORMALIZE_DEFAULT_COMPOSE, + G_NORMALIZE_NFC = G_NORMALIZE_DEFAULT_COMPOSE, + G_NORMALIZE_ALL, + G_NORMALIZE_NFKD = G_NORMALIZE_ALL, + G_NORMALIZE_ALL_COMPOSE, + G_NORMALIZE_NFKC = G_NORMALIZE_ALL_COMPOSE +} GNormalizeMode; + +gchar *g_utf8_normalize (const gchar *str, + gssize len, + GNormalizeMode mode); + +gint g_utf8_collate (const gchar *str1, + const gchar *str2); +gchar *g_utf8_collate_key (const gchar *str, + gssize len); + G_END_DECLS #endif /* __G_UNICODE_H__ */ diff --git a/graf2d/win32gdk/gdk/src/glib/gunicollate.c b/graf2d/win32gdk/gdk/src/glib/gunicollate.c new file mode 100644 index 00000000000..41cbe812e86 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gunicollate.c @@ -0,0 +1,235 @@ +/* gunicollate.c - Collation + * + * Copyright 2001 Red Hat, Inc. + * + * The Gnome Library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * The Gnome Library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the Gnome Library; see the file COPYING.LIB. If not, + * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#include <locale.h> +#include <string.h> +#ifdef __STDC_ISO_10646__ +#include <wchar.h> +#endif + +#include "glib.h" + +extern gunichar *_g_utf8_normalize_wc (const gchar *str, + gssize max_len, + GNormalizeMode mode); + +/** + * g_utf8_collate: + * @str1: a UTF-8 encoded string + * @str2: a UTF-8 encoded string + * + * Compares two strings for ordering using the linguistically + * correct rules for the current locale. When sorting a large + * number of strings, it will be significantly faster to + * obtain collation keys with g_utf8_collate_key() and + * compare the keys with <function>strcmp()</function> when + * sorting instead of sorting the original strings. + * + * Return value: -1 if @str1 compares before @str2, 0 if they + * compare equal, 1 if @str1 compares after @str2. + **/ +gint +g_utf8_collate (const gchar *str1, + const gchar *str2) +{ + gint result; + +#ifdef __STDC_ISO_10646__ + + gunichar *str1_norm = _g_utf8_normalize_wc (str1, -1, G_NORMALIZE_ALL_COMPOSE); + gunichar *str2_norm = _g_utf8_normalize_wc (str2, -1, G_NORMALIZE_ALL_COMPOSE); + + result = wcscoll ((wchar_t *)str1_norm, (wchar_t *)str2_norm); + + g_free (str1_norm); + g_free (str2_norm); + +#else /* !__STDC_ISO_10646__ */ + + const gchar *charset; + gchar *str1_norm = g_utf8_normalize (str1, -1, G_NORMALIZE_ALL_COMPOSE); + gchar *str2_norm = g_utf8_normalize (str2, -1, G_NORMALIZE_ALL_COMPOSE); + + if (g_get_charset (&charset)) + { + result = strcoll (str1_norm, str2_norm); + } + else + { + gchar *str1_locale = g_convert (str1_norm, -1, "UTF-8", charset, NULL, NULL, NULL); + gchar *str2_locale = g_convert (str2_norm, -1, "UTF-8", charset, NULL, NULL, NULL); + + if (str1_locale && str2_locale) + result = strcoll (str1_locale, str2_locale); + else if (str1_locale) + result = -1; + else if (str2_locale) + result = 1; + else + result = strcmp (str1_norm, str2_norm); + + g_free (str1_locale); + g_free (str2_locale); + } + + g_free (str1_norm); + g_free (str2_norm); + +#endif /* __STDC_ISO_10646__ */ + + return result; +} + +#ifdef __STDC_ISO_10646__ +/* We need UTF-8 encoding of numbers to encode the weights if + * we are using wcsxfrm. However, we aren't encoding Unicode + * characters, so we can't simply use g_unichar_to_utf8. + * + * The following routine is taken (with modification) from GNU + * libc's strxfrm routine: + * + * Copyright (C) 1995-1999,2000,2001 Free Software Foundation, Inc. + * Written by Ulrich Drepper <drepper@cygnus.com>, 1995. + */ +static inline int +utf8_encode (char *buf, wchar_t val) +{ + int retval; + + if (val < 0x80) + { + if (buf) + *buf++ = (char) val; + retval = 1; + } + else + { + int step; + + for (step = 2; step < 6; ++step) + if ((val & (~(guint32)0 << (5 * step + 1))) == 0) + break; + retval = step; + + if (buf) + { + *buf = (unsigned char) (~0xff >> step); + --step; + do + { + buf[step] = 0x80 | (val & 0x3f); + val >>= 6; + } + while (--step > 0); + *buf |= val; + } + } + + return retval; +} +#endif /* __STDC_ISO_10646__ */ + +/** + * g_utf8_collate_key: + * @str: a UTF-8 encoded string. + * @len: length of @str, in bytes, or -1 if @str is nul-terminated. + * + * Converts a string into a collation key that can be compared + * with other collation keys using <function>strcmp()</function>. + * The results of comparing the collation keys of two strings + * with <function>strcmp()</function> will always be the same as + * comparing the two original keys with g_utf8_collate(). + * + * Return value: a newly allocated string. This string should + * be freed with g_free() when you are done with it. + **/ +gchar * +g_utf8_collate_key (const gchar *str, + gssize len) +{ + gchar *result; + size_t xfrm_len; + +#ifdef __STDC_ISO_10646__ + + gunichar *str_norm = _g_utf8_normalize_wc (str, len, G_NORMALIZE_ALL_COMPOSE); + wchar_t *result_wc; + size_t i; + size_t result_len = 0; + + setlocale (LC_COLLATE, ""); + + xfrm_len = wcsxfrm (NULL, (wchar_t *)str_norm, 0); + result_wc = g_new (wchar_t, xfrm_len + 1); + wcsxfrm (result_wc, (wchar_t *)str_norm, xfrm_len + 1); + + for (i=0; i < xfrm_len; i++) + result_len += utf8_encode (NULL, result_wc[i]); + + result = g_malloc (result_len + 1); + result_len = 0; + for (i=0; i < xfrm_len; i++) + result_len += utf8_encode (result + result_len, result_wc[i]); + + result[result_len] = '\0'; + + g_free (result_wc); + g_free (str_norm); + + return result; +#else /* !__STDC_ISO_10646__ */ + + const gchar *charset; + gchar *str_norm = g_utf8_normalize (str, len, G_NORMALIZE_ALL_COMPOSE); + + if (g_get_charset (&charset)) + { + xfrm_len = strxfrm (NULL, str_norm, 0); + result = g_malloc (xfrm_len + 1); + strxfrm (result, str_norm, xfrm_len + 1); + } + else + { + gchar *str_locale = g_convert (str_norm, -1, "UTF-8", charset, NULL, NULL, NULL); + + if (str_locale) + { + xfrm_len = strxfrm (NULL, str_locale, 0); + result = g_malloc (xfrm_len + 2); + result[0] = 'A'; + strxfrm (result + 1, str_locale, xfrm_len + 1); + + g_free (str_locale); + } + else + { + xfrm_len = strlen (str_norm); + result = g_malloc (xfrm_len + 2); + result[0] = 'B'; + memcpy (result + 1, str_norm, xfrm_len); + result[xfrm_len+1] = '\0'; + } + } + + g_free (str_norm); +#endif /* __STDC_ISO_10646__ */ + + return result; +} diff --git a/graf2d/win32gdk/gdk/src/glib/gunicomp.h b/graf2d/win32gdk/gdk/src/glib/gunicomp.h new file mode 100644 index 00000000000..f2414ca568e --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gunicomp.h @@ -0,0 +1,667 @@ +#define COMPOSE_FIRST_START 1 +#define COMPOSE_FIRST_SINGLE_START 147 +#define COMPOSE_SECOND_START 357 +#define COMPOSE_SECOND_SINGLE_START 388 + +static gushort compose_page0[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, 1, 2, 3, 4, 5, 150, 6, + 7, 8, 151, 9, 10, 11, 12, 13, 14, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, + 0, 0, 0, 0, 0, 24, 25, 26, 27, 28, 152, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 0, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 153, 154, 50, 155, 0, 0, 51, 0, 0, 0, + 0, 156, 0, 0, 0, 0, 52, 53, 157, 0, 158, 0, 0, 0, 54, 0, 0, 0, 0, 0, 55, 0, + 159, 160, 56, 161, 0, 0, 57, 0, 0, 0, 0, 162, 0, 0, 0, 0, 58, 59, 163, 0, + 164, 0, 0, 0, 60, 0, 0, 0 +}; + +static gushort compose_page1[256] = { + 0, 0, 61, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 65, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 166, 0, 0, 0, 0, + 167, 168, 0, 0, 0, 0, 0, 0, 169, 170, 171, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 70, 0, 0, 0, 0, 0, 0, 174, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175, 176, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static gushort compose_page2[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 178, 179, 180, 0, 0, 0, 0, 181, + 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static gushort compose_page3[256] = { + 357, 358, 359, 360, 361, 0, 362, 363, 364, 365, 366, 367, 368, 0, 0, 369, + 0, 370, 0, 371, 372, 0, 0, 0, 0, 0, 0, 373, 0, 0, 0, 0, 0, 0, 0, 374, 375, + 376, 377, 378, 379, 0, 0, 0, 0, 380, 381, 0, 382, 383, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, 0, 0, 385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 72, 0, 73, 0, 74, 0, + 0, 0, 0, 0, 75, 0, 184, 0, 0, 0, 76, 0, 0, 0, 77, 0, 0, 185, 0, 186, 0, 0, + 78, 0, 0, 0, 79, 0, 80, 0, 81, 0, 0, 0, 0, 0, 82, 0, 83, 0, 0, 0, 84, 0, 0, + 0, 85, 86, 87, 0, 0, 187, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static gushort compose_page4[256] = { + 0, 0, 0, 0, 0, 0, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 189, 0, 90, 91, + 190, 92, 0, 191, 0, 0, 0, 192, 0, 0, 0, 0, 93, 0, 0, 0, 193, 0, 0, 0, 194, + 0, 195, 0, 0, 94, 0, 0, 196, 0, 95, 96, 197, 97, 0, 198, 0, 0, 0, 199, 0, + 0, 0, 0, 98, 0, 0, 0, 200, 0, 0, 0, 201, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, + 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 204, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 208, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static gushort compose_page6[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, 0, + 211, 0, 0, 0, 0, 0, 0, 0, 0, 388, 389, 390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, 0, 0, 214, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static gushort compose_page9[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 215, 0, 0, 0, 0, 0, 0, 0, 216, + 0, 0, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 391, 0, 0, 0, 0, 0, 0, + 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 392, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static gushort compose_page11[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 393, 0, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 394, 395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 396, 0, 0, 0, 0, 0, + 0, 0, 102, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 397, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static gushort compose_page12[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221, 0, 0, 398, 0, 0, 0, + 103, 0, 0, 0, 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 399, 400, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static gushort compose_page13[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 401, 0, 0, 0, 0, 0, 0, 0, 104, 223, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 402, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 403, 0, 0, 0, 0, 404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, + 224, 0, 0, 405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static gushort compose_page16[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0 +}; + +static gushort compose_page30[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 226, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 0, 0, 0, 0, 0, 0, + 230, 231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static gushort compose_page31[256] = { + 108, 109, 236, 237, 238, 239, 240, 241, 110, 111, 242, 243, 244, 245, 246, + 247, 112, 113, 0, 0, 0, 0, 0, 0, 114, 115, 0, 0, 0, 0, 0, 0, 116, 117, 248, + 249, 250, 251, 252, 253, 118, 119, 254, 255, 256, 257, 258, 259, 120, 121, + 0, 0, 0, 0, 0, 0, 122, 123, 0, 0, 0, 0, 0, 0, 124, 125, 0, 0, 0, 0, 0, 0, + 126, 127, 0, 0, 0, 0, 0, 0, 128, 129, 0, 0, 0, 0, 0, 0, 0, 130, 0, 0, 0, 0, + 0, 0, 131, 132, 260, 261, 262, 263, 264, 265, 133, 134, 266, 267, 268, 269, + 270, 271, 272, 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 275, 0, 0, 0, 0, 0, 0, 0, 0, 135, 0, 0, 0, 0, 0, 0, 276, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 0, 0, 0, 0, 0, 0, 0, + 136, 0 +}; + +static gushort compose_page33[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 278, 0, 279, 0, + 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 281, 0, 282, 0, 283, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static gushort compose_page34[256] = { + 0, 0, 0, 284, 0, 0, 0, 0, 285, 0, 0, 286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 287, 0, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 289, 0, 0, 0, 0, 0, 0, 290, 0, 291, + 0, 0, 292, 0, 0, 0, 0, 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 294, 0, 0, 295, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 298, + 0, 0, 299, 300, 0, 0, 301, 302, 303, 304, 0, 0, 0, 0, 305, 306, 0, 0, 307, + 308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 0, 314, 0, 0, 0, 0, 0, 0, 315, + 316, 317, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0 +}; + +static gushort compose_page48[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 0, 0, 0, + 0, 320, 0, 321, 0, 322, 0, 323, 0, 324, 0, 325, 0, 326, 0, 327, 0, 328, 0, + 329, 0, 330, 0, 331, 0, 0, 332, 0, 333, 0, 334, 0, 0, 0, 0, 0, 0, 137, 0, + 0, 138, 0, 0, 139, 0, 0, 140, 0, 0, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 386, 387, 0, 0, 335, + 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, 0, 0, 337, 0, 338, 0, 339, 0, 340, 0, + 341, 0, 342, 0, 343, 0, 344, 0, 345, 0, 346, 0, 347, 0, 348, 0, 0, 349, 0, + 350, 0, 351, 0, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 0, 144, 0, 0, 145, 0, 0, + 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 352, 353, + 354, 355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 356, 0, 0 +}; + +static unsigned short *compose_table[256] = { + compose_page0, + compose_page1, + compose_page2, + compose_page3, + compose_page4, + (gushort *) 0, + compose_page6, + (gushort *) 0, + (gushort *) 0, + compose_page9, + (gushort *) 0, + compose_page11, + compose_page12, + compose_page13, + (gushort *) 0, + (gushort *) 0, + compose_page16, + (gushort *) 0, + (gushort *) 0, + (gushort *) 0, + (gushort *) 0, + (gushort *) 0, + (gushort *) 0, + (gushort *) 0, + (gushort *) 0, + (gushort *) 0, + (gushort *) 0, + (gushort *) 0, + (gushort *) 0, + (gushort *) 0, + compose_page30, + compose_page31, + (gushort *) 0, + compose_page33, + compose_page34, + (gushort *) 0, + (gushort *) 0, + (gushort *) 0, + (gushort *) 0, + (gushort *) 0, + (gushort *) 0, + (gushort *) 0, + (gushort *) 0, + (gushort *) 0, + (gushort *) 0, + (gushort *) 0, + (gushort *) 0, + (gushort *) 0, + compose_page48 +}; + +static gushort compose_first_single[][2] = { + { 0x0338, 0x226e }, + { 0x0338, 0x2260 }, + { 0x0338, 0x226f }, + { 0x0307, 0x1e1e }, + { 0x0302, 0x0134 }, + { 0x0307, 0x1e1f }, + { 0x0304, 0x01de }, + { 0x0301, 0x01fa }, + { 0x0301, 0x1e08 }, + { 0x0301, 0x1e2e }, + { 0x0304, 0x022a }, + { 0x0301, 0x01fe }, + { 0x0304, 0x01df }, + { 0x0301, 0x01fb }, + { 0x0301, 0x1e09 }, + { 0x0301, 0x1e2f }, + { 0x0304, 0x022b }, + { 0x0301, 0x01ff }, + { 0x0307, 0x1e64 }, + { 0x0307, 0x1e65 }, + { 0x0307, 0x1e66 }, + { 0x0307, 0x1e67 }, + { 0x0301, 0x1e78 }, + { 0x0301, 0x1e79 }, + { 0x0308, 0x1e7a }, + { 0x0308, 0x1e7b }, + { 0x0307, 0x1e9b }, + { 0x030c, 0x01ee }, + { 0x0304, 0x01ec }, + { 0x0304, 0x01ed }, + { 0x0304, 0x01e0 }, + { 0x0304, 0x01e1 }, + { 0x0306, 0x1e1c }, + { 0x0306, 0x1e1d }, + { 0x0304, 0x0230 }, + { 0x0304, 0x0231 }, + { 0x030c, 0x01ef }, + { 0x0314, 0x1fec }, + { 0x0345, 0x1fb4 }, + { 0x0345, 0x1fc4 }, + { 0x0345, 0x1ff4 }, + { 0x0308, 0x0407 }, + { 0x0301, 0x0403 }, + { 0x0308, 0x04de }, + { 0x0301, 0x040c }, + { 0x0308, 0x04e6 }, + { 0x0308, 0x04f4 }, + { 0x0308, 0x04f8 }, + { 0x0308, 0x04ec }, + { 0x0301, 0x0453 }, + { 0x0308, 0x04df }, + { 0x0301, 0x045c }, + { 0x0308, 0x04e7 }, + { 0x0308, 0x04f5 }, + { 0x0308, 0x04f9 }, + { 0x0308, 0x04ed }, + { 0x0308, 0x0457 }, + { 0x030f, 0x0476 }, + { 0x030f, 0x0477 }, + { 0x0308, 0x04da }, + { 0x0308, 0x04db }, + { 0x0308, 0x04ea }, + { 0x0308, 0x04eb }, + { 0x0654, 0x0624 }, + { 0x0654, 0x0626 }, + { 0x0654, 0x06c2 }, + { 0x0654, 0x06d3 }, + { 0x0654, 0x06c0 }, + { 0x093c, 0x0929 }, + { 0x093c, 0x0931 }, + { 0x093c, 0x0934 }, + { 0x0bd7, 0x0b94 }, + { 0x0bbe, 0x0bcb }, + { 0x0c56, 0x0c48 }, + { 0x0cd5, 0x0cc0 }, + { 0x0cd5, 0x0ccb }, + { 0x0d3e, 0x0d4b }, + { 0x0dca, 0x0ddd }, + { 0x102e, 0x1026 }, + { 0x0304, 0x1e38 }, + { 0x0304, 0x1e39 }, + { 0x0304, 0x1e5c }, + { 0x0304, 0x1e5d }, + { 0x0307, 0x1e68 }, + { 0x0307, 0x1e69 }, + { 0x0302, 0x1ec6 }, + { 0x0302, 0x1ec7 }, + { 0x0302, 0x1ed8 }, + { 0x0302, 0x1ed9 }, + { 0x0345, 0x1f82 }, + { 0x0345, 0x1f83 }, + { 0x0345, 0x1f84 }, + { 0x0345, 0x1f85 }, + { 0x0345, 0x1f86 }, + { 0x0345, 0x1f87 }, + { 0x0345, 0x1f8a }, + { 0x0345, 0x1f8b }, + { 0x0345, 0x1f8c }, + { 0x0345, 0x1f8d }, + { 0x0345, 0x1f8e }, + { 0x0345, 0x1f8f }, + { 0x0345, 0x1f92 }, + { 0x0345, 0x1f93 }, + { 0x0345, 0x1f94 }, + { 0x0345, 0x1f95 }, + { 0x0345, 0x1f96 }, + { 0x0345, 0x1f97 }, + { 0x0345, 0x1f9a }, + { 0x0345, 0x1f9b }, + { 0x0345, 0x1f9c }, + { 0x0345, 0x1f9d }, + { 0x0345, 0x1f9e }, + { 0x0345, 0x1f9f }, + { 0x0345, 0x1fa2 }, + { 0x0345, 0x1fa3 }, + { 0x0345, 0x1fa4 }, + { 0x0345, 0x1fa5 }, + { 0x0345, 0x1fa6 }, + { 0x0345, 0x1fa7 }, + { 0x0345, 0x1faa }, + { 0x0345, 0x1fab }, + { 0x0345, 0x1fac }, + { 0x0345, 0x1fad }, + { 0x0345, 0x1fae }, + { 0x0345, 0x1faf }, + { 0x0345, 0x1fb2 }, + { 0x0345, 0x1fc2 }, + { 0x0345, 0x1ff2 }, + { 0x0345, 0x1fb7 }, + { 0x0345, 0x1fc7 }, + { 0x0345, 0x1ff7 }, + { 0x0338, 0x219a }, + { 0x0338, 0x219b }, + { 0x0338, 0x21ae }, + { 0x0338, 0x21cd }, + { 0x0338, 0x21cf }, + { 0x0338, 0x21ce }, + { 0x0338, 0x2204 }, + { 0x0338, 0x2209 }, + { 0x0338, 0x220c }, + { 0x0338, 0x2224 }, + { 0x0338, 0x2226 }, + { 0x0338, 0x2241 }, + { 0x0338, 0x2244 }, + { 0x0338, 0x2247 }, + { 0x0338, 0x2249 }, + { 0x0338, 0x226d }, + { 0x0338, 0x2262 }, + { 0x0338, 0x2270 }, + { 0x0338, 0x2271 }, + { 0x0338, 0x2274 }, + { 0x0338, 0x2275 }, + { 0x0338, 0x2278 }, + { 0x0338, 0x2279 }, + { 0x0338, 0x2280 }, + { 0x0338, 0x2281 }, + { 0x0338, 0x22e0 }, + { 0x0338, 0x22e1 }, + { 0x0338, 0x2284 }, + { 0x0338, 0x2285 }, + { 0x0338, 0x2288 }, + { 0x0338, 0x2289 }, + { 0x0338, 0x22e2 }, + { 0x0338, 0x22e3 }, + { 0x0338, 0x22ac }, + { 0x0338, 0x22ad }, + { 0x0338, 0x22ae }, + { 0x0338, 0x22af }, + { 0x0338, 0x22ea }, + { 0x0338, 0x22eb }, + { 0x0338, 0x22ec }, + { 0x0338, 0x22ed }, + { 0x3099, 0x3094 }, + { 0x3099, 0x304c }, + { 0x3099, 0x304e }, + { 0x3099, 0x3050 }, + { 0x3099, 0x3052 }, + { 0x3099, 0x3054 }, + { 0x3099, 0x3056 }, + { 0x3099, 0x3058 }, + { 0x3099, 0x305a }, + { 0x3099, 0x305c }, + { 0x3099, 0x305e }, + { 0x3099, 0x3060 }, + { 0x3099, 0x3062 }, + { 0x3099, 0x3065 }, + { 0x3099, 0x3067 }, + { 0x3099, 0x3069 }, + { 0x3099, 0x309e }, + { 0x3099, 0x30f4 }, + { 0x3099, 0x30ac }, + { 0x3099, 0x30ae }, + { 0x3099, 0x30b0 }, + { 0x3099, 0x30b2 }, + { 0x3099, 0x30b4 }, + { 0x3099, 0x30b6 }, + { 0x3099, 0x30b8 }, + { 0x3099, 0x30ba }, + { 0x3099, 0x30bc }, + { 0x3099, 0x30be }, + { 0x3099, 0x30c0 }, + { 0x3099, 0x30c2 }, + { 0x3099, 0x30c5 }, + { 0x3099, 0x30c7 }, + { 0x3099, 0x30c9 }, + { 0x3099, 0x30f7 }, + { 0x3099, 0x30f8 }, + { 0x3099, 0x30f9 }, + { 0x3099, 0x30fa }, + { 0x3099, 0x30fe } +}; +static gushort compose_second_single[][2] = { + { 0x0627, 0x0622 }, + { 0x0627, 0x0623 }, + { 0x0627, 0x0625 }, + { 0x09c7, 0x09cb }, + { 0x09c7, 0x09cc }, + { 0x0b47, 0x0b4b }, + { 0x0b47, 0x0b48 }, + { 0x0b47, 0x0b4c }, + { 0x0bc6, 0x0bca }, + { 0x0bc6, 0x0bcc }, + { 0x0cc6, 0x0cca }, + { 0x0cc6, 0x0cc7 }, + { 0x0cc6, 0x0cc8 }, + { 0x0d46, 0x0d4a }, + { 0x0d46, 0x0d4c }, + { 0x0dd9, 0x0dda }, + { 0x0dd9, 0x0ddc }, + { 0x0dd9, 0x0dde } +}; +static gushort compose_array[146][31] = { + { 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x0100, 0x0102, 0x0226, 0x00c4, 0x1ea2, 0x00c5, 0, 0x01cd, 0x0200, 0x0202, 0, 0, 0, 0x1ea0, 0, 0x1e00, 0, 0, 0x0104, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0x1e02, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e04, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e06, 0, 0, 0, 0 }, + { 0, 0x0106, 0x0108, 0, 0, 0, 0x010a, 0, 0, 0, 0, 0x010c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00c7, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0x1e0a, 0, 0, 0, 0, 0x010e, 0, 0, 0, 0, 0, 0x1e0c, 0, 0, 0, 0x1e10, 0, 0x1e12, 0, 0, 0x1e0e, 0, 0, 0, 0 }, + { 0x00c8, 0x00c9, 0x00ca, 0x1ebc, 0x0112, 0x0114, 0x0116, 0x00cb, 0x1eba, 0, 0, 0x011a, 0x0204, 0x0206, 0, 0, 0, 0x1eb8, 0, 0, 0, 0x0228, 0x0118, 0x1e18, 0, 0x1e1a, 0, 0, 0, 0, 0 }, + { 0, 0x01f4, 0x011c, 0, 0x1e20, 0x011e, 0x0120, 0, 0, 0, 0, 0x01e6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0122, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0x0124, 0, 0, 0, 0x1e22, 0x1e26, 0, 0, 0, 0x021e, 0, 0, 0, 0, 0, 0x1e24, 0, 0, 0, 0x1e28, 0, 0, 0x1e2a, 0, 0, 0, 0, 0, 0 }, + { 0x00cc, 0x00cd, 0x00ce, 0x0128, 0x012a, 0x012c, 0x0130, 0x00cf, 0x1ec8, 0, 0, 0x01cf, 0x0208, 0x020a, 0, 0, 0, 0x1eca, 0, 0, 0, 0, 0x012e, 0, 0, 0x1e2c, 0, 0, 0, 0, 0 }, + { 0, 0x1e30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x01e8, 0, 0, 0, 0, 0, 0x1e32, 0, 0, 0, 0x0136, 0, 0, 0, 0, 0x1e34, 0, 0, 0, 0 }, + { 0, 0x0139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x013d, 0, 0, 0, 0, 0, 0x1e36, 0, 0, 0, 0x013b, 0, 0x1e3c, 0, 0, 0x1e3a, 0, 0, 0, 0 }, + { 0, 0x1e3e, 0, 0, 0, 0, 0x1e40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x01f8, 0x0143, 0, 0x00d1, 0, 0, 0x1e44, 0, 0, 0, 0, 0x0147, 0, 0, 0, 0, 0, 0x1e46, 0, 0, 0, 0x0145, 0, 0x1e4a, 0, 0, 0x1e48, 0, 0, 0, 0 }, + { 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x014c, 0x014e, 0x022e, 0x00d6, 0x1ece, 0, 0x0150, 0x01d1, 0x020c, 0x020e, 0, 0, 0x01a0, 0x1ecc, 0, 0, 0, 0, 0x01ea, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0x1e54, 0, 0, 0, 0, 0x1e56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0x0154, 0, 0, 0, 0, 0x1e58, 0, 0, 0, 0, 0x0158, 0x0210, 0x0212, 0, 0, 0, 0x1e5a, 0, 0, 0, 0x0156, 0, 0, 0, 0, 0x1e5e, 0, 0, 0, 0 }, + { 0, 0x015a, 0x015c, 0, 0, 0, 0x1e60, 0, 0, 0, 0, 0x0160, 0, 0, 0, 0, 0, 0x1e62, 0, 0, 0x0218, 0x015e, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0x1e6a, 0, 0, 0, 0, 0x0164, 0, 0, 0, 0, 0, 0x1e6c, 0, 0, 0x021a, 0x0162, 0, 0x1e70, 0, 0, 0x1e6e, 0, 0, 0, 0 }, + { 0x00d9, 0x00da, 0x00db, 0x0168, 0x016a, 0x016c, 0, 0x00dc, 0x1ee6, 0x016e, 0x0170, 0x01d3, 0x0214, 0x0216, 0, 0, 0x01af, 0x1ee4, 0x1e72, 0, 0, 0, 0x0172, 0x1e76, 0, 0x1e74, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0x1e7c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e7e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1e80, 0x1e82, 0x0174, 0, 0, 0, 0x1e86, 0x1e84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0x1e8a, 0x1e8c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1ef2, 0x00dd, 0x0176, 0x1ef8, 0x0232, 0, 0x1e8e, 0x0178, 0x1ef6, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ef4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0x0179, 0x1e90, 0, 0, 0, 0x017b, 0, 0, 0, 0, 0x017d, 0, 0, 0, 0, 0, 0x1e92, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e94, 0, 0, 0, 0 }, + { 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x0101, 0x0103, 0x0227, 0x00e4, 0x1ea3, 0x00e5, 0, 0x01ce, 0x0201, 0x0203, 0, 0, 0, 0x1ea1, 0, 0x1e01, 0, 0, 0x0105, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0x1e03, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e05, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e07, 0, 0, 0, 0 }, + { 0, 0x0107, 0x0109, 0, 0, 0, 0x010b, 0, 0, 0, 0, 0x010d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00e7, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0x1e0b, 0, 0, 0, 0, 0x010f, 0, 0, 0, 0, 0, 0x1e0d, 0, 0, 0, 0x1e11, 0, 0x1e13, 0, 0, 0x1e0f, 0, 0, 0, 0 }, + { 0x00e8, 0x00e9, 0x00ea, 0x1ebd, 0x0113, 0x0115, 0x0117, 0x00eb, 0x1ebb, 0, 0, 0x011b, 0x0205, 0x0207, 0, 0, 0, 0x1eb9, 0, 0, 0, 0x0229, 0x0119, 0x1e19, 0, 0x1e1b, 0, 0, 0, 0, 0 }, + { 0, 0x01f5, 0x011d, 0, 0x1e21, 0x011f, 0x0121, 0, 0, 0, 0, 0x01e7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0123, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0x0125, 0, 0, 0, 0x1e23, 0x1e27, 0, 0, 0, 0x021f, 0, 0, 0, 0, 0, 0x1e25, 0, 0, 0, 0x1e29, 0, 0, 0x1e2b, 0, 0x1e96, 0, 0, 0, 0 }, + { 0x00ec, 0x00ed, 0x00ee, 0x0129, 0x012b, 0x012d, 0, 0x00ef, 0x1ec9, 0, 0, 0x01d0, 0x0209, 0x020b, 0, 0, 0, 0x1ecb, 0, 0, 0, 0, 0x012f, 0, 0, 0x1e2d, 0, 0, 0, 0, 0 }, + { 0, 0, 0x0135, 0, 0, 0, 0, 0, 0, 0, 0, 0x01f0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0x1e31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x01e9, 0, 0, 0, 0, 0, 0x1e33, 0, 0, 0, 0x0137, 0, 0, 0, 0, 0x1e35, 0, 0, 0, 0 }, + { 0, 0x013a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x013e, 0, 0, 0, 0, 0, 0x1e37, 0, 0, 0, 0x013c, 0, 0x1e3d, 0, 0, 0x1e3b, 0, 0, 0, 0 }, + { 0, 0x1e3f, 0, 0, 0, 0, 0x1e41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x01f9, 0x0144, 0, 0x00f1, 0, 0, 0x1e45, 0, 0, 0, 0, 0x0148, 0, 0, 0, 0, 0, 0x1e47, 0, 0, 0, 0x0146, 0, 0x1e4b, 0, 0, 0x1e49, 0, 0, 0, 0 }, + { 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x014d, 0x014f, 0x022f, 0x00f6, 0x1ecf, 0, 0x0151, 0x01d2, 0x020d, 0x020f, 0, 0, 0x01a1, 0x1ecd, 0, 0, 0, 0, 0x01eb, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0x1e55, 0, 0, 0, 0, 0x1e57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0x0155, 0, 0, 0, 0, 0x1e59, 0, 0, 0, 0, 0x0159, 0x0211, 0x0213, 0, 0, 0, 0x1e5b, 0, 0, 0, 0x0157, 0, 0, 0, 0, 0x1e5f, 0, 0, 0, 0 }, + { 0, 0x015b, 0x015d, 0, 0, 0, 0x1e61, 0, 0, 0, 0, 0x0161, 0, 0, 0, 0, 0, 0x1e63, 0, 0, 0x0219, 0x015f, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0x1e6b, 0x1e97, 0, 0, 0, 0x0165, 0, 0, 0, 0, 0, 0x1e6d, 0, 0, 0x021b, 0x0163, 0, 0x1e71, 0, 0, 0x1e6f, 0, 0, 0, 0 }, + { 0x00f9, 0x00fa, 0x00fb, 0x0169, 0x016b, 0x016d, 0, 0x00fc, 0x1ee7, 0x016f, 0x0171, 0x01d4, 0x0215, 0x0217, 0, 0, 0x01b0, 0x1ee5, 0x1e73, 0, 0, 0, 0x0173, 0x1e77, 0, 0x1e75, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0x1e7d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e7f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1e81, 0x1e83, 0x0175, 0, 0, 0, 0x1e87, 0x1e85, 0, 0x1e98, 0, 0, 0, 0, 0, 0, 0, 0x1e89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0x1e8b, 0x1e8d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1ef3, 0x00fd, 0x0177, 0x1ef9, 0x0233, 0, 0x1e8f, 0x00ff, 0x1ef7, 0x1e99, 0, 0, 0, 0, 0, 0, 0, 0x1ef5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0x017a, 0x1e91, 0, 0, 0, 0x017c, 0, 0, 0, 0, 0x017e, 0, 0, 0, 0, 0, 0x1e93, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e95, 0, 0, 0, 0 }, + { 0x1fed, 0x0385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fc1, 0, 0, 0 }, + { 0x1ea6, 0x1ea4, 0, 0x1eaa, 0, 0, 0, 0, 0x1ea8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0x01fc, 0, 0, 0x01e2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1ec0, 0x1ebe, 0, 0x1ec4, 0, 0, 0, 0, 0x1ec2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1ed2, 0x1ed0, 0, 0x1ed6, 0, 0, 0, 0, 0x1ed4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0x1e4c, 0, 0, 0x022c, 0, 0, 0x1e4e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x01db, 0x01d7, 0, 0, 0x01d5, 0, 0, 0, 0, 0, 0, 0x01d9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1ea7, 0x1ea5, 0, 0x1eab, 0, 0, 0, 0, 0x1ea9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0x01fd, 0, 0, 0x01e3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1ec1, 0x1ebf, 0, 0x1ec5, 0, 0, 0, 0, 0x1ec3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1ed3, 0x1ed1, 0, 0x1ed7, 0, 0, 0, 0, 0x1ed5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0x1e4d, 0, 0, 0x022d, 0, 0, 0x1e4f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x01dc, 0x01d8, 0, 0, 0x01d6, 0, 0, 0, 0, 0, 0, 0x01da, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1eb0, 0x1eae, 0, 0x1eb4, 0, 0, 0, 0, 0x1eb2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1eb1, 0x1eaf, 0, 0x1eb5, 0, 0, 0, 0, 0x1eb3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1e14, 0x1e16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1e15, 0x1e17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1e50, 0x1e52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1e51, 0x1e53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1edc, 0x1eda, 0, 0x1ee0, 0, 0, 0, 0, 0x1ede, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ee2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1edd, 0x1edb, 0, 0x1ee1, 0, 0, 0, 0, 0x1edf, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ee3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1eea, 0x1ee8, 0, 0x1eee, 0, 0, 0, 0, 0x1eec, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ef0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1eeb, 0x1ee9, 0, 0x1eef, 0, 0, 0, 0, 0x1eed, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ef1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1fba, 0x0386, 0, 0, 0x1fb9, 0x1fb8, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f08, 0x1f09, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fbc, 0, 0 }, + { 0x1fc8, 0x0388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f18, 0x1f19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1fca, 0x0389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f28, 0x1f29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fcc, 0, 0 }, + { 0x1fda, 0x038a, 0, 0, 0x1fd9, 0x1fd8, 0, 0x03aa, 0, 0, 0, 0, 0, 0, 0x1f38, 0x1f39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1ff8, 0x038c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f48, 0x1f49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1fea, 0x038e, 0, 0, 0x1fe9, 0x1fe8, 0, 0x03ab, 0, 0, 0, 0, 0, 0, 0, 0x1f59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1ffa, 0x038f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f68, 0x1f69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ffc, 0, 0 }, + { 0x1f70, 0x03ac, 0, 0, 0x1fb1, 0x1fb0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f00, 0x1f01, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fb6, 0x1fb3, 0, 0 }, + { 0x1f72, 0x03ad, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f10, 0x1f11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1f74, 0x03ae, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f20, 0x1f21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fc6, 0x1fc3, 0, 0 }, + { 0x1f76, 0x03af, 0, 0, 0x1fd1, 0x1fd0, 0, 0x03ca, 0, 0, 0, 0, 0, 0, 0x1f30, 0x1f31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fd6, 0, 0, 0 }, + { 0x1f78, 0x03cc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f40, 0x1f41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fe4, 0x1fe5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1f7a, 0x03cd, 0, 0, 0x1fe1, 0x1fe0, 0, 0x03cb, 0, 0, 0, 0, 0, 0, 0x1f50, 0x1f51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fe6, 0, 0, 0 }, + { 0x1f7c, 0x03ce, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f60, 0x1f61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ff6, 0x1ff3, 0, 0 }, + { 0x1fd2, 0x0390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fd7, 0, 0, 0 }, + { 0x1fe2, 0x03b0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fe7, 0, 0, 0 }, + { 0, 0x03d3, 0, 0, 0, 0, 0, 0x03d4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0x04d0, 0, 0x04d2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x0400, 0, 0, 0, 0, 0x04d6, 0, 0x0401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0x04c1, 0, 0x04dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x040d, 0, 0, 0, 0x04e2, 0x0419, 0, 0x04e4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0x04ee, 0x040e, 0, 0x04f0, 0, 0, 0x04f2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0x04d1, 0, 0x04d3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x0450, 0, 0, 0, 0, 0x04d7, 0, 0x0451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0x04c2, 0, 0x04dd, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x045d, 0, 0, 0, 0x04e3, 0x0439, 0, 0x04e5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0x04ef, 0x045e, 0, 0x04f1, 0, 0, 0x04f3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0x1eac, 0, 0, 0x1eb6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0, 0, 0x1ead, 0, 0, 0x1eb7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1f02, 0x1f04, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f06, 0x1f80, 0, 0 }, + { 0x1f03, 0x1f05, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f07, 0x1f81, 0, 0 }, + { 0x1f0a, 0x1f0c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f0e, 0x1f88, 0, 0 }, + { 0x1f0b, 0x1f0d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f0f, 0x1f89, 0, 0 }, + { 0x1f12, 0x1f14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1f13, 0x1f15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1f1a, 0x1f1c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1f1b, 0x1f1d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1f22, 0x1f24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f26, 0x1f90, 0, 0 }, + { 0x1f23, 0x1f25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f27, 0x1f91, 0, 0 }, + { 0x1f2a, 0x1f2c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f2e, 0x1f98, 0, 0 }, + { 0x1f2b, 0x1f2d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f2f, 0x1f99, 0, 0 }, + { 0x1f32, 0x1f34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f36, 0, 0, 0 }, + { 0x1f33, 0x1f35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f37, 0, 0, 0 }, + { 0x1f3a, 0x1f3c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f3e, 0, 0, 0 }, + { 0x1f3b, 0x1f3d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f3f, 0, 0, 0 }, + { 0x1f42, 0x1f44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1f43, 0x1f45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1f4a, 0x1f4c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1f4b, 0x1f4d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 0x1f52, 0x1f54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f56, 0, 0, 0 }, + { 0x1f53, 0x1f55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f57, 0, 0, 0 }, + { 0x1f5b, 0x1f5d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f5f, 0, 0, 0 }, + { 0x1f62, 0x1f64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f66, 0x1fa0, 0, 0 }, + { 0x1f63, 0x1f65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f67, 0x1fa1, 0, 0 }, + { 0x1f6a, 0x1f6c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f6e, 0x1fa8, 0, 0 }, + { 0x1f6b, 0x1f6d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f6f, 0x1fa9, 0, 0 }, + { 0x1fcd, 0x1fce, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fcf, 0, 0, 0 }, + { 0x1fdd, 0x1fde, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fdf, 0, 0, 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3070, 0x3071 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3073, 0x3074 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3076, 0x3077 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3079, 0x307a }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x307c, 0x307d }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30d0, 0x30d1 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30d3, 0x30d4 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30d6, 0x30d7 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30d9, 0x30da }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30dc, 0x30dd } +}; diff --git a/graf2d/win32gdk/gdk/src/glib/gunidecomp.c b/graf2d/win32gdk/gdk/src/glib/gunidecomp.c new file mode 100644 index 00000000000..47590eeee5a --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gunidecomp.c @@ -0,0 +1,413 @@ +/* decomp.c - Character decomposition. + * + * Copyright (C) 1999, 2000 Tom Tromey + * Copyright 2000 Red Hat, Inc. + * + * The Gnome Library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * The Gnome Library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the Gnome Library; see the file COPYING.LIB. If not, + * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#include "glib.h" +#include "gunidecomp.h" +#include "gunicomp.h" + +#include <config.h> + +#include <stdlib.h> + +/* We cheat a bit and cast type values to (char *). We detect these + using the &0xff trick. */ +#define CC(Page, Char) \ + ((((GPOINTER_TO_INT(combining_class_table[Page])) & 0xff) \ + == GPOINTER_TO_INT(combining_class_table[Page])) \ + ? GPOINTER_TO_INT(combining_class_table[Page]) \ + : (combining_class_table[Page][Char])) + +#define COMBINING_CLASS(Char) \ + (((Char) > (G_UNICODE_LAST_CHAR)) ? 0 : CC((Char) >> 8, (Char) & 0xff)) + +/** + * g_unicode_canonical_ordering: + * @string: a UCS-4 encoded string. + * @len: the maximum length of @string to use. + * + * Computes the canonical ordering of a string in-place. + * This rearranges decomposed characters in the string + * according to their combining classes. See the Unicode + * manual for more information. + **/ +void +g_unicode_canonical_ordering (gunichar *string, + gsize len) +{ + gsize i; + int swap = 1; + + while (swap) + { + int last; + swap = 0; + last = COMBINING_CLASS (string[0]); + for (i = 0; i < len - 1; ++i) + { + int next = COMBINING_CLASS (string[i + 1]); + if (next != 0 && last > next) + { + gsize j; + /* Percolate item leftward through string. */ + for (j = i; j > 0; --j) + { + gunichar t; + if (COMBINING_CLASS (string[j]) <= next) + break; + t = string[j + 1]; + string[j + 1] = string[j]; + string[j] = t; + swap = 1; + } + /* We're re-entering the loop looking at the old + character again. */ + next = last; + } + last = next; + } + } +} + +static guchar * +find_decomposition (gunichar ch, + gboolean compat) +{ + int start = 0; + int end = G_N_ELEMENTS (decomp_table); + + if (ch >= decomp_table[start].ch && + ch <= decomp_table[end - 1].ch) + { + while (TRUE) + { + int half = (start + end) / 2; + if (ch == decomp_table[half].ch) + { + int offset; + + if (compat) + { + offset = decomp_table[half].compat_offset; + if (offset == 0xff) + offset = decomp_table[half].canon_offset; + } + else + { + offset = decomp_table[half].canon_offset; + if (offset == 0xff) + return NULL; + } + + return decomp_table[half].expansion + offset; + } + else if (half == start) + break; + else if (ch > decomp_table[half].ch) + start = half; + else + end = half; + } + } + + return NULL; +} + +/** + * g_unicode_canonical_decomposition: + * @ch: a Unicode character. + * @result_len: location to store the length of the return value. + * + * Computes the canonical decomposition of a Unicode character. + * + * Return value: a newly allocated string of Unicode characters. + * @result_len is set to the resulting length of the string. + **/ +gunichar * +g_unicode_canonical_decomposition (gunichar ch, + gsize *result_len) +{ + guchar *decomp = find_decomposition (ch, FALSE); + gunichar *r; + + if (decomp) + { + /* Found it. */ + int i, len; + /* We store as a double-nul terminated string. */ + for (len = 0; (decomp[len] || decomp[len + 1]); + len += 2) + ; + + /* We've counted twice as many bytes as there are + characters. */ + *result_len = len / 2; + r = malloc (len / 2 * sizeof (gunichar)); + + for (i = 0; i < len; i += 2) + { + r[i / 2] = (decomp[i] << 8 | decomp[i + 1]); + } + } + else + { + /* Not in our table. */ + r = malloc (sizeof (gunichar)); + *r = ch; + *result_len = 1; + } + + /* Supposedly following the Unicode 2.1.9 table means that the + decompositions come out in canonical order. I haven't tested + this, but we rely on it here. */ + return r; +} + +#define CI(Page, Char) \ + ((((GPOINTER_TO_INT(compose_table[Page])) & 0xff) \ + == GPOINTER_TO_INT(compose_table[Page])) \ + ? GPOINTER_TO_INT(compose_table[Page]) \ + : (compose_table[Page][Char])) + +#define COMPOSE_INDEX(Char) \ + (((Char) > (G_UNICODE_LAST_CHAR)) ? 0 : CI((Char) >> 8, (Char) & 0xff)) + +gboolean +combine (gunichar a, + gunichar b, + gunichar *result) +{ + gushort index_a, index_b; + + index_a = COMPOSE_INDEX(a); + if (index_a >= COMPOSE_FIRST_SINGLE_START && index_a < COMPOSE_SECOND_START) + { + if (b == compose_first_single[index_a - COMPOSE_FIRST_SINGLE_START][0]) + { + *result = compose_first_single[index_a - COMPOSE_FIRST_SINGLE_START][1]; + return TRUE; + } + else + return FALSE; + } + + index_b = COMPOSE_INDEX(b); + if (index_b >= COMPOSE_SECOND_SINGLE_START) + { + if (a == compose_second_single[index_b - COMPOSE_SECOND_SINGLE_START][0]) + { + *result = compose_second_single[index_b - COMPOSE_SECOND_SINGLE_START][1]; + return TRUE; + } + else + return FALSE; + } + + if (index_a >= COMPOSE_FIRST_START && index_a < COMPOSE_FIRST_SINGLE_START && + index_b >= COMPOSE_SECOND_START && index_a < COMPOSE_SECOND_SINGLE_START) + { + gunichar res = compose_array[index_a - COMPOSE_FIRST_START][index_b - COMPOSE_SECOND_START]; + + if (res) + { + *result = res; + return TRUE; + } + } + + return FALSE; +} + +gunichar * +_g_utf8_normalize_wc (const gchar *str, + gssize max_len, + GNormalizeMode mode) +{ + gsize n_wc; + gunichar *wc_buffer; + const char *p; + gsize last_start; + gboolean do_compat = (mode == G_NORMALIZE_NFKC || + mode == G_NORMALIZE_NFKD); + gboolean do_compose = (mode == G_NORMALIZE_NFC || + mode == G_NORMALIZE_NFKC); + + n_wc = 0; + p = str; + while ((max_len < 0 || p < str + max_len) && *p) + { + gunichar wc = g_utf8_get_char (p); + + guchar *decomp = find_decomposition (wc, do_compat); + + if (decomp) + { + int len; + /* We store as a double-nul terminated string. */ + for (len = 0; (decomp[len] || decomp[len + 1]); + len += 2) + ; + n_wc += len / 2; + } + else + n_wc++; + + p = g_utf8_next_char (p); + } + + wc_buffer = g_new (gunichar, n_wc + 1); + + last_start = 0; + n_wc = 0; + p = str; + while ((max_len < 0 || p < str + max_len) && *p) + { + gunichar wc = g_utf8_get_char (p); + guchar *decomp; + int cc; + gsize old_n_wc = n_wc; + + decomp = find_decomposition (wc, do_compat); + + if (decomp) + { + int len; + /* We store as a double-nul terminated string. */ + for (len = 0; (decomp[len] || decomp[len + 1]); + len += 2) + wc_buffer[n_wc++] = (decomp[len] << 8 | decomp[len + 1]); + } + else + wc_buffer[n_wc++] = wc; + + if (n_wc > 0) + { + cc = COMBINING_CLASS (wc_buffer[old_n_wc]); + + if (cc == 0) + { + g_unicode_canonical_ordering (wc_buffer + last_start, n_wc - last_start); + last_start = old_n_wc; + } + } + + p = g_utf8_next_char (p); + } + + if (n_wc > 0) + { + g_unicode_canonical_ordering (wc_buffer + last_start, n_wc - last_start); + last_start = n_wc; + } + + wc_buffer[n_wc] = 0; + + /* All decomposed and reordered */ + + + if (do_compose && n_wc > 0) + { + gsize i, j; + int last_cc = 0; + last_start = 0; + + for (i = 0; i < n_wc; i++) + { + int cc = COMBINING_CLASS (wc_buffer[i]); + + if (i > 0 && + (last_cc == 0 || last_cc != cc) && + combine (wc_buffer[last_start], wc_buffer[i], + &wc_buffer[last_start])) + { + for (j = i + 1; j < n_wc; j++) + wc_buffer[j-1] = wc_buffer[j]; + n_wc--; + i--; + + if (i == last_start) + last_cc = 0; + else + last_cc = COMBINING_CLASS (wc_buffer[i-1]); + + continue; + } + + if (cc == 0) + last_start = i; + + last_cc = cc; + } + } + + wc_buffer[n_wc] = 0; + + return wc_buffer; +} + +/** + * g_utf8_normalize: + * @str: a UTF-8 encoded string. + * @len: length of @str, in bytes, or -1 if @str is nul-terminated. + * @mode: the type of normalization to perform. + * + * Converts a string into canonical form, standardizing + * such issues as whether a character with an accent + * is represented as a base character and combining + * accent or as a single precomposed character. You + * should generally call g_utf8_normalize() before + * comparing two Unicode strings. + * + * The normalization mode %G_NORMALIZE_DEFAULT only + * standardizes differences that do not affect the + * text content, such as the above-mentioned accent + * representation. %G_NORMALIZE_ALL also standardizes + * the "compatibility" characters in Unicode, such + * as SUPERSCRIPT THREE to the standard forms + * (in this case DIGIT THREE). Formatting information + * may be lost but for most text operations such + * characters should be considered the same. + * For example, g_utf8_collate() normalizes + * with %G_NORMALIZE_ALL as its first step. + * + * %G_NORMALIZE_DEFAULT_COMPOSE and %G_NORMALIZE_ALL_COMPOSE + * are like %G_NORMALIZE_DEFAULT and %G_NORMALIZE_ALL, + * but returned a result with composed forms rather + * than a maximally decomposed form. This is often + * useful if you intend to convert the string to + * a legacy encoding or pass it to a system with + * less capable Unicode handling. + * + * Return value: a newly allocated string, that is the + * normalized form of @str. + **/ +gchar * +g_utf8_normalize (const gchar *str, + gssize len, + GNormalizeMode mode) +{ + gunichar *result_wc = _g_utf8_normalize_wc (str, len, mode); + gchar *result; + + result = g_ucs4_to_utf8 (result_wc, -1, NULL, NULL, NULL); + g_free (result_wc); + + return result; +} diff --git a/graf2d/win32gdk/gdk/src/glib/gunidecomp.h b/graf2d/win32gdk/gdk/src/glib/gunidecomp.h index b4977597918..983ee553fdf 100644 --- a/graf2d/win32gdk/gdk/src/glib/gunidecomp.h +++ b/graf2d/win32gdk/gdk/src/glib/gunidecomp.h @@ -536,1322 +536,3498 @@ static unsigned char *combining_class_table[256] = { typedef struct { unsigned short ch; + unsigned char canon_offset; + unsigned char compat_offset; unsigned char *expansion; } decomposition; static decomposition decomp_table[] = { - { 0x00c0, "\x00\x41\x03\x00\0" }, - { 0x00c1, "\x00\x41\x03\x01\0" }, - { 0x00c2, "\x00\x41\x03\x02\0" }, - { 0x00c3, "\x00\x41\x03\x03\0" }, - { 0x00c4, "\x00\x41\x03\x08\0" }, - { 0x00c5, "\x00\x41\x03\x0a\0" }, - { 0x00c7, "\x00\x43\x03\x27\0" }, - { 0x00c8, "\x00\x45\x03\x00\0" }, - { 0x00c9, "\x00\x45\x03\x01\0" }, - { 0x00ca, "\x00\x45\x03\x02\0" }, - { 0x00cb, "\x00\x45\x03\x08\0" }, - { 0x00cc, "\x00\x49\x03\x00\0" }, - { 0x00cd, "\x00\x49\x03\x01\0" }, - { 0x00ce, "\x00\x49\x03\x02\0" }, - { 0x00cf, "\x00\x49\x03\x08\0" }, - { 0x00d1, "\x00\x4e\x03\x03\0" }, - { 0x00d2, "\x00\x4f\x03\x00\0" }, - { 0x00d3, "\x00\x4f\x03\x01\0" }, - { 0x00d4, "\x00\x4f\x03\x02\0" }, - { 0x00d5, "\x00\x4f\x03\x03\0" }, - { 0x00d6, "\x00\x4f\x03\x08\0" }, - { 0x00d9, "\x00\x55\x03\x00\0" }, - { 0x00da, "\x00\x55\x03\x01\0" }, - { 0x00db, "\x00\x55\x03\x02\0" }, - { 0x00dc, "\x00\x55\x03\x08\0" }, - { 0x00dd, "\x00\x59\x03\x01\0" }, - { 0x00e0, "\x00\x61\x03\x00\0" }, - { 0x00e1, "\x00\x61\x03\x01\0" }, - { 0x00e2, "\x00\x61\x03\x02\0" }, - { 0x00e3, "\x00\x61\x03\x03\0" }, - { 0x00e4, "\x00\x61\x03\x08\0" }, - { 0x00e5, "\x00\x61\x03\x0a\0" }, - { 0x00e7, "\x00\x63\x03\x27\0" }, - { 0x00e8, "\x00\x65\x03\x00\0" }, - { 0x00e9, "\x00\x65\x03\x01\0" }, - { 0x00ea, "\x00\x65\x03\x02\0" }, - { 0x00eb, "\x00\x65\x03\x08\0" }, - { 0x00ec, "\x00\x69\x03\x00\0" }, - { 0x00ed, "\x00\x69\x03\x01\0" }, - { 0x00ee, "\x00\x69\x03\x02\0" }, - { 0x00ef, "\x00\x69\x03\x08\0" }, - { 0x00f1, "\x00\x6e\x03\x03\0" }, - { 0x00f2, "\x00\x6f\x03\x00\0" }, - { 0x00f3, "\x00\x6f\x03\x01\0" }, - { 0x00f4, "\x00\x6f\x03\x02\0" }, - { 0x00f5, "\x00\x6f\x03\x03\0" }, - { 0x00f6, "\x00\x6f\x03\x08\0" }, - { 0x00f9, "\x00\x75\x03\x00\0" }, - { 0x00fa, "\x00\x75\x03\x01\0" }, - { 0x00fb, "\x00\x75\x03\x02\0" }, - { 0x00fc, "\x00\x75\x03\x08\0" }, - { 0x00fd, "\x00\x79\x03\x01\0" }, - { 0x00ff, "\x00\x79\x03\x08\0" }, - { 0x0100, "\x00\x41\x03\x04\0" }, - { 0x0101, "\x00\x61\x03\x04\0" }, - { 0x0102, "\x00\x41\x03\x06\0" }, - { 0x0103, "\x00\x61\x03\x06\0" }, - { 0x0104, "\x00\x41\x03\x28\0" }, - { 0x0105, "\x00\x61\x03\x28\0" }, - { 0x0106, "\x00\x43\x03\x01\0" }, - { 0x0107, "\x00\x63\x03\x01\0" }, - { 0x0108, "\x00\x43\x03\x02\0" }, - { 0x0109, "\x00\x63\x03\x02\0" }, - { 0x010a, "\x00\x43\x03\x07\0" }, - { 0x010b, "\x00\x63\x03\x07\0" }, - { 0x010c, "\x00\x43\x03\x0c\0" }, - { 0x010d, "\x00\x63\x03\x0c\0" }, - { 0x010e, "\x00\x44\x03\x0c\0" }, - { 0x010f, "\x00\x64\x03\x0c\0" }, - { 0x0112, "\x00\x45\x03\x04\0" }, - { 0x0113, "\x00\x65\x03\x04\0" }, - { 0x0114, "\x00\x45\x03\x06\0" }, - { 0x0115, "\x00\x65\x03\x06\0" }, - { 0x0116, "\x00\x45\x03\x07\0" }, - { 0x0117, "\x00\x65\x03\x07\0" }, - { 0x0118, "\x00\x45\x03\x28\0" }, - { 0x0119, "\x00\x65\x03\x28\0" }, - { 0x011a, "\x00\x45\x03\x0c\0" }, - { 0x011b, "\x00\x65\x03\x0c\0" }, - { 0x011c, "\x00\x47\x03\x02\0" }, - { 0x011d, "\x00\x67\x03\x02\0" }, - { 0x011e, "\x00\x47\x03\x06\0" }, - { 0x011f, "\x00\x67\x03\x06\0" }, - { 0x0120, "\x00\x47\x03\x07\0" }, - { 0x0121, "\x00\x67\x03\x07\0" }, - { 0x0122, "\x00\x47\x03\x27\0" }, - { 0x0123, "\x00\x67\x03\x27\0" }, - { 0x0124, "\x00\x48\x03\x02\0" }, - { 0x0125, "\x00\x68\x03\x02\0" }, - { 0x0128, "\x00\x49\x03\x03\0" }, - { 0x0129, "\x00\x69\x03\x03\0" }, - { 0x012a, "\x00\x49\x03\x04\0" }, - { 0x012b, "\x00\x69\x03\x04\0" }, - { 0x012c, "\x00\x49\x03\x06\0" }, - { 0x012d, "\x00\x69\x03\x06\0" }, - { 0x012e, "\x00\x49\x03\x28\0" }, - { 0x012f, "\x00\x69\x03\x28\0" }, - { 0x0130, "\x00\x49\x03\x07\0" }, - { 0x0134, "\x00\x4a\x03\x02\0" }, - { 0x0135, "\x00\x6a\x03\x02\0" }, - { 0x0136, "\x00\x4b\x03\x27\0" }, - { 0x0137, "\x00\x6b\x03\x27\0" }, - { 0x0139, "\x00\x4c\x03\x01\0" }, - { 0x013a, "\x00\x6c\x03\x01\0" }, - { 0x013b, "\x00\x4c\x03\x27\0" }, - { 0x013c, "\x00\x6c\x03\x27\0" }, - { 0x013d, "\x00\x4c\x03\x0c\0" }, - { 0x013e, "\x00\x6c\x03\x0c\0" }, - { 0x0143, "\x00\x4e\x03\x01\0" }, - { 0x0144, "\x00\x6e\x03\x01\0" }, - { 0x0145, "\x00\x4e\x03\x27\0" }, - { 0x0146, "\x00\x6e\x03\x27\0" }, - { 0x0147, "\x00\x4e\x03\x0c\0" }, - { 0x0148, "\x00\x6e\x03\x0c\0" }, - { 0x014c, "\x00\x4f\x03\x04\0" }, - { 0x014d, "\x00\x6f\x03\x04\0" }, - { 0x014e, "\x00\x4f\x03\x06\0" }, - { 0x014f, "\x00\x6f\x03\x06\0" }, - { 0x0150, "\x00\x4f\x03\x0b\0" }, - { 0x0151, "\x00\x6f\x03\x0b\0" }, - { 0x0154, "\x00\x52\x03\x01\0" }, - { 0x0155, "\x00\x72\x03\x01\0" }, - { 0x0156, "\x00\x52\x03\x27\0" }, - { 0x0157, "\x00\x72\x03\x27\0" }, - { 0x0158, "\x00\x52\x03\x0c\0" }, - { 0x0159, "\x00\x72\x03\x0c\0" }, - { 0x015a, "\x00\x53\x03\x01\0" }, - { 0x015b, "\x00\x73\x03\x01\0" }, - { 0x015c, "\x00\x53\x03\x02\0" }, - { 0x015d, "\x00\x73\x03\x02\0" }, - { 0x015e, "\x00\x53\x03\x27\0" }, - { 0x015f, "\x00\x73\x03\x27\0" }, - { 0x0160, "\x00\x53\x03\x0c\0" }, - { 0x0161, "\x00\x73\x03\x0c\0" }, - { 0x0162, "\x00\x54\x03\x27\0" }, - { 0x0163, "\x00\x74\x03\x27\0" }, - { 0x0164, "\x00\x54\x03\x0c\0" }, - { 0x0165, "\x00\x74\x03\x0c\0" }, - { 0x0168, "\x00\x55\x03\x03\0" }, - { 0x0169, "\x00\x75\x03\x03\0" }, - { 0x016a, "\x00\x55\x03\x04\0" }, - { 0x016b, "\x00\x75\x03\x04\0" }, - { 0x016c, "\x00\x55\x03\x06\0" }, - { 0x016d, "\x00\x75\x03\x06\0" }, - { 0x016e, "\x00\x55\x03\x0a\0" }, - { 0x016f, "\x00\x75\x03\x0a\0" }, - { 0x0170, "\x00\x55\x03\x0b\0" }, - { 0x0171, "\x00\x75\x03\x0b\0" }, - { 0x0172, "\x00\x55\x03\x28\0" }, - { 0x0173, "\x00\x75\x03\x28\0" }, - { 0x0174, "\x00\x57\x03\x02\0" }, - { 0x0175, "\x00\x77\x03\x02\0" }, - { 0x0176, "\x00\x59\x03\x02\0" }, - { 0x0177, "\x00\x79\x03\x02\0" }, - { 0x0178, "\x00\x59\x03\x08\0" }, - { 0x0179, "\x00\x5a\x03\x01\0" }, - { 0x017a, "\x00\x7a\x03\x01\0" }, - { 0x017b, "\x00\x5a\x03\x07\0" }, - { 0x017c, "\x00\x7a\x03\x07\0" }, - { 0x017d, "\x00\x5a\x03\x0c\0" }, - { 0x017e, "\x00\x7a\x03\x0c\0" }, - { 0x01a0, "\x00\x4f\x03\x1b\0" }, - { 0x01a1, "\x00\x6f\x03\x1b\0" }, - { 0x01af, "\x00\x55\x03\x1b\0" }, - { 0x01b0, "\x00\x75\x03\x1b\0" }, - { 0x01cd, "\x00\x41\x03\x0c\0" }, - { 0x01ce, "\x00\x61\x03\x0c\0" }, - { 0x01cf, "\x00\x49\x03\x0c\0" }, - { 0x01d0, "\x00\x69\x03\x0c\0" }, - { 0x01d1, "\x00\x4f\x03\x0c\0" }, - { 0x01d2, "\x00\x6f\x03\x0c\0" }, - { 0x01d3, "\x00\x55\x03\x0c\0" }, - { 0x01d4, "\x00\x75\x03\x0c\0" }, - { 0x01d5, "\x00\x55\x03\x08\x03\x04\0" }, - { 0x01d6, "\x00\x75\x03\x08\x03\x04\0" }, - { 0x01d7, "\x00\x55\x03\x08\x03\x01\0" }, - { 0x01d8, "\x00\x75\x03\x08\x03\x01\0" }, - { 0x01d9, "\x00\x55\x03\x08\x03\x0c\0" }, - { 0x01da, "\x00\x75\x03\x08\x03\x0c\0" }, - { 0x01db, "\x00\x55\x03\x08\x03\x00\0" }, - { 0x01dc, "\x00\x75\x03\x08\x03\x00\0" }, - { 0x01de, "\x00\x41\x03\x08\x03\x04\0" }, - { 0x01df, "\x00\x61\x03\x08\x03\x04\0" }, - { 0x01e0, "\x00\x41\x03\x07\x03\x04\0" }, - { 0x01e1, "\x00\x61\x03\x07\x03\x04\0" }, - { 0x01e2, "\x00\xc6\x03\x04\0" }, - { 0x01e3, "\x00\xe6\x03\x04\0" }, - { 0x01e6, "\x00\x47\x03\x0c\0" }, - { 0x01e7, "\x00\x67\x03\x0c\0" }, - { 0x01e8, "\x00\x4b\x03\x0c\0" }, - { 0x01e9, "\x00\x6b\x03\x0c\0" }, - { 0x01ea, "\x00\x4f\x03\x28\0" }, - { 0x01eb, "\x00\x6f\x03\x28\0" }, - { 0x01ec, "\x00\x4f\x03\x28\x03\x04\0" }, - { 0x01ed, "\x00\x6f\x03\x28\x03\x04\0" }, - { 0x01ee, "\x01\xb7\x03\x0c\0" }, - { 0x01ef, "\x02\x92\x03\x0c\0" }, - { 0x01f0, "\x00\x6a\x03\x0c\0" }, - { 0x01f4, "\x00\x47\x03\x01\0" }, - { 0x01f5, "\x00\x67\x03\x01\0" }, - { 0x01f8, "\x00\x4e\x03\x00\0" }, - { 0x01f9, "\x00\x6e\x03\x00\0" }, - { 0x01fa, "\x00\x41\x03\x0a\x03\x01\0" }, - { 0x01fb, "\x00\x61\x03\x0a\x03\x01\0" }, - { 0x01fc, "\x00\xc6\x03\x01\0" }, - { 0x01fd, "\x00\xe6\x03\x01\0" }, - { 0x01fe, "\x00\xd8\x03\x01\0" }, - { 0x01ff, "\x00\xf8\x03\x01\0" }, - { 0x0200, "\x00\x41\x03\x0f\0" }, - { 0x0201, "\x00\x61\x03\x0f\0" }, - { 0x0202, "\x00\x41\x03\x11\0" }, - { 0x0203, "\x00\x61\x03\x11\0" }, - { 0x0204, "\x00\x45\x03\x0f\0" }, - { 0x0205, "\x00\x65\x03\x0f\0" }, - { 0x0206, "\x00\x45\x03\x11\0" }, - { 0x0207, "\x00\x65\x03\x11\0" }, - { 0x0208, "\x00\x49\x03\x0f\0" }, - { 0x0209, "\x00\x69\x03\x0f\0" }, - { 0x020a, "\x00\x49\x03\x11\0" }, - { 0x020b, "\x00\x69\x03\x11\0" }, - { 0x020c, "\x00\x4f\x03\x0f\0" }, - { 0x020d, "\x00\x6f\x03\x0f\0" }, - { 0x020e, "\x00\x4f\x03\x11\0" }, - { 0x020f, "\x00\x6f\x03\x11\0" }, - { 0x0210, "\x00\x52\x03\x0f\0" }, - { 0x0211, "\x00\x72\x03\x0f\0" }, - { 0x0212, "\x00\x52\x03\x11\0" }, - { 0x0213, "\x00\x72\x03\x11\0" }, - { 0x0214, "\x00\x55\x03\x0f\0" }, - { 0x0215, "\x00\x75\x03\x0f\0" }, - { 0x0216, "\x00\x55\x03\x11\0" }, - { 0x0217, "\x00\x75\x03\x11\0" }, - { 0x0218, "\x00\x53\x03\x26\0" }, - { 0x0219, "\x00\x73\x03\x26\0" }, - { 0x021a, "\x00\x54\x03\x26\0" }, - { 0x021b, "\x00\x74\x03\x26\0" }, - { 0x021e, "\x00\x48\x03\x0c\0" }, - { 0x021f, "\x00\x68\x03\x0c\0" }, - { 0x0226, "\x00\x41\x03\x07\0" }, - { 0x0227, "\x00\x61\x03\x07\0" }, - { 0x0228, "\x00\x45\x03\x27\0" }, - { 0x0229, "\x00\x65\x03\x27\0" }, - { 0x022a, "\x00\x4f\x03\x08\x03\x04\0" }, - { 0x022b, "\x00\x6f\x03\x08\x03\x04\0" }, - { 0x022c, "\x00\x4f\x03\x03\x03\x04\0" }, - { 0x022d, "\x00\x6f\x03\x03\x03\x04\0" }, - { 0x022e, "\x00\x4f\x03\x07\0" }, - { 0x022f, "\x00\x6f\x03\x07\0" }, - { 0x0230, "\x00\x4f\x03\x07\x03\x04\0" }, - { 0x0231, "\x00\x6f\x03\x07\x03\x04\0" }, - { 0x0232, "\x00\x59\x03\x04\0" }, - { 0x0233, "\x00\x79\x03\x04\0" }, - { 0x0340, "\x03\x00\0" }, - { 0x0341, "\x03\x01\0" }, - { 0x0343, "\x03\x13\0" }, - { 0x0344, "\x03\x08\x03\x01\0" }, - { 0x0374, "\x02\xb9\0" }, - { 0x037e, "\x00\x3b\0" }, - { 0x0385, "\x00\xa8\x03\x01\0" }, - { 0x0386, "\x03\x91\x03\x01\0" }, - { 0x0387, "\x00\xb7\0" }, - { 0x0388, "\x03\x95\x03\x01\0" }, - { 0x0389, "\x03\x97\x03\x01\0" }, - { 0x038a, "\x03\x99\x03\x01\0" }, - { 0x038c, "\x03\x9f\x03\x01\0" }, - { 0x038e, "\x03\xa5\x03\x01\0" }, - { 0x038f, "\x03\xa9\x03\x01\0" }, - { 0x0390, "\x03\xb9\x03\x08\x03\x01\0" }, - { 0x03aa, "\x03\x99\x03\x08\0" }, - { 0x03ab, "\x03\xa5\x03\x08\0" }, - { 0x03ac, "\x03\xb1\x03\x01\0" }, - { 0x03ad, "\x03\xb5\x03\x01\0" }, - { 0x03ae, "\x03\xb7\x03\x01\0" }, - { 0x03af, "\x03\xb9\x03\x01\0" }, - { 0x03b0, "\x03\xc5\x03\x08\x03\x01\0" }, - { 0x03ca, "\x03\xb9\x03\x08\0" }, - { 0x03cb, "\x03\xc5\x03\x08\0" }, - { 0x03cc, "\x03\xbf\x03\x01\0" }, - { 0x03cd, "\x03\xc5\x03\x01\0" }, - { 0x03ce, "\x03\xc9\x03\x01\0" }, - { 0x03d3, "\x03\xd2\x03\x01\0" }, - { 0x03d4, "\x03\xd2\x03\x08\0" }, - { 0x0400, "\x04\x15\x03\x00\0" }, - { 0x0401, "\x04\x15\x03\x08\0" }, - { 0x0403, "\x04\x13\x03\x01\0" }, - { 0x0407, "\x04\x06\x03\x08\0" }, - { 0x040c, "\x04\x1a\x03\x01\0" }, - { 0x040d, "\x04\x18\x03\x00\0" }, - { 0x040e, "\x04\x23\x03\x06\0" }, - { 0x0419, "\x04\x18\x03\x06\0" }, - { 0x0439, "\x04\x38\x03\x06\0" }, - { 0x0450, "\x04\x35\x03\x00\0" }, - { 0x0451, "\x04\x35\x03\x08\0" }, - { 0x0453, "\x04\x33\x03\x01\0" }, - { 0x0457, "\x04\x56\x03\x08\0" }, - { 0x045c, "\x04\x3a\x03\x01\0" }, - { 0x045d, "\x04\x38\x03\x00\0" }, - { 0x045e, "\x04\x43\x03\x06\0" }, - { 0x0476, "\x04\x74\x03\x0f\0" }, - { 0x0477, "\x04\x75\x03\x0f\0" }, - { 0x04c1, "\x04\x16\x03\x06\0" }, - { 0x04c2, "\x04\x36\x03\x06\0" }, - { 0x04d0, "\x04\x10\x03\x06\0" }, - { 0x04d1, "\x04\x30\x03\x06\0" }, - { 0x04d2, "\x04\x10\x03\x08\0" }, - { 0x04d3, "\x04\x30\x03\x08\0" }, - { 0x04d6, "\x04\x15\x03\x06\0" }, - { 0x04d7, "\x04\x35\x03\x06\0" }, - { 0x04da, "\x04\xd8\x03\x08\0" }, - { 0x04db, "\x04\xd9\x03\x08\0" }, - { 0x04dc, "\x04\x16\x03\x08\0" }, - { 0x04dd, "\x04\x36\x03\x08\0" }, - { 0x04de, "\x04\x17\x03\x08\0" }, - { 0x04df, "\x04\x37\x03\x08\0" }, - { 0x04e2, "\x04\x18\x03\x04\0" }, - { 0x04e3, "\x04\x38\x03\x04\0" }, - { 0x04e4, "\x04\x18\x03\x08\0" }, - { 0x04e5, "\x04\x38\x03\x08\0" }, - { 0x04e6, "\x04\x1e\x03\x08\0" }, - { 0x04e7, "\x04\x3e\x03\x08\0" }, - { 0x04ea, "\x04\xe8\x03\x08\0" }, - { 0x04eb, "\x04\xe9\x03\x08\0" }, - { 0x04ec, "\x04\x2d\x03\x08\0" }, - { 0x04ed, "\x04\x4d\x03\x08\0" }, - { 0x04ee, "\x04\x23\x03\x04\0" }, - { 0x04ef, "\x04\x43\x03\x04\0" }, - { 0x04f0, "\x04\x23\x03\x08\0" }, - { 0x04f1, "\x04\x43\x03\x08\0" }, - { 0x04f2, "\x04\x23\x03\x0b\0" }, - { 0x04f3, "\x04\x43\x03\x0b\0" }, - { 0x04f4, "\x04\x27\x03\x08\0" }, - { 0x04f5, "\x04\x47\x03\x08\0" }, - { 0x04f8, "\x04\x2b\x03\x08\0" }, - { 0x04f9, "\x04\x4b\x03\x08\0" }, - { 0x0622, "\x06\x27\x06\x53\0" }, - { 0x0623, "\x06\x27\x06\x54\0" }, - { 0x0624, "\x06\x48\x06\x54\0" }, - { 0x0625, "\x06\x27\x06\x55\0" }, - { 0x0626, "\x06\x4a\x06\x54\0" }, - { 0x06c0, "\x06\xd5\x06\x54\0" }, - { 0x06c2, "\x06\xc1\x06\x54\0" }, - { 0x06d3, "\x06\xd2\x06\x54\0" }, - { 0x0929, "\x09\x28\x09\x3c\0" }, - { 0x0931, "\x09\x30\x09\x3c\0" }, - { 0x0934, "\x09\x33\x09\x3c\0" }, - { 0x0958, "\x09\x15\x09\x3c\0" }, - { 0x0959, "\x09\x16\x09\x3c\0" }, - { 0x095a, "\x09\x17\x09\x3c\0" }, - { 0x095b, "\x09\x1c\x09\x3c\0" }, - { 0x095c, "\x09\x21\x09\x3c\0" }, - { 0x095d, "\x09\x22\x09\x3c\0" }, - { 0x095e, "\x09\x2b\x09\x3c\0" }, - { 0x095f, "\x09\x2f\x09\x3c\0" }, - { 0x09cb, "\x09\xc7\x09\xbe\0" }, - { 0x09cc, "\x09\xc7\x09\xd7\0" }, - { 0x09dc, "\x09\xa1\x09\xbc\0" }, - { 0x09dd, "\x09\xa2\x09\xbc\0" }, - { 0x09df, "\x09\xaf\x09\xbc\0" }, - { 0x0a33, "\x0a\x32\x0a\x3c\0" }, - { 0x0a36, "\x0a\x38\x0a\x3c\0" }, - { 0x0a59, "\x0a\x16\x0a\x3c\0" }, - { 0x0a5a, "\x0a\x17\x0a\x3c\0" }, - { 0x0a5b, "\x0a\x1c\x0a\x3c\0" }, - { 0x0a5e, "\x0a\x2b\x0a\x3c\0" }, - { 0x0b48, "\x0b\x47\x0b\x56\0" }, - { 0x0b4b, "\x0b\x47\x0b\x3e\0" }, - { 0x0b4c, "\x0b\x47\x0b\x57\0" }, - { 0x0b5c, "\x0b\x21\x0b\x3c\0" }, - { 0x0b5d, "\x0b\x22\x0b\x3c\0" }, - { 0x0b94, "\x0b\x92\x0b\xd7\0" }, - { 0x0bca, "\x0b\xc6\x0b\xbe\0" }, - { 0x0bcb, "\x0b\xc7\x0b\xbe\0" }, - { 0x0bcc, "\x0b\xc6\x0b\xd7\0" }, - { 0x0c48, "\x0c\x46\x0c\x56\0" }, - { 0x0cc0, "\x0c\xbf\x0c\xd5\0" }, - { 0x0cc7, "\x0c\xc6\x0c\xd5\0" }, - { 0x0cc8, "\x0c\xc6\x0c\xd6\0" }, - { 0x0cca, "\x0c\xc6\x0c\xc2\0" }, - { 0x0ccb, "\x0c\xc6\x0c\xc2\x0c\xd5\0" }, - { 0x0d4a, "\x0d\x46\x0d\x3e\0" }, - { 0x0d4b, "\x0d\x47\x0d\x3e\0" }, - { 0x0d4c, "\x0d\x46\x0d\x57\0" }, - { 0x0dda, "\x0d\xd9\x0d\xca\0" }, - { 0x0ddc, "\x0d\xd9\x0d\xcf\0" }, - { 0x0ddd, "\x0d\xd9\x0d\xcf\x0d\xca\0" }, - { 0x0dde, "\x0d\xd9\x0d\xdf\0" }, - { 0x0f43, "\x0f\x42\x0f\xb7\0" }, - { 0x0f4d, "\x0f\x4c\x0f\xb7\0" }, - { 0x0f52, "\x0f\x51\x0f\xb7\0" }, - { 0x0f57, "\x0f\x56\x0f\xb7\0" }, - { 0x0f5c, "\x0f\x5b\x0f\xb7\0" }, - { 0x0f69, "\x0f\x40\x0f\xb5\0" }, - { 0x0f73, "\x0f\x71\x0f\x72\0" }, - { 0x0f75, "\x0f\x71\x0f\x74\0" }, - { 0x0f76, "\x0f\xb2\x0f\x80\0" }, - { 0x0f78, "\x0f\xb3\x0f\x80\0" }, - { 0x0f81, "\x0f\x71\x0f\x80\0" }, - { 0x0f93, "\x0f\x92\x0f\xb7\0" }, - { 0x0f9d, "\x0f\x9c\x0f\xb7\0" }, - { 0x0fa2, "\x0f\xa1\x0f\xb7\0" }, - { 0x0fa7, "\x0f\xa6\x0f\xb7\0" }, - { 0x0fac, "\x0f\xab\x0f\xb7\0" }, - { 0x0fb9, "\x0f\x90\x0f\xb5\0" }, - { 0x1026, "\x10\x25\x10\x2e\0" }, - { 0x1e00, "\x00\x41\x03\x25\0" }, - { 0x1e01, "\x00\x61\x03\x25\0" }, - { 0x1e02, "\x00\x42\x03\x07\0" }, - { 0x1e03, "\x00\x62\x03\x07\0" }, - { 0x1e04, "\x00\x42\x03\x23\0" }, - { 0x1e05, "\x00\x62\x03\x23\0" }, - { 0x1e06, "\x00\x42\x03\x31\0" }, - { 0x1e07, "\x00\x62\x03\x31\0" }, - { 0x1e08, "\x00\x43\x03\x27\x03\x01\0" }, - { 0x1e09, "\x00\x63\x03\x27\x03\x01\0" }, - { 0x1e0a, "\x00\x44\x03\x07\0" }, - { 0x1e0b, "\x00\x64\x03\x07\0" }, - { 0x1e0c, "\x00\x44\x03\x23\0" }, - { 0x1e0d, "\x00\x64\x03\x23\0" }, - { 0x1e0e, "\x00\x44\x03\x31\0" }, - { 0x1e0f, "\x00\x64\x03\x31\0" }, - { 0x1e10, "\x00\x44\x03\x27\0" }, - { 0x1e11, "\x00\x64\x03\x27\0" }, - { 0x1e12, "\x00\x44\x03\x2d\0" }, - { 0x1e13, "\x00\x64\x03\x2d\0" }, - { 0x1e14, "\x00\x45\x03\x04\x03\x00\0" }, - { 0x1e15, "\x00\x65\x03\x04\x03\x00\0" }, - { 0x1e16, "\x00\x45\x03\x04\x03\x01\0" }, - { 0x1e17, "\x00\x65\x03\x04\x03\x01\0" }, - { 0x1e18, "\x00\x45\x03\x2d\0" }, - { 0x1e19, "\x00\x65\x03\x2d\0" }, - { 0x1e1a, "\x00\x45\x03\x30\0" }, - { 0x1e1b, "\x00\x65\x03\x30\0" }, - { 0x1e1c, "\x00\x45\x03\x27\x03\x06\0" }, - { 0x1e1d, "\x00\x65\x03\x27\x03\x06\0" }, - { 0x1e1e, "\x00\x46\x03\x07\0" }, - { 0x1e1f, "\x00\x66\x03\x07\0" }, - { 0x1e20, "\x00\x47\x03\x04\0" }, - { 0x1e21, "\x00\x67\x03\x04\0" }, - { 0x1e22, "\x00\x48\x03\x07\0" }, - { 0x1e23, "\x00\x68\x03\x07\0" }, - { 0x1e24, "\x00\x48\x03\x23\0" }, - { 0x1e25, "\x00\x68\x03\x23\0" }, - { 0x1e26, "\x00\x48\x03\x08\0" }, - { 0x1e27, "\x00\x68\x03\x08\0" }, - { 0x1e28, "\x00\x48\x03\x27\0" }, - { 0x1e29, "\x00\x68\x03\x27\0" }, - { 0x1e2a, "\x00\x48\x03\x2e\0" }, - { 0x1e2b, "\x00\x68\x03\x2e\0" }, - { 0x1e2c, "\x00\x49\x03\x30\0" }, - { 0x1e2d, "\x00\x69\x03\x30\0" }, - { 0x1e2e, "\x00\x49\x03\x08\x03\x01\0" }, - { 0x1e2f, "\x00\x69\x03\x08\x03\x01\0" }, - { 0x1e30, "\x00\x4b\x03\x01\0" }, - { 0x1e31, "\x00\x6b\x03\x01\0" }, - { 0x1e32, "\x00\x4b\x03\x23\0" }, - { 0x1e33, "\x00\x6b\x03\x23\0" }, - { 0x1e34, "\x00\x4b\x03\x31\0" }, - { 0x1e35, "\x00\x6b\x03\x31\0" }, - { 0x1e36, "\x00\x4c\x03\x23\0" }, - { 0x1e37, "\x00\x6c\x03\x23\0" }, - { 0x1e38, "\x00\x4c\x03\x23\x03\x04\0" }, - { 0x1e39, "\x00\x6c\x03\x23\x03\x04\0" }, - { 0x1e3a, "\x00\x4c\x03\x31\0" }, - { 0x1e3b, "\x00\x6c\x03\x31\0" }, - { 0x1e3c, "\x00\x4c\x03\x2d\0" }, - { 0x1e3d, "\x00\x6c\x03\x2d\0" }, - { 0x1e3e, "\x00\x4d\x03\x01\0" }, - { 0x1e3f, "\x00\x6d\x03\x01\0" }, - { 0x1e40, "\x00\x4d\x03\x07\0" }, - { 0x1e41, "\x00\x6d\x03\x07\0" }, - { 0x1e42, "\x00\x4d\x03\x23\0" }, - { 0x1e43, "\x00\x6d\x03\x23\0" }, - { 0x1e44, "\x00\x4e\x03\x07\0" }, - { 0x1e45, "\x00\x6e\x03\x07\0" }, - { 0x1e46, "\x00\x4e\x03\x23\0" }, - { 0x1e47, "\x00\x6e\x03\x23\0" }, - { 0x1e48, "\x00\x4e\x03\x31\0" }, - { 0x1e49, "\x00\x6e\x03\x31\0" }, - { 0x1e4a, "\x00\x4e\x03\x2d\0" }, - { 0x1e4b, "\x00\x6e\x03\x2d\0" }, - { 0x1e4c, "\x00\x4f\x03\x03\x03\x01\0" }, - { 0x1e4d, "\x00\x6f\x03\x03\x03\x01\0" }, - { 0x1e4e, "\x00\x4f\x03\x03\x03\x08\0" }, - { 0x1e4f, "\x00\x6f\x03\x03\x03\x08\0" }, - { 0x1e50, "\x00\x4f\x03\x04\x03\x00\0" }, - { 0x1e51, "\x00\x6f\x03\x04\x03\x00\0" }, - { 0x1e52, "\x00\x4f\x03\x04\x03\x01\0" }, - { 0x1e53, "\x00\x6f\x03\x04\x03\x01\0" }, - { 0x1e54, "\x00\x50\x03\x01\0" }, - { 0x1e55, "\x00\x70\x03\x01\0" }, - { 0x1e56, "\x00\x50\x03\x07\0" }, - { 0x1e57, "\x00\x70\x03\x07\0" }, - { 0x1e58, "\x00\x52\x03\x07\0" }, - { 0x1e59, "\x00\x72\x03\x07\0" }, - { 0x1e5a, "\x00\x52\x03\x23\0" }, - { 0x1e5b, "\x00\x72\x03\x23\0" }, - { 0x1e5c, "\x00\x52\x03\x23\x03\x04\0" }, - { 0x1e5d, "\x00\x72\x03\x23\x03\x04\0" }, - { 0x1e5e, "\x00\x52\x03\x31\0" }, - { 0x1e5f, "\x00\x72\x03\x31\0" }, - { 0x1e60, "\x00\x53\x03\x07\0" }, - { 0x1e61, "\x00\x73\x03\x07\0" }, - { 0x1e62, "\x00\x53\x03\x23\0" }, - { 0x1e63, "\x00\x73\x03\x23\0" }, - { 0x1e64, "\x00\x53\x03\x01\x03\x07\0" }, - { 0x1e65, "\x00\x73\x03\x01\x03\x07\0" }, - { 0x1e66, "\x00\x53\x03\x0c\x03\x07\0" }, - { 0x1e67, "\x00\x73\x03\x0c\x03\x07\0" }, - { 0x1e68, "\x00\x53\x03\x23\x03\x07\0" }, - { 0x1e69, "\x00\x73\x03\x23\x03\x07\0" }, - { 0x1e6a, "\x00\x54\x03\x07\0" }, - { 0x1e6b, "\x00\x74\x03\x07\0" }, - { 0x1e6c, "\x00\x54\x03\x23\0" }, - { 0x1e6d, "\x00\x74\x03\x23\0" }, - { 0x1e6e, "\x00\x54\x03\x31\0" }, - { 0x1e6f, "\x00\x74\x03\x31\0" }, - { 0x1e70, "\x00\x54\x03\x2d\0" }, - { 0x1e71, "\x00\x74\x03\x2d\0" }, - { 0x1e72, "\x00\x55\x03\x24\0" }, - { 0x1e73, "\x00\x75\x03\x24\0" }, - { 0x1e74, "\x00\x55\x03\x30\0" }, - { 0x1e75, "\x00\x75\x03\x30\0" }, - { 0x1e76, "\x00\x55\x03\x2d\0" }, - { 0x1e77, "\x00\x75\x03\x2d\0" }, - { 0x1e78, "\x00\x55\x03\x03\x03\x01\0" }, - { 0x1e79, "\x00\x75\x03\x03\x03\x01\0" }, - { 0x1e7a, "\x00\x55\x03\x04\x03\x08\0" }, - { 0x1e7b, "\x00\x75\x03\x04\x03\x08\0" }, - { 0x1e7c, "\x00\x56\x03\x03\0" }, - { 0x1e7d, "\x00\x76\x03\x03\0" }, - { 0x1e7e, "\x00\x56\x03\x23\0" }, - { 0x1e7f, "\x00\x76\x03\x23\0" }, - { 0x1e80, "\x00\x57\x03\x00\0" }, - { 0x1e81, "\x00\x77\x03\x00\0" }, - { 0x1e82, "\x00\x57\x03\x01\0" }, - { 0x1e83, "\x00\x77\x03\x01\0" }, - { 0x1e84, "\x00\x57\x03\x08\0" }, - { 0x1e85, "\x00\x77\x03\x08\0" }, - { 0x1e86, "\x00\x57\x03\x07\0" }, - { 0x1e87, "\x00\x77\x03\x07\0" }, - { 0x1e88, "\x00\x57\x03\x23\0" }, - { 0x1e89, "\x00\x77\x03\x23\0" }, - { 0x1e8a, "\x00\x58\x03\x07\0" }, - { 0x1e8b, "\x00\x78\x03\x07\0" }, - { 0x1e8c, "\x00\x58\x03\x08\0" }, - { 0x1e8d, "\x00\x78\x03\x08\0" }, - { 0x1e8e, "\x00\x59\x03\x07\0" }, - { 0x1e8f, "\x00\x79\x03\x07\0" }, - { 0x1e90, "\x00\x5a\x03\x02\0" }, - { 0x1e91, "\x00\x7a\x03\x02\0" }, - { 0x1e92, "\x00\x5a\x03\x23\0" }, - { 0x1e93, "\x00\x7a\x03\x23\0" }, - { 0x1e94, "\x00\x5a\x03\x31\0" }, - { 0x1e95, "\x00\x7a\x03\x31\0" }, - { 0x1e96, "\x00\x68\x03\x31\0" }, - { 0x1e97, "\x00\x74\x03\x08\0" }, - { 0x1e98, "\x00\x77\x03\x0a\0" }, - { 0x1e99, "\x00\x79\x03\x0a\0" }, - { 0x1e9b, "\x01\x7f\x03\x07\0" }, - { 0x1ea0, "\x00\x41\x03\x23\0" }, - { 0x1ea1, "\x00\x61\x03\x23\0" }, - { 0x1ea2, "\x00\x41\x03\x09\0" }, - { 0x1ea3, "\x00\x61\x03\x09\0" }, - { 0x1ea4, "\x00\x41\x03\x02\x03\x01\0" }, - { 0x1ea5, "\x00\x61\x03\x02\x03\x01\0" }, - { 0x1ea6, "\x00\x41\x03\x02\x03\x00\0" }, - { 0x1ea7, "\x00\x61\x03\x02\x03\x00\0" }, - { 0x1ea8, "\x00\x41\x03\x02\x03\x09\0" }, - { 0x1ea9, "\x00\x61\x03\x02\x03\x09\0" }, - { 0x1eaa, "\x00\x41\x03\x02\x03\x03\0" }, - { 0x1eab, "\x00\x61\x03\x02\x03\x03\0" }, - { 0x1eac, "\x00\x41\x03\x23\x03\x02\0" }, - { 0x1ead, "\x00\x61\x03\x23\x03\x02\0" }, - { 0x1eae, "\x00\x41\x03\x06\x03\x01\0" }, - { 0x1eaf, "\x00\x61\x03\x06\x03\x01\0" }, - { 0x1eb0, "\x00\x41\x03\x06\x03\x00\0" }, - { 0x1eb1, "\x00\x61\x03\x06\x03\x00\0" }, - { 0x1eb2, "\x00\x41\x03\x06\x03\x09\0" }, - { 0x1eb3, "\x00\x61\x03\x06\x03\x09\0" }, - { 0x1eb4, "\x00\x41\x03\x06\x03\x03\0" }, - { 0x1eb5, "\x00\x61\x03\x06\x03\x03\0" }, - { 0x1eb6, "\x00\x41\x03\x23\x03\x06\0" }, - { 0x1eb7, "\x00\x61\x03\x23\x03\x06\0" }, - { 0x1eb8, "\x00\x45\x03\x23\0" }, - { 0x1eb9, "\x00\x65\x03\x23\0" }, - { 0x1eba, "\x00\x45\x03\x09\0" }, - { 0x1ebb, "\x00\x65\x03\x09\0" }, - { 0x1ebc, "\x00\x45\x03\x03\0" }, - { 0x1ebd, "\x00\x65\x03\x03\0" }, - { 0x1ebe, "\x00\x45\x03\x02\x03\x01\0" }, - { 0x1ebf, "\x00\x65\x03\x02\x03\x01\0" }, - { 0x1ec0, "\x00\x45\x03\x02\x03\x00\0" }, - { 0x1ec1, "\x00\x65\x03\x02\x03\x00\0" }, - { 0x1ec2, "\x00\x45\x03\x02\x03\x09\0" }, - { 0x1ec3, "\x00\x65\x03\x02\x03\x09\0" }, - { 0x1ec4, "\x00\x45\x03\x02\x03\x03\0" }, - { 0x1ec5, "\x00\x65\x03\x02\x03\x03\0" }, - { 0x1ec6, "\x00\x45\x03\x23\x03\x02\0" }, - { 0x1ec7, "\x00\x65\x03\x23\x03\x02\0" }, - { 0x1ec8, "\x00\x49\x03\x09\0" }, - { 0x1ec9, "\x00\x69\x03\x09\0" }, - { 0x1eca, "\x00\x49\x03\x23\0" }, - { 0x1ecb, "\x00\x69\x03\x23\0" }, - { 0x1ecc, "\x00\x4f\x03\x23\0" }, - { 0x1ecd, "\x00\x6f\x03\x23\0" }, - { 0x1ece, "\x00\x4f\x03\x09\0" }, - { 0x1ecf, "\x00\x6f\x03\x09\0" }, - { 0x1ed0, "\x00\x4f\x03\x02\x03\x01\0" }, - { 0x1ed1, "\x00\x6f\x03\x02\x03\x01\0" }, - { 0x1ed2, "\x00\x4f\x03\x02\x03\x00\0" }, - { 0x1ed3, "\x00\x6f\x03\x02\x03\x00\0" }, - { 0x1ed4, "\x00\x4f\x03\x02\x03\x09\0" }, - { 0x1ed5, "\x00\x6f\x03\x02\x03\x09\0" }, - { 0x1ed6, "\x00\x4f\x03\x02\x03\x03\0" }, - { 0x1ed7, "\x00\x6f\x03\x02\x03\x03\0" }, - { 0x1ed8, "\x00\x4f\x03\x23\x03\x02\0" }, - { 0x1ed9, "\x00\x6f\x03\x23\x03\x02\0" }, - { 0x1eda, "\x00\x4f\x03\x1b\x03\x01\0" }, - { 0x1edb, "\x00\x6f\x03\x1b\x03\x01\0" }, - { 0x1edc, "\x00\x4f\x03\x1b\x03\x00\0" }, - { 0x1edd, "\x00\x6f\x03\x1b\x03\x00\0" }, - { 0x1ede, "\x00\x4f\x03\x1b\x03\x09\0" }, - { 0x1edf, "\x00\x6f\x03\x1b\x03\x09\0" }, - { 0x1ee0, "\x00\x4f\x03\x1b\x03\x03\0" }, - { 0x1ee1, "\x00\x6f\x03\x1b\x03\x03\0" }, - { 0x1ee2, "\x00\x4f\x03\x1b\x03\x23\0" }, - { 0x1ee3, "\x00\x6f\x03\x1b\x03\x23\0" }, - { 0x1ee4, "\x00\x55\x03\x23\0" }, - { 0x1ee5, "\x00\x75\x03\x23\0" }, - { 0x1ee6, "\x00\x55\x03\x09\0" }, - { 0x1ee7, "\x00\x75\x03\x09\0" }, - { 0x1ee8, "\x00\x55\x03\x1b\x03\x01\0" }, - { 0x1ee9, "\x00\x75\x03\x1b\x03\x01\0" }, - { 0x1eea, "\x00\x55\x03\x1b\x03\x00\0" }, - { 0x1eeb, "\x00\x75\x03\x1b\x03\x00\0" }, - { 0x1eec, "\x00\x55\x03\x1b\x03\x09\0" }, - { 0x1eed, "\x00\x75\x03\x1b\x03\x09\0" }, - { 0x1eee, "\x00\x55\x03\x1b\x03\x03\0" }, - { 0x1eef, "\x00\x75\x03\x1b\x03\x03\0" }, - { 0x1ef0, "\x00\x55\x03\x1b\x03\x23\0" }, - { 0x1ef1, "\x00\x75\x03\x1b\x03\x23\0" }, - { 0x1ef2, "\x00\x59\x03\x00\0" }, - { 0x1ef3, "\x00\x79\x03\x00\0" }, - { 0x1ef4, "\x00\x59\x03\x23\0" }, - { 0x1ef5, "\x00\x79\x03\x23\0" }, - { 0x1ef6, "\x00\x59\x03\x09\0" }, - { 0x1ef7, "\x00\x79\x03\x09\0" }, - { 0x1ef8, "\x00\x59\x03\x03\0" }, - { 0x1ef9, "\x00\x79\x03\x03\0" }, - { 0x1f00, "\x03\xb1\x03\x13\0" }, - { 0x1f01, "\x03\xb1\x03\x14\0" }, - { 0x1f02, "\x03\xb1\x03\x13\x03\x00\0" }, - { 0x1f03, "\x03\xb1\x03\x14\x03\x00\0" }, - { 0x1f04, "\x03\xb1\x03\x13\x03\x01\0" }, - { 0x1f05, "\x03\xb1\x03\x14\x03\x01\0" }, - { 0x1f06, "\x03\xb1\x03\x13\x03\x42\0" }, - { 0x1f07, "\x03\xb1\x03\x14\x03\x42\0" }, - { 0x1f08, "\x03\x91\x03\x13\0" }, - { 0x1f09, "\x03\x91\x03\x14\0" }, - { 0x1f0a, "\x03\x91\x03\x13\x03\x00\0" }, - { 0x1f0b, "\x03\x91\x03\x14\x03\x00\0" }, - { 0x1f0c, "\x03\x91\x03\x13\x03\x01\0" }, - { 0x1f0d, "\x03\x91\x03\x14\x03\x01\0" }, - { 0x1f0e, "\x03\x91\x03\x13\x03\x42\0" }, - { 0x1f0f, "\x03\x91\x03\x14\x03\x42\0" }, - { 0x1f10, "\x03\xb5\x03\x13\0" }, - { 0x1f11, "\x03\xb5\x03\x14\0" }, - { 0x1f12, "\x03\xb5\x03\x13\x03\x00\0" }, - { 0x1f13, "\x03\xb5\x03\x14\x03\x00\0" }, - { 0x1f14, "\x03\xb5\x03\x13\x03\x01\0" }, - { 0x1f15, "\x03\xb5\x03\x14\x03\x01\0" }, - { 0x1f18, "\x03\x95\x03\x13\0" }, - { 0x1f19, "\x03\x95\x03\x14\0" }, - { 0x1f1a, "\x03\x95\x03\x13\x03\x00\0" }, - { 0x1f1b, "\x03\x95\x03\x14\x03\x00\0" }, - { 0x1f1c, "\x03\x95\x03\x13\x03\x01\0" }, - { 0x1f1d, "\x03\x95\x03\x14\x03\x01\0" }, - { 0x1f20, "\x03\xb7\x03\x13\0" }, - { 0x1f21, "\x03\xb7\x03\x14\0" }, - { 0x1f22, "\x03\xb7\x03\x13\x03\x00\0" }, - { 0x1f23, "\x03\xb7\x03\x14\x03\x00\0" }, - { 0x1f24, "\x03\xb7\x03\x13\x03\x01\0" }, - { 0x1f25, "\x03\xb7\x03\x14\x03\x01\0" }, - { 0x1f26, "\x03\xb7\x03\x13\x03\x42\0" }, - { 0x1f27, "\x03\xb7\x03\x14\x03\x42\0" }, - { 0x1f28, "\x03\x97\x03\x13\0" }, - { 0x1f29, "\x03\x97\x03\x14\0" }, - { 0x1f2a, "\x03\x97\x03\x13\x03\x00\0" }, - { 0x1f2b, "\x03\x97\x03\x14\x03\x00\0" }, - { 0x1f2c, "\x03\x97\x03\x13\x03\x01\0" }, - { 0x1f2d, "\x03\x97\x03\x14\x03\x01\0" }, - { 0x1f2e, "\x03\x97\x03\x13\x03\x42\0" }, - { 0x1f2f, "\x03\x97\x03\x14\x03\x42\0" }, - { 0x1f30, "\x03\xb9\x03\x13\0" }, - { 0x1f31, "\x03\xb9\x03\x14\0" }, - { 0x1f32, "\x03\xb9\x03\x13\x03\x00\0" }, - { 0x1f33, "\x03\xb9\x03\x14\x03\x00\0" }, - { 0x1f34, "\x03\xb9\x03\x13\x03\x01\0" }, - { 0x1f35, "\x03\xb9\x03\x14\x03\x01\0" }, - { 0x1f36, "\x03\xb9\x03\x13\x03\x42\0" }, - { 0x1f37, "\x03\xb9\x03\x14\x03\x42\0" }, - { 0x1f38, "\x03\x99\x03\x13\0" }, - { 0x1f39, "\x03\x99\x03\x14\0" }, - { 0x1f3a, "\x03\x99\x03\x13\x03\x00\0" }, - { 0x1f3b, "\x03\x99\x03\x14\x03\x00\0" }, - { 0x1f3c, "\x03\x99\x03\x13\x03\x01\0" }, - { 0x1f3d, "\x03\x99\x03\x14\x03\x01\0" }, - { 0x1f3e, "\x03\x99\x03\x13\x03\x42\0" }, - { 0x1f3f, "\x03\x99\x03\x14\x03\x42\0" }, - { 0x1f40, "\x03\xbf\x03\x13\0" }, - { 0x1f41, "\x03\xbf\x03\x14\0" }, - { 0x1f42, "\x03\xbf\x03\x13\x03\x00\0" }, - { 0x1f43, "\x03\xbf\x03\x14\x03\x00\0" }, - { 0x1f44, "\x03\xbf\x03\x13\x03\x01\0" }, - { 0x1f45, "\x03\xbf\x03\x14\x03\x01\0" }, - { 0x1f48, "\x03\x9f\x03\x13\0" }, - { 0x1f49, "\x03\x9f\x03\x14\0" }, - { 0x1f4a, "\x03\x9f\x03\x13\x03\x00\0" }, - { 0x1f4b, "\x03\x9f\x03\x14\x03\x00\0" }, - { 0x1f4c, "\x03\x9f\x03\x13\x03\x01\0" }, - { 0x1f4d, "\x03\x9f\x03\x14\x03\x01\0" }, - { 0x1f50, "\x03\xc5\x03\x13\0" }, - { 0x1f51, "\x03\xc5\x03\x14\0" }, - { 0x1f52, "\x03\xc5\x03\x13\x03\x00\0" }, - { 0x1f53, "\x03\xc5\x03\x14\x03\x00\0" }, - { 0x1f54, "\x03\xc5\x03\x13\x03\x01\0" }, - { 0x1f55, "\x03\xc5\x03\x14\x03\x01\0" }, - { 0x1f56, "\x03\xc5\x03\x13\x03\x42\0" }, - { 0x1f57, "\x03\xc5\x03\x14\x03\x42\0" }, - { 0x1f59, "\x03\xa5\x03\x14\0" }, - { 0x1f5b, "\x03\xa5\x03\x14\x03\x00\0" }, - { 0x1f5d, "\x03\xa5\x03\x14\x03\x01\0" }, - { 0x1f5f, "\x03\xa5\x03\x14\x03\x42\0" }, - { 0x1f60, "\x03\xc9\x03\x13\0" }, - { 0x1f61, "\x03\xc9\x03\x14\0" }, - { 0x1f62, "\x03\xc9\x03\x13\x03\x00\0" }, - { 0x1f63, "\x03\xc9\x03\x14\x03\x00\0" }, - { 0x1f64, "\x03\xc9\x03\x13\x03\x01\0" }, - { 0x1f65, "\x03\xc9\x03\x14\x03\x01\0" }, - { 0x1f66, "\x03\xc9\x03\x13\x03\x42\0" }, - { 0x1f67, "\x03\xc9\x03\x14\x03\x42\0" }, - { 0x1f68, "\x03\xa9\x03\x13\0" }, - { 0x1f69, "\x03\xa9\x03\x14\0" }, - { 0x1f6a, "\x03\xa9\x03\x13\x03\x00\0" }, - { 0x1f6b, "\x03\xa9\x03\x14\x03\x00\0" }, - { 0x1f6c, "\x03\xa9\x03\x13\x03\x01\0" }, - { 0x1f6d, "\x03\xa9\x03\x14\x03\x01\0" }, - { 0x1f6e, "\x03\xa9\x03\x13\x03\x42\0" }, - { 0x1f6f, "\x03\xa9\x03\x14\x03\x42\0" }, - { 0x1f70, "\x03\xb1\x03\x00\0" }, - { 0x1f71, "\x03\xb1\x03\x01\0" }, - { 0x1f72, "\x03\xb5\x03\x00\0" }, - { 0x1f73, "\x03\xb5\x03\x01\0" }, - { 0x1f74, "\x03\xb7\x03\x00\0" }, - { 0x1f75, "\x03\xb7\x03\x01\0" }, - { 0x1f76, "\x03\xb9\x03\x00\0" }, - { 0x1f77, "\x03\xb9\x03\x01\0" }, - { 0x1f78, "\x03\xbf\x03\x00\0" }, - { 0x1f79, "\x03\xbf\x03\x01\0" }, - { 0x1f7a, "\x03\xc5\x03\x00\0" }, - { 0x1f7b, "\x03\xc5\x03\x01\0" }, - { 0x1f7c, "\x03\xc9\x03\x00\0" }, - { 0x1f7d, "\x03\xc9\x03\x01\0" }, - { 0x1f80, "\x03\xb1\x03\x13\x03\x45\0" }, - { 0x1f81, "\x03\xb1\x03\x14\x03\x45\0" }, - { 0x1f82, "\x03\xb1\x03\x13\x03\x00\x03\x45\0" }, - { 0x1f83, "\x03\xb1\x03\x14\x03\x00\x03\x45\0" }, - { 0x1f84, "\x03\xb1\x03\x13\x03\x01\x03\x45\0" }, - { 0x1f85, "\x03\xb1\x03\x14\x03\x01\x03\x45\0" }, - { 0x1f86, "\x03\xb1\x03\x13\x03\x42\x03\x45\0" }, - { 0x1f87, "\x03\xb1\x03\x14\x03\x42\x03\x45\0" }, - { 0x1f88, "\x03\x91\x03\x13\x03\x45\0" }, - { 0x1f89, "\x03\x91\x03\x14\x03\x45\0" }, - { 0x1f8a, "\x03\x91\x03\x13\x03\x00\x03\x45\0" }, - { 0x1f8b, "\x03\x91\x03\x14\x03\x00\x03\x45\0" }, - { 0x1f8c, "\x03\x91\x03\x13\x03\x01\x03\x45\0" }, - { 0x1f8d, "\x03\x91\x03\x14\x03\x01\x03\x45\0" }, - { 0x1f8e, "\x03\x91\x03\x13\x03\x42\x03\x45\0" }, - { 0x1f8f, "\x03\x91\x03\x14\x03\x42\x03\x45\0" }, - { 0x1f90, "\x03\xb7\x03\x13\x03\x45\0" }, - { 0x1f91, "\x03\xb7\x03\x14\x03\x45\0" }, - { 0x1f92, "\x03\xb7\x03\x13\x03\x00\x03\x45\0" }, - { 0x1f93, "\x03\xb7\x03\x14\x03\x00\x03\x45\0" }, - { 0x1f94, "\x03\xb7\x03\x13\x03\x01\x03\x45\0" }, - { 0x1f95, "\x03\xb7\x03\x14\x03\x01\x03\x45\0" }, - { 0x1f96, "\x03\xb7\x03\x13\x03\x42\x03\x45\0" }, - { 0x1f97, "\x03\xb7\x03\x14\x03\x42\x03\x45\0" }, - { 0x1f98, "\x03\x97\x03\x13\x03\x45\0" }, - { 0x1f99, "\x03\x97\x03\x14\x03\x45\0" }, - { 0x1f9a, "\x03\x97\x03\x13\x03\x00\x03\x45\0" }, - { 0x1f9b, "\x03\x97\x03\x14\x03\x00\x03\x45\0" }, - { 0x1f9c, "\x03\x97\x03\x13\x03\x01\x03\x45\0" }, - { 0x1f9d, "\x03\x97\x03\x14\x03\x01\x03\x45\0" }, - { 0x1f9e, "\x03\x97\x03\x13\x03\x42\x03\x45\0" }, - { 0x1f9f, "\x03\x97\x03\x14\x03\x42\x03\x45\0" }, - { 0x1fa0, "\x03\xc9\x03\x13\x03\x45\0" }, - { 0x1fa1, "\x03\xc9\x03\x14\x03\x45\0" }, - { 0x1fa2, "\x03\xc9\x03\x13\x03\x00\x03\x45\0" }, - { 0x1fa3, "\x03\xc9\x03\x14\x03\x00\x03\x45\0" }, - { 0x1fa4, "\x03\xc9\x03\x13\x03\x01\x03\x45\0" }, - { 0x1fa5, "\x03\xc9\x03\x14\x03\x01\x03\x45\0" }, - { 0x1fa6, "\x03\xc9\x03\x13\x03\x42\x03\x45\0" }, - { 0x1fa7, "\x03\xc9\x03\x14\x03\x42\x03\x45\0" }, - { 0x1fa8, "\x03\xa9\x03\x13\x03\x45\0" }, - { 0x1fa9, "\x03\xa9\x03\x14\x03\x45\0" }, - { 0x1faa, "\x03\xa9\x03\x13\x03\x00\x03\x45\0" }, - { 0x1fab, "\x03\xa9\x03\x14\x03\x00\x03\x45\0" }, - { 0x1fac, "\x03\xa9\x03\x13\x03\x01\x03\x45\0" }, - { 0x1fad, "\x03\xa9\x03\x14\x03\x01\x03\x45\0" }, - { 0x1fae, "\x03\xa9\x03\x13\x03\x42\x03\x45\0" }, - { 0x1faf, "\x03\xa9\x03\x14\x03\x42\x03\x45\0" }, - { 0x1fb0, "\x03\xb1\x03\x06\0" }, - { 0x1fb1, "\x03\xb1\x03\x04\0" }, - { 0x1fb2, "\x03\xb1\x03\x00\x03\x45\0" }, - { 0x1fb3, "\x03\xb1\x03\x45\0" }, - { 0x1fb4, "\x03\xb1\x03\x01\x03\x45\0" }, - { 0x1fb6, "\x03\xb1\x03\x42\0" }, - { 0x1fb7, "\x03\xb1\x03\x42\x03\x45\0" }, - { 0x1fb8, "\x03\x91\x03\x06\0" }, - { 0x1fb9, "\x03\x91\x03\x04\0" }, - { 0x1fba, "\x03\x91\x03\x00\0" }, - { 0x1fbb, "\x03\x91\x03\x01\0" }, - { 0x1fbc, "\x03\x91\x03\x45\0" }, - { 0x1fbe, "\x03\xb9\0" }, - { 0x1fc1, "\x00\xa8\x03\x42\0" }, - { 0x1fc2, "\x03\xb7\x03\x00\x03\x45\0" }, - { 0x1fc3, "\x03\xb7\x03\x45\0" }, - { 0x1fc4, "\x03\xb7\x03\x01\x03\x45\0" }, - { 0x1fc6, "\x03\xb7\x03\x42\0" }, - { 0x1fc7, "\x03\xb7\x03\x42\x03\x45\0" }, - { 0x1fc8, "\x03\x95\x03\x00\0" }, - { 0x1fc9, "\x03\x95\x03\x01\0" }, - { 0x1fca, "\x03\x97\x03\x00\0" }, - { 0x1fcb, "\x03\x97\x03\x01\0" }, - { 0x1fcc, "\x03\x97\x03\x45\0" }, - { 0x1fcd, "\x1f\xbf\x03\x00\0" }, - { 0x1fce, "\x1f\xbf\x03\x01\0" }, - { 0x1fcf, "\x1f\xbf\x03\x42\0" }, - { 0x1fd0, "\x03\xb9\x03\x06\0" }, - { 0x1fd1, "\x03\xb9\x03\x04\0" }, - { 0x1fd2, "\x03\xb9\x03\x08\x03\x00\0" }, - { 0x1fd3, "\x03\xb9\x03\x08\x03\x01\0" }, - { 0x1fd6, "\x03\xb9\x03\x42\0" }, - { 0x1fd7, "\x03\xb9\x03\x08\x03\x42\0" }, - { 0x1fd8, "\x03\x99\x03\x06\0" }, - { 0x1fd9, "\x03\x99\x03\x04\0" }, - { 0x1fda, "\x03\x99\x03\x00\0" }, - { 0x1fdb, "\x03\x99\x03\x01\0" }, - { 0x1fdd, "\x1f\xfe\x03\x00\0" }, - { 0x1fde, "\x1f\xfe\x03\x01\0" }, - { 0x1fdf, "\x1f\xfe\x03\x42\0" }, - { 0x1fe0, "\x03\xc5\x03\x06\0" }, - { 0x1fe1, "\x03\xc5\x03\x04\0" }, - { 0x1fe2, "\x03\xc5\x03\x08\x03\x00\0" }, - { 0x1fe3, "\x03\xc5\x03\x08\x03\x01\0" }, - { 0x1fe4, "\x03\xc1\x03\x13\0" }, - { 0x1fe5, "\x03\xc1\x03\x14\0" }, - { 0x1fe6, "\x03\xc5\x03\x42\0" }, - { 0x1fe7, "\x03\xc5\x03\x08\x03\x42\0" }, - { 0x1fe8, "\x03\xa5\x03\x06\0" }, - { 0x1fe9, "\x03\xa5\x03\x04\0" }, - { 0x1fea, "\x03\xa5\x03\x00\0" }, - { 0x1feb, "\x03\xa5\x03\x01\0" }, - { 0x1fec, "\x03\xa1\x03\x14\0" }, - { 0x1fed, "\x00\xa8\x03\x00\0" }, - { 0x1fee, "\x00\xa8\x03\x01\0" }, - { 0x1fef, "\x00\x60\0" }, - { 0x1ff2, "\x03\xc9\x03\x00\x03\x45\0" }, - { 0x1ff3, "\x03\xc9\x03\x45\0" }, - { 0x1ff4, "\x03\xc9\x03\x01\x03\x45\0" }, - { 0x1ff6, "\x03\xc9\x03\x42\0" }, - { 0x1ff7, "\x03\xc9\x03\x42\x03\x45\0" }, - { 0x1ff8, "\x03\x9f\x03\x00\0" }, - { 0x1ff9, "\x03\x9f\x03\x01\0" }, - { 0x1ffa, "\x03\xa9\x03\x00\0" }, - { 0x1ffb, "\x03\xa9\x03\x01\0" }, - { 0x1ffc, "\x03\xa9\x03\x45\0" }, - { 0x1ffd, "\x00\xb4\0" }, - { 0x2000, "\x20\x02\0" }, - { 0x2001, "\x20\x03\0" }, - { 0x2126, "\x03\xa9\0" }, - { 0x212a, "\x00\x4b\0" }, - { 0x212b, "\x00\x41\x03\x0a\0" }, - { 0x219a, "\x21\x90\x03\x38\0" }, - { 0x219b, "\x21\x92\x03\x38\0" }, - { 0x21ae, "\x21\x94\x03\x38\0" }, - { 0x21cd, "\x21\xd0\x03\x38\0" }, - { 0x21ce, "\x21\xd4\x03\x38\0" }, - { 0x21cf, "\x21\xd2\x03\x38\0" }, - { 0x2204, "\x22\x03\x03\x38\0" }, - { 0x2209, "\x22\x08\x03\x38\0" }, - { 0x220c, "\x22\x0b\x03\x38\0" }, - { 0x2224, "\x22\x23\x03\x38\0" }, - { 0x2226, "\x22\x25\x03\x38\0" }, - { 0x2241, "\x22\x3c\x03\x38\0" }, - { 0x2244, "\x22\x43\x03\x38\0" }, - { 0x2247, "\x22\x45\x03\x38\0" }, - { 0x2249, "\x22\x48\x03\x38\0" }, - { 0x2260, "\x00\x3d\x03\x38\0" }, - { 0x2262, "\x22\x61\x03\x38\0" }, - { 0x226d, "\x22\x4d\x03\x38\0" }, - { 0x226e, "\x00\x3c\x03\x38\0" }, - { 0x226f, "\x00\x3e\x03\x38\0" }, - { 0x2270, "\x22\x64\x03\x38\0" }, - { 0x2271, "\x22\x65\x03\x38\0" }, - { 0x2274, "\x22\x72\x03\x38\0" }, - { 0x2275, "\x22\x73\x03\x38\0" }, - { 0x2278, "\x22\x76\x03\x38\0" }, - { 0x2279, "\x22\x77\x03\x38\0" }, - { 0x2280, "\x22\x7a\x03\x38\0" }, - { 0x2281, "\x22\x7b\x03\x38\0" }, - { 0x2284, "\x22\x82\x03\x38\0" }, - { 0x2285, "\x22\x83\x03\x38\0" }, - { 0x2288, "\x22\x86\x03\x38\0" }, - { 0x2289, "\x22\x87\x03\x38\0" }, - { 0x22ac, "\x22\xa2\x03\x38\0" }, - { 0x22ad, "\x22\xa8\x03\x38\0" }, - { 0x22ae, "\x22\xa9\x03\x38\0" }, - { 0x22af, "\x22\xab\x03\x38\0" }, - { 0x22e0, "\x22\x7c\x03\x38\0" }, - { 0x22e1, "\x22\x7d\x03\x38\0" }, - { 0x22e2, "\x22\x91\x03\x38\0" }, - { 0x22e3, "\x22\x92\x03\x38\0" }, - { 0x22ea, "\x22\xb2\x03\x38\0" }, - { 0x22eb, "\x22\xb3\x03\x38\0" }, - { 0x22ec, "\x22\xb4\x03\x38\0" }, - { 0x22ed, "\x22\xb5\x03\x38\0" }, - { 0x2329, "\x30\x08\0" }, - { 0x232a, "\x30\x09\0" }, - { 0x304c, "\x30\x4b\x30\x99\0" }, - { 0x304e, "\x30\x4d\x30\x99\0" }, - { 0x3050, "\x30\x4f\x30\x99\0" }, - { 0x3052, "\x30\x51\x30\x99\0" }, - { 0x3054, "\x30\x53\x30\x99\0" }, - { 0x3056, "\x30\x55\x30\x99\0" }, - { 0x3058, "\x30\x57\x30\x99\0" }, - { 0x305a, "\x30\x59\x30\x99\0" }, - { 0x305c, "\x30\x5b\x30\x99\0" }, - { 0x305e, "\x30\x5d\x30\x99\0" }, - { 0x3060, "\x30\x5f\x30\x99\0" }, - { 0x3062, "\x30\x61\x30\x99\0" }, - { 0x3065, "\x30\x64\x30\x99\0" }, - { 0x3067, "\x30\x66\x30\x99\0" }, - { 0x3069, "\x30\x68\x30\x99\0" }, - { 0x3070, "\x30\x6f\x30\x99\0" }, - { 0x3071, "\x30\x6f\x30\x9a\0" }, - { 0x3073, "\x30\x72\x30\x99\0" }, - { 0x3074, "\x30\x72\x30\x9a\0" }, - { 0x3076, "\x30\x75\x30\x99\0" }, - { 0x3077, "\x30\x75\x30\x9a\0" }, - { 0x3079, "\x30\x78\x30\x99\0" }, - { 0x307a, "\x30\x78\x30\x9a\0" }, - { 0x307c, "\x30\x7b\x30\x99\0" }, - { 0x307d, "\x30\x7b\x30\x9a\0" }, - { 0x3094, "\x30\x46\x30\x99\0" }, - { 0x309e, "\x30\x9d\x30\x99\0" }, - { 0x30ac, "\x30\xab\x30\x99\0" }, - { 0x30ae, "\x30\xad\x30\x99\0" }, - { 0x30b0, "\x30\xaf\x30\x99\0" }, - { 0x30b2, "\x30\xb1\x30\x99\0" }, - { 0x30b4, "\x30\xb3\x30\x99\0" }, - { 0x30b6, "\x30\xb5\x30\x99\0" }, - { 0x30b8, "\x30\xb7\x30\x99\0" }, - { 0x30ba, "\x30\xb9\x30\x99\0" }, - { 0x30bc, "\x30\xbb\x30\x99\0" }, - { 0x30be, "\x30\xbd\x30\x99\0" }, - { 0x30c0, "\x30\xbf\x30\x99\0" }, - { 0x30c2, "\x30\xc1\x30\x99\0" }, - { 0x30c5, "\x30\xc4\x30\x99\0" }, - { 0x30c7, "\x30\xc6\x30\x99\0" }, - { 0x30c9, "\x30\xc8\x30\x99\0" }, - { 0x30d0, "\x30\xcf\x30\x99\0" }, - { 0x30d1, "\x30\xcf\x30\x9a\0" }, - { 0x30d3, "\x30\xd2\x30\x99\0" }, - { 0x30d4, "\x30\xd2\x30\x9a\0" }, - { 0x30d6, "\x30\xd5\x30\x99\0" }, - { 0x30d7, "\x30\xd5\x30\x9a\0" }, - { 0x30d9, "\x30\xd8\x30\x99\0" }, - { 0x30da, "\x30\xd8\x30\x9a\0" }, - { 0x30dc, "\x30\xdb\x30\x99\0" }, - { 0x30dd, "\x30\xdb\x30\x9a\0" }, - { 0x30f4, "\x30\xa6\x30\x99\0" }, - { 0x30f7, "\x30\xef\x30\x99\0" }, - { 0x30f8, "\x30\xf0\x30\x99\0" }, - { 0x30f9, "\x30\xf1\x30\x99\0" }, - { 0x30fa, "\x30\xf2\x30\x99\0" }, - { 0x30fe, "\x30\xfd\x30\x99\0" }, - { 0xf900, "\x8c\x48\0" }, - { 0xf901, "\x66\xf4\0" }, - { 0xf902, "\x8e\xca\0" }, - { 0xf903, "\x8c\xc8\0" }, - { 0xf904, "\x6e\xd1\0" }, - { 0xf905, "\x4e\x32\0" }, - { 0xf906, "\x53\xe5\0" }, - { 0xf907, "\x9f\x9c\0" }, - { 0xf908, "\x9f\x9c\0" }, - { 0xf909, "\x59\x51\0" }, - { 0xf90a, "\x91\xd1\0" }, - { 0xf90b, "\x55\x87\0" }, - { 0xf90c, "\x59\x48\0" }, - { 0xf90d, "\x61\xf6\0" }, - { 0xf90e, "\x76\x69\0" }, - { 0xf90f, "\x7f\x85\0" }, - { 0xf910, "\x86\x3f\0" }, - { 0xf911, "\x87\xba\0" }, - { 0xf912, "\x88\xf8\0" }, - { 0xf913, "\x90\x8f\0" }, - { 0xf914, "\x6a\x02\0" }, - { 0xf915, "\x6d\x1b\0" }, - { 0xf916, "\x70\xd9\0" }, - { 0xf917, "\x73\xde\0" }, - { 0xf918, "\x84\x3d\0" }, - { 0xf919, "\x91\x6a\0" }, - { 0xf91a, "\x99\xf1\0" }, - { 0xf91b, "\x4e\x82\0" }, - { 0xf91c, "\x53\x75\0" }, - { 0xf91d, "\x6b\x04\0" }, - { 0xf91e, "\x72\x1b\0" }, - { 0xf91f, "\x86\x2d\0" }, - { 0xf920, "\x9e\x1e\0" }, - { 0xf921, "\x5d\x50\0" }, - { 0xf922, "\x6f\xeb\0" }, - { 0xf923, "\x85\xcd\0" }, - { 0xf924, "\x89\x64\0" }, - { 0xf925, "\x62\xc9\0" }, - { 0xf926, "\x81\xd8\0" }, - { 0xf927, "\x88\x1f\0" }, - { 0xf928, "\x5e\xca\0" }, - { 0xf929, "\x67\x17\0" }, - { 0xf92a, "\x6d\x6a\0" }, - { 0xf92b, "\x72\xfc\0" }, - { 0xf92c, "\x90\xce\0" }, - { 0xf92d, "\x4f\x86\0" }, - { 0xf92e, "\x51\xb7\0" }, - { 0xf92f, "\x52\xde\0" }, - { 0xf930, "\x64\xc4\0" }, - { 0xf931, "\x6a\xd3\0" }, - { 0xf932, "\x72\x10\0" }, - { 0xf933, "\x76\xe7\0" }, - { 0xf934, "\x80\x01\0" }, - { 0xf935, "\x86\x06\0" }, - { 0xf936, "\x86\x5c\0" }, - { 0xf937, "\x8d\xef\0" }, - { 0xf938, "\x97\x32\0" }, - { 0xf939, "\x9b\x6f\0" }, - { 0xf93a, "\x9d\xfa\0" }, - { 0xf93b, "\x78\x8c\0" }, - { 0xf93c, "\x79\x7f\0" }, - { 0xf93d, "\x7d\xa0\0" }, - { 0xf93e, "\x83\xc9\0" }, - { 0xf93f, "\x93\x04\0" }, - { 0xf940, "\x9e\x7f\0" }, - { 0xf941, "\x8a\xd6\0" }, - { 0xf942, "\x58\xdf\0" }, - { 0xf943, "\x5f\x04\0" }, - { 0xf944, "\x7c\x60\0" }, - { 0xf945, "\x80\x7e\0" }, - { 0xf946, "\x72\x62\0" }, - { 0xf947, "\x78\xca\0" }, - { 0xf948, "\x8c\xc2\0" }, - { 0xf949, "\x96\xf7\0" }, - { 0xf94a, "\x58\xd8\0" }, - { 0xf94b, "\x5c\x62\0" }, - { 0xf94c, "\x6a\x13\0" }, - { 0xf94d, "\x6d\xda\0" }, - { 0xf94e, "\x6f\x0f\0" }, - { 0xf94f, "\x7d\x2f\0" }, - { 0xf950, "\x7e\x37\0" }, - { 0xf951, "\x96\xfb\0" }, - { 0xf952, "\x52\xd2\0" }, - { 0xf953, "\x80\x8b\0" }, - { 0xf954, "\x51\xdc\0" }, - { 0xf955, "\x51\xcc\0" }, - { 0xf956, "\x7a\x1c\0" }, - { 0xf957, "\x7d\xbe\0" }, - { 0xf958, "\x83\xf1\0" }, - { 0xf959, "\x96\x75\0" }, - { 0xf95a, "\x8b\x80\0" }, - { 0xf95b, "\x62\xcf\0" }, - { 0xf95c, "\x6a\x02\0" }, - { 0xf95d, "\x8a\xfe\0" }, - { 0xf95e, "\x4e\x39\0" }, - { 0xf95f, "\x5b\xe7\0" }, - { 0xf960, "\x60\x12\0" }, - { 0xf961, "\x73\x87\0" }, - { 0xf962, "\x75\x70\0" }, - { 0xf963, "\x53\x17\0" }, - { 0xf964, "\x78\xfb\0" }, - { 0xf965, "\x4f\xbf\0" }, - { 0xf966, "\x5f\xa9\0" }, - { 0xf967, "\x4e\x0d\0" }, - { 0xf968, "\x6c\xcc\0" }, - { 0xf969, "\x65\x78\0" }, - { 0xf96a, "\x7d\x22\0" }, - { 0xf96b, "\x53\xc3\0" }, - { 0xf96c, "\x58\x5e\0" }, - { 0xf96d, "\x77\x01\0" }, - { 0xf96e, "\x84\x49\0" }, - { 0xf96f, "\x8a\xaa\0" }, - { 0xf970, "\x6b\xba\0" }, - { 0xf971, "\x8f\xb0\0" }, - { 0xf972, "\x6c\x88\0" }, - { 0xf973, "\x62\xfe\0" }, - { 0xf974, "\x82\xe5\0" }, - { 0xf975, "\x63\xa0\0" }, - { 0xf976, "\x75\x65\0" }, - { 0xf977, "\x4e\xae\0" }, - { 0xf978, "\x51\x69\0" }, - { 0xf979, "\x51\xc9\0" }, - { 0xf97a, "\x68\x81\0" }, - { 0xf97b, "\x7c\xe7\0" }, - { 0xf97c, "\x82\x6f\0" }, - { 0xf97d, "\x8a\xd2\0" }, - { 0xf97e, "\x91\xcf\0" }, - { 0xf97f, "\x52\xf5\0" }, - { 0xf980, "\x54\x42\0" }, - { 0xf981, "\x59\x73\0" }, - { 0xf982, "\x5e\xec\0" }, - { 0xf983, "\x65\xc5\0" }, - { 0xf984, "\x6f\xfe\0" }, - { 0xf985, "\x79\x2a\0" }, - { 0xf986, "\x95\xad\0" }, - { 0xf987, "\x9a\x6a\0" }, - { 0xf988, "\x9e\x97\0" }, - { 0xf989, "\x9e\xce\0" }, - { 0xf98a, "\x52\x9b\0" }, - { 0xf98b, "\x66\xc6\0" }, - { 0xf98c, "\x6b\x77\0" }, - { 0xf98d, "\x8f\x62\0" }, - { 0xf98e, "\x5e\x74\0" }, - { 0xf98f, "\x61\x90\0" }, - { 0xf990, "\x62\x00\0" }, - { 0xf991, "\x64\x9a\0" }, - { 0xf992, "\x6f\x23\0" }, - { 0xf993, "\x71\x49\0" }, - { 0xf994, "\x74\x89\0" }, - { 0xf995, "\x79\xca\0" }, - { 0xf996, "\x7d\xf4\0" }, - { 0xf997, "\x80\x6f\0" }, - { 0xf998, "\x8f\x26\0" }, - { 0xf999, "\x84\xee\0" }, - { 0xf99a, "\x90\x23\0" }, - { 0xf99b, "\x93\x4a\0" }, - { 0xf99c, "\x52\x17\0" }, - { 0xf99d, "\x52\xa3\0" }, - { 0xf99e, "\x54\xbd\0" }, - { 0xf99f, "\x70\xc8\0" }, - { 0xf9a0, "\x88\xc2\0" }, - { 0xf9a1, "\x8a\xaa\0" }, - { 0xf9a2, "\x5e\xc9\0" }, - { 0xf9a3, "\x5f\xf5\0" }, - { 0xf9a4, "\x63\x7b\0" }, - { 0xf9a5, "\x6b\xae\0" }, - { 0xf9a6, "\x7c\x3e\0" }, - { 0xf9a7, "\x73\x75\0" }, - { 0xf9a8, "\x4e\xe4\0" }, - { 0xf9a9, "\x56\xf9\0" }, - { 0xf9aa, "\x5b\xe7\0" }, - { 0xf9ab, "\x5d\xba\0" }, - { 0xf9ac, "\x60\x1c\0" }, - { 0xf9ad, "\x73\xb2\0" }, - { 0xf9ae, "\x74\x69\0" }, - { 0xf9af, "\x7f\x9a\0" }, - { 0xf9b0, "\x80\x46\0" }, - { 0xf9b1, "\x92\x34\0" }, - { 0xf9b2, "\x96\xf6\0" }, - { 0xf9b3, "\x97\x48\0" }, - { 0xf9b4, "\x98\x18\0" }, - { 0xf9b5, "\x4f\x8b\0" }, - { 0xf9b6, "\x79\xae\0" }, - { 0xf9b7, "\x91\xb4\0" }, - { 0xf9b8, "\x96\xb8\0" }, - { 0xf9b9, "\x60\xe1\0" }, - { 0xf9ba, "\x4e\x86\0" }, - { 0xf9bb, "\x50\xda\0" }, - { 0xf9bc, "\x5b\xee\0" }, - { 0xf9bd, "\x5c\x3f\0" }, - { 0xf9be, "\x65\x99\0" }, - { 0xf9bf, "\x6a\x02\0" }, - { 0xf9c0, "\x71\xce\0" }, - { 0xf9c1, "\x76\x42\0" }, - { 0xf9c2, "\x84\xfc\0" }, - { 0xf9c3, "\x90\x7c\0" }, - { 0xf9c4, "\x9f\x8d\0" }, - { 0xf9c5, "\x66\x88\0" }, - { 0xf9c6, "\x96\x2e\0" }, - { 0xf9c7, "\x52\x89\0" }, - { 0xf9c8, "\x67\x7b\0" }, - { 0xf9c9, "\x67\xf3\0" }, - { 0xf9ca, "\x6d\x41\0" }, - { 0xf9cb, "\x6e\x9c\0" }, - { 0xf9cc, "\x74\x09\0" }, - { 0xf9cd, "\x75\x59\0" }, - { 0xf9ce, "\x78\x6b\0" }, - { 0xf9cf, "\x7d\x10\0" }, - { 0xf9d0, "\x98\x5e\0" }, - { 0xf9d1, "\x51\x6d\0" }, - { 0xf9d2, "\x62\x2e\0" }, - { 0xf9d3, "\x96\x78\0" }, - { 0xf9d4, "\x50\x2b\0" }, - { 0xf9d5, "\x5d\x19\0" }, - { 0xf9d6, "\x6d\xea\0" }, - { 0xf9d7, "\x8f\x2a\0" }, - { 0xf9d8, "\x5f\x8b\0" }, - { 0xf9d9, "\x61\x44\0" }, - { 0xf9da, "\x68\x17\0" }, - { 0xf9db, "\x73\x87\0" }, - { 0xf9dc, "\x96\x86\0" }, - { 0xf9dd, "\x52\x29\0" }, - { 0xf9de, "\x54\x0f\0" }, - { 0xf9df, "\x5c\x65\0" }, - { 0xf9e0, "\x66\x13\0" }, - { 0xf9e1, "\x67\x4e\0" }, - { 0xf9e2, "\x68\xa8\0" }, - { 0xf9e3, "\x6c\xe5\0" }, - { 0xf9e4, "\x74\x06\0" }, - { 0xf9e5, "\x75\xe2\0" }, - { 0xf9e6, "\x7f\x79\0" }, - { 0xf9e7, "\x88\xcf\0" }, - { 0xf9e8, "\x88\xe1\0" }, - { 0xf9e9, "\x91\xcc\0" }, - { 0xf9ea, "\x96\xe2\0" }, - { 0xf9eb, "\x53\x3f\0" }, - { 0xf9ec, "\x6e\xba\0" }, - { 0xf9ed, "\x54\x1d\0" }, - { 0xf9ee, "\x71\xd0\0" }, - { 0xf9ef, "\x74\x98\0" }, - { 0xf9f0, "\x85\xfa\0" }, - { 0xf9f1, "\x96\xa3\0" }, - { 0xf9f2, "\x9c\x57\0" }, - { 0xf9f3, "\x9e\x9f\0" }, - { 0xf9f4, "\x67\x97\0" }, - { 0xf9f5, "\x6d\xcb\0" }, - { 0xf9f6, "\x81\xe8\0" }, - { 0xf9f7, "\x7a\xcb\0" }, - { 0xf9f8, "\x7b\x20\0" }, - { 0xf9f9, "\x7c\x92\0" }, - { 0xf9fa, "\x72\xc0\0" }, - { 0xf9fb, "\x70\x99\0" }, - { 0xf9fc, "\x8b\x58\0" }, - { 0xf9fd, "\x4e\xc0\0" }, - { 0xf9fe, "\x83\x36\0" }, - { 0xf9ff, "\x52\x3a\0" }, - { 0xfa00, "\x52\x07\0" }, - { 0xfa01, "\x5e\xa6\0" }, - { 0xfa02, "\x62\xd3\0" }, - { 0xfa03, "\x7c\xd6\0" }, - { 0xfa04, "\x5b\x85\0" }, - { 0xfa05, "\x6d\x1e\0" }, - { 0xfa06, "\x66\xb4\0" }, - { 0xfa07, "\x8f\x3b\0" }, - { 0xfa08, "\x88\x4c\0" }, - { 0xfa09, "\x96\x4d\0" }, - { 0xfa0a, "\x89\x8b\0" }, - { 0xfa0b, "\x5e\xd3\0" }, - { 0xfa0c, "\x51\x40\0" }, - { 0xfa0d, "\x55\xc0\0" }, - { 0xfa10, "\x58\x5a\0" }, - { 0xfa12, "\x66\x74\0" }, - { 0xfa15, "\x51\xde\0" }, - { 0xfa16, "\x73\x2a\0" }, - { 0xfa17, "\x76\xca\0" }, - { 0xfa18, "\x79\x3c\0" }, - { 0xfa19, "\x79\x5e\0" }, - { 0xfa1a, "\x79\x65\0" }, - { 0xfa1b, "\x79\x8f\0" }, - { 0xfa1c, "\x97\x56\0" }, - { 0xfa1d, "\x7c\xbe\0" }, - { 0xfa1e, "\x7f\xbd\0" }, - { 0xfa20, "\x86\x12\0" }, - { 0xfa22, "\x8a\xf8\0" }, - { 0xfa25, "\x90\x38\0" }, - { 0xfa26, "\x90\xfd\0" }, - { 0xfa2a, "\x98\xef\0" }, - { 0xfa2b, "\x98\xfc\0" }, - { 0xfa2c, "\x99\x28\0" }, - { 0xfa2d, "\x9d\xb4\0" }, - { 0xfb1d, "\x05\xd9\x05\xb4\0" }, - { 0xfb1f, "\x05\xf2\x05\xb7\0" }, - { 0xfb2a, "\x05\xe9\x05\xc1\0" }, - { 0xfb2b, "\x05\xe9\x05\xc2\0" }, - { 0xfb2c, "\x05\xe9\x05\xbc\x05\xc1\0" }, - { 0xfb2d, "\x05\xe9\x05\xbc\x05\xc2\0" }, - { 0xfb2e, "\x05\xd0\x05\xb7\0" }, - { 0xfb2f, "\x05\xd0\x05\xb8\0" }, - { 0xfb30, "\x05\xd0\x05\xbc\0" }, - { 0xfb31, "\x05\xd1\x05\xbc\0" }, - { 0xfb32, "\x05\xd2\x05\xbc\0" }, - { 0xfb33, "\x05\xd3\x05\xbc\0" }, - { 0xfb34, "\x05\xd4\x05\xbc\0" }, - { 0xfb35, "\x05\xd5\x05\xbc\0" }, - { 0xfb36, "\x05\xd6\x05\xbc\0" }, - { 0xfb38, "\x05\xd8\x05\xbc\0" }, - { 0xfb39, "\x05\xd9\x05\xbc\0" }, - { 0xfb3a, "\x05\xda\x05\xbc\0" }, - { 0xfb3b, "\x05\xdb\x05\xbc\0" }, - { 0xfb3c, "\x05\xdc\x05\xbc\0" }, - { 0xfb3e, "\x05\xde\x05\xbc\0" }, - { 0xfb40, "\x05\xe0\x05\xbc\0" }, - { 0xfb41, "\x05\xe1\x05\xbc\0" }, - { 0xfb43, "\x05\xe3\x05\xbc\0" }, - { 0xfb44, "\x05\xe4\x05\xbc\0" }, - { 0xfb46, "\x05\xe6\x05\xbc\0" }, - { 0xfb47, "\x05\xe7\x05\xbc\0" }, - { 0xfb48, "\x05\xe8\x05\xbc\0" }, - { 0xfb49, "\x05\xe9\x05\xbc\0" }, - { 0xfb4a, "\x05\xea\x05\xbc\0" }, - { 0xfb4b, "\x05\xd5\x05\xb9\0" }, - { 0xfb4c, "\x05\xd1\x05\xbf\0" }, - { 0xfb4d, "\x05\xdb\x05\xbf\0" }, - { 0xfb4e, "\x05\xe4\x05\xbf\0" } + { 0x00a0, 255, 0, "\x00\x20\0" }, + { 0x00a8, 255, 0, "\x00\x20\x03\x08\0" }, + { 0x00aa, 255, 0, "\x00\x61\0" }, + { 0x00af, 255, 0, "\x00\x20\x03\x04\0" }, + { 0x00b2, 255, 0, "\x00\x32\0" }, + { 0x00b3, 255, 0, "\x00\x33\0" }, + { 0x00b4, 255, 0, "\x00\x20\x03\x01\0" }, + { 0x00b5, 255, 0, "\x03\xbc\0" }, + { 0x00b8, 255, 0, "\x00\x20\x03\x27\0" }, + { 0x00b9, 255, 0, "\x00\x31\0" }, + { 0x00ba, 255, 0, "\x00\x6f\0" }, + { 0x00bc, 255, 0, "\x00\x31\x20\x44\x00\x34\0" }, + { 0x00bd, 255, 0, "\x00\x31\x20\x44\x00\x32\0" }, + { 0x00be, 255, 0, "\x00\x33\x20\x44\x00\x34\0" }, + { 0x00c0, 0, 255, "\x00\x41\x03\x00\0" }, + { 0x00c1, 0, 255, "\x00\x41\x03\x01\0" }, + { 0x00c2, 0, 255, "\x00\x41\x03\x02\0" }, + { 0x00c3, 0, 255, "\x00\x41\x03\x03\0" }, + { 0x00c4, 0, 255, "\x00\x41\x03\x08\0" }, + { 0x00c5, 0, 255, "\x00\x41\x03\x0a\0" }, + { 0x00c7, 0, 255, "\x00\x43\x03\x27\0" }, + { 0x00c8, 0, 255, "\x00\x45\x03\x00\0" }, + { 0x00c9, 0, 255, "\x00\x45\x03\x01\0" }, + { 0x00ca, 0, 255, "\x00\x45\x03\x02\0" }, + { 0x00cb, 0, 255, "\x00\x45\x03\x08\0" }, + { 0x00cc, 0, 255, "\x00\x49\x03\x00\0" }, + { 0x00cd, 0, 255, "\x00\x49\x03\x01\0" }, + { 0x00ce, 0, 255, "\x00\x49\x03\x02\0" }, + { 0x00cf, 0, 255, "\x00\x49\x03\x08\0" }, + { 0x00d1, 0, 255, "\x00\x4e\x03\x03\0" }, + { 0x00d2, 0, 255, "\x00\x4f\x03\x00\0" }, + { 0x00d3, 0, 255, "\x00\x4f\x03\x01\0" }, + { 0x00d4, 0, 255, "\x00\x4f\x03\x02\0" }, + { 0x00d5, 0, 255, "\x00\x4f\x03\x03\0" }, + { 0x00d6, 0, 255, "\x00\x4f\x03\x08\0" }, + { 0x00d9, 0, 255, "\x00\x55\x03\x00\0" }, + { 0x00da, 0, 255, "\x00\x55\x03\x01\0" }, + { 0x00db, 0, 255, "\x00\x55\x03\x02\0" }, + { 0x00dc, 0, 255, "\x00\x55\x03\x08\0" }, + { 0x00dd, 0, 255, "\x00\x59\x03\x01\0" }, + { 0x00e0, 0, 255, "\x00\x61\x03\x00\0" }, + { 0x00e1, 0, 255, "\x00\x61\x03\x01\0" }, + { 0x00e2, 0, 255, "\x00\x61\x03\x02\0" }, + { 0x00e3, 0, 255, "\x00\x61\x03\x03\0" }, + { 0x00e4, 0, 255, "\x00\x61\x03\x08\0" }, + { 0x00e5, 0, 255, "\x00\x61\x03\x0a\0" }, + { 0x00e7, 0, 255, "\x00\x63\x03\x27\0" }, + { 0x00e8, 0, 255, "\x00\x65\x03\x00\0" }, + { 0x00e9, 0, 255, "\x00\x65\x03\x01\0" }, + { 0x00ea, 0, 255, "\x00\x65\x03\x02\0" }, + { 0x00eb, 0, 255, "\x00\x65\x03\x08\0" }, + { 0x00ec, 0, 255, "\x00\x69\x03\x00\0" }, + { 0x00ed, 0, 255, "\x00\x69\x03\x01\0" }, + { 0x00ee, 0, 255, "\x00\x69\x03\x02\0" }, + { 0x00ef, 0, 255, "\x00\x69\x03\x08\0" }, + { 0x00f1, 0, 255, "\x00\x6e\x03\x03\0" }, + { 0x00f2, 0, 255, "\x00\x6f\x03\x00\0" }, + { 0x00f3, 0, 255, "\x00\x6f\x03\x01\0" }, + { 0x00f4, 0, 255, "\x00\x6f\x03\x02\0" }, + { 0x00f5, 0, 255, "\x00\x6f\x03\x03\0" }, + { 0x00f6, 0, 255, "\x00\x6f\x03\x08\0" }, + { 0x00f9, 0, 255, "\x00\x75\x03\x00\0" }, + { 0x00fa, 0, 255, "\x00\x75\x03\x01\0" }, + { 0x00fb, 0, 255, "\x00\x75\x03\x02\0" }, + { 0x00fc, 0, 255, "\x00\x75\x03\x08\0" }, + { 0x00fd, 0, 255, "\x00\x79\x03\x01\0" }, + { 0x00ff, 0, 255, "\x00\x79\x03\x08\0" }, + { 0x0100, 0, 255, "\x00\x41\x03\x04\0" }, + { 0x0101, 0, 255, "\x00\x61\x03\x04\0" }, + { 0x0102, 0, 255, "\x00\x41\x03\x06\0" }, + { 0x0103, 0, 255, "\x00\x61\x03\x06\0" }, + { 0x0104, 0, 255, "\x00\x41\x03\x28\0" }, + { 0x0105, 0, 255, "\x00\x61\x03\x28\0" }, + { 0x0106, 0, 255, "\x00\x43\x03\x01\0" }, + { 0x0107, 0, 255, "\x00\x63\x03\x01\0" }, + { 0x0108, 0, 255, "\x00\x43\x03\x02\0" }, + { 0x0109, 0, 255, "\x00\x63\x03\x02\0" }, + { 0x010a, 0, 255, "\x00\x43\x03\x07\0" }, + { 0x010b, 0, 255, "\x00\x63\x03\x07\0" }, + { 0x010c, 0, 255, "\x00\x43\x03\x0c\0" }, + { 0x010d, 0, 255, "\x00\x63\x03\x0c\0" }, + { 0x010e, 0, 255, "\x00\x44\x03\x0c\0" }, + { 0x010f, 0, 255, "\x00\x64\x03\x0c\0" }, + { 0x0112, 0, 255, "\x00\x45\x03\x04\0" }, + { 0x0113, 0, 255, "\x00\x65\x03\x04\0" }, + { 0x0114, 0, 255, "\x00\x45\x03\x06\0" }, + { 0x0115, 0, 255, "\x00\x65\x03\x06\0" }, + { 0x0116, 0, 255, "\x00\x45\x03\x07\0" }, + { 0x0117, 0, 255, "\x00\x65\x03\x07\0" }, + { 0x0118, 0, 255, "\x00\x45\x03\x28\0" }, + { 0x0119, 0, 255, "\x00\x65\x03\x28\0" }, + { 0x011a, 0, 255, "\x00\x45\x03\x0c\0" }, + { 0x011b, 0, 255, "\x00\x65\x03\x0c\0" }, + { 0x011c, 0, 255, "\x00\x47\x03\x02\0" }, + { 0x011d, 0, 255, "\x00\x67\x03\x02\0" }, + { 0x011e, 0, 255, "\x00\x47\x03\x06\0" }, + { 0x011f, 0, 255, "\x00\x67\x03\x06\0" }, + { 0x0120, 0, 255, "\x00\x47\x03\x07\0" }, + { 0x0121, 0, 255, "\x00\x67\x03\x07\0" }, + { 0x0122, 0, 255, "\x00\x47\x03\x27\0" }, + { 0x0123, 0, 255, "\x00\x67\x03\x27\0" }, + { 0x0124, 0, 255, "\x00\x48\x03\x02\0" }, + { 0x0125, 0, 255, "\x00\x68\x03\x02\0" }, + { 0x0128, 0, 255, "\x00\x49\x03\x03\0" }, + { 0x0129, 0, 255, "\x00\x69\x03\x03\0" }, + { 0x012a, 0, 255, "\x00\x49\x03\x04\0" }, + { 0x012b, 0, 255, "\x00\x69\x03\x04\0" }, + { 0x012c, 0, 255, "\x00\x49\x03\x06\0" }, + { 0x012d, 0, 255, "\x00\x69\x03\x06\0" }, + { 0x012e, 0, 255, "\x00\x49\x03\x28\0" }, + { 0x012f, 0, 255, "\x00\x69\x03\x28\0" }, + { 0x0130, 0, 255, "\x00\x49\x03\x07\0" }, + { 0x0132, 255, 0, "\x00\x49\x00\x4a\0" }, + { 0x0133, 255, 0, "\x00\x69\x00\x6a\0" }, + { 0x0134, 0, 255, "\x00\x4a\x03\x02\0" }, + { 0x0135, 0, 255, "\x00\x6a\x03\x02\0" }, + { 0x0136, 0, 255, "\x00\x4b\x03\x27\0" }, + { 0x0137, 0, 255, "\x00\x6b\x03\x27\0" }, + { 0x0139, 0, 255, "\x00\x4c\x03\x01\0" }, + { 0x013a, 0, 255, "\x00\x6c\x03\x01\0" }, + { 0x013b, 0, 255, "\x00\x4c\x03\x27\0" }, + { 0x013c, 0, 255, "\x00\x6c\x03\x27\0" }, + { 0x013d, 0, 255, "\x00\x4c\x03\x0c\0" }, + { 0x013e, 0, 255, "\x00\x6c\x03\x0c\0" }, + { 0x013f, 255, 0, "\x00\x4c\x00\xb7\0" }, + { 0x0140, 255, 0, "\x00\x6c\x00\xb7\0" }, + { 0x0143, 0, 255, "\x00\x4e\x03\x01\0" }, + { 0x0144, 0, 255, "\x00\x6e\x03\x01\0" }, + { 0x0145, 0, 255, "\x00\x4e\x03\x27\0" }, + { 0x0146, 0, 255, "\x00\x6e\x03\x27\0" }, + { 0x0147, 0, 255, "\x00\x4e\x03\x0c\0" }, + { 0x0148, 0, 255, "\x00\x6e\x03\x0c\0" }, + { 0x0149, 255, 0, "\x02\xbc\x00\x6e\0" }, + { 0x014c, 0, 255, "\x00\x4f\x03\x04\0" }, + { 0x014d, 0, 255, "\x00\x6f\x03\x04\0" }, + { 0x014e, 0, 255, "\x00\x4f\x03\x06\0" }, + { 0x014f, 0, 255, "\x00\x6f\x03\x06\0" }, + { 0x0150, 0, 255, "\x00\x4f\x03\x0b\0" }, + { 0x0151, 0, 255, "\x00\x6f\x03\x0b\0" }, + { 0x0154, 0, 255, "\x00\x52\x03\x01\0" }, + { 0x0155, 0, 255, "\x00\x72\x03\x01\0" }, + { 0x0156, 0, 255, "\x00\x52\x03\x27\0" }, + { 0x0157, 0, 255, "\x00\x72\x03\x27\0" }, + { 0x0158, 0, 255, "\x00\x52\x03\x0c\0" }, + { 0x0159, 0, 255, "\x00\x72\x03\x0c\0" }, + { 0x015a, 0, 255, "\x00\x53\x03\x01\0" }, + { 0x015b, 0, 255, "\x00\x73\x03\x01\0" }, + { 0x015c, 0, 255, "\x00\x53\x03\x02\0" }, + { 0x015d, 0, 255, "\x00\x73\x03\x02\0" }, + { 0x015e, 0, 255, "\x00\x53\x03\x27\0" }, + { 0x015f, 0, 255, "\x00\x73\x03\x27\0" }, + { 0x0160, 0, 255, "\x00\x53\x03\x0c\0" }, + { 0x0161, 0, 255, "\x00\x73\x03\x0c\0" }, + { 0x0162, 0, 255, "\x00\x54\x03\x27\0" }, + { 0x0163, 0, 255, "\x00\x74\x03\x27\0" }, + { 0x0164, 0, 255, "\x00\x54\x03\x0c\0" }, + { 0x0165, 0, 255, "\x00\x74\x03\x0c\0" }, + { 0x0168, 0, 255, "\x00\x55\x03\x03\0" }, + { 0x0169, 0, 255, "\x00\x75\x03\x03\0" }, + { 0x016a, 0, 255, "\x00\x55\x03\x04\0" }, + { 0x016b, 0, 255, "\x00\x75\x03\x04\0" }, + { 0x016c, 0, 255, "\x00\x55\x03\x06\0" }, + { 0x016d, 0, 255, "\x00\x75\x03\x06\0" }, + { 0x016e, 0, 255, "\x00\x55\x03\x0a\0" }, + { 0x016f, 0, 255, "\x00\x75\x03\x0a\0" }, + { 0x0170, 0, 255, "\x00\x55\x03\x0b\0" }, + { 0x0171, 0, 255, "\x00\x75\x03\x0b\0" }, + { 0x0172, 0, 255, "\x00\x55\x03\x28\0" }, + { 0x0173, 0, 255, "\x00\x75\x03\x28\0" }, + { 0x0174, 0, 255, "\x00\x57\x03\x02\0" }, + { 0x0175, 0, 255, "\x00\x77\x03\x02\0" }, + { 0x0176, 0, 255, "\x00\x59\x03\x02\0" }, + { 0x0177, 0, 255, "\x00\x79\x03\x02\0" }, + { 0x0178, 0, 255, "\x00\x59\x03\x08\0" }, + { 0x0179, 0, 255, "\x00\x5a\x03\x01\0" }, + { 0x017a, 0, 255, "\x00\x7a\x03\x01\0" }, + { 0x017b, 0, 255, "\x00\x5a\x03\x07\0" }, + { 0x017c, 0, 255, "\x00\x7a\x03\x07\0" }, + { 0x017d, 0, 255, "\x00\x5a\x03\x0c\0" }, + { 0x017e, 0, 255, "\x00\x7a\x03\x0c\0" }, + { 0x017f, 255, 0, "\x00\x73\0" }, + { 0x01a0, 0, 255, "\x00\x4f\x03\x1b\0" }, + { 0x01a1, 0, 255, "\x00\x6f\x03\x1b\0" }, + { 0x01af, 0, 255, "\x00\x55\x03\x1b\0" }, + { 0x01b0, 0, 255, "\x00\x75\x03\x1b\0" }, + { 0x01c4, 255, 0, "\x00\x44\x00\x5a\x03\x0c\0" }, + { 0x01c5, 255, 0, "\x00\x44\x00\x7a\x03\x0c\0" }, + { 0x01c6, 255, 0, "\x00\x64\x00\x7a\x03\x0c\0" }, + { 0x01c7, 255, 0, "\x00\x4c\x00\x4a\0" }, + { 0x01c8, 255, 0, "\x00\x4c\x00\x6a\0" }, + { 0x01c9, 255, 0, "\x00\x6c\x00\x6a\0" }, + { 0x01ca, 255, 0, "\x00\x4e\x00\x4a\0" }, + { 0x01cb, 255, 0, "\x00\x4e\x00\x6a\0" }, + { 0x01cc, 255, 0, "\x00\x6e\x00\x6a\0" }, + { 0x01cd, 0, 255, "\x00\x41\x03\x0c\0" }, + { 0x01ce, 0, 255, "\x00\x61\x03\x0c\0" }, + { 0x01cf, 0, 255, "\x00\x49\x03\x0c\0" }, + { 0x01d0, 0, 255, "\x00\x69\x03\x0c\0" }, + { 0x01d1, 0, 255, "\x00\x4f\x03\x0c\0" }, + { 0x01d2, 0, 255, "\x00\x6f\x03\x0c\0" }, + { 0x01d3, 0, 255, "\x00\x55\x03\x0c\0" }, + { 0x01d4, 0, 255, "\x00\x75\x03\x0c\0" }, + { 0x01d5, 0, 255, "\x00\x55\x03\x08\x03\x04\0" }, + { 0x01d6, 0, 255, "\x00\x75\x03\x08\x03\x04\0" }, + { 0x01d7, 0, 255, "\x00\x55\x03\x08\x03\x01\0" }, + { 0x01d8, 0, 255, "\x00\x75\x03\x08\x03\x01\0" }, + { 0x01d9, 0, 255, "\x00\x55\x03\x08\x03\x0c\0" }, + { 0x01da, 0, 255, "\x00\x75\x03\x08\x03\x0c\0" }, + { 0x01db, 0, 255, "\x00\x55\x03\x08\x03\x00\0" }, + { 0x01dc, 0, 255, "\x00\x75\x03\x08\x03\x00\0" }, + { 0x01de, 0, 255, "\x00\x41\x03\x08\x03\x04\0" }, + { 0x01df, 0, 255, "\x00\x61\x03\x08\x03\x04\0" }, + { 0x01e0, 0, 255, "\x00\x41\x03\x07\x03\x04\0" }, + { 0x01e1, 0, 255, "\x00\x61\x03\x07\x03\x04\0" }, + { 0x01e2, 0, 255, "\x00\xc6\x03\x04\0" }, + { 0x01e3, 0, 255, "\x00\xe6\x03\x04\0" }, + { 0x01e6, 0, 255, "\x00\x47\x03\x0c\0" }, + { 0x01e7, 0, 255, "\x00\x67\x03\x0c\0" }, + { 0x01e8, 0, 255, "\x00\x4b\x03\x0c\0" }, + { 0x01e9, 0, 255, "\x00\x6b\x03\x0c\0" }, + { 0x01ea, 0, 255, "\x00\x4f\x03\x28\0" }, + { 0x01eb, 0, 255, "\x00\x6f\x03\x28\0" }, + { 0x01ec, 0, 255, "\x00\x4f\x03\x28\x03\x04\0" }, + { 0x01ed, 0, 255, "\x00\x6f\x03\x28\x03\x04\0" }, + { 0x01ee, 0, 255, "\x01\xb7\x03\x0c\0" }, + { 0x01ef, 0, 255, "\x02\x92\x03\x0c\0" }, + { 0x01f0, 0, 255, "\x00\x6a\x03\x0c\0" }, + { 0x01f1, 255, 0, "\x00\x44\x00\x5a\0" }, + { 0x01f2, 255, 0, "\x00\x44\x00\x7a\0" }, + { 0x01f3, 255, 0, "\x00\x64\x00\x7a\0" }, + { 0x01f4, 0, 255, "\x00\x47\x03\x01\0" }, + { 0x01f5, 0, 255, "\x00\x67\x03\x01\0" }, + { 0x01f8, 0, 255, "\x00\x4e\x03\x00\0" }, + { 0x01f9, 0, 255, "\x00\x6e\x03\x00\0" }, + { 0x01fa, 0, 255, "\x00\x41\x03\x0a\x03\x01\0" }, + { 0x01fb, 0, 255, "\x00\x61\x03\x0a\x03\x01\0" }, + { 0x01fc, 0, 255, "\x00\xc6\x03\x01\0" }, + { 0x01fd, 0, 255, "\x00\xe6\x03\x01\0" }, + { 0x01fe, 0, 255, "\x00\xd8\x03\x01\0" }, + { 0x01ff, 0, 255, "\x00\xf8\x03\x01\0" }, + { 0x0200, 0, 255, "\x00\x41\x03\x0f\0" }, + { 0x0201, 0, 255, "\x00\x61\x03\x0f\0" }, + { 0x0202, 0, 255, "\x00\x41\x03\x11\0" }, + { 0x0203, 0, 255, "\x00\x61\x03\x11\0" }, + { 0x0204, 0, 255, "\x00\x45\x03\x0f\0" }, + { 0x0205, 0, 255, "\x00\x65\x03\x0f\0" }, + { 0x0206, 0, 255, "\x00\x45\x03\x11\0" }, + { 0x0207, 0, 255, "\x00\x65\x03\x11\0" }, + { 0x0208, 0, 255, "\x00\x49\x03\x0f\0" }, + { 0x0209, 0, 255, "\x00\x69\x03\x0f\0" }, + { 0x020a, 0, 255, "\x00\x49\x03\x11\0" }, + { 0x020b, 0, 255, "\x00\x69\x03\x11\0" }, + { 0x020c, 0, 255, "\x00\x4f\x03\x0f\0" }, + { 0x020d, 0, 255, "\x00\x6f\x03\x0f\0" }, + { 0x020e, 0, 255, "\x00\x4f\x03\x11\0" }, + { 0x020f, 0, 255, "\x00\x6f\x03\x11\0" }, + { 0x0210, 0, 255, "\x00\x52\x03\x0f\0" }, + { 0x0211, 0, 255, "\x00\x72\x03\x0f\0" }, + { 0x0212, 0, 255, "\x00\x52\x03\x11\0" }, + { 0x0213, 0, 255, "\x00\x72\x03\x11\0" }, + { 0x0214, 0, 255, "\x00\x55\x03\x0f\0" }, + { 0x0215, 0, 255, "\x00\x75\x03\x0f\0" }, + { 0x0216, 0, 255, "\x00\x55\x03\x11\0" }, + { 0x0217, 0, 255, "\x00\x75\x03\x11\0" }, + { 0x0218, 0, 255, "\x00\x53\x03\x26\0" }, + { 0x0219, 0, 255, "\x00\x73\x03\x26\0" }, + { 0x021a, 0, 255, "\x00\x54\x03\x26\0" }, + { 0x021b, 0, 255, "\x00\x74\x03\x26\0" }, + { 0x021e, 0, 255, "\x00\x48\x03\x0c\0" }, + { 0x021f, 0, 255, "\x00\x68\x03\x0c\0" }, + { 0x0226, 0, 255, "\x00\x41\x03\x07\0" }, + { 0x0227, 0, 255, "\x00\x61\x03\x07\0" }, + { 0x0228, 0, 255, "\x00\x45\x03\x27\0" }, + { 0x0229, 0, 255, "\x00\x65\x03\x27\0" }, + { 0x022a, 0, 255, "\x00\x4f\x03\x08\x03\x04\0" }, + { 0x022b, 0, 255, "\x00\x6f\x03\x08\x03\x04\0" }, + { 0x022c, 0, 255, "\x00\x4f\x03\x03\x03\x04\0" }, + { 0x022d, 0, 255, "\x00\x6f\x03\x03\x03\x04\0" }, + { 0x022e, 0, 255, "\x00\x4f\x03\x07\0" }, + { 0x022f, 0, 255, "\x00\x6f\x03\x07\0" }, + { 0x0230, 0, 255, "\x00\x4f\x03\x07\x03\x04\0" }, + { 0x0231, 0, 255, "\x00\x6f\x03\x07\x03\x04\0" }, + { 0x0232, 0, 255, "\x00\x59\x03\x04\0" }, + { 0x0233, 0, 255, "\x00\x79\x03\x04\0" }, + { 0x02b0, 255, 0, "\x00\x68\0" }, + { 0x02b1, 255, 0, "\x02\x66\0" }, + { 0x02b2, 255, 0, "\x00\x6a\0" }, + { 0x02b3, 255, 0, "\x00\x72\0" }, + { 0x02b4, 255, 0, "\x02\x79\0" }, + { 0x02b5, 255, 0, "\x02\x7b\0" }, + { 0x02b6, 255, 0, "\x02\x81\0" }, + { 0x02b7, 255, 0, "\x00\x77\0" }, + { 0x02b8, 255, 0, "\x00\x79\0" }, + { 0x02d8, 255, 0, "\x00\x20\x03\x06\0" }, + { 0x02d9, 255, 0, "\x00\x20\x03\x07\0" }, + { 0x02da, 255, 0, "\x00\x20\x03\x0a\0" }, + { 0x02db, 255, 0, "\x00\x20\x03\x28\0" }, + { 0x02dc, 255, 0, "\x00\x20\x03\x03\0" }, + { 0x02dd, 255, 0, "\x00\x20\x03\x0b\0" }, + { 0x02e0, 255, 0, "\x02\x63\0" }, + { 0x02e1, 255, 0, "\x00\x6c\0" }, + { 0x02e2, 255, 0, "\x00\x73\0" }, + { 0x02e3, 255, 0, "\x00\x78\0" }, + { 0x02e4, 255, 0, "\x02\x95\0" }, + { 0x0340, 0, 255, "\x03\x00\0" }, + { 0x0341, 0, 255, "\x03\x01\0" }, + { 0x0343, 0, 255, "\x03\x13\0" }, + { 0x0344, 0, 255, "\x03\x08\x03\x01\0" }, + { 0x0374, 0, 255, "\x02\xb9\0" }, + { 0x037a, 255, 0, "\x00\x20\x03\x45\0" }, + { 0x037e, 0, 255, "\x00\x3b\0" }, + { 0x0384, 255, 0, "\x00\x20\x03\x01\0" }, + { 0x0385, 0, 6, "\x00\xa8\x03\x01\x00\x00\x00\x20\x03\x08\x03\x01\0" }, + { 0x0386, 0, 255, "\x03\x91\x03\x01\0" }, + { 0x0387, 0, 255, "\x00\xb7\0" }, + { 0x0388, 0, 255, "\x03\x95\x03\x01\0" }, + { 0x0389, 0, 255, "\x03\x97\x03\x01\0" }, + { 0x038a, 0, 255, "\x03\x99\x03\x01\0" }, + { 0x038c, 0, 255, "\x03\x9f\x03\x01\0" }, + { 0x038e, 0, 255, "\x03\xa5\x03\x01\0" }, + { 0x038f, 0, 255, "\x03\xa9\x03\x01\0" }, + { 0x0390, 0, 255, "\x03\xb9\x03\x08\x03\x01\0" }, + { 0x03aa, 0, 255, "\x03\x99\x03\x08\0" }, + { 0x03ab, 0, 255, "\x03\xa5\x03\x08\0" }, + { 0x03ac, 0, 255, "\x03\xb1\x03\x01\0" }, + { 0x03ad, 0, 255, "\x03\xb5\x03\x01\0" }, + { 0x03ae, 0, 255, "\x03\xb7\x03\x01\0" }, + { 0x03af, 0, 255, "\x03\xb9\x03\x01\0" }, + { 0x03b0, 0, 255, "\x03\xc5\x03\x08\x03\x01\0" }, + { 0x03ca, 0, 255, "\x03\xb9\x03\x08\0" }, + { 0x03cb, 0, 255, "\x03\xc5\x03\x08\0" }, + { 0x03cc, 0, 255, "\x03\xbf\x03\x01\0" }, + { 0x03cd, 0, 255, "\x03\xc5\x03\x01\0" }, + { 0x03ce, 0, 255, "\x03\xc9\x03\x01\0" }, + { 0x03d0, 255, 0, "\x03\xb2\0" }, + { 0x03d1, 255, 0, "\x03\xb8\0" }, + { 0x03d2, 255, 0, "\x03\xa5\0" }, + { 0x03d3, 0, 6, "\x03\xd2\x03\x01\x00\x00\x03\xa5\x03\x01\0" }, + { 0x03d4, 0, 6, "\x03\xd2\x03\x08\x00\x00\x03\xa5\x03\x08\0" }, + { 0x03d5, 255, 0, "\x03\xc6\0" }, + { 0x03d6, 255, 0, "\x03\xc0\0" }, + { 0x03f0, 255, 0, "\x03\xba\0" }, + { 0x03f1, 255, 0, "\x03\xc1\0" }, + { 0x03f2, 255, 0, "\x03\xc2\0" }, + { 0x03f4, 255, 0, "\x03\x98\0" }, + { 0x03f5, 255, 0, "\x03\xb5\0" }, + { 0x0400, 0, 255, "\x04\x15\x03\x00\0" }, + { 0x0401, 0, 255, "\x04\x15\x03\x08\0" }, + { 0x0403, 0, 255, "\x04\x13\x03\x01\0" }, + { 0x0407, 0, 255, "\x04\x06\x03\x08\0" }, + { 0x040c, 0, 255, "\x04\x1a\x03\x01\0" }, + { 0x040d, 0, 255, "\x04\x18\x03\x00\0" }, + { 0x040e, 0, 255, "\x04\x23\x03\x06\0" }, + { 0x0419, 0, 255, "\x04\x18\x03\x06\0" }, + { 0x0439, 0, 255, "\x04\x38\x03\x06\0" }, + { 0x0450, 0, 255, "\x04\x35\x03\x00\0" }, + { 0x0451, 0, 255, "\x04\x35\x03\x08\0" }, + { 0x0453, 0, 255, "\x04\x33\x03\x01\0" }, + { 0x0457, 0, 255, "\x04\x56\x03\x08\0" }, + { 0x045c, 0, 255, "\x04\x3a\x03\x01\0" }, + { 0x045d, 0, 255, "\x04\x38\x03\x00\0" }, + { 0x045e, 0, 255, "\x04\x43\x03\x06\0" }, + { 0x0476, 0, 255, "\x04\x74\x03\x0f\0" }, + { 0x0477, 0, 255, "\x04\x75\x03\x0f\0" }, + { 0x04c1, 0, 255, "\x04\x16\x03\x06\0" }, + { 0x04c2, 0, 255, "\x04\x36\x03\x06\0" }, + { 0x04d0, 0, 255, "\x04\x10\x03\x06\0" }, + { 0x04d1, 0, 255, "\x04\x30\x03\x06\0" }, + { 0x04d2, 0, 255, "\x04\x10\x03\x08\0" }, + { 0x04d3, 0, 255, "\x04\x30\x03\x08\0" }, + { 0x04d6, 0, 255, "\x04\x15\x03\x06\0" }, + { 0x04d7, 0, 255, "\x04\x35\x03\x06\0" }, + { 0x04da, 0, 255, "\x04\xd8\x03\x08\0" }, + { 0x04db, 0, 255, "\x04\xd9\x03\x08\0" }, + { 0x04dc, 0, 255, "\x04\x16\x03\x08\0" }, + { 0x04dd, 0, 255, "\x04\x36\x03\x08\0" }, + { 0x04de, 0, 255, "\x04\x17\x03\x08\0" }, + { 0x04df, 0, 255, "\x04\x37\x03\x08\0" }, + { 0x04e2, 0, 255, "\x04\x18\x03\x04\0" }, + { 0x04e3, 0, 255, "\x04\x38\x03\x04\0" }, + { 0x04e4, 0, 255, "\x04\x18\x03\x08\0" }, + { 0x04e5, 0, 255, "\x04\x38\x03\x08\0" }, + { 0x04e6, 0, 255, "\x04\x1e\x03\x08\0" }, + { 0x04e7, 0, 255, "\x04\x3e\x03\x08\0" }, + { 0x04ea, 0, 255, "\x04\xe8\x03\x08\0" }, + { 0x04eb, 0, 255, "\x04\xe9\x03\x08\0" }, + { 0x04ec, 0, 255, "\x04\x2d\x03\x08\0" }, + { 0x04ed, 0, 255, "\x04\x4d\x03\x08\0" }, + { 0x04ee, 0, 255, "\x04\x23\x03\x04\0" }, + { 0x04ef, 0, 255, "\x04\x43\x03\x04\0" }, + { 0x04f0, 0, 255, "\x04\x23\x03\x08\0" }, + { 0x04f1, 0, 255, "\x04\x43\x03\x08\0" }, + { 0x04f2, 0, 255, "\x04\x23\x03\x0b\0" }, + { 0x04f3, 0, 255, "\x04\x43\x03\x0b\0" }, + { 0x04f4, 0, 255, "\x04\x27\x03\x08\0" }, + { 0x04f5, 0, 255, "\x04\x47\x03\x08\0" }, + { 0x04f8, 0, 255, "\x04\x2b\x03\x08\0" }, + { 0x04f9, 0, 255, "\x04\x4b\x03\x08\0" }, + { 0x0587, 255, 0, "\x05\x65\x05\x82\0" }, + { 0x0622, 0, 255, "\x06\x27\x06\x53\0" }, + { 0x0623, 0, 255, "\x06\x27\x06\x54\0" }, + { 0x0624, 0, 255, "\x06\x48\x06\x54\0" }, + { 0x0625, 0, 255, "\x06\x27\x06\x55\0" }, + { 0x0626, 0, 255, "\x06\x4a\x06\x54\0" }, + { 0x0675, 255, 0, "\x06\x27\x06\x74\0" }, + { 0x0676, 255, 0, "\x06\x48\x06\x74\0" }, + { 0x0677, 255, 0, "\x06\xc7\x06\x74\0" }, + { 0x0678, 255, 0, "\x06\x4a\x06\x74\0" }, + { 0x06c0, 0, 255, "\x06\xd5\x06\x54\0" }, + { 0x06c2, 0, 255, "\x06\xc1\x06\x54\0" }, + { 0x06d3, 0, 255, "\x06\xd2\x06\x54\0" }, + { 0x0929, 0, 255, "\x09\x28\x09\x3c\0" }, + { 0x0931, 0, 255, "\x09\x30\x09\x3c\0" }, + { 0x0934, 0, 255, "\x09\x33\x09\x3c\0" }, + { 0x0958, 0, 255, "\x09\x15\x09\x3c\0" }, + { 0x0959, 0, 255, "\x09\x16\x09\x3c\0" }, + { 0x095a, 0, 255, "\x09\x17\x09\x3c\0" }, + { 0x095b, 0, 255, "\x09\x1c\x09\x3c\0" }, + { 0x095c, 0, 255, "\x09\x21\x09\x3c\0" }, + { 0x095d, 0, 255, "\x09\x22\x09\x3c\0" }, + { 0x095e, 0, 255, "\x09\x2b\x09\x3c\0" }, + { 0x095f, 0, 255, "\x09\x2f\x09\x3c\0" }, + { 0x09cb, 0, 255, "\x09\xc7\x09\xbe\0" }, + { 0x09cc, 0, 255, "\x09\xc7\x09\xd7\0" }, + { 0x09dc, 0, 255, "\x09\xa1\x09\xbc\0" }, + { 0x09dd, 0, 255, "\x09\xa2\x09\xbc\0" }, + { 0x09df, 0, 255, "\x09\xaf\x09\xbc\0" }, + { 0x0a33, 0, 255, "\x0a\x32\x0a\x3c\0" }, + { 0x0a36, 0, 255, "\x0a\x38\x0a\x3c\0" }, + { 0x0a59, 0, 255, "\x0a\x16\x0a\x3c\0" }, + { 0x0a5a, 0, 255, "\x0a\x17\x0a\x3c\0" }, + { 0x0a5b, 0, 255, "\x0a\x1c\x0a\x3c\0" }, + { 0x0a5e, 0, 255, "\x0a\x2b\x0a\x3c\0" }, + { 0x0b48, 0, 255, "\x0b\x47\x0b\x56\0" }, + { 0x0b4b, 0, 255, "\x0b\x47\x0b\x3e\0" }, + { 0x0b4c, 0, 255, "\x0b\x47\x0b\x57\0" }, + { 0x0b5c, 0, 255, "\x0b\x21\x0b\x3c\0" }, + { 0x0b5d, 0, 255, "\x0b\x22\x0b\x3c\0" }, + { 0x0b94, 0, 255, "\x0b\x92\x0b\xd7\0" }, + { 0x0bca, 0, 255, "\x0b\xc6\x0b\xbe\0" }, + { 0x0bcb, 0, 255, "\x0b\xc7\x0b\xbe\0" }, + { 0x0bcc, 0, 255, "\x0b\xc6\x0b\xd7\0" }, + { 0x0c48, 0, 255, "\x0c\x46\x0c\x56\0" }, + { 0x0cc0, 0, 255, "\x0c\xbf\x0c\xd5\0" }, + { 0x0cc7, 0, 255, "\x0c\xc6\x0c\xd5\0" }, + { 0x0cc8, 0, 255, "\x0c\xc6\x0c\xd6\0" }, + { 0x0cca, 0, 255, "\x0c\xc6\x0c\xc2\0" }, + { 0x0ccb, 0, 255, "\x0c\xc6\x0c\xc2\x0c\xd5\0" }, + { 0x0d4a, 0, 255, "\x0d\x46\x0d\x3e\0" }, + { 0x0d4b, 0, 255, "\x0d\x47\x0d\x3e\0" }, + { 0x0d4c, 0, 255, "\x0d\x46\x0d\x57\0" }, + { 0x0dda, 0, 255, "\x0d\xd9\x0d\xca\0" }, + { 0x0ddc, 0, 255, "\x0d\xd9\x0d\xcf\0" }, + { 0x0ddd, 0, 255, "\x0d\xd9\x0d\xcf\x0d\xca\0" }, + { 0x0dde, 0, 255, "\x0d\xd9\x0d\xdf\0" }, + { 0x0e33, 255, 0, "\x0e\x4d\x0e\x32\0" }, + { 0x0eb3, 255, 0, "\x0e\xcd\x0e\xb2\0" }, + { 0x0edc, 255, 0, "\x0e\xab\x0e\x99\0" }, + { 0x0edd, 255, 0, "\x0e\xab\x0e\xa1\0" }, + { 0x0f0c, 255, 0, "\x0f\x0b\0" }, + { 0x0f43, 0, 255, "\x0f\x42\x0f\xb7\0" }, + { 0x0f4d, 0, 255, "\x0f\x4c\x0f\xb7\0" }, + { 0x0f52, 0, 255, "\x0f\x51\x0f\xb7\0" }, + { 0x0f57, 0, 255, "\x0f\x56\x0f\xb7\0" }, + { 0x0f5c, 0, 255, "\x0f\x5b\x0f\xb7\0" }, + { 0x0f69, 0, 255, "\x0f\x40\x0f\xb5\0" }, + { 0x0f73, 0, 255, "\x0f\x71\x0f\x72\0" }, + { 0x0f75, 0, 255, "\x0f\x71\x0f\x74\0" }, + { 0x0f76, 0, 255, "\x0f\xb2\x0f\x80\0" }, + { 0x0f77, 255, 0, "\x0f\xb2\x0f\x71\x0f\x80\0" }, + { 0x0f78, 0, 255, "\x0f\xb3\x0f\x80\0" }, + { 0x0f79, 255, 0, "\x0f\xb3\x0f\x71\x0f\x80\0" }, + { 0x0f81, 0, 255, "\x0f\x71\x0f\x80\0" }, + { 0x0f93, 0, 255, "\x0f\x92\x0f\xb7\0" }, + { 0x0f9d, 0, 255, "\x0f\x9c\x0f\xb7\0" }, + { 0x0fa2, 0, 255, "\x0f\xa1\x0f\xb7\0" }, + { 0x0fa7, 0, 255, "\x0f\xa6\x0f\xb7\0" }, + { 0x0fac, 0, 255, "\x0f\xab\x0f\xb7\0" }, + { 0x0fb9, 0, 255, "\x0f\x90\x0f\xb5\0" }, + { 0x1026, 0, 255, "\x10\x25\x10\x2e\0" }, + { 0x1e00, 0, 255, "\x00\x41\x03\x25\0" }, + { 0x1e01, 0, 255, "\x00\x61\x03\x25\0" }, + { 0x1e02, 0, 255, "\x00\x42\x03\x07\0" }, + { 0x1e03, 0, 255, "\x00\x62\x03\x07\0" }, + { 0x1e04, 0, 255, "\x00\x42\x03\x23\0" }, + { 0x1e05, 0, 255, "\x00\x62\x03\x23\0" }, + { 0x1e06, 0, 255, "\x00\x42\x03\x31\0" }, + { 0x1e07, 0, 255, "\x00\x62\x03\x31\0" }, + { 0x1e08, 0, 255, "\x00\x43\x03\x27\x03\x01\0" }, + { 0x1e09, 0, 255, "\x00\x63\x03\x27\x03\x01\0" }, + { 0x1e0a, 0, 255, "\x00\x44\x03\x07\0" }, + { 0x1e0b, 0, 255, "\x00\x64\x03\x07\0" }, + { 0x1e0c, 0, 255, "\x00\x44\x03\x23\0" }, + { 0x1e0d, 0, 255, "\x00\x64\x03\x23\0" }, + { 0x1e0e, 0, 255, "\x00\x44\x03\x31\0" }, + { 0x1e0f, 0, 255, "\x00\x64\x03\x31\0" }, + { 0x1e10, 0, 255, "\x00\x44\x03\x27\0" }, + { 0x1e11, 0, 255, "\x00\x64\x03\x27\0" }, + { 0x1e12, 0, 255, "\x00\x44\x03\x2d\0" }, + { 0x1e13, 0, 255, "\x00\x64\x03\x2d\0" }, + { 0x1e14, 0, 255, "\x00\x45\x03\x04\x03\x00\0" }, + { 0x1e15, 0, 255, "\x00\x65\x03\x04\x03\x00\0" }, + { 0x1e16, 0, 255, "\x00\x45\x03\x04\x03\x01\0" }, + { 0x1e17, 0, 255, "\x00\x65\x03\x04\x03\x01\0" }, + { 0x1e18, 0, 255, "\x00\x45\x03\x2d\0" }, + { 0x1e19, 0, 255, "\x00\x65\x03\x2d\0" }, + { 0x1e1a, 0, 255, "\x00\x45\x03\x30\0" }, + { 0x1e1b, 0, 255, "\x00\x65\x03\x30\0" }, + { 0x1e1c, 0, 255, "\x00\x45\x03\x27\x03\x06\0" }, + { 0x1e1d, 0, 255, "\x00\x65\x03\x27\x03\x06\0" }, + { 0x1e1e, 0, 255, "\x00\x46\x03\x07\0" }, + { 0x1e1f, 0, 255, "\x00\x66\x03\x07\0" }, + { 0x1e20, 0, 255, "\x00\x47\x03\x04\0" }, + { 0x1e21, 0, 255, "\x00\x67\x03\x04\0" }, + { 0x1e22, 0, 255, "\x00\x48\x03\x07\0" }, + { 0x1e23, 0, 255, "\x00\x68\x03\x07\0" }, + { 0x1e24, 0, 255, "\x00\x48\x03\x23\0" }, + { 0x1e25, 0, 255, "\x00\x68\x03\x23\0" }, + { 0x1e26, 0, 255, "\x00\x48\x03\x08\0" }, + { 0x1e27, 0, 255, "\x00\x68\x03\x08\0" }, + { 0x1e28, 0, 255, "\x00\x48\x03\x27\0" }, + { 0x1e29, 0, 255, "\x00\x68\x03\x27\0" }, + { 0x1e2a, 0, 255, "\x00\x48\x03\x2e\0" }, + { 0x1e2b, 0, 255, "\x00\x68\x03\x2e\0" }, + { 0x1e2c, 0, 255, "\x00\x49\x03\x30\0" }, + { 0x1e2d, 0, 255, "\x00\x69\x03\x30\0" }, + { 0x1e2e, 0, 255, "\x00\x49\x03\x08\x03\x01\0" }, + { 0x1e2f, 0, 255, "\x00\x69\x03\x08\x03\x01\0" }, + { 0x1e30, 0, 255, "\x00\x4b\x03\x01\0" }, + { 0x1e31, 0, 255, "\x00\x6b\x03\x01\0" }, + { 0x1e32, 0, 255, "\x00\x4b\x03\x23\0" }, + { 0x1e33, 0, 255, "\x00\x6b\x03\x23\0" }, + { 0x1e34, 0, 255, "\x00\x4b\x03\x31\0" }, + { 0x1e35, 0, 255, "\x00\x6b\x03\x31\0" }, + { 0x1e36, 0, 255, "\x00\x4c\x03\x23\0" }, + { 0x1e37, 0, 255, "\x00\x6c\x03\x23\0" }, + { 0x1e38, 0, 255, "\x00\x4c\x03\x23\x03\x04\0" }, + { 0x1e39, 0, 255, "\x00\x6c\x03\x23\x03\x04\0" }, + { 0x1e3a, 0, 255, "\x00\x4c\x03\x31\0" }, + { 0x1e3b, 0, 255, "\x00\x6c\x03\x31\0" }, + { 0x1e3c, 0, 255, "\x00\x4c\x03\x2d\0" }, + { 0x1e3d, 0, 255, "\x00\x6c\x03\x2d\0" }, + { 0x1e3e, 0, 255, "\x00\x4d\x03\x01\0" }, + { 0x1e3f, 0, 255, "\x00\x6d\x03\x01\0" }, + { 0x1e40, 0, 255, "\x00\x4d\x03\x07\0" }, + { 0x1e41, 0, 255, "\x00\x6d\x03\x07\0" }, + { 0x1e42, 0, 255, "\x00\x4d\x03\x23\0" }, + { 0x1e43, 0, 255, "\x00\x6d\x03\x23\0" }, + { 0x1e44, 0, 255, "\x00\x4e\x03\x07\0" }, + { 0x1e45, 0, 255, "\x00\x6e\x03\x07\0" }, + { 0x1e46, 0, 255, "\x00\x4e\x03\x23\0" }, + { 0x1e47, 0, 255, "\x00\x6e\x03\x23\0" }, + { 0x1e48, 0, 255, "\x00\x4e\x03\x31\0" }, + { 0x1e49, 0, 255, "\x00\x6e\x03\x31\0" }, + { 0x1e4a, 0, 255, "\x00\x4e\x03\x2d\0" }, + { 0x1e4b, 0, 255, "\x00\x6e\x03\x2d\0" }, + { 0x1e4c, 0, 255, "\x00\x4f\x03\x03\x03\x01\0" }, + { 0x1e4d, 0, 255, "\x00\x6f\x03\x03\x03\x01\0" }, + { 0x1e4e, 0, 255, "\x00\x4f\x03\x03\x03\x08\0" }, + { 0x1e4f, 0, 255, "\x00\x6f\x03\x03\x03\x08\0" }, + { 0x1e50, 0, 255, "\x00\x4f\x03\x04\x03\x00\0" }, + { 0x1e51, 0, 255, "\x00\x6f\x03\x04\x03\x00\0" }, + { 0x1e52, 0, 255, "\x00\x4f\x03\x04\x03\x01\0" }, + { 0x1e53, 0, 255, "\x00\x6f\x03\x04\x03\x01\0" }, + { 0x1e54, 0, 255, "\x00\x50\x03\x01\0" }, + { 0x1e55, 0, 255, "\x00\x70\x03\x01\0" }, + { 0x1e56, 0, 255, "\x00\x50\x03\x07\0" }, + { 0x1e57, 0, 255, "\x00\x70\x03\x07\0" }, + { 0x1e58, 0, 255, "\x00\x52\x03\x07\0" }, + { 0x1e59, 0, 255, "\x00\x72\x03\x07\0" }, + { 0x1e5a, 0, 255, "\x00\x52\x03\x23\0" }, + { 0x1e5b, 0, 255, "\x00\x72\x03\x23\0" }, + { 0x1e5c, 0, 255, "\x00\x52\x03\x23\x03\x04\0" }, + { 0x1e5d, 0, 255, "\x00\x72\x03\x23\x03\x04\0" }, + { 0x1e5e, 0, 255, "\x00\x52\x03\x31\0" }, + { 0x1e5f, 0, 255, "\x00\x72\x03\x31\0" }, + { 0x1e60, 0, 255, "\x00\x53\x03\x07\0" }, + { 0x1e61, 0, 255, "\x00\x73\x03\x07\0" }, + { 0x1e62, 0, 255, "\x00\x53\x03\x23\0" }, + { 0x1e63, 0, 255, "\x00\x73\x03\x23\0" }, + { 0x1e64, 0, 255, "\x00\x53\x03\x01\x03\x07\0" }, + { 0x1e65, 0, 255, "\x00\x73\x03\x01\x03\x07\0" }, + { 0x1e66, 0, 255, "\x00\x53\x03\x0c\x03\x07\0" }, + { 0x1e67, 0, 255, "\x00\x73\x03\x0c\x03\x07\0" }, + { 0x1e68, 0, 255, "\x00\x53\x03\x23\x03\x07\0" }, + { 0x1e69, 0, 255, "\x00\x73\x03\x23\x03\x07\0" }, + { 0x1e6a, 0, 255, "\x00\x54\x03\x07\0" }, + { 0x1e6b, 0, 255, "\x00\x74\x03\x07\0" }, + { 0x1e6c, 0, 255, "\x00\x54\x03\x23\0" }, + { 0x1e6d, 0, 255, "\x00\x74\x03\x23\0" }, + { 0x1e6e, 0, 255, "\x00\x54\x03\x31\0" }, + { 0x1e6f, 0, 255, "\x00\x74\x03\x31\0" }, + { 0x1e70, 0, 255, "\x00\x54\x03\x2d\0" }, + { 0x1e71, 0, 255, "\x00\x74\x03\x2d\0" }, + { 0x1e72, 0, 255, "\x00\x55\x03\x24\0" }, + { 0x1e73, 0, 255, "\x00\x75\x03\x24\0" }, + { 0x1e74, 0, 255, "\x00\x55\x03\x30\0" }, + { 0x1e75, 0, 255, "\x00\x75\x03\x30\0" }, + { 0x1e76, 0, 255, "\x00\x55\x03\x2d\0" }, + { 0x1e77, 0, 255, "\x00\x75\x03\x2d\0" }, + { 0x1e78, 0, 255, "\x00\x55\x03\x03\x03\x01\0" }, + { 0x1e79, 0, 255, "\x00\x75\x03\x03\x03\x01\0" }, + { 0x1e7a, 0, 255, "\x00\x55\x03\x04\x03\x08\0" }, + { 0x1e7b, 0, 255, "\x00\x75\x03\x04\x03\x08\0" }, + { 0x1e7c, 0, 255, "\x00\x56\x03\x03\0" }, + { 0x1e7d, 0, 255, "\x00\x76\x03\x03\0" }, + { 0x1e7e, 0, 255, "\x00\x56\x03\x23\0" }, + { 0x1e7f, 0, 255, "\x00\x76\x03\x23\0" }, + { 0x1e80, 0, 255, "\x00\x57\x03\x00\0" }, + { 0x1e81, 0, 255, "\x00\x77\x03\x00\0" }, + { 0x1e82, 0, 255, "\x00\x57\x03\x01\0" }, + { 0x1e83, 0, 255, "\x00\x77\x03\x01\0" }, + { 0x1e84, 0, 255, "\x00\x57\x03\x08\0" }, + { 0x1e85, 0, 255, "\x00\x77\x03\x08\0" }, + { 0x1e86, 0, 255, "\x00\x57\x03\x07\0" }, + { 0x1e87, 0, 255, "\x00\x77\x03\x07\0" }, + { 0x1e88, 0, 255, "\x00\x57\x03\x23\0" }, + { 0x1e89, 0, 255, "\x00\x77\x03\x23\0" }, + { 0x1e8a, 0, 255, "\x00\x58\x03\x07\0" }, + { 0x1e8b, 0, 255, "\x00\x78\x03\x07\0" }, + { 0x1e8c, 0, 255, "\x00\x58\x03\x08\0" }, + { 0x1e8d, 0, 255, "\x00\x78\x03\x08\0" }, + { 0x1e8e, 0, 255, "\x00\x59\x03\x07\0" }, + { 0x1e8f, 0, 255, "\x00\x79\x03\x07\0" }, + { 0x1e90, 0, 255, "\x00\x5a\x03\x02\0" }, + { 0x1e91, 0, 255, "\x00\x7a\x03\x02\0" }, + { 0x1e92, 0, 255, "\x00\x5a\x03\x23\0" }, + { 0x1e93, 0, 255, "\x00\x7a\x03\x23\0" }, + { 0x1e94, 0, 255, "\x00\x5a\x03\x31\0" }, + { 0x1e95, 0, 255, "\x00\x7a\x03\x31\0" }, + { 0x1e96, 0, 255, "\x00\x68\x03\x31\0" }, + { 0x1e97, 0, 255, "\x00\x74\x03\x08\0" }, + { 0x1e98, 0, 255, "\x00\x77\x03\x0a\0" }, + { 0x1e99, 0, 255, "\x00\x79\x03\x0a\0" }, + { 0x1e9a, 255, 0, "\x00\x61\x02\xbe\0" }, + { 0x1e9b, 0, 6, "\x01\x7f\x03\x07\x00\x00\x00\x73\x03\x07\0" }, + { 0x1ea0, 0, 255, "\x00\x41\x03\x23\0" }, + { 0x1ea1, 0, 255, "\x00\x61\x03\x23\0" }, + { 0x1ea2, 0, 255, "\x00\x41\x03\x09\0" }, + { 0x1ea3, 0, 255, "\x00\x61\x03\x09\0" }, + { 0x1ea4, 0, 255, "\x00\x41\x03\x02\x03\x01\0" }, + { 0x1ea5, 0, 255, "\x00\x61\x03\x02\x03\x01\0" }, + { 0x1ea6, 0, 255, "\x00\x41\x03\x02\x03\x00\0" }, + { 0x1ea7, 0, 255, "\x00\x61\x03\x02\x03\x00\0" }, + { 0x1ea8, 0, 255, "\x00\x41\x03\x02\x03\x09\0" }, + { 0x1ea9, 0, 255, "\x00\x61\x03\x02\x03\x09\0" }, + { 0x1eaa, 0, 255, "\x00\x41\x03\x02\x03\x03\0" }, + { 0x1eab, 0, 255, "\x00\x61\x03\x02\x03\x03\0" }, + { 0x1eac, 0, 255, "\x00\x41\x03\x23\x03\x02\0" }, + { 0x1ead, 0, 255, "\x00\x61\x03\x23\x03\x02\0" }, + { 0x1eae, 0, 255, "\x00\x41\x03\x06\x03\x01\0" }, + { 0x1eaf, 0, 255, "\x00\x61\x03\x06\x03\x01\0" }, + { 0x1eb0, 0, 255, "\x00\x41\x03\x06\x03\x00\0" }, + { 0x1eb1, 0, 255, "\x00\x61\x03\x06\x03\x00\0" }, + { 0x1eb2, 0, 255, "\x00\x41\x03\x06\x03\x09\0" }, + { 0x1eb3, 0, 255, "\x00\x61\x03\x06\x03\x09\0" }, + { 0x1eb4, 0, 255, "\x00\x41\x03\x06\x03\x03\0" }, + { 0x1eb5, 0, 255, "\x00\x61\x03\x06\x03\x03\0" }, + { 0x1eb6, 0, 255, "\x00\x41\x03\x23\x03\x06\0" }, + { 0x1eb7, 0, 255, "\x00\x61\x03\x23\x03\x06\0" }, + { 0x1eb8, 0, 255, "\x00\x45\x03\x23\0" }, + { 0x1eb9, 0, 255, "\x00\x65\x03\x23\0" }, + { 0x1eba, 0, 255, "\x00\x45\x03\x09\0" }, + { 0x1ebb, 0, 255, "\x00\x65\x03\x09\0" }, + { 0x1ebc, 0, 255, "\x00\x45\x03\x03\0" }, + { 0x1ebd, 0, 255, "\x00\x65\x03\x03\0" }, + { 0x1ebe, 0, 255, "\x00\x45\x03\x02\x03\x01\0" }, + { 0x1ebf, 0, 255, "\x00\x65\x03\x02\x03\x01\0" }, + { 0x1ec0, 0, 255, "\x00\x45\x03\x02\x03\x00\0" }, + { 0x1ec1, 0, 255, "\x00\x65\x03\x02\x03\x00\0" }, + { 0x1ec2, 0, 255, "\x00\x45\x03\x02\x03\x09\0" }, + { 0x1ec3, 0, 255, "\x00\x65\x03\x02\x03\x09\0" }, + { 0x1ec4, 0, 255, "\x00\x45\x03\x02\x03\x03\0" }, + { 0x1ec5, 0, 255, "\x00\x65\x03\x02\x03\x03\0" }, + { 0x1ec6, 0, 255, "\x00\x45\x03\x23\x03\x02\0" }, + { 0x1ec7, 0, 255, "\x00\x65\x03\x23\x03\x02\0" }, + { 0x1ec8, 0, 255, "\x00\x49\x03\x09\0" }, + { 0x1ec9, 0, 255, "\x00\x69\x03\x09\0" }, + { 0x1eca, 0, 255, "\x00\x49\x03\x23\0" }, + { 0x1ecb, 0, 255, "\x00\x69\x03\x23\0" }, + { 0x1ecc, 0, 255, "\x00\x4f\x03\x23\0" }, + { 0x1ecd, 0, 255, "\x00\x6f\x03\x23\0" }, + { 0x1ece, 0, 255, "\x00\x4f\x03\x09\0" }, + { 0x1ecf, 0, 255, "\x00\x6f\x03\x09\0" }, + { 0x1ed0, 0, 255, "\x00\x4f\x03\x02\x03\x01\0" }, + { 0x1ed1, 0, 255, "\x00\x6f\x03\x02\x03\x01\0" }, + { 0x1ed2, 0, 255, "\x00\x4f\x03\x02\x03\x00\0" }, + { 0x1ed3, 0, 255, "\x00\x6f\x03\x02\x03\x00\0" }, + { 0x1ed4, 0, 255, "\x00\x4f\x03\x02\x03\x09\0" }, + { 0x1ed5, 0, 255, "\x00\x6f\x03\x02\x03\x09\0" }, + { 0x1ed6, 0, 255, "\x00\x4f\x03\x02\x03\x03\0" }, + { 0x1ed7, 0, 255, "\x00\x6f\x03\x02\x03\x03\0" }, + { 0x1ed8, 0, 255, "\x00\x4f\x03\x23\x03\x02\0" }, + { 0x1ed9, 0, 255, "\x00\x6f\x03\x23\x03\x02\0" }, + { 0x1eda, 0, 255, "\x00\x4f\x03\x1b\x03\x01\0" }, + { 0x1edb, 0, 255, "\x00\x6f\x03\x1b\x03\x01\0" }, + { 0x1edc, 0, 255, "\x00\x4f\x03\x1b\x03\x00\0" }, + { 0x1edd, 0, 255, "\x00\x6f\x03\x1b\x03\x00\0" }, + { 0x1ede, 0, 255, "\x00\x4f\x03\x1b\x03\x09\0" }, + { 0x1edf, 0, 255, "\x00\x6f\x03\x1b\x03\x09\0" }, + { 0x1ee0, 0, 255, "\x00\x4f\x03\x1b\x03\x03\0" }, + { 0x1ee1, 0, 255, "\x00\x6f\x03\x1b\x03\x03\0" }, + { 0x1ee2, 0, 255, "\x00\x4f\x03\x1b\x03\x23\0" }, + { 0x1ee3, 0, 255, "\x00\x6f\x03\x1b\x03\x23\0" }, + { 0x1ee4, 0, 255, "\x00\x55\x03\x23\0" }, + { 0x1ee5, 0, 255, "\x00\x75\x03\x23\0" }, + { 0x1ee6, 0, 255, "\x00\x55\x03\x09\0" }, + { 0x1ee7, 0, 255, "\x00\x75\x03\x09\0" }, + { 0x1ee8, 0, 255, "\x00\x55\x03\x1b\x03\x01\0" }, + { 0x1ee9, 0, 255, "\x00\x75\x03\x1b\x03\x01\0" }, + { 0x1eea, 0, 255, "\x00\x55\x03\x1b\x03\x00\0" }, + { 0x1eeb, 0, 255, "\x00\x75\x03\x1b\x03\x00\0" }, + { 0x1eec, 0, 255, "\x00\x55\x03\x1b\x03\x09\0" }, + { 0x1eed, 0, 255, "\x00\x75\x03\x1b\x03\x09\0" }, + { 0x1eee, 0, 255, "\x00\x55\x03\x1b\x03\x03\0" }, + { 0x1eef, 0, 255, "\x00\x75\x03\x1b\x03\x03\0" }, + { 0x1ef0, 0, 255, "\x00\x55\x03\x1b\x03\x23\0" }, + { 0x1ef1, 0, 255, "\x00\x75\x03\x1b\x03\x23\0" }, + { 0x1ef2, 0, 255, "\x00\x59\x03\x00\0" }, + { 0x1ef3, 0, 255, "\x00\x79\x03\x00\0" }, + { 0x1ef4, 0, 255, "\x00\x59\x03\x23\0" }, + { 0x1ef5, 0, 255, "\x00\x79\x03\x23\0" }, + { 0x1ef6, 0, 255, "\x00\x59\x03\x09\0" }, + { 0x1ef7, 0, 255, "\x00\x79\x03\x09\0" }, + { 0x1ef8, 0, 255, "\x00\x59\x03\x03\0" }, + { 0x1ef9, 0, 255, "\x00\x79\x03\x03\0" }, + { 0x1f00, 0, 255, "\x03\xb1\x03\x13\0" }, + { 0x1f01, 0, 255, "\x03\xb1\x03\x14\0" }, + { 0x1f02, 0, 255, "\x03\xb1\x03\x13\x03\x00\0" }, + { 0x1f03, 0, 255, "\x03\xb1\x03\x14\x03\x00\0" }, + { 0x1f04, 0, 255, "\x03\xb1\x03\x13\x03\x01\0" }, + { 0x1f05, 0, 255, "\x03\xb1\x03\x14\x03\x01\0" }, + { 0x1f06, 0, 255, "\x03\xb1\x03\x13\x03\x42\0" }, + { 0x1f07, 0, 255, "\x03\xb1\x03\x14\x03\x42\0" }, + { 0x1f08, 0, 255, "\x03\x91\x03\x13\0" }, + { 0x1f09, 0, 255, "\x03\x91\x03\x14\0" }, + { 0x1f0a, 0, 255, "\x03\x91\x03\x13\x03\x00\0" }, + { 0x1f0b, 0, 255, "\x03\x91\x03\x14\x03\x00\0" }, + { 0x1f0c, 0, 255, "\x03\x91\x03\x13\x03\x01\0" }, + { 0x1f0d, 0, 255, "\x03\x91\x03\x14\x03\x01\0" }, + { 0x1f0e, 0, 255, "\x03\x91\x03\x13\x03\x42\0" }, + { 0x1f0f, 0, 255, "\x03\x91\x03\x14\x03\x42\0" }, + { 0x1f10, 0, 255, "\x03\xb5\x03\x13\0" }, + { 0x1f11, 0, 255, "\x03\xb5\x03\x14\0" }, + { 0x1f12, 0, 255, "\x03\xb5\x03\x13\x03\x00\0" }, + { 0x1f13, 0, 255, "\x03\xb5\x03\x14\x03\x00\0" }, + { 0x1f14, 0, 255, "\x03\xb5\x03\x13\x03\x01\0" }, + { 0x1f15, 0, 255, "\x03\xb5\x03\x14\x03\x01\0" }, + { 0x1f18, 0, 255, "\x03\x95\x03\x13\0" }, + { 0x1f19, 0, 255, "\x03\x95\x03\x14\0" }, + { 0x1f1a, 0, 255, "\x03\x95\x03\x13\x03\x00\0" }, + { 0x1f1b, 0, 255, "\x03\x95\x03\x14\x03\x00\0" }, + { 0x1f1c, 0, 255, "\x03\x95\x03\x13\x03\x01\0" }, + { 0x1f1d, 0, 255, "\x03\x95\x03\x14\x03\x01\0" }, + { 0x1f20, 0, 255, "\x03\xb7\x03\x13\0" }, + { 0x1f21, 0, 255, "\x03\xb7\x03\x14\0" }, + { 0x1f22, 0, 255, "\x03\xb7\x03\x13\x03\x00\0" }, + { 0x1f23, 0, 255, "\x03\xb7\x03\x14\x03\x00\0" }, + { 0x1f24, 0, 255, "\x03\xb7\x03\x13\x03\x01\0" }, + { 0x1f25, 0, 255, "\x03\xb7\x03\x14\x03\x01\0" }, + { 0x1f26, 0, 255, "\x03\xb7\x03\x13\x03\x42\0" }, + { 0x1f27, 0, 255, "\x03\xb7\x03\x14\x03\x42\0" }, + { 0x1f28, 0, 255, "\x03\x97\x03\x13\0" }, + { 0x1f29, 0, 255, "\x03\x97\x03\x14\0" }, + { 0x1f2a, 0, 255, "\x03\x97\x03\x13\x03\x00\0" }, + { 0x1f2b, 0, 255, "\x03\x97\x03\x14\x03\x00\0" }, + { 0x1f2c, 0, 255, "\x03\x97\x03\x13\x03\x01\0" }, + { 0x1f2d, 0, 255, "\x03\x97\x03\x14\x03\x01\0" }, + { 0x1f2e, 0, 255, "\x03\x97\x03\x13\x03\x42\0" }, + { 0x1f2f, 0, 255, "\x03\x97\x03\x14\x03\x42\0" }, + { 0x1f30, 0, 255, "\x03\xb9\x03\x13\0" }, + { 0x1f31, 0, 255, "\x03\xb9\x03\x14\0" }, + { 0x1f32, 0, 255, "\x03\xb9\x03\x13\x03\x00\0" }, + { 0x1f33, 0, 255, "\x03\xb9\x03\x14\x03\x00\0" }, + { 0x1f34, 0, 255, "\x03\xb9\x03\x13\x03\x01\0" }, + { 0x1f35, 0, 255, "\x03\xb9\x03\x14\x03\x01\0" }, + { 0x1f36, 0, 255, "\x03\xb9\x03\x13\x03\x42\0" }, + { 0x1f37, 0, 255, "\x03\xb9\x03\x14\x03\x42\0" }, + { 0x1f38, 0, 255, "\x03\x99\x03\x13\0" }, + { 0x1f39, 0, 255, "\x03\x99\x03\x14\0" }, + { 0x1f3a, 0, 255, "\x03\x99\x03\x13\x03\x00\0" }, + { 0x1f3b, 0, 255, "\x03\x99\x03\x14\x03\x00\0" }, + { 0x1f3c, 0, 255, "\x03\x99\x03\x13\x03\x01\0" }, + { 0x1f3d, 0, 255, "\x03\x99\x03\x14\x03\x01\0" }, + { 0x1f3e, 0, 255, "\x03\x99\x03\x13\x03\x42\0" }, + { 0x1f3f, 0, 255, "\x03\x99\x03\x14\x03\x42\0" }, + { 0x1f40, 0, 255, "\x03\xbf\x03\x13\0" }, + { 0x1f41, 0, 255, "\x03\xbf\x03\x14\0" }, + { 0x1f42, 0, 255, "\x03\xbf\x03\x13\x03\x00\0" }, + { 0x1f43, 0, 255, "\x03\xbf\x03\x14\x03\x00\0" }, + { 0x1f44, 0, 255, "\x03\xbf\x03\x13\x03\x01\0" }, + { 0x1f45, 0, 255, "\x03\xbf\x03\x14\x03\x01\0" }, + { 0x1f48, 0, 255, "\x03\x9f\x03\x13\0" }, + { 0x1f49, 0, 255, "\x03\x9f\x03\x14\0" }, + { 0x1f4a, 0, 255, "\x03\x9f\x03\x13\x03\x00\0" }, + { 0x1f4b, 0, 255, "\x03\x9f\x03\x14\x03\x00\0" }, + { 0x1f4c, 0, 255, "\x03\x9f\x03\x13\x03\x01\0" }, + { 0x1f4d, 0, 255, "\x03\x9f\x03\x14\x03\x01\0" }, + { 0x1f50, 0, 255, "\x03\xc5\x03\x13\0" }, + { 0x1f51, 0, 255, "\x03\xc5\x03\x14\0" }, + { 0x1f52, 0, 255, "\x03\xc5\x03\x13\x03\x00\0" }, + { 0x1f53, 0, 255, "\x03\xc5\x03\x14\x03\x00\0" }, + { 0x1f54, 0, 255, "\x03\xc5\x03\x13\x03\x01\0" }, + { 0x1f55, 0, 255, "\x03\xc5\x03\x14\x03\x01\0" }, + { 0x1f56, 0, 255, "\x03\xc5\x03\x13\x03\x42\0" }, + { 0x1f57, 0, 255, "\x03\xc5\x03\x14\x03\x42\0" }, + { 0x1f59, 0, 255, "\x03\xa5\x03\x14\0" }, + { 0x1f5b, 0, 255, "\x03\xa5\x03\x14\x03\x00\0" }, + { 0x1f5d, 0, 255, "\x03\xa5\x03\x14\x03\x01\0" }, + { 0x1f5f, 0, 255, "\x03\xa5\x03\x14\x03\x42\0" }, + { 0x1f60, 0, 255, "\x03\xc9\x03\x13\0" }, + { 0x1f61, 0, 255, "\x03\xc9\x03\x14\0" }, + { 0x1f62, 0, 255, "\x03\xc9\x03\x13\x03\x00\0" }, + { 0x1f63, 0, 255, "\x03\xc9\x03\x14\x03\x00\0" }, + { 0x1f64, 0, 255, "\x03\xc9\x03\x13\x03\x01\0" }, + { 0x1f65, 0, 255, "\x03\xc9\x03\x14\x03\x01\0" }, + { 0x1f66, 0, 255, "\x03\xc9\x03\x13\x03\x42\0" }, + { 0x1f67, 0, 255, "\x03\xc9\x03\x14\x03\x42\0" }, + { 0x1f68, 0, 255, "\x03\xa9\x03\x13\0" }, + { 0x1f69, 0, 255, "\x03\xa9\x03\x14\0" }, + { 0x1f6a, 0, 255, "\x03\xa9\x03\x13\x03\x00\0" }, + { 0x1f6b, 0, 255, "\x03\xa9\x03\x14\x03\x00\0" }, + { 0x1f6c, 0, 255, "\x03\xa9\x03\x13\x03\x01\0" }, + { 0x1f6d, 0, 255, "\x03\xa9\x03\x14\x03\x01\0" }, + { 0x1f6e, 0, 255, "\x03\xa9\x03\x13\x03\x42\0" }, + { 0x1f6f, 0, 255, "\x03\xa9\x03\x14\x03\x42\0" }, + { 0x1f70, 0, 255, "\x03\xb1\x03\x00\0" }, + { 0x1f71, 0, 255, "\x03\xb1\x03\x01\0" }, + { 0x1f72, 0, 255, "\x03\xb5\x03\x00\0" }, + { 0x1f73, 0, 255, "\x03\xb5\x03\x01\0" }, + { 0x1f74, 0, 255, "\x03\xb7\x03\x00\0" }, + { 0x1f75, 0, 255, "\x03\xb7\x03\x01\0" }, + { 0x1f76, 0, 255, "\x03\xb9\x03\x00\0" }, + { 0x1f77, 0, 255, "\x03\xb9\x03\x01\0" }, + { 0x1f78, 0, 255, "\x03\xbf\x03\x00\0" }, + { 0x1f79, 0, 255, "\x03\xbf\x03\x01\0" }, + { 0x1f7a, 0, 255, "\x03\xc5\x03\x00\0" }, + { 0x1f7b, 0, 255, "\x03\xc5\x03\x01\0" }, + { 0x1f7c, 0, 255, "\x03\xc9\x03\x00\0" }, + { 0x1f7d, 0, 255, "\x03\xc9\x03\x01\0" }, + { 0x1f80, 0, 255, "\x03\xb1\x03\x13\x03\x45\0" }, + { 0x1f81, 0, 255, "\x03\xb1\x03\x14\x03\x45\0" }, + { 0x1f82, 0, 255, "\x03\xb1\x03\x13\x03\x00\x03\x45\0" }, + { 0x1f83, 0, 255, "\x03\xb1\x03\x14\x03\x00\x03\x45\0" }, + { 0x1f84, 0, 255, "\x03\xb1\x03\x13\x03\x01\x03\x45\0" }, + { 0x1f85, 0, 255, "\x03\xb1\x03\x14\x03\x01\x03\x45\0" }, + { 0x1f86, 0, 255, "\x03\xb1\x03\x13\x03\x42\x03\x45\0" }, + { 0x1f87, 0, 255, "\x03\xb1\x03\x14\x03\x42\x03\x45\0" }, + { 0x1f88, 0, 255, "\x03\x91\x03\x13\x03\x45\0" }, + { 0x1f89, 0, 255, "\x03\x91\x03\x14\x03\x45\0" }, + { 0x1f8a, 0, 255, "\x03\x91\x03\x13\x03\x00\x03\x45\0" }, + { 0x1f8b, 0, 255, "\x03\x91\x03\x14\x03\x00\x03\x45\0" }, + { 0x1f8c, 0, 255, "\x03\x91\x03\x13\x03\x01\x03\x45\0" }, + { 0x1f8d, 0, 255, "\x03\x91\x03\x14\x03\x01\x03\x45\0" }, + { 0x1f8e, 0, 255, "\x03\x91\x03\x13\x03\x42\x03\x45\0" }, + { 0x1f8f, 0, 255, "\x03\x91\x03\x14\x03\x42\x03\x45\0" }, + { 0x1f90, 0, 255, "\x03\xb7\x03\x13\x03\x45\0" }, + { 0x1f91, 0, 255, "\x03\xb7\x03\x14\x03\x45\0" }, + { 0x1f92, 0, 255, "\x03\xb7\x03\x13\x03\x00\x03\x45\0" }, + { 0x1f93, 0, 255, "\x03\xb7\x03\x14\x03\x00\x03\x45\0" }, + { 0x1f94, 0, 255, "\x03\xb7\x03\x13\x03\x01\x03\x45\0" }, + { 0x1f95, 0, 255, "\x03\xb7\x03\x14\x03\x01\x03\x45\0" }, + { 0x1f96, 0, 255, "\x03\xb7\x03\x13\x03\x42\x03\x45\0" }, + { 0x1f97, 0, 255, "\x03\xb7\x03\x14\x03\x42\x03\x45\0" }, + { 0x1f98, 0, 255, "\x03\x97\x03\x13\x03\x45\0" }, + { 0x1f99, 0, 255, "\x03\x97\x03\x14\x03\x45\0" }, + { 0x1f9a, 0, 255, "\x03\x97\x03\x13\x03\x00\x03\x45\0" }, + { 0x1f9b, 0, 255, "\x03\x97\x03\x14\x03\x00\x03\x45\0" }, + { 0x1f9c, 0, 255, "\x03\x97\x03\x13\x03\x01\x03\x45\0" }, + { 0x1f9d, 0, 255, "\x03\x97\x03\x14\x03\x01\x03\x45\0" }, + { 0x1f9e, 0, 255, "\x03\x97\x03\x13\x03\x42\x03\x45\0" }, + { 0x1f9f, 0, 255, "\x03\x97\x03\x14\x03\x42\x03\x45\0" }, + { 0x1fa0, 0, 255, "\x03\xc9\x03\x13\x03\x45\0" }, + { 0x1fa1, 0, 255, "\x03\xc9\x03\x14\x03\x45\0" }, + { 0x1fa2, 0, 255, "\x03\xc9\x03\x13\x03\x00\x03\x45\0" }, + { 0x1fa3, 0, 255, "\x03\xc9\x03\x14\x03\x00\x03\x45\0" }, + { 0x1fa4, 0, 255, "\x03\xc9\x03\x13\x03\x01\x03\x45\0" }, + { 0x1fa5, 0, 255, "\x03\xc9\x03\x14\x03\x01\x03\x45\0" }, + { 0x1fa6, 0, 255, "\x03\xc9\x03\x13\x03\x42\x03\x45\0" }, + { 0x1fa7, 0, 255, "\x03\xc9\x03\x14\x03\x42\x03\x45\0" }, + { 0x1fa8, 0, 255, "\x03\xa9\x03\x13\x03\x45\0" }, + { 0x1fa9, 0, 255, "\x03\xa9\x03\x14\x03\x45\0" }, + { 0x1faa, 0, 255, "\x03\xa9\x03\x13\x03\x00\x03\x45\0" }, + { 0x1fab, 0, 255, "\x03\xa9\x03\x14\x03\x00\x03\x45\0" }, + { 0x1fac, 0, 255, "\x03\xa9\x03\x13\x03\x01\x03\x45\0" }, + { 0x1fad, 0, 255, "\x03\xa9\x03\x14\x03\x01\x03\x45\0" }, + { 0x1fae, 0, 255, "\x03\xa9\x03\x13\x03\x42\x03\x45\0" }, + { 0x1faf, 0, 255, "\x03\xa9\x03\x14\x03\x42\x03\x45\0" }, + { 0x1fb0, 0, 255, "\x03\xb1\x03\x06\0" }, + { 0x1fb1, 0, 255, "\x03\xb1\x03\x04\0" }, + { 0x1fb2, 0, 255, "\x03\xb1\x03\x00\x03\x45\0" }, + { 0x1fb3, 0, 255, "\x03\xb1\x03\x45\0" }, + { 0x1fb4, 0, 255, "\x03\xb1\x03\x01\x03\x45\0" }, + { 0x1fb6, 0, 255, "\x03\xb1\x03\x42\0" }, + { 0x1fb7, 0, 255, "\x03\xb1\x03\x42\x03\x45\0" }, + { 0x1fb8, 0, 255, "\x03\x91\x03\x06\0" }, + { 0x1fb9, 0, 255, "\x03\x91\x03\x04\0" }, + { 0x1fba, 0, 255, "\x03\x91\x03\x00\0" }, + { 0x1fbb, 0, 255, "\x03\x91\x03\x01\0" }, + { 0x1fbc, 0, 255, "\x03\x91\x03\x45\0" }, + { 0x1fbd, 255, 0, "\x00\x20\x03\x13\0" }, + { 0x1fbe, 0, 255, "\x03\xb9\0" }, + { 0x1fbf, 255, 0, "\x00\x20\x03\x13\0" }, + { 0x1fc0, 255, 0, "\x00\x20\x03\x42\0" }, + { 0x1fc1, 0, 6, "\x00\xa8\x03\x42\x00\x00\x00\x20\x03\x08\x03\x42\0" }, + { 0x1fc2, 0, 255, "\x03\xb7\x03\x00\x03\x45\0" }, + { 0x1fc3, 0, 255, "\x03\xb7\x03\x45\0" }, + { 0x1fc4, 0, 255, "\x03\xb7\x03\x01\x03\x45\0" }, + { 0x1fc6, 0, 255, "\x03\xb7\x03\x42\0" }, + { 0x1fc7, 0, 255, "\x03\xb7\x03\x42\x03\x45\0" }, + { 0x1fc8, 0, 255, "\x03\x95\x03\x00\0" }, + { 0x1fc9, 0, 255, "\x03\x95\x03\x01\0" }, + { 0x1fca, 0, 255, "\x03\x97\x03\x00\0" }, + { 0x1fcb, 0, 255, "\x03\x97\x03\x01\0" }, + { 0x1fcc, 0, 255, "\x03\x97\x03\x45\0" }, + { 0x1fcd, 0, 6, "\x1f\xbf\x03\x00\x00\x00\x00\x20\x03\x13\x03\x00\0" }, + { 0x1fce, 0, 6, "\x1f\xbf\x03\x01\x00\x00\x00\x20\x03\x13\x03\x01\0" }, + { 0x1fcf, 0, 6, "\x1f\xbf\x03\x42\x00\x00\x00\x20\x03\x13\x03\x42\0" }, + { 0x1fd0, 0, 255, "\x03\xb9\x03\x06\0" }, + { 0x1fd1, 0, 255, "\x03\xb9\x03\x04\0" }, + { 0x1fd2, 0, 255, "\x03\xb9\x03\x08\x03\x00\0" }, + { 0x1fd3, 0, 255, "\x03\xb9\x03\x08\x03\x01\0" }, + { 0x1fd6, 0, 255, "\x03\xb9\x03\x42\0" }, + { 0x1fd7, 0, 255, "\x03\xb9\x03\x08\x03\x42\0" }, + { 0x1fd8, 0, 255, "\x03\x99\x03\x06\0" }, + { 0x1fd9, 0, 255, "\x03\x99\x03\x04\0" }, + { 0x1fda, 0, 255, "\x03\x99\x03\x00\0" }, + { 0x1fdb, 0, 255, "\x03\x99\x03\x01\0" }, + { 0x1fdd, 0, 6, "\x1f\xfe\x03\x00\x00\x00\x00\x20\x03\x14\x03\x00\0" }, + { 0x1fde, 0, 6, "\x1f\xfe\x03\x01\x00\x00\x00\x20\x03\x14\x03\x01\0" }, + { 0x1fdf, 0, 6, "\x1f\xfe\x03\x42\x00\x00\x00\x20\x03\x14\x03\x42\0" }, + { 0x1fe0, 0, 255, "\x03\xc5\x03\x06\0" }, + { 0x1fe1, 0, 255, "\x03\xc5\x03\x04\0" }, + { 0x1fe2, 0, 255, "\x03\xc5\x03\x08\x03\x00\0" }, + { 0x1fe3, 0, 255, "\x03\xc5\x03\x08\x03\x01\0" }, + { 0x1fe4, 0, 255, "\x03\xc1\x03\x13\0" }, + { 0x1fe5, 0, 255, "\x03\xc1\x03\x14\0" }, + { 0x1fe6, 0, 255, "\x03\xc5\x03\x42\0" }, + { 0x1fe7, 0, 255, "\x03\xc5\x03\x08\x03\x42\0" }, + { 0x1fe8, 0, 255, "\x03\xa5\x03\x06\0" }, + { 0x1fe9, 0, 255, "\x03\xa5\x03\x04\0" }, + { 0x1fea, 0, 255, "\x03\xa5\x03\x00\0" }, + { 0x1feb, 0, 255, "\x03\xa5\x03\x01\0" }, + { 0x1fec, 0, 255, "\x03\xa1\x03\x14\0" }, + { 0x1fed, 0, 6, "\x00\xa8\x03\x00\x00\x00\x00\x20\x03\x08\x03\x00\0" }, + { 0x1fee, 0, 6, "\x00\xa8\x03\x01\x00\x00\x00\x20\x03\x08\x03\x01\0" }, + { 0x1fef, 0, 255, "\x00\x60\0" }, + { 0x1ff2, 0, 255, "\x03\xc9\x03\x00\x03\x45\0" }, + { 0x1ff3, 0, 255, "\x03\xc9\x03\x45\0" }, + { 0x1ff4, 0, 255, "\x03\xc9\x03\x01\x03\x45\0" }, + { 0x1ff6, 0, 255, "\x03\xc9\x03\x42\0" }, + { 0x1ff7, 0, 255, "\x03\xc9\x03\x42\x03\x45\0" }, + { 0x1ff8, 0, 255, "\x03\x9f\x03\x00\0" }, + { 0x1ff9, 0, 255, "\x03\x9f\x03\x01\0" }, + { 0x1ffa, 0, 255, "\x03\xa9\x03\x00\0" }, + { 0x1ffb, 0, 255, "\x03\xa9\x03\x01\0" }, + { 0x1ffc, 0, 255, "\x03\xa9\x03\x45\0" }, + { 0x1ffd, 0, 4, "\x00\xb4\x00\x00\x00\x20\x03\x01\0" }, + { 0x1ffe, 255, 0, "\x00\x20\x03\x14\0" }, + { 0x2000, 0, 4, "\x20\x02\x00\x00\x00\x20\0" }, + { 0x2001, 0, 4, "\x20\x03\x00\x00\x00\x20\0" }, + { 0x2002, 255, 0, "\x00\x20\0" }, + { 0x2003, 255, 0, "\x00\x20\0" }, + { 0x2004, 255, 0, "\x00\x20\0" }, + { 0x2005, 255, 0, "\x00\x20\0" }, + { 0x2006, 255, 0, "\x00\x20\0" }, + { 0x2007, 255, 0, "\x00\x20\0" }, + { 0x2008, 255, 0, "\x00\x20\0" }, + { 0x2009, 255, 0, "\x00\x20\0" }, + { 0x200a, 255, 0, "\x00\x20\0" }, + { 0x2011, 255, 0, "\x20\x10\0" }, + { 0x2017, 255, 0, "\x00\x20\x03\x33\0" }, + { 0x2024, 255, 0, "\x00\x2e\0" }, + { 0x2025, 255, 0, "\x00\x2e\x00\x2e\0" }, + { 0x2026, 255, 0, "\x00\x2e\x00\x2e\x00\x2e\0" }, + { 0x202f, 255, 0, "\x00\x20\0" }, + { 0x2033, 255, 0, "\x20\x32\x20\x32\0" }, + { 0x2034, 255, 0, "\x20\x32\x20\x32\x20\x32\0" }, + { 0x2036, 255, 0, "\x20\x35\x20\x35\0" }, + { 0x2037, 255, 0, "\x20\x35\x20\x35\x20\x35\0" }, + { 0x203c, 255, 0, "\x00\x21\x00\x21\0" }, + { 0x203e, 255, 0, "\x00\x20\x03\x05\0" }, + { 0x2048, 255, 0, "\x00\x3f\x00\x21\0" }, + { 0x2049, 255, 0, "\x00\x21\x00\x3f\0" }, + { 0x2070, 255, 0, "\x00\x30\0" }, + { 0x2074, 255, 0, "\x00\x34\0" }, + { 0x2075, 255, 0, "\x00\x35\0" }, + { 0x2076, 255, 0, "\x00\x36\0" }, + { 0x2077, 255, 0, "\x00\x37\0" }, + { 0x2078, 255, 0, "\x00\x38\0" }, + { 0x2079, 255, 0, "\x00\x39\0" }, + { 0x207a, 255, 0, "\x00\x2b\0" }, + { 0x207b, 255, 0, "\x22\x12\0" }, + { 0x207c, 255, 0, "\x00\x3d\0" }, + { 0x207d, 255, 0, "\x00\x28\0" }, + { 0x207e, 255, 0, "\x00\x29\0" }, + { 0x207f, 255, 0, "\x00\x6e\0" }, + { 0x2080, 255, 0, "\x00\x30\0" }, + { 0x2081, 255, 0, "\x00\x31\0" }, + { 0x2082, 255, 0, "\x00\x32\0" }, + { 0x2083, 255, 0, "\x00\x33\0" }, + { 0x2084, 255, 0, "\x00\x34\0" }, + { 0x2085, 255, 0, "\x00\x35\0" }, + { 0x2086, 255, 0, "\x00\x36\0" }, + { 0x2087, 255, 0, "\x00\x37\0" }, + { 0x2088, 255, 0, "\x00\x38\0" }, + { 0x2089, 255, 0, "\x00\x39\0" }, + { 0x208a, 255, 0, "\x00\x2b\0" }, + { 0x208b, 255, 0, "\x22\x12\0" }, + { 0x208c, 255, 0, "\x00\x3d\0" }, + { 0x208d, 255, 0, "\x00\x28\0" }, + { 0x208e, 255, 0, "\x00\x29\0" }, + { 0x20a8, 255, 0, "\x00\x52\x00\x73\0" }, + { 0x2100, 255, 0, "\x00\x61\x00\x2f\x00\x63\0" }, + { 0x2101, 255, 0, "\x00\x61\x00\x2f\x00\x73\0" }, + { 0x2102, 255, 0, "\x00\x43\0" }, + { 0x2103, 255, 0, "\x00\xb0\x00\x43\0" }, + { 0x2105, 255, 0, "\x00\x63\x00\x2f\x00\x6f\0" }, + { 0x2106, 255, 0, "\x00\x63\x00\x2f\x00\x75\0" }, + { 0x2107, 255, 0, "\x01\x90\0" }, + { 0x2109, 255, 0, "\x00\xb0\x00\x46\0" }, + { 0x210a, 255, 0, "\x00\x67\0" }, + { 0x210b, 255, 0, "\x00\x48\0" }, + { 0x210c, 255, 0, "\x00\x48\0" }, + { 0x210d, 255, 0, "\x00\x48\0" }, + { 0x210e, 255, 0, "\x00\x68\0" }, + { 0x210f, 255, 0, "\x01\x27\0" }, + { 0x2110, 255, 0, "\x00\x49\0" }, + { 0x2111, 255, 0, "\x00\x49\0" }, + { 0x2112, 255, 0, "\x00\x4c\0" }, + { 0x2113, 255, 0, "\x00\x6c\0" }, + { 0x2115, 255, 0, "\x00\x4e\0" }, + { 0x2116, 255, 0, "\x00\x4e\x00\x6f\0" }, + { 0x2119, 255, 0, "\x00\x50\0" }, + { 0x211a, 255, 0, "\x00\x51\0" }, + { 0x211b, 255, 0, "\x00\x52\0" }, + { 0x211c, 255, 0, "\x00\x52\0" }, + { 0x211d, 255, 0, "\x00\x52\0" }, + { 0x2120, 255, 0, "\x00\x53\x00\x4d\0" }, + { 0x2121, 255, 0, "\x00\x54\x00\x45\x00\x4c\0" }, + { 0x2122, 255, 0, "\x00\x54\x00\x4d\0" }, + { 0x2124, 255, 0, "\x00\x5a\0" }, + { 0x2126, 0, 255, "\x03\xa9\0" }, + { 0x2128, 255, 0, "\x00\x5a\0" }, + { 0x212a, 0, 255, "\x00\x4b\0" }, + { 0x212b, 0, 255, "\x00\x41\x03\x0a\0" }, + { 0x212c, 255, 0, "\x00\x42\0" }, + { 0x212d, 255, 0, "\x00\x43\0" }, + { 0x212f, 255, 0, "\x00\x65\0" }, + { 0x2130, 255, 0, "\x00\x45\0" }, + { 0x2131, 255, 0, "\x00\x46\0" }, + { 0x2133, 255, 0, "\x00\x4d\0" }, + { 0x2134, 255, 0, "\x00\x6f\0" }, + { 0x2135, 255, 0, "\x05\xd0\0" }, + { 0x2136, 255, 0, "\x05\xd1\0" }, + { 0x2137, 255, 0, "\x05\xd2\0" }, + { 0x2138, 255, 0, "\x05\xd3\0" }, + { 0x2139, 255, 0, "\x00\x69\0" }, + { 0x2153, 255, 0, "\x00\x31\x20\x44\x00\x33\0" }, + { 0x2154, 255, 0, "\x00\x32\x20\x44\x00\x33\0" }, + { 0x2155, 255, 0, "\x00\x31\x20\x44\x00\x35\0" }, + { 0x2156, 255, 0, "\x00\x32\x20\x44\x00\x35\0" }, + { 0x2157, 255, 0, "\x00\x33\x20\x44\x00\x35\0" }, + { 0x2158, 255, 0, "\x00\x34\x20\x44\x00\x35\0" }, + { 0x2159, 255, 0, "\x00\x31\x20\x44\x00\x36\0" }, + { 0x215a, 255, 0, "\x00\x35\x20\x44\x00\x36\0" }, + { 0x215b, 255, 0, "\x00\x31\x20\x44\x00\x38\0" }, + { 0x215c, 255, 0, "\x00\x33\x20\x44\x00\x38\0" }, + { 0x215d, 255, 0, "\x00\x35\x20\x44\x00\x38\0" }, + { 0x215e, 255, 0, "\x00\x37\x20\x44\x00\x38\0" }, + { 0x215f, 255, 0, "\x00\x31\x20\x44\0" }, + { 0x2160, 255, 0, "\x00\x49\0" }, + { 0x2161, 255, 0, "\x00\x49\x00\x49\0" }, + { 0x2162, 255, 0, "\x00\x49\x00\x49\x00\x49\0" }, + { 0x2163, 255, 0, "\x00\x49\x00\x56\0" }, + { 0x2164, 255, 0, "\x00\x56\0" }, + { 0x2165, 255, 0, "\x00\x56\x00\x49\0" }, + { 0x2166, 255, 0, "\x00\x56\x00\x49\x00\x49\0" }, + { 0x2167, 255, 0, "\x00\x56\x00\x49\x00\x49\x00\x49\0" }, + { 0x2168, 255, 0, "\x00\x49\x00\x58\0" }, + { 0x2169, 255, 0, "\x00\x58\0" }, + { 0x216a, 255, 0, "\x00\x58\x00\x49\0" }, + { 0x216b, 255, 0, "\x00\x58\x00\x49\x00\x49\0" }, + { 0x216c, 255, 0, "\x00\x4c\0" }, + { 0x216d, 255, 0, "\x00\x43\0" }, + { 0x216e, 255, 0, "\x00\x44\0" }, + { 0x216f, 255, 0, "\x00\x4d\0" }, + { 0x2170, 255, 0, "\x00\x69\0" }, + { 0x2171, 255, 0, "\x00\x69\x00\x69\0" }, + { 0x2172, 255, 0, "\x00\x69\x00\x69\x00\x69\0" }, + { 0x2173, 255, 0, "\x00\x69\x00\x76\0" }, + { 0x2174, 255, 0, "\x00\x76\0" }, + { 0x2175, 255, 0, "\x00\x76\x00\x69\0" }, + { 0x2176, 255, 0, "\x00\x76\x00\x69\x00\x69\0" }, + { 0x2177, 255, 0, "\x00\x76\x00\x69\x00\x69\x00\x69\0" }, + { 0x2178, 255, 0, "\x00\x69\x00\x78\0" }, + { 0x2179, 255, 0, "\x00\x78\0" }, + { 0x217a, 255, 0, "\x00\x78\x00\x69\0" }, + { 0x217b, 255, 0, "\x00\x78\x00\x69\x00\x69\0" }, + { 0x217c, 255, 0, "\x00\x6c\0" }, + { 0x217d, 255, 0, "\x00\x63\0" }, + { 0x217e, 255, 0, "\x00\x64\0" }, + { 0x217f, 255, 0, "\x00\x6d\0" }, + { 0x219a, 0, 255, "\x21\x90\x03\x38\0" }, + { 0x219b, 0, 255, "\x21\x92\x03\x38\0" }, + { 0x21ae, 0, 255, "\x21\x94\x03\x38\0" }, + { 0x21cd, 0, 255, "\x21\xd0\x03\x38\0" }, + { 0x21ce, 0, 255, "\x21\xd4\x03\x38\0" }, + { 0x21cf, 0, 255, "\x21\xd2\x03\x38\0" }, + { 0x2204, 0, 255, "\x22\x03\x03\x38\0" }, + { 0x2209, 0, 255, "\x22\x08\x03\x38\0" }, + { 0x220c, 0, 255, "\x22\x0b\x03\x38\0" }, + { 0x2224, 0, 255, "\x22\x23\x03\x38\0" }, + { 0x2226, 0, 255, "\x22\x25\x03\x38\0" }, + { 0x222c, 255, 0, "\x22\x2b\x22\x2b\0" }, + { 0x222d, 255, 0, "\x22\x2b\x22\x2b\x22\x2b\0" }, + { 0x222f, 255, 0, "\x22\x2e\x22\x2e\0" }, + { 0x2230, 255, 0, "\x22\x2e\x22\x2e\x22\x2e\0" }, + { 0x2241, 0, 255, "\x22\x3c\x03\x38\0" }, + { 0x2244, 0, 255, "\x22\x43\x03\x38\0" }, + { 0x2247, 0, 255, "\x22\x45\x03\x38\0" }, + { 0x2249, 0, 255, "\x22\x48\x03\x38\0" }, + { 0x2260, 0, 255, "\x00\x3d\x03\x38\0" }, + { 0x2262, 0, 255, "\x22\x61\x03\x38\0" }, + { 0x226d, 0, 255, "\x22\x4d\x03\x38\0" }, + { 0x226e, 0, 255, "\x00\x3c\x03\x38\0" }, + { 0x226f, 0, 255, "\x00\x3e\x03\x38\0" }, + { 0x2270, 0, 255, "\x22\x64\x03\x38\0" }, + { 0x2271, 0, 255, "\x22\x65\x03\x38\0" }, + { 0x2274, 0, 255, "\x22\x72\x03\x38\0" }, + { 0x2275, 0, 255, "\x22\x73\x03\x38\0" }, + { 0x2278, 0, 255, "\x22\x76\x03\x38\0" }, + { 0x2279, 0, 255, "\x22\x77\x03\x38\0" }, + { 0x2280, 0, 255, "\x22\x7a\x03\x38\0" }, + { 0x2281, 0, 255, "\x22\x7b\x03\x38\0" }, + { 0x2284, 0, 255, "\x22\x82\x03\x38\0" }, + { 0x2285, 0, 255, "\x22\x83\x03\x38\0" }, + { 0x2288, 0, 255, "\x22\x86\x03\x38\0" }, + { 0x2289, 0, 255, "\x22\x87\x03\x38\0" }, + { 0x22ac, 0, 255, "\x22\xa2\x03\x38\0" }, + { 0x22ad, 0, 255, "\x22\xa8\x03\x38\0" }, + { 0x22ae, 0, 255, "\x22\xa9\x03\x38\0" }, + { 0x22af, 0, 255, "\x22\xab\x03\x38\0" }, + { 0x22e0, 0, 255, "\x22\x7c\x03\x38\0" }, + { 0x22e1, 0, 255, "\x22\x7d\x03\x38\0" }, + { 0x22e2, 0, 255, "\x22\x91\x03\x38\0" }, + { 0x22e3, 0, 255, "\x22\x92\x03\x38\0" }, + { 0x22ea, 0, 255, "\x22\xb2\x03\x38\0" }, + { 0x22eb, 0, 255, "\x22\xb3\x03\x38\0" }, + { 0x22ec, 0, 255, "\x22\xb4\x03\x38\0" }, + { 0x22ed, 0, 255, "\x22\xb5\x03\x38\0" }, + { 0x2329, 0, 255, "\x30\x08\0" }, + { 0x232a, 0, 255, "\x30\x09\0" }, + { 0x2460, 255, 0, "\x00\x31\0" }, + { 0x2461, 255, 0, "\x00\x32\0" }, + { 0x2462, 255, 0, "\x00\x33\0" }, + { 0x2463, 255, 0, "\x00\x34\0" }, + { 0x2464, 255, 0, "\x00\x35\0" }, + { 0x2465, 255, 0, "\x00\x36\0" }, + { 0x2466, 255, 0, "\x00\x37\0" }, + { 0x2467, 255, 0, "\x00\x38\0" }, + { 0x2468, 255, 0, "\x00\x39\0" }, + { 0x2469, 255, 0, "\x00\x31\x00\x30\0" }, + { 0x246a, 255, 0, "\x00\x31\x00\x31\0" }, + { 0x246b, 255, 0, "\x00\x31\x00\x32\0" }, + { 0x246c, 255, 0, "\x00\x31\x00\x33\0" }, + { 0x246d, 255, 0, "\x00\x31\x00\x34\0" }, + { 0x246e, 255, 0, "\x00\x31\x00\x35\0" }, + { 0x246f, 255, 0, "\x00\x31\x00\x36\0" }, + { 0x2470, 255, 0, "\x00\x31\x00\x37\0" }, + { 0x2471, 255, 0, "\x00\x31\x00\x38\0" }, + { 0x2472, 255, 0, "\x00\x31\x00\x39\0" }, + { 0x2473, 255, 0, "\x00\x32\x00\x30\0" }, + { 0x2474, 255, 0, "\x00\x28\x00\x31\x00\x29\0" }, + { 0x2475, 255, 0, "\x00\x28\x00\x32\x00\x29\0" }, + { 0x2476, 255, 0, "\x00\x28\x00\x33\x00\x29\0" }, + { 0x2477, 255, 0, "\x00\x28\x00\x34\x00\x29\0" }, + { 0x2478, 255, 0, "\x00\x28\x00\x35\x00\x29\0" }, + { 0x2479, 255, 0, "\x00\x28\x00\x36\x00\x29\0" }, + { 0x247a, 255, 0, "\x00\x28\x00\x37\x00\x29\0" }, + { 0x247b, 255, 0, "\x00\x28\x00\x38\x00\x29\0" }, + { 0x247c, 255, 0, "\x00\x28\x00\x39\x00\x29\0" }, + { 0x247d, 255, 0, "\x00\x28\x00\x31\x00\x30\x00\x29\0" }, + { 0x247e, 255, 0, "\x00\x28\x00\x31\x00\x31\x00\x29\0" }, + { 0x247f, 255, 0, "\x00\x28\x00\x31\x00\x32\x00\x29\0" }, + { 0x2480, 255, 0, "\x00\x28\x00\x31\x00\x33\x00\x29\0" }, + { 0x2481, 255, 0, "\x00\x28\x00\x31\x00\x34\x00\x29\0" }, + { 0x2482, 255, 0, "\x00\x28\x00\x31\x00\x35\x00\x29\0" }, + { 0x2483, 255, 0, "\x00\x28\x00\x31\x00\x36\x00\x29\0" }, + { 0x2484, 255, 0, "\x00\x28\x00\x31\x00\x37\x00\x29\0" }, + { 0x2485, 255, 0, "\x00\x28\x00\x31\x00\x38\x00\x29\0" }, + { 0x2486, 255, 0, "\x00\x28\x00\x31\x00\x39\x00\x29\0" }, + { 0x2487, 255, 0, "\x00\x28\x00\x32\x00\x30\x00\x29\0" }, + { 0x2488, 255, 0, "\x00\x31\x00\x2e\0" }, + { 0x2489, 255, 0, "\x00\x32\x00\x2e\0" }, + { 0x248a, 255, 0, "\x00\x33\x00\x2e\0" }, + { 0x248b, 255, 0, "\x00\x34\x00\x2e\0" }, + { 0x248c, 255, 0, "\x00\x35\x00\x2e\0" }, + { 0x248d, 255, 0, "\x00\x36\x00\x2e\0" }, + { 0x248e, 255, 0, "\x00\x37\x00\x2e\0" }, + { 0x248f, 255, 0, "\x00\x38\x00\x2e\0" }, + { 0x2490, 255, 0, "\x00\x39\x00\x2e\0" }, + { 0x2491, 255, 0, "\x00\x31\x00\x30\x00\x2e\0" }, + { 0x2492, 255, 0, "\x00\x31\x00\x31\x00\x2e\0" }, + { 0x2493, 255, 0, "\x00\x31\x00\x32\x00\x2e\0" }, + { 0x2494, 255, 0, "\x00\x31\x00\x33\x00\x2e\0" }, + { 0x2495, 255, 0, "\x00\x31\x00\x34\x00\x2e\0" }, + { 0x2496, 255, 0, "\x00\x31\x00\x35\x00\x2e\0" }, + { 0x2497, 255, 0, "\x00\x31\x00\x36\x00\x2e\0" }, + { 0x2498, 255, 0, "\x00\x31\x00\x37\x00\x2e\0" }, + { 0x2499, 255, 0, "\x00\x31\x00\x38\x00\x2e\0" }, + { 0x249a, 255, 0, "\x00\x31\x00\x39\x00\x2e\0" }, + { 0x249b, 255, 0, "\x00\x32\x00\x30\x00\x2e\0" }, + { 0x249c, 255, 0, "\x00\x28\x00\x61\x00\x29\0" }, + { 0x249d, 255, 0, "\x00\x28\x00\x62\x00\x29\0" }, + { 0x249e, 255, 0, "\x00\x28\x00\x63\x00\x29\0" }, + { 0x249f, 255, 0, "\x00\x28\x00\x64\x00\x29\0" }, + { 0x24a0, 255, 0, "\x00\x28\x00\x65\x00\x29\0" }, + { 0x24a1, 255, 0, "\x00\x28\x00\x66\x00\x29\0" }, + { 0x24a2, 255, 0, "\x00\x28\x00\x67\x00\x29\0" }, + { 0x24a3, 255, 0, "\x00\x28\x00\x68\x00\x29\0" }, + { 0x24a4, 255, 0, "\x00\x28\x00\x69\x00\x29\0" }, + { 0x24a5, 255, 0, "\x00\x28\x00\x6a\x00\x29\0" }, + { 0x24a6, 255, 0, "\x00\x28\x00\x6b\x00\x29\0" }, + { 0x24a7, 255, 0, "\x00\x28\x00\x6c\x00\x29\0" }, + { 0x24a8, 255, 0, "\x00\x28\x00\x6d\x00\x29\0" }, + { 0x24a9, 255, 0, "\x00\x28\x00\x6e\x00\x29\0" }, + { 0x24aa, 255, 0, "\x00\x28\x00\x6f\x00\x29\0" }, + { 0x24ab, 255, 0, "\x00\x28\x00\x70\x00\x29\0" }, + { 0x24ac, 255, 0, "\x00\x28\x00\x71\x00\x29\0" }, + { 0x24ad, 255, 0, "\x00\x28\x00\x72\x00\x29\0" }, + { 0x24ae, 255, 0, "\x00\x28\x00\x73\x00\x29\0" }, + { 0x24af, 255, 0, "\x00\x28\x00\x74\x00\x29\0" }, + { 0x24b0, 255, 0, "\x00\x28\x00\x75\x00\x29\0" }, + { 0x24b1, 255, 0, "\x00\x28\x00\x76\x00\x29\0" }, + { 0x24b2, 255, 0, "\x00\x28\x00\x77\x00\x29\0" }, + { 0x24b3, 255, 0, "\x00\x28\x00\x78\x00\x29\0" }, + { 0x24b4, 255, 0, "\x00\x28\x00\x79\x00\x29\0" }, + { 0x24b5, 255, 0, "\x00\x28\x00\x7a\x00\x29\0" }, + { 0x24b6, 255, 0, "\x00\x41\0" }, + { 0x24b7, 255, 0, "\x00\x42\0" }, + { 0x24b8, 255, 0, "\x00\x43\0" }, + { 0x24b9, 255, 0, "\x00\x44\0" }, + { 0x24ba, 255, 0, "\x00\x45\0" }, + { 0x24bb, 255, 0, "\x00\x46\0" }, + { 0x24bc, 255, 0, "\x00\x47\0" }, + { 0x24bd, 255, 0, "\x00\x48\0" }, + { 0x24be, 255, 0, "\x00\x49\0" }, + { 0x24bf, 255, 0, "\x00\x4a\0" }, + { 0x24c0, 255, 0, "\x00\x4b\0" }, + { 0x24c1, 255, 0, "\x00\x4c\0" }, + { 0x24c2, 255, 0, "\x00\x4d\0" }, + { 0x24c3, 255, 0, "\x00\x4e\0" }, + { 0x24c4, 255, 0, "\x00\x4f\0" }, + { 0x24c5, 255, 0, "\x00\x50\0" }, + { 0x24c6, 255, 0, "\x00\x51\0" }, + { 0x24c7, 255, 0, "\x00\x52\0" }, + { 0x24c8, 255, 0, "\x00\x53\0" }, + { 0x24c9, 255, 0, "\x00\x54\0" }, + { 0x24ca, 255, 0, "\x00\x55\0" }, + { 0x24cb, 255, 0, "\x00\x56\0" }, + { 0x24cc, 255, 0, "\x00\x57\0" }, + { 0x24cd, 255, 0, "\x00\x58\0" }, + { 0x24ce, 255, 0, "\x00\x59\0" }, + { 0x24cf, 255, 0, "\x00\x5a\0" }, + { 0x24d0, 255, 0, "\x00\x61\0" }, + { 0x24d1, 255, 0, "\x00\x62\0" }, + { 0x24d2, 255, 0, "\x00\x63\0" }, + { 0x24d3, 255, 0, "\x00\x64\0" }, + { 0x24d4, 255, 0, "\x00\x65\0" }, + { 0x24d5, 255, 0, "\x00\x66\0" }, + { 0x24d6, 255, 0, "\x00\x67\0" }, + { 0x24d7, 255, 0, "\x00\x68\0" }, + { 0x24d8, 255, 0, "\x00\x69\0" }, + { 0x24d9, 255, 0, "\x00\x6a\0" }, + { 0x24da, 255, 0, "\x00\x6b\0" }, + { 0x24db, 255, 0, "\x00\x6c\0" }, + { 0x24dc, 255, 0, "\x00\x6d\0" }, + { 0x24dd, 255, 0, "\x00\x6e\0" }, + { 0x24de, 255, 0, "\x00\x6f\0" }, + { 0x24df, 255, 0, "\x00\x70\0" }, + { 0x24e0, 255, 0, "\x00\x71\0" }, + { 0x24e1, 255, 0, "\x00\x72\0" }, + { 0x24e2, 255, 0, "\x00\x73\0" }, + { 0x24e3, 255, 0, "\x00\x74\0" }, + { 0x24e4, 255, 0, "\x00\x75\0" }, + { 0x24e5, 255, 0, "\x00\x76\0" }, + { 0x24e6, 255, 0, "\x00\x77\0" }, + { 0x24e7, 255, 0, "\x00\x78\0" }, + { 0x24e8, 255, 0, "\x00\x79\0" }, + { 0x24e9, 255, 0, "\x00\x7a\0" }, + { 0x24ea, 255, 0, "\x00\x30\0" }, + { 0x2e9f, 255, 0, "\x6b\xcd\0" }, + { 0x2ef3, 255, 0, "\x9f\x9f\0" }, + { 0x2f00, 255, 0, "\x4e\x00\0" }, + { 0x2f01, 255, 0, "\x4e\x28\0" }, + { 0x2f02, 255, 0, "\x4e\x36\0" }, + { 0x2f03, 255, 0, "\x4e\x3f\0" }, + { 0x2f04, 255, 0, "\x4e\x59\0" }, + { 0x2f05, 255, 0, "\x4e\x85\0" }, + { 0x2f06, 255, 0, "\x4e\x8c\0" }, + { 0x2f07, 255, 0, "\x4e\xa0\0" }, + { 0x2f08, 255, 0, "\x4e\xba\0" }, + { 0x2f09, 255, 0, "\x51\x3f\0" }, + { 0x2f0a, 255, 0, "\x51\x65\0" }, + { 0x2f0b, 255, 0, "\x51\x6b\0" }, + { 0x2f0c, 255, 0, "\x51\x82\0" }, + { 0x2f0d, 255, 0, "\x51\x96\0" }, + { 0x2f0e, 255, 0, "\x51\xab\0" }, + { 0x2f0f, 255, 0, "\x51\xe0\0" }, + { 0x2f10, 255, 0, "\x51\xf5\0" }, + { 0x2f11, 255, 0, "\x52\x00\0" }, + { 0x2f12, 255, 0, "\x52\x9b\0" }, + { 0x2f13, 255, 0, "\x52\xf9\0" }, + { 0x2f14, 255, 0, "\x53\x15\0" }, + { 0x2f15, 255, 0, "\x53\x1a\0" }, + { 0x2f16, 255, 0, "\x53\x38\0" }, + { 0x2f17, 255, 0, "\x53\x41\0" }, + { 0x2f18, 255, 0, "\x53\x5c\0" }, + { 0x2f19, 255, 0, "\x53\x69\0" }, + { 0x2f1a, 255, 0, "\x53\x82\0" }, + { 0x2f1b, 255, 0, "\x53\xb6\0" }, + { 0x2f1c, 255, 0, "\x53\xc8\0" }, + { 0x2f1d, 255, 0, "\x53\xe3\0" }, + { 0x2f1e, 255, 0, "\x56\xd7\0" }, + { 0x2f1f, 255, 0, "\x57\x1f\0" }, + { 0x2f20, 255, 0, "\x58\xeb\0" }, + { 0x2f21, 255, 0, "\x59\x02\0" }, + { 0x2f22, 255, 0, "\x59\x0a\0" }, + { 0x2f23, 255, 0, "\x59\x15\0" }, + { 0x2f24, 255, 0, "\x59\x27\0" }, + { 0x2f25, 255, 0, "\x59\x73\0" }, + { 0x2f26, 255, 0, "\x5b\x50\0" }, + { 0x2f27, 255, 0, "\x5b\x80\0" }, + { 0x2f28, 255, 0, "\x5b\xf8\0" }, + { 0x2f29, 255, 0, "\x5c\x0f\0" }, + { 0x2f2a, 255, 0, "\x5c\x22\0" }, + { 0x2f2b, 255, 0, "\x5c\x38\0" }, + { 0x2f2c, 255, 0, "\x5c\x6e\0" }, + { 0x2f2d, 255, 0, "\x5c\x71\0" }, + { 0x2f2e, 255, 0, "\x5d\xdb\0" }, + { 0x2f2f, 255, 0, "\x5d\xe5\0" }, + { 0x2f30, 255, 0, "\x5d\xf1\0" }, + { 0x2f31, 255, 0, "\x5d\xfe\0" }, + { 0x2f32, 255, 0, "\x5e\x72\0" }, + { 0x2f33, 255, 0, "\x5e\x7a\0" }, + { 0x2f34, 255, 0, "\x5e\x7f\0" }, + { 0x2f35, 255, 0, "\x5e\xf4\0" }, + { 0x2f36, 255, 0, "\x5e\xfe\0" }, + { 0x2f37, 255, 0, "\x5f\x0b\0" }, + { 0x2f38, 255, 0, "\x5f\x13\0" }, + { 0x2f39, 255, 0, "\x5f\x50\0" }, + { 0x2f3a, 255, 0, "\x5f\x61\0" }, + { 0x2f3b, 255, 0, "\x5f\x73\0" }, + { 0x2f3c, 255, 0, "\x5f\xc3\0" }, + { 0x2f3d, 255, 0, "\x62\x08\0" }, + { 0x2f3e, 255, 0, "\x62\x36\0" }, + { 0x2f3f, 255, 0, "\x62\x4b\0" }, + { 0x2f40, 255, 0, "\x65\x2f\0" }, + { 0x2f41, 255, 0, "\x65\x34\0" }, + { 0x2f42, 255, 0, "\x65\x87\0" }, + { 0x2f43, 255, 0, "\x65\x97\0" }, + { 0x2f44, 255, 0, "\x65\xa4\0" }, + { 0x2f45, 255, 0, "\x65\xb9\0" }, + { 0x2f46, 255, 0, "\x65\xe0\0" }, + { 0x2f47, 255, 0, "\x65\xe5\0" }, + { 0x2f48, 255, 0, "\x66\xf0\0" }, + { 0x2f49, 255, 0, "\x67\x08\0" }, + { 0x2f4a, 255, 0, "\x67\x28\0" }, + { 0x2f4b, 255, 0, "\x6b\x20\0" }, + { 0x2f4c, 255, 0, "\x6b\x62\0" }, + { 0x2f4d, 255, 0, "\x6b\x79\0" }, + { 0x2f4e, 255, 0, "\x6b\xb3\0" }, + { 0x2f4f, 255, 0, "\x6b\xcb\0" }, + { 0x2f50, 255, 0, "\x6b\xd4\0" }, + { 0x2f51, 255, 0, "\x6b\xdb\0" }, + { 0x2f52, 255, 0, "\x6c\x0f\0" }, + { 0x2f53, 255, 0, "\x6c\x14\0" }, + { 0x2f54, 255, 0, "\x6c\x34\0" }, + { 0x2f55, 255, 0, "\x70\x6b\0" }, + { 0x2f56, 255, 0, "\x72\x2a\0" }, + { 0x2f57, 255, 0, "\x72\x36\0" }, + { 0x2f58, 255, 0, "\x72\x3b\0" }, + { 0x2f59, 255, 0, "\x72\x3f\0" }, + { 0x2f5a, 255, 0, "\x72\x47\0" }, + { 0x2f5b, 255, 0, "\x72\x59\0" }, + { 0x2f5c, 255, 0, "\x72\x5b\0" }, + { 0x2f5d, 255, 0, "\x72\xac\0" }, + { 0x2f5e, 255, 0, "\x73\x84\0" }, + { 0x2f5f, 255, 0, "\x73\x89\0" }, + { 0x2f60, 255, 0, "\x74\xdc\0" }, + { 0x2f61, 255, 0, "\x74\xe6\0" }, + { 0x2f62, 255, 0, "\x75\x18\0" }, + { 0x2f63, 255, 0, "\x75\x1f\0" }, + { 0x2f64, 255, 0, "\x75\x28\0" }, + { 0x2f65, 255, 0, "\x75\x30\0" }, + { 0x2f66, 255, 0, "\x75\x8b\0" }, + { 0x2f67, 255, 0, "\x75\x92\0" }, + { 0x2f68, 255, 0, "\x76\x76\0" }, + { 0x2f69, 255, 0, "\x76\x7d\0" }, + { 0x2f6a, 255, 0, "\x76\xae\0" }, + { 0x2f6b, 255, 0, "\x76\xbf\0" }, + { 0x2f6c, 255, 0, "\x76\xee\0" }, + { 0x2f6d, 255, 0, "\x77\xdb\0" }, + { 0x2f6e, 255, 0, "\x77\xe2\0" }, + { 0x2f6f, 255, 0, "\x77\xf3\0" }, + { 0x2f70, 255, 0, "\x79\x3a\0" }, + { 0x2f71, 255, 0, "\x79\xb8\0" }, + { 0x2f72, 255, 0, "\x79\xbe\0" }, + { 0x2f73, 255, 0, "\x7a\x74\0" }, + { 0x2f74, 255, 0, "\x7a\xcb\0" }, + { 0x2f75, 255, 0, "\x7a\xf9\0" }, + { 0x2f76, 255, 0, "\x7c\x73\0" }, + { 0x2f77, 255, 0, "\x7c\xf8\0" }, + { 0x2f78, 255, 0, "\x7f\x36\0" }, + { 0x2f79, 255, 0, "\x7f\x51\0" }, + { 0x2f7a, 255, 0, "\x7f\x8a\0" }, + { 0x2f7b, 255, 0, "\x7f\xbd\0" }, + { 0x2f7c, 255, 0, "\x80\x01\0" }, + { 0x2f7d, 255, 0, "\x80\x0c\0" }, + { 0x2f7e, 255, 0, "\x80\x12\0" }, + { 0x2f7f, 255, 0, "\x80\x33\0" }, + { 0x2f80, 255, 0, "\x80\x7f\0" }, + { 0x2f81, 255, 0, "\x80\x89\0" }, + { 0x2f82, 255, 0, "\x81\xe3\0" }, + { 0x2f83, 255, 0, "\x81\xea\0" }, + { 0x2f84, 255, 0, "\x81\xf3\0" }, + { 0x2f85, 255, 0, "\x81\xfc\0" }, + { 0x2f86, 255, 0, "\x82\x0c\0" }, + { 0x2f87, 255, 0, "\x82\x1b\0" }, + { 0x2f88, 255, 0, "\x82\x1f\0" }, + { 0x2f89, 255, 0, "\x82\x6e\0" }, + { 0x2f8a, 255, 0, "\x82\x72\0" }, + { 0x2f8b, 255, 0, "\x82\x78\0" }, + { 0x2f8c, 255, 0, "\x86\x4d\0" }, + { 0x2f8d, 255, 0, "\x86\x6b\0" }, + { 0x2f8e, 255, 0, "\x88\x40\0" }, + { 0x2f8f, 255, 0, "\x88\x4c\0" }, + { 0x2f90, 255, 0, "\x88\x63\0" }, + { 0x2f91, 255, 0, "\x89\x7e\0" }, + { 0x2f92, 255, 0, "\x89\x8b\0" }, + { 0x2f93, 255, 0, "\x89\xd2\0" }, + { 0x2f94, 255, 0, "\x8a\x00\0" }, + { 0x2f95, 255, 0, "\x8c\x37\0" }, + { 0x2f96, 255, 0, "\x8c\x46\0" }, + { 0x2f97, 255, 0, "\x8c\x55\0" }, + { 0x2f98, 255, 0, "\x8c\x78\0" }, + { 0x2f99, 255, 0, "\x8c\x9d\0" }, + { 0x2f9a, 255, 0, "\x8d\x64\0" }, + { 0x2f9b, 255, 0, "\x8d\x70\0" }, + { 0x2f9c, 255, 0, "\x8d\xb3\0" }, + { 0x2f9d, 255, 0, "\x8e\xab\0" }, + { 0x2f9e, 255, 0, "\x8e\xca\0" }, + { 0x2f9f, 255, 0, "\x8f\x9b\0" }, + { 0x2fa0, 255, 0, "\x8f\xb0\0" }, + { 0x2fa1, 255, 0, "\x8f\xb5\0" }, + { 0x2fa2, 255, 0, "\x90\x91\0" }, + { 0x2fa3, 255, 0, "\x91\x49\0" }, + { 0x2fa4, 255, 0, "\x91\xc6\0" }, + { 0x2fa5, 255, 0, "\x91\xcc\0" }, + { 0x2fa6, 255, 0, "\x91\xd1\0" }, + { 0x2fa7, 255, 0, "\x95\x77\0" }, + { 0x2fa8, 255, 0, "\x95\x80\0" }, + { 0x2fa9, 255, 0, "\x96\x1c\0" }, + { 0x2faa, 255, 0, "\x96\xb6\0" }, + { 0x2fab, 255, 0, "\x96\xb9\0" }, + { 0x2fac, 255, 0, "\x96\xe8\0" }, + { 0x2fad, 255, 0, "\x97\x51\0" }, + { 0x2fae, 255, 0, "\x97\x5e\0" }, + { 0x2faf, 255, 0, "\x97\x62\0" }, + { 0x2fb0, 255, 0, "\x97\x69\0" }, + { 0x2fb1, 255, 0, "\x97\xcb\0" }, + { 0x2fb2, 255, 0, "\x97\xed\0" }, + { 0x2fb3, 255, 0, "\x97\xf3\0" }, + { 0x2fb4, 255, 0, "\x98\x01\0" }, + { 0x2fb5, 255, 0, "\x98\xa8\0" }, + { 0x2fb6, 255, 0, "\x98\xdb\0" }, + { 0x2fb7, 255, 0, "\x98\xdf\0" }, + { 0x2fb8, 255, 0, "\x99\x96\0" }, + { 0x2fb9, 255, 0, "\x99\x99\0" }, + { 0x2fba, 255, 0, "\x99\xac\0" }, + { 0x2fbb, 255, 0, "\x9a\xa8\0" }, + { 0x2fbc, 255, 0, "\x9a\xd8\0" }, + { 0x2fbd, 255, 0, "\x9a\xdf\0" }, + { 0x2fbe, 255, 0, "\x9b\x25\0" }, + { 0x2fbf, 255, 0, "\x9b\x2f\0" }, + { 0x2fc0, 255, 0, "\x9b\x32\0" }, + { 0x2fc1, 255, 0, "\x9b\x3c\0" }, + { 0x2fc2, 255, 0, "\x9b\x5a\0" }, + { 0x2fc3, 255, 0, "\x9c\xe5\0" }, + { 0x2fc4, 255, 0, "\x9e\x75\0" }, + { 0x2fc5, 255, 0, "\x9e\x7f\0" }, + { 0x2fc6, 255, 0, "\x9e\xa5\0" }, + { 0x2fc7, 255, 0, "\x9e\xbb\0" }, + { 0x2fc8, 255, 0, "\x9e\xc3\0" }, + { 0x2fc9, 255, 0, "\x9e\xcd\0" }, + { 0x2fca, 255, 0, "\x9e\xd1\0" }, + { 0x2fcb, 255, 0, "\x9e\xf9\0" }, + { 0x2fcc, 255, 0, "\x9e\xfd\0" }, + { 0x2fcd, 255, 0, "\x9f\x0e\0" }, + { 0x2fce, 255, 0, "\x9f\x13\0" }, + { 0x2fcf, 255, 0, "\x9f\x20\0" }, + { 0x2fd0, 255, 0, "\x9f\x3b\0" }, + { 0x2fd1, 255, 0, "\x9f\x4a\0" }, + { 0x2fd2, 255, 0, "\x9f\x52\0" }, + { 0x2fd3, 255, 0, "\x9f\x8d\0" }, + { 0x2fd4, 255, 0, "\x9f\x9c\0" }, + { 0x2fd5, 255, 0, "\x9f\xa0\0" }, + { 0x3000, 255, 0, "\x00\x20\0" }, + { 0x3036, 255, 0, "\x30\x12\0" }, + { 0x3038, 255, 0, "\x53\x41\0" }, + { 0x3039, 255, 0, "\x53\x44\0" }, + { 0x303a, 255, 0, "\x53\x45\0" }, + { 0x304c, 0, 255, "\x30\x4b\x30\x99\0" }, + { 0x304e, 0, 255, "\x30\x4d\x30\x99\0" }, + { 0x3050, 0, 255, "\x30\x4f\x30\x99\0" }, + { 0x3052, 0, 255, "\x30\x51\x30\x99\0" }, + { 0x3054, 0, 255, "\x30\x53\x30\x99\0" }, + { 0x3056, 0, 255, "\x30\x55\x30\x99\0" }, + { 0x3058, 0, 255, "\x30\x57\x30\x99\0" }, + { 0x305a, 0, 255, "\x30\x59\x30\x99\0" }, + { 0x305c, 0, 255, "\x30\x5b\x30\x99\0" }, + { 0x305e, 0, 255, "\x30\x5d\x30\x99\0" }, + { 0x3060, 0, 255, "\x30\x5f\x30\x99\0" }, + { 0x3062, 0, 255, "\x30\x61\x30\x99\0" }, + { 0x3065, 0, 255, "\x30\x64\x30\x99\0" }, + { 0x3067, 0, 255, "\x30\x66\x30\x99\0" }, + { 0x3069, 0, 255, "\x30\x68\x30\x99\0" }, + { 0x3070, 0, 255, "\x30\x6f\x30\x99\0" }, + { 0x3071, 0, 255, "\x30\x6f\x30\x9a\0" }, + { 0x3073, 0, 255, "\x30\x72\x30\x99\0" }, + { 0x3074, 0, 255, "\x30\x72\x30\x9a\0" }, + { 0x3076, 0, 255, "\x30\x75\x30\x99\0" }, + { 0x3077, 0, 255, "\x30\x75\x30\x9a\0" }, + { 0x3079, 0, 255, "\x30\x78\x30\x99\0" }, + { 0x307a, 0, 255, "\x30\x78\x30\x9a\0" }, + { 0x307c, 0, 255, "\x30\x7b\x30\x99\0" }, + { 0x307d, 0, 255, "\x30\x7b\x30\x9a\0" }, + { 0x3094, 0, 255, "\x30\x46\x30\x99\0" }, + { 0x309b, 255, 0, "\x00\x20\x30\x99\0" }, + { 0x309c, 255, 0, "\x00\x20\x30\x9a\0" }, + { 0x309e, 0, 255, "\x30\x9d\x30\x99\0" }, + { 0x30ac, 0, 255, "\x30\xab\x30\x99\0" }, + { 0x30ae, 0, 255, "\x30\xad\x30\x99\0" }, + { 0x30b0, 0, 255, "\x30\xaf\x30\x99\0" }, + { 0x30b2, 0, 255, "\x30\xb1\x30\x99\0" }, + { 0x30b4, 0, 255, "\x30\xb3\x30\x99\0" }, + { 0x30b6, 0, 255, "\x30\xb5\x30\x99\0" }, + { 0x30b8, 0, 255, "\x30\xb7\x30\x99\0" }, + { 0x30ba, 0, 255, "\x30\xb9\x30\x99\0" }, + { 0x30bc, 0, 255, "\x30\xbb\x30\x99\0" }, + { 0x30be, 0, 255, "\x30\xbd\x30\x99\0" }, + { 0x30c0, 0, 255, "\x30\xbf\x30\x99\0" }, + { 0x30c2, 0, 255, "\x30\xc1\x30\x99\0" }, + { 0x30c5, 0, 255, "\x30\xc4\x30\x99\0" }, + { 0x30c7, 0, 255, "\x30\xc6\x30\x99\0" }, + { 0x30c9, 0, 255, "\x30\xc8\x30\x99\0" }, + { 0x30d0, 0, 255, "\x30\xcf\x30\x99\0" }, + { 0x30d1, 0, 255, "\x30\xcf\x30\x9a\0" }, + { 0x30d3, 0, 255, "\x30\xd2\x30\x99\0" }, + { 0x30d4, 0, 255, "\x30\xd2\x30\x9a\0" }, + { 0x30d6, 0, 255, "\x30\xd5\x30\x99\0" }, + { 0x30d7, 0, 255, "\x30\xd5\x30\x9a\0" }, + { 0x30d9, 0, 255, "\x30\xd8\x30\x99\0" }, + { 0x30da, 0, 255, "\x30\xd8\x30\x9a\0" }, + { 0x30dc, 0, 255, "\x30\xdb\x30\x99\0" }, + { 0x30dd, 0, 255, "\x30\xdb\x30\x9a\0" }, + { 0x30f4, 0, 255, "\x30\xa6\x30\x99\0" }, + { 0x30f7, 0, 255, "\x30\xef\x30\x99\0" }, + { 0x30f8, 0, 255, "\x30\xf0\x30\x99\0" }, + { 0x30f9, 0, 255, "\x30\xf1\x30\x99\0" }, + { 0x30fa, 0, 255, "\x30\xf2\x30\x99\0" }, + { 0x30fe, 0, 255, "\x30\xfd\x30\x99\0" }, + { 0x3131, 255, 0, "\x11\x00\0" }, + { 0x3132, 255, 0, "\x11\x01\0" }, + { 0x3133, 255, 0, "\x11\xaa\0" }, + { 0x3134, 255, 0, "\x11\x02\0" }, + { 0x3135, 255, 0, "\x11\xac\0" }, + { 0x3136, 255, 0, "\x11\xad\0" }, + { 0x3137, 255, 0, "\x11\x03\0" }, + { 0x3138, 255, 0, "\x11\x04\0" }, + { 0x3139, 255, 0, "\x11\x05\0" }, + { 0x313a, 255, 0, "\x11\xb0\0" }, + { 0x313b, 255, 0, "\x11\xb1\0" }, + { 0x313c, 255, 0, "\x11\xb2\0" }, + { 0x313d, 255, 0, "\x11\xb3\0" }, + { 0x313e, 255, 0, "\x11\xb4\0" }, + { 0x313f, 255, 0, "\x11\xb5\0" }, + { 0x3140, 255, 0, "\x11\x1a\0" }, + { 0x3141, 255, 0, "\x11\x06\0" }, + { 0x3142, 255, 0, "\x11\x07\0" }, + { 0x3143, 255, 0, "\x11\x08\0" }, + { 0x3144, 255, 0, "\x11\x21\0" }, + { 0x3145, 255, 0, "\x11\x09\0" }, + { 0x3146, 255, 0, "\x11\x0a\0" }, + { 0x3147, 255, 0, "\x11\x0b\0" }, + { 0x3148, 255, 0, "\x11\x0c\0" }, + { 0x3149, 255, 0, "\x11\x0d\0" }, + { 0x314a, 255, 0, "\x11\x0e\0" }, + { 0x314b, 255, 0, "\x11\x0f\0" }, + { 0x314c, 255, 0, "\x11\x10\0" }, + { 0x314d, 255, 0, "\x11\x11\0" }, + { 0x314e, 255, 0, "\x11\x12\0" }, + { 0x314f, 255, 0, "\x11\x61\0" }, + { 0x3150, 255, 0, "\x11\x62\0" }, + { 0x3151, 255, 0, "\x11\x63\0" }, + { 0x3152, 255, 0, "\x11\x64\0" }, + { 0x3153, 255, 0, "\x11\x65\0" }, + { 0x3154, 255, 0, "\x11\x66\0" }, + { 0x3155, 255, 0, "\x11\x67\0" }, + { 0x3156, 255, 0, "\x11\x68\0" }, + { 0x3157, 255, 0, "\x11\x69\0" }, + { 0x3158, 255, 0, "\x11\x6a\0" }, + { 0x3159, 255, 0, "\x11\x6b\0" }, + { 0x315a, 255, 0, "\x11\x6c\0" }, + { 0x315b, 255, 0, "\x11\x6d\0" }, + { 0x315c, 255, 0, "\x11\x6e\0" }, + { 0x315d, 255, 0, "\x11\x6f\0" }, + { 0x315e, 255, 0, "\x11\x70\0" }, + { 0x315f, 255, 0, "\x11\x71\0" }, + { 0x3160, 255, 0, "\x11\x72\0" }, + { 0x3161, 255, 0, "\x11\x73\0" }, + { 0x3162, 255, 0, "\x11\x74\0" }, + { 0x3163, 255, 0, "\x11\x75\0" }, + { 0x3164, 255, 0, "\x11\x60\0" }, + { 0x3165, 255, 0, "\x11\x14\0" }, + { 0x3166, 255, 0, "\x11\x15\0" }, + { 0x3167, 255, 0, "\x11\xc7\0" }, + { 0x3168, 255, 0, "\x11\xc8\0" }, + { 0x3169, 255, 0, "\x11\xcc\0" }, + { 0x316a, 255, 0, "\x11\xce\0" }, + { 0x316b, 255, 0, "\x11\xd3\0" }, + { 0x316c, 255, 0, "\x11\xd7\0" }, + { 0x316d, 255, 0, "\x11\xd9\0" }, + { 0x316e, 255, 0, "\x11\x1c\0" }, + { 0x316f, 255, 0, "\x11\xdd\0" }, + { 0x3170, 255, 0, "\x11\xdf\0" }, + { 0x3171, 255, 0, "\x11\x1d\0" }, + { 0x3172, 255, 0, "\x11\x1e\0" }, + { 0x3173, 255, 0, "\x11\x20\0" }, + { 0x3174, 255, 0, "\x11\x22\0" }, + { 0x3175, 255, 0, "\x11\x23\0" }, + { 0x3176, 255, 0, "\x11\x27\0" }, + { 0x3177, 255, 0, "\x11\x29\0" }, + { 0x3178, 255, 0, "\x11\x2b\0" }, + { 0x3179, 255, 0, "\x11\x2c\0" }, + { 0x317a, 255, 0, "\x11\x2d\0" }, + { 0x317b, 255, 0, "\x11\x2e\0" }, + { 0x317c, 255, 0, "\x11\x2f\0" }, + { 0x317d, 255, 0, "\x11\x32\0" }, + { 0x317e, 255, 0, "\x11\x36\0" }, + { 0x317f, 255, 0, "\x11\x40\0" }, + { 0x3180, 255, 0, "\x11\x47\0" }, + { 0x3181, 255, 0, "\x11\x4c\0" }, + { 0x3182, 255, 0, "\x11\xf1\0" }, + { 0x3183, 255, 0, "\x11\xf2\0" }, + { 0x3184, 255, 0, "\x11\x57\0" }, + { 0x3185, 255, 0, "\x11\x58\0" }, + { 0x3186, 255, 0, "\x11\x59\0" }, + { 0x3187, 255, 0, "\x11\x84\0" }, + { 0x3188, 255, 0, "\x11\x85\0" }, + { 0x3189, 255, 0, "\x11\x88\0" }, + { 0x318a, 255, 0, "\x11\x91\0" }, + { 0x318b, 255, 0, "\x11\x92\0" }, + { 0x318c, 255, 0, "\x11\x94\0" }, + { 0x318d, 255, 0, "\x11\x9e\0" }, + { 0x318e, 255, 0, "\x11\xa1\0" }, + { 0x3192, 255, 0, "\x4e\x00\0" }, + { 0x3193, 255, 0, "\x4e\x8c\0" }, + { 0x3194, 255, 0, "\x4e\x09\0" }, + { 0x3195, 255, 0, "\x56\xdb\0" }, + { 0x3196, 255, 0, "\x4e\x0a\0" }, + { 0x3197, 255, 0, "\x4e\x2d\0" }, + { 0x3198, 255, 0, "\x4e\x0b\0" }, + { 0x3199, 255, 0, "\x75\x32\0" }, + { 0x319a, 255, 0, "\x4e\x59\0" }, + { 0x319b, 255, 0, "\x4e\x19\0" }, + { 0x319c, 255, 0, "\x4e\x01\0" }, + { 0x319d, 255, 0, "\x59\x29\0" }, + { 0x319e, 255, 0, "\x57\x30\0" }, + { 0x319f, 255, 0, "\x4e\xba\0" }, + { 0x3200, 255, 0, "\x00\x28\x11\x00\x00\x29\0" }, + { 0x3201, 255, 0, "\x00\x28\x11\x02\x00\x29\0" }, + { 0x3202, 255, 0, "\x00\x28\x11\x03\x00\x29\0" }, + { 0x3203, 255, 0, "\x00\x28\x11\x05\x00\x29\0" }, + { 0x3204, 255, 0, "\x00\x28\x11\x06\x00\x29\0" }, + { 0x3205, 255, 0, "\x00\x28\x11\x07\x00\x29\0" }, + { 0x3206, 255, 0, "\x00\x28\x11\x09\x00\x29\0" }, + { 0x3207, 255, 0, "\x00\x28\x11\x0b\x00\x29\0" }, + { 0x3208, 255, 0, "\x00\x28\x11\x0c\x00\x29\0" }, + { 0x3209, 255, 0, "\x00\x28\x11\x0e\x00\x29\0" }, + { 0x320a, 255, 0, "\x00\x28\x11\x0f\x00\x29\0" }, + { 0x320b, 255, 0, "\x00\x28\x11\x10\x00\x29\0" }, + { 0x320c, 255, 0, "\x00\x28\x11\x11\x00\x29\0" }, + { 0x320d, 255, 0, "\x00\x28\x11\x12\x00\x29\0" }, + { 0x320e, 255, 0, "\x00\x28\x11\x00\x11\x61\x00\x29\0" }, + { 0x320f, 255, 0, "\x00\x28\x11\x02\x11\x61\x00\x29\0" }, + { 0x3210, 255, 0, "\x00\x28\x11\x03\x11\x61\x00\x29\0" }, + { 0x3211, 255, 0, "\x00\x28\x11\x05\x11\x61\x00\x29\0" }, + { 0x3212, 255, 0, "\x00\x28\x11\x06\x11\x61\x00\x29\0" }, + { 0x3213, 255, 0, "\x00\x28\x11\x07\x11\x61\x00\x29\0" }, + { 0x3214, 255, 0, "\x00\x28\x11\x09\x11\x61\x00\x29\0" }, + { 0x3215, 255, 0, "\x00\x28\x11\x0b\x11\x61\x00\x29\0" }, + { 0x3216, 255, 0, "\x00\x28\x11\x0c\x11\x61\x00\x29\0" }, + { 0x3217, 255, 0, "\x00\x28\x11\x0e\x11\x61\x00\x29\0" }, + { 0x3218, 255, 0, "\x00\x28\x11\x0f\x11\x61\x00\x29\0" }, + { 0x3219, 255, 0, "\x00\x28\x11\x10\x11\x61\x00\x29\0" }, + { 0x321a, 255, 0, "\x00\x28\x11\x11\x11\x61\x00\x29\0" }, + { 0x321b, 255, 0, "\x00\x28\x11\x12\x11\x61\x00\x29\0" }, + { 0x321c, 255, 0, "\x00\x28\x11\x0c\x11\x6e\x00\x29\0" }, + { 0x3220, 255, 0, "\x00\x28\x4e\x00\x00\x29\0" }, + { 0x3221, 255, 0, "\x00\x28\x4e\x8c\x00\x29\0" }, + { 0x3222, 255, 0, "\x00\x28\x4e\x09\x00\x29\0" }, + { 0x3223, 255, 0, "\x00\x28\x56\xdb\x00\x29\0" }, + { 0x3224, 255, 0, "\x00\x28\x4e\x94\x00\x29\0" }, + { 0x3225, 255, 0, "\x00\x28\x51\x6d\x00\x29\0" }, + { 0x3226, 255, 0, "\x00\x28\x4e\x03\x00\x29\0" }, + { 0x3227, 255, 0, "\x00\x28\x51\x6b\x00\x29\0" }, + { 0x3228, 255, 0, "\x00\x28\x4e\x5d\x00\x29\0" }, + { 0x3229, 255, 0, "\x00\x28\x53\x41\x00\x29\0" }, + { 0x322a, 255, 0, "\x00\x28\x67\x08\x00\x29\0" }, + { 0x322b, 255, 0, "\x00\x28\x70\x6b\x00\x29\0" }, + { 0x322c, 255, 0, "\x00\x28\x6c\x34\x00\x29\0" }, + { 0x322d, 255, 0, "\x00\x28\x67\x28\x00\x29\0" }, + { 0x322e, 255, 0, "\x00\x28\x91\xd1\x00\x29\0" }, + { 0x322f, 255, 0, "\x00\x28\x57\x1f\x00\x29\0" }, + { 0x3230, 255, 0, "\x00\x28\x65\xe5\x00\x29\0" }, + { 0x3231, 255, 0, "\x00\x28\x68\x2a\x00\x29\0" }, + { 0x3232, 255, 0, "\x00\x28\x67\x09\x00\x29\0" }, + { 0x3233, 255, 0, "\x00\x28\x79\x3e\x00\x29\0" }, + { 0x3234, 255, 0, "\x00\x28\x54\x0d\x00\x29\0" }, + { 0x3235, 255, 0, "\x00\x28\x72\x79\x00\x29\0" }, + { 0x3236, 255, 0, "\x00\x28\x8c\xa1\x00\x29\0" }, + { 0x3237, 255, 0, "\x00\x28\x79\x5d\x00\x29\0" }, + { 0x3238, 255, 0, "\x00\x28\x52\xb4\x00\x29\0" }, + { 0x3239, 255, 0, "\x00\x28\x4e\xe3\x00\x29\0" }, + { 0x323a, 255, 0, "\x00\x28\x54\x7c\x00\x29\0" }, + { 0x323b, 255, 0, "\x00\x28\x5b\x66\x00\x29\0" }, + { 0x323c, 255, 0, "\x00\x28\x76\xe3\x00\x29\0" }, + { 0x323d, 255, 0, "\x00\x28\x4f\x01\x00\x29\0" }, + { 0x323e, 255, 0, "\x00\x28\x8c\xc7\x00\x29\0" }, + { 0x323f, 255, 0, "\x00\x28\x53\x54\x00\x29\0" }, + { 0x3240, 255, 0, "\x00\x28\x79\x6d\x00\x29\0" }, + { 0x3241, 255, 0, "\x00\x28\x4f\x11\x00\x29\0" }, + { 0x3242, 255, 0, "\x00\x28\x81\xea\x00\x29\0" }, + { 0x3243, 255, 0, "\x00\x28\x81\xf3\x00\x29\0" }, + { 0x3260, 255, 0, "\x11\x00\0" }, + { 0x3261, 255, 0, "\x11\x02\0" }, + { 0x3262, 255, 0, "\x11\x03\0" }, + { 0x3263, 255, 0, "\x11\x05\0" }, + { 0x3264, 255, 0, "\x11\x06\0" }, + { 0x3265, 255, 0, "\x11\x07\0" }, + { 0x3266, 255, 0, "\x11\x09\0" }, + { 0x3267, 255, 0, "\x11\x0b\0" }, + { 0x3268, 255, 0, "\x11\x0c\0" }, + { 0x3269, 255, 0, "\x11\x0e\0" }, + { 0x326a, 255, 0, "\x11\x0f\0" }, + { 0x326b, 255, 0, "\x11\x10\0" }, + { 0x326c, 255, 0, "\x11\x11\0" }, + { 0x326d, 255, 0, "\x11\x12\0" }, + { 0x326e, 255, 0, "\x11\x00\x11\x61\0" }, + { 0x326f, 255, 0, "\x11\x02\x11\x61\0" }, + { 0x3270, 255, 0, "\x11\x03\x11\x61\0" }, + { 0x3271, 255, 0, "\x11\x05\x11\x61\0" }, + { 0x3272, 255, 0, "\x11\x06\x11\x61\0" }, + { 0x3273, 255, 0, "\x11\x07\x11\x61\0" }, + { 0x3274, 255, 0, "\x11\x09\x11\x61\0" }, + { 0x3275, 255, 0, "\x11\x0b\x11\x61\0" }, + { 0x3276, 255, 0, "\x11\x0c\x11\x61\0" }, + { 0x3277, 255, 0, "\x11\x0e\x11\x61\0" }, + { 0x3278, 255, 0, "\x11\x0f\x11\x61\0" }, + { 0x3279, 255, 0, "\x11\x10\x11\x61\0" }, + { 0x327a, 255, 0, "\x11\x11\x11\x61\0" }, + { 0x327b, 255, 0, "\x11\x12\x11\x61\0" }, + { 0x3280, 255, 0, "\x4e\x00\0" }, + { 0x3281, 255, 0, "\x4e\x8c\0" }, + { 0x3282, 255, 0, "\x4e\x09\0" }, + { 0x3283, 255, 0, "\x56\xdb\0" }, + { 0x3284, 255, 0, "\x4e\x94\0" }, + { 0x3285, 255, 0, "\x51\x6d\0" }, + { 0x3286, 255, 0, "\x4e\x03\0" }, + { 0x3287, 255, 0, "\x51\x6b\0" }, + { 0x3288, 255, 0, "\x4e\x5d\0" }, + { 0x3289, 255, 0, "\x53\x41\0" }, + { 0x328a, 255, 0, "\x67\x08\0" }, + { 0x328b, 255, 0, "\x70\x6b\0" }, + { 0x328c, 255, 0, "\x6c\x34\0" }, + { 0x328d, 255, 0, "\x67\x28\0" }, + { 0x328e, 255, 0, "\x91\xd1\0" }, + { 0x328f, 255, 0, "\x57\x1f\0" }, + { 0x3290, 255, 0, "\x65\xe5\0" }, + { 0x3291, 255, 0, "\x68\x2a\0" }, + { 0x3292, 255, 0, "\x67\x09\0" }, + { 0x3293, 255, 0, "\x79\x3e\0" }, + { 0x3294, 255, 0, "\x54\x0d\0" }, + { 0x3295, 255, 0, "\x72\x79\0" }, + { 0x3296, 255, 0, "\x8c\xa1\0" }, + { 0x3297, 255, 0, "\x79\x5d\0" }, + { 0x3298, 255, 0, "\x52\xb4\0" }, + { 0x3299, 255, 0, "\x79\xd8\0" }, + { 0x329a, 255, 0, "\x75\x37\0" }, + { 0x329b, 255, 0, "\x59\x73\0" }, + { 0x329c, 255, 0, "\x90\x69\0" }, + { 0x329d, 255, 0, "\x51\x2a\0" }, + { 0x329e, 255, 0, "\x53\x70\0" }, + { 0x329f, 255, 0, "\x6c\xe8\0" }, + { 0x32a0, 255, 0, "\x98\x05\0" }, + { 0x32a1, 255, 0, "\x4f\x11\0" }, + { 0x32a2, 255, 0, "\x51\x99\0" }, + { 0x32a3, 255, 0, "\x6b\x63\0" }, + { 0x32a4, 255, 0, "\x4e\x0a\0" }, + { 0x32a5, 255, 0, "\x4e\x2d\0" }, + { 0x32a6, 255, 0, "\x4e\x0b\0" }, + { 0x32a7, 255, 0, "\x5d\xe6\0" }, + { 0x32a8, 255, 0, "\x53\xf3\0" }, + { 0x32a9, 255, 0, "\x53\x3b\0" }, + { 0x32aa, 255, 0, "\x5b\x97\0" }, + { 0x32ab, 255, 0, "\x5b\x66\0" }, + { 0x32ac, 255, 0, "\x76\xe3\0" }, + { 0x32ad, 255, 0, "\x4f\x01\0" }, + { 0x32ae, 255, 0, "\x8c\xc7\0" }, + { 0x32af, 255, 0, "\x53\x54\0" }, + { 0x32b0, 255, 0, "\x59\x1c\0" }, + { 0x32c0, 255, 0, "\x00\x31\x67\x08\0" }, + { 0x32c1, 255, 0, "\x00\x32\x67\x08\0" }, + { 0x32c2, 255, 0, "\x00\x33\x67\x08\0" }, + { 0x32c3, 255, 0, "\x00\x34\x67\x08\0" }, + { 0x32c4, 255, 0, "\x00\x35\x67\x08\0" }, + { 0x32c5, 255, 0, "\x00\x36\x67\x08\0" }, + { 0x32c6, 255, 0, "\x00\x37\x67\x08\0" }, + { 0x32c7, 255, 0, "\x00\x38\x67\x08\0" }, + { 0x32c8, 255, 0, "\x00\x39\x67\x08\0" }, + { 0x32c9, 255, 0, "\x00\x31\x00\x30\x67\x08\0" }, + { 0x32ca, 255, 0, "\x00\x31\x00\x31\x67\x08\0" }, + { 0x32cb, 255, 0, "\x00\x31\x00\x32\x67\x08\0" }, + { 0x32d0, 255, 0, "\x30\xa2\0" }, + { 0x32d1, 255, 0, "\x30\xa4\0" }, + { 0x32d2, 255, 0, "\x30\xa6\0" }, + { 0x32d3, 255, 0, "\x30\xa8\0" }, + { 0x32d4, 255, 0, "\x30\xaa\0" }, + { 0x32d5, 255, 0, "\x30\xab\0" }, + { 0x32d6, 255, 0, "\x30\xad\0" }, + { 0x32d7, 255, 0, "\x30\xaf\0" }, + { 0x32d8, 255, 0, "\x30\xb1\0" }, + { 0x32d9, 255, 0, "\x30\xb3\0" }, + { 0x32da, 255, 0, "\x30\xb5\0" }, + { 0x32db, 255, 0, "\x30\xb7\0" }, + { 0x32dc, 255, 0, "\x30\xb9\0" }, + { 0x32dd, 255, 0, "\x30\xbb\0" }, + { 0x32de, 255, 0, "\x30\xbd\0" }, + { 0x32df, 255, 0, "\x30\xbf\0" }, + { 0x32e0, 255, 0, "\x30\xc1\0" }, + { 0x32e1, 255, 0, "\x30\xc4\0" }, + { 0x32e2, 255, 0, "\x30\xc6\0" }, + { 0x32e3, 255, 0, "\x30\xc8\0" }, + { 0x32e4, 255, 0, "\x30\xca\0" }, + { 0x32e5, 255, 0, "\x30\xcb\0" }, + { 0x32e6, 255, 0, "\x30\xcc\0" }, + { 0x32e7, 255, 0, "\x30\xcd\0" }, + { 0x32e8, 255, 0, "\x30\xce\0" }, + { 0x32e9, 255, 0, "\x30\xcf\0" }, + { 0x32ea, 255, 0, "\x30\xd2\0" }, + { 0x32eb, 255, 0, "\x30\xd5\0" }, + { 0x32ec, 255, 0, "\x30\xd8\0" }, + { 0x32ed, 255, 0, "\x30\xdb\0" }, + { 0x32ee, 255, 0, "\x30\xde\0" }, + { 0x32ef, 255, 0, "\x30\xdf\0" }, + { 0x32f0, 255, 0, "\x30\xe0\0" }, + { 0x32f1, 255, 0, "\x30\xe1\0" }, + { 0x32f2, 255, 0, "\x30\xe2\0" }, + { 0x32f3, 255, 0, "\x30\xe4\0" }, + { 0x32f4, 255, 0, "\x30\xe6\0" }, + { 0x32f5, 255, 0, "\x30\xe8\0" }, + { 0x32f6, 255, 0, "\x30\xe9\0" }, + { 0x32f7, 255, 0, "\x30\xea\0" }, + { 0x32f8, 255, 0, "\x30\xeb\0" }, + { 0x32f9, 255, 0, "\x30\xec\0" }, + { 0x32fa, 255, 0, "\x30\xed\0" }, + { 0x32fb, 255, 0, "\x30\xef\0" }, + { 0x32fc, 255, 0, "\x30\xf0\0" }, + { 0x32fd, 255, 0, "\x30\xf1\0" }, + { 0x32fe, 255, 0, "\x30\xf2\0" }, + { 0x3300, 255, 0, "\x30\xa2\x30\xcf\x30\x9a\x30\xfc\x30\xc8\0" }, + { 0x3301, 255, 0, "\x30\xa2\x30\xeb\x30\xd5\x30\xa1\0" }, + { 0x3302, 255, 0, "\x30\xa2\x30\xf3\x30\xd8\x30\x9a\x30\xa2\0" }, + { 0x3303, 255, 0, "\x30\xa2\x30\xfc\x30\xeb\0" }, + { 0x3304, 255, 0, "\x30\xa4\x30\xcb\x30\xf3\x30\xaf\x30\x99\0" }, + { 0x3305, 255, 0, "\x30\xa4\x30\xf3\x30\xc1\0" }, + { 0x3306, 255, 0, "\x30\xa6\x30\xa9\x30\xf3\0" }, + { 0x3307, 255, 0, "\x30\xa8\x30\xb9\x30\xaf\x30\xfc\x30\xc8\x30\x99\0" }, + { 0x3308, 255, 0, "\x30\xa8\x30\xfc\x30\xab\x30\xfc\0" }, + { 0x3309, 255, 0, "\x30\xaa\x30\xf3\x30\xb9\0" }, + { 0x330a, 255, 0, "\x30\xaa\x30\xfc\x30\xe0\0" }, + { 0x330b, 255, 0, "\x30\xab\x30\xa4\x30\xea\0" }, + { 0x330c, 255, 0, "\x30\xab\x30\xe9\x30\xc3\x30\xc8\0" }, + { 0x330d, 255, 0, "\x30\xab\x30\xed\x30\xea\x30\xfc\0" }, + { 0x330e, 255, 0, "\x30\xab\x30\x99\x30\xed\x30\xf3\0" }, + { 0x330f, 255, 0, "\x30\xab\x30\x99\x30\xf3\x30\xde\0" }, + { 0x3310, 255, 0, "\x30\xad\x30\x99\x30\xab\x30\x99\0" }, + { 0x3311, 255, 0, "\x30\xad\x30\x99\x30\xcb\x30\xfc\0" }, + { 0x3312, 255, 0, "\x30\xad\x30\xe5\x30\xea\x30\xfc\0" }, + { 0x3313, 255, 0, "\x30\xad\x30\x99\x30\xeb\x30\xbf\x30\x99\x30\xfc\0" }, + { 0x3314, 255, 0, "\x30\xad\x30\xed\0" }, + { 0x3315, 255, 0, "\x30\xad\x30\xed\x30\xaf\x30\x99\x30\xe9\x30\xe0\0" }, + { 0x3316, 255, 0, "\x30\xad\x30\xed\x30\xe1\x30\xfc\x30\xc8\x30\xeb\0" }, + { 0x3317, 255, 0, "\x30\xad\x30\xed\x30\xef\x30\xc3\x30\xc8\0" }, + { 0x3318, 255, 0, "\x30\xaf\x30\x99\x30\xe9\x30\xe0\0" }, + { 0x3319, 255, 0, "\x30\xaf\x30\x99\x30\xe9\x30\xe0\x30\xc8\x30\xf3\0" }, + { 0x331a, 255, 0, "\x30\xaf\x30\xeb\x30\xbb\x30\x99\x30\xa4\x30\xed\0" }, + { 0x331b, 255, 0, "\x30\xaf\x30\xed\x30\xfc\x30\xcd\0" }, + { 0x331c, 255, 0, "\x30\xb1\x30\xfc\x30\xb9\0" }, + { 0x331d, 255, 0, "\x30\xb3\x30\xeb\x30\xca\0" }, + { 0x331e, 255, 0, "\x30\xb3\x30\xfc\x30\xdb\x30\x9a\0" }, + { 0x331f, 255, 0, "\x30\xb5\x30\xa4\x30\xaf\x30\xeb\0" }, + { 0x3320, 255, 0, "\x30\xb5\x30\xf3\x30\xc1\x30\xfc\x30\xe0\0" }, + { 0x3321, 255, 0, "\x30\xb7\x30\xea\x30\xf3\x30\xaf\x30\x99\0" }, + { 0x3322, 255, 0, "\x30\xbb\x30\xf3\x30\xc1\0" }, + { 0x3323, 255, 0, "\x30\xbb\x30\xf3\x30\xc8\0" }, + { 0x3324, 255, 0, "\x30\xbf\x30\x99\x30\xfc\x30\xb9\0" }, + { 0x3325, 255, 0, "\x30\xc6\x30\x99\x30\xb7\0" }, + { 0x3326, 255, 0, "\x30\xc8\x30\x99\x30\xeb\0" }, + { 0x3327, 255, 0, "\x30\xc8\x30\xf3\0" }, + { 0x3328, 255, 0, "\x30\xca\x30\xce\0" }, + { 0x3329, 255, 0, "\x30\xce\x30\xc3\x30\xc8\0" }, + { 0x332a, 255, 0, "\x30\xcf\x30\xa4\x30\xc4\0" }, + { 0x332b, 255, 0, "\x30\xcf\x30\x9a\x30\xfc\x30\xbb\x30\xf3\x30\xc8\0" }, + { 0x332c, 255, 0, "\x30\xcf\x30\x9a\x30\xfc\x30\xc4\0" }, + { 0x332d, 255, 0, "\x30\xcf\x30\x99\x30\xfc\x30\xec\x30\xeb\0" }, + { 0x332e, 255, 0, "\x30\xd2\x30\x9a\x30\xa2\x30\xb9\x30\xc8\x30\xeb\0" }, + { 0x332f, 255, 0, "\x30\xd2\x30\x9a\x30\xaf\x30\xeb\0" }, + { 0x3330, 255, 0, "\x30\xd2\x30\x9a\x30\xb3\0" }, + { 0x3331, 255, 0, "\x30\xd2\x30\x99\x30\xeb\0" }, + { 0x3332, 255, 0, "\x30\xd5\x30\xa1\x30\xe9\x30\xc3\x30\xc8\x30\x99\0" }, + { 0x3333, 255, 0, "\x30\xd5\x30\xa3\x30\xfc\x30\xc8\0" }, + { 0x3334, 255, 0, "\x30\xd5\x30\x99\x30\xc3\x30\xb7\x30\xa7\x30\xeb\0" }, + { 0x3335, 255, 0, "\x30\xd5\x30\xe9\x30\xf3\0" }, + { 0x3336, 255, 0, "\x30\xd8\x30\xaf\x30\xbf\x30\xfc\x30\xeb\0" }, + { 0x3337, 255, 0, "\x30\xd8\x30\x9a\x30\xbd\0" }, + { 0x3338, 255, 0, "\x30\xd8\x30\x9a\x30\xcb\x30\xd2\0" }, + { 0x3339, 255, 0, "\x30\xd8\x30\xeb\x30\xc4\0" }, + { 0x333a, 255, 0, "\x30\xd8\x30\x9a\x30\xf3\x30\xb9\0" }, + { 0x333b, 255, 0, "\x30\xd8\x30\x9a\x30\xfc\x30\xb7\x30\x99\0" }, + { 0x333c, 255, 0, "\x30\xd8\x30\x99\x30\xfc\x30\xbf\0" }, + { 0x333d, 255, 0, "\x30\xdb\x30\x9a\x30\xa4\x30\xf3\x30\xc8\0" }, + { 0x333e, 255, 0, "\x30\xdb\x30\x99\x30\xeb\x30\xc8\0" }, + { 0x333f, 255, 0, "\x30\xdb\x30\xf3\0" }, + { 0x3340, 255, 0, "\x30\xdb\x30\x9a\x30\xf3\x30\xc8\x30\x99\0" }, + { 0x3341, 255, 0, "\x30\xdb\x30\xfc\x30\xeb\0" }, + { 0x3342, 255, 0, "\x30\xdb\x30\xfc\x30\xf3\0" }, + { 0x3343, 255, 0, "\x30\xde\x30\xa4\x30\xaf\x30\xed\0" }, + { 0x3344, 255, 0, "\x30\xde\x30\xa4\x30\xeb\0" }, + { 0x3345, 255, 0, "\x30\xde\x30\xc3\x30\xcf\0" }, + { 0x3346, 255, 0, "\x30\xde\x30\xeb\x30\xaf\0" }, + { 0x3347, 255, 0, "\x30\xde\x30\xf3\x30\xb7\x30\xe7\x30\xf3\0" }, + { 0x3348, 255, 0, "\x30\xdf\x30\xaf\x30\xed\x30\xf3\0" }, + { 0x3349, 255, 0, "\x30\xdf\x30\xea\0" }, + { 0x334a, 255, 0, "\x30\xdf\x30\xea\x30\xcf\x30\x99\x30\xfc\x30\xeb\0" }, + { 0x334b, 255, 0, "\x30\xe1\x30\xab\x30\x99\0" }, + { 0x334c, 255, 0, "\x30\xe1\x30\xab\x30\x99\x30\xc8\x30\xf3\0" }, + { 0x334d, 255, 0, "\x30\xe1\x30\xfc\x30\xc8\x30\xeb\0" }, + { 0x334e, 255, 0, "\x30\xe4\x30\xfc\x30\xc8\x30\x99\0" }, + { 0x334f, 255, 0, "\x30\xe4\x30\xfc\x30\xeb\0" }, + { 0x3350, 255, 0, "\x30\xe6\x30\xa2\x30\xf3\0" }, + { 0x3351, 255, 0, "\x30\xea\x30\xc3\x30\xc8\x30\xeb\0" }, + { 0x3352, 255, 0, "\x30\xea\x30\xe9\0" }, + { 0x3353, 255, 0, "\x30\xeb\x30\xd2\x30\x9a\x30\xfc\0" }, + { 0x3354, 255, 0, "\x30\xeb\x30\xfc\x30\xd5\x30\x99\x30\xeb\0" }, + { 0x3355, 255, 0, "\x30\xec\x30\xe0\0" }, + { 0x3356, 255, 0, "\x30\xec\x30\xf3\x30\xc8\x30\xb1\x30\x99\x30\xf3\0" }, + { 0x3357, 255, 0, "\x30\xef\x30\xc3\x30\xc8\0" }, + { 0x3358, 255, 0, "\x00\x30\x70\xb9\0" }, + { 0x3359, 255, 0, "\x00\x31\x70\xb9\0" }, + { 0x335a, 255, 0, "\x00\x32\x70\xb9\0" }, + { 0x335b, 255, 0, "\x00\x33\x70\xb9\0" }, + { 0x335c, 255, 0, "\x00\x34\x70\xb9\0" }, + { 0x335d, 255, 0, "\x00\x35\x70\xb9\0" }, + { 0x335e, 255, 0, "\x00\x36\x70\xb9\0" }, + { 0x335f, 255, 0, "\x00\x37\x70\xb9\0" }, + { 0x3360, 255, 0, "\x00\x38\x70\xb9\0" }, + { 0x3361, 255, 0, "\x00\x39\x70\xb9\0" }, + { 0x3362, 255, 0, "\x00\x31\x00\x30\x70\xb9\0" }, + { 0x3363, 255, 0, "\x00\x31\x00\x31\x70\xb9\0" }, + { 0x3364, 255, 0, "\x00\x31\x00\x32\x70\xb9\0" }, + { 0x3365, 255, 0, "\x00\x31\x00\x33\x70\xb9\0" }, + { 0x3366, 255, 0, "\x00\x31\x00\x34\x70\xb9\0" }, + { 0x3367, 255, 0, "\x00\x31\x00\x35\x70\xb9\0" }, + { 0x3368, 255, 0, "\x00\x31\x00\x36\x70\xb9\0" }, + { 0x3369, 255, 0, "\x00\x31\x00\x37\x70\xb9\0" }, + { 0x336a, 255, 0, "\x00\x31\x00\x38\x70\xb9\0" }, + { 0x336b, 255, 0, "\x00\x31\x00\x39\x70\xb9\0" }, + { 0x336c, 255, 0, "\x00\x32\x00\x30\x70\xb9\0" }, + { 0x336d, 255, 0, "\x00\x32\x00\x31\x70\xb9\0" }, + { 0x336e, 255, 0, "\x00\x32\x00\x32\x70\xb9\0" }, + { 0x336f, 255, 0, "\x00\x32\x00\x33\x70\xb9\0" }, + { 0x3370, 255, 0, "\x00\x32\x00\x34\x70\xb9\0" }, + { 0x3371, 255, 0, "\x00\x68\x00\x50\x00\x61\0" }, + { 0x3372, 255, 0, "\x00\x64\x00\x61\0" }, + { 0x3373, 255, 0, "\x00\x41\x00\x55\0" }, + { 0x3374, 255, 0, "\x00\x62\x00\x61\x00\x72\0" }, + { 0x3375, 255, 0, "\x00\x6f\x00\x56\0" }, + { 0x3376, 255, 0, "\x00\x70\x00\x63\0" }, + { 0x337b, 255, 0, "\x5e\x73\x62\x10\0" }, + { 0x337c, 255, 0, "\x66\x2d\x54\x8c\0" }, + { 0x337d, 255, 0, "\x59\x27\x6b\x63\0" }, + { 0x337e, 255, 0, "\x66\x0e\x6c\xbb\0" }, + { 0x337f, 255, 0, "\x68\x2a\x5f\x0f\x4f\x1a\x79\x3e\0" }, + { 0x3380, 255, 0, "\x00\x70\x00\x41\0" }, + { 0x3381, 255, 0, "\x00\x6e\x00\x41\0" }, + { 0x3382, 255, 0, "\x03\xbc\x00\x41\0" }, + { 0x3383, 255, 0, "\x00\x6d\x00\x41\0" }, + { 0x3384, 255, 0, "\x00\x6b\x00\x41\0" }, + { 0x3385, 255, 0, "\x00\x4b\x00\x42\0" }, + { 0x3386, 255, 0, "\x00\x4d\x00\x42\0" }, + { 0x3387, 255, 0, "\x00\x47\x00\x42\0" }, + { 0x3388, 255, 0, "\x00\x63\x00\x61\x00\x6c\0" }, + { 0x3389, 255, 0, "\x00\x6b\x00\x63\x00\x61\x00\x6c\0" }, + { 0x338a, 255, 0, "\x00\x70\x00\x46\0" }, + { 0x338b, 255, 0, "\x00\x6e\x00\x46\0" }, + { 0x338c, 255, 0, "\x03\xbc\x00\x46\0" }, + { 0x338d, 255, 0, "\x03\xbc\x00\x67\0" }, + { 0x338e, 255, 0, "\x00\x6d\x00\x67\0" }, + { 0x338f, 255, 0, "\x00\x6b\x00\x67\0" }, + { 0x3390, 255, 0, "\x00\x48\x00\x7a\0" }, + { 0x3391, 255, 0, "\x00\x6b\x00\x48\x00\x7a\0" }, + { 0x3392, 255, 0, "\x00\x4d\x00\x48\x00\x7a\0" }, + { 0x3393, 255, 0, "\x00\x47\x00\x48\x00\x7a\0" }, + { 0x3394, 255, 0, "\x00\x54\x00\x48\x00\x7a\0" }, + { 0x3395, 255, 0, "\x03\xbc\x00\x6c\0" }, + { 0x3396, 255, 0, "\x00\x6d\x00\x6c\0" }, + { 0x3397, 255, 0, "\x00\x64\x00\x6c\0" }, + { 0x3398, 255, 0, "\x00\x6b\x00\x6c\0" }, + { 0x3399, 255, 0, "\x00\x66\x00\x6d\0" }, + { 0x339a, 255, 0, "\x00\x6e\x00\x6d\0" }, + { 0x339b, 255, 0, "\x03\xbc\x00\x6d\0" }, + { 0x339c, 255, 0, "\x00\x6d\x00\x6d\0" }, + { 0x339d, 255, 0, "\x00\x63\x00\x6d\0" }, + { 0x339e, 255, 0, "\x00\x6b\x00\x6d\0" }, + { 0x339f, 255, 0, "\x00\x6d\x00\x6d\x00\x32\0" }, + { 0x33a0, 255, 0, "\x00\x63\x00\x6d\x00\x32\0" }, + { 0x33a1, 255, 0, "\x00\x6d\x00\x32\0" }, + { 0x33a2, 255, 0, "\x00\x6b\x00\x6d\x00\x32\0" }, + { 0x33a3, 255, 0, "\x00\x6d\x00\x6d\x00\x33\0" }, + { 0x33a4, 255, 0, "\x00\x63\x00\x6d\x00\x33\0" }, + { 0x33a5, 255, 0, "\x00\x6d\x00\x33\0" }, + { 0x33a6, 255, 0, "\x00\x6b\x00\x6d\x00\x33\0" }, + { 0x33a7, 255, 0, "\x00\x6d\x22\x15\x00\x73\0" }, + { 0x33a8, 255, 0, "\x00\x6d\x22\x15\x00\x73\x00\x32\0" }, + { 0x33a9, 255, 0, "\x00\x50\x00\x61\0" }, + { 0x33aa, 255, 0, "\x00\x6b\x00\x50\x00\x61\0" }, + { 0x33ab, 255, 0, "\x00\x4d\x00\x50\x00\x61\0" }, + { 0x33ac, 255, 0, "\x00\x47\x00\x50\x00\x61\0" }, + { 0x33ad, 255, 0, "\x00\x72\x00\x61\x00\x64\0" }, + { 0x33ae, 255, 0, "\x00\x72\x00\x61\x00\x64\x22\x15\x00\x73\0" }, + { 0x33af, 255, 0, "\x00\x72\x00\x61\x00\x64\x22\x15\x00\x73\x00\x32\0" }, + { 0x33b0, 255, 0, "\x00\x70\x00\x73\0" }, + { 0x33b1, 255, 0, "\x00\x6e\x00\x73\0" }, + { 0x33b2, 255, 0, "\x03\xbc\x00\x73\0" }, + { 0x33b3, 255, 0, "\x00\x6d\x00\x73\0" }, + { 0x33b4, 255, 0, "\x00\x70\x00\x56\0" }, + { 0x33b5, 255, 0, "\x00\x6e\x00\x56\0" }, + { 0x33b6, 255, 0, "\x03\xbc\x00\x56\0" }, + { 0x33b7, 255, 0, "\x00\x6d\x00\x56\0" }, + { 0x33b8, 255, 0, "\x00\x6b\x00\x56\0" }, + { 0x33b9, 255, 0, "\x00\x4d\x00\x56\0" }, + { 0x33ba, 255, 0, "\x00\x70\x00\x57\0" }, + { 0x33bb, 255, 0, "\x00\x6e\x00\x57\0" }, + { 0x33bc, 255, 0, "\x03\xbc\x00\x57\0" }, + { 0x33bd, 255, 0, "\x00\x6d\x00\x57\0" }, + { 0x33be, 255, 0, "\x00\x6b\x00\x57\0" }, + { 0x33bf, 255, 0, "\x00\x4d\x00\x57\0" }, + { 0x33c0, 255, 0, "\x00\x6b\x03\xa9\0" }, + { 0x33c1, 255, 0, "\x00\x4d\x03\xa9\0" }, + { 0x33c2, 255, 0, "\x00\x61\x00\x2e\x00\x6d\x00\x2e\0" }, + { 0x33c3, 255, 0, "\x00\x42\x00\x71\0" }, + { 0x33c4, 255, 0, "\x00\x63\x00\x63\0" }, + { 0x33c5, 255, 0, "\x00\x63\x00\x64\0" }, + { 0x33c6, 255, 0, "\x00\x43\x22\x15\x00\x6b\x00\x67\0" }, + { 0x33c7, 255, 0, "\x00\x43\x00\x6f\x00\x2e\0" }, + { 0x33c8, 255, 0, "\x00\x64\x00\x42\0" }, + { 0x33c9, 255, 0, "\x00\x47\x00\x79\0" }, + { 0x33ca, 255, 0, "\x00\x68\x00\x61\0" }, + { 0x33cb, 255, 0, "\x00\x48\x00\x50\0" }, + { 0x33cc, 255, 0, "\x00\x69\x00\x6e\0" }, + { 0x33cd, 255, 0, "\x00\x4b\x00\x4b\0" }, + { 0x33ce, 255, 0, "\x00\x4b\x00\x4d\0" }, + { 0x33cf, 255, 0, "\x00\x6b\x00\x74\0" }, + { 0x33d0, 255, 0, "\x00\x6c\x00\x6d\0" }, + { 0x33d1, 255, 0, "\x00\x6c\x00\x6e\0" }, + { 0x33d2, 255, 0, "\x00\x6c\x00\x6f\x00\x67\0" }, + { 0x33d3, 255, 0, "\x00\x6c\x00\x78\0" }, + { 0x33d4, 255, 0, "\x00\x6d\x00\x62\0" }, + { 0x33d5, 255, 0, "\x00\x6d\x00\x69\x00\x6c\0" }, + { 0x33d6, 255, 0, "\x00\x6d\x00\x6f\x00\x6c\0" }, + { 0x33d7, 255, 0, "\x00\x50\x00\x48\0" }, + { 0x33d8, 255, 0, "\x00\x70\x00\x2e\x00\x6d\x00\x2e\0" }, + { 0x33d9, 255, 0, "\x00\x50\x00\x50\x00\x4d\0" }, + { 0x33da, 255, 0, "\x00\x50\x00\x52\0" }, + { 0x33db, 255, 0, "\x00\x73\x00\x72\0" }, + { 0x33dc, 255, 0, "\x00\x53\x00\x76\0" }, + { 0x33dd, 255, 0, "\x00\x57\x00\x62\0" }, + { 0x33e0, 255, 0, "\x00\x31\x65\xe5\0" }, + { 0x33e1, 255, 0, "\x00\x32\x65\xe5\0" }, + { 0x33e2, 255, 0, "\x00\x33\x65\xe5\0" }, + { 0x33e3, 255, 0, "\x00\x34\x65\xe5\0" }, + { 0x33e4, 255, 0, "\x00\x35\x65\xe5\0" }, + { 0x33e5, 255, 0, "\x00\x36\x65\xe5\0" }, + { 0x33e6, 255, 0, "\x00\x37\x65\xe5\0" }, + { 0x33e7, 255, 0, "\x00\x38\x65\xe5\0" }, + { 0x33e8, 255, 0, "\x00\x39\x65\xe5\0" }, + { 0x33e9, 255, 0, "\x00\x31\x00\x30\x65\xe5\0" }, + { 0x33ea, 255, 0, "\x00\x31\x00\x31\x65\xe5\0" }, + { 0x33eb, 255, 0, "\x00\x31\x00\x32\x65\xe5\0" }, + { 0x33ec, 255, 0, "\x00\x31\x00\x33\x65\xe5\0" }, + { 0x33ed, 255, 0, "\x00\x31\x00\x34\x65\xe5\0" }, + { 0x33ee, 255, 0, "\x00\x31\x00\x35\x65\xe5\0" }, + { 0x33ef, 255, 0, "\x00\x31\x00\x36\x65\xe5\0" }, + { 0x33f0, 255, 0, "\x00\x31\x00\x37\x65\xe5\0" }, + { 0x33f1, 255, 0, "\x00\x31\x00\x38\x65\xe5\0" }, + { 0x33f2, 255, 0, "\x00\x31\x00\x39\x65\xe5\0" }, + { 0x33f3, 255, 0, "\x00\x32\x00\x30\x65\xe5\0" }, + { 0x33f4, 255, 0, "\x00\x32\x00\x31\x65\xe5\0" }, + { 0x33f5, 255, 0, "\x00\x32\x00\x32\x65\xe5\0" }, + { 0x33f6, 255, 0, "\x00\x32\x00\x33\x65\xe5\0" }, + { 0x33f7, 255, 0, "\x00\x32\x00\x34\x65\xe5\0" }, + { 0x33f8, 255, 0, "\x00\x32\x00\x35\x65\xe5\0" }, + { 0x33f9, 255, 0, "\x00\x32\x00\x36\x65\xe5\0" }, + { 0x33fa, 255, 0, "\x00\x32\x00\x37\x65\xe5\0" }, + { 0x33fb, 255, 0, "\x00\x32\x00\x38\x65\xe5\0" }, + { 0x33fc, 255, 0, "\x00\x32\x00\x39\x65\xe5\0" }, + { 0x33fd, 255, 0, "\x00\x33\x00\x30\x65\xe5\0" }, + { 0x33fe, 255, 0, "\x00\x33\x00\x31\x65\xe5\0" }, + { 0xf900, 0, 255, "\x8c\x48\0" }, + { 0xf901, 0, 255, "\x66\xf4\0" }, + { 0xf902, 0, 255, "\x8e\xca\0" }, + { 0xf903, 0, 255, "\x8c\xc8\0" }, + { 0xf904, 0, 255, "\x6e\xd1\0" }, + { 0xf905, 0, 255, "\x4e\x32\0" }, + { 0xf906, 0, 255, "\x53\xe5\0" }, + { 0xf907, 0, 255, "\x9f\x9c\0" }, + { 0xf908, 0, 255, "\x9f\x9c\0" }, + { 0xf909, 0, 255, "\x59\x51\0" }, + { 0xf90a, 0, 255, "\x91\xd1\0" }, + { 0xf90b, 0, 255, "\x55\x87\0" }, + { 0xf90c, 0, 255, "\x59\x48\0" }, + { 0xf90d, 0, 255, "\x61\xf6\0" }, + { 0xf90e, 0, 255, "\x76\x69\0" }, + { 0xf90f, 0, 255, "\x7f\x85\0" }, + { 0xf910, 0, 255, "\x86\x3f\0" }, + { 0xf911, 0, 255, "\x87\xba\0" }, + { 0xf912, 0, 255, "\x88\xf8\0" }, + { 0xf913, 0, 255, "\x90\x8f\0" }, + { 0xf914, 0, 255, "\x6a\x02\0" }, + { 0xf915, 0, 255, "\x6d\x1b\0" }, + { 0xf916, 0, 255, "\x70\xd9\0" }, + { 0xf917, 0, 255, "\x73\xde\0" }, + { 0xf918, 0, 255, "\x84\x3d\0" }, + { 0xf919, 0, 255, "\x91\x6a\0" }, + { 0xf91a, 0, 255, "\x99\xf1\0" }, + { 0xf91b, 0, 255, "\x4e\x82\0" }, + { 0xf91c, 0, 255, "\x53\x75\0" }, + { 0xf91d, 0, 255, "\x6b\x04\0" }, + { 0xf91e, 0, 255, "\x72\x1b\0" }, + { 0xf91f, 0, 255, "\x86\x2d\0" }, + { 0xf920, 0, 255, "\x9e\x1e\0" }, + { 0xf921, 0, 255, "\x5d\x50\0" }, + { 0xf922, 0, 255, "\x6f\xeb\0" }, + { 0xf923, 0, 255, "\x85\xcd\0" }, + { 0xf924, 0, 255, "\x89\x64\0" }, + { 0xf925, 0, 255, "\x62\xc9\0" }, + { 0xf926, 0, 255, "\x81\xd8\0" }, + { 0xf927, 0, 255, "\x88\x1f\0" }, + { 0xf928, 0, 255, "\x5e\xca\0" }, + { 0xf929, 0, 255, "\x67\x17\0" }, + { 0xf92a, 0, 255, "\x6d\x6a\0" }, + { 0xf92b, 0, 255, "\x72\xfc\0" }, + { 0xf92c, 0, 255, "\x90\xce\0" }, + { 0xf92d, 0, 255, "\x4f\x86\0" }, + { 0xf92e, 0, 255, "\x51\xb7\0" }, + { 0xf92f, 0, 255, "\x52\xde\0" }, + { 0xf930, 0, 255, "\x64\xc4\0" }, + { 0xf931, 0, 255, "\x6a\xd3\0" }, + { 0xf932, 0, 255, "\x72\x10\0" }, + { 0xf933, 0, 255, "\x76\xe7\0" }, + { 0xf934, 0, 255, "\x80\x01\0" }, + { 0xf935, 0, 255, "\x86\x06\0" }, + { 0xf936, 0, 255, "\x86\x5c\0" }, + { 0xf937, 0, 255, "\x8d\xef\0" }, + { 0xf938, 0, 255, "\x97\x32\0" }, + { 0xf939, 0, 255, "\x9b\x6f\0" }, + { 0xf93a, 0, 255, "\x9d\xfa\0" }, + { 0xf93b, 0, 255, "\x78\x8c\0" }, + { 0xf93c, 0, 255, "\x79\x7f\0" }, + { 0xf93d, 0, 255, "\x7d\xa0\0" }, + { 0xf93e, 0, 255, "\x83\xc9\0" }, + { 0xf93f, 0, 255, "\x93\x04\0" }, + { 0xf940, 0, 255, "\x9e\x7f\0" }, + { 0xf941, 0, 255, "\x8a\xd6\0" }, + { 0xf942, 0, 255, "\x58\xdf\0" }, + { 0xf943, 0, 255, "\x5f\x04\0" }, + { 0xf944, 0, 255, "\x7c\x60\0" }, + { 0xf945, 0, 255, "\x80\x7e\0" }, + { 0xf946, 0, 255, "\x72\x62\0" }, + { 0xf947, 0, 255, "\x78\xca\0" }, + { 0xf948, 0, 255, "\x8c\xc2\0" }, + { 0xf949, 0, 255, "\x96\xf7\0" }, + { 0xf94a, 0, 255, "\x58\xd8\0" }, + { 0xf94b, 0, 255, "\x5c\x62\0" }, + { 0xf94c, 0, 255, "\x6a\x13\0" }, + { 0xf94d, 0, 255, "\x6d\xda\0" }, + { 0xf94e, 0, 255, "\x6f\x0f\0" }, + { 0xf94f, 0, 255, "\x7d\x2f\0" }, + { 0xf950, 0, 255, "\x7e\x37\0" }, + { 0xf951, 0, 255, "\x96\xfb\0" }, + { 0xf952, 0, 255, "\x52\xd2\0" }, + { 0xf953, 0, 255, "\x80\x8b\0" }, + { 0xf954, 0, 255, "\x51\xdc\0" }, + { 0xf955, 0, 255, "\x51\xcc\0" }, + { 0xf956, 0, 255, "\x7a\x1c\0" }, + { 0xf957, 0, 255, "\x7d\xbe\0" }, + { 0xf958, 0, 255, "\x83\xf1\0" }, + { 0xf959, 0, 255, "\x96\x75\0" }, + { 0xf95a, 0, 255, "\x8b\x80\0" }, + { 0xf95b, 0, 255, "\x62\xcf\0" }, + { 0xf95c, 0, 255, "\x6a\x02\0" }, + { 0xf95d, 0, 255, "\x8a\xfe\0" }, + { 0xf95e, 0, 255, "\x4e\x39\0" }, + { 0xf95f, 0, 255, "\x5b\xe7\0" }, + { 0xf960, 0, 255, "\x60\x12\0" }, + { 0xf961, 0, 255, "\x73\x87\0" }, + { 0xf962, 0, 255, "\x75\x70\0" }, + { 0xf963, 0, 255, "\x53\x17\0" }, + { 0xf964, 0, 255, "\x78\xfb\0" }, + { 0xf965, 0, 255, "\x4f\xbf\0" }, + { 0xf966, 0, 255, "\x5f\xa9\0" }, + { 0xf967, 0, 255, "\x4e\x0d\0" }, + { 0xf968, 0, 255, "\x6c\xcc\0" }, + { 0xf969, 0, 255, "\x65\x78\0" }, + { 0xf96a, 0, 255, "\x7d\x22\0" }, + { 0xf96b, 0, 255, "\x53\xc3\0" }, + { 0xf96c, 0, 255, "\x58\x5e\0" }, + { 0xf96d, 0, 255, "\x77\x01\0" }, + { 0xf96e, 0, 255, "\x84\x49\0" }, + { 0xf96f, 0, 255, "\x8a\xaa\0" }, + { 0xf970, 0, 255, "\x6b\xba\0" }, + { 0xf971, 0, 255, "\x8f\xb0\0" }, + { 0xf972, 0, 255, "\x6c\x88\0" }, + { 0xf973, 0, 255, "\x62\xfe\0" }, + { 0xf974, 0, 255, "\x82\xe5\0" }, + { 0xf975, 0, 255, "\x63\xa0\0" }, + { 0xf976, 0, 255, "\x75\x65\0" }, + { 0xf977, 0, 255, "\x4e\xae\0" }, + { 0xf978, 0, 255, "\x51\x69\0" }, + { 0xf979, 0, 255, "\x51\xc9\0" }, + { 0xf97a, 0, 255, "\x68\x81\0" }, + { 0xf97b, 0, 255, "\x7c\xe7\0" }, + { 0xf97c, 0, 255, "\x82\x6f\0" }, + { 0xf97d, 0, 255, "\x8a\xd2\0" }, + { 0xf97e, 0, 255, "\x91\xcf\0" }, + { 0xf97f, 0, 255, "\x52\xf5\0" }, + { 0xf980, 0, 255, "\x54\x42\0" }, + { 0xf981, 0, 255, "\x59\x73\0" }, + { 0xf982, 0, 255, "\x5e\xec\0" }, + { 0xf983, 0, 255, "\x65\xc5\0" }, + { 0xf984, 0, 255, "\x6f\xfe\0" }, + { 0xf985, 0, 255, "\x79\x2a\0" }, + { 0xf986, 0, 255, "\x95\xad\0" }, + { 0xf987, 0, 255, "\x9a\x6a\0" }, + { 0xf988, 0, 255, "\x9e\x97\0" }, + { 0xf989, 0, 255, "\x9e\xce\0" }, + { 0xf98a, 0, 255, "\x52\x9b\0" }, + { 0xf98b, 0, 255, "\x66\xc6\0" }, + { 0xf98c, 0, 255, "\x6b\x77\0" }, + { 0xf98d, 0, 255, "\x8f\x62\0" }, + { 0xf98e, 0, 255, "\x5e\x74\0" }, + { 0xf98f, 0, 255, "\x61\x90\0" }, + { 0xf990, 0, 255, "\x62\x00\0" }, + { 0xf991, 0, 255, "\x64\x9a\0" }, + { 0xf992, 0, 255, "\x6f\x23\0" }, + { 0xf993, 0, 255, "\x71\x49\0" }, + { 0xf994, 0, 255, "\x74\x89\0" }, + { 0xf995, 0, 255, "\x79\xca\0" }, + { 0xf996, 0, 255, "\x7d\xf4\0" }, + { 0xf997, 0, 255, "\x80\x6f\0" }, + { 0xf998, 0, 255, "\x8f\x26\0" }, + { 0xf999, 0, 255, "\x84\xee\0" }, + { 0xf99a, 0, 255, "\x90\x23\0" }, + { 0xf99b, 0, 255, "\x93\x4a\0" }, + { 0xf99c, 0, 255, "\x52\x17\0" }, + { 0xf99d, 0, 255, "\x52\xa3\0" }, + { 0xf99e, 0, 255, "\x54\xbd\0" }, + { 0xf99f, 0, 255, "\x70\xc8\0" }, + { 0xf9a0, 0, 255, "\x88\xc2\0" }, + { 0xf9a1, 0, 255, "\x8a\xaa\0" }, + { 0xf9a2, 0, 255, "\x5e\xc9\0" }, + { 0xf9a3, 0, 255, "\x5f\xf5\0" }, + { 0xf9a4, 0, 255, "\x63\x7b\0" }, + { 0xf9a5, 0, 255, "\x6b\xae\0" }, + { 0xf9a6, 0, 255, "\x7c\x3e\0" }, + { 0xf9a7, 0, 255, "\x73\x75\0" }, + { 0xf9a8, 0, 255, "\x4e\xe4\0" }, + { 0xf9a9, 0, 255, "\x56\xf9\0" }, + { 0xf9aa, 0, 255, "\x5b\xe7\0" }, + { 0xf9ab, 0, 255, "\x5d\xba\0" }, + { 0xf9ac, 0, 255, "\x60\x1c\0" }, + { 0xf9ad, 0, 255, "\x73\xb2\0" }, + { 0xf9ae, 0, 255, "\x74\x69\0" }, + { 0xf9af, 0, 255, "\x7f\x9a\0" }, + { 0xf9b0, 0, 255, "\x80\x46\0" }, + { 0xf9b1, 0, 255, "\x92\x34\0" }, + { 0xf9b2, 0, 255, "\x96\xf6\0" }, + { 0xf9b3, 0, 255, "\x97\x48\0" }, + { 0xf9b4, 0, 255, "\x98\x18\0" }, + { 0xf9b5, 0, 255, "\x4f\x8b\0" }, + { 0xf9b6, 0, 255, "\x79\xae\0" }, + { 0xf9b7, 0, 255, "\x91\xb4\0" }, + { 0xf9b8, 0, 255, "\x96\xb8\0" }, + { 0xf9b9, 0, 255, "\x60\xe1\0" }, + { 0xf9ba, 0, 255, "\x4e\x86\0" }, + { 0xf9bb, 0, 255, "\x50\xda\0" }, + { 0xf9bc, 0, 255, "\x5b\xee\0" }, + { 0xf9bd, 0, 255, "\x5c\x3f\0" }, + { 0xf9be, 0, 255, "\x65\x99\0" }, + { 0xf9bf, 0, 255, "\x6a\x02\0" }, + { 0xf9c0, 0, 255, "\x71\xce\0" }, + { 0xf9c1, 0, 255, "\x76\x42\0" }, + { 0xf9c2, 0, 255, "\x84\xfc\0" }, + { 0xf9c3, 0, 255, "\x90\x7c\0" }, + { 0xf9c4, 0, 255, "\x9f\x8d\0" }, + { 0xf9c5, 0, 255, "\x66\x88\0" }, + { 0xf9c6, 0, 255, "\x96\x2e\0" }, + { 0xf9c7, 0, 255, "\x52\x89\0" }, + { 0xf9c8, 0, 255, "\x67\x7b\0" }, + { 0xf9c9, 0, 255, "\x67\xf3\0" }, + { 0xf9ca, 0, 255, "\x6d\x41\0" }, + { 0xf9cb, 0, 255, "\x6e\x9c\0" }, + { 0xf9cc, 0, 255, "\x74\x09\0" }, + { 0xf9cd, 0, 255, "\x75\x59\0" }, + { 0xf9ce, 0, 255, "\x78\x6b\0" }, + { 0xf9cf, 0, 255, "\x7d\x10\0" }, + { 0xf9d0, 0, 255, "\x98\x5e\0" }, + { 0xf9d1, 0, 255, "\x51\x6d\0" }, + { 0xf9d2, 0, 255, "\x62\x2e\0" }, + { 0xf9d3, 0, 255, "\x96\x78\0" }, + { 0xf9d4, 0, 255, "\x50\x2b\0" }, + { 0xf9d5, 0, 255, "\x5d\x19\0" }, + { 0xf9d6, 0, 255, "\x6d\xea\0" }, + { 0xf9d7, 0, 255, "\x8f\x2a\0" }, + { 0xf9d8, 0, 255, "\x5f\x8b\0" }, + { 0xf9d9, 0, 255, "\x61\x44\0" }, + { 0xf9da, 0, 255, "\x68\x17\0" }, + { 0xf9db, 0, 255, "\x73\x87\0" }, + { 0xf9dc, 0, 255, "\x96\x86\0" }, + { 0xf9dd, 0, 255, "\x52\x29\0" }, + { 0xf9de, 0, 255, "\x54\x0f\0" }, + { 0xf9df, 0, 255, "\x5c\x65\0" }, + { 0xf9e0, 0, 255, "\x66\x13\0" }, + { 0xf9e1, 0, 255, "\x67\x4e\0" }, + { 0xf9e2, 0, 255, "\x68\xa8\0" }, + { 0xf9e3, 0, 255, "\x6c\xe5\0" }, + { 0xf9e4, 0, 255, "\x74\x06\0" }, + { 0xf9e5, 0, 255, "\x75\xe2\0" }, + { 0xf9e6, 0, 255, "\x7f\x79\0" }, + { 0xf9e7, 0, 255, "\x88\xcf\0" }, + { 0xf9e8, 0, 255, "\x88\xe1\0" }, + { 0xf9e9, 0, 255, "\x91\xcc\0" }, + { 0xf9ea, 0, 255, "\x96\xe2\0" }, + { 0xf9eb, 0, 255, "\x53\x3f\0" }, + { 0xf9ec, 0, 255, "\x6e\xba\0" }, + { 0xf9ed, 0, 255, "\x54\x1d\0" }, + { 0xf9ee, 0, 255, "\x71\xd0\0" }, + { 0xf9ef, 0, 255, "\x74\x98\0" }, + { 0xf9f0, 0, 255, "\x85\xfa\0" }, + { 0xf9f1, 0, 255, "\x96\xa3\0" }, + { 0xf9f2, 0, 255, "\x9c\x57\0" }, + { 0xf9f3, 0, 255, "\x9e\x9f\0" }, + { 0xf9f4, 0, 255, "\x67\x97\0" }, + { 0xf9f5, 0, 255, "\x6d\xcb\0" }, + { 0xf9f6, 0, 255, "\x81\xe8\0" }, + { 0xf9f7, 0, 255, "\x7a\xcb\0" }, + { 0xf9f8, 0, 255, "\x7b\x20\0" }, + { 0xf9f9, 0, 255, "\x7c\x92\0" }, + { 0xf9fa, 0, 255, "\x72\xc0\0" }, + { 0xf9fb, 0, 255, "\x70\x99\0" }, + { 0xf9fc, 0, 255, "\x8b\x58\0" }, + { 0xf9fd, 0, 255, "\x4e\xc0\0" }, + { 0xf9fe, 0, 255, "\x83\x36\0" }, + { 0xf9ff, 0, 255, "\x52\x3a\0" }, + { 0xfa00, 0, 255, "\x52\x07\0" }, + { 0xfa01, 0, 255, "\x5e\xa6\0" }, + { 0xfa02, 0, 255, "\x62\xd3\0" }, + { 0xfa03, 0, 255, "\x7c\xd6\0" }, + { 0xfa04, 0, 255, "\x5b\x85\0" }, + { 0xfa05, 0, 255, "\x6d\x1e\0" }, + { 0xfa06, 0, 255, "\x66\xb4\0" }, + { 0xfa07, 0, 255, "\x8f\x3b\0" }, + { 0xfa08, 0, 255, "\x88\x4c\0" }, + { 0xfa09, 0, 255, "\x96\x4d\0" }, + { 0xfa0a, 0, 255, "\x89\x8b\0" }, + { 0xfa0b, 0, 255, "\x5e\xd3\0" }, + { 0xfa0c, 0, 255, "\x51\x40\0" }, + { 0xfa0d, 0, 255, "\x55\xc0\0" }, + { 0xfa10, 0, 255, "\x58\x5a\0" }, + { 0xfa12, 0, 255, "\x66\x74\0" }, + { 0xfa15, 0, 255, "\x51\xde\0" }, + { 0xfa16, 0, 255, "\x73\x2a\0" }, + { 0xfa17, 0, 255, "\x76\xca\0" }, + { 0xfa18, 0, 255, "\x79\x3c\0" }, + { 0xfa19, 0, 255, "\x79\x5e\0" }, + { 0xfa1a, 0, 255, "\x79\x65\0" }, + { 0xfa1b, 0, 255, "\x79\x8f\0" }, + { 0xfa1c, 0, 255, "\x97\x56\0" }, + { 0xfa1d, 0, 255, "\x7c\xbe\0" }, + { 0xfa1e, 0, 255, "\x7f\xbd\0" }, + { 0xfa20, 0, 255, "\x86\x12\0" }, + { 0xfa22, 0, 255, "\x8a\xf8\0" }, + { 0xfa25, 0, 255, "\x90\x38\0" }, + { 0xfa26, 0, 255, "\x90\xfd\0" }, + { 0xfa2a, 0, 255, "\x98\xef\0" }, + { 0xfa2b, 0, 255, "\x98\xfc\0" }, + { 0xfa2c, 0, 255, "\x99\x28\0" }, + { 0xfa2d, 0, 255, "\x9d\xb4\0" }, + { 0xfb00, 255, 0, "\x00\x66\x00\x66\0" }, + { 0xfb01, 255, 0, "\x00\x66\x00\x69\0" }, + { 0xfb02, 255, 0, "\x00\x66\x00\x6c\0" }, + { 0xfb03, 255, 0, "\x00\x66\x00\x66\x00\x69\0" }, + { 0xfb04, 255, 0, "\x00\x66\x00\x66\x00\x6c\0" }, + { 0xfb05, 255, 0, "\x00\x73\x00\x74\0" }, + { 0xfb06, 255, 0, "\x00\x73\x00\x74\0" }, + { 0xfb13, 255, 0, "\x05\x74\x05\x76\0" }, + { 0xfb14, 255, 0, "\x05\x74\x05\x65\0" }, + { 0xfb15, 255, 0, "\x05\x74\x05\x6b\0" }, + { 0xfb16, 255, 0, "\x05\x7e\x05\x76\0" }, + { 0xfb17, 255, 0, "\x05\x74\x05\x6d\0" }, + { 0xfb1d, 0, 255, "\x05\xd9\x05\xb4\0" }, + { 0xfb1f, 0, 255, "\x05\xf2\x05\xb7\0" }, + { 0xfb20, 255, 0, "\x05\xe2\0" }, + { 0xfb21, 255, 0, "\x05\xd0\0" }, + { 0xfb22, 255, 0, "\x05\xd3\0" }, + { 0xfb23, 255, 0, "\x05\xd4\0" }, + { 0xfb24, 255, 0, "\x05\xdb\0" }, + { 0xfb25, 255, 0, "\x05\xdc\0" }, + { 0xfb26, 255, 0, "\x05\xdd\0" }, + { 0xfb27, 255, 0, "\x05\xe8\0" }, + { 0xfb28, 255, 0, "\x05\xea\0" }, + { 0xfb29, 255, 0, "\x00\x2b\0" }, + { 0xfb2a, 0, 255, "\x05\xe9\x05\xc1\0" }, + { 0xfb2b, 0, 255, "\x05\xe9\x05\xc2\0" }, + { 0xfb2c, 0, 255, "\x05\xe9\x05\xbc\x05\xc1\0" }, + { 0xfb2d, 0, 255, "\x05\xe9\x05\xbc\x05\xc2\0" }, + { 0xfb2e, 0, 255, "\x05\xd0\x05\xb7\0" }, + { 0xfb2f, 0, 255, "\x05\xd0\x05\xb8\0" }, + { 0xfb30, 0, 255, "\x05\xd0\x05\xbc\0" }, + { 0xfb31, 0, 255, "\x05\xd1\x05\xbc\0" }, + { 0xfb32, 0, 255, "\x05\xd2\x05\xbc\0" }, + { 0xfb33, 0, 255, "\x05\xd3\x05\xbc\0" }, + { 0xfb34, 0, 255, "\x05\xd4\x05\xbc\0" }, + { 0xfb35, 0, 255, "\x05\xd5\x05\xbc\0" }, + { 0xfb36, 0, 255, "\x05\xd6\x05\xbc\0" }, + { 0xfb38, 0, 255, "\x05\xd8\x05\xbc\0" }, + { 0xfb39, 0, 255, "\x05\xd9\x05\xbc\0" }, + { 0xfb3a, 0, 255, "\x05\xda\x05\xbc\0" }, + { 0xfb3b, 0, 255, "\x05\xdb\x05\xbc\0" }, + { 0xfb3c, 0, 255, "\x05\xdc\x05\xbc\0" }, + { 0xfb3e, 0, 255, "\x05\xde\x05\xbc\0" }, + { 0xfb40, 0, 255, "\x05\xe0\x05\xbc\0" }, + { 0xfb41, 0, 255, "\x05\xe1\x05\xbc\0" }, + { 0xfb43, 0, 255, "\x05\xe3\x05\xbc\0" }, + { 0xfb44, 0, 255, "\x05\xe4\x05\xbc\0" }, + { 0xfb46, 0, 255, "\x05\xe6\x05\xbc\0" }, + { 0xfb47, 0, 255, "\x05\xe7\x05\xbc\0" }, + { 0xfb48, 0, 255, "\x05\xe8\x05\xbc\0" }, + { 0xfb49, 0, 255, "\x05\xe9\x05\xbc\0" }, + { 0xfb4a, 0, 255, "\x05\xea\x05\xbc\0" }, + { 0xfb4b, 0, 255, "\x05\xd5\x05\xb9\0" }, + { 0xfb4c, 0, 255, "\x05\xd1\x05\xbf\0" }, + { 0xfb4d, 0, 255, "\x05\xdb\x05\xbf\0" }, + { 0xfb4e, 0, 255, "\x05\xe4\x05\xbf\0" }, + { 0xfb4f, 255, 0, "\x05\xd0\x05\xdc\0" }, + { 0xfb50, 255, 0, "\x06\x71\0" }, + { 0xfb51, 255, 0, "\x06\x71\0" }, + { 0xfb52, 255, 0, "\x06\x7b\0" }, + { 0xfb53, 255, 0, "\x06\x7b\0" }, + { 0xfb54, 255, 0, "\x06\x7b\0" }, + { 0xfb55, 255, 0, "\x06\x7b\0" }, + { 0xfb56, 255, 0, "\x06\x7e\0" }, + { 0xfb57, 255, 0, "\x06\x7e\0" }, + { 0xfb58, 255, 0, "\x06\x7e\0" }, + { 0xfb59, 255, 0, "\x06\x7e\0" }, + { 0xfb5a, 255, 0, "\x06\x80\0" }, + { 0xfb5b, 255, 0, "\x06\x80\0" }, + { 0xfb5c, 255, 0, "\x06\x80\0" }, + { 0xfb5d, 255, 0, "\x06\x80\0" }, + { 0xfb5e, 255, 0, "\x06\x7a\0" }, + { 0xfb5f, 255, 0, "\x06\x7a\0" }, + { 0xfb60, 255, 0, "\x06\x7a\0" }, + { 0xfb61, 255, 0, "\x06\x7a\0" }, + { 0xfb62, 255, 0, "\x06\x7f\0" }, + { 0xfb63, 255, 0, "\x06\x7f\0" }, + { 0xfb64, 255, 0, "\x06\x7f\0" }, + { 0xfb65, 255, 0, "\x06\x7f\0" }, + { 0xfb66, 255, 0, "\x06\x79\0" }, + { 0xfb67, 255, 0, "\x06\x79\0" }, + { 0xfb68, 255, 0, "\x06\x79\0" }, + { 0xfb69, 255, 0, "\x06\x79\0" }, + { 0xfb6a, 255, 0, "\x06\xa4\0" }, + { 0xfb6b, 255, 0, "\x06\xa4\0" }, + { 0xfb6c, 255, 0, "\x06\xa4\0" }, + { 0xfb6d, 255, 0, "\x06\xa4\0" }, + { 0xfb6e, 255, 0, "\x06\xa6\0" }, + { 0xfb6f, 255, 0, "\x06\xa6\0" }, + { 0xfb70, 255, 0, "\x06\xa6\0" }, + { 0xfb71, 255, 0, "\x06\xa6\0" }, + { 0xfb72, 255, 0, "\x06\x84\0" }, + { 0xfb73, 255, 0, "\x06\x84\0" }, + { 0xfb74, 255, 0, "\x06\x84\0" }, + { 0xfb75, 255, 0, "\x06\x84\0" }, + { 0xfb76, 255, 0, "\x06\x83\0" }, + { 0xfb77, 255, 0, "\x06\x83\0" }, + { 0xfb78, 255, 0, "\x06\x83\0" }, + { 0xfb79, 255, 0, "\x06\x83\0" }, + { 0xfb7a, 255, 0, "\x06\x86\0" }, + { 0xfb7b, 255, 0, "\x06\x86\0" }, + { 0xfb7c, 255, 0, "\x06\x86\0" }, + { 0xfb7d, 255, 0, "\x06\x86\0" }, + { 0xfb7e, 255, 0, "\x06\x87\0" }, + { 0xfb7f, 255, 0, "\x06\x87\0" }, + { 0xfb80, 255, 0, "\x06\x87\0" }, + { 0xfb81, 255, 0, "\x06\x87\0" }, + { 0xfb82, 255, 0, "\x06\x8d\0" }, + { 0xfb83, 255, 0, "\x06\x8d\0" }, + { 0xfb84, 255, 0, "\x06\x8c\0" }, + { 0xfb85, 255, 0, "\x06\x8c\0" }, + { 0xfb86, 255, 0, "\x06\x8e\0" }, + { 0xfb87, 255, 0, "\x06\x8e\0" }, + { 0xfb88, 255, 0, "\x06\x88\0" }, + { 0xfb89, 255, 0, "\x06\x88\0" }, + { 0xfb8a, 255, 0, "\x06\x98\0" }, + { 0xfb8b, 255, 0, "\x06\x98\0" }, + { 0xfb8c, 255, 0, "\x06\x91\0" }, + { 0xfb8d, 255, 0, "\x06\x91\0" }, + { 0xfb8e, 255, 0, "\x06\xa9\0" }, + { 0xfb8f, 255, 0, "\x06\xa9\0" }, + { 0xfb90, 255, 0, "\x06\xa9\0" }, + { 0xfb91, 255, 0, "\x06\xa9\0" }, + { 0xfb92, 255, 0, "\x06\xaf\0" }, + { 0xfb93, 255, 0, "\x06\xaf\0" }, + { 0xfb94, 255, 0, "\x06\xaf\0" }, + { 0xfb95, 255, 0, "\x06\xaf\0" }, + { 0xfb96, 255, 0, "\x06\xb3\0" }, + { 0xfb97, 255, 0, "\x06\xb3\0" }, + { 0xfb98, 255, 0, "\x06\xb3\0" }, + { 0xfb99, 255, 0, "\x06\xb3\0" }, + { 0xfb9a, 255, 0, "\x06\xb1\0" }, + { 0xfb9b, 255, 0, "\x06\xb1\0" }, + { 0xfb9c, 255, 0, "\x06\xb1\0" }, + { 0xfb9d, 255, 0, "\x06\xb1\0" }, + { 0xfb9e, 255, 0, "\x06\xba\0" }, + { 0xfb9f, 255, 0, "\x06\xba\0" }, + { 0xfba0, 255, 0, "\x06\xbb\0" }, + { 0xfba1, 255, 0, "\x06\xbb\0" }, + { 0xfba2, 255, 0, "\x06\xbb\0" }, + { 0xfba3, 255, 0, "\x06\xbb\0" }, + { 0xfba4, 255, 0, "\x06\xd5\x06\x54\0" }, + { 0xfba5, 255, 0, "\x06\xd5\x06\x54\0" }, + { 0xfba6, 255, 0, "\x06\xc1\0" }, + { 0xfba7, 255, 0, "\x06\xc1\0" }, + { 0xfba8, 255, 0, "\x06\xc1\0" }, + { 0xfba9, 255, 0, "\x06\xc1\0" }, + { 0xfbaa, 255, 0, "\x06\xbe\0" }, + { 0xfbab, 255, 0, "\x06\xbe\0" }, + { 0xfbac, 255, 0, "\x06\xbe\0" }, + { 0xfbad, 255, 0, "\x06\xbe\0" }, + { 0xfbae, 255, 0, "\x06\xd2\0" }, + { 0xfbaf, 255, 0, "\x06\xd2\0" }, + { 0xfbb0, 255, 0, "\x06\xd2\x06\x54\0" }, + { 0xfbb1, 255, 0, "\x06\xd2\x06\x54\0" }, + { 0xfbd3, 255, 0, "\x06\xad\0" }, + { 0xfbd4, 255, 0, "\x06\xad\0" }, + { 0xfbd5, 255, 0, "\x06\xad\0" }, + { 0xfbd6, 255, 0, "\x06\xad\0" }, + { 0xfbd7, 255, 0, "\x06\xc7\0" }, + { 0xfbd8, 255, 0, "\x06\xc7\0" }, + { 0xfbd9, 255, 0, "\x06\xc6\0" }, + { 0xfbda, 255, 0, "\x06\xc6\0" }, + { 0xfbdb, 255, 0, "\x06\xc8\0" }, + { 0xfbdc, 255, 0, "\x06\xc8\0" }, + { 0xfbdd, 255, 0, "\x06\xc7\x06\x74\0" }, + { 0xfbde, 255, 0, "\x06\xcb\0" }, + { 0xfbdf, 255, 0, "\x06\xcb\0" }, + { 0xfbe0, 255, 0, "\x06\xc5\0" }, + { 0xfbe1, 255, 0, "\x06\xc5\0" }, + { 0xfbe2, 255, 0, "\x06\xc9\0" }, + { 0xfbe3, 255, 0, "\x06\xc9\0" }, + { 0xfbe4, 255, 0, "\x06\xd0\0" }, + { 0xfbe5, 255, 0, "\x06\xd0\0" }, + { 0xfbe6, 255, 0, "\x06\xd0\0" }, + { 0xfbe7, 255, 0, "\x06\xd0\0" }, + { 0xfbe8, 255, 0, "\x06\x49\0" }, + { 0xfbe9, 255, 0, "\x06\x49\0" }, + { 0xfbea, 255, 0, "\x06\x4a\x06\x54\x06\x27\0" }, + { 0xfbeb, 255, 0, "\x06\x4a\x06\x54\x06\x27\0" }, + { 0xfbec, 255, 0, "\x06\x4a\x06\x54\x06\xd5\0" }, + { 0xfbed, 255, 0, "\x06\x4a\x06\x54\x06\xd5\0" }, + { 0xfbee, 255, 0, "\x06\x4a\x06\x54\x06\x48\0" }, + { 0xfbef, 255, 0, "\x06\x4a\x06\x54\x06\x48\0" }, + { 0xfbf0, 255, 0, "\x06\x4a\x06\x54\x06\xc7\0" }, + { 0xfbf1, 255, 0, "\x06\x4a\x06\x54\x06\xc7\0" }, + { 0xfbf2, 255, 0, "\x06\x4a\x06\x54\x06\xc6\0" }, + { 0xfbf3, 255, 0, "\x06\x4a\x06\x54\x06\xc6\0" }, + { 0xfbf4, 255, 0, "\x06\x4a\x06\x54\x06\xc8\0" }, + { 0xfbf5, 255, 0, "\x06\x4a\x06\x54\x06\xc8\0" }, + { 0xfbf6, 255, 0, "\x06\x4a\x06\x54\x06\xd0\0" }, + { 0xfbf7, 255, 0, "\x06\x4a\x06\x54\x06\xd0\0" }, + { 0xfbf8, 255, 0, "\x06\x4a\x06\x54\x06\xd0\0" }, + { 0xfbf9, 255, 0, "\x06\x4a\x06\x54\x06\x49\0" }, + { 0xfbfa, 255, 0, "\x06\x4a\x06\x54\x06\x49\0" }, + { 0xfbfb, 255, 0, "\x06\x4a\x06\x54\x06\x49\0" }, + { 0xfbfc, 255, 0, "\x06\xcc\0" }, + { 0xfbfd, 255, 0, "\x06\xcc\0" }, + { 0xfbfe, 255, 0, "\x06\xcc\0" }, + { 0xfbff, 255, 0, "\x06\xcc\0" }, + { 0xfc00, 255, 0, "\x06\x4a\x06\x54\x06\x2c\0" }, + { 0xfc01, 255, 0, "\x06\x4a\x06\x54\x06\x2d\0" }, + { 0xfc02, 255, 0, "\x06\x4a\x06\x54\x06\x45\0" }, + { 0xfc03, 255, 0, "\x06\x4a\x06\x54\x06\x49\0" }, + { 0xfc04, 255, 0, "\x06\x4a\x06\x54\x06\x4a\0" }, + { 0xfc05, 255, 0, "\x06\x28\x06\x2c\0" }, + { 0xfc06, 255, 0, "\x06\x28\x06\x2d\0" }, + { 0xfc07, 255, 0, "\x06\x28\x06\x2e\0" }, + { 0xfc08, 255, 0, "\x06\x28\x06\x45\0" }, + { 0xfc09, 255, 0, "\x06\x28\x06\x49\0" }, + { 0xfc0a, 255, 0, "\x06\x28\x06\x4a\0" }, + { 0xfc0b, 255, 0, "\x06\x2a\x06\x2c\0" }, + { 0xfc0c, 255, 0, "\x06\x2a\x06\x2d\0" }, + { 0xfc0d, 255, 0, "\x06\x2a\x06\x2e\0" }, + { 0xfc0e, 255, 0, "\x06\x2a\x06\x45\0" }, + { 0xfc0f, 255, 0, "\x06\x2a\x06\x49\0" }, + { 0xfc10, 255, 0, "\x06\x2a\x06\x4a\0" }, + { 0xfc11, 255, 0, "\x06\x2b\x06\x2c\0" }, + { 0xfc12, 255, 0, "\x06\x2b\x06\x45\0" }, + { 0xfc13, 255, 0, "\x06\x2b\x06\x49\0" }, + { 0xfc14, 255, 0, "\x06\x2b\x06\x4a\0" }, + { 0xfc15, 255, 0, "\x06\x2c\x06\x2d\0" }, + { 0xfc16, 255, 0, "\x06\x2c\x06\x45\0" }, + { 0xfc17, 255, 0, "\x06\x2d\x06\x2c\0" }, + { 0xfc18, 255, 0, "\x06\x2d\x06\x45\0" }, + { 0xfc19, 255, 0, "\x06\x2e\x06\x2c\0" }, + { 0xfc1a, 255, 0, "\x06\x2e\x06\x2d\0" }, + { 0xfc1b, 255, 0, "\x06\x2e\x06\x45\0" }, + { 0xfc1c, 255, 0, "\x06\x33\x06\x2c\0" }, + { 0xfc1d, 255, 0, "\x06\x33\x06\x2d\0" }, + { 0xfc1e, 255, 0, "\x06\x33\x06\x2e\0" }, + { 0xfc1f, 255, 0, "\x06\x33\x06\x45\0" }, + { 0xfc20, 255, 0, "\x06\x35\x06\x2d\0" }, + { 0xfc21, 255, 0, "\x06\x35\x06\x45\0" }, + { 0xfc22, 255, 0, "\x06\x36\x06\x2c\0" }, + { 0xfc23, 255, 0, "\x06\x36\x06\x2d\0" }, + { 0xfc24, 255, 0, "\x06\x36\x06\x2e\0" }, + { 0xfc25, 255, 0, "\x06\x36\x06\x45\0" }, + { 0xfc26, 255, 0, "\x06\x37\x06\x2d\0" }, + { 0xfc27, 255, 0, "\x06\x37\x06\x45\0" }, + { 0xfc28, 255, 0, "\x06\x38\x06\x45\0" }, + { 0xfc29, 255, 0, "\x06\x39\x06\x2c\0" }, + { 0xfc2a, 255, 0, "\x06\x39\x06\x45\0" }, + { 0xfc2b, 255, 0, "\x06\x3a\x06\x2c\0" }, + { 0xfc2c, 255, 0, "\x06\x3a\x06\x45\0" }, + { 0xfc2d, 255, 0, "\x06\x41\x06\x2c\0" }, + { 0xfc2e, 255, 0, "\x06\x41\x06\x2d\0" }, + { 0xfc2f, 255, 0, "\x06\x41\x06\x2e\0" }, + { 0xfc30, 255, 0, "\x06\x41\x06\x45\0" }, + { 0xfc31, 255, 0, "\x06\x41\x06\x49\0" }, + { 0xfc32, 255, 0, "\x06\x41\x06\x4a\0" }, + { 0xfc33, 255, 0, "\x06\x42\x06\x2d\0" }, + { 0xfc34, 255, 0, "\x06\x42\x06\x45\0" }, + { 0xfc35, 255, 0, "\x06\x42\x06\x49\0" }, + { 0xfc36, 255, 0, "\x06\x42\x06\x4a\0" }, + { 0xfc37, 255, 0, "\x06\x43\x06\x27\0" }, + { 0xfc38, 255, 0, "\x06\x43\x06\x2c\0" }, + { 0xfc39, 255, 0, "\x06\x43\x06\x2d\0" }, + { 0xfc3a, 255, 0, "\x06\x43\x06\x2e\0" }, + { 0xfc3b, 255, 0, "\x06\x43\x06\x44\0" }, + { 0xfc3c, 255, 0, "\x06\x43\x06\x45\0" }, + { 0xfc3d, 255, 0, "\x06\x43\x06\x49\0" }, + { 0xfc3e, 255, 0, "\x06\x43\x06\x4a\0" }, + { 0xfc3f, 255, 0, "\x06\x44\x06\x2c\0" }, + { 0xfc40, 255, 0, "\x06\x44\x06\x2d\0" }, + { 0xfc41, 255, 0, "\x06\x44\x06\x2e\0" }, + { 0xfc42, 255, 0, "\x06\x44\x06\x45\0" }, + { 0xfc43, 255, 0, "\x06\x44\x06\x49\0" }, + { 0xfc44, 255, 0, "\x06\x44\x06\x4a\0" }, + { 0xfc45, 255, 0, "\x06\x45\x06\x2c\0" }, + { 0xfc46, 255, 0, "\x06\x45\x06\x2d\0" }, + { 0xfc47, 255, 0, "\x06\x45\x06\x2e\0" }, + { 0xfc48, 255, 0, "\x06\x45\x06\x45\0" }, + { 0xfc49, 255, 0, "\x06\x45\x06\x49\0" }, + { 0xfc4a, 255, 0, "\x06\x45\x06\x4a\0" }, + { 0xfc4b, 255, 0, "\x06\x46\x06\x2c\0" }, + { 0xfc4c, 255, 0, "\x06\x46\x06\x2d\0" }, + { 0xfc4d, 255, 0, "\x06\x46\x06\x2e\0" }, + { 0xfc4e, 255, 0, "\x06\x46\x06\x45\0" }, + { 0xfc4f, 255, 0, "\x06\x46\x06\x49\0" }, + { 0xfc50, 255, 0, "\x06\x46\x06\x4a\0" }, + { 0xfc51, 255, 0, "\x06\x47\x06\x2c\0" }, + { 0xfc52, 255, 0, "\x06\x47\x06\x45\0" }, + { 0xfc53, 255, 0, "\x06\x47\x06\x49\0" }, + { 0xfc54, 255, 0, "\x06\x47\x06\x4a\0" }, + { 0xfc55, 255, 0, "\x06\x4a\x06\x2c\0" }, + { 0xfc56, 255, 0, "\x06\x4a\x06\x2d\0" }, + { 0xfc57, 255, 0, "\x06\x4a\x06\x2e\0" }, + { 0xfc58, 255, 0, "\x06\x4a\x06\x45\0" }, + { 0xfc59, 255, 0, "\x06\x4a\x06\x49\0" }, + { 0xfc5a, 255, 0, "\x06\x4a\x06\x4a\0" }, + { 0xfc5b, 255, 0, "\x06\x30\x06\x70\0" }, + { 0xfc5c, 255, 0, "\x06\x31\x06\x70\0" }, + { 0xfc5d, 255, 0, "\x06\x49\x06\x70\0" }, + { 0xfc5e, 255, 0, "\x00\x20\x06\x4c\x06\x51\0" }, + { 0xfc5f, 255, 0, "\x00\x20\x06\x4d\x06\x51\0" }, + { 0xfc60, 255, 0, "\x00\x20\x06\x4e\x06\x51\0" }, + { 0xfc61, 255, 0, "\x00\x20\x06\x4f\x06\x51\0" }, + { 0xfc62, 255, 0, "\x00\x20\x06\x50\x06\x51\0" }, + { 0xfc63, 255, 0, "\x00\x20\x06\x51\x06\x70\0" }, + { 0xfc64, 255, 0, "\x06\x4a\x06\x54\x06\x31\0" }, + { 0xfc65, 255, 0, "\x06\x4a\x06\x54\x06\x32\0" }, + { 0xfc66, 255, 0, "\x06\x4a\x06\x54\x06\x45\0" }, + { 0xfc67, 255, 0, "\x06\x4a\x06\x54\x06\x46\0" }, + { 0xfc68, 255, 0, "\x06\x4a\x06\x54\x06\x49\0" }, + { 0xfc69, 255, 0, "\x06\x4a\x06\x54\x06\x4a\0" }, + { 0xfc6a, 255, 0, "\x06\x28\x06\x31\0" }, + { 0xfc6b, 255, 0, "\x06\x28\x06\x32\0" }, + { 0xfc6c, 255, 0, "\x06\x28\x06\x45\0" }, + { 0xfc6d, 255, 0, "\x06\x28\x06\x46\0" }, + { 0xfc6e, 255, 0, "\x06\x28\x06\x49\0" }, + { 0xfc6f, 255, 0, "\x06\x28\x06\x4a\0" }, + { 0xfc70, 255, 0, "\x06\x2a\x06\x31\0" }, + { 0xfc71, 255, 0, "\x06\x2a\x06\x32\0" }, + { 0xfc72, 255, 0, "\x06\x2a\x06\x45\0" }, + { 0xfc73, 255, 0, "\x06\x2a\x06\x46\0" }, + { 0xfc74, 255, 0, "\x06\x2a\x06\x49\0" }, + { 0xfc75, 255, 0, "\x06\x2a\x06\x4a\0" }, + { 0xfc76, 255, 0, "\x06\x2b\x06\x31\0" }, + { 0xfc77, 255, 0, "\x06\x2b\x06\x32\0" }, + { 0xfc78, 255, 0, "\x06\x2b\x06\x45\0" }, + { 0xfc79, 255, 0, "\x06\x2b\x06\x46\0" }, + { 0xfc7a, 255, 0, "\x06\x2b\x06\x49\0" }, + { 0xfc7b, 255, 0, "\x06\x2b\x06\x4a\0" }, + { 0xfc7c, 255, 0, "\x06\x41\x06\x49\0" }, + { 0xfc7d, 255, 0, "\x06\x41\x06\x4a\0" }, + { 0xfc7e, 255, 0, "\x06\x42\x06\x49\0" }, + { 0xfc7f, 255, 0, "\x06\x42\x06\x4a\0" }, + { 0xfc80, 255, 0, "\x06\x43\x06\x27\0" }, + { 0xfc81, 255, 0, "\x06\x43\x06\x44\0" }, + { 0xfc82, 255, 0, "\x06\x43\x06\x45\0" }, + { 0xfc83, 255, 0, "\x06\x43\x06\x49\0" }, + { 0xfc84, 255, 0, "\x06\x43\x06\x4a\0" }, + { 0xfc85, 255, 0, "\x06\x44\x06\x45\0" }, + { 0xfc86, 255, 0, "\x06\x44\x06\x49\0" }, + { 0xfc87, 255, 0, "\x06\x44\x06\x4a\0" }, + { 0xfc88, 255, 0, "\x06\x45\x06\x27\0" }, + { 0xfc89, 255, 0, "\x06\x45\x06\x45\0" }, + { 0xfc8a, 255, 0, "\x06\x46\x06\x31\0" }, + { 0xfc8b, 255, 0, "\x06\x46\x06\x32\0" }, + { 0xfc8c, 255, 0, "\x06\x46\x06\x45\0" }, + { 0xfc8d, 255, 0, "\x06\x46\x06\x46\0" }, + { 0xfc8e, 255, 0, "\x06\x46\x06\x49\0" }, + { 0xfc8f, 255, 0, "\x06\x46\x06\x4a\0" }, + { 0xfc90, 255, 0, "\x06\x49\x06\x70\0" }, + { 0xfc91, 255, 0, "\x06\x4a\x06\x31\0" }, + { 0xfc92, 255, 0, "\x06\x4a\x06\x32\0" }, + { 0xfc93, 255, 0, "\x06\x4a\x06\x45\0" }, + { 0xfc94, 255, 0, "\x06\x4a\x06\x46\0" }, + { 0xfc95, 255, 0, "\x06\x4a\x06\x49\0" }, + { 0xfc96, 255, 0, "\x06\x4a\x06\x4a\0" }, + { 0xfc97, 255, 0, "\x06\x4a\x06\x54\x06\x2c\0" }, + { 0xfc98, 255, 0, "\x06\x4a\x06\x54\x06\x2d\0" }, + { 0xfc99, 255, 0, "\x06\x4a\x06\x54\x06\x2e\0" }, + { 0xfc9a, 255, 0, "\x06\x4a\x06\x54\x06\x45\0" }, + { 0xfc9b, 255, 0, "\x06\x4a\x06\x54\x06\x47\0" }, + { 0xfc9c, 255, 0, "\x06\x28\x06\x2c\0" }, + { 0xfc9d, 255, 0, "\x06\x28\x06\x2d\0" }, + { 0xfc9e, 255, 0, "\x06\x28\x06\x2e\0" }, + { 0xfc9f, 255, 0, "\x06\x28\x06\x45\0" }, + { 0xfca0, 255, 0, "\x06\x28\x06\x47\0" }, + { 0xfca1, 255, 0, "\x06\x2a\x06\x2c\0" }, + { 0xfca2, 255, 0, "\x06\x2a\x06\x2d\0" }, + { 0xfca3, 255, 0, "\x06\x2a\x06\x2e\0" }, + { 0xfca4, 255, 0, "\x06\x2a\x06\x45\0" }, + { 0xfca5, 255, 0, "\x06\x2a\x06\x47\0" }, + { 0xfca6, 255, 0, "\x06\x2b\x06\x45\0" }, + { 0xfca7, 255, 0, "\x06\x2c\x06\x2d\0" }, + { 0xfca8, 255, 0, "\x06\x2c\x06\x45\0" }, + { 0xfca9, 255, 0, "\x06\x2d\x06\x2c\0" }, + { 0xfcaa, 255, 0, "\x06\x2d\x06\x45\0" }, + { 0xfcab, 255, 0, "\x06\x2e\x06\x2c\0" }, + { 0xfcac, 255, 0, "\x06\x2e\x06\x45\0" }, + { 0xfcad, 255, 0, "\x06\x33\x06\x2c\0" }, + { 0xfcae, 255, 0, "\x06\x33\x06\x2d\0" }, + { 0xfcaf, 255, 0, "\x06\x33\x06\x2e\0" }, + { 0xfcb0, 255, 0, "\x06\x33\x06\x45\0" }, + { 0xfcb1, 255, 0, "\x06\x35\x06\x2d\0" }, + { 0xfcb2, 255, 0, "\x06\x35\x06\x2e\0" }, + { 0xfcb3, 255, 0, "\x06\x35\x06\x45\0" }, + { 0xfcb4, 255, 0, "\x06\x36\x06\x2c\0" }, + { 0xfcb5, 255, 0, "\x06\x36\x06\x2d\0" }, + { 0xfcb6, 255, 0, "\x06\x36\x06\x2e\0" }, + { 0xfcb7, 255, 0, "\x06\x36\x06\x45\0" }, + { 0xfcb8, 255, 0, "\x06\x37\x06\x2d\0" }, + { 0xfcb9, 255, 0, "\x06\x38\x06\x45\0" }, + { 0xfcba, 255, 0, "\x06\x39\x06\x2c\0" }, + { 0xfcbb, 255, 0, "\x06\x39\x06\x45\0" }, + { 0xfcbc, 255, 0, "\x06\x3a\x06\x2c\0" }, + { 0xfcbd, 255, 0, "\x06\x3a\x06\x45\0" }, + { 0xfcbe, 255, 0, "\x06\x41\x06\x2c\0" }, + { 0xfcbf, 255, 0, "\x06\x41\x06\x2d\0" }, + { 0xfcc0, 255, 0, "\x06\x41\x06\x2e\0" }, + { 0xfcc1, 255, 0, "\x06\x41\x06\x45\0" }, + { 0xfcc2, 255, 0, "\x06\x42\x06\x2d\0" }, + { 0xfcc3, 255, 0, "\x06\x42\x06\x45\0" }, + { 0xfcc4, 255, 0, "\x06\x43\x06\x2c\0" }, + { 0xfcc5, 255, 0, "\x06\x43\x06\x2d\0" }, + { 0xfcc6, 255, 0, "\x06\x43\x06\x2e\0" }, + { 0xfcc7, 255, 0, "\x06\x43\x06\x44\0" }, + { 0xfcc8, 255, 0, "\x06\x43\x06\x45\0" }, + { 0xfcc9, 255, 0, "\x06\x44\x06\x2c\0" }, + { 0xfcca, 255, 0, "\x06\x44\x06\x2d\0" }, + { 0xfccb, 255, 0, "\x06\x44\x06\x2e\0" }, + { 0xfccc, 255, 0, "\x06\x44\x06\x45\0" }, + { 0xfccd, 255, 0, "\x06\x44\x06\x47\0" }, + { 0xfcce, 255, 0, "\x06\x45\x06\x2c\0" }, + { 0xfccf, 255, 0, "\x06\x45\x06\x2d\0" }, + { 0xfcd0, 255, 0, "\x06\x45\x06\x2e\0" }, + { 0xfcd1, 255, 0, "\x06\x45\x06\x45\0" }, + { 0xfcd2, 255, 0, "\x06\x46\x06\x2c\0" }, + { 0xfcd3, 255, 0, "\x06\x46\x06\x2d\0" }, + { 0xfcd4, 255, 0, "\x06\x46\x06\x2e\0" }, + { 0xfcd5, 255, 0, "\x06\x46\x06\x45\0" }, + { 0xfcd6, 255, 0, "\x06\x46\x06\x47\0" }, + { 0xfcd7, 255, 0, "\x06\x47\x06\x2c\0" }, + { 0xfcd8, 255, 0, "\x06\x47\x06\x45\0" }, + { 0xfcd9, 255, 0, "\x06\x47\x06\x70\0" }, + { 0xfcda, 255, 0, "\x06\x4a\x06\x2c\0" }, + { 0xfcdb, 255, 0, "\x06\x4a\x06\x2d\0" }, + { 0xfcdc, 255, 0, "\x06\x4a\x06\x2e\0" }, + { 0xfcdd, 255, 0, "\x06\x4a\x06\x45\0" }, + { 0xfcde, 255, 0, "\x06\x4a\x06\x47\0" }, + { 0xfcdf, 255, 0, "\x06\x4a\x06\x54\x06\x45\0" }, + { 0xfce0, 255, 0, "\x06\x4a\x06\x54\x06\x47\0" }, + { 0xfce1, 255, 0, "\x06\x28\x06\x45\0" }, + { 0xfce2, 255, 0, "\x06\x28\x06\x47\0" }, + { 0xfce3, 255, 0, "\x06\x2a\x06\x45\0" }, + { 0xfce4, 255, 0, "\x06\x2a\x06\x47\0" }, + { 0xfce5, 255, 0, "\x06\x2b\x06\x45\0" }, + { 0xfce6, 255, 0, "\x06\x2b\x06\x47\0" }, + { 0xfce7, 255, 0, "\x06\x33\x06\x45\0" }, + { 0xfce8, 255, 0, "\x06\x33\x06\x47\0" }, + { 0xfce9, 255, 0, "\x06\x34\x06\x45\0" }, + { 0xfcea, 255, 0, "\x06\x34\x06\x47\0" }, + { 0xfceb, 255, 0, "\x06\x43\x06\x44\0" }, + { 0xfcec, 255, 0, "\x06\x43\x06\x45\0" }, + { 0xfced, 255, 0, "\x06\x44\x06\x45\0" }, + { 0xfcee, 255, 0, "\x06\x46\x06\x45\0" }, + { 0xfcef, 255, 0, "\x06\x46\x06\x47\0" }, + { 0xfcf0, 255, 0, "\x06\x4a\x06\x45\0" }, + { 0xfcf1, 255, 0, "\x06\x4a\x06\x47\0" }, + { 0xfcf2, 255, 0, "\x06\x40\x06\x4e\x06\x51\0" }, + { 0xfcf3, 255, 0, "\x06\x40\x06\x4f\x06\x51\0" }, + { 0xfcf4, 255, 0, "\x06\x40\x06\x50\x06\x51\0" }, + { 0xfcf5, 255, 0, "\x06\x37\x06\x49\0" }, + { 0xfcf6, 255, 0, "\x06\x37\x06\x4a\0" }, + { 0xfcf7, 255, 0, "\x06\x39\x06\x49\0" }, + { 0xfcf8, 255, 0, "\x06\x39\x06\x4a\0" }, + { 0xfcf9, 255, 0, "\x06\x3a\x06\x49\0" }, + { 0xfcfa, 255, 0, "\x06\x3a\x06\x4a\0" }, + { 0xfcfb, 255, 0, "\x06\x33\x06\x49\0" }, + { 0xfcfc, 255, 0, "\x06\x33\x06\x4a\0" }, + { 0xfcfd, 255, 0, "\x06\x34\x06\x49\0" }, + { 0xfcfe, 255, 0, "\x06\x34\x06\x4a\0" }, + { 0xfcff, 255, 0, "\x06\x2d\x06\x49\0" }, + { 0xfd00, 255, 0, "\x06\x2d\x06\x4a\0" }, + { 0xfd01, 255, 0, "\x06\x2c\x06\x49\0" }, + { 0xfd02, 255, 0, "\x06\x2c\x06\x4a\0" }, + { 0xfd03, 255, 0, "\x06\x2e\x06\x49\0" }, + { 0xfd04, 255, 0, "\x06\x2e\x06\x4a\0" }, + { 0xfd05, 255, 0, "\x06\x35\x06\x49\0" }, + { 0xfd06, 255, 0, "\x06\x35\x06\x4a\0" }, + { 0xfd07, 255, 0, "\x06\x36\x06\x49\0" }, + { 0xfd08, 255, 0, "\x06\x36\x06\x4a\0" }, + { 0xfd09, 255, 0, "\x06\x34\x06\x2c\0" }, + { 0xfd0a, 255, 0, "\x06\x34\x06\x2d\0" }, + { 0xfd0b, 255, 0, "\x06\x34\x06\x2e\0" }, + { 0xfd0c, 255, 0, "\x06\x34\x06\x45\0" }, + { 0xfd0d, 255, 0, "\x06\x34\x06\x31\0" }, + { 0xfd0e, 255, 0, "\x06\x33\x06\x31\0" }, + { 0xfd0f, 255, 0, "\x06\x35\x06\x31\0" }, + { 0xfd10, 255, 0, "\x06\x36\x06\x31\0" }, + { 0xfd11, 255, 0, "\x06\x37\x06\x49\0" }, + { 0xfd12, 255, 0, "\x06\x37\x06\x4a\0" }, + { 0xfd13, 255, 0, "\x06\x39\x06\x49\0" }, + { 0xfd14, 255, 0, "\x06\x39\x06\x4a\0" }, + { 0xfd15, 255, 0, "\x06\x3a\x06\x49\0" }, + { 0xfd16, 255, 0, "\x06\x3a\x06\x4a\0" }, + { 0xfd17, 255, 0, "\x06\x33\x06\x49\0" }, + { 0xfd18, 255, 0, "\x06\x33\x06\x4a\0" }, + { 0xfd19, 255, 0, "\x06\x34\x06\x49\0" }, + { 0xfd1a, 255, 0, "\x06\x34\x06\x4a\0" }, + { 0xfd1b, 255, 0, "\x06\x2d\x06\x49\0" }, + { 0xfd1c, 255, 0, "\x06\x2d\x06\x4a\0" }, + { 0xfd1d, 255, 0, "\x06\x2c\x06\x49\0" }, + { 0xfd1e, 255, 0, "\x06\x2c\x06\x4a\0" }, + { 0xfd1f, 255, 0, "\x06\x2e\x06\x49\0" }, + { 0xfd20, 255, 0, "\x06\x2e\x06\x4a\0" }, + { 0xfd21, 255, 0, "\x06\x35\x06\x49\0" }, + { 0xfd22, 255, 0, "\x06\x35\x06\x4a\0" }, + { 0xfd23, 255, 0, "\x06\x36\x06\x49\0" }, + { 0xfd24, 255, 0, "\x06\x36\x06\x4a\0" }, + { 0xfd25, 255, 0, "\x06\x34\x06\x2c\0" }, + { 0xfd26, 255, 0, "\x06\x34\x06\x2d\0" }, + { 0xfd27, 255, 0, "\x06\x34\x06\x2e\0" }, + { 0xfd28, 255, 0, "\x06\x34\x06\x45\0" }, + { 0xfd29, 255, 0, "\x06\x34\x06\x31\0" }, + { 0xfd2a, 255, 0, "\x06\x33\x06\x31\0" }, + { 0xfd2b, 255, 0, "\x06\x35\x06\x31\0" }, + { 0xfd2c, 255, 0, "\x06\x36\x06\x31\0" }, + { 0xfd2d, 255, 0, "\x06\x34\x06\x2c\0" }, + { 0xfd2e, 255, 0, "\x06\x34\x06\x2d\0" }, + { 0xfd2f, 255, 0, "\x06\x34\x06\x2e\0" }, + { 0xfd30, 255, 0, "\x06\x34\x06\x45\0" }, + { 0xfd31, 255, 0, "\x06\x33\x06\x47\0" }, + { 0xfd32, 255, 0, "\x06\x34\x06\x47\0" }, + { 0xfd33, 255, 0, "\x06\x37\x06\x45\0" }, + { 0xfd34, 255, 0, "\x06\x33\x06\x2c\0" }, + { 0xfd35, 255, 0, "\x06\x33\x06\x2d\0" }, + { 0xfd36, 255, 0, "\x06\x33\x06\x2e\0" }, + { 0xfd37, 255, 0, "\x06\x34\x06\x2c\0" }, + { 0xfd38, 255, 0, "\x06\x34\x06\x2d\0" }, + { 0xfd39, 255, 0, "\x06\x34\x06\x2e\0" }, + { 0xfd3a, 255, 0, "\x06\x37\x06\x45\0" }, + { 0xfd3b, 255, 0, "\x06\x38\x06\x45\0" }, + { 0xfd3c, 255, 0, "\x06\x27\x06\x4b\0" }, + { 0xfd3d, 255, 0, "\x06\x27\x06\x4b\0" }, + { 0xfd50, 255, 0, "\x06\x2a\x06\x2c\x06\x45\0" }, + { 0xfd51, 255, 0, "\x06\x2a\x06\x2d\x06\x2c\0" }, + { 0xfd52, 255, 0, "\x06\x2a\x06\x2d\x06\x2c\0" }, + { 0xfd53, 255, 0, "\x06\x2a\x06\x2d\x06\x45\0" }, + { 0xfd54, 255, 0, "\x06\x2a\x06\x2e\x06\x45\0" }, + { 0xfd55, 255, 0, "\x06\x2a\x06\x45\x06\x2c\0" }, + { 0xfd56, 255, 0, "\x06\x2a\x06\x45\x06\x2d\0" }, + { 0xfd57, 255, 0, "\x06\x2a\x06\x45\x06\x2e\0" }, + { 0xfd58, 255, 0, "\x06\x2c\x06\x45\x06\x2d\0" }, + { 0xfd59, 255, 0, "\x06\x2c\x06\x45\x06\x2d\0" }, + { 0xfd5a, 255, 0, "\x06\x2d\x06\x45\x06\x4a\0" }, + { 0xfd5b, 255, 0, "\x06\x2d\x06\x45\x06\x49\0" }, + { 0xfd5c, 255, 0, "\x06\x33\x06\x2d\x06\x2c\0" }, + { 0xfd5d, 255, 0, "\x06\x33\x06\x2c\x06\x2d\0" }, + { 0xfd5e, 255, 0, "\x06\x33\x06\x2c\x06\x49\0" }, + { 0xfd5f, 255, 0, "\x06\x33\x06\x45\x06\x2d\0" }, + { 0xfd60, 255, 0, "\x06\x33\x06\x45\x06\x2d\0" }, + { 0xfd61, 255, 0, "\x06\x33\x06\x45\x06\x2c\0" }, + { 0xfd62, 255, 0, "\x06\x33\x06\x45\x06\x45\0" }, + { 0xfd63, 255, 0, "\x06\x33\x06\x45\x06\x45\0" }, + { 0xfd64, 255, 0, "\x06\x35\x06\x2d\x06\x2d\0" }, + { 0xfd65, 255, 0, "\x06\x35\x06\x2d\x06\x2d\0" }, + { 0xfd66, 255, 0, "\x06\x35\x06\x45\x06\x45\0" }, + { 0xfd67, 255, 0, "\x06\x34\x06\x2d\x06\x45\0" }, + { 0xfd68, 255, 0, "\x06\x34\x06\x2d\x06\x45\0" }, + { 0xfd69, 255, 0, "\x06\x34\x06\x2c\x06\x4a\0" }, + { 0xfd6a, 255, 0, "\x06\x34\x06\x45\x06\x2e\0" }, + { 0xfd6b, 255, 0, "\x06\x34\x06\x45\x06\x2e\0" }, + { 0xfd6c, 255, 0, "\x06\x34\x06\x45\x06\x45\0" }, + { 0xfd6d, 255, 0, "\x06\x34\x06\x45\x06\x45\0" }, + { 0xfd6e, 255, 0, "\x06\x36\x06\x2d\x06\x49\0" }, + { 0xfd6f, 255, 0, "\x06\x36\x06\x2e\x06\x45\0" }, + { 0xfd70, 255, 0, "\x06\x36\x06\x2e\x06\x45\0" }, + { 0xfd71, 255, 0, "\x06\x37\x06\x45\x06\x2d\0" }, + { 0xfd72, 255, 0, "\x06\x37\x06\x45\x06\x2d\0" }, + { 0xfd73, 255, 0, "\x06\x37\x06\x45\x06\x45\0" }, + { 0xfd74, 255, 0, "\x06\x37\x06\x45\x06\x4a\0" }, + { 0xfd75, 255, 0, "\x06\x39\x06\x2c\x06\x45\0" }, + { 0xfd76, 255, 0, "\x06\x39\x06\x45\x06\x45\0" }, + { 0xfd77, 255, 0, "\x06\x39\x06\x45\x06\x45\0" }, + { 0xfd78, 255, 0, "\x06\x39\x06\x45\x06\x49\0" }, + { 0xfd79, 255, 0, "\x06\x3a\x06\x45\x06\x45\0" }, + { 0xfd7a, 255, 0, "\x06\x3a\x06\x45\x06\x4a\0" }, + { 0xfd7b, 255, 0, "\x06\x3a\x06\x45\x06\x49\0" }, + { 0xfd7c, 255, 0, "\x06\x41\x06\x2e\x06\x45\0" }, + { 0xfd7d, 255, 0, "\x06\x41\x06\x2e\x06\x45\0" }, + { 0xfd7e, 255, 0, "\x06\x42\x06\x45\x06\x2d\0" }, + { 0xfd7f, 255, 0, "\x06\x42\x06\x45\x06\x45\0" }, + { 0xfd80, 255, 0, "\x06\x44\x06\x2d\x06\x45\0" }, + { 0xfd81, 255, 0, "\x06\x44\x06\x2d\x06\x4a\0" }, + { 0xfd82, 255, 0, "\x06\x44\x06\x2d\x06\x49\0" }, + { 0xfd83, 255, 0, "\x06\x44\x06\x2c\x06\x2c\0" }, + { 0xfd84, 255, 0, "\x06\x44\x06\x2c\x06\x2c\0" }, + { 0xfd85, 255, 0, "\x06\x44\x06\x2e\x06\x45\0" }, + { 0xfd86, 255, 0, "\x06\x44\x06\x2e\x06\x45\0" }, + { 0xfd87, 255, 0, "\x06\x44\x06\x45\x06\x2d\0" }, + { 0xfd88, 255, 0, "\x06\x44\x06\x45\x06\x2d\0" }, + { 0xfd89, 255, 0, "\x06\x45\x06\x2d\x06\x2c\0" }, + { 0xfd8a, 255, 0, "\x06\x45\x06\x2d\x06\x45\0" }, + { 0xfd8b, 255, 0, "\x06\x45\x06\x2d\x06\x4a\0" }, + { 0xfd8c, 255, 0, "\x06\x45\x06\x2c\x06\x2d\0" }, + { 0xfd8d, 255, 0, "\x06\x45\x06\x2c\x06\x45\0" }, + { 0xfd8e, 255, 0, "\x06\x45\x06\x2e\x06\x2c\0" }, + { 0xfd8f, 255, 0, "\x06\x45\x06\x2e\x06\x45\0" }, + { 0xfd92, 255, 0, "\x06\x45\x06\x2c\x06\x2e\0" }, + { 0xfd93, 255, 0, "\x06\x47\x06\x45\x06\x2c\0" }, + { 0xfd94, 255, 0, "\x06\x47\x06\x45\x06\x45\0" }, + { 0xfd95, 255, 0, "\x06\x46\x06\x2d\x06\x45\0" }, + { 0xfd96, 255, 0, "\x06\x46\x06\x2d\x06\x49\0" }, + { 0xfd97, 255, 0, "\x06\x46\x06\x2c\x06\x45\0" }, + { 0xfd98, 255, 0, "\x06\x46\x06\x2c\x06\x45\0" }, + { 0xfd99, 255, 0, "\x06\x46\x06\x2c\x06\x49\0" }, + { 0xfd9a, 255, 0, "\x06\x46\x06\x45\x06\x4a\0" }, + { 0xfd9b, 255, 0, "\x06\x46\x06\x45\x06\x49\0" }, + { 0xfd9c, 255, 0, "\x06\x4a\x06\x45\x06\x45\0" }, + { 0xfd9d, 255, 0, "\x06\x4a\x06\x45\x06\x45\0" }, + { 0xfd9e, 255, 0, "\x06\x28\x06\x2e\x06\x4a\0" }, + { 0xfd9f, 255, 0, "\x06\x2a\x06\x2c\x06\x4a\0" }, + { 0xfda0, 255, 0, "\x06\x2a\x06\x2c\x06\x49\0" }, + { 0xfda1, 255, 0, "\x06\x2a\x06\x2e\x06\x4a\0" }, + { 0xfda2, 255, 0, "\x06\x2a\x06\x2e\x06\x49\0" }, + { 0xfda3, 255, 0, "\x06\x2a\x06\x45\x06\x4a\0" }, + { 0xfda4, 255, 0, "\x06\x2a\x06\x45\x06\x49\0" }, + { 0xfda5, 255, 0, "\x06\x2c\x06\x45\x06\x4a\0" }, + { 0xfda6, 255, 0, "\x06\x2c\x06\x2d\x06\x49\0" }, + { 0xfda7, 255, 0, "\x06\x2c\x06\x45\x06\x49\0" }, + { 0xfda8, 255, 0, "\x06\x33\x06\x2e\x06\x49\0" }, + { 0xfda9, 255, 0, "\x06\x35\x06\x2d\x06\x4a\0" }, + { 0xfdaa, 255, 0, "\x06\x34\x06\x2d\x06\x4a\0" }, + { 0xfdab, 255, 0, "\x06\x36\x06\x2d\x06\x4a\0" }, + { 0xfdac, 255, 0, "\x06\x44\x06\x2c\x06\x4a\0" }, + { 0xfdad, 255, 0, "\x06\x44\x06\x45\x06\x4a\0" }, + { 0xfdae, 255, 0, "\x06\x4a\x06\x2d\x06\x4a\0" }, + { 0xfdaf, 255, 0, "\x06\x4a\x06\x2c\x06\x4a\0" }, + { 0xfdb0, 255, 0, "\x06\x4a\x06\x45\x06\x4a\0" }, + { 0xfdb1, 255, 0, "\x06\x45\x06\x45\x06\x4a\0" }, + { 0xfdb2, 255, 0, "\x06\x42\x06\x45\x06\x4a\0" }, + { 0xfdb3, 255, 0, "\x06\x46\x06\x2d\x06\x4a\0" }, + { 0xfdb4, 255, 0, "\x06\x42\x06\x45\x06\x2d\0" }, + { 0xfdb5, 255, 0, "\x06\x44\x06\x2d\x06\x45\0" }, + { 0xfdb6, 255, 0, "\x06\x39\x06\x45\x06\x4a\0" }, + { 0xfdb7, 255, 0, "\x06\x43\x06\x45\x06\x4a\0" }, + { 0xfdb8, 255, 0, "\x06\x46\x06\x2c\x06\x2d\0" }, + { 0xfdb9, 255, 0, "\x06\x45\x06\x2e\x06\x4a\0" }, + { 0xfdba, 255, 0, "\x06\x44\x06\x2c\x06\x45\0" }, + { 0xfdbb, 255, 0, "\x06\x43\x06\x45\x06\x45\0" }, + { 0xfdbc, 255, 0, "\x06\x44\x06\x2c\x06\x45\0" }, + { 0xfdbd, 255, 0, "\x06\x46\x06\x2c\x06\x2d\0" }, + { 0xfdbe, 255, 0, "\x06\x2c\x06\x2d\x06\x4a\0" }, + { 0xfdbf, 255, 0, "\x06\x2d\x06\x2c\x06\x4a\0" }, + { 0xfdc0, 255, 0, "\x06\x45\x06\x2c\x06\x4a\0" }, + { 0xfdc1, 255, 0, "\x06\x41\x06\x45\x06\x4a\0" }, + { 0xfdc2, 255, 0, "\x06\x28\x06\x2d\x06\x4a\0" }, + { 0xfdc3, 255, 0, "\x06\x43\x06\x45\x06\x45\0" }, + { 0xfdc4, 255, 0, "\x06\x39\x06\x2c\x06\x45\0" }, + { 0xfdc5, 255, 0, "\x06\x35\x06\x45\x06\x45\0" }, + { 0xfdc6, 255, 0, "\x06\x33\x06\x2e\x06\x4a\0" }, + { 0xfdc7, 255, 0, "\x06\x46\x06\x2c\x06\x4a\0" }, + { 0xfdf0, 255, 0, "\x06\x35\x06\x44\x06\xd2\0" }, + { 0xfdf1, 255, 0, "\x06\x42\x06\x44\x06\xd2\0" }, + { 0xfdf2, 255, 0, "\x06\x27\x06\x44\x06\x44\x06\x47\0" }, + { 0xfdf3, 255, 0, "\x06\x27\x06\x43\x06\x28\x06\x31\0" }, + { 0xfdf4, 255, 0, "\x06\x45\x06\x2d\x06\x45\x06\x2f\0" }, + { 0xfdf5, 255, 0, "\x06\x35\x06\x44\x06\x39\x06\x45\0" }, + { 0xfdf6, 255, 0, "\x06\x31\x06\x33\x06\x48\x06\x44\0" }, + { 0xfdf7, 255, 0, "\x06\x39\x06\x44\x06\x4a\x06\x47\0" }, + { 0xfdf8, 255, 0, "\x06\x48\x06\x33\x06\x44\x06\x45\0" }, + { 0xfdf9, 255, 0, "\x06\x35\x06\x44\x06\x49\0" }, + { 0xfdfa, 255, 0, "\x06\x35\x06\x44\x06\x49\x00\x20\x06\x27\x06\x44\x06\x44\x06\x47\x00\x20\x06\x39\x06\x44\x06\x4a\x06\x47\x00\x20\x06\x48\x06\x33\x06\x44\x06\x45\0" }, + { 0xfdfb, 255, 0, "\x06\x2c\x06\x44\x00\x20\x06\x2c\x06\x44\x06\x27\x06\x44\x06\x47\0" }, + { 0xfe30, 255, 0, "\x00\x2e\x00\x2e\0" }, + { 0xfe31, 255, 0, "\x20\x14\0" }, + { 0xfe32, 255, 0, "\x20\x13\0" }, + { 0xfe33, 255, 0, "\x00\x5f\0" }, + { 0xfe34, 255, 0, "\x00\x5f\0" }, + { 0xfe35, 255, 0, "\x00\x28\0" }, + { 0xfe36, 255, 0, "\x00\x29\0" }, + { 0xfe37, 255, 0, "\x00\x7b\0" }, + { 0xfe38, 255, 0, "\x00\x7d\0" }, + { 0xfe39, 255, 0, "\x30\x14\0" }, + { 0xfe3a, 255, 0, "\x30\x15\0" }, + { 0xfe3b, 255, 0, "\x30\x10\0" }, + { 0xfe3c, 255, 0, "\x30\x11\0" }, + { 0xfe3d, 255, 0, "\x30\x0a\0" }, + { 0xfe3e, 255, 0, "\x30\x0b\0" }, + { 0xfe3f, 255, 0, "\x30\x08\0" }, + { 0xfe40, 255, 0, "\x30\x09\0" }, + { 0xfe41, 255, 0, "\x30\x0c\0" }, + { 0xfe42, 255, 0, "\x30\x0d\0" }, + { 0xfe43, 255, 0, "\x30\x0e\0" }, + { 0xfe44, 255, 0, "\x30\x0f\0" }, + { 0xfe49, 255, 0, "\x00\x20\x03\x05\0" }, + { 0xfe4a, 255, 0, "\x00\x20\x03\x05\0" }, + { 0xfe4b, 255, 0, "\x00\x20\x03\x05\0" }, + { 0xfe4c, 255, 0, "\x00\x20\x03\x05\0" }, + { 0xfe4d, 255, 0, "\x00\x5f\0" }, + { 0xfe4e, 255, 0, "\x00\x5f\0" }, + { 0xfe4f, 255, 0, "\x00\x5f\0" }, + { 0xfe50, 255, 0, "\x00\x2c\0" }, + { 0xfe51, 255, 0, "\x30\x01\0" }, + { 0xfe52, 255, 0, "\x00\x2e\0" }, + { 0xfe54, 255, 0, "\x00\x3b\0" }, + { 0xfe55, 255, 0, "\x00\x3a\0" }, + { 0xfe56, 255, 0, "\x00\x3f\0" }, + { 0xfe57, 255, 0, "\x00\x21\0" }, + { 0xfe58, 255, 0, "\x20\x14\0" }, + { 0xfe59, 255, 0, "\x00\x28\0" }, + { 0xfe5a, 255, 0, "\x00\x29\0" }, + { 0xfe5b, 255, 0, "\x00\x7b\0" }, + { 0xfe5c, 255, 0, "\x00\x7d\0" }, + { 0xfe5d, 255, 0, "\x30\x14\0" }, + { 0xfe5e, 255, 0, "\x30\x15\0" }, + { 0xfe5f, 255, 0, "\x00\x23\0" }, + { 0xfe60, 255, 0, "\x00\x26\0" }, + { 0xfe61, 255, 0, "\x00\x2a\0" }, + { 0xfe62, 255, 0, "\x00\x2b\0" }, + { 0xfe63, 255, 0, "\x00\x2d\0" }, + { 0xfe64, 255, 0, "\x00\x3c\0" }, + { 0xfe65, 255, 0, "\x00\x3e\0" }, + { 0xfe66, 255, 0, "\x00\x3d\0" }, + { 0xfe68, 255, 0, "\x00\x5c\0" }, + { 0xfe69, 255, 0, "\x00\x24\0" }, + { 0xfe6a, 255, 0, "\x00\x25\0" }, + { 0xfe6b, 255, 0, "\x00\x40\0" }, + { 0xfe70, 255, 0, "\x00\x20\x06\x4b\0" }, + { 0xfe71, 255, 0, "\x06\x40\x06\x4b\0" }, + { 0xfe72, 255, 0, "\x00\x20\x06\x4c\0" }, + { 0xfe74, 255, 0, "\x00\x20\x06\x4d\0" }, + { 0xfe76, 255, 0, "\x00\x20\x06\x4e\0" }, + { 0xfe77, 255, 0, "\x06\x40\x06\x4e\0" }, + { 0xfe78, 255, 0, "\x00\x20\x06\x4f\0" }, + { 0xfe79, 255, 0, "\x06\x40\x06\x4f\0" }, + { 0xfe7a, 255, 0, "\x00\x20\x06\x50\0" }, + { 0xfe7b, 255, 0, "\x06\x40\x06\x50\0" }, + { 0xfe7c, 255, 0, "\x00\x20\x06\x51\0" }, + { 0xfe7d, 255, 0, "\x06\x40\x06\x51\0" }, + { 0xfe7e, 255, 0, "\x00\x20\x06\x52\0" }, + { 0xfe7f, 255, 0, "\x06\x40\x06\x52\0" }, + { 0xfe80, 255, 0, "\x06\x21\0" }, + { 0xfe81, 255, 0, "\x06\x27\x06\x53\0" }, + { 0xfe82, 255, 0, "\x06\x27\x06\x53\0" }, + { 0xfe83, 255, 0, "\x06\x27\x06\x54\0" }, + { 0xfe84, 255, 0, "\x06\x27\x06\x54\0" }, + { 0xfe85, 255, 0, "\x06\x48\x06\x54\0" }, + { 0xfe86, 255, 0, "\x06\x48\x06\x54\0" }, + { 0xfe87, 255, 0, "\x06\x27\x06\x55\0" }, + { 0xfe88, 255, 0, "\x06\x27\x06\x55\0" }, + { 0xfe89, 255, 0, "\x06\x4a\x06\x54\0" }, + { 0xfe8a, 255, 0, "\x06\x4a\x06\x54\0" }, + { 0xfe8b, 255, 0, "\x06\x4a\x06\x54\0" }, + { 0xfe8c, 255, 0, "\x06\x4a\x06\x54\0" }, + { 0xfe8d, 255, 0, "\x06\x27\0" }, + { 0xfe8e, 255, 0, "\x06\x27\0" }, + { 0xfe8f, 255, 0, "\x06\x28\0" }, + { 0xfe90, 255, 0, "\x06\x28\0" }, + { 0xfe91, 255, 0, "\x06\x28\0" }, + { 0xfe92, 255, 0, "\x06\x28\0" }, + { 0xfe93, 255, 0, "\x06\x29\0" }, + { 0xfe94, 255, 0, "\x06\x29\0" }, + { 0xfe95, 255, 0, "\x06\x2a\0" }, + { 0xfe96, 255, 0, "\x06\x2a\0" }, + { 0xfe97, 255, 0, "\x06\x2a\0" }, + { 0xfe98, 255, 0, "\x06\x2a\0" }, + { 0xfe99, 255, 0, "\x06\x2b\0" }, + { 0xfe9a, 255, 0, "\x06\x2b\0" }, + { 0xfe9b, 255, 0, "\x06\x2b\0" }, + { 0xfe9c, 255, 0, "\x06\x2b\0" }, + { 0xfe9d, 255, 0, "\x06\x2c\0" }, + { 0xfe9e, 255, 0, "\x06\x2c\0" }, + { 0xfe9f, 255, 0, "\x06\x2c\0" }, + { 0xfea0, 255, 0, "\x06\x2c\0" }, + { 0xfea1, 255, 0, "\x06\x2d\0" }, + { 0xfea2, 255, 0, "\x06\x2d\0" }, + { 0xfea3, 255, 0, "\x06\x2d\0" }, + { 0xfea4, 255, 0, "\x06\x2d\0" }, + { 0xfea5, 255, 0, "\x06\x2e\0" }, + { 0xfea6, 255, 0, "\x06\x2e\0" }, + { 0xfea7, 255, 0, "\x06\x2e\0" }, + { 0xfea8, 255, 0, "\x06\x2e\0" }, + { 0xfea9, 255, 0, "\x06\x2f\0" }, + { 0xfeaa, 255, 0, "\x06\x2f\0" }, + { 0xfeab, 255, 0, "\x06\x30\0" }, + { 0xfeac, 255, 0, "\x06\x30\0" }, + { 0xfead, 255, 0, "\x06\x31\0" }, + { 0xfeae, 255, 0, "\x06\x31\0" }, + { 0xfeaf, 255, 0, "\x06\x32\0" }, + { 0xfeb0, 255, 0, "\x06\x32\0" }, + { 0xfeb1, 255, 0, "\x06\x33\0" }, + { 0xfeb2, 255, 0, "\x06\x33\0" }, + { 0xfeb3, 255, 0, "\x06\x33\0" }, + { 0xfeb4, 255, 0, "\x06\x33\0" }, + { 0xfeb5, 255, 0, "\x06\x34\0" }, + { 0xfeb6, 255, 0, "\x06\x34\0" }, + { 0xfeb7, 255, 0, "\x06\x34\0" }, + { 0xfeb8, 255, 0, "\x06\x34\0" }, + { 0xfeb9, 255, 0, "\x06\x35\0" }, + { 0xfeba, 255, 0, "\x06\x35\0" }, + { 0xfebb, 255, 0, "\x06\x35\0" }, + { 0xfebc, 255, 0, "\x06\x35\0" }, + { 0xfebd, 255, 0, "\x06\x36\0" }, + { 0xfebe, 255, 0, "\x06\x36\0" }, + { 0xfebf, 255, 0, "\x06\x36\0" }, + { 0xfec0, 255, 0, "\x06\x36\0" }, + { 0xfec1, 255, 0, "\x06\x37\0" }, + { 0xfec2, 255, 0, "\x06\x37\0" }, + { 0xfec3, 255, 0, "\x06\x37\0" }, + { 0xfec4, 255, 0, "\x06\x37\0" }, + { 0xfec5, 255, 0, "\x06\x38\0" }, + { 0xfec6, 255, 0, "\x06\x38\0" }, + { 0xfec7, 255, 0, "\x06\x38\0" }, + { 0xfec8, 255, 0, "\x06\x38\0" }, + { 0xfec9, 255, 0, "\x06\x39\0" }, + { 0xfeca, 255, 0, "\x06\x39\0" }, + { 0xfecb, 255, 0, "\x06\x39\0" }, + { 0xfecc, 255, 0, "\x06\x39\0" }, + { 0xfecd, 255, 0, "\x06\x3a\0" }, + { 0xfece, 255, 0, "\x06\x3a\0" }, + { 0xfecf, 255, 0, "\x06\x3a\0" }, + { 0xfed0, 255, 0, "\x06\x3a\0" }, + { 0xfed1, 255, 0, "\x06\x41\0" }, + { 0xfed2, 255, 0, "\x06\x41\0" }, + { 0xfed3, 255, 0, "\x06\x41\0" }, + { 0xfed4, 255, 0, "\x06\x41\0" }, + { 0xfed5, 255, 0, "\x06\x42\0" }, + { 0xfed6, 255, 0, "\x06\x42\0" }, + { 0xfed7, 255, 0, "\x06\x42\0" }, + { 0xfed8, 255, 0, "\x06\x42\0" }, + { 0xfed9, 255, 0, "\x06\x43\0" }, + { 0xfeda, 255, 0, "\x06\x43\0" }, + { 0xfedb, 255, 0, "\x06\x43\0" }, + { 0xfedc, 255, 0, "\x06\x43\0" }, + { 0xfedd, 255, 0, "\x06\x44\0" }, + { 0xfede, 255, 0, "\x06\x44\0" }, + { 0xfedf, 255, 0, "\x06\x44\0" }, + { 0xfee0, 255, 0, "\x06\x44\0" }, + { 0xfee1, 255, 0, "\x06\x45\0" }, + { 0xfee2, 255, 0, "\x06\x45\0" }, + { 0xfee3, 255, 0, "\x06\x45\0" }, + { 0xfee4, 255, 0, "\x06\x45\0" }, + { 0xfee5, 255, 0, "\x06\x46\0" }, + { 0xfee6, 255, 0, "\x06\x46\0" }, + { 0xfee7, 255, 0, "\x06\x46\0" }, + { 0xfee8, 255, 0, "\x06\x46\0" }, + { 0xfee9, 255, 0, "\x06\x47\0" }, + { 0xfeea, 255, 0, "\x06\x47\0" }, + { 0xfeeb, 255, 0, "\x06\x47\0" }, + { 0xfeec, 255, 0, "\x06\x47\0" }, + { 0xfeed, 255, 0, "\x06\x48\0" }, + { 0xfeee, 255, 0, "\x06\x48\0" }, + { 0xfeef, 255, 0, "\x06\x49\0" }, + { 0xfef0, 255, 0, "\x06\x49\0" }, + { 0xfef1, 255, 0, "\x06\x4a\0" }, + { 0xfef2, 255, 0, "\x06\x4a\0" }, + { 0xfef3, 255, 0, "\x06\x4a\0" }, + { 0xfef4, 255, 0, "\x06\x4a\0" }, + { 0xfef5, 255, 0, "\x06\x44\x06\x27\x06\x53\0" }, + { 0xfef6, 255, 0, "\x06\x44\x06\x27\x06\x53\0" }, + { 0xfef7, 255, 0, "\x06\x44\x06\x27\x06\x54\0" }, + { 0xfef8, 255, 0, "\x06\x44\x06\x27\x06\x54\0" }, + { 0xfef9, 255, 0, "\x06\x44\x06\x27\x06\x55\0" }, + { 0xfefa, 255, 0, "\x06\x44\x06\x27\x06\x55\0" }, + { 0xfefb, 255, 0, "\x06\x44\x06\x27\0" }, + { 0xfefc, 255, 0, "\x06\x44\x06\x27\0" }, + { 0xff01, 255, 0, "\x00\x21\0" }, + { 0xff02, 255, 0, "\x00\x22\0" }, + { 0xff03, 255, 0, "\x00\x23\0" }, + { 0xff04, 255, 0, "\x00\x24\0" }, + { 0xff05, 255, 0, "\x00\x25\0" }, + { 0xff06, 255, 0, "\x00\x26\0" }, + { 0xff07, 255, 0, "\x00\x27\0" }, + { 0xff08, 255, 0, "\x00\x28\0" }, + { 0xff09, 255, 0, "\x00\x29\0" }, + { 0xff0a, 255, 0, "\x00\x2a\0" }, + { 0xff0b, 255, 0, "\x00\x2b\0" }, + { 0xff0c, 255, 0, "\x00\x2c\0" }, + { 0xff0d, 255, 0, "\x00\x2d\0" }, + { 0xff0e, 255, 0, "\x00\x2e\0" }, + { 0xff0f, 255, 0, "\x00\x2f\0" }, + { 0xff10, 255, 0, "\x00\x30\0" }, + { 0xff11, 255, 0, "\x00\x31\0" }, + { 0xff12, 255, 0, "\x00\x32\0" }, + { 0xff13, 255, 0, "\x00\x33\0" }, + { 0xff14, 255, 0, "\x00\x34\0" }, + { 0xff15, 255, 0, "\x00\x35\0" }, + { 0xff16, 255, 0, "\x00\x36\0" }, + { 0xff17, 255, 0, "\x00\x37\0" }, + { 0xff18, 255, 0, "\x00\x38\0" }, + { 0xff19, 255, 0, "\x00\x39\0" }, + { 0xff1a, 255, 0, "\x00\x3a\0" }, + { 0xff1b, 255, 0, "\x00\x3b\0" }, + { 0xff1c, 255, 0, "\x00\x3c\0" }, + { 0xff1d, 255, 0, "\x00\x3d\0" }, + { 0xff1e, 255, 0, "\x00\x3e\0" }, + { 0xff1f, 255, 0, "\x00\x3f\0" }, + { 0xff20, 255, 0, "\x00\x40\0" }, + { 0xff21, 255, 0, "\x00\x41\0" }, + { 0xff22, 255, 0, "\x00\x42\0" }, + { 0xff23, 255, 0, "\x00\x43\0" }, + { 0xff24, 255, 0, "\x00\x44\0" }, + { 0xff25, 255, 0, "\x00\x45\0" }, + { 0xff26, 255, 0, "\x00\x46\0" }, + { 0xff27, 255, 0, "\x00\x47\0" }, + { 0xff28, 255, 0, "\x00\x48\0" }, + { 0xff29, 255, 0, "\x00\x49\0" }, + { 0xff2a, 255, 0, "\x00\x4a\0" }, + { 0xff2b, 255, 0, "\x00\x4b\0" }, + { 0xff2c, 255, 0, "\x00\x4c\0" }, + { 0xff2d, 255, 0, "\x00\x4d\0" }, + { 0xff2e, 255, 0, "\x00\x4e\0" }, + { 0xff2f, 255, 0, "\x00\x4f\0" }, + { 0xff30, 255, 0, "\x00\x50\0" }, + { 0xff31, 255, 0, "\x00\x51\0" }, + { 0xff32, 255, 0, "\x00\x52\0" }, + { 0xff33, 255, 0, "\x00\x53\0" }, + { 0xff34, 255, 0, "\x00\x54\0" }, + { 0xff35, 255, 0, "\x00\x55\0" }, + { 0xff36, 255, 0, "\x00\x56\0" }, + { 0xff37, 255, 0, "\x00\x57\0" }, + { 0xff38, 255, 0, "\x00\x58\0" }, + { 0xff39, 255, 0, "\x00\x59\0" }, + { 0xff3a, 255, 0, "\x00\x5a\0" }, + { 0xff3b, 255, 0, "\x00\x5b\0" }, + { 0xff3c, 255, 0, "\x00\x5c\0" }, + { 0xff3d, 255, 0, "\x00\x5d\0" }, + { 0xff3e, 255, 0, "\x00\x5e\0" }, + { 0xff3f, 255, 0, "\x00\x5f\0" }, + { 0xff40, 255, 0, "\x00\x60\0" }, + { 0xff41, 255, 0, "\x00\x61\0" }, + { 0xff42, 255, 0, "\x00\x62\0" }, + { 0xff43, 255, 0, "\x00\x63\0" }, + { 0xff44, 255, 0, "\x00\x64\0" }, + { 0xff45, 255, 0, "\x00\x65\0" }, + { 0xff46, 255, 0, "\x00\x66\0" }, + { 0xff47, 255, 0, "\x00\x67\0" }, + { 0xff48, 255, 0, "\x00\x68\0" }, + { 0xff49, 255, 0, "\x00\x69\0" }, + { 0xff4a, 255, 0, "\x00\x6a\0" }, + { 0xff4b, 255, 0, "\x00\x6b\0" }, + { 0xff4c, 255, 0, "\x00\x6c\0" }, + { 0xff4d, 255, 0, "\x00\x6d\0" }, + { 0xff4e, 255, 0, "\x00\x6e\0" }, + { 0xff4f, 255, 0, "\x00\x6f\0" }, + { 0xff50, 255, 0, "\x00\x70\0" }, + { 0xff51, 255, 0, "\x00\x71\0" }, + { 0xff52, 255, 0, "\x00\x72\0" }, + { 0xff53, 255, 0, "\x00\x73\0" }, + { 0xff54, 255, 0, "\x00\x74\0" }, + { 0xff55, 255, 0, "\x00\x75\0" }, + { 0xff56, 255, 0, "\x00\x76\0" }, + { 0xff57, 255, 0, "\x00\x77\0" }, + { 0xff58, 255, 0, "\x00\x78\0" }, + { 0xff59, 255, 0, "\x00\x79\0" }, + { 0xff5a, 255, 0, "\x00\x7a\0" }, + { 0xff5b, 255, 0, "\x00\x7b\0" }, + { 0xff5c, 255, 0, "\x00\x7c\0" }, + { 0xff5d, 255, 0, "\x00\x7d\0" }, + { 0xff5e, 255, 0, "\x00\x7e\0" }, + { 0xff61, 255, 0, "\x30\x02\0" }, + { 0xff62, 255, 0, "\x30\x0c\0" }, + { 0xff63, 255, 0, "\x30\x0d\0" }, + { 0xff64, 255, 0, "\x30\x01\0" }, + { 0xff65, 255, 0, "\x30\xfb\0" }, + { 0xff66, 255, 0, "\x30\xf2\0" }, + { 0xff67, 255, 0, "\x30\xa1\0" }, + { 0xff68, 255, 0, "\x30\xa3\0" }, + { 0xff69, 255, 0, "\x30\xa5\0" }, + { 0xff6a, 255, 0, "\x30\xa7\0" }, + { 0xff6b, 255, 0, "\x30\xa9\0" }, + { 0xff6c, 255, 0, "\x30\xe3\0" }, + { 0xff6d, 255, 0, "\x30\xe5\0" }, + { 0xff6e, 255, 0, "\x30\xe7\0" }, + { 0xff6f, 255, 0, "\x30\xc3\0" }, + { 0xff70, 255, 0, "\x30\xfc\0" }, + { 0xff71, 255, 0, "\x30\xa2\0" }, + { 0xff72, 255, 0, "\x30\xa4\0" }, + { 0xff73, 255, 0, "\x30\xa6\0" }, + { 0xff74, 255, 0, "\x30\xa8\0" }, + { 0xff75, 255, 0, "\x30\xaa\0" }, + { 0xff76, 255, 0, "\x30\xab\0" }, + { 0xff77, 255, 0, "\x30\xad\0" }, + { 0xff78, 255, 0, "\x30\xaf\0" }, + { 0xff79, 255, 0, "\x30\xb1\0" }, + { 0xff7a, 255, 0, "\x30\xb3\0" }, + { 0xff7b, 255, 0, "\x30\xb5\0" }, + { 0xff7c, 255, 0, "\x30\xb7\0" }, + { 0xff7d, 255, 0, "\x30\xb9\0" }, + { 0xff7e, 255, 0, "\x30\xbb\0" }, + { 0xff7f, 255, 0, "\x30\xbd\0" }, + { 0xff80, 255, 0, "\x30\xbf\0" }, + { 0xff81, 255, 0, "\x30\xc1\0" }, + { 0xff82, 255, 0, "\x30\xc4\0" }, + { 0xff83, 255, 0, "\x30\xc6\0" }, + { 0xff84, 255, 0, "\x30\xc8\0" }, + { 0xff85, 255, 0, "\x30\xca\0" }, + { 0xff86, 255, 0, "\x30\xcb\0" }, + { 0xff87, 255, 0, "\x30\xcc\0" }, + { 0xff88, 255, 0, "\x30\xcd\0" }, + { 0xff89, 255, 0, "\x30\xce\0" }, + { 0xff8a, 255, 0, "\x30\xcf\0" }, + { 0xff8b, 255, 0, "\x30\xd2\0" }, + { 0xff8c, 255, 0, "\x30\xd5\0" }, + { 0xff8d, 255, 0, "\x30\xd8\0" }, + { 0xff8e, 255, 0, "\x30\xdb\0" }, + { 0xff8f, 255, 0, "\x30\xde\0" }, + { 0xff90, 255, 0, "\x30\xdf\0" }, + { 0xff91, 255, 0, "\x30\xe0\0" }, + { 0xff92, 255, 0, "\x30\xe1\0" }, + { 0xff93, 255, 0, "\x30\xe2\0" }, + { 0xff94, 255, 0, "\x30\xe4\0" }, + { 0xff95, 255, 0, "\x30\xe6\0" }, + { 0xff96, 255, 0, "\x30\xe8\0" }, + { 0xff97, 255, 0, "\x30\xe9\0" }, + { 0xff98, 255, 0, "\x30\xea\0" }, + { 0xff99, 255, 0, "\x30\xeb\0" }, + { 0xff9a, 255, 0, "\x30\xec\0" }, + { 0xff9b, 255, 0, "\x30\xed\0" }, + { 0xff9c, 255, 0, "\x30\xef\0" }, + { 0xff9d, 255, 0, "\x30\xf3\0" }, + { 0xff9e, 255, 0, "\x30\x99\0" }, + { 0xff9f, 255, 0, "\x30\x9a\0" }, + { 0xffa0, 255, 0, "\x11\x60\0" }, + { 0xffa1, 255, 0, "\x11\x00\0" }, + { 0xffa2, 255, 0, "\x11\x01\0" }, + { 0xffa3, 255, 0, "\x11\xaa\0" }, + { 0xffa4, 255, 0, "\x11\x02\0" }, + { 0xffa5, 255, 0, "\x11\xac\0" }, + { 0xffa6, 255, 0, "\x11\xad\0" }, + { 0xffa7, 255, 0, "\x11\x03\0" }, + { 0xffa8, 255, 0, "\x11\x04\0" }, + { 0xffa9, 255, 0, "\x11\x05\0" }, + { 0xffaa, 255, 0, "\x11\xb0\0" }, + { 0xffab, 255, 0, "\x11\xb1\0" }, + { 0xffac, 255, 0, "\x11\xb2\0" }, + { 0xffad, 255, 0, "\x11\xb3\0" }, + { 0xffae, 255, 0, "\x11\xb4\0" }, + { 0xffaf, 255, 0, "\x11\xb5\0" }, + { 0xffb0, 255, 0, "\x11\x1a\0" }, + { 0xffb1, 255, 0, "\x11\x06\0" }, + { 0xffb2, 255, 0, "\x11\x07\0" }, + { 0xffb3, 255, 0, "\x11\x08\0" }, + { 0xffb4, 255, 0, "\x11\x21\0" }, + { 0xffb5, 255, 0, "\x11\x09\0" }, + { 0xffb6, 255, 0, "\x11\x0a\0" }, + { 0xffb7, 255, 0, "\x11\x0b\0" }, + { 0xffb8, 255, 0, "\x11\x0c\0" }, + { 0xffb9, 255, 0, "\x11\x0d\0" }, + { 0xffba, 255, 0, "\x11\x0e\0" }, + { 0xffbb, 255, 0, "\x11\x0f\0" }, + { 0xffbc, 255, 0, "\x11\x10\0" }, + { 0xffbd, 255, 0, "\x11\x11\0" }, + { 0xffbe, 255, 0, "\x11\x12\0" }, + { 0xffc2, 255, 0, "\x11\x61\0" }, + { 0xffc3, 255, 0, "\x11\x62\0" }, + { 0xffc4, 255, 0, "\x11\x63\0" }, + { 0xffc5, 255, 0, "\x11\x64\0" }, + { 0xffc6, 255, 0, "\x11\x65\0" }, + { 0xffc7, 255, 0, "\x11\x66\0" }, + { 0xffca, 255, 0, "\x11\x67\0" }, + { 0xffcb, 255, 0, "\x11\x68\0" }, + { 0xffcc, 255, 0, "\x11\x69\0" }, + { 0xffcd, 255, 0, "\x11\x6a\0" }, + { 0xffce, 255, 0, "\x11\x6b\0" }, + { 0xffcf, 255, 0, "\x11\x6c\0" }, + { 0xffd2, 255, 0, "\x11\x6d\0" }, + { 0xffd3, 255, 0, "\x11\x6e\0" }, + { 0xffd4, 255, 0, "\x11\x6f\0" }, + { 0xffd5, 255, 0, "\x11\x70\0" }, + { 0xffd6, 255, 0, "\x11\x71\0" }, + { 0xffd7, 255, 0, "\x11\x72\0" }, + { 0xffda, 255, 0, "\x11\x73\0" }, + { 0xffdb, 255, 0, "\x11\x74\0" }, + { 0xffdc, 255, 0, "\x11\x75\0" }, + { 0xffe0, 255, 0, "\x00\xa2\0" }, + { 0xffe1, 255, 0, "\x00\xa3\0" }, + { 0xffe2, 255, 0, "\x00\xac\0" }, + { 0xffe3, 255, 0, "\x00\x20\x03\x04\0" }, + { 0xffe4, 255, 0, "\x00\xa6\0" }, + { 0xffe5, 255, 0, "\x00\xa5\0" }, + { 0xffe6, 255, 0, "\x20\xa9\0" }, + { 0xffe8, 255, 0, "\x25\x02\0" }, + { 0xffe9, 255, 0, "\x21\x90\0" }, + { 0xffea, 255, 0, "\x21\x91\0" }, + { 0xffeb, 255, 0, "\x21\x92\0" }, + { 0xffec, 255, 0, "\x21\x93\0" }, + { 0xffed, 255, 0, "\x25\xa0\0" }, + { 0xffee, 255, 0, "\x25\xcb\0" } }; #endif /* DECOMP_H */ diff --git a/graf2d/win32gdk/gdk/src/glib/guniprop.c b/graf2d/win32gdk/gdk/src/glib/guniprop.c new file mode 100644 index 00000000000..fc2fe84d9a9 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/guniprop.c @@ -0,0 +1,912 @@ +/* guniprop.c - Unicode character properties. + * + * Copyright (C) 1999 Tom Tromey + * Copyright (C) 2000 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#include "glib.h" +#include "gunichartables.h" + +#include <config.h> + +#include <stddef.h> +#include <string.h> +#include <locale.h> + +#define ATTTABLE(Page, Char) \ + ((attr_table[Page] == 0) ? 0 : (attr_table[Page][Char])) + +/* We cheat a bit and cast type values to (char *). We detect these + using the &0xff trick. */ +#define TTYPE(Page, Char) \ + (((GPOINTER_TO_INT(type_table[Page]) & 0xff) == GPOINTER_TO_INT(type_table[Page])) \ + ? GPOINTER_TO_INT(type_table[Page]) \ + : (type_table[Page][Char])) + +#define TYPE(Char) (((Char) > (G_UNICODE_LAST_CHAR)) ? G_UNICODE_UNASSIGNED : TTYPE ((Char) >> 8, (Char) & 0xff)) + +#define ISDIGIT(Type) ((Type) == G_UNICODE_DECIMAL_NUMBER \ + || (Type) == G_UNICODE_LETTER_NUMBER \ + || (Type) == G_UNICODE_OTHER_NUMBER) + +#define ISALPHA(Type) ((Type) == G_UNICODE_LOWERCASE_LETTER \ + || (Type) == G_UNICODE_UPPERCASE_LETTER \ + || (Type) == G_UNICODE_TITLECASE_LETTER \ + || (Type) == G_UNICODE_MODIFIER_LETTER \ + || (Type) == G_UNICODE_OTHER_LETTER) + +#define ISMARK(Type) ((Type) == G_UNICODE_NON_SPACING_MARK || \ + (Type) == G_UNICODE_COMBINING_MARK || \ + (Type) == G_UNICODE_ENCLOSING_MARK) + + +/** + * g_unichar_isalnum: + * @c: a Unicode character + * + * Determines whether a character is alphanumeric. + * Given some UTF-8 text, obtain a character value + * with g_utf8_get_char(). + * + * Return value: %TRUE if @c is an alphanumeric character + **/ +gboolean +g_unichar_isalnum (gunichar c) +{ + int t = TYPE (c); + return ISDIGIT (t) || ISALPHA (t); +} + +/** + * g_unichar_isalpha: + * @c: a Unicode character + * + * Determines whether a character is alphabetic (i.e. a letter). + * Given some UTF-8 text, obtain a character value with + * g_utf8_get_char(). + * + * Return value: %TRUE if @c is an alphabetic character + **/ +gboolean +g_unichar_isalpha (gunichar c) +{ + int t = TYPE (c); + return ISALPHA (t); +} + + +/** + * g_unichar_iscntrl: + * @c: a Unicode character + * + * Determines whether a character is a control character. + * Given some UTF-8 text, obtain a character value with + * g_utf8_get_char(). + * + * Return value: %TRUE if @c is a control character + **/ +gboolean +g_unichar_iscntrl (gunichar c) +{ + return TYPE (c) == G_UNICODE_CONTROL; +} + +/** + * g_unichar_isdigit: + * @c: a Unicode character + * + * Determines whether a character is numeric (i.e. a digit). This + * covers ASCII 0-9 and also digits in other languages/scripts. Given + * some UTF-8 text, obtain a character value with g_utf8_get_char(). + * + * Return value: %TRUE if @c is a digit + **/ +gboolean +g_unichar_isdigit (gunichar c) +{ + return TYPE (c) == G_UNICODE_DECIMAL_NUMBER; +} + + +/** + * g_unichar_isgraph: + * @c: a Unicode character + * + * Determines whether a character is printable and not a space + * (returns %FALSE for control characters, format characters, and + * spaces). g_unichar_isprint() is similar, but returns %TRUE for + * spaces. Given some UTF-8 text, obtain a character value with + * g_utf8_get_char(). + * + * Return value: %TRUE if @c is printable unless it's a space + **/ +gboolean +g_unichar_isgraph (gunichar c) +{ + int t = TYPE (c); + return (t != G_UNICODE_CONTROL + && t != G_UNICODE_FORMAT + && t != G_UNICODE_UNASSIGNED + && t != G_UNICODE_PRIVATE_USE + && t != G_UNICODE_SURROGATE + && t != G_UNICODE_SPACE_SEPARATOR); +} + +/** + * g_unichar_islower: + * @c: a Unicode character + * + * Determines whether a character is a lowercase letter. + * Given some UTF-8 text, obtain a character value with + * g_utf8_get_char(). + * + * Return value: %TRUE if @c is a lowercase letter + **/ +gboolean +g_unichar_islower (gunichar c) +{ + return TYPE (c) == G_UNICODE_LOWERCASE_LETTER; +} + + +/** + * g_unichar_isprint: + * @c: a Unicode character + * + * Determines whether a character is printable. + * Unlike g_unichar_isgraph(), returns %TRUE for spaces. + * Given some UTF-8 text, obtain a character value with + * g_utf8_get_char(). + * + * Return value: %TRUE if @c is printable + **/ +gboolean +g_unichar_isprint (gunichar c) +{ + int t = TYPE (c); + return (t != G_UNICODE_CONTROL + && t != G_UNICODE_FORMAT + && t != G_UNICODE_UNASSIGNED + && t != G_UNICODE_PRIVATE_USE + && t != G_UNICODE_SURROGATE); +} + +/** + * g_unichar_ispunct: + * @c: a Unicode character + * + * Determines whether a character is punctuation or a symbol. + * Given some UTF-8 text, obtain a character value with + * g_utf8_get_char(). + * + * Return value: %TRUE if @c is a punctuation or symbol character + **/ +gboolean +g_unichar_ispunct (gunichar c) +{ + int t = TYPE (c); + return (t == G_UNICODE_CONNECT_PUNCTUATION || t == G_UNICODE_DASH_PUNCTUATION + || t == G_UNICODE_CLOSE_PUNCTUATION || t == G_UNICODE_FINAL_PUNCTUATION + || t == G_UNICODE_INITIAL_PUNCTUATION || t == G_UNICODE_OTHER_PUNCTUATION + || t == G_UNICODE_OPEN_PUNCTUATION || t == G_UNICODE_CURRENCY_SYMBOL + || t == G_UNICODE_MODIFIER_SYMBOL || t == G_UNICODE_MATH_SYMBOL + || t == G_UNICODE_OTHER_SYMBOL); +} + +/** + * g_unichar_isspace: + * @c: a Unicode character + * + * Determines whether a character is a space, tab, or line separator + * (newline, carriage return, etc.). Given some UTF-8 text, obtain a + * character value with g_utf8_get_char(). + * + * (Note: don't use this to do word breaking; you have to use + * Pango or equivalent to get word breaking right, the algorithm + * is fairly complex.) + * + * Return value: %TRUE if @c is a punctuation character + **/ +gboolean +g_unichar_isspace (gunichar c) +{ + switch (c) + { + /* special-case these since Unicode thinks they are not spaces */ + case '\t': + case '\n': + case '\r': + case '\f': + return TRUE; + break; + + default: + { + int t = TYPE (c); + return (t == G_UNICODE_SPACE_SEPARATOR || t == G_UNICODE_LINE_SEPARATOR + || t == G_UNICODE_PARAGRAPH_SEPARATOR); + } + break; + } +} + +/** + * g_unichar_isupper: + * @c: a Unicode character + * + * Determines if a character is uppercase. + * + * Return value: %TRUE if @c is an uppercase character + **/ +gboolean +g_unichar_isupper (gunichar c) +{ + return TYPE (c) == G_UNICODE_UPPERCASE_LETTER; +} + +/** + * g_unichar_istitle: + * @c: a Unicode character + * + * Determines if a character is titlecase. Some characters in + * Unicode which are composites, such as the DZ digraph + * have three case variants instead of just two. The titlecase + * form is used at the beginning of a word where only the + * first letter is capitalized. The titlecase form of the DZ + * digraph is U+01F2 LATIN CAPITAL LETTTER D WITH SMALL LETTER Z. + * + * Return value: %TRUE if the character is titlecase + **/ +gboolean +g_unichar_istitle (gunichar c) +{ + unsigned int i; + for (i = 0; i < G_N_ELEMENTS (title_table); ++i) + if (title_table[i][0] == c) + return 1; + return 0; +} + +/** + * g_unichar_isxdigit: + * @c: a Unicode character. + * + * Determines if a character is a hexidecimal digit. + * + * Return value: %TRUE if the character is a hexadecimal digit + **/ +gboolean +g_unichar_isxdigit (gunichar c) +{ + int t = TYPE (c); + return ((c >= 'a' && c <= 'f') + || (c >= 'A' && c <= 'F') + || ISDIGIT (t)); +} + +/** + * g_unichar_isdefined: + * @c: a Unicode character + * + * Determines if a given character is assigned in the Unicode + * standard. + * + * Return value: %TRUE if the character has an assigned value + **/ +gboolean +g_unichar_isdefined (gunichar c) +{ + int t = TYPE (c); + return t != G_UNICODE_UNASSIGNED; +} + +/** + * g_unichar_iswide: + * @c: a Unicode character + * + * Determines if a character is typically rendered in a double-width + * cell. + * + * Return value: %TRUE if the character is wide + **/ +/* This function stolen from Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk>. */ +gboolean +g_unichar_iswide (gunichar c) +{ + if (c < 0x1100) + return 0; + + return ((c >= 0x1100 && c <= 0x115f) /* Hangul Jamo */ + || (c >= 0x2e80 && c <= 0xa4cf && (c & ~0x0011) != 0x300a && + c != 0x303f) /* CJK ... Yi */ + || (c >= 0xac00 && c <= 0xd7a3) /* Hangul Syllables */ + || (c >= 0xf900 && c <= 0xfaff) /* CJK Compatibility Ideographs */ + || (c >= 0xfe30 && c <= 0xfe6f) /* CJK Compatibility Forms */ + || (c >= 0xff00 && c <= 0xff5f) /* Fullwidth Forms */ + || (c >= 0xffe0 && c <= 0xffe6)); +} + +/** + * g_unichar_toupper: + * @c: a Unicode character + * + * Converts a character to uppercase. + * + * Return value: the result of converting @c to uppercase. + * If @c is not an lowercase or titlecase character, + * @c is returned unchanged. + **/ +gunichar +g_unichar_toupper (gunichar c) +{ + int t = TYPE (c); + if (t == G_UNICODE_LOWERCASE_LETTER) + { + gunichar val = ATTTABLE (c >> 8, c & 0xff); + if (val >= 0xd800 && val < 0xdc00) + { + guchar *p = special_case_table[val - 0xd800]; + return p[0] * 256 + p[1]; + } + else + return val; + } + else if (t == G_UNICODE_TITLECASE_LETTER) + { + unsigned int i; + for (i = 0; i < G_N_ELEMENTS (title_table); ++i) + { + if (title_table[i][0] == c) + return title_table[i][1]; + } + } + return c; +} + +/** + * g_unichar_tolower: + * @c: a Unicode character. + * + * Converts a character to lower case. + * + * Return value: the result of converting @c to lower case. + * If @c is not an upperlower or titlecase character, + * @c is returned unchanged. + **/ +gunichar +g_unichar_tolower (gunichar c) +{ + int t = TYPE (c); + if (t == G_UNICODE_UPPERCASE_LETTER) + { + gunichar val = ATTTABLE (c >> 8, c & 0xff); + if (val >= 0xd800 && val < 0xdc00) + { + guchar *p = special_case_table[val - 0xd800]; + return p[0] * 256 + p[1]; + } + else + return val; + } + else if (t == G_UNICODE_TITLECASE_LETTER) + { + unsigned int i; + for (i = 0; i < G_N_ELEMENTS (title_table); ++i) + { + if (title_table[i][0] == c) + return title_table[i][2]; + } + } + return c; +} + +/** + * g_unichar_totitle: + * @c: a Unicode character + * + * Converts a character to the titlecase. + * + * Return value: the result of converting @c to titlecase. + * If @c is not an uppercase or lowercase character, + * @c is returned unchanged. + **/ +gunichar +g_unichar_totitle (gunichar c) +{ + unsigned int i; + for (i = 0; i < G_N_ELEMENTS (title_table); ++i) + { + if (title_table[i][0] == c || title_table[i][1] == c + || title_table[i][2] == c) + return title_table[i][0]; + } + return (TYPE (c) == G_UNICODE_LOWERCASE_LETTER + ? ATTTABLE (c >> 8, c & 0xff) + : c); +} + +/** + * g_unichar_digit_value: + * @c: a Unicode character + * + * Determines the numeric value of a character as a decimal + * digit. + * + * Return value: If @c is a decimal digit (according to + * g_unichar_isdigit()), its numeric value. Otherwise, -1. + **/ +int +g_unichar_digit_value (gunichar c) +{ + if (TYPE (c) == G_UNICODE_DECIMAL_NUMBER) + return ATTTABLE (c >> 8, c & 0xff); + return -1; +} + +/** + * g_unichar_xdigit_value: + * @c: a Unicode character + * + * Determines the numeric value of a character as a hexidecimal + * digit. + * + * Return value: If @c is a hex digit (according to + * g_unichar_isxdigit()), its numeric value. Otherwise, -1. + **/ +int +g_unichar_xdigit_value (gunichar c) +{ + if (c >= 'A' && c <= 'F') + return c - 'A' + 10; + if (c >= 'a' && c <= 'f') + return c - 'a' + 10; + if (TYPE (c) == G_UNICODE_DECIMAL_NUMBER) + return ATTTABLE (c >> 8, c & 0xff); + return -1; +} + +/** + * g_unichar_type: + * @c: a Unicode character + * + * Classifies a Unicode character by type. + * + * Return value: the type of the character. + **/ +GUnicodeType +g_unichar_type (gunichar c) +{ + return TYPE (c); +} + +/* + * Case mapping functions + */ + +typedef enum { + LOCALE_NORMAL, + LOCALE_TURKIC, + LOCALE_LITHUANIAN +} LocaleType; + +static LocaleType +get_locale_type (void) +{ + const char *locale = setlocale (LC_CTYPE, NULL); + + switch (locale[0]) + { + case 'a': + if (locale[1] == 'z') + return LOCALE_TURKIC; + break; + case 'l': + if (locale[1] == 't') + return LOCALE_LITHUANIAN; + break; + case 't': + if (locale[1] == 'r') + return LOCALE_TURKIC; + break; + } + + return LOCALE_NORMAL; +} + +static int +output_marks (const char **p_inout, + char *out_buffer, + int len, + gboolean remove_dot) +{ + const char *p = *p_inout; + + while (*p) + { + gunichar c = g_utf8_get_char (p); + int t = TYPE(c); + + if (ISMARK(t)) + { + if (!remove_dot || c != 0x307 /* COMBINING DOT ABOVE */) + len += g_unichar_to_utf8 (c, out_buffer ? out_buffer + len : NULL); + p = g_utf8_next_char (p); + } + else + break; + } + + *p_inout = p; + return len; +} + +static gsize +output_special_case (gchar *out_buffer, + gsize len, + int index, + int type, + int which) +{ + guchar *p = special_case_table[index]; + + if (type != G_UNICODE_TITLECASE_LETTER) + p += 2; /* +2 to skip over "best single match" */ + + if (which == 1) + { + while (p[0] && p[1]) + p += 2; + p += 2; + } + + while (TRUE) + { + gunichar ch = p[0] * 256 + p[1]; + if (!ch) + break; + + len += g_unichar_to_utf8 (ch, out_buffer ? out_buffer + len : NULL); + p += 2; + } + + return len; +} + +static gsize +real_toupper (const gchar *str, + gssize max_len, + gchar *out_buffer, + LocaleType locale_type) +{ + const gchar *p = str; + const char *last = NULL; + gsize len = 0; + gboolean last_was_i = FALSE; + + while ((max_len < 0 || p < str + max_len) && *p) + { + gunichar c = g_utf8_get_char (p); + int t = TYPE (c); + gunichar val; + + last = p; + p = g_utf8_next_char (p); + + if (locale_type == LOCALE_LITHUANIAN) + { + if (c == 'i') + last_was_i = TRUE; + else + { + if (last_was_i) + { + /* Nasty, need to remove any dot above. Though + * I think only E WITH DOT ABOVE occurs in practice + * which could simplify this considerably. + */ + gsize decomp_len, i; + gunichar *decomp; + + decomp = g_unicode_canonical_decomposition (c, &decomp_len); + for (i=0; i < decomp_len; i++) + { + if (decomp[i] != 0x307 /* COMBINING DOT ABOVE */) + len += g_unichar_to_utf8 (g_unichar_toupper (decomp[i]), out_buffer ? out_buffer + len : NULL); + } + g_free (decomp); + + len = output_marks (&p, out_buffer, len, TRUE); + + continue; + } + + if (!ISMARK(t)) + last_was_i = FALSE; + } + } + + if (locale_type == LOCALE_TURKIC && c == 'i') + { + /* i => LATIN CAPITAL LETTER I WITH DOT ABOVE */ + len += g_unichar_to_utf8 (0x130, out_buffer ? out_buffer + len : NULL); + } + else if (c == 0x0345) /* COMBINING GREEK YPOGEGRAMMENI */ + { + /* Nasty, need to move it after other combining marks .. this would go away if + * we normalized first. + */ + len = output_marks (&p, out_buffer, len, FALSE); + + /* And output as GREEK CAPITAL LETTER IOTA */ + len += g_unichar_to_utf8 (0x399, out_buffer ? out_buffer + len : NULL); + } + else if (t == G_UNICODE_LOWERCASE_LETTER || t == G_UNICODE_TITLECASE_LETTER) + { + val = ATTTABLE (c >> 8, c & 0xff); + + if (val >= 0xd800 && val < 0xdc00) + { + len += output_special_case (out_buffer, len, val - 0xd800, t, + t == G_UNICODE_LOWERCASE_LETTER ? 0 : 1); + } + else + { + if (t == G_UNICODE_TITLECASE_LETTER) + { + unsigned int i; + for (i = 0; i < G_N_ELEMENTS (title_table); ++i) + { + if (title_table[i][0] == c) + val = title_table[i][1]; + } + } + + len += g_unichar_to_utf8 (val, out_buffer ? out_buffer + len : NULL); + } + } + else + { + gsize char_len = g_utf8_skip[*(guchar *)last]; + + if (out_buffer) + memcpy (out_buffer + len, last, char_len); + + len += char_len; + } + + } + + return len; +} + +/** + * g_utf8_strup: + * @str: a UTF-8 encoded string + * @len: length of @str, in bytes, or -1 if @str is nul-terminated. + * + * Converts all Unicode characters in the string that have a case + * to uppercase. The exact manner that this is done depends + * on the current locale, and may result in the number of + * characters in the string increasing. (For instance, the + * German ess-zet will be changed to SS.) + * + * Return value: a newly allocated string, with all characters + * converted to uppercase. + **/ +gchar * +g_utf8_strup (const gchar *str, + gssize len) +{ + gsize result_len; + LocaleType locale_type; + gchar *result; + + g_return_val_if_fail (str != NULL, NULL); + + locale_type = get_locale_type (); + + /* + * We use a two pass approach to keep memory management simple + */ + result_len = real_toupper (str, len, NULL, locale_type); + result = g_malloc (result_len + 1); + real_toupper (str, len, result, locale_type); + result[result_len] = '\0'; + + return result; +} + +static gsize +real_tolower (const gchar *str, + gssize max_len, + gchar *out_buffer, + LocaleType locale_type) +{ + const gchar *p = str; + const char *last = NULL; + gsize len = 0; + + while ((max_len < 0 || p < str + max_len) && *p) + { + gunichar c = g_utf8_get_char (p); + int t = TYPE (c); + gunichar val; + + last = p; + p = g_utf8_next_char (p); + + if (locale_type == LOCALE_TURKIC && c == 'I') + { + /* I => LATIN SMALL LETTER DOTLESS I */ + len += g_unichar_to_utf8 (0x131, out_buffer ? out_buffer + len : NULL); + } + else if (c == 0x03A3) /* GREEK CAPITAL LETTER SIGMA */ + { + gunichar next_c = g_utf8_get_char (p); + int next_t = TYPE(next_c); + + /* SIGMA mapps differently depending on whether it is + * final or not. The following simplified test would + * fail in the case of combining marks following the + * sigma, but I don't think that occurs in real text. + * The test here matches that in ICU. + */ + if (ISALPHA(next_t)) /* Lu,Ll,Lt,Lm,Lo */ + val = 0x3c3; /* GREEK SMALL SIGMA */ + else + val = 0x3c2; /* GREEK SMALL FINAL SIGMA */ + + len += g_unichar_to_utf8 (val, out_buffer ? out_buffer + len : NULL); + } + else if (t == G_UNICODE_UPPERCASE_LETTER || t == G_UNICODE_TITLECASE_LETTER) + { + val = ATTTABLE (c >> 8, c & 0xff); + + if (val >= 0xd800 && val < 0xdc00) + { + len += output_special_case (out_buffer, len, val - 0xd800, t, 0); + } + else + { + if (t == G_UNICODE_TITLECASE_LETTER) + { + unsigned int i; + for (i = 0; i < G_N_ELEMENTS (title_table); ++i) + { + if (title_table[i][0] == c) + val = title_table[i][2]; + } + } + + len += g_unichar_to_utf8 (val, out_buffer ? out_buffer + len : NULL); + } + } + else + { + gsize char_len = g_utf8_skip[*(guchar *)last]; + + if (out_buffer) + memcpy (out_buffer + len, last, char_len); + + len += char_len; + } + + } + + return len; +} + +/** + * g_utf8_strdown: + * @str: a UTF-8 encoded string + * @len: length of @str, in bytes, or -1 if @str is nul-terminated. + * + * Converts all Unicode characters in the string that have a case + * to lowercase. The exact manner that this is done depends + * on the current locale, and may result in the number of + * characters in the string changing. + * + * Return value: a newly allocated string, with all characters + * converted to lowercase. + **/ +gchar * +g_utf8_strdown (const gchar *str, + gssize len) +{ + gsize result_len; + LocaleType locale_type; + gchar *result; + + g_return_val_if_fail (str != NULL, NULL); + + locale_type = get_locale_type (); + + /* + * We use a two pass approach to keep memory management simple + */ + result_len = real_tolower (str, len, NULL, locale_type); + result = g_malloc (result_len + 1); + real_tolower (str, len, result, locale_type); + result[result_len] = '\0'; + + return result; +} + +/** + * g_utf8_casefold: + * @str: a UTF-8 encoded string + * @len: length of @str, in bytes, or -1 if @str is nul-terminated. + * + * Converts a string into a form that is independent of case. The + * result will not correspond to any particular case, but can be + * compared for equality or ordered with the results of calling + * g_utf8_casefold() on other strings. + * + * Note that calling g_utf8_casefold() followed by g_utf8_collate() is + * only an approximation to the correct linguistic case insensitive + * ordering, though it is a fairly good one. Getting this exactly + * right would require a more sophisticated collation function that + * takes case sensitivity into account. GLib does not currently + * provide such a function. + * + * Return value: a newly allocated string, that is a + * case independent form of @str. + **/ +gchar * +g_utf8_casefold (const gchar *str, + gssize len) +{ + GString *result = g_string_new (NULL); + const char *p; + + p = str; + while ((len < 0 || p < str + len) && *p) + { + gunichar ch = g_utf8_get_char (p); + + int start = 0; + int end = G_N_ELEMENTS (casefold_table); + + if (ch >= casefold_table[start].ch && + ch <= casefold_table[end - 1].ch) + { + while (TRUE) + { + int half = (start + end) / 2; + if (ch == casefold_table[half].ch) + { + g_string_append (result, casefold_table[half].data); + goto next; + } + else if (half == start) + break; + else if (ch > casefold_table[half].ch) + start = half; + else + end = half; + } + } + + g_string_append_unichar (result, g_unichar_tolower (ch)); + + next: + p = g_utf8_next_char (p); + } + + return g_string_free (result, FALSE); +} diff --git a/graf2d/win32gdk/gdk/src/glib/gutf8.c b/graf2d/win32gdk/gdk/src/glib/gutf8.c new file mode 100644 index 00000000000..ab4217bb92c --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gutf8.c @@ -0,0 +1,1523 @@ +/* gutf8.c - Operations on UTF-8 strings. + * + * Copyright (C) 1999 Tom Tromey + * Copyright (C) 2000 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#include <config.h> + +#include <stdlib.h> +#ifdef HAVE_CODESET +#include <langinfo.h> +#endif +#include <string.h> + +#include "glib.h" + +#ifdef G_PLATFORM_WIN32 +#include <stdio.h> +#define STRICT +#include <windows.h> +#undef STRICT +#endif + +#include "glibintl.h" + +#define UTF8_COMPUTE(Char, Mask, Len) \ + if (Char < 128) \ + { \ + Len = 1; \ + Mask = 0x7f; \ + } \ + else if ((Char & 0xe0) == 0xc0) \ + { \ + Len = 2; \ + Mask = 0x1f; \ + } \ + else if ((Char & 0xf0) == 0xe0) \ + { \ + Len = 3; \ + Mask = 0x0f; \ + } \ + else if ((Char & 0xf8) == 0xf0) \ + { \ + Len = 4; \ + Mask = 0x07; \ + } \ + else if ((Char & 0xfc) == 0xf8) \ + { \ + Len = 5; \ + Mask = 0x03; \ + } \ + else if ((Char & 0xfe) == 0xfc) \ + { \ + Len = 6; \ + Mask = 0x01; \ + } \ + else \ + Len = -1; + +#define UTF8_LENGTH(Char) \ + ((Char) < 0x80 ? 1 : \ + ((Char) < 0x800 ? 2 : \ + ((Char) < 0x10000 ? 3 : \ + ((Char) < 0x200000 ? 4 : \ + ((Char) < 0x4000000 ? 5 : 6))))) + + +#define UTF8_GET(Result, Chars, Count, Mask, Len) \ + (Result) = (Chars)[0] & (Mask); \ + for ((Count) = 1; (Count) < (Len); ++(Count)) \ + { \ + if (((Chars)[(Count)] & 0xc0) != 0x80) \ + { \ + (Result) = -1; \ + break; \ + } \ + (Result) <<= 6; \ + (Result) |= ((Chars)[(Count)] & 0x3f); \ + } + +#define UNICODE_VALID(Char) \ + ((Char) < 0x110000 && \ + ((Char) < 0xD800 || (Char) >= 0xE000) && \ + (Char) != 0xFFFE && (Char) != 0xFFFF) + + +static const gchar utf8_skip_data[256] = { + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,6,6,0,0 +}; + +const gchar * const g_utf8_skip = utf8_skip_data; + +/** + * g_utf8_find_prev_char: + * @str: pointer to the beginning of a UTF-8 encoded string + * @p: pointer to some position within @str + * + * Given a position @p with a UTF-8 encoded string @str, find the start + * of the previous UTF-8 character starting before @p. Returns %NULL if no + * UTF-8 characters are present in @p before @str. + * + * @p does not have to be at the beginning of a UTF-8 character. No check + * is made to see if the character found is actually valid other than + * it starts with an appropriate byte. + * + * Return value: a pointer to the found character or %NULL. + **/ +gchar * +g_utf8_find_prev_char (const char *str, + const char *p) +{ + for (--p; p >= str; --p) + { + if ((*p & 0xc0) != 0x80) + return (gchar *)p; + } + return NULL; +} + +/** + * g_utf8_find_next_char: + * @p: a pointer to a position within a UTF-8 encoded string + * @end: a pointer to the end of the string, or %NULL to indicate + * that the string is nul-terminated, in which case + * the returned value will be + * + * Finds the start of the next UTF-8 character in the string after @p. + * + * @p does not have to be at the beginning of a UTF-8 character. No check + * is made to see if the character found is actually valid other than + * it starts with an appropriate byte. + * + * Return value: a pointer to the found character or %NULL + **/ +gchar * +g_utf8_find_next_char (const gchar *p, + const gchar *end) +{ + if (*p) + { + if (end) + for (++p; p < end && (*p & 0xc0) == 0x80; ++p) + ; + else + for (++p; (*p & 0xc0) == 0x80; ++p) + ; + } + return (p == end) ? NULL : (gchar *)p; +} + +/** + * g_utf8_prev_char: + * @p: a pointer to a position within a UTF-8 encoded string + * + * Finds the previous UTF-8 character in the string before @p. + * + * @p does not have to be at the beginning of a UTF-8 character. No check + * is made to see if the character found is actually valid other than + * it starts with an appropriate byte. If @p might be the first + * character of the string, you must use g_utf8_find_prev_char() instead. + * + * Return value: a pointer to the found character. + **/ +gchar * +g_utf8_prev_char (const gchar *p) +{ + while (TRUE) + { + p--; + if ((*p & 0xc0) != 0x80) + return (gchar *)p; + } +} + +/** + * g_utf8_strlen: + * @p: pointer to the start of a UTF-8 encoded string. + * @max: the maximum number of bytes to examine. If @max + * is less than 0, then the string is assumed to be + * nul-terminated. + * + * Returns the length of the string in characters. + * + * Return value: the length of the string in characters + **/ +glong +g_utf8_strlen (const gchar *p, + gssize max) +{ + glong len = 0; + const gchar *start = p; + + if (max < 0) + { + while (*p) + { + p = g_utf8_next_char (p); + ++len; + } + } + else + { + if (max == 0 || !*p) + return 0; + + p = g_utf8_next_char (p); + + while (p - start < max && *p) + { + ++len; + p = g_utf8_next_char (p); + } + + /* only do the last len increment if we got a complete + * char (don't count partial chars) + */ + if (p - start == max) + ++len; + } + + return len; +} + +/** + * g_utf8_get_char: + * @p: a pointer to Unicode character encoded as UTF-8 + * + * Converts a sequence of bytes encoded as UTF-8 to a Unicode character. + * If @p does not point to a valid UTF-8 encoded character, results are + * undefined. If you are not sure that the bytes are complete + * valid Unicode characters, you should use g_utf8_get_char_validated() + * instead. + * + * Return value: the resulting character + **/ +gunichar +g_utf8_get_char (const gchar *p) +{ + int i, mask = 0, len; + gunichar result; + unsigned char c = (unsigned char) *p; + + UTF8_COMPUTE (c, mask, len); + if (len == -1) + return (gunichar)-1; + UTF8_GET (result, p, i, mask, len); + + return result; +} + +/** + * g_utf8_offset_to_pointer: + * @str: a UTF-8 encoded string + * @offset: a character offset within @str + * + * Converts from an integer character offset to a pointer to a position + * within the string. + * + * Return value: the resulting pointer + **/ +gchar * +g_utf8_offset_to_pointer (const gchar *str, + glong offset) +{ + const gchar *s = str; + while (offset--) + s = g_utf8_next_char (s); + + return (gchar *)s; +} + +/** + * g_utf8_pointer_to_offset: + * @str: a UTF-8 encoded string + * @pos: a pointer to a position within @str + * + * Converts from a pointer to position within a string to a integer + * character offset. + * + * Return value: the resulting character offset + **/ +glong +g_utf8_pointer_to_offset (const gchar *str, + const gchar *pos) +{ + const gchar *s = str; + glong offset = 0; + + while (s < pos) + { + s = g_utf8_next_char (s); + offset++; + } + + return offset; +} + + +/** + * g_utf8_strncpy: + * @dest: buffer to fill with characters from @src + * @src: UTF-8 encoded string + * @n: character count + * + * Like the standard C <function>strncpy()</function> function, but + * copies a given number of characters instead of a given number of + * bytes. The @src string must be valid UTF-8 encoded text. + * (Use g_utf8_validate() on all text before trying to use UTF-8 + * utility functions with it.) + * + * Return value: @dest + **/ +gchar * +g_utf8_strncpy (gchar *dest, + const gchar *src, + gsize n) +{ + const gchar *s = src; + while (n && *s) + { + s = g_utf8_next_char(s); + n--; + } + strncpy(dest, src, s - src); + dest[s - src] = 0; + return dest; +} + +static gboolean +g_utf8_get_charset_internal (char **a) +{ + char *charset = getenv("CHARSET"); + + if (charset && a && ! *a) + *a = charset; + + if (charset && strstr (charset, "UTF-8")) + return TRUE; + +#ifdef HAVE_CODESET + charset = nl_langinfo(CODESET); + if (charset) + { + if (a && ! *a) + *a = charset; + if (strcmp (charset, "UTF-8") == 0) + return TRUE; + } +#endif + +#if 0 /* #ifdef _NL_CTYPE_CODESET_NAME */ + charset = nl_langinfo (_NL_CTYPE_CODESET_NAME); + if (charset) + { + if (a && ! *a) + *a = charset; + if (strcmp (charset, "UTF-8") == 0) + return TRUE; + } +#endif + +#ifdef G_PLATFORM_WIN32 + if (a && ! *a) + { + static char codepage[10]; + + sprintf (codepage, "CP%d", GetACP ()); + *a = codepage; + /* What about codepage 1200? Is that UTF-8? */ + return FALSE; + } +#else + if (a && ! *a) + *a = "US-ASCII"; +#endif + + /* Assume this for compatibility at present. */ + return FALSE; +} + +static int utf8_locale_cache = -1; +static char *utf8_charset_cache = NULL; + +/** + * g_get_charset: + * @charset: return location for character set name + * + * Obtains the character set for the current locale; you might use + * this character set as an argument to g_convert(), to convert from + * the current locale's encoding to some other encoding. (Frequently + * g_locale_to_utf8() and g_locale_from_utf8() are nice shortcuts, + * though.) + * + * The return value is %TRUE if the locale's encoding is UTF-8, in that + * case you can perhaps avoid calling g_convert(). + * + * The string returned in @charset is not allocated, and should not be + * freed. + * + * Return value: %TRUE if the returned charset is UTF-8 + **/ +gboolean +g_get_charset (G_CONST_RETURN char **charset) +{ + if (utf8_locale_cache != -1) + { + if (charset) + *charset = utf8_charset_cache; + return utf8_locale_cache; + } + utf8_locale_cache = g_utf8_get_charset_internal (&utf8_charset_cache); + if (charset) + *charset = utf8_charset_cache; + return utf8_locale_cache; +} + +/* unicode_strchr */ + +/** + * g_unichar_to_utf8: + * @c: a ISO10646 character code + * @outbuf: output buffer, must have at least 6 bytes of space. + * If %NULL, the length will be computed and returned + * and nothing will be written to @outbuf. + * + * Converts a single character to UTF-8. + * + * Return value: number of bytes written + **/ +int +g_unichar_to_utf8 (gunichar c, + gchar *outbuf) +{ + guint len = 0; + int first; + int i; + + if (c < 0x80) + { + first = 0; + len = 1; + } + else if (c < 0x800) + { + first = 0xc0; + len = 2; + } + else if (c < 0x10000) + { + first = 0xe0; + len = 3; + } + else if (c < 0x200000) + { + first = 0xf0; + len = 4; + } + else if (c < 0x4000000) + { + first = 0xf8; + len = 5; + } + else + { + first = 0xfc; + len = 6; + } + + if (outbuf) + { + for (i = len - 1; i > 0; --i) + { + outbuf[i] = (c & 0x3f) | 0x80; + c >>= 6; + } + outbuf[0] = c | first; + } + + return len; +} + +/** + * g_utf8_strchr: + * @p: a nul-terminated UTF-8 encoded string + * @len: the maximum length of @p + * @c: a ISO10646 character + * + * Finds the leftmost occurrence of the given ISO10646 character + * in a UTF-8 encoded string, while limiting the search to @len bytes. + * If @len is -1, allow unbounded search. + * + * Return value: %NULL if the string does not contain the character, + * otherwise, a pointer to the start of the leftmost occurrence of + * the character in the string. + **/ +gchar * +g_utf8_strchr (const char *p, + gssize len, + gunichar c) +{ + gchar ch[10]; + + gint charlen = g_unichar_to_utf8 (c, ch); + ch[charlen] = '\0'; + + return g_strstr_len (p, len, ch); +} + + +/** + * g_utf8_strrchr: + * @p: a nul-terminated UTF-8 encoded string + * @len: the maximum length of @p + * @c: a ISO10646 character + * + * Find the rightmost occurrence of the given ISO10646 character + * in a UTF-8 encoded string, while limiting the search to @len bytes. + * If @len is -1, allow unbounded search. + * + * Return value: %NULL if the string does not contain the character, + * otherwise, a pointer to the start of the rightmost occurrence of the + * character in the string. + **/ +gchar * +g_utf8_strrchr (const char *p, + gssize len, + gunichar c) +{ + gchar ch[10]; + + gint charlen = g_unichar_to_utf8 (c, ch); + ch[charlen] = '\0'; + + return g_strrstr_len (p, len, ch); +} + + +/* Like g_utf8_get_char, but take a maximum length + * and return (gunichar)-2 on incomplete trailing character + */ +static inline gunichar +g_utf8_get_char_extended (const gchar *p, + gssize max_len) +{ + guint i, len; + gunichar wc = (guchar) *p; + + if (wc < 0x80) + { + return wc; + } + else if (wc < 0xc0) + { + return (gunichar)-1; + } + else if (wc < 0xe0) + { + len = 2; + wc &= 0x1f; + } + else if (wc < 0xf0) + { + len = 3; + wc &= 0x0f; + } + else if (wc < 0xf8) + { + len = 4; + wc &= 0x07; + } + else if (wc < 0xfc) + { + len = 5; + wc &= 0x03; + } + else if (wc < 0xfe) + { + len = 6; + wc &= 0x01; + } + else + { + return (gunichar)-1; + } + + if (max_len >= 0 && len > max_len) + { + for (i = 1; i < max_len; i++) + { + if ((((guchar *)p)[i] & 0xc0) != 0x80) + return (gunichar)-1; + } + return (gunichar)-2; + } + + for (i = 1; i < len; ++i) + { + gunichar ch = ((guchar *)p)[i]; + + if ((ch & 0xc0) != 0x80) + { + if (ch) + return (gunichar)-1; + else + return (gunichar)-2; + } + + wc <<= 6; + wc |= (ch & 0x3f); + } + + if (UTF8_LENGTH(wc) != len) + return (gunichar)-1; + + return wc; +} + +/** + * g_utf8_get_char_validated: + * @p: a pointer to Unicode character encoded as UTF-8 + * @max_len: the maximum number of bytes to read, or -1, for no maximum. + * + * Convert a sequence of bytes encoded as UTF-8 to a Unicode character. + * This function checks for incomplete characters, for invalid characters + * such as characters that are out of the range of Unicode, and for + * overlong encodings of valid characters. + * + * Return value: the resulting character. If @p points to a partial + * sequence at the end of a string that could begin a valid character, + * returns (gunichar)-2; otherwise, if @p does not point to a valid + * UTF-8 encoded Unicode character, returns (gunichar)-1. + **/ +gunichar +g_utf8_get_char_validated (const gchar *p, + gssize max_len) +{ + gunichar result = g_utf8_get_char_extended (p, max_len); + + if (result & 0x80000000) + return result; + else if (!UNICODE_VALID (result)) + return (gunichar)-1; + else + return result; +} + +/** + * g_utf8_to_ucs4_fast: + * @str: a UTF-8 encoded string + * @len: the maximum length of @str to use. If @len < 0, then + * the string is nul-terminated. + * @items_written: location to store the number of characters in the + * result, or %NULL. + * + * Convert a string from UTF-8 to a 32-bit fixed width + * representation as UCS-4, assuming valid UTF-8 input. + * This function is roughly twice as fast as g_utf8_to_ucs4() + * but does no error checking on the input. + * + * Return value: a pointer to a newly allocated UCS-4 string. + * This value must be freed with g_free(). + **/ +gunichar * +g_utf8_to_ucs4_fast (const gchar *str, + glong len, + glong *items_written) +{ + gint j, charlen; + gunichar *result; + gint n_chars, i; + const gchar *p; + + g_return_val_if_fail (str != NULL, NULL); + + p = str; + n_chars = 0; + if (len < 0) + { + while (*p) + { + p = g_utf8_next_char (p); + ++n_chars; + } + } + else + { + while (p < str + len && *p) + { + p = g_utf8_next_char (p); + ++n_chars; + } + } + + result = g_new (gunichar, n_chars + 1); + + p = str; + for (i=0; i < n_chars; i++) + { + gunichar wc = ((unsigned char *)p)[0]; + + if (wc < 0x80) + { + result[i] = wc; + p++; + } + else + { + if (wc < 0xe0) + { + charlen = 2; + wc &= 0x1f; + } + else if (wc < 0xf0) + { + charlen = 3; + wc &= 0x0f; + } + else if (wc < 0xf8) + { + charlen = 4; + wc &= 0x07; + } + else if (wc < 0xfc) + { + charlen = 5; + wc &= 0x03; + } + else + { + charlen = 6; + wc &= 0x01; + } + + for (j = 1; j < charlen; j++) + { + wc <<= 6; + wc |= ((unsigned char *)p)[j] & 0x3f; + } + + result[i] = wc; + p += charlen; + } + } + result[i] = 0; + + if (items_written) + *items_written = i; + + return result; +} + +/** + * g_utf8_to_ucs4: + * @str: a UTF-8 encoded string + * @len: the maximum length of @str to use. If @len < 0, then + * the string is nul-terminated. + * @items_read: location to store number of bytes read, or %NULL. + * If %NULL, then %G_CONVERT_ERROR_PARTIAL_INPUT will be + * returned in case @str contains a trailing partial + * character. If an error occurs then the index of the + * invalid input is stored here. + * @items_written: location to store number of characters written or %NULL. + * The value here stored does not include the trailing 0 + * character. + * @error: location to store the error occuring, or %NULL to ignore + * errors. Any of the errors in #GConvertError other than + * %G_CONVERT_ERROR_NO_CONVERSION may occur. + * + * Convert a string from UTF-8 to a 32-bit fixed width + * representation as UCS-4. A trailing 0 will be added to the + * string after the converted text. + * + * Return value: a pointer to a newly allocated UCS-4 string. + * This value must be freed with g_free(). If an + * error occurs, %NULL will be returned and + * @error set. + **/ +gunichar * +g_utf8_to_ucs4 (const gchar *str, + glong len, + glong *items_read, + glong *items_written, + GError **error) +{ + gunichar *result = NULL; + gint n_chars, i; + const gchar *in; + + in = str; + n_chars = 0; + while ((len < 0 || str + len - in > 0) && *in) + { + gunichar wc = g_utf8_get_char_extended (in, str + len - in); + if (wc & 0x80000000) + { + if (wc == (gunichar)-2) + { + if (items_read) + break; + else + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_PARTIAL_INPUT, + _("Partial character sequence at end of input")); + } + else + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, + _("Invalid byte sequence in conversion input")); + + goto err_out; + } + + n_chars++; + + in = g_utf8_next_char (in); + } + + result = g_new (gunichar, n_chars + 1); + + in = str; + for (i=0; i < n_chars; i++) + { + result[i] = g_utf8_get_char (in); + in = g_utf8_next_char (in); + } + result[i] = 0; + + if (items_written) + *items_written = n_chars; + + err_out: + if (items_read) + *items_read = in - str; + + return result; +} + +/** + * g_ucs4_to_utf8: + * @str: a UCS-4 encoded string + * @len: the maximum length of @str to use. If @len < 0, then + * the string is terminated with a 0 character. + * @items_read: location to store number of characters read read, or %NULL. + * @items_written: location to store number of bytes written or %NULL. + * The value here stored does not include the trailing 0 + * byte. + * @error: location to store the error occuring, or %NULL to ignore + * errors. Any of the errors in #GConvertError other than + * %G_CONVERT_ERROR_NO_CONVERSION may occur. + * + * Convert a string from a 32-bit fixed width representation as UCS-4. + * to UTF-8. The result will be terminated with a 0 byte. + * + * Return value: a pointer to a newly allocated UTF-8 string. + * This value must be freed with g_free(). If an + * error occurs, %NULL will be returned and + * @error set. + **/ +gchar * +g_ucs4_to_utf8 (const gunichar *str, + glong len, + glong *items_read, + glong *items_written, + GError **error) +{ + gint result_length; + gchar *result = NULL; + gchar *p; + gint i; + + result_length = 0; + for (i = 0; len < 0 || i < len ; i++) + { + if (!str[i]) + break; + + if (str[i] >= 0x80000000) + { + if (items_read) + *items_read = i; + + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, + _("Character out of range for UTF-8")); + goto err_out; + } + + result_length += UTF8_LENGTH (str[i]); + } + + result = g_malloc (result_length + 1); + p = result; + + i = 0; + while (p < result + result_length) + p += g_unichar_to_utf8 (str[i++], p); + + *p = '\0'; + + if (items_written) + *items_written = p - result; + + err_out: + if (items_read) + *items_read = i; + + return result; +} + +#define SURROGATE_VALUE(h,l) (((h) - 0xd800) * 0x400 + (l) - 0xdc00 + 0x10000) + +/** + * g_utf16_to_utf8: + * @str: a UTF-16 encoded string + * @len: the maximum length of @str to use. If @len < 0, then + * the string is terminated with a 0 character. + * @items_read: location to store number of words read, or %NULL. + * If %NULL, then %G_CONVERT_ERROR_PARTIAL_INPUT will be + * returned in case @str contains a trailing partial + * character. If an error occurs then the index of the + * invalid input is stored here. + * @items_written: location to store number of bytes written, or %NULL. + * The value stored here does not include the trailing + * 0 byte. + * @error: location to store the error occuring, or %NULL to ignore + * errors. Any of the errors in #GConvertError other than + * %G_CONVERT_ERROR_NO_CONVERSION may occur. + * + * Convert a string from UTF-16 to UTF-8. The result will be + * terminated with a 0 byte. + * + * Return value: a pointer to a newly allocated UTF-8 string. + * This value must be freed with g_free(). If an + * error occurs, %NULL will be returned and + * @error set. + **/ +gchar * +g_utf16_to_utf8 (const gunichar2 *str, + glong len, + glong *items_read, + glong *items_written, + GError **error) +{ + /* This function and g_utf16_to_ucs4 are almost exactly identical - The lines that differ + * are marked. + */ + const gunichar2 *in; + gchar *out; + gchar *result = NULL; + gint n_bytes; + gunichar high_surrogate; + + g_return_val_if_fail (str != 0, NULL); + + n_bytes = 0; + in = str; + high_surrogate = 0; + while ((len < 0 || in - str < len) && *in) + { + gunichar2 c = *in; + gunichar wc; + + if (c >= 0xdc00 && c < 0xe000) /* low surrogate */ + { + if (high_surrogate) + { + wc = SURROGATE_VALUE (high_surrogate, c); + high_surrogate = 0; + } + else + { + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, + _("Invalid sequence in conversion input")); + goto err_out; + } + } + else + { + if (high_surrogate) + { + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, + _("Invalid sequence in conversion input")); + goto err_out; + } + + if (c >= 0xd800 && c < 0xdc00) /* high surrogate */ + { + high_surrogate = c; + goto next1; + } + else + wc = c; + } + + /********** DIFFERENT for UTF8/UCS4 **********/ + n_bytes += UTF8_LENGTH (wc); + + next1: + in++; + } + + if (high_surrogate && !items_read) + { + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_PARTIAL_INPUT, + _("Partial character sequence at end of input")); + goto err_out; + } + + /* At this point, everything is valid, and we just need to convert + */ + /********** DIFFERENT for UTF8/UCS4 **********/ + result = g_malloc (n_bytes + 1); + + high_surrogate = 0; + out = result; + in = str; + while (out < result + n_bytes) + { + gunichar2 c = *in; + gunichar wc; + + if (c >= 0xdc00 && c < 0xe000) /* low surrogate */ + { + wc = SURROGATE_VALUE (high_surrogate, c); + high_surrogate = 0; + } + else if (c >= 0xd800 && c < 0xdc00) /* high surrogate */ + { + high_surrogate = c; + goto next2; + } + else + wc = c; + + /********** DIFFERENT for UTF8/UCS4 **********/ + out += g_unichar_to_utf8 (wc, out); + + next2: + in++; + } + + /********** DIFFERENT for UTF8/UCS4 **********/ + *out = '\0'; + + if (items_written) + /********** DIFFERENT for UTF8/UCS4 **********/ + *items_written = out - result; + + err_out: + if (items_read) + *items_read = in - str; + + return result; +} + +/** + * g_utf16_to_ucs4: + * @str: a UTF-16 encoded string + * @len: the maximum length of @str to use. If @len < 0, then + * the string is terminated with a 0 character. + * @items_read: location to store number of words read, or %NULL. + * If %NULL, then %G_CONVERT_ERROR_PARTIAL_INPUT will be + * returned in case @str contains a trailing partial + * character. If an error occurs then the index of the + * invalid input is stored here. + * @items_written: location to store number of characters written, or %NULL. + * The value stored here does not include the trailing + * 0 character. + * @error: location to store the error occuring, or %NULL to ignore + * errors. Any of the errors in #GConvertError other than + * %G_CONVERT_ERROR_NO_CONVERSION may occur. + * + * Convert a string from UTF-16 to UCS-4. The result will be + * terminated with a 0 character. + * + * Return value: a pointer to a newly allocated UCS-4 string. + * This value must be freed with g_free(). If an + * error occurs, %NULL will be returned and + * @error set. + **/ +gunichar * +g_utf16_to_ucs4 (const gunichar2 *str, + glong len, + glong *items_read, + glong *items_written, + GError **error) +{ + const gunichar2 *in; + gchar *out; + gchar *result = NULL; + gint n_bytes; + gunichar high_surrogate; + + g_return_val_if_fail (str != 0, NULL); + + n_bytes = 0; + in = str; + high_surrogate = 0; + while ((len < 0 || in - str < len) && *in) + { + gunichar2 c = *in; + gunichar wc; + + if (c >= 0xdc00 && c < 0xe000) /* low surrogate */ + { + if (high_surrogate) + { + wc = SURROGATE_VALUE (high_surrogate, c); + high_surrogate = 0; + } + else + { + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, + _("Invalid sequence in conversion input")); + goto err_out; + } + } + else + { + if (high_surrogate) + { + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, + _("Invalid sequence in conversion input")); + goto err_out; + } + + if (c >= 0xd800 && c < 0xdc00) /* high surrogate */ + { + high_surrogate = c; + goto next1; + } + else + wc = c; + } + + /********** DIFFERENT for UTF8/UCS4 **********/ + n_bytes += sizeof (gunichar); + + next1: + in++; + } + + if (high_surrogate && !items_read) + { + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_PARTIAL_INPUT, + _("Partial character sequence at end of input")); + goto err_out; + } + + /* At this point, everything is valid, and we just need to convert + */ + /********** DIFFERENT for UTF8/UCS4 **********/ + result = g_malloc (n_bytes + 4); + + high_surrogate = 0; + out = result; + in = str; + while (out < result + n_bytes) + { + gunichar2 c = *in; + gunichar wc; + + if (c >= 0xdc00 && c < 0xe000) /* low surrogate */ + { + wc = SURROGATE_VALUE (high_surrogate, c); + high_surrogate = 0; + } + else if (c >= 0xd800 && c < 0xdc00) /* high surrogate */ + { + high_surrogate = c; + goto next2; + } + else + wc = c; + + /********** DIFFERENT for UTF8/UCS4 **********/ + *(gunichar *)out = wc; + out += sizeof (gunichar); + + next2: + in++; + } + + /********** DIFFERENT for UTF8/UCS4 **********/ + *(gunichar *)out = 0; + + if (items_written) + /********** DIFFERENT for UTF8/UCS4 **********/ + *items_written = (out - result) / sizeof (gunichar); + + err_out: + if (items_read) + *items_read = in - str; + + return (gunichar *)result; +} + +/** + * g_utf8_to_utf16: + * @str: a UTF-8 encoded string + * @len: the maximum length of @str to use. If @len < 0, then + * the string is nul-terminated. + + * @items_read: location to store number of bytes read, or %NULL. + * If %NULL, then %G_CONVERT_ERROR_PARTIAL_INPUT will be + * returned in case @str contains a trailing partial + * character. If an error occurs then the index of the + * invalid input is stored here. + * @items_written: location to store number of words written, or %NULL. + * The value stored here does not include the trailing + * 0 word. + * @error: location to store the error occuring, or %NULL to ignore + * errors. Any of the errors in #GConvertError other than + * %G_CONVERT_ERROR_NO_CONVERSION may occur. + * + * Convert a string from UTF-8 to UTF-16. A 0 word will be + * added to the result after the converted text. + * + * Return value: a pointer to a newly allocated UTF-16 string. + * This value must be freed with g_free(). If an + * error occurs, %NULL will be returned and + * @error set. + **/ +gunichar2 * +g_utf8_to_utf16 (const gchar *str, + glong len, + glong *items_read, + glong *items_written, + GError **error) +{ + gunichar2 *result = NULL; + gint n16; + const gchar *in; + gint i; + + g_return_val_if_fail (str != NULL, NULL); + + in = str; + n16 = 0; + while ((len < 0 || str + len - in > 0) && *in) + { + gunichar wc = g_utf8_get_char_extended (in, str + len - in); + if (wc & 0x80000000) + { + if (wc == (gunichar)-2) + { + if (items_read) + break; + else + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_PARTIAL_INPUT, + _("Partial character sequence at end of input")); + } + else + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, + _("Invalid byte sequence in conversion input")); + + goto err_out; + } + + if (wc < 0xd800) + n16 += 1; + else if (wc < 0xe000) + { + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, + _("Invalid sequence in conversion input")); + + goto err_out; + } + else if (wc < 0x10000) + n16 += 1; + else if (wc < 0x110000) + n16 += 2; + else + { + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, + _("Character out of range for UTF-16")); + + goto err_out; + } + + in = g_utf8_next_char (in); + } + + result = g_new (gunichar2, n16 + 1); + + in = str; + for (i = 0; i < n16;) + { + gunichar wc = g_utf8_get_char (in); + + if (wc < 0x10000) + { + result[i++] = wc; + } + else + { + result[i++] = (wc - 0x10000) / 0x400 + 0xd800; + result[i++] = (wc - 0x10000) % 0x400 + 0xdc00; + } + + in = g_utf8_next_char (in); + } + + result[i] = 0; + + if (items_written) + *items_written = n16; + + err_out: + if (items_read) + *items_read = in - str; + + return result; +} + +/** + * g_ucs4_to_utf16: + * @str: a UCS-4 encoded string + * @len: the maximum length of @str to use. If @len < 0, then + * the string is terminated with a 0 character. + * @items_read: location to store number of bytes read, or %NULL. + * If an error occurs then the index of the invalid input + * is stored here. + * @items_written: location to store number of words written, or %NULL. + * The value stored here does not include the trailing + * 0 word. + * @error: location to store the error occuring, or %NULL to ignore + * errors. Any of the errors in #GConvertError other than + * %G_CONVERT_ERROR_NO_CONVERSION may occur. + * + * Convert a string from UCS-4 to UTF-16. A 0 word will be + * added to the result after the converted text. + * + * Return value: a pointer to a newly allocated UTF-16 string. + * This value must be freed with g_free(). If an + * error occurs, %NULL will be returned and + * @error set. + **/ +gunichar2 * +g_ucs4_to_utf16 (const gunichar *str, + glong len, + glong *items_read, + glong *items_written, + GError **error) +{ + gunichar2 *result = NULL; + gint n16; + gint i, j; + + n16 = 0; + i = 0; + while ((len < 0 || i < len) && str[i]) + { + gunichar wc = str[i]; + + if (wc < 0xd800) + n16 += 1; + else if (wc < 0xe000) + { + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, + _("Invalid sequence in conversion input")); + + goto err_out; + } + else if (wc < 0x10000) + n16 += 1; + else if (wc < 0x110000) + n16 += 2; + else + { + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_ILLEGAL_SEQUENCE, + _("Character out of range for UTF-16")); + + goto err_out; + } + + i++; + } + + result = g_new (gunichar2, n16 + 1); + + for (i = 0, j = 0; j < n16; i++) + { + gunichar wc = str[i]; + + if (wc < 0x10000) + { + result[j++] = wc; + } + else + { + result[j++] = (wc - 0x10000) / 0x400 + 0xd800; + result[j++] = (wc - 0x10000) % 0x400 + 0xdc00; + } + } + result[j] = 0; + + if (items_written) + *items_written = n16; + + err_out: + if (items_read) + *items_read = i; + + return result; +} + +/** + * g_utf8_validate: + * @str: a pointer to character data + * @max_len: max bytes to validate, or -1 to go until nul + * @end: return location for end of valid data + * + * Validates UTF-8 encoded text. @str is the text to validate; + * if @str is nul-terminated, then @max_len can be -1, otherwise + * @max_len should be the number of bytes to validate. + * If @end is non-%NULL, then the end of the valid range + * will be stored there (i.e. the address of the first invalid byte + * if some bytes were invalid, or the end of the text being validated + * otherwise). + * + * Returns %TRUE if all of @str was valid. Many GLib and GTK+ + * routines <emphasis>require</emphasis> valid UTF-8 as input; + * so data read from a file or the network should be checked + * with g_utf8_validate() before doing anything else with it. + * + * Return value: %TRUE if the text was valid UTF-8 + **/ +gboolean +g_utf8_validate (const gchar *str, + gssize max_len, + const gchar **end) +{ + + const gchar *p; + + g_return_val_if_fail (str != NULL, FALSE); + + if (end) + *end = str; + + p = str; + + while ((max_len < 0 || (p - str) < max_len) && *p) + { + int i, mask = 0, len; + gunichar result; + unsigned char c = (unsigned char) *p; + + UTF8_COMPUTE (c, mask, len); + + if (len == -1) + break; + + /* check that the expected number of bytes exists in str */ + if (max_len >= 0 && + ((max_len - (p - str)) < len)) + break; + + UTF8_GET (result, p, i, mask, len); + + if (UTF8_LENGTH (result) != len) /* Check for overlong UTF-8 */ + break; + + if (result == (gunichar)-1) + break; + + if (!UNICODE_VALID (result)) + break; + + p += len; + } + + if (end) + *end = p; + + /* See that we covered the entire length if a length was + * passed in, or that we ended on a nul if not + */ + if (max_len >= 0 && + p != (str + max_len)) + return FALSE; + else if (max_len < 0 && + *p != '\0') + return FALSE; + else + return TRUE; +} + +/** + * g_unichar_validate: + * @ch: a Unicode character + * + * Checks whether @ch is a valid Unicode character. Some possible + * integer values of @ch will not be valid. 0 is considered a valid + * character, though it's normally a string terminator. + * + * Return value: %TRUE if @ch is a valid Unicode character + **/ +gboolean +g_unichar_validate (gunichar ch) +{ + return UNICODE_VALID (ch); +} diff --git a/graf2d/win32gdk/gdk/src/glib/gutils.c b/graf2d/win32gdk/gdk/src/glib/gutils.c new file mode 100644 index 00000000000..53dc57755a9 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gutils.c @@ -0,0 +1,1136 @@ +/* GLIB - Library of useful routines for C programming +* Copyright (C) 1995-1998 Peter Mattis, Spencer Kimball and Josh MacDonald +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU Lesser General Public +* License as published by the Free Software Foundation; either +* version 2 of the License, or (at your option) any later version. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* Lesser General Public License for more details. +* +* You should have received a copy of the GNU Lesser General Public +* License along with this library; if not, write to the +* Free Software Foundation, Inc., 59 Temple Place - Suite 330, +* Boston, MA 02111-1307, USA. +*/ + +/* +* Modified by the GLib Team and others 1997-2000. See the AUTHORS +* file for a list of people on the GLib Team. See the ChangeLog +* files for a list of changes. These files are distributed with +* GLib at ftp://ftp.gtk.org/pub/gtk/. +*/ + +/* +* MT safe for the unix part, FIXME: make the win32 part MT safe as well. +*/ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif +#include <stdarg.h> +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <errno.h> +#ifdef HAVE_PWD_H +#include <pwd.h> +#endif +#include <sys/types.h> +#ifdef HAVE_SYS_PARAM_H +#include <sys/param.h> +#endif + +/* implement gutils's inline functions +*/ +#define G_IMPLEMENT_INLINES 1 +#define __G_UTILS_C__ +#include "glib.h" + +#ifdef MAXPATHLEN +#define G_PATH_LENGTH MAXPATHLEN +#elif defined (PATH_MAX) +#define G_PATH_LENGTH PATH_MAX +#elif defined (_PC_PATH_MAX) +#define G_PATH_LENGTH sysconf(_PC_PATH_MAX) +#else +#define G_PATH_LENGTH 2048 +#endif + +#ifdef G_PLATFORM_WIN32 +# define STRICT /* Strict typing, please */ +# include <windows.h> +# undef STRICT +# include <ctype.h> +#endif /* G_PLATFORM_WIN32 */ + +#ifdef G_OS_WIN32 +# include <direct.h> +#endif + +#ifdef HAVE_CODESET +#include <langinfo.h> +#endif + +const guint glib_major_version = GLIB_MAJOR_VERSION; +const guint glib_minor_version = GLIB_MINOR_VERSION; +const guint glib_micro_version = GLIB_MICRO_VERSION; +const guint glib_interface_age = 2; // GTW - no idea, didn't seem to be set anywhere! Not set or used by ROOT. +const guint glib_binary_age = 2; // GTW - no idea, doesn't seem to be set or used by ROOT. + +// Have it, but defines wrong. Scary! GTW +#if 0 +#if !defined (HAVE_MEMMOVE) && !defined (HAVE_WORKING_BCOPY) +void + g_memmove (gpointer dest, gconstpointer src, gulong len) +{ + gchar* destptr = dest; + const gchar* srcptr = src; + if (src + len < dest || dest + len < src) + { + bcopy (src, dest, len); + return; + } + else if (dest <= src) + { + while (len--) + *(destptr++) = *(srcptr++); + } + else + { + destptr += len; + srcptr += len; + while (len--) + *(--destptr) = *(--srcptr); + } +} +#endif /* !HAVE_MEMMOVE && !HAVE_WORKING_BCOPY */ +#endif + +void + g_atexit (GVoidFunc func) +{ + gint result; + const gchar *error = NULL; + + /* keep this in sync with glib.h */ + +#ifdef G_NATIVE_ATEXIT + result = ATEXIT (func); + if (result) + error = g_strerror (errno); +#elif defined (HAVE_ATEXIT) +# ifdef NeXT /* @#%@! NeXTStep */ + result = !atexit ((void (*)(void)) func); + if (result) + error = g_strerror (errno); +# else + result = atexit ((void (*)(void)) func); + if (result) + error = g_strerror (errno); +# endif /* NeXT */ +#elif defined (HAVE_ON_EXIT) + result = on_exit ((void (*)(int, void *)) func, NULL); + if (result) + error = g_strerror (errno); +#else + result = 0; + error = "no implementation"; +#endif /* G_NATIVE_ATEXIT */ + + if (error) + g_error ("Could not register atexit() function: %s", error); +} + +/* Based on execvp() from GNU Libc. +* Some of this code is cut-and-pasted into gspawn.c +*/ + +static gchar* + my_strchrnul (const gchar *str, gchar c) +{ + gchar *p = (gchar*)str; + while (*p && (*p != c)) + ++p; + + return p; +} + +#ifdef G_OS_WIN32 + +gchar *inner_find_program_in_path (const gchar *program); + +gchar* + g_find_program_in_path (const gchar *program) +{ + const gchar *last_dot = strrchr (program, '.'); + + if (last_dot == NULL || strchr (last_dot, '\\') != NULL) + { + const gint program_length = strlen (program); + const gchar *pathext = getenv ("PATHEXT"); + const gchar *p; + gchar *decorated_program; + gchar *retval; + + if (pathext == NULL) + pathext = ".com;.exe;.bat"; + + p = pathext; + do + { + pathext = p; + p = my_strchrnul (pathext, ';'); + + decorated_program = g_malloc (program_length + (p-pathext) + 1); + memcpy (decorated_program, program, program_length); + memcpy (decorated_program+program_length, pathext, p-pathext); + decorated_program [program_length + (p-pathext)] = '\0'; + + retval = inner_find_program_in_path (decorated_program); + g_free (decorated_program); + + if (retval != NULL) + return retval; + } while (*p++ != '\0'); + return NULL; + } + else + return inner_find_program_in_path (program); +} + +#define g_find_program_in_path inner_find_program_in_path +#endif + +/** +* g_find_program_in_path: +* @program: a program name +* +* Locates the first executable named @program in the user's path, in the +* same way that execvp() would locate it. Returns an allocated string +* with the absolute path name, or NULL if the program is not found in +* the path. If @program is already an absolute path, returns a copy of +* @program if @program exists and is executable, and NULL otherwise. +* +* On Windows, if @program does not have a file type suffix, tries to +* append the suffixes in the PATHEXT environment variable (if that +* doesn't exists, the suffixes .com, .exe, and .bat) in turn, and +* then look for the resulting file name in the same way as +* CreateProcess() would. This means first in the directory where the +* program was loaded from, then in the current directory, then in the +* Windows 32-bit system directory, then in the Windows directory, and +* finally in the directories in the PATH environment variable. If +* the program is found, the return value contains the full name +* including the type suffix. +* +* Return value: absolute path, or NULL +**/ +gchar* + g_find_program_in_path (const gchar *program) +{ + const gchar *path, *p; + gchar *name, *freeme; +#ifdef G_OS_WIN32 + gchar *path_tmp; +#endif + size_t len; + size_t pathlen; + + g_return_val_if_fail (program != NULL, NULL); + + /* If it is an absolute path, or a relative path including subdirectories, + * don't look in PATH. + */ + if (g_path_is_absolute (program) + || strchr (program, G_DIR_SEPARATOR) != NULL) + { + if (g_file_test (program, G_FILE_TEST_IS_EXECUTABLE)) + return g_strdup (program); + else + return NULL; + } + + path = g_getenv ("PATH"); +#ifdef G_OS_UNIX + if (path == NULL) + { + /* There is no `PATH' in the environment. The default + * search path in GNU libc is the current directory followed by + * the path `confstr' returns for `_CS_PATH'. + */ + + /* In GLib we put . last, for security, and don't use the + * unportable confstr(); UNIX98 does not actually specify + * what to search if PATH is unset. POSIX may, dunno. + */ + + path = "/bin:/usr/bin:."; + } +#else + { + gchar *tmp; + gchar moddir[MAXPATHLEN], sysdir[MAXPATHLEN], windir[MAXPATHLEN]; + + GetModuleFileName (NULL, moddir, sizeof (moddir)); + tmp = g_path_get_dirname (moddir); + GetSystemDirectory (sysdir, sizeof (sysdir)); + GetWindowsDirectory (windir, sizeof (windir)); + path_tmp = g_strconcat (tmp, ";.;", sysdir, ";", windir, + (path != NULL ? ";" : NULL), + (path != NULL ? path : NULL), + NULL); + g_free (tmp); + path = path_tmp; + } +#endif + + len = strlen (program) + 1; + pathlen = strlen (path); + freeme = name = g_malloc (pathlen + len + 1); + + /* Copy the file name at the top, including '\0' */ + memcpy (name + pathlen + 1, program, len); + name = name + pathlen; + /* And add the slash before the filename */ + *name = G_DIR_SEPARATOR; + + p = path; + do + { + char *startp; + + path = p; + p = my_strchrnul (path, G_SEARCHPATH_SEPARATOR); + + if (p == path) + /* Two adjacent colons, or a colon at the beginning or the end + * of `PATH' means to search the current directory. + */ + startp = name + 1; + else + startp = memcpy (name - (p - path), path, p - path); + + if (g_file_test (startp, G_FILE_TEST_IS_EXECUTABLE)) + { + gchar *ret; + ret = g_strdup (startp); + g_free (freeme); +#ifdef G_OS_WIN32 + g_free (path_tmp); +#endif + return ret; + } + } + while (*p++ != '\0'); + + g_free (freeme); +#ifdef G_OS_WIN32 + g_free (path_tmp); +#endif + + return NULL; +} + +gint + g_snprintf (gchar *str, + gulong n, + gchar const *fmt, + ...) +{ +#ifdef HAVE_VSNPRINTF + va_list args; + gint retval; + + g_return_val_if_fail (str != NULL, 0); + g_return_val_if_fail (n > 0, 0); + g_return_val_if_fail (fmt != NULL, 0); + + va_start (args, fmt); + retval = vsnprintf (str, n, fmt, args); + va_end (args); + + if (retval < 0) + { + str[n-1] = '\0'; + retval = strlen (str); + } + + return retval; +#else /* !HAVE_VSNPRINTF */ + gchar *printed; + va_list args; + + g_return_val_if_fail (str != NULL, 0); + g_return_val_if_fail (n > 0, 0); + g_return_val_if_fail (fmt != NULL, 0); + + va_start (args, fmt); + printed = g_strdup_vprintf (fmt, args); + va_end (args); + + strncpy (str, printed, n); + str[n-1] = '\0'; + + g_free (printed); + + return strlen (str); +#endif /* !HAVE_VSNPRINTF */ +} + +gint + g_vsnprintf (gchar *str, + gulong n, + gchar const *fmt, + va_list args) +{ +#ifdef HAVE_VSNPRINTF + gint retval; + + g_return_val_if_fail (str != NULL, 0); + g_return_val_if_fail (n > 0, 0); + g_return_val_if_fail (fmt != NULL, 0); + + retval = vsnprintf (str, n, fmt, args); + + if (retval < 0) + { + str[n-1] = '\0'; + retval = strlen (str); + } + + return retval; +#else /* !HAVE_VSNPRINTF */ + gchar *printed; + + g_return_val_if_fail (str != NULL, 0); + g_return_val_if_fail (n > 0, 0); + g_return_val_if_fail (fmt != NULL, 0); + + printed = g_strdup_vprintf (fmt, args); + strncpy (str, printed, n); + str[n-1] = '\0'; + + g_free (printed); + + return strlen (str); +#endif /* !HAVE_VSNPRINTF */ +} + +guint + g_parse_debug_string (const gchar *string, + const GDebugKey *keys, + guint nkeys) +{ + guint i; + guint result = 0; + + g_return_val_if_fail (string != NULL, 0); + + if (!g_ascii_strcasecmp (string, "all")) + { + for (i=0; i<nkeys; i++) + result |= keys[i].value; + } + else + { + const gchar *p = string; + const gchar *q; + gboolean done = FALSE; + + while (*p && !done) + { + q = strchr (p, ':'); + if (!q) + { + q = p + strlen(p); + done = TRUE; + } + + for (i=0; i<nkeys; i++) + if (g_ascii_strncasecmp(keys[i].key, p, q - p) == 0 && + keys[i].key[q - p] == '\0') + result |= keys[i].value; + + p = q + 1; + } + } + + return result; +} + +G_CONST_RETURN gchar* + g_basename (const gchar *file_name) +{ + register gchar *base; + + g_return_val_if_fail (file_name != NULL, NULL); + + base = strrchr (file_name, G_DIR_SEPARATOR); + if (base) + return base + 1; + +#ifdef G_OS_WIN32 + if (g_ascii_isalpha (file_name[0]) && file_name[1] == ':') + return (gchar*) file_name + 2; +#endif /* G_OS_WIN32 */ + + return (gchar*) file_name; +} + +gchar* + g_path_get_basename (const gchar *file_name) +{ + register gssize base; + register gssize last_nonslash; + gsize len; + gchar *retval; + + g_return_val_if_fail (file_name != NULL, NULL); + + if (file_name[0] == '\0') + /* empty string */ + return g_strdup ("."); + + last_nonslash = strlen (file_name) - 1; + + while (last_nonslash >= 0 && file_name [last_nonslash] == G_DIR_SEPARATOR) + last_nonslash--; + + if (last_nonslash == -1) + /* string only containing slashes */ + return g_strdup (G_DIR_SEPARATOR_S); + +#ifdef G_OS_WIN32 + if (last_nonslash == 1 && g_ascii_isalpha (file_name[0]) && file_name[1] == ':') + /* string only containing slashes and a drive */ + return g_strdup (G_DIR_SEPARATOR_S); +#endif /* G_OS_WIN32 */ + + base = last_nonslash; + + while (base >=0 && file_name [base] != G_DIR_SEPARATOR) + base--; + +#ifdef G_OS_WIN32 + if (base == -1 && g_ascii_isalpha (file_name[0]) && file_name[1] == ':') + base = 1; +#endif /* G_OS_WIN32 */ + + len = last_nonslash - base; + retval = g_malloc (len + 1); + memcpy (retval, file_name + base + 1, len); + retval [len] = '\0'; + return retval; +} + +gboolean + g_path_is_absolute (const gchar *file_name) +{ + g_return_val_if_fail (file_name != NULL, FALSE); + + if (file_name[0] == G_DIR_SEPARATOR +#ifdef G_OS_WIN32 + || file_name[0] == '/' +#endif + ) + return TRUE; + +#ifdef G_OS_WIN32 + /* Recognize drive letter on native Windows */ + if (g_ascii_isalpha (file_name[0]) && file_name[1] == ':' && (file_name[2] == G_DIR_SEPARATOR || file_name[2] == '/')) + return TRUE; +#endif /* G_OS_WIN32 */ + + return FALSE; +} + +G_CONST_RETURN gchar* + g_path_skip_root (const gchar *file_name) +{ + g_return_val_if_fail (file_name != NULL, NULL); + +#ifdef G_PLATFORM_WIN32 + /* Skip \\server\share (Win32) or //server/share (Cygwin) */ + if (file_name[0] == G_DIR_SEPARATOR && + file_name[1] == G_DIR_SEPARATOR && + file_name[2]) + { + gchar *p; + + if ((p = strchr (file_name + 2, G_DIR_SEPARATOR)) > file_name + 2 && + p[1]) + { + file_name = p + 1; + + while (file_name[0] && file_name[0] != G_DIR_SEPARATOR) + file_name++; + + /* Possibly skip a backslash after the share name */ + if (file_name[0] == G_DIR_SEPARATOR) + file_name++; + + return (gchar *)file_name; + } + } +#endif + + /* Skip initial slashes */ + if (file_name[0] == G_DIR_SEPARATOR) + { + while (file_name[0] == G_DIR_SEPARATOR) + file_name++; + return (gchar *)file_name; + } + +#ifdef G_OS_WIN32 + /* Skip X:\ */ + if (g_ascii_isalpha (file_name[0]) && file_name[1] == ':' && file_name[2] == G_DIR_SEPARATOR) + return (gchar *)file_name + 3; +#endif + + return NULL; +} + +gchar* + g_path_get_dirname (const gchar *file_name) +{ + register gchar *base; + register gsize len; + + g_return_val_if_fail (file_name != NULL, NULL); + + base = strrchr (file_name, G_DIR_SEPARATOR); + if (!base) + return g_strdup ("."); + while (base > file_name && *base == G_DIR_SEPARATOR) + base--; + len = (guint) 1 + base - file_name; + + base = g_new (gchar, len + 1); + g_memmove (base, file_name, len); + base[len] = 0; + + return base; +} + +gchar* + g_get_current_dir (void) +{ + gchar *buffer = NULL; + gchar *dir = NULL; + static gulong max_len = 0; + + if (max_len == 0) + max_len = (G_PATH_LENGTH == -1) ? 2048 : G_PATH_LENGTH; + + /* We don't use getcwd(3) on SUNOS, because, it does a popen("pwd") + * and, if that wasn't bad enough, hangs in doing so. + */ +#if (defined (sun) && !defined (__SVR4)) || !defined(HAVE_GETCWD) + buffer = g_new (gchar, max_len + 1); + *buffer = 0; + dir = getwd (buffer); +#else /* !sun || !HAVE_GETCWD */ + while (max_len < G_MAXULONG / 2) + { + buffer = g_new (gchar, max_len + 1); + *buffer = 0; + dir = getcwd (buffer, max_len); + + if (dir || errno != ERANGE) + break; + + g_free (buffer); + max_len *= 2; + } +#endif /* !sun || !HAVE_GETCWD */ + + if (!dir || !*buffer) + { + /* hm, should we g_error() out here? + * this can happen if e.g. "./" has mode \0000 + */ + buffer[0] = G_DIR_SEPARATOR; + buffer[1] = 0; + } + + dir = g_strdup (buffer); + g_free (buffer); + + return dir; +} + +G_CONST_RETURN gchar* + g_getenv (const gchar *variable) +{ +#ifndef G_OS_WIN32 + g_return_val_if_fail (variable != NULL, NULL); + + return getenv (variable); +#else + G_LOCK_DEFINE_STATIC (getenv); + struct env_struct + { + gchar *key; + gchar *value; + } *env; + static GArray *environs = NULL; + gchar *system_env; + guint length, i; + gchar dummy[2]; + + g_return_val_if_fail (variable != NULL, NULL); + + G_LOCK (getenv); + + if (!environs) + environs = g_array_new (FALSE, FALSE, sizeof (struct env_struct)); + + /* First we try to find the envinronment variable inside the already + * found ones. + */ + + for (i = 0; i < environs->len; i++) + { + env = &g_array_index (environs, struct env_struct, i); + if (strcmp (env->key, variable) == 0) + { + g_assert (env->value); + G_UNLOCK (getenv); + return env->value; + } + } + + /* If not found, we ask the system */ + + system_env = getenv (variable); + if (!system_env) + { + G_UNLOCK (getenv); + return NULL; + } + + /* On Windows NT, it is relatively typical that environment variables + * contain references to other environment variables. Handle that by + * calling ExpandEnvironmentStrings. + */ + + g_array_set_size (environs, environs->len + 1); + + env = &g_array_index (environs, struct env_struct, environs->len - 1); + + /* First check how much space we need */ + length = ExpandEnvironmentStrings (system_env, dummy, 2); + + /* Then allocate that much, and actualy do the expansion and insert + * the new found pair into our buffer + */ + + env->value = g_malloc (length); + env->key = g_strdup (variable); + + ExpandEnvironmentStrings (system_env, env->value, length); + + G_UNLOCK (getenv); + return env->value; +#endif +} + + +G_LOCK_DEFINE_STATIC (g_utils_global); + +static gchar *g_tmp_dir = NULL; +static gchar *g_user_name = NULL; +static gchar *g_real_name = NULL; +static gchar *g_home_dir = NULL; + +/* HOLDS: g_utils_global_lock */ +static void + g_get_any_init (void) +{ + if (!g_tmp_dir) + { + g_tmp_dir = g_strdup (g_getenv ("TMPDIR")); + if (!g_tmp_dir) + g_tmp_dir = g_strdup (g_getenv ("TMP")); + if (!g_tmp_dir) + g_tmp_dir = g_strdup (g_getenv ("TEMP")); + +#ifdef P_tmpdir + if (!g_tmp_dir) + { + gsize k; + g_tmp_dir = g_strdup (P_tmpdir); + k = strlen (g_tmp_dir); + if (k > 1 && g_tmp_dir[k - 1] == G_DIR_SEPARATOR) + g_tmp_dir[k - 1] = '\0'; + } +#endif + + if (!g_tmp_dir) + { +#ifndef G_OS_WIN32 + g_tmp_dir = g_strdup ("/tmp"); +#else /* G_OS_WIN32 */ + g_tmp_dir = g_strdup ("C:\\"); +#endif /* G_OS_WIN32 */ + } + + if (!g_home_dir) + g_home_dir = g_strdup (g_getenv ("HOME")); + +#ifdef G_OS_WIN32 + /* In case HOME is Unix-style (it happens), convert it to + * Windows style. + */ + if (g_home_dir) + { + gchar *p; + while ((p = strchr (g_home_dir, '/')) != NULL) + *p = '\\'; + } + + if (!g_home_dir) + { + /* USERPROFILE is probably the closest equivalent to $HOME? */ + if (getenv ("USERPROFILE") != NULL) + g_home_dir = g_strdup (g_getenv ("USERPROFILE")); + } + + if (!g_home_dir) + { + /* At least at some time, HOMEDRIVE and HOMEPATH were used + * to point to the home directory, I think. But on Windows + * 2000 HOMEDRIVE seems to be equal to SYSTEMDRIVE, and + * HOMEPATH is its root "\"? + */ + if (getenv ("HOMEDRIVE") != NULL && getenv ("HOMEPATH") != NULL) + { + gchar *homedrive, *homepath; + + homedrive = g_strdup (g_getenv ("HOMEDRIVE")); + homepath = g_strdup (g_getenv ("HOMEPATH")); + + g_home_dir = g_strconcat (homedrive, homepath, NULL); + g_free (homedrive); + g_free (homepath); + } + } +#endif /* G_OS_WIN32 */ + +#ifdef HAVE_PWD_H + { + struct passwd *pw = NULL; + gpointer buffer = NULL; + gint error; + +# if defined (HAVE_POSIX_GETPWUID_R) || defined (HAVE_NONPOSIX_GETPWUID_R) + struct passwd pwd; +# ifdef _SC_GETPW_R_SIZE_MAX + /* This reurns the maximum length */ + glong bufsize = sysconf (_SC_GETPW_R_SIZE_MAX); + + if (bufsize < 0) + bufsize = 64; +# else /* _SC_GETPW_R_SIZE_MAX */ + glong bufsize = 64; +# endif /* _SC_GETPW_R_SIZE_MAX */ + + do + { + g_free (buffer); + buffer = g_malloc (bufsize); + errno = 0; + +# ifdef HAVE_POSIX_GETPWUID_R + error = getpwuid_r (getuid (), &pwd, buffer, bufsize, &pw); + error = error < 0 ? errno : error; +# else /* HAVE_NONPOSIX_GETPWUID_R */ +# ifdef _AIX + error = getpwuid_r (getuid (), &pwd, buffer, bufsize); + pw = error == 0 ? &pwd : NULL; +# else /* !_AIX */ + pw = getpwuid_r (getuid (), &pwd, buffer, bufsize); + error = pw ? 0 : errno; +# endif /* !_AIX */ +# endif /* HAVE_NONPOSIX_GETPWUID_R */ + + if (!pw) + { + /* we bail out prematurely if the user id can't be found + * (should be pretty rare case actually), or if the buffer + * should be sufficiently big and lookups are still not + * successfull. + */ + if (error == 0 || error == ENOENT) + { + g_warning ("getpwuid_r(): failed due to unknown user id (%lu)", + (gulong) getuid ()); + break; + } + if (bufsize > 32 * 1024) + { + g_warning ("getpwuid_r(): failed due to: %s.", + g_strerror (error)); + break; + } + + bufsize *= 2; + } + } + while (!pw); +# endif /* HAVE_POSIX_GETPWUID_R || HAVE_NONPOSIX_GETPWUID_R */ + + if (!pw) + { + setpwent (); + pw = getpwuid (getuid ()); + endpwent (); + } + if (pw) + { + g_user_name = g_strdup (pw->pw_name); + g_real_name = g_strdup (pw->pw_gecos); + if (!g_home_dir) + g_home_dir = g_strdup (pw->pw_dir); + } + g_free (buffer); + } + +#else /* !HAVE_PWD_H */ + +# ifdef G_OS_WIN32 + { + guint len = 17; + gchar buffer[17]; + + if (GetUserName ((LPTSTR) buffer, (LPDWORD) &len)) + { + g_user_name = g_strdup (buffer); + g_real_name = g_strdup (buffer); + } + } +# endif /* G_OS_WIN32 */ + +#endif /* !HAVE_PWD_H */ + +#ifdef __EMX__ + /* change '\\' in %HOME% to '/' */ + g_strdelimit (g_home_dir, "\\",'/'); +#endif + if (!g_user_name) + g_user_name = g_strdup ("somebody"); + if (!g_real_name) + g_real_name = g_strdup ("Unknown"); + else + { + gchar *p; + + for (p = g_real_name; *p; p++) + if (*p == ',') + { + *p = 0; + p = g_strdup (g_real_name); + g_free (g_real_name); + g_real_name = p; + break; + } + } + } +} + +G_CONST_RETURN gchar* + g_get_user_name (void) +{ + G_LOCK (g_utils_global); + if (!g_tmp_dir) + g_get_any_init (); + G_UNLOCK (g_utils_global); + + return g_user_name; +} + +G_CONST_RETURN gchar* + g_get_real_name (void) +{ + G_LOCK (g_utils_global); + if (!g_tmp_dir) + g_get_any_init (); + G_UNLOCK (g_utils_global); + + return g_real_name; +} + +/* Return the home directory of the user. If there is a HOME +* environment variable, its value is returned, otherwise use some +* system-dependent way of finding it out. If no home directory can be +* deduced, return NULL. +*/ + +G_CONST_RETURN gchar* + g_get_home_dir (void) +{ + G_LOCK (g_utils_global); + if (!g_tmp_dir) + g_get_any_init (); + G_UNLOCK (g_utils_global); + + return g_home_dir; +} + +/* Return a directory to be used to store temporary files. This is the +* value of the TMPDIR, TMP or TEMP environment variables (they are +* checked in that order). If none of those exist, use P_tmpdir from +* stdio.h. If that isn't defined, return "/tmp" on POSIXly systems, +* and C:\ on Windows. +*/ + +G_CONST_RETURN gchar* + g_get_tmp_dir (void) +{ + G_LOCK (g_utils_global); + if (!g_tmp_dir) + g_get_any_init (); + G_UNLOCK (g_utils_global); + + return g_tmp_dir; +} + +static gchar *g_prgname = NULL; + +gchar* + g_get_prgname (void) +{ + gchar* retval; + + G_LOCK (g_utils_global); + retval = g_prgname; + G_UNLOCK (g_utils_global); + + return retval; +} + +void + g_set_prgname (const gchar *prgname) +{ + gchar *c; + + G_LOCK (g_utils_global); + c = g_prgname; + g_prgname = g_strdup (prgname); + g_free (c); + G_UNLOCK (g_utils_global); +} + +guint + g_direct_hash (gconstpointer v) +{ + return GPOINTER_TO_UINT (v); +} + +gboolean + g_direct_equal (gconstpointer v1, + gconstpointer v2) +{ + return v1 == v2; +} + +gboolean + g_int_equal (gconstpointer v1, + gconstpointer v2) +{ + return *((const gint*) v1) == *((const gint*) v2); +} + +guint + g_int_hash (gconstpointer v) +{ + return *(const gint*) v; +} + +/** +* g_nullify_pointer: +* @nullify_location: the memory address of the pointer. +* +* Set the pointer at the specified location to %NULL. +**/ +void + g_nullify_pointer (gpointer *nullify_location) +{ + g_return_if_fail (nullify_location != NULL); + + *nullify_location = NULL; +} + +/** +* g_get_codeset: +* +* Get the codeset for the current locale. +* +* Return value: a newly allocated string containing the name +* of the codeset. This string must be freed with g_free(). +**/ +gchar * + g_get_codeset (void) +{ +#ifdef HAVE_CODESET + char *result = nl_langinfo (CODESET); + return g_strdup (result); +#else +#ifdef G_PLATFORM_WIN32 + return g_strdup_printf ("CP%d", GetACP ()); +#else + /* FIXME: Do something more intelligent based on setlocale (LC_CTYPE, NULL) + */ + return g_strdup ("ISO-8859-1"); +#endif +#endif +} + +#ifdef ENABLE_NLS + +#include <libintl.h> + + +#ifdef G_OS_WIN32 + +/* On Windows we don't want any hard-coded path names */ + +#undef GLIB_LOCALE_DIR +/* It's OK to leak the g_win32_get_...() and g_strdup_printf() results +* below, as this macro is called only once. */ +#define GLIB_LOCALE_DIR \ + g_win32_get_package_installation_subdirectory \ + (GETTEXT_PACKAGE, \ + g_strdup_printf ("libglib-%d.%d-%d.dll", \ + GLIB_MAJOR_VERSION, \ + GLIB_MINOR_VERSION, \ + GLIB_MICRO_VERSION - GLIB_BINARY_AGE), \ + "share\\locale") + +#endif /* !G_OS_WIN32 */ + +G_CONST_RETURN gchar * + _glib_gettext (const gchar *str) +{ + static gboolean _glib_gettext_initialized = FALSE; + + if (!_glib_gettext_initialized) + { + bindtextdomain(GETTEXT_PACKAGE, GLIB_LOCALE_DIR); + _glib_gettext_initialized = TRUE; + } + + return dgettext (GETTEXT_PACKAGE, str); +} + +#endif /* ENABLE_NLS */ + + diff --git a/graf2d/win32gdk/gdk/src/glib/gutils.h b/graf2d/win32gdk/gdk/src/glib/gutils.h index 25f9796f8b1..f449483843a 100644 --- a/graf2d/win32gdk/gdk/src/glib/gutils.h +++ b/graf2d/win32gdk/gdk/src/glib/gutils.h @@ -27,7 +27,7 @@ #ifndef __G_UTILS_H__ #define __G_UTILS_H__ -#include <g_types.h> +#include <glib/gtypes.h> #include <stdarg.h> G_BEGIN_DECLS @@ -113,12 +113,12 @@ G_BEGIN_DECLS /* Retrive static string info */ -gchar* g_get_user_name (void); -gchar* g_get_real_name (void); -gchar* g_get_home_dir (void); -gchar* g_get_tmp_dir (void); -gchar* g_get_prgname (void); -void g_set_prgname (const gchar *prgname); +G_CONST_RETURN gchar* g_get_user_name (void); +G_CONST_RETURN gchar* g_get_real_name (void); +G_CONST_RETURN gchar* g_get_home_dir (void); +G_CONST_RETURN gchar* g_get_tmp_dir (void); +gchar* g_get_prgname (void); +void g_set_prgname (const gchar *prgname); typedef struct _GDebugKey GDebugKey; @@ -130,40 +130,51 @@ struct _GDebugKey /* Miscellaneous utility functions */ -guint g_parse_debug_string (const gchar *string, - GDebugKey *keys, - guint nkeys); -gint g_snprintf (gchar *string, - gulong n, - gchar const *format, - ...) G_GNUC_PRINTF (3, 4); -gint g_vsnprintf (gchar *string, - gulong n, - gchar const *format, - va_list args); +guint g_parse_debug_string (const gchar *string, + const GDebugKey *keys, + guint nkeys); + +gint g_snprintf (gchar *string, + gulong n, + gchar const *format, + ...) G_GNUC_PRINTF (3, 4); +gint g_vsnprintf (gchar *string, + gulong n, + gchar const *format, + va_list args); + /* Check if a file name is an absolute path */ -gboolean g_path_is_absolute (const gchar *file_name); +gboolean g_path_is_absolute (const gchar *file_name); + /* In case of absolute paths, skip the root part */ -gchar* g_path_skip_root (gchar *file_name); +G_CONST_RETURN gchar* g_path_skip_root (const gchar *file_name); + +#ifndef G_DISABLE_DEPRECATED /* These two functions are deprecated and will be removed in the next * major release of GLib. Use g_path_get_dirname/g_path_get_basename * instead. Whatch out! The string returned by g_path_get_basename * must be g_freed, while the string returned by g_basename must not.*/ -gchar* g_basename (const gchar *file_name); -gchar* g_dirname (const gchar *file_name); +G_CONST_RETURN gchar* g_basename (const gchar *file_name); +#define g_dirname g_path_get_dirname + +#endif /* G_DISABLE_DEPRECATED */ /* The returned strings are newly allocated with g_malloc() */ -gchar* g_get_current_dir (void); -gchar* g_path_get_basename (const gchar *file_name); -gchar* g_path_get_dirname (const gchar *file_name); +gchar* g_get_current_dir (void); +gchar* g_path_get_basename (const gchar *file_name); +gchar* g_path_get_dirname (const gchar *file_name); + + +/* Set the pointer at the specified location to NULL */ +void g_nullify_pointer (gpointer *nullify_location); /* Get the codeset for the current locale */ /* gchar * g_get_codeset (void); */ /* return the environment string for the variable. The returned memory * must not be freed. */ -gchar* g_getenv (const gchar *variable); +G_CONST_RETURN gchar* g_getenv (const gchar *variable); /* we try to provide a usefull equivalent for ATEXIT if it is @@ -188,11 +199,11 @@ gchar* g_find_program_in_path (const gchar *program); /* Bit tests */ -G_INLINE_FUNC gint g_bit_nth_lsf (guint32 mask, +G_INLINE_FUNC gint g_bit_nth_lsf (gulong mask, gint nth_bit); -G_INLINE_FUNC gint g_bit_nth_msf (guint32 mask, +G_INLINE_FUNC gint g_bit_nth_msf (gulong mask, gint nth_bit); -G_INLINE_FUNC guint g_bit_storage (guint number); +G_INLINE_FUNC guint g_bit_storage (gulong number); /* Trash Stacks * elements need to be >= sizeof (gpointer) @@ -213,35 +224,35 @@ G_INLINE_FUNC guint g_trash_stack_height (GTrashStack **stack_p); */ #if defined (G_CAN_INLINE) || defined (__G_UTILS_C__) G_INLINE_FUNC gint -g_bit_nth_lsf (guint32 mask, - gint nth_bit) +g_bit_nth_lsf (gulong mask, + gint nth_bit) { do { nth_bit++; - if (mask & (1 << (guint) nth_bit)) + if (mask & (1 << (gulong) nth_bit)) return nth_bit; } while (nth_bit < 32); return -1; } G_INLINE_FUNC gint -g_bit_nth_msf (guint32 mask, - gint nth_bit) +g_bit_nth_msf (gulong mask, + gint nth_bit) { if (nth_bit < 0) - nth_bit = 32; + nth_bit = GLIB_SIZEOF_LONG * 8; do { nth_bit--; - if (mask & (1 << (guint) nth_bit)) + if (mask & (1 << (gulong) nth_bit)) return nth_bit; } while (nth_bit > 0); return -1; } G_INLINE_FUNC guint -g_bit_storage (guint number) +g_bit_storage (gulong number) { register guint n_bits = 0; @@ -305,16 +316,6 @@ g_trash_stack_height (GTrashStack **stack_p) * we prefix variable declarations so they can * properly get exported in windows dlls. */ -#ifdef G_OS_WIN32 -# ifdef GLIB_COMPILATION -# define GLIB_VAR __declspec(dllexport) -# else /* !GLIB_COMPILATION */ -# define GLIB_VAR extern __declspec(dllimport) -# endif /* !GLIB_COMPILATION */ -#else /* !G_OS_WIN32 */ -# define GLIB_VAR extern -#endif /* !G_OS_WIN32 */ - GLIB_VAR const guint glib_major_version; GLIB_VAR const guint glib_minor_version; GLIB_VAR const guint glib_micro_version; diff --git a/graf2d/win32gdk/gdk/src/glib/gwin32.c b/graf2d/win32gdk/gdk/src/glib/gwin32.c new file mode 100644 index 00000000000..42e2b5ec606 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/gwin32.c @@ -0,0 +1,837 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1998 Peter Mattis, Spencer Kimball and Josh MacDonald + * Copyright (C) 1998-1999 Tor Lillqvist + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* + * MT safe for the unix part, FIXME: make the win32 part MT safe as well. + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include "glibconfig.h" + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <errno.h> + +#define STRICT /* Strict typing, please */ +#include <windows.h> +#undef STRICT +#ifndef G_WITH_CYGWIN +#include <direct.h> +#endif +#include <errno.h> +#include <ctype.h> +#ifdef _MSC_VER +# include <io.h> +#endif /* _MSC_VER */ + +#include "glib.h" + +#ifdef G_WITH_CYGWIN +#include <sys/cygwin.h> +#endif + +#ifndef G_WITH_CYGWIN + +gint +g_win32_ftruncate (gint fd, + guint size) +{ + HANDLE hfile; + guint curpos; + + g_return_val_if_fail (fd >= 0, -1); + + hfile = (HANDLE) _get_osfhandle (fd); + curpos = SetFilePointer (hfile, 0, NULL, FILE_CURRENT); + if (curpos == 0xFFFFFFFF + || SetFilePointer (hfile, size, NULL, FILE_BEGIN) == 0xFFFFFFFF + || !SetEndOfFile (hfile)) + { + gint error = GetLastError (); + + switch (error) + { + case ERROR_INVALID_HANDLE: + errno = EBADF; + break; + default: + errno = EIO; + break; + } + + return -1; + } + + return 0; +} + +DIR* +g_win32_opendir (const char *dirname) +{ + DIR *result; + gchar *mask; + guint k; + + g_return_val_if_fail (dirname != NULL, NULL); + + result = g_new0 (DIR, 1); + result->find_file_data = g_new0 (WIN32_FIND_DATA, 1); + result->dir_name = g_strdup (dirname); + + k = strlen (result->dir_name); + if (k && result->dir_name[k - 1] == '\\') + { + result->dir_name[k - 1] = '\0'; + } + mask = g_strdup_printf ("%s\\*", result->dir_name); + + result->find_file_handle = (guint) FindFirstFile (mask, + (LPWIN32_FIND_DATA) result->find_file_data); + g_free (mask); + + if (result->find_file_handle == (guint) INVALID_HANDLE_VALUE) + { + int error = GetLastError (); + + g_free (result->dir_name); + g_free (result->find_file_data); + g_free (result); + switch (error) + { + default: + errno = EIO; + return NULL; + } + } + result->just_opened = TRUE; + + return result; +} + +struct dirent* +g_win32_readdir (DIR *dir) +{ + gchar *basename; + + g_return_val_if_fail (dir != NULL, NULL); + + if (dir->just_opened) + dir->just_opened = FALSE; + else + { + if (!FindNextFile ((HANDLE) dir->find_file_handle, + (LPWIN32_FIND_DATA) dir->find_file_data)) + { + int error = GetLastError (); + + switch (error) + { + case ERROR_NO_MORE_FILES: + return NULL; + default: + errno = EIO; + return NULL; + } + } + } + + basename = g_path_get_basename (((LPWIN32_FIND_DATA) dir->find_file_data)->cFileName); + + strcpy (dir->readdir_result.d_name, basename); + + g_free (basename); + + return &dir->readdir_result; +} + +void +g_win32_rewinddir (DIR *dir) +{ + gchar *mask; + + g_return_if_fail (dir != NULL); + + if (!FindClose ((HANDLE) dir->find_file_handle)) + g_warning ("gwin_rewinddir(): FindClose() failed\n"); + + mask = g_strdup_printf ("%s\\*", dir->dir_name); + dir->find_file_handle = (guint) FindFirstFile (mask, + (LPWIN32_FIND_DATA) dir->find_file_data); + g_free (mask); + + if (dir->find_file_handle == (guint) INVALID_HANDLE_VALUE) + { + int error = GetLastError (); + + switch (error) + { + default: + errno = EIO; + return; + } + } + dir->just_opened = TRUE; +} + +gint +g_win32_closedir (DIR *dir) +{ + g_return_val_if_fail (dir != NULL, -1); + + if (!FindClose ((HANDLE) dir->find_file_handle)) + { + int error = GetLastError (); + + switch (error) + { + default: + errno = EIO; return -1; + } + } + + g_free (dir->dir_name); + g_free (dir->find_file_data); + g_free (dir); + + return 0; +} +#endif + +/* msvc 5.0 headers don't have latest language and sublanguage codes */ +#ifndef LANG_ARMENIAN +#define LANG_ARMENIAN 0x2b +#endif +#ifndef LANG_ASSAMESE +#define LANG_ASSAMESE 0x4d +#endif +#ifndef LANG_AZERI +#define LANG_AZERI 0x2c +#endif +#ifndef LANG_BENGALI +#define LANG_BENGALI 0x45 +#endif +#ifndef LANG_GEORGIAN +#define LANG_GEORGIAN 0x37 +#endif +#ifndef LANG_GUJARATI +#define LANG_GUJARATI 0x47 +#endif +#ifndef LANG_HINDI +#define LANG_HINDI 0x39 +#endif +#ifndef LANG_KANNADA +#define LANG_KANNADA 0x4b +#endif +#ifndef LANG_KASHMIRI +#define LANG_KASHMIRI 0x60 +#endif +#ifndef LANG_KAZAK +#define LANG_KAZAK 0x3f +#endif +#ifndef LANG_KONKANI +#define LANG_KONKANI 0x57 +#endif +#ifndef LANG_MACEDONIAN +#define LANG_MACEDONIAN 0x2f +#endif +#ifndef LANG_MALAY +#define LANG_MALAY 0x3e +#endif +#ifndef LANG_MALAYALAM +#define LANG_MALAYALAM 0x4c +#endif +#ifndef LANG_MANIPURI +#define LANG_MANIPURI 0x58 +#endif +#ifndef LANG_MARATHI +#define LANG_MARATHI 0x4e +#endif +#ifndef LANG_NEPALI +#define LANG_NEPALI 0x61 +#endif +#ifndef LANG_ORIYA +#define LANG_ORIYA 0x48 +#endif +#ifndef LANG_PUNJABI +#define LANG_PUNJABI 0x46 +#endif +#ifndef LANG_SANSKRIT +#define LANG_SANSKRIT 0x4f +#endif +#ifndef LANG_SINDHI +#define LANG_SINDHI 0x59 +#endif +#ifndef LANG_SWAHILI +#define LANG_SWAHILI 0x41 +#endif +#ifndef LANG_TAMIL +#define LANG_TAMIL 0x49 +#endif +#ifndef LANG_TATAR +#define LANG_TATAR 0x44 +#endif +#ifndef LANG_TELUGU +#define LANG_TELUGU 0x4a +#endif +#ifndef LANG_URDU +#define LANG_URDU 0x20 +#endif +#ifndef LANG_UZBEK +#define LANG_UZBEK 0x43 +#endif + +#ifndef SUBLANG_CHINESE_MACAU +#define SUBLANG_CHINESE_MACAU 0x05 +#endif +#ifndef SUBLANG_ENGLISH_ZIMBABWE +#define SUBLANG_ENGLISH_ZIMBABWE 0x0c +#endif +#ifndef SUBLANG_ENGLISH_PHILIPPINES +#define SUBLANG_ENGLISH_PHILIPPINES 0x0d +#endif +#ifndef SUBLANG_FRENCH_MONACO +#define SUBLANG_FRENCH_MONACO 0x06 +#endif +#ifndef SUBLANG_KASHMIRI_INDIA +#define SUBLANG_KASHMIRI_INDIA 0x02 +#endif +#ifndef SUBLANG_MALAY_BRUNEI_DARUSSALAM +#define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02 +#endif +#ifndef SUBLANG_NEPALI_INDIA +#define SUBLANG_NEPALI_INDIA 0x02 +#endif +#ifndef SUBLANG_URDU_PAKISTAN +#define SUBLANG_URDU_PAKISTAN 0x01 +#endif +#ifndef SUBLANG_URDU_INDIA +#define SUBLANG_URDU_INDIA 0x02 +#endif +#ifndef SUBLANG_UZBEK_CYRILLIC +#define SUBLANG_UZBEK_CYRILLIC 0x02 +#endif + +/** + * g_win32_getlocale: + * + * The setlocale in the Microsoft C library uses locale names of the + * form "English_United States.1252" etc. We want the Unixish standard + * form "en", "zh_TW" etc. This function gets the current thread + * locale from Windows and returns it as a string of the above form + * for use in forming file names etc. The returned string should be + * deallocated with g_free(). + * + * Returns: allocated locale name + */ + +gchar * +g_win32_getlocale (void) +{ + LCID lcid; + gchar *ev; + gint primary, sub; + gchar *l = NULL, *sl = NULL; + gchar bfr[20]; + + if ((ev = getenv ("LC_ALL")) != NULL + || (ev = getenv ("LC_CTYPE")) != NULL + || (ev = getenv ("LANG")) != NULL) + return g_strdup (ev); + + lcid = GetThreadLocale (); + primary = PRIMARYLANGID (LANGIDFROMLCID (lcid)); + sub = SUBLANGID (LANGIDFROMLCID (lcid)); + switch (primary) + { + case LANG_AFRIKAANS: l = "af"; break; + case LANG_ALBANIAN: l = "sq"; break; + case LANG_ARABIC: + l = "ar"; + switch (sub) + { + case SUBLANG_ARABIC_SAUDI_ARABIA: sl = "SA"; break; + case SUBLANG_ARABIC_IRAQ: sl = "IQ"; break; + case SUBLANG_ARABIC_EGYPT: sl = "EG"; break; + case SUBLANG_ARABIC_LIBYA: sl = "LY"; break; + case SUBLANG_ARABIC_ALGERIA: sl = "DZ"; break; + case SUBLANG_ARABIC_MOROCCO: sl = "MA"; break; + case SUBLANG_ARABIC_TUNISIA: sl = "TN"; break; + case SUBLANG_ARABIC_OMAN: sl = "OM"; break; + case SUBLANG_ARABIC_YEMEN: sl = "YE"; break; + case SUBLANG_ARABIC_SYRIA: sl = "SY"; break; + case SUBLANG_ARABIC_JORDAN: sl = "JO"; break; + case SUBLANG_ARABIC_LEBANON: sl = "LB"; break; + case SUBLANG_ARABIC_KUWAIT: sl = "KW"; break; + case SUBLANG_ARABIC_UAE: sl = "AE"; break; + case SUBLANG_ARABIC_BAHRAIN: sl = "BH"; break; + case SUBLANG_ARABIC_QATAR: sl = "QA"; break; + } + break; + case LANG_ARMENIAN: l = "hy"; break; + case LANG_ASSAMESE: l = "as"; break; + case LANG_AZERI: l = "az"; break; + case LANG_BASQUE: l = "eu"; break; + case LANG_BELARUSIAN: l = "be"; break; + case LANG_BENGALI: l = "bn"; break; + case LANG_BULGARIAN: l = "bg"; break; + case LANG_CATALAN: l = "ca"; break; + case LANG_CHINESE: + l = "zh"; + switch (sub) + { + case SUBLANG_CHINESE_TRADITIONAL: sl = "TW"; break; + case SUBLANG_CHINESE_SIMPLIFIED: sl = "CH"; break; + case SUBLANG_CHINESE_HONGKONG: sl = "HK"; break; + case SUBLANG_CHINESE_SINGAPORE: sl = "SG"; break; + case SUBLANG_CHINESE_MACAU: sl = "MO"; break; + } + break; + case LANG_CROATIAN: /* LANG_CROATIAN == LANG_SERBIAN + * What used to be called Serbo-Croatian + * should really now be two separate + * languages because of political reasons. + * (Says tml, who knows nothing about Serbian + * or Croatian.) + * (I can feel those flames coming already.) + */ + switch (sub) + { + case SUBLANG_SERBIAN_LATIN: l = "sp"; break; + case SUBLANG_SERBIAN_CYRILLIC: l = "sr"; break; + default: l = "hr"; /* ??? */ + } + break; + case LANG_CZECH: l = "cs"; break; + case LANG_DANISH: l = "da"; break; + case LANG_DUTCH: + l = "nl"; + switch (sub) + { + case SUBLANG_DUTCH_BELGIAN: sl = "BE"; break; + } + break; + case LANG_ENGLISH: + l = "en"; + switch (sub) + { + /* SUBLANG_ENGLISH_US == SUBLANG_DEFAULT. Heh. I thought + * English was the language spoken in England. + * Oh well. + */ + case SUBLANG_ENGLISH_UK: sl = "GB"; break; + case SUBLANG_ENGLISH_AUS: sl = "AU"; break; + case SUBLANG_ENGLISH_CAN: sl = "CA"; break; + case SUBLANG_ENGLISH_NZ: sl = "NZ"; break; + case SUBLANG_ENGLISH_EIRE: sl = "IE"; break; + case SUBLANG_ENGLISH_SOUTH_AFRICA: sl = "ZA"; break; + case SUBLANG_ENGLISH_JAMAICA: sl = "JM"; break; + case SUBLANG_ENGLISH_CARIBBEAN: sl = "@caribbean"; break; /* ??? */ + case SUBLANG_ENGLISH_BELIZE: sl = "BZ"; break; + case SUBLANG_ENGLISH_TRINIDAD: sl = "TT"; break; + case SUBLANG_ENGLISH_ZIMBABWE: sl = "ZW"; break; + case SUBLANG_ENGLISH_PHILIPPINES: sl = "PH"; break; + } + break; + case LANG_ESTONIAN: l = "et"; break; + case LANG_FAEROESE: l = "fo"; break; + case LANG_FARSI: l = "fa"; break; + case LANG_FINNISH: l = "fi"; break; + case LANG_FRENCH: + l = "fr"; + switch (sub) + { + case SUBLANG_FRENCH_BELGIAN: sl = "BE"; break; + case SUBLANG_FRENCH_CANADIAN: sl = "CA"; break; + case SUBLANG_FRENCH_SWISS: sl = "CH"; break; + case SUBLANG_FRENCH_LUXEMBOURG: sl = "LU"; break; + case SUBLANG_FRENCH_MONACO: sl = "MC"; break; + } + break; + case LANG_GEORGIAN: l = "ka"; break; + case LANG_GERMAN: + l = "de"; + switch (sub) + { + case SUBLANG_GERMAN_SWISS: sl = "CH"; break; + case SUBLANG_GERMAN_AUSTRIAN: sl = "AT"; break; + case SUBLANG_GERMAN_LUXEMBOURG: sl = "LU"; break; + case SUBLANG_GERMAN_LIECHTENSTEIN: sl = "LI"; break; + } + break; + case LANG_GREEK: l = "el"; break; + case LANG_GUJARATI: l = "gu"; break; + case LANG_HEBREW: l = "he"; break; + case LANG_HINDI: l = "hi"; break; + case LANG_HUNGARIAN: l = "hu"; break; + case LANG_ICELANDIC: l = "is"; break; + case LANG_INDONESIAN: l = "id"; break; + case LANG_ITALIAN: + l = "it"; + switch (sub) + { + case SUBLANG_ITALIAN_SWISS: sl = "CH"; break; + } + break; + case LANG_JAPANESE: l = "ja"; break; + case LANG_KANNADA: l = "kn"; break; + case LANG_KASHMIRI: + l = "ks"; + switch (sub) + { + case SUBLANG_KASHMIRI_INDIA: sl = "IN"; break; + } + break; + case LANG_KAZAK: l = "kk"; break; + case LANG_KONKANI: l = "kok"; break; /* ??? */ + case LANG_KOREAN: l = "ko"; break; + case LANG_LATVIAN: l = "lv"; break; + case LANG_LITHUANIAN: l = "lt"; break; + case LANG_MACEDONIAN: l = "mk"; break; + case LANG_MALAY: + l = "ms"; + switch (sub) + { + case SUBLANG_MALAY_BRUNEI_DARUSSALAM: sl = "BN"; break; + } + break; + case LANG_MALAYALAM: l = "ml"; break; + case LANG_MANIPURI: l = "mni"; break; + case LANG_MARATHI: l = "mr"; break; + case LANG_NEPALI: + l = "ne"; + switch (sub) + { + case SUBLANG_NEPALI_INDIA: sl = "IN"; break; + } + break; + case LANG_NORWEGIAN: + l = "no"; + switch (sub) + { + /* SUBLANG_NORWEGIAN_BOKMAL == SUBLANG_DEFAULT */ + case SUBLANG_NORWEGIAN_NYNORSK: l = "nn"; break; + } + break; + case LANG_ORIYA: l = "or"; break; + case LANG_POLISH: l = "pl"; break; + case LANG_PORTUGUESE: + l = "pt"; + switch (sub) + { + /* Hmm. SUBLANG_PORTUGUESE_BRAZILIAN == SUBLANG_DEFAULT */ + case SUBLANG_PORTUGUESE_BRAZILIAN: sl = "BR"; break; + } + break; + case LANG_PUNJABI: l = "pa"; break; + case LANG_ROMANIAN: l = "ro"; break; + case LANG_RUSSIAN: l = "ru"; break; + case LANG_SANSKRIT: l = "sa"; break; + case LANG_SINDHI: l = "sd"; break; + case LANG_SLOVAK: l = "sk"; break; + case LANG_SLOVENIAN: l = "sl"; break; + case LANG_SPANISH: + l = "es"; + switch (sub) + { + case SUBLANG_SPANISH_MEXICAN: sl = "MX"; break; + case SUBLANG_SPANISH_MODERN: sl = "@modern"; break; /* ??? */ + case SUBLANG_SPANISH_GUATEMALA: sl = "GT"; break; + case SUBLANG_SPANISH_COSTA_RICA: sl = "CR"; break; + case SUBLANG_SPANISH_PANAMA: sl = "PA"; break; + case SUBLANG_SPANISH_DOMINICAN_REPUBLIC: sl = "DO"; break; + case SUBLANG_SPANISH_VENEZUELA: sl = "VE"; break; + case SUBLANG_SPANISH_COLOMBIA: sl = "CO"; break; + case SUBLANG_SPANISH_PERU: sl = "PE"; break; + case SUBLANG_SPANISH_ARGENTINA: sl = "AR"; break; + case SUBLANG_SPANISH_ECUADOR: sl = "EC"; break; + case SUBLANG_SPANISH_CHILE: sl = "CL"; break; + case SUBLANG_SPANISH_URUGUAY: sl = "UY"; break; + case SUBLANG_SPANISH_PARAGUAY: sl = "PY"; break; + case SUBLANG_SPANISH_BOLIVIA: sl = "BO"; break; + case SUBLANG_SPANISH_EL_SALVADOR: sl = "SV"; break; + case SUBLANG_SPANISH_HONDURAS: sl = "HN"; break; + case SUBLANG_SPANISH_NICARAGUA: sl = "NI"; break; + case SUBLANG_SPANISH_PUERTO_RICO: sl = "PR"; break; + } + break; + case LANG_SWAHILI: l = "sw"; break; + case LANG_SWEDISH: + l = "sv"; + switch (sub) + { + case SUBLANG_SWEDISH_FINLAND: sl = "FI"; break; + } + break; + case LANG_TAMIL: l = "ta"; break; + case LANG_TATAR: l = "tt"; break; + case LANG_TELUGU: l = "te"; break; + case LANG_THAI: l = "th"; break; + case LANG_TURKISH: l = "tr"; break; + case LANG_UKRAINIAN: l = "uk"; break; + case LANG_URDU: + l = "ur"; + switch (sub) + { + case SUBLANG_URDU_PAKISTAN: sl = "PK"; break; + case SUBLANG_URDU_INDIA: sl = "IN"; break; + } + break; + case LANG_UZBEK: + l = "uz"; + switch (sub) + { + case SUBLANG_UZBEK_CYRILLIC: sl = "@cyrillic"; break; + } + break; + case LANG_VIETNAMESE: l = "vi"; break; + default: l = "xx"; break; + } + strcpy (bfr, l); + if (sl != NULL) + { + if (sl[0] != '@') + strcat (bfr, "_"); + strcat (bfr, sl); + } + + return g_strdup (bfr); +} + +/** + * g_win32_error_message: + * @error: error code + * + * Translate a Win32 error code (as returned by GetLastError()) into + * the corresponding message. The message is either language neutral, + * or in the thread's language, or the user's language, the system's + * langauge, or US English (see docs for FormatMessage). The returned + * string should be deallocated with g_free(). + * + * Returns: allocated error message + */ +gchar * +g_win32_error_message (gint error) +{ + gchar *msg; + gchar *retval; + int nbytes; + + FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER + |FORMAT_MESSAGE_IGNORE_INSERTS + |FORMAT_MESSAGE_FROM_SYSTEM, + NULL, error, 0, + (LPTSTR) &msg, 0, NULL); + nbytes = strlen (msg); + + if (nbytes > 2 && msg[nbytes-1] == '\n' && msg[nbytes-2] == '\r') + msg[nbytes-2] = '\0'; + + retval = g_strdup (msg); + + if (msg != NULL) + LocalFree (msg); + + return retval; +} + +static gchar * +get_package_directory_from_module (gchar *module_name) +{ + static GHashTable *module_dirs = NULL; + HMODULE hmodule = NULL; + gchar *fn; + gchar *p; + gchar *result; + + if (module_dirs == NULL) + module_dirs = g_hash_table_new (g_str_hash, g_str_equal); + + result = g_hash_table_lookup (module_dirs, module_name ? module_name : ""); + + if (result) + return g_strdup (result); + + if (module_name) + { + hmodule = GetModuleHandle (module_name); + if (!hmodule) + return NULL; + } + + fn = g_malloc (MAX_PATH); + if (!GetModuleFileName (hmodule, fn, MAX_PATH)) + return NULL; + +#ifdef G_WITH_CYGWIN + /* In Cygwin we need to have POSIX paths */ + { + gchar tmp[MAX_PATH]; + + cygwin_conv_to_posix_path(fn, tmp); + g_free(fn); + fn = g_strdup(tmp); + } +#endif + + if ((p = strrchr (fn, G_DIR_SEPARATOR)) != NULL) + *p = '\0'; + + p = strrchr (fn, G_DIR_SEPARATOR); + if (p && (g_ascii_strcasecmp (p + 1, "bin") == 0 || + g_ascii_strcasecmp (p + 1, "lib") == 0)) + *p = '\0'; + + g_hash_table_insert (module_dirs, module_name ? module_name : "", fn); + + return g_strdup (fn); +} + +/** + * g_win32_get_package_installation_directory: + * @package: An identifier for a software package, or NULL + * @dll_name: The name of a DLL that a package provides, or NULL + * + * Try to determine the installation directory for a software package. + * Typically used by GNU software packages. + * + * @package should be a short identifier for the package. Typically it + * is the same identifier as used for GETTEXT_PACKAGE in software + * configured accoring to GNU standards. The function first looks in + * the Windows Registry for the value #InstallationDirectory in the + * key #HKLM\Software\@package, and if that value exists and is a + * string, returns that. + * + * If @package is NULL, or the above value isn't found in the + * Registry, but @dll_name is non-NULL, it should name a DLL loaded + * into the current process. Typically that would be the name of the + * DLL calling this function, looking for its installation + * directory. The function then asks Windows what directory that DLL + * was loaded from. If that directory's last component is "bin" or + * "lib", the parent directory is returned, otherwise the directory + * itself. If that DLL isn't loaded, the function proceeds as if + * @dll_name was NULL. + * + * If both @package and @dll_name are NULL, the directory from where + * the main executable of the process was loaded is uses instead in + * the same way as above. + * + * The return value should be freed with g_free() when not needed any longer. */ + +gchar * +g_win32_get_package_installation_directory (gchar *package, + gchar *dll_name) +{ + static GHashTable *package_dirs = NULL; + gchar *result = NULL; + gchar *key; + HKEY reg_key = NULL; + DWORD type; + DWORD nbytes; + + if (package != NULL) + { + if (package_dirs == NULL) + package_dirs = g_hash_table_new (g_str_hash, g_str_equal); + + result = g_hash_table_lookup (package_dirs, package); + + if (result && result[0]) + return g_strdup (result); + + key = g_strconcat ("Software\\", package, NULL); + + nbytes = 0; + if ((RegOpenKeyEx (HKEY_CURRENT_USER, key, 0, + KEY_QUERY_VALUE, ®_key) == ERROR_SUCCESS + && RegQueryValueEx (reg_key, "InstallationDirectory", 0, + &type, NULL, &nbytes) == ERROR_SUCCESS) + || + ((RegOpenKeyEx (HKEY_LOCAL_MACHINE, key, 0, + KEY_QUERY_VALUE, ®_key) == ERROR_SUCCESS + && RegQueryValueEx (reg_key, "InstallationDirectory", 0, + &type, NULL, &nbytes) == ERROR_SUCCESS) + && type == REG_SZ)) + { + result = g_malloc (nbytes + 1); + RegQueryValueEx (reg_key, "InstallationDirectory", 0, + &type, result, &nbytes); + result[nbytes] = '\0'; + } + + if (reg_key != NULL) + RegCloseKey (reg_key); + + g_free (key); + + } + if (result) + { + g_hash_table_insert (package_dirs, package, result); + return g_strdup (result); + } + + if (dll_name != NULL) + result = get_package_directory_from_module (dll_name); + + if (result == NULL) + result = get_package_directory_from_module (NULL); + + return result; +} + +/** + * g_win32_get_package_installation_subdirectory: + * @package: An identifier for a software package, or NULL + * @dll_name: The name of a DLL that a package provides, or NULL + * @subdir: A subdirectory of the package installation directory. + * + * Returns a string containg the path of the subdirectory @subdir in + * the return value from calling + * g_win32_get_package_installation_directory() with the @package and + * @dll_name parameters. The return value should be freed with + * g_free() when no longer needed. + */ + +gchar * +g_win32_get_package_installation_subdirectory (gchar *package, + gchar *dll_name, + gchar *subdir) +{ + gchar *prefix; + gchar *sep; + + prefix = g_win32_get_package_installation_directory (package, dll_name); + + sep = (prefix[strlen (prefix) - 1] == G_DIR_SEPARATOR ? + "" : G_DIR_SEPARATOR_S); + + return g_strconcat (prefix, sep, subdir, NULL); +} diff --git a/graf2d/win32gdk/gdk/src/glib/gwin32.h b/graf2d/win32gdk/gdk/src/glib/gwin32.h index 2fb7e04556f..a71d774481d 100644 --- a/graf2d/win32gdk/gdk/src/glib/gwin32.h +++ b/graf2d/win32gdk/gdk/src/glib/gwin32.h @@ -27,21 +27,25 @@ #ifndef __G_WIN32_H__ #define __G_WIN32_H__ -#include <g_types.h> +#include <glib/gtypes.h> -#ifdef G_OS_WIN32 +#ifdef G_PLATFORM_WIN32 /* Windows emulation stubs for common Unix functions */ G_BEGIN_DECLS +#ifndef MAXPATHLEN #define MAXPATHLEN 1024 +#endif #ifdef _MSC_VER typedef int pid_t; #endif +#ifdef G_OS_WIN32 + /* * To get prototypes for the following POSIXish functions, you have to * include the indicated non-POSIX headers. The functions are defined @@ -89,29 +93,38 @@ struct DIR typedef struct DIR DIR; /* emulation functions */ -extern int g_win32_ftruncate (gint f, +gint g_win32_ftruncate (gint f, guint size); DIR* g_win32_opendir (const gchar *dirname); struct dirent* g_win32_readdir (DIR *dir); void g_win32_rewinddir (DIR *dir); gint g_win32_closedir (DIR *dir); +#endif /* G_OS_WIN32 */ + /* The MS setlocale uses locale names of the form "English_United * States.1252" etc. We want the Unixish standard form "en", "zh_TW" * etc. This function gets the current thread locale from Windows and * returns it as a string of the above form for use in forming file * names etc. The returned string should be deallocated with g_free(). */ -gchar * g_win32_getlocale (void); +gchar* g_win32_getlocale (void); /* Translate a Win32 error code (as returned by GetLastError()) into * the corresponding message. The returned string should be deallocated * with g_free(). */ -gchar * g_win32_error_message (gint error); +gchar* g_win32_error_message (gint error); + +gchar* g_win32_get_package_installation_directory (gchar *package, + gchar *dll_name); + +gchar* g_win32_get_package_installation_subdirectory (gchar *package, + gchar *dll_name, + gchar *subdir); G_END_DECLS -#endif /* G_OS_WIN32 */ +#endif /* G_PLATFORM_WIN32 */ #endif /* __G_WIN32_H__ */ diff --git a/graf2d/win32gdk/gdk/src/glib/makefile.msc b/graf2d/win32gdk/gdk/src/glib/makefile.msc new file mode 100644 index 00000000000..69e46b80d49 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/glib/makefile.msc @@ -0,0 +1,133 @@ +## Makefile for building the glib dlls with Microsoft C +## Use: nmake -f makefile.msc + +## +## Adapted for the ROOT project +## + +################################################################ + +# +# Figure out if we are going to debug qualifiers or not +# + +!IFNDEF DEBUG +# Full optimization: +OPTIMIZE = -O2 -MD +!ELSE +# Debugging: +OPTIMIZE = -Z7 -MDd +LINKDEBUG = /debug +!ENDIF + +# +# Override all options if something is passed in from outside (i.e. the ROOT build system) +# + +# cl -? describes the options +#CC = cl -G5 -GF $(OPTIMIZE) -W3 -nologo +!if "$(NMCXXFLAGS)" == "" +CC = cl -GR $(OPTIMIZE) -W3 -nologo +!else +CC = cl -nologo $(NMCXXFLAGS) +!endif + +LDFLAGS = /link $(LINKDEBUG) + +GLIB_VER=1.3 + +# Check if nmake version is 8.xx or 9.xx +!if ([nmake /? 2>&1 | findstr /c:"Version 8\." > nul ] == 0) || \ + ([nmake /? 2>&1 | findstr /c:"Version 9\." > nul ] == 0) +MT_DLL = mt -nologo -manifest $@.manifest -outputresource:$@;2 +CLEAN_MT = -@erase /q $@.manifest >nul 2>&1 +!else +MT_DLL = +CLEAN_MT = +!endif + +CFLAGS = -I. -I.. -I..\iconv -I..\.. -DG_LOG_DOMAIN=g_log_domain_glib -DG_ENABLE_DEBUG -DGLIB_COMPILATION -DHAVE_CONFIG_H -DUSE_LIBICONV +# You could add this if you wanted... -DG_ENABLE_DEBUG +###################### + +all : \ + config.h \ + glibconfig.h \ + glib-$(GLIB_VER).dll \ + +glib_OBJECTS = \ + garray.obj \ + gasyncqueue.obj \ + gbacktrace.obj \ + gcache.obj \ + gcompletion.obj \ + gconvert.obj \ + gdataset.obj \ + gdate.obj \ + gerror.obj \ + gfileutils.obj \ + ghash.obj \ + ghook.obj \ + giochannel.obj \ + giowin32.obj \ + glist.obj \ + gmain.obj \ + gmarkup.obj \ + gmem.obj \ + gmessages.obj \ + gnode.obj \ + gprimes.obj \ + gqsort.obj \ + gqueue.obj \ + gpattern.obj \ + grand.obj \ + grel.obj \ + gscanner.obj \ + gshell.obj \ + gslist.obj \ + gspawn-win32.obj \ + gstrfuncs.obj \ + gstring.obj \ + gbsearcharray.obj \ + gthread.obj \ + gthreadpool.obj \ + gtimer.obj \ + gtree.obj \ + gunibreak.obj \ + gunicollate.obj \ + gunidecomp.obj \ + guniprop.obj \ + gutf8.obj \ + gutils.obj \ + gwin32.obj + +glibconfig.h: glibconfig.h.win32 + copy glibconfig.h.win32 glibconfig.h + +config.h: config.h.win32 + copy config.h.win32 config.h + +################ glib + +glib-$(GLIB_VER).dll : $(glib_OBJECTS) glib.def + cd + $(CC) $(CFLAGS) -LD -Feglib-$(GLIB_VER).dll $(glib_OBJECTS) $(LIBICONV_LIBS) $(INTL_LIBS) user32.lib advapi32.lib wsock32.lib $(LDFLAGS) ..\iconv\iconv-1.3.lib /def:glib.def + $(MT_DLL) + $(CLEAN_MT) + +.c.obj : + $(CC) $(CFLAGS) -c -DGDK_COMPILATION -DG_LOG_DOMAIN=\"Gdk\" $< + +################ other stuff + +clean:: + del config.h + del glibconfig.h + -@erase /q *.dll >nul 2>&1 + -@erase /q *.obj >nul 2>&1 + -@erase /q *.lib >nul 2>&1 + -@erase /q *.err >nul 2>&1 + -@erase /q *.res >nul 2>&1 + -@erase /q *.exp >nul 2>&1 + -@erase /q *.pdb >nul 2>&1 + -@erase /q *.ilk >nul 2>&1 \ No newline at end of file diff --git a/graf2d/win32gdk/gdk/src/iconv/aliases.h b/graf2d/win32gdk/gdk/src/iconv/aliases.h new file mode 100644 index 00000000000..f9cc41df1e0 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/aliases.h @@ -0,0 +1,1714 @@ +/* ANSI-C code produced by gperf version 3.0.4 */ +/* Command-line: gperf -m 10 lib/aliases.gperf */ +/* Computed positions: -k'1,3-11,$' */ + +#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ + && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ + && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ + && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ + && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ + && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ + && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ + && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ + && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ + && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ + && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ + && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ + && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ + && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ + && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ + && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ + && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ + && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ + && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ + && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ + && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ + && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ + && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) +/* The character set is not based on ISO-646. */ +#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>." +#endif + +#line 1 "lib/aliases.gperf" +struct alias { int name; unsigned int encoding_index; }; + +#define TOTAL_KEYWORDS 346 +#define MIN_WORD_LENGTH 2 +#define MAX_WORD_LENGTH 45 +#define MIN_HASH_VALUE 7 +#define MAX_HASH_VALUE 935 +/* maximum key range = 929, duplicates = 0 */ + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static unsigned int +aliases_hash (register const char *str, register unsigned int len) +{ + static const unsigned short asso_values[] = + { + 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, + 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, + 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, + 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, + 936, 936, 936, 936, 936, 16, 62, 936, 73, 0, + 5, 2, 47, 4, 1, 168, 8, 12, 357, 936, + 936, 936, 936, 936, 936, 112, 123, 3, 14, 34, + 71, 142, 147, 0, 258, 79, 39, 122, 4, 0, + 109, 936, 76, 1, 54, 147, 114, 180, 102, 3, + 10, 936, 936, 936, 936, 34, 936, 936, 936, 936, + 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, + 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, + 936, 936, 936, 936, 936, 936, 936, 936 + }; + register int hval = len; + + switch (hval) + { + default: + hval += asso_values[(unsigned char)str[10]]; + /*FALLTHROUGH*/ + case 10: + hval += asso_values[(unsigned char)str[9]]; + /*FALLTHROUGH*/ + case 9: + hval += asso_values[(unsigned char)str[8]]; + /*FALLTHROUGH*/ + case 8: + hval += asso_values[(unsigned char)str[7]]; + /*FALLTHROUGH*/ + case 7: + hval += asso_values[(unsigned char)str[6]]; + /*FALLTHROUGH*/ + case 6: + hval += asso_values[(unsigned char)str[5]]; + /*FALLTHROUGH*/ + case 5: + hval += asso_values[(unsigned char)str[4]]; + /*FALLTHROUGH*/ + case 4: + hval += asso_values[(unsigned char)str[3]]; + /*FALLTHROUGH*/ + case 3: + hval += asso_values[(unsigned char)str[2]]; + /*FALLTHROUGH*/ + case 2: + case 1: + hval += asso_values[(unsigned char)str[0]]; + break; + } + return hval + asso_values[(unsigned char)str[len - 1]]; +} + +struct stringpool_t + { + char stringpool_str7[sizeof("SJIS")]; + char stringpool_str9[sizeof("CN")]; + char stringpool_str11[sizeof("CP1131")]; + char stringpool_str12[sizeof("CP1361")]; + char stringpool_str13[sizeof("866")]; + char stringpool_str15[sizeof("CP1133")]; + char stringpool_str18[sizeof("CP1251")]; + char stringpool_str19[sizeof("CP866")]; + char stringpool_str20[sizeof("CP1256")]; + char stringpool_str21[sizeof("862")]; + char stringpool_str22[sizeof("CP1253")]; + char stringpool_str24[sizeof("CP936")]; + char stringpool_str26[sizeof("CP1255")]; + char stringpool_str27[sizeof("CP862")]; + char stringpool_str28[sizeof("CP1252")]; + char stringpool_str30[sizeof("C99")]; + char stringpool_str32[sizeof("CP932")]; + char stringpool_str34[sizeof("CP1258")]; + char stringpool_str40[sizeof("CP819")]; + char stringpool_str41[sizeof("L1")]; + char stringpool_str42[sizeof("L6")]; + char stringpool_str43[sizeof("L3")]; + char stringpool_str45[sizeof("L5")]; + char stringpool_str46[sizeof("L2")]; + char stringpool_str49[sizeof("L8")]; + char stringpool_str53[sizeof("EUCCN")]; + char stringpool_str57[sizeof("ISO8859-1")]; + char stringpool_str58[sizeof("ISO8859-11")]; + char stringpool_str59[sizeof("ISO8859-6")]; + char stringpool_str60[sizeof("ISO8859-16")]; + char stringpool_str61[sizeof("ISO8859-3")]; + char stringpool_str62[sizeof("ISO8859-13")]; + char stringpool_str65[sizeof("ISO8859-5")]; + char stringpool_str66[sizeof("ISO8859-15")]; + char stringpool_str67[sizeof("ISO8859-2")]; + char stringpool_str70[sizeof("EUC-CN")]; + char stringpool_str73[sizeof("ISO8859-8")]; + char stringpool_str74[sizeof("ISO-8859-1")]; + char stringpool_str75[sizeof("ISO-8859-11")]; + char stringpool_str76[sizeof("ISO-8859-6")]; + char stringpool_str77[sizeof("ISO-8859-16")]; + char stringpool_str78[sizeof("ISO-8859-3")]; + char stringpool_str79[sizeof("ISO-8859-13")]; + char stringpool_str81[sizeof("ISO8859-9")]; + char stringpool_str82[sizeof("ISO-8859-5")]; + char stringpool_str83[sizeof("ISO-8859-15")]; + char stringpool_str84[sizeof("ISO-8859-2")]; + char stringpool_str85[sizeof("ISO646-CN")]; + char stringpool_str86[sizeof("R8")]; + char stringpool_str88[sizeof("L4")]; + char stringpool_str90[sizeof("ISO-8859-8")]; + char stringpool_str91[sizeof("CP949")]; + char stringpool_str92[sizeof("ISO_8859-1")]; + char stringpool_str93[sizeof("ISO_8859-11")]; + char stringpool_str94[sizeof("ISO_8859-6")]; + char stringpool_str95[sizeof("ISO_8859-16")]; + char stringpool_str96[sizeof("ISO_8859-3")]; + char stringpool_str97[sizeof("ISO_8859-13")]; + char stringpool_str98[sizeof("ISO-8859-9")]; + char stringpool_str99[sizeof("ISO_8859-16:2001")]; + char stringpool_str100[sizeof("ISO_8859-5")]; + char stringpool_str101[sizeof("ISO_8859-15")]; + char stringpool_str102[sizeof("ISO_8859-2")]; + char stringpool_str103[sizeof("LATIN1")]; + char stringpool_str105[sizeof("LATIN6")]; + char stringpool_str106[sizeof("CP154")]; + char stringpool_str107[sizeof("LATIN3")]; + char stringpool_str108[sizeof("ISO_8859-8")]; + char stringpool_str110[sizeof("ISO_8859-15:1998")]; + char stringpool_str111[sizeof("LATIN5")]; + char stringpool_str112[sizeof("CP1254")]; + char stringpool_str113[sizeof("LATIN2")]; + char stringpool_str114[sizeof("CSISO2022CN")]; + char stringpool_str116[sizeof("ISO_8859-9")]; + char stringpool_str117[sizeof("CHINESE")]; + char stringpool_str118[sizeof("ISO-IR-6")]; + char stringpool_str119[sizeof("LATIN8")]; + char stringpool_str120[sizeof("ASCII")]; + char stringpool_str121[sizeof("ISO-IR-166")]; + char stringpool_str122[sizeof("X0212")]; + char stringpool_str124[sizeof("VISCII")]; + char stringpool_str125[sizeof("ISO-IR-126")]; + char stringpool_str126[sizeof("CSASCII")]; + char stringpool_str127[sizeof("ISO-IR-165")]; + char stringpool_str129[sizeof("CSVISCII")]; + char stringpool_str130[sizeof("ISO-IR-226")]; + char stringpool_str131[sizeof("MAC")]; + char stringpool_str136[sizeof("ISO-IR-138")]; + char stringpool_str137[sizeof("ISO-IR-58")]; + char stringpool_str139[sizeof("IBM866")]; + char stringpool_str142[sizeof("ISO-2022-CN")]; + char stringpool_str143[sizeof("MS936")]; + char stringpool_str144[sizeof("LATIN-9")]; + char stringpool_str146[sizeof("ISO-IR-159")]; + char stringpool_str147[sizeof("IBM862")]; + char stringpool_str150[sizeof("US")]; + char stringpool_str151[sizeof("ISO8859-4")]; + char stringpool_str152[sizeof("ISO8859-14")]; + char stringpool_str153[sizeof("ISO_8859-14:1998")]; + char stringpool_str154[sizeof("ISO-IR-199")]; + char stringpool_str156[sizeof("UHC")]; + char stringpool_str157[sizeof("850")]; + char stringpool_str159[sizeof("HZ")]; + char stringpool_str160[sizeof("IBM819")]; + char stringpool_str162[sizeof("ISO-CELTIC")]; + char stringpool_str163[sizeof("ELOT_928")]; + char stringpool_str164[sizeof("CP1250")]; + char stringpool_str165[sizeof("GB2312")]; + char stringpool_str166[sizeof("CP850")]; + char stringpool_str168[sizeof("ISO-8859-4")]; + char stringpool_str169[sizeof("ISO-8859-14")]; + char stringpool_str170[sizeof("CP950")]; + char stringpool_str171[sizeof("CYRILLIC")]; + char stringpool_str176[sizeof("ISO_8859-10:1992")]; + char stringpool_str179[sizeof("UCS-2")]; + char stringpool_str180[sizeof("TCVN")]; + char stringpool_str181[sizeof("ISO-IR-148")]; + char stringpool_str185[sizeof("X0201")]; + char stringpool_str186[sizeof("ISO_8859-4")]; + char stringpool_str187[sizeof("ISO_8859-14")]; + char stringpool_str188[sizeof("L10")]; + char stringpool_str189[sizeof("ISO-IR-149")]; + char stringpool_str191[sizeof("ISO-IR-101")]; + char stringpool_str196[sizeof("ISO-2022-CN-EXT")]; + char stringpool_str197[sizeof("LATIN4")]; + char stringpool_str200[sizeof("ISO-IR-203")]; + char stringpool_str201[sizeof("X0208")]; + char stringpool_str202[sizeof("KSC_5601")]; + char stringpool_str204[sizeof("ISO8859-10")]; + char stringpool_str207[sizeof("VISCII1.1-1")]; + char stringpool_str209[sizeof("L7")]; + char stringpool_str211[sizeof("ISO-IR-14")]; + char stringpool_str212[sizeof("PT154")]; + char stringpool_str213[sizeof("TIS620")]; + char stringpool_str215[sizeof("ISO-IR-109")]; + char stringpool_str216[sizeof("CSUNICODE11")]; + char stringpool_str217[sizeof("KOI8-T")]; + char stringpool_str218[sizeof("RK1048")]; + char stringpool_str221[sizeof("ISO-8859-10")]; + char stringpool_str222[sizeof("TIS620.2533-1")]; + char stringpool_str223[sizeof("ISO646-US")]; + char stringpool_str224[sizeof("CSISOLATIN1")]; + char stringpool_str226[sizeof("CSISOLATIN6")]; + char stringpool_str228[sizeof("CSISOLATIN3")]; + char stringpool_str230[sizeof("TIS-620")]; + char stringpool_str232[sizeof("CSISOLATIN5")]; + char stringpool_str234[sizeof("CSISOLATIN2")]; + char stringpool_str235[sizeof("TIS620.2529-1")]; + char stringpool_str236[sizeof("CSKZ1048")]; + char stringpool_str237[sizeof("CSISOLATINCYRILLIC")]; + char stringpool_str238[sizeof("KZ-1048")]; + char stringpool_str239[sizeof("ISO_8859-10")]; + char stringpool_str241[sizeof("UNICODE-1-1")]; + char stringpool_str242[sizeof("UTF-16")]; + char stringpool_str245[sizeof("MS-EE")]; + char stringpool_str248[sizeof("CSUNICODE")]; + char stringpool_str249[sizeof("CSKOI8R")]; + char stringpool_str250[sizeof("LATIN10")]; + char stringpool_str252[sizeof("UTF-32")]; + char stringpool_str254[sizeof("CSUCS4")]; + char stringpool_str255[sizeof("UTF-8")]; + char stringpool_str259[sizeof("ISO-IR-144")]; + char stringpool_str261[sizeof("KOI8-R")]; + char stringpool_str262[sizeof("MS-ANSI")]; + char stringpool_str263[sizeof("UCS-4")]; + char stringpool_str264[sizeof("ISO-IR-110")]; + char stringpool_str266[sizeof("IBM-CP1133")]; + char stringpool_str267[sizeof("CSIBM866")]; + char stringpool_str270[sizeof("KS_C_5601-1989")]; + char stringpool_str271[sizeof("CHAR")]; + char stringpool_str273[sizeof("EUCKR")]; + char stringpool_str277[sizeof("BIG5")]; + char stringpool_str278[sizeof("CP874")]; + char stringpool_str279[sizeof("ARMSCII-8")]; + char stringpool_str282[sizeof("CSBIG5")]; + char stringpool_str283[sizeof("UCS-2LE")]; + char stringpool_str286[sizeof("IBM850")]; + char stringpool_str287[sizeof("US-ASCII")]; + char stringpool_str290[sizeof("EUC-KR")]; + char stringpool_str293[sizeof("CSGB2312")]; + char stringpool_str294[sizeof("BIG-5")]; + char stringpool_str295[sizeof("TIS620.2533-0")]; + char stringpool_str299[sizeof("CN-BIG5")]; + char stringpool_str302[sizeof("MACCYRILLIC")]; + char stringpool_str303[sizeof("GBK")]; + char stringpool_str304[sizeof("TIS620-0")]; + char stringpool_str305[sizeof("MS-CYRL")]; + char stringpool_str307[sizeof("CYRILLIC-ASIAN")]; + char stringpool_str308[sizeof("ECMA-118")]; + char stringpool_str310[sizeof("ISO-IR-179")]; + char stringpool_str311[sizeof("GREEK8")]; + char stringpool_str315[sizeof("KOREAN")]; + char stringpool_str318[sizeof("CSISOLATIN4")]; + char stringpool_str321[sizeof("ISO-10646-UCS-2")]; + char stringpool_str325[sizeof("UCS-4LE")]; + char stringpool_str326[sizeof("PTCP154")]; + char stringpool_str330[sizeof("CSISO14JISC6220RO")]; + char stringpool_str334[sizeof("CSISO2022KR")]; + char stringpool_str336[sizeof("ROMAN8")]; + char stringpool_str337[sizeof("ISO-IR-100")]; + char stringpool_str340[sizeof("JIS_C6226-1983")]; + char stringpool_str344[sizeof("CSISOLATINARABIC")]; + char stringpool_str347[sizeof("CP367")]; + char stringpool_str350[sizeof("UTF-16LE")]; + char stringpool_str351[sizeof("ISO_646.IRV:1991")]; + char stringpool_str354[sizeof("CP1257")]; + char stringpool_str355[sizeof("MACICELAND")]; + char stringpool_str356[sizeof("UTF-32LE")]; + char stringpool_str357[sizeof("CSKSC56011987")]; + char stringpool_str359[sizeof("ARABIC")]; + char stringpool_str362[sizeof("ISO-2022-KR")]; + char stringpool_str363[sizeof("ISO-10646-UCS-4")]; + char stringpool_str367[sizeof("UCS-2BE")]; + char stringpool_str368[sizeof("GB_2312-80")]; + char stringpool_str369[sizeof("JP")]; + char stringpool_str371[sizeof("MULELAO-1")]; + char stringpool_str372[sizeof("CSISO159JISX02121990")]; + char stringpool_str373[sizeof("GREEK")]; + char stringpool_str375[sizeof("TCVN5712-1")]; + char stringpool_str376[sizeof("CSISO58GB231280")]; + char stringpool_str378[sizeof("GB18030")]; + char stringpool_str379[sizeof("TCVN-5712")]; + char stringpool_str384[sizeof("GB_1988-80")]; + char stringpool_str385[sizeof("CSPTCP154")]; + char stringpool_str386[sizeof("ECMA-114")]; + char stringpool_str388[sizeof("CSUNICODE11UTF7")]; + char stringpool_str391[sizeof("ANSI_X3.4-1986")]; + char stringpool_str392[sizeof("UNICODELITTLE")]; + char stringpool_str393[sizeof("ISO8859-7")]; + char stringpool_str395[sizeof("CN-GB-ISOIR165")]; + char stringpool_str396[sizeof("STRK1048-2002")]; + char stringpool_str398[sizeof("ANSI_X3.4-1968")]; + char stringpool_str403[sizeof("KOI8-U")]; + char stringpool_str406[sizeof("UCS-2-INTERNAL")]; + char stringpool_str409[sizeof("UCS-4BE")]; + char stringpool_str410[sizeof("ISO-8859-7")]; + char stringpool_str411[sizeof("SHIFT-JIS")]; + char stringpool_str412[sizeof("CN-GB")]; + char stringpool_str413[sizeof("JIS_C6220-1969-RO")]; + char stringpool_str415[sizeof("UNICODE-1-1-UTF-7")]; + char stringpool_str416[sizeof("WINDOWS-1251")]; + char stringpool_str417[sizeof("WINDOWS-1256")]; + char stringpool_str418[sizeof("WINDOWS-1253")]; + char stringpool_str420[sizeof("WINDOWS-1255")]; + char stringpool_str421[sizeof("WINDOWS-1252")]; + char stringpool_str422[sizeof("WINDOWS-936")]; + char stringpool_str424[sizeof("WINDOWS-1258")]; + char stringpool_str425[sizeof("CSEUCKR")]; + char stringpool_str426[sizeof("KS_C_5601-1987")]; + char stringpool_str428[sizeof("ISO_8859-7")]; + char stringpool_str429[sizeof("SHIFT_JIS")]; + char stringpool_str433[sizeof("JIS0208")]; + char stringpool_str434[sizeof("UTF-16BE")]; + char stringpool_str439[sizeof("LATIN7")]; + char stringpool_str440[sizeof("UTF-32BE")]; + char stringpool_str445[sizeof("MACTHAI")]; + char stringpool_str448[sizeof("UCS-4-INTERNAL")]; + char stringpool_str449[sizeof("CSISOLATINGREEK")]; + char stringpool_str451[sizeof("MACROMAN")]; + char stringpool_str452[sizeof("EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE")]; + char stringpool_str456[sizeof("EUCTW")]; + char stringpool_str457[sizeof("ISO-IR-57")]; + char stringpool_str458[sizeof("ISO-IR-157")]; + char stringpool_str459[sizeof("ISO-IR-127")]; + char stringpool_str461[sizeof("ISO-IR-87")]; + char stringpool_str463[sizeof("WINDOWS-1254")]; + char stringpool_str464[sizeof("ISO_8859-3:1988")]; + char stringpool_str466[sizeof("ISO_8859-5:1988")]; + char stringpool_str467[sizeof("IBM367")]; + char stringpool_str470[sizeof("ISO_8859-8:1988")]; + char stringpool_str471[sizeof("HZ-GB-2312")]; + char stringpool_str473[sizeof("EUC-TW")]; + char stringpool_str474[sizeof("CSISO57GB1988")]; + char stringpool_str475[sizeof("NEXTSTEP")]; + char stringpool_str476[sizeof("CSISO2022JP2")]; + char stringpool_str478[sizeof("ISO_8859-9:1989")]; + char stringpool_str480[sizeof("KOI8-RU")]; + char stringpool_str487[sizeof("MACINTOSH")]; + char stringpool_str489[sizeof("WINDOWS-1250")]; + char stringpool_str492[sizeof("JIS_X0212")]; + char stringpool_str500[sizeof("ISO-2022-JP-1")]; + char stringpool_str501[sizeof("MACCROATIAN")]; + char stringpool_str502[sizeof("HP-ROMAN8")]; + char stringpool_str505[sizeof("ISO-2022-JP-2")]; + char stringpool_str509[sizeof("ISO_8859-4:1988")]; + char stringpool_str510[sizeof("BIG5HKSCS")]; + char stringpool_str515[sizeof("ASMO-708")]; + char stringpool_str518[sizeof("EUCJP")]; + char stringpool_str525[sizeof("BIGFIVE")]; + char stringpool_str527[sizeof("BIG5-HKSCS")]; + char stringpool_str531[sizeof("MACCENTRALEUROPE")]; + char stringpool_str532[sizeof("CSPC862LATINHEBREW")]; + char stringpool_str535[sizeof("EUC-JP")]; + char stringpool_str542[sizeof("BIG-FIVE")]; + char stringpool_str546[sizeof("CSSHIFTJIS")]; + char stringpool_str550[sizeof("ISO646-JP")]; + char stringpool_str554[sizeof("JISX0201-1976")]; + char stringpool_str555[sizeof("JIS_X0201")]; + char stringpool_str556[sizeof("CSISOLATINHEBREW")]; + char stringpool_str563[sizeof("MACARABIC")]; + char stringpool_str564[sizeof("CSISO87JISX0208")]; + char stringpool_str571[sizeof("JIS_X0208")]; + char stringpool_str575[sizeof("UTF-7")]; + char stringpool_str577[sizeof("MACGREEK")]; + char stringpool_str579[sizeof("CSISO2022JP")]; + char stringpool_str580[sizeof("MS-TURK")]; + char stringpool_str581[sizeof("JIS_X0212-1990")]; + char stringpool_str584[sizeof("WINDOWS-1257")]; + char stringpool_str586[sizeof("JIS_X0208-1983")]; + char stringpool_str590[sizeof("MS-GREEK")]; + char stringpool_str599[sizeof("CSHPROMAN8")]; + char stringpool_str600[sizeof("JAVA")]; + char stringpool_str601[sizeof("MS-HEBR")]; + char stringpool_str604[sizeof("CSMACINTOSH")]; + char stringpool_str607[sizeof("ISO-2022-JP")]; + char stringpool_str608[sizeof("CSEUCTW")]; + char stringpool_str614[sizeof("GEORGIAN-PS")]; + char stringpool_str615[sizeof("UNICODEBIG")]; + char stringpool_str617[sizeof("MS_KANJI")]; + char stringpool_str620[sizeof("CSPC850MULTILINGUAL")]; + char stringpool_str621[sizeof("MACUKRAINE")]; + char stringpool_str622[sizeof("ISO_8859-1:1987")]; + char stringpool_str623[sizeof("ISO_8859-6:1987")]; + char stringpool_str624[sizeof("ISO_8859-7:2003")]; + char stringpool_str626[sizeof("GEORGIAN-ACADEMY")]; + char stringpool_str627[sizeof("ISO_8859-2:1987")]; + char stringpool_str629[sizeof("JIS_X0212.1990-0")]; + char stringpool_str657[sizeof("JIS_X0208-1990")]; + char stringpool_str664[sizeof("WCHAR_T")]; + char stringpool_str673[sizeof("MACROMANIA")]; + char stringpool_str676[sizeof("WINDOWS-874")]; + char stringpool_str689[sizeof("CSEUCPKDFMTJAPANESE")]; + char stringpool_str691[sizeof("MS-ARAB")]; + char stringpool_str723[sizeof("UCS-2-SWAPPED")]; + char stringpool_str739[sizeof("TCVN5712-1:1993")]; + char stringpool_str746[sizeof("HEBREW")]; + char stringpool_str765[sizeof("UCS-4-SWAPPED")]; + char stringpool_str768[sizeof("JOHAB")]; + char stringpool_str786[sizeof("MACTURKISH")]; + char stringpool_str790[sizeof("ISO_8859-7:1987")]; + char stringpool_str842[sizeof("WINBALTRIM")]; + char stringpool_str888[sizeof("BIG5-HKSCS:2001")]; + char stringpool_str898[sizeof("CSHALFWIDTHKATAKANA")]; + char stringpool_str900[sizeof("BIG5-HKSCS:1999")]; + char stringpool_str908[sizeof("MACHEBREW")]; + char stringpool_str935[sizeof("BIG5-HKSCS:2004")]; + }; +static const struct stringpool_t stringpool_contents = + { + "SJIS", + "CN", + "CP1131", + "CP1361", + "866", + "CP1133", + "CP1251", + "CP866", + "CP1256", + "862", + "CP1253", + "CP936", + "CP1255", + "CP862", + "CP1252", + "C99", + "CP932", + "CP1258", + "CP819", + "L1", + "L6", + "L3", + "L5", + "L2", + "L8", + "EUCCN", + "ISO8859-1", + "ISO8859-11", + "ISO8859-6", + "ISO8859-16", + "ISO8859-3", + "ISO8859-13", + "ISO8859-5", + "ISO8859-15", + "ISO8859-2", + "EUC-CN", + "ISO8859-8", + "ISO-8859-1", + "ISO-8859-11", + "ISO-8859-6", + "ISO-8859-16", + "ISO-8859-3", + "ISO-8859-13", + "ISO8859-9", + "ISO-8859-5", + "ISO-8859-15", + "ISO-8859-2", + "ISO646-CN", + "R8", + "L4", + "ISO-8859-8", + "CP949", + "ISO_8859-1", + "ISO_8859-11", + "ISO_8859-6", + "ISO_8859-16", + "ISO_8859-3", + "ISO_8859-13", + "ISO-8859-9", + "ISO_8859-16:2001", + "ISO_8859-5", + "ISO_8859-15", + "ISO_8859-2", + "LATIN1", + "LATIN6", + "CP154", + "LATIN3", + "ISO_8859-8", + "ISO_8859-15:1998", + "LATIN5", + "CP1254", + "LATIN2", + "CSISO2022CN", + "ISO_8859-9", + "CHINESE", + "ISO-IR-6", + "LATIN8", + "ASCII", + "ISO-IR-166", + "X0212", + "VISCII", + "ISO-IR-126", + "CSASCII", + "ISO-IR-165", + "CSVISCII", + "ISO-IR-226", + "MAC", + "ISO-IR-138", + "ISO-IR-58", + "IBM866", + "ISO-2022-CN", + "MS936", + "LATIN-9", + "ISO-IR-159", + "IBM862", + "US", + "ISO8859-4", + "ISO8859-14", + "ISO_8859-14:1998", + "ISO-IR-199", + "UHC", + "850", + "HZ", + "IBM819", + "ISO-CELTIC", + "ELOT_928", + "CP1250", + "GB2312", + "CP850", + "ISO-8859-4", + "ISO-8859-14", + "CP950", + "CYRILLIC", + "ISO_8859-10:1992", + "UCS-2", + "TCVN", + "ISO-IR-148", + "X0201", + "ISO_8859-4", + "ISO_8859-14", + "L10", + "ISO-IR-149", + "ISO-IR-101", + "ISO-2022-CN-EXT", + "LATIN4", + "ISO-IR-203", + "X0208", + "KSC_5601", + "ISO8859-10", + "VISCII1.1-1", + "L7", + "ISO-IR-14", + "PT154", + "TIS620", + "ISO-IR-109", + "CSUNICODE11", + "KOI8-T", + "RK1048", + "ISO-8859-10", + "TIS620.2533-1", + "ISO646-US", + "CSISOLATIN1", + "CSISOLATIN6", + "CSISOLATIN3", + "TIS-620", + "CSISOLATIN5", + "CSISOLATIN2", + "TIS620.2529-1", + "CSKZ1048", + "CSISOLATINCYRILLIC", + "KZ-1048", + "ISO_8859-10", + "UNICODE-1-1", + "UTF-16", + "MS-EE", + "CSUNICODE", + "CSKOI8R", + "LATIN10", + "UTF-32", + "CSUCS4", + "UTF-8", + "ISO-IR-144", + "KOI8-R", + "MS-ANSI", + "UCS-4", + "ISO-IR-110", + "IBM-CP1133", + "CSIBM866", + "KS_C_5601-1989", + "CHAR", + "EUCKR", + "BIG5", + "CP874", + "ARMSCII-8", + "CSBIG5", + "UCS-2LE", + "IBM850", + "US-ASCII", + "EUC-KR", + "CSGB2312", + "BIG-5", + "TIS620.2533-0", + "CN-BIG5", + "MACCYRILLIC", + "GBK", + "TIS620-0", + "MS-CYRL", + "CYRILLIC-ASIAN", + "ECMA-118", + "ISO-IR-179", + "GREEK8", + "KOREAN", + "CSISOLATIN4", + "ISO-10646-UCS-2", + "UCS-4LE", + "PTCP154", + "CSISO14JISC6220RO", + "CSISO2022KR", + "ROMAN8", + "ISO-IR-100", + "JIS_C6226-1983", + "CSISOLATINARABIC", + "CP367", + "UTF-16LE", + "ISO_646.IRV:1991", + "CP1257", + "MACICELAND", + "UTF-32LE", + "CSKSC56011987", + "ARABIC", + "ISO-2022-KR", + "ISO-10646-UCS-4", + "UCS-2BE", + "GB_2312-80", + "JP", + "MULELAO-1", + "CSISO159JISX02121990", + "GREEK", + "TCVN5712-1", + "CSISO58GB231280", + "GB18030", + "TCVN-5712", + "GB_1988-80", + "CSPTCP154", + "ECMA-114", + "CSUNICODE11UTF7", + "ANSI_X3.4-1986", + "UNICODELITTLE", + "ISO8859-7", + "CN-GB-ISOIR165", + "STRK1048-2002", + "ANSI_X3.4-1968", + "KOI8-U", + "UCS-2-INTERNAL", + "UCS-4BE", + "ISO-8859-7", + "SHIFT-JIS", + "CN-GB", + "JIS_C6220-1969-RO", + "UNICODE-1-1-UTF-7", + "WINDOWS-1251", + "WINDOWS-1256", + "WINDOWS-1253", + "WINDOWS-1255", + "WINDOWS-1252", + "WINDOWS-936", + "WINDOWS-1258", + "CSEUCKR", + "KS_C_5601-1987", + "ISO_8859-7", + "SHIFT_JIS", + "JIS0208", + "UTF-16BE", + "LATIN7", + "UTF-32BE", + "MACTHAI", + "UCS-4-INTERNAL", + "CSISOLATINGREEK", + "MACROMAN", + "EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE", + "EUCTW", + "ISO-IR-57", + "ISO-IR-157", + "ISO-IR-127", + "ISO-IR-87", + "WINDOWS-1254", + "ISO_8859-3:1988", + "ISO_8859-5:1988", + "IBM367", + "ISO_8859-8:1988", + "HZ-GB-2312", + "EUC-TW", + "CSISO57GB1988", + "NEXTSTEP", + "CSISO2022JP2", + "ISO_8859-9:1989", + "KOI8-RU", + "MACINTOSH", + "WINDOWS-1250", + "JIS_X0212", + "ISO-2022-JP-1", + "MACCROATIAN", + "HP-ROMAN8", + "ISO-2022-JP-2", + "ISO_8859-4:1988", + "BIG5HKSCS", + "ASMO-708", + "EUCJP", + "BIGFIVE", + "BIG5-HKSCS", + "MACCENTRALEUROPE", + "CSPC862LATINHEBREW", + "EUC-JP", + "BIG-FIVE", + "CSSHIFTJIS", + "ISO646-JP", + "JISX0201-1976", + "JIS_X0201", + "CSISOLATINHEBREW", + "MACARABIC", + "CSISO87JISX0208", + "JIS_X0208", + "UTF-7", + "MACGREEK", + "CSISO2022JP", + "MS-TURK", + "JIS_X0212-1990", + "WINDOWS-1257", + "JIS_X0208-1983", + "MS-GREEK", + "CSHPROMAN8", + "JAVA", + "MS-HEBR", + "CSMACINTOSH", + "ISO-2022-JP", + "CSEUCTW", + "GEORGIAN-PS", + "UNICODEBIG", + "MS_KANJI", + "CSPC850MULTILINGUAL", + "MACUKRAINE", + "ISO_8859-1:1987", + "ISO_8859-6:1987", + "ISO_8859-7:2003", + "GEORGIAN-ACADEMY", + "ISO_8859-2:1987", + "JIS_X0212.1990-0", + "JIS_X0208-1990", + "WCHAR_T", + "MACROMANIA", + "WINDOWS-874", + "CSEUCPKDFMTJAPANESE", + "MS-ARAB", + "UCS-2-SWAPPED", + "TCVN5712-1:1993", + "HEBREW", + "UCS-4-SWAPPED", + "JOHAB", + "MACTURKISH", + "ISO_8859-7:1987", + "WINBALTRIM", + "BIG5-HKSCS:2001", + "CSHALFWIDTHKATAKANA", + "BIG5-HKSCS:1999", + "MACHEBREW", + "BIG5-HKSCS:2004" + }; +#define stringpool ((const char *) &stringpool_contents) + +static const struct alias aliases[] = + { + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 308 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str7, ei_sjis}, + {-1}, +#line 288 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str9, ei_iso646_cn}, + {-1}, +#line 209 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, ei_cp1131}, +#line 353 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, ei_johab}, +#line 207 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, ei_cp866}, + {-1}, +#line 244 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, ei_cp1133}, + {-1}, {-1}, +#line 174 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str18, ei_cp1251}, +#line 205 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, ei_cp866}, +#line 189 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str20, ei_cp1256}, +#line 203 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str21, ei_cp862}, +#line 180 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str22, ei_cp1253}, + {-1}, +#line 323 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str24, ei_cp936}, + {-1}, +#line 186 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str26, ei_cp1255}, +#line 201 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str27, ei_cp862}, +#line 177 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str28, ei_cp1252}, + {-1}, +#line 51 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str30, ei_c99}, + {-1}, +#line 311 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str32, ei_cp932}, + {-1}, +#line 195 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str34, ei_cp1258}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 57 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str40, ei_iso8859_1}, +#line 60 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str41, ei_iso8859_1}, +#line 134 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str42, ei_iso8859_10}, +#line 76 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str43, ei_iso8859_3}, + {-1}, +#line 126 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str45, ei_iso8859_9}, +#line 68 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str46, ei_iso8859_2}, + {-1}, {-1}, +#line 151 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str49, ei_iso8859_14}, + {-1}, {-1}, {-1}, +#line 318 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str53, ei_euc_cn}, + {-1}, {-1}, {-1}, +#line 62 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str57, ei_iso8859_1}, +#line 139 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str58, ei_iso8859_11}, +#line 102 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str59, ei_iso8859_6}, +#line 166 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str60, ei_iso8859_16}, +#line 78 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str61, ei_iso8859_3}, +#line 145 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str62, ei_iso8859_13}, + {-1}, {-1}, +#line 93 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str65, ei_iso8859_5}, +#line 159 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str66, ei_iso8859_15}, +#line 70 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str67, ei_iso8859_2}, + {-1}, {-1}, +#line 317 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str70, ei_euc_cn}, + {-1}, {-1}, +#line 120 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str73, ei_iso8859_8}, +#line 53 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str74, ei_iso8859_1}, +#line 137 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str75, ei_iso8859_11}, +#line 94 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str76, ei_iso8859_6}, +#line 160 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str77, ei_iso8859_16}, +#line 71 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str78, ei_iso8859_3}, +#line 140 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str79, ei_iso8859_13}, + {-1}, +#line 128 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str81, ei_iso8859_9}, +#line 87 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str82, ei_iso8859_5}, +#line 154 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str83, ei_iso8859_15}, +#line 63 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str84, ei_iso8859_2}, +#line 286 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str85, ei_iso646_cn}, +#line 227 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str86, ei_hp_roman8}, + {-1}, +#line 84 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str88, ei_iso8859_4}, + {-1}, +#line 114 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str90, ei_iso8859_8}, +#line 350 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str91, ei_cp949}, +#line 54 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str92, ei_iso8859_1}, +#line 138 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str93, ei_iso8859_11}, +#line 95 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str94, ei_iso8859_6}, +#line 161 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str95, ei_iso8859_16}, +#line 72 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str96, ei_iso8859_3}, +#line 141 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str97, ei_iso8859_13}, +#line 121 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str98, ei_iso8859_9}, +#line 162 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str99, ei_iso8859_16}, +#line 88 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str100, ei_iso8859_5}, +#line 155 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str101, ei_iso8859_15}, +#line 64 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str102, ei_iso8859_2}, +#line 59 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str103, ei_iso8859_1}, + {-1}, +#line 133 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str105, ei_iso8859_10}, +#line 236 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str106, ei_pt154}, +#line 75 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str107, ei_iso8859_3}, +#line 115 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str108, ei_iso8859_8}, + {-1}, +#line 156 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str110, ei_iso8859_15}, +#line 125 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str111, ei_iso8859_9}, +#line 183 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str112, ei_cp1254}, +#line 67 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str113, ei_iso8859_2}, +#line 328 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str114, ei_iso2022_cn}, + {-1}, +#line 122 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str116, ei_iso8859_9}, +#line 293 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str117, ei_gb2312}, +#line 16 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str118, ei_ascii}, +#line 150 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str119, ei_iso8859_14}, +#line 13 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str120, ei_ascii}, +#line 252 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str121, ei_tis620}, +#line 282 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str122, ei_jisx0212}, + {-1}, +#line 255 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str124, ei_viscii}, +#line 107 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str125, ei_iso8859_7}, +#line 22 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str126, ei_ascii}, +#line 294 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str127, ei_isoir165}, + {-1}, +#line 257 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str129, ei_viscii}, +#line 163 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str130, ei_iso8859_16}, +#line 212 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str131, ei_mac_roman}, + {-1}, {-1}, {-1}, {-1}, +#line 117 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str136, ei_iso8859_8}, +#line 291 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str137, ei_gb2312}, + {-1}, +#line 206 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str139, ei_cp866}, + {-1}, {-1}, +#line 327 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str142, ei_iso2022_cn}, +#line 324 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str143, ei_cp936}, +#line 158 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str144, ei_iso8859_15}, + {-1}, +#line 283 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str146, ei_jisx0212}, +#line 202 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str147, ei_cp862}, + {-1}, {-1}, +#line 21 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str150, ei_ascii}, +#line 86 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str151, ei_iso8859_4}, +#line 153 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str152, ei_iso8859_14}, +#line 148 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str153, ei_iso8859_14}, +#line 149 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str154, ei_iso8859_14}, + {-1}, +#line 351 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str156, ei_cp949}, +#line 199 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str157, ei_cp850}, + {-1}, +#line 330 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str159, ei_hz}, +#line 58 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str160, ei_iso8859_1}, + {-1}, +#line 152 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str162, ei_iso8859_14}, +#line 109 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str163, ei_iso8859_7}, +#line 171 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str164, ei_cp1250}, +#line 319 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str165, ei_euc_cn}, +#line 197 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str166, ei_cp850}, + {-1}, +#line 79 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str168, ei_iso8859_4}, +#line 146 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str169, ei_iso8859_14}, +#line 341 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str170, ei_cp950}, +#line 91 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str171, ei_iso8859_5}, + {-1}, {-1}, {-1}, {-1}, +#line 131 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str176, ei_iso8859_10}, + {-1}, {-1}, +#line 24 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str179, ei_ucs2}, +#line 258 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str180, ei_tcvn}, +#line 124 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str181, ei_iso8859_9}, + {-1}, {-1}, {-1}, +#line 269 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str185, ei_jisx0201}, +#line 80 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str186, ei_iso8859_4}, +#line 147 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str187, ei_iso8859_14}, +#line 165 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str188, ei_iso8859_16}, +#line 299 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str189, ei_ksc5601}, + {-1}, +#line 66 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str191, ei_iso8859_2}, + {-1}, {-1}, {-1}, {-1}, +#line 329 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str196, ei_iso2022_cn_ext}, +#line 83 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str197, ei_iso8859_4}, + {-1}, {-1}, +#line 157 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str200, ei_iso8859_15}, +#line 275 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str201, ei_jisx0208}, +#line 296 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str202, ei_ksc5601}, + {-1}, +#line 136 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str204, ei_iso8859_10}, + {-1}, {-1}, +#line 256 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str207, ei_viscii}, + {-1}, +#line 144 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str209, ei_iso8859_13}, + {-1}, +#line 264 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str211, ei_iso646_jp}, +#line 234 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str212, ei_pt154}, +#line 247 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str213, ei_tis620}, + {-1}, +#line 74 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str215, ei_iso8859_3}, +#line 30 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str216, ei_ucs2be}, +#line 233 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str217, ei_koi8_t}, +#line 239 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str218, ei_rk1048}, + {-1}, {-1}, +#line 129 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str221, ei_iso8859_10}, +#line 251 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str222, ei_tis620}, +#line 14 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str223, ei_ascii}, +#line 61 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str224, ei_iso8859_1}, + {-1}, +#line 135 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str226, ei_iso8859_10}, + {-1}, +#line 77 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str228, ei_iso8859_3}, + {-1}, +#line 246 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str230, ei_tis620}, + {-1}, +#line 127 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str232, ei_iso8859_9}, + {-1}, +#line 69 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str234, ei_iso8859_2}, +#line 249 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str235, ei_tis620}, +#line 242 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str236, ei_rk1048}, +#line 92 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str237, ei_iso8859_5}, +#line 241 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str238, ei_rk1048}, +#line 130 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str239, ei_iso8859_10}, + {-1}, +#line 29 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str241, ei_ucs2be}, +#line 38 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str242, ei_utf16}, + {-1}, {-1}, +#line 173 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str245, ei_cp1250}, + {-1}, {-1}, +#line 26 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str248, ei_ucs2}, +#line 168 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str249, ei_koi8_r}, +#line 164 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str250, ei_iso8859_16}, + {-1}, +#line 41 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str252, ei_utf32}, + {-1}, +#line 35 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str254, ei_ucs4}, +#line 23 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str255, ei_utf8}, + {-1}, {-1}, {-1}, +#line 90 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str259, ei_iso8859_5}, + {-1}, +#line 167 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str261, ei_koi8_r}, +#line 179 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str262, ei_cp1252}, +#line 33 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str263, ei_ucs4}, +#line 82 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str264, ei_iso8859_4}, + {-1}, +#line 245 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str266, ei_cp1133}, +#line 208 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str267, ei_cp866}, + {-1}, {-1}, +#line 298 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str270, ei_ksc5601}, +#line 356 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str271, ei_local_char}, + {-1}, +#line 348 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str273, ei_euc_kr}, + {-1}, {-1}, {-1}, +#line 335 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str277, ei_ces_big5}, +#line 253 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str278, ei_cp874}, +#line 230 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str279, ei_armscii_8}, + {-1}, {-1}, +#line 340 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str282, ei_ces_big5}, +#line 31 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str283, ei_ucs2le}, + {-1}, {-1}, +#line 198 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str286, ei_cp850}, +#line 12 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str287, ei_ascii}, + {-1}, {-1}, +#line 347 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str290, ei_euc_kr}, + {-1}, {-1}, +#line 321 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str293, ei_euc_cn}, +#line 336 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str294, ei_ces_big5}, +#line 250 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str295, ei_tis620}, + {-1}, {-1}, {-1}, +#line 339 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str299, ei_ces_big5}, + {-1}, {-1}, +#line 218 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str302, ei_mac_cyrillic}, +#line 322 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str303, ei_ces_gbk}, +#line 248 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str304, ei_tis620}, +#line 176 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str305, ei_cp1251}, + {-1}, +#line 237 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str307, ei_pt154}, +#line 108 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str308, ei_iso8859_7}, + {-1}, +#line 142 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str310, ei_iso8859_13}, +#line 110 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str311, ei_iso8859_7}, + {-1}, {-1}, {-1}, +#line 301 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str315, ei_ksc5601}, + {-1}, {-1}, +#line 85 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str318, ei_iso8859_4}, + {-1}, {-1}, +#line 25 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str321, ei_ucs2}, + {-1}, {-1}, {-1}, +#line 37 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str325, ei_ucs4le}, +#line 235 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str326, ei_pt154}, + {-1}, {-1}, {-1}, +#line 266 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str330, ei_iso646_jp}, + {-1}, {-1}, {-1}, +#line 355 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str334, ei_iso2022_kr}, + {-1}, +#line 226 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str336, ei_hp_roman8}, +#line 56 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str337, ei_iso8859_1}, + {-1}, {-1}, +#line 277 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str340, ei_jisx0208}, + {-1}, {-1}, {-1}, +#line 101 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str344, ei_iso8859_6}, + {-1}, {-1}, +#line 19 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str347, ei_ascii}, + {-1}, {-1}, +#line 40 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str350, ei_utf16le}, +#line 15 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str351, ei_ascii}, + {-1}, {-1}, +#line 192 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str354, ei_cp1257}, +#line 215 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str355, ei_mac_iceland}, +#line 43 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str356, ei_utf32le}, +#line 300 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str357, ei_ksc5601}, + {-1}, +#line 100 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str359, ei_iso8859_6}, + {-1}, {-1}, +#line 354 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str362, ei_iso2022_kr}, +#line 34 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str363, ei_ucs4}, + {-1}, {-1}, {-1}, +#line 27 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str367, ei_ucs2be}, +#line 290 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str368, ei_gb2312}, +#line 265 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str369, ei_iso646_jp}, + {-1}, +#line 243 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str371, ei_mulelao}, +#line 284 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str372, ei_jisx0212}, +#line 111 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str373, ei_iso8859_7}, + {-1}, +#line 260 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str375, ei_tcvn}, +#line 292 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str376, ei_gb2312}, + {-1}, +#line 326 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str378, ei_gb18030}, +#line 259 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str379, ei_tcvn}, + {-1}, {-1}, {-1}, {-1}, +#line 285 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str384, ei_iso646_cn}, +#line 238 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str385, ei_pt154}, +#line 98 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str386, ei_iso8859_6}, + {-1}, +#line 46 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str388, ei_utf7}, + {-1}, {-1}, +#line 18 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str391, ei_ascii}, +#line 32 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str392, ei_ucs2le}, +#line 113 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str393, ei_iso8859_7}, + {-1}, +#line 295 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str395, ei_isoir165}, +#line 240 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str396, ei_rk1048}, + {-1}, +#line 17 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str398, ei_ascii}, + {-1}, {-1}, {-1}, {-1}, +#line 169 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str403, ei_koi8_u}, + {-1}, {-1}, +#line 47 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str406, ei_ucs2internal}, + {-1}, {-1}, +#line 36 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str409, ei_ucs4be}, +#line 103 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str410, ei_iso8859_7}, +#line 307 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str411, ei_sjis}, +#line 320 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str412, ei_euc_cn}, +#line 262 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str413, ei_iso646_jp}, + {-1}, +#line 45 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str415, ei_utf7}, +#line 175 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str416, ei_cp1251}, +#line 190 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str417, ei_cp1256}, +#line 181 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str418, ei_cp1253}, + {-1}, +#line 187 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str420, ei_cp1255}, +#line 178 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str421, ei_cp1252}, +#line 325 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str422, ei_cp936}, + {-1}, +#line 196 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str424, ei_cp1258}, +#line 349 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str425, ei_euc_kr}, +#line 297 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str426, ei_ksc5601}, + {-1}, +#line 104 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str428, ei_iso8859_7}, +#line 306 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str429, ei_sjis}, + {-1}, {-1}, {-1}, +#line 274 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str433, ei_jisx0208}, +#line 39 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str434, ei_utf16be}, + {-1}, {-1}, {-1}, {-1}, +#line 143 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str439, ei_iso8859_13}, +#line 42 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str440, ei_utf32be}, + {-1}, {-1}, {-1}, {-1}, +#line 224 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str445, ei_mac_thai}, + {-1}, {-1}, +#line 49 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str448, ei_ucs4internal}, +#line 112 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str449, ei_iso8859_7}, + {-1}, +#line 210 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str451, ei_mac_roman}, +#line 304 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str452, ei_euc_jp}, + {-1}, {-1}, {-1}, +#line 333 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str456, ei_euc_tw}, +#line 287 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str457, ei_iso646_cn}, +#line 132 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str458, ei_iso8859_10}, +#line 97 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str459, ei_iso8859_6}, + {-1}, +#line 276 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str461, ei_jisx0208}, + {-1}, +#line 184 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str463, ei_cp1254}, +#line 73 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str464, ei_iso8859_3}, + {-1}, +#line 89 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str466, ei_iso8859_5}, +#line 20 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str467, ei_ascii}, + {-1}, {-1}, +#line 116 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str470, ei_iso8859_8}, +#line 331 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str471, ei_hz}, + {-1}, +#line 332 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str473, ei_euc_tw}, +#line 289 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str474, ei_iso646_cn}, +#line 229 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str475, ei_nextstep}, +#line 316 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str476, ei_iso2022_jp2}, + {-1}, +#line 123 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str478, ei_iso8859_9}, + {-1}, +#line 170 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str480, ei_koi8_ru}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 211 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str487, ei_mac_roman}, + {-1}, +#line 172 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str489, ei_cp1250}, + {-1}, {-1}, +#line 279 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str492, ei_jisx0212}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 314 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str500, ei_iso2022_jp1}, +#line 216 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str501, ei_mac_croatian}, +#line 225 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str502, ei_hp_roman8}, + {-1}, {-1}, +#line 315 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str505, ei_iso2022_jp2}, + {-1}, {-1}, {-1}, +#line 81 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str509, ei_iso8859_4}, +#line 345 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str510, ei_big5hkscs2004}, + {-1}, {-1}, {-1}, {-1}, +#line 99 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str515, ei_iso8859_6}, + {-1}, {-1}, +#line 303 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str518, ei_euc_jp}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 338 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str525, ei_ces_big5}, + {-1}, +#line 344 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str527, ei_big5hkscs2004}, + {-1}, {-1}, {-1}, +#line 214 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str531, ei_mac_centraleurope}, +#line 204 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str532, ei_cp862}, + {-1}, {-1}, +#line 302 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str535, ei_euc_jp}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 337 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str542, ei_ces_big5}, + {-1}, {-1}, {-1}, +#line 310 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str546, ei_sjis}, + {-1}, {-1}, {-1}, +#line 263 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str550, ei_iso646_jp}, + {-1}, {-1}, {-1}, +#line 268 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str554, ei_jisx0201}, +#line 267 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str555, ei_jisx0201}, +#line 119 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str556, ei_iso8859_8}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 223 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str563, ei_mac_arabic}, +#line 278 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str564, ei_jisx0208}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 271 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str571, ei_jisx0208}, + {-1}, {-1}, {-1}, +#line 44 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str575, ei_utf7}, + {-1}, +#line 220 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str577, ei_mac_greek}, + {-1}, +#line 313 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str579, ei_iso2022_jp}, +#line 185 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str580, ei_cp1254}, +#line 281 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str581, ei_jisx0212}, + {-1}, {-1}, +#line 193 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str584, ei_cp1257}, + {-1}, +#line 272 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str586, ei_jisx0208}, + {-1}, {-1}, {-1}, +#line 182 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str590, ei_cp1253}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 228 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str599, ei_hp_roman8}, +#line 52 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str600, ei_java}, +#line 188 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str601, ei_cp1255}, + {-1}, {-1}, +#line 213 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str604, ei_mac_roman}, + {-1}, {-1}, +#line 312 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str607, ei_iso2022_jp}, +#line 334 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str608, ei_euc_tw}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 232 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str614, ei_georgian_ps}, +#line 28 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str615, ei_ucs2be}, + {-1}, +#line 309 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str617, ei_sjis}, + {-1}, {-1}, +#line 200 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str620, ei_cp850}, +#line 219 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str621, ei_mac_ukraine}, +#line 55 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str622, ei_iso8859_1}, +#line 96 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str623, ei_iso8859_6}, +#line 106 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str624, ei_iso8859_7}, + {-1}, +#line 231 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str626, ei_georgian_academy}, +#line 65 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str627, ei_iso8859_2}, + {-1}, +#line 280 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str629, ei_jisx0212}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 273 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str657, ei_jisx0208}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 357 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str664, ei_local_wchar_t}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 217 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str673, ei_mac_romania}, + {-1}, {-1}, +#line 254 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str676, ei_cp874}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, +#line 305 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str689, ei_euc_jp}, + {-1}, +#line 191 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str691, ei_cp1256}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, +#line 48 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str723, ei_ucs2swapped}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 261 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str739, ei_tcvn}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 118 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str746, ei_iso8859_8}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 50 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str765, ei_ucs4swapped}, + {-1}, {-1}, +#line 352 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str768, ei_johab}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 221 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str786, ei_mac_turkish}, + {-1}, {-1}, {-1}, +#line 105 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str790, ei_iso8859_7}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 194 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str842, ei_cp1257}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 343 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str888, ei_big5hkscs2001}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 270 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str898, ei_jisx0201}, + {-1}, +#line 342 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str900, ei_big5hkscs1999}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 222 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str908, ei_mac_hebrew}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 346 "lib/aliases.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str935, ei_big5hkscs2004} + }; + +#ifdef __GNUC__ +__inline +#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ +__attribute__ ((__gnu_inline__)) +#endif +#endif +const struct alias * +aliases_lookup (register const char *str, register unsigned int len) +{ + if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) + { + register int key = aliases_hash (str, len); + + if (key <= MAX_HASH_VALUE && key >= 0) + { + register int o = aliases[key].name; + if (o >= 0) + { + register const char *s = o + stringpool; + + if (*str == *s && !strcmp (str + 1, s + 1)) + return &aliases[key]; + } + } + } + return 0; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/aliases2.h b/graf2d/win32gdk/gdk/src/iconv/aliases2.h new file mode 100644 index 00000000000..7f2dc449bf1 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/aliases2.h @@ -0,0 +1,40 @@ +/* + * Copyright (C) 1999-2003, 2008 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifdef USE_AIX +# if defined _AIX +# include "aliases_aix_sysaix.h" +# else +# include "aliases_aix.h" +# endif +#endif +#ifdef USE_OSF1 +# if defined __osf__ +# include "aliases_osf1_sysosf1.h" +# else +# include "aliases_osf1.h" +# endif +#endif +#ifdef USE_DOS +# include "aliases_dos.h" +#endif +#ifdef USE_EXTRA +# include "aliases_extra.h" +#endif diff --git a/graf2d/win32gdk/gdk/src/iconv/aliases_aix.h b/graf2d/win32gdk/gdk/src/iconv/aliases_aix.h new file mode 100644 index 00000000000..5cbc77fdf6c --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/aliases_aix.h @@ -0,0 +1,18 @@ + S(aix_0, "CP856", ei_cp856 ) + S(aix_1, "CP922", ei_cp922 ) + S(aix_2, "CP943", ei_cp943 ) + S(aix_3, "CP1046", ei_cp1046 ) + S(aix_4, "CP1124", ei_cp1124 ) + S(aix_5, "CP1129", ei_cp1129 ) + S(aix_6, "CP1161", ei_cp1161 ) + S(aix_7, "IBM1161", ei_cp1161 ) + S(aix_8, "IBM-1161", ei_cp1161 ) + S(aix_9, "CSIBM1161", ei_cp1161 ) + S(aix_10, "CP1162", ei_cp1162 ) + S(aix_11, "IBM1162", ei_cp1162 ) + S(aix_12, "IBM-1162", ei_cp1162 ) + S(aix_13, "CSIBM1162", ei_cp1162 ) + S(aix_14, "CP1163", ei_cp1163 ) + S(aix_15, "IBM1163", ei_cp1163 ) + S(aix_16, "IBM-1163", ei_cp1163 ) + S(aix_17, "CSIBM1163", ei_cp1163 ) diff --git a/graf2d/win32gdk/gdk/src/iconv/aliases_aix_sysaix.h b/graf2d/win32gdk/gdk/src/iconv/aliases_aix_sysaix.h new file mode 100644 index 00000000000..b7dc5841ebd --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/aliases_aix_sysaix.h @@ -0,0 +1,24 @@ + S(aix_0, "CP856", ei_cp856 ) + S(aix_1, "IBM-856", ei_cp856 ) + S(aix_2, "CP922", ei_cp922 ) + S(aix_3, "IBM-922", ei_cp922 ) + S(aix_4, "CP943", ei_cp943 ) + S(aix_5, "IBM-943", ei_cp943 ) + S(aix_6, "CP1046", ei_cp1046 ) + S(aix_7, "IBM-1046", ei_cp1046 ) + S(aix_8, "CP1124", ei_cp1124 ) + S(aix_9, "IBM-1124", ei_cp1124 ) + S(aix_10, "CP1129", ei_cp1129 ) + S(aix_11, "IBM-1129", ei_cp1129 ) + S(aix_12, "CP1161", ei_cp1161 ) + S(aix_13, "IBM1161", ei_cp1161 ) + S(aix_14, "IBM-1161", ei_cp1161 ) + S(aix_15, "CSIBM1161", ei_cp1161 ) + S(aix_16, "CP1162", ei_cp1162 ) + S(aix_17, "IBM1162", ei_cp1162 ) + S(aix_18, "IBM-1162", ei_cp1162 ) + S(aix_19, "CSIBM1162", ei_cp1162 ) + S(aix_20, "CP1163", ei_cp1163 ) + S(aix_21, "IBM1163", ei_cp1163 ) + S(aix_22, "IBM-1163", ei_cp1163 ) + S(aix_23, "CSIBM1163", ei_cp1163 ) diff --git a/graf2d/win32gdk/gdk/src/iconv/aliases_dos.h b/graf2d/win32gdk/gdk/src/iconv/aliases_dos.h new file mode 100644 index 00000000000..1dd4fcba01a --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/aliases_dos.h @@ -0,0 +1,48 @@ + S(dos_0, "CP437", ei_cp437 ) + S(dos_1, "IBM437", ei_cp437 ) + S(dos_2, "437", ei_cp437 ) + S(dos_3, "CSPC8CODEPAGE437", ei_cp437 ) + S(dos_4, "CP737", ei_cp737 ) + S(dos_5, "CP775", ei_cp775 ) + S(dos_6, "IBM775", ei_cp775 ) + S(dos_7, "CSPC775BALTIC", ei_cp775 ) + S(dos_8, "CP852", ei_cp852 ) + S(dos_9, "IBM852", ei_cp852 ) + S(dos_10, "852", ei_cp852 ) + S(dos_11, "CSPCP852", ei_cp852 ) + S(dos_12, "CP853", ei_cp853 ) + S(dos_13, "CP855", ei_cp855 ) + S(dos_14, "IBM855", ei_cp855 ) + S(dos_15, "855", ei_cp855 ) + S(dos_16, "CSIBM855", ei_cp855 ) + S(dos_17, "CP857", ei_cp857 ) + S(dos_18, "IBM857", ei_cp857 ) + S(dos_19, "857", ei_cp857 ) + S(dos_20, "CSIBM857", ei_cp857 ) + S(dos_21, "CP858", ei_cp858 ) + S(dos_22, "CP860", ei_cp860 ) + S(dos_23, "IBM860", ei_cp860 ) + S(dos_24, "860", ei_cp860 ) + S(dos_25, "CSIBM860", ei_cp860 ) + S(dos_26, "CP861", ei_cp861 ) + S(dos_27, "IBM861", ei_cp861 ) + S(dos_28, "861", ei_cp861 ) + S(dos_29, "CP-IS", ei_cp861 ) + S(dos_30, "CSIBM861", ei_cp861 ) + S(dos_31, "CP863", ei_cp863 ) + S(dos_32, "IBM863", ei_cp863 ) + S(dos_33, "863", ei_cp863 ) + S(dos_34, "CSIBM863", ei_cp863 ) + S(dos_35, "CP864", ei_cp864 ) + S(dos_36, "IBM864", ei_cp864 ) + S(dos_37, "CSIBM864", ei_cp864 ) + S(dos_38, "CP865", ei_cp865 ) + S(dos_39, "IBM865", ei_cp865 ) + S(dos_40, "865", ei_cp865 ) + S(dos_41, "CSIBM865", ei_cp865 ) + S(dos_42, "CP869", ei_cp869 ) + S(dos_43, "IBM869", ei_cp869 ) + S(dos_44, "869", ei_cp869 ) + S(dos_45, "CP-GR", ei_cp869 ) + S(dos_46, "CSIBM869", ei_cp869 ) + S(dos_47, "CP1125", ei_cp1125 ) diff --git a/graf2d/win32gdk/gdk/src/iconv/aliases_extra.h b/graf2d/win32gdk/gdk/src/iconv/aliases_extra.h new file mode 100644 index 00000000000..9a54e16a073 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/aliases_extra.h @@ -0,0 +1,12 @@ + S(extra_0, "EUC-JISX0213", ei_euc_jisx0213 ) + S(extra_1, "EUC-JIS-2004", ei_euc_jisx0213 ) + S(extra_2, "SHIFT_JISX0213", ei_shift_jisx0213 ) + S(extra_3, "SHIFT_JIS-2004", ei_shift_jisx0213 ) + S(extra_4, "ISO-2022-JP-3", ei_iso2022_jp3 ) + S(extra_5, "ISO-2022-JP-2004", ei_iso2022_jp3 ) + S(extra_6, "BIG5-2003", ei_big5_2003 ) + S(extra_7, "TDS565", ei_tds565 ) + S(extra_8, "ISO-IR-230", ei_tds565 ) + S(extra_9, "ATARIST", ei_atarist ) + S(extra_10, "ATARI", ei_atarist ) + S(extra_11, "RISCOS-LATIN1", ei_riscos1 ) diff --git a/graf2d/win32gdk/gdk/src/iconv/aliases_osf1.h b/graf2d/win32gdk/gdk/src/iconv/aliases_osf1.h new file mode 100644 index 00000000000..9e4f6854ebc --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/aliases_osf1.h @@ -0,0 +1,2 @@ + S(osf1_0, "DEC-KANJI", ei_dec_kanji ) + S(osf1_1, "DEC-HANYU", ei_dec_hanyu ) diff --git a/graf2d/win32gdk/gdk/src/iconv/aliases_osf1_sysosf1.h b/graf2d/win32gdk/gdk/src/iconv/aliases_osf1_sysosf1.h new file mode 100644 index 00000000000..b1f802d2844 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/aliases_osf1_sysosf1.h @@ -0,0 +1,4 @@ + S(osf1_0, "DEC-KANJI", ei_dec_kanji ) + S(osf1_1, "DECKANJI", ei_dec_kanji ) + S(osf1_2, "DEC-HANYU", ei_dec_hanyu ) + S(osf1_3, "DECHANYU", ei_dec_hanyu ) diff --git a/graf2d/win32gdk/gdk/src/iconv/aliases_sysaix.h b/graf2d/win32gdk/gdk/src/iconv/aliases_sysaix.h new file mode 100644 index 00000000000..ee5d6a0289f --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/aliases_sysaix.h @@ -0,0 +1,1765 @@ +/* ANSI-C code produced by gperf version 3.0.4 */ +/* Command-line: gperf -m 10 lib/aliases_sysaix.gperf */ +/* Computed positions: -k'1,3-11,$' */ + +#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ + && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ + && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ + && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ + && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ + && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ + && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ + && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ + && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ + && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ + && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ + && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ + && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ + && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ + && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ + && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ + && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ + && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ + && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ + && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ + && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ + && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ + && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) +/* The character set is not based on ISO-646. */ +#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>." +#endif + +#line 1 "lib/aliases_sysaix.gperf" +struct alias { int name; unsigned int encoding_index; }; + +#define TOTAL_KEYWORDS 355 +#define MIN_WORD_LENGTH 2 +#define MAX_WORD_LENGTH 45 +#define MIN_HASH_VALUE 13 +#define MAX_HASH_VALUE 989 +/* maximum key range = 977, duplicates = 0 */ + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static unsigned int +aliases_hash (register const char *str, register unsigned int len) +{ + static const unsigned short asso_values[] = + { + 990, 990, 990, 990, 990, 990, 990, 990, 990, 990, + 990, 990, 990, 990, 990, 990, 990, 990, 990, 990, + 990, 990, 990, 990, 990, 990, 990, 990, 990, 990, + 990, 990, 990, 990, 990, 990, 990, 990, 990, 990, + 990, 990, 990, 990, 990, 13, 112, 990, 73, 4, + 7, 6, 55, 8, 5, 171, 10, 23, 255, 990, + 990, 990, 990, 990, 990, 147, 128, 4, 9, 125, + 130, 5, 75, 4, 402, 69, 7, 125, 18, 4, + 44, 990, 76, 4, 25, 195, 191, 161, 120, 22, + 15, 990, 990, 990, 990, 27, 990, 990, 990, 990, + 990, 990, 990, 990, 990, 990, 990, 990, 990, 990, + 990, 990, 990, 990, 990, 990, 990, 990, 990, 990, + 990, 990, 990, 990, 990, 990, 990, 990 + }; + register int hval = len; + + switch (hval) + { + default: + hval += asso_values[(unsigned char)str[10]]; + /*FALLTHROUGH*/ + case 10: + hval += asso_values[(unsigned char)str[9]]; + /*FALLTHROUGH*/ + case 9: + hval += asso_values[(unsigned char)str[8]]; + /*FALLTHROUGH*/ + case 8: + hval += asso_values[(unsigned char)str[7]]; + /*FALLTHROUGH*/ + case 7: + hval += asso_values[(unsigned char)str[6]]; + /*FALLTHROUGH*/ + case 6: + hval += asso_values[(unsigned char)str[5]]; + /*FALLTHROUGH*/ + case 5: + hval += asso_values[(unsigned char)str[4]]; + /*FALLTHROUGH*/ + case 4: + hval += asso_values[(unsigned char)str[3]]; + /*FALLTHROUGH*/ + case 3: + hval += asso_values[(unsigned char)str[2]]; + /*FALLTHROUGH*/ + case 2: + case 1: + hval += asso_values[(unsigned char)str[0]]; + break; + } + return hval + asso_values[(unsigned char)str[len - 1]]; +} + +struct stringpool_t + { + char stringpool_str13[sizeof("L1")]; + char stringpool_str14[sizeof("L6")]; + char stringpool_str15[sizeof("L3")]; + char stringpool_str16[sizeof("L2")]; + char stringpool_str17[sizeof("L5")]; + char stringpool_str19[sizeof("L8")]; + char stringpool_str20[sizeof("SJIS")]; + char stringpool_str23[sizeof("866")]; + char stringpool_str24[sizeof("CN")]; + char stringpool_str27[sizeof("862")]; + char stringpool_str32[sizeof("CP1131")]; + char stringpool_str33[sizeof("CP1361")]; + char stringpool_str34[sizeof("CP866")]; + char stringpool_str36[sizeof("CP1133")]; + char stringpool_str37[sizeof("CP1251")]; + char stringpool_str38[sizeof("CP862")]; + char stringpool_str39[sizeof("CP1256")]; + char stringpool_str41[sizeof("CP1253")]; + char stringpool_str42[sizeof("GB2312")]; + char stringpool_str43[sizeof("CP1252")]; + char stringpool_str45[sizeof("CP1255")]; + char stringpool_str48[sizeof("CP936")]; + char stringpool_str49[sizeof("CP1258")]; + char stringpool_str52[sizeof("CP932")]; + char stringpool_str53[sizeof("C99")]; + char stringpool_str64[sizeof("L4")]; + char stringpool_str68[sizeof("LATIN1")]; + char stringpool_str69[sizeof("CP819")]; + char stringpool_str70[sizeof("LATIN6")]; + char stringpool_str72[sizeof("LATIN3")]; + char stringpool_str74[sizeof("LATIN2")]; + char stringpool_str76[sizeof("LATIN5")]; + char stringpool_str80[sizeof("LATIN8")]; + char stringpool_str88[sizeof("R8")]; + char stringpool_str89[sizeof("ISO8859-1")]; + char stringpool_str91[sizeof("ISO8859-6")]; + char stringpool_str92[sizeof("HZ")]; + char stringpool_str93[sizeof("ISO8859-3")]; + char stringpool_str94[sizeof("ISO8859-11")]; + char stringpool_str95[sizeof("ISO8859-2")]; + char stringpool_str96[sizeof("ISO8859-16")]; + char stringpool_str97[sizeof("ISO8859-5")]; + char stringpool_str98[sizeof("ISO8859-13")]; + char stringpool_str101[sizeof("ISO8859-8")]; + char stringpool_str102[sizeof("ISO8859-15")]; + char stringpool_str103[sizeof("ISO-8859-1")]; + char stringpool_str105[sizeof("ISO-8859-6")]; + char stringpool_str107[sizeof("ISO-8859-3")]; + char stringpool_str108[sizeof("ISO-8859-11")]; + char stringpool_str109[sizeof("ISO-8859-2")]; + char stringpool_str110[sizeof("ISO-8859-16")]; + char stringpool_str111[sizeof("ISO-8859-5")]; + char stringpool_str112[sizeof("ISO-8859-13")]; + char stringpool_str115[sizeof("ISO-8859-8")]; + char stringpool_str116[sizeof("ISO-8859-15")]; + char stringpool_str117[sizeof("ISO_8859-1")]; + char stringpool_str118[sizeof("CYRILLIC")]; + char stringpool_str119[sizeof("ISO_8859-6")]; + char stringpool_str120[sizeof("LATIN-9")]; + char stringpool_str121[sizeof("ISO_8859-3")]; + char stringpool_str122[sizeof("ISO_8859-11")]; + char stringpool_str123[sizeof("ISO_8859-2")]; + char stringpool_str124[sizeof("ISO_8859-16")]; + char stringpool_str125[sizeof("ISO_8859-5")]; + char stringpool_str126[sizeof("ISO_8859-13")]; + char stringpool_str127[sizeof("ISO8859-9")]; + char stringpool_str128[sizeof("ISO_8859-16:2001")]; + char stringpool_str129[sizeof("ISO_8859-8")]; + char stringpool_str130[sizeof("ISO_8859-15")]; + char stringpool_str131[sizeof("CP154")]; + char stringpool_str132[sizeof("ISO-IR-6")]; + char stringpool_str133[sizeof("CP949")]; + char stringpool_str135[sizeof("ISO646-CN")]; + char stringpool_str136[sizeof("MAC")]; + char stringpool_str137[sizeof("ISO_8859-15:1998")]; + char stringpool_str139[sizeof("CP1254")]; + char stringpool_str141[sizeof("ISO-8859-9")]; + char stringpool_str143[sizeof("ISO-IR-166")]; + char stringpool_str145[sizeof("ISO-IR-126")]; + char stringpool_str146[sizeof("GBK")]; + char stringpool_str148[sizeof("ISO-IR-226")]; + char stringpool_str149[sizeof("ISO-IR-165")]; + char stringpool_str150[sizeof("X0212")]; + char stringpool_str151[sizeof("ISO-IR-58")]; + char stringpool_str152[sizeof("KOI8-T")]; + char stringpool_str153[sizeof("BIG5")]; + char stringpool_str154[sizeof("ISO-IR-138")]; + char stringpool_str155[sizeof("ISO_8859-9")]; + char stringpool_str156[sizeof("L10")]; + char stringpool_str159[sizeof("850")]; + char stringpool_str160[sizeof("IBM866")]; + char stringpool_str161[sizeof("CSISO2022CN")]; + char stringpool_str163[sizeof("CSBIG5")]; + char stringpool_str164[sizeof("IBM862")]; + char stringpool_str167[sizeof("BIG-5")]; + char stringpool_str168[sizeof("ASCII")]; + char stringpool_str169[sizeof("MS936")]; + char stringpool_str170[sizeof("LATIN4")]; + char stringpool_str171[sizeof("PT154")]; + char stringpool_str172[sizeof("IBM-1131")]; + char stringpool_str173[sizeof("CP850")]; + char stringpool_str174[sizeof("EUCCN")]; + char stringpool_str175[sizeof("CP1250")]; + char stringpool_str176[sizeof("CSGB2312")]; + char stringpool_str177[sizeof("CN-BIG5")]; + char stringpool_str178[sizeof("CSASCII")]; + char stringpool_str179[sizeof("ISO-2022-CN")]; + char stringpool_str180[sizeof("L7")]; + char stringpool_str182[sizeof("ISO-IR-159")]; + char stringpool_str183[sizeof("IBM-1252")]; + char stringpool_str184[sizeof("ISO_8859-14:1998")]; + char stringpool_str186[sizeof("CP950")]; + char stringpool_str187[sizeof("IBM-921")]; + char stringpool_str188[sizeof("EUC-CN")]; + char stringpool_str190[sizeof("ISO-2022-CN-EXT")]; + char stringpool_str191[sizeof("ISO8859-4")]; + char stringpool_str192[sizeof("IBM-932")]; + char stringpool_str193[sizeof("TIS620")]; + char stringpool_str195[sizeof("IBM819")]; + char stringpool_str196[sizeof("ISO8859-14")]; + char stringpool_str197[sizeof("ISO-IR-199")]; + char stringpool_str199[sizeof("ISO_8859-10:1992")]; + char stringpool_str201[sizeof("US")]; + char stringpool_str202[sizeof("KSC_5601")]; + char stringpool_str203[sizeof("ISO-IR-148")]; + char stringpool_str204[sizeof("ISO-CELTIC")]; + char stringpool_str205[sizeof("ISO-8859-4")]; + char stringpool_str206[sizeof("UHC")]; + char stringpool_str207[sizeof("TIS-620")]; + char stringpool_str209[sizeof("ISO-IR-101")]; + char stringpool_str210[sizeof("ISO-8859-14")]; + char stringpool_str211[sizeof("LATIN10")]; + char stringpool_str213[sizeof("X0201")]; + char stringpool_str216[sizeof("ISO-IR-203")]; + char stringpool_str217[sizeof("VISCII")]; + char stringpool_str219[sizeof("ISO_8859-4")]; + char stringpool_str221[sizeof("PTCP154")]; + char stringpool_str224[sizeof("ISO_8859-14")]; + char stringpool_str225[sizeof("X0208")]; + char stringpool_str226[sizeof("IBM-CP1133")]; + char stringpool_str227[sizeof("CSVISCII")]; + char stringpool_str229[sizeof("ISO-IR-149")]; + char stringpool_str231[sizeof("UCS-2")]; + char stringpool_str232[sizeof("ISO8859-10")]; + char stringpool_str234[sizeof("RK1048")]; + char stringpool_str235[sizeof("GB_2312-80")]; + char stringpool_str236[sizeof("CSISOLATIN1")]; + char stringpool_str237[sizeof("ISO-IR-14")]; + char stringpool_str238[sizeof("CSISOLATIN6")]; + char stringpool_str239[sizeof("ELOT_928")]; + char stringpool_str240[sizeof("CSISOLATIN3")]; + char stringpool_str241[sizeof("KZ-1048")]; + char stringpool_str242[sizeof("CSISOLATIN2")]; + char stringpool_str243[sizeof("CSISOLATINCYRILLIC")]; + char stringpool_str244[sizeof("CSISOLATIN5")]; + char stringpool_str246[sizeof("ISO-8859-10")]; + char stringpool_str247[sizeof("ISO-IR-109")]; + char stringpool_str248[sizeof("CSKZ1048")]; + char stringpool_str250[sizeof("CSKOI8R")]; + char stringpool_str251[sizeof("GB18030")]; + char stringpool_str252[sizeof("CSPTCP154")]; + char stringpool_str254[sizeof("KOI8-R")]; + char stringpool_str256[sizeof("TCVN")]; + char stringpool_str258[sizeof("GB_1988-80")]; + char stringpool_str260[sizeof("ISO_8859-10")]; + char stringpool_str261[sizeof("MS-CYRL")]; + char stringpool_str268[sizeof("CSISO58GB231280")]; + char stringpool_str270[sizeof("TIS620.2533-1")]; + char stringpool_str271[sizeof("KS_C_5601-1989")]; + char stringpool_str272[sizeof("MACCYRILLIC")]; + char stringpool_str275[sizeof("HZ-GB-2312")]; + char stringpool_str277[sizeof("CN-GB-ISOIR165")]; + char stringpool_str278[sizeof("ISO-IR-110")]; + char stringpool_str281[sizeof("TIS620-0")]; + char stringpool_str283[sizeof("CN-GB")]; + char stringpool_str288[sizeof("TIS620.2529-1")]; + char stringpool_str293[sizeof("ISO-IR-144")]; + char stringpool_str294[sizeof("CSIBM866")]; + char stringpool_str298[sizeof("ISO646-US")]; + char stringpool_str299[sizeof("IBM850")]; + char stringpool_str300[sizeof("CP874")]; + char stringpool_str302[sizeof("CYRILLIC-ASIAN")]; + char stringpool_str306[sizeof("CSISOLATINGREEK")]; + char stringpool_str307[sizeof("CHAR")]; + char stringpool_str310[sizeof("BIG5HKSCS")]; + char stringpool_str313[sizeof("IBM-850")]; + char stringpool_str322[sizeof("MS-ANSI")]; + char stringpool_str323[sizeof("CSUCS4")]; + char stringpool_str324[sizeof("BIG5-HKSCS")]; + char stringpool_str327[sizeof("UCS-4")]; + char stringpool_str330[sizeof("ARMSCII-8")]; + char stringpool_str335[sizeof("GEORGIAN-PS")]; + char stringpool_str338[sizeof("CSISOLATIN4")]; + char stringpool_str339[sizeof("TIS620.2533-0")]; + char stringpool_str342[sizeof("CSISO2022KR")]; + char stringpool_str343[sizeof("MACINTOSH")]; + char stringpool_str345[sizeof("ISO-IR-179")]; + char stringpool_str347[sizeof("ISO-IR-100")]; + char stringpool_str350[sizeof("GREEK8")]; + char stringpool_str355[sizeof("EUCKR")]; + char stringpool_str358[sizeof("UTF-16")]; + char stringpool_str359[sizeof("VISCII1.1-1")]; + char stringpool_str360[sizeof("ISO-2022-KR")]; + char stringpool_str362[sizeof("CP367")]; + char stringpool_str363[sizeof("UTF-8")]; + char stringpool_str364[sizeof("UTF-32")]; + char stringpool_str369[sizeof("EUC-KR")]; + char stringpool_str371[sizeof("CP1257")]; + char stringpool_str378[sizeof("CSISO57GB1988")]; + char stringpool_str382[sizeof("CSKSC56011987")]; + char stringpool_str383[sizeof("US-ASCII")]; + char stringpool_str384[sizeof("CSISOLATINARABIC")]; + char stringpool_str385[sizeof("ISO_8859-3:1988")]; + char stringpool_str386[sizeof("CSUNICODE11")]; + char stringpool_str387[sizeof("ISO_8859-5:1988")]; + char stringpool_str389[sizeof("ISO_8859-8:1988")]; + char stringpool_str390[sizeof("UNICODE-1-1")]; + char stringpool_str391[sizeof("MACTHAI")]; + char stringpool_str392[sizeof("ROMAN8")]; + char stringpool_str393[sizeof("ISO-10646-UCS-2")]; + char stringpool_str398[sizeof("GREEK")]; + char stringpool_str402[sizeof("LATIN7")]; + char stringpool_str404[sizeof("STRK1048-2002")]; + char stringpool_str405[sizeof("WINDOWS-1251")]; + char stringpool_str406[sizeof("WINDOWS-1256")]; + char stringpool_str407[sizeof("WINDOWS-1253")]; + char stringpool_str408[sizeof("WINDOWS-1252")]; + char stringpool_str409[sizeof("WINDOWS-1255")]; + char stringpool_str411[sizeof("WINDOWS-1258")]; + char stringpool_str412[sizeof("CHINESE")]; + char stringpool_str413[sizeof("NEXTSTEP")]; + char stringpool_str415[sizeof("ISO_8859-9:1989")]; + char stringpool_str419[sizeof("KS_C_5601-1987")]; + char stringpool_str420[sizeof("WINDOWS-936")]; + char stringpool_str423[sizeof("ISO8859-7")]; + char stringpool_str434[sizeof("ISO_8859-4:1988")]; + char stringpool_str436[sizeof("CSPC862LATINHEBREW")]; + char stringpool_str437[sizeof("ISO-8859-7")]; + char stringpool_str440[sizeof("ARABIC")]; + char stringpool_str441[sizeof("ISO-10646-UCS-4")]; + char stringpool_str445[sizeof("MULELAO-1")]; + char stringpool_str446[sizeof("ECMA-118")]; + char stringpool_str448[sizeof("JP")]; + char stringpool_str451[sizeof("ISO_8859-7")]; + char stringpool_str453[sizeof("TCVN-5712")]; + char stringpool_str455[sizeof("TCVN5712-1")]; + char stringpool_str456[sizeof("WINDOWS-1254")]; + char stringpool_str459[sizeof("KOREAN")]; + char stringpool_str461[sizeof("GEORGIAN-ACADEMY")]; + char stringpool_str462[sizeof("MACICELAND")]; + char stringpool_str469[sizeof("CSISOLATINHEBREW")]; + char stringpool_str473[sizeof("ISO-IR-57")]; + char stringpool_str474[sizeof("WINDOWS-1250")]; + char stringpool_str475[sizeof("ISO-IR-87")]; + char stringpool_str477[sizeof("ISO-IR-127")]; + char stringpool_str478[sizeof("ISO-IR-157")]; + char stringpool_str481[sizeof("EUCTW")]; + char stringpool_str483[sizeof("UCS-2LE")]; + char stringpool_str487[sizeof("HP-ROMAN8")]; + char stringpool_str488[sizeof("IBM367")]; + char stringpool_str492[sizeof("KOI8-U")]; + char stringpool_str493[sizeof("UNICODEBIG")]; + char stringpool_str495[sizeof("EUC-TW")]; + char stringpool_str496[sizeof("CSMACINTOSH")]; + char stringpool_str497[sizeof("CSUNICODE")]; + char stringpool_str498[sizeof("JIS_C6226-1983")]; + char stringpool_str501[sizeof("UCS-2-INTERNAL")]; + char stringpool_str503[sizeof("ISO_646.IRV:1991")]; + char stringpool_str510[sizeof("CSISO14JISC6220RO")]; + char stringpool_str511[sizeof("ANSI_X3.4-1986")]; + char stringpool_str515[sizeof("IBM-EUCCN")]; + char stringpool_str516[sizeof("ANSI_X3.4-1968")]; + char stringpool_str518[sizeof("MS-EE")]; + char stringpool_str521[sizeof("CSPC850MULTILINGUAL")]; + char stringpool_str523[sizeof("CSHPROMAN8")]; + char stringpool_str525[sizeof("MACROMAN")]; + char stringpool_str531[sizeof("UCS-4LE")]; + char stringpool_str536[sizeof("ECMA-114")]; + char stringpool_str540[sizeof("UNICODELITTLE")]; + char stringpool_str543[sizeof("WCHAR_T")]; + char stringpool_str544[sizeof("ISO_8859-1:1987")]; + char stringpool_str545[sizeof("ISO_8859-6:1987")]; + char stringpool_str546[sizeof("ISO_8859-7:2003")]; + char stringpool_str547[sizeof("ISO_8859-2:1987")]; + char stringpool_str549[sizeof("UCS-4-INTERNAL")]; + char stringpool_str554[sizeof("CSISO159JISX02121990")]; + char stringpool_str556[sizeof("CSEUCKR")]; + char stringpool_str557[sizeof("CSUNICODE11UTF7")]; + char stringpool_str561[sizeof("ASMO-708")]; + char stringpool_str563[sizeof("UNICODE-1-1-UTF-7")]; + char stringpool_str567[sizeof("JIS_C6220-1969-RO")]; + char stringpool_str569[sizeof("KOI8-RU")]; + char stringpool_str572[sizeof("WINDOWS-1257")]; + char stringpool_str575[sizeof("CSISO2022JP2")]; + char stringpool_str579[sizeof("MS-TURK")]; + char stringpool_str583[sizeof("MACCROATIAN")]; + char stringpool_str584[sizeof("BIG5-HKSCS:2001")]; + char stringpool_str585[sizeof("ISO646-JP")]; + char stringpool_str586[sizeof("JIS0208")]; + char stringpool_str591[sizeof("ISO-2022-JP-1")]; + char stringpool_str594[sizeof("ISO-2022-JP-2")]; + char stringpool_str599[sizeof("SHIFT-JIS")]; + char stringpool_str603[sizeof("BIG5-HKSCS:1999")]; + char stringpool_str604[sizeof("UCS-2BE")]; + char stringpool_str606[sizeof("MACGREEK")]; + char stringpool_str611[sizeof("CSISO2022JP")]; + char stringpool_str612[sizeof("UTF-16LE")]; + char stringpool_str613[sizeof("SHIFT_JIS")]; + char stringpool_str615[sizeof("MS-GREEK")]; + char stringpool_str616[sizeof("UTF-32LE")]; + char stringpool_str624[sizeof("EUCJP")]; + char stringpool_str625[sizeof("MS-HEBR")]; + char stringpool_str629[sizeof("ISO-2022-JP")]; + char stringpool_str635[sizeof("BIG5-HKSCS:2004")]; + char stringpool_str638[sizeof("EUC-JP")]; + char stringpool_str648[sizeof("MACARABIC")]; + char stringpool_str652[sizeof("UCS-4BE")]; + char stringpool_str654[sizeof("UCS-2-SWAPPED")]; + char stringpool_str660[sizeof("JIS_X0212")]; + char stringpool_str662[sizeof("MACTURKISH")]; + char stringpool_str666[sizeof("CSSHIFTJIS")]; + char stringpool_str672[sizeof("WINDOWS-874")]; + char stringpool_str682[sizeof("CSEUCTW")]; + char stringpool_str685[sizeof("UTF-7")]; + char stringpool_str696[sizeof("IBM-EUCKR")]; + char stringpool_str702[sizeof("UCS-4-SWAPPED")]; + char stringpool_str711[sizeof("ISO_8859-7:1987")]; + char stringpool_str715[sizeof("BIGFIVE")]; + char stringpool_str717[sizeof("TCVN5712-1:1993")]; + char stringpool_str723[sizeof("JIS_X0201")]; + char stringpool_str729[sizeof("BIG-FIVE")]; + char stringpool_str732[sizeof("HEBREW")]; + char stringpool_str733[sizeof("UTF-16BE")]; + char stringpool_str735[sizeof("JIS_X0208")]; + char stringpool_str737[sizeof("UTF-32BE")]; + char stringpool_str741[sizeof("JISX0201-1976")]; + char stringpool_str748[sizeof("JIS_X0212-1990")]; + char stringpool_str752[sizeof("CSISO87JISX0208")]; + char stringpool_str753[sizeof("JIS_X0208-1983")]; + char stringpool_str771[sizeof("MS-ARAB")]; + char stringpool_str797[sizeof("MACCENTRALEUROPE")]; + char stringpool_str803[sizeof("CSHALFWIDTHKATAKANA")]; + char stringpool_str804[sizeof("MS_KANJI")]; + char stringpool_str807[sizeof("MACROMANIA")]; + char stringpool_str820[sizeof("JIS_X0208-1990")]; + char stringpool_str822[sizeof("IBM-EUCTW")]; + char stringpool_str826[sizeof("WINBALTRIM")]; + char stringpool_str846[sizeof("EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE")]; + char stringpool_str849[sizeof("JIS_X0212.1990-0")]; + char stringpool_str874[sizeof("CSEUCPKDFMTJAPANESE")]; + char stringpool_str885[sizeof("JOHAB")]; + char stringpool_str891[sizeof("JAVA")]; + char stringpool_str898[sizeof("MACUKRAINE")]; + char stringpool_str965[sizeof("IBM-EUCJP")]; + char stringpool_str989[sizeof("MACHEBREW")]; + }; +static const struct stringpool_t stringpool_contents = + { + "L1", + "L6", + "L3", + "L2", + "L5", + "L8", + "SJIS", + "866", + "CN", + "862", + "CP1131", + "CP1361", + "CP866", + "CP1133", + "CP1251", + "CP862", + "CP1256", + "CP1253", + "GB2312", + "CP1252", + "CP1255", + "CP936", + "CP1258", + "CP932", + "C99", + "L4", + "LATIN1", + "CP819", + "LATIN6", + "LATIN3", + "LATIN2", + "LATIN5", + "LATIN8", + "R8", + "ISO8859-1", + "ISO8859-6", + "HZ", + "ISO8859-3", + "ISO8859-11", + "ISO8859-2", + "ISO8859-16", + "ISO8859-5", + "ISO8859-13", + "ISO8859-8", + "ISO8859-15", + "ISO-8859-1", + "ISO-8859-6", + "ISO-8859-3", + "ISO-8859-11", + "ISO-8859-2", + "ISO-8859-16", + "ISO-8859-5", + "ISO-8859-13", + "ISO-8859-8", + "ISO-8859-15", + "ISO_8859-1", + "CYRILLIC", + "ISO_8859-6", + "LATIN-9", + "ISO_8859-3", + "ISO_8859-11", + "ISO_8859-2", + "ISO_8859-16", + "ISO_8859-5", + "ISO_8859-13", + "ISO8859-9", + "ISO_8859-16:2001", + "ISO_8859-8", + "ISO_8859-15", + "CP154", + "ISO-IR-6", + "CP949", + "ISO646-CN", + "MAC", + "ISO_8859-15:1998", + "CP1254", + "ISO-8859-9", + "ISO-IR-166", + "ISO-IR-126", + "GBK", + "ISO-IR-226", + "ISO-IR-165", + "X0212", + "ISO-IR-58", + "KOI8-T", + "BIG5", + "ISO-IR-138", + "ISO_8859-9", + "L10", + "850", + "IBM866", + "CSISO2022CN", + "CSBIG5", + "IBM862", + "BIG-5", + "ASCII", + "MS936", + "LATIN4", + "PT154", + "IBM-1131", + "CP850", + "EUCCN", + "CP1250", + "CSGB2312", + "CN-BIG5", + "CSASCII", + "ISO-2022-CN", + "L7", + "ISO-IR-159", + "IBM-1252", + "ISO_8859-14:1998", + "CP950", + "IBM-921", + "EUC-CN", + "ISO-2022-CN-EXT", + "ISO8859-4", + "IBM-932", + "TIS620", + "IBM819", + "ISO8859-14", + "ISO-IR-199", + "ISO_8859-10:1992", + "US", + "KSC_5601", + "ISO-IR-148", + "ISO-CELTIC", + "ISO-8859-4", + "UHC", + "TIS-620", + "ISO-IR-101", + "ISO-8859-14", + "LATIN10", + "X0201", + "ISO-IR-203", + "VISCII", + "ISO_8859-4", + "PTCP154", + "ISO_8859-14", + "X0208", + "IBM-CP1133", + "CSVISCII", + "ISO-IR-149", + "UCS-2", + "ISO8859-10", + "RK1048", + "GB_2312-80", + "CSISOLATIN1", + "ISO-IR-14", + "CSISOLATIN6", + "ELOT_928", + "CSISOLATIN3", + "KZ-1048", + "CSISOLATIN2", + "CSISOLATINCYRILLIC", + "CSISOLATIN5", + "ISO-8859-10", + "ISO-IR-109", + "CSKZ1048", + "CSKOI8R", + "GB18030", + "CSPTCP154", + "KOI8-R", + "TCVN", + "GB_1988-80", + "ISO_8859-10", + "MS-CYRL", + "CSISO58GB231280", + "TIS620.2533-1", + "KS_C_5601-1989", + "MACCYRILLIC", + "HZ-GB-2312", + "CN-GB-ISOIR165", + "ISO-IR-110", + "TIS620-0", + "CN-GB", + "TIS620.2529-1", + "ISO-IR-144", + "CSIBM866", + "ISO646-US", + "IBM850", + "CP874", + "CYRILLIC-ASIAN", + "CSISOLATINGREEK", + "CHAR", + "BIG5HKSCS", + "IBM-850", + "MS-ANSI", + "CSUCS4", + "BIG5-HKSCS", + "UCS-4", + "ARMSCII-8", + "GEORGIAN-PS", + "CSISOLATIN4", + "TIS620.2533-0", + "CSISO2022KR", + "MACINTOSH", + "ISO-IR-179", + "ISO-IR-100", + "GREEK8", + "EUCKR", + "UTF-16", + "VISCII1.1-1", + "ISO-2022-KR", + "CP367", + "UTF-8", + "UTF-32", + "EUC-KR", + "CP1257", + "CSISO57GB1988", + "CSKSC56011987", + "US-ASCII", + "CSISOLATINARABIC", + "ISO_8859-3:1988", + "CSUNICODE11", + "ISO_8859-5:1988", + "ISO_8859-8:1988", + "UNICODE-1-1", + "MACTHAI", + "ROMAN8", + "ISO-10646-UCS-2", + "GREEK", + "LATIN7", + "STRK1048-2002", + "WINDOWS-1251", + "WINDOWS-1256", + "WINDOWS-1253", + "WINDOWS-1252", + "WINDOWS-1255", + "WINDOWS-1258", + "CHINESE", + "NEXTSTEP", + "ISO_8859-9:1989", + "KS_C_5601-1987", + "WINDOWS-936", + "ISO8859-7", + "ISO_8859-4:1988", + "CSPC862LATINHEBREW", + "ISO-8859-7", + "ARABIC", + "ISO-10646-UCS-4", + "MULELAO-1", + "ECMA-118", + "JP", + "ISO_8859-7", + "TCVN-5712", + "TCVN5712-1", + "WINDOWS-1254", + "KOREAN", + "GEORGIAN-ACADEMY", + "MACICELAND", + "CSISOLATINHEBREW", + "ISO-IR-57", + "WINDOWS-1250", + "ISO-IR-87", + "ISO-IR-127", + "ISO-IR-157", + "EUCTW", + "UCS-2LE", + "HP-ROMAN8", + "IBM367", + "KOI8-U", + "UNICODEBIG", + "EUC-TW", + "CSMACINTOSH", + "CSUNICODE", + "JIS_C6226-1983", + "UCS-2-INTERNAL", + "ISO_646.IRV:1991", + "CSISO14JISC6220RO", + "ANSI_X3.4-1986", + "IBM-EUCCN", + "ANSI_X3.4-1968", + "MS-EE", + "CSPC850MULTILINGUAL", + "CSHPROMAN8", + "MACROMAN", + "UCS-4LE", + "ECMA-114", + "UNICODELITTLE", + "WCHAR_T", + "ISO_8859-1:1987", + "ISO_8859-6:1987", + "ISO_8859-7:2003", + "ISO_8859-2:1987", + "UCS-4-INTERNAL", + "CSISO159JISX02121990", + "CSEUCKR", + "CSUNICODE11UTF7", + "ASMO-708", + "UNICODE-1-1-UTF-7", + "JIS_C6220-1969-RO", + "KOI8-RU", + "WINDOWS-1257", + "CSISO2022JP2", + "MS-TURK", + "MACCROATIAN", + "BIG5-HKSCS:2001", + "ISO646-JP", + "JIS0208", + "ISO-2022-JP-1", + "ISO-2022-JP-2", + "SHIFT-JIS", + "BIG5-HKSCS:1999", + "UCS-2BE", + "MACGREEK", + "CSISO2022JP", + "UTF-16LE", + "SHIFT_JIS", + "MS-GREEK", + "UTF-32LE", + "EUCJP", + "MS-HEBR", + "ISO-2022-JP", + "BIG5-HKSCS:2004", + "EUC-JP", + "MACARABIC", + "UCS-4BE", + "UCS-2-SWAPPED", + "JIS_X0212", + "MACTURKISH", + "CSSHIFTJIS", + "WINDOWS-874", + "CSEUCTW", + "UTF-7", + "IBM-EUCKR", + "UCS-4-SWAPPED", + "ISO_8859-7:1987", + "BIGFIVE", + "TCVN5712-1:1993", + "JIS_X0201", + "BIG-FIVE", + "HEBREW", + "UTF-16BE", + "JIS_X0208", + "UTF-32BE", + "JISX0201-1976", + "JIS_X0212-1990", + "CSISO87JISX0208", + "JIS_X0208-1983", + "MS-ARAB", + "MACCENTRALEUROPE", + "CSHALFWIDTHKATAKANA", + "MS_KANJI", + "MACROMANIA", + "JIS_X0208-1990", + "IBM-EUCTW", + "WINBALTRIM", + "EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE", + "JIS_X0212.1990-0", + "CSEUCPKDFMTJAPANESE", + "JOHAB", + "JAVA", + "MACUKRAINE", + "IBM-EUCJP", + "MACHEBREW" + }; +#define stringpool ((const char *) &stringpool_contents) + +static const struct alias aliases[] = + { + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, +#line 60 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, ei_iso8859_1}, +#line 134 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, ei_iso8859_10}, +#line 76 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, ei_iso8859_3}, +#line 68 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, ei_iso8859_2}, +#line 126 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, ei_iso8859_9}, + {-1}, +#line 152 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, ei_iso8859_14}, +#line 313 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str20, ei_sjis}, + {-1}, {-1}, +#line 210 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str23, ei_cp866}, +#line 292 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str24, ei_iso646_cn}, + {-1}, {-1}, +#line 206 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str27, ei_cp862}, + {-1}, {-1}, {-1}, {-1}, +#line 212 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str32, ei_cp1131}, +#line 362 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str33, ei_johab}, +#line 208 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str34, ei_cp866}, + {-1}, +#line 248 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str36, ei_cp1133}, +#line 175 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str37, ei_cp1251}, +#line 204 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str38, ei_cp862}, +#line 191 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str39, ei_cp1256}, + {-1}, +#line 182 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str41, ei_cp1253}, +#line 325 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str42, ei_euc_cn}, +#line 178 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str43, ei_cp1252}, + {-1}, +#line 188 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str45, ei_cp1255}, + {-1}, {-1}, +#line 330 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str48, ei_cp936}, +#line 197 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str49, ei_cp1258}, + {-1}, {-1}, +#line 316 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str52, ei_cp932}, +#line 51 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str53, ei_c99}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, +#line 84 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str64, ei_iso8859_4}, + {-1}, {-1}, {-1}, +#line 59 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str68, ei_iso8859_1}, +#line 57 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str69, ei_iso8859_1}, +#line 133 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str70, ei_iso8859_10}, + {-1}, +#line 75 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str72, ei_iso8859_3}, + {-1}, +#line 67 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str74, ei_iso8859_2}, + {-1}, +#line 125 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str76, ei_iso8859_9}, + {-1}, {-1}, {-1}, +#line 151 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str80, ei_iso8859_14}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 231 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str88, ei_hp_roman8}, +#line 62 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str89, ei_iso8859_1}, + {-1}, +#line 102 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str91, ei_iso8859_6}, +#line 337 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str92, ei_hz}, +#line 78 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str93, ei_iso8859_3}, +#line 139 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str94, ei_iso8859_11}, +#line 70 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str95, ei_iso8859_2}, +#line 167 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str96, ei_iso8859_16}, +#line 93 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str97, ei_iso8859_5}, +#line 145 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str98, ei_iso8859_13}, + {-1}, {-1}, +#line 120 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str101, ei_iso8859_8}, +#line 160 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str102, ei_iso8859_15}, +#line 53 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str103, ei_iso8859_1}, + {-1}, +#line 94 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str105, ei_iso8859_6}, + {-1}, +#line 71 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str107, ei_iso8859_3}, +#line 137 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str108, ei_iso8859_11}, +#line 63 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str109, ei_iso8859_2}, +#line 161 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str110, ei_iso8859_16}, +#line 87 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str111, ei_iso8859_5}, +#line 140 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str112, ei_iso8859_13}, + {-1}, {-1}, +#line 114 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str115, ei_iso8859_8}, +#line 155 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str116, ei_iso8859_15}, +#line 54 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str117, ei_iso8859_1}, +#line 91 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str118, ei_iso8859_5}, +#line 95 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str119, ei_iso8859_6}, +#line 159 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str120, ei_iso8859_15}, +#line 72 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str121, ei_iso8859_3}, +#line 138 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str122, ei_iso8859_11}, +#line 64 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str123, ei_iso8859_2}, +#line 162 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str124, ei_iso8859_16}, +#line 88 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str125, ei_iso8859_5}, +#line 141 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str126, ei_iso8859_13}, +#line 128 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str127, ei_iso8859_9}, +#line 163 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str128, ei_iso8859_16}, +#line 115 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str129, ei_iso8859_8}, +#line 156 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str130, ei_iso8859_15}, +#line 240 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str131, ei_pt154}, +#line 16 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str132, ei_ascii}, +#line 359 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str133, ei_cp949}, + {-1}, +#line 290 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str135, ei_iso646_cn}, +#line 216 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str136, ei_mac_roman}, +#line 157 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str137, ei_iso8859_15}, + {-1}, +#line 185 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str139, ei_cp1254}, + {-1}, +#line 121 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str141, ei_iso8859_9}, + {-1}, +#line 256 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str143, ei_tis620}, + {-1}, +#line 107 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str145, ei_iso8859_7}, +#line 329 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str146, ei_ces_gbk}, + {-1}, +#line 164 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str148, ei_iso8859_16}, +#line 298 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str149, ei_isoir165}, +#line 286 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str150, ei_jisx0212}, +#line 295 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str151, ei_gb2312}, +#line 237 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str152, ei_koi8_t}, +#line 343 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str153, ei_ces_big5}, +#line 117 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str154, ei_iso8859_8}, +#line 122 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str155, ei_iso8859_9}, +#line 166 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str156, ei_iso8859_16}, + {-1}, {-1}, +#line 201 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str159, ei_cp850}, +#line 209 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str160, ei_cp866}, +#line 335 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str161, ei_iso2022_cn}, + {-1}, +#line 348 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str163, ei_ces_big5}, +#line 205 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str164, ei_cp862}, + {-1}, {-1}, +#line 344 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str167, ei_ces_big5}, +#line 13 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str168, ei_ascii}, +#line 331 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str169, ei_cp936}, +#line 83 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str170, ei_iso8859_4}, +#line 238 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str171, ei_pt154}, +#line 213 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str172, ei_cp1131}, +#line 199 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str173, ei_cp850}, +#line 324 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str174, ei_euc_cn}, +#line 172 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str175, ei_cp1250}, +#line 327 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str176, ei_euc_cn}, +#line 347 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str177, ei_ces_big5}, +#line 22 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str178, ei_ascii}, +#line 334 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str179, ei_iso2022_cn}, +#line 144 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str180, ei_iso8859_13}, + {-1}, +#line 287 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str182, ei_jisx0212}, +#line 181 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str183, ei_cp1252}, +#line 149 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str184, ei_iso8859_14}, + {-1}, +#line 349 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str186, ei_cp950}, +#line 146 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str187, ei_iso8859_13}, +#line 323 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str188, ei_euc_cn}, + {-1}, +#line 336 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str190, ei_iso2022_cn_ext}, +#line 86 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str191, ei_iso8859_4}, +#line 317 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str192, ei_cp932}, +#line 251 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str193, ei_tis620}, + {-1}, +#line 58 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str195, ei_iso8859_1}, +#line 154 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str196, ei_iso8859_14}, +#line 150 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str197, ei_iso8859_14}, + {-1}, +#line 131 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str199, ei_iso8859_10}, + {-1}, +#line 21 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str201, ei_ascii}, +#line 300 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str202, ei_ksc5601}, +#line 124 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str203, ei_iso8859_9}, +#line 153 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str204, ei_iso8859_14}, +#line 79 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str205, ei_iso8859_4}, +#line 360 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str206, ei_cp949}, +#line 250 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str207, ei_tis620}, + {-1}, +#line 66 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str209, ei_iso8859_2}, +#line 147 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str210, ei_iso8859_14}, +#line 165 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str211, ei_iso8859_16}, + {-1}, +#line 273 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str213, ei_jisx0201}, + {-1}, {-1}, +#line 158 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str216, ei_iso8859_15}, +#line 259 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str217, ei_viscii}, + {-1}, +#line 80 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str219, ei_iso8859_4}, + {-1}, +#line 239 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str221, ei_pt154}, + {-1}, {-1}, +#line 148 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str224, ei_iso8859_14}, +#line 279 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str225, ei_jisx0208}, +#line 249 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str226, ei_cp1133}, +#line 261 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str227, ei_viscii}, + {-1}, +#line 303 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str229, ei_ksc5601}, + {-1}, +#line 24 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str231, ei_ucs2}, +#line 136 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str232, ei_iso8859_10}, + {-1}, +#line 243 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str234, ei_rk1048}, +#line 294 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str235, ei_gb2312}, +#line 61 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str236, ei_iso8859_1}, +#line 268 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str237, ei_iso646_jp}, +#line 135 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str238, ei_iso8859_10}, +#line 109 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str239, ei_iso8859_7}, +#line 77 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str240, ei_iso8859_3}, +#line 245 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str241, ei_rk1048}, +#line 69 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str242, ei_iso8859_2}, +#line 92 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str243, ei_iso8859_5}, +#line 127 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str244, ei_iso8859_9}, + {-1}, +#line 129 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str246, ei_iso8859_10}, +#line 74 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str247, ei_iso8859_3}, +#line 246 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str248, ei_rk1048}, + {-1}, +#line 169 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str250, ei_koi8_r}, +#line 333 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str251, ei_gb18030}, +#line 242 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str252, ei_pt154}, + {-1}, +#line 168 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str254, ei_koi8_r}, + {-1}, +#line 262 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str256, ei_tcvn}, + {-1}, +#line 289 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str258, ei_iso646_cn}, + {-1}, +#line 130 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str260, ei_iso8859_10}, +#line 177 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str261, ei_cp1251}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 296 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str268, ei_gb2312}, + {-1}, +#line 255 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str270, ei_tis620}, +#line 302 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str271, ei_ksc5601}, +#line 222 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str272, ei_mac_cyrillic}, + {-1}, {-1}, +#line 338 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str275, ei_hz}, + {-1}, +#line 299 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str277, ei_isoir165}, +#line 82 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str278, ei_iso8859_4}, + {-1}, {-1}, +#line 252 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str281, ei_tis620}, + {-1}, +#line 326 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str283, ei_euc_cn}, + {-1}, {-1}, {-1}, {-1}, +#line 253 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str288, ei_tis620}, + {-1}, {-1}, {-1}, {-1}, +#line 90 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str293, ei_iso8859_5}, +#line 211 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str294, ei_cp866}, + {-1}, {-1}, {-1}, +#line 14 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str298, ei_ascii}, +#line 200 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str299, ei_cp850}, +#line 257 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str300, ei_cp874}, + {-1}, +#line 241 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str302, ei_pt154}, + {-1}, {-1}, {-1}, +#line 112 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str306, ei_iso8859_7}, +#line 365 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str307, ei_local_char}, + {-1}, {-1}, +#line 353 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str310, ei_big5hkscs2004}, + {-1}, {-1}, +#line 203 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str313, ei_cp850}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 180 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str322, ei_cp1252}, +#line 35 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str323, ei_ucs4}, +#line 352 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str324, ei_big5hkscs2004}, + {-1}, {-1}, +#line 33 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str327, ei_ucs4}, + {-1}, {-1}, +#line 234 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str330, ei_armscii_8}, + {-1}, {-1}, {-1}, {-1}, +#line 236 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str335, ei_georgian_ps}, + {-1}, {-1}, +#line 85 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str338, ei_iso8859_4}, +#line 254 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str339, ei_tis620}, + {-1}, {-1}, +#line 364 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str342, ei_iso2022_kr}, +#line 215 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str343, ei_mac_roman}, + {-1}, +#line 142 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str345, ei_iso8859_13}, + {-1}, +#line 56 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str347, ei_iso8859_1}, + {-1}, {-1}, +#line 110 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str350, ei_iso8859_7}, + {-1}, {-1}, {-1}, {-1}, +#line 356 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str355, ei_euc_kr}, + {-1}, {-1}, +#line 38 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str358, ei_utf16}, +#line 260 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str359, ei_viscii}, +#line 363 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str360, ei_iso2022_kr}, + {-1}, +#line 19 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str362, ei_ascii}, +#line 23 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str363, ei_utf8}, +#line 41 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str364, ei_utf32}, + {-1}, {-1}, {-1}, {-1}, +#line 355 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str369, ei_euc_kr}, + {-1}, +#line 194 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str371, ei_cp1257}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 293 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str378, ei_iso646_cn}, + {-1}, {-1}, {-1}, +#line 304 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str382, ei_ksc5601}, +#line 12 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str383, ei_ascii}, +#line 101 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str384, ei_iso8859_6}, +#line 73 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str385, ei_iso8859_3}, +#line 30 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str386, ei_ucs2be}, +#line 89 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str387, ei_iso8859_5}, + {-1}, +#line 116 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str389, ei_iso8859_8}, +#line 29 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str390, ei_ucs2be}, +#line 228 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str391, ei_mac_thai}, +#line 230 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str392, ei_hp_roman8}, +#line 25 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str393, ei_ucs2}, + {-1}, {-1}, {-1}, {-1}, +#line 111 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str398, ei_iso8859_7}, + {-1}, {-1}, {-1}, +#line 143 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str402, ei_iso8859_13}, + {-1}, +#line 244 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str404, ei_rk1048}, +#line 176 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str405, ei_cp1251}, +#line 192 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str406, ei_cp1256}, +#line 183 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str407, ei_cp1253}, +#line 179 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str408, ei_cp1252}, +#line 189 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str409, ei_cp1255}, + {-1}, +#line 198 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str411, ei_cp1258}, +#line 297 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str412, ei_gb2312}, +#line 233 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str413, ei_nextstep}, + {-1}, +#line 123 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str415, ei_iso8859_9}, + {-1}, {-1}, {-1}, +#line 301 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str419, ei_ksc5601}, +#line 332 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str420, ei_cp936}, + {-1}, {-1}, +#line 113 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str423, ei_iso8859_7}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, +#line 81 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str434, ei_iso8859_4}, + {-1}, +#line 207 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str436, ei_cp862}, +#line 103 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str437, ei_iso8859_7}, + {-1}, {-1}, +#line 100 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str440, ei_iso8859_6}, +#line 34 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str441, ei_ucs4}, + {-1}, {-1}, {-1}, +#line 247 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str445, ei_mulelao}, +#line 108 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str446, ei_iso8859_7}, + {-1}, +#line 269 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str448, ei_iso646_jp}, + {-1}, {-1}, +#line 104 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str451, ei_iso8859_7}, + {-1}, +#line 263 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str453, ei_tcvn}, + {-1}, +#line 264 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str455, ei_tcvn}, +#line 186 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str456, ei_cp1254}, + {-1}, {-1}, +#line 305 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str459, ei_ksc5601}, + {-1}, +#line 235 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str461, ei_georgian_academy}, +#line 219 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str462, ei_mac_iceland}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 119 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str469, ei_iso8859_8}, + {-1}, {-1}, {-1}, +#line 291 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str473, ei_iso646_cn}, +#line 173 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str474, ei_cp1250}, +#line 280 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str475, ei_jisx0208}, + {-1}, +#line 97 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str477, ei_iso8859_6}, +#line 132 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str478, ei_iso8859_10}, + {-1}, {-1}, +#line 340 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str481, ei_euc_tw}, + {-1}, +#line 31 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str483, ei_ucs2le}, + {-1}, {-1}, {-1}, +#line 229 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str487, ei_hp_roman8}, +#line 20 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str488, ei_ascii}, + {-1}, {-1}, {-1}, +#line 170 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str492, ei_koi8_u}, +#line 28 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str493, ei_ucs2be}, + {-1}, +#line 339 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str495, ei_euc_tw}, +#line 217 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str496, ei_mac_roman}, +#line 26 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str497, ei_ucs2}, +#line 281 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str498, ei_jisx0208}, + {-1}, {-1}, +#line 47 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str501, ei_ucs2internal}, + {-1}, +#line 15 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str503, ei_ascii}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 270 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str510, ei_iso646_jp}, +#line 18 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str511, ei_ascii}, + {-1}, {-1}, {-1}, +#line 328 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str515, ei_euc_cn}, +#line 17 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str516, ei_ascii}, + {-1}, +#line 174 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str518, ei_cp1250}, + {-1}, {-1}, +#line 202 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str521, ei_cp850}, + {-1}, +#line 232 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str523, ei_hp_roman8}, + {-1}, +#line 214 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str525, ei_mac_roman}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 37 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str531, ei_ucs4le}, + {-1}, {-1}, {-1}, {-1}, +#line 98 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str536, ei_iso8859_6}, + {-1}, {-1}, {-1}, +#line 32 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str540, ei_ucs2le}, + {-1}, {-1}, +#line 366 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str543, ei_local_wchar_t}, +#line 55 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str544, ei_iso8859_1}, +#line 96 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str545, ei_iso8859_6}, +#line 106 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str546, ei_iso8859_7}, +#line 65 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str547, ei_iso8859_2}, + {-1}, +#line 49 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str549, ei_ucs4internal}, + {-1}, {-1}, {-1}, {-1}, +#line 288 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str554, ei_jisx0212}, + {-1}, +#line 357 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str556, ei_euc_kr}, +#line 46 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str557, ei_utf7}, + {-1}, {-1}, {-1}, +#line 99 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str561, ei_iso8859_6}, + {-1}, +#line 45 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str563, ei_utf7}, + {-1}, {-1}, {-1}, +#line 266 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str567, ei_iso646_jp}, + {-1}, +#line 171 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str569, ei_koi8_ru}, + {-1}, {-1}, +#line 195 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str572, ei_cp1257}, + {-1}, {-1}, +#line 322 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str575, ei_iso2022_jp2}, + {-1}, {-1}, {-1}, +#line 187 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str579, ei_cp1254}, + {-1}, {-1}, {-1}, +#line 220 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str583, ei_mac_croatian}, +#line 351 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str584, ei_big5hkscs2001}, +#line 267 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str585, ei_iso646_jp}, +#line 278 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str586, ei_jisx0208}, + {-1}, {-1}, {-1}, {-1}, +#line 320 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str591, ei_iso2022_jp1}, + {-1}, {-1}, +#line 321 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str594, ei_iso2022_jp2}, + {-1}, {-1}, {-1}, {-1}, +#line 312 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str599, ei_sjis}, + {-1}, {-1}, {-1}, +#line 350 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str603, ei_big5hkscs1999}, +#line 27 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str604, ei_ucs2be}, + {-1}, +#line 224 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str606, ei_mac_greek}, + {-1}, {-1}, {-1}, {-1}, +#line 319 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str611, ei_iso2022_jp}, +#line 40 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str612, ei_utf16le}, +#line 311 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str613, ei_sjis}, + {-1}, +#line 184 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str615, ei_cp1253}, +#line 43 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str616, ei_utf32le}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 307 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str624, ei_euc_jp}, +#line 190 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str625, ei_cp1255}, + {-1}, {-1}, {-1}, +#line 318 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str629, ei_iso2022_jp}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 354 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str635, ei_big5hkscs2004}, + {-1}, {-1}, +#line 306 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str638, ei_euc_jp}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 227 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str648, ei_mac_arabic}, + {-1}, {-1}, {-1}, +#line 36 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str652, ei_ucs4be}, + {-1}, +#line 48 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str654, ei_ucs2swapped}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 283 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str660, ei_jisx0212}, + {-1}, +#line 225 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str662, ei_mac_turkish}, + {-1}, {-1}, {-1}, +#line 315 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str666, ei_sjis}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 258 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str672, ei_cp874}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 341 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str682, ei_euc_tw}, + {-1}, {-1}, +#line 44 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str685, ei_utf7}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, +#line 358 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str696, ei_euc_kr}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 50 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str702, ei_ucs4swapped}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 105 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str711, ei_iso8859_7}, + {-1}, {-1}, {-1}, +#line 346 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str715, ei_ces_big5}, + {-1}, +#line 265 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str717, ei_tcvn}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 271 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str723, ei_jisx0201}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 345 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str729, ei_ces_big5}, + {-1}, {-1}, +#line 118 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str732, ei_iso8859_8}, +#line 39 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str733, ei_utf16be}, + {-1}, +#line 275 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str735, ei_jisx0208}, + {-1}, +#line 42 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str737, ei_utf32be}, + {-1}, {-1}, {-1}, +#line 272 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str741, ei_jisx0201}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 285 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str748, ei_jisx0212}, + {-1}, {-1}, {-1}, +#line 282 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str752, ei_jisx0208}, +#line 276 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str753, ei_jisx0208}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 193 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str771, ei_cp1256}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 218 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str797, ei_mac_centraleurope}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 274 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str803, ei_jisx0201}, +#line 314 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str804, ei_sjis}, + {-1}, {-1}, +#line 221 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str807, ei_mac_romania}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, +#line 277 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str820, ei_jisx0208}, + {-1}, +#line 342 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str822, ei_euc_tw}, + {-1}, {-1}, {-1}, +#line 196 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str826, ei_cp1257}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, +#line 308 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str846, ei_euc_jp}, + {-1}, {-1}, +#line 284 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str849, ei_jisx0212}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 309 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str874, ei_euc_jp}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, +#line 361 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str885, ei_johab}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 52 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str891, ei_java}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 223 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str898, ei_mac_ukraine}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, +#line 310 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str965, ei_euc_jp}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 226 "lib/aliases_sysaix.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str989, ei_mac_hebrew} + }; + +#ifdef __GNUC__ +__inline +#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ +__attribute__ ((__gnu_inline__)) +#endif +#endif +const struct alias * +aliases_lookup (register const char *str, register unsigned int len) +{ + if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) + { + register int key = aliases_hash (str, len); + + if (key <= MAX_HASH_VALUE && key >= 0) + { + register int o = aliases[key].name; + if (o >= 0) + { + register const char *s = o + stringpool; + + if (*str == *s && !strcmp (str + 1, s + 1)) + return &aliases[key]; + } + } + } + return 0; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/aliases_syshpux.h b/graf2d/win32gdk/gdk/src/iconv/aliases_syshpux.h new file mode 100644 index 00000000000..5f76df3b24e --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/aliases_syshpux.h @@ -0,0 +1,1769 @@ +/* ANSI-C code produced by gperf version 3.0.4 */ +/* Command-line: gperf -m 10 lib/aliases_syshpux.gperf */ +/* Computed positions: -k'1,3-11,$' */ + +#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ + && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ + && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ + && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ + && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ + && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ + && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ + && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ + && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ + && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ + && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ + && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ + && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ + && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ + && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ + && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ + && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ + && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ + && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ + && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ + && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ + && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ + && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) +/* The character set is not based on ISO-646. */ +#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>." +#endif + +#line 1 "lib/aliases_syshpux.gperf" +struct alias { int name; unsigned int encoding_index; }; + +#define TOTAL_KEYWORDS 356 +#define MIN_WORD_LENGTH 2 +#define MAX_WORD_LENGTH 45 +#define MIN_HASH_VALUE 9 +#define MAX_HASH_VALUE 1038 +/* maximum key range = 1030, duplicates = 0 */ + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static unsigned int +aliases_hash (register const char *str, register unsigned int len) +{ + static const unsigned short asso_values[] = + { + 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, + 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, + 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, + 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, + 1039, 1039, 1039, 1039, 1039, 0, 112, 1039, 57, 2, + 0, 20, 51, 8, 5, 49, 13, 16, 335, 1039, + 1039, 1039, 1039, 1039, 1039, 13, 149, 1, 6, 10, + 55, 139, 10, 0, 328, 86, 210, 147, 6, 0, + 73, 1039, 120, 6, 17, 282, 238, 172, 274, 2, + 0, 1039, 1039, 1039, 1039, 34, 1039, 1039, 1039, 1039, + 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, + 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, + 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039 + }; + register int hval = len; + + switch (hval) + { + default: + hval += asso_values[(unsigned char)str[10]]; + /*FALLTHROUGH*/ + case 10: + hval += asso_values[(unsigned char)str[9]]; + /*FALLTHROUGH*/ + case 9: + hval += asso_values[(unsigned char)str[8]]; + /*FALLTHROUGH*/ + case 8: + hval += asso_values[(unsigned char)str[7]]; + /*FALLTHROUGH*/ + case 7: + hval += asso_values[(unsigned char)str[6]]; + /*FALLTHROUGH*/ + case 6: + hval += asso_values[(unsigned char)str[5]]; + /*FALLTHROUGH*/ + case 5: + hval += asso_values[(unsigned char)str[4]]; + /*FALLTHROUGH*/ + case 4: + hval += asso_values[(unsigned char)str[3]]; + /*FALLTHROUGH*/ + case 3: + hval += asso_values[(unsigned char)str[2]]; + /*FALLTHROUGH*/ + case 2: + case 1: + hval += asso_values[(unsigned char)str[0]]; + break; + } + return hval + asso_values[(unsigned char)str[len - 1]]; +} + +struct stringpool_t + { + char stringpool_str9[sizeof("CN")]; + char stringpool_str12[sizeof("HZ")]; + char stringpool_str16[sizeof("862")]; + char stringpool_str17[sizeof("CP1252")]; + char stringpool_str19[sizeof("ASCII")]; + char stringpool_str21[sizeof("CP1251")]; + char stringpool_str22[sizeof("SJIS")]; + char stringpool_str24[sizeof("CP862")]; + char stringpool_str26[sizeof("866")]; + char stringpool_str27[sizeof("CP1256")]; + char stringpool_str28[sizeof("CSASCII")]; + char stringpool_str29[sizeof("EUCCN")]; + char stringpool_str30[sizeof("EUC-CN")]; + char stringpool_str33[sizeof("CP1255")]; + char stringpool_str34[sizeof("CP866")]; + char stringpool_str35[sizeof("CP1131")]; + char stringpool_str36[sizeof("C99")]; + char stringpool_str38[sizeof("CP1361")]; + char stringpool_str39[sizeof("HP15CN")]; + char stringpool_str42[sizeof("CP932")]; + char stringpool_str43[sizeof("CP1258")]; + char stringpool_str50[sizeof("CHINESE")]; + char stringpool_str52[sizeof("CP936")]; + char stringpool_str53[sizeof("CP819")]; + char stringpool_str57[sizeof("CP1253")]; + char stringpool_str58[sizeof("ISO88592")]; + char stringpool_str59[sizeof("ISO8859-2")]; + char stringpool_str60[sizeof("ISO-8859-2")]; + char stringpool_str62[sizeof("ISO88591")]; + char stringpool_str63[sizeof("ISO8859-1")]; + char stringpool_str64[sizeof("ISO-8859-1")]; + char stringpool_str66[sizeof("ISO8859-11")]; + char stringpool_str67[sizeof("ISO-8859-11")]; + char stringpool_str68[sizeof("ISO88596")]; + char stringpool_str69[sizeof("ISO8859-6")]; + char stringpool_str70[sizeof("ISO-8859-6")]; + char stringpool_str71[sizeof("CP1133")]; + char stringpool_str72[sizeof("ISO8859-16")]; + char stringpool_str73[sizeof("ISO-8859-16")]; + char stringpool_str74[sizeof("ISO88595")]; + char stringpool_str75[sizeof("ISO8859-5")]; + char stringpool_str76[sizeof("ISO-8859-5")]; + char stringpool_str77[sizeof("ISO885915")]; + char stringpool_str78[sizeof("ISO8859-15")]; + char stringpool_str79[sizeof("ISO-8859-15")]; + char stringpool_str81[sizeof("ISO-2022-CN")]; + char stringpool_str83[sizeof("ISO646-CN")]; + char stringpool_str84[sizeof("ISO88598")]; + char stringpool_str85[sizeof("ISO8859-8")]; + char stringpool_str86[sizeof("ISO-8859-8")]; + char stringpool_str88[sizeof("CSISO2022CN")]; + char stringpool_str90[sizeof("ISO88599")]; + char stringpool_str91[sizeof("ISO8859-9")]; + char stringpool_str92[sizeof("ISO-8859-9")]; + char stringpool_str94[sizeof("ISO_8859-2")]; + char stringpool_str96[sizeof("ISO-2022-CN-EXT")]; + char stringpool_str98[sizeof("ISO_8859-1")]; + char stringpool_str99[sizeof("ISO8859-3")]; + char stringpool_str100[sizeof("ISO-8859-3")]; + char stringpool_str101[sizeof("ISO_8859-11")]; + char stringpool_str102[sizeof("ISO8859-13")]; + char stringpool_str103[sizeof("ISO-8859-13")]; + char stringpool_str104[sizeof("ISO_8859-6")]; + char stringpool_str105[sizeof("CP949")]; + char stringpool_str107[sizeof("ISO_8859-16")]; + char stringpool_str109[sizeof("ISO_8859-16:2001")]; + char stringpool_str110[sizeof("ISO_8859-5")]; + char stringpool_str111[sizeof("ELOT_928")]; + char stringpool_str113[sizeof("ISO_8859-15")]; + char stringpool_str115[sizeof("CP1257")]; + char stringpool_str118[sizeof("CP154")]; + char stringpool_str119[sizeof("CP1254")]; + char stringpool_str120[sizeof("ISO_8859-8")]; + char stringpool_str123[sizeof("ISO_8859-15:1998")]; + char stringpool_str126[sizeof("ISO_8859-9")]; + char stringpool_str129[sizeof("CP367")]; + char stringpool_str130[sizeof("850")]; + char stringpool_str131[sizeof("CP1250")]; + char stringpool_str134[sizeof("ISO_8859-3")]; + char stringpool_str135[sizeof("R8")]; + char stringpool_str137[sizeof("ISO_8859-13")]; + char stringpool_str138[sizeof("ISO-IR-6")]; + char stringpool_str139[sizeof("KOI8-T")]; + char stringpool_str140[sizeof("ISO-IR-226")]; + char stringpool_str141[sizeof("CP850")]; + char stringpool_str142[sizeof("ISO-IR-126")]; + char stringpool_str144[sizeof("CP950")]; + char stringpool_str147[sizeof("ISO-IR-166")]; + char stringpool_str148[sizeof("TIS620")]; + char stringpool_str149[sizeof("TIS-620")]; + char stringpool_str152[sizeof("MAC")]; + char stringpool_str153[sizeof("ISO-IR-165")]; + char stringpool_str156[sizeof("ISO88597")]; + char stringpool_str157[sizeof("ISO8859-7")]; + char stringpool_str158[sizeof("ISO-8859-7")]; + char stringpool_str159[sizeof("ISO_8859-10:1992")]; + char stringpool_str161[sizeof("ISO8859-4")]; + char stringpool_str162[sizeof("ISO-8859-4")]; + char stringpool_str163[sizeof("ISO-IR-58")]; + char stringpool_str164[sizeof("ISO8859-14")]; + char stringpool_str165[sizeof("ISO-8859-14")]; + char stringpool_str166[sizeof("ISO_8859-14:1998")]; + char stringpool_str167[sizeof("GB2312")]; + char stringpool_str170[sizeof("CP874")]; + char stringpool_str171[sizeof("IBM862")]; + char stringpool_str172[sizeof("ISO-IR-159")]; + char stringpool_str176[sizeof("ISO8859-10")]; + char stringpool_str177[sizeof("ISO-8859-10")]; + char stringpool_str178[sizeof("ISO-IR-138")]; + char stringpool_str179[sizeof("MS-ANSI")]; + char stringpool_str180[sizeof("ISO-IR-199")]; + char stringpool_str181[sizeof("IBM866")]; + char stringpool_str182[sizeof("MS-EE")]; + char stringpool_str183[sizeof("ARABIC")]; + char stringpool_str190[sizeof("PT154")]; + char stringpool_str192[sizeof("ISO_8859-7")]; + char stringpool_str193[sizeof("ISO-IR-101")]; + char stringpool_str195[sizeof("MACTHAI")]; + char stringpool_str196[sizeof("ISO_8859-4")]; + char stringpool_str198[sizeof("MS936")]; + char stringpool_str199[sizeof("ISO_8859-14")]; + char stringpool_str200[sizeof("IBM819")]; + char stringpool_str202[sizeof("ARMSCII-8")]; + char stringpool_str203[sizeof("KSC_5601")]; + char stringpool_str206[sizeof("MACINTOSH")]; + char stringpool_str207[sizeof("TIS620-0")]; + char stringpool_str208[sizeof("ECMA-118")]; + char stringpool_str209[sizeof("ISO-IR-148")]; + char stringpool_str211[sizeof("ISO_8859-10")]; + char stringpool_str212[sizeof("L2")]; + char stringpool_str213[sizeof("ISO-IR-179")]; + char stringpool_str214[sizeof("L1")]; + char stringpool_str215[sizeof("ISO-IR-149")]; + char stringpool_str217[sizeof("L6")]; + char stringpool_str220[sizeof("L5")]; + char stringpool_str221[sizeof("ISO-IR-109")]; + char stringpool_str222[sizeof("CSMACINTOSH")]; + char stringpool_str225[sizeof("L8")]; + char stringpool_str227[sizeof("ISO-IR-203")]; + char stringpool_str229[sizeof("KZ-1048")]; + char stringpool_str230[sizeof("ISO-IR-127")]; + char stringpool_str231[sizeof("CSKZ1048")]; + char stringpool_str232[sizeof("L3")]; + char stringpool_str233[sizeof("ISO-IR-14")]; + char stringpool_str235[sizeof("ISO-IR-57")]; + char stringpool_str236[sizeof("TIS620.2529-1")]; + char stringpool_str238[sizeof("ISO-IR-157")]; + char stringpool_str239[sizeof("LATIN2")]; + char stringpool_str240[sizeof("ISO-IR-87")]; + char stringpool_str243[sizeof("LATIN1")]; + char stringpool_str246[sizeof("CSKSC56011987")]; + char stringpool_str247[sizeof("KOREAN")]; + char stringpool_str248[sizeof("ISO-IR-110")]; + char stringpool_str249[sizeof("LATIN6")]; + char stringpool_str250[sizeof("ISO-CELTIC")]; + char stringpool_str251[sizeof("VISCII")]; + char stringpool_str254[sizeof("CSVISCII")]; + char stringpool_str255[sizeof("LATIN5")]; + char stringpool_str258[sizeof("CHAR")]; + char stringpool_str259[sizeof("KS_C_5601-1989")]; + char stringpool_str260[sizeof("TIS620.2533-1")]; + char stringpool_str261[sizeof("L7")]; + char stringpool_str262[sizeof("RK1048")]; + char stringpool_str263[sizeof("L4")]; + char stringpool_str264[sizeof("CSISOLATIN2")]; + char stringpool_str265[sizeof("LATIN8")]; + char stringpool_str266[sizeof("PTCP154")]; + char stringpool_str268[sizeof("CSISOLATIN1")]; + char stringpool_str271[sizeof("TCVN")]; + char stringpool_str272[sizeof("LATIN-9")]; + char stringpool_str273[sizeof("CSISOLATINCYRILLIC")]; + char stringpool_str274[sizeof("CSISOLATIN6")]; + char stringpool_str276[sizeof("IBM367")]; + char stringpool_str277[sizeof("GREEK8")]; + char stringpool_str279[sizeof("LATIN3")]; + char stringpool_str280[sizeof("CSISOLATIN5")]; + char stringpool_str281[sizeof("X0212")]; + char stringpool_str283[sizeof("CSISOLATINARABIC")]; + char stringpool_str284[sizeof("ECMA-114")]; + char stringpool_str285[sizeof("ISO-IR-144")]; + char stringpool_str286[sizeof("CSPTCP154")]; + char stringpool_str287[sizeof("UHC")]; + char stringpool_str288[sizeof("IBM850")]; + char stringpool_str290[sizeof("US")]; + char stringpool_str292[sizeof("KS_C_5601-1987")]; + char stringpool_str293[sizeof("UCS-2")]; + char stringpool_str295[sizeof("IBM-CP1133")]; + char stringpool_str300[sizeof("ASMO-708")]; + char stringpool_str303[sizeof("ISO-IR-100")]; + char stringpool_str304[sizeof("CSISOLATIN3")]; + char stringpool_str308[sizeof("BIG5")]; + char stringpool_str309[sizeof("BIG-5")]; + char stringpool_str310[sizeof("US-ASCII")]; + char stringpool_str311[sizeof("CSBIG5")]; + char stringpool_str312[sizeof("CN-BIG5")]; + char stringpool_str314[sizeof("GBK")]; + char stringpool_str315[sizeof("TIS620.2533-0")]; + char stringpool_str316[sizeof("UNICODE-1-1")]; + char stringpool_str318[sizeof("ROMAN8")]; + char stringpool_str319[sizeof("CSGB2312")]; + char stringpool_str323[sizeof("CSUNICODE11")]; + char stringpool_str325[sizeof("CSUNICODE")]; + char stringpool_str327[sizeof("L10")]; + char stringpool_str329[sizeof("TCVN-5712")]; + char stringpool_str330[sizeof("HZ-GB-2312")]; + char stringpool_str331[sizeof("HP-ROMAN8")]; + char stringpool_str332[sizeof("GB_2312-80")]; + char stringpool_str333[sizeof("CSIBM866")]; + char stringpool_str334[sizeof("TCVN5712-1")]; + char stringpool_str335[sizeof("MACCROATIAN")]; + char stringpool_str336[sizeof("GREEK")]; + char stringpool_str337[sizeof("LATIN7")]; + char stringpool_str340[sizeof("X0201")]; + char stringpool_str341[sizeof("LATIN4")]; + char stringpool_str342[sizeof("EUCKR")]; + char stringpool_str343[sizeof("EUC-KR")]; + char stringpool_str345[sizeof("KOI8-R")]; + char stringpool_str347[sizeof("CSKOI8R")]; + char stringpool_str352[sizeof("GB18030")]; + char stringpool_str354[sizeof("GB_1988-80")]; + char stringpool_str355[sizeof("UTF-16")]; + char stringpool_str356[sizeof("LATIN10")]; + char stringpool_str362[sizeof("X0208")]; + char stringpool_str363[sizeof("UTF-32")]; + char stringpool_str364[sizeof("ISO646-US")]; + char stringpool_str366[sizeof("CSISOLATIN4")]; + char stringpool_str367[sizeof("UTF8")]; + char stringpool_str368[sizeof("UTF-8")]; + char stringpool_str369[sizeof("UNICODE-1-1-UTF-7")]; + char stringpool_str374[sizeof("CSUNICODE11UTF7")]; + char stringpool_str376[sizeof("VISCII1.1-1")]; + char stringpool_str377[sizeof("EUCTW")]; + char stringpool_str378[sizeof("EUC-TW")]; + char stringpool_str384[sizeof("WINDOWS-1252")]; + char stringpool_str386[sizeof("WINDOWS-1251")]; + char stringpool_str389[sizeof("WINDOWS-1256")]; + char stringpool_str390[sizeof("WCHAR_T")]; + char stringpool_str392[sizeof("WINDOWS-1255")]; + char stringpool_str394[sizeof("ISO-2022-KR")]; + char stringpool_str395[sizeof("UCS-4")]; + char stringpool_str396[sizeof("CSISO57GB1988")]; + char stringpool_str397[sizeof("WINDOWS-1258")]; + char stringpool_str398[sizeof("CSUCS4")]; + char stringpool_str401[sizeof("CSISO2022KR")]; + char stringpool_str403[sizeof("JP")]; + char stringpool_str404[sizeof("WINDOWS-1253")]; + char stringpool_str405[sizeof("STRK1048-2002")]; + char stringpool_str406[sizeof("CSHPROMAN8")]; + char stringpool_str408[sizeof("CSISO58GB231280")]; + char stringpool_str410[sizeof("MACICELAND")]; + char stringpool_str412[sizeof("CSISO14JISC6220RO")]; + char stringpool_str415[sizeof("JIS_C6226-1983")]; + char stringpool_str417[sizeof("ISO-10646-UCS-2")]; + char stringpool_str419[sizeof("WINDOWS-936")]; + char stringpool_str420[sizeof("BIG5HKSCS")]; + char stringpool_str421[sizeof("BIG5-HKSCS")]; + char stringpool_str427[sizeof("SHIFT-JIS")]; + char stringpool_str433[sizeof("WINDOWS-1257")]; + char stringpool_str435[sizeof("WINDOWS-1254")]; + char stringpool_str437[sizeof("CN-GB-ISOIR165")]; + char stringpool_str439[sizeof("CSSHIFTJIS")]; + char stringpool_str440[sizeof("UTF-7")]; + char stringpool_str441[sizeof("WINDOWS-1250")]; + char stringpool_str442[sizeof("EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE")]; + char stringpool_str443[sizeof("CN-GB")]; + char stringpool_str444[sizeof("CSISO159JISX02121990")]; + char stringpool_str448[sizeof("MACROMAN")]; + char stringpool_str449[sizeof("GEORGIAN-ACADEMY")]; + char stringpool_str450[sizeof("JIS_C6220-1969-RO")]; + char stringpool_str451[sizeof("CSISOLATINHEBREW")]; + char stringpool_str454[sizeof("MACARABIC")]; + char stringpool_str455[sizeof("ISO_8859-5:1988")]; + char stringpool_str460[sizeof("ISO_8859-8:1988")]; + char stringpool_str461[sizeof("SHIFT_JIS")]; + char stringpool_str464[sizeof("UCS-2BE")]; + char stringpool_str466[sizeof("ISO_8859-9:1989")]; + char stringpool_str467[sizeof("ISO_8859-3:1988")]; + char stringpool_str468[sizeof("ISO-10646-UCS-4")]; + char stringpool_str470[sizeof("MACROMANIA")]; + char stringpool_str471[sizeof("ISO-2022-JP-2")]; + char stringpool_str473[sizeof("ISO-2022-JP-1")]; + char stringpool_str477[sizeof("CSISO2022JP2")]; + char stringpool_str481[sizeof("JIS0208")]; + char stringpool_str483[sizeof("ISO_8859-2:1987")]; + char stringpool_str484[sizeof("NEXTSTEP")]; + char stringpool_str485[sizeof("ISO_8859-1:1987")]; + char stringpool_str488[sizeof("ISO_8859-6:1987")]; + char stringpool_str490[sizeof("EUCJP")]; + char stringpool_str491[sizeof("EUC-JP")]; + char stringpool_str493[sizeof("CSISOLATINGREEK")]; + char stringpool_str498[sizeof("ISO_8859-4:1988")]; + char stringpool_str503[sizeof("ISO_8859-7:2003")]; + char stringpool_str513[sizeof("GEORGIAN-PS")]; + char stringpool_str515[sizeof("UCS-4BE")]; + char stringpool_str521[sizeof("UTF-16BE")]; + char stringpool_str523[sizeof("CSPC862LATINHEBREW")]; + char stringpool_str525[sizeof("UCS-2LE")]; + char stringpool_str526[sizeof("CSHALFWIDTHKATAKANA")]; + char stringpool_str531[sizeof("ANSI_X3.4-1986")]; + char stringpool_str532[sizeof("ISO_8859-7:1987")]; + char stringpool_str534[sizeof("UTF-32BE")]; + char stringpool_str537[sizeof("WINDOWS-874")]; + char stringpool_str539[sizeof("ANSI_X3.4-1968")]; + char stringpool_str542[sizeof("ISO-2022-JP")]; + char stringpool_str544[sizeof("ISO646-JP")]; + char stringpool_str549[sizeof("CSISO2022JP")]; + char stringpool_str551[sizeof("CYRILLIC")]; + char stringpool_str561[sizeof("MACCENTRALEUROPE")]; + char stringpool_str563[sizeof("MS-HEBR")]; + char stringpool_str566[sizeof("UNICODELITTLE")]; + char stringpool_str576[sizeof("UCS-4LE")]; + char stringpool_str581[sizeof("CYRILLIC-ASIAN")]; + char stringpool_str582[sizeof("UTF-16LE")]; + char stringpool_str583[sizeof("ISO_646.IRV:1991")]; + char stringpool_str595[sizeof("UTF-32LE")]; + char stringpool_str596[sizeof("JAVA")]; + char stringpool_str598[sizeof("MS-ARAB")]; + char stringpool_str603[sizeof("MULELAO-1")]; + char stringpool_str606[sizeof("MS-GREEK")]; + char stringpool_str607[sizeof("MACGREEK")]; + char stringpool_str608[sizeof("BIGFIVE")]; + char stringpool_str609[sizeof("BIG-FIVE")]; + char stringpool_str622[sizeof("MS_KANJI")]; + char stringpool_str627[sizeof("CSEUCKR")]; + char stringpool_str639[sizeof("HEBREW")]; + char stringpool_str644[sizeof("UCS-2-SWAPPED")]; + char stringpool_str654[sizeof("JOHAB")]; + char stringpool_str662[sizeof("CSEUCTW")]; + char stringpool_str665[sizeof("UCS-2-INTERNAL")]; + char stringpool_str669[sizeof("KOI8-U")]; + char stringpool_str685[sizeof("MACUKRAINE")]; + char stringpool_str689[sizeof("MACTURKISH")]; + char stringpool_str692[sizeof("TCVN5712-1:1993")]; + char stringpool_str695[sizeof("UCS-4-SWAPPED")]; + char stringpool_str697[sizeof("MS-CYRL")]; + char stringpool_str704[sizeof("MACCYRILLIC")]; + char stringpool_str705[sizeof("CSISO87JISX0208")]; + char stringpool_str707[sizeof("CSEUCPKDFMTJAPANESE")]; + char stringpool_str710[sizeof("JIS_X0212")]; + char stringpool_str716[sizeof("UCS-4-INTERNAL")]; + char stringpool_str736[sizeof("UNICODEBIG")]; + char stringpool_str745[sizeof("MS-TURK")]; + char stringpool_str757[sizeof("BIG5-HKSCS:2001")]; + char stringpool_str760[sizeof("JISX0201-1976")]; + char stringpool_str769[sizeof("JIS_X0201")]; + char stringpool_str771[sizeof("BIG5-HKSCS:1999")]; + char stringpool_str774[sizeof("JIS_X0212-1990")]; + char stringpool_str790[sizeof("KOI8-RU")]; + char stringpool_str791[sizeof("JIS_X0208")]; + char stringpool_str800[sizeof("MACHEBREW")]; + char stringpool_str805[sizeof("JIS_X0208-1983")]; + char stringpool_str806[sizeof("BIG5-HKSCS:2004")]; + char stringpool_str842[sizeof("JIS_X0208-1990")]; + char stringpool_str888[sizeof("JIS_X0212.1990-0")]; + char stringpool_str991[sizeof("WINBALTRIM")]; + char stringpool_str1038[sizeof("CSPC850MULTILINGUAL")]; + }; +static const struct stringpool_t stringpool_contents = + { + "CN", + "HZ", + "862", + "CP1252", + "ASCII", + "CP1251", + "SJIS", + "CP862", + "866", + "CP1256", + "CSASCII", + "EUCCN", + "EUC-CN", + "CP1255", + "CP866", + "CP1131", + "C99", + "CP1361", + "HP15CN", + "CP932", + "CP1258", + "CHINESE", + "CP936", + "CP819", + "CP1253", + "ISO88592", + "ISO8859-2", + "ISO-8859-2", + "ISO88591", + "ISO8859-1", + "ISO-8859-1", + "ISO8859-11", + "ISO-8859-11", + "ISO88596", + "ISO8859-6", + "ISO-8859-6", + "CP1133", + "ISO8859-16", + "ISO-8859-16", + "ISO88595", + "ISO8859-5", + "ISO-8859-5", + "ISO885915", + "ISO8859-15", + "ISO-8859-15", + "ISO-2022-CN", + "ISO646-CN", + "ISO88598", + "ISO8859-8", + "ISO-8859-8", + "CSISO2022CN", + "ISO88599", + "ISO8859-9", + "ISO-8859-9", + "ISO_8859-2", + "ISO-2022-CN-EXT", + "ISO_8859-1", + "ISO8859-3", + "ISO-8859-3", + "ISO_8859-11", + "ISO8859-13", + "ISO-8859-13", + "ISO_8859-6", + "CP949", + "ISO_8859-16", + "ISO_8859-16:2001", + "ISO_8859-5", + "ELOT_928", + "ISO_8859-15", + "CP1257", + "CP154", + "CP1254", + "ISO_8859-8", + "ISO_8859-15:1998", + "ISO_8859-9", + "CP367", + "850", + "CP1250", + "ISO_8859-3", + "R8", + "ISO_8859-13", + "ISO-IR-6", + "KOI8-T", + "ISO-IR-226", + "CP850", + "ISO-IR-126", + "CP950", + "ISO-IR-166", + "TIS620", + "TIS-620", + "MAC", + "ISO-IR-165", + "ISO88597", + "ISO8859-7", + "ISO-8859-7", + "ISO_8859-10:1992", + "ISO8859-4", + "ISO-8859-4", + "ISO-IR-58", + "ISO8859-14", + "ISO-8859-14", + "ISO_8859-14:1998", + "GB2312", + "CP874", + "IBM862", + "ISO-IR-159", + "ISO8859-10", + "ISO-8859-10", + "ISO-IR-138", + "MS-ANSI", + "ISO-IR-199", + "IBM866", + "MS-EE", + "ARABIC", + "PT154", + "ISO_8859-7", + "ISO-IR-101", + "MACTHAI", + "ISO_8859-4", + "MS936", + "ISO_8859-14", + "IBM819", + "ARMSCII-8", + "KSC_5601", + "MACINTOSH", + "TIS620-0", + "ECMA-118", + "ISO-IR-148", + "ISO_8859-10", + "L2", + "ISO-IR-179", + "L1", + "ISO-IR-149", + "L6", + "L5", + "ISO-IR-109", + "CSMACINTOSH", + "L8", + "ISO-IR-203", + "KZ-1048", + "ISO-IR-127", + "CSKZ1048", + "L3", + "ISO-IR-14", + "ISO-IR-57", + "TIS620.2529-1", + "ISO-IR-157", + "LATIN2", + "ISO-IR-87", + "LATIN1", + "CSKSC56011987", + "KOREAN", + "ISO-IR-110", + "LATIN6", + "ISO-CELTIC", + "VISCII", + "CSVISCII", + "LATIN5", + "CHAR", + "KS_C_5601-1989", + "TIS620.2533-1", + "L7", + "RK1048", + "L4", + "CSISOLATIN2", + "LATIN8", + "PTCP154", + "CSISOLATIN1", + "TCVN", + "LATIN-9", + "CSISOLATINCYRILLIC", + "CSISOLATIN6", + "IBM367", + "GREEK8", + "LATIN3", + "CSISOLATIN5", + "X0212", + "CSISOLATINARABIC", + "ECMA-114", + "ISO-IR-144", + "CSPTCP154", + "UHC", + "IBM850", + "US", + "KS_C_5601-1987", + "UCS-2", + "IBM-CP1133", + "ASMO-708", + "ISO-IR-100", + "CSISOLATIN3", + "BIG5", + "BIG-5", + "US-ASCII", + "CSBIG5", + "CN-BIG5", + "GBK", + "TIS620.2533-0", + "UNICODE-1-1", + "ROMAN8", + "CSGB2312", + "CSUNICODE11", + "CSUNICODE", + "L10", + "TCVN-5712", + "HZ-GB-2312", + "HP-ROMAN8", + "GB_2312-80", + "CSIBM866", + "TCVN5712-1", + "MACCROATIAN", + "GREEK", + "LATIN7", + "X0201", + "LATIN4", + "EUCKR", + "EUC-KR", + "KOI8-R", + "CSKOI8R", + "GB18030", + "GB_1988-80", + "UTF-16", + "LATIN10", + "X0208", + "UTF-32", + "ISO646-US", + "CSISOLATIN4", + "UTF8", + "UTF-8", + "UNICODE-1-1-UTF-7", + "CSUNICODE11UTF7", + "VISCII1.1-1", + "EUCTW", + "EUC-TW", + "WINDOWS-1252", + "WINDOWS-1251", + "WINDOWS-1256", + "WCHAR_T", + "WINDOWS-1255", + "ISO-2022-KR", + "UCS-4", + "CSISO57GB1988", + "WINDOWS-1258", + "CSUCS4", + "CSISO2022KR", + "JP", + "WINDOWS-1253", + "STRK1048-2002", + "CSHPROMAN8", + "CSISO58GB231280", + "MACICELAND", + "CSISO14JISC6220RO", + "JIS_C6226-1983", + "ISO-10646-UCS-2", + "WINDOWS-936", + "BIG5HKSCS", + "BIG5-HKSCS", + "SHIFT-JIS", + "WINDOWS-1257", + "WINDOWS-1254", + "CN-GB-ISOIR165", + "CSSHIFTJIS", + "UTF-7", + "WINDOWS-1250", + "EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE", + "CN-GB", + "CSISO159JISX02121990", + "MACROMAN", + "GEORGIAN-ACADEMY", + "JIS_C6220-1969-RO", + "CSISOLATINHEBREW", + "MACARABIC", + "ISO_8859-5:1988", + "ISO_8859-8:1988", + "SHIFT_JIS", + "UCS-2BE", + "ISO_8859-9:1989", + "ISO_8859-3:1988", + "ISO-10646-UCS-4", + "MACROMANIA", + "ISO-2022-JP-2", + "ISO-2022-JP-1", + "CSISO2022JP2", + "JIS0208", + "ISO_8859-2:1987", + "NEXTSTEP", + "ISO_8859-1:1987", + "ISO_8859-6:1987", + "EUCJP", + "EUC-JP", + "CSISOLATINGREEK", + "ISO_8859-4:1988", + "ISO_8859-7:2003", + "GEORGIAN-PS", + "UCS-4BE", + "UTF-16BE", + "CSPC862LATINHEBREW", + "UCS-2LE", + "CSHALFWIDTHKATAKANA", + "ANSI_X3.4-1986", + "ISO_8859-7:1987", + "UTF-32BE", + "WINDOWS-874", + "ANSI_X3.4-1968", + "ISO-2022-JP", + "ISO646-JP", + "CSISO2022JP", + "CYRILLIC", + "MACCENTRALEUROPE", + "MS-HEBR", + "UNICODELITTLE", + "UCS-4LE", + "CYRILLIC-ASIAN", + "UTF-16LE", + "ISO_646.IRV:1991", + "UTF-32LE", + "JAVA", + "MS-ARAB", + "MULELAO-1", + "MS-GREEK", + "MACGREEK", + "BIGFIVE", + "BIG-FIVE", + "MS_KANJI", + "CSEUCKR", + "HEBREW", + "UCS-2-SWAPPED", + "JOHAB", + "CSEUCTW", + "UCS-2-INTERNAL", + "KOI8-U", + "MACUKRAINE", + "MACTURKISH", + "TCVN5712-1:1993", + "UCS-4-SWAPPED", + "MS-CYRL", + "MACCYRILLIC", + "CSISO87JISX0208", + "CSEUCPKDFMTJAPANESE", + "JIS_X0212", + "UCS-4-INTERNAL", + "UNICODEBIG", + "MS-TURK", + "BIG5-HKSCS:2001", + "JISX0201-1976", + "JIS_X0201", + "BIG5-HKSCS:1999", + "JIS_X0212-1990", + "KOI8-RU", + "JIS_X0208", + "MACHEBREW", + "JIS_X0208-1983", + "BIG5-HKSCS:2004", + "JIS_X0208-1990", + "JIS_X0212.1990-0", + "WINBALTRIM", + "CSPC850MULTILINGUAL" + }; +#define stringpool ((const char *) &stringpool_contents) + +static const struct alias aliases[] = + { + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 297 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str9, ei_iso646_cn}, + {-1}, {-1}, +#line 340 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, ei_hz}, + {-1}, {-1}, {-1}, +#line 212 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, ei_cp862}, +#line 186 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, ei_cp1252}, + {-1}, +#line 13 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, ei_ascii}, + {-1}, +#line 183 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str21, ei_cp1251}, +#line 317 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str22, ei_sjis}, + {-1}, +#line 210 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str24, ei_cp862}, + {-1}, +#line 216 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str26, ei_cp866}, +#line 198 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str27, ei_cp1256}, +#line 22 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str28, ei_ascii}, +#line 327 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str29, ei_euc_cn}, +#line 326 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str30, ei_euc_cn}, + {-1}, {-1}, +#line 195 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str33, ei_cp1255}, +#line 214 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str34, ei_cp866}, +#line 218 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str35, ei_cp1131}, +#line 52 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str36, ei_c99}, + {-1}, +#line 363 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str38, ei_johab}, +#line 331 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str39, ei_euc_cn}, + {-1}, {-1}, +#line 320 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str42, ei_cp932}, +#line 204 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str43, ei_cp1258}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 302 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str50, ei_gb2312}, + {-1}, +#line 333 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str52, ei_cp936}, +#line 58 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str53, ei_iso8859_1}, + {-1}, {-1}, {-1}, +#line 189 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str57, ei_cp1253}, +#line 73 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str58, ei_iso8859_2}, +#line 72 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str59, ei_iso8859_2}, +#line 65 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str60, ei_iso8859_2}, + {-1}, +#line 64 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str62, ei_iso8859_1}, +#line 63 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str63, ei_iso8859_1}, +#line 54 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str64, ei_iso8859_1}, + {-1}, +#line 147 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str66, ei_iso8859_11}, +#line 145 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str67, ei_iso8859_11}, +#line 107 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str68, ei_iso8859_6}, +#line 106 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str69, ei_iso8859_6}, +#line 98 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str70, ei_iso8859_6}, +#line 253 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str71, ei_cp1133}, +#line 175 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str72, ei_iso8859_16}, +#line 169 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str73, ei_iso8859_16}, +#line 97 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str74, ei_iso8859_5}, +#line 96 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str75, ei_iso8859_5}, +#line 90 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str76, ei_iso8859_5}, +#line 168 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str77, ei_iso8859_15}, +#line 167 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str78, ei_iso8859_15}, +#line 162 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str79, ei_iso8859_15}, + {-1}, +#line 337 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str81, ei_iso2022_cn}, + {-1}, +#line 295 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str83, ei_iso646_cn}, +#line 127 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str84, ei_iso8859_8}, +#line 126 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str85, ei_iso8859_8}, +#line 120 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str86, ei_iso8859_8}, + {-1}, +#line 338 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str88, ei_iso2022_cn}, + {-1}, +#line 136 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str90, ei_iso8859_9}, +#line 135 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str91, ei_iso8859_9}, +#line 128 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str92, ei_iso8859_9}, + {-1}, +#line 66 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str94, ei_iso8859_2}, + {-1}, +#line 339 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str96, ei_iso2022_cn_ext}, + {-1}, +#line 55 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str98, ei_iso8859_1}, +#line 81 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str99, ei_iso8859_3}, +#line 74 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str100, ei_iso8859_3}, +#line 146 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str101, ei_iso8859_11}, +#line 153 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str102, ei_iso8859_13}, +#line 148 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str103, ei_iso8859_13}, +#line 99 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str104, ei_iso8859_6}, +#line 360 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str105, ei_cp949}, + {-1}, +#line 170 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str107, ei_iso8859_16}, + {-1}, +#line 171 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str109, ei_iso8859_16}, +#line 91 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str110, ei_iso8859_5}, +#line 114 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str111, ei_iso8859_7}, + {-1}, +#line 163 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str113, ei_iso8859_15}, + {-1}, +#line 201 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str115, ei_cp1257}, + {-1}, {-1}, +#line 245 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str118, ei_pt154}, +#line 192 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str119, ei_cp1254}, +#line 121 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str120, ei_iso8859_8}, + {-1}, {-1}, +#line 164 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str123, ei_iso8859_15}, + {-1}, {-1}, +#line 129 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str126, ei_iso8859_9}, + {-1}, {-1}, +#line 19 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str129, ei_ascii}, +#line 208 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str130, ei_cp850}, +#line 180 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str131, ei_cp1250}, + {-1}, {-1}, +#line 75 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str134, ei_iso8859_3}, +#line 236 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str135, ei_hp_roman8}, + {-1}, +#line 149 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str137, ei_iso8859_13}, +#line 16 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str138, ei_ascii}, +#line 242 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str139, ei_koi8_t}, +#line 172 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str140, ei_iso8859_16}, +#line 206 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str141, ei_cp850}, +#line 112 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str142, ei_iso8859_7}, + {-1}, +#line 351 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str144, ei_cp950}, + {-1}, {-1}, +#line 261 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str147, ei_tis620}, +#line 256 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str148, ei_tis620}, +#line 255 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str149, ei_tis620}, + {-1}, {-1}, +#line 221 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str152, ei_mac_roman}, +#line 303 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str153, ei_isoir165}, + {-1}, {-1}, +#line 119 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str156, ei_iso8859_7}, +#line 118 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str157, ei_iso8859_7}, +#line 108 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str158, ei_iso8859_7}, +#line 139 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str159, ei_iso8859_10}, + {-1}, +#line 89 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str161, ei_iso8859_4}, +#line 82 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str162, ei_iso8859_4}, +#line 300 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str163, ei_gb2312}, +#line 161 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str164, ei_iso8859_14}, +#line 154 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str165, ei_iso8859_14}, +#line 156 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str166, ei_iso8859_14}, +#line 328 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str167, ei_euc_cn}, + {-1}, {-1}, +#line 262 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str170, ei_cp874}, +#line 211 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str171, ei_cp862}, +#line 292 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str172, ei_jisx0212}, + {-1}, {-1}, {-1}, +#line 144 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str176, ei_iso8859_10}, +#line 137 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str177, ei_iso8859_10}, +#line 123 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str178, ei_iso8859_8}, +#line 188 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str179, ei_cp1252}, +#line 157 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str180, ei_iso8859_14}, +#line 215 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str181, ei_cp866}, +#line 182 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str182, ei_cp1250}, +#line 104 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str183, ei_iso8859_6}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 243 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str190, ei_pt154}, + {-1}, +#line 109 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str192, ei_iso8859_7}, +#line 68 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str193, ei_iso8859_2}, + {-1}, +#line 233 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str195, ei_mac_thai}, +#line 83 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str196, ei_iso8859_4}, + {-1}, +#line 334 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str198, ei_cp936}, +#line 155 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str199, ei_iso8859_14}, +#line 59 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str200, ei_iso8859_1}, + {-1}, +#line 239 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str202, ei_armscii_8}, +#line 305 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str203, ei_ksc5601}, + {-1}, {-1}, +#line 220 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str206, ei_mac_roman}, +#line 257 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str207, ei_tis620}, +#line 113 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str208, ei_iso8859_7}, +#line 131 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str209, ei_iso8859_9}, + {-1}, +#line 138 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str211, ei_iso8859_10}, +#line 70 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str212, ei_iso8859_2}, +#line 150 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str213, ei_iso8859_13}, +#line 61 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str214, ei_iso8859_1}, +#line 308 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str215, ei_ksc5601}, + {-1}, +#line 142 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str217, ei_iso8859_10}, + {-1}, {-1}, +#line 133 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str220, ei_iso8859_9}, +#line 77 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str221, ei_iso8859_3}, +#line 222 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str222, ei_mac_roman}, + {-1}, {-1}, +#line 159 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str225, ei_iso8859_14}, + {-1}, +#line 165 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str227, ei_iso8859_15}, + {-1}, +#line 250 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str229, ei_rk1048}, +#line 101 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str230, ei_iso8859_6}, +#line 251 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str231, ei_rk1048}, +#line 79 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str232, ei_iso8859_3}, +#line 273 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str233, ei_iso646_jp}, + {-1}, +#line 296 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str235, ei_iso646_cn}, +#line 258 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str236, ei_tis620}, + {-1}, +#line 140 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str238, ei_iso8859_10}, +#line 69 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str239, ei_iso8859_2}, +#line 285 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str240, ei_jisx0208}, + {-1}, {-1}, +#line 60 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str243, ei_iso8859_1}, + {-1}, {-1}, +#line 309 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str246, ei_ksc5601}, +#line 310 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str247, ei_ksc5601}, +#line 85 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str248, ei_iso8859_4}, +#line 141 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str249, ei_iso8859_10}, +#line 160 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str250, ei_iso8859_14}, +#line 264 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str251, ei_viscii}, + {-1}, {-1}, +#line 266 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str254, ei_viscii}, +#line 132 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str255, ei_iso8859_9}, + {-1}, {-1}, +#line 366 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str258, ei_local_char}, +#line 307 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str259, ei_ksc5601}, +#line 260 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str260, ei_tis620}, +#line 152 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str261, ei_iso8859_13}, +#line 248 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str262, ei_rk1048}, +#line 87 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str263, ei_iso8859_4}, +#line 71 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str264, ei_iso8859_2}, +#line 158 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str265, ei_iso8859_14}, +#line 244 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str266, ei_pt154}, + {-1}, +#line 62 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str268, ei_iso8859_1}, + {-1}, {-1}, +#line 267 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str271, ei_tcvn}, +#line 166 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str272, ei_iso8859_15}, +#line 95 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str273, ei_iso8859_5}, +#line 143 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str274, ei_iso8859_10}, + {-1}, +#line 20 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str276, ei_ascii}, +#line 115 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str277, ei_iso8859_7}, + {-1}, +#line 78 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str279, ei_iso8859_3}, +#line 134 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str280, ei_iso8859_9}, +#line 291 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str281, ei_jisx0212}, + {-1}, +#line 105 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str283, ei_iso8859_6}, +#line 102 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str284, ei_iso8859_6}, +#line 93 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str285, ei_iso8859_5}, +#line 247 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str286, ei_pt154}, +#line 361 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str287, ei_cp949}, +#line 207 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str288, ei_cp850}, + {-1}, +#line 21 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str290, ei_ascii}, + {-1}, +#line 306 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str292, ei_ksc5601}, +#line 25 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str293, ei_ucs2}, + {-1}, +#line 254 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str295, ei_cp1133}, + {-1}, {-1}, {-1}, {-1}, +#line 103 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str300, ei_iso8859_6}, + {-1}, {-1}, +#line 57 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str303, ei_iso8859_1}, +#line 80 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str304, ei_iso8859_3}, + {-1}, {-1}, {-1}, +#line 345 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str308, ei_ces_big5}, +#line 346 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str309, ei_ces_big5}, +#line 12 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str310, ei_ascii}, +#line 350 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str311, ei_ces_big5}, +#line 349 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str312, ei_ces_big5}, + {-1}, +#line 332 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str314, ei_ces_gbk}, +#line 259 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str315, ei_tis620}, +#line 30 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str316, ei_ucs2be}, + {-1}, +#line 235 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str318, ei_hp_roman8}, +#line 330 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str319, ei_euc_cn}, + {-1}, {-1}, {-1}, +#line 31 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str323, ei_ucs2be}, + {-1}, +#line 27 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str325, ei_ucs2}, + {-1}, +#line 174 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str327, ei_iso8859_16}, + {-1}, +#line 268 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str329, ei_tcvn}, +#line 341 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str330, ei_hz}, +#line 234 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str331, ei_hp_roman8}, +#line 299 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str332, ei_gb2312}, +#line 217 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str333, ei_cp866}, +#line 269 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str334, ei_tcvn}, +#line 225 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str335, ei_mac_croatian}, +#line 116 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str336, ei_iso8859_7}, +#line 151 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str337, ei_iso8859_13}, + {-1}, {-1}, +#line 278 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str340, ei_jisx0201}, +#line 86 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str341, ei_iso8859_4}, +#line 358 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str342, ei_euc_kr}, +#line 357 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str343, ei_euc_kr}, + {-1}, +#line 176 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str345, ei_koi8_r}, + {-1}, +#line 177 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str347, ei_koi8_r}, + {-1}, {-1}, {-1}, {-1}, +#line 336 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str352, ei_gb18030}, + {-1}, +#line 294 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str354, ei_iso646_cn}, +#line 39 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str355, ei_utf16}, +#line 173 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str356, ei_iso8859_16}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 284 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str362, ei_jisx0208}, +#line 42 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str363, ei_utf32}, +#line 14 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str364, ei_ascii}, + {-1}, +#line 88 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str366, ei_iso8859_4}, +#line 24 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str367, ei_utf8}, +#line 23 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str368, ei_utf8}, +#line 46 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str369, ei_utf7}, + {-1}, {-1}, {-1}, {-1}, +#line 47 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str374, ei_utf7}, + {-1}, +#line 265 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str376, ei_viscii}, +#line 343 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str377, ei_euc_tw}, +#line 342 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str378, ei_euc_tw}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 187 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str384, ei_cp1252}, + {-1}, +#line 184 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str386, ei_cp1251}, + {-1}, {-1}, +#line 199 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str389, ei_cp1256}, +#line 367 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str390, ei_local_wchar_t}, + {-1}, +#line 196 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str392, ei_cp1255}, + {-1}, +#line 364 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str394, ei_iso2022_kr}, +#line 34 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str395, ei_ucs4}, +#line 298 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str396, ei_iso646_cn}, +#line 205 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str397, ei_cp1258}, +#line 36 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str398, ei_ucs4}, + {-1}, {-1}, +#line 365 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str401, ei_iso2022_kr}, + {-1}, +#line 274 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str403, ei_iso646_jp}, +#line 190 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str404, ei_cp1253}, +#line 249 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str405, ei_rk1048}, +#line 237 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str406, ei_hp_roman8}, + {-1}, +#line 301 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str408, ei_gb2312}, + {-1}, +#line 224 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str410, ei_mac_iceland}, + {-1}, +#line 275 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str412, ei_iso646_jp}, + {-1}, {-1}, +#line 286 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str415, ei_jisx0208}, + {-1}, +#line 26 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str417, ei_ucs2}, + {-1}, +#line 335 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str419, ei_cp936}, +#line 355 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str420, ei_big5hkscs2004}, +#line 354 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str421, ei_big5hkscs2004}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 316 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str427, ei_sjis}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 202 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str433, ei_cp1257}, + {-1}, +#line 193 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str435, ei_cp1254}, + {-1}, +#line 304 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str437, ei_isoir165}, + {-1}, +#line 319 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str439, ei_sjis}, +#line 45 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str440, ei_utf7}, +#line 181 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str441, ei_cp1250}, +#line 313 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str442, ei_euc_jp}, +#line 329 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str443, ei_euc_cn}, +#line 293 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str444, ei_jisx0212}, + {-1}, {-1}, {-1}, +#line 219 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str448, ei_mac_roman}, +#line 240 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str449, ei_georgian_academy}, +#line 271 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str450, ei_iso646_jp}, +#line 125 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str451, ei_iso8859_8}, + {-1}, {-1}, +#line 232 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str454, ei_mac_arabic}, +#line 92 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str455, ei_iso8859_5}, + {-1}, {-1}, {-1}, {-1}, +#line 122 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str460, ei_iso8859_8}, +#line 315 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str461, ei_sjis}, + {-1}, {-1}, +#line 28 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str464, ei_ucs2be}, + {-1}, +#line 130 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str466, ei_iso8859_9}, +#line 76 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str467, ei_iso8859_3}, +#line 35 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str468, ei_ucs4}, + {-1}, +#line 226 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str470, ei_mac_romania}, +#line 324 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str471, ei_iso2022_jp2}, + {-1}, +#line 323 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str473, ei_iso2022_jp1}, + {-1}, {-1}, {-1}, +#line 325 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str477, ei_iso2022_jp2}, + {-1}, {-1}, {-1}, +#line 283 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str481, ei_jisx0208}, + {-1}, +#line 67 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str483, ei_iso8859_2}, +#line 238 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str484, ei_nextstep}, +#line 56 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str485, ei_iso8859_1}, + {-1}, {-1}, +#line 100 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str488, ei_iso8859_6}, + {-1}, +#line 312 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str490, ei_euc_jp}, +#line 311 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str491, ei_euc_jp}, + {-1}, +#line 117 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str493, ei_iso8859_7}, + {-1}, {-1}, {-1}, {-1}, +#line 84 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str498, ei_iso8859_4}, + {-1}, {-1}, {-1}, {-1}, +#line 111 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str503, ei_iso8859_7}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 241 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str513, ei_georgian_ps}, + {-1}, +#line 37 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str515, ei_ucs4be}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 40 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str521, ei_utf16be}, + {-1}, +#line 213 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str523, ei_cp862}, + {-1}, +#line 32 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str525, ei_ucs2le}, +#line 279 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str526, ei_jisx0201}, + {-1}, {-1}, {-1}, {-1}, +#line 18 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str531, ei_ascii}, +#line 110 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str532, ei_iso8859_7}, + {-1}, +#line 43 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str534, ei_utf32be}, + {-1}, {-1}, +#line 263 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str537, ei_cp874}, + {-1}, +#line 17 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str539, ei_ascii}, + {-1}, {-1}, +#line 321 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str542, ei_iso2022_jp}, + {-1}, +#line 272 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str544, ei_iso646_jp}, + {-1}, {-1}, {-1}, {-1}, +#line 322 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str549, ei_iso2022_jp}, + {-1}, +#line 94 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str551, ei_iso8859_5}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 223 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str561, ei_mac_centraleurope}, + {-1}, +#line 197 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str563, ei_cp1255}, + {-1}, {-1}, +#line 33 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str566, ei_ucs2le}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 38 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str576, ei_ucs4le}, + {-1}, {-1}, {-1}, {-1}, +#line 246 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str581, ei_pt154}, +#line 41 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str582, ei_utf16le}, +#line 15 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str583, ei_ascii}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, +#line 44 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str595, ei_utf32le}, +#line 53 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str596, ei_java}, + {-1}, +#line 200 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str598, ei_cp1256}, + {-1}, {-1}, {-1}, {-1}, +#line 252 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str603, ei_mulelao}, + {-1}, {-1}, +#line 191 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str606, ei_cp1253}, +#line 229 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str607, ei_mac_greek}, +#line 348 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str608, ei_ces_big5}, +#line 347 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str609, ei_ces_big5}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, +#line 318 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str622, ei_sjis}, + {-1}, {-1}, {-1}, {-1}, +#line 359 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str627, ei_euc_kr}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, +#line 124 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str639, ei_iso8859_8}, + {-1}, {-1}, {-1}, {-1}, +#line 49 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str644, ei_ucs2swapped}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 362 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str654, ei_johab}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 344 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str662, ei_euc_tw}, + {-1}, {-1}, +#line 48 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str665, ei_ucs2internal}, + {-1}, {-1}, {-1}, +#line 178 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str669, ei_koi8_u}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 228 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str685, ei_mac_ukraine}, + {-1}, {-1}, {-1}, +#line 230 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str689, ei_mac_turkish}, + {-1}, {-1}, +#line 270 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str692, ei_tcvn}, + {-1}, {-1}, +#line 51 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str695, ei_ucs4swapped}, + {-1}, +#line 185 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str697, ei_cp1251}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 227 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str704, ei_mac_cyrillic}, +#line 287 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str705, ei_jisx0208}, + {-1}, +#line 314 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str707, ei_euc_jp}, + {-1}, {-1}, +#line 288 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str710, ei_jisx0212}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 50 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str716, ei_ucs4internal}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, +#line 29 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str736, ei_ucs2be}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 194 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str745, ei_cp1254}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, +#line 353 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str757, ei_big5hkscs2001}, + {-1}, {-1}, +#line 277 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str760, ei_jisx0201}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 276 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str769, ei_jisx0201}, + {-1}, +#line 352 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str771, ei_big5hkscs1999}, + {-1}, {-1}, +#line 290 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str774, ei_jisx0212}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 179 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str790, ei_koi8_ru}, +#line 280 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str791, ei_jisx0208}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 231 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str800, ei_mac_hebrew}, + {-1}, {-1}, {-1}, {-1}, +#line 281 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str805, ei_jisx0208}, +#line 356 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str806, ei_big5hkscs2004}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 282 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str842, ei_jisx0208}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 289 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str888, ei_jisx0212}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, +#line 203 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str991, ei_cp1257}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, +#line 209 "lib/aliases_syshpux.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str1038, ei_cp850} + }; + +#ifdef __GNUC__ +__inline +#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ +__attribute__ ((__gnu_inline__)) +#endif +#endif +const struct alias * +aliases_lookup (register const char *str, register unsigned int len) +{ + if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) + { + register int key = aliases_hash (str, len); + + if (key <= MAX_HASH_VALUE && key >= 0) + { + register int o = aliases[key].name; + if (o >= 0) + { + register const char *s = o + stringpool; + + if (*str == *s && !strcmp (str + 1, s + 1)) + return &aliases[key]; + } + } + } + return 0; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/aliases_sysosf1.h b/graf2d/win32gdk/gdk/src/iconv/aliases_sysosf1.h new file mode 100644 index 00000000000..36587e1a8a3 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/aliases_sysosf1.h @@ -0,0 +1,1735 @@ +/* ANSI-C code produced by gperf version 3.0.4 */ +/* Command-line: gperf -m 10 lib/aliases_sysosf1.gperf */ +/* Computed positions: -k'1,3-11,$' */ + +#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ + && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ + && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ + && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ + && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ + && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ + && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ + && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ + && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ + && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ + && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ + && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ + && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ + && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ + && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ + && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ + && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ + && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ + && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ + && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ + && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ + && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ + && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) +/* The character set is not based on ISO-646. */ +#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>." +#endif + +#line 1 "lib/aliases_sysosf1.gperf" +struct alias { int name; unsigned int encoding_index; }; + +#define TOTAL_KEYWORDS 351 +#define MIN_WORD_LENGTH 2 +#define MAX_WORD_LENGTH 45 +#define MIN_HASH_VALUE 13 +#define MAX_HASH_VALUE 939 +/* maximum key range = 927, duplicates = 0 */ + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static unsigned int +aliases_hash (register const char *str, register unsigned int len) +{ + static const unsigned short asso_values[] = + { + 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, + 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, + 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, + 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, + 940, 940, 940, 940, 940, 13, 80, 940, 73, 4, + 7, 6, 55, 8, 5, 156, 10, 23, 354, 940, + 940, 940, 940, 940, 940, 115, 165, 4, 6, 104, + 89, 13, 53, 4, 304, 95, 7, 150, 18, 4, + 75, 940, 76, 50, 25, 141, 173, 137, 120, 6, + 5, 940, 940, 940, 940, 27, 940, 940, 940, 940, + 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, + 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, + 940, 940, 940, 940, 940, 940, 940, 940 + }; + register int hval = len; + + switch (hval) + { + default: + hval += asso_values[(unsigned char)str[10]]; + /*FALLTHROUGH*/ + case 10: + hval += asso_values[(unsigned char)str[9]]; + /*FALLTHROUGH*/ + case 9: + hval += asso_values[(unsigned char)str[8]]; + /*FALLTHROUGH*/ + case 8: + hval += asso_values[(unsigned char)str[7]]; + /*FALLTHROUGH*/ + case 7: + hval += asso_values[(unsigned char)str[6]]; + /*FALLTHROUGH*/ + case 6: + hval += asso_values[(unsigned char)str[5]]; + /*FALLTHROUGH*/ + case 5: + hval += asso_values[(unsigned char)str[4]]; + /*FALLTHROUGH*/ + case 4: + hval += asso_values[(unsigned char)str[3]]; + /*FALLTHROUGH*/ + case 3: + hval += asso_values[(unsigned char)str[2]]; + /*FALLTHROUGH*/ + case 2: + case 1: + hval += asso_values[(unsigned char)str[0]]; + break; + } + return hval + asso_values[(unsigned char)str[len - 1]]; +} + +struct stringpool_t + { + char stringpool_str13[sizeof("L1")]; + char stringpool_str14[sizeof("L6")]; + char stringpool_str15[sizeof("L3")]; + char stringpool_str16[sizeof("L2")]; + char stringpool_str17[sizeof("L5")]; + char stringpool_str19[sizeof("L8")]; + char stringpool_str23[sizeof("866")]; + char stringpool_str24[sizeof("CN")]; + char stringpool_str27[sizeof("862")]; + char stringpool_str32[sizeof("CP1131")]; + char stringpool_str33[sizeof("CP1361")]; + char stringpool_str34[sizeof("CP866")]; + char stringpool_str36[sizeof("CP1133")]; + char stringpool_str37[sizeof("CP1251")]; + char stringpool_str38[sizeof("CP862")]; + char stringpool_str39[sizeof("CP1256")]; + char stringpool_str41[sizeof("CP1253")]; + char stringpool_str43[sizeof("CP1252")]; + char stringpool_str45[sizeof("CP1255")]; + char stringpool_str48[sizeof("CP936")]; + char stringpool_str49[sizeof("CP1258")]; + char stringpool_str50[sizeof("GB2312")]; + char stringpool_str52[sizeof("CP932")]; + char stringpool_str53[sizeof("C99")]; + char stringpool_str60[sizeof("HZ")]; + char stringpool_str64[sizeof("L4")]; + char stringpool_str68[sizeof("LATIN1")]; + char stringpool_str69[sizeof("CP819")]; + char stringpool_str70[sizeof("LATIN6")]; + char stringpool_str72[sizeof("LATIN3")]; + char stringpool_str74[sizeof("LATIN2")]; + char stringpool_str76[sizeof("LATIN5")]; + char stringpool_str80[sizeof("LATIN8")]; + char stringpool_str88[sizeof("R8")]; + char stringpool_str89[sizeof("ISO8859-1")]; + char stringpool_str91[sizeof("ISO8859-6")]; + char stringpool_str93[sizeof("ISO8859-3")]; + char stringpool_str94[sizeof("ISO8859-11")]; + char stringpool_str95[sizeof("ISO8859-2")]; + char stringpool_str96[sizeof("ISO8859-16")]; + char stringpool_str97[sizeof("ISO8859-5")]; + char stringpool_str98[sizeof("ISO8859-13")]; + char stringpool_str101[sizeof("ISO8859-8")]; + char stringpool_str102[sizeof("ISO8859-15")]; + char stringpool_str103[sizeof("ISO-8859-1")]; + char stringpool_str105[sizeof("ISO-8859-6")]; + char stringpool_str107[sizeof("ISO-8859-3")]; + char stringpool_str108[sizeof("ISO-8859-11")]; + char stringpool_str109[sizeof("ISO-8859-2")]; + char stringpool_str110[sizeof("ISO-8859-16")]; + char stringpool_str111[sizeof("ISO-8859-5")]; + char stringpool_str112[sizeof("ISO-8859-13")]; + char stringpool_str115[sizeof("ISO-8859-8")]; + char stringpool_str116[sizeof("ISO-8859-15")]; + char stringpool_str117[sizeof("ISO_8859-1")]; + char stringpool_str118[sizeof("CYRILLIC")]; + char stringpool_str119[sizeof("ISO_8859-6")]; + char stringpool_str120[sizeof("LATIN-9")]; + char stringpool_str121[sizeof("ISO_8859-3")]; + char stringpool_str122[sizeof("ISO_8859-11")]; + char stringpool_str123[sizeof("ISO_8859-2")]; + char stringpool_str124[sizeof("ISO_8859-16")]; + char stringpool_str125[sizeof("ISO_8859-5")]; + char stringpool_str126[sizeof("ISO_8859-13")]; + char stringpool_str127[sizeof("ISO8859-9")]; + char stringpool_str128[sizeof("ISO_8859-16:2001")]; + char stringpool_str129[sizeof("ISO_8859-8")]; + char stringpool_str130[sizeof("ISO_8859-15")]; + char stringpool_str131[sizeof("CP154")]; + char stringpool_str132[sizeof("ISO-IR-6")]; + char stringpool_str133[sizeof("CP949")]; + char stringpool_str135[sizeof("ISO646-CN")]; + char stringpool_str136[sizeof("ASCII")]; + char stringpool_str137[sizeof("ISO_8859-15:1998")]; + char stringpool_str139[sizeof("CP1254")]; + char stringpool_str141[sizeof("ISO-8859-9")]; + char stringpool_str143[sizeof("ISO-IR-166")]; + char stringpool_str145[sizeof("ISO-IR-126")]; + char stringpool_str148[sizeof("ISO-IR-226")]; + char stringpool_str149[sizeof("ISO-IR-165")]; + char stringpool_str150[sizeof("X0212")]; + char stringpool_str151[sizeof("ISO-IR-58")]; + char stringpool_str152[sizeof("UHC")]; + char stringpool_str153[sizeof("EUCCN")]; + char stringpool_str154[sizeof("ISO-IR-138")]; + char stringpool_str155[sizeof("ISO_8859-9")]; + char stringpool_str156[sizeof("L10")]; + char stringpool_str158[sizeof("SJIS")]; + char stringpool_str159[sizeof("850")]; + char stringpool_str161[sizeof("MAC")]; + char stringpool_str164[sizeof("TACTIS")]; + char stringpool_str165[sizeof("L7")]; + char stringpool_str167[sizeof("EUC-CN")]; + char stringpool_str170[sizeof("LATIN4")]; + char stringpool_str173[sizeof("CP850")]; + char stringpool_str175[sizeof("CP1250")]; + char stringpool_str178[sizeof("KOI8-T")]; + char stringpool_str179[sizeof("ISO-2022-CN")]; + char stringpool_str182[sizeof("ISO-IR-159")]; + char stringpool_str183[sizeof("ISO-CELTIC")]; + char stringpool_str184[sizeof("ISO_8859-14:1998")]; + char stringpool_str185[sizeof("IBM866")]; + char stringpool_str186[sizeof("CP950")]; + char stringpool_str189[sizeof("IBM862")]; + char stringpool_str190[sizeof("ISO-2022-CN-EXT")]; + char stringpool_str191[sizeof("ISO8859-4")]; + char stringpool_str192[sizeof("CSASCII")]; + char stringpool_str193[sizeof("US")]; + char stringpool_str194[sizeof("MS936")]; + char stringpool_str196[sizeof("ISO8859-14")]; + char stringpool_str197[sizeof("ISO-IR-199")]; + char stringpool_str198[sizeof("BIG5")]; + char stringpool_str199[sizeof("ISO_8859-10:1992")]; + char stringpool_str200[sizeof("KSC5601")]; + char stringpool_str202[sizeof("PT154")]; + char stringpool_str203[sizeof("ISO-IR-148")]; + char stringpool_str205[sizeof("ISO-8859-4")]; + char stringpool_str206[sizeof("GBK")]; + char stringpool_str207[sizeof("CSISO2022CN")]; + char stringpool_str208[sizeof("CSBIG5")]; + char stringpool_str209[sizeof("ISO-IR-101")]; + char stringpool_str210[sizeof("ISO-8859-14")]; + char stringpool_str211[sizeof("LATIN10")]; + char stringpool_str212[sizeof("BIG-5")]; + char stringpool_str213[sizeof("X0201")]; + char stringpool_str216[sizeof("ISO-IR-203")]; + char stringpool_str217[sizeof("DECHANZI")]; + char stringpool_str218[sizeof("ELOT_928")]; + char stringpool_str219[sizeof("ISO_8859-4")]; + char stringpool_str220[sizeof("IBM819")]; + char stringpool_str221[sizeof("CSGB2312")]; + char stringpool_str222[sizeof("CN-BIG5")]; + char stringpool_str223[sizeof("UCS-2")]; + char stringpool_str224[sizeof("ISO_8859-14")]; + char stringpool_str225[sizeof("X0208")]; + char stringpool_str228[sizeof("KSC_5601")]; + char stringpool_str229[sizeof("ISO-IR-149")]; + char stringpool_str232[sizeof("ISO8859-10")]; + char stringpool_str234[sizeof("RK1048")]; + char stringpool_str237[sizeof("ISO-IR-14")]; + char stringpool_str238[sizeof("TCVN")]; + char stringpool_str239[sizeof("TIS620")]; + char stringpool_str243[sizeof("GB_2312-80")]; + char stringpool_str245[sizeof("VISCII")]; + char stringpool_str246[sizeof("ISO-8859-10")]; + char stringpool_str247[sizeof("ISO-IR-109")]; + char stringpool_str250[sizeof("CSISOLATIN1")]; + char stringpool_str252[sizeof("CSISOLATIN6")]; + char stringpool_str253[sizeof("TIS-620")]; + char stringpool_str254[sizeof("CSISOLATIN3")]; + char stringpool_str255[sizeof("CSVISCII")]; + char stringpool_str256[sizeof("CSISOLATIN2")]; + char stringpool_str257[sizeof("CSISOLATINCYRILLIC")]; + char stringpool_str258[sizeof("CSISOLATIN5")]; + char stringpool_str259[sizeof("GB18030")]; + char stringpool_str260[sizeof("ISO_8859-10")]; + char stringpool_str263[sizeof("UTF-16")]; + char stringpool_str264[sizeof("CSKZ1048")]; + char stringpool_str266[sizeof("GB_1988-80")]; + char stringpool_str267[sizeof("KZ-1048")]; + char stringpool_str268[sizeof("UTF-8")]; + char stringpool_str269[sizeof("UTF-32")]; + char stringpool_str270[sizeof("MS-CYRL")]; + char stringpool_str275[sizeof("CHAR")]; + char stringpool_str276[sizeof("CSKOI8R")]; + char stringpool_str278[sizeof("ISO-IR-110")]; + char stringpool_str280[sizeof("KOI8-R")]; + char stringpool_str281[sizeof("MACCYRILLIC")]; + char stringpool_str282[sizeof("IBM-CP1133")]; + char stringpool_str283[sizeof("PTCP154")]; + char stringpool_str284[sizeof("TIS620.2533-1")]; + char stringpool_str285[sizeof("CP874")]; + char stringpool_str293[sizeof("ISO-IR-144")]; + char stringpool_str297[sizeof("KS_C_5601-1989")]; + char stringpool_str298[sizeof("HZ-GB-2312")]; + char stringpool_str302[sizeof("TIS620.2529-1")]; + char stringpool_str308[sizeof("CSUNICODE11")]; + char stringpool_str312[sizeof("UNICODE-1-1")]; + char stringpool_str314[sizeof("CSPTCP154")]; + char stringpool_str315[sizeof("CSUCS4")]; + char stringpool_str316[sizeof("CYRILLIC-ASIAN")]; + char stringpool_str319[sizeof("UCS-4")]; + char stringpool_str324[sizeof("IBM850")]; + char stringpool_str327[sizeof("TIS620-0")]; + char stringpool_str330[sizeof("ISO-IR-179")]; + char stringpool_str332[sizeof("CP367")]; + char stringpool_str336[sizeof("ISO646-US")]; + char stringpool_str339[sizeof("ISO-10646-UCS-2")]; + char stringpool_str341[sizeof("CP1257")]; + char stringpool_str342[sizeof("GREEK8")]; + char stringpool_str343[sizeof("US-ASCII")]; + char stringpool_str347[sizeof("ISO-IR-100")]; + char stringpool_str352[sizeof("CSISOLATIN4")]; + char stringpool_str353[sizeof("TIS620.2533-0")]; + char stringpool_str354[sizeof("CSISOLATINGREEK")]; + char stringpool_str355[sizeof("VISCII1.1-1")]; + char stringpool_str356[sizeof("CSIBM866")]; + char stringpool_str359[sizeof("CSISO58GB231280")]; + char stringpool_str360[sizeof("EUCKR")]; + char stringpool_str361[sizeof("MS-ANSI")]; + char stringpool_str362[sizeof("MACTHAI")]; + char stringpool_str365[sizeof("CN-GB")]; + char stringpool_str366[sizeof("CSISOLATINARABIC")]; + char stringpool_str368[sizeof("CN-GB-ISOIR165")]; + char stringpool_str369[sizeof("ARMSCII-8")]; + char stringpool_str370[sizeof("MACINTOSH")]; + char stringpool_str372[sizeof("LATIN7")]; + char stringpool_str374[sizeof("EUC-KR")]; + char stringpool_str381[sizeof("JP")]; + char stringpool_str385[sizeof("ROMAN8")]; + char stringpool_str386[sizeof("ISO-2022-KR")]; + char stringpool_str387[sizeof("ISO-10646-UCS-4")]; + char stringpool_str393[sizeof("ISO8859-7")]; + char stringpool_str395[sizeof("CHINESE")]; + char stringpool_str397[sizeof("GEORGIAN-ACADEMY")]; + char stringpool_str398[sizeof("CSUNICODE")]; + char stringpool_str400[sizeof("WINDOWS-1251")]; + char stringpool_str401[sizeof("WINDOWS-1256")]; + char stringpool_str402[sizeof("WINDOWS-1253")]; + char stringpool_str403[sizeof("WINDOWS-1252")]; + char stringpool_str404[sizeof("WINDOWS-1255")]; + char stringpool_str406[sizeof("WINDOWS-1258")]; + char stringpool_str407[sizeof("ISO-8859-7")]; + char stringpool_str410[sizeof("KOI8-U")]; + char stringpool_str411[sizeof("CSPC862LATINHEBREW")]; + char stringpool_str412[sizeof("EUCTW")]; + char stringpool_str413[sizeof("ARABIC")]; + char stringpool_str414[sizeof("CSISO2022KR")]; + char stringpool_str415[sizeof("WINDOWS-936")]; + char stringpool_str416[sizeof("GREEK")]; + char stringpool_str417[sizeof("MULELAO-1")]; + char stringpool_str418[sizeof("ECMA-118")]; + char stringpool_str420[sizeof("TCVN-5712")]; + char stringpool_str421[sizeof("ISO_8859-7")]; + char stringpool_str422[sizeof("TCVN5712-1")]; + char stringpool_str426[sizeof("EUC-TW")]; + char stringpool_str428[sizeof("MACICELAND")]; + char stringpool_str430[sizeof("KS_C_5601-1987")]; + char stringpool_str432[sizeof("KOREAN")]; + char stringpool_str433[sizeof("UCS-2LE")]; + char stringpool_str437[sizeof("CSISOLATINHEBREW")]; + char stringpool_str439[sizeof("CSKSC56011987")]; + char stringpool_str441[sizeof("UNICODELITTLE")]; + char stringpool_str442[sizeof("GEORGIAN-PS")]; + char stringpool_str443[sizeof("ISO-IR-57")]; + char stringpool_str445[sizeof("ISO-IR-87")]; + char stringpool_str446[sizeof("JIS_C6226-1983")]; + char stringpool_str447[sizeof("ISO-IR-127")]; + char stringpool_str448[sizeof("ISO-IR-157")]; + char stringpool_str449[sizeof("DECKOREAN")]; + char stringpool_str451[sizeof("WINDOWS-1254")]; + char stringpool_str453[sizeof("ISO_646.IRV:1991")]; + char stringpool_str454[sizeof("CSISO57GB1988")]; + char stringpool_str458[sizeof("HP-ROMAN8")]; + char stringpool_str464[sizeof("CSUNICODE11UTF7")]; + char stringpool_str465[sizeof("WCHAR_T")]; + char stringpool_str468[sizeof("UNICODEBIG")]; + char stringpool_str469[sizeof("WINDOWS-1250")]; + char stringpool_str470[sizeof("UNICODE-1-1-UTF-7")]; + char stringpool_str472[sizeof("UCS-2-INTERNAL")]; + char stringpool_str475[sizeof("UTF-16LE")]; + char stringpool_str476[sizeof("STRK1048-2002")]; + char stringpool_str479[sizeof("UTF-32LE")]; + char stringpool_str480[sizeof("MS-EE")]; + char stringpool_str481[sizeof("UCS-4LE")]; + char stringpool_str483[sizeof("IBM367")]; + char stringpool_str484[sizeof("ISO_8859-3:1988")]; + char stringpool_str486[sizeof("ISO_8859-5:1988")]; + char stringpool_str487[sizeof("KOI8-RU")]; + char stringpool_str488[sizeof("ISO_8859-8:1988")]; + char stringpool_str491[sizeof("CSMACINTOSH")]; + char stringpool_str493[sizeof("ANSI_X3.4-1986")]; + char stringpool_str497[sizeof("BIG5HKSCS")]; + char stringpool_str498[sizeof("ANSI_X3.4-1968")]; + char stringpool_str500[sizeof("NEXTSTEP")]; + char stringpool_str504[sizeof("CSISO14JISC6220RO")]; + char stringpool_str507[sizeof("CSEUCKR")]; + char stringpool_str508[sizeof("ECMA-114")]; + char stringpool_str511[sizeof("BIG5-HKSCS")]; + char stringpool_str514[sizeof("ISO_8859-9:1989")]; + char stringpool_str515[sizeof("JIS_C6220-1969-RO")]; + char stringpool_str520[sizeof("UCS-4-INTERNAL")]; + char stringpool_str523[sizeof("CSPC850MULTILINGUAL")]; + char stringpool_str524[sizeof("ISO-2022-JP-1")]; + char stringpool_str525[sizeof("CSHPROMAN8")]; + char stringpool_str527[sizeof("ISO-2022-JP-2")]; + char stringpool_str533[sizeof("ISO_8859-4:1988")]; + char stringpool_str534[sizeof("JIS0208")]; + char stringpool_str539[sizeof("ASMO-708")]; + char stringpool_str543[sizeof("MACROMAN")]; + char stringpool_str544[sizeof("MACCROATIAN")]; + char stringpool_str548[sizeof("CSISO159JISX02121990")]; + char stringpool_str549[sizeof("ISO646-JP")]; + char stringpool_str552[sizeof("WINDOWS-1257")]; + char stringpool_str554[sizeof("CSISO2022JP2")]; + char stringpool_str559[sizeof("CSEUCTW")]; + char stringpool_str560[sizeof("UTF-7")]; + char stringpool_str567[sizeof("EUCJP")]; + char stringpool_str581[sizeof("EUC-JP")]; + char stringpool_str591[sizeof("UCS-2BE")]; + char stringpool_str593[sizeof("ISO-2022-JP")]; + char stringpool_str598[sizeof("SHIFT-JIS")]; + char stringpool_str602[sizeof("MS-TURK")]; + char stringpool_str608[sizeof("JIS_X0212")]; + char stringpool_str612[sizeof("SHIFT_JIS")]; + char stringpool_str621[sizeof("CSISO2022JP")]; + char stringpool_str627[sizeof("CSHALFWIDTHKATAKANA")]; + char stringpool_str628[sizeof("ISO_8859-1:1987")]; + char stringpool_str629[sizeof("ISO_8859-6:1987")]; + char stringpool_str630[sizeof("ISO_8859-7:2003")]; + char stringpool_str631[sizeof("ISO_8859-2:1987")]; + char stringpool_str633[sizeof("UTF-16BE")]; + char stringpool_str637[sizeof("UTF-32BE")]; + char stringpool_str639[sizeof("UCS-4BE")]; + char stringpool_str643[sizeof("CSSHIFTJIS")]; + char stringpool_str644[sizeof("MS-HEBR")]; + char stringpool_str646[sizeof("MACARABIC")]; + char stringpool_str649[sizeof("MACGREEK")]; + char stringpool_str652[sizeof("WINDOWS-874")]; + char stringpool_str658[sizeof("MS-GREEK")]; + char stringpool_str659[sizeof("BIGFIVE")]; + char stringpool_str661[sizeof("MACTURKISH")]; + char stringpool_str671[sizeof("JIS_X0201")]; + char stringpool_str673[sizeof("BIG-FIVE")]; + char stringpool_str678[sizeof("HEBREW")]; + char stringpool_str683[sizeof("JIS_X0208")]; + char stringpool_str689[sizeof("JISX0201-1976")]; + char stringpool_str695[sizeof("UCS-2-SWAPPED")]; + char stringpool_str696[sizeof("JIS_X0212-1990")]; + char stringpool_str701[sizeof("JIS_X0208-1983")]; + char stringpool_str702[sizeof("EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE")]; + char stringpool_str707[sizeof("SDECKANJI")]; + char stringpool_str711[sizeof("JAVA")]; + char stringpool_str725[sizeof("MS_KANJI")]; + char stringpool_str727[sizeof("MACCENTRALEUROPE")]; + char stringpool_str731[sizeof("CSISO87JISX0208")]; + char stringpool_str743[sizeof("UCS-4-SWAPPED")]; + char stringpool_str761[sizeof("MACROMANIA")]; + char stringpool_str765[sizeof("JIS_X0212.1990-0")]; + char stringpool_str768[sizeof("JIS_X0208-1990")]; + char stringpool_str780[sizeof("ISO_8859-7:1987")]; + char stringpool_str783[sizeof("TCVN5712-1:1993")]; + char stringpool_str806[sizeof("MS-ARAB")]; + char stringpool_str807[sizeof("JOHAB")]; + char stringpool_str816[sizeof("CSEUCPKDFMTJAPANESE")]; + char stringpool_str821[sizeof("MACUKRAINE")]; + char stringpool_str824[sizeof("BIG5-HKSCS:2001")]; + char stringpool_str843[sizeof("BIG5-HKSCS:1999")]; + char stringpool_str857[sizeof("WINBALTRIM")]; + char stringpool_str875[sizeof("BIG5-HKSCS:2004")]; + char stringpool_str939[sizeof("MACHEBREW")]; + }; +static const struct stringpool_t stringpool_contents = + { + "L1", + "L6", + "L3", + "L2", + "L5", + "L8", + "866", + "CN", + "862", + "CP1131", + "CP1361", + "CP866", + "CP1133", + "CP1251", + "CP862", + "CP1256", + "CP1253", + "CP1252", + "CP1255", + "CP936", + "CP1258", + "GB2312", + "CP932", + "C99", + "HZ", + "L4", + "LATIN1", + "CP819", + "LATIN6", + "LATIN3", + "LATIN2", + "LATIN5", + "LATIN8", + "R8", + "ISO8859-1", + "ISO8859-6", + "ISO8859-3", + "ISO8859-11", + "ISO8859-2", + "ISO8859-16", + "ISO8859-5", + "ISO8859-13", + "ISO8859-8", + "ISO8859-15", + "ISO-8859-1", + "ISO-8859-6", + "ISO-8859-3", + "ISO-8859-11", + "ISO-8859-2", + "ISO-8859-16", + "ISO-8859-5", + "ISO-8859-13", + "ISO-8859-8", + "ISO-8859-15", + "ISO_8859-1", + "CYRILLIC", + "ISO_8859-6", + "LATIN-9", + "ISO_8859-3", + "ISO_8859-11", + "ISO_8859-2", + "ISO_8859-16", + "ISO_8859-5", + "ISO_8859-13", + "ISO8859-9", + "ISO_8859-16:2001", + "ISO_8859-8", + "ISO_8859-15", + "CP154", + "ISO-IR-6", + "CP949", + "ISO646-CN", + "ASCII", + "ISO_8859-15:1998", + "CP1254", + "ISO-8859-9", + "ISO-IR-166", + "ISO-IR-126", + "ISO-IR-226", + "ISO-IR-165", + "X0212", + "ISO-IR-58", + "UHC", + "EUCCN", + "ISO-IR-138", + "ISO_8859-9", + "L10", + "SJIS", + "850", + "MAC", + "TACTIS", + "L7", + "EUC-CN", + "LATIN4", + "CP850", + "CP1250", + "KOI8-T", + "ISO-2022-CN", + "ISO-IR-159", + "ISO-CELTIC", + "ISO_8859-14:1998", + "IBM866", + "CP950", + "IBM862", + "ISO-2022-CN-EXT", + "ISO8859-4", + "CSASCII", + "US", + "MS936", + "ISO8859-14", + "ISO-IR-199", + "BIG5", + "ISO_8859-10:1992", + "KSC5601", + "PT154", + "ISO-IR-148", + "ISO-8859-4", + "GBK", + "CSISO2022CN", + "CSBIG5", + "ISO-IR-101", + "ISO-8859-14", + "LATIN10", + "BIG-5", + "X0201", + "ISO-IR-203", + "DECHANZI", + "ELOT_928", + "ISO_8859-4", + "IBM819", + "CSGB2312", + "CN-BIG5", + "UCS-2", + "ISO_8859-14", + "X0208", + "KSC_5601", + "ISO-IR-149", + "ISO8859-10", + "RK1048", + "ISO-IR-14", + "TCVN", + "TIS620", + "GB_2312-80", + "VISCII", + "ISO-8859-10", + "ISO-IR-109", + "CSISOLATIN1", + "CSISOLATIN6", + "TIS-620", + "CSISOLATIN3", + "CSVISCII", + "CSISOLATIN2", + "CSISOLATINCYRILLIC", + "CSISOLATIN5", + "GB18030", + "ISO_8859-10", + "UTF-16", + "CSKZ1048", + "GB_1988-80", + "KZ-1048", + "UTF-8", + "UTF-32", + "MS-CYRL", + "CHAR", + "CSKOI8R", + "ISO-IR-110", + "KOI8-R", + "MACCYRILLIC", + "IBM-CP1133", + "PTCP154", + "TIS620.2533-1", + "CP874", + "ISO-IR-144", + "KS_C_5601-1989", + "HZ-GB-2312", + "TIS620.2529-1", + "CSUNICODE11", + "UNICODE-1-1", + "CSPTCP154", + "CSUCS4", + "CYRILLIC-ASIAN", + "UCS-4", + "IBM850", + "TIS620-0", + "ISO-IR-179", + "CP367", + "ISO646-US", + "ISO-10646-UCS-2", + "CP1257", + "GREEK8", + "US-ASCII", + "ISO-IR-100", + "CSISOLATIN4", + "TIS620.2533-0", + "CSISOLATINGREEK", + "VISCII1.1-1", + "CSIBM866", + "CSISO58GB231280", + "EUCKR", + "MS-ANSI", + "MACTHAI", + "CN-GB", + "CSISOLATINARABIC", + "CN-GB-ISOIR165", + "ARMSCII-8", + "MACINTOSH", + "LATIN7", + "EUC-KR", + "JP", + "ROMAN8", + "ISO-2022-KR", + "ISO-10646-UCS-4", + "ISO8859-7", + "CHINESE", + "GEORGIAN-ACADEMY", + "CSUNICODE", + "WINDOWS-1251", + "WINDOWS-1256", + "WINDOWS-1253", + "WINDOWS-1252", + "WINDOWS-1255", + "WINDOWS-1258", + "ISO-8859-7", + "KOI8-U", + "CSPC862LATINHEBREW", + "EUCTW", + "ARABIC", + "CSISO2022KR", + "WINDOWS-936", + "GREEK", + "MULELAO-1", + "ECMA-118", + "TCVN-5712", + "ISO_8859-7", + "TCVN5712-1", + "EUC-TW", + "MACICELAND", + "KS_C_5601-1987", + "KOREAN", + "UCS-2LE", + "CSISOLATINHEBREW", + "CSKSC56011987", + "UNICODELITTLE", + "GEORGIAN-PS", + "ISO-IR-57", + "ISO-IR-87", + "JIS_C6226-1983", + "ISO-IR-127", + "ISO-IR-157", + "DECKOREAN", + "WINDOWS-1254", + "ISO_646.IRV:1991", + "CSISO57GB1988", + "HP-ROMAN8", + "CSUNICODE11UTF7", + "WCHAR_T", + "UNICODEBIG", + "WINDOWS-1250", + "UNICODE-1-1-UTF-7", + "UCS-2-INTERNAL", + "UTF-16LE", + "STRK1048-2002", + "UTF-32LE", + "MS-EE", + "UCS-4LE", + "IBM367", + "ISO_8859-3:1988", + "ISO_8859-5:1988", + "KOI8-RU", + "ISO_8859-8:1988", + "CSMACINTOSH", + "ANSI_X3.4-1986", + "BIG5HKSCS", + "ANSI_X3.4-1968", + "NEXTSTEP", + "CSISO14JISC6220RO", + "CSEUCKR", + "ECMA-114", + "BIG5-HKSCS", + "ISO_8859-9:1989", + "JIS_C6220-1969-RO", + "UCS-4-INTERNAL", + "CSPC850MULTILINGUAL", + "ISO-2022-JP-1", + "CSHPROMAN8", + "ISO-2022-JP-2", + "ISO_8859-4:1988", + "JIS0208", + "ASMO-708", + "MACROMAN", + "MACCROATIAN", + "CSISO159JISX02121990", + "ISO646-JP", + "WINDOWS-1257", + "CSISO2022JP2", + "CSEUCTW", + "UTF-7", + "EUCJP", + "EUC-JP", + "UCS-2BE", + "ISO-2022-JP", + "SHIFT-JIS", + "MS-TURK", + "JIS_X0212", + "SHIFT_JIS", + "CSISO2022JP", + "CSHALFWIDTHKATAKANA", + "ISO_8859-1:1987", + "ISO_8859-6:1987", + "ISO_8859-7:2003", + "ISO_8859-2:1987", + "UTF-16BE", + "UTF-32BE", + "UCS-4BE", + "CSSHIFTJIS", + "MS-HEBR", + "MACARABIC", + "MACGREEK", + "WINDOWS-874", + "MS-GREEK", + "BIGFIVE", + "MACTURKISH", + "JIS_X0201", + "BIG-FIVE", + "HEBREW", + "JIS_X0208", + "JISX0201-1976", + "UCS-2-SWAPPED", + "JIS_X0212-1990", + "JIS_X0208-1983", + "EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE", + "SDECKANJI", + "JAVA", + "MS_KANJI", + "MACCENTRALEUROPE", + "CSISO87JISX0208", + "UCS-4-SWAPPED", + "MACROMANIA", + "JIS_X0212.1990-0", + "JIS_X0208-1990", + "ISO_8859-7:1987", + "TCVN5712-1:1993", + "MS-ARAB", + "JOHAB", + "CSEUCPKDFMTJAPANESE", + "MACUKRAINE", + "BIG5-HKSCS:2001", + "BIG5-HKSCS:1999", + "WINBALTRIM", + "BIG5-HKSCS:2004", + "MACHEBREW" + }; +#define stringpool ((const char *) &stringpool_contents) + +static const struct alias aliases[] = + { + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, +#line 60 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, ei_iso8859_1}, +#line 134 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, ei_iso8859_10}, +#line 76 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, ei_iso8859_3}, +#line 68 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, ei_iso8859_2}, +#line 126 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, ei_iso8859_9}, + {-1}, +#line 151 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, ei_iso8859_14}, + {-1}, {-1}, {-1}, +#line 207 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str23, ei_cp866}, +#line 289 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str24, ei_iso646_cn}, + {-1}, {-1}, +#line 203 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str27, ei_cp862}, + {-1}, {-1}, {-1}, {-1}, +#line 209 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str32, ei_cp1131}, +#line 358 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str33, ei_johab}, +#line 205 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str34, ei_cp866}, + {-1}, +#line 244 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str36, ei_cp1133}, +#line 174 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str37, ei_cp1251}, +#line 201 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str38, ei_cp862}, +#line 189 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str39, ei_cp1256}, + {-1}, +#line 180 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str41, ei_cp1253}, + {-1}, +#line 177 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str43, ei_cp1252}, + {-1}, +#line 186 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str45, ei_cp1255}, + {-1}, {-1}, +#line 326 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str48, ei_cp936}, +#line 195 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str49, ei_cp1258}, +#line 321 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str50, ei_euc_cn}, + {-1}, +#line 313 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str52, ei_cp932}, +#line 51 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str53, ei_c99}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 333 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str60, ei_hz}, + {-1}, {-1}, {-1}, +#line 84 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str64, ei_iso8859_4}, + {-1}, {-1}, {-1}, +#line 59 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str68, ei_iso8859_1}, +#line 57 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str69, ei_iso8859_1}, +#line 133 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str70, ei_iso8859_10}, + {-1}, +#line 75 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str72, ei_iso8859_3}, + {-1}, +#line 67 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str74, ei_iso8859_2}, + {-1}, +#line 125 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str76, ei_iso8859_9}, + {-1}, {-1}, {-1}, +#line 150 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str80, ei_iso8859_14}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 227 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str88, ei_hp_roman8}, +#line 62 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str89, ei_iso8859_1}, + {-1}, +#line 102 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str91, ei_iso8859_6}, + {-1}, +#line 78 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str93, ei_iso8859_3}, +#line 139 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str94, ei_iso8859_11}, +#line 70 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str95, ei_iso8859_2}, +#line 166 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str96, ei_iso8859_16}, +#line 93 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str97, ei_iso8859_5}, +#line 145 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str98, ei_iso8859_13}, + {-1}, {-1}, +#line 120 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str101, ei_iso8859_8}, +#line 159 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str102, ei_iso8859_15}, +#line 53 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str103, ei_iso8859_1}, + {-1}, +#line 94 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str105, ei_iso8859_6}, + {-1}, +#line 71 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str107, ei_iso8859_3}, +#line 137 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str108, ei_iso8859_11}, +#line 63 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str109, ei_iso8859_2}, +#line 160 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str110, ei_iso8859_16}, +#line 87 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str111, ei_iso8859_5}, +#line 140 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str112, ei_iso8859_13}, + {-1}, {-1}, +#line 114 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str115, ei_iso8859_8}, +#line 154 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str116, ei_iso8859_15}, +#line 54 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str117, ei_iso8859_1}, +#line 91 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str118, ei_iso8859_5}, +#line 95 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str119, ei_iso8859_6}, +#line 158 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str120, ei_iso8859_15}, +#line 72 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str121, ei_iso8859_3}, +#line 138 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str122, ei_iso8859_11}, +#line 64 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str123, ei_iso8859_2}, +#line 161 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str124, ei_iso8859_16}, +#line 88 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str125, ei_iso8859_5}, +#line 141 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str126, ei_iso8859_13}, +#line 128 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str127, ei_iso8859_9}, +#line 162 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str128, ei_iso8859_16}, +#line 115 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str129, ei_iso8859_8}, +#line 155 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str130, ei_iso8859_15}, +#line 236 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str131, ei_pt154}, +#line 16 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str132, ei_ascii}, +#line 354 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str133, ei_cp949}, + {-1}, +#line 287 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str135, ei_iso646_cn}, +#line 13 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str136, ei_ascii}, +#line 156 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str137, ei_iso8859_15}, + {-1}, +#line 183 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str139, ei_cp1254}, + {-1}, +#line 121 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str141, ei_iso8859_9}, + {-1}, +#line 252 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str143, ei_tis620}, + {-1}, +#line 107 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str145, ei_iso8859_7}, + {-1}, {-1}, +#line 163 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str148, ei_iso8859_16}, +#line 295 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str149, ei_isoir165}, +#line 283 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str150, ei_jisx0212}, +#line 292 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str151, ei_gb2312}, +#line 355 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str152, ei_cp949}, +#line 320 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str153, ei_euc_cn}, +#line 117 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str154, ei_iso8859_8}, +#line 122 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str155, ei_iso8859_9}, +#line 165 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str156, ei_iso8859_16}, + {-1}, +#line 310 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str158, ei_sjis}, +#line 199 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str159, ei_cp850}, + {-1}, +#line 212 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str161, ei_mac_roman}, + {-1}, {-1}, +#line 253 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str164, ei_tis620}, +#line 144 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str165, ei_iso8859_13}, + {-1}, +#line 319 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str167, ei_euc_cn}, + {-1}, {-1}, +#line 83 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str170, ei_iso8859_4}, + {-1}, {-1}, +#line 197 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str173, ei_cp850}, + {-1}, +#line 171 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str175, ei_cp1250}, + {-1}, {-1}, +#line 233 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str178, ei_koi8_t}, +#line 330 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str179, ei_iso2022_cn}, + {-1}, {-1}, +#line 284 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str182, ei_jisx0212}, +#line 152 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str183, ei_iso8859_14}, +#line 148 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str184, ei_iso8859_14}, +#line 206 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str185, ei_cp866}, +#line 344 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str186, ei_cp950}, + {-1}, {-1}, +#line 202 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str189, ei_cp862}, +#line 332 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str190, ei_iso2022_cn_ext}, +#line 86 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str191, ei_iso8859_4}, +#line 22 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str192, ei_ascii}, +#line 21 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str193, ei_ascii}, +#line 327 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str194, ei_cp936}, + {-1}, +#line 153 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str196, ei_iso8859_14}, +#line 149 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str197, ei_iso8859_14}, +#line 338 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str198, ei_ces_big5}, +#line 131 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str199, ei_iso8859_10}, +#line 356 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str200, ei_cp949}, + {-1}, +#line 234 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str202, ei_pt154}, +#line 124 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str203, ei_iso8859_9}, + {-1}, +#line 79 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str205, ei_iso8859_4}, +#line 325 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str206, ei_ces_gbk}, +#line 331 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str207, ei_iso2022_cn}, +#line 343 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str208, ei_ces_big5}, +#line 66 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str209, ei_iso8859_2}, +#line 146 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str210, ei_iso8859_14}, +#line 164 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str211, ei_iso8859_16}, +#line 339 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str212, ei_ces_big5}, +#line 270 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str213, ei_jisx0201}, + {-1}, {-1}, +#line 157 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str216, ei_iso8859_15}, +#line 324 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str217, ei_euc_cn}, +#line 109 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str218, ei_iso8859_7}, +#line 80 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str219, ei_iso8859_4}, +#line 58 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str220, ei_iso8859_1}, +#line 323 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str221, ei_euc_cn}, +#line 342 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str222, ei_ces_big5}, +#line 24 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str223, ei_ucs2}, +#line 147 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str224, ei_iso8859_14}, +#line 276 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str225, ei_jisx0208}, + {-1}, {-1}, +#line 297 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str228, ei_ksc5601}, +#line 300 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str229, ei_ksc5601}, + {-1}, {-1}, +#line 136 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str232, ei_iso8859_10}, + {-1}, +#line 239 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str234, ei_rk1048}, + {-1}, {-1}, +#line 265 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str237, ei_iso646_jp}, +#line 259 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str238, ei_tcvn}, +#line 247 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str239, ei_tis620}, + {-1}, {-1}, {-1}, +#line 291 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str243, ei_gb2312}, + {-1}, +#line 256 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str245, ei_viscii}, +#line 129 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str246, ei_iso8859_10}, +#line 74 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str247, ei_iso8859_3}, + {-1}, {-1}, +#line 61 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str250, ei_iso8859_1}, + {-1}, +#line 135 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str252, ei_iso8859_10}, +#line 246 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str253, ei_tis620}, +#line 77 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str254, ei_iso8859_3}, +#line 258 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str255, ei_viscii}, +#line 69 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str256, ei_iso8859_2}, +#line 92 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str257, ei_iso8859_5}, +#line 127 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str258, ei_iso8859_9}, +#line 329 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str259, ei_gb18030}, +#line 130 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str260, ei_iso8859_10}, + {-1}, {-1}, +#line 38 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str263, ei_utf16}, +#line 242 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str264, ei_rk1048}, + {-1}, +#line 286 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str266, ei_iso646_cn}, +#line 241 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str267, ei_rk1048}, +#line 23 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str268, ei_utf8}, +#line 41 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str269, ei_utf32}, +#line 176 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str270, ei_cp1251}, + {-1}, {-1}, {-1}, {-1}, +#line 361 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str275, ei_local_char}, +#line 168 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str276, ei_koi8_r}, + {-1}, +#line 82 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str278, ei_iso8859_4}, + {-1}, +#line 167 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str280, ei_koi8_r}, +#line 218 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str281, ei_mac_cyrillic}, +#line 245 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str282, ei_cp1133}, +#line 235 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str283, ei_pt154}, +#line 251 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str284, ei_tis620}, +#line 254 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str285, ei_cp874}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 90 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str293, ei_iso8859_5}, + {-1}, {-1}, {-1}, +#line 299 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str297, ei_ksc5601}, +#line 334 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str298, ei_hz}, + {-1}, {-1}, {-1}, +#line 249 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str302, ei_tis620}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 30 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str308, ei_ucs2be}, + {-1}, {-1}, {-1}, +#line 29 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str312, ei_ucs2be}, + {-1}, +#line 238 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str314, ei_pt154}, +#line 35 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str315, ei_ucs4}, +#line 237 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str316, ei_pt154}, + {-1}, {-1}, +#line 33 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str319, ei_ucs4}, + {-1}, {-1}, {-1}, {-1}, +#line 198 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str324, ei_cp850}, + {-1}, {-1}, +#line 248 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str327, ei_tis620}, + {-1}, {-1}, +#line 142 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str330, ei_iso8859_13}, + {-1}, +#line 19 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str332, ei_ascii}, + {-1}, {-1}, {-1}, +#line 14 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str336, ei_ascii}, + {-1}, {-1}, +#line 25 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str339, ei_ucs2}, + {-1}, +#line 192 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str341, ei_cp1257}, +#line 110 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str342, ei_iso8859_7}, +#line 12 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str343, ei_ascii}, + {-1}, {-1}, {-1}, +#line 56 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str347, ei_iso8859_1}, + {-1}, {-1}, {-1}, {-1}, +#line 85 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str352, ei_iso8859_4}, +#line 250 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str353, ei_tis620}, +#line 112 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str354, ei_iso8859_7}, +#line 257 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str355, ei_viscii}, +#line 208 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str356, ei_cp866}, + {-1}, {-1}, +#line 293 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str359, ei_gb2312}, +#line 351 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str360, ei_euc_kr}, +#line 179 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str361, ei_cp1252}, +#line 224 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str362, ei_mac_thai}, + {-1}, {-1}, +#line 322 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str365, ei_euc_cn}, +#line 101 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str366, ei_iso8859_6}, + {-1}, +#line 296 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str368, ei_isoir165}, +#line 230 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str369, ei_armscii_8}, +#line 211 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str370, ei_mac_roman}, + {-1}, +#line 143 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str372, ei_iso8859_13}, + {-1}, +#line 350 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str374, ei_euc_kr}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 266 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str381, ei_iso646_jp}, + {-1}, {-1}, {-1}, +#line 226 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str385, ei_hp_roman8}, +#line 359 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str386, ei_iso2022_kr}, +#line 34 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str387, ei_ucs4}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 113 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str393, ei_iso8859_7}, + {-1}, +#line 294 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str395, ei_gb2312}, + {-1}, +#line 231 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str397, ei_georgian_academy}, +#line 26 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str398, ei_ucs2}, + {-1}, +#line 175 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str400, ei_cp1251}, +#line 190 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str401, ei_cp1256}, +#line 181 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str402, ei_cp1253}, +#line 178 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str403, ei_cp1252}, +#line 187 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str404, ei_cp1255}, + {-1}, +#line 196 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str406, ei_cp1258}, +#line 103 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str407, ei_iso8859_7}, + {-1}, {-1}, +#line 169 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str410, ei_koi8_u}, +#line 204 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str411, ei_cp862}, +#line 336 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str412, ei_euc_tw}, +#line 100 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str413, ei_iso8859_6}, +#line 360 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str414, ei_iso2022_kr}, +#line 328 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str415, ei_cp936}, +#line 111 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str416, ei_iso8859_7}, +#line 243 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str417, ei_mulelao}, +#line 108 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str418, ei_iso8859_7}, + {-1}, +#line 260 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str420, ei_tcvn}, +#line 104 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str421, ei_iso8859_7}, +#line 261 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str422, ei_tcvn}, + {-1}, {-1}, {-1}, +#line 335 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str426, ei_euc_tw}, + {-1}, +#line 215 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str428, ei_mac_iceland}, + {-1}, +#line 298 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str430, ei_ksc5601}, + {-1}, +#line 302 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str432, ei_ksc5601}, +#line 31 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str433, ei_ucs2le}, + {-1}, {-1}, {-1}, +#line 119 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str437, ei_iso8859_8}, + {-1}, +#line 301 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str439, ei_ksc5601}, + {-1}, +#line 32 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str441, ei_ucs2le}, +#line 232 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str442, ei_georgian_ps}, +#line 288 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str443, ei_iso646_cn}, + {-1}, +#line 277 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str445, ei_jisx0208}, +#line 278 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str446, ei_jisx0208}, +#line 97 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str447, ei_iso8859_6}, +#line 132 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str448, ei_iso8859_10}, +#line 353 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str449, ei_euc_kr}, + {-1}, +#line 184 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str451, ei_cp1254}, + {-1}, +#line 15 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str453, ei_ascii}, +#line 290 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str454, ei_iso646_cn}, + {-1}, {-1}, {-1}, +#line 225 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str458, ei_hp_roman8}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 46 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str464, ei_utf7}, +#line 362 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str465, ei_local_wchar_t}, + {-1}, {-1}, +#line 28 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str468, ei_ucs2be}, +#line 172 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str469, ei_cp1250}, +#line 45 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str470, ei_utf7}, + {-1}, +#line 47 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str472, ei_ucs2internal}, + {-1}, {-1}, +#line 40 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str475, ei_utf16le}, +#line 240 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str476, ei_rk1048}, + {-1}, {-1}, +#line 43 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str479, ei_utf32le}, +#line 173 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str480, ei_cp1250}, +#line 37 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str481, ei_ucs4le}, + {-1}, +#line 20 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str483, ei_ascii}, +#line 73 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str484, ei_iso8859_3}, + {-1}, +#line 89 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str486, ei_iso8859_5}, +#line 170 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str487, ei_koi8_ru}, +#line 116 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str488, ei_iso8859_8}, + {-1}, {-1}, +#line 213 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str491, ei_mac_roman}, + {-1}, +#line 18 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str493, ei_ascii}, + {-1}, {-1}, {-1}, +#line 348 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str497, ei_big5hkscs2004}, +#line 17 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str498, ei_ascii}, + {-1}, +#line 229 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str500, ei_nextstep}, + {-1}, {-1}, {-1}, +#line 267 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str504, ei_iso646_jp}, + {-1}, {-1}, +#line 352 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str507, ei_euc_kr}, +#line 98 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str508, ei_iso8859_6}, + {-1}, {-1}, +#line 347 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str511, ei_big5hkscs2004}, + {-1}, {-1}, +#line 123 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str514, ei_iso8859_9}, +#line 263 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str515, ei_iso646_jp}, + {-1}, {-1}, {-1}, {-1}, +#line 49 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str520, ei_ucs4internal}, + {-1}, {-1}, +#line 200 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str523, ei_cp850}, +#line 316 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str524, ei_iso2022_jp1}, +#line 228 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str525, ei_hp_roman8}, + {-1}, +#line 317 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str527, ei_iso2022_jp2}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 81 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str533, ei_iso8859_4}, +#line 275 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str534, ei_jisx0208}, + {-1}, {-1}, {-1}, {-1}, +#line 99 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str539, ei_iso8859_6}, + {-1}, {-1}, {-1}, +#line 210 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str543, ei_mac_roman}, +#line 216 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str544, ei_mac_croatian}, + {-1}, {-1}, {-1}, +#line 285 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str548, ei_jisx0212}, +#line 264 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str549, ei_iso646_jp}, + {-1}, {-1}, +#line 193 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str552, ei_cp1257}, + {-1}, +#line 318 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str554, ei_iso2022_jp2}, + {-1}, {-1}, {-1}, {-1}, +#line 337 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str559, ei_euc_tw}, +#line 44 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str560, ei_utf7}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 304 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str567, ei_euc_jp}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, +#line 303 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str581, ei_euc_jp}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 27 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str591, ei_ucs2be}, + {-1}, +#line 314 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str593, ei_iso2022_jp}, + {-1}, {-1}, {-1}, {-1}, +#line 309 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str598, ei_sjis}, + {-1}, {-1}, {-1}, +#line 185 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str602, ei_cp1254}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 280 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str608, ei_jisx0212}, + {-1}, {-1}, {-1}, +#line 308 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str612, ei_sjis}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 315 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str621, ei_iso2022_jp}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 271 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str627, ei_jisx0201}, +#line 55 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str628, ei_iso8859_1}, +#line 96 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str629, ei_iso8859_6}, +#line 106 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str630, ei_iso8859_7}, +#line 65 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str631, ei_iso8859_2}, + {-1}, +#line 39 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str633, ei_utf16be}, + {-1}, {-1}, {-1}, +#line 42 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str637, ei_utf32be}, + {-1}, +#line 36 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str639, ei_ucs4be}, + {-1}, {-1}, {-1}, +#line 312 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str643, ei_sjis}, +#line 188 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str644, ei_cp1255}, + {-1}, +#line 223 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str646, ei_mac_arabic}, + {-1}, {-1}, +#line 220 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str649, ei_mac_greek}, + {-1}, {-1}, +#line 255 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str652, ei_cp874}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 182 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str658, ei_cp1253}, +#line 341 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str659, ei_ces_big5}, + {-1}, +#line 221 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str661, ei_mac_turkish}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 268 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str671, ei_jisx0201}, + {-1}, +#line 340 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str673, ei_ces_big5}, + {-1}, {-1}, {-1}, {-1}, +#line 118 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str678, ei_iso8859_8}, + {-1}, {-1}, {-1}, {-1}, +#line 272 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str683, ei_jisx0208}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 269 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str689, ei_jisx0201}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 48 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str695, ei_ucs2swapped}, +#line 282 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str696, ei_jisx0212}, + {-1}, {-1}, {-1}, {-1}, +#line 273 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str701, ei_jisx0208}, +#line 305 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str702, ei_euc_jp}, + {-1}, {-1}, {-1}, {-1}, +#line 307 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str707, ei_euc_jp}, + {-1}, {-1}, {-1}, +#line 52 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str711, ei_java}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, +#line 311 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str725, ei_sjis}, + {-1}, +#line 214 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str727, ei_mac_centraleurope}, + {-1}, {-1}, {-1}, +#line 279 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str731, ei_jisx0208}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, +#line 50 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str743, ei_ucs4swapped}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 217 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str761, ei_mac_romania}, + {-1}, {-1}, {-1}, +#line 281 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str765, ei_jisx0212}, + {-1}, {-1}, +#line 274 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str768, ei_jisx0208}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, +#line 105 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str780, ei_iso8859_7}, + {-1}, {-1}, +#line 262 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str783, ei_tcvn}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, +#line 191 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str806, ei_cp1256}, +#line 357 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str807, ei_johab}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 306 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str816, ei_euc_jp}, + {-1}, {-1}, {-1}, {-1}, +#line 219 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str821, ei_mac_ukraine}, + {-1}, {-1}, +#line 346 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str824, ei_big5hkscs2001}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 345 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str843, ei_big5hkscs1999}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, +#line 194 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str857, ei_cp1257}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 349 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str875, ei_big5hkscs2004}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 222 "lib/aliases_sysosf1.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str939, ei_mac_hebrew} + }; + +#ifdef __GNUC__ +__inline +#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ +__attribute__ ((__gnu_inline__)) +#endif +#endif +const struct alias * +aliases_lookup (register const char *str, register unsigned int len) +{ + if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) + { + register int key = aliases_hash (str, len); + + if (key <= MAX_HASH_VALUE && key >= 0) + { + register int o = aliases[key].name; + if (o >= 0) + { + register const char *s = o + stringpool; + + if (*str == *s && !strcmp (str + 1, s + 1)) + return &aliases[key]; + } + } + } + return 0; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/aliases_syssolaris.h b/graf2d/win32gdk/gdk/src/iconv/aliases_syssolaris.h new file mode 100644 index 00000000000..286bdbfa501 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/aliases_syssolaris.h @@ -0,0 +1,1753 @@ +/* ANSI-C code produced by gperf version 3.0.4 */ +/* Command-line: gperf -m 10 lib/aliases_syssolaris.gperf */ +/* Computed positions: -k'1,3-11,$' */ + +#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ + && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ + && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ + && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ + && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ + && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ + && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ + && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ + && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ + && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ + && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ + && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ + && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ + && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ + && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ + && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ + && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ + && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ + && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ + && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ + && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ + && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ + && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) +/* The character set is not based on ISO-646. */ +#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>." +#endif + +#line 1 "lib/aliases_syssolaris.gperf" +struct alias { int name; unsigned int encoding_index; }; + +#define TOTAL_KEYWORDS 353 +#define MIN_WORD_LENGTH 2 +#define MAX_WORD_LENGTH 45 +#define MIN_HASH_VALUE 8 +#define MAX_HASH_VALUE 1003 +/* maximum key range = 996, duplicates = 0 */ + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static unsigned int +aliases_hash (register const char *str, register unsigned int len) +{ + static const unsigned short asso_values[] = + { + 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, + 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, + 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, + 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, + 1004, 1004, 1004, 1004, 1004, 2, 112, 1004, 27, 4, + 34, 57, 16, 22, 11, 168, 3, 10, 254, 1004, + 1004, 1004, 1004, 1004, 1004, 21, 126, 7, 10, 37, + 40, 119, 81, 62, 332, 197, 9, 169, 4, 2, + 8, 1004, 3, 34, 104, 205, 191, 192, 195, 36, + 16, 1004, 1004, 1004, 1004, 3, 1004, 1004, 1004, 1004, + 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, + 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, + 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004 + }; + register int hval = len; + + switch (hval) + { + default: + hval += asso_values[(unsigned char)str[10]]; + /*FALLTHROUGH*/ + case 10: + hval += asso_values[(unsigned char)str[9]]; + /*FALLTHROUGH*/ + case 9: + hval += asso_values[(unsigned char)str[8]]; + /*FALLTHROUGH*/ + case 8: + hval += asso_values[(unsigned char)str[7]]; + /*FALLTHROUGH*/ + case 7: + hval += asso_values[(unsigned char)str[6]]; + /*FALLTHROUGH*/ + case 6: + hval += asso_values[(unsigned char)str[5]]; + /*FALLTHROUGH*/ + case 5: + hval += asso_values[(unsigned char)str[4]]; + /*FALLTHROUGH*/ + case 4: + hval += asso_values[(unsigned char)str[3]]; + /*FALLTHROUGH*/ + case 3: + hval += asso_values[(unsigned char)str[2]]; + /*FALLTHROUGH*/ + case 2: + case 1: + hval += asso_values[(unsigned char)str[0]]; + break; + } + return hval + asso_values[(unsigned char)str[len - 1]]; +} + +struct stringpool_t + { + char stringpool_str8[sizeof("R8")]; + char stringpool_str13[sizeof("CN")]; + char stringpool_str14[sizeof("L8")]; + char stringpool_str15[sizeof("L1")]; + char stringpool_str22[sizeof("L6")]; + char stringpool_str27[sizeof("L4")]; + char stringpool_str28[sizeof("866")]; + char stringpool_str30[sizeof("C99")]; + char stringpool_str33[sizeof("L5")]; + char stringpool_str36[sizeof("646")]; + char stringpool_str38[sizeof("CHAR")]; + char stringpool_str39[sizeof("CP819")]; + char stringpool_str45[sizeof("L2")]; + char stringpool_str48[sizeof("CP866")]; + char stringpool_str58[sizeof("CP949")]; + char stringpool_str60[sizeof("850")]; + char stringpool_str61[sizeof("5601")]; + char stringpool_str62[sizeof("RK1048")]; + char stringpool_str64[sizeof("EUCCN")]; + char stringpool_str66[sizeof("L10")]; + char stringpool_str67[sizeof("EUC-CN")]; + char stringpool_str68[sizeof("L3")]; + char stringpool_str70[sizeof("CP154")]; + char stringpool_str71[sizeof("PT154")]; + char stringpool_str74[sizeof("862")]; + char stringpool_str79[sizeof("CP1258")]; + char stringpool_str81[sizeof("CP1251")]; + char stringpool_str86[sizeof("CP1131")]; + char stringpool_str88[sizeof("PTCP154")]; + char stringpool_str91[sizeof("CP850")]; + char stringpool_str93[sizeof("CP1361")]; + char stringpool_str94[sizeof("CP862")]; + char stringpool_str95[sizeof("CP1256")]; + char stringpool_str98[sizeof("CP950")]; + char stringpool_str99[sizeof("HZ")]; + char stringpool_str101[sizeof("CP936")]; + char stringpool_str105[sizeof("CP1254")]; + char stringpool_str117[sizeof("CP1255")]; + char stringpool_str119[sizeof("ISO8859-8")]; + char stringpool_str121[sizeof("ISO8859-1")]; + char stringpool_str122[sizeof("ISO-8859-8")]; + char stringpool_str123[sizeof("ISO_8859-8")]; + char stringpool_str124[sizeof("ISO-8859-1")]; + char stringpool_str125[sizeof("ISO_8859-1")]; + char stringpool_str126[sizeof("ISO8859-11")]; + char stringpool_str127[sizeof("CP1250")]; + char stringpool_str128[sizeof("ISO646-CN")]; + char stringpool_str129[sizeof("ISO-8859-11")]; + char stringpool_str130[sizeof("ISO_8859-11")]; + char stringpool_str133[sizeof("ISO8859-9")]; + char stringpool_str135[sizeof("ISO8859-6")]; + char stringpool_str136[sizeof("ISO-8859-9")]; + char stringpool_str137[sizeof("ISO_8859-9")]; + char stringpool_str138[sizeof("ISO-8859-6")]; + char stringpool_str139[sizeof("ISO_8859-6")]; + char stringpool_str140[sizeof("ISO8859-16")]; + char stringpool_str141[sizeof("CP1252")]; + char stringpool_str142[sizeof("ISO_8859-16:2001")]; + char stringpool_str143[sizeof("ISO-8859-16")]; + char stringpool_str144[sizeof("ISO_8859-16")]; + char stringpool_str145[sizeof("ISO8859-4")]; + char stringpool_str146[sizeof("ISO_8859-14:1998")]; + char stringpool_str147[sizeof("CP932")]; + char stringpool_str148[sizeof("ISO-8859-4")]; + char stringpool_str149[sizeof("ISO_8859-4")]; + char stringpool_str150[sizeof("ISO8859-14")]; + char stringpool_str152[sizeof("ISO_8859-15:1998")]; + char stringpool_str153[sizeof("ISO-8859-14")]; + char stringpool_str154[sizeof("ISO_8859-14")]; + char stringpool_str157[sizeof("ISO8859-5")]; + char stringpool_str160[sizeof("ISO-8859-5")]; + char stringpool_str161[sizeof("ISO_8859-5")]; + char stringpool_str162[sizeof("ISO8859-15")]; + char stringpool_str163[sizeof("ISO-IR-6")]; + char stringpool_str165[sizeof("ISO-8859-15")]; + char stringpool_str166[sizeof("ISO_8859-15")]; + char stringpool_str168[sizeof("SJIS")]; + char stringpool_str169[sizeof("ISO-IR-148")]; + char stringpool_str170[sizeof("ISO-IR-58")]; + char stringpool_str172[sizeof("ISO8859-10")]; + char stringpool_str174[sizeof("CYRILLIC")]; + char stringpool_str175[sizeof("ISO-8859-10")]; + char stringpool_str176[sizeof("ISO_8859-10")]; + char stringpool_str177[sizeof("ISO-IR-199")]; + char stringpool_str178[sizeof("ISO-IR-14")]; + char stringpool_str179[sizeof("L7")]; + char stringpool_str180[sizeof("ISO-IR-166")]; + char stringpool_str181[sizeof("ISO8859-2")]; + char stringpool_str182[sizeof("ISO-IR-101")]; + char stringpool_str183[sizeof("ISO-IR-149")]; + char stringpool_str184[sizeof("ISO-8859-2")]; + char stringpool_str185[sizeof("ISO_8859-2")]; + char stringpool_str186[sizeof("MAC")]; + char stringpool_str187[sizeof("CP1253")]; + char stringpool_str188[sizeof("ISO_8859-10:1992")]; + char stringpool_str189[sizeof("ISO-IR-159")]; + char stringpool_str191[sizeof("LATIN8")]; + char stringpool_str192[sizeof("CP1133")]; + char stringpool_str193[sizeof("LATIN1")]; + char stringpool_str194[sizeof("ISO-IR-109")]; + char stringpool_str195[sizeof("ISO-IR-144")]; + char stringpool_str196[sizeof("ANSI-1251")]; + char stringpool_str198[sizeof("CNS11643")]; + char stringpool_str201[sizeof("CSPTCP154")]; + char stringpool_str202[sizeof("ISO-IR-165")]; + char stringpool_str203[sizeof("ISO-IR-126")]; + char stringpool_str204[sizeof("ELOT_928")]; + char stringpool_str205[sizeof("ISO-IR-110")]; + char stringpool_str207[sizeof("LATIN6")]; + char stringpool_str208[sizeof("LATIN-9")]; + char stringpool_str209[sizeof("ROMAN8")]; + char stringpool_str210[sizeof("ISO-IR-138")]; + char stringpool_str211[sizeof("GB_1988-80")]; + char stringpool_str215[sizeof("CP874")]; + char stringpool_str217[sizeof("LATIN4")]; + char stringpool_str219[sizeof("ASCII")]; + char stringpool_str222[sizeof("UHC")]; + char stringpool_str223[sizeof("ISO-2022-CN")]; + char stringpool_str225[sizeof("CHINESE")]; + char stringpool_str227[sizeof("ISO8859-3")]; + char stringpool_str228[sizeof("ISO-IR-100")]; + char stringpool_str229[sizeof("LATIN5")]; + char stringpool_str230[sizeof("ISO-8859-3")]; + char stringpool_str231[sizeof("ISO_8859-3")]; + char stringpool_str232[sizeof("ISO8859-13")]; + char stringpool_str233[sizeof("ISO-IR-226")]; + char stringpool_str234[sizeof("CYRILLIC-ASIAN")]; + char stringpool_str235[sizeof("ISO-8859-13")]; + char stringpool_str236[sizeof("ISO_8859-13")]; + char stringpool_str241[sizeof("US")]; + char stringpool_str242[sizeof("MS-CYRL")]; + char stringpool_str243[sizeof("TIS620")]; + char stringpool_str244[sizeof("LATIN10")]; + char stringpool_str246[sizeof("TIS-620")]; + char stringpool_str250[sizeof("ARABIC")]; + char stringpool_str251[sizeof("ECMA-118")]; + char stringpool_str252[sizeof("EUCKR")]; + char stringpool_str253[sizeof("LATIN2")]; + char stringpool_str255[sizeof("EUC-KR")]; + char stringpool_str258[sizeof("UTF-8")]; + char stringpool_str259[sizeof("KZ-1048")]; + char stringpool_str260[sizeof("CSISO2022CN")]; + char stringpool_str262[sizeof("CSASCII")]; + char stringpool_str263[sizeof("MS936")]; + char stringpool_str264[sizeof("IBM819")]; + char stringpool_str266[sizeof("MULELAO-1")]; + char stringpool_str267[sizeof("X0208")]; + char stringpool_str269[sizeof("X0201")]; + char stringpool_str271[sizeof("GB18030")]; + char stringpool_str272[sizeof("KOREAN")]; + char stringpool_str273[sizeof("IBM866")]; + char stringpool_str274[sizeof("TIS620-0")]; + char stringpool_str276[sizeof("KOI8-R")]; + char stringpool_str277[sizeof("ECMA-114")]; + char stringpool_str278[sizeof("UCS-4")]; + char stringpool_str279[sizeof("UTF-16")]; + char stringpool_str281[sizeof("CSKZ1048")]; + char stringpool_str283[sizeof("KSC_5601")]; + char stringpool_str284[sizeof("CSKOI8R")]; + char stringpool_str287[sizeof("MS-EE")]; + char stringpool_str288[sizeof("GB2312")]; + char stringpool_str291[sizeof("CSUCS4")]; + char stringpool_str293[sizeof("BIG5")]; + char stringpool_str296[sizeof("BIG-5")]; + char stringpool_str297[sizeof("HP-ROMAN8")]; + char stringpool_str299[sizeof("LATIN3")]; + char stringpool_str304[sizeof("KS_C_5601-1989")]; + char stringpool_str306[sizeof("X0212")]; + char stringpool_str307[sizeof("TCVN")]; + char stringpool_str309[sizeof("ISO-CELTIC")]; + char stringpool_str311[sizeof("CSHPROMAN8")]; + char stringpool_str314[sizeof("UCS-2")]; + char stringpool_str316[sizeof("IBM850")]; + char stringpool_str318[sizeof("ISO-IR-203")]; + char stringpool_str319[sizeof("IBM862")]; + char stringpool_str320[sizeof("GB_2312-80")]; + char stringpool_str324[sizeof("CSISOLATIN1")]; + char stringpool_str327[sizeof("ISO-2022-CN-EXT")]; + char stringpool_str335[sizeof("ISO-IR-179")]; + char stringpool_str337[sizeof("CSISOLATINCYRILLIC")]; + char stringpool_str338[sizeof("CSISOLATIN6")]; + char stringpool_str342[sizeof("JP")]; + char stringpool_str346[sizeof("MACICELAND")]; + char stringpool_str347[sizeof("UCS-4LE")]; + char stringpool_str348[sizeof("CSISOLATIN4")]; + char stringpool_str349[sizeof("CSISOLATINARABIC")]; + char stringpool_str350[sizeof("UNICODE-1-1")]; + char stringpool_str353[sizeof("UTF-16LE")]; + char stringpool_str357[sizeof("CSUNICODE11")]; + char stringpool_str360[sizeof("CSISOLATIN5")]; + char stringpool_str361[sizeof("MS-ANSI")]; + char stringpool_str364[sizeof("CSBIG5")]; + char stringpool_str365[sizeof("UCS-2LE")]; + char stringpool_str367[sizeof("CN-BIG5")]; + char stringpool_str372[sizeof("ARMSCII-8")]; + char stringpool_str373[sizeof("ISO-10646-UCS-4")]; + char stringpool_str378[sizeof("UTF-32")]; + char stringpool_str380[sizeof("CSUNICODE")]; + char stringpool_str382[sizeof("ISO_8859-8:1988")]; + char stringpool_str384[sizeof("CSISOLATIN2")]; + char stringpool_str385[sizeof("CN-GB")]; + char stringpool_str386[sizeof("ISO646-US")]; + char stringpool_str387[sizeof("MACROMAN")]; + char stringpool_str389[sizeof("MACCYRILLIC")]; + char stringpool_str391[sizeof("ISO-10646-UCS-2")]; + char stringpool_str394[sizeof("STRK1048-2002")]; + char stringpool_str395[sizeof("ISO_8859-4:1988")]; + char stringpool_str396[sizeof("ISO_8859-9:1989")]; + char stringpool_str397[sizeof("EUCJP")]; + char stringpool_str400[sizeof("EUC-JP")]; + char stringpool_str401[sizeof("ISO_8859-5:1988")]; + char stringpool_str402[sizeof("GREEK8")]; + char stringpool_str403[sizeof("ASMO-708")]; + char stringpool_str405[sizeof("PCK")]; + char stringpool_str408[sizeof("CSIBM866")]; + char stringpool_str409[sizeof("CP1257")]; + char stringpool_str411[sizeof("ISO-2022-KR")]; + char stringpool_str412[sizeof("GEORGIAN-ACADEMY")]; + char stringpool_str415[sizeof("MACCROATIAN")]; + char stringpool_str416[sizeof("CP367")]; + char stringpool_str419[sizeof("GEORGIAN-PS")]; + char stringpool_str423[sizeof("CSGB2312")]; + char stringpool_str424[sizeof("VISCII")]; + char stringpool_str428[sizeof("MS-HEBR")]; + char stringpool_str429[sizeof("UTF-32LE")]; + char stringpool_str430[sizeof("CSISOLATIN3")]; + char stringpool_str432[sizeof("MACARABIC")]; + char stringpool_str436[sizeof("ISO_8859-3:1988")]; + char stringpool_str437[sizeof("IBM-CP1133")]; + char stringpool_str439[sizeof("TIS620.2529-1")]; + char stringpool_str448[sizeof("CSISO2022KR")]; + char stringpool_str449[sizeof("ISO8859-7")]; + char stringpool_str451[sizeof("MACCENTRALEUROPE")]; + char stringpool_str452[sizeof("ISO-8859-7")]; + char stringpool_str453[sizeof("ISO_8859-7")]; + char stringpool_str455[sizeof("CN-GB-ISOIR165")]; + char stringpool_str461[sizeof("ISO646-JP")]; + char stringpool_str462[sizeof("KS_C_5601-1987")]; + char stringpool_str463[sizeof("US-ASCII")]; + char stringpool_str464[sizeof("UCS-4BE")]; + char stringpool_str466[sizeof("CSEUCKR")]; + char stringpool_str467[sizeof("JIS0208")]; + char stringpool_str470[sizeof("UTF-16BE")]; + char stringpool_str475[sizeof("MS-ARAB")]; + char stringpool_str476[sizeof("CSPC862LATINHEBREW")]; + char stringpool_str478[sizeof("KOI8-T")]; + char stringpool_str481[sizeof("ISO-IR-87")]; + char stringpool_str482[sizeof("UCS-2BE")]; + char stringpool_str489[sizeof("MACROMANIA")]; + char stringpool_str492[sizeof("UCS-4-INTERNAL")]; + char stringpool_str493[sizeof("ISO_646.IRV:1991")]; + char stringpool_str495[sizeof("CSVISCII")]; + char stringpool_str497[sizeof("VISCII1.1-1")]; + char stringpool_str500[sizeof("ISO-IR-57")]; + char stringpool_str502[sizeof("NEXTSTEP")]; + char stringpool_str503[sizeof("HZ-GB-2312")]; + char stringpool_str504[sizeof("CSKSC56011987")]; + char stringpool_str505[sizeof("ISO-IR-157")]; + char stringpool_str507[sizeof("JIS_C6220-1969-RO")]; + char stringpool_str508[sizeof("CSISO58GB231280")]; + char stringpool_str509[sizeof("TIS620.2533-1")]; + char stringpool_str510[sizeof("UCS-2-INTERNAL")]; + char stringpool_str511[sizeof("WINDOWS-1258")]; + char stringpool_str512[sizeof("WINDOWS-1251")]; + char stringpool_str513[sizeof("MACTHAI")]; + char stringpool_str515[sizeof("WCHAR_T")]; + char stringpool_str516[sizeof("GBK")]; + char stringpool_str517[sizeof("ISO-IR-127")]; + char stringpool_str519[sizeof("WINDOWS-1256")]; + char stringpool_str520[sizeof("UNICODE-1-1-UTF-7")]; + char stringpool_str521[sizeof("LATIN7")]; + char stringpool_str523[sizeof("ANSI_X3.4-1968")]; + char stringpool_str524[sizeof("WINDOWS-1254")]; + char stringpool_str525[sizeof("CSUNICODE11UTF7")]; + char stringpool_str530[sizeof("WINDOWS-1255")]; + char stringpool_str531[sizeof("ANSI_X3.4-1986")]; + char stringpool_str532[sizeof("TIS620.2533-0")]; + char stringpool_str533[sizeof("EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE")]; + char stringpool_str535[sizeof("WINDOWS-1250")]; + char stringpool_str536[sizeof("WINDOWS-936")]; + char stringpool_str537[sizeof("EUCTW")]; + char stringpool_str540[sizeof("EUC-TW")]; + char stringpool_str542[sizeof("WINDOWS-1252")]; + char stringpool_str543[sizeof("JIS_C6226-1983")]; + char stringpool_str545[sizeof("UCS-4-SWAPPED")]; + char stringpool_str546[sizeof("UTF-32BE")]; + char stringpool_str547[sizeof("TCVN5712-1")]; + char stringpool_str548[sizeof("ISO_8859-1:1987")]; + char stringpool_str553[sizeof("MACINTOSH")]; + char stringpool_str554[sizeof("ISO-2022-JP-1")]; + char stringpool_str555[sizeof("ISO_8859-6:1987")]; + char stringpool_str556[sizeof("ISO-2022-JP")]; + char stringpool_str560[sizeof("TIS620.2533")]; + char stringpool_str563[sizeof("UCS-2-SWAPPED")]; + char stringpool_str565[sizeof("WINDOWS-1253")]; + char stringpool_str569[sizeof("JAVA")]; + char stringpool_str570[sizeof("CSISO57GB1988")]; + char stringpool_str572[sizeof("TCVN-5712")]; + char stringpool_str578[sizeof("ISO_8859-2:1987")]; + char stringpool_str579[sizeof("CSISO14JISC6220RO")]; + char stringpool_str583[sizeof("CSMACINTOSH")]; + char stringpool_str584[sizeof("ISO-2022-JP-2")]; + char stringpool_str588[sizeof("UTF-7")]; + char stringpool_str589[sizeof("CSPC850MULTILINGUAL")]; + char stringpool_str592[sizeof("GREEK")]; + char stringpool_str593[sizeof("CSISO2022JP")]; + char stringpool_str594[sizeof("CSISOLATINHEBREW")]; + char stringpool_str601[sizeof("ISO_8859-7:2003")]; + char stringpool_str616[sizeof("CSISO159JISX02121990")]; + char stringpool_str619[sizeof("BIGFIVE")]; + char stringpool_str620[sizeof("CSISO2022JP2")]; + char stringpool_str622[sizeof("BIG-FIVE")]; + char stringpool_str636[sizeof("CSISOLATINGREEK")]; + char stringpool_str637[sizeof("HEBREW")]; + char stringpool_str641[sizeof("IBM367")]; + char stringpool_str647[sizeof("CSHALFWIDTHKATAKANA")]; + char stringpool_str650[sizeof("WINDOWS-874")]; + char stringpool_str652[sizeof("UNICODELITTLE")]; + char stringpool_str663[sizeof("BIG5HKSCS")]; + char stringpool_str666[sizeof("BIG5-HKSCS")]; + char stringpool_str667[sizeof("JIS_X0208")]; + char stringpool_str669[sizeof("JIS_X0201")]; + char stringpool_str676[sizeof("WINDOWS-1257")]; + char stringpool_str680[sizeof("KOI8-U")]; + char stringpool_str684[sizeof("KOI8-RU")]; + char stringpool_str691[sizeof("JOHAB")]; + char stringpool_str693[sizeof("JISX0201-1976")]; + char stringpool_str702[sizeof("JIS_X0208-1990")]; + char stringpool_str706[sizeof("JIS_X0212")]; + char stringpool_str710[sizeof("JIS_X0212-1990")]; + char stringpool_str712[sizeof("ISO_8859-7:1987")]; + char stringpool_str713[sizeof("SHIFT-JIS")]; + char stringpool_str714[sizeof("SHIFT_JIS")]; + char stringpool_str732[sizeof("JIS_X0208-1983")]; + char stringpool_str751[sizeof("CSEUCTW")]; + char stringpool_str752[sizeof("MACUKRAINE")]; + char stringpool_str759[sizeof("UNICODEBIG")]; + char stringpool_str769[sizeof("MS-GREEK")]; + char stringpool_str774[sizeof("MACGREEK")]; + char stringpool_str800[sizeof("CSSHIFTJIS")]; + char stringpool_str822[sizeof("JIS_X0212.1990-0")]; + char stringpool_str840[sizeof("CSEUCPKDFMTJAPANESE")]; + char stringpool_str853[sizeof("MACHEBREW")]; + char stringpool_str858[sizeof("MS_KANJI")]; + char stringpool_str859[sizeof("TCVN5712-1:1993")]; + char stringpool_str869[sizeof("WINBALTRIM")]; + char stringpool_str884[sizeof("MS-TURK")]; + char stringpool_str895[sizeof("BIG5-HKSCS:2001")]; + char stringpool_str901[sizeof("BIG5-HKSCS:1999")]; + char stringpool_str907[sizeof("BIG5-HKSCS:2004")]; + char stringpool_str917[sizeof("CSISO87JISX0208")]; + char stringpool_str953[sizeof("MACTURKISH")]; + char stringpool_str1003[sizeof("KO_KR.JOHAP92")]; + }; +static const struct stringpool_t stringpool_contents = + { + "R8", + "CN", + "L8", + "L1", + "L6", + "L4", + "866", + "C99", + "L5", + "646", + "CHAR", + "CP819", + "L2", + "CP866", + "CP949", + "850", + "5601", + "RK1048", + "EUCCN", + "L10", + "EUC-CN", + "L3", + "CP154", + "PT154", + "862", + "CP1258", + "CP1251", + "CP1131", + "PTCP154", + "CP850", + "CP1361", + "CP862", + "CP1256", + "CP950", + "HZ", + "CP936", + "CP1254", + "CP1255", + "ISO8859-8", + "ISO8859-1", + "ISO-8859-8", + "ISO_8859-8", + "ISO-8859-1", + "ISO_8859-1", + "ISO8859-11", + "CP1250", + "ISO646-CN", + "ISO-8859-11", + "ISO_8859-11", + "ISO8859-9", + "ISO8859-6", + "ISO-8859-9", + "ISO_8859-9", + "ISO-8859-6", + "ISO_8859-6", + "ISO8859-16", + "CP1252", + "ISO_8859-16:2001", + "ISO-8859-16", + "ISO_8859-16", + "ISO8859-4", + "ISO_8859-14:1998", + "CP932", + "ISO-8859-4", + "ISO_8859-4", + "ISO8859-14", + "ISO_8859-15:1998", + "ISO-8859-14", + "ISO_8859-14", + "ISO8859-5", + "ISO-8859-5", + "ISO_8859-5", + "ISO8859-15", + "ISO-IR-6", + "ISO-8859-15", + "ISO_8859-15", + "SJIS", + "ISO-IR-148", + "ISO-IR-58", + "ISO8859-10", + "CYRILLIC", + "ISO-8859-10", + "ISO_8859-10", + "ISO-IR-199", + "ISO-IR-14", + "L7", + "ISO-IR-166", + "ISO8859-2", + "ISO-IR-101", + "ISO-IR-149", + "ISO-8859-2", + "ISO_8859-2", + "MAC", + "CP1253", + "ISO_8859-10:1992", + "ISO-IR-159", + "LATIN8", + "CP1133", + "LATIN1", + "ISO-IR-109", + "ISO-IR-144", + "ANSI-1251", + "CNS11643", + "CSPTCP154", + "ISO-IR-165", + "ISO-IR-126", + "ELOT_928", + "ISO-IR-110", + "LATIN6", + "LATIN-9", + "ROMAN8", + "ISO-IR-138", + "GB_1988-80", + "CP874", + "LATIN4", + "ASCII", + "UHC", + "ISO-2022-CN", + "CHINESE", + "ISO8859-3", + "ISO-IR-100", + "LATIN5", + "ISO-8859-3", + "ISO_8859-3", + "ISO8859-13", + "ISO-IR-226", + "CYRILLIC-ASIAN", + "ISO-8859-13", + "ISO_8859-13", + "US", + "MS-CYRL", + "TIS620", + "LATIN10", + "TIS-620", + "ARABIC", + "ECMA-118", + "EUCKR", + "LATIN2", + "EUC-KR", + "UTF-8", + "KZ-1048", + "CSISO2022CN", + "CSASCII", + "MS936", + "IBM819", + "MULELAO-1", + "X0208", + "X0201", + "GB18030", + "KOREAN", + "IBM866", + "TIS620-0", + "KOI8-R", + "ECMA-114", + "UCS-4", + "UTF-16", + "CSKZ1048", + "KSC_5601", + "CSKOI8R", + "MS-EE", + "GB2312", + "CSUCS4", + "BIG5", + "BIG-5", + "HP-ROMAN8", + "LATIN3", + "KS_C_5601-1989", + "X0212", + "TCVN", + "ISO-CELTIC", + "CSHPROMAN8", + "UCS-2", + "IBM850", + "ISO-IR-203", + "IBM862", + "GB_2312-80", + "CSISOLATIN1", + "ISO-2022-CN-EXT", + "ISO-IR-179", + "CSISOLATINCYRILLIC", + "CSISOLATIN6", + "JP", + "MACICELAND", + "UCS-4LE", + "CSISOLATIN4", + "CSISOLATINARABIC", + "UNICODE-1-1", + "UTF-16LE", + "CSUNICODE11", + "CSISOLATIN5", + "MS-ANSI", + "CSBIG5", + "UCS-2LE", + "CN-BIG5", + "ARMSCII-8", + "ISO-10646-UCS-4", + "UTF-32", + "CSUNICODE", + "ISO_8859-8:1988", + "CSISOLATIN2", + "CN-GB", + "ISO646-US", + "MACROMAN", + "MACCYRILLIC", + "ISO-10646-UCS-2", + "STRK1048-2002", + "ISO_8859-4:1988", + "ISO_8859-9:1989", + "EUCJP", + "EUC-JP", + "ISO_8859-5:1988", + "GREEK8", + "ASMO-708", + "PCK", + "CSIBM866", + "CP1257", + "ISO-2022-KR", + "GEORGIAN-ACADEMY", + "MACCROATIAN", + "CP367", + "GEORGIAN-PS", + "CSGB2312", + "VISCII", + "MS-HEBR", + "UTF-32LE", + "CSISOLATIN3", + "MACARABIC", + "ISO_8859-3:1988", + "IBM-CP1133", + "TIS620.2529-1", + "CSISO2022KR", + "ISO8859-7", + "MACCENTRALEUROPE", + "ISO-8859-7", + "ISO_8859-7", + "CN-GB-ISOIR165", + "ISO646-JP", + "KS_C_5601-1987", + "US-ASCII", + "UCS-4BE", + "CSEUCKR", + "JIS0208", + "UTF-16BE", + "MS-ARAB", + "CSPC862LATINHEBREW", + "KOI8-T", + "ISO-IR-87", + "UCS-2BE", + "MACROMANIA", + "UCS-4-INTERNAL", + "ISO_646.IRV:1991", + "CSVISCII", + "VISCII1.1-1", + "ISO-IR-57", + "NEXTSTEP", + "HZ-GB-2312", + "CSKSC56011987", + "ISO-IR-157", + "JIS_C6220-1969-RO", + "CSISO58GB231280", + "TIS620.2533-1", + "UCS-2-INTERNAL", + "WINDOWS-1258", + "WINDOWS-1251", + "MACTHAI", + "WCHAR_T", + "GBK", + "ISO-IR-127", + "WINDOWS-1256", + "UNICODE-1-1-UTF-7", + "LATIN7", + "ANSI_X3.4-1968", + "WINDOWS-1254", + "CSUNICODE11UTF7", + "WINDOWS-1255", + "ANSI_X3.4-1986", + "TIS620.2533-0", + "EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE", + "WINDOWS-1250", + "WINDOWS-936", + "EUCTW", + "EUC-TW", + "WINDOWS-1252", + "JIS_C6226-1983", + "UCS-4-SWAPPED", + "UTF-32BE", + "TCVN5712-1", + "ISO_8859-1:1987", + "MACINTOSH", + "ISO-2022-JP-1", + "ISO_8859-6:1987", + "ISO-2022-JP", + "TIS620.2533", + "UCS-2-SWAPPED", + "WINDOWS-1253", + "JAVA", + "CSISO57GB1988", + "TCVN-5712", + "ISO_8859-2:1987", + "CSISO14JISC6220RO", + "CSMACINTOSH", + "ISO-2022-JP-2", + "UTF-7", + "CSPC850MULTILINGUAL", + "GREEK", + "CSISO2022JP", + "CSISOLATINHEBREW", + "ISO_8859-7:2003", + "CSISO159JISX02121990", + "BIGFIVE", + "CSISO2022JP2", + "BIG-FIVE", + "CSISOLATINGREEK", + "HEBREW", + "IBM367", + "CSHALFWIDTHKATAKANA", + "WINDOWS-874", + "UNICODELITTLE", + "BIG5HKSCS", + "BIG5-HKSCS", + "JIS_X0208", + "JIS_X0201", + "WINDOWS-1257", + "KOI8-U", + "KOI8-RU", + "JOHAB", + "JISX0201-1976", + "JIS_X0208-1990", + "JIS_X0212", + "JIS_X0212-1990", + "ISO_8859-7:1987", + "SHIFT-JIS", + "SHIFT_JIS", + "JIS_X0208-1983", + "CSEUCTW", + "MACUKRAINE", + "UNICODEBIG", + "MS-GREEK", + "MACGREEK", + "CSSHIFTJIS", + "JIS_X0212.1990-0", + "CSEUCPKDFMTJAPANESE", + "MACHEBREW", + "MS_KANJI", + "TCVN5712-1:1993", + "WINBALTRIM", + "MS-TURK", + "BIG5-HKSCS:2001", + "BIG5-HKSCS:1999", + "BIG5-HKSCS:2004", + "CSISO87JISX0208", + "MACTURKISH", + "KO_KR.JOHAP92" + }; +#define stringpool ((const char *) &stringpool_contents) + +static const struct alias aliases[] = + { + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 229 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str8, ei_hp_roman8}, + {-1}, {-1}, {-1}, {-1}, +#line 291 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, ei_iso646_cn}, +#line 152 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, ei_iso8859_14}, +#line 61 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, ei_iso8859_1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 135 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str22, ei_iso8859_10}, + {-1}, {-1}, {-1}, {-1}, +#line 85 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str27, ei_iso8859_4}, +#line 209 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str28, ei_cp866}, + {-1}, +#line 52 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str30, ei_c99}, + {-1}, {-1}, +#line 127 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str33, ei_iso8859_9}, + {-1}, {-1}, +#line 23 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str36, ei_ascii}, + {-1}, +#line 363 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str38, ei_local_char}, +#line 58 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str39, ei_iso8859_1}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 69 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str45, ei_iso8859_2}, + {-1}, {-1}, +#line 207 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str48, ei_cp866}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 356 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str58, ei_cp949}, + {-1}, +#line 201 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str60, ei_cp850}, +#line 355 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str61, ei_euc_kr}, +#line 241 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str62, ei_rk1048}, + {-1}, +#line 322 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str64, ei_euc_cn}, + {-1}, +#line 166 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str66, ei_iso8859_16}, +#line 321 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str67, ei_euc_cn}, +#line 77 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str68, ei_iso8859_3}, + {-1}, +#line 238 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str70, ei_pt154}, +#line 236 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str71, ei_pt154}, + {-1}, {-1}, +#line 205 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str74, ei_cp862}, + {-1}, {-1}, {-1}, {-1}, +#line 197 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str79, ei_cp1258}, + {-1}, +#line 175 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str81, ei_cp1251}, + {-1}, {-1}, {-1}, {-1}, +#line 211 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str86, ei_cp1131}, + {-1}, +#line 237 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str88, ei_pt154}, + {-1}, {-1}, +#line 199 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str91, ei_cp850}, + {-1}, +#line 359 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str93, ei_johab}, +#line 203 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str94, ei_cp862}, +#line 191 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str95, ei_cp1256}, + {-1}, {-1}, +#line 346 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str98, ei_cp950}, +#line 334 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str99, ei_hz}, + {-1}, +#line 327 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str101, ei_cp936}, + {-1}, {-1}, {-1}, +#line 185 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str105, ei_cp1254}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, +#line 188 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str117, ei_cp1255}, + {-1}, +#line 121 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str119, ei_iso8859_8}, + {-1}, +#line 63 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str121, ei_iso8859_1}, +#line 115 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str122, ei_iso8859_8}, +#line 116 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str123, ei_iso8859_8}, +#line 54 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str124, ei_iso8859_1}, +#line 55 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str125, ei_iso8859_1}, +#line 140 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str126, ei_iso8859_11}, +#line 172 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str127, ei_cp1250}, +#line 289 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str128, ei_iso646_cn}, +#line 138 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str129, ei_iso8859_11}, +#line 139 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str130, ei_iso8859_11}, + {-1}, {-1}, +#line 129 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str133, ei_iso8859_9}, + {-1}, +#line 103 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str135, ei_iso8859_6}, +#line 122 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str136, ei_iso8859_9}, +#line 123 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str137, ei_iso8859_9}, +#line 95 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str138, ei_iso8859_6}, +#line 96 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str139, ei_iso8859_6}, +#line 167 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str140, ei_iso8859_16}, +#line 179 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str141, ei_cp1252}, +#line 163 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str142, ei_iso8859_16}, +#line 161 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str143, ei_iso8859_16}, +#line 162 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str144, ei_iso8859_16}, +#line 87 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str145, ei_iso8859_4}, +#line 149 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str146, ei_iso8859_14}, +#line 315 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str147, ei_cp932}, +#line 80 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str148, ei_iso8859_4}, +#line 81 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str149, ei_iso8859_4}, +#line 154 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str150, ei_iso8859_14}, + {-1}, +#line 157 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str152, ei_iso8859_15}, +#line 147 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str153, ei_iso8859_14}, +#line 148 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str154, ei_iso8859_14}, + {-1}, {-1}, +#line 94 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str157, ei_iso8859_5}, + {-1}, {-1}, +#line 88 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str160, ei_iso8859_5}, +#line 89 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str161, ei_iso8859_5}, +#line 160 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str162, ei_iso8859_15}, +#line 16 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str163, ei_ascii}, + {-1}, +#line 155 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str165, ei_iso8859_15}, +#line 156 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str166, ei_iso8859_15}, + {-1}, +#line 311 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str168, ei_sjis}, +#line 125 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str169, ei_iso8859_9}, +#line 294 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str170, ei_gb2312}, + {-1}, +#line 137 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str172, ei_iso8859_10}, + {-1}, +#line 92 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str174, ei_iso8859_5}, +#line 130 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str175, ei_iso8859_10}, +#line 131 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str176, ei_iso8859_10}, +#line 150 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str177, ei_iso8859_14}, +#line 267 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str178, ei_iso646_jp}, +#line 145 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str179, ei_iso8859_13}, +#line 254 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str180, ei_tis620}, +#line 71 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str181, ei_iso8859_2}, +#line 67 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str182, ei_iso8859_2}, +#line 302 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str183, ei_ksc5601}, +#line 64 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str184, ei_iso8859_2}, +#line 65 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str185, ei_iso8859_2}, +#line 214 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str186, ei_mac_roman}, +#line 182 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str187, ei_cp1253}, +#line 132 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str188, ei_iso8859_10}, +#line 286 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str189, ei_jisx0212}, + {-1}, +#line 151 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str191, ei_iso8859_14}, +#line 246 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str192, ei_cp1133}, +#line 60 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str193, ei_iso8859_1}, +#line 75 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str194, ei_iso8859_3}, +#line 91 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str195, ei_iso8859_5}, +#line 178 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str196, ei_cp1251}, + {-1}, +#line 339 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str198, ei_euc_tw}, + {-1}, {-1}, +#line 240 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str201, ei_pt154}, +#line 297 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str202, ei_isoir165}, +#line 108 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str203, ei_iso8859_7}, +#line 110 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str204, ei_iso8859_7}, +#line 83 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str205, ei_iso8859_4}, + {-1}, +#line 134 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str207, ei_iso8859_10}, +#line 159 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str208, ei_iso8859_15}, +#line 228 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str209, ei_hp_roman8}, +#line 118 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str210, ei_iso8859_8}, +#line 288 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str211, ei_iso646_cn}, + {-1}, {-1}, {-1}, +#line 256 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str215, ei_cp874}, + {-1}, +#line 84 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str217, ei_iso8859_4}, + {-1}, +#line 13 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str219, ei_ascii}, + {-1}, {-1}, +#line 357 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str222, ei_cp949}, +#line 331 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str223, ei_iso2022_cn}, + {-1}, +#line 296 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str225, ei_gb2312}, + {-1}, +#line 79 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str227, ei_iso8859_3}, +#line 57 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str228, ei_iso8859_1}, +#line 126 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str229, ei_iso8859_9}, +#line 72 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str230, ei_iso8859_3}, +#line 73 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str231, ei_iso8859_3}, +#line 146 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str232, ei_iso8859_13}, +#line 164 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str233, ei_iso8859_16}, +#line 239 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str234, ei_pt154}, +#line 141 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str235, ei_iso8859_13}, +#line 142 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str236, ei_iso8859_13}, + {-1}, {-1}, {-1}, {-1}, +#line 21 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str241, ei_ascii}, +#line 177 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str242, ei_cp1251}, +#line 249 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str243, ei_tis620}, +#line 165 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str244, ei_iso8859_16}, + {-1}, +#line 248 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str246, ei_tis620}, + {-1}, {-1}, {-1}, +#line 101 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str250, ei_iso8859_6}, +#line 109 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str251, ei_iso8859_7}, +#line 353 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str252, ei_euc_kr}, +#line 68 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str253, ei_iso8859_2}, + {-1}, +#line 352 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str255, ei_euc_kr}, + {-1}, {-1}, +#line 24 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str258, ei_utf8}, +#line 243 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str259, ei_rk1048}, +#line 332 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str260, ei_iso2022_cn}, + {-1}, +#line 22 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str262, ei_ascii}, +#line 328 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str263, ei_cp936}, +#line 59 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str264, ei_iso8859_1}, + {-1}, +#line 245 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str266, ei_mulelao}, +#line 278 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str267, ei_jisx0208}, + {-1}, +#line 272 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str269, ei_jisx0201}, + {-1}, +#line 330 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str271, ei_gb18030}, +#line 304 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str272, ei_ksc5601}, +#line 208 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str273, ei_cp866}, +#line 250 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str274, ei_tis620}, + {-1}, +#line 168 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str276, ei_koi8_r}, +#line 99 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str277, ei_iso8859_6}, +#line 34 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str278, ei_ucs4}, +#line 39 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str279, ei_utf16}, + {-1}, +#line 244 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str281, ei_rk1048}, + {-1}, +#line 299 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str283, ei_ksc5601}, +#line 169 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str284, ei_koi8_r}, + {-1}, {-1}, +#line 174 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str287, ei_cp1250}, +#line 323 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str288, ei_euc_cn}, + {-1}, {-1}, +#line 36 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str291, ei_ucs4}, + {-1}, +#line 340 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str293, ei_ces_big5}, + {-1}, {-1}, +#line 341 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str296, ei_ces_big5}, +#line 227 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str297, ei_hp_roman8}, + {-1}, +#line 76 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str299, ei_iso8859_3}, + {-1}, {-1}, {-1}, {-1}, +#line 301 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str304, ei_ksc5601}, + {-1}, +#line 285 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str306, ei_jisx0212}, +#line 261 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str307, ei_tcvn}, + {-1}, +#line 153 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str309, ei_iso8859_14}, + {-1}, +#line 230 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str311, ei_hp_roman8}, + {-1}, {-1}, +#line 25 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str314, ei_ucs2}, + {-1}, +#line 200 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str316, ei_cp850}, + {-1}, +#line 158 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str318, ei_iso8859_15}, +#line 204 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str319, ei_cp862}, +#line 293 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str320, ei_gb2312}, + {-1}, {-1}, {-1}, +#line 62 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str324, ei_iso8859_1}, + {-1}, {-1}, +#line 333 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str327, ei_iso2022_cn_ext}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 143 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str335, ei_iso8859_13}, + {-1}, +#line 93 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str337, ei_iso8859_5}, +#line 136 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str338, ei_iso8859_10}, + {-1}, {-1}, {-1}, +#line 268 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str342, ei_iso646_jp}, + {-1}, {-1}, {-1}, +#line 217 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str346, ei_mac_iceland}, +#line 38 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str347, ei_ucs4le}, +#line 86 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str348, ei_iso8859_4}, +#line 102 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str349, ei_iso8859_6}, +#line 30 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str350, ei_ucs2be}, + {-1}, {-1}, +#line 41 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str353, ei_utf16le}, + {-1}, {-1}, {-1}, +#line 31 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str357, ei_ucs2be}, + {-1}, {-1}, +#line 128 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str360, ei_iso8859_9}, +#line 181 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str361, ei_cp1252}, + {-1}, {-1}, +#line 345 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str364, ei_ces_big5}, +#line 32 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str365, ei_ucs2le}, + {-1}, +#line 344 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str367, ei_ces_big5}, + {-1}, {-1}, {-1}, {-1}, +#line 232 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str372, ei_armscii_8}, +#line 35 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str373, ei_ucs4}, + {-1}, {-1}, {-1}, {-1}, +#line 42 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str378, ei_utf32}, + {-1}, +#line 27 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str380, ei_ucs2}, + {-1}, +#line 117 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str382, ei_iso8859_8}, + {-1}, +#line 70 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str384, ei_iso8859_2}, +#line 324 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str385, ei_euc_cn}, +#line 14 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str386, ei_ascii}, +#line 212 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str387, ei_mac_roman}, + {-1}, +#line 220 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str389, ei_mac_cyrillic}, + {-1}, +#line 26 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str391, ei_ucs2}, + {-1}, {-1}, +#line 242 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str394, ei_rk1048}, +#line 82 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str395, ei_iso8859_4}, +#line 124 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str396, ei_iso8859_9}, +#line 306 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str397, ei_euc_jp}, + {-1}, {-1}, +#line 305 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str400, ei_euc_jp}, +#line 90 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str401, ei_iso8859_5}, +#line 111 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str402, ei_iso8859_7}, +#line 100 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str403, ei_iso8859_6}, + {-1}, +#line 314 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str405, ei_sjis}, + {-1}, {-1}, +#line 210 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str408, ei_cp866}, +#line 194 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str409, ei_cp1257}, + {-1}, +#line 361 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str411, ei_iso2022_kr}, +#line 233 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str412, ei_georgian_academy}, + {-1}, {-1}, +#line 218 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str415, ei_mac_croatian}, +#line 19 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str416, ei_ascii}, + {-1}, {-1}, +#line 234 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str419, ei_georgian_ps}, + {-1}, {-1}, {-1}, +#line 325 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str423, ei_euc_cn}, +#line 258 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str424, ei_viscii}, + {-1}, {-1}, {-1}, +#line 190 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str428, ei_cp1255}, +#line 44 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str429, ei_utf32le}, +#line 78 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str430, ei_iso8859_3}, + {-1}, +#line 225 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str432, ei_mac_arabic}, + {-1}, {-1}, {-1}, +#line 74 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str436, ei_iso8859_3}, +#line 247 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str437, ei_cp1133}, + {-1}, +#line 251 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str439, ei_tis620}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 362 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str448, ei_iso2022_kr}, +#line 114 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str449, ei_iso8859_7}, + {-1}, +#line 216 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str451, ei_mac_centraleurope}, +#line 104 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str452, ei_iso8859_7}, +#line 105 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str453, ei_iso8859_7}, + {-1}, +#line 298 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str455, ei_isoir165}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 266 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str461, ei_iso646_jp}, +#line 300 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str462, ei_ksc5601}, +#line 12 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str463, ei_ascii}, +#line 37 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str464, ei_ucs4be}, + {-1}, +#line 354 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str466, ei_euc_kr}, +#line 277 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str467, ei_jisx0208}, + {-1}, {-1}, +#line 40 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str470, ei_utf16be}, + {-1}, {-1}, {-1}, {-1}, +#line 193 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str475, ei_cp1256}, +#line 206 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str476, ei_cp862}, + {-1}, +#line 235 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str478, ei_koi8_t}, + {-1}, {-1}, +#line 279 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str481, ei_jisx0208}, +#line 28 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str482, ei_ucs2be}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 219 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str489, ei_mac_romania}, + {-1}, {-1}, +#line 50 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str492, ei_ucs4internal}, +#line 15 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str493, ei_ascii}, + {-1}, +#line 260 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str495, ei_viscii}, + {-1}, +#line 259 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str497, ei_viscii}, + {-1}, {-1}, +#line 290 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str500, ei_iso646_cn}, + {-1}, +#line 231 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str502, ei_nextstep}, +#line 335 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str503, ei_hz}, +#line 303 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str504, ei_ksc5601}, +#line 133 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str505, ei_iso8859_10}, + {-1}, +#line 265 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str507, ei_iso646_jp}, +#line 295 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str508, ei_gb2312}, +#line 253 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str509, ei_tis620}, +#line 48 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str510, ei_ucs2internal}, +#line 198 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str511, ei_cp1258}, +#line 176 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str512, ei_cp1251}, +#line 226 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str513, ei_mac_thai}, + {-1}, +#line 364 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str515, ei_local_wchar_t}, +#line 326 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str516, ei_ces_gbk}, +#line 98 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str517, ei_iso8859_6}, + {-1}, +#line 192 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str519, ei_cp1256}, +#line 46 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str520, ei_utf7}, +#line 144 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str521, ei_iso8859_13}, + {-1}, +#line 17 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str523, ei_ascii}, +#line 186 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str524, ei_cp1254}, +#line 47 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str525, ei_utf7}, + {-1}, {-1}, {-1}, {-1}, +#line 189 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str530, ei_cp1255}, +#line 18 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str531, ei_ascii}, +#line 252 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str532, ei_tis620}, +#line 307 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str533, ei_euc_jp}, + {-1}, +#line 173 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str535, ei_cp1250}, +#line 329 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str536, ei_cp936}, +#line 337 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str537, ei_euc_tw}, + {-1}, {-1}, +#line 336 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str540, ei_euc_tw}, + {-1}, +#line 180 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str542, ei_cp1252}, +#line 280 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str543, ei_jisx0208}, + {-1}, +#line 51 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str545, ei_ucs4swapped}, +#line 43 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str546, ei_utf32be}, +#line 263 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str547, ei_tcvn}, +#line 56 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str548, ei_iso8859_1}, + {-1}, {-1}, {-1}, {-1}, +#line 213 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str553, ei_mac_roman}, +#line 318 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str554, ei_iso2022_jp1}, +#line 97 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str555, ei_iso8859_6}, +#line 316 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str556, ei_iso2022_jp}, + {-1}, {-1}, {-1}, +#line 255 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str560, ei_tis620}, + {-1}, {-1}, +#line 49 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str563, ei_ucs2swapped}, + {-1}, +#line 183 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str565, ei_cp1253}, + {-1}, {-1}, {-1}, +#line 53 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str569, ei_java}, +#line 292 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str570, ei_iso646_cn}, + {-1}, +#line 262 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str572, ei_tcvn}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 66 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str578, ei_iso8859_2}, +#line 269 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str579, ei_iso646_jp}, + {-1}, {-1}, {-1}, +#line 215 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str583, ei_mac_roman}, +#line 319 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str584, ei_iso2022_jp2}, + {-1}, {-1}, {-1}, +#line 45 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str588, ei_utf7}, +#line 202 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str589, ei_cp850}, + {-1}, {-1}, +#line 112 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str592, ei_iso8859_7}, +#line 317 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str593, ei_iso2022_jp}, +#line 120 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str594, ei_iso8859_8}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 107 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str601, ei_iso8859_7}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 287 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str616, ei_jisx0212}, + {-1}, {-1}, +#line 343 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str619, ei_ces_big5}, +#line 320 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str620, ei_iso2022_jp2}, + {-1}, +#line 342 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str622, ei_ces_big5}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, +#line 113 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str636, ei_iso8859_7}, +#line 119 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str637, ei_iso8859_8}, + {-1}, {-1}, {-1}, +#line 20 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str641, ei_ascii}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 273 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str647, ei_jisx0201}, + {-1}, {-1}, +#line 257 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str650, ei_cp874}, + {-1}, +#line 33 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str652, ei_ucs2le}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, +#line 350 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str663, ei_big5hkscs2004}, + {-1}, {-1}, +#line 349 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str666, ei_big5hkscs2004}, +#line 274 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str667, ei_jisx0208}, + {-1}, +#line 270 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str669, ei_jisx0201}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 195 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str676, ei_cp1257}, + {-1}, {-1}, {-1}, +#line 170 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str680, ei_koi8_u}, + {-1}, {-1}, {-1}, +#line 171 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str684, ei_koi8_ru}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 358 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str691, ei_johab}, + {-1}, +#line 271 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str693, ei_jisx0201}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 276 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str702, ei_jisx0208}, + {-1}, {-1}, {-1}, +#line 282 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str706, ei_jisx0212}, + {-1}, {-1}, {-1}, +#line 284 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str710, ei_jisx0212}, + {-1}, +#line 106 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str712, ei_iso8859_7}, +#line 310 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str713, ei_sjis}, +#line 309 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str714, ei_sjis}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 275 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str732, ei_jisx0208}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 338 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str751, ei_euc_tw}, +#line 221 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str752, ei_mac_ukraine}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 29 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str759, ei_ucs2be}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 184 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str769, ei_cp1253}, + {-1}, {-1}, {-1}, {-1}, +#line 222 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str774, ei_mac_greek}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 313 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str800, ei_sjis}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, +#line 283 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str822, ei_jisx0212}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 308 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str840, ei_euc_jp}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, +#line 224 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str853, ei_mac_hebrew}, + {-1}, {-1}, {-1}, {-1}, +#line 312 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str858, ei_sjis}, +#line 264 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str859, ei_tcvn}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 196 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str869, ei_cp1257}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 187 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str884, ei_cp1254}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, +#line 348 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str895, ei_big5hkscs2001}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 347 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str901, ei_big5hkscs1999}, + {-1}, {-1}, {-1}, {-1}, {-1}, +#line 351 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str907, ei_big5hkscs2004}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 281 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str917, ei_jisx0208}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, +#line 223 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str953, ei_mac_turkish}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, + {-1}, {-1}, {-1}, {-1}, +#line 360 "lib/aliases_syssolaris.gperf" + {(int)(long)&((struct stringpool_t *)0)->stringpool_str1003, ei_johab} + }; + +#ifdef __GNUC__ +__inline +#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ +__attribute__ ((__gnu_inline__)) +#endif +#endif +const struct alias * +aliases_lookup (register const char *str, register unsigned int len) +{ + if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) + { + register int key = aliases_hash (str, len); + + if (key <= MAX_HASH_VALUE && key >= 0) + { + register int o = aliases[key].name; + if (o >= 0) + { + register const char *s = o + stringpool; + + if (*str == *s && !strcmp (str + 1, s + 1)) + return &aliases[key]; + } + } + } + return 0; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/armscii_8.h b/graf2d/win32gdk/gdk/src/iconv/armscii_8.h new file mode 100644 index 00000000000..8d1613ff98c --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/armscii_8.h @@ -0,0 +1,116 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ARMSCII-8 + */ + +static const unsigned short armscii_8_2uni[96] = { + /* 0xa0 */ + 0x00a0, 0xfffd, 0x0587, 0x0589, 0x0029, 0x0028, 0x00bb, 0x00ab, + 0x2014, 0x002e, 0x055d, 0x002c, 0x002d, 0x058a, 0x2026, 0x055c, + /* 0xb0 */ + 0x055b, 0x055e, 0x0531, 0x0561, 0x0532, 0x0562, 0x0533, 0x0563, + 0x0534, 0x0564, 0x0535, 0x0565, 0x0536, 0x0566, 0x0537, 0x0567, + /* 0xc0 */ + 0x0538, 0x0568, 0x0539, 0x0569, 0x053a, 0x056a, 0x053b, 0x056b, + 0x053c, 0x056c, 0x053d, 0x056d, 0x053e, 0x056e, 0x053f, 0x056f, + /* 0xd0 */ + 0x0540, 0x0570, 0x0541, 0x0571, 0x0542, 0x0572, 0x0543, 0x0573, + 0x0544, 0x0574, 0x0545, 0x0575, 0x0546, 0x0576, 0x0547, 0x0577, + /* 0xe0 */ + 0x0548, 0x0578, 0x0549, 0x0579, 0x054a, 0x057a, 0x054b, 0x057b, + 0x054c, 0x057c, 0x054d, 0x057d, 0x054e, 0x057e, 0x054f, 0x057f, + /* 0xf0 */ + 0x0550, 0x0580, 0x0551, 0x0581, 0x0552, 0x0582, 0x0553, 0x0583, + 0x0554, 0x0584, 0x0555, 0x0585, 0x0556, 0x0586, 0x055a, 0xfffd, +}; + +static int +armscii_8_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0xa0) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = armscii_8_2uni[c-0xa0]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char armscii_8_page00[8] = { + 0xa5, 0xa4, 0x2a, 0x2b, 0xab, 0xac, 0xa9, 0x2f, /* 0x28-0x2f */ +}; +static const unsigned char armscii_8_page00_1[32] = { + 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ +}; +static const unsigned char armscii_8_page05[96] = { + 0x00, 0xb2, 0xb4, 0xb6, 0xb8, 0xba, 0xbc, 0xbe, /* 0x30-0x37 */ + 0xc0, 0xc2, 0xc4, 0xc6, 0xc8, 0xca, 0xcc, 0xce, /* 0x38-0x3f */ + 0xd0, 0xd2, 0xd4, 0xd6, 0xd8, 0xda, 0xdc, 0xde, /* 0x40-0x47 */ + 0xe0, 0xe2, 0xe4, 0xe6, 0xe8, 0xea, 0xec, 0xee, /* 0x48-0x4f */ + 0xf0, 0xf2, 0xf4, 0xf6, 0xf8, 0xfa, 0xfc, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0xfe, 0xb0, 0xaf, 0xaa, 0xb1, 0x00, /* 0x58-0x5f */ + 0x00, 0xb3, 0xb5, 0xb7, 0xb9, 0xbb, 0xbd, 0xbf, /* 0x60-0x67 */ + 0xc1, 0xc3, 0xc5, 0xc7, 0xc9, 0xcb, 0xcd, 0xcf, /* 0x68-0x6f */ + 0xd1, 0xd3, 0xd5, 0xd7, 0xd9, 0xdb, 0xdd, 0xdf, /* 0x70-0x77 */ + 0xe1, 0xe3, 0xe5, 0xe7, 0xe9, 0xeb, 0xed, 0xef, /* 0x78-0x7f */ + 0xf1, 0xf3, 0xf5, 0xf7, 0xf9, 0xfb, 0xfd, 0xa2, /* 0x80-0x87 */ + 0x00, 0xa3, 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ +}; +static const unsigned char armscii_8_page20[24] = { + 0x00, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0x00, /* 0x20-0x27 */ +}; + +static int +armscii_8_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0028) { + *r = wc; + return 1; + } + else if (wc >= 0x0028 && wc < 0x0030) + c = armscii_8_page00[wc-0x0028]; + else if (wc >= 0x0030 && wc < 0x00a0) + c = wc; + else if (wc >= 0x00a0 && wc < 0x00c0) + c = armscii_8_page00_1[wc-0x00a0]; + else if (wc >= 0x0530 && wc < 0x0590) + c = armscii_8_page05[wc-0x0530]; + else if (wc >= 0x2010 && wc < 0x2028) + c = armscii_8_page20[wc-0x2010]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/ascii.h b/graf2d/win32gdk/gdk/src/iconv/ascii.h new file mode 100644 index 00000000000..fa49e3bf94f --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/ascii.h @@ -0,0 +1,44 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ASCII + */ + +static int +ascii_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + return RET_ILSEQ; +} + +static int +ascii_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (wc < 0x0080) { + *r = wc; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/atarist.h b/graf2d/win32gdk/gdk/src/iconv/atarist.h new file mode 100644 index 00000000000..90f18cc1470 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/atarist.h @@ -0,0 +1,158 @@ +/* + * Copyright (C) 1999-2005 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * Atari ST + */ + +static const unsigned short atarist_2uni[128] = { + /* 0x80 */ + 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, + 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, + /* 0x90 */ + 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, + 0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x00df, 0x0192, + /* 0xa0 */ + 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, + 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, + /* 0xb0 */ + 0x00e3, 0x00f5, 0x00d8, 0x00f8, 0x0153, 0x0152, 0x00c0, 0x00c3, + 0x00d5, 0x00a8, 0x00b4, 0x2020, 0x00b6, 0x00a9, 0x00ae, 0x2122, + /* 0xc0 */ + 0x0133, 0x0132, 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, + 0x05d6, 0x05d7, 0x05d8, 0x05d9, 0x05db, 0x05dc, 0x05de, 0x05e0, + /* 0xd0 */ + 0x05e1, 0x05e2, 0x05e4, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x05ea, + 0x05df, 0x05da, 0x05dd, 0x05e3, 0x05e5, 0x00a7, 0x2227, 0x221e, + /* 0xe0 */ + 0x03b1, 0x03b2, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, + 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x222e, 0x03c6, 0x2208, 0x2229, + /* 0xf0 */ + 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, + 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x00b3, 0x00af, +}; + +static int +atarist_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) atarist_2uni[c-0x80]; + return 1; +} + +static const unsigned char atarist_page00[96] = { + 0x00, 0xad, 0x9b, 0x9c, 0x00, 0x9d, 0x00, 0xdd, /* 0xa0-0xa7 */ + 0xb9, 0xbd, 0xa6, 0xae, 0xaa, 0x00, 0xbe, 0xff, /* 0xa8-0xaf */ + 0xf8, 0xf1, 0xfd, 0xfe, 0xba, 0xe6, 0xbc, 0xfa, /* 0xb0-0xb7 */ + 0x00, 0x00, 0xa7, 0xaf, 0xac, 0xab, 0x00, 0xa8, /* 0xb8-0xbf */ + 0xb6, 0x00, 0x00, 0xb7, 0x8e, 0x8f, 0x92, 0x80, /* 0xc0-0xc7 */ + 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0xa5, 0x00, 0x00, 0x00, 0xb8, 0x99, 0x00, /* 0xd0-0xd7 */ + 0xb2, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x9e, /* 0xd8-0xdf */ + 0x85, 0xa0, 0x83, 0xb0, 0x84, 0x86, 0x91, 0x87, /* 0xe0-0xe7 */ + 0x8a, 0x82, 0x88, 0x89, 0x8d, 0xa1, 0x8c, 0x8b, /* 0xe8-0xef */ + 0x00, 0xa4, 0x95, 0xa2, 0x93, 0xb1, 0x94, 0xf6, /* 0xf0-0xf7 */ + 0xb3, 0x97, 0xa3, 0x96, 0x81, 0x00, 0x00, 0x98, /* 0xf8-0xff */ +}; +static const unsigned char atarist_page01[104] = { + 0x00, 0x00, 0xc1, 0xc0, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0xb5, 0xb4, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ +}; +static const unsigned char atarist_page03[56] = { + 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0xe9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0xe8, 0x00, /* 0xa0-0xa7 */ + 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0x00, 0xe0, 0xe1, 0x00, 0xeb, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ +}; +static const unsigned char atarist_page05[32] = { + 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, /* 0xd0-0xd7 */ + 0xca, 0xcb, 0xd9, 0xcc, 0xcd, 0xda, 0xce, 0xd8, /* 0xd8-0xdf */ + 0xcf, 0xd0, 0xd1, 0xdb, 0xd2, 0xdc, 0xd3, 0xd4, /* 0xe0-0xe7 */ + 0xd5, 0xd6, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ +}; +static const unsigned char atarist_page22[96] = { + 0xee, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0xdf, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, /* 0x20-0x27 */ + 0x00, 0xef, 0x00, 0x00, 0x00, 0x00, 0xec, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ +}; +static const unsigned char atarist_page23[24] = { + 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0xf4, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ +}; + +static int +atarist_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0100) + c = atarist_page00[wc-0x00a0]; + else if (wc >= 0x0130 && wc < 0x0198) + c = atarist_page01[wc-0x0130]; + else if (wc >= 0x0390 && wc < 0x03c8) + c = atarist_page03[wc-0x0390]; + else if (wc >= 0x05d0 && wc < 0x05f0) + c = atarist_page05[wc-0x05d0]; + else if (wc == 0x2020) + c = 0xbb; + else if (wc == 0x207f) + c = 0xfc; + else if (wc == 0x2122) + c = 0xbf; + else if (wc >= 0x2208 && wc < 0x2268) + c = atarist_page22[wc-0x2208]; + else if (wc >= 0x2310 && wc < 0x2328) + c = atarist_page23[wc-0x2310]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/big5.h b/graf2d/win32gdk/gdk/src/iconv/big5.h new file mode 100644 index 00000000000..de10a99ae9a --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/big5.h @@ -0,0 +1,4160 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * BIG5 + */ + +static const unsigned short big5_2uni_pagea1[6121] = { + /* 0xa1 */ + 0x3000, 0xff0c, 0x3001, 0x3002, 0xff0e, 0x2022, 0xff1b, 0xff1a, + 0xff1f, 0xff01, 0xfe30, 0x2026, 0x2025, 0xfe50, 0xff64, 0xfe52, + 0x00b7, 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xff5c, 0x2013, 0xfe31, + 0x2014, 0xfe33, 0xfffd, 0xfe34, 0xfe4f, 0xff08, 0xff09, 0xfe35, + 0xfe36, 0xff5b, 0xff5d, 0xfe37, 0xfe38, 0x3014, 0x3015, 0xfe39, + 0xfe3a, 0x3010, 0x3011, 0xfe3b, 0xfe3c, 0x300a, 0x300b, 0xfe3d, + 0xfe3e, 0x3008, 0x3009, 0xfe3f, 0xfe40, 0x300c, 0x300d, 0xfe41, + 0xfe42, 0x300e, 0x300f, 0xfe43, 0xfe44, 0xfe59, 0xfe5a, 0xfe5b, + 0xfe5c, 0xfe5d, 0xfe5e, 0x2018, 0x2019, 0x201c, 0x201d, 0x301d, + 0x301e, 0x2035, 0x2032, 0xff03, 0xff06, 0xff0a, 0x203b, 0x00a7, + 0x3003, 0x25cb, 0x25cf, 0x25b3, 0x25b2, 0x25ce, 0x2606, 0x2605, + 0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25bd, 0x25bc, 0x32a3, 0x2105, + 0x203e, 0xfffd, 0xff3f, 0xfffd, 0xfe49, 0xfe4a, 0xfe4d, 0xfe4e, + 0xfe4b, 0xfe4c, 0xfe5f, 0xfe60, 0xfe61, 0xff0b, 0xff0d, 0x00d7, + 0x00f7, 0x00b1, 0x221a, 0xff1c, 0xff1e, 0xff1d, 0x2266, 0x2267, + 0x2260, 0x221e, 0x2252, 0x2261, 0xfe62, 0xfe63, 0xfe64, 0xfe65, + 0xfe66, 0x223c, 0x2229, 0x222a, 0x22a5, 0x2220, 0x221f, 0x22bf, + 0x33d2, 0x33d1, 0x222b, 0x222e, 0x2235, 0x2234, 0x2640, 0x2642, + 0x2641, 0x2609, 0x2191, 0x2193, 0x2190, 0x2192, 0x2196, 0x2197, + 0x2199, 0x2198, 0x2225, 0x2223, 0xfffd, + /* 0xa2 */ + 0xfffd, 0xff0f, 0xff3c, 0xff04, 0x00a5, 0x3012, 0x00a2, 0x00a3, + 0xff05, 0xff20, 0x2103, 0x2109, 0xfe69, 0xfe6a, 0xfe6b, 0x33d5, + 0x339c, 0x339d, 0x339e, 0x33ce, 0x33a1, 0x338e, 0x338f, 0x33c4, + 0x00b0, 0x5159, 0x515b, 0x515e, 0x515d, 0x5161, 0x5163, 0x55e7, + 0x74e9, 0x7cce, 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586, + 0x2587, 0x2588, 0x258f, 0x258e, 0x258d, 0x258c, 0x258b, 0x258a, + 0x2589, 0x253c, 0x2534, 0x252c, 0x2524, 0x251c, 0x2594, 0x2500, + 0x2502, 0x2595, 0x250c, 0x2510, 0x2514, 0x2518, 0x256d, 0x256e, + 0x2570, 0x256f, 0x2550, 0x255e, 0x256a, 0x2561, 0x25e2, 0x25e3, + 0x25e5, 0x25e4, 0x2571, 0x2572, 0x2573, 0xff10, 0xff11, 0xff12, + 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, 0xff19, 0x2160, + 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, + 0x2169, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027, + 0x3028, 0x3029, 0xfffd, 0x5344, 0xfffd, 0xff21, 0xff22, 0xff23, + 0xff24, 0xff25, 0xff26, 0xff27, 0xff28, 0xff29, 0xff2a, 0xff2b, + 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30, 0xff31, 0xff32, 0xff33, + 0xff34, 0xff35, 0xff36, 0xff37, 0xff38, 0xff39, 0xff3a, 0xff41, + 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, 0xff49, + 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50, 0xff51, + 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, + /* 0xa3 */ + 0xff57, 0xff58, 0xff59, 0xff5a, 0x0391, 0x0392, 0x0393, 0x0394, + 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, + 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5, + 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03b1, 0x03b2, 0x03b3, 0x03b4, + 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, + 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c4, 0x03c5, + 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x3105, 0x3106, 0x3107, 0x3108, + 0x3109, 0x310a, 0x310b, 0x310c, 0x310d, 0x310e, 0x310f, 0x3110, + 0x3111, 0x3112, 0x3113, 0x3114, 0x3115, 0x3116, 0x3117, 0x3118, + 0x3119, 0x311a, 0x311b, 0x311c, 0x311d, 0x311e, 0x311f, 0x3120, + 0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, 0x3127, 0x3128, + 0x3129, 0x02d9, 0x02c9, 0x02ca, 0x02c7, 0x02cb, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0xa4 */ + 0x4e00, 0x4e59, 0x4e01, 0x4e03, 0x4e43, 0x4e5d, 0x4e86, 0x4e8c, + 0x4eba, 0x513f, 0x5165, 0x516b, 0x51e0, 0x5200, 0x5201, 0x529b, + 0x5315, 0x5341, 0x535c, 0x53c8, 0x4e09, 0x4e0b, 0x4e08, 0x4e0a, + 0x4e2b, 0x4e38, 0x51e1, 0x4e45, 0x4e48, 0x4e5f, 0x4e5e, 0x4e8e, + 0x4ea1, 0x5140, 0x5203, 0x52fa, 0x5343, 0x53c9, 0x53e3, 0x571f, + 0x58eb, 0x5915, 0x5927, 0x5973, 0x5b50, 0x5b51, 0x5b53, 0x5bf8, + 0x5c0f, 0x5c22, 0x5c38, 0x5c71, 0x5ddd, 0x5de5, 0x5df1, 0x5df2, + 0x5df3, 0x5dfe, 0x5e72, 0x5efe, 0x5f0b, 0x5f13, 0x624d, 0x4e11, + 0x4e10, 0x4e0d, 0x4e2d, 0x4e30, 0x4e39, 0x4e4b, 0x5c39, 0x4e88, + 0x4e91, 0x4e95, 0x4e92, 0x4e94, 0x4ea2, 0x4ec1, 0x4ec0, 0x4ec3, + 0x4ec6, 0x4ec7, 0x4ecd, 0x4eca, 0x4ecb, 0x4ec4, 0x5143, 0x5141, + 0x5167, 0x516d, 0x516e, 0x516c, 0x5197, 0x51f6, 0x5206, 0x5207, + 0x5208, 0x52fb, 0x52fe, 0x52ff, 0x5316, 0x5339, 0x5348, 0x5347, + 0x5345, 0x535e, 0x5384, 0x53cb, 0x53ca, 0x53cd, 0x58ec, 0x5929, + 0x592b, 0x592a, 0x592d, 0x5b54, 0x5c11, 0x5c24, 0x5c3a, 0x5c6f, + 0x5df4, 0x5e7b, 0x5eff, 0x5f14, 0x5f15, 0x5fc3, 0x6208, 0x6236, + 0x624b, 0x624e, 0x652f, 0x6587, 0x6597, 0x65a4, 0x65b9, 0x65e5, + 0x66f0, 0x6708, 0x6728, 0x6b20, 0x6b62, 0x6b79, 0x6bcb, 0x6bd4, + 0x6bdb, 0x6c0f, 0x6c34, 0x706b, 0x722a, 0x7236, 0x723b, 0x7247, + 0x7259, 0x725b, 0x72ac, 0x738b, 0x4e19, + /* 0xa5 */ + 0x4e16, 0x4e15, 0x4e14, 0x4e18, 0x4e3b, 0x4e4d, 0x4e4f, 0x4e4e, + 0x4ee5, 0x4ed8, 0x4ed4, 0x4ed5, 0x4ed6, 0x4ed7, 0x4ee3, 0x4ee4, + 0x4ed9, 0x4ede, 0x5145, 0x5144, 0x5189, 0x518a, 0x51ac, 0x51f9, + 0x51fa, 0x51f8, 0x520a, 0x52a0, 0x529f, 0x5305, 0x5306, 0x5317, + 0x531d, 0x4edf, 0x534a, 0x5349, 0x5361, 0x5360, 0x536f, 0x536e, + 0x53bb, 0x53ef, 0x53e4, 0x53f3, 0x53ec, 0x53ee, 0x53e9, 0x53e8, + 0x53fc, 0x53f8, 0x53f5, 0x53eb, 0x53e6, 0x53ea, 0x53f2, 0x53f1, + 0x53f0, 0x53e5, 0x53ed, 0x53fb, 0x56db, 0x56da, 0x5916, 0x592e, + 0x5931, 0x5974, 0x5976, 0x5b55, 0x5b83, 0x5c3c, 0x5de8, 0x5de7, + 0x5de6, 0x5e02, 0x5e03, 0x5e73, 0x5e7c, 0x5f01, 0x5f18, 0x5f17, + 0x5fc5, 0x620a, 0x6253, 0x6254, 0x6252, 0x6251, 0x65a5, 0x65e6, + 0x672e, 0x672c, 0x672a, 0x672b, 0x672d, 0x6b63, 0x6bcd, 0x6c11, + 0x6c10, 0x6c38, 0x6c41, 0x6c40, 0x6c3e, 0x72af, 0x7384, 0x7389, + 0x74dc, 0x74e6, 0x7518, 0x751f, 0x7528, 0x7529, 0x7530, 0x7531, + 0x7532, 0x7533, 0x758b, 0x767d, 0x76ae, 0x76bf, 0x76ee, 0x77db, + 0x77e2, 0x77f3, 0x793a, 0x79be, 0x7a74, 0x7acb, 0x4e1e, 0x4e1f, + 0x4e52, 0x4e53, 0x4e69, 0x4e99, 0x4ea4, 0x4ea6, 0x4ea5, 0x4eff, + 0x4f09, 0x4f19, 0x4f0a, 0x4f15, 0x4f0d, 0x4f10, 0x4f11, 0x4f0f, + 0x4ef2, 0x4ef6, 0x4efb, 0x4ef0, 0x4ef3, 0x4efd, 0x4f01, 0x4f0b, + 0x5149, 0x5147, 0x5146, 0x5148, 0x5168, + /* 0xa6 */ + 0x5171, 0x518d, 0x51b0, 0x5217, 0x5211, 0x5212, 0x520e, 0x5216, + 0x52a3, 0x5308, 0x5321, 0x5320, 0x5370, 0x5371, 0x5409, 0x540f, + 0x540c, 0x540a, 0x5410, 0x5401, 0x540b, 0x5404, 0x5411, 0x540d, + 0x5408, 0x5403, 0x540e, 0x5406, 0x5412, 0x56e0, 0x56de, 0x56dd, + 0x5733, 0x5730, 0x5728, 0x572d, 0x572c, 0x572f, 0x5729, 0x5919, + 0x591a, 0x5937, 0x5938, 0x5984, 0x5978, 0x5983, 0x597d, 0x5979, + 0x5982, 0x5981, 0x5b57, 0x5b58, 0x5b87, 0x5b88, 0x5b85, 0x5b89, + 0x5bfa, 0x5c16, 0x5c79, 0x5dde, 0x5e06, 0x5e76, 0x5e74, 0x5f0f, + 0x5f1b, 0x5fd9, 0x5fd6, 0x620e, 0x620c, 0x620d, 0x6210, 0x6263, + 0x625b, 0x6258, 0x6536, 0x65e9, 0x65e8, 0x65ec, 0x65ed, 0x66f2, + 0x66f3, 0x6709, 0x673d, 0x6734, 0x6731, 0x6735, 0x6b21, 0x6b64, + 0x6b7b, 0x6c16, 0x6c5d, 0x6c57, 0x6c59, 0x6c5f, 0x6c60, 0x6c50, + 0x6c55, 0x6c61, 0x6c5b, 0x6c4d, 0x6c4e, 0x7070, 0x725f, 0x725d, + 0x767e, 0x7af9, 0x7c73, 0x7cf8, 0x7f36, 0x7f8a, 0x7fbd, 0x8001, + 0x8003, 0x800c, 0x8012, 0x8033, 0x807f, 0x8089, 0x808b, 0x808c, + 0x81e3, 0x81ea, 0x81f3, 0x81fc, 0x820c, 0x821b, 0x821f, 0x826e, + 0x8272, 0x827e, 0x866b, 0x8840, 0x884c, 0x8863, 0x897f, 0x9621, + 0x4e32, 0x4ea8, 0x4f4d, 0x4f4f, 0x4f47, 0x4f57, 0x4f5e, 0x4f34, + 0x4f5b, 0x4f55, 0x4f30, 0x4f50, 0x4f51, 0x4f3d, 0x4f3a, 0x4f38, + 0x4f43, 0x4f54, 0x4f3c, 0x4f46, 0x4f63, + /* 0xa7 */ + 0x4f5c, 0x4f60, 0x4f2f, 0x4f4e, 0x4f36, 0x4f59, 0x4f5d, 0x4f48, + 0x4f5a, 0x514c, 0x514b, 0x514d, 0x5175, 0x51b6, 0x51b7, 0x5225, + 0x5224, 0x5229, 0x522a, 0x5228, 0x52ab, 0x52a9, 0x52aa, 0x52ac, + 0x5323, 0x5373, 0x5375, 0x541d, 0x542d, 0x541e, 0x543e, 0x5426, + 0x544e, 0x5427, 0x5446, 0x5443, 0x5433, 0x5448, 0x5442, 0x541b, + 0x5429, 0x544a, 0x5439, 0x543b, 0x5438, 0x542e, 0x5435, 0x5436, + 0x5420, 0x543c, 0x5440, 0x5431, 0x542b, 0x541f, 0x542c, 0x56ea, + 0x56f0, 0x56e4, 0x56eb, 0x574a, 0x5751, 0x5740, 0x574d, 0x5747, + 0x574e, 0x573e, 0x5750, 0x574f, 0x573b, 0x58ef, 0x593e, 0x599d, + 0x5992, 0x59a8, 0x599e, 0x59a3, 0x5999, 0x5996, 0x598d, 0x59a4, + 0x5993, 0x598a, 0x59a5, 0x5b5d, 0x5b5c, 0x5b5a, 0x5b5b, 0x5b8c, + 0x5b8b, 0x5b8f, 0x5c2c, 0x5c40, 0x5c41, 0x5c3f, 0x5c3e, 0x5c90, + 0x5c91, 0x5c94, 0x5c8c, 0x5deb, 0x5e0c, 0x5e8f, 0x5e87, 0x5e8a, + 0x5ef7, 0x5f04, 0x5f1f, 0x5f64, 0x5f62, 0x5f77, 0x5f79, 0x5fd8, + 0x5fcc, 0x5fd7, 0x5fcd, 0x5ff1, 0x5feb, 0x5ff8, 0x5fea, 0x6212, + 0x6211, 0x6284, 0x6297, 0x6296, 0x6280, 0x6276, 0x6289, 0x626d, + 0x628a, 0x627c, 0x627e, 0x6279, 0x6273, 0x6292, 0x626f, 0x6298, + 0x626e, 0x6295, 0x6293, 0x6291, 0x6286, 0x6539, 0x653b, 0x6538, + 0x65f1, 0x66f4, 0x675f, 0x674e, 0x674f, 0x6750, 0x6751, 0x675c, + 0x6756, 0x675e, 0x6749, 0x6746, 0x6760, + /* 0xa8 */ + 0x6753, 0x6757, 0x6b65, 0x6bcf, 0x6c42, 0x6c5e, 0x6c99, 0x6c81, + 0x6c88, 0x6c89, 0x6c85, 0x6c9b, 0x6c6a, 0x6c7a, 0x6c90, 0x6c70, + 0x6c8c, 0x6c68, 0x6c96, 0x6c92, 0x6c7d, 0x6c83, 0x6c72, 0x6c7e, + 0x6c74, 0x6c86, 0x6c76, 0x6c8d, 0x6c94, 0x6c98, 0x6c82, 0x7076, + 0x707c, 0x707d, 0x7078, 0x7262, 0x7261, 0x7260, 0x72c4, 0x72c2, + 0x7396, 0x752c, 0x752b, 0x7537, 0x7538, 0x7682, 0x76ef, 0x77e3, + 0x79c1, 0x79c0, 0x79bf, 0x7a76, 0x7cfb, 0x7f55, 0x8096, 0x8093, + 0x809d, 0x8098, 0x809b, 0x809a, 0x80b2, 0x826f, 0x8292, 0x828b, + 0x828d, 0x898b, 0x89d2, 0x8a00, 0x8c37, 0x8c46, 0x8c55, 0x8c9d, + 0x8d64, 0x8d70, 0x8db3, 0x8eab, 0x8eca, 0x8f9b, 0x8fb0, 0x8fc2, + 0x8fc6, 0x8fc5, 0x8fc4, 0x5de1, 0x9091, 0x90a2, 0x90aa, 0x90a6, + 0x90a3, 0x9149, 0x91c6, 0x91cc, 0x9632, 0x962e, 0x9631, 0x962a, + 0x962c, 0x4e26, 0x4e56, 0x4e73, 0x4e8b, 0x4e9b, 0x4e9e, 0x4eab, + 0x4eac, 0x4f6f, 0x4f9d, 0x4f8d, 0x4f73, 0x4f7f, 0x4f6c, 0x4f9b, + 0x4f8b, 0x4f86, 0x4f83, 0x4f70, 0x4f75, 0x4f88, 0x4f69, 0x4f7b, + 0x4f96, 0x4f7e, 0x4f8f, 0x4f91, 0x4f7a, 0x5154, 0x5152, 0x5155, + 0x5169, 0x5177, 0x5176, 0x5178, 0x51bd, 0x51fd, 0x523b, 0x5238, + 0x5237, 0x523a, 0x5230, 0x522e, 0x5236, 0x5241, 0x52be, 0x52bb, + 0x5352, 0x5354, 0x5353, 0x5351, 0x5366, 0x5377, 0x5378, 0x5379, + 0x53d6, 0x53d4, 0x53d7, 0x5473, 0x5475, + /* 0xa9 */ + 0x5496, 0x5478, 0x5495, 0x5480, 0x547b, 0x5477, 0x5484, 0x5492, + 0x5486, 0x547c, 0x5490, 0x5471, 0x5476, 0x548c, 0x549a, 0x5462, + 0x5468, 0x548b, 0x547d, 0x548e, 0x56fa, 0x5783, 0x5777, 0x576a, + 0x5769, 0x5761, 0x5766, 0x5764, 0x577c, 0x591c, 0x5949, 0x5947, + 0x5948, 0x5944, 0x5954, 0x59be, 0x59bb, 0x59d4, 0x59b9, 0x59ae, + 0x59d1, 0x59c6, 0x59d0, 0x59cd, 0x59cb, 0x59d3, 0x59ca, 0x59af, + 0x59b3, 0x59d2, 0x59c5, 0x5b5f, 0x5b64, 0x5b63, 0x5b97, 0x5b9a, + 0x5b98, 0x5b9c, 0x5b99, 0x5b9b, 0x5c1a, 0x5c48, 0x5c45, 0x5c46, + 0x5cb7, 0x5ca1, 0x5cb8, 0x5ca9, 0x5cab, 0x5cb1, 0x5cb3, 0x5e18, + 0x5e1a, 0x5e16, 0x5e15, 0x5e1b, 0x5e11, 0x5e78, 0x5e9a, 0x5e97, + 0x5e9c, 0x5e95, 0x5e96, 0x5ef6, 0x5f26, 0x5f27, 0x5f29, 0x5f80, + 0x5f81, 0x5f7f, 0x5f7c, 0x5fdd, 0x5fe0, 0x5ffd, 0x5ff5, 0x5fff, + 0x600f, 0x6014, 0x602f, 0x6035, 0x6016, 0x602a, 0x6015, 0x6021, + 0x6027, 0x6029, 0x602b, 0x601b, 0x6216, 0x6215, 0x623f, 0x623e, + 0x6240, 0x627f, 0x62c9, 0x62cc, 0x62c4, 0x62bf, 0x62c2, 0x62b9, + 0x62d2, 0x62db, 0x62ab, 0x62d3, 0x62d4, 0x62cb, 0x62c8, 0x62a8, + 0x62bd, 0x62bc, 0x62d0, 0x62d9, 0x62c7, 0x62cd, 0x62b5, 0x62da, + 0x62b1, 0x62d8, 0x62d6, 0x62d7, 0x62c6, 0x62ac, 0x62ce, 0x653e, + 0x65a7, 0x65bc, 0x65fa, 0x6614, 0x6613, 0x660c, 0x6606, 0x6602, + 0x660e, 0x6600, 0x660f, 0x6615, 0x660a, + /* 0xaa */ + 0x6607, 0x670d, 0x670b, 0x676d, 0x678b, 0x6795, 0x6771, 0x679c, + 0x6773, 0x6777, 0x6787, 0x679d, 0x6797, 0x676f, 0x6770, 0x677f, + 0x6789, 0x677e, 0x6790, 0x6775, 0x679a, 0x6793, 0x677c, 0x676a, + 0x6772, 0x6b23, 0x6b66, 0x6b67, 0x6b7f, 0x6c13, 0x6c1b, 0x6ce3, + 0x6ce8, 0x6cf3, 0x6cb1, 0x6ccc, 0x6ce5, 0x6cb3, 0x6cbd, 0x6cbe, + 0x6cbc, 0x6ce2, 0x6cab, 0x6cd5, 0x6cd3, 0x6cb8, 0x6cc4, 0x6cb9, + 0x6cc1, 0x6cae, 0x6cd7, 0x6cc5, 0x6cf1, 0x6cbf, 0x6cbb, 0x6ce1, + 0x6cdb, 0x6cca, 0x6cac, 0x6cef, 0x6cdc, 0x6cd6, 0x6ce0, 0x7095, + 0x708e, 0x7092, 0x708a, 0x7099, 0x722c, 0x722d, 0x7238, 0x7248, + 0x7267, 0x7269, 0x72c0, 0x72ce, 0x72d9, 0x72d7, 0x72d0, 0x73a9, + 0x73a8, 0x739f, 0x73ab, 0x73a5, 0x753d, 0x759d, 0x7599, 0x759a, + 0x7684, 0x76c2, 0x76f2, 0x76f4, 0x77e5, 0x77fd, 0x793e, 0x7940, + 0x7941, 0x79c9, 0x79c8, 0x7a7a, 0x7a79, 0x7afa, 0x7cfe, 0x7f54, + 0x7f8c, 0x7f8b, 0x8005, 0x80ba, 0x80a5, 0x80a2, 0x80b1, 0x80a1, + 0x80ab, 0x80a9, 0x80b4, 0x80aa, 0x80af, 0x81e5, 0x81fe, 0x820d, + 0x82b3, 0x829d, 0x8299, 0x82ad, 0x82bd, 0x829f, 0x82b9, 0x82b1, + 0x82ac, 0x82a5, 0x82af, 0x82b8, 0x82a3, 0x82b0, 0x82be, 0x82b7, + 0x864e, 0x8671, 0x521d, 0x8868, 0x8ecb, 0x8fce, 0x8fd4, 0x8fd1, + 0x90b5, 0x90b8, 0x90b1, 0x90b6, 0x91c7, 0x91d1, 0x9577, 0x9580, + 0x961c, 0x9640, 0x963f, 0x963b, 0x9644, + /* 0xab */ + 0x9642, 0x96b9, 0x96e8, 0x9752, 0x975e, 0x4e9f, 0x4ead, 0x4eae, + 0x4fe1, 0x4fb5, 0x4faf, 0x4fbf, 0x4fe0, 0x4fd1, 0x4fcf, 0x4fdd, + 0x4fc3, 0x4fb6, 0x4fd8, 0x4fdf, 0x4fca, 0x4fd7, 0x4fae, 0x4fd0, + 0x4fc4, 0x4fc2, 0x4fda, 0x4fce, 0x4fde, 0x4fb7, 0x5157, 0x5192, + 0x5191, 0x51a0, 0x524e, 0x5243, 0x524a, 0x524d, 0x524c, 0x524b, + 0x5247, 0x52c7, 0x52c9, 0x52c3, 0x52c1, 0x530d, 0x5357, 0x537b, + 0x539a, 0x53db, 0x54ac, 0x54c0, 0x54a8, 0x54ce, 0x54c9, 0x54b8, + 0x54a6, 0x54b3, 0x54c7, 0x54c2, 0x54bd, 0x54aa, 0x54c1, 0x54c4, + 0x54c8, 0x54af, 0x54ab, 0x54b1, 0x54bb, 0x54a9, 0x54a7, 0x54bf, + 0x56ff, 0x5782, 0x578b, 0x57a0, 0x57a3, 0x57a2, 0x57ce, 0x57ae, + 0x5793, 0x5955, 0x5951, 0x594f, 0x594e, 0x5950, 0x59dc, 0x59d8, + 0x59ff, 0x59e3, 0x59e8, 0x5a03, 0x59e5, 0x59ea, 0x59da, 0x59e6, + 0x5a01, 0x59fb, 0x5b69, 0x5ba3, 0x5ba6, 0x5ba4, 0x5ba2, 0x5ba5, + 0x5c01, 0x5c4e, 0x5c4f, 0x5c4d, 0x5c4b, 0x5cd9, 0x5cd2, 0x5df7, + 0x5e1d, 0x5e25, 0x5e1f, 0x5e7d, 0x5ea0, 0x5ea6, 0x5efa, 0x5f08, + 0x5f2d, 0x5f65, 0x5f88, 0x5f85, 0x5f8a, 0x5f8b, 0x5f87, 0x5f8c, + 0x5f89, 0x6012, 0x601d, 0x6020, 0x6025, 0x600e, 0x6028, 0x604d, + 0x6070, 0x6068, 0x6062, 0x6046, 0x6043, 0x606c, 0x606b, 0x606a, + 0x6064, 0x6241, 0x62dc, 0x6316, 0x6309, 0x62fc, 0x62ed, 0x6301, + 0x62ee, 0x62fd, 0x6307, 0x62f1, 0x62f7, + /* 0xac */ + 0x62ef, 0x62ec, 0x62fe, 0x62f4, 0x6311, 0x6302, 0x653f, 0x6545, + 0x65ab, 0x65bd, 0x65e2, 0x6625, 0x662d, 0x6620, 0x6627, 0x662f, + 0x661f, 0x6628, 0x6631, 0x6624, 0x66f7, 0x67ff, 0x67d3, 0x67f1, + 0x67d4, 0x67d0, 0x67ec, 0x67b6, 0x67af, 0x67f5, 0x67e9, 0x67ef, + 0x67c4, 0x67d1, 0x67b4, 0x67da, 0x67e5, 0x67b8, 0x67cf, 0x67de, + 0x67f3, 0x67b0, 0x67d9, 0x67e2, 0x67dd, 0x67d2, 0x6b6a, 0x6b83, + 0x6b86, 0x6bb5, 0x6bd2, 0x6bd7, 0x6c1f, 0x6cc9, 0x6d0b, 0x6d32, + 0x6d2a, 0x6d41, 0x6d25, 0x6d0c, 0x6d31, 0x6d1e, 0x6d17, 0x6d3b, + 0x6d3d, 0x6d3e, 0x6d36, 0x6d1b, 0x6cf5, 0x6d39, 0x6d27, 0x6d38, + 0x6d29, 0x6d2e, 0x6d35, 0x6d0e, 0x6d2b, 0x70ab, 0x70ba, 0x70b3, + 0x70ac, 0x70af, 0x70ad, 0x70b8, 0x70ae, 0x70a4, 0x7230, 0x7272, + 0x726f, 0x7274, 0x72e9, 0x72e0, 0x72e1, 0x73b7, 0x73ca, 0x73bb, + 0x73b2, 0x73cd, 0x73c0, 0x73b3, 0x751a, 0x752d, 0x754f, 0x754c, + 0x754e, 0x754b, 0x75ab, 0x75a4, 0x75a5, 0x75a2, 0x75a3, 0x7678, + 0x7686, 0x7687, 0x7688, 0x76c8, 0x76c6, 0x76c3, 0x76c5, 0x7701, + 0x76f9, 0x76f8, 0x7709, 0x770b, 0x76fe, 0x76fc, 0x7707, 0x77dc, + 0x7802, 0x7814, 0x780c, 0x780d, 0x7946, 0x7949, 0x7948, 0x7947, + 0x79b9, 0x79ba, 0x79d1, 0x79d2, 0x79cb, 0x7a7f, 0x7a81, 0x7aff, + 0x7afd, 0x7c7d, 0x7d02, 0x7d05, 0x7d00, 0x7d09, 0x7d07, 0x7d04, + 0x7d06, 0x7f38, 0x7f8e, 0x7fbf, 0x8004, + /* 0xad */ + 0x8010, 0x800d, 0x8011, 0x8036, 0x80d6, 0x80e5, 0x80da, 0x80c3, + 0x80c4, 0x80cc, 0x80e1, 0x80db, 0x80ce, 0x80de, 0x80e4, 0x80dd, + 0x81f4, 0x8222, 0x82e7, 0x8303, 0x8305, 0x82e3, 0x82db, 0x82e6, + 0x8304, 0x82e5, 0x8302, 0x8309, 0x82d2, 0x82d7, 0x82f1, 0x8301, + 0x82dc, 0x82d4, 0x82d1, 0x82de, 0x82d3, 0x82df, 0x82ef, 0x8306, + 0x8650, 0x8679, 0x867b, 0x867a, 0x884d, 0x886b, 0x8981, 0x89d4, + 0x8a08, 0x8a02, 0x8a03, 0x8c9e, 0x8ca0, 0x8d74, 0x8d73, 0x8db4, + 0x8ecd, 0x8ecc, 0x8ff0, 0x8fe6, 0x8fe2, 0x8fea, 0x8fe5, 0x8fed, + 0x8feb, 0x8fe4, 0x8fe8, 0x90ca, 0x90ce, 0x90c1, 0x90c3, 0x914b, + 0x914a, 0x91cd, 0x9582, 0x9650, 0x964b, 0x964c, 0x964d, 0x9762, + 0x9769, 0x97cb, 0x97ed, 0x97f3, 0x9801, 0x98a8, 0x98db, 0x98df, + 0x9996, 0x9999, 0x4e58, 0x4eb3, 0x500c, 0x500d, 0x5023, 0x4fef, + 0x5026, 0x5025, 0x4ff8, 0x5029, 0x5016, 0x5006, 0x503c, 0x501f, + 0x501a, 0x5012, 0x5011, 0x4ffa, 0x5000, 0x5014, 0x5028, 0x4ff1, + 0x5021, 0x500b, 0x5019, 0x5018, 0x4ff3, 0x4fee, 0x502d, 0x502a, + 0x4ffe, 0x502b, 0x5009, 0x517c, 0x51a4, 0x51a5, 0x51a2, 0x51cd, + 0x51cc, 0x51c6, 0x51cb, 0x5256, 0x525c, 0x5254, 0x525b, 0x525d, + 0x532a, 0x537f, 0x539f, 0x539d, 0x53df, 0x54e8, 0x5510, 0x5501, + 0x5537, 0x54fc, 0x54e5, 0x54f2, 0x5506, 0x54fa, 0x5514, 0x54e9, + 0x54ed, 0x54e1, 0x5509, 0x54ee, 0x54ea, + /* 0xae */ + 0x54e6, 0x5527, 0x5507, 0x54fd, 0x550f, 0x5703, 0x5704, 0x57c2, + 0x57d4, 0x57cb, 0x57c3, 0x5809, 0x590f, 0x5957, 0x5958, 0x595a, + 0x5a11, 0x5a18, 0x5a1c, 0x5a1f, 0x5a1b, 0x5a13, 0x59ec, 0x5a20, + 0x5a23, 0x5a29, 0x5a25, 0x5a0c, 0x5a09, 0x5b6b, 0x5c58, 0x5bb0, + 0x5bb3, 0x5bb6, 0x5bb4, 0x5bae, 0x5bb5, 0x5bb9, 0x5bb8, 0x5c04, + 0x5c51, 0x5c55, 0x5c50, 0x5ced, 0x5cfd, 0x5cfb, 0x5cea, 0x5ce8, + 0x5cf0, 0x5cf6, 0x5d01, 0x5cf4, 0x5dee, 0x5e2d, 0x5e2b, 0x5eab, + 0x5ead, 0x5ea7, 0x5f31, 0x5f92, 0x5f91, 0x5f90, 0x6059, 0x6063, + 0x6065, 0x6050, 0x6055, 0x606d, 0x6069, 0x606f, 0x6084, 0x609f, + 0x609a, 0x608d, 0x6094, 0x608c, 0x6085, 0x6096, 0x6247, 0x62f3, + 0x6308, 0x62ff, 0x634e, 0x633e, 0x632f, 0x6355, 0x6342, 0x6346, + 0x634f, 0x6349, 0x633a, 0x6350, 0x633d, 0x632a, 0x632b, 0x6328, + 0x634d, 0x634c, 0x6548, 0x6549, 0x6599, 0x65c1, 0x65c5, 0x6642, + 0x6649, 0x664f, 0x6643, 0x6652, 0x664c, 0x6645, 0x6641, 0x66f8, + 0x6714, 0x6715, 0x6717, 0x6821, 0x6838, 0x6848, 0x6846, 0x6853, + 0x6839, 0x6842, 0x6854, 0x6829, 0x68b3, 0x6817, 0x684c, 0x6851, + 0x683d, 0x67f4, 0x6850, 0x6840, 0x683c, 0x6843, 0x682a, 0x6845, + 0x6813, 0x6818, 0x6841, 0x6b8a, 0x6b89, 0x6bb7, 0x6c23, 0x6c27, + 0x6c28, 0x6c26, 0x6c24, 0x6cf0, 0x6d6a, 0x6d95, 0x6d88, 0x6d87, + 0x6d66, 0x6d78, 0x6d77, 0x6d59, 0x6d93, + /* 0xaf */ + 0x6d6c, 0x6d89, 0x6d6e, 0x6d5a, 0x6d74, 0x6d69, 0x6d8c, 0x6d8a, + 0x6d79, 0x6d85, 0x6d65, 0x6d94, 0x70ca, 0x70d8, 0x70e4, 0x70d9, + 0x70c8, 0x70cf, 0x7239, 0x7279, 0x72fc, 0x72f9, 0x72fd, 0x72f8, + 0x72f7, 0x7386, 0x73ed, 0x7409, 0x73ee, 0x73e0, 0x73ea, 0x73de, + 0x7554, 0x755d, 0x755c, 0x755a, 0x7559, 0x75be, 0x75c5, 0x75c7, + 0x75b2, 0x75b3, 0x75bd, 0x75bc, 0x75b9, 0x75c2, 0x75b8, 0x768b, + 0x76b0, 0x76ca, 0x76cd, 0x76ce, 0x7729, 0x771f, 0x7720, 0x7728, + 0x77e9, 0x7830, 0x7827, 0x7838, 0x781d, 0x7834, 0x7837, 0x7825, + 0x782d, 0x7820, 0x781f, 0x7832, 0x7955, 0x7950, 0x7960, 0x795f, + 0x7956, 0x795e, 0x795d, 0x7957, 0x795a, 0x79e4, 0x79e3, 0x79e7, + 0x79df, 0x79e6, 0x79e9, 0x79d8, 0x7a84, 0x7a88, 0x7ad9, 0x7b06, + 0x7b11, 0x7c89, 0x7d21, 0x7d17, 0x7d0b, 0x7d0a, 0x7d20, 0x7d22, + 0x7d14, 0x7d10, 0x7d15, 0x7d1a, 0x7d1c, 0x7d0d, 0x7d19, 0x7d1b, + 0x7f3a, 0x7f5f, 0x7f94, 0x7fc5, 0x7fc1, 0x8006, 0x8018, 0x8015, + 0x8019, 0x8017, 0x803d, 0x803f, 0x80f1, 0x8102, 0x80f0, 0x8105, + 0x80ed, 0x80f4, 0x8106, 0x80f8, 0x80f3, 0x8108, 0x80fd, 0x810a, + 0x80fc, 0x80ef, 0x81ed, 0x81ec, 0x8200, 0x8210, 0x822a, 0x822b, + 0x8228, 0x822c, 0x82bb, 0x832b, 0x8352, 0x8354, 0x834a, 0x8338, + 0x8350, 0x8349, 0x8335, 0x8334, 0x834f, 0x8332, 0x8339, 0x8336, + 0x8317, 0x8340, 0x8331, 0x8328, 0x8343, + /* 0xb0 */ + 0x8654, 0x868a, 0x86aa, 0x8693, 0x86a4, 0x86a9, 0x868c, 0x86a3, + 0x869c, 0x8870, 0x8877, 0x8881, 0x8882, 0x887d, 0x8879, 0x8a18, + 0x8a10, 0x8a0e, 0x8a0c, 0x8a15, 0x8a0a, 0x8a17, 0x8a13, 0x8a16, + 0x8a0f, 0x8a11, 0x8c48, 0x8c7a, 0x8c79, 0x8ca1, 0x8ca2, 0x8d77, + 0x8eac, 0x8ed2, 0x8ed4, 0x8ecf, 0x8fb1, 0x9001, 0x9006, 0x8ff7, + 0x9000, 0x8ffa, 0x8ff4, 0x9003, 0x8ffd, 0x9005, 0x8ff8, 0x9095, + 0x90e1, 0x90dd, 0x90e2, 0x9152, 0x914d, 0x914c, 0x91d8, 0x91dd, + 0x91d7, 0x91dc, 0x91d9, 0x9583, 0x9662, 0x9663, 0x9661, 0x965b, + 0x965d, 0x9664, 0x9658, 0x965e, 0x96bb, 0x98e2, 0x99ac, 0x9aa8, + 0x9ad8, 0x9b25, 0x9b32, 0x9b3c, 0x4e7e, 0x507a, 0x507d, 0x505c, + 0x5047, 0x5043, 0x504c, 0x505a, 0x5049, 0x5065, 0x5076, 0x504e, + 0x5055, 0x5075, 0x5074, 0x5077, 0x504f, 0x500f, 0x506f, 0x506d, + 0x515c, 0x5195, 0x51f0, 0x526a, 0x526f, 0x52d2, 0x52d9, 0x52d8, + 0x52d5, 0x5310, 0x530f, 0x5319, 0x533f, 0x5340, 0x533e, 0x53c3, + 0x66fc, 0x5546, 0x556a, 0x5566, 0x5544, 0x555e, 0x5561, 0x5543, + 0x554a, 0x5531, 0x5556, 0x554f, 0x5555, 0x552f, 0x5564, 0x5538, + 0x552e, 0x555c, 0x552c, 0x5563, 0x5533, 0x5541, 0x5557, 0x5708, + 0x570b, 0x5709, 0x57df, 0x5805, 0x580a, 0x5806, 0x57e0, 0x57e4, + 0x57fa, 0x5802, 0x5835, 0x57f7, 0x57f9, 0x5920, 0x5962, 0x5a36, + 0x5a41, 0x5a49, 0x5a66, 0x5a6a, 0x5a40, + /* 0xb1 */ + 0x5a3c, 0x5a62, 0x5a5a, 0x5a46, 0x5a4a, 0x5b70, 0x5bc7, 0x5bc5, + 0x5bc4, 0x5bc2, 0x5bbf, 0x5bc6, 0x5c09, 0x5c08, 0x5c07, 0x5c60, + 0x5c5c, 0x5c5d, 0x5d07, 0x5d06, 0x5d0e, 0x5d1b, 0x5d16, 0x5d22, + 0x5d11, 0x5d29, 0x5d14, 0x5d19, 0x5d24, 0x5d27, 0x5d17, 0x5de2, + 0x5e38, 0x5e36, 0x5e33, 0x5e37, 0x5eb7, 0x5eb8, 0x5eb6, 0x5eb5, + 0x5ebe, 0x5f35, 0x5f37, 0x5f57, 0x5f6c, 0x5f69, 0x5f6b, 0x5f97, + 0x5f99, 0x5f9e, 0x5f98, 0x5fa1, 0x5fa0, 0x5f9c, 0x607f, 0x60a3, + 0x6089, 0x60a0, 0x60a8, 0x60cb, 0x60b4, 0x60e6, 0x60bd, 0x60c5, + 0x60bb, 0x60b5, 0x60dc, 0x60bc, 0x60d8, 0x60d5, 0x60c6, 0x60df, + 0x60b8, 0x60da, 0x60c7, 0x621a, 0x621b, 0x6248, 0x63a0, 0x63a7, + 0x6372, 0x6396, 0x63a2, 0x63a5, 0x6377, 0x6367, 0x6398, 0x63aa, + 0x6371, 0x63a9, 0x6389, 0x6383, 0x639b, 0x636b, 0x63a8, 0x6384, + 0x6388, 0x6399, 0x63a1, 0x63ac, 0x6392, 0x638f, 0x6380, 0x637b, + 0x6369, 0x6368, 0x637a, 0x655d, 0x6556, 0x6551, 0x6559, 0x6557, + 0x555f, 0x654f, 0x6558, 0x6555, 0x6554, 0x659c, 0x659b, 0x65ac, + 0x65cf, 0x65cb, 0x65cc, 0x65ce, 0x665d, 0x665a, 0x6664, 0x6668, + 0x6666, 0x665e, 0x66f9, 0x52d7, 0x671b, 0x6881, 0x68af, 0x68a2, + 0x6893, 0x68b5, 0x687f, 0x6876, 0x68b1, 0x68a7, 0x6897, 0x68b0, + 0x6883, 0x68c4, 0x68ad, 0x6886, 0x6885, 0x6894, 0x689d, 0x68a8, + 0x689f, 0x68a1, 0x6882, 0x6b32, 0x6bba, + /* 0xb2 */ + 0x6beb, 0x6bec, 0x6c2b, 0x6d8e, 0x6dbc, 0x6df3, 0x6dd9, 0x6db2, + 0x6de1, 0x6dcc, 0x6de4, 0x6dfb, 0x6dfa, 0x6e05, 0x6dc7, 0x6dcb, + 0x6daf, 0x6dd1, 0x6dae, 0x6dde, 0x6df9, 0x6db8, 0x6df7, 0x6df5, + 0x6dc5, 0x6dd2, 0x6e1a, 0x6db5, 0x6dda, 0x6deb, 0x6dd8, 0x6dea, + 0x6df1, 0x6dee, 0x6de8, 0x6dc6, 0x6dc4, 0x6daa, 0x6dec, 0x6dbf, + 0x6de6, 0x70f9, 0x7109, 0x710a, 0x70fd, 0x70ef, 0x723d, 0x727d, + 0x7281, 0x731c, 0x731b, 0x7316, 0x7313, 0x7319, 0x7387, 0x7405, + 0x740a, 0x7403, 0x7406, 0x73fe, 0x740d, 0x74e0, 0x74f6, 0x74f7, + 0x751c, 0x7522, 0x7565, 0x7566, 0x7562, 0x7570, 0x758f, 0x75d4, + 0x75d5, 0x75b5, 0x75ca, 0x75cd, 0x768e, 0x76d4, 0x76d2, 0x76db, + 0x7737, 0x773e, 0x773c, 0x7736, 0x7738, 0x773a, 0x786b, 0x7843, + 0x784e, 0x7965, 0x7968, 0x796d, 0x79fb, 0x7a92, 0x7a95, 0x7b20, + 0x7b28, 0x7b1b, 0x7b2c, 0x7b26, 0x7b19, 0x7b1e, 0x7b2e, 0x7c92, + 0x7c97, 0x7c95, 0x7d46, 0x7d43, 0x7d71, 0x7d2e, 0x7d39, 0x7d3c, + 0x7d40, 0x7d30, 0x7d33, 0x7d44, 0x7d2f, 0x7d42, 0x7d32, 0x7d31, + 0x7f3d, 0x7f9e, 0x7f9a, 0x7fcc, 0x7fce, 0x7fd2, 0x801c, 0x804a, + 0x8046, 0x812f, 0x8116, 0x8123, 0x812b, 0x8129, 0x8130, 0x8124, + 0x8202, 0x8235, 0x8237, 0x8236, 0x8239, 0x838e, 0x839e, 0x8398, + 0x8378, 0x83a2, 0x8396, 0x83bd, 0x83ab, 0x8392, 0x838a, 0x8393, + 0x8389, 0x83a0, 0x8377, 0x837b, 0x837c, + /* 0xb3 */ + 0x8386, 0x83a7, 0x8655, 0x5f6a, 0x86c7, 0x86c0, 0x86b6, 0x86c4, + 0x86b5, 0x86c6, 0x86cb, 0x86b1, 0x86af, 0x86c9, 0x8853, 0x889e, + 0x8888, 0x88ab, 0x8892, 0x8896, 0x888d, 0x888b, 0x8993, 0x898f, + 0x8a2a, 0x8a1d, 0x8a23, 0x8a25, 0x8a31, 0x8a2d, 0x8a1f, 0x8a1b, + 0x8a22, 0x8c49, 0x8c5a, 0x8ca9, 0x8cac, 0x8cab, 0x8ca8, 0x8caa, + 0x8ca7, 0x8d67, 0x8d66, 0x8dbe, 0x8dba, 0x8edb, 0x8edf, 0x9019, + 0x900d, 0x901a, 0x9017, 0x9023, 0x901f, 0x901d, 0x9010, 0x9015, + 0x901e, 0x9020, 0x900f, 0x9022, 0x9016, 0x901b, 0x9014, 0x90e8, + 0x90ed, 0x90fd, 0x9157, 0x91ce, 0x91f5, 0x91e6, 0x91e3, 0x91e7, + 0x91ed, 0x91e9, 0x9589, 0x966a, 0x9675, 0x9673, 0x9678, 0x9670, + 0x9674, 0x9676, 0x9677, 0x966c, 0x96c0, 0x96ea, 0x96e9, 0x7ae0, + 0x7adf, 0x9802, 0x9803, 0x9b5a, 0x9ce5, 0x9e75, 0x9e7f, 0x9ea5, + 0x9ebb, 0x50a2, 0x508d, 0x5085, 0x5099, 0x5091, 0x5080, 0x5096, + 0x5098, 0x509a, 0x6700, 0x51f1, 0x5272, 0x5274, 0x5275, 0x5269, + 0x52de, 0x52dd, 0x52db, 0x535a, 0x53a5, 0x557b, 0x5580, 0x55a7, + 0x557c, 0x558a, 0x559d, 0x5598, 0x5582, 0x559c, 0x55aa, 0x5594, + 0x5587, 0x558b, 0x5583, 0x55b3, 0x55ae, 0x559f, 0x553e, 0x55b2, + 0x559a, 0x55bb, 0x55ac, 0x55b1, 0x557e, 0x5589, 0x55ab, 0x5599, + 0x570d, 0x582f, 0x582a, 0x5834, 0x5824, 0x5830, 0x5831, 0x5821, + 0x581d, 0x5820, 0x58f9, 0x58fa, 0x5960, + /* 0xb4 */ + 0x5a77, 0x5a9a, 0x5a7f, 0x5a92, 0x5a9b, 0x5aa7, 0x5b73, 0x5b71, + 0x5bd2, 0x5bcc, 0x5bd3, 0x5bd0, 0x5c0a, 0x5c0b, 0x5c31, 0x5d4c, + 0x5d50, 0x5d34, 0x5d47, 0x5dfd, 0x5e45, 0x5e3d, 0x5e40, 0x5e43, + 0x5e7e, 0x5eca, 0x5ec1, 0x5ec2, 0x5ec4, 0x5f3c, 0x5f6d, 0x5fa9, + 0x5faa, 0x5fa8, 0x60d1, 0x60e1, 0x60b2, 0x60b6, 0x60e0, 0x611c, + 0x6123, 0x60fa, 0x6115, 0x60f0, 0x60fb, 0x60f4, 0x6168, 0x60f1, + 0x610e, 0x60f6, 0x6109, 0x6100, 0x6112, 0x621f, 0x6249, 0x63a3, + 0x638c, 0x63cf, 0x63c0, 0x63e9, 0x63c9, 0x63c6, 0x63cd, 0x63d2, + 0x63e3, 0x63d0, 0x63e1, 0x63d6, 0x63ed, 0x63ee, 0x6376, 0x63f4, + 0x63ea, 0x63db, 0x6452, 0x63da, 0x63f9, 0x655e, 0x6566, 0x6562, + 0x6563, 0x6591, 0x6590, 0x65af, 0x666e, 0x6670, 0x6674, 0x6676, + 0x666f, 0x6691, 0x667a, 0x667e, 0x6677, 0x66fe, 0x66ff, 0x671f, + 0x671d, 0x68fa, 0x68d5, 0x68e0, 0x68d8, 0x68d7, 0x6905, 0x68df, + 0x68f5, 0x68ee, 0x68e7, 0x68f9, 0x68d2, 0x68f2, 0x68e3, 0x68cb, + 0x68cd, 0x690d, 0x6912, 0x690e, 0x68c9, 0x68da, 0x696e, 0x68fb, + 0x6b3e, 0x6b3a, 0x6b3d, 0x6b98, 0x6b96, 0x6bbc, 0x6bef, 0x6c2e, + 0x6c2f, 0x6c2c, 0x6e2f, 0x6e38, 0x6e54, 0x6e21, 0x6e32, 0x6e67, + 0x6e4a, 0x6e20, 0x6e25, 0x6e23, 0x6e1b, 0x6e5b, 0x6e58, 0x6e24, + 0x6e56, 0x6e6e, 0x6e2d, 0x6e26, 0x6e6f, 0x6e34, 0x6e4d, 0x6e3a, + 0x6e2c, 0x6e43, 0x6e1d, 0x6e3e, 0x6ecb, + /* 0xb5 */ + 0x6e89, 0x6e19, 0x6e4e, 0x6e63, 0x6e44, 0x6e72, 0x6e69, 0x6e5f, + 0x7119, 0x711a, 0x7126, 0x7130, 0x7121, 0x7136, 0x716e, 0x711c, + 0x724c, 0x7284, 0x7280, 0x7336, 0x7325, 0x7334, 0x7329, 0x743a, + 0x742a, 0x7433, 0x7422, 0x7425, 0x7435, 0x7436, 0x7434, 0x742f, + 0x741b, 0x7426, 0x7428, 0x7525, 0x7526, 0x756b, 0x756a, 0x75e2, + 0x75db, 0x75e3, 0x75d9, 0x75d8, 0x75de, 0x75e0, 0x767b, 0x767c, + 0x7696, 0x7693, 0x76b4, 0x76dc, 0x774f, 0x77ed, 0x785d, 0x786c, + 0x786f, 0x7a0d, 0x7a08, 0x7a0b, 0x7a05, 0x7a00, 0x7a98, 0x7a97, + 0x7a96, 0x7ae5, 0x7ae3, 0x7b49, 0x7b56, 0x7b46, 0x7b50, 0x7b52, + 0x7b54, 0x7b4d, 0x7b4b, 0x7b4f, 0x7b51, 0x7c9f, 0x7ca5, 0x7d5e, + 0x7d50, 0x7d68, 0x7d55, 0x7d2b, 0x7d6e, 0x7d72, 0x7d61, 0x7d66, + 0x7d62, 0x7d70, 0x7d73, 0x5584, 0x7fd4, 0x7fd5, 0x800b, 0x8052, + 0x8085, 0x8155, 0x8154, 0x814b, 0x8151, 0x814e, 0x8139, 0x8146, + 0x813e, 0x814c, 0x8153, 0x8174, 0x8212, 0x821c, 0x83e9, 0x8403, + 0x83f8, 0x840d, 0x83e0, 0x83c5, 0x840b, 0x83c1, 0x83ef, 0x83f1, + 0x83f4, 0x8457, 0x840a, 0x83f0, 0x840c, 0x83cc, 0x83fd, 0x83f2, + 0x83ca, 0x8438, 0x840e, 0x8404, 0x83dc, 0x8407, 0x83d4, 0x83df, + 0x865b, 0x86df, 0x86d9, 0x86ed, 0x86d4, 0x86db, 0x86e4, 0x86d0, + 0x86de, 0x8857, 0x88c1, 0x88c2, 0x88b1, 0x8983, 0x8996, 0x8a3b, + 0x8a60, 0x8a55, 0x8a5e, 0x8a3c, 0x8a41, + /* 0xb6 */ + 0x8a54, 0x8a5b, 0x8a50, 0x8a46, 0x8a34, 0x8a3a, 0x8a36, 0x8a56, + 0x8c61, 0x8c82, 0x8caf, 0x8cbc, 0x8cb3, 0x8cbd, 0x8cc1, 0x8cbb, + 0x8cc0, 0x8cb4, 0x8cb7, 0x8cb6, 0x8cbf, 0x8cb8, 0x8d8a, 0x8d85, + 0x8d81, 0x8dce, 0x8ddd, 0x8dcb, 0x8dda, 0x8dd1, 0x8dcc, 0x8ddb, + 0x8dc6, 0x8efb, 0x8ef8, 0x8efc, 0x8f9c, 0x902e, 0x9035, 0x9031, + 0x9038, 0x9032, 0x9036, 0x9102, 0x90f5, 0x9109, 0x90fe, 0x9163, + 0x9165, 0x91cf, 0x9214, 0x9215, 0x9223, 0x9209, 0x921e, 0x920d, + 0x9210, 0x9207, 0x9211, 0x9594, 0x958f, 0x958b, 0x9591, 0x9593, + 0x9592, 0x958e, 0x968a, 0x968e, 0x968b, 0x967d, 0x9685, 0x9686, + 0x968d, 0x9672, 0x9684, 0x96c1, 0x96c5, 0x96c4, 0x96c6, 0x96c7, + 0x96ef, 0x96f2, 0x97cc, 0x9805, 0x9806, 0x9808, 0x98e7, 0x98ea, + 0x98ef, 0x98e9, 0x98f2, 0x98ed, 0x99ae, 0x99ad, 0x9ec3, 0x9ecd, + 0x9ed1, 0x4e82, 0x50ad, 0x50b5, 0x50b2, 0x50b3, 0x50c5, 0x50be, + 0x50ac, 0x50b7, 0x50bb, 0x50af, 0x50c7, 0x527f, 0x5277, 0x527d, + 0x52df, 0x52e6, 0x52e4, 0x52e2, 0x52e3, 0x532f, 0x55df, 0x55e8, + 0x55d3, 0x55e6, 0x55ce, 0x55dc, 0x55c7, 0x55d1, 0x55e3, 0x55e4, + 0x55ef, 0x55da, 0x55e1, 0x55c5, 0x55c6, 0x55e5, 0x55c9, 0x5712, + 0x5713, 0x585e, 0x5851, 0x5858, 0x5857, 0x585a, 0x5854, 0x586b, + 0x584c, 0x586d, 0x584a, 0x5862, 0x5852, 0x584b, 0x5967, 0x5ac1, + 0x5ac9, 0x5acc, 0x5abe, 0x5abd, 0x5abc, + /* 0xb7 */ + 0x5ab3, 0x5ac2, 0x5ab2, 0x5d69, 0x5d6f, 0x5e4c, 0x5e79, 0x5ec9, + 0x5ec8, 0x5f12, 0x5f59, 0x5fac, 0x5fae, 0x611a, 0x610f, 0x6148, + 0x611f, 0x60f3, 0x611b, 0x60f9, 0x6101, 0x6108, 0x614e, 0x614c, + 0x6144, 0x614d, 0x613e, 0x6134, 0x6127, 0x610d, 0x6106, 0x6137, + 0x6221, 0x6222, 0x6413, 0x643e, 0x641e, 0x642a, 0x642d, 0x643d, + 0x642c, 0x640f, 0x641c, 0x6414, 0x640d, 0x6436, 0x6416, 0x6417, + 0x6406, 0x656c, 0x659f, 0x65b0, 0x6697, 0x6689, 0x6687, 0x6688, + 0x6696, 0x6684, 0x6698, 0x668d, 0x6703, 0x6994, 0x696d, 0x695a, + 0x6977, 0x6960, 0x6954, 0x6975, 0x6930, 0x6982, 0x694a, 0x6968, + 0x696b, 0x695e, 0x6953, 0x6979, 0x6986, 0x695d, 0x6963, 0x695b, + 0x6b47, 0x6b72, 0x6bc0, 0x6bbf, 0x6bd3, 0x6bfd, 0x6ea2, 0x6eaf, + 0x6ed3, 0x6eb6, 0x6ec2, 0x6e90, 0x6e9d, 0x6ec7, 0x6ec5, 0x6ea5, + 0x6e98, 0x6ebc, 0x6eba, 0x6eab, 0x6ed1, 0x6e96, 0x6e9c, 0x6ec4, + 0x6ed4, 0x6eaa, 0x6ea7, 0x6eb4, 0x714e, 0x7159, 0x7169, 0x7164, + 0x7149, 0x7167, 0x715c, 0x716c, 0x7166, 0x714c, 0x7165, 0x715e, + 0x7146, 0x7168, 0x7156, 0x723a, 0x7252, 0x7337, 0x7345, 0x733f, + 0x733e, 0x746f, 0x745a, 0x7455, 0x745f, 0x745e, 0x7441, 0x743f, + 0x7459, 0x745b, 0x745c, 0x7576, 0x7578, 0x7600, 0x75f0, 0x7601, + 0x75f2, 0x75f1, 0x75fa, 0x75ff, 0x75f4, 0x75f3, 0x76de, 0x76df, + 0x775b, 0x776b, 0x7766, 0x775e, 0x7763, + /* 0xb8 */ + 0x7779, 0x776a, 0x776c, 0x775c, 0x7765, 0x7768, 0x7762, 0x77ee, + 0x788e, 0x78b0, 0x7897, 0x7898, 0x788c, 0x7889, 0x787c, 0x7891, + 0x7893, 0x787f, 0x797a, 0x797f, 0x7981, 0x842c, 0x79bd, 0x7a1c, + 0x7a1a, 0x7a20, 0x7a14, 0x7a1f, 0x7a1e, 0x7a9f, 0x7aa0, 0x7b77, + 0x7bc0, 0x7b60, 0x7b6e, 0x7b67, 0x7cb1, 0x7cb3, 0x7cb5, 0x7d93, + 0x7d79, 0x7d91, 0x7d81, 0x7d8f, 0x7d5b, 0x7f6e, 0x7f69, 0x7f6a, + 0x7f72, 0x7fa9, 0x7fa8, 0x7fa4, 0x8056, 0x8058, 0x8086, 0x8084, + 0x8171, 0x8170, 0x8178, 0x8165, 0x816e, 0x8173, 0x816b, 0x8179, + 0x817a, 0x8166, 0x8205, 0x8247, 0x8482, 0x8477, 0x843d, 0x8431, + 0x8475, 0x8466, 0x846b, 0x8449, 0x846c, 0x845b, 0x843c, 0x8435, + 0x8461, 0x8463, 0x8469, 0x846d, 0x8446, 0x865e, 0x865c, 0x865f, + 0x86f9, 0x8713, 0x8708, 0x8707, 0x8700, 0x86fe, 0x86fb, 0x8702, + 0x8703, 0x8706, 0x870a, 0x8859, 0x88df, 0x88d4, 0x88d9, 0x88dc, + 0x88d8, 0x88dd, 0x88e1, 0x88ca, 0x88d5, 0x88d2, 0x899c, 0x89e3, + 0x8a6b, 0x8a72, 0x8a73, 0x8a66, 0x8a69, 0x8a70, 0x8a87, 0x8a7c, + 0x8a63, 0x8aa0, 0x8a71, 0x8a85, 0x8a6d, 0x8a62, 0x8a6e, 0x8a6c, + 0x8a79, 0x8a7b, 0x8a3e, 0x8a68, 0x8c62, 0x8c8a, 0x8c89, 0x8cca, + 0x8cc7, 0x8cc8, 0x8cc4, 0x8cb2, 0x8cc3, 0x8cc2, 0x8cc5, 0x8de1, + 0x8ddf, 0x8de8, 0x8def, 0x8df3, 0x8dfa, 0x8dea, 0x8de4, 0x8de6, + 0x8eb2, 0x8f03, 0x8f09, 0x8efe, 0x8f0a, + /* 0xb9 */ + 0x8f9f, 0x8fb2, 0x904b, 0x904a, 0x9053, 0x9042, 0x9054, 0x903c, + 0x9055, 0x9050, 0x9047, 0x904f, 0x904e, 0x904d, 0x9051, 0x903e, + 0x9041, 0x9112, 0x9117, 0x916c, 0x916a, 0x9169, 0x91c9, 0x9237, + 0x9257, 0x9238, 0x923d, 0x9240, 0x923e, 0x925b, 0x924b, 0x9264, + 0x9251, 0x9234, 0x9249, 0x924d, 0x9245, 0x9239, 0x923f, 0x925a, + 0x9598, 0x9698, 0x9694, 0x9695, 0x96cd, 0x96cb, 0x96c9, 0x96ca, + 0x96f7, 0x96fb, 0x96f9, 0x96f6, 0x9756, 0x9774, 0x9776, 0x9810, + 0x9811, 0x9813, 0x980a, 0x9812, 0x980c, 0x98fc, 0x98f4, 0x98fd, + 0x98fe, 0x99b3, 0x99b1, 0x99b4, 0x9ae1, 0x9ce9, 0x9e82, 0x9f0e, + 0x9f13, 0x9f20, 0x50e7, 0x50ee, 0x50e5, 0x50d6, 0x50ed, 0x50da, + 0x50d5, 0x50cf, 0x50d1, 0x50f1, 0x50ce, 0x50e9, 0x5162, 0x51f3, + 0x5283, 0x5282, 0x5331, 0x53ad, 0x55fe, 0x5600, 0x561b, 0x5617, + 0x55fd, 0x5614, 0x5606, 0x5609, 0x560d, 0x560e, 0x55f7, 0x5616, + 0x561f, 0x5608, 0x5610, 0x55f6, 0x5718, 0x5716, 0x5875, 0x587e, + 0x5883, 0x5893, 0x588a, 0x5879, 0x5885, 0x587d, 0x58fd, 0x5925, + 0x5922, 0x5924, 0x596a, 0x5969, 0x5ae1, 0x5ae6, 0x5ae9, 0x5ad7, + 0x5ad6, 0x5ad8, 0x5ae3, 0x5b75, 0x5bde, 0x5be7, 0x5be1, 0x5be5, + 0x5be6, 0x5be8, 0x5be2, 0x5be4, 0x5bdf, 0x5c0d, 0x5c62, 0x5d84, + 0x5d87, 0x5e5b, 0x5e63, 0x5e55, 0x5e57, 0x5e54, 0x5ed3, 0x5ed6, + 0x5f0a, 0x5f46, 0x5f70, 0x5fb9, 0x6147, + /* 0xba */ + 0x613f, 0x614b, 0x6177, 0x6162, 0x6163, 0x615f, 0x615a, 0x6158, + 0x6175, 0x622a, 0x6487, 0x6458, 0x6454, 0x64a4, 0x6478, 0x645f, + 0x647a, 0x6451, 0x6467, 0x6434, 0x646d, 0x647b, 0x6572, 0x65a1, + 0x65d7, 0x65d6, 0x66a2, 0x66a8, 0x669d, 0x699c, 0x69a8, 0x6995, + 0x69c1, 0x69ae, 0x69d3, 0x69cb, 0x699b, 0x69b7, 0x69bb, 0x69ab, + 0x69b4, 0x69d0, 0x69cd, 0x69ad, 0x69cc, 0x69a6, 0x69c3, 0x69a3, + 0x6b49, 0x6b4c, 0x6c33, 0x6f33, 0x6f14, 0x6efe, 0x6f13, 0x6ef4, + 0x6f29, 0x6f3e, 0x6f20, 0x6f2c, 0x6f0f, 0x6f02, 0x6f22, 0x6eff, + 0x6eef, 0x6f06, 0x6f31, 0x6f38, 0x6f32, 0x6f23, 0x6f15, 0x6f2b, + 0x6f2f, 0x6f88, 0x6f2a, 0x6eec, 0x6f01, 0x6ef2, 0x6ecc, 0x6ef7, + 0x7194, 0x7199, 0x717d, 0x718a, 0x7184, 0x7192, 0x723e, 0x7292, + 0x7296, 0x7344, 0x7350, 0x7464, 0x7463, 0x746a, 0x7470, 0x746d, + 0x7504, 0x7591, 0x7627, 0x760d, 0x760b, 0x7609, 0x7613, 0x76e1, + 0x76e3, 0x7784, 0x777d, 0x777f, 0x7761, 0x78c1, 0x789f, 0x78a7, + 0x78b3, 0x78a9, 0x78a3, 0x798e, 0x798f, 0x798d, 0x7a2e, 0x7a31, + 0x7aaa, 0x7aa9, 0x7aed, 0x7aef, 0x7ba1, 0x7b95, 0x7b8b, 0x7b75, + 0x7b97, 0x7b9d, 0x7b94, 0x7b8f, 0x7bb8, 0x7b87, 0x7b84, 0x7cb9, + 0x7cbd, 0x7cbe, 0x7dbb, 0x7db0, 0x7d9c, 0x7dbd, 0x7dbe, 0x7da0, + 0x7dca, 0x7db4, 0x7db2, 0x7db1, 0x7dba, 0x7da2, 0x7dbf, 0x7db5, + 0x7db8, 0x7dad, 0x7dd2, 0x7dc7, 0x7dac, + /* 0xbb */ + 0x7f70, 0x7fe0, 0x7fe1, 0x7fdf, 0x805e, 0x805a, 0x8087, 0x8150, + 0x8180, 0x818f, 0x8188, 0x818a, 0x817f, 0x8182, 0x81e7, 0x81fa, + 0x8207, 0x8214, 0x821e, 0x824b, 0x84c9, 0x84bf, 0x84c6, 0x84c4, + 0x8499, 0x849e, 0x84b2, 0x849c, 0x84cb, 0x84b8, 0x84c0, 0x84d3, + 0x8490, 0x84bc, 0x84d1, 0x84ca, 0x873f, 0x871c, 0x873b, 0x8722, + 0x8725, 0x8734, 0x8718, 0x8755, 0x8737, 0x8729, 0x88f3, 0x8902, + 0x88f4, 0x88f9, 0x88f8, 0x88fd, 0x88e8, 0x891a, 0x88ef, 0x8aa6, + 0x8a8c, 0x8a9e, 0x8aa3, 0x8a8d, 0x8aa1, 0x8a93, 0x8aa4, 0x8aaa, + 0x8aa5, 0x8aa8, 0x8a98, 0x8a91, 0x8a9a, 0x8aa7, 0x8c6a, 0x8c8d, + 0x8c8c, 0x8cd3, 0x8cd1, 0x8cd2, 0x8d6b, 0x8d99, 0x8d95, 0x8dfc, + 0x8f14, 0x8f12, 0x8f15, 0x8f13, 0x8fa3, 0x9060, 0x9058, 0x905c, + 0x9063, 0x9059, 0x905e, 0x9062, 0x905d, 0x905b, 0x9119, 0x9118, + 0x911e, 0x9175, 0x9178, 0x9177, 0x9174, 0x9278, 0x9280, 0x9285, + 0x9298, 0x9296, 0x927b, 0x9293, 0x929c, 0x92a8, 0x927c, 0x9291, + 0x95a1, 0x95a8, 0x95a9, 0x95a3, 0x95a5, 0x95a4, 0x9699, 0x969c, + 0x969b, 0x96cc, 0x96d2, 0x9700, 0x977c, 0x9785, 0x97f6, 0x9817, + 0x9818, 0x98af, 0x98b1, 0x9903, 0x9905, 0x990c, 0x9909, 0x99c1, + 0x9aaf, 0x9ab0, 0x9ae6, 0x9b41, 0x9b42, 0x9cf4, 0x9cf6, 0x9cf3, + 0x9ebc, 0x9f3b, 0x9f4a, 0x5104, 0x5100, 0x50fb, 0x50f5, 0x50f9, + 0x5102, 0x5108, 0x5109, 0x5105, 0x51dc, + /* 0xbc */ + 0x5287, 0x5288, 0x5289, 0x528d, 0x528a, 0x52f0, 0x53b2, 0x562e, + 0x563b, 0x5639, 0x5632, 0x563f, 0x5634, 0x5629, 0x5653, 0x564e, + 0x5657, 0x5674, 0x5636, 0x562f, 0x5630, 0x5880, 0x589f, 0x589e, + 0x58b3, 0x589c, 0x58ae, 0x58a9, 0x58a6, 0x596d, 0x5b09, 0x5afb, + 0x5b0b, 0x5af5, 0x5b0c, 0x5b08, 0x5bee, 0x5bec, 0x5be9, 0x5beb, + 0x5c64, 0x5c65, 0x5d9d, 0x5d94, 0x5e62, 0x5e5f, 0x5e61, 0x5ee2, + 0x5eda, 0x5edf, 0x5edd, 0x5ee3, 0x5ee0, 0x5f48, 0x5f71, 0x5fb7, + 0x5fb5, 0x6176, 0x6167, 0x616e, 0x615d, 0x6155, 0x6182, 0x617c, + 0x6170, 0x616b, 0x617e, 0x61a7, 0x6190, 0x61ab, 0x618e, 0x61ac, + 0x619a, 0x61a4, 0x6194, 0x61ae, 0x622e, 0x6469, 0x646f, 0x6479, + 0x649e, 0x64b2, 0x6488, 0x6490, 0x64b0, 0x64a5, 0x6493, 0x6495, + 0x64a9, 0x6492, 0x64ae, 0x64ad, 0x64ab, 0x649a, 0x64ac, 0x6499, + 0x64a2, 0x64b3, 0x6575, 0x6577, 0x6578, 0x66ae, 0x66ab, 0x66b4, + 0x66b1, 0x6a23, 0x6a1f, 0x69e8, 0x6a01, 0x6a1e, 0x6a19, 0x69fd, + 0x6a21, 0x6a13, 0x6a0a, 0x69f3, 0x6a02, 0x6a05, 0x69ed, 0x6a11, + 0x6b50, 0x6b4e, 0x6ba4, 0x6bc5, 0x6bc6, 0x6f3f, 0x6f7c, 0x6f84, + 0x6f51, 0x6f66, 0x6f54, 0x6f86, 0x6f6d, 0x6f5b, 0x6f78, 0x6f6e, + 0x6f8e, 0x6f7a, 0x6f70, 0x6f64, 0x6f97, 0x6f58, 0x6ed5, 0x6f6f, + 0x6f60, 0x6f5f, 0x719f, 0x71ac, 0x71b1, 0x71a8, 0x7256, 0x729b, + 0x734e, 0x7357, 0x7469, 0x748b, 0x7483, + /* 0xbd */ + 0x747e, 0x7480, 0x757f, 0x7620, 0x7629, 0x761f, 0x7624, 0x7626, + 0x7621, 0x7622, 0x769a, 0x76ba, 0x76e4, 0x778e, 0x7787, 0x778c, + 0x7791, 0x778b, 0x78cb, 0x78c5, 0x78ba, 0x78ca, 0x78be, 0x78d5, + 0x78bc, 0x78d0, 0x7a3f, 0x7a3c, 0x7a40, 0x7a3d, 0x7a37, 0x7a3b, + 0x7aaf, 0x7aae, 0x7bad, 0x7bb1, 0x7bc4, 0x7bb4, 0x7bc6, 0x7bc7, + 0x7bc1, 0x7ba0, 0x7bcc, 0x7cca, 0x7de0, 0x7df4, 0x7def, 0x7dfb, + 0x7dd8, 0x7dec, 0x7ddd, 0x7de8, 0x7de3, 0x7dda, 0x7dde, 0x7de9, + 0x7d9e, 0x7dd9, 0x7df2, 0x7df9, 0x7f75, 0x7f77, 0x7faf, 0x7fe9, + 0x8026, 0x819b, 0x819c, 0x819d, 0x81a0, 0x819a, 0x8198, 0x8517, + 0x853d, 0x851a, 0x84ee, 0x852c, 0x852d, 0x8513, 0x8511, 0x8523, + 0x8521, 0x8514, 0x84ec, 0x8525, 0x84ff, 0x8506, 0x8782, 0x8774, + 0x8776, 0x8760, 0x8766, 0x8778, 0x8768, 0x8759, 0x8757, 0x874c, + 0x8753, 0x885b, 0x885d, 0x8910, 0x8907, 0x8912, 0x8913, 0x8915, + 0x890a, 0x8abc, 0x8ad2, 0x8ac7, 0x8ac4, 0x8a95, 0x8acb, 0x8af8, + 0x8ab2, 0x8ac9, 0x8ac2, 0x8abf, 0x8ab0, 0x8ad6, 0x8acd, 0x8ab6, + 0x8ab9, 0x8adb, 0x8c4c, 0x8c4e, 0x8c6c, 0x8ce0, 0x8cde, 0x8ce6, + 0x8ce4, 0x8cec, 0x8ced, 0x8ce2, 0x8ce3, 0x8cdc, 0x8cea, 0x8ce1, + 0x8d6d, 0x8d9f, 0x8da3, 0x8e2b, 0x8e10, 0x8e1d, 0x8e22, 0x8e0f, + 0x8e29, 0x8e1f, 0x8e21, 0x8e1e, 0x8eba, 0x8f1d, 0x8f1b, 0x8f1f, + 0x8f29, 0x8f26, 0x8f2a, 0x8f1c, 0x8f1e, + /* 0xbe */ + 0x8f25, 0x9069, 0x906e, 0x9068, 0x906d, 0x9077, 0x9130, 0x912d, + 0x9127, 0x9131, 0x9187, 0x9189, 0x918b, 0x9183, 0x92c5, 0x92bb, + 0x92b7, 0x92ea, 0x92ac, 0x92e4, 0x92c1, 0x92b3, 0x92bc, 0x92d2, + 0x92c7, 0x92f0, 0x92b2, 0x95ad, 0x95b1, 0x9704, 0x9706, 0x9707, + 0x9709, 0x9760, 0x978d, 0x978b, 0x978f, 0x9821, 0x982b, 0x981c, + 0x98b3, 0x990a, 0x9913, 0x9912, 0x9918, 0x99dd, 0x99d0, 0x99df, + 0x99db, 0x99d1, 0x99d5, 0x99d2, 0x99d9, 0x9ab7, 0x9aee, 0x9aef, + 0x9b27, 0x9b45, 0x9b44, 0x9b77, 0x9b6f, 0x9d06, 0x9d09, 0x9d03, + 0x9ea9, 0x9ebe, 0x9ece, 0x58a8, 0x9f52, 0x5112, 0x5118, 0x5114, + 0x5110, 0x5115, 0x5180, 0x51aa, 0x51dd, 0x5291, 0x5293, 0x52f3, + 0x5659, 0x566b, 0x5679, 0x5669, 0x5664, 0x5678, 0x566a, 0x5668, + 0x5665, 0x5671, 0x566f, 0x566c, 0x5662, 0x5676, 0x58c1, 0x58be, + 0x58c7, 0x58c5, 0x596e, 0x5b1d, 0x5b34, 0x5b78, 0x5bf0, 0x5c0e, + 0x5f4a, 0x61b2, 0x6191, 0x61a9, 0x618a, 0x61cd, 0x61b6, 0x61be, + 0x61ca, 0x61c8, 0x6230, 0x64c5, 0x64c1, 0x64cb, 0x64bb, 0x64bc, + 0x64da, 0x64c4, 0x64c7, 0x64c2, 0x64cd, 0x64bf, 0x64d2, 0x64d4, + 0x64be, 0x6574, 0x66c6, 0x66c9, 0x66b9, 0x66c4, 0x66c7, 0x66b8, + 0x6a3d, 0x6a38, 0x6a3a, 0x6a59, 0x6a6b, 0x6a58, 0x6a39, 0x6a44, + 0x6a62, 0x6a61, 0x6a4b, 0x6a47, 0x6a35, 0x6a5f, 0x6a48, 0x6b59, + 0x6b77, 0x6c05, 0x6fc2, 0x6fb1, 0x6fa1, + /* 0xbf */ + 0x6fc3, 0x6fa4, 0x6fc1, 0x6fa7, 0x6fb3, 0x6fc0, 0x6fb9, 0x6fb6, + 0x6fa6, 0x6fa0, 0x6fb4, 0x71be, 0x71c9, 0x71d0, 0x71d2, 0x71c8, + 0x71d5, 0x71b9, 0x71ce, 0x71d9, 0x71dc, 0x71c3, 0x71c4, 0x7368, + 0x749c, 0x74a3, 0x7498, 0x749f, 0x749e, 0x74e2, 0x750c, 0x750d, + 0x7634, 0x7638, 0x763a, 0x76e7, 0x76e5, 0x77a0, 0x779e, 0x779f, + 0x77a5, 0x78e8, 0x78da, 0x78ec, 0x78e7, 0x79a6, 0x7a4d, 0x7a4e, + 0x7a46, 0x7a4c, 0x7a4b, 0x7aba, 0x7bd9, 0x7c11, 0x7bc9, 0x7be4, + 0x7bdb, 0x7be1, 0x7be9, 0x7be6, 0x7cd5, 0x7cd6, 0x7e0a, 0x7e11, + 0x7e08, 0x7e1b, 0x7e23, 0x7e1e, 0x7e1d, 0x7e09, 0x7e10, 0x7f79, + 0x7fb2, 0x7ff0, 0x7ff1, 0x7fee, 0x8028, 0x81b3, 0x81a9, 0x81a8, + 0x81fb, 0x8208, 0x8258, 0x8259, 0x854a, 0x8559, 0x8548, 0x8568, + 0x8569, 0x8543, 0x8549, 0x856d, 0x856a, 0x855e, 0x8783, 0x879f, + 0x879e, 0x87a2, 0x878d, 0x8861, 0x892a, 0x8932, 0x8925, 0x892b, + 0x8921, 0x89aa, 0x89a6, 0x8ae6, 0x8afa, 0x8aeb, 0x8af1, 0x8b00, + 0x8adc, 0x8ae7, 0x8aee, 0x8afe, 0x8b01, 0x8b02, 0x8af7, 0x8aed, + 0x8af3, 0x8af6, 0x8afc, 0x8c6b, 0x8c6d, 0x8c93, 0x8cf4, 0x8e44, + 0x8e31, 0x8e34, 0x8e42, 0x8e39, 0x8e35, 0x8f3b, 0x8f2f, 0x8f38, + 0x8f33, 0x8fa8, 0x8fa6, 0x9075, 0x9074, 0x9078, 0x9072, 0x907c, + 0x907a, 0x9134, 0x9192, 0x9320, 0x9336, 0x92f8, 0x9333, 0x932f, + 0x9322, 0x92fc, 0x932b, 0x9304, 0x931a, + /* 0xc0 */ + 0x9310, 0x9326, 0x9321, 0x9315, 0x932e, 0x9319, 0x95bb, 0x96a7, + 0x96a8, 0x96aa, 0x96d5, 0x970e, 0x9711, 0x9716, 0x970d, 0x9713, + 0x970f, 0x975b, 0x975c, 0x9766, 0x9798, 0x9830, 0x9838, 0x983b, + 0x9837, 0x982d, 0x9839, 0x9824, 0x9910, 0x9928, 0x991e, 0x991b, + 0x9921, 0x991a, 0x99ed, 0x99e2, 0x99f1, 0x9ab8, 0x9abc, 0x9afb, + 0x9aed, 0x9b28, 0x9b91, 0x9d15, 0x9d23, 0x9d26, 0x9d28, 0x9d12, + 0x9d1b, 0x9ed8, 0x9ed4, 0x9f8d, 0x9f9c, 0x512a, 0x511f, 0x5121, + 0x5132, 0x52f5, 0x568e, 0x5680, 0x5690, 0x5685, 0x5687, 0x568f, + 0x58d5, 0x58d3, 0x58d1, 0x58ce, 0x5b30, 0x5b2a, 0x5b24, 0x5b7a, + 0x5c37, 0x5c68, 0x5dbc, 0x5dba, 0x5dbd, 0x5db8, 0x5e6b, 0x5f4c, + 0x5fbd, 0x61c9, 0x61c2, 0x61c7, 0x61e6, 0x61cb, 0x6232, 0x6234, + 0x64ce, 0x64ca, 0x64d8, 0x64e0, 0x64f0, 0x64e6, 0x64ec, 0x64f1, + 0x64e2, 0x64ed, 0x6582, 0x6583, 0x66d9, 0x66d6, 0x6a80, 0x6a94, + 0x6a84, 0x6aa2, 0x6a9c, 0x6adb, 0x6aa3, 0x6a7e, 0x6a97, 0x6a90, + 0x6aa0, 0x6b5c, 0x6bae, 0x6bda, 0x6c08, 0x6fd8, 0x6ff1, 0x6fdf, + 0x6fe0, 0x6fdb, 0x6fe4, 0x6feb, 0x6fef, 0x6f80, 0x6fec, 0x6fe1, + 0x6fe9, 0x6fd5, 0x6fee, 0x6ff0, 0x71e7, 0x71df, 0x71ee, 0x71e6, + 0x71e5, 0x71ed, 0x71ec, 0x71f4, 0x71e0, 0x7235, 0x7246, 0x7370, + 0x7372, 0x74a9, 0x74b0, 0x74a6, 0x74a8, 0x7646, 0x7642, 0x764c, + 0x76ea, 0x77b3, 0x77aa, 0x77b0, 0x77ac, + /* 0xc1 */ + 0x77a7, 0x77ad, 0x77ef, 0x78f7, 0x78fa, 0x78f4, 0x78ef, 0x7901, + 0x79a7, 0x79aa, 0x7a57, 0x7abf, 0x7c07, 0x7c0d, 0x7bfe, 0x7bf7, + 0x7c0c, 0x7be0, 0x7ce0, 0x7cdc, 0x7cde, 0x7ce2, 0x7cdf, 0x7cd9, + 0x7cdd, 0x7e2e, 0x7e3e, 0x7e46, 0x7e37, 0x7e32, 0x7e43, 0x7e2b, + 0x7e3d, 0x7e31, 0x7e45, 0x7e41, 0x7e34, 0x7e39, 0x7e48, 0x7e35, + 0x7e3f, 0x7e2f, 0x7f44, 0x7ff3, 0x7ffc, 0x8071, 0x8072, 0x8070, + 0x806f, 0x8073, 0x81c6, 0x81c3, 0x81ba, 0x81c2, 0x81c0, 0x81bf, + 0x81bd, 0x81c9, 0x81be, 0x81e8, 0x8209, 0x8271, 0x85aa, 0x8584, + 0x857e, 0x859c, 0x8591, 0x8594, 0x85af, 0x859b, 0x8587, 0x85a8, + 0x858a, 0x8667, 0x87c0, 0x87d1, 0x87b3, 0x87d2, 0x87c6, 0x87ab, + 0x87bb, 0x87ba, 0x87c8, 0x87cb, 0x893b, 0x8936, 0x8944, 0x8938, + 0x893d, 0x89ac, 0x8b0e, 0x8b17, 0x8b19, 0x8b1b, 0x8b0a, 0x8b20, + 0x8b1d, 0x8b04, 0x8b10, 0x8c41, 0x8c3f, 0x8c73, 0x8cfa, 0x8cfd, + 0x8cfc, 0x8cf8, 0x8cfb, 0x8da8, 0x8e49, 0x8e4b, 0x8e48, 0x8e4a, + 0x8f44, 0x8f3e, 0x8f42, 0x8f45, 0x8f3f, 0x907f, 0x907d, 0x9084, + 0x9081, 0x9082, 0x9080, 0x9139, 0x91a3, 0x919e, 0x919c, 0x934d, + 0x9382, 0x9328, 0x9375, 0x934a, 0x9365, 0x934b, 0x9318, 0x937e, + 0x936c, 0x935b, 0x9370, 0x935a, 0x9354, 0x95ca, 0x95cb, 0x95cc, + 0x95c8, 0x95c6, 0x96b1, 0x96b8, 0x96d6, 0x971c, 0x971e, 0x97a0, + 0x97d3, 0x9846, 0x98b6, 0x9935, 0x9a01, + /* 0xc2 */ + 0x99ff, 0x9bae, 0x9bab, 0x9baa, 0x9bad, 0x9d3b, 0x9d3f, 0x9e8b, + 0x9ecf, 0x9ede, 0x9edc, 0x9edd, 0x9edb, 0x9f3e, 0x9f4b, 0x53e2, + 0x5695, 0x56ae, 0x58d9, 0x58d8, 0x5b38, 0x5f5d, 0x61e3, 0x6233, + 0x64f4, 0x64f2, 0x64fe, 0x6506, 0x64fa, 0x64fb, 0x64f7, 0x65b7, + 0x66dc, 0x6726, 0x6ab3, 0x6aac, 0x6ac3, 0x6abb, 0x6ab8, 0x6ac2, + 0x6aae, 0x6aaf, 0x6b5f, 0x6b78, 0x6baf, 0x7009, 0x700b, 0x6ffe, + 0x7006, 0x6ffa, 0x7011, 0x700f, 0x71fb, 0x71fc, 0x71fe, 0x71f8, + 0x7377, 0x7375, 0x74a7, 0x74bf, 0x7515, 0x7656, 0x7658, 0x7652, + 0x77bd, 0x77bf, 0x77bb, 0x77bc, 0x790e, 0x79ae, 0x7a61, 0x7a62, + 0x7a60, 0x7ac4, 0x7ac5, 0x7c2b, 0x7c27, 0x7c2a, 0x7c1e, 0x7c23, + 0x7c21, 0x7ce7, 0x7e54, 0x7e55, 0x7e5e, 0x7e5a, 0x7e61, 0x7e52, + 0x7e59, 0x7f48, 0x7ff9, 0x7ffb, 0x8077, 0x8076, 0x81cd, 0x81cf, + 0x820a, 0x85cf, 0x85a9, 0x85cd, 0x85d0, 0x85c9, 0x85b0, 0x85ba, + 0x85b9, 0x85a6, 0x87ef, 0x87ec, 0x87f2, 0x87e0, 0x8986, 0x89b2, + 0x89f4, 0x8b28, 0x8b39, 0x8b2c, 0x8b2b, 0x8c50, 0x8d05, 0x8e59, + 0x8e63, 0x8e66, 0x8e64, 0x8e5f, 0x8e55, 0x8ec0, 0x8f49, 0x8f4d, + 0x9087, 0x9083, 0x9088, 0x91ab, 0x91ac, 0x91d0, 0x9394, 0x938a, + 0x9396, 0x93a2, 0x93b3, 0x93ae, 0x93ac, 0x93b0, 0x9398, 0x939a, + 0x9397, 0x95d4, 0x95d6, 0x95d0, 0x95d5, 0x96e2, 0x96dc, 0x96d9, + 0x96db, 0x96de, 0x9724, 0x97a3, 0x97a6, + /* 0xc3 */ + 0x97ad, 0x97f9, 0x984d, 0x984f, 0x984c, 0x984e, 0x9853, 0x98ba, + 0x993e, 0x993f, 0x993d, 0x992e, 0x99a5, 0x9a0e, 0x9ac1, 0x9b03, + 0x9b06, 0x9b4f, 0x9b4e, 0x9b4d, 0x9bca, 0x9bc9, 0x9bfd, 0x9bc8, + 0x9bc0, 0x9d51, 0x9d5d, 0x9d60, 0x9ee0, 0x9f15, 0x9f2c, 0x5133, + 0x56a5, 0x58de, 0x58df, 0x58e2, 0x5bf5, 0x9f90, 0x5eec, 0x61f2, + 0x61f7, 0x61f6, 0x61f5, 0x6500, 0x650f, 0x66e0, 0x66dd, 0x6ae5, + 0x6add, 0x6ada, 0x6ad3, 0x701b, 0x701f, 0x7028, 0x701a, 0x701d, + 0x7015, 0x7018, 0x7206, 0x720d, 0x7258, 0x72a2, 0x7378, 0x737a, + 0x74bd, 0x74ca, 0x74e3, 0x7587, 0x7586, 0x765f, 0x7661, 0x77c7, + 0x7919, 0x79b1, 0x7a6b, 0x7a69, 0x7c3e, 0x7c3f, 0x7c38, 0x7c3d, + 0x7c37, 0x7c40, 0x7e6b, 0x7e6d, 0x7e79, 0x7e69, 0x7e6a, 0x7f85, + 0x7e73, 0x7fb6, 0x7fb9, 0x7fb8, 0x81d8, 0x85e9, 0x85dd, 0x85ea, + 0x85d5, 0x85e4, 0x85e5, 0x85f7, 0x87fb, 0x8805, 0x880d, 0x87f9, + 0x87fe, 0x8960, 0x895f, 0x8956, 0x895e, 0x8b41, 0x8b5c, 0x8b58, + 0x8b49, 0x8b5a, 0x8b4e, 0x8b4f, 0x8b46, 0x8b59, 0x8d08, 0x8d0a, + 0x8e7c, 0x8e72, 0x8e87, 0x8e76, 0x8e6c, 0x8e7a, 0x8e74, 0x8f54, + 0x8f4e, 0x8fad, 0x908a, 0x908b, 0x91b1, 0x91ae, 0x93e1, 0x93d1, + 0x93df, 0x93c3, 0x93c8, 0x93dc, 0x93dd, 0x93d6, 0x93e2, 0x93cd, + 0x93d8, 0x93e4, 0x93d7, 0x93e8, 0x95dc, 0x96b4, 0x96e3, 0x972a, + 0x9727, 0x9761, 0x97dc, 0x97fb, 0x985e, + /* 0xc4 */ + 0x9858, 0x985b, 0x98bc, 0x9945, 0x9949, 0x9a16, 0x9a19, 0x9b0d, + 0x9be8, 0x9be7, 0x9bd6, 0x9bdb, 0x9d89, 0x9d61, 0x9d72, 0x9d6a, + 0x9d6c, 0x9e92, 0x9e97, 0x9e93, 0x9eb4, 0x52f8, 0x56a8, 0x56b7, + 0x56b6, 0x56b4, 0x56bc, 0x58e4, 0x5b40, 0x5b43, 0x5b7d, 0x5bf6, + 0x5dc9, 0x61f8, 0x61fa, 0x6518, 0x6514, 0x6519, 0x66e6, 0x6727, + 0x6aec, 0x703e, 0x7030, 0x7032, 0x7210, 0x737b, 0x74cf, 0x7662, + 0x7665, 0x7926, 0x792a, 0x792c, 0x792b, 0x7ac7, 0x7af6, 0x7c4c, + 0x7c43, 0x7c4d, 0x7cef, 0x7cf0, 0x8fae, 0x7e7d, 0x7e7c, 0x7e82, + 0x7f4c, 0x8000, 0x81da, 0x8266, 0x85fb, 0x85f9, 0x8611, 0x85fa, + 0x8606, 0x860b, 0x8607, 0x860a, 0x8814, 0x8815, 0x8964, 0x89ba, + 0x89f8, 0x8b70, 0x8b6c, 0x8b66, 0x8b6f, 0x8b5f, 0x8b6b, 0x8d0f, + 0x8d0d, 0x8e89, 0x8e81, 0x8e85, 0x8e82, 0x91b4, 0x91cb, 0x9418, + 0x9403, 0x93fd, 0x95e1, 0x9730, 0x98c4, 0x9952, 0x9951, 0x99a8, + 0x9a2b, 0x9a30, 0x9a37, 0x9a35, 0x9c13, 0x9c0d, 0x9e79, 0x9eb5, + 0x9ee8, 0x9f2f, 0x9f5f, 0x9f63, 0x9f61, 0x5137, 0x5138, 0x56c1, + 0x56c0, 0x56c2, 0x5914, 0x5c6c, 0x5dcd, 0x61fc, 0x61fe, 0x651d, + 0x651c, 0x6595, 0x66e9, 0x6afb, 0x6b04, 0x6afa, 0x6bb2, 0x704c, + 0x721b, 0x72a7, 0x74d6, 0x74d4, 0x7669, 0x77d3, 0x7c50, 0x7e8f, + 0x7e8c, 0x7fbc, 0x8617, 0x862d, 0x861a, 0x8823, 0x8822, 0x8821, + 0x881f, 0x896a, 0x896c, 0x89bd, 0x8b74, + /* 0xc5 */ + 0x8b77, 0x8b7d, 0x8d13, 0x8e8a, 0x8e8d, 0x8e8b, 0x8f5f, 0x8faf, + 0x91ba, 0x942e, 0x9433, 0x9435, 0x943a, 0x9438, 0x9432, 0x942b, + 0x95e2, 0x9738, 0x9739, 0x9732, 0x97ff, 0x9867, 0x9865, 0x9957, + 0x9a45, 0x9a43, 0x9a40, 0x9a3e, 0x9acf, 0x9b54, 0x9b51, 0x9c2d, + 0x9c25, 0x9daf, 0x9db4, 0x9dc2, 0x9db8, 0x9e9d, 0x9eef, 0x9f19, + 0x9f5c, 0x9f66, 0x9f67, 0x513c, 0x513b, 0x56c8, 0x56ca, 0x56c9, + 0x5b7f, 0x5dd4, 0x5dd2, 0x5f4e, 0x61ff, 0x6524, 0x6b0a, 0x6b61, + 0x7051, 0x7058, 0x7380, 0x74e4, 0x758a, 0x766e, 0x766c, 0x79b3, + 0x7c60, 0x7c5f, 0x807e, 0x807d, 0x81df, 0x8972, 0x896f, 0x89fc, + 0x8b80, 0x8d16, 0x8d17, 0x8e91, 0x8e93, 0x8f61, 0x9148, 0x9444, + 0x9451, 0x9452, 0x973d, 0x973e, 0x97c3, 0x97c1, 0x986b, 0x9955, + 0x9a55, 0x9a4d, 0x9ad2, 0x9b1a, 0x9c49, 0x9c31, 0x9c3e, 0x9c3b, + 0x9dd3, 0x9dd7, 0x9f34, 0x9f6c, 0x9f6a, 0x9f94, 0x56cc, 0x5dd6, + 0x6200, 0x6523, 0x652b, 0x652a, 0x66ec, 0x6b10, 0x74da, 0x7aca, + 0x7c64, 0x7c63, 0x7c65, 0x7e93, 0x7e96, 0x7e94, 0x81e2, 0x8638, + 0x863f, 0x8831, 0x8b8a, 0x9090, 0x908f, 0x9463, 0x9460, 0x9464, + 0x9768, 0x986f, 0x995c, 0x9a5a, 0x9a5b, 0x9a57, 0x9ad3, 0x9ad4, + 0x9ad1, 0x9c54, 0x9c57, 0x9c56, 0x9de5, 0x9e9f, 0x9ef4, 0x56d1, + 0x58e9, 0x652c, 0x705e, 0x7671, 0x7672, 0x77d7, 0x7f50, 0x7f88, + 0x8836, 0x8839, 0x8862, 0x8b93, 0x8b92, + /* 0xc6 */ + 0x8b96, 0x8277, 0x8d1b, 0x91c0, 0x946a, 0x9742, 0x9748, 0x9744, + 0x97c6, 0x9870, 0x9a5f, 0x9b22, 0x9b58, 0x9c5f, 0x9df9, 0x9dfa, + 0x9e7c, 0x9e7d, 0x9f07, 0x9f77, 0x9f72, 0x5ef3, 0x6b16, 0x7063, + 0x7c6c, 0x7c6e, 0x883b, 0x89c0, 0x8ea1, 0x91c1, 0x9472, 0x9470, + 0x9871, 0x995e, 0x9ad6, 0x9b23, 0x9ecc, 0x7064, 0x77da, 0x8b9a, + 0x9477, 0x97c9, 0x9a62, 0x9a65, 0x7e9c, 0x8b9c, 0x8eaa, 0x91c5, + 0x947d, 0x947e, 0x947c, 0x9c77, 0x9c78, 0x9ef7, 0x8c54, 0x947f, + 0x9e1a, 0x7228, 0x9a6a, 0x9b31, 0x9e1b, 0x9e1e, 0x7c72, 0x30fe, + 0x309d, 0x309e, 0x3005, 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, + 0x3046, 0x3047, 0x3048, 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, + 0x304e, 0x304f, 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, + 0x3056, 0x3057, 0x3058, 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, + 0x305e, 0x305f, 0x3060, 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, + 0x3066, 0x3067, 0x3068, 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, + 0x306e, 0x306f, 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, + 0x3076, 0x3077, 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, + 0x307e, 0x307f, 0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, + 0x3086, 0x3087, 0x3088, 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, + 0x308e, 0x308f, 0x3090, 0x3091, 0x3092, 0x3093, 0x30a1, 0x30a2, + 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, + /* 0xc7 */ + 0x30a8, 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, + 0x30b0, 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, + 0x30b8, 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, + 0x30c0, 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, + 0x30c8, 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, + 0x30d0, 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, + 0x30d8, 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, + 0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, + 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, + 0x30f0, 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0x0414, + 0x0415, 0x0401, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, + 0x041c, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, + 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x0430, 0x0431, + 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436, 0x0437, 0x0438, + 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x0440, + 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, + 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, 0x2460, + 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, + 0x2469, 0x2474, 0x2475, 0x2476, 0x2477, 0x2478, 0x2479, 0x247a, + 0x247b, 0x247c, 0x247d, +}; +static const unsigned short big5_2uni_pagec9[7652] = { + /* 0xc9 */ + 0x4e42, 0x4e5c, 0x51f5, 0x531a, 0x5382, 0x4e07, 0x4e0c, 0x4e47, + 0x4e8d, 0x56d7, 0xfa0c, 0x5c6e, 0x5f73, 0x4e0f, 0x5187, 0x4e0e, + 0x4e2e, 0x4e93, 0x4ec2, 0x4ec9, 0x4ec8, 0x5198, 0x52fc, 0x536c, + 0x53b9, 0x5720, 0x5903, 0x592c, 0x5c10, 0x5dff, 0x65e1, 0x6bb3, + 0x6bcc, 0x6c14, 0x723f, 0x4e31, 0x4e3c, 0x4ee8, 0x4edc, 0x4ee9, + 0x4ee1, 0x4edd, 0x4eda, 0x520c, 0x531c, 0x534c, 0x5722, 0x5723, + 0x5917, 0x592f, 0x5b81, 0x5b84, 0x5c12, 0x5c3b, 0x5c74, 0x5c73, + 0x5e04, 0x5e80, 0x5e82, 0x5fc9, 0x6209, 0x6250, 0x6c15, 0x6c36, + 0x6c43, 0x6c3f, 0x6c3b, 0x72ae, 0x72b0, 0x738a, 0x79b8, 0x808a, + 0x961e, 0x4f0e, 0x4f18, 0x4f2c, 0x4ef5, 0x4f14, 0x4ef1, 0x4f00, + 0x4ef7, 0x4f08, 0x4f1d, 0x4f02, 0x4f05, 0x4f22, 0x4f13, 0x4f04, + 0x4ef4, 0x4f12, 0x51b1, 0x5213, 0x5209, 0x5210, 0x52a6, 0x5322, + 0x531f, 0x534d, 0x538a, 0x5407, 0x56e1, 0x56df, 0x572e, 0x572a, + 0x5734, 0x593c, 0x5980, 0x597c, 0x5985, 0x597b, 0x597e, 0x5977, + 0x597f, 0x5b56, 0x5c15, 0x5c25, 0x5c7c, 0x5c7a, 0x5c7b, 0x5c7e, + 0x5ddf, 0x5e75, 0x5e84, 0x5f02, 0x5f1a, 0x5f74, 0x5fd5, 0x5fd4, + 0x5fcf, 0x625c, 0x625e, 0x6264, 0x6261, 0x6266, 0x6262, 0x6259, + 0x6260, 0x625a, 0x6265, 0x65ef, 0x65ee, 0x673e, 0x6739, 0x6738, + 0x673b, 0x673a, 0x673f, 0x673c, 0x6733, 0x6c18, 0x6c46, 0x6c52, + 0x6c5c, 0x6c4f, 0x6c4a, 0x6c54, 0x6c4b, + /* 0xca */ + 0x6c4c, 0x7071, 0x725e, 0x72b4, 0x72b5, 0x738e, 0x752a, 0x767f, + 0x7a75, 0x7f51, 0x8278, 0x827c, 0x8280, 0x827d, 0x827f, 0x864d, + 0x897e, 0x9099, 0x9097, 0x9098, 0x909b, 0x9094, 0x9622, 0x9624, + 0x9620, 0x9623, 0x4f56, 0x4f3b, 0x4f62, 0x4f49, 0x4f53, 0x4f64, + 0x4f3e, 0x4f67, 0x4f52, 0x4f5f, 0x4f41, 0x4f58, 0x4f2d, 0x4f33, + 0x4f3f, 0x4f61, 0x518f, 0x51b9, 0x521c, 0x521e, 0x5221, 0x52ad, + 0x52ae, 0x5309, 0x5363, 0x5372, 0x538e, 0x538f, 0x5430, 0x5437, + 0x542a, 0x5454, 0x5445, 0x5419, 0x541c, 0x5425, 0x5418, 0x543d, + 0x544f, 0x5441, 0x5428, 0x5424, 0x5447, 0x56ee, 0x56e7, 0x56e5, + 0x5741, 0x5745, 0x574c, 0x5749, 0x574b, 0x5752, 0x5906, 0x5940, + 0x59a6, 0x5998, 0x59a0, 0x5997, 0x598e, 0x59a2, 0x5990, 0x598f, + 0x59a7, 0x59a1, 0x5b8e, 0x5b92, 0x5c28, 0x5c2a, 0x5c8d, 0x5c8f, + 0x5c88, 0x5c8b, 0x5c89, 0x5c92, 0x5c8a, 0x5c86, 0x5c93, 0x5c95, + 0x5de0, 0x5e0a, 0x5e0e, 0x5e8b, 0x5e89, 0x5e8c, 0x5e88, 0x5e8d, + 0x5f05, 0x5f1d, 0x5f78, 0x5f76, 0x5fd2, 0x5fd1, 0x5fd0, 0x5fed, + 0x5fe8, 0x5fee, 0x5ff3, 0x5fe1, 0x5fe4, 0x5fe3, 0x5ffa, 0x5fef, + 0x5ff7, 0x5ffb, 0x6000, 0x5ff4, 0x623a, 0x6283, 0x628c, 0x628e, + 0x628f, 0x6294, 0x6287, 0x6271, 0x627b, 0x627a, 0x6270, 0x6281, + 0x6288, 0x6277, 0x627d, 0x6272, 0x6274, 0x6537, 0x65f0, 0x65f4, + 0x65f3, 0x65f2, 0x65f5, 0x6745, 0x6747, + /* 0xcb */ + 0x6759, 0x6755, 0x674c, 0x6748, 0x675d, 0x674d, 0x675a, 0x674b, + 0x6bd0, 0x6c19, 0x6c1a, 0x6c78, 0x6c67, 0x6c6b, 0x6c84, 0x6c8b, + 0x6c8f, 0x6c71, 0x6c6f, 0x6c69, 0x6c9a, 0x6c6d, 0x6c87, 0x6c95, + 0x6c9c, 0x6c66, 0x6c73, 0x6c65, 0x6c7b, 0x6c8e, 0x7074, 0x707a, + 0x7263, 0x72bf, 0x72bd, 0x72c3, 0x72c6, 0x72c1, 0x72ba, 0x72c5, + 0x7395, 0x7397, 0x7393, 0x7394, 0x7392, 0x753a, 0x7539, 0x7594, + 0x7595, 0x7681, 0x793d, 0x8034, 0x8095, 0x8099, 0x8090, 0x8092, + 0x809c, 0x8290, 0x828f, 0x8285, 0x828e, 0x8291, 0x8293, 0x828a, + 0x8283, 0x8284, 0x8c78, 0x8fc9, 0x8fbf, 0x909f, 0x90a1, 0x90a5, + 0x909e, 0x90a7, 0x90a0, 0x9630, 0x9628, 0x962f, 0x962d, 0x4e33, + 0x4f98, 0x4f7c, 0x4f85, 0x4f7d, 0x4f80, 0x4f87, 0x4f76, 0x4f74, + 0x4f89, 0x4f84, 0x4f77, 0x4f4c, 0x4f97, 0x4f6a, 0x4f9a, 0x4f79, + 0x4f81, 0x4f78, 0x4f90, 0x4f9c, 0x4f94, 0x4f9e, 0x4f92, 0x4f82, + 0x4f95, 0x4f6b, 0x4f6e, 0x519e, 0x51bc, 0x51be, 0x5235, 0x5232, + 0x5233, 0x5246, 0x5231, 0x52bc, 0x530a, 0x530b, 0x533c, 0x5392, + 0x5394, 0x5487, 0x547f, 0x5481, 0x5491, 0x5482, 0x5488, 0x546b, + 0x547a, 0x547e, 0x5465, 0x546c, 0x5474, 0x5466, 0x548d, 0x546f, + 0x5461, 0x5460, 0x5498, 0x5463, 0x5467, 0x5464, 0x56f7, 0x56f9, + 0x576f, 0x5772, 0x576d, 0x576b, 0x5771, 0x5770, 0x5776, 0x5780, + 0x5775, 0x577b, 0x5773, 0x5774, 0x5762, + /* 0xcc */ + 0x5768, 0x577d, 0x590c, 0x5945, 0x59b5, 0x59ba, 0x59cf, 0x59ce, + 0x59b2, 0x59cc, 0x59c1, 0x59b6, 0x59bc, 0x59c3, 0x59d6, 0x59b1, + 0x59bd, 0x59c0, 0x59c8, 0x59b4, 0x59c7, 0x5b62, 0x5b65, 0x5b93, + 0x5b95, 0x5c44, 0x5c47, 0x5cae, 0x5ca4, 0x5ca0, 0x5cb5, 0x5caf, + 0x5ca8, 0x5cac, 0x5c9f, 0x5ca3, 0x5cad, 0x5ca2, 0x5caa, 0x5ca7, + 0x5c9d, 0x5ca5, 0x5cb6, 0x5cb0, 0x5ca6, 0x5e17, 0x5e14, 0x5e19, + 0x5f28, 0x5f22, 0x5f23, 0x5f24, 0x5f54, 0x5f82, 0x5f7e, 0x5f7d, + 0x5fde, 0x5fe5, 0x602d, 0x6026, 0x6019, 0x6032, 0x600b, 0x6034, + 0x600a, 0x6017, 0x6033, 0x601a, 0x601e, 0x602c, 0x6022, 0x600d, + 0x6010, 0x602e, 0x6013, 0x6011, 0x600c, 0x6009, 0x601c, 0x6214, + 0x623d, 0x62ad, 0x62b4, 0x62d1, 0x62be, 0x62aa, 0x62b6, 0x62ca, + 0x62ae, 0x62b3, 0x62af, 0x62bb, 0x62a9, 0x62b0, 0x62b8, 0x653d, + 0x65a8, 0x65bb, 0x6609, 0x65fc, 0x6604, 0x6612, 0x6608, 0x65fb, + 0x6603, 0x660b, 0x660d, 0x6605, 0x65fd, 0x6611, 0x6610, 0x66f6, + 0x670a, 0x6785, 0x676c, 0x678e, 0x6792, 0x6776, 0x677b, 0x6798, + 0x6786, 0x6784, 0x6774, 0x678d, 0x678c, 0x677a, 0x679f, 0x6791, + 0x6799, 0x6783, 0x677d, 0x6781, 0x6778, 0x6779, 0x6794, 0x6b25, + 0x6b80, 0x6b7e, 0x6bde, 0x6c1d, 0x6c93, 0x6cec, 0x6ceb, 0x6cee, + 0x6cd9, 0x6cb6, 0x6cd4, 0x6cad, 0x6ce7, 0x6cb7, 0x6cd0, 0x6cc2, + 0x6cba, 0x6cc3, 0x6cc6, 0x6ced, 0x6cf2, + /* 0xcd */ + 0x6cd2, 0x6cdd, 0x6cb4, 0x6c8a, 0x6c9d, 0x6c80, 0x6cde, 0x6cc0, + 0x6d30, 0x6ccd, 0x6cc7, 0x6cb0, 0x6cf9, 0x6ccf, 0x6ce9, 0x6cd1, + 0x7094, 0x7098, 0x7085, 0x7093, 0x7086, 0x7084, 0x7091, 0x7096, + 0x7082, 0x709a, 0x7083, 0x726a, 0x72d6, 0x72cb, 0x72d8, 0x72c9, + 0x72dc, 0x72d2, 0x72d4, 0x72da, 0x72cc, 0x72d1, 0x73a4, 0x73a1, + 0x73ad, 0x73a6, 0x73a2, 0x73a0, 0x73ac, 0x739d, 0x74dd, 0x74e8, + 0x753f, 0x7540, 0x753e, 0x758c, 0x7598, 0x76af, 0x76f3, 0x76f1, + 0x76f0, 0x76f5, 0x77f8, 0x77fc, 0x77f9, 0x77fb, 0x77fa, 0x77f7, + 0x7942, 0x793f, 0x79c5, 0x7a78, 0x7a7b, 0x7afb, 0x7c75, 0x7cfd, + 0x8035, 0x808f, 0x80ae, 0x80a3, 0x80b8, 0x80b5, 0x80ad, 0x8220, + 0x82a0, 0x82c0, 0x82ab, 0x829a, 0x8298, 0x829b, 0x82b5, 0x82a7, + 0x82ae, 0x82bc, 0x829e, 0x82ba, 0x82b4, 0x82a8, 0x82a1, 0x82a9, + 0x82c2, 0x82a4, 0x82c3, 0x82b6, 0x82a2, 0x8670, 0x866f, 0x866d, + 0x866e, 0x8c56, 0x8fd2, 0x8fcb, 0x8fd3, 0x8fcd, 0x8fd6, 0x8fd5, + 0x8fd7, 0x90b2, 0x90b4, 0x90af, 0x90b3, 0x90b0, 0x9639, 0x963d, + 0x963c, 0x963a, 0x9643, 0x4fcd, 0x4fc5, 0x4fd3, 0x4fb2, 0x4fc9, + 0x4fcb, 0x4fc1, 0x4fd4, 0x4fdc, 0x4fd9, 0x4fbb, 0x4fb3, 0x4fdb, + 0x4fc7, 0x4fd6, 0x4fba, 0x4fc0, 0x4fb9, 0x4fec, 0x5244, 0x5249, + 0x52c0, 0x52c2, 0x533d, 0x537c, 0x5397, 0x5396, 0x5399, 0x5398, + 0x54ba, 0x54a1, 0x54ad, 0x54a5, 0x54cf, + /* 0xce */ + 0x54c3, 0x830d, 0x54b7, 0x54ae, 0x54d6, 0x54b6, 0x54c5, 0x54c6, + 0x54a0, 0x5470, 0x54bc, 0x54a2, 0x54be, 0x5472, 0x54de, 0x54b0, + 0x57b5, 0x579e, 0x579f, 0x57a4, 0x578c, 0x5797, 0x579d, 0x579b, + 0x5794, 0x5798, 0x578f, 0x5799, 0x57a5, 0x579a, 0x5795, 0x58f4, + 0x590d, 0x5953, 0x59e1, 0x59de, 0x59ee, 0x5a00, 0x59f1, 0x59dd, + 0x59fa, 0x59fd, 0x59fc, 0x59f6, 0x59e4, 0x59f2, 0x59f7, 0x59db, + 0x59e9, 0x59f3, 0x59f5, 0x59e0, 0x59fe, 0x59f4, 0x59ed, 0x5ba8, + 0x5c4c, 0x5cd0, 0x5cd8, 0x5ccc, 0x5cd7, 0x5ccb, 0x5cdb, 0x5cde, + 0x5cda, 0x5cc9, 0x5cc7, 0x5cca, 0x5cd6, 0x5cd3, 0x5cd4, 0x5ccf, + 0x5cc8, 0x5cc6, 0x5cce, 0x5cdf, 0x5cf8, 0x5df9, 0x5e21, 0x5e22, + 0x5e23, 0x5e20, 0x5e24, 0x5eb0, 0x5ea4, 0x5ea2, 0x5e9b, 0x5ea3, + 0x5ea5, 0x5f07, 0x5f2e, 0x5f56, 0x5f86, 0x6037, 0x6039, 0x6054, + 0x6072, 0x605e, 0x6045, 0x6053, 0x6047, 0x6049, 0x605b, 0x604c, + 0x6040, 0x6042, 0x605f, 0x6024, 0x6044, 0x6058, 0x6066, 0x606e, + 0x6242, 0x6243, 0x62cf, 0x630d, 0x630b, 0x62f5, 0x630e, 0x6303, + 0x62eb, 0x62f9, 0x630f, 0x630c, 0x62f8, 0x62f6, 0x6300, 0x6313, + 0x6314, 0x62fa, 0x6315, 0x62fb, 0x62f0, 0x6541, 0x6543, 0x65aa, + 0x65bf, 0x6636, 0x6621, 0x6632, 0x6635, 0x661c, 0x6626, 0x6622, + 0x6633, 0x662b, 0x663a, 0x661d, 0x6634, 0x6639, 0x662e, 0x670f, + 0x6710, 0x67c1, 0x67f2, 0x67c8, 0x67ba, + /* 0xcf */ + 0x67dc, 0x67bb, 0x67f8, 0x67d8, 0x67c0, 0x67b7, 0x67c5, 0x67eb, + 0x67e4, 0x67df, 0x67b5, 0x67cd, 0x67b3, 0x67f7, 0x67f6, 0x67ee, + 0x67e3, 0x67c2, 0x67b9, 0x67ce, 0x67e7, 0x67f0, 0x67b2, 0x67fc, + 0x67c6, 0x67ed, 0x67cc, 0x67ae, 0x67e6, 0x67db, 0x67fa, 0x67c9, + 0x67ca, 0x67c3, 0x67ea, 0x67cb, 0x6b28, 0x6b82, 0x6b84, 0x6bb6, + 0x6bd6, 0x6bd8, 0x6be0, 0x6c20, 0x6c21, 0x6d28, 0x6d34, 0x6d2d, + 0x6d1f, 0x6d3c, 0x6d3f, 0x6d12, 0x6d0a, 0x6cda, 0x6d33, 0x6d04, + 0x6d19, 0x6d3a, 0x6d1a, 0x6d11, 0x6d00, 0x6d1d, 0x6d42, 0x6d01, + 0x6d18, 0x6d37, 0x6d03, 0x6d0f, 0x6d40, 0x6d07, 0x6d20, 0x6d2c, + 0x6d08, 0x6d22, 0x6d09, 0x6d10, 0x70b7, 0x709f, 0x70be, 0x70b1, + 0x70b0, 0x70a1, 0x70b4, 0x70b5, 0x70a9, 0x7241, 0x7249, 0x724a, + 0x726c, 0x7270, 0x7273, 0x726e, 0x72ca, 0x72e4, 0x72e8, 0x72eb, + 0x72df, 0x72ea, 0x72e6, 0x72e3, 0x7385, 0x73cc, 0x73c2, 0x73c8, + 0x73c5, 0x73b9, 0x73b6, 0x73b5, 0x73b4, 0x73eb, 0x73bf, 0x73c7, + 0x73be, 0x73c3, 0x73c6, 0x73b8, 0x73cb, 0x74ec, 0x74ee, 0x752e, + 0x7547, 0x7548, 0x75a7, 0x75aa, 0x7679, 0x76c4, 0x7708, 0x7703, + 0x7704, 0x7705, 0x770a, 0x76f7, 0x76fb, 0x76fa, 0x77e7, 0x77e8, + 0x7806, 0x7811, 0x7812, 0x7805, 0x7810, 0x780f, 0x780e, 0x7809, + 0x7803, 0x7813, 0x794a, 0x794c, 0x794b, 0x7945, 0x7944, 0x79d5, + 0x79cd, 0x79cf, 0x79d6, 0x79ce, 0x7a80, + /* 0xd0 */ + 0x7a7e, 0x7ad1, 0x7b00, 0x7b01, 0x7c7a, 0x7c78, 0x7c79, 0x7c7f, + 0x7c80, 0x7c81, 0x7d03, 0x7d08, 0x7d01, 0x7f58, 0x7f91, 0x7f8d, + 0x7fbe, 0x8007, 0x800e, 0x800f, 0x8014, 0x8037, 0x80d8, 0x80c7, + 0x80e0, 0x80d1, 0x80c8, 0x80c2, 0x80d0, 0x80c5, 0x80e3, 0x80d9, + 0x80dc, 0x80ca, 0x80d5, 0x80c9, 0x80cf, 0x80d7, 0x80e6, 0x80cd, + 0x81ff, 0x8221, 0x8294, 0x82d9, 0x82fe, 0x82f9, 0x8307, 0x82e8, + 0x8300, 0x82d5, 0x833a, 0x82eb, 0x82d6, 0x82f4, 0x82ec, 0x82e1, + 0x82f2, 0x82f5, 0x830c, 0x82fb, 0x82f6, 0x82f0, 0x82ea, 0x82e4, + 0x82e0, 0x82fa, 0x82f3, 0x82ed, 0x8677, 0x8674, 0x867c, 0x8673, + 0x8841, 0x884e, 0x8867, 0x886a, 0x8869, 0x89d3, 0x8a04, 0x8a07, + 0x8d72, 0x8fe3, 0x8fe1, 0x8fee, 0x8fe0, 0x90f1, 0x90bd, 0x90bf, + 0x90d5, 0x90c5, 0x90be, 0x90c7, 0x90cb, 0x90c8, 0x91d4, 0x91d3, + 0x9654, 0x964f, 0x9651, 0x9653, 0x964a, 0x964e, 0x501e, 0x5005, + 0x5007, 0x5013, 0x5022, 0x5030, 0x501b, 0x4ff5, 0x4ff4, 0x5033, + 0x5037, 0x502c, 0x4ff6, 0x4ff7, 0x5017, 0x501c, 0x5020, 0x5027, + 0x5035, 0x502f, 0x5031, 0x500e, 0x515a, 0x5194, 0x5193, 0x51ca, + 0x51c4, 0x51c5, 0x51c8, 0x51ce, 0x5261, 0x525a, 0x5252, 0x525e, + 0x525f, 0x5255, 0x5262, 0x52cd, 0x530e, 0x539e, 0x5526, 0x54e2, + 0x5517, 0x5512, 0x54e7, 0x54f3, 0x54e4, 0x551a, 0x54ff, 0x5504, + 0x5508, 0x54eb, 0x5511, 0x5505, 0x54f1, + /* 0xd1 */ + 0x550a, 0x54fb, 0x54f7, 0x54f8, 0x54e0, 0x550e, 0x5503, 0x550b, + 0x5701, 0x5702, 0x57cc, 0x5832, 0x57d5, 0x57d2, 0x57ba, 0x57c6, + 0x57bd, 0x57bc, 0x57b8, 0x57b6, 0x57bf, 0x57c7, 0x57d0, 0x57b9, + 0x57c1, 0x590e, 0x594a, 0x5a19, 0x5a16, 0x5a2d, 0x5a2e, 0x5a15, + 0x5a0f, 0x5a17, 0x5a0a, 0x5a1e, 0x5a33, 0x5b6c, 0x5ba7, 0x5bad, + 0x5bac, 0x5c03, 0x5c56, 0x5c54, 0x5cec, 0x5cff, 0x5cee, 0x5cf1, + 0x5cf7, 0x5d00, 0x5cf9, 0x5e29, 0x5e28, 0x5ea8, 0x5eae, 0x5eaa, + 0x5eac, 0x5f33, 0x5f30, 0x5f67, 0x605d, 0x605a, 0x6067, 0x6041, + 0x60a2, 0x6088, 0x6080, 0x6092, 0x6081, 0x609d, 0x6083, 0x6095, + 0x609b, 0x6097, 0x6087, 0x609c, 0x608e, 0x6219, 0x6246, 0x62f2, + 0x6310, 0x6356, 0x632c, 0x6344, 0x6345, 0x6336, 0x6343, 0x63e4, + 0x6339, 0x634b, 0x634a, 0x633c, 0x6329, 0x6341, 0x6334, 0x6358, + 0x6354, 0x6359, 0x632d, 0x6347, 0x6333, 0x635a, 0x6351, 0x6338, + 0x6357, 0x6340, 0x6348, 0x654a, 0x6546, 0x65c6, 0x65c3, 0x65c4, + 0x65c2, 0x664a, 0x665f, 0x6647, 0x6651, 0x6712, 0x6713, 0x681f, + 0x681a, 0x6849, 0x6832, 0x6833, 0x683b, 0x684b, 0x684f, 0x6816, + 0x6831, 0x681c, 0x6835, 0x682b, 0x682d, 0x682f, 0x684e, 0x6844, + 0x6834, 0x681d, 0x6812, 0x6814, 0x6826, 0x6828, 0x682e, 0x684d, + 0x683a, 0x6825, 0x6820, 0x6b2c, 0x6b2f, 0x6b2d, 0x6b31, 0x6b34, + 0x6b6d, 0x8082, 0x6b88, 0x6be6, 0x6be4, + /* 0xd2 */ + 0x6be8, 0x6be3, 0x6be2, 0x6be7, 0x6c25, 0x6d7a, 0x6d63, 0x6d64, + 0x6d76, 0x6d0d, 0x6d61, 0x6d92, 0x6d58, 0x6d62, 0x6d6d, 0x6d6f, + 0x6d91, 0x6d8d, 0x6def, 0x6d7f, 0x6d86, 0x6d5e, 0x6d67, 0x6d60, + 0x6d97, 0x6d70, 0x6d7c, 0x6d5f, 0x6d82, 0x6d98, 0x6d2f, 0x6d68, + 0x6d8b, 0x6d7e, 0x6d80, 0x6d84, 0x6d16, 0x6d83, 0x6d7b, 0x6d7d, + 0x6d75, 0x6d90, 0x70dc, 0x70d3, 0x70d1, 0x70dd, 0x70cb, 0x7f39, + 0x70e2, 0x70d7, 0x70d2, 0x70de, 0x70e0, 0x70d4, 0x70cd, 0x70c5, + 0x70c6, 0x70c7, 0x70da, 0x70ce, 0x70e1, 0x7242, 0x7278, 0x7277, + 0x7276, 0x7300, 0x72fa, 0x72f4, 0x72fe, 0x72f6, 0x72f3, 0x72fb, + 0x7301, 0x73d3, 0x73d9, 0x73e5, 0x73d6, 0x73bc, 0x73e7, 0x73e3, + 0x73e9, 0x73dc, 0x73d2, 0x73db, 0x73d4, 0x73dd, 0x73da, 0x73d7, + 0x73d8, 0x73e8, 0x74de, 0x74df, 0x74f4, 0x74f5, 0x7521, 0x755b, + 0x755f, 0x75b0, 0x75c1, 0x75bb, 0x75c4, 0x75c0, 0x75bf, 0x75b6, + 0x75ba, 0x768a, 0x76c9, 0x771d, 0x771b, 0x7710, 0x7713, 0x7712, + 0x7723, 0x7711, 0x7715, 0x7719, 0x771a, 0x7722, 0x7727, 0x7823, + 0x782c, 0x7822, 0x7835, 0x782f, 0x7828, 0x782e, 0x782b, 0x7821, + 0x7829, 0x7833, 0x782a, 0x7831, 0x7954, 0x795b, 0x794f, 0x795c, + 0x7953, 0x7952, 0x7951, 0x79eb, 0x79ec, 0x79e0, 0x79ee, 0x79ed, + 0x79ea, 0x79dc, 0x79de, 0x79dd, 0x7a86, 0x7a89, 0x7a85, 0x7a8b, + 0x7a8c, 0x7a8a, 0x7a87, 0x7ad8, 0x7b10, + /* 0xd3 */ + 0x7b04, 0x7b13, 0x7b05, 0x7b0f, 0x7b08, 0x7b0a, 0x7b0e, 0x7b09, + 0x7b12, 0x7c84, 0x7c91, 0x7c8a, 0x7c8c, 0x7c88, 0x7c8d, 0x7c85, + 0x7d1e, 0x7d1d, 0x7d11, 0x7d0e, 0x7d18, 0x7d16, 0x7d13, 0x7d1f, + 0x7d12, 0x7d0f, 0x7d0c, 0x7f5c, 0x7f61, 0x7f5e, 0x7f60, 0x7f5d, + 0x7f5b, 0x7f96, 0x7f92, 0x7fc3, 0x7fc2, 0x7fc0, 0x8016, 0x803e, + 0x8039, 0x80fa, 0x80f2, 0x80f9, 0x80f5, 0x8101, 0x80fb, 0x8100, + 0x8201, 0x822f, 0x8225, 0x8333, 0x832d, 0x8344, 0x8319, 0x8351, + 0x8325, 0x8356, 0x833f, 0x8341, 0x8326, 0x831c, 0x8322, 0x8342, + 0x834e, 0x831b, 0x832a, 0x8308, 0x833c, 0x834d, 0x8316, 0x8324, + 0x8320, 0x8337, 0x832f, 0x8329, 0x8347, 0x8345, 0x834c, 0x8353, + 0x831e, 0x832c, 0x834b, 0x8327, 0x8348, 0x8653, 0x8652, 0x86a2, + 0x86a8, 0x8696, 0x868d, 0x8691, 0x869e, 0x8687, 0x8697, 0x8686, + 0x868b, 0x869a, 0x8685, 0x86a5, 0x8699, 0x86a1, 0x86a7, 0x8695, + 0x8698, 0x868e, 0x869d, 0x8690, 0x8694, 0x8843, 0x8844, 0x886d, + 0x8875, 0x8876, 0x8872, 0x8880, 0x8871, 0x887f, 0x886f, 0x8883, + 0x887e, 0x8874, 0x887c, 0x8a12, 0x8c47, 0x8c57, 0x8c7b, 0x8ca4, + 0x8ca3, 0x8d76, 0x8d78, 0x8db5, 0x8db7, 0x8db6, 0x8ed1, 0x8ed3, + 0x8ffe, 0x8ff5, 0x9002, 0x8fff, 0x8ffb, 0x9004, 0x8ffc, 0x8ff6, + 0x90d6, 0x90e0, 0x90d9, 0x90da, 0x90e3, 0x90df, 0x90e5, 0x90d8, + 0x90db, 0x90d7, 0x90dc, 0x90e4, 0x9150, + /* 0xd4 */ + 0x914e, 0x914f, 0x91d5, 0x91e2, 0x91da, 0x965c, 0x965f, 0x96bc, + 0x98e3, 0x9adf, 0x9b2f, 0x4e7f, 0x5070, 0x506a, 0x5061, 0x505e, + 0x5060, 0x5053, 0x504b, 0x505d, 0x5072, 0x5048, 0x504d, 0x5041, + 0x505b, 0x504a, 0x5062, 0x5015, 0x5045, 0x505f, 0x5069, 0x506b, + 0x5063, 0x5064, 0x5046, 0x5040, 0x506e, 0x5073, 0x5057, 0x5051, + 0x51d0, 0x526b, 0x526d, 0x526c, 0x526e, 0x52d6, 0x52d3, 0x532d, + 0x539c, 0x5575, 0x5576, 0x553c, 0x554d, 0x5550, 0x5534, 0x552a, + 0x5551, 0x5562, 0x5536, 0x5535, 0x5530, 0x5552, 0x5545, 0x550c, + 0x5532, 0x5565, 0x554e, 0x5539, 0x5548, 0x552d, 0x553b, 0x5540, + 0x554b, 0x570a, 0x5707, 0x57fb, 0x5814, 0x57e2, 0x57f6, 0x57dc, + 0x57f4, 0x5800, 0x57ed, 0x57fd, 0x5808, 0x57f8, 0x580b, 0x57f3, + 0x57cf, 0x5807, 0x57ee, 0x57e3, 0x57f2, 0x57e5, 0x57ec, 0x57e1, + 0x580e, 0x57fc, 0x5810, 0x57e7, 0x5801, 0x580c, 0x57f1, 0x57e9, + 0x57f0, 0x580d, 0x5804, 0x595c, 0x5a60, 0x5a58, 0x5a55, 0x5a67, + 0x5a5e, 0x5a38, 0x5a35, 0x5a6d, 0x5a50, 0x5a5f, 0x5a65, 0x5a6c, + 0x5a53, 0x5a64, 0x5a57, 0x5a43, 0x5a5d, 0x5a52, 0x5a44, 0x5a5b, + 0x5a48, 0x5a8e, 0x5a3e, 0x5a4d, 0x5a39, 0x5a4c, 0x5a70, 0x5a69, + 0x5a47, 0x5a51, 0x5a56, 0x5a42, 0x5a5c, 0x5b72, 0x5b6e, 0x5bc1, + 0x5bc0, 0x5c59, 0x5d1e, 0x5d0b, 0x5d1d, 0x5d1a, 0x5d20, 0x5d0c, + 0x5d28, 0x5d0d, 0x5d26, 0x5d25, 0x5d0f, + /* 0xd5 */ + 0x5d30, 0x5d12, 0x5d23, 0x5d1f, 0x5d2e, 0x5e3e, 0x5e34, 0x5eb1, + 0x5eb4, 0x5eb9, 0x5eb2, 0x5eb3, 0x5f36, 0x5f38, 0x5f9b, 0x5f96, + 0x5f9f, 0x608a, 0x6090, 0x6086, 0x60be, 0x60b0, 0x60ba, 0x60d3, + 0x60d4, 0x60cf, 0x60e4, 0x60d9, 0x60dd, 0x60c8, 0x60b1, 0x60db, + 0x60b7, 0x60ca, 0x60bf, 0x60c3, 0x60cd, 0x60c0, 0x6332, 0x6365, + 0x638a, 0x6382, 0x637d, 0x63bd, 0x639e, 0x63ad, 0x639d, 0x6397, + 0x63ab, 0x638e, 0x636f, 0x6387, 0x6390, 0x636e, 0x63af, 0x6375, + 0x639c, 0x636d, 0x63ae, 0x637c, 0x63a4, 0x633b, 0x639f, 0x6378, + 0x6385, 0x6381, 0x6391, 0x638d, 0x6370, 0x6553, 0x65cd, 0x6665, + 0x6661, 0x665b, 0x6659, 0x665c, 0x6662, 0x6718, 0x6879, 0x6887, + 0x6890, 0x689c, 0x686d, 0x686e, 0x68ae, 0x68ab, 0x6956, 0x686f, + 0x68a3, 0x68ac, 0x68a9, 0x6875, 0x6874, 0x68b2, 0x688f, 0x6877, + 0x6892, 0x687c, 0x686b, 0x6872, 0x68aa, 0x6880, 0x6871, 0x687e, + 0x689b, 0x6896, 0x688b, 0x68a0, 0x6889, 0x68a4, 0x6878, 0x687b, + 0x6891, 0x688c, 0x688a, 0x687d, 0x6b36, 0x6b33, 0x6b37, 0x6b38, + 0x6b91, 0x6b8f, 0x6b8d, 0x6b8e, 0x6b8c, 0x6c2a, 0x6dc0, 0x6dab, + 0x6db4, 0x6db3, 0x6e74, 0x6dac, 0x6de9, 0x6de2, 0x6db7, 0x6df6, + 0x6dd4, 0x6e00, 0x6dc8, 0x6de0, 0x6ddf, 0x6dd6, 0x6dbe, 0x6de5, + 0x6ddc, 0x6ddd, 0x6ddb, 0x6df4, 0x6dca, 0x6dbd, 0x6ded, 0x6df0, + 0x6dba, 0x6dd5, 0x6dc2, 0x6dcf, 0x6dc9, + /* 0xd6 */ + 0x6dd0, 0x6df2, 0x6dd3, 0x6dfd, 0x6dd7, 0x6dcd, 0x6de3, 0x6dbb, + 0x70fa, 0x710d, 0x70f7, 0x7117, 0x70f4, 0x710c, 0x70f0, 0x7104, + 0x70f3, 0x7110, 0x70fc, 0x70ff, 0x7106, 0x7113, 0x7100, 0x70f8, + 0x70f6, 0x710b, 0x7102, 0x710e, 0x727e, 0x727b, 0x727c, 0x727f, + 0x731d, 0x7317, 0x7307, 0x7311, 0x7318, 0x730a, 0x7308, 0x72ff, + 0x730f, 0x731e, 0x7388, 0x73f6, 0x73f8, 0x73f5, 0x7404, 0x7401, + 0x73fd, 0x7407, 0x7400, 0x73fa, 0x73fc, 0x73ff, 0x740c, 0x740b, + 0x73f4, 0x7408, 0x7564, 0x7563, 0x75ce, 0x75d2, 0x75cf, 0x75cb, + 0x75cc, 0x75d1, 0x75d0, 0x768f, 0x7689, 0x76d3, 0x7739, 0x772f, + 0x772d, 0x7731, 0x7732, 0x7734, 0x7733, 0x773d, 0x7725, 0x773b, + 0x7735, 0x7848, 0x7852, 0x7849, 0x784d, 0x784a, 0x784c, 0x7826, + 0x7845, 0x7850, 0x7964, 0x7967, 0x7969, 0x796a, 0x7963, 0x796b, + 0x7961, 0x79bb, 0x79fa, 0x79f8, 0x79f6, 0x79f7, 0x7a8f, 0x7a94, + 0x7a90, 0x7b35, 0x7b47, 0x7b34, 0x7b25, 0x7b30, 0x7b22, 0x7b24, + 0x7b33, 0x7b18, 0x7b2a, 0x7b1d, 0x7b31, 0x7b2b, 0x7b2d, 0x7b2f, + 0x7b32, 0x7b38, 0x7b1a, 0x7b23, 0x7c94, 0x7c98, 0x7c96, 0x7ca3, + 0x7d35, 0x7d3d, 0x7d38, 0x7d36, 0x7d3a, 0x7d45, 0x7d2c, 0x7d29, + 0x7d41, 0x7d47, 0x7d3e, 0x7d3f, 0x7d4a, 0x7d3b, 0x7d28, 0x7f63, + 0x7f95, 0x7f9c, 0x7f9d, 0x7f9b, 0x7fca, 0x7fcb, 0x7fcd, 0x7fd0, + 0x7fd1, 0x7fc7, 0x7fcf, 0x7fc9, 0x801f, + /* 0xd7 */ + 0x801e, 0x801b, 0x8047, 0x8043, 0x8048, 0x8118, 0x8125, 0x8119, + 0x811b, 0x812d, 0x811f, 0x812c, 0x811e, 0x8121, 0x8115, 0x8127, + 0x811d, 0x8122, 0x8211, 0x8238, 0x8233, 0x823a, 0x8234, 0x8232, + 0x8274, 0x8390, 0x83a3, 0x83a8, 0x838d, 0x837a, 0x8373, 0x83a4, + 0x8374, 0x838f, 0x8381, 0x8395, 0x8399, 0x8375, 0x8394, 0x83a9, + 0x837d, 0x8383, 0x838c, 0x839d, 0x839b, 0x83aa, 0x838b, 0x837e, + 0x83a5, 0x83af, 0x8388, 0x8397, 0x83b0, 0x837f, 0x83a6, 0x8387, + 0x83ae, 0x8376, 0x839a, 0x8659, 0x8656, 0x86bf, 0x86b7, 0x86c2, + 0x86c1, 0x86c5, 0x86ba, 0x86b0, 0x86c8, 0x86b9, 0x86b3, 0x86b8, + 0x86cc, 0x86b4, 0x86bb, 0x86bc, 0x86c3, 0x86bd, 0x86be, 0x8852, + 0x8889, 0x8895, 0x88a8, 0x88a2, 0x88aa, 0x889a, 0x8891, 0x88a1, + 0x889f, 0x8898, 0x88a7, 0x8899, 0x889b, 0x8897, 0x88a4, 0x88ac, + 0x888c, 0x8893, 0x888e, 0x8982, 0x89d6, 0x89d9, 0x89d5, 0x8a30, + 0x8a27, 0x8a2c, 0x8a1e, 0x8c39, 0x8c3b, 0x8c5c, 0x8c5d, 0x8c7d, + 0x8ca5, 0x8d7d, 0x8d7b, 0x8d79, 0x8dbc, 0x8dc2, 0x8db9, 0x8dbf, + 0x8dc1, 0x8ed8, 0x8ede, 0x8edd, 0x8edc, 0x8ed7, 0x8ee0, 0x8ee1, + 0x9024, 0x900b, 0x9011, 0x901c, 0x900c, 0x9021, 0x90ef, 0x90ea, + 0x90f0, 0x90f4, 0x90f2, 0x90f3, 0x90d4, 0x90eb, 0x90ec, 0x90e9, + 0x9156, 0x9158, 0x915a, 0x9153, 0x9155, 0x91ec, 0x91f4, 0x91f1, + 0x91f3, 0x91f8, 0x91e4, 0x91f9, 0x91ea, + /* 0xd8 */ + 0x91eb, 0x91f7, 0x91e8, 0x91ee, 0x957a, 0x9586, 0x9588, 0x967c, + 0x966d, 0x966b, 0x9671, 0x966f, 0x96bf, 0x976a, 0x9804, 0x98e5, + 0x9997, 0x509b, 0x5095, 0x5094, 0x509e, 0x508b, 0x50a3, 0x5083, + 0x508c, 0x508e, 0x509d, 0x5068, 0x509c, 0x5092, 0x5082, 0x5087, + 0x515f, 0x51d4, 0x5312, 0x5311, 0x53a4, 0x53a7, 0x5591, 0x55a8, + 0x55a5, 0x55ad, 0x5577, 0x5645, 0x55a2, 0x5593, 0x5588, 0x558f, + 0x55b5, 0x5581, 0x55a3, 0x5592, 0x55a4, 0x557d, 0x558c, 0x55a6, + 0x557f, 0x5595, 0x55a1, 0x558e, 0x570c, 0x5829, 0x5837, 0x5819, + 0x581e, 0x5827, 0x5823, 0x5828, 0x57f5, 0x5848, 0x5825, 0x581c, + 0x581b, 0x5833, 0x583f, 0x5836, 0x582e, 0x5839, 0x5838, 0x582d, + 0x582c, 0x583b, 0x5961, 0x5aaf, 0x5a94, 0x5a9f, 0x5a7a, 0x5aa2, + 0x5a9e, 0x5a78, 0x5aa6, 0x5a7c, 0x5aa5, 0x5aac, 0x5a95, 0x5aae, + 0x5a37, 0x5a84, 0x5a8a, 0x5a97, 0x5a83, 0x5a8b, 0x5aa9, 0x5a7b, + 0x5a7d, 0x5a8c, 0x5a9c, 0x5a8f, 0x5a93, 0x5a9d, 0x5bea, 0x5bcd, + 0x5bcb, 0x5bd4, 0x5bd1, 0x5bca, 0x5bce, 0x5c0c, 0x5c30, 0x5d37, + 0x5d43, 0x5d6b, 0x5d41, 0x5d4b, 0x5d3f, 0x5d35, 0x5d51, 0x5d4e, + 0x5d55, 0x5d33, 0x5d3a, 0x5d52, 0x5d3d, 0x5d31, 0x5d59, 0x5d42, + 0x5d39, 0x5d49, 0x5d38, 0x5d3c, 0x5d32, 0x5d36, 0x5d40, 0x5d45, + 0x5e44, 0x5e41, 0x5f58, 0x5fa6, 0x5fa5, 0x5fab, 0x60c9, 0x60b9, + 0x60cc, 0x60e2, 0x60ce, 0x60c4, 0x6114, + /* 0xd9 */ + 0x60f2, 0x610a, 0x6116, 0x6105, 0x60f5, 0x6113, 0x60f8, 0x60fc, + 0x60fe, 0x60c1, 0x6103, 0x6118, 0x611d, 0x6110, 0x60ff, 0x6104, + 0x610b, 0x624a, 0x6394, 0x63b1, 0x63b0, 0x63ce, 0x63e5, 0x63e8, + 0x63ef, 0x63c3, 0x649d, 0x63f3, 0x63ca, 0x63e0, 0x63f6, 0x63d5, + 0x63f2, 0x63f5, 0x6461, 0x63df, 0x63be, 0x63dd, 0x63dc, 0x63c4, + 0x63d8, 0x63d3, 0x63c2, 0x63c7, 0x63cc, 0x63cb, 0x63c8, 0x63f0, + 0x63d7, 0x63d9, 0x6532, 0x6567, 0x656a, 0x6564, 0x655c, 0x6568, + 0x6565, 0x658c, 0x659d, 0x659e, 0x65ae, 0x65d0, 0x65d2, 0x667c, + 0x666c, 0x667b, 0x6680, 0x6671, 0x6679, 0x666a, 0x6672, 0x6701, + 0x690c, 0x68d3, 0x6904, 0x68dc, 0x692a, 0x68ec, 0x68ea, 0x68f1, + 0x690f, 0x68d6, 0x68f7, 0x68eb, 0x68e4, 0x68f6, 0x6913, 0x6910, + 0x68f3, 0x68e1, 0x6907, 0x68cc, 0x6908, 0x6970, 0x68b4, 0x6911, + 0x68ef, 0x68c6, 0x6914, 0x68f8, 0x68d0, 0x68fd, 0x68fc, 0x68e8, + 0x690b, 0x690a, 0x6917, 0x68ce, 0x68c8, 0x68dd, 0x68de, 0x68e6, + 0x68f4, 0x68d1, 0x6906, 0x68d4, 0x68e9, 0x6915, 0x6925, 0x68c7, + 0x6b39, 0x6b3b, 0x6b3f, 0x6b3c, 0x6b94, 0x6b97, 0x6b99, 0x6b95, + 0x6bbd, 0x6bf0, 0x6bf2, 0x6bf3, 0x6c30, 0x6dfc, 0x6e46, 0x6e47, + 0x6e1f, 0x6e49, 0x6e88, 0x6e3c, 0x6e3d, 0x6e45, 0x6e62, 0x6e2b, + 0x6e3f, 0x6e41, 0x6e5d, 0x6e73, 0x6e1c, 0x6e33, 0x6e4b, 0x6e40, + 0x6e51, 0x6e3b, 0x6e03, 0x6e2e, 0x6e5e, + /* 0xda */ + 0x6e68, 0x6e5c, 0x6e61, 0x6e31, 0x6e28, 0x6e60, 0x6e71, 0x6e6b, + 0x6e39, 0x6e22, 0x6e30, 0x6e53, 0x6e65, 0x6e27, 0x6e78, 0x6e64, + 0x6e77, 0x6e55, 0x6e79, 0x6e52, 0x6e66, 0x6e35, 0x6e36, 0x6e5a, + 0x7120, 0x711e, 0x712f, 0x70fb, 0x712e, 0x7131, 0x7123, 0x7125, + 0x7122, 0x7132, 0x711f, 0x7128, 0x713a, 0x711b, 0x724b, 0x725a, + 0x7288, 0x7289, 0x7286, 0x7285, 0x728b, 0x7312, 0x730b, 0x7330, + 0x7322, 0x7331, 0x7333, 0x7327, 0x7332, 0x732d, 0x7326, 0x7323, + 0x7335, 0x730c, 0x742e, 0x742c, 0x7430, 0x742b, 0x7416, 0x741a, + 0x7421, 0x742d, 0x7431, 0x7424, 0x7423, 0x741d, 0x7429, 0x7420, + 0x7432, 0x74fb, 0x752f, 0x756f, 0x756c, 0x75e7, 0x75da, 0x75e1, + 0x75e6, 0x75dd, 0x75df, 0x75e4, 0x75d7, 0x7695, 0x7692, 0x76da, + 0x7746, 0x7747, 0x7744, 0x774d, 0x7745, 0x774a, 0x774e, 0x774b, + 0x774c, 0x77de, 0x77ec, 0x7860, 0x7864, 0x7865, 0x785c, 0x786d, + 0x7871, 0x786a, 0x786e, 0x7870, 0x7869, 0x7868, 0x785e, 0x7862, + 0x7974, 0x7973, 0x7972, 0x7970, 0x7a02, 0x7a0a, 0x7a03, 0x7a0c, + 0x7a04, 0x7a99, 0x7ae6, 0x7ae4, 0x7b4a, 0x7b3b, 0x7b44, 0x7b48, + 0x7b4c, 0x7b4e, 0x7b40, 0x7b58, 0x7b45, 0x7ca2, 0x7c9e, 0x7ca8, + 0x7ca1, 0x7d58, 0x7d6f, 0x7d63, 0x7d53, 0x7d56, 0x7d67, 0x7d6a, + 0x7d4f, 0x7d6d, 0x7d5c, 0x7d6b, 0x7d52, 0x7d54, 0x7d69, 0x7d51, + 0x7d5f, 0x7d4e, 0x7f3e, 0x7f3f, 0x7f65, + /* 0xdb */ + 0x7f66, 0x7fa2, 0x7fa0, 0x7fa1, 0x7fd7, 0x8051, 0x804f, 0x8050, + 0x80fe, 0x80d4, 0x8143, 0x814a, 0x8152, 0x814f, 0x8147, 0x813d, + 0x814d, 0x813a, 0x81e6, 0x81ee, 0x81f7, 0x81f8, 0x81f9, 0x8204, + 0x823c, 0x823d, 0x823f, 0x8275, 0x833b, 0x83cf, 0x83f9, 0x8423, + 0x83c0, 0x83e8, 0x8412, 0x83e7, 0x83e4, 0x83fc, 0x83f6, 0x8410, + 0x83c6, 0x83c8, 0x83eb, 0x83e3, 0x83bf, 0x8401, 0x83dd, 0x83e5, + 0x83d8, 0x83ff, 0x83e1, 0x83cb, 0x83ce, 0x83d6, 0x83f5, 0x83c9, + 0x8409, 0x840f, 0x83de, 0x8411, 0x8406, 0x83c2, 0x83f3, 0x83d5, + 0x83fa, 0x83c7, 0x83d1, 0x83ea, 0x8413, 0x83c3, 0x83ec, 0x83ee, + 0x83c4, 0x83fb, 0x83d7, 0x83e2, 0x841b, 0x83db, 0x83fe, 0x86d8, + 0x86e2, 0x86e6, 0x86d3, 0x86e3, 0x86da, 0x86ea, 0x86dd, 0x86eb, + 0x86dc, 0x86ec, 0x86e9, 0x86d7, 0x86e8, 0x86d1, 0x8848, 0x8856, + 0x8855, 0x88ba, 0x88d7, 0x88b9, 0x88b8, 0x88c0, 0x88be, 0x88b6, + 0x88bc, 0x88b7, 0x88bd, 0x88b2, 0x8901, 0x88c9, 0x8995, 0x8998, + 0x8997, 0x89dd, 0x89da, 0x89db, 0x8a4e, 0x8a4d, 0x8a39, 0x8a59, + 0x8a40, 0x8a57, 0x8a58, 0x8a44, 0x8a45, 0x8a52, 0x8a48, 0x8a51, + 0x8a4a, 0x8a4c, 0x8a4f, 0x8c5f, 0x8c81, 0x8c80, 0x8cba, 0x8cbe, + 0x8cb0, 0x8cb9, 0x8cb5, 0x8d84, 0x8d80, 0x8d89, 0x8dd8, 0x8dd3, + 0x8dcd, 0x8dc7, 0x8dd6, 0x8ddc, 0x8dcf, 0x8dd5, 0x8dd9, 0x8dc8, + 0x8dd7, 0x8dc5, 0x8eef, 0x8ef7, 0x8efa, + /* 0xdc */ + 0x8ef9, 0x8ee6, 0x8eee, 0x8ee5, 0x8ef5, 0x8ee7, 0x8ee8, 0x8ef6, + 0x8eeb, 0x8ef1, 0x8eec, 0x8ef4, 0x8ee9, 0x902d, 0x9034, 0x902f, + 0x9106, 0x912c, 0x9104, 0x90ff, 0x90fc, 0x9108, 0x90f9, 0x90fb, + 0x9101, 0x9100, 0x9107, 0x9105, 0x9103, 0x9161, 0x9164, 0x915f, + 0x9162, 0x9160, 0x9201, 0x920a, 0x9225, 0x9203, 0x921a, 0x9226, + 0x920f, 0x920c, 0x9200, 0x9212, 0x91ff, 0x91fd, 0x9206, 0x9204, + 0x9227, 0x9202, 0x921c, 0x9224, 0x9219, 0x9217, 0x9205, 0x9216, + 0x957b, 0x958d, 0x958c, 0x9590, 0x9687, 0x967e, 0x9688, 0x9689, + 0x9683, 0x9680, 0x96c2, 0x96c8, 0x96c3, 0x96f1, 0x96f0, 0x976c, + 0x9770, 0x976e, 0x9807, 0x98a9, 0x98eb, 0x9ce6, 0x9ef9, 0x4e83, + 0x4e84, 0x4eb6, 0x50bd, 0x50bf, 0x50c6, 0x50ae, 0x50c4, 0x50ca, + 0x50b4, 0x50c8, 0x50c2, 0x50b0, 0x50c1, 0x50ba, 0x50b1, 0x50cb, + 0x50c9, 0x50b6, 0x50b8, 0x51d7, 0x527a, 0x5278, 0x527b, 0x527c, + 0x55c3, 0x55db, 0x55cc, 0x55d0, 0x55cb, 0x55ca, 0x55dd, 0x55c0, + 0x55d4, 0x55c4, 0x55e9, 0x55bf, 0x55d2, 0x558d, 0x55cf, 0x55d5, + 0x55e2, 0x55d6, 0x55c8, 0x55f2, 0x55cd, 0x55d9, 0x55c2, 0x5714, + 0x5853, 0x5868, 0x5864, 0x584f, 0x584d, 0x5849, 0x586f, 0x5855, + 0x584e, 0x585d, 0x5859, 0x5865, 0x585b, 0x583d, 0x5863, 0x5871, + 0x58fc, 0x5ac7, 0x5ac4, 0x5acb, 0x5aba, 0x5ab8, 0x5ab1, 0x5ab5, + 0x5ab0, 0x5abf, 0x5ac8, 0x5abb, 0x5ac6, + /* 0xdd */ + 0x5ab7, 0x5ac0, 0x5aca, 0x5ab4, 0x5ab6, 0x5acd, 0x5ab9, 0x5a90, + 0x5bd6, 0x5bd8, 0x5bd9, 0x5c1f, 0x5c33, 0x5d71, 0x5d63, 0x5d4a, + 0x5d65, 0x5d72, 0x5d6c, 0x5d5e, 0x5d68, 0x5d67, 0x5d62, 0x5df0, + 0x5e4f, 0x5e4e, 0x5e4a, 0x5e4d, 0x5e4b, 0x5ec5, 0x5ecc, 0x5ec6, + 0x5ecb, 0x5ec7, 0x5f40, 0x5faf, 0x5fad, 0x60f7, 0x6149, 0x614a, + 0x612b, 0x6145, 0x6136, 0x6132, 0x612e, 0x6146, 0x612f, 0x614f, + 0x6129, 0x6140, 0x6220, 0x9168, 0x6223, 0x6225, 0x6224, 0x63c5, + 0x63f1, 0x63eb, 0x6410, 0x6412, 0x6409, 0x6420, 0x6424, 0x6433, + 0x6443, 0x641f, 0x6415, 0x6418, 0x6439, 0x6437, 0x6422, 0x6423, + 0x640c, 0x6426, 0x6430, 0x6428, 0x6441, 0x6435, 0x642f, 0x640a, + 0x641a, 0x6440, 0x6425, 0x6427, 0x640b, 0x63e7, 0x641b, 0x642e, + 0x6421, 0x640e, 0x656f, 0x6592, 0x65d3, 0x6686, 0x668c, 0x6695, + 0x6690, 0x668b, 0x668a, 0x6699, 0x6694, 0x6678, 0x6720, 0x6966, + 0x695f, 0x6938, 0x694e, 0x6962, 0x6971, 0x693f, 0x6945, 0x696a, + 0x6939, 0x6942, 0x6957, 0x6959, 0x697a, 0x6948, 0x6949, 0x6935, + 0x696c, 0x6933, 0x693d, 0x6965, 0x68f0, 0x6978, 0x6934, 0x6969, + 0x6940, 0x696f, 0x6944, 0x6976, 0x6958, 0x6941, 0x6974, 0x694c, + 0x693b, 0x694b, 0x6937, 0x695c, 0x694f, 0x6951, 0x6932, 0x6952, + 0x692f, 0x697b, 0x693c, 0x6b46, 0x6b45, 0x6b43, 0x6b42, 0x6b48, + 0x6b41, 0x6b9b, 0xfa0d, 0x6bfb, 0x6bfc, + /* 0xde */ + 0x6bf9, 0x6bf7, 0x6bf8, 0x6e9b, 0x6ed6, 0x6ec8, 0x6e8f, 0x6ec0, + 0x6e9f, 0x6e93, 0x6e94, 0x6ea0, 0x6eb1, 0x6eb9, 0x6ec6, 0x6ed2, + 0x6ebd, 0x6ec1, 0x6e9e, 0x6ec9, 0x6eb7, 0x6eb0, 0x6ecd, 0x6ea6, + 0x6ecf, 0x6eb2, 0x6ebe, 0x6ec3, 0x6edc, 0x6ed8, 0x6e99, 0x6e92, + 0x6e8e, 0x6e8d, 0x6ea4, 0x6ea1, 0x6ebf, 0x6eb3, 0x6ed0, 0x6eca, + 0x6e97, 0x6eae, 0x6ea3, 0x7147, 0x7154, 0x7152, 0x7163, 0x7160, + 0x7141, 0x715d, 0x7162, 0x7172, 0x7178, 0x716a, 0x7161, 0x7142, + 0x7158, 0x7143, 0x714b, 0x7170, 0x715f, 0x7150, 0x7153, 0x7144, + 0x714d, 0x715a, 0x724f, 0x728d, 0x728c, 0x7291, 0x7290, 0x728e, + 0x733c, 0x7342, 0x733b, 0x733a, 0x7340, 0x734a, 0x7349, 0x7444, + 0x744a, 0x744b, 0x7452, 0x7451, 0x7457, 0x7440, 0x744f, 0x7450, + 0x744e, 0x7442, 0x7446, 0x744d, 0x7454, 0x74e1, 0x74ff, 0x74fe, + 0x74fd, 0x751d, 0x7579, 0x7577, 0x6983, 0x75ef, 0x760f, 0x7603, + 0x75f7, 0x75fe, 0x75fc, 0x75f9, 0x75f8, 0x7610, 0x75fb, 0x75f6, + 0x75ed, 0x75f5, 0x75fd, 0x7699, 0x76b5, 0x76dd, 0x7755, 0x775f, + 0x7760, 0x7752, 0x7756, 0x775a, 0x7769, 0x7767, 0x7754, 0x7759, + 0x776d, 0x77e0, 0x7887, 0x789a, 0x7894, 0x788f, 0x7884, 0x7895, + 0x7885, 0x7886, 0x78a1, 0x7883, 0x7879, 0x7899, 0x7880, 0x7896, + 0x787b, 0x797c, 0x7982, 0x797d, 0x7979, 0x7a11, 0x7a18, 0x7a19, + 0x7a12, 0x7a17, 0x7a15, 0x7a22, 0x7a13, + /* 0xdf */ + 0x7a1b, 0x7a10, 0x7aa3, 0x7aa2, 0x7a9e, 0x7aeb, 0x7b66, 0x7b64, + 0x7b6d, 0x7b74, 0x7b69, 0x7b72, 0x7b65, 0x7b73, 0x7b71, 0x7b70, + 0x7b61, 0x7b78, 0x7b76, 0x7b63, 0x7cb2, 0x7cb4, 0x7caf, 0x7d88, + 0x7d86, 0x7d80, 0x7d8d, 0x7d7f, 0x7d85, 0x7d7a, 0x7d8e, 0x7d7b, + 0x7d83, 0x7d7c, 0x7d8c, 0x7d94, 0x7d84, 0x7d7d, 0x7d92, 0x7f6d, + 0x7f6b, 0x7f67, 0x7f68, 0x7f6c, 0x7fa6, 0x7fa5, 0x7fa7, 0x7fdb, + 0x7fdc, 0x8021, 0x8164, 0x8160, 0x8177, 0x815c, 0x8169, 0x815b, + 0x8162, 0x8172, 0x6721, 0x815e, 0x8176, 0x8167, 0x816f, 0x8144, + 0x8161, 0x821d, 0x8249, 0x8244, 0x8240, 0x8242, 0x8245, 0x84f1, + 0x843f, 0x8456, 0x8476, 0x8479, 0x848f, 0x848d, 0x8465, 0x8451, + 0x8440, 0x8486, 0x8467, 0x8430, 0x844d, 0x847d, 0x845a, 0x8459, + 0x8474, 0x8473, 0x845d, 0x8507, 0x845e, 0x8437, 0x843a, 0x8434, + 0x847a, 0x8443, 0x8478, 0x8432, 0x8445, 0x8429, 0x83d9, 0x844b, + 0x842f, 0x8442, 0x842d, 0x845f, 0x8470, 0x8439, 0x844e, 0x844c, + 0x8452, 0x846f, 0x84c5, 0x848e, 0x843b, 0x8447, 0x8436, 0x8433, + 0x8468, 0x847e, 0x8444, 0x842b, 0x8460, 0x8454, 0x846e, 0x8450, + 0x870b, 0x8704, 0x86f7, 0x870c, 0x86fa, 0x86d6, 0x86f5, 0x874d, + 0x86f8, 0x870e, 0x8709, 0x8701, 0x86f6, 0x870d, 0x8705, 0x88d6, + 0x88cb, 0x88cd, 0x88ce, 0x88de, 0x88db, 0x88da, 0x88cc, 0x88d0, + 0x8985, 0x899b, 0x89df, 0x89e5, 0x89e4, + /* 0xe0 */ + 0x89e1, 0x89e0, 0x89e2, 0x89dc, 0x89e6, 0x8a76, 0x8a86, 0x8a7f, + 0x8a61, 0x8a3f, 0x8a77, 0x8a82, 0x8a84, 0x8a75, 0x8a83, 0x8a81, + 0x8a74, 0x8a7a, 0x8c3c, 0x8c4b, 0x8c4a, 0x8c65, 0x8c64, 0x8c66, + 0x8c86, 0x8c84, 0x8c85, 0x8ccc, 0x8d68, 0x8d69, 0x8d91, 0x8d8c, + 0x8d8e, 0x8d8f, 0x8d8d, 0x8d93, 0x8d94, 0x8d90, 0x8d92, 0x8df0, + 0x8de0, 0x8dec, 0x8df1, 0x8dee, 0x8dd0, 0x8de9, 0x8de3, 0x8de2, + 0x8de7, 0x8df2, 0x8deb, 0x8df4, 0x8f06, 0x8eff, 0x8f01, 0x8f00, + 0x8f05, 0x8f07, 0x8f08, 0x8f02, 0x8f0b, 0x9052, 0x903f, 0x9044, + 0x9049, 0x903d, 0x9110, 0x910d, 0x910f, 0x9111, 0x9116, 0x9114, + 0x910b, 0x910e, 0x916e, 0x916f, 0x9248, 0x9252, 0x9230, 0x923a, + 0x9266, 0x9233, 0x9265, 0x925e, 0x9283, 0x922e, 0x924a, 0x9246, + 0x926d, 0x926c, 0x924f, 0x9260, 0x9267, 0x926f, 0x9236, 0x9261, + 0x9270, 0x9231, 0x9254, 0x9263, 0x9250, 0x9272, 0x924e, 0x9253, + 0x924c, 0x9256, 0x9232, 0x959f, 0x959c, 0x959e, 0x959b, 0x9692, + 0x9693, 0x9691, 0x9697, 0x96ce, 0x96fa, 0x96fd, 0x96f8, 0x96f5, + 0x9773, 0x9777, 0x9778, 0x9772, 0x980f, 0x980d, 0x980e, 0x98ac, + 0x98f6, 0x98f9, 0x99af, 0x99b2, 0x99b0, 0x99b5, 0x9aad, 0x9aab, + 0x9b5b, 0x9cea, 0x9ced, 0x9ce7, 0x9e80, 0x9efd, 0x50e6, 0x50d4, + 0x50d7, 0x50e8, 0x50f3, 0x50db, 0x50ea, 0x50dd, 0x50e4, 0x50d3, + 0x50ec, 0x50f0, 0x50ef, 0x50e3, 0x50e0, + /* 0xe1 */ + 0x51d8, 0x5280, 0x5281, 0x52e9, 0x52eb, 0x5330, 0x53ac, 0x5627, + 0x5615, 0x560c, 0x5612, 0x55fc, 0x560f, 0x561c, 0x5601, 0x5613, + 0x5602, 0x55fa, 0x561d, 0x5604, 0x55ff, 0x55f9, 0x5889, 0x587c, + 0x5890, 0x5898, 0x5886, 0x5881, 0x587f, 0x5874, 0x588b, 0x587a, + 0x5887, 0x5891, 0x588e, 0x5876, 0x5882, 0x5888, 0x587b, 0x5894, + 0x588f, 0x58fe, 0x596b, 0x5adc, 0x5aee, 0x5ae5, 0x5ad5, 0x5aea, + 0x5ada, 0x5aed, 0x5aeb, 0x5af3, 0x5ae2, 0x5ae0, 0x5adb, 0x5aec, + 0x5ade, 0x5add, 0x5ad9, 0x5ae8, 0x5adf, 0x5b77, 0x5be0, 0x5be3, + 0x5c63, 0x5d82, 0x5d80, 0x5d7d, 0x5d86, 0x5d7a, 0x5d81, 0x5d77, + 0x5d8a, 0x5d89, 0x5d88, 0x5d7e, 0x5d7c, 0x5d8d, 0x5d79, 0x5d7f, + 0x5e58, 0x5e59, 0x5e53, 0x5ed8, 0x5ed1, 0x5ed7, 0x5ece, 0x5edc, + 0x5ed5, 0x5ed9, 0x5ed2, 0x5ed4, 0x5f44, 0x5f43, 0x5f6f, 0x5fb6, + 0x612c, 0x6128, 0x6141, 0x615e, 0x6171, 0x6173, 0x6152, 0x6153, + 0x6172, 0x616c, 0x6180, 0x6174, 0x6154, 0x617a, 0x615b, 0x6165, + 0x613b, 0x616a, 0x6161, 0x6156, 0x6229, 0x6227, 0x622b, 0x642b, + 0x644d, 0x645b, 0x645d, 0x6474, 0x6476, 0x6472, 0x6473, 0x647d, + 0x6475, 0x6466, 0x64a6, 0x644e, 0x6482, 0x645e, 0x645c, 0x644b, + 0x6453, 0x6460, 0x6450, 0x647f, 0x643f, 0x646c, 0x646b, 0x6459, + 0x6465, 0x6477, 0x6573, 0x65a0, 0x66a1, 0x66a0, 0x669f, 0x6705, + 0x6704, 0x6722, 0x69b1, 0x69b6, 0x69c9, + /* 0xe2 */ + 0x69a0, 0x69ce, 0x6996, 0x69b0, 0x69ac, 0x69bc, 0x6991, 0x6999, + 0x698e, 0x69a7, 0x698d, 0x69a9, 0x69be, 0x69af, 0x69bf, 0x69c4, + 0x69bd, 0x69a4, 0x69d4, 0x69b9, 0x69ca, 0x699a, 0x69cf, 0x69b3, + 0x6993, 0x69aa, 0x69a1, 0x699e, 0x69d9, 0x6997, 0x6990, 0x69c2, + 0x69b5, 0x69a5, 0x69c6, 0x6b4a, 0x6b4d, 0x6b4b, 0x6b9e, 0x6b9f, + 0x6ba0, 0x6bc3, 0x6bc4, 0x6bfe, 0x6ece, 0x6ef5, 0x6ef1, 0x6f03, + 0x6f25, 0x6ef8, 0x6f37, 0x6efb, 0x6f2e, 0x6f09, 0x6f4e, 0x6f19, + 0x6f1a, 0x6f27, 0x6f18, 0x6f3b, 0x6f12, 0x6eed, 0x6f0a, 0x6f36, + 0x6f73, 0x6ef9, 0x6eee, 0x6f2d, 0x6f40, 0x6f30, 0x6f3c, 0x6f35, + 0x6eeb, 0x6f07, 0x6f0e, 0x6f43, 0x6f05, 0x6efd, 0x6ef6, 0x6f39, + 0x6f1c, 0x6efc, 0x6f3a, 0x6f1f, 0x6f0d, 0x6f1e, 0x6f08, 0x6f21, + 0x7187, 0x7190, 0x7189, 0x7180, 0x7185, 0x7182, 0x718f, 0x717b, + 0x7186, 0x7181, 0x7197, 0x7244, 0x7253, 0x7297, 0x7295, 0x7293, + 0x7343, 0x734d, 0x7351, 0x734c, 0x7462, 0x7473, 0x7471, 0x7475, + 0x7472, 0x7467, 0x746e, 0x7500, 0x7502, 0x7503, 0x757d, 0x7590, + 0x7616, 0x7608, 0x760c, 0x7615, 0x7611, 0x760a, 0x7614, 0x76b8, + 0x7781, 0x777c, 0x7785, 0x7782, 0x776e, 0x7780, 0x776f, 0x777e, + 0x7783, 0x78b2, 0x78aa, 0x78b4, 0x78ad, 0x78a8, 0x787e, 0x78ab, + 0x789e, 0x78a5, 0x78a0, 0x78ac, 0x78a2, 0x78a4, 0x7998, 0x798a, + 0x798b, 0x7996, 0x7995, 0x7994, 0x7993, + /* 0xe3 */ + 0x7997, 0x7988, 0x7992, 0x7990, 0x7a2b, 0x7a4a, 0x7a30, 0x7a2f, + 0x7a28, 0x7a26, 0x7aa8, 0x7aab, 0x7aac, 0x7aee, 0x7b88, 0x7b9c, + 0x7b8a, 0x7b91, 0x7b90, 0x7b96, 0x7b8d, 0x7b8c, 0x7b9b, 0x7b8e, + 0x7b85, 0x7b98, 0x5284, 0x7b99, 0x7ba4, 0x7b82, 0x7cbb, 0x7cbf, + 0x7cbc, 0x7cba, 0x7da7, 0x7db7, 0x7dc2, 0x7da3, 0x7daa, 0x7dc1, + 0x7dc0, 0x7dc5, 0x7d9d, 0x7dce, 0x7dc4, 0x7dc6, 0x7dcb, 0x7dcc, + 0x7daf, 0x7db9, 0x7d96, 0x7dbc, 0x7d9f, 0x7da6, 0x7dae, 0x7da9, + 0x7da1, 0x7dc9, 0x7f73, 0x7fe2, 0x7fe3, 0x7fe5, 0x7fde, 0x8024, + 0x805d, 0x805c, 0x8189, 0x8186, 0x8183, 0x8187, 0x818d, 0x818c, + 0x818b, 0x8215, 0x8497, 0x84a4, 0x84a1, 0x849f, 0x84ba, 0x84ce, + 0x84c2, 0x84ac, 0x84ae, 0x84ab, 0x84b9, 0x84b4, 0x84c1, 0x84cd, + 0x84aa, 0x849a, 0x84b1, 0x84d0, 0x849d, 0x84a7, 0x84bb, 0x84a2, + 0x8494, 0x84c7, 0x84cc, 0x849b, 0x84a9, 0x84af, 0x84a8, 0x84d6, + 0x8498, 0x84b6, 0x84cf, 0x84a0, 0x84d7, 0x84d4, 0x84d2, 0x84db, + 0x84b0, 0x8491, 0x8661, 0x8733, 0x8723, 0x8728, 0x876b, 0x8740, + 0x872e, 0x871e, 0x8721, 0x8719, 0x871b, 0x8743, 0x872c, 0x8741, + 0x873e, 0x8746, 0x8720, 0x8732, 0x872a, 0x872d, 0x873c, 0x8712, + 0x873a, 0x8731, 0x8735, 0x8742, 0x8726, 0x8727, 0x8738, 0x8724, + 0x871a, 0x8730, 0x8711, 0x88f7, 0x88e7, 0x88f1, 0x88f2, 0x88fa, + 0x88fe, 0x88ee, 0x88fc, 0x88f6, 0x88fb, + /* 0xe4 */ + 0x88f0, 0x88ec, 0x88eb, 0x899d, 0x89a1, 0x899f, 0x899e, 0x89e9, + 0x89eb, 0x89e8, 0x8aab, 0x8a99, 0x8a8b, 0x8a92, 0x8a8f, 0x8a96, + 0x8c3d, 0x8c68, 0x8c69, 0x8cd5, 0x8ccf, 0x8cd7, 0x8d96, 0x8e09, + 0x8e02, 0x8dff, 0x8e0d, 0x8dfd, 0x8e0a, 0x8e03, 0x8e07, 0x8e06, + 0x8e05, 0x8dfe, 0x8e00, 0x8e04, 0x8f10, 0x8f11, 0x8f0e, 0x8f0d, + 0x9123, 0x911c, 0x9120, 0x9122, 0x911f, 0x911d, 0x911a, 0x9124, + 0x9121, 0x911b, 0x917a, 0x9172, 0x9179, 0x9173, 0x92a5, 0x92a4, + 0x9276, 0x929b, 0x927a, 0x92a0, 0x9294, 0x92aa, 0x928d, 0x92a6, + 0x929a, 0x92ab, 0x9279, 0x9297, 0x927f, 0x92a3, 0x92ee, 0x928e, + 0x9282, 0x9295, 0x92a2, 0x927d, 0x9288, 0x92a1, 0x928a, 0x9286, + 0x928c, 0x9299, 0x92a7, 0x927e, 0x9287, 0x92a9, 0x929d, 0x928b, + 0x922d, 0x969e, 0x96a1, 0x96ff, 0x9758, 0x977d, 0x977a, 0x977e, + 0x9783, 0x9780, 0x9782, 0x977b, 0x9784, 0x9781, 0x977f, 0x97ce, + 0x97cd, 0x9816, 0x98ad, 0x98ae, 0x9902, 0x9900, 0x9907, 0x999d, + 0x999c, 0x99c3, 0x99b9, 0x99bb, 0x99ba, 0x99c2, 0x99bd, 0x99c7, + 0x9ab1, 0x9ae3, 0x9ae7, 0x9b3e, 0x9b3f, 0x9b60, 0x9b61, 0x9b5f, + 0x9cf1, 0x9cf2, 0x9cf5, 0x9ea7, 0x50ff, 0x5103, 0x5130, 0x50f8, + 0x5106, 0x5107, 0x50f6, 0x50fe, 0x510b, 0x510c, 0x50fd, 0x510a, + 0x528b, 0x528c, 0x52f1, 0x52ef, 0x5648, 0x5642, 0x564c, 0x5635, + 0x5641, 0x564a, 0x5649, 0x5646, 0x5658, + /* 0xe5 */ + 0x565a, 0x5640, 0x5633, 0x563d, 0x562c, 0x563e, 0x5638, 0x562a, + 0x563a, 0x571a, 0x58ab, 0x589d, 0x58b1, 0x58a0, 0x58a3, 0x58af, + 0x58ac, 0x58a5, 0x58a1, 0x58ff, 0x5aff, 0x5af4, 0x5afd, 0x5af7, + 0x5af6, 0x5b03, 0x5af8, 0x5b02, 0x5af9, 0x5b01, 0x5b07, 0x5b05, + 0x5b0f, 0x5c67, 0x5d99, 0x5d97, 0x5d9f, 0x5d92, 0x5da2, 0x5d93, + 0x5d95, 0x5da0, 0x5d9c, 0x5da1, 0x5d9a, 0x5d9e, 0x5e69, 0x5e5d, + 0x5e60, 0x5e5c, 0x7df3, 0x5edb, 0x5ede, 0x5ee1, 0x5f49, 0x5fb2, + 0x618b, 0x6183, 0x6179, 0x61b1, 0x61b0, 0x61a2, 0x6189, 0x619b, + 0x6193, 0x61af, 0x61ad, 0x619f, 0x6192, 0x61aa, 0x61a1, 0x618d, + 0x6166, 0x61b3, 0x622d, 0x646e, 0x6470, 0x6496, 0x64a0, 0x6485, + 0x6497, 0x649c, 0x648f, 0x648b, 0x648a, 0x648c, 0x64a3, 0x649f, + 0x6468, 0x64b1, 0x6498, 0x6576, 0x657a, 0x6579, 0x657b, 0x65b2, + 0x65b3, 0x66b5, 0x66b0, 0x66a9, 0x66b2, 0x66b7, 0x66aa, 0x66af, + 0x6a00, 0x6a06, 0x6a17, 0x69e5, 0x69f8, 0x6a15, 0x69f1, 0x69e4, + 0x6a20, 0x69ff, 0x69ec, 0x69e2, 0x6a1b, 0x6a1d, 0x69fe, 0x6a27, + 0x69f2, 0x69ee, 0x6a14, 0x69f7, 0x69e7, 0x6a40, 0x6a08, 0x69e6, + 0x69fb, 0x6a0d, 0x69fc, 0x69eb, 0x6a09, 0x6a04, 0x6a18, 0x6a25, + 0x6a0f, 0x69f6, 0x6a26, 0x6a07, 0x69f4, 0x6a16, 0x6b51, 0x6ba5, + 0x6ba3, 0x6ba2, 0x6ba6, 0x6c01, 0x6c00, 0x6bff, 0x6c02, 0x6f41, + 0x6f26, 0x6f7e, 0x6f87, 0x6fc6, 0x6f92, + /* 0xe6 */ + 0x6f8d, 0x6f89, 0x6f8c, 0x6f62, 0x6f4f, 0x6f85, 0x6f5a, 0x6f96, + 0x6f76, 0x6f6c, 0x6f82, 0x6f55, 0x6f72, 0x6f52, 0x6f50, 0x6f57, + 0x6f94, 0x6f93, 0x6f5d, 0x6f00, 0x6f61, 0x6f6b, 0x6f7d, 0x6f67, + 0x6f90, 0x6f53, 0x6f8b, 0x6f69, 0x6f7f, 0x6f95, 0x6f63, 0x6f77, + 0x6f6a, 0x6f7b, 0x71b2, 0x71af, 0x719b, 0x71b0, 0x71a0, 0x719a, + 0x71a9, 0x71b5, 0x719d, 0x71a5, 0x719e, 0x71a4, 0x71a1, 0x71aa, + 0x719c, 0x71a7, 0x71b3, 0x7298, 0x729a, 0x7358, 0x7352, 0x735e, + 0x735f, 0x7360, 0x735d, 0x735b, 0x7361, 0x735a, 0x7359, 0x7362, + 0x7487, 0x7489, 0x748a, 0x7486, 0x7481, 0x747d, 0x7485, 0x7488, + 0x747c, 0x7479, 0x7508, 0x7507, 0x757e, 0x7625, 0x761e, 0x7619, + 0x761d, 0x761c, 0x7623, 0x761a, 0x7628, 0x761b, 0x769c, 0x769d, + 0x769e, 0x769b, 0x778d, 0x778f, 0x7789, 0x7788, 0x78cd, 0x78bb, + 0x78cf, 0x78cc, 0x78d1, 0x78ce, 0x78d4, 0x78c8, 0x78c3, 0x78c4, + 0x78c9, 0x799a, 0x79a1, 0x79a0, 0x799c, 0x79a2, 0x799b, 0x6b76, + 0x7a39, 0x7ab2, 0x7ab4, 0x7ab3, 0x7bb7, 0x7bcb, 0x7bbe, 0x7bac, + 0x7bce, 0x7baf, 0x7bb9, 0x7bca, 0x7bb5, 0x7cc5, 0x7cc8, 0x7ccc, + 0x7ccb, 0x7df7, 0x7ddb, 0x7dea, 0x7de7, 0x7dd7, 0x7de1, 0x7e03, + 0x7dfa, 0x7de6, 0x7df6, 0x7df1, 0x7df0, 0x7dee, 0x7ddf, 0x7f76, + 0x7fac, 0x7fb0, 0x7fad, 0x7fed, 0x7feb, 0x7fea, 0x7fec, 0x7fe6, + 0x7fe8, 0x8064, 0x8067, 0x81a3, 0x819f, + /* 0xe7 */ + 0x819e, 0x8195, 0x81a2, 0x8199, 0x8197, 0x8216, 0x824f, 0x8253, + 0x8252, 0x8250, 0x824e, 0x8251, 0x8524, 0x853b, 0x850f, 0x8500, + 0x8529, 0x850e, 0x8509, 0x850d, 0x851f, 0x850a, 0x8527, 0x851c, + 0x84fb, 0x852b, 0x84fa, 0x8508, 0x850c, 0x84f4, 0x852a, 0x84f2, + 0x8515, 0x84f7, 0x84eb, 0x84f3, 0x84fc, 0x8512, 0x84ea, 0x84e9, + 0x8516, 0x84fe, 0x8528, 0x851d, 0x852e, 0x8502, 0x84fd, 0x851e, + 0x84f6, 0x8531, 0x8526, 0x84e7, 0x84e8, 0x84f0, 0x84ef, 0x84f9, + 0x8518, 0x8520, 0x8530, 0x850b, 0x8519, 0x852f, 0x8662, 0x8756, + 0x8763, 0x8764, 0x8777, 0x87e1, 0x8773, 0x8758, 0x8754, 0x875b, + 0x8752, 0x8761, 0x875a, 0x8751, 0x875e, 0x876d, 0x876a, 0x8750, + 0x874e, 0x875f, 0x875d, 0x876f, 0x876c, 0x877a, 0x876e, 0x875c, + 0x8765, 0x874f, 0x877b, 0x8775, 0x8762, 0x8767, 0x8769, 0x885a, + 0x8905, 0x890c, 0x8914, 0x890b, 0x8917, 0x8918, 0x8919, 0x8906, + 0x8916, 0x8911, 0x890e, 0x8909, 0x89a2, 0x89a4, 0x89a3, 0x89ed, + 0x89f0, 0x89ec, 0x8acf, 0x8ac6, 0x8ab8, 0x8ad3, 0x8ad1, 0x8ad4, + 0x8ad5, 0x8abb, 0x8ad7, 0x8abe, 0x8ac0, 0x8ac5, 0x8ad8, 0x8ac3, + 0x8aba, 0x8abd, 0x8ad9, 0x8c3e, 0x8c4d, 0x8c8f, 0x8ce5, 0x8cdf, + 0x8cd9, 0x8ce8, 0x8cda, 0x8cdd, 0x8ce7, 0x8da0, 0x8d9c, 0x8da1, + 0x8d9b, 0x8e20, 0x8e23, 0x8e25, 0x8e24, 0x8e2e, 0x8e15, 0x8e1b, + 0x8e16, 0x8e11, 0x8e19, 0x8e26, 0x8e27, + /* 0xe8 */ + 0x8e14, 0x8e12, 0x8e18, 0x8e13, 0x8e1c, 0x8e17, 0x8e1a, 0x8f2c, + 0x8f24, 0x8f18, 0x8f1a, 0x8f20, 0x8f23, 0x8f16, 0x8f17, 0x9073, + 0x9070, 0x906f, 0x9067, 0x906b, 0x912f, 0x912b, 0x9129, 0x912a, + 0x9132, 0x9126, 0x912e, 0x9185, 0x9186, 0x918a, 0x9181, 0x9182, + 0x9184, 0x9180, 0x92d0, 0x92c3, 0x92c4, 0x92c0, 0x92d9, 0x92b6, + 0x92cf, 0x92f1, 0x92df, 0x92d8, 0x92e9, 0x92d7, 0x92dd, 0x92cc, + 0x92ef, 0x92c2, 0x92e8, 0x92ca, 0x92c8, 0x92ce, 0x92e6, 0x92cd, + 0x92d5, 0x92c9, 0x92e0, 0x92de, 0x92e7, 0x92d1, 0x92d3, 0x92b5, + 0x92e1, 0x92c6, 0x92b4, 0x957c, 0x95ac, 0x95ab, 0x95ae, 0x95b0, + 0x96a4, 0x96a2, 0x96d3, 0x9705, 0x9708, 0x9702, 0x975a, 0x978a, + 0x978e, 0x9788, 0x97d0, 0x97cf, 0x981e, 0x981d, 0x9826, 0x9829, + 0x9828, 0x9820, 0x981b, 0x9827, 0x98b2, 0x9908, 0x98fa, 0x9911, + 0x9914, 0x9916, 0x9917, 0x9915, 0x99dc, 0x99cd, 0x99cf, 0x99d3, + 0x99d4, 0x99ce, 0x99c9, 0x99d6, 0x99d8, 0x99cb, 0x99d7, 0x99cc, + 0x9ab3, 0x9aec, 0x9aeb, 0x9af3, 0x9af2, 0x9af1, 0x9b46, 0x9b43, + 0x9b67, 0x9b74, 0x9b71, 0x9b66, 0x9b76, 0x9b75, 0x9b70, 0x9b68, + 0x9b64, 0x9b6c, 0x9cfc, 0x9cfa, 0x9cfd, 0x9cff, 0x9cf7, 0x9d07, + 0x9d00, 0x9cf9, 0x9cfb, 0x9d08, 0x9d05, 0x9d04, 0x9e83, 0x9ed3, + 0x9f0f, 0x9f10, 0x511c, 0x5113, 0x5117, 0x511a, 0x5111, 0x51de, + 0x5334, 0x53e1, 0x5670, 0x5660, 0x566e, + /* 0xe9 */ + 0x5673, 0x5666, 0x5663, 0x566d, 0x5672, 0x565e, 0x5677, 0x571c, + 0x571b, 0x58c8, 0x58bd, 0x58c9, 0x58bf, 0x58ba, 0x58c2, 0x58bc, + 0x58c6, 0x5b17, 0x5b19, 0x5b1b, 0x5b21, 0x5b14, 0x5b13, 0x5b10, + 0x5b16, 0x5b28, 0x5b1a, 0x5b20, 0x5b1e, 0x5bef, 0x5dac, 0x5db1, + 0x5da9, 0x5da7, 0x5db5, 0x5db0, 0x5dae, 0x5daa, 0x5da8, 0x5db2, + 0x5dad, 0x5daf, 0x5db4, 0x5e67, 0x5e68, 0x5e66, 0x5e6f, 0x5ee9, + 0x5ee7, 0x5ee6, 0x5ee8, 0x5ee5, 0x5f4b, 0x5fbc, 0x619d, 0x61a8, + 0x6196, 0x61c5, 0x61b4, 0x61c6, 0x61c1, 0x61cc, 0x61ba, 0x61bf, + 0x61b8, 0x618c, 0x64d7, 0x64d6, 0x64d0, 0x64cf, 0x64c9, 0x64bd, + 0x6489, 0x64c3, 0x64db, 0x64f3, 0x64d9, 0x6533, 0x657f, 0x657c, + 0x65a2, 0x66c8, 0x66be, 0x66c0, 0x66ca, 0x66cb, 0x66cf, 0x66bd, + 0x66bb, 0x66ba, 0x66cc, 0x6723, 0x6a34, 0x6a66, 0x6a49, 0x6a67, + 0x6a32, 0x6a68, 0x6a3e, 0x6a5d, 0x6a6d, 0x6a76, 0x6a5b, 0x6a51, + 0x6a28, 0x6a5a, 0x6a3b, 0x6a3f, 0x6a41, 0x6a6a, 0x6a64, 0x6a50, + 0x6a4f, 0x6a54, 0x6a6f, 0x6a69, 0x6a60, 0x6a3c, 0x6a5e, 0x6a56, + 0x6a55, 0x6a4d, 0x6a4e, 0x6a46, 0x6b55, 0x6b54, 0x6b56, 0x6ba7, + 0x6baa, 0x6bab, 0x6bc8, 0x6bc7, 0x6c04, 0x6c03, 0x6c06, 0x6fad, + 0x6fcb, 0x6fa3, 0x6fc7, 0x6fbc, 0x6fce, 0x6fc8, 0x6f5e, 0x6fc4, + 0x6fbd, 0x6f9e, 0x6fca, 0x6fa8, 0x7004, 0x6fa5, 0x6fae, 0x6fba, + 0x6fac, 0x6faa, 0x6fcf, 0x6fbf, 0x6fb8, + /* 0xea */ + 0x6fa2, 0x6fc9, 0x6fab, 0x6fcd, 0x6faf, 0x6fb2, 0x6fb0, 0x71c5, + 0x71c2, 0x71bf, 0x71b8, 0x71d6, 0x71c0, 0x71c1, 0x71cb, 0x71d4, + 0x71ca, 0x71c7, 0x71cf, 0x71bd, 0x71d8, 0x71bc, 0x71c6, 0x71da, + 0x71db, 0x729d, 0x729e, 0x7369, 0x7366, 0x7367, 0x736c, 0x7365, + 0x736b, 0x736a, 0x747f, 0x749a, 0x74a0, 0x7494, 0x7492, 0x7495, + 0x74a1, 0x750b, 0x7580, 0x762f, 0x762d, 0x7631, 0x763d, 0x7633, + 0x763c, 0x7635, 0x7632, 0x7630, 0x76bb, 0x76e6, 0x779a, 0x779d, + 0x77a1, 0x779c, 0x779b, 0x77a2, 0x77a3, 0x7795, 0x7799, 0x7797, + 0x78dd, 0x78e9, 0x78e5, 0x78ea, 0x78de, 0x78e3, 0x78db, 0x78e1, + 0x78e2, 0x78ed, 0x78df, 0x78e0, 0x79a4, 0x7a44, 0x7a48, 0x7a47, + 0x7ab6, 0x7ab8, 0x7ab5, 0x7ab1, 0x7ab7, 0x7bde, 0x7be3, 0x7be7, + 0x7bdd, 0x7bd5, 0x7be5, 0x7bda, 0x7be8, 0x7bf9, 0x7bd4, 0x7bea, + 0x7be2, 0x7bdc, 0x7beb, 0x7bd8, 0x7bdf, 0x7cd2, 0x7cd4, 0x7cd7, + 0x7cd0, 0x7cd1, 0x7e12, 0x7e21, 0x7e17, 0x7e0c, 0x7e1f, 0x7e20, + 0x7e13, 0x7e0e, 0x7e1c, 0x7e15, 0x7e1a, 0x7e22, 0x7e0b, 0x7e0f, + 0x7e16, 0x7e0d, 0x7e14, 0x7e25, 0x7e24, 0x7f43, 0x7f7b, 0x7f7c, + 0x7f7a, 0x7fb1, 0x7fef, 0x802a, 0x8029, 0x806c, 0x81b1, 0x81a6, + 0x81ae, 0x81b9, 0x81b5, 0x81ab, 0x81b0, 0x81ac, 0x81b4, 0x81b2, + 0x81b7, 0x81a7, 0x81f2, 0x8255, 0x8256, 0x8257, 0x8556, 0x8545, + 0x856b, 0x854d, 0x8553, 0x8561, 0x8558, + /* 0xeb */ + 0x8540, 0x8546, 0x8564, 0x8541, 0x8562, 0x8544, 0x8551, 0x8547, + 0x8563, 0x853e, 0x855b, 0x8571, 0x854e, 0x856e, 0x8575, 0x8555, + 0x8567, 0x8560, 0x858c, 0x8566, 0x855d, 0x8554, 0x8565, 0x856c, + 0x8663, 0x8665, 0x8664, 0x879b, 0x878f, 0x8797, 0x8793, 0x8792, + 0x8788, 0x8781, 0x8796, 0x8798, 0x8779, 0x8787, 0x87a3, 0x8785, + 0x8790, 0x8791, 0x879d, 0x8784, 0x8794, 0x879c, 0x879a, 0x8789, + 0x891e, 0x8926, 0x8930, 0x892d, 0x892e, 0x8927, 0x8931, 0x8922, + 0x8929, 0x8923, 0x892f, 0x892c, 0x891f, 0x89f1, 0x8ae0, 0x8ae2, + 0x8af2, 0x8af4, 0x8af5, 0x8add, 0x8b14, 0x8ae4, 0x8adf, 0x8af0, + 0x8ac8, 0x8ade, 0x8ae1, 0x8ae8, 0x8aff, 0x8aef, 0x8afb, 0x8c91, + 0x8c92, 0x8c90, 0x8cf5, 0x8cee, 0x8cf1, 0x8cf0, 0x8cf3, 0x8d6c, + 0x8d6e, 0x8da5, 0x8da7, 0x8e33, 0x8e3e, 0x8e38, 0x8e40, 0x8e45, + 0x8e36, 0x8e3c, 0x8e3d, 0x8e41, 0x8e30, 0x8e3f, 0x8ebd, 0x8f36, + 0x8f2e, 0x8f35, 0x8f32, 0x8f39, 0x8f37, 0x8f34, 0x9076, 0x9079, + 0x907b, 0x9086, 0x90fa, 0x9133, 0x9135, 0x9136, 0x9193, 0x9190, + 0x9191, 0x918d, 0x918f, 0x9327, 0x931e, 0x9308, 0x931f, 0x9306, + 0x930f, 0x937a, 0x9338, 0x933c, 0x931b, 0x9323, 0x9312, 0x9301, + 0x9346, 0x932d, 0x930e, 0x930d, 0x92cb, 0x931d, 0x92fa, 0x9325, + 0x9313, 0x92f9, 0x92f7, 0x9334, 0x9302, 0x9324, 0x92ff, 0x9329, + 0x9339, 0x9335, 0x932a, 0x9314, 0x930c, + /* 0xec */ + 0x930b, 0x92fe, 0x9309, 0x9300, 0x92fb, 0x9316, 0x95bc, 0x95cd, + 0x95be, 0x95b9, 0x95ba, 0x95b6, 0x95bf, 0x95b5, 0x95bd, 0x96a9, + 0x96d4, 0x970b, 0x9712, 0x9710, 0x9799, 0x9797, 0x9794, 0x97f0, + 0x97f8, 0x9835, 0x982f, 0x9832, 0x9924, 0x991f, 0x9927, 0x9929, + 0x999e, 0x99ee, 0x99ec, 0x99e5, 0x99e4, 0x99f0, 0x99e3, 0x99ea, + 0x99e9, 0x99e7, 0x9ab9, 0x9abf, 0x9ab4, 0x9abb, 0x9af6, 0x9afa, + 0x9af9, 0x9af7, 0x9b33, 0x9b80, 0x9b85, 0x9b87, 0x9b7c, 0x9b7e, + 0x9b7b, 0x9b82, 0x9b93, 0x9b92, 0x9b90, 0x9b7a, 0x9b95, 0x9b7d, + 0x9b88, 0x9d25, 0x9d17, 0x9d20, 0x9d1e, 0x9d14, 0x9d29, 0x9d1d, + 0x9d18, 0x9d22, 0x9d10, 0x9d19, 0x9d1f, 0x9e88, 0x9e86, 0x9e87, + 0x9eae, 0x9ead, 0x9ed5, 0x9ed6, 0x9efa, 0x9f12, 0x9f3d, 0x5126, + 0x5125, 0x5122, 0x5124, 0x5120, 0x5129, 0x52f4, 0x5693, 0x568c, + 0x568d, 0x5686, 0x5684, 0x5683, 0x567e, 0x5682, 0x567f, 0x5681, + 0x58d6, 0x58d4, 0x58cf, 0x58d2, 0x5b2d, 0x5b25, 0x5b32, 0x5b23, + 0x5b2c, 0x5b27, 0x5b26, 0x5b2f, 0x5b2e, 0x5b7b, 0x5bf1, 0x5bf2, + 0x5db7, 0x5e6c, 0x5e6a, 0x5fbe, 0x5fbb, 0x61c3, 0x61b5, 0x61bc, + 0x61e7, 0x61e0, 0x61e5, 0x61e4, 0x61e8, 0x61de, 0x64ef, 0x64e9, + 0x64e3, 0x64eb, 0x64e4, 0x64e8, 0x6581, 0x6580, 0x65b6, 0x65da, + 0x66d2, 0x6a8d, 0x6a96, 0x6a81, 0x6aa5, 0x6a89, 0x6a9f, 0x6a9b, + 0x6aa1, 0x6a9e, 0x6a87, 0x6a93, 0x6a8e, + /* 0xed */ + 0x6a95, 0x6a83, 0x6aa8, 0x6aa4, 0x6a91, 0x6a7f, 0x6aa6, 0x6a9a, + 0x6a85, 0x6a8c, 0x6a92, 0x6b5b, 0x6bad, 0x6c09, 0x6fcc, 0x6fa9, + 0x6ff4, 0x6fd4, 0x6fe3, 0x6fdc, 0x6fed, 0x6fe7, 0x6fe6, 0x6fde, + 0x6ff2, 0x6fdd, 0x6fe2, 0x6fe8, 0x71e1, 0x71f1, 0x71e8, 0x71f2, + 0x71e4, 0x71f0, 0x71e2, 0x7373, 0x736e, 0x736f, 0x7497, 0x74b2, + 0x74ab, 0x7490, 0x74aa, 0x74ad, 0x74b1, 0x74a5, 0x74af, 0x7510, + 0x7511, 0x7512, 0x750f, 0x7584, 0x7643, 0x7648, 0x7649, 0x7647, + 0x76a4, 0x76e9, 0x77b5, 0x77ab, 0x77b2, 0x77b7, 0x77b6, 0x77b4, + 0x77b1, 0x77a8, 0x77f0, 0x78f3, 0x78fd, 0x7902, 0x78fb, 0x78fc, + 0x78f2, 0x7905, 0x78f9, 0x78fe, 0x7904, 0x79ab, 0x79a8, 0x7a5c, + 0x7a5b, 0x7a56, 0x7a58, 0x7a54, 0x7a5a, 0x7abe, 0x7ac0, 0x7ac1, + 0x7c05, 0x7c0f, 0x7bf2, 0x7c00, 0x7bff, 0x7bfb, 0x7c0e, 0x7bf4, + 0x7c0b, 0x7bf3, 0x7c02, 0x7c09, 0x7c03, 0x7c01, 0x7bf8, 0x7bfd, + 0x7c06, 0x7bf0, 0x7bf1, 0x7c10, 0x7c0a, 0x7ce8, 0x7e2d, 0x7e3c, + 0x7e42, 0x7e33, 0x9848, 0x7e38, 0x7e2a, 0x7e49, 0x7e40, 0x7e47, + 0x7e29, 0x7e4c, 0x7e30, 0x7e3b, 0x7e36, 0x7e44, 0x7e3a, 0x7f45, + 0x7f7f, 0x7f7e, 0x7f7d, 0x7ff4, 0x7ff2, 0x802c, 0x81bb, 0x81c4, + 0x81cc, 0x81ca, 0x81c5, 0x81c7, 0x81bc, 0x81e9, 0x825b, 0x825a, + 0x825c, 0x8583, 0x8580, 0x858f, 0x85a7, 0x8595, 0x85a0, 0x858b, + 0x85a3, 0x857b, 0x85a4, 0x859a, 0x859e, + /* 0xee */ + 0x8577, 0x857c, 0x8589, 0x85a1, 0x857a, 0x8578, 0x8557, 0x858e, + 0x8596, 0x8586, 0x858d, 0x8599, 0x859d, 0x8581, 0x85a2, 0x8582, + 0x8588, 0x8585, 0x8579, 0x8576, 0x8598, 0x8590, 0x859f, 0x8668, + 0x87be, 0x87aa, 0x87ad, 0x87c5, 0x87b0, 0x87ac, 0x87b9, 0x87b5, + 0x87bc, 0x87ae, 0x87c9, 0x87c3, 0x87c2, 0x87cc, 0x87b7, 0x87af, + 0x87c4, 0x87ca, 0x87b4, 0x87b6, 0x87bf, 0x87b8, 0x87bd, 0x87de, + 0x87b2, 0x8935, 0x8933, 0x893c, 0x893e, 0x8941, 0x8952, 0x8937, + 0x8942, 0x89ad, 0x89af, 0x89ae, 0x89f2, 0x89f3, 0x8b1e, 0x8b18, + 0x8b16, 0x8b11, 0x8b05, 0x8b0b, 0x8b22, 0x8b0f, 0x8b12, 0x8b15, + 0x8b07, 0x8b0d, 0x8b08, 0x8b06, 0x8b1c, 0x8b13, 0x8b1a, 0x8c4f, + 0x8c70, 0x8c72, 0x8c71, 0x8c6f, 0x8c95, 0x8c94, 0x8cf9, 0x8d6f, + 0x8e4e, 0x8e4d, 0x8e53, 0x8e50, 0x8e4c, 0x8e47, 0x8f43, 0x8f40, + 0x9085, 0x907e, 0x9138, 0x919a, 0x91a2, 0x919b, 0x9199, 0x919f, + 0x91a1, 0x919d, 0x91a0, 0x93a1, 0x9383, 0x93af, 0x9364, 0x9356, + 0x9347, 0x937c, 0x9358, 0x935c, 0x9376, 0x9349, 0x9350, 0x9351, + 0x9360, 0x936d, 0x938f, 0x934c, 0x936a, 0x9379, 0x9357, 0x9355, + 0x9352, 0x934f, 0x9371, 0x9377, 0x937b, 0x9361, 0x935e, 0x9363, + 0x9367, 0x9380, 0x934e, 0x9359, 0x95c7, 0x95c0, 0x95c9, 0x95c3, + 0x95c5, 0x95b7, 0x96ae, 0x96b0, 0x96ac, 0x9720, 0x971f, 0x9718, + 0x971d, 0x9719, 0x979a, 0x97a1, 0x979c, + /* 0xef */ + 0x979e, 0x979d, 0x97d5, 0x97d4, 0x97f1, 0x9841, 0x9844, 0x984a, + 0x9849, 0x9845, 0x9843, 0x9925, 0x992b, 0x992c, 0x992a, 0x9933, + 0x9932, 0x992f, 0x992d, 0x9931, 0x9930, 0x9998, 0x99a3, 0x99a1, + 0x9a02, 0x99fa, 0x99f4, 0x99f7, 0x99f9, 0x99f8, 0x99f6, 0x99fb, + 0x99fd, 0x99fe, 0x99fc, 0x9a03, 0x9abe, 0x9afe, 0x9afd, 0x9b01, + 0x9afc, 0x9b48, 0x9b9a, 0x9ba8, 0x9b9e, 0x9b9b, 0x9ba6, 0x9ba1, + 0x9ba5, 0x9ba4, 0x9b86, 0x9ba2, 0x9ba0, 0x9baf, 0x9d33, 0x9d41, + 0x9d67, 0x9d36, 0x9d2e, 0x9d2f, 0x9d31, 0x9d38, 0x9d30, 0x9d45, + 0x9d42, 0x9d43, 0x9d3e, 0x9d37, 0x9d40, 0x9d3d, 0x7ff5, 0x9d2d, + 0x9e8a, 0x9e89, 0x9e8d, 0x9eb0, 0x9ec8, 0x9eda, 0x9efb, 0x9eff, + 0x9f24, 0x9f23, 0x9f22, 0x9f54, 0x9fa0, 0x5131, 0x512d, 0x512e, + 0x5698, 0x569c, 0x5697, 0x569a, 0x569d, 0x5699, 0x5970, 0x5b3c, + 0x5c69, 0x5c6a, 0x5dc0, 0x5e6d, 0x5e6e, 0x61d8, 0x61df, 0x61ed, + 0x61ee, 0x61f1, 0x61ea, 0x61f0, 0x61eb, 0x61d6, 0x61e9, 0x64ff, + 0x6504, 0x64fd, 0x64f8, 0x6501, 0x6503, 0x64fc, 0x6594, 0x65db, + 0x66da, 0x66db, 0x66d8, 0x6ac5, 0x6ab9, 0x6abd, 0x6ae1, 0x6ac6, + 0x6aba, 0x6ab6, 0x6ab7, 0x6ac7, 0x6ab4, 0x6aad, 0x6b5e, 0x6bc9, + 0x6c0b, 0x7007, 0x700c, 0x700d, 0x7001, 0x7005, 0x7014, 0x700e, + 0x6fff, 0x7000, 0x6ffb, 0x7026, 0x6ffc, 0x6ff7, 0x700a, 0x7201, + 0x71ff, 0x71f9, 0x7203, 0x71fd, 0x7376, + /* 0xf0 */ + 0x74b8, 0x74c0, 0x74b5, 0x74c1, 0x74be, 0x74b6, 0x74bb, 0x74c2, + 0x7514, 0x7513, 0x765c, 0x7664, 0x7659, 0x7650, 0x7653, 0x7657, + 0x765a, 0x76a6, 0x76bd, 0x76ec, 0x77c2, 0x77ba, 0x78ff, 0x790c, + 0x7913, 0x7914, 0x7909, 0x7910, 0x7912, 0x7911, 0x79ad, 0x79ac, + 0x7a5f, 0x7c1c, 0x7c29, 0x7c19, 0x7c20, 0x7c1f, 0x7c2d, 0x7c1d, + 0x7c26, 0x7c28, 0x7c22, 0x7c25, 0x7c30, 0x7e5c, 0x7e50, 0x7e56, + 0x7e63, 0x7e58, 0x7e62, 0x7e5f, 0x7e51, 0x7e60, 0x7e57, 0x7e53, + 0x7fb5, 0x7fb3, 0x7ff7, 0x7ff8, 0x8075, 0x81d1, 0x81d2, 0x81d0, + 0x825f, 0x825e, 0x85b4, 0x85c6, 0x85c0, 0x85c3, 0x85c2, 0x85b3, + 0x85b5, 0x85bd, 0x85c7, 0x85c4, 0x85bf, 0x85cb, 0x85ce, 0x85c8, + 0x85c5, 0x85b1, 0x85b6, 0x85d2, 0x8624, 0x85b8, 0x85b7, 0x85be, + 0x8669, 0x87e7, 0x87e6, 0x87e2, 0x87db, 0x87eb, 0x87ea, 0x87e5, + 0x87df, 0x87f3, 0x87e4, 0x87d4, 0x87dc, 0x87d3, 0x87ed, 0x87d8, + 0x87e3, 0x87a4, 0x87d7, 0x87d9, 0x8801, 0x87f4, 0x87e8, 0x87dd, + 0x8953, 0x894b, 0x894f, 0x894c, 0x8946, 0x8950, 0x8951, 0x8949, + 0x8b2a, 0x8b27, 0x8b23, 0x8b33, 0x8b30, 0x8b35, 0x8b47, 0x8b2f, + 0x8b3c, 0x8b3e, 0x8b31, 0x8b25, 0x8b37, 0x8b26, 0x8b36, 0x8b2e, + 0x8b24, 0x8b3b, 0x8b3d, 0x8b3a, 0x8c42, 0x8c75, 0x8c99, 0x8c98, + 0x8c97, 0x8cfe, 0x8d04, 0x8d02, 0x8d00, 0x8e5c, 0x8e62, 0x8e60, + 0x8e57, 0x8e56, 0x8e5e, 0x8e65, 0x8e67, + /* 0xf1 */ + 0x8e5b, 0x8e5a, 0x8e61, 0x8e5d, 0x8e69, 0x8e54, 0x8f46, 0x8f47, + 0x8f48, 0x8f4b, 0x9128, 0x913a, 0x913b, 0x913e, 0x91a8, 0x91a5, + 0x91a7, 0x91af, 0x91aa, 0x93b5, 0x938c, 0x9392, 0x93b7, 0x939b, + 0x939d, 0x9389, 0x93a7, 0x938e, 0x93aa, 0x939e, 0x93a6, 0x9395, + 0x9388, 0x9399, 0x939f, 0x938d, 0x93b1, 0x9391, 0x93b2, 0x93a4, + 0x93a8, 0x93b4, 0x93a3, 0x93a5, 0x95d2, 0x95d3, 0x95d1, 0x96b3, + 0x96d7, 0x96da, 0x5dc2, 0x96df, 0x96d8, 0x96dd, 0x9723, 0x9722, + 0x9725, 0x97ac, 0x97ae, 0x97a8, 0x97ab, 0x97a4, 0x97aa, 0x97a2, + 0x97a5, 0x97d7, 0x97d9, 0x97d6, 0x97d8, 0x97fa, 0x9850, 0x9851, + 0x9852, 0x98b8, 0x9941, 0x993c, 0x993a, 0x9a0f, 0x9a0b, 0x9a09, + 0x9a0d, 0x9a04, 0x9a11, 0x9a0a, 0x9a05, 0x9a07, 0x9a06, 0x9ac0, + 0x9adc, 0x9b08, 0x9b04, 0x9b05, 0x9b29, 0x9b35, 0x9b4a, 0x9b4c, + 0x9b4b, 0x9bc7, 0x9bc6, 0x9bc3, 0x9bbf, 0x9bc1, 0x9bb5, 0x9bb8, + 0x9bd3, 0x9bb6, 0x9bc4, 0x9bb9, 0x9bbd, 0x9d5c, 0x9d53, 0x9d4f, + 0x9d4a, 0x9d5b, 0x9d4b, 0x9d59, 0x9d56, 0x9d4c, 0x9d57, 0x9d52, + 0x9d54, 0x9d5f, 0x9d58, 0x9d5a, 0x9e8e, 0x9e8c, 0x9edf, 0x9f01, + 0x9f00, 0x9f16, 0x9f25, 0x9f2b, 0x9f2a, 0x9f29, 0x9f28, 0x9f4c, + 0x9f55, 0x5134, 0x5135, 0x5296, 0x52f7, 0x53b4, 0x56ab, 0x56ad, + 0x56a6, 0x56a7, 0x56aa, 0x56ac, 0x58da, 0x58dd, 0x58db, 0x5912, + 0x5b3d, 0x5b3e, 0x5b3f, 0x5dc3, 0x5e70, + /* 0xf2 */ + 0x5fbf, 0x61fb, 0x6507, 0x6510, 0x650d, 0x6509, 0x650c, 0x650e, + 0x6584, 0x65de, 0x65dd, 0x66de, 0x6ae7, 0x6ae0, 0x6acc, 0x6ad1, + 0x6ad9, 0x6acb, 0x6adf, 0x6adc, 0x6ad0, 0x6aeb, 0x6acf, 0x6acd, + 0x6ade, 0x6b60, 0x6bb0, 0x6c0c, 0x7019, 0x7027, 0x7020, 0x7016, + 0x702b, 0x7021, 0x7022, 0x7023, 0x7029, 0x7017, 0x7024, 0x701c, + 0x702a, 0x720c, 0x720a, 0x7207, 0x7202, 0x7205, 0x72a5, 0x72a6, + 0x72a4, 0x72a3, 0x72a1, 0x74cb, 0x74c5, 0x74b7, 0x74c3, 0x7516, + 0x7660, 0x77c9, 0x77ca, 0x77c4, 0x77f1, 0x791d, 0x791b, 0x7921, + 0x791c, 0x7917, 0x791e, 0x79b0, 0x7a67, 0x7a68, 0x7c33, 0x7c3c, + 0x7c39, 0x7c2c, 0x7c3b, 0x7cec, 0x7cea, 0x7e76, 0x7e75, 0x7e78, + 0x7e70, 0x7e77, 0x7e6f, 0x7e7a, 0x7e72, 0x7e74, 0x7e68, 0x7f4b, + 0x7f4a, 0x7f83, 0x7f86, 0x7fb7, 0x7ffd, 0x7ffe, 0x8078, 0x81d7, + 0x81d5, 0x8264, 0x8261, 0x8263, 0x85eb, 0x85f1, 0x85ed, 0x85d9, + 0x85e1, 0x85e8, 0x85da, 0x85d7, 0x85ec, 0x85f2, 0x85f8, 0x85d8, + 0x85df, 0x85e3, 0x85dc, 0x85d1, 0x85f0, 0x85e6, 0x85ef, 0x85de, + 0x85e2, 0x8800, 0x87fa, 0x8803, 0x87f6, 0x87f7, 0x8809, 0x880c, + 0x880b, 0x8806, 0x87fc, 0x8808, 0x87ff, 0x880a, 0x8802, 0x8962, + 0x895a, 0x895b, 0x8957, 0x8961, 0x895c, 0x8958, 0x895d, 0x8959, + 0x8988, 0x89b7, 0x89b6, 0x89f6, 0x8b50, 0x8b48, 0x8b4a, 0x8b40, + 0x8b53, 0x8b56, 0x8b54, 0x8b4b, 0x8b55, + /* 0xf3 */ + 0x8b51, 0x8b42, 0x8b52, 0x8b57, 0x8c43, 0x8c77, 0x8c76, 0x8c9a, + 0x8d06, 0x8d07, 0x8d09, 0x8dac, 0x8daa, 0x8dad, 0x8dab, 0x8e6d, + 0x8e78, 0x8e73, 0x8e6a, 0x8e6f, 0x8e7b, 0x8ec2, 0x8f52, 0x8f51, + 0x8f4f, 0x8f50, 0x8f53, 0x8fb4, 0x9140, 0x913f, 0x91b0, 0x91ad, + 0x93de, 0x93c7, 0x93cf, 0x93c2, 0x93da, 0x93d0, 0x93f9, 0x93ec, + 0x93cc, 0x93d9, 0x93a9, 0x93e6, 0x93ca, 0x93d4, 0x93ee, 0x93e3, + 0x93d5, 0x93c4, 0x93ce, 0x93c0, 0x93d2, 0x93e7, 0x957d, 0x95da, + 0x95db, 0x96e1, 0x9729, 0x972b, 0x972c, 0x9728, 0x9726, 0x97b3, + 0x97b7, 0x97b6, 0x97dd, 0x97de, 0x97df, 0x985c, 0x9859, 0x985d, + 0x9857, 0x98bf, 0x98bd, 0x98bb, 0x98be, 0x9948, 0x9947, 0x9943, + 0x99a6, 0x99a7, 0x9a1a, 0x9a15, 0x9a25, 0x9a1d, 0x9a24, 0x9a1b, + 0x9a22, 0x9a20, 0x9a27, 0x9a23, 0x9a1e, 0x9a1c, 0x9a14, 0x9ac2, + 0x9b0b, 0x9b0a, 0x9b0e, 0x9b0c, 0x9b37, 0x9bea, 0x9beb, 0x9be0, + 0x9bde, 0x9be4, 0x9be6, 0x9be2, 0x9bf0, 0x9bd4, 0x9bd7, 0x9bec, + 0x9bdc, 0x9bd9, 0x9be5, 0x9bd5, 0x9be1, 0x9bda, 0x9d77, 0x9d81, + 0x9d8a, 0x9d84, 0x9d88, 0x9d71, 0x9d80, 0x9d78, 0x9d86, 0x9d8b, + 0x9d8c, 0x9d7d, 0x9d6b, 0x9d74, 0x9d75, 0x9d70, 0x9d69, 0x9d85, + 0x9d73, 0x9d7b, 0x9d82, 0x9d6f, 0x9d79, 0x9d7f, 0x9d87, 0x9d68, + 0x9e94, 0x9e91, 0x9ec0, 0x9efc, 0x9f2d, 0x9f40, 0x9f41, 0x9f4d, + 0x9f56, 0x9f57, 0x9f58, 0x5337, 0x56b2, + /* 0xf4 */ + 0x56b5, 0x56b3, 0x58e3, 0x5b45, 0x5dc6, 0x5dc7, 0x5eee, 0x5eef, + 0x5fc0, 0x5fc1, 0x61f9, 0x6517, 0x6516, 0x6515, 0x6513, 0x65df, + 0x66e8, 0x66e3, 0x66e4, 0x6af3, 0x6af0, 0x6aea, 0x6ae8, 0x6af9, + 0x6af1, 0x6aee, 0x6aef, 0x703c, 0x7035, 0x702f, 0x7037, 0x7034, + 0x7031, 0x7042, 0x7038, 0x703f, 0x703a, 0x7039, 0x7040, 0x703b, + 0x7033, 0x7041, 0x7213, 0x7214, 0x72a8, 0x737d, 0x737c, 0x74ba, + 0x76ab, 0x76aa, 0x76be, 0x76ed, 0x77cc, 0x77ce, 0x77cf, 0x77cd, + 0x77f2, 0x7925, 0x7923, 0x7927, 0x7928, 0x7924, 0x7929, 0x79b2, + 0x7a6e, 0x7a6c, 0x7a6d, 0x7af7, 0x7c49, 0x7c48, 0x7c4a, 0x7c47, + 0x7c45, 0x7cee, 0x7e7b, 0x7e7e, 0x7e81, 0x7e80, 0x7fba, 0x7fff, + 0x8079, 0x81db, 0x81d9, 0x820b, 0x8268, 0x8269, 0x8622, 0x85ff, + 0x8601, 0x85fe, 0x861b, 0x8600, 0x85f6, 0x8604, 0x8609, 0x8605, + 0x860c, 0x85fd, 0x8819, 0x8810, 0x8811, 0x8817, 0x8813, 0x8816, + 0x8963, 0x8966, 0x89b9, 0x89f7, 0x8b60, 0x8b6a, 0x8b5d, 0x8b68, + 0x8b63, 0x8b65, 0x8b67, 0x8b6d, 0x8dae, 0x8e86, 0x8e88, 0x8e84, + 0x8f59, 0x8f56, 0x8f57, 0x8f55, 0x8f58, 0x8f5a, 0x908d, 0x9143, + 0x9141, 0x91b7, 0x91b5, 0x91b2, 0x91b3, 0x940b, 0x9413, 0x93fb, + 0x9420, 0x940f, 0x9414, 0x93fe, 0x9415, 0x9410, 0x9428, 0x9419, + 0x940d, 0x93f5, 0x9400, 0x93f7, 0x9407, 0x940e, 0x9416, 0x9412, + 0x93fa, 0x9409, 0x93f8, 0x940a, 0x93ff, + /* 0xf5 */ + 0x93fc, 0x940c, 0x93f6, 0x9411, 0x9406, 0x95de, 0x95e0, 0x95df, + 0x972e, 0x972f, 0x97b9, 0x97bb, 0x97fd, 0x97fe, 0x9860, 0x9862, + 0x9863, 0x985f, 0x98c1, 0x98c2, 0x9950, 0x994e, 0x9959, 0x994c, + 0x994b, 0x9953, 0x9a32, 0x9a34, 0x9a31, 0x9a2c, 0x9a2a, 0x9a36, + 0x9a29, 0x9a2e, 0x9a38, 0x9a2d, 0x9ac7, 0x9aca, 0x9ac6, 0x9b10, + 0x9b12, 0x9b11, 0x9c0b, 0x9c08, 0x9bf7, 0x9c05, 0x9c12, 0x9bf8, + 0x9c40, 0x9c07, 0x9c0e, 0x9c06, 0x9c17, 0x9c14, 0x9c09, 0x9d9f, + 0x9d99, 0x9da4, 0x9d9d, 0x9d92, 0x9d98, 0x9d90, 0x9d9b, 0x9da0, + 0x9d94, 0x9d9c, 0x9daa, 0x9d97, 0x9da1, 0x9d9a, 0x9da2, 0x9da8, + 0x9d9e, 0x9da3, 0x9dbf, 0x9da9, 0x9d96, 0x9da6, 0x9da7, 0x9e99, + 0x9e9b, 0x9e9a, 0x9ee5, 0x9ee4, 0x9ee7, 0x9ee6, 0x9f30, 0x9f2e, + 0x9f5b, 0x9f60, 0x9f5e, 0x9f5d, 0x9f59, 0x9f91, 0x513a, 0x5139, + 0x5298, 0x5297, 0x56c3, 0x56bd, 0x56be, 0x5b48, 0x5b47, 0x5dcb, + 0x5dcf, 0x5ef1, 0x61fd, 0x651b, 0x6b02, 0x6afc, 0x6b03, 0x6af8, + 0x6b00, 0x7043, 0x7044, 0x704a, 0x7048, 0x7049, 0x7045, 0x7046, + 0x721d, 0x721a, 0x7219, 0x737e, 0x7517, 0x766a, 0x77d0, 0x792d, + 0x7931, 0x792f, 0x7c54, 0x7c53, 0x7cf2, 0x7e8a, 0x7e87, 0x7e88, + 0x7e8b, 0x7e86, 0x7e8d, 0x7f4d, 0x7fbb, 0x8030, 0x81dd, 0x8618, + 0x862a, 0x8626, 0x861f, 0x8623, 0x861c, 0x8619, 0x8627, 0x862e, + 0x8621, 0x8620, 0x8629, 0x861e, 0x8625, + /* 0xf6 */ + 0x8829, 0x881d, 0x881b, 0x8820, 0x8824, 0x881c, 0x882b, 0x884a, + 0x896d, 0x8969, 0x896e, 0x896b, 0x89fa, 0x8b79, 0x8b78, 0x8b45, + 0x8b7a, 0x8b7b, 0x8d10, 0x8d14, 0x8daf, 0x8e8e, 0x8e8c, 0x8f5e, + 0x8f5b, 0x8f5d, 0x9146, 0x9144, 0x9145, 0x91b9, 0x943f, 0x943b, + 0x9436, 0x9429, 0x943d, 0x943c, 0x9430, 0x9439, 0x942a, 0x9437, + 0x942c, 0x9440, 0x9431, 0x95e5, 0x95e4, 0x95e3, 0x9735, 0x973a, + 0x97bf, 0x97e1, 0x9864, 0x98c9, 0x98c6, 0x98c0, 0x9958, 0x9956, + 0x9a39, 0x9a3d, 0x9a46, 0x9a44, 0x9a42, 0x9a41, 0x9a3a, 0x9a3f, + 0x9acd, 0x9b15, 0x9b17, 0x9b18, 0x9b16, 0x9b3a, 0x9b52, 0x9c2b, + 0x9c1d, 0x9c1c, 0x9c2c, 0x9c23, 0x9c28, 0x9c29, 0x9c24, 0x9c21, + 0x9db7, 0x9db6, 0x9dbc, 0x9dc1, 0x9dc7, 0x9dca, 0x9dcf, 0x9dbe, + 0x9dc5, 0x9dc3, 0x9dbb, 0x9db5, 0x9dce, 0x9db9, 0x9dba, 0x9dac, + 0x9dc8, 0x9db1, 0x9dad, 0x9dcc, 0x9db3, 0x9dcd, 0x9db2, 0x9e7a, + 0x9e9c, 0x9eeb, 0x9eee, 0x9eed, 0x9f1b, 0x9f18, 0x9f1a, 0x9f31, + 0x9f4e, 0x9f65, 0x9f64, 0x9f92, 0x4eb9, 0x56c6, 0x56c5, 0x56cb, + 0x5971, 0x5b4b, 0x5b4c, 0x5dd5, 0x5dd1, 0x5ef2, 0x6521, 0x6520, + 0x6526, 0x6522, 0x6b0b, 0x6b08, 0x6b09, 0x6c0d, 0x7055, 0x7056, + 0x7057, 0x7052, 0x721e, 0x721f, 0x72a9, 0x737f, 0x74d8, 0x74d5, + 0x74d9, 0x74d7, 0x766d, 0x76ad, 0x7935, 0x79b4, 0x7a70, 0x7a71, + 0x7c57, 0x7c5c, 0x7c59, 0x7c5b, 0x7c5a, + /* 0xf7 */ + 0x7cf4, 0x7cf1, 0x7e91, 0x7f4f, 0x7f87, 0x81de, 0x826b, 0x8634, + 0x8635, 0x8633, 0x862c, 0x8632, 0x8636, 0x882c, 0x8828, 0x8826, + 0x882a, 0x8825, 0x8971, 0x89bf, 0x89be, 0x89fb, 0x8b7e, 0x8b84, + 0x8b82, 0x8b86, 0x8b85, 0x8b7f, 0x8d15, 0x8e95, 0x8e94, 0x8e9a, + 0x8e92, 0x8e90, 0x8e96, 0x8e97, 0x8f60, 0x8f62, 0x9147, 0x944c, + 0x9450, 0x944a, 0x944b, 0x944f, 0x9447, 0x9445, 0x9448, 0x9449, + 0x9446, 0x973f, 0x97e3, 0x986a, 0x9869, 0x98cb, 0x9954, 0x995b, + 0x9a4e, 0x9a53, 0x9a54, 0x9a4c, 0x9a4f, 0x9a48, 0x9a4a, 0x9a49, + 0x9a52, 0x9a50, 0x9ad0, 0x9b19, 0x9b2b, 0x9b3b, 0x9b56, 0x9b55, + 0x9c46, 0x9c48, 0x9c3f, 0x9c44, 0x9c39, 0x9c33, 0x9c41, 0x9c3c, + 0x9c37, 0x9c34, 0x9c32, 0x9c3d, 0x9c36, 0x9ddb, 0x9dd2, 0x9dde, + 0x9dda, 0x9dcb, 0x9dd0, 0x9ddc, 0x9dd1, 0x9ddf, 0x9de9, 0x9dd9, + 0x9dd8, 0x9dd6, 0x9df5, 0x9dd5, 0x9ddd, 0x9eb6, 0x9ef0, 0x9f35, + 0x9f33, 0x9f32, 0x9f42, 0x9f6b, 0x9f95, 0x9fa2, 0x513d, 0x5299, + 0x58e8, 0x58e7, 0x5972, 0x5b4d, 0x5dd8, 0x882f, 0x5f4f, 0x6201, + 0x6203, 0x6204, 0x6529, 0x6525, 0x6596, 0x66eb, 0x6b11, 0x6b12, + 0x6b0f, 0x6bca, 0x705b, 0x705a, 0x7222, 0x7382, 0x7381, 0x7383, + 0x7670, 0x77d4, 0x7c67, 0x7c66, 0x7e95, 0x826c, 0x863a, 0x8640, + 0x8639, 0x863c, 0x8631, 0x863b, 0x863e, 0x8830, 0x8832, 0x882e, + 0x8833, 0x8976, 0x8974, 0x8973, 0x89fe, + /* 0xf8 */ + 0x8b8c, 0x8b8e, 0x8b8b, 0x8b88, 0x8c45, 0x8d19, 0x8e98, 0x8f64, + 0x8f63, 0x91bc, 0x9462, 0x9455, 0x945d, 0x9457, 0x945e, 0x97c4, + 0x97c5, 0x9800, 0x9a56, 0x9a59, 0x9b1e, 0x9b1f, 0x9b20, 0x9c52, + 0x9c58, 0x9c50, 0x9c4a, 0x9c4d, 0x9c4b, 0x9c55, 0x9c59, 0x9c4c, + 0x9c4e, 0x9dfb, 0x9df7, 0x9def, 0x9de3, 0x9deb, 0x9df8, 0x9de4, + 0x9df6, 0x9de1, 0x9dee, 0x9de6, 0x9df2, 0x9df0, 0x9de2, 0x9dec, + 0x9df4, 0x9df3, 0x9de8, 0x9ded, 0x9ec2, 0x9ed0, 0x9ef2, 0x9ef3, + 0x9f06, 0x9f1c, 0x9f38, 0x9f37, 0x9f36, 0x9f43, 0x9f4f, 0x9f71, + 0x9f70, 0x9f6e, 0x9f6f, 0x56d3, 0x56cd, 0x5b4e, 0x5c6d, 0x652d, + 0x66ed, 0x66ee, 0x6b13, 0x705f, 0x7061, 0x705d, 0x7060, 0x7223, + 0x74db, 0x74e5, 0x77d5, 0x7938, 0x79b7, 0x79b6, 0x7c6a, 0x7e97, + 0x7f89, 0x826d, 0x8643, 0x8838, 0x8837, 0x8835, 0x884b, 0x8b94, + 0x8b95, 0x8e9e, 0x8e9f, 0x8ea0, 0x8e9d, 0x91be, 0x91bd, 0x91c2, + 0x946b, 0x9468, 0x9469, 0x96e5, 0x9746, 0x9743, 0x9747, 0x97c7, + 0x97e5, 0x9a5e, 0x9ad5, 0x9b59, 0x9c63, 0x9c67, 0x9c66, 0x9c62, + 0x9c5e, 0x9c60, 0x9e02, 0x9dfe, 0x9e07, 0x9e03, 0x9e06, 0x9e05, + 0x9e00, 0x9e01, 0x9e09, 0x9dff, 0x9dfd, 0x9e04, 0x9ea0, 0x9f1e, + 0x9f46, 0x9f74, 0x9f75, 0x9f76, 0x56d4, 0x652e, 0x65b8, 0x6b18, + 0x6b19, 0x6b17, 0x6b1a, 0x7062, 0x7226, 0x72aa, 0x77d8, 0x77d9, + 0x7939, 0x7c69, 0x7c6b, 0x7cf6, 0x7e9a, + /* 0xf9 */ + 0x7e98, 0x7e9b, 0x7e99, 0x81e0, 0x81e1, 0x8646, 0x8647, 0x8648, + 0x8979, 0x897a, 0x897c, 0x897b, 0x89ff, 0x8b98, 0x8b99, 0x8ea5, + 0x8ea4, 0x8ea3, 0x946e, 0x946d, 0x946f, 0x9471, 0x9473, 0x9749, + 0x9872, 0x995f, 0x9c68, 0x9c6e, 0x9c6d, 0x9e0b, 0x9e0d, 0x9e10, + 0x9e0f, 0x9e12, 0x9e11, 0x9ea1, 0x9ef5, 0x9f09, 0x9f47, 0x9f78, + 0x9f7b, 0x9f7a, 0x9f79, 0x571e, 0x7066, 0x7c6f, 0x883c, 0x8db2, + 0x8ea6, 0x91c3, 0x9474, 0x9478, 0x9476, 0x9475, 0x9a60, 0x9c74, + 0x9c73, 0x9c71, 0x9c75, 0x9e14, 0x9e13, 0x9ef6, 0x9f0a, 0x9fa4, + 0x7068, 0x7065, 0x7cf7, 0x866a, 0x883e, 0x883d, 0x883f, 0x8b9e, + 0x8c9c, 0x8ea9, 0x8ec9, 0x974b, 0x9873, 0x9874, 0x98cc, 0x9961, + 0x99ab, 0x9a64, 0x9a66, 0x9a67, 0x9b24, 0x9e15, 0x9e17, 0x9f48, + 0x6207, 0x6b1e, 0x7227, 0x864c, 0x8ea8, 0x9482, 0x9480, 0x9481, + 0x9a69, 0x9a68, 0x9b2e, 0x9e19, 0x7229, 0x864b, 0x8b9f, 0x9483, + 0x9c79, 0x9eb7, 0x7675, 0x9a6b, 0x9c7a, 0x9e1d, 0x7069, 0x706a, + 0x9ea4, 0x9f7e, 0x9f49, 0x9f98, +}; + +static int +big5_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 >= 0xa1 && c1 <= 0xc7) || (c1 >= 0xc9 && c1 <= 0xf9)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) { + unsigned int i = 157 * (c1 - 0xa1) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40)); + unsigned short wc = 0xfffd; + if (i < 6280) { + if (i < 6121) + wc = big5_2uni_pagea1[i]; + } else { + if (i < 13932) + wc = big5_2uni_pagec9[i-6280]; + } + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + +static const unsigned short big5_2charset[13703] = { + 0xa246, 0xa247, 0xa244, 0xa1b1, 0xa258, 0xa1d3, 0xa150, 0xa1d1, + 0xa1d2, 0xa3be, 0xa3bc, 0xa3bd, 0xa3bf, 0xa3bb, 0xa344, 0xa345, + 0xa346, 0xa347, 0xa348, 0xa349, 0xa34a, 0xa34b, 0xa34c, 0xa34d, + 0xa34e, 0xa34f, 0xa350, 0xa351, 0xa352, 0xa353, 0xa354, 0xa355, + 0xa356, 0xa357, 0xa358, 0xa359, 0xa35a, 0xa35b, 0xa35c, 0xa35d, + 0xa35e, 0xa35f, 0xa360, 0xa361, 0xa362, 0xa363, 0xa364, 0xa365, + 0xa366, 0xa367, 0xa368, 0xa369, 0xa36a, 0xa36b, 0xa36c, 0xa36d, + 0xa36e, 0xa36f, 0xa370, 0xa371, 0xa372, 0xa373, 0xc7b3, 0xc7b1, + 0xc7b2, 0xc7b4, 0xc7b5, 0xc7b6, 0xc7b7, 0xc7b8, 0xc7b9, 0xc7ba, + 0xc7bb, 0xc7bc, 0xc7bd, 0xc7be, 0xc7bf, 0xc7c0, 0xc7c1, 0xc7c2, + 0xc7c3, 0xc7c4, 0xc7c5, 0xc7c6, 0xc7c7, 0xc7c8, 0xc7c9, 0xc7ca, + 0xc7cb, 0xc7cc, 0xc7cd, 0xc7cf, 0xc7d0, 0xc7d1, 0xc7d2, 0xc7d3, + 0xc7d4, 0xc7d5, 0xc7d6, 0xc7d7, 0xc7d8, 0xc7d9, 0xc7da, 0xc7db, + 0xc7dc, 0xc7dd, 0xc7de, 0xc7df, 0xc7e0, 0xc7e1, 0xc7e2, 0xc7e3, + 0xc7e4, 0xc7e5, 0xc7e6, 0xc7e7, 0xc7e8, 0xc7ce, 0xa156, 0xa158, + 0xa1a5, 0xa1a6, 0xa1a7, 0xa1a8, 0xa145, 0xa14c, 0xa14b, 0xa1ac, + 0xa1ab, 0xa1b0, 0xa1c2, 0xa24a, 0xa1c1, 0xa24b, 0xa2b9, 0xa2ba, + 0xa2bb, 0xa2bc, 0xa2bd, 0xa2be, 0xa2bf, 0xa2c0, 0xa2c1, 0xa2c2, + 0xa1f6, 0xa1f4, 0xa1f7, 0xa1f5, 0xa1f8, 0xa1f9, 0xa1fb, 0xa1fa, + 0xa1d4, 0xa1db, 0xa1e8, 0xa1e7, 0xa1fd, 0xa1fc, 0xa1e4, 0xa1e5, + 0xa1ec, 0xa1ed, 0xa1ef, 0xa1ee, 0xa1e3, 0xa1dc, 0xa1da, 0xa1dd, + 0xa1d8, 0xa1d9, 0xa1e6, 0xa1e9, 0xc7e9, 0xc7ea, 0xc7eb, 0xc7ec, + 0xc7ed, 0xc7ee, 0xc7ef, 0xc7f0, 0xc7f1, 0xc7f2, 0xc7f3, 0xc7f4, + 0xc7f5, 0xc7f6, 0xc7f7, 0xc7f8, 0xc7f9, 0xc7fa, 0xc7fb, 0xc7fc, + 0xa277, 0xa278, 0xa27a, 0xa27b, 0xa27c, 0xa27d, 0xa275, 0xa274, + 0xa273, 0xa272, 0xa271, 0xa2a4, 0xa2a5, 0xa2a7, 0xa2a6, 0xa27e, + 0xa2a1, 0xa2a3, 0xa2a2, 0xa2ac, 0xa2ad, 0xa2ae, 0xa262, 0xa263, + 0xa264, 0xa265, 0xa266, 0xa267, 0xa268, 0xa269, 0xa270, 0xa26f, + 0xa26e, 0xa26d, 0xa26c, 0xa26b, 0xa26a, 0xa276, 0xa279, 0xa1bd, + 0xa1bc, 0xa1b6, 0xa1b5, 0xa1bf, 0xa1be, 0xa1bb, 0xa1ba, 0xa1b3, + 0xa1b7, 0xa1b4, 0xa2a8, 0xa2a9, 0xa2ab, 0xa2aa, 0xa1b9, 0xa1b8, + 0xa1f3, 0xa1f0, 0xa1f2, 0xa1f1, 0xa140, 0xa142, 0xa143, 0xa1b2, + 0xc6a4, 0xa171, 0xa172, 0xa16d, 0xa16e, 0xa175, 0xa176, 0xa179, + 0xa17a, 0xa169, 0xa16a, 0xa245, 0xa165, 0xa166, 0xa1a9, 0xa1aa, + 0xa2c3, 0xa2c4, 0xa2c5, 0xa2c6, 0xa2c7, 0xa2c8, 0xa2c9, 0xa2ca, + 0xa2cb, 0xc6a5, 0xc6a6, 0xc6a7, 0xc6a8, 0xc6a9, 0xc6aa, 0xc6ab, + 0xc6ac, 0xc6ad, 0xc6ae, 0xc6af, 0xc6b0, 0xc6b1, 0xc6b2, 0xc6b3, + 0xc6b4, 0xc6b5, 0xc6b6, 0xc6b7, 0xc6b8, 0xc6b9, 0xc6ba, 0xc6bb, + 0xc6bc, 0xc6bd, 0xc6be, 0xc6bf, 0xc6c0, 0xc6c1, 0xc6c2, 0xc6c3, + 0xc6c4, 0xc6c5, 0xc6c6, 0xc6c7, 0xc6c8, 0xc6c9, 0xc6ca, 0xc6cb, + 0xc6cc, 0xc6cd, 0xc6ce, 0xc6cf, 0xc6d0, 0xc6d1, 0xc6d2, 0xc6d3, + 0xc6d4, 0xc6d5, 0xc6d6, 0xc6d7, 0xc6d8, 0xc6d9, 0xc6da, 0xc6db, + 0xc6dc, 0xc6dd, 0xc6de, 0xc6df, 0xc6e0, 0xc6e1, 0xc6e2, 0xc6e3, + 0xc6e4, 0xc6e5, 0xc6e6, 0xc6e7, 0xc6e8, 0xc6e9, 0xc6ea, 0xc6eb, + 0xc6ec, 0xc6ed, 0xc6ee, 0xc6ef, 0xc6f0, 0xc6f1, 0xc6f2, 0xc6f3, + 0xc6f4, 0xc6f5, 0xc6f6, 0xc6f7, 0xc6a2, 0xc6a3, 0xc6f8, 0xc6f9, + 0xc6fa, 0xc6fb, 0xc6fc, 0xc6fd, 0xc6fe, 0xc740, 0xc741, 0xc742, + 0xc743, 0xc744, 0xc745, 0xc746, 0xc747, 0xc748, 0xc749, 0xc74a, + 0xc74b, 0xc74c, 0xc74d, 0xc74e, 0xc74f, 0xc750, 0xc751, 0xc752, + 0xc753, 0xc754, 0xc755, 0xc756, 0xc757, 0xc758, 0xc759, 0xc75a, + 0xc75b, 0xc75c, 0xc75d, 0xc75e, 0xc75f, 0xc760, 0xc761, 0xc762, + 0xc763, 0xc764, 0xc765, 0xc766, 0xc767, 0xc768, 0xc769, 0xc76a, + 0xc76b, 0xc76c, 0xc76d, 0xc76e, 0xc76f, 0xc770, 0xc771, 0xc772, + 0xc773, 0xc774, 0xc775, 0xc776, 0xc777, 0xc778, 0xc779, 0xc77a, + 0xc77b, 0xc77c, 0xc77d, 0xc77e, 0xc7a1, 0xc7a2, 0xc7a3, 0xc7a4, + 0xc7a5, 0xc7a6, 0xc7a7, 0xc7a8, 0xc7a9, 0xc7aa, 0xc7ab, 0xc7ac, + 0xc7ad, 0xc7ae, 0xc7af, 0xc7b0, 0xc6a1, 0xa374, 0xa375, 0xa376, + 0xa377, 0xa378, 0xa379, 0xa37a, 0xa37b, 0xa37c, 0xa37d, 0xa37e, + 0xa3a1, 0xa3a2, 0xa3a3, 0xa3a4, 0xa3a5, 0xa3a6, 0xa3a7, 0xa3a8, + 0xa3a9, 0xa3aa, 0xa3ab, 0xa3ac, 0xa3ad, 0xa3ae, 0xa3af, 0xa3b0, + 0xa3b1, 0xa3b2, 0xa3b3, 0xa3b4, 0xa3b5, 0xa3b6, 0xa3b7, 0xa3b8, + 0xa3b9, 0xa3ba, 0xa1c0, 0xa255, 0xa256, 0xa250, 0xa251, 0xa252, + 0xa254, 0xa257, 0xa253, 0xa1eb, 0xa1ea, 0xa24f, 0xa440, 0xa442, + 0xa443, 0xc945, 0xa456, 0xa454, 0xa457, 0xa455, 0xc946, 0xa4a3, + 0xc94f, 0xc94d, 0xa4a2, 0xa4a1, 0xa542, 0xa541, 0xa540, 0xa543, + 0xa4fe, 0xa5e0, 0xa5e1, 0xa8c3, 0xa458, 0xa4a4, 0xc950, 0xa4a5, + 0xc963, 0xa6ea, 0xcbb1, 0xa459, 0xa4a6, 0xa544, 0xc964, 0xc940, + 0xa444, 0xa45b, 0xc947, 0xa45c, 0xa4a7, 0xa545, 0xa547, 0xa546, + 0xa5e2, 0xa5e3, 0xa8c4, 0xadbc, 0xa441, 0xc941, 0xa445, 0xa45e, + 0xa45d, 0xa5e4, 0xa8c5, 0xb0ae, 0xd44b, 0xb6c3, 0xdcb1, 0xdcb2, + 0xa446, 0xa4a9, 0xa8c6, 0xa447, 0xc948, 0xa45f, 0xa4aa, 0xa4ac, + 0xc951, 0xa4ad, 0xa4ab, 0xa5e5, 0xa8c7, 0xa8c8, 0xab45, 0xa460, + 0xa4ae, 0xa5e6, 0xa5e8, 0xa5e7, 0xa6eb, 0xa8c9, 0xa8ca, 0xab46, + 0xab47, 0xadbd, 0xdcb3, 0xf6d6, 0xa448, 0xa4b0, 0xa4af, 0xc952, + 0xa4b1, 0xa4b7, 0xa4b2, 0xa4b3, 0xc954, 0xc953, 0xa4b5, 0xa4b6, + 0xa4b4, 0xa54a, 0xa54b, 0xa54c, 0xa54d, 0xa549, 0xa550, 0xc96a, + 0xc966, 0xc969, 0xa551, 0xa561, 0xc968, 0xa54e, 0xa54f, 0xa548, + 0xc965, 0xc967, 0xa5f5, 0xc9b0, 0xa5f2, 0xa5f6, 0xc9ba, 0xc9ae, + 0xa5f3, 0xc9b2, 0xa5f4, 0xa5f7, 0xa5e9, 0xc9b1, 0xa5f8, 0xc9b5, + 0xc9b9, 0xc9b6, 0xc9b3, 0xa5ea, 0xa5ec, 0xa5f9, 0xa5ee, 0xc9ab, + 0xa5f1, 0xa5ef, 0xa5f0, 0xc9bb, 0xc9b8, 0xc9af, 0xa5ed, 0xc9ac, + 0xa5eb, 0xc9b4, 0xc9b7, 0xc9ad, 0xca66, 0xa742, 0xa6f4, 0xca67, + 0xa6f1, 0xa744, 0xa6f9, 0xa6f8, 0xca5b, 0xa6fc, 0xa6f7, 0xca60, + 0xca68, 0xca64, 0xa6fa, 0xa6fd, 0xa6ee, 0xa747, 0xca5d, 0xcbbd, + 0xa6ec, 0xa743, 0xa6ed, 0xa6f5, 0xa6f6, 0xca62, 0xca5e, 0xa6fb, + 0xa6f3, 0xca5a, 0xa6ef, 0xca65, 0xa745, 0xa748, 0xa6f2, 0xa740, + 0xa746, 0xa6f0, 0xca63, 0xa741, 0xca69, 0xca5c, 0xa6fe, 0xca5f, + 0xca61, 0xa8d8, 0xcbbf, 0xcbcb, 0xa8d0, 0xcbcc, 0xa8cb, 0xa8d5, + 0xa8ce, 0xcbb9, 0xa8d6, 0xcbb8, 0xcbbc, 0xcbc3, 0xcbc1, 0xa8de, + 0xa8d9, 0xcbb3, 0xcbb5, 0xa8db, 0xa8cf, 0xcbb6, 0xcbc2, 0xcbc9, + 0xa8d4, 0xcbbb, 0xcbb4, 0xa8d3, 0xcbb7, 0xa8d7, 0xcbba, 0xa8d2, + 0xa8cd, 0xa8dc, 0xcbc4, 0xa8dd, 0xcbc8, 0xcbc6, 0xcbca, 0xa8da, + 0xcbbe, 0xcbb2, 0xcbc0, 0xa8d1, 0xcbc5, 0xa8cc, 0xcbc7, 0xab56, + 0xab4a, 0xcde0, 0xcde8, 0xab49, 0xab51, 0xab5d, 0xcdee, 0xcdec, + 0xcde7, 0xab4b, 0xcded, 0xcde3, 0xab59, 0xab50, 0xab58, 0xcdde, + 0xcdea, 0xcde1, 0xab54, 0xcde2, 0xcddd, 0xab5b, 0xab4e, 0xab57, + 0xab4d, 0xcddf, 0xcde4, 0xcdeb, 0xab55, 0xab52, 0xcde6, 0xab5a, + 0xcde9, 0xcde5, 0xab4f, 0xab5c, 0xab53, 0xab4c, 0xab48, 0xcdef, + 0xadd7, 0xadc1, 0xadd1, 0xadd6, 0xd0d0, 0xd0cf, 0xd0d4, 0xd0d5, + 0xadc4, 0xadcd, 0xadda, 0xadce, 0xd0c9, 0xadc7, 0xd0ca, 0xaddc, + 0xadd3, 0xadbe, 0xadbf, 0xd0dd, 0xb0bf, 0xadcc, 0xadcb, 0xd0cb, + 0xadcf, 0xd45b, 0xadc6, 0xd0d6, 0xadd5, 0xadd4, 0xadca, 0xd0ce, + 0xd0d7, 0xd0c8, 0xadc9, 0xd0d8, 0xadd2, 0xd0cc, 0xadc0, 0xadc3, + 0xadc2, 0xd0d9, 0xadd0, 0xadc5, 0xadd9, 0xaddb, 0xd0d3, 0xadd8, + 0xd0db, 0xd0cd, 0xd0dc, 0xd0d1, 0xd0da, 0xd0d2, 0xadc8, 0xd463, + 0xd457, 0xb0b3, 0xd45c, 0xd462, 0xb0b2, 0xd455, 0xb0b6, 0xd459, + 0xd452, 0xb0b4, 0xd456, 0xb0b9, 0xb0be, 0xd467, 0xd451, 0xb0ba, + 0xd466, 0xb0b5, 0xd458, 0xb0b1, 0xd453, 0xd44f, 0xd45d, 0xd450, + 0xd44e, 0xd45a, 0xd460, 0xd461, 0xb0b7, 0xd85b, 0xd45e, 0xd44d, + 0xd45f, 0xb0c1, 0xd464, 0xb0c0, 0xd44c, 0xd454, 0xd465, 0xb0bc, + 0xb0bb, 0xb0b8, 0xb0bd, 0xb0af, 0xb0b0, 0xb3c8, 0xd85e, 0xd857, + 0xb3c5, 0xd85f, 0xd855, 0xd858, 0xb3c4, 0xd859, 0xb3c7, 0xd85d, + 0xd853, 0xd852, 0xb3c9, 0xb3ca, 0xb3c6, 0xb3cb, 0xd851, 0xd85c, + 0xd85a, 0xd854, 0xb3c3, 0xd856, 0xb6ca, 0xb6c4, 0xdcb7, 0xb6cd, + 0xdcbd, 0xdcc0, 0xb6c6, 0xb6c7, 0xdcba, 0xb6c5, 0xdcc3, 0xb6cb, + 0xdcc4, 0xdcbf, 0xb6cc, 0xdcb4, 0xb6c9, 0xdcb5, 0xdcbe, 0xdcbc, + 0xdcb8, 0xb6c8, 0xdcb6, 0xb6ce, 0xdcbb, 0xdcc2, 0xdcb9, 0xdcc1, + 0xb9b6, 0xb9b3, 0xb9b4, 0xe0f9, 0xe0f1, 0xb9b2, 0xb9af, 0xe0f2, + 0xb9b1, 0xe0f5, 0xe0f7, 0xe0fe, 0xe0fd, 0xe0f8, 0xb9ae, 0xe0f0, + 0xb9ac, 0xe0f3, 0xb9b7, 0xe0f6, 0xe0fa, 0xb9b0, 0xb9ad, 0xe0fc, + 0xe0fb, 0xb9b5, 0xe0f4, 0xbbf8, 0xe4ec, 0xe4e9, 0xbbf9, 0xbbf7, + 0xe4f0, 0xe4ed, 0xe4e6, 0xbbf6, 0xbbfa, 0xe4e7, 0xbbf5, 0xbbfd, + 0xe4ea, 0xe4eb, 0xbbfb, 0xbbfc, 0xe4f1, 0xe4ee, 0xe4ef, 0xbeaa, + 0xe8f8, 0xbea7, 0xe8f5, 0xbea9, 0xbeab, 0xe8f6, 0xbea8, 0xe8f7, + 0xe8f4, 0xc076, 0xecbd, 0xc077, 0xecbb, 0xecbc, 0xecba, 0xecb9, + 0xecbe, 0xc075, 0xefb8, 0xefb9, 0xe4e8, 0xefb7, 0xc078, 0xc35f, + 0xf1eb, 0xf1ec, 0xc4d7, 0xc4d8, 0xf5c1, 0xf5c0, 0xc56c, 0xc56b, + 0xf7d0, 0xa449, 0xa461, 0xa4b9, 0xa4b8, 0xa553, 0xa552, 0xa5fc, + 0xa5fb, 0xa5fd, 0xa5fa, 0xa74a, 0xa749, 0xa74b, 0xa8e0, 0xa8df, + 0xa8e1, 0xab5e, 0xa259, 0xd0de, 0xa25a, 0xb0c2, 0xa25c, 0xa25b, + 0xd860, 0xa25d, 0xb9b8, 0xa25e, 0xa44a, 0xa4ba, 0xa5fe, 0xa8e2, + 0xa44b, 0xa4bd, 0xa4bb, 0xa4bc, 0xa640, 0xa74c, 0xa8e4, 0xa8e3, + 0xa8e5, 0xaddd, 0xbeac, 0xc94e, 0xa554, 0xa555, 0xa641, 0xca6a, + 0xab60, 0xab5f, 0xd0e0, 0xd0df, 0xb0c3, 0xa4be, 0xc955, 0xcbcd, + 0xab61, 0xade0, 0xadde, 0xaddf, 0xbead, 0xa556, 0xa642, 0xc9bc, + 0xa74d, 0xa74e, 0xca6b, 0xcbce, 0xa8e6, 0xcbcf, 0xd0e2, 0xd0e3, + 0xade3, 0xd0e4, 0xd0e1, 0xade4, 0xade2, 0xade1, 0xd0e5, 0xd468, + 0xd861, 0xdcc5, 0xe140, 0xbbfe, 0xbeae, 0xe8f9, 0xa44c, 0xa45a, + 0xb0c4, 0xb3cd, 0xb9b9, 0xc942, 0xa4bf, 0xa559, 0xa557, 0xa558, + 0xa8e7, 0xa44d, 0xa44e, 0xa462, 0xa4c0, 0xa4c1, 0xa4c2, 0xc9be, + 0xa55a, 0xc96b, 0xa646, 0xc9bf, 0xa644, 0xa645, 0xc9bd, 0xa647, + 0xa643, 0xca6c, 0xaaec, 0xca6d, 0xca6e, 0xa750, 0xa74f, 0xa753, + 0xa751, 0xa752, 0xa8ed, 0xa8ec, 0xcbd4, 0xcbd1, 0xcbd2, 0xcbd0, + 0xa8ee, 0xa8ea, 0xa8e9, 0xa8eb, 0xa8e8, 0xa8ef, 0xab63, 0xcdf0, + 0xcbd3, 0xab68, 0xcdf1, 0xab64, 0xab67, 0xab66, 0xab65, 0xab62, + 0xd0e8, 0xade7, 0xd0eb, 0xade5, 0xd0e7, 0xade8, 0xade6, 0xade9, + 0xd0e9, 0xd0ea, 0xd0e6, 0xd0ec, 0xb3d1, 0xb0c5, 0xd469, 0xd46b, + 0xd46a, 0xd46c, 0xb0c6, 0xb3ce, 0xb3cf, 0xb3d0, 0xb6d0, 0xdcc7, + 0xdcc6, 0xdcc8, 0xdcc9, 0xb6d1, 0xb6cf, 0xe141, 0xe142, 0xb9bb, + 0xb9ba, 0xe35a, 0xbc40, 0xbc41, 0xbc42, 0xbc44, 0xe4f2, 0xe4f3, + 0xbc43, 0xbeaf, 0xbeb0, 0xf1ed, 0xf5c3, 0xf5c2, 0xf7d1, 0xa44f, + 0xa55c, 0xa55b, 0xa648, 0xc9c0, 0xa755, 0xa756, 0xa754, 0xa757, + 0xca6f, 0xca70, 0xa8f1, 0xcbd5, 0xa8f0, 0xcdf2, 0xab6c, 0xcdf3, + 0xab6b, 0xab69, 0xab6a, 0xd0ed, 0xb0c7, 0xd46e, 0xb0ca, 0xd46d, + 0xb1e5, 0xb0c9, 0xb0c8, 0xb3d4, 0xb3d3, 0xb3d2, 0xb6d2, 0xb6d5, + 0xb6d6, 0xb6d4, 0xb6d3, 0xe143, 0xe144, 0xe4f5, 0xbc45, 0xe4f4, + 0xbeb1, 0xecbf, 0xc079, 0xf1ee, 0xc455, 0xa463, 0xa4c3, 0xc956, + 0xa4c4, 0xa4c5, 0xa55d, 0xa55e, 0xa649, 0xca71, 0xcbd6, 0xcbd7, + 0xab6d, 0xd0ee, 0xb0cc, 0xb0cb, 0xd863, 0xd862, 0xa450, 0xa4c6, + 0xa55f, 0xb0cd, 0xc943, 0xc96c, 0xa560, 0xc9c2, 0xa64b, 0xa64a, + 0xc9c1, 0xa758, 0xadea, 0xd46f, 0xb6d7, 0xe145, 0xb9bc, 0xe8fa, + 0xf3fd, 0xa4c7, 0xcbd8, 0xcdf4, 0xb0d0, 0xb0ce, 0xb0cf, 0xa451, + 0xa464, 0xa2cd, 0xa4ca, 0xa4c9, 0xa4c8, 0xa563, 0xa562, 0xc96d, + 0xc9c3, 0xa8f5, 0xa8f2, 0xa8f4, 0xa8f3, 0xab6e, 0xb3d5, 0xa452, + 0xa4cb, 0xa565, 0xa564, 0xca72, 0xa8f6, 0xc957, 0xa567, 0xa566, + 0xa64c, 0xa64d, 0xca73, 0xa759, 0xa75a, 0xa8f7, 0xa8f8, 0xa8f9, + 0xab6f, 0xcdf5, 0xadeb, 0xc944, 0xa4cc, 0xc9c4, 0xca74, 0xca75, + 0xcbd9, 0xcbda, 0xcdf7, 0xcdf6, 0xcdf9, 0xcdf8, 0xab70, 0xd470, + 0xaded, 0xd0ef, 0xadec, 0xd864, 0xb3d6, 0xd865, 0xe146, 0xb9bd, + 0xbc46, 0xf1ef, 0xc958, 0xa568, 0xb0d1, 0xa453, 0xa465, 0xa4ce, + 0xa4cd, 0xa4cf, 0xa8fb, 0xa8fa, 0xa8fc, 0xab71, 0xadee, 0xe8fb, + 0xc24f, 0xa466, 0xa56a, 0xa579, 0xa574, 0xa56f, 0xa56e, 0xa575, + 0xa573, 0xa56c, 0xa57a, 0xa56d, 0xa569, 0xa578, 0xa577, 0xa576, + 0xa56b, 0xa572, 0xa571, 0xa57b, 0xa570, 0xa653, 0xa659, 0xa655, + 0xa65b, 0xc9c5, 0xa658, 0xa64e, 0xa651, 0xa654, 0xa650, 0xa657, + 0xa65a, 0xa64f, 0xa652, 0xa656, 0xa65c, 0xca7e, 0xca7b, 0xa767, + 0xca7c, 0xa75b, 0xa75d, 0xa775, 0xa770, 0xcaa5, 0xca7d, 0xa75f, + 0xa761, 0xcaa4, 0xa768, 0xca78, 0xa774, 0xa776, 0xa75c, 0xa76d, + 0xca76, 0xa773, 0xa764, 0xa76e, 0xa76f, 0xca77, 0xa76c, 0xa76a, + 0xa76b, 0xa771, 0xcaa1, 0xa75e, 0xa772, 0xcaa3, 0xa766, 0xa763, + 0xca7a, 0xa762, 0xcaa6, 0xa765, 0xa769, 0xa760, 0xcaa2, 0xca79, + 0xcbeb, 0xcbea, 0xa94f, 0xcbed, 0xcbef, 0xcbe4, 0xcbe7, 0xcbee, + 0xa950, 0xcbe1, 0xcbe5, 0xcbe9, 0xce49, 0xa94b, 0xce4d, 0xa8fd, + 0xcbe6, 0xa8fe, 0xa94c, 0xa945, 0xa941, 0xcbe2, 0xa944, 0xa949, + 0xa952, 0xcbe3, 0xcbdc, 0xa943, 0xcbdd, 0xcbdf, 0xa946, 0xa948, + 0xcbdb, 0xcbe0, 0xa951, 0xa94d, 0xcbe8, 0xa953, 0xa94a, 0xcbde, + 0xa947, 0xa942, 0xa940, 0xcbec, 0xa94e, 0xce48, 0xcdfb, 0xce4b, + 0xcdfd, 0xab78, 0xaba8, 0xab74, 0xaba7, 0xab7d, 0xaba4, 0xab72, + 0xcdfc, 0xce43, 0xaba3, 0xce4f, 0xaba5, 0xab79, 0xce45, 0xce42, + 0xab77, 0xcdfa, 0xaba6, 0xce4a, 0xab7c, 0xce4c, 0xaba9, 0xab73, + 0xab7e, 0xab7b, 0xce40, 0xaba1, 0xce46, 0xce47, 0xab7a, 0xaba2, + 0xab76, 0xab75, 0xcdfe, 0xce44, 0xce4e, 0xd144, 0xadfb, 0xd0f1, + 0xd0f6, 0xadf4, 0xae40, 0xd0f4, 0xadef, 0xadf9, 0xadfe, 0xd0fb, + 0xadfa, 0xadfd, 0xd0fe, 0xadf5, 0xd0f5, 0xd142, 0xd143, 0xadf7, + 0xd141, 0xadf3, 0xae43, 0xd0f8, 0xadf1, 0xd146, 0xd0f9, 0xd0fd, + 0xadf6, 0xae42, 0xd0fa, 0xadfc, 0xd140, 0xd147, 0xd4a1, 0xd145, + 0xae44, 0xadf0, 0xd0fc, 0xd0f3, 0xadf8, 0xd0f2, 0xd0f7, 0xd0f0, + 0xae41, 0xd477, 0xb0e4, 0xd4a7, 0xb0e2, 0xb0df, 0xd47c, 0xb0db, + 0xd4a2, 0xb0e6, 0xd476, 0xd47b, 0xd47a, 0xadf2, 0xb0e1, 0xd4a5, + 0xd4a8, 0xd473, 0xb3e8, 0xd4a9, 0xb0e7, 0xb0d9, 0xb0d6, 0xd47e, + 0xb0d3, 0xd4a6, 0xb0da, 0xd4aa, 0xd474, 0xd4a4, 0xb0dd, 0xd475, + 0xd478, 0xd47d, 0xb0de, 0xb0dc, 0xb0e8, 0xb0e3, 0xb0d7, 0xb1d2, + 0xb0d8, 0xd479, 0xb0e5, 0xb0e0, 0xd4a3, 0xb0d5, 0xb0d4, 0xd471, + 0xd472, 0xd86a, 0xb3d7, 0xb3da, 0xd875, 0xb3ee, 0xd878, 0xb3d8, + 0xd871, 0xb3de, 0xb3e4, 0xb5bd, 0xb3e2, 0xd86e, 0xb3ef, 0xb3db, + 0xb3e3, 0xd876, 0xdcd7, 0xd87b, 0xd86f, 0xd866, 0xd873, 0xd86d, + 0xb3e1, 0xd879, 0xb3dd, 0xb3f1, 0xb3ea, 0xb3df, 0xb3dc, 0xb3e7, + 0xd87a, 0xd86c, 0xd872, 0xd874, 0xd868, 0xd877, 0xb3d9, 0xd867, + 0xb3e0, 0xb3f0, 0xb3ec, 0xd869, 0xb3e6, 0xb3ed, 0xb3e9, 0xb3e5, + 0xd870, 0xb3eb, 0xdcd5, 0xdcd1, 0xdce0, 0xdcca, 0xdcd3, 0xb6e5, + 0xb6e6, 0xb6de, 0xdcdc, 0xb6e8, 0xdccf, 0xdcce, 0xdccc, 0xdcde, + 0xb6dc, 0xdcd8, 0xdccd, 0xb6df, 0xdcd6, 0xb6da, 0xdcd2, 0xdcd9, + 0xdcdb, 0xdcdf, 0xb6e3, 0xdccb, 0xb6dd, 0xdcd0, 0xb6d8, 0xb6e4, + 0xdcda, 0xb6e0, 0xb6e1, 0xb6e7, 0xb6db, 0xa25f, 0xb6d9, 0xdcd4, + 0xb6e2, 0xdcdd, 0xb9cd, 0xb9c8, 0xe155, 0xe151, 0xe14b, 0xb9c2, + 0xb9be, 0xe154, 0xb9bf, 0xe14e, 0xe150, 0xe153, 0xb9c4, 0xb9cb, + 0xb9c5, 0xe149, 0xb9c6, 0xb9c7, 0xe14c, 0xb9cc, 0xe14a, 0xe14f, + 0xb9c3, 0xe148, 0xb9c9, 0xb9c1, 0xb9c0, 0xe14d, 0xe152, 0xb9ca, + 0xe147, 0xbc4d, 0xe547, 0xe544, 0xbc47, 0xbc53, 0xbc54, 0xbc4a, + 0xe542, 0xbc4c, 0xe4f9, 0xbc52, 0xe546, 0xbc49, 0xe548, 0xbc48, + 0xe543, 0xe545, 0xbc4b, 0xe541, 0xe4fa, 0xe4f7, 0xd86b, 0xe4fd, + 0xe4f6, 0xe4fc, 0xe4fb, 0xe4f8, 0xbc4f, 0xbc4e, 0xbc50, 0xe4fe, + 0xbeb2, 0xe540, 0xe945, 0xe8fd, 0xbebe, 0xe942, 0xbeb6, 0xbeba, + 0xe941, 0xbeb9, 0xbeb5, 0xbeb8, 0xbeb3, 0xbebd, 0xe943, 0xe8fe, + 0xbebc, 0xe8fc, 0xbebb, 0xe944, 0xe940, 0xbc51, 0xbebf, 0xe946, + 0xbeb7, 0xbeb4, 0xecc6, 0xecc8, 0xc07b, 0xecc9, 0xecc7, 0xecc5, + 0xecc4, 0xc07d, 0xecc3, 0xc07e, 0xecc1, 0xecc2, 0xc07a, 0xc0a1, + 0xc07c, 0xecc0, 0xc250, 0xefbc, 0xefba, 0xefbf, 0xefbd, 0xefbb, + 0xefbe, 0xc360, 0xf1f2, 0xf1f3, 0xc456, 0xf1f4, 0xf1f0, 0xf1f5, + 0xf1f1, 0xc251, 0xf3fe, 0xf441, 0xc459, 0xf440, 0xc458, 0xc457, + 0xc45a, 0xf5c5, 0xf5c6, 0xc4da, 0xc4d9, 0xc4db, 0xf5c4, 0xf6d8, + 0xf6d7, 0xc56d, 0xc56f, 0xc56e, 0xf6d9, 0xc5c8, 0xf8a6, 0xc5f1, + 0xf8a5, 0xf8ee, 0xc949, 0xa57d, 0xa57c, 0xa65f, 0xa65e, 0xc9c7, + 0xa65d, 0xc9c6, 0xa779, 0xcaa9, 0xcaa8, 0xa777, 0xa77a, 0xcaa7, + 0xa778, 0xcbf0, 0xcbf1, 0xa954, 0xabaa, 0xd148, 0xd149, 0xae45, + 0xae46, 0xd4ac, 0xb0e9, 0xb0eb, 0xd4ab, 0xb0ea, 0xd87c, 0xb3f2, + 0xb6e9, 0xb6ea, 0xdce1, 0xb9cf, 0xb9ce, 0xe549, 0xe948, 0xe947, + 0xf96b, 0xa467, 0xc959, 0xc96e, 0xc96f, 0xa662, 0xa666, 0xc9c9, + 0xa664, 0xa663, 0xc9c8, 0xa665, 0xa661, 0xa660, 0xc9ca, 0xa7a6, + 0xa7a3, 0xa77d, 0xcaaa, 0xcaab, 0xa7a1, 0xcaad, 0xa77b, 0xcaae, + 0xcaac, 0xa77e, 0xa7a2, 0xa7a5, 0xa7a4, 0xa77c, 0xcaaf, 0xa959, + 0xcbfe, 0xa95b, 0xa95a, 0xcc40, 0xa958, 0xa957, 0xcbf5, 0xcbf4, + 0xcbf2, 0xcbf7, 0xcbf6, 0xcbf3, 0xcbfc, 0xcbfd, 0xcbfa, 0xcbf8, + 0xa956, 0xcbfb, 0xa95c, 0xcc41, 0xcbf9, 0xabab, 0xa955, 0xabac, + 0xce54, 0xce5a, 0xabb2, 0xce58, 0xce5e, 0xce55, 0xce59, 0xce5b, + 0xce5d, 0xce57, 0xce56, 0xce51, 0xce52, 0xabad, 0xabaf, 0xabae, + 0xce53, 0xce5c, 0xabb1, 0xce50, 0xd153, 0xd152, 0xd157, 0xd14e, + 0xd151, 0xd150, 0xd154, 0xd158, 0xae47, 0xae4a, 0xd14f, 0xd155, + 0xae49, 0xd14a, 0xabb0, 0xd4ba, 0xd156, 0xd14d, 0xae48, 0xd14c, + 0xd4b1, 0xb0ec, 0xb0f0, 0xd4c1, 0xd4af, 0xd4bd, 0xb0f1, 0xd4bf, + 0xd4c5, 0xd4c9, 0xd4c0, 0xd4b4, 0xd4bc, 0xd4ca, 0xd4c8, 0xd4be, + 0xd4b9, 0xd4b2, 0xd8a6, 0xd4b0, 0xb0f5, 0xd4b7, 0xb0f6, 0xb0f2, + 0xd4ad, 0xd4c3, 0xd4b5, 0xd4b3, 0xd4c6, 0xb0f3, 0xd4cc, 0xb0ed, + 0xb0ef, 0xd4bb, 0xd4b6, 0xae4b, 0xb0ee, 0xd4b8, 0xd4c7, 0xd4cb, + 0xd4c2, 0xd4c4, 0xd4ae, 0xd8a1, 0xd8aa, 0xd8a9, 0xb3fa, 0xd8a2, + 0xb3fb, 0xb3f9, 0xd8a4, 0xb3f6, 0xd8a8, 0xd8a3, 0xd8a5, 0xd87d, + 0xb3f4, 0xd8b2, 0xd8b1, 0xd8ae, 0xb3f3, 0xb3f7, 0xb3f8, 0xd14b, + 0xd8ab, 0xb3f5, 0xb0f4, 0xd8ad, 0xd87e, 0xd8b0, 0xd8af, 0xd8b3, + 0xdcef, 0xd8ac, 0xd8a7, 0xdce7, 0xb6f4, 0xb6f7, 0xb6f2, 0xdce6, + 0xdcea, 0xdce5, 0xb6ec, 0xb6f6, 0xdce2, 0xb6f0, 0xdce9, 0xb6ee, + 0xb6ed, 0xdcec, 0xb6ef, 0xdcee, 0xdceb, 0xb6eb, 0xb6f5, 0xdcf0, + 0xdce4, 0xdced, 0xdce3, 0xb6f1, 0xb6f3, 0xdce8, 0xdcf1, 0xe15d, + 0xb9d0, 0xe163, 0xb9d5, 0xe15f, 0xe166, 0xe157, 0xb9d7, 0xb9d1, + 0xe15c, 0xbc55, 0xe15b, 0xe164, 0xb9d2, 0xb9d6, 0xe15a, 0xe160, + 0xe165, 0xe156, 0xb9d4, 0xe15e, 0xe162, 0xe168, 0xe158, 0xe161, + 0xb9d3, 0xe167, 0xe159, 0xbc59, 0xe54b, 0xbc57, 0xbc56, 0xe54d, + 0xe552, 0xe54e, 0xe551, 0xbc5c, 0xbea5, 0xbc5b, 0xe54a, 0xe550, + 0xbc5a, 0xe54f, 0xe54c, 0xbc58, 0xe94d, 0xe94f, 0xe94a, 0xbec1, + 0xe94c, 0xbec0, 0xe94e, 0xbec3, 0xe950, 0xbec2, 0xe949, 0xe94b, + 0xc0a5, 0xeccc, 0xc0a4, 0xeccd, 0xc0a3, 0xeccb, 0xc0a2, 0xecca, + 0xc253, 0xc252, 0xf1f6, 0xf1f8, 0xf1f7, 0xc361, 0xc362, 0xc363, + 0xf442, 0xc45b, 0xf7d3, 0xf7d2, 0xc5f2, 0xa468, 0xa4d0, 0xa7a7, + 0xce5f, 0xb3fc, 0xb3fd, 0xdcf2, 0xb9d8, 0xe169, 0xe553, 0xc95a, + 0xcab0, 0xcc42, 0xce60, 0xd159, 0xae4c, 0xf1f9, 0xc4dc, 0xa469, + 0xa57e, 0xc970, 0xa667, 0xa668, 0xa95d, 0xb0f7, 0xb9da, 0xb9db, + 0xb9d9, 0xa46a, 0xa4d1, 0xa4d3, 0xa4d2, 0xc95b, 0xa4d4, 0xa5a1, + 0xc971, 0xa5a2, 0xa669, 0xa66a, 0xc9cb, 0xa7a8, 0xcab1, 0xa961, + 0xcc43, 0xa95f, 0xa960, 0xa95e, 0xd15a, 0xabb6, 0xabb5, 0xabb7, + 0xabb4, 0xce61, 0xa962, 0xabb3, 0xae4d, 0xae4e, 0xae4f, 0xd4cd, + 0xb3fe, 0xd8b4, 0xb0f8, 0xb6f8, 0xb9dd, 0xb9dc, 0xe16a, 0xbc5d, + 0xbec4, 0xefc0, 0xf6da, 0xf7d4, 0xa46b, 0xa5a3, 0xa5a4, 0xc9d1, + 0xa66c, 0xa66f, 0xc9cf, 0xc9cd, 0xa66e, 0xc9d0, 0xc9d2, 0xc9cc, + 0xa671, 0xa670, 0xa66d, 0xa66b, 0xc9ce, 0xa7b3, 0xa7b0, 0xcab6, + 0xcab9, 0xcab8, 0xa7aa, 0xa7b2, 0xa7af, 0xcab5, 0xcab3, 0xa7ae, + 0xa7a9, 0xa7ac, 0xcab4, 0xcabb, 0xcab7, 0xa7ad, 0xa7b1, 0xa7b4, + 0xcab2, 0xcaba, 0xa7ab, 0xa967, 0xa96f, 0xcc4f, 0xcc48, 0xa970, + 0xcc53, 0xcc44, 0xcc4b, 0xa966, 0xcc45, 0xa964, 0xcc4c, 0xcc50, + 0xa963, 0xcc51, 0xcc4a, 0xcc4d, 0xa972, 0xa969, 0xcc54, 0xcc52, + 0xa96e, 0xa96c, 0xcc49, 0xa96b, 0xcc47, 0xcc46, 0xa96a, 0xa968, + 0xa971, 0xa96d, 0xa965, 0xcc4e, 0xabb9, 0xabc0, 0xce6f, 0xabb8, + 0xce67, 0xce63, 0xce73, 0xce62, 0xabbb, 0xce6c, 0xabbe, 0xabc1, + 0xabbc, 0xce70, 0xabbf, 0xae56, 0xce76, 0xce64, 0xce66, 0xce6d, + 0xce71, 0xce75, 0xce72, 0xce6b, 0xce6e, 0xce68, 0xabc3, 0xce6a, + 0xce69, 0xce74, 0xabba, 0xce65, 0xabc2, 0xabbd, 0xae5c, 0xd162, + 0xae5b, 0xd160, 0xae50, 0xae55, 0xd15f, 0xd15c, 0xd161, 0xae51, + 0xd15b, 0xae54, 0xae52, 0xd163, 0xae53, 0xae57, 0xae58, 0xae5a, + 0xae59, 0xd15d, 0xd15e, 0xd164, 0xd4d4, 0xb0f9, 0xd8c2, 0xd4d3, + 0xd4e6, 0xb140, 0xd4e4, 0xb0fe, 0xb0fa, 0xd4ed, 0xd4dd, 0xd4e0, + 0xb143, 0xd4ea, 0xd4e2, 0xb0fb, 0xb144, 0xd4e7, 0xd4e5, 0xd4d6, + 0xd4eb, 0xd4df, 0xd4da, 0xd4d0, 0xd4ec, 0xd4dc, 0xd4cf, 0xb142, + 0xd4e1, 0xd4ee, 0xd4de, 0xd4d2, 0xd4d7, 0xd4ce, 0xb141, 0xd4db, + 0xd4d8, 0xb0fc, 0xd4d1, 0xd4e9, 0xb0fd, 0xd4d9, 0xd4d5, 0xd4e8, + 0xb440, 0xd8bb, 0xd8b8, 0xd8c9, 0xd8bd, 0xd8ca, 0xb442, 0xd8c6, + 0xd8c3, 0xd8c4, 0xd8c7, 0xd8cb, 0xd4e3, 0xd8cd, 0xdd47, 0xb443, + 0xd8ce, 0xd8b6, 0xd8c0, 0xd8c5, 0xb441, 0xb444, 0xd8cc, 0xd8cf, + 0xd8ba, 0xd8b7, 0xd8b9, 0xd8be, 0xd8bc, 0xb445, 0xd8c8, 0xd8bf, + 0xd8c1, 0xd8b5, 0xdcfa, 0xdcf8, 0xb742, 0xb740, 0xdd43, 0xdcf9, + 0xdd44, 0xdd40, 0xdcf7, 0xdd46, 0xdcf6, 0xdcfd, 0xb6fe, 0xb6fd, + 0xb6fc, 0xdcfb, 0xdd41, 0xb6f9, 0xb741, 0xdcf4, 0xdcfe, 0xdcf3, + 0xdcfc, 0xb6fa, 0xdd42, 0xdcf5, 0xb6fb, 0xdd45, 0xe16e, 0xb9e2, + 0xb9e1, 0xb9e3, 0xe17a, 0xe170, 0xe176, 0xe16b, 0xe179, 0xe178, + 0xe17c, 0xe175, 0xb9de, 0xe174, 0xb9e4, 0xe16d, 0xb9df, 0xe17b, + 0xb9e0, 0xe16f, 0xe172, 0xe177, 0xe171, 0xe16c, 0xe173, 0xe555, + 0xbc61, 0xe558, 0xe557, 0xe55a, 0xe55c, 0xbc5f, 0xe556, 0xe554, + 0xe55d, 0xe55b, 0xe559, 0xe55f, 0xe55e, 0xbc63, 0xbc5e, 0xbc60, + 0xbc62, 0xe560, 0xe957, 0xe956, 0xe955, 0xe958, 0xe951, 0xe952, + 0xe95a, 0xe953, 0xbec5, 0xe95c, 0xe95b, 0xe954, 0xecd1, 0xc0a8, + 0xeccf, 0xecd4, 0xecd3, 0xe959, 0xc0a7, 0xecd2, 0xecce, 0xecd6, + 0xecd5, 0xc0a6, 0xecd0, 0xbec6, 0xc254, 0xefc1, 0xf1fa, 0xf1fb, + 0xf1fc, 0xc45c, 0xc45d, 0xf443, 0xf5c8, 0xf5c7, 0xf6db, 0xf6dc, + 0xf7d5, 0xf8a7, 0xa46c, 0xa46d, 0xa46e, 0xa4d5, 0xa5a5, 0xc9d3, + 0xa672, 0xa673, 0xa7b7, 0xa7b8, 0xa7b6, 0xa7b5, 0xa973, 0xcc55, + 0xa975, 0xa974, 0xcc56, 0xabc4, 0xae5d, 0xd165, 0xd4f0, 0xb145, + 0xb447, 0xd4ef, 0xb446, 0xb9e5, 0xe17d, 0xbec7, 0xc0a9, 0xecd7, + 0xc45e, 0xc570, 0xc972, 0xa5a6, 0xc973, 0xa676, 0xa674, 0xa675, + 0xa677, 0xa7ba, 0xa7b9, 0xcabc, 0xa7bb, 0xcabd, 0xcc57, 0xcc58, + 0xa976, 0xa978, 0xa97a, 0xa977, 0xa97b, 0xa979, 0xabc8, 0xabc5, + 0xabc7, 0xabc9, 0xabc6, 0xd166, 0xce77, 0xd168, 0xd167, 0xae63, + 0xae5f, 0xae60, 0xae62, 0xae64, 0xae61, 0xae66, 0xae65, 0xb14a, + 0xd4f2, 0xd4f1, 0xb149, 0xb148, 0xb147, 0xb14b, 0xb146, 0xd8d5, + 0xd8d2, 0xb449, 0xd8d1, 0xd8d6, 0xb44b, 0xd8d4, 0xb448, 0xb44a, + 0xd8d3, 0xdd48, 0xdd49, 0xdd4a, 0xb9e6, 0xb9ee, 0xe17e, 0xb9e8, + 0xb9ec, 0xe1a1, 0xb9ed, 0xb9e9, 0xb9ea, 0xb9e7, 0xb9eb, 0xbc66, + 0xd8d0, 0xbc67, 0xbc65, 0xbc64, 0xe95d, 0xbec8, 0xecd8, 0xecd9, + 0xc364, 0xc45f, 0xa46f, 0xa678, 0xabca, 0xd169, 0xae67, 0xb14e, + 0xb14d, 0xb14c, 0xb44c, 0xb44d, 0xd8d7, 0xb9ef, 0xbec9, 0xa470, + 0xc95c, 0xa4d6, 0xc974, 0xc9d4, 0xa679, 0xa97c, 0xdd4b, 0xa471, + 0xa4d7, 0xc9d5, 0xcabe, 0xcabf, 0xa7bc, 0xd8d8, 0xb44e, 0xdd4c, + 0xc0aa, 0xa472, 0xa4a8, 0xa4d8, 0xc975, 0xa5a7, 0xa7c0, 0xa7bf, + 0xa7bd, 0xa7be, 0xcc59, 0xa97e, 0xa9a1, 0xcc5a, 0xa97d, 0xabce, + 0xce78, 0xabcd, 0xabcb, 0xabcc, 0xae6a, 0xae68, 0xd16b, 0xae69, + 0xd16a, 0xae5e, 0xd4f3, 0xb150, 0xb151, 0xb14f, 0xb9f0, 0xe1a2, + 0xbc68, 0xbc69, 0xe561, 0xc0ab, 0xefc2, 0xefc3, 0xc4dd, 0xf8a8, + 0xc94b, 0xa4d9, 0xa473, 0xc977, 0xc976, 0xa67a, 0xc9d7, 0xc9d8, + 0xc9d6, 0xc9d9, 0xcac7, 0xcac2, 0xcac4, 0xcac6, 0xcac3, 0xa7c4, + 0xcac0, 0xcac1, 0xa7c1, 0xa7c2, 0xcac5, 0xcac8, 0xa7c3, 0xcac9, + 0xcc68, 0xcc62, 0xcc5d, 0xa9a3, 0xcc65, 0xcc63, 0xcc5c, 0xcc69, + 0xcc6c, 0xcc67, 0xcc60, 0xa9a5, 0xcc66, 0xa9a6, 0xcc61, 0xcc64, + 0xcc5b, 0xcc5f, 0xcc6b, 0xa9a7, 0xa9a8, 0xcc5e, 0xcc6a, 0xa9a2, + 0xa9a4, 0xceab, 0xcea4, 0xceaa, 0xcea3, 0xcea5, 0xce7d, 0xce7b, + 0xceac, 0xcea9, 0xce79, 0xabd0, 0xcea7, 0xcea8, 0xcea6, 0xce7c, + 0xce7a, 0xabcf, 0xcea2, 0xce7e, 0xcea1, 0xcead, 0xae6f, 0xae6e, + 0xd16c, 0xae6b, 0xd16e, 0xae70, 0xd16f, 0xae73, 0xae71, 0xd170, + 0xceae, 0xd172, 0xae6d, 0xae6c, 0xd16d, 0xd171, 0xae72, 0xb153, + 0xb152, 0xd4f5, 0xd4f9, 0xd4fb, 0xb154, 0xd4fe, 0xb158, 0xd541, + 0xb15a, 0xb156, 0xb15e, 0xb15b, 0xd4f7, 0xb155, 0xd4f6, 0xd4f4, + 0xd543, 0xd4f8, 0xb157, 0xd542, 0xb15c, 0xd4fd, 0xd4fc, 0xb15d, + 0xd4fa, 0xb159, 0xd544, 0xd540, 0xd8e7, 0xd8ee, 0xd8e3, 0xb451, + 0xd8df, 0xd8ef, 0xd8d9, 0xd8ec, 0xd8ea, 0xd8e4, 0xd8ed, 0xd8e6, + 0xd8de, 0xd8f0, 0xd8dc, 0xd8e9, 0xd8da, 0xd8f1, 0xb452, 0xd8eb, + 0xdd4f, 0xd8dd, 0xb44f, 0xd8e1, 0xb450, 0xd8e0, 0xd8e5, 0xd8e2, + 0xd8e8, 0xdd53, 0xdd56, 0xdd4e, 0xdd50, 0xdd55, 0xdd54, 0xb743, + 0xd8db, 0xdd52, 0xb744, 0xdd4d, 0xdd51, 0xe1a9, 0xe1b0, 0xe1a7, + 0xe1ae, 0xe1a5, 0xe1ad, 0xe1b1, 0xe1a4, 0xe1a8, 0xe1a3, 0xb9f1, + 0xe1a6, 0xb9f2, 0xe1ac, 0xe1ab, 0xe1aa, 0xe1af, 0xe565, 0xe567, + 0xbc6b, 0xe568, 0xe563, 0xe562, 0xe56c, 0xe56a, 0xbc6a, 0xe56d, + 0xe564, 0xe569, 0xe56b, 0xe566, 0xe961, 0xe966, 0xe960, 0xe965, + 0xe95e, 0xe968, 0xe964, 0xe969, 0xe963, 0xe95f, 0xe967, 0xe96a, + 0xe962, 0xecda, 0xc0af, 0xc0ad, 0xc0ac, 0xc0ae, 0xefc4, 0xf172, + 0xf1fd, 0xf444, 0xf445, 0xc460, 0xf5c9, 0xc4de, 0xf5ca, 0xf6de, + 0xc572, 0xc571, 0xf6dd, 0xc5c9, 0xf7d6, 0xa474, 0xa67b, 0xc9da, + 0xcaca, 0xa8b5, 0xb15f, 0xa475, 0xa5aa, 0xa5a9, 0xa5a8, 0xa7c5, + 0xae74, 0xdd57, 0xa476, 0xa477, 0xa478, 0xa4da, 0xabd1, 0xceaf, + 0xb453, 0xa479, 0xc95d, 0xa5ab, 0xa5ac, 0xc978, 0xa67c, 0xcacb, + 0xa7c6, 0xcacc, 0xa9ae, 0xcc6e, 0xa9ac, 0xa9ab, 0xcc6d, 0xa9a9, + 0xcc6f, 0xa9aa, 0xa9ad, 0xabd2, 0xabd4, 0xceb3, 0xceb0, 0xceb1, + 0xceb2, 0xceb4, 0xabd3, 0xd174, 0xd173, 0xae76, 0xae75, 0xb162, + 0xd546, 0xb161, 0xb163, 0xb160, 0xb455, 0xd545, 0xb456, 0xd8f3, + 0xb457, 0xd8f2, 0xb454, 0xdd5a, 0xdd5c, 0xb745, 0xdd5b, 0xdd59, + 0xdd58, 0xe1b4, 0xb9f7, 0xb9f5, 0xb9f6, 0xe1b2, 0xe1b3, 0xb9f3, + 0xe571, 0xe56f, 0xbc6d, 0xe570, 0xbc6e, 0xbc6c, 0xb9f4, 0xe96d, + 0xe96b, 0xe96c, 0xe56e, 0xecdc, 0xc0b0, 0xecdb, 0xefc5, 0xefc6, + 0xe96e, 0xf1fe, 0xa47a, 0xa5ad, 0xa67e, 0xc9db, 0xa67d, 0xa9af, + 0xb746, 0xa4db, 0xa5ae, 0xabd5, 0xb458, 0xc979, 0xc97a, 0xc9dc, + 0xa7c8, 0xcad0, 0xcace, 0xa7c9, 0xcacd, 0xcacf, 0xcad1, 0xa7c7, + 0xa9b3, 0xa9b4, 0xa9b1, 0xa9b0, 0xceb8, 0xa9b2, 0xabd6, 0xceb7, + 0xceb9, 0xceb6, 0xceba, 0xabd7, 0xae79, 0xd175, 0xd177, 0xae77, + 0xd178, 0xae78, 0xd176, 0xceb5, 0xd547, 0xd54a, 0xd54b, 0xd548, + 0xb167, 0xb166, 0xb164, 0xb165, 0xd549, 0xb168, 0xb45a, 0xb45b, + 0xb45c, 0xdd5d, 0xdd5f, 0xdd61, 0xb748, 0xb747, 0xb459, 0xdd60, + 0xdd5e, 0xe1b8, 0xe1b6, 0xe1bc, 0xb9f8, 0xe1bd, 0xe1ba, 0xb9f9, + 0xe1b7, 0xe1b5, 0xe1bb, 0xbc70, 0xe573, 0xe1b9, 0xbc72, 0xe574, + 0xbc71, 0xbc74, 0xe575, 0xbc6f, 0xbc73, 0xe973, 0xe971, 0xe970, + 0xe972, 0xe96f, 0xc366, 0xf446, 0xf447, 0xf5cb, 0xf6df, 0xc655, + 0xa9b5, 0xa7ca, 0xabd8, 0xa47b, 0xa4dc, 0xa5af, 0xc9dd, 0xa7cb, + 0xcad2, 0xcebb, 0xabd9, 0xb9fa, 0xa47c, 0xa6a1, 0xb749, 0xa47d, + 0xa4dd, 0xa4de, 0xa5b1, 0xa5b0, 0xc9de, 0xa6a2, 0xcad3, 0xa7cc, + 0xcc71, 0xcc72, 0xcc73, 0xa9b6, 0xa9b7, 0xcc70, 0xa9b8, 0xabda, + 0xcebc, 0xd17a, 0xae7a, 0xd179, 0xb169, 0xd54c, 0xb16a, 0xd54d, + 0xb45d, 0xdd62, 0xe1bf, 0xe1be, 0xb9fb, 0xbc75, 0xe576, 0xbeca, + 0xe974, 0xc0b1, 0xc573, 0xf7d8, 0xcc74, 0xcebd, 0xb16b, 0xd8f4, + 0xb74a, 0xc255, 0xa7ce, 0xa7cd, 0xabdb, 0xd17b, 0xb16d, 0xb343, + 0xb16e, 0xb16c, 0xb45e, 0xe1c0, 0xb9fc, 0xbc76, 0xc94c, 0xc9df, + 0xcad5, 0xa7cf, 0xcad4, 0xa7d0, 0xa9bc, 0xcc77, 0xcc76, 0xa9bb, + 0xa9b9, 0xa9ba, 0xcc75, 0xabdd, 0xcebe, 0xabe0, 0xabdc, 0xabe2, + 0xabde, 0xabdf, 0xabe1, 0xae7d, 0xae7c, 0xae7b, 0xd54f, 0xb16f, + 0xb172, 0xb170, 0xd54e, 0xb175, 0xb171, 0xd550, 0xb174, 0xb173, + 0xd8f6, 0xd8f5, 0xb461, 0xb45f, 0xb460, 0xd8f7, 0xb74b, 0xdd64, + 0xb74c, 0xdd63, 0xe577, 0xbc78, 0xe1c1, 0xbc77, 0xb9fd, 0xecde, + 0xe975, 0xc0b2, 0xecdd, 0xf240, 0xf448, 0xf449, 0xa4df, 0xa5b2, + 0xc97b, 0xa7d2, 0xa7d4, 0xc9e2, 0xcad8, 0xcad7, 0xcad6, 0xc9e1, + 0xc9e0, 0xa6a4, 0xa7d3, 0xa7d1, 0xa6a3, 0xa9bd, 0xcc78, 0xa9be, + 0xcadd, 0xcadf, 0xcade, 0xcc79, 0xcada, 0xa7d8, 0xa7d6, 0xcad9, + 0xcadb, 0xcae1, 0xa7d5, 0xcadc, 0xcae5, 0xa9c0, 0xcae2, 0xa7d7, + 0xcae0, 0xcae3, 0xa9bf, 0xa9c1, 0xcae4, 0xccaf, 0xcca2, 0xcc7e, + 0xccae, 0xcca9, 0xabe7, 0xa9c2, 0xccaa, 0xccad, 0xabe3, 0xccac, + 0xa9c3, 0xa9c8, 0xa9c6, 0xcca3, 0xcc7c, 0xcca5, 0xa9cd, 0xccb0, + 0xabe4, 0xcca6, 0xabe5, 0xa9c9, 0xcca8, 0xcecd, 0xabe6, 0xcc7b, + 0xa9ca, 0xabe8, 0xa9cb, 0xa9c7, 0xa9cc, 0xcca7, 0xcc7a, 0xccab, + 0xa9c4, 0xcc7d, 0xcca4, 0xcca1, 0xa9c5, 0xcebf, 0xcec0, 0xceca, + 0xd1a1, 0xcecb, 0xabee, 0xcece, 0xcec4, 0xabed, 0xcec6, 0xcec7, + 0xcec9, 0xabe9, 0xaea3, 0xcec5, 0xcec1, 0xaea4, 0xcecf, 0xae7e, + 0xd17d, 0xcec8, 0xd17c, 0xcec3, 0xcecc, 0xabec, 0xaea1, 0xabf2, + 0xaea2, 0xced0, 0xd17e, 0xabeb, 0xaea6, 0xabf1, 0xabf0, 0xabef, + 0xaea5, 0xced1, 0xaea7, 0xabea, 0xcec2, 0xb176, 0xd1a4, 0xd1a6, + 0xd1a8, 0xaea8, 0xaeae, 0xd553, 0xd1ac, 0xd1a3, 0xb178, 0xd551, + 0xaead, 0xaeab, 0xd1ae, 0xd552, 0xd1a5, 0xaeac, 0xd1a9, 0xaeaf, + 0xd1ab, 0xaeaa, 0xd1aa, 0xd1ad, 0xd1a7, 0xaea9, 0xb179, 0xd1a2, + 0xb177, 0xb17a, 0xd555, 0xd55e, 0xb464, 0xb17c, 0xb1a3, 0xb465, + 0xd560, 0xb1aa, 0xd8f9, 0xd556, 0xb1a2, 0xb1a5, 0xb17e, 0xd554, + 0xd562, 0xd565, 0xd949, 0xd563, 0xd8fd, 0xb1a1, 0xb1a8, 0xb1ac, + 0xd55d, 0xd8f8, 0xd561, 0xb17b, 0xd8fa, 0xd564, 0xd8fc, 0xd559, + 0xb462, 0xd557, 0xd558, 0xb1a7, 0xb1a6, 0xd55b, 0xb1ab, 0xd55f, + 0xb1a4, 0xd55c, 0xb1a9, 0xb466, 0xb463, 0xd8fb, 0xd55a, 0xb17d, + 0xb46b, 0xb46f, 0xd940, 0xb751, 0xb46d, 0xd944, 0xb471, 0xdd65, + 0xd946, 0xb753, 0xb469, 0xb46c, 0xd947, 0xd948, 0xd94e, 0xb473, + 0xb754, 0xd94a, 0xd94f, 0xd943, 0xb75e, 0xb755, 0xb472, 0xd941, + 0xd950, 0xb75d, 0xb470, 0xb74e, 0xd94d, 0xb474, 0xd945, 0xd8fe, + 0xb46a, 0xd942, 0xd94b, 0xb74d, 0xb752, 0xb467, 0xd94c, 0xb750, + 0xb468, 0xb75c, 0xe1c3, 0xdd70, 0xdd68, 0xe1c2, 0xdd6c, 0xdd6e, + 0xdd6b, 0xb75b, 0xdd6a, 0xb75f, 0xe1d2, 0xb75a, 0xba40, 0xdd71, + 0xe1c4, 0xb758, 0xdd69, 0xdd6d, 0xb9fe, 0xb74f, 0xdd66, 0xdd67, + 0xba41, 0xb757, 0xb759, 0xb756, 0xdd6f, 0xe1c8, 0xe1c9, 0xe1ce, + 0xbc7d, 0xe1d5, 0xba47, 0xba46, 0xe1d0, 0xbc7c, 0xe1c5, 0xba45, + 0xe1d4, 0xba43, 0xba44, 0xe1d1, 0xe5aa, 0xbc7a, 0xb46e, 0xe1d3, + 0xbca3, 0xe1cb, 0xbc7b, 0xbca2, 0xe1c6, 0xe1ca, 0xe1c7, 0xe1cd, + 0xba48, 0xbc79, 0xba42, 0xe57a, 0xe1cf, 0xbca1, 0xbca4, 0xe1cc, + 0xbc7e, 0xe579, 0xe57e, 0xbece, 0xe578, 0xe9a3, 0xe5a9, 0xbca8, + 0xbca6, 0xbecc, 0xe5a6, 0xe5a2, 0xbcac, 0xe978, 0xbcaa, 0xe5a1, + 0xe976, 0xe5a5, 0xe5a8, 0xe57d, 0xbcab, 0xbca5, 0xe977, 0xbecd, + 0xe5a7, 0xbca7, 0xbca9, 0xe5a4, 0xbcad, 0xe5a3, 0xe57c, 0xe57b, + 0xbecb, 0xe5ab, 0xe97a, 0xece0, 0xbed0, 0xe9a2, 0xe97e, 0xece1, + 0xbed1, 0xe9a1, 0xe97c, 0xc0b4, 0xecdf, 0xe979, 0xe97b, 0xc0b5, + 0xbed3, 0xc0b3, 0xbed2, 0xc0b7, 0xe97d, 0xbecf, 0xefcf, 0xefc7, + 0xece7, 0xefc8, 0xece3, 0xc256, 0xece5, 0xece4, 0xc0b6, 0xece2, + 0xece6, 0xefd0, 0xefcc, 0xefce, 0xefc9, 0xefca, 0xefcd, 0xefcb, + 0xc367, 0xc36a, 0xc369, 0xc368, 0xc461, 0xf44a, 0xc462, 0xf241, + 0xc4df, 0xf5cc, 0xc4e0, 0xc574, 0xc5ca, 0xf7d9, 0xf7da, 0xf7db, + 0xf9ba, 0xa4e0, 0xc97c, 0xa5b3, 0xa6a6, 0xa6a7, 0xa6a5, 0xa6a8, + 0xa7da, 0xa7d9, 0xccb1, 0xa9cf, 0xa9ce, 0xd1af, 0xb1ad, 0xb1ae, + 0xb475, 0xdd72, 0xb760, 0xb761, 0xdd74, 0xdd76, 0xdd75, 0xe1d7, + 0xe1d6, 0xba49, 0xe1d8, 0xe5ac, 0xbcae, 0xbed4, 0xc0b8, 0xc257, + 0xc0b9, 0xa4e1, 0xcae6, 0xccb2, 0xa9d1, 0xa9d0, 0xa9d2, 0xabf3, + 0xced2, 0xced3, 0xd1b0, 0xaeb0, 0xb1af, 0xb476, 0xd951, 0xa4e2, + 0xa47e, 0xa4e3, 0xc97d, 0xa5b7, 0xa5b6, 0xa5b4, 0xa5b5, 0xa6ab, + 0xc9e9, 0xc9eb, 0xa6aa, 0xc9e3, 0xc9e4, 0xc9ea, 0xc9e6, 0xc9e8, + 0xa6a9, 0xc9e5, 0xc9ec, 0xc9e7, 0xa7e1, 0xa7ea, 0xa7e8, 0xcaf0, + 0xcaed, 0xcaf5, 0xa7e6, 0xcaf6, 0xa7df, 0xcaf3, 0xa7e5, 0xcaef, + 0xcaee, 0xa7e3, 0xcaf4, 0xa7e4, 0xa9d3, 0xa7de, 0xcaf1, 0xcae7, + 0xa7db, 0xa7ee, 0xcaec, 0xcaf2, 0xa7e0, 0xa7e2, 0xcae8, 0xcae9, + 0xcaea, 0xa7ed, 0xa7e7, 0xa7ec, 0xcaeb, 0xa7eb, 0xa7dd, 0xa7dc, + 0xa7e9, 0xa9e1, 0xccbe, 0xccb7, 0xa9dc, 0xa9ef, 0xccb3, 0xccba, + 0xccbc, 0xccbf, 0xa9ea, 0xccbb, 0xccb4, 0xa9e8, 0xccb8, 0xccc0, + 0xa9d9, 0xccbd, 0xa9e3, 0xa9e2, 0xccb6, 0xa9d7, 0xa9d8, 0xa9d6, + 0xa9ee, 0xa9e6, 0xa9e0, 0xa9d4, 0xccb9, 0xa9df, 0xa9d5, 0xa9e7, + 0xa9f0, 0xced4, 0xa9e4, 0xccb5, 0xa9da, 0xa9dd, 0xa9de, 0xa9ec, + 0xa9ed, 0xa9eb, 0xa9e5, 0xa9e9, 0xa9db, 0xabf4, 0xceda, 0xac41, + 0xabf8, 0xabfa, 0xac40, 0xcee6, 0xabfd, 0xd1b1, 0xaeb1, 0xac43, + 0xced7, 0xcedf, 0xabfe, 0xcede, 0xcedb, 0xcee3, 0xcee5, 0xabf7, + 0xabfb, 0xac42, 0xaeb3, 0xcee0, 0xabf9, 0xac45, 0xced9, 0xabfc, + 0xaeb2, 0xabf6, 0xced6, 0xcedd, 0xced5, 0xced8, 0xcedc, 0xd1b2, + 0xac44, 0xcee1, 0xcee2, 0xcee4, 0xabf5, 0xaec1, 0xd1be, 0xaebf, + 0xaec0, 0xd1b4, 0xd1c4, 0xaeb6, 0xd566, 0xd1c6, 0xd1c0, 0xd1b7, + 0xd1c9, 0xd1ba, 0xaebc, 0xd57d, 0xd1bd, 0xaebe, 0xaeb5, 0xd1cb, + 0xd1bf, 0xaeb8, 0xd1b8, 0xd1b5, 0xd1b6, 0xaeb9, 0xd1c5, 0xd1cc, + 0xaebb, 0xd1bc, 0xd1bb, 0xaec3, 0xaec2, 0xaeb4, 0xaeba, 0xaebd, + 0xd1c8, 0xd1c2, 0xaeb7, 0xd1b3, 0xd1ca, 0xd1c1, 0xd1c3, 0xd1c7, + 0xd567, 0xb1b7, 0xb1cb, 0xb1ca, 0xb1bf, 0xd579, 0xd575, 0xd572, + 0xd5a6, 0xb1ba, 0xb1b2, 0xd577, 0xb4a8, 0xb1b6, 0xd5a1, 0xb1cc, + 0xb1c9, 0xd57b, 0xd56a, 0xb1c8, 0xd5a3, 0xd569, 0xb1bd, 0xb1c1, + 0xd5a2, 0xd573, 0xb1c2, 0xb1bc, 0xd568, 0xb478, 0xd5a5, 0xd571, + 0xb1c7, 0xd574, 0xd5a4, 0xb1c6, 0xd952, 0xb1b3, 0xd56f, 0xb1b8, + 0xb1c3, 0xb1be, 0xd578, 0xd56e, 0xd56c, 0xd57e, 0xb1b0, 0xb1c4, + 0xb1b4, 0xb477, 0xd57c, 0xb1b5, 0xb1b1, 0xb1c0, 0xb1bb, 0xb1b9, + 0xd570, 0xb1c5, 0xd56d, 0xd57a, 0xd576, 0xd954, 0xd953, 0xd56b, + 0xd964, 0xb47a, 0xd96a, 0xd959, 0xd967, 0xdd77, 0xb47d, 0xd96b, + 0xd96e, 0xb47c, 0xd95c, 0xd96d, 0xd96c, 0xb47e, 0xd955, 0xb479, + 0xb4a3, 0xb4a1, 0xd969, 0xd95f, 0xb4a5, 0xd970, 0xd968, 0xd971, + 0xb4ad, 0xb4ab, 0xd966, 0xd965, 0xd963, 0xd95d, 0xb4a4, 0xb4a2, + 0xd1b9, 0xd956, 0xddb7, 0xd957, 0xb47b, 0xb4aa, 0xdd79, 0xb4a6, + 0xb4a7, 0xd958, 0xd96f, 0xdd78, 0xd960, 0xd95b, 0xb4a9, 0xd961, + 0xd95e, 0xb4ae, 0xb770, 0xdd7c, 0xddb1, 0xddb6, 0xddaa, 0xb76c, + 0xddbb, 0xb769, 0xdd7a, 0xdd7b, 0xb762, 0xb76b, 0xdda4, 0xb76e, + 0xb76f, 0xdda5, 0xddb2, 0xddb8, 0xb76a, 0xb764, 0xdda3, 0xdd7d, + 0xddba, 0xdda8, 0xdda9, 0xdd7e, 0xddb4, 0xddab, 0xddb5, 0xddad, + 0xb765, 0xe1d9, 0xb768, 0xb766, 0xddb9, 0xddb0, 0xddac, 0xdda1, + 0xba53, 0xddaf, 0xb76d, 0xdda7, 0xdda6, 0xb767, 0xb763, 0xe1ee, + 0xddb3, 0xddae, 0xdda2, 0xe1e9, 0xe1da, 0xe1e5, 0xe1ec, 0xba51, + 0xb4ac, 0xe1ea, 0xba4c, 0xba4b, 0xe1f1, 0xe1db, 0xe1e8, 0xe1dc, + 0xe1e7, 0xba4f, 0xe1eb, 0xd962, 0xe1f2, 0xe1e3, 0xba52, 0xe5ba, + 0xbcaf, 0xe1f0, 0xe1ef, 0xba54, 0xe5ad, 0xbcb0, 0xe5ae, 0xe1df, + 0xe1e0, 0xe1dd, 0xe1e2, 0xe1de, 0xe1f3, 0xba4e, 0xbcb1, 0xba50, + 0xba55, 0xe1e1, 0xe1ed, 0xe1e6, 0xe5b1, 0xba4a, 0xbcb4, 0xe9aa, + 0xe5b6, 0xe5b5, 0xe5b7, 0xe5b4, 0xbcb5, 0xbcbb, 0xbcb8, 0xbcb9, + 0xe5af, 0xe5b2, 0xe5bc, 0xbcc1, 0xbcbf, 0xe5b3, 0xd95a, 0xbcb2, + 0xe5b9, 0xe5b0, 0xbcc2, 0xe5b8, 0xba4d, 0xbcb7, 0xe1e4, 0xbcba, + 0xbcbe, 0xbcc0, 0xbcbd, 0xbcbc, 0xbcb6, 0xe5bb, 0xbcb3, 0xbcc3, + 0xbed8, 0xbed9, 0xe9a9, 0xbee2, 0xbedf, 0xbed6, 0xbedd, 0xe9ab, + 0xbedb, 0xbed5, 0xbedc, 0xe9a8, 0xc0bb, 0xbed7, 0xbede, 0xc0ba, + 0xe9a7, 0xe9a6, 0xbee0, 0xbee1, 0xe9a5, 0xe9a4, 0xc0bc, 0xe9ae, + 0xbeda, 0xe9ac, 0xc0bd, 0xc0c2, 0xecea, 0xecec, 0xc0bf, 0xeced, + 0xece9, 0xeceb, 0xc0c0, 0xc0c3, 0xece8, 0xc0be, 0xc0c1, 0xc259, + 0xe9ad, 0xc258, 0xc25e, 0xefd4, 0xc25c, 0xc25d, 0xefd7, 0xefd3, + 0xc25a, 0xefd1, 0xc36b, 0xefd5, 0xefd6, 0xefd2, 0xc25b, 0xf242, + 0xf245, 0xf246, 0xf244, 0xf247, 0xc36c, 0xf243, 0xf44e, 0xc464, + 0xf44d, 0xf44c, 0xf44b, 0xc463, 0xc465, 0xf5cd, 0xc4e2, 0xc4e1, + 0xf6e1, 0xf6e0, 0xf6e3, 0xc5cb, 0xc575, 0xf7dd, 0xf6e2, 0xf7dc, + 0xc5cd, 0xc5cc, 0xc5f3, 0xf8a9, 0xf8ef, 0xa4e4, 0xd972, 0xe9af, + 0xa6ac, 0xcaf7, 0xa7f1, 0xa7ef, 0xa7f0, 0xccc1, 0xa9f1, 0xac46, + 0xcee7, 0xcee8, 0xac47, 0xd1ce, 0xaec4, 0xaec5, 0xd1cd, 0xb1d3, + 0xb1cf, 0xd5a7, 0xb1d6, 0xb1d5, 0xb1ce, 0xb1d1, 0xb1d4, 0xb1d0, + 0xd976, 0xb1cd, 0xb4af, 0xb4b1, 0xb4b2, 0xd975, 0xd978, 0xb4b0, + 0xd973, 0xd977, 0xd974, 0xb771, 0xddbc, 0xba56, 0xe1f4, 0xbee3, + 0xbcc4, 0xe5bd, 0xbcc5, 0xbcc6, 0xe5bf, 0xe5be, 0xe5c0, 0xe9b1, + 0xe9b0, 0xecef, 0xecee, 0xc0c4, 0xc0c5, 0xf248, 0xa4e5, 0xd979, + 0xb4b4, 0xb4b3, 0xddbd, 0xefd8, 0xc4e3, 0xf7de, 0xa4e6, 0xaec6, + 0xb1d8, 0xb1d7, 0xd97a, 0xd97b, 0xb772, 0xe1f5, 0xba57, 0xe9b2, + 0xa4e7, 0xa5b8, 0xa9f2, 0xccc2, 0xcee9, 0xac48, 0xb1d9, 0xd97c, + 0xb4b5, 0xb773, 0xe5c1, 0xe5c2, 0xecf0, 0xc25f, 0xf8f0, 0xa4e8, + 0xccc3, 0xa9f3, 0xac49, 0xceea, 0xaec7, 0xd1d2, 0xd1d0, 0xd1d1, + 0xaec8, 0xd1cf, 0xb1db, 0xb1dc, 0xd5a8, 0xb1dd, 0xb1da, 0xd97d, + 0xd97e, 0xddbe, 0xba59, 0xba58, 0xecf1, 0xefd9, 0xf24a, 0xf249, + 0xf44f, 0xc95e, 0xac4a, 0xa4e9, 0xa5b9, 0xa6ae, 0xa6ad, 0xa6af, + 0xa6b0, 0xc9ee, 0xc9ed, 0xcaf8, 0xa7f2, 0xcafb, 0xcafa, 0xcaf9, + 0xcafc, 0xa9f4, 0xccc9, 0xccc5, 0xccce, 0xa9fb, 0xa9f9, 0xccca, + 0xccc6, 0xcccd, 0xa9f8, 0xaa40, 0xccc8, 0xccc4, 0xa9fe, 0xcccb, + 0xa9f7, 0xcccc, 0xa9fa, 0xa9fc, 0xccd0, 0xcccf, 0xccc7, 0xa9f6, + 0xa9f5, 0xa9fd, 0xceef, 0xcef5, 0xac50, 0xac4d, 0xceec, 0xcef1, + 0xac53, 0xac4b, 0xcef0, 0xac4e, 0xac51, 0xcef3, 0xac4c, 0xcef8, + 0xac4f, 0xac52, 0xceed, 0xcef2, 0xcef6, 0xceee, 0xceeb, 0xcef7, + 0xcef4, 0xaed0, 0xaec9, 0xaecc, 0xaecf, 0xd1d5, 0xaeca, 0xd1d3, + 0xaece, 0xaecb, 0xd1d6, 0xaecd, 0xd5ac, 0xb1df, 0xd5ab, 0xd5ad, + 0xb1de, 0xb1e3, 0xd1d4, 0xd5aa, 0xd5ae, 0xb1e0, 0xd5a9, 0xb1e2, + 0xb1e1, 0xd9a7, 0xd9a2, 0xb4b6, 0xb4ba, 0xb4b7, 0xd9a5, 0xd9a8, + 0xb4b8, 0xb4b9, 0xb4be, 0xddc7, 0xd9a6, 0xb4bc, 0xd9a3, 0xd9a1, + 0xb4bd, 0xd9a4, 0xb779, 0xddbf, 0xb776, 0xb777, 0xb775, 0xddc4, + 0xddc3, 0xddc0, 0xb77b, 0xddc2, 0xb4bb, 0xddc6, 0xddc1, 0xb778, + 0xb774, 0xb77a, 0xddc5, 0xba5c, 0xe1f8, 0xe1f7, 0xe1f6, 0xba5a, + 0xba5b, 0xe5c5, 0xe5c8, 0xbcc8, 0xbcc7, 0xe5c9, 0xe5c4, 0xbcca, + 0xe5c6, 0xbcc9, 0xe5c3, 0xe5c7, 0xbee9, 0xbee6, 0xe9bb, 0xe9ba, + 0xe9b9, 0xe9b4, 0xe9b5, 0xbee7, 0xbee4, 0xbee8, 0xe9b3, 0xbee5, + 0xe9b6, 0xe9b7, 0xe9bc, 0xe9b8, 0xecf2, 0xc0c7, 0xefdc, 0xc0c6, + 0xefda, 0xefdb, 0xc260, 0xc36e, 0xf24b, 0xc36d, 0xf451, 0xf452, + 0xc466, 0xf450, 0xc4e4, 0xf7df, 0xc5ce, 0xf8aa, 0xf8ab, 0xa4ea, + 0xa6b1, 0xa6b2, 0xa7f3, 0xccd1, 0xac54, 0xaed1, 0xb1e4, 0xb0d2, + 0xb4bf, 0xb4c0, 0xb3cc, 0xd9a9, 0xb77c, 0xe1fa, 0xe1f9, 0xa4eb, + 0xa6b3, 0xccd2, 0xaa42, 0xaa41, 0xcef9, 0xcefa, 0xd1d7, 0xd1d8, + 0xaed2, 0xaed3, 0xaed4, 0xd5af, 0xb1e6, 0xb4c2, 0xb4c1, 0xddc8, + 0xdf7a, 0xe1fb, 0xe9bd, 0xc261, 0xc467, 0xa4ec, 0xa5bc, 0xa5bd, + 0xa5bb, 0xa5be, 0xa5ba, 0xa6b6, 0xc9f6, 0xa6b5, 0xa6b7, 0xc9f1, + 0xc9f0, 0xc9f3, 0xc9f2, 0xc9f5, 0xa6b4, 0xc9ef, 0xc9f4, 0xcafd, + 0xa7fd, 0xcafe, 0xcb43, 0xa7fc, 0xcb47, 0xcb42, 0xcb45, 0xa7f5, + 0xa7f6, 0xa7f7, 0xa7f8, 0xa840, 0xcb41, 0xa7fa, 0xa841, 0xcb40, + 0xcb46, 0xa7f9, 0xcb44, 0xa7fb, 0xa7f4, 0xa7fe, 0xaa57, 0xccd4, + 0xaa43, 0xaa4d, 0xaa4e, 0xaa46, 0xaa58, 0xaa48, 0xccdc, 0xaa53, + 0xccd7, 0xaa49, 0xcce6, 0xcce7, 0xccdf, 0xccd8, 0xaa56, 0xcce4, + 0xaa51, 0xaa4f, 0xcce5, 0xcce3, 0xccdb, 0xccd3, 0xccda, 0xaa4a, + 0xaa50, 0xaa44, 0xccde, 0xccdd, 0xccd5, 0xaa52, 0xcce1, 0xccd6, + 0xaa55, 0xcce8, 0xaa45, 0xaa4c, 0xccd9, 0xcce2, 0xaa54, 0xaa47, + 0xaa4b, 0xcce0, 0xcf5b, 0xac5c, 0xac69, 0xcf56, 0xcf4c, 0xac62, + 0xcf4a, 0xac5b, 0xcf45, 0xac65, 0xcf52, 0xcefe, 0xcf41, 0xcf44, + 0xcefb, 0xcf51, 0xcf61, 0xac60, 0xcf46, 0xcf58, 0xcefd, 0xcf5f, + 0xcf60, 0xcf63, 0xcf5a, 0xcf4b, 0xcf53, 0xac66, 0xac59, 0xac61, + 0xac6d, 0xac56, 0xac58, 0xcf43, 0xac6a, 0xac63, 0xcf5d, 0xcf40, + 0xac6c, 0xac67, 0xcf49, 0xac6b, 0xcf50, 0xcf48, 0xac64, 0xcf5c, + 0xcf54, 0xac5e, 0xcf62, 0xcf47, 0xac5a, 0xcf59, 0xcf4f, 0xac5f, + 0xcf55, 0xac57, 0xcefc, 0xac68, 0xaee3, 0xac5d, 0xcf4e, 0xcf4d, + 0xcf42, 0xcf5e, 0xcf57, 0xac55, 0xd1ec, 0xaeea, 0xd1ed, 0xd1e1, + 0xaedf, 0xaeeb, 0xd1da, 0xd1e3, 0xd1eb, 0xd1d9, 0xd1f4, 0xaed5, + 0xd1f3, 0xd1ee, 0xd1ef, 0xaedd, 0xaee8, 0xd1e5, 0xd1e6, 0xd1f0, + 0xd1e7, 0xd1e2, 0xd1dc, 0xd1dd, 0xd1ea, 0xd1e4, 0xaed6, 0xaeda, + 0xd1f2, 0xd1de, 0xaee6, 0xaee2, 0xaee5, 0xaeec, 0xaedb, 0xaee7, + 0xd1e9, 0xaee9, 0xaed8, 0xaed7, 0xd1db, 0xd1df, 0xaee0, 0xd1f1, + 0xd1e8, 0xd1e0, 0xaee4, 0xaee1, 0xaed9, 0xaedc, 0xd5c4, 0xd5b4, + 0xd5b5, 0xd5b9, 0xd5c8, 0xd5c5, 0xd5be, 0xd5bd, 0xb1ed, 0xd5c1, + 0xd5d0, 0xd5b0, 0xd5d1, 0xd5c3, 0xd5d5, 0xd5c9, 0xb1ec, 0xd5c7, + 0xb1e7, 0xb1fc, 0xb1f2, 0xb1f6, 0xb1f5, 0xd5b1, 0xd5ce, 0xd5d4, + 0xd5cc, 0xd5d3, 0xd5c0, 0xd5b2, 0xd5d2, 0xd5c2, 0xb1ea, 0xb1f7, + 0xd5cb, 0xb1f0, 0xd5ca, 0xd5b3, 0xb1f8, 0xb1fa, 0xd5cd, 0xb1fb, + 0xb1e9, 0xd5ba, 0xd5cf, 0xb1ef, 0xb1f9, 0xd5bc, 0xd5c6, 0xd5b7, + 0xd5bb, 0xb1f4, 0xd5b6, 0xb1e8, 0xb1f1, 0xb1ee, 0xd5bf, 0xaede, + 0xd9c0, 0xb1eb, 0xb1f3, 0xd9c3, 0xd9d9, 0xd9ce, 0xb4d6, 0xb4d1, + 0xd9bd, 0xb4d2, 0xd9cd, 0xd9c6, 0xd9d3, 0xb4ce, 0xd9ab, 0xd9d5, + 0xb4c4, 0xd9b3, 0xb4c7, 0xb4c6, 0xb4d7, 0xd9ad, 0xd9cf, 0xd9d0, + 0xb4c9, 0xb4c5, 0xd9bb, 0xb4d0, 0xd9b6, 0xd9d1, 0xb4cc, 0xd9c9, + 0xd9d6, 0xd9b0, 0xd9b5, 0xd9af, 0xb4cb, 0xd9c2, 0xddde, 0xd9b1, + 0xb4cf, 0xd9ba, 0xd9d2, 0xb4ca, 0xd9b7, 0xd9b4, 0xd9c5, 0xb4cd, + 0xb4c3, 0xb4d9, 0xd9c8, 0xd9c7, 0xd9ac, 0xb4c8, 0xd9d4, 0xd9bc, + 0xd9be, 0xd9cb, 0xd9ca, 0xd9aa, 0xb4d3, 0xb4d5, 0xd9b2, 0xd9b9, + 0xd9c1, 0xb4d4, 0xd9b8, 0xd9c4, 0xd9d7, 0xd9cc, 0xd9d8, 0xd9ae, + 0xddf2, 0xb7a6, 0xddf0, 0xdddb, 0xdde0, 0xddd9, 0xddec, 0xddcb, + 0xddd2, 0xddea, 0xddf4, 0xdddc, 0xddcf, 0xdde2, 0xdde7, 0xddd3, + 0xdde4, 0xddd0, 0xddd7, 0xddd8, 0xb7a8, 0xddeb, 0xdde9, 0xddcc, + 0xddee, 0xddef, 0xddf1, 0xb7ac, 0xb7a4, 0xd5b8, 0xddd4, 0xdde6, + 0xddd5, 0xb7a1, 0xb7b1, 0xdded, 0xb7af, 0xb7ab, 0xddca, 0xb7a3, + 0xddcd, 0xb7b0, 0xdddd, 0xddc9, 0xb7a9, 0xdde1, 0xddd1, 0xb7aa, + 0xddda, 0xb77e, 0xb4d8, 0xdde3, 0xd9bf, 0xddce, 0xdde8, 0xb7a5, + 0xdde5, 0xb7a2, 0xdddf, 0xb7ad, 0xddd6, 0xddf3, 0xb7a7, 0xdec6, + 0xb7ae, 0xe24a, 0xe248, 0xe25e, 0xe246, 0xe258, 0xb77d, 0xba5f, + 0xe242, 0xe25d, 0xe247, 0xe255, 0xba64, 0xba5d, 0xe25b, 0xe240, + 0xe25a, 0xba6f, 0xe251, 0xe261, 0xba6d, 0xe249, 0xba5e, 0xe24b, + 0xe259, 0xba67, 0xe244, 0xba6b, 0xba61, 0xe24d, 0xe243, 0xe1fc, + 0xe257, 0xba68, 0xe260, 0xe1fd, 0xba65, 0xe253, 0xba66, 0xe245, + 0xe250, 0xe24c, 0xe24e, 0xba60, 0xe25f, 0xba6e, 0xe24f, 0xe262, + 0xe1fe, 0xe254, 0xba63, 0xba6c, 0xba6a, 0xe241, 0xe256, 0xba69, + 0xba62, 0xe252, 0xe25c, 0xe5d5, 0xe5d1, 0xe5cd, 0xe5e1, 0xe5de, + 0xbccd, 0xe5e5, 0xe5d4, 0xbcd8, 0xe5db, 0xe5d0, 0xe5da, 0xbcd5, + 0xe5ee, 0xe5eb, 0xe5dd, 0xe5ce, 0xe5e2, 0xe5e4, 0xbcd1, 0xe5d8, + 0xe5d3, 0xe5ca, 0xbcce, 0xbcd6, 0xe5e7, 0xbcd7, 0xe5cb, 0xe5ed, + 0xe5e0, 0xe5e6, 0xbcd4, 0xe5e3, 0xe5ea, 0xbcd9, 0xbcd3, 0xe5dc, + 0xe5cf, 0xe5ef, 0xe5cc, 0xe5e8, 0xbcd0, 0xe5d6, 0xe5d7, 0xbccf, + 0xbccc, 0xe5d2, 0xbcd2, 0xbccb, 0xe5e9, 0xe5ec, 0xe5d9, 0xe9ca, + 0xe9c2, 0xe9be, 0xbef6, 0xbeeb, 0xbef0, 0xbeec, 0xe9cc, 0xe9d7, + 0xbeea, 0xe9c4, 0xe9cd, 0xe5df, 0xe9ce, 0xbef1, 0xe9dd, 0xbef5, + 0xbef8, 0xe9c0, 0xbef4, 0xe9db, 0xe9dc, 0xe9d2, 0xe9d1, 0xe9c9, + 0xe9d3, 0xe9da, 0xe9d9, 0xbeef, 0xbeed, 0xe9cb, 0xe9c8, 0xe9c5, + 0xe9d8, 0xbef7, 0xe9d6, 0xbef3, 0xbef2, 0xe9d0, 0xe9bf, 0xe9c1, + 0xe9c3, 0xe9d5, 0xe9cf, 0xbeee, 0xe9c6, 0xe9d4, 0xe9c7, 0xc0cf, + 0xed45, 0xc0c8, 0xecf5, 0xed41, 0xc0ca, 0xed48, 0xecfc, 0xecf7, + 0xed49, 0xecf3, 0xecfe, 0xc0d1, 0xed44, 0xed4a, 0xecfd, 0xc0c9, + 0xed40, 0xecf4, 0xc0d0, 0xed47, 0xecf9, 0xc0cc, 0xecfb, 0xecf8, + 0xc0d2, 0xecfa, 0xc0cb, 0xc0ce, 0xed43, 0xecf6, 0xed46, 0xed42, + 0xc263, 0xefe7, 0xc268, 0xc269, 0xc262, 0xefe6, 0xefe3, 0xefe4, + 0xc266, 0xefde, 0xefe2, 0xc265, 0xefdf, 0xc267, 0xc264, 0xefdd, + 0xefe1, 0xefe5, 0xf251, 0xf24e, 0xf257, 0xf256, 0xf254, 0xf24f, + 0xc372, 0xf250, 0xc371, 0xc0cd, 0xf253, 0xc370, 0xf258, 0xf252, + 0xf24d, 0xefe0, 0xc36f, 0xf24c, 0xf456, 0xf455, 0xf255, 0xc468, + 0xf459, 0xf45a, 0xf454, 0xf458, 0xf453, 0xf5d1, 0xf457, 0xc4e7, + 0xc4e5, 0xf5cf, 0xf5d2, 0xf5ce, 0xf5d0, 0xc4e6, 0xf6e5, 0xf6e6, + 0xc576, 0xf6e4, 0xf7e2, 0xc5cf, 0xf7e0, 0xf7e1, 0xf8ac, 0xc656, + 0xf8f3, 0xf8f1, 0xf8f2, 0xf8f4, 0xf9bb, 0xa4ed, 0xa6b8, 0xaa59, + 0xcce9, 0xcf64, 0xd1f5, 0xd1f7, 0xd1f6, 0xd1f8, 0xb1fd, 0xd5d7, + 0xd1f9, 0xd5d6, 0xd5d8, 0xd5d9, 0xd9da, 0xb4db, 0xd9db, 0xd9dd, + 0xb4dc, 0xb4da, 0xd9dc, 0xddfa, 0xddf8, 0xddf7, 0xddf6, 0xddf5, + 0xb7b2, 0xddf9, 0xba70, 0xe263, 0xe265, 0xba71, 0xe264, 0xbcdb, + 0xbcda, 0xe5f0, 0xe9df, 0xe9de, 0xe9e0, 0xbef9, 0xed4b, 0xc0d3, + 0xefe8, 0xc26a, 0xf259, 0xc577, 0xa4ee, 0xa5bf, 0xa6b9, 0xa842, + 0xaa5a, 0xaa5b, 0xac6e, 0xd1fa, 0xb7b3, 0xe6d1, 0xbefa, 0xc26b, + 0xa4ef, 0xa6ba, 0xcceb, 0xaa5c, 0xccea, 0xcf65, 0xac6f, 0xcf66, + 0xac70, 0xd1fc, 0xaeee, 0xaeed, 0xd5de, 0xd5dc, 0xd5dd, 0xd5db, + 0xd5da, 0xd9de, 0xd9e1, 0xb4de, 0xd9df, 0xb4dd, 0xd9e0, 0xddfb, + 0xe266, 0xe267, 0xe268, 0xe5f3, 0xe5f2, 0xbcdc, 0xe5f1, 0xe5f4, + 0xe9e1, 0xe9e2, 0xe9e3, 0xed4c, 0xc0d4, 0xc26c, 0xf25a, 0xc4e8, + 0xc95f, 0xac71, 0xcf67, 0xaeef, 0xb1fe, 0xb4df, 0xd9e2, 0xb7b5, + 0xb7b4, 0xe269, 0xe26a, 0xbcdd, 0xbcde, 0xe9e5, 0xe9e4, 0xefe9, + 0xf7e3, 0xa4f0, 0xc960, 0xa5c0, 0xa843, 0xcb48, 0xac72, 0xb7b6, + 0xa4f1, 0xcf68, 0xac73, 0xcf69, 0xc0d5, 0xa4f2, 0xccec, 0xcf6a, + 0xd242, 0xd241, 0xd1fe, 0xd1fd, 0xd243, 0xd240, 0xb240, 0xb241, + 0xb4e0, 0xd9e3, 0xd9e4, 0xd9e5, 0xde41, 0xde42, 0xde40, 0xddfd, + 0xddfe, 0xb7b7, 0xe26b, 0xe5f7, 0xe5f6, 0xe5f5, 0xe5f8, 0xe9e7, + 0xe9e6, 0xbefb, 0xe9e8, 0xc0d6, 0xed4d, 0xefea, 0xf25b, 0xf6e7, + 0xa4f3, 0xa5c2, 0xa5c1, 0xaa5d, 0xc961, 0xc97e, 0xa6bb, 0xc9f7, + 0xcb49, 0xcb4a, 0xaa5e, 0xcced, 0xac74, 0xcf6b, 0xcf6c, 0xaef0, + 0xaef4, 0xd244, 0xaef3, 0xaef1, 0xaef2, 0xd5df, 0xb242, 0xb4e3, + 0xb4e1, 0xb4e2, 0xd9e6, 0xba72, 0xa4f4, 0xc9a1, 0xa5c3, 0xc9a4, + 0xa5c6, 0xc9a3, 0xa5c5, 0xa5c4, 0xa844, 0xc9a2, 0xc9f8, 0xc9fc, + 0xc9fe, 0xca40, 0xa6c5, 0xa6c6, 0xc9fb, 0xa6c1, 0xc9f9, 0xc9fd, + 0xa6c2, 0xa6bd, 0xa6be, 0xa6c4, 0xc9fa, 0xa6bc, 0xa845, 0xa6bf, + 0xa6c0, 0xa6c3, 0xcb5b, 0xcb59, 0xcb4c, 0xa851, 0xcb53, 0xa84c, + 0xcb4d, 0xcb55, 0xcb52, 0xa84f, 0xcb51, 0xa856, 0xcb5a, 0xa858, + 0xa85a, 0xcb4b, 0xa84d, 0xcb5c, 0xa854, 0xa857, 0xcd45, 0xa847, + 0xa85e, 0xa855, 0xcb4e, 0xa84a, 0xa859, 0xcb56, 0xa848, 0xa849, + 0xcd43, 0xcb4f, 0xa850, 0xa85b, 0xcb5d, 0xcb50, 0xa84e, 0xa853, + 0xccee, 0xa85c, 0xcb57, 0xa852, 0xa85d, 0xa846, 0xcb54, 0xa84b, + 0xcb58, 0xcd44, 0xaa6a, 0xaa7a, 0xccf5, 0xaa71, 0xcd4b, 0xaa62, + 0xaa65, 0xcd42, 0xccf3, 0xccf7, 0xaa6d, 0xaa6f, 0xccfa, 0xaa76, + 0xaa68, 0xaa66, 0xaa67, 0xaa75, 0xcd47, 0xaa70, 0xccf9, 0xccfb, + 0xaa6e, 0xaa73, 0xccfc, 0xcd4a, 0xac75, 0xaa79, 0xaa63, 0xcd49, + 0xcd4d, 0xccf8, 0xcd4f, 0xcd40, 0xaa6c, 0xccf4, 0xaa6b, 0xaa7d, + 0xaa72, 0xccf2, 0xcf75, 0xaa78, 0xaa7c, 0xcd41, 0xcd46, 0xaa7e, + 0xaa77, 0xaa69, 0xaa5f, 0xaa64, 0xccf6, 0xaa60, 0xcd4e, 0xccf0, + 0xccef, 0xccfd, 0xccf1, 0xaa7b, 0xaef5, 0xaa74, 0xccfe, 0xaa61, + 0xaca6, 0xcd4c, 0xcf7c, 0xcfa1, 0xcfa4, 0xcf77, 0xcfa7, 0xcfaa, + 0xcfac, 0xcf74, 0xac76, 0xac7b, 0xd249, 0xacad, 0xcfa5, 0xcfad, + 0xcf7b, 0xcf73, 0xd264, 0xac7e, 0xcfa2, 0xcf78, 0xcf7a, 0xaca5, + 0xcf7d, 0xac7d, 0xcf70, 0xcfa8, 0xcfab, 0xac7a, 0xaca8, 0xcf6d, + 0xacaa, 0xac78, 0xacae, 0xcfa9, 0xcf6f, 0xacab, 0xd25e, 0xcd48, + 0xac7c, 0xac77, 0xcf76, 0xcf6e, 0xacac, 0xaca4, 0xcfa3, 0xaca9, + 0xaca7, 0xcf79, 0xaca1, 0xcf71, 0xaca2, 0xaca3, 0xcf72, 0xcfa6, + 0xac79, 0xcf7e, 0xd24c, 0xaefd, 0xaf43, 0xd255, 0xd25b, 0xd257, + 0xd24a, 0xd24d, 0xd246, 0xd247, 0xaf4a, 0xaefa, 0xd256, 0xd25f, + 0xaf45, 0xaef6, 0xaf40, 0xd24e, 0xaf42, 0xd24f, 0xd259, 0xaf44, + 0xd268, 0xd248, 0xaefc, 0xaefb, 0xaf48, 0xd245, 0xd266, 0xd25a, + 0xd267, 0xd261, 0xd253, 0xd262, 0xd25c, 0xd265, 0xd263, 0xaf49, + 0xd254, 0xaef9, 0xaef8, 0xaf41, 0xaf47, 0xd260, 0xaf46, 0xd251, + 0xb243, 0xd269, 0xd250, 0xd24b, 0xaefe, 0xaf4b, 0xaef7, 0xd258, + 0xd25d, 0xb265, 0xd5e1, 0xd5e5, 0xb252, 0xb250, 0xb247, 0xd5e3, + 0xd5e2, 0xb25b, 0xd5e8, 0xb255, 0xd5fa, 0xd647, 0xb244, 0xd5f7, + 0xd5f0, 0xb267, 0xd5e0, 0xd5fc, 0xb264, 0xb258, 0xb263, 0xb24e, + 0xd5ec, 0xd5fe, 0xd5f6, 0xb24f, 0xb249, 0xd645, 0xd5fd, 0xd640, + 0xb251, 0xb259, 0xd642, 0xd5ea, 0xd5fb, 0xd5ef, 0xd644, 0xb25e, + 0xb246, 0xb25c, 0xd5f4, 0xd5f2, 0xd5f3, 0xb253, 0xd5ee, 0xd5ed, + 0xb248, 0xd5e7, 0xd646, 0xb24a, 0xd5f1, 0xb268, 0xb262, 0xd5e6, + 0xb25f, 0xb25d, 0xb266, 0xd5f8, 0xb261, 0xd252, 0xd5f9, 0xb260, + 0xd641, 0xb245, 0xd5f5, 0xb257, 0xd5e9, 0xb256, 0xb254, 0xb24c, + 0xb24b, 0xd9e7, 0xd643, 0xd5eb, 0xd9fc, 0xb24d, 0xb541, 0xb25a, + 0xb4ee, 0xd9f6, 0xb4fc, 0xd9ea, 0xb4eb, 0xb4e7, 0xda49, 0xb4ed, + 0xb4f1, 0xb4ec, 0xb4f5, 0xda4d, 0xda44, 0xd9f1, 0xb4fa, 0xb4f4, + 0xd9fd, 0xb4e4, 0xda4a, 0xda43, 0xb4e8, 0xd9f7, 0xb4f7, 0xda55, + 0xda56, 0xb4e5, 0xda48, 0xb4f9, 0xd9fb, 0xd9ed, 0xd9ee, 0xb4fd, + 0xd9f2, 0xd9f9, 0xd9f3, 0xb4fb, 0xb544, 0xd9ef, 0xd9e8, 0xd9e9, + 0xd9eb, 0xb4ea, 0xd9f8, 0xb4f8, 0xb542, 0xd9fa, 0xda53, 0xda4b, + 0xb4e6, 0xda51, 0xb4f2, 0xb4f0, 0xda57, 0xb4ef, 0xda41, 0xd9f4, + 0xd9fe, 0xb547, 0xda45, 0xda42, 0xd9f0, 0xb543, 0xda4f, 0xda4c, + 0xda54, 0xb4e9, 0xda40, 0xb546, 0xda47, 0xb4f3, 0xb4f6, 0xda46, + 0xb545, 0xd9f5, 0xd5e4, 0xda50, 0xda4e, 0xda52, 0xd9ec, 0xb540, + 0xde61, 0xde60, 0xde46, 0xb7bd, 0xde5f, 0xde49, 0xde4a, 0xb7c7, + 0xde68, 0xb7c2, 0xde5e, 0xde43, 0xb7c8, 0xb7be, 0xde52, 0xde48, + 0xde4b, 0xde63, 0xb7b8, 0xde6a, 0xde62, 0xb7c1, 0xde57, 0xb7cc, + 0xb7cb, 0xb7c5, 0xde69, 0xb7b9, 0xde55, 0xde4c, 0xde59, 0xde65, + 0xb7cd, 0xb7bb, 0xde54, 0xde4d, 0xb7c4, 0xb7c3, 0xde50, 0xde5a, + 0xde64, 0xde47, 0xde51, 0xb7bc, 0xde5b, 0xb7c9, 0xb7c0, 0xde4e, + 0xb7bf, 0xde45, 0xde53, 0xde67, 0xb4fe, 0xbab0, 0xde56, 0xe26c, + 0xde58, 0xde66, 0xb7c6, 0xde4f, 0xb7ba, 0xb7ca, 0xbcf0, 0xde44, + 0xde5d, 0xde5c, 0xe2aa, 0xbaad, 0xe27d, 0xe2a4, 0xbaa2, 0xe26e, + 0xbaaf, 0xba77, 0xe26d, 0xe2b0, 0xbab1, 0xe271, 0xe2a3, 0xe273, + 0xe2b3, 0xe2af, 0xba75, 0xbaa1, 0xe653, 0xbaae, 0xba7d, 0xe26f, + 0xe2ae, 0xbaa3, 0xe2ab, 0xe2b8, 0xe275, 0xe27e, 0xe2b6, 0xe2ac, + 0xba7c, 0xe27c, 0xba76, 0xba74, 0xbaa8, 0xe27a, 0xe277, 0xe278, + 0xe2b2, 0xe2b7, 0xe2b5, 0xba7a, 0xe2b9, 0xba7e, 0xbaa7, 0xe270, + 0xe5fa, 0xe279, 0xba78, 0xbaac, 0xbaa9, 0xba7b, 0xe2a5, 0xe274, + 0xbaaa, 0xe2a7, 0xbaa4, 0xbaa6, 0xba73, 0xe2a9, 0xe2a1, 0xe272, + 0xbaa5, 0xe2b1, 0xe2b4, 0xe27b, 0xe2a8, 0xba79, 0xbcdf, 0xe2a6, + 0xe5f9, 0xe2ad, 0xe276, 0xe644, 0xe64e, 0xbce2, 0xe64d, 0xe659, + 0xbce4, 0xe64b, 0xe64f, 0xbcef, 0xe646, 0xbce7, 0xe652, 0xe9f0, + 0xbcf3, 0xbcf2, 0xe654, 0xe643, 0xe65e, 0xbced, 0xbce3, 0xe657, + 0xe65b, 0xe660, 0xe655, 0xe649, 0xbce6, 0xbce9, 0xbcf1, 0xbcec, + 0xe64c, 0xe2a2, 0xe648, 0xe65f, 0xbce8, 0xbceb, 0xe661, 0xbce0, + 0xe656, 0xe5fb, 0xe65c, 0xc0df, 0xe64a, 0xbce1, 0xe645, 0xbce5, + 0xe5fc, 0xbaab, 0xe641, 0xe65a, 0xe642, 0xe640, 0xbcea, 0xe658, + 0xe5fe, 0xe651, 0xe650, 0xe65d, 0xe647, 0xbcee, 0xe9f3, 0xbf49, + 0xbefe, 0xea40, 0xe9eb, 0xbf41, 0xe9f7, 0xbf48, 0xbf43, 0xe9f5, + 0xed4f, 0xe9fb, 0xea42, 0xe9fa, 0xe9e9, 0xe9f8, 0xea44, 0xea46, + 0xbefd, 0xea45, 0xbf44, 0xbf4a, 0xbf47, 0xe9fe, 0xbf46, 0xe9f9, + 0xe9ed, 0xe9f2, 0xe9fd, 0xbf45, 0xbf42, 0xbefc, 0xbf40, 0xe9f1, + 0xe5fd, 0xe9ec, 0xe9ef, 0xea41, 0xe9f4, 0xe9ea, 0xed4e, 0xea43, + 0xe9ee, 0xe9fc, 0xed51, 0xc0e3, 0xc0d7, 0xc0db, 0xed53, 0xed59, + 0xed57, 0xc0d9, 0xc0da, 0xc0e1, 0xed5a, 0xed52, 0xc0dc, 0xed56, + 0xed55, 0xed5b, 0xc0e2, 0xc0dd, 0xc0e0, 0xed54, 0xc0e4, 0xc0de, + 0xc0e5, 0xc0d8, 0xed58, 0xed50, 0xeff7, 0xc271, 0xeff4, 0xeff6, + 0xc26f, 0xeff2, 0xeff3, 0xefee, 0xe9f6, 0xefef, 0xc270, 0xefeb, + 0xc26d, 0xeff8, 0xc26e, 0xefec, 0xefed, 0xeff1, 0xc273, 0xc272, + 0xeff0, 0xc378, 0xf25f, 0xf265, 0xc379, 0xf25c, 0xc376, 0xc373, + 0xf267, 0xc377, 0xc374, 0xf25e, 0xf261, 0xf262, 0xf263, 0xf266, + 0xeff5, 0xf25d, 0xc375, 0xf264, 0xf268, 0xf260, 0xf45d, 0xc46a, + 0xf460, 0xc46b, 0xf468, 0xf45f, 0xf45c, 0xf45e, 0xf462, 0xf465, + 0xf464, 0xf467, 0xf45b, 0xc469, 0xf463, 0xf466, 0xf469, 0xf461, + 0xf5d3, 0xf5d4, 0xf5d8, 0xf5d9, 0xf5d6, 0xf5d7, 0xf5d5, 0xc4e9, + 0xc578, 0xf6eb, 0xf6e8, 0xf6e9, 0xf6ea, 0xc579, 0xf7e5, 0xf7e4, + 0xf8af, 0xc5f4, 0xf8ad, 0xf8b0, 0xf8ae, 0xf8f5, 0xc657, 0xc665, + 0xf9a3, 0xf96c, 0xf9a2, 0xf9d0, 0xf9d1, 0xa4f5, 0xa6c7, 0xca41, + 0xcb5e, 0xa85f, 0xa862, 0xcb5f, 0xa860, 0xa861, 0xcd58, 0xcd5a, + 0xcd55, 0xcd52, 0xcd54, 0xaaa4, 0xaaa2, 0xcd56, 0xaaa3, 0xcd53, + 0xcd50, 0xaaa1, 0xcd57, 0xcd51, 0xaaa5, 0xcd59, 0xcfaf, 0xcfb3, + 0xacb7, 0xcfb6, 0xacaf, 0xacb2, 0xacb4, 0xacb6, 0xacb3, 0xcfb2, + 0xcfb1, 0xacb1, 0xcfb4, 0xcfb5, 0xcfae, 0xacb5, 0xacb0, 0xcfb0, + 0xd277, 0xd278, 0xd279, 0xaf50, 0xaf4c, 0xd26e, 0xd276, 0xd27b, + 0xaf51, 0xd26c, 0xd272, 0xd26b, 0xd275, 0xd271, 0xaf4d, 0xaf4f, + 0xd27a, 0xd26a, 0xd26d, 0xd273, 0xd274, 0xd27c, 0xd270, 0xaf4e, + 0xb26d, 0xd64e, 0xd650, 0xd64c, 0xd658, 0xd64a, 0xd657, 0xb269, + 0xd648, 0xda5b, 0xd652, 0xb26c, 0xd653, 0xd656, 0xd65a, 0xd64f, + 0xd654, 0xb26a, 0xb26b, 0xd659, 0xd64d, 0xd649, 0xd65b, 0xd651, + 0xd655, 0xd64b, 0xb548, 0xb549, 0xda65, 0xb54f, 0xda59, 0xda62, + 0xda58, 0xb54c, 0xda60, 0xda5e, 0xda5f, 0xb54a, 0xda63, 0xda5c, + 0xda5a, 0xb54b, 0xda5d, 0xda61, 0xb54d, 0xda64, 0xde70, 0xde77, + 0xde79, 0xdea1, 0xb7da, 0xde6b, 0xb7d2, 0xde7a, 0xb7d7, 0xdea2, + 0xb7ce, 0xde7d, 0xde6d, 0xde7e, 0xde6c, 0xb7dc, 0xde78, 0xb7cf, + 0xdea3, 0xb7d4, 0xde71, 0xb7d9, 0xde7c, 0xde6f, 0xde76, 0xde72, + 0xde6e, 0xb7d1, 0xb7d8, 0xb7d6, 0xb7d3, 0xb7db, 0xb7d0, 0xde75, + 0xb7d5, 0xb54e, 0xde7b, 0xde73, 0xde74, 0xe2c1, 0xbab4, 0xe2bd, + 0xe2c3, 0xe2bf, 0xbab6, 0xe2be, 0xe2c2, 0xe2ba, 0xe2bc, 0xbab5, + 0xe2c0, 0xe2bb, 0xbab7, 0xbab2, 0xe2c4, 0xbab3, 0xe667, 0xe664, + 0xe670, 0xe66a, 0xe66c, 0xbcf4, 0xe666, 0xe66e, 0xe66d, 0xe66b, + 0xe671, 0xbcf7, 0xe668, 0xe66f, 0xbcf5, 0xe663, 0xe665, 0xbcf6, + 0xe662, 0xe672, 0xe669, 0xea4a, 0xbf51, 0xea55, 0xea53, 0xbf4b, + 0xea49, 0xea4c, 0xea4d, 0xea48, 0xbf55, 0xbf56, 0xea47, 0xea56, + 0xea51, 0xbf4f, 0xbf4c, 0xea50, 0xea4e, 0xbf52, 0xea52, 0xbf4d, + 0xbf4e, 0xea4f, 0xbf50, 0xea4b, 0xea54, 0xbf53, 0xea57, 0xea58, + 0xbf54, 0xc0e7, 0xc0ee, 0xed5c, 0xed62, 0xed60, 0xc0ea, 0xc0e9, + 0xc0e6, 0xed5e, 0xc0ec, 0xc0eb, 0xc0e8, 0xed61, 0xed5d, 0xed5f, + 0xc0ed, 0xc277, 0xeffb, 0xc274, 0xc275, 0xeffd, 0xc276, 0xeffa, + 0xeff9, 0xf26c, 0xeffc, 0xf26d, 0xc37a, 0xf26b, 0xf26a, 0xf269, + 0xc37b, 0xc46c, 0xf46a, 0xf46b, 0xf5dc, 0xf5db, 0xc4ea, 0xf5da, + 0xf6ec, 0xf6ed, 0xf7e6, 0xf8b1, 0xf8f6, 0xf9bc, 0xc679, 0xf9c6, + 0xa4f6, 0xaaa6, 0xaaa7, 0xacb8, 0xc0ef, 0xa4f7, 0xaaa8, 0xaf52, + 0xb7dd, 0xa4f8, 0xb26e, 0xbab8, 0xc962, 0xcfb7, 0xd27d, 0xe2c5, + 0xc0f0, 0xa4f9, 0xaaa9, 0xcfb8, 0xcfb9, 0xda66, 0xb550, 0xdea4, + 0xb7de, 0xe2c6, 0xbcf8, 0xc37c, 0xa4fa, 0xda67, 0xa4fb, 0xa6c9, + 0xca42, 0xa6c8, 0xa865, 0xa864, 0xa863, 0xcb60, 0xaaaa, 0xaaab, + 0xcd5b, 0xcfba, 0xcfbd, 0xacba, 0xcfbb, 0xacb9, 0xcfbc, 0xacbb, + 0xd2a2, 0xd2a1, 0xd27e, 0xaf53, 0xd65d, 0xd65e, 0xb26f, 0xd65c, + 0xd65f, 0xb552, 0xb270, 0xb551, 0xda6b, 0xda6a, 0xda68, 0xda69, + 0xda6c, 0xdea6, 0xdea5, 0xdea9, 0xdea8, 0xdea7, 0xbab9, 0xe2c9, + 0xe2c8, 0xbaba, 0xe2c7, 0xe673, 0xe674, 0xbcf9, 0xea59, 0xea5a, + 0xf272, 0xc37d, 0xf271, 0xf270, 0xf26e, 0xf26f, 0xc4eb, 0xf46c, + 0xf6ee, 0xf8f7, 0xa4fc, 0xc9a5, 0xa5c7, 0xc9a6, 0xca43, 0xca44, + 0xcb66, 0xcb62, 0xcb61, 0xaaac, 0xcb65, 0xa867, 0xcb63, 0xa866, + 0xcb67, 0xcb64, 0xcd5f, 0xcfbe, 0xcd5d, 0xcd64, 0xaaad, 0xaab0, + 0xcd65, 0xcd61, 0xcd62, 0xcd5c, 0xaaaf, 0xcd5e, 0xaaae, 0xcd63, + 0xcd60, 0xcfc2, 0xacbd, 0xacbe, 0xcfc5, 0xcfbf, 0xcfc4, 0xcfc0, + 0xacbc, 0xcfc3, 0xcfc1, 0xd2a8, 0xd2a5, 0xd2a7, 0xaf58, 0xaf57, + 0xaf55, 0xd2a4, 0xd2a9, 0xaf54, 0xaf56, 0xd2a6, 0xd667, 0xd2a3, + 0xd2aa, 0xd662, 0xd666, 0xd665, 0xda6e, 0xda79, 0xd668, 0xd663, + 0xda6d, 0xb274, 0xb273, 0xd661, 0xd664, 0xb275, 0xb272, 0xb271, + 0xd660, 0xd669, 0xda70, 0xda77, 0xb554, 0xda76, 0xda73, 0xb556, + 0xda75, 0xda6f, 0xda71, 0xda74, 0xda72, 0xb555, 0xda78, 0xb553, + 0xb7df, 0xdead, 0xdeac, 0xdeaa, 0xb7e2, 0xb7e1, 0xdeae, 0xdeab, + 0xe2ca, 0xbabb, 0xb7e0, 0xdeb0, 0xdeaf, 0xe2cd, 0xe2cb, 0xbcfa, + 0xbabc, 0xe2cc, 0xe676, 0xbcfb, 0xe675, 0xe67e, 0xe67d, 0xe67b, + 0xe67a, 0xe677, 0xe678, 0xe679, 0xe67c, 0xe6a1, 0xea5f, 0xea5c, + 0xea5d, 0xbf57, 0xea5b, 0xea61, 0xea60, 0xea5e, 0xed64, 0xed65, + 0xc0f1, 0xc0f2, 0xed63, 0xc279, 0xeffe, 0xc278, 0xc37e, 0xc3a1, + 0xc46d, 0xf46e, 0xf46d, 0xf5dd, 0xf6ef, 0xc57a, 0xf7e8, 0xf7e7, + 0xf7e9, 0xa5c8, 0xcfc6, 0xaf59, 0xb276, 0xd66a, 0xa5c9, 0xc9a7, + 0xa4fd, 0xca45, 0xcb6c, 0xcb6a, 0xcb6b, 0xcb68, 0xa868, 0xcb69, + 0xcd6d, 0xaab3, 0xcd6b, 0xcd67, 0xcd6a, 0xcd66, 0xaab5, 0xcd69, + 0xaab2, 0xaab1, 0xaab4, 0xcd6c, 0xcd68, 0xacc2, 0xacc5, 0xcfce, + 0xcfcd, 0xcfcc, 0xacbf, 0xcfd5, 0xcfcb, 0xacc1, 0xd2af, 0xcfd2, + 0xcfd0, 0xacc4, 0xcfc8, 0xcfd3, 0xcfca, 0xcfd4, 0xcfd1, 0xcfc9, + 0xacc0, 0xcfd6, 0xcfc7, 0xacc3, 0xd2b4, 0xd2ab, 0xd2b6, 0xd2ae, + 0xd2b9, 0xd2ba, 0xd2ac, 0xd2b8, 0xd2b5, 0xd2b3, 0xd2b7, 0xaf5f, + 0xaf5d, 0xd2b1, 0xd2ad, 0xd2b0, 0xd2bb, 0xd2b2, 0xaf5e, 0xcfcf, + 0xaf5a, 0xaf5c, 0xd678, 0xd66d, 0xd66b, 0xd66c, 0xd673, 0xd674, + 0xd670, 0xb27b, 0xd675, 0xd672, 0xd66f, 0xb279, 0xd66e, 0xb277, + 0xb27a, 0xd671, 0xd679, 0xaf5b, 0xb278, 0xd677, 0xd676, 0xb27c, + 0xda7e, 0xdaa1, 0xb560, 0xdaa7, 0xdaa9, 0xdaa2, 0xb55a, 0xdaa6, + 0xdaa5, 0xb55b, 0xb561, 0xb562, 0xdaa8, 0xb558, 0xda7d, 0xda7b, + 0xdaa3, 0xda7a, 0xb55f, 0xda7c, 0xdaa4, 0xdaaa, 0xb559, 0xb55e, + 0xb55c, 0xb55d, 0xb557, 0xb7e9, 0xdeb7, 0xb7e8, 0xdebb, 0xdeb1, + 0xdebc, 0xdeb2, 0xdeb3, 0xdebd, 0xdeba, 0xdeb8, 0xdeb9, 0xdeb5, + 0xdeb4, 0xdebe, 0xb7e5, 0xdeb6, 0xb7ea, 0xb7e4, 0xb7eb, 0xb7ec, + 0xb7e7, 0xb7e6, 0xe2ce, 0xbabe, 0xbabd, 0xe2d3, 0xbcfc, 0xbabf, + 0xbac1, 0xe2d4, 0xb7e3, 0xbac0, 0xe2d0, 0xe2d2, 0xe2cf, 0xe2d1, + 0xe6ab, 0xe6aa, 0xe6a7, 0xbd40, 0xea62, 0xbd41, 0xe6a6, 0xbcfe, + 0xe6a8, 0xe6a5, 0xe6a2, 0xe6a9, 0xe6a3, 0xe6a4, 0xbcfd, 0xed69, + 0xea66, 0xea65, 0xea67, 0xed66, 0xbf5a, 0xea63, 0xbf58, 0xbf5c, + 0xbf5b, 0xea64, 0xea68, 0xbf59, 0xed6d, 0xc0f5, 0xc27a, 0xc0f6, + 0xc0f3, 0xed6a, 0xed68, 0xed6b, 0xed6e, 0xc0f4, 0xed6c, 0xed67, + 0xf042, 0xf045, 0xf275, 0xf040, 0xf46f, 0xf046, 0xc3a2, 0xf044, + 0xc27b, 0xf041, 0xf043, 0xf047, 0xf276, 0xf274, 0xc3a3, 0xf273, + 0xc46e, 0xc4ed, 0xf6f1, 0xc4ec, 0xf6f3, 0xf6f0, 0xf6f2, 0xc5d0, + 0xf8b2, 0xa5ca, 0xcd6e, 0xd2bc, 0xd2bd, 0xb27d, 0xdebf, 0xbf5d, + 0xc3a4, 0xc57b, 0xf8b3, 0xa5cb, 0xcd6f, 0xa260, 0xcfd7, 0xcfd8, + 0xd2be, 0xd2bf, 0xb27e, 0xb2a1, 0xdaab, 0xdec2, 0xdec1, 0xdec0, + 0xe2d5, 0xe2d6, 0xe2d7, 0xbac2, 0xe6ad, 0xe6ac, 0xea69, 0xbf5e, + 0xbf5f, 0xed72, 0xed6f, 0xed70, 0xed71, 0xf049, 0xf048, 0xc27c, + 0xf277, 0xf5de, 0xa5cc, 0xacc6, 0xb2a2, 0xdec3, 0xa5cd, 0xd2c0, + 0xb2a3, 0xb563, 0xb564, 0xa5ce, 0xa5cf, 0xca46, 0xa86a, 0xa869, + 0xacc7, 0xcfd9, 0xdaac, 0xa5d0, 0xa5d1, 0xa5d2, 0xa5d3, 0xa86b, + 0xa86c, 0xcb6e, 0xcb6d, 0xaab6, 0xcd72, 0xcd70, 0xcd71, 0xcfda, + 0xcfdb, 0xaccb, 0xacc9, 0xacca, 0xacc8, 0xaf60, 0xaf64, 0xaf63, + 0xd2c1, 0xaf62, 0xaf61, 0xd2c2, 0xb2a6, 0xd67b, 0xd67a, 0xb2a4, + 0xb2a5, 0xb566, 0xb565, 0xdaae, 0xdaad, 0xb2a7, 0xb7ed, 0xdec5, + 0xb7ee, 0xdec4, 0xe2d8, 0xe6ae, 0xbd42, 0xea6a, 0xed73, 0xc3a6, + 0xc3a5, 0xc57c, 0xa5d4, 0xcd73, 0xb2a8, 0xe2d9, 0xbac3, 0xcb6f, + 0xcb70, 0xcd74, 0xaab8, 0xaab9, 0xaab7, 0xaccf, 0xacd0, 0xaccd, + 0xacce, 0xcfdc, 0xcfdd, 0xaccc, 0xd2c3, 0xaf68, 0xaf69, 0xb2ab, + 0xd2c9, 0xaf6e, 0xaf6c, 0xd2ca, 0xd2c5, 0xaf6b, 0xaf6a, 0xaf65, + 0xd2c8, 0xd2c7, 0xd2c4, 0xaf6d, 0xd2c6, 0xaf66, 0xaf67, 0xb2ac, + 0xd6a1, 0xd6a2, 0xb2ad, 0xd67c, 0xd67e, 0xd6a4, 0xd6a3, 0xd67d, + 0xb2a9, 0xb2aa, 0xdab6, 0xb56b, 0xb56a, 0xdab0, 0xb568, 0xdab3, + 0xb56c, 0xdab4, 0xb56d, 0xdab1, 0xb567, 0xb569, 0xdab5, 0xdab2, + 0xdaaf, 0xded2, 0xdec7, 0xb7f0, 0xb7f3, 0xb7f2, 0xb7f7, 0xb7f6, + 0xded3, 0xded1, 0xdeca, 0xdece, 0xdecd, 0xb7f4, 0xded0, 0xdecc, + 0xded4, 0xdecb, 0xb7f5, 0xb7ef, 0xb7f1, 0xdec9, 0xe2db, 0xbac7, + 0xe2df, 0xbac6, 0xe2dc, 0xbac5, 0xdec8, 0xdecf, 0xe2de, 0xbac8, + 0xe2e0, 0xe2dd, 0xe2da, 0xe6b1, 0xe6b5, 0xe6b7, 0xe6b3, 0xe6b2, + 0xe6b0, 0xbd45, 0xbd43, 0xbd48, 0xbd49, 0xe6b4, 0xbd46, 0xe6af, + 0xbd47, 0xbac4, 0xe6b6, 0xbd44, 0xea6c, 0xea6b, 0xea73, 0xea6d, + 0xea72, 0xea6f, 0xbf60, 0xea71, 0xbf61, 0xbf62, 0xea70, 0xea6e, + 0xc0f8, 0xed74, 0xc0f7, 0xed77, 0xed75, 0xed76, 0xc0f9, 0xf04d, + 0xc2a1, 0xf04e, 0xc27d, 0xf04f, 0xc27e, 0xf04c, 0xf050, 0xf04a, + 0xc3a7, 0xf278, 0xc3a8, 0xc46f, 0xf04b, 0xc470, 0xc4ee, 0xf5df, + 0xc57e, 0xf6f4, 0xc57d, 0xf7ea, 0xc5f5, 0xc5f6, 0xf9cc, 0xacd1, + 0xcfde, 0xb56e, 0xb56f, 0xa5d5, 0xa6ca, 0xca47, 0xcb71, 0xa86d, + 0xaaba, 0xacd2, 0xacd3, 0xacd4, 0xd6a6, 0xd2cb, 0xaf6f, 0xb2ae, + 0xd6a5, 0xdab8, 0xb571, 0xdab7, 0xb570, 0xded5, 0xbd4a, 0xe6bb, + 0xe6b8, 0xe6b9, 0xe6ba, 0xed78, 0xf051, 0xf471, 0xf470, 0xf6f5, + 0xa5d6, 0xcd75, 0xaf70, 0xb572, 0xded6, 0xe2e1, 0xbd4b, 0xea74, + 0xf052, 0xf472, 0xa5d7, 0xaabb, 0xacd7, 0xcfdf, 0xacd8, 0xacd6, + 0xacd5, 0xd2cc, 0xaf71, 0xaf72, 0xaf73, 0xb2b0, 0xd6a7, 0xb2af, + 0xdab9, 0xb2b1, 0xb573, 0xded7, 0xb7f8, 0xb7f9, 0xbac9, 0xbaca, + 0xbd4c, 0xbf64, 0xea75, 0xbf63, 0xed79, 0xc0fa, 0xf053, 0xf473, + 0xa5d8, 0xa86e, 0xcd78, 0xcd77, 0xaabc, 0xcd76, 0xaabd, 0xcd79, + 0xcfe5, 0xacdb, 0xacda, 0xcfe7, 0xcfe6, 0xacdf, 0xacde, 0xacd9, + 0xcfe1, 0xcfe2, 0xcfe3, 0xace0, 0xcfe0, 0xacdc, 0xcfe4, 0xacdd, + 0xd2cf, 0xd2d3, 0xd2d1, 0xd2d0, 0xd2d4, 0xd2d5, 0xd2d6, 0xd2ce, + 0xd2cd, 0xaf75, 0xaf76, 0xd2d7, 0xd2d2, 0xd6b0, 0xd2d8, 0xaf77, + 0xaf74, 0xd6aa, 0xd6a9, 0xd6ab, 0xd6ac, 0xd6ae, 0xd6ad, 0xd6b2, + 0xb2b5, 0xb2b2, 0xb2b6, 0xd6a8, 0xb2b7, 0xd6b1, 0xb2b4, 0xd6af, + 0xb2b3, 0xdabc, 0xdabe, 0xdaba, 0xdabb, 0xdabf, 0xdac1, 0xdac2, + 0xdabd, 0xdac0, 0xb574, 0xdedb, 0xdee0, 0xded8, 0xdedc, 0xdee1, + 0xdedd, 0xb7fa, 0xb843, 0xb7fd, 0xded9, 0xdeda, 0xbace, 0xb846, + 0xb7fe, 0xb844, 0xb7fc, 0xdedf, 0xb845, 0xdede, 0xb841, 0xb7fb, + 0xb842, 0xdee2, 0xe2e6, 0xe2e8, 0xb840, 0xe2e3, 0xbacc, 0xe2e9, + 0xbacd, 0xe2e7, 0xe2e2, 0xe2e5, 0xe2ea, 0xbacb, 0xe2e4, 0xbd4e, + 0xe6bf, 0xe6be, 0xbd51, 0xbd4f, 0xe6bc, 0xbd4d, 0xe6bd, 0xbd50, + 0xea7d, 0xeaa1, 0xea7e, 0xea76, 0xea7a, 0xea79, 0xea77, 0xbf66, + 0xbf67, 0xbf65, 0xea78, 0xea7b, 0xea7c, 0xbf68, 0xc140, 0xeda3, + 0xc0fc, 0xed7b, 0xc0fe, 0xc141, 0xc0fd, 0xeda2, 0xed7c, 0xc0fb, + 0xeda1, 0xed7a, 0xed7e, 0xed7d, 0xf055, 0xc2a4, 0xc2a5, 0xc2a2, + 0xc2a3, 0xf054, 0xf27b, 0xc3a9, 0xf279, 0xf27a, 0xf474, 0xf477, + 0xf475, 0xf476, 0xf5e0, 0xc4ef, 0xf7eb, 0xf8b4, 0xc5f7, 0xf8f8, + 0xf8f9, 0xc666, 0xa5d9, 0xace1, 0xdac3, 0xdee3, 0xa5da, 0xa86f, + 0xaabe, 0xcfe8, 0xcfe9, 0xaf78, 0xdac4, 0xb575, 0xb847, 0xc142, + 0xeda4, 0xf27c, 0xf478, 0xa5db, 0xcda1, 0xcd7a, 0xcd7c, 0xcd7e, + 0xcd7d, 0xcd7b, 0xaabf, 0xace2, 0xcff2, 0xcfed, 0xcfea, 0xcff1, + 0xace4, 0xace5, 0xcff0, 0xcfef, 0xcfee, 0xcfeb, 0xcfec, 0xcff3, + 0xace3, 0xaf7c, 0xafa4, 0xafa3, 0xd2e1, 0xd2db, 0xd2d9, 0xafa1, + 0xd6b9, 0xaf7a, 0xd2de, 0xd2e2, 0xd2e4, 0xd2e0, 0xd2da, 0xafa2, + 0xd2df, 0xd2dd, 0xaf79, 0xd2e5, 0xafa5, 0xd2e3, 0xaf7d, 0xd2dc, + 0xaf7e, 0xaf7b, 0xb2b9, 0xd6ba, 0xd6b3, 0xd6b5, 0xd6b7, 0xd6b8, + 0xd6b6, 0xb2ba, 0xd6bb, 0xd6b4, 0xdac8, 0xb576, 0xdad0, 0xdac5, + 0xdad1, 0xdac6, 0xdac7, 0xdacf, 0xdace, 0xdacb, 0xb2b8, 0xb577, + 0xdac9, 0xdacc, 0xb578, 0xdacd, 0xdaca, 0xdeee, 0xdef2, 0xb84e, + 0xe2f0, 0xb851, 0xdef0, 0xdeed, 0xdee8, 0xdeea, 0xdeeb, 0xdee4, + 0xb84d, 0xb84c, 0xb848, 0xdee7, 0xb84f, 0xb850, 0xdee6, 0xdee9, + 0xdef1, 0xb84a, 0xb84b, 0xdeef, 0xdee5, 0xe2f2, 0xbad0, 0xe2f4, + 0xdeec, 0xe2f6, 0xbad4, 0xe2f7, 0xe2f3, 0xbad1, 0xe2ef, 0xbad3, + 0xe2ec, 0xe2f1, 0xe2f5, 0xe2ee, 0xb849, 0xe2eb, 0xbad2, 0xe2ed, + 0xbd54, 0xe6c1, 0xbd58, 0xbd56, 0xbacf, 0xe6c8, 0xe6c9, 0xbd53, + 0xe6c7, 0xe6ca, 0xbd55, 0xbd52, 0xe6c3, 0xe6c0, 0xe6c5, 0xe6c2, + 0xbd59, 0xe6c4, 0xe6c6, 0xbd57, 0xbf6a, 0xeaa8, 0xeaa2, 0xeaa6, + 0xeaac, 0xeaad, 0xeaa9, 0xeaaa, 0xeaa7, 0xeaa4, 0xbf6c, 0xbf69, + 0xeaa3, 0xeaa5, 0xbf6b, 0xeaab, 0xc146, 0xedaa, 0xeda5, 0xc145, + 0xc143, 0xedac, 0xc144, 0xeda8, 0xeda9, 0xeda6, 0xedad, 0xf056, + 0xc147, 0xeda7, 0xedae, 0xedab, 0xf05a, 0xf057, 0xc2a6, 0xf05b, + 0xf05d, 0xf05c, 0xf058, 0xf059, 0xf2a3, 0xc3aa, 0xf27e, 0xf2a2, + 0xf27d, 0xf2a4, 0xf2a1, 0xf47a, 0xf47d, 0xf479, 0xc471, 0xf47b, + 0xf47c, 0xf47e, 0xc472, 0xc474, 0xc473, 0xf5e1, 0xf5e3, 0xf5e2, + 0xf6f6, 0xf8b5, 0xf8fa, 0xa5dc, 0xcb72, 0xaac0, 0xcda3, 0xaac1, + 0xaac2, 0xcda2, 0xcff8, 0xcff7, 0xace6, 0xace9, 0xace8, 0xace7, + 0xcff4, 0xcff6, 0xcff5, 0xd2e8, 0xafa7, 0xd2ec, 0xd2eb, 0xd2ea, + 0xd2e6, 0xafa6, 0xafaa, 0xafad, 0xafae, 0xd2e7, 0xd2e9, 0xafac, + 0xafab, 0xafa9, 0xafa8, 0xd6c2, 0xd6c0, 0xd6bc, 0xb2bb, 0xd6bd, + 0xb2bc, 0xd6be, 0xd6bf, 0xd6c1, 0xb2bd, 0xdad5, 0xdad4, 0xdad3, + 0xdad2, 0xdef6, 0xb852, 0xdef3, 0xdef5, 0xb853, 0xb854, 0xdef4, + 0xe341, 0xe2f9, 0xe2fa, 0xbad7, 0xbad5, 0xbad6, 0xe343, 0xe342, + 0xe2fe, 0xe2fd, 0xe2fc, 0xe2fb, 0xe340, 0xe2f8, 0xe6cb, 0xe6d0, + 0xe6ce, 0xe6cd, 0xe6cc, 0xe6cf, 0xeaae, 0xbf6d, 0xc148, 0xedb0, + 0xc149, 0xedaf, 0xf05f, 0xf05e, 0xc2a7, 0xf2a5, 0xc3ab, 0xf4a1, + 0xc5a1, 0xf6f7, 0xf8b7, 0xf8b6, 0xc9a8, 0xacea, 0xaceb, 0xd6c3, + 0xb856, 0xa5dd, 0xa872, 0xa871, 0xa870, 0xcda4, 0xaac4, 0xaac3, + 0xacee, 0xcffa, 0xcffd, 0xcffb, 0xacec, 0xaced, 0xcff9, 0xcffc, + 0xafb5, 0xd2f3, 0xd2f5, 0xd2f4, 0xafb2, 0xd2ef, 0xafb0, 0xafaf, + 0xafb3, 0xafb1, 0xafb4, 0xd2f2, 0xd2ed, 0xd2ee, 0xd2f1, 0xd2f0, + 0xd6c6, 0xd6c7, 0xd6c5, 0xd6c4, 0xb2be, 0xb57d, 0xdad6, 0xdad8, + 0xdada, 0xb57c, 0xb57a, 0xdad7, 0xb57b, 0xdad9, 0xb579, 0xdf41, + 0xdef7, 0xdefa, 0xdefe, 0xb85a, 0xdefc, 0xdefb, 0xdef8, 0xdef9, + 0xb858, 0xdf40, 0xb857, 0xb85c, 0xb85b, 0xb859, 0xdefd, 0xe349, + 0xe348, 0xe344, 0xbad8, 0xe347, 0xe346, 0xbad9, 0xbd5e, 0xe6d2, + 0xbd5f, 0xbd5b, 0xbd5d, 0xbd5a, 0xbd5c, 0xeaaf, 0xbf70, 0xeab1, + 0xeab0, 0xe345, 0xbf72, 0xbf71, 0xbf6e, 0xbf6f, 0xedb5, 0xedb3, + 0xc14a, 0xedb4, 0xedb6, 0xedb2, 0xedb1, 0xf060, 0xc2aa, 0xc2a8, + 0xc2a9, 0xf2a6, 0xf2a7, 0xc3ad, 0xc3ac, 0xf4a3, 0xf4a4, 0xf4a2, + 0xf6f8, 0xf6f9, 0xa5de, 0xca48, 0xa873, 0xcda5, 0xaac6, 0xaac5, + 0xcda6, 0xd040, 0xacef, 0xcffe, 0xacf0, 0xafb6, 0xd2f8, 0xd2f6, + 0xd2fc, 0xafb7, 0xd2f7, 0xd2fb, 0xd2f9, 0xd2fa, 0xd6c8, 0xd6ca, + 0xb2bf, 0xd6c9, 0xb2c0, 0xb5a2, 0xb5a1, 0xb57e, 0xdadb, 0xdf44, + 0xb85d, 0xb85e, 0xdf43, 0xdf42, 0xe34a, 0xbadb, 0xbada, 0xe34b, + 0xe34c, 0xbd61, 0xbd60, 0xeab5, 0xe6d3, 0xe6d5, 0xe6d4, 0xeab4, + 0xeab2, 0xeab6, 0xeab3, 0xbf73, 0xedb7, 0xc14b, 0xedb8, 0xedb9, + 0xc2ab, 0xc2ac, 0xc475, 0xc5d1, 0xa5df, 0xd041, 0xd2fd, 0xafb8, + 0xb3ba, 0xb3b9, 0xb5a4, 0xdadd, 0xb5a3, 0xdadc, 0xdf45, 0xbadc, + 0xe34d, 0xbadd, 0xc476, 0xf4a5, 0xa6cb, 0xaac7, 0xcda7, 0xacf2, + 0xacf1, 0xd042, 0xd043, 0xd340, 0xd342, 0xafb9, 0xd344, 0xd347, + 0xd345, 0xd346, 0xd343, 0xd2fe, 0xafba, 0xd348, 0xd341, 0xd6d3, + 0xb2c6, 0xd6dc, 0xb2c3, 0xd6d5, 0xb2c7, 0xb2c1, 0xd6d0, 0xd6dd, + 0xd6d1, 0xd6ce, 0xb2c5, 0xb2c2, 0xd6d4, 0xd6d7, 0xb2c4, 0xd6d8, + 0xb2c8, 0xd6d9, 0xd6cf, 0xd6d6, 0xd6da, 0xd6d2, 0xd6cd, 0xd6cb, + 0xd6db, 0xdadf, 0xdae4, 0xdae0, 0xdae6, 0xb5a7, 0xd6cc, 0xdae1, + 0xb5a5, 0xdade, 0xb5ac, 0xdae2, 0xb5ab, 0xdae3, 0xb5ad, 0xb5a8, + 0xb5ae, 0xb5a9, 0xb5aa, 0xb5a6, 0xdae5, 0xb861, 0xdf50, 0xdf53, + 0xdf47, 0xdf4c, 0xdf46, 0xb863, 0xdf4a, 0xdf48, 0xb862, 0xdf4f, + 0xdf4e, 0xdf4b, 0xdf4d, 0xdf49, 0xbae1, 0xdf52, 0xb85f, 0xdf51, + 0xe35d, 0xbae8, 0xe358, 0xbae7, 0xe34e, 0xe350, 0xbae0, 0xe355, + 0xe354, 0xe357, 0xbae5, 0xe352, 0xe351, 0xbae4, 0xbadf, 0xe353, + 0xbae2, 0xe359, 0xe35b, 0xe356, 0xe34f, 0xbae3, 0xbd69, 0xbade, + 0xe35c, 0xe6d9, 0xbd62, 0xe6db, 0xbd63, 0xbd65, 0xe6de, 0xe6d6, + 0xbae6, 0xe6dc, 0xe6d8, 0xb860, 0xbd68, 0xbd64, 0xbd66, 0xbd67, + 0xbf76, 0xe6dd, 0xe6d7, 0xbd6a, 0xe6da, 0xeac0, 0xeabb, 0xeac5, + 0xbf74, 0xeabd, 0xbf78, 0xeac3, 0xeaba, 0xeab7, 0xeac6, 0xc151, + 0xbf79, 0xeac2, 0xeab8, 0xbf77, 0xeabc, 0xbf7b, 0xeab9, 0xeabe, + 0xbf7a, 0xeac1, 0xeac4, 0xedcb, 0xedcc, 0xedbc, 0xedc3, 0xedc1, + 0xc14f, 0xedc8, 0xeabf, 0xedbf, 0xedc9, 0xc14e, 0xedbe, 0xedbd, + 0xedc7, 0xedc4, 0xedc6, 0xedba, 0xedca, 0xc14c, 0xedc5, 0xedce, + 0xedc2, 0xc150, 0xc14d, 0xedc0, 0xedbb, 0xedcd, 0xbf75, 0xf063, + 0xf061, 0xf067, 0xc2b0, 0xf065, 0xf064, 0xc2b2, 0xf06a, 0xc2b1, + 0xf06b, 0xf068, 0xc2ae, 0xf069, 0xf062, 0xc2af, 0xc2ad, 0xf2ab, + 0xf066, 0xf06c, 0xf2a8, 0xc3b2, 0xc3b0, 0xf2aa, 0xf2ac, 0xf2a9, + 0xc3b1, 0xc3ae, 0xc3af, 0xc3b3, 0xc478, 0xf4aa, 0xf4a9, 0xf4a7, + 0xf4a6, 0xf4a8, 0xc477, 0xc479, 0xc4f0, 0xf5e5, 0xf5e4, 0xf6fa, + 0xf6fc, 0xf6fe, 0xf6fd, 0xf6fb, 0xc5a3, 0xc5a2, 0xc5d3, 0xc5d2, + 0xc5d4, 0xf7ed, 0xf7ec, 0xf8fb, 0xf8b8, 0xf8fc, 0xc658, 0xc659, + 0xf96d, 0xc67e, 0xa6cc, 0xcda8, 0xd045, 0xd046, 0xd044, 0xacf3, + 0xd047, 0xd048, 0xd049, 0xd349, 0xd34f, 0xd34d, 0xafbb, 0xd34b, + 0xd34c, 0xd34e, 0xd34a, 0xb2c9, 0xd6de, 0xb2cb, 0xd6e0, 0xb2ca, + 0xd6df, 0xdae8, 0xb5af, 0xdaea, 0xdae7, 0xd6e1, 0xb5b0, 0xdae9, + 0xdf56, 0xb864, 0xdf54, 0xb865, 0xdf55, 0xb866, 0xbae9, 0xe361, + 0xe35e, 0xe360, 0xbaea, 0xbaeb, 0xe35f, 0xe6df, 0xe6e0, 0xbd6b, + 0xe6e2, 0xe6e1, 0xa261, 0xeaca, 0xeacb, 0xeac7, 0xeac8, 0xbf7c, + 0xbf7d, 0xeac9, 0xc157, 0xc153, 0xc158, 0xc154, 0xc156, 0xc152, + 0xc155, 0xc2b3, 0xedcf, 0xf2ae, 0xf2ad, 0xf4ab, 0xc47a, 0xc47b, + 0xf741, 0xf5e6, 0xf740, 0xf8fd, 0xf9a4, 0xa6cd, 0xa874, 0xcda9, + 0xaac8, 0xacf6, 0xd04c, 0xacf4, 0xd04a, 0xacf9, 0xacf5, 0xacfa, + 0xacf8, 0xd04b, 0xacf7, 0xafbf, 0xafbe, 0xd35a, 0xafc7, 0xd353, + 0xd359, 0xafc3, 0xd352, 0xd358, 0xd356, 0xafc2, 0xafc4, 0xd355, + 0xafbd, 0xd354, 0xafc8, 0xafc5, 0xafc9, 0xafc6, 0xd351, 0xd350, + 0xd357, 0xafc0, 0xafbc, 0xafc1, 0xd6f0, 0xd6e9, 0xb5b5, 0xd6e8, + 0xb2cf, 0xb2d6, 0xb2d3, 0xb2d9, 0xb2d8, 0xb2d4, 0xd6e2, 0xd6e5, + 0xd6e4, 0xb2d0, 0xd6e6, 0xd6ef, 0xb2d1, 0xd6e3, 0xd6ec, 0xd6ed, + 0xb2d2, 0xd6ea, 0xb2d7, 0xb2cd, 0xb2d5, 0xd6e7, 0xb2cc, 0xd6eb, + 0xd6ee, 0xdafb, 0xdaf2, 0xb5b2, 0xdaf9, 0xdaf6, 0xdaee, 0xdaf7, + 0xb5b4, 0xdaef, 0xdaeb, 0xb86c, 0xdaf4, 0xb5b1, 0xdafa, 0xb5b8, + 0xb5ba, 0xdaed, 0xb5b9, 0xdaf0, 0xb5b3, 0xdaf8, 0xdaf1, 0xdaf5, + 0xdaf3, 0xb5b6, 0xdaec, 0xb5bb, 0xb2ce, 0xb5b7, 0xb5bc, 0xb868, + 0xdf5d, 0xdf5f, 0xdf61, 0xdf65, 0xdf5b, 0xdf59, 0xb86a, 0xdf60, + 0xdf64, 0xdf5c, 0xdf58, 0xdf57, 0xdf62, 0xdf5a, 0xdf5e, 0xb86b, + 0xb869, 0xdf66, 0xb867, 0xdf63, 0xe372, 0xbaee, 0xe36a, 0xbd78, + 0xe374, 0xbaf1, 0xe378, 0xbaf7, 0xe365, 0xe375, 0xe362, 0xe377, + 0xe366, 0xbafe, 0xbafb, 0xe376, 0xe370, 0xbaed, 0xbaf5, 0xbaf4, + 0xbaf3, 0xbaf9, 0xe363, 0xbafa, 0xe371, 0xbaf6, 0xbaec, 0xe373, + 0xbaef, 0xbaf0, 0xbaf8, 0xe368, 0xe367, 0xe364, 0xe36c, 0xe369, + 0xe36d, 0xbafd, 0xe379, 0xbaf2, 0xe36e, 0xe36f, 0xe36b, 0xbafc, + 0xe6e7, 0xbd70, 0xbd79, 0xbd75, 0xe6e4, 0xbd72, 0xbd76, 0xe6f0, + 0xbd6c, 0xe6e8, 0xbd74, 0xe6eb, 0xe6e6, 0xbd73, 0xbd77, 0xe6e5, + 0xbd71, 0xe6ef, 0xbd6e, 0xe6ee, 0xe6ed, 0xbd7a, 0xe572, 0xbd6d, + 0xe6ec, 0xe6e3, 0xbd7b, 0xe6ea, 0xbd6f, 0xe6e9, 0xbfa2, 0xbfa7, + 0xbf7e, 0xead8, 0xeacf, 0xeadb, 0xead3, 0xead9, 0xbfa8, 0xbfa1, + 0xeacc, 0xead2, 0xeadc, 0xead5, 0xeada, 0xeace, 0xead6, 0xbfa3, + 0xead4, 0xbfa6, 0xbfa5, 0xead0, 0xead1, 0xeacd, 0xead7, 0xbfa4, + 0xeade, 0xeadd, 0xedda, 0xedd6, 0xc15f, 0xedd0, 0xc159, 0xc169, + 0xeddc, 0xc161, 0xc15d, 0xedd3, 0xc164, 0xc167, 0xedde, 0xc15c, + 0xedd5, 0xc165, 0xede0, 0xeddd, 0xedd1, 0xc160, 0xc15a, 0xc168, + 0xedd8, 0xc163, 0xedd2, 0xc15e, 0xeddf, 0xc162, 0xc15b, 0xedd9, + 0xc166, 0xedd7, 0xeddb, 0xf06e, 0xf074, 0xc2b9, 0xf077, 0xc2b4, + 0xc2b5, 0xf06f, 0xf076, 0xf071, 0xc2ba, 0xc2b7, 0xf06d, 0xc2b6, + 0xf073, 0xf075, 0xc2b8, 0xf072, 0xf070, 0xf2b8, 0xc3b7, 0xc3b8, + 0xc3b4, 0xc3b5, 0xf2b4, 0xf2b2, 0xf2b6, 0xc3ba, 0xf2b7, 0xf2b0, + 0xf2af, 0xf2b3, 0xf2b1, 0xc3b6, 0xf2b5, 0xf4ac, 0xc47e, 0xc47d, + 0xf4ad, 0xf4af, 0xf4ae, 0xc4a1, 0xf5eb, 0xf5e8, 0xf5e9, 0xf5e7, + 0xf5ea, 0xc4f2, 0xf5ec, 0xc4f1, 0xf742, 0xc5d5, 0xc5d7, 0xf7ee, + 0xc5d6, 0xf8b9, 0xf940, 0xf942, 0xf8fe, 0xf941, 0xc66c, 0xa6ce, + 0xacfb, 0xd26f, 0xafca, 0xb2da, 0xdafc, 0xdafd, 0xeadf, 0xc16a, + 0xede1, 0xc2bb, 0xf2ba, 0xf2b9, 0xc4a2, 0xf5ed, 0xf743, 0xc5f8, + 0xca49, 0xaac9, 0xa875, 0xd04d, 0xd360, 0xd35b, 0xd35f, 0xd35d, + 0xafcb, 0xd35e, 0xd35c, 0xd6f1, 0xdafe, 0xdb40, 0xdf69, 0xdf6a, + 0xb86e, 0xb86f, 0xdf68, 0xdf6b, 0xdf67, 0xb86d, 0xbb40, 0xb870, + 0xe37a, 0xbd7c, 0xe6f1, 0xbd7d, 0xbfa9, 0xeae2, 0xeae0, 0xeae1, + 0xede4, 0xede3, 0xede2, 0xf2bb, 0xc3b9, 0xf2bc, 0xf744, 0xc5f9, + 0xf8ba, 0xa6cf, 0xaacb, 0xaaca, 0xd04f, 0xacfc, 0xd04e, 0xd362, + 0xafcc, 0xd6f2, 0xd361, 0xb2dc, 0xd6f5, 0xd6f3, 0xd6f4, 0xb2db, + 0xdb42, 0xdb43, 0xdb41, 0xb873, 0xdf6d, 0xdf6c, 0xdf6e, 0xb872, + 0xb871, 0xe6f2, 0xe6f4, 0xbd7e, 0xe6f3, 0xeae3, 0xbfaa, 0xf079, + 0xf078, 0xc3bb, 0xf2bd, 0xc3bd, 0xc3bc, 0xf4b0, 0xf5ee, 0xc4f3, + 0xa6d0, 0xd050, 0xacfd, 0xd365, 0xafce, 0xd364, 0xd363, 0xafcd, + 0xd6fb, 0xd6fd, 0xd6f6, 0xd6f7, 0xb2dd, 0xd6f8, 0xb2de, 0xd6fc, + 0xd6f9, 0xd6fa, 0xb2df, 0xb5be, 0xb5bf, 0xdb44, 0xdf6f, 0xdf70, + 0xe37e, 0xbb43, 0xbb41, 0xbb42, 0xe37b, 0xe37c, 0xe37d, 0xe6f9, + 0xe6fa, 0xbda1, 0xe6f7, 0xe6f6, 0xe6f8, 0xe6f5, 0xbfad, 0xeae4, + 0xbfab, 0xbfac, 0xede6, 0xc16b, 0xede5, 0xefa8, 0xf07a, 0xf07b, + 0xc2bc, 0xc2bd, 0xc16c, 0xf2be, 0xf2bf, 0xf4b1, 0xc4a3, 0xa6d1, + 0xa6d2, 0xacfe, 0xaacc, 0xafcf, 0xd051, 0xb5c0, 0xa6d3, 0xad41, + 0xd052, 0xd053, 0xad40, 0xad42, 0xa6d4, 0xd054, 0xafd1, 0xd366, + 0xafd3, 0xafd0, 0xafd2, 0xd741, 0xb2e0, 0xd740, 0xd6fe, 0xdf71, + 0xe3a1, 0xbda2, 0xbfae, 0xeae6, 0xeae5, 0xede7, 0xf5ef, 0xa6d5, + 0xcb73, 0xcdaa, 0xad43, 0xd055, 0xd368, 0xafd4, 0xd367, 0xafd5, + 0xd743, 0xb2e2, 0xd742, 0xd744, 0xb2e1, 0xdb46, 0xdb47, 0xdb45, + 0xb5c1, 0xb874, 0xb875, 0xbb45, 0xe3a3, 0xe3a2, 0xbb44, 0xe6fb, + 0xe6fc, 0xeae7, 0xc170, 0xc16f, 0xc16d, 0xc16e, 0xc171, 0xf07c, + 0xc2bf, 0xc2be, 0xf2c0, 0xf4b2, 0xc5a5, 0xc5a4, 0xa6d6, 0xd1fb, + 0xb877, 0xb5c2, 0xb876, 0xbb46, 0xa6d7, 0xc9a9, 0xa6d8, 0xa6d9, + 0xcdab, 0xcb76, 0xcb77, 0xa877, 0xcb74, 0xa876, 0xa879, 0xcb75, + 0xa87b, 0xa87a, 0xcb78, 0xa878, 0xaad1, 0xaacf, 0xcdad, 0xaace, + 0xaad3, 0xaad5, 0xaad2, 0xcdb0, 0xcdac, 0xaad6, 0xaad0, 0xa87c, + 0xaad4, 0xcdaf, 0xcdae, 0xaacd, 0xd05b, 0xad47, 0xad48, 0xd05d, + 0xd057, 0xd05a, 0xd063, 0xd061, 0xad49, 0xd067, 0xad4c, 0xd064, + 0xd05c, 0xd059, 0xdb49, 0xd062, 0xad44, 0xd065, 0xd056, 0xd05f, + 0xad46, 0xad4b, 0xd060, 0xad4f, 0xad4d, 0xd058, 0xad4a, 0xd05e, + 0xad4e, 0xad45, 0xd066, 0xafda, 0xafe3, 0xafd8, 0xafd6, 0xd36a, + 0xafde, 0xafdb, 0xd36c, 0xafdd, 0xd36b, 0xd369, 0xd36e, 0xafe2, + 0xafe0, 0xdb48, 0xd36f, 0xd36d, 0xafd7, 0xafd9, 0xafdc, 0xafdf, + 0xafe1, 0xd74e, 0xb2e4, 0xd745, 0xd747, 0xd748, 0xd750, 0xd74c, + 0xd74a, 0xd74d, 0xd751, 0xb2e5, 0xb2e9, 0xd746, 0xd74f, 0xb2e7, + 0xb2e6, 0xd74b, 0xd749, 0xb2e3, 0xb2e8, 0xb5c8, 0xdb51, 0xdb4f, + 0xb5ca, 0xdb4a, 0xdfa1, 0xb5c9, 0xdb4e, 0xdb4b, 0xb5c5, 0xb5cb, + 0xdb50, 0xb5c7, 0xdb4d, 0xbb47, 0xb5c6, 0xdb4c, 0xb5cc, 0xb5c4, + 0xb5c3, 0xdf77, 0xdf75, 0xdf7b, 0xdf73, 0xdfa2, 0xdf78, 0xdf72, + 0xb87b, 0xb8a3, 0xdf7d, 0xdf76, 0xb87e, 0xb87c, 0xdf7e, 0xb879, + 0xb878, 0xdf79, 0xb87d, 0xb5cd, 0xdf7c, 0xdf74, 0xb87a, 0xb8a1, + 0xb8a2, 0xbb4c, 0xbb48, 0xbb4d, 0xe3a6, 0xe3a5, 0xe3a7, 0xbb4a, + 0xe3a4, 0xbb4b, 0xe3aa, 0xe3a9, 0xe3a8, 0xbb49, 0xe741, 0xe744, + 0xbda8, 0xe743, 0xbda7, 0xbda3, 0xbda4, 0xbda5, 0xe740, 0xe6fe, + 0xbda6, 0xe742, 0xe6fd, 0xeae9, 0xeaf3, 0xbfb1, 0xbfb0, 0xeaed, + 0xeaef, 0xeaea, 0xeaee, 0xeae8, 0xeaf1, 0xbfaf, 0xeaf0, 0xeaec, + 0xeaf2, 0xeaeb, 0xc174, 0xede8, 0xedee, 0xc178, 0xc17a, 0xc177, + 0xc176, 0xc175, 0xc173, 0xede9, 0xedec, 0xc172, 0xeded, 0xc179, + 0xedeb, 0xedea, 0xc2c0, 0xc2c1, 0xf0a1, 0xf07d, 0xf07e, 0xf2c2, + 0xf2c1, 0xc3be, 0xf4b4, 0xc4a4, 0xf4b3, 0xf5f0, 0xf745, 0xc5a6, + 0xf943, 0xf944, 0xc5d8, 0xa6da, 0xaad7, 0xdb52, 0xbb4e, 0xc17b, + 0xedef, 0xa6db, 0xafe5, 0xafe4, 0xdb53, 0xeaf4, 0xa6dc, 0xad50, + 0xdb54, 0xdb55, 0xdb56, 0xbb4f, 0xbfb2, 0xa6dd, 0xaad8, 0xd068, + 0xafe6, 0xd370, 0xb2ea, 0xdb57, 0xb8a4, 0xbb50, 0xbfb3, 0xc17c, + 0xc2c2, 0xf4b5, 0xa6de, 0xaad9, 0xafe7, 0xd752, 0xb5ce, 0xbb51, + 0xe3ab, 0xe745, 0xa6df, 0xb5cf, 0xdfa3, 0xbb52, 0xa6e0, 0xcdb1, + 0xd069, 0xad51, 0xd372, 0xafea, 0xafe8, 0xafe9, 0xafeb, 0xd371, + 0xd757, 0xd754, 0xd756, 0xb2eb, 0xb2ed, 0xb2ec, 0xd753, 0xb2ee, + 0xd755, 0xdb58, 0xdb59, 0xdb5a, 0xdfa6, 0xdfa7, 0xdfa5, 0xdfa8, + 0xb8a5, 0xdfa4, 0xbb53, 0xe74a, 0xe746, 0xe749, 0xe74b, 0xe748, + 0xe747, 0xeaf5, 0xeaf6, 0xeaf7, 0xbfb4, 0xbfb5, 0xedf1, 0xedf0, + 0xedf2, 0xf0a3, 0xf0a2, 0xf2c4, 0xf2c5, 0xf2c3, 0xc4a5, 0xf4b6, + 0xf4b7, 0xf746, 0xf7ef, 0xf8bb, 0xa6e1, 0xa87d, 0xc17d, 0xa6e2, + 0xd758, 0xdb5b, 0xc641, 0xca4a, 0xca4b, 0xca4d, 0xa6e3, 0xca4e, + 0xca4c, 0xcba2, 0xcba3, 0xcb7b, 0xcba1, 0xa8a1, 0xa8a2, 0xcb7c, + 0xcb7a, 0xcb79, 0xcb7d, 0xa87e, 0xcb7e, 0xd06a, 0xcdb6, 0xaadc, + 0xcdb5, 0xcdb7, 0xaadb, 0xcdbc, 0xaadf, 0xcdb2, 0xcdc0, 0xcdc6, + 0xaae6, 0xcdc3, 0xaae3, 0xcdb9, 0xcdbf, 0xcdc1, 0xcdb4, 0xaae2, + 0xaadd, 0xcdba, 0xaae4, 0xaae7, 0xaae1, 0xaada, 0xcdbe, 0xcdb8, + 0xcdc5, 0xaae9, 0xaae5, 0xaae0, 0xcdbd, 0xafec, 0xcdbb, 0xaade, + 0xaae8, 0xcdb3, 0xcdc2, 0xcdc4, 0xad62, 0xad5c, 0xad64, 0xad61, + 0xd071, 0xd074, 0xad5d, 0xd06b, 0xad56, 0xad60, 0xad63, 0xad65, + 0xd0a2, 0xd077, 0xad55, 0xd0a1, 0xad59, 0xad57, 0xad52, 0xd06f, + 0xd07e, 0xd073, 0xd076, 0xd0a5, 0xad66, 0xd07d, 0xad5e, 0xd078, + 0xd0a4, 0xd075, 0xd079, 0xd07c, 0xd06d, 0xd0a3, 0xd07b, 0xd06c, + 0xd070, 0xad5f, 0xad5a, 0xad53, 0xad58, 0xad54, 0xad67, 0xd06e, + 0xd3a5, 0xad5b, 0xd07a, 0xce41, 0xd3a8, 0xaffa, 0xd376, 0xd3a3, + 0xd37d, 0xd3b2, 0xd3aa, 0xd37e, 0xd3a9, 0xd378, 0xd37c, 0xd3b5, + 0xaffd, 0xd3ad, 0xd3a4, 0xafed, 0xd3b3, 0xd374, 0xd3ac, 0xaffc, + 0xaff7, 0xd373, 0xaff5, 0xaff4, 0xaff9, 0xd3ab, 0xaff1, 0xaff8, + 0xd072, 0xdb5c, 0xd3a6, 0xd37a, 0xaffb, 0xd37b, 0xd3a1, 0xaffe, + 0xd375, 0xd3af, 0xd3ae, 0xd3b6, 0xaff3, 0xaff0, 0xd3b4, 0xd3b0, + 0xd3a7, 0xd3a2, 0xaff6, 0xaff2, 0xd377, 0xafee, 0xd3b1, 0xafef, + 0xd379, 0xd75e, 0xd760, 0xd765, 0xd779, 0xb2fc, 0xb2f2, 0xd75d, + 0xb2fd, 0xb2fe, 0xd768, 0xd76f, 0xd775, 0xd762, 0xd769, 0xb340, + 0xd777, 0xd772, 0xb2fa, 0xb2f8, 0xd76e, 0xd76a, 0xd75c, 0xb2ef, + 0xd761, 0xd759, 0xb2f7, 0xb2f9, 0xd766, 0xd763, 0xb2f4, 0xd773, + 0xb2f1, 0xd764, 0xd77a, 0xd76c, 0xd76b, 0xb2f0, 0xb2fb, 0xb2f3, + 0xd75a, 0xd75f, 0xd770, 0xd776, 0xb341, 0xd75b, 0xd767, 0xd76d, + 0xb2f6, 0xd778, 0xd771, 0xd774, 0xb2f5, 0xdb6c, 0xdb60, 0xb5d7, + 0xdb7d, 0xdba7, 0xdbaa, 0xb5d5, 0xdb68, 0xdba3, 0xdb69, 0xdb77, + 0xb5e2, 0xdb73, 0xb5df, 0xdb74, 0xdb5d, 0xdba4, 0xb5e8, 0xdba1, + 0xdb75, 0xdbac, 0xdb70, 0xdfc8, 0xdbaf, 0xb5e6, 0xdb6e, 0xdb7a, + 0xb5e9, 0xb5d4, 0xdb72, 0xdbad, 0xdb6b, 0xdb64, 0xdb6f, 0xdb63, + 0xdb61, 0xb5d0, 0xdba5, 0xdb6a, 0xdba8, 0xdba9, 0xb5d8, 0xb5dd, + 0xb5d9, 0xb5e1, 0xdb7e, 0xb5da, 0xdb76, 0xdb66, 0xb5d2, 0xdb5e, + 0xdba2, 0xdbab, 0xdb65, 0xb5e0, 0xdbb0, 0xdb71, 0xdb6d, 0xb5d1, + 0xb5e5, 0xdb7c, 0xb5e7, 0xdb78, 0xb5dc, 0xb5d6, 0xb5de, 0xb5d3, + 0xb5e4, 0xdb79, 0xdb67, 0xdb7b, 0xdb62, 0xdba6, 0xdbae, 0xdb5f, + 0xdfc7, 0xdfdd, 0xb855, 0xdfcc, 0xdfca, 0xdfb5, 0xb8a9, 0xdfc5, + 0xdfd9, 0xdfc1, 0xb8b1, 0xdfd8, 0xdfbf, 0xb5e3, 0xdfcf, 0xdfc0, + 0xdfd6, 0xb8b0, 0xb8a8, 0xdfaa, 0xdfb2, 0xdfcb, 0xdfc3, 0xdfdc, + 0xdfc6, 0xb8b6, 0xdfd7, 0xb8ad, 0xdfc9, 0xdfd1, 0xdfb6, 0xdfd0, + 0xdfe1, 0xdfb1, 0xdfd2, 0xdfdf, 0xdfab, 0xb5db, 0xdfb9, 0xdfb8, + 0xb8af, 0xdfbc, 0xdfbe, 0xdfcd, 0xdfde, 0xb8b2, 0xb8b3, 0xdfb0, + 0xb8ab, 0xdfb4, 0xdfda, 0xb8b4, 0xb8ac, 0xb8ae, 0xb8b5, 0xdfe0, + 0xdfd3, 0xdfce, 0xdfbb, 0xdfba, 0xb8aa, 0xdfac, 0xb8a7, 0xdfc4, + 0xdfad, 0xdfc2, 0xdfb7, 0xdfdb, 0xb8a6, 0xdfb3, 0xdfaf, 0xdfd5, + 0xdfae, 0xbb60, 0xe3d3, 0xe3c2, 0xe3ac, 0xe3ca, 0xbb58, 0xe3bb, + 0xe3c5, 0xbb5b, 0xe3be, 0xbb59, 0xe3af, 0xe3cd, 0xe3ae, 0xe3c1, + 0xe3ad, 0xe3bf, 0xe3c8, 0xe3c6, 0xe3ba, 0xe3b5, 0xe3b3, 0xe3b4, + 0xe3c7, 0xe3d2, 0xe3bc, 0xbb5a, 0xe3b7, 0xe3cb, 0xbb5d, 0xe3b6, + 0xe3b0, 0xe3c0, 0xbb61, 0xbb55, 0xbb5e, 0xe3b8, 0xe3b2, 0xbb57, + 0xdfd4, 0xbb56, 0xe3c3, 0xbb54, 0xbb63, 0xbb5c, 0xe3c4, 0xe3b9, + 0xe3b1, 0xe3cc, 0xe3bd, 0xbb62, 0xe3d0, 0xbb5f, 0xe3cf, 0xe3c9, + 0xe3ce, 0xe3d1, 0xe773, 0xe774, 0xe767, 0xe766, 0xe762, 0xbdb4, + 0xbdac, 0xe776, 0xe775, 0xdfa9, 0xe75f, 0xe763, 0xe75d, 0xe770, + 0xe761, 0xe777, 0xe75a, 0xe758, 0xe764, 0xe76e, 0xe769, 0xbdb6, + 0xe74f, 0xe76d, 0xbdb7, 0xdfbd, 0xe75b, 0xe752, 0xe755, 0xe77b, + 0xe75c, 0xe753, 0xe751, 0xe74e, 0xbdb0, 0xe765, 0xbdaf, 0xbdb3, + 0xe760, 0xe768, 0xbda9, 0xe778, 0xe77c, 0xbdab, 0xe757, 0xe76b, + 0xe76f, 0xe754, 0xe779, 0xbdb2, 0xbdb1, 0xe74c, 0xbdb5, 0xe772, + 0xe756, 0xe76a, 0xe750, 0xe75e, 0xe759, 0xbdad, 0xbdae, 0xe76c, + 0xe77d, 0xe77a, 0xe771, 0xe74d, 0xbdaa, 0xeb49, 0xeb40, 0xeb43, + 0xbfbb, 0xeb45, 0xeaf9, 0xeb41, 0xeb47, 0xbfb8, 0xbfbc, 0xbfb6, + 0xeafb, 0xeb4c, 0xeb46, 0xeafc, 0xeb55, 0xeb4f, 0xeaf8, 0xee46, + 0xeafe, 0xbfb7, 0xeb4a, 0xeb54, 0xbfbf, 0xeb51, 0xeafd, 0xeb44, + 0xeb48, 0xeb42, 0xeb56, 0xeb53, 0xeb50, 0xbfb9, 0xbfba, 0xbfbe, + 0xeafa, 0xeb57, 0xbfbd, 0xeb4d, 0xeb4b, 0xeb4e, 0xee53, 0xee40, + 0xee45, 0xee52, 0xee44, 0xedfb, 0xee41, 0xc1a2, 0xedf4, 0xee4d, + 0xee4f, 0xedf3, 0xc1a1, 0xee51, 0xee49, 0xc1a8, 0xee50, 0xee42, + 0xc1aa, 0xedf9, 0xeb52, 0xee4a, 0xee47, 0xedf5, 0xee55, 0xc1a4, + 0xc1a5, 0xedf7, 0xee48, 0xee54, 0xee4b, 0xedfd, 0xc1a7, 0xc1a3, + 0xee4c, 0xedfe, 0xee56, 0xedf8, 0xee43, 0xee4e, 0xedfa, 0xedfc, + 0xc2cb, 0xedf6, 0xc1a9, 0xc2c4, 0xc17e, 0xc1a6, 0xc2c8, 0xf0b3, + 0xf0a9, 0xf0a4, 0xf0aa, 0xf0b4, 0xf0b8, 0xf0b7, 0xc2ca, 0xc2c9, + 0xf0ab, 0xf0b9, 0xf0ae, 0xf0a6, 0xf0a8, 0xf0a7, 0xf0ad, 0xf0b2, + 0xf0a5, 0xf0ac, 0xf0b1, 0xc2c7, 0xf0af, 0xc2c5, 0xf0b0, 0xc2c3, + 0xc2c6, 0xf2d5, 0xf0b5, 0xc3c2, 0xf2cd, 0xf2d1, 0xf2c9, 0xf2cc, + 0xf2d4, 0xc3c0, 0xf2d9, 0xf2d2, 0xf2ca, 0xf2da, 0xf2d3, 0xc3c3, + 0xc3c4, 0xf2d7, 0xf2cb, 0xc3bf, 0xc3c1, 0xf2c6, 0xf2ce, 0xf2c8, + 0xf2d8, 0xf2d6, 0xf2c7, 0xf2cf, 0xf4be, 0xc3c5, 0xf2d0, 0xc4a7, + 0xc4a9, 0xc4a6, 0xf4c3, 0xf4bb, 0xf4b9, 0xf4bd, 0xf4ba, 0xf4bf, + 0xf4c1, 0xc4aa, 0xc4ac, 0xf4c0, 0xc4ad, 0xc4ab, 0xf4c2, 0xc4a8, + 0xc4f4, 0xf5f1, 0xf5f7, 0xc4f6, 0xf4bc, 0xf5f6, 0xf5fd, 0xf5f4, + 0xf5fb, 0xf5fa, 0xf4b8, 0xf5f5, 0xf0b6, 0xf5fe, 0xf5f3, 0xf5f8, + 0xf5fc, 0xf5f2, 0xf74a, 0xc4f5, 0xf5f9, 0xf7f4, 0xf74b, 0xf749, + 0xf747, 0xf748, 0xf74c, 0xc5d9, 0xf7f2, 0xf7f0, 0xf7f5, 0xf7f3, + 0xf7f6, 0xc5da, 0xf7f1, 0xf8bc, 0xf945, 0xf946, 0xf947, 0xf9c7, + 0xf9bd, 0xca4f, 0xaaea, 0xad68, 0xd3b8, 0xd3b7, 0xb040, 0xb342, + 0xd77c, 0xd77b, 0xb5ea, 0xb8b8, 0xb8b7, 0xb8b9, 0xe3d4, 0xe77e, + 0xeb58, 0xeb5a, 0xeb59, 0xc1ab, 0xee57, 0xf0ba, 0xf9a5, 0xa6e4, + 0xcdc9, 0xcdca, 0xcdc8, 0xcdc7, 0xaaeb, 0xd0a9, 0xd0a7, 0xd0a6, + 0xad69, 0xad6b, 0xad6a, 0xd0a8, 0xd3c4, 0xd3c1, 0xd3bf, 0xb041, + 0xd3c2, 0xb046, 0xd3bc, 0xd3cb, 0xd3cd, 0xd3bd, 0xb043, 0xd3ce, + 0xd3c9, 0xd3bb, 0xd3c0, 0xd3ca, 0xd3c6, 0xd3c3, 0xb048, 0xd3cc, + 0xd3be, 0xd3c7, 0xd3b9, 0xb047, 0xb044, 0xd3c5, 0xd3c8, 0xd3ba, + 0xb045, 0xb042, 0xb34c, 0xd7a5, 0xb34b, 0xd7a8, 0xd7ab, 0xb348, + 0xb346, 0xd77e, 0xd7a9, 0xd7a7, 0xd7a4, 0xd7ac, 0xd7ad, 0xd7af, + 0xd7b0, 0xd77d, 0xb345, 0xd7a2, 0xd7a1, 0xd7ae, 0xb347, 0xd7a3, + 0xb349, 0xb344, 0xd7a6, 0xb34d, 0xb34a, 0xd7aa, 0xb5f1, 0xdbbf, + 0xdbb4, 0xb5ee, 0xdfe7, 0xdbbd, 0xdbb1, 0xb5ec, 0xdbb6, 0xb5ef, + 0xdbba, 0xdbb8, 0xb5f2, 0xb5eb, 0xdbb2, 0xdbb5, 0xb5f0, 0xdbb3, + 0xdbbe, 0xdbbc, 0xdbb7, 0xdbb9, 0xdbbb, 0xb5ed, 0xdfe8, 0xdfee, + 0xdfe4, 0xdfea, 0xb8ba, 0xdfe6, 0xb8c0, 0xb8bf, 0xb8be, 0xdfed, + 0xb8c1, 0xb8c2, 0xdfe3, 0xdff0, 0xb8c3, 0xb8bd, 0xb8bc, 0xdfec, + 0xb8c4, 0xdfe2, 0xdfe5, 0xdfef, 0xdfeb, 0xe3f4, 0xe3e9, 0xb8bb, + 0xbb6a, 0xe3dd, 0xe3f2, 0xe3de, 0xbb65, 0xe3db, 0xe3e4, 0xe3dc, + 0xbb67, 0xe3d6, 0xe3f1, 0xbb68, 0xe3ee, 0xe3ef, 0xe3d7, 0xbb6d, + 0xe3e6, 0xe3e0, 0xe3e7, 0xe3da, 0xe3f3, 0xe3eb, 0xe3e5, 0xe3d5, + 0xbb69, 0xe3ec, 0xbb6c, 0xe3f0, 0xe3ea, 0xbb66, 0xe3e8, 0xe3e2, + 0xbb64, 0xe3d9, 0xe3e1, 0xe3ed, 0xe3df, 0xe3e3, 0xbdc1, 0xdfe9, + 0xe7b2, 0xe7bb, 0xe7b1, 0xe7ad, 0xe7aa, 0xbdc2, 0xe7a8, 0xbb6b, + 0xe7a1, 0xbdc0, 0xe7a7, 0xbdbf, 0xe7ac, 0xe7a9, 0xe7b9, 0xe7b4, + 0xe7ae, 0xe7b3, 0xbdbb, 0xe7ab, 0xe7be, 0xe7a2, 0xe7a3, 0xe7ba, + 0xbdbc, 0xe7bf, 0xbdbe, 0xe7c0, 0xe7b0, 0xe3d8, 0xe7b6, 0xe7af, + 0xe7b8, 0xe7b5, 0xe7a6, 0xbdb9, 0xe7bd, 0xbdba, 0xe7a4, 0xbdbd, + 0xeb64, 0xe7b7, 0xe7bc, 0xeb61, 0xbdb8, 0xbfc0, 0xeb6b, 0xeb67, + 0xeb65, 0xeb60, 0xeb6f, 0xbfc4, 0xeb5c, 0xeb68, 0xeb69, 0xeb5f, + 0xeb5e, 0xeb6c, 0xeb62, 0xeb5d, 0xeb63, 0xeb6e, 0xeb5b, 0xeb6d, + 0xeb6a, 0xbfc2, 0xbfc1, 0xbfc3, 0xeb66, 0xf0cb, 0xee59, 0xc1b1, + 0xee5d, 0xee5a, 0xee61, 0xee67, 0xee5c, 0xee70, 0xc1ae, 0xee6a, + 0xee5f, 0xee6b, 0xee66, 0xee6d, 0xee5e, 0xc1b3, 0xc1b2, 0xee60, + 0xee6e, 0xee58, 0xee6c, 0xc1ac, 0xee64, 0xee63, 0xee68, 0xee5b, + 0xc1b0, 0xc1b4, 0xee62, 0xee69, 0xc1b5, 0xee65, 0xc1ad, 0xc1af, + 0xf0c7, 0xf0c5, 0xf0cc, 0xf0c9, 0xf0cd, 0xf0be, 0xf0c6, 0xf0d1, + 0xee6f, 0xf0c2, 0xc2cf, 0xe7a5, 0xf0bd, 0xf0ca, 0xf0c4, 0xf0c1, + 0xf0bc, 0xf0bb, 0xf0d0, 0xf0c0, 0xf0bf, 0xc2cd, 0xf0c8, 0xc2cc, + 0xc2ce, 0xf0c3, 0xf0cf, 0xf2de, 0xf2df, 0xc3c9, 0xf2dc, 0xc3c6, + 0xf2e4, 0xc3ca, 0xf2e6, 0xf2db, 0xf0ce, 0xf2e8, 0xf2dd, 0xc3c7, + 0xf2e3, 0xf2e5, 0xf2e0, 0xf2e7, 0xf2e2, 0xf2e1, 0xc3c8, 0xf4c5, + 0xf4c6, 0xf4c8, 0xc4ae, 0xc4af, 0xf4c9, 0xf4c7, 0xf4c4, 0xf642, + 0xf645, 0xf641, 0xc4fa, 0xf643, 0xc4f9, 0xc4f8, 0xc4f7, 0xf644, + 0xf751, 0xf74f, 0xf74e, 0xf640, 0xf750, 0xf646, 0xf74d, 0xf7f9, + 0xf7d7, 0xf7f7, 0xc5db, 0xf7f8, 0xf7fa, 0xf8bf, 0xc5fa, 0xf8be, + 0xf8bd, 0xc5fb, 0xc65a, 0xf96e, 0xf9a7, 0xf9a6, 0xf9a8, 0xa6e5, + 0xd0aa, 0xd3cf, 0xd3d0, 0xdbc0, 0xf647, 0xf8c0, 0xa6e6, 0xad6c, + 0xd0ab, 0xd7b1, 0xb34e, 0xdbc2, 0xdbc1, 0xb5f3, 0xb8c5, 0xe7c1, + 0xbdc3, 0xbdc4, 0xbfc5, 0xc5fc, 0xa6e7, 0xd0ac, 0xaaed, 0xd0ae, + 0xd0ad, 0xad6d, 0xd3d1, 0xd3d8, 0xb049, 0xd3d6, 0xd3d4, 0xd3db, + 0xd3d2, 0xd3d3, 0xb04a, 0xb04e, 0xd3dc, 0xb04d, 0xd3da, 0xd3d7, + 0xd3d5, 0xb04b, 0xb04c, 0xd3d9, 0xb350, 0xd7b2, 0xb355, 0xd7c2, + 0xb354, 0xd7c4, 0xd7b8, 0xb352, 0xd7c3, 0xd7b3, 0xb353, 0xd7bf, + 0xd7bb, 0xd7bd, 0xd7b7, 0xd7be, 0xb34f, 0xd7ba, 0xd7b9, 0xd7b5, + 0xd7c0, 0xd7bc, 0xd7b4, 0xd7b6, 0xb351, 0xd7c1, 0xb5f6, 0xdbcd, + 0xdbc9, 0xdbcb, 0xdbc6, 0xdbc5, 0xdbc3, 0xdbca, 0xdbcc, 0xdbc8, + 0xdbc7, 0xb5f4, 0xb5f5, 0xdbcf, 0xb8cd, 0xdff2, 0xdff8, 0xdff3, + 0xdff4, 0xdff9, 0xb8cf, 0xb8c7, 0xb8ce, 0xdff1, 0xdbc4, 0xb8ca, + 0xb8c8, 0xdff7, 0xdff6, 0xb8c9, 0xb8cb, 0xdff5, 0xb8c6, 0xb8cc, + 0xe3f6, 0xbb74, 0xe442, 0xe441, 0xe3fb, 0xbb76, 0xe440, 0xe3f7, + 0xe3f8, 0xbb6e, 0xbb70, 0xe3fd, 0xe3f5, 0xbb72, 0xbb71, 0xe3f9, + 0xe3fe, 0xe3fc, 0xbb73, 0xe3fa, 0xdbce, 0xbb6f, 0xe7c2, 0xe7c9, + 0xbdc6, 0xe7cd, 0xbdca, 0xe7c5, 0xe7c3, 0xe7cc, 0xbdc5, 0xe7cb, + 0xbdc7, 0xbdc8, 0xe7c4, 0xbdc9, 0xe7ca, 0xe7c6, 0xe7c7, 0xe7c8, + 0xbb75, 0xeb70, 0xeb7c, 0xbfca, 0xeb77, 0xeb79, 0xbfc8, 0xeb71, + 0xeb75, 0xeb78, 0xbfc6, 0xbfc9, 0xeb7b, 0xeb73, 0xeb74, 0xeb7a, + 0xeb72, 0xeb76, 0xbfc7, 0xee72, 0xee71, 0xc1b7, 0xee77, 0xc1b9, + 0xc1b6, 0xee73, 0xc1ba, 0xee74, 0xee75, 0xee78, 0xc1b8, 0xf0d6, + 0xf0d9, 0xf0d3, 0xf0d5, 0xf0d4, 0xf0d7, 0xf0d8, 0xee76, 0xf0d2, + 0xc3cd, 0xf2ec, 0xf2ef, 0xf2f1, 0xf2ea, 0xf2eb, 0xf2ee, 0xf2f0, + 0xc3ce, 0xc3cc, 0xc3cb, 0xf2ed, 0xf2e9, 0xf4ca, 0xc4b0, 0xf4cb, + 0xf649, 0xc4fb, 0xf64b, 0xc4fc, 0xf648, 0xf64a, 0xc5a8, 0xf752, + 0xc5a7, 0xf7fd, 0xf7fc, 0xf7fb, 0xf948, 0xf949, 0xf94b, 0xf94a, + 0xca50, 0xa6e8, 0xad6e, 0xd7c5, 0xb5f7, 0xdffa, 0xc2d0, 0xf2f2, + 0xa8a3, 0xb357, 0xb356, 0xdbd0, 0xb5f8, 0xdbd2, 0xdbd1, 0xdffb, + 0xb8d0, 0xe443, 0xe446, 0xe445, 0xe444, 0xe7ce, 0xe7d0, 0xe7cf, + 0xbfcc, 0xbfcb, 0xc1bb, 0xee79, 0xee7b, 0xee7a, 0xc2d1, 0xf2f4, + 0xf2f3, 0xf4cc, 0xc4b1, 0xc4fd, 0xf754, 0xf753, 0xc65b, 0xa8a4, + 0xd0af, 0xad6f, 0xd7c8, 0xd7c6, 0xd7c7, 0xdbd4, 0xdbd5, 0xe043, + 0xdbd3, 0xdffc, 0xe041, 0xe040, 0xe042, 0xb8d1, 0xdffe, 0xdffd, + 0xe044, 0xe449, 0xe447, 0xe448, 0xe7d3, 0xe7d1, 0xe7d2, 0xeb7d, + 0xee7c, 0xee7d, 0xc2d2, 0xf2f5, 0xf4cd, 0xc4b2, 0xf64c, 0xf755, + 0xc5a9, 0xf7fe, 0xf94c, 0xa8a5, 0xad71, 0xad72, 0xd0b0, 0xd0b1, + 0xad70, 0xb054, 0xb052, 0xb051, 0xb058, 0xb050, 0xb059, 0xd3dd, + 0xb056, 0xb053, 0xb057, 0xb055, 0xb04f, 0xb35f, 0xb359, 0xd7cc, + 0xb35e, 0xb360, 0xb35a, 0xb35b, 0xd7ca, 0xb358, 0xd7cb, 0xb35d, + 0xd7c9, 0xb35c, 0xb644, 0xb646, 0xdbd8, 0xb645, 0xb5f9, 0xb5fd, + 0xb8e4, 0xe049, 0xdbda, 0xb5fe, 0xdbdd, 0xdbde, 0xb643, 0xdbe0, + 0xdbe2, 0xdbe3, 0xdbd7, 0xdbd6, 0xdbe4, 0xb642, 0xdbe1, 0xdbdf, + 0xb640, 0xb5fb, 0xb647, 0xdbdb, 0xdbdc, 0xdbd9, 0xb641, 0xb5fc, + 0xb5fa, 0xe048, 0xb8df, 0xb8da, 0xb8d5, 0xb8e5, 0xb8d6, 0xb8d2, + 0xb8e1, 0xb8de, 0xb8e0, 0xb8d7, 0xb8dc, 0xb8d3, 0xb8d4, 0xe050, + 0xe04d, 0xe045, 0xe04a, 0xb8e2, 0xe051, 0xb8e3, 0xb8d9, 0xe047, + 0xe04f, 0xe04b, 0xe04e, 0xe04c, 0xb8dd, 0xe046, 0xb8d8, 0xe44c, + 0xbb78, 0xbb7b, 0xe44e, 0xbba5, 0xe44d, 0xbb7d, 0xbdcf, 0xe44f, + 0xbba4, 0xe44b, 0xbba6, 0xbb79, 0xb8db, 0xbb7c, 0xbb7a, 0xbb7e, + 0xbba2, 0xbb77, 0xbba7, 0xbba3, 0xbba1, 0xe44a, 0xbdd6, 0xbdd2, + 0xbdd9, 0xe7d6, 0xbdda, 0xe7e2, 0xe7db, 0xbdcb, 0xe7e3, 0xe7dd, + 0xbdd5, 0xe7de, 0xbdd4, 0xe7e1, 0xbdce, 0xe7df, 0xe7d5, 0xbdcd, + 0xebaa, 0xbdd3, 0xbdd0, 0xbdd8, 0xe7d4, 0xe7d8, 0xbdcc, 0xe7d7, + 0xe7d9, 0xe7da, 0xbdd7, 0xe7dc, 0xe7e0, 0xe7e4, 0xbddb, 0xbfd2, + 0xeba5, 0xebab, 0xeba8, 0xeb7e, 0xebac, 0xeba1, 0xeba7, 0xbfcd, + 0xbfd3, 0xebad, 0xbfcf, 0xbfd9, 0xbfd4, 0xebaf, 0xeba9, 0xbfd0, + 0xeba2, 0xbfda, 0xeba3, 0xeba4, 0xbfdb, 0xbfd8, 0xbdd1, 0xbfce, + 0xebb0, 0xbfdc, 0xbfd5, 0xebae, 0xbfd1, 0xbfd6, 0xbfd7, 0xc1c3, + 0xeea4, 0xeead, 0xeeaa, 0xeeac, 0xc1c0, 0xeea5, 0xeeab, 0xc1bc, + 0xeea7, 0xc1c4, 0xeea3, 0xeea8, 0xeeaf, 0xeba6, 0xeea9, 0xeea2, + 0xc1bd, 0xeea1, 0xc1be, 0xeeb0, 0xc1bf, 0xeeae, 0xc1c2, 0xee7e, + 0xc1c1, 0xeea6, 0xf0dc, 0xf0ea, 0xf0e5, 0xf0e7, 0xf0db, 0xc2d3, + 0xf0da, 0xc2d6, 0xc2d5, 0xf0e9, 0xf0e1, 0xf0de, 0xf0e4, 0xf0dd, + 0xf0df, 0xf0e8, 0xf0e6, 0xc2d4, 0xf0ed, 0xf0eb, 0xf0e2, 0xf0ec, + 0xf0e3, 0xf2f9, 0xc3cf, 0xf341, 0xf64f, 0xc3d6, 0xf0e0, 0xf2f7, + 0xc3d2, 0xf2f8, 0xf2fd, 0xc3d4, 0xc3d5, 0xf2f6, 0xf340, 0xf342, + 0xf2fa, 0xf2fc, 0xf2fe, 0xf2fb, 0xf343, 0xc3d1, 0xc3d7, 0xc3d3, + 0xc3d0, 0xf4d0, 0xc4b7, 0xf4ce, 0xf4d2, 0xf4d3, 0xc4b5, 0xf4d4, + 0xf4d1, 0xf4cf, 0xc4b8, 0xc4b4, 0xf4d5, 0xc4b6, 0xc4b3, 0xc4fe, + 0xc540, 0xf64e, 0xf64d, 0xf650, 0xf651, 0xc541, 0xf756, 0xf75b, + 0xc5aa, 0xf758, 0xf757, 0xf75a, 0xf759, 0xf843, 0xc5dc, 0xf842, + 0xf840, 0xf841, 0xc5fe, 0xc5fd, 0xf8c1, 0xf8c2, 0xc640, 0xf94d, + 0xf94e, 0xc667, 0xc66d, 0xf9a9, 0xf9c8, 0xa8a6, 0xd7cd, 0xd7ce, + 0xe052, 0xe450, 0xe7e5, 0xc1c6, 0xc1c5, 0xf0ee, 0xf344, 0xf844, + 0xa8a7, 0xd3de, 0xb05a, 0xb361, 0xe054, 0xe053, 0xbddc, 0xe7e6, + 0xbddd, 0xeeb1, 0xc2d7, 0xc676, 0xa8a8, 0xcdcb, 0xd3df, 0xb362, + 0xd7cf, 0xd7d0, 0xdbe5, 0xb648, 0xb8e6, 0xe056, 0xe055, 0xe057, + 0xe451, 0xe452, 0xbba8, 0xbfdd, 0xbdde, 0xbfde, 0xeeb5, 0xeeb2, + 0xeeb4, 0xeeb3, 0xc1c7, 0xf0ef, 0xf346, 0xf345, 0xcba4, 0xb05c, + 0xb05b, 0xd3e0, 0xd7d1, 0xdbe7, 0xdbe6, 0xb649, 0xe059, 0xe05a, + 0xe058, 0xb8e8, 0xb8e7, 0xbbaa, 0xbba9, 0xe7e7, 0xebb3, 0xebb1, + 0xebb2, 0xbfdf, 0xeeb7, 0xeeb6, 0xf0f2, 0xf0f1, 0xf0f0, 0xf347, + 0xf9aa, 0xa8a9, 0xad73, 0xad74, 0xb05d, 0xb05e, 0xd3e2, 0xd3e1, + 0xd7d2, 0xb368, 0xb366, 0xb363, 0xb367, 0xb365, 0xb364, 0xb64a, + 0xdbea, 0xb8ed, 0xb64c, 0xb651, 0xdbec, 0xb653, 0xb652, 0xb655, + 0xdbeb, 0xdbe8, 0xb64f, 0xb64b, 0xb64d, 0xdbe9, 0xb654, 0xb650, + 0xb64e, 0xb8ef, 0xb8ee, 0xb8ec, 0xb8f0, 0xb8ea, 0xb8eb, 0xb8e9, + 0xe05b, 0xe454, 0xbbac, 0xbbad, 0xbbab, 0xe453, 0xe455, 0xe7ea, + 0xe7ec, 0xbde7, 0xe7ed, 0xbde0, 0xe7e9, 0xbddf, 0xbde9, 0xbde5, + 0xbde6, 0xbde2, 0xe7e8, 0xbde1, 0xe7ee, 0xe7eb, 0xbde8, 0xbde3, + 0xbde4, 0xebb5, 0xebb7, 0xebb6, 0xebb8, 0xbfe0, 0xebb4, 0xc1cb, + 0xeeb8, 0xc1c8, 0xc1cc, 0xc1ca, 0xc1c9, 0xf0f3, 0xf0f6, 0xf0f5, + 0xf0f4, 0xc2d8, 0xf348, 0xf349, 0xc3d8, 0xf34a, 0xc3d9, 0xc4ba, + 0xc4b9, 0xf652, 0xc542, 0xf653, 0xf75c, 0xc5ab, 0xc5ac, 0xf845, + 0xc642, 0xa8aa, 0xb36a, 0xb369, 0xe05c, 0xe05d, 0xbbae, 0xebb9, + 0xbdea, 0xebba, 0xeeb9, 0xa8ab, 0xd0b2, 0xad76, 0xad75, 0xd3e3, + 0xb05f, 0xd3e4, 0xd7d5, 0xd7d4, 0xd7d3, 0xdbee, 0xb658, 0xdbed, + 0xb657, 0xdbef, 0xb656, 0xe05f, 0xe062, 0xe060, 0xe061, 0xe065, + 0xe05e, 0xe066, 0xe063, 0xe064, 0xbbb0, 0xe456, 0xbbaf, 0xe7f2, + 0xe7f0, 0xbdeb, 0xe7ef, 0xe7f1, 0xbdec, 0xebbb, 0xebbc, 0xc1cd, + 0xf34c, 0xf34e, 0xf34b, 0xf34d, 0xf4d6, 0xf654, 0xf96f, 0xa8ac, + 0xad77, 0xd3e5, 0xd3e7, 0xd3e6, 0xd7d8, 0xb36c, 0xd7d6, 0xb36b, + 0xd7d9, 0xd7da, 0xd7d7, 0xdbfb, 0xb660, 0xdbf3, 0xdbf9, 0xb65b, + 0xb65e, 0xdbf2, 0xb659, 0xdbf6, 0xe06c, 0xb65d, 0xdbf1, 0xdbf7, + 0xdbf4, 0xdbfa, 0xdbf0, 0xdbf8, 0xb65c, 0xb65f, 0xdbf5, 0xb65a, + 0xb8f2, 0xe068, 0xb8f1, 0xe06f, 0xe06e, 0xb8f8, 0xb8f9, 0xe070, + 0xb8f3, 0xe06d, 0xb8f7, 0xe072, 0xe069, 0xe06b, 0xb8f4, 0xe067, + 0xe06a, 0xe071, 0xb8f5, 0xe073, 0xb8f6, 0xbbb1, 0xe45b, 0xe461, + 0xe459, 0xe462, 0xe458, 0xe45d, 0xe463, 0xe460, 0xe45f, 0xe45e, + 0xe457, 0xe45c, 0xe45a, 0xbdf1, 0xbdee, 0xe7fb, 0xe841, 0xe843, + 0xe840, 0xe7f8, 0xe7fa, 0xe845, 0xe842, 0xe7fc, 0xe846, 0xe7f9, + 0xe844, 0xbdef, 0xbdf5, 0xbdf3, 0xe7f3, 0xbdf4, 0xbdf0, 0xe7f4, + 0xe7f6, 0xe7f5, 0xe7fd, 0xe7fe, 0xbdf2, 0xbded, 0xe7f7, 0xebc6, + 0xbfe2, 0xebbd, 0xbfe3, 0xbfe6, 0xebc2, 0xebbf, 0xbfe5, 0xebc3, + 0xebc4, 0xebbe, 0xebc7, 0xebc0, 0xebc5, 0xbfe4, 0xbfe1, 0xebc1, + 0xeebf, 0xc1d0, 0xc1ce, 0xc1d1, 0xc1cf, 0xeebe, 0xeebb, 0xeeba, + 0xeebd, 0xeebc, 0xf145, 0xc2de, 0xf0fb, 0xf0fa, 0xc2d9, 0xf141, + 0xf140, 0xf0f7, 0xf143, 0xf0fc, 0xc2dd, 0xf0f9, 0xf142, 0xf0f8, + 0xc2da, 0xc2dc, 0xf0fd, 0xc2db, 0xf0fe, 0xf144, 0xf352, 0xc3de, + 0xf34f, 0xf353, 0xc3db, 0xf351, 0xc3e0, 0xc3dd, 0xf350, 0xc3df, + 0xf354, 0xc3da, 0xc4bc, 0xc4be, 0xf4d9, 0xc4bd, 0xf4d7, 0xc3dc, + 0xf4d8, 0xc4bb, 0xc543, 0xc545, 0xf656, 0xc544, 0xf655, 0xf761, + 0xc5ad, 0xf760, 0xc5ae, 0xf75e, 0xf75d, 0xf762, 0xf763, 0xf846, + 0xf75f, 0xf8c6, 0xf8c3, 0xf8c4, 0xf8c5, 0xc65c, 0xf951, 0xf950, + 0xf94f, 0xf970, 0xf9be, 0xf9ab, 0xc66e, 0xa8ad, 0xb060, 0xb8fa, + 0xbdf6, 0xebc8, 0xc2df, 0xf355, 0xf9ac, 0xa8ae, 0xaaee, 0xad79, + 0xad78, 0xb063, 0xd3e8, 0xb061, 0xd3e9, 0xb062, 0xd7df, 0xd7db, + 0xb36d, 0xd7de, 0xd7dd, 0xd7dc, 0xb36e, 0xd7e0, 0xd7e1, 0xdc43, + 0xdc41, 0xdc45, 0xdc46, 0xdc4c, 0xdc48, 0xdc4a, 0xdc42, 0xdbfc, + 0xdc49, 0xdc4b, 0xdc44, 0xdc47, 0xdbfd, 0xb662, 0xdc40, 0xdbfe, + 0xb661, 0xb663, 0xb8fd, 0xe075, 0xe077, 0xe076, 0xe07b, 0xb8fb, + 0xe078, 0xe074, 0xe079, 0xe07a, 0xb8fc, 0xb8fe, 0xe07c, 0xe467, + 0xe466, 0xe464, 0xe465, 0xbbb3, 0xbbb5, 0xbbb2, 0xbbb4, 0xe84d, + 0xe84e, 0xe849, 0xe84a, 0xbdf8, 0xbdfd, 0xbdf7, 0xbdfe, 0xbdf9, + 0xe84b, 0xe84c, 0xe848, 0xbe40, 0xbdfb, 0xbdfa, 0xbdfc, 0xe847, + 0xebca, 0xbfe8, 0xebcc, 0xbfea, 0xebcf, 0xebcb, 0xebc9, 0xebce, + 0xbfe9, 0xebcd, 0xbfe7, 0xc1d3, 0xc1d6, 0xeec1, 0xc1d4, 0xeec0, + 0xc1d2, 0xc1d5, 0xf146, 0xf147, 0xf148, 0xc2e0, 0xf149, 0xc2e1, + 0xc3e2, 0xf358, 0xf359, 0xf357, 0xf356, 0xf35a, 0xc3e1, 0xf4dd, + 0xf4db, 0xf4dc, 0xf4de, 0xf4da, 0xf4df, 0xf658, 0xf659, 0xf657, + 0xc546, 0xf764, 0xc5af, 0xf765, 0xf848, 0xf847, 0xa8af, 0xb664, + 0xb940, 0xbbb6, 0xbfec, 0xbfeb, 0xc3e3, 0xc47c, 0xc547, 0xa8b0, + 0xb064, 0xb941, 0xf35b, 0xcba6, 0xa8b1, 0xa8b4, 0xa8b3, 0xa8b2, + 0xcba5, 0xcdcd, 0xcdcf, 0xaaef, 0xaaf1, 0xcdcc, 0xcdce, 0xaaf0, + 0xcdd1, 0xcdd0, 0xcdd2, 0xd0b6, 0xd0b4, 0xad7c, 0xd0b3, 0xada3, + 0xad7e, 0xad7b, 0xada4, 0xad7d, 0xada2, 0xada1, 0xd0b5, 0xad7a, + 0xb06a, 0xd3eb, 0xd3f1, 0xb067, 0xb06e, 0xb069, 0xd3ee, 0xd3f0, + 0xb06c, 0xd3ea, 0xd3ed, 0xb068, 0xb065, 0xd3ec, 0xb06b, 0xd3ef, + 0xb06d, 0xb066, 0xd7e3, 0xd7e6, 0xb370, 0xb37a, 0xb376, 0xd7e4, + 0xb37e, 0xb377, 0xb37c, 0xb372, 0xb36f, 0xb371, 0xb37d, 0xd7e5, + 0xb375, 0xb378, 0xb374, 0xb379, 0xd7e7, 0xb37b, 0xb373, 0xd7e2, + 0xdc4d, 0xb665, 0xdc4f, 0xb667, 0xb669, 0xdc4e, 0xb666, 0xb66a, + 0xb668, 0xb947, 0xe0a3, 0xb94f, 0xe07e, 0xb950, 0xb945, 0xe0a1, + 0xb94a, 0xe0a2, 0xb943, 0xb942, 0xb94d, 0xb94c, 0xb94b, 0xb949, + 0xb94e, 0xe07d, 0xb944, 0xb946, 0xb948, 0xbbb8, 0xbbbb, 0xbbbf, + 0xbbb9, 0xbbbe, 0xbbbc, 0xbbb7, 0xbbbd, 0xbbba, 0xe852, 0xbe43, + 0xbe41, 0xe853, 0xbe44, 0xbe42, 0xe851, 0xe850, 0xbff0, 0xe84f, + 0xbfee, 0xbfed, 0xebd0, 0xbe45, 0xbfef, 0xebd1, 0xbff2, 0xebd2, + 0xbff1, 0xc1d8, 0xeec3, 0xc1d7, 0xc1dc, 0xc1da, 0xc1db, 0xc2e3, + 0xc1d9, 0xeec2, 0xebd3, 0xc2e2, 0xc2e4, 0xc3e4, 0xc3e5, 0xf4e0, + 0xc5de, 0xc5dd, 0xa8b6, 0xca55, 0xb06f, 0xca52, 0xca53, 0xca51, + 0xca54, 0xcbaa, 0xcba7, 0xcbac, 0xcba8, 0xa8b7, 0xa8ba, 0xcba9, + 0xa8b9, 0xcbab, 0xa8b8, 0xcdd5, 0xcdd7, 0xaaf4, 0xcdd3, 0xcdd6, + 0xcdd4, 0xaaf2, 0xaaf5, 0xaaf3, 0xd0b8, 0xd0bc, 0xd0b9, 0xada7, + 0xada8, 0xd0bb, 0xd0bd, 0xd0bf, 0xada5, 0xd0be, 0xada6, 0xd7ee, + 0xd0ba, 0xd3f2, 0xd3fb, 0xd3f9, 0xd3f4, 0xd3f5, 0xd3fa, 0xd3fc, + 0xb071, 0xd3f7, 0xd3f3, 0xb070, 0xb072, 0xd3f6, 0xd3fd, 0xd3f8, + 0xb3a1, 0xd7f1, 0xd7e9, 0xd7ef, 0xd7f0, 0xb3a2, 0xd7e8, 0xd7ea, + 0xd0b7, 0xd7ec, 0xd7ed, 0xd7eb, 0xb66c, 0xdc56, 0xebd4, 0xdc57, + 0xdc54, 0xb3a3, 0xb66e, 0xdc53, 0xdc59, 0xdc58, 0xb66b, 0xdc5c, + 0xdc52, 0xdc5b, 0xdc50, 0xdc5a, 0xdc55, 0xb66d, 0xe0aa, 0xe0a5, + 0xe0ab, 0xe0a6, 0xe0a4, 0xe0a7, 0xb951, 0xe0a9, 0xe0a8, 0xb952, + 0xbbc1, 0xbbc0, 0xe46e, 0xe471, 0xe469, 0xe46d, 0xbbc2, 0xe46c, + 0xe46a, 0xe470, 0xe46b, 0xe468, 0xe46f, 0xe859, 0xbe48, 0xf14a, + 0xe856, 0xe857, 0xe855, 0xdc51, 0xbe47, 0xe85a, 0xe854, 0xbe46, + 0xbe49, 0xe858, 0xebd5, 0xbff3, 0xebd6, 0xebd7, 0xeec4, 0xc1dd, + 0xf14b, 0xf14c, 0xf14d, 0xf35d, 0xf35c, 0xf4e2, 0xf4e1, 0xf65b, + 0xf65c, 0xf65a, 0xf766, 0xc5b0, 0xa8bb, 0xadaa, 0xada9, 0xb075, + 0xb074, 0xd440, 0xd441, 0xd3fe, 0xb073, 0xd7f5, 0xd7f6, 0xd7f2, + 0xb3a4, 0xd7f3, 0xd7f4, 0xdc5f, 0xdc61, 0xdc5d, 0xdc60, 0xb66f, + 0xdc5e, 0xb670, 0xdd73, 0xb955, 0xb954, 0xb953, 0xe0ac, 0xe0ad, + 0xe473, 0xe475, 0xbbc6, 0xbbc3, 0xbbc5, 0xbbc4, 0xe474, 0xe472, + 0xe861, 0xe85e, 0xe85f, 0xbe4d, 0xe860, 0xe85b, 0xe85c, 0xbe4a, + 0xbe4b, 0xe85d, 0xbe4c, 0xebdb, 0xebdc, 0xebd9, 0xebda, 0xbff4, + 0xebd8, 0xeec8, 0xeec5, 0xeec7, 0xc1e0, 0xeecb, 0xc1df, 0xeec9, + 0xeecc, 0xeeca, 0xeec6, 0xc1de, 0xf14f, 0xf150, 0xf14e, 0xf152, + 0xc2e5, 0xc2e6, 0xf35f, 0xc3e7, 0xf151, 0xf35e, 0xc3e6, 0xf4e5, + 0xf4e6, 0xc4bf, 0xf4e4, 0xf4e3, 0xf65d, 0xc548, 0xf849, 0xf8c8, + 0xf8c7, 0xc643, 0xc65d, 0xf8c9, 0xf971, 0xc66f, 0xa8bc, 0xaaf6, + 0xb956, 0xc4c0, 0xa8bd, 0xadab, 0xb3a5, 0xb671, 0xc2e7, 0xaaf7, + 0xd0c1, 0xd0c0, 0xd442, 0xb078, 0xb076, 0xb07a, 0xd444, 0xb079, + 0xb077, 0xd443, 0xb3a8, 0xd7fc, 0xb3a7, 0xb3a9, 0xd842, 0xb3ab, + 0xd7fe, 0xd840, 0xd7f7, 0xb3aa, 0xd843, 0xd7f9, 0xd7fa, 0xd7f8, + 0xb3a6, 0xd841, 0xd7fb, 0xd7fd, 0xdc6d, 0xdc6c, 0xdc6a, 0xdc62, + 0xdc71, 0xdc65, 0xdc6f, 0xdc76, 0xdc6e, 0xb679, 0xb675, 0xdc63, + 0xdc69, 0xb677, 0xdc68, 0xb678, 0xb67a, 0xdc6b, 0xb672, 0xb673, + 0xdc77, 0xdc75, 0xdc74, 0xdc66, 0xdc72, 0xb676, 0xb674, 0xdc73, + 0xdc64, 0xdc67, 0xdc70, 0xe4ba, 0xe0b7, 0xe0b0, 0xe0c3, 0xe0cc, + 0xe0b3, 0xb961, 0xe0c0, 0xb957, 0xb959, 0xb965, 0xe0b1, 0xb95a, + 0xb95c, 0xb966, 0xb95b, 0xb964, 0xe0b9, 0xe0ae, 0xb962, 0xe0b8, + 0xb95e, 0xe0ca, 0xb963, 0xe0c8, 0xe0bc, 0xe0c6, 0xb960, 0xe0af, + 0xe0c9, 0xe0c4, 0xe0cb, 0xb958, 0xb967, 0xb95d, 0xe0b5, 0xe0bd, + 0xe0c1, 0xe0c5, 0xb95f, 0xe0b4, 0xe0b2, 0xe0be, 0xe0bb, 0xe0ba, + 0xe0bf, 0xe0c2, 0xe0c7, 0xe478, 0xbbc7, 0xe4a4, 0xe47a, 0xbbcc, + 0xbbd0, 0xe4ad, 0xe4b5, 0xe4a6, 0xbbc8, 0xe4aa, 0xe0b6, 0xbbc9, + 0xe4b1, 0xe4b6, 0xe4ae, 0xe4b0, 0xe4b9, 0xe4b2, 0xe47e, 0xe4a9, + 0xbbd1, 0xbbcd, 0xe47c, 0xe4ab, 0xbbcb, 0xe4a5, 0xbbca, 0xe4b3, + 0xe4a2, 0xe479, 0xbbce, 0xe4b8, 0xe47b, 0xe4af, 0xe4ac, 0xe4a7, + 0xe477, 0xe476, 0xe4a1, 0xe4b4, 0xbbcf, 0xe4b7, 0xe47d, 0xe4a3, + 0xbe52, 0xbe5a, 0xbe55, 0xe8a4, 0xe8a1, 0xe867, 0xbe50, 0xbe4f, + 0xbe56, 0xe865, 0xbe54, 0xe871, 0xe863, 0xe864, 0xbe4e, 0xe8a3, + 0xbe58, 0xe874, 0xe879, 0xe873, 0xebee, 0xe86f, 0xe877, 0xe875, + 0xe868, 0xe862, 0xe87d, 0xbe57, 0xe87e, 0xe878, 0xe86d, 0xe86b, + 0xe866, 0xe86e, 0xe87b, 0xe86a, 0xe87a, 0xe8a2, 0xbe53, 0xe876, + 0xe87c, 0xe872, 0xe86c, 0xbe51, 0xe4a8, 0xe870, 0xbe59, 0xe869, + 0xebf4, 0xbff7, 0xebf3, 0xebf0, 0xec44, 0xbffb, 0xec41, 0xebf8, + 0xec43, 0xebe9, 0xebf6, 0xbffd, 0xebe1, 0xebdf, 0xec42, 0xec40, + 0xebfe, 0xebed, 0xebec, 0xebe2, 0xc040, 0xebe8, 0xebf2, 0xebfd, + 0xc043, 0xec45, 0xc1e8, 0xc045, 0xbffe, 0xebe6, 0xebef, 0xebde, + 0xebe0, 0xbff5, 0xc042, 0xbffa, 0xebe7, 0xebf7, 0xebf1, 0xc041, + 0xebdd, 0xc1e3, 0xebf9, 0xebfc, 0xbffc, 0xebeb, 0xc044, 0xbff9, + 0xbff8, 0xebf5, 0xebfb, 0xbff6, 0xebe4, 0xebfa, 0xebe5, 0xebea, + 0xeed2, 0xeed7, 0xc1e5, 0xc1e7, 0xeedd, 0xc1e1, 0xeeec, 0xeee3, + 0xeed8, 0xeed9, 0xeee2, 0xc1ee, 0xeee1, 0xeed1, 0xeee0, 0xeed4, + 0xeeed, 0xc1ed, 0xc1eb, 0xeed5, 0xeee8, 0xeeda, 0xeee7, 0xeee9, + 0xeed0, 0xc1e6, 0xeeea, 0xeede, 0xc1ea, 0xeedb, 0xc1ec, 0xeee4, + 0xc1e4, 0xeed6, 0xeee5, 0xeedf, 0xebe3, 0xeee6, 0xeed3, 0xc1e9, + 0xeeeb, 0xc1e2, 0xeece, 0xf160, 0xf159, 0xc2e9, 0xf154, 0xf163, + 0xf15b, 0xeedc, 0xf165, 0xf155, 0xc2e8, 0xf15f, 0xc2ea, 0xc2f2, + 0xc2f0, 0xf161, 0xc2f1, 0xf157, 0xf158, 0xf15d, 0xf162, 0xeecd, + 0xc2eb, 0xf16a, 0xf167, 0xf16b, 0xf15e, 0xf15a, 0xf168, 0xf36a, + 0xf15c, 0xc2ee, 0xc2ed, 0xeecf, 0xc2ef, 0xf164, 0xf166, 0xc2ec, + 0xf169, 0xf153, 0xf156, 0xf373, 0xf363, 0xc3eb, 0xf371, 0xf361, + 0xc3ec, 0xf36c, 0xf368, 0xc3f1, 0xf372, 0xf362, 0xf365, 0xc3e9, + 0xf374, 0xf36d, 0xf370, 0xc3ef, 0xc3f4, 0xc3f2, 0xf369, 0xf364, + 0xc3ed, 0xc3ee, 0xf360, 0xc3ea, 0xc3e8, 0xc3f0, 0xf36f, 0xc3f3, + 0xf36b, 0xf375, 0xc3f5, 0xf367, 0xf36e, 0xf4f3, 0xf542, 0xf4f5, + 0xf4fc, 0xf366, 0xf4fa, 0xf4e9, 0xf540, 0xc4c3, 0xf4ed, 0xf4fe, + 0xf4f4, 0xc4c2, 0xf544, 0xf4f6, 0xf4fb, 0xf4fd, 0xf4e7, 0xf541, + 0xf4f2, 0xf4f7, 0xf4eb, 0xf4ef, 0xf543, 0xf4f9, 0xf4e8, 0xf4ec, + 0xf4ee, 0xf4f8, 0xc4c1, 0xf4f1, 0xf4ea, 0xf4f0, 0xf661, 0xf666, + 0xc54f, 0xf668, 0xc549, 0xf664, 0xf66a, 0xc54e, 0xc54a, 0xc54b, + 0xf660, 0xf667, 0xc54d, 0xf665, 0xc54c, 0xf65f, 0xf663, 0xf662, + 0xf65e, 0xf669, 0xc5b1, 0xf76d, 0xf770, 0xf76c, 0xf76e, 0xf76f, + 0xf769, 0xf76a, 0xf767, 0xf76b, 0xf768, 0xc5b2, 0xc5b3, 0xf84b, + 0xf84d, 0xf84c, 0xf84e, 0xc5e0, 0xf84a, 0xc5df, 0xc5e1, 0xf8cb, + 0xf8cc, 0xc644, 0xf8ca, 0xf953, 0xf952, 0xf954, 0xc65f, 0xf955, + 0xc65e, 0xf956, 0xf972, 0xf975, 0xf974, 0xc668, 0xf973, 0xc672, + 0xc670, 0xc671, 0xc677, 0xf9c0, 0xf9c1, 0xf9bf, 0xf9c9, 0xaaf8, + 0xd844, 0xdc78, 0xe8a5, 0xf376, 0xaaf9, 0xadac, 0xb07b, 0xd845, + 0xd846, 0xb3ac, 0xb67d, 0xdc7a, 0xdc79, 0xb6a3, 0xb67c, 0xdc7b, + 0xb67e, 0xb6a2, 0xb6a1, 0xb67b, 0xb968, 0xe0d0, 0xe0ce, 0xe0cf, + 0xe0cd, 0xbbd2, 0xbbd5, 0xbbd7, 0xbbd6, 0xbbd3, 0xbbd4, 0xe8a7, + 0xe8a6, 0xbe5b, 0xe8a8, 0xe8a9, 0xbe5c, 0xec4d, 0xec4b, 0xeef3, + 0xec49, 0xec4a, 0xc046, 0xec46, 0xec4e, 0xec48, 0xec4c, 0xeeef, + 0xeef1, 0xeef2, 0xc1f3, 0xeeee, 0xc1f2, 0xeef0, 0xc1ef, 0xc1f0, + 0xc1f1, 0xec47, 0xc2f5, 0xf16e, 0xf16c, 0xf16d, 0xc2f3, 0xc2f6, + 0xc2f4, 0xf377, 0xf378, 0xc3f6, 0xf545, 0xf547, 0xf546, 0xc4c4, + 0xc550, 0xf66d, 0xf66c, 0xf66b, 0xaafa, 0xc9aa, 0xca58, 0xa6e9, + 0xca56, 0xca59, 0xca57, 0xcbae, 0xa8c1, 0xa8c2, 0xcbb0, 0xa8bf, + 0xcbaf, 0xcbad, 0xa8c0, 0xa8be, 0xcdd8, 0xcddb, 0xaafd, 0xcdda, + 0xcdd9, 0xaafc, 0xaafb, 0xab40, 0xcddc, 0xaafe, 0xd0c6, 0xadae, + 0xadaf, 0xadb0, 0xd0c7, 0xd0c3, 0xadad, 0xd0c4, 0xd0c5, 0xd0c2, + 0xb0a4, 0xb0a1, 0xd445, 0xb0a2, 0xb0a5, 0xd446, 0xb07e, 0xb07c, + 0xb07d, 0xb0a3, 0xb3ad, 0xd849, 0xb3b5, 0xd848, 0xd84b, 0xb3b1, + 0xd84a, 0xb6ab, 0xb3af, 0xb3b2, 0xb3ae, 0xb3b3, 0xb3b4, 0xb3b0, + 0xd847, 0xb6a7, 0xdc7d, 0xdca3, 0xdca2, 0xb6ac, 0xb6a8, 0xb6a9, + 0xdc7c, 0xdc7e, 0xdca1, 0xb6a4, 0xb6a6, 0xb6aa, 0xb6a5, 0xe0d3, + 0xe0d1, 0xe0d2, 0xb96a, 0xb96b, 0xe0d4, 0xb969, 0xbbd8, 0xbbda, + 0xbbd9, 0xe4bb, 0xe4bc, 0xe8ab, 0xe8aa, 0xc047, 0xc048, 0xec4f, + 0xc049, 0xeef6, 0xeef4, 0xeef5, 0xc1f4, 0xf16f, 0xc3f7, 0xc1f5, + 0xab41, 0xb0a6, 0xd447, 0xd84c, 0xb3b6, 0xb6ad, 0xdca4, 0xdca6, + 0xb6af, 0xb6ae, 0xb6b0, 0xb6b1, 0xdca5, 0xb96e, 0xb96f, 0xb96d, + 0xbbdb, 0xb96c, 0xe0d5, 0xbbdc, 0xe8ac, 0xec50, 0xc04a, 0xc1f6, + 0xf170, 0xf174, 0xc2f9, 0xf171, 0xc2fa, 0xc2f8, 0xf175, 0xc2fb, + 0xf173, 0xf379, 0xc2f7, 0xc3f8, 0xf8cd, 0xab42, 0xb3b8, 0xb3b7, + 0xb6b2, 0xdca8, 0xdca7, 0xb6b3, 0xe0d9, 0xb973, 0xb970, 0xe0d8, + 0xb972, 0xe0d6, 0xb971, 0xe0d7, 0xe4bd, 0xbbdd, 0xe8af, 0xbe5d, + 0xe8ad, 0xbe5e, 0xbe5f, 0xe8ae, 0xbe60, 0xec51, 0xc04e, 0xc04b, + 0xc050, 0xec53, 0xc04c, 0xec52, 0xc04f, 0xc04d, 0xeef9, 0xeefb, + 0xc1f7, 0xeefa, 0xc1f8, 0xeef8, 0xeef7, 0xf177, 0xf176, 0xc2fc, + 0xf178, 0xf37e, 0xc3fa, 0xf37d, 0xf37a, 0xc3f9, 0xf37b, 0xf37c, + 0xf548, 0xf549, 0xc4c5, 0xc553, 0xf66e, 0xc551, 0xc552, 0xf66f, + 0xc5b4, 0xc5b5, 0xf771, 0xc645, 0xf8cf, 0xc647, 0xf8ce, 0xf8d0, + 0xc646, 0xf957, 0xf9ad, 0xab43, 0xb974, 0xe4be, 0xe8b0, 0xc051, + 0xc052, 0xab44, 0xbe61, 0xc3fb, 0xadb1, 0xc053, 0xc5e2, 0xadb2, + 0xd84d, 0xdca9, 0xdcab, 0xdcaa, 0xe0dd, 0xe0da, 0xb975, 0xb976, + 0xe0db, 0xe0dc, 0xe4c0, 0xe4c5, 0xbbde, 0xe4bf, 0xe4c1, 0xe4c8, + 0xe4c3, 0xe4c7, 0xe4c4, 0xe4c2, 0xe4c6, 0xbbdf, 0xe8b3, 0xe8b1, + 0xbe63, 0xbe62, 0xe8b2, 0xbe64, 0xec56, 0xec55, 0xc054, 0xec54, + 0xeefc, 0xeefe, 0xef41, 0xef40, 0xc1f9, 0xeefd, 0xf1a1, 0xc2fd, + 0xf17d, 0xf1a2, 0xc2fe, 0xf17b, 0xf17e, 0xf17c, 0xf179, 0xc340, + 0xf17a, 0xf3a1, 0xf3a3, 0xf3a2, 0xf54a, 0xf54b, 0xf670, 0xc5b7, + 0xc5b6, 0xf84f, 0xf850, 0xc648, 0xf8d1, 0xc669, 0xadb3, 0xb6b4, + 0xe4ca, 0xe4c9, 0xe8b5, 0xe8b4, 0xc1fa, 0xef43, 0xef42, 0xf1a5, + 0xf1a3, 0xf1a6, 0xf1a4, 0xc3fc, 0xf3a4, 0xf3a5, 0xf3a6, 0xf671, + 0xf772, 0xf8d2, 0xadb4, 0xec57, 0xef44, 0xadb5, 0xbbe0, 0xec58, + 0xc341, 0xf1a7, 0xc3fd, 0xf54c, 0xf54d, 0xc554, 0xf851, 0xadb6, + 0xb3bb, 0xb3bc, 0xd84e, 0xb6b5, 0xb6b6, 0xdcac, 0xb6b7, 0xb97a, + 0xb97c, 0xe0df, 0xe0e0, 0xe0de, 0xb977, 0xb978, 0xb97b, 0xb979, + 0xe4cb, 0xbbe1, 0xbbe2, 0xe8bc, 0xbe67, 0xe8b7, 0xe8b6, 0xe8bb, + 0xbe65, 0xc05b, 0xe8b8, 0xe8bd, 0xe8ba, 0xe8b9, 0xbe66, 0xc059, + 0xec5a, 0xc055, 0xec5b, 0xec59, 0xc058, 0xc056, 0xc05a, 0xc057, + 0xef45, 0xef4a, 0xef46, 0xef49, 0xc1fb, 0xedd4, 0xef48, 0xef47, + 0xc344, 0xc342, 0xc345, 0xc343, 0xf1a8, 0xf1a9, 0xf1aa, 0xc346, + 0xf3aa, 0xc440, 0xf3a8, 0xc441, 0xf3a7, 0xf3a9, 0xc3fe, 0xf551, + 0xf54e, 0xf54f, 0xf550, 0xf672, 0xc556, 0xc555, 0xf774, 0xf773, + 0xc5b8, 0xc5e3, 0xc649, 0xc660, 0xf958, 0xf9ae, 0xf9af, 0xadb7, + 0xdcad, 0xe0e1, 0xe4cc, 0xe4cd, 0xbbe3, 0xbbe4, 0xe8be, 0xbe68, + 0xc1fc, 0xf1ab, 0xc347, 0xf3ad, 0xc442, 0xf3ac, 0xf3ae, 0xf3ab, + 0xf675, 0xf552, 0xf553, 0xc4c6, 0xf674, 0xf673, 0xf775, 0xf9b0, + 0xadb8, 0xadb9, 0xb0a7, 0xd448, 0xd84f, 0xb6b8, 0xb6bb, 0xb6b9, + 0xdcae, 0xb6bd, 0xb6ba, 0xb6bc, 0xb97e, 0xe0e2, 0xe0e3, 0xe8c0, + 0xb97d, 0xb9a1, 0xb9a2, 0xe4cf, 0xe4ce, 0xbbe5, 0xbbe6, 0xe4d0, + 0xe8bf, 0xbbe8, 0xbe69, 0xbbe7, 0xc05c, 0xe8c1, 0xbe6b, 0xbe6a, + 0xe8c2, 0xe8c5, 0xe8c3, 0xe8c4, 0xbe6c, 0xc061, 0xc05f, 0xc05e, + 0xec5d, 0xc060, 0xec5c, 0xef4b, 0xec5e, 0xc05d, 0xec5f, 0xef4e, + 0xef4c, 0xef4d, 0xef52, 0xc34b, 0xef51, 0xef54, 0xef53, 0xef50, + 0xef4f, 0xc1fd, 0xf1ae, 0xf1ad, 0xc34a, 0xc348, 0xc349, 0xf1ac, + 0xf3b1, 0xc443, 0xf3b0, 0xf3af, 0xc444, 0xf558, 0xf557, 0xf555, + 0xf554, 0xc4c8, 0xc4c7, 0xf559, 0xf776, 0xc5b9, 0xf677, 0xc557, + 0xf676, 0xf556, 0xf777, 0xc5e4, 0xc661, 0xf959, 0xf9b1, 0xadba, + 0xd850, 0xef55, 0xadbb, 0xe4d2, 0xe4d1, 0xec60, 0xef57, 0xef56, + 0xc34c, 0xf3b2, 0xf3b3, 0xc4c9, 0xf9b2, 0xb0a8, 0xb6bf, 0xb6be, + 0xe0e4, 0xe0e6, 0xb9a4, 0xe0e5, 0xb9a3, 0xb9a5, 0xe0e7, 0xe4d4, + 0xe4d6, 0xe4d5, 0xe4d8, 0xbbe9, 0xe4d7, 0xe4d3, 0xe4d9, 0xe8cc, + 0xe8cf, 0xe8d1, 0xe8c7, 0xe8cb, 0xe8c8, 0xbe6e, 0xbe71, 0xbe73, + 0xe8c9, 0xe8ca, 0xbe72, 0xe8cd, 0xe8d0, 0xe8ce, 0xbe74, 0xbe70, + 0xe8c6, 0xbe6d, 0xbe6f, 0xc063, 0xec66, 0xec64, 0xec63, 0xec69, + 0xec68, 0xec67, 0xec62, 0xc062, 0xec61, 0xec65, 0xc064, 0xef5a, + 0xef5e, 0xef5b, 0xef5d, 0xef5c, 0xef59, 0xef5f, 0xef62, 0xef60, + 0xef61, 0xc240, 0xc1fe, 0xef58, 0xef63, 0xf1b3, 0xf1b6, 0xf1b8, + 0xf1b7, 0xf1b1, 0xf1b5, 0xf1b0, 0xf1b2, 0xc34d, 0xf1af, 0xf1b4, + 0xf3c0, 0xf3b5, 0xc445, 0xc446, 0xf3b4, 0xf3b9, 0xf3bf, 0xf3b7, + 0xf3be, 0xf3bb, 0xf3ba, 0xf3bd, 0xf3b8, 0xf3b6, 0xf3bc, 0xf560, + 0xf55e, 0xc4ca, 0xf55d, 0xf563, 0xf561, 0xc4cb, 0xf55c, 0xf55a, + 0xf55b, 0xc4cd, 0xf55f, 0xc4cc, 0xf562, 0xf678, 0xf67e, 0xf679, + 0xc55b, 0xf6a1, 0xc55a, 0xf67d, 0xf67c, 0xc559, 0xf67b, 0xc558, + 0xf67a, 0xf77d, 0xf7a1, 0xf77e, 0xf77b, 0xc5bb, 0xf778, 0xf77c, + 0xf7a3, 0xf7a2, 0xf779, 0xf77a, 0xc5ba, 0xf852, 0xc5e7, 0xf853, + 0xc5e5, 0xc5e6, 0xf8d3, 0xc64a, 0xf976, 0xc66a, 0xf9b3, 0xc66b, + 0xf9b4, 0xf9b5, 0xf9c3, 0xf9c2, 0xc67a, 0xf9cd, 0xb0a9, 0xe0e9, + 0xe0e8, 0xbbea, 0xbbeb, 0xe4da, 0xe8d2, 0xec6c, 0xbe75, 0xc065, + 0xec6a, 0xec6d, 0xc066, 0xef64, 0xec6b, 0xf1b9, 0xc34e, 0xf3c1, + 0xf566, 0xf564, 0xf565, 0xf6a2, 0xc55c, 0xf7a4, 0xc5ea, 0xc5bc, + 0xc5e8, 0xc5e9, 0xf8d4, 0xc662, 0xb0aa, 0xf1ba, 0xd449, 0xb9a6, + 0xe4db, 0xbbec, 0xe4dc, 0xe8d4, 0xe8d3, 0xc068, 0xbe76, 0xbe77, + 0xe8d7, 0xe8d6, 0xe8d5, 0xec6e, 0xec71, 0xec70, 0xec6f, 0xc067, + 0xef68, 0xef66, 0xef65, 0xef67, 0xc34f, 0xf1bc, 0xf1bd, 0xc350, + 0xf1bb, 0xf3c3, 0xf3c2, 0xf3c5, 0xc447, 0xf3c4, 0xf567, 0xf569, + 0xf568, 0xf6a3, 0xf6a6, 0xf6a4, 0xf6a5, 0xf7a5, 0xc5bd, 0xf854, + 0xf855, 0xf856, 0xc64b, 0xc663, 0xf9b6, 0xb0ab, 0xbe78, 0xc069, + 0xf1be, 0xf7a6, 0xf9c4, 0xd44a, 0xc67b, 0xb0ac, 0xec72, 0xf1bf, + 0xf3c6, 0xf6a7, 0xf7a7, 0xb0ad, 0xe4dd, 0xe4de, 0xbbed, 0xbbee, + 0xe8d9, 0xbe7a, 0xbe79, 0xe8d8, 0xef69, 0xf1c0, 0xf1c2, 0xf1c1, + 0xc353, 0xc352, 0xc351, 0xc55e, 0xf6a8, 0xc55d, 0xf7a9, 0xf7a8, + 0xc64c, 0xf8d5, 0xb3bd, 0xe0ea, 0xe4e1, 0xe4df, 0xe4e0, 0xe8e2, + 0xe8dd, 0xe8da, 0xe8e1, 0xe8e3, 0xbe7c, 0xe8e0, 0xe8dc, 0xe8db, + 0xe8df, 0xe8de, 0xbe7b, 0xec7d, 0xec78, 0xec76, 0xeca1, 0xec77, + 0xec73, 0xec79, 0xec74, 0xef72, 0xec75, 0xeca2, 0xec7c, 0xc06a, + 0xec7b, 0xec7a, 0xec7e, 0xef6a, 0xef6d, 0xef6c, 0xef74, 0xef6f, + 0xef73, 0xef71, 0xef70, 0xef6e, 0xef6b, 0xc243, 0xc242, 0xc244, + 0xc241, 0xef75, 0xf1c8, 0xf1cb, 0xf1c9, 0xf1cd, 0xf1ce, 0xf1c6, + 0xc358, 0xf1c7, 0xf1c5, 0xf1cc, 0xf1c4, 0xf1c3, 0xc357, 0xc355, + 0xc354, 0xf1ca, 0xf3cf, 0xf3d5, 0xc44a, 0xf3d0, 0xf3d3, 0xf3d7, + 0xc44b, 0xf3d2, 0xf3ca, 0xf3c9, 0xf3d6, 0xf3cd, 0xf3cb, 0xf3d4, + 0xf3cc, 0xc449, 0xc448, 0xf3c7, 0xf3c8, 0xf3d1, 0xf3ce, 0xf56c, + 0xf56f, 0xc356, 0xf56d, 0xf573, 0xf571, 0xf56b, 0xf576, 0xf56a, + 0xc4cf, 0xf572, 0xf56e, 0xc4ce, 0xf575, 0xf574, 0xf6ab, 0xf6aa, + 0xf6b1, 0xf6ad, 0xf6b0, 0xc560, 0xf6ae, 0xf6af, 0xf6a9, 0xf6ac, + 0xc55f, 0xc5bf, 0xf7b4, 0xf7af, 0xf7b3, 0xf7b6, 0xf7b2, 0xf7ae, + 0xc5c1, 0xf7b1, 0xf7b5, 0xc5c0, 0xf7ac, 0xf570, 0xf7b0, 0xf7ad, + 0xf7aa, 0xf7ab, 0xc5be, 0xf85a, 0xf85c, 0xf85f, 0xf85b, 0xf860, + 0xf859, 0xf857, 0xc5eb, 0xf85d, 0xc5ed, 0xc5ec, 0xf858, 0xf85e, + 0xf8da, 0xc64d, 0xf8db, 0xf8d9, 0xf8d6, 0xf8d8, 0xf8d7, 0xf95a, + 0xf95c, 0xf95b, 0xf979, 0xf978, 0xf977, 0xf97a, 0xc673, 0xc674, + 0xf9ca, 0xf9ce, 0xb3be, 0xdcaf, 0xe0ed, 0xb9a7, 0xe0eb, 0xe0ec, + 0xe4e2, 0xe4e3, 0xbbf1, 0xbbef, 0xe4e4, 0xbbf0, 0xe8e8, 0xe8eb, + 0xe8e5, 0xe8ec, 0xe8e4, 0xe8e6, 0xe8e7, 0xe8ea, 0xbea1, 0xe8ef, + 0xe8ee, 0xbe7d, 0xe8e9, 0xe8ed, 0xbe7e, 0xecac, 0xc06f, 0xeca7, + 0xc06b, 0xeca4, 0xecaa, 0xecad, 0xc070, 0xeca9, 0xeca6, 0xecae, + 0xeca5, 0xecab, 0xc06c, 0xeca3, 0xc06d, 0xc06e, 0xeca8, 0xefa9, + 0xef7a, 0xef7b, 0xef7e, 0xef7c, 0xef76, 0xef79, 0xefa5, 0xef7d, + 0xc245, 0xefa7, 0xefa4, 0xc246, 0xefa6, 0xef77, 0xefa2, 0xefa3, + 0xefa1, 0xf1d2, 0xf1d4, 0xf1d7, 0xf1d1, 0xc359, 0xf1d9, 0xf1d0, + 0xf1da, 0xf1d6, 0xf1d8, 0xf1dc, 0xf1d5, 0xf1dd, 0xf1d3, 0xf1cf, + 0xc35a, 0xf1db, 0xc35b, 0xc44d, 0xef78, 0xf3f1, 0xf3e8, 0xc44f, + 0xf3e4, 0xc450, 0xf3ed, 0xf3e7, 0xf3dd, 0xc44e, 0xf3ea, 0xf3e5, + 0xf3e6, 0xf3d8, 0xf3df, 0xf3ee, 0xf3eb, 0xf3e3, 0xf3ef, 0xf3de, + 0xf3d9, 0xf3ec, 0xf3db, 0xf3e9, 0xf3e0, 0xf3f0, 0xf3dc, 0xc44c, + 0xf3da, 0xf3e1, 0xf3e2, 0xf57d, 0xf57b, 0xf5a2, 0xf5ae, 0xf5a5, + 0xf57c, 0xf578, 0xf5a7, 0xf57e, 0xf5a3, 0xf57a, 0xf5aa, 0xf577, + 0xf5a1, 0xf5a6, 0xf5a8, 0xf5ab, 0xf579, 0xf5af, 0xf5b0, 0xf5a9, + 0xf5ad, 0xf5a4, 0xf6c1, 0xf6c4, 0xc561, 0xf6c3, 0xf6c8, 0xf6c6, + 0xc562, 0xf6bd, 0xf6b3, 0xf6b2, 0xc564, 0xf6bf, 0xf6c0, 0xf6bc, + 0xf6b4, 0xf6b9, 0xf5ac, 0xf6b5, 0xc563, 0xf6bb, 0xf6ba, 0xf6b6, + 0xf6c2, 0xf6b7, 0xf7bb, 0xf6c5, 0xf6c7, 0xf6be, 0xf6b8, 0xf7bc, + 0xf7be, 0xf7b8, 0xc5c2, 0xf7c5, 0xf7c3, 0xc5c3, 0xf7c2, 0xf7c1, + 0xf7ba, 0xf7b7, 0xf7bd, 0xf7c6, 0xf7b9, 0xf7bf, 0xf869, 0xf86e, + 0xf864, 0xf867, 0xc5ee, 0xf86b, 0xf872, 0xf7c0, 0xf865, 0xf86f, + 0xf873, 0xf86a, 0xf863, 0xf86d, 0xf86c, 0xf871, 0xf870, 0xf7c4, + 0xf868, 0xf862, 0xf866, 0xc64e, 0xc64f, 0xf861, 0xf8e6, 0xf8dd, + 0xf8e5, 0xf8e2, 0xf8e3, 0xf8dc, 0xf8df, 0xf8e7, 0xf8e1, 0xf8e0, + 0xf8de, 0xf8e4, 0xf95d, 0xf95e, 0xf960, 0xf95f, 0xf962, 0xf961, + 0xf97c, 0xf97b, 0xf9b7, 0xf9b8, 0xf9c5, 0xc678, 0xc67c, 0xf9cf, + 0xc67d, 0xb3bf, 0xc4d0, 0xf6c9, 0xc650, 0xc651, 0xb3c0, 0xe0ee, + 0xb9a8, 0xe8f0, 0xecb0, 0xecb1, 0xecaf, 0xefab, 0xefaa, 0xc247, + 0xf1df, 0xefac, 0xf1de, 0xf3f3, 0xc451, 0xc453, 0xf3f2, 0xc452, + 0xf5b1, 0xf5b3, 0xf5b2, 0xf6ca, 0xc565, 0xc5ef, 0xf8e8, 0xf963, + 0xf9d2, 0xb3c1, 0xe4e5, 0xbea2, 0xecb3, 0xecb2, 0xefad, 0xc454, + 0xc4d1, 0xf7c7, 0xf9cb, 0xb3c2, 0xbbf2, 0xbea3, 0xf3f4, 0xf874, + 0xb6c0, 0xefae, 0xc664, 0xb6c1, 0xbea4, 0xc248, 0xf875, 0xb6c2, + 0xe8f1, 0xc072, 0xecb4, 0xecb5, 0xc071, 0xefaf, 0xc24c, 0xc24a, + 0xc24b, 0xc249, 0xf1e0, 0xc35c, 0xf5b5, 0xf5b4, 0xf5b7, 0xf5b6, + 0xc4d2, 0xf6cb, 0xf6cd, 0xf6cc, 0xc566, 0xf7c8, 0xf876, 0xf877, + 0xc5f0, 0xf964, 0xf97d, 0xc675, 0xdcb0, 0xecb6, 0xefb0, 0xf3f5, + 0xe0ef, 0xefb1, 0xf1e2, 0xf1e1, 0xf878, 0xc652, 0xf965, 0xf97e, + 0xb9a9, 0xe8f2, 0xe8f3, 0xecb7, 0xb9aa, 0xc35d, 0xf1e3, 0xf6cf, + 0xc567, 0xf6d0, 0xf6ce, 0xf879, 0xf8e9, 0xb9ab, 0xefb4, 0xefb3, + 0xefb2, 0xf1e4, 0xf1e8, 0xf1e7, 0xf1e6, 0xf1e5, 0xc35e, 0xf3f6, + 0xf5b9, 0xc4d3, 0xf5b8, 0xf6d1, 0xf7cb, 0xf7ca, 0xc5c4, 0xf7c9, + 0xf87c, 0xf87b, 0xf87a, 0xbbf3, 0xecb8, 0xc24d, 0xf3f7, 0xf3f8, + 0xf7cc, 0xf87d, 0xf8ea, 0xf966, 0xf9b9, 0xf9d4, 0xbbf4, 0xc24e, + 0xf1e9, 0xf3f9, 0xf6d2, 0xf87e, 0xbea6, 0xefb5, 0xf1ea, 0xf3fa, + 0xf3fb, 0xf3fc, 0xf5be, 0xf5ba, 0xc568, 0xf5bd, 0xf5bc, 0xc4d4, + 0xf5bb, 0xc4d6, 0xc4d5, 0xf6d4, 0xf6d3, 0xc569, 0xc56a, 0xc5c6, + 0xf7cd, 0xc5c5, 0xf8a3, 0xf8a4, 0xf8a2, 0xf8a1, 0xc654, 0xf8eb, + 0xf8ec, 0xf8ed, 0xc653, 0xf967, 0xf96a, 0xf969, 0xf968, 0xf9d3, + 0xc073, 0xc365, 0xf5bf, 0xf6d5, 0xc5c7, 0xf7ce, 0xf9d5, 0xc074, + 0xefb6, 0xf7cf, 0xf9a1, 0xc94a, 0xddfc, 0xa14a, 0xa157, 0xa159, + 0xa15b, 0xa15f, 0xa160, 0xa163, 0xa164, 0xa167, 0xa168, 0xa16b, + 0xa16c, 0xa16f, 0xa170, 0xa173, 0xa174, 0xa177, 0xa178, 0xa17b, + 0xa17c, 0xa1c6, 0xa1c7, 0xa1ca, 0xa1cb, 0xa1c8, 0xa1c9, 0xa15c, + 0xa14d, 0xa14f, 0xa151, 0xa152, 0xa153, 0xa154, 0xa17d, 0xa17e, + 0xa1a1, 0xa1a2, 0xa1a3, 0xa1a4, 0xa1cc, 0xa1cd, 0xa1ce, 0xa1de, + 0xa1df, 0xa1e0, 0xa1e1, 0xa1e2, 0xa24c, 0xa24d, 0xa24e, 0xa149, + 0xa1ad, 0xa243, 0xa248, 0xa1ae, 0xa15d, 0xa15e, 0xa1af, 0xa1cf, + 0xa141, 0xa1d0, 0xa144, 0xa241, 0xa2af, 0xa2b0, 0xa2b1, 0xa2b2, + 0xa2b3, 0xa2b4, 0xa2b5, 0xa2b6, 0xa2b7, 0xa2b8, 0xa147, 0xa146, + 0xa1d5, 0xa1d7, 0xa1d6, 0xa148, 0xa249, 0xa2cf, 0xa2d0, 0xa2d1, + 0xa2d2, 0xa2d3, 0xa2d4, 0xa2d5, 0xa2d6, 0xa2d7, 0xa2d8, 0xa2d9, + 0xa2da, 0xa2db, 0xa2dc, 0xa2dd, 0xa2de, 0xa2df, 0xa2e0, 0xa2e1, + 0xa2e2, 0xa2e3, 0xa2e4, 0xa2e5, 0xa2e6, 0xa2e7, 0xa2e8, 0xa242, + 0xa1c4, 0xa2e9, 0xa2ea, 0xa2eb, 0xa2ec, 0xa2ed, 0xa2ee, 0xa2ef, + 0xa2f0, 0xa2f1, 0xa2f2, 0xa2f3, 0xa2f4, 0xa2f5, 0xa2f6, 0xa2f7, + 0xa2f8, 0xa2f9, 0xa2fa, 0xa2fb, 0xa2fc, 0xa2fd, 0xa2fe, 0xa340, + 0xa341, 0xa342, 0xa343, 0xa161, 0xa155, 0xa162, 0xa14e, +}; + +static const Summary16 big5_uni2indx_page00[16] = { + /* 0x0000 */ + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x00ac }, { 4, 0x0083 }, + { 7, 0x0000 }, { 7, 0x0080 }, { 8, 0x0000 }, { 8, 0x0080 }, +}; +static const Summary16 big5_uni2indx_page02[38] = { + /* 0x0200 */ + { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 }, + { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 }, + { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 }, + { 9, 0x0e80 }, { 13, 0x0200 }, { 14, 0x0000 }, { 14, 0x0000 }, + /* 0x0300 */ + { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, + { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, + { 14, 0x0000 }, { 14, 0xfffe }, { 29, 0x03fb }, { 38, 0xfffe }, + { 53, 0x03fb }, { 62, 0x0000 }, { 62, 0x0000 }, { 62, 0x0000 }, + /* 0x0400 */ + { 62, 0x0002 }, { 63, 0x1ff0 }, { 72, 0xfff8 }, { 85, 0xffff }, + { 101, 0xffff }, { 117, 0x0002 }, +}; +static const Summary16 big5_uni2indx_page20[44] = { + /* 0x2000 */ + { 118, 0x0000 }, { 118, 0x3318 }, { 124, 0x0064 }, { 127, 0x4824 }, + { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 }, + { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 }, + { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 }, + /* 0x2100 */ + { 131, 0x0228 }, { 134, 0x0000 }, { 134, 0x0000 }, { 134, 0x0000 }, + { 134, 0x0000 }, { 134, 0x0000 }, { 134, 0x03ff }, { 144, 0x0000 }, + { 144, 0x0000 }, { 144, 0x03cf }, { 152, 0x0000 }, { 152, 0x0000 }, + { 152, 0x0000 }, { 152, 0x0000 }, { 152, 0x0000 }, { 152, 0x0000 }, + /* 0x2200 */ + { 152, 0x0000 }, { 152, 0xc400 }, { 155, 0x4e29 }, { 162, 0x1030 }, + { 165, 0x0000 }, { 165, 0x0004 }, { 166, 0x00c3 }, { 170, 0x0000 }, + { 170, 0x0000 }, { 170, 0x0000 }, { 170, 0x0020 }, { 171, 0x8000 }, +}; +static const Summary16 big5_uni2indx_page24[37] = { + /* 0x2400 */ + { 172, 0x0000 }, { 172, 0x0000 }, { 172, 0x0000 }, { 172, 0x0000 }, + { 172, 0x0000 }, { 172, 0x0000 }, { 172, 0x03ff }, { 182, 0x3ff0 }, + { 192, 0x0000 }, { 192, 0x0000 }, { 192, 0x0000 }, { 192, 0x0000 }, + { 192, 0x0000 }, { 192, 0x0000 }, { 192, 0x0000 }, { 192, 0x0000 }, + /* 0x2500 */ + { 192, 0x1005 }, { 195, 0x1111 }, { 199, 0x1010 }, { 201, 0x1010 }, + { 203, 0x0000 }, { 203, 0x4001 }, { 205, 0xe402 }, { 210, 0x000f }, + { 214, 0xfffe }, { 229, 0x0030 }, { 231, 0x0003 }, { 233, 0x300c }, + { 237, 0xc8c0 }, { 242, 0x0000 }, { 242, 0x003c }, { 246, 0x0000 }, + /* 0x2600 */ + { 246, 0x0260 }, { 249, 0x0000 }, { 249, 0x0000 }, { 249, 0x0000 }, + { 249, 0x0007 }, +}; +static const Summary16 big5_uni2indx_page30[62] = { + /* 0x3000 */ + { 252, 0xff2f }, { 265, 0x6037 }, { 272, 0x03fe }, { 281, 0x0000 }, + { 281, 0xfffe }, { 296, 0xffff }, { 312, 0xffff }, { 328, 0xffff }, + { 344, 0xffff }, { 360, 0x600f }, { 366, 0xfffe }, { 381, 0xffff }, + { 397, 0xffff }, { 413, 0xffff }, { 429, 0xffff }, { 445, 0x407f }, + /* 0x3100 */ + { 453, 0xffe0 }, { 464, 0xffff }, { 480, 0x03ff }, { 490, 0x0000 }, + { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 }, + { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 }, + { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 }, + /* 0x3200 */ + { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 }, + { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 }, + { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0008 }, { 491, 0x0000 }, + { 491, 0x0000 }, { 491, 0x0000 }, { 491, 0x0000 }, { 491, 0x0000 }, + /* 0x3300 */ + { 491, 0x0000 }, { 491, 0x0000 }, { 491, 0x0000 }, { 491, 0x0000 }, + { 491, 0x0000 }, { 491, 0x0000 }, { 491, 0x0000 }, { 491, 0x0000 }, + { 491, 0xc000 }, { 493, 0x7000 }, { 496, 0x0002 }, { 497, 0x0000 }, + { 497, 0x4010 }, { 499, 0x0026 }, +}; +static const Summary16 big5_uni2indx_page4e[1307] = { + /* 0x4e00 */ + { 502, 0xff8b }, { 514, 0xc373 }, { 523, 0x6840 }, { 527, 0x1b0f }, + { 535, 0xe9ac }, { 544, 0xf34c }, { 553, 0x0200 }, { 554, 0xc008 }, + { 557, 0x795c }, { 566, 0xca3e }, { 575, 0x7976 }, { 585, 0x0648 }, + { 589, 0x2fdf }, { 601, 0xf7f0 }, { 612, 0x033a }, { 618, 0xa8ff }, + /* 0x4f00 */ + { 629, 0xef37 }, { 641, 0x233f }, { 650, 0xb004 }, { 654, 0xfd59 }, + { 665, 0xf3ca }, { 675, 0xffff }, { 691, 0xde9f }, { 703, 0xfff9 }, + { 717, 0xabff }, { 730, 0x7df7 }, { 743, 0xc000 }, { 745, 0x8eec }, + { 754, 0xeebf }, { 767, 0xffdb }, { 781, 0xd003 }, { 786, 0x45fa }, + /* 0x5000 */ + { 795, 0xfae1 }, { 805, 0xdffe }, { 819, 0xbfef }, { 833, 0x10ab }, + { 839, 0xffeb }, { 853, 0xfcaa }, { 863, 0xef3f }, { 876, 0x24fd }, + { 885, 0x78ad }, { 894, 0x7f76 }, { 906, 0xf00c }, { 912, 0xedff }, + { 926, 0xcff6 }, { 938, 0x2cfa }, { 947, 0xf7f9 }, { 960, 0xeb6b }, + /* 0x5100 */ + { 971, 0x1ffd }, { 983, 0x95bf }, { 994, 0x6677 }, { 1004, 0xbfbf }, + { 1018, 0x3bfb }, { 1030, 0xfeb4 }, { 1041, 0x7bae }, { 1052, 0x11e2 }, + { 1058, 0xa681 }, { 1064, 0x41be }, { 1072, 0x1435 }, { 1078, 0x72c3 }, + { 1086, 0x7d70 }, { 1095, 0x7191 }, { 1102, 0x0003 }, { 1104, 0x276b }, + /* 0x5200 */ + { 1113, 0x57cb }, { 1123, 0x70cf }, { 1132, 0x4732 }, { 1139, 0x0def }, + { 1149, 0x7eda }, { 1160, 0xfc74 }, { 1170, 0xfe06 }, { 1179, 0xbdb4 }, + { 1189, 0x3f9f }, { 1201, 0x8bca }, { 1209, 0x7e49 }, { 1218, 0x5800 }, + { 1221, 0x228f }, { 1228, 0xebec }, { 1239, 0x8a5c }, { 1246, 0xddbb }, + /* 0x5300 */ + { 1258, 0xef60 }, { 1267, 0xb6e7 }, { 1278, 0xa40f }, { 1285, 0xf293 }, + { 1294, 0x37bb }, { 1305, 0x549e }, { 1313, 0xd04b }, { 1320, 0x9baf }, + { 1331, 0xc414 }, { 1336, 0xf7d4 }, { 1347, 0x30b0 }, { 1352, 0x0a14 }, + { 1356, 0x2f08 }, { 1362, 0x88d0 }, { 1367, 0xff7e }, { 1381, 0x192f }, + /* 0x5400 */ + { 1389, 0xffda }, { 1402, 0xfb07 }, { 1412, 0x7ff1 }, { 1424, 0x7beb }, + { 1436, 0xc5ef }, { 1447, 0x0010 }, { 1448, 0x99ff }, { 1460, 0xfdff }, + { 1475, 0x79d7 }, { 1486, 0x0567 }, { 1493, 0xffe7 }, { 1507, 0xfdcb }, + { 1519, 0xc3ff }, { 1531, 0x4040 }, { 1533, 0x6ff7 }, { 1546, 0xbd8e }, + /* 0x5500 */ + { 1556, 0xdffa }, { 1569, 0x0497 }, { 1575, 0xf4c0 }, { 1582, 0x5bff }, + { 1595, 0xed7b }, { 1607, 0xd0e7 }, { 1616, 0x047e }, { 1623, 0xf8e0 }, + { 1631, 0xff9f }, { 1645, 0xb73e }, { 1656, 0x7dfe }, { 1669, 0x882e }, + { 1675, 0xfffd }, { 1690, 0xbe7f }, { 1703, 0x83fe }, { 1713, 0xf6c4 }, + /* 0x5600 */ + { 1722, 0xf357 }, { 1733, 0xb8fd }, { 1744, 0xd680 }, { 1750, 0xef7d }, + { 1763, 0x5767 }, { 1773, 0x4788 }, { 1779, 0xff7d }, { 1793, 0xc3df }, + { 1804, 0xf0ff }, { 1816, 0x37a9 }, { 1825, 0x7de0 }, { 1834, 0x70fc }, + { 1843, 0x3f6f }, { 1855, 0xec9a }, { 1864, 0x4cb3 }, { 1872, 0x8681 }, + /* 0x5700 */ + { 1877, 0x3f9e }, { 1888, 0xdd5c }, { 1898, 0xf70d }, { 1908, 0x4819 }, + { 1913, 0xfea3 }, { 1924, 0x0007 }, { 1927, 0xaf56 }, { 1937, 0x38ff }, + { 1948, 0x980d }, { 1954, 0xefb8 }, { 1965, 0x403d }, { 1971, 0xb760 }, + { 1979, 0xd8ce }, { 1988, 0x9035 }, { 1994, 0x72bf }, { 2005, 0x3fff }, + /* 0x5800 */ + { 2019, 0x7ff7 }, { 2033, 0x7a11 }, { 2040, 0xf7bb }, { 2053, 0xabff }, + { 2066, 0xff00 }, { 2074, 0x6fbe }, { 2086, 0xa93c }, { 2094, 0xfe72 }, + { 2105, 0xcfef }, { 2118, 0xf11b }, { 2127, 0xdb6b }, { 2138, 0xf40a }, + { 2145, 0xc3e6 }, { 2154, 0xef7e }, { 2167, 0x9b9c }, { 2176, 0xf610 }, + /* 0x5900 */ + { 2183, 0xf048 }, { 2189, 0x16f4 }, { 2197, 0xfeb5 }, { 2209, 0x5182 }, + { 2214, 0xc7b1 }, { 2223, 0x15bb }, { 2232, 0x6e87 }, { 2241, 0xfbdf }, + { 2255, 0xe43f }, { 2265, 0x63cd }, { 2274, 0xc1ff }, { 2285, 0x7e7e }, + { 2297, 0xfdeb }, { 2310, 0x7d5f }, { 2322, 0x777b }, { 2334, 0xfcfe }, + /* 0x5a00 */ + { 2347, 0x960b }, { 2354, 0xdbea }, { 2365, 0x6229 }, { 2371, 0x53e8 }, + { 2379, 0x37df }, { 2391, 0xfdef }, { 2405, 0x36f5 }, { 2415, 0xbd81 }, + { 2423, 0xdc18 }, { 2430, 0xfcbd }, { 2442, 0xd2e4 }, { 2450, 0xffff }, + { 2466, 0x3fd7 }, { 2478, 0xffe0 }, { 2489, 0x7f6f }, { 2502, 0xabf8 }, + /* 0x5b00 */ + { 2512, 0x9bae }, { 2522, 0x6ed9 }, { 2532, 0xf5fb }, { 2545, 0xf115 }, + { 2553, 0x79a9 }, { 2562, 0xbdfb }, { 2575, 0x5a3c }, { 2583, 0xadaf }, + { 2594, 0xdbba }, { 2605, 0x1fac }, { 2614, 0x71fc }, { 2624, 0x8379 }, + { 2632, 0x7cf7 }, { 2644, 0xc35f }, { 2654, 0xdfff }, { 2669, 0x0567 }, + /* 0x5c00 */ + { 2676, 0xff9a }, { 2688, 0x8467 }, { 2695, 0x1534 }, { 2701, 0xdf8b }, + { 2712, 0xf9f3 }, { 2724, 0x3373 }, { 2733, 0xf7bd }, { 2746, 0x5e1a }, + { 2754, 0xbf40 }, { 2762, 0xa03f }, { 2770, 0xffff }, { 2786, 0x01eb }, + { 2793, 0xdfc0 }, { 2802, 0xcfdd }, { 2814, 0x7500 }, { 2819, 0xabd3 }, + /* 0x5d00 */ + { 2829, 0xf8c3 }, { 2838, 0xeed6 }, { 2849, 0x43fd }, { 2859, 0xb7ff }, + { 2873, 0x5eaf }, { 2884, 0x4227 }, { 2890, 0x9bac }, { 2899, 0xf686 }, + { 2908, 0x27d7 }, { 2918, 0xf6bc }, { 2929, 0xf787 }, { 2940, 0x35b7 }, + { 2950, 0xaacd }, { 2959, 0xe176 }, { 2968, 0x49e7 }, { 2977, 0xe29f }, + /* 0x5e00 */ + { 2987, 0x545c }, { 2994, 0xaff2 }, { 3005, 0x2b3f }, { 3015, 0x61d8 }, + { 3022, 0xfc3b }, { 3033, 0xbbb8 }, { 3043, 0xffcf }, { 3057, 0x7b7d }, + { 3069, 0xbf95 }, { 3080, 0x1ce0 }, { 3086, 0x7dfd }, { 3099, 0x43ff }, + { 3110, 0x5ff6 }, { 3122, 0xfffe }, { 3137, 0xd3ef }, { 3149, 0xc4ce }, + /* 0x5f00 */ + { 3157, 0x8db6 }, { 3166, 0xadbc }, { 3176, 0x63dc }, { 3185, 0x11eb }, + { 3193, 0xdf59 }, { 3204, 0x23d0 }, { 3210, 0xbeb4 }, { 3220, 0xf3db }, + { 3232, 0x1fe7 }, { 3243, 0xdbc7 }, { 3254, 0xff63 }, { 3266, 0xfae4 }, + { 3276, 0xb22b }, { 3284, 0x63f7 }, { 3295, 0xed3b }, { 3306, 0xadba }, + /* 0x6000 */ + { 3316, 0xfe01 }, { 3324, 0x7eff }, { 3338, 0xfff7 }, { 3353, 0x02bc }, + { 3359, 0x32ff }, { 3370, 0xef39 }, { 3381, 0xfffc }, { 3395, 0x8005 }, + { 3398, 0x77fb }, { 3411, 0xbcf5 }, { 3422, 0x010d }, { 3426, 0xfff7 }, + { 3441, 0xfffb }, { 3456, 0xbf3a }, { 3467, 0x0057 }, { 3472, 0xdfff }, + /* 0x6100 */ + { 3487, 0xef7b }, { 3500, 0xbd7d }, { 3512, 0xdb88 }, { 3520, 0xc8d4 }, + { 3527, 0xfff3 }, { 3541, 0xed7c }, { 3552, 0x5dee }, { 3563, 0x56ff }, + { 3575, 0x7e0d }, { 3584, 0xac5f }, { 3594, 0xff96 }, { 3606, 0xd57f }, + { 3618, 0x3fee }, { 3630, 0xc140 }, { 3634, 0x6ff9 }, { 3646, 0xffe7 }, + /* 0x6200 */ + { 3660, 0x779b }, { 3671, 0x8e77 }, { 3681, 0x6ebf }, { 3693, 0xe45d }, + { 3702, 0x6fcf }, { 3714, 0x5f1f }, { 3725, 0xe07f }, { 3735, 0xfedf }, + { 3749, 0xd7db }, { 3761, 0x01fe }, { 3769, 0xff00 }, { 3777, 0xfb7b }, + { 3790, 0xffd4 }, { 3802, 0x1fdf }, { 3814, 0xf800 }, { 3819, 0xffff }, + /* 0x6300 */ + { 3835, 0xfb8f }, { 3847, 0x007b }, { 3853, 0xbf00 }, { 3860, 0x7f5c }, + { 3871, 0xffff }, { 3887, 0x07f3 }, { 3896, 0xeba0 }, { 3904, 0x3de7 }, + { 3915, 0xf7bf }, { 3929, 0xfbd7 }, { 3942, 0xffbf }, { 3957, 0x6003 }, + { 3961, 0xfffd }, { 3976, 0xbfed }, { 3989, 0xefbb }, { 4002, 0x027f }, + /* 0x6400 */ + { 4010, 0xfe40 }, { 4018, 0xddfd }, { 4031, 0xfdff }, { 4046, 0xe2f9 }, + { 4056, 0x680b }, { 4062, 0xfb1f }, { 4074, 0xfbe3 }, { 4086, 0xaffd }, + { 4099, 0x9fa4 }, { 4108, 0xf7ed }, { 4121, 0x7a7d }, { 4132, 0xf80f }, + { 4141, 0xeebe }, { 4153, 0x0fd5 }, { 4162, 0xbb5d }, { 4173, 0xfd9f }, + /* 0x6500 */ + { 4186, 0xf2db }, { 4197, 0x3bf9 }, { 4208, 0xfe7f }, { 4222, 0xebcc }, + { 4232, 0x876a }, { 4240, 0x73fa }, { 4251, 0x95fc }, { 4261, 0x9ffc }, + { 4273, 0x109f }, { 4280, 0xfaf7 }, { 4293, 0xddb7 }, { 4305, 0xbbcd }, + { 4316, 0xf87e }, { 4327, 0xeccd }, { 4337, 0xf366 }, { 4347, 0x3c3f }, + /* 0x6600 */ + { 4357, 0xfffd }, { 4372, 0xb03f }, { 4381, 0xe9f7 }, { 4393, 0x067e }, + { 4401, 0x96ae }, { 4410, 0xfe06 }, { 4419, 0xd576 }, { 4429, 0x5fd7 }, + { 4441, 0x3fd1 }, { 4451, 0xa3f3 }, { 4461, 0xcf07 }, { 4470, 0x6fb7 }, + { 4482, 0x9fd1 }, { 4492, 0x7f44 }, { 4501, 0x7b59 }, { 4511, 0xd3dd }, + /* 0x6700 */ + { 4522, 0xaf3b }, { 4533, 0xa9bd }, { 4543, 0x7dcf }, { 4555, 0xff3a }, + { 4567, 0xfbe0 }, { 4577, 0xf6eb }, { 4589, 0xb401 }, { 4594, 0xffff }, + { 4610, 0x7afa }, { 4621, 0xb7bf }, { 4634, 0xc000 }, { 4636, 0x0ffd }, + { 4647, 0xff7f }, { 4662, 0xff1f }, { 4675, 0xfefc }, { 4688, 0x95ff }, + /* 0x6800 */ + { 4700, 0x0000 }, { 4700, 0xb5dc }, { 4710, 0xef63 }, { 4721, 0x3f3e }, + { 4732, 0xfb7f }, { 4746, 0x001b }, { 4750, 0xe800 }, { 4754, 0xfbf6 }, + { 4767, 0x9eef }, { 4779, 0xb8df }, { 4790, 0xff9f }, { 4804, 0x003f }, + { 4810, 0x7bd0 }, { 4819, 0xf5ff }, { 4833, 0xdfdb }, { 4846, 0x3fff }, + /* 0x6900 */ + { 4860, 0xfdf0 }, { 4871, 0x00bf }, { 4878, 0x8420 }, { 4881, 0xbbbd }, + { 4893, 0xdf37 }, { 4905, 0xffde }, { 4919, 0xff6d }, { 4932, 0x0ff3 }, + { 4942, 0x604c }, { 4947, 0x5efb }, { 4959, 0xfffb }, { 4974, 0xfafb }, + { 4987, 0xfe5e }, { 4999, 0x0219 }, { 5003, 0x79f4 }, { 5013, 0xf9de }, + /* 0x6a00 */ + { 5025, 0xa7f7 }, { 5037, 0xebfa }, { 5049, 0x01eb }, { 5056, 0xff34 }, + { 5067, 0xebd3 }, { 5078, 0xef73 }, { 5090, 0xafd7 }, { 5102, 0xc040 }, + { 5105, 0x72bb }, { 5115, 0xdcff }, { 5128, 0xf17f }, { 5140, 0x2fd8 }, + { 5149, 0xb8ec }, { 5158, 0xfe0b }, { 5168, 0xdda3 }, { 5178, 0x1f0b }, + /* 0x6b00 */ + { 5186, 0x8f1d }, { 5195, 0x47cf }, { 5205, 0xb12b }, { 5213, 0xffde }, + { 5227, 0x7fee }, { 5240, 0xda73 }, { 5250, 0x24ff }, { 5260, 0xcbc4 }, + { 5268, 0xf75d }, { 5280, 0xcbf2 }, { 5290, 0xecfd }, { 5302, 0xb4ed }, + { 5312, 0xbff9 }, { 5325, 0x4ddd }, { 5335, 0x99dd }, { 5345, 0xfb8d }, + /* 0x6c00 */ + { 5356, 0xbb7f }, { 5369, 0xaf7b }, { 5381, 0xddfb }, { 5394, 0xc959 }, + { 5402, 0xfc4f }, { 5413, 0xfab5 }, { 5424, 0xafe3 }, { 5435, 0x6d5f }, + { 5446, 0xffff }, { 5462, 0x3f7d }, { 5474, 0x7800 }, { 5478, 0xffdb }, + { 5492, 0xb6ff }, { 5505, 0x7eff }, { 5519, 0xfbaf }, { 5532, 0x022f }, + /* 0x6d00 */ + { 5538, 0xff9b }, { 5551, 0xefc7 }, { 5563, 0xffa5 }, { 5575, 0xffff }, + { 5591, 0x0007 }, { 5594, 0xc700 }, { 5599, 0xf7ff }, { 5614, 0xfff1 }, + { 5627, 0x7ffd }, { 5641, 0x01bf }, { 5649, 0xdc00 }, { 5654, 0xfdbc }, + { 5666, 0xbff5 }, { 5679, 0xffff }, { 5695, 0xff7f }, { 5710, 0x3eff }, + /* 0x6e00 */ + { 5723, 0x0029 }, { 5726, 0xbe00 }, { 5732, 0xf9ff }, { 5746, 0xff7f }, + { 5761, 0x6efb }, { 5773, 0xfd7e }, { 5786, 0xcbff }, { 5799, 0x039e }, + { 5806, 0xe300 }, { 5811, 0xfbdd }, { 5824, 0xccff }, { 5836, 0xf6df }, + { 5849, 0xffff }, { 5865, 0x117f }, { 5874, 0xf800 }, { 5879, 0xfbf6 }, + /* 0x6f00 */ + { 5892, 0xe7ef }, { 5905, 0xd73c }, { 5915, 0xfeef }, { 5929, 0xdfef }, + { 5943, 0xc00b }, { 5948, 0xedbf }, { 5961, 0xfedf }, { 5975, 0xfdcd }, + { 5987, 0x7bf5 }, { 5999, 0x40fd }, { 6007, 0xffff }, { 6023, 0xb75f }, + { 6035, 0xffdf }, { 6050, 0xf930 }, { 6058, 0xfbdf }, { 6072, 0xdc97 }, + /* 0x7000 */ + { 6082, 0xfef3 }, { 6095, 0xbff2 }, { 6107, 0x8fdf }, { 6119, 0xdfbf }, + { 6133, 0x177f }, { 6144, 0xede6 }, { 6155, 0x0f7f }, { 6166, 0x3553 }, + { 6174, 0x447c }, { 6181, 0x877e }, { 6191, 0xfa12 }, { 6199, 0x45bb }, + { 6208, 0xede0 }, { 6217, 0x779e }, { 6228, 0x8017 }, { 6233, 0xbfd9 }, + /* 0x7100 */ + { 6245, 0x7e55 }, { 6255, 0xde89 }, { 6264, 0xc16f }, { 6273, 0x0447 }, + { 6278, 0x7ade }, { 6289, 0xf75d }, { 6301, 0x57ff }, { 6314, 0x2905 }, + { 6319, 0x86f7 }, { 6329, 0xfe95 }, { 6340, 0x97b3 }, { 6350, 0xf32f }, + { 6361, 0xcfff }, { 6375, 0x9f75 }, { 6386, 0x71f7 }, { 6397, 0xfb17 }, + /* 0x7200 */ + { 6408, 0x34ee }, { 6417, 0xee19 }, { 6426, 0x37cc }, { 6435, 0xef61 }, + { 6445, 0x9fd6 }, { 6456, 0xef4c }, { 6466, 0xd68f }, { 6476, 0xfbdd }, + { 6489, 0x7b73 }, { 6500, 0x6def }, { 6512, 0xd7fe }, { 6525, 0xa431 }, + { 6531, 0x5e7f }, { 6543, 0x97d7 }, { 6554, 0x0f5b }, { 6563, 0xffd8 }, + /* 0x7300 */ + { 6575, 0x9d83 }, { 6583, 0x7bce }, { 6594, 0x22ec }, { 6601, 0xdcff }, + { 6614, 0x763d }, { 6624, 0xef87 }, { 6635, 0xdfe7 }, { 6648, 0xfded }, + { 6661, 0x4fff }, { 6674, 0xa0fc }, { 6682, 0x3b77 }, { 6693, 0xdbfc }, + { 6705, 0x3ded }, { 6716, 0x7fdc }, { 6728, 0x6fa9 }, { 6738, 0xf570 }, + /* 0x7400 */ + { 6747, 0x3ffb }, { 6760, 0x2c40 }, { 6764, 0xff7f }, { 6779, 0x847f }, + { 6788, 0xec57 }, { 6798, 0xdeb7 }, { 6810, 0xe69c }, { 6819, 0xf22f }, + { 6829, 0x0feb }, { 6839, 0xd5b5 }, { 6849, 0xafeb }, { 6861, 0xede7 }, + { 6873, 0x8c2f }, { 6881, 0xfff0 }, { 6893, 0x537f }, { 6904, 0xe8f0 }, + /* 0x7500 */ + { 6912, 0xb99d }, { 6922, 0xb5ff }, { 6935, 0xff66 }, { 6947, 0xe78f }, + { 6958, 0xd981 }, { 6965, 0xbe10 }, { 6972, 0x9c7c }, { 6981, 0xe3c1 }, + { 6989, 0x9cd1 }, { 6997, 0x2733 }, { 7005, 0x0cbc }, { 7012, 0xff6d }, + { 7025, 0xfcb7 }, { 7037, 0xefb7 }, { 7050, 0xa0df }, { 7059, 0xffff }, + /* 0x7600 */ + { 7075, 0xbf0b }, { 7085, 0xfe7b }, { 7098, 0xa3ff }, { 7110, 0x353f }, + { 7120, 0x13cc }, { 7127, 0x97cd }, { 7137, 0x7637 }, { 7147, 0xfb27 }, + { 7158, 0xcfd6 }, { 7169, 0x7e6c }, { 7179, 0xec50 }, { 7186, 0xed31 }, + { 7195, 0x677c }, { 7205, 0xfc1c }, { 7214, 0xf6fa }, { 7226, 0x5fbf }, + /* 0x7700 */ + { 7239, 0x0fba }, { 7248, 0xae2f }, { 7258, 0xa3ad }, { 7267, 0x7ffe }, + { 7281, 0xfcf0 }, { 7291, 0xde74 }, { 7301, 0xffef }, { 7316, 0xf200 }, + { 7321, 0xfbbf }, { 7335, 0xfea2 }, { 7345, 0x3daf }, { 7356, 0xbcff }, + { 7369, 0xf694 }, { 7378, 0x5fb9 }, { 7389, 0xf3ad }, { 7400, 0x3f8f }, + /* 0x7800 */ + { 7411, 0xf26c }, { 7420, 0xa01f }, { 7427, 0xffef }, { 7442, 0x01bf }, + { 7450, 0x7728 }, { 7458, 0x7005 }, { 7463, 0xff35 }, { 7475, 0xda03 }, + { 7482, 0xd2f9 }, { 7492, 0xc7fa }, { 7503, 0x3fbf }, { 7516, 0x5c1d }, + { 7524, 0xff3a }, { 7536, 0xec33 }, { 7545, 0xb7af }, { 7557, 0xfe9c }, + /* 0x7900 */ + { 7568, 0x5236 }, { 7575, 0x7a9f }, { 7586, 0xbffa }, { 7599, 0xe722 }, + { 7607, 0x9ff7 }, { 7620, 0xfcff }, { 7634, 0x2fbb }, { 7645, 0xb61d }, + { 7654, 0xed06 }, { 7662, 0x1dfd }, { 7673, 0x7dd7 }, { 7685, 0xefdf }, + { 7699, 0xeb23 }, { 7708, 0xf166 }, { 7717, 0x7ed9 }, { 7728, 0x0dc0 }, + /* 0x7a00 */ + { 7733, 0x3d3d }, { 7743, 0xdfbf }, { 7757, 0xc945 }, { 7764, 0xba83 }, + { 7772, 0x7dd1 }, { 7782, 0x9dd0 }, { 7790, 0x7b87 }, { 7800, 0xcf73 }, + { 7811, 0x9ff3 }, { 7823, 0xc3f5 }, { 7833, 0xdf0d }, { 7843, 0xc5fe }, + { 7854, 0x0cb3 }, { 7861, 0x8302 }, { 7865, 0xe879 }, { 7874, 0xaec0 }, + /* 0x7b00 */ + { 7881, 0xc773 }, { 7891, 0x6f0f }, { 7901, 0xfd7d }, { 7914, 0x093f }, + { 7922, 0xfff1 }, { 7935, 0x0157 }, { 7941, 0x62fb }, { 7951, 0x01ff }, + { 7960, 0xfdb4 }, { 7971, 0x3bf3 }, { 7982, 0xb013 }, { 7988, 0x43b2 }, + { 7995, 0x5ed3 }, { 8005, 0xff30 }, { 8015, 0x0fff }, { 8027, 0xeb9f }, + /* 0x7c00 */ + { 8039, 0xfeef }, { 8053, 0xf203 }, { 8060, 0x3fef }, { 8073, 0xfb89 }, + { 8083, 0x37a9 }, { 8092, 0x9e99 }, { 8101, 0xdef9 }, { 8113, 0xa72c }, + { 8121, 0x3733 }, { 8130, 0xc1f6 }, { 8139, 0x812e }, { 8145, 0xfe3e }, + { 8157, 0x5d20 }, { 8163, 0xf2f7 }, { 8175, 0xd585 }, { 8183, 0x69d7 }, + /* 0x7d00 */ + { 8193, 0xffff }, { 8209, 0xffff }, { 8225, 0xdb07 }, { 8234, 0xff6f }, + { 8248, 0xc4ff }, { 8259, 0xd97f }, { 8271, 0xefce }, { 8283, 0xbe0f }, + { 8293, 0xf17b }, { 8304, 0xf05e }, { 8313, 0xf6cf }, { 8325, 0xffb7 }, + { 8339, 0x5ef7 }, { 8351, 0xef84 }, { 8360, 0xd7cb }, { 8371, 0x0edf }, + /* 0x7e00 */ + { 8381, 0xff08 }, { 8390, 0xfcff }, { 8404, 0xee3f }, { 8416, 0xffff }, + { 8432, 0x13ff }, { 8443, 0xd7ff }, { 8457, 0xaf0f }, { 8467, 0x7ffd }, + { 8481, 0xbdc7 }, { 8492, 0x1ffa }, { 8503, 0x0000 }, { 8503, 0x0000 }, + { 8503, 0x0000 }, { 8503, 0x0000 }, { 8503, 0x0000 }, { 8503, 0x0000 }, + /* 0x7f00 */ + { 8503, 0x0000 }, { 8503, 0x0000 }, { 8503, 0x0000 }, { 8503, 0xe740 }, + { 8510, 0xbd38 }, { 8519, 0xf933 }, { 8529, 0x7feb }, { 8542, 0xfeed }, + { 8555, 0x7fe8 }, { 8566, 0x7c76 }, { 8576, 0xb3f7 }, { 8588, 0xffef }, + { 8603, 0xfeaf }, { 8616, 0xd8b7 }, { 8626, 0xff6f }, { 8640, 0xfbbf }, + /* 0x8000 */ + { 8654, 0xf8fb }, { 8666, 0xdbf7 }, { 8679, 0x1752 }, { 8686, 0xe2f9 }, + { 8696, 0x85c8 }, { 8702, 0x7547 }, { 8711, 0x9090 }, { 8715, 0xe3ef }, + { 8727, 0x9ef4 }, { 8737, 0x3f6d }, { 8748, 0xee2e }, { 8758, 0x0536 }, + { 8764, 0xf7bc }, { 8776, 0x7ff3 }, { 8789, 0xa07b }, { 8797, 0x7f3f }, + /* 0x8100 */ + { 8810, 0x0567 }, { 8817, 0xeb60 }, { 8825, 0xbabe }, { 8836, 0x6601 }, + { 8841, 0xfcd8 }, { 8851, 0x583f }, { 8860, 0xcaf7 }, { 8871, 0x87df }, + { 8882, 0xbfcd }, { 8894, 0xffa0 }, { 8904, 0x5bcd }, { 8914, 0xfebf }, + { 8928, 0xb6fd }, { 8940, 0xefa7 }, { 8952, 0x77ef }, { 8965, 0xdf9c }, + /* 0x8200 */ + { 8976, 0x3fb7 }, { 8988, 0xf877 }, { 8999, 0x9d27 }, { 9008, 0xb7fc }, + { 9020, 0xcab5 }, { 9029, 0xdfef }, { 9043, 0xfb5a }, { 9054, 0xf1b6 }, + { 9064, 0xec39 }, { 9073, 0xef1f }, { 9085, 0xfbbf }, { 9099, 0x7ffb }, + { 9113, 0x000d }, { 9116, 0xdafe }, { 9128, 0xbdfb }, { 9141, 0x4e7f }, + /* 0x8300 */ + { 9152, 0x33ff }, { 9164, 0x5ac0 }, { 9170, 0xbff5 }, { 9183, 0x9ffe }, + { 9196, 0xffbf }, { 9211, 0x005f }, { 9217, 0x0000 }, { 9217, 0xfdf8 }, + { 9229, 0xffca }, { 9241, 0x6ffd }, { 9254, 0xcffd }, { 9267, 0xa001 }, + { 9270, 0xdfff }, { 9285, 0xfbf2 }, { 9297, 0xdfbf }, { 9311, 0xff7f }, + /* 0x8400 */ + { 9326, 0xfeda }, { 9338, 0x080f }, { 9343, 0xba08 }, { 9349, 0xbfff }, + { 9364, 0x7afd }, { 9376, 0xeed7 }, { 9388, 0xfbeb }, { 9401, 0x67f9 }, + { 9412, 0xe044 }, { 9417, 0xff93 }, { 9429, 0xdf97 }, { 9441, 0x9f57 }, + { 9452, 0xfef7 }, { 9466, 0x08df }, { 9474, 0xdf80 }, { 9482, 0xfedf }, + /* 0x8500 */ + { 9496, 0xffc5 }, { 9508, 0xf7fe }, { 9522, 0xfffb }, { 9537, 0x6803 }, + { 9542, 0x67fb }, { 9554, 0x6bfa }, { 9565, 0x7fff }, { 9580, 0x5fe2 }, + { 9590, 0xffff }, { 9606, 0xff73 }, { 9619, 0x87df }, { 9630, 0xe7fb }, + { 9643, 0xebfd }, { 9656, 0xf7a7 }, { 9668, 0xbf7e }, { 9681, 0xefc7 }, + /* 0x8600 */ + { 9693, 0x1ef3 }, { 9703, 0xdf82 }, { 9712, 0x76ff }, { 9725, 0xdf7e }, + { 9738, 0x79c9 }, { 9747, 0xda7d }, { 9758, 0xefbe }, { 9771, 0x1e9b }, + { 9780, 0x7ce0 }, { 9788, 0x77fb }, { 9801, 0x87be }, { 9811, 0xfffb }, + { 9826, 0x1bff }, { 9838, 0xffdb }, { 9852, 0x3f5c }, { 9862, 0x4fe0 }, + /* 0x8700 */ + { 9870, 0x7fff }, { 9885, 0x5f0e }, { 9894, 0x77ff }, { 9908, 0xddbf }, + { 9921, 0xf04f }, { 9930, 0xffff }, { 9946, 0xffff }, { 9962, 0x0ff8 }, + { 9971, 0xa3be }, { 9981, 0xfddf }, { 9995, 0xfc1c }, { 10004, 0xfffd }, + { 10019, 0x1f7d }, { 10030, 0xfb9e }, { 10042, 0xbdff }, { 10056, 0xdedc }, + /* 0x8800 */ + { 10067, 0x3f6f }, { 10079, 0xbafb }, { 10091, 0xdf7f }, { 10105, 0xfbef }, + { 10119, 0x7d1b }, { 10129, 0x2eec }, { 10138, 0xaf8e }, { 10148, 0xf2f7 }, + { 10160, 0x7b0f }, { 10170, 0xcfee }, { 10182, 0x1d96 }, { 10190, 0x77c6 }, + { 10200, 0x7e07 }, { 10209, 0xfff5 }, { 10223, 0xd982 }, { 10230, 0x7fdf }, + /* 0x8900 */ + { 10244, 0x5ee6 }, { 10254, 0xc7ff }, { 10267, 0xfeee }, { 10280, 0x79ef }, + { 10292, 0x9a56 }, { 10300, 0xffcf }, { 10314, 0xfe5f }, { 10327, 0xde5e }, + { 10338, 0x896e }, { 10346, 0xf9e8 }, { 10356, 0xf45e }, { 10366, 0xe6c4 }, + { 10374, 0x0001 }, { 10375, 0xbe7c }, { 10386, 0x3b7f }, { 10398, 0xdddf }, + /* 0x8a00 */ + { 10411, 0xd59d }, { 10421, 0xe9ef }, { 10433, 0x34ac }, { 10440, 0xde53 }, + { 10450, 0xf573 }, { 10461, 0x4bf7 }, { 10472, 0x7b4f }, { 10483, 0x9eff }, + { 10496, 0xb8fe }, { 10507, 0x476e }, { 10516, 0x0dfb }, { 10526, 0xff45 }, + { 10537, 0xabfd }, { 10549, 0xfbfe }, { 10563, 0xe9d7 }, { 10574, 0xddff }, + /* 0x8b00 */ + { 10588, 0xedf7 }, { 10601, 0x7fff }, { 10616, 0xddfd }, { 10629, 0x7eeb }, + { 10641, 0xcfe7 }, { 10653, 0xb7ff }, { 10667, 0xbde9 }, { 10678, 0xef91 }, + { 10688, 0x5d75 }, { 10698, 0xd77c }, { 10709, 0x0000 }, { 10709, 0x0000 }, + { 10709, 0x0000 }, { 10709, 0x0000 }, { 10709, 0x0000 }, { 10709, 0x0000 }, + /* 0x8c00 */ + { 10709, 0x0000 }, { 10709, 0x0000 }, { 10709, 0x0000 }, { 10709, 0xfa80 }, + { 10716, 0xffee }, { 10730, 0xb4f1 }, { 10739, 0xbf76 }, { 10751, 0x2fef }, + { 10763, 0xb677 }, { 10774, 0x77bf }, { 10787, 0x9fbf }, { 10800, 0xfffd }, + { 10815, 0x95bf }, { 10826, 0xf6ae }, { 10837, 0x75ff }, { 10850, 0x7f3b }, + /* 0x8d00 */ + { 10862, 0xa7f5 }, { 10873, 0x0af9 }, { 10881, 0x0000 }, { 10881, 0x0000 }, + { 10881, 0x0000 }, { 10881, 0x0000 }, { 10881, 0xfbd0 }, { 10891, 0x2bdd }, + { 10901, 0xf633 }, { 10911, 0x9a7f }, { 10922, 0xfdab }, { 10934, 0xd6fc }, + { 10945, 0xf9e6 }, { 10956, 0xbfeb }, { 10969, 0xdfdf }, { 10983, 0xf41f }, + /* 0x8e00 */ + { 10993, 0xa6fd }, { 11004, 0xffff }, { 11020, 0x4aff }, { 11031, 0xf37b }, + { 11043, 0x7fb7 }, { 11056, 0xfef9 }, { 11069, 0xb6ff }, { 11082, 0x1d5c }, + { 11090, 0x7ff6 }, { 11103, 0xe5ff }, { 11116, 0x1f7b }, { 11127, 0x2404 }, + { 11130, 0xbe05 }, { 11138, 0xf99e }, { 11149, 0xdbe3 }, { 11160, 0xdff2 }, + /* 0x8f00 */ + { 11172, 0x6fef }, { 11185, 0xfdff }, { 11200, 0xd679 }, { 11210, 0xcbfc }, + { 11221, 0xebfd }, { 11234, 0xefff }, { 11249, 0x001f }, { 11254, 0x0000 }, + { 11254, 0x0000 }, { 11254, 0x9800 }, { 11257, 0xe148 }, { 11263, 0x8017 }, + { 11268, 0x6a74 }, { 11276, 0x00fe }, { 11283, 0x6d7f }, { 11295, 0xfdf1 }, + /* 0x9000 */ + { 11307, 0xb87f }, { 11318, 0xfef3 }, { 11331, 0xe01f }, { 11339, 0xf176 }, + { 11349, 0xee96 }, { 11359, 0x7b3f }, { 11371, 0xeb8d }, { 11381, 0xfffd }, + { 11396, 0xadff }, { 11409, 0xcbb3 }, { 11419, 0x84ef }, { 11428, 0xe17f }, + { 11439, 0x4daa }, { 11447, 0xbff0 }, { 11458, 0xbf3f }, { 11471, 0xfe3f }, + /* 0x9100 */ + { 11484, 0xebff }, { 11498, 0xffd7 }, { 11512, 0xffdf }, { 11527, 0xcf7f }, + { 11540, 0xfffb }, { 11555, 0x85ed }, { 11564, 0xd73f }, { 11576, 0x07bc }, + { 11584, 0xaeff }, { 11597, 0xfe0f }, { 11608, 0xfdaf }, { 11621, 0x76bf }, + { 11633, 0xfaef }, { 11646, 0x37bb }, { 11657, 0x7fdc }, { 11669, 0xa3ba }, + /* 0x9200 */ + { 11678, 0xb6ff }, { 11691, 0x56f7 }, { 11702, 0x60f8 }, { 11709, 0xe7df }, + { 11722, 0xff61 }, { 11733, 0x4cdf }, { 11743, 0xb0fb }, { 11753, 0xff45 }, + { 11764, 0x7ded }, { 11776, 0x3ffa }, { 11788, 0x1fff }, { 11801, 0x18fc }, + { 11809, 0xffff }, { 11825, 0xe3af }, { 11836, 0xc7d3 }, { 11846, 0xdf83 }, + /* 0x9300 */ + { 11856, 0xfb57 }, { 11868, 0xef7d }, { 11881, 0xefff }, { 11896, 0x1378 }, + { 11903, 0xfec0 }, { 11912, 0x5ff7 }, { 11925, 0x34bb }, { 11934, 0x5ee3 }, + { 11944, 0xf70d }, { 11954, 0xeff6 }, { 11967, 0xd7fe }, { 11980, 0x00bf }, + { 11987, 0xf59d }, { 11998, 0xf7f7 }, { 12012, 0x51de }, { 12021, 0xffe0 }, + /* 0x9400 */ + { 12032, 0xfec9 }, { 12043, 0x037f }, { 12052, 0x5f01 }, { 12059, 0xbfef }, + { 12073, 0x9ff1 }, { 12084, 0x60a7 }, { 12091, 0xef1d }, { 12102, 0xf1ff }, + { 12115, 0x000f }, { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x0000 }, + { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x0000 }, + /* 0x9500 */ + { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x0000 }, + { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x3c80 }, + { 12124, 0xfb4d }, { 12135, 0xd91f }, { 12145, 0x7b3a }, { 12155, 0xfee3 }, + { 12167, 0x3fe9 }, { 12178, 0xdc7f }, { 12190, 0x003f }, { 12196, 0x0000 }, + /* 0x9600 */ + { 12196, 0x0000 }, { 12196, 0x5000 }, { 12198, 0xf51f }, { 12209, 0xbe07 }, + { 12218, 0xfc1d }, { 12228, 0xf91b }, { 12238, 0xbc1e }, { 12247, 0x71ff }, + { 12259, 0x6ff9 }, { 12271, 0x5bbe }, { 12282, 0x5796 }, { 12291, 0x9b1b }, + { 12300, 0x7fff }, { 12315, 0xfffc }, { 12329, 0x872e }, { 12337, 0xafe7 }, + /* 0x9700 */ + { 12349, 0xebf5 }, { 12361, 0xf34f }, { 12372, 0xdffd }, { 12386, 0xe725 }, + { 12395, 0x0bdc }, { 12403, 0x5d44 }, { 12410, 0x5747 }, { 12419, 0xfddd }, + { 12432, 0xed3f }, { 12444, 0x7790 }, { 12452, 0x7d7f }, { 12465, 0x8ac8 }, + { 12471, 0xfafa }, { 12483, 0xf3f9 }, { 12495, 0x202a }, { 12499, 0xef4b }, + /* 0x9800 */ + { 12510, 0xf5ff }, { 12524, 0x79cf }, { 12535, 0xabd3 }, { 12545, 0x0ba5 }, + { 12552, 0xf77a }, { 12564, 0xfb8f }, { 12576, 0x8ebd }, { 12586, 0x001f }, + { 12591, 0x0000 }, { 12591, 0x0000 }, { 12591, 0xf300 }, { 12597, 0xfd4e }, + { 12608, 0x1a57 }, { 12616, 0x8800 }, { 12618, 0xaeac }, { 12627, 0x7654 }, + /* 0x9900 */ + { 12635, 0x17ad }, { 12644, 0xcdff }, { 12657, 0xffb2 }, { 12669, 0xf42f }, + { 12679, 0x5baa }, { 12688, 0xdbff }, { 12702, 0x0002 }, { 12703, 0x0000 }, + { 12703, 0x0000 }, { 12703, 0x73c0 }, { 12710, 0xf9ea }, { 12721, 0x2e3f }, + { 12731, 0xfa8e }, { 12741, 0xbbff }, { 12755, 0x76bc }, { 12765, 0xffd3 }, + /* 0x9a00 */ + { 12778, 0xeefe }, { 12791, 0x7e72 }, { 12801, 0x7ebd }, { 12813, 0xe7f7 }, + { 12826, 0xf77f }, { 12840, 0xcefd }, { 12852, 0x0ff5 }, { 12862, 0x0000 }, + { 12862, 0x0000 }, { 12862, 0x0000 }, { 12862, 0xa900 }, { 12866, 0xdb9b }, + { 12877, 0xa4c7 }, { 12885, 0x917f }, { 12895, 0xf8ca }, { 12904, 0x7ece }, + /* 0x9b00 */ + { 12915, 0x7d7a }, { 12926, 0xc7e7 }, { 12937, 0xcbbd }, { 12948, 0xdcae }, + { 12958, 0xfd7e }, { 12971, 0x8f76 }, { 12981, 0x91d3 }, { 12989, 0x7cf3 }, + { 13000, 0x01e5 }, { 13006, 0x4c2f }, { 13014, 0xed77 }, { 13026, 0xa360 }, + { 13032, 0x07db }, { 13041, 0x5ef8 }, { 13051, 0x1df7 }, { 13062, 0x2181 }, + /* 0x9c00 */ + { 13066, 0x6be0 }, { 13074, 0x309c }, { 13080, 0x3b3a }, { 13089, 0xfade }, + { 13101, 0x7f53 }, { 13112, 0xc3f5 }, { 13122, 0x61cd }, { 13130, 0x07ba }, + { 13138, 0x0000 }, { 13138, 0x0000 }, { 13138, 0x0000 }, { 13138, 0x0000 }, + { 13138, 0x0000 }, { 13138, 0x0000 }, { 13138, 0x26e0 }, { 13144, 0xbefe }, + /* 0x9d00 */ + { 13157, 0x03f9 }, { 13165, 0xebb5 }, { 13176, 0xe36d }, { 13186, 0xe9cb }, + { 13196, 0x9c2f }, { 13205, 0xbfde }, { 13218, 0x9f83 }, { 13227, 0xabbf }, + { 13239, 0x1ff7 }, { 13251, 0xffd5 }, { 13264, 0xb7df }, { 13277, 0xdffe }, + { 13291, 0xfdae }, { 13303, 0xffef }, { 13318, 0xfb7e }, { 13331, 0xeffd }, + /* 0x9e00 */ + { 13345, 0xaaff }, { 13357, 0x6ebf }, { 13369, 0x0000 }, { 13369, 0x0000 }, + { 13369, 0x0000 }, { 13369, 0x0000 }, { 13369, 0x0000 }, { 13369, 0xb620 }, + { 13375, 0x7fcd }, { 13387, 0xbe9e }, { 13398, 0x62b3 }, { 13406, 0x58f1 }, + { 13414, 0xf10d }, { 13422, 0xfd7b }, { 13435, 0xe9f1 }, { 13445, 0xbefd }, + /* 0x9f00 */ + { 13458, 0xc6c3 }, { 13466, 0x5f6d }, { 13477, 0xff3d }, { 13490, 0x69ff }, + { 13502, 0xffcf }, { 13516, 0xfbf4 }, { 13528, 0xdcfb }, { 13540, 0x4ff7 }, + { 13552, 0x2000 }, { 13553, 0x1137 }, { 13560, 0x0015 }, +}; +static const Summary16 big5_uni2indx_pagefa[1] = { + /* 0xfa00 */ + { 13563, 0x3000 }, +}; +static const Summary16 big5_uni2indx_pagefe[23] = { + /* 0xfe00 */ + { 13565, 0x0000 }, { 13565, 0x0000 }, { 13565, 0x0000 }, { 13565, 0xfffb }, + { 13580, 0xfe1f }, { 13592, 0xfef5 }, { 13605, 0x0e7f }, { 13615, 0x0000 }, + { 13615, 0x0000 }, { 13615, 0x0000 }, { 13615, 0x0000 }, { 13615, 0x0000 }, + { 13615, 0x0000 }, { 13615, 0x0000 }, { 13615, 0x0000 }, { 13615, 0x0000 }, + /* 0xff00 */ + { 13615, 0xff7a }, { 13628, 0xffff }, { 13644, 0xffff }, { 13660, 0x97ff }, + { 13673, 0xfffe }, { 13688, 0x3fff }, { 13702, 0x0010 }, +}; + +static int +big5_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (n >= 2) { + const Summary16 *summary = NULL; + if (wc >= 0x0000 && wc < 0x0100) + summary = &big5_uni2indx_page00[(wc>>4)]; + else if (wc >= 0x0200 && wc < 0x0460) + summary = &big5_uni2indx_page02[(wc>>4)-0x020]; + else if (wc >= 0x2000 && wc < 0x22c0) + summary = &big5_uni2indx_page20[(wc>>4)-0x200]; + else if (wc >= 0x2400 && wc < 0x2650) + summary = &big5_uni2indx_page24[(wc>>4)-0x240]; + else if (wc >= 0x3000 && wc < 0x33e0) + summary = &big5_uni2indx_page30[(wc>>4)-0x300]; + else if (wc >= 0x4e00 && wc < 0x9fb0) + summary = &big5_uni2indx_page4e[(wc>>4)-0x4e0]; + else if (wc >= 0xfa00 && wc < 0xfa10) + summary = &big5_uni2indx_pagefa[(wc>>4)-0xfa0]; + else if (wc >= 0xfe00 && wc < 0xff70) + summary = &big5_uni2indx_pagefe[(wc>>4)-0xfe0]; + if (summary) { + unsigned short used = summary->used; + unsigned int i = wc & 0x0f; + if (used & ((unsigned short) 1 << i)) { + unsigned short c; + /* Keep in `used' only the bits 0..i-1. */ + used &= ((unsigned short) 1 << i) - 1; + /* Add `summary->indx' and the number of bits set in `used'. */ + used = (used & 0x5555) + ((used & 0xaaaa) >> 1); + used = (used & 0x3333) + ((used & 0xcccc) >> 2); + used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); + used = (used & 0x00ff) + (used >> 8); + c = big5_2charset[summary->indx + used]; + r[0] = (c >> 8); r[1] = (c & 0xff); + return 2; + } + } + return RET_ILUNI; + } + return RET_TOOSMALL; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/big5_2003.h b/graf2d/win32gdk/gdk/src/iconv/big5_2003.h new file mode 100644 index 00000000000..b532ce6ee83 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/big5_2003.h @@ -0,0 +1,476 @@ +/* + * Copyright (C) 1999-2001, 2005 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * BIG5-2003 + */ + +/* + * BIG5-2003 is a slightly extended and slightly modified version of BIG5. + * It is actually nearer to Microsoft CP950 than to BIG5. The differences + * between EASTASIA/OTHER/BIG5.TXT found on ftp.unicode.org and BIG5-2003.TXT + * are as follows: + * + * 1. Some characters in the symbols area (0xA140..0xA2CE) are defined + * differently: + * + * code BIG5.TXT BIG5-2003.TXT + * 0xA145 0x2022 # BULLET 0x2027 # HYPHENATION POINT + * 0xA14E 0xFF64 # HALFWIDTH IDEOGRAPHIC COMMA + * 0xFE51 # SMALL IDEOGRAPHIC COMMA + * 0xA156 0x2013 # EN DASH 0x2015 # HORIZONTAL BAR + * 0xA15A --- 0x2574 # BOX DRAWINGS LIGHT LEFT + * 0xA1C3 --- 0xFFE3 # FULLWIDTH MACRON + * 0xA1C5 --- 0x02CD # MODIFIER LETTER LOW MACRON + * 0xA1E3 0x223C # TILDE OPERATOR 0xFF5E # FULLWIDTH TILDE + * 0xA1F2 0x2641 # EARTH 0x2295 # CIRCLED PLUS + * 0xA1F3 0x2609 # SUN 0x2299 # CIRCLED DOT OPERATOR + * 0xA1FE --- 0xFF0F # FULLWIDTH SOLIDUS + * 0xA240 --- 0xFF3C # FULLWIDTH REVERSE SOLIDUS + * 0xA241 0xFF0F # FULLWIDTH SOLIDUS 0x2215 # DIVISION SLASH + * 0xA242 0xFF3C # FULLWIDTH REVERSE SOLIDUS + * 0xFE68 # SMALL REVERSE SOLIDUS + * 0xA244 0x00A5 # YEN SIGN 0xFFE5 # FULLWIDTH YEN SIGN + * 0xA246 0x00A2 # CENT SIGN 0xFFE0 # FULLWIDTH CENT SIGN + * 0xA247 0x00A3 # POUND SIGN 0xFFE1 # FULLWIDTH POUND SIGN + * 0xA2A4 0x2550 # BOX DRAWINGS DOUBLE HORIZONTAL + * 0x2501 # BOX DRAWINGS HEAVY HORIZONTAL + * 0xA2A5 0x255E # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE + * 0x251D # BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY + * 0xA2A6 0x256A # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE + * 0x253F # BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY + * 0xA2A7 0x2561 # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE + * 0x2525 # BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY + * 0xA2CC --- 0x3038 # HANGZHOU NUMERAL TEN + * 0xA2CD 0x5344 0x3039 # HANGZHOU NUMERAL TWENTY + * 0xA2CE --- 0x303A # HANGZHOU NUMERAL THIRTY + * + * 2. A control symbols area is added: + * + * code + * 0xA3C0..0xA3E0 U+2400..U+2421 + * + * 3. The Euro sign is added: + * + * code + * 0xA3E1 0x20AC # EURO SIGN + * + * 4. Some characters in the main area are defined differently: + * + * code BIG5.TXT BIG5-2003.TXT + * 0xC255 0x5F5D 0x5F5E + * + * 5. The area 0xC6A1..0xC7FE is organized differently: + * + * code + * 0xC6A1..0xC6BE numerals (was in BIG5.TXT at 0xC7E9..0xC7FC) + * 0xC6BF..0xC6D7 radicals + * 0xC6D8..0xC6E6 rarely used symbols + * 0xC6E7..0xC77A hiragana (U+3041..U+3093, was in BIG5.TXT at 0xC6A5..0xC6F7) + * 0xC77B..0xC7F2 katakana (U+30A1..U+30F6, was in BIG5.TXT at 0xC6F8..0xC7B0) + * + * 6. Some characters are added at 0xF9D6..0xF9DC. + * + * 7. Box drawing characters are added at 0xF9DD..0xF9FE. + * + * Note: 4 of these characters are mapped in a non-inversible way, because + * Unicode does not yet include the corresponding characters: + * + * code Unicode approximation + * 0xF9FA BOX DRAWINGS DOUBLE ARC DOWN AND RIGHT 0x2554 + * 0xF9FB BOX DRAWINGS DOUBLE ARC DOWN AND LEFT 0x2557 + * 0xF9FC BOX DRAWINGS DOUBLE ARC UP AND RIGHT 0x255A + * 0xF9FD BOX DRAWINGS DOUBLE ARC UP AND LEFT 0x255D + * + * 8. Private area mappings are added: + * + * code Unicode + * 0x{81..8D}{40..7E,A1..FE} U+EEB8..U+F6B0 + * 0x{8E..A0}{40..7E,A1..FE} U+E311..U+EEB7 + * 0x{FA..FE}{40..7E,A1..FE} U+E000..U+E310 + * + * These mappings are not contained in the BSMI Big5-2003 standard. However, + * they were contained in a draft of it. + */ + +static const unsigned short big5_2003_2uni_pagea1[314] = { + /* 0xa1 */ + 0x3000, 0xff0c, 0x3001, 0x3002, 0xff0e, 0x2027, 0xff1b, 0xff1a, + 0xff1f, 0xff01, 0xfe30, 0x2026, 0x2025, 0xfe50, 0xfe51, 0xfe52, + 0x00b7, 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xff5c, 0x2015, 0xfe31, + 0x2014, 0xfe33, 0x2574, 0xfe34, 0xfe4f, 0xff08, 0xff09, 0xfe35, + 0xfe36, 0xff5b, 0xff5d, 0xfe37, 0xfe38, 0x3014, 0x3015, 0xfe39, + 0xfe3a, 0x3010, 0x3011, 0xfe3b, 0xfe3c, 0x300a, 0x300b, 0xfe3d, + 0xfe3e, 0x3008, 0x3009, 0xfe3f, 0xfe40, 0x300c, 0x300d, 0xfe41, + 0xfe42, 0x300e, 0x300f, 0xfe43, 0xfe44, 0xfe59, 0xfe5a, 0xfe5b, + 0xfe5c, 0xfe5d, 0xfe5e, 0x2018, 0x2019, 0x201c, 0x201d, 0x301d, + 0x301e, 0x2035, 0x2032, 0xff03, 0xff06, 0xff0a, 0x203b, 0x00a7, + 0x3003, 0x25cb, 0x25cf, 0x25b3, 0x25b2, 0x25ce, 0x2606, 0x2605, + 0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25bd, 0x25bc, 0x32a3, 0x2105, + 0x203e, 0xffe3, 0xff3f, 0x02cd, 0xfe49, 0xfe4a, 0xfe4d, 0xfe4e, + 0xfe4b, 0xfe4c, 0xfe5f, 0xfe60, 0xfe61, 0xff0b, 0xff0d, 0x00d7, + 0x00f7, 0x00b1, 0x221a, 0xff1c, 0xff1e, 0xff1d, 0x2266, 0x2267, + 0x2260, 0x221e, 0x2252, 0x2261, 0xfe62, 0xfe63, 0xfe64, 0xfe65, + 0xfe66, 0xff5e, 0x2229, 0x222a, 0x22a5, 0x2220, 0x221f, 0x22bf, + 0x33d2, 0x33d1, 0x222b, 0x222e, 0x2235, 0x2234, 0x2640, 0x2642, + 0x2295, 0x2299, 0x2191, 0x2193, 0x2190, 0x2192, 0x2196, 0x2197, + 0x2199, 0x2198, 0x2225, 0x2223, 0xff0f, + /* 0xa2 */ + 0xff3c, 0x2215, 0xfe68, 0xff04, 0xffe5, 0x3012, 0xffe0, 0xffe1, + 0xff05, 0xff20, 0x2103, 0x2109, 0xfe69, 0xfe6a, 0xfe6b, 0x33d5, + 0x339c, 0x339d, 0x339e, 0x33ce, 0x33a1, 0x338e, 0x338f, 0x33c4, + 0x00b0, 0x5159, 0x515b, 0x515e, 0x515d, 0x5161, 0x5163, 0x55e7, + 0x74e9, 0x7cce, 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586, + 0x2587, 0x2588, 0x258f, 0x258e, 0x258d, 0x258c, 0x258b, 0x258a, + 0x2589, 0x253c, 0x2534, 0x252c, 0x2524, 0x251c, 0x2594, 0x2500, + 0x2502, 0x2595, 0x250c, 0x2510, 0x2514, 0x2518, 0x256d, 0x256e, + 0x2570, 0x256f, 0x2501, 0x251d, 0x253f, 0x2525, 0x25e2, 0x25e3, + 0x25e5, 0x25e4, 0x2571, 0x2572, 0x2573, 0xff10, 0xff11, 0xff12, + 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, 0xff19, 0x2160, + 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, + 0x2169, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027, + 0x3028, 0x3029, 0x3038, 0x3039, 0x303a, 0xff21, 0xff22, 0xff23, + 0xff24, 0xff25, 0xff26, 0xff27, 0xff28, 0xff29, 0xff2a, 0xff2b, + 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30, 0xff31, 0xff32, 0xff33, + 0xff34, 0xff35, 0xff36, 0xff37, 0xff38, 0xff39, 0xff3a, 0xff41, + 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, 0xff49, + 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50, 0xff51, + 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, +}; + +static const unsigned short big5_2003_2uni_pagec6[70] = { + /* 0xc6a1 */ + 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, + 0x2468, 0x2469, 0x2474, 0x2475, 0x2476, 0x2477, 0x2478, 0x2479, + 0x247a, 0x247b, 0x247c, 0x247d, 0x2170, 0x2171, 0x2172, 0x2173, + 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, 0x2f02, 0x2f03, + 0x2f05, 0x2f07, 0x2f0c, 0x2f0d, 0x2f0e, 0x2f13, 0x2f16, 0x2f19, + 0x2f1b, 0x2f22, 0x2f27, 0x2f2e, 0x2f33, 0x2f34, 0x2f35, 0x2f39, + 0x2f3a, 0x2f41, 0x2f46, 0x2f67, 0x2f68, 0x2fa1, 0x2faa, 0x00a8, + 0xff3e, 0x30fd, 0x30fe, 0x309d, 0x309e, 0xfffd, 0xfffd, 0x3005, + 0x3006, 0x3007, 0x30fc, 0xff3b, 0xff3d, 0x273d, +}; + +static const unsigned short big5_2003_2uni_pagef9[41] = { + /* 0xf9d6 */ + 0x7881, 0x92b9, 0x88cf, 0x58bb, 0x6052, 0x7ca7, 0x5afa, + /* 0xf9dd */ + 0x2554, 0x2566, 0x2557, 0x2560, 0x256c, 0x2563, 0x255a, 0x2569, + 0x255d, 0x2552, 0x2564, 0x2555, 0x255e, 0x256a, 0x2561, 0x2558, + 0x2567, 0x255b, 0x2553, 0x2565, 0x2556, 0x255f, 0x256b, 0x2562, + 0x2559, 0x2568, 0x255c, 0x2551, 0x2550, + 0x2554, 0x2557, 0x255a, 0x255d, /* not invertible */ + 0x2593, +}; + +static int +big5_2003_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + /* Code set 0 (ASCII) */ + if (c < 0x80) + return ascii_mbtowc(conv,pwc,s,n); + /* Code set 1 (BIG5 extended) */ + if (c >= 0x81 && c < 0xff) { + if (n < 2) + return RET_TOOFEW(0); + { + unsigned char c2 = s[1]; + if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) { + if (c >= 0xa1) { + if (c < 0xa3) { + unsigned int i = 157 * (c - 0xa1) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40)); + unsigned short wc = big5_2003_2uni_pagea1[i]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 2; + } + } + if (!((c == 0xc6 && c2 >= 0xa1) || c == 0xc7)) { + if (!(c == 0xc2 && c2 == 0x55)) { + int ret = big5_mbtowc(conv,pwc,s,2); + if (ret != RET_ILSEQ) + return ret; + if (c == 0xa3) { + if (c2 >= 0xc0 && c2 <= 0xe1) { + *pwc = (c2 == 0xe1 ? 0x20ac : c2 == 0xe0 ? 0x2421 : 0x2340 + c2); + return 2; + } + } else if (c == 0xf9) { + if (c2 >= 0xd6) { + *pwc = big5_2003_2uni_pagef9[c2-0xd6]; + return 2; + } + } else if (c >= 0xfa) { + *pwc = 0xe000 + 157 * (c - 0xfa) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40)); + return 2; + } + } else { + /* c == 0xc2 && c2 == 0x55. */ + *pwc = 0x5f5e; + return 2; + } + } else { + /* (c == 0xc6 && c2 >= 0xa1) || c == 0xc7. */ + unsigned int i = 157 * (c - 0xc6) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40)); + if (i < 133) { + /* 63 <= i < 133. */ + unsigned short wc = big5_2003_2uni_pagec6[i-63]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 2; + } + } else if (i < 216) { + /* 133 <= i < 216. Hiragana. */ + *pwc = 0x3041 - 133 + i; + return 2; + } else if (i < 302) { + /* 216 <= i < 302. Katakana. */ + *pwc = 0x30a1 - 216 + i; + return 2; + } + } + } else { + /* 0x81 <= c < 0xa1. */ + *pwc = (c >= 0x8e ? 0xdb18 : 0xeeb8) + 157 * (c - 0x81) + + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40)); + return 2; + } + } + } + } + return RET_ILSEQ; +} + +static const unsigned char big5_2003_2charset_page25[29] = { + /* 0x2550 */ + 0xf9, 0xf8, 0xe6, 0xef, 0xdd, 0xe8, 0xf1, 0xdf, + 0xec, 0xf5, 0xe3, 0xee, 0xf7, 0xe5, 0xe9, 0xf2, + 0xe0, 0xeb, 0xf4, 0xe2, 0xe7, 0xf0, 0xde, 0xed, + 0xf6, 0xe4, 0xea, 0xf3, 0xe1, +}; + +static int +big5_2003_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char buf[2]; + int ret; + + /* Code set 0 (ASCII) */ + ret = ascii_wctomb(conv,r,wc,n); + if (ret != RET_ILUNI) + return ret; + + /* Code set 1 (BIG5 extended) */ + switch (wc >> 8) { + case 0x00: + if (wc == 0x00a8) { buf[0] = 0xc6; buf[1] = 0xd8; ret = 2; break; } + if (wc == 0x00a2 || wc == 0x00a3 || wc == 0x00a5) + return RET_ILUNI; + break; + case 0x02: + if (wc == 0x02cd) { buf[0] = 0xa1; buf[1] = 0xc5; ret = 2; break; } + break; + case 0x04: + return RET_ILUNI; + case 0x20: + if (wc == 0x2015) { buf[0] = 0xa1; buf[1] = 0x56; ret = 2; break; } + if (wc == 0x2027) { buf[0] = 0xa1; buf[1] = 0x45; ret = 2; break; } + if (wc == 0x20ac) { buf[0] = 0xa3; buf[1] = 0xe1; ret = 2; break; } + if (wc == 0x2013 || wc == 0x2022) + return RET_ILUNI; + break; + case 0x21: + if (wc >= 0x2170 && wc <= 0x2179) { + buf[0] = 0xc6; buf[1] = wc - 0x20bb; ret = 2; + break; + } + break; + case 0x22: + if (wc == 0x2215) { buf[0] = 0xa2; buf[1] = 0x41; ret = 2; break; } + if (wc == 0x2295) { buf[0] = 0xa1; buf[1] = 0xf2; ret = 2; break; } + if (wc == 0x2299) { buf[0] = 0xa1; buf[1] = 0xf3; ret = 2; break; } + if (wc == 0x223c) + return RET_ILUNI; + break; + case 0x24: + if (wc <= 0x241f) { buf[0] = 0xa3; buf[1] = wc - 0x2340; ret = 2; break; } + if (wc == 0x2421) { buf[0] = 0xa3; buf[1] = 0xe0; ret = 2; break; } + if (wc >= 0x2460 && wc <= 0x2469) { + buf[0] = 0xc6; buf[1] = wc - 0x23bf; ret = 2; + break; + } + if (wc >= 0x2474 && wc <= 0x247d) { + buf[0] = 0xc6; buf[1] = wc - 0x23c9; ret = 2; + break; + } + break; + case 0x25: + if (wc == 0x2501) { buf[0] = 0xa2; buf[1] = 0xa4; ret = 2; break; } + if (wc == 0x251d) { buf[0] = 0xa2; buf[1] = 0xa5; ret = 2; break; } + if (wc == 0x2525) { buf[0] = 0xa2; buf[1] = 0xa7; ret = 2; break; } + if (wc == 0x253f) { buf[0] = 0xa2; buf[1] = 0xa6; ret = 2; break; } + if (wc >= 0x2550 && wc <= 0x256c) { + buf[0] = 0xf9; buf[1] = big5_2003_2charset_page25[wc-0x2550]; ret = 2; + break; + } + if (wc == 0x2574) { buf[0] = 0xa1; buf[1] = 0x5a; ret = 2; break; } + if (wc == 0x2593) { buf[0] = 0xf9; buf[1] = 0xfe; ret = 2; break; } + break; + case 0x26: + if (wc == 0x2609 || wc == 0x2641) + return RET_ILUNI; + break; + case 0x27: + if (wc == 0x273d) { buf[0] = 0xc6; buf[1] = 0xe6; ret = 2; break; } + break; + case 0x2f: + if (wc == 0x2f02) { buf[0] = 0xc6; buf[1] = 0xbf; ret = 2; break; } + if (wc == 0x2f03) { buf[0] = 0xc6; buf[1] = 0xc0; ret = 2; break; } + if (wc == 0x2f05) { buf[0] = 0xc6; buf[1] = 0xc1; ret = 2; break; } + if (wc == 0x2f07) { buf[0] = 0xc6; buf[1] = 0xc2; ret = 2; break; } + if (wc == 0x2f0c) { buf[0] = 0xc6; buf[1] = 0xc3; ret = 2; break; } + if (wc == 0x2f0d) { buf[0] = 0xc6; buf[1] = 0xc4; ret = 2; break; } + if (wc == 0x2f0e) { buf[0] = 0xc6; buf[1] = 0xc5; ret = 2; break; } + if (wc == 0x2f13) { buf[0] = 0xc6; buf[1] = 0xc6; ret = 2; break; } + if (wc == 0x2f16) { buf[0] = 0xc6; buf[1] = 0xc7; ret = 2; break; } + if (wc == 0x2f19) { buf[0] = 0xc6; buf[1] = 0xc8; ret = 2; break; } + if (wc == 0x2f1b) { buf[0] = 0xc6; buf[1] = 0xc9; ret = 2; break; } + if (wc == 0x2f22) { buf[0] = 0xc6; buf[1] = 0xca; ret = 2; break; } + if (wc == 0x2f27) { buf[0] = 0xc6; buf[1] = 0xcb; ret = 2; break; } + if (wc == 0x2f2e) { buf[0] = 0xc6; buf[1] = 0xcc; ret = 2; break; } + if (wc == 0x2f33) { buf[0] = 0xc6; buf[1] = 0xcd; ret = 2; break; } + if (wc == 0x2f34) { buf[0] = 0xc6; buf[1] = 0xce; ret = 2; break; } + if (wc == 0x2f35) { buf[0] = 0xc6; buf[1] = 0xcf; ret = 2; break; } + if (wc == 0x2f39) { buf[0] = 0xc6; buf[1] = 0xd0; ret = 2; break; } + if (wc == 0x2f3a) { buf[0] = 0xc6; buf[1] = 0xd1; ret = 2; break; } + if (wc == 0x2f41) { buf[0] = 0xc6; buf[1] = 0xd2; ret = 2; break; } + if (wc == 0x2f46) { buf[0] = 0xc6; buf[1] = 0xd3; ret = 2; break; } + if (wc == 0x2f67) { buf[0] = 0xc6; buf[1] = 0xd4; ret = 2; break; } + if (wc == 0x2f68) { buf[0] = 0xc6; buf[1] = 0xd5; ret = 2; break; } + if (wc == 0x2fa1) { buf[0] = 0xc6; buf[1] = 0xd6; ret = 2; break; } + if (wc == 0x2faa) { buf[0] = 0xc6; buf[1] = 0xd7; ret = 2; break; } + break; + case 0x30: + if (wc >= 0x3005 && wc <= 0x3007) { + buf[0] = 0xc6; buf[1] = wc - 0x2f25; ret = 2; + break; + } + if (wc >= 0x3038 && wc <= 0x303a) { + buf[0] = 0xa2; buf[1] = wc - 0x2f6c; ret = 2; + break; + } + if (wc >= 0x3041 && wc <= 0x3093) { + if (wc < 0x3059) { + buf[0] = 0xc6; buf[1] = wc - 0x2f5a; + } else { + buf[0] = 0xc7; buf[1] = wc - 0x3019; + } + ret = 2; + break; + } + if (wc == 0x309d) { buf[0] = 0xc6; buf[1] = 0xdc; ret = 2; break; } + if (wc == 0x309e) { buf[0] = 0xc6; buf[1] = 0xdd; ret = 2; break; } + if (wc >= 0x30a1 && wc <= 0x30f6) { + buf[0] = 0xc7; buf[1] = wc - (wc < 0x30a5 ? 0x3026 : 0x3004); ret = 2; + break; + } + if (wc == 0x30fc) { buf[0] = 0xc6; buf[1] = 0xe3; ret = 2; break; } + if (wc == 0x30fd) { buf[0] = 0xc6; buf[1] = 0xda; ret = 2; break; } + if (wc == 0x30fe) { buf[0] = 0xc6; buf[1] = 0xdb; ret = 2; break; } + break; + case 0x53: + if (wc == 0x5344) + return RET_ILUNI; + break; + case 0x58: + if (wc == 0x58bb) { buf[0] = 0xf9; buf[1] = 0xd9; ret = 2; break; } + break; + case 0x5a: + if (wc == 0x5afa) { buf[0] = 0xf9; buf[1] = 0xdc; ret = 2; break; } + break; + case 0x5f: + if (wc == 0x5f5e) { buf[0] = 0xc2; buf[1] = 0x55; ret = 2; break; } + if (wc == 0x5f5d) + return RET_ILUNI; + break; + case 0x60: + if (wc == 0x6052) { buf[0] = 0xf9; buf[1] = 0xda; ret = 2; break; } + break; + case 0x78: + if (wc == 0x7881) { buf[0] = 0xf9; buf[1] = 0xd6; ret = 2; break; } + break; + case 0x7c: + if (wc == 0x7ca7) { buf[0] = 0xf9; buf[1] = 0xdb; ret = 2; break; } + break; + case 0x88: + if (wc == 0x88cf) { buf[0] = 0xf9; buf[1] = 0xd8; ret = 2; break; } + break; + case 0x92: + if (wc == 0x92b9) { buf[0] = 0xf9; buf[1] = 0xd7; ret = 2; break; } + break; + case 0xe0: case 0xe1: case 0xe2: case 0xe3: case 0xe4: case 0xe5: + case 0xe6: case 0xe7: case 0xe8: case 0xe9: case 0xea: case 0xeb: + case 0xec: case 0xed: case 0xee: case 0xef: case 0xf0: case 0xf1: + case 0xf2: case 0xf3: case 0xf4: case 0xf5: case 0xf6: + { + unsigned int i = wc - 0xe000; + if (i < 5809) { + unsigned int c1 = i / 157; + unsigned int c2 = i % 157; + buf[0] = c1 + (c1 < 5 ? 0xfa : c1 < 24 ? 0x89 : 0x69); + buf[1] = c2 + (c2 < 0x3f ? 0x40 : 0x62); + ret = 2; + break; + } + } + break; + case 0xfe: + if (wc == 0xfe51) { buf[0] = 0xa1; buf[1] = 0x4e; ret = 2; break; } + if (wc == 0xfe68) { buf[0] = 0xa2; buf[1] = 0x42; ret = 2; break; } + break; + case 0xff: + if (wc == 0xff0f) { buf[0] = 0xa1; buf[1] = 0xfe; ret = 2; break; } + if (wc == 0xff3b) { buf[0] = 0xc6; buf[1] = 0xe4; ret = 2; break; } + if (wc == 0xff3c) { buf[0] = 0xa2; buf[1] = 0x40; ret = 2; break; } + if (wc == 0xff3d) { buf[0] = 0xc6; buf[1] = 0xe5; ret = 2; break; } + if (wc == 0xff3e) { buf[0] = 0xc6; buf[1] = 0xd9; ret = 2; break; } + if (wc == 0xff5e) { buf[0] = 0xa1; buf[1] = 0xe3; ret = 2; break; } + if (wc == 0xffe0) { buf[0] = 0xa2; buf[1] = 0x46; ret = 2; break; } + if (wc == 0xffe1) { buf[0] = 0xa2; buf[1] = 0x47; ret = 2; break; } + if (wc == 0xffe3) { buf[0] = 0xa1; buf[1] = 0xc3; ret = 2; break; } + if (wc == 0xffe5) { buf[0] = 0xa2; buf[1] = 0x44; ret = 2; break; } + if (wc == 0xff64) + return RET_ILUNI; + break; + } + if (ret == RET_ILUNI) + ret = big5_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (n < 2) + return RET_TOOSMALL; + r[0] = buf[0]; + r[1] = buf[1]; + return 2; + } + + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/big5hkscs1999.h b/graf2d/win32gdk/gdk/src/iconv/big5hkscs1999.h new file mode 100644 index 00000000000..9e0d1b0c4e4 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/big5hkscs1999.h @@ -0,0 +1,197 @@ +/* + * Copyright (C) 1999-2002, 2006 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * BIG5-HKSCS:1999 + */ + +/* + * BIG5-HKSCS:1999 can be downloaded from + * http://www.info.gov.hk/digital21/eng/hkscs/download.html + * http://www.info.gov.hk/digital21/eng/hkscs/index.html + * + * It extends BIG5 (without the rows 0xC6..0xC7) through the ranges + * + * 0x{88..8D}{40..7E,A1..FE} 641 characters + * 0x{8E..A0}{40..7E,A1..FE} 2898 characters + * 0x{C6..C8}{40..7E,A1..FE} 359 characters + * 0xF9{D6..FE} 41 characters + * 0x{FA..FE}{40..7E,A1..FE} 763 characters + * + * Note that some HKSCS characters are not contained in Unicode 3.2 + * and are therefore best represented as sequences of Unicode characters: + * 0x8862 U+00CA U+0304 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND MACRON + * 0x8864 U+00CA U+030C LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND CARON + * 0x88A3 U+00EA U+0304 LATIN SMALL LETTER E WITH CIRCUMFLEX AND MACRON + * 0x88A5 U+00EA U+030C LATIN SMALL LETTER E WITH CIRCUMFLEX AND CARON + */ + +#include "hkscs1999.h" +#include "flushwc.h" + +static int +big5hkscs1999_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + ucs4_t last_wc = conv->istate; + if (last_wc) { + /* Output the buffered character. */ + conv->istate = 0; + *pwc = last_wc; + return 0; /* Don't advance the input pointer. */ + } else { + unsigned char c = *s; + /* Code set 0 (ASCII) */ + if (c < 0x80) + return ascii_mbtowc(conv,pwc,s,n); + /* Code set 1 (BIG5 extended) */ + if (c >= 0xa1 && c < 0xff) { + if (n < 2) + return RET_TOOFEW(0); + { + unsigned char c2 = s[1]; + if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) { + if (!((c == 0xc6 && c2 >= 0xa1) || c == 0xc7)) { + int ret = big5_mbtowc(conv,pwc,s,2); + if (ret != RET_ILSEQ) + return ret; + } + } + } + } + { + int ret = hkscs1999_mbtowc(conv,pwc,s,n); + if (ret != RET_ILSEQ) + return ret; + } + if (c == 0x88) { + if (n < 2) + return RET_TOOFEW(0); + { + unsigned char c2 = s[1]; + if (c2 == 0x62 || c2 == 0x64 || c2 == 0xa3 || c2 == 0xa5) { + /* It's a composed character. */ + ucs4_t wc1 = ((c2 >> 3) << 2) + 0x009a; /* = 0x00ca or 0x00ea */ + ucs4_t wc2 = ((c2 & 6) << 2) + 0x02fc; /* = 0x0304 or 0x030c */ + /* We cannot output two Unicode characters at once. So, + output the first character and buffer the second one. */ + *pwc = wc1; + conv->istate = wc2; + return 2; + } + } + } + return RET_ILSEQ; + } +} + +#define big5hkscs1999_flushwc normal_flushwc + +static int +big5hkscs1999_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + int count = 0; + unsigned char last = conv->ostate; + + if (last) { + /* last is = 0x66 or = 0xa7. */ + if (wc == 0x0304 || wc == 0x030c) { + /* Output the combined character. */ + if (n >= 2) { + r[0] = 0x88; + r[1] = last + ((wc & 24) >> 2) - 4; /* = 0x62 or 0x64 or 0xa3 or 0xa5 */ + conv->ostate = 0; + return 2; + } else + return RET_TOOSMALL; + } + + /* Output the buffered character. */ + if (n < 2) + return RET_TOOSMALL; + r[0] = 0x88; + r[1] = last; + r += 2; + count = 2; + } + + /* Code set 0 (ASCII) */ + if (wc < 0x0080) { + /* Plain ASCII character. */ + if (n > count) { + r[0] = (unsigned char) wc; + conv->ostate = 0; + return count+1; + } else + return RET_TOOSMALL; + } else { + unsigned char buf[2]; + int ret; + + /* Code set 1 (BIG5 extended) */ + ret = big5_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (!((buf[0] == 0xc6 && buf[1] >= 0xa1) || buf[0] == 0xc7)) { + if (n >= count+2) { + r[0] = buf[0]; + r[1] = buf[1]; + conv->ostate = 0; + return count+2; + } else + return RET_TOOSMALL; + } + } + ret = hkscs1999_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if ((wc & ~0x0020) == 0x00ca) { + /* A possible first character of a multi-character sequence. We have to + buffer it. */ + if (!(buf[0] == 0x88 && (buf[1] == 0x66 || buf[1] == 0xa7))) abort(); + conv->ostate = buf[1]; /* = 0x66 or = 0xa7 */ + return count+0; + } + if (n >= count+2) { + r[0] = buf[0]; + r[1] = buf[1]; + conv->ostate = 0; + return count+2; + } else + return RET_TOOSMALL; + } + return RET_ILUNI; + } +} + +static int +big5hkscs1999_reset (conv_t conv, unsigned char *r, int n) +{ + unsigned char last = conv->ostate; + + if (last) { + if (n < 2) + return RET_TOOSMALL; + r[0] = 0x88; + r[1] = last; + /* conv->ostate = 0; will be done by the caller */ + return 2; + } else + return 0; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/big5hkscs2001.h b/graf2d/win32gdk/gdk/src/iconv/big5hkscs2001.h new file mode 100644 index 00000000000..2d378c48066 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/big5hkscs2001.h @@ -0,0 +1,215 @@ +/* + * Copyright (C) 1999-2002, 2006 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * BIG5-HKSCS:2001 + */ + +/* + * BIG5-HKSCS:2001 can be downloaded from + * http://www.info.gov.hk/digital21/eng/hkscs/download.html + * http://www.info.gov.hk/digital21/eng/hkscs/index.html + * + * It extends BIG5-HKSCS:1999 through 116 characters. + * + * It extends BIG5 (without the rows 0xC6..0xC7) through the ranges + * + * 0x{88..8D}{40..7E,A1..FE} 757 characters + * 0x{8E..A0}{40..7E,A1..FE} 2898 characters + * 0x{C6..C8}{40..7E,A1..FE} 359 characters + * 0xF9{D6..FE} 41 characters + * 0x{FA..FE}{40..7E,A1..FE} 763 characters + * + * Note that some HKSCS characters are not contained in Unicode 3.2 + * and are therefore best represented as sequences of Unicode characters: + * 0x8862 U+00CA U+0304 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND MACRON + * 0x8864 U+00CA U+030C LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND CARON + * 0x88A3 U+00EA U+0304 LATIN SMALL LETTER E WITH CIRCUMFLEX AND MACRON + * 0x88A5 U+00EA U+030C LATIN SMALL LETTER E WITH CIRCUMFLEX AND CARON + */ + +#include "hkscs2001.h" +#include "flushwc.h" + +static int +big5hkscs2001_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + ucs4_t last_wc = conv->istate; + if (last_wc) { + /* Output the buffered character. */ + conv->istate = 0; + *pwc = last_wc; + return 0; /* Don't advance the input pointer. */ + } else { + unsigned char c = *s; + /* Code set 0 (ASCII) */ + if (c < 0x80) + return ascii_mbtowc(conv,pwc,s,n); + /* Code set 1 (BIG5 extended) */ + if (c >= 0xa1 && c < 0xff) { + if (n < 2) + return RET_TOOFEW(0); + { + unsigned char c2 = s[1]; + if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) { + if (!((c == 0xc6 && c2 >= 0xa1) || c == 0xc7)) { + int ret = big5_mbtowc(conv,pwc,s,2); + if (ret != RET_ILSEQ) + return ret; + } + } + } + } + { + int ret = hkscs1999_mbtowc(conv,pwc,s,n); + if (ret != RET_ILSEQ) + return ret; + } + { + int ret = hkscs2001_mbtowc(conv,pwc,s,n); + if (ret != RET_ILSEQ) + return ret; + } + if (c == 0x88) { + if (n < 2) + return RET_TOOFEW(0); + { + unsigned char c2 = s[1]; + if (c2 == 0x62 || c2 == 0x64 || c2 == 0xa3 || c2 == 0xa5) { + /* It's a composed character. */ + ucs4_t wc1 = ((c2 >> 3) << 2) + 0x009a; /* = 0x00ca or 0x00ea */ + ucs4_t wc2 = ((c2 & 6) << 2) + 0x02fc; /* = 0x0304 or 0x030c */ + /* We cannot output two Unicode characters at once. So, + output the first character and buffer the second one. */ + *pwc = wc1; + conv->istate = wc2; + return 2; + } + } + } + return RET_ILSEQ; + } +} + +#define big5hkscs2001_flushwc normal_flushwc + +static int +big5hkscs2001_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + int count = 0; + unsigned char last = conv->ostate; + + if (last) { + /* last is = 0x66 or = 0xa7. */ + if (wc == 0x0304 || wc == 0x030c) { + /* Output the combined character. */ + if (n >= 2) { + r[0] = 0x88; + r[1] = last + ((wc & 24) >> 2) - 4; /* = 0x62 or 0x64 or 0xa3 or 0xa5 */ + conv->ostate = 0; + return 2; + } else + return RET_TOOSMALL; + } + + /* Output the buffered character. */ + if (n < 2) + return RET_TOOSMALL; + r[0] = 0x88; + r[1] = last; + r += 2; + count = 2; + } + + /* Code set 0 (ASCII) */ + if (wc < 0x0080) { + /* Plain ASCII character. */ + if (n > count) { + r[0] = (unsigned char) wc; + conv->ostate = 0; + return count+1; + } else + return RET_TOOSMALL; + } else { + unsigned char buf[2]; + int ret; + + /* Code set 1 (BIG5 extended) */ + ret = big5_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (!((buf[0] == 0xc6 && buf[1] >= 0xa1) || buf[0] == 0xc7)) { + if (n >= count+2) { + r[0] = buf[0]; + r[1] = buf[1]; + conv->ostate = 0; + return count+2; + } else + return RET_TOOSMALL; + } + } + ret = hkscs1999_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if ((wc & ~0x0020) == 0x00ca) { + /* A possible first character of a multi-character sequence. We have to + buffer it. */ + if (!(buf[0] == 0x88 && (buf[1] == 0x66 || buf[1] == 0xa7))) abort(); + conv->ostate = buf[1]; /* = 0x66 or = 0xa7 */ + return count+0; + } + if (n >= count+2) { + r[0] = buf[0]; + r[1] = buf[1]; + conv->ostate = 0; + return count+2; + } else + return RET_TOOSMALL; + } + ret = hkscs2001_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (n >= count+2) { + r[0] = buf[0]; + r[1] = buf[1]; + conv->ostate = 0; + return count+2; + } else + return RET_TOOSMALL; + } + return RET_ILUNI; + } +} + +static int +big5hkscs2001_reset (conv_t conv, unsigned char *r, int n) +{ + unsigned char last = conv->ostate; + + if (last) { + if (n < 2) + return RET_TOOSMALL; + r[0] = 0x88; + r[1] = last; + /* conv->ostate = 0; will be done by the caller */ + return 2; + } else + return 0; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/big5hkscs2004.h b/graf2d/win32gdk/gdk/src/iconv/big5hkscs2004.h new file mode 100644 index 00000000000..3c57f66b18d --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/big5hkscs2004.h @@ -0,0 +1,231 @@ +/* + * Copyright (C) 1999-2002, 2006 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * BIG5-HKSCS:2004 + */ + +/* + * BIG5-HKSCS:2004 can be downloaded from + * http://www.info.gov.hk/digital21/eng/hkscs/download.html + * http://www.info.gov.hk/digital21/eng/hkscs/index.html + * + * It extends BIG5-HKSCS:2001 through 123 characters. + * + * It extends BIG5 (without the rows 0xC6..0xC7) through the ranges + * + * 0x{87..8D}{40..7E,A1..FE} 880 characters + * 0x{8E..A0}{40..7E,A1..FE} 2898 characters + * 0x{C6..C8}{40..7E,A1..FE} 359 characters + * 0xF9{D6..FE} 41 characters + * 0x{FA..FE}{40..7E,A1..FE} 763 characters + * + * Note that some HKSCS characters are not contained in Unicode 3.2 + * and are therefore best represented as sequences of Unicode characters: + * 0x8862 U+00CA U+0304 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND MACRON + * 0x8864 U+00CA U+030C LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND CARON + * 0x88A3 U+00EA U+0304 LATIN SMALL LETTER E WITH CIRCUMFLEX AND MACRON + * 0x88A5 U+00EA U+030C LATIN SMALL LETTER E WITH CIRCUMFLEX AND CARON + */ + +#include "hkscs2004.h" +#include "flushwc.h" + +static int +big5hkscs2004_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + ucs4_t last_wc = conv->istate; + if (last_wc) { + /* Output the buffered character. */ + conv->istate = 0; + *pwc = last_wc; + return 0; /* Don't advance the input pointer. */ + } else { + unsigned char c = *s; + /* Code set 0 (ASCII) */ + if (c < 0x80) + return ascii_mbtowc(conv,pwc,s,n); + /* Code set 1 (BIG5 extended) */ + if (c >= 0xa1 && c < 0xff) { + if (n < 2) + return RET_TOOFEW(0); + { + unsigned char c2 = s[1]; + if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) { + if (!((c == 0xc6 && c2 >= 0xa1) || c == 0xc7)) { + int ret = big5_mbtowc(conv,pwc,s,2); + if (ret != RET_ILSEQ) + return ret; + } + } + } + } + { + int ret = hkscs1999_mbtowc(conv,pwc,s,n); + if (ret != RET_ILSEQ) + return ret; + } + { + int ret = hkscs2001_mbtowc(conv,pwc,s,n); + if (ret != RET_ILSEQ) + return ret; + } + { + int ret = hkscs2004_mbtowc(conv,pwc,s,n); + if (ret != RET_ILSEQ) + return ret; + } + if (c == 0x88) { + if (n < 2) + return RET_TOOFEW(0); + { + unsigned char c2 = s[1]; + if (c2 == 0x62 || c2 == 0x64 || c2 == 0xa3 || c2 == 0xa5) { + /* It's a composed character. */ + ucs4_t wc1 = ((c2 >> 3) << 2) + 0x009a; /* = 0x00ca or 0x00ea */ + ucs4_t wc2 = ((c2 & 6) << 2) + 0x02fc; /* = 0x0304 or 0x030c */ + /* We cannot output two Unicode characters at once. So, + output the first character and buffer the second one. */ + *pwc = wc1; + conv->istate = wc2; + return 2; + } + } + } + return RET_ILSEQ; + } +} + +#define big5hkscs2004_flushwc normal_flushwc + +static int +big5hkscs2004_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + int count = 0; + unsigned char last = conv->ostate; + + if (last) { + /* last is = 0x66 or = 0xa7. */ + if (wc == 0x0304 || wc == 0x030c) { + /* Output the combined character. */ + if (n >= 2) { + r[0] = 0x88; + r[1] = last + ((wc & 24) >> 2) - 4; /* = 0x62 or 0x64 or 0xa3 or 0xa5 */ + conv->ostate = 0; + return 2; + } else + return RET_TOOSMALL; + } + + /* Output the buffered character. */ + if (n < 2) + return RET_TOOSMALL; + r[0] = 0x88; + r[1] = last; + r += 2; + count = 2; + } + + /* Code set 0 (ASCII) */ + if (wc < 0x0080) { + /* Plain ASCII character. */ + if (n > count) { + r[0] = (unsigned char) wc; + conv->ostate = 0; + return count+1; + } else + return RET_TOOSMALL; + } else { + unsigned char buf[2]; + int ret; + + /* Code set 1 (BIG5 extended) */ + ret = big5_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (!((buf[0] == 0xc6 && buf[1] >= 0xa1) || buf[0] == 0xc7)) { + if (n >= count+2) { + r[0] = buf[0]; + r[1] = buf[1]; + conv->ostate = 0; + return count+2; + } else + return RET_TOOSMALL; + } + } + ret = hkscs1999_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if ((wc & ~0x0020) == 0x00ca) { + /* A possible first character of a multi-character sequence. We have to + buffer it. */ + if (!(buf[0] == 0x88 && (buf[1] == 0x66 || buf[1] == 0xa7))) abort(); + conv->ostate = buf[1]; /* = 0x66 or = 0xa7 */ + return count+0; + } + if (n >= count+2) { + r[0] = buf[0]; + r[1] = buf[1]; + conv->ostate = 0; + return count+2; + } else + return RET_TOOSMALL; + } + ret = hkscs2001_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (n >= count+2) { + r[0] = buf[0]; + r[1] = buf[1]; + conv->ostate = 0; + return count+2; + } else + return RET_TOOSMALL; + } + ret = hkscs2004_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (n >= count+2) { + r[0] = buf[0]; + r[1] = buf[1]; + conv->ostate = 0; + return count+2; + } else + return RET_TOOSMALL; + } + return RET_ILUNI; + } +} + +static int +big5hkscs2004_reset (conv_t conv, unsigned char *r, int n) +{ + unsigned char last = conv->ostate; + + if (last) { + if (n < 2) + return RET_TOOSMALL; + r[0] = 0x88; + r[1] = last; + /* conv->ostate = 0; will be done by the caller */ + return 2; + } else + return 0; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/c99.h b/graf2d/win32gdk/gdk/src/iconv/c99.h new file mode 100644 index 00000000000..52a73c354da --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/c99.h @@ -0,0 +1,125 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * C99 + * This is ASCII with \uXXXX and \UXXXXXXXX escape sequences, denoting Unicode + * characters. See ISO/IEC 9899:1999, section 6.4.3. + * The treatment of control characters in the range U+0080..U+009F is not + * specified; we pass them through unmodified. + */ + +static int +c99_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c; + ucs4_t wc; + int i; + + c = s[0]; + if (c < 0xa0) { + if (c != '\\') { + *pwc = c; + return 1; + } + if (n < 2) + return RET_TOOFEW(0); + c = s[1]; + if (c == 'u') { + wc = 0; + for (i = 2; i < 6; i++) { + if (n <= i) + return RET_TOOFEW(0); + c = s[i]; + if (c >= '0' && c <= '9') + c -= '0'; + else if (c >= 'A' && c <= 'Z') + c -= 'A'-10; + else if (c >= 'a' && c <= 'z') + c -= 'a'-10; + else + goto simply_backslash; + wc |= (ucs4_t) c << (4 * (5-i)); + } + if ((wc >= 0x00a0 && !(wc >= 0xd800 && wc < 0xe000)) + || wc == 0x0024 || wc == 0x0040 || wc == 0x0060) { + *pwc = wc; + return 6; + } + } else if (c == 'U') { + wc = 0; + for (i = 2; i < 10; i++) { + if (n <= i) + return RET_TOOFEW(0); + c = s[i]; + if (c >= '0' && c <= '9') + c -= '0'; + else if (c >= 'A' && c <= 'Z') + c -= 'A'-10; + else if (c >= 'a' && c <= 'z') + c -= 'a'-10; + else + goto simply_backslash; + wc |= (ucs4_t) c << (4 * (9-i)); + } + if ((wc >= 0x00a0 && !(wc >= 0xd800 && wc < 0xe000)) + || wc == 0x0024 || wc == 0x0040 || wc == 0x0060) { + *pwc = wc; + return 10; + } + } else + goto simply_backslash; + } + return RET_ILSEQ; +simply_backslash: + *pwc = '\\'; + return 1; +} + +static int +c99_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (wc < 0xa0) { + *r = wc; + return 1; + } else { + int result; + unsigned char u; + if (wc < 0x10000) { + result = 6; + u = 'u'; + } else { + result = 10; + u = 'U'; + } + if (n >= result) { + int count; + r[0] = '\\'; + r[1] = u; + r += 2; + for (count = result-3; count >= 0; count--) { + unsigned int i = (wc >> (4*count)) & 0x0f; + *r++ = (i < 10 ? '0'+i : 'a'-10+i); + } + return result; + } else + return RET_TOOSMALL; + } +} diff --git a/graf2d/win32gdk/gdk/src/iconv/canonical.h b/graf2d/win32gdk/gdk/src/iconv/canonical.h new file mode 100644 index 00000000000..136cf7556d2 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/canonical.h @@ -0,0 +1,109 @@ + (int)(long)&((struct stringpool_t *)0)->stringpool_str287, + (int)(long)&((struct stringpool_t *)0)->stringpool_str255, + (int)(long)&((struct stringpool_t *)0)->stringpool_str179, + (int)(long)&((struct stringpool_t *)0)->stringpool_str367, + (int)(long)&((struct stringpool_t *)0)->stringpool_str283, + (int)(long)&((struct stringpool_t *)0)->stringpool_str263, + (int)(long)&((struct stringpool_t *)0)->stringpool_str409, + (int)(long)&((struct stringpool_t *)0)->stringpool_str325, + (int)(long)&((struct stringpool_t *)0)->stringpool_str242, + (int)(long)&((struct stringpool_t *)0)->stringpool_str434, + (int)(long)&((struct stringpool_t *)0)->stringpool_str350, + (int)(long)&((struct stringpool_t *)0)->stringpool_str252, + (int)(long)&((struct stringpool_t *)0)->stringpool_str440, + (int)(long)&((struct stringpool_t *)0)->stringpool_str356, + (int)(long)&((struct stringpool_t *)0)->stringpool_str575, + (int)(long)&((struct stringpool_t *)0)->stringpool_str406, + (int)(long)&((struct stringpool_t *)0)->stringpool_str723, + (int)(long)&((struct stringpool_t *)0)->stringpool_str448, + (int)(long)&((struct stringpool_t *)0)->stringpool_str765, + (int)(long)&((struct stringpool_t *)0)->stringpool_str30, + (int)(long)&((struct stringpool_t *)0)->stringpool_str600, + (int)(long)&((struct stringpool_t *)0)->stringpool_str74, + (int)(long)&((struct stringpool_t *)0)->stringpool_str84, + (int)(long)&((struct stringpool_t *)0)->stringpool_str78, + (int)(long)&((struct stringpool_t *)0)->stringpool_str168, + (int)(long)&((struct stringpool_t *)0)->stringpool_str82, + (int)(long)&((struct stringpool_t *)0)->stringpool_str76, + (int)(long)&((struct stringpool_t *)0)->stringpool_str410, + (int)(long)&((struct stringpool_t *)0)->stringpool_str90, + (int)(long)&((struct stringpool_t *)0)->stringpool_str98, + (int)(long)&((struct stringpool_t *)0)->stringpool_str221, + (int)(long)&((struct stringpool_t *)0)->stringpool_str75, + (int)(long)&((struct stringpool_t *)0)->stringpool_str79, + (int)(long)&((struct stringpool_t *)0)->stringpool_str169, + (int)(long)&((struct stringpool_t *)0)->stringpool_str83, + (int)(long)&((struct stringpool_t *)0)->stringpool_str77, + (int)(long)&((struct stringpool_t *)0)->stringpool_str261, + (int)(long)&((struct stringpool_t *)0)->stringpool_str403, + (int)(long)&((struct stringpool_t *)0)->stringpool_str480, + (int)(long)&((struct stringpool_t *)0)->stringpool_str164, + (int)(long)&((struct stringpool_t *)0)->stringpool_str18, + (int)(long)&((struct stringpool_t *)0)->stringpool_str28, + (int)(long)&((struct stringpool_t *)0)->stringpool_str22, + (int)(long)&((struct stringpool_t *)0)->stringpool_str112, + (int)(long)&((struct stringpool_t *)0)->stringpool_str26, + (int)(long)&((struct stringpool_t *)0)->stringpool_str20, + (int)(long)&((struct stringpool_t *)0)->stringpool_str354, + (int)(long)&((struct stringpool_t *)0)->stringpool_str34, + (int)(long)&((struct stringpool_t *)0)->stringpool_str166, + (int)(long)&((struct stringpool_t *)0)->stringpool_str27, + (int)(long)&((struct stringpool_t *)0)->stringpool_str19, + (int)(long)&((struct stringpool_t *)0)->stringpool_str11, + (int)(long)&((struct stringpool_t *)0)->stringpool_str451, + (int)(long)&((struct stringpool_t *)0)->stringpool_str531, + (int)(long)&((struct stringpool_t *)0)->stringpool_str355, + (int)(long)&((struct stringpool_t *)0)->stringpool_str501, + (int)(long)&((struct stringpool_t *)0)->stringpool_str673, + (int)(long)&((struct stringpool_t *)0)->stringpool_str302, + (int)(long)&((struct stringpool_t *)0)->stringpool_str621, + (int)(long)&((struct stringpool_t *)0)->stringpool_str577, + (int)(long)&((struct stringpool_t *)0)->stringpool_str786, + (int)(long)&((struct stringpool_t *)0)->stringpool_str908, + (int)(long)&((struct stringpool_t *)0)->stringpool_str563, + (int)(long)&((struct stringpool_t *)0)->stringpool_str445, + (int)(long)&((struct stringpool_t *)0)->stringpool_str502, + (int)(long)&((struct stringpool_t *)0)->stringpool_str475, + (int)(long)&((struct stringpool_t *)0)->stringpool_str279, + (int)(long)&((struct stringpool_t *)0)->stringpool_str626, + (int)(long)&((struct stringpool_t *)0)->stringpool_str614, + (int)(long)&((struct stringpool_t *)0)->stringpool_str217, + (int)(long)&((struct stringpool_t *)0)->stringpool_str212, + (int)(long)&((struct stringpool_t *)0)->stringpool_str218, + (int)(long)&((struct stringpool_t *)0)->stringpool_str371, + (int)(long)&((struct stringpool_t *)0)->stringpool_str15, + (int)(long)&((struct stringpool_t *)0)->stringpool_str230, + (int)(long)&((struct stringpool_t *)0)->stringpool_str278, + (int)(long)&((struct stringpool_t *)0)->stringpool_str124, + (int)(long)&((struct stringpool_t *)0)->stringpool_str180, + (int)(long)&((struct stringpool_t *)0)->stringpool_str413, + (int)(long)&((struct stringpool_t *)0)->stringpool_str555, + (int)(long)&((struct stringpool_t *)0)->stringpool_str571, + (int)(long)&((struct stringpool_t *)0)->stringpool_str492, + (int)(long)&((struct stringpool_t *)0)->stringpool_str384, + (int)(long)&((struct stringpool_t *)0)->stringpool_str368, + (int)(long)&((struct stringpool_t *)0)->stringpool_str127, + (int)(long)&((struct stringpool_t *)0)->stringpool_str202, + (int)(long)&((struct stringpool_t *)0)->stringpool_str535, + (int)(long)&((struct stringpool_t *)0)->stringpool_str429, + (int)(long)&((struct stringpool_t *)0)->stringpool_str32, + (int)(long)&((struct stringpool_t *)0)->stringpool_str607, + (int)(long)&((struct stringpool_t *)0)->stringpool_str500, + (int)(long)&((struct stringpool_t *)0)->stringpool_str505, + (int)(long)&((struct stringpool_t *)0)->stringpool_str70, + (int)(long)&((struct stringpool_t *)0)->stringpool_str303, + (int)(long)&((struct stringpool_t *)0)->stringpool_str24, + (int)(long)&((struct stringpool_t *)0)->stringpool_str378, + (int)(long)&((struct stringpool_t *)0)->stringpool_str142, + (int)(long)&((struct stringpool_t *)0)->stringpool_str196, + (int)(long)&((struct stringpool_t *)0)->stringpool_str159, + (int)(long)&((struct stringpool_t *)0)->stringpool_str473, + (int)(long)&((struct stringpool_t *)0)->stringpool_str277, + (int)(long)&((struct stringpool_t *)0)->stringpool_str170, + (int)(long)&((struct stringpool_t *)0)->stringpool_str900, + (int)(long)&((struct stringpool_t *)0)->stringpool_str888, + (int)(long)&((struct stringpool_t *)0)->stringpool_str527, + (int)(long)&((struct stringpool_t *)0)->stringpool_str290, + (int)(long)&((struct stringpool_t *)0)->stringpool_str91, + (int)(long)&((struct stringpool_t *)0)->stringpool_str768, + (int)(long)&((struct stringpool_t *)0)->stringpool_str362, diff --git a/graf2d/win32gdk/gdk/src/iconv/canonical_aix.h b/graf2d/win32gdk/gdk/src/iconv/canonical_aix.h new file mode 100644 index 00000000000..6149bc1bf5a --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/canonical_aix.h @@ -0,0 +1,9 @@ + (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_0, + (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_1, + (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_2, + (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_3, + (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_4, + (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_5, + (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_6, + (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_10, + (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_14, diff --git a/graf2d/win32gdk/gdk/src/iconv/canonical_aix_sysaix.h b/graf2d/win32gdk/gdk/src/iconv/canonical_aix_sysaix.h new file mode 100644 index 00000000000..8b58d1fa8c9 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/canonical_aix_sysaix.h @@ -0,0 +1,9 @@ + (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_0, + (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_2, + (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_4, + (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_6, + (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_8, + (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_10, + (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_12, + (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_16, + (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_20, diff --git a/graf2d/win32gdk/gdk/src/iconv/canonical_dos.h b/graf2d/win32gdk/gdk/src/iconv/canonical_dos.h new file mode 100644 index 00000000000..aa82651cd4a --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/canonical_dos.h @@ -0,0 +1,15 @@ + (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_0, + (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_4, + (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_5, + (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_8, + (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_12, + (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_13, + (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_17, + (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_21, + (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_22, + (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_26, + (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_31, + (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_35, + (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_38, + (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_42, + (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_47, diff --git a/graf2d/win32gdk/gdk/src/iconv/canonical_extra.h b/graf2d/win32gdk/gdk/src/iconv/canonical_extra.h new file mode 100644 index 00000000000..29678a084ec --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/canonical_extra.h @@ -0,0 +1,7 @@ + (int)(long)&((struct stringpool2_t *)0)->stringpool_extra_0, + (int)(long)&((struct stringpool2_t *)0)->stringpool_extra_2, + (int)(long)&((struct stringpool2_t *)0)->stringpool_extra_4, + (int)(long)&((struct stringpool2_t *)0)->stringpool_extra_6, + (int)(long)&((struct stringpool2_t *)0)->stringpool_extra_7, + (int)(long)&((struct stringpool2_t *)0)->stringpool_extra_9, + (int)(long)&((struct stringpool2_t *)0)->stringpool_extra_11, diff --git a/graf2d/win32gdk/gdk/src/iconv/canonical_local.h b/graf2d/win32gdk/gdk/src/iconv/canonical_local.h new file mode 100644 index 00000000000..a2209a820c2 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/canonical_local.h @@ -0,0 +1,2 @@ + (int)(long)&((struct stringpool_t *)0)->stringpool_str271, + (int)(long)&((struct stringpool_t *)0)->stringpool_str664, diff --git a/graf2d/win32gdk/gdk/src/iconv/canonical_local_sysaix.h b/graf2d/win32gdk/gdk/src/iconv/canonical_local_sysaix.h new file mode 100644 index 00000000000..0d4b27ba570 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/canonical_local_sysaix.h @@ -0,0 +1,2 @@ + (int)(long)&((struct stringpool_t *)0)->stringpool_str307, + (int)(long)&((struct stringpool_t *)0)->stringpool_str543, diff --git a/graf2d/win32gdk/gdk/src/iconv/canonical_local_syshpux.h b/graf2d/win32gdk/gdk/src/iconv/canonical_local_syshpux.h new file mode 100644 index 00000000000..8e969231a6b --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/canonical_local_syshpux.h @@ -0,0 +1,2 @@ + (int)(long)&((struct stringpool_t *)0)->stringpool_str258, + (int)(long)&((struct stringpool_t *)0)->stringpool_str390, diff --git a/graf2d/win32gdk/gdk/src/iconv/canonical_local_sysosf1.h b/graf2d/win32gdk/gdk/src/iconv/canonical_local_sysosf1.h new file mode 100644 index 00000000000..e1f886c0d9e --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/canonical_local_sysosf1.h @@ -0,0 +1,2 @@ + (int)(long)&((struct stringpool_t *)0)->stringpool_str275, + (int)(long)&((struct stringpool_t *)0)->stringpool_str465, diff --git a/graf2d/win32gdk/gdk/src/iconv/canonical_local_syssolaris.h b/graf2d/win32gdk/gdk/src/iconv/canonical_local_syssolaris.h new file mode 100644 index 00000000000..ce73d70655d --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/canonical_local_syssolaris.h @@ -0,0 +1,2 @@ + (int)(long)&((struct stringpool_t *)0)->stringpool_str38, + (int)(long)&((struct stringpool_t *)0)->stringpool_str515, diff --git a/graf2d/win32gdk/gdk/src/iconv/canonical_osf1.h b/graf2d/win32gdk/gdk/src/iconv/canonical_osf1.h new file mode 100644 index 00000000000..0e134ac3174 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/canonical_osf1.h @@ -0,0 +1,2 @@ + (int)(long)&((struct stringpool2_t *)0)->stringpool_osf1_0, + (int)(long)&((struct stringpool2_t *)0)->stringpool_osf1_1, diff --git a/graf2d/win32gdk/gdk/src/iconv/canonical_osf1_sysosf1.h b/graf2d/win32gdk/gdk/src/iconv/canonical_osf1_sysosf1.h new file mode 100644 index 00000000000..15c27690892 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/canonical_osf1_sysosf1.h @@ -0,0 +1,2 @@ + (int)(long)&((struct stringpool2_t *)0)->stringpool_osf1_0, + (int)(long)&((struct stringpool2_t *)0)->stringpool_osf1_2, diff --git a/graf2d/win32gdk/gdk/src/iconv/canonical_sysaix.h b/graf2d/win32gdk/gdk/src/iconv/canonical_sysaix.h new file mode 100644 index 00000000000..73f0e5d3091 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/canonical_sysaix.h @@ -0,0 +1,109 @@ + (int)(long)&((struct stringpool_t *)0)->stringpool_str383, + (int)(long)&((struct stringpool_t *)0)->stringpool_str363, + (int)(long)&((struct stringpool_t *)0)->stringpool_str231, + (int)(long)&((struct stringpool_t *)0)->stringpool_str604, + (int)(long)&((struct stringpool_t *)0)->stringpool_str483, + (int)(long)&((struct stringpool_t *)0)->stringpool_str327, + (int)(long)&((struct stringpool_t *)0)->stringpool_str652, + (int)(long)&((struct stringpool_t *)0)->stringpool_str531, + (int)(long)&((struct stringpool_t *)0)->stringpool_str358, + (int)(long)&((struct stringpool_t *)0)->stringpool_str733, + (int)(long)&((struct stringpool_t *)0)->stringpool_str612, + (int)(long)&((struct stringpool_t *)0)->stringpool_str364, + (int)(long)&((struct stringpool_t *)0)->stringpool_str737, + (int)(long)&((struct stringpool_t *)0)->stringpool_str616, + (int)(long)&((struct stringpool_t *)0)->stringpool_str685, + (int)(long)&((struct stringpool_t *)0)->stringpool_str501, + (int)(long)&((struct stringpool_t *)0)->stringpool_str654, + (int)(long)&((struct stringpool_t *)0)->stringpool_str549, + (int)(long)&((struct stringpool_t *)0)->stringpool_str702, + (int)(long)&((struct stringpool_t *)0)->stringpool_str53, + (int)(long)&((struct stringpool_t *)0)->stringpool_str891, + (int)(long)&((struct stringpool_t *)0)->stringpool_str103, + (int)(long)&((struct stringpool_t *)0)->stringpool_str109, + (int)(long)&((struct stringpool_t *)0)->stringpool_str107, + (int)(long)&((struct stringpool_t *)0)->stringpool_str205, + (int)(long)&((struct stringpool_t *)0)->stringpool_str111, + (int)(long)&((struct stringpool_t *)0)->stringpool_str105, + (int)(long)&((struct stringpool_t *)0)->stringpool_str437, + (int)(long)&((struct stringpool_t *)0)->stringpool_str115, + (int)(long)&((struct stringpool_t *)0)->stringpool_str141, + (int)(long)&((struct stringpool_t *)0)->stringpool_str246, + (int)(long)&((struct stringpool_t *)0)->stringpool_str108, + (int)(long)&((struct stringpool_t *)0)->stringpool_str112, + (int)(long)&((struct stringpool_t *)0)->stringpool_str210, + (int)(long)&((struct stringpool_t *)0)->stringpool_str116, + (int)(long)&((struct stringpool_t *)0)->stringpool_str110, + (int)(long)&((struct stringpool_t *)0)->stringpool_str254, + (int)(long)&((struct stringpool_t *)0)->stringpool_str492, + (int)(long)&((struct stringpool_t *)0)->stringpool_str569, + (int)(long)&((struct stringpool_t *)0)->stringpool_str175, + (int)(long)&((struct stringpool_t *)0)->stringpool_str37, + (int)(long)&((struct stringpool_t *)0)->stringpool_str43, + (int)(long)&((struct stringpool_t *)0)->stringpool_str41, + (int)(long)&((struct stringpool_t *)0)->stringpool_str139, + (int)(long)&((struct stringpool_t *)0)->stringpool_str45, + (int)(long)&((struct stringpool_t *)0)->stringpool_str39, + (int)(long)&((struct stringpool_t *)0)->stringpool_str371, + (int)(long)&((struct stringpool_t *)0)->stringpool_str49, + (int)(long)&((struct stringpool_t *)0)->stringpool_str173, + (int)(long)&((struct stringpool_t *)0)->stringpool_str38, + (int)(long)&((struct stringpool_t *)0)->stringpool_str34, + (int)(long)&((struct stringpool_t *)0)->stringpool_str32, + (int)(long)&((struct stringpool_t *)0)->stringpool_str525, + (int)(long)&((struct stringpool_t *)0)->stringpool_str797, + (int)(long)&((struct stringpool_t *)0)->stringpool_str462, + (int)(long)&((struct stringpool_t *)0)->stringpool_str583, + (int)(long)&((struct stringpool_t *)0)->stringpool_str807, + (int)(long)&((struct stringpool_t *)0)->stringpool_str272, + (int)(long)&((struct stringpool_t *)0)->stringpool_str898, + (int)(long)&((struct stringpool_t *)0)->stringpool_str606, + (int)(long)&((struct stringpool_t *)0)->stringpool_str662, + (int)(long)&((struct stringpool_t *)0)->stringpool_str989, + (int)(long)&((struct stringpool_t *)0)->stringpool_str648, + (int)(long)&((struct stringpool_t *)0)->stringpool_str391, + (int)(long)&((struct stringpool_t *)0)->stringpool_str487, + (int)(long)&((struct stringpool_t *)0)->stringpool_str413, + (int)(long)&((struct stringpool_t *)0)->stringpool_str330, + (int)(long)&((struct stringpool_t *)0)->stringpool_str461, + (int)(long)&((struct stringpool_t *)0)->stringpool_str335, + (int)(long)&((struct stringpool_t *)0)->stringpool_str152, + (int)(long)&((struct stringpool_t *)0)->stringpool_str171, + (int)(long)&((struct stringpool_t *)0)->stringpool_str234, + (int)(long)&((struct stringpool_t *)0)->stringpool_str445, + (int)(long)&((struct stringpool_t *)0)->stringpool_str36, + (int)(long)&((struct stringpool_t *)0)->stringpool_str207, + (int)(long)&((struct stringpool_t *)0)->stringpool_str300, + (int)(long)&((struct stringpool_t *)0)->stringpool_str217, + (int)(long)&((struct stringpool_t *)0)->stringpool_str256, + (int)(long)&((struct stringpool_t *)0)->stringpool_str567, + (int)(long)&((struct stringpool_t *)0)->stringpool_str723, + (int)(long)&((struct stringpool_t *)0)->stringpool_str735, + (int)(long)&((struct stringpool_t *)0)->stringpool_str660, + (int)(long)&((struct stringpool_t *)0)->stringpool_str258, + (int)(long)&((struct stringpool_t *)0)->stringpool_str235, + (int)(long)&((struct stringpool_t *)0)->stringpool_str149, + (int)(long)&((struct stringpool_t *)0)->stringpool_str202, + (int)(long)&((struct stringpool_t *)0)->stringpool_str638, + (int)(long)&((struct stringpool_t *)0)->stringpool_str613, + (int)(long)&((struct stringpool_t *)0)->stringpool_str52, + (int)(long)&((struct stringpool_t *)0)->stringpool_str629, + (int)(long)&((struct stringpool_t *)0)->stringpool_str591, + (int)(long)&((struct stringpool_t *)0)->stringpool_str594, + (int)(long)&((struct stringpool_t *)0)->stringpool_str188, + (int)(long)&((struct stringpool_t *)0)->stringpool_str146, + (int)(long)&((struct stringpool_t *)0)->stringpool_str48, + (int)(long)&((struct stringpool_t *)0)->stringpool_str251, + (int)(long)&((struct stringpool_t *)0)->stringpool_str179, + (int)(long)&((struct stringpool_t *)0)->stringpool_str190, + (int)(long)&((struct stringpool_t *)0)->stringpool_str92, + (int)(long)&((struct stringpool_t *)0)->stringpool_str495, + (int)(long)&((struct stringpool_t *)0)->stringpool_str153, + (int)(long)&((struct stringpool_t *)0)->stringpool_str186, + (int)(long)&((struct stringpool_t *)0)->stringpool_str603, + (int)(long)&((struct stringpool_t *)0)->stringpool_str584, + (int)(long)&((struct stringpool_t *)0)->stringpool_str324, + (int)(long)&((struct stringpool_t *)0)->stringpool_str369, + (int)(long)&((struct stringpool_t *)0)->stringpool_str133, + (int)(long)&((struct stringpool_t *)0)->stringpool_str885, + (int)(long)&((struct stringpool_t *)0)->stringpool_str360, diff --git a/graf2d/win32gdk/gdk/src/iconv/canonical_syshpux.h b/graf2d/win32gdk/gdk/src/iconv/canonical_syshpux.h new file mode 100644 index 00000000000..53ed782e316 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/canonical_syshpux.h @@ -0,0 +1,109 @@ + (int)(long)&((struct stringpool_t *)0)->stringpool_str310, + (int)(long)&((struct stringpool_t *)0)->stringpool_str368, + (int)(long)&((struct stringpool_t *)0)->stringpool_str293, + (int)(long)&((struct stringpool_t *)0)->stringpool_str464, + (int)(long)&((struct stringpool_t *)0)->stringpool_str525, + (int)(long)&((struct stringpool_t *)0)->stringpool_str395, + (int)(long)&((struct stringpool_t *)0)->stringpool_str515, + (int)(long)&((struct stringpool_t *)0)->stringpool_str576, + (int)(long)&((struct stringpool_t *)0)->stringpool_str355, + (int)(long)&((struct stringpool_t *)0)->stringpool_str521, + (int)(long)&((struct stringpool_t *)0)->stringpool_str582, + (int)(long)&((struct stringpool_t *)0)->stringpool_str363, + (int)(long)&((struct stringpool_t *)0)->stringpool_str534, + (int)(long)&((struct stringpool_t *)0)->stringpool_str595, + (int)(long)&((struct stringpool_t *)0)->stringpool_str440, + (int)(long)&((struct stringpool_t *)0)->stringpool_str665, + (int)(long)&((struct stringpool_t *)0)->stringpool_str644, + (int)(long)&((struct stringpool_t *)0)->stringpool_str716, + (int)(long)&((struct stringpool_t *)0)->stringpool_str695, + (int)(long)&((struct stringpool_t *)0)->stringpool_str36, + (int)(long)&((struct stringpool_t *)0)->stringpool_str596, + (int)(long)&((struct stringpool_t *)0)->stringpool_str64, + (int)(long)&((struct stringpool_t *)0)->stringpool_str60, + (int)(long)&((struct stringpool_t *)0)->stringpool_str100, + (int)(long)&((struct stringpool_t *)0)->stringpool_str162, + (int)(long)&((struct stringpool_t *)0)->stringpool_str76, + (int)(long)&((struct stringpool_t *)0)->stringpool_str70, + (int)(long)&((struct stringpool_t *)0)->stringpool_str158, + (int)(long)&((struct stringpool_t *)0)->stringpool_str86, + (int)(long)&((struct stringpool_t *)0)->stringpool_str92, + (int)(long)&((struct stringpool_t *)0)->stringpool_str177, + (int)(long)&((struct stringpool_t *)0)->stringpool_str67, + (int)(long)&((struct stringpool_t *)0)->stringpool_str103, + (int)(long)&((struct stringpool_t *)0)->stringpool_str165, + (int)(long)&((struct stringpool_t *)0)->stringpool_str79, + (int)(long)&((struct stringpool_t *)0)->stringpool_str73, + (int)(long)&((struct stringpool_t *)0)->stringpool_str345, + (int)(long)&((struct stringpool_t *)0)->stringpool_str669, + (int)(long)&((struct stringpool_t *)0)->stringpool_str790, + (int)(long)&((struct stringpool_t *)0)->stringpool_str131, + (int)(long)&((struct stringpool_t *)0)->stringpool_str21, + (int)(long)&((struct stringpool_t *)0)->stringpool_str17, + (int)(long)&((struct stringpool_t *)0)->stringpool_str57, + (int)(long)&((struct stringpool_t *)0)->stringpool_str119, + (int)(long)&((struct stringpool_t *)0)->stringpool_str33, + (int)(long)&((struct stringpool_t *)0)->stringpool_str27, + (int)(long)&((struct stringpool_t *)0)->stringpool_str115, + (int)(long)&((struct stringpool_t *)0)->stringpool_str43, + (int)(long)&((struct stringpool_t *)0)->stringpool_str141, + (int)(long)&((struct stringpool_t *)0)->stringpool_str24, + (int)(long)&((struct stringpool_t *)0)->stringpool_str34, + (int)(long)&((struct stringpool_t *)0)->stringpool_str35, + (int)(long)&((struct stringpool_t *)0)->stringpool_str448, + (int)(long)&((struct stringpool_t *)0)->stringpool_str561, + (int)(long)&((struct stringpool_t *)0)->stringpool_str410, + (int)(long)&((struct stringpool_t *)0)->stringpool_str335, + (int)(long)&((struct stringpool_t *)0)->stringpool_str470, + (int)(long)&((struct stringpool_t *)0)->stringpool_str704, + (int)(long)&((struct stringpool_t *)0)->stringpool_str685, + (int)(long)&((struct stringpool_t *)0)->stringpool_str607, + (int)(long)&((struct stringpool_t *)0)->stringpool_str689, + (int)(long)&((struct stringpool_t *)0)->stringpool_str800, + (int)(long)&((struct stringpool_t *)0)->stringpool_str454, + (int)(long)&((struct stringpool_t *)0)->stringpool_str195, + (int)(long)&((struct stringpool_t *)0)->stringpool_str331, + (int)(long)&((struct stringpool_t *)0)->stringpool_str484, + (int)(long)&((struct stringpool_t *)0)->stringpool_str202, + (int)(long)&((struct stringpool_t *)0)->stringpool_str449, + (int)(long)&((struct stringpool_t *)0)->stringpool_str513, + (int)(long)&((struct stringpool_t *)0)->stringpool_str139, + (int)(long)&((struct stringpool_t *)0)->stringpool_str190, + (int)(long)&((struct stringpool_t *)0)->stringpool_str262, + (int)(long)&((struct stringpool_t *)0)->stringpool_str603, + (int)(long)&((struct stringpool_t *)0)->stringpool_str71, + (int)(long)&((struct stringpool_t *)0)->stringpool_str149, + (int)(long)&((struct stringpool_t *)0)->stringpool_str170, + (int)(long)&((struct stringpool_t *)0)->stringpool_str251, + (int)(long)&((struct stringpool_t *)0)->stringpool_str271, + (int)(long)&((struct stringpool_t *)0)->stringpool_str450, + (int)(long)&((struct stringpool_t *)0)->stringpool_str769, + (int)(long)&((struct stringpool_t *)0)->stringpool_str791, + (int)(long)&((struct stringpool_t *)0)->stringpool_str710, + (int)(long)&((struct stringpool_t *)0)->stringpool_str354, + (int)(long)&((struct stringpool_t *)0)->stringpool_str332, + (int)(long)&((struct stringpool_t *)0)->stringpool_str153, + (int)(long)&((struct stringpool_t *)0)->stringpool_str203, + (int)(long)&((struct stringpool_t *)0)->stringpool_str491, + (int)(long)&((struct stringpool_t *)0)->stringpool_str461, + (int)(long)&((struct stringpool_t *)0)->stringpool_str42, + (int)(long)&((struct stringpool_t *)0)->stringpool_str542, + (int)(long)&((struct stringpool_t *)0)->stringpool_str473, + (int)(long)&((struct stringpool_t *)0)->stringpool_str471, + (int)(long)&((struct stringpool_t *)0)->stringpool_str30, + (int)(long)&((struct stringpool_t *)0)->stringpool_str314, + (int)(long)&((struct stringpool_t *)0)->stringpool_str52, + (int)(long)&((struct stringpool_t *)0)->stringpool_str352, + (int)(long)&((struct stringpool_t *)0)->stringpool_str81, + (int)(long)&((struct stringpool_t *)0)->stringpool_str96, + (int)(long)&((struct stringpool_t *)0)->stringpool_str12, + (int)(long)&((struct stringpool_t *)0)->stringpool_str378, + (int)(long)&((struct stringpool_t *)0)->stringpool_str308, + (int)(long)&((struct stringpool_t *)0)->stringpool_str144, + (int)(long)&((struct stringpool_t *)0)->stringpool_str771, + (int)(long)&((struct stringpool_t *)0)->stringpool_str757, + (int)(long)&((struct stringpool_t *)0)->stringpool_str421, + (int)(long)&((struct stringpool_t *)0)->stringpool_str343, + (int)(long)&((struct stringpool_t *)0)->stringpool_str105, + (int)(long)&((struct stringpool_t *)0)->stringpool_str654, + (int)(long)&((struct stringpool_t *)0)->stringpool_str394, diff --git a/graf2d/win32gdk/gdk/src/iconv/canonical_sysosf1.h b/graf2d/win32gdk/gdk/src/iconv/canonical_sysosf1.h new file mode 100644 index 00000000000..62f642e93e7 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/canonical_sysosf1.h @@ -0,0 +1,109 @@ + (int)(long)&((struct stringpool_t *)0)->stringpool_str343, + (int)(long)&((struct stringpool_t *)0)->stringpool_str268, + (int)(long)&((struct stringpool_t *)0)->stringpool_str223, + (int)(long)&((struct stringpool_t *)0)->stringpool_str591, + (int)(long)&((struct stringpool_t *)0)->stringpool_str433, + (int)(long)&((struct stringpool_t *)0)->stringpool_str319, + (int)(long)&((struct stringpool_t *)0)->stringpool_str639, + (int)(long)&((struct stringpool_t *)0)->stringpool_str481, + (int)(long)&((struct stringpool_t *)0)->stringpool_str263, + (int)(long)&((struct stringpool_t *)0)->stringpool_str633, + (int)(long)&((struct stringpool_t *)0)->stringpool_str475, + (int)(long)&((struct stringpool_t *)0)->stringpool_str269, + (int)(long)&((struct stringpool_t *)0)->stringpool_str637, + (int)(long)&((struct stringpool_t *)0)->stringpool_str479, + (int)(long)&((struct stringpool_t *)0)->stringpool_str560, + (int)(long)&((struct stringpool_t *)0)->stringpool_str472, + (int)(long)&((struct stringpool_t *)0)->stringpool_str695, + (int)(long)&((struct stringpool_t *)0)->stringpool_str520, + (int)(long)&((struct stringpool_t *)0)->stringpool_str743, + (int)(long)&((struct stringpool_t *)0)->stringpool_str53, + (int)(long)&((struct stringpool_t *)0)->stringpool_str711, + (int)(long)&((struct stringpool_t *)0)->stringpool_str103, + (int)(long)&((struct stringpool_t *)0)->stringpool_str109, + (int)(long)&((struct stringpool_t *)0)->stringpool_str107, + (int)(long)&((struct stringpool_t *)0)->stringpool_str205, + (int)(long)&((struct stringpool_t *)0)->stringpool_str111, + (int)(long)&((struct stringpool_t *)0)->stringpool_str105, + (int)(long)&((struct stringpool_t *)0)->stringpool_str407, + (int)(long)&((struct stringpool_t *)0)->stringpool_str115, + (int)(long)&((struct stringpool_t *)0)->stringpool_str141, + (int)(long)&((struct stringpool_t *)0)->stringpool_str246, + (int)(long)&((struct stringpool_t *)0)->stringpool_str108, + (int)(long)&((struct stringpool_t *)0)->stringpool_str112, + (int)(long)&((struct stringpool_t *)0)->stringpool_str210, + (int)(long)&((struct stringpool_t *)0)->stringpool_str116, + (int)(long)&((struct stringpool_t *)0)->stringpool_str110, + (int)(long)&((struct stringpool_t *)0)->stringpool_str280, + (int)(long)&((struct stringpool_t *)0)->stringpool_str410, + (int)(long)&((struct stringpool_t *)0)->stringpool_str487, + (int)(long)&((struct stringpool_t *)0)->stringpool_str175, + (int)(long)&((struct stringpool_t *)0)->stringpool_str37, + (int)(long)&((struct stringpool_t *)0)->stringpool_str43, + (int)(long)&((struct stringpool_t *)0)->stringpool_str41, + (int)(long)&((struct stringpool_t *)0)->stringpool_str139, + (int)(long)&((struct stringpool_t *)0)->stringpool_str45, + (int)(long)&((struct stringpool_t *)0)->stringpool_str39, + (int)(long)&((struct stringpool_t *)0)->stringpool_str341, + (int)(long)&((struct stringpool_t *)0)->stringpool_str49, + (int)(long)&((struct stringpool_t *)0)->stringpool_str173, + (int)(long)&((struct stringpool_t *)0)->stringpool_str38, + (int)(long)&((struct stringpool_t *)0)->stringpool_str34, + (int)(long)&((struct stringpool_t *)0)->stringpool_str32, + (int)(long)&((struct stringpool_t *)0)->stringpool_str543, + (int)(long)&((struct stringpool_t *)0)->stringpool_str727, + (int)(long)&((struct stringpool_t *)0)->stringpool_str428, + (int)(long)&((struct stringpool_t *)0)->stringpool_str544, + (int)(long)&((struct stringpool_t *)0)->stringpool_str761, + (int)(long)&((struct stringpool_t *)0)->stringpool_str281, + (int)(long)&((struct stringpool_t *)0)->stringpool_str821, + (int)(long)&((struct stringpool_t *)0)->stringpool_str649, + (int)(long)&((struct stringpool_t *)0)->stringpool_str661, + (int)(long)&((struct stringpool_t *)0)->stringpool_str939, + (int)(long)&((struct stringpool_t *)0)->stringpool_str646, + (int)(long)&((struct stringpool_t *)0)->stringpool_str362, + (int)(long)&((struct stringpool_t *)0)->stringpool_str458, + (int)(long)&((struct stringpool_t *)0)->stringpool_str500, + (int)(long)&((struct stringpool_t *)0)->stringpool_str369, + (int)(long)&((struct stringpool_t *)0)->stringpool_str397, + (int)(long)&((struct stringpool_t *)0)->stringpool_str442, + (int)(long)&((struct stringpool_t *)0)->stringpool_str178, + (int)(long)&((struct stringpool_t *)0)->stringpool_str202, + (int)(long)&((struct stringpool_t *)0)->stringpool_str234, + (int)(long)&((struct stringpool_t *)0)->stringpool_str417, + (int)(long)&((struct stringpool_t *)0)->stringpool_str36, + (int)(long)&((struct stringpool_t *)0)->stringpool_str253, + (int)(long)&((struct stringpool_t *)0)->stringpool_str285, + (int)(long)&((struct stringpool_t *)0)->stringpool_str245, + (int)(long)&((struct stringpool_t *)0)->stringpool_str238, + (int)(long)&((struct stringpool_t *)0)->stringpool_str515, + (int)(long)&((struct stringpool_t *)0)->stringpool_str671, + (int)(long)&((struct stringpool_t *)0)->stringpool_str683, + (int)(long)&((struct stringpool_t *)0)->stringpool_str608, + (int)(long)&((struct stringpool_t *)0)->stringpool_str266, + (int)(long)&((struct stringpool_t *)0)->stringpool_str243, + (int)(long)&((struct stringpool_t *)0)->stringpool_str149, + (int)(long)&((struct stringpool_t *)0)->stringpool_str228, + (int)(long)&((struct stringpool_t *)0)->stringpool_str581, + (int)(long)&((struct stringpool_t *)0)->stringpool_str612, + (int)(long)&((struct stringpool_t *)0)->stringpool_str52, + (int)(long)&((struct stringpool_t *)0)->stringpool_str593, + (int)(long)&((struct stringpool_t *)0)->stringpool_str524, + (int)(long)&((struct stringpool_t *)0)->stringpool_str527, + (int)(long)&((struct stringpool_t *)0)->stringpool_str167, + (int)(long)&((struct stringpool_t *)0)->stringpool_str206, + (int)(long)&((struct stringpool_t *)0)->stringpool_str48, + (int)(long)&((struct stringpool_t *)0)->stringpool_str259, + (int)(long)&((struct stringpool_t *)0)->stringpool_str179, + (int)(long)&((struct stringpool_t *)0)->stringpool_str190, + (int)(long)&((struct stringpool_t *)0)->stringpool_str60, + (int)(long)&((struct stringpool_t *)0)->stringpool_str426, + (int)(long)&((struct stringpool_t *)0)->stringpool_str198, + (int)(long)&((struct stringpool_t *)0)->stringpool_str186, + (int)(long)&((struct stringpool_t *)0)->stringpool_str843, + (int)(long)&((struct stringpool_t *)0)->stringpool_str824, + (int)(long)&((struct stringpool_t *)0)->stringpool_str511, + (int)(long)&((struct stringpool_t *)0)->stringpool_str374, + (int)(long)&((struct stringpool_t *)0)->stringpool_str133, + (int)(long)&((struct stringpool_t *)0)->stringpool_str807, + (int)(long)&((struct stringpool_t *)0)->stringpool_str386, diff --git a/graf2d/win32gdk/gdk/src/iconv/canonical_syssolaris.h b/graf2d/win32gdk/gdk/src/iconv/canonical_syssolaris.h new file mode 100644 index 00000000000..6e8c4abb7ea --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/canonical_syssolaris.h @@ -0,0 +1,109 @@ + (int)(long)&((struct stringpool_t *)0)->stringpool_str463, + (int)(long)&((struct stringpool_t *)0)->stringpool_str258, + (int)(long)&((struct stringpool_t *)0)->stringpool_str314, + (int)(long)&((struct stringpool_t *)0)->stringpool_str482, + (int)(long)&((struct stringpool_t *)0)->stringpool_str365, + (int)(long)&((struct stringpool_t *)0)->stringpool_str278, + (int)(long)&((struct stringpool_t *)0)->stringpool_str464, + (int)(long)&((struct stringpool_t *)0)->stringpool_str347, + (int)(long)&((struct stringpool_t *)0)->stringpool_str279, + (int)(long)&((struct stringpool_t *)0)->stringpool_str470, + (int)(long)&((struct stringpool_t *)0)->stringpool_str353, + (int)(long)&((struct stringpool_t *)0)->stringpool_str378, + (int)(long)&((struct stringpool_t *)0)->stringpool_str546, + (int)(long)&((struct stringpool_t *)0)->stringpool_str429, + (int)(long)&((struct stringpool_t *)0)->stringpool_str588, + (int)(long)&((struct stringpool_t *)0)->stringpool_str510, + (int)(long)&((struct stringpool_t *)0)->stringpool_str563, + (int)(long)&((struct stringpool_t *)0)->stringpool_str492, + (int)(long)&((struct stringpool_t *)0)->stringpool_str545, + (int)(long)&((struct stringpool_t *)0)->stringpool_str30, + (int)(long)&((struct stringpool_t *)0)->stringpool_str569, + (int)(long)&((struct stringpool_t *)0)->stringpool_str124, + (int)(long)&((struct stringpool_t *)0)->stringpool_str184, + (int)(long)&((struct stringpool_t *)0)->stringpool_str230, + (int)(long)&((struct stringpool_t *)0)->stringpool_str148, + (int)(long)&((struct stringpool_t *)0)->stringpool_str160, + (int)(long)&((struct stringpool_t *)0)->stringpool_str138, + (int)(long)&((struct stringpool_t *)0)->stringpool_str452, + (int)(long)&((struct stringpool_t *)0)->stringpool_str122, + (int)(long)&((struct stringpool_t *)0)->stringpool_str136, + (int)(long)&((struct stringpool_t *)0)->stringpool_str175, + (int)(long)&((struct stringpool_t *)0)->stringpool_str129, + (int)(long)&((struct stringpool_t *)0)->stringpool_str235, + (int)(long)&((struct stringpool_t *)0)->stringpool_str153, + (int)(long)&((struct stringpool_t *)0)->stringpool_str165, + (int)(long)&((struct stringpool_t *)0)->stringpool_str143, + (int)(long)&((struct stringpool_t *)0)->stringpool_str276, + (int)(long)&((struct stringpool_t *)0)->stringpool_str680, + (int)(long)&((struct stringpool_t *)0)->stringpool_str684, + (int)(long)&((struct stringpool_t *)0)->stringpool_str127, + (int)(long)&((struct stringpool_t *)0)->stringpool_str81, + (int)(long)&((struct stringpool_t *)0)->stringpool_str141, + (int)(long)&((struct stringpool_t *)0)->stringpool_str187, + (int)(long)&((struct stringpool_t *)0)->stringpool_str105, + (int)(long)&((struct stringpool_t *)0)->stringpool_str117, + (int)(long)&((struct stringpool_t *)0)->stringpool_str95, + (int)(long)&((struct stringpool_t *)0)->stringpool_str409, + (int)(long)&((struct stringpool_t *)0)->stringpool_str79, + (int)(long)&((struct stringpool_t *)0)->stringpool_str91, + (int)(long)&((struct stringpool_t *)0)->stringpool_str94, + (int)(long)&((struct stringpool_t *)0)->stringpool_str48, + (int)(long)&((struct stringpool_t *)0)->stringpool_str86, + (int)(long)&((struct stringpool_t *)0)->stringpool_str387, + (int)(long)&((struct stringpool_t *)0)->stringpool_str451, + (int)(long)&((struct stringpool_t *)0)->stringpool_str346, + (int)(long)&((struct stringpool_t *)0)->stringpool_str415, + (int)(long)&((struct stringpool_t *)0)->stringpool_str489, + (int)(long)&((struct stringpool_t *)0)->stringpool_str389, + (int)(long)&((struct stringpool_t *)0)->stringpool_str752, + (int)(long)&((struct stringpool_t *)0)->stringpool_str774, + (int)(long)&((struct stringpool_t *)0)->stringpool_str953, + (int)(long)&((struct stringpool_t *)0)->stringpool_str853, + (int)(long)&((struct stringpool_t *)0)->stringpool_str432, + (int)(long)&((struct stringpool_t *)0)->stringpool_str513, + (int)(long)&((struct stringpool_t *)0)->stringpool_str297, + (int)(long)&((struct stringpool_t *)0)->stringpool_str502, + (int)(long)&((struct stringpool_t *)0)->stringpool_str372, + (int)(long)&((struct stringpool_t *)0)->stringpool_str412, + (int)(long)&((struct stringpool_t *)0)->stringpool_str419, + (int)(long)&((struct stringpool_t *)0)->stringpool_str478, + (int)(long)&((struct stringpool_t *)0)->stringpool_str71, + (int)(long)&((struct stringpool_t *)0)->stringpool_str62, + (int)(long)&((struct stringpool_t *)0)->stringpool_str266, + (int)(long)&((struct stringpool_t *)0)->stringpool_str192, + (int)(long)&((struct stringpool_t *)0)->stringpool_str246, + (int)(long)&((struct stringpool_t *)0)->stringpool_str215, + (int)(long)&((struct stringpool_t *)0)->stringpool_str424, + (int)(long)&((struct stringpool_t *)0)->stringpool_str307, + (int)(long)&((struct stringpool_t *)0)->stringpool_str507, + (int)(long)&((struct stringpool_t *)0)->stringpool_str669, + (int)(long)&((struct stringpool_t *)0)->stringpool_str667, + (int)(long)&((struct stringpool_t *)0)->stringpool_str706, + (int)(long)&((struct stringpool_t *)0)->stringpool_str211, + (int)(long)&((struct stringpool_t *)0)->stringpool_str320, + (int)(long)&((struct stringpool_t *)0)->stringpool_str202, + (int)(long)&((struct stringpool_t *)0)->stringpool_str283, + (int)(long)&((struct stringpool_t *)0)->stringpool_str400, + (int)(long)&((struct stringpool_t *)0)->stringpool_str714, + (int)(long)&((struct stringpool_t *)0)->stringpool_str147, + (int)(long)&((struct stringpool_t *)0)->stringpool_str556, + (int)(long)&((struct stringpool_t *)0)->stringpool_str554, + (int)(long)&((struct stringpool_t *)0)->stringpool_str584, + (int)(long)&((struct stringpool_t *)0)->stringpool_str67, + (int)(long)&((struct stringpool_t *)0)->stringpool_str516, + (int)(long)&((struct stringpool_t *)0)->stringpool_str101, + (int)(long)&((struct stringpool_t *)0)->stringpool_str271, + (int)(long)&((struct stringpool_t *)0)->stringpool_str223, + (int)(long)&((struct stringpool_t *)0)->stringpool_str327, + (int)(long)&((struct stringpool_t *)0)->stringpool_str99, + (int)(long)&((struct stringpool_t *)0)->stringpool_str540, + (int)(long)&((struct stringpool_t *)0)->stringpool_str293, + (int)(long)&((struct stringpool_t *)0)->stringpool_str98, + (int)(long)&((struct stringpool_t *)0)->stringpool_str901, + (int)(long)&((struct stringpool_t *)0)->stringpool_str895, + (int)(long)&((struct stringpool_t *)0)->stringpool_str666, + (int)(long)&((struct stringpool_t *)0)->stringpool_str255, + (int)(long)&((struct stringpool_t *)0)->stringpool_str58, + (int)(long)&((struct stringpool_t *)0)->stringpool_str691, + (int)(long)&((struct stringpool_t *)0)->stringpool_str411, diff --git a/graf2d/win32gdk/gdk/src/iconv/ces_big5.h b/graf2d/win32gdk/gdk/src/iconv/ces_big5.h new file mode 100644 index 00000000000..2f87735bcd3 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/ces_big5.h @@ -0,0 +1,70 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * BIG-5 + */ + +static int +ces_big5_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + /* Code set 0 (ASCII) */ + if (c < 0x80) + return ascii_mbtowc(conv,pwc,s,n); + /* Code set 1 (BIG5) */ + if (c >= 0xa1 && c < 0xff) { + if (n < 2) + return RET_TOOFEW(0); + { + unsigned char c2 = s[1]; + if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) + return big5_mbtowc(conv,pwc,s,2); + else + return RET_ILSEQ; + } + } + return RET_ILSEQ; +} + +static int +ces_big5_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char buf[2]; + int ret; + + /* Code set 0 (ASCII) */ + ret = ascii_wctomb(conv,r,wc,n); + if (ret != RET_ILUNI) + return ret; + + /* Code set 1 (BIG5) */ + ret = big5_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (n < 2) + return RET_TOOSMALL; + r[0] = buf[0]; + r[1] = buf[1]; + return 2; + } + + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/ces_gbk.h b/graf2d/win32gdk/gdk/src/iconv/ces_gbk.h new file mode 100644 index 00000000000..69e61f7dc50 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/ces_gbk.h @@ -0,0 +1,65 @@ +/* + * Copyright (C) 1999-2001, 2005 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * GBK + */ + +static int +ces_gbk_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + + /* Code set 0 (ASCII or GB 1988-89) */ + if (c < 0x80) + return ascii_mbtowc(conv,pwc,s,n); + /* Code set 1 (GBK) */ + if (c >= 0x81 && c < 0xff) { + if (n < 2) + return RET_TOOFEW(0); + return gbk_mbtowc(conv,pwc,s,2); + } + return RET_ILSEQ; +} + +static int +ces_gbk_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char buf[2]; + int ret; + + /* Code set 0 (ASCII or GB 1988-89) */ + ret = ascii_wctomb(conv,r,wc,n); + if (ret != RET_ILUNI) + return ret; + + /* Code set 1 (GBK) */ + ret = gbk_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (n < 2) + return RET_TOOSMALL; + r[0] = buf[0]; + r[1] = buf[1]; + return 2; + } + + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cjk_variants.h b/graf2d/win32gdk/gdk/src/iconv/cjk_variants.h new file mode 100644 index 00000000000..23cb4b3263c --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cjk_variants.h @@ -0,0 +1,4241 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CJK variants table + */ + +static const unsigned short cjk_variants[12038] = { + 0x9e44, 0x1e2a, 0x200b, 0xcb87, 0xaf0c, 0x9e0a, 0x9e0b, 0xd42c, + 0x23c1, 0xaf0e, 0x9e04, 0x9e05, 0xa176, 0xd207, 0x2303, 0xa304, + 0x1e12, 0x619c, 0xeb57, 0x9e11, 0x2c02, 0xac08, 0x1e17, 0xa34b, + 0x1e16, 0xa34b, 0x1e20, 0xa775, 0xb96d, 0x23e2, 0x3a37, 0x3b09, + 0xd5c2, 0xb771, 0x4cf8, 0xcd72, 0x1e22, 0xa3be, 0x1e18, 0xa775, + 0x1e24, 0xa169, 0x1e1f, 0xa3be, 0xe149, 0x1e21, 0xa169, 0x23b3, + 0xa6b4, 0x20a1, 0x2e76, 0xcadd, 0xa5aa, 0x00f6, 0x200b, 0xcb87, + 0x3792, 0x3860, 0xb90f, 0xc23f, 0x5c4a, 0x5c50, 0x673b, 0x674a, + 0x68a8, 0xe8ce, 0x9e33, 0x9e32, 0xd1e8, 0x40ba, 0xc232, 0x2a6f, + 0xee97, 0x3319, 0x34e7, 0xd209, 0xa3ca, 0x2208, 0xd2c5, 0x2efc, + 0xdffa, 0x0006, 0x9e94, 0x1e46, 0xe579, 0x1e45, 0xe579, 0x2c1b, + 0x2e7a, 0x2e85, 0x6ebc, 0xeebd, 0xcfa9, 0xc0cf, 0x397d, 0xba02, + 0x1f17, 0x3500, 0x473e, 0xd846, 0xa5ac, 0x564e, 0xd65d, 0x1e58, + 0xb909, 0x1e57, 0xb909, 0x6690, 0x66a0, 0xe6b1, 0xcfd2, 0x60f7, + 0x6109, 0x610a, 0xe115, 0xb6f8, 0x2158, 0xa9cb, 0xdcb7, 0x1e82, + 0xe1e0, 0x1e7e, 0x1e81, 0xbf27, 0x1e79, 0x1e81, 0x2e72, 0xbf27, + 0x6f9c, 0xef9f, 0x1e79, 0x1e7e, 0xbf27, 0x1e71, 0xe1e0, 0x36b8, + 0xc7ad, 0xdc6b, 0xc22d, 0x1e8b, 0xa3d3, 0x1e8a, 0xa3d3, 0xaf0d, + 0x1e8f, 0x1e90, 0xb5bc, 0x1e8e, 0x1e90, 0x35bc, 0xd667, 0x1e8e, + 0x9e8f, 0x1f1d, 0xe6f2, 0x9e44, 0xa6db, 0x2c81, 0x2d57, 0x3b72, + 0xbb73, 0x9e99, 0x9e98, 0x1e9c, 0x9e9e, 0x1e9a, 0x9e9e, 0x3589, + 0x358a, 0x6f4a, 0xef50, 0x1e9a, 0x9e9c, 0xc10f, 0x1ebe, 0xa166, + 0x4522, 0xc523, 0x4546, 0x4552, 0x455d, 0xc55e, 0x9eaf, 0x9eb0, + 0x9eab, 0x9eac, 0xa91c, 0xd9aa, 0xd93b, 0xa6b2, 0x9ebb, 0x9eba, + 0x1ea1, 0xa166, 0xa104, 0xafce, 0x20cd, 0x22a8, 0xa2d5, 0x1ed8, + 0xa0c5, 0xa0d5, 0xdb8e, 0xa0df, 0x21ab, 0x21b0, 0xbc37, 0x2f93, + 0xaf9e, 0x9f5b, 0x1f1e, 0xa098, 0x1f96, 0x2d18, 0xad19, 0x1efa, + 0xa009, 0x9ec5, 0x20ca, 0xa0f2, 0xa40c, 0x9eed, 0xaf74, 0x214f, + 0x6577, 0x6578, 0xe57f, 0xa100, 0xa011, 0x9ede, 0x2047, 0xa3cd, + 0x1fa1, 0xa0f9, 0x1ed3, 0xa009, 0x9fc7, 0x2f6c, 0xb58c, 0x9f4e, + 0x2023, 0x2f77, 0x2fac, 0x4706, 0xeae3, 0x20a0, 0xc26b, 0xae11, + 0x1e51, 0x473e, 0xd846, 0xa12a, 0xa925, 0xb703, 0xa0b4, 0xa005, + 0x1e91, 0x1f20, 0xa0b3, 0x1ed0, 0x2098, 0xce56, 0xa049, 0x1f1d, + 0xa0b3, 0x9fe5, 0x9fd4, 0xa0b7, 0xa000, 0xa02b, 0xa096, 0x207d, + 0xa0de, 0x1f47, 0xcada, 0xa2aa, 0x1f32, 0x1f60, 0xa11e, 0x1f31, + 0x1f60, 0xa11e, 0x9f90, 0xd0c4, 0x9f40, 0x9f3c, 0xb014, 0x9f2b, + 0xae03, 0x9efe, 0x4b28, 0x5eb0, 0x5ec6, 0x6ab5, 0xead4, 0xa360, + 0x6918, 0xe980, 0x1ecf, 0x2f7f, 0xeaf4, 0xa05a, 0x9fab, 0x1f31, + 0x1f32, 0x211e, 0xa9b3, 0xa0ad, 0xa0c9, 0xaf8a, 0x3cd5, 0xc04b, + 0x2002, 0xae76, 0xaf88, 0xa058, 0x29b7, 0xa9ea, 0xb765, 0x6625, + 0x6634, 0x6670, 0xe682, 0xb549, 0x9f35, 0x9ed1, 0x5350, 0xd5a6, + 0x9fe0, 0x1ef7, 0xa0f9, 0x9fb6, 0xa0e5, 0x2075, 0xe049, 0xa074, + 0xa0d1, 0xa108, 0xa115, 0x9f5e, 0xa102, 0x2118, 0xac3d, 0xc7e6, + 0x9fa3, 0xac40, 0xc537, 0x9fe3, 0xccfb, 0x9efc, 0xa101, 0xdf14, + 0xc23c, 0x1f23, 0xb093, 0xa16a, 0xcae2, 0x9fa0, 0xda2b, 0x9fee, + 0x9fc1, 0x9f21, 0xa114, 0xa13c, 0xa006, 0xa137, 0xa008, 0x2039, + 0xa109, 0x1fe2, 0xd129, 0xa036, 0x209a, 0xb548, 0x2079, 0x2099, + 0x20c3, 0xa907, 0x4ca5, 0xeb3b, 0x30de, 0xbb23, 0x9f25, 0x1f75, + 0xae76, 0x207a, 0x24b1, 0xa592, 0x9f1c, 0x9fe9, 0x9feb, 0x1ed3, + 0x9efa, 0xa06c, 0x00f6, 0x1e2a, 0xcb87, 0xd146, 0xa010, 0xa00f, + 0x9eec, 0xae78, 0xa0b9, 0x2fa3, 0xd5c9, 0x1eff, 0xc706, 0xa03c, + 0x22b5, 0xa2cc, 0x9f26, 0xa25a, 0x9ff1, 0x1fed, 0xa109, 0xa0b5, + 0xa024, 0xa0be, 0xd2f1, 0xdcf0, 0x9eee, 0x9f1f, 0x5d0b, 0x5d17, + 0xdd5d, 0x9f83, 0xa0c0, 0x9f5c, 0xafa4, 0xe03c, 0x200a, 0xa0af, + 0x9fa7, 0x1fa6, 0xe049, 0xa078, 0xa077, 0x1ffb, 0x2099, 0x20c3, + 0xa907, 0x2003, 0x24b1, 0xa592, 0xa0c2, 0x1f2a, 0xa0de, 0xa0e8, + 0xa11f, 0x4f75, 0x69e1, 0xea82, 0xafac, 0xb770, 0x9f27, 0x1ed0, + 0x1f1e, 0xce56, 0x1ffb, 0x2079, 0x20c3, 0xa907, 0x1ff2, 0xb548, + 0xafad, 0x1f10, 0xc26b, 0x1e26, 0x2e76, 0xcadd, 0xabb6, 0xa10e, + 0xa13b, 0xa110, 0xa132, 0xa13a, 0x9f63, 0xa06c, 0x1f1d, 0x9f20, + 0x9f1b, 0xa03a, 0x9f24, 0xa01e, 0xa03e, 0xa059, 0xa07b, 0x1ffb, + 0x2079, 0x2099, 0xa907, 0xafb1, 0x9ec5, 0x9f65, 0x9ed9, 0x1ec2, + 0x22a8, 0xa2d5, 0x9fa8, 0x9ec6, 0xb55e, 0xc67b, 0x1f2a, 0xa07d, + 0x9ec9, 0xa0ed, 0x9fa5, 0xa07e, 0xa0f4, 0x3076, 0x30aa, 0xb0e1, + 0xa0e3, 0xe6c7, 0x9ed9, 0xa0e9, 0x1ef7, 0x9fa1, 0x9eea, 0x9fca, + 0x9fac, 0x9ebf, 0x9fa9, 0x1fed, 0xa039, 0xa0a4, 0xa0a7, 0x9fe6, + 0x9faa, 0x1fad, 0xac3d, 0x1f31, 0x1f32, 0x9f60, 0xa07f, 0xa139, + 0x9f18, 0xa0a8, 0x9fea, 0xa127, 0xa0a9, 0xa0a5, 0x9fe8, 0x2150, + 0xa152, 0xcc2a, 0xa1f6, 0x406e, 0xc097, 0x214c, 0xa151, 0x224b, + 0x22ca, 0xac05, 0x214a, 0xa151, 0xa154, 0x1ee7, 0x6577, 0x6578, + 0xe57f, 0x213f, 0xa152, 0x214a, 0xa14c, 0x213f, 0xa150, 0xa14e, + 0xa157, 0xa156, 0x1e68, 0xa9cb, 0xeee8, 0xa160, 0xa15c, 0xb5f7, + 0x1ea1, 0x9ebe, 0xa185, 0x1e21, 0x9e24, 0x9fde, 0xd62d, 0x2929, + 0x6754, 0xe75d, 0x24b2, 0x4b11, 0x65a2, 0x65d7, 0xe5dc, 0xd208, + 0x9e0c, 0x530a, 0xd332, 0x4faa, 0xe90a, 0x4363, 0xc378, 0xa180, + 0xa17e, 0xa6c5, 0xa18b, 0xae3d, 0xa189, 0xa167, 0x2706, 0x270e, + 0xa713, 0xaca1, 0xa184, 0x218c, 0xcb27, 0xa182, 0x218a, 0xcb27, + 0x226e, 0xa3e7, 0xa6e7, 0xa192, 0xd0c4, 0xa190, 0xab82, 0x21a9, + 0xabeb, 0xdecd, 0xdfb2, 0x2b90, 0xab9c, 0xa85a, 0xb700, 0xabc3, + 0x2bbc, 0xabc7, 0xabcc, 0x2199, 0xabeb, 0x2e42, 0xcf83, 0x1ecc, + 0x21b0, 0xbc37, 0x3638, 0xef15, 0xe9ae, 0x1ecc, 0x21ab, 0xbc37, + 0xa1b4, 0x3c96, 0xd85d, 0xbc7a, 0xa1b1, 0xbcc1, 0xbcef, 0xa1cd, + 0xbd0c, 0x21c8, 0xbde8, 0xbd7c, 0xbd82, 0x3053, 0x30bd, 0xbdd2, + 0xbdb8, 0x21d6, 0xbe96, 0xa1c0, 0xbdbc, 0xa1bb, 0xbe1b, 0xbe4a, + 0xc69a, 0xb817, 0x21c6, 0xbe96, 0x21dc, 0xbf9f, 0x21db, 0xbf9f, + 0x4108, 0x4155, 0x4188, 0xc199, 0x2e7e, 0xb73a, 0x21e2, 0xa1e3, + 0x21e1, 0xa1e3, 0x21e1, 0xa1e2, 0xecf3, 0xac45, 0x2904, 0xd655, + 0x21ec, 0x21ee, 0x68a8, 0x68cc, 0xe8ce, 0xece7, 0x21e8, 0x21ee, + 0x68a8, 0x68cc, 0xe8ce, 0x21f4, 0x317f, 0xb191, 0x21e8, 0x21ec, + 0x68a8, 0x68cc, 0xe8ce, 0xa1f1, 0xa1ef, 0x2c32, 0x2c34, 0x2c36, + 0x2c37, 0xeb50, 0xbac8, 0x21ed, 0x317f, 0xb191, 0xa147, 0x2757, + 0x284a, 0xa8a4, 0x2c80, 0xef63, 0x3483, 0xb4ca, 0xa1fe, 0xa1fd, + 0xe47f, 0x2202, 0xe1d6, 0x2200, 0xe1d6, 0xa204, 0xa203, 0x221b, + 0xa275, 0x1e42, 0xd2c5, 0xb81e, 0xd2bb, 0x2283, 0x2290, 0xc53b, + 0xa6ed, 0xb289, 0xa289, 0xa247, 0xa25b, 0x2205, 0x2231, 0x224f, + 0x2259, 0xa275, 0xa22a, 0xa22b, 0x2227, 0x223c, 0xa2ab, 0x2226, + 0x223c, 0xa2ab, 0x624b, 0x6464, 0xe4c7, 0xa220, 0x2225, 0xaf46, + 0x2257, 0x2277, 0x63df, 0xe4f2, 0xa244, 0xe8b3, 0x221b, 0x224f, + 0x2259, 0xa275, 0xa241, 0xd8fd, 0xa24e, 0xa23e, 0x2226, 0x2227, + 0xa2ab, 0xa28a, 0xa23a, 0xa28c, 0xa274, 0xa234, 0x2264, 0xa291, + 0xeb00, 0xa22d, 0xa219, 0x214b, 0x22ca, 0xac05, 0xbe82, 0xbb6c, + 0xa239, 0x221b, 0x2231, 0x2259, 0xa275, 0x226e, 0xa3e7, 0x2263, + 0x2271, 0x228d, 0x228e, 0x2292, 0x2294, 0x61f0, 0xe1fc, 0x222c, + 0x2277, 0x63df, 0xe4f2, 0x221b, 0x2231, 0x224f, 0xa275, 0xa033, + 0xa21a, 0xa265, 0x2251, 0x2271, 0x228d, 0x228e, 0x2292, 0x2294, + 0x61f0, 0xe1fc, 0x2242, 0xa291, 0xa25d, 0x65b9, 0xe609, 0xa287, + 0xa270, 0x218e, 0x2250, 0xa3e7, 0xa269, 0x2251, 0x2263, 0x228d, + 0x228e, 0x2292, 0x2294, 0x61f0, 0xe1fc, 0xb72d, 0xa240, 0x2205, + 0x221b, 0x2231, 0x224f, 0xa259, 0x222c, 0x2257, 0x63df, 0xe4f2, + 0xb22e, 0xa2e6, 0x2212, 0x2290, 0xc53b, 0xcb9a, 0xa267, 0xa218, + 0xa23d, 0xa23f, 0x2251, 0x2263, 0x2271, 0x228e, 0x2292, 0x2294, + 0x61f0, 0xe1fc, 0x2251, 0x2263, 0x2271, 0x228d, 0x2292, 0x2294, + 0x61f0, 0xe1fc, 0x2212, 0x2283, 0xc53b, 0x2242, 0xa264, 0x2251, + 0x2263, 0x2271, 0x228d, 0x228e, 0x2294, 0x61f0, 0xe1fc, 0x2251, + 0x2263, 0x2271, 0x228d, 0x228e, 0x2292, 0x61f0, 0xe1fc, 0x5cad, + 0xdcea, 0x22e7, 0xa2f8, 0xdfa6, 0x4cfc, 0xccff, 0xa2d9, 0xa2f1, + 0x1ec2, 0x20cd, 0xa2d5, 0x9f2e, 0x2226, 0x2227, 0xa23c, 0xa2f5, + 0xa2c1, 0x22b4, 0x22de, 0xb1a5, 0x22b3, 0x22de, 0xb1a5, 0x2026, + 0xa2cc, 0xb548, 0xa2e2, 0xa2b2, 0xb54f, 0x22d1, 0xb555, 0xa2c8, + 0xa2c7, 0x214b, 0x224b, 0xac05, 0x22db, 0x22f2, 0xa2f3, 0x2026, + 0xa2b5, 0x22c5, 0x2f95, 0x2fa0, 0xb555, 0x1ec2, 0x20cd, 0xa2a8, + 0x22d7, 0xb702, 0x22d6, 0xb702, 0xa2a1, 0xa2e9, 0x22cb, 0x22f2, + 0xa2f3, 0xd0dc, 0x22b3, 0x22b4, 0xb1a5, 0xb22e, 0xa2bf, 0xb1c3, + 0xa27f, 0x229d, 0xa2f8, 0xa2da, 0xa2a2, 0x22cb, 0x22db, 0xa2f3, + 0x22cb, 0x22db, 0xa2f2, 0xa2b1, 0x229d, 0xa2e7, 0xa300, 0xa2fb, + 0x1e10, 0xa304, 0x1e10, 0xa303, 0xeead, 0x2fe9, 0x3031, 0xb0a4, + 0xb3ac, 0x5133, 0xd166, 0xa338, 0x37e9, 0xb7fe, 0x2e00, 0xdfca, + 0xa320, 0xa31e, 0xa329, 0xa32d, 0xcbcb, 0x5535, 0xd5cf, 0xa321, + 0xa326, 0xa331, 0x3c47, 0xbed9, 0xa32e, 0x2333, 0x2941, 0xa969, + 0x2332, 0x2941, 0xa969, 0xa31a, 0xa340, 0x3bc9, 0xe1ab, 0xa33a, + 0xe7c6, 0xa352, 0x3607, 0x36fb, 0x6629, 0xe65e, 0xd294, 0x1e16, + 0x9e17, 0xa350, 0x2d0b, 0x53ef, 0xd550, 0x2354, 0x23f6, 0xb5ea, + 0xa34d, 0xa346, 0x384c, 0xb9d5, 0x234f, 0x23f6, 0xb5ea, 0x2358, + 0xa5ae, 0x28f2, 0xdce3, 0x2355, 0xa5ae, 0xb13d, 0xc387, 0x53d4, + 0xd514, 0x9f54, 0xc6e7, 0x2365, 0x2877, 0x3ef7, 0x3f9b, 0x4002, + 0x597f, 0xee75, 0x2364, 0xd97f, 0xd1e5, 0x585b, 0xd85e, 0xadf5, + 0x2918, 0xb23c, 0xae01, 0x237d, 0xc68d, 0xa37b, 0x2dfb, 0xb372, + 0xcf37, 0x3064, 0xdcc9, 0xa374, 0x2373, 0xc68d, 0x2388, 0x23b0, + 0xaee0, 0xb239, 0x2ef0, 0xaef3, 0x23a4, 0x23af, 0x36a6, 0x36c6, + 0x3b74, 0xbb77, 0xc8d4, 0xa382, 0xa3b2, 0x2727, 0xa8d3, 0xa3ad, + 0xa399, 0xc825, 0xef8e, 0xad16, 0x23a0, 0xaec1, 0x28e5, 0x2edb, + 0x613d, 0xe1d0, 0xa38d, 0xa795, 0xaef3, 0xa3a1, 0x2395, 0xaec1, + 0xa39f, 0xaec2, 0xa3b4, 0x2386, 0xb6c6, 0xaec8, 0xaeda, 0x2ecf, + 0xaed0, 0xa38c, 0xaedd, 0x2386, 0x36a6, 0x36c6, 0x3b74, 0xbb77, + 0x2382, 0xaee0, 0xa389, 0x1e25, 0xa6b4, 0xa3a3, 0xbe90, 0xc9c1, + 0xd0b1, 0x60bb, 0x6130, 0xe6a3, 0xa3bb, 0xa3ba, 0x1e1f, 0x9e22, + 0x470c, 0xce23, 0x1e09, 0xaf0e, 0x23c3, 0x23c4, 0xa3c5, 0x23c2, + 0x23c4, 0xa3c5, 0x23c2, 0x23c3, 0xa3c5, 0x23c2, 0x23c3, 0xa3c4, + 0xe749, 0xe746, 0xa3f9, 0xb268, 0x9e41, 0xe6d9, 0x1eee, 0x23db, + 0xc08d, 0xb536, 0xa92c, 0xc2ae, 0x467a, 0x467c, 0x6aea, 0xeaee, + 0x1e8a, 0x9e8b, 0xcdb4, 0x2909, 0xdb8a, 0x354d, 0xb558, 0x23cd, + 0xc08d, 0xac09, 0x4573, 0x4582, 0x4589, 0xc58a, 0x28e1, 0xc77f, + 0x1e1b, 0x3a37, 0x3b09, 0xd5c2, 0x218e, 0x2250, 0xa26e, 0x49d6, + 0x5879, 0xe6bb, 0xa44c, 0x276e, 0x37b1, 0x3aaf, 0x51fa, 0xe8b1, + 0x234f, 0x2354, 0x35ea, 0xd449, 0xd65f, 0x23c8, 0x2606, 0xbb4e, + 0xa630, 0x24a9, 0xa4f6, 0x4c72, 0xefa5, 0x25ab, 0xa644, 0xe5a4, + 0xaf14, 0x1edd, 0xd855, 0xaf8c, 0x26ae, 0xb6cf, 0xa687, 0xa442, + 0xa5ce, 0xb061, 0xa451, 0x252b, 0x2656, 0xda21, 0xa678, 0x5074, + 0xd07d, 0x2518, 0x2553, 0x2554, 0x255f, 0x5aec, 0xe5d9, 0x2434, + 0xa449, 0x2433, 0xa449, 0xa450, 0xd117, 0xa44d, 0xa44a, 0xa415, + 0x3282, 0xc2c2, 0x2433, 0xa434, 0xa43f, 0xa3eb, 0xa43d, 0xa436, + 0xa41e, 0xa638, 0xa6c8, 0xa614, 0xa6a6, 0xa504, 0x24e1, 0x5c9f, + 0xdd20, 0x24bc, 0xa58e, 0xa4fa, 0xa5c6, 0xa5da, 0xda46, 0xe031, + 0xa5dc, 0x2492, 0xda4b, 0xda4d, 0x2611, 0x5656, 0xdb3c, 0xa4e3, + 0x248c, 0x30d2, 0xefa2, 0x248a, 0x30d2, 0xefa2, 0xda60, 0x246a, + 0xda4b, 0xa6a8, 0xa680, 0xa4a4, 0xa65d, 0xa49c, 0x2400, 0xa4f6, + 0xef69, 0x2580, 0xd849, 0x2003, 0x207a, 0xa592, 0x2173, 0xcb11, + 0x618e, 0xee79, 0x2459, 0xa58e, 0xa6a5, 0x65a7, 0xeb28, 0xe7ff, + 0x2516, 0x255e, 0x45d6, 0xc602, 0xa660, 0xa635, 0xa5f6, 0xa666, + 0x2629, 0xdb41, 0xa672, 0xa68c, 0xa665, 0xa5b2, 0x2458, 0x5c9f, + 0xdd20, 0xa485, 0xda36, 0x2560, 0x2586, 0x269e, 0x27d1, 0xb08a, + 0x2400, 0xa4a9, 0xa45a, 0x5a98, 0xdbf1, 0xa457, 0xd123, 0xd39e, + 0xa57a, 0xa523, 0x24d1, 0x255e, 0x45d6, 0xc602, 0x242f, 0x2553, + 0x2554, 0x255f, 0x5aec, 0xe5d9, 0xa61c, 0xa5ca, 0xa62e, 0xa5e9, + 0xa515, 0xa59a, 0xa59e, 0xa41f, 0xdaaf, 0xaff5, 0xa60a, 0xdb2a, + 0xe5ee, 0x242f, 0x2518, 0x2554, 0x255f, 0x5aec, 0xe5d9, 0x242f, + 0x2518, 0x2553, 0x255f, 0x5aec, 0xe5d9, 0xa649, 0xa649, 0x24d1, + 0x2516, 0x45d6, 0xc602, 0x242f, 0x2518, 0x2553, 0x2554, 0x5aec, + 0xe5d9, 0x24f2, 0x2586, 0x269e, 0x27d1, 0xb08a, 0x5854, 0x5858, + 0xe29c, 0xa616, 0xa5c7, 0xa6c0, 0x265b, 0x2699, 0x26d3, 0xef67, + 0xa613, 0x26c9, 0xcf57, 0xa63d, 0xa62f, 0xa510, 0x24af, 0xd849, + 0x6927, 0xe935, 0xdb71, 0x24f2, 0x2560, 0x269e, 0x27d1, 0xb08a, + 0x2459, 0xa4bc, 0x267e, 0xc616, 0x2003, 0x207a, 0xa4b1, 0xa524, + 0x3198, 0x3199, 0xbb56, 0xa527, 0xa5bb, 0x9e27, 0x2403, 0xa644, + 0x9e54, 0x2355, 0xa358, 0x25b7, 0xa674, 0x68df, 0x68e0, 0xe963, + 0xa4df, 0x41df, 0xd425, 0x25af, 0xa674, 0xa5a9, 0xa60d, 0xa6b3, + 0xef45, 0xa45b, 0xa56c, 0xa51d, 0xa417, 0xa45c, 0xa469, 0xe16a, + 0xab60, 0xa637, 0xa522, 0xa6c1, 0xa66f, 0xa4d4, 0xdb30, 0x23f9, + 0xbb4e, 0xa540, 0xa5bd, 0x247c, 0xdb3c, 0xa56f, 0xa455, 0xa567, + 0x2690, 0x2c1d, 0xc51e, 0xa653, 0xa51b, 0xa6b6, 0xa62f, 0x24d7, + 0xdb41, 0xa520, 0x2578, 0xa628, 0xa3fd, 0xa6d1, 0xa4d3, 0xa5e5, + 0xa452, 0xa574, 0xb076, 0xdb50, 0x2403, 0xa5ab, 0xa655, 0x2556, + 0xa557, 0xa668, 0xa618, 0xa645, 0x241f, 0xda21, 0x256e, 0xa699, + 0xa695, 0xa49d, 0xa4d2, 0xdb6b, 0xa4dd, 0xa4d5, 0xa650, 0xdb5f, + 0xa5f3, 0xa4d9, 0x25af, 0xa5b7, 0x585c, 0x585f, 0xe053, 0xa428, + 0xaf53, 0xa591, 0xa49b, 0xa413, 0xa4dc, 0xa694, 0x2617, 0x2c1d, + 0xc51e, 0xa68f, 0xa65c, 0x256e, 0x265b, 0x26d3, 0xef67, 0x24f2, + 0x2560, 0x2586, 0x27d1, 0xb08a, 0xbd4f, 0xa6ca, 0xa6c2, 0xa4bd, + 0xa456, 0xa499, 0xa411, 0x9eb8, 0xa5be, 0x1e25, 0xa3b3, 0xa624, + 0xa6c2, 0xa56d, 0xa5eb, 0x26a3, 0xa6bb, 0xa181, 0xa453, 0x2570, + 0xcf57, 0xa6a2, 0xd2cf, 0xd271, 0xa631, 0x256e, 0x2699, 0xef67, + 0x26f2, 0x26f4, 0xa70d, 0x26de, 0x26ec, 0x2efb, 0x2efd, 0x5ff4, + 0xe025, 0xa6e0, 0x9e96, 0x26d8, 0x26ec, 0x2efb, 0x2efd, 0x5ff4, + 0xe025, 0xe856, 0xa6d9, 0x26e3, 0x2718, 0xccf0, 0x26e2, 0x2718, + 0xccf0, 0x3df5, 0x3e0a, 0xbe15, 0xa18f, 0xa6f1, 0x26d8, 0x26de, + 0x2efb, 0x2efd, 0x5ff4, 0xe025, 0x2213, 0x2712, 0xd597, 0x26f6, + 0x26fb, 0x26fd, 0x2700, 0xa70b, 0xc74f, 0xa6ea, 0x26d7, 0x26f4, + 0xa70d, 0x26fe, 0x2716, 0xa717, 0x26d7, 0x26f2, 0xa70d, 0xa707, + 0x26ef, 0x26fb, 0x26fd, 0x2700, 0xa70b, 0xb5e5, 0x26ef, 0x26f6, + 0x26fd, 0x2700, 0xa70b, 0x26ef, 0x26f6, 0x26fb, 0x2700, 0xa70b, + 0x26f3, 0x2716, 0xa717, 0x26ef, 0x26f6, 0x26fb, 0x26fd, 0xa70b, + 0xa711, 0x2186, 0x270e, 0xa713, 0xa6f5, 0xa70f, 0x26ef, 0x26f6, + 0x26fb, 0x26fd, 0xa700, 0x26d7, 0x26f2, 0xa6f4, 0x2186, 0x2706, + 0xa713, 0xa708, 0xa703, 0x26ed, 0xd597, 0x2186, 0x2706, 0xa70e, + 0x26f3, 0x26fe, 0xa717, 0x26f3, 0x26fe, 0xa716, 0x26e2, 0xa6e3, + 0x383e, 0xbb12, 0xa721, 0xa71f, 0x453a, 0xc53c, 0xd056, 0x238b, + 0xa8d3, 0xb257, 0xb747, 0xc3ea, 0x2754, 0x27ca, 0xadb3, 0xa8d9, + 0x2834, 0xa872, 0x3b7e, 0x3b7f, 0x3b81, 0xbca1, 0xe62f, 0x2c85, + 0xe62a, 0x276f, 0x28ca, 0x28de, 0xe62b, 0xaea7, 0xe62c, 0xa78b, + 0x2730, 0x27ca, 0xadb3, 0x21f7, 0x284a, 0xa8a4, 0xade0, 0xa805, + 0x28b0, 0x28b5, 0x28c7, 0x28dc, 0x4f48, 0xcf4e, 0xa8e2, 0x27bb, + 0xa8e9, 0x2862, 0xe696, 0x28b3, 0xe6ab, 0x289c, 0xc908, 0xa802, + 0xa803, 0xb1bb, 0xa88c, 0x6640, 0xe641, 0xbce5, 0x23f0, 0xd1fa, + 0x274f, 0xe62b, 0xa7a7, 0xa787, 0x1e18, 0x9e20, 0xa7a2, 0xa8a2, + 0xa7c0, 0xa8df, 0xa8e0, 0xa8da, 0xa773, 0xa753, 0x2841, 0xa8d8, + 0xc561, 0xe67b, 0xa39a, 0xa806, 0x282f, 0x2c27, 0xac2d, 0xa79c, + 0xa79b, 0xa8a2, 0xa778, 0xa8be, 0xa770, 0xab88, 0x280a, 0xd056, + 0xa88a, 0xa7e1, 0xa8b6, 0xa8cb, 0xa84f, 0xa816, 0x275d, 0xa8e9, + 0xa782, 0xc86e, 0xe656, 0x2730, 0x2754, 0xadb3, 0x24f2, 0x2560, + 0x2586, 0x269e, 0xb08a, 0xa7d3, 0xa7d2, 0xa852, 0x2864, 0xa8ce, + 0xa81d, 0x28c4, 0xe1ce, 0x2824, 0xe684, 0xa7ad, 0xc897, 0xb267, + 0x2d0e, 0x2d5c, 0xc895, 0xb383, 0xa763, 0xa764, 0xa75a, 0xa796, + 0xd3eb, 0xa7a9, 0xa879, 0x28ae, 0xa8af, 0xa7b4, 0xe67b, 0xa7da, + 0x27de, 0xe684, 0x6636, 0xe68e, 0x279a, 0x2c27, 0xac2d, 0x2895, + 0xe681, 0xb2a5, 0x273a, 0xa872, 0x454c, 0xc54d, 0x2792, 0xa8d8, + 0xa8ea, 0x21f7, 0x2757, 0xa8a4, 0xd314, 0xc57b, 0xa7b2, 0xa851, + 0xa850, 0xa7d8, 0xa896, 0xbd82, 0xa8a7, 0xa1a2, 0xd46c, 0xa86b, + 0xa75e, 0x27d9, 0xa8ce, 0xe663, 0x46d0, 0xee7d, 0xa861, 0x273a, + 0xa834, 0xac18, 0x2364, 0xee75, 0x2811, 0xa8cd, 0x450e, 0x4816, + 0xc8da, 0xc245, 0xa7ab, 0xa767, 0x2830, 0xe681, 0xa854, 0xa89e, + 0x28bb, 0xc246, 0x2760, 0xc908, 0xa897, 0x277a, 0xa7a1, 0x21f7, + 0x2757, 0xa84a, 0xa859, 0x2815, 0xa8af, 0x2815, 0xa8ae, 0x275b, + 0x28b5, 0x28dc, 0x4f48, 0xcf4e, 0x275f, 0xe6ab, 0x275b, 0x28b0, + 0x28dc, 0x4f48, 0xcf4e, 0xa7af, 0xde87, 0xa899, 0xa7a6, 0x27dc, + 0xe1ce, 0xa75b, 0x274f, 0xa8de, 0xa7b1, 0xa8e4, 0xa879, 0x27d9, + 0xa864, 0xc4bd, 0x238b, 0xa727, 0x2792, 0xa841, 0xa739, 0xa786, + 0x275b, 0x28b0, 0x28b5, 0x4f48, 0xcf4e, 0x274f, 0xa8ca, 0xa784, + 0xa785, 0x23e1, 0xc77f, 0xa75c, 0xa8cc, 0x2398, 0x2edb, 0xe13d, + 0x275d, 0xa7bb, 0xa846, 0x28ef, 0xa8f5, 0x28ee, 0xa8f5, 0xd072, + 0xa8f9, 0x2356, 0xdce3, 0x3bbb, 0xbbbc, 0x28ee, 0xa8ef, 0x28f7, + 0xa8fa, 0x28f6, 0xa8fa, 0xa8fc, 0xa8f1, 0x28f6, 0xa8f7, 0x2a7f, + 0xd05f, 0xa8f8, 0x2900, 0xabff, 0x28fd, 0xabff, 0xa90a, 0x21e6, + 0xd655, 0xe64d, 0x1ffb, 0x2079, 0x2099, 0xa0c3, 0x23d8, 0xdb8a, + 0xa902, 0x2fa9, 0x5907, 0xd986, 0xa913, 0xa90f, 0xd641, 0x236f, + 0xb23c, 0xa91b, 0xa91a, 0x9eb1, 0xa920, 0xa91f, 0x2923, 0xb8a6, + 0x2922, 0xb8a6, 0x9f19, 0x2172, 0x6754, 0xe75d, 0xa3cf, 0xbb80, + 0x372c, 0xb94d, 0xbcf0, 0xe82d, 0xbbd4, 0xda87, 0xa93e, 0xa96a, + 0xa939, 0x2332, 0x2333, 0xa969, 0xa950, 0xcad2, 0xb7f0, 0xa96e, + 0xeede, 0xa942, 0x4287, 0xe029, 0x2968, 0x296c, 0xc34e, 0xaf09, + 0xc55a, 0x2967, 0xadb4, 0x2965, 0xadb4, 0x2956, 0x296c, 0xc34e, + 0x2332, 0x2333, 0xa941, 0xa93a, 0x2956, 0x2968, 0xc34e, 0xa94b, + 0x29b3, 0xab2d, 0x29e6, 0xa9e7, 0x299d, 0x2a24, 0x4ca7, 0xccda, + 0x2a66, 0xaa8d, 0xaabd, 0xa9d9, 0x29f8, 0xd505, 0xa9ac, 0xc945, + 0xc385, 0xaab8, 0x2986, 0x2a24, 0x4ca7, 0xccda, 0xaaf5, 0xaad7, + 0x2aaf, 0xab00, 0xa992, 0x1f60, 0x2976, 0xab2d, 0x1f84, 0xa9ea, + 0x2a3f, 0xaa40, 0xaa12, 0xa9ca, 0xa9c9, 0x1e68, 0xa158, 0xa9d7, + 0xaa8e, 0xaa30, 0xa9cd, 0xa98a, 0xd591, 0xaa1f, 0x2978, 0xa9e7, + 0x2978, 0xa9e6, 0x1f84, 0xa9b7, 0xa9ec, 0xa9eb, 0xaae6, 0x298d, + 0xd505, 0xaa63, 0xaa41, 0xaa6d, 0xab08, 0xab0c, 0xab4c, 0xa9c6, + 0x2b22, 0xab43, 0x2a2f, 0xaa31, 0xa9e2, 0x2986, 0x299d, 0x4ca7, + 0xccda, 0xab2a, 0xab09, 0x2a1b, 0xaa31, 0xa9d2, 0x2a1b, 0xaa2f, + 0xaaa7, 0x2afa, 0xaafb, 0x29b8, 0xaa40, 0x29b8, 0x2a3f, 0xaa50, + 0xaa04, 0xaa40, 0xa9fb, 0x2987, 0xaa8d, 0xbdeb, 0xaa05, 0x1e3d, + 0xee97, 0xaaff, 0x2b30, 0x2b46, 0xab7e, 0xab0b, 0xab38, 0x28fb, + 0xd05f, 0x2987, 0xaa66, 0xa9d0, 0xaa32, 0xaabc, 0xab03, 0x29ab, + 0xab00, 0xa99b, 0xaaaa, 0xa988, 0x3127, 0xd06d, 0x2b1d, 0xd885, + 0xab32, 0xab21, 0xab2a, 0xa9aa, 0xa9ee, 0xab19, 0xa9a9, 0x3194, + 0xc644, 0x2a34, 0xaafb, 0x2a34, 0xaafa, 0xaa73, 0x29ab, 0xaaaf, + 0xaaad, 0xaa06, 0xaa2d, 0xaa75, 0xaa07, 0xaaf1, 0x2acb, 0xd885, + 0xaad2, 0x2a18, 0xab43, 0xab37, 0x2a26, 0xaad4, 0x2976, 0xa9b3, + 0x2a74, 0x2b46, 0xab7e, 0xaad0, 0xab24, 0xaa76, 0xb1d2, 0x2a18, + 0xab22, 0x2a74, 0x2b30, 0xab7e, 0xaa08, 0xab53, 0xab52, 0xab6b, + 0xa5e3, 0x2b78, 0x3569, 0x3585, 0x3586, 0xb588, 0xab7f, 0xab59, + 0x2b66, 0x3569, 0x3585, 0x3586, 0xb588, 0xab7d, 0xab7c, 0x2a74, + 0x2b30, 0xab46, 0xab6a, 0x2bcd, 0x2bd5, 0x2bd7, 0x2bdc, 0x2be7, + 0xc52f, 0xa197, 0x4260, 0x5675, 0xd6c7, 0xca79, 0xa7a8, 0xca81, + 0xd089, 0x219d, 0xab9c, 0x219d, 0xab90, 0x2bda, 0x2bf3, 0x2bf6, + 0xc3e4, 0x2b9f, 0xabe6, 0x2b9e, 0xabe6, 0xabf5, 0x2bb7, 0xabe9, + 0xac4e, 0xb1b2, 0xabae, 0xabab, 0x5b8c, 0xe1bc, 0xa0a2, 0x2ba1, + 0xabe9, 0xabc6, 0x21a6, 0xabc7, 0x2bdb, 0xabec, 0x5cd3, 0xdcd4, + 0xe1c7, 0xa1a4, 0xabbb, 0x21a6, 0xabbc, 0x6751, 0xe752, 0x66ba, + 0x674d, 0x674e, 0x674f, 0x6db4, 0x6e16, 0xee64, 0xa1a8, 0x2b81, + 0x2bd5, 0x2bd7, 0x2bdc, 0x2be7, 0xc52f, 0xaebd, 0x2b81, 0x2bcd, + 0x2bd7, 0x2bdc, 0x2be7, 0xc52f, 0x2b81, 0x2bcd, 0x2bd5, 0x2bdc, + 0x2be7, 0xc52f, 0x2b9d, 0x2bf3, 0x2bf6, 0xc3e4, 0x2bbd, 0xabec, + 0x2b81, 0x2bcd, 0x2bd5, 0x2bd7, 0x2be7, 0xc52f, 0xabe2, 0xda67, + 0x4aad, 0xcab6, 0xabdd, 0x2b9e, 0xab9f, 0x2b81, 0x2bcd, 0x2bd5, + 0x2bd7, 0x2bdc, 0xc52f, 0x2ba1, 0xabb7, 0x2199, 0xa1a9, 0x2bbd, + 0xabdb, 0x2b9d, 0x2bda, 0x2bf6, 0xc3e4, 0xaba0, 0x2b9d, 0x2bda, + 0x2bf3, 0xc3e4, 0x2bfe, 0xac0d, 0xac0b, 0xac0e, 0x2bf9, 0xac0d, + 0x28fd, 0xa900, 0x1e13, 0xac08, 0x214b, 0x224b, 0xa2ca, 0xac07, + 0xac06, 0x1e13, 0xac02, 0xa3de, 0xabfb, 0x2bf9, 0xabfe, 0xabfc, + 0x2c13, 0x2c14, 0xc23e, 0x2c12, 0x2c14, 0xc23e, 0x2c12, 0x2c13, + 0xc23e, 0xa875, 0xac1a, 0xac19, 0x1e48, 0x2e85, 0x6ebc, 0xeebd, + 0x2617, 0x2690, 0xc51e, 0xc1ce, 0x2c20, 0x5d7b, 0x6bae, 0x6c7b, + 0xec9c, 0x2c1f, 0x5d7b, 0x6bae, 0x6c7b, 0xec9c, 0x2c23, 0x2c24, + 0xb023, 0xac22, 0x2c22, 0xb023, 0xac26, 0xac25, 0x279a, 0x282f, + 0xac2d, 0xac2b, 0xac29, 0xeb40, 0x279a, 0x282f, 0xac27, 0x21f2, + 0x2c34, 0x2c36, 0x2c37, 0xeb50, 0x21f2, 0x2c32, 0x2c36, 0x2c37, + 0xeb50, 0x21f2, 0x2c32, 0x2c34, 0x2c37, 0xeb50, 0x21f2, 0x2c32, + 0x2c34, 0x2c36, 0xeb50, 0xac4d, 0x1fad, 0x2118, 0xc6e1, 0x1fb7, + 0xddfc, 0xac64, 0xac53, 0xa1e5, 0xac4a, 0xac46, 0x6ce5, 0xee1f, + 0xac38, 0xaba9, 0x2c5b, 0xae48, 0xac43, 0x2c4f, 0xae48, 0xac6c, + 0xac62, 0xac61, 0xac42, 0xac68, 0xac66, 0xac5e, 0xadbc, 0xa1fa, + 0x1e97, 0x2d57, 0x3b72, 0xbb73, 0xdc48, 0x2742, 0xe62a, 0xdc3a, + 0xad87, 0xad17, 0xacf4, 0xad50, 0x2cf6, 0x2d8b, 0x2d8c, 0x2db9, + 0x6666, 0x669d, 0xe6af, 0xa188, 0x2d52, 0x2d53, 0x2dcc, 0x2dd6, + 0x2dd7, 0xc89e, 0xadba, 0xadbd, 0xad87, 0xad2c, 0xadcb, 0xada8, + 0xada7, 0xacdd, 0xacd2, 0xacfd, 0xada2, 0xada0, 0xad22, 0xadd2, + 0xace9, 0xace8, 0xacf0, 0xacef, 0xac98, 0x2d58, 0x2db8, 0xadc6, + 0x2c9b, 0x2d8b, 0x2d8c, 0x2db9, 0x6666, 0x669d, 0xe6af, 0xace1, + 0xad97, 0xad0d, 0xadae, 0xad08, 0xad07, 0x234e, 0xd3ef, 0xad03, + 0x27fc, 0x2d5c, 0xc895, 0xa393, 0xac97, 0x1ed1, 0xad19, 0x1ed1, + 0xad18, 0xace5, 0xacbd, 0x2d83, 0xad84, 0xcbcf, 0xac9a, 0x2ca9, + 0x2d53, 0xc89e, 0x2ca9, 0x2d52, 0xc89e, 0x1e97, 0x2c81, 0x3b72, + 0xbb73, 0x2cf5, 0x2db8, 0xadc6, 0xad94, 0x27fc, 0x2d0e, 0xc895, + 0xad81, 0x3e13, 0xbeaa, 0xad73, 0xad6f, 0xad5d, 0xad2d, 0xad2d, + 0x2c96, 0xacb4, 0x2c9b, 0x2cf6, 0x2d8c, 0x2db9, 0x6666, 0x669d, + 0xe6af, 0x2c9b, 0x2cf6, 0x2d8b, 0x2db9, 0x6666, 0x669d, 0xe6af, + 0xad5a, 0xad02, 0xace4, 0xace3, 0xacc4, 0xacc3, 0xad04, 0xe6df, + 0x2730, 0x2754, 0xa7ca, 0x2965, 0xa967, 0x2cf5, 0x2d58, 0xadc6, + 0x2c9b, 0x2cf6, 0x2d8b, 0x2d8c, 0x6666, 0x669d, 0xe6af, 0xacad, + 0xac7f, 0xacb3, 0x2dd3, 0xadd4, 0x2cf5, 0x2d58, 0xadb8, 0xacbf, + 0x2ca9, 0x2dd6, 0xadd7, 0xace6, 0xadc5, 0xadc5, 0x2ca9, 0x2dcc, + 0xadd7, 0x2ca9, 0x2dcc, 0xadd6, 0xaddd, 0xaddb, 0xa759, 0xade3, + 0xade2, 0xe78f, 0xadf0, 0xadef, 0xa36e, 0xd856, 0xadfd, 0x2377, + 0xb372, 0xadfa, 0x67cd, 0xe7e8, 0x231d, 0xdfca, 0x2370, 0x2e63, + 0xae64, 0x9f48, 0xae25, 0xae2b, 0xcd19, 0xae43, 0xae33, 0x9f16, + 0xd88b, 0xcd48, 0xcc3e, 0xcb92, 0x2e5f, 0xb5d8, 0xae05, 0x2e2f, + 0xae36, 0xae40, 0xae08, 0xd4c6, 0x2e47, 0x2e5a, 0xae6b, 0x2e26, + 0xae36, 0x2f52, 0x3b78, 0xc688, 0xae6c, 0xae10, 0x2e26, 0xae2f, + 0xae58, 0xae57, 0xa183, 0xae27, 0x21aa, 0xcf83, 0xae0f, 0x2e2e, + 0x2e5a, 0xae6b, 0x2c4f, 0xac5b, 0xce28, 0xae3c, 0xae3b, 0x2e2e, + 0x2e47, 0xae6b, 0x2e1c, 0xb5d8, 0xb5d9, 0x2e01, 0xae64, 0x2e01, + 0xae63, 0x2e2e, 0x2e47, 0xae5a, 0xae31, 0x1e7e, 0x2e79, 0xb9a6, + 0xc9ca, 0x1e26, 0x1f75, 0x2002, 0x20a1, 0x2e77, 0xcadd, 0xae76, + 0xa016, 0x2e72, 0xb9a6, 0x9e48, 0xa1e0, 0x2e83, 0x2eb5, 0xaee3, + 0x2ef0, 0xaef3, 0x2e7f, 0xaee3, 0x5358, 0xd38a, 0x1e48, 0x2c1b, + 0x6ebc, 0xeebd, 0xb176, 0xc240, 0xaeec, 0xaee1, 0xaeab, 0x2fdc, + 0xb1c9, 0xaedf, 0xef90, 0x2ec3, 0xaee2, 0xa750, 0xae93, 0x2e7f, + 0x53f4, 0x544a, 0xd4ed, 0xaebb, 0x377e, 0x3780, 0x37a9, 0x37d7, + 0xb8a5, 0xaeb6, 0xaece, 0xabd3, 0xaedf, 0x2395, 0xa3a0, 0xa3a2, + 0x2e9f, 0xaee2, 0xa3a6, 0xaebc, 0x23a9, 0xaed0, 0x23a9, 0xaecf, + 0xa3a8, 0x2398, 0x28e5, 0xe13d, 0xa3ae, 0x2e99, 0xaebf, 0x2382, + 0xa3b0, 0xae91, 0x2e9f, 0xaec3, 0x2e7f, 0xae83, 0xaeea, 0xaee9, + 0xae90, 0x2385, 0x2e81, 0xaef3, 0x2385, 0x239b, 0x2e81, 0xaef0, + 0xdfea, 0x26d8, 0x26de, 0x26ec, 0x2efd, 0x5ff4, 0xe025, 0x1e43, + 0xdffa, 0x26d8, 0x26de, 0x26ec, 0x2efb, 0x5ff4, 0xe025, 0xe58b, + 0x44e3, 0x598d, 0x5fa1, 0x5fa7, 0x5fa8, 0x5fa9, 0xdfaf, 0xc570, + 0xb8c4, 0x330a, 0xb335, 0xa958, 0x9e00, 0x9e8c, 0x1e09, 0xa3c1, + 0x5cae, 0x5cb3, 0xdd30, 0xaf12, 0xaf11, 0xa40a, 0xaf35, 0x2f4c, + 0xc030, 0xcd43, 0xaf33, 0xaf4e, 0xaf2a, 0xaf20, 0xaf3a, 0x2f3e, + 0xaf48, 0xaf37, 0xaf3c, 0xaf3b, 0x2f39, 0xaf48, 0xa22b, 0x2f39, + 0xaf3e, 0xaf25, 0xaf2f, 0xaf51, 0xaf50, 0x2e30, 0x3b78, 0xc688, + 0x2679, 0xc576, 0xaf55, 0x2f54, 0x6304, 0xe332, 0xcbf2, 0x2f5a, + 0xbc47, 0x2f59, 0xbc47, 0x2f5c, 0x2f5d, 0xaf5e, 0x2f5b, 0x2f5d, + 0xaf5e, 0x2f5b, 0x2f5c, 0xaf5e, 0x2f5b, 0x2f5c, 0xaf5d, 0xaf60, + 0x2f5f, 0xd4a6, 0xaf66, 0xaf65, 0xaf72, 0xcdb5, 0xe6d5, 0x1efd, + 0xb58c, 0xaf68, 0x9ee2, 0x1eff, 0x2fac, 0xeae3, 0xafb9, 0x1f5b, + 0xeaf4, 0x2f83, 0xdfec, 0x2fb0, 0x2fb4, 0xafb5, 0xaf80, 0x2f91, + 0x5ff3, 0xe015, 0xc2e5, 0x9f77, 0x9f6a, 0xa40e, 0xe65f, 0x2f84, + 0x5ff3, 0xe015, 0x1ece, 0xaf9e, 0x22d1, 0xafa0, 0x1ece, 0xaf93, + 0x22d1, 0xaf95, 0xc9a6, 0x201f, 0xd5c9, 0xa065, 0x290d, 0xd986, + 0x1eff, 0x208d, 0xaf77, 0xa09c, 0xaf81, 0xa0c4, 0x2fb7, 0x3074, + 0xb0b3, 0x2f81, 0xafb5, 0x2f81, 0xafb4, 0x2fb3, 0x3074, 0xb0b3, + 0xaf7b, 0xafc4, 0xafc3, 0xb1b6, 0x9ec1, 0x31f4, 0xb1fa, 0xda8c, + 0xb07e, 0x2e94, 0xb1c9, 0xb09f, 0xb025, 0xb182, 0x2306, 0x3031, + 0xb0a4, 0xb0b4, 0xa538, 0xb13e, 0x31d0, 0xb1f7, 0xb14b, 0xb16b, + 0xb1ae, 0xb16a, 0xb0b5, 0xb134, 0x9f42, 0xb091, 0xb190, 0xb056, + 0x2c22, 0xac24, 0xafe3, 0xb060, 0x2306, 0x2fe9, 0xb0a4, 0x30e3, + 0x3374, 0x4dcf, 0x4deb, 0xce3d, 0xb1df, 0xb1cc, 0xb052, 0xb200, + 0xb046, 0x21c4, 0xb0bd, 0xb01d, 0xb02a, 0x241d, 0xb08b, 0x2379, + 0xdcc9, 0xd03b, 0xb119, 0x3085, 0xb0a6, 0xb1c7, 0x2fb3, 0x2fb7, + 0xb0b3, 0xb0e0, 0x20eb, 0x2641, 0x30aa, 0xb0e1, 0xb15f, 0xb1e8, + 0xb137, 0xb0fb, 0x30a9, 0xb0f1, 0xb0f2, 0xafd9, 0x30e5, 0xb142, + 0x3111, 0xb139, 0x3071, 0xb0a6, 0x24f2, 0x2560, 0x2586, 0x269e, + 0xa7d1, 0xb061, 0xc302, 0xb016, 0x9fd4, 0x3102, 0xda96, 0xdbef, + 0xafe2, 0xb0ca, 0x2306, 0x2fe9, 0xb031, 0x3071, 0xb085, 0x307c, + 0xb0f1, 0x20eb, 0x3076, 0xb0e1, 0xb164, 0xb1f8, 0xb173, 0xb1ab, + 0x2fb3, 0x2fb7, 0xb074, 0xaff0, 0xb005, 0xe5f7, 0x21c4, 0xb053, + 0x30a2, 0xea5a, 0x248a, 0x248c, 0xefa2, 0x1ffd, 0xbb23, 0xb075, + 0x20eb, 0x3076, 0xb0aa, 0xb03b, 0x307f, 0xb142, 0xb1fc, 0xb158, + 0xb1f2, 0xb18a, 0xb11c, 0x3159, 0xb15a, 0xb19a, 0xb163, 0x307c, + 0xb0a9, 0xb07d, 0xd822, 0xb07b, 0xd90a, 0x3096, 0xda96, 0x4609, + 0xc652, 0x3080, 0xb139, 0xb06a, 0xc231, 0xb0ec, 0xb14d, 0xb181, + 0xb1a4, 0xb192, 0x2abf, 0xd06d, 0xb1fc, 0xb006, 0xb07a, 0x3080, + 0xb111, 0xb14e, 0xa35a, 0xaffe, 0xe858, 0x307f, 0xb0e5, 0xb817, + 0xbbb7, 0xb001, 0xb120, 0x313c, 0x361a, 0xc718, 0x3174, 0xb1fe, + 0xb0e8, 0x30ed, 0xb15a, 0x30ed, 0xb159, 0x3078, 0xb185, 0xb0ef, + 0xb0ab, 0xb004, 0xb002, 0xb196, 0xd651, 0xb0ad, 0xb151, 0xae86, + 0x317d, 0xb21a, 0x317c, 0xb21a, 0xbb32, 0x21ed, 0x21f4, 0xb191, + 0xb121, 0xafe7, 0xb15f, 0xb1a9, 0xb0eb, 0xb01c, 0x21ed, 0x21f4, + 0xb17f, 0xb126, 0x2af6, 0xc644, 0x316d, 0xb197, 0xb196, 0x259c, + 0x3199, 0xbb56, 0x259c, 0x3198, 0xbb56, 0xb0ee, 0xb124, 0x22b3, + 0x22b4, 0xa2de, 0xb187, 0xb0af, 0xb003, 0xabaa, 0xafc6, 0xa766, + 0xa2e4, 0xb073, 0x2e94, 0xafdc, 0xb03f, 0xb1d4, 0x3000, 0xb1f7, + 0xb1e3, 0x2b3e, 0xb1f6, 0xb1cd, 0xb1f5, 0xd499, 0xb03c, 0xb1d1, + 0xb1e7, 0xb1e6, 0xb079, 0xb0e9, 0x2fcf, 0xb1ff, 0xb1dc, 0xb1d2, + 0x3000, 0xb1d0, 0xb0ac, 0xafcf, 0x30e7, 0xb133, 0xbb22, 0xb151, + 0xb1f4, 0xb04b, 0xb207, 0xb206, 0xb214, 0x322f, 0xb232, 0xb20b, + 0xb227, 0x3226, 0xb230, 0x317c, 0xb17d, 0xb21e, 0x5ca1, 0xdd22, + 0xb21b, 0x3218, 0xb230, 0xb217, 0xb22c, 0xb229, 0x2279, 0xa2e0, + 0x320f, 0xb232, 0x3218, 0xb226, 0x320f, 0xb22f, 0x3237, 0xb238, + 0x3236, 0xb238, 0x3236, 0xb237, 0xa384, 0xb23e, 0x236f, 0xa918, + 0xb23b, 0xb24c, 0xb24b, 0xce94, 0x33e0, 0xcd2e, 0x34b2, 0xb4c8, + 0xb2c2, 0xa728, 0x5a17, 0xdbac, 0xb34d, 0xb268, 0xe1e6, 0xa7f7, + 0x23c9, 0xb260, 0x32e1, 0xb4f4, 0xb36b, 0xb383, 0xb3da, 0xb4a6, + 0xb4fe, 0xb5bc, 0x2448, 0xc2c2, 0xa214, 0xb4ab, 0xb2cb, 0xb2d4, + 0xb2d7, 0x32e9, 0xb4c7, 0xb476, 0xb473, 0xb384, 0xb436, 0xdb77, + 0xa831, 0xb4e1, 0x32de, 0x4274, 0xd9dd, 0xb255, 0xb4d4, 0xb49a, + 0xb29b, 0xb2ff, 0x37b4, 0xb7fa, 0xb428, 0xb29c, 0xb2d6, 0xb2d5, + 0xb29d, 0xb2dd, 0xb2dc, 0xb2b5, 0xb4ec, 0x336e, 0xb4da, 0x3269, + 0x3304, 0xb4f4, 0xb50f, 0xb3c0, 0xb4c1, 0xb514, 0xb4f0, 0x34a5, + 0xc67a, 0x329e, 0xb4c7, 0xb2cf, 0xb39b, 0x32e1, 0xb4f4, 0x2f04, + 0xb335, 0x1e3e, 0x34e7, 0xd209, 0xb46f, 0xb523, 0xb397, 0xb4be, + 0xb4bb, 0xb33e, 0xb493, 0xb4cb, 0xb49f, 0xb399, 0xb4e0, 0xb3ee, + 0xb48f, 0x2f04, 0xb30a, 0xb412, 0xdf13, 0xb31f, 0xb3d2, 0x3405, + 0x34b9, 0xb52a, 0x38b1, 0x4975, 0xcd91, 0xb25e, 0xb3d1, 0xd379, + 0xb41c, 0xb488, 0xb40d, 0xb4bf, 0xb3db, 0x3417, 0xb4e3, 0xd20d, + 0xb26a, 0x32e0, 0xb4da, 0x2377, 0xadfb, 0xb03b, 0x3816, 0xb8f2, + 0x27fd, 0xb26b, 0xb2a1, 0xb31c, 0xb323, 0xb302, 0xe1c7, 0xb4d1, + 0xa30a, 0xb3ed, 0xb4c4, 0xb451, 0xb4f2, 0xb4a3, 0xb47b, 0xb414, + 0xb45c, 0xc8b0, 0xb2e3, 0xb34f, 0xb33f, 0xb26c, 0xb362, 0xb24e, + 0xb3b2, 0xb325, 0xd0cc, 0x3416, 0xb447, 0xb52c, 0xb4b3, 0xb519, + 0xb4f1, 0xb45f, 0xce3d, 0x3341, 0x34b9, 0xb52a, 0xb784, 0xb35f, + 0xb337, 0xb3bb, 0x33fa, 0xb447, 0xb363, 0x335c, 0xd490, 0xb2d3, + 0xb498, 0xb528, 0xb2a2, 0x34d5, 0xb51c, 0xb9a8, 0x3444, 0xb51d, + 0x3442, 0xb51d, 0xb504, 0x34fa, 0xd96c, 0x33fa, 0xb416, 0xb4ef, + 0xb524, 0xb3b4, 0xb3bc, 0xb402, 0x4dcf, 0x4deb, 0xce3d, 0xb4f5, + 0xb31a, 0xb2a0, 0xb29f, 0xb3ba, 0x21fb, 0xb4ca, 0xb516, 0xb35e, + 0xb326, 0xb491, 0xb490, 0xb320, 0xb42d, 0xb2c8, 0xb322, 0xb4cd, + 0xb3b8, 0x32e8, 0xc67a, 0xb26f, 0x4d55, 0x4d76, 0xcedd, 0xb29a, + 0x3251, 0xb4c8, 0xb3ff, 0xb506, 0xb4f7, 0xb4fc, 0x3341, 0x3405, + 0xb52a, 0xb51b, 0xb31e, 0xb31d, 0xb361, 0xb2e5, 0xb3b3, 0x329e, + 0xb2e9, 0x3251, 0xb4b2, 0x21fb, 0xb483, 0xb321, 0xb4a1, 0xb3a5, + 0xb2c5, 0x343a, 0xb51c, 0x32e0, 0xb36e, 0xb4fb, 0xb324, 0xb2ac, + 0xb363, 0xb52c, 0x1e3e, 0x3319, 0xd209, 0xb2df, 0xb448, 0xb2e7, + 0xb401, 0xb3b7, 0x3269, 0x32e1, 0xb304, 0xb469, 0x34b7, 0xd96d, + 0xb446, 0xb4de, 0xb4b8, 0xb50a, 0xb270, 0x9e51, 0xb445, 0xb522, + 0xb4b5, 0xb51f, 0xb4fd, 0xb2e2, 0xb522, 0xb2e6, 0xb484, 0xb400, + 0xb4ba, 0x343a, 0xb4d5, 0x3442, 0xb444, 0xb508, 0x3505, 0xb512, + 0xb31b, 0xb44a, 0xb432, 0x3341, 0x3405, 0xb4b9, 0xc234, 0x33fd, + 0xb4e5, 0xb535, 0xb534, 0xa3ce, 0xd003, 0x4b27, 0x4b56, 0x4b5e, + 0xcba3, 0x1ff2, 0x209a, 0xa2b9, 0x9f8e, 0xb575, 0x23d9, 0xb558, + 0xb559, 0xa2c4, 0x22c5, 0xa2d1, 0x5d01, 0xdd25, 0x23d9, 0xb54d, + 0xb54e, 0x3582, 0xbb5b, 0xa0d8, 0x2b66, 0x2b78, 0x3585, 0x3586, + 0xb588, 0xb578, 0xb54c, 0xb5c9, 0xb570, 0x69c6, 0x69c8, 0x6a45, + 0xea71, 0xbb5d, 0x355b, 0xbb5b, 0xbbd9, 0x2b66, 0x2b78, 0x3569, + 0x3586, 0xb588, 0x2b66, 0x2b78, 0x3569, 0x3585, 0xb588, 0x2b66, + 0x2b78, 0x3569, 0x3585, 0xb586, 0x1e9d, 0x358a, 0x6f4a, 0xef50, + 0x1e9d, 0x3589, 0x6f4a, 0xef50, 0x358e, 0xef4b, 0x1efd, 0xaf6c, + 0xd9ba, 0x358b, 0xef4b, 0xb595, 0x359e, 0xd7a4, 0xb593, 0x65d8, + 0x6b25, 0x6b26, 0x6b2a, 0xeb2d, 0x3594, 0xd7a4, 0xe159, 0xb5ac, + 0xb5a9, 0xb5b7, 0xb5b5, 0xb5b2, 0xb5ad, 0x1e8e, 0x1e8f, 0xb275, + 0xb5d2, 0xb577, 0xb5c8, 0x4c31, 0xcc4f, 0x2e1c, 0xae5f, 0x2e61, + 0xb5db, 0xb5d9, 0xc121, 0xa6f8, 0xd20a, 0x234f, 0x2354, 0xa3f6, + 0x35f9, 0xb642, 0x2164, 0x363f, 0xb6e0, 0xb698, 0x35f6, 0xb642, + 0xb680, 0xb625, 0xb664, 0xb63b, 0x2347, 0xb6fb, 0xb626, 0xb719, + 0xb62c, 0xb6c7, 0xb14e, 0xc6a8, 0xb5fe, 0xb60a, 0xb60f, 0xc0a4, + 0xb630, 0xb62f, 0xa1ac, 0xb602, 0x365d, 0xb6f8, 0xb6e8, 0x6855, + 0xe86f, 0x35f7, 0xb6e0, 0x35f6, 0xb5f9, 0xb644, 0xb643, 0xb64b, + 0xb649, 0xb6ec, 0x3681, 0xb6c9, 0xb6c4, 0xb688, 0xb689, 0xb669, + 0x363c, 0xb6f8, 0xb660, 0xb65f, 0xb5ff, 0xb6df, 0xb65a, 0xb69c, + 0x3692, 0xc520, 0xb697, 0xb5fa, 0x3653, 0xb6c9, 0xb6ab, 0x4f6a, + 0xdfa0, 0xb655, 0xb656, 0xb674, 0x4156, 0xc157, 0x367b, 0x5af3, + 0x5c19, 0x65c7, 0xe68c, 0xb5f8, 0xb66e, 0xc545, 0x36ad, 0x36cd, + 0xc6a5, 0x2386, 0x23af, 0xb6c6, 0xb6d6, 0xb6c1, 0xb682, 0x36a4, + 0xc6a5, 0x1e86, 0xc7ad, 0xb6a8, 0xb654, 0x2386, 0x23a4, 0x23af, + 0xb6a6, 0xb619, 0x3653, 0xb681, 0x40a4, 0x4167, 0x41f3, 0xc7be, + 0xb6a4, 0xa411, 0xb6a7, 0xb668, 0x35f7, 0xb63f, 0xb63d, 0xb652, + 0x3d40, 0x4cac, 0x6eaf, 0x6eb4, 0xeeb9, 0xb6f5, 0xb6f3, 0x1e66, + 0x363c, 0xb65d, 0xb6fa, 0xb6f9, 0x2347, 0xb607, 0xb6fe, 0xb6fd, + 0xa1a3, 0x22d6, 0xa2d7, 0x9f1a, 0xd8e8, 0xb717, 0xb716, 0xb60e, + 0xb722, 0xb71f, 0xb71e, 0xb71b, 0xd0e7, 0x2932, 0xb94d, 0xa273, + 0xb72f, 0x372e, 0xd853, 0xc843, 0x3a38, 0xba8f, 0xb736, 0xb735, + 0x21e0, 0xba5f, 0xbbba, 0x594d, 0x66d1, 0xe6dc, 0x3a29, 0xbb0a, + 0xb87f, 0xa72c, 0x3766, 0x3919, 0xba86, 0xe0a8, 0xb9d3, 0xb89d, + 0xb803, 0x9f86, 0xb749, 0xb94a, 0xb9aa, 0x386e, 0xc6c3, 0xa091, + 0x9e1c, 0x2eba, 0x3780, 0x37a9, 0x37d7, 0x38a5, 0xeb06, 0xe5c6, + 0x2eba, 0x377e, 0x37a9, 0x37d7, 0xb8a5, 0xb975, 0x3406, 0xb9cb, + 0xb960, 0x1e2b, 0x3860, 0x390f, 0xb930, 0x5edb, 0x5ef6, 0xdf6d, + 0xd3d3, 0xba05, 0xb85d, 0xba1e, 0xb8d7, 0xbaea, 0xb80c, 0xb898, + 0xb8d6, 0x2eba, 0x377e, 0x3780, 0x37d7, 0xb8a5, 0x39cd, 0x6397, + 0xe453, 0xb953, 0xb89f, 0x23f0, 0x3aaf, 0xd01c, 0x32d0, 0xb7fa, + 0xb827, 0xd235, 0xb822, 0xb959, 0x2eba, 0x377e, 0x3780, 0x37a9, + 0xb8a5, 0xbac3, 0xbab8, 0xb7fb, 0x231b, 0xb7fe, 0xa948, 0x3801, + 0x387a, 0xba6e, 0xb805, 0xb7ff, 0x32d0, 0xb7b4, 0xb7e5, 0xba89, + 0x231b, 0xb7e9, 0xb7f9, 0xb894, 0x37f3, 0x387a, 0xba6e, 0x3764, + 0xbad4, 0x39ae, 0xd363, 0xb7f5, 0xba19, 0x385f, 0xb8e7, 0xbadb, + 0x39de, 0xbaf3, 0xb8df, 0x37a6, 0xbae8, 0x3aaa, 0xbadf, 0x3b04, + 0xbb17, 0xba39, 0x337f, 0xb8f2, 0x21d3, 0xb144, 0xa20a, 0xb7cf, + 0xb7bb, 0x3a43, 0xcb4f, 0x39d8, 0xba23, 0xd988, 0x271d, 0xbb12, + 0xb97f, 0x2353, 0xb9d5, 0xb852, 0xb851, 0xb90e, 0x3a31, 0xbafb, + 0xb7a1, 0x3808, 0xb8e7, 0x1e2b, 0x3792, 0xb90f, 0xba48, 0xb968, + 0xba94, 0xb9bf, 0x39d7, 0xba4b, 0xba3a, 0xba9c, 0xb9f3, 0xba01, + 0xba33, 0x376f, 0xc6c3, 0xba03, 0x37f3, 0x3801, 0xba6e, 0xbf06, + 0xb746, 0x3a11, 0xcc17, 0xb9f1, 0x3973, 0xb9d1, 0x4681, 0xc682, + 0xb800, 0xb7a7, 0xb761, 0xb7ad, 0x2eba, 0x377e, 0x3780, 0x37a9, + 0xb7d7, 0x2922, 0xa923, 0x3346, 0xcd91, 0xbaae, 0xb8f6, 0xb9e4, + 0x391c, 0xbaa2, 0xbb1e, 0xaf03, 0x38cb, 0x3ab1, 0x3ac0, 0xc881, + 0x38ca, 0x3ab1, 0x3ac0, 0xc881, 0xb936, 0xb7a8, 0xb7a3, 0xb80b, + 0xba0a, 0x3808, 0xb85f, 0xca1c, 0x337f, 0xb816, 0xb8be, 0xbac2, + 0xc897, 0xb9e8, 0x1e57, 0x9e58, 0xb858, 0x1e2b, 0x3792, 0xb860, + 0x47f4, 0xc887, 0xb95a, 0xb749, 0x38c0, 0xbaa2, 0xbadd, 0xb9e7, + 0xb9f6, 0xbb0f, 0xba3f, 0xba62, 0xb792, 0xd46e, 0xb8d5, 0xd45a, + 0xb768, 0x2932, 0xb72c, 0xb7ab, 0xba62, 0xb7d5, 0xb918, 0xb78f, + 0xb986, 0xb966, 0xb965, 0xb862, 0xc243, 0xba9d, 0x9e1a, 0x3885, + 0xb9d1, 0xb781, 0xba13, 0x1e50, 0xba02, 0xb842, 0xbb16, 0xb9b2, + 0xb961, 0xbaec, 0xbada, 0x3af8, 0xbb05, 0xc253, 0x2e72, 0xae79, + 0xb43e, 0xb769, 0x3804, 0xd363, 0xb985, 0xba4a, 0xe198, 0xb864, + 0xb9d9, 0x5028, 0xe392, 0xb784, 0xb7aa, 0x3885, 0xb973, 0xb760, + 0x39f9, 0xba70, 0x2353, 0xb84c, 0x3865, 0xba4b, 0x3837, 0xba23, + 0xb9c7, 0xba9f, 0x3abb, 0xce7f, 0xb80a, 0xbab3, 0xbae7, 0xb8bf, + 0xb920, 0xb901, 0xb884, 0xb868, 0xb922, 0xb9d4, 0xb869, 0x1e50, + 0xb97d, 0xb879, 0xb79e, 0xb8e5, 0xbad3, 0x3881, 0xcc17, 0xbac1, + 0xb97c, 0xb807, 0xb7a2, 0x3837, 0xb9d8, 0x3743, 0xbb0a, 0x3a6b, + 0xbace, 0x3aa3, 0xd262, 0x385c, 0xbafb, 0xb86a, 0x1e1b, 0x23e2, + 0x3b09, 0xd5c2, 0x3734, 0xba8f, 0xb811, 0xb866, 0xcf47, 0xb92b, + 0x3830, 0xcb4f, 0xb861, 0xb9b4, 0x3865, 0xb9d7, 0xb73a, 0x392d, + 0xb955, 0x3a2a, 0xbace, 0x37f3, 0x3801, 0xb87a, 0xb9d4, 0xbae5, + 0x3ad3, 0x5263, 0xd26a, 0xbade, 0xbaa9, 0xbafd, 0xb749, 0xb7fd, + 0x3734, 0xba38, 0xcc37, 0xb863, 0x3a98, 0xd617, 0xba97, 0xb867, + 0xb96b, 0xb9da, 0x38c0, 0xb91c, 0xba2f, 0xba81, 0x380e, 0xbadf, + 0xb8bc, 0x23f0, 0xb7b1, 0x38ca, 0x38cb, 0x3ac0, 0xc881, 0xb9df, + 0xb7e0, 0xb9db, 0x38ca, 0x38cb, 0x3ab1, 0xc881, 0xba12, 0xb8f9, + 0xb7dc, 0xa1f3, 0xd030, 0x3a2a, 0xba6b, 0x3a10, 0xba79, 0xb803, + 0xbb11, 0xb988, 0xb809, 0xb91f, 0xba7c, 0x380e, 0xbaaa, 0xba71, + 0xb9e0, 0xb80c, 0xb7a5, 0xb987, 0xb80a, 0xb989, 0xbb1e, 0x385c, + 0xba31, 0xba83, 0x380f, 0xbb17, 0xb989, 0x1e1b, 0x23e2, 0x3a37, + 0xd5c2, 0x3743, 0xba29, 0xb924, 0xbad5, 0x271d, 0xb83e, 0xb984, + 0x380f, 0xbb04, 0x60c1, 0x6b30, 0xeb31, 0x38c2, 0xbafa, 0x4f3a, + 0xcf3c, 0x31fd, 0x3b53, 0x3b61, 0xea69, 0x1ffd, 0x30de, 0xda22, + 0xbb5f, 0xbb50, 0xb17e, 0xbb3e, 0xbb58, 0xe4a6, 0xbb35, 0xdb0c, + 0x23f9, 0xa606, 0xbb27, 0x3b22, 0xbb61, 0x259c, 0x3198, 0xb199, + 0xbb3b, 0x355b, 0xb582, 0xb581, 0xbb24, 0x3b22, 0xbb53, 0x3b68, + 0xbb69, 0x3b65, 0xbb69, 0x3b65, 0xbb68, 0xa24d, 0x3e0b, 0x3f80, + 0xbf81, 0x6f52, 0xef7f, 0x1e97, 0x2c81, 0x2d57, 0xbb73, 0x1e97, + 0x2c81, 0x2d57, 0xbb72, 0x2386, 0x23af, 0xbb77, 0x2386, 0x23af, + 0xbb74, 0x2e30, 0x2f52, 0xc688, 0xbb7a, 0xbb79, 0x3bb1, 0xbbb2, + 0x273d, 0x3b7f, 0x3b81, 0xbca1, 0x273d, 0x3b7e, 0x3b81, 0xbca1, + 0xa92d, 0x273d, 0x3b7e, 0x3b7f, 0xbca1, 0xbba4, 0xbb98, 0xbb9e, + 0xbbae, 0xbb8b, 0xbbab, 0xbb92, 0xbbaf, 0xbb87, 0xbb9a, 0xbb93, + 0xbba1, 0x3b7c, 0xbbb2, 0x3b7c, 0xbbb1, 0xbbc6, 0xb147, 0xb740, + 0x28f3, 0xbbbc, 0x28f3, 0xbbbb, 0xbbc1, 0x3bc0, 0x41ec, 0xdb6d, + 0xdf42, 0xbbb4, 0x233b, 0xe1ab, 0xbbcf, 0xbbce, 0x50b2, 0xd8ac, + 0xa936, 0xc562, 0xbbd8, 0xbbd7, 0xb583, 0xbbee, 0xbc08, 0xc403, + 0xbbdf, 0xbbff, 0xbbf5, 0x4266, 0xc29b, 0xbc0c, 0x3be1, 0xbc0a, + 0xbc08, 0xbc07, 0x3c17, 0x3c23, 0xc081, 0x3c14, 0x3c23, 0xc081, + 0xe6f0, 0xbc2b, 0x3c14, 0x3c17, 0xc081, 0xbc2c, 0xbc22, 0xbc29, + 0xbc33, 0xbc32, 0x3c35, 0xbc3a, 0x3c34, 0xbc3a, 0x1ecc, 0x21ab, + 0xa1b0, 0x3c34, 0xbc35, 0x232f, 0x2f59, 0x2f5a, 0xbed9, 0xbf22, + 0xbcdb, 0x3c5a, 0xbc61, 0x3c59, 0xbc61, 0x3c59, 0xbc5a, 0xbe6f, + 0xbc74, 0xbc73, 0xbd36, 0xa1b3, 0xbef8, 0x3c89, 0xc00b, 0xbc88, + 0xbca1, 0xa1b2, 0xbdfb, 0xbe9d, 0x273d, 0x3b7e, 0x3b7f, 0x3b81, + 0xbc92, 0x3cfd, 0xbfa4, 0xc043, 0xbf1a, 0xc01d, 0xbdea, 0xbec4, + 0xbe22, 0xbf59, 0x3eec, 0xcc04, 0xe63b, 0xbcb2, 0xbcb1, 0xbfd4, + 0xe711, 0xa1b5, 0x1f71, 0xc04b, 0xbc4e, 0xbeaf, 0xbfd8, 0xa76d, + 0xda3b, 0x3d99, 0xbdda, 0xa1ba, 0xa933, 0xbfa9, 0x3edd, 0xc027, + 0xc018, 0xbffc, 0xc009, 0x3e8c, 0x3f51, 0xc67a, 0x3ca2, 0xbfa4, + 0xbd87, 0xbf54, 0xa1bd, 0xc051, 0xbf54, 0xbc79, 0xcaaa, 0xb6f2, + 0xbd79, 0xbde8, 0xbdfa, 0xbf3f, 0xbf86, 0xbe5e, 0xbeae, 0xbfc1, + 0xbe2c, 0xbfae, 0x3e08, 0xbfdf, 0x26a0, 0xc00f, 0xbefb, 0xbe3e, + 0xbef8, 0xbfc3, 0xbf6f, 0xbfdc, 0x3ee8, 0x3ff1, 0xbff5, 0xbfa3, + 0x3f82, 0x3f84, 0xc013, 0xbf94, 0xbd43, 0xa1c2, 0x21c3, 0xa857, + 0xbe7c, 0xbcfe, 0xbe09, 0xbe67, 0x5385, 0xd49e, 0x3cea, 0xbdda, + 0xbfe4, 0x3e0e, 0xc006, 0xbf87, 0xbdf6, 0xbf23, 0xbf7f, 0xbe26, + 0xbeb3, 0xbe19, 0xbecc, 0xbf64, 0x3f97, 0xc900, 0xbf32, 0x3e0b, + 0x3f80, 0x3f81, 0xbfc7, 0xbf04, 0xa1c5, 0xa1c9, 0xbfb1, 0xbe7d, + 0xc5f3, 0xa1c4, 0x3cea, 0xbd99, 0xbe0c, 0x21c0, 0xbd44, 0xbca6, + 0x2a6c, 0xbedb, 0xbe7b, 0x26e6, 0x3e0a, 0xbe15, 0xbd9e, 0xbe05, + 0xbd45, 0xbc97, 0xbdf8, 0xbe34, 0x3d4e, 0xbfdf, 0xbd89, 0x26e6, + 0x3df5, 0xbe15, 0x3b6e, 0x3da9, 0x3f80, 0xbf81, 0xbde5, 0xbf2c, + 0x3d9c, 0xc006, 0xbf38, 0xbfa0, 0x2d60, 0x3eaa, 0x5c3f, 0xdc40, + 0xbf01, 0x26e6, 0x3df5, 0xbe0a, 0xc00b, 0xbef2, 0xbda3, 0xa1cf, + 0xbca8, 0xbda1, 0xbeab, 0xbd4b, 0xbe07, 0x6030, 0xe04a, 0xbd51, + 0xa1d1, 0xbd48, 0xbd8c, 0xbc64, 0xbdf3, 0xbd85, 0xbdc4, 0xc063, + 0x3ebc, 0xbfd5, 0x3ee1, 0xbeff, 0xbfda, 0xa24c, 0xbf70, 0xbffa, + 0xbf0a, 0xbf11, 0x3cfc, 0x3f51, 0xc67a, 0xa3b5, 0x3fdb, 0xd499, + 0x21c6, 0xa1d6, 0xbf91, 0xbc9f, 0x2d60, 0x3e13, 0x5c3f, 0xdc40, + 0xbe29, 0xbd49, 0x3cdd, 0xe061, 0xbda2, 0x4194, 0xe394, 0x3e7f, + 0xbfd5, 0xbca7, 0xc06d, 0xbda4, 0xd365, 0xbf77, 0x232f, 0xbc47, + 0xbefe, 0xbdeb, 0x3cf7, 0xc027, 0xbeef, 0x404e, 0x4054, 0xc067, + 0xc044, 0x3e80, 0xbeff, 0xc005, 0xbffe, 0xbfeb, 0xc064, 0x3d5c, + 0x3ff1, 0xbff5, 0xc058, 0xbfa6, 0x3caa, 0xcc04, 0xbede, 0xbe17, + 0x2364, 0x3f9b, 0xc002, 0x3c7b, 0xbd52, 0xbd50, 0xbeda, 0x3e80, + 0xbee1, 0xbe14, 0xbdaf, 0xb87c, 0xbe87, 0xbe89, 0xc055, 0xbca4, + 0xbc49, 0xbd9f, 0x1e79, 0x1e7e, 0x9e81, 0xc1b3, 0xbe0d, 0xbf44, + 0xbda8, 0xbe10, 0xbd46, 0xe88d, 0xbf31, 0xc04c, 0xc020, 0xc01f, + 0xc032, 0xbff0, 0x3cfc, 0x3e8c, 0xc67a, 0x3d01, 0xbd2f, 0xbca9, + 0x3f5c, 0xbff3, 0x3f5b, 0xbff3, 0xbda6, 0xbd54, 0xbe83, 0xc026, + 0xbed7, 0xbda0, 0x3b6e, 0x3da9, 0x3e0b, 0xbf81, 0x3b6e, 0x3da9, + 0x3e0b, 0xbf80, 0x3d67, 0x3f84, 0xc013, 0x3d67, 0x3f82, 0xc013, + 0xbd47, 0xbd9d, 0xbe9c, 0xbd69, 0xbda7, 0xbfb3, 0x2364, 0x3ef7, + 0xc002, 0xc03e, 0x21db, 0xa1dc, 0xbe11, 0xbd63, 0x3ca2, 0xbcfd, + 0xbeea, 0xbcf6, 0xbd4d, 0xc032, 0xbdc0, 0xbf9a, 0xbd4a, 0xbd53, + 0xbda9, 0x4028, 0xc02c, 0xc015, 0xbcb5, 0x3e7f, 0xbebc, 0xbcde, + 0x3e81, 0xc02f, 0x3e95, 0xd499, 0xbd55, 0x3d4e, 0xbe08, 0xbd9b, + 0xbee5, 0xbf4d, 0x3d5c, 0x3ee8, 0xbff5, 0x3f5b, 0xbf5c, 0x3d5c, + 0x3ee8, 0xbff1, 0x65ca, 0xe614, 0xbe85, 0xbcfa, 0xbee4, 0x2364, + 0x3ef7, 0xbf9b, 0xbee2, 0x3d9c, 0xbe0e, 0xbcfb, 0x3c88, 0xbe16, + 0xbd4f, 0x3d67, 0x3f82, 0xbf84, 0xbfd2, 0xbcf8, 0xbca5, 0xbf47, + 0xbf46, 0xbf74, 0x3cf7, 0xbedd, 0x3fd1, 0xc02c, 0x3fd1, 0xc028, + 0xbfda, 0xaf25, 0x3f4b, 0xbfb0, 0xbf9c, 0xbca3, 0xbee0, 0x1f71, + 0xbcd5, 0xbf45, 0x3edf, 0xc054, 0xc05d, 0xbd12, 0x3edf, 0xc04e, + 0xbf13, 0xbee9, 0xc04f, 0xbe7e, 0xbee6, 0xbedf, 0xbec5, 0x2149, + 0xc097, 0xc1c8, 0x670a, 0x671b, 0xe748, 0x4ac3, 0xcac8, 0x40fe, + 0xdd64, 0x407e, 0xc0d6, 0x407d, 0xc0d6, 0xc1e6, 0xc16c, 0x3c14, + 0x3c17, 0xbc23, 0x4210, 0x6229, 0xe46a, 0x23cd, 0xa3db, 0xc08f, + 0xc08e, 0x2149, 0xc06e, 0xc152, 0xc197, 0x362d, 0x36cc, 0x4167, + 0x41f3, 0xc7be, 0x4832, 0x491f, 0xc92e, 0xc0f1, 0xcf39, 0xeede, + 0x1e3a, 0xc232, 0x4149, 0x632c, 0xe34a, 0xc1be, 0xc20d, 0x41d7, + 0x421b, 0xc224, 0xc0f4, 0xc16c, 0x9e4c, 0x407d, 0xc07e, 0xc1ed, + 0xc159, 0xc169, 0x413c, 0xc1d2, 0x41c1, 0xc217, 0xc1f4, 0xc1d9, + 0xc1fc, 0xc1b1, 0xc0af, 0xc0c3, 0xc1a2, 0x407b, 0xdd64, 0xe2b7, + 0x21de, 0x4155, 0x4188, 0xc199, 0xe2b2, 0x9e9f, 0x4130, 0xc1c4, + 0xc165, 0xc1dc, 0xc1fe, 0x41cc, 0xc1d3, 0xb5e0, 0xc133, 0xc162, + 0x4114, 0xc1c4, 0xc126, 0x40e7, 0xc1d2, 0xe35b, 0x40bc, 0x632c, + 0xe34a, 0xc16e, 0xc09c, 0x21de, 0x4108, 0x4188, 0xc199, 0xb696, + 0xb696, 0xc0df, 0x412d, 0xd315, 0xc115, 0x36cc, 0x40a4, 0x41f3, + 0xc7be, 0xc0e6, 0x4080, 0xc0ca, 0xc151, 0x417e, 0xc185, 0x4174, + 0xc185, 0x4174, 0xc17e, 0x21de, 0x4108, 0x4155, 0xc199, 0xc1fb, + 0xd367, 0x3eb6, 0xe394, 0xc09d, 0x21de, 0x4108, 0x4155, 0xc188, + 0xc0fd, 0xc0ed, 0xe88e, 0xbf2b, 0xc1ba, 0xc1b9, 0xc0bd, 0x40e8, + 0xc217, 0x4114, 0xc130, 0xc06f, 0x411a, 0xc1d3, 0xac1e, 0x48f7, + 0xcca6, 0x40e7, 0xc13c, 0x411a, 0xc1cc, 0xedf0, 0x40c2, 0x421b, + 0xc224, 0xc0eb, 0xc116, 0x25b6, 0xd425, 0xc07f, 0xbbc1, 0xc0db, + 0x36cc, 0x40a4, 0x4167, 0xc7be, 0xc0e9, 0xc18f, 0xc0ec, 0xc118, + 0xd000, 0xc0c1, 0xc089, 0x40e8, 0xc1c1, 0x40c2, 0x41d7, 0xc224, + 0x40c2, 0x41d7, 0xc21b, 0x9e89, 0xb11b, 0x1e3a, 0xc0ba, 0xb52b, + 0xc23a, 0xc237, 0x9fce, 0x2c12, 0x2c13, 0xac14, 0x9e2c, 0xae8a, + 0xb96a, 0xa889, 0xa899, 0xcb3a, 0xc258, 0x4255, 0x4a93, 0x4a97, + 0xcabb, 0xb99c, 0x424e, 0x4a93, 0x4a97, 0xcabb, 0xc24d, 0xc25c, + 0xc25b, 0xab83, 0x3c02, 0xc29b, 0x1f10, 0xa0a0, 0xb2b5, 0xc27d, + 0x42a0, 0xc2a7, 0xc275, 0xc282, 0xc281, 0xa954, 0xc2a2, 0xd366, + 0x3c02, 0xc266, 0x427a, 0xc2a7, 0xc28a, 0x427a, 0xc2a0, 0xc2ad, + 0xc2ac, 0xa3d0, 0xdc7a, 0x5c7b, 0xdc8b, 0xc2c0, 0xc377, 0xc341, + 0xc336, 0xc2b6, 0x2448, 0xb282, 0xc2fd, 0xdc7e, 0xc329, 0xc36e, + 0xc370, 0xdc89, 0xaf87, 0xc368, 0xc2f9, 0xc345, 0xc36a, 0xc319, + 0xc344, 0xc33b, 0x430d, 0xdc8d, 0xc2ed, 0xc2c8, 0xc318, 0xb08d, + 0xc36b, 0xd653, 0xdc8e, 0x42f8, 0xdc8d, 0x431f, 0xc375, 0xc37c, + 0xc2fe, 0xc2f0, 0x430e, 0xc375, 0xc380, 0xc33f, 0xc2cc, 0xdc6c, + 0xdc93, 0xd75f, 0xc37b, 0xdc92, 0xc366, 0xc371, 0xc2b9, 0xc2f2, + 0x4328, 0xd76f, 0xc2b8, 0xc2f1, 0xc2ee, 0xe3e1, 0x2956, 0x2968, + 0xa96c, 0xdc98, 0xee9e, 0xc359, 0xc358, 0x217d, 0xc378, 0xc332, + 0xc2ec, 0xc2ef, 0x4303, 0xc381, 0xc37a, 0xc2dd, 0xc2de, 0xc335, + 0xd3b7, 0x430e, 0xc31f, 0xc2b7, 0x217d, 0xc363, 0xc36d, 0xc32e, + 0xc315, 0xdc9b, 0xc321, 0xc36b, 0x583c, 0xdc9c, 0xa999, 0xa35b, + 0xc4a3, 0xc4b5, 0xc452, 0xc46a, 0x43cf, 0xc474, 0xcfeb, 0xc44b, + 0xc4b0, 0xc3fe, 0xc472, 0xc447, 0xc4bd, 0x4409, 0x4460, 0xc4a2, + 0xc3ce, 0xc3cd, 0x43a8, 0xc474, 0xc43a, 0xc4cf, 0x4434, 0xc439, + 0x2b9d, 0x2bda, 0x2bf3, 0xabf6, 0xa72d, 0xc4ab, 0x448e, 0xc4d4, + 0xc43f, 0xc894, 0xc3b0, 0xbbec, 0xc46f, 0x43cb, 0x4460, 0xc4a2, + 0x4483, 0xc4c8, 0xc4a1, 0xc489, 0x4411, 0xc463, 0x4410, 0xc463, + 0xe6d5, 0x43e1, 0xc439, 0x43e1, 0xc434, 0xc3d0, 0xc4ca, 0xc3f2, + 0xc3b3, 0xc3ae, 0xc39a, 0xc8af, 0x43cb, 0x4409, 0xc4a2, 0x4410, + 0xc411, 0xc476, 0xc4a1, 0xd3b9, 0xc39b, 0xc405, 0xc4cc, 0xc3b1, + 0x43a8, 0xc3cf, 0xc464, 0xc4a6, 0xc4b8, 0x440d, 0xc4c8, 0xc4bf, + 0xc40f, 0x43f1, 0xc4d4, 0x440e, 0xc468, 0x43cb, 0x4409, 0xc460, + 0xc391, 0xc477, 0xc3f0, 0xc3af, 0xc399, 0xc478, 0x28d0, 0xc3ba, + 0xc487, 0x440d, 0xc483, 0xc4da, 0xc43c, 0xc470, 0xc3d1, 0xc4da, + 0x43f1, 0xc48e, 0x44c9, 0xc4d2, 0xaf01, 0xcf38, 0xc515, 0xc50c, + 0x4501, 0xcf3e, 0xc506, 0x44f6, 0xcf3e, 0xc4f7, 0xc4ef, 0x287c, + 0x4816, 0xc8da, 0xc4ee, 0x4f42, 0xcf4c, 0x2617, 0x2690, 0xac1d, + 0xb674, 0x1ea7, 0xc523, 0x1ea7, 0xc522, 0x4a4c, 0x52cf, 0xd607, + 0x2b81, 0x2bcd, 0x2bd5, 0x2bd7, 0x2bdc, 0xabe7, 0xe6fb, 0x9fbd, + 0x2722, 0xc53c, 0x2212, 0x2283, 0x2290, 0x456b, 0xc575, 0x2722, + 0xc53a, 0xc54e, 0xc55d, 0x4559, 0xc571, 0xb6a2, 0x1ea9, 0x4552, + 0x455d, 0xc55e, 0xd015, 0x283a, 0xc54d, 0x283a, 0xc54c, 0xc53d, + 0xc560, 0x1ea9, 0x4546, 0x455d, 0xc55e, 0x4544, 0xc571, 0xa959, + 0x1ea9, 0x4542, 0x4546, 0x4552, 0xc55e, 0x1ea9, 0x4546, 0x4552, + 0xc55d, 0xc551, 0xa793, 0xbbd5, 0xc567, 0xc565, 0xc56a, 0xc568, + 0x453b, 0xc575, 0xaf02, 0x4544, 0xc559, 0x23e0, 0x4582, 0x4589, + 0xc58a, 0xc587, 0x453b, 0xc56b, 0xaf53, 0xc585, 0xa84d, 0x23e0, + 0x4573, 0x4589, 0xc58a, 0x457a, 0xc586, 0xc585, 0xc574, 0x23e0, + 0x4573, 0x4582, 0xc58a, 0x23e0, 0x4573, 0x4582, 0xc589, 0x458f, + 0xde08, 0x458e, 0xde08, 0xc664, 0xc642, 0xc627, 0xc658, 0xc60d, + 0xd0ac, 0xc667, 0xc632, 0xc621, 0xc60b, 0x46b0, 0xe764, 0xc5fe, + 0xc665, 0xc670, 0xc5d9, 0xc662, 0x24d1, 0x2516, 0x255e, 0xc602, + 0xc5c9, 0xc646, 0xc626, 0xc613, 0xc647, 0xd139, 0x45f3, 0xeebb, + 0x3dcb, 0x45f2, 0xeebb, 0xc661, 0xc5fa, 0xc5f9, 0xc5b4, 0x24d1, + 0x2516, 0x255e, 0xc5d6, 0xc649, 0xc62e, 0x3108, 0xc652, 0xc5af, + 0xc5a1, 0xc5ea, 0xa591, 0xc61e, 0xc63b, 0xc617, 0xc5ae, 0xc645, + 0xc5e9, 0xc59f, 0xc65f, 0xc671, 0xc606, 0xc5ad, 0xc63b, 0x4618, + 0xc63a, 0xc66e, 0xc66d, 0xc597, 0x2af6, 0xb194, 0xc624, 0xc5e8, + 0xc5eb, 0xc605, 0x3108, 0xc609, 0x4670, 0xd1c3, 0xc5a0, 0xc669, + 0xc62a, 0xc5f4, 0xc5d2, 0xc66c, 0xc596, 0xc5c7, 0xc5ac, 0xc65e, + 0xc672, 0xc663, 0xc63f, 0xc63e, 0xd1de, 0x45c8, 0x4655, 0xd1c3, + 0xc62b, 0xc66b, 0xc675, 0xc674, 0x23d1, 0x32e8, 0x34a5, 0x3cfc, + 0x3e8c, 0x3f51, 0x467c, 0x6166, 0x6197, 0xe1b1, 0xa0dc, 0x23d1, + 0xc67a, 0x388d, 0xc682, 0x388d, 0xc681, 0xdc8c, 0x2e30, 0x2f52, + 0xbb78, 0xc690, 0x2373, 0xa37d, 0xdccb, 0xc68b, 0xc69a, 0x21d2, + 0xc691, 0xc6a1, 0xc69e, 0x36a4, 0xb6ad, 0xb61f, 0x45b1, 0xe764, + 0xc6ba, 0x46b8, 0xc6b9, 0xef13, 0x46b2, 0xc6b9, 0x46b2, 0xc6b8, + 0xc6b1, 0xef13, 0xc6c8, 0x376f, 0xb86e, 0xc6cd, 0xc6c1, 0x4f3d, + 0x6262, 0xe4b5, 0xc897, 0xc6c7, 0xc6de, 0x2869, 0xee7d, 0x46e3, + 0xdb7c, 0x5462, 0xd4cb, 0xc6dc, 0xc6e4, 0xcc20, 0xc6d7, 0xc6cf, + 0xac3d, 0x46d1, 0xdb7c, 0xc6d8, 0xa362, 0x5361, 0xd62f, 0x1eff, + 0xa023, 0xc742, 0x23bf, 0xce23, 0xc798, 0x5996, 0xd9c6, 0xb14e, + 0xc71f, 0xc71e, 0xc726, 0xc725, 0xc72f, 0xc7d3, 0x472b, 0xc787, + 0xc760, 0x1e51, 0x1f17, 0xd846, 0xd457, 0xc75c, 0xc709, 0xa6f0, + 0xc75e, 0xc7bc, 0xc741, 0xc750, 0xc737, 0xc765, 0xc764, 0xd9a9, + 0x23e1, 0xa8e1, 0xc7c1, 0xc7b6, 0xc72f, 0xc79e, 0xcff3, 0xc70d, + 0xc792, 0xc7aa, 0xc7d2, 0xc7da, 0xc7a0, 0x1e86, 0xb6b8, 0xc7d9, + 0xc786, 0xc751, 0x36cc, 0x40a4, 0x4167, 0xc1f3, 0xc785, 0xd499, + 0xc7a2, 0xc72c, 0xc7b0, 0xc7a9, 0xcb36, 0x47e7, 0xda20, 0x9faf, + 0x47e4, 0xda20, 0xc7ef, 0xc7eb, 0x3917, 0x4887, 0xc8f8, 0xc8ef, + 0xc92c, 0x483f, 0x4926, 0x6271, 0x62db, 0xe45b, 0xc8ad, 0xc8bc, + 0xc8c7, 0xc88e, 0x287c, 0x450e, 0xc8da, 0xc868, 0xc86f, 0xc8b8, + 0xa38e, 0xc8aa, 0xc8d6, 0x40ae, 0x491f, 0xc92e, 0xc92a, 0xc931, + 0xc92b, 0x47ff, 0x4926, 0x6271, 0x62db, 0xe45b, 0xc90e, 0xc85c, + 0xb731, 0xc8a9, 0xc864, 0xc8fd, 0xc8d1, 0xc904, 0xc841, 0xc856, + 0xc817, 0xc912, 0x27c6, 0x48ba, 0xc8bb, 0xc81a, 0xc8e0, 0x6e78, + 0x6e7b, 0xee7c, 0x38ca, 0x38cb, 0x3ab1, 0xbac0, 0x3917, 0xc7f4, + 0xc919, 0xc815, 0xc3f7, 0x27fc, 0x2d0e, 0xad5c, 0x27e6, 0x3900, + 0xc6cc, 0xc8e7, 0xc8e3, 0x2ca9, 0x2d52, 0xad53, 0xe7a8, 0xc855, + 0xc827, 0xc800, 0xc459, 0x33bd, 0xde2b, 0x6e78, 0xee7c, 0xc81c, + 0x486e, 0xc8bb, 0x486e, 0xc8ba, 0xc801, 0xc920, 0xc812, 0xc859, + 0xe695, 0xa387, 0xc82c, 0x287c, 0x450e, 0xc816, 0xc875, 0xc89c, + 0xc89b, 0xc7f6, 0xc1d0, 0xc7f4, 0xeec4, 0xc857, 0xbda7, 0xc85a, + 0x6669, 0x667a, 0xe6aa, 0x2760, 0xa89c, 0xc840, 0xc86a, 0xc88d, + 0x40ae, 0x4832, 0xc92e, 0xc8c1, 0x47ff, 0x483f, 0x6271, 0x62db, + 0xe45b, 0xc83a, 0xc83e, 0xc7fe, 0x40ae, 0x4832, 0xc91f, 0xc83b, + 0xc93b, 0xc93a, 0xc9ae, 0xc9b4, 0xc9a9, 0xc9a1, 0xa996, 0xc995, + 0xc9d8, 0xc9b0, 0xc98e, 0xb346, 0xc9b1, 0xc98d, 0xc984, 0xca1f, + 0xc97f, 0xc9aa, 0xc978, 0xc96f, 0xc94e, 0xc943, 0xafa1, 0xc940, + 0xc985, 0xc93c, 0xc962, 0xc977, 0xc93f, 0xe6e2, 0xc9c3, 0xa3b6, + 0xc9bf, 0xca08, 0x527a, 0x52b8, 0x541f, 0x54fa, 0xd5dd, 0xcc7c, + 0xae74, 0x49cc, 0x4a50, 0x67a6, 0x67a7, 0xef9d, 0x49cb, 0x4a50, + 0xef9d, 0xca2e, 0xd018, 0x4a09, 0xccb3, 0xcc83, 0xa3ea, 0xe8eb, + 0xc955, 0xca4d, 0x4a31, 0xca6a, 0xca2d, 0xca62, 0xca60, 0x4a3e, + 0x4a3f, 0x55c1, 0xd5f3, 0xca0e, 0x4a5e, 0xca6d, 0xc9c6, 0x49d4, + 0xccb3, 0xca05, 0x4cba, 0xd5ad, 0x4a3a, 0xca49, 0xb8f1, 0xc980, + 0xca4c, 0xc9f8, 0xc9cd, 0x49f0, 0xca6a, 0xca3b, 0x4a4f, 0xca69, + 0x4a1a, 0xca49, 0xca32, 0x4a01, 0x4a3f, 0x55c1, 0xd5f3, 0x4a01, + 0x4a3e, 0x55c1, 0xd5f3, 0x4cd3, 0xdc37, 0xca57, 0x4c87, 0xcce0, + 0x4a1a, 0xca3a, 0x4526, 0x4a23, 0x52cf, 0xd607, 0xc9ef, 0x6834, + 0xe896, 0x4a33, 0xca69, 0x49cb, 0x49cc, 0xef9d, 0xca61, 0xca42, + 0x4a06, 0xca6d, 0xc9fe, 0xca51, 0xc9fd, 0xca70, 0x6839, 0x683a, + 0x683d, 0xe893, 0x4a33, 0xca4f, 0x49f0, 0xca31, 0xd3b7, 0x4a06, + 0xca5e, 0xca63, 0x4aae, 0xcac6, 0xab86, 0xe631, 0xab8a, 0xcaca, + 0xcab3, 0xcac5, 0xcab5, 0x4aaf, 0xcab0, 0x424e, 0x4255, 0x4a97, + 0xcabb, 0x424e, 0x4255, 0x4a93, 0xcabb, 0xcac4, 0xcaa9, 0xcaba, + 0xcac7, 0xca9d, 0xbd3c, 0xde30, 0x2be0, 0xcab6, 0x4a77, 0xcac6, + 0x4a91, 0xcab0, 0x4a91, 0xcaaf, 0xca8a, 0xca8e, 0x2be0, 0xcaad, + 0xcaa5, 0x424e, 0x4255, 0x4a93, 0xca97, 0x4076, 0xcac8, 0xca9c, + 0xca8d, 0x4a77, 0xcaae, 0xcaa6, 0x4076, 0xcac3, 0xca83, 0xa947, + 0x4aea, 0xdc4e, 0x9f2b, 0x6f8d, 0xef92, 0x1e26, 0x20a1, 0xae76, + 0x4af6, 0xcaf8, 0x9fdf, 0x5abc, 0xdc0a, 0x4ad6, 0xdc4e, 0x4ade, + 0xcaf8, 0x4ade, 0xcaf6, 0xcbea, 0xcbe4, 0x4b4d, 0xcbb0, 0x2173, + 0xa4b2, 0xcb46, 0xcb67, 0xcb8d, 0x218a, 0x218c, 0x3547, 0x4b56, + 0x4b5e, 0xcba3, 0x9f53, 0x4bc4, 0xd303, 0xc7e2, 0x424b, 0xcb8b, + 0x4bed, 0xcc60, 0xcc69, 0xcbb2, 0xcb14, 0xd9d4, 0x4b0b, 0xcbb0, + 0x3830, 0xba43, 0xcb7a, 0xcbc9, 0x3547, 0x4b27, 0x4b5e, 0xcba3, + 0xcc06, 0xcb82, 0xcbf3, 0xcbe9, 0xcc39, 0xcb8f, 0x3547, 0x4b27, + 0x4b56, 0xcba3, 0xcb15, 0xcbe0, 0xcc4c, 0xcb50, 0xcbd4, 0x4c3d, + 0x4c56, 0xcc64, 0xcbe0, 0xcc21, 0xcb59, 0xcbe6, 0x00f6, 0x1e2a, + 0xa00b, 0xcb3a, 0xcb1f, 0xcb5d, 0xae1a, 0xcc59, 0xa284, 0x3547, + 0x4b27, 0x4b56, 0xcb5e, 0x4c00, 0xd536, 0xcbcb, 0xcc5c, 0xcc6e, + 0xcc1e, 0xcc2b, 0xcbdb, 0x4b0b, 0xcb4d, 0xcb45, 0xd282, 0x4b35, + 0xd303, 0xd483, 0xcb51, 0x2327, 0xcba7, 0xad4c, 0xcc23, 0xcc0d, + 0xcb7c, 0xcc46, 0xcbac, 0x4b71, 0xcb7f, 0xcc12, 0xcb03, 0xcb86, + 0x4b5b, 0x4c01, 0xcc6d, 0xcafe, 0x4b3c, 0xcc60, 0xcc43, 0xcc5b, + 0xcc6c, 0xaf57, 0xcb5a, 0x4ba6, 0xd536, 0x4be9, 0xcc6d, 0x3caa, + 0xbeec, 0xcb58, 0xcbd3, 0x4c14, 0xd4d1, 0xcbe1, 0x4c11, 0xd4d1, + 0xcc6a, 0x3881, 0xba11, 0xcc2b, 0xcbaa, 0xc6d9, 0xcb80, 0xcbd1, + 0xa142, 0x4bab, 0xcc18, 0x35d7, 0xcc4f, 0xba90, 0xcb5c, 0xcb7e, + 0xae18, 0x4c52, 0xcc55, 0xcc5f, 0xcbee, 0xcbd7, 0xcb79, 0x35d7, + 0xcc31, 0xcc58, 0xcc40, 0x55ae, 0xd5ea, 0xcc40, 0x4b7e, 0xcc64, + 0x4c50, 0xd5e4, 0xcb93, 0xcbef, 0xcba8, 0xcc41, 0x4b3c, 0xcbed, + 0x4b7e, 0xcc56, 0xcb3e, 0xcc16, 0xcbf1, 0x4be9, 0xcc01, 0xcba9, + 0x2401, 0xefa5, 0xccf4, 0xe85e, 0xc9c8, 0xc9d5, 0x4a45, 0xcce0, + 0xccb9, 0xeea4, 0xeecf, 0x5083, 0xd085, 0xccf6, 0xccf2, 0xccb5, + 0x1ffc, 0xeb3b, 0xc1d0, 0x2986, 0x299d, 0x2a24, 0xccda, 0xccde, + 0x36f2, 0x6eaf, 0x6eb4, 0xeeb9, 0xcce7, 0x49d4, 0xca09, 0xcca4, + 0xcc8b, 0xca17, 0xccc9, 0xccdd, 0x6762, 0x6eaa, 0x6eab, 0x6eb5, + 0xeeba, 0xe931, 0xccbd, 0xe92c, 0x4a40, 0xdc37, 0xe93b, 0x2986, + 0x299d, 0x2a24, 0xcca7, 0xccc1, 0xccaa, 0x4a45, 0xcc87, 0xe94e, + 0xccae, 0x26e2, 0xa6e3, 0xcc9d, 0xcc74, 0xcc9c, 0x1e1d, 0x4cf9, + 0x4d72, 0xce9f, 0x4cf8, 0xce9f, 0xccfe, 0x1fc2, 0x4e18, 0x4e4b, + 0xce6b, 0x229f, 0xccff, 0x4cfa, 0xcea0, 0x229f, 0xccfc, 0xceaa, + 0xcea3, 0xcea6, 0xcea2, 0xcea1, 0xcea5, 0xcea8, 0xceab, 0xceb9, + 0xceb3, 0xcebd, 0xcebe, 0xceaf, 0xceb0, 0xcebc, 0xceb1, 0x4d8b, + 0xceae, 0x2e0b, 0xceb8, 0xcea7, 0xceb7, 0xcead, 0x4d4d, 0xceb4, + 0xceba, 0xcdb7, 0xcd2e, 0xcdca, 0x4da2, 0xcef8, 0x324e, 0xcd25, + 0x4e32, 0x4e8d, 0x4e9d, 0xcf27, 0xcec6, 0xcec2, 0xcec1, 0xcec5, + 0xcebb, 0xcecd, 0xcec0, 0xcecb, 0xced0, 0xcecc, 0xcec8, 0xaf26, + 0xcec4, 0xcd97, 0x4eca, 0xe77d, 0xae15, 0xcea9, 0x4d93, 0xcecf, + 0xcd1d, 0xced7, 0xcec1, 0xced3, 0x34a7, 0x4d76, 0xcedd, 0xce8a, + 0xcdea, 0x4e27, 0xcee6, 0x4ed4, 0xd8b4, 0xcede, 0xcedc, 0xceda, + 0x4dab, 0x4dda, 0x4ebf, 0xcf10, 0xd32f, 0xced9, 0xced2, 0xced6, + 0x4d82, 0xcedf, 0x1e1d, 0xccf8, 0xcedb, 0x4e6a, 0xced8, 0x34a7, + 0x4d55, 0xcedd, 0xce36, 0x4e6d, 0xd812, 0xcee2, 0xced1, 0x4d71, + 0xcedf, 0xcee1, 0xcee0, 0xcee8, 0xcee3, 0xcd18, 0xcee4, 0xcee5, + 0x3346, 0xb8b1, 0x4d4c, 0xcecf, 0xcd45, 0x4e7c, 0xcee7, 0x4e8c, + 0x4eed, 0xdce1, 0xcefc, 0xcf0d, 0x4dd1, 0xceff, 0x4d2c, 0xcef8, + 0xcefb, 0x4d64, 0x4dda, 0x4ebf, 0xcf10, 0xcef6, 0xcef4, 0xcef9, + 0xcefe, 0xceb2, 0xcf51, 0x4e43, 0xcef7, 0x23d5, 0xcf00, 0xaf69, + 0xcd23, 0xceb6, 0xcefa, 0xceee, 0xcefd, 0x4e5b, 0xcef0, 0xceeb, + 0xcef5, 0xcef2, 0xcf01, 0xcd27, 0xceef, 0xcde1, 0x303b, 0x3460, + 0x4deb, 0xce3d, 0xce41, 0x4da0, 0xceff, 0x4dd6, 0xceea, 0xcef1, + 0xce83, 0x4dd2, 0xceea, 0xcf03, 0xcf04, 0xcf02, 0x4d64, 0x4dab, + 0x4ebf, 0xcf10, 0xcef5, 0xcf09, 0xcf0e, 0xcf14, 0x4dcd, 0xcf17, + 0x4e01, 0xcf18, 0xd913, 0xcf0c, 0xcf16, 0xcf13, 0xcd5a, 0x303b, + 0x3460, 0x4dcf, 0xce3d, 0xcf05, 0xceac, 0xcf11, 0xcf08, 0xcec3, + 0xcf0f, 0xcf07, 0xd1f4, 0x4e15, 0xcf0a, 0x4de3, 0xcf18, 0x4e69, + 0xcef3, 0xd426, 0xcf19, 0xcf22, 0xcf12, 0xcec9, 0xcf23, 0x4dfc, + 0xcf0a, 0xcf1e, 0x4cfb, 0x4e4b, 0xce6b, 0xcf1a, 0xcf1c, 0xcf1f, + 0xcf1b, 0x23bf, 0xc70c, 0x4e31, 0xceb5, 0x4d5b, 0xcee6, 0xae4c, + 0xcf1d, 0xcf21, 0xcf29, 0x4e26, 0xceb5, 0x4d2f, 0x4e9d, 0xcf27, + 0xcea4, 0xcf26, 0x4d77, 0xe9bd, 0xcf15, 0xcf25, 0x303b, 0x3403, + 0x3460, 0x4dcf, 0xcdeb, 0xcee9, 0xcdd0, 0x4db3, 0xcef7, 0x4e70, + 0xcf2b, 0xcf2a, 0xce66, 0x4e8e, 0x4e96, 0xcea4, 0x4cfb, 0x4e18, + 0xce6b, 0x4e61, 0xcee3, 0xcf2f, 0xcec7, 0xcf2e, 0x1f1e, 0xa098, + 0xcffb, 0xcf2d, 0xcdbd, 0xced5, 0x4e4d, 0xcee3, 0xcf0b, 0xce82, + 0xce48, 0x4e04, 0xcef3, 0x4d75, 0xced8, 0x4cfb, 0x4e18, 0xce4b, + 0x4d78, 0x5327, 0xd812, 0x4f30, 0xe7c1, 0xcf33, 0x4e45, 0x4f2b, + 0xcf32, 0xcf34, 0xcece, 0x4d99, 0xcee7, 0xcf24, 0xcf31, 0xb9db, + 0xce64, 0xcdd5, 0xe8a3, 0xcf2c, 0x4e98, 0xcf35, 0x4d56, 0xcea9, + 0x4d9a, 0x4eed, 0xdce1, 0xcd2f, 0x4e4a, 0x4e96, 0xcea4, 0x4e92, + 0xcf20, 0x4e8f, 0xcf20, 0xcf28, 0xb24d, 0x4e4a, 0x4e8e, 0xcea4, + 0x4e89, 0xcf35, 0xcf06, 0x4d2f, 0x4e32, 0xcf27, 0x4cf8, 0xccf9, + 0xccfe, 0xcd06, 0xcd05, 0xcd02, 0x4e34, 0x4e4a, 0x4e8e, 0xce96, + 0xcd07, 0xcd04, 0xcd1a, 0xcd08, 0x4d4b, 0xce8a, 0xcd00, 0xcd09, + 0xcdef, 0xcd1c, 0xcd18, 0xcd14, 0xcd15, 0xcd17, 0xcdb1, 0xcd0d, + 0xcd1d, 0x4e26, 0xce31, 0xcdb8, 0xcd1b, 0xcd19, 0xcd0b, 0xcd21, + 0xcd35, 0xcd16, 0xcd10, 0xcd13, 0x4d64, 0x4dab, 0x4dda, 0xcf10, + 0xcd3a, 0x4d32, 0xcd4f, 0xcd31, 0xcdf4, 0xcd44, 0xcd33, 0xcd30, + 0xce54, 0xcd42, 0xce10, 0xcd46, 0xcd3c, 0xcd40, 0xcd39, 0xce79, + 0x4d4c, 0xcd93, 0xcd3f, 0xcd81, 0xcd68, 0xcd50, 0xcd5d, 0x4e5e, + 0xe076, 0xcd70, 0xcd4e, 0x4d75, 0xce6a, 0xcd66, 0xcd62, 0xcd73, + 0xcd61, 0x34a7, 0x4d55, 0xcd76, 0xcd5e, 0x4d71, 0xcd82, 0xcd86, + 0xcd83, 0xcd79, 0x4d89, 0x4e4d, 0xce61, 0xcd8c, 0xcd8f, 0x4d5b, + 0xce27, 0x4d99, 0xce7c, 0xcd88, 0xce3e, 0x4dd2, 0xcdd6, 0xcdbe, + 0x4d9a, 0xce8c, 0xcdba, 0xcdcb, 0xcdbd, 0xcdd4, 0xcdc4, 0x4e04, + 0xce69, 0xcdad, 0x4dbf, 0xcddc, 0xcdac, 0x4db3, 0xce43, 0x4d2c, + 0xcda2, 0xcdaf, 0xcdb9, 0xcda3, 0xcd9c, 0xcdbb, 0xcdb0, 0x4da0, + 0xcdd1, 0xcdb4, 0xcdc7, 0xcdd9, 0xcdd7, 0xcdd8, 0xcdec, 0xce9c, + 0xcdf9, 0xcdf2, 0xcddd, 0x4dfc, 0xce15, 0xce62, 0xcde6, 0xcd9e, + 0xcdde, 0xcdf6, 0x4d64, 0x4dab, 0x4dda, 0xcebf, 0xcdf1, 0xce0b, + 0xcde9, 0xcde0, 0xce37, 0xcde8, 0xcde1, 0x4de3, 0xce01, 0xce09, + 0xce1b, 0xce1f, 0xce1d, 0xce2b, 0xce17, 0xce1e, 0x4e8f, 0xce92, + 0xce2d, 0xce0a, 0xce11, 0xce7d, 0xce39, 0xce35, 0x4d2f, 0x4e32, + 0xce9d, 0xce93, 0xce2e, 0xce46, 0x4e45, 0xce70, 0xce88, 0xce5a, + 0xce55, 0xce52, 0x4e6e, 0xe7c1, 0xce7e, 0xce70, 0xce6f, 0xce73, + 0x4e89, 0xce98, 0x4f3b, 0x4f50, 0xe475, 0xa378, 0xc4e8, 0xc0b0, + 0x3b20, 0xcf3c, 0xcf36, 0x3b20, 0xcf3a, 0x46cb, 0x6262, 0xe4b5, + 0x44f6, 0xc501, 0x4516, 0xcf4c, 0xba3d, 0x275b, 0x28b0, 0x28b5, + 0x28dc, 0xcf4e, 0x4516, 0xcf42, 0x275b, 0x28b0, 0x28b5, 0x28dc, + 0xcf48, 0x4f36, 0xe475, 0x4db2, 0x4f52, 0xcf53, 0x4f51, 0xcf53, + 0x4f51, 0xcf52, 0x2570, 0x26c9, 0xcf85, 0x4f70, 0xcf78, 0xcf77, + 0x3683, 0xdfa0, 0x4f5a, 0xcf78, 0xcf86, 0x208c, 0x69e1, 0xea82, + 0xcf80, 0xcf62, 0x4f5a, 0xcf70, 0xcf76, 0x4f88, 0xd98a, 0x21aa, + 0xae42, 0xcf57, 0xcf74, 0x4f88, 0x5989, 0xd98a, 0x4f81, 0x4f87, + 0x5989, 0xd98a, 0xd288, 0xd288, 0xcf97, 0xcf91, 0xcf90, 0xcf8c, + 0xcfa5, 0xcfa8, 0xcfa4, 0xcfa3, 0xcf9f, 0xcfa1, 0x9e49, 0x217b, + 0xe90a, 0xcfb9, 0x4fb6, 0xd1bb, 0x4fb4, 0xd1bb, 0xcfae, 0x4fc5, + 0xcfe4, 0x4fc4, 0xcfe4, 0xcfe0, 0x9e60, 0xcff9, 0xcffd, 0xcfec, + 0xcfc6, 0x4fc4, 0xcfc5, 0xc3a9, 0xcfda, 0xcffa, 0xc796, 0xcfd8, + 0xcff1, 0x4e59, 0xe8dc, 0xcfd9, 0xc1ff, 0xb537, 0xd008, 0xd007, + 0xd00b, 0xd00a, 0xc54a, 0xc9d0, 0xb7b1, 0xe504, 0xd02e, 0xd5c9, + 0xd02c, 0x39c8, 0xe392, 0xd027, 0xd022, 0xbacc, 0xd073, 0xb065, + 0xd043, 0xdead, 0x504c, 0x5077, 0xdec4, 0xd076, 0xd03c, 0xd07e, + 0x5040, 0x5077, 0xdec4, 0xd079, 0x5068, 0xd06f, 0x2723, 0xa7a9, + 0xe5fb, 0x28fb, 0xaa7f, 0x5066, 0x506a, 0xd070, 0x5061, 0x506a, + 0xd070, 0x5054, 0xd06f, 0xd075, 0x5061, 0x5066, 0xd070, 0xd06f, + 0x2abf, 0xb127, 0xd06f, 0x5054, 0x5068, 0x506b, 0xd06e, 0x5061, + 0x5066, 0xd06a, 0xa8f0, 0xd038, 0x242c, 0xd07d, 0xd069, 0xd042, + 0x5040, 0x504c, 0xdec4, 0xd04d, 0x242c, 0xd074, 0xd04b, 0x4c9b, + 0xd085, 0x4c9b, 0xd083, 0xd088, 0xd087, 0xab8d, 0xd0af, 0x5178, + 0xd193, 0xd135, 0xd19a, 0xd0da, 0xc5a3, 0xeaaf, 0x508e, 0xd0bb, + 0xa3b7, 0x3bd3, 0xd8ac, 0xe91a, 0xd0af, 0xd14e, 0xd16b, 0xd139, + 0x5105, 0x5107, 0xd10b, 0x1f37, 0xa191, 0x51bb, 0xd1bd, 0xb3f9, + 0xd0a7, 0xa2dd, 0x585a, 0xeb0d, 0xb727, 0xd156, 0xd1da, 0x511b, + 0xde01, 0xd1d9, 0xd1a0, 0x5106, 0xd13a, 0x50c1, 0xd10b, 0x5103, + 0xd13a, 0xd0c1, 0xd109, 0xd108, 0x50c1, 0xd105, 0xd1be, 0x51d3, + 0x51df, 0xead2, 0xd1cd, 0x5133, 0xd166, 0xd1bf, 0xd1e0, 0xa43b, + 0x5173, 0xde0b, 0x50eb, 0xde01, 0xa507, 0x9fee, 0xd131, 0xd12b, + 0x2318, 0x5111, 0xd166, 0xd0a1, 0xd161, 0xd1c9, 0x45ee, 0xd0c0, + 0x5103, 0xd106, 0xd157, 0xa00e, 0x51c8, 0xd1d8, 0xe183, 0xd0be, + 0xd0e8, 0xd13e, 0xd195, 0xd1a3, 0xd136, 0x2318, 0x5111, 0xd133, + 0xd0bf, 0xef76, 0xe84b, 0x511a, 0xde0b, 0x50a0, 0xd193, 0xd1a9, + 0xd183, 0xea30, 0xeac8, 0xd190, 0xd17d, 0xd182, 0xd1cf, 0x50a0, + 0xd178, 0xd158, 0xd0a4, 0xd0f6, 0xd15f, 0xecd5, 0xd17b, 0xe94d, + 0x6ac4, 0xead3, 0x4fb4, 0x4fb6, 0x50c6, 0xd1bd, 0x50c6, 0xd1bb, + 0xd10d, 0xd113, 0xd1cb, 0x4655, 0xc670, 0x514a, 0xd1d8, 0xd138, + 0xd1c0, 0xd110, 0x5191, 0xead5, 0x510f, 0xd1df, 0x514a, 0xd1c8, + 0xd0ed, 0xd0ea, 0xd1e2, 0xc66f, 0x510f, 0xd1d3, 0xd114, 0xd1dc, + 0xa367, 0x9e34, 0xd1f0, 0xd1ed, 0xcdfb, 0x23f0, 0xa76e, 0xdf3f, + 0x9e0e, 0xa174, 0x1e3e, 0x3319, 0xb4e7, 0xb5e7, 0x3368, 0xd20e, + 0xd20d, 0xd213, 0xd210, 0x5217, 0x62ea, 0xe4fa, 0x5216, 0x62ea, + 0xe4fa, 0xe928, 0xd264, 0xd239, 0x523b, 0xd26b, 0xd266, 0xd259, + 0xb7c1, 0xd24a, 0xd229, 0x522e, 0xd26b, 0xd236, 0xd231, 0xba2f, + 0x3a79, 0xd26a, 0xd223, 0xd230, 0x3a79, 0xd263, 0x522e, 0xd23b, + 0xd271, 0x26cf, 0xd270, 0x5276, 0x5277, 0x5c53, 0xdc54, 0x5273, + 0x5277, 0x5c53, 0xdc54, 0x5273, 0x5276, 0x5c53, 0xdc54, 0xd279, + 0xd278, 0x49c7, 0x52b8, 0x541f, 0x54fa, 0xd5dd, 0xcbc0, 0x4f8a, + 0xcf8b, 0xd28c, 0xd28b, 0xa349, 0xd58c, 0xd56a, 0xd606, 0xd2b2, + 0xd2b1, 0x49c7, 0x527a, 0x541f, 0x54b7, 0x54fa, 0x5553, 0xd5dd, + 0xa20d, 0xd4ef, 0x1e42, 0xa208, 0xd466, 0xd5f6, 0xd3a7, 0xd407, + 0xd4bc, 0xd2e7, 0x26cc, 0x4526, 0x4a4c, 0x5607, 0xd613, 0xd351, + 0xd2e2, 0xd2e1, 0xd2ce, 0xa040, 0x55b2, 0xd60b, 0xd393, 0xd3f0, + 0x4b35, 0xcbc4, 0x2179, 0xd332, 0xd396, 0xd622, 0xd526, 0xa84b, + 0xc162, 0xd354, 0x4e6d, 0xd812, 0xcd65, 0xd438, 0x2179, 0xd30a, + 0xd34a, 0xd395, 0xd346, 0x1f9f, 0xd5a6, 0xd2d0, 0xd318, 0x2e84, + 0xd38a, 0xd598, 0xd3a2, 0xd558, 0xd4fd, 0xd434, 0xd54e, 0xd588, + 0x5415, 0xd5ba, 0x46ea, 0x5569, 0xd62f, 0x3804, 0xb9ae, 0xd477, + 0xbece, 0xc296, 0xc192, 0xd541, 0xd5ce, 0xd4c0, 0xd52d, 0xd552, + 0xd452, 0xd464, 0x546f, 0x55ac, 0xd5e5, 0xdc46, 0xb357, 0xd510, + 0x3d96, 0xd49e, 0x2e84, 0xd358, 0xd2fa, 0xd347, 0xd30e, 0xa50d, + 0xd35a, 0xd2cb, 0xd40a, 0xd4ee, 0xd494, 0xd435, 0xd3df, 0xd59f, + 0x4372, 0xca6b, 0xd555, 0xc469, 0x6d2c, 0x6daf, 0xee0e, 0x5493, + 0xd4f4, 0xd3be, 0xd3bd, 0xd458, 0xb79c, 0x235c, 0xd514, 0xd3b5, + 0xa807, 0x234e, 0x2d0b, 0xd550, 0xd2fd, 0xd506, 0x2eb5, 0x544a, + 0xd4ed, 0xd445, 0xd2cc, 0xd3b1, 0xd420, 0xd4f1, 0x5360, 0xd5ba, + 0xd600, 0xd63f, 0x49c7, 0x527a, 0x52b8, 0x54fa, 0xd5dd, 0xd40c, + 0x56cd, 0xd7a2, 0x25b6, 0xc1df, 0xce08, 0xd56d, 0xd5a9, 0x9e07, + 0x557f, 0x55fc, 0xd610, 0xd35d, 0xd3b4, 0xd330, 0xd55a, 0xd3f9, + 0xa3f6, 0x2eb5, 0x53f4, 0xd4ed, 0xd36d, 0xc740, 0xd3d1, 0xb939, + 0xd593, 0x46d6, 0xd4cb, 0xd36e, 0xd2c7, 0xd58a, 0xa85f, 0xb934, + 0xd36f, 0xd525, 0xd364, 0xd515, 0xcbc6, 0xd546, 0xd562, 0xd523, + 0xd51e, 0xb41c, 0x53bc, 0xd4f4, 0xd3b3, 0x31de, 0x3e95, 0x3fdb, + 0xc7c7, 0x3d96, 0xd385, 0xaf60, 0xd533, 0xd2b8, 0xd2cd, 0xd36a, + 0xae2d, 0x46d6, 0xd462, 0x4c11, 0xcc14, 0xd5cd, 0xd58a, 0xd63a, + 0xd577, 0xe3a3, 0xea40, 0x2eb5, 0x53f4, 0xd44a, 0xd3b2, 0xd2c1, + 0xd40d, 0x53bc, 0xd493, 0x49c7, 0x527a, 0x52b8, 0x541f, 0xd5dd, + 0xd35c, 0x298d, 0xa9f8, 0xd3f1, 0xd37b, 0xd84a, 0x235c, 0xd3d4, + 0xd482, 0xd48c, 0xd48b, 0xd471, 0xd311, 0xd36b, 0xd5bc, 0xd53b, + 0xd4a8, 0xeebb, 0x2328, 0xd5cf, 0x4ba6, 0xcc00, 0xd594, 0xd61e, + 0xd5fa, 0xd532, 0x55f9, 0xdb6a, 0xd368, 0xd487, 0x554b, 0xd602, + 0x554a, 0xd602, 0xd35e, 0x234e, 0xd3ef, 0xd36c, 0xd2b8, 0xd3b8, + 0xd35b, 0xd43c, 0xd489, 0xd361, 0xd29c, 0xd427, 0xd580, 0xd604, + 0x55f4, 0xd60a, 0xd4e3, 0x5431, 0x55fc, 0xd610, 0xd570, 0xd35f, + 0x546a, 0xd4df, 0xd297, 0xa9dc, 0xd460, 0xd537, 0x26ed, 0xa712, + 0xd359, 0xd3b6, 0x1f9f, 0xd350, 0xd428, 0x55b0, 0xd60d, 0x536f, + 0xd5e5, 0xca17, 0x4c54, 0xd5ea, 0xd5f7, 0x55ab, 0xd60d, 0x52f9, + 0xd60b, 0x5360, 0xd415, 0xd52f, 0x4a01, 0x4a3e, 0x4a3f, 0xd5f3, + 0x1e1b, 0x23e2, 0x3a37, 0xbb09, 0x201f, 0x2fa3, 0xd024, 0xd4dd, + 0xd369, 0x2328, 0xd535, 0xd61a, 0x49c7, 0x527a, 0x52b8, 0x541f, + 0xd4fa, 0x563d, 0xd646, 0xcc58, 0x536f, 0xd5ac, 0x4c54, 0xd5ae, + 0x4a01, 0x4a3e, 0x4a3f, 0xd5c1, 0x5574, 0xd60a, 0xd2c8, 0xd5af, + 0x553c, 0xdb6a, 0xd53a, 0x5431, 0x557f, 0xd610, 0xd41a, 0x554a, + 0xd54b, 0xd572, 0xd2a6, 0x4526, 0x4a4c, 0x52cf, 0xd613, 0x5574, + 0xd5f4, 0x52f9, 0xd5b2, 0x55ab, 0xd5b0, 0x6a65, 0xeaa5, 0x5431, + 0x557f, 0xd5fc, 0x52cf, 0xd607, 0xba97, 0xd5d3, 0xd539, 0xd30f, + 0xa170, 0x46ea, 0xd361, 0xd4e0, 0x55df, 0xd646, 0xd41d, 0xa914, + 0x55df, 0xd63d, 0x1e55, 0xd65d, 0xd65c, 0xb16e, 0xc307, 0x21e6, + 0xa904, 0xa47c, 0x565a, 0xd65b, 0x5657, 0xd65b, 0x5657, 0xd65a, + 0xd64f, 0x1e55, 0xd64e, 0xa3f7, 0xd666, 0xd665, 0x9e8f, 0x567a, + 0xd7f2, 0xd66f, 0xd7e3, 0xd66c, 0xd768, 0x2b83, 0xd6c7, 0xd66b, + 0xd771, 0xe6d6, 0xd766, 0xd806, 0xd755, 0xd7fb, 0xd79e, 0xd801, + 0x57a1, 0xd7c1, 0xd739, 0xd72f, 0x5745, 0x5836, 0xd83a, 0xd788, + 0xd6d4, 0xd814, 0xd6ba, 0xec8d, 0xd706, 0xd6d4, 0xd6a6, 0x2b83, + 0xd675, 0xd831, 0x5424, 0xd7a2, 0x5807, 0xd823, 0xd7f6, 0x5698, + 0x56b4, 0xd716, 0xef03, 0xd83b, 0xd7a7, 0xd7c4, 0xd6fa, 0xd7ef, + 0xd784, 0xd810, 0xd6f1, 0xd715, 0x5c9d, 0xdd1d, 0xd82d, 0xd6ac, + 0xd782, 0xd6fb, 0xd6d4, 0xd778, 0x574b, 0xd81f, 0xd68c, 0xd68b, + 0xeb4e, 0x5695, 0x5836, 0xd83a, 0x577f, 0xd805, 0xd7c8, 0xd7ec, + 0x5721, 0xd81f, 0xd80d, 0xd680, 0xc32c, 0xd815, 0xd67e, 0xd671, + 0xc33f, 0xd67b, 0xd717, 0xd7bb, 0xd811, 0x5747, 0xd805, 0xd7bf, + 0xd70b, 0xd6f3, 0xd696, 0xd78e, 0xd78d, 0xd7fb, 0x5827, 0xd839, + 0xd682, 0xd68a, 0x5424, 0xd6cd, 0x3594, 0xb59e, 0xd6ef, 0xd7ce, + 0xd77c, 0xd780, 0xd68a, 0xd6f0, 0xd7c7, 0xd7c6, 0xd748, 0xd7a8, + 0xd828, 0xd80e, 0xd66e, 0xd749, 0xd6f2, 0xd66b, 0xd6cf, 0xd821, + 0xd80f, 0x5681, 0xd798, 0xd683, 0x5747, 0xd77f, 0xd67f, 0x56ce, + 0xd823, 0xd74e, 0xd7d2, 0xd7f9, 0xd6f4, 0xd77e, 0x4d78, 0x4e6d, + 0xd327, 0xd69d, 0xd761, 0x5721, 0xd74b, 0xd7f8, 0xb0f7, 0x56ce, + 0xd807, 0x5799, 0xd839, 0xd7cf, 0xd702, 0xd6ca, 0x5695, 0x5745, + 0xd83a, 0x5799, 0xd827, 0x5695, 0x5745, 0xd836, 0xd6ee, 0x4383, + 0xdc9c, 0xd844, 0xd842, 0xe1c1, 0x1e51, 0x1f17, 0xc73e, 0x24af, + 0xa580, 0xd511, 0xb72f, 0x2563, 0x5858, 0xe29c, 0xa40c, 0xadf7, + 0x2563, 0x5854, 0xe29c, 0xd0e1, 0x236b, 0xd85e, 0x2675, 0x585f, + 0xe053, 0xa1b2, 0x236b, 0xd85b, 0x2675, 0x585c, 0xe053, 0xd864, + 0xd863, 0xd8dc, 0xe336, 0xd96f, 0xd89e, 0xa3ea, 0xd8b5, 0xd956, + 0x2acb, 0x2b1d, 0xd8ca, 0xd918, 0xae12, 0x596a, 0x67c8, 0xe7e4, + 0xd86e, 0x3bd3, 0xd0b2, 0xd972, 0xeef9, 0xd94f, 0x4d5d, 0xd8e4, + 0xd87d, 0xd8cc, 0xd8dd, 0xd960, 0xd90c, 0xd885, 0xd8b7, 0x58e1, + 0xe1cc, 0xd8e0, 0xd865, 0xd8c5, 0xd8d9, 0x58cf, 0xe1cc, 0xd933, + 0xd95d, 0x58b4, 0xd932, 0xd947, 0x5912, 0xd943, 0xb707, 0xd92b, + 0xd8f5, 0xd8f4, 0xa236, 0xa90d, 0xb0fc, 0xd8c8, 0xd90f, 0xd90e, + 0x58e6, 0xd943, 0xcde5, 0xd886, 0xd938, 0xd94c, 0xd8ed, 0xd8e4, + 0xd8e2, 0xd964, 0xd91b, 0x9eb5, 0x58e6, 0xd912, 0xd8e5, 0xd91d, + 0xb742, 0xd8af, 0xd974, 0xd884, 0xd8e3, 0xd8c6, 0xd934, 0xd89c, + 0xb446, 0xb4f7, 0xd86c, 0xd8ad, 0x5955, 0xd97d, 0xd974, 0x2364, + 0xa365, 0x290d, 0xafa9, 0xe738, 0xb838, 0x4f87, 0x4f88, 0xd98a, + 0x4f81, 0x4f87, 0x4f88, 0xd989, 0xd9c1, 0xaf01, 0xd9c3, 0xd9c4, + 0x599a, 0x59ba, 0xd9c9, 0x5994, 0xd9c5, 0x5993, 0xd9c5, 0x470e, + 0xd9c6, 0xd9c7, 0x5990, 0x59ba, 0xd9c9, 0xd9cb, 0xd9cd, 0xd9ce, + 0x59bd, 0xd9c8, 0xc779, 0x9eb2, 0xd9ca, 0xd9cf, 0xd9b7, 0xd9d0, + 0x59c0, 0xd9c2, 0xd9bc, 0x59b0, 0xd9d1, 0x358d, 0x5990, 0x599a, + 0xd9c9, 0xd9b6, 0x59a7, 0xd9c8, 0xd9cc, 0x59b3, 0xd9c2, 0xd98b, + 0x59b3, 0xd9c0, 0xd98e, 0xd98f, 0x5993, 0xd994, 0x470e, 0xd996, + 0xd998, 0x59a7, 0xd9bd, 0x5990, 0x599a, 0xd9ba, 0xd9ac, 0xd9a1, + 0xd9bf, 0xd9a5, 0xd9a6, 0xd9af, 0xd9b2, 0xd9b7, 0xcb4b, 0x59ef, + 0xd9f6, 0xb2b5, 0xd9f4, 0xd9e7, 0xd9f8, 0xd9e3, 0x59d7, 0xd9f6, + 0xd9de, 0x59d7, 0xd9ef, 0xd9e6, 0x59fd, 0xd9ff, 0x59f9, 0xd9ff, + 0x59f9, 0xd9fd, 0x5a01, 0xdba0, 0x5a00, 0xdba0, 0xdba2, 0xdba3, + 0xdba1, 0xdbaf, 0xdba7, 0xdba8, 0xdba6, 0xdbb1, 0xdbad, 0xdbaa, + 0xdbab, 0x3258, 0xdbac, 0xdbb0, 0xdabe, 0xdbb9, 0xdbb6, 0xdbbc, + 0x47e4, 0xc7e7, 0x241f, 0xa656, 0xbb23, 0xdbc0, 0xdbb7, 0xdbbb, + 0xdbbf, 0x9fe1, 0xdbbe, 0xdbb8, 0x5b6f, 0xdbd1, 0xdbc9, 0x24ec, + 0xdbc3, 0xdbca, 0xbce8, 0x5b49, 0xdbc1, 0xda6c, 0xdbc2, 0x2467, + 0xdbcb, 0x246a, 0xa492, 0xa46d, 0xdbb5, 0xdbc8, 0xdbd2, 0xdbcf, + 0xdbc4, 0xdbd0, 0xdbc7, 0xdbce, 0xdbc5, 0xdbcd, 0xdb8b, 0xa48f, + 0xdbe9, 0xdbe2, 0xdbe3, 0xdbd5, 0xabdf, 0xdbd7, 0xdbe7, 0x5a3d, + 0xdbdf, 0xdbe1, 0xdbe0, 0xdbd8, 0x5b6e, 0xdbdd, 0xdbe5, 0xdbe6, + 0xdbdc, 0xdbd9, 0xdbd6, 0xdbd4, 0xdbdb, 0xdbd3, 0xa938, 0xdb7d, + 0xdb04, 0xafd7, 0xdba4, 0xdbf3, 0xdbf6, 0xdbde, 0x3096, 0xb102, + 0x2500, 0xdbf1, 0xdbee, 0xdbed, 0xdbda, 0xdbeb, 0xdbec, 0xdbef, + 0xdbf0, 0xdbf5, 0xdbf2, 0x5aac, 0xdbf4, 0x5aaa, 0xdbf4, 0x5b80, + 0xdbfb, 0xa531, 0xdc01, 0xdbfe, 0xdc07, 0xdbfd, 0x4ae9, 0xdc0a, + 0xda1a, 0xdc03, 0xdc04, 0xdc06, 0xdc08, 0xdbff, 0xdbf7, 0x5aeb, + 0xdc0f, 0xdbe4, 0xdbf9, 0xdbfc, 0xdc05, 0xdbba, 0xdc02, 0xdc00, + 0xdc0d, 0xdc1e, 0xdc1d, 0x5afc, 0xdc16, 0x5b1a, 0xdc25, 0xdbe8, + 0x5b8d, 0xdc14, 0xdc1b, 0xdc10, 0xdb5c, 0x5acc, 0xdc0f, 0x242f, + 0x2518, 0x2553, 0x2554, 0x255f, 0xe5d9, 0xdc15, 0xdc18, 0xdbb3, + 0x3697, 0xdc19, 0xdc0c, 0x5bbd, 0xe8a8, 0xdbf8, 0xdc1a, 0x5ae0, + 0xdc16, 0xdbfa, 0xdc0b, 0xdc12, 0xdc13, 0xda8a, 0xdbcc, 0xdc0e, + 0xbb4c, 0xdc1c, 0xdc27, 0xdc11, 0xdc21, 0xdc24, 0xdc26, 0x5ae1, + 0xdc25, 0xdbb2, 0xdc22, 0x5b21, 0xdc23, 0x5b20, 0xdc23, 0xdc1f, + 0xa546, 0x5b81, 0xdc2a, 0xdc2c, 0x5b7e, 0xdc2b, 0xa5f9, 0xdbb4, + 0xdc28, 0x247c, 0xa611, 0xdc29, 0x24d7, 0xa629, 0x5a3c, 0xdbc1, + 0xdbb9, 0xdc32, 0xdba5, 0xa642, 0x5b5b, 0xdc2e, 0xdbc6, 0xdc2f, + 0xdc2d, 0x5b56, 0xdc2e, 0x5ae9, 0xdc31, 0xa66a, 0x553c, 0xd5f9, + 0x2661, 0xdc35, 0xbbc1, 0x5a71, 0xdbdd, 0x5a33, 0xdbd1, 0xdbae, + 0xa584, 0x5b93, 0xdba9, 0xdc34, 0xb2a4, 0xdbea, 0x46d1, 0xc6e3, + 0xda89, 0x5b2d, 0xdc2b, 0x5aad, 0xdbfb, 0x5b2b, 0xdc2a, 0x5b9a, + 0xdd5e, 0xdc09, 0x23d8, 0xa909, 0xda5f, 0x2bb4, 0xe1bc, 0x5ae4, + 0xdc14, 0x1ec7, 0x5b90, 0xe6e0, 0x5b8e, 0xe6e0, 0xdc17, 0x5b72, + 0xdba9, 0xdc30, 0xdc36, 0x5b83, 0xdd5e, 0xdc20, 0xdc33, 0x5a00, + 0xda01, 0xda08, 0xda02, 0xda03, 0xda8d, 0xdb4f, 0xda10, 0xda0c, + 0xda0e, 0x5b72, 0xdb93, 0xda15, 0xda16, 0x3258, 0xda17, 0xda13, + 0xdb70, 0xda0a, 0xda18, 0xda12, 0xdb1b, 0xdaf1, 0xdb33, 0xda4e, + 0xda1d, 0xda25, 0xda31, 0x5a1b, 0xdb4c, 0xdad6, 0xda29, 0xda1f, + 0x5af7, 0xe8a8, 0xda2d, 0xda2a, 0xda23, 0x5a3c, 0xdb49, 0xda41, + 0xda36, 0xda55, 0xda5b, 0xdb58, 0xda57, 0xda50, 0xda34, 0xda3a, + 0xda46, 0xdb05, 0xda5e, 0xda58, 0xda54, 0xda56, 0x5a33, 0xdb6f, + 0xda52, 0xda86, 0xda84, 0xda66, 0xda7f, 0xda69, 0xda70, 0xda7c, + 0xdaa0, 0xda85, 0xda75, 0x5a71, 0xdb6e, 0xda95, 0xda6c, 0xda6e, + 0xda6d, 0xda62, 0xda63, 0xdacd, 0xda72, 0xda73, 0xda6b, 0xdae2, + 0xda61, 0xdb78, 0xdaa1, 0xdaa3, 0xda9e, 0xda9a, 0x309e, 0xdaa4, + 0xdaa5, 0x2500, 0xda98, 0xdaa8, 0xda91, 0x5aaa, 0xdaac, 0xdaa6, + 0xda92, 0xdacb, 0xdaf8, 0xdacf, 0xdafe, 0x5aad, 0xdb80, 0xdad1, + 0xdab9, 0xdab2, 0xdac9, 0xdadb, 0xdab0, 0xdad7, 0xdabf, 0xdac2, + 0xdad2, 0xdac4, 0xdab6, 0xdac7, 0xdb85, 0x4ae9, 0xdabc, 0xdb00, + 0xdaf6, 0xdadc, 0xdb0a, 0x5acc, 0xdaeb, 0xdae7, 0xdb14, 0xdb01, + 0xdb02, 0x5ae4, 0xdb8d, 0xdaed, 0x5ae0, 0xdafc, 0xdb92, 0xdaee, + 0x3697, 0xdaf3, 0xdafa, 0xdae6, 0xdb0e, 0xdade, 0xdadd, 0xdb28, + 0xdb9c, 0xdb16, 0xdb1d, 0x5b20, 0xdb21, 0xdb17, 0x5ae1, 0xdb1a, + 0xdb19, 0xdb10, 0xdb39, 0xdb3e, 0x5b2b, 0xdb81, 0x5b2d, 0xdb7e, + 0xdb2c, 0xdb5a, 0x5b56, 0xdb5b, 0xdb59, 0xdb95, 0xdb5c, 0xdb4e, + 0xdb9e, 0xdb74, 0xdb6b, 0xdb96, 0x4a40, 0xccd3, 0xac88, 0x3e13, + 0x3eaa, 0xdc40, 0x3e13, 0x3eaa, 0xdc3f, 0xd373, 0xac82, 0x1e30, + 0x5c50, 0x673b, 0xe74a, 0x4ad6, 0xcaea, 0x1e30, 0x5c4a, 0x673b, + 0xe74a, 0x5273, 0x5276, 0x5277, 0xdc54, 0x5273, 0x5276, 0x5277, + 0xdc53, 0xdc5a, 0xdc58, 0xdc87, 0x9e88, 0xc32a, 0xdc76, 0xdc6e, + 0xc2b2, 0xc2b4, 0xdc94, 0xc2c9, 0xef26, 0xdc64, 0xc2e2, 0xc2b4, + 0xc683, 0x42f8, 0xc30d, 0xc30a, 0xc32f, 0xc32b, 0xdc7c, 0xc34f, + 0xc37e, 0x4383, 0xd83c, 0x56fd, 0xdd1d, 0xdd1e, 0x2458, 0x24e1, + 0xdd20, 0xdd1f, 0x321d, 0xdd22, 0xdd21, 0xdd2b, 0xdd27, 0xdd29, + 0xdd2a, 0xdd2f, 0xdd23, 0x2295, 0x5cea, 0xdd28, 0x2f10, 0x5cb3, + 0xdd30, 0xdd2e, 0xdd33, 0xdd40, 0x2f10, 0x5cae, 0xdd30, 0xdd35, + 0xdd2c, 0x9e70, 0xdd37, 0xdd36, 0xdd39, 0xdd34, 0xdd3b, 0xdd38, + 0xdd3a, 0xdd32, 0xdd42, 0xdd41, 0xdd3f, 0xdd45, 0xdd44, 0xdd3e, + 0x2379, 0xb064, 0xdd3c, 0xc68e, 0x5d13, 0xdd43, 0x5ce4, 0xdd31, + 0xdd48, 0xdd4a, 0x2bbe, 0xdcd4, 0x2bbe, 0xdcd3, 0xdd47, 0xdd4a, + 0xdd52, 0xdd49, 0x5d0a, 0xdd5e, 0xdd50, 0xdd4f, 0xdd54, 0x4d9a, + 0x4e8c, 0xdd53, 0x5d12, 0xdd24, 0x2356, 0xa8f2, 0x5cce, 0xdd31, + 0xdd4b, 0xdd55, 0x2295, 0x5cad, 0xdd28, 0xdd4d, 0xdd26, 0xdd4c, + 0xa046, 0x5d56, 0xe83c, 0xdd57, 0x5d4d, 0xef4e, 0xdd5a, 0xdd59, + 0xdd2d, 0xdd5b, 0xdd5c, 0x3557, 0xdd25, 0xdd3d, 0xdd58, 0xdd5f, + 0xdd60, 0x5cdb, 0xdd5e, 0x2050, 0x5d17, 0xdd5d, 0xdd61, 0xdd62, + 0xdd46, 0x5ce2, 0xdd24, 0x5ccd, 0xdd43, 0xdd51, 0xdd4e, 0x2050, + 0x5d0b, 0xdd5d, 0xdd63, 0xdd43, 0x56fd, 0xdc9d, 0xdc9e, 0xdca0, + 0x2458, 0x24e1, 0xdc9f, 0xdca2, 0x321d, 0xdca1, 0xdcac, 0x5ce2, + 0xdd12, 0x3557, 0xdd01, 0xdcec, 0xdca8, 0x5cad, 0xdcea, 0xdca9, + 0xdcaa, 0xdca7, 0xdcb6, 0xdcfc, 0xdcaf, 0xdcab, 0x2f10, 0x5cae, + 0xdcb3, 0x5cce, 0xdce4, 0xdcc1, 0xdcb0, 0xdcbc, 0xdcb4, 0xdcba, + 0xdcb8, 0xdcbf, 0xdcbb, 0xdcc0, 0xdcbd, 0xdcca, 0xdd04, 0xdcc8, + 0xdcc4, 0xdcb2, 0xdcc3, 0xdcc2, 0x5ccd, 0x5d13, 0xdd1c, 0xdcc7, + 0xdcc5, 0xdd10, 0xdcd5, 0xdcd1, 0xdcda, 0x5cd2, 0xdcd6, 0xdce6, + 0xdced, 0x5ceb, 0x5cf7, 0xef4e, 0xdd16, 0xdcde, 0xdcdc, 0xdd14, + 0xdcd9, 0xdce1, 0xdce0, 0xdce7, 0x5cf4, 0xe83c, 0xdcf5, 0xdd05, + 0xdcfb, 0xdcfa, 0xdcfd, 0xdcfe, 0x2050, 0x5d0b, 0xdd17, 0x5b83, + 0x5b9a, 0x5cdb, 0xdd0a, 0xdd07, 0xdd08, 0xdd0d, 0xdd0f, 0xdd1b, + 0x407b, 0xc0fe, 0xdd6c, 0xdd6a, 0xdd71, 0xdd70, 0xdd99, 0xdd95, + 0x2c1f, 0x2c20, 0x6bae, 0x6c7b, 0xec9c, 0xdfdf, 0xdd82, 0xdd81, + 0xdda8, 0xdda6, 0xdd76, 0xdd75, 0xdd91, 0xdd8b, 0xde7a, 0x5dc3, + 0xde8d, 0xddb2, 0xddb1, 0xde89, 0xde38, 0x5daf, 0xde8d, 0xde4c, + 0xde92, 0xdff9, 0xddfa, 0xde29, 0xde10, 0xde82, 0xde7a, 0xde55, + 0xde9a, 0xdde5, 0xde8b, 0xac40, 0x50eb, 0xd11b, 0x458e, 0xc58f, + 0xde34, 0x511a, 0xd173, 0xde8a, 0xddf5, 0xde64, 0xddf4, 0xde64, + 0xc8b0, 0xde93, 0xde91, 0xcaac, 0xde0a, 0xddbb, 0xde4f, 0x5e79, + 0xdea2, 0xddc4, 0xde44, 0xdea1, 0xde63, 0xddf8, 0xdff9, 0xde52, + 0x5e28, 0xde2a, 0x5e8a, 0xde95, 0x5e4b, 0xdea2, 0x5dac, 0xddf7, + 0xdea5, 0xddf6, 0xde84, 0xde83, 0xa8b8, 0xddb8, 0x5e0c, 0x5e70, + 0xde95, 0x5dfb, 0xe6ae, 0x5daf, 0xddc3, 0xdeaa, 0xde2f, 0xddde, + 0xde2c, 0x5e70, 0xde8a, 0xdeaa, 0xddf9, 0xdea6, 0xde51, 0x5e4b, + 0xde79, 0xde7f, 0xde9c, 0x5e8f, 0xde99, 0xdeb3, 0xd03d, 0xdec0, + 0x1f53, 0x5ec6, 0x6ab5, 0xead4, 0xdeb2, 0xdeb1, 0xdeac, 0xdeaf, + 0x5040, 0x504c, 0xd077, 0x1f53, 0x5eb0, 0x6ab5, 0xead4, 0xdf66, + 0xdf67, 0xdf68, 0xa19b, 0xdf6a, 0xdf69, 0xdf6b, 0x3799, 0x5ef6, + 0xdf6d, 0xdf6f, 0x5f49, 0xdf6c, 0x5f5f, 0xdf70, 0xdf77, 0xdf78, + 0x5f29, 0xdf88, 0xdf71, 0x3799, 0x5edb, 0xdf6d, 0xdf74, 0xdf75, + 0xdf7a, 0xdf72, 0xdf76, 0x5f15, 0xdf7b, 0xdf7c, 0xdf5c, 0xdf83, + 0xdf82, 0xdf81, 0xdf80, 0xdf7d, 0xdf7e, 0x5f1b, 0xdf86, 0xdf36, + 0x5f19, 0xdf84, 0xb33d, 0x1fcc, 0xdf85, 0x5efd, 0xdf7b, 0x5f12, + 0xdf84, 0x5f0c, 0xdf86, 0x5f3a, 0xdf8e, 0xdf89, 0xdf8b, 0xdf8d, + 0xdf57, 0xdf8a, 0xdf87, 0x5ef0, 0xdf88, 0xdf6e, 0xdf8c, 0xdf6f, + 0xdf91, 0xdf8f, 0xdf0f, 0xdf93, 0x5f1c, 0xdf8e, 0xdf90, 0xdf92, + 0xdf97, 0xd206, 0x67b1, 0x67dc, 0xe7ec, 0xbbc2, 0x5f96, 0xe38b, + 0xdf95, 0xdf98, 0x5ee2, 0xdf6c, 0xdf99, 0xdf7f, 0xdf9a, 0xdf21, + 0xdf00, 0x5ee3, 0xdf70, 0xdf94, 0xdf79, 0xdf73, 0xdeca, 0xdecb, + 0xdecc, 0xded2, 0xded1, 0xded4, 0x5ee2, 0xdf49, 0x3799, 0x5edb, + 0xdef6, 0xdf2a, 0x5edf, 0xdf2d, 0x5ee3, 0xdf5f, 0xdef2, 0xdefb, + 0xdf64, 0xdef8, 0xdef9, 0xdefc, 0xdee4, 0xdeeb, 0xdf62, 0xdefa, + 0x5efd, 0xdf15, 0xdefe, 0xdf09, 0xdf0a, 0xdf4e, 0xdf08, 0xdf07, + 0xdf05, 0xdf03, 0x5f12, 0xdf19, 0xdf14, 0x5f0c, 0xdf1b, 0xdf26, + 0x5ef0, 0xdf29, 0xdf1d, 0xdf25, 0xdf1e, 0xdf2c, 0xdf1f, 0x5f1c, + 0xdf3a, 0xdf33, 0xdf3b, 0xdf2f, 0xdf3c, 0xdf38, 0xdf61, 0xdf45, + 0xdf44, 0xdf3e, 0xdf46, 0xdf4d, 0xdf54, 0x5f9e, 0x5fa4, 0xdfad, + 0x5f9d, 0x5fa4, 0xdfad, 0xe5e2, 0x3683, 0xcf6a, 0x2f01, 0x5fa9, + 0xdfaf, 0x5f9d, 0x5f9e, 0xdfad, 0xa29e, 0x2f01, 0xdfa8, 0x2f01, + 0xdfa7, 0x2f01, 0x5fa1, 0xdfaf, 0xdfae, 0x5f9d, 0x5f9e, 0xdfa4, + 0xdfab, 0x2f01, 0x5fa1, 0xdfa9, 0xa19c, 0xdfb6, 0xdfb5, 0x5fba, + 0x6089, 0xe08a, 0x5fb9, 0x6089, 0xe08a, 0xe07c, 0x6039, 0xe054, + 0xe077, 0xdfc3, 0xdfc2, 0xdfe4, 0xe04e, 0xe081, 0x231d, 0xae00, + 0xe04b, 0xe084, 0xe019, 0xe032, 0xe060, 0xe055, 0xe023, 0x5d7f, + 0x6045, 0xe072, 0xdfc6, 0xe008, 0xe087, 0xaef8, 0xaf80, 0xe003, + 0x2f84, 0x2f91, 0xe015, 0x26d8, 0x26de, 0x26ec, 0x2efb, 0x2efd, + 0xe025, 0x5de1, 0xde5f, 0x1e43, 0xaefc, 0xe069, 0xdfef, 0xdfe5, + 0xe078, 0xe05c, 0xe052, 0x6013, 0xe05e, 0x6012, 0xe05e, 0x2f84, + 0x2f91, 0xdff3, 0xdfd9, 0xdfde, 0x26d8, 0x26de, 0x26ec, 0x2efb, + 0x2efd, 0xdff4, 0xe090, 0xa954, 0x3e38, 0xe04a, 0xa468, 0xdfdb, + 0x5fbe, 0xe054, 0xe060, 0xe08f, 0xa06a, 0xe06f, 0x5fdf, 0xe072, + 0x1fa6, 0xa075, 0x3e38, 0xe030, 0xdfd0, 0xdfc7, 0xe00e, 0x2675, + 0x585c, 0xd85f, 0x5fbe, 0xe039, 0xdfdd, 0xe07a, 0xe065, 0xe00a, + 0x6012, 0xe013, 0x5fdc, 0xe03a, 0xbeaf, 0xe059, 0xe002, 0xe041, + 0x5fdf, 0xe045, 0xced5, 0xdfc1, 0xe009, 0xe057, 0xdfbd, 0xdfc8, + 0xdfd8, 0xdfe9, 0x5fb9, 0x5fba, 0xe08a, 0x5fb9, 0x5fba, 0xe089, + 0xe03b, 0xe026, 0xe61d, 0xe127, 0xe13a, 0xe0ab, 0xb751, 0xe0a6, + 0xe114, 0xe0f5, 0xe112, 0xe134, 0x23b8, 0x6130, 0xe6a3, 0xe0cc, + 0x3b1d, 0x6b30, 0xeb31, 0xe0bd, 0x60d2, 0xe0de, 0xe0df, 0xe136, + 0xe12d, 0x60ce, 0xe0de, 0xe106, 0x60ce, 0xe0d2, 0xe0cf, 0xe148, + 0xe116, 0xe0f6, 0xe0ae, 0xe0e8, 0x1e61, 0x6109, 0x610a, 0xe115, + 0xe132, 0xe0d3, 0x1e61, 0x60f7, 0x610a, 0xe115, 0x1e61, 0x60f7, + 0x6109, 0xe115, 0xe0b9, 0xe0ac, 0x1e61, 0x60f7, 0x6109, 0xe10a, + 0xe0e7, 0xe093, 0xe0d1, 0x23b8, 0x60bb, 0xe6a3, 0xe0f8, 0xe0ba, + 0xe0d0, 0xe146, 0xe09d, 0xe147, 0x2398, 0x28e5, 0xaedb, 0xe147, + 0xe137, 0x613c, 0xe142, 0xe0e6, 0x9e23, 0xe194, 0xe189, 0xb59f, + 0x6196, 0xe19e, 0xe18b, 0x467a, 0x6197, 0xe1b1, 0x616c, 0xe1bb, + 0xa5e0, 0x6167, 0xe1bb, 0x61a4, 0xe1ac, 0xe1c5, 0xe1c3, 0x61b8, + 0xe1c0, 0xd14c, 0xe195, 0xe154, 0xe91f, 0xe162, 0x24b8, 0xee79, + 0xe14b, 0xe187, 0x615d, 0xe19e, 0x467a, 0x6166, 0xe1b1, 0xb9bc, + 0x1e11, 0xeb57, 0x615d, 0xe196, 0x6171, 0xe1ac, 0x233b, 0xbbc9, + 0x6171, 0xe1a4, 0x467a, 0x6166, 0xe197, 0x617f, 0xe1c0, 0x6167, + 0xe16c, 0x2bb4, 0xdb8c, 0x617f, 0xe1b8, 0xd845, 0xe17e, 0xe17d, + 0x2bc0, 0xb3a1, 0x61ca, 0xe1cb, 0x61c8, 0xe1cb, 0x61c8, 0xe1ca, + 0x58cf, 0xd8e1, 0x27dc, 0xa8c4, 0xa398, 0x61d2, 0xe485, 0x61d1, + 0xe485, 0x61da, 0x61fb, 0xe486, 0xe487, 0xe48c, 0x2200, 0xa202, + 0xe48a, 0xe489, 0xe48b, 0x61d3, 0xe1fb, 0xe1e1, 0xe488, 0x1e71, + 0x9e82, 0xe1dc, 0x621f, 0xe493, 0xe490, 0xb263, 0xe48f, 0xe492, + 0xe2e9, 0x2251, 0x2263, 0x2271, 0x228d, 0x228e, 0x2292, 0x2294, + 0xe1fc, 0xe497, 0xe48d, 0xe495, 0xe48e, 0x61d3, 0x61da, 0xe486, + 0x2251, 0x2263, 0x2271, 0x228d, 0x228e, 0x2292, 0x2294, 0xe1f0, + 0xe4af, 0xe4ab, 0xe498, 0xe4ad, 0xe4a5, 0x625b, 0xe4c5, 0xe49a, + 0xe4a0, 0xe49d, 0x6264, 0xe4a9, 0xe4a4, 0xe4a3, 0xe491, 0xe49e, + 0xe4ae, 0x629e, 0xe4a7, 0xe1e3, 0xe49f, 0xe499, 0xe4ac, 0xe49b, + 0xe4aa, 0xe3ba, 0x4089, 0xe46a, 0x6438, 0xe4ce, 0x6268, 0xe4cc, + 0xe4c8, 0xe4b6, 0xe4c3, 0xe4b4, 0xe4b9, 0xe4cd, 0xe4b0, 0xe4b8, + 0xe4c0, 0xe4bf, 0xe4be, 0x6295, 0x62e8, 0x6421, 0x6435, 0xe4c1, + 0xe49c, 0xe4bb, 0xe4ca, 0xe4ca, 0xe4c9, 0x2228, 0xe4c7, 0xe4cb, + 0xe4c2, 0xe4b7, 0xe4b3, 0xe4c6, 0x6206, 0xe4c5, 0xe4ba, 0xe348, + 0x46cb, 0x4f3d, 0xe4b5, 0x620e, 0xe4a9, 0xe4b2, 0x622e, 0xe4cc, + 0xe4bc, 0xe4bd, 0x47ff, 0x483f, 0x4926, 0x62db, 0xe45b, 0x6373, + 0x6451, 0x6452, 0xe46c, 0xe4cf, 0xe4f0, 0xe4d2, 0xe4ec, 0xe4ea, + 0xe4f6, 0xe4f3, 0xe4dc, 0xe4da, 0xe4e3, 0xe4e8, 0x6244, 0x62e8, + 0x6421, 0xe435, 0xe4e2, 0xe4ed, 0x6443, 0xe4eb, 0x62bd, 0xe4e6, + 0x2563, 0x5854, 0xd858, 0xe21e, 0xe4d1, 0xe4f7, 0xe4f1, 0xe4df, + 0xe4f5, 0xe4e5, 0xe4d5, 0xe4ef, 0xe4d0, 0x6322, 0xe4b1, 0xe47e, + 0xe4de, 0xc10a, 0x62ed, 0xe510, 0x4107, 0xe500, 0xe508, 0xe511, + 0xe509, 0xe29b, 0xe4dd, 0xe512, 0xe50c, 0xe4a1, 0xe4e4, 0xe4d7, + 0xe50b, 0xe4fb, 0x47ff, 0x483f, 0x4926, 0x6271, 0xe45b, 0xe50a, + 0x646f, 0xe513, 0x6381, 0xe4d8, 0xe504, 0xe503, 0xe514, 0x6244, + 0x6295, 0x6421, 0x6435, 0xe507, 0x61ef, 0xe4d3, 0x5216, 0x5217, + 0xe4fa, 0x62b3, 0xe510, 0xe4d6, 0xe506, 0xe502, 0xe4fd, 0x6444, + 0xe4f8, 0xe50d, 0xe52f, 0xe4a2, 0xe51e, 0x2f55, 0xe332, 0xe516, + 0xe52b, 0xe529, 0x641a, 0xe4d4, 0xe525, 0xe515, 0xe51f, 0xe524, + 0x637f, 0xe531, 0xe4ee, 0xe51b, 0xe52c, 0xe52d, 0xe51c, 0x62ad, + 0xe4b1, 0xe526, 0xe51a, 0xe520, 0xe521, 0x40bc, 0x4149, 0xe34a, + 0xe522, 0xe519, 0x2f55, 0xe304, 0xe530, 0xd868, 0xe486, 0xe4fc, + 0xe3e8, 0xe51d, 0xe528, 0xe52a, 0xe494, 0xe534, 0x6260, 0xe533, + 0x40bc, 0x4149, 0xe32c, 0xe505, 0xe540, 0xe537, 0xe4e1, 0xe496, + 0x4145, 0xe53b, 0xe4ff, 0x6445, 0xe53d, 0xe538, 0xe532, 0xe518, + 0xe539, 0x63d3, 0xe52a, 0xe53e, 0x6274, 0x6451, 0x6452, 0xe46c, + 0xe52e, 0xe536, 0xe517, 0x649f, 0xe53a, 0xe319, 0xe2e3, 0xe541, + 0xe53f, 0xe545, 0xe551, 0xdf44, 0x642e, 0xe570, 0x39c8, 0xd028, + 0x3eb6, 0xc194, 0x63c1, 0xe501, 0xb7aa, 0xe549, 0xe524, 0xe548, + 0x6543, 0xef12, 0xe4a8, 0xd4e5, 0x6402, 0xe54f, 0xe4e0, 0xe4e9, + 0xe53c, 0xe550, 0x63ae, 0xe547, 0x63ad, 0xe547, 0xe552, 0xe54d, + 0xe553, 0xe54c, 0xe228, 0xe54e, 0xe396, 0xe55e, 0xe55f, 0xe4fe, + 0xe546, 0xe559, 0xe560, 0xe55d, 0xe36f, 0xe4ff, 0xe535, 0xe557, + 0xe558, 0xe55b, 0x222c, 0x2257, 0x2277, 0xe4f2, 0x434d, 0xe55c, + 0xe556, 0xe542, 0x63fd, 0xe508, 0xe33e, 0xe55a, 0xe4e7, 0xe564, + 0xe56a, 0x63e5, 0xe508, 0x63a6, 0xe54f, 0xe4d9, 0xe4f4, 0xe563, + 0xe4f9, 0xe566, 0xe561, 0xe50f, 0xe49f, 0xe56b, 0x630f, 0xe4d4, + 0x6481, 0xe562, 0xe568, 0x6244, 0x6295, 0x62e8, 0x6435, 0xe4c1, + 0xe50e, 0xe50f, 0xe544, 0xe54c, 0x638c, 0xe570, 0xe56f, 0xe56d, + 0x6244, 0x6295, 0x62e8, 0x6421, 0xe4c1, 0xe56e, 0x622c, 0xe4ce, + 0xe4db, 0xe571, 0x629a, 0xe4eb, 0x62f3, 0xe4f8, 0xe360, 0xe56c, + 0xe554, 0x6274, 0x6373, 0x6452, 0xe46c, 0x6274, 0x6373, 0x6451, + 0xe46c, 0xb7aa, 0xe572, 0xe527, 0x647d, 0xe4bb, 0x47ff, 0x483f, + 0x4926, 0x6271, 0xe2db, 0x6909, 0xe95f, 0xe574, 0xe4c4, 0xe573, + 0xa228, 0xe565, 0x4089, 0xe229, 0x6274, 0x6373, 0x6451, 0xe452, + 0xe567, 0xe2df, 0xe4a5, 0xe575, 0xe576, 0x4f36, 0xcf50, 0xe54a, + 0xe569, 0xe523, 0x645a, 0xe4bb, 0xe2ae, 0xa1ff, 0x641d, 0xe562, + 0xe54b, 0x61d1, 0xe1d2, 0x61d3, 0x61fb, 0xe337, 0xe1d4, 0xe1dd, + 0xe1d8, 0xe1d7, 0xe1d9, 0xe1d5, 0xe1f7, 0xe1fa, 0xe1e7, 0xe1e4, + 0xe212, 0xe1e9, 0xe1e3, 0xe346, 0xe1f9, 0xe35a, 0xe1f5, 0xe203, + 0xe223, 0xe208, 0xe226, 0xe245, 0xe20d, 0xe214, 0x6221, 0x637e, + 0x6418, 0xe53a, 0xe209, 0xe2c7, 0xe2fc, 0xe211, 0xe210, 0x6205, + 0xe470, 0xbb3d, 0xe21e, 0xe3a2, 0x620e, 0xe264, 0xe227, 0xe201, + 0xe225, 0xe204, 0xe215, 0xe200, 0xe23a, 0x62ad, 0xe322, 0xe266, + 0xe257, 0xe237, 0x46cb, 0x4f3d, 0xe262, 0xe233, 0xe255, 0xe23d, + 0xe238, 0xe25e, 0x6246, 0x645a, 0xe47d, 0xe26c, 0xe26d, 0xe240, + 0xe23f, 0xe23e, 0x6244, 0x6421, 0xe435, 0xe251, 0xe234, 0xe460, + 0x6206, 0xe25b, 0xe25a, 0x2228, 0xe24b, 0xe230, 0xe249, 0x6247, + 0xe248, 0xe24d, 0x622e, 0xe268, 0xe239, 0x622c, 0xe438, 0xe276, + 0xe2ac, 0xe2a0, 0xe27a, 0xe2e9, 0x630f, 0xe41a, 0xe2aa, 0xe2ee, + 0xe2cf, 0xe2e3, 0xe403, 0xe28d, 0xe43a, 0xe285, 0xe2c1, 0xe2b1, + 0xe2a6, 0xe3a7, 0xe358, 0xe296, 0xe291, 0xe2cc, 0xe2a9, 0xe29b, + 0xe3f5, 0xe293, 0xe3a9, 0xe27f, 0x629a, 0xe443, 0xe27b, 0xe298, + 0xe31a, 0xe2ab, 0xe278, 0xe2a5, 0x222c, 0x2257, 0x2277, 0xe3df, + 0xe283, 0xe40b, 0xe2a8, 0xe280, 0xe2a3, 0x62f3, 0xe444, 0xe412, + 0x5216, 0x5217, 0xe2ea, 0xe2d9, 0xe338, 0xe2f1, 0xe3c8, 0x635e, + 0xe3d7, 0xe2b7, 0xe396, 0xe2f0, 0xe2e5, 0x5021, 0xe2e4, 0xe34b, + 0xe2ef, 0xe2e8, 0x62b9, 0x63e5, 0xe3fd, 0xe2bc, 0xe2dd, 0xe2d2, + 0xe2c5, 0xe2f6, 0xe426, 0x6417, 0xe427, 0x62b3, 0xe2ed, 0xe2bb, + 0xe2c3, 0xe2df, 0xe2e6, 0xe312, 0xe306, 0xe37a, 0xe369, 0xe32f, + 0xe328, 0xe31b, 0xe321, 0xe340, 0xe301, 0xe315, 0xe329, 0xe32b, + 0xe32e, 0xe47c, 0x6318, 0xe39a, 0xe310, 0xe326, 0xe455, 0xe341, + 0xe308, 0x6343, 0xe36f, 0xe307, 0xe31f, 0xe320, 0xe375, 0xe2f8, + 0xe333, 0xe319, 0xe365, 0xe348, 0xe347, 0xe3d8, 0xe376, 0xe354, + 0xe364, 0xe36c, 0x637e, 0xe49f, 0xe35b, 0xe3aa, 0xe360, 0xe370, + 0xe384, 0xe34d, 0xe382, 0xe3e4, 0xe3a1, 0xe428, 0xe387, 0xe3cc, + 0x63ad, 0xe3ae, 0xe39b, 0xe398, 0xe477, 0xe482, 0x63b8, 0xe42b, + 0xe3b3, 0xe3bf, 0x63a6, 0xe402, 0xe3ac, 0xe38a, 0xe3b0, 0xe3b5, + 0xe44c, 0xe3e2, 0xe3dc, 0xe3dd, 0xe3cd, 0xe3f0, 0xe3de, 0xe3e1, + 0xe3d1, 0xe3c3, 0xe3c7, 0xe3d0, 0xe414, 0x641d, 0xe481, 0xe410, + 0xe3f7, 0xe465, 0xe413, 0xe46d, 0xe420, 0xe479, 0xe3f9, 0xe419, + 0xe44a, 0xe433, 0xe436, 0xe432, 0x638c, 0xe42e, 0xe43f, 0xe454, + 0xe463, 0xe45e, 0xe471, 0xe472, 0x1ee7, 0x214f, 0x6578, 0xe57f, + 0x1ee7, 0x214f, 0x6577, 0xe57f, 0x1e45, 0x9e46, 0x1ee7, 0x214f, + 0x6577, 0xe578, 0xe5e8, 0xe5e9, 0xe5ea, 0xe5eb, 0x6589, 0xe5ed, + 0xe5ec, 0x6587, 0xe5ed, 0xaf00, 0xe5f6, 0xe5f3, 0x65a0, 0xe5f0, + 0x6592, 0xe5f2, 0x6591, 0xe5f2, 0xe5f4, 0xe5f5, 0xe5f8, 0x65f9, + 0xeb27, 0x658f, 0xe5f0, 0xe602, 0x2173, 0x65d7, 0xe5dc, 0xe601, + 0xa408, 0xe600, 0xa4c4, 0xe5fa, 0xe5fd, 0xe603, 0xe606, 0xe5fe, + 0x65b2, 0xe605, 0x65b1, 0xe605, 0x65c3, 0xe612, 0xe60a, 0x2266, + 0xe609, 0xe60e, 0xe60f, 0xe60d, 0xe608, 0xe60c, 0x65b4, 0xe612, + 0xb77f, 0xb697, 0xe5f1, 0x3ff6, 0xe614, 0xe615, 0xe611, 0xe607, + 0xe617, 0xe618, 0xe5ff, 0xe616, 0xe619, 0xe5ef, 0x2173, 0x65a2, + 0xe5dc, 0x3597, 0x6b25, 0x6b26, 0x6b2a, 0xeb2d, 0x242f, 0x2518, + 0x2553, 0x2554, 0x255f, 0xdaec, 0x2173, 0x65a2, 0xe5d7, 0xe61a, + 0xe613, 0xe610, 0xdf9f, 0xe61b, 0xe5fc, 0xe580, 0xe582, 0xe583, + 0xe586, 0xe588, 0x6587, 0xe589, 0xa54f, 0xe5d6, 0x658f, 0xe5a0, + 0xe5c8, 0x6591, 0xe592, 0xe58e, 0xe593, 0xe594, 0xe58c, 0xb0b6, + 0xe598, 0x6599, 0xeb27, 0xe5a8, 0xd05e, 0xe5e5, 0xe5a9, 0xe5ad, + 0xe5d3, 0xe5a5, 0xe5a3, 0xe5a1, 0xe5ab, 0xeb2e, 0x65b1, 0xe5b2, + 0xe5ac, 0xe5cd, 0xe5be, 0x2266, 0xe5b9, 0xe5b6, 0xeb29, 0xe5bf, + 0xe5bd, 0xe5bb, 0xe5bc, 0xe5e1, 0xe5cc, 0x65b4, 0xe5c3, 0xe5e0, + 0x3ff6, 0xe5ca, 0xe5cb, 0xe5d4, 0xe5d0, 0xe5d2, 0xe5d5, 0x65de, + 0xeb2b, 0xe5e4, 0xe61d, 0x6091, 0xe61c, 0xe68a, 0x1f8c, 0x6634, + 0x6670, 0xe682, 0x6633, 0xe67d, 0xe638, 0x2347, 0xe65e, 0x2742, + 0xac85, 0x274f, 0xa76f, 0xa751, 0xa740, 0xca7d, 0x6626, 0xe67d, + 0x1f8c, 0x6625, 0x6670, 0xe682, 0xe663, 0x2826, 0xe68e, 0xe628, + 0xbcae, 0x2768, 0xe641, 0x2768, 0xe640, 0xe69b, 0xe678, 0xe6b4, + 0xe673, 0xe658, 0xa905, 0x665c, 0x665d, 0xe67f, 0xa7c8, 0xe649, + 0x6655, 0xe67f, 0xe655, 0x2347, 0xe629, 0xaf8f, 0x2866, 0xe635, + 0xe677, 0x2c9b, 0x2cf6, 0x2d8b, 0x2d8c, 0x2db9, 0x669d, 0xe6af, + 0xe695, 0x4906, 0x667a, 0xe6aa, 0x1f8c, 0x6625, 0x6634, 0xe682, + 0xe648, 0xe665, 0xe646, 0x4906, 0x6669, 0xe6aa, 0x2794, 0xa819, + 0x6626, 0xe633, 0x6655, 0xe65c, 0x2830, 0xa895, 0x1f8c, 0x6625, + 0x6634, 0xe670, 0x27de, 0xa824, 0xe61f, 0xb697, 0x2826, 0xe636, + 0xe6a8, 0x1e5a, 0x66a0, 0xe6b1, 0x48d2, 0xe668, 0xa75e, 0xe69f, + 0xe645, 0x2c9b, 0x2cf6, 0x2d8b, 0x2d8c, 0x2db9, 0x6666, 0xe6af, + 0xe699, 0x1e5a, 0x6690, 0xe6b1, 0x23b8, 0x60bb, 0xe130, 0xe68f, + 0x4906, 0x6669, 0xe67a, 0x275f, 0xa8b3, 0xde8b, 0x2c9b, 0x2cf6, + 0x2d8b, 0x2d8c, 0x2db9, 0x6666, 0xe69d, 0x1e5a, 0x6690, 0xe6a0, + 0xea98, 0xe647, 0x66b7, 0xe6b8, 0x66b6, 0xe6b8, 0x66b6, 0xe6b7, + 0x2bc9, 0x674d, 0x674e, 0x674f, 0x6db4, 0x6e16, 0xee64, 0xa3ea, + 0xe6cb, 0xe6e3, 0x6ceb, 0xed08, 0x20f1, 0xecf8, 0xe6bd, 0xe6dd, + 0xe6db, 0x3742, 0xe6dc, 0x2f6b, 0x4431, 0xed70, 0xd67d, 0xa3cc, + 0xee1b, 0x66cf, 0xedb5, 0x3742, 0xe6d1, 0xe6cd, 0x6d8f, 0x6dc4, + 0xee21, 0xadb2, 0x5b8e, 0xdb90, 0xc9bb, 0xe6be, 0xbc1b, 0x9e91, + 0xe742, 0xe717, 0xe741, 0x671a, 0xe727, 0xc535, 0x671a, 0xe727, + 0xe73d, 0xeef4, 0x4075, 0x671b, 0xe748, 0xbcbe, 0xe6f6, 0x66fa, + 0x66fe, 0xe727, 0x4075, 0x670a, 0xe748, 0xe722, 0xe721, 0x66fa, + 0x66fe, 0xe71a, 0xe744, 0xd987, 0x1e30, 0x5c4a, 0x5c50, 0xe74a, + 0xe701, 0xe6f7, 0xe6f3, 0xe72d, 0xa3c7, 0x4075, 0x670a, 0xe71b, + 0xa3c6, 0x1e30, 0x5c4a, 0x5c50, 0xe73b, 0x2bc9, 0x66ba, 0x674e, + 0x674f, 0x6db4, 0x6e16, 0xee64, 0x2bc9, 0x66ba, 0x674d, 0x674f, + 0x6db4, 0x6e16, 0xee64, 0x2bc9, 0x66ba, 0x674d, 0x674e, 0x6db4, + 0x6e16, 0xee64, 0x2bc8, 0xe752, 0x2bc8, 0xe751, 0xe75a, 0x2172, + 0x2929, 0xe75d, 0xe75c, 0xe753, 0xe759, 0x2172, 0x2929, 0xe754, + 0x4cc6, 0x6763, 0x6eaa, 0x6eab, 0x6eb5, 0xeeba, 0xe762, 0x45b1, + 0xc6b0, 0xe768, 0xe82e, 0xe765, 0x676d, 0xe771, 0x676b, 0x6771, + 0xe7e7, 0x676b, 0x676d, 0xe7e7, 0xe7be, 0xcd46, 0x6789, 0xef17, + 0x6780, 0xef17, 0xe7b5, 0xe78d, 0xe78c, 0xade9, 0xe7c3, 0xe7bd, + 0xe7b9, 0x49cb, 0xe7a7, 0x49cb, 0xe7a6, 0xc89f, 0xe7c9, 0x5f41, + 0xe7dc, 0xe7dd, 0xe78b, 0xe79f, 0xe792, 0xe774, 0x4e6e, 0xcf30, + 0xe791, 0xa343, 0x589c, 0xe7e4, 0xe7af, 0xe7e6, 0xe7e7, 0x2dff, + 0xe7e8, 0xe7e9, 0xe7ea, 0x5f41, 0x67b1, 0xe7ec, 0xe7b2, 0xe7eb, + 0x589c, 0xe7c8, 0xe7cb, 0x676d, 0x6771, 0xe7cc, 0x2dff, 0xe7cd, + 0xe7d3, 0xe7d9, 0xe7de, 0x5f41, 0xe7dc, 0xe7ee, 0xe7ed, 0xe7f1, + 0xe7ef, 0x6f4f, 0xef51, 0xe7fb, 0xe7f5, 0xa4cd, 0xe875, 0xe876, + 0xe877, 0xe879, 0xe87a, 0xe878, 0xe87b, 0xe87c, 0xe882, 0xe880, + 0xe883, 0xe884, 0xe87d, 0xe881, 0xe87f, 0xe887, 0xe886, 0x6838, + 0xe888, 0xe88c, 0xe889, 0x6825, 0xe890, 0x6824, 0xe890, 0xe88f, + 0x6830, 0xe88a, 0xa934, 0x6767, 0xe892, 0x682c, 0xe88a, 0xe88b, + 0x4a4e, 0xe896, 0xe894, 0x681a, 0xe888, 0x4a68, 0x683a, 0x683d, + 0xe893, 0x4a68, 0x6839, 0x683d, 0xe893, 0xe891, 0x5cf4, 0xdd56, + 0x4a68, 0x6839, 0x683a, 0xe893, 0xeaed, 0xe897, 0xd16e, 0xe898, + 0xe89d, 0xe89a, 0x6854, 0xe89c, 0xe899, 0xe89b, 0x684f, 0xe89c, + 0x363e, 0xe86f, 0xa6df, 0xb13f, 0xe8a1, 0x685b, 0xe8a0, 0x685a, + 0xe8a0, 0xcc7b, 0xe89f, 0xe8a2, 0xe87e, 0xe8a4, 0xe8a5, 0x363e, + 0xe855, 0xe8a6, 0x6885, 0x6ad7, 0xee15, 0xe89e, 0xe8a7, 0xe801, + 0xe802, 0xe803, 0xe807, 0xe805, 0xe806, 0x6808, 0xeb1a, 0xe80a, + 0xe811, 0xe867, 0xe813, 0xe80e, 0xe812, 0xe80c, 0xe80f, 0xe810, + 0x6871, 0xead7, 0xe818, 0xe817, 0x681a, 0xe838, 0xe821, 0x682c, + 0xe830, 0xe832, 0xe81c, 0xbf41, 0xc1b2, 0xe826, 0x6824, 0xe825, + 0xe83b, 0xe82e, 0x4a68, 0x6839, 0x683a, 0xe83d, 0xe837, 0x4a4e, + 0xe834, 0xe846, 0xe84c, 0xe852, 0xe84e, 0xe853, 0x684f, 0xe854, + 0xe84d, 0xe873, 0xe862, 0x685a, 0xe85b, 0xe859, 0xe865, 0xce87, + 0xe86b, 0xe86c, 0xe870, 0xe874, 0x1e30, 0x21e8, 0x21ec, 0x21ee, + 0x5af7, 0x5bbd, 0x68cc, 0xe8ce, 0xe8d0, 0x68b7, 0x68c6, 0x68c8, + 0xe8d1, 0xe8d2, 0xa3f0, 0xa22e, 0xe8d3, 0x68ae, 0x68c6, 0xe8c8, + 0xe8d4, 0xe8cf, 0xe8d6, 0xe8d5, 0xe8d7, 0x68c4, 0xe8d8, 0x68c3, + 0xe8d8, 0x68ae, 0x68b7, 0x68c7, 0x68c8, 0xe8d9, 0xe8c6, 0x68ae, + 0x68b7, 0x68c6, 0xe8da, 0x21e8, 0x21ec, 0x21ee, 0x68a8, 0xe8ce, + 0x1e30, 0x21e8, 0x21ec, 0x21ee, 0x68a8, 0xe8cc, 0xe8ba, 0xe8ad, + 0xe8ae, 0xe8af, 0xe8b6, 0xe8b8, 0xe8bc, 0xe8bb, 0xe8c0, 0x68c3, + 0xe8c4, 0xe8c6, 0xe8c8, 0xe8de, 0xcffb, 0xe8db, 0x25b0, 0x68e0, + 0xe963, 0x25b0, 0x68df, 0xe963, 0xe910, 0xe965, 0xe964, 0xe966, + 0xe957, 0xe968, 0xe96a, 0x49d7, 0xe96b, 0xe90a, 0xe96c, 0x68f2, + 0xe96e, 0x68f0, 0xe96d, 0xe8ef, 0x68ee, 0xe96e, 0xe974, 0xe99d, + 0xe972, 0xe971, 0xe970, 0xe973, 0xe97a, 0xe978, 0x6920, 0xe97c, + 0x645c, 0x695f, 0xe977, 0x217b, 0x4faa, 0xe8ec, 0xe975, 0xe95c, + 0xe979, 0xe97b, 0xe8e1, 0xe97d, 0x6927, 0xe981, 0xe97f, 0xe982, + 0xe97e, 0x1f59, 0xe980, 0xd0b4, 0xe984, 0xe983, 0xe96f, 0xe18a, + 0x6905, 0xe97c, 0xe985, 0x2582, 0x6912, 0x6935, 0xe981, 0x5218, + 0xe986, 0xccca, 0xccc7, 0xe967, 0xe959, 0x2582, 0xe927, 0xe989, + 0xe987, 0xe967, 0xe98e, 0xccd5, 0xe969, 0xe988, 0xe98f, 0xe98a, + 0xe98c, 0xe98d, 0xe992, 0xe990, 0xe991, 0xe993, 0xe988, 0xe994, + 0xd1b3, 0xcce6, 0xe965, 0xe976, 0xe8e8, 0xe934, 0xe90d, 0xe98b, + 0x645c, 0x6909, 0xe977, 0xe995, 0x25b0, 0x68df, 0xe8e0, 0xe8e3, + 0x68e2, 0xe951, 0xe8e5, 0x6933, 0xe939, 0xe8e9, 0xe93c, 0xe8ea, + 0xe8eb, 0xe8ed, 0xe8ef, 0x68ee, 0xe8f2, 0xe91e, 0xe8fe, 0xe8fd, + 0xe8fc, 0xe8ff, 0xe8f4, 0xe90c, 0xe952, 0x6909, 0xe95f, 0xe904, + 0xe90e, 0xe903, 0xe90f, 0x6905, 0xe920, 0xe911, 0xe916, 0xe913, + 0x1f59, 0xe918, 0x6912, 0xe927, 0xe915, 0xe91c, 0xe91b, 0xe921, + 0xe928, 0xe937, 0x693d, 0xe94b, 0xe936, 0xe93f, 0xe95e, 0xe941, + 0xe943, 0xe93a, 0xe93e, 0xe948, 0xe949, 0xe945, 0xe94a, 0xe94c, + 0xe962, 0xe8f6, 0xe99f, 0xe99e, 0xea6c, 0xea6d, 0xa1af, 0x69c4, + 0xea6e, 0xea5d, 0xea70, 0xea6f, 0xea72, 0xce36, 0x6a62, 0xea74, + 0xea73, 0x69b1, 0xea6e, 0x6a5b, 0xea7f, 0x357a, 0x69c8, 0x6a45, + 0xea71, 0x357a, 0x69c6, 0x6a45, 0xea71, 0xea7b, 0xea7d, 0xea79, + 0xea75, 0xea7e, 0xea80, 0xea78, 0xea76, 0x69de, 0xea7c, 0x69dd, + 0xea7c, 0xea77, 0x208c, 0x4f75, 0xea82, 0xea88, 0xea87, 0xea73, + 0xea83, 0xea86, 0x6a2e, 0xea51, 0xea8e, 0xea8f, 0xea8b, 0xea8d, + 0xea93, 0xea92, 0xea91, 0xea90, 0x6a13, 0x6a57, 0xea8c, 0x6a37, + 0xea9a, 0x6a10, 0x6a57, 0xea8c, 0xea9b, 0xea97, 0xea99, 0xea52, + 0xea9e, 0xea98, 0x69f5, 0x6a51, 0xea9d, 0xd17e, 0xea7a, 0x6a12, + 0xea9a, 0xea9f, 0xea47, 0xeaa1, 0xd4e6, 0xea9c, 0xea96, 0xeaa0, + 0xeaa2, 0x357a, 0x69c6, 0x69c8, 0xea71, 0xea3a, 0xea85, 0xea95, + 0xea81, 0xeaa3, 0x69f5, 0x6a2e, 0xea9d, 0xea28, 0xea84, 0x6a10, + 0x6a13, 0xea8c, 0xb0ca, 0x69c5, 0xea7f, 0xe9b2, 0xeaa4, 0x69bf, + 0xea74, 0xeaa7, 0x560e, 0xeaa5, 0xeaa6, 0xbb22, 0xea8a, 0xea89, + 0xe9ac, 0xe9ad, 0x69b1, 0xe9c4, 0xe9b4, 0xe9b3, 0x357a, 0x69c6, + 0x69c8, 0xea45, 0xe9b9, 0x69c1, 0xe9ee, 0x69bf, 0xea62, 0xe9d4, + 0xe9db, 0xe9df, 0xe9d9, 0xe9d2, 0xea36, 0xe9d0, 0x69dd, 0xe9de, + 0xe9d1, 0xe9d5, 0x69c5, 0xea5b, 0xe9d8, 0xea4d, 0x208c, 0x4f75, + 0xe9e1, 0xe9f0, 0xea55, 0xea4a, 0xe9f1, 0xe9ed, 0xe9e2, 0xea6b, + 0xea6a, 0xea01, 0x6a10, 0x6a13, 0xea57, 0xea02, 0xe9f8, 0xe9ff, + 0xea0f, 0xea0e, 0xea0d, 0xea05, 0xea4c, 0xea42, 0xea19, 0x66b2, + 0xea2d, 0xea24, 0x6a12, 0xea37, 0xea16, 0xea41, 0x6a2e, 0xea51, + 0xea2b, 0xea38, 0xea43, 0xea3e, 0xea44, 0xea4f, 0xea5f, 0x560e, + 0xea65, 0xea66, 0xea64, 0xd0ae, 0x1f53, 0x5eb0, 0x5ec6, 0xead4, + 0xeca0, 0x51b8, 0xead3, 0xeacf, 0xd180, 0xead6, 0xead5, 0xeac5, + 0xd10f, 0x51b8, 0xeac4, 0x1f53, 0x5eb0, 0x5ec6, 0xeab5, 0x51cf, + 0xeacc, 0xeacb, 0x6871, 0x6885, 0xee15, 0xead9, 0xead8, 0x1eff, + 0xaf77, 0xeaf9, 0xeaef, 0x6b02, 0xeb22, 0x23d1, 0xeaee, 0xe83e, + 0x23d1, 0xeaea, 0xeae5, 0x1f5b, 0xaf7f, 0xeae4, 0xa243, 0x6ae9, + 0x6b13, 0xeb22, 0xb77e, 0xd0e1, 0x6b02, 0xeb22, 0xe87b, 0xeb23, + 0x6ae9, 0x6b02, 0xeb13, 0xeb1b, 0x3597, 0x65d8, 0x6b26, 0x6b2a, + 0xeb2d, 0x3597, 0x65d8, 0x6b25, 0x6b2a, 0xeb2d, 0x6599, 0xe5f9, + 0xa4c4, 0xe60b, 0x3597, 0x65d8, 0x6b25, 0x6b26, 0xeb2d, 0xe61a, + 0x3597, 0x65d8, 0x6b25, 0x6b26, 0xeb2a, 0xe604, 0x3b1d, 0x60c1, + 0xeb31, 0x3b1d, 0x60c1, 0xeb30, 0xeb39, 0xeb36, 0x1ffc, 0xcca5, + 0xac2c, 0xeb58, 0xeb4e, 0x573d, 0xeb49, 0x21f2, 0x2c32, 0x2c34, + 0x2c36, 0xac37, 0x1e11, 0xe19c, 0xeb47, 0xec7c, 0xec7d, 0xec7e, + 0xec6e, 0xebbb, 0xec80, 0xeeff, 0xec81, 0x6c78, 0xec88, 0xec24, + 0xec82, 0xec7f, 0xec84, 0xec85, 0xec86, 0x6bdb, 0xecb7, 0xec8c, + 0xec89, 0xec8f, 0xec87, 0xebf9, 0xec90, 0xec8d, 0xec8b, 0xec8a, + 0xec92, 0xec98, 0x6bd7, 0x6c76, 0xec9e, 0xec95, 0xec96, 0x6bb7, + 0xebf7, 0xec94, 0xec9b, 0xec91, 0x2c1f, 0x2c20, 0x5d7b, 0x6c7b, + 0xec9c, 0xec93, 0xecaa, 0x6ba7, 0xebf7, 0xec9d, 0xeb66, 0xebd8, + 0xeca7, 0xeca0, 0x6c00, 0xeca9, 0xeca4, 0x6bcb, 0xeca8, 0xebca, + 0xecac, 0xecbb, 0xecaf, 0xecad, 0x6b9d, 0xec76, 0xebbe, 0x6b89, + 0xecb7, 0xecb4, 0xecb1, 0xecb5, 0xecb2, 0xecb3, 0xecb8, 0xecae, + 0xecb0, 0xecb6, 0xecba, 0xec3a, 0x6ba7, 0x6bb7, 0xecc0, 0xeb8f, + 0xecab, 0xecca, 0x6bc7, 0xeca9, 0xecc8, 0xec97, 0xecc2, 0x6c28, + 0xecbd, 0xecc7, 0x6c0d, 0xecc5, 0x6c0c, 0xecc5, 0xecbe, 0x6c77, + 0xecc4, 0xecc6, 0xecc3, 0x6c2e, 0xecc1, 0xecd2, 0xecd1, 0xeccb, + 0xeca5, 0xeb73, 0x6c5e, 0xeccf, 0x6c08, 0xecce, 0xecd0, 0xeccd, + 0xec1b, 0xeca2, 0x6ccc, 0xef07, 0xecd3, 0xecd8, 0xeca6, 0xeca3, + 0x6bf5, 0xecb9, 0xecd7, 0xecdb, 0xecd4, 0xecc9, 0xecd9, 0xecd5, + 0x6cd6, 0x6f08, 0xef9e, 0xecdf, 0xecdd, 0xecdd, 0xecdc, 0xecde, + 0xec9f, 0xecbc, 0xec25, 0xec8e, 0xec99, 0xece3, 0xece1, 0xece2, + 0xecbf, 0xec9a, 0xeb63, 0xece0, 0x6b9d, 0x6bd7, 0xec9e, 0x6c10, + 0xecc4, 0x6b72, 0xec88, 0xeca1, 0x2c1f, 0x2c20, 0x5d7b, 0x6bae, + 0xec9c, 0xeb5a, 0xeb5b, 0xeb62, 0xeb77, 0xeb68, 0xeb6f, 0xeb74, + 0xeb7a, 0xeb81, 0xeb83, 0xeb8e, 0x6b72, 0xec78, 0xeb8b, 0xeb93, + 0xeb92, 0xeb8a, 0x56ab, 0xeb91, 0xec5f, 0xeb8d, 0xeb90, 0xebad, + 0xeb9a, 0xebb3, 0xebaa, 0xeb9e, 0xeba6, 0xec02, 0xeb9c, 0xec60, + 0xec6d, 0xebab, 0x2c1f, 0x2c20, 0x5d7b, 0x6bae, 0xec7b, 0xebba, + 0x6b9d, 0xec76, 0xec58, 0x6abe, 0xebc1, 0xec7a, 0xec31, 0xec39, + 0xebc9, 0xec23, 0xec37, 0xebc0, 0xebca, 0x6bc7, 0xec00, 0xebb6, + 0xebfd, 0xebd2, 0xebd6, 0xebea, 0xebd5, 0xebeb, 0xebe1, 0xebe4, + 0xebe7, 0xebdd, 0xebe2, 0xebf0, 0x6b89, 0xebdb, 0xebe8, 0xec3a, + 0xebf4, 0xebd4, 0xec5d, 0xec08, 0xec0f, 0xec68, 0xebf7, 0xec1b, + 0xec03, 0xec13, 0x6c10, 0xec77, 0x6c0c, 0xec0d, 0xec12, 0xec09, + 0xec01, 0xec42, 0xebff, 0xec20, 0x6c32, 0xef07, 0xec2d, 0xec28, + 0xec25, 0xec29, 0xec1f, 0xec1c, 0xec33, 0xec3e, 0x51a4, 0xec48, + 0x6c49, 0xef08, 0xec3b, 0xec35, 0xec45, 0xec3c, 0xec56, 0x6c53, + 0xec54, 0xec57, 0xec52, 0xec6f, 0xec64, 0xec67, 0xec63, 0x2c4c, + 0xee1f, 0x21eb, 0xecec, 0xee20, 0x66c1, 0xed08, 0xece7, 0xee24, + 0xa1e4, 0xee23, 0xee22, 0xe6c7, 0xee29, 0xee28, 0x66c1, 0xeceb, + 0x6d76, 0xee26, 0x6dd7, 0xee25, 0xee30, 0xee35, 0xee33, 0x6e1c, + 0xee32, 0xee2e, 0x6d44, 0xee31, 0xee2a, 0xee2f, 0xee2d, 0x53ba, + 0xedaf, 0xee38, 0xee39, 0xedc3, 0xee3b, 0xee3f, 0xedfa, 0xee3d, + 0xee3a, 0xee3c, 0xed1f, 0xee40, 0xee43, 0xee46, 0xee41, 0xedaa, + 0xee48, 0x6d5e, 0xee45, 0x6d5d, 0xee45, 0xee44, 0xee49, 0xee4c, + 0xee4f, 0xee50, 0xee4e, 0xe6d5, 0xee4a, 0x6d09, 0xee26, 0xee53, + 0x6da4, 0xee4d, 0x6dab, 0xee2b, 0xee51, 0xee52, 0x66de, 0x6dc4, + 0xee21, 0xee4b, 0xee59, 0xee55, 0xee57, 0xee56, 0xed7e, 0xee5b, + 0xee5c, 0xed59, 0x6d87, 0xee2b, 0xee27, 0x53ba, 0xed2c, 0xee5f, + 0x2bc9, 0x66ba, 0x674d, 0x674e, 0x674f, 0x6e16, 0xee64, 0xe6db, + 0xee60, 0xee61, 0xee58, 0xee63, 0xee5a, 0xee5a, 0xee62, 0xee5e, + 0xed33, 0x66de, 0x6d8f, 0xee21, 0xedcf, 0xedc9, 0xedc8, 0xee5d, + 0xedc6, 0xee67, 0xee65, 0x6d0e, 0xee25, 0xee37, 0xee68, 0xee36, + 0xee6a, 0xee54, 0xee69, 0xc1d5, 0xee6b, 0x6df4, 0xee47, 0x6df3, + 0xee47, 0xee6c, 0xee70, 0x6d3c, 0xee6d, 0xee34, 0xee0a, 0xee6f, + 0xedff, 0xee71, 0xd3ba, 0xee72, 0x6871, 0x6ad7, 0xee2c, 0x2bc9, + 0x66ba, 0x674d, 0x674e, 0x674f, 0x6db4, 0xee64, 0xee74, 0xee66, + 0x66da, 0xee73, 0xed1d, 0xee42, 0xee3e, 0x2c4c, 0xece5, 0xece9, + 0x66de, 0x6d8f, 0xedc4, 0xecf6, 0xecf4, 0xecf2, 0x6d0e, 0xedd7, + 0x6d09, 0xed76, 0xedac, 0xed07, 0xed06, 0xed23, 0x6d87, 0xedab, + 0xee15, 0xed28, 0xed1e, 0xed26, 0xed12, 0xed1f, 0xed1d, 0xed1b, + 0xedfd, 0xed15, 0xede5, 0xedd9, 0xed2f, 0xed30, 0xed42, 0xed34, + 0xed43, 0xed3f, 0xee1e, 0xed3b, 0xed50, 0xed53, 0xee1d, 0xed51, + 0xed60, 0x6d5d, 0xed5e, 0xed52, 0x6df3, 0xedf4, 0xed5c, 0xed61, + 0xed72, 0xed93, 0xed6a, 0xed7e, 0xed6f, 0xed6c, 0xed6e, 0xed89, + 0xed8a, 0xed77, 0xedeb, 0xed98, 0xeda1, 0xed9a, 0xedbb, 0xed96, + 0x6dbf, 0xedc0, 0xeda5, 0xeda9, 0xedca, 0xedc2, 0xedb2, 0xedb9, + 0xedba, 0xedc1, 0xedbc, 0x2bc9, 0x66ba, 0x674d, 0x674e, 0x674f, + 0x6db4, 0xee16, 0xedd6, 0xee1a, 0xedd3, 0xedda, 0xedef, 0xede6, + 0xedf2, 0xedf8, 0xedfa, 0xee07, 0xedf9, 0xee0c, 0xee0f, 0xee1b, + 0xee18, 0x2364, 0xa877, 0x4877, 0x48b1, 0xee7c, 0x24b8, 0xe18e, + 0xee7e, 0xc877, 0x4877, 0x48b1, 0xee78, 0x2869, 0xc6d0, 0xee7a, + 0xee85, 0xeea4, 0xee83, 0xee8f, 0xee87, 0x1e3d, 0xaa6f, 0xc350, + 0x4c97, 0xee84, 0xeea6, 0xeea5, 0x6eac, 0xeeb8, 0x4cc6, 0x6762, + 0x6eab, 0x6eb5, 0xeeba, 0x4cc6, 0x6762, 0x6eaa, 0x6eb5, 0xeeba, + 0x6ea9, 0xeeb8, 0xa305, 0x36f2, 0x4cac, 0x6eb4, 0xeeb9, 0x36f2, + 0x4cac, 0x6eaf, 0xeeb9, 0x4cc6, 0x6762, 0x6eaa, 0x6eab, 0xeeba, + 0x6ea9, 0xeeac, 0x36f2, 0x4cac, 0x6eaf, 0xeeb4, 0x4cc6, 0x6762, + 0x6eaa, 0x6eab, 0xeeb5, 0x45f2, 0x45f3, 0xd534, 0x1e48, 0x2c1b, + 0x2e85, 0xeebd, 0x1e48, 0x2c1b, 0x2e85, 0xeebc, 0xeec4, 0x48fa, + 0xeec3, 0xeecc, 0xeec9, 0xcc98, 0xeed2, 0xeed1, 0xeed9, 0xeed8, + 0xeef1, 0x294c, 0xc0b9, 0xeef6, 0xeeed, 0xa15a, 0xeef7, 0xeef2, + 0xeee4, 0xeedb, 0xeeea, 0xe709, 0xeee1, 0xeee9, 0xd8ae, 0xeefe, + 0xeefd, 0x6b6d, 0xef0b, 0xef0c, 0xd6d9, 0x6c32, 0xeccc, 0x6c49, + 0x6cd6, 0xef9e, 0xef0d, 0xeeff, 0xef02, 0xef09, 0xef11, 0xef0e, + 0xe3a1, 0x46b7, 0xc6bc, 0xa1ac, 0x6780, 0xe789, 0xef21, 0xef20, + 0xdc82, 0xef39, 0xef34, 0xa5c5, 0x1e9d, 0x3589, 0x358a, 0xef50, + 0x358b, 0xb58e, 0x5cf7, 0xdd4d, 0x67f2, 0xef51, 0x1e9d, 0x3589, + 0x358a, 0xef4a, 0x67f2, 0xef4f, 0x3b6f, 0xef7f, 0xef54, 0x6f53, + 0xef80, 0xef81, 0xef82, 0xef85, 0xef70, 0xef87, 0xef83, 0xef86, + 0x6f62, 0xef84, 0x6f61, 0xef84, 0xa1fa, 0xef88, 0x256e, 0x2699, + 0xa6d3, 0xa4ac, 0x6f71, 0xef8a, 0xef89, 0xef5a, 0xef6a, 0xef8b, + 0xd16d, 0xef8c, 0x3b6f, 0xef52, 0xef54, 0xef55, 0xef57, 0xef5f, + 0x6f61, 0xef62, 0xef59, 0xef60, 0xef5c, 0xef66, 0xef6c, 0xef6a, + 0xef72, 0xef77, 0x4adc, 0x6f92, 0xef99, 0xa390, 0xae9e, 0x4adc, + 0x6f8d, 0xef99, 0xef9a, 0xef9b, 0x6f8d, 0xef92, 0xef94, 0xef95, + 0x1e80, 0xef9f, 0x49cb, 0x49cc, 0xca50, 0x6c49, 0xef08, 0x1e80, + 0xef9c, 0x248a, 0x248c, 0xb0d2, 0x2401, 0xcc72, +}; + +static const short cjk_variants_indx[0x5200] = { + /* 0x4e00 */ + 4, -1, -1, -1, 5, 6, -1, 7, + -1, 8, 10, 11, 12, -1, 13, -1, + 14, 16, 19, 20, -1, -1, 22, 24, + 26, -1, 28, 29, 33, 34, -1, 36, + 38, 40, 42, 44, 45, 47, 49, 52, + -1, -1, 53, 56, 59, -1, -1, -1, + 60, -1, 66, 67, 68, -1, -1, -1, + -1, -1, 69, -1, -1, 71, 73, -1, + -1, 76, 77, 79, 81, 83, 85, -1, + 87, 92, -1, -1, 93, -1, -1, -1, + 94, 96, -1, -1, 100, 101, -1, 103, + 105, -1, 107, -1, -1, -1, -1, -1, + 110, 111, -1, -1, -1, -1, 115, -1, + 116, -1, -1, -1, -1, -1, -1, -1, + 118, 119, -1, -1, -1, -1, -1, -1, + -1, 121, -1, -1, -1, -1, 124, -1, + 128, 130, 133, -1, -1, -1, 135, -1, + 137, 138, 139, 141, 143, -1, 144, 147, + 151, 153, -1, -1, 155, -1, 156, 157, + 161, 162, 163, -1, 165, 167, 171, 173, + -1, 174, -1, -1, -1, -1, -1, 176, + -1, 178, -1, 182, 183, -1, -1, 184, + 185, 186, 187, -1, -1, 188, -1, -1, + 189, -1, 190, 191, -1, -1, 192, 194, + -1, 195, 196, -1, -1, 199, 201, 202, + -1, 203, -1, -1, 204, -1, 207, 209, + 210, 212, -1, 215, -1, -1, -1, -1, + 217, 218, -1, -1, -1, 220, 221, -1, + -1, -1, 222, -1, -1, -1, -1, 223, + -1, -1, 227, -1, 228, 229, 230, -1, + -1, -1, -1, -1, -1, -1, -1, 232, + -1, -1, 234, -1, 236, 237, 239, 240, + /* 0x4f00 */ + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 245, -1, -1, -1, -1, -1, 247, 248, + 251, 252, 253, 254, 255, 256, 259, 262, + 263, 265, -1, 266, 267, 268, 269, 270, + -1, -1, 271, 273, -1, -1, 275, -1, + -1, 276, 279, -1, -1, 282, -1, 283, + -1, -1, -1, -1, 284, -1, -1, -1, + 285, -1, 286, -1, -1, -1, -1, 287, + 288, -1, -1, -1, -1, -1, 289, -1, + -1, -1, -1, 290, 295, -1, -1, -1, + -1, 296, -1, 298, 301, -1, 302, -1, + 303, -1, -1, 307, -1, 308, -1, -1, + -1, -1, 309, -1, -1, -1, -1, -1, + -1, 310, -1, -1, -1, 312, -1, 314, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 315, 316, -1, 318, -1, + -1, -1, -1, -1, 319, -1, 323, -1, + 324, -1, -1, -1, -1, -1, 325, -1, + -1, -1, -1, -1, -1, -1, -1, 326, + 328, 329, -1, 331, -1, 332, 333, 335, + 336, 337, 338, 339, 340, 341, -1, 343, + -1, -1, -1, -1, -1, -1, 344, 345, + -1, -1, -1, -1, -1, 346, -1, -1, + -1, 347, 348, -1, -1, -1, -1, 349, + -1, -1, 350, -1, 351, -1, 352, -1, + -1, -1, -1, -1, 353, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 355, 356, + 357, 358, 359, 360, -1, 361, 362, -1, + 363, 364, 365, 366, -1, 367, 369, -1, + -1, 371, 372, -1, -1, -1, -1, -1, + -1, -1, -1, 374, 378, 380, -1, -1, + /* 0x5000 */ + 382, -1, 383, 385, -1, 388, 389, -1, + 390, 391, 393, 394, -1, -1, 397, 398, + 399, 400, -1, -1, -1, -1, 401, -1, + -1, -1, -1, -1, -1, -1, 402, 403, + -1, -1, -1, 405, 407, -1, 408, -1, + -1, -1, -1, 410, -1, -1, -1, -1, + -1, -1, -1, 411, -1, -1, 412, -1, + -1, 413, 415, -1, 416, -1, 417, -1, + 418, -1, -1, -1, -1, -1, 419, 420, + -1, 421, -1, -1, -1, -1, -1, -1, + 422, -1, -1, -1, -1, -1, -1, -1, + 425, 426, 427, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 428, -1, -1, + -1, -1, 429, -1, 430, -1, -1, -1, + -1, -1, -1, -1, 432, 433, -1, 435, + 436, 437, 441, 444, -1, 445, 447, 448, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 449, 452, -1, -1, + -1, 453, -1, -1, -1, -1, 454, -1, + 455, 458, 462, -1, 464, -1, -1, -1, + 465, 467, 470, -1, 471, 472, -1, 473, + 474, 475, -1, -1, -1, 476, -1, 477, + -1, -1, -1, 478, 480, 481, -1, 482, + -1, 483, -1, -1, -1, -1, 484, -1, + 485, -1, 486, 487, 491, 492, -1, -1, + -1, 493, 494, -1, -1, 495, -1, -1, + -1, 498, -1, -1, -1, 499, -1, -1, + 500, -1, -1, -1, 501, -1, 502, 504, + -1, -1, -1, 505, -1, 506, -1, -1, + 507, 508, -1, 509, -1, 512, -1, -1, + -1, 513, 514, -1, 515, -1, -1, -1, + -1, 516, -1, -1, -1, -1, -1, -1, + /* 0x5100 */ + 518, 519, 520, -1, 521, -1, -1, -1, + 522, 523, -1, -1, -1, -1, 525, -1, + 526, -1, -1, -1, 527, 528, -1, -1, + 529, -1, -1, -1, -1, -1, 531, 534, + -1, -1, -1, -1, -1, -1, -1, 535, + -1, -1, 536, -1, -1, -1, -1, -1, + -1, -1, 537, -1, -1, -1, -1, 538, + -1, 539, 540, 541, 542, -1, -1, 543, + -1, -1, 545, -1, -1, -1, -1, 546, + -1, 547, 549, 551, 554, -1, 556, 557, + 561, 563, 565, -1, 567, -1, 568, 569, + 570, -1, 572, -1, 573, -1, -1, -1, + 574, -1, -1, -1, 575, -1, 576, 578, + -1, 579, 581, -1, -1, -1, -1, -1, + 582, -1, 583, 586, 591, -1, 592, -1, + -1, 593, -1, 595, -1, 597, 599, -1, + 600, 601, 602, 603, 604, 605, 606, -1, + 609, 610, 611, 613, 614, -1, 616, 618, + 619, 620, 621, -1, -1, -1, -1, 622, + -1, 623, -1, 625, 626, 627, -1, -1, + -1, -1, 629, 630, 631, -1, 632, -1, + 634, 635, 637, 639, 642, -1, -1, 644, + 645, 648, 649, 651, 652, 653, -1, -1, + -1, -1, 654, 655, -1, 656, -1, -1, + 657, -1, 659, 660, 661, 664, 665, -1, + 667, 668, -1, -1, -1, 669, -1, 670, + -1, 671, 672, 673, -1, -1, 674, -1, + -1, -1, -1, 676, 678, -1, 680, -1, + 684, 686, 688, 690, 692, 693, 694, -1, + 696, -1, -1, 701, 702, 707, 710, 715, + -1, 716, 717, 722, 723, -1, 726, 727, + -1, -1, 730, 732, -1, 734, 735, 736, + /* 0x5200 */ + 737, -1, 739, 741, 742, 743, -1, -1, + 745, -1, 747, -1, -1, 748, -1, -1, + -1, -1, 749, 752, 753, -1, -1, -1, + 754, 755, 756, 757, -1, -1, -1, -1, + 762, -1, -1, -1, -1, 763, 764, 767, + 770, -1, 773, 774, 776, 780, 781, -1, + -1, 782, -1, -1, 786, -1, 787, -1, + -1, 788, 789, -1, 790, 793, 794, 795, + 796, 797, 798, 800, 801, -1, -1, 802, + -1, -1, -1, 803, 806, 807, 808, 809, + 813, 815, -1, -1, -1, -1, -1, 823, + -1, 827, 831, 832, -1, 833, -1, -1, + -1, -1, -1, 834, 842, 844, 845, 847, + -1, 848, -1, -1, -1, -1, 849, -1, + 852, 853, -1, 861, 862, 863, -1, 868, + -1, 872, -1, -1, -1, -1, -1, 873, + -1, -1, -1, 874, 877, -1, -1, 878, + -1, 879, 880, -1, 881, 882, 890, -1, + 898, 901, 903, -1, 911, 919, -1, -1, + -1, -1, -1, -1, -1, 921, 923, 924, + -1, 926, 927, -1, -1, -1, -1, -1, + 928, -1, 931, 932, -1, -1, -1, -1, + -1, 935, 936, 937, 940, 943, -1, -1, + -1, 945, -1, -1, -1, -1, -1, 946, + -1, 947, -1, -1, 948, 949, -1, 951, + 952, -1, 953, 956, 959, -1, -1, -1, + -1, 961, -1, -1, -1, 965, 968, 970, + -1, 972, 973, 974, -1, 977, 978, -1, + 981, -1, 982, -1, 983, -1, 984, 985, + -1, 987, -1, -1, -1, -1, -1, -1, + -1, 988, 989, 992, -1, 995, -1, -1, + 996, -1, -1, 998, -1, -1, -1, -1, + /* 0x5300 */ + 999, -1, -1, 1000, 1002, 1004, 1005, -1, + -1, -1, 1008, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 1009, -1, 1011, 1012, -1, 1014, 1016, -1, + 1017, 1018, -1, -1, -1, -1, 1019, 1020, + 1021, 1023, -1, -1, -1, 1024, 1025, 1026, + -1, 1028, 1029, 1032, -1, -1, -1, -1, + 1035, -1, 1036, 1037, -1, -1, -1, -1, + 1039, -1, -1, 1040, -1, -1, 1041, 1042, + -1, 1046, -1, 1047, -1, 1049, 1050, 1053, + 1056, -1, 1057, 1058, 1060, 1063, 1065, -1, + 1067, -1, 1069, 1070, 1071, -1, -1, -1, + 1073, -1, 1074, -1, 1075, 1082, -1, 1084, + -1, -1, -1, 1085, -1, -1, 1087, 1088, + 1090, -1, -1, 1091, 1093, -1, -1, 1094, + 1096, 1097, -1, 1099, -1, 1100, -1, -1, + -1, -1, 1102, -1, 1105, 1106, 1108, 1114, + 1115, 1116, -1, 1117, 1119, 1120, 1121, -1, + 1122, -1, -1, 1123, -1, 1124, -1, -1, + 1126, 1130, 1131, 1132, -1, -1, -1, 1133, + 1134, 1136, 1137, 1138, 1139, -1, 1141, -1, + 1142, 1143, -1, -1, -1, 1145, 1146, 1147, + 1152, -1, 1154, 1155, 1157, 1158, 1159, 1160, + 1161, -1, 1164, 1165, -1, -1, 1166, 1168, + -1, 1170, 1172, 1175, 1178, 1181, 1184, 1185, + 1186, 1187, 1188, -1, 1189, 1190, 1193, 1194, + 1195, 1196, -1, 1200, -1, 1202, -1, -1, + 1203, 1205, -1, 1207, -1, -1, 1209, -1, + 1210, 1214, 1216, -1, -1, -1, -1, 1220, + -1, -1, 1223, 1226, -1, -1, -1, -1, + 1227, -1, -1, -1, -1, -1, 1232, 1236, + -1, 1237, -1, -1, -1, 1240, -1, -1, + /* 0x5400 */ + 1241, 1243, -1, 1245, -1, -1, -1, -1, + 1247, -1, 1248, -1, 1249, -1, 1251, -1, + -1, 1252, -1, 1254, -1, 1255, -1, 1256, + -1, -1, -1, -1, -1, 1257, 1258, 1259, + -1, -1, -1, -1, -1, -1, -1, -1, + 1262, -1, -1, -1, 1263, -1, -1, 1265, + -1, -1, -1, 1271, 1273, -1, 1275, -1, + -1, -1, -1, 1276, -1, 1277, -1, 1278, + -1, -1, 1279, -1, -1, -1, -1, -1, + 1280, 1282, 1284, -1, 1285, 1286, -1, -1, + 1287, 1288, 1289, 1290, -1, 1291, 1292, 1293, + 1294, 1297, 1299, 1300, 1301, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1302, + 1303, 1304, 1305, -1, -1, 1307, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1308, -1, -1, -1, + -1, -1, -1, -1, -1, 1311, -1, -1, + -1, -1, 1312, -1, 1315, -1, -1, 1318, + -1, -1, 1319, -1, -1, -1, -1, -1, + -1, 1321, -1, 1322, 1323, 1324, -1, -1, + -1, -1, -1, -1, 1325, -1, -1, -1, + -1, 1326, -1, -1, 1328, -1, -1, 1329, + -1, 1331, 1334, -1, -1, -1, -1, -1, + 1336, -1, -1, -1, 1338, 1340, -1, -1, + -1, -1, -1, -1, 1341, -1, -1, -1, + -1, -1, -1, -1, -1, 1343, -1, -1, + -1, 1344, 1348, 1349, 1350, 1351, -1, 1352, + -1, 1354, -1, -1, 1355, 1356, -1, 1357, + -1, 1358, -1, 1361, -1, -1, -1, -1, + -1, -1, -1, -1, 1362, -1, -1, -1, + -1, -1, 1363, -1, -1, -1, 1368, -1, + -1, -1, 1370, -1, -1, -1, -1, -1, + /* 0x5500 */ + 1371, -1, -1, -1, 1373, -1, -1, 1374, + -1, -1, -1, -1, -1, 1375, -1, -1, + 1376, -1, -1, -1, -1, 1377, 1378, -1, + 1382, -1, -1, 1388, -1, 1389, -1, -1, + 1390, -1, 1391, 1392, 1393, -1, -1, 1394, + -1, -1, -1, 1395, -1, -1, -1, -1, + -1, 1396, -1, -1, -1, -1, -1, -1, + 1397, -1, -1, -1, -1, -1, -1, -1, + 1398, -1, -1, -1, -1, -1, 1399, -1, + -1, -1, -1, -1, -1, -1, -1, 1400, + -1, -1, -1, 1401, 1407, -1, 1413, 1414, + -1, -1, -1, -1, -1, -1, 1415, 1419, + 1425, -1, -1, 1430, -1, -1, -1, 1433, + -1, -1, -1, -1, 1434, 1435, 1436, 1440, + 1441, -1, -1, -1, 1443, -1, -1, -1, + 1444, -1, 1445, -1, -1, -1, -1, -1, + 1446, -1, 1448, -1, 1450, -1, 1451, -1, + -1, -1, -1, -1, -1, -1, 1456, -1, + -1, 1458, 1460, -1, -1, -1, -1, -1, + -1, -1, 1463, -1, 1464, -1, 1467, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1468, 1469, 1470, 1472, -1, 1473, 1475, + 1477, -1, 1480, -1, -1, -1, 1481, 1483, + -1, -1, -1, 1485, -1, 1486, 1487, -1, + -1, -1, -1, -1, -1, 1488, 1489, 1490, + -1, -1, 1491, -1, -1, -1, 1492, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1493, -1, 1494, -1, -1, -1, + 1495, -1, -1, 1496, -1, 1497, -1, -1, + -1, 1498, -1, 1499, -1, -1, -1, -1, + -1, -1, -1, 1500, -1, -1, 1501, -1, + -1, 1502, -1, -1, -1, -1, -1, -1, + /* 0x5600 */ + -1, -1, -1, -1, -1, -1, 1503, -1, + -1, -1, 1505, -1, -1, 1506, -1, -1, + -1, 1507, -1, 1509, 1510, -1, 1511, 1512, + 1515, -1, -1, -1, 1516, -1, -1, -1, + -1, -1, -1, -1, 1517, -1, -1, -1, + 1518, 1519, -1, -1, -1, -1, 1521, 1522, + 1524, 1525, -1, -1, -1, 1526, -1, 1527, + 1528, -1, -1, -1, -1, 1529, -1, -1, + -1, 1530, 1531, -1, 1532, 1534, -1, -1, + -1, 1535, -1, -1, -1, -1, -1, -1, + 1537, -1, -1, 1538, -1, 1539, 1540, -1, + -1, -1, -1, 1542, 1544, 1545, -1, -1, + 1546, 1547, -1, -1, -1, 1548, 1549, -1, + 1550, -1, 1551, -1, -1, -1, -1, 1552, + -1, -1, 1553, -1, 1554, 1556, -1, -1, + 1559, 1560, -1, -1, -1, -1, 1561, -1, + 1562, -1, -1, -1, -1, -1, -1, 1563, + -1, -1, -1, -1, 1564, -1, -1, 1565, + 1566, -1, -1, -1, 1569, 1570, -1, -1, + -1, 1571, -1, -1, -1, -1, 1575, -1, + 1580, -1, 1581, 1582, -1, 1583, 1584, -1, + 1585, -1, -1, -1, -1, -1, 1586, -1, + -1, -1, 1587, 1588, 1589, -1, 1591, -1, + -1, -1, -1, 1592, -1, -1, -1, -1, + 1593, 1594, 1595, -1, -1, 1597, -1, -1, + 1598, 1599, 1601, -1, 1602, -1, -1, 1603, + -1, 1604, -1, 1605, -1, -1, -1, 1608, + 1611, 1617, -1, 1618, -1, -1, 1619, 1625, + 1626, -1, 1627, 1630, -1, -1, 1633, 1636, + -1, -1, 1637, -1, 1638, 1644, -1, 1647, + 1652, 1653, 1654, 1657, 1660, 1663, 1664, -1, + 1669, -1, -1, 1670, -1, 1675, 1680, -1, + /* 0x5700 */ + 1683, -1, -1, 1688, -1, -1, 1689, 1692, + 1693, -1, -1, 1694, -1, 1699, 1702, 1705, + -1, 1706, 1707, 1709, -1, -1, 1712, 1715, + 1718, -1, -1, -1, -1, 1720, -1, 1722, + -1, 1723, 1724, 1726, -1, -1, -1, 1727, + 1729, -1, -1, -1, 1730, 1731, -1, -1, + 1732, -1, -1, -1, -1, -1, -1, -1, + -1, 1735, 1736, -1, -1, 1738, -1, -1, + 1742, -1, 1743, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1745, + 1749, 1750, -1, 1751, 1752, -1, -1, 1755, + -1, 1758, 1759, 1760, 1766, 1767, 1769, 1771, + 1773, -1, -1, 1775, 1776, -1, 1777, 1778, + 1779, -1, -1, -1, -1, 1781, 1782, 1784, + 1786, -1, -1, 1787, -1, 1788, -1, -1, + 1790, -1, 1791, -1, -1, -1, -1, -1, + -1, -1, 1792, -1, 1793, 1794, 1795, 1796, + -1, -1, -1, 1797, -1, -1, -1, -1, + -1, -1, 1798, 1800, 1801, 1802, 1803, -1, + -1, -1, 1804, 1807, 1808, -1, -1, -1, + -1, 1809, 1810, -1, -1, -1, 1811, 1812, + 1813, 1814, -1, 1816, -1, 1817, -1, 1818, + -1, 1819, 1820, -1, 1821, -1, -1, -1, + -1, -1, -1, 1822, -1, -1, -1, -1, + 1824, -1, -1, -1, -1, -1, 1825, -1, + 1826, -1, 1827, -1, -1, -1, -1, -1, + -1, 1830, 1835, 1836, -1, -1, -1, -1, + 1837, 1838, 1840, -1, 1841, -1, 1843, -1, + -1, 1845, -1, -1, -1, -1, 1846, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1847, + -1, -1, -1, -1, 1848, 1851, -1, -1, + /* 0x5800 */ + -1, -1, 1852, 1853, -1, 1854, 1855, 1856, + -1, -1, 1857, -1, -1, -1, -1, -1, + -1, 1858, -1, -1, -1, 1859, 1861, -1, + -1, 1862, -1, -1, -1, 1863, -1, -1, + -1, -1, -1, -1, 1864, -1, 1866, -1, + -1, -1, -1, -1, -1, -1, -1, 1868, + 1871, 1873, -1, -1, 1874, -1, -1, -1, + -1, -1, 1876, -1, -1, -1, -1, -1, + -1, 1878, -1, -1, -1, -1, 1880, -1, + -1, -1, 1881, 1884, -1, 1885, -1, 1886, + 1887, 1888, 1889, -1, 1890, -1, -1, 1891, + -1, 1892, 1893, -1, -1, -1, -1, 1894, + -1, 1895, 1896, -1, 1897, -1, 1899, -1, + -1, 1900, -1, 1902, -1, -1, -1, -1, + -1, -1, 1903, -1, -1, 1905, -1, 1906, + -1, 1908, -1, -1, 1910, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1913, 1914, -1, 1915, -1, -1, -1, + -1, -1, -1, -1, -1, 1916, 1918, 1919, + -1, 1920, -1, -1, 1922, -1, 1924, -1, + -1, -1, 1925, -1, 1927, -1, -1, 1930, + -1, -1, -1, -1, -1, -1, 1931, 1933, + 1935, -1, -1, 1940, -1, 1942, 1947, -1, + 1948, -1, -1, 1949, -1, -1, 1950, -1, + -1, -1, -1, -1, 1951, -1, -1, 1953, + -1, -1, 1954, 1956, 1957, 1958, 1959, -1, + 1961, -1, -1, 1962, -1, -1, -1, -1, + 1964, 1966, 1967, -1, 1968, -1, 1973, 1975, + 1976, 1977, 1979, -1, 1980, 1981, -1, -1, + -1, 1984, 1986, -1, -1, -1, 1987, 1989, + 1991, 1992, 1993, 1995, -1, 1997, 1999, 2001, + 2003, 2004, 2005, 2007, 2009, 2010, -1, -1, + /* 0x5900 */ + 2012, -1, 2014, -1, 2015, 2017, -1, 2018, + -1, 2022, 2024, -1, -1, 2025, -1, 2028, + -1, -1, -1, 2029, 2030, -1, -1, -1, + 2031, -1, 2033, 2034, 2035, -1, -1, 2036, + 2037, -1, 2038, 2040, -1, 2042, -1, -1, + -1, 2043, -1, -1, 2046, 2047, -1, -1, + -1, -1, 2048, 2050, 2051, -1, 2052, -1, + 2053, 2054, 2055, -1, -1, -1, 2056, -1, + -1, 2057, 2060, -1, -1, -1, -1, 2061, + 2062, -1, -1, 2063, 2064, -1, -1, -1, + 2065, -1, -1, -1, 2066, -1, 2068, -1, + 2071, 2072, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2073, -1, 2075, + 2077, 2080, 2083, -1, 2084, -1, 2087, -1, + -1, -1, -1, -1, -1, -1, 2088, -1, + 2090, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2092, 2096, + 2098, -1, 2099, -1, -1, 2100, -1, -1, + -1, -1, 2102, -1, -1, -1, 2103, -1, + -1, 2104, -1, 2105, -1, 2106, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2110, 2111, 2112, 2114, -1, -1, -1, + -1, -1, -1, 2115, -1, -1, -1, 2118, + 2120, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2122, -1, + -1, 2123, 2124, 2125, -1, 2127, -1, -1, + 2128, -1, 2129, -1, -1, -1, -1, 2130, + -1, 2131, -1, -1, 2132, -1, -1, -1, + -1, -1, 2133, -1, -1, -1, 2134, 2136, + -1, -1, 2138, 2140, 2141, -1, 2142, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 2143, -1, -1, 2145, -1, -1, -1, -1, + /* 0x5a00 */ + -1, -1, -1, -1, 2146, 2147, 2148, 2149, + 2150, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 2151, -1, -1, -1, -1, -1, + 2152, -1, -1, 2154, -1, -1, -1, 2156, + -1, -1, -1, -1, 2157, -1, 2161, -1, + -1, -1, -1, -1, -1, 2162, -1, 2163, + 2165, 2166, 2168, -1, 2169, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 2171, + 2173, 2176, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 2177, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 2178, -1, -1, 2179, -1, + -1, -1, -1, -1, 2181, 2182, -1, 2183, + -1, -1, -1, 2185, 2186, 2189, 2190, -1, + -1, -1, -1, -1, -1, -1, -1, 2191, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2193, 2195, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 2196, + -1, -1, 2197, -1, -1, 2198, -1, 2199, + -1, -1, -1, -1, -1, -1, -1, -1, + 2201, -1, -1, -1, 2202, 2203, -1, 2204, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 2206, -1, -1, -1, -1, + 2208, -1, 2209, -1, 2210, -1, -1, 2211, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2212, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2213, -1, -1, -1, 2214, 2215, -1, + -1, -1, 2217, 2219, -1, -1, -1, 2221, + /* 0x5b00 */ + 2222, -1, -1, 2224, -1, -1, -1, -1, + 2225, 2226, -1, 2227, 2228, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2229, -1, -1, -1, 2230, -1, -1, + -1, 2232, 2233, -1, 2235, -1, -1, -1, + -1, -1, 2236, -1, -1, 2238, -1, -1, + 2240, -1, 2243, -1, -1, -1, -1, 2244, + 2245, -1, -1, -1, -1, -1, 2246, -1, + -1, -1, -1, 2247, -1, -1, 2249, -1, + -1, -1, -1, -1, 2252, -1, -1, -1, + -1, -1, 2253, 2254, -1, -1, -1, -1, + -1, 2255, -1, -1, -1, -1, -1, -1, + 2256, -1, -1, -1, -1, -1, 2257, -1, + -1, -1, 2262, 2263, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 2264, -1, -1, -1, 2269, 2270, 2271, 2274, + -1, 2275, 2281, 2282, -1, -1, 2285, -1, + 2286, -1, 2287, -1, -1, 2288, -1, -1, + 2289, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2291, 2293, 2297, 2299, + 2301, 2302, -1, -1, -1, -1, -1, -1, + -1, 2304, 2305, 2306, -1, -1, 2307, -1, + -1, -1, -1, -1, 2308, -1, 2310, 2311, + -1, -1, -1, 2313, 2314, 2316, 2318, -1, + 2320, -1, -1, 2321, -1, -1, 2322, 2323, + 2325, 2327, -1, -1, 2334, 2335, -1, -1, + -1, -1, -1, 2341, -1, 2342, -1, 2348, + -1, -1, 2354, 2358, 2360, 2366, -1, 2367, + 2368, -1, 2370, -1, -1, -1, 2371, 2373, + -1, 2379, -1, 2381, 2383, -1, -1, -1, + -1, -1, -1, 2385, -1, 2389, 2390, -1, + -1, 2394, -1, 2396, 2397, -1, 2398, 2400, + /* 0x5c00 */ + -1, -1, 2402, -1, -1, 2404, 2407, 2408, + 2409, 2411, -1, 2412, -1, 2413, 2415, -1, + -1, -1, 2416, 2419, 2422, -1, -1, -1, + 2425, 2426, 2427, 2428, -1, 2432, 2435, 2436, + 2441, -1, 2446, 2449, 2450, 2452, 2453, 2454, + -1, 2457, -1, 2458, 2459, 2460, -1, -1, + -1, -1, 2463, -1, 2468, -1, 2473, 2478, + 2483, -1, -1, -1, -1, 2484, -1, -1, + 2487, -1, 2489, 2490, -1, 2491, 2492, -1, + -1, -1, 2493, -1, 2494, 2496, 2497, 2498, + -1, -1, -1, 2500, -1, -1, -1, -1, + -1, -1, -1, 2501, -1, -1, 2503, -1, + -1, 2504, 2505, -1, 2506, -1, 2507, -1, + 2508, -1, -1, -1, 2509, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 2510, + 2511, 2512, 2516, -1, -1, 2517, -1, -1, + 2519, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2520, 2521, + 2522, -1, 2523, 2524, -1, -1, -1, -1, + -1, 2531, -1, -1, -1, -1, -1, -1, + -1, 2532, -1, -1, -1, 2538, -1, -1, + -1, -1, -1, 2539, 2540, -1, -1, -1, + -1, -1, -1, -1, -1, 2541, -1, 2542, + -1, -1, -1, 2543, 2544, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 2545, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2546, -1, -1, + -1, 2547, -1, 2548, 2549, 2550, 2551, -1, + 2552, 2553, -1, -1, -1, -1, -1, 2554, + 2555, -1, -1, -1, 2556, 2557, 2560, -1, + -1, -1, -1, -1, -1, 2567, -1, -1, + /* 0x5d00 */ + -1, -1, 2568, 2569, 2570, -1, -1, 2571, + 2572, -1, -1, 2573, -1, 2575, 2576, -1, + -1, -1, -1, -1, -1, -1, 2579, 2580, + 2581, 2583, -1, -1, -1, -1, -1, -1, + -1, -1, 2585, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2586, 2587, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2589, -1, -1, -1, + 2590, -1, 2591, 2594, -1, -1, -1, 2597, + 2601, -1, 2604, -1, 2605, 2608, -1, -1, + 2609, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 2611, + -1, -1, -1, 2612, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2613, -1, 2614, 2615, -1, -1, 2616, + -1, -1, -1, 2618, 2625, -1, -1, -1, + -1, -1, -1, -1, 2632, -1, -1, 2633, + -1, -1, -1, -1, -1, -1, -1, -1, + 2634, -1, 2635, -1, -1, -1, -1, 2636, + 2637, -1, -1, -1, -1, -1, 2638, -1, + -1, -1, 2639, 2640, 2643, -1, -1, -1, + 2645, 2648, 2655, -1, 2656, 2657, -1, -1, + -1, -1, -1, -1, -1, 2658, 2660, -1, + -1, -1, -1, 2663, 2664, -1, -1, -1, + -1, -1, 2667, 2668, 2669, -1, 2670, 2673, + -1, -1, -1, 2676, -1, 2677, -1, -1, + 2678, -1, 2679, 2680, -1, -1, -1, -1, + -1, 2681, -1, -1, -1, -1, -1, 2682, + 2683, -1, -1, -1, -1, 2684, -1, 2685, + -1, -1, 2686, 2687, -1, 2689, -1, 2690, + /* 0x5e00 */ + 2692, 2694, -1, 2697, -1, 2698, -1, -1, + 2699, -1, -1, 2700, -1, -1, -1, 2701, + 2702, 2703, 2704, -1, -1, 2705, -1, -1, + 2706, -1, 2707, -1, 2708, -1, -1, -1, + -1, -1, -1, -1, -1, 2710, 2711, 2713, + -1, -1, -1, 2714, -1, 2715, 2716, 2719, + 2721, 2724, -1, 2725, -1, -1, 2726, -1, + -1, -1, -1, 2728, 2729, 2730, -1, -1, + 2731, -1, 2732, 2734, -1, -1, -1, 2735, + 2738, -1, -1, -1, 2740, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 2741, + 2742, -1, 2743, -1, -1, -1, -1, 2746, + -1, 2748, -1, 2749, 2751, -1, -1, -1, + -1, -1, -1, 2753, 2756, -1, -1, -1, + -1, -1, 2757, -1, 2760, -1, 2761, 2767, + 2768, 2769, 2771, -1, -1, -1, 2772, 2773, + -1, 2776, -1, 2778, 2780, 2782, 2786, -1, + -1, -1, 2787, -1, -1, -1, -1, -1, + 2788, 2789, -1, 2790, 2791, -1, -1, -1, + -1, 2793, -1, -1, -1, -1, 2794, 2795, + -1, -1, -1, -1, -1, -1, -1, 2797, + -1, -1, -1, 2798, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2799, 2803, -1, + -1, -1, 2804, 2809, 2810, 2811, -1, 2812, + -1, 2813, 2815, 2816, -1, -1, -1, -1, + 2818, -1, -1, -1, -1, -1, 2819, 2820, + 2822, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 2824, 2825, -1, 2828, -1, 2829, + 2831, 2833, 2834, 2836, -1, -1, -1, -1, + -1, 2838, 2839, -1, 2840, -1, -1, -1, + 2841, -1, -1, 2844, -1, -1, -1, -1, + 2848, -1, -1, 2849, 2855, 2857, -1, -1, + /* 0x5f00 */ + 2863, 2864, 2871, 2872, 2873, -1, -1, -1, + -1, 2875, -1, -1, 2876, 2877, 2878, -1, + 2880, 2883, 2884, -1, 2885, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 2886, -1, -1, -1, -1, 2887, 2889, -1, + -1, -1, 2890, -1, -1, -1, -1, 2891, + -1, -1, -1, 2892, -1, 2893, -1, 2894, + -1, 2895, 2897, 2898, 2899, -1, 2900, -1, + -1, -1, -1, -1, -1, -1, 2902, -1, + 2903, -1, -1, -1, 2905, -1, 2906, -1, + 2907, 2908, 2909, 2912, 2914, 2915, -1, 2918, + -1, 2919, 2921, 2923, 2926, 2929, 2932, 2935, + 2936, -1, -1, -1, -1, 2938, 2939, -1, + 2940, 2941, -1, 2942, 2943, -1, -1, -1, + -1, -1, 2945, -1, 2946, -1, -1, 2947, + -1, -1, -1, 2950, -1, -1, -1, 2951, + 2953, 2955, -1, 2958, 2959, -1, -1, 2962, + 2963, -1, 2964, -1, 2965, -1, -1, 2966, + -1, 2967, -1, 2970, -1, 2972, -1, -1, + -1, -1, -1, -1, -1, -1, 2974, -1, + 2976, 2978, -1, 2979, 2981, -1, -1, -1, + -1, 2982, -1, -1, 2984, 2987, -1, -1, + 2988, 2989, -1, 2990, 2993, 2995, -1, 2997, + -1, 3000, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 3001, 3002, -1, 3003, -1, + -1, -1, -1, -1, -1, -1, 3004, 3005, + -1, -1, -1, -1, -1, -1, -1, 3007, + -1, 3008, -1, -1, 3009, -1, -1, -1, + -1, -1, 3011, 3012, -1, -1, -1, 3013, + -1, 3014, -1, -1, -1, -1, -1, -1, + 3017, -1, -1, -1, -1, 3018, -1, -1, + -1, -1, -1, -1, -1, -1, 3019, -1, + /* 0x6000 */ + 3020, 3022, 3023, 3024, 3025, 3026, 3027, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3028, -1, 3029, -1, + -1, -1, -1, -1, 3030, 3031, -1, -1, + -1, -1, -1, 3032, -1, 3034, -1, -1, + -1, -1, 3035, -1, -1, -1, -1, -1, + -1, 3036, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 3039, 3044, -1, -1, 3045, + -1, -1, -1, -1, -1, -1, 3046, -1, + -1, -1, -1, 3047, -1, -1, -1, -1, + -1, -1, 3048, 3049, -1, -1, 3051, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 3052, 3053, -1, -1, 3055, 3057, -1, -1, + -1, -1, 3058, -1, -1, -1, -1, -1, + -1, 3059, -1, 3061, 3062, 3065, 3066, -1, + 3070, 3071, 3072, 3073, 3074, 3076, 3077, 3078, + 3080, -1, -1, -1, -1, 3082, -1, -1, + -1, -1, 3084, 3089, -1, 3090, -1, -1, + -1, 3091, -1, 3092, -1, -1, 3093, -1, + -1, -1, -1, -1, -1, -1, 3095, 3096, + -1, -1, 3097, -1, 3098, -1, 3101, -1, + -1, 3103, 3105, 3108, 3109, 3110, -1, 3111, + -1, -1, -1, 3112, 3115, 3116, 3117, -1, + -1, -1, -1, -1, -1, 3118, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 3120, -1, -1, -1, -1, -1, + -1, -1, 3122, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3125, -1, + 3127, 3128, -1, 3131, -1, 3132, -1, 3134, + 3135, 3136, -1, 3137, 3138, 3139, 3141, 3142, + -1, 3143, 3145, -1, -1, -1, -1, 3146, + -1, -1, -1, 3147, 3148, -1, -1, -1, + /* 0x6100 */ + -1, -1, 3149, -1, -1, -1, -1, -1, + 3151, -1, -1, -1, -1, -1, -1, -1, + -1, 3153, -1, -1, -1, -1, -1, -1, + -1, 3155, -1, 3156, 3157, -1, -1, -1, + 3158, 3159, -1, -1, 3160, -1, 3161, 3162, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 3164, 3165, -1, -1, 3166, + -1, 3167, -1, -1, 3169, 3170, 3171, 3172, + -1, -1, 3173, -1, 3175, -1, -1, 3176, + -1, -1, -1, 3177, -1, 3178, 3179, -1, + -1, 3182, -1, -1, -1, -1, -1, -1, + 3184, 3185, 3187, -1, -1, -1, -1, 3189, + -1, -1, -1, 3191, 3192, -1, -1, -1, + -1, -1, 3193, 3194, -1, 3195, 3196, -1, + -1, -1, -1, 3197, 3198, -1, 3199, -1, + -1, -1, -1, -1, 3200, 3202, 3204, 3205, + -1, 3208, 3209, -1, -1, 3210, -1, 3211, + -1, -1, 3212, -1, -1, -1, -1, -1, + 3213, 3214, 3217, -1, 3218, -1, 3220, 3222, + 3223, 3226, 3229, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3230, 3231, -1, -1, + -1, 3234, -1, 3235, -1, -1, 3236, -1, + -1, -1, 3237, -1, -1, -1, 3238, -1, + -1, -1, -1, 3239, -1, -1, -1, -1, + -1, -1, -1, 3240, -1, -1, -1, 3241, + -1, 3242, -1, -1, 3244, 3245, -1, -1, + 3246, 3248, 3249, -1, 3251, -1, -1, -1, + -1, -1, -1, -1, 3252, -1, 3253, 3254, + -1, -1, -1, 3255, -1, -1, 3256, 3257, + 3258, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 3259, -1, 3260, 3262, 3263, 3264, + 3266, -1, 3267, -1, 3268, 3270, 3271, 3272, + /* 0x6200 */ + 3273, -1, -1, -1, -1, -1, 3274, 3275, + -1, -1, -1, 3276, -1, -1, -1, 3277, + -1, -1, -1, -1, 3279, -1, -1, 3280, + 3281, -1, 3283, 3285, -1, 3286, 3288, -1, + -1, -1, -1, -1, -1, -1, 3289, 3291, + -1, 3292, -1, -1, 3293, -1, 3294, 3296, + 3298, -1, 3300, -1, -1, -1, 3302, 3304, + 3306, 3308, -1, 3309, 3310, -1, 3312, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 3313, 3314, 3315, 3316, -1, + -1, 3318, -1, -1, -1, 3320, -1, 3321, + 3322, -1, -1, -1, -1, -1, 3324, -1, + 3325, -1, -1, 3326, -1, -1, -1, 3327, + 3328, 3330, 3332, 3333, 3334, -1, -1, 3335, + 3336, -1, -1, -1, -1, 3337, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 3338, -1, -1, -1, -1, -1, + -1, 3340, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 3341, 3342, 3343, 3344, 3345, 3347, + 3348, 3349, 3350, -1, 3351, 3352, -1, -1, + -1, -1, -1, -1, 3353, -1, -1, -1, + -1, -1, -1, -1, -1, 3354, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 3357, -1, -1, 3358, -1, -1, + 3359, -1, -1, 3360, -1, -1, -1, 3361, + 3362, -1, -1, 3364, 3365, 3366, 3367, 3368, + -1, -1, -1, -1, 3369, 3370, 3371, 3372, + 3373, 3375, 3378, 3379, -1, 3380, 3381, 3382, + 3383, 3385, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3387, + /* 0x6300 */ + -1, -1, 3388, -1, 3389, -1, -1, -1, + -1, -1, 3391, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3393, 3396, 3397, 3398, 3399, 3400, 3401, + 3402, 3403, 3404, 3405, 3406, 3407, 3408, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3409, -1, 3411, + -1, -1, -1, -1, -1, 3412, 3413, 3414, + -1, 3415, -1, -1, -1, -1, 3418, -1, + -1, -1, -1, -1, -1, 3421, -1, 3422, + -1, -1, -1, -1, -1, -1, -1, 3423, + -1, -1, -1, -1, 3424, -1, 3425, 3426, + -1, 3427, 3428, 3429, -1, -1, -1, -1, + 3431, -1, -1, 3432, -1, -1, 3433, -1, + -1, -1, 3435, -1, 3437, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3438, + -1, -1, -1, 3440, 3442, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3443, + -1, 3444, -1, 3445, -1, -1, -1, -1, + -1, 3446, -1, -1, -1, 3447, -1, -1, + -1, -1, -1, -1, 3448, -1, -1, -1, + -1, -1, 3449, 3450, 3451, -1, -1, 3452, + 3453, -1, 3454, 3455, 3456, 3457, -1, -1, + 3458, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3459, 3460, -1, -1, -1, -1, -1, + -1, -1, 3461, 3462, -1, -1, -1, -1, + 3463, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3464, 3465, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3466, 3467, -1, -1, 3469, -1, 3470, + /* 0x6400 */ + 3471, 3472, 3473, 3474, -1, 3475, 3478, -1, + -1, -1, -1, -1, -1, 3479, -1, -1, + -1, -1, 3480, -1, 3481, -1, 3482, 3484, + -1, -1, -1, -1, 3485, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 3487, -1, -1, -1, -1, 3488, -1, -1, + -1, -1, 3489, -1, -1, -1, 3490, -1, + -1, -1, 3491, -1, -1, -1, 3493, -1, + -1, -1, 3494, -1, 3496, 3498, 3499, 3501, + 3503, -1, 3504, -1, -1, -1, -1, -1, + -1, 3505, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3506, -1, -1, 3507, + 3508, -1, -1, -1, -1, -1, -1, -1, + -1, 3511, -1, -1, -1, -1, -1, 3512, + -1, -1, -1, 3513, -1, -1, 3514, -1, + -1, -1, -1, 3515, -1, -1, -1, -1, + -1, -1, -1, 3516, 3518, -1, -1, -1, + 3519, -1, -1, -1, -1, -1, -1, 3520, + 3521, 3522, -1, 3523, -1, -1, -1, -1, + 3524, -1, 3525, -1, -1, -1, -1, 3526, + -1, 3527, -1, 3528, -1, 3529, 3531, 3532, + -1, -1, -1, 3535, -1, -1, -1, -1, + -1, -1, 3536, 3538, -1, 3539, -1, 3540, + 3541, 3542, 3545, 3546, -1, -1, 3547, 3548, + -1, 3549, -1, -1, 3550, -1, -1, 3551, + 3553, -1, 3555, 3557, -1, 3558, -1, -1, + -1, 3559, -1, -1, 3560, 3561, -1, -1, + -1, -1, 3563, -1, -1, -1, 3565, -1, + 3566, 3567, -1, 3568, -1, 3569, -1, 3570, + -1, -1, -1, -1, 3573, -1, -1, 3574, + 3575, 3576, 3577, -1, 3578, 3581, -1, 3582, + -1, -1, 3584, 3585, 3586, 3587, 3588, -1, + /* 0x6500 */ + 3589, -1, -1, -1, 3590, 3591, 3592, -1, + 3593, -1, 3594, -1, -1, -1, -1, 3595, + -1, -1, 3596, -1, 3597, -1, 3598, -1, + -1, 3599, -1, 3600, 3601, 3603, -1, 3605, + -1, -1, 3606, 3608, 3609, -1, -1, -1, + 3610, -1, 3611, 3614, 3615, -1, -1, -1, + -1, -1, -1, -1, 3617, 3618, 3619, 3620, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3621, + 3625, 3628, -1, -1, 3629, 3630, 3632, 3633, + -1, -1, -1, -1, -1, 3634, -1, 3636, + 3638, 3640, -1, 3641, -1, -1, 3643, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3644, -1, -1, -1, -1, -1, -1, + 3649, -1, -1, -1, -1, 3650, -1, 3651, + 3652, -1, 3653, -1, -1, -1, -1, -1, + -1, 3657, 3658, 3660, -1, 3661, 3666, -1, + 3671, 3676, 3680, 3684, 3686, 3688, 3689, -1, + -1, -1, -1, 3691, 3692, 3694, -1, 3695, + -1, -1, -1, -1, -1, -1, 3700, 3702, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3703, -1, -1, 3704, 3705, -1, -1, + -1, -1, 3706, -1, -1, 3707, -1, 3708, + -1, -1, -1, -1, 3709, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 3712, 3713, -1, -1, -1, -1, -1, -1, + -1, -1, 3714, -1, -1, -1, -1, 3715, + 3717, 3719, -1, 3721, -1, -1, -1, -1, + 3722, -1, -1, -1, -1, 3723, -1, 3724, + -1, -1, 3725, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3728, 3730, + 3733, 3734, 3736, -1, -1, -1, 3737, 3738, + /* 0x6600 */ + -1, -1, 3739, -1, -1, -1, -1, 3740, + -1, -1, 3742, -1, -1, -1, 3743, 3744, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3745, 3746, -1, -1, -1, -1, 3747, + -1, -1, -1, -1, -1, 3748, 3749, -1, + -1, -1, -1, -1, 3750, 3751, -1, 3752, + 3753, -1, -1, -1, -1, -1, -1, -1, + 3754, -1, -1, 3755, 3756, 3758, 3759, 3761, + -1, -1, 3763, 3765, 3766, -1, -1, -1, + -1, 3767, -1, 3768, -1, -1, -1, -1, + -1, -1, 3769, 3770, 3772, 3773, 3774, -1, + -1, -1, 3775, -1, -1, 3776, -1, 3778, + 3779, -1, -1, -1, 3780, -1, -1, -1, + 3781, 3782, -1, -1, -1, -1, 3783, -1, + -1, -1, -1, -1, 3784, -1, -1, -1, + -1, -1, -1, 3786, -1, -1, -1, -1, + 3787, 3788, 3790, 3791, -1, -1, -1, -1, + 3793, 3794, -1, -1, -1, -1, -1, -1, + -1, -1, 3795, -1, -1, -1, 3796, 3798, + 3803, -1, -1, -1, 3804, -1, -1, -1, + -1, -1, 3805, -1, 3806, -1, 3809, 3812, + 3813, -1, -1, 3814, -1, 3815, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 3817, -1, -1, -1, -1, -1, -1, -1, + -1, 3819, -1, -1, 3820, -1, 3821, 3825, + -1, 3826, -1, -1, 3828, 3832, -1, 3833, + -1, -1, -1, -1, -1, -1, 3834, -1, + -1, -1, -1, -1, -1, -1, -1, 3835, + 3836, -1, -1, -1, -1, -1, -1, -1, + 3838, -1, -1, -1, 3839, -1, -1, -1, + -1, -1, 3840, 3845, -1, 3846, -1, -1, + 3847, 3850, 3851, 3852, -1, 3854, 3855, -1, + /* 0x6700 */ + 3856, -1, 3857, 3859, -1, -1, -1, 3860, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3861, 3862, + -1, 3863, -1, 3864, -1, -1, 3865, 3866, + -1, -1, 3867, -1, -1, -1, -1, 3868, + -1, -1, -1, -1, 3869, 3871, 3872, 3873, + -1, 3875, -1, -1, 3876, 3878, 3879, -1, + -1, -1, 3880, -1, -1, -1, -1, -1, + 3882, -1, 3883, 3886, -1, -1, 3888, 3889, + -1, 3890, -1, -1, -1, -1, -1, -1, + -1, 3893, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 3894, 3895, -1, -1, 3896, 3897, 3898, -1, + 3899, 3900, -1, -1, -1, -1, -1, 3901, + 3903, 3904, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3905, 3911, + 3912, 3917, -1, -1, 3918, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3920, + -1, -1, 3921, -1, -1, -1, -1, -1, + -1, 3925, -1, -1, 3928, -1, 3929, -1, + -1, 3930, 3931, 3932, -1, 3933, 3934, 3935, + 3936, 3937, 3942, 3945, -1, 3946, -1, -1, + -1, 3947, -1, -1, 3950, -1, -1, -1, + -1, -1, -1, 3952, -1, -1, -1, -1, + -1, 3953, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3954, + -1, -1, -1, -1, -1, 3955, -1, 3956, + -1, -1, -1, -1, 3961, -1, -1, -1, + 3962, -1, -1, -1, -1, 3963, -1, -1, + -1, 3964, -1, -1, -1, -1, -1, -1, + 3966, -1, -1, 3967, -1, 3970, -1, -1, + -1, 3971, 3972, 3974, -1, 3975, 3976, 3978, + /* 0x6800 */ + 3979, 3980, -1, 3983, 3985, 3987, -1, 3988, + 3989, 3991, 3992, 3994, 3995, -1, 3997, 3999, + -1, 4001, -1, -1, -1, -1, 4002, 4004, + -1, -1, -1, -1, -1, -1, 4006, -1, + -1, -1, 4007, -1, -1, -1, -1, 4008, + -1, -1, -1, -1, -1, -1, -1, -1, + 4009, -1, -1, -1, -1, -1, -1, 4011, + 4013, -1, -1, -1, -1, -1, 4014, -1, + -1, -1, 4016, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4017, -1, -1, -1, + -1, 4019, 4020, -1, -1, -1, -1, -1, + 4021, -1, -1, -1, 4022, 4024, -1, 4025, + 4027, 4030, 4031, 4032, 4033, 4034, 4036, 4037, + 4038, 4039, 4040, -1, -1, -1, 4041, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4043, 4044, -1, 4047, -1, -1, 4048, + -1, 4049, -1, -1, 4051, 4052, -1, -1, + -1, -1, -1, -1, -1, 4054, -1, -1, + -1, -1, -1, -1, 4056, -1, -1, -1, + 4057, -1, -1, -1, -1, 4058, -1, 4059, + -1, -1, -1, -1, -1, 4060, 4065, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4067, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4069, -1, 4070, 4071, + 4072, -1, 4074, -1, 4075, -1, -1, -1, + -1, -1, 4076, 4080, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 4084, 4085, 4086, + -1, -1, -1, -1, -1, -1, -1, 4087, + -1, -1, -1, -1, -1, 4088, -1, 4089, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4091, 4092, -1, -1, -1, 4094, -1, + -1, 4095, -1, -1, -1, -1, -1, -1, + /* 0x6900 */ + 4096, 4097, -1, -1, -1, -1, -1, -1, + -1, 4098, -1, -1, -1, -1, 4100, 4101, + -1, -1, -1, -1, -1, -1, -1, 4104, + 4106, 4107, -1, -1, 4108, -1, -1, 4110, + 4111, -1, 4112, -1, 4113, -1, -1, -1, + -1, -1, -1, 4114, -1, 4115, -1, -1, + 4116, -1, -1, -1, 4117, -1, 4118, -1, + -1, 4119, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 4120, -1, -1, 4121, -1, -1, + -1, -1, -1, 4123, -1, 4124, -1, -1, + -1, 4125, 4126, -1, -1, -1, -1, -1, + 4127, 4128, -1, -1, -1, 4129, 4130, -1, + 4131, -1, 4132, 4133, -1, 4134, -1, -1, + -1, -1, -1, 4135, -1, 4137, -1, -1, + -1, -1, -1, -1, 4138, 4139, -1, 4141, + -1, -1, -1, -1, 4142, 4143, 4144, 4145, + 4146, 4147, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4149, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4150, -1, + 4152, -1, 4153, -1, -1, -1, 4154, -1, + -1, -1, 4156, -1, 4157, -1, -1, -1, + -1, -1, -1, -1, 4158, -1, -1, 4159, + -1, -1, -1, -1, -1, -1, -1, 4160, + 4161, -1, -1, 4163, -1, 4164, -1, -1, + -1, 4165, -1, 4167, 4168, 4170, -1, 4172, + 4174, 4176, 4177, 4178, -1, -1, 4180, 4181, + 4182, -1, -1, -1, 4183, -1, -1, 4184, + 4185, -1, -1, -1, -1, -1, -1, -1, + -1, 4186, -1, 4187, -1, -1, 4188, -1, + -1, 4189, -1, -1, -1, -1, -1, -1, + /* 0x6a00 */ + -1, 4190, 4191, 4193, -1, 4194, -1, -1, + -1, -1, 4195, -1, -1, -1, -1, -1, + 4196, 4197, 4199, 4200, -1, -1, -1, -1, + -1, 4201, -1, -1, -1, -1, 4202, -1, + -1, -1, -1, 4203, -1, -1, -1, -1, + -1, 4205, 4207, -1, -1, -1, -1, 4209, + -1, 4211, -1, 4213, -1, -1, -1, 4214, + 4218, 4220, 4221, -1, -1, 4222, -1, 4223, + -1, -1, -1, 4224, -1, -1, -1, -1, + 4226, -1, 4227, 4228, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 4230, + -1, -1, 4231, -1, -1, -1, -1, -1, + -1, -1, -1, 4233, -1, -1, 4235, -1, + 4238, 4239, -1, -1, -1, -1, -1, -1, + -1, 4240, -1, -1, 4243, -1, -1, -1, + -1, 4244, -1, 4245, -1, -1, 4246, -1, + -1, 4247, -1, -1, -1, -1, -1, 4248, + 4250, -1, -1, -1, 4251, -1, -1, 4252, + 4254, -1, -1, -1, 4255, 4256, -1, 4257, + -1, -1, 4258, 4260, -1, -1, -1, -1, + -1, 4261, 4262, -1, -1, -1, 4264, 4265, + -1, 4267, -1, 4271, -1, -1, -1, -1, + 4272, -1, -1, 4273, -1, -1, -1, -1, + 4274, 4278, 4279, 4280, -1, -1, -1, -1, + 4281, -1, -1, -1, 4282, -1, 4283, -1, + -1, -1, -1, 4285, 4287, 4288, -1, -1, + -1, -1, 4289, 4290, -1, 4291, 4292, 4293, + -1, -1, -1, -1, -1, 4295, -1, 4296, + 4297, -1, 4298, -1, 4299, -1, -1, -1, + -1, -1, -1, 4300, -1, -1, -1, -1, + 4301, -1, 4302, 4303, -1, 4305, -1, -1, + /* 0x6b00 */ + -1, -1, -1, -1, 4306, 4308, -1, -1, + -1, 4309, 4313, -1, -1, -1, -1, 4315, + -1, 4316, 4317, -1, -1, -1, 4319, 4320, + -1, -1, -1, -1, -1, 4322, 4325, -1, + 4327, -1, 4329, 4333, 4336, -1, -1, 4337, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 4338, -1, -1, 4339, -1, -1, + -1, -1, -1, 4340, -1, 4341, 4342, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4343, -1, 4344, -1, + 4346, -1, -1, 4347, -1, -1, 4349, -1, + 4352, -1, -1, 4353, -1, 4355, -1, 4356, + -1, 4357, -1, -1, -1, 4359, -1, -1, + 4361, 4363, -1, -1, 4365, -1, 4366, 4369, + -1, -1, 4371, 4375, 4379, -1, -1, 4382, + 4385, 4388, 4389, -1, 4390, -1, 4392, 4396, + 4400, 4401, -1, -1, -1, -1, -1, 4405, + -1, -1, -1, 4406, -1, -1, -1, -1, + -1, -1, 4407, 4408, -1, -1, -1, -1, + 4409, -1, 4410, -1, -1, -1, 4411, -1, + -1, 4412, -1, -1, 4413, -1, -1, -1, + -1, -1, -1, 4414, -1, -1, 4415, 4416, + -1, 4417, 4419, -1, 4421, -1, -1, 4422, + -1, -1, 4423, 4424, 4426, -1, -1, -1, + 4428, 4429, 4432, -1, -1, -1, 4433, -1, + -1, 4434, -1, -1, -1, -1, 4436, 4437, + -1, -1, -1, 4438, 4440, 4441, -1, 4442, + 4443, 4444, -1, -1, -1, -1, -1, 4445, + -1, 4446, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4447, -1, 4448, -1, + -1, -1, -1, -1, -1, 4449, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 4450, + /* 0x6c00 */ + -1, -1, 4451, -1, -1, -1, -1, 4453, + 4454, -1, 4456, -1, 4457, -1, -1, -1, + -1, -1, -1, -1, 4458, -1, -1, 4461, + -1, -1, -1, 4464, -1, -1, -1, -1, + -1, -1, 4465, 4466, -1, -1, -1, -1, + -1, 4469, -1, 4470, 4471, -1, -1, -1, + -1, -1, 4472, 4473, 4474, 4476, -1, 4478, + -1, -1, 4481, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 4483, + -1, 4487, -1, -1, -1, -1, 4488, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4489, 4491, -1, -1, -1, -1, -1, + -1, 4493, -1, -1, 4495, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 4496, 4497, -1, -1, -1, + -1, 4498, 4499, 4500, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 4501, 4503, -1, -1, -1, -1, -1, -1, + -1, -1, 4504, -1, -1, -1, 4505, 4506, + -1, -1, -1, -1, -1, -1, -1, 4507, + -1, 4508, 4513, 4515, 4516, 4517, 4518, 4519, + 4520, 4521, 4522, -1, -1, -1, 4524, -1, + -1, 4525, 4526, -1, -1, 4527, -1, -1, + -1, -1, -1, -1, -1, -1, 4528, -1, + -1, 4529, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 4530, -1, -1, + -1, -1, -1, 4532, -1, 4533, 4534, -1, + -1, -1, -1, -1, -1, 4535, -1, -1, + 4536, -1, 4537, -1, -1, -1, -1, 4539, + 4540, -1, -1, -1, -1, -1, 4541, 4542, + 4544, -1, 4545, 4546, 4547, 4550, 4552, -1, + /* 0x6d00 */ + -1, 4553, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4554, -1, -1, -1, + -1, -1, 4555, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 4556, + -1, -1, -1, -1, -1, -1, 4557, -1, + -1, -1, -1, -1, 4558, -1, -1, -1, + 4559, -1, -1, 4560, 4561, 4562, 4563, 4564, + 4565, 4566, 4567, 4568, -1, 4569, 4570, 4572, + 4574, 4575, 4576, 4577, 4578, 4579, -1, -1, + -1, -1, -1, -1, 4580, -1, -1, -1, + -1, -1, -1, 4583, -1, -1, -1, 4584, + -1, 4587, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4588, -1, -1, 4589, -1, -1, -1, + -1, -1, 4590, -1, -1, 4592, -1, 4593, + -1, 4594, -1, -1, 4595, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4596, -1, + -1, 4598, -1, 4600, 4601, 4603, 4604, 4605, + 4606, 4607, 4608, 4609, 4610, -1, 4611, 4612, + 4614, 4615, -1, -1, -1, -1, -1, 4619, + -1, -1, -1, -1, -1, -1, -1, -1, + 4620, -1, -1, -1, 4621, -1, -1, -1, + 4622, -1, -1, -1, 4623, -1, -1, -1, + -1, -1, -1, 4624, -1, -1, -1, -1, + -1, -1, 4625, -1, -1, -1, -1, -1, + -1, -1, 4626, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 4628, -1, -1, + 4629, -1, 4631, 4632, -1, -1, -1, -1, + -1, -1, -1, 4634, -1, 4635, 4638, -1, + 4639, -1, 4640, 4641, -1, -1, -1, -1, + /* 0x6e00 */ + -1, -1, -1, -1, -1, 4642, -1, 4643, + 4644, 4646, 4647, 4650, 4654, 4655, 4656, -1, + 4658, 4659, -1, 4660, 4664, 4665, 4668, 4669, + -1, 4670, -1, 4671, -1, -1, -1, -1, + -1, -1, 4672, -1, -1, -1, 4673, -1, + -1, 4674, -1, -1, 4675, -1, -1, -1, + -1, -1, -1, -1, 4676, -1, -1, -1, + 4677, -1, -1, -1, -1, -1, 4679, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 4680, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4681, -1, + -1, -1, -1, -1, -1, -1, -1, 4682, + -1, -1, -1, -1, -1, -1, -1, 4683, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 4684, 4685, 4686, 4687, 4688, + 4690, 4692, 4693, 4694, -1, 4695, -1, 4696, + -1, 4697, -1, -1, 4698, -1, -1, -1, + 4701, -1, -1, -1, -1, 4702, 4704, -1, + -1, -1, -1, -1, 4706, 4707, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 4708, 4712, -1, -1, 4713, 4714, + -1, -1, -1, 4716, -1, -1, 4717, -1, + -1, -1, -1, -1, 4719, -1, -1, -1, + -1, -1, -1, -1, 4721, 4722, -1, -1, + -1, -1, -1, -1, 4723, -1, 4724, -1, + -1, -1, -1, -1, -1, -1, -1, 4725, + -1, 4726, 4728, 4729, -1, 4730, 4732, 4733, + 4736, 4737, 4739, -1, 4740, 4741, 4742, -1, + 4743, 4746, 4747, -1, 4748, -1, -1, 4750, + -1, -1, 4751, -1, -1, -1, -1, 4752, + 4755, -1, -1, 4757, -1, -1, 4758, 4759, + /* 0x6f00 */ + -1, 4761, -1, -1, 4762, -1, 4763, -1, + -1, -1, 4764, -1, -1, -1, -1, -1, + -1, 4765, -1, 4766, -1, -1, -1, -1, + -1, -1, 4767, -1, -1, -1, -1, -1, + -1, -1, 4768, 4769, -1, -1, -1, 4770, + -1, -1, -1, 4773, 4774, -1, -1, -1, + -1, 4775, 4776, -1, -1, -1, -1, -1, + 4777, -1, -1, -1, -1, -1, -1, 4778, + -1, 4779, -1, -1, 4780, 4781, 4782, 4783, + -1, -1, -1, 4784, -1, 4785, -1, -1, + -1, 4786, -1, -1, 4789, -1, -1, -1, + -1, 4791, -1, 4792, 4794, -1, -1, -1, + -1, -1, -1, -1, 4796, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 4797, + 4798, -1, -1, -1, 4799, -1, -1, 4800, + -1, -1, -1, -1, -1, -1, -1, 4801, + 4802, 4806, 4810, -1, 4813, -1, 4816, 4817, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4818, -1, -1, 4819, -1, -1, 4820, + -1, -1, 4821, 4822, 4825, -1, -1, 4826, + 4828, -1, -1, 4829, 4830, -1, 4832, -1, + -1, 4833, -1, -1, -1, -1, 4834, -1, + 4835, 4836, -1, 4837, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4838, -1, 4839, -1, -1, -1, 4840, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4841, 4843, -1, 4844, 4845, -1, -1, + 4847, -1, 4848, 4850, 4852, -1, -1, 4853, + -1, -1, -1, -1, 4855, -1, -1, -1, + -1, -1, -1, 4856, -1, -1, -1, -1, + 4857, 4858, -1, 4861, -1, 4863, 4866, -1, + -1, -1, 4868, -1, 4869, -1, 4870, -1, + /* 0x7000 */ + -1, -1, 4871, -1, -1, 4874, 4875, -1, + -1, 4877, -1, 4878, -1, -1, -1, 4880, + -1, -1, -1, 4881, -1, 4884, -1, -1, + 4885, -1, -1, -1, -1, 4886, -1, 4887, + 4888, -1, -1, -1, -1, -1, 4889, 4890, + 4892, -1, -1, -1, 4894, -1, -1, 4896, + 4897, -1, 4898, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4900, -1, + -1, -1, -1, 4901, 4902, -1, -1, -1, + -1, -1, -1, 4903, 4905, -1, 4906, 4908, + -1, 4909, -1, -1, 4910, 4912, -1, -1, + 4913, -1, -1, -1, -1, 4914, -1, -1, + -1, -1, -1, 4915, 4916, -1, -1, 4917, + -1, -1, -1, -1, -1, 4918, 4919, 4921, + -1, -1, -1, -1, -1, 4922, 4925, -1, + -1, -1, -1, 4927, -1, 4929, 4931, 4933, + 4934, 4935, -1, -1, -1, -1, -1, -1, + -1, 4938, -1, -1, -1, 4941, 4943, 4944, + -1, -1, -1, -1, -1, -1, -1, 4945, + -1, -1, -1, -1, 4947, 4948, -1, -1, + -1, -1, -1, -1, 4949, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4954, 4957, + 4958, -1, -1, -1, -1, -1, -1, -1, + -1, 4959, 4960, -1, 4962, 4965, -1, -1, + -1, 4966, 4967, 4970, -1, -1, -1, -1, + -1, -1, 4971, -1, -1, -1, -1, 4972, + -1, -1, -1, -1, -1, -1, 4973, -1, + -1, -1, -1, 4975, -1, -1, -1, 4976, + -1, -1, -1, -1, -1, -1, 4977, 4978, + 4980, 4982, -1, 4983, 4984, 4985, -1, -1, + -1, 4986, -1, -1, 4987, -1, -1, -1, + -1, -1, -1, -1, -1, 4988, 4989, -1, + /* 0x7100 */ + -1, -1, -1, -1, -1, -1, -1, 4991, + 4992, -1, 4996, -1, -1, -1, -1, 4997, + -1, -1, -1, -1, 4998, 5000, 5001, -1, + 5002, -1, 5003, -1, -1, -1, -1, -1, + -1, 5005, -1, -1, -1, -1, 5006, -1, + -1, -1, -1, -1, -1, 5007, -1, -1, + 5008, -1, -1, 5010, -1, -1, -1, -1, + -1, -1, -1, -1, 5011, -1, -1, -1, + -1, -1, -1, -1, -1, 5013, -1, -1, + -1, 5014, -1, -1, -1, -1, -1, -1, + -1, 5017, 5018, -1, -1, 5019, 5023, 5024, + -1, 5025, -1, -1, -1, -1, -1, -1, + -1, -1, 5026, -1, -1, 5028, -1, 5029, + -1, 5033, -1, -1, 5034, -1, 5036, -1, + -1, -1, -1, -1, 5037, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 5039, -1, + -1, -1, -1, -1, -1, 5041, -1, -1, + 5043, -1, -1, -1, -1, -1, -1, 5047, + -1, -1, 5048, -1, 5049, -1, -1, 5051, + -1, 5052, -1, -1, -1, -1, -1, -1, + -1, -1, 5056, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5057, 5058, 5059, -1, -1, -1, -1, + -1, 5060, 5061, -1, -1, -1, 5062, -1, + -1, 5063, -1, -1, 5065, -1, -1, -1, + 5067, -1, -1, -1, 5068, -1, 5070, -1, + 5071, -1, 5073, 5075, -1, 5077, -1, 5078, + -1, 5081, -1, -1, 5082, -1, -1, 5083, + -1, -1, -1, -1, -1, -1, 5085, -1, + -1, -1, -1, -1, 5086, 5087, -1, -1, + -1, -1, -1, 5088, 5092, -1, -1, -1, + -1, -1, -1, 5093, 5094, -1, 5095, 5096, + /* 0x7200 */ + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 5097, -1, -1, + 5098, -1, -1, -1, -1, -1, -1, 5099, + -1, -1, -1, 5101, -1, -1, -1, -1, + -1, -1, -1, -1, 5104, -1, -1, -1, + -1, -1, -1, -1, -1, 5107, -1, -1, + -1, 5108, 5109, -1, 5111, -1, -1, 5112, + -1, -1, 5113, -1, 5114, -1, 5115, 5118, + 5119, -1, -1, 5120, -1, 5121, 5122, -1, + -1, -1, -1, 5123, -1, 5124, 5125, -1, + -1, -1, -1, 5129, -1, 5130, -1, -1, + 5134, -1, -1, 5135, 5136, -1, -1, -1, + 5137, -1, -1, -1, -1, -1, 5138, -1, + -1, -1, -1, 5140, -1, -1, -1, -1, + -1, -1, -1, -1, 5142, 5143, -1, -1, + -1, -1, 5144, -1, -1, 5146, -1, -1, + -1, 5147, 5148, -1, -1, -1, -1, 5149, + -1, -1, 5150, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 5151, -1, + -1, -1, -1, 5152, -1, -1, -1, -1, + 5154, -1, 5156, -1, -1, -1, -1, 5157, + -1, -1, -1, -1, 5159, 5160, 5161, -1, + -1, -1, 5162, -1, 5163, -1, 5165, 5166, + 5167, 5168, -1, -1, -1, -1, -1, -1, + 5169, -1, 5170, -1, -1, -1, -1, -1, + 5172, 5173, -1, -1, 5174, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 5175, 5176, -1, + -1, -1, 5177, -1, -1, 5178, -1, -1, + -1, -1, -1, -1, 5179, 5180, 5181, 5182, + 5183, 5184, 5185, -1, -1, -1, -1, -1, + 5186, 5188, -1, -1, -1, 5189, 5190, -1, + /* 0x7300 */ + -1, -1, 5191, 5192, -1, -1, -1, 5193, + -1, -1, 5194, -1, -1, 5195, 5197, -1, + -1, -1, -1, -1, -1, 5199, -1, -1, + 5200, 5201, -1, -1, -1, -1, -1, 5202, + -1, 5204, -1, -1, -1, -1, -1, -1, + 5205, 5206, 5207, 5208, 5209, -1, 5210, 5211, + -1, -1, 5212, -1, -1, 5213, 5214, -1, + -1, -1, -1, 5215, -1, -1, -1, 5216, + -1, 5218, -1, -1, 5219, 5220, -1, -1, + -1, -1, -1, -1, -1, 5221, 5222, 5225, + 5226, -1, -1, -1, -1, -1, -1, -1, + 5227, 5228, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 5229, -1, -1, 5231, -1, + 5232, -1, 5233, 5234, -1, 5236, 5237, -1, + 5238, 5239, 5240, -1, -1, 5241, -1, 5243, + 5244, -1, 5246, 5247, 5248, -1, 5249, -1, + 5250, 5251, -1, 5252, -1, 5254, -1, 5255, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5256, -1, -1, -1, -1, -1, -1, + -1, 5257, 5258, 5259, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 5260, 5262, -1, -1, -1, -1, 5263, 5264, + 5265, 5266, -1, 5267, -1, -1, -1, -1, + -1, -1, 5268, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 5269, -1, 5272, 5273, 5274, + 5276, 5277, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5278, -1, -1, 5280, -1, -1, -1, + -1, -1, 5284, -1, -1, -1, -1, -1, + 5285, 5286, 5288, -1, -1, -1, -1, 5289, + -1, -1, -1, -1, -1, -1, 5290, -1, + /* 0x7400 */ + -1, -1, -1, 5291, -1, 5292, -1, -1, + -1, 5293, -1, -1, -1, 5296, 5298, 5299, + 5300, 5302, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5304, -1, -1, 5305, -1, -1, -1, + -1, 5307, 5309, -1, 5310, -1, -1, 5311, + -1, -1, -1, -1, -1, -1, -1, 5312, + -1, -1, -1, 5313, -1, -1, -1, -1, + -1, -1, 5314, -1, -1, -1, -1, -1, + -1, 5315, -1, -1, -1, -1, -1, -1, + 5316, -1, -1, 5319, 5321, -1, -1, -1, + 5322, 5323, 5324, -1, -1, -1, -1, 5325, + 5326, -1, 5327, -1, 5328, -1, 5330, 5331, + 5332, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 5333, -1, -1, -1, 5335, + -1, 5336, -1, -1, -1, -1, 5337, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5339, 5341, 5344, -1, -1, 5345, -1, + -1, -1, -1, 5346, -1, -1, -1, -1, + 5347, -1, -1, -1, -1, 5348, -1, -1, + 5349, -1, -1, -1, -1, 5350, -1, 5352, + -1, -1, -1, -1, -1, -1, -1, -1, + 5353, 5355, 5356, -1, 5357, -1, -1, 5358, + -1, -1, 5359, -1, 5360, -1, -1, -1, + -1, -1, 5362, -1, -1, -1, -1, -1, + -1, -1, -1, 5364, -1, -1, -1, -1, + 5365, -1, -1, -1, -1, -1, 5366, 5367, + -1, -1, -1, -1, -1, -1, 5368, 5370, + -1, -1, -1, -1, -1, -1, -1, -1, + /* 0x7500 */ + -1, 5371, -1, -1, -1, -1, 5373, -1, + -1, -1, -1, -1, 5374, -1, 5375, -1, + -1, -1, -1, -1, -1, 5378, 5379, -1, + -1, -1, -1, -1, -1, -1, 5381, -1, + 5384, -1, 5385, 5387, -1, -1, 5389, -1, + -1, -1, -1, -1, -1, -1, -1, 5392, + -1, -1, -1, -1, -1, 5398, -1, 5399, + -1, -1, 5400, 5402, 5407, 5409, -1, -1, + -1, -1, 5410, -1, 5411, 5413, 5414, -1, + -1, -1, 5418, -1, 5419, 5421, 5423, -1, + -1, 5424, 5425, -1, -1, -1, -1, -1, + -1, 5429, 5431, -1, -1, 5432, 5437, -1, + 5441, 5442, 5443, -1, -1, 5444, -1, 5445, + 5446, -1, 5447, 5448, -1, -1, -1, -1, + 5450, 5451, -1, 5453, 5457, 5458, 5460, -1, + -1, -1, 5461, 5462, -1, -1, -1, -1, + -1, -1, 5463, -1, -1, 5467, 5469, 5470, + -1, 5471, 5475, -1, -1, -1, 5479, 5481, + -1, -1, -1, -1, -1, -1, 5483, 5484, + -1, -1, -1, -1, -1, -1, -1, 5485, + 5486, 5487, -1, 5488, -1, -1, -1, -1, + -1, -1, -1, -1, 5489, 5490, 5491, 5492, + -1, 5493, -1, -1, 5495, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 5496, + 5497, 5498, -1, -1, -1, -1, -1, -1, + -1, -1, 5499, -1, -1, -1, 5500, -1, + -1, 5504, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 5505, 5506, 5507, 5508, -1, -1, 5509, -1, + -1, -1, 5510, 5512, 5515, -1, -1, -1, + -1, 5516, 5517, -1, -1, -1, 5518, -1, + /* 0x7600 */ + -1, -1, 5519, -1, -1, 5523, 5524, -1, + -1, 5525, -1, 5527, -1, 5528, -1, -1, + -1, -1, -1, 5529, -1, -1, 5530, 5531, + 5532, -1, -1, -1, -1, -1, 5533, -1, + -1, 5534, -1, -1, 5535, -1, 5536, 5537, + -1, -1, 5538, 5539, -1, -1, 5540, -1, + -1, -1, 5541, -1, -1, -1, -1, -1, + -1, -1, 5542, 5543, -1, -1, 5545, 5546, + -1, -1, 5547, -1, 5548, 5550, 5551, 5552, + -1, 5553, -1, -1, -1, -1, -1, -1, + -1, -1, 5554, -1, -1, 5556, -1, -1, + 5558, -1, -1, -1, -1, -1, 5559, 5560, + -1, 5561, 5562, 5563, 5564, 5565, -1, 5566, + -1, 5567, -1, 5568, 5569, 5570, 5571, 5572, + 5573, 5576, 5577, -1, 5578, 5579, -1, -1, + -1, -1, 5580, 5590, 5591, -1, -1, -1, + -1, 5593, 5595, 5597, -1, -1, -1, -1, + 5598, -1, -1, 5601, -1, 5602, 5604, -1, + 5605, 5606, -1, -1, -1, -1, -1, -1, + -1, -1, 5607, -1, -1, -1, 5609, -1, + -1, 5610, -1, -1, -1, 5611, -1, -1, + 5613, -1, -1, -1, -1, -1, -1, -1, + 5614, 5616, 5617, -1, -1, -1, -1, 5619, + 5620, 5622, 5624, -1, 5625, -1, -1, -1, + -1, 5626, -1, 5627, -1, -1, -1, 5629, + 5630, -1, -1, 5631, 5634, 5635, -1, 5636, + 5637, 5639, -1, -1, -1, -1, 5641, 5643, + 5644, 5645, -1, -1, 5646, -1, 5647, -1, + -1, 5648, -1, 5649, 5651, -1, -1, 5652, + -1, -1, 5653, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + /* 0x7700 */ + -1, -1, -1, -1, -1, -1, 5655, -1, + -1, 5657, -1, -1, 5658, 5660, 5661, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 5663, -1, -1, -1, -1, -1, 5664, 5665, + -1, -1, -1, -1, -1, 5666, 5667, -1, + -1, -1, -1, 5668, 5669, -1, -1, 5670, + -1, -1, -1, -1, -1, -1, -1, 5672, + -1, -1, -1, -1, -1, -1, 5673, -1, + 5676, 5677, 5678, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 5679, + 5680, 5681, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 5682, -1, 5683, -1, + 5684, -1, -1, -1, 5685, 5686, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5687, -1, -1, -1, -1, -1, 5688, + -1, -1, -1, -1, -1, 5690, 5691, 5692, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 5693, -1, -1, -1, 5694, -1, + 5695, -1, -1, -1, -1, -1, 5696, -1, + 5697, -1, 5698, -1, -1, -1, -1, -1, + -1, 5699, 5700, -1, -1, 5701, -1, -1, + 5703, -1, -1, -1, -1, -1, 5704, -1, + -1, -1, -1, -1, 5705, -1, 5706, -1, + -1, 5710, -1, -1, -1, -1, -1, 5711, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 5712, 5713, -1, -1, -1, -1, + -1, 5714, 5715, -1, -1, -1, -1, -1, + -1, -1, 5716, -1, 5717, -1, 5719, 5720, + -1, -1, -1, 5722, -1, -1, -1, 5723, + -1, -1, -1, -1, 5724, -1, 5727, -1, + -1, -1, -1, -1, -1, -1, 5728, 5729, + /* 0x7800 */ + 5734, 5735, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 5736, -1, -1, 5737, 5738, 5741, + -1, -1, 5742, -1, 5743, -1, -1, -1, + -1, -1, -1, -1, -1, 5744, -1, 5745, + -1, -1, -1, -1, 5746, -1, -1, -1, + -1, -1, 5747, -1, -1, -1, -1, -1, + -1, -1, 5750, 5751, -1, -1, 5752, 5753, + 5758, 5759, -1, 5760, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 5761, 5762, 5763, + -1, 5764, 5765, -1, 5766, -1, -1, -1, + -1, -1, -1, -1, 5767, -1, -1, -1, + 5768, -1, 5769, -1, -1, -1, 5770, 5773, + -1, -1, -1, -1, -1, 5774, -1, 5775, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5778, -1, -1, -1, -1, -1, 5782, + -1, -1, -1, -1, -1, 5784, 5785, -1, + -1, -1, -1, -1, 5786, 5787, -1, 5790, + -1, -1, -1, 5793, 5794, -1, 5795, 5798, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5799, 5800, -1, -1, 5801, -1, 5802, + 5803, 5805, -1, -1, -1, -1, -1, -1, + 5807, -1, 5808, 5810, 5812, -1, -1, -1, + -1, 5813, -1, -1, -1, -1, -1, 5814, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5815, 5816, -1, 5817, -1, 5818, -1, + -1, -1, 5819, -1, -1, -1, -1, -1, + 5822, -1, -1, 5823, -1, -1, -1, 5824, + -1, -1, -1, -1, -1, -1, -1, 5825, + -1, -1, -1, -1, -1, -1, -1, 5826, + 5827, -1, 5828, -1, -1, 5829, -1, -1, + /* 0x7900 */ + 5830, -1, -1, -1, 5831, -1, 5832, -1, + 5835, -1, -1, -1, -1, -1, 5837, -1, + -1, -1, 5838, -1, -1, -1, -1, -1, + -1, 5839, -1, -1, -1, -1, -1, 5840, + 5843, -1, -1, -1, -1, -1, 5844, -1, + -1, -1, 5849, 5850, 5851, -1, 5852, -1, + -1, 5855, -1, -1, -1, -1, -1, -1, + -1, -1, 5856, 5857, 5858, -1, -1, 5859, + 5860, -1, -1, 5861, -1, 5862, -1, -1, + -1, -1, -1, -1, -1, -1, 5863, -1, + -1, -1, -1, -1, -1, 5864, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 5865, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 5866, + -1, -1, -1, -1, -1, 5867, -1, 5868, + 5869, -1, -1, -1, -1, -1, -1, 5870, + 5871, -1, -1, -1, 5872, 5873, -1, -1, + -1, -1, -1, -1, -1, 5874, 5875, -1, + -1, -1, -1, -1, -1, 5876, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5877, -1, -1, -1, -1, 5878, -1, + -1, 5879, 5880, -1, -1, -1, 5881, -1, + 5882, 5883, -1, -1, 5884, -1, -1, -1, + -1, -1, -1, 5885, -1, -1, -1, 5886, + -1, 5887, -1, 5888, -1, -1, 5889, 5890, + 5895, -1, 5896, 5897, 5902, 5905, -1, -1, + 5906, -1, -1, -1, 5907, 5909, 5910, 5911, + 5912, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 5913, + 5914, -1, -1, -1, -1, -1, -1, -1, + 5916, -1, -1, -1, -1, 5917, 5918, -1, + /* 0x7a00 */ + -1, 5919, -1, -1, -1, 5923, 5924, -1, + 5926, 5927, -1, -1, -1, -1, 5929, -1, + -1, -1, -1, -1, -1, -1, -1, 5930, + -1, -1, 5932, -1, 5934, -1, -1, 5935, + -1, -1, -1, 5936, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 5937, 5938, -1, + -1, 5939, 5941, 5942, -1, -1, -1, -1, + -1, -1, 5944, 5946, -1, -1, 5947, 5951, + 5955, -1, 5957, -1, -1, 5958, -1, -1, + -1, 5960, -1, -1, 5962, 5966, 5967, 5969, + 5971, 5974, -1, -1, -1, -1, -1, 5975, + -1, -1, -1, -1, -1, -1, 5976, -1, + 5978, 5979, 5980, 5981, -1, -1, -1, -1, + 5982, 5986, 5988, 5990, -1, 5991, -1, -1, + 5993, -1, -1, -1, -1, -1, -1, 5994, + -1, 5996, -1, -1, -1, 5997, -1, -1, + -1, 5998, -1, 5999, -1, -1, -1, -1, + -1, -1, 6000, -1, -1, 6001, 6002, -1, + -1, 6003, -1, 6005, -1, -1, -1, 6009, + -1, -1, -1, -1, 6013, 6014, -1, -1, + -1, -1, -1, -1, -1, 6015, 6016, -1, + -1, 6017, 6018, -1, 6019, 6020, 6022, 6024, + 6026, -1, -1, 6028, -1, 6029, 6030, -1, + -1, -1, 6032, 6033, -1, -1, -1, -1, + -1, -1, -1, 6037, 6039, 6040, 6041, 6043, + 6044, -1, 6046, -1, -1, -1, -1, -1, + -1, -1, 6047, -1, -1, -1, 6048, -1, + -1, -1, 6050, -1, 6051, 6053, 6056, -1, + -1, -1, 6058, -1, -1, -1, -1, -1, + -1, 6059, 6061, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 6063, -1, + 6065, -1, -1, -1, -1, -1, 6067, -1, + /* 0x7b00 */ + -1, -1, -1, 6068, -1, -1, -1, -1, + -1, -1, -1, 6069, -1, -1, -1, -1, + -1, 6071, -1, -1, 6073, 6074, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 6075, + -1, -1, -1, -1, -1, -1, -1, 6076, + 6082, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 6083, 6085, -1, + -1, -1, 6086, -1, 6088, -1, 6090, -1, + -1, -1, -1, -1, -1, 6091, 6092, -1, + -1, -1, -1, 6093, -1, 6094, -1, 6096, + 6098, 6099, -1, -1, -1, -1, 6100, -1, + 6104, 6105, 6106, 6107, 6108, 6109, 6110, -1, + -1, -1, -1, -1, -1, -1, -1, 6114, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 6115, -1, -1, -1, -1, -1, -1, + -1, 6116, 6117, -1, 6118, -1, 6119, 6122, + 6123, -1, 6124, -1, -1, -1, 6125, 6126, + -1, -1, -1, 6129, -1, 6130, -1, 6131, + -1, -1, 6132, 6133, -1, -1, -1, -1, + -1, -1, 6134, -1, -1, -1, -1, -1, + -1, -1, -1, 6135, -1, -1, 6139, 6141, + 6142, 6143, 6144, 6145, 6146, -1, -1, -1, + 6147, -1, 6149, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 6150, -1, -1, -1, 6151, -1, 6153, -1, + -1, 6154, -1, 6155, -1, -1, -1, 6157, + -1, 6158, -1, 6159, 6160, -1, -1, 6161, + -1, -1, -1, 6162, -1, -1, -1, -1, + 6163, 6165, -1, -1, 6166, -1, 6167, -1, + -1, 6168, 6171, -1, -1, 6172, 6174, 6175, + -1, 6176, 6177, 6178, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + /* 0x7c00 */ + 6179, 6181, -1, -1, 6183, -1, 6185, -1, + -1, -1, -1, -1, -1, 6186, -1, -1, + -1, 6187, 6189, -1, 6190, -1, 6192, 6193, + 6195, -1, -1, -1, -1, -1, 6196, -1, + 6197, 6198, -1, 6199, -1, -1, -1, -1, + -1, -1, 6200, 6201, -1, -1, -1, -1, + -1, 6203, -1, -1, -1, -1, -1, 6205, + -1, 6206, -1, -1, -1, 6207, 6208, -1, + 6209, 6211, -1, 6212, -1, -1, 6213, -1, + -1, -1, -1, -1, 6214, -1, -1, 6215, + 6217, -1, 6218, -1, 6219, 6221, 6222, -1, + 6224, 6226, -1, 6227, 6228, -1, -1, 6229, + 6230, -1, -1, -1, 6232, -1, -1, -1, + -1, 6234, 6235, -1, 6236, 6237, 6239, -1, + -1, -1, 6240, -1, 6242, -1, -1, -1, + -1, -1, -1, 6243, 6244, -1, -1, -1, + -1, -1, -1, 6245, -1, -1, -1, 6246, + -1, -1, -1, 6248, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 6249, + 6250, -1, -1, 6251, 6253, 6254, -1, -1, + -1, -1, -1, -1, 6255, 6256, 6258, 6259, + -1, -1, 6263, -1, 6264, -1, 6268, -1, + -1, -1, -1, 6269, -1, 6271, -1, -1, + -1, 6272, 6273, -1, -1, 6274, -1, -1, + -1, 6275, -1, -1, -1, -1, 6276, 6281, + -1, 6282, 6283, -1, -1, -1, -1, -1, + -1, -1, -1, 6284, -1, 6286, -1, -1, + -1, -1, 6287, -1, -1, 6291, 6292, -1, + 6293, -1, -1, -1, -1, -1, 6295, 6296, + -1, -1, -1, -1, -1, -1, -1, -1, + 6297, -1, 6299, -1, 6300, -1, 6301, -1, + 6302, 6306, 6308, 6309, 6313, -1, 6315, 6317, + /* 0x7d00 */ + 6319, -1, 6320, -1, 6321, 6322, 6323, 6324, + 6325, 6326, -1, 6327, -1, 6328, -1, -1, + 6329, -1, -1, 6330, 6331, 6332, 6333, 6334, + 6335, 6337, 6339, 6340, 6341, 6342, -1, -1, + -1, 6344, -1, 6345, -1, 6346, -1, 6347, + -1, -1, -1, -1, 6348, -1, 6350, 6352, + 6356, 6357, 6358, 6359, -1, 6360, -1, -1, + -1, 6361, 6362, -1, 6363, -1, -1, 6364, + 6365, -1, 6366, 6367, 6368, 6369, 6370, -1, + 6372, -1, -1, 6373, 6374, 6376, 6377, 6378, + 6379, -1, -1, -1, -1, 6380, 6383, -1, + -1, -1, 6384, 6385, -1, 6387, 6389, -1, + -1, 6390, 6391, -1, 6392, 6396, 6397, -1, + 6398, -1, -1, -1, -1, -1, -1, -1, + 6399, 6400, 6402, 6404, -1, 6405, 6407, 6410, + 6411, 6413, -1, -1, -1, -1, -1, -1, + -1, 6414, 6415, 6417, -1, -1, 6418, -1, + 6419, 6420, -1, 6421, 6422, -1, -1, 6423, + -1, 6424, -1, 6426, -1, -1, -1, 6428, + -1, 6429, 6431, -1, 6434, -1, 6435, -1, + 6436, -1, 6438, 6440, -1, -1, -1, -1, + -1, -1, -1, 6441, 6445, 6446, -1, 6447, + 6448, 6449, 6450, 6451, 6453, 6455, -1, 6456, + 6457, 6458, 6459, 6460, -1, 6461, 6463, 6464, + -1, -1, -1, -1, 6465, -1, -1, 6466, + -1, -1, 6467, 6468, -1, 6469, -1, 6470, + 6474, 6475, 6477, -1, 6479, 6480, 6481, 6483, + 6484, 6485, 6486, -1, 6490, 6491, 6492, -1, + 6493, 6494, -1, 6496, -1, 6498, 6499, -1, + 6500, 6501, 6502, 6503, 6507, -1, -1, 6508, + -1, 6509, 6510, -1, 6511, -1, 6512, -1, + -1, 6513, -1, 6514, 6515, -1, -1, -1, + /* 0x7e00 */ + -1, 6517, -1, -1, 6519, -1, -1, -1, + 6521, 6522, 6523, 6524, -1, -1, -1, -1, + 6525, 6526, -1, -1, -1, 6527, -1, 6529, + 6530, -1, -1, 6533, -1, 6534, 6535, 6536, + -1, -1, -1, 6537, -1, -1, 6539, 6541, + 6543, -1, -1, 6544, -1, 6545, 6546, -1, + -1, 6547, 6549, -1, 6552, 6553, 6554, 6556, + -1, 6557, -1, -1, -1, 6558, 6563, -1, + -1, 6564, -1, 6565, -1, 6567, 6569, -1, + 6570, -1, 6571, 6574, -1, 6577, -1, -1, + -1, -1, 6579, -1, 6580, 6581, 6582, -1, + -1, 6584, 6585, 6586, -1, -1, 6587, -1, + -1, 6588, 6590, -1, 6591, -1, 6592, -1, + -1, 6593, 6595, 6597, -1, 6600, 6603, 6605, + 6606, -1, -1, 6609, -1, -1, -1, -1, + -1, 6610, -1, -1, 6611, 6613, 6614, 6615, + -1, -1, 6616, 6617, -1, -1, -1, 6618, + 6619, 6620, 6622, -1, 6624, 6627, 6628, 6631, + -1, -1, 6633, 6635, 6636, -1, 6637, -1, + 6640, -1, -1, -1, 6642, 6643, -1, 6646, + 6648, 6649, 6650, 6651, 6652, 6656, 6657, 6658, + 6659, 6660, 6662, 6663, 6664, 6665, 6666, 6667, + 6668, 6669, 6670, 6671, 6672, 6673, 6675, 6676, + 6677, 6678, 6679, 6680, 6681, 6682, 6683, 6684, + 6688, 6689, 6691, 6692, 6693, 6694, 6695, 6696, + 6697, 6698, 6699, 6700, 6701, 6702, 6703, 6704, + 6706, 6707, 6708, 6709, 6710, 6711, 6713, 6714, + 6715, 6717, 6718, 6719, 6720, 6721, 6724, 6725, + 6727, 6728, 6729, 6730, 6733, 6734, 6735, 6737, + 6739, 6740, 6741, 6743, -1, 6744, 6746, 6747, + 6748, 6749, 6750, 6751, 6753, 6754, 6756, 6757, + 6759, 6761, 6762, 6763, 6764, 6765, 6766, 6767, + /* 0x7f00 */ + 6769, 6770, 6771, 6772, 6773, 6774, 6775, 6776, + 6777, 6778, 6779, 6781, 6782, 6783, 6784, 6785, + 6786, 6790, 6791, 6792, 6793, 6794, 6795, 6796, + 6797, 6799, 6800, 6801, 6802, 6803, 6804, 6805, + 6806, 6808, 6809, 6810, 6811, 6812, 6813, 6814, + 6817, 6818, 6819, 6820, 6822, 6823, 6824, 6825, + 6826, 6828, 6829, 6830, 6831, 6832, 6834, 6837, + 6838, 6839, 6840, 6842, 6843, 6845, 6848, -1, + -1, -1, 6850, -1, -1, -1, -1, 6852, + 6853, -1, -1, -1, 6858, -1, 6860, -1, + 6865, 6867, 6870, 6872, -1, -1, -1, 6874, + -1, -1, 6877, -1, -1, -1, -1, -1, + -1, -1, 6879, -1, -1, -1, -1, -1, + -1, -1, 6880, -1, -1, -1, -1, -1, + 6882, -1, -1, -1, 6884, 6885, 6888, 6889, + 6890, -1, -1, -1, -1, -1, -1, -1, + 6892, 6893, -1, 6895, -1, 6897, 6898, 6899, + 6902, -1, 6906, 6907, 6908, -1, -1, -1, + 6909, 6910, -1, -1, -1, -1, -1, 6911, + -1, -1, -1, -1, -1, -1, -1, 6912, + -1, 6913, -1, 6914, 6915, 6916, -1, -1, + 6917, 6918, 6919, -1, -1, -1, 6921, -1, + -1, -1, -1, -1, 6922, -1, 6924, -1, + -1, 6926, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 6927, 6929, 6931, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 6932, -1, -1, -1, -1, -1, + 6933, 6934, 6935, -1, -1, -1, -1, -1, + 6936, -1, -1, -1, 6937, -1, -1, -1, + -1, -1, -1, 6939, 6940, -1, -1, -1, + -1, 6941, -1, 6942, -1, -1, -1, -1, + -1, 6943, 6944, 6945, -1, 6947, -1, -1, + /* 0x8000 */ + 6948, -1, -1, 6949, -1, -1, -1, 6950, + 6951, -1, 6952, 6953, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 6954, -1, -1, + 6955, -1, -1, -1, 6956, -1, -1, -1, + -1, 6957, 6958, -1, 6959, -1, -1, 6960, + 6961, -1, -1, -1, 6963, -1, 6964, -1, + 6965, -1, -1, -1, -1, -1, -1, -1, + 6966, -1, -1, 6967, 6968, 6969, -1, -1, + 6970, -1, 6973, 6974, -1, -1, -1, -1, + -1, -1, -1, 6975, 6976, 6979, -1, -1, + -1, -1, -1, -1, 6980, -1, 6982, -1, + -1, -1, -1, -1, -1, -1, 6984, 6985, + -1, 6987, -1, -1, -1, -1, 6990, -1, + 6993, 6995, 6996, 6999, -1, 7000, 7002, 7003, + 7007, -1, 7010, 7011, 7012, 7014, 7015, 7016, + -1, 7019, -1, -1, -1, 7020, 7022, -1, + -1, -1, -1, 7023, -1, 7025, -1, 7027, + 7028, 7029, -1, -1, -1, -1, 7030, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 7031, 7033, -1, -1, 7034, -1, -1, 7035, + -1, -1, -1, -1, 7036, -1, 7037, 7038, + -1, 7040, 7041, -1, 7043, -1, -1, -1, + -1, -1, -1, 7044, -1, -1, 7045, 7046, + 7047, 7048, -1, -1, 7051, -1, 7053, -1, + -1, -1, -1, -1, 7055, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 7056, -1, 7057, -1, -1, -1, + -1, 7058, -1, -1, -1, -1, -1, 7060, + 7061, -1, 7062, 7063, -1, 7065, -1, -1, + -1, -1, -1, -1, -1, -1, 7066, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + /* 0x8100 */ + -1, -1, -1, 7067, -1, 7069, 7071, 7073, + 7074, 7075, -1, 7076, -1, 7078, -1, 7079, + 7082, 7083, -1, 7085, 7086, -1, -1, 7087, + -1, -1, 7088, 7090, -1, -1, -1, -1, + -1, -1, -1, 7092, -1, -1, -1, -1, + -1, 7093, -1, 7094, -1, -1, -1, -1, + -1, 7095, -1, 7096, -1, 7099, 7100, -1, + 7101, 7102, 7104, -1, -1, -1, 7106, -1, + -1, -1, -1, -1, -1, -1, 7107, -1, + -1, -1, 7108, -1, 7110, -1, 7111, -1, + -1, -1, -1, -1, -1, -1, 7112, 7113, + 7114, -1, -1, -1, -1, -1, -1, 7115, + -1, 7116, -1, -1, -1, -1, 7117, -1, + -1, -1, -1, 7120, -1, 7121, 7122, -1, + -1, -1, -1, 7123, -1, -1, -1, -1, + 7125, -1, -1, 7127, -1, 7128, 7129, -1, + 7130, -1, 7131, 7132, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 7133, 7134, -1, 7135, -1, 7137, -1, -1, + -1, -1, 7138, -1, -1, -1, -1, -1, + 7139, -1, -1, 7140, 7141, -1, -1, -1, + -1, 7142, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 7143, -1, -1, -1, -1, + 7144, -1, -1, 7146, -1, 7150, 7152, 7153, + 7154, -1, -1, 7155, -1, -1, -1, -1, + 7157, 7159, -1, 7160, -1, 7161, -1, 7162, + -1, -1, -1, 7164, -1, -1, -1, -1, + 7166, 7168, 7169, -1, 7170, -1, 7171, 7172, + 7174, -1, 7175, -1, -1, 7176, -1, -1, + 7177, -1, -1, -1, -1, 7178, -1, -1, + 7179, -1, -1, -1, 7180, -1, -1, -1, + -1, -1, 7181, -1, -1, -1, -1, -1, + /* 0x8200 */ + -1, -1, -1, -1, -1, -1, 7183, 7184, + 7185, 7186, 7189, -1, -1, 7190, 7192, -1, + 7193, -1, -1, 7194, -1, -1, 7195, 7198, + 7201, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 7202, -1, -1, -1, -1, + -1, 7203, -1, -1, -1, -1, 7204, -1, + 7206, 7207, -1, -1, -1, 7208, 7209, -1, + -1, 7210, -1, 7211, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 7213, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 7214, -1, -1, -1, -1, -1, -1, + -1, -1, 7215, 7216, 7218, -1, 7219, -1, + -1, -1, 7220, 7222, -1, -1, -1, -1, + 7224, 7225, -1, 7227, -1, -1, 7231, 7235, + 7239, 7240, 7241, -1, -1, -1, -1, -1, + -1, -1, 7246, -1, -1, -1, -1, -1, + 7247, -1, -1, 7249, 7250, -1, -1, -1, + -1, -1, -1, -1, 7251, -1, -1, 7252, + -1, -1, -1, -1, 7253, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 7254, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 7255, 7256, -1, -1, -1, -1, -1, + 7257, -1, -1, 7264, -1, -1, -1, -1, + -1, 7265, -1, -1, -1, 7266, -1, 7268, + 7269, -1, -1, 7270, 7271, 7272, 7273, 7274, + 7279, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 7280, 7281, -1, -1, -1, -1, 7282, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 7283, -1, -1, -1, -1, -1, -1, + -1, 7284, 7286, -1, -1, 7287, -1, -1, + /* 0x8300 */ + -1, -1, -1, 7288, -1, -1, -1, -1, + -1, -1, 7290, -1, -1, -1, 7292, 7293, + -1, 7294, -1, -1, 7295, 7296, -1, -1, + 7297, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 7298, + -1, -1, -1, -1, -1, -1, -1, 7300, + 7301, -1, 7302, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 7304, 7305, + -1, -1, 7306, -1, -1, -1, -1, -1, + 7307, 7309, -1, -1, 7310, -1, -1, -1, + 7311, 7313, 7314, 7315, 7316, 7317, 7318, 7319, + 7320, 7322, -1, 7325, 7327, 7328, 7329, 7330, + 7331, 7332, 7333, 7334, 7335, 7336, 7337, 7338, + -1, -1, -1, 7341, -1, -1, -1, -1, + -1, 7342, -1, 7343, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 7344, -1, -1, + -1, -1, 7346, -1, -1, -1, -1, -1, + -1, -1, -1, 7348, -1, 7349, 7350, -1, + -1, -1, -1, -1, -1, -1, 7351, -1, + -1, -1, 7352, -1, -1, -1, -1, 7353, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 7354, 7355, 7356, 7357, 7358, 7359, 7360, + 7362, 7363, 7364, -1, 7367, 7369, 7370, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 7371, -1, 7372, 7373, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 7375, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 7376, -1, -1, -1, 7377, + 7380, 7381, -1, -1, 7382, -1, -1, -1, + -1, 7385, -1, -1, -1, -1, -1, -1, + /* 0x8400 */ + -1, -1, -1, -1, -1, -1, -1, 7386, + -1, -1, 7387, -1, 7388, 7389, -1, -1, + -1, -1, -1, -1, -1, 7390, -1, -1, + -1, -1, 7392, -1, -1, 7393, -1, 7394, + 7399, -1, -1, -1, 7400, 7402, 7404, 7405, + 7406, -1, -1, -1, 7407, -1, -1, -1, + -1, 7408, -1, -1, 7411, 7412, -1, -1, + 7413, -1, -1, -1, 7414, -1, -1, -1, + -1, -1, -1, -1, -1, 7415, -1, -1, + -1, 7416, 7417, -1, -1, -1, -1, -1, + -1, -1, 7420, -1, -1, -1, -1, 7421, + 7422, -1, 7423, -1, -1, -1, -1, -1, + 7424, -1, 7425, -1, 7427, -1, 7428, -1, + -1, -1, 7429, -1, 7430, -1, 7431, 7432, + -1, 7433, -1, -1, -1, -1, -1, 7434, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 7435, 7436, -1, -1, -1, 7437, + -1, 7438, -1, 7439, 7440, -1, -1, -1, + 7441, -1, -1, 7442, 7444, -1, -1, -1, + -1, 7445, -1, -1, -1, -1, 7449, -1, + -1, -1, -1, -1, -1, -1, 7451, -1, + 7452, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 7453, + -1, -1, -1, -1, 7454, -1, -1, -1, + 7455, -1, -1, -1, -1, -1, 7456, -1, + -1, -1, -1, 7457, -1, -1, -1, -1, + -1, 7459, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 7461, -1, 7462, + 7463, -1, -1, 7464, -1, 7465, 7466, -1, + -1, -1, -1, -1, -1, 7467, 7470, 7471, + -1, 7472, -1, -1, 7473, -1, -1, -1, + -1, -1, 7475, -1, -1, 7480, -1, -1, + /* 0x8500 */ + -1, -1, -1, -1, -1, 7481, 7483, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 7484, 7485, -1, -1, 7486, 7488, -1, -1, + -1, -1, -1, -1, -1, -1, 7489, -1, + -1, -1, -1, 7490, -1, 7491, 7492, -1, + -1, -1, -1, -1, -1, 7493, -1, 7494, + -1, -1, 7495, 7496, 7497, 7498, 7500, 7502, + -1, 7503, 7504, 7505, 7506, -1, -1, -1, + -1, 7508, -1, -1, -1, -1, 7509, -1, + -1, -1, 7510, 7512, -1, -1, 7514, -1, + 7515, -1, 7517, 7518, -1, 7519, -1, -1, + 7520, -1, 7521, -1, -1, -1, -1, -1, + -1, -1, 7522, -1, -1, -1, -1, -1, + -1, 7523, 7524, -1, -1, 7525, -1, -1, + 7526, -1, 7527, -1, 7528, -1, -1, 7530, + -1, -1, -1, -1, -1, -1, -1, 7531, + 7534, -1, -1, -1, -1, -1, -1, -1, + 7535, -1, 7536, -1, 7538, -1, -1, -1, + -1, 7539, -1, 7540, 7541, -1, -1, 7542, + 7544, -1, -1, -1, -1, -1, -1, 7545, + -1, -1, -1, -1, -1, -1, 7546, -1, + -1, 7548, -1, 7549, 7551, 7553, 7554, 7556, + 7557, -1, 7559, -1, -1, -1, -1, -1, + -1, -1, 7561, -1, 7563, -1, -1, -1, + -1, 7564, 7568, -1, -1, -1, -1, -1, + -1, 7572, -1, -1, -1, 7575, 7576, 7577, + -1, -1, -1, 7579, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 7580, -1, 7585, + -1, -1, -1, -1, 7587, 7588, -1, -1, + -1, -1, 7590, -1, -1, -1, -1, -1, + -1, -1, -1, 7592, 7596, -1, 7598, 7599, + -1, 7600, 7602, -1, 7603, -1, -1, -1, + /* 0x8600 */ + 7606, -1, 7607, -1, 7609, -1, 7610, 7611, + -1, -1, 7615, 7617, -1, 7619, 7621, -1, + 7623, -1, -1, 7626, -1, -1, -1, 7628, + -1, -1, 7629, -1, -1, -1, 7630, -1, + -1, -1, 7631, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 7632, -1, 7633, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 7635, -1, -1, 7636, -1, 7638, + -1, 7639, -1, -1, -1, -1, 7640, -1, + -1, -1, -1, -1, -1, -1, 7642, 7644, + -1, 7645, -1, 7646, -1, 7647, 7649, 7650, + -1, -1, 7652, 7654, 7656, 7657, -1, 7659, + -1, -1, -1, -1, -1, 7660, 7661, 7662, + -1, -1, -1, 7663, 7665, -1, 7666, 7667, + -1, 7668, -1, -1, -1, 7669, -1, -1, + -1, -1, 7671, 7672, -1, 7673, 7674, 7675, + 7676, 7677, 7678, 7679, -1, -1, -1, -1, + -1, -1, 7680, 7682, 7683, -1, -1, -1, + -1, -1, -1, -1, -1, 7684, 7687, -1, + 7688, -1, -1, -1, -1, 7689, -1, -1, + -1, -1, -1, -1, -1, -1, 7690, -1, + -1, -1, -1, 7691, 7692, -1, -1, -1, + -1, -1, -1, -1, 7693, -1, -1, -1, + -1, -1, 7694, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 7695, + -1, -1, 7697, -1, -1, 7698, 7700, 7702, + -1, -1, -1, -1, 7703, -1, -1, -1, + -1, 7706, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 7707, 7708, + 7709, 7710, 7711, 7712, 7713, -1, -1, -1, + -1, -1, 7714, 7715, -1, 7716, -1, -1, + /* 0x8700 */ + -1, -1, 7718, -1, -1, -1, 7719, -1, + -1, -1, -1, 7720, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 7721, 7722, 7723, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 7724, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 7726, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 7727, -1, -1, -1, 7728, -1, -1, + -1, -1, -1, -1, -1, 7729, -1, 7732, + 7734, 7735, -1, 7736, -1, -1, 7738, -1, + -1, -1, -1, -1, -1, 7739, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 7740, + -1, 7741, -1, -1, -1, -1, 7742, -1, + 7743, -1, -1, -1, -1, -1, -1, 7744, + -1, 7745, -1, -1, -1, -1, -1, -1, + 7746, -1, -1, -1, 7747, -1, 7748, 7749, + 7751, -1, 7752, -1, 7753, -1, -1, -1, + 7754, -1, -1, -1, -1, 7755, 7756, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 7757, 7758, -1, -1, -1, -1, 7760, -1, + -1, 7761, 7762, -1, 7764, -1, -1, 7766, + 7767, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 7768, -1, -1, -1, 7769, + -1, 7770, -1, -1, 7771, -1, 7772, 7773, + 7774, -1, -1, -1, -1, -1, 7775, 7776, + -1, -1, 7777, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 7778, -1, -1, -1, -1, + -1, -1, -1, -1, 7779, -1, -1, 7780, + -1, -1, 7781, -1, -1, -1, 7782, -1, + 7783, 7784, -1, 7785, -1, -1, -1, -1, + /* 0x8800 */ + -1, 7787, -1, -1, -1, 7788, 7790, 7791, + -1, -1, -1, -1, -1, 7793, 7794, 7795, + 7796, 7797, 7798, -1, 7801, 7802, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 7803, + -1, 7805, 7806, 7807, -1, -1, -1, 7809, + 7811, -1, -1, -1, -1, 7812, -1, -1, + -1, 7813, -1, -1, -1, -1, 7814, -1, + -1, 7817, 7819, 7822, 7823, -1, -1, -1, + -1, -1, 7825, -1, 7826, 7827, 7828, -1, + -1, 7831, 7833, -1, -1, -1, -1, -1, + -1, -1, -1, 7834, 7835, 7838, 7839, -1, + 7840, -1, 7843, 7844, 7846, 7849, 7850, 7852, + -1, -1, -1, 7855, 7856, 7857, -1, -1, + 7858, -1, -1, -1, 7859, -1, 7860, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 7861, -1, -1, -1, 7862, -1, -1, + -1, -1, -1, -1, 7863, 7864, 7867, -1, + -1, -1, -1, 7868, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 7869, -1, 7872, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 7873, 7875, 7876, 7877, + -1, -1, -1, -1, 7878, 7880, -1, 7881, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 7882, 7883, -1, + 7884, -1, 7885, -1, 7886, -1, -1, 7887, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 7889, -1, -1, 7890, 7891, -1, -1, + 7892, 7893, 7895, 7896, 7897, 7899, 7900, -1, + 7902, -1, -1, -1, -1, 7903, -1, -1, + -1, -1, -1, -1, 7904, 7905, -1, -1, + -1, -1, -1, -1, -1, 7906, -1, -1, + /* 0x8900 */ + -1, -1, -1, -1, -1, -1, -1, 7907, + -1, -1, 7908, -1, 7909, -1, 7910, 7911, + -1, -1, 7912, 7914, -1, -1, -1, -1, + 7915, -1, -1, 7916, -1, 7917, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 7918, -1, -1, -1, -1, + -1, -1, 7919, 7920, 7921, -1, -1, -1, + 7922, -1, -1, 7923, -1, -1, -1, -1, + -1, -1, -1, 7924, -1, -1, -1, 7926, + -1, -1, -1, -1, 7927, 7928, -1, 7929, + -1, -1, -1, -1, -1, 7930, 7931, -1, + -1, -1, -1, -1, -1, 7932, -1, -1, + 7933, -1, -1, -1, 7934, -1, -1, -1, + -1, -1, 7935, -1, 7936, 7937, -1, 7938, + -1, -1, 7939, -1, 7940, -1, -1, -1, + -1, -1, -1, -1, -1, 7942, -1, 7943, + -1, -1, -1, -1, -1, -1, 7945, 7947, + 7948, 7949, 7952, 7956, -1, 7957, 7958, 7959, + 7960, -1, -1, 7963, 7965, -1, 7967, -1, + 7969, -1, 7970, -1, -1, -1, -1, -1, + -1, 7973, -1, -1, -1, 7974, 7975, 7976, + -1, 7978, 7979, -1, 7980, -1, -1, 7981, + 7982, -1, 7983, 7984, -1, -1, 7986, 7987, + -1, -1, 7989, -1, 7993, 7994, -1, 7996, + 7997, 7999, 8000, 8002, 8003, 8004, 8006, 8008, + 8009, 8011, 8014, 8015, 8016, 8017, 8018, 8019, + 8020, 8021, -1, -1, 8022, -1, -1, 8023, + -1, -1, -1, -1, -1, 8025, 8026, -1, + -1, -1, -1, 8027, -1, -1, 8028, 8029, + -1, -1, -1, -1, -1, -1, -1, 8030, + -1, -1, -1, -1, 8032, -1, 8033, -1, + 8035, 8036, -1, -1, -1, 8038, -1, 8040, + /* 0x8a00 */ + 8042, 8044, 8046, 8047, -1, -1, -1, -1, + 8048, -1, 8049, -1, 8050, -1, 8051, -1, + 8052, -1, 8053, 8054, -1, 8055, 8056, 8057, + 8059, -1, 8060, 8061, -1, 8062, -1, 8063, + 8064, 8066, 8068, 8069, -1, 8070, -1, -1, + -1, 8071, 8072, 8073, -1, 8074, -1, -1, + -1, 8075, -1, 8076, 8078, -1, 8079, -1, + -1, -1, 8081, 8082, 8083, 8085, -1, -1, + -1, 8086, -1, -1, -1, -1, 8087, -1, + -1, -1, -1, 8089, -1, 8091, 8092, -1, + 8093, -1, 8094, -1, 8095, 8096, 8097, 8098, + 8099, -1, -1, 8100, -1, -1, 8101, 8102, + 8103, 8104, 8105, 8106, -1, -1, 8107, 8108, + -1, 8109, -1, 8110, 8111, 8113, 8114, -1, + 8115, 8116, 8118, 8119, -1, 8120, -1, -1, + -1, -1, -1, -1, 8121, -1, -1, 8122, + -1, -1, -1, -1, 8123, 8124, 8125, 8126, + -1, 8127, 8128, -1, 8129, 8130, -1, -1, + -1, 8131, 8132, -1, -1, 8133, 8134, -1, + 8136, -1, 8138, -1, -1, -1, 8139, -1, + 8140, 8141, -1, 8142, 8143, 8144, 8145, -1, + 8146, -1, 8147, -1, 8149, 8151, -1, 8153, + 8154, -1, 8155, -1, -1, -1, 8156, -1, + -1, 8157, -1, -1, 8158, -1, 8160, 8161, + -1, -1, 8162, -1, 8163, -1, -1, 8164, + -1, 8165, -1, 8166, 8167, 8169, -1, 8170, + -1, 8171, 8172, -1, -1, -1, 8173, 8174, + -1, -1, -1, 8175, 8176, 8177, 8178, -1, + 8179, 8181, 8183, -1, 8184, -1, 8186, 8187, + -1, 8188, -1, 8189, 8191, 8197, 8198, -1, + -1, 8199, -1, 8200, -1, -1, 8202, 8203, + 8205, -1, 8206, -1, 8207, -1, 8209, -1, + /* 0x8b00 */ + 8210, 8211, 8212, -1, 8213, 8214, -1, -1, + -1, -1, 8215, -1, 8216, -1, 8217, -1, + 8218, -1, -1, -1, 8219, -1, 8220, 8221, + -1, 8222, 8223, 8225, -1, 8226, -1, -1, + 8227, 8229, -1, -1, -1, -1, -1, -1, + 8231, -1, 8232, 8233, 8235, 8236, -1, -1, + 8238, -1, -1, 8239, -1, -1, -1, -1, + -1, 8240, -1, -1, 8241, -1, 8243, -1, + -1, 8244, -1, -1, -1, -1, -1, -1, + -1, 8246, -1, -1, 8248, -1, 8249, 8250, + 8251, -1, -1, -1, -1, -1, 8252, -1, + 8254, 8255, 8256, 8257, 8259, -1, -1, 8261, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 8262, 8264, -1, 8266, 8267, 8269, + 8271, 8272, 8273, -1, 8275, -1, -1, 8276, + 8277, -1, -1, -1, 8278, 8280, 8281, -1, + 8283, 8285, -1, 8287, -1, 8289, -1, -1, + -1, -1, 8290, 8292, 8293, 8295, 8297, -1, + 8300, -1, 8302, 8303, -1, 8305, 8306, -1, + -1, -1, 8307, -1, 8309, -1, 8310, -1, + 8311, 8313, 8314, 8315, 8316, 8317, 8318, 8319, + 8320, 8321, 8323, 8324, 8325, 8327, 8328, 8329, + 8330, 8331, 8332, 8333, 8334, 8335, 8336, 8337, + 8338, 8339, 8341, 8342, 8343, 8344, 8346, 8347, + 8348, 8349, 8351, 8352, 8353, 8354, 8355, 8356, + 8357, 8358, 8359, 8360, 8361, 8362, 8363, 8364, + 8365, 8366, 8368, 8369, 8370, 8371, 8372, 8373, + 8374, 8375, 8376, 8377, 8378, 8379, 8381, 8382, + 8383, 8384, 8385, 8386, 8387, 8388, 8389, 8390, + 8391, 8392, 8393, 8394, 8395, 8396, 8397, 8398, + 8400, 8401, 8403, 8404, 8405, 8407, 8408, 8409, + 8410, 8411, 8412, 8413, 8415, 8416, 8417, 8418, + /* 0x8c00 */ + 8419, 8420, 8421, 8422, 8423, 8424, 8425, 8426, + 8427, 8428, 8429, 8431, 8432, 8433, 8434, 8435, + 8437, 8438, 8439, 8440, 8441, 8443, 8444, 8446, + 8447, 8448, 8450, 8451, 8452, 8453, 8454, 8455, + 8456, 8457, 8458, 8459, 8461, 8462, 8464, 8465, + 8466, 8467, 8468, 8470, 8472, 8473, 8474, 8476, + 8477, 8478, 8479, 8480, 8481, 8482, 8483, 8484, + -1, -1, 8486, -1, -1, -1, -1, 8487, + 8490, -1, -1, -1, -1, -1, 8493, -1, + 8494, -1, 8495, -1, -1, -1, 8499, -1, + 8501, -1, -1, 8505, 8509, -1, -1, -1, + 8513, -1, 8514, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 8515, -1, -1, -1, + -1, -1, -1, 8516, 8517, -1, 8518, -1, + -1, -1, -1, -1, -1, -1, 8519, -1, + -1, -1, 8520, 8521, 8522, -1, 8523, -1, + -1, -1, 8524, -1, -1, -1, -1, 8525, + -1, 8526, -1, 8527, 8528, 8529, 8531, -1, + -1, -1, 8532, 8533, 8534, -1, -1, -1, + 8535, -1, -1, 8536, 8537, 8539, 8541, 8542, + 8545, 8546, 8548, -1, -1, -1, -1, 8549, + 8550, 8551, 8552, 8553, 8554, 8555, 8558, 8561, + 8562, -1, 8563, 8564, 8567, -1, 8568, 8569, + 8570, -1, 8571, 8572, 8573, 8574, -1, 8575, + 8576, 8577, 8578, 8579, 8580, 8581, -1, 8582, + 8583, 8584, 8586, 8587, -1, 8588, 8590, -1, + -1, 8592, 8593, 8594, 8596, 8598, 8599, -1, + -1, 8600, 8601, 8602, 8604, -1, 8605, -1, + 8606, 8607, 8610, 8612, 8614, -1, 8616, 8617, + -1, -1, 8618, 8621, 8622, 8623, -1, -1, + 8624, -1, -1, -1, 8625, 8627, -1, 8628, + -1, -1, 8630, 8631, 8632, 8633, 8634, -1, + /* 0x8d00 */ + -1, 8635, -1, -1, 8637, 8638, -1, 8639, + 8640, -1, 8641, 8643, -1, 8646, -1, 8647, + 8648, -1, 8649, 8651, 8653, -1, 8654, 8655, + -1, -1, -1, 8658, 8659, 8660, 8662, 8663, + 8664, 8667, 8668, 8670, 8671, 8673, 8675, 8676, + 8677, 8679, 8680, 8681, 8682, 8683, 8684, 8685, + 8686, 8689, 8691, 8692, 8693, 8694, 8695, 8696, + 8697, 8698, 8699, 8700, 8701, 8702, 8703, 8704, + 8705, 8706, 8707, 8708, 8711, 8712, 8713, 8714, + 8715, 8716, 8717, 8719, 8720, 8721, 8724, 8725, + 8726, 8727, 8728, 8729, 8730, 8731, 8732, 8734, + 8735, 8736, 8737, 8738, 8739, 8740, 8743, 8747, + 8748, 8749, 8750, 8751, 8752, -1, -1, -1, + -1, -1, 8754, -1, 8755, -1, -1, -1, + 8756, 8757, -1, -1, -1, 8758, 8759, -1, + -1, -1, -1, 8760, -1, -1, -1, 8765, + -1, 8766, 8767, -1, -1, -1, -1, -1, + -1, -1, -1, 8768, -1, -1, -1, -1, + -1, 8769, -1, -1, -1, 8770, -1, -1, + -1, 8771, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 8772, -1, + 8773, -1, -1, -1, 8774, -1, -1, 8775, + -1, 8777, 8778, -1, -1, -1, -1, -1, + 8779, -1, -1, 8780, -1, -1, -1, -1, + -1, -1, -1, 8781, 8783, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 8784, -1, + -1, 8785, -1, -1, -1, 8786, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 8787, 8788, 8789, 8790, + 8791, 8792, 8793, 8794, 8795, -1, -1, -1, + /* 0x8e00 */ + -1, 8796, -1, -1, -1, -1, -1, -1, + 8798, -1, 8800, 8801, 8803, -1, -1, -1, + 8804, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 8805, 8806, 8807, 8808, 8809, -1, -1, 8810, + 8811, -1, -1, -1, 8812, -1, -1, -1, + 8813, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 8814, -1, -1, -1, + -1, -1, -1, 8815, 8817, -1, -1, 8818, + -1, 8819, 8820, -1, -1, 8821, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 8822, + -1, -1, -1, 8823, 8824, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 8826, -1, -1, -1, -1, -1, -1, -1, + -1, 8828, 8830, -1, -1, -1, -1, 8832, + -1, -1, 8833, 8834, 8835, -1, -1, 8836, + -1, 8837, 8838, 8841, -1, 8843, -1, 8845, + -1, 8846, 8847, 8848, -1, 8849, -1, -1, + -1, 8851, 8852, -1, 8853, -1, -1, -1, + -1, 8854, 8855, -1, -1, 8857, 8858, -1, + -1, -1, 8859, -1, 8861, 8862, -1, 8863, + 8864, 8868, 8869, 8870, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 8871, -1, -1, -1, 8872, -1, 8875, -1, + -1, -1, 8879, 8880, 8881, 8882, -1, -1, + -1, 8883, 8884, -1, 8885, -1, -1, -1, + -1, -1, -1, 8886, -1, -1, -1, 8889, + -1, -1, 8890, 8892, 8894, -1, -1, -1, + -1, -1, -1, 8895, -1, -1, -1, -1, + 8896, -1, 8898, -1, -1, -1, 8899, -1, + 8902, 8903, 8904, 8905, 8906, 8907, 8909, -1, + /* 0x8f00 */ + 8910, -1, -1, 8911, -1, 8912, -1, 8913, + 8914, 8915, 8916, -1, 8917, -1, -1, 8919, + -1, -1, 8920, 8922, 8923, 8925, -1, -1, + -1, 8927, -1, 8929, 8931, 8933, 8934, 8935, + -1, 8936, -1, -1, -1, 8937, 8938, -1, + -1, 8939, 8941, -1, 8942, 8943, -1, 8944, + -1, -1, -1, 8945, -1, -1, 8946, -1, + 8947, -1, 8948, 8950, 8951, -1, 8952, 8953, + -1, 8954, 8957, -1, 8958, 8960, 8961, -1, + -1, 8962, -1, -1, -1, 8964, 8965, -1, + -1, -1, -1, -1, 8966, -1, -1, 8967, + -1, -1, -1, -1, 8968, -1, -1, 8969, + -1, 8971, 8972, -1, 8973, -1, 8974, 8975, + 8976, 8977, 8978, 8979, 8980, 8982, 8985, 8986, + 8988, 8990, 8991, 8992, 8993, 8994, 8995, 8996, + 8997, 8998, 8999, 9000, 9002, 9003, 9004, 9005, + 9006, 9007, 9008, 9009, 9010, 9012, 9013, 9015, + 9016, 9018, 9019, 9020, 9021, 9022, 9023, 9025, + 9026, 9027, 9028, 9029, 9030, 9031, 9032, 9033, + 9034, 9035, 9036, -1, -1, 9037, 9040, 9043, + 9044, 9046, -1, -1, 9049, -1, 9052, 9053, + 9055, 9057, -1, 9060, -1, 9061, 9064, 9065, + -1, -1, 9068, -1, -1, 9069, 9070, -1, + -1, 9071, 9074, -1, -1, 9077, 9078, -1, + -1, 9080, 9081, 9082, -1, -1, 9083, 9084, + 9085, -1, 9086, -1, -1, -1, -1, -1, + 9088, -1, -1, -1, -1, -1, -1, -1, + 9089, 9090, -1, 9091, 9092, 9093, 9094, 9095, + -1, -1, -1, -1, 9098, 9099, -1, -1, + -1, 9100, 9101, -1, 9102, -1, -1, 9103, + -1, -1, -1, 9104, 9107, -1, -1, -1, + -1, 9113, 9115, -1, -1, -1, -1, -1, + /* 0x9000 */ + -1, -1, 9117, 9118, -1, -1, -1, -1, + 9119, 9120, 9121, -1, -1, -1, 9122, -1, + -1, -1, 9123, 9125, -1, 9127, -1, -1, + -1, 9130, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 9131, -1, 9132, 9138, -1, + -1, 9139, -1, -1, -1, -1, -1, -1, + 9140, 9142, 9143, -1, -1, -1, -1, -1, + -1, 9144, 9146, 9147, 9148, -1, -1, -1, + -1, 9149, -1, -1, -1, 9150, -1, -1, + -1, 9152, 9154, 9156, -1, -1, 9157, -1, + -1, -1, 9158, 9159, 9162, 9164, -1, 9165, + -1, 9166, -1, -1, 9167, -1, 9168, -1, + 9170, 9172, -1, -1, -1, 9173, -1, -1, + -1, 9174, -1, -1, -1, -1, -1, 9175, + -1, -1, 9176, -1, -1, -1, 9178, 9179, + 9180, -1, 9181, -1, 9182, -1, -1, -1, + -1, 9183, -1, -1, 9184, -1, -1, 9185, + -1, 9186, 9189, -1, -1, -1, -1, 9192, + 9193, 9194, -1, 9195, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 9196, -1, -1, + -1, -1, -1, -1, -1, -1, 9197, -1, + 9198, -1, -1, 9199, 9200, -1, 9201, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 9202, 9203, 9204, -1, 9207, -1, -1, + -1, 9208, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 9211, -1, 9212, 9214, + 9215, 9216, 9217, 9219, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 9220, 9222, + -1, -1, -1, -1, -1, -1, 9223, 9224, + 9225, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 9226, 9227, 9228, + 9232, -1, -1, -1, -1, -1, -1, -1, + /* 0x9100 */ + -1, -1, -1, -1, -1, -1, 9233, -1, + -1, 9234, 9238, -1, -1, -1, -1, -1, + -1, -1, 9242, -1, 9243, 9244, 9248, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 9249, + -1, -1, -1, -1, -1, 9250, -1, -1, + 9251, -1, 9254, -1, 9255, -1, 9256, 9257, + -1, -1, 9258, -1, 9259, 9260, -1, -1, + -1, -1, 9263, -1, -1, -1, 9264, 9265, + 9267, 9268, -1, 9269, -1, -1, -1, -1, + -1, -1, -1, -1, 9270, -1, -1, -1, + -1, 9271, -1, -1, -1, 9272, -1, -1, + -1, -1, 9274, -1, -1, -1, 9275, 9278, + -1, -1, 9280, -1, 9281, -1, -1, -1, + -1, 9283, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 9285, 9286, 9287, + -1, -1, -1, 9289, -1, -1, -1, 9290, + -1, 9291, 9292, 9293, -1, -1, 9294, -1, + -1, -1, -1, -1, 9296, 9297, 9298, 9300, + 9303, -1, -1, -1, 9304, -1, 9306, -1, + -1, -1, -1, -1, 9308, -1, -1, -1, + -1, -1, -1, 9310, 9312, -1, -1, -1, + -1, 9314, -1, -1, -1, -1, -1, -1, + 9317, -1, -1, 9319, 9321, -1, -1, -1, + 9323, 9325, -1, 9326, -1, 9327, -1, 9328, + 9330, -1, 9332, 9334, 9336, -1, 9338, -1, + 9340, 9341, 9343, 9345, 9348, 9349, 9350, 9352, + 9353, 9354, 9355, -1, 9357, 9358, -1, -1, + 9359, 9361, -1, 9362, 9364, -1, 9365, 9366, + -1, 9367, -1, -1, -1, -1, -1, 9368, + 9369, -1, -1, -1, -1, 9377, -1, 9378, + -1, 9379, 9380, 9381, 9384, -1, -1, -1, + /* 0x9200 */ + 9392, 9393, -1, 9394, 9395, 9396, 9397, -1, + 9399, 9400, -1, -1, -1, 9401, 9402, -1, + 9404, 9405, 9406, -1, 9407, 9408, -1, -1, + -1, -1, -1, -1, -1, -1, 9409, 9411, + -1, 9412, -1, 9413, -1, 9414, 9415, 9416, + 9417, 9418, -1, -1, 9420, -1, 9422, -1, + 9424, -1, -1, 9425, 9426, -1, -1, 9427, + 9428, 9429, 9430, -1, -1, 9431, 9432, 9433, + 9434, -1, -1, -1, 9435, 9440, 9441, 9442, + 9443, 9444, -1, 9445, -1, 9447, -1, -1, + -1, 9448, -1, -1, -1, 9449, -1, 9450, + -1, -1, 9451, 9452, -1, -1, 9454, -1, + 9455, -1, 9456, -1, 9459, -1, 9461, -1, + 9462, -1, -1, -1, 9464, 9465, -1, -1, + -1, 9466, -1, -1, 9471, -1, 9475, -1, + 9476, -1, 9477, 9478, -1, -1, -1, 9479, + 9480, -1, -1, 9481, -1, 9482, -1, -1, + -1, -1, -1, -1, -1, 9483, -1, -1, + -1, 9484, -1, 9485, -1, 9486, 9490, -1, + 9491, -1, 9492, 9494, 9496, -1, 9499, -1, + 9500, -1, -1, 9501, -1, 9502, 9503, -1, + 9504, 9505, 9506, 9507, 9508, 9509, 9511, -1, + -1, 9512, 9513, 9514, -1, -1, -1, 9516, + -1, 9518, -1, 9519, 9520, 9521, -1, -1, + -1, 9522, -1, 9523, -1, 9524, -1, 9525, + -1, -1, -1, -1, 9526, -1, -1, 9527, + -1, -1, 9528, -1, -1, -1, -1, -1, + -1, 9529, -1, 9530, -1, 9535, -1, 9536, + -1, -1, -1, 9538, 9540, 9541, 9542, -1, + 9543, 9548, 9550, -1, -1, 9553, 9555, 9556, + 9557, 9558, -1, 9559, -1, -1, 9561, -1, + 9562, -1, -1, -1, 9563, -1, -1, -1, + /* 0x9300 */ + -1, 9564, -1, -1, 9565, -1, 9567, 9568, + 9569, -1, -1, -1, -1, -1, -1, 9570, + 9572, -1, 9573, -1, -1, 9574, -1, -1, + 9575, 9576, 9578, 9579, -1, -1, -1, 9580, + 9581, 9582, 9583, -1, -1, -1, 9585, -1, + 9586, 9587, -1, 9588, 9589, -1, 9592, 9593, + -1, -1, 9594, 9596, -1, -1, 9597, 9598, + 9599, -1, -1, -1, -1, -1, 9600, -1, + 9601, 9602, -1, 9603, -1, -1, 9604, 9605, + 9606, -1, 9608, 9611, -1, 9612, -1, -1, + -1, -1, -1, -1, 9613, -1, -1, -1, + 9614, -1, 9615, 9616, -1, -1, 9618, -1, + 9619, -1, -1, -1, 9621, 9622, -1, -1, + -1, 9623, -1, -1, 9624, -1, -1, 9625, + 9627, -1, -1, 9628, -1, 9632, 9633, -1, + -1, -1, 9634, -1, -1, -1, 9635, 9637, + -1, 9638, 9639, -1, 9640, -1, -1, 9641, + -1, -1, 9642, 9643, 9644, -1, -1, -1, + -1, -1, 9646, -1, 9648, -1, 9650, 9652, + 9653, -1, 9654, 9655, -1, -1, -1, -1, + -1, 9656, 9658, 9659, -1, -1, 9660, 9662, + -1, 9663, 9664, -1, 9665, 9666, 9668, -1, + 9670, -1, -1, 9671, -1, 9672, -1, -1, + 9673, -1, 9674, -1, -1, -1, -1, 9675, + -1, 9676, -1, 9677, -1, -1, -1, 9678, + 9679, -1, -1, -1, 9680, 9681, -1, -1, + 9682, 9683, -1, 9684, -1, -1, -1, 9685, + 9686, -1, -1, -1, 9687, 9688, 9689, 9690, + -1, 9694, 9696, -1, 9697, 9698, -1, -1, + 9700, -1, -1, -1, -1, -1, -1, -1, + 9701, -1, -1, -1, -1, 9702, -1, 9703, + -1, 9704, -1, -1, -1, 9705, -1, -1, + /* 0x9400 */ + -1, -1, 9707, 9709, -1, -1, -1, -1, + -1, -1, -1, 9710, -1, -1, -1, -1, + 9711, -1, 9712, 9713, 9714, -1, -1, 9715, + 9716, 9717, 9718, -1, -1, 9720, -1, -1, + 9722, 9723, -1, -1, -1, -1, 9728, 9729, + 9730, -1, -1, 9731, -1, -1, 9732, -1, + -1, -1, 9734, 9735, -1, 9736, 9741, -1, + 9742, -1, 9744, -1, -1, -1, -1, 9745, + -1, -1, -1, 9746, 9748, 9750, -1, -1, + -1, -1, 9751, -1, 9752, -1, -1, -1, + -1, 9753, 9757, 9761, 9762, 9763, -1, -1, + -1, -1, 9764, 9766, 9771, -1, 9773, -1, + 9774, -1, -1, 9775, 9776, 9777, -1, -1, + -1, -1, 9778, -1, 9780, 9784, -1, 9785, + 9786, 9787, 9788, -1, -1, 9789, -1, 9791, + -1, 9792, -1, -1, 9793, 9794, 9796, 9797, + -1, 9798, 9800, -1, -1, 9801, 9803, 9806, + 9807, 9808, 9809, 9810, 9811, 9812, 9813, 9814, + 9815, 9816, 9817, 9818, 9819, 9820, 9821, 9822, + 9823, 9824, 9825, 9826, 9827, 9828, 9829, 9830, + 9834, 9835, 9836, 9837, 9838, 9839, 9841, 9842, + 9843, 9844, 9846, 9847, 9848, 9849, 9850, 9851, + 9852, 9853, 9855, 9856, 9857, 9858, 9861, 9862, + 9863, 9864, 9865, 9866, 9869, 9870, 9871, 9872, + 9873, 9874, 9877, 9878, 9879, 9880, 9882, 9883, + 9885, 9886, 9887, 9889, 9890, 9892, 9893, 9895, + 9896, 9897, 9898, 9899, 9900, 9902, 9903, 9904, + 9905, 9906, 9907, 9908, 9909, 9910, 9911, 9912, + 9913, 9914, 9915, 9916, 9917, 9918, 9919, 9920, + 9921, 9922, 9923, 9924, 9926, 9927, 9928, 9929, + 9930, 9931, 9932, 9936, 9937, 9938, 9939, 9940, + 9941, 9943, 9944, 9947, 9948, 9949, 9950, 9951, + /* 0x9500 */ + 9953, 9954, 9955, 9956, 9957, 9959, 9960, 9961, + 9962, 9965, 9966, 9967, 9968, 9969, 9970, 9971, + 9973, 9975, 9976, 9977, 9978, 9979, 9980, 9981, + 9982, 9983, 9984, 9985, 9986, 9987, 9988, 9989, + 9990, 9991, 9992, 9993, 9994, 9996, 9997, 9998, + 9999, 10000, 10001, 10003, 10004, 10005, 10006, 10007, + 10008, 10009, 10010, 10011, 10012, 10013, 10014, 10015, + 10016, 10017, 10018, 10020, 10021, 10022, 10023, 10024, + 10025, 10026, 10027, 10028, 10029, 10030, 10031, 10032, + 10034, 10035, 10036, 10037, 10038, 10040, 10041, 10042, + 10044, 10045, 10046, 10047, 10048, -1, 10049, 10050, + 10051, 10052, 10053, 10054, 10055, 10056, 10057, 10058, + 10059, 10060, 10061, 10063, 10064, 10065, 10066, 10067, + 10068, 10069, 10070, 10071, 10072, 10073, 10074, 10075, + 10076, 10078, 10079, 10080, 10081, 10082, 10083, 10084, + 10088, 10092, -1, -1, -1, -1, -1, 10094, + 10098, -1, 10099, 10100, -1, -1, 10101, 10102, + 10104, 10105, -1, 10107, 10108, -1, 10109, 10110, + -1, 10112, 10114, 10116, 10117, -1, -1, -1, + 10118, 10119, -1, -1, -1, -1, -1, -1, + 10121, 10123, 10124, 10127, 10128, 10129, -1, 10130, + 10131, 10132, -1, 10133, 10134, 10135, -1, -1, + -1, 10136, 10138, -1, 10140, -1, 10142, -1, + -1, 10143, -1, 10145, 10146, 10147, 10148, 10149, + -1, -1, -1, 10150, -1, -1, 10152, 10153, + 10154, -1, 10155, 10157, 10158, 10159, -1, -1, + 10160, -1, 10161, 10162, 10163, 10164, 10165, 10166, + 10169, 10174, -1, -1, 10180, -1, 10183, -1, + 10184, 10185, 10186, -1, 10187, 10188, -1, -1, + 10189, 10190, 10191, 10192, 10193, 10194, 10196, 10197, + 10198, 10200, 10201, 10203, 10204, 10205, 10206, 10207, + 10208, 10209, 10211, 10212, 10213, 10214, 10215, 10216, + /* 0x9600 */ + 10217, 10218, 10219, 10220, 10221, 10222, 10224, 10225, + 10226, 10227, 10229, 10230, 10231, 10232, 10233, 10234, + 10235, 10236, 10237, 10239, 10240, 10242, 10243, 10244, + 10245, 10246, 10247, 10249, 10250, 10251, -1, 10253, + -1, -1, -1, -1, -1, 10254, 10258, -1, + 10260, 10261, 10263, 10265, 10267, -1, -1, 10268, + -1, 10269, -1, 10270, 10272, 10276, 10277, -1, + 10279, -1, -1, 10280, -1, -1, -1, -1, + 10281, 10283, -1, -1, -1, 10285, 10286, 10287, + 10288, 10289, -1, -1, -1, 10290, -1, -1, + -1, -1, -1, -1, -1, 10291, 10294, -1, + 10295, -1, -1, -1, 10296, 10298, 10299, 10301, + -1, -1, -1, 10302, -1, 10304, 10305, -1, + 10312, 10313, -1, -1, -1, -1, -1, -1, + 10316, -1, -1, 10320, -1, -1, -1, 10321, + 10322, -1, 10323, 10326, -1, 10328, -1, 10330, + -1, 10332, 10334, -1, 10338, -1, -1, -1, + -1, -1, 10340, -1, 10341, -1, 10342, 10344, + 10345, -1, -1, -1, -1, 10348, 10350, -1, + -1, 10351, -1, 10352, -1, 10353, -1, 10360, + 10361, -1, -1, 10364, -1, -1, -1, -1, + 10367, -1, 10368, 10371, -1, -1, 10373, 10374, + -1, 10381, 10384, -1, 10385, -1, 10386, 10388, + 10390, -1, 10392, 10399, -1, 10400, 10401, -1, + -1, 10402, -1, -1, -1, -1, -1, 10404, + -1, -1, -1, 10406, -1, 10407, -1, 10408, + -1, 10409, -1, -1, -1, 10411, 10414, -1, + -1, 10415, 10416, 10417, 10419, 10421, 10422, 10425, + 10426, -1, 10428, 10429, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 10430, -1, 10431, 10432, -1, -1, 10433, 10434, + -1, -1, 10435, 10437, -1, -1, 10438, -1, + /* 0x9700 */ + -1, 10440, -1, -1, -1, -1, -1, -1, + -1, 10441, 10442, -1, -1, -1, -1, -1, + -1, 10445, -1, -1, -1, -1, -1, 10446, + -1, -1, 10447, 10450, -1, -1, -1, -1, + -1, 10453, 10454, -1, -1, -1, -1, 10455, + -1, -1, -1, -1, -1, 10458, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 10459, -1, -1, 10460, -1, 10464, -1, -1, + -1, 10465, 10466, -1, 10467, -1, 10468, -1, + 10469, 10472, 10473, -1, -1, 10477, 10484, 10491, + -1, 10498, 10500, 10502, 10503, -1, -1, -1, + -1, 10506, 10507, -1, 10508, 10509, -1, -1, + -1, -1, 10512, 10518, 10519, 10521, -1, 10522, + 10523, -1, -1, 10524, -1, 10526, -1, -1, + -1, 10529, -1, -1, 10532, -1, -1, -1, + -1, -1, -1, -1, -1, 10533, -1, -1, + 10534, -1, -1, -1, -1, -1, -1, -1, + -1, 10536, -1, 10538, 10539, 10540, -1, 10541, + -1, 10542, 10543, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 10544, + -1, -1, -1, -1, -1, -1, 10545, 10547, + 10549, -1, -1, -1, -1, -1, -1, 10550, + -1, 10551, 10553, -1, -1, 10554, -1, -1, + -1, 10555, -1, -1, -1, 10556, 10557, -1, + -1, 10558, -1, 10560, -1, -1, 10561, -1, + 10562, 10564, -1, 10565, 10566, 10567, -1, -1, + -1, -1, -1, 10569, -1, -1, -1, -1, + -1, 10570, -1, -1, 10571, 10574, 10575, -1, + -1, -1, -1, -1, 10576, -1, 10578, 10579, + 10582, 10584, 10585, 10586, 10587, 10589, 10590, 10591, + -1, 10592, 10593, -1, -1, 10595, -1, -1, + -1, -1, -1, 10596, -1, -1, -1, 10597, + /* 0x9800 */ + -1, 10598, 10599, 10600, -1, 10601, 10602, 10603, + 10604, -1, 10605, -1, 10606, -1, 10607, 10608, + 10609, 10610, 10611, 10612, -1, -1, -1, 10613, + 10614, -1, 10615, -1, 10617, -1, -1, -1, + -1, 10618, -1, -1, 10619, 10621, 10623, -1, + -1, -1, -1, -1, 10624, 10626, 10627, -1, + 10629, -1, 10631, -1, 10632, -1, -1, 10634, + 10635, 10637, 10641, 10645, 10646, 10648, 10652, -1, + -1, -1, -1, -1, -1, -1, 10653, -1, + -1, -1, -1, 10654, 10655, 10656, 10657, 10658, + -1, -1, 10660, 10661, 10662, 10664, 10666, -1, + 10667, 10668, 10669, 10671, -1, -1, 10673, -1, + -1, -1, 10674, -1, -1, 10675, -1, 10676, + -1, -1, -1, 10677, 10678, -1, -1, 10679, + 10681, 10682, -1, 10685, 10686, 10687, 10688, 10689, + 10690, 10691, 10692, 10693, 10695, 10696, 10697, 10698, + 10699, 10700, 10701, 10702, 10703, 10704, 10706, 10707, + 10708, 10710, 10711, 10713, 10714, 10715, 10716, 10717, + 10718, 10720, 10721, 10722, 10726, -1, 10727, 10729, + 10730, 10731, 10732, 10733, 10734, 10736, 10737, 10738, + 10739, 10741, 10742, 10743, 10744, 10745, 10746, 10747, + 10748, -1, -1, -1, -1, 10756, 10757, 10761, + -1, 10762, -1, 10763, -1, -1, 10764, 10765, + 10768, -1, 10769, 10770, 10771, -1, -1, -1, + 10772, -1, -1, 10773, 10775, -1, 10777, 10782, + 10783, -1, -1, -1, 10787, -1, 10792, 10798, + 10799, 10800, 10801, 10802, 10803, 10804, 10805, 10806, + 10807, 10809, 10810, 10811, 10812, -1, 10813, 10814, + 10817, 10820, 10821, 10822, -1, 10823, -1, -1, + 10824, 10825, 10826, 10827, 10829, 10830, 10831, 10833, + 10835, -1, 10836, -1, 10838, -1, 10839, -1, + -1, -1, -1, -1, 10840, 10841, 10842, 10843, + /* 0x9900 */ + -1, -1, -1, 10844, 10845, 10846, -1, -1, + -1, 10848, 10851, -1, 10854, 10855, 10856, 10857, + 10858, 10859, 10860, 10862, -1, 10863, 10864, -1, + 10865, -1, 10867, 10868, 10869, -1, 10870, 10871, + 10872, 10874, -1, -1, -1, -1, -1, 10875, + 10879, -1, -1, -1, 10881, -1, -1, -1, + -1, 10882, -1, 10883, 10884, 10885, 10887, 10888, + -1, 10889, 10890, 10891, 10892, 10893, 10894, 10895, + -1, 10896, -1, 10897, -1, 10898, -1, -1, + 10899, 10900, 10901, 10902, 10903, 10904, 10905, -1, + -1, 10906, 10907, -1, -1, -1, -1, 10908, + -1, 10909, -1, -1, 10910, -1, 10911, 10912, + -1, -1, 10915, 10916, 10919, 10920, 10922, 10923, + 10925, 10926, 10927, 10928, 10929, 10930, 10931, 10933, + 10934, 10935, 10936, 10937, 10938, 10939, 10940, 10941, + 10943, 10944, 10945, 10946, 10947, 10949, 10950, 10951, + 10952, 10954, 10956, 10957, 10958, 10959, 10960, 10961, + 10962, 10964, 10965, 10966, 10967, 10968, 10969, 10970, + 10971, 10972, 10973, 10974, 10975, 10976, -1, -1, + -1, -1, -1, -1, -1, 10977, 10978, 10979, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 10980, 10981, 10982, -1, + -1, 10983, 10985, 10986, 10987, -1, -1, -1, + -1, 10988, -1, -1, -1, 10989, -1, 10990, + -1, 10992, -1, -1, 10993, 10995, 10997, -1, + 11001, -1, -1, -1, -1, -1, -1, -1, + 11005, 11006, 11007, -1, 11008, 11009, -1, -1, + 11010, 11011, -1, 11012, -1, 11013, 11015, 11017, + -1, 11018, 11021, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 11022, 11023, -1, + 11024, 11025, -1, -1, -1, 11026, -1, -1, + 11028, -1, -1, -1, -1, -1, -1, 11029, + /* 0x9a00 */ + -1, 11030, 11031, -1, -1, 11032, -1, -1, + -1, -1, -1, -1, -1, 11033, 11034, 11035, + 11036, -1, 11039, 11041, -1, -1, 11044, -1, + -1, 11045, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 11046, -1, -1, -1, + 11047, -1, -1, 11048, -1, 11049, 11050, -1, + 11053, -1, -1, -1, -1, -1, 11054, 11055, + 11057, -1, 11058, -1, -1, -1, 11059, -1, + 11060, 11061, 11062, 11063, 11064, 11065, -1, 11069, + -1, -1, 11070, -1, 11071, 11072, -1, 11073, + -1, 11074, 11077, -1, -1, 11078, -1, 11079, + -1, -1, 11082, 11083, -1, 11085, -1, 11086, + -1, -1, 11087, -1, 11089, 11090, 11092, -1, + -1, 11093, 11094, 11095, 11096, 11097, 11098, 11100, + 11101, 11102, 11106, 11107, 11109, 11111, 11112, 11113, + 11114, 11115, 11116, 11117, 11118, 11120, 11121, 11122, + 11124, 11125, 11126, 11129, 11130, 11131, 11132, 11133, + 11134, 11135, 11136, 11137, 11138, 11141, 11142, 11143, + 11144, 11145, 11146, 11147, -1, 11148, 11149, 11150, + 11151, 11153, 11154, 11156, 11157, 11158, 11160, 11161, + 11162, 11163, 11164, 11165, 11166, 11167, 11169, 11170, + -1, -1, -1, -1, -1, -1, -1, 11171, + -1, -1, -1, -1, -1, 11172, -1, -1, + -1, -1, -1, -1, -1, -1, 11176, -1, + -1, -1, -1, -1, 11177, 11179, -1, -1, + 11180, -1, -1, 11181, 11182, -1, -1, 11183, + -1, -1, 11184, 11185, 11187, 11191, 11193, 11194, + 11197, 11198, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 11199, 11201, 11202, -1, -1, + -1, 11203, 11205, -1, -1, 11207, 11208, 11210, + -1, -1, -1, -1, 11211, -1, -1, -1, + -1, 11213, -1, -1, -1, -1, -1, -1, + /* 0x9b00 */ + 11214, -1, 11215, -1, -1, -1, 11218, -1, + -1, -1, -1, -1, -1, 11219, -1, -1, + -1, -1, -1, 11220, -1, -1, -1, -1, + -1, -1, 11222, 11223, -1, -1, -1, -1, + -1, -1, 11224, 11227, -1, 11228, 11233, 11238, + 11240, 11241, 11242, 11247, -1, 11248, 11253, -1, + 11254, 11257, -1, -1, -1, -1, 11260, -1, + -1, 11261, -1, 11262, -1, -1, -1, -1, + 11264, -1, -1, -1, -1, -1, -1, 11265, + -1, 11266, -1, -1, -1, -1, 11267, -1, + 11269, -1, -1, -1, -1, -1, -1, 11274, + 11276, -1, 11277, 11278, -1, -1, -1, -1, + -1, -1, 11279, 11280, -1, -1, 11281, -1, + 11282, -1, -1, -1, -1, 11283, -1, 11284, + -1, -1, 11285, 11287, 11288, -1, -1, 11289, + -1, -1, 11290, -1, -1, -1, -1, -1, + -1, 11291, -1, 11292, -1, -1, -1, -1, + -1, 11293, 11295, 11296, -1, 11297, 11298, 11299, + 11300, 11301, 11302, 11303, -1, -1, -1, -1, + -1, -1, 11304, -1, 11305, 11306, 11309, -1, + -1, -1, -1, -1, -1, -1, 11310, 11311, + -1, -1, 11313, 11314, -1, 11315, 11316, -1, + -1, -1, -1, 11321, -1, -1, 11322, 11323, + -1, -1, 11325, 11326, -1, -1, 11327, -1, + 11328, 11329, -1, -1, -1, -1, -1, 11330, + -1, 11332, 11333, 11335, -1, -1, -1, -1, + -1, -1, 11336, -1, 11337, 11338, 11339, 11340, + 11342, -1, -1, 11343, -1, 11345, -1, -1, + -1, 11346, 11347, -1, 11348, -1, -1, 11349, + 11350, -1, 11351, 11352, -1, -1, -1, -1, + 11353, -1, -1, -1, 11354, 11355, -1, 11356, + -1, 11359, -1, -1, -1, 11360, -1, 11361, + /* 0x9c00 */ + 11362, 11364, 11365, 11366, -1, -1, -1, -1, + 11367, 11369, -1, -1, 11370, 11372, -1, 11374, + 11375, -1, 11377, 11378, -1, -1, -1, -1, + -1, -1, -1, 11379, 11381, -1, -1, 11382, + 11383, -1, -1, 11384, 11385, 11386, -1, -1, + 11388, 11390, -1, -1, -1, 11391, 11392, -1, + -1, 11393, 11394, 11396, -1, 11397, -1, 11398, + -1, 11399, 11400, 11402, 11403, -1, 11404, -1, + -1, -1, 11405, -1, -1, 11406, -1, -1, + 11407, 11408, -1, -1, -1, -1, -1, -1, + -1, -1, 11411, 11412, 11413, -1, 11414, 11415, + 11416, -1, -1, -1, -1, 11417, 11418, 11419, + 11420, -1, -1, 11421, 11422, -1, -1, 11423, + 11424, -1, -1, -1, -1, 11425, 11426, 11427, + -1, -1, -1, -1, -1, -1, 11428, 11431, + 11433, -1, 11435, 11436, 11441, 11442, 11443, 11444, + 11445, 11446, 11447, -1, 11448, 11449, 11450, 11451, + 11452, 11454, 11455, 11456, 11457, 11458, 11460, 11461, + 11462, 11463, 11464, 11465, 11466, 11467, 11468, 11469, + 11470, 11471, 11472, 11473, 11474, 11479, 11480, 11482, + 11483, 11485, 11486, 11487, 11488, 11489, 11490, 11491, + 11492, 11493, 11495, 11496, 11497, 11498, 11499, 11500, + 11501, 11502, 11503, 11504, 11505, 11506, 11507, 11508, + 11510, 11511, 11512, 11513, 11514, 11515, 11516, 11517, + 11518, 11519, 11520, 11521, 11522, 11524, 11526, 11527, + 11528, 11529, 11530, 11531, 11532, 11534, 11535, 11536, + 11537, 11538, 11539, 11540, 11541, 11542, 11544, 11546, + 11547, 11548, -1, 11549, 11550, 11551, 11553, 11554, + 11555, 11556, 11557, 11558, -1, 11559, -1, 11561, + -1, 11563, -1, 11564, 11566, -1, -1, -1, + -1, -1, 11567, 11568, 11569, -1, 11570, -1, + 11571, -1, -1, -1, -1, -1, -1, -1, + /* 0x9d00 */ + -1, -1, -1, -1, -1, -1, 11572, 11573, + 11574, 11576, -1, -1, -1, -1, 11578, -1, + -1, -1, 11580, -1, -1, 11581, -1, -1, + -1, -1, -1, 11582, -1, 11583, 11585, 11586, + -1, -1, -1, 11588, -1, -1, 11589, -1, + 11590, -1, -1, -1, 11591, -1, -1, 11593, + 11594, -1, -1, 11595, 11596, -1, -1, -1, + -1, -1, -1, 11597, 11598, -1, -1, 11599, + -1, -1, 11600, 11601, 11602, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 11603, 11604, 11605, 11606, -1, -1, -1, -1, + -1, 11607, -1, -1, 11608, 11609, 11611, -1, + 11613, 11614, -1, -1, -1, -1, -1, -1, + -1, -1, 11615, -1, 11616, -1, 11617, 11618, + 11619, -1, 11620, -1, -1, -1, 11621, 11623, + -1, -1, -1, -1, -1, -1, 11624, -1, + -1, -1, -1, -1, -1, -1, -1, 11626, + -1, 11628, 11629, -1, -1, -1, -1, 11630, + -1, -1, -1, 11633, -1, -1, 11634, -1, + 11635, -1, 11636, -1, -1, -1, -1, -1, + -1, 11637, -1, -1, 11638, 11639, -1, -1, + -1, 11640, 11641, 11642, 11644, -1, -1, 11645, + -1, -1, 11647, -1, 11648, 11655, -1, -1, + -1, 11656, 11657, 11658, 11659, -1, -1, 11660, + 11661, 11662, 11663, 11664, 11665, -1, 11668, -1, + 11669, 11670, 11671, -1, -1, -1, -1, 11672, + -1, -1, -1, 11673, -1, -1, 11674, 11675, + -1, 11677, 11678, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 11679, 11680, -1, + -1, -1, -1, 11681, -1, -1, -1, 11682, + 11683, -1, 11684, 11685, 11687, -1, -1, -1, + 11689, 11690, 11691, -1, -1, 11693, -1, 11694, + /* 0x9e00 */ + -1, -1, -1, -1, -1, -1, -1, 11695, + -1, -1, 11696, -1, 11697, -1, 11698, 11699, + -1, -1, -1, -1, -1, 11700, 11703, -1, + 11710, -1, 11711, 11712, 11714, 11715, 11716, 11717, + 11719, 11720, 11723, 11724, 11725, 11726, 11728, 11730, + 11731, 11732, 11733, 11734, 11736, 11737, 11738, 11739, + 11740, 11741, 11742, 11743, 11744, 11745, 11746, 11747, + 11748, 11749, 11750, 11751, 11752, 11753, 11754, 11755, + 11756, 11757, 11758, 11759, 11760, 11761, 11763, 11764, + 11766, 11767, 11768, 11769, 11770, 11771, 11772, 11773, + 11774, 11775, 11776, 11777, 11778, 11779, 11780, 11781, + 11782, 11783, 11784, 11786, 11787, 11788, 11789, 11790, + 11791, 11792, 11793, 11794, 11795, 11802, 11803, 11804, + 11805, 11806, 11807, 11808, 11809, 11810, -1, 11811, + 11812, 11813, 11814, 11815, 11816, 11817, -1, -1, + 11819, 11822, 11824, 11825, 11826, 11829, 11831, -1, + -1, -1, -1, 11832, 11833, 11834, -1, 11835, + -1, -1, -1, -1, -1, -1, -1, 11836, + -1, -1, -1, -1, -1, -1, -1, 11837, + -1, -1, -1, -1, -1, -1, 11839, -1, + -1, -1, -1, -1, 11840, 11842, 11843, -1, + -1, 11844, 11846, 11851, 11856, 11858, -1, 11859, + -1, -1, -1, -1, 11863, 11867, -1, -1, + 11872, 11874, 11878, 11883, 11886, 11890, -1, -1, + -1, -1, -1, 11894, 11895, -1, -1, -1, + -1, 11897, -1, -1, 11898, -1, -1, 11899, + -1, 11900, 11901, -1, -1, -1, -1, -1, + 11902, 11903, -1, 11904, -1, -1, 11905, -1, + -1, 11907, -1, -1, 11908, -1, -1, -1, + 11909, 11910, 11911, -1, -1, 11912, -1, -1, + -1, 11913, 11914, -1, 11915, -1, 11916, 11917, + -1, 11918, -1, -1, -1, 11919, 11920, 11921, + /* 0x9f00 */ + -1, -1, 11923, 11924, -1, -1, -1, 11925, + 11927, 11930, -1, 11931, 11932, 11933, 11934, -1, + -1, 11935, 11936, 11937, -1, 11939, -1, 11940, + -1, -1, -1, -1, -1, -1, -1, -1, + 11942, 11943, -1, -1, -1, -1, 11944, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 11945, -1, -1, -1, + -1, 11946, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 11947, -1, -1, + -1, -1, 11948, 11952, -1, -1, 11954, 11956, + 11958, 11962, 11964, 11966, 11967, 11969, -1, 11970, + -1, 11971, 11972, -1, 11973, -1, -1, 11974, + 11975, 11976, 11978, 11980, -1, -1, 11981, 11982, + -1, 11985, 11986, -1, 11988, -1, -1, -1, + 11989, 11990, 11991, -1, -1, -1, 11992, 11993, + -1, -1, -1, -1, -1, -1, -1, 11994, + 11996, 11997, 11998, 11999, 12000, 12002, 12003, 12004, + 12005, 12006, 12007, 12008, 12009, 12010, 12013, -1, + 12014, -1, 12015, -1, 12018, 12019, -1, -1, + -1, 12020, 12022, 12023, 12024, 12026, 12029, 12031, + -1, -1, 12033, -1, -1, 12036, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, +}; + diff --git a/graf2d/win32gdk/gdk/src/iconv/cns11643.h b/graf2d/win32gdk/gdk/src/iconv/cns11643.h new file mode 100644 index 00000000000..5b166412545 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cns11643.h @@ -0,0 +1,41 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CNS 11643-1992 + */ + +/* ISO-2022-CN and EUC-TW use CNS 11643-1992 planes 1 to 7. We also + * have a table for the older plane 15. We use a trick to keep the + * Unicode -> CNS 11643 table as small as possible (see cns11643_inv.h). + */ + +#include "cns11643_1.h" +#include "cns11643_2.h" +#include "cns11643_3.h" +#include "cns11643_4.h" +#include "cns11643_5.h" +#include "cns11643_6.h" +#include "cns11643_7.h" +#include "cns11643_15.h" +#include "cns11643_inv.h" + +/* Returns the plane number (1,...,7,15) in r[0], the two bytes in r[1],r[2]. */ +#define cns11643_wctomb cns11643_inv_wctomb diff --git a/graf2d/win32gdk/gdk/src/iconv/cns11643_1.h b/graf2d/win32gdk/gdk/src/iconv/cns11643_1.h new file mode 100644 index 00000000000..24abb5ccbd4 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cns11643_1.h @@ -0,0 +1,893 @@ +/* + * Copyright (C) 1999-2005 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CNS 11643-1992 plane 1 + */ + +static const unsigned short cns11643_1_2uni_page21[500] = { + /* 0x21 */ + 0x3000, 0xff0c, 0x3001, 0x3002, 0xff0e, 0x30fb, 0xff1b, 0xff1a, + 0xff1f, 0xff01, 0xfe30, 0x2026, 0x2025, 0xfe50, 0xfe51, 0xfe52, + 0x00b7, 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xfe31, 0x2014, 0xfe32, + 0x2013, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xff08, 0xff09, 0xfe35, + 0xfe36, 0xff5b, 0xff5d, 0xfe37, 0xfe38, 0x3014, 0x3015, 0xfe39, + 0xfe3a, 0x3010, 0x3011, 0xfe3b, 0xfe3c, 0x300a, 0x300b, 0xfe3d, + 0xfe3e, 0x3008, 0x3009, 0xfe3f, 0xfe40, 0x300c, 0x300d, 0xfe41, + 0xfe42, 0x300e, 0x300f, 0xfe43, 0xfe44, 0xfe59, 0xfe5a, 0xfe5b, + 0xfe5c, 0xfe5d, 0xfe5e, 0x2018, 0x2019, 0x201c, 0x201d, 0x301d, + 0x301e, 0x2032, 0x2035, 0xff03, 0xff06, 0xff0a, 0x203b, 0x00a7, + 0x3003, 0x25cb, 0x25cf, 0x25b3, 0x25b2, 0x25ce, 0x2606, 0x2605, + 0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25bd, 0x25bc, + /* 0x22 */ + 0x32a3, 0x2105, 0x203e, 0xfffd, 0xff3f, 0xfffd, 0xfe49, 0xfe4a, + 0xfe4d, 0xfe4e, 0xfe4b, 0xfe4c, 0xfe5f, 0xfe60, 0xfe61, 0xff0b, + 0xff0d, 0x00d7, 0x00f7, 0x00b1, 0x221a, 0xff1c, 0xff1e, 0xff1d, + 0x2266, 0x2267, 0x2260, 0x221e, 0x2252, 0x2261, 0xfe62, 0xfe63, + 0xfe64, 0xfe66, 0xfe65, 0x223c, 0x2229, 0x222a, 0x22a5, 0x2220, + 0x221f, 0x22bf, 0x33d2, 0x33d1, 0x222b, 0x222e, 0x2235, 0x2234, + 0x2640, 0x2642, 0x2641, 0x2609, 0x2191, 0x2193, 0x2192, 0x2190, + 0x2196, 0x2197, 0x2199, 0x2198, 0x2016, 0xff5c, 0xff0f, 0xff3c, + 0x2215, 0xfe68, 0xff04, 0xffe5, 0x3012, 0xffe0, 0xffe1, 0xff05, + 0xff20, 0x2103, 0x2109, 0xfe69, 0xfe6a, 0xfe6b, 0x33d5, 0x339c, + 0x339d, 0x339e, 0x33ce, 0x33a1, 0x338e, 0x338f, 0x33c4, 0x00b0, + 0x5159, 0x515b, 0x515e, 0x515d, 0x5161, 0x5163, + /* 0x23 */ + 0x55e7, 0x74e9, 0x7cce, 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, + 0x2586, 0x2587, 0x2588, 0x258f, 0x258e, 0x258d, 0x258c, 0x258b, + 0x258a, 0x2589, 0x253c, 0x2534, 0x252c, 0x2524, 0x251c, 0x2594, + 0x2500, 0x2502, 0x2595, 0x250c, 0x2510, 0x2514, 0x2518, 0x256d, + 0x256e, 0x2570, 0x256f, 0x2550, 0x255e, 0x256a, 0x2561, 0x25e2, + 0x25e3, 0x25e5, 0x25e4, 0x2571, 0x2572, 0x2573, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x24 */ + 0xff10, 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, + 0xff18, 0xff19, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, + 0x2166, 0x2167, 0x2168, 0x2169, 0x3021, 0x3022, 0x3023, 0x3024, + 0x3025, 0x3026, 0x3027, 0x3028, 0x3029, 0xfffd, 0x5344, 0xfffd, + 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28, + 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30, + 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38, + 0xff39, 0xff3a, 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, + 0xff47, 0xff48, 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, + 0xff4f, 0xff50, 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, + 0xff57, 0xff58, 0xff59, 0xff5a, 0x0391, 0x0392, 0x0393, 0x0394, + 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, + /* 0x25 */ + 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, + 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03b1, 0x03b2, + 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, + 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, + 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x3105, 0x3106, + 0x3107, 0x3108, 0x3109, 0x310a, 0x310b, 0x310c, 0x310d, 0x310e, + 0x310f, 0x3110, 0x3111, 0x3112, 0x3113, 0x3114, 0x3115, 0x3116, + 0x3117, 0x3118, 0x3119, 0x311a, 0x311b, 0x311c, 0x311d, 0x311e, + 0x311f, 0x3120, 0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, + 0x3127, 0x3128, 0x3129, 0x02d9, 0x02c9, 0x02ca, 0x02c7, 0x02cb, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x26 */ + 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, + 0x2468, 0x2469, 0x2474, 0x2475, 0x2476, 0x2477, 0x2478, 0x2479, + 0x247a, 0x247b, 0x247c, 0x247d, 0x2170, 0x2171, 0x2172, 0x2173, + 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, +}; +static const unsigned short cns11643_1_2uni_page42[34] = { + /* 0x42 */ + 0x2400, 0x2401, 0x2402, 0x2403, 0x2404, 0x2405, 0x2406, 0x2407, + 0x2408, 0x2409, 0x240a, 0x240b, 0x240c, 0x240d, 0x240e, 0x240f, + 0x2410, 0x2411, 0x2412, 0x2413, 0x2414, 0x2415, 0x2416, 0x2417, + 0x2418, 0x2419, 0x241a, 0x241b, 0x241c, 0x241d, 0x241e, 0x241f, + 0x2421, 0x20ac, +}; +static const unsigned short cns11643_1_2uni_page44[5401] = { + /* 0x44 */ + 0x4e00, 0x4e59, 0x4e01, 0x4e03, 0x4e43, 0x4e5d, 0x4e86, 0x4e8c, + 0x4eba, 0x513f, 0x5165, 0x516b, 0x51e0, 0x5200, 0x5201, 0x529b, + 0x5315, 0x5341, 0x535c, 0x53c8, 0x4e09, 0x4e0b, 0x4e08, 0x4e0a, + 0x4e2b, 0x4e38, 0x51e1, 0x4e45, 0x4e48, 0x4e5f, 0x4e5e, 0x4e8e, + 0x4ea1, 0x5140, 0x5203, 0x52fa, 0x5343, 0x53c9, 0x53e3, 0x571f, + 0x58eb, 0x5915, 0x5927, 0x5973, 0x5b50, 0x5b51, 0x5b53, 0x5bf8, + 0x5c0f, 0x5c22, 0x5c38, 0x5c71, 0x5ddd, 0x5de5, 0x5df1, 0x5df2, + 0x5df3, 0x5dfe, 0x5e72, 0x5efe, 0x5f0b, 0x5f13, 0x624d, 0x4e11, + 0x4e10, 0x4e0d, 0x4e2d, 0x4e30, 0x4e39, 0x4e4b, 0x5c39, 0x4e88, + 0x4e91, 0x4e95, 0x4e92, 0x4e94, 0x4ea2, 0x4ec1, 0x4ec0, 0x4ec3, + 0x4ec6, 0x4ec7, 0x4ecd, 0x4eca, 0x4ecb, 0x4ec4, 0x5143, 0x5141, + 0x5167, 0x516d, 0x516e, 0x516c, 0x5197, 0x51f6, + /* 0x45 */ + 0x5206, 0x5207, 0x5208, 0x52fb, 0x52fe, 0x52ff, 0x5316, 0x5339, + 0x5348, 0x5347, 0x5345, 0x535e, 0x5384, 0x53cb, 0x53ca, 0x53cd, + 0x58ec, 0x5929, 0x592b, 0x592a, 0x592d, 0x5b54, 0x5c11, 0x5c24, + 0x5c3a, 0x5c6f, 0x5df4, 0x5e7b, 0x5eff, 0x5f14, 0x5f15, 0x5fc3, + 0x6208, 0x6236, 0x624b, 0x624e, 0x652f, 0x6587, 0x6597, 0x65a4, + 0x65b9, 0x65e5, 0x66f0, 0x6708, 0x6728, 0x6b20, 0x6b62, 0x6b79, + 0x6bcb, 0x6bd4, 0x6bdb, 0x6c0f, 0x6c34, 0x706b, 0x722a, 0x7236, + 0x723b, 0x7247, 0x7259, 0x725b, 0x72ac, 0x738b, 0x4e19, 0x4e16, + 0x4e15, 0x4e14, 0x4e18, 0x4e3b, 0x4e4d, 0x4e4f, 0x4e4e, 0x4ee5, + 0x4ed8, 0x4ed4, 0x4ed5, 0x4ed6, 0x4ed7, 0x4ee3, 0x4ee4, 0x4ed9, + 0x4ede, 0x5145, 0x5144, 0x5189, 0x518a, 0x51ac, 0x51f9, 0x51fa, + 0x51f8, 0x520a, 0x52a0, 0x529f, 0x5305, 0x5306, + /* 0x46 */ + 0x5317, 0x531d, 0x4edf, 0x534a, 0x5349, 0x5361, 0x5360, 0x536f, + 0x536e, 0x53bb, 0x53ef, 0x53e4, 0x53f3, 0x53ec, 0x53ee, 0x53e9, + 0x53e8, 0x53fc, 0x53f8, 0x53f5, 0x53eb, 0x53e6, 0x53ea, 0x53f2, + 0x53f1, 0x53f0, 0x53e5, 0x53ed, 0x53fb, 0x56db, 0x56da, 0x5916, + 0x592e, 0x5931, 0x5974, 0x5976, 0x5b55, 0x5b83, 0x5c3c, 0x5de8, + 0x5de7, 0x5de6, 0x5e02, 0x5e03, 0x5e73, 0x5e7c, 0x5f01, 0x5f18, + 0x5f17, 0x5fc5, 0x620a, 0x6253, 0x6254, 0x6252, 0x6251, 0x65a5, + 0x65e6, 0x672e, 0x672c, 0x672a, 0x672b, 0x672d, 0x6b63, 0x6bcd, + 0x6c11, 0x6c10, 0x6c38, 0x6c41, 0x6c40, 0x6c3e, 0x72af, 0x7384, + 0x7389, 0x74dc, 0x74e6, 0x7518, 0x751f, 0x7528, 0x7529, 0x7530, + 0x7531, 0x7532, 0x7533, 0x758b, 0x767d, 0x76ae, 0x76bf, 0x76ee, + 0x77db, 0x77e2, 0x77f3, 0x793a, 0x79be, 0x7a74, + /* 0x47 */ + 0x7acb, 0x4e1e, 0x4e1f, 0x4e52, 0x4e53, 0x4e69, 0x4e99, 0x4ea4, + 0x4ea6, 0x4ea5, 0x4eff, 0x4f09, 0x4f19, 0x4f0a, 0x4f15, 0x4f0d, + 0x4f10, 0x4f11, 0x4f0f, 0x4ef2, 0x4ef6, 0x4efb, 0x4ef0, 0x4ef3, + 0x4efd, 0x4f01, 0x4f0b, 0x5149, 0x5147, 0x5146, 0x5148, 0x5168, + 0x5171, 0x518d, 0x51b0, 0x5217, 0x5211, 0x5212, 0x520e, 0x5216, + 0x52a3, 0x5308, 0x5321, 0x5320, 0x5370, 0x5371, 0x5409, 0x540f, + 0x540c, 0x540a, 0x5410, 0x5401, 0x540b, 0x5404, 0x5411, 0x540d, + 0x5408, 0x5403, 0x540e, 0x5406, 0x5412, 0x56e0, 0x56de, 0x56dd, + 0x5733, 0x5730, 0x5728, 0x572d, 0x572c, 0x572f, 0x5729, 0x5919, + 0x591a, 0x5937, 0x5938, 0x5984, 0x5978, 0x5983, 0x597d, 0x5979, + 0x5982, 0x5981, 0x5b57, 0x5b58, 0x5b87, 0x5b88, 0x5b85, 0x5b89, + 0x5bfa, 0x5c16, 0x5c79, 0x5dde, 0x5e06, 0x5e76, + /* 0x48 */ + 0x5e74, 0x5f0f, 0x5f1b, 0x5fd9, 0x5fd6, 0x620e, 0x620c, 0x620d, + 0x6210, 0x6263, 0x625b, 0x6258, 0x6536, 0x65e9, 0x65e8, 0x65ec, + 0x65ed, 0x66f2, 0x66f3, 0x6709, 0x673d, 0x6734, 0x6731, 0x6735, + 0x6b21, 0x6b64, 0x6b7b, 0x6c16, 0x6c5d, 0x6c57, 0x6c59, 0x6c5f, + 0x6c60, 0x6c50, 0x6c55, 0x6c61, 0x6c5b, 0x6c4d, 0x6c4e, 0x7070, + 0x725f, 0x725d, 0x767e, 0x7af9, 0x7c73, 0x7cf8, 0x7f36, 0x7f8a, + 0x7fbd, 0x8001, 0x8003, 0x800c, 0x8012, 0x8033, 0x807f, 0x8089, + 0x808b, 0x808c, 0x81e3, 0x81ea, 0x81f3, 0x81fc, 0x820c, 0x821b, + 0x821f, 0x826e, 0x8272, 0x827e, 0x866b, 0x8840, 0x884c, 0x8863, + 0x897f, 0x9621, 0x4e32, 0x4ea8, 0x4f4d, 0x4f4f, 0x4f47, 0x4f57, + 0x4f5e, 0x4f34, 0x4f5b, 0x4f55, 0x4f30, 0x4f50, 0x4f51, 0x4f3d, + 0x4f3a, 0x4f38, 0x4f43, 0x4f54, 0x4f3c, 0x4f46, + /* 0x49 */ + 0x4f63, 0x4f5c, 0x4f60, 0x4f2f, 0x4f4e, 0x4f36, 0x4f59, 0x4f5d, + 0x4f48, 0x4f5a, 0x514c, 0x514b, 0x514d, 0x5175, 0x51b6, 0x51b7, + 0x5225, 0x5224, 0x5229, 0x522a, 0x5228, 0x52ab, 0x52a9, 0x52aa, + 0x52ac, 0x5323, 0x5373, 0x5375, 0x541d, 0x542d, 0x541e, 0x543e, + 0x5426, 0x544e, 0x5427, 0x5446, 0x5443, 0x5433, 0x5448, 0x5442, + 0x541b, 0x5429, 0x544a, 0x5439, 0x543b, 0x5438, 0x542e, 0x5435, + 0x5436, 0x5420, 0x543c, 0x5440, 0x5431, 0x542b, 0x541f, 0x542c, + 0x56ea, 0x56f0, 0x56e4, 0x56eb, 0x574a, 0x5751, 0x5740, 0x574d, + 0x5747, 0x574e, 0x573e, 0x5750, 0x574f, 0x573b, 0x58ef, 0x593e, + 0x599d, 0x5992, 0x59a8, 0x599e, 0x59a3, 0x5999, 0x5996, 0x598d, + 0x59a4, 0x5993, 0x598a, 0x59a5, 0x5b5d, 0x5b5c, 0x5b5a, 0x5b5b, + 0x5b8c, 0x5b8b, 0x5b8f, 0x5c2c, 0x5c40, 0x5c41, + /* 0x4a */ + 0x5c3f, 0x5c3e, 0x5c90, 0x5c91, 0x5c94, 0x5c8c, 0x5deb, 0x5e0c, + 0x5e8f, 0x5e87, 0x5e8a, 0x5ef7, 0x5f04, 0x5f1f, 0x5f64, 0x5f62, + 0x5f77, 0x5f79, 0x5fd8, 0x5fcc, 0x5fd7, 0x5fcd, 0x5ff1, 0x5feb, + 0x5ff8, 0x5fea, 0x6212, 0x6211, 0x6284, 0x6297, 0x6296, 0x6280, + 0x6276, 0x6289, 0x626d, 0x628a, 0x627c, 0x627e, 0x6279, 0x6273, + 0x6292, 0x626f, 0x6298, 0x626e, 0x6295, 0x6293, 0x6291, 0x6286, + 0x6539, 0x653b, 0x6538, 0x65f1, 0x66f4, 0x675f, 0x674e, 0x674f, + 0x6750, 0x6751, 0x675c, 0x6756, 0x675e, 0x6749, 0x6746, 0x6760, + 0x6753, 0x6757, 0x6b65, 0x6bcf, 0x6c42, 0x6c5e, 0x6c99, 0x6c81, + 0x6c88, 0x6c89, 0x6c85, 0x6c9b, 0x6c6a, 0x6c7a, 0x6c90, 0x6c70, + 0x6c8c, 0x6c68, 0x6c96, 0x6c92, 0x6c7d, 0x6c83, 0x6c72, 0x6c7e, + 0x6c74, 0x6c86, 0x6c76, 0x6c8d, 0x6c94, 0x6c98, + /* 0x4b */ + 0x6c82, 0x7076, 0x707c, 0x707d, 0x7078, 0x7262, 0x7261, 0x7260, + 0x72c4, 0x72c2, 0x7396, 0x752c, 0x752b, 0x7537, 0x7538, 0x7682, + 0x76ef, 0x77e3, 0x79c1, 0x79c0, 0x79bf, 0x7a76, 0x7cfb, 0x7f55, + 0x8096, 0x8093, 0x809d, 0x8098, 0x809b, 0x809a, 0x80b2, 0x826f, + 0x8292, 0x828b, 0x828d, 0x898b, 0x89d2, 0x8a00, 0x8c37, 0x8c46, + 0x8c55, 0x8c9d, 0x8d64, 0x8d70, 0x8db3, 0x8eab, 0x8eca, 0x8f9b, + 0x8fb0, 0x8fc2, 0x8fc6, 0x8fc5, 0x8fc4, 0x5de1, 0x9091, 0x90a2, + 0x90aa, 0x90a6, 0x90a3, 0x9149, 0x91c6, 0x91cc, 0x9632, 0x962e, + 0x9631, 0x962a, 0x962c, 0x4e26, 0x4e56, 0x4e73, 0x4e8b, 0x4e9b, + 0x4e9e, 0x4eab, 0x4eac, 0x4f6f, 0x4f9d, 0x4f8d, 0x4f73, 0x4f7f, + 0x4f6c, 0x4f9b, 0x4f8b, 0x4f86, 0x4f83, 0x4f70, 0x4f75, 0x4f88, + 0x4f69, 0x4f7b, 0x4f96, 0x4f7e, 0x4f8f, 0x4f91, + /* 0x4c */ + 0x4f7a, 0x5154, 0x5152, 0x5155, 0x5169, 0x5177, 0x5176, 0x5178, + 0x51bd, 0x51fd, 0x523b, 0x5238, 0x5237, 0x523a, 0x5230, 0x522e, + 0x5236, 0x5241, 0x52be, 0x52bb, 0x5352, 0x5354, 0x5353, 0x5351, + 0x5366, 0x5377, 0x5378, 0x5379, 0x53d6, 0x53d4, 0x53d7, 0x5473, + 0x5475, 0x5496, 0x5478, 0x5495, 0x5480, 0x547b, 0x5477, 0x5484, + 0x5492, 0x5486, 0x547c, 0x5490, 0x5471, 0x5476, 0x548c, 0x549a, + 0x5462, 0x5468, 0x548b, 0x547d, 0x548e, 0x56fa, 0x5783, 0x5777, + 0x576a, 0x5769, 0x5761, 0x5766, 0x5764, 0x577c, 0x591c, 0x5949, + 0x5947, 0x5948, 0x5944, 0x5954, 0x59be, 0x59bb, 0x59d4, 0x59b9, + 0x59ae, 0x59d1, 0x59c6, 0x59d0, 0x59cd, 0x59cb, 0x59d3, 0x59ca, + 0x59af, 0x59b3, 0x59d2, 0x59c5, 0x5b5f, 0x5b64, 0x5b63, 0x5b97, + 0x5b9a, 0x5b98, 0x5b9c, 0x5b99, 0x5b9b, 0x5c1a, + /* 0x4d */ + 0x5c48, 0x5c45, 0x5c46, 0x5cb7, 0x5ca1, 0x5cb8, 0x5ca9, 0x5cab, + 0x5cb1, 0x5cb3, 0x5e18, 0x5e1a, 0x5e16, 0x5e15, 0x5e1b, 0x5e11, + 0x5e78, 0x5e9a, 0x5e97, 0x5e9c, 0x5e95, 0x5e96, 0x5ef6, 0x5f26, + 0x5f27, 0x5f29, 0x5f80, 0x5f81, 0x5f7f, 0x5f7c, 0x5fdd, 0x5fe0, + 0x5ffd, 0x5ff5, 0x5fff, 0x600f, 0x6014, 0x602f, 0x6035, 0x6016, + 0x602a, 0x6015, 0x6021, 0x6027, 0x6029, 0x602b, 0x601b, 0x6216, + 0x6215, 0x623f, 0x623e, 0x6240, 0x627f, 0x62c9, 0x62cc, 0x62c4, + 0x62bf, 0x62c2, 0x62b9, 0x62d2, 0x62db, 0x62ab, 0x62d3, 0x62d4, + 0x62cb, 0x62c8, 0x62a8, 0x62bd, 0x62bc, 0x62d0, 0x62d9, 0x62c7, + 0x62cd, 0x62b5, 0x62da, 0x62b1, 0x62d8, 0x62d6, 0x62d7, 0x62c6, + 0x62ac, 0x62ce, 0x653e, 0x65a7, 0x65bc, 0x65fa, 0x6614, 0x6613, + 0x660c, 0x6606, 0x6602, 0x660e, 0x6600, 0x660f, + /* 0x4e */ + 0x6615, 0x660a, 0x6607, 0x670d, 0x670b, 0x676d, 0x678b, 0x6795, + 0x6771, 0x679c, 0x6773, 0x6777, 0x6787, 0x679d, 0x6797, 0x676f, + 0x6770, 0x677f, 0x6789, 0x677e, 0x6790, 0x6775, 0x679a, 0x6793, + 0x677c, 0x676a, 0x6772, 0x6b23, 0x6b66, 0x6b67, 0x6b7f, 0x6c13, + 0x6c1b, 0x6ce3, 0x6ce8, 0x6cf3, 0x6cb1, 0x6ccc, 0x6ce5, 0x6cb3, + 0x6cbd, 0x6cbe, 0x6cbc, 0x6ce2, 0x6cab, 0x6cd5, 0x6cd3, 0x6cb8, + 0x6cc4, 0x6cb9, 0x6cc1, 0x6cae, 0x6cd7, 0x6cc5, 0x6cf1, 0x6cbf, + 0x6cbb, 0x6ce1, 0x6cdb, 0x6cca, 0x6cac, 0x6cef, 0x6cdc, 0x6cd6, + 0x6ce0, 0x7095, 0x708e, 0x7092, 0x708a, 0x7099, 0x722c, 0x722d, + 0x7238, 0x7248, 0x7267, 0x7269, 0x72c0, 0x72ce, 0x72d9, 0x72d7, + 0x72d0, 0x73a9, 0x73a8, 0x739f, 0x73ab, 0x73a5, 0x753d, 0x759d, + 0x7599, 0x759a, 0x7684, 0x76c2, 0x76f2, 0x76f4, + /* 0x4f */ + 0x77e5, 0x77fd, 0x793e, 0x7940, 0x7941, 0x79c9, 0x79c8, 0x7a7a, + 0x7a79, 0x7afa, 0x7cfe, 0x7f54, 0x7f8c, 0x7f8b, 0x8005, 0x80ba, + 0x80a5, 0x80a2, 0x80b1, 0x80a1, 0x80ab, 0x80a9, 0x80b4, 0x80aa, + 0x80af, 0x81e5, 0x81fe, 0x820d, 0x82b3, 0x829d, 0x8299, 0x82ad, + 0x82bd, 0x829f, 0x82b9, 0x82b1, 0x82ac, 0x82a5, 0x82af, 0x82b8, + 0x82a3, 0x82b0, 0x82be, 0x82b7, 0x864e, 0x8671, 0x521d, 0x8868, + 0x8ecb, 0x8fce, 0x8fd4, 0x8fd1, 0x90b5, 0x90b8, 0x90b1, 0x90b6, + 0x91c7, 0x91d1, 0x9577, 0x9580, 0x961c, 0x9640, 0x963f, 0x963b, + 0x9644, 0x9642, 0x96b9, 0x96e8, 0x9752, 0x975e, 0x4e9f, 0x4ead, + 0x4eae, 0x4fe1, 0x4fb5, 0x4faf, 0x4fbf, 0x4fe0, 0x4fd1, 0x4fcf, + 0x4fdd, 0x4fc3, 0x4fb6, 0x4fd8, 0x4fdf, 0x4fca, 0x4fd7, 0x4fae, + 0x4fd0, 0x4fc4, 0x4fc2, 0x4fda, 0x4fce, 0x4fde, + /* 0x50 */ + 0x4fb7, 0x5157, 0x5192, 0x5191, 0x51a0, 0x524e, 0x5243, 0x524a, + 0x524d, 0x524c, 0x524b, 0x5247, 0x52c7, 0x52c9, 0x52c3, 0x52c1, + 0x530d, 0x5357, 0x537b, 0x539a, 0x53db, 0x54ac, 0x54c0, 0x54a8, + 0x54ce, 0x54c9, 0x54b8, 0x54a6, 0x54b3, 0x54c7, 0x54c2, 0x54bd, + 0x54aa, 0x54c1, 0x54c4, 0x54c8, 0x54af, 0x54ab, 0x54b1, 0x54bb, + 0x54a9, 0x54a7, 0x54bf, 0x56ff, 0x5782, 0x578b, 0x57a0, 0x57a3, + 0x57a2, 0x57ce, 0x57ae, 0x5793, 0x5955, 0x5951, 0x594f, 0x594e, + 0x5950, 0x59dc, 0x59d8, 0x59ff, 0x59e3, 0x59e8, 0x5a03, 0x59e5, + 0x59ea, 0x59da, 0x59e6, 0x5a01, 0x59fb, 0x5b69, 0x5ba3, 0x5ba6, + 0x5ba4, 0x5ba2, 0x5ba5, 0x5c01, 0x5c4e, 0x5c4f, 0x5c4d, 0x5c4b, + 0x5cd9, 0x5cd2, 0x5df7, 0x5e1d, 0x5e25, 0x5e1f, 0x5e7d, 0x5ea0, + 0x5ea6, 0x5efa, 0x5f08, 0x5f2d, 0x5f65, 0x5f88, + /* 0x51 */ + 0x5f85, 0x5f8a, 0x5f8b, 0x5f87, 0x5f8c, 0x5f89, 0x6012, 0x601d, + 0x6020, 0x6025, 0x600e, 0x6028, 0x604d, 0x6070, 0x6068, 0x6062, + 0x6046, 0x6043, 0x606c, 0x606b, 0x606a, 0x6064, 0x6241, 0x62dc, + 0x6316, 0x6309, 0x62fc, 0x62ed, 0x6301, 0x62ee, 0x62fd, 0x6307, + 0x62f1, 0x62f7, 0x62ef, 0x62ec, 0x62fe, 0x62f4, 0x6311, 0x6302, + 0x653f, 0x6545, 0x65ab, 0x65bd, 0x65e2, 0x6625, 0x662d, 0x6620, + 0x6627, 0x662f, 0x661f, 0x6628, 0x6631, 0x6624, 0x66f7, 0x67ff, + 0x67d3, 0x67f1, 0x67d4, 0x67d0, 0x67ec, 0x67b6, 0x67af, 0x67f5, + 0x67e9, 0x67ef, 0x67c4, 0x67d1, 0x67b4, 0x67da, 0x67e5, 0x67b8, + 0x67cf, 0x67de, 0x67f3, 0x67b0, 0x67d9, 0x67e2, 0x67dd, 0x67d2, + 0x6b6a, 0x6b83, 0x6b86, 0x6bb5, 0x6bd2, 0x6bd7, 0x6c1f, 0x6cc9, + 0x6d0b, 0x6d32, 0x6d2a, 0x6d41, 0x6d25, 0x6d0c, + /* 0x52 */ + 0x6d31, 0x6d1e, 0x6d17, 0x6d3b, 0x6d3d, 0x6d3e, 0x6d36, 0x6d1b, + 0x6cf5, 0x6d39, 0x6d27, 0x6d38, 0x6d29, 0x6d2e, 0x6d35, 0x6d0e, + 0x6d2b, 0x70ab, 0x70ba, 0x70b3, 0x70ac, 0x70af, 0x70ad, 0x70b8, + 0x70ae, 0x70a4, 0x7230, 0x7272, 0x726f, 0x7274, 0x72e9, 0x72e0, + 0x72e1, 0x73b7, 0x73ca, 0x73bb, 0x73b2, 0x73cd, 0x73c0, 0x73b3, + 0x751a, 0x752d, 0x754f, 0x754c, 0x754e, 0x754b, 0x75ab, 0x75a4, + 0x75a5, 0x75a2, 0x75a3, 0x7678, 0x7686, 0x7687, 0x7688, 0x76c8, + 0x76c6, 0x76c3, 0x76c5, 0x7701, 0x76f9, 0x76f8, 0x7709, 0x770b, + 0x76fe, 0x76fc, 0x7707, 0x77dc, 0x7802, 0x7814, 0x780c, 0x780d, + 0x7946, 0x7949, 0x7948, 0x7947, 0x79b9, 0x79ba, 0x79d1, 0x79d2, + 0x79cb, 0x7a7f, 0x7a81, 0x7aff, 0x7afd, 0x7c7d, 0x7d02, 0x7d05, + 0x7d00, 0x7d09, 0x7d07, 0x7d04, 0x7d06, 0x7f38, + /* 0x53 */ + 0x7f8e, 0x7fbf, 0x8010, 0x800d, 0x8011, 0x8036, 0x80d6, 0x80e5, + 0x80da, 0x80c3, 0x80c4, 0x80cc, 0x80e1, 0x80db, 0x80ce, 0x80de, + 0x80e4, 0x80dd, 0x81f4, 0x8222, 0x82e7, 0x8303, 0x8305, 0x82e3, + 0x82db, 0x82e6, 0x8304, 0x82e5, 0x8302, 0x8309, 0x82d2, 0x82d7, + 0x82f1, 0x8301, 0x82dc, 0x82d4, 0x82d1, 0x82de, 0x82d3, 0x82df, + 0x82ef, 0x8306, 0x8650, 0x8679, 0x867b, 0x867a, 0x884d, 0x886b, + 0x8981, 0x89d4, 0x8a08, 0x8a02, 0x8a03, 0x8c9e, 0x8ca0, 0x8d74, + 0x8d73, 0x8db4, 0x8ecd, 0x8ecc, 0x8ff0, 0x8fe6, 0x8fe2, 0x8fea, + 0x8fe5, 0x8fed, 0x8feb, 0x8fe4, 0x8fe8, 0x90ca, 0x90ce, 0x90c1, + 0x90c3, 0x914b, 0x914a, 0x91cd, 0x9582, 0x9650, 0x964b, 0x964c, + 0x964d, 0x9762, 0x9769, 0x97cb, 0x97ed, 0x97f3, 0x9801, 0x98a8, + 0x98db, 0x98df, 0x9996, 0x9999, 0x4e58, 0x4eb3, + /* 0x54 */ + 0x500c, 0x500d, 0x5023, 0x4fef, 0x5026, 0x5025, 0x4ff8, 0x5029, + 0x5016, 0x5006, 0x503c, 0x501f, 0x501a, 0x5012, 0x5011, 0x4ffa, + 0x5000, 0x5014, 0x5028, 0x4ff1, 0x5021, 0x500b, 0x5019, 0x5018, + 0x4ff3, 0x4fee, 0x502d, 0x502a, 0x4ffe, 0x502b, 0x5009, 0x517c, + 0x51a4, 0x51a5, 0x51a2, 0x51cd, 0x51cc, 0x51c6, 0x51cb, 0x5256, + 0x525c, 0x5254, 0x525b, 0x525d, 0x532a, 0x537f, 0x539f, 0x539d, + 0x53df, 0x54e8, 0x5510, 0x5501, 0x5537, 0x54fc, 0x54e5, 0x54f2, + 0x5506, 0x54fa, 0x5514, 0x54e9, 0x54ed, 0x54e1, 0x5509, 0x54ee, + 0x54ea, 0x54e6, 0x5527, 0x5507, 0x54fd, 0x550f, 0x5703, 0x5704, + 0x57c2, 0x57d4, 0x57cb, 0x57c3, 0x5809, 0x590f, 0x5957, 0x5958, + 0x595a, 0x5a11, 0x5a18, 0x5a1c, 0x5a1f, 0x5a1b, 0x5a13, 0x59ec, + 0x5a20, 0x5a23, 0x5a29, 0x5a25, 0x5a0c, 0x5a09, + /* 0x55 */ + 0x5b6b, 0x5c58, 0x5bb0, 0x5bb3, 0x5bb6, 0x5bb4, 0x5bae, 0x5bb5, + 0x5bb9, 0x5bb8, 0x5c04, 0x5c51, 0x5c55, 0x5c50, 0x5ced, 0x5cfd, + 0x5cfb, 0x5cea, 0x5ce8, 0x5cf0, 0x5cf6, 0x5d01, 0x5cf4, 0x5dee, + 0x5e2d, 0x5e2b, 0x5eab, 0x5ead, 0x5ea7, 0x5f31, 0x5f92, 0x5f91, + 0x5f90, 0x6059, 0x6063, 0x6065, 0x6050, 0x6055, 0x606d, 0x6069, + 0x606f, 0x6084, 0x609f, 0x609a, 0x608d, 0x6094, 0x608c, 0x6085, + 0x6096, 0x6247, 0x62f3, 0x6308, 0x62ff, 0x634e, 0x633e, 0x632f, + 0x6355, 0x6342, 0x6346, 0x634f, 0x6349, 0x633a, 0x6350, 0x633d, + 0x632a, 0x632b, 0x6328, 0x634d, 0x634c, 0x6548, 0x6549, 0x6599, + 0x65c1, 0x65c5, 0x6642, 0x6649, 0x664f, 0x6643, 0x6652, 0x664c, + 0x6645, 0x6641, 0x66f8, 0x6714, 0x6715, 0x6717, 0x6821, 0x6838, + 0x6848, 0x6846, 0x6853, 0x6839, 0x6842, 0x6854, + /* 0x56 */ + 0x6829, 0x68b3, 0x6817, 0x684c, 0x6851, 0x683d, 0x67f4, 0x6850, + 0x6840, 0x683c, 0x6843, 0x682a, 0x6845, 0x6813, 0x6818, 0x6841, + 0x6b8a, 0x6b89, 0x6bb7, 0x6c23, 0x6c27, 0x6c28, 0x6c26, 0x6c24, + 0x6cf0, 0x6d6a, 0x6d95, 0x6d88, 0x6d87, 0x6d66, 0x6d78, 0x6d77, + 0x6d59, 0x6d93, 0x6d6c, 0x6d89, 0x6d6e, 0x6d5a, 0x6d74, 0x6d69, + 0x6d8c, 0x6d8a, 0x6d79, 0x6d85, 0x6d65, 0x6d94, 0x70ca, 0x70d8, + 0x70e4, 0x70d9, 0x70c8, 0x70cf, 0x7239, 0x7279, 0x72fc, 0x72f9, + 0x72fd, 0x72f8, 0x72f7, 0x7386, 0x73ed, 0x7409, 0x73ee, 0x73e0, + 0x73ea, 0x73de, 0x7554, 0x755d, 0x755c, 0x755a, 0x7559, 0x75be, + 0x75c5, 0x75c7, 0x75b2, 0x75b3, 0x75bd, 0x75bc, 0x75b9, 0x75c2, + 0x75b8, 0x768b, 0x76b0, 0x76ca, 0x76cd, 0x76ce, 0x7729, 0x771f, + 0x7720, 0x7728, 0x77e9, 0x7830, 0x7827, 0x7838, + /* 0x57 */ + 0x781d, 0x7834, 0x7837, 0x7825, 0x782d, 0x7820, 0x781f, 0x7832, + 0x7955, 0x7950, 0x7960, 0x795f, 0x7956, 0x795e, 0x795d, 0x7957, + 0x795a, 0x79e4, 0x79e3, 0x79e7, 0x79df, 0x79e6, 0x79e9, 0x79d8, + 0x7a84, 0x7a88, 0x7ad9, 0x7b06, 0x7b11, 0x7c89, 0x7d21, 0x7d17, + 0x7d0b, 0x7d0a, 0x7d20, 0x7d22, 0x7d14, 0x7d10, 0x7d15, 0x7d1a, + 0x7d1c, 0x7d0d, 0x7d19, 0x7d1b, 0x7f3a, 0x7f5f, 0x7f94, 0x7fc5, + 0x7fc1, 0x8006, 0x8004, 0x8018, 0x8015, 0x8019, 0x8017, 0x803d, + 0x803f, 0x80f1, 0x8102, 0x80f0, 0x8105, 0x80ed, 0x80f4, 0x8106, + 0x80f8, 0x80f3, 0x8108, 0x80fd, 0x810a, 0x80fc, 0x80ef, 0x81ed, + 0x81ec, 0x8200, 0x8210, 0x822a, 0x822b, 0x8228, 0x822c, 0x82bb, + 0x832b, 0x8352, 0x8354, 0x834a, 0x8338, 0x8350, 0x8349, 0x8335, + 0x8334, 0x834f, 0x8332, 0x8339, 0x8336, 0x8317, + /* 0x58 */ + 0x8340, 0x8331, 0x8328, 0x8343, 0x8654, 0x868a, 0x86aa, 0x8693, + 0x86a4, 0x86a9, 0x868c, 0x86a3, 0x869c, 0x8870, 0x8877, 0x8881, + 0x8882, 0x887d, 0x8879, 0x8a18, 0x8a10, 0x8a0e, 0x8a0c, 0x8a15, + 0x8a0a, 0x8a17, 0x8a13, 0x8a16, 0x8a0f, 0x8a11, 0x8c48, 0x8c7a, + 0x8c79, 0x8ca1, 0x8ca2, 0x8d77, 0x8eac, 0x8ed2, 0x8ed4, 0x8ecf, + 0x8fb1, 0x9001, 0x9006, 0x8ff7, 0x9000, 0x8ffa, 0x8ff4, 0x9003, + 0x8ffd, 0x9005, 0x8ff8, 0x9095, 0x90e1, 0x90dd, 0x90e2, 0x9152, + 0x914d, 0x914c, 0x91d8, 0x91dd, 0x91d7, 0x91dc, 0x91d9, 0x9583, + 0x9662, 0x9663, 0x9661, 0x965b, 0x965d, 0x9664, 0x9658, 0x965e, + 0x96bb, 0x98e2, 0x99ac, 0x9aa8, 0x9ad8, 0x9b25, 0x9b32, 0x9b3c, + 0x4e7e, 0x507a, 0x507d, 0x505c, 0x5047, 0x5043, 0x504c, 0x505a, + 0x5049, 0x5065, 0x5076, 0x504e, 0x5055, 0x5075, + /* 0x59 */ + 0x5074, 0x5077, 0x504f, 0x500f, 0x506f, 0x506d, 0x515c, 0x5195, + 0x51f0, 0x526a, 0x526f, 0x52d2, 0x52d9, 0x52d8, 0x52d5, 0x5310, + 0x530f, 0x5319, 0x533f, 0x5340, 0x533e, 0x53c3, 0x66fc, 0x5546, + 0x556a, 0x5566, 0x5544, 0x555e, 0x5561, 0x5543, 0x554a, 0x5531, + 0x5556, 0x554f, 0x5555, 0x552f, 0x5564, 0x5538, 0x552e, 0x555c, + 0x552c, 0x5563, 0x5533, 0x5541, 0x5557, 0x5708, 0x570b, 0x5709, + 0x57df, 0x5805, 0x580a, 0x5806, 0x57e0, 0x57e4, 0x57fa, 0x5802, + 0x5835, 0x57f7, 0x57f9, 0x5920, 0x5962, 0x5a36, 0x5a41, 0x5a49, + 0x5a66, 0x5a6a, 0x5a40, 0x5a3c, 0x5a62, 0x5a5a, 0x5a46, 0x5a4a, + 0x5b70, 0x5bc7, 0x5bc5, 0x5bc4, 0x5bc2, 0x5bbf, 0x5bc6, 0x5c09, + 0x5c08, 0x5c07, 0x5c60, 0x5c5c, 0x5c5d, 0x5d07, 0x5d06, 0x5d0e, + 0x5d1b, 0x5d16, 0x5d22, 0x5d11, 0x5d29, 0x5d14, + /* 0x5a */ + 0x5d19, 0x5d24, 0x5d27, 0x5d17, 0x5de2, 0x5e38, 0x5e36, 0x5e33, + 0x5e37, 0x5eb7, 0x5eb8, 0x5eb6, 0x5eb5, 0x5ebe, 0x5f35, 0x5f37, + 0x5f57, 0x5f6c, 0x5f69, 0x5f6b, 0x5f97, 0x5f99, 0x5f9e, 0x5f98, + 0x5fa1, 0x5fa0, 0x5f9c, 0x607f, 0x60a3, 0x6089, 0x60a0, 0x60a8, + 0x60cb, 0x60b4, 0x60e6, 0x60bd, 0x60c5, 0x60bb, 0x60b5, 0x60dc, + 0x60bc, 0x60d8, 0x60d5, 0x60c6, 0x60df, 0x60b8, 0x60da, 0x60c7, + 0x621a, 0x621b, 0x6248, 0x63a0, 0x63a7, 0x6372, 0x6396, 0x63a2, + 0x63a5, 0x6377, 0x6367, 0x6398, 0x63aa, 0x6371, 0x63a9, 0x6389, + 0x6383, 0x639b, 0x636b, 0x63a8, 0x6384, 0x6388, 0x6399, 0x63a1, + 0x63ac, 0x6392, 0x638f, 0x6380, 0x637b, 0x6369, 0x6368, 0x637a, + 0x655d, 0x6556, 0x6551, 0x6559, 0x6557, 0x555f, 0x654f, 0x6558, + 0x6555, 0x6554, 0x659c, 0x659b, 0x65ac, 0x65cf, + /* 0x5b */ + 0x65cb, 0x65cc, 0x65ce, 0x665d, 0x665a, 0x6664, 0x6668, 0x6666, + 0x665e, 0x66f9, 0x52d7, 0x671b, 0x6881, 0x68af, 0x68a2, 0x6893, + 0x68b5, 0x687f, 0x6876, 0x68b1, 0x68a7, 0x6897, 0x68b0, 0x6883, + 0x68c4, 0x68ad, 0x6886, 0x6885, 0x6894, 0x689d, 0x68a8, 0x689f, + 0x68a1, 0x6882, 0x6b32, 0x6bba, 0x6beb, 0x6bec, 0x6c2b, 0x6d8e, + 0x6dbc, 0x6df3, 0x6dd9, 0x6db2, 0x6de1, 0x6dcc, 0x6de4, 0x6dfb, + 0x6dfa, 0x6e05, 0x6dc7, 0x6dcb, 0x6daf, 0x6dd1, 0x6dae, 0x6dde, + 0x6df9, 0x6db8, 0x6df7, 0x6df5, 0x6dc5, 0x6dd2, 0x6e1a, 0x6db5, + 0x6dda, 0x6deb, 0x6dd8, 0x6dea, 0x6df1, 0x6dee, 0x6de8, 0x6dc6, + 0x6dc4, 0x6daa, 0x6dec, 0x6dbf, 0x6de6, 0x70f9, 0x7109, 0x710a, + 0x70fd, 0x70ef, 0x723d, 0x727d, 0x7281, 0x731c, 0x731b, 0x7316, + 0x7313, 0x7319, 0x7387, 0x7405, 0x740a, 0x7403, + /* 0x5c */ + 0x7406, 0x73fe, 0x740d, 0x74e0, 0x74f6, 0x74f7, 0x751c, 0x7522, + 0x7565, 0x7566, 0x7562, 0x7570, 0x758f, 0x75d4, 0x75d5, 0x75b5, + 0x75ca, 0x75cd, 0x768e, 0x76d4, 0x76d2, 0x76db, 0x7737, 0x773e, + 0x773c, 0x7736, 0x7738, 0x773a, 0x786b, 0x7843, 0x784e, 0x7965, + 0x7968, 0x796d, 0x79fb, 0x7a92, 0x7a95, 0x7b20, 0x7b28, 0x7b1b, + 0x7b2c, 0x7b26, 0x7b19, 0x7b1e, 0x7b2e, 0x7c92, 0x7c97, 0x7c95, + 0x7d46, 0x7d43, 0x7d71, 0x7d2e, 0x7d39, 0x7d3c, 0x7d40, 0x7d30, + 0x7d33, 0x7d44, 0x7d2f, 0x7d42, 0x7d32, 0x7d31, 0x7f3d, 0x7f9e, + 0x7f9a, 0x7fcc, 0x7fce, 0x7fd2, 0x801c, 0x804a, 0x8046, 0x812f, + 0x8116, 0x8123, 0x812b, 0x8129, 0x8130, 0x8124, 0x8202, 0x8235, + 0x8237, 0x8236, 0x8239, 0x838e, 0x839e, 0x8398, 0x8378, 0x83a2, + 0x8396, 0x83bd, 0x83ab, 0x8392, 0x838a, 0x8393, + /* 0x5d */ + 0x8389, 0x83a0, 0x8377, 0x837b, 0x837c, 0x8386, 0x83a7, 0x8655, + 0x5f6a, 0x86c7, 0x86c0, 0x86b6, 0x86c4, 0x86b5, 0x86c6, 0x86cb, + 0x86b1, 0x86af, 0x86c9, 0x8853, 0x889e, 0x8888, 0x88ab, 0x8892, + 0x8896, 0x888d, 0x888b, 0x8993, 0x898f, 0x8a2a, 0x8a1d, 0x8a23, + 0x8a25, 0x8a31, 0x8a2d, 0x8a1f, 0x8a1b, 0x8a22, 0x8c49, 0x8c5a, + 0x8ca9, 0x8cac, 0x8cab, 0x8ca8, 0x8caa, 0x8ca7, 0x8d67, 0x8d66, + 0x8dbe, 0x8dba, 0x8edb, 0x8edf, 0x9019, 0x900d, 0x901a, 0x9017, + 0x9023, 0x901f, 0x901d, 0x9010, 0x9015, 0x901e, 0x9020, 0x900f, + 0x9022, 0x9016, 0x901b, 0x9014, 0x90e8, 0x90ed, 0x90fd, 0x9157, + 0x91ce, 0x91f5, 0x91e6, 0x91e3, 0x91e7, 0x91ed, 0x91e9, 0x9589, + 0x966a, 0x9675, 0x9673, 0x9678, 0x9670, 0x9674, 0x9676, 0x9677, + 0x966c, 0x96c0, 0x96ea, 0x96e9, 0x7ae0, 0x7adf, + /* 0x5e */ + 0x9802, 0x9803, 0x9b5a, 0x9ce5, 0x9e75, 0x9e7f, 0x9ea5, 0x9ebb, + 0x50a2, 0x508d, 0x5085, 0x5099, 0x5091, 0x5080, 0x5096, 0x5098, + 0x509a, 0x6700, 0x51f1, 0x5272, 0x5274, 0x5275, 0x5269, 0x52de, + 0x52dd, 0x52db, 0x535a, 0x53a5, 0x557b, 0x5580, 0x55a7, 0x557c, + 0x558a, 0x559d, 0x5598, 0x5582, 0x559c, 0x55aa, 0x5594, 0x5587, + 0x558b, 0x5583, 0x55b3, 0x55ae, 0x559f, 0x553e, 0x55b2, 0x559a, + 0x55bb, 0x55ac, 0x55b1, 0x557e, 0x5589, 0x55ab, 0x5599, 0x570d, + 0x582f, 0x582a, 0x5834, 0x5824, 0x5830, 0x5831, 0x5821, 0x581d, + 0x5820, 0x58f9, 0x58fa, 0x5960, 0x5a77, 0x5a9a, 0x5a7f, 0x5a92, + 0x5a9b, 0x5aa7, 0x5b73, 0x5b71, 0x5bd2, 0x5bcc, 0x5bd3, 0x5bd0, + 0x5c0a, 0x5c0b, 0x5c31, 0x5d4c, 0x5d50, 0x5d34, 0x5d47, 0x5dfd, + 0x5e45, 0x5e3d, 0x5e40, 0x5e43, 0x5e7e, 0x5eca, + /* 0x5f */ + 0x5ec1, 0x5ec2, 0x5ec4, 0x5f3c, 0x5f6d, 0x5fa9, 0x5faa, 0x5fa8, + 0x60d1, 0x60e1, 0x60b2, 0x60b6, 0x60e0, 0x611c, 0x6123, 0x60fa, + 0x6115, 0x60f0, 0x60fb, 0x60f4, 0x6168, 0x60f1, 0x610e, 0x60f6, + 0x6109, 0x6100, 0x6112, 0x621f, 0x6249, 0x63a3, 0x638c, 0x63cf, + 0x63c0, 0x63e9, 0x63c9, 0x63c6, 0x63cd, 0x63d2, 0x63e3, 0x63d0, + 0x63e1, 0x63d6, 0x63ed, 0x63ee, 0x6376, 0x63f4, 0x63ea, 0x63db, + 0x6452, 0x63da, 0x63f9, 0x655e, 0x6566, 0x6562, 0x6563, 0x6591, + 0x6590, 0x65af, 0x666e, 0x6670, 0x6674, 0x6676, 0x666f, 0x6691, + 0x667a, 0x667e, 0x6677, 0x66fe, 0x66ff, 0x671f, 0x671d, 0x68fa, + 0x68d5, 0x68e0, 0x68d8, 0x68d7, 0x6905, 0x68df, 0x68f5, 0x68ee, + 0x68e7, 0x68f9, 0x68d2, 0x68f2, 0x68e3, 0x68cb, 0x68cd, 0x690d, + 0x6912, 0x690e, 0x68c9, 0x68da, 0x696e, 0x68fb, + /* 0x60 */ + 0x6b3e, 0x6b3a, 0x6b3d, 0x6b98, 0x6b96, 0x6bbc, 0x6bef, 0x6c2e, + 0x6c2f, 0x6c2c, 0x6e2f, 0x6e38, 0x6e54, 0x6e21, 0x6e32, 0x6e67, + 0x6e4a, 0x6e20, 0x6e25, 0x6e23, 0x6e1b, 0x6e5b, 0x6e58, 0x6e24, + 0x6e56, 0x6e6e, 0x6e2d, 0x6e26, 0x6e6f, 0x6e34, 0x6e4d, 0x6e3a, + 0x6e2c, 0x6e43, 0x6e1d, 0x6e3e, 0x6ecb, 0x6e89, 0x6e19, 0x6e4e, + 0x6e63, 0x6e44, 0x6e72, 0x6e69, 0x6e5f, 0x7119, 0x711a, 0x7126, + 0x7130, 0x7121, 0x7136, 0x716e, 0x711c, 0x724c, 0x7284, 0x7280, + 0x7336, 0x7325, 0x7334, 0x7329, 0x743a, 0x742a, 0x7433, 0x7422, + 0x7425, 0x7435, 0x7436, 0x7434, 0x742f, 0x741b, 0x7426, 0x7428, + 0x7525, 0x7526, 0x756b, 0x756a, 0x75e2, 0x75db, 0x75e3, 0x75d9, + 0x75d8, 0x75de, 0x75e0, 0x767b, 0x767c, 0x7696, 0x7693, 0x76b4, + 0x76dc, 0x774f, 0x77ed, 0x785d, 0x786c, 0x786f, + /* 0x61 */ + 0x7a0d, 0x7a08, 0x7a0b, 0x7a05, 0x7a00, 0x7a98, 0x7a97, 0x7a96, + 0x7ae5, 0x7ae3, 0x7b49, 0x7b56, 0x7b46, 0x7b50, 0x7b52, 0x7b54, + 0x7b4d, 0x7b4b, 0x7b4f, 0x7b51, 0x7c9f, 0x7ca5, 0x7d5e, 0x7d50, + 0x7d68, 0x7d55, 0x7d2b, 0x7d6e, 0x7d72, 0x7d61, 0x7d66, 0x7d62, + 0x7d70, 0x7d73, 0x5584, 0x7fd4, 0x7fd5, 0x800b, 0x8052, 0x8085, + 0x8155, 0x8154, 0x814b, 0x8151, 0x814e, 0x8139, 0x8146, 0x813e, + 0x814c, 0x8153, 0x8174, 0x8212, 0x821c, 0x83e9, 0x8403, 0x83f8, + 0x840d, 0x83e0, 0x83c5, 0x840b, 0x83c1, 0x83ef, 0x83f1, 0x83f4, + 0x8457, 0x840a, 0x83f0, 0x840c, 0x83cc, 0x83fd, 0x83f2, 0x83ca, + 0x8438, 0x840e, 0x8404, 0x83dc, 0x8407, 0x83d4, 0x83df, 0x865b, + 0x86df, 0x86d9, 0x86ed, 0x86d4, 0x86db, 0x86e4, 0x86d0, 0x86de, + 0x8857, 0x88c1, 0x88c2, 0x88b1, 0x8983, 0x8996, + /* 0x62 */ + 0x8a3b, 0x8a60, 0x8a55, 0x8a5e, 0x8a3c, 0x8a41, 0x8a54, 0x8a5b, + 0x8a50, 0x8a46, 0x8a34, 0x8a3a, 0x8a36, 0x8a56, 0x8c61, 0x8c82, + 0x8caf, 0x8cbc, 0x8cb3, 0x8cbd, 0x8cc1, 0x8cbb, 0x8cc0, 0x8cb4, + 0x8cb7, 0x8cb6, 0x8cbf, 0x8cb8, 0x8d8a, 0x8d85, 0x8d81, 0x8dce, + 0x8ddd, 0x8dcb, 0x8dda, 0x8dd1, 0x8dcc, 0x8ddb, 0x8dc6, 0x8efb, + 0x8ef8, 0x8efc, 0x8f9c, 0x902e, 0x9035, 0x9031, 0x9038, 0x9032, + 0x9036, 0x9102, 0x90f5, 0x9109, 0x90fe, 0x9163, 0x9165, 0x91cf, + 0x9214, 0x9215, 0x9223, 0x9209, 0x921e, 0x920d, 0x9210, 0x9207, + 0x9211, 0x9594, 0x958f, 0x958b, 0x9591, 0x9593, 0x9592, 0x958e, + 0x968a, 0x968e, 0x968b, 0x967d, 0x9685, 0x9686, 0x968d, 0x9672, + 0x9684, 0x96c1, 0x96c5, 0x96c4, 0x96c6, 0x96c7, 0x96ef, 0x96f2, + 0x97cc, 0x9805, 0x9806, 0x9808, 0x98e7, 0x98ea, + /* 0x63 */ + 0x98ef, 0x98e9, 0x98f2, 0x98ed, 0x99ae, 0x99ad, 0x9ec3, 0x9ecd, + 0x9ed1, 0x4e82, 0x50ad, 0x50b5, 0x50b2, 0x50b3, 0x50c5, 0x50be, + 0x50ac, 0x50b7, 0x50bb, 0x50af, 0x50c7, 0x527f, 0x5277, 0x527d, + 0x52df, 0x52e6, 0x52e4, 0x52e2, 0x52e3, 0x532f, 0x55df, 0x55e8, + 0x55d3, 0x55e6, 0x55ce, 0x55dc, 0x55c7, 0x55d1, 0x55e3, 0x55e4, + 0x55ef, 0x55da, 0x55e1, 0x55c5, 0x55c6, 0x55e5, 0x55c9, 0x5712, + 0x5713, 0x585e, 0x5851, 0x5858, 0x5857, 0x585a, 0x5854, 0x586b, + 0x584c, 0x586d, 0x584a, 0x5862, 0x5852, 0x584b, 0x5967, 0x5ac1, + 0x5ac9, 0x5acc, 0x5abe, 0x5abd, 0x5abc, 0x5ab3, 0x5ac2, 0x5ab2, + 0x5d69, 0x5d6f, 0x5e4c, 0x5e79, 0x5ec9, 0x5ec8, 0x5f12, 0x5f59, + 0x5fac, 0x5fae, 0x611a, 0x610f, 0x6148, 0x611f, 0x60f3, 0x611b, + 0x60f9, 0x6101, 0x6108, 0x614e, 0x614c, 0x6144, + /* 0x64 */ + 0x614d, 0x613e, 0x6134, 0x6127, 0x610d, 0x6106, 0x6137, 0x6221, + 0x6222, 0x6413, 0x643e, 0x641e, 0x642a, 0x642d, 0x643d, 0x642c, + 0x640f, 0x641c, 0x6414, 0x640d, 0x6436, 0x6416, 0x6417, 0x6406, + 0x656c, 0x659f, 0x65b0, 0x6697, 0x6689, 0x6687, 0x6688, 0x6696, + 0x6684, 0x6698, 0x668d, 0x6703, 0x6994, 0x696d, 0x695a, 0x6977, + 0x6960, 0x6954, 0x6975, 0x6930, 0x6982, 0x694a, 0x6968, 0x696b, + 0x695e, 0x6953, 0x6979, 0x6986, 0x695d, 0x6963, 0x695b, 0x6b47, + 0x6b72, 0x6bc0, 0x6bbf, 0x6bd3, 0x6bfd, 0x6ea2, 0x6eaf, 0x6ed3, + 0x6eb6, 0x6ec2, 0x6e90, 0x6e9d, 0x6ec7, 0x6ec5, 0x6ea5, 0x6e98, + 0x6ebc, 0x6eba, 0x6eab, 0x6ed1, 0x6e96, 0x6e9c, 0x6ec4, 0x6ed4, + 0x6eaa, 0x6ea7, 0x6eb4, 0x714e, 0x7159, 0x7169, 0x7164, 0x7149, + 0x7167, 0x715c, 0x716c, 0x7166, 0x714c, 0x7165, + /* 0x65 */ + 0x715e, 0x7146, 0x7168, 0x7156, 0x723a, 0x7252, 0x7337, 0x7345, + 0x733f, 0x733e, 0x746f, 0x745a, 0x7455, 0x745f, 0x745e, 0x7441, + 0x743f, 0x7459, 0x745b, 0x745c, 0x7576, 0x7578, 0x7600, 0x75f0, + 0x7601, 0x75f2, 0x75f1, 0x75fa, 0x75ff, 0x75f4, 0x75f3, 0x76de, + 0x76df, 0x775b, 0x776b, 0x7766, 0x775e, 0x7763, 0x7779, 0x776a, + 0x776c, 0x775c, 0x7765, 0x7768, 0x7762, 0x77ee, 0x788e, 0x78b0, + 0x7897, 0x7898, 0x788c, 0x7889, 0x787c, 0x7891, 0x7893, 0x787f, + 0x797a, 0x797f, 0x7981, 0x842c, 0x79bd, 0x7a1c, 0x7a1a, 0x7a20, + 0x7a14, 0x7a1f, 0x7a1e, 0x7a9f, 0x7aa0, 0x7b77, 0x7bc0, 0x7b60, + 0x7b6e, 0x7b67, 0x7cb1, 0x7cb3, 0x7cb5, 0x7d93, 0x7d79, 0x7d91, + 0x7d81, 0x7d8f, 0x7d5b, 0x7f6e, 0x7f69, 0x7f6a, 0x7f72, 0x7fa9, + 0x7fa8, 0x7fa4, 0x8056, 0x8058, 0x8086, 0x8084, + /* 0x66 */ + 0x8171, 0x8170, 0x8178, 0x8165, 0x816e, 0x8173, 0x816b, 0x8179, + 0x817a, 0x8166, 0x8205, 0x8247, 0x8482, 0x8477, 0x843d, 0x8431, + 0x8475, 0x8466, 0x846b, 0x8449, 0x846c, 0x845b, 0x843c, 0x8435, + 0x8461, 0x8463, 0x8469, 0x846d, 0x8446, 0x865e, 0x865c, 0x865f, + 0x86f9, 0x8713, 0x8708, 0x8707, 0x8700, 0x86fe, 0x86fb, 0x8702, + 0x8703, 0x8706, 0x870a, 0x8859, 0x88df, 0x88d4, 0x88d9, 0x88dc, + 0x88d8, 0x88dd, 0x88e1, 0x88ca, 0x88d5, 0x88d2, 0x899c, 0x89e3, + 0x8a6b, 0x8a72, 0x8a73, 0x8a66, 0x8a69, 0x8a70, 0x8a87, 0x8a7c, + 0x8a63, 0x8aa0, 0x8a71, 0x8a85, 0x8a6d, 0x8a62, 0x8a6e, 0x8a6c, + 0x8a79, 0x8a7b, 0x8a3e, 0x8a68, 0x8c62, 0x8c8a, 0x8c89, 0x8cca, + 0x8cc7, 0x8cc8, 0x8cc4, 0x8cb2, 0x8cc3, 0x8cc2, 0x8cc5, 0x8de1, + 0x8ddf, 0x8de8, 0x8def, 0x8df3, 0x8dfa, 0x8dea, + /* 0x67 */ + 0x8de4, 0x8de6, 0x8eb2, 0x8f03, 0x8f09, 0x8efe, 0x8f0a, 0x8f9f, + 0x8fb2, 0x904b, 0x904a, 0x9053, 0x9042, 0x9054, 0x903c, 0x9055, + 0x9050, 0x9047, 0x904f, 0x904e, 0x904d, 0x9051, 0x903e, 0x9041, + 0x9112, 0x9117, 0x916c, 0x916a, 0x9169, 0x91c9, 0x9237, 0x9257, + 0x9238, 0x923d, 0x9240, 0x923e, 0x925b, 0x924b, 0x9264, 0x9251, + 0x9234, 0x9249, 0x924d, 0x9245, 0x9239, 0x923f, 0x925a, 0x9598, + 0x9698, 0x9694, 0x9695, 0x96cd, 0x96cb, 0x96c9, 0x96ca, 0x96f7, + 0x96fb, 0x96f9, 0x96f6, 0x9756, 0x9774, 0x9776, 0x9810, 0x9811, + 0x9813, 0x980a, 0x9812, 0x980c, 0x98fc, 0x98f4, 0x98fd, 0x98fe, + 0x99b3, 0x99b1, 0x99b4, 0x9ae1, 0x9ce9, 0x9e82, 0x9f0e, 0x9f13, + 0x9f20, 0x50e7, 0x50ee, 0x50e5, 0x50d6, 0x50ed, 0x50da, 0x50d5, + 0x50cf, 0x50d1, 0x50f1, 0x50ce, 0x50e9, 0x5162, + /* 0x68 */ + 0x51f3, 0x5283, 0x5282, 0x5331, 0x53ad, 0x55fe, 0x5600, 0x561b, + 0x5617, 0x55fd, 0x5614, 0x5606, 0x5609, 0x560d, 0x560e, 0x55f7, + 0x5616, 0x561f, 0x5608, 0x5610, 0x55f6, 0x5718, 0x5716, 0x5875, + 0x587e, 0x5883, 0x5893, 0x588a, 0x5879, 0x5885, 0x587d, 0x58fd, + 0x5925, 0x5922, 0x5924, 0x596a, 0x5969, 0x5ae1, 0x5ae6, 0x5ae9, + 0x5ad7, 0x5ad6, 0x5ad8, 0x5ae3, 0x5b75, 0x5bde, 0x5be7, 0x5be1, + 0x5be5, 0x5be6, 0x5be8, 0x5be2, 0x5be4, 0x5bdf, 0x5c0d, 0x5c62, + 0x5d84, 0x5d87, 0x5e5b, 0x5e63, 0x5e55, 0x5e57, 0x5e54, 0x5ed3, + 0x5ed6, 0x5f0a, 0x5f46, 0x5f70, 0x5fb9, 0x6147, 0x613f, 0x614b, + 0x6177, 0x6162, 0x6163, 0x615f, 0x615a, 0x6158, 0x6175, 0x622a, + 0x6487, 0x6458, 0x6454, 0x64a4, 0x6478, 0x645f, 0x647a, 0x6451, + 0x6467, 0x6434, 0x646d, 0x647b, 0x6572, 0x65a1, + /* 0x69 */ + 0x65d7, 0x65d6, 0x66a2, 0x66a8, 0x669d, 0x699c, 0x69a8, 0x6995, + 0x69c1, 0x69ae, 0x69d3, 0x69cb, 0x699b, 0x69b7, 0x69bb, 0x69ab, + 0x69b4, 0x69d0, 0x69cd, 0x69ad, 0x69cc, 0x69a6, 0x69c3, 0x69a3, + 0x6b49, 0x6b4c, 0x6c33, 0x6f33, 0x6f14, 0x6efe, 0x6f13, 0x6ef4, + 0x6f29, 0x6f3e, 0x6f20, 0x6f2c, 0x6f0f, 0x6f02, 0x6f22, 0x6eff, + 0x6eef, 0x6f06, 0x6f31, 0x6f38, 0x6f32, 0x6f23, 0x6f15, 0x6f2b, + 0x6f2f, 0x6f88, 0x6f2a, 0x6eec, 0x6f01, 0x6ef2, 0x6ecc, 0x6ef7, + 0x7194, 0x7199, 0x717d, 0x718a, 0x7184, 0x7192, 0x723e, 0x7292, + 0x7296, 0x7344, 0x7350, 0x7464, 0x7463, 0x746a, 0x7470, 0x746d, + 0x7504, 0x7591, 0x7627, 0x760d, 0x760b, 0x7609, 0x7613, 0x76e1, + 0x76e3, 0x7784, 0x777d, 0x777f, 0x7761, 0x78c1, 0x789f, 0x78a7, + 0x78b3, 0x78a9, 0x78a3, 0x798e, 0x798f, 0x798d, + /* 0x6a */ + 0x7a2e, 0x7a31, 0x7aaa, 0x7aa9, 0x7aed, 0x7aef, 0x7ba1, 0x7b95, + 0x7b8b, 0x7b75, 0x7b97, 0x7b9d, 0x7b94, 0x7b8f, 0x7bb8, 0x7b87, + 0x7b84, 0x7cb9, 0x7cbd, 0x7cbe, 0x7dbb, 0x7db0, 0x7d9c, 0x7dbd, + 0x7dbe, 0x7da0, 0x7dca, 0x7db4, 0x7db2, 0x7db1, 0x7dba, 0x7da2, + 0x7dbf, 0x7db5, 0x7db8, 0x7dad, 0x7dd2, 0x7dc7, 0x7dac, 0x7f70, + 0x7fe0, 0x7fe1, 0x7fdf, 0x805e, 0x805a, 0x8087, 0x8150, 0x8180, + 0x818f, 0x8188, 0x818a, 0x817f, 0x8182, 0x81e7, 0x81fa, 0x8207, + 0x8214, 0x821e, 0x824b, 0x84c9, 0x84bf, 0x84c6, 0x84c4, 0x8499, + 0x849e, 0x84b2, 0x849c, 0x84cb, 0x84b8, 0x84c0, 0x84d3, 0x8490, + 0x84bc, 0x84d1, 0x84ca, 0x873f, 0x871c, 0x873b, 0x8722, 0x8725, + 0x8734, 0x8718, 0x8755, 0x8737, 0x8729, 0x88f3, 0x8902, 0x88f4, + 0x88f9, 0x88f8, 0x88fd, 0x88e8, 0x891a, 0x88ef, + /* 0x6b */ + 0x8aa6, 0x8a8c, 0x8a9e, 0x8aa3, 0x8a8d, 0x8aa1, 0x8a93, 0x8aa4, + 0x8aaa, 0x8aa5, 0x8aa8, 0x8a98, 0x8a91, 0x8a9a, 0x8aa7, 0x8c6a, + 0x8c8d, 0x8c8c, 0x8cd3, 0x8cd1, 0x8cd2, 0x8d6b, 0x8d99, 0x8d95, + 0x8dfc, 0x8f14, 0x8f12, 0x8f15, 0x8f13, 0x8fa3, 0x9060, 0x9058, + 0x905c, 0x9063, 0x9059, 0x905e, 0x9062, 0x905d, 0x905b, 0x9119, + 0x9118, 0x911e, 0x9175, 0x9178, 0x9177, 0x9174, 0x9278, 0x92ac, + 0x9280, 0x9285, 0x9298, 0x9296, 0x927b, 0x9293, 0x929c, 0x92a8, + 0x927c, 0x9291, 0x95a1, 0x95a8, 0x95a9, 0x95a3, 0x95a5, 0x95a4, + 0x9699, 0x969c, 0x969b, 0x96cc, 0x96d2, 0x9700, 0x977c, 0x9785, + 0x97f6, 0x9817, 0x9818, 0x98af, 0x98b1, 0x9903, 0x9905, 0x990c, + 0x9909, 0x99c1, 0x9aaf, 0x9ab0, 0x9ae6, 0x9b41, 0x9b42, 0x9cf4, + 0x9cf6, 0x9cf3, 0x9ebc, 0x9f3b, 0x9f4a, 0x5104, + /* 0x6c */ + 0x5100, 0x50fb, 0x50f5, 0x50f9, 0x5102, 0x5108, 0x5109, 0x5105, + 0x51dc, 0x5287, 0x5288, 0x5289, 0x528d, 0x528a, 0x52f0, 0x53b2, + 0x562e, 0x563b, 0x5639, 0x5632, 0x563f, 0x5634, 0x5629, 0x5653, + 0x564e, 0x5657, 0x5674, 0x5636, 0x562f, 0x5630, 0x5880, 0x589f, + 0x589e, 0x58b3, 0x589c, 0x58ae, 0x58a9, 0x58a6, 0x596d, 0x5b09, + 0x5afb, 0x5b0b, 0x5af5, 0x5b0c, 0x5b08, 0x5bee, 0x5bec, 0x5be9, + 0x5beb, 0x5c64, 0x5c65, 0x5d9d, 0x5d94, 0x5e62, 0x5e5f, 0x5e61, + 0x5ee2, 0x5eda, 0x5edf, 0x5edd, 0x5ee3, 0x5ee0, 0x5f48, 0x5f71, + 0x5fb7, 0x5fb5, 0x6176, 0x6167, 0x616e, 0x615d, 0x6155, 0x6182, + 0x617c, 0x6170, 0x616b, 0x617e, 0x61a7, 0x6190, 0x61ab, 0x618e, + 0x61ac, 0x619a, 0x61a4, 0x6194, 0x61ae, 0x622e, 0x6469, 0x646f, + 0x6479, 0x649e, 0x64b2, 0x6488, 0x6490, 0x64b0, + /* 0x6d */ + 0x64a5, 0x6493, 0x6495, 0x64a9, 0x6492, 0x64ae, 0x64ad, 0x64ab, + 0x649a, 0x64ac, 0x6499, 0x64a2, 0x64b3, 0x6575, 0x6577, 0x6578, + 0x66ae, 0x66ab, 0x66b4, 0x66b1, 0x6a23, 0x6a1f, 0x69e8, 0x6a01, + 0x6a1e, 0x6a19, 0x69fd, 0x6a21, 0x6a13, 0x6a0a, 0x69f3, 0x6a02, + 0x6a05, 0x69ed, 0x6a11, 0x6b50, 0x6b4e, 0x6ba4, 0x6bc5, 0x6bc6, + 0x6f3f, 0x6f7c, 0x6f84, 0x6f51, 0x6f66, 0x6f54, 0x6f86, 0x6f6d, + 0x6f5b, 0x6f78, 0x6f6e, 0x6f8e, 0x6f7a, 0x6f70, 0x6f64, 0x6f97, + 0x6f58, 0x6ed5, 0x6f6f, 0x6f60, 0x6f5f, 0x719f, 0x71ac, 0x71b1, + 0x71a8, 0x7256, 0x729b, 0x734e, 0x7357, 0x7469, 0x748b, 0x7483, + 0x747e, 0x7480, 0x757f, 0x7620, 0x7629, 0x761f, 0x7624, 0x7626, + 0x7621, 0x7622, 0x769a, 0x76ba, 0x76e4, 0x778e, 0x7787, 0x778c, + 0x7791, 0x778b, 0x78cb, 0x78c5, 0x78ba, 0x78ca, + /* 0x6e */ + 0x78be, 0x78d5, 0x78bc, 0x78d0, 0x7a3f, 0x7a3c, 0x7a40, 0x7a3d, + 0x7a37, 0x7a3b, 0x7aaf, 0x7aae, 0x7bad, 0x7bb1, 0x7bc4, 0x7bb4, + 0x7bc6, 0x7bc7, 0x7bc1, 0x7ba0, 0x7bcc, 0x7cca, 0x7de0, 0x7df4, + 0x7def, 0x7dfb, 0x7dd8, 0x7dec, 0x7ddd, 0x7de8, 0x7de3, 0x7dda, + 0x7dde, 0x7de9, 0x7d9e, 0x7dd9, 0x7df2, 0x7df9, 0x7f75, 0x7f77, + 0x7faf, 0x7fe9, 0x8026, 0x819b, 0x819c, 0x819d, 0x81a0, 0x819a, + 0x8198, 0x8517, 0x853d, 0x851a, 0x84ee, 0x852c, 0x852d, 0x8513, + 0x8511, 0x8523, 0x8521, 0x8514, 0x84ec, 0x8525, 0x84ff, 0x8506, + 0x8782, 0x8774, 0x8776, 0x8760, 0x8766, 0x8778, 0x8768, 0x8759, + 0x8757, 0x874c, 0x8753, 0x885b, 0x885d, 0x8910, 0x8907, 0x8912, + 0x8913, 0x8915, 0x890a, 0x8abc, 0x8ad2, 0x8ac7, 0x8ac4, 0x8a95, + 0x8acb, 0x8af8, 0x8ab2, 0x8ac9, 0x8ac2, 0x8abf, + /* 0x6f */ + 0x8ab0, 0x8ad6, 0x8acd, 0x8ab6, 0x8ab9, 0x8adb, 0x8c4c, 0x8c4e, + 0x8c6c, 0x8ce0, 0x8cde, 0x8ce6, 0x8ce4, 0x8cec, 0x8ced, 0x8ce2, + 0x8ce3, 0x8cdc, 0x8cea, 0x8ce1, 0x8d6d, 0x8d9f, 0x8da3, 0x8e2b, + 0x8e10, 0x8e1d, 0x8e22, 0x8e0f, 0x8e29, 0x8e1f, 0x8e21, 0x8e1e, + 0x8eba, 0x8f1d, 0x8f1b, 0x8f1f, 0x8f29, 0x8f26, 0x8f2a, 0x8f1c, + 0x8f1e, 0x8f25, 0x9069, 0x906e, 0x9068, 0x906d, 0x9077, 0x9130, + 0x912d, 0x9127, 0x9131, 0x9187, 0x9189, 0x918b, 0x9183, 0x92c5, + 0x92bb, 0x92b7, 0x92ea, 0x92e4, 0x92c1, 0x92b3, 0x92bc, 0x92d2, + 0x92c7, 0x92f0, 0x92b2, 0x95ad, 0x95b1, 0x9704, 0x9706, 0x9707, + 0x9709, 0x9760, 0x978d, 0x978b, 0x978f, 0x9821, 0x982b, 0x981c, + 0x98b3, 0x990a, 0x9913, 0x9912, 0x9918, 0x99dd, 0x99d0, 0x99df, + 0x99db, 0x99d1, 0x99d5, 0x99d2, 0x99d9, 0x9ab7, + /* 0x70 */ + 0x9aee, 0x9aef, 0x9b27, 0x9b45, 0x9b44, 0x9b77, 0x9b6f, 0x9d06, + 0x9d09, 0x9d03, 0x9ea9, 0x9ebe, 0x9ece, 0x58a8, 0x9f52, 0x5112, + 0x5118, 0x5114, 0x5110, 0x5115, 0x5180, 0x51aa, 0x51dd, 0x5291, + 0x5293, 0x52f3, 0x5659, 0x566b, 0x5679, 0x5669, 0x5664, 0x5678, + 0x566a, 0x5668, 0x5665, 0x5671, 0x566f, 0x566c, 0x5662, 0x5676, + 0x58c1, 0x58be, 0x58c7, 0x58c5, 0x596e, 0x5b1d, 0x5b34, 0x5b78, + 0x5bf0, 0x5c0e, 0x5f4a, 0x61b2, 0x6191, 0x61a9, 0x618a, 0x61cd, + 0x61b6, 0x61be, 0x61ca, 0x61c8, 0x6230, 0x64c5, 0x64c1, 0x64cb, + 0x64bb, 0x64bc, 0x64da, 0x64c4, 0x64c7, 0x64c2, 0x64cd, 0x64bf, + 0x64d2, 0x64d4, 0x64be, 0x6574, 0x66c6, 0x66c9, 0x66b9, 0x66c4, + 0x66c7, 0x66b8, 0x6a3d, 0x6a38, 0x6a3a, 0x6a59, 0x6a6b, 0x6a58, + 0x6a39, 0x6a44, 0x6a62, 0x6a61, 0x6a4b, 0x6a47, + /* 0x71 */ + 0x6a35, 0x6a5f, 0x6a48, 0x6b59, 0x6b77, 0x6c05, 0x6fc2, 0x6fb1, + 0x6fa1, 0x6fc3, 0x6fa4, 0x6fc1, 0x6fa7, 0x6fb3, 0x6fc0, 0x6fb9, + 0x6fb6, 0x6fa6, 0x6fa0, 0x6fb4, 0x71be, 0x71c9, 0x71d0, 0x71d2, + 0x71c8, 0x71d5, 0x71b9, 0x71ce, 0x71d9, 0x71dc, 0x71c3, 0x71c4, + 0x7368, 0x749c, 0x74a3, 0x7498, 0x749f, 0x749e, 0x74e2, 0x750c, + 0x750d, 0x7634, 0x7638, 0x763a, 0x76e7, 0x76e5, 0x77a0, 0x779e, + 0x779f, 0x77a5, 0x78e8, 0x78da, 0x78ec, 0x78e7, 0x79a6, 0x7a4d, + 0x7a4e, 0x7a46, 0x7a4c, 0x7a4b, 0x7aba, 0x7bd9, 0x7c11, 0x7bc9, + 0x7be4, 0x7bdb, 0x7be1, 0x7be9, 0x7be6, 0x7cd5, 0x7cd6, 0x7e0a, + 0x7e11, 0x7e08, 0x7e1b, 0x7e23, 0x7e1e, 0x7e1d, 0x7e09, 0x7e10, + 0x7f79, 0x7fb2, 0x7ff0, 0x7ff1, 0x7fee, 0x8028, 0x81b3, 0x81a9, + 0x81a8, 0x81fb, 0x8208, 0x8258, 0x8259, 0x854a, + /* 0x72 */ + 0x8559, 0x8548, 0x8568, 0x8569, 0x8543, 0x8549, 0x856d, 0x856a, + 0x855e, 0x8783, 0x879f, 0x879e, 0x87a2, 0x878d, 0x8861, 0x892a, + 0x8932, 0x8925, 0x892b, 0x8921, 0x89aa, 0x89a6, 0x8ae6, 0x8afa, + 0x8aeb, 0x8af1, 0x8b00, 0x8adc, 0x8ae7, 0x8aee, 0x8afe, 0x8b01, + 0x8b02, 0x8af7, 0x8aed, 0x8af3, 0x8af6, 0x8afc, 0x8c6b, 0x8c6d, + 0x8c93, 0x8cf4, 0x8e44, 0x8e31, 0x8e34, 0x8e42, 0x8e39, 0x8e35, + 0x8f3b, 0x8f2f, 0x8f38, 0x8f33, 0x8fa8, 0x8fa6, 0x9075, 0x9074, + 0x9078, 0x9072, 0x907c, 0x907a, 0x9134, 0x9192, 0x9320, 0x9336, + 0x92f8, 0x9333, 0x932f, 0x9322, 0x92fc, 0x932b, 0x9304, 0x931a, + 0x9310, 0x9326, 0x9321, 0x9315, 0x932e, 0x9319, 0x95bb, 0x96a7, + 0x96a8, 0x96aa, 0x96d5, 0x970e, 0x9711, 0x9716, 0x970d, 0x9713, + 0x970f, 0x975b, 0x975c, 0x9766, 0x9798, 0x9830, + /* 0x73 */ + 0x9838, 0x983b, 0x9837, 0x982d, 0x9839, 0x9824, 0x9910, 0x9928, + 0x991e, 0x991b, 0x9921, 0x991a, 0x99ed, 0x99e2, 0x99f1, 0x9ab8, + 0x9abc, 0x9afb, 0x9aed, 0x9b28, 0x9b91, 0x9d15, 0x9d23, 0x9d26, + 0x9d28, 0x9d12, 0x9d1b, 0x9ed8, 0x9ed4, 0x9f8d, 0x9f9c, 0x512a, + 0x511f, 0x5121, 0x5132, 0x52f5, 0x568e, 0x5680, 0x5690, 0x5685, + 0x5687, 0x568f, 0x58d5, 0x58d3, 0x58d1, 0x58ce, 0x5b30, 0x5b2a, + 0x5b24, 0x5b7a, 0x5c37, 0x5c68, 0x5dbc, 0x5dba, 0x5dbd, 0x5db8, + 0x5e6b, 0x5f4c, 0x5fbd, 0x61c9, 0x61c2, 0x61c7, 0x61e6, 0x61cb, + 0x6232, 0x6234, 0x64ce, 0x64ca, 0x64d8, 0x64e0, 0x64f0, 0x64e6, + 0x64ec, 0x64f1, 0x64e2, 0x64ed, 0x6582, 0x6583, 0x66d9, 0x66d6, + 0x6a80, 0x6a94, 0x6a84, 0x6aa2, 0x6a9c, 0x6adb, 0x6aa3, 0x6a7e, + 0x6a97, 0x6a90, 0x6aa0, 0x6b5c, 0x6bae, 0x6bda, + /* 0x74 */ + 0x6c08, 0x6fd8, 0x6ff1, 0x6fdf, 0x6fe0, 0x6fdb, 0x6fe4, 0x6feb, + 0x6fef, 0x6f80, 0x6fec, 0x6fe1, 0x6fe9, 0x6fd5, 0x6fee, 0x6ff0, + 0x71e7, 0x71df, 0x71ee, 0x71e6, 0x71e5, 0x71ed, 0x71ec, 0x71f4, + 0x71e0, 0x7235, 0x7246, 0x7370, 0x7372, 0x74a9, 0x74b0, 0x74a6, + 0x74a8, 0x7646, 0x7642, 0x764c, 0x76ea, 0x77b3, 0x77aa, 0x77b0, + 0x77ac, 0x77a7, 0x77ad, 0x77ef, 0x78f7, 0x78fa, 0x78f4, 0x78ef, + 0x7901, 0x79a7, 0x79aa, 0x7a57, 0x7abf, 0x7c07, 0x7c0d, 0x7bfe, + 0x7bf7, 0x7c0c, 0x7be0, 0x7ce0, 0x7cdc, 0x7cde, 0x7ce2, 0x7cdf, + 0x7cd9, 0x7cdd, 0x7e2e, 0x7e3e, 0x7e46, 0x7e37, 0x7e32, 0x7e43, + 0x7e2b, 0x7e3d, 0x7e31, 0x7e45, 0x7e41, 0x7e34, 0x7e39, 0x7e48, + 0x7e35, 0x7e3f, 0x7e2f, 0x7f44, 0x7ff3, 0x7ffc, 0x8071, 0x8072, + 0x8070, 0x806f, 0x8073, 0x81c6, 0x81c3, 0x81ba, + /* 0x75 */ + 0x81c2, 0x81c0, 0x81bf, 0x81bd, 0x81c9, 0x81be, 0x81e8, 0x8209, + 0x8271, 0x85aa, 0x8584, 0x857e, 0x859c, 0x8591, 0x8594, 0x85af, + 0x859b, 0x8587, 0x85a8, 0x858a, 0x85a6, 0x8667, 0x87c0, 0x87d1, + 0x87b3, 0x87d2, 0x87c6, 0x87ab, 0x87bb, 0x87ba, 0x87c8, 0x87cb, + 0x893b, 0x8936, 0x8944, 0x8938, 0x893d, 0x89ac, 0x8b0e, 0x8b17, + 0x8b19, 0x8b1b, 0x8b0a, 0x8b20, 0x8b1d, 0x8b04, 0x8b10, 0x8c41, + 0x8c3f, 0x8c73, 0x8cfa, 0x8cfd, 0x8cfc, 0x8cf8, 0x8cfb, 0x8da8, + 0x8e49, 0x8e4b, 0x8e48, 0x8e4a, 0x8f44, 0x8f3e, 0x8f42, 0x8f45, + 0x8f3f, 0x907f, 0x907d, 0x9084, 0x9081, 0x9082, 0x9080, 0x9139, + 0x91a3, 0x919e, 0x919c, 0x934d, 0x9382, 0x9328, 0x9375, 0x934a, + 0x9365, 0x934b, 0x9318, 0x937e, 0x936c, 0x935b, 0x9370, 0x935a, + 0x9354, 0x95ca, 0x95cb, 0x95cc, 0x95c8, 0x95c6, + /* 0x76 */ + 0x96b1, 0x96b8, 0x96d6, 0x971c, 0x971e, 0x97a0, 0x97d3, 0x9846, + 0x98b6, 0x9935, 0x9a01, 0x99ff, 0x9bae, 0x9bab, 0x9baa, 0x9bad, + 0x9d3b, 0x9d3f, 0x9e8b, 0x9ecf, 0x9ede, 0x9edc, 0x9edd, 0x9edb, + 0x9f3e, 0x9f4b, 0x53e2, 0x5695, 0x56ae, 0x58d9, 0x58d8, 0x5b38, + 0x5f5e, 0x61e3, 0x6233, 0x64f4, 0x64f2, 0x64fe, 0x6506, 0x64fa, + 0x64fb, 0x64f7, 0x65b7, 0x66dc, 0x6726, 0x6ab3, 0x6aac, 0x6ac3, + 0x6abb, 0x6ab8, 0x6ac2, 0x6aae, 0x6aaf, 0x6b5f, 0x6b78, 0x6baf, + 0x7009, 0x700b, 0x6ffe, 0x7006, 0x6ffa, 0x7011, 0x700f, 0x71fb, + 0x71fc, 0x71fe, 0x71f8, 0x7377, 0x7375, 0x74a7, 0x74bf, 0x7515, + 0x7656, 0x7658, 0x7652, 0x77bd, 0x77bf, 0x77bb, 0x77bc, 0x790e, + 0x79ae, 0x7a61, 0x7a62, 0x7a60, 0x7ac4, 0x7ac5, 0x7c2b, 0x7c27, + 0x7c2a, 0x7c1e, 0x7c23, 0x7c21, 0x7ce7, 0x7e54, + /* 0x77 */ + 0x7e55, 0x7e5e, 0x7e5a, 0x7e61, 0x7e52, 0x7e59, 0x7f48, 0x7ff9, + 0x7ffb, 0x8077, 0x8076, 0x81cd, 0x81cf, 0x820a, 0x85cf, 0x85a9, + 0x85cd, 0x85d0, 0x85c9, 0x85b0, 0x85ba, 0x85b9, 0x87ef, 0x87ec, + 0x87f2, 0x87e0, 0x8986, 0x89b2, 0x89f4, 0x8b28, 0x8b39, 0x8b2c, + 0x8b2b, 0x8c50, 0x8d05, 0x8e59, 0x8e63, 0x8e66, 0x8e64, 0x8e5f, + 0x8e55, 0x8ec0, 0x8f49, 0x8f4d, 0x9087, 0x9083, 0x9088, 0x91ab, + 0x91ac, 0x91d0, 0x9394, 0x938a, 0x9396, 0x93a2, 0x93b3, 0x93ae, + 0x93ac, 0x93b0, 0x9398, 0x939a, 0x9397, 0x95d4, 0x95d6, 0x95d0, + 0x95d5, 0x96e2, 0x96dc, 0x96d9, 0x96db, 0x96de, 0x9724, 0x97a3, + 0x97a6, 0x97ad, 0x97f9, 0x984d, 0x984f, 0x984c, 0x984e, 0x9853, + 0x98ba, 0x993e, 0x993f, 0x993d, 0x992e, 0x99a5, 0x9a0e, 0x9ac1, + 0x9b03, 0x9b06, 0x9b4f, 0x9b4e, 0x9b4d, 0x9bca, + /* 0x78 */ + 0x9bc9, 0x9bfd, 0x9bc8, 0x9bc0, 0x9d51, 0x9d5d, 0x9d60, 0x9ee0, + 0x9f15, 0x9f2c, 0x5133, 0x56a5, 0x56a8, 0x58de, 0x58df, 0x58e2, + 0x5bf5, 0x9f90, 0x5eec, 0x61f2, 0x61f7, 0x61f6, 0x61f5, 0x6500, + 0x650f, 0x66e0, 0x66dd, 0x6ae5, 0x6add, 0x6ada, 0x6ad3, 0x701b, + 0x701f, 0x7028, 0x701a, 0x701d, 0x7015, 0x7018, 0x7206, 0x720d, + 0x7258, 0x72a2, 0x7378, 0x737a, 0x74bd, 0x74ca, 0x74e3, 0x7587, + 0x7586, 0x765f, 0x7661, 0x77c7, 0x7919, 0x79b1, 0x7a6b, 0x7a69, + 0x7c3e, 0x7c3f, 0x7c38, 0x7c3d, 0x7c37, 0x7c40, 0x7e6b, 0x7e6d, + 0x7e79, 0x7e69, 0x7e6a, 0x7e73, 0x7f85, 0x7fb6, 0x7fb9, 0x7fb8, + 0x81d8, 0x85e9, 0x85dd, 0x85ea, 0x85d5, 0x85e4, 0x85e5, 0x85f7, + 0x87fb, 0x8805, 0x880d, 0x87f9, 0x87fe, 0x8960, 0x895f, 0x8956, + 0x895e, 0x8b41, 0x8b5c, 0x8b58, 0x8b49, 0x8b5a, + /* 0x79 */ + 0x8b4e, 0x8b4f, 0x8b46, 0x8b59, 0x8d08, 0x8d0a, 0x8e7c, 0x8e72, + 0x8e87, 0x8e76, 0x8e6c, 0x8e7a, 0x8e74, 0x8f54, 0x8f4e, 0x8fad, + 0x908a, 0x908b, 0x91b1, 0x91ae, 0x93e1, 0x93d1, 0x93df, 0x93c3, + 0x93c8, 0x93dc, 0x93dd, 0x93d6, 0x93e2, 0x93cd, 0x93d8, 0x93e4, + 0x93d7, 0x93e8, 0x95dc, 0x96b4, 0x96e3, 0x972a, 0x9727, 0x9761, + 0x97dc, 0x97fb, 0x985e, 0x9858, 0x985b, 0x98bc, 0x9945, 0x9949, + 0x9a16, 0x9a19, 0x9b0d, 0x9be8, 0x9be7, 0x9bd6, 0x9bdb, 0x9d89, + 0x9d61, 0x9d72, 0x9d6a, 0x9d6c, 0x9e92, 0x9e97, 0x9e93, 0x9eb4, + 0x52f8, 0x56b7, 0x56b6, 0x56b4, 0x56bc, 0x58e4, 0x5b40, 0x5b43, + 0x5b7d, 0x5bf6, 0x5dc9, 0x61f8, 0x61fa, 0x6518, 0x6514, 0x6519, + 0x66e6, 0x6727, 0x6aec, 0x703e, 0x7030, 0x7032, 0x7210, 0x737b, + 0x74cf, 0x7662, 0x7665, 0x7926, 0x792a, 0x792c, + /* 0x7a */ + 0x792b, 0x7ac7, 0x7af6, 0x7c4c, 0x7c43, 0x7c4d, 0x7cef, 0x7cf0, + 0x8fae, 0x7e7d, 0x7e7c, 0x7e82, 0x7f4c, 0x8000, 0x81da, 0x8266, + 0x85fb, 0x85f9, 0x8611, 0x85fa, 0x8606, 0x860b, 0x8607, 0x860a, + 0x8814, 0x8815, 0x8964, 0x89ba, 0x89f8, 0x8b70, 0x8b6c, 0x8b66, + 0x8b6f, 0x8b5f, 0x8b6b, 0x8d0f, 0x8d0d, 0x8e89, 0x8e81, 0x8e85, + 0x8e82, 0x91b4, 0x91cb, 0x9418, 0x9403, 0x93fd, 0x95e1, 0x9730, + 0x98c4, 0x9952, 0x9951, 0x99a8, 0x9a2b, 0x9a30, 0x9a37, 0x9a35, + 0x9c13, 0x9c0d, 0x9e79, 0x9eb5, 0x9ee8, 0x9f2f, 0x9f5f, 0x9f63, + 0x9f61, 0x5137, 0x5138, 0x56c1, 0x56c0, 0x56c2, 0x5914, 0x5c6c, + 0x5dcd, 0x61fc, 0x61fe, 0x651d, 0x651c, 0x6595, 0x66e9, 0x6afb, + 0x6b04, 0x6afa, 0x6bb2, 0x704c, 0x721b, 0x72a7, 0x74d6, 0x74d4, + 0x7669, 0x77d3, 0x7c50, 0x7e8f, 0x7e8c, 0x7fbc, + /* 0x7b */ + 0x8617, 0x862d, 0x861a, 0x8823, 0x8822, 0x8821, 0x881f, 0x896a, + 0x896c, 0x89bd, 0x8b74, 0x8b77, 0x8b7d, 0x8d13, 0x8e8a, 0x8e8d, + 0x8e8b, 0x8f5f, 0x8faf, 0x91ba, 0x942e, 0x9433, 0x9435, 0x943a, + 0x9438, 0x9432, 0x942b, 0x95e2, 0x9738, 0x9739, 0x9732, 0x97ff, + 0x9867, 0x9865, 0x9957, 0x9a45, 0x9a43, 0x9a40, 0x9a3e, 0x9acf, + 0x9b54, 0x9b51, 0x9c2d, 0x9c25, 0x9daf, 0x9db4, 0x9dc2, 0x9db8, + 0x9e9d, 0x9eef, 0x9f19, 0x9f5c, 0x9f66, 0x9f67, 0x513c, 0x513b, + 0x56c8, 0x56ca, 0x56c9, 0x5b7f, 0x5dd4, 0x5dd2, 0x5f4e, 0x61ff, + 0x6524, 0x6b0a, 0x6b61, 0x7051, 0x7058, 0x7380, 0x74e4, 0x758a, + 0x766e, 0x766c, 0x79b3, 0x7c60, 0x7c5f, 0x807e, 0x807d, 0x81df, + 0x8972, 0x896f, 0x89fc, 0x8b80, 0x8d16, 0x8d17, 0x8e91, 0x8e93, + 0x8f61, 0x9148, 0x9444, 0x9451, 0x9452, 0x973d, + /* 0x7c */ + 0x973e, 0x97c3, 0x97c1, 0x986b, 0x9955, 0x9a55, 0x9a4d, 0x9ad2, + 0x9b1a, 0x9c49, 0x9c31, 0x9c3e, 0x9c3b, 0x9dd3, 0x9dd7, 0x9f34, + 0x9f6c, 0x9f6a, 0x9f94, 0x56cc, 0x5dd6, 0x6200, 0x6523, 0x652b, + 0x652a, 0x66ec, 0x6b10, 0x74da, 0x7aca, 0x7c64, 0x7c63, 0x7c65, + 0x7e93, 0x7e96, 0x7e94, 0x81e2, 0x8638, 0x863f, 0x8831, 0x8b8a, + 0x9090, 0x908f, 0x9463, 0x9460, 0x9464, 0x9768, 0x986f, 0x995c, + 0x9a5a, 0x9a5b, 0x9a57, 0x9ad3, 0x9ad4, 0x9ad1, 0x9c54, 0x9c57, + 0x9c56, 0x9de5, 0x9e9f, 0x9ef4, 0x56d1, 0x58e9, 0x652c, 0x705e, + 0x7671, 0x7672, 0x77d7, 0x7f50, 0x7f88, 0x8836, 0x8839, 0x8862, + 0x8b93, 0x8b92, 0x8b96, 0x8277, 0x8d1b, 0x91c0, 0x946a, 0x9742, + 0x9748, 0x9744, 0x97c6, 0x9870, 0x9a5f, 0x9b22, 0x9b58, 0x9c5f, + 0x9df9, 0x9dfa, 0x9e7c, 0x9e7d, 0x9f07, 0x9f77, + /* 0x7d */ + 0x9f72, 0x5ef3, 0x6b16, 0x7063, 0x7c6c, 0x7c6e, 0x883b, 0x89c0, + 0x8ea1, 0x91c1, 0x9472, 0x9470, 0x9871, 0x995e, 0x9ad6, 0x9b23, + 0x9ecc, 0x7064, 0x77da, 0x8b9a, 0x9477, 0x97c9, 0x9a62, 0x9a65, + 0x7e9c, 0x8b9c, 0x8eaa, 0x91c5, 0x947d, 0x947e, 0x947c, 0x9c77, + 0x9c78, 0x9ef7, 0x8c54, 0x947f, 0x9e1a, 0x7228, 0x9a6a, 0x9b31, + 0x9e1b, 0x9e1e, 0x7c72, +}; + +static int +cns11643_1_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 >= 0x21 && c1 <= 0x27) || (c1 == 0x42) || (c1 >= 0x44 && c1 <= 0x7d)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if (c2 >= 0x21 && c2 < 0x7f) { + unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); + unsigned short wc = 0xfffd; + if (i < 3102) { + if (i < 500) + wc = cns11643_1_2uni_page21[i]; + else if (i == 571) + wc = 0x4ea0; + else if (i == 578) + wc = 0x51ab; + else if (i == 583) + wc = 0x52f9; + } else if (i < 3290) { + if (i < 3136) + wc = cns11643_1_2uni_page42[i-3102]; + } else { + if (i < 8691) + wc = cns11643_1_2uni_page44[i-3290]; + } + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + diff --git a/graf2d/win32gdk/gdk/src/iconv/cns11643_15.h b/graf2d/win32gdk/gdk/src/iconv/cns11643_15.h new file mode 100644 index 00000000000..cfe0ba69bcc --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cns11643_15.h @@ -0,0 +1,1083 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CNS 11643-1992 plane 15 + */ + +static const unsigned short cns11643_15_2uni_page21[7169] = { + /* 0x21 */ + 0x5302, 0x538c, 0x53d4, 0x54a5, 0x5392, 0x5393, 0x53d8, 0x53d9, + 0x54a7, 0x592b, 0x592c, 0x592d, 0x5930, 0x592e, 0x59ab, 0x1a01, + 0x5c2d, 0x5c6d, 0xfa34, 0x5d0f, 0x52fd, 0x5e9d, 0x64a2, 0x68d4, + 0x6e56, 0x6ec3, 0x7314, 0x52fd, 0x9a1a, 0x530f, 0x5310, 0x539a, + 0x539b, 0x52fd, 0x54ac, 0x0036, 0x5397, 0x5846, 0x0e4f, 0x5876, + 0x5877, 0x58ae, 0x593a, 0x597d, 0x6ec5, 0x5ea8, 0x52fd, 0x1afa, + 0x6541, 0x6542, 0x68d8, 0x68d9, 0x69aa, 0x69ab, 0x6c42, 0x6c41, + 0x5099, 0x6ec6, 0x52fd, 0x7035, 0x7036, 0x7037, 0xfa83, 0xb64d, + 0x52fd, 0x74b5, 0x7617, 0x7782, 0x86b6, 0x2d49, 0x8f72, 0x985c, + 0x98a8, 0x45b7, 0x68e3, 0x0006, 0x52fd, 0x53e6, 0x5444, 0x5445, + 0x1729, 0x003e, 0x54c4, 0x54c5, 0x54c6, 0x54c7, 0x54c8, 0x54c9, + 0x54ca, 0x54d4, 0x587d, 0xb572, 0x58b2, 0x58b4, + /* 0x22 */ + 0x5982, 0x59c7, 0x59c8, 0x52fd, 0x5b3c, 0x5b3d, 0x5b3e, 0x5b3f, + 0xfa24, 0x5bd3, 0x5447, 0x1a4e, 0x5d3d, 0x5de2, 0x5eb8, 0x5eb9, + 0x5ec2, 0x5eba, 0x5ec6, 0x5ebb, 0x64ad, 0x654c, 0x654d, 0x52fd, + 0x69b2, 0x69b3, 0x69b4, 0x69b5, 0x6cc3, 0x6cc4, 0x6cc5, 0x6cc6, + 0x6cc7, 0x52fd, 0x6ece, 0x6f30, 0x7047, 0x7048, 0x2281, 0x735c, + 0x52fd, 0x735f, 0x7618, 0x7619, 0x767e, 0x2410, 0x78b0, 0x7d75, + 0x2568, 0x7d76, 0x8341, 0x8442, 0x52fd, 0x86bd, 0x2842, 0x2840, + 0x18ea, 0x8e1e, 0x8e1f, 0x8f87, 0x2d62, 0x8f78, 0x9488, 0x9489, + 0x948a, 0x9917, 0x9915, 0x52fd, 0x52fd, 0x3291, 0xa3e5, 0xa909, + 0xaa3b, 0xaa4f, 0x52fd, 0xb92e, 0xb92f, 0xbdff, 0xbdfd, 0xbdfe, + 0x45bb, 0x45bc, 0x52fd, 0x5323, 0x53ea, 0x542a, 0x5449, 0x544a, + 0x544b, 0x54df, 0x54e0, 0x54e1, 0x54e2, 0x58c1, + /* 0x23 */ + 0x54e3, 0x54e4, 0x54e5, 0x58c0, 0x54e6, 0x54f7, 0x52fd, 0x54e7, + 0x54e8, 0x54e9, 0x54ea, 0x54eb, 0x580e, 0x5880, 0x5881, 0x58ba, + 0x58bb, 0x58bc, 0x58bd, 0x593f, 0x5940, 0x5988, 0xfa1f, 0x5b46, + 0x52fd, 0x5b47, 0x5b48, 0x5c36, 0x5c72, 0x5c96, 0x5d47, 0x5de7, + 0x5e34, 0x5e35, 0x5e36, 0x5e37, 0x5ee3, 0x5ee4, 0x5ee5, 0x5eeb, + 0x0175, 0x5ee6, 0x5ee7, 0x5ee8, 0x52fd, 0x52fd, 0x64b9, 0x1de8, + 0x64ba, 0x1e5b, 0x6563, 0x6564, 0x52fd, 0x6565, 0x52fd, 0x6566, + 0x657c, 0x6567, 0xfa5a, 0x6859, 0x68e9, 0x68ea, 0x68eb, 0x68ec, + 0x68ed, 0x68ee, 0x68ef, 0x69bf, 0x69cb, 0x69c3, 0x69d5, 0x69c4, + 0x69c5, 0x69d3, 0x69c6, 0x69c7, 0x69c8, 0x69c9, 0x69ca, 0x6c4a, + 0x52fd, 0x6cd1, 0x6e61, 0x6f37, 0x52fd, 0x7064, 0x7066, 0x2299, + 0x7067, 0x7068, 0x7069, 0x2297, 0x7073, 0x706a, + /* 0x24 */ + 0x706b, 0x2862, 0x52fd, 0x7372, 0x043c, 0x74b9, 0x761c, 0x7636, + 0x76bc, 0x76be, 0x76bf, 0x76c0, 0x7787, 0x78dc, 0x78dd, 0x78f5, + 0x78de, 0x78df, 0xfa9e, 0x78e0, 0x78e1, 0x78e2, 0x7d2c, 0x7d2d, + 0x25a4, 0x7da9, 0x7d9c, 0x7d9d, 0x7d9e, 0x7d9f, 0x7da0, 0x7da1, + 0x7da2, 0x52fd, 0x7da3, 0x7da4, 0x7da7, 0x8342, 0x8393, 0x8451, + 0x52fd, 0x8452, 0x8444, 0x8453, 0x8622, 0x86c6, 0x86c7, 0x86c9, + 0xfadd, 0x86ca, 0x2866, 0x86c8, 0x8e24, 0x8e25, 0x8e26, 0x52fd, + 0x8e27, 0x8e28, 0x52fd, 0x8f58, 0xfafb, 0x8fa7, 0x8f88, 0x8f89, + 0x8fa5, 0x8fa8, 0x8fa9, 0x8faa, 0x8fab, 0x8fac, 0x8fad, 0x2da3, + 0x8f79, 0x52fd, 0x9494, 0x9495, 0x9496, 0x09a5, 0x52fd, 0x9497, + 0x307f, 0x9498, 0x984e, 0x984f, 0x9919, 0x52fd, 0x9a41, 0xfb2a, + 0x9bf7, 0x9f04, 0x9f19, 0x9f17, 0xa340, 0xa3ec, + /* 0x25 */ + 0xa71b, 0xa71c, 0x36f6, 0xa90e, 0xaa52, 0xadd8, 0xb126, 0xb574, + 0x52fd, 0xb575, 0xbcc6, 0xbe0b, 0xbe0c, 0xbe0d, 0xbe0e, 0xbe0f, + 0xbe10, 0x45c8, 0xd759, 0xd75a, 0xd983, 0xd984, 0xd985, 0x52fd, + 0x4af5, 0xe120, 0xe121, 0xe122, 0xe123, 0xe124, 0xe129, 0x53f4, + 0x52fd, 0x688f, 0x5451, 0x17ab, 0x5517, 0x5518, 0x555b, 0x5519, + 0x551a, 0x0053, 0x551b, 0x551c, 0x551d, 0x551e, 0x551f, 0x5520, + 0x5521, 0x578b, 0x5788, 0x222d, 0x5885, 0xb587, 0x58c7, 0x594c, + 0x594d, 0x59fc, 0x59fd, 0x59fe, 0x59ff, 0x52fd, 0x52fd, 0x5b56, + 0x5b57, 0x5b58, 0x5b59, 0x5bdc, 0x5bdd, 0x5c73, 0x5c9d, 0x5ca1, + 0x5c9e, 0x5c9f, 0x5ca0, 0x5ce6, 0x5d51, 0x5d52, 0x5e3d, 0x5f22, + 0x1b9c, 0x5f23, 0x5f24, 0x5f25, 0x5f26, 0x5f27, 0x5f28, 0x5f29, + 0x5f2a, 0x5f2b, 0x52fd, 0x5f40, 0x5f2c, 0x5f2d, + /* 0x26 */ + 0x5f2e, 0x5f2f, 0x5f30, 0x64d0, 0x65a8, 0x6594, 0x6595, 0x6596, + 0x6597, 0x6598, 0x659c, 0x659b, 0x52fd, 0x65a1, 0x65a0, 0x6599, + 0x659a, 0x65a7, 0x1e88, 0x6864, 0x52fd, 0x6900, 0x6901, 0x52fd, + 0x52fd, 0x69e5, 0x69e9, 0x69fb, 0x69fc, 0x69ea, 0x69eb, 0x69ec, + 0x69ed, 0x69ee, 0x69ef, 0x69fa, 0x69f0, 0x69f1, 0x69f2, 0x69f3, + 0x69f4, 0x6c52, 0x6c53, 0x6c54, 0x6c55, 0x6c58, 0x6c56, 0x52fd, + 0x6cdd, 0x6cde, 0x6ce3, 0x6cdf, 0x6ce0, 0x6e22, 0x6e23, 0x6e68, + 0x6edf, 0x00ac, 0x6f44, 0x7094, 0x7095, 0x7096, 0x7097, 0x7098, + 0x7099, 0xfa79, 0x709a, 0x709b, 0x709d, 0x709e, 0x709f, 0x70a0, + 0x72f3, 0x72f2, 0x731f, 0x7388, 0x748f, 0x7490, 0x52fd, 0x74fd, + 0x74fe, 0x74ff, 0x7500, 0x7501, 0x791a, 0x52fd, 0x78e3, 0x78e4, + 0x78e5, 0x78e6, 0x78e7, 0x78eb, 0x78e8, 0x78e9, + /* 0x27 */ + 0x78ea, 0x791d, 0x7ca4, 0x7ca3, 0x7dd4, 0x7dc6, 0x7dc7, 0x7dc8, + 0x7dc9, 0x7dca, 0x7dcb, 0x7dcc, 0x7dcd, 0x05de, 0x7dce, 0x25c3, + 0x81b8, 0x81b9, 0x81ba, 0x836e, 0x83db, 0x83dc, 0x8468, 0x8469, + 0x846a, 0x846b, 0x846c, 0x846d, 0x846e, 0x2719, 0x8624, 0x8625, + 0x52fd, 0x8700, 0x86e5, 0x86f9, 0x86e7, 0x86e8, 0x86e9, 0x86fe, + 0x86ea, 0x86eb, 0x86ec, 0x0749, 0x86ed, 0x28a1, 0x86ee, 0x28a6, + 0x86ef, 0x52fd, 0x8717, 0x86f0, 0x86f1, 0x8b94, 0x8c5b, 0x8c5c, + 0x8c5d, 0x8e2f, 0x0891, 0x8e30, 0x8e31, 0x8e32, 0x8e33, 0x8fcc, + 0x8fcd, 0x8fce, 0x8fae, 0x8faf, 0x8fb0, 0x08d3, 0x8fcf, 0x8fd0, + 0x8fd1, 0x8fd2, 0x8fd3, 0x52fd, 0x8fd4, 0x09a9, 0x94a6, 0x94a7, + 0x94a8, 0x94b0, 0x94a9, 0x94aa, 0x94ab, 0x94ac, 0x94ad, 0x97fb, + 0x97fc, 0x52fd, 0x992d, 0x992e, 0x9950, 0x992f, + /* 0x28 */ + 0x9930, 0x9a65, 0x9be6, 0x9c0c, 0x9c02, 0x9c03, 0x9c04, 0x9c05, + 0x9c06, 0x52fd, 0x9ec0, 0x9f24, 0x9f25, 0xa016, 0xa032, 0xa720, + 0xa721, 0xa722, 0xa723, 0x36fe, 0xa725, 0xa919, 0xa924, 0xa91a, + 0xa91b, 0xa91c, 0xa91d, 0xfb52, 0xa91e, 0xaa5a, 0xaa5b, 0xaa5c, + 0xaa5d, 0xaa5e, 0xac31, 0x52fd, 0xb129, 0x52fd, 0xb288, 0xb289, + 0xb589, 0x3d57, 0xb656, 0xb7d1, 0xb7e6, 0xb832, 0xb833, 0xb952, + 0xb953, 0x0ed5, 0xb954, 0xb955, 0x52fd, 0x52fd, 0xbe29, 0xbe2a, + 0xbe2b, 0xbe2c, 0xbe2d, 0xfb92, 0xbe2e, 0xbe2f, 0xbe30, 0xbe31, + 0xbe32, 0xbe33, 0x3ec5, 0xbe34, 0xc49b, 0xc523, 0xc524, 0x52fd, + 0xc525, 0xc527, 0xc916, 0xcfa0, 0xd76f, 0x45df, 0xd770, 0xd771, + 0x45dc, 0x138c, 0xd772, 0xd773, 0xd774, 0xd99c, 0xd9aa, 0xd99d, + 0xd99e, 0x0c99, 0xd9ab, 0xd99f, 0xe135, 0xe138, + /* 0x29 */ + 0xf68d, 0x5335, 0x5336, 0xadee, 0x53b4, 0xf9c9, 0x5432, 0x5455, + 0x5544, 0x5545, 0x5546, 0x5547, 0x17e4, 0x5548, 0x5549, 0x52fd, + 0x554a, 0x554b, 0x554c, 0x554d, 0x554e, 0x554f, 0x5550, 0x5551, + 0xb599, 0x58d1, 0x52fd, 0x58d2, 0x58d3, 0x58d4, 0x58d5, 0x5a21, + 0x5a22, 0x5a23, 0x5b68, 0x5b69, 0x5b6a, 0x5be2, 0x5c45, 0x5cec, + 0x5ced, 0x5cee, 0x5cef, 0x52fd, 0x5d62, 0x5d63, 0x5df4, 0x536f, + 0x5e44, 0x5e45, 0x5f79, 0x1c1b, 0x5f7a, 0x5f7b, 0x5f7c, 0x5f7d, + 0x5f7e, 0x5f7f, 0x5f80, 0x0188, 0x52fd, 0x5f81, 0x5f82, 0x5f83, + 0x5f84, 0x5f85, 0x5f86, 0x5f87, 0x5f8f, 0x5f88, 0x5f89, 0x65c5, + 0x65c6, 0x1eaa, 0x65c7, 0x65c8, 0x65c9, 0x65ca, 0x65cb, 0x65cc, + 0x1eab, 0x65cd, 0x65ce, 0x65e3, 0x65cf, 0x65d0, 0x65d1, 0x65d2, + 0x65d3, 0x65c4, 0x65d4, 0x65d5, 0x65d6, 0x6820, + /* 0x2a */ + 0x6821, 0x691a, 0x6912, 0x6914, 0x6915, 0x6916, 0x6919, 0x6917, + 0x6918, 0x02c9, 0xfa61, 0x52fd, 0x6a12, 0x6a13, 0x6a14, 0x6a15, + 0x6a16, 0x6a17, 0x6a18, 0x6a19, 0x6c61, 0x6c62, 0x6c63, 0x6cf5, + 0x21a9, 0x6cf6, 0x6cf7, 0x6cf8, 0x6e29, 0x0517, 0x6f5d, 0x6f57, + 0x6f58, 0x6f59, 0x6f5a, 0x6f5b, 0x70bb, 0x70d1, 0x70bc, 0x70bd, + 0xbbdf, 0x70d0, 0x70be, 0x70bf, 0x70c0, 0x70c1, 0x70c2, 0x70c3, + 0x70c4, 0xbe6c, 0x73a1, 0x73a2, 0x73a3, 0x7493, 0x750d, 0x750f, + 0x750e, 0x7510, 0x7511, 0x7512, 0xfa95, 0x77e5, 0x792f, 0x52fd, + 0x7957, 0x7930, 0x7968, 0x792b, 0x7931, 0x7958, 0xfaa2, 0x7932, + 0x7959, 0x52fd, 0x795a, 0x7933, 0x795b, 0x795c, 0x795d, 0x791e, + 0x7cae, 0x7caf, 0x7d3b, 0x7d3c, 0x7d3d, 0x7e07, 0x7e08, 0x7e09, + 0x7e0a, 0x7e0b, 0x7e0c, 0x7e0d, 0x7e0e, 0x7e0f, + /* 0x2b */ + 0x7e10, 0x7e22, 0x7e11, 0x7e12, 0x7e13, 0x7e14, 0x7e15, 0x7e16, + 0x7e17, 0x7e18, 0xfab8, 0x52fd, 0x8346, 0x8347, 0x8348, 0x83e1, + 0x8481, 0x8483, 0x5f75, 0x52fd, 0x8485, 0x8486, 0x862a, 0xfad1, + 0x862b, 0x866b, 0x8718, 0x8719, 0x871a, 0x52fd, 0x871b, 0x871c, + 0x871d, 0x871e, 0x871f, 0x8720, 0x8721, 0x8722, 0x8723, 0x2911, + 0x8724, 0x8725, 0x8726, 0x8727, 0x8728, 0x8729, 0x872a, 0x8cef, + 0x8e49, 0x8e4a, 0x8e4b, 0x8e4c, 0x8e4d, 0x8e4e, 0x8e4f, 0x8e50, + 0x8e51, 0x8e52, 0x8e53, 0x8e54, 0x8e5a, 0x8e55, 0x8f5f, 0x9002, + 0x9003, 0x9004, 0x9005, 0x8fd5, 0x9006, 0x9007, 0x8fd6, 0x9008, + 0x9009, 0x900a, 0x900b, 0x8fd7, 0x900c, 0x900d, 0x94c8, 0x94c9, + 0x94ca, 0x94cb, 0x94cc, 0x94cd, 0x94ce, 0x94cf, 0x94d0, 0x94d1, + 0x94d2, 0x3451, 0x94d3, 0x94d4, 0x94d5, 0x94d6, + /* 0x2c */ + 0x94d7, 0x94e2, 0x94d8, 0x9804, 0x9805, 0x9806, 0x52fd, 0x9943, + 0x9944, 0x9a84, 0x9a8f, 0x9a85, 0x9a86, 0x9c2f, 0x9c1a, 0x9c1b, + 0x9c1c, 0x0abd, 0x9c1d, 0x9c1e, 0x9c1f, 0x9c20, 0x9c21, 0x9c22, + 0xfb2c, 0x9c23, 0x9c24, 0x9c0e, 0x9c25, 0x9c2b, 0x9c2c, 0x9c0b, + 0x9dee, 0x52fd, 0x9ec3, 0x9ed8, 0x9ed9, 0x9f38, 0x9f39, 0x9f3a, + 0x9f3b, 0x3453, 0x9f3c, 0x9f3d, 0x9f3e, 0x9f3f, 0x9f40, 0xa048, + 0xa04c, 0xa228, 0xa251, 0xa252, 0xa34c, 0xa423, 0xfb45, 0xa424, + 0xa731, 0xa732, 0xa733, 0x3718, 0xa734, 0xa735, 0xa736, 0xa740, + 0xa737, 0x52fd, 0xa738, 0xa73d, 0xa938, 0xa939, 0xa93a, 0xa93b, + 0xa93c, 0xa94c, 0xaa73, 0xaa74, 0x0d33, 0xaa75, 0xaa76, 0xaa79, + 0xac41, 0xac42, 0xac43, 0xad5b, 0x52fd, 0x39d7, 0x8ba6, 0xad5c, + 0xade5, 0xade6, 0xade7, 0xade8, 0xaded, 0xb130, + /* 0x2d */ + 0x3b7e, 0xb131, 0xb294, 0xb651, 0xb6fd, 0xb6fe, 0xb7e9, 0x52fd, + 0xb9b3, 0xb984, 0xb994, 0x52fd, 0xb99c, 0x52fd, 0xb985, 0xbc00, + 0xbc37, 0xbc57, 0xbe54, 0xbe68, 0xbe55, 0xbe5c, 0xbe56, 0xbe57, + 0xbe58, 0xbe59, 0xbe5a, 0xbe5b, 0xc534, 0x407e, 0xc535, 0x52fd, + 0xc539, 0xc536, 0xc537, 0xc538, 0xc8e5, 0xc959, 0x52fd, 0xc93a, + 0xc93b, 0xd028, 0xd189, 0x52fd, 0xd18a, 0xd18b, 0xd18c, 0xd18d, + 0xd2bc, 0xd5a3, 0x1344, 0xd5a4, 0xd793, 0xd794, 0xd795, 0xd796, + 0xd797, 0xd9b9, 0xe14f, 0xe150, 0xe151, 0xe376, 0x52fd, 0x53fb, + 0x5383, 0x5438, 0x545d, 0x5571, 0x52fd, 0x5577, 0x5578, 0xfa07, + 0x55c3, 0x5579, 0x557a, 0x557b, 0x557c, 0x5572, 0x557d, 0x55a0, + 0x557e, 0x557f, 0x5580, 0x5581, 0x5582, 0x5583, 0x559e, 0x5584, + 0x5585, 0x5586, 0x5587, 0x5588, 0x5793, 0x5794, + /* 0x2e */ + 0x5795, 0x57ef, 0x57f0, 0x52fd, 0x588d, 0x588f, 0x5890, 0x5891, + 0x5892, 0x58de, 0x58e1, 0x5953, 0x1966, 0x5a4a, 0x5a4b, 0x5a4c, + 0x5a51, 0x5a4d, 0x5a48, 0x5b74, 0x5b75, 0x5c20, 0x5c21, 0x5ca5, + 0x5ca6, 0x5d73, 0x5d74, 0x5e50, 0x5e51, 0x5e52, 0x5e53, 0x5fdb, + 0x5fdc, 0x1c20, 0x5fdd, 0x5fde, 0x5fff, 0x52fd, 0x52fd, 0x5fdf, + 0x5fe0, 0x1c21, 0x5fe1, 0x5fe2, 0x5fe3, 0x5fe4, 0x5fe5, 0x5fe6, + 0x5fe7, 0x5fe8, 0x5fe9, 0x5fea, 0x6607, 0x6608, 0x6609, 0x660a, + 0x660b, 0x660c, 0x660d, 0x1ed7, 0x661a, 0x660e, 0x660f, 0x6610, + 0x661c, 0x6827, 0x6866, 0x6898, 0x6899, 0x6933, 0x6924, 0x6925, + 0x6926, 0x52fd, 0x02e1, 0x6a3e, 0xfa64, 0x6a3f, 0x6a57, 0x6a40, + 0x6a41, 0x6a58, 0x6a42, 0x6a43, 0x6a44, 0x6a45, 0x6a46, 0x02e2, + 0x6a47, 0x6c6b, 0x6c6c, 0x6d10, 0x6d11, 0x21be, + /* 0x2f */ + 0x6e75, 0x6eef, 0x6f6a, 0x6f6b, 0x52fd, 0x6f6c, 0x6f6d, 0x6f6e, + 0x70ef, 0x70f0, 0x70f1, 0x70f2, 0x70f3, 0x70f4, 0x70f5, 0x70ff, + 0x70f6, 0x7102, 0x70f7, 0x7322, 0x73c4, 0x73c3, 0x7528, 0x047c, + 0x7620, 0x7625, 0x7622, 0x7623, 0x76eb, 0x04e3, 0x77f9, 0x77fa, + 0x7999, 0x799a, 0x799b, 0x7963, 0x52fd, 0x795e, 0x795f, 0x7960, + 0x799c, 0x7961, 0x799d, 0x7e54, 0x7e55, 0x7e56, 0x7e57, 0x7e58, + 0x7e59, 0x7e5a, 0x7e19, 0x7e6a, 0x7e5b, 0x7e5c, 0x7e5d, 0x7e66, + 0x52fd, 0x7e5e, 0x7e5f, 0x7e1a, 0x7e60, 0x7e61, 0x52fd, 0x7e62, + 0x7e1b, 0x7e63, 0xb710, 0xb711, 0x834c, 0x839b, 0x83eb, 0x83ec, + 0x83ed, 0x83ee, 0x84a3, 0x84a8, 0x84a6, 0x06ec, 0x862f, 0x8630, + 0x8631, 0x8632, 0x8633, 0x874f, 0x8751, 0x8752, 0x877d, 0x8753, + 0x8754, 0x8755, 0x8756, 0x8757, 0x8758, 0x8759, + /* 0x30 */ + 0x875a, 0x875b, 0x875c, 0x2957, 0x875d, 0x875e, 0x875f, 0x876f, + 0x8760, 0x8761, 0x8762, 0x8763, 0x8772, 0x8764, 0x52fd, 0x876e, + 0x8bb5, 0x8e65, 0x8e66, 0x8e67, 0x8e68, 0x8e69, 0x8e6a, 0x8e6b, + 0x8e6c, 0x900e, 0x9043, 0x52fd, 0x900f, 0x9044, 0x9045, 0x9046, + 0x9047, 0x9048, 0x9049, 0x9010, 0x904a, 0x904b, 0x904c, 0x904d, + 0x08df, 0x904e, 0x904f, 0x9050, 0x9051, 0x9052, 0x9053, 0x9054, + 0x9055, 0x9056, 0x9057, 0x9058, 0x9059, 0x905a, 0x901d, 0x905b, + 0x905c, 0x905d, 0xfb06, 0x52fd, 0x94fe, 0x94ff, 0x9500, 0x9501, + 0x9502, 0x9503, 0x9504, 0x9505, 0x9506, 0x9507, 0x9518, 0x9508, + 0x9509, 0x94f3, 0x950a, 0x950b, 0x951b, 0x950c, 0x950d, 0x950e, + 0x950f, 0x9510, 0x980f, 0x9861, 0x9879, 0x9ac1, 0x9aac, 0x9aad, + 0x9c43, 0x9c44, 0x9c45, 0x9c46, 0x9c47, 0x9c48, + /* 0x31 */ + 0x9c49, 0x9c64, 0x9c4a, 0x9c4b, 0x9c4c, 0x9c4d, 0x0ac7, 0xfb2d, + 0x9e39, 0x9f57, 0x9f58, 0x9f59, 0x9f5f, 0x9f5a, 0xa06a, 0xa22b, + 0xa25d, 0xa25e, 0xa25f, 0x52fd, 0xa260, 0xa261, 0xa358, 0xa359, + 0xa44a, 0xa44b, 0xa44c, 0xa44d, 0xa44e, 0xa757, 0xa6b3, 0xa6b4, + 0xa76e, 0xa75b, 0xa75c, 0x52fd, 0xa75d, 0xa75e, 0x52fd, 0xa76c, + 0xa93d, 0xa954, 0xa93e, 0xa955, 0xa956, 0xa93f, 0xa957, 0xa958, + 0xa959, 0xa95a, 0xa95b, 0xa95c, 0xaa88, 0xaa89, 0x52fd, 0xac58, + 0xac59, 0xac5a, 0x52fd, 0xad67, 0xad68, 0xad69, 0xad6a, 0x52fd, + 0xad6b, 0xad6c, 0xadfe, 0xadff, 0xae00, 0xae01, 0xae02, 0xae03, + 0xae04, 0xae05, 0xb139, 0xb13a, 0xb13b, 0xb13c, 0x52fd, 0x52fd, + 0xb2b2, 0xb2b3, 0xb2b4, 0xb2b5, 0xb2b6, 0xb2b7, 0xb2b8, 0x3d3c, + 0xb5a2, 0xb661, 0xb662, 0xb714, 0x52fd, 0xb7eb, + /* 0x32 */ + 0xb842, 0xb848, 0x52fd, 0xb843, 0xb84e, 0xb844, 0xb845, 0xb9b4, + 0xb9b5, 0x52fd, 0x52fd, 0x52fd, 0xb9b6, 0x52fd, 0xbbe1, 0xbc05, + 0x52fd, 0x3e73, 0xbe9a, 0x52fd, 0xbe9b, 0xbe9c, 0xbe9d, 0xbe9e, + 0xbe9f, 0xfb9a, 0xbea0, 0xbea1, 0xbea2, 0xbeb5, 0xbea3, 0xbea4, + 0x52fd, 0xbea5, 0xbea6, 0xbea7, 0xbea8, 0xbeaf, 0xbea9, 0xbeaa, + 0xbeab, 0xbeac, 0xbead, 0xbeb3, 0x52fd, 0xc4a0, 0xc556, 0xc934, + 0x1127, 0xc93c, 0xcb0c, 0x52fd, 0xcf3e, 0xcfa3, 0xd030, 0xd031, + 0xd197, 0xd198, 0xd199, 0xd19a, 0xd19b, 0xd5b2, 0xd5ab, 0xd5ac, + 0xd9fc, 0xd9e8, 0xd9e9, 0xd9ea, 0xdaf1, 0xdc3f, 0xdfce, 0xe16d, + 0xe16e, 0xe16f, 0xe170, 0xe171, 0xe172, 0xe173, 0x4bbe, 0xe378, + 0xeb3a, 0x5467, 0x27fa, 0x5464, 0x5465, 0x5607, 0x55c4, 0x55c5, + 0x55c6, 0x55c7, 0x55c8, 0x55c9, 0x55e5, 0x55ca, + /* 0x33 */ + 0x55cb, 0x52fd, 0x55cc, 0x55cd, 0x55ce, 0x55cf, 0x55d0, 0x5797, + 0x579a, 0x579b, 0x58ea, 0x58ec, 0x58ed, 0x58f7, 0x58ee, 0x58ef, + 0x595b, 0x595c, 0x595d, 0x5a6d, 0x5a6e, 0x52fd, 0x5a6f, 0x5b81, + 0x5b82, 0x5c4f, 0x5cad, 0xda0a, 0x5d7e, 0x5e69, 0x6054, 0x6055, + 0x6056, 0x6057, 0x01ab, 0x6058, 0x6059, 0x605a, 0x605b, 0x605c, + 0x605d, 0x52fd, 0x52fd, 0x605e, 0x605f, 0x663b, 0x6636, 0x663c, + 0x663d, 0x663e, 0x663f, 0x6640, 0x6641, 0x6642, 0x024b, 0x6643, + 0x6644, 0x6645, 0x6637, 0x52fd, 0x52fd, 0x6646, 0x6647, 0x6648, + 0x6649, 0x682d, 0x68a5, 0x693d, 0x693f, 0x6c6e, 0x6ae7, 0x6a75, + 0x6a76, 0x6a77, 0x6a78, 0x6a79, 0x6a7a, 0x6a7b, 0x6a7c, 0x6a8e, + 0x6a7d, 0x6a7e, 0x2072, 0x6a7f, 0x6a80, 0x6a81, 0x6a82, 0x6a83, + 0x6a84, 0x6a85, 0x6a86, 0x6a87, 0x6a88, 0x6a89, + /* 0x34 */ + 0x6a8a, 0x6a8b, 0x6a8c, 0x6c6f, 0x6c70, 0x6c71, 0x6c72, 0x6d2a, + 0x6d2b, 0x6d2c, 0x6d2d, 0x6d2e, 0x6d2f, 0x6d30, 0x6d31, 0x6e83, + 0x6f84, 0x6f85, 0x6f93, 0x52fd, 0x6f86, 0x6f87, 0x6f88, 0x6f89, + 0x6f8a, 0x6f8b, 0x7136, 0x7138, 0x7139, 0x713a, 0x03e2, 0x713b, + 0x713c, 0x713d, 0x713e, 0x713f, 0x52fd, 0x7140, 0x7141, 0x7142, + 0x73de, 0x73df, 0x73e0, 0x73e1, 0x754a, 0x754b, 0x754c, 0x754d, + 0x754e, 0x754f, 0x7550, 0x7627, 0x76f9, 0x76fa, 0x76fb, 0x7798, + 0x7799, 0x779a, 0x52fd, 0x781e, 0x799e, 0x79f7, 0x799f, 0x79a0, + 0x79f0, 0x79f8, 0x79f9, 0x79a1, 0x79a2, 0x79a3, 0x79a4, 0x79a5, + 0x79fa, 0x79fb, 0x79fc, 0x79fd, 0x79fe, 0x7a1f, 0x79ff, 0x7a00, + 0x7a8c, 0x7a01, 0x7cc2, 0x7cc3, 0x52fd, 0x7cd3, 0x7d4e, 0x7eaf, + 0x7eb0, 0x7eb1, 0x7eb2, 0x7eb3, 0x7ec6, 0x7eb4, + /* 0x35 */ + 0x52fd, 0x7eb5, 0x7eb6, 0x7eb7, 0x7eb8, 0x7eb9, 0x7eba, 0x7ebb, + 0x7ebc, 0x7ebd, 0x7ebe, 0x7ebf, 0x7ec1, 0x7ec0, 0x7ec2, 0x7ec3, + 0x8251, 0x8252, 0x8253, 0x8254, 0x8255, 0x835a, 0x8350, 0x8351, + 0x8378, 0x83f8, 0x83f9, 0x84c6, 0x84cb, 0x84cc, 0x84cd, 0x84ce, + 0x84cf, 0x84d0, 0x84d1, 0x84d2, 0x84d3, 0x84d4, 0x84d5, 0x52fd, + 0x8637, 0x8638, 0x8673, 0x8790, 0x8791, 0x87bf, 0x8792, 0x8793, + 0x8794, 0x8795, 0x8796, 0x8797, 0x8798, 0x8799, 0x29bd, 0x879a, + 0x879b, 0x879c, 0x879d, 0x879e, 0x879f, 0x87a0, 0x87a1, 0x87a2, + 0x87a3, 0x87a4, 0x87a5, 0x52fd, 0x87a6, 0x87a7, 0x8bbf, 0x8bc0, + 0x8bc1, 0x8bc2, 0x8bc3, 0x8bc4, 0x8bc5, 0x8bc6, 0x8c75, 0x8d43, + 0x8d12, 0x8d9f, 0x8d91, 0xfaf6, 0x8d92, 0x8d93, 0x8d94, 0x8e7e, + 0x8e7f, 0x8e80, 0x8e81, 0x8e82, 0x8f4c, 0x8f63, + /* 0x36 */ + 0x90c0, 0x90c1, 0x90c2, 0x953a, 0x90c3, 0x90c4, 0x90c5, 0x90c6, + 0x2e15, 0x90c7, 0x52fd, 0x90c8, 0x9073, 0x90c9, 0x90ca, 0x90cb, + 0x90cc, 0x90cd, 0x090e, 0x52fd, 0x52fd, 0x90ce, 0x90cf, 0x90d0, + 0x90d1, 0x90d2, 0x90d3, 0x90d4, 0x90d5, 0x953b, 0x953c, 0x953d, + 0x953e, 0x52fd, 0x953f, 0x9540, 0x9541, 0x9542, 0x9543, 0x09c1, + 0x9544, 0x9545, 0x9559, 0x9546, 0x9547, 0x9548, 0x52fd, 0x9549, + 0x9813, 0x9882, 0x9883, 0x9966, 0x9967, 0x9c65, 0x3313, 0x9c66, + 0x0ad9, 0x9c75, 0x9c74, 0x9c67, 0x9c6d, 0x9c76, 0x9c68, 0x9c69, + 0x9c6a, 0x9c6b, 0x9c4f, 0x9c6c, 0x9df8, 0x9e45, 0x33f8, 0x9e46, + 0x9ee4, 0x9f85, 0x9f6f, 0x9f70, 0xa082, 0xa083, 0xa084, 0xa08b, + 0xa22d, 0xa268, 0xa269, 0xa277, 0xa264, 0xa26a, 0x52fd, 0xa2f2, + 0xa2e2, 0xa363, 0xa364, 0xa365, 0xa366, 0x3a3d, + /* 0x37 */ + 0xa367, 0xa368, 0x35d8, 0x52fd, 0xa472, 0xa47d, 0xa669, 0xa784, + 0xa786, 0xa787, 0xa788, 0xa79e, 0x52fd, 0xa789, 0xa78a, 0xa796, + 0xa78b, 0xa78c, 0xa78d, 0xa979, 0xa983, 0xa97a, 0xa95d, 0xa97b, + 0x52fd, 0xaa9f, 0x0d48, 0xaaa0, 0xaaa1, 0xaaa2, 0x38fc, 0xac6a, + 0xac6b, 0xac6c, 0xac6d, 0xac6e, 0xad78, 0x52fd, 0xad79, 0xad7c, + 0xae21, 0xae22, 0xae23, 0xae24, 0x3a39, 0xae25, 0xae26, 0xb151, + 0xb152, 0xb156, 0x52fd, 0x3c4b, 0xb2e1, 0x52fd, 0x52fd, 0xb2d6, + 0xb2d7, 0xb2d8, 0xb2d9, 0xb5b5, 0xb66c, 0xb66f, 0xb670, 0xb7bc, + 0xb7bd, 0xb7ed, 0xb85b, 0xb85c, 0xb85d, 0xb85e, 0xb986, 0xb987, + 0xb9ed, 0x52fd, 0xb9ee, 0x52fd, 0xbc0e, 0xbc0f, 0x52fd, 0xbd2d, + 0xbd2a, 0xbd2e, 0xbdcc, 0xbef9, 0xbefa, 0xbefb, 0xbefc, 0x3fb9, + 0xbefd, 0xbf1b, 0xbefe, 0xbeff, 0xbf00, 0xbf01, + /* 0x38 */ + 0xbf02, 0xbf03, 0xbf21, 0xbf04, 0xbf05, 0xbf06, 0xbf07, 0xbf08, + 0xbf09, 0xbf0a, 0xbf0b, 0xbf0c, 0xbf0d, 0xbf0e, 0xbf0f, 0xbf10, + 0xbf11, 0xbf12, 0xbf13, 0xbf14, 0xbf15, 0xc57b, 0xc57c, 0xc57d, + 0xc57e, 0x40cf, 0xc57f, 0xc580, 0xc566, 0xc581, 0xc582, 0xc583, + 0xc8b2, 0x52fd, 0xc97f, 0xc972, 0xc95a, 0xcaeb, 0xcb15, 0x52fd, + 0xcb16, 0xfbca, 0xcb17, 0x52fd, 0xcbc5, 0xcbc6, 0xcbc7, 0xcc88, + 0xcc89, 0x52fd, 0xcc8a, 0xcc8b, 0xcc8c, 0xcc8d, 0xcedf, 0x52fd, + 0xd03b, 0xd03c, 0xd03d, 0xd03e, 0xd03f, 0xd040, 0xd041, 0xd042, + 0xd15c, 0xd1af, 0xd1a9, 0xd1aa, 0xd1ab, 0xd1ac, 0xd1b5, 0xd1ad, + 0xd1ae, 0xd2e2, 0xd524, 0x44ae, 0xd5c4, 0x52fd, 0xd7ea, 0xd7d3, + 0xd7d4, 0xd7d5, 0xd986, 0x52fd, 0xd987, 0xd9fd, 0xdb05, 0xdc49, + 0xdf5f, 0xdfd3, 0xdfd5, 0xe18a, 0xe18b, 0xe18c, + /* 0x39 */ + 0xe18d, 0xe18e, 0xe18f, 0xe190, 0xe191, 0xe192, 0xe193, 0xe37d, + 0xe37e, 0x4beb, 0x52fd, 0x52fd, 0xe4ec, 0xe55b, 0xef87, 0xef86, + 0x52fd, 0x5346, 0x5347, 0x5402, 0x546d, 0x546e, 0x546f, 0x560d, + 0x560e, 0x560f, 0x5610, 0x5611, 0x5612, 0x5613, 0x5614, 0x579f, + 0x57a0, 0x57a1, 0x57a3, 0x5821, 0x5822, 0x867c, 0x5895, 0x5896, + 0x5961, 0x5967, 0x5a91, 0x5a92, 0x5a93, 0x5a94, 0x5b8a, 0x5b8b, + 0x5bf7, 0x5c24, 0x5cb0, 0x5cb1, 0x5d8e, 0x5e04, 0x5e6a, 0x5e6b, + 0x5e6c, 0x5e6d, 0x60e8, 0x610c, 0x60e9, 0x60ea, 0x610d, 0x52fd, + 0x60eb, 0x60ec, 0x60ed, 0x60ee, 0x60ef, 0x60f0, 0x60f1, 0x60f2, + 0x6116, 0x60f3, 0x6104, 0x611d, 0x60f4, 0x60f5, 0x60f6, 0x60f7, + 0x1cb0, 0x6502, 0x6503, 0x6504, 0x669a, 0x667c, 0x66c5, 0x667d, + 0x667e, 0x667f, 0x6680, 0x6681, 0x1f40, 0x1f42, + /* 0x3a */ + 0x6682, 0x6683, 0x6684, 0x6685, 0x6686, 0x6687, 0x68ae, 0x694d, + 0x6ab0, 0x6adc, 0x6ab6, 0x6ab7, 0x6ab8, 0x6ab9, 0x6aba, 0x6abb, + 0x6adb, 0x6abc, 0x6abd, 0x6abe, 0x52fd, 0x6abf, 0x6ac0, 0x6ac1, + 0x6ac2, 0x6ac3, 0x6ace, 0x0301, 0x6ad9, 0x6ac4, 0x6ac5, 0x6ada, + 0x6ac6, 0x6ac7, 0x6ac8, 0x6ac9, 0x6aca, 0x6c7e, 0x6c7b, 0x6d4e, + 0x6d4f, 0x6d50, 0x6d51, 0x6d52, 0x6d53, 0x6d54, 0x6d55, 0x6e8f, + 0x6efc, 0x6fa6, 0x6fa7, 0x6fa8, 0x7023, 0x718b, 0x52fd, 0x718c, + 0x718d, 0x718e, 0x718f, 0x71a4, 0x5899, 0x7324, 0x7346, 0x7347, + 0x7348, 0x73fd, 0x73fe, 0x52fd, 0x756e, 0x757c, 0x756f, 0x7570, + 0x7571, 0x7572, 0x7629, 0x762a, 0x765f, 0x77a2, 0x7830, 0x782b, + 0x7a61, 0x7a02, 0x7a03, 0x7a04, 0x7a05, 0x7a06, 0x7a07, 0x52fd, + 0x7a08, 0x7a09, 0x7a62, 0x7a0a, 0x7a0b, 0x7a0c, + /* 0x3b */ + 0x7a0d, 0x7a0e, 0x7a63, 0x7a27, 0x7a0f, 0x52fd, 0x7a1b, 0x7a64, + 0x7a10, 0x7a11, 0x7a81, 0x7a12, 0x7a65, 0x7a13, 0x7cce, 0x7f29, + 0x7ec4, 0x7f2a, 0x52fd, 0x7f2b, 0x7f2c, 0x7f2d, 0x7f2e, 0x7f2f, + 0x7f30, 0x7f31, 0x7f32, 0x7f33, 0x7f34, 0x52fd, 0x7f35, 0x7f36, + 0x7ee3, 0x7f37, 0x7f38, 0x7f39, 0x7f3a, 0x7f3b, 0x7f4d, 0x7f3c, + 0x7f3d, 0x7f3e, 0x52fd, 0x81d0, 0x81d1, 0x8355, 0x8402, 0x8404, + 0x84fc, 0x8507, 0x84fd, 0x84fe, 0x52fd, 0x84ff, 0x8500, 0x8508, + 0x8501, 0x8502, 0x8535, 0x8503, 0x8504, 0x52fd, 0x863b, 0x8689, + 0x8681, 0x8682, 0xba33, 0x87eb, 0x87ec, 0x52fd, 0x87ed, 0x87ee, + 0x87ef, 0x52fd, 0x87f0, 0x87f1, 0x87f2, 0x2a2b, 0x87f3, 0x2a16, + 0x87f4, 0x87f5, 0x534b, 0x87f6, 0x87f7, 0x87f8, 0x87f9, 0x87fa, + 0x87fb, 0x87fc, 0x87fd, 0x87fe, 0x87ff, 0x8800, + /* 0x3c */ + 0x2a1b, 0x8801, 0x8802, 0x8803, 0x8804, 0x8805, 0x8806, 0x8807, + 0x2a27, 0x8808, 0x8809, 0x880a, 0x880b, 0x880c, 0x880d, 0x8bd7, + 0x8bd8, 0x8d29, 0x8d9c, 0x8df8, 0x8e98, 0x8ea4, 0x8e99, 0x8e9a, + 0x8e9b, 0x8e97, 0x8e9c, 0x2cf5, 0x8e9d, 0x52fd, 0x8e9e, 0x8e9f, + 0x8f65, 0x90d6, 0x0920, 0x9132, 0x9133, 0x9134, 0x2e82, 0x9135, + 0x9136, 0x9137, 0x90d7, 0x52fd, 0x90d8, 0x9138, 0x9139, 0x913a, + 0x913b, 0x913c, 0x913d, 0x913e, 0x913f, 0x9140, 0x90d9, 0x9141, + 0x9142, 0x0921, 0x9143, 0x9144, 0x2e7a, 0x957c, 0x957d, 0x957e, + 0x957f, 0x9580, 0x9581, 0x9582, 0x52fd, 0x9583, 0x9584, 0x9585, + 0x9586, 0x95a5, 0x9587, 0x9588, 0x9589, 0x958a, 0x958b, 0x958c, + 0x958d, 0x958e, 0x52fd, 0x52fd, 0x958f, 0x52fd, 0x9590, 0x9591, + 0x9592, 0x9593, 0x9594, 0x9595, 0x52fd, 0x3129, + /* 0x3d */ + 0x9596, 0x9856, 0x9857, 0x98e1, 0x990e, 0x990f, 0x997a, 0x997b, + 0x998b, 0x9af2, 0x9af3, 0x9c93, 0x9c94, 0x9c95, 0x9c96, 0x9c97, + 0x9cad, 0x9c98, 0x9cab, 0x9c7b, 0x9c99, 0x9c9a, 0x9c9b, 0x9c85, + 0x9c9c, 0x9c9d, 0x0ada, 0x52fd, 0x9cac, 0x9c79, 0x9c9e, 0x9ca4, + 0x9dfd, 0x9eeb, 0x9eea, 0x9f8f, 0x9f90, 0x9f86, 0x9f87, 0x9f88, + 0xa0ac, 0xa0ad, 0xa2ec, 0xa373, 0xa374, 0x52fd, 0xa4aa, 0xa4ab, + 0xa4ac, 0xa6d1, 0xa6d7, 0xa7b9, 0xa7ba, 0xa7bb, 0xa7bc, 0xa98e, + 0xa98f, 0xa990, 0xa97c, 0xa991, 0xa992, 0xa993, 0xa994, 0xfb54, + 0xa99a, 0xa995, 0xa996, 0xa997, 0xaabd, 0xaac7, 0xaabe, 0x52fd, + 0xaabf, 0x52fd, 0xac93, 0x6d5e, 0xad86, 0xad87, 0xad88, 0xad89, + 0xae41, 0xae42, 0xae43, 0xae44, 0xae45, 0xae46, 0xae4a, 0xae47, + 0xae48, 0xae49, 0xb16b, 0xb166, 0x52fd, 0xb167, + /* 0x3e */ + 0x3bab, 0xb168, 0x3bac, 0x52fd, 0xb2fd, 0xb2fe, 0xb2ff, 0xb300, + 0xb301, 0xb302, 0xb303, 0xb304, 0xb305, 0xb306, 0xb533, 0xb5c2, + 0xb5d0, 0xfb74, 0xb695, 0xb696, 0xb735, 0xb736, 0xb867, 0xb868, + 0xb869, 0xb86a, 0xb872, 0xb86b, 0xb86c, 0xb86d, 0xb86e, 0xb86f, + 0xba22, 0x52fd, 0x52fd, 0xba23, 0xba41, 0xba24, 0xba25, 0xba26, + 0xba27, 0xba28, 0xba29, 0xb9b7, 0x52fd, 0x52fd, 0x52fd, 0xbcda, + 0xbdcf, 0xbdda, 0xbf89, 0xbfb7, 0xbf8a, 0xbf8b, 0xc05e, 0xbf8c, + 0x52fd, 0xbf8d, 0xbf8e, 0xbf8f, 0xbf90, 0xbf91, 0xbf92, 0xbf93, + 0xbf94, 0xbfb6, 0xbf95, 0xbf96, 0xbf97, 0x3ff7, 0x52fd, 0xbf98, + 0xbf99, 0xbf9a, 0x0fea, 0x52fd, 0xbf9b, 0xbfbd, 0xbf9c, 0xbf9d, + 0xbf9e, 0xbf9f, 0xbfc0, 0xbfa0, 0xbfa1, 0xbfa2, 0xbfa3, 0xbfa4, + 0xbfa5, 0xbfa6, 0xbfa7, 0xbfa8, 0xbfa9, 0xbfaa, + /* 0x3f */ + 0x52fd, 0xc4b4, 0xc4b5, 0xc4b6, 0xc5b9, 0xc5ba, 0xc5bb, 0xc591, + 0xc5bc, 0xc8ee, 0xc8ef, 0xc996, 0xc997, 0xc973, 0xc998, 0xc999, + 0xcaed, 0xcaee, 0xcbde, 0xccb0, 0xccb1, 0xccb2, 0xccb3, 0xccb4, + 0xccb5, 0xccb6, 0xfbce, 0xccb7, 0xcee3, 0xcfb9, 0xd055, 0xd07e, + 0xd056, 0xd057, 0xd058, 0xd059, 0xd05a, 0x52fd, 0xd1c4, 0xd1c5, + 0xd1c6, 0xd1c7, 0xd1c8, 0xd1c9, 0xd1ee, 0xd1cf, 0xd1ca, 0xd1cb, + 0xd1cc, 0xd309, 0xfbda, 0xd303, 0xd52f, 0xd530, 0xd531, 0xd532, + 0xd80e, 0xd80f, 0xd810, 0xd811, 0xd812, 0x52fd, 0xd813, 0xd814, + 0xd815, 0xd7ff, 0xda1f, 0xda20, 0xda21, 0xda2d, 0x52fd, 0xdb1b, + 0xdb1c, 0xdb1d, 0xdb1e, 0xdc53, 0xdc54, 0xdc55, 0xdc56, 0xdc64, + 0xdc59, 0xdc57, 0x52fd, 0xdc58, 0xdf6b, 0x1489, 0x52fd, 0xdfe7, + 0xdfe8, 0xdfe9, 0xdfea, 0xdfeb, 0xdfec, 0x4a96, + /* 0x40 */ + 0xdfed, 0xe1b1, 0xe1b4, 0x52fd, 0xe38a, 0xe38d, 0xe38c, 0xe4f2, + 0xe4f3, 0x52fd, 0x7408, 0xe717, 0x15b2, 0xe89f, 0xe9a0, 0x52fd, + 0xeb6d, 0x837d, 0xf290, 0xf8c4, 0x534c, 0x5474, 0x5475, 0x5476, + 0x5649, 0x564a, 0x564b, 0x564c, 0x564d, 0x564e, 0x564f, 0x5650, + 0x5651, 0x5652, 0x5653, 0x5654, 0x5655, 0x5656, 0x57a4, 0x57a9, + 0x582a, 0x582b, 0x5ab3, 0x5ac1, 0x5b98, 0x5bfb, 0x5bfc, 0x5cbc, + 0x5d96, 0x5e0a, 0x52fd, 0x61a2, 0x52fd, 0x6181, 0x6182, 0x6183, + 0x6184, 0x6185, 0x6186, 0x6187, 0x6188, 0x6189, 0x618a, 0x618b, + 0x618c, 0x1cf1, 0x618d, 0x61d1, 0x6514, 0x66c9, 0x66ca, 0x66cb, + 0xedfd, 0x66cc, 0x66cd, 0x66ce, 0x66cf, 0x66d0, 0x66d1, 0x66d2, + 0x66d3, 0x66d4, 0x66d5, 0x6871, 0x534d, 0x6962, 0x6b0e, 0x6afe, + 0x6aff, 0x6b00, 0x52fd, 0x6b01, 0x6b02, 0x6b03, + /* 0x41 */ + 0x6b15, 0x6b04, 0x6b05, 0x52fd, 0x6c87, 0x6c89, 0x6d6e, 0x6d6f, + 0x6d70, 0x6d71, 0xfa6e, 0x6d72, 0x6d73, 0x6d74, 0x6e9d, 0x6fb8, + 0x6fb9, 0x6fba, 0x71c2, 0x71c3, 0x71d5, 0x71c4, 0x71c0, 0x71c5, + 0x71c6, 0x758a, 0x758b, 0x758c, 0x7664, 0xae8c, 0x2441, 0x770d, + 0x77a8, 0x783b, 0x783c, 0x783d, 0x783e, 0x783f, 0x7840, 0x7a66, + 0x7acb, 0x7ab7, 0x7ab8, 0x7ab9, 0x7aba, 0x7a67, 0x7abb, 0x7a68, + 0x7a69, 0x7a6a, 0x7abc, 0x52fd, 0x7cdb, 0x7f81, 0x7f82, 0x7f83, + 0x7f84, 0x7f85, 0x7f86, 0x7f87, 0x7f88, 0x7f89, 0xfabf, 0x7f8a, + 0x7f8b, 0x52fd, 0x7f8c, 0x7f8d, 0x7f8e, 0x7f8f, 0x7f90, 0x7fa1, + 0x7f91, 0x81d6, 0x829f, 0x8358, 0x8385, 0x840b, 0x840c, 0x8537, + 0x8538, 0xface, 0x8539, 0x853a, 0x853b, 0x853c, 0x853d, 0x853e, + 0x8540, 0x8541, 0x8542, 0x52fd, 0x8543, 0x868a, + /* 0x42 */ + 0x868b, 0x8890, 0x8859, 0x885b, 0x885c, 0x885d, 0x885e, 0x2a8a, + 0x885f, 0x8860, 0x8861, 0x8862, 0x8863, 0x8864, 0x8893, 0x8865, + 0x8866, 0x8867, 0x8868, 0x8869, 0x886a, 0x886b, 0x8895, 0x886c, + 0x886d, 0x886e, 0x886f, 0x2a8c, 0x8870, 0x8871, 0x8872, 0x8873, + 0x8874, 0x8875, 0x8876, 0x8877, 0x8878, 0x8879, 0x2a80, 0x887a, + 0x2a7f, 0x887b, 0x88a9, 0x887c, 0x8bf1, 0x8beb, 0x8c8a, 0x8d3d, + 0x8da6, 0x8da7, 0x8eba, 0x52fd, 0x8ebb, 0x8ebc, 0x8ebd, 0x9191, + 0x9192, 0x9193, 0x9194, 0x9195, 0x9196, 0x9197, 0x90da, 0x9198, + 0x9199, 0x919a, 0x52fd, 0x52fd, 0x919b, 0x919c, 0x919d, 0x919e, + 0x919f, 0x91a0, 0x91bf, 0x91a1, 0x91a2, 0x91a3, 0x91a4, 0x91a5, + 0x91a6, 0x91a7, 0x915b, 0xfb0d, 0x91a8, 0x95cb, 0x52fd, 0x09da, + 0x95cc, 0x964f, 0x95cd, 0x95ce, 0x95cf, 0x964e, + /* 0x43 */ + 0x95d0, 0x95d1, 0x95d2, 0x52fd, 0x95d3, 0x95d4, 0x95d5, 0x95d6, + 0x95d7, 0x95d8, 0x95d9, 0x95fa, 0x95da, 0x95db, 0xfb1c, 0x95dc, + 0x52fd, 0x52fd, 0x95dd, 0x95de, 0x95df, 0x95e0, 0x95e1, 0x95e2, + 0x95e3, 0x95e4, 0x95e5, 0x09db, 0x95e6, 0x95e7, 0x988e, 0x9998, + 0x9999, 0x52fd, 0x9b0a, 0x52fd, 0x9b26, 0x9b27, 0x9cbd, 0x9cdf, + 0x0ae2, 0x9cbe, 0x9cde, 0x9cbf, 0x9cc0, 0x9cc1, 0x9cc2, 0x9c9f, + 0x9cc3, 0x9cc4, 0x9cc5, 0x9cc6, 0x9cc7, 0x0ae3, 0x9cc8, 0x9cc9, + 0x9ce3, 0x9cca, 0x9ccb, 0x9ccc, 0x9ccd, 0x9cce, 0x9ccf, 0x9cd0, + 0x9cd1, 0x9cd2, 0x9cd3, 0xfb2f, 0x9cd4, 0x9e04, 0x9e65, 0x9eee, + 0x9fa0, 0x9fa1, 0xa0dd, 0xa0de, 0xa283, 0xa2fa, 0xa37f, 0xa380, + 0xa4e8, 0xa4e9, 0xa4ea, 0x88a6, 0xa6e1, 0x52fd, 0xa7db, 0xa7dc, + 0xa7dd, 0xa7de, 0xa7df, 0xa7e0, 0xa7e1, 0xa7e2, + /* 0x44 */ + 0xa7e3, 0xa7e4, 0xa7e5, 0xa7e6, 0x379c, 0xa7e7, 0xa9b0, 0xa998, + 0xa9b1, 0xa999, 0xa9b2, 0xa9b3, 0xa9b4, 0xa9b5, 0xa9b6, 0xa9b7, + 0xa9b8, 0xa9b9, 0xaae2, 0xaae3, 0xaae4, 0xaae5, 0xaae6, 0xaae7, + 0xaae8, 0xaae9, 0xacad, 0xaccf, 0xacae, 0xacaf, 0xacb0, 0xacb1, + 0xad92, 0xad93, 0xad94, 0xae79, 0x3a7b, 0xae7a, 0xae7b, 0xae7c, + 0xae7d, 0xae7e, 0xae7f, 0xae80, 0xae81, 0xae82, 0xae83, 0xae84, + 0xb197, 0xb184, 0xb185, 0xb189, 0xb186, 0xb187, 0xb32c, 0xb32d, + 0xb32e, 0xb32f, 0xb330, 0xb331, 0xb332, 0xb333, 0xb334, 0xb335, + 0xb336, 0xb337, 0xb5d2, 0xb744, 0xb800, 0xb883, 0xb884, 0xfb86, + 0xba7a, 0xba7b, 0xba7c, 0xba7d, 0xba7e, 0x52fd, 0xba7f, 0xba87, + 0xba80, 0xbd43, 0xc034, 0x1249, 0xc035, 0xc036, 0xc037, 0xc038, + 0xc039, 0xc03a, 0xc03b, 0xc03c, 0xc03d, 0xc03e, + /* 0x45 */ + 0xc03f, 0xc040, 0xc041, 0xc042, 0xc043, 0xc044, 0xc045, 0xc046, + 0xc047, 0xc048, 0xc049, 0xc04a, 0x52fd, 0xc04b, 0xc04c, 0xc04d, + 0xc04e, 0xc5e7, 0xc5e8, 0xc5e9, 0xc5ea, 0xc5eb, 0xc5ec, 0xc5ed, + 0xc5ee, 0xc8f7, 0xc99a, 0xc9cd, 0xfbc8, 0xc9a3, 0xc9ce, 0xcb31, + 0xcb32, 0xcb33, 0xcce4, 0x52fd, 0xcce5, 0xcce6, 0xcfc8, 0xd074, + 0xd075, 0xd076, 0xd077, 0xd078, 0xd079, 0xd07a, 0xd161, 0xd1df, + 0xd1e0, 0xd1e1, 0xd1e2, 0xd1e3, 0xd1e4, 0xd1e5, 0xd1e6, 0x12f3, + 0xd331, 0xd53d, 0xd53e, 0xd53f, 0xd5f4, 0xd5f5, 0xd5f6, 0x52fd, + 0xd717, 0xd841, 0xd842, 0xd843, 0xd844, 0xd845, 0xd846, 0xd847, + 0xd848, 0xd849, 0xd84a, 0xd84b, 0x46d2, 0xd9ba, 0xda44, 0xdc2a, + 0xdc6d, 0x4774, 0xfbe7, 0xdc7e, 0xdc6e, 0xdc6f, 0xdc70, 0xdc71, + 0xdc76, 0xdf79, 0x4aa0, 0x52fd, 0xe004, 0xdff8, + /* 0x46 */ + 0xe005, 0xe1da, 0xe1db, 0xe1dc, 0xe1dd, 0xe1de, 0xe1df, 0xe1e0, + 0xe1e1, 0xe3c5, 0xe39a, 0xe39b, 0xe39c, 0xe4d8, 0xe4d9, 0xe4da, + 0xe56e, 0x1557, 0xe76b, 0xd083, 0x52fd, 0xe9d6, 0xe9bd, 0x52fd, + 0x852e, 0xedfc, 0xf053, 0xf0b7, 0xf58c, 0xf68e, 0xf5ff, 0x5376, + 0x5406, 0x547e, 0x5684, 0x5685, 0x5686, 0x5687, 0x5688, 0x56a7, + 0x5689, 0x568a, 0x568b, 0x568c, 0x568d, 0x568e, 0x568f, 0x56a3, + 0x5690, 0x5691, 0x5692, 0x5693, 0x56ac, 0x5694, 0x5695, 0x5696, + 0x57aa, 0x57ab, 0x589e, 0x18a9, 0x5908, 0x5909, 0x5968, 0x5969, + 0x596a, 0x599a, 0x5ad9, 0x5ada, 0x5adb, 0x5ba8, 0x5c01, 0x5c28, + 0x5c77, 0x5cbd, 0x5cbe, 0x6260, 0x5da0, 0x5da2, 0x5e0f, 0x5e85, + 0x61fe, 0x61ff, 0x6200, 0x6201, 0x6216, 0x6202, 0x6203, 0x6204, + 0x6205, 0x6206, 0x6207, 0x6208, 0x6222, 0x6209, + /* 0x47 */ + 0x620a, 0x620b, 0x620c, 0x6214, 0x6229, 0x616e, 0x620d, 0x620e, + 0x620f, 0x6210, 0x6211, 0x6212, 0x6213, 0x651b, 0x651c, 0x651d, + 0x6713, 0x66ff, 0x6700, 0x6701, 0x6702, 0x6703, 0x6704, 0x670a, + 0x6705, 0x6706, 0x6707, 0x6708, 0x683a, 0x6873, 0x696f, 0x6970, + 0x6971, 0x5352, 0x52fd, 0x6d9a, 0x6b60, 0xfa69, 0x6b2b, 0x6b24, + 0x6b2c, 0x6b2d, 0x6b2e, 0x6b2f, 0x6b30, 0x6b31, 0x6b32, 0x6b33, + 0x6b34, 0x6b35, 0x6b45, 0x6b36, 0x6c92, 0x6c93, 0x6d88, 0x6d89, + 0x6d8a, 0x6d8b, 0x6e3f, 0x52fd, 0x6fca, 0x71f6, 0x71f7, 0x71f8, + 0x71f9, 0x742b, 0x52fd, 0x74a4, 0x74ce, 0x52fd, 0x759e, 0x759f, + 0x75a0, 0x75a1, 0x75a2, 0x75a3, 0x75a4, 0x75a5, 0x75a6, 0x7718, + 0x7860, 0x7861, 0x7862, 0x7863, 0x7864, 0x7abd, 0x7abe, 0x7b0b, + 0x7abf, 0x7ac0, 0x52fd, 0x7b0c, 0x7a8d, 0x7b0d, + /* 0x48 */ + 0x7b0e, 0x7b5e, 0x7b0f, 0x7b10, 0x7ac1, 0x7b11, 0x52fd, 0x7ac2, + 0x7cea, 0x7ceb, 0x7fe3, 0x7fe4, 0x7fe5, 0x7fe6, 0x7fe7, 0x7f92, + 0x804a, 0x52fd, 0x7fe8, 0x7fe9, 0x7fea, 0x8001, 0x7feb, 0x7fec, + 0x7fef, 0x7fed, 0x7fee, 0x7ff0, 0x7ff1, 0x7ff2, 0x7ff3, 0x7ff4, + 0x7ff5, 0x7ff6, 0x7ff7, 0x7ff8, 0x7ff9, 0x7ffe, 0x7ffa, 0x7ffb, + 0x7ffc, 0x8563, 0x8564, 0x8565, 0x8566, 0x8567, 0x8568, 0x890b, + 0x890d, 0x07bc, 0x890e, 0x890f, 0x07a4, 0x8914, 0x88d4, 0x88d5, + 0x88d6, 0x88d7, 0x88d8, 0x88d9, 0x88da, 0x88db, 0x88dc, 0x88dd, + 0x88de, 0x88df, 0x88e0, 0x88e1, 0x88e2, 0x88e3, 0x88e4, 0x88e5, + 0x88e6, 0x88e7, 0x88e8, 0x88e9, 0x88ea, 0x88eb, 0x88ec, 0x89ec, + 0x88ed, 0x88ee, 0x88ef, 0x8900, 0x88f0, 0x8c04, 0x52fd, 0x8c05, + 0xfaf3, 0x8db5, 0xfaf9, 0x8ed6, 0x8ed7, 0x8ed8, + /* 0x49 */ + 0x8ed9, 0x91a9, 0x9200, 0x9201, 0x9202, 0x9203, 0x9204, 0x9205, + 0x9206, 0x923f, 0x9207, 0x9208, 0x9209, 0x920a, 0x91b6, 0x920b, + 0x920c, 0x52fd, 0x52fd, 0x920d, 0x52fd, 0x920e, 0x920f, 0x9210, + 0x9211, 0x9212, 0x9235, 0x9213, 0x9214, 0x91aa, 0x52fd, 0x92c1, + 0x9215, 0x9216, 0x9217, 0x961e, 0x961f, 0x9620, 0x9621, 0x52fd, + 0x9622, 0x9623, 0x3195, 0x9624, 0x9625, 0x9626, 0x9627, 0x9628, + 0x9629, 0x962a, 0x962b, 0x9607, 0x962c, 0x962d, 0x962e, 0x09e8, + 0x52fd, 0x962f, 0x9630, 0x9648, 0x9631, 0x9632, 0x3198, 0x9633, + 0x52fd, 0x9634, 0x9635, 0x9636, 0x9859, 0x9891, 0x98e7, 0x99b8, + 0x99b9, 0x99ba, 0x99bb, 0x99c8, 0x9b4d, 0x9b89, 0x9b50, 0x9b28, + 0x9cfb, 0x9cfc, 0x9cfd, 0x9cfe, 0x9cff, 0x3378, 0x9d00, 0x9d01, + 0x9d02, 0x9ce4, 0x9ce5, 0x9d03, 0x9d04, 0x9d05, + /* 0x4a */ + 0x9d06, 0x9d07, 0x9d13, 0x9d08, 0x9d09, 0x9ce6, 0x9d0a, 0x9d0b, + 0x9d0c, 0x9e0b, 0x9ef4, 0x9f0a, 0x9fb1, 0xa11d, 0xfb3b, 0xa28b, + 0xa28c, 0xa28f, 0xa28d, 0xa28e, 0xa306, 0xa386, 0xa522, 0xa523, + 0xa524, 0xa525, 0xa526, 0xa527, 0xa528, 0xa6f1, 0x37b9, 0xa823, + 0xa812, 0x52fd, 0xa813, 0xa814, 0xa815, 0xa816, 0xa817, 0xa818, + 0xa819, 0xa84b, 0xa81a, 0xa81b, 0xa81c, 0x52fd, 0xa81d, 0xa81e, + 0xa81f, 0xa820, 0xa9ca, 0x75ac, 0xa9cb, 0xa9cc, 0xa9cd, 0xa9ce, + 0x52fd, 0xa9cf, 0xab10, 0xab11, 0xab12, 0xab13, 0xab14, 0xab0f, + 0xab15, 0xab16, 0xab17, 0x3933, 0xab18, 0xacc6, 0xad9f, 0xada0, + 0xada4, 0xada1, 0xaeb5, 0xaeb6, 0xaeb7, 0xaeb8, 0xaeb9, 0xaeba, + 0xaed0, 0xaec6, 0xaebb, 0xaebc, 0xaebd, 0xaebe, 0xaebf, 0xaec0, + 0xaec1, 0xaec2, 0xfb60, 0xb1a7, 0xb1a8, 0xb1a9, + /* 0x4b */ + 0xb1aa, 0xb1ab, 0xb1ac, 0xb1bc, 0xb1ad, 0xb1ae, 0x3bc0, 0xb1af, + 0xb1b0, 0xb1b1, 0x3bc1, 0xb1b4, 0xb1b2, 0xb366, 0xb367, 0xb368, + 0xb369, 0xb36a, 0xb36b, 0xb36c, 0xb36d, 0xb36e, 0xb36f, 0x52fd, + 0xb53e, 0xb53f, 0xb540, 0xb5e8, 0xb752, 0xb753, 0xb754, 0xb755, + 0xb891, 0xb892, 0xb893, 0xb894, 0xb895, 0xb896, 0xb897, 0xb898, + 0x52fd, 0xb899, 0xb89a, 0xb89b, 0xbab7, 0xbab8, 0xbab9, 0x52fd, + 0xbaba, 0xbabb, 0xbabd, 0x52fd, 0xbabc, 0xfb88, 0xfb87, 0xbbeb, + 0xbbec, 0xbc16, 0xbc44, 0xbce3, 0xbd58, 0xbd53, 0xbd54, 0xbde0, + 0xc0b1, 0xc0b2, 0xc0b3, 0xc0ea, 0x52fd, 0xc0b4, 0xc0f0, 0xc0b5, + 0xc0b6, 0xc0b7, 0xc0b8, 0xc0b9, 0xc0ba, 0xc0bb, 0xc0bc, 0xc0bd, + 0xc0be, 0xc0bf, 0xc0c0, 0xc0c1, 0xc0c2, 0xc0c3, 0x52fd, 0xc0c4, + 0xc0c5, 0xc0c6, 0xc0fc, 0xc0c7, 0xc0c8, 0xc0c9, + /* 0x4c */ + 0xc0ca, 0xc0cb, 0xc0cc, 0xc184, 0xc0cd, 0xc0ce, 0xc0cf, 0xc0d0, + 0xc0d1, 0xc0d2, 0xc4ca, 0xc4cb, 0xc636, 0xc637, 0xc69f, 0xc638, + 0xc639, 0xc63a, 0x4144, 0xc9be, 0xc9f0, 0xc9bf, 0xc9c0, 0xcaf7, + 0xcaf8, 0xcafa, 0xcb43, 0xcb44, 0xcd0f, 0xcd10, 0xcd11, 0xcd12, + 0x43ad, 0xcd13, 0xcd14, 0xcd15, 0xcd16, 0x52fd, 0x52fd, 0xcfd3, + 0xcfd7, 0x52fd, 0xd0b0, 0xd098, 0xd090, 0xd091, 0xd092, 0xd097, + 0xd093, 0xd164, 0xd201, 0xd202, 0xd203, 0xd204, 0xd205, 0xd206, + 0xd207, 0xd35a, 0xd35b, 0xd54e, 0xd54f, 0xd550, 0xd619, 0xd61a, + 0xd61b, 0x52fd, 0xd61c, 0x52fd, 0xd719, 0xd71a, 0x1386, 0xdc8a, + 0xd86e, 0xd86f, 0x4664, 0xd870, 0xd871, 0xd872, 0xd873, 0xd874, + 0xd875, 0xd876, 0xdb3a, 0xdb3b, 0xdb3c, 0xdb5a, 0xdb3d, 0xdb42, + 0xdc8b, 0xdca0, 0xdc8c, 0xdc8d, 0xdc8e, 0xdcab, + /* 0x4d */ + 0xdc8f, 0x4777, 0xdc90, 0xdc91, 0xdc92, 0xdcaa, 0x47af, 0xdc93, + 0xdc94, 0xdc9e, 0xdca8, 0x52fd, 0x52fd, 0xe200, 0xe201, 0xe202, + 0xe203, 0xe204, 0xe205, 0xe2c4, 0xe2c5, 0x52fd, 0xe3ae, 0xe3b2, + 0x52fd, 0x52fd, 0xe4f7, 0xe513, 0xe69e, 0xe785, 0xa680, 0xe7c8, + 0xeb41, 0xeb81, 0xeb82, 0xeb83, 0xeb84, 0xedc4, 0xedc5, 0xedc6, + 0xef95, 0xef96, 0xef97, 0xf058, 0xf059, 0x52fd, 0xf2a9, 0xf2aa, + 0xf2ab, 0xf58e, 0xf603, 0xf6b3, 0x5e82, 0x5353, 0x5483, 0x5484, + 0x5485, 0x56cc, 0x56cd, 0x56ce, 0x56cf, 0x56d0, 0x52fd, 0x56d1, + 0x56d2, 0x56da, 0x57b3, 0x57b4, 0x52fd, 0x5913, 0x590e, 0x596b, + 0x5c03, 0x5c61, 0x5cc1, 0x5cc2, 0x5db5, 0x5440, 0x6298, 0x6299, + 0x629a, 0x629b, 0x629c, 0x629d, 0x629e, 0x629f, 0x62ee, 0x62a0, + 0x62a1, 0x6286, 0x6525, 0x6734, 0x6735, 0x6751, + /* 0x4e */ + 0x672d, 0x9662, 0x6754, 0x6752, 0x026d, 0x6736, 0x6737, 0x6738, + 0x6739, 0x673a, 0x673b, 0x6768, 0x673c, 0x026e, 0x6877, 0x8596, + 0x697e, 0x697f, 0x6b69, 0x6b6a, 0x6b6b, 0x6b6c, 0x6b6d, 0x6b6e, + 0x6b6f, 0x6b5d, 0x6b70, 0x6b85, 0x6b71, 0x6b72, 0x6b73, 0x6b74, + 0x6b75, 0x6b76, 0x6b84, 0x6b77, 0x6b83, 0x6c9a, 0x6da7, 0x6da8, + 0x6da9, 0x6daa, 0x6dab, 0x6dac, 0x6db7, 0x6dad, 0x6dae, 0x52fd, + 0x6e45, 0x6fd3, 0x6fd4, 0x6fd5, 0x6fd6, 0x6fd7, 0x7226, 0x7227, + 0x7228, 0x52fd, 0x7229, 0x722a, 0x7305, 0x2364, 0x74d0, 0x75b7, + 0x52fd, 0x75b8, 0x75b9, 0x7722, 0x7723, 0x7873, 0x7874, 0x7b8f, + 0x7b12, 0x7b13, 0x7b14, 0x7b15, 0x7b16, 0x7b17, 0x7b18, 0x7b61, + 0x7b66, 0x7b67, 0x7b19, 0x7b68, 0x7b1a, 0x7b69, 0x7d04, 0x7d05, + 0x52fd, 0x7d06, 0x7cfd, 0x8050, 0x8051, 0x8052, + /* 0x4f */ + 0x8053, 0x8054, 0x8055, 0x8063, 0xfac4, 0x8056, 0x8057, 0x8058, + 0x8059, 0x805a, 0x805b, 0x52fd, 0x805c, 0x805d, 0x805e, 0x805f, + 0x82d7, 0x52fd, 0x8360, 0x8361, 0x8417, 0x8439, 0x858f, 0x85c8, + 0x8590, 0x8591, 0x8698, 0x8699, 0x8944, 0x8945, 0x8946, 0x8959, + 0x89ee, 0x2b2b, 0x8947, 0x8948, 0x52fd, 0x8949, 0x894a, 0x894b, + 0x894c, 0x894d, 0x894e, 0x894f, 0x8950, 0x8951, 0x8952, 0x8953, + 0x8954, 0x8955, 0x8956, 0x8c15, 0x8c9a, 0x8d58, 0x8dfc, 0x8dfd, + 0x9286, 0x9287, 0x9288, 0x9289, 0x928a, 0x928b, 0x928c, 0x52fd, + 0x931f, 0x928d, 0x928e, 0x928f, 0x9290, 0x9291, 0x9292, 0x9293, + 0xfb11, 0x9294, 0x9295, 0x91ca, 0x9218, 0x52fd, 0x9296, 0x9297, + 0x9298, 0x9299, 0x929a, 0x929b, 0x929c, 0x929d, 0x929e, 0x929f, + 0x2f46, 0x52fd, 0x92a0, 0x92a1, 0x2f9a, 0x92b7, + /* 0x50 */ + 0x52fd, 0x9696, 0x9668, 0x9669, 0x968c, 0x966a, 0x966b, 0x966c, + 0x966d, 0x966e, 0x966f, 0x967f, 0x9684, 0x9670, 0x9671, 0x9685, + 0x9672, 0x9673, 0x9674, 0x9675, 0x9676, 0x52fd, 0x9677, 0x9678, + 0x9679, 0x967a, 0x967b, 0x967c, 0xfb1e, 0x9894, 0x99d5, 0x9b29, + 0x9d2b, 0x9d2c, 0x9d2d, 0x9d2e, 0x9d2f, 0x9d30, 0x9d3e, 0x9d31, + 0x9d32, 0x9d33, 0x9d34, 0x9d35, 0x9e11, 0x0b53, 0x9fc0, 0xa142, + 0xa143, 0xa144, 0xa145, 0xa146, 0xa38c, 0xa38d, 0xa38e, 0xa38f, + 0xa390, 0xa391, 0xa563, 0xa564, 0xa565, 0x52fd, 0xfb4a, 0x52fd, + 0xa6f6, 0xa836, 0xa837, 0xa82c, 0xa838, 0xa839, 0x52fd, 0xa83a, + 0xa9e3, 0xa9e2, 0xa9f5, 0xab47, 0x52fd, 0xab48, 0xab49, 0xab4a, + 0xab4b, 0xab4c, 0xada8, 0xada9, 0xadaa, 0x52fd, 0xaf0b, 0xaf06, + 0xaf73, 0xaf0c, 0xaf0d, 0xaf0e, 0xaf0f, 0xaf10, + /* 0x51 */ + 0x52fd, 0xaf11, 0xfb62, 0xaf12, 0xaf14, 0xaf15, 0xaf16, 0x52fd, + 0xaf13, 0xaf17, 0xb1d9, 0xb1da, 0xb1db, 0x52fd, 0xb1dc, 0xb3a6, + 0xb3a7, 0xb3a8, 0xb3a9, 0xb3aa, 0xb3ab, 0x52fd, 0xfb6d, 0xb3ac, + 0xb3ad, 0xb3ae, 0x52fd, 0x52fd, 0xb3af, 0xb3b0, 0xb3b1, 0xb544, + 0xb545, 0xb5f7, 0xb5f8, 0xb76b, 0xb76c, 0xb761, 0xb812, 0xb8af, + 0xb8b0, 0xb8b1, 0xb8b2, 0xb8b3, 0xb8b4, 0xb8b5, 0xb8b6, 0xb922, + 0xbaea, 0xbaeb, 0xbaec, 0xbaed, 0x0f3d, 0xbbed, 0xbc1b, 0xbc47, + 0xbce8, 0xbdd0, 0xbde7, 0xbde8, 0xbde9, 0xc14e, 0xc14f, 0xc150, + 0xc172, 0xc151, 0xc152, 0xfba7, 0x1026, 0xc153, 0xc154, 0xc155, + 0xc156, 0xc157, 0xc177, 0xc158, 0xc159, 0xc15a, 0xc15b, 0xc15c, + 0xc16e, 0xc15d, 0x1027, 0x52fd, 0xc15e, 0x1028, 0xc15f, 0x52fd, + 0xc4d7, 0xc689, 0xc68a, 0x52fd, 0xfbbe, 0xc68b, + /* 0x52 */ + 0xc68c, 0xc68d, 0xc68e, 0xfbbc, 0xc68f, 0x52fd, 0xc69a, 0xc690, + 0xc691, 0xc692, 0xc693, 0xca12, 0xc9f1, 0x52fd, 0xcafe, 0xcafb, + 0xcb57, 0xcd49, 0xcd4a, 0xcd4b, 0xcd4c, 0x52fd, 0xcd4d, 0xcd59, + 0xcd4e, 0xcd4f, 0xcef4, 0xcf65, 0xd0a6, 0xd0a7, 0xd0a8, 0xd222, + 0xd223, 0xd38b, 0xd38c, 0xd38d, 0xd38e, 0xd558, 0x52fd, 0xd559, + 0xd63b, 0xd63c, 0xd63d, 0xd63e, 0xd748, 0xd894, 0xd895, 0xd896, + 0xd897, 0xd898, 0xda7d, 0xd9fe, 0xda7e, 0xda7f, 0x52fd, 0xdb5b, + 0xdb5c, 0xdce4, 0xdcc1, 0xdcfd, 0xdcc2, 0xdcd6, 0xdcc3, 0xdcc4, + 0x52fd, 0xdcdc, 0xdcc5, 0xdcc6, 0xdcc7, 0xdce1, 0xdcc8, 0xdcc9, + 0xdcca, 0xdccb, 0x47f2, 0xdccc, 0xdccd, 0xe035, 0xe036, 0xe047, + 0xe037, 0xe21b, 0xe21c, 0xe21d, 0xe21e, 0xe21f, 0xe220, 0xe27b, + 0xe27a, 0xe2fe, 0xe3c6, 0xe3c7, 0xe3c8, 0xe3c9, + /* 0x53 */ + 0xe3ca, 0x52fd, 0xe7a0, 0xe7a1, 0xe8cc, 0xe8cd, 0xe9f1, 0xe9d7, + 0xeb42, 0xeb46, 0xeba3, 0xeba5, 0xeba6, 0xedcb, 0xedcc, 0xee26, + 0xee27, 0xee28, 0xee29, 0xefae, 0xefaf, 0xefb0, 0xf073, 0x52fd, + 0xf07c, 0xf074, 0x52fd, 0xf280, 0xf075, 0x4c79, 0x52fd, 0xf2cf, + 0x52fd, 0xf68f, 0x5970, 0x5385, 0x5697, 0x56f6, 0x56f7, 0x56f8, + 0x56fa, 0x56fb, 0x57ba, 0x57bb, 0x57bc, 0x57bd, 0x5834, 0x5835, + 0x58a2, 0x5914, 0x5911, 0x596e, 0x596f, 0x5b08, 0x5bb8, 0x5d09, + 0x5dbd, 0x5dbe, 0x5e88, 0x62fe, 0x1d7a, 0x62ff, 0x6300, 0x6301, + 0x6302, 0x6303, 0x6304, 0x6305, 0x6306, 0x52fd, 0x6307, 0x6308, + 0x6309, 0x630a, 0x630b, 0x630c, 0x630d, 0x630e, 0x630f, 0x52fd, + 0x52fd, 0x52fd, 0x652c, 0x676b, 0x52fd, 0x676c, 0x6787, 0x676d, + 0x6878, 0x698b, 0x6ba4, 0x6ba5, 0x6ba6, 0x6ba7, + /* 0x54 */ + 0x6bbe, 0x6ba8, 0x6ba9, 0x6baa, 0x6b8d, 0x6bab, 0x6bac, 0x6bbf, + 0x52fd, 0x032c, 0x6bad, 0x6bae, 0x6ca4, 0x6ca5, 0x6dc7, 0x6dc8, + 0x6dc9, 0xd0bc, 0x6dca, 0x6dcb, 0x6dcc, 0x6dcd, 0x6dce, 0x6f19, + 0x6fe6, 0x724c, 0x724d, 0x724e, 0x7306, 0x52fd, 0x75cd, 0x75ce, + 0x75cf, 0x75d0, 0x245c, 0x7881, 0x7882, 0x5833, 0x7b6a, 0x7b6b, + 0x7bb2, 0x7b6c, 0x7b6d, 0x7bcc, 0x7bae, 0x7bb3, 0x7b91, 0x52fd, + 0x7b6e, 0x7bb4, 0x7b6f, 0x80c9, 0x80a7, 0x80a8, 0x80a9, 0x80aa, + 0x80ab, 0x80ac, 0x80ad, 0x80ae, 0x80af, 0x80b0, 0x8060, 0x80b1, + 0x81e1, 0x82e3, 0x82f6, 0x26d9, 0x85af, 0x85b0, 0x85b1, 0x85ba, + 0x85b2, 0x85b3, 0x864c, 0x52fd, 0x86a0, 0x86a1, 0x89b0, 0x89b1, + 0x89b2, 0x89b3, 0x89b4, 0xfaeb, 0x89b5, 0x89b6, 0x89b7, 0x89b8, + 0x89b9, 0x89ba, 0x2b72, 0x89bb, 0x89bc, 0x89bd, + /* 0x55 */ + 0x89be, 0x89bf, 0x89df, 0x89c0, 0x89c1, 0x89c2, 0x89c3, 0x89c4, + 0x2b78, 0x52fd, 0x89c5, 0x89c6, 0x89c7, 0x89c8, 0x89c9, 0x89ca, + 0x8a3c, 0x89cb, 0x89cc, 0x89cd, 0x89ce, 0x89cf, 0x89d0, 0x89d1, + 0x2c5a, 0x8c1d, 0x8c1e, 0x8d64, 0x8d65, 0x8dc5, 0x8dc6, 0x8dc7, + 0x8dff, 0x8eff, 0x8f00, 0x8f01, 0x8f02, 0x92f5, 0x935c, 0x92f6, + 0x92f7, 0x92b0, 0x92f8, 0x92f9, 0x935d, 0x9350, 0x92fa, 0x92fb, + 0x92a2, 0x92fc, 0x92fd, 0x92fe, 0x92ff, 0xfb13, 0x9300, 0xfb1f, + 0x96c1, 0x96c2, 0x96c3, 0x96c4, 0x96c5, 0x96c6, 0x96c7, 0x96c8, + 0x96c9, 0x96ca, 0x96cb, 0xe3ef, 0x96d7, 0x96cc, 0x96cd, 0x96ce, + 0x9722, 0x96cf, 0x96d0, 0x52fd, 0x96d1, 0x96d2, 0x96e9, 0x96d3, + 0x96d4, 0x96d5, 0x9838, 0x633b, 0x9b7d, 0x586f, 0x9ba1, 0x9d53, + 0x9d54, 0x0afb, 0x9d55, 0x9d3c, 0x9d56, 0x52fd, + /* 0x56 */ + 0x9d66, 0x0afc, 0x9d57, 0x9d58, 0x9d59, 0x9d5a, 0x9d5b, 0x9d67, + 0x9d5c, 0x52fd, 0x52fd, 0x9d6a, 0x9d5d, 0x9d3d, 0x9d5e, 0x9d65, + 0x9fe1, 0x9fcd, 0xf311, 0xa16f, 0xa170, 0xa31a, 0xa39a, 0xa39b, + 0xa39c, 0xa39e, 0xa39f, 0xfb3f, 0xa58e, 0x52fd, 0xa6fd, 0x52fd, + 0xa85e, 0xa85f, 0xa860, 0xa865, 0xa867, 0xa868, 0xa869, 0x52fd, + 0xa86a, 0xa88f, 0xa86b, 0xa86c, 0xa86d, 0xa9f7, 0xa9f8, 0xa9f9, + 0xa9e4, 0xa9fa, 0xabb1, 0xab75, 0xab76, 0xacff, 0xad00, 0xad01, + 0xad02, 0xad03, 0xadae, 0xadad, 0xaf51, 0xaf52, 0x52fd, 0xaf53, + 0xaf54, 0xaf55, 0xaf56, 0xaf57, 0xaf58, 0xaf59, 0xaf5a, 0xaf5b, + 0xaf5c, 0xaf5d, 0xaf5e, 0xaf5f, 0xaf60, 0xaf61, 0xaf62, 0xaf63, + 0xaf64, 0xaf4c, 0xaf66, 0xb1f1, 0xb1f2, 0xb3f2, 0xb3f3, 0xb3f4, + 0xb3f5, 0xb3f6, 0xb3f7, 0xb3f8, 0xb3f9, 0xb3fa, + /* 0x57 */ + 0xb54c, 0xb54b, 0xb61b, 0xb6ce, 0xb6b3, 0xb77f, 0xfb79, 0xfb7c, + 0xb81a, 0xb8c4, 0xb8c5, 0xb8c6, 0xb8c7, 0xb8c8, 0xb8c9, 0x52fd, + 0xbb19, 0xbb1c, 0xbb1a, 0xbc4c, 0xbc8e, 0xbd7e, 0xc1eb, 0xc1ec, + 0xc1ed, 0xc1ee, 0xc1ef, 0xc1f0, 0xc1f1, 0xc1d8, 0xc1d9, 0xc1da, + 0xc1db, 0xc1f2, 0xc1f3, 0xc1f4, 0xc207, 0x52fd, 0xfbac, 0x52fd, + 0xc1f5, 0xc215, 0x52fd, 0xc1f6, 0xc1f7, 0xc1f8, 0xc1f9, 0xc1fa, + 0xc1fb, 0xc1fc, 0xc1fd, 0xc1fe, 0xc2a7, 0xc1ff, 0xc200, 0xc201, + 0xc202, 0xc203, 0xc204, 0xc205, 0xc4e9, 0xc4ea, 0xc4eb, 0xc6de, + 0xc6df, 0x52fd, 0xc6e0, 0xc6e1, 0xc6e2, 0xc6e3, 0xca3e, 0xca3f, + 0xca40, 0xca41, 0xcb71, 0xcb72, 0xcb73, 0xcd88, 0xcd89, 0xcd8a, + 0xcd8b, 0xcd8c, 0xcd8d, 0xcd8e, 0xcd8f, 0xcd90, 0xcd91, 0xcd92, + 0x52fd, 0xcff1, 0xd0be, 0xd0bf, 0xd0c0, 0xd0c1, + /* 0x58 */ + 0xd0c2, 0xd0c3, 0xd16e, 0xd237, 0xd257, 0xd238, 0xd239, 0xd23a, + 0xd23b, 0xd23c, 0xd23d, 0xd23e, 0xd227, 0xd23f, 0x52fd, 0x52fd, + 0xd3c0, 0xd3c1, 0x44be, 0xd567, 0x52fd, 0xd568, 0xd658, 0xd665, + 0xd659, 0xd65a, 0xd724, 0xd8cd, 0xd8ce, 0xd8cf, 0xd8d2, 0xda9f, + 0xda22, 0xdb7d, 0xdb7e, 0xdcff, 0xdd25, 0xdd00, 0xdd01, 0x483b, + 0xdd02, 0xdd03, 0xdd04, 0x5128, 0xdd05, 0xdd06, 0xdd07, 0xdd16, + 0xdd08, 0xdd17, 0xdd09, 0xdd0a, 0x4840, 0xdd0b, 0xdd0c, 0xdd29, + 0x483a, 0xdd0d, 0x52fd, 0xdd0e, 0xdd10, 0xdd11, 0xdd1d, 0xdd12, + 0xdd13, 0x52fd, 0xdd14, 0xdd15, 0xdf8d, 0xe054, 0xe055, 0xe056, + 0xe233, 0xe234, 0xe235, 0xe236, 0xe2fa, 0xe3e3, 0xe3e6, 0xe3ed, + 0xe3e7, 0xe3e8, 0xe3e9, 0xe3ea, 0xe3eb, 0xe527, 0xe520, 0xfbf8, + 0xe72a, 0xe7c9, 0x52fd, 0xe7ca, 0xe7cb, 0xe7d9, + /* 0x59 */ + 0xe7cc, 0xe7cd, 0xe7ce, 0x52fd, 0xe8e1, 0xea1b, 0xea1c, 0xea1d, + 0xea1e, 0xeb47, 0xebd1, 0xebc9, 0xedd0, 0xedd1, 0xee3f, 0xee40, + 0xee41, 0xfc09, 0xee42, 0xefc4, 0xf09b, 0xf092, 0xf093, 0x4c96, + 0xf094, 0xf095, 0x52fd, 0x52fd, 0xf2f3, 0xf2f4, 0xf2f5, 0xf2f6, + 0xf560, 0xf59e, 0xf5a0, 0xf5a1, 0xf61c, 0xf69f, 0x5356, 0x5712, + 0x571f, 0x5715, 0x5716, 0x5717, 0xfa0c, 0x5718, 0x57c2, 0x57c3, + 0x57c4, 0x58a1, 0x591b, 0x591c, 0x5971, 0x5b13, 0x5e17, 0x5e8f, + 0x635f, 0x6360, 0x63ac, 0x52fd, 0x52fd, 0x6361, 0x6362, 0x6363, + 0x6364, 0x6365, 0x52fd, 0x6799, 0x679a, 0x679b, 0x679c, 0x679d, + 0x679e, 0x679f, 0x67a0, 0x6bda, 0x6bdb, 0x6bdc, 0x6bdd, 0x6bde, + 0x6bdf, 0x6dd5, 0x6dd6, 0x6dd7, 0x6dd8, 0x6de0, 0x6eb4, 0x52fd, + 0x726e, 0x726f, 0x7270, 0x7463, 0x52fd, 0x75d5, + /* 0x5a */ + 0x75d6, 0x75d7, 0x75d8, 0x7730, 0x7bb5, 0x7bb6, 0x7bc1, 0x7bf7, + 0x05a0, 0x7bcb, 0x7be8, 0x52fd, 0x7be9, 0x7bb7, 0x7d15, 0x80e6, + 0x80e7, 0x80e8, 0x80e9, 0x80ea, 0x80eb, 0xfaca, 0x830b, 0x830c, + 0x8364, 0x85d4, 0x85d5, 0x85d6, 0x85d8, 0x86a5, 0x535b, 0x8a0f, + 0x8a10, 0x52fd, 0x8a11, 0x8a12, 0x8a13, 0x8a14, 0x8a15, 0x8a16, + 0x8a17, 0x8a18, 0x8a19, 0x8a1a, 0x8a2f, 0x8a1b, 0x8a1c, 0x8a3f, + 0x8a1d, 0x8a1e, 0x8a2c, 0x8a1f, 0x8c24, 0x8ca4, 0x8ca5, 0xb551, + 0x8dfe, 0x8f11, 0x8f12, 0x8f13, 0x8f54, 0x935e, 0x9321, 0x933f, + 0x9340, 0x9341, 0x9342, 0x9343, 0x9344, 0x9320, 0x9345, 0x52fd, + 0x9346, 0x93b0, 0x9347, 0x9357, 0x9301, 0x93b1, 0x935a, 0x9348, + 0x9704, 0x9705, 0x31f5, 0x974f, 0x9750, 0x9706, 0x9707, 0x9708, + 0x9709, 0x970a, 0x970b, 0x970c, 0x970d, 0x970e, + /* 0x5b */ + 0x970f, 0x9710, 0x9711, 0x9833, 0x9834, 0x9835, 0x98fc, 0x98fd, + 0x9bb0, 0x9bb1, 0x9bb2, 0x9bb3, 0x0b01, 0x9d7b, 0x9d7c, 0x9d7d, + 0x9d7e, 0x9d7f, 0x9d80, 0x9d81, 0x9d82, 0x9ef9, 0x9fda, 0xa1a1, + 0x52fd, 0x52fd, 0xa3ad, 0xa3ae, 0x52fd, 0xa5c8, 0xa5c9, 0xa5ca, + 0xa882, 0xa883, 0xa884, 0xa885, 0xa886, 0xa887, 0xa888, 0xa889, + 0xa88a, 0x52fd, 0xaa07, 0xaa08, 0xaa01, 0xaa09, 0xaa02, 0xaa0a, + 0xaa0b, 0xaa0c, 0xaba7, 0xab98, 0xab99, 0xab9a, 0xab9b, 0xab9c, + 0x3950, 0xab9d, 0xad1a, 0xadb2, 0xafb0, 0xafb1, 0x3b14, 0xafb2, + 0xafb3, 0xafb4, 0xafb5, 0xafb6, 0xafc0, 0xafb7, 0xafb8, 0xafb9, + 0xafba, 0xb01d, 0xb20c, 0xb20d, 0xb20e, 0xb235, 0xb20f, 0xb210, + 0xb211, 0xb212, 0xb422, 0xb423, 0xb424, 0x52fd, 0xb425, 0xb426, + 0xb427, 0xb428, 0xb429, 0xb42a, 0xb42b, 0xb42c, + /* 0x5c */ + 0xb42d, 0xb42e, 0xb552, 0xb553, 0xb619, 0xb6bf, 0xb78b, 0xb78c, + 0xb823, 0xb824, 0xb8f1, 0xb8d8, 0xfb7f, 0xbb4e, 0xbb4f, 0xbb55, + 0xbb50, 0xbb51, 0xbb52, 0xbb53, 0xbb02, 0xbb54, 0xbbf1, 0xbc24, + 0xbdd1, 0xc27c, 0xc27d, 0xc27e, 0xc27f, 0xc280, 0xc29f, 0xc281, + 0xc282, 0xc283, 0xc284, 0xc285, 0xc286, 0xc287, 0xc288, 0xc29b, + 0xc289, 0xc28a, 0xc28b, 0xc28c, 0x52fd, 0xc2a1, 0xc28d, 0xc28e, + 0xc4f3, 0xc4f4, 0xc4f5, 0xc724, 0xc725, 0xc726, 0xc727, 0xc728, + 0xc729, 0xc72a, 0x52fd, 0xc72b, 0xc8cd, 0xc901, 0x788d, 0xca70, + 0xcb80, 0xcb81, 0xcdc0, 0xcdc1, 0xcdc2, 0xcdc3, 0xcdc4, 0xcdc5, + 0xcdc6, 0xcdc7, 0xcdc8, 0xcffe, 0x52fd, 0xd0d9, 0xd0dc, 0xd0da, + 0xd175, 0xd258, 0xd259, 0xd25a, 0xd25b, 0xd25c, 0xd3ec, 0x131a, + 0xd3f3, 0xd572, 0xd573, 0xd682, 0xd683, 0xd72a, + /* 0x5d */ + 0xd72b, 0xd72c, 0xd72d, 0xd8f6, 0xd900, 0xd8f7, 0xd8f8, 0xd8f9, + 0x52fd, 0xdb94, 0xdb95, 0xdb96, 0xdc1b, 0xdd86, 0xdd4c, 0xdd4d, + 0xdd83, 0x52fd, 0xdd82, 0xdd4e, 0xdd4f, 0xdd50, 0xdd51, 0xdd81, + 0x4887, 0xdd52, 0xdd53, 0xdd54, 0xdd55, 0x52fd, 0xdd56, 0xdd57, + 0x4885, 0xdd58, 0xdd5b, 0xdd5c, 0xdd5d, 0xdd5e, 0xdd5f, 0xdd60, + 0xdd61, 0xdd7c, 0xdd62, 0x143c, 0x52fd, 0xdd63, 0xdd64, 0xe073, + 0xe245, 0xe246, 0xe247, 0xe24c, 0xe312, 0x52fd, 0xe313, 0xe439, + 0xe403, 0xe40d, 0xe530, 0xe5d5, 0xe6c0, 0xe7f2, 0xe7f3, 0xe7f4, + 0xe7f5, 0xe7f6, 0xe7f7, 0xe8fa, 0xe8fb, 0xea45, 0xea46, 0xeb49, + 0xebe7, 0xebe8, 0xedd8, 0xedd9, 0xee55, 0xee56, 0xee57, 0xefda, + 0xefdb, 0xefdc, 0xf0b8, 0xf0b9, 0xf0ba, 0x4cb1, 0xf0bb, 0xf289, + 0xf0bc, 0xf330, 0xf331, 0xf332, 0xf333, 0x52fd, + /* 0x5e */ + 0xf334, 0xf335, 0xf336, 0x4e47, 0xf337, 0xf5b2, 0xf690, 0xf626, + 0xf6a2, 0xf738, 0x52fd, 0x572e, 0x52fd, 0x572f, 0x5730, 0x572a, + 0x572b, 0x57c9, 0x5837, 0x5920, 0x5972, 0x5b1f, 0x5c65, 0x5cca, + 0x5dc0, 0x5dc1, 0x5dc2, 0x63b7, 0x63b8, 0x63b9, 0x63ba, 0x63bb, + 0x52fd, 0x52fd, 0x63bc, 0x63bd, 0x63be, 0x63f2, 0x67b5, 0x67b7, + 0x67b8, 0x63df, 0x67b9, 0x67d5, 0x67ba, 0x67bb, 0x684a, 0x6bf2, + 0x6bf3, 0x6bf4, 0x6bfa, 0x6bf5, 0x6c02, 0x6de2, 0x6de3, 0x728e, + 0x728b, 0x75e4, 0x75eb, 0x75e5, 0x7735, 0x7893, 0x7bea, 0x7beb, + 0x52fd, 0x7bec, 0x7bed, 0x7c17, 0x7bee, 0x7bef, 0x7bf0, 0x810e, + 0x810f, 0x8110, 0x8119, 0x8118, 0x8111, 0x8112, 0x8113, 0xfac7, + 0x8114, 0x8115, 0x066b, 0x8116, 0x8365, 0x85ea, 0x85eb, 0x85ec, + 0x85ed, 0x52fd, 0x85ee, 0x86ac, 0x8ac2, 0x8a69, + /* 0x5f */ + 0x8a81, 0x8a6a, 0x8a6b, 0x8a6c, 0x8a6d, 0x8a6e, 0x8a6f, 0x8a70, + 0x07f4, 0x8a71, 0x8a72, 0x8a73, 0x8a8c, 0x8a74, 0x8a75, 0x8a76, + 0x8f24, 0x8f2a, 0x938e, 0x93af, 0x938f, 0x9390, 0x9391, 0x52fd, + 0x9392, 0x9393, 0x9394, 0x9395, 0x9396, 0x9397, 0x9398, 0x9399, + 0x939a, 0x939b, 0x939c, 0x9739, 0x973b, 0x973a, 0x973c, 0x973d, + 0x973e, 0x973f, 0x9770, 0x9740, 0x9741, 0x9bc0, 0x9bc1, 0x9da4, + 0x9d97, 0x9da5, 0x9d98, 0x9d99, 0x9d9a, 0x52fd, 0x9d9b, 0x9da6, + 0x9d9c, 0x9d9d, 0x9d9e, 0x9d9f, 0xddce, 0x9dc8, 0x9da0, 0x9e19, + 0x9f0d, 0xa3bf, 0xa5e9, 0xa5ea, 0xa8a2, 0xa8a3, 0xa8a4, 0xa8a5, + 0xa8a6, 0xaa15, 0xaa17, 0xabbf, 0xabc0, 0xabc1, 0xabc2, 0xabc3, + 0xabc4, 0xabc5, 0x6c0d, 0xad23, 0xadbe, 0xb003, 0xb004, 0xb005, + 0xb006, 0xb007, 0xb008, 0xb009, 0xb00a, 0xb00b, + /* 0x60 */ + 0xb00c, 0xb020, 0xb00d, 0xb00e, 0xb00f, 0x52fd, 0xb226, 0xb227, + 0xb228, 0xb45d, 0xb45e, 0xb45f, 0xb460, 0xb461, 0xb462, 0xb463, + 0xb464, 0xb465, 0xb557, 0xb6cf, 0xb6d0, 0xb799, 0xb79a, 0xb8ea, + 0xb8eb, 0xb8ec, 0xbb7e, 0xbb7f, 0xbb80, 0x52fd, 0x52fd, 0xbb81, + 0xbb82, 0xbbf3, 0xbc25, 0xbc9f, 0xbca0, 0xbcf3, 0xbd00, 0xc2eb, + 0xc2ec, 0xc2ed, 0xc2ee, 0xc2ef, 0x52fd, 0x105c, 0xc2f0, 0xc2f1, + 0xc2f2, 0xc2f3, 0xc2f4, 0xc2f5, 0xc2f9, 0xc2fa, 0xc2fb, 0xc2fc, + 0xc2fd, 0xc2fe, 0xc2ff, 0xc300, 0xfbae, 0xc301, 0xc302, 0xc503, + 0xc786, 0xc779, 0x52fd, 0xc77a, 0xc77b, 0xc77c, 0xc784, 0xc77d, + 0xc77e, 0xc77f, 0xca86, 0xca87, 0xcb00, 0xcb01, 0xcb88, 0xcb89, + 0xcb8a, 0xcdf5, 0x52fd, 0xce25, 0xcdf6, 0xd0eb, 0xd0ec, 0xd0ed, + 0xd0ee, 0x1287, 0xd0ef, 0xd0f0, 0xd26c, 0xd421, + /* 0x61 */ + 0xd422, 0xd423, 0xd424, 0xd425, 0xd426, 0xd57b, 0xd57c, 0xd691, + 0xd692, 0xd693, 0xd90e, 0xd90f, 0xd910, 0xdbb3, 0xdc36, 0xddc6, + 0xdda1, 0xdda2, 0x48b9, 0xdda3, 0xddcc, 0xdda4, 0xdda5, 0xdda6, + 0xddcb, 0xdda7, 0x52fd, 0xdda8, 0xdda9, 0xddaa, 0x52fd, 0xddab, + 0xddac, 0xddad, 0x48bf, 0xddae, 0xddaf, 0xddb0, 0xe08c, 0xe08d, + 0xe08e, 0xfbf1, 0xe092, 0xe08f, 0xe252, 0xe253, 0xe254, 0xe255, + 0xe429, 0x52fd, 0xe5f3, 0xe5f4, 0xe80d, 0xe80e, 0xe80f, 0xe810, + 0xe914, 0xea71, 0xea72, 0xec0f, 0xec04, 0xec06, 0x52fd, 0xec07, + 0xeddc, 0xeddd, 0xee6d, 0xee79, 0xee6e, 0x52fd, 0xefec, 0xf0dd, + 0xf0de, 0xf0df, 0xf0e0, 0xf0e1, 0xf0e2, 0xf0e3, 0xf0e4, 0xf13a, + 0xf0e5, 0x4ccf, 0xf0e6, 0xf36b, 0xf36c, 0x974e, 0x4e64, 0xf5bd, + 0xf5be, 0xf5bf, 0xf634, 0x4fbf, 0xf812, 0x5740, + /* 0x62 */ + 0x5741, 0x6402, 0x6403, 0x6404, 0x6405, 0x6406, 0x67d7, 0x67cc, + 0x6998, 0x6c06, 0x6c07, 0x6caf, 0x6cb0, 0x6dea, 0x6df2, 0x72a2, + 0x72a3, 0x72a4, 0x7476, 0x75f5, 0x75f6, 0x75f7, 0x52fd, 0x7c3b, + 0x7c25, 0x7c3a, 0x7c3c, 0x7c3d, 0x7c3e, 0x8137, 0x8138, 0x8139, + 0x813a, 0x813b, 0x813c, 0x813d, 0x813e, 0x813f, 0x814b, 0x52fd, + 0x8140, 0x8322, 0x8367, 0x83d3, 0x85fa, 0x52fd, 0x8abc, 0x52fd, + 0x52fd, 0x8aa5, 0x0807, 0x8ab6, 0x52fd, 0x8aa6, 0x8abb, 0x8aa7, + 0x8aa8, 0x8aa9, 0x8aaa, 0x8aab, 0x8aac, 0x8abf, 0x8aad, 0x8aae, + 0x8aaf, 0x8c2e, 0x8e00, 0x939d, 0x939e, 0x93cb, 0x93cc, 0x93cd, + 0x93ce, 0x93cf, 0x52fd, 0x939f, 0x93d0, 0x93d1, 0x93d2, 0x93d3, + 0x93d4, 0x52fd, 0x52fd, 0x975d, 0x975e, 0x975f, 0x9760, 0x0b05, + 0x9dba, 0x9dbc, 0x0b06, 0x9db5, 0x9dbd, 0x9db6, + /* 0x63 */ + 0x9db7, 0x9db8, 0x9da8, 0xfb32, 0x9efe, 0x9efc, 0xa1e1, 0xa3c4, + 0xa3c5, 0xa614, 0xa8ae, 0xa8af, 0xa8b0, 0xa8b1, 0xa8b9, 0xabe7, + 0xb046, 0x52fd, 0xb047, 0xb048, 0xb049, 0xb01e, 0xb01f, 0xb04a, + 0xb04b, 0xb04c, 0xb04d, 0xb04e, 0x52fd, 0xb246, 0xb24b, 0xb490, + 0xb491, 0x52fd, 0xb492, 0xb493, 0xb494, 0xb55b, 0xb8f2, 0xb8f8, + 0xb8f9, 0xbb94, 0xbba4, 0xbb97, 0xbb98, 0xbc29, 0xbcae, 0xbdaf, + 0xc359, 0xc35a, 0x52fd, 0xc35b, 0xc35c, 0xc35d, 0xc35e, 0xc35f, + 0xc360, 0xc361, 0xc2aa, 0xc362, 0xc363, 0xc364, 0xc365, 0xc366, + 0xc367, 0xc368, 0xc369, 0xc36a, 0xc36b, 0xc36c, 0xc36d, 0xc36e, + 0xc36f, 0x52fd, 0xc7b2, 0xc7b3, 0xc7b4, 0x10f9, 0xc7b5, 0xc7b6, + 0xc7b7, 0xc7b8, 0xc7b9, 0xc7ba, 0xc7bb, 0xca88, 0x42b8, 0xce19, + 0xce1a, 0xce1b, 0xcf16, 0xd10c, 0xd10d, 0xd10e, + /* 0x64 */ + 0xd10f, 0x52fd, 0xd283, 0xd284, 0xd285, 0xd583, 0xd584, 0xd6b0, + 0x52fd, 0xd926, 0xd927, 0xd936, 0xd928, 0xd929, 0x52fd, 0x52fd, + 0xdde7, 0xdde8, 0xdde9, 0x1453, 0xddea, 0xddeb, 0x52fd, 0xddec, + 0xdded, 0xddee, 0xddef, 0xddf0, 0xddf1, 0xde0c, 0xddf2, 0xddf3, + 0xddf4, 0xddf5, 0xddf6, 0xddf7, 0xddf8, 0xe0a3, 0xe0a4, 0xe0a5, + 0xe0a6, 0xe0a7, 0x52fd, 0xe25c, 0x52fd, 0xe44b, 0xe4e1, 0xe615, + 0x52fd, 0xe616, 0xe617, 0xe82c, 0xe82d, 0xe922, 0xe923, 0xea96, + 0xea97, 0x52fd, 0xec2e, 0xec30, 0xec31, 0x52fd, 0xeddf, 0xee8b, + 0xee8c, 0x52fd, 0xee8d, 0xeffc, 0xeffd, 0xeffe, 0xefff, 0xf117, + 0xf12d, 0xf118, 0x4cf3, 0xf119, 0x52fd, 0xf112, 0xf11a, 0xf11b, + 0xf11c, 0x1669, 0x52fd, 0xf397, 0x16e5, 0xf398, 0xf399, 0x52fd, + 0xf6c4, 0x574f, 0x57cd, 0x5dc7, 0x641c, 0x641d, + /* 0x65 */ + 0x641e, 0x67e7, 0x67e9, 0x67ea, 0x67eb, 0x6c15, 0x6ff1, 0x6ff2, + 0x72b6, 0x78a0, 0x7c4a, 0x7d20, 0x8160, 0x8161, 0x8141, 0x8162, + 0x8603, 0x8604, 0x8ad9, 0x8ada, 0x8adb, 0x8adc, 0x8add, 0x52fd, + 0x8ade, 0x8adf, 0x8ae0, 0x8ae1, 0x8ae2, 0x0812, 0x8ae3, 0x52fd, + 0x8f31, 0x9405, 0x9406, 0x9407, 0x9772, 0x978a, 0x978b, 0x9788, + 0x52fd, 0x978c, 0x978d, 0x978e, 0x978f, 0x9790, 0x9842, 0x9843, + 0x52fd, 0x9dc1, 0x9dc2, 0x9dc3, 0x9dc4, 0xa3cb, 0xa622, 0x52fd, + 0x52fd, 0xa8c3, 0xa8c4, 0xa8c5, 0xa8c6, 0xaa1e, 0xaa25, 0xabf3, + 0xabf4, 0x52fd, 0xabf5, 0xad38, 0xad48, 0xadca, 0x3b4f, 0xb07a, + 0xb07b, 0xb255, 0xb256, 0xb4b1, 0xb4b2, 0xb4b3, 0x52fd, 0xb4b4, + 0xb4b5, 0xb7a4, 0xb900, 0xb901, 0xb902, 0xbbac, 0x52fd, 0xbcb3, + 0xc3b6, 0xc3b7, 0xc3b8, 0xc3b9, 0xc3ba, 0xc3bb, + /* 0x66 */ + 0xc3bc, 0xc3bd, 0xc3be, 0xc3bf, 0xc3c0, 0xc3c1, 0xc3c2, 0xc3c3, + 0xc3c4, 0xc3c5, 0xc3c6, 0xc3c7, 0xc7e3, 0xc7e4, 0xc7e5, 0xc7e6, + 0xc7e7, 0x52fd, 0xcab5, 0xcaa1, 0xcb95, 0xce3b, 0xce3c, 0xce3d, + 0xce3e, 0xcf14, 0xd120, 0xd121, 0xd122, 0xd123, 0xd124, 0xd296, + 0xd297, 0xd298, 0xd494, 0xd495, 0xd496, 0xd497, 0xd498, 0xd58f, + 0xd590, 0xd6bc, 0xd73b, 0xd93d, 0x52fd, 0xdbdf, 0xdc1e, 0xde23, + 0xde24, 0xde49, 0xde25, 0xde26, 0xde27, 0xde28, 0x4925, 0xde29, + 0xde2a, 0xde2e, 0xde2f, 0xde4e, 0xde30, 0xfbeb, 0xde31, 0xde32, + 0xde33, 0xde34, 0xde35, 0xde36, 0x52fd, 0xde37, 0xde50, 0xde38, + 0x52fd, 0xde39, 0xde3a, 0xde3b, 0xde3c, 0xde3d, 0xde3e, 0xe0b8, + 0xe0b9, 0xe262, 0xe263, 0xe341, 0xe46d, 0x52fd, 0xe652, 0xe637, + 0xe6db, 0xe83f, 0xe934, 0xeb5b, 0xec46, 0xec5a, + /* 0x67 */ + 0xec5b, 0xede1, 0xede2, 0xede3, 0xede4, 0xeea7, 0xeea8, 0xeea9, + 0xf00f, 0xf02b, 0xf156, 0xf157, 0xf158, 0xf15e, 0xf159, 0xf15a, + 0xf15b, 0xf15c, 0x52fd, 0xf168, 0x52fd, 0xf42c, 0xf3e2, 0xf3f3, + 0xf5d2, 0xf656, 0xf6ce, 0xf761, 0xf99b, 0xf9b4, 0x575c, 0xfa10, + 0x57d2, 0x5871, 0x5973, 0x5b2c, 0x5e94, 0x52fd, 0x643f, 0x6440, + 0x67f9, 0x67fa, 0x67fd, 0x67fb, 0x6c1c, 0x6c1d, 0x6dff, 0x6e00, + 0x6ff7, 0x9ffe, 0x52fd, 0x77b6, 0x7c54, 0x8177, 0x8179, 0x817a, + 0x817b, 0x8369, 0x8b02, 0x8b03, 0x8b04, 0x8b05, 0x8b06, 0x8b07, + 0x8b08, 0x8b09, 0x8b0a, 0x8b0b, 0x8b35, 0x52fd, 0x8f39, 0x941e, + 0x941f, 0x9420, 0x9421, 0x52fd, 0x9422, 0x9423, 0x9424, 0x942c, + 0x97b3, 0x97b5, 0x97b6, 0x97b7, 0x97b8, 0x9dd0, 0x9ffa, 0xa207, + 0xa2bd, 0xa3d7, 0xa3d2, 0xa8db, 0xa8d6, 0x575d, + /* 0x68 */ + 0xad43, 0xadcf, 0xb0a3, 0xb0a4, 0xb0a5, 0xb0a6, 0xb0a7, 0xb0a8, + 0xb0a9, 0xb25d, 0xb25e, 0xb4c9, 0xb4ca, 0xb4cb, 0xb4cc, 0xb906, + 0xb907, 0x52fd, 0xbbc5, 0xbbf5, 0xbcb4, 0xbcb8, 0xbcb5, 0xc3fd, + 0x1077, 0xc3fe, 0xc3ff, 0xc400, 0xc401, 0xc402, 0xc403, 0xc409, + 0xc404, 0xc405, 0xc406, 0xc407, 0xc811, 0xc812, 0xc813, 0xc814, + 0xc815, 0x4277, 0xcb98, 0xcb99, 0xd13c, 0xd12d, 0xd12e, 0x52fd, + 0xd4bb, 0xd4bc, 0x1378, 0xd73d, 0xd947, 0xd948, 0xd949, 0xd94a, + 0xdae1, 0xdae7, 0xdbeb, 0xdc20, 0xdc38, 0xde62, 0xde67, 0xde68, + 0xde69, 0xde6a, 0xde6b, 0xde6d, 0xde6e, 0xde6f, 0xde70, 0xde71, + 0xde72, 0xde8f, 0xde73, 0xde74, 0xde75, 0xde76, 0xde77, 0xe0c9, + 0xe0ca, 0x4ae6, 0xe0cb, 0xe0cc, 0xe0cd, 0xe351, 0x52fd, 0x52fd, + 0xe545, 0xe859, 0xe85a, 0xe85b, 0xe940, 0xeacf, + /* 0x69 */ + 0xeb5e, 0xec7b, 0xed93, 0xeebc, 0xf016, 0xf030, 0x52fd, 0xf18d, + 0xf18e, 0x4d2f, 0xf18f, 0xf190, 0xf191, 0xf192, 0xf193, 0xf194, + 0xf195, 0xf196, 0xf423, 0xf414, 0xf5db, 0xf70a, 0xf8ce, 0x5766, + 0x5768, 0x5767, 0x57d3, 0x6463, 0x6804, 0x699e, 0x6c26, 0x6c2a, + 0x7c6c, 0x7c64, 0x818f, 0x8190, 0x8334, 0x860e, 0x8b25, 0x8b26, + 0x8b27, 0x52fd, 0x8b28, 0x2c0c, 0x52fd, 0x8b29, 0x8b2a, 0x8b2b, + 0x8b2c, 0x8f3e, 0x9442, 0x9443, 0x9433, 0x97c1, 0x97c2, 0x97c3, + 0x9dd6, 0x9dd7, 0xa8e1, 0xa8e2, 0xaa2b, 0xadd1, 0xb0cc, 0xb0cd, + 0xb0ce, 0xb0cf, 0xb4de, 0xb4df, 0xb4e0, 0xb4e1, 0xbbf6, 0xc42c, + 0x52fd, 0xc454, 0xc42d, 0xc42e, 0xc841, 0xc842, 0xcac7, 0xcba0, + 0xcba1, 0xce70, 0xce71, 0xce72, 0x52fd, 0xd134, 0xd135, 0xd136, + 0xd2a6, 0xd4cc, 0x52fd, 0xd599, 0xdbf4, 0xde9b, + /* 0x6a */ + 0xde9e, 0xde9f, 0xdea0, 0xdea1, 0xdea2, 0xdea3, 0xdea4, 0xdea5, + 0xdea6, 0xdea7, 0xdea8, 0xe0db, 0xe0dc, 0xe0dd, 0xe0d7, 0xe0de, + 0xe0df, 0xe359, 0xe746, 0xe865, 0xe949, 0x52fd, 0xeadd, 0xec95, + 0xec96, 0xec97, 0xeed4, 0xeed6, 0xf026, 0x4d47, 0x1688, 0xf1c8, + 0xf1c5, 0xf1c6, 0xf1c7, 0xf451, 0xf452, 0xf453, 0xf454, 0xf455, + 0xf5de, 0x52fd, 0x576d, 0x57d5, 0x6472, 0x74ae, 0x760f, 0x7c6b, + 0x7c6d, 0x7c6e, 0x7c78, 0x8198, 0x8199, 0x819a, 0x8b44, 0x8b5c, + 0x8b45, 0x8e01, 0x9458, 0x9459, 0x945a, 0x52fd, 0x97d9, 0x97d6, + 0x9dda, 0x9ddf, 0x9ddb, 0xa003, 0xa8ef, 0x3836, 0xaa33, 0xadd2, + 0xb0e1, 0xb26f, 0xb564, 0xb90e, 0xc450, 0xc451, 0xc452, 0xc856, + 0xc857, 0xc858, 0x52fd, 0xce81, 0xce82, 0xcf1d, 0xcf1e, 0xd143, + 0xd2aa, 0xdbfd, 0x52fd, 0xdec6, 0xdec7, 0xded9, + /* 0x6b */ + 0xded7, 0x52fd, 0xdec8, 0xdec9, 0xdeca, 0xdecb, 0xdeda, 0x52fd, + 0xdecc, 0xdecd, 0xdece, 0xdecf, 0xded0, 0xded1, 0xdebc, 0xe0e1, + 0xe0e2, 0xe0e3, 0xe4a9, 0xe54e, 0xe877, 0x52fd, 0x52fd, 0xecac, + 0xecad, 0xedb6, 0xeee5, 0xf1f8, 0xf1ea, 0xf28d, 0xf1eb, 0xf495, + 0x576e, 0x57d8, 0x6483, 0x69a3, 0x6c30, 0x6e0f, 0x7c79, 0x7c7a, + 0x81a7, 0x81a8, 0x81a9, 0x81aa, 0x8619, 0x8b50, 0x8b51, 0x8b52, + 0x2c15, 0x8b68, 0x8b53, 0x8b54, 0x9be2, 0x9ddc, 0xac15, 0xac16, + 0xad4f, 0xb0f5, 0xb0f6, 0xb0f7, 0xb4f4, 0xb7cc, 0xb90f, 0xc466, + 0xc467, 0x52fd, 0xc468, 0xcba4, 0xce8b, 0xce8c, 0xd4fa, 0xdee6, + 0xdeed, 0xdeee, 0xdeef, 0xdef0, 0xdefe, 0xe0e7, 0xe0e8, 0xe4b3, + 0xe4e4, 0xe883, 0xedec, 0x52fd, 0xf216, 0x52fd, 0x52fd, 0xf217, + 0xf4c3, 0xf4ac, 0xf5ed, 0x52fd, 0x52fd, 0xf8b4, + /* 0x6c */ + 0x52fd, 0x648a, 0x648b, 0x6c34, 0x6e14, 0x72df, 0x77bb, 0x7c7f, + 0x7c81, 0x81ad, 0x81ae, 0x8b62, 0x8b6e, 0x52fd, 0x946e, 0x52fd, + 0x9a17, 0x9de6, 0x9f10, 0xac19, 0x52fd, 0xb910, 0xbdf2, 0xc476, + 0xc477, 0xce95, 0xce96, 0xdf00, 0xdf01, 0xdf31, 0xfbed, 0xdf1c, + 0xe36d, 0xeef4, 0xeef5, 0xf03d, 0xf232, 0xf233, 0xf5f4, 0x52fd, + 0x5773, 0x6c37, 0x52fd, 0x8b71, 0xb10f, 0x52fd, 0xb10e, 0xb911, + 0xc485, 0xdf14, 0xdf15, 0xdf16, 0xdf17, 0xdf18, 0xdf19, 0xdf1a, + 0xe4c3, 0xf242, 0xf243, 0xf244, 0xf248, 0xf4fb, 0x69a5, 0x6cb8, + 0x81b2, 0x833d, 0x8b72, 0x97e7, 0x97e8, 0xa659, 0xaa3a, 0xb114, + 0xb4ff, 0xbcc0, 0xc48d, 0x1084, 0xc48e, 0x52fd, 0xdf22, 0x52fd, + 0x52fd, 0xef04, 0xef29, 0xf251, 0xf266, 0xf50e, 0xfc13, 0x52fd, + 0x649b, 0x649c, 0x7616, 0x7c86, 0x7c87, 0x52fd, + /* 0x6d */ + 0xdf2c, 0xdf30, 0xdf28, 0xe95f, 0x52fd, 0x947e, 0xb119, 0xd50a, + 0xdf36, 0xe0fc, 0xf26d, 0xf26e, 0xf9c6, 0x1ab5, 0x8b7b, 0xb506, + 0xc89f, 0xf532, 0xd50d, 0x7c8b, 0xdf3b, 0x52fd, 0xf53d, 0xdf3c, + 0xdf3d, +}; + +static const ucs4_t cns11643_15_2uni_upages[253] = { + 0x03400, 0x03500, 0x03600, 0x03700, 0x03800, 0x03900, 0x03a00, 0x03b00, + 0x03c00, 0x03d00, 0x03e00, 0x03f00, 0x04000, 0x04100, 0x04300, 0x04400, + 0x04500, 0x04600, 0x04700, 0x04800, 0x04900, 0x04a00, 0x04c00, 0x04f00, + 0x05100, 0x05200, 0x05300, 0x05400, 0x05500, 0x05600, 0x05700, 0x05800, + 0x05a00, 0x05b00, 0x05c00, 0x05e00, 0x05f00, 0x06200, 0x06500, 0x06600, + 0x06700, 0x06800, 0x06900, 0x06a00, 0x06b00, 0x06c00, 0x06e00, 0x06f00, + 0x07000, 0x07100, 0x07300, 0x07400, 0x07500, 0x07600, 0x07700, 0x07800, + 0x07900, 0x07a00, 0x07b00, 0x07c00, 0x07d00, 0x07f00, 0x08200, 0x08300, + 0x08600, 0x08700, 0x08900, 0x08a00, 0x08e00, 0x08f00, 0x09000, 0x09200, + 0x09300, 0x09400, 0x09500, 0x09600, 0x09b00, 0x09c00, 0x09d00, 0x09e00, + 0x09f00, 0x0fa00, 0x0ff00, 0x20000, 0x20100, 0x20200, 0x20300, 0x20400, + 0x20500, 0x20600, 0x20700, 0x20800, 0x20900, 0x20a00, 0x20b00, 0x20c00, + 0x20d00, 0x20e00, 0x20f00, 0x21000, 0x21100, 0x21200, 0x21300, 0x21400, + 0x21500, 0x21600, 0x21700, 0x21800, 0x21900, 0x21a00, 0x21b00, 0x21c00, + 0x21d00, 0x21e00, 0x21f00, 0x22000, 0x22100, 0x22200, 0x22300, 0x22400, + 0x22500, 0x22600, 0x22700, 0x22800, 0x22900, 0x22a00, 0x22b00, 0x22c00, + 0x22d00, 0x22e00, 0x22f00, 0x23000, 0x23100, 0x23200, 0x23300, 0x23400, + 0x23500, 0x23600, 0x23700, 0x23800, 0x23900, 0x23a00, 0x23b00, 0x23c00, + 0x23d00, 0x23e00, 0x23f00, 0x24000, 0x24100, 0x24200, 0x24300, 0x24400, + 0x24500, 0x24600, 0x24700, 0x24800, 0x24900, 0x24a00, 0x24b00, 0x24c00, + 0x24d00, 0x24e00, 0x24f00, 0x25000, 0x25100, 0x25200, 0x25300, 0x25400, + 0x25500, 0x25600, 0x25700, 0x25800, 0x25900, 0x25a00, 0x25b00, 0x25c00, + 0x25d00, 0x25e00, 0x25f00, 0x26000, 0x26100, 0x26200, 0x26300, 0x26400, + 0x26500, 0x26600, 0x26700, 0x26800, 0x26900, 0x26a00, 0x26b00, 0x26c00, + 0x26d00, 0x26e00, 0x26f00, 0x27000, 0x27100, 0x27200, 0x27300, 0x27400, + 0x27500, 0x27600, 0x27700, 0x27800, 0x27900, 0x27a00, 0x27b00, 0x27c00, + 0x27d00, 0x27e00, 0x27f00, 0x28000, 0x28100, 0x28200, 0x28300, 0x28400, + 0x28500, 0x28600, 0x28700, 0x28800, 0x28900, 0x28a00, 0x28b00, 0x28c00, + 0x28d00, 0x28e00, 0x28f00, 0x29000, 0x29100, 0x29200, 0x29300, 0x29400, + 0x29500, 0x29600, 0x29700, 0x29800, 0x29900, 0x29a00, 0x29b00, 0x29c00, + 0x29d00, 0x29e00, 0x29f00, 0x2a000, 0x2a100, 0x2a200, 0x2a300, 0x2a400, + 0x2a500, 0x2a600, 0x2f800, 0x2f900, 0x2fa00, +}; + +static int +cns11643_15_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 >= 0x21 && c1 <= 0x6d)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if (c2 >= 0x21 && c2 < 0x7f) { + unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); + ucs4_t wc = 0xfffd; + unsigned short swc; + { + if (i < 7169) + swc = cns11643_15_2uni_page21[i], + wc = cns11643_15_2uni_upages[swc>>8] | (swc & 0xff); + } + if (wc != 0xfffd) { + *pwc = wc; + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + diff --git a/graf2d/win32gdk/gdk/src/iconv/cns11643_2.h b/graf2d/win32gdk/gdk/src/iconv/cns11643_2.h new file mode 100644 index 00000000000..7a73c60fa73 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cns11643_2.h @@ -0,0 +1,1112 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CNS 11643-1992 plane 2 + */ + +static const unsigned short cns11643_2_2uni_page21[7650] = { + /* 0x21 */ + 0x4e42, 0x4e5c, 0x51f5, 0x531a, 0x5382, 0x4e07, 0x4e0c, 0x4e47, + 0x4e8d, 0x56d7, 0x5c6e, 0x5f73, 0x4e0f, 0x5187, 0x4e0e, 0x4e2e, + 0x4e93, 0x4ec2, 0x4ec9, 0x4ec8, 0x5198, 0x52fc, 0x536c, 0x53b9, + 0x5720, 0x5903, 0x592c, 0x5c10, 0x5dff, 0x65e1, 0x6bb3, 0x6bcc, + 0x6c14, 0x723f, 0x4e31, 0x4e3c, 0x4ee8, 0x4edc, 0x4ee9, 0x4ee1, + 0x4edd, 0x4eda, 0x520c, 0x5209, 0x531c, 0x534c, 0x5722, 0x5723, + 0x5917, 0x592f, 0x5b81, 0x5b84, 0x5c12, 0x5c3b, 0x5c74, 0x5c73, + 0x5e04, 0x5e80, 0x5e82, 0x5fc9, 0x6209, 0x6250, 0x6c15, 0x6c36, + 0x6c43, 0x6c3f, 0x6c3b, 0x72ae, 0x72b0, 0x738a, 0x79b8, 0x808a, + 0x961e, 0x4f0e, 0x4f18, 0x4f2c, 0x4ef5, 0x4f14, 0x4ef1, 0x4f00, + 0x4ef7, 0x4f08, 0x4f1d, 0x4f02, 0x4f05, 0x4f22, 0x4f13, 0x4f04, + 0x4ef4, 0x4f12, 0x51b1, 0x5213, 0x5210, 0x52a6, + /* 0x22 */ + 0x5322, 0x531f, 0x534d, 0x538a, 0x5407, 0x56e1, 0x56df, 0x572e, + 0x572a, 0x5734, 0x593c, 0x5980, 0x597c, 0x5985, 0x597b, 0x597e, + 0x5977, 0x597f, 0x5b56, 0x5c15, 0x5c25, 0x5c7c, 0x5c7a, 0x5c7b, + 0x5c7e, 0x5ddf, 0x5e75, 0x5e84, 0x5f02, 0x5f1a, 0x5f74, 0x5fd5, + 0x5fd4, 0x5fcf, 0x625c, 0x625e, 0x6264, 0x6261, 0x6266, 0x6262, + 0x6259, 0x6260, 0x625a, 0x6265, 0x6537, 0x65ef, 0x65ee, 0x673e, + 0x6739, 0x6738, 0x673b, 0x673a, 0x673f, 0x673c, 0x6733, 0x6c18, + 0x6c46, 0x6c52, 0x6c5c, 0x6c4f, 0x6c4a, 0x6c54, 0x6c4b, 0x6c4c, + 0x7071, 0x725e, 0x72b4, 0x72b5, 0x738e, 0x752a, 0x767f, 0x7a75, + 0x7f51, 0x8278, 0x827c, 0x8280, 0x827d, 0x827f, 0x864d, 0x897e, + 0x9099, 0x9097, 0x9098, 0x909b, 0x9094, 0x9622, 0x9624, 0x9620, + 0x9623, 0x4f56, 0x4f3b, 0x4f62, 0x4f49, 0x4f53, + /* 0x23 */ + 0x4f64, 0x4f3e, 0x4f67, 0x4f52, 0x4f5f, 0x4f41, 0x4f58, 0x4f2d, + 0x4f33, 0x4f3f, 0x4f61, 0x518f, 0x51b9, 0x521c, 0x521e, 0x5221, + 0x52ad, 0x52ae, 0x5309, 0x5363, 0x5372, 0x538e, 0x538f, 0x5430, + 0x5437, 0x542a, 0x5454, 0x5445, 0x5419, 0x541c, 0x5425, 0x5418, + 0x543d, 0x544f, 0x5441, 0x5428, 0x5424, 0x5447, 0x56ee, 0x56e7, + 0x56e5, 0x5741, 0x5745, 0x574c, 0x5749, 0x574b, 0x5752, 0x5906, + 0x5940, 0x59a6, 0x5998, 0x59a0, 0x5997, 0x598e, 0x59a2, 0x5990, + 0x598f, 0x59a7, 0x59a1, 0x5b8e, 0x5b92, 0x5c28, 0x5c2a, 0x5c8d, + 0x5c8f, 0x5c88, 0x5c8b, 0x5c89, 0x5c92, 0x5c8a, 0x5c86, 0x5c93, + 0x5c95, 0x5de0, 0x5e0a, 0x5e0e, 0x5e8b, 0x5e89, 0x5e8c, 0x5e88, + 0x5e8d, 0x5f05, 0x5f1d, 0x5f78, 0x5f76, 0x5fd2, 0x5fd1, 0x5fd0, + 0x5fed, 0x5fe8, 0x5fee, 0x5ff3, 0x5fe1, 0x5fe4, + /* 0x24 */ + 0x5fe3, 0x5ffa, 0x5fef, 0x5ff7, 0x5ffb, 0x6000, 0x5ff4, 0x623a, + 0x6283, 0x628c, 0x628e, 0x628f, 0x6294, 0x6287, 0x6271, 0x627b, + 0x627a, 0x6270, 0x6281, 0x6288, 0x6277, 0x627d, 0x6272, 0x6274, + 0x65f0, 0x65f4, 0x65f3, 0x65f2, 0x65f5, 0x6745, 0x6747, 0x6759, + 0x6755, 0x674c, 0x6748, 0x675d, 0x674d, 0x675a, 0x674b, 0x6bd0, + 0x6c19, 0x6c1a, 0x6c78, 0x6c67, 0x6c6b, 0x6c84, 0x6c8b, 0x6c8f, + 0x6c71, 0x6c6f, 0x6c69, 0x6c9a, 0x6c6d, 0x6c87, 0x6c95, 0x6c9c, + 0x6c66, 0x6c73, 0x6c65, 0x6c7b, 0x6c8e, 0x7074, 0x707a, 0x7263, + 0x72bf, 0x72bd, 0x72c3, 0x72c6, 0x72c1, 0x72ba, 0x72c5, 0x7395, + 0x7397, 0x7393, 0x7394, 0x7392, 0x753a, 0x7539, 0x7594, 0x7595, + 0x7681, 0x793d, 0x8034, 0x8095, 0x8099, 0x8090, 0x8092, 0x809c, + 0x8290, 0x828f, 0x8285, 0x828e, 0x8291, 0x8293, + /* 0x25 */ + 0x828a, 0x8283, 0x8284, 0x8c78, 0x8fc9, 0x8fbf, 0x909f, 0x90a1, + 0x90a5, 0x909e, 0x90a7, 0x90a0, 0x9630, 0x9628, 0x962f, 0x962d, + 0x4e33, 0x4f98, 0x4f7c, 0x4f85, 0x4f7d, 0x4f80, 0x4f87, 0x4f76, + 0x4f74, 0x4f89, 0x4f84, 0x4f77, 0x4f4c, 0x4f97, 0x4f6a, 0x4f9a, + 0x4f79, 0x4f81, 0x4f78, 0x4f90, 0x4f9c, 0x4f94, 0x4f9e, 0x4f92, + 0x4f82, 0x4f95, 0x4f6b, 0x4f6e, 0x519e, 0x51bc, 0x51be, 0x5235, + 0x5232, 0x5233, 0x5246, 0x5231, 0x52bc, 0x530a, 0x530b, 0x533c, + 0x5392, 0x5394, 0x5487, 0x547f, 0x5481, 0x5491, 0x5482, 0x5488, + 0x546b, 0x547a, 0x547e, 0x5465, 0x546c, 0x5474, 0x5466, 0x548d, + 0x546f, 0x5461, 0x5460, 0x5498, 0x5463, 0x5467, 0x5464, 0x56f7, + 0x56f9, 0x576f, 0x5772, 0x576d, 0x576b, 0x5771, 0x5770, 0x5776, + 0x5780, 0x5775, 0x577b, 0x5773, 0x5774, 0x5762, + /* 0x26 */ + 0x5768, 0x577d, 0x590c, 0x5945, 0x59b5, 0x59ba, 0x59cf, 0x59ce, + 0x59b2, 0x59cc, 0x59c1, 0x59b6, 0x59bc, 0x59c3, 0x59d6, 0x59b1, + 0x59bd, 0x59c0, 0x59c8, 0x59b4, 0x59c7, 0x5b62, 0x5b65, 0x5b93, + 0x5b95, 0x5c44, 0x5c47, 0x5cae, 0x5ca4, 0x5ca0, 0x5cb5, 0x5caf, + 0x5ca8, 0x5cac, 0x5c9f, 0x5ca3, 0x5cad, 0x5ca2, 0x5caa, 0x5ca7, + 0x5c9d, 0x5ca5, 0x5cb6, 0x5cb0, 0x5ca6, 0x5e17, 0x5e14, 0x5e19, + 0x5f28, 0x5f22, 0x5f23, 0x5f24, 0x5f54, 0x5f82, 0x5f7e, 0x5f7d, + 0x5fde, 0x5fe5, 0x602d, 0x6026, 0x6019, 0x6032, 0x600b, 0x6034, + 0x600a, 0x6017, 0x6033, 0x601a, 0x601e, 0x602c, 0x6022, 0x600d, + 0x6010, 0x602e, 0x6013, 0x6011, 0x600c, 0x6009, 0x601c, 0x6214, + 0x623d, 0x62ad, 0x62b4, 0x62d1, 0x62be, 0x62aa, 0x62b6, 0x62ca, + 0x62ae, 0x62b3, 0x62af, 0x62bb, 0x62a9, 0x62b0, + /* 0x27 */ + 0x62b8, 0x653d, 0x65a8, 0x65bb, 0x6609, 0x65fc, 0x6604, 0x6612, + 0x6608, 0x65fb, 0x6603, 0x660b, 0x660d, 0x6605, 0x65fd, 0x6611, + 0x6610, 0x66f6, 0x670a, 0x6785, 0x676c, 0x678e, 0x6792, 0x6776, + 0x677b, 0x6798, 0x6786, 0x6784, 0x6774, 0x678d, 0x678c, 0x677a, + 0x679f, 0x6791, 0x6799, 0x6783, 0x677d, 0x6781, 0x6778, 0x6779, + 0x6794, 0x6b25, 0x6b80, 0x6b7e, 0x6bde, 0x6c1d, 0x6c93, 0x6cec, + 0x6ceb, 0x6cee, 0x6cd9, 0x6cb6, 0x6cd4, 0x6cad, 0x6ce7, 0x6cb7, + 0x6cd0, 0x6cc2, 0x6cba, 0x6cc3, 0x6cc6, 0x6ced, 0x6cf2, 0x6cd2, + 0x6cdd, 0x6cb4, 0x6c8a, 0x6c9d, 0x6c80, 0x6cde, 0x6cc0, 0x6d30, + 0x6ccd, 0x6cc7, 0x6cb0, 0x6cf9, 0x6ccf, 0x6ce9, 0x6cd1, 0x7094, + 0x7098, 0x7085, 0x7093, 0x7086, 0x7084, 0x7091, 0x7096, 0x7082, + 0x709a, 0x7083, 0x726a, 0x72d6, 0x72cb, 0x72d8, + /* 0x28 */ + 0x72c9, 0x72dc, 0x72d2, 0x72d4, 0x72da, 0x72cc, 0x72d1, 0x73a4, + 0x73a1, 0x73ad, 0x73a6, 0x73a2, 0x73a0, 0x73ac, 0x739d, 0x74dd, + 0x74e8, 0x753f, 0x7540, 0x753e, 0x758c, 0x7598, 0x76af, 0x76f3, + 0x76f1, 0x76f0, 0x76f5, 0x77f8, 0x77fc, 0x77f9, 0x77fb, 0x77fa, + 0x77f7, 0x7942, 0x793f, 0x79c5, 0x7a78, 0x7a7b, 0x7afb, 0x7c75, + 0x7cfd, 0x8035, 0x808f, 0x80ae, 0x80a3, 0x80b8, 0x80b5, 0x80ad, + 0x8220, 0x82a0, 0x82c0, 0x82ab, 0x829a, 0x8298, 0x829b, 0x82b5, + 0x82a7, 0x82ae, 0x82bc, 0x829e, 0x82ba, 0x82b4, 0x82a8, 0x82a1, + 0x82a9, 0x82c2, 0x82a4, 0x82c3, 0x82b6, 0x82a2, 0x8670, 0x866f, + 0x866d, 0x866e, 0x8c56, 0x8fd2, 0x8fcb, 0x8fd3, 0x8fcd, 0x8fd6, + 0x8fd5, 0x8fd7, 0x90b2, 0x90b4, 0x90af, 0x90b3, 0x90b0, 0x9639, + 0x963d, 0x963c, 0x963a, 0x9643, 0x4fcd, 0x4fc5, + /* 0x29 */ + 0x4fd3, 0x4fb2, 0x4fc9, 0x4fcb, 0x4fc1, 0x4fd4, 0x4fdc, 0x4fd9, + 0x4fbb, 0x4fb3, 0x4fdb, 0x4fc7, 0x4fd6, 0x4fba, 0x4fc0, 0x4fb9, + 0x4fec, 0x5244, 0x5249, 0x52c0, 0x52c2, 0x533d, 0x537c, 0x5397, + 0x5396, 0x5399, 0x5398, 0x54ba, 0x54a1, 0x54ad, 0x54a5, 0x54cf, + 0x54c3, 0x830d, 0x54b7, 0x54ae, 0x54d6, 0x54b6, 0x54c5, 0x54c6, + 0x54a0, 0x5470, 0x54bc, 0x54a2, 0x54be, 0x5472, 0x54de, 0x54b0, + 0x57b5, 0x579e, 0x579f, 0x57a4, 0x578c, 0x5797, 0x579d, 0x579b, + 0x5794, 0x5798, 0x578f, 0x5799, 0x57a5, 0x579a, 0x5795, 0x58f4, + 0x590d, 0x5953, 0x59e1, 0x59de, 0x59ee, 0x5a00, 0x59f1, 0x59dd, + 0x59fa, 0x59fd, 0x59fc, 0x59f6, 0x59e4, 0x59f2, 0x59f7, 0x59db, + 0x59e9, 0x59f3, 0x59f5, 0x59e0, 0x59fe, 0x59f4, 0x59ed, 0x5ba8, + 0x5c4c, 0x5cd0, 0x5cd8, 0x5ccc, 0x5cd7, 0x5ccb, + /* 0x2a */ + 0x5cdb, 0x5cde, 0x5cda, 0x5cc9, 0x5cc7, 0x5cca, 0x5cd6, 0x5cd3, + 0x5cd4, 0x5ccf, 0x5cc8, 0x5cc6, 0x5cce, 0x5cdf, 0x5cf8, 0x5df9, + 0x5e21, 0x5e22, 0x5e23, 0x5e20, 0x5e24, 0x5eb0, 0x5ea4, 0x5ea2, + 0x5e9b, 0x5ea3, 0x5ea5, 0x5f07, 0x5f2e, 0x5f56, 0x5f86, 0x6037, + 0x6039, 0x6054, 0x6072, 0x605e, 0x6045, 0x6053, 0x6047, 0x6049, + 0x605b, 0x604c, 0x6040, 0x6042, 0x605f, 0x6024, 0x6044, 0x6058, + 0x6066, 0x606e, 0x6242, 0x6243, 0x62cf, 0x630d, 0x630b, 0x62f5, + 0x630e, 0x6303, 0x62eb, 0x62f9, 0x630f, 0x630c, 0x62f8, 0x62f6, + 0x6300, 0x6313, 0x6314, 0x62fa, 0x6315, 0x62fb, 0x62f0, 0x6541, + 0x6543, 0x65aa, 0x65bf, 0x6636, 0x6621, 0x6632, 0x6635, 0x661c, + 0x6626, 0x6622, 0x6633, 0x662b, 0x663a, 0x661d, 0x6634, 0x6639, + 0x662e, 0x670f, 0x6710, 0x67c1, 0x67f2, 0x67c8, + /* 0x2b */ + 0x67ba, 0x67dc, 0x67bb, 0x67f8, 0x67d8, 0x67c0, 0x67b7, 0x67c5, + 0x67eb, 0x67e4, 0x67df, 0x67b5, 0x67cd, 0x67b3, 0x67f7, 0x67f6, + 0x67ee, 0x67e3, 0x67c2, 0x67b9, 0x67ce, 0x67e7, 0x67f0, 0x67b2, + 0x67fc, 0x67c6, 0x67ed, 0x67cc, 0x67ae, 0x67e6, 0x67db, 0x67fa, + 0x67c9, 0x67ca, 0x67c3, 0x67ea, 0x67cb, 0x6b28, 0x6b82, 0x6b84, + 0x6bb6, 0x6bd6, 0x6bd8, 0x6be0, 0x6c20, 0x6c21, 0x6d28, 0x6d34, + 0x6d2d, 0x6d1f, 0x6d3c, 0x6d3f, 0x6d12, 0x6d0a, 0x6cda, 0x6d33, + 0x6d04, 0x6d19, 0x6d3a, 0x6d1a, 0x6d11, 0x6d00, 0x6d1d, 0x6d42, + 0x6d01, 0x6d18, 0x6d37, 0x6d03, 0x6d0f, 0x6d40, 0x6d07, 0x6d20, + 0x6d2c, 0x6d08, 0x6d22, 0x6d09, 0x6d10, 0x70b7, 0x709f, 0x70be, + 0x70b1, 0x70b0, 0x70a1, 0x70b4, 0x70b5, 0x70a9, 0x7241, 0x7249, + 0x724a, 0x726c, 0x7270, 0x7273, 0x726e, 0x72ca, + /* 0x2c */ + 0x72e4, 0x72e8, 0x72eb, 0x72df, 0x72ea, 0x72e6, 0x72e3, 0x7385, + 0x73cc, 0x73c2, 0x73c8, 0x73c5, 0x73b9, 0x73b6, 0x73b5, 0x73b4, + 0x73eb, 0x73bf, 0x73c7, 0x73be, 0x73c3, 0x73c6, 0x73b8, 0x73cb, + 0x74ec, 0x74ee, 0x752e, 0x7547, 0x7548, 0x75a7, 0x75aa, 0x7679, + 0x76c4, 0x7708, 0x7703, 0x7704, 0x7705, 0x770a, 0x76f7, 0x76fb, + 0x76fa, 0x77e7, 0x77e8, 0x7806, 0x7811, 0x7812, 0x7805, 0x7810, + 0x780f, 0x780e, 0x7809, 0x7803, 0x7813, 0x794a, 0x794c, 0x794b, + 0x7945, 0x7944, 0x79d5, 0x79cd, 0x79cf, 0x79d6, 0x79ce, 0x7a80, + 0x7a7e, 0x7ad1, 0x7b00, 0x7b01, 0x7c7a, 0x7c78, 0x7c79, 0x7c7f, + 0x7c80, 0x7c81, 0x7d03, 0x7d08, 0x7d01, 0x7f58, 0x7f91, 0x7f8d, + 0x7fbe, 0x8007, 0x800e, 0x800f, 0x8014, 0x8037, 0x80d8, 0x80c7, + 0x80e0, 0x80d1, 0x80c8, 0x80c2, 0x80d0, 0x80c5, + /* 0x2d */ + 0x80e3, 0x80d9, 0x80dc, 0x80ca, 0x80d5, 0x80c9, 0x80cf, 0x80d7, + 0x80e6, 0x80cd, 0x81ff, 0x8221, 0x8294, 0x82d9, 0x82fe, 0x82f9, + 0x8307, 0x82e8, 0x8300, 0x82d5, 0x833a, 0x82eb, 0x82d6, 0x82f4, + 0x82ec, 0x82e1, 0x82f2, 0x82f5, 0x830c, 0x82fb, 0x82f6, 0x82f0, + 0x82ea, 0x82e4, 0x82e0, 0x82fa, 0x82f3, 0x82ed, 0x8677, 0x8674, + 0x867c, 0x8673, 0x8841, 0x884e, 0x8867, 0x886a, 0x8869, 0x89d3, + 0x8a04, 0x8a07, 0x8d72, 0x8fe3, 0x8fe1, 0x8fee, 0x8fe0, 0x90f1, + 0x90bd, 0x90bf, 0x90d5, 0x90c5, 0x90be, 0x90c7, 0x90cb, 0x90c8, + 0x91d4, 0x91d3, 0x9654, 0x964f, 0x9651, 0x9653, 0x964a, 0x964e, + 0x501e, 0x5005, 0x5007, 0x5013, 0x5022, 0x5030, 0x501b, 0x4ff5, + 0x4ff4, 0x5033, 0x5037, 0x502c, 0x4ff6, 0x4ff7, 0x5017, 0x501c, + 0x5020, 0x5027, 0x5035, 0x502f, 0x5031, 0x500e, + /* 0x2e */ + 0x515a, 0x5194, 0x5193, 0x51ca, 0x51c4, 0x51c5, 0x51c8, 0x51ce, + 0x5261, 0x525a, 0x5252, 0x525e, 0x525f, 0x5255, 0x5262, 0x52cd, + 0x530e, 0x539e, 0x5526, 0x54e2, 0x5517, 0x5512, 0x54e7, 0x54f3, + 0x54e4, 0x551a, 0x54ff, 0x5504, 0x5508, 0x54eb, 0x5511, 0x5505, + 0x54f1, 0x550a, 0x54fb, 0x54f7, 0x54f8, 0x54e0, 0x550e, 0x5503, + 0x550b, 0x5701, 0x5702, 0x57cc, 0x5832, 0x57d5, 0x57d2, 0x57ba, + 0x57c6, 0x57bd, 0x57bc, 0x57b8, 0x57b6, 0x57bf, 0x57c7, 0x57d0, + 0x57b9, 0x57c1, 0x590e, 0x594a, 0x5a19, 0x5a16, 0x5a2d, 0x5a2e, + 0x5a15, 0x5a0f, 0x5a17, 0x5a0a, 0x5a1e, 0x5a33, 0x5b6c, 0x5ba7, + 0x5bad, 0x5bac, 0x5c03, 0x5c56, 0x5c54, 0x5cec, 0x5cff, 0x5cee, + 0x5cf1, 0x5cf7, 0x5d00, 0x5cf9, 0x5e29, 0x5e28, 0x5ea8, 0x5eae, + 0x5eaa, 0x5eac, 0x5f33, 0x5f30, 0x5f67, 0x605d, + /* 0x2f */ + 0x605a, 0x6067, 0x6041, 0x60a2, 0x6088, 0x6080, 0x6092, 0x6081, + 0x609d, 0x6083, 0x6095, 0x609b, 0x6097, 0x6087, 0x609c, 0x608e, + 0x6219, 0x6246, 0x62f2, 0x6310, 0x6356, 0x632c, 0x6344, 0x6345, + 0x6336, 0x6343, 0x63e4, 0x6339, 0x634b, 0x634a, 0x633c, 0x6329, + 0x6341, 0x6334, 0x6358, 0x6354, 0x6359, 0x632d, 0x6347, 0x6333, + 0x635a, 0x6351, 0x6338, 0x6357, 0x6340, 0x6348, 0x654a, 0x6546, + 0x65c6, 0x65c3, 0x65c4, 0x65c2, 0x664a, 0x665f, 0x6647, 0x6651, + 0x6712, 0x6713, 0x681f, 0x681a, 0x6849, 0x6832, 0x6833, 0x683b, + 0x684b, 0x684f, 0x6816, 0x6831, 0x681c, 0x6835, 0x682b, 0x682d, + 0x682f, 0x684e, 0x6844, 0x6834, 0x681d, 0x6812, 0x6814, 0x6826, + 0x6828, 0x682e, 0x684d, 0x683a, 0x6825, 0x6820, 0x6b2c, 0x6b2f, + 0x6b2d, 0x6b31, 0x6b34, 0x6b6d, 0x8082, 0x6b88, + /* 0x30 */ + 0x6be6, 0x6be4, 0x6be8, 0x6be3, 0x6be2, 0x6be7, 0x6c25, 0x6d7a, + 0x6d63, 0x6d64, 0x6d76, 0x6d0d, 0x6d61, 0x6d92, 0x6d58, 0x6d62, + 0x6d6d, 0x6d6f, 0x6d91, 0x6d8d, 0x6def, 0x6d7f, 0x6d86, 0x6d5e, + 0x6d67, 0x6d60, 0x6d97, 0x6d70, 0x6d7c, 0x6d5f, 0x6d82, 0x6d98, + 0x6d2f, 0x6d68, 0x6d8b, 0x6d7e, 0x6d80, 0x6d84, 0x6d16, 0x6d83, + 0x6d7b, 0x6d7d, 0x6d75, 0x6d90, 0x70dc, 0x70d3, 0x70d1, 0x70dd, + 0x70cb, 0x7f39, 0x70e2, 0x70d7, 0x70d2, 0x70de, 0x70e0, 0x70d4, + 0x70cd, 0x70c5, 0x70c6, 0x70c7, 0x70da, 0x70ce, 0x70e1, 0x7242, + 0x7278, 0x7277, 0x7276, 0x7300, 0x72fa, 0x72f4, 0x72fe, 0x72f6, + 0x72f3, 0x72fb, 0x7301, 0x73d3, 0x73d9, 0x73e5, 0x73d6, 0x73bc, + 0x73e7, 0x73e3, 0x73e9, 0x73dc, 0x73d2, 0x73db, 0x73d4, 0x73dd, + 0x73da, 0x73d7, 0x73d8, 0x73e8, 0x74de, 0x74df, + /* 0x31 */ + 0x74f4, 0x74f5, 0x7521, 0x755b, 0x755f, 0x75b0, 0x75c1, 0x75bb, + 0x75c4, 0x75c0, 0x75bf, 0x75b6, 0x75ba, 0x768a, 0x76c9, 0x771d, + 0x771b, 0x7710, 0x7713, 0x7712, 0x7723, 0x7711, 0x7715, 0x7719, + 0x771a, 0x7722, 0x7727, 0x7823, 0x782c, 0x7822, 0x7835, 0x782f, + 0x7828, 0x782e, 0x782b, 0x7821, 0x7829, 0x7833, 0x782a, 0x7831, + 0x7954, 0x795b, 0x794f, 0x795c, 0x7953, 0x7952, 0x7951, 0x79eb, + 0x79ec, 0x79e0, 0x79ee, 0x79ed, 0x79ea, 0x79dc, 0x79de, 0x79dd, + 0x7a86, 0x7a89, 0x7a85, 0x7a8b, 0x7a8c, 0x7a8a, 0x7a87, 0x7ad8, + 0x7b10, 0x7b04, 0x7b13, 0x7b05, 0x7b0f, 0x7b08, 0x7b0a, 0x7b0e, + 0x7b09, 0x7b12, 0x7c84, 0x7c91, 0x7c8a, 0x7c8c, 0x7c88, 0x7c8d, + 0x7c85, 0x7d1e, 0x7d1d, 0x7d11, 0x7d0e, 0x7d18, 0x7d16, 0x7d13, + 0x7d1f, 0x7d12, 0x7d0f, 0x7d0c, 0x7f5c, 0x7f61, + /* 0x32 */ + 0x7f5e, 0x7f60, 0x7f5d, 0x7f5b, 0x7f96, 0x7f92, 0x7fc3, 0x7fc2, + 0x7fc0, 0x8016, 0x803e, 0x8039, 0x80fa, 0x80f2, 0x80f9, 0x80f5, + 0x8101, 0x80fb, 0x8100, 0x8201, 0x822f, 0x8225, 0x8333, 0x832d, + 0x8344, 0x8319, 0x8351, 0x8325, 0x8356, 0x833f, 0x8341, 0x8326, + 0x831c, 0x8322, 0x8342, 0x834e, 0x831b, 0x832a, 0x8308, 0x833c, + 0x834d, 0x8316, 0x8324, 0x8320, 0x8337, 0x832f, 0x8329, 0x8347, + 0x8345, 0x834c, 0x8353, 0x831e, 0x832c, 0x834b, 0x8327, 0x8348, + 0x8653, 0x8652, 0x86a2, 0x86a8, 0x8696, 0x868d, 0x8691, 0x869e, + 0x8687, 0x8697, 0x8686, 0x868b, 0x869a, 0x8685, 0x86a5, 0x8699, + 0x86a1, 0x86a7, 0x8695, 0x8698, 0x868e, 0x869d, 0x8690, 0x8694, + 0x8843, 0x8844, 0x886d, 0x8875, 0x8876, 0x8872, 0x8880, 0x8871, + 0x887f, 0x886f, 0x8883, 0x887e, 0x8874, 0x887c, + /* 0x33 */ + 0x8a12, 0x8c47, 0x8c57, 0x8c7b, 0x8ca4, 0x8ca3, 0x8d76, 0x8d78, + 0x8db5, 0x8db7, 0x8db6, 0x8ed1, 0x8ed3, 0x8ffe, 0x8ff5, 0x9002, + 0x8fff, 0x8ffb, 0x9004, 0x8ffc, 0x8ff6, 0x90d6, 0x90e0, 0x90d9, + 0x90da, 0x90e3, 0x90df, 0x90e5, 0x90d8, 0x90db, 0x90d7, 0x90dc, + 0x90e4, 0x9150, 0x914e, 0x914f, 0x91d5, 0x91e2, 0x91da, 0x965c, + 0x965f, 0x96bc, 0x98e3, 0x9adf, 0x9b2f, 0x4e7f, 0x5070, 0x506a, + 0x5061, 0x505e, 0x5060, 0x5053, 0x504b, 0x505d, 0x5072, 0x5048, + 0x504d, 0x5041, 0x505b, 0x504a, 0x5062, 0x5015, 0x5045, 0x505f, + 0x5069, 0x506b, 0x5063, 0x5064, 0x5046, 0x5040, 0x506e, 0x5073, + 0x5057, 0x5051, 0x51d0, 0x526b, 0x526d, 0x526c, 0x526e, 0x52d6, + 0x52d3, 0x532d, 0x539c, 0x5575, 0x5576, 0x553c, 0x554d, 0x5550, + 0x5534, 0x552a, 0x5551, 0x5562, 0x5536, 0x5535, + /* 0x34 */ + 0x5530, 0x5552, 0x5545, 0x550c, 0x5532, 0x5565, 0x554e, 0x5539, + 0x5548, 0x552d, 0x553b, 0x5540, 0x554b, 0x570a, 0x5707, 0x57fb, + 0x5814, 0x57e2, 0x57f6, 0x57dc, 0x57f4, 0x5800, 0x57ed, 0x57fd, + 0x5808, 0x57f8, 0x580b, 0x57f3, 0x57cf, 0x5807, 0x57ee, 0x57e3, + 0x57f2, 0x57e5, 0x57ec, 0x57e1, 0x580e, 0x57fc, 0x5810, 0x57e7, + 0x5801, 0x580c, 0x57f1, 0x57e9, 0x57f0, 0x580d, 0x5804, 0x595c, + 0x5a60, 0x5a58, 0x5a55, 0x5a67, 0x5a5e, 0x5a38, 0x5a35, 0x5a6d, + 0x5a50, 0x5a5f, 0x5a65, 0x5a6c, 0x5a53, 0x5a64, 0x5a57, 0x5a43, + 0x5a5d, 0x5a52, 0x5a44, 0x5a5b, 0x5a48, 0x5a8e, 0x5a3e, 0x5a4d, + 0x5a39, 0x5a4c, 0x5a70, 0x5a69, 0x5a47, 0x5a51, 0x5a56, 0x5a42, + 0x5a5c, 0x5b72, 0x5b6e, 0x5bc1, 0x5bc0, 0x5c59, 0x5d1e, 0x5d0b, + 0x5d1d, 0x5d1a, 0x5d20, 0x5d0c, 0x5d28, 0x5d0d, + /* 0x35 */ + 0x5d26, 0x5d25, 0x5d0f, 0x5d30, 0x5d12, 0x5d23, 0x5d1f, 0x5d2e, + 0x5e3e, 0x5e34, 0x5eb1, 0x5eb4, 0x5eb9, 0x5eb2, 0x5eb3, 0x5f36, + 0x5f38, 0x5f9b, 0x5f96, 0x5f9f, 0x608a, 0x6090, 0x6086, 0x60be, + 0x60b0, 0x60ba, 0x60d3, 0x60d4, 0x60cf, 0x60e4, 0x60d9, 0x60dd, + 0x60c8, 0x60b1, 0x60db, 0x60b7, 0x60ca, 0x60bf, 0x60c3, 0x60cd, + 0x60c0, 0x6332, 0x6365, 0x638a, 0x6382, 0x637d, 0x63bd, 0x639e, + 0x63ad, 0x639d, 0x6397, 0x63ab, 0x638e, 0x636f, 0x6387, 0x6390, + 0x636e, 0x63af, 0x6375, 0x639c, 0x636d, 0x63ae, 0x637c, 0x63a4, + 0x633b, 0x639f, 0x6378, 0x6385, 0x6381, 0x6391, 0x638d, 0x6370, + 0x6553, 0x65cd, 0x6665, 0x6661, 0x665b, 0x6659, 0x665c, 0x6662, + 0x6718, 0x6879, 0x6887, 0x6890, 0x689c, 0x686d, 0x686e, 0x68ae, + 0x68ab, 0x6956, 0x686f, 0x68a3, 0x68ac, 0x68a9, + /* 0x36 */ + 0x6875, 0x6874, 0x68b2, 0x688f, 0x6877, 0x6892, 0x687c, 0x686b, + 0x6872, 0x68aa, 0x6880, 0x6871, 0x687e, 0x689b, 0x6896, 0x688b, + 0x68a0, 0x6889, 0x68a4, 0x6878, 0x687b, 0x6891, 0x688c, 0x688a, + 0x687d, 0x6b36, 0x6b33, 0x6b37, 0x6b38, 0x6b91, 0x6b8f, 0x6b8d, + 0x6b8e, 0x6b8c, 0x6c2a, 0x6dc0, 0x6dab, 0x6db4, 0x6db3, 0x6e74, + 0x6dac, 0x6de9, 0x6de2, 0x6db7, 0x6df6, 0x6dd4, 0x6e00, 0x6dc8, + 0x6de0, 0x6ddf, 0x6dd6, 0x6dbe, 0x6de5, 0x6ddc, 0x6ddd, 0x6ddb, + 0x6df4, 0x6dca, 0x6dbd, 0x6ded, 0x6df0, 0x6dba, 0x6dd5, 0x6dc2, + 0x6dcf, 0x6dc9, 0x6dd0, 0x6df2, 0x6dd3, 0x6dfd, 0x6dd7, 0x6dcd, + 0x6de3, 0x6dbb, 0x70fa, 0x710d, 0x70f7, 0x7117, 0x70f4, 0x710c, + 0x70f0, 0x7104, 0x70f3, 0x7110, 0x70fc, 0x70ff, 0x7106, 0x7113, + 0x7100, 0x70f8, 0x70f6, 0x710b, 0x7102, 0x710e, + /* 0x37 */ + 0x727e, 0x727b, 0x727c, 0x727f, 0x731d, 0x7317, 0x7307, 0x7311, + 0x7318, 0x730a, 0x7308, 0x72ff, 0x730f, 0x731e, 0x7388, 0x73f6, + 0x73f8, 0x73f5, 0x7404, 0x7401, 0x73fd, 0x7407, 0x7400, 0x73fa, + 0x73fc, 0x73ff, 0x740c, 0x740b, 0x73f4, 0x7408, 0x7564, 0x7563, + 0x75ce, 0x75d2, 0x75cf, 0x75cb, 0x75cc, 0x75d1, 0x75d0, 0x768f, + 0x7689, 0x76d3, 0x7739, 0x772f, 0x772d, 0x7731, 0x7732, 0x7734, + 0x7733, 0x773d, 0x7725, 0x773b, 0x7735, 0x7848, 0x7852, 0x7849, + 0x784d, 0x784a, 0x784c, 0x7826, 0x7845, 0x7850, 0x7964, 0x7967, + 0x7969, 0x796a, 0x7963, 0x796b, 0x7961, 0x79bb, 0x79fa, 0x79f8, + 0x79f6, 0x79f7, 0x7a8f, 0x7a94, 0x7a90, 0x7b35, 0x7b3b, 0x7b34, + 0x7b25, 0x7b30, 0x7b22, 0x7b24, 0x7b33, 0x7b18, 0x7b2a, 0x7b1d, + 0x7b31, 0x7b2b, 0x7b2d, 0x7b2f, 0x7b32, 0x7b38, + /* 0x38 */ + 0x7b1a, 0x7b23, 0x7c94, 0x7c98, 0x7c96, 0x7ca3, 0x7d35, 0x7d3d, + 0x7d38, 0x7d36, 0x7d3a, 0x7d45, 0x7d2c, 0x7d29, 0x7d41, 0x7d47, + 0x7d3e, 0x7d3f, 0x7d4a, 0x7d3b, 0x7d28, 0x7f63, 0x7f95, 0x7f9c, + 0x7f9d, 0x7f9b, 0x7fca, 0x7fcb, 0x7fcd, 0x7fd0, 0x7fd1, 0x7fc7, + 0x7fcf, 0x7fc9, 0x801f, 0x801e, 0x801b, 0x8047, 0x8043, 0x8048, + 0x8118, 0x8125, 0x8119, 0x811b, 0x812d, 0x811f, 0x812c, 0x811e, + 0x8121, 0x8115, 0x8127, 0x811d, 0x8122, 0x8211, 0x8238, 0x8233, + 0x823a, 0x8234, 0x8232, 0x8274, 0x8390, 0x83a3, 0x83a8, 0x838d, + 0x837a, 0x8373, 0x83a4, 0x8374, 0x838f, 0x8381, 0x8395, 0x8399, + 0x8375, 0x8394, 0x83a9, 0x837d, 0x8383, 0x838c, 0x839d, 0x839b, + 0x83aa, 0x838b, 0x837e, 0x83a5, 0x83af, 0x8388, 0x8397, 0x83b0, + 0x837f, 0x83a6, 0x8387, 0x83ae, 0x8376, 0x8659, + /* 0x39 */ + 0x8656, 0x86bf, 0x86b7, 0x86c2, 0x86c1, 0x86c5, 0x86ba, 0x86b0, + 0x86c8, 0x86b9, 0x86b3, 0x86b8, 0x86cc, 0x86b4, 0x86bb, 0x86bc, + 0x86c3, 0x86bd, 0x86be, 0x8852, 0x8889, 0x8895, 0x88a8, 0x88a2, + 0x88aa, 0x889a, 0x8891, 0x88a1, 0x889f, 0x8898, 0x88a7, 0x8899, + 0x889b, 0x8897, 0x88a4, 0x88ac, 0x888c, 0x8893, 0x888e, 0x8982, + 0x89d6, 0x89d9, 0x89d5, 0x8a30, 0x8a27, 0x8a2c, 0x8a1e, 0x8c39, + 0x8c3b, 0x8c5c, 0x8c5d, 0x8c7d, 0x8ca5, 0x8d7d, 0x8d7b, 0x8d79, + 0x8dbc, 0x8dc2, 0x8db9, 0x8dbf, 0x8dc1, 0x8ed8, 0x8ede, 0x8edd, + 0x8edc, 0x8ed7, 0x8ee0, 0x8ee1, 0x9024, 0x900b, 0x9011, 0x901c, + 0x900c, 0x9021, 0x90ef, 0x90ea, 0x90f0, 0x90f4, 0x90f2, 0x90f3, + 0x90d4, 0x90eb, 0x90ec, 0x90e9, 0x9156, 0x9158, 0x915a, 0x9153, + 0x9155, 0x91ec, 0x91f4, 0x91f1, 0x91f3, 0x91f8, + /* 0x3a */ + 0x91e4, 0x91f9, 0x91ea, 0x91eb, 0x91f7, 0x91e8, 0x91ee, 0x957a, + 0x9586, 0x9588, 0x967c, 0x966d, 0x966b, 0x9671, 0x966f, 0x96bf, + 0x976a, 0x9804, 0x98e5, 0x9997, 0x509b, 0x5095, 0x5094, 0x509e, + 0x508b, 0x50a3, 0x5083, 0x508c, 0x508e, 0x509d, 0x5068, 0x509c, + 0x5092, 0x5082, 0x5087, 0x515f, 0x51d4, 0x5312, 0x5311, 0x53a4, + 0x53a7, 0x5591, 0x55a8, 0x55a5, 0x55ad, 0x5577, 0x5645, 0x55a2, + 0x5593, 0x5588, 0x558f, 0x55b5, 0x5581, 0x55a3, 0x5592, 0x55a4, + 0x557d, 0x558c, 0x55a6, 0x557f, 0x5595, 0x55a1, 0x558e, 0x570c, + 0x5829, 0x5837, 0x5819, 0x581e, 0x5827, 0x5823, 0x5828, 0x57f5, + 0x5848, 0x5825, 0x581c, 0x581b, 0x5833, 0x583f, 0x5836, 0x582e, + 0x5839, 0x5838, 0x582d, 0x582c, 0x583b, 0x5961, 0x5aaf, 0x5a94, + 0x5a9f, 0x5a7a, 0x5aa2, 0x5a9e, 0x5a78, 0x5aa6, + /* 0x3b */ + 0x5a7c, 0x5aa5, 0x5aac, 0x5a95, 0x5aae, 0x5a37, 0x5a84, 0x5a8a, + 0x5a97, 0x5a83, 0x5a8b, 0x5aa9, 0x5a7b, 0x5a7d, 0x5a8c, 0x5a9c, + 0x5a8f, 0x5a93, 0x5a9d, 0x5bea, 0x5bcd, 0x5bcb, 0x5bd4, 0x5bd1, + 0x5bca, 0x5bce, 0x5c0c, 0x5c30, 0x5d37, 0x5d43, 0x5d6b, 0x5d41, + 0x5d4b, 0x5d3f, 0x5d35, 0x5d51, 0x5d4e, 0x5d55, 0x5d33, 0x5d3a, + 0x5d52, 0x5d3d, 0x5d31, 0x5d59, 0x5d42, 0x5d39, 0x5d49, 0x5d38, + 0x5d3c, 0x5d32, 0x5d36, 0x5d40, 0x5d45, 0x5e44, 0x5e41, 0x5f58, + 0x5fa6, 0x5fa5, 0x5fab, 0x60c9, 0x60b9, 0x60cc, 0x60e2, 0x60ce, + 0x60c4, 0x6114, 0x60f2, 0x610a, 0x6116, 0x6105, 0x60f5, 0x6113, + 0x60f8, 0x60fc, 0x60fe, 0x60c1, 0x6103, 0x6118, 0x611d, 0x6110, + 0x60ff, 0x6104, 0x610b, 0x624a, 0x6394, 0x63b1, 0x63b0, 0x63ce, + 0x63e5, 0x63e8, 0x63ef, 0x63c3, 0x649d, 0x63f3, + /* 0x3c */ + 0x63ca, 0x63e0, 0x63f6, 0x63d5, 0x63f2, 0x63f5, 0x6461, 0x63df, + 0x63be, 0x63dd, 0x63dc, 0x63c4, 0x63d8, 0x63d3, 0x63c2, 0x63c7, + 0x63cc, 0x63cb, 0x63c8, 0x63f0, 0x63d7, 0x63d9, 0x6532, 0x6567, + 0x656a, 0x6564, 0x655c, 0x6568, 0x6565, 0x658c, 0x659d, 0x659e, + 0x65ae, 0x65d0, 0x65d2, 0x667c, 0x666c, 0x667b, 0x6680, 0x6671, + 0x6679, 0x666a, 0x6672, 0x6701, 0x690c, 0x68d3, 0x6904, 0x68dc, + 0x692a, 0x68ec, 0x68ea, 0x68f1, 0x690f, 0x68d6, 0x68f7, 0x68eb, + 0x68e4, 0x68f6, 0x6913, 0x6910, 0x68f3, 0x68e1, 0x6907, 0x68cc, + 0x6908, 0x6970, 0x68b4, 0x6911, 0x68ef, 0x68c6, 0x6914, 0x68f8, + 0x68d0, 0x68fd, 0x68fc, 0x68e8, 0x690b, 0x690a, 0x6917, 0x68ce, + 0x68c8, 0x68dd, 0x68de, 0x68e6, 0x68f4, 0x68d1, 0x6906, 0x68d4, + 0x68e9, 0x6915, 0x6925, 0x68c7, 0x6b39, 0x6b3b, + /* 0x3d */ + 0x6b3f, 0x6b3c, 0x6b94, 0x6b97, 0x6b99, 0x6b95, 0x6bbd, 0x6bf0, + 0x6bf2, 0x6bf3, 0x6c30, 0x6dfc, 0x6e46, 0x6e47, 0x6e1f, 0x6e49, + 0x6e88, 0x6e3c, 0x6e3d, 0x6e45, 0x6e62, 0x6e2b, 0x6e3f, 0x6e41, + 0x6e5d, 0x6e73, 0x6e1c, 0x6e33, 0x6e4b, 0x6e40, 0x6e51, 0x6e3b, + 0x6e03, 0x6e2e, 0x6e5e, 0x6e68, 0x6e5c, 0x6e61, 0x6e31, 0x6e28, + 0x6e60, 0x6e71, 0x6e6b, 0x6e39, 0x6e22, 0x6e30, 0x6e53, 0x6e65, + 0x6e27, 0x6e78, 0x6e64, 0x6e77, 0x6e55, 0x6e79, 0x6e52, 0x6e66, + 0x6e35, 0x6e36, 0x6e5a, 0x7120, 0x711e, 0x712f, 0x70fb, 0x712e, + 0x7131, 0x7123, 0x7125, 0x7122, 0x7132, 0x711f, 0x7128, 0x713a, + 0x711b, 0x724b, 0x725a, 0x7288, 0x7289, 0x7286, 0x7285, 0x728b, + 0x7312, 0x730b, 0x7330, 0x7322, 0x7331, 0x7333, 0x7327, 0x7332, + 0x732d, 0x7326, 0x7323, 0x7335, 0x730c, 0x742e, + /* 0x3e */ + 0x742c, 0x7430, 0x742b, 0x7416, 0x741a, 0x7421, 0x742d, 0x7431, + 0x7424, 0x7423, 0x741d, 0x7429, 0x7420, 0x7432, 0x74fb, 0x752f, + 0x756f, 0x756c, 0x75e7, 0x75da, 0x75e1, 0x75e6, 0x75dd, 0x75df, + 0x75e4, 0x75d7, 0x7695, 0x7692, 0x76da, 0x7746, 0x7747, 0x7744, + 0x774d, 0x7745, 0x774a, 0x774e, 0x774b, 0x774c, 0x77de, 0x77ec, + 0x7860, 0x7864, 0x7865, 0x785c, 0x786d, 0x7871, 0x786a, 0x786e, + 0x7870, 0x7869, 0x7868, 0x785e, 0x7862, 0x7974, 0x7973, 0x7972, + 0x7970, 0x7a02, 0x7a0a, 0x7a03, 0x7a0c, 0x7a04, 0x7a99, 0x7ae6, + 0x7ae4, 0x7b4a, 0x7b47, 0x7b44, 0x7b48, 0x7b4c, 0x7b4e, 0x7b40, + 0x7b58, 0x7b45, 0x7ca2, 0x7c9e, 0x7ca8, 0x7ca1, 0x7d58, 0x7d6f, + 0x7d63, 0x7d53, 0x7d56, 0x7d67, 0x7d6a, 0x7d4f, 0x7d6d, 0x7d5c, + 0x7d6b, 0x7d52, 0x7d54, 0x7d69, 0x7d51, 0x7d5f, + /* 0x3f */ + 0x7d4e, 0x7f3e, 0x7f3f, 0x7f65, 0x7f66, 0x7fa2, 0x7fa0, 0x7fa1, + 0x7fd7, 0x8051, 0x804f, 0x8050, 0x80fe, 0x80d4, 0x8143, 0x814a, + 0x8152, 0x814f, 0x8147, 0x813d, 0x814d, 0x813a, 0x81e6, 0x81ee, + 0x81f7, 0x81f8, 0x81f9, 0x8204, 0x823c, 0x823d, 0x823f, 0x8275, + 0x833b, 0x83cf, 0x83f9, 0x8423, 0x83c0, 0x83e8, 0x8412, 0x83e7, + 0x83e4, 0x83fc, 0x83f6, 0x8410, 0x83c6, 0x83c8, 0x83eb, 0x83e3, + 0x83bf, 0x8401, 0x83dd, 0x83e5, 0x83d8, 0x83ff, 0x83e1, 0x83cb, + 0x83ce, 0x83d6, 0x83f5, 0x83c9, 0x8409, 0x840f, 0x83de, 0x8411, + 0x8406, 0x83c2, 0x83f3, 0x83d5, 0x83fa, 0x83c7, 0x83d1, 0x83ea, + 0x8413, 0x839a, 0x83c3, 0x83ec, 0x83ee, 0x83c4, 0x83fb, 0x83d7, + 0x83e2, 0x841b, 0x83db, 0x83fe, 0x86d8, 0x86e2, 0x86e6, 0x86d3, + 0x86e3, 0x86da, 0x86ea, 0x86dd, 0x86eb, 0x86dc, + /* 0x40 */ + 0x86ec, 0x86e9, 0x86d7, 0x86e8, 0x86d1, 0x8848, 0x8856, 0x8855, + 0x88ba, 0x88d7, 0x88b9, 0x88b8, 0x88c0, 0x88be, 0x88b6, 0x88bc, + 0x88b7, 0x88bd, 0x88b2, 0x8901, 0x88c9, 0x8995, 0x8998, 0x8997, + 0x89dd, 0x89da, 0x89db, 0x8a4e, 0x8a4d, 0x8a39, 0x8a59, 0x8a40, + 0x8a57, 0x8a58, 0x8a44, 0x8a45, 0x8a52, 0x8a48, 0x8a51, 0x8a4a, + 0x8a4c, 0x8a4f, 0x8c5f, 0x8c81, 0x8c80, 0x8cba, 0x8cbe, 0x8cb0, + 0x8cb9, 0x8cb5, 0x8d84, 0x8d80, 0x8d89, 0x8dd8, 0x8dd3, 0x8dcd, + 0x8dc7, 0x8dd6, 0x8ddc, 0x8dcf, 0x8dd5, 0x8dd9, 0x8dc8, 0x8dd7, + 0x8dc5, 0x8eef, 0x8ef7, 0x8efa, 0x8ef9, 0x8ee6, 0x8eee, 0x8ee5, + 0x8ef5, 0x8ee7, 0x8ee8, 0x8ef6, 0x8eeb, 0x8ef1, 0x8eec, 0x8ef4, + 0x8ee9, 0x902d, 0x9034, 0x902f, 0x9106, 0x912c, 0x9104, 0x90ff, + 0x90fc, 0x9108, 0x90f9, 0x90fb, 0x9101, 0x9100, + /* 0x41 */ + 0x9107, 0x9105, 0x9103, 0x9161, 0x9164, 0x915f, 0x9162, 0x9160, + 0x9201, 0x920a, 0x9225, 0x9203, 0x921a, 0x9226, 0x920f, 0x920c, + 0x9200, 0x9212, 0x91ff, 0x91fd, 0x9206, 0x9204, 0x9227, 0x9202, + 0x921c, 0x9224, 0x9219, 0x9217, 0x9205, 0x9216, 0x957b, 0x958d, + 0x958c, 0x9590, 0x9687, 0x967e, 0x9688, 0x9689, 0x9683, 0x9680, + 0x96c2, 0x96c8, 0x96c3, 0x96f1, 0x96f0, 0x976c, 0x9770, 0x976e, + 0x9807, 0x98a9, 0x98eb, 0x9ce6, 0x9ef9, 0x4e83, 0x4e84, 0x4eb6, + 0x50bd, 0x50bf, 0x50c6, 0x50ae, 0x50c4, 0x50ca, 0x50b4, 0x50c8, + 0x50c2, 0x50b0, 0x50c1, 0x50ba, 0x50b1, 0x50cb, 0x50c9, 0x50b6, + 0x50b8, 0x51d7, 0x527a, 0x5278, 0x527b, 0x527c, 0x55c3, 0x55db, + 0x55cc, 0x55d0, 0x55cb, 0x55ca, 0x55dd, 0x55c0, 0x55d4, 0x55c4, + 0x55e9, 0x55bf, 0x55d2, 0x558d, 0x55cf, 0x55d5, + /* 0x42 */ + 0x55e2, 0x55d6, 0x55c8, 0x55f2, 0x55cd, 0x55d9, 0x55c2, 0x5714, + 0x5853, 0x5868, 0x5864, 0x584f, 0x584d, 0x5849, 0x586f, 0x5855, + 0x584e, 0x585d, 0x5859, 0x5865, 0x585b, 0x583d, 0x5863, 0x5871, + 0x58fc, 0x5ac7, 0x5ac4, 0x5acb, 0x5aba, 0x5ab8, 0x5ab1, 0x5ab5, + 0x5ab0, 0x5abf, 0x5ac8, 0x5abb, 0x5ac6, 0x5ab7, 0x5ac0, 0x5aca, + 0x5ab4, 0x5ab6, 0x5acd, 0x5ab9, 0x5a90, 0x5bd6, 0x5bd8, 0x5bd9, + 0x5c1f, 0x5c33, 0x5d71, 0x5d63, 0x5d4a, 0x5d65, 0x5d72, 0x5d6c, + 0x5d5e, 0x5d68, 0x5d67, 0x5d62, 0x5df0, 0x5e4f, 0x5e4e, 0x5e4a, + 0x5e4d, 0x5e4b, 0x5ec5, 0x5ecc, 0x5ec6, 0x5ecb, 0x5ec7, 0x5f40, + 0x5faf, 0x5fad, 0x60f7, 0x6149, 0x614a, 0x612b, 0x6145, 0x6136, + 0x6132, 0x612e, 0x6146, 0x612f, 0x614f, 0x6129, 0x6140, 0x6220, + 0x9168, 0x6223, 0x6225, 0x6224, 0x63c5, 0x63f1, + /* 0x43 */ + 0x63eb, 0x6410, 0x6412, 0x6409, 0x6420, 0x6424, 0x6433, 0x6443, + 0x641f, 0x6415, 0x6418, 0x6439, 0x6437, 0x6422, 0x6423, 0x640c, + 0x6426, 0x6430, 0x6428, 0x6441, 0x6435, 0x642f, 0x640a, 0x641a, + 0x6440, 0x6425, 0x6427, 0x640b, 0x63e7, 0x641b, 0x642e, 0x6421, + 0x640e, 0x656f, 0x6592, 0x65d3, 0x6686, 0x668c, 0x6695, 0x6690, + 0x668b, 0x668a, 0x6699, 0x6694, 0x6678, 0x6720, 0x6966, 0x695f, + 0x6938, 0x694e, 0x6962, 0x6971, 0x693f, 0x6945, 0x696a, 0x6939, + 0x6942, 0x6957, 0x6959, 0x697a, 0x6948, 0x6949, 0x6935, 0x696c, + 0x6933, 0x693d, 0x6965, 0x68f0, 0x6978, 0x6934, 0x6969, 0x6940, + 0x696f, 0x6944, 0x6976, 0x6958, 0x6941, 0x6974, 0x694c, 0x693b, + 0x694b, 0x6937, 0x695c, 0x694f, 0x6951, 0x6932, 0x6952, 0x692f, + 0x697b, 0x693c, 0x6b46, 0x6b45, 0x6b43, 0x6b42, + /* 0x44 */ + 0x6b48, 0x6b41, 0x6b9b, 0x6bfb, 0x6bfc, 0x6bf9, 0x6bf7, 0x6bf8, + 0x6e9b, 0x6ed6, 0x6ec8, 0x6e8f, 0x6ec0, 0x6e9f, 0x6e93, 0x6e94, + 0x6ea0, 0x6eb1, 0x6eb9, 0x6ec6, 0x6ed2, 0x6ebd, 0x6ec1, 0x6e9e, + 0x6ec9, 0x6eb7, 0x6eb0, 0x6ecd, 0x6ea6, 0x6ecf, 0x6eb2, 0x6ebe, + 0x6ec3, 0x6edc, 0x6ed8, 0x6e99, 0x6e92, 0x6e8e, 0x6e8d, 0x6ea4, + 0x6ea1, 0x6ebf, 0x6eb3, 0x6ed0, 0x6eca, 0x6e97, 0x6eae, 0x6ea3, + 0x7147, 0x7154, 0x7152, 0x7163, 0x7160, 0x7141, 0x715d, 0x7162, + 0x7172, 0x7178, 0x716a, 0x7161, 0x7142, 0x7158, 0x7143, 0x714b, + 0x7170, 0x715f, 0x7150, 0x7153, 0x7144, 0x714d, 0x715a, 0x724f, + 0x728d, 0x728c, 0x7291, 0x7290, 0x728e, 0x733c, 0x7342, 0x733b, + 0x733a, 0x7340, 0x734a, 0x7349, 0x7444, 0x744a, 0x744b, 0x7452, + 0x7451, 0x7457, 0x7440, 0x744f, 0x7450, 0x744e, + /* 0x45 */ + 0x7442, 0x7446, 0x744d, 0x7454, 0x74e1, 0x74ff, 0x74fe, 0x74fd, + 0x751d, 0x7579, 0x7577, 0x6983, 0x75ef, 0x760f, 0x7603, 0x75f7, + 0x75fe, 0x75fc, 0x75f9, 0x75f8, 0x7610, 0x75fb, 0x75f6, 0x75ed, + 0x75f5, 0x75fd, 0x7699, 0x76b5, 0x76dd, 0x7755, 0x775f, 0x7760, + 0x7752, 0x7756, 0x775a, 0x7769, 0x7767, 0x7754, 0x7759, 0x776d, + 0x77e0, 0x7887, 0x789a, 0x7894, 0x788f, 0x7884, 0x7895, 0x7885, + 0x7886, 0x78a1, 0x7883, 0x7879, 0x7899, 0x7880, 0x7896, 0x787b, + 0x797c, 0x7982, 0x797d, 0x7979, 0x7a11, 0x7a18, 0x7a19, 0x7a12, + 0x7a17, 0x7a15, 0x7a22, 0x7a13, 0x7a1b, 0x7a10, 0x7aa3, 0x7aa2, + 0x7a9e, 0x7aeb, 0x7b66, 0x7b64, 0x7b6d, 0x7b74, 0x7b69, 0x7b72, + 0x7b65, 0x7b73, 0x7b71, 0x7b70, 0x7b61, 0x7b78, 0x7b76, 0x7b63, + 0x7cb2, 0x7cb4, 0x7caf, 0x7d88, 0x7d86, 0x7d80, + /* 0x46 */ + 0x7d8d, 0x7d7f, 0x7d85, 0x7d7a, 0x7d8e, 0x7d7b, 0x7d83, 0x7d7c, + 0x7d8c, 0x7d94, 0x7d84, 0x7d7d, 0x7d92, 0x7f6d, 0x7f6b, 0x7f67, + 0x7f68, 0x7f6c, 0x7fa6, 0x7fa5, 0x7fa7, 0x7fdb, 0x7fdc, 0x8021, + 0x8164, 0x8160, 0x8177, 0x815c, 0x8169, 0x815b, 0x8162, 0x8172, + 0x6721, 0x815e, 0x8176, 0x8167, 0x816f, 0x8144, 0x8161, 0x821d, + 0x8249, 0x8244, 0x8240, 0x8242, 0x8245, 0x84f1, 0x843f, 0x8456, + 0x8476, 0x8479, 0x848f, 0x848d, 0x8465, 0x8451, 0x8440, 0x8486, + 0x8467, 0x8430, 0x844d, 0x847d, 0x845a, 0x8459, 0x8474, 0x8473, + 0x845d, 0x8507, 0x845e, 0x8437, 0x843a, 0x8434, 0x847a, 0x8443, + 0x8478, 0x8432, 0x8445, 0x8429, 0x83d9, 0x844b, 0x842f, 0x8442, + 0x842d, 0x845f, 0x8470, 0x8439, 0x844e, 0x844c, 0x8452, 0x846f, + 0x84c5, 0x848e, 0x843b, 0x8447, 0x8436, 0x8433, + /* 0x47 */ + 0x8468, 0x847e, 0x8444, 0x842b, 0x8460, 0x8454, 0x846e, 0x8450, + 0x870b, 0x8704, 0x86f7, 0x870c, 0x86fa, 0x86d6, 0x86f5, 0x874d, + 0x86f8, 0x870e, 0x8709, 0x8701, 0x86f6, 0x870d, 0x8705, 0x88d6, + 0x88cb, 0x88cd, 0x88ce, 0x88de, 0x88db, 0x88da, 0x88cc, 0x88d0, + 0x8985, 0x899b, 0x89df, 0x89e5, 0x89e4, 0x89e1, 0x89e0, 0x89e2, + 0x89dc, 0x89e6, 0x8a76, 0x8a86, 0x8a7f, 0x8a61, 0x8a3f, 0x8a77, + 0x8a82, 0x8a84, 0x8a75, 0x8a83, 0x8a81, 0x8a74, 0x8a7a, 0x8c3c, + 0x8c4b, 0x8c4a, 0x8c65, 0x8c64, 0x8c66, 0x8c86, 0x8c84, 0x8c85, + 0x8ccc, 0x8d68, 0x8d69, 0x8d91, 0x8d8c, 0x8d8e, 0x8d8f, 0x8d8d, + 0x8d93, 0x8d94, 0x8d90, 0x8d92, 0x8df0, 0x8de0, 0x8dec, 0x8df1, + 0x8dee, 0x8dd0, 0x8de9, 0x8de3, 0x8de2, 0x8de7, 0x8df2, 0x8deb, + 0x8df4, 0x8f06, 0x8eff, 0x8f01, 0x8f00, 0x8f05, + /* 0x48 */ + 0x8f07, 0x8f08, 0x8f02, 0x8f0b, 0x9052, 0x903f, 0x9044, 0x9049, + 0x903d, 0x9110, 0x910d, 0x910f, 0x9111, 0x9116, 0x9114, 0x910b, + 0x910e, 0x916e, 0x916f, 0x9248, 0x9252, 0x9230, 0x923a, 0x9266, + 0x9233, 0x9265, 0x925e, 0x9283, 0x922e, 0x924a, 0x9246, 0x926d, + 0x926c, 0x924f, 0x9260, 0x9267, 0x926f, 0x9236, 0x9261, 0x9270, + 0x9231, 0x9254, 0x9263, 0x9250, 0x9272, 0x924e, 0x9253, 0x924c, + 0x9256, 0x9232, 0x959f, 0x959c, 0x959e, 0x959b, 0x9692, 0x9693, + 0x9691, 0x9697, 0x96ce, 0x96fa, 0x96fd, 0x96f8, 0x96f5, 0x9773, + 0x9777, 0x9778, 0x9772, 0x980f, 0x980d, 0x980e, 0x98ac, 0x98f6, + 0x98f9, 0x99af, 0x99b2, 0x99b0, 0x99b5, 0x9aad, 0x9aab, 0x9b5b, + 0x9cea, 0x9ced, 0x9ce7, 0x9e80, 0x9efd, 0x50e6, 0x50d4, 0x50d7, + 0x50e8, 0x50f3, 0x50db, 0x50ea, 0x50dd, 0x50e4, + /* 0x49 */ + 0x50d3, 0x50ec, 0x50f0, 0x50ef, 0x50e3, 0x50e0, 0x51d8, 0x5280, + 0x5281, 0x52e9, 0x52eb, 0x5330, 0x53ac, 0x5627, 0x5615, 0x560c, + 0x5612, 0x55fc, 0x560f, 0x561c, 0x5601, 0x5613, 0x5602, 0x55fa, + 0x561d, 0x5604, 0x55ff, 0x55f9, 0x5889, 0x587c, 0x5890, 0x5898, + 0x5886, 0x5881, 0x587f, 0x5874, 0x588b, 0x587a, 0x5887, 0x5891, + 0x588e, 0x5876, 0x5882, 0x5888, 0x587b, 0x5894, 0x588f, 0x58fe, + 0x596b, 0x5adc, 0x5aee, 0x5ae5, 0x5ad5, 0x5aea, 0x5ada, 0x5aed, + 0x5aeb, 0x5af3, 0x5ae2, 0x5ae0, 0x5adb, 0x5aec, 0x5ade, 0x5add, + 0x5ad9, 0x5ae8, 0x5adf, 0x5b77, 0x5be0, 0x5be3, 0x5c63, 0x5d82, + 0x5d80, 0x5d7d, 0x5d86, 0x5d7a, 0x5d81, 0x5d77, 0x5d8a, 0x5d89, + 0x5d88, 0x5d7e, 0x5d7c, 0x5d8d, 0x5d79, 0x5d7f, 0x5e58, 0x5e59, + 0x5e53, 0x5ed8, 0x5ed1, 0x5ed7, 0x5ece, 0x5edc, + /* 0x4a */ + 0x5ed5, 0x5ed9, 0x5ed2, 0x5ed4, 0x5f44, 0x5f43, 0x5f6f, 0x5fb6, + 0x612c, 0x6128, 0x6141, 0x615e, 0x6171, 0x6173, 0x6152, 0x6153, + 0x6172, 0x616c, 0x6180, 0x6174, 0x6154, 0x617a, 0x615b, 0x6165, + 0x613b, 0x616a, 0x6161, 0x6156, 0x6229, 0x6227, 0x622b, 0x642b, + 0x644d, 0x645b, 0x645d, 0x6474, 0x6476, 0x6472, 0x6473, 0x647d, + 0x6475, 0x6466, 0x64a6, 0x644e, 0x6482, 0x645e, 0x645c, 0x644b, + 0x6453, 0x6460, 0x6450, 0x647f, 0x643f, 0x646c, 0x646b, 0x6459, + 0x6465, 0x6477, 0x6573, 0x65a0, 0x66a1, 0x66a0, 0x669f, 0x6705, + 0x6704, 0x6722, 0x69b1, 0x69b6, 0x69c9, 0x69a0, 0x69ce, 0x6996, + 0x69b0, 0x69ac, 0x69bc, 0x6991, 0x6999, 0x698e, 0x69a7, 0x698d, + 0x69a9, 0x69be, 0x69af, 0x69bf, 0x69c4, 0x69bd, 0x69a4, 0x69d4, + 0x69b9, 0x69ca, 0x699a, 0x69cf, 0x69b3, 0x6993, + /* 0x4b */ + 0x69aa, 0x69a1, 0x699e, 0x69d9, 0x6997, 0x6990, 0x69c2, 0x69b5, + 0x69a5, 0x69c6, 0x6b4a, 0x6b4d, 0x6b4b, 0x6b9e, 0x6b9f, 0x6ba0, + 0x6bc3, 0x6bc4, 0x6bfe, 0x6ece, 0x6ef5, 0x6ef1, 0x6f03, 0x6f25, + 0x6ef8, 0x6f37, 0x6efb, 0x6f2e, 0x6f09, 0x6f4e, 0x6f19, 0x6f1a, + 0x6f27, 0x6f18, 0x6f3b, 0x6f12, 0x6eed, 0x6f0a, 0x6f36, 0x6f73, + 0x6ef9, 0x6eee, 0x6f2d, 0x6f40, 0x6f30, 0x6f3c, 0x6f35, 0x6eeb, + 0x6f07, 0x6f0e, 0x6f43, 0x6f05, 0x6efd, 0x6ef6, 0x6f39, 0x6f1c, + 0x6efc, 0x6f3a, 0x6f1f, 0x6f0d, 0x6f1e, 0x6f08, 0x6f21, 0x7187, + 0x7190, 0x7189, 0x7180, 0x7185, 0x7182, 0x718f, 0x717b, 0x7186, + 0x7181, 0x7197, 0x7244, 0x7253, 0x7297, 0x7295, 0x7293, 0x7343, + 0x734d, 0x7351, 0x734c, 0x7462, 0x7473, 0x7471, 0x7475, 0x7472, + 0x7467, 0x746e, 0x7500, 0x7502, 0x7503, 0x757d, + /* 0x4c */ + 0x7590, 0x7616, 0x7608, 0x760c, 0x7615, 0x7611, 0x760a, 0x7614, + 0x76b8, 0x7781, 0x777c, 0x7785, 0x7782, 0x776e, 0x7780, 0x776f, + 0x777e, 0x7783, 0x78b2, 0x78aa, 0x78b4, 0x78ad, 0x78a8, 0x787e, + 0x78ab, 0x789e, 0x78a5, 0x78a0, 0x78ac, 0x78a2, 0x78a4, 0x7998, + 0x798a, 0x798b, 0x7996, 0x7995, 0x7994, 0x7993, 0x7997, 0x7988, + 0x7992, 0x7990, 0x7a2b, 0x7a4a, 0x7a30, 0x7a2f, 0x7a28, 0x7a26, + 0x7aa8, 0x7aab, 0x7aac, 0x7aee, 0x7b88, 0x7b9c, 0x7b8a, 0x7b91, + 0x7b90, 0x7b96, 0x7b8d, 0x7b8c, 0x7b9b, 0x7b8e, 0x7b85, 0x7b98, + 0x5284, 0x7b99, 0x7ba4, 0x7b82, 0x7cbb, 0x7cbf, 0x7cbc, 0x7cba, + 0x7da7, 0x7db7, 0x7dc2, 0x7da3, 0x7daa, 0x7dc1, 0x7dc0, 0x7dc5, + 0x7d9d, 0x7dce, 0x7dc4, 0x7dc6, 0x7dcb, 0x7dcc, 0x7daf, 0x7db9, + 0x7d96, 0x7dbc, 0x7d9f, 0x7da6, 0x7dae, 0x7da9, + /* 0x4d */ + 0x7da1, 0x7dc9, 0x7f73, 0x7fe2, 0x7fe3, 0x7fe5, 0x7fde, 0x8024, + 0x805d, 0x805c, 0x8189, 0x8186, 0x8183, 0x8187, 0x818d, 0x818c, + 0x818b, 0x8215, 0x8497, 0x84a4, 0x84a1, 0x849f, 0x84ba, 0x84ce, + 0x84c2, 0x84ac, 0x84ae, 0x84ab, 0x84b9, 0x84b4, 0x84c1, 0x84cd, + 0x84aa, 0x849a, 0x84b1, 0x84d0, 0x849d, 0x84a7, 0x84bb, 0x84a2, + 0x8494, 0x84c7, 0x84cc, 0x849b, 0x84a9, 0x84af, 0x84a8, 0x84d6, + 0x8498, 0x84b6, 0x84cf, 0x84a0, 0x84d7, 0x84d4, 0x84d2, 0x84db, + 0x84b0, 0x8491, 0x8661, 0x8733, 0x8723, 0x8728, 0x876b, 0x8740, + 0x872e, 0x871e, 0x8721, 0x8719, 0x871b, 0x8743, 0x872c, 0x8741, + 0x873e, 0x8746, 0x8720, 0x8732, 0x872a, 0x872d, 0x873c, 0x8712, + 0x873a, 0x8731, 0x8735, 0x8742, 0x8726, 0x8727, 0x8738, 0x8724, + 0x871a, 0x8730, 0x8711, 0x88f7, 0x88e7, 0x88f1, + /* 0x4e */ + 0x88f2, 0x88fa, 0x88fe, 0x88ee, 0x88fc, 0x88f6, 0x88fb, 0x88f0, + 0x88ec, 0x88eb, 0x899d, 0x89a1, 0x899f, 0x899e, 0x89e9, 0x89eb, + 0x89e8, 0x8aab, 0x8a99, 0x8a8b, 0x8a92, 0x8a8f, 0x8a96, 0x8c3d, + 0x8c68, 0x8c69, 0x8cd5, 0x8ccf, 0x8cd7, 0x8d96, 0x8e09, 0x8e02, + 0x8dff, 0x8e0d, 0x8dfd, 0x8e0a, 0x8e03, 0x8e07, 0x8e06, 0x8e05, + 0x8dfe, 0x8e00, 0x8e04, 0x8f10, 0x8f11, 0x8f0e, 0x8f0d, 0x9123, + 0x911c, 0x9120, 0x9122, 0x911f, 0x911d, 0x911a, 0x9124, 0x9121, + 0x911b, 0x917a, 0x9172, 0x9179, 0x9173, 0x92a5, 0x92a4, 0x9276, + 0x929b, 0x927a, 0x92a0, 0x9294, 0x92aa, 0x928d, 0x92a6, 0x929a, + 0x92ab, 0x9279, 0x9297, 0x927f, 0x92a3, 0x92ee, 0x928e, 0x9282, + 0x9295, 0x92a2, 0x927d, 0x9288, 0x92a1, 0x928a, 0x9286, 0x928c, + 0x9299, 0x92a7, 0x927e, 0x9287, 0x92a9, 0x929d, + /* 0x4f */ + 0x928b, 0x922d, 0x969e, 0x96a1, 0x96ff, 0x9758, 0x977d, 0x977a, + 0x977e, 0x9783, 0x9780, 0x9782, 0x977b, 0x9784, 0x9781, 0x977f, + 0x97ce, 0x97cd, 0x9816, 0x98ad, 0x98ae, 0x9902, 0x9900, 0x9907, + 0x999d, 0x999c, 0x99c3, 0x99b9, 0x99bb, 0x99ba, 0x99c2, 0x99bd, + 0x99c7, 0x9ab1, 0x9ae3, 0x9ae7, 0x9b3e, 0x9b3f, 0x9b60, 0x9b61, + 0x9b5f, 0x9cf1, 0x9cf2, 0x9cf5, 0x9ea7, 0x50ff, 0x5103, 0x5130, + 0x50f8, 0x5106, 0x5107, 0x50f6, 0x50fe, 0x510b, 0x510c, 0x50fd, + 0x510a, 0x528b, 0x528c, 0x52f1, 0x52ef, 0x5648, 0x5642, 0x564c, + 0x5635, 0x5641, 0x564a, 0x5649, 0x5646, 0x5658, 0x565a, 0x5640, + 0x5633, 0x563d, 0x562c, 0x563e, 0x5638, 0x562a, 0x563a, 0x571a, + 0x58ab, 0x589d, 0x58b1, 0x58a0, 0x58a3, 0x58af, 0x58ac, 0x58a5, + 0x58a1, 0x58ff, 0x5aff, 0x5af4, 0x5afd, 0x5af7, + /* 0x50 */ + 0x5af6, 0x5b03, 0x5af8, 0x5b02, 0x5af9, 0x5b01, 0x5b07, 0x5b05, + 0x5b0f, 0x5c67, 0x5d99, 0x5d97, 0x5d9f, 0x5d92, 0x5da2, 0x5d93, + 0x5d95, 0x5da0, 0x5d9c, 0x5da1, 0x5d9a, 0x5d9e, 0x5e69, 0x5e5d, + 0x5e60, 0x5e5c, 0x7df3, 0x5edb, 0x5ede, 0x5ee1, 0x5f49, 0x5fb2, + 0x618b, 0x6183, 0x6179, 0x61b1, 0x61b0, 0x61a2, 0x6189, 0x619b, + 0x6193, 0x61af, 0x61ad, 0x619f, 0x6192, 0x61aa, 0x61a1, 0x618d, + 0x6166, 0x61b3, 0x622d, 0x646e, 0x6470, 0x6496, 0x64a0, 0x6485, + 0x6497, 0x649c, 0x648f, 0x648b, 0x648a, 0x648c, 0x64a3, 0x649f, + 0x6468, 0x64b1, 0x6498, 0x6576, 0x657a, 0x6579, 0x657b, 0x65b2, + 0x65b3, 0x66b5, 0x66b0, 0x66a9, 0x66b2, 0x66b7, 0x66aa, 0x66af, + 0x6a00, 0x6a06, 0x6a17, 0x69e5, 0x69f8, 0x6a15, 0x69f1, 0x69e4, + 0x6a20, 0x69ff, 0x69ec, 0x69e2, 0x6a1b, 0x6a1d, + /* 0x51 */ + 0x69fe, 0x6a27, 0x69f2, 0x69ee, 0x6a14, 0x69f7, 0x69e7, 0x6a40, + 0x6a08, 0x69e6, 0x69fb, 0x6a0d, 0x69fc, 0x69eb, 0x6a09, 0x6a04, + 0x6a18, 0x6a25, 0x6a0f, 0x69f6, 0x6a26, 0x6a07, 0x69f4, 0x6a16, + 0x6b51, 0x6ba5, 0x6ba3, 0x6ba2, 0x6ba6, 0x6c01, 0x6c00, 0x6bff, + 0x6c02, 0x6f41, 0x6f26, 0x6f7e, 0x6f87, 0x6fc6, 0x6f92, 0x6f8d, + 0x6f89, 0x6f8c, 0x6f62, 0x6f4f, 0x6f85, 0x6f5a, 0x6f96, 0x6f76, + 0x6f6c, 0x6f82, 0x6f55, 0x6f72, 0x6f52, 0x6f50, 0x6f57, 0x6f94, + 0x6f93, 0x6f5d, 0x6f00, 0x6f61, 0x6f6b, 0x6f7d, 0x6f67, 0x6f90, + 0x6f53, 0x6f8b, 0x6f69, 0x6f7f, 0x6f95, 0x6f63, 0x6f77, 0x6f6a, + 0x6f7b, 0x71b2, 0x71af, 0x719b, 0x71b0, 0x71a0, 0x719a, 0x71a9, + 0x71b5, 0x719d, 0x71a5, 0x719e, 0x71a4, 0x71a1, 0x71aa, 0x719c, + 0x71a7, 0x71b3, 0x7298, 0x729a, 0x7358, 0x7352, + /* 0x52 */ + 0x735e, 0x735f, 0x7360, 0x735d, 0x735b, 0x7361, 0x735a, 0x7359, + 0x7362, 0x7487, 0x7489, 0x748a, 0x7486, 0x7481, 0x747d, 0x7485, + 0x7488, 0x747c, 0x7479, 0x7508, 0x7507, 0x757e, 0x7625, 0x761e, + 0x7619, 0x761d, 0x761c, 0x7623, 0x761a, 0x7628, 0x761b, 0x769c, + 0x769d, 0x769e, 0x769b, 0x778d, 0x778f, 0x7789, 0x7788, 0x78cd, + 0x78bb, 0x78cf, 0x78cc, 0x78d1, 0x78ce, 0x78d4, 0x78c8, 0x78c3, + 0x78c4, 0x78c9, 0x799a, 0x79a1, 0x79a0, 0x799c, 0x79a2, 0x799b, + 0x6b76, 0x7a39, 0x7ab2, 0x7ab4, 0x7ab3, 0x7bb7, 0x7bcb, 0x7bbe, + 0x7bac, 0x7bce, 0x7baf, 0x7bb9, 0x7bca, 0x7bb5, 0x7cc5, 0x7cc8, + 0x7ccc, 0x7ccb, 0x7df7, 0x7ddb, 0x7dea, 0x7de7, 0x7dd7, 0x7de1, + 0x7e03, 0x7dfa, 0x7de6, 0x7df6, 0x7df1, 0x7df0, 0x7dee, 0x7ddf, + 0x7f76, 0x7fac, 0x7fb0, 0x7fad, 0x7fed, 0x7feb, + /* 0x53 */ + 0x7fea, 0x7fec, 0x7fe6, 0x7fe8, 0x8064, 0x8067, 0x81a3, 0x819f, + 0x819e, 0x8195, 0x81a2, 0x8199, 0x8197, 0x8216, 0x824f, 0x8253, + 0x8252, 0x8250, 0x824e, 0x8251, 0x8524, 0x853b, 0x850f, 0x8500, + 0x8529, 0x850e, 0x8509, 0x850d, 0x851f, 0x850a, 0x8527, 0x851c, + 0x84fb, 0x852b, 0x84fa, 0x8508, 0x850c, 0x84f4, 0x852a, 0x84f2, + 0x8515, 0x84f7, 0x84eb, 0x84f3, 0x84fc, 0x8512, 0x84ea, 0x84e9, + 0x8516, 0x84fe, 0x8528, 0x851d, 0x852e, 0x8502, 0x84fd, 0x851e, + 0x84f6, 0x8531, 0x8526, 0x84e7, 0x84e8, 0x84f0, 0x84ef, 0x84f9, + 0x8518, 0x8520, 0x8530, 0x850b, 0x8519, 0x852f, 0x8662, 0x8756, + 0x8763, 0x8764, 0x8777, 0x87e1, 0x8773, 0x8758, 0x8754, 0x875b, + 0x8752, 0x8761, 0x875a, 0x8751, 0x875e, 0x876d, 0x876a, 0x8750, + 0x874e, 0x875f, 0x875d, 0x876f, 0x876c, 0x877a, + /* 0x54 */ + 0x876e, 0x875c, 0x8765, 0x874f, 0x877b, 0x8775, 0x8762, 0x8767, + 0x8769, 0x885a, 0x8905, 0x890c, 0x8914, 0x890b, 0x8917, 0x8918, + 0x8919, 0x8906, 0x8916, 0x8911, 0x890e, 0x8909, 0x89a2, 0x89a4, + 0x89a3, 0x89ed, 0x89f0, 0x89ec, 0x8acf, 0x8ac6, 0x8ab8, 0x8ad3, + 0x8ad1, 0x8ad4, 0x8ad5, 0x8abb, 0x8ad7, 0x8abe, 0x8ac0, 0x8ac5, + 0x8ad8, 0x8ac3, 0x8aba, 0x8abd, 0x8ad9, 0x8c3e, 0x8c4d, 0x8c8f, + 0x8ce5, 0x8cdf, 0x8cd9, 0x8ce8, 0x8cda, 0x8cdd, 0x8ce7, 0x8da0, + 0x8d9c, 0x8da1, 0x8d9b, 0x8e20, 0x8e23, 0x8e25, 0x8e24, 0x8e2e, + 0x8e15, 0x8e1b, 0x8e16, 0x8e11, 0x8e19, 0x8e26, 0x8e27, 0x8e14, + 0x8e12, 0x8e18, 0x8e13, 0x8e1c, 0x8e17, 0x8e1a, 0x8f2c, 0x8f24, + 0x8f18, 0x8f1a, 0x8f20, 0x8f23, 0x8f16, 0x8f17, 0x9073, 0x9070, + 0x906f, 0x9067, 0x906b, 0x912f, 0x912b, 0x9129, + /* 0x55 */ + 0x912a, 0x9132, 0x9126, 0x912e, 0x9185, 0x9186, 0x918a, 0x9181, + 0x9182, 0x9184, 0x9180, 0x92d0, 0x92c3, 0x92c4, 0x92c0, 0x92d9, + 0x92b6, 0x92cf, 0x92f1, 0x92df, 0x92d8, 0x92e9, 0x92d7, 0x92dd, + 0x92cc, 0x92ef, 0x92c2, 0x92e8, 0x92ca, 0x92c8, 0x92ce, 0x92e6, + 0x92cd, 0x92d5, 0x92c9, 0x92e0, 0x92de, 0x92e7, 0x92d1, 0x92d3, + 0x92b5, 0x92e1, 0x9325, 0x92c6, 0x92b4, 0x957c, 0x95ac, 0x95ab, + 0x95ae, 0x95b0, 0x96a4, 0x96a2, 0x96d3, 0x9705, 0x9708, 0x9702, + 0x975a, 0x978a, 0x978e, 0x9788, 0x97d0, 0x97cf, 0x981e, 0x981d, + 0x9826, 0x9829, 0x9828, 0x9820, 0x981b, 0x9827, 0x98b2, 0x9908, + 0x98fa, 0x9911, 0x9914, 0x9916, 0x9917, 0x9915, 0x99dc, 0x99cd, + 0x99cf, 0x99d3, 0x99d4, 0x99ce, 0x99c9, 0x99d6, 0x99d8, 0x99cb, + 0x99d7, 0x99cc, 0x9ab3, 0x9aec, 0x9aeb, 0x9af3, + /* 0x56 */ + 0x9af2, 0x9af1, 0x9b46, 0x9b43, 0x9b67, 0x9b74, 0x9b71, 0x9b66, + 0x9b76, 0x9b75, 0x9b70, 0x9b68, 0x9b64, 0x9b6c, 0x9cfc, 0x9cfa, + 0x9cfd, 0x9cff, 0x9cf7, 0x9d07, 0x9d00, 0x9cf9, 0x9cfb, 0x9d08, + 0x9d05, 0x9d04, 0x9e83, 0x9ed3, 0x9f0f, 0x9f10, 0x511c, 0x5113, + 0x5117, 0x511a, 0x5111, 0x51de, 0x5334, 0x53e1, 0x5670, 0x5660, + 0x566e, 0x5673, 0x5666, 0x5663, 0x566d, 0x5672, 0x565e, 0x5677, + 0x571c, 0x571b, 0x58c8, 0x58bd, 0x58c9, 0x58bf, 0x58ba, 0x58c2, + 0x58bc, 0x58c6, 0x5b17, 0x5b19, 0x5b1b, 0x5b21, 0x5b14, 0x5b13, + 0x5b10, 0x5b16, 0x5b28, 0x5b1a, 0x5b20, 0x5b1e, 0x5bef, 0x5dac, + 0x5db1, 0x5da9, 0x5da7, 0x5db5, 0x5db0, 0x5dae, 0x5daa, 0x5da8, + 0x5db2, 0x5dad, 0x5daf, 0x5db4, 0x5e67, 0x5e68, 0x5e66, 0x5e6f, + 0x5ee9, 0x5ee7, 0x5ee6, 0x5ee8, 0x5ee5, 0x5f4b, + /* 0x57 */ + 0x5fbc, 0x5fbb, 0x619d, 0x61a8, 0x6196, 0x61c5, 0x61b4, 0x61c6, + 0x61c1, 0x61cc, 0x61ba, 0x61bf, 0x61b8, 0x618c, 0x64d7, 0x64d6, + 0x64d0, 0x64cf, 0x64c9, 0x64bd, 0x6489, 0x64c3, 0x64db, 0x64f3, + 0x64d9, 0x6533, 0x657f, 0x657c, 0x65a2, 0x66c8, 0x66be, 0x66c0, + 0x66ca, 0x66cb, 0x66cf, 0x66bd, 0x66bb, 0x66ba, 0x66cc, 0x6723, + 0x6a34, 0x6a66, 0x6a49, 0x6a67, 0x6a32, 0x6a68, 0x6a3e, 0x6a5d, + 0x6a6d, 0x6a76, 0x6a5b, 0x6a51, 0x6a28, 0x6a5a, 0x6a3b, 0x6a3f, + 0x6a41, 0x6a6a, 0x6a64, 0x6a50, 0x6a4f, 0x6a54, 0x6a6f, 0x6a69, + 0x6a60, 0x6a3c, 0x6a5e, 0x6a56, 0x6a55, 0x6a4d, 0x6a4e, 0x6a46, + 0x6b55, 0x6b54, 0x6b56, 0x6ba7, 0x6baa, 0x6bab, 0x6bc8, 0x6bc7, + 0x6c04, 0x6c03, 0x6c06, 0x6fad, 0x6fcb, 0x6fa3, 0x6fc7, 0x6fbc, + 0x6fce, 0x6fc8, 0x6f5e, 0x6fc4, 0x6fbd, 0x6f9e, + /* 0x58 */ + 0x6fca, 0x6fa8, 0x7004, 0x6fa5, 0x6fae, 0x6fba, 0x6fac, 0x6faa, + 0x6fcf, 0x6fbf, 0x6fb8, 0x6fa2, 0x6fc9, 0x6fab, 0x6fcd, 0x6faf, + 0x6fb2, 0x6fb0, 0x71c5, 0x71c2, 0x71bf, 0x71b8, 0x71d6, 0x71c0, + 0x71c1, 0x71cb, 0x71d4, 0x71ca, 0x71c7, 0x71cf, 0x71bd, 0x71d8, + 0x71bc, 0x71c6, 0x71da, 0x71db, 0x729d, 0x729e, 0x7369, 0x7366, + 0x7367, 0x736c, 0x7365, 0x736b, 0x736a, 0x747f, 0x749a, 0x74a0, + 0x7494, 0x7492, 0x7495, 0x74a1, 0x750b, 0x7580, 0x762f, 0x762d, + 0x7631, 0x763d, 0x7633, 0x763c, 0x7635, 0x7632, 0x7630, 0x76bb, + 0x76e6, 0x779a, 0x779d, 0x77a1, 0x779c, 0x779b, 0x77a2, 0x77a3, + 0x7795, 0x7799, 0x7797, 0x78dd, 0x78e9, 0x78e5, 0x78ea, 0x78de, + 0x78e3, 0x78db, 0x78e1, 0x78e2, 0x78ed, 0x78df, 0x78e0, 0x79a4, + 0x7a44, 0x7a48, 0x7a47, 0x7ab6, 0x7ab8, 0x7ab5, + /* 0x59 */ + 0x7ab1, 0x7ab7, 0x7bde, 0x7be3, 0x7be7, 0x7bdd, 0x7bd5, 0x7be5, + 0x7bda, 0x7be8, 0x7bf9, 0x7bd4, 0x7bea, 0x7be2, 0x7bdc, 0x7beb, + 0x7bd8, 0x7bdf, 0x7cd2, 0x7cd4, 0x7cd7, 0x7cd0, 0x7cd1, 0x7e12, + 0x7e21, 0x7e17, 0x7e0c, 0x7e1f, 0x7e20, 0x7e13, 0x7e0e, 0x7e1c, + 0x7e15, 0x7e1a, 0x7e22, 0x7e0b, 0x7e0f, 0x7e16, 0x7e0d, 0x7e14, + 0x7e25, 0x7e24, 0x7f43, 0x7f7b, 0x7f7c, 0x7f7a, 0x7fb1, 0x7fef, + 0x802a, 0x8029, 0x806c, 0x81b1, 0x81a6, 0x81ae, 0x81b9, 0x81b5, + 0x81ab, 0x81b0, 0x81ac, 0x81b4, 0x81b2, 0x81b7, 0x81a7, 0x81f2, + 0x8255, 0x8256, 0x8257, 0x8556, 0x8545, 0x856b, 0x854d, 0x8553, + 0x8561, 0x8558, 0x8540, 0x8546, 0x8564, 0x8541, 0x8562, 0x8544, + 0x8551, 0x8547, 0x8563, 0x853e, 0x855b, 0x8571, 0x854e, 0x856e, + 0x8575, 0x8555, 0x8567, 0x8560, 0x858c, 0x8566, + /* 0x5a */ + 0x855d, 0x8554, 0x8565, 0x856c, 0x8663, 0x8665, 0x8664, 0x87a4, + 0x879b, 0x878f, 0x8797, 0x8793, 0x8792, 0x8788, 0x8781, 0x8796, + 0x8798, 0x8779, 0x8787, 0x87a3, 0x8785, 0x8790, 0x8791, 0x879d, + 0x8784, 0x8794, 0x879c, 0x879a, 0x8789, 0x891e, 0x8926, 0x8930, + 0x892d, 0x892e, 0x8927, 0x8931, 0x8922, 0x8929, 0x8923, 0x892f, + 0x892c, 0x891f, 0x89f1, 0x8ae0, 0x8ae2, 0x8af2, 0x8af4, 0x8af5, + 0x8add, 0x8b14, 0x8ae4, 0x8adf, 0x8af0, 0x8ac8, 0x8ade, 0x8ae1, + 0x8ae8, 0x8aff, 0x8aef, 0x8afb, 0x8c91, 0x8c92, 0x8c90, 0x8cf5, + 0x8cee, 0x8cf1, 0x8cf0, 0x8cf3, 0x8d6c, 0x8d6e, 0x8da5, 0x8da7, + 0x8e33, 0x8e3e, 0x8e38, 0x8e40, 0x8e45, 0x8e36, 0x8e3c, 0x8e3d, + 0x8e41, 0x8e30, 0x8e3f, 0x8ebd, 0x8f36, 0x8f2e, 0x8f35, 0x8f32, + 0x8f39, 0x8f37, 0x8f34, 0x9076, 0x9079, 0x907b, + /* 0x5b */ + 0x9086, 0x90fa, 0x9133, 0x9135, 0x9136, 0x9193, 0x9190, 0x9191, + 0x918d, 0x918f, 0x9327, 0x931e, 0x9308, 0x931f, 0x9306, 0x930f, + 0x937a, 0x9338, 0x933c, 0x931b, 0x9323, 0x9312, 0x9301, 0x9346, + 0x932d, 0x930e, 0x930d, 0x92cb, 0x931d, 0x92fa, 0x9313, 0x92f9, + 0x92f7, 0x9334, 0x9302, 0x9324, 0x92ff, 0x9329, 0x9339, 0x9335, + 0x932a, 0x9314, 0x930c, 0x930b, 0x92fe, 0x9309, 0x9300, 0x92fb, + 0x9316, 0x95bc, 0x95cd, 0x95be, 0x95b9, 0x95ba, 0x95b6, 0x95bf, + 0x95b5, 0x95bd, 0x96a9, 0x96d4, 0x970b, 0x9712, 0x9710, 0x9799, + 0x9797, 0x9794, 0x97f0, 0x97f8, 0x9835, 0x982f, 0x9832, 0x9924, + 0x991f, 0x9927, 0x9929, 0x999e, 0x99ee, 0x99ec, 0x99e5, 0x99e4, + 0x99f0, 0x99e3, 0x99ea, 0x99e9, 0x99e7, 0x9ab9, 0x9abf, 0x9ab4, + 0x9abb, 0x9af6, 0x9afa, 0x9af9, 0x9af7, 0x9b33, + /* 0x5c */ + 0x9b80, 0x9b85, 0x9b87, 0x9b7c, 0x9b7e, 0x9b7b, 0x9b82, 0x9b93, + 0x9b92, 0x9b90, 0x9b7a, 0x9b95, 0x9b7d, 0x9b88, 0x9d25, 0x9d17, + 0x9d20, 0x9d1e, 0x9d14, 0x9d29, 0x9d1d, 0x9d18, 0x9d22, 0x9d10, + 0x9d19, 0x9d1f, 0x9e88, 0x9e86, 0x9e87, 0x9eae, 0x9ead, 0x9ed5, + 0x9ed6, 0x9efa, 0x9f12, 0x9f3d, 0x5126, 0x5125, 0x5122, 0x5124, + 0x5120, 0x5129, 0x52f4, 0x5693, 0x568c, 0x568d, 0x5686, 0x5684, + 0x5683, 0x567e, 0x5682, 0x567f, 0x5681, 0x58d6, 0x58d4, 0x58cf, + 0x58d2, 0x5b2d, 0x5b25, 0x5b32, 0x5b23, 0x5b2c, 0x5b27, 0x5b26, + 0x5b2f, 0x5b2e, 0x5b7b, 0x5bf1, 0x5bf2, 0x5db7, 0x5e6c, 0x5e6a, + 0x5fbe, 0x61c3, 0x61b5, 0x61bc, 0x61e7, 0x61e0, 0x61e5, 0x61e4, + 0x61e8, 0x61de, 0x64ef, 0x64e9, 0x64e3, 0x64eb, 0x64e4, 0x64e8, + 0x6581, 0x6580, 0x65b6, 0x65da, 0x66d2, 0x6a8d, + /* 0x5d */ + 0x6a96, 0x6a81, 0x6aa5, 0x6a89, 0x6a9f, 0x6a9b, 0x6aa1, 0x6a9e, + 0x6a87, 0x6a93, 0x6a8e, 0x6a95, 0x6a83, 0x6aa8, 0x6aa4, 0x6a91, + 0x6a7f, 0x6aa6, 0x6a9a, 0x6a85, 0x6a8c, 0x6a92, 0x6b5b, 0x6bad, + 0x6c09, 0x6fcc, 0x6fa9, 0x6ff4, 0x6fd4, 0x6fe3, 0x6fdc, 0x6fed, + 0x6fe7, 0x6fe6, 0x6fde, 0x6ff2, 0x6fdd, 0x6fe2, 0x6fe8, 0x71e1, + 0x71f1, 0x71e8, 0x71f2, 0x71e4, 0x71f0, 0x71e2, 0x7373, 0x736e, + 0x736f, 0x7497, 0x74b2, 0x74ab, 0x7490, 0x74aa, 0x74ad, 0x74b1, + 0x74a5, 0x74af, 0x7510, 0x7511, 0x7512, 0x750f, 0x7584, 0x7643, + 0x7648, 0x7649, 0x7647, 0x76a4, 0x76e9, 0x77b5, 0x77ab, 0x77b2, + 0x77b7, 0x77b6, 0x77b4, 0x77b1, 0x77a8, 0x77f0, 0x78f3, 0x78fd, + 0x7902, 0x78fb, 0x78fc, 0x78ff, 0x78f2, 0x7905, 0x78f9, 0x78fe, + 0x7904, 0x79ab, 0x79a8, 0x7a5c, 0x7a5b, 0x7a56, + /* 0x5e */ + 0x7a58, 0x7a54, 0x7a5a, 0x7abe, 0x7ac0, 0x7ac1, 0x7c05, 0x7c0f, + 0x7bf2, 0x7c00, 0x7bff, 0x7bfb, 0x7c0e, 0x7bf4, 0x7c0b, 0x7bf3, + 0x7c02, 0x7c09, 0x7c03, 0x7c01, 0x7bf8, 0x7bfd, 0x7c06, 0x7bf0, + 0x7bf1, 0x7c10, 0x7c0a, 0x7ce8, 0x7e2d, 0x7e3c, 0x7e42, 0x7e33, + 0x9848, 0x7e38, 0x7e2a, 0x7e49, 0x7e40, 0x7e47, 0x7e29, 0x7e4c, + 0x7e30, 0x7e3b, 0x7e36, 0x7e44, 0x7e3a, 0x7f45, 0x7f7f, 0x7f7e, + 0x7f7d, 0x7ff4, 0x7ff2, 0x802c, 0x81bb, 0x81c4, 0x81cc, 0x81ca, + 0x81c5, 0x81c7, 0x81bc, 0x81e9, 0x825b, 0x825a, 0x825c, 0x8583, + 0x8580, 0x858f, 0x85a7, 0x8595, 0x85a0, 0x858b, 0x85a3, 0x857b, + 0x85a4, 0x859a, 0x859e, 0x8577, 0x857c, 0x8589, 0x85a1, 0x857a, + 0x8578, 0x8557, 0x858e, 0x8596, 0x8586, 0x858d, 0x8599, 0x859d, + 0x8581, 0x85a2, 0x8582, 0x8588, 0x8585, 0x8579, + /* 0x5f */ + 0x8576, 0x8598, 0x8590, 0x859f, 0x8668, 0x87be, 0x87aa, 0x87ad, + 0x87c5, 0x87b0, 0x87ac, 0x87b9, 0x87b5, 0x87bc, 0x87ae, 0x87c9, + 0x87c3, 0x87c2, 0x87cc, 0x87b7, 0x87af, 0x87c4, 0x87ca, 0x87b4, + 0x87b6, 0x87bf, 0x87b8, 0x87bd, 0x87de, 0x87b2, 0x8935, 0x8933, + 0x893c, 0x893e, 0x8941, 0x8952, 0x8937, 0x8942, 0x89ad, 0x89af, + 0x89ae, 0x89f2, 0x89f3, 0x8b1e, 0x8b18, 0x8b16, 0x8b11, 0x8b05, + 0x8b0b, 0x8b22, 0x8b0f, 0x8b12, 0x8b15, 0x8b07, 0x8b0d, 0x8b08, + 0x8b06, 0x8b1c, 0x8b13, 0x8b1a, 0x8c4f, 0x8c70, 0x8c72, 0x8c71, + 0x8c6f, 0x8c95, 0x8c94, 0x8cf9, 0x8d6f, 0x8e4e, 0x8e4d, 0x8e53, + 0x8e50, 0x8e4c, 0x8e47, 0x8f43, 0x8f40, 0x9085, 0x907e, 0x9138, + 0x919a, 0x91a2, 0x919b, 0x9199, 0x919f, 0x91a1, 0x919d, 0x91a0, + 0x93a1, 0x9383, 0x93af, 0x9364, 0x9356, 0x9347, + /* 0x60 */ + 0x937c, 0x9358, 0x935c, 0x9376, 0x9349, 0x9350, 0x9351, 0x9360, + 0x936d, 0x938f, 0x934c, 0x936a, 0x9379, 0x9357, 0x9355, 0x9352, + 0x934f, 0x9371, 0x9377, 0x937b, 0x9361, 0x935e, 0x9363, 0x9367, + 0x934e, 0x9359, 0x95c7, 0x95c0, 0x95c9, 0x95c3, 0x95c5, 0x95b7, + 0x96ae, 0x96b0, 0x96ac, 0x9720, 0x971f, 0x9718, 0x971d, 0x9719, + 0x979a, 0x97a1, 0x979c, 0x979e, 0x979d, 0x97d5, 0x97d4, 0x97f1, + 0x9841, 0x9844, 0x984a, 0x9849, 0x9845, 0x9843, 0x9925, 0x992b, + 0x992c, 0x992a, 0x9933, 0x9932, 0x992f, 0x992d, 0x9931, 0x9930, + 0x9998, 0x99a3, 0x99a1, 0x9a02, 0x99fa, 0x99f4, 0x99f7, 0x99f9, + 0x99f8, 0x99f6, 0x99fb, 0x99fd, 0x99fe, 0x99fc, 0x9a03, 0x9abe, + 0x9afe, 0x9afd, 0x9b01, 0x9afc, 0x9b48, 0x9b9a, 0x9ba8, 0x9b9e, + 0x9b9b, 0x9ba6, 0x9ba1, 0x9ba5, 0x9ba4, 0x9b86, + /* 0x61 */ + 0x9ba2, 0x9ba0, 0x9baf, 0x9d33, 0x9d41, 0x9d67, 0x9d36, 0x9d2e, + 0x9d2f, 0x9d31, 0x9d38, 0x9d30, 0x9d45, 0x9d42, 0x9d43, 0x9d3e, + 0x9d37, 0x9d40, 0x9d3d, 0x7ff5, 0x9d2d, 0x9e8a, 0x9e89, 0x9e8d, + 0x9eb0, 0x9ec8, 0x9eda, 0x9efb, 0x9eff, 0x9f24, 0x9f23, 0x9f22, + 0x9f54, 0x9fa0, 0x5131, 0x512d, 0x512e, 0x5698, 0x569c, 0x5697, + 0x569a, 0x569d, 0x5699, 0x5970, 0x5b3c, 0x5c69, 0x5c6a, 0x5dc0, + 0x5e6d, 0x5e6e, 0x61d8, 0x61df, 0x61ed, 0x61ee, 0x61f1, 0x61ea, + 0x61f0, 0x61eb, 0x61d6, 0x61e9, 0x64ff, 0x6504, 0x64fd, 0x64f8, + 0x6501, 0x6503, 0x64fc, 0x6594, 0x65db, 0x66da, 0x66db, 0x66d8, + 0x6ac5, 0x6ab9, 0x6abd, 0x6ae1, 0x6ac6, 0x6aba, 0x6ab6, 0x6ab7, + 0x6ac7, 0x6ab4, 0x6aad, 0x6b5e, 0x6bc9, 0x6c0b, 0x7007, 0x700c, + 0x700d, 0x7001, 0x7005, 0x7014, 0x700e, 0x6fff, + /* 0x62 */ + 0x7000, 0x6ffb, 0x7026, 0x6ffc, 0x6ff7, 0x700a, 0x7201, 0x71ff, + 0x71f9, 0x7203, 0x71fd, 0x7376, 0x74b8, 0x74c0, 0x74b5, 0x74c1, + 0x74be, 0x74b6, 0x74bb, 0x74c2, 0x7514, 0x7513, 0x765c, 0x7664, + 0x7659, 0x7650, 0x7653, 0x7657, 0x765a, 0x76a6, 0x76bd, 0x76ec, + 0x77c2, 0x77ba, 0x790c, 0x7913, 0x7914, 0x7909, 0x7910, 0x7912, + 0x7911, 0x79ad, 0x79ac, 0x7a5f, 0x7c1c, 0x7c29, 0x7c19, 0x7c20, + 0x7c1f, 0x7c2d, 0x7c1d, 0x7c26, 0x7c28, 0x7c22, 0x7c25, 0x7c30, + 0x7e5c, 0x7e50, 0x7e56, 0x7e63, 0x7e58, 0x7e62, 0x7e5f, 0x7e51, + 0x7e60, 0x7e57, 0x7e53, 0x7fb5, 0x7fb3, 0x7ff7, 0x7ff8, 0x8075, + 0x81d1, 0x81d2, 0x81d0, 0x825f, 0x825e, 0x85b4, 0x85c6, 0x85c0, + 0x85c3, 0x85c2, 0x85b3, 0x85b5, 0x85bd, 0x85c7, 0x85c4, 0x85bf, + 0x85cb, 0x85ce, 0x85c8, 0x85c5, 0x85b1, 0x85b6, + /* 0x63 */ + 0x85d2, 0x8624, 0x85b8, 0x85b7, 0x85be, 0x8669, 0x87e7, 0x87e6, + 0x87e2, 0x87db, 0x87eb, 0x87ea, 0x87e5, 0x87df, 0x87f3, 0x87e4, + 0x87d4, 0x87dc, 0x87d3, 0x87ed, 0x87d8, 0x87e3, 0x87d7, 0x87d9, + 0x8801, 0x87f4, 0x87e8, 0x87dd, 0x8953, 0x894b, 0x894f, 0x894c, + 0x8946, 0x8950, 0x8951, 0x8949, 0x8b2a, 0x8b27, 0x8b23, 0x8b33, + 0x8b30, 0x8b35, 0x8b47, 0x8b2f, 0x8b3c, 0x8b3e, 0x8b31, 0x8b25, + 0x8b37, 0x8b26, 0x8b36, 0x8b2e, 0x8b24, 0x8b3b, 0x8b3d, 0x8b3a, + 0x8c42, 0x8c75, 0x8c99, 0x8c98, 0x8c97, 0x8cfe, 0x8d04, 0x8d02, + 0x8d00, 0x8e5c, 0x8e62, 0x8e60, 0x8e57, 0x8e56, 0x8e5e, 0x8e65, + 0x8e67, 0x8e5b, 0x8e5a, 0x8e61, 0x8e5d, 0x8e69, 0x8e54, 0x8f46, + 0x8f47, 0x8f48, 0x8f4b, 0x9128, 0x913a, 0x913b, 0x913e, 0x91a8, + 0x91a5, 0x91a7, 0x91af, 0x91aa, 0x93b5, 0x938c, + /* 0x64 */ + 0x9392, 0x93b7, 0x939b, 0x939d, 0x9389, 0x93a7, 0x938e, 0x93aa, + 0x939e, 0x93a6, 0x9395, 0x9388, 0x9399, 0x939f, 0x9380, 0x938d, + 0x93b1, 0x9391, 0x93b2, 0x93a4, 0x93a8, 0x93b4, 0x93a3, 0x95d2, + 0x95d3, 0x95d1, 0x96b3, 0x96d7, 0x96da, 0x5dc2, 0x96df, 0x96d8, + 0x96dd, 0x9723, 0x9722, 0x9725, 0x97ac, 0x97ae, 0x97a8, 0x97ab, + 0x97a4, 0x97aa, 0x97a2, 0x97a5, 0x97d7, 0x97d9, 0x97d6, 0x97d8, + 0x97fa, 0x9850, 0x9851, 0x9852, 0x98b8, 0x9941, 0x993c, 0x993a, + 0x9a0f, 0x9a0b, 0x9a09, 0x9a0d, 0x9a04, 0x9a11, 0x9a0a, 0x9a05, + 0x9a07, 0x9a06, 0x9ac0, 0x9adc, 0x9b08, 0x9b04, 0x9b05, 0x9b29, + 0x9b35, 0x9b4a, 0x9b4c, 0x9b4b, 0x9bc7, 0x9bc6, 0x9bc3, 0x9bbf, + 0x9bc1, 0x9bb5, 0x9bb8, 0x9bd3, 0x9bb6, 0x9bc4, 0x9bb9, 0x9bbd, + 0x9d5c, 0x9d53, 0x9d4f, 0x9d4a, 0x9d5b, 0x9d4b, + /* 0x65 */ + 0x9d59, 0x9d56, 0x9d4c, 0x9d57, 0x9d52, 0x9d54, 0x9d5f, 0x9d58, + 0x9d5a, 0x9e8e, 0x9e8c, 0x9edf, 0x9f01, 0x9f00, 0x9f16, 0x9f25, + 0x9f2b, 0x9f2a, 0x9f29, 0x9f28, 0x9f4c, 0x9f55, 0x5134, 0x5135, + 0x5296, 0x52f7, 0x53b4, 0x56ab, 0x56ad, 0x56a6, 0x56a7, 0x56aa, + 0x56ac, 0x58da, 0x58dd, 0x58db, 0x5912, 0x5b3d, 0x5b3e, 0x5b3f, + 0x5dc3, 0x5e70, 0x5fbf, 0x61fb, 0x6507, 0x6510, 0x650d, 0x6509, + 0x650c, 0x650e, 0x6584, 0x65de, 0x65dd, 0x66de, 0x6ae7, 0x6ae0, + 0x6acc, 0x6ad1, 0x6ad9, 0x6acb, 0x6adf, 0x6adc, 0x6ad0, 0x6aeb, + 0x6acf, 0x6acd, 0x6ade, 0x6b60, 0x6bb0, 0x6c0c, 0x7019, 0x7027, + 0x7020, 0x7016, 0x702b, 0x7021, 0x7022, 0x7023, 0x7029, 0x7017, + 0x7024, 0x701c, 0x720c, 0x720a, 0x7207, 0x7202, 0x7205, 0x72a5, + 0x72a6, 0x72a4, 0x72a3, 0x72a1, 0x74cb, 0x74c5, + /* 0x66 */ + 0x74b7, 0x74c3, 0x7516, 0x7660, 0x77c9, 0x77ca, 0x77c4, 0x77f1, + 0x791d, 0x791b, 0x7921, 0x791c, 0x7917, 0x791e, 0x79b0, 0x7a67, + 0x7a68, 0x7c33, 0x7c3c, 0x7c39, 0x7c2c, 0x7c3b, 0x7cec, 0x7cea, + 0x7e76, 0x7e75, 0x7e78, 0x7e70, 0x7e77, 0x7e6f, 0x7e7a, 0x7e72, + 0x7e74, 0x7e68, 0x7f4b, 0x7f4a, 0x7f83, 0x7f86, 0x7fb7, 0x7ffd, + 0x7ffe, 0x8078, 0x81d7, 0x81d5, 0x820b, 0x8264, 0x8261, 0x8263, + 0x85eb, 0x85f1, 0x85ed, 0x85d9, 0x85e1, 0x85e8, 0x85da, 0x85d7, + 0x85ec, 0x85f2, 0x85f8, 0x85d8, 0x85df, 0x85e3, 0x85dc, 0x85d1, + 0x85f0, 0x85e6, 0x85ef, 0x85de, 0x85e2, 0x8800, 0x87fa, 0x8803, + 0x87f6, 0x87f7, 0x8809, 0x880c, 0x880b, 0x8806, 0x87fc, 0x8808, + 0x87ff, 0x880a, 0x8802, 0x8962, 0x895a, 0x895b, 0x8957, 0x8961, + 0x895c, 0x8958, 0x895d, 0x8959, 0x8988, 0x89b7, + /* 0x67 */ + 0x89b6, 0x89f6, 0x8b50, 0x8b48, 0x8b4a, 0x8b40, 0x8b53, 0x8b56, + 0x8b54, 0x8b4b, 0x8b55, 0x8b51, 0x8b42, 0x8b52, 0x8b57, 0x8c43, + 0x8c77, 0x8c76, 0x8c9a, 0x8d06, 0x8d07, 0x8d09, 0x8dac, 0x8daa, + 0x8dad, 0x8dab, 0x8e6d, 0x8e78, 0x8e73, 0x8e6a, 0x8e6f, 0x8e7b, + 0x8ec2, 0x8f52, 0x8f51, 0x8f4f, 0x8f50, 0x8f53, 0x8fb4, 0x9140, + 0x913f, 0x91b0, 0x91ad, 0x93de, 0x93c7, 0x93cf, 0x93c2, 0x93da, + 0x93d0, 0x93f9, 0x93ec, 0x93cc, 0x93d9, 0x93a9, 0x93e6, 0x93ca, + 0x93d4, 0x93ee, 0x93e3, 0x93d5, 0x93c4, 0x93ce, 0x93c0, 0x93d2, + 0x93a5, 0x93e7, 0x957d, 0x95da, 0x95db, 0x96e1, 0x9729, 0x972b, + 0x972c, 0x9728, 0x9726, 0x97b3, 0x97b7, 0x97b6, 0x97dd, 0x97de, + 0x97df, 0x985c, 0x9859, 0x985d, 0x9857, 0x98bf, 0x98bd, 0x98bb, + 0x98be, 0x9948, 0x9947, 0x9943, 0x99a6, 0x99a7, + /* 0x68 */ + 0x9a1a, 0x9a15, 0x9a25, 0x9a1d, 0x9a24, 0x9a1b, 0x9a22, 0x9a20, + 0x9a27, 0x9a23, 0x9a1e, 0x9a1c, 0x9a14, 0x9ac2, 0x9b0b, 0x9b0a, + 0x9b0e, 0x9b0c, 0x9b37, 0x9bea, 0x9beb, 0x9be0, 0x9bde, 0x9be4, + 0x9be6, 0x9be2, 0x9bf0, 0x9bd4, 0x9bd7, 0x9bec, 0x9bdc, 0x9bd9, + 0x9be5, 0x9bd5, 0x9be1, 0x9bda, 0x9d77, 0x9d81, 0x9d8a, 0x9d84, + 0x9d88, 0x9d71, 0x9d80, 0x9d78, 0x9d86, 0x9d8b, 0x9d8c, 0x9d7d, + 0x9d6b, 0x9d74, 0x9d75, 0x9d70, 0x9d69, 0x9d85, 0x9d73, 0x9d7b, + 0x9d82, 0x9d6f, 0x9d79, 0x9d7f, 0x9d87, 0x9d68, 0x9e94, 0x9e91, + 0x9ec0, 0x9efc, 0x9f2d, 0x9f40, 0x9f41, 0x9f4d, 0x9f56, 0x9f57, + 0x9f58, 0x5337, 0x56b2, 0x56b5, 0x56b3, 0x58e3, 0x5b45, 0x5dc6, + 0x5dc7, 0x5eee, 0x5eef, 0x5fc0, 0x5fc1, 0x61f9, 0x6517, 0x6516, + 0x6515, 0x6513, 0x65df, 0x66e8, 0x66e3, 0x66e4, + /* 0x69 */ + 0x6af3, 0x6af0, 0x6aea, 0x6ae8, 0x6af9, 0x6af1, 0x6aee, 0x6aef, + 0x703c, 0x7035, 0x702f, 0x7037, 0x7034, 0x7031, 0x7042, 0x7038, + 0x703f, 0x703a, 0x7039, 0x702a, 0x7040, 0x703b, 0x7033, 0x7041, + 0x7213, 0x7214, 0x72a8, 0x737d, 0x737c, 0x74ba, 0x76ab, 0x76aa, + 0x76be, 0x76ed, 0x77cc, 0x77ce, 0x77cf, 0x77cd, 0x77f2, 0x7925, + 0x7923, 0x7927, 0x7928, 0x7924, 0x7929, 0x79b2, 0x7a6e, 0x7a6c, + 0x7a6d, 0x7af7, 0x7c49, 0x7c48, 0x7c4a, 0x7c47, 0x7c45, 0x7cee, + 0x7e7b, 0x7e7e, 0x7e81, 0x7e80, 0x7fba, 0x7fff, 0x8079, 0x81db, + 0x81d9, 0x8268, 0x8269, 0x8622, 0x85ff, 0x8601, 0x85fe, 0x861b, + 0x8600, 0x85f6, 0x8604, 0x8609, 0x8605, 0x860c, 0x85fd, 0x8819, + 0x8810, 0x8811, 0x8817, 0x8813, 0x8816, 0x8963, 0x8966, 0x89b9, + 0x89f7, 0x8b60, 0x8b6a, 0x8b5d, 0x8b68, 0x8b63, + /* 0x6a */ + 0x8b65, 0x8b67, 0x8b6d, 0x8dae, 0x8e86, 0x8e88, 0x8e84, 0x8f59, + 0x8f56, 0x8f57, 0x8f55, 0x8f58, 0x8f5a, 0x908d, 0x9143, 0x9141, + 0x91b7, 0x91b5, 0x91b2, 0x91b3, 0x940b, 0x9413, 0x93fb, 0x9420, + 0x940f, 0x9414, 0x93fe, 0x9415, 0x9410, 0x9428, 0x9419, 0x940d, + 0x93f5, 0x9400, 0x93f7, 0x9407, 0x940e, 0x9416, 0x9412, 0x93fa, + 0x9409, 0x93f8, 0x943c, 0x940a, 0x93ff, 0x93fc, 0x940c, 0x93f6, + 0x9411, 0x9406, 0x95de, 0x95e0, 0x95df, 0x972e, 0x972f, 0x97b9, + 0x97bb, 0x97fd, 0x97fe, 0x9860, 0x9862, 0x9863, 0x985f, 0x98c1, + 0x98c2, 0x9950, 0x994e, 0x9959, 0x994c, 0x994b, 0x9953, 0x9a32, + 0x9a34, 0x9a31, 0x9a2c, 0x9a2a, 0x9a36, 0x9a29, 0x9a2e, 0x9a38, + 0x9a2d, 0x9ac7, 0x9aca, 0x9ac6, 0x9b10, 0x9b12, 0x9b11, 0x9c0b, + 0x9c08, 0x9bf7, 0x9c05, 0x9c12, 0x9bf8, 0x9c40, + /* 0x6b */ + 0x9c07, 0x9c0e, 0x9c06, 0x9c17, 0x9c14, 0x9c09, 0x9d9f, 0x9d99, + 0x9da4, 0x9d9d, 0x9d92, 0x9d98, 0x9d90, 0x9d9b, 0x9da0, 0x9d94, + 0x9d9c, 0x9daa, 0x9d97, 0x9da1, 0x9d9a, 0x9da2, 0x9da8, 0x9d9e, + 0x9da3, 0x9dbf, 0x9da9, 0x9d96, 0x9da6, 0x9da7, 0x9e99, 0x9e9b, + 0x9e9a, 0x9ee5, 0x9ee4, 0x9ee7, 0x9ee6, 0x9f30, 0x9f2e, 0x9f5b, + 0x9f60, 0x9f5e, 0x9f5d, 0x9f59, 0x9f91, 0x513a, 0x5139, 0x5298, + 0x5297, 0x56c3, 0x56bd, 0x56be, 0x5b48, 0x5b47, 0x5dcb, 0x5dcf, + 0x5ef1, 0x61fd, 0x651b, 0x6b02, 0x6afc, 0x6b03, 0x6af8, 0x6b00, + 0x7043, 0x7044, 0x704a, 0x7048, 0x7049, 0x7045, 0x7046, 0x721d, + 0x721a, 0x7219, 0x737e, 0x7517, 0x766a, 0x77d0, 0x792d, 0x7931, + 0x792f, 0x7c54, 0x7c53, 0x7cf2, 0x7e8a, 0x7e87, 0x7e88, 0x7e8b, + 0x7e86, 0x7e8d, 0x7f4d, 0x7fbb, 0x8030, 0x81dd, + /* 0x6c */ + 0x8618, 0x862a, 0x8626, 0x861f, 0x8623, 0x861c, 0x8619, 0x8627, + 0x862e, 0x8621, 0x8620, 0x8629, 0x861e, 0x8625, 0x8829, 0x881d, + 0x881b, 0x8820, 0x8824, 0x881c, 0x882b, 0x884a, 0x896d, 0x8969, + 0x896e, 0x896b, 0x89fa, 0x8b79, 0x8b78, 0x8b45, 0x8b7a, 0x8b7b, + 0x8d10, 0x8d14, 0x8daf, 0x8e8e, 0x8e8c, 0x8f5e, 0x8f5b, 0x8f5d, + 0x9146, 0x9144, 0x9145, 0x91b9, 0x943f, 0x943b, 0x9436, 0x9429, + 0x943d, 0x9430, 0x9439, 0x942a, 0x9437, 0x942c, 0x9440, 0x9431, + 0x95e5, 0x95e4, 0x95e3, 0x9735, 0x973a, 0x97bf, 0x97e1, 0x9864, + 0x98c9, 0x98c6, 0x98c0, 0x9958, 0x9956, 0x9a39, 0x9a3d, 0x9a46, + 0x9a44, 0x9a42, 0x9a41, 0x9a3a, 0x9a3f, 0x9acd, 0x9b15, 0x9b17, + 0x9b18, 0x9b16, 0x9b3a, 0x9b52, 0x9c2b, 0x9c1d, 0x9c1c, 0x9c2c, + 0x9c23, 0x9c28, 0x9c29, 0x9c24, 0x9c21, 0x9db7, + /* 0x6d */ + 0x9db6, 0x9dbc, 0x9dc1, 0x9dc7, 0x9dca, 0x9dcf, 0x9dbe, 0x9dc5, + 0x9dc3, 0x9dbb, 0x9db5, 0x9dce, 0x9db9, 0x9dba, 0x9dac, 0x9dc8, + 0x9db1, 0x9dad, 0x9dcc, 0x9db3, 0x9dcd, 0x9db2, 0x9e7a, 0x9e9c, + 0x9eeb, 0x9eee, 0x9eed, 0x9f1b, 0x9f18, 0x9f1a, 0x9f31, 0x9f4e, + 0x9f65, 0x9f64, 0x9f92, 0x4eb9, 0x56c6, 0x56c5, 0x56cb, 0x5971, + 0x5b4b, 0x5b4c, 0x5dd5, 0x5dd1, 0x5ef2, 0x6521, 0x6520, 0x6526, + 0x6522, 0x6b0b, 0x6b08, 0x6b09, 0x6c0d, 0x7055, 0x7056, 0x7057, + 0x7052, 0x721e, 0x721f, 0x72a9, 0x737f, 0x74d8, 0x74d5, 0x74d9, + 0x74d7, 0x766d, 0x76ad, 0x7935, 0x79b4, 0x7a70, 0x7a71, 0x7c57, + 0x7c5c, 0x7c59, 0x7c5b, 0x7c5a, 0x7cf4, 0x7cf1, 0x7e91, 0x7f4f, + 0x7f87, 0x81de, 0x826b, 0x8634, 0x8635, 0x8633, 0x862c, 0x8632, + 0x8636, 0x882c, 0x8828, 0x8826, 0x882a, 0x8825, + /* 0x6e */ + 0x8971, 0x89bf, 0x89be, 0x89fb, 0x8b7e, 0x8b84, 0x8b82, 0x8b86, + 0x8b85, 0x8b7f, 0x8d15, 0x8e95, 0x8e94, 0x8e9a, 0x8e92, 0x8e90, + 0x8e96, 0x8e97, 0x8f60, 0x8f62, 0x9147, 0x944c, 0x9450, 0x944a, + 0x944b, 0x944f, 0x9447, 0x9445, 0x9448, 0x9449, 0x9446, 0x973f, + 0x97e3, 0x986a, 0x9869, 0x98cb, 0x9954, 0x995b, 0x9a4e, 0x9a53, + 0x9a54, 0x9a4c, 0x9a4f, 0x9a48, 0x9a4a, 0x9a49, 0x9a52, 0x9a50, + 0x9ad0, 0x9b19, 0x9b2b, 0x9b3b, 0x9b56, 0x9b55, 0x9c46, 0x9c48, + 0x9c3f, 0x9c44, 0x9c39, 0x9c33, 0x9c41, 0x9c3c, 0x9c37, 0x9c34, + 0x9c32, 0x9c3d, 0x9c36, 0x9ddb, 0x9dd2, 0x9dde, 0x9dda, 0x9dcb, + 0x9dd0, 0x9ddc, 0x9dd1, 0x9ddf, 0x9de9, 0x9dd9, 0x9dd8, 0x9dd6, + 0x9df5, 0x9dd5, 0x9ddd, 0x9eb6, 0x9ef0, 0x9f35, 0x9f33, 0x9f32, + 0x9f42, 0x9f6b, 0x9f95, 0x9fa2, 0x513d, 0x5299, + /* 0x6f */ + 0x58e8, 0x58e7, 0x5972, 0x5b4d, 0x5dd8, 0x882f, 0x5f4f, 0x6201, + 0x6203, 0x6204, 0x6529, 0x6525, 0x6596, 0x66eb, 0x6b11, 0x6b12, + 0x6b0f, 0x6bca, 0x705b, 0x705a, 0x7222, 0x7382, 0x7381, 0x7383, + 0x7670, 0x77d4, 0x7c67, 0x7c66, 0x7e95, 0x826c, 0x863a, 0x8640, + 0x8639, 0x863c, 0x8631, 0x863b, 0x863e, 0x8830, 0x8832, 0x882e, + 0x8833, 0x8976, 0x8974, 0x8973, 0x89fe, 0x8b8c, 0x8b8e, 0x8b8b, + 0x8b88, 0x8c45, 0x8d19, 0x8e98, 0x8f64, 0x8f63, 0x91bc, 0x9462, + 0x9455, 0x945d, 0x9457, 0x945e, 0x97c4, 0x97c5, 0x9800, 0x9a56, + 0x9a59, 0x9b1e, 0x9b1f, 0x9b20, 0x9c52, 0x9c58, 0x9c50, 0x9c4a, + 0x9c4d, 0x9c4b, 0x9c55, 0x9c59, 0x9c4c, 0x9c4e, 0x9dfb, 0x9df7, + 0x9def, 0x9de3, 0x9deb, 0x9df8, 0x9de4, 0x9df6, 0x9de1, 0x9dee, + 0x9de6, 0x9df2, 0x9df0, 0x9de2, 0x9dec, 0x9df4, + /* 0x70 */ + 0x9df3, 0x9de8, 0x9ded, 0x9ec2, 0x9ed0, 0x9ef2, 0x9ef3, 0x9f06, + 0x9f1c, 0x9f38, 0x9f37, 0x9f36, 0x9f43, 0x9f4f, 0x9f71, 0x9f70, + 0x9f6e, 0x9f6f, 0x56d3, 0x56cd, 0x5b4e, 0x5c6d, 0x652d, 0x66ed, + 0x66ee, 0x6b13, 0x705f, 0x7061, 0x705d, 0x7060, 0x7223, 0x74db, + 0x74e5, 0x77d5, 0x7938, 0x79b7, 0x79b6, 0x7c6a, 0x7e97, 0x7f89, + 0x826d, 0x8643, 0x8838, 0x8837, 0x8835, 0x884b, 0x8b94, 0x8b95, + 0x8e9e, 0x8e9f, 0x8ea0, 0x8e9d, 0x91be, 0x91bd, 0x91c2, 0x946b, + 0x9468, 0x9469, 0x96e5, 0x9746, 0x9743, 0x9747, 0x97c7, 0x97e5, + 0x9a5e, 0x9ad5, 0x9b59, 0x9c63, 0x9c67, 0x9c66, 0x9c62, 0x9c5e, + 0x9c60, 0x9e02, 0x9dfe, 0x9e07, 0x9e03, 0x9e06, 0x9e05, 0x9e00, + 0x9e01, 0x9e09, 0x9dff, 0x9dfd, 0x9e04, 0x9ea0, 0x9f1e, 0x9f46, + 0x9f74, 0x9f75, 0x9f76, 0x56d4, 0x652e, 0x65b8, + /* 0x71 */ + 0x6b18, 0x6b19, 0x6b17, 0x6b1a, 0x7062, 0x7226, 0x72aa, 0x77d8, + 0x77d9, 0x7939, 0x7c69, 0x7c6b, 0x7cf6, 0x7e9a, 0x7e98, 0x7e9b, + 0x7e99, 0x81e0, 0x81e1, 0x8646, 0x8647, 0x8648, 0x8979, 0x897a, + 0x897c, 0x897b, 0x89ff, 0x8b98, 0x8b99, 0x8ea5, 0x8ea4, 0x8ea3, + 0x946e, 0x946d, 0x946f, 0x9471, 0x9473, 0x9749, 0x9872, 0x995f, + 0x9c68, 0x9c6e, 0x9c6d, 0x9e0b, 0x9e0d, 0x9e10, 0x9e0f, 0x9e12, + 0x9e11, 0x9ea1, 0x9ef5, 0x9f09, 0x9f47, 0x9f78, 0x9f7b, 0x9f7a, + 0x9f79, 0x571e, 0x7066, 0x7c6f, 0x883c, 0x8db2, 0x8ea6, 0x91c3, + 0x9474, 0x9478, 0x9476, 0x9475, 0x9a60, 0x9b2e, 0x9c74, 0x9c73, + 0x9c71, 0x9c75, 0x9e14, 0x9e13, 0x9ef6, 0x9f0a, 0x9fa4, 0x7068, + 0x7065, 0x7cf7, 0x866a, 0x883e, 0x883d, 0x883f, 0x8b9e, 0x8c9c, + 0x8ea9, 0x8ec9, 0x974b, 0x9873, 0x9874, 0x98cc, + /* 0x72 */ + 0x9961, 0x99ab, 0x9a64, 0x9a66, 0x9a67, 0x9b24, 0x9e15, 0x9e17, + 0x9f48, 0x6207, 0x6b1e, 0x7227, 0x864c, 0x8ea8, 0x9482, 0x9480, + 0x9481, 0x9a69, 0x9a68, 0x9e19, 0x864b, 0x8b9f, 0x9483, 0x9c79, + 0x9eb7, 0x7675, 0x9a6b, 0x9c7a, 0x9e1d, 0x7069, 0x706a, 0x7229, + 0x9ea4, 0x9f7e, 0x9f49, 0x9f98, +}; + +static int +cns11643_2_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 >= 0x21 && c1 <= 0x72)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if (c2 >= 0x21 && c2 < 0x7f) { + unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); + unsigned short wc = 0xfffd; + { + if (i < 7650) + wc = cns11643_2_2uni_page21[i]; + } + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + diff --git a/graf2d/win32gdk/gdk/src/iconv/cns11643_3.h b/graf2d/win32gdk/gdk/src/iconv/cns11643_3.h new file mode 100644 index 00000000000..e2630131bbc --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cns11643_3.h @@ -0,0 +1,974 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CNS 11643-1992 plane 3 + */ + +static const unsigned short cns11643_3_2uni_page21[6148] = { + /* 0x21 */ + 0x1a28, 0x1a36, 0x1a3f, 0x1a85, 0x1a05, 0x1a04, 0x1d82, 0x1d96, + 0x1f38, 0x1f69, 0x1fb6, 0x1a2a, 0x1a87, 0x1a49, 0x1de2, 0x1a46, + 0x1a8f, 0x1abc, 0x1abe, 0x1d66, 0x1de3, 0x1e04, 0x1e9c, 0x1f44, + 0x2502, 0x250a, 0x2780, 0x29db, 0x2a7a, 0x2a7f, 0x2af4, 0x2b50, + 0x2b51, 0x2b61, 0x621d, 0x6d0b, 0x1a63, 0x1a62, 0x1aa3, 0x1d85, + 0x1ac5, 0x1acf, 0x1ace, 0x1acc, 0x1d84, 0x1d86, 0x8517, 0x00c5, + 0x1de4, 0x1e05, 0x1e9e, 0x1e9d, 0x1efd, 0x1f00, 0x1f3a, 0x0139, + 0x1f46, 0x1f5d, 0x1f86, 0x1fb7, 0x0155, 0x1fcc, 0x015b, 0x1fce, + 0x2321, 0x03a2, 0x2a00, 0x2b0c, 0x2e37, 0x2e38, 0x3134, 0x3135, + 0x31e0, 0x0a26, 0x3f8d, 0x1a97, 0x1ae0, 0x0032, 0x6ea9, 0x1ae7, + 0x0033, 0x1ae6, 0x0034, 0x02a2, 0x0031, 0x00b0, 0x22d8, 0x1d8b, + 0x1d8c, 0x1d99, 0x1de5, 0x8550, 0x1e0b, 0x00dc, + /* 0x22 */ + 0x021e, 0x1f04, 0x1f03, 0x1f07, 0x852a, 0x1f1e, 0x1f5f, 0x1f6d, + 0x1f89, 0x1fba, 0x1fd0, 0x0165, 0x1ff6, 0x1ff7, 0x1ff9, 0x0164, + 0x1ff4, 0x021d, 0x0226, 0x2324, 0x2504, 0x2518, 0x2532, 0x2530, + 0x2534, 0x028e, 0x2575, 0x034a, 0x2782, 0x27f9, 0x2814, 0x038b, + 0x03a6, 0x03a4, 0x03a5, 0x03a7, 0x042f, 0x0432, 0x2a81, 0x2a83, + 0x2b0d, 0x2b52, 0x04d4, 0x2bca, 0x2bc7, 0x2e39, 0x05c5, 0x2e4f, + 0x31e7, 0x332f, 0x377a, 0x3839, 0x08ba, 0x08b9, 0x3837, 0x3844, + 0x3845, 0x3f8c, 0x4192, 0x4276, 0x5c93, 0x5c92, 0x14b3, 0x15ba, + 0x1a21, 0x1a20, 0x1a22, 0x1a68, 0x1a89, 0x1a98, 0x1af9, 0x1aef, + 0x003b, 0x003c, 0x1af8, 0x1b06, 0x1b03, 0x1afc, 0x1aee, 0x1b16, + 0x0039, 0x1b28, 0x1b1c, 0x1b07, 0x1b1a, 0x1afa, 0x1b17, 0x1d4a, + 0x00b2, 0x1d72, 0x8515, 0x1db4, 0x1db3, 0x1db2, + /* 0x23 */ + 0x00c7, 0x1de8, 0x002b, 0x1e14, 0x1e0f, 0x1e15, 0x1e18, 0x1ea8, + 0x852c, 0x1f4b, 0x1f4f, 0x013b, 0x1f50, 0x0144, 0x1f8b, 0x0142, + 0x1fbe, 0x015c, 0x1fd2, 0x2016, 0x1fff, 0x0167, 0x2000, 0x0166, + 0x2005, 0x2013, 0x2015, 0x853b, 0x021f, 0x22e3, 0x2335, 0x2336, + 0x2331, 0x2332, 0x24ee, 0x2505, 0x1a54, 0x028f, 0x2536, 0x0290, + 0x02a8, 0x02a4, 0x257a, 0x02a3, 0x2586, 0x033d, 0x034c, 0x2786, + 0x2b53, 0x2818, 0x038c, 0x283d, 0x2878, 0x03a8, 0x03ad, 0x03af, + 0x7746, 0x2880, 0x0429, 0x2a08, 0x0436, 0x0471, 0x0470, 0x046f, + 0x2af5, 0x2b0e, 0x04a9, 0x04aa, 0x04fb, 0x2bd3, 0x2bda, 0x04fc, + 0x2bdb, 0x05ae, 0x2e0f, 0x2e5d, 0x2e5f, 0x2e67, 0x2e57, 0x6b50, + 0x06c3, 0x31eb, 0x31ea, 0x0730, 0x3337, 0x0741, 0x3332, 0x3336, + 0x3722, 0x37ce, 0x088c, 0x3858, 0x3851, 0x3877, + /* 0x24 */ + 0x383c, 0x08bb, 0x385a, 0x7c86, 0x3853, 0x3c6f, 0x3c72, 0x3c6e, + 0x8535, 0x09a1, 0x3c73, 0x3eb1, 0x3eb2, 0x0aa8, 0x3f8f, 0x0aaa, + 0x0aab, 0x0c96, 0x453c, 0x0dc2, 0x4c8d, 0x4c8e, 0x1093, 0x4e7b, + 0x1094, 0x5971, 0x5bb9, 0x5c96, 0x5c9a, 0x15bb, 0x1a24, 0x1a71, + 0x851b, 0x1a9c, 0x1b45, 0x1b4a, 0x1b39, 0x1b37, 0x0043, 0x1b32, + 0x1b42, 0x0042, 0x1b44, 0x1b4b, 0x0044, 0x1b40, 0x1b35, 0x1b31, + 0x1d51, 0x850e, 0x1d50, 0x1d4e, 0x00b3, 0x00b7, 0x1d9d, 0x00c8, + 0x1db5, 0x1db8, 0x1dec, 0x1e23, 0x1e27, 0x1e26, 0x1e1f, 0x1e2b, + 0x1e20, 0x1eb4, 0x1eb3, 0x0118, 0x1f25, 0x1f3b, 0x1f74, 0x0147, + 0x0146, 0x0145, 0x016b, 0x0169, 0x204d, 0x0172, 0x0171, 0x203a, + 0x016c, 0x016f, 0x2044, 0x204c, 0x2023, 0x201a, 0x2032, 0x204b, + 0x2021, 0x0173, 0x2034, 0x2049, 0x2050, 0x2022, + /* 0x25 */ + 0x203f, 0x2051, 0x205a, 0x202f, 0x0176, 0x22e9, 0x22f2, 0x22f3, + 0x22ef, 0x22ed, 0x22ec, 0x22e6, 0x2348, 0x0227, 0x2344, 0x233f, + 0x233c, 0x2353, 0x2356, 0x0230, 0x235f, 0x2343, 0x2358, 0x2357, + 0x0229, 0x022a, 0x022f, 0x2346, 0x022c, 0x233d, 0x022d, 0x2342, + 0x2354, 0x2355, 0x24f1, 0x24f2, 0x24f0, 0x250b, 0x6aa6, 0x22f1, + 0x253d, 0x0293, 0x2594, 0x258c, 0x02ad, 0x259c, 0x02ac, 0x02ab, + 0x259f, 0x02a9, 0x259b, 0x02ae, 0x2589, 0x259a, 0x02aa, 0x3188, + 0x034e, 0x278d, 0x0350, 0x27fe, 0x27ff, 0x27fd, 0x282b, 0x03b2, + 0x2884, 0x288e, 0x289c, 0x03b5, 0x03b6, 0x2885, 0x29f5, 0x2a09, + 0x0439, 0x043b, 0x2a0b, 0x0472, 0x2a92, 0x2a90, 0x2b03, 0x04ac, + 0x2b1e, 0x2b63, 0x0508, 0x2be7, 0x2bfe, 0x2be6, 0x2bdc, 0x2bce, + 0x0503, 0x2bfc, 0x2bdf, 0x2bec, 0x2bf6, 0x79d7, + /* 0x26 */ + 0x2bf2, 0x2bf0, 0x2bf9, 0x050b, 0x2e13, 0x05af, 0x85b2, 0x2e3b, + 0x2e3c, 0x2e82, 0x05ce, 0x05cb, 0x05cc, 0x2e78, 0x2e8b, 0x05cd, + 0x2e9e, 0x2ea5, 0x2e9b, 0x2e9c, 0x2e99, 0x2e8d, 0x2e85, 0x2e9d, + 0x2e75, 0x0680, 0x06af, 0x06d3, 0x31f6, 0x06d5, 0x06d4, 0x06d7, + 0x32f5, 0x335b, 0x0742, 0x3354, 0x3352, 0x0744, 0x3358, 0x3344, + 0x334a, 0x3361, 0x08c6, 0x387f, 0x3891, 0x389e, 0x08c0, 0x386e, + 0x387c, 0x389f, 0x3875, 0x08be, 0x3856, 0x38a2, 0x3879, 0x08ca, + 0x38a1, 0x08c4, 0x38aa, 0x38a0, 0x08c2, 0x3c79, 0x3c77, 0x3c7e, + 0x09a4, 0x3c75, 0x3c7b, 0x3e64, 0x0a29, 0x3ebb, 0x3ebc, 0x3ec7, + 0x3eb9, 0x3ebe, 0x3eb6, 0x0a60, 0x0a5e, 0x3f98, 0x0aad, 0x0aae, + 0x0aac, 0x0b57, 0x4193, 0x4280, 0x0bdd, 0x4283, 0x42c0, 0x42c1, + 0x0c0e, 0x0c97, 0x43f4, 0x43f5, 0x0d27, 0x46cc, + /* 0x27 */ + 0x46cd, 0x48fa, 0x4c9f, 0x4c91, 0x4c97, 0x4c94, 0x1095, 0x4e86, + 0x4e8c, 0x868f, 0x4e95, 0x1098, 0x526c, 0x119d, 0x5bb5, 0x5bbe, + 0x5bc7, 0x148a, 0x5bc1, 0x5ca9, 0x5ca4, 0x14b5, 0x14b6, 0x14b7, + 0x5ca8, 0x6227, 0x6226, 0x622b, 0x6233, 0x6234, 0x6229, 0x1a3d, + 0x0028, 0x1a9d, 0x1b93, 0x1b8a, 0x004d, 0x0049, 0x1b6d, 0x1b8e, + 0x1ba0, 0x1ba2, 0x1ba1, 0x1b9f, 0x1ba3, 0x6f09, 0x1b72, 0x0051, + 0x1b8c, 0x1d56, 0x850f, 0x8511, 0x1d90, 0x00cb, 0x00ca, 0x00cc, + 0x1ded, 0x1dfe, 0x1e2f, 0x71ec, 0x1e3c, 0x1e34, 0x1e39, 0x1eb9, + 0x1eb5, 0x1ebf, 0x1f55, 0x013d, 0x1f76, 0x1f7a, 0x1f93, 0x0148, + 0x1fc1, 0x1fc2, 0x1fd5, 0x2085, 0x0178, 0x205f, 0x2093, 0x2089, + 0x2079, 0x6afe, 0x208f, 0x2069, 0x206d, 0x017a, 0x2094, 0x206a, + 0x208a, 0x0177, 0x22fd, 0x22fb, 0x22f8, 0x0221, + /* 0x28 */ + 0x22fc, 0x22f6, 0x2365, 0x2381, 0x2363, 0x2367, 0x0231, 0x236e, + 0x2378, 0x237f, 0x0233, 0x0234, 0x24f3, 0x254b, 0x254c, 0x02c1, + 0x02b0, 0x02b4, 0x25ad, 0x02b8, 0x25c4, 0x02bc, 0x25c2, 0x25b0, + 0x02bf, 0x02b5, 0x02b1, 0x02bd, 0x25bf, 0x02bb, 0x25c9, 0x25b8, + 0x25ac, 0x02b3, 0x02b6, 0x02ba, 0x25b7, 0x25d7, 0x02b7, 0x2760, + 0x0340, 0x2796, 0x279e, 0x2794, 0x279f, 0x279d, 0x0352, 0x2800, + 0x2819, 0x0390, 0x0391, 0x2849, 0x284a, 0x03be, 0x28bb, 0x28c1, + 0x03c0, 0x03c1, 0x03b9, 0x28b9, 0x289e, 0x28b4, 0x28ba, 0x29f6, + 0x2a13, 0x2a12, 0x2a77, 0x0479, 0x2a98, 0x047b, 0x2a99, 0x2a9d, + 0x2af8, 0x04a0, 0x2af9, 0x0029, 0x2b06, 0x2b21, 0x04ae, 0x2b25, + 0x2b55, 0x04cd, 0x04cb, 0x04d9, 0x2b84, 0x2b83, 0x2c30, 0x2c07, + 0x050c, 0x2c36, 0x0501, 0x0505, 0x0502, 0x2be9, + /* 0x29 */ + 0x2c3d, 0x2c08, 0x0513, 0x0511, 0x2eba, 0x2eb2, 0x05e4, 0x2eb7, + 0x2ee4, 0x2ea7, 0x05da, 0x05d5, 0x05d3, 0x2ed5, 0x2ee1, 0x2edd, + 0x2ea6, 0x2ec1, 0x2ec5, 0x2ec0, 0x2edf, 0x2ee0, 0x2ede, 0x05d6, + 0x3189, 0x06b4, 0x31a6, 0x31ba, 0x06d9, 0x31ff, 0x06d8, 0x3217, + 0x3218, 0x3201, 0x31fe, 0x0733, 0x330c, 0x0748, 0x336b, 0x3396, + 0x3382, 0x338a, 0x0747, 0x33a3, 0x074b, 0x33a2, 0x338f, 0x074a, + 0x33f9, 0x3380, 0x3726, 0x3727, 0x3768, 0x3769, 0x085a, 0x3781, + 0x37b4, 0x37d1, 0x088e, 0x08b4, 0x381c, 0x08cd, 0x08cc, 0x08cf, + 0x08cb, 0x08ce, 0x3897, 0x386c, 0x38df, 0x08d2, 0x38ea, 0x08d1, + 0x38e4, 0x38d8, 0x38b2, 0x38ce, 0x38c8, 0x09a6, 0x3c8b, 0x3c88, + 0x3c90, 0x3c8f, 0x09aa, 0x3c87, 0x3c89, 0x3c8d, 0x3c81, 0x09a8, + 0x3c8c, 0x0a13, 0x0a1a, 0x3e40, 0x0a1d, 0x0a1e, + /* 0x2a */ + 0x3e65, 0x3e66, 0x3e68, 0x0a65, 0x0a66, 0x3ecd, 0x3ed3, 0x3edb, + 0x0a64, 0x3ecf, 0x3fa7, 0x3fa3, 0x3f9e, 0x0ab0, 0x3faf, 0x0ab3, + 0x0ab5, 0x3faa, 0x3f9c, 0x0b19, 0x4142, 0x4144, 0x413b, 0x4141, + 0x783f, 0x419b, 0x419e, 0x0b75, 0x45c4, 0x45c3, 0x45c6, 0x0d2b, + 0x0d2c, 0x45c7, 0x0d2d, 0x45ca, 0x802e, 0x0dc3, 0x46cf, 0x4876, + 0x4874, 0x48ff, 0x48fc, 0x00ba, 0x0f50, 0x4b59, 0x4ca8, 0x0fd3, + 0x0fd0, 0x4cb0, 0x0fdc, 0x4cb3, 0x0fd2, 0x4ca4, 0x4cb6, 0x4ca7, + 0x4cac, 0x0fdb, 0x4ca6, 0x1f67, 0x4e0e, 0x4ec4, 0x4f3e, 0x4e9c, + 0x10a5, 0x109f, 0x109a, 0x109c, 0x10a2, 0x4eaa, 0x109b, 0x4ec9, + 0x10a3, 0x109d, 0x4ea6, 0x4eb2, 0x1188, 0x121a, 0x148d, 0x5bcc, + 0x5bd9, 0x5bca, 0x5bd8, 0x5bcf, 0x5cb7, 0x14b8, 0x5cad, 0x5cb9, + 0x6237, 0x15c3, 0x6241, 0x623e, 0x62b6, 0x6351, + /* 0x2b */ + 0x6363, 0x1a57, 0x1a79, 0x1ab2, 0x1ab0, 0x1aaf, 0x1ab1, 0x1bd2, + 0x1bd5, 0x005d, 0x1bbe, 0x1bb8, 0x1bb0, 0x1bb1, 0x1bc8, 0x005a, + 0x0057, 0x1bc6, 0x1bcc, 0x1be5, 0x1be3, 0x1bb4, 0x1d6a, 0x00b8, + 0x1d9f, 0x00c2, 0x1dc1, 0x00cf, 0x1dc2, 0x1dc3, 0x1e45, 0x1e48, + 0x00e7, 0x00e9, 0x1e4f, 0x1052, 0x00e8, 0x1ec5, 0x1eca, 0x1ec4, + 0x1f27, 0x1f58, 0x1f7d, 0x014a, 0x1fdd, 0x1fdc, 0x1fda, 0x1fd9, + 0x20b9, 0x0180, 0x20d0, 0x20b4, 0x20ca, 0x0187, 0x20a3, 0x20da, + 0x20a4, 0x0184, 0x20b2, 0x209e, 0x209f, 0x20b5, 0x0182, 0x0181, + 0x20cd, 0x0183, 0x20cc, 0x0222, 0x2300, 0x23ac, 0x2391, 0x238e, + 0x238d, 0x2392, 0x23a1, 0x2390, 0x23a6, 0x23a8, 0x023b, 0x239c, + 0x2396, 0x23a7, 0x023a, 0x0238, 0x0239, 0x0236, 0x24f5, 0x0285, + 0x2509, 0x2508, 0x0854, 0x2552, 0x029a, 0x02c4, + /* 0x2c */ + 0x25df, 0x02c5, 0x25eb, 0x25ef, 0x25f0, 0x25d5, 0x260d, 0x2604, + 0x25f9, 0x2602, 0x25f8, 0x25e2, 0x25d9, 0x25e7, 0x276a, 0x0354, + 0x0355, 0x27ab, 0x0356, 0x281b, 0x282f, 0x0396, 0x323c, 0x0395, + 0x0394, 0x03c4, 0x28d1, 0x28dc, 0x28e6, 0x28e1, 0x28cd, 0x857a, + 0x28e2, 0x28dd, 0x28e5, 0x29fb, 0x29fa, 0x2a1e, 0x0444, 0x2aa1, + 0x047d, 0x047e, 0x2afc, 0x2afb, 0x2b2f, 0x04b2, 0x04b6, 0x2b66, + 0x8599, 0x04dc, 0x04df, 0x2c5c, 0x0528, 0x2c4e, 0x2c51, 0x0519, + 0x0510, 0x2c23, 0x2c31, 0x2c7c, 0x2c52, 0x052c, 0x2c60, 0x2c4a, + 0x2c61, 0x051b, 0x2e18, 0x05c2, 0x05ef, 0x05e3, 0x05e5, 0x05ea, + 0x05e6, 0x05ee, 0x2f1f, 0x2f17, 0x2eea, 0x2f21, 0x2f04, 0x2f05, + 0x05e8, 0x3131, 0x3144, 0x3140, 0x0685, 0x3142, 0x31be, 0x06e0, + 0x3229, 0x321b, 0x06dd, 0x3223, 0x322c, 0x321a, + /* 0x2d */ + 0x3230, 0x323b, 0x321e, 0x3237, 0x3238, 0x06e1, 0x330e, 0x0751, + 0x0755, 0x33e8, 0x33d6, 0x0752, 0x33c7, 0x33bc, 0x3452, 0x33bf, + 0x33d5, 0x33fe, 0x4f63, 0x33fb, 0x85df, 0x33b1, 0x3401, 0x3405, + 0x3400, 0x33d7, 0x0c9e, 0x372a, 0x376b, 0x0852, 0x085e, 0x0860, + 0x085f, 0x37e1, 0x0892, 0x08d6, 0x3923, 0x38ff, 0x3914, 0x3905, + 0x3913, 0x3906, 0x3921, 0x08de, 0x3915, 0x38af, 0x38f4, 0x3902, + 0x3945, 0x85fe, 0x3926, 0x08d9, 0x3944, 0x08dd, 0x3924, 0x3ca5, + 0x09ac, 0x3ca3, 0x09b0, 0x3ca2, 0x3cbb, 0x3ca0, 0x3caa, 0x09af, + 0x09ae, 0x3ca8, 0x3cb6, 0x3cb2, 0x3ca7, 0x09ad, 0x09ab, 0x3cb9, + 0x3e2e, 0x0a16, 0x3e3c, 0x0a30, 0x3e6d, 0x0a33, 0x0a31, 0x3ee7, + 0x3eed, 0x0a6e, 0x3eec, 0x3ee5, 0x3ee2, 0x0ab1, 0x3fc4, 0x3fbd, + 0x3fcf, 0x3fc9, 0x3fc1, 0x3fd0, 0x0ab7, 0x3fce, + /* 0x2e */ + 0x40ed, 0x40eb, 0x0b1a, 0x40ef, 0x4149, 0x4150, 0x4146, 0x414a, + 0x0b59, 0x414d, 0x41a6, 0x0b7a, 0x0b78, 0x0b7b, 0x41a8, 0x0bde, + 0x0bec, 0x42c7, 0x42ff, 0x0c1e, 0x42fd, 0x43e6, 0x440a, 0x0c9b, + 0x4404, 0x440b, 0x4407, 0x0c9d, 0x4415, 0x4408, 0x0cfd, 0x45d3, + 0x45d4, 0x45d0, 0x45d7, 0x467c, 0x0d94, 0x0d93, 0x467d, 0x4683, + 0x4682, 0x0dc6, 0x46d4, 0x46d5, 0x46d3, 0x46d0, 0x46d2, 0x46fe, + 0x46fc, 0x4877, 0x487c, 0x487b, 0x0eb8, 0x866a, 0x0eb7, 0x0eb9, + 0x0f53, 0x7f33, 0x0f52, 0x0f51, 0x4b8f, 0x4cd3, 0x0fe3, 0x4ccb, + 0x4cd2, 0x0fe2, 0x4d09, 0x4ce2, 0x4cdf, 0x4cc6, 0x1063, 0x4e24, + 0x4ef7, 0x4ed8, 0x4edd, 0x10aa, 0x10a6, 0x4ef8, 0x4efc, 0x10a8, + 0x10a9, 0x4ee9, 0x10ab, 0x4eee, 0x10ac, 0x4ed0, 0x4f0e, 0x4ee2, + 0x4f0b, 0x4efd, 0x1d79, 0x5276, 0x119e, 0x5278, + /* 0x2f */ + 0x119f, 0x11a0, 0x5275, 0x527d, 0x120f, 0x5442, 0x5466, 0x121c, + 0x558c, 0x5605, 0x12ae, 0x5606, 0x12b0, 0x589f, 0x13d4, 0x5bf1, + 0x5be7, 0x5be9, 0x5bef, 0x5cc2, 0x5cbc, 0x14bb, 0x5cc6, 0x5cc0, + 0x14c1, 0x14c2, 0x5ccd, 0x5cc9, 0x14be, 0x5cc4, 0x14e5, 0x6181, + 0x15c6, 0x68ec, 0x1c32, 0x1bf9, 0x1c1d, 0x1bff, 0x1c04, 0x1bf0, + 0x1c03, 0x122e, 0x1c02, 0x1bfc, 0x1bf2, 0x1c24, 0x1c08, 0x1c36, + 0x1c2e, 0x0065, 0x1c10, 0x1c38, 0x1c39, 0x1bfd, 0x1c56, 0x1bfb, + 0x1da3, 0x1da6, 0x1da1, 0x00d1, 0x00d0, 0x1dc7, 0x1dc9, 0x1e60, + 0x1e64, 0x1e59, 0x1e65, 0x1e67, 0x1e57, 0x1e63, 0x00ee, 0x1e53, + 0x00ef, 0x1ecf, 0x011e, 0x1ece, 0x1ed0, 0x1ed1, 0x1ecc, 0x014b, + 0x014d, 0x0156, 0x210d, 0x20f4, 0x0192, 0x2113, 0x20ef, 0x20f5, + 0x20f9, 0x2102, 0x2100, 0x0193, 0x0190, 0x2118, + /* 0x30 */ + 0x20f0, 0x20f6, 0x8541, 0x0197, 0x2119, 0x0223, 0x2305, 0x23c9, + 0x023f, 0x23b7, 0x23cd, 0x0243, 0x0242, 0x0244, 0x23be, 0x23bb, + 0x0245, 0x23db, 0x23c8, 0x23c4, 0x23c5, 0x23d1, 0x23ca, 0x23c0, + 0x02d9, 0x02de, 0x2621, 0x262a, 0x02cf, 0x261d, 0x02cd, 0x260b, + 0x02dd, 0x02ce, 0x02d3, 0x02d6, 0x2622, 0x02dc, 0x02d1, 0x2624, + 0x02d0, 0x2614, 0x2631, 0x02d5, 0x262f, 0x261a, 0x2612, 0x02d4, + 0x02db, 0x2626, 0x762e, 0x0343, 0x27bc, 0x27bb, 0x27b7, 0x2805, + 0x2806, 0x2852, 0x2853, 0x03cd, 0x03d1, 0x28fa, 0x28eb, 0x03ca, + 0x28f3, 0x28f5, 0x28e9, 0x28ef, 0x03d4, 0x2a2a, 0x2a30, 0x2a2e, + 0x2a2c, 0x2a2f, 0x2aaf, 0x2aa9, 0x0486, 0x2afd, 0x2b32, 0x2b8e, + 0x2b93, 0x2b8f, 0x2c4f, 0x2c99, 0x0533, 0x2c7e, 0x0537, 0x2c74, + 0x2c4b, 0x2c73, 0x2c75, 0x052a, 0x051f, 0x2c56, + /* 0x31 */ + 0x2ca9, 0x2c8b, 0x2ca6, 0x0539, 0x2c93, 0x2cae, 0x2c9e, 0x2ca7, + 0x2e45, 0x05f2, 0x05f8, 0x2f2e, 0x05f7, 0x2f52, 0x2f30, 0x2f5b, + 0x05f4, 0x2f19, 0x2f1b, 0x05f1, 0x2f31, 0x2f5d, 0x2f37, 0x2f35, + 0x2f53, 0x05f5, 0x2f5c, 0x2f3f, 0x314b, 0x0687, 0x0f69, 0x318b, + 0x06b6, 0x319a, 0x3250, 0x3246, 0x324e, 0x3240, 0x06e9, 0x324b, + 0x3248, 0x06eb, 0x3260, 0x3244, 0x324d, 0x0734, 0x3437, 0x3424, + 0x0762, 0x075c, 0x341b, 0x3436, 0x0760, 0x342c, 0x3419, 0x3456, + 0x3447, 0x343e, 0x341e, 0x85e1, 0x3415, 0x3422, 0x3427, 0x3459, + 0x3458, 0x3455, 0x3430, 0x3423, 0x372e, 0x372b, 0x3730, 0x376c, + 0x0861, 0x378b, 0x087f, 0x37e9, 0x37ea, 0x37e5, 0x396b, 0x08e5, + 0x08e6, 0x3973, 0x3957, 0x08e9, 0x08f3, 0x395d, 0x3956, 0x398f, + 0x395b, 0x391c, 0x399a, 0x399b, 0x3999, 0x08ee, + /* 0x32 */ + 0x3981, 0x3971, 0x08ed, 0x08ec, 0x3972, 0x395c, 0x3996, 0x3cc4, + 0x3cdb, 0x3ccc, 0x3cd0, 0x3ce3, 0x3cdf, 0x09b3, 0x3cd6, 0x3cee, + 0x3cd5, 0x09b5, 0x0a27, 0x0a35, 0x0a36, 0x3e7a, 0x0a71, 0x3ef5, + 0x3f02, 0x0ab8, 0x0ac2, 0x3fe2, 0x3fec, 0x3fd5, 0x3ff9, 0x3fdf, + 0x3fe6, 0x0ac8, 0x0ac0, 0x0ac1, 0x0ac4, 0x3fe4, 0x3fe1, 0x40f3, + 0x0b1f, 0x0b1c, 0x0b1d, 0x0b4d, 0x4156, 0x4155, 0x4158, 0x4157, + 0x415e, 0x41c3, 0x0b87, 0x0b82, 0x41b4, 0x0b7d, 0x41b1, 0x0bdf, + 0x0c00, 0x42cb, 0x42cc, 0x432a, 0x0c20, 0x4316, 0x430f, 0x0c22, + 0x0c24, 0x433f, 0x432b, 0x430e, 0x4324, 0x0c21, 0x4321, 0x4318, + 0x43dd, 0x0ca4, 0x0ca5, 0x4424, 0x4436, 0x0d01, 0x4558, 0x4559, + 0x0d03, 0x4562, 0x45da, 0x45d9, 0x0d37, 0x45e1, 0x45e5, 0x45e8, + 0x45db, 0x0d38, 0x45e2, 0x45f0, 0x0d99, 0x0d98, + /* 0x33 */ + 0x0d97, 0x0dc9, 0x46da, 0x46dd, 0x0dc7, 0x46db, 0x46dc, 0x0dd9, + 0x0ddb, 0x470d, 0x470b, 0x4714, 0x488e, 0x4886, 0x0e7b, 0x4887, + 0x4883, 0x488b, 0x0e7c, 0x0ebd, 0x0ebc, 0x0ec3, 0x4924, 0x0ec1, + 0x0ebf, 0x0ec4, 0x4925, 0x4b62, 0x4b93, 0x4b99, 0x4b97, 0x0f7e, + 0x0f7f, 0x4bc4, 0x4bc6, 0x4c0a, 0x0fb4, 0x0fb3, 0x4c40, 0x4c3c, + 0x4c3b, 0x4cf6, 0x4cff, 0x4cee, 0x4d04, 0x4d03, 0x4d07, 0x8683, + 0x0fe6, 0x4cf7, 0x1059, 0x105a, 0x4e2d, 0x1064, 0x4e27, 0x4e29, + 0x4f1f, 0x4f57, 0x10b4, 0x10b9, 0x10b7, 0x10b5, 0x4f21, 0x10c1, + 0x10b1, 0x4f18, 0x4f58, 0x10b3, 0x10ba, 0x118c, 0x118b, 0x118d, + 0x5284, 0x529f, 0x529b, 0x5289, 0x52a6, 0x5292, 0x528f, 0x52a0, + 0x544f, 0x5478, 0x547a, 0x546e, 0x547b, 0x5484, 0x5473, 0x1278, + 0x1277, 0x560d, 0x560b, 0x5619, 0x12b2, 0x13d6, + /* 0x34 */ + 0x5ad0, 0x1445, 0x1492, 0x1495, 0x5bf9, 0x5c09, 0x5c08, 0x14c6, + 0x5cde, 0x5d51, 0x14e7, 0x14e8, 0x5ddb, 0x5ddf, 0x5dde, 0x5dd6, + 0x5de0, 0x6185, 0x6260, 0x6259, 0x15cb, 0x6256, 0x15cd, 0x15f1, + 0x62bd, 0x1722, 0x0021, 0x1c42, 0x1c59, 0x006f, 0x1c44, 0x1c66, + 0x1c52, 0x1c54, 0x1c71, 0x1c50, 0x1c7b, 0x1c7c, 0x1c58, 0x0070, + 0x0064, 0x1c79, 0x1c6c, 0x1c78, 0x1da8, 0x1dd1, 0x1dcf, 0x1e68, + 0x1e76, 0x1ed4, 0x012d, 0x1fa0, 0x1fc4, 0x0158, 0x2158, 0x214c, + 0x2168, 0x01a6, 0x2149, 0x01a4, 0x019f, 0x215d, 0x2129, 0x73ae, + 0x2154, 0x2153, 0x01a3, 0x215a, 0x01a0, 0x213a, 0x213f, 0x212b, + 0x23ea, 0x024a, 0x23ef, 0x0247, 0x0248, 0x23dd, 0x23fe, 0x8555, + 0x23de, 0x23e6, 0x0249, 0x23e8, 0x23ff, 0x2403, 0x24f7, 0x34a6, + 0x251f, 0x029e, 0x255b, 0x255d, 0x255e, 0x7537, + /* 0x35 */ + 0x02e8, 0x262b, 0x02ec, 0x263b, 0x02ed, 0x02e6, 0x2661, 0x263a, + 0x266e, 0x264b, 0x266b, 0x02eb, 0x02e7, 0x2645, 0x264e, 0x2668, + 0x263d, 0x2671, 0x263f, 0x266f, 0x2675, 0x02e9, 0x2673, 0x262c, + 0x2659, 0x2654, 0x264f, 0x2663, 0x035c, 0x035d, 0x27c8, 0x0360, + 0x27c3, 0x035b, 0x285b, 0x2861, 0x0399, 0x2921, 0x290a, 0x2909, + 0x03d8, 0x292c, 0x2908, 0x03da, 0x03dd, 0x292a, 0x2915, 0x03e0, + 0x2910, 0x2913, 0x03e5, 0x292f, 0x2918, 0x03d7, 0x29e3, 0x2a39, + 0x2a35, 0x2a3a, 0x2a32, 0x044e, 0x048c, 0x0488, 0x858d, 0x2abb, + 0x2aba, 0x2b34, 0x2b39, 0x04ce, 0x859c, 0x04e5, 0x04e6, 0x2c98, + 0x0532, 0x2cd0, 0x0540, 0x0547, 0x054c, 0x2cd7, 0x2caa, 0x0535, + 0x2ca1, 0x2ca4, 0x0530, 0x2cee, 0x0543, 0x2ce7, 0x054d, 0x2ce8, + 0x2cde, 0x05b7, 0x05f3, 0x2f7e, 0x2f8b, 0x0602, + /* 0x36 */ + 0x060b, 0x2f79, 0x2f86, 0x2f93, 0x0604, 0x2f73, 0x2f6a, 0x85ba, + 0x2f6c, 0x0608, 0x2f7f, 0x05fc, 0x2fb2, 0x2fba, 0x05ff, 0x0600, + 0x2f66, 0x2f74, 0x068b, 0x315a, 0x068d, 0x314e, 0x314d, 0x318d, + 0x318e, 0x31ad, 0x06ca, 0x31c7, 0x31ca, 0x06cb, 0x31c9, 0x85cb, + 0x31e3, 0x3257, 0x06f3, 0x3263, 0x3267, 0x331a, 0x3319, 0x3316, + 0x0736, 0x076a, 0x349e, 0x34b6, 0x3498, 0x3473, 0x076b, 0x349a, + 0x348e, 0x34b7, 0x34db, 0x34a5, 0x346c, 0x34c1, 0x3484, 0x0771, + 0x0768, 0x3495, 0x347a, 0x3499, 0x0772, 0x34b8, 0x34b9, 0x3470, + 0x082e, 0x3735, 0x0862, 0x3790, 0x37bb, 0x37ed, 0x0898, 0x08b5, + 0x08eb, 0x39c1, 0x39c3, 0x39ce, 0x08fb, 0x08f8, 0x39ad, 0x3a04, + 0x08f5, 0x39b9, 0x0908, 0x39e7, 0x8607, 0x3a08, 0x3a06, 0x090a, + 0x3a0a, 0x39b0, 0x0906, 0x39f8, 0x3a0c, 0x08fd, + /* 0x37 */ + 0x39b1, 0x08fa, 0x3a02, 0x3a07, 0x3a09, 0x3a01, 0x3a17, 0x39ff, + 0x3a12, 0x09ba, 0x09b9, 0x3d03, 0x3d07, 0x3d01, 0x3cf5, 0x3cf1, + 0x3d08, 0x3cf2, 0x3d0f, 0x09bb, 0x3cfe, 0x0a18, 0x0a40, 0x0a3d, + 0x3f1a, 0x3f10, 0x3f0e, 0x4002, 0x3ff3, 0x0acd, 0x0ac9, 0x3ffb, + 0x0acb, 0x0aca, 0x0ace, 0x411b, 0x4123, 0x4161, 0x4168, 0x0b5e, + 0x4167, 0x41d3, 0x0b91, 0x0b8c, 0x4290, 0x0be1, 0x0c02, 0x42d5, + 0x42d7, 0x42d6, 0x4330, 0x0c2b, 0x4326, 0x0c2a, 0x4340, 0x0a14, + 0x431e, 0x0cad, 0x0ca3, 0x0cab, 0x4447, 0x0caf, 0x444b, 0x4451, + 0x444f, 0x4442, 0x4446, 0x0d04, 0x456e, 0x456c, 0x45f2, 0x0d44, + 0x45f1, 0x45f5, 0x45f3, 0x45f9, 0x0d3d, 0x0d47, 0x0d9c, 0x469a, + 0x4693, 0x4691, 0x46e1, 0x0de0, 0x0de4, 0x4721, 0x471c, 0x4716, + 0x4717, 0x4736, 0x471f, 0x0e80, 0x4893, 0x4899, + /* 0x38 */ + 0x489a, 0x489c, 0x0eca, 0x4949, 0x0ed4, 0x4934, 0x4937, 0x0ed2, + 0x492d, 0x0ecb, 0x494c, 0x0ece, 0x0ed3, 0x4948, 0x0f44, 0x0f48, + 0x4b3b, 0x0f45, 0x0f81, 0x0f86, 0x0f85, 0x4c08, 0x4c1a, 0x0fa3, + 0x4c1d, 0x0fb5, 0x4c49, 0x4c45, 0x4c44, 0x489b, 0x0ffa, 0x0ff9, + 0x4d2a, 0x4d2e, 0x0ffb, 0x0ff2, 0x4d31, 0x0fef, 0x4d1a, 0x4d34, + 0x4d17, 0x105b, 0x1066, 0x10ce, 0x4f1d, 0x4f71, 0x4f84, 0x4f80, + 0x4f72, 0x4fa1, 0x01b4, 0x4f79, 0x4f91, 0x10c8, 0x4f9f, 0x4fad, + 0x10d1, 0x10c5, 0x4f23, 0x10d2, 0x4f85, 0x4f9c, 0x4fb7, 0x5258, + 0x525a, 0x118f, 0x5257, 0x52b2, 0x11a7, 0x52ae, 0x11a5, 0x11a4, + 0x1211, 0x5445, 0x549c, 0x5494, 0x54a3, 0x548f, 0x54a5, 0x54a9, + 0x54a6, 0x548a, 0x54a0, 0x5490, 0x5592, 0x5591, 0x5594, 0x12b5, + 0x5626, 0x5632, 0x5628, 0x12b4, 0x12bd, 0x561c, + /* 0x39 */ + 0x12bb, 0x562b, 0x5620, 0x12b9, 0x5629, 0x12c2, 0x12be, 0x12ba, + 0x5621, 0x583a, 0x06b7, 0x585b, 0x5858, 0x587c, 0x1358, 0x58a6, + 0x58ae, 0x58ad, 0x5965, 0x139b, 0x597e, 0x139c, 0x597c, 0x597f, + 0x597a, 0x59bd, 0x13da, 0x13de, 0x59c0, 0x59bb, 0x5aad, 0x5aaf, + 0x5ad6, 0x144d, 0x1446, 0x1447, 0x144b, 0x144c, 0x5ad9, 0x1448, + 0x1499, 0x5c12, 0x5c0e, 0x5c25, 0x149b, 0x5c13, 0x5cee, 0x14ce, + 0x5cab, 0x5cf7, 0x14eb, 0x5d59, 0x5d54, 0x5df2, 0x5df0, 0x5de5, + 0x5df6, 0x151c, 0x158c, 0x6187, 0x15d1, 0x625a, 0x15d6, 0x15d3, + 0x626e, 0x15d4, 0x15d0, 0x15d5, 0x6279, 0x160b, 0x64e1, 0x64e6, + 0x17c6, 0x6ac4, 0x6ad2, 0x1a80, 0x0024, 0x1a81, 0x1c8f, 0x1c97, + 0x1c88, 0x1c89, 0x0074, 0x007a, 0x1c81, 0x1d60, 0x7064, 0x00c3, + 0x2a42, 0x1dd3, 0x00d4, 0x00d5, 0x1dd2, 0x1dd6, + /* 0x3a */ + 0x1e73, 0x00fb, 0x1e70, 0x00f7, 0x0132, 0x8533, 0x1fa8, 0x1fa6, + 0x1fc5, 0x2197, 0x21de, 0x01ba, 0x01bf, 0x2196, 0x21b4, 0x01c7, + 0x2185, 0x01b7, 0x219b, 0x21a0, 0x01b9, 0x2159, 0x01c3, 0x2186, + 0x01bd, 0x01d0, 0x21af, 0x217a, 0x01c1, 0x01be, 0x01cd, 0x219e, + 0x01cb, 0x21a9, 0x230f, 0x230e, 0x241a, 0x024f, 0x241f, 0x0253, + 0x243c, 0x2418, 0x243e, 0x2426, 0x0255, 0x243a, 0x7464, 0x2422, + 0x0251, 0x24fb, 0x2563, 0x2564, 0x029f, 0x26a8, 0x26a3, 0x2682, + 0x2688, 0x26a1, 0x2685, 0x2698, 0x02fe, 0x2699, 0x02fb, 0x2689, + 0x2681, 0x2696, 0x2680, 0x02f1, 0x02f5, 0x2691, 0x02ef, 0x0304, + 0x0303, 0x02f4, 0x26cf, 0x02f3, 0x0302, 0x02f7, 0x02fa, 0x02fd, + 0x02ee, 0x2687, 0x26a0, 0x02f0, 0x2679, 0x02f2, 0x2686, 0x26ab, + 0x26aa, 0x26a4, 0x268d, 0x267e, 0x0344, 0x27d5, + /* 0x3b */ + 0x0362, 0x0377, 0x09c9, 0x281e, 0x285f, 0x285e, 0x2944, 0x293e, + 0x03e8, 0x2948, 0x291c, 0x03ef, 0x295b, 0x294d, 0x03e6, 0x03ed, + 0x2957, 0x03e7, 0x2953, 0x294f, 0x03eb, 0x293b, 0x2946, 0x042d, + 0x0455, 0x2a46, 0x2a47, 0x0453, 0x2a48, 0x2ac0, 0x2abd, 0x2abf, + 0x0490, 0x2b11, 0x04be, 0x2b3e, 0x2b3b, 0x04bd, 0x2b3a, 0x04cf, + 0x04d0, 0x04ec, 0x2ba7, 0x054b, 0x2cea, 0x0548, 0x2d07, 0x2d22, + 0x2d0c, 0x0555, 0x0551, 0x2cb3, 0x2cd6, 0x2cd2, 0x054e, 0x2ce3, + 0x2ce5, 0x2ce9, 0x056b, 0x055e, 0x2d11, 0x2cfd, 0x0560, 0x0567, + 0x2d1e, 0x2d20, 0x2d21, 0x2e1e, 0x05b8, 0x2fe2, 0x2fde, 0x2fe6, + 0x0614, 0x060f, 0x0607, 0x0613, 0x2ff8, 0x0617, 0x2ffe, 0x2fc1, + 0x2fbf, 0x2ff7, 0x2fd1, 0x315f, 0x3160, 0x3161, 0x069a, 0x06b8, + 0x31d1, 0x06f7, 0x06f8, 0x327d, 0x326b, 0x327f, + /* 0x3c */ + 0x06fd, 0x06f5, 0x3273, 0x3281, 0x326d, 0x3269, 0x06fa, 0x0738, + 0x331e, 0x34ed, 0x0787, 0x0780, 0x0788, 0x0779, 0x3503, 0x077c, + 0x34fe, 0x34e5, 0x351e, 0x3502, 0x0783, 0x0785, 0x3509, 0x34ca, + 0x3500, 0x85e5, 0x3501, 0x3518, 0x34e2, 0x34cf, 0x077b, 0x352e, + 0x34c5, 0x34ff, 0x0786, 0x351c, 0x34c3, 0x0834, 0x376f, 0x0855, + 0x376e, 0x0868, 0x37be, 0x089c, 0x37f4, 0x382d, 0x08fc, 0x39b6, + 0x3a75, 0x3a1e, 0x091a, 0x3a18, 0x0917, 0x3a48, 0x091b, 0x3a4f, + 0x0913, 0x3a42, 0x3a6a, 0x3a70, 0x39fe, 0x0905, 0x0907, 0x3a6d, + 0x091c, 0x3a7b, 0x3a7e, 0x3a59, 0x0911, 0x3a57, 0x0916, 0x3a80, + 0x3a50, 0x0915, 0x3a29, 0x3a76, 0x3a2a, 0x3a4c, 0x3d2a, 0x09cb, + 0x3d35, 0x3d2c, 0x3d37, 0x3d1d, 0x09c5, 0x09c2, 0x3d38, 0x09cd, + 0x3d34, 0x3d2b, 0x3d33, 0x3d27, 0x3d24, 0x09ca, + /* 0x3d */ + 0x3d2d, 0x3e32, 0x3e83, 0x3e82, 0x3e87, 0x3f06, 0x3f24, 0x3f38, + 0x3f2a, 0x3f2c, 0x3f2b, 0x0a83, 0x3f2f, 0x3f28, 0x4017, 0x0ad6, + 0x0ad5, 0x4019, 0x4038, 0x0ad1, 0x401f, 0x4014, 0x403c, 0x3ff7, + 0x401c, 0x4015, 0x4018, 0x4039, 0x40f9, 0x4124, 0x8634, 0x0b52, + 0x0b5f, 0x416e, 0x416d, 0x4171, 0x418e, 0x0b95, 0x41e5, 0x0b9d, + 0x0b98, 0x0b9e, 0x0b96, 0x4294, 0x42b3, 0x0c03, 0x42d9, 0x0c2f, + 0x4348, 0x4349, 0x4343, 0x0c31, 0x0c33, 0x4342, 0x43df, 0x0cb4, + 0x4463, 0x4476, 0x0cb0, 0x445f, 0x4466, 0x4566, 0x4571, 0x0d08, + 0x0d07, 0x4576, 0x4584, 0x4575, 0x45ff, 0x4607, 0x0d4e, 0x460e, + 0x4609, 0x0d50, 0x0d52, 0x0da1, 0x0da3, 0x0da5, 0x0dcc, 0x46e7, + 0x46e2, 0x4755, 0x0def, 0x0dea, 0x4743, 0x4757, 0x476c, 0x4742, + 0x4753, 0x0ded, 0x4741, 0x0e85, 0x0e84, 0x48a7, + /* 0x3e */ + 0x48a0, 0x48a6, 0x48a4, 0x4974, 0x0edb, 0x4959, 0x0ed9, 0x4960, + 0x4957, 0x496c, 0x497e, 0x4964, 0x0ed7, 0x495a, 0x495d, 0x0eda, + 0x0ede, 0x0ed8, 0x4976, 0x494d, 0x4975, 0x0ed5, 0x4bd3, 0x4bd6, + 0x0f9c, 0x0f9d, 0x4c60, 0x4c4e, 0x4d45, 0x4d3b, 0x0ffe, 0x4d48, + 0x4d42, 0x4d49, 0x4d40, 0x4d14, 0x4d41, 0x1007, 0x4def, 0x4df6, + 0x4e03, 0x106a, 0x4fed, 0x10e7, 0x4fda, 0x5018, 0x4fd2, 0x5008, + 0x10e2, 0x5000, 0x10df, 0x10e1, 0x10e5, 0x5017, 0x4f46, 0x5014, + 0x4fd3, 0x5005, 0x501f, 0x5002, 0x5016, 0x4fcd, 0x4fe6, 0x1191, + 0x525d, 0x52d5, 0x52e1, 0x11b4, 0x11b0, 0x11b5, 0x11ae, 0x52ee, + 0x5447, 0x5446, 0x122d, 0x122c, 0x54bb, 0x122b, 0x54bf, 0x54b4, + 0x1229, 0x54b5, 0x127f, 0x559a, 0x5643, 0x12c9, 0x12cb, 0x565a, + 0x12c5, 0x12c6, 0x12ca, 0x5635, 0x5638, 0x5642, + /* 0x3f */ + 0x5649, 0x565d, 0x564b, 0x563d, 0x12d2, 0x12d0, 0x132d, 0x1335, + 0x5860, 0x585e, 0x587f, 0x587e, 0x5883, 0x136c, 0x58b1, 0x5987, + 0x139d, 0x13a0, 0x5988, 0x5983, 0x13a2, 0x139f, 0x5986, 0x598b, + 0x5982, 0x59ca, 0x59d2, 0x13eb, 0x13e2, 0x59d4, 0x59c9, 0x5ab0, + 0x1436, 0x1432, 0x1450, 0x5af2, 0x5ae4, 0x5af3, 0x5aea, 0x144f, + 0x5afd, 0x1452, 0x5b9d, 0x5c2b, 0x5c2a, 0x149e, 0x5c28, 0x5c29, + 0x5c2c, 0x14a0, 0x149c, 0x5c3a, 0x5c30, 0x5c37, 0x5c3b, 0x14d1, + 0x5d0a, 0x14ef, 0x14f0, 0x14f1, 0x5dfe, 0x5e20, 0x151d, 0x5e0b, + 0x151f, 0x5e18, 0x5e22, 0x151e, 0x5e1b, 0x5e08, 0x1520, 0x5e0e, + 0x5e13, 0x158e, 0x1591, 0x6195, 0x83dd, 0x1590, 0x15d7, 0x628c, + 0x627b, 0x627f, 0x6281, 0x15d9, 0x6282, 0x15f4, 0x15f6, 0x0160, + 0x15f5, 0x15f3, 0x62ee, 0x62ed, 0x160c, 0x62ec, + /* 0x40 */ + 0x635f, 0x636f, 0x1651, 0x636d, 0x16a6, 0x16a7, 0x16a8, 0x1727, + 0x1724, 0x1725, 0x64f0, 0x172a, 0x1774, 0x17c7, 0x66a9, 0x17e7, + 0x17ed, 0x66e0, 0x1ab7, 0x002e, 0x007b, 0x1ccc, 0x1cbc, 0x007c, + 0x1caa, 0x1cb9, 0x007d, 0x1cab, 0x1cc3, 0x1ccd, 0x1d7e, 0x1e7e, + 0x1e79, 0x00fd, 0x8523, 0x1ee1, 0x1ee0, 0x1ee7, 0x1f80, 0x1fab, + 0x1faa, 0x1fa9, 0x1fe0, 0x21ea, 0x01da, 0x21d7, 0x01d6, 0x01db, + 0x21c1, 0x2315, 0x025b, 0x246c, 0x025c, 0x245c, 0x2450, 0x2461, + 0x246a, 0x2469, 0x2456, 0x2460, 0x2466, 0x245f, 0x2523, 0x2566, + 0x2568, 0x0306, 0x030b, 0x26ce, 0x030d, 0x26c5, 0x26c3, 0x030a, + 0x0313, 0x26d0, 0x0310, 0x0312, 0x0309, 0x0308, 0x0311, 0x030f, + 0x2774, 0x2776, 0x27dc, 0x27d7, 0x27da, 0x27db, 0x0367, 0x2820, + 0x296d, 0x2966, 0x03f6, 0x2964, 0x296e, 0x857e, + /* 0x41 */ + 0x2960, 0x2b42, 0x2b5a, 0x2b6e, 0x0564, 0x056c, 0x2d30, 0x2d3a, + 0x2d2a, 0x2d43, 0x2d19, 0x2d31, 0x056d, 0x2d3d, 0x057a, 0x0575, + 0x060d, 0x3008, 0x3032, 0x3038, 0x061e, 0x3031, 0x061b, 0x3019, + 0x062a, 0x3011, 0x061f, 0x0622, 0x3029, 0x301d, 0x0625, 0x0627, + 0x0629, 0x303c, 0x0624, 0x3046, 0x3047, 0x0628, 0x0626, 0x303a, + 0x3007, 0x0623, 0x316b, 0x069f, 0x3170, 0x316d, 0x06b1, 0x31e4, + 0x3293, 0x0703, 0x0707, 0x070c, 0x0706, 0x328f, 0x0704, 0x0709, + 0x3292, 0x0705, 0x328e, 0x0708, 0x3546, 0x0796, 0x079c, 0x079f, + 0x079b, 0x0798, 0x0799, 0x0794, 0x3531, 0x078d, 0x07a3, 0x353e, + 0x0793, 0x357c, 0x3543, 0x0792, 0x3573, 0x85e8, 0x3555, 0x078e, + 0x078c, 0x3585, 0x354d, 0x3550, 0x3547, 0x3567, 0x3536, 0x3564, + 0x3561, 0x079a, 0x357d, 0x3744, 0x3740, 0x3771, + /* 0x42 */ + 0x3773, 0x379c, 0x086a, 0x086d, 0x0884, 0x37c1, 0x08a0, 0x37fa, + 0x3831, 0x3832, 0x091d, 0x0926, 0x3ab8, 0x3aa8, 0x0933, 0x3a91, + 0x3abb, 0x0938, 0x3a9a, 0x0930, 0x0928, 0x3aa9, 0x0927, 0x092a, + 0x3ab5, 0x3a6c, 0x3ae8, 0x0931, 0x3add, 0x3ada, 0x3ae6, 0x3aac, + 0x0934, 0x092e, 0x093b, 0x3ad9, 0x3ae3, 0x3ae9, 0x3adb, 0x0929, + 0x3d6f, 0x09d2, 0x09d8, 0x3d48, 0x09cf, 0x3d4a, 0x3d6b, 0x09d9, + 0x3d4f, 0x3d57, 0x3d74, 0x09ce, 0x09d3, 0x09d0, 0x3d45, 0x3d51, + 0x3d6d, 0x07a1, 0x3e51, 0x3e50, 0x3e4e, 0x0a47, 0x3f41, 0x0a8b, + 0x3f2e, 0x3f46, 0x0ad4, 0x4027, 0x0ade, 0x4048, 0x4053, 0x403d, + 0x0adf, 0x405d, 0x4056, 0x0ad7, 0x401e, 0x4047, 0x4043, 0x4058, + 0x4049, 0x0ae1, 0x404c, 0x4045, 0x403e, 0x0b2f, 0x4101, 0x411e, + 0x0b62, 0x0b63, 0x417a, 0x41ee, 0x4202, 0x4297, + /* 0x43 */ + 0x4298, 0x0be2, 0x0c04, 0x0c43, 0x435d, 0x4364, 0x4353, 0x4358, + 0x4482, 0x4490, 0x448a, 0x0cbe, 0x447a, 0x447d, 0x0cba, 0x448b, + 0x4478, 0x0cbc, 0x864e, 0x448d, 0x4488, 0x4492, 0x4481, 0x457e, + 0x4583, 0x0d0d, 0x0d0e, 0x0d11, 0x4580, 0x0d0f, 0x0d12, 0x0d55, + 0x460f, 0x0d59, 0x0d5b, 0x461d, 0x0d57, 0x46a1, 0x46a4, 0x0dce, + 0x46e9, 0x46ea, 0x0dfe, 0x4762, 0x476b, 0x0dfc, 0x475e, 0x0df5, + 0x4779, 0x0df9, 0x0dfa, 0x476f, 0x4768, 0x0e88, 0x0e89, 0x48ae, + 0x0e8a, 0x0e87, 0x0e8b, 0x48b0, 0x0ee6, 0x4990, 0x0eed, 0x498a, + 0x0ee5, 0x498b, 0x4999, 0x4995, 0x0ee0, 0x4987, 0x4978, 0x4997, + 0x4989, 0x4998, 0x0ee1, 0x0f5b, 0x0f5c, 0x4ba3, 0x0f8f, 0x0f8b, + 0x0f8d, 0x4bdd, 0x4c57, 0x0fb9, 0x4d63, 0x4d6a, 0x4d6c, 0x100f, + 0x1019, 0x1013, 0x4d5d, 0x4d75, 0x1018, 0x4d5f, + /* 0x44 */ + 0x1016, 0x4d7d, 0x4d6d, 0x1053, 0x868d, 0x4e41, 0x504f, 0x5084, + 0x10f6, 0x507f, 0x10f5, 0x5048, 0x502a, 0x507b, 0x5072, 0x5064, + 0x502e, 0x505c, 0x5053, 0x10f7, 0x5041, 0x50c8, 0x10f0, 0x5062, + 0x5080, 0x503e, 0x5083, 0x5071, 0x10f9, 0x504a, 0x5055, 0x5058, + 0x1192, 0x1195, 0x1196, 0x52fc, 0x52fd, 0x5315, 0x11b9, 0x5316, + 0x52ff, 0x11bd, 0x11b8, 0x1212, 0x5458, 0x54cf, 0x54e0, 0x1280, + 0x1281, 0x129a, 0x1298, 0x55e7, 0x566a, 0x5680, 0x12d4, 0x566f, + 0x5665, 0x12da, 0x5678, 0x567d, 0x5688, 0x12d6, 0x12db, 0x5664, + 0x567e, 0x12dc, 0x5667, 0x5863, 0x5888, 0x1371, 0x58cd, 0x1372, + 0x58c9, 0x13a8, 0x59ed, 0x13f0, 0x86db, 0x13f1, 0x13fd, 0x1438, + 0x1437, 0x1439, 0x5ab1, 0x1455, 0x1453, 0x5b04, 0x5b9e, 0x5ba0, + 0x5c43, 0x5c46, 0x5c48, 0x5c45, 0x5c40, 0x5c4c, + /* 0x45 */ + 0x14d5, 0x14bd, 0x5d0c, 0x5d13, 0x5d15, 0x14f5, 0x5d6b, 0x5d67, + 0x5e5d, 0x5e55, 0x5e35, 0x1521, 0x5e59, 0x5e2f, 0x5e3c, 0x5e8f, + 0x5e5c, 0x5e6a, 0x5e62, 0x5e5f, 0x5e6b, 0x5e6e, 0x5e3b, 0x5e44, + 0x5e41, 0x619a, 0x1592, 0x6199, 0x15de, 0x15db, 0x15da, 0x628f, + 0x15df, 0x6296, 0x15f9, 0x15f8, 0x15fa, 0x62f4, 0x62fc, 0x160e, + 0x6355, 0x1643, 0x6379, 0x1656, 0x1653, 0x169e, 0x63ee, 0x63f5, + 0x16a9, 0x640b, 0x16fa, 0x64f3, 0x1731, 0x1730, 0x64f7, 0x64ff, + 0x64f5, 0x1732, 0x64ec, 0x64f1, 0x1729, 0x172e, 0x659a, 0x1776, + 0x66e2, 0x673d, 0x675d, 0x68e8, 0x18a5, 0x68eb, 0x68ef, 0x68ee, + 0x6a81, 0x6b14, 0x1cd0, 0x1cd9, 0x1cdc, 0x1cd8, 0x008c, 0x1ce1, + 0x1ceb, 0x008b, 0x0089, 0x1cf4, 0x1ce2, 0x1cde, 0x008d, 0x0086, + 0x00d7, 0x1df4, 0x0104, 0x0107, 0x0103, 0x1eed, + /* 0x46 */ + 0x1eea, 0x0122, 0x1f32, 0x0151, 0x1fae, 0x1fb0, 0x0161, 0x21fb, + 0x2203, 0x220b, 0x01e9, 0x2207, 0x01e5, 0x21f8, 0x01e4, 0x2228, + 0x221e, 0x01e3, 0x2218, 0x2211, 0x2251, 0x2205, 0x2317, 0x2492, + 0x0265, 0x248c, 0x0263, 0x2478, 0x2484, 0x2473, 0x24ad, 0x2497, + 0x2495, 0x2477, 0x2472, 0x2496, 0x248d, 0x2510, 0x028c, 0x256c, + 0x031a, 0x26e7, 0x0315, 0x26e4, 0x0320, 0x0321, 0x26ef, 0x2226, + 0x031c, 0x031b, 0x26f0, 0x297b, 0x03fe, 0x2983, 0x0404, 0x0401, + 0x298b, 0x298c, 0x0400, 0x2978, 0x2a52, 0x046d, 0x0493, 0x2ad0, + 0x2acf, 0x04a1, 0x2bb3, 0x2bb4, 0x0576, 0x0579, 0x0572, 0x2d7b, + 0x0583, 0x2d6f, 0x2d81, 0x2d3c, 0x2d42, 0x2d38, 0x2d33, 0x85a6, + 0x2d60, 0x2d69, 0x2d7d, 0x2d86, 0x2e2c, 0x2e28, 0x0638, 0x304c, + 0x0630, 0x3057, 0x307c, 0x0634, 0x063a, 0x3055, + /* 0x47 */ + 0x3062, 0x3071, 0x306a, 0x3056, 0x303b, 0x3081, 0x0635, 0x304f, + 0x307e, 0x3064, 0x063f, 0x0640, 0x0632, 0x0631, 0x0636, 0x3171, + 0x7aba, 0x070f, 0x32a5, 0x329a, 0x329c, 0x0710, 0x32a6, 0x070d, + 0x32a4, 0x358f, 0x35c5, 0x35c8, 0x3592, 0x35b2, 0x07a9, 0x07b4, + 0x07ac, 0x35e3, 0x35c0, 0x35d6, 0x35d1, 0x359f, 0x35a2, 0x35d2, + 0x07b8, 0x07ae, 0x7bf3, 0x35e1, 0x35d5, 0x359d, 0x07b3, 0x07ba, + 0x3598, 0x083f, 0x3774, 0x37a1, 0x093c, 0x3af0, 0x3af3, 0x0942, + 0x0940, 0x3b1b, 0x3b0c, 0x3b1d, 0x3b34, 0x3b28, 0x3b17, 0x093e, + 0x3b44, 0x3b42, 0x3b04, 0x3b11, 0x3afa, 0x3b4a, 0x3d91, 0x3d8e, + 0x09e1, 0x3d8b, 0x3d8d, 0x3d7f, 0x3d8c, 0x3d7e, 0x3d7c, 0x3d83, + 0x09e6, 0x3d88, 0x09e0, 0x0a15, 0x3e94, 0x0a93, 0x3f55, 0x3f53, + 0x3f4f, 0x3f54, 0x406c, 0x4065, 0x4066, 0x4061, + /* 0x48 */ + 0x406b, 0x4068, 0x4076, 0x0ae7, 0x4060, 0x7e0f, 0x4074, 0x4106, + 0x420e, 0x0bad, 0x4207, 0x0bae, 0x0be3, 0x42b9, 0x0bf5, 0x42b7, + 0x42e2, 0x0c06, 0x4374, 0x4377, 0x4376, 0x4375, 0x0c4f, 0x4378, + 0x4371, 0x0c54, 0x437a, 0x3d5b, 0x437b, 0x44a6, 0x44ae, 0x44b8, + 0x0ccb, 0x0ce3, 0x0cc9, 0x44b1, 0x44af, 0x0d13, 0x4589, 0x4587, + 0x0d15, 0x0d61, 0x4629, 0x0d66, 0x462a, 0x0d64, 0x462d, 0x462c, + 0x0d60, 0x4632, 0x0d63, 0x46ec, 0x46f0, 0x4781, 0x479e, 0x4783, + 0x0e0a, 0x4792, 0x0e04, 0x47a3, 0x479f, 0x4793, 0x0e07, 0x4786, + 0x48b8, 0x48b7, 0x0e8d, 0x0e8f, 0x0e90, 0x0e92, 0x0eec, 0x49c8, + 0x49b6, 0x866c, 0x49d1, 0x0ee7, 0x49a8, 0x49ab, 0x0ef2, 0x49b3, + 0x49cd, 0x0eee, 0x49cf, 0x49a4, 0x0eef, 0x0f4c, 0x4b41, 0x4b6f, + 0x4b71, 0x0f5e, 0x0f5f, 0x0f76, 0x0f74, 0x0f72, + /* 0x49 */ + 0x0f90, 0x4c23, 0x4c5b, 0x0fbe, 0x4c61, 0x4c5f, 0x4d81, 0x1026, + 0x1025, 0x4d84, 0x4e13, 0x1074, 0x4e4a, 0x4e4c, 0x10fd, 0x1105, + 0x1101, 0x50bd, 0x5095, 0x1109, 0x5092, 0x50c3, 0x110c, 0x5096, + 0x50a5, 0x50b5, 0x50b3, 0x50a3, 0x50e4, 0x50d8, 0x50d5, 0x110d, + 0x50b7, 0x50ad, 0x50da, 0x5093, 0x5336, 0x11c0, 0x11c5, 0x11c9, + 0x533d, 0x532b, 0x5347, 0x5339, 0x11d5, 0x5345, 0x531d, 0x1241, + 0x54ff, 0x54ea, 0x1233, 0x54f5, 0x123a, 0x5500, 0x54ed, 0x5503, + 0x54e9, 0x1240, 0x1242, 0x55ea, 0x12e8, 0x569b, 0x568e, 0x56a2, + 0x12e4, 0x569c, 0x5694, 0x5690, 0x56a9, 0x56ac, 0x12e7, 0x569f, + 0x12e6, 0x12e1, 0x569d, 0x1339, 0x5867, 0x135c, 0x1375, 0x58d0, + 0x58d6, 0x58d4, 0x5998, 0x599a, 0x5997, 0x13ae, 0x13b0, 0x13fa, + 0x5a0b, 0x5a08, 0x5a01, 0x5ab4, 0x5ab3, 0x145b, + /* 0x4a */ + 0x5ba1, 0x5ba2, 0x14a5, 0x5c5a, 0x14a2, 0x5c61, 0x5c5f, 0x14db, + 0x14da, 0x5d25, 0x5d7b, 0x5d76, 0x5d7c, 0x1524, 0x5e89, 0x5ef6, + 0x5eb1, 0x5ead, 0x5e92, 0x5e81, 0x5e84, 0x1526, 0x5eae, 0x5e90, + 0x5e9e, 0x1598, 0x1596, 0x159a, 0x61a2, 0x61a7, 0x1597, 0x15e1, + 0x15e0, 0x15e3, 0x15e2, 0x62a0, 0x629d, 0x629f, 0x62d0, 0x15fb, + 0x62d1, 0x1612, 0x1614, 0x6359, 0x1645, 0x6364, 0x165c, 0x165d, + 0x16b8, 0x6419, 0x16ba, 0x6414, 0x6415, 0x641a, 0x1703, 0x1735, + 0x1736, 0x1739, 0x6506, 0x172d, 0x64f8, 0x6501, 0x177a, 0x65be, + 0x65bc, 0x65b7, 0x65b6, 0x65c0, 0x1778, 0x65b8, 0x177b, 0x177c, + 0x177e, 0x65c4, 0x177d, 0x65bf, 0x17c9, 0x66da, 0x66e4, 0x66e9, + 0x66e8, 0x66ea, 0x66e5, 0x17f3, 0x6726, 0x181a, 0x1819, 0x6740, + 0x181f, 0x18a6, 0x18a7, 0x18a8, 0x18ab, 0x18a9, + /* 0x4b */ + 0x192e, 0x6abd, 0x195e, 0x0095, 0x0093, 0x0092, 0x1d0e, 0x0096, + 0x1cf7, 0x0097, 0x1cfc, 0x1d0d, 0x1d01, 0x1dda, 0x1dd9, 0x1ddb, + 0x1e86, 0x1e8e, 0x1eee, 0x1f33, 0x1fb1, 0x01f5, 0x2247, 0x222d, + 0x2254, 0x01ea, 0x224b, 0x2252, 0x2231, 0x2244, 0x2256, 0x2250, + 0x222b, 0x01f3, 0x224d, 0x2237, 0x224f, 0x24a2, 0x24b7, 0x0269, + 0x24b2, 0x026b, 0x24aa, 0x24b5, 0x24b0, 0x026c, 0x24b4, 0x24a4, + 0x24a7, 0x0268, 0x2526, 0x26fe, 0x0328, 0x2704, 0x0326, 0x26fc, + 0x0325, 0x2706, 0x270a, 0x26fa, 0x270d, 0x2700, 0x270e, 0x036b, + 0x040f, 0x0408, 0x2991, 0x040c, 0x298f, 0x2990, 0x2998, 0x29a4, + 0x299b, 0x29a3, 0x2996, 0x29e4, 0x2a5a, 0x0460, 0x0462, 0x2a5e, + 0x0498, 0x2bb8, 0x2d57, 0x2d5c, 0x2da6, 0x2d95, 0x2d88, 0x058a, + 0x2da3, 0x2d8f, 0x0584, 0x2d64, 0x057f, 0x2d59, + /* 0x4c */ + 0x2d78, 0x0582, 0x2d85, 0x2d87, 0x2d9e, 0x0596, 0x0589, 0x2d98, + 0x2d9c, 0x058d, 0x05bc, 0x2e2f, 0x3080, 0x309b, 0x308e, 0x308d, + 0x3094, 0x30c6, 0x0644, 0x30a8, 0x3083, 0x063c, 0x30b9, 0x3086, + 0x30b4, 0x30af, 0x3091, 0x064e, 0x30aa, 0x30a1, 0x30a7, 0x32b6, + 0x32b3, 0x0714, 0x32bc, 0x32ac, 0x0715, 0x32ad, 0x360e, 0x07ce, + 0x361c, 0x361a, 0x07e0, 0x07c2, 0x360b, 0x07bf, 0x35ef, 0x360c, + 0x35f0, 0x3622, 0x07c4, 0x35d8, 0x07cf, 0x3612, 0x35fa, 0x07c8, + 0x362a, 0x07cc, 0x3610, 0x07cd, 0x07c7, 0x3629, 0x35f9, 0x35ea, + 0x362c, 0x3624, 0x18b7, 0x35e9, 0x3752, 0x374f, 0x3753, 0x0843, + 0x08b6, 0x3b10, 0x3b65, 0x3b75, 0x0951, 0x094a, 0x094d, 0x0956, + 0x3bd0, 0x0953, 0x3b5c, 0x3b3d, 0x3b71, 0x0959, 0x3b91, 0x3b0b, + 0x3b79, 0x3b81, 0x3b8f, 0x094e, 0x3b59, 0x3b74, + /* 0x4d */ + 0x09ee, 0x3dae, 0x09ec, 0x3da3, 0x3dad, 0x09eb, 0x09ef, 0x3dab, + 0x3da6, 0x3da2, 0x09ed, 0x1ef2, 0x3e57, 0x3e55, 0x3e99, 0x3f4b, + 0x407a, 0x0af2, 0x0aef, 0x0af1, 0x408c, 0x4084, 0x0aed, 0x0af0, + 0x4082, 0x4093, 0x407b, 0x0aee, 0x4109, 0x181b, 0x0b50, 0x0b66, + 0x0284, 0x0bb8, 0x0bf6, 0x438a, 0x0c57, 0x4390, 0x0c5e, 0x44c6, + 0x44d3, 0x44c0, 0x44d2, 0x44c7, 0x44c2, 0x0d19, 0x459f, 0x459d, + 0x459e, 0x0d70, 0x4641, 0x0d6e, 0x4638, 0x463a, 0x4642, 0x0d72, + 0x0d76, 0x463e, 0x46b0, 0x47ae, 0x47b3, 0x0e12, 0x0e1f, 0x47bf, + 0x0e11, 0x0e16, 0x47cd, 0x0e19, 0x47b2, 0x0e24, 0x0e14, 0x0e25, + 0x0e95, 0x0e96, 0x0e93, 0x0e94, 0x48c4, 0x48cd, 0x48c2, 0x48c6, + 0x48c3, 0x48c9, 0x48c7, 0x0ea0, 0x49f8, 0x0efb, 0x49ed, 0x49e2, + 0x0efc, 0x0f00, 0x0ef8, 0x49dc, 0x4a02, 0x4a01, + /* 0x4e */ + 0x0ef9, 0x49d6, 0x0f04, 0x49e4, 0x49fe, 0x0f03, 0x4a00, 0x49fc, + 0x49fd, 0x0ef3, 0x49f5, 0x49ff, 0x0efa, 0x49eb, 0x49e5, 0x4b78, + 0x4bae, 0x4be7, 0x0fbf, 0x4c65, 0x4c6a, 0x4c66, 0x4c68, 0x4c6b, + 0x4d94, 0x4da1, 0x4d92, 0x4d96, 0x4d93, 0x1079, 0x1110, 0x5101, + 0x1114, 0x50f8, 0x110e, 0x50f5, 0x111a, 0x5104, 0x1119, 0x1121, + 0x1123, 0x111f, 0x511b, 0x5103, 0x5133, 0x5134, 0x50ed, 0x1125, + 0x112b, 0x5135, 0x1116, 0x5105, 0x1122, 0x111b, 0x11ce, 0x11cf, + 0x537d, 0x11cb, 0x11d1, 0x11cc, 0x5371, 0x1217, 0x545c, 0x54e6, + 0x550f, 0x551b, 0x1251, 0x55a9, 0x55a5, 0x55ee, 0x56b1, 0x12ed, + 0x56cc, 0x56ce, 0x12f4, 0x56b7, 0x12f1, 0x56b5, 0x56e9, 0x56b4, + 0x12f8, 0x56b3, 0x56c1, 0x56af, 0x56ca, 0x56d0, 0x132f, 0x135e, + 0x135d, 0x588e, 0x1376, 0x1377, 0x58e9, 0x58db, + /* 0x4f */ + 0x137e, 0x58eb, 0x59a4, 0x13b6, 0x59a2, 0x599d, 0x13b3, 0x13fc, + 0x1403, 0x1400, 0x5a2a, 0x5a28, 0x140a, 0x1402, 0x5ab8, 0x5ab6, + 0x5ab9, 0x5ab7, 0x5b22, 0x5b2b, 0x5b27, 0x5b19, 0x5ba4, 0x1487, + 0x5bb3, 0x14a6, 0x5c71, 0x5c6a, 0x14a9, 0x14de, 0x5d88, 0x5d8c, + 0x5ebf, 0x5eb8, 0x5ebe, 0x5edc, 0x5ee5, 0x152e, 0x152d, 0x5ed4, + 0x5ed6, 0x1530, 0x5eda, 0x5eed, 0x5ef3, 0x5edb, 0x152b, 0x5eb9, + 0x5ee2, 0x5eeb, 0x61af, 0x159e, 0x61b2, 0x61b3, 0x159f, 0x15e5, + 0x15e4, 0x62a3, 0x62a5, 0x15fd, 0x15fc, 0x1617, 0x1619, 0x630a, + 0x1618, 0x6387, 0x6389, 0x638c, 0x63ef, 0x642a, 0x6422, 0x16bf, + 0x641f, 0x173c, 0x6519, 0x176b, 0x65ca, 0x65da, 0x1783, 0x1781, + 0x1780, 0x65de, 0x65c8, 0x65e0, 0x17ca, 0x66b6, 0x66b5, 0x17ce, + 0x66f4, 0x17f6, 0x676b, 0x6769, 0x6772, 0x6763, + /* 0x50 */ + 0x1839, 0x690d, 0x18ae, 0x6901, 0x690c, 0x18b5, 0x68f8, 0x18b3, + 0x18b4, 0x68fe, 0x6902, 0x6a84, 0x1922, 0x6aab, 0x6aaa, 0x1d1d, + 0x1d16, 0x0099, 0x1d2b, 0x1d1e, 0x1d1b, 0x1e90, 0x1e94, 0x1f14, + 0x7289, 0x0202, 0x2267, 0x0201, 0x227b, 0x02a1, 0x225f, 0x2261, + 0x01fd, 0x0273, 0x0274, 0x0270, 0x0276, 0x0275, 0x0272, 0x24c3, + 0x24ca, 0x24bb, 0x24c0, 0x24c4, 0x2501, 0x271f, 0x2718, 0x2711, + 0x2715, 0x0329, 0x2712, 0x271c, 0x032a, 0x2722, 0x2779, 0x29a6, + 0x0416, 0x29b3, 0x29ab, 0x2aea, 0x0499, 0x2b5b, 0x04d3, 0x04f5, + 0x2db7, 0x2dce, 0x2db9, 0x2dbd, 0x2dcf, 0x2dc0, 0x2d99, 0x2d97, + 0x0594, 0x2dbb, 0x2dd0, 0x2dc4, 0x2e31, 0x0656, 0x30d3, 0x30c0, + 0x0659, 0x0658, 0x0655, 0x0652, 0x30dc, 0x30d1, 0x30c8, 0x0657, + 0x30d5, 0x32c3, 0x071b, 0x071c, 0x32bf, 0x32c5, + /* 0x51 */ + 0x0719, 0x32cd, 0x32c1, 0x3306, 0x073f, 0x3324, 0x3663, 0x3642, + 0x3652, 0x07db, 0x3643, 0x3633, 0x07e2, 0x366c, 0x3657, 0x07d7, + 0x364c, 0x366e, 0x07de, 0x07e5, 0x07e4, 0x07e6, 0x07d6, 0x3637, + 0x07df, 0x3671, 0x364a, 0x3636, 0x07dc, 0x3653, 0x07da, 0x3645, + 0x3670, 0x07d3, 0x07d0, 0x365c, 0x3758, 0x3757, 0x0886, 0x0887, + 0x08ad, 0x08b7, 0x0958, 0x096a, 0x3bbb, 0x0962, 0x0961, 0x3bbe, + 0x0969, 0x096c, 0x0965, 0x3bb5, 0x3bd3, 0x3b9f, 0x0966, 0x3bb7, + 0x3bf5, 0x3db7, 0x09f5, 0x3dbb, 0x09f4, 0x3dd1, 0x09f7, 0x3dba, + 0x09f8, 0x3db6, 0x3dcc, 0x09fb, 0x09fc, 0x3dd3, 0x409b, 0x0af5, + 0x0af8, 0x4096, 0x40a2, 0x409d, 0x410a, 0x410e, 0x0b3c, 0x4181, + 0x422c, 0x4237, 0x4236, 0x423b, 0x0bc5, 0x42a1, 0x0c62, 0x0c63, + 0x4398, 0x0c67, 0x4396, 0x0c66, 0x0cd9, 0x0cdb, + /* 0x52 */ + 0x44d6, 0x44eb, 0x0cd8, 0x44dc, 0x0d1b, 0x45a5, 0x45a9, 0x6434, + 0x4653, 0x4645, 0x0d79, 0x464f, 0x0d7d, 0x46bd, 0x46bb, 0x46f1, + 0x0e2c, 0x0e37, 0x47ec, 0x47ed, 0x0e30, 0x0e9a, 0x48d3, 0x1600, + 0x48e1, 0x0f05, 0x4a19, 0x0f07, 0x0f09, 0x0f0a, 0x4a27, 0x4a26, + 0x0f79, 0x0fc2, 0x4c6e, 0x4daf, 0x1038, 0x1037, 0x4dad, 0x1021, + 0x4daa, 0x4e18, 0x105e, 0x113d, 0x1137, 0x1140, 0x516f, 0x514c, + 0x111d, 0x5142, 0x1133, 0x515c, 0x5170, 0x515f, 0x1135, 0x515a, + 0x514b, 0x513f, 0x538a, 0x11d8, 0x538b, 0x53a1, 0x538e, 0x11dc, + 0x11de, 0x5399, 0x545e, 0x545f, 0x5524, 0x55a7, 0x56ea, 0x56fd, + 0x56f9, 0x56e3, 0x56e5, 0x12fa, 0x12fb, 0x56ec, 0x133d, 0x133b, + 0x133f, 0x135f, 0x58f2, 0x137f, 0x58ef, 0x1384, 0x59a6, 0x13bc, + 0x1414, 0x140f, 0x5a3b, 0x5a43, 0x140e, 0x5a32, + /* 0x53 */ + 0x5b31, 0x5b30, 0x1460, 0x5b2d, 0x5b3c, 0x5ba7, 0x5ba5, 0x14ab, + 0x14ac, 0x14aa, 0x5d37, 0x5d95, 0x5d8e, 0x1504, 0x5d96, 0x1508, + 0x5f45, 0x5f0a, 0x1533, 0x1534, 0x5efd, 0x5f17, 0x5f1c, 0x5f07, + 0x5f31, 0x5f32, 0x5f2c, 0x5f30, 0x5f03, 0x5f05, 0x15a2, 0x61c2, + 0x15a4, 0x61b8, 0x15a5, 0x61c1, 0x15a7, 0x15a6, 0x15e7, 0x62ab, + 0x62b7, 0x15ff, 0x15fe, 0x6315, 0x6314, 0x161d, 0x161c, 0x630c, + 0x6317, 0x1667, 0x6393, 0x1694, 0x63d2, 0x16c5, 0x16c8, 0x6436, + 0x6431, 0x6433, 0x643c, 0x642e, 0x643a, 0x16c9, 0x643d, 0x16c7, + 0x64b5, 0x6522, 0x6523, 0x6520, 0x651c, 0x651d, 0x176c, 0x65a0, + 0x178a, 0x65ef, 0x65e8, 0x65eb, 0x1788, 0x1787, 0x1786, 0x65e1, + 0x65e6, 0x17cf, 0x17d0, 0x66f8, 0x66f5, 0x181c, 0x1823, 0x6783, + 0x6794, 0x6784, 0x1849, 0x678b, 0x678f, 0x1843, + /* 0x54 */ + 0x678c, 0x1848, 0x6789, 0x1847, 0x678e, 0x1846, 0x183f, 0x1844, + 0x6924, 0x690f, 0x18be, 0x6913, 0x690a, 0x18c2, 0x18ba, 0x18bc, + 0x18c6, 0x692a, 0x691a, 0x18c8, 0x6927, 0x6916, 0x6921, 0x1923, + 0x6a85, 0x6aac, 0x6ac6, 0x6ac5, 0x6ad7, 0x6b53, 0x009d, 0x1d28, + 0x1d27, 0x1ddf, 0x0124, 0x1f35, 0x1fb3, 0x0207, 0x228a, 0x227d, + 0x2289, 0x0279, 0x24cd, 0x24d0, 0x0278, 0x272b, 0x2733, 0x2729, + 0x2735, 0x2731, 0x2737, 0x2836, 0x29be, 0x0419, 0x29b9, 0x041c, + 0x29bb, 0x0418, 0x2de2, 0x2ddb, 0x2ddd, 0x2ddc, 0x2dda, 0x85af, + 0x2dd9, 0x05bd, 0x065d, 0x30df, 0x065a, 0x065e, 0x30e1, 0x065c, + 0x30ee, 0x065b, 0x31b5, 0x32d4, 0x32d5, 0x0721, 0x32d0, 0x32d1, + 0x32ce, 0x32d7, 0x0720, 0x0732, 0x367d, 0x368a, 0x07f2, 0x36a7, + 0x07f5, 0x3699, 0x3682, 0x3688, 0x07ee, 0x07ec, + /* 0x55 */ + 0x3686, 0x07ea, 0x3698, 0x369d, 0x07ed, 0x07f3, 0x368f, 0x07f6, + 0x36aa, 0x0848, 0x375d, 0x0849, 0x380a, 0x0975, 0x3bd7, 0x3bd6, + 0x3be5, 0x096f, 0x097b, 0x0973, 0x3bd9, 0x3bda, 0x3bea, 0x0970, + 0x3bf6, 0x7d39, 0x0978, 0x3de3, 0x09fe, 0x3de9, 0x0a00, 0x3deb, + 0x3def, 0x3df3, 0x3dea, 0x0a01, 0x8621, 0x0a55, 0x0a56, 0x0a9d, + 0x3f71, 0x0af9, 0x40ae, 0x0aff, 0x40b3, 0x0afd, 0x40ac, 0x0b43, + 0x0b41, 0x4183, 0x4245, 0x424e, 0x4244, 0x42a3, 0x42a5, 0x43a6, + 0x43a4, 0x0c6f, 0x43a9, 0x43af, 0x0c8a, 0x0ce5, 0x0ce6, 0x44f0, + 0x44f8, 0x44f1, 0x0d7f, 0x4649, 0x0db5, 0x0db6, 0x0dbb, 0x46c2, + 0x46f2, 0x46f3, 0x47fa, 0x0e40, 0x47f6, 0x47fc, 0x4818, 0x4808, + 0x4812, 0x0e9d, 0x0e9c, 0x48db, 0x48da, 0x0f0f, 0x0f11, 0x0f0d, + 0x4a2c, 0x4a4d, 0x0f14, 0x0f13, 0x4b46, 0x4bf6, + /* 0x56 */ + 0x4c2b, 0x4c74, 0x4db8, 0x4dc8, 0x1082, 0x1083, 0x114d, 0x5192, + 0x5193, 0x114f, 0x517f, 0x51ab, 0x5197, 0x114c, 0x1151, 0x51ac, + 0x11ee, 0x11e8, 0x18cb, 0x53ce, 0x11eb, 0x53cd, 0x11e2, 0x11e6, + 0x53c1, 0x53b1, 0x53c7, 0x11ec, 0x5540, 0x1259, 0x553f, 0x5539, + 0x125d, 0x5543, 0x1257, 0x125b, 0x1256, 0x55ab, 0x12fe, 0x571f, + 0x5709, 0x570c, 0x1300, 0x1301, 0x5840, 0x1342, 0x5896, 0x1360, + 0x58f6, 0x58f7, 0x141d, 0x5a46, 0x5a4f, 0x143e, 0x1469, 0x1465, + 0x5b3d, 0x5b41, 0x5f66, 0x5f78, 0x5f5d, 0x5f69, 0x5f74, 0x5f7d, + 0x5f6e, 0x5f72, 0x5f73, 0x5f62, 0x5f48, 0x5f53, 0x5f5f, 0x5f68, + 0x1538, 0x5f7f, 0x5f6b, 0x15ae, 0x61c4, 0x15ad, 0x62af, 0x62ad, + 0x62b2, 0x1602, 0x161f, 0x631a, 0x631b, 0x1622, 0x1620, 0x86f5, + 0x166c, 0x639b, 0x639f, 0x1668, 0x166d, 0x166e, + /* 0x57 */ + 0x16a0, 0x16ce, 0x16d0, 0x16d1, 0x16cb, 0x6440, 0x16d2, 0x6447, + 0x16d3, 0x64b7, 0x1720, 0x174e, 0x174b, 0x1772, 0x1770, 0x65a2, + 0x1792, 0x178f, 0x6600, 0x65f3, 0x1790, 0x8437, 0x65f5, 0x17d9, + 0x17d5, 0x66bd, 0x6700, 0x6702, 0x17fa, 0x6734, 0x6749, 0x679f, + 0x184b, 0x67a3, 0x67cd, 0x6799, 0x679d, 0x18d0, 0x18ce, 0x6939, + 0x18cf, 0x6944, 0x18c4, 0x18cc, 0x6935, 0x18d2, 0x1935, 0x6aaf, + 0x0a03, 0x1d2f, 0x009e, 0x00af, 0x6b8e, 0x020c, 0x229f, 0x229b, + 0x229e, 0x2296, 0x2294, 0x22a0, 0x027c, 0x273b, 0x0330, 0x0331, + 0x273a, 0x29c1, 0x2b4d, 0x2b5d, 0x2df3, 0x05a1, 0x059e, 0x0668, + 0x0661, 0x30f6, 0x30e5, 0x30ea, 0x30e7, 0x3105, 0x0665, 0x30f9, + 0x0666, 0x066a, 0x06ab, 0x36ab, 0x36ed, 0x36b2, 0x36b0, 0x36b5, + 0x36be, 0x36c1, 0x36c8, 0x07f9, 0x36c0, 0x36bc, + /* 0x58 */ + 0x36b1, 0x36c4, 0x36bf, 0x0858, 0x088a, 0x3c08, 0x3c03, 0x3bfd, + 0x3c10, 0x3c02, 0x3c13, 0x0a04, 0x3dfa, 0x3e00, 0x40b9, 0x40bc, + 0x0b02, 0x425b, 0x4251, 0x424f, 0x42eb, 0x43b8, 0x0c79, 0x43b9, + 0x43c1, 0x43c0, 0x43be, 0x450b, 0x0ceb, 0x4507, 0x450a, 0x4508, + 0x0ce9, 0x450d, 0x4506, 0x4515, 0x45af, 0x0d20, 0x0d21, 0x0d81, + 0x46f5, 0x0e4d, 0x0e59, 0x482e, 0x0e58, 0x481b, 0x81d1, 0x481a, + 0x4824, 0x0ea5, 0x0ea9, 0x48e6, 0x48e3, 0x0f1a, 0x0f19, 0x4a5d, + 0x4a4f, 0x4a66, 0x4a5b, 0x4b47, 0x4bb4, 0x0f96, 0x0f98, 0x0f97, + 0x4bfa, 0x4c2e, 0x82df, 0x0fc8, 0x4dce, 0x1043, 0x1045, 0x4e19, + 0x1152, 0x1157, 0x51cc, 0x51b2, 0x1155, 0x51bb, 0x51c1, 0x1156, + 0x1158, 0x11f2, 0x53e9, 0x53ee, 0x53f0, 0x53d6, 0x540e, 0x53da, + 0x5548, 0x554a, 0x554e, 0x554d, 0x55b1, 0x55b0, + /* 0x59 */ + 0x55b3, 0x1307, 0x5738, 0x5732, 0x1308, 0x572d, 0x130a, 0x5734, + 0x0f1b, 0x5729, 0x5874, 0x1361, 0x1362, 0x5903, 0x13c2, 0x13c6, + 0x59a9, 0x5a58, 0x141e, 0x1425, 0x5abf, 0x5ac1, 0x5b4a, 0x5bac, + 0x14b0, 0x5c89, 0x5d3d, 0x5d3c, 0x5da9, 0x5fa0, 0x153d, 0x5f90, + 0x153e, 0x5f93, 0x5f8b, 0x5fad, 0x5fbb, 0x5fb8, 0x1546, 0x1545, + 0x5f9c, 0x61d8, 0x61d7, 0x1603, 0x1626, 0x1627, 0x635d, 0x63a9, + 0x63da, 0x1698, 0x16ad, 0x16d5, 0x16da, 0x6454, 0x16d9, 0x6455, + 0x644b, 0x16dd, 0x643f, 0x64b9, 0x1715, 0x1716, 0x1717, 0x1721, + 0x6538, 0x6536, 0x6540, 0x174c, 0x653b, 0x6539, 0x65a4, 0x1796, + 0x1798, 0x6608, 0x660c, 0x179b, 0x6610, 0x17ff, 0x6707, 0x1825, + 0x67d2, 0x184f, 0x67c2, 0x67bb, 0x67cc, 0x67cb, 0x1856, 0x1854, + 0x694d, 0x6963, 0x694e, 0x18d8, 0x6950, 0x6955, + /* 0x5a */ + 0x18d7, 0x695e, 0x1926, 0x6a90, 0x6ab2, 0x6ab1, 0x1938, 0x6aca, + 0x6b02, 0x6b27, 0x6b26, 0x198a, 0x22af, 0x24e0, 0x24dc, 0x0334, + 0x2739, 0x0335, 0x856a, 0x277c, 0x27f3, 0x8570, 0x03a1, 0x286b, + 0x29c4, 0x310b, 0x3108, 0x310a, 0x066c, 0x066d, 0x31dc, 0x0729, + 0x072a, 0x32e1, 0x32df, 0x36ce, 0x36d4, 0x36e3, 0x36d7, 0x36e2, + 0x0800, 0x0808, 0x0806, 0x0805, 0x36d8, 0x36d5, 0x36d2, 0x08b1, + 0x0988, 0x3c1e, 0x3c2c, 0x3c25, 0x3bf3, 0x3e04, 0x3e08, 0x3e15, + 0x0a09, 0x40c4, 0x40c9, 0x40c7, 0x40c8, 0x42a9, 0x43c6, 0x43c5, + 0x4518, 0x451a, 0x4520, 0x0d22, 0x4666, 0x4664, 0x466a, 0x0dd5, + 0x0e61, 0x0e5d, 0x0e62, 0x0e4f, 0x0e60, 0x4835, 0x4834, 0x0eaa, + 0x0f22, 0x4a6c, 0x0f21, 0x4a6e, 0x4a71, 0x1046, 0x4dd4, 0x4dd6, + 0x4e1a, 0x4e62, 0x4e65, 0x4e76, 0x51db, 0x51d6, + /* 0x5b */ + 0x1162, 0x51e7, 0x1160, 0x1164, 0x51f4, 0x86b6, 0x53fd, 0x53d5, + 0x5407, 0x11f6, 0x540f, 0x53f8, 0x86c1, 0x1219, 0x5587, 0x1291, + 0x55b5, 0x55f5, 0x130d, 0x573f, 0x5743, 0x574c, 0x1365, 0x590b, + 0x5a6b, 0x5a68, 0x5a70, 0x5a75, 0x5a77, 0x143f, 0x5ac3, 0x154b, + 0x5fe9, 0x5fea, 0x5fcb, 0x5fc5, 0x5fc6, 0x1548, 0x5fed, 0x5fd3, + 0x1552, 0x5fe5, 0x154a, 0x1551, 0x5fdb, 0x5feb, 0x5fe0, 0x5fc1, + 0x1550, 0x154c, 0x61dd, 0x15ee, 0x1604, 0x1606, 0x162d, 0x162e, + 0x162f, 0x167b, 0x1678, 0x1677, 0x63b2, 0x63b4, 0x63b1, 0x63b5, + 0x63f2, 0x16a2, 0x16a1, 0x16e3, 0x6456, 0x171a, 0x1719, 0x1757, + 0x6544, 0x179e, 0x6626, 0x661f, 0x6618, 0x6621, 0x6617, 0x17dd, + 0x6709, 0x1805, 0x1828, 0x67c5, 0x67df, 0x1860, 0x67e3, 0x1866, + 0x67e9, 0x67ee, 0x1867, 0x1868, 0x6966, 0x697a, + /* 0x5c */ + 0x18de, 0x696e, 0x6991, 0x6983, 0x6976, 0x697e, 0x696d, 0x18e1, + 0x6a95, 0x6ae3, 0x1969, 0x1977, 0x6b03, 0x6b04, 0x8719, 0x6b17, + 0x00a6, 0x1d36, 0x00a5, 0x1f36, 0x0214, 0x2742, 0x0336, 0x0338, + 0x2744, 0x2746, 0x277e, 0x29ca, 0x29c8, 0x29cc, 0x2af0, 0x0670, + 0x3185, 0x32e5, 0x32e7, 0x072b, 0x0811, 0x080a, 0x36f4, 0x080d, + 0x36e9, 0x0816, 0x0810, 0x0809, 0x080e, 0x087a, 0x3c3d, 0x098c, + 0x3c36, 0x0991, 0x3e16, 0x0a0a, 0x3e12, 0x3e0f, 0x3e17, 0x3e11, + 0x3e0b, 0x0a08, 0x0a0b, 0x40cd, 0x40d0, 0x40cc, 0x40ce, 0x40d1, + 0x0b07, 0x4189, 0x0cf2, 0x466f, 0x484b, 0x4844, 0x4855, 0x0eae, + 0x0f24, 0x0f26, 0x0f27, 0x4a7f, 0x5771, 0x0f99, 0x4c2f, 0x4c7a, + 0x4c7b, 0x4c7c, 0x115f, 0x116a, 0x1171, 0x51fc, 0x5210, 0x5202, + 0x116c, 0x116f, 0x51ee, 0x5203, 0x1168, 0x520d, + /* 0x5d */ + 0x5213, 0x5208, 0x520f, 0x5418, 0x5412, 0x1201, 0x1268, 0x5567, + 0x5565, 0x55bb, 0x5769, 0x5762, 0x1313, 0x576e, 0x1316, 0x5761, + 0x1318, 0x5764, 0x574d, 0x5851, 0x1389, 0x13c8, 0x5a83, 0x5ac6, + 0x1484, 0x601f, 0x1554, 0x6004, 0x6017, 0x6008, 0x6005, 0x1556, + 0x5ff3, 0x601e, 0x6002, 0x601a, 0x601b, 0x6027, 0x601c, 0x155a, + 0x62b5, 0x1605, 0x1607, 0x6333, 0x1631, 0x6334, 0x6331, 0x63b8, + 0x63ba, 0x16a3, 0x63fc, 0x16eb, 0x171c, 0x64c3, 0x175a, 0x654d, + 0x175b, 0x662f, 0x17a6, 0x17aa, 0x17a5, 0x66c9, 0x17e1, 0x66c8, + 0x66c4, 0x672a, 0x6738, 0x6750, 0x182a, 0x680a, 0x67fb, 0x6804, + 0x67fc, 0x67fe, 0x1872, 0x186f, 0x1873, 0x6802, 0x67f6, 0x681b, + 0x67f9, 0x6815, 0x6810, 0x67ff, 0x6800, 0x680c, 0x186b, 0x18e6, + 0x6995, 0x69a5, 0x18e9, 0x18ec, 0x18e8, 0x18f0, + /* 0x5e */ + 0x6a98, 0x6ac1, 0x198c, 0x6b5a, 0x1d64, 0x22bb, 0x0215, 0x24e6, + 0x2749, 0x27f7, 0x0371, 0x0426, 0x29d0, 0x04c6, 0x2bc2, 0x05a8, + 0x3111, 0x0673, 0x36ff, 0x36fe, 0x36fd, 0x0815, 0x3701, 0x0998, + 0x0997, 0x3c4b, 0x3c4d, 0x3c47, 0x40d3, 0x4268, 0x4267, 0x0bd7, + 0x0c80, 0x43d1, 0x4530, 0x4532, 0x452e, 0x0d88, 0x6b9d, 0x46c9, + 0x46c8, 0x0e69, 0x4856, 0x4851, 0x0e6b, 0x0f29, 0x0f28, 0x4a85, + 0x4a89, 0x4a8e, 0x4a84, 0x105f, 0x4e6a, 0x522b, 0x522f, 0x5228, + 0x1174, 0x5216, 0x5215, 0x521d, 0x541a, 0x1202, 0x126a, 0x1294, + 0x55bc, 0x5775, 0x577c, 0x138a, 0x5911, 0x5912, 0x5b5c, 0x5dbb, + 0x1564, 0x5ff4, 0x155e, 0x1561, 0x602d, 0x1565, 0x1566, 0x62e4, + 0x6337, 0x6336, 0x6367, 0x63be, 0x63bd, 0x63e2, 0x6468, 0x6466, + 0x64c8, 0x64ca, 0x64c7, 0x64dc, 0x175f, 0x654f, + /* 0x5f */ + 0x65a9, 0x663c, 0x17af, 0x663b, 0x66ce, 0x180d, 0x6714, 0x6753, + 0x187c, 0x682e, 0x187a, 0x681f, 0x1876, 0x1879, 0x187d, 0x1877, + 0x69b0, 0x69bd, 0x18f6, 0x18f1, 0x69ae, 0x69c4, 0x6a7b, 0x0c0b, + 0x1929, 0x6a9e, 0x196f, 0x6b05, 0x199a, 0x6b69, 0x6ba1, 0x22c7, + 0x231d, 0x274a, 0x29d3, 0x0469, 0x2b72, 0x2e02, 0x05ab, 0x2e35, + 0x3127, 0x311e, 0x311f, 0x072c, 0x072d, 0x3707, 0x3706, 0x0817, + 0x099a, 0x3c54, 0x3e1c, 0x3e20, 0x46f8, 0x0e6e, 0x485d, 0x4858, + 0x0f2c, 0x4a92, 0x4b4e, 0x0fca, 0x1178, 0x1206, 0x5427, 0x1207, + 0x5781, 0x5783, 0x1320, 0x5844, 0x1353, 0x13ce, 0x147a, 0x1479, + 0x6042, 0x604d, 0x6054, 0x604e, 0x156b, 0x6043, 0x1567, 0x156d, + 0x633c, 0x6340, 0x63c0, 0x1685, 0x16b0, 0x16f3, 0x1763, 0x655a, + 0x6651, 0x17b6, 0x66dd, 0x1882, 0x187f, 0x6838, + /* 0x60 */ + 0x1886, 0x6845, 0x683a, 0x1884, 0x6835, 0x18fc, 0x18fd, 0x18fa, + 0x6af1, 0x1987, 0x6b93, 0x1e9a, 0x021a, 0x0219, 0x5241, 0x29d7, + 0x0675, 0x3128, 0x081a, 0x081b, 0x0819, 0x3c53, 0x3c59, 0x099c, + 0x3e21, 0x0a10, 0x426f, 0x4537, 0x45b5, 0x4862, 0x485e, 0x48f5, + 0x117b, 0x117c, 0x523d, 0x1208, 0x542d, 0x5589, 0x578d, 0x5787, + 0x5790, 0x591a, 0x5a99, 0x1441, 0x14e3, 0x1572, 0x605f, 0x1573, + 0x1568, 0x6056, 0x6061, 0x605b, 0x605a, 0x605c, 0x6065, 0x1635, + 0x6341, 0x1688, 0x169d, 0x646e, 0x646c, 0x646d, 0x0e75, 0x65aa, + 0x665c, 0x6658, 0x66de, 0x188f, 0x684f, 0x6851, 0x188e, 0x6853, + 0x1905, 0x1904, 0x18ff, 0x69fc, 0x6b39, 0x199e, 0x1d3e, 0x0154, + 0x22d2, 0x0281, 0x274f, 0x3714, 0x0cfa, 0x4672, 0x4673, 0x0f32, + 0x1270, 0x126e, 0x5791, 0x86d6, 0x147c, 0x5dbf, + /* 0x61 */ + 0x1575, 0x606c, 0x1574, 0x1577, 0x62e6, 0x6345, 0x1637, 0x63c8, + 0x63e4, 0x655d, 0x17ba, 0x6721, 0x1811, 0x672c, 0x6757, 0x1892, + 0x1899, 0x685d, 0x6861, 0x6865, 0x6a08, 0x190a, 0x192a, 0x192b, + 0x1944, 0x1979, 0x6b45, 0x00aa, 0x0348, 0x2e05, 0x32ef, 0x371b, + 0x371d, 0x3e25, 0x3e24, 0x486d, 0x0eb4, 0x5242, 0x5249, 0x120d, + 0x5578, 0x558a, 0x5797, 0x1354, 0x589b, 0x591c, 0x1430, 0x5aa2, + 0x1609, 0x1638, 0x1636, 0x168b, 0x16f7, 0x1766, 0x17bd, 0x181e, + 0x686c, 0x1896, 0x686f, 0x190d, 0x6a0e, 0x1973, 0x6b08, 0x6b1d, + 0x6ba3, 0x033b, 0x033c, 0x2b60, 0x371c, 0x09a0, 0x0cfb, 0x6cfd, + 0x48f3, 0x1181, 0x579b, 0x5aa7, 0x5dc4, 0x1578, 0x607a, 0x168d, + 0x1773, 0x6661, 0x6663, 0x66d7, 0x6876, 0x19a6, 0x6ba5, 0x05ad, + 0x3c67, 0x0a11, 0x3eab, 0x524a, 0x557d, 0x579d, + /* 0x62 */ + 0x5853, 0x5b65, 0x607b, 0x1639, 0x64cd, 0x64dd, 0x17bf, 0x6730, + 0x6a16, 0x190f, 0x19a7, 0x19b5, 0x0bdc, 0x1431, 0x62e7, 0x6a18, + 0x6aa2, 0x19a8, 0x6b7c, 0x0d25, 0x4a9e, 0x6084, 0x17c1, 0x6a1c, + 0x0d90, 0x4871, 0x63ca, 0x1296, 0x147f, 0x1910, 0x6aa3, 0x160a, + 0x687b, 0x6b97, 0x1912, 0x163a, 0x6350, 0x163b, +}; +static const unsigned short cns11643_3_2uni_page64[292] = { + /* 0x64 */ + 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, + 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, + 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, + 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, + 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x1b66, + 0x1b68, 0x1be7, 0x1c3f, 0x6cfd, 0x1ca6, 0x1d0f, 0x1e3e, 0x1f24, + 0x1f65, 0x1f9b, 0x1d7f, 0x20cb, 0x2173, 0x2171, 0x216b, 0x21f4, + 0x2222, 0x2220, 0x2292, 0x22ba, 0x2291, 0x22b0, 0x2359, 0x238a, + 0x240f, 0x2412, 0x2413, 0x2447, 0x249b, 0x2500, 0x254d, 0x26d1, + 0x26d3, 0x2767, 0x2857, 0x2877, 0x28d5, 0x2975, 0x298e, 0x29a5, + 0x29b6, 0x29bf, 0x2a65, 0x2acd, 0x2aed, 0x2b94, 0x2b9a, 0x2bba, + 0x2d25, 0x2d50, 0x2ea3, 0x2f60, 0x2f64, 0x2fb6, + /* 0x65 */ + 0x3003, 0x30b6, 0x311a, 0x4625, 0x2821, 0x32e2, 0x3302, 0x33a4, + 0x33ac, 0x3410, 0x3406, 0x345e, 0x345a, 0x352c, 0x3529, 0x362d, + 0x3677, 0x367a, 0x36ca, 0x36e6, 0x36f5, 0x370d, 0x370e, 0x37dc, + 0x37dd, 0x37f6, 0x381e, 0x3863, 0x39a5, 0x3a0f, 0x3a8a, 0x3a84, + 0x3a8b, 0x3a7c, 0x3b4c, 0x3b48, 0x3b49, 0x3b9d, 0x3b99, 0x3bf8, + 0x3c2e, 0x3c2d, 0x3c5c, 0x45cc, 0x3cbf, 0x3cea, 0x3ce5, 0x3d11, + 0x3d12, 0x3d3f, 0x3d39, 0x3d3b, 0x3d3d, 0x3d77, 0x3d75, 0x3d76, + 0x3d71, 0x3d96, 0x3d93, 0x3db4, 0x3ddd, 0x3dde, 0x3e0e, 0x2511, + 0x3e18, 0x3f47, 0x3f48, 0x3fef, 0x4012, 0x403b, 0x40a4, 0x408d, + 0x40b4, 0x4273, 0x4277, 0x42bc, 0x4419, 0x441b, 0x443d, 0x4453, + 0x4454, 0x4458, 0x44b7, 0x44d8, 0x44ee, 0x4522, 0x454d, 0x4586, + 0x4599, 0x45a3, 0x45bc, 0x46a7, 0x4737, 0x4759, + /* 0x66 */ + 0x47d0, 0x482f, 0x4832, 0x4842, 0x484e, 0x4868, 0x48a9, 0x48ed, + 0x49d0, 0x4a07, 0x49d3, 0x4a64, 0x4b40, 0x6cfd, 0x4c41, 0x4c63, + 0x4cbb, 0x3311, 0x3325, 0x4e48, 0x4f10, 0x4f62, 0x4f12, 0x5021, + 0x501e, 0x50e2, 0x50de, 0x50e1, 0x5173, 0x51d4, 0x51f5, 0x5237, + 0x5245, 0x5272, 0x534a, 0x53a9, 0x53a5, 0x53f5, 0x5434, 0x5450, + 0x5487, 0x5554, 0x5584, 0x5703, 0x5852, 0x58d8, 0x590c, 0x5918, + 0x59b0, 0x5abc, 0x5ad5, 0x5baa, 0x5c9c, 0x6cfd, 0x5d5c, 0x5e2b, + 0x5e21, 0x5e73, 0x5ef4, 0x5ef5, 0x5f3f, 0x5f42, 0x5f86, 0x5fbe, + 0x5fbc, 0x5fbd, 0x5ff1, 0x5ff2, 0x5fef, 0x6022, 0x6023, 0x6024, + 0x6067, 0x6066, 0x6197, 0x61ce, 0x61e7, 0x633b, 0x634d, 0x64e4, + 0x6542, 0x671d, 0x6798, 0x6cfd, 0x6949, 0x3049, 0x2a71, 0x2a85, + 0x2dd3, 0x650e, 0x4c02, 0x441e, 0x6cfd, 0x6cfd, + /* 0x67 */ + 0x2128, 0x2172, 0x21ba, 0x21f0, 0x21ee, 0x22b8, 0x22b9, 0x22c4, + 0x4c53, 0x5eb0, +}; + +static const ucs4_t cns11643_3_2uni_upages[136] = { + 0x03400, 0x03500, 0x03600, 0x03700, 0x03800, 0x03900, 0x03a00, 0x03b00, + 0x03c00, 0x03d00, 0x03e00, 0x03f00, 0x04000, 0x04100, 0x04200, 0x04300, + 0x04400, 0x04500, 0x04600, 0x04700, 0x04800, 0x04900, 0x04a00, 0x04b00, + 0x04c00, 0x04d00, 0x04e00, 0x04f00, 0x05000, 0x05100, 0x05200, 0x05300, + 0x05400, 0x05500, 0x05600, 0x05700, 0x05800, 0x05900, 0x05a00, 0x05b00, + 0x05c00, 0x05d00, 0x05e00, 0x05f00, 0x06000, 0x06100, 0x06200, 0x06300, + 0x06400, 0x06500, 0x06600, 0x06700, 0x06800, 0x06900, 0x06a00, 0x06b00, + 0x06c00, 0x06d00, 0x06e00, 0x06f00, 0x07000, 0x07100, 0x07200, 0x07300, + 0x07400, 0x07500, 0x07600, 0x07700, 0x07800, 0x07900, 0x07a00, 0x07b00, + 0x07c00, 0x07d00, 0x07e00, 0x07f00, 0x08000, 0x08100, 0x08200, 0x08300, + 0x08400, 0x08500, 0x08600, 0x08700, 0x08800, 0x08900, 0x08a00, 0x08b00, + 0x08c00, 0x08d00, 0x08e00, 0x08f00, 0x09000, 0x09100, 0x09200, 0x09300, + 0x09400, 0x09500, 0x09600, 0x09700, 0x09800, 0x09900, 0x09a00, 0x09b00, + 0x09c00, 0x09d00, 0x09e00, 0x09f00, 0x0ff00, 0x20000, 0x20100, 0x20200, + 0x20500, 0x20600, 0x20b00, 0x20d00, 0x21300, 0x21600, 0x21700, 0x21d00, + 0x22300, 0x22500, 0x23000, 0x23500, 0x23c00, 0x24000, 0x24a00, 0x25100, + 0x25900, 0x25c00, 0x26500, 0x28c00, 0x29900, 0x2f800, 0x2f900, 0x2fa00, +}; + +static int +cns11643_3_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 >= 0x21 && c1 <= 0x62) || (c1 >= 0x64 && c1 <= 0x67)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if (c2 >= 0x21 && c2 < 0x7f) { + unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); + ucs4_t wc = 0xfffd; + unsigned short swc; + if (i < 6298) { + if (i < 6148) + swc = cns11643_3_2uni_page21[i], + wc = cns11643_3_2uni_upages[swc>>8] | (swc & 0xff); + } else { + if (i < 6590) + swc = cns11643_3_2uni_page64[i-6298], + wc = cns11643_3_2uni_upages[swc>>8] | (swc & 0xff); + } + if (wc != 0xfffd) { + *pwc = wc; + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + diff --git a/graf2d/win32gdk/gdk/src/iconv/cns11643_4.h b/graf2d/win32gdk/gdk/src/iconv/cns11643_4.h new file mode 100644 index 00000000000..e7259920b54 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cns11643_4.h @@ -0,0 +1,61 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CNS 11643-1992 plane 4 + */ + +/* + * The table has been split into two parts. Each part's entries fit it 16 bits. + * But the combined table would need 17 bits per entry. + */ +#include "cns11643_4a.h" +#include "cns11643_4b.h" + +static int +cns11643_4_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 >= 0x21 && c1 <= 0x6e)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if (c2 >= 0x21 && c2 < 0x7f) { + unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); + ucs4_t wc = 0xfffd; + unsigned short swc; + { + if (i < 2914) + swc = cns11643_4a_2uni_page21[i], + wc = cns11643_4a_2uni_upages[swc>>8] | (swc & 0xff); + else if (i < 7298) + swc = cns11643_4b_2uni_page40[i-2914], + wc = cns11643_4b_2uni_upages[swc>>8] | (swc & 0xff); + } + if (wc != 0xfffd) { + *pwc = wc; + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cns11643_4a.h b/graf2d/win32gdk/gdk/src/iconv/cns11643_4a.h new file mode 100644 index 00000000000..ee81576a7af --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cns11643_4a.h @@ -0,0 +1,460 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CNS 11643-1992 plane 4 part a + */ + +static const unsigned short cns11643_4a_2uni_page21[2914] = { + /* 0x21 */ + 0x5a86, 0x1840, 0x1841, 0x185a, 0x75e8, 0x1802, 0x1829, 0x5b0e, + 0x6027, 0x1c02, 0x013e, 0x27dc, 0x5f3c, 0x6075, 0xd128, 0x1d42, + 0x1d6a, 0x2552, 0x6f3c, 0xd175, 0xd178, 0x29c4, 0x2c4c, 0x39ad, + 0x1812, 0x182f, 0x1896, 0x18d0, 0x1b42, 0x1b83, 0xd119, 0x60a5, + 0x60aa, 0x630f, 0x640e, 0x1d83, 0x1db8, 0x659c, 0x659b, 0x6a3c, + 0x2328, 0x71c2, 0x2623, 0x2801, 0x2900, 0x87b4, 0x08b8, 0x376c, + 0x392b, 0x1b88, 0x4879, 0x51b6, 0x1817, 0x5a65, 0x000c, 0x5bb2, + 0x0030, 0x18e2, 0x18db, 0x5e77, 0x5f42, 0x1bad, 0x6033, 0x1bf7, + 0x00da, 0x60af, 0x6236, 0x0113, 0x1d1b, 0x1d88, 0x1d87, 0x6522, + 0x1dcf, 0x1dfd, 0x0163, 0x1de7, 0x20dc, 0x69a3, 0x20d9, 0x2125, + 0x2127, 0x2333, 0x2613, 0x7225, 0x7224, 0x2675, 0x7652, 0x7789, + 0x7abf, 0x05c4, 0x05c3, 0x2ff1, 0x87b5, 0xa24c, + /* 0x22 */ + 0x4552, 0xc714, 0xc712, 0x0001, 0x5aa3, 0x5aa2, 0x1851, 0x186a, + 0x5bb6, 0x190c, 0x5bb5, 0x5bb4, 0x18fe, 0x191b, 0x5bc2, 0x5bb8, + 0x003a, 0x5e79, 0x00ab, 0x1b73, 0x5f08, 0x1b8e, 0x5f7a, 0x5fb6, + 0x60bd, 0x60b7, 0x60bc, 0x00dd, 0x60c4, 0x60c9, 0x1ca5, 0x0115, + 0x1ca7, 0x1ca4, 0x6330, 0x6383, 0x6385, 0x6412, 0x6434, 0x1dbd, + 0x64e4, 0x64de, 0x652a, 0x1e02, 0x65af, 0x65b4, 0x65b3, 0x65b1, + 0x212b, 0x231b, 0x2335, 0x6cde, 0x02a7, 0x02a5, 0x6db8, 0x6db0, + 0x02a6, 0x6fc2, 0x59fd, 0x2617, 0x037c, 0x722a, 0x2670, 0x267d, + 0x03a9, 0x75e9, 0x27e9, 0x7657, 0x0434, 0x0435, 0x77b6, 0x77d7, + 0x77de, 0x04a8, 0x2919, 0x291c, 0x2975, 0x7ac2, 0x7bab, 0x04ff, + 0x29c8, 0x7e8f, 0x05c7, 0x05c6, 0x05c8, 0x7f6d, 0x82b5, 0x06d0, + 0x06d1, 0x87c0, 0x87bf, 0x0859, 0x8bb9, 0x8d1c, + /* 0x23 */ + 0x3412, 0x08bd, 0x8e80, 0x9184, 0x9185, 0x0a28, 0x39b3, 0x9524, + 0x0aa9, 0x3a90, 0x3c36, 0xaa4c, 0x0fcc, 0xb1f6, 0x4881, 0x51b8, + 0xc370, 0x14b4, 0xc375, 0xc717, 0x1823, 0x0016, 0x002c, 0x5bf1, + 0x192e, 0x5bda, 0x1b4f, 0x5fb9, 0x1bba, 0x00df, 0x00e0, 0x1c22, + 0x60ce, 0x60d2, 0x60d0, 0x0117, 0x6243, 0x1caf, 0x1cb0, 0x1cb1, + 0x624d, 0x6334, 0x012f, 0x63d9, 0x1d64, 0x6418, 0x1dd3, 0x6538, + 0x016a, 0x65d7, 0x0170, 0x016d, 0x65dc, 0x65cb, 0x65d6, 0x65d8, + 0x016e, 0x65d1, 0xd13e, 0xd13c, 0x65d2, 0x022b, 0x0228, 0x6a59, + 0x59fd, 0x233f, 0x6ce5, 0x6ce6, 0x0292, 0x6ce8, 0x238b, 0x6dbd, + 0x2391, 0x2395, 0x6dbe, 0x6f49, 0x033f, 0x6fcd, 0x258a, 0x034f, + 0x0374, 0x715e, 0x71d0, 0x037d, 0x7306, 0x03b7, 0x03a3, 0x03b0, + 0x03b1, 0x2687, 0x03ab, 0x737c, 0x7371, 0x75ef, + /* 0x24 */ + 0x043a, 0x0437, 0x280d, 0x0438, 0x0440, 0x778d, 0x77b7, 0x288e, + 0x049f, 0x7933, 0x797f, 0x297a, 0x7bf2, 0x0504, 0x0509, 0x0506, + 0x04fd, 0x050a, 0x0507, 0x7f2a, 0x7f8b, 0x05ca, 0x7f83, 0x7f8a, + 0x2c90, 0x05c9, 0x7f8e, 0x2c9a, 0x82b6, 0x2e3c, 0x2e3a, 0x067f, + 0x2e98, 0x84d8, 0x06d2, 0x8556, 0x87d2, 0x3065, 0xd1db, 0x0743, + 0x87c2, 0x8a87, 0x8a81, 0x8bc2, 0x8bbc, 0x8d23, 0x08c1, 0x8e93, + 0x08c5, 0x09a3, 0x918d, 0x918e, 0x0a2a, 0x0a5f, 0x953b, 0x954d, + 0x0a5d, 0x9534, 0x9531, 0x96f2, 0x96f0, 0x0b17, 0x9a15, 0x9b28, + 0x0b71, 0x0b72, 0x9c25, 0x9de7, 0x0c0f, 0x9de9, 0xa017, 0x40c2, + 0x0d91, 0xa96c, 0xa980, 0xaa4b, 0x0fb2, 0x0fcf, 0x0fce, 0x469e, + 0xafde, 0xaffb, 0x47eb, 0xb051, 0x4889, 0x1096, 0xb201, 0xb202, + 0x4896, 0xb205, 0x4887, 0xb203, 0x1097, 0xc151, + /* 0x25 */ + 0x51c0, 0x148b, 0x51c3, 0xc153, 0xc37a, 0xc378, 0xc376, 0xc379, + 0xc38f, 0xc37c, 0x5578, 0xc71b, 0xc71c, 0x5625, 0x8f92, 0x1875, + 0x1874, 0x5b2e, 0x5b2c, 0x002d, 0x5c0c, 0x1999, 0x5c0b, 0x0050, + 0x004b, 0x5c05, 0x004f, 0x004c, 0xd105, 0x1971, 0x1b53, 0x1bbf, + 0x5fc2, 0x5fc3, 0x1bc0, 0x6048, 0x1bee, 0x6046, 0x00e4, 0x00e3, + 0x60ea, 0x00e1, 0x60eb, 0x00e2, 0x60ee, 0x1c3d, 0x0119, 0x1cbd, + 0x1d0c, 0x62d8, 0x9a1e, 0x63df, 0x63de, 0x0141, 0x4537, 0x644f, + 0x1dc0, 0x015e, 0x660d, 0x6608, 0x0179, 0x6609, 0x1e6e, 0x1e83, + 0x6612, 0x6665, 0x1e5e, 0x1e5d, 0x217e, 0x2179, 0x6a89, 0x217a, + 0x216c, 0x6a84, 0x6a9e, 0x6a8b, 0x0232, 0x2187, 0x6c62, 0x231d, + 0x0294, 0x2346, 0x0297, 0x6cf9, 0x2343, 0x6cf7, 0x0296, 0x0298, + 0x6d06, 0x6ddd, 0x02b2, 0x6dd9, 0x6ddf, 0x6de2, + /* 0x26 */ + 0x02b9, 0x2561, 0x2566, 0x5af1, 0x2590, 0x0375, 0x037f, 0x037e, + 0x2629, 0x038f, 0x723f, 0x723e, 0x730b, 0x03bd, 0x26b2, 0x7383, + 0x03bb, 0x03bc, 0x7386, 0x26c0, 0x767c, 0x043d, 0x043e, 0x0474, + 0x77f7, 0x047a, 0x0476, 0x0478, 0x0475, 0x77fb, 0x793b, 0x04af, + 0x04b0, 0x04c7, 0x04cc, 0x7bf9, 0x7bca, 0x0516, 0x7bff, 0x0512, + 0x051d, 0x7c09, 0x7c03, 0x0515, 0x050f, 0x0514, 0x2a1f, 0x29e2, + 0x7c10, 0x7e9a, 0x7e9f, 0x05b0, 0x05bf, 0x05c0, 0x7f87, 0x05d2, + 0x05d9, 0x82b7, 0x067a, 0x8308, 0x82f9, 0x0681, 0x0682, 0x82f4, + 0x2f16, 0x2ef9, 0x06da, 0xad57, 0x3088, 0x87d6, 0x309b, 0xd1de, + 0x306e, 0x309e, 0x87d4, 0x0822, 0x081f, 0x8a90, 0x8a8d, 0x0821, + 0x3324, 0x8b60, 0x8bce, 0x8bcf, 0x085c, 0x337d, 0x8bd1, 0x087d, + 0x088d, 0x088f, 0x34e6, 0x8eca, 0x34cb, 0x08d0, + /* 0x27 */ + 0x8eb7, 0x08d8, 0x8eb2, 0x8ebb, 0x8eb9, 0x34b5, 0x09a7, 0x919e, + 0x3797, 0x91b2, 0x379b, 0x0a12, 0x936f, 0x93ac, 0x0a2f, 0x9423, + 0x396b, 0x0a2e, 0x0a2c, 0x0a5c, 0x956c, 0x39d5, 0x9532, 0x955e, + 0x0a62, 0x0a67, 0x0ab4, 0x96fb, 0x9929, 0x99bd, 0x9a1f, 0x3c43, + 0x7941, 0x9a1d, 0x3c9c, 0x9b31, 0x9b2f, 0x0bea, 0x9d43, 0x0bfb, + 0x9d41, 0x0c14, 0x9df5, 0x0c13, 0x0c12, 0x0c10, 0x0c11, 0x9df2, + 0x0c86, 0x3ee4, 0x0c98, 0xa01e, 0xa254, 0x0d2a, 0xa256, 0xa329, + 0xa327, 0xa328, 0x41ce, 0x0eb5, 0xa979, 0xa97e, 0xabb6, 0xabb7, + 0x4613, 0x0fd6, 0x0fd8, 0x46b7, 0x0fd9, 0x0fd4, 0x0fd7, 0xd281, + 0x46b9, 0x59fd, 0xad4d, 0x47e4, 0x47fd, 0x480f, 0x1060, 0xb109, + 0xb108, 0x109e, 0x10a1, 0xb21e, 0xb21a, 0xb223, 0xb215, 0xb219, + 0xb216, 0x48bf, 0x48ca, 0xb214, 0xb218, 0x48c1, + /* 0x28 */ + 0x10a0, 0xb51f, 0xb6dd, 0xb6df, 0xc169, 0x51d0, 0x59fd, 0xc16c, + 0x14b9, 0xc393, 0x52ae, 0xc395, 0xc394, 0xc391, 0xc397, 0xc730, + 0x15c1, 0x15c2, 0x5638, 0xd318, 0x001c, 0x5c31, 0x005e, 0x19bc, + 0x0059, 0x005c, 0x5c36, 0x005f, 0x19e9, 0x19bd, 0x19e2, 0x1b58, + 0x5fc9, 0x5fca, 0x00ce, 0x6118, 0x6112, 0x6119, 0x6110, 0x6116, + 0x1cc6, 0x625f, 0x1cc8, 0x62df, 0x6317, 0x1d28, 0x633c, 0x1d29, + 0x63ea, 0x63e9, 0x641c, 0x6458, 0x6464, 0x64f3, 0x015f, 0x6697, + 0x0185, 0x665a, 0x6659, 0x0186, 0x668e, 0x21b4, 0x6abc, 0x21a9, + 0x0287, 0x6d0d, 0x6cfc, 0x6d0c, 0x6e07, 0x6e0a, 0x02ca, 0x6e02, + 0x02c3, 0x6e26, 0x6e08, 0x6e1d, 0x02c2, 0x2568, 0x6f4e, 0x0341, + 0x6fed, 0x6fee, 0x6fef, 0x0380, 0x0381, 0x7250, 0x724c, 0x0393, + 0x0392, 0x724f, 0x03c5, 0x73d4, 0x59fd, 0x73b0, + /* 0x29 */ + 0x0446, 0x0441, 0x0445, 0x0442, 0x043f, 0x76a5, 0x7809, 0x0482, + 0x0481, 0x047f, 0x04a5, 0x292b, 0x04b3, 0x04b5, 0x79f3, 0x79d7, + 0x298d, 0x04da, 0x7adc, 0x04db, 0x050d, 0x2a18, 0x050e, 0x7c0b, + 0x051e, 0x0525, 0x0526, 0x051c, 0x0521, 0x2a57, 0x2a48, 0x0527, + 0x051a, 0x7c3a, 0x7c0d, 0x7c11, 0x2a38, 0x7c20, 0x7c01, 0x0524, + 0x7c37, 0xd1a3, 0x2a71, 0x7eaa, 0x05c1, 0x05e1, 0x7fe7, 0x7fe8, + 0x2d12, 0x05eb, 0x7ff5, 0x05e2, 0x05d7, 0x05e9, 0x8035, 0x7fe6, + 0x2d0a, 0x7ff8, 0x2d23, 0x7ff1, 0x0684, 0x8314, 0x8315, 0x8309, + 0x06b5, 0x06bc, 0x06dc, 0x06de, 0x06df, 0x857b, 0x2f2a, 0x857e, + 0x8766, 0x8767, 0x880a, 0x0754, 0x30e0, 0x30be, 0x0753, 0x0824, + 0x0825, 0x3329, 0x0828, 0x0827, 0x8a9c, 0x8b62, 0x8be1, 0x8bde, + 0x8bdf, 0x8be9, 0x088b, 0x8ee4, 0x8ef7, 0x08dc, + /* 0x2a */ + 0x3543, 0x8eea, 0x8ef6, 0x8f12, 0xd201, 0x37a6, 0x09b2, 0x37c0, + 0x91d9, 0x392f, 0x935f, 0x0a1b, 0x9373, 0x0a32, 0x3971, 0x943f, + 0x9578, 0x0a6b, 0x957d, 0x0a6c, 0x0a6d, 0x9712, 0x0ab9, 0x0aba, + 0x0b09, 0x0b0a, 0x992f, 0x3bea, 0x0b1b, 0x9930, 0x99db, 0x3c20, + 0x0b58, 0x9a29, 0x0b5a, 0xd236, 0x9b40, 0x0b77, 0x9b3d, 0x9b3e, + 0x0b79, 0x3ca9, 0x9b38, 0x3d85, 0x9c48, 0x0beb, 0x9cd0, 0x0bfd, + 0x0bfc, 0x3e06, 0x0c15, 0x0c18, 0x3df6, 0x0c16, 0x0c17, 0x0c19, + 0x3e00, 0x0c1b, 0x9e0e, 0x9e09, 0x3e02, 0x9e07, 0x0c87, 0x9f5f, + 0x9f60, 0x0c9c, 0xa02a, 0x0c9a, 0xa029, 0x0cff, 0x0cfe, 0xa14d, + 0x0d31, 0x0d2e, 0x0d30, 0x0d32, 0xa26c, 0x59fd, 0x0d2f, 0xa267, + 0x0d95, 0x0d96, 0xa339, 0xa334, 0xa459, 0x0dc5, 0x0e7a, 0xa923, + 0x0f42, 0xa982, 0x0f54, 0xa983, 0xa9a8, 0xaa55, + /* 0x2b */ + 0xaaf9, 0xaaf8, 0xaafc, 0xaafa, 0x4609, 0xd27a, 0x0f9f, 0x0fa0, + 0x0fa2, 0x0fe0, 0xad74, 0x0fe1, 0xad6b, 0xad71, 0x0fdf, 0xad76, + 0xb10e, 0x1062, 0x1061, 0xb110, 0xb10f, 0x10a7, 0xb238, 0xb239, + 0xb23a, 0x48da, 0xb237, 0xb23e, 0x490a, 0x1189, 0xb49c, 0xb52a, + 0xb53a, 0xb52b, 0xb528, 0xb6aa, 0xb70f, 0x121d, 0xb710, 0xb8e6, + 0x132a, 0xbd25, 0xbe8e, 0x13d3, 0x1442, 0x1443, 0xc18b, 0x1491, + 0xc18c, 0xc19a, 0x1490, 0x14bf, 0xc3b3, 0x14bc, 0xc3b2, 0x14c0, + 0x15c7, 0x15c5, 0x5655, 0xc744, 0x5652, 0x1835, 0x5b58, 0x5ca7, + 0x1a34, 0x1a01, 0x5c63, 0x1a0a, 0x0066, 0x5c6a, 0x5c65, 0x5c6b, + 0x00ad, 0x5eed, 0x5fd9, 0x613b, 0x6132, 0x1c58, 0x6135, 0x6131, + 0x613e, 0x6143, 0x6136, 0x626d, 0x011d, 0x62e4, 0x0131, 0x1d2b, + 0x63f4, 0x014c, 0x6469, 0x646b, 0x0195, 0x0191, + /* 0x2c */ + 0x0194, 0x66bf, 0x66c3, 0x66ae, 0x018f, 0x1eec, 0x66b1, 0x1f15, + 0x1efe, 0x66bb, 0x66af, 0x66b0, 0x1ee3, 0x1f16, 0x0240, 0x6aef, + 0x0241, 0x6aed, 0x21d3, 0x6af0, 0x6c93, 0x6d34, 0x6d2b, 0x2359, + 0x2427, 0x02d8, 0x02d2, 0x02da, 0x2428, 0x2410, 0x02d7, 0x240e, + 0x0342, 0x0357, 0x7004, 0x7003, 0x7002, 0x25af, 0x7005, 0x25ba, + 0x25b1, 0x7000, 0x7174, 0x0378, 0x0382, 0x0397, 0x7265, 0x7263, + 0x03c9, 0x73d7, 0x03c8, 0x03d6, 0x03cc, 0x73e8, 0x03d0, 0x73db, + 0x73d8, 0x03ce, 0x03c7, 0x26fc, 0x7409, 0x03cf, 0x03cb, 0x26f2, + 0x26fe, 0x73e5, 0x73e7, 0x27f8, 0x763f, 0x0447, 0x76c0, 0x0448, + 0x76b9, 0x76ba, 0x0483, 0x0485, 0x0484, 0x7820, 0x794f, 0x292c, + 0x04b8, 0x04bc, 0x7a91, 0x7a90, 0x7aee, 0x7af3, 0x7aec, 0x7af1, + 0x7aeb, 0x7af2, 0x7af4, 0x7aed, 0x7c41, 0x7c48, + /* 0x2d */ + 0x7c45, 0x0531, 0x0534, 0x0536, 0x2a82, 0x7c7f, 0x7c8b, 0x0523, + 0x7c3b, 0x7c4e, 0x053a, 0x2a91, 0x2a8f, 0x7c7c, 0x05b4, 0x05b5, + 0x05ed, 0x05ec, 0x05d8, 0x7ff0, 0x8036, 0x803f, 0x8043, 0x8031, + 0x8034, 0x8046, 0x05f6, 0x05e7, 0x802f, 0x82c3, 0x067c, 0x067b, + 0x8336, 0x0688, 0x2e47, 0x2e4c, 0x8321, 0xd1c8, 0x2e8a, 0x8473, + 0x06be, 0x84e6, 0x06e7, 0x06e5, 0x06ee, 0x30e1, 0x314a, 0x883f, + 0x0759, 0x075e, 0x886b, 0x075a, 0x313f, 0x0761, 0x0758, 0x075b, + 0x30bd, 0x8871, 0x075f, 0xd1e2, 0x082a, 0x082d, 0x8ab0, 0x0823, + 0x082b, 0x082c, 0x8bf3, 0x087e, 0xd1f5, 0x0893, 0x0899, 0x8d61, + 0x8d5f, 0x08b3, 0x08e7, 0x08ea, 0x8f28, 0x8f1e, 0x8f29, 0xd202, + 0x8eeb, 0x8f66, 0x09b4, 0x91f6, 0x37c9, 0x0a17, 0x9360, 0x9377, + 0x93bb, 0x0a21, 0x93bc, 0x0a38, 0x0a37, 0x0a74, + /* 0x2e */ + 0x0a73, 0x0a75, 0x95a2, 0x95b2, 0x959e, 0x0a76, 0x0a78, 0x973a, + 0x9738, 0x3aba, 0x0b0c, 0x0b20, 0x0b1e, 0x9a4d, 0x0b5b, 0x9a5e, + 0x0b5c, 0x9b17, 0x0b83, 0x3cc6, 0x0b80, 0x0b81, 0x0b7e, 0x0b88, + 0x0b85, 0x0b89, 0x0b7f, 0x0b8e, 0x9b64, 0x9b67, 0x0b84, 0x3cb7, + 0x3d8c, 0x9c59, 0x3d8d, 0x9cda, 0x0bee, 0x0bed, 0x0bfe, 0x9d51, + 0x0bff, 0x9d55, 0x9e3b, 0x9e34, 0x0c23, 0x9e37, 0x3e17, 0x9e31, + 0x3e1c, 0x0c1f, 0x9e3f, 0x9e59, 0x3e14, 0x9f61, 0x0c8f, 0x0c90, + 0xa058, 0xa062, 0xa050, 0x0ca0, 0xa051, 0x0ca6, 0x0c9f, 0xa046, + 0x0ca7, 0x0ca1, 0xa12d, 0x0d02, 0x0d36, 0xa348, 0xa351, 0xa34a, + 0xa34f, 0xa350, 0xa349, 0xa463, 0x0dc8, 0xa466, 0xa460, 0x0dd8, + 0x420c, 0x0ddd, 0x0ddc, 0xa4f1, 0x0dd7, 0xa507, 0x0dda, 0x0eba, + 0xa79b, 0xa7a3, 0xa79d, 0x0ebe, 0x0ec2, 0x0ebb, + /* 0x2f */ + 0x0ec0, 0xa7a9, 0xa7a7, 0xa7a4, 0x4423, 0xa7ba, 0x77c1, 0xa926, + 0x0f43, 0x0f55, 0xa994, 0xa993, 0x0f57, 0x0f68, 0x4598, 0x4590, + 0xab07, 0xab0d, 0xab02, 0xab0c, 0xab09, 0xab08, 0xab13, 0x0fa1, + 0xabd2, 0x463a, 0xac3e, 0xac3c, 0xad67, 0xad9e, 0x0fea, 0xadad, + 0x0fe7, 0xadd9, 0xad42, 0xada3, 0xada0, 0x0fe8, 0x0fe9, 0xad7c, + 0xb004, 0x1054, 0xb058, 0xb060, 0xb0c9, 0xb0c8, 0x4826, 0x1065, + 0xb11c, 0xb11a, 0x108a, 0xb274, 0x10b0, 0xb26e, 0xb26f, 0xb279, + 0x10bc, 0x492e, 0xb277, 0x4955, 0x491a, 0x10b8, 0x493d, 0xb27c, + 0x10b2, 0xb270, 0x4930, 0x10bd, 0xb27a, 0xb282, 0x118a, 0x4b51, + 0x11a1, 0xb544, 0x11a2, 0xb543, 0x4b88, 0xb545, 0x1215, 0xb725, + 0xb71f, 0x1220, 0x1273, 0xb8e8, 0x4d8e, 0x4d8d, 0xb909, 0xb9b7, + 0xb9b9, 0xba64, 0xba63, 0x4e09, 0x4e14, 0x12b1, + /* 0x30 */ + 0xba62, 0xba65, 0x132b, 0xbbac, 0x1345, 0xbd2a, 0x1397, 0x1398, + 0xbe96, 0x13d5, 0xbfc2, 0xd2de, 0x1493, 0x1496, 0x5207, 0x1494, + 0xc1aa, 0xc1b0, 0x14c7, 0x14c5, 0xc3d4, 0xc3cd, 0xc3d6, 0x14c4, + 0xc4f0, 0x5579, 0x5584, 0x15ce, 0x15ca, 0x15cc, 0x5657, 0x15c9, + 0x56ba, 0x59fd, 0xd04b, 0x5b62, 0x006e, 0x5cb7, 0x1a67, 0x5cac, + 0x5cab, 0x0071, 0x5cc1, 0x00bb, 0x00d3, 0x5fe8, 0x6169, 0x615d, + 0x615f, 0x00f3, 0x00ed, 0x00f5, 0x6164, 0x6162, 0x00f1, 0x00f2, + 0x00f6, 0x0120, 0x62f9, 0x0128, 0x62ee, 0x1d18, 0x1d2c, 0x1d59, + 0x63ab, 0x63ac, 0x63aa, 0x1d68, 0x1d7e, 0x6486, 0x647a, 0x1da1, + 0x6728, 0x01a1, 0x1f5b, 0x01aa, 0x01a9, 0x6731, 0x01b5, 0x01a5, + 0x01a8, 0x1f42, 0x01a7, 0x1f47, 0x672d, 0xd143, 0x1f3d, 0x672b, + 0x6732, 0x1f60, 0x21eb, 0x6b29, 0x6b26, 0x6b53, + /* 0x31 */ + 0x024d, 0x6b33, 0x6b34, 0x6c9d, 0x029c, 0x235f, 0x6d41, 0x02ea, + 0x02e5, 0x6e91, 0x6e69, 0x256f, 0x7022, 0x035e, 0x7034, 0xd16d, + 0x712e, 0x0386, 0x0384, 0x71f4, 0x265a, 0x7428, 0x03d9, 0x741c, + 0x03de, 0x7411, 0x7424, 0x7415, 0x03db, 0x7416, 0x7454, 0x7423, + 0x75ff, 0x0431, 0x76cf, 0x76d0, 0x044b, 0x76ce, 0x0449, 0x044a, + 0x044c, 0x77c7, 0x785c, 0x048a, 0x7836, 0x0489, 0x048b, 0x7843, + 0x04bb, 0x29a2, 0x299d, 0x04e4, 0x7b2a, 0x7b01, 0x29a3, 0x7b0b, + 0x7b0f, 0x053b, 0x052e, 0x053e, 0x0546, 0x0553, 0x7cdf, 0x0544, + 0x7cd2, 0x053f, 0x0542, 0x054f, 0x7ccd, 0x0552, 0x054a, 0x2ac2, + 0x7cdb, 0x055a, 0x2aa5, 0x0549, 0x7ccf, 0x2c1c, 0x7ec0, 0x2c1d, + 0x0603, 0x8081, 0x8082, 0x808a, 0x80a8, 0x808c, 0x2d95, 0x2d9a, + 0x0601, 0x0606, 0x05fb, 0x05f9, 0x808e, 0x0605, + /* 0x32 */ + 0x05fa, 0x808b, 0x2da6, 0x8096, 0x05fe, 0x80cc, 0x067d, 0x068c, + 0x834f, 0x834a, 0x2e50, 0x068e, 0x834b, 0x833d, 0x2e52, 0x8344, + 0x8349, 0x849e, 0x84f3, 0x2ec8, 0x84f5, 0x06f0, 0x06f2, 0x85b3, + 0x2f58, 0x06f1, 0x06e6, 0x85e5, 0x85b6, 0xd1d8, 0x3188, 0x8886, + 0x076f, 0x076d, 0x0769, 0x88b6, 0x8885, 0x076e, 0x88ab, 0x082f, + 0x0830, 0x0863, 0x8c0d, 0x8c8b, 0x8c8c, 0x33b8, 0x0880, 0x33b9, + 0x089a, 0x0894, 0x0896, 0x0895, 0x0897, 0x8d72, 0x08f4, 0x08fe, + 0x8f8f, 0x0901, 0x8f79, 0x0902, 0x8f77, 0x08f9, 0x8f90, 0x8f88, + 0x8f80, 0x8f9e, 0x08f6, 0x08f7, 0x8f82, 0x8f34, 0x8f89, 0x08ff, + 0x8f85, 0x8f7e, 0x8f7a, 0x8fa6, 0x360b, 0x8fb5, 0x91f4, 0x09bf, + 0x09bc, 0x3805, 0x9229, 0x9226, 0x922a, 0x09be, 0x09c0, 0x937e, + 0x0a3b, 0x0a39, 0x945b, 0x9461, 0x9460, 0x0a3c, + /* 0x33 */ + 0x959b, 0x3a14, 0x3a04, 0x95c3, 0x0a7d, 0x95cd, 0x0a7f, 0x0a7a, + 0x0a7c, 0x3a05, 0x0a7e, 0x3a15, 0x3a0d, 0x0a80, 0x0abf, 0x0ac3, + 0x9754, 0x9759, 0x0acc, 0x0b0e, 0x0b0d, 0x98f5, 0x0b26, 0x0b24, + 0x0b25, 0x0b23, 0x0b21, 0x0b29, 0x9a69, 0x9a65, 0x0b8f, 0x0b8d, + 0x9b7c, 0x0b8b, 0x0b92, 0x9b80, 0x0b90, 0x9c65, 0x0bef, 0x0bf0, + 0x9cdf, 0x9d60, 0x0c01, 0x9d5e, 0x0c2e, 0x0c2d, 0x3e2e, 0x0c28, + 0x0c29, 0x0c2c, 0x9e8f, 0x9e61, 0x9e5a, 0x3e41, 0x0c88, 0x9f67, + 0x0c92, 0x0c91, 0x3eea, 0x9fbb, 0x3f44, 0x0ca9, 0x0cac, 0x0cae, + 0x0caa, 0x0d06, 0x0d05, 0x0d4a, 0x0d3e, 0x0d3c, 0x0d3b, 0xa29b, + 0x0d42, 0x0d41, 0x0d43, 0xa2a9, 0x0d45, 0xa366, 0x0d9a, 0x0d9b, + 0x0d9f, 0x0d9e, 0xa472, 0xa476, 0xa514, 0x0dde, 0x0de2, 0x0de6, + 0xa50f, 0x4229, 0x0de3, 0x4227, 0x0ddf, 0xa641, + /* 0x34 */ + 0xa646, 0x439d, 0xa64b, 0xa643, 0x0e7e, 0x0ec9, 0x0ecc, 0xa7c6, + 0x0ed1, 0xa7c7, 0x0ed0, 0xa7ce, 0x0ecf, 0x0ec8, 0xa7c9, 0x0ecd, + 0xa7cb, 0xa7c5, 0x0f49, 0x0f47, 0x0f58, 0x0f6b, 0x0f6c, 0x0f6a, + 0xaa69, 0x0f80, 0x0f82, 0x0f84, 0x45c8, 0x0f83, 0xab1e, 0xabba, + 0x0fb6, 0xac52, 0xac51, 0xac53, 0xad9f, 0xaddb, 0x4726, 0x0ff1, + 0xade3, 0x0ff6, 0x0ff3, 0x0ff0, 0x471c, 0xadd7, 0xade9, 0x4728, + 0x0ff5, 0x0ff4, 0x0ff7, 0xadde, 0xaddc, 0xb03c, 0xd28b, 0x1055, + 0xb122, 0xb132, 0xb123, 0x108b, 0x10cb, 0x10c2, 0xb2d4, 0xb2c8, + 0xb2bc, 0x10ca, 0x10cc, 0xb2cd, 0x10c7, 0x10c9, 0x4970, 0xb2be, + 0x10c6, 0xb340, 0xb2d6, 0x10c3, 0x4982, 0xb2bd, 0x49ac, 0xb2ba, + 0x10c4, 0xb2c0, 0xd29b, 0xd29d, 0xb2c1, 0xb4a6, 0xb4a5, 0xb4a8, + 0x11a9, 0x4bad, 0x11a8, 0x11a6, 0xb55f, 0xb570, + /* 0x35 */ + 0xb56a, 0xb565, 0xb567, 0xb56f, 0xb587, 0x4bca, 0x4c51, 0xb73d, + 0xb743, 0x1222, 0xb740, 0x1226, 0x1224, 0x1225, 0x4c9d, 0x122a, + 0x1274, 0xb918, 0x1279, 0x4d90, 0x127a, 0xb919, 0xb9c1, 0x4dd8, + 0x4dd7, 0x1297, 0xb9bc, 0xb9c8, 0x4e2e, 0xba71, 0x12bc, 0xba6e, + 0x12b3, 0xba78, 0x12bf, 0x12b7, 0xd2cd, 0xba7a, 0xbbb1, 0xbbaf, + 0xbbb0, 0x1334, 0x1346, 0x1348, 0x4f59, 0xbca8, 0xbca6, 0x1356, + 0x1367, 0xbd48, 0xbd45, 0x1368, 0x1399, 0x139a, 0xbea0, 0xbea4, + 0x13d8, 0xbfd4, 0x13db, 0x13dc, 0x13dd, 0x13d7, 0xbfd2, 0xc022, + 0x1449, 0x144a, 0x50da, 0xc0b7, 0xc0cc, 0x5233, 0xc1e6, 0x5218, + 0x149a, 0xc1c8, 0x14cd, 0x14ca, 0xc3f4, 0x14cb, 0xc3ed, 0x14cf, + 0xc37e, 0xd2e3, 0x14cc, 0x14ea, 0x14ed, 0xc4f9, 0xc4fd, 0x14e9, + 0xc507, 0x151a, 0x53ef, 0x158d, 0x15d2, 0xc778, + /* 0x36 */ + 0xc77a, 0xc779, 0xc88a, 0x15f2, 0xc97b, 0xcad5, 0xcae9, 0x163d, + 0xcaeb, 0x163e, 0x16f8, 0x1723, 0x58d9, 0x18b4, 0x5b6c, 0x1aa0, + 0x1a90, 0x0075, 0x1a86, 0x1a84, 0x5cfa, 0x1a8a, 0x0076, 0x0073, + 0x1a9f, 0x1aa1, 0x5d18, 0x1a93, 0x00bd, 0x5ff6, 0x1bd5, 0x618a, + 0x6189, 0x00f9, 0x617f, 0x6188, 0x00fa, 0x6183, 0x6184, 0x6198, + 0x6163, 0x6187, 0x0121, 0xd127, 0x0129, 0x62f5, 0x6350, 0x0138, + 0x014e, 0x6487, 0x648a, 0x6565, 0x67b7, 0x67c1, 0x67c7, 0x01c8, + 0x01bc, 0x67c5, 0x67cb, 0x1f90, 0x67d1, 0x01bb, 0x01c2, 0x01c0, + 0x67b8, 0x67ca, 0x01ca, 0x67de, 0x01c9, 0x67ce, 0x01b8, 0x2110, + 0x2217, 0x6b68, 0x024e, 0x6b6b, 0x2244, 0x0250, 0x222b, 0x6b6a, + 0x2245, 0x6b66, 0x6b77, 0x6b96, 0x6b6e, 0xd156, 0x028a, 0x6d57, + 0x2365, 0x6d56, 0x6e9c, 0x6e9e, 0x02fc, 0x02f9, + /* 0x37 */ + 0x6ea1, 0x0363, 0x7042, 0x25cf, 0x7046, 0x703e, 0x7133, 0x0387, + 0x0388, 0x71fa, 0x039a, 0x7297, 0x729b, 0x72aa, 0x2756, 0x7473, + 0x747c, 0x03e9, 0x7486, 0x03ea, 0x2754, 0x0450, 0x76f3, 0x76f0, + 0x0456, 0x0452, 0x044f, 0x0454, 0x0451, 0x76ec, 0x78af, 0x048e, + 0x048f, 0x7864, 0x7868, 0x795a, 0x293d, 0x7b1f, 0x7b25, 0x04ed, + 0x04eb, 0x29a4, 0x7cc6, 0x7cd6, 0x7cc3, 0x0562, 0x7d2c, 0x055d, + 0x7d2e, 0x7d5e, 0x7d33, 0x0561, 0x0565, 0x055c, 0x7d2d, 0x7d46, + 0x055f, 0x7cc1, 0x7d3a, 0x7ecc, 0x809d, 0x8083, 0x80f6, 0x2dec, + 0x0616, 0x060a, 0x80f8, 0x060e, 0x0612, 0x80fe, 0x80f3, 0x0611, + 0x80eb, 0x80fa, 0x0610, 0x8107, 0x80fc, 0x0609, 0x2dfa, 0x0615, + 0x2dd4, 0x8372, 0x8373, 0x8374, 0x0691, 0x0695, 0x0693, 0x0692, + 0x068f, 0x835f, 0x8360, 0x84aa, 0x8534, 0x06f6, + /* 0x38 */ + 0x85b4, 0x06fb, 0x85f0, 0x2f75, 0x06f9, 0x860d, 0x85f3, 0x860f, + 0x301c, 0x077d, 0x88c9, 0x077a, 0x077f, 0x88c5, 0x0778, 0x88d7, + 0x88cc, 0x31d9, 0x88e7, 0x0770, 0x0782, 0x88c1, 0x0784, 0x88e8, + 0x0833, 0x8acb, 0x0832, 0x0836, 0x8ac8, 0x8b7a, 0x0856, 0x8b79, + 0x8b7e, 0x0867, 0x8c1b, 0x0865, 0x0864, 0x0866, 0x8c1f, 0x8c19, + 0x0881, 0x0882, 0x0883, 0x089e, 0x8d89, 0x33f1, 0x089d, 0x8d8b, + 0x090f, 0x0912, 0x9009, 0x8ffe, 0x9000, 0x0910, 0x0918, 0x900b, + 0x0914, 0x0919, 0x3637, 0x59fd, 0x904a, 0x367d, 0x3686, 0x09c8, + 0x09c4, 0x09c6, 0x9279, 0x09c7, 0x09c3, 0x926c, 0x9299, 0xd21b, + 0x9262, 0x9314, 0x0a19, 0x0a1c, 0x93c8, 0x93d7, 0x940c, 0x0a41, + 0x9470, 0x0a42, 0x0a43, 0x9471, 0x95df, 0x95e4, 0x0a82, 0x95e7, + 0x0a81, 0x0a94, 0x0a84, 0x9790, 0x0ad2, 0x0b0f, + /* 0x39 */ + 0x0b22, 0x994c, 0x0b27, 0x0b2a, 0x3bfa, 0x0b28, 0x994f, 0x0b60, + 0x9a7d, 0x9a7e, 0x9a7c, 0x3c72, 0x9a8d, 0x9b19, 0x0b9b, 0x0b9c, + 0x9bc0, 0x0b93, 0x0b94, 0x3cdc, 0x0ba0, 0x0b99, 0x9bb6, 0x0ba1, + 0x9ba8, 0x0bf1, 0x9ceb, 0x9ce7, 0x9d6f, 0x9ec7, 0x0c36, 0x9e9f, + 0x0c37, 0x0c3f, 0x0c3c, 0x9ec4, 0x0c34, 0x0c39, 0x0c3b, 0x0c35, + 0x0c30, 0x0c32, 0x0c38, 0x0c3e, 0x0c3a, 0x9e9b, 0x9e97, 0x9ec5, + 0x9f6b, 0x9fce, 0x0cb6, 0x3f67, 0xa0b1, 0xa0ae, 0xa0b0, 0x0cb3, + 0x0d09, 0x4077, 0xa23e, 0xa2b5, 0xa2ba, 0x0d4c, 0xa2b2, 0xa2b4, + 0x0d53, 0x0d4d, 0x0d51, 0x0d4f, 0x419b, 0xa377, 0x0da2, 0xa386, + 0xa37b, 0x0dcd, 0xa47e, 0xa52e, 0x0de7, 0xa52f, 0x0df0, 0xa537, + 0x0de9, 0x0dec, 0xa532, 0x0de8, 0x0dee, 0x0e02, 0xa536, 0xa539, + 0xa535, 0xa65c, 0x0e82, 0x0e83, 0x0e86, 0xa67b, + /* 0x3a */ + 0xa661, 0xa7ee, 0xa7eb, 0xa7ef, 0xa820, 0x442a, 0x4465, 0x0f4a, + 0xa930, 0x0f5a, 0x4564, 0xa9be, 0x0f6e, 0xaa67, 0xaa7c, 0x0f70, + 0x0f6f, 0xab24, 0x0f8a, 0x0f87, 0x0f88, 0xab29, 0xabef, 0x4620, + 0x0fb7, 0x0ffd, 0x4720, 0xae0d, 0x1005, 0x473c, 0x1008, 0x1003, + 0x1002, 0x1004, 0x0739, 0x1009, 0x0fff, 0xae64, 0x473f, 0xae15, + 0x0ffc, 0x1001, 0x100a, 0x47f0, 0x47f5, 0x106b, 0x106c, 0xb135, + 0xb136, 0xb134, 0xb137, 0xb347, 0xb32b, 0x10de, 0xb341, 0xb343, + 0x10db, 0xb342, 0x10dd, 0x10e3, 0xb332, 0x10e0, 0x10d9, 0x10d8, + 0x10e4, 0xb344, 0xb34a, 0x10da, 0x10ef, 0xd2a0, 0x4a15, 0x49be, + 0xb354, 0xb36e, 0xb352, 0x10d7, 0x11b3, 0x11bb, 0x4be5, 0x11b2, + 0x4bd2, 0x11ad, 0xb592, 0x11af, 0xd2b8, 0x4be0, 0xb5bf, 0x1216, + 0x1228, 0x1223, 0x4cb3, 0xb741, 0xb769, 0xb765, + /* 0x3b */ + 0x1275, 0x127e, 0x127c, 0xb922, 0xb91d, 0xb9d2, 0xb9da, 0xb9db, + 0x12ce, 0x12cd, 0x12cf, 0x4e53, 0xbaa4, 0xba9e, 0x4e37, 0x4e47, + 0x4e5c, 0xba9d, 0x12c4, 0x12cc, 0x12c8, 0x12c7, 0xbaad, 0xbaa6, + 0xbaa7, 0xbbb3, 0xbbe0, 0xbc35, 0xbc37, 0x135a, 0x136a, 0xbd4a, + 0x136b, 0x136d, 0x136f, 0xbe5e, 0x139e, 0xbec0, 0x13a4, 0x13a3, + 0x13e4, 0x13e8, 0x13e9, 0x13e0, 0x13e3, 0xbff9, 0x13ea, 0x13e1, + 0x13ed, 0x1434, 0x1435, 0x1451, 0x50f0, 0xc1f0, 0x149d, 0xc1f3, + 0xc21b, 0xc1f2, 0xc1fb, 0xc41c, 0xc413, 0x14d0, 0xc40f, 0x14ee, + 0xc516, 0xc511, 0xc512, 0x14f2, 0xc50e, 0x541d, 0x1588, 0xc667, + 0xc6f2, 0xc6da, 0x158f, 0xc6dc, 0x15d8, 0xc894, 0xc89b, 0xc892, + 0xc89a, 0xc988, 0xc986, 0x163f, 0xcaef, 0x1652, 0x576b, 0xcb5e, + 0x1650, 0xcc58, 0x16b1, 0xcc56, 0xcc54, 0x16f9, + /* 0x3c */ + 0xcd9b, 0xce96, 0xcea4, 0x1726, 0x1728, 0xce9a, 0xcf12, 0x0080, + 0x1ac0, 0x0081, 0x5d6b, 0x007e, 0x007f, 0x5d37, 0x5d3c, 0xd10a, + 0x5ef7, 0x00be, 0x5f66, 0x00d6, 0x61a9, 0x61ae, 0x61ad, 0x61c8, + 0x61a5, 0x61b0, 0x6295, 0x1ce5, 0x6325, 0x0134, 0x6499, 0x1daf, + 0x6574, 0x6570, 0x656f, 0x6841, 0x6854, 0x01d5, 0x01d8, 0x6840, + 0x6838, 0x01d4, 0x1fd8, 0x01d9, 0x6852, 0x683a, 0x6857, 0xd14a, + 0x6859, 0x2111, 0x2267, 0x6bb4, 0x6bc0, 0x025d, 0x2243, 0x025e, + 0x0259, 0x6b75, 0x025a, 0x02a0, 0x6d60, 0x6d47, 0x0305, 0x6ef0, + 0x0307, 0x6eef, 0x030e, 0x030c, 0x6eec, 0x6f83, 0x0345, 0x6f84, + 0x6f8f, 0x0364, 0x7061, 0x0365, 0x7069, 0x25dd, 0x0366, 0x7062, + 0x0389, 0x03ec, 0x03f1, 0x2770, 0x276a, 0x03f0, 0x03f8, 0x2774, + 0x275f, 0x74ae, 0x2761, 0x2773, 0x74b2, 0x03f2, + /* 0x3d */ + 0x03f4, 0x770b, 0x0458, 0x7710, 0x770d, 0x045a, 0x0459, 0x0457, + 0x045b, 0x2850, 0x787f, 0x7881, 0x04a6, 0x04c2, 0x04c1, 0x293f, + 0x7a0b, 0x7b4e, 0x04ef, 0x29b0, 0x7dea, 0x7d45, 0x0568, 0x2b35, + 0x2b2d, 0x0573, 0x056e, 0x0574, 0x2b02, 0x0566, 0x7d28, 0x7d5d, + 0x7edc, 0x05b9, 0x2c26, 0x7ed4, 0x060c, 0x8164, 0x8168, 0x0620, + 0x8162, 0x061d, 0x8161, 0x061c, 0x8166, 0x0621, 0x061a, 0x0619, + 0x80f2, 0x8169, 0x8167, 0x067e, 0x839a, 0x839b, 0x8385, 0x839c, + 0x069d, 0x83a4, 0x069e, 0x069c, 0x2e6e, 0x8399, 0x8386, 0x8390, + 0x8481, 0x84ae, 0x2eb1, 0x2ed4, 0x06cd, 0x8538, 0x070b, 0x070a, + 0x2f85, 0x893b, 0x078f, 0x3272, 0x0795, 0x0790, 0x0791, 0x894c, + 0x323a, 0x07b9, 0x8947, 0x8935, 0x0797, 0x079e, 0x8933, 0x078b, + 0x8982, 0x8940, 0x083b, 0x083a, 0x083c, 0x083d, + /* 0x3e */ + 0x0839, 0x083e, 0x086b, 0x086c, 0x8c36, 0x8d0e, 0x08a2, 0x08a1, + 0x089f, 0x8dad, 0x8daa, 0x9017, 0x092d, 0x9067, 0x0936, 0x092b, + 0x9072, 0x0937, 0xd20a, 0x9061, 0x90b0, 0x36ad, 0x0925, 0x092f, + 0x092c, 0x906e, 0x9064, 0x0932, 0x908c, 0x9066, 0x3695, 0x906b, + 0x905f, 0x9074, 0x9065, 0x92bb, 0x92be, 0x09d5, 0x92b9, 0x09d4, + 0x09d6, 0x92ef, 0x09d1, 0x3943, 0x93da, 0x0a46, 0x398f, 0x9490, + 0x95e9, 0x0a8c, 0x0a8a, 0x0a88, 0x9611, 0x960d, 0x95ed, 0x9621, + 0x0add, 0x9781, 0x97b1, 0x9901, 0x0b2d, 0x995e, 0x9962, 0x0b2e, + 0x0b2c, 0x0b2b, 0x0b30, 0x995b, 0x0b4e, 0x9a96, 0x9a93, 0x0b64, + 0x0b61, 0x9a92, 0x3c75, 0xd239, 0x0b70, 0x0ba6, 0x0ba4, 0x9bc4, + 0x9bc7, 0x9bc3, 0x0ba8, 0x0ba2, 0x9bc8, 0x0ba7, 0x3cec, 0x0ba5, + 0x9bca, 0x0ba9, 0x9bc5, 0x9bcf, 0x9bdc, 0x9c7c, + /* 0x3f */ + 0x9d01, 0x0c3d, 0x9ed3, 0x9edc, 0x0c44, 0x0c45, 0x0c46, 0x9ed4, + 0x3e57, 0x9ecc, 0x0c47, 0x0c48, 0x0c42, 0x9ed6, 0x9edb, 0x0c41, + 0x9ed5, 0x9fd9, 0x0c94, 0x9fdd, 0x9fdc, 0x9fe0, 0xa0cc, 0x0cc0, + 0x0cb8, 0x0cc1, 0x0cc2, 0x0cbb, 0x0cbd, 0x0cbf, 0x0cb9, 0x0cb7, + 0xa0d2, 0x0cc7, 0xa0d3, 0x0d0c, 0x0d0b, 0x407b, 0x0d10, 0xa18d, + 0x0d5d, 0x4121, 0x0d5a, 0x0d58, 0x0d56, 0xa2d8, 0x0d54, 0x4116, + 0xa2bc, 0x0da8, 0x0da7, 0x0dcf, 0x0dd0, 0xa48a, 0x41e8, 0xa48b, + 0xa48d, 0x0dd1, 0x0deb, 0xa553, 0x0dfb, 0x426a, 0xa559, 0x0dfd, + 0x0df8, 0x0df7, 0x0e00, 0xa556, 0xa557, 0x0df6, 0x425f, 0xa673, + 0xa81b, 0x0edf, 0xa821, 0xa816, 0xa818, 0x0ee2, 0x0ee4, 0xa844, + 0x4482, 0xa826, 0x0ee3, 0xa936, 0x0f59, 0x0f71, 0x0f8e, 0x0f8c, + 0xab3a, 0x0fa4, 0xabf4, 0x4655, 0x1014, 0xae62, +}; + +static const ucs4_t cns11643_4a_2uni_upages[212] = { + 0x03400, 0x03500, 0x03600, 0x03700, 0x03800, 0x03900, 0x03a00, 0x03b00, + 0x03c00, 0x03d00, 0x03e00, 0x03f00, 0x04000, 0x04100, 0x04200, 0x04300, + 0x04400, 0x04500, 0x04600, 0x04700, 0x04800, 0x04900, 0x04a00, 0x04b00, + 0x04e00, 0x04f00, 0x05000, 0x05100, 0x05200, 0x05300, 0x05400, 0x05500, + 0x05600, 0x05700, 0x05800, 0x05900, 0x05a00, 0x05b00, 0x05c00, 0x05d00, + 0x05e00, 0x05f00, 0x06000, 0x06100, 0x06200, 0x06300, 0x06500, 0x06600, + 0x06700, 0x06800, 0x06900, 0x06b00, 0x06c00, 0x06d00, 0x06e00, 0x07000, + 0x07100, 0x07200, 0x07300, 0x07400, 0x07500, 0x07600, 0x07700, 0x07800, + 0x07900, 0x07a00, 0x07b00, 0x07c00, 0x07d00, 0x07f00, 0x08000, 0x08100, + 0x08200, 0x08300, 0x08400, 0x08600, 0x08800, 0x08900, 0x08a00, 0x08c00, + 0x08e00, 0x08f00, 0x09000, 0x09100, 0x09200, 0x09500, 0x09600, 0x09700, + 0x09a00, 0x0ff00, 0x20000, 0x20100, 0x20200, 0x20300, 0x20400, 0x20500, + 0x20600, 0x20700, 0x20800, 0x20900, 0x20a00, 0x20b00, 0x20c00, 0x20d00, + 0x20e00, 0x21100, 0x21200, 0x21300, 0x21500, 0x21600, 0x21700, 0x21900, + 0x21a00, 0x21b00, 0x21c00, 0x21d00, 0x21e00, 0x21f00, 0x22000, 0x22100, + 0x22200, 0x22300, 0x22400, 0x22500, 0x22600, 0x22700, 0x22900, 0x22a00, + 0x22b00, 0x22c00, 0x22e00, 0x22f00, 0x23000, 0x23100, 0x23200, 0x23300, + 0x23400, 0x23500, 0x23800, 0x23900, 0x23a00, 0x23b00, 0x23c00, 0x23d00, + 0x23e00, 0x24100, 0x24200, 0x24500, 0x24600, 0x24700, 0x24800, 0x24900, + 0x24a00, 0x24b00, 0x24c00, 0x24d00, 0x24f00, 0x25000, 0x25100, 0x25300, + 0x25400, 0x25600, 0x25700, 0x25900, 0x25a00, 0x25b00, 0x25e00, 0x25f00, + 0x26000, 0x26200, 0x26300, 0x26400, 0x26500, 0x26600, 0x26700, 0x26800, + 0x26900, 0x26a00, 0x26b00, 0x26c00, 0x27100, 0x27200, 0x27500, 0x27600, + 0x27700, 0x27800, 0x27900, 0x27b00, 0x27c00, 0x27d00, 0x27e00, 0x27f00, + 0x28200, 0x28400, 0x28500, 0x28600, 0x28700, 0x28800, 0x28c00, 0x28e00, + 0x28f00, 0x29000, 0x29100, 0x29200, 0x29400, 0x29500, 0x29600, 0x29a00, + 0x29d00, 0x2f800, 0x2f900, 0x2fa00, +}; + diff --git a/graf2d/win32gdk/gdk/src/iconv/cns11643_4b.h b/graf2d/win32gdk/gdk/src/iconv/cns11643_4b.h new file mode 100644 index 00000000000..6a9823e1aae --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cns11643_4b.h @@ -0,0 +1,668 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CNS 11643-1992 plane 4 part b + */ + +static const unsigned short cns11643_4b_2uni_page40[4384] = { + /* 0x40 */ + 0xb65b, 0xb66a, 0x1011, 0xb668, 0x101b, 0x1012, 0x100e, 0x1015, + 0x3f68, 0x1010, 0xb681, 0x1017, 0x4046, 0x4043, 0x1070, 0x10ed, + 0xbae7, 0x10ee, 0xbae6, 0xbad1, 0xbb11, 0x4181, 0xbad0, 0xbad9, + 0xbb0a, 0x10f4, 0xbada, 0xbadd, 0xbac8, 0xbae2, 0xbae9, 0xbacb, + 0x417c, 0xbacc, 0xbac1, 0x416a, 0xbade, 0x4188, 0x10f2, 0x10f8, + 0x10f3, 0xbb51, 0xbb12, 0x10fa, 0xbae0, 0xbb2b, 0xf6b4, 0xc0d8, + 0xc0d1, 0x4410, 0xc0d2, 0xc0cd, 0x441f, 0x11b6, 0x11b7, 0xc13d, + 0x440f, 0xc0ca, 0x11ba, 0xc0cb, 0x11bc, 0xc0d7, 0xc3f4, 0x123b, + 0x45d3, 0x122f, 0xc487, 0xc48b, 0xc483, 0x1237, 0x1299, 0xc7c5, + 0xc7d2, 0xc7c6, 0xc7d3, 0x12d9, 0x12d8, 0x12d7, 0xc7f0, 0xc7cd, + 0xc7cc, 0xc7dc, 0xc7d6, 0x1336, 0xc9e6, 0xca41, 0xca3f, 0x4987, + 0xcac5, 0xcac0, 0xcac6, 0xcabe, 0xcabf, 0x49c6, + /* 0x41 */ + 0x1370, 0xcb63, 0xccd3, 0xccda, 0xccd5, 0x13a5, 0x13a6, 0x13a9, + 0x13ee, 0x1454, 0xd0ee, 0x1457, 0xd0fc, 0xd214, 0x14a1, 0xd323, + 0xd322, 0xd330, 0xd4b5, 0x14d3, 0xd538, 0x14d4, 0xd53f, 0x14d7, + 0x4dcc, 0x4e6d, 0x4e70, 0x14f7, 0x14f6, 0x14f9, 0x14f8, 0x4f58, + 0x4f42, 0x4f68, 0x4f69, 0xd768, 0xd767, 0x4f43, 0xd765, 0x4f47, + 0x158a, 0xda75, 0xdaf7, 0xdaf3, 0xdaf6, 0x1594, 0xdb00, 0x1593, + 0xdaff, 0xdaf5, 0x529d, 0x15dd, 0x15dc, 0x15f7, 0x53cf, 0xde92, + 0xe006, 0x1642, 0xe007, 0xe06b, 0x1654, 0xe06c, 0x1655, 0xe193, + 0x168f, 0xe194, 0x54f4, 0x16b4, 0x16b3, 0xe262, 0xe263, 0x5509, + 0xe25f, 0xe264, 0xe25b, 0xe259, 0x16fb, 0x16fd, 0xe3a4, 0xe3ac, + 0x55ab, 0x16fc, 0xe4b5, 0x172c, 0x172f, 0xe4ae, 0x172b, 0xe4c5, + 0x1733, 0x1734, 0x55fb, 0xe63b, 0x57ac, 0x57ae, + /* 0x42 */ + 0x57aa, 0x17e8, 0xe8bf, 0xea2b, 0xea84, 0xea80, 0xeb4d, 0xeb4f, + 0x585c, 0xeb4c, 0xed92, 0x195d, 0x1ad2, 0x0085, 0x0088, 0x5fae, + 0x5f79, 0x008e, 0x0084, 0x5f71, 0x1adf, 0x5fb3, 0x0083, 0x5f2c, + 0x5f77, 0x612f, 0x63c3, 0x0102, 0x63cd, 0x0106, 0x0105, 0x63c9, + 0x00fe, 0x0101, 0x0100, 0x63ce, 0x64a5, 0x64a0, 0x64fe, 0x6559, + 0x669a, 0x01e7, 0x1e19, 0x68e4, 0x68d7, 0x68dc, 0x01e6, 0x68e7, + 0x01ed, 0x01e2, 0x01eb, 0x68e5, 0x01e8, 0x01ec, 0x1e0a, 0x0224, + 0x1f9a, 0x6e14, 0x0262, 0x6df1, 0x0261, 0x0260, 0x0264, 0x028b, + 0x6fb6, 0x706e, 0x706c, 0x7081, 0x7142, 0x0319, 0x0316, 0x0318, + 0x0322, 0x711a, 0x031d, 0x0317, 0x031e, 0x7127, 0x7125, 0x7117, + 0x711c, 0x713d, 0x7120, 0x0369, 0x036a, 0x7381, 0x036c, 0x037a, + 0x038a, 0x7509, 0x75c6, 0x75c4, 0x039c, 0x75c5, + /* 0x43 */ + 0x03fd, 0x03f9, 0x76ef, 0x03ff, 0x76df, 0x76de, 0x76ee, 0x76f5, + 0x76ec, 0x03fc, 0x76dd, 0x2385, 0x03fb, 0x0402, 0x045f, 0x2456, + 0x045e, 0x045d, 0x045c, 0x7822, 0x2451, 0x0492, 0x7997, 0x7995, + 0x0494, 0x0495, 0x04d1, 0x7ba9, 0x04f1, 0x7c53, 0x25b1, 0x7c56, + 0x7c55, 0x0577, 0x056f, 0x7de3, 0x7de2, 0x0587, 0x057d, 0x057c, + 0x057e, 0x0585, 0x058b, 0x0586, 0x0580, 0x5dfd, 0x7da9, 0x0578, + 0xf5ab, 0x7e33, 0x7e0a, 0x05ba, 0x8059, 0x0633, 0x81bc, 0x062d, + 0x81c4, 0x81c7, 0x81c6, 0x0637, 0x275a, 0x2763, 0x81b8, 0x81da, + 0x062e, 0x81b7, 0x81c0, 0x063d, 0x81cd, 0x06a0, 0x84bc, 0x84ab, + 0x06a3, 0x8586, 0x299b, 0x875a, 0x29a3, 0x070e, 0x299e, 0x8843, + 0x07b6, 0x89ac, 0x07ab, 0x07ad, 0x07a6, 0x89be, 0x2ab8, 0x07aa, + 0x2aba, 0x07b1, 0x89ab, 0x07a8, 0x07af, 0x07b0, + /* 0x44 */ + 0x07a7, 0x07b2, 0x079d, 0x07a5, 0x07b5, 0x743e, 0x2ac7, 0x2ad7, + 0x8cf9, 0x0841, 0x8cf3, 0x8cf7, 0x2c70, 0x8e45, 0x8e48, 0x0872, + 0x2c9d, 0x086f, 0x0871, 0x8e44, 0x0885, 0x8eaf, 0x8eb1, 0x08a4, + 0x08a5, 0x08a6, 0x8fcf, 0x08a8, 0x8fcb, 0x8fcd, 0x08a3, 0x9050, + 0x91ec, 0x921a, 0x2d16, 0x2d24, 0x91d8, 0x0943, 0x91d0, 0x91d1, + 0x093d, 0x0945, 0x917b, 0x91d2, 0x0944, 0x91d4, 0x91e7, 0x91df, + 0x91de, 0x2d45, 0x91d9, 0x91cf, 0x950d, 0x09e3, 0x2f79, 0x5dfd, + 0x09df, 0x09e4, 0x2f7a, 0x09e5, 0x9538, 0x3054, 0x0a22, 0x0a4a, + 0x98a9, 0x0a49, 0x0a44, 0x0a4b, 0x0a87, 0x0a89, 0x0a92, 0x0a91, + 0x0a90, 0x0a8e, 0x993e, 0x9946, 0x9aed, 0xf630, 0x0b12, 0x0b10, + 0x0b11, 0x9c6c, 0x0b32, 0x0b34, 0x0b37, 0x0b33, 0x0b36, 0x0b35, + 0x0b65, 0x9dac, 0x337c, 0x337b, 0x9ec9, 0x3412, + /* 0x45 */ + 0x0bb0, 0x9f12, 0x0baf, 0x0baa, 0x9efd, 0x9f01, 0x9f11, 0x0bab, + 0x9f89, 0x9f05, 0x9efe, 0x9f0b, 0x9f20, 0x9f04, 0xa088, 0x0bf3, + 0xa102, 0x0bf4, 0xa103, 0x34b6, 0x34e0, 0x0c08, 0x0c4e, 0x0c55, + 0x0c4b, 0xa229, 0xa23b, 0x0c4d, 0x3573, 0xa206, 0x0c52, 0x3572, + 0x0c4c, 0x3570, 0x0c50, 0x0c53, 0xa203, 0x0c51, 0xa378, 0xa379, + 0xa37d, 0x0c89, 0xa37f, 0x0c95, 0x0ccc, 0x0cc8, 0x0cce, 0xa432, + 0x0cca, 0xa400, 0x369d, 0xa422, 0x0ccd, 0xa5a9, 0x0d5c, 0x0d67, + 0x0d69, 0x0d65, 0x0d62, 0xa704, 0x3827, 0x3835, 0xf659, 0x0daa, + 0xa8b8, 0xa99b, 0x0dd2, 0x39a2, 0x0e03, 0x0e0c, 0xaa92, 0x0e09, + 0x0e06, 0x0e05, 0x3989, 0xaa8f, 0x0e0b, 0x0e08, 0xaa98, 0x39a5, + 0xaaae, 0x0e8e, 0xad9d, 0x3ab6, 0x0ee8, 0xaf49, 0xaf50, 0xaf46, + 0x0eea, 0xaf4e, 0x3ba5, 0x3bc3, 0xaf55, 0x0ee9, + /* 0x46 */ + 0x0eeb, 0xaf64, 0x0ef0, 0xb138, 0x0f4b, 0x3dab, 0x0f73, 0x0f75, + 0x0f92, 0x0f91, 0x0f93, 0x3e25, 0x0fa7, 0x0fa6, 0x0fa8, 0x0faa, + 0xb3fe, 0x0fa9, 0x3e59, 0x0fbb, 0x0fbc, 0x0fba, 0x0fbd, 0x1027, + 0x3f85, 0xb6a6, 0x1024, 0x101e, 0x101f, 0x101d, 0x1020, 0x1023, + 0x1029, 0x1022, 0xb69c, 0xb699, 0x101c, 0x3f8e, 0x1028, 0xb6b5, + 0xb6a3, 0xb6a0, 0xb6a7, 0xb69b, 0xb8df, 0xb8e1, 0x1071, 0x1073, + 0x1072, 0xb94d, 0x1102, 0xbbf3, 0xbb6f, 0xbb69, 0x10fe, 0x41be, + 0xbb6b, 0xbb78, 0xbb87, 0x1108, 0xbb85, 0xbb82, 0xbb90, 0x1107, + 0x1104, 0xbb80, 0xbb67, 0x1100, 0x10fc, 0xbb61, 0x1144, 0xbb93, + 0x10f1, 0xbbf2, 0xbb86, 0x41a6, 0x1106, 0xbfcd, 0xbfc4, 0x11c6, + 0x11c3, 0x11c1, 0x11c2, 0xc10f, 0x11c4, 0x11c7, 0xc10d, 0x11bf, + 0x11d2, 0xc173, 0x11ca, 0xf6ba, 0xc10a, 0x442f, + /* 0x47 */ + 0xc108, 0xc113, 0x1213, 0xc3f8, 0x1230, 0x123e, 0x1239, 0xc4ab, + 0xc4a8, 0x123c, 0x123f, 0xc4a5, 0x1234, 0x123d, 0xc4c3, 0xc4a4, + 0x1238, 0xc4d4, 0xc4ba, 0xc5f1, 0x46a0, 0x1282, 0xc63f, 0x1283, + 0xc6ea, 0x129b, 0xc7f7, 0x12e0, 0x12dd, 0xc7fa, 0xc7f5, 0x12de, + 0xc7fe, 0x12e3, 0x12e5, 0xc800, 0x4797, 0x12e2, 0xc802, 0xc7fb, + 0xc807, 0x12df, 0xc81a, 0x132e, 0xc9b8, 0x1337, 0x1338, 0xc9e9, + 0xc9eb, 0xca50, 0xca4f, 0x498b, 0xcb86, 0x0162, 0xcb8e, 0x1394, + 0x1393, 0x13ab, 0x13ad, 0xccf0, 0xccfb, 0x13f5, 0x13f7, 0xce42, + 0x13f6, 0x13f8, 0xce85, 0x13fb, 0x13f9, 0x1458, 0x145a, 0xd105, + 0x1459, 0x4c0f, 0x1485, 0x14a4, 0x14d8, 0x14d9, 0xd54b, 0x14dd, + 0x14c8, 0xd563, 0x14fa, 0x14fb, 0x4f75, 0x1527, 0x4f9f, 0x152a, + 0x1525, 0xd799, 0x1528, 0xda81, 0xdb17, 0xdb10, + /* 0x48 */ + 0xdb12, 0x52a6, 0x1595, 0x539a, 0xdcfa, 0xdcf3, 0xdcf2, 0xdcf5, + 0xdcf6, 0xddbb, 0xddc2, 0xdea7, 0x160f, 0x1611, 0xdea8, 0xdea3, + 0x1610, 0xdeaa, 0x1615, 0x1613, 0x5457, 0xdfdc, 0x1647, 0x1646, + 0xe00f, 0x1659, 0x165b, 0xe079, 0x165e, 0xe07f, 0xe085, 0x165a, + 0x1691, 0x1692, 0x1690, 0x1693, 0xe21b, 0x54f7, 0x16be, 0xe277, + 0xe276, 0xe298, 0x16bc, 0x16bb, 0x16b7, 0x16b9, 0xe27a, 0x1701, + 0x16fe, 0xe3bc, 0xe3ba, 0x1702, 0xe3b6, 0x16ff, 0x55b0, 0xe3b4, + 0x1700, 0xe4cf, 0x1737, 0x173a, 0x176f, 0x1777, 0x1779, 0x56c6, + 0xe67b, 0x17c8, 0xe81c, 0xe821, 0xe81d, 0xe8c0, 0x17f2, 0xe8ff, + 0x17f1, 0x17f0, 0x5862, 0xeb56, 0x1834, 0xeda1, 0xeda2, 0xeda6, + 0xf056, 0xf057, 0x192c, 0x192d, 0xf101, 0xf1ed, 0xf71c, 0xf3f2, + 0x1afa, 0x5fb8, 0x0091, 0x5fc0, 0x0094, 0x5fb7, + /* 0x49 */ + 0x5fe1, 0x00c4, 0x010a, 0x63e8, 0x1c85, 0x64b2, 0x0152, 0x66ae, + 0x0159, 0x026f, 0x697e, 0x01f2, 0x01f4, 0x1e43, 0x6976, 0x01f1, + 0x1e3c, 0x6996, 0x026a, 0x6e20, 0x6e21, 0x6e23, 0x6e29, 0x7077, + 0x7151, 0x0324, 0x7156, 0x0323, 0x7188, 0x7159, 0x7155, 0x0327, + 0x7297, 0x7298, 0x036d, 0x21ed, 0x036e, 0x036f, 0x73a1, 0x73a3, + 0x2235, 0x039f, 0x040a, 0x0406, 0x040e, 0x770a, 0x040d, 0x0405, + 0x773d, 0x770c, 0x040b, 0x0410, 0x042e, 0x783d, 0x7839, 0x79b0, + 0x79b2, 0x79ae, 0x0496, 0x0497, 0x04c4, 0x2547, 0x04c5, 0x7b20, + 0x04d2, 0x7c6e, 0x7c6d, 0x7c6a, 0x0581, 0x7e32, 0x058e, 0x0590, + 0x058f, 0x7e39, 0x0591, 0x0595, 0x0593, 0x7da3, 0x266d, 0x7e7f, + 0x7e35, 0x7e3d, 0x7ff4, 0x7ff5, 0x063b, 0x0648, 0x8248, 0x8228, + 0x0646, 0x0647, 0x8227, 0x8232, 0x822c, 0x064c, + /* 0x4a */ + 0x822e, 0x064a, 0x0650, 0x0643, 0x8223, 0x8231, 0xf5c5, 0x0649, + 0x06a6, 0x06a5, 0x06a4, 0x84c9, 0x8589, 0x06b9, 0x85bb, 0x06ce, + 0x06cf, 0x0713, 0x8897, 0x8893, 0x8a28, 0x07c6, 0x07c5, 0x07ca, + 0x07d9, 0x07c1, 0x8a18, 0x8a3b, 0x2af5, 0x8a27, 0x8a24, 0x8a1b, + 0x8a31, 0x07cb, 0x8a26, 0x8aa3, 0x8a3f, 0x8a22, 0x8a19, 0x2b03, + 0x8a41, 0x8a2b, 0x2b65, 0x0842, 0x8d0c, 0x2c75, 0x0874, 0x0873, + 0x8e4e, 0x8eb9, 0x8efa, 0x8fe9, 0x8fe8, 0x8fe4, 0x2d8a, 0x2d56, + 0x0952, 0x925f, 0x925d, 0x9252, 0x0950, 0x9274, 0x094b, 0x9246, + 0x094c, 0x096d, 0x92aa, 0x2d98, 0x924a, 0x9259, 0x924b, 0x094f, + 0x2d68, 0x09f0, 0x9550, 0x3034, 0x3045, 0x0a4d, 0x0a4c, 0x98d0, + 0x0a4f, 0x0a4e, 0x0a50, 0x98cc, 0x315c, 0x0a96, 0x3156, 0x9964, + 0x9965, 0x0a97, 0x0a95, 0x0a98, 0x995c, 0x9b15, + /* 0x4b */ + 0x0aec, 0x0aeb, 0x0b13, 0x0b14, 0x0b38, 0x0b3a, 0x0b39, 0x9c79, + 0x0b68, 0x0b67, 0x9dc5, 0x9db8, 0x9f2c, 0x0bbe, 0x0bbc, 0x9f37, + 0x9f35, 0x9f31, 0x0bbb, 0x9f2f, 0x0bba, 0x9f2b, 0x0bb9, 0x0bb7, + 0x9f2d, 0x9f2a, 0x0bc1, 0xa095, 0x0bf7, 0xa23e, 0x0c60, 0xa247, + 0xa245, 0x0c59, 0x0c5c, 0x0c5a, 0x0c58, 0xa252, 0x0c5b, 0xa270, + 0xa250, 0xa258, 0xa251, 0xa23d, 0x0c5d, 0xa241, 0xa20c, 0xa23c, + 0xa386, 0xa383, 0xa389, 0xa3f3, 0x0cd4, 0x0cd3, 0x36bf, 0x0cd2, + 0x36bd, 0xa42d, 0x0cd7, 0x0cd1, 0x36e4, 0x0cd5, 0xa5c5, 0xf655, + 0x0d6d, 0x0d6f, 0x3834, 0x0d75, 0x0d6c, 0x0d74, 0xa743, 0x0d73, + 0xa737, 0xa745, 0x3836, 0x0dac, 0xa8e5, 0xa9a6, 0xaadb, 0x0e10, + 0xaada, 0xaae6, 0x39ba, 0x39bc, 0x0e0f, 0x39c8, 0x0e23, 0x39c3, + 0x0e1d, 0x39b6, 0x0e0e, 0xaaf8, 0xaae9, 0x0e15, + /* 0x4c */ + 0x39c2, 0x0e13, 0xaae8, 0xaaf6, 0x0e1b, 0x39c5, 0x0e22, 0x0e26, + 0xaae7, 0x39bd, 0x39b0, 0x0e21, 0x0e1c, 0x0e17, 0xaad5, 0x0e1a, + 0x39bb, 0xadd3, 0xadc7, 0xadd1, 0x0e99, 0xadc3, 0x0e97, 0xaf80, + 0xaf98, 0x0efd, 0xaf84, 0x0ef6, 0x0efe, 0x0ef5, 0x0eff, 0x0ef7, + 0xaf97, 0xaf83, 0xaf81, 0x0f01, 0x3c04, 0xaf8c, 0xb142, 0xb2ab, + 0x0f77, 0xb2a3, 0xb2a6, 0xb35c, 0xb369, 0xb367, 0x0fab, 0xb48b, + 0xb4a8, 0x0fc0, 0xb6d8, 0x1031, 0x102e, 0xf689, 0xb6dc, 0x102c, + 0xb6e0, 0xb6e5, 0x1032, 0x102f, 0x102b, 0x102d, 0x1033, 0xb818, + 0xb819, 0x3ff1, 0x1057, 0x105c, 0x107b, 0xb95f, 0xb95e, 0x107a, + 0xbc02, 0x4222, 0x1113, 0x111e, 0x1117, 0x1120, 0x112a, 0x1111, + 0x1115, 0x110f, 0x1118, 0x4238, 0xbc12, 0xbc36, 0x112c, 0x4232, + 0xf6a8, 0x4210, 0xbc23, 0xbc03, 0x111c, 0xbc00, + /* 0x4d */ + 0x1129, 0xbc46, 0xbc61, 0x1112, 0x424f, 0x1197, 0xc184, 0x4472, + 0xc16b, 0xc162, 0xc156, 0xc16a, 0xc152, 0xc155, 0x11d4, 0x11d0, + 0x447c, 0xc161, 0xf6bb, 0xc158, 0xc177, 0x11d3, 0x1214, 0xc4d7, + 0x1246, 0x1245, 0xc4de, 0x1243, 0xc4df, 0x460d, 0x1244, 0x1248, + 0xc4d1, 0x1247, 0xc4e2, 0xc4e1, 0xc4dd, 0x4608, 0x1249, 0x1285, + 0xc64b, 0x1284, 0xc64e, 0x129d, 0xc6fc, 0x129e, 0x12a0, 0xc6fa, + 0x129c, 0xc6fb, 0x129f, 0xc6fe, 0x12f7, 0x12ea, 0xc831, 0x12ef, + 0x12e9, 0x12f3, 0x12f0, 0x12eb, 0xc838, 0x12ec, 0x12f2, 0x12f5, + 0x12ee, 0xc83a, 0xc9bb, 0x133a, 0x134b, 0xca59, 0x134a, 0x134c, + 0xcadb, 0xcadf, 0xcae2, 0x1379, 0x137b, 0x1378, 0xcb9e, 0xcba1, + 0x13b5, 0xcd10, 0x13b4, 0x13b7, 0x4a9e, 0x1409, 0x13fe, 0x1408, + 0x1407, 0xce76, 0xce7f, 0xce7d, 0x1406, 0x1404, + /* 0x4e */ + 0x1405, 0x13ff, 0x140b, 0xce82, 0xd057, 0x143b, 0x145d, 0x145c, + 0x145f, 0x145e, 0x4c28, 0xd12e, 0x4c21, 0x1483, 0xd38b, 0xd38d, + 0x14a7, 0x4d66, 0x4d6c, 0xd390, 0x14a8, 0xd4ec, 0xd56f, 0xd56b, + 0xd571, 0xd578, 0x4df6, 0x14e0, 0x14df, 0x14fe, 0x14fc, 0x14ff, + 0x14fd, 0xd7ad, 0x152c, 0x4fec, 0x4fba, 0x4fe3, 0x4fbd, 0x159d, + 0xdb2f, 0x52b4, 0xdd78, 0x1640, 0xdff8, 0xe019, 0x165f, 0xe09b, + 0xe094, 0xe097, 0xe099, 0xe1a6, 0xe1a4, 0xe1a7, 0x54d1, 0xe295, + 0x16c0, 0x5523, 0xe290, 0x16c1, 0x16c6, 0xe29b, 0xe3c4, 0x1704, + 0x1705, 0xe3c6, 0x560b, 0x173e, 0x173d, 0x1740, 0x173f, 0xe4e3, + 0x1742, 0xe4df, 0xe4dd, 0xe4e7, 0x1784, 0x1782, 0x177f, 0x1785, + 0xe82d, 0xe82c, 0x17cc, 0x57b2, 0x17cb, 0x17cd, 0xe834, 0xe838, + 0x57db, 0xe91d, 0x17f5, 0xe91a, 0xe91b, 0xe914, + /* 0x4f */ + 0x57f0, 0xe917, 0xea21, 0x1820, 0x1821, 0xeaaa, 0xeaa1, 0x1837, + 0x183e, 0x5873, 0x183d, 0x586e, 0xeb63, 0xeb79, 0xeb60, 0x5865, + 0xeb62, 0x183c, 0xeb61, 0x1838, 0x586a, 0xeb70, 0x586d, 0xeb6a, + 0x183b, 0xedc8, 0x18b0, 0xedc5, 0xedbe, 0xedc2, 0x18ad, 0x18b2, + 0x18b8, 0x5a0b, 0xedc7, 0x18af, 0xedb0, 0xedca, 0x191a, 0x5b76, + 0x1920, 0x1921, 0x1930, 0x5ba8, 0x192f, 0xf10d, 0xf107, 0xf196, + 0xf1ef, 0x195f, 0x1960, 0xf21e, 0xf21d, 0x5c11, 0xf390, 0x5feb, + 0x008a, 0x1b19, 0x009c, 0x5fee, 0x009a, 0x5fef, 0x5fec, 0x63fa, + 0x010c, 0x010b, 0x010d, 0x1c92, 0x6504, 0x69d3, 0x01fe, 0x69d1, + 0x69fa, 0x01ff, 0x01fb, 0x01fc, 0x0209, 0x69c8, 0x0200, 0x69d5, + 0x1e75, 0x69cd, 0x69d2, 0x69fb, 0x6c2a, 0x6e88, 0x6e61, 0x0271, + 0x6e63, 0x6e62, 0x206f, 0x5e57, 0x71c8, 0x7198, + /* 0x50 */ + 0x032b, 0x73c1, 0x773f, 0x7741, 0x0414, 0x0411, 0x0412, 0x7852, + 0x0463, 0x785e, 0x046e, 0x049a, 0x79c7, 0x049b, 0x7a70, 0x7b27, + 0x04c8, 0x7b71, 0x7bb0, 0x04f6, 0x7e42, 0x7e43, 0x26a5, 0x058c, + 0x0597, 0x05a2, 0x26a0, 0x7e57, 0x7e9d, 0x8289, 0x828d, 0x828b, + 0x8280, 0x8292, 0x828a, 0x82c8, 0x0654, 0x828f, 0x8293, 0x8291, + 0x06a8, 0x84f2, 0x84de, 0x06a9, 0x85c8, 0x28b4, 0x28d8, 0x29c2, + 0x0718, 0x0717, 0x071d, 0x87a7, 0x87a1, 0x0731, 0x8a8c, 0x8a7f, + 0x07d8, 0x07d5, 0x8a7b, 0x8a95, 0x8a99, 0x07e1, 0x8a8e, 0x07d4, + 0x8ada, 0x8a8a, 0x8a9c, 0x07e3, 0x8a7e, 0x0844, 0x0845, 0x8d1a, + 0x8e55, 0x0876, 0x0875, 0x8e60, 0x2ca8, 0x0888, 0x08aa, 0x8ffb, + 0x08ab, 0x08ac, 0x8ffd, 0x0957, 0x2d83, 0x0960, 0x095d, 0x096b, + 0x92d0, 0x0963, 0x0967, 0x92c5, 0x095e, 0x92d2, + /* 0x51 */ + 0x9311, 0x2dc5, 0x2fcd, 0x09f9, 0x09f3, 0x95ad, 0x95a4, 0x95a9, + 0x95b0, 0x959d, 0x09f6, 0x9798, 0x309c, 0x0a51, 0x0a53, 0x0a52, + 0x9992, 0x0a9b, 0x998a, 0x0a9c, 0x998d, 0x9996, 0x0af7, 0x3299, + 0x328f, 0x3291, 0x9b45, 0x9b4b, 0x9c0f, 0x9c16, 0x0b3b, 0x9c8a, + 0x0b3e, 0x0b3d, 0x9dc9, 0x0b69, 0x9dc8, 0x9dca, 0x9f64, 0x0bc3, + 0x0bc4, 0x0bc7, 0x9f5d, 0x9f63, 0x3439, 0x0bc6, 0x342e, 0x0bc8, + 0x9f88, 0xa03a, 0xa039, 0x349f, 0x34a0, 0x0be6, 0x0bf8, 0xa117, + 0xa193, 0x0c07, 0xa195, 0x0c64, 0x0c68, 0xa276, 0x3594, 0x0c65, + 0x35ae, 0xa280, 0xa27b, 0x0c69, 0xa248, 0xa2a8, 0xa288, 0xa38b, + 0xa38a, 0xa38c, 0xa3fc, 0x0cda, 0x0ce0, 0x36e6, 0xa458, 0x0cde, + 0xa451, 0xa455, 0xa453, 0x0d1c, 0x0d1d, 0x0d1a, 0xa5dc, 0x0d7b, + 0x0d7a, 0x0d7c, 0xa75c, 0x0d78, 0x0d77, 0xa765, + /* 0x52 */ + 0xf65a, 0x0db1, 0xa8ee, 0x0db2, 0x0db0, 0xa8f0, 0x38bc, 0xa8f2, + 0x0e36, 0xab35, 0x0e2e, 0xab22, 0x39d6, 0xab20, 0x0e34, 0xab2d, + 0xab28, 0xab26, 0xab3c, 0x0e2a, 0xab38, 0x0e33, 0x0e2d, 0x0e2f, + 0x0e31, 0x0e2b, 0x0e32, 0xab2a, 0x0e35, 0xab1a, 0xab30, 0xaae3, + 0xab19, 0xade9, 0xade7, 0x3acf, 0xafd6, 0xafc4, 0x0f08, 0xaf87, + 0x0f06, 0xafc7, 0xafd9, 0x3c18, 0xafdf, 0x0f4d, 0x0f61, 0xb20a, + 0xb201, 0xb2b1, 0x0f78, 0xb2c1, 0x0f94, 0x0f95, 0xb376, 0xb40d, + 0xb40e, 0x0fc1, 0x0fc3, 0x3e6d, 0xb707, 0x1039, 0xb709, 0xb716, + 0x103a, 0x103b, 0x1035, 0x1036, 0xb70e, 0x103c, 0x3f90, 0xb706, + 0xb81e, 0xb84a, 0x1058, 0x107c, 0x107d, 0x108d, 0x108c, 0xbca6, + 0xbc91, 0x113b, 0x113f, 0xbcb8, 0xbc96, 0x1132, 0x112d, 0xbcc5, + 0x112f, 0x1139, 0x112e, 0x113a, 0xbd0a, 0x1136, + /* 0x53 */ + 0x1131, 0x113e, 0x1138, 0x4252, 0x1134, 0xbcb2, 0x1141, 0xbcb7, + 0xbcb4, 0xbc89, 0xbc8d, 0x1130, 0xbc87, 0xbcc2, 0xbc9c, 0xbc92, + 0x1143, 0xbcca, 0x4250, 0xbc8a, 0xbfe0, 0x1198, 0xbfe6, 0xbfe5, + 0x44a0, 0xc1a5, 0xc1b3, 0x4486, 0x11da, 0x11d7, 0xc1b5, 0xc1af, + 0x4495, 0xc1b0, 0xc1cc, 0x448c, 0xc1a2, 0xc1be, 0xc1c6, 0xc1ac, + 0xc1ae, 0x1218, 0x4560, 0xf6c3, 0xc508, 0xc505, 0x1252, 0x4628, + 0xc4fe, 0x124e, 0x4620, 0xc500, 0x124f, 0x1250, 0xc664, 0xc668, + 0x46a8, 0x1286, 0x1287, 0x1289, 0xc66a, 0xc669, 0xc70d, 0xc712, + 0x12a2, 0x12a3, 0xc70f, 0x12a1, 0xc867, 0xc879, 0xc872, 0xc866, + 0xc87c, 0x12f9, 0x12fd, 0xc868, 0xc885, 0xc876, 0xc874, 0xc871, + 0xc864, 0x133e, 0x133c, 0xc9f8, 0x134d, 0xca6c, 0x134e, 0xcaeb, + 0x1381, 0x1383, 0x1382, 0xcbb8, 0x1380, 0x1388, + /* 0x54 */ + 0xcd2d, 0xcd2e, 0xcd28, 0xcd29, 0xcd31, 0x13b9, 0xcd2f, 0xcd2a, + 0x4b3a, 0xcea4, 0xceb7, 0xcebf, 0x1411, 0x140d, 0x1410, 0x1413, + 0xd063, 0x143c, 0x1462, 0x1463, 0xd167, 0xd3be, 0xf6e0, 0xd595, + 0xd59c, 0x1503, 0x1506, 0x1502, 0x1501, 0xd671, 0xd672, 0x1505, + 0xd66f, 0x4e94, 0x5011, 0xd7f1, 0x5037, 0x1536, 0xd7e8, 0x1535, + 0x5043, 0xf6ea, 0x15a1, 0x15a3, 0xdb49, 0xdb64, 0x15a0, 0xdb48, + 0x15ea, 0x53a6, 0x15e8, 0xdd2c, 0xdde1, 0xddef, 0xdec0, 0x1621, + 0x161b, 0xded7, 0xded4, 0x1649, 0x1648, 0xe0ad, 0x5495, 0x1662, + 0x1661, 0x1664, 0x1660, 0x1663, 0xe0ae, 0xe0ac, 0x5496, 0x1666, + 0x16ac, 0x16ab, 0xe227, 0xe2ae, 0x16c3, 0xe2b0, 0x16c4, 0x5525, + 0xe2c0, 0xe2c4, 0x1708, 0x1709, 0x170a, 0x1706, 0x1707, 0x1741, + 0xe507, 0x1745, 0xe4fd, 0x1743, 0x1744, 0x5626, + /* 0x55 */ + 0x5634, 0x1747, 0xf704, 0xe61b, 0xe61c, 0x1771, 0xe6b2, 0xe6b4, + 0xe6b7, 0xe6b1, 0xe6b3, 0xe6ae, 0x178b, 0x17d4, 0x17d3, 0x17d1, + 0x57ba, 0x17d2, 0xe83f, 0xe936, 0x17f7, 0x17f8, 0xe931, 0xe93b, + 0xe935, 0xe93a, 0xe937, 0xea22, 0xea36, 0xea32, 0x1822, 0xeac0, + 0x1845, 0x1841, 0x5881, 0x1840, 0x588a, 0xeb85, 0x587f, 0x1842, + 0xeb89, 0x18c1, 0x18c5, 0xede1, 0x18bb, 0x18b9, 0x18bd, 0x18c9, + 0xee0a, 0x5a11, 0xee09, 0x18bf, 0x18c7, 0xede8, 0x18c3, 0x1924, + 0x1931, 0x1933, 0xf118, 0x1932, 0x1934, 0x1952, 0x1961, 0x5bd9, + 0x197a, 0x1982, 0x5c3c, 0xf3c5, 0x1b23, 0x600d, 0x600c, 0x6021, + 0x1b2c, 0x6216, 0x640e, 0x010f, 0x1c95, 0x6417, 0x0123, 0x0125, + 0x6a48, 0x0206, 0x0208, 0x1e88, 0x6a55, 0x6a49, 0x6a4c, 0x1e8b, + 0x6a4f, 0x6a3d, 0x027a, 0x0277, 0x6e8a, 0x6ea8, + /* 0x56 */ + 0x708a, 0x032e, 0x71cb, 0x032f, 0x71d5, 0x78d4, 0x041b, 0x0413, + 0x775c, 0x7775, 0x0466, 0x7861, 0x0465, 0x7096, 0x04f7, 0x7c8a, + 0x7ed0, 0x26e1, 0x26d7, 0x7e49, 0x7ecf, 0x059c, 0x82d6, 0x827f, + 0x0653, 0x82d2, 0x82cf, 0x8506, 0x8509, 0x06ba, 0x28a3, 0x0722, + 0x29d3, 0x8b06, 0x8af1, 0x8b04, 0x2b8b, 0x8afa, 0x8af4, 0x07eb, + 0x07dd, 0x8af9, 0x07ef, 0x8a8b, 0x8b03, 0x0847, 0x0846, 0x8da2, + 0x0878, 0x2cac, 0x0889, 0x900c, 0x900b, 0x0968, 0x0976, 0x0974, + 0x0979, 0x9324, 0x097a, 0x0977, 0xf614, 0x0971, 0x9325, 0x0972, + 0x95f6, 0x09ff, 0x95fb, 0x0a05, 0x9732, 0x97fb, 0x0a54, 0x98f2, + 0x98f3, 0x0a9e, 0x0a9f, 0x3174, 0x999c, 0x9b72, 0x0afa, 0x9b74, + 0x0b44, 0x0b3f, 0x0b40, 0x9c86, 0x0b42, 0x9c8e, 0x9c90, 0x0b51, + 0x9ccd, 0x9cf7, 0x9dd6, 0x9f84, 0x9f95, 0x9f8a, + /* 0x57 */ + 0x3440, 0x0bca, 0x9f97, 0x3441, 0x0bce, 0x0bc9, 0xa0a0, 0xa0a1, + 0xa122, 0xa1a6, 0xa1a4, 0x0c09, 0x34e8, 0x0c6c, 0x0c6e, 0x0c70, + 0x0c6d, 0x0c6b, 0x0c71, 0x0c72, 0xa2af, 0xa2b0, 0xa2bd, 0x0c8c, + 0x0ce4, 0xa476, 0x0ce1, 0xa47b, 0xa479, 0x36f6, 0x0ce7, 0x3700, + 0x0ce2, 0x0d1f, 0xa5ee, 0xa5f1, 0x0d7e, 0xa794, 0x0d80, 0x3859, + 0x3855, 0xa791, 0x0db9, 0x0db7, 0x0db8, 0xa910, 0x0dba, 0x38f4, + 0xa9af, 0x0dd3, 0x0e3f, 0x3a04, 0x0e45, 0x0e41, 0x3a15, 0x0e42, + 0x0e43, 0x0e3b, 0x0e38, 0xab7b, 0xab77, 0x0e3a, 0x39f5, 0xab80, + 0xabc6, 0x0e3c, 0xab7c, 0xab90, 0x0e3e, 0xaba3, 0xab7d, 0xabbd, + 0x0e9e, 0x0e9f, 0x0ea1, 0xae13, 0x0e9b, 0x0f12, 0xb011, 0xb044, + 0xb00d, 0x0f18, 0x0f0c, 0xb214, 0x0f62, 0xb2b8, 0x0f7a, 0xb2b7, + 0xb383, 0x0fae, 0x0faf, 0xb414, 0x0fad, 0xb41c, + /* 0x58 */ + 0x0fc4, 0x0fc7, 0x0fc6, 0x0fc5, 0xb4d4, 0xb4d5, 0x3fc1, 0x1040, + 0xb743, 0xb742, 0x103f, 0x1041, 0xf68a, 0xb741, 0xb84e, 0x107f, + 0xb987, 0x1086, 0x1081, 0x1080, 0x108e, 0x114a, 0xbd39, 0x1147, + 0xbd8f, 0xbd2a, 0x114b, 0x1146, 0x114e, 0x427d, 0xbd2b, 0x42a5, + 0xbd50, 0x1148, 0xbd6e, 0x1145, 0xbd3b, 0xbd53, 0xbd5f, 0xbd2f, + 0xbd30, 0xbd38, 0xbd4c, 0xbff1, 0x11db, 0x11e7, 0x11e4, 0xc207, + 0xc216, 0x11e1, 0xc214, 0x11e9, 0xc1fb, 0x11e5, 0x11e0, 0x11e3, + 0xc1f8, 0xc210, 0xc21d, 0xc1ff, 0xc20b, 0xc204, 0x11ea, 0xc1fe, + 0xc3ff, 0x463a, 0x1254, 0x1258, 0x125c, 0xc523, 0x1255, 0x128b, + 0x128c, 0x12a6, 0x12a5, 0xc72a, 0xc8a0, 0xc898, 0xc89c, 0x12ff, + 0xc89e, 0xc8a6, 0xc8b5, 0xc8b0, 0x1330, 0x1340, 0x1341, 0xcaf9, + 0xcaf5, 0x1386, 0xcbd2, 0x13bf, 0x13bd, 0xcd50, + /* 0x59 */ + 0xcd4e, 0xcd4b, 0xcd52, 0xcd4d, 0x13be, 0x1419, 0xcee4, 0x141c, + 0xceda, 0x141b, 0x1417, 0x1418, 0x4b51, 0xcedf, 0xcee8, 0x143d, + 0x146a, 0x1466, 0xd170, 0xd172, 0x1467, 0xd177, 0x1468, 0x14ad, + 0x14ae, 0xd3e6, 0xd5aa, 0x14d6, 0x1509, 0xd68c, 0x4e98, 0xd689, + 0x150c, 0x150a, 0xd832, 0x153b, 0x153a, 0x5084, 0x5081, 0xd87a, + 0x506f, 0xda9e, 0xdaa0, 0xdb70, 0x15af, 0x15aa, 0x15ab, 0xdb6e, + 0xdb66, 0x15b1, 0xdb65, 0x15ac, 0x15ec, 0xdd7f, 0xdde0, 0x1601, + 0xddff, 0xdef6, 0xdef7, 0xdef5, 0x1623, 0xdefc, 0x1624, 0x161e, + 0xdef9, 0x164a, 0x1665, 0x166a, 0xe0ca, 0xe0c3, 0xe0c6, 0x1669, + 0xe1b8, 0xe1bd, 0x1695, 0xe1bc, 0xe205, 0xe2e0, 0xe2e9, 0x5542, + 0xe2df, 0xe2ec, 0x16cc, 0xe2e5, 0xe2de, 0xf700, 0x16cf, 0xe2f0, + 0xe2e3, 0x170f, 0xe3ec, 0x170e, 0x170b, 0x1710, + /* 0x5a */ + 0x170d, 0x170c, 0xe3f2, 0xe3ef, 0xe3e9, 0xe4fb, 0x1746, 0x1748, + 0x5637, 0x1749, 0xe537, 0xe6de, 0x1791, 0x178e, 0xe6da, 0x17d8, + 0x17d6, 0xe84b, 0x17da, 0xe849, 0x17d7, 0xe8d5, 0x57ff, 0x17f9, + 0xe952, 0xe947, 0x17fc, 0xe948, 0xeacc, 0xead0, 0x58a9, 0x184a, + 0x58a7, 0x184e, 0x58b3, 0x58ac, 0x58b0, 0xeb86, 0xeba7, 0xeba3, + 0x589c, 0xebb6, 0xebad, 0xee13, 0x5a3c, 0x5a1c, 0x5a3a, 0x18d3, + 0x18cd, 0x18d1, 0xee17, 0xee22, 0x5a32, 0x5a34, 0xee49, 0xee26, + 0xf70c, 0xee3c, 0xee28, 0xf0a8, 0x5bc7, 0xf1fb, 0x1962, 0xf232, + 0xf2d6, 0xf348, 0x1983, 0x5c3f, 0xf3c6, 0x1992, 0x009f, 0x00a0, + 0x6025, 0x6026, 0x6024, 0x6033, 0x6170, 0x0127, 0x6790, 0x020b, + 0x6a95, 0x6aa1, 0x6a92, 0x6a8f, 0x6a9f, 0x6a96, 0x6a98, 0x6a9d, + 0x6aa0, 0x028d, 0x7097, 0x71eb, 0x0370, 0x7787, + /* 0x5b */ + 0x24eb, 0x7b32, 0x059a, 0x059f, 0x059d, 0x7ed8, 0x7efb, 0x7f06, + 0x059b, 0x7ed1, 0x26d5, 0xf5b0, 0x0660, 0x0664, 0x0669, 0x0663, + 0x0667, 0x0662, 0x82f6, 0x8304, 0x82fe, 0x2802, 0x82ff, 0x82f7, + 0x8518, 0x06ac, 0x8514, 0x85cd, 0x8620, 0x87de, 0x0726, 0x0723, + 0x0725, 0x8b45, 0x8b53, 0x07f8, 0x8b4b, 0x8b55, 0x8b41, 0x07f7, + 0x07fb, 0x07fa, 0x8b5c, 0x8b54, 0x8e71, 0x8ed0, 0x08b0, 0x08af, + 0x9053, 0x9329, 0x937e, 0x097e, 0x9379, 0x097d, 0x0980, 0x9370, + 0x936a, 0x097f, 0x0986, 0x9385, 0x9364, 0x2e12, 0x9378, 0x0981, + 0x9632, 0x9627, 0x962f, 0x0a24, 0x0a58, 0x0a57, 0x0aa0, 0x99ba, + 0x0afe, 0x9b71, 0x9b8c, 0x0b15, 0x9c1a, 0x0b47, 0x0b46, 0x9c98, + 0x9de4, 0x0b6b, 0x0b6c, 0x3385, 0x3454, 0x9fc2, 0x0bcc, 0x9fba, + 0x3455, 0x9fc8, 0x0bcb, 0x34a7, 0x34a8, 0x0bf9, + /* 0x5c */ + 0xa1b9, 0xa1b8, 0xa1a5, 0xa2e2, 0x0c78, 0x0c7a, 0x0c75, 0xa2d9, + 0x0c76, 0x0c77, 0xa2ac, 0xa2dd, 0x0cea, 0x0cee, 0x0ced, 0xa49d, + 0x0cec, 0x370f, 0xa611, 0xa603, 0x0d84, 0x0d85, 0x0d83, 0xa7ee, + 0x0dbc, 0x0dbd, 0x0dd4, 0xaba4, 0xabd8, 0xabdd, 0xabde, 0x0e55, + 0xabe7, 0x0e50, 0x0e4c, 0x0e48, 0xabd4, 0x0e53, 0xabce, 0x0e57, + 0x0e54, 0x0e4e, 0x0e4a, 0x0e51, 0xabf1, 0xabd3, 0x0e49, 0x0e4b, + 0x0e63, 0xabca, 0xabe9, 0x0ea7, 0x0ea6, 0x0ea4, 0xae1a, 0xae41, + 0xf668, 0x3ae4, 0x3ae5, 0xb03d, 0xb040, 0x3c65, 0x3c4e, 0x0f17, + 0xb043, 0x0f16, 0xb03f, 0xb03c, 0x0f63, 0xb221, 0xb220, 0x3d82, + 0xb2c6, 0x0f7b, 0x0f7c, 0xb2d1, 0xb2ca, 0xb38e, 0xb391, 0x0fb0, + 0x3e2d, 0xb4e3, 0xb788, 0x1042, 0xb770, 0x1044, 0xb89d, 0xb99d, + 0xb991, 0xb998, 0xb999, 0x1088, 0x108f, 0x1153, + /* 0x5d */ + 0x115b, 0xbdbf, 0x1159, 0xbdae, 0xbdb1, 0xbdcc, 0xbe04, 0x42ca, + 0xbe16, 0xbdcd, 0x1154, 0x42bc, 0xbde0, 0xbdcb, 0xbdd4, 0xbdc9, + 0xbfff, 0x1199, 0xbffd, 0xc257, 0xc252, 0xc250, 0xc245, 0xc24d, + 0x11f1, 0xc253, 0x11ef, 0xc282, 0xc244, 0xc3ce, 0xc3cf, 0xc3d2, + 0xc402, 0xc54f, 0xc558, 0x1262, 0xc543, 0x1263, 0xc552, 0x1260, + 0x1261, 0x125f, 0xc549, 0xc553, 0xc54d, 0x128d, 0xc684, 0x128e, + 0xc683, 0xc732, 0xc8e2, 0x1309, 0xc8e4, 0xc8d3, 0x1305, 0xc8d5, + 0xc8dd, 0x1303, 0x1306, 0xc8ec, 0xc8e6, 0xc8d2, 0xc8fa, 0xc8da, + 0x1331, 0xca06, 0xca04, 0x134f, 0xca7b, 0xcb04, 0xcb02, 0x1366, + 0x49ff, 0x13c4, 0xcd60, 0x13c3, 0x13c1, 0x13c5, 0xcf07, 0xcf05, + 0xcf0c, 0x1421, 0xcf5a, 0x141f, 0x1422, 0xcf1a, 0x1427, 0x1420, + 0xd18a, 0x146d, 0x146c, 0x146b, 0x146f, 0x1470, + /* 0x5e */ + 0xd18c, 0xd409, 0xd6a6, 0x4ea6, 0xd6ac, 0xd6a9, 0x1542, 0xd88b, + 0x50b6, 0xd88c, 0x1544, 0x1540, 0xd888, 0xd889, 0x153f, 0xd893, + 0x50ab, 0x158b, 0xdb83, 0xdd4f, 0x1625, 0x1628, 0xdf20, 0x5421, + 0xe036, 0xe0e2, 0x1675, 0x1672, 0xe0ee, 0x166f, 0xe0e7, 0xe0e9, + 0x1676, 0x1671, 0x54a7, 0xe0df, 0x1697, 0xe1c7, 0x16d7, 0xe309, + 0x16d6, 0xe301, 0x16d8, 0x16dc, 0x16db, 0x16d4, 0x553e, 0x1713, + 0x1711, 0x1714, 0xe405, 0xe40c, 0xe578, 0xe55d, 0x1751, 0x1750, + 0x1753, 0x1754, 0x1752, 0xe55e, 0xe560, 0xe567, 0x176d, 0xf705, + 0xe6f4, 0x1795, 0x1799, 0xe6f1, 0x179a, 0xe6fa, 0x1793, 0x1797, + 0xe6f8, 0xe6f9, 0xe709, 0xe6fd, 0xe6f7, 0x17dc, 0xe859, 0x17fd, + 0xe960, 0xe968, 0x17fe, 0x1800, 0x1802, 0x1801, 0x1803, 0xe96a, + 0xea14, 0xea3e, 0xeae4, 0x1827, 0x1826, 0x1824, + /* 0x5f */ + 0x184c, 0x58bc, 0x1850, 0x1855, 0x1853, 0x58b7, 0x1852, 0xebd2, + 0x1857, 0x58be, 0x1858, 0x18d6, 0xee58, 0xee50, 0x18d4, 0xee5c, + 0x18da, 0x18d9, 0xcf19, 0x5a62, 0x18d5, 0x18e4, 0xf70e, 0x18dc, + 0x191b, 0x5b8f, 0x1937, 0x1936, 0x194b, 0x5bcb, 0x1966, 0x1976, + 0xf2df, 0x197e, 0x197d, 0x197f, 0x1984, 0x198b, 0xf3d9, 0x1994, + 0x00a1, 0x0111, 0x6566, 0x0210, 0x1ea9, 0x6ae1, 0x6aef, 0x6ae8, + 0x6c33, 0x2013, 0x71fe, 0x0332, 0x21f4, 0x73ef, 0x73ec, 0x75ec, + 0x779c, 0x0420, 0x7799, 0x7870, 0x786e, 0x049d, 0x7b41, 0x26ec, + 0x26ef, 0x7f02, 0x7f01, 0x05a5, 0x801b, 0x8323, 0x8325, 0x8324, + 0x8326, 0x8333, 0x832f, 0x858f, 0x8856, 0x0802, 0x07fe, 0x0801, + 0x2bd6, 0x0803, 0x07ff, 0x8b99, 0x0804, 0xf5ed, 0x084a, 0x8ed9, + 0x0987, 0x93b7, 0x0984, 0x93b6, 0x0985, 0x3009, + /* 0x60 */ + 0x9654, 0x9657, 0x967a, 0x0a59, 0x3179, 0x9b8e, 0x32c6, 0x9b90, + 0x9bb9, 0x0b04, 0x0b49, 0x0b48, 0x9def, 0x0b6d, 0x0bd2, 0x0bd3, + 0x9fe2, 0x0bd1, 0x9fd6, 0x9fd8, 0x9fda, 0x9fde, 0x0be7, 0x0c0a, + 0x35c3, 0xa308, 0xa304, 0xa30a, 0xa30b, 0xa302, 0x0cf0, 0xa4aa, + 0xa4c1, 0x371f, 0xa7d7, 0xa7d9, 0x3865, 0xa7de, 0xa7da, 0x0dbe, + 0x0dbf, 0xa92a, 0x38c6, 0x3a3a, 0xac31, 0x3a36, 0xac2b, 0xac2c, + 0xac29, 0xac2e, 0x0e5e, 0xac27, 0xac28, 0x0e5b, 0xac5f, 0xac30, + 0xac24, 0x3aeb, 0x0eab, 0xae3a, 0x0eac, 0xae39, 0xae40, 0xb080, + 0xb084, 0x0f1f, 0x0f1d, 0xb075, 0xb076, 0x0f1c, 0xb07c, 0x0f1e, + 0xb078, 0xb09b, 0xb07e, 0xb15a, 0x0f64, 0xb22c, 0x3d84, 0xb39c, + 0xb747, 0xb78a, 0x1048, 0x1047, 0xb827, 0xbe4a, 0x115e, 0x1161, + 0xbe27, 0x42e0, 0x42f3, 0xbe2e, 0xbe26, 0xc008, + /* 0x61 */ + 0x11f7, 0xc2bd, 0xc296, 0x11f4, 0x11f8, 0x451e, 0xc2be, 0xc28e, + 0xc574, 0x1264, 0xc580, 0x1292, 0x128f, 0x1290, 0x46b4, 0x1293, + 0x12a8, 0xc73c, 0xc73d, 0x12a9, 0xc73a, 0xc742, 0x46f9, 0xc924, + 0xc906, 0x4844, 0x130e, 0xc915, 0x130f, 0xc902, 0xc90c, 0x130b, + 0xc908, 0xc90a, 0xc905, 0xc91c, 0x1310, 0x1351, 0xca82, 0x1350, + 0xca86, 0x1363, 0xcc03, 0xcd7b, 0x13c7, 0xcd7a, 0x4b71, 0x1424, + 0x1426, 0x4b6e, 0xcf80, 0x4b79, 0xcf58, 0x4bc4, 0x1474, 0x1473, + 0x1472, 0xd1aa, 0xd1ab, 0xd236, 0xd24a, 0x14b1, 0x4d8c, 0xd5d6, + 0x150e, 0x1511, 0x1510, 0x150f, 0x1512, 0x1549, 0x50c9, 0x154f, + 0x154d, 0xd903, 0xd8cf, 0x1555, 0xdb9f, 0xdba2, 0xde2a, 0xde2f, + 0xdf44, 0xdf40, 0x162c, 0x162b, 0xe111, 0xe10f, 0x1679, 0xe10d, + 0xe107, 0xe103, 0x167a, 0x54b0, 0x1699, 0x169a, + /* 0x62 */ + 0xe235, 0x16ae, 0x16af, 0xe304, 0x16e4, 0x16e1, 0x16de, 0x16e6, + 0x16df, 0xe326, 0x16e7, 0x16e2, 0x16e0, 0xe31e, 0x16e5, 0x555a, + 0xe40e, 0x1718, 0xe41d, 0xe41e, 0xe41f, 0x1756, 0xe588, 0x5646, + 0xe58d, 0xe591, 0xe580, 0x176e, 0xe654, 0xe655, 0x179d, 0x17a0, + 0x179c, 0xe725, 0xe71a, 0x17a1, 0x17a2, 0x179f, 0x17df, 0x17de, + 0x57c3, 0x17ea, 0xe988, 0x1806, 0xe97a, 0x1804, 0x580f, 0xe980, + 0xeb1e, 0xebfc, 0xec25, 0x185f, 0x58f4, 0x58fa, 0x185c, 0xec0b, + 0x185e, 0xec06, 0xec04, 0x58dd, 0x1859, 0xebf9, 0xec00, 0x1864, + 0x185d, 0x1862, 0xec02, 0x1865, 0xec07, 0x58ed, 0x185b, 0x58ef, + 0xeeb5, 0x18dd, 0xee87, 0x18df, 0xee93, 0xf70f, 0x18e2, 0xeebe, + 0xf066, 0x1927, 0xf0c7, 0xf0cf, 0x5b96, 0x193a, 0x193c, 0xf13d, + 0x1939, 0xf13c, 0xf147, 0x193d, 0x193b, 0x5bb3, + /* 0x63 */ + 0x194c, 0xf1c3, 0x1968, 0x5be2, 0xf31b, 0x1980, 0x1985, 0xf3c9, + 0x1995, 0xf3dd, 0x1996, 0xf493, 0x5c8f, 0x603d, 0x00a4, 0x0112, + 0x1eb1, 0x0225, 0x6ee6, 0x2141, 0x0337, 0x73f7, 0x77b0, 0x77ae, + 0x5dfd, 0x0468, 0x0467, 0x049e, 0x7c9f, 0x7c9e, 0x7f30, 0x05aa, + 0x7f4f, 0x05a9, 0x05a4, 0x7f27, 0x7f51, 0x0671, 0x066f, 0x8351, + 0x8354, 0x8356, 0x8527, 0x06ad, 0x8524, 0x2bf6, 0x080c, 0x2bf2, + 0x080b, 0x8bec, 0x8bc4, 0x080f, 0x0879, 0x93f8, 0x93f6, 0x93f7, + 0x93ed, 0x098d, 0x098f, 0x93f4, 0x93ef, 0x098e, 0x0a0c, 0x967f, + 0x96a2, 0x967e, 0x0aa6, 0x99c5, 0x0aa3, 0x0aa4, 0x0aa5, 0x3388, + 0x0b6e, 0x9ff1, 0x9ff2, 0x0bfa, 0xa12f, 0x0c7c, 0x0c7e, 0x0c7b, + 0x0c7d, 0xa323, 0xa329, 0x0c8d, 0x0cf4, 0x0cf3, 0xa61b, 0xa7eb, + 0x0d89, 0xa7ea, 0xa933, 0x0dc0, 0xac63, 0x0e65, + /* 0x64 */ + 0xac92, 0xac65, 0x0ead, 0x0f25, 0xb0a0, 0xf670, 0xb15e, 0x0fc9, + 0xb7aa, 0x104a, 0xb7a9, 0x4067, 0x1089, 0xbe9c, 0x1166, 0x1170, + 0xbe92, 0x116d, 0x1169, 0x1167, 0xbe86, 0x1172, 0x430e, 0x116e, + 0xbe83, 0x119c, 0x11fc, 0x11fd, 0x1204, 0x11ff, 0xf6c2, 0x11fe, + 0x1200, 0xc2ce, 0x1266, 0x1269, 0xc593, 0x12aa, 0x12ab, 0x1317, + 0xc92e, 0xc927, 0xc928, 0x1315, 0x485e, 0x1312, 0x4a0e, 0xcc18, + 0xcc16, 0xcd8d, 0x13ca, 0xcd8e, 0x13c9, 0x13cb, 0xcd90, 0xcd8f, + 0xcf81, 0x1429, 0x1428, 0xcf8a, 0xcf8c, 0xd08d, 0x1440, 0x1475, + 0x1476, 0xd1b2, 0x1488, 0xd5d9, 0x4eb6, 0x1557, 0x5101, 0xd90d, + 0x155f, 0xd913, 0x511d, 0x1558, 0x155b, 0xd91b, 0x512f, 0xdbac, + 0x15b3, 0xdbb3, 0x15ef, 0xdf5e, 0x1630, 0xdf60, 0xdf68, 0xdf63, + 0xdf69, 0xdf67, 0x1641, 0x164b, 0xe128, 0x167d, + /* 0x65 */ + 0xe12e, 0xe130, 0x167c, 0xe126, 0xe131, 0xe141, 0x54e0, 0xe1da, + 0x54db, 0xf6fa, 0xe20b, 0x5561, 0xe334, 0xe333, 0x16e8, 0x16ea, + 0x16e9, 0xe339, 0xe33b, 0xe340, 0xe430, 0x171b, 0xe432, 0xe437, + 0x1755, 0x564a, 0x1759, 0x1758, 0xe581, 0xe59f, 0xe5a7, 0x17a4, + 0x17a3, 0xe744, 0xe747, 0xe748, 0xe73d, 0x5733, 0x17a7, 0xe749, + 0x17e0, 0xe880, 0xe9a0, 0xe99d, 0x1808, 0x180a, 0x1809, 0xe99c, + 0xea47, 0xeb07, 0x1871, 0x590f, 0x186c, 0xec49, 0x5911, 0xec44, + 0x5903, 0x5901, 0x186e, 0xecdf, 0x5916, 0xec4c, 0x5dfd, 0xec4f, + 0x18e0, 0x18ee, 0xeec1, 0x18eb, 0xeeb9, 0xeecb, 0xeecf, 0xeec4, + 0x5a93, 0x18ea, 0x18ef, 0x18e7, 0xeeca, 0xeec3, 0xf0d0, 0xf151, + 0x1948, 0x1949, 0xf1a8, 0xf1c7, 0xf1c6, 0x194d, 0xf1ca, 0xf202, + 0x1955, 0xf25d, 0xf25a, 0x196a, 0x196c, 0xf259, + /* 0x66 */ + 0x196b, 0xf2cc, 0xf31c, 0xf3cc, 0x1998, 0x1999, 0x1997, 0xf3e8, + 0xf3ec, 0xf3ea, 0xf4ad, 0xf4b0, 0x605f, 0x6058, 0x6057, 0x1d5b, + 0x6793, 0x0216, 0x6b3b, 0x1ebf, 0x6b34, 0x6ef2, 0x0339, 0x73fd, + 0x751d, 0x0425, 0x23ce, 0x7a04, 0x7b48, 0x7f58, 0x834f, 0x0674, + 0x836e, 0x8372, 0x06ae, 0x852e, 0x8bfc, 0x8bf4, 0x9036, 0x940e, + 0x0992, 0x0994, 0x9414, 0x0995, 0x9419, 0x0a0d, 0x96a6, 0x0a25, + 0x9bc9, 0x9bc0, 0x9bcc, 0x9c1b, 0x9caa, 0x9ca8, 0xa003, 0x0bd5, + 0x0bd6, 0x34ac, 0x0be8, 0xa135, 0x0c7f, 0x35d2, 0x0cf5, 0x0cf6, + 0x0cf7, 0xa4d9, 0x0d24, 0x0d8d, 0x0d8a, 0xa93f, 0xa93d, 0x0e6c, + 0x0e66, 0x0e6a, 0xac8b, 0x0e67, 0x0e6d, 0x0e68, 0x3a52, 0xac68, + 0xac8a, 0xae58, 0xae57, 0xb0ce, 0xb0bc, 0xb0c0, 0xb0c1, 0xb0bf, + 0xb0ab, 0xb15f, 0x0f65, 0xb3a6, 0x0f9a, 0xb429, + /* 0x67 */ + 0x0fb1, 0x104b, 0x104d, 0x104c, 0x104e, 0xb7b8, 0x1173, 0x1175, + 0xbedd, 0xbed6, 0xf6b1, 0xbed5, 0xbee7, 0xbed8, 0xc2ec, 0x1203, + 0xc300, 0xc307, 0xc2fd, 0xc2f1, 0xc2ff, 0xc5aa, 0xc5b0, 0xc948, + 0x131e, 0xc953, 0x4873, 0xc94d, 0x1319, 0x131c, 0x131a, 0x131d, + 0x4876, 0xc943, 0xc950, 0x1343, 0x1352, 0xca8c, 0xcc27, 0x1395, + 0xcd99, 0x13cc, 0xcfb1, 0x142b, 0xcfb0, 0xcfaa, 0xcfac, 0x142a, + 0x4bc7, 0x1477, 0xd1c8, 0xd1ca, 0xd442, 0xd5e0, 0xd6e7, 0xd6e8, + 0xd6e6, 0x1513, 0x1514, 0x5134, 0xd95b, 0xd956, 0x155d, 0xd95a, + 0x1560, 0x513e, 0x1562, 0xdab8, 0xdbc5, 0x15b2, 0x15f0, 0xde48, + 0xdf7d, 0xdf7c, 0xdf81, 0xdf82, 0xdf62, 0x164c, 0xe145, 0x1682, + 0x54bc, 0x1681, 0x169b, 0xe1e3, 0x16a4, 0x16ee, 0x16ec, 0xe350, + 0x16ed, 0xe34f, 0x16f0, 0x16ef, 0xe439, 0x171d, + /* 0x68 */ + 0xe43a, 0x1760, 0x175e, 0x175d, 0xe5c1, 0xe74e, 0xe76e, 0x17b1, + 0x17ab, 0x17ac, 0x17ad, 0xe771, 0x17ae, 0xe88c, 0xe889, 0x17e2, + 0xe8e5, 0xe9b3, 0xe9b6, 0xe9b4, 0xea4d, 0x5839, 0xeb13, 0xec78, + 0x592a, 0x187b, 0x5926, 0x1878, 0x1875, 0x5927, 0xec72, 0x18f2, + 0x18f4, 0x18f3, 0x5ac0, 0x5ac9, 0xf075, 0xf0da, 0xf0d7, 0x193f, + 0x193e, 0x1940, 0x194e, 0x1957, 0x1959, 0x1958, 0xf716, 0xf269, + 0xf267, 0x196e, 0xf266, 0xf26f, 0xf271, 0x5bec, 0xf2cf, 0xf323, + 0x1981, 0x1986, 0xf3a5, 0x198f, 0xf3fe, 0xf3fb, 0xf3fd, 0x5c68, + 0x199b, 0x19b1, 0x19b3, 0x6b6d, 0x033a, 0x7405, 0x7520, 0x0427, + 0x77c8, 0x77c9, 0x046a, 0x05ac, 0x8627, 0x0818, 0x8c1e, 0x8d36, + 0x084c, 0x943d, 0x0996, 0x99d7, 0x0b4a, 0x9cad, 0x9e00, 0x0c81, + 0xa33a, 0x0c83, 0x0cf9, 0x0cf8, 0xa626, 0x0d8e, + /* 0x69 */ + 0x0d8f, 0x0dc1, 0xacb7, 0xacb6, 0xacc0, 0x0e70, 0xac9b, 0x0e71, + 0xb0d8, 0x0f2a, 0x0f2d, 0x0f7d, 0x3e32, 0x3e31, 0xb7c0, 0x104f, + 0xb7bf, 0xb9bf, 0x1090, 0xbf20, 0xbed0, 0xbf0e, 0x1179, 0xbf1d, + 0xbf1e, 0xbf15, 0xbf14, 0xc31e, 0xc32c, 0x1205, 0xc5b9, 0xc5b8, + 0xc5b6, 0xc69e, 0xc69c, 0xc74d, 0x46fd, 0xc96e, 0xc960, 0x1321, + 0xc964, 0xc962, 0xb0e5, 0x1332, 0xcda3, 0x13cd, 0x13cf, 0xd1d2, + 0xd1d5, 0x4d8e, 0x1516, 0x1515, 0x15b5, 0x1608, 0xde55, 0x1632, + 0xdf93, 0x1633, 0x1634, 0x163c, 0xe156, 0x54c2, 0xe1e9, 0x169c, + 0xe245, 0x16f4, 0x16f2, 0xe47c, 0x1762, 0xe5d3, 0x1761, 0x1764, + 0x17b5, 0x574b, 0x17b4, 0xe78e, 0xe897, 0x17e3, 0xe89b, 0xe899, + 0x581c, 0x180e, 0xe9cf, 0x581b, 0xea59, 0x182c, 0x182b, 0xeb20, + 0xeb23, 0xeb2a, 0x1885, 0x1881, 0x187e, 0x1883, + /* 0x6a */ + 0x1880, 0xecb0, 0x5942, 0xef2f, 0x5ad4, 0x18fb, 0x18f7, 0xef32, + 0xef43, 0xef3f, 0xef39, 0x18f8, 0xef30, 0xf0dd, 0xf1da, 0xf1db, + 0x195a, 0xf284, 0xf27f, 0xf272, 0xf280, 0xf2ee, 0x1978, 0xf32a, + 0xf322, 0xf371, 0xf3cd, 0x199d, 0x199c, 0xf40f, 0xf418, 0x606a, + 0x00a9, 0x00bf, 0x1ed0, 0x1ecf, 0x740c, 0x23da, 0x7ca6, 0x0677, + 0x0676, 0x8537, 0x06bb, 0x29ea, 0x8ee2, 0x099b, 0x96bc, 0x0a0f, + 0x0a5b, 0x9bd5, 0x0b4c, 0x0b6f, 0x0bd9, 0xa012, 0x0c82, 0xa34b, + 0xa341, 0xa3a1, 0xa4ec, 0x0e74, 0x0e72, 0xacd4, 0xacd8, 0xacd9, + 0x0e73, 0xacda, 0xae6c, 0xae6d, 0x0eb1, 0x0f2e, 0xb0e7, 0xb0eb, + 0xb0ec, 0xb162, 0x0f4e, 0xb42b, 0xb50d, 0xb7cd, 0xb9c3, 0xbf3f, + 0xbf3c, 0xbf3e, 0xbf3d, 0xbf3a, 0xbf38, 0xc344, 0xc345, 0x120b, + 0xc348, 0xc350, 0x126c, 0x4889, 0xc978, 0xc979, + /* 0x6b */ + 0x138b, 0xcc3e, 0x13d0, 0x142d, 0xd454, 0x14e4, 0x1571, 0xd9b9, + 0x5158, 0x156f, 0xde5f, 0x1687, 0x16a5, 0xe372, 0xe375, 0x171e, + 0x1765, 0x17b9, 0x17b7, 0x17b8, 0x17e4, 0xe8a3, 0xe8a5, 0xe9dc, + 0xe9dd, 0xea5a, 0x188c, 0x1889, 0x188a, 0xecdb, 0xecdc, 0x188b, + 0xefab, 0xef84, 0xef76, 0x1901, 0x18fe, 0x5ae7, 0x1903, 0x1906, + 0xef83, 0x5aea, 0x5af1, 0xf07f, 0x191d, 0x1943, 0xf173, 0xf1ad, + 0xf1b0, 0x194f, 0xf20f, 0xf20c, 0x195b, 0x1970, 0xf379, 0x1988, + 0xf377, 0xf37a, 0x1989, 0x5c44, 0xf432, 0xf427, 0xf42a, 0xf42c, + 0x5c6d, 0xf428, 0xf429, 0xf438, 0x642f, 0x6b7b, 0x740d, 0x23d9, + 0x77d6, 0x77d5, 0x83a1, 0x8c4c, 0x099e, 0x099f, 0x0aa7, 0x0b4b, + 0x0bdb, 0x0bda, 0xa0c0, 0x35d6, 0x0c8e, 0x0e76, 0xacf4, 0x0f30, + 0x0f2f, 0xb0f0, 0x0f66, 0xb23f, 0x117e, 0xc35d, + /* 0x6c */ + 0xc372, 0xc362, 0x453a, 0xc366, 0x4675, 0x126f, 0xc988, 0x13d1, + 0x142f, 0xcfe8, 0xcfe4, 0x14b2, 0x1518, 0x1517, 0xd6ff, 0x1576, + 0xdfaf, 0xdfae, 0x164f, 0x1689, 0xe1f2, 0xe248, 0xe381, 0xe37e, + 0x16f5, 0x171f, 0xe452, 0xe5ef, 0x575d, 0x17e5, 0xe8ad, 0xe9e6, + 0x1810, 0xe9ed, 0x180f, 0xe9e9, 0xea61, 0xea60, 0xeb33, 0x182f, + 0x1830, 0x5964, 0xed0b, 0xed08, 0x1893, 0x1894, 0xed07, 0x1907, + 0x1909, 0x1908, 0xefca, 0x190b, 0xefc6, 0x5b0a, 0xf084, 0xf0eb, + 0xf17d, 0x1950, 0x1971, 0xf29b, 0xf2a2, 0xf2a1, 0xf2a0, 0xf29c, + 0x197b, 0x197c, 0xf380, 0x5c73, 0xf440, 0x19a1, 0xf439, 0xf43c, + 0x19a0, 0x19a2, 0x64ca, 0x021b, 0x6b89, 0x0282, 0x853c, 0x8d40, + 0x9463, 0x9469, 0x0be9, 0xa353, 0x0c84, 0x35e1, 0xa817, 0xa81a, + 0xad00, 0x0eb3, 0x0f34, 0x0f33, 0x1180, 0xc36f, + /* 0x6d */ + 0xc6ab, 0x12ad, 0xc991, 0x1344, 0x1355, 0xcdb1, 0x13d2, 0xcfef, + 0xdbf1, 0xdbf2, 0xdfb7, 0xdfb5, 0x168a, 0xe386, 0xe45a, 0x1767, + 0xe7c6, 0xe7cb, 0x17e6, 0xe8b2, 0x1813, 0xe9f3, 0x582d, 0xed27, + 0x1897, 0x5b0c, 0xefd5, 0xefd8, 0x190c, 0xefec, 0xf087, 0xf0f2, + 0x1946, 0x195c, 0x1974, 0x1972, 0xf2ad, 0xf2b0, 0xf2fd, 0x5c1f, + 0xf387, 0xf44a, 0x19a4, 0x19a3, 0xf44e, 0xf449, 0xf451, 0xf44d, + 0x19b4, 0x6072, 0x0136, 0x7416, 0x8c6d, 0x8d41, 0x08b2, 0x9471, + 0x9474, 0x0b16, 0x3a70, 0x0e77, 0xae7c, 0x117f, 0xbf8a, 0xc756, + 0x147d, 0x5179, 0xd9fa, 0x544a, 0x168c, 0xe45b, 0x1768, 0x17be, + 0x1815, 0xeff5, 0xeff0, 0xf0f3, 0xf17f, 0xf213, 0x1975, 0x19a5, + 0x7419, 0x7f85, 0x83b0, 0x9477, 0xa4ff, 0x0e78, 0x0f35, 0x3c9d, + 0x1182, 0xbf87, 0x1183, 0xbf8b, 0x1271, 0xc99e, + /* 0x6e */ + 0x147e, 0x168e, 0xe38f, 0x5660, 0x1769, 0xe639, 0xe7d4, 0xe8f1, + 0xea02, 0xea6b, 0xeb40, 0x189a, 0x189b, 0xf010, 0xf2be, 0xf2b9, + 0x1990, 0xf464, 0x5c9e, 0x9be9, 0xbf90, 0x1186, 0x1185, 0xc01c, + 0x120e, 0xc392, 0xc6ae, 0xc9a3, 0x1519, 0xdfc9, 0x17c0, 0xe7d8, + 0xeb44, 0xf024, 0x5bf8, 0x5c3a, 0x5c7d, 0xf470, 0xf4d3, 0x0c0d, + 0x1816, 0xf2c3, 0x19a9, 0x19aa, 0x0c85, 0xad21, 0xb9ca, 0xc39c, + 0xea73, 0xf186, 0xf3c1, 0xea09, 0x5c96, 0xf4d5, 0x17c2, 0x1831, + 0x1911, 0x19ab, 0x189c, 0xdfd4, +}; + +static const ucs4_t cns11643_4b_2uni_upages[248] = { + 0x03400, 0x03500, 0x03600, 0x03700, 0x03800, 0x03900, 0x03a00, 0x03b00, + 0x03c00, 0x03d00, 0x03e00, 0x03f00, 0x04000, 0x04100, 0x04200, 0x04300, + 0x04400, 0x04500, 0x04600, 0x04700, 0x04800, 0x04900, 0x04a00, 0x04b00, + 0x04c00, 0x04d00, 0x05000, 0x05100, 0x05200, 0x05300, 0x05600, 0x05800, + 0x05900, 0x05b00, 0x05c00, 0x05d00, 0x05e00, 0x05f00, 0x06100, 0x06400, + 0x06500, 0x06600, 0x06900, 0x06a00, 0x06b00, 0x06f00, 0x07000, 0x07100, + 0x07200, 0x07300, 0x07400, 0x07500, 0x07600, 0x07700, 0x07800, 0x07900, + 0x07a00, 0x07b00, 0x07c00, 0x07d00, 0x07e00, 0x07f00, 0x08000, 0x08100, + 0x08200, 0x08400, 0x08500, 0x08600, 0x08700, 0x08800, 0x08900, 0x08a00, + 0x08b00, 0x08c00, 0x08d00, 0x08e00, 0x08f00, 0x09000, 0x09100, 0x09200, + 0x09300, 0x09400, 0x09500, 0x09600, 0x09700, 0x09800, 0x09900, 0x09a00, + 0x09b00, 0x09c00, 0x09d00, 0x09e00, 0x09f00, 0x0ff00, 0x20000, 0x20300, + 0x20400, 0x20500, 0x20600, 0x20700, 0x20800, 0x20900, 0x20a00, 0x20b00, + 0x20e00, 0x20f00, 0x21000, 0x21100, 0x21200, 0x21300, 0x21400, 0x21500, + 0x21600, 0x21800, 0x21900, 0x21a00, 0x21b00, 0x21c00, 0x21e00, 0x21f00, + 0x22100, 0x22200, 0x22300, 0x22400, 0x22500, 0x22700, 0x22800, 0x22900, + 0x22a00, 0x22c00, 0x22d00, 0x22e00, 0x22f00, 0x23000, 0x23100, 0x23200, + 0x23300, 0x23500, 0x23600, 0x23700, 0x23800, 0x23900, 0x23a00, 0x23b00, + 0x23c00, 0x23e00, 0x23f00, 0x24000, 0x24100, 0x24300, 0x24400, 0x24500, + 0x24600, 0x24800, 0x24900, 0x24a00, 0x24b00, 0x24c00, 0x24d00, 0x24e00, + 0x24f00, 0x25000, 0x25200, 0x25300, 0x25500, 0x25600, 0x25700, 0x25800, + 0x25900, 0x25a00, 0x25b00, 0x25c00, 0x25d00, 0x25e00, 0x25f00, 0x26000, + 0x26100, 0x26200, 0x26300, 0x26400, 0x26500, 0x26600, 0x26700, 0x26800, + 0x26900, 0x26a00, 0x26c00, 0x26d00, 0x26e00, 0x26f00, 0x27000, 0x27100, + 0x27200, 0x27300, 0x27400, 0x27500, 0x27600, 0x27700, 0x27800, 0x27900, + 0x27a00, 0x27b00, 0x27c00, 0x27d00, 0x27e00, 0x27f00, 0x28000, 0x28100, + 0x28200, 0x28300, 0x28400, 0x28500, 0x28600, 0x28700, 0x28800, 0x28900, + 0x28a00, 0x28b00, 0x28c00, 0x28d00, 0x28e00, 0x28f00, 0x29000, 0x29100, + 0x29200, 0x29300, 0x29400, 0x29500, 0x29600, 0x29700, 0x29800, 0x29900, + 0x29a00, 0x29b00, 0x29c00, 0x29d00, 0x29e00, 0x29f00, 0x2a000, 0x2a100, + 0x2a200, 0x2a300, 0x2a400, 0x2a500, 0x2a600, 0x2f800, 0x2f900, 0x2fa00, +}; + diff --git a/graf2d/win32gdk/gdk/src/iconv/cns11643_5.h b/graf2d/win32gdk/gdk/src/iconv/cns11643_5.h new file mode 100644 index 00000000000..f0e5ebea915 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cns11643_5.h @@ -0,0 +1,1278 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CNS 11643-1992 plane 5 + */ + +static const unsigned short cns11643_5_2uni_page21[8603] = { + /* 0x21 */ + 0x3bd1, 0x3bcb, 0x3bc9, 0x3c0c, 0x3b00, 0x3b87, 0x3c0d, 0x3c0f, + 0xe21d, 0x5e98, 0x3bd2, 0x3c11, 0x3b7e, 0x45d3, 0x5052, 0x57fe, + 0x60a9, 0x7442, 0x3b09, 0x3bd6, 0x3fdd, 0x3fdc, 0x4002, 0x4073, + 0x4176, 0x41a7, 0x41a8, 0x4333, 0x43cc, 0x450d, 0x452c, 0x461b, + 0x015a, 0x461d, 0x4699, 0x4d3e, 0x582d, 0x582f, 0x5e99, 0x6eb3, + 0x74b6, 0x761b, 0x7fef, 0x83e9, 0x3b14, 0x3b94, 0x3be1, 0x4006, + 0x404a, 0x4044, 0x4131, 0x417a, 0x41ad, 0x41ae, 0x41b1, 0x4338, + 0x4337, 0x447d, 0x447e, 0x452d, 0x4532, 0x4623, 0x4626, 0xe23a, + 0x46a0, 0x51a8, 0x543f, 0x54bc, 0x56c4, 0x583b, 0x5b19, 0x5b18, + 0x5cb3, 0x5eaa, 0x5fbe, 0x60ac, 0x6525, 0x6566, 0x656b, 0x7443, + 0x74b5, 0x75ec, 0x7776, 0x08bc, 0x8114, 0x50dc, 0x821c, 0x821d, + 0x9fd0, 0xa112, 0xa5f3, 0xc169, 0x15b9, 0xc911, + /* 0x22 */ + 0xc915, 0xc910, 0xc913, 0x3ba4, 0x3ba5, 0x3cd0, 0x3cba, 0x3ccb, + 0x407b, 0x4186, 0x41bb, 0x41ba, 0x41c3, 0x41b9, 0x41c0, 0x00de, + 0x4339, 0x433b, 0x4341, 0x43d1, 0x43cf, 0x43d2, 0x442e, 0x446e, + 0x448c, 0x4488, 0x4535, 0x0143, 0x453a, 0x453b, 0x4538, 0x4539, + 0x462e, 0x462c, 0x46c8, 0x46b5, 0x46ad, 0x46b0, 0x46ab, 0x4cb3, + 0x4ca9, 0x51bb, 0x51b9, 0x565a, 0x56cd, 0x572b, 0x5805, 0x03ac, + 0x03aa, 0x5851, 0x584b, 0x5aea, 0x5aed, 0x5b36, 0x5b62, 0x5b56, + 0x5b55, 0x5b64, 0x5b58, 0x1c07, 0x5cda, 0x5cd8, 0x5ead, 0x5eab, + 0x5fc0, 0x5fc3, 0x60b3, 0x60b7, 0x60ba, 0x1dcb, 0x04fe, 0x60c7, + 0x60b5, 0x648e, 0x6573, 0x656c, 0x6574, 0xe2b4, 0x6572, 0x6571, + 0x6582, 0x6570, 0x6c3f, 0x6eba, 0x6eb8, 0x74b7, 0x8223, 0x8221, + 0x822b, 0x8226, 0x8222, 0x8825, 0x8be4, 0x8f15, + /* 0x23 */ + 0x9fe4, 0xa133, 0xa12a, 0xa132, 0xa129, 0xa5fb, 0xb45b, 0xb45c, + 0xb728, 0xc16f, 0xc16d, 0xc16b, 0xc16e, 0xc916, 0x3b22, 0x3c16, + 0x3c48, 0x3cd8, 0x3d00, 0x0041, 0x3f80, 0x3fe4, 0x00b4, 0x3fe7, + 0x400c, 0x4053, 0x40b7, 0x45e8, 0x41d1, 0x41e5, 0x41d8, 0x41d6, + 0x41da, 0x41d9, 0x41d5, 0x41e6, 0x41d4, 0x41d3, 0x4344, 0x43d6, + 0x43d7, 0x4413, 0x3afd, 0x4470, 0x4492, 0x44db, 0x44da, 0x4541, + 0x4543, 0x4633, 0x46f6, 0x46d4, 0x46dd, 0x46d0, 0x4704, 0x46d9, + 0x46db, 0x4705, 0x46d3, 0x46e1, 0x4d80, 0x4d77, 0x4d81, 0x4d82, + 0x4d83, 0xe25c, 0x5061, 0x5060, 0x51d8, 0x51d6, 0x51d7, 0x8105, + 0x544d, 0x5448, 0x56d6, 0x56cf, 0x56d9, 0x56d8, 0x573d, 0x03b3, + 0x5854, 0x585b, 0x585c, 0x03b4, 0x5859, 0x5858, 0x585a, 0x5855, + 0x5856, 0x5882, 0x5af0, 0x5b1c, 0x5b6a, 0x5b69, + /* 0x24 */ + 0x5b71, 0x5b67, 0x5b6c, 0x5b6e, 0x5b79, 0x5c8b, 0x5cb8, 0x5ce7, + 0x5ce8, 0x5ce4, 0x5ce6, 0x5ce5, 0x5cf0, 0x5e83, 0x5eb7, 0x5ebb, + 0x5eb9, 0x5ec5, 0x5f53, 0x5fc4, 0x5fc6, 0x5fcb, 0x60c8, 0xe29f, + 0x60c9, 0x60db, 0x6494, 0x6595, 0x6588, 0x658d, 0x69ec, 0x69ee, + 0x69f1, 0x6c2e, 0x6c49, 0x6e5f, 0x6ed1, 0x6ecb, 0x7385, 0x081d, + 0x744a, 0x7447, 0x744b, 0x74bb, 0x74c4, 0x087c, 0x7602, 0x7782, + 0x7791, 0x778f, 0x7792, 0x7c8f, 0x7c91, 0x7cb4, 0x7c92, 0x7ff4, + 0x80aa, 0x8235, 0x8237, 0x823d, 0x823c, 0x822f, 0x8230, 0x83f8, + 0x83ef, 0x8626, 0x0b55, 0x8826, 0x8827, 0x8a41, 0x8ac6, 0x8ac7, + 0x8beb, 0x8be8, 0x8bea, 0x8f1a, 0x8f19, 0x0d26, 0x9423, 0x9424, + 0x9925, 0xa135, 0xa134, 0xa507, 0xad1d, 0xb2e1, 0xb6ab, 0xbf60, + 0xc177, 0xc17d, 0x15bc, 0xc91e, 0xc91a, 0xc91d, + /* 0x25 */ + 0x3b6b, 0x3c2d, 0x3c4c, 0x3d2a, 0x004a, 0x3d15, 0x3d2c, 0x3d06, + 0x3d08, 0x3d0a, 0x004e, 0x4056, 0x4084, 0x00c9, 0x40c6, 0x41f5, + 0x4209, 0x41f8, 0x41e8, 0x41fb, 0x41e9, 0x41f6, 0x1ab7, 0x1ab8, + 0x4352, 0x1ab6, 0x1aba, 0x4354, 0x4351, 0x4439, 0x443a, 0x4498, + 0x454e, 0x017b, 0x4736, 0x470c, 0x4710, 0x4732, 0x4711, 0x4718, + 0x471c, 0x471a, 0x4719, 0x470b, 0x470f, 0x471d, 0x4721, 0x4713, + 0x471b, 0x4715, 0x0220, 0x4cd1, 0x4cc8, 0x4d8d, 0x4db5, 0x0289, + 0x0295, 0x50f8, 0x51e0, 0x51e1, 0x02be, 0x51de, 0x51fe, 0x51dc, + 0x5201, 0x51fd, 0x5200, 0x54d7, 0x54d6, 0x54d9, 0x5665, 0x56d2, + 0x56dc, 0x56e1, 0x56de, 0x5742, 0x574b, 0x03c3, 0x588e, 0x5891, + 0x588b, 0x5890, 0x5888, 0x5889, 0x5884, 0x58aa, 0x5b8d, 0x5b8f, + 0x5b7d, 0x5b7f, 0x5b7b, 0x5b80, 0x5b7e, 0x5b83, + /* 0x26 */ + 0x5b81, 0x5b86, 0x5b8a, 0x5cbd, 0x5cbe, 0x0477, 0x5cf4, 0x5cf3, + 0x5d02, 0x5cf6, 0x5cf5, 0x5cf2, 0x5d04, 0x5e3d, 0x5ec6, 0x5f89, + 0x5fd4, 0x5fd6, 0x5fd2, 0x60fa, 0x6106, 0x610c, 0x610a, 0x610f, + 0x652f, 0x05d4, 0x65b7, 0x65be, 0x65bc, 0x65e2, 0x6a06, 0x69f7, + 0x6a07, 0x69f6, 0x7635, 0x6c5f, 0x6c65, 0x6c64, 0x6c61, 0x6c5a, + 0x6c5d, 0xe2d7, 0x6ed7, 0x6ed5, 0x6ede, 0x6ee1, 0x6ee0, 0x6ed9, + 0x074c, 0x6eda, 0x6edf, 0x6ef6, 0x6f03, 0x0820, 0x7393, 0x738b, + 0x7391, 0x7392, 0x738a, 0x7389, 0x738f, 0x7456, 0x7459, 0x74ca, + 0x74cc, 0x085b, 0x74d0, 0x74cd, 0x74d6, 0x74cb, 0x7583, 0x7582, + 0x7606, 0x762a, 0x762c, 0x762b, 0x7629, 0x77bd, 0x77b3, 0x77be, + 0x77c0, 0x77b5, 0x77b6, 0x7c9d, 0x7c9f, 0x8120, 0x0a2d, 0x811e, + 0x811c, 0x8132, 0x811f, 0x812b, 0x8121, 0x8126, + /* 0x27 */ + 0x8124, 0x811d, 0x8127, 0x825b, 0x8259, 0x8280, 0x8255, 0x8250, + 0x825a, 0x8256, 0x8263, 0x8252, 0x8258, 0x0a63, 0x8239, 0x83f9, + 0x8628, 0x0b18, 0x86bc, 0x86d6, 0x8705, 0x8720, 0x0b74, 0x8833, + 0x8a46, 0x8a42, 0x8a43, 0x8a47, 0x8acb, 0x8b42, 0x8b45, 0x8bfd, + 0x8bf4, 0x8bf9, 0x8bfa, 0x8e5e, 0x8f1d, 0x0d28, 0x9258, 0x9255, + 0x9557, 0x9558, 0x95d9, 0x95dc, 0x95db, 0x9927, 0x9a85, 0x9a87, + 0x9a8a, 0x9d8b, 0x9e4f, 0xa030, 0xa02f, 0xa168, 0xa149, 0x0fda, + 0xa148, 0xa13f, 0xa14b, 0xa15c, 0xa146, 0xa140, 0xa50d, 0xa61b, + 0xa61d, 0xa617, 0x10a4, 0xa622, 0xb0a7, 0xb108, 0xb306, 0xbf7d, + 0x148e, 0xbf63, 0xbf64, 0xbf7f, 0xbf6b, 0xbf7c, 0xbf68, 0xbf65, + 0xbf6a, 0xc198, 0xc199, 0xc1ae, 0xc92b, 0xc92d, 0xc931, 0xc92e, + 0xc92f, 0x3b6d, 0x3c31, 0x3d2d, 0x3d39, 0x3d38, + /* 0x28 */ + 0x005b, 0x3d3a, 0x3d35, 0x3d62, 0x3fea, 0x3feb, 0x4015, 0x40cc, + 0x40c8, 0x40cd, 0x40db, 0x40cb, 0x4211, 0x4226, 0x4362, 0x435e, + 0x4361, 0x4441, 0x443f, 0x4475, 0x7465, 0x4649, 0x44eb, 0x451a, + 0x4557, 0x476b, 0x47a9, 0x4754, 0x4762, 0x47aa, 0x4758, 0x4772, + 0x4763, 0x4773, 0x478b, 0x478c, 0x475c, 0x4751, 0x4716, 0x4760, + 0x4761, 0x475e, 0x475d, 0x4764, 0x4753, 0x475f, 0x475b, 0x476e, + 0x4755, 0x4752, 0x4768, 0x4cd2, 0x4cd6, 0x4cd3, 0x4db8, 0x4dbb, + 0x4deb, 0x4de8, 0x4db6, 0x4dea, 0x4de7, 0x4de9, 0x5091, 0x5110, + 0x510e, 0x510f, 0x520b, 0x5203, 0x522b, 0x5209, 0x5228, 0x522c, + 0x5225, 0x5227, 0x520f, 0x54e9, 0x54ec, 0x0353, 0x5627, 0x5673, + 0x56e2, 0x56e6, 0xe276, 0x5761, 0x5751, 0x5812, 0x580e, 0x58ad, + 0x58af, 0x58b1, 0x58d3, 0x5b94, 0x5b92, 0x5b90, + /* 0x29 */ + 0x5b9d, 0x5b93, 0x5b95, 0x5b98, 0x5b97, 0x0480, 0xe28a, 0x5d07, + 0x5d0b, 0x5d08, 0x5ed9, 0x5ed5, 0x5fd7, 0x5fdf, 0x04dd, 0x5fde, + 0x5fe3, 0x5fe2, 0x04de, 0x6147, 0x0522, 0x613d, 0x6138, 0x6544, + 0x653a, 0x65b8, 0x662a, 0x6600, 0x65f3, 0x65f2, 0x65eb, 0x65fa, + 0x65ed, 0x65ec, 0x65ff, 0x65fb, 0x1f06, 0x664e, 0x65ef, 0x65f7, + 0x6a10, 0x6a11, 0x6a0c, 0x6a0b, 0x6bdd, 0x6c30, 0x06db, 0x6c7a, + 0x6c77, 0x6e28, 0x6e27, 0x6e65, 0x6f0e, 0x6f0b, 0x6f41, 0x6f13, + 0x6f0f, 0x6f12, 0x6f30, 0x73a0, 0x73a3, 0x739e, 0x7397, 0x73a1, + 0x739d, 0x739b, 0x7463, 0x74e3, 0x74e4, 0x74e6, 0x74e7, 0x74dd, + 0x2185, 0x74ec, 0x74e5, 0x74f1, 0x763b, 0x7639, 0x763a, 0x763c, + 0x763d, 0x7647, 0x763f, 0x7644, 0x7748, 0x7749, 0x7760, 0x77e3, + 0x77e9, 0x77f0, 0x08da, 0x08db, 0x77f2, 0x77ed, + /* 0x2a */ + 0x77ec, 0x77e6, 0x7816, 0x08d7, 0x7cbc, 0x7cbe, 0x7cc0, 0x7ce0, + 0x8000, 0x8002, 0x7ffe, 0x805e, 0x80b3, 0x80b7, 0x813a, 0x8139, + 0x813e, 0x8138, 0x813d, 0x814f, 0x826e, 0x825f, 0x8281, 0x8282, + 0x8271, 0x827b, 0x8279, 0x8277, 0x8273, 0x826f, 0x8297, 0x827e, + 0x83fc, 0x8411, 0x8432, 0x8431, 0x8410, 0x85ec, 0x85eb, 0x862c, + 0x862d, 0x86da, 0x872e, 0x872c, 0x872a, 0x8733, 0x874b, 0x8818, + 0x8842, 0x883b, 0x883f, 0x8841, 0x8843, 0x883c, 0x8a4c, 0x8a4a, + 0x8a49, 0x8a56, 0x8acf, 0x8b47, 0x8b48, 0x8b46, 0x8c1b, 0x8c11, + 0x8c14, 0x8c1d, 0x8c17, 0x8c1e, 0x8c0b, 0x8c1c, 0x8c12, 0x8c16, + 0x8c0d, 0x8c15, 0x8c13, 0x8c18, 0x0c1a, 0x8eac, 0x8f44, 0x8f2c, + 0x8f45, 0x9266, 0x926e, 0x9265, 0x9268, 0x9284, 0x9438, 0x943b, + 0x943a, 0x943f, 0x95df, 0x95dd, 0x95de, 0x95e2, + /* 0x2b */ + 0x0dd6, 0x992c, 0x992f, 0x9a8f, 0x9a90, 0x9a8c, 0x9a93, 0x9d25, + 0x9d88, 0x9da7, 0x9ef7, 0x9fbb, 0xa038, 0xa039, 0xa037, 0xa114, + 0xa16e, 0xa17b, 0x0fde, 0xa16c, 0xa17f, 0xa178, 0xa17a, 0xa16f, + 0x0fe5, 0xa3fe, 0xa648, 0xa64b, 0xa641, 0xa649, 0xa63b, 0xad2d, + 0xb0e3, 0xb11a, 0xb10d, 0xb113, 0xb111, 0xb11c, 0x1272, 0xb3b5, + 0x12af, 0xb729, 0xb7a1, 0xb824, 0xbabb, 0xbda1, 0xbf83, 0xbf8d, + 0xbf87, 0xbf85, 0xbf8a, 0xbfa3, 0xbf89, 0xbf84, 0xbfa2, 0xc1b1, + 0xc1b0, 0xc1af, 0xc1b6, 0xc1c9, 0xc1ca, 0xc1c8, 0xc1b4, 0xc759, + 0xc7c9, 0xc941, 0xc94c, 0x15c4, 0xc945, 0xc95a, 0x3bb9, 0x3d94, + 0x3d6e, 0x3da2, 0x3d67, 0x0063, 0x3da3, 0x3d76, 0x3d6c, 0x3d64, + 0x3da5, 0x3d30, 0x3da6, 0x3d69, 0x3da4, 0x3f90, 0x405f, 0x4060, + 0x40da, 0x40d8, 0x40dd, 0x00ec, 0x4259, 0x425b, + /* 0x2c */ + 0x425a, 0x4239, 0x4234, 0x4244, 0x4233, 0x423c, 0x4258, 0x426a, + 0x436f, 0x4372, 0x4370, 0x4371, 0x436e, 0x43f0, 0x43eb, 0x4449, + 0x444c, 0x44f5, 0x4520, 0x456a, 0x4572, 0x464b, 0x465d, 0x4750, + 0x47f9, 0x47fa, 0x47fb, 0x4823, 0x47b7, 0x4822, 0x47b5, 0x47c4, + 0x47b4, 0x47ef, 0x0198, 0x47cd, 0x47f0, 0x47b8, 0x47cb, 0x47f1, + 0x47ba, 0x4803, 0x47f8, 0x47b6, 0x47bc, 0x47b3, 0x4821, 0x47f7, + 0x47c2, 0x47be, 0x47c9, 0x47bd, 0x47ce, 0x47b9, 0x47c7, 0x47ca, + 0x47cc, 0x4826, 0x4ce4, 0x4ce0, 0x4cf0, 0x4dec, 0x4e24, 0x4e18, + 0x4e2f, 0x4e25, 0x5028, 0x5022, 0x506a, 0x3c57, 0x5094, 0x5092, + 0x509c, 0x5122, 0x5130, 0x511d, 0x5123, 0x5235, 0x5233, 0x522f, + 0x524d, 0x5231, 0x525b, 0x525a, 0x5232, 0x525c, 0x5259, 0x525d, + 0x5469, 0x546d, 0x5d32, 0x0358, 0x550a, 0x5520, + /* 0x2d */ + 0x551f, 0x550d, 0x56e8, 0x56ec, 0x5777, 0x5770, 0x5771, 0x58f8, + 0x58d6, 0x58d9, 0x58de, 0x58d5, 0x58e1, 0x03d3, 0x58e2, 0x58dd, + 0x58e0, 0x590e, 0x5908, 0x58dc, 0x590a, 0x590c, 0x5bb4, 0x5bb1, + 0x5bb6, 0x5bbc, 0x5d1d, 0x5d24, 0x5d19, 0x5d1b, 0x5d22, 0x5d1a, + 0x5d1c, 0x5d21, 0x5ee6, 0x5ee4, 0x5ee7, 0x5eea, 0x04e2, 0xe29b, + 0x5ff0, 0x5ff5, 0x5fef, 0x6142, 0x616e, 0x613c, 0x6197, 0x618c, + 0x6181, 0x6171, 0x61ce, 0x61ba, 0x617a, 0x617e, 0x0554, 0x6172, + 0x61bb, 0x052f, 0x6173, 0x6182, 0x05b6, 0x64ba, 0x64b8, 0x654b, + 0x6548, 0x662b, 0x65f4, 0x662c, 0x6642, 0x6648, 0x6644, 0x6645, + 0x663c, 0x6637, 0x6633, 0x6641, 0x6632, 0x6687, 0x6a27, 0x6a23, + 0x6a2d, 0x6a1f, 0x6a2c, 0x6a28, 0x6b75, 0x6b74, 0x6be7, 0x6c32, + 0x6c31, 0x6c99, 0x6c96, 0x6c98, 0x6c9d, 0x6c92, + /* 0x2e */ + 0x6c94, 0x6c95, 0x6c97, 0xa1b9, 0x0735, 0x6f11, 0x6f3b, 0x6f79, + 0x6f42, 0x6f43, 0x075d, 0x6f78, 0x73ac, 0x0829, 0x73b1, 0x73b4, + 0x73b3, 0x73af, 0x73aa, 0x73b2, 0x7468, 0x74f2, 0x74fe, 0x74f8, + 0x74f9, 0x74ff, 0x74f5, 0x74f7, 0x74fd, 0x7500, 0x7588, 0x766e, + 0x765d, 0x7663, 0x7660, 0x7761, 0x7837, 0x7871, 0x7823, 0x7822, + 0x781f, 0x7825, 0x7cfd, 0x7d11, 0x7d23, 0x7cf0, 0x7cef, 0x800e, + 0x800c, 0x80ba, 0x0a1f, 0x8152, 0x8155, 0x8153, 0x8154, 0x8151, + 0x8158, 0x82b0, 0x829f, 0x0a72, 0x82a1, 0x829a, 0x82be, 0x82a0, + 0x8437, 0x0b0b, 0x85f1, 0x85f2, 0x8634, 0x8637, 0x8635, 0x5e8c, + 0x86df, 0x874c, 0x874e, 0x8764, 0x8763, 0x8736, 0x8858, 0x8868, + 0x885b, 0x885f, 0x8859, 0x8865, 0x8860, 0x885e, 0x8ad5, 0x8ad6, + 0x8b4e, 0x8b52, 0x8c35, 0x8c39, 0x8c58, 0x8c41, + /* 0x2f */ + 0x8c57, 0x8c38, 0x8c3d, 0x8c32, 0x8c44, 0xe344, 0x8e63, 0x8e62, + 0x8eb8, 0x8eb0, 0x8eb1, 0x8f4d, 0x8f63, 0x8f70, 0x8f4b, 0x8f4f, + 0x8f4e, 0x8f53, 0x8f47, 0x0ca2, 0x8f54, 0x8f52, 0x8f59, 0x8f7e, + 0x912b, 0x912e, 0x927f, 0x927e, 0x9281, 0x9283, 0x9447, 0x9454, + 0x944d, 0x944c, 0x944b, 0x9457, 0x9565, 0x9564, 0x9561, 0x9562, + 0x95f0, 0x95f3, 0x95f9, 0x95f4, 0x95f5, 0x95ef, 0x95f8, 0x95fc, + 0x95f7, 0x95fd, 0x9617, 0x9934, 0x9936, 0x9938, 0x9aaf, 0x9aae, + 0x9aac, 0x9aa2, 0x9d28, 0x69c2, 0x9d9c, 0x9db3, 0x9d90, 0x9f06, + 0x9f04, 0x9f0b, 0x9f05, 0xa040, 0xa04f, 0xa1ab, 0xa19d, 0xa1b8, + 0xa1b2, 0xa1d2, 0xa1cf, 0xa1a2, 0x0fec, 0xa1a5, 0xa1a9, 0xa1a7, + 0xa1d0, 0xa402, 0xa4cf, 0xa4d0, 0xa516, 0xa519, 0xa675, 0xa671, + 0xa691, 0xa672, 0xa68e, 0xa66d, 0xa688, 0xa673, + /* 0x30 */ + 0x10bb, 0xa681, 0xa676, 0xa67b, 0xa67f, 0xa690, 0xa678, 0xad4b, + 0xad48, 0xad5b, 0xad51, 0xad3d, 0xad40, 0xad46, 0xad4d, 0xad3b, + 0xad4a, 0xad41, 0xad3e, 0xad4e, 0xb0ac, 0xb0e6, 0xb0e9, 0xb129, + 0x1221, 0xb133, 0xb12e, 0xb11e, 0x121f, 0xe3c5, 0xb122, 0xb127, + 0xb2e7, 0xb30b, 0xb466, 0xb6ad, 0xb6ae, 0x3038, 0xb72b, 0xb72a, + 0xb82c, 0xb82d, 0x1391, 0x1396, 0xb98f, 0xb993, 0xbac6, 0xbac5, + 0xbd15, 0xbd13, 0xbdb1, 0xbda9, 0x31ce, 0xbfa8, 0xbfab, 0xbfbe, + 0xbfac, 0xbfa9, 0xbfa6, 0xbfc1, 0xc1cc, 0xc1d1, 0xc1d3, 0xc1e4, + 0xc1cb, 0xc1e1, 0xc1d2, 0xc1e3, 0xc1cf, 0xc1d0, 0xc1e5, 0xc20e, + 0xc7cc, 0xc7ca, 0xc7cb, 0xc95c, 0xc961, 0xc95d, 0xc959, 0xcb77, + 0xd184, 0x3b41, 0x3bfd, 0x3c1a, 0x3c63, 0x3db6, 0x3db2, 0x3de9, + 0x3de7, 0x3dd6, 0x3e30, 0x3dec, 0x3ddd, 0x3de8, + /* 0x31 */ + 0x3db0, 0x3db5, 0x3de1, 0x3f98, 0x3f99, 0x00bc, 0x4093, 0x40e5, + 0x00d8, 0x4260, 0x425e, 0x00f4, 0x437b, 0x43f1, 0x43f3, 0x457f, + 0xe238, 0x4657, 0x4658, 0x4839, 0x48a7, 0x4835, 0x4860, 0x4851, + 0x4862, 0x4842, 0x483c, 0x4843, 0x48ab, 0x48a9, 0x48b4, 0x4879, + 0x486a, 0x483b, 0x48aa, 0x4833, 0x4837, 0x4827, 0x48a8, 0x4870, + 0x482f, 0x4836, 0x48b5, 0x4830, 0x483a, 0x4838, 0x48b1, 0x48ac, + 0x482e, 0x4875, 0x48b0, 0x4cf7, 0x4d00, 0x4cf1, 0x4cf3, 0x4e60, + 0x4e61, 0x4e32, 0x4e2d, 0x4e4a, 0x4e2a, 0x5067, 0x50a2, 0x50a3, + 0x509e, 0x50a4, 0x5144, 0x5132, 0x529b, 0x5298, 0x5299, 0x529a, + 0x5266, 0x5262, 0x526b, 0x8062, 0x5267, 0x553b, 0x5523, 0x5529, + 0x567e, 0x56f3, 0x0385, 0x56f5, 0x0383, 0x5780, 0x577e, 0x577c, + 0x577f, 0x577d, 0x5781, 0x5925, 0x5929, 0x5917, + /* 0x32 */ + 0x5963, 0x5967, 0x5965, 0x592a, 0x5968, 0x5926, 0x5964, 0x591b, + 0x5962, 0x5969, 0x5afe, 0x5b44, 0x5b42, 0x5bb7, 0x5bd2, 0x5bd4, + 0x5bd7, 0x5bdc, 0x5bd1, 0x5bd5, 0x5bcd, 0x5bd8, 0x5c9a, 0x5d42, + 0x5d35, 0x5d58, 0x5d34, 0x5d3c, 0x5d3b, 0x5d3e, 0x5d3d, 0x5d5a, + 0x5d41, 0x5d38, 0x5d45, 0x5d33, 0x5e26, 0x04ba, 0x5ef7, 0x5eef, + 0x5ef0, 0x5eee, 0x5f9d, 0x6006, 0x6011, 0x6008, 0x6002, 0x600a, + 0x6007, 0x6191, 0x618e, 0x6185, 0x61e8, 0x6217, 0x61d4, 0x0569, + 0x61c4, 0x61d5, 0x0545, 0x61d8, 0x6180, 0x61de, 0x6242, 0x64c7, + 0x64bf, 0x668d, 0x6689, 0x6690, 0x669a, 0x66c8, 0x6692, 0x66a1, + 0x6684, 0x6a57, 0x6a47, 0x6a77, 0x6a3a, 0x6a50, 0x6a42, 0x6a43, + 0x6aa3, 0x6b77, 0x6cb2, 0x6ce2, 0x6cbd, 0x6e74, 0x6f82, 0x6fb8, + 0x076c, 0x6fba, 0x6fb9, 0x6fbb, 0x6f87, 0xe2e4, + /* 0x33 */ + 0x6f83, 0x6fb7, 0x3b43, 0x73ce, 0x73ba, 0x7473, 0x7509, 0x750a, + 0x750b, 0x7507, 0x7505, 0x750e, 0x7597, 0x7677, 0x767b, 0x767a, + 0x7674, 0x7679, 0x7886, 0x78f5, 0x78a5, 0x789d, 0x78be, 0x7896, + 0x78e1, 0x78a4, 0x78a1, 0x78f6, 0x0904, 0x788d, 0x788b, 0x7878, + 0x7898, 0x790a, 0x7d5d, 0x7d27, 0x7d5f, 0x80c0, 0x80c1, 0x816d, + 0x815e, 0x818a, 0x8162, 0x8164, 0x0a3a, 0x82c0, 0x82ca, 0x82d1, + 0x0a79, 0x82c7, 0x82ce, 0x2309, 0x82c5, 0x8436, 0x8457, 0x8477, + 0x85f6, 0x85f7, 0x8655, 0x8644, 0x863e, 0x8642, 0x8652, 0x86e1, + 0x8708, 0x8768, 0x8767, 0x0b5d, 0xe337, 0x887e, 0x8893, 0x8879, + 0x8881, 0x887d, 0x887b, 0x8894, 0x0b8a, 0x8a66, 0x8ad9, 0x8ae0, + 0xe33e, 0x8b5f, 0x8c5f, 0x8c5e, 0x8c68, 0x0c27, 0x8c88, 0x8c6a, + 0x8c6c, 0x8c66, 0x8c67, 0x8c89, 0x8c60, 0x8c85, + /* 0x34 */ + 0x3e2a, 0x8e68, 0x8eb9, 0x8eba, 0x8ebe, 0x8f6f, 0x8f80, 0x8f74, + 0x8f81, 0x8f7a, 0x8f9c, 0x8f73, 0x8f82, 0x8f7f, 0x8fa7, 0x8f79, + 0x8f78, 0x8f7d, 0x8fa8, 0x8f7c, 0x9168, 0x914e, 0x929e, 0x0d46, + 0x0d40, 0x9298, 0x0d3f, 0x9285, 0x929c, 0x92c5, 0x929a, 0x9468, + 0x9465, 0x9467, 0x9461, 0x9460, 0x0d9d, 0x0dcb, 0x957b, 0x0de1, + 0x9619, 0x960e, 0x9631, 0x9612, 0x9610, 0x9615, 0x963f, 0x961d, + 0x961e, 0x994d, 0x9948, 0x9945, 0x9942, 0x9949, 0x994a, 0x9947, + 0x0e7f, 0x994c, 0x9acd, 0x9ad5, 0x9ac4, 0x9aca, 0x9ac3, 0x0f46, + 0x9d29, 0x9db4, 0x9e6d, 0x9e66, 0x9e6a, 0x9f15, 0x9fd3, 0x9fec, + 0xa055, 0x101a, 0xa1d6, 0xa1d8, 0xa251, 0xa1e0, 0xa203, 0xa204, + 0xa1da, 0xa1ea, 0xa202, 0xa1d3, 0xa1e4, 0xa1e5, 0xa43b, 0xa466, + 0xa52c, 0xa521, 0xa526, 0xa5d4, 0xa5d5, 0xa5d9, + /* 0x35 */ + 0xa6d5, 0xa6eb, 0xa6c5, 0x10d3, 0xa727, 0xa6f0, 0xa6b9, 0xa718, + 0xa6ee, 0x10d0, 0xa6b7, 0xa6bb, 0xa6ef, 0xa6b8, 0xa6df, 0xa6da, + 0xa6e3, 0xa6c9, 0xa6ec, 0xaca4, 0x118e, 0xaca3, 0xad5e, 0xad61, + 0xad62, 0xad63, 0xad8e, 0xad69, 0xad6b, 0xad85, 0xad8d, 0xad64, + 0xad6d, 0xb14c, 0xb149, 0xb147, 0xb148, 0xb142, 0xb145, 0xb15b, + 0xb15d, 0xb146, 0xb313, 0xb31a, 0xb30e, 0xb30f, 0xb31b, 0xb312, + 0xb3c3, 0xb3be, 0xb3bd, 0xb479, 0xb47c, 0x12c3, 0x12b6, 0xb480, + 0xb475, 0xb49b, 0x2f2f, 0xb474, 0x12c0, 0x12b8, 0x5b41, 0x5f94, + 0xb730, 0xb7a7, 0xb7a5, 0xb7a4, 0xb83a, 0xb95b, 0xb99f, 0xb9a8, + 0xb9b3, 0xb9a1, 0xb9a7, 0xb9b2, 0xb99d, 0xb9a3, 0xb9a2, 0xbaef, + 0xbad9, 0x13d9, 0xbad5, 0xbadd, 0xbada, 0xbaee, 0xbad7, 0xbd1a, + 0xbd19, 0xbd18, 0xbdb3, 0xbdbf, 0xbdbb, 0xbdc0, + /* 0x36 */ + 0xbdb9, 0xbdb8, 0xbdd5, 0xbf11, 0xbf10, 0xbfc3, 0xbfc2, 0xbfe9, + 0xbfcd, 0xbfe5, 0xbfca, 0xbfc7, 0xbfe8, 0xc1f1, 0xc20c, 0xc1ef, + 0xc1ee, 0xc1f3, 0xc20d, 0xc1f6, 0xc1f0, 0x14ec, 0xc2f5, 0xc2f4, + 0xc2f8, 0xc2fe, 0xc411, 0xc422, 0xc442, 0xc75c, 0xc75a, 0xc75d, + 0xc7d1, 0xc7d0, 0xc975, 0xc97b, 0xca89, 0xcf4d, 0xd189, 0xd192, + 0xd18c, 0xd188, 0xd367, 0xd368, 0x3e21, 0x3df2, 0x3e09, 0x3df8, + 0x3df0, 0x3df3, 0x3df5, 0x3dfb, 0x3df7, 0x3def, 0x3e0b, 0x3fa2, + 0x40f5, 0x40f3, 0x40f4, 0x40f2, 0x4198, 0x4268, 0x4280, 0x4285, + 0x428e, 0x428f, 0x3df4, 0x4286, 0x42a4, 0x4386, 0x4389, 0x4387, + 0x4385, 0x1adc, 0x4388, 0x45ff, 0x4666, 0x01cc, 0x48c3, 0x01a2, + 0x48c4, 0x493b, 0x48e7, 0x48f8, 0x48fb, 0x01b6, 0x48be, 0x48c6, + 0x01c5, 0x01c6, 0x48fc, 0x48c0, 0x4933, 0x48c9, + /* 0x37 */ + 0x48fe, 0x48da, 0x48cc, 0x48bb, 0x48fd, 0x48df, 0x48cd, 0x48c2, + 0x48c8, 0x4932, 0x492d, 0x48d2, 0x4931, 0x48d3, 0x492e, 0x48cf, + 0x4cff, 0x4d09, 0x4cfc, 0x4e72, 0x4eaa, 0x4eab, 0x4ea7, 0x4e7b, + 0x4e76, 0x4ea8, 0x4eac, 0x0283, 0x1b21, 0x50aa, 0x4503, 0x50ac, + 0x50ad, 0x50ab, 0x5150, 0x5158, 0x52dd, 0x02f8, 0x52ae, 0x52a2, + 0x52ab, 0x52e3, 0x52af, 0x52e0, 0x52e4, 0x02f6, 0x52a7, 0x52aa, + 0x52e2, 0x52e1, 0x52df, 0x52ad, 0x52e5, 0x52d1, 0x52ac, 0x52d5, + 0x52a3, 0x529f, 0x5479, 0x5476, 0x5543, 0x553d, 0x5547, 0x5544, + 0x553f, 0x555b, 0x567f, 0x579a, 0x579c, 0x039b, 0x581e, 0x5988, + 0x596a, 0x5976, 0x5972, 0x5970, 0x597e, 0x596c, 0x596f, 0x5975, + 0x5977, 0x5978, 0x598a, 0x5979, 0x5994, 0x5b01, 0x5c05, 0x5bf1, + 0x5bee, 0x5bef, 0x5c04, 0x1c3f, 0x5bfa, 0x5c07, + /* 0x38 */ + 0x5bf4, 0x5bf5, 0x5c9c, 0x5d6d, 0x5d69, 0x5d66, 0x5d62, 0x5d46, + 0x048d, 0x5d65, 0x5d5d, 0x5d5e, 0x5d5f, 0x5e8e, 0x5f02, 0x5f06, + 0x5f04, 0x5f03, 0x5f62, 0x6027, 0x6021, 0x6020, 0x6024, 0x6029, + 0x6031, 0x6023, 0x6022, 0x61dc, 0x624d, 0x61e5, 0x61d3, 0x61ee, + 0x61e6, 0x0556, 0x6236, 0x6240, 0x633f, 0x623d, 0x6244, 0x055b, + 0x625f, 0x6229, 0x6249, 0x628a, 0x622a, 0x6287, 0x624c, 0x6231, + 0x6248, 0x622b, 0x623b, 0x6241, 0x61c9, 0x6234, 0x6253, 0x6235, + 0x6247, 0x6238, 0x64d1, 0x64d2, 0x6551, 0x6555, 0x6552, 0x6553, + 0x668f, 0x66f4, 0x6747, 0x670d, 0x671c, 0x66fb, 0x6719, 0x66f7, + 0x66f9, 0x66f5, 0x66e9, 0x670a, 0x66ee, 0x670b, 0x66fd, 0x6706, + 0x6702, 0x6716, 0x6718, 0x66f0, 0x69d4, 0x6a66, 0x6a6a, 0x6a75, + 0x6a76, 0x6a80, 0x6a6d, 0x0696, 0x6a69, 0x6a67, + /* 0x39 */ + 0x6a68, 0x6a5d, 0x6ba4, 0x6bfe, 0x6bfd, 0x6cec, 0x6ce9, 0x6d21, + 0x6ceb, 0x6ce7, 0x6cf2, 0x6d20, 0x6e7a, 0x702d, 0x702e, 0x6fca, + 0x702f, 0x6fc8, 0x077e, 0x6fcb, 0x6fc3, 0x6f84, 0x6fd2, 0x6fc6, + 0x0781, 0x6fcf, 0x6fd5, 0x6fd4, 0x6fdd, 0x702b, 0x70a3, 0x6fdb, + 0x702c, 0x7013, 0x0835, 0x73d1, 0x73cc, 0x73d5, 0x73c9, 0x73cf, + 0x73d2, 0x747b, 0x747c, 0x7523, 0x751d, 0x751c, 0x751e, 0x7522, + 0x7524, 0x7520, 0x7518, 0x7521, 0x7688, 0x768a, 0x7694, 0x768f, + 0x768e, 0x7690, 0x089b, 0x76a7, 0x7764, 0x0900, 0x7918, 0x7914, + 0x791d, 0x7905, 0x78ff, 0x791b, 0x791a, 0x7919, 0x7903, 0x790e, + 0x7947, 0x7904, 0x795a, 0x7907, 0x7920, 0x7d6a, 0x7d66, 0x7d7a, + 0x7d65, 0x7daf, 0x80cd, 0x80cf, 0x80d1, 0x80ce, 0x815f, 0x8177, + 0x8174, 0x8188, 0x8175, 0x8189, 0x8172, 0x82c6, + /* 0x3a */ + 0x82ea, 0x82e0, 0x8307, 0x82e6, 0x82e5, 0x82dd, 0x82e3, 0x82da, + 0x84ae, 0x847e, 0x847d, 0x847f, 0x0ad3, 0x84d9, 0x85fa, 0x85fb, + 0x864d, 0x8654, 0x8651, 0x8650, 0x8898, 0x8895, 0x889d, 0x88c1, + 0x889a, 0x889b, 0x0b9f, 0x889c, 0x88d7, 0x88a4, 0x8896, 0x88a0, + 0x8a31, 0x8ae9, 0x8b6e, 0x8c9a, 0x8ca5, 0x8c94, 0x8ca6, 0x8c99, + 0x8c8b, 0x8c98, 0x8c91, 0x8c8c, 0x8ca1, 0x8ca3, 0x8cc6, 0x8e6f, + 0x8e6d, 0x8e6a, 0x8e6c, 0x8e71, 0x8e6e, 0x8edf, 0x8fac, 0x8faa, + 0x0cb1, 0x8fb5, 0x8fad, 0x8fb2, 0x8fb3, 0x8fab, 0x8fb6, 0x8fc7, + 0x8fc6, 0x916c, 0x9170, 0x92b3, 0x0d4b, 0x948c, 0x9481, 0x9483, + 0x947d, 0x9485, 0x9490, 0x94a2, 0x948d, 0x948f, 0x947e, 0x948a, + 0x947f, 0x9476, 0x9487, 0x9478, 0x9580, 0x9582, 0x9581, 0x9583, + 0x965a, 0x9634, 0x962c, 0x962a, 0x9640, 0x962d, + /* 0x3b */ + 0x9633, 0x962b, 0x964b, 0x283f, 0x963c, 0x995a, 0x9977, 0x9960, + 0x9afa, 0x9af9, 0x9afc, 0x0ed6, 0x9af5, 0x9ae8, 0x9b09, 0x9ae7, + 0x9ae6, 0x9ae9, 0x9d32, 0x9d2c, 0x9dbd, 0x9dbc, 0x9e7a, 0x9e7e, + 0x9e79, 0x0f89, 0x9f23, 0x9f30, 0x9f28, 0x9fd4, 0xa5ce, 0x9ff1, + 0x9ff0, 0xa060, 0xa065, 0xa1a8, 0xa20a, 0xa21b, 0xa212, 0xa207, + 0xa24f, 0xa20e, 0xa252, 0xa216, 0x1000, 0xa253, 0xa254, 0xe384, + 0xa256, 0xa46d, 0xa472, 0xa52f, 0xa72a, 0x10dc, 0xa763, 0xa784, + 0xa7af, 0xa745, 0xa770, 0xa756, 0xa716, 0xa73d, 0xa738, 0xa76f, + 0xa777, 0xa72e, 0xa731, 0xa74c, 0xa75f, 0xa775, 0xa739, 0xa73a, + 0xa72c, 0xa72d, 0xa73f, 0xa72f, 0xa730, 0xa73e, 0x2ad0, 0x1190, + 0xacb2, 0xadb7, 0xad8f, 0x11b1, 0xad96, 0xad9e, 0xad97, 0xad95, + 0xada5, 0xad98, 0x2be7, 0xada3, 0xad9a, 0xadad, + /* 0x3c */ + 0xada6, 0xadb6, 0xad99, 0xadaf, 0xadac, 0x11aa, 0xad9f, 0xad94, + 0xb0eb, 0xb16f, 0xb16d, 0xb17e, 0xb16c, 0xb161, 0xb163, 0xb16b, + 0xb15e, 0xb13e, 0xb164, 0xb1ad, 0x127d, 0xb320, 0xb3d1, 0xb3d5, + 0xb4ae, 0xb4af, 0xb49f, 0xb4a8, 0xb4ca, 0xb6e1, 0xb739, 0xb738, + 0xb73b, 0xb7ad, 0xb7b5, 0xb7af, 0xb7b1, 0xb7ae, 0xb7b4, 0xb7b0, + 0xb84b, 0xb851, 0xb84c, 0x1369, 0xb860, 0xb9be, 0xb9b9, 0xb9b7, + 0xb9b6, 0x13a1, 0xb9bd, 0xb9b8, 0xb9c1, 0xbaf7, 0xbaf3, 0xbaf4, + 0xbafb, 0xbafd, 0xbaf5, 0x13e7, 0xbafa, 0xbb14, 0x13ec, 0xbaf2, + 0xbafc, 0xbb00, 0x13df, 0xbd2b, 0xbd29, 0xbd2e, 0x1433, 0xbdd7, + 0xbddb, 0xbdd9, 0xbdd8, 0xbde6, 0xbdd6, 0xbdd1, 0xbde7, 0xbdd0, + 0xbddc, 0xbfed, 0xc01a, 0xc019, 0xc016, 0xbfec, 0xbfef, 0xbfee, + 0xbff4, 0xc02f, 0xc230, 0xc219, 0xc218, 0xc211, + /* 0x3d */ + 0xc216, 0xc212, 0xc210, 0xc214, 0xc30c, 0xc30d, 0xc410, 0xc429, + 0xc428, 0xc765, 0xc766, 0xc7de, 0xc7df, 0xc7e0, 0xc7d9, 0xc7db, + 0xc7d8, 0xc7e3, 0xc7d7, 0xc9a6, 0xc9a7, 0xc9bf, 0xc9a8, 0xc99f, + 0xc9a1, 0xc9a2, 0xc9ad, 0xc9a3, 0xc9a0, 0xcb83, 0xcb85, 0xcb82, + 0xcb84, 0xccee, 0xcd5d, 0xce92, 0xcf55, 0xcf53, 0xe3fc, 0xcf51, + 0xcf52, 0xcf50, 0xd09d, 0xd187, 0xd197, 0xd19b, 0xd19d, 0xd369, + 0xd511, 0x17ee, 0xd77a, 0x1832, 0x6d44, 0x3bc6, 0x3e40, 0x3e2e, + 0x3e68, 0x3e2d, 0x3e34, 0x3e32, 0x3e69, 0x3e31, 0x3e6a, 0x3e3e, + 0x3e6f, 0x3e75, 0x3ff6, 0x4020, 0x4028, 0x4067, 0x40fb, 0x40fe, + 0x40fc, 0x40fd, 0x40ff, 0x40fa, 0x42ac, 0x42af, 0x42b1, 0x00fc, + 0x42bf, 0x42be, 0x42a7, 0x42aa, 0x4394, 0x4393, 0x4399, 0x012a, + 0x43fa, 0x4456, 0x4522, 0x4591, 0x4592, 0x4608, + /* 0x3e */ + 0x4606, 0x48d6, 0x4937, 0x494b, 0x49ce, 0x49d0, 0x4939, 0x4964, + 0x49cf, 0x4946, 0x4966, 0x4956, 0x4943, 0x494a, 0x4958, 0x4965, + 0x495a, 0x495b, 0x4955, 0x4950, 0x494c, 0x49cd, 0x4951, 0x4947, + 0x01d3, 0x4953, 0x4962, 0x49cc, 0x01d7, 0x497f, 0x494d, 0x4d0a, + 0x4d0c, 0x4d0f, 0x4ebb, 0x4eb9, 0x4eeb, 0x4eae, 0x4ec1, 0x4eea, + 0x4ebe, 0x4ebf, 0x4eba, 0x4eb7, 0x4eb3, 0x4ee9, 0x506e, 0x50af, + 0x50b3, 0x50b2, 0x5168, 0x5169, 0x516a, 0x52de, 0x52eb, 0x5311, + 0x52ed, 0x52e9, 0x52f7, 0x52f4, 0x52ea, 0x5312, 0x52e8, 0x5313, + 0x548e, 0x5486, 0x5563, 0x5565, 0x5699, 0x57c2, 0x57ae, 0x57b0, + 0x57ad, 0x59b4, 0x59d1, 0x59ad, 0x03f3, 0x59bd, 0x59b7, 0x59ab, + 0x59af, 0x59c1, 0x59b5, 0x5c0f, 0x5c0e, 0x5c1c, 0x5c13, 0x5c0a, + 0x5c1e, 0x5c14, 0x5c1a, 0x5ccb, 0x5d87, 0x5d93, + /* 0x3f */ + 0x0491, 0x5d84, 0x5d85, 0x5d92, 0x5d80, 0x5e2b, 0x5e63, 0x5f0a, + 0x04c0, 0x5f66, 0x6034, 0x6033, 0x604d, 0x6289, 0x6257, 0x1e17, + 0x624a, 0x0563, 0x6239, 0x623f, 0x6290, 0x628f, 0x62b2, 0x629f, + 0x6295, 0x62a1, 0x629c, 0x628e, 0x62a0, 0x62ae, 0x6296, 0x62ca, + 0x62ac, 0x0570, 0x62a6, 0x6297, 0x6293, 0x3eb6, 0x64d6, 0x64e0, + 0x64d8, 0x6556, 0x676e, 0x677e, 0x6774, 0x6777, 0x6780, 0x677a, + 0x676b, 0x675f, 0x6776, 0x67b0, 0x6763, 0x6a92, 0x6a82, 0x6a9d, + 0x6a94, 0x6a83, 0x6a8b, 0x6a84, 0x6b57, 0x6b84, 0x6bb5, 0x6c09, + 0x6ce6, 0x0702, 0x6d25, 0x6d51, 0x6e3e, 0xe2da, 0x6e85, 0x703f, + 0x7042, 0x7038, 0x703a, 0x704e, 0x7045, 0x7039, 0x7037, 0x7044, + 0xe2e7, 0x70a4, 0x703d, 0x7041, 0x73df, 0x73de, 0x73ca, 0x73e9, + 0x73e2, 0x73e0, 0x7489, 0x7487, 0x7532, 0x7533, + /* 0x40 */ + 0x75ac, 0x75f9, 0x760d, 0x76b9, 0x795e, 0x796a, 0x0935, 0x7981, + 0x7969, 0x79ac, 0x7980, 0x7975, 0x7971, 0x7976, 0x796f, 0x7db6, + 0x7e03, 0x7dbf, 0x7e01, 0x7db2, 0x7dc4, 0x80db, 0x80dc, 0x80d8, + 0xd172, 0x81b5, 0x81a8, 0x818f, 0x819e, 0x818e, 0x82de, 0x82e2, + 0x8320, 0x831d, 0x831a, 0x8319, 0x832b, 0x8318, 0x8310, 0x830e, + 0x8324, 0x831f, 0x8313, 0x8335, 0x8483, 0x0ae0, 0x84d7, 0x8602, + 0x8603, 0x865c, 0x865f, 0x86c7, 0x879a, 0x8797, 0x87a3, 0x88f7, + 0x88c6, 0x88cc, 0x88d6, 0x88cd, 0x88f9, 0x88d9, 0x88d8, 0x0b9a, + 0x88d1, 0x88ce, 0x88d5, 0x0ba3, 0x88d4, 0x88f8, 0x8a7a, 0x8a79, + 0x8a7f, 0x8af3, 0x8af5, 0x8af6, 0x8af4, 0x8af7, 0x0c05, 0x8b79, + 0x8c9c, 0x8cdf, 0x8cf5, 0x8cff, 0x8cd1, 0x8cda, 0x8ccf, 0x8ccd, + 0x8cde, 0x8cd8, 0x75ad, 0x8ce0, 0x8cfe, 0x8c9e, + /* 0x41 */ + 0x8e75, 0x8e73, 0x8e72, 0x8ed8, 0x8fd0, 0x8fd6, 0x8fd7, 0x8fca, + 0x8fcd, 0x918a, 0x9189, 0x918b, 0x92d3, 0x92da, 0x92ce, 0x92d2, + 0x0d5e, 0x92d4, 0x92d7, 0x92d5, 0x92fb, 0x92cd, 0x92fa, 0x92d6, + 0x0da6, 0x949b, 0x949e, 0x949d, 0x94a4, 0x949f, 0x94a5, 0x94a8, + 0x958f, 0x958c, 0x9595, 0x9660, 0x9655, 0x965c, 0x966f, 0x9651, + 0x9661, 0x96a7, 0x965e, 0x9662, 0x9654, 0x966e, 0x9652, 0x9658, + 0x966d, 0x965f, 0x966c, 0x9650, 0x965d, 0x968e, 0x9972, 0x9978, + 0x9975, 0x9976, 0x997c, 0x997e, 0x997d, 0x9b15, 0x9b14, 0x9b1d, + 0x9b1c, 0x9b23, 0x9b57, 0x9dc8, 0x0f5d, 0x9dc9, 0x9dc5, 0x9e87, + 0x9e8a, 0x9e94, 0x9f39, 0x9f40, 0x9f3e, 0x9f38, 0x9fd6, 0x0fb8, + 0xa077, 0xa078, 0xa07d, 0xa1dd, 0xa25e, 0xa277, 0xa2d4, 0xa266, + 0xa25f, 0xa273, 0xa272, 0xa297, 0xa25a, 0xa296, + /* 0x42 */ + 0xa25d, 0xa265, 0xa270, 0xa275, 0xa274, 0xa25c, 0xa260, 0x1034, + 0xa26d, 0xa441, 0xa53c, 0xa53e, 0x106f, 0xa549, 0xa6e4, 0xa80c, + 0xa815, 0xa80e, 0xa7d4, 0xa7c7, 0xa814, 0xa7db, 0xa85f, 0xa7ed, + 0xa809, 0xa7cf, 0xa7ff, 0xa81a, 0xa7f5, 0xa7ee, 0xa7e5, 0xa80d, + 0xa7df, 0xa7ec, 0xa7d7, 0xa82c, 0xa7cd, 0xa7e3, 0xa800, 0xa7eb, + 0xa7fd, 0xa80f, 0xa82d, 0xa850, 0xa7fe, 0xa7c4, 0xa7e1, 0xa7f9, + 0xacbb, 0xacbc, 0x1194, 0x1193, 0xacba, 0xadd0, 0xadd6, 0xadce, + 0xade1, 0xadd5, 0xadcf, 0xadd3, 0x2c14, 0xadd4, 0xb0b5, 0xb190, + 0xb1a1, 0xb181, 0xb185, 0xb16e, 0xb188, 0xb182, 0xb186, 0xb18f, + 0xb189, 0xb180, 0xb184, 0x2dd1, 0xb329, 0xb32b, 0xb32a, 0xb330, + 0xb3e2, 0xb3e3, 0xb3e1, 0xb4d5, 0xb4c4, 0xb4c9, 0xb4e0, 0xb4df, + 0xb4cb, 0xb4dd, 0xb4e8, 0xb4d4, 0xb51c, 0xb6b5, + /* 0x43 */ + 0xb6b6, 0xb6e5, 0xb745, 0xb749, 0xb740, 0xb746, 0xb744, 0xb74a, + 0xb7c9, 0xb7c4, 0xb7c2, 0xb868, 0x30cb, 0xb882, 0xb86b, 0xb867, + 0xb86c, 0xb86d, 0xb871, 0x1392, 0xb9d7, 0xb9d2, 0xb9d9, 0x13aa, + 0xb9bc, 0xb9dd, 0xb9d6, 0x13a7, 0xb9d8, 0xbb20, 0xbb16, 0xbb18, + 0xbb15, 0xbb19, 0xbb27, 0xbb50, 0xbb1d, 0xbb2c, 0xbb1c, 0xbb29, + 0xbb2b, 0xbb24, 0x13ef, 0xbb28, 0xbd39, 0xbdf2, 0xbdf0, 0x31ed, + 0xbded, 0xbdef, 0xbdea, 0xbe01, 0xbfbc, 0xc05c, 0xc05b, 0xc05a, + 0xc026, 0xc243, 0xc233, 0xc23a, 0xc237, 0xc236, 0xc23c, 0xc234, + 0xc24a, 0xc23b, 0xc235, 0xc23d, 0xc240, 0xc23e, 0xc217, 0xc326, + 0xc324, 0xc310, 0xc336, 0xc325, 0x1522, 0xc466, 0xc77f, 0xc77a, + 0xc7fb, 0xc7fd, 0xc7fc, 0xc7fa, 0xc9d6, 0xc9d2, 0xc9c8, 0xc9c2, + 0xc9c7, 0xc9cd, 0xc9c1, 0xc9c6, 0xc9cc, 0xcaa1, + /* 0x44 */ + 0xcb95, 0xcb94, 0xcb97, 0xcb96, 0xcb93, 0xcba1, 0xcd09, 0xcd08, + 0xcd67, 0xcd65, 0xcd62, 0xcd61, 0xce97, 0xcf01, 0xcf19, 0xcf18, + 0xcf5c, 0xcf67, 0xcf6c, 0x16b5, 0xe3fd, 0xcf66, 0xcf61, 0xcf6e, + 0xcf5d, 0xcf5a, 0xd0a2, 0xd0a9, 0xd0a5, 0xd0a6, 0xd0b2, 0xd0a3, + 0xd1ac, 0xd1aa, 0xd1af, 0xd1ab, 0xd1b1, 0xd1c6, 0xd1ad, 0xd1b9, + 0xd370, 0x1775, 0xd70c, 0xd781, 0xd783, 0xd77e, 0xd851, 0xda99, + 0xda94, 0xda95, 0xddfe, 0xdf18, 0x3c05, 0x3e72, 0x0082, 0x3e99, + 0x3fad, 0x4106, 0x42c2, 0x42cb, 0x42d5, 0x42d2, 0x42cc, 0x42d7, + 0x42c5, 0x42ca, 0x1aec, 0x43a2, 0x43a3, 0x43a1, 0x1ae8, 0x43a6, + 0x43a4, 0x43ff, 0x4400, 0x0135, 0x4506, 0x4525, 0x459f, 0x467f, + 0x49ea, 0x49eb, 0x49de, 0x4a18, 0x49e0, 0x49e8, 0x49df, 0x49f1, + 0x49ec, 0x4a1a, 0x49e6, 0x49e1, 0x4a5d, 0x3b77, + /* 0x45 */ + 0x4a1e, 0x01f0, 0x4a80, 0x4d17, 0x4f1d, 0x4ef7, 0x4eef, 0x4eee, + 0x4eed, 0x4ef5, 0x4f1e, 0x50bd, 0x92ff, 0x50be, 0x516d, 0x5176, + 0x534c, 0x5319, 0x5348, 0x531e, 0x534a, 0x5349, 0x5326, 0x5495, + 0x5585, 0x557e, 0x5597, 0x557d, 0x5642, 0x569e, 0x570c, 0x570b, + 0x570e, 0x57cf, 0x59d8, 0x59e0, 0x59e8, 0x59e9, 0x59e2, 0x59e1, + 0x59da, 0x59e3, 0x59d9, 0x59f0, 0x59e7, 0x59e4, 0x5c23, 0x5c31, + 0x5c33, 0x5c0c, 0xa4e0, 0x5c26, 0x5c24, 0x5c32, 0x5c27, 0x5c21, + 0x5c30, 0x5ca2, 0x5ccc, 0x5d96, 0xe28f, 0x5d98, 0x5d9c, 0x5d9b, + 0x5e6b, 0x5f12, 0x5f14, 0x605a, 0x6054, 0x6051, 0x605e, 0x6058, + 0x04f0, 0x6059, 0x629a, 0x62f2, 0x62ad, 0x6320, 0x62f1, 0x62f0, + 0x62f3, 0x62f4, 0x62e9, 0x62fe, 0x632e, 0x62e8, 0x62e7, 0x62ff, + 0x62f5, 0x64e5, 0x64e7, 0x64e6, 0x64e9, 0x6558, + /* 0x46 */ + 0x676c, 0x67d9, 0x063e, 0x67cb, 0x0639, 0x67be, 0x67b5, 0x67d1, + 0x67c2, 0x67b6, 0x67d3, 0xe2c2, 0x69da, 0x06a2, 0x6aae, 0x06a1, + 0x6aac, 0x6aa9, 0x6aba, 0x6aa7, 0x6ab3, 0x6abd, 0x6ab1, 0x6c0e, + 0x6c11, 0x6c0f, 0x6d52, 0x6d6a, 0x6d54, 0x6d55, 0x6d53, 0x6d57, + 0xe2d0, 0x6d5b, 0x6d58, 0x6d59, 0x073b, 0x70b8, 0x70b5, 0x70bf, + 0x70c1, 0x70bb, 0x07b7, 0x70c3, 0x70ad, 0x70a8, 0x70ae, 0x70aa, + 0x70d0, 0x70b1, 0x70bc, 0x70b7, 0x70b0, 0x70fa, 0x70fb, 0x70b9, + 0x7407, 0x73fc, 0x73ff, 0x73f2, 0x73f8, 0x73f4, 0x0857, 0x0870, + 0x75ae, 0x760f, 0x7610, 0xd5c1, 0x76c7, 0x76c6, 0x76ce, 0x08a7, + 0x76dc, 0x79d5, 0x79d3, 0x7a20, 0x79e2, 0x79f1, 0x79db, 0x79ea, + 0x79eb, 0x79e1, 0x79ff, 0x79d6, 0x79e0, 0x79d7, 0x79e5, 0x0954, + 0x7e1b, 0x7e10, 0x7e0f, 0x7e0e, 0x7e39, 0x7e0a, + /* 0x47 */ + 0x7e14, 0x7e0c, 0x8023, 0x805a, 0x80e2, 0x8193, 0x81b0, 0x81ab, + 0x81bd, 0x81b1, 0x818d, 0x81ad, 0x81aa, 0x81ac, 0x81bc, 0x81c9, + 0x8347, 0x8362, 0x8340, 0x8344, 0x833f, 0x8343, 0x833d, 0x8360, + 0x835f, 0x833a, 0x8342, 0x835e, 0x835d, 0x84bc, 0x84e0, 0x84ee, + 0x84eb, 0x850d, 0x8609, 0x860c, 0x8669, 0x8674, 0x8667, 0x0b31, + 0x2427, 0x87ad, 0x88ff, 0x8916, 0x8908, 0x8909, 0x8900, 0x88fc, + 0x8913, 0x8914, 0x890a, 0xd33e, 0x8929, 0x8917, 0x893b, 0x88fb, + 0x0bbf, 0x890e, 0x0be4, 0x8b08, 0x8d1b, 0x8d1a, 0x8d19, 0x8d02, + 0x0c4a, 0x8d17, 0x8d07, 0x8d13, 0x8d09, 0x8d0a, 0x8d12, 0x8daa, + 0x8d38, 0x8e7b, 0x8e7c, 0x8e7a, 0x8eea, 0x8eeb, 0x8eef, 0x8ef0, + 0x9009, 0x9002, 0x9001, 0x902b, 0x9007, 0x0ccf, 0x9028, 0x8ffb, + 0x902a, 0x8ffe, 0x9004, 0x9029, 0x900a, 0x268c, + /* 0x48 */ + 0x91c2, 0x2691, 0x91a6, 0x0d14, 0x6ac6, 0x5707, 0x930a, 0x92fd, + 0x9306, 0x930d, 0x9309, 0x930b, 0x9300, 0x9305, 0x933d, 0x94d5, + 0x94bf, 0x94ba, 0x94c7, 0x9598, 0x959a, 0x0e0d, 0x96a4, 0x969c, + 0x969d, 0x96a2, 0x9696, 0x9695, 0x96a5, 0x96aa, 0x96ad, 0x969a, + 0x96a3, 0x9697, 0x9690, 0x96af, 0x968d, 0x0e01, 0x96a8, 0x96ee, + 0x99a3, 0x9999, 0x99a1, 0x999c, 0x99a4, 0x99cb, 0x9b56, 0x9b48, + 0x9b59, 0x9b4a, 0x9b5c, 0x0ef1, 0x9b4f, 0x9b4d, 0x9b5d, 0x9d3a, + 0x9de3, 0x9de1, 0x9dde, 0x9e97, 0x9e9a, 0x9f48, 0x9f4a, 0x9f4c, + 0x9f4e, 0x9f4f, 0x9f4b, 0x9f4d, 0x9f47, 0x9f51, 0x9fda, 0x9ff9, + 0x9ffc, 0x9ffb, 0x9ffd, 0x9ff8, 0x9ffa, 0xa08a, 0xa08e, 0xa088, + 0xa089, 0xa08d, 0xa090, 0xe37e, 0xa21c, 0xa2ab, 0xa2a4, 0xa2a8, + 0xa2ad, 0xa29f, 0xa29a, 0xa2b0, 0xa2a5, 0xa2d5, + /* 0x49 */ + 0xa2a2, 0xa2b2, 0xa29d, 0xa2a1, 0xa415, 0xa442, 0xa473, 0xa484, + 0xa4dd, 0xa55c, 0xa54c, 0x1076, 0xa54b, 0xa767, 0xa8a8, 0xa87f, + 0xa88d, 0xa88b, 0xa8f7, 0xa8a9, 0xa8f4, 0xa89a, 0xa88c, 0xa895, + 0xa87e, 0xa877, 0x110a, 0x1103, 0xa871, 0xa8fd, 0xa888, 0xa899, + 0xa86d, 0xa8d4, 0xa891, 0xa87d, 0xa863, 0xa875, 0xa8f9, 0xa88e, + 0xa874, 0xa8d9, 0xa866, 0xa8fa, 0xa8f5, 0x2b60, 0xacc1, 0xacc9, + 0xae03, 0xae2c, 0xae34, 0xae17, 0xae09, 0xae04, 0xae06, 0xae1a, + 0xae0e, 0xae27, 0xae05, 0xae07, 0xae19, 0xae14, 0xae0c, 0xae1d, + 0xae22, 0xae23, 0xb0bb, 0xb0bc, 0xb0ba, 0xb1a9, 0xb1b5, 0xb1ac, + 0xb1aa, 0xb1af, 0xb1b7, 0x1235, 0x1236, 0xb33d, 0xb345, 0xb348, + 0xb33c, 0xb33e, 0xb3ec, 0xb3ed, 0xb3e9, 0xb50a, 0xb50b, 0xb4f8, + 0xb504, 0xb4f6, 0xb4f9, 0xb753, 0xb752, 0xb760, + /* 0x4a */ + 0xb763, 0xb7ce, 0xb7cd, 0xb7d0, 0xb7cc, 0xb887, 0xb88d, 0xb89d, + 0x1373, 0xb963, 0xb9f4, 0xb9f1, 0xb9ff, 0xb9f5, 0xb9fc, 0xb9f2, + 0xb9f6, 0x13b1, 0xb9fa, 0x13af, 0xbb2e, 0xbb45, 0xbb43, 0xbb51, + 0xbb4c, 0xbb73, 0xbb47, 0xbb4b, 0xbb4f, 0x13f4, 0xbb44, 0xbb4d, + 0xbb4e, 0xbb4a, 0xbb41, 0xbb52, 0xbb9f, 0xbb54, 0xbb59, 0xbba2, + 0xbd4b, 0xbd48, 0xbe0d, 0xbe1f, 0xbe08, 0xbe0e, 0xbe1d, 0xbe04, + 0xbf18, 0xbf1b, 0xc066, 0xc062, 0xc083, 0xc067, 0xc262, 0xc24f, + 0xc24e, 0xc267, 0xc253, 0xc24d, 0xc24c, 0xc268, 0xc251, 0x14dc, + 0xc258, 0xc25b, 0xc250, 0xc26a, 0xc339, 0xc338, 0xc482, 0xc484, + 0xc486, 0xc780, 0xc786, 0xc825, 0xc811, 0x1599, 0xc80e, 0xc815, + 0xc80f, 0xc818, 0xc80d, 0xc813, 0xc816, 0xc819, 0xca08, 0xc9f7, + 0xc9fb, 0xc9fc, 0xcab4, 0xcabe, 0xcac1, 0xcba6, + /* 0x4b */ + 0xcba5, 0xcba2, 0xcba4, 0xcd12, 0xcd0e, 0xcd7a, 0xcd78, 0xcd7d, + 0xcd7e, 0xcd81, 0xcd83, 0xcd80, 0xcd82, 0xce9b, 0xce99, 0xce9c, + 0xce9a, 0xcea1, 0xcf1a, 0xcf1c, 0xcf8a, 0xcf79, 0xcf73, 0xcf75, + 0xcf7c, 0xcf78, 0xcf60, 0xcf83, 0xcf70, 0x16b6, 0x16bd, 0xcf87, + 0xcf84, 0xcf7b, 0xcf7e, 0xcf74, 0xd0b9, 0xd0b8, 0xd0b7, 0xd0b5, + 0xd1cc, 0xd1ce, 0xd1d1, 0x3504, 0xd1cb, 0x359b, 0xd37e, 0xd37a, + 0xd377, 0xd38c, 0xd3e1, 0xd520, 0xd51e, 0xd5c2, 0xd60f, 0xd600, + 0x17f4, 0xd610, 0xd70d, 0xd70e, 0xd78e, 0xd78d, 0xd78a, 0xd78b, + 0xd78c, 0xd78f, 0xd857, 0x1835, 0xd855, 0xd85b, 0xdaac, 0xdaa7, + 0xdaa0, 0xda9e, 0x18aa, 0xdd8d, 0x191f, 0xde93, 0xde94, 0xde92, + 0x3c81, 0x3ed6, 0x3ec3, 0x3ee4, 0x3ee2, 0x3f09, 0x3ebf, 0x3ec8, + 0x3ec7, 0x3fb5, 0x3fb2, 0x410c, 0x410b, 0x410a, + /* 0x4c */ + 0x4105, 0x42d3, 0x42e6, 0x42e9, 0x42f0, 0x42ea, 0x42e7, 0x43b1, + 0x43b3, 0x43b4, 0x43b0, 0x445c, 0x445d, 0x445e, 0x44c0, 0x45af, + 0x0150, 0x4686, 0x4683, 0x4684, 0x4a5c, 0x4a70, 0x4a8c, 0x4a7b, + 0x4a66, 0x4a79, 0x4a63, 0x4ac5, 0x4a6b, 0x4a6d, 0x4a72, 0x4a69, + 0x4a75, 0x4a89, 0x4ac6, 0x4aa5, 0x3ee7, 0x4a6a, 0x4a97, 0x4f5a, + 0x4f5c, 0x4f59, 0x4f24, 0x4f25, 0x4f30, 0x4f58, 0x4f31, 0x5076, + 0x50c1, 0x5185, 0x517d, 0x5365, 0x5387, 0x5352, 0x5354, 0x538a, + 0x5350, 0x5386, 0x534f, 0x5368, 0x549d, 0x55a0, 0x55ba, 0x55bd, + 0x55b8, 0x56a6, 0x037b, 0x57de, 0x57d8, 0x57d1, 0x5a13, 0x0409, + 0x5a0e, 0x5a1b, 0x5a3a, 0x0407, 0x5a1c, 0x5a12, 0x5a16, 0x5a1a, + 0x4f48, 0x5c4b, 0x5c37, 0x5c36, 0x5c38, 0x5c3a, 0x5c49, 0x5c3c, + 0x5c4a, 0x5db1, 0x5dc2, 0x5db5, 0x5dc4, 0x5db6, + /* 0x4d */ + 0x5f1e, 0x5f1f, 0x5faf, 0x606b, 0x606f, 0x6292, 0x62e4, 0x632c, + 0x62ef, 0x1e84, 0x634f, 0x6352, 0x6350, 0x633a, 0x6337, 0x6347, + 0x6364, 0x6340, 0x633c, 0x6345, 0x6341, 0x64f3, 0x05bb, 0x67c1, + 0x67b4, 0x064b, 0x682a, 0x6822, 0x6829, 0x064d, 0x683e, 0x683c, + 0x6830, 0x6ac7, 0x6ad5, 0x6ad6, 0x6ad3, 0x6ace, 0x6ac8, 0x6b5c, + 0x6b5f, 0x6b62, 0x06c2, 0x6bbd, 0x6bbf, 0x6d5c, 0x6db6, 0x071a, + 0x6d9d, 0x6d7f, 0x0712, 0x6d94, 0x6d81, 0x6e47, 0x6e46, 0x073c, + 0x6e94, 0x7175, 0x711a, 0x712a, 0x7132, 0x7117, 0x7123, 0x7174, + 0x07c3, 0x7176, 0x712e, 0x7125, 0x7120, 0x7171, 0x7116, 0x7170, + 0x712c, 0x712f, 0x711f, 0x7164, 0x07c0, 0x7408, 0x7414, 0x740a, + 0x740b, 0x754f, 0x7559, 0x7554, 0x7551, 0x75b6, 0x76ec, 0x76ed, + 0x76ea, 0x79ee, 0x7a5a, 0x7a73, 0x7a65, 0x7a61, + /* 0x4e */ + 0x7a55, 0x7a6b, 0x7a64, 0x7a5b, 0x7a4c, 0x7a6f, 0x7a84, 0x7a70, + 0x7e5d, 0x7e57, 0x7e66, 0x7e53, 0x7e98, 0x7e97, 0x8028, 0x80eb, + 0x80ea, 0x80e8, 0x80ec, 0x80ef, 0x81d1, 0x81ca, 0x229f, 0x81cf, + 0x81cd, 0x81ce, 0x8370, 0x8367, 0x8373, 0x836d, 0x8376, 0x8379, + 0x836a, 0x838b, 0x8372, 0x8371, 0x836e, 0x837a, 0x8516, 0x8539, + 0x853b, 0x8610, 0x8696, 0x867b, 0x867c, 0x867d, 0x87be, 0x895c, + 0x8938, 0x8939, 0x892e, 0x8934, 0x8932, 0x895b, 0x8933, 0x893c, + 0x0be5, 0x8b0e, 0x8b0f, 0x8b10, 0x8b87, 0x8d5b, 0x8d53, 0x0c5f, + 0x8d5c, 0x8d3f, 0x8d59, 0x8d4a, 0x8d44, 0x8d4c, 0x8d40, 0x8d5f, + 0x8d5e, 0x8d4e, 0x8d54, 0x8d43, 0x8d87, 0x8e82, 0x8e85, 0x9031, + 0x9047, 0x902e, 0x902f, 0x9048, 0x9034, 0x0d18, 0x409f, 0x9332, + 0x9336, 0x9333, 0x9331, 0x9340, 0x9341, 0x94dd, + /* 0x4f */ + 0x94d2, 0x94d9, 0x0dad, 0x94df, 0x94db, 0x94d8, 0x94d3, 0x94de, + 0x94e0, 0x94d4, 0x94d7, 0x94da, 0x95a7, 0x96fe, 0x96dd, 0x9740, + 0x96e2, 0x0e1e, 0x96d6, 0x96de, 0x96ef, 0x0e27, 0x96eb, 0x96ea, + 0x96e4, 0x96d1, 0x0e18, 0x96ec, 0x96fa, 0x96d9, 0x96f3, 0x96e1, + 0x96dc, 0x96e5, 0x96df, 0x96d4, 0x0e20, 0x9705, 0x99d6, 0x99d5, + 0x99d0, 0x99c8, 0x99c4, 0x99c9, 0x99cd, 0x99d2, 0x99cc, 0x99ca, + 0x9ba0, 0x9b92, 0x0ef4, 0x0f02, 0x9b8b, 0x9ba1, 0x9b95, 0x9b88, + 0x9b86, 0x9b8d, 0x9b85, 0x9b91, 0x9b89, 0x9ba2, 0x9df0, 0x9df3, + 0x9df4, 0x9def, 0x9e06, 0x9ea2, 0x9f5e, 0x9f63, 0x9f60, 0x9f5b, + 0x9f7b, 0x9f58, 0x9f59, 0x9f5d, 0xa005, 0xa006, 0xa002, 0xa003, + 0xa004, 0xa0a2, 0xa0a7, 0xa0a6, 0xa0a4, 0xa0ac, 0xa0a9, 0xa2e7, + 0xa301, 0xa2df, 0xa2d9, 0xa2e3, 0xa30f, 0xa41a, + /* 0x50 */ + 0xa445, 0xa448, 0xa47b, 0xa485, 0xa486, 0xa4fe, 0xa4ff, 0xa564, + 0xa571, 0xa572, 0xa561, 0xa562, 0xa56c, 0xa560, 0xa55d, 0xa563, + 0xa567, 0xa901, 0xa92a, 0xa930, 0xa906, 0xa97d, 0xa922, 0xa9b9, + 0xa90a, 0xa910, 0xa88f, 0xa980, 0xa913, 0xa92e, 0xa918, 0xa917, + 0xa91a, 0xa914, 0xa947, 0xa963, 0xa938, 0x1124, 0xa97f, 0xa921, + 0xa937, 0xa931, 0xa91b, 0xa9a5, 0xaa6c, 0xacd3, 0xae88, 0xae6e, + 0xae5c, 0xae74, 0xae54, 0xae83, 0x2c70, 0xae65, 0xae60, 0xae70, + 0xae6f, 0xae6d, 0xae72, 0xae6c, 0xae76, 0xae75, 0xae59, 0xaec7, + 0xb0c1, 0xb0f9, 0xb1e3, 0xb1e7, 0xb1d6, 0xb1cf, 0xb1da, 0xb1e9, + 0xb1d2, 0xb355, 0xb34f, 0xb34d, 0xb351, 0xb356, 0xb3f9, 0xb3f8, + 0xb406, 0xb403, 0xb409, 0xb3f7, 0xb3f5, 0xb547, 0xb545, 0xb53e, + 0xb546, 0xb529, 0xb534, 0xb53f, 0xb544, 0xb535, + /* 0x51 */ + 0xb55a, 0xb52a, 0xb533, 0xb537, 0xb543, 0xb539, 0xb530, 0xb55d, + 0xb532, 0xb527, 0xb6bd, 0xb6ba, 0xb6bc, 0xb6f1, 0xb6f0, 0xb761, + 0xb75c, 0xb758, 0xb75d, 0xb7da, 0xb7d9, 0xb7dd, 0xb7dc, 0xb7de, + 0x137d, 0xb8a0, 0xb8a2, 0xba0f, 0xba13, 0xba12, 0xba11, 0xba14, + 0xba19, 0xba0e, 0xba17, 0xba21, 0xba20, 0xba16, 0xbb78, 0x3137, + 0xbb87, 0xbb79, 0xbb80, 0xbb77, 0xbb81, 0xbb46, 0xbb7a, 0xbb9c, + 0xbb83, 0xbb84, 0xbbad, 0xbb9d, 0xbb9e, 0xbd55, 0xbe36, 0xbe2b, + 0xbe27, 0xbe46, 0xbe2c, 0xbe45, 0xbe33, 0xbe2d, 0xbe34, 0xbe22, + 0x1464, 0xbf1f, 0xc0b3, 0xc08c, 0xc08f, 0xc0af, 0xc0ad, 0xc08e, + 0xc0ac, 0xc0b0, 0xc0b1, 0xc0ae, 0xc099, 0xc1eb, 0xc274, 0xc275, + 0xc28e, 0xc26d, 0xc270, 0xc28c, 0xc34f, 0xc351, 0xc358, 0xc34c, + 0xc34e, 0xc415, 0xc4be, 0xc4db, 0xc4b3, 0xc4ae, + /* 0x52 */ + 0xc787, 0xc78a, 0xc788, 0xc78b, 0xc78c, 0xc844, 0xc82d, 0xc82a, + 0xc831, 0xc82c, 0xc845, 0xc830, 0xc829, 0xc846, 0xc9f4, 0xca14, + 0xca10, 0xca0f, 0xca12, 0xca0b, 0xca0c, 0xca0a, 0xca13, 0xca0e, + 0xcad9, 0xcad0, 0x3403, 0xcbc1, 0xcbbf, 0xcbbd, 0xcbbc, 0xcbba, + 0xcbbb, 0xcbd1, 0xcbbe, 0xcbd0, 0xcbb9, 0xcd1a, 0xcd1c, 0xcd1b, + 0xcd91, 0xcd96, 0xcd9f, 0xcd9c, 0xcd9a, 0xcd9d, 0xcead, 0xcea5, + 0xceae, 0xcf03, 0xcf26, 0xcf20, 0xcf23, 0xcf24, 0xcf21, 0xcf28, + 0xcf25, 0xcf1e, 0xcf94, 0xcf93, 0xcf8f, 0xcf9a, 0xcfad, 0x16c2, + 0xd0ca, 0xd0c5, 0xd1bb, 0xd1e1, 0xd1ea, 0xd1e4, 0xd1ed, 0xd1e6, + 0xd1e0, 0xd1e8, 0xd1e5, 0xd31a, 0xd394, 0xd396, 0xd39e, 0xd395, + 0xd3a1, 0xd38e, 0xd39b, 0xd392, 0xd397, 0xd399, 0xd393, 0xd532, + 0xd52f, 0xd52e, 0xd533, 0xd61c, 0xd61e, 0xd611, + /* 0x53 */ + 0xd620, 0xd61f, 0xd619, 0xd616, 0xd7ac, 0xd7b9, 0xd7b3, 0xd7a6, + 0xd7a2, 0xd7a9, 0xd7a7, 0xd86c, 0xd86d, 0xd869, 0xd880, 0xd866, + 0xd865, 0xd871, 0xd86b, 0xdabd, 0xdac1, 0xdad3, 0xdab6, 0x18ac, + 0xdab9, 0xdad4, 0xdab7, 0xdadb, 0xdab8, 0xdac0, 0xdabc, 0xdad5, + 0xdabf, 0xdac3, 0xdac9, 0xdd58, 0xdd90, 0xdd95, 0xdd97, 0xde09, + 0xde08, 0xde06, 0xde05, 0xde10, 0xde97, 0xde95, 0xdeee, 0xdf1f, + 0xe41a, 0x564b, 0x3c8e, 0x3ee8, 0x3ef0, 0x3ef4, 0x3f06, 0x3eed, + 0x009b, 0x3ee9, 0x3f00, 0x3fb8, 0x406d, 0x4304, 0x4301, 0x4303, + 0x4302, 0x1af6, 0x0126, 0x4462, 0x45ba, 0x4613, 0x4ade, 0x4ad7, + 0x4ae4, 0x4ace, 0x4ae3, 0x4add, 0x4b3a, 0x4adb, 0x4ad6, 0x4ae0, + 0x4ad4, 0x4acb, 0x4ae1, 0x4ac9, 0x4adf, 0x4b3c, 0x4afc, 0x4acf, + 0x4f79, 0x4f76, 0x4f78, 0x5187, 0x539c, 0x53b1, + /* 0x54 */ + 0x53c1, 0x539a, 0x5392, 0x0daf, 0x53c2, 0x5396, 0x53c0, 0x5391, + 0x5395, 0x54a2, 0x55c3, 0x55c0, 0x55c2, 0x468a, 0x56b0, 0x5716, + 0x5a46, 0x5a4a, 0x5a3e, 0x5a45, 0x5a42, 0x0415, 0x5a5b, 0x5a44, + 0x5b04, 0x7b22, 0x5c55, 0x5c57, 0x5c51, 0x5c4e, 0x5c5a, 0x5dc6, + 0x5dc3, 0x049c, 0x5dc5, 0x5dcc, 0x5e71, 0x5f26, 0x5fb2, 0x607a, + 0x6084, 0x607b, 0x6374, 0x638c, 0x6351, 0x6348, 0x638d, 0x6392, + 0x6398, 0x6393, 0x63b0, 0x634e, 0x6396, 0x6397, 0x639c, 0x63ca, + 0x6833, 0x6883, 0x6884, 0x689a, 0x688c, 0x20cc, 0x6899, 0x69e0, + 0x6ae4, 0x6af8, 0x6aed, 0x6af3, 0x6af4, 0x6af5, 0x6afd, 0x6c19, + 0x6d9e, 0x6dc4, 0x6d9f, 0x6e9b, 0x6e9f, 0x6e9a, 0x71aa, 0x719d, + 0x7192, 0x71a2, 0x71af, 0x71eb, 0x71a0, 0x71a1, 0x7194, 0x7198, + 0x718f, 0x7187, 0x7184, 0x71a9, 0x717c, 0x7418, + /* 0x55 */ + 0x755f, 0x7562, 0x7561, 0x75c0, 0x7615, 0x76fc, 0x76f9, 0x7ac8, + 0x7ac9, 0x7ade, 0x7aca, 0x7ae2, 0x0964, 0x096e, 0x7b04, 0x7acc, + 0x7add, 0x7ae4, 0x7ad3, 0x7ac7, 0x7ac6, 0x095f, 0x7b37, 0x7ed8, + 0x7eee, 0x7eb2, 0x7ea3, 0x7eb3, 0x7eed, 0x7ef8, 0x8031, 0x805b, + 0x8066, 0x8069, 0x8096, 0x809b, 0x80f7, 0x80f3, 0x80f4, 0x80f5, + 0x81e2, 0x81e7, 0x81e5, 0x81e9, 0x81e6, 0x81e3, 0x8374, 0x837f, + 0x838f, 0x8390, 0x8397, 0x83a3, 0x838e, 0x8398, 0x838c, 0x8542, + 0x8544, 0x8569, 0x8543, 0x8568, 0x0af6, 0x868d, 0x8688, 0x868b, + 0x8689, 0x87cc, 0x881f, 0x8980, 0x895e, 0x8967, 0x8968, 0x8965, + 0x254a, 0x8974, 0x8969, 0x8961, 0x8962, 0x896c, 0x8993, 0x8986, + 0x8a9d, 0x8a9b, 0x8b1b, 0x8b16, 0x8b19, 0x8b14, 0x8b18, 0x8b15, + 0x8b99, 0x8b98, 0x8d5d, 0x8d89, 0x8d7a, 0x8d7d, + /* 0x56 */ + 0x8d4b, 0x0c73, 0x8d78, 0x8d7f, 0x8d77, 0x8d7e, 0x8d79, 0x8dab, + 0x8d7c, 0x8d74, 0x8d75, 0x8da7, 0x8e8d, 0x904e, 0x9066, 0x9061, + 0x904d, 0x904f, 0x0cdd, 0x9054, 0x907c, 0x91da, 0x91de, 0x91d8, + 0x91dd, 0x91df, 0x9366, 0x9362, 0x935f, 0x9364, 0x9363, 0x9360, + 0x9388, 0x936a, 0x9367, 0x9387, 0x933f, 0x936c, 0x936e, 0x93ad, + 0x94f1, 0x94f4, 0x94f6, 0x94f5, 0x94f8, 0x94fb, 0x94ec, 0x94ef, + 0x94ed, 0x27b9, 0x94f7, 0x94f9, 0x94fd, 0x95b1, 0x9736, 0x971b, + 0x9732, 0x9742, 0x974d, 0x971f, 0x9721, 0x971c, 0x9731, 0x972e, + 0x9747, 0x973b, 0x9741, 0x9718, 0x9739, 0x971d, 0x9727, 0x9723, + 0x28d7, 0x99ee, 0x99e8, 0x99e5, 0x99ef, 0x99e4, 0x99ec, 0x99f0, + 0x9bd7, 0x9bd8, 0x9bd4, 0x9bca, 0x9bd2, 0x9bcb, 0x9bd3, 0x9be6, + 0x9be2, 0x9d49, 0x9d48, 0x9dff, 0x9e09, 0x9eb0, + /* 0x57 */ + 0x9eaf, 0x9f7c, 0x9f78, 0x9f7a, 0x9f72, 0x9f79, 0x9f7e, 0xa00c, + 0xa00b, 0xa0cd, 0xa0be, 0xa0bc, 0xa0bf, 0xa0c0, 0xa0bd, 0xa338, + 0xa308, 0xa305, 0xa33b, 0xa310, 0xa30c, 0xa30d, 0xa304, 0xa33a, + 0xa313, 0xa337, 0xa339, 0xa41f, 0xa44b, 0xa4ee, 0xa575, 0xa578, + 0xa57c, 0xa574, 0xa576, 0xa5ea, 0xa5eb, 0xa8fb, 0xa919, 0xa9a7, + 0xa98c, 0xa9dc, 0xa998, 0xa9be, 0xa99e, 0xaa0f, 0xa99f, 0xa9dd, + 0xa993, 0xa9bb, 0xa9b6, 0xa990, 0xa9a1, 0xa9bd, 0xa9de, 0xa93a, + 0xaa22, 0xa997, 0xa994, 0xa9c3, 0xa98e, 0xa9a8, 0xa999, 0xa9ad, + 0xa99b, 0xa9a2, 0xaa21, 0xa9ac, 0xaa0e, 0xaa31, 0xace1, 0xacde, + 0xacdf, 0xacdc, 0xacdd, 0xacec, 0xace7, 0xae69, 0xaeb8, 0xaea1, + 0xaea8, 0xaeba, 0xaec2, 0xaea6, 0xaea4, 0xaea3, 0xaeab, 0xaebc, + 0xaeb7, 0xaebf, 0xaead, 0xaeb1, 0xaeca, 0xaec4, + /* 0x58 */ + 0xaeb9, 0xb0c8, 0xb0c6, 0xb0c7, 0xb20a, 0xb20d, 0xb1fb, 0xb203, + 0xb202, 0xb1fc, 0xb1f9, 0xb1f8, 0xb36e, 0xb363, 0xb362, 0xb361, + 0xb36b, 0x1288, 0xb36f, 0xb366, 0xb36c, 0xb40e, 0xb415, 0xb416, + 0xb410, 0xb417, 0xb411, 0xb56e, 0xb56c, 0xb587, 0xb583, 0xb563, + 0xb5dc, 0xb6c0, 0xb6f7, 0xb6fa, 0xb770, 0xb76a, 0xb768, 0xb769, + 0xb784, 0xb7ec, 0xb7e7, 0xb7ee, 0xb8ba, 0xb8b2, 0xb8b5, 0xb8cb, + 0x430b, 0xb8d0, 0xb96d, 0xb96c, 0x13bb, 0xba45, 0xba46, 0xba34, + 0xba2c, 0xba35, 0xba44, 0x13ba, 0xba76, 0xbbb1, 0xbbaa, 0xbba1, + 0xbbb2, 0x1412, 0xbba6, 0xbbb5, 0xbbb4, 0xbbb8, 0xbbaf, 0xbbb0, + 0xbba3, 0xbd62, 0xbd64, 0xbe56, 0xbe51, 0xbe4f, 0xbe68, 0xbe4c, + 0xbe50, 0x1461, 0xbe48, 0xbe4a, 0xbf21, 0xc0e3, 0xc0b9, 0xc0de, + 0xc0b7, 0xc0e1, 0xc0b6, 0xc0b5, 0xc0df, 0x14e1, + /* 0x59 */ + 0xc297, 0xc29a, 0xc29b, 0xc298, 0xc292, 0xc293, 0xc2d7, 0xc273, + 0xc36b, 0xc374, 0xc378, 0xc36d, 0xc418, 0xc4e9, 0xc4f5, 0xc4ea, + 0xc52e, 0xc4e7, 0xc4fe, 0xc4e5, 0xc536, 0xc4f0, 0xc4e6, 0xc52c, + 0xc789, 0xc795, 0xc793, 0xc84d, 0xc84a, 0xc84f, 0xc850, 0xc84b, + 0xca2a, 0xca2b, 0xca2f, 0xca2e, 0xca7c, 0xcaed, 0xcae2, 0xcbe0, + 0xcbdc, 0xcbda, 0xcbd6, 0xcbf4, 0xcbd9, 0xcbd5, 0xcd22, 0xcd21, + 0xcd24, 0xcd25, 0xcd26, 0xcd23, 0xcdaa, 0xcdaf, 0xcdb0, 0xcdab, + 0xceaf, 0xceb7, 0xceb5, 0xceb2, 0xceb3, 0xcf2b, 0xcfd8, 0xcfc2, + 0xcfaf, 0xcfbc, 0xcfb8, 0xcfbe, 0xcfb7, 0xcfb4, 0xcfbf, 0xcfb3, + 0xcfb1, 0xcfbb, 0xcfbd, 0xcfd6, 0xcfdd, 0xd0d8, 0xd0d3, 0xd0d5, + 0xd0e3, 0xd0e2, 0xd0d9, 0xd0de, 0xd0df, 0xd0da, 0xd0d4, 0xd1f3, + 0xd1e2, 0xd20d, 0xd201, 0xd205, 0xd21a, 0xd203, + /* 0x5a */ + 0xd21f, 0xd216, 0xd1fa, 0xd1fc, 0xd20a, 0x359f, 0xd3bc, 0xd3ca, + 0xd3b6, 0xd3c7, 0xd3bf, 0x1789, 0xd3b9, 0x178c, 0xd3b0, 0xd3b8, + 0xd3bd, 0xd391, 0xd3bb, 0xd3be, 0xd53e, 0xd53d, 0xd638, 0xd63d, + 0xd639, 0xd633, 0xd733, 0xd7bb, 0xd7c6, 0xd7c5, 0xd7c7, 0xd7cb, + 0xd7a8, 0xd7c8, 0xd7be, 0xd7c1, 0xd7bd, 0xd882, 0xd89e, 0xd881, + 0xd884, 0x368d, 0xd896, 0xd88e, 0xd888, 0xd887, 0xdae0, 0xdb0d, + 0xdadf, 0xdae4, 0xdae2, 0xdadd, 0xdaec, 0xdade, 0xdae7, 0xdaea, + 0xdae3, 0xdd5c, 0x3977, 0xdd5d, 0xdd9c, 0xde1d, 0xde9d, 0xde9e, + 0xde9b, 0xdeb5, 0xdeb9, 0xdeb6, 0xdef3, 0xdef2, 0xdef4, 0xdf26, + 0xdf27, 0xdf25, 0xe006, 0xe00b, 0xe03a, 0xe03c, 0x3f0a, 0x3f0b, + 0x3fbf, 0x3ffd, 0x4118, 0xccdf, 0x8e90, 0x419e, 0x42fc, 0x4310, + 0x430f, 0x430d, 0x43b9, 0x43b7, 0x43ba, 0x440a, + /* 0x5b */ + 0x4b41, 0x4b8b, 0x4b46, 0x4b53, 0x4be2, 0x4b3f, 0x4a7c, 0x4b4b, + 0x4b4e, 0x4b8a, 0x4b47, 0x4f93, 0xb8ce, 0x4f8c, 0x4faf, 0x4fc9, + 0x50c6, 0x50c8, 0x5191, 0x53cf, 0x53d4, 0x53ce, 0x55dd, 0x55d4, + 0x5a49, 0x5a63, 0x5a5d, 0x041a, 0x5a67, 0x5abb, 0x5a60, 0x5a80, + 0x5c5f, 0x5c60, 0x5dda, 0x5dd2, 0x5ddd, 0x608e, 0x6088, 0x606c, + 0x639e, 0x63c9, 0x63a4, 0x0598, 0x63d9, 0x63d2, 0x63da, 0x63dd, + 0x63ce, 0x63fc, 0x6514, 0x6560, 0x68d7, 0x68cb, 0x68cd, 0x68d5, + 0x69e7, 0x6b00, 0x6b0a, 0x6b0f, 0x6b02, 0x6b01, 0x6c1d, 0x6dca, + 0x6dcb, 0x6dcd, 0x6e4f, 0x6e9c, 0x7180, 0x720d, 0x7202, 0x07f1, + 0x7207, 0x71f7, 0x71f8, 0x71fd, 0x7224, 0x71fb, 0x7239, 0x723a, + 0x7422, 0x21a9, 0x756a, 0x756d, 0x7574, 0x770e, 0x7adf, 0x7b2b, + 0x7ae3, 0x7b26, 0x7b2a, 0x7b23, 0x7b35, 0x7b4a, + /* 0x5c */ + 0x7efd, 0x7f00, 0x7f1e, 0x7eff, 0x809e, 0x80fa, 0x81f1, 0x8395, + 0x83a8, 0x83a6, 0x856e, 0x8583, 0x856d, 0x868f, 0x0b6a, 0x87df, + 0x87d5, 0x87e0, 0x87d3, 0x87d8, 0x898c, 0x254b, 0x8994, 0x8996, + 0x8985, 0x898f, 0x89a9, 0x898e, 0x8990, 0x89b8, 0x89c3, 0x89bb, + 0x8aa5, 0x8aa2, 0x25a2, 0x8aa3, 0x8bb5, 0x8bac, 0x8ba8, 0x8dad, + 0x8db8, 0x8db4, 0x8dae, 0x8db6, 0x1085, 0x8dc1, 0x8dbf, 0x8e92, + 0x8f00, 0x8f01, 0x9075, 0x9072, 0x9078, 0x9070, 0x907e, 0x907d, + 0x907f, 0x91ef, 0x936d, 0x938e, 0x938f, 0x938a, 0x938d, 0x9395, + 0x938b, 0x938c, 0x93b0, 0x9393, 0x94fc, 0x9515, 0x950e, 0x9518, + 0x9511, 0x950d, 0x95bb, 0x95b3, 0x0e39, 0x97a1, 0x979a, 0x9784, + 0x97a0, 0x9786, 0x979d, 0x97aa, 0x9778, 0x978d, 0x978a, 0x97a6, + 0x977a, 0x9797, 0x9788, 0x978e, 0x0e3d, 0x0e44, + /* 0x5d */ + 0x9776, 0x9781, 0x9785, 0x9775, 0x97a8, 0x978f, 0x9791, 0x97a2, + 0x979c, 0x9789, 0x977f, 0x9796, 0x9779, 0x979f, 0x97a7, 0x0e46, + 0x9787, 0x979b, 0x97a5, 0x978b, 0x97c9, 0x99ff, 0x9a03, 0x9a00, + 0x9a02, 0x9a04, 0x9a05, 0x99e6, 0x9a1f, 0x9c14, 0x0f0e, 0x9c0c, + 0x9c0f, 0x9c19, 0x9c0b, 0x9c13, 0x9bd5, 0x0f10, 0x9c1c, 0x9d50, + 0x9d4e, 0x9e12, 0x9eb9, 0x9f85, 0x9f88, 0x9f90, 0xa013, 0xa0d0, + 0xa0d1, 0xa0d2, 0xa0d7, 0xa0d6, 0xa0e5, 0xa346, 0xa36b, 0xa345, + 0xa33f, 0xa33e, 0x103e, 0xa36a, 0xa368, 0xa34c, 0xa423, 0xa422, + 0xa497, 0xa491, 0x95b5, 0xa498, 0xa49c, 0xa589, 0x1084, 0xa58b, + 0xa58a, 0xa58d, 0xa58e, 0xa588, 0xaa4e, 0xaa44, 0xaa37, 0xaa75, + 0xaa54, 0xaa76, 0xaa34, 0xaa6b, 0xaa32, 0xaa57, 0xaa52, 0xaa45, + 0x1149, 0xa9b1, 0xaa4b, 0xaa47, 0xaa33, 0xaa40, + /* 0x5e */ + 0xaa3c, 0xaa43, 0xaa4f, 0xaa55, 0xaa41, 0xaab2, 0xaac0, 0xaf34, + 0xaef9, 0xaf19, 0xaf0d, 0xaefa, 0xaf1e, 0xaf1f, 0xaf0e, 0xaf40, + 0xaf08, 0x11df, 0xaf13, 0xaf4c, 0x11f0, 0xb0cc, 0xb0cb, 0xb224, + 0xb225, 0xb23d, 0xb220, 0xb227, 0xb226, 0xb21d, 0xb21e, 0xb232, + 0xb26c, 0xb259, 0x128a, 0xb37a, 0xb379, 0xb41b, 0xb42e, 0xb423, + 0xb420, 0xb41f, 0xb5b6, 0xb5b9, 0xb5a1, 0xb5a3, 0xb5a8, 0xb5af, + 0xb59a, 0xb599, 0xb5a2, 0xb59d, 0x1302, 0xb5ab, 0xb6c9, 0xb6fe, + 0xb700, 0xb6fc, 0xb707, 0xb775, 0xb772, 0xb773, 0xb774, 0xb7fa, + 0xb7fc, 0xb7f8, 0xb7f6, 0xb7fb, 0xb8cd, 0xb8d1, 0xb8cf, 0xb974, + 0xb972, 0xb973, 0xba54, 0xba51, 0x13c0, 0xba53, 0xba49, 0xba4c, + 0xba4a, 0xba4f, 0xba56, 0xbc00, 0xbbd5, 0xbbd7, 0xbbff, 0xbbd9, + 0xbbe3, 0xbbd3, 0x1415, 0xbbd8, 0xbbd4, 0xbbde, + /* 0x5f */ + 0xbd71, 0xbe74, 0xbe88, 0xbe7f, 0xbe6b, 0xbe87, 0xbe79, 0xbe78, + 0xbe89, 0xbe80, 0xbe76, 0xbf29, 0xbf28, 0xbf2f, 0xc0e5, 0xc104, + 0xc103, 0xc0f0, 0xc0e8, 0xc0ea, 0xc0f1, 0xc101, 0xc102, 0xc2a9, + 0xc2ab, 0xc2b7, 0xc2b6, 0x14e2, 0xc3a0, 0xc38e, 0xc386, 0xc387, + 0xc385, 0xc38b, 0xc388, 0xc390, 0xc41a, 0xc434, 0xc537, 0xc52f, + 0xc530, 0xc539, 0xc534, 0xc533, 0xc585, 0xc584, 0xc53a, 0xc79f, + 0xc869, 0xc86c, 0xc86a, 0xc867, 0xc86b, 0xca3f, 0xca40, 0xcb0b, + 0xcbd2, 0xcbf8, 0xcc01, 0xcbfa, 0xcc16, 0xe3f6, 0xcd2c, 0xcd2d, + 0xcd2f, 0xcd2e, 0xcdc1, 0xcdf5, 0xcdc4, 0xcdde, 0xcdcc, 0xcdd2, + 0xcdc2, 0xcdcd, 0xcdcf, 0xcddd, 0xcdc8, 0xceba, 0xcebe, 0xcebf, + 0xcf2e, 0xcf30, 0xcfe7, 0xcfee, 0xcfe8, 0xcfe6, 0xcfe2, 0xcfe4, + 0xcffb, 0xcffc, 0xcfea, 0xd0ed, 0xd0f6, 0xd0f3, + /* 0x60 */ + 0xd0f4, 0xd0f1, 0xd0f7, 0xd0f5, 0xd0ea, 0xd0eb, 0xd200, 0xd22c, + 0xd212, 0xd23d, 0xd233, 0x174d, 0xd230, 0xd240, 0xd231, 0xd257, + 0x174a, 0xd235, 0xd232, 0xd22d, 0xd236, 0xd238, 0xd262, 0xd25f, + 0xd28a, 0xd3d6, 0xd3d8, 0xd3dd, 0xd3e4, 0xd3e3, 0xd54d, 0xd5d7, + 0xd64a, 0xd64c, 0xd650, 0xd64b, 0xd64e, 0xd64f, 0xd739, 0xd7d2, + 0xd7cd, 0xd7d3, 0xd7e1, 0xd7ce, 0xd7d5, 0xd7dd, 0xd7d4, 0xd7cf, + 0xd8cb, 0xd8a6, 0xd8c2, 0xd8a5, 0xd8a9, 0xd8a2, 0xd8a4, 0xd8b0, + 0xd8cc, 0xd8af, 0xd8bf, 0xdb24, 0xdb1a, 0xdb14, 0xdb3a, 0xdb20, + 0xdb1b, 0xdb21, 0xdb25, 0xdb1e, 0xdb3f, 0xdb40, 0xdb18, 0xdb2c, + 0xdb15, 0xdb2d, 0xdb1f, 0xdb29, 0xdb4b, 0xddb3, 0xdda5, 0xdda7, + 0xddab, 0xdda6, 0xddaa, 0xde22, 0xde23, 0xdea1, 0xdea3, 0xdea0, + 0xdebd, 0xdeba, 0xdefa, 0xdef8, 0xdefc, 0xdef6, + /* 0x61 */ + 0xdf34, 0xdf43, 0x1963, 0xdfd4, 0xe00d, 0xe043, 0xe041, 0xe03d, + 0xe040, 0xe03e, 0xe03f, 0xe046, 0x1993, 0xe0d4, 0x3f35, 0x3f36, + 0x3f32, 0x3f3a, 0x3fc8, 0x4036, 0x411e, 0x411d, 0x411f, 0x431c, + 0x431d, 0x4320, 0x010e, 0x43c0, 0x4b9a, 0x4b93, 0x4bdd, 0x020a, + 0x4ba3, 0x4ba9, 0x4b9c, 0x4b9b, 0x020d, 0x4b97, 0x4fb1, 0x4fca, + 0x4fb3, 0x4fcd, 0x53ea, 0x53ee, 0x53ef, 0x55df, 0x5650, 0x56bb, + 0x5a88, 0x5a89, 0x5a8c, 0x5a85, 0x5a5e, 0x5a94, 0x5a95, 0x5c6b, + 0x5c6a, 0x5c69, 0x5de3, 0x5df1, 0x5f37, 0x5f33, 0x6091, 0x608f, + 0x6097, 0x63d4, 0x63de, 0x63d3, 0x63e0, 0x6443, 0x640b, 0x63ff, + 0x6404, 0x6407, 0x68f9, 0x68fa, 0x68fb, 0x68f8, 0x6b12, 0x6b10, + 0x6c1f, 0x6ddf, 0x6de3, 0x6e52, 0x6ea9, 0x7265, 0x7287, 0x7242, + 0x7252, 0x724c, 0x719f, 0x7201, 0x7248, 0x724f, + /* 0x62 */ + 0x727e, 0x724d, 0x7258, 0x7247, 0x725e, 0x7249, 0x724e, 0x725d, + 0x725a, 0x7286, 0x7251, 0x7429, 0x74a6, 0x74a7, 0x7570, 0x756f, + 0x75d3, 0x75d2, 0x7728, 0x771b, 0x771a, 0x771c, 0x7721, 0x7b32, + 0x7b66, 0x7b7d, 0x7b73, 0x7b7f, 0x7b65, 0x7b80, 0x7b61, 0x7b75, + 0x7b6e, 0x7b67, 0x7b71, 0x7b6c, 0x7b63, 0x7b62, 0x7b83, 0x7bb2, + 0x7b81, 0x7b6f, 0x7b6b, 0x7b82, 0x7b8a, 0x7f29, 0x7f30, 0x7f31, + 0x8097, 0x8100, 0x80ff, 0x83b6, 0x83b5, 0x83c3, 0x858d, 0x8618, + 0x869c, 0x869a, 0x8699, 0x89b7, 0x89c4, 0x89c6, 0x89c7, 0x89bc, + 0x89c0, 0x89c5, 0x89cd, 0x89c1, 0x89be, 0x8aa7, 0x8ab8, 0x8b23, + 0x0c74, 0x8de8, 0x8dde, 0x8de3, 0x8def, 0x8ddc, 0x8de4, 0x8de1, + 0x8de5, 0x8e95, 0x8e94, 0x8e93, 0x8e8e, 0x9098, 0x909c, 0x9099, + 0x90a0, 0x909e, 0x9204, 0x93d3, 0x93b4, 0x93bb, + /* 0x63 */ + 0x93b7, 0x93b8, 0x93bd, 0x93b6, 0x93b9, 0x93b5, 0x9522, 0x9521, + 0x95c3, 0x95bc, 0x97ff, 0x97e5, 0x97f7, 0x97d2, 0x9800, 0x97db, + 0x97f0, 0x97e2, 0x97cd, 0x0e56, 0x97e1, 0x97f2, 0x97dc, 0x97cc, + 0x97d6, 0x97f3, 0x97fa, 0x97f6, 0x97ec, 0x97ea, 0x97e3, 0x97d0, + 0x0e5a, 0x9795, 0x97d5, 0x97f4, 0x97cb, 0x97da, 0x97c8, 0x97df, + 0x97f5, 0x97cf, 0x97c7, 0x97d7, 0x9a24, 0x0ea3, 0x9a1c, 0x9a21, + 0x9a1e, 0x9a18, 0x9a1b, 0x0ea8, 0x9c46, 0x9c4b, 0x9c48, 0x9c47, + 0x9c67, 0x9c54, 0x9e15, 0x9e22, 0x9ec5, 0x9e29, 0x9ec7, 0x9f8d, + 0xa01b, 0xa020, 0xa0e2, 0xa0e7, 0xa0e8, 0xa0e1, 0xa372, 0xa37b, + 0xa374, 0xa371, 0xa379, 0xa375, 0xa390, 0xa377, 0xa37d, 0xa44f, + 0xa450, 0xa4a3, 0xa4a2, 0xa4f4, 0xa594, 0xa59a, 0xa59b, 0xa5a7, + 0xa597, 0xa595, 0xa592, 0xa59c, 0xa596, 0xaab6, + /* 0x64 */ + 0xaab8, 0xaab0, 0xab18, 0xaac5, 0xaab5, 0xaac2, 0xab06, 0xab19, + 0xaab9, 0xab15, 0xaad6, 0xaaac, 0x113c, 0xaac6, 0xaab3, 0xaac3, + 0xaaca, 0xaacf, 0xaabd, 0xaace, 0xab14, 0xaaba, 0xab1a, 0xaac1, + 0xaabb, 0x119b, 0x119a, 0xad01, 0xacfc, 0xaf5a, 0xaf54, 0xaf61, + 0xaf5c, 0xaf55, 0xaf4a, 0xaf4b, 0xaf51, 0xaf69, 0xaf6b, 0x2cf1, + 0xaf66, 0xaf58, 0xaf5d, 0xaf67, 0xaf56, 0xaf88, 0xaf64, 0xaf4e, + 0xb257, 0xb25a, 0xb251, 0xb24a, 0xb24b, 0x125e, 0xb247, 0xb26f, + 0xb26a, 0xb26b, 0xb246, 0xb26d, 0xb254, 0xb26e, 0xb24c, 0xb378, + 0xb386, 0xb382, 0x12a7, 0xb5e1, 0xb5e5, 0xb5db, 0xb5de, 0xb5d7, + 0xb703, 0xb77c, 0xb77e, 0xb805, 0xb807, 0xb8e6, 0xb8e1, 0xb8fb, + 0xb8e5, 0xb8e7, 0xb8df, 0xb8ff, 0xb976, 0xba63, 0xba66, 0xba65, + 0xba5e, 0xba64, 0xba6b, 0xba5f, 0xba67, 0xba68, + /* 0x65 */ + 0xbc08, 0xbc09, 0xbc17, 0xbc15, 0xbc1b, 0xbc0b, 0xbc28, 0xbc0e, + 0xbc18, 0xbc53, 0xbc45, 0xbc0d, 0xbc0a, 0xbc13, 0xbc4a, 0xbd79, + 0xbea1, 0xbe8d, 0xbea2, 0xbe90, 0x146e, 0xbf31, 0xbf30, 0xc11f, + 0xc119, 0xc10c, 0xc11e, 0xc11d, 0xc107, 0xc266, 0xc2c5, 0xc2ba, + 0xc2bd, 0xc2c2, 0xc2c3, 0xc2bf, 0x150d, 0xc3a1, 0xc3a2, 0xc3a8, + 0xc3a3, 0xc3aa, 0xc3af, 0xc3b9, 0xc437, 0xc58f, 0x1543, 0xc58e, + 0xc587, 0xc58a, 0xc592, 0xc597, 0xc59f, 0xc605, 0xc7a9, 0xc7a7, + 0xc88a, 0xc882, 0xc885, 0xc88b, 0xc889, 0xc881, 0xc880, 0xc887, + 0xc886, 0xca4d, 0xcb1c, 0xcb1f, 0xcc21, 0xcc1d, 0xcc22, 0xcbfe, + 0xcc1b, 0xcc3a, 0xcc37, 0xcc17, 0xcc38, 0xcc26, 0xcc18, 0xcd34, + 0xcd35, 0xcd32, 0x1673, 0xcde1, 0xcdfd, 0xcde3, 0xcde8, 0xcdf9, + 0xcdff, 0xcdfe, 0x1674, 0xcde0, 0xce00, 0x1670, + /* 0x66 */ + 0xcdec, 0xcde4, 0xcdef, 0xcdfa, 0xceca, 0xcf31, 0xcf32, 0xcf34, + 0xcf41, 0xd000, 0xd006, 0xd008, 0xd005, 0xd003, 0xd00b, 0xd002, + 0xd00a, 0xd0f0, 0xd113, 0xd10a, 0xd10f, 0xd111, 0xd108, 0xd10b, + 0xd112, 0xd10d, 0xd25b, 0xd263, 0xd261, 0xd268, 0xd25a, 0xd34e, + 0xd34d, 0xd350, 0xd3fc, 0xd412, 0xd3f5, 0xd41e, 0xd3f0, 0xd3f3, + 0xd3f2, 0xd401, 0xd3ef, 0xd3ee, 0xd416, 0xd3f6, 0xd3fb, 0xd41c, + 0x17db, 0xd55d, 0xd560, 0xd566, 0xd55f, 0xd561, 0xd55b, 0xd562, + 0xd557, 0xd669, 0xd66b, 0xd661, 0xd677, 0xd65f, 0xd663, 0xd662, + 0xd665, 0xd7ef, 0xd7e2, 0xd800, 0xd7e8, 0xd7f2, 0xd7e7, 0x1829, + 0xd7e5, 0xd8d5, 0xd8d0, 0xd8da, 0xd8d3, 0x1851, 0xd8d9, 0xd8cf, + 0xd8d6, 0xd8d8, 0xd8f5, 0xd8ce, 0xd8d7, 0xd8f4, 0xd8cd, 0xd901, + 0x36ba, 0xdb52, 0xdb55, 0xdb5a, 0xdb4d, 0xdb54, + /* 0x67 */ + 0xdb53, 0xdb5e, 0xdb67, 0xdb65, 0xdb4e, 0x18db, 0xdb4f, 0xdb61, + 0xdb6e, 0xdb51, 0xdb5b, 0xdd63, 0xddb7, 0xddb6, 0xddc3, 0xddbb, + 0xddb5, 0xde2e, 0xde30, 0xde33, 0xde31, 0xdea4, 0xdec1, 0xdebb, + 0xdebe, 0xdf00, 0xdeff, 0xdf40, 0x1965, 0xdf3f, 0xdf44, 0x1964, + 0x1967, 0xdfdb, 0xe00f, 0xe011, 0xe04e, 0xe04d, 0xe04b, 0xe04c, + 0xe095, 0x3f3b, 0x3f45, 0x3f44, 0x3f3e, 0x3f3c, 0x3f3f, 0x3fcc, + 0x3fce, 0x4122, 0x4123, 0x419f, 0x43c5, 0x43c4, 0x4be9, 0x4b99, + 0x0211, 0x4be6, 0x4be7, 0x4bf7, 0x4fd2, 0x0333, 0x53fd, 0x540c, + 0x540b, 0x57ed, 0x0421, 0x0422, 0x5a9b, 0x5b0a, 0x5c6f, 0x5c75, + 0x5df2, 0x5df8, 0x5f3e, 0x6424, 0x640e, 0x6416, 0x6418, 0x6410, + 0x6431, 0x6444, 0x05a6, 0x6429, 0x642f, 0x644b, 0x6436, 0x05a3, + 0x6934, 0x6900, 0x692b, 0x6b20, 0x6b21, 0x6b1e, + /* 0x68 */ + 0x6b1d, 0x6df5, 0x6df2, 0x6df6, 0x7290, 0x729d, 0x729c, 0x7292, + 0x7294, 0x72d1, 0x7293, 0x72b7, 0x7297, 0x72b0, 0x729f, 0x72c9, + 0x742d, 0x742c, 0x7577, 0x772c, 0x7bc0, 0x7bb9, 0x7f53, 0x8040, + 0x8202, 0x81fb, 0x0aa1, 0x858b, 0x85ae, 0x85ab, 0x86a1, 0xddcd, + 0x87ea, 0x89dd, 0x89dc, 0x89d9, 0x8aab, 0x8aac, 0x8aad, 0x8ab2, + 0x8b2c, 0x8b2b, 0x8bc2, 0x8e00, 0x8e0d, 0x8e06, 0x8dff, 0x8e03, + 0x8e01, 0x8e10, 0x8e0f, 0x8e05, 0x8e98, 0x8e97, 0x8e96, 0x8e99, + 0x90ac, 0x90ab, 0x9212, 0x93d8, 0x93df, 0x93d6, 0x952d, 0x9532, + 0x983f, 0x982f, 0x9826, 0x983a, 0x9839, 0x0e5f, 0x983b, 0x9835, + 0x982a, 0x9821, 0x9838, 0x9837, 0x9834, 0x0e5c, 0x9822, 0x9836, + 0x9844, 0x9a45, 0x9a3b, 0x9a36, 0x9a42, 0x9c7a, 0x9c86, 0x9c8b, + 0x9c7f, 0x9c81, 0x9e2a, 0x9ed5, 0x9f9f, 0x9f9d, + /* 0x69 */ + 0xa026, 0xa0f4, 0xa0f5, 0xa315, 0xa38e, 0xa38f, 0xa426, 0xa4a7, + 0xa4af, 0xa5ad, 0xa5ac, 0xa5ab, 0xa5aa, 0xab2f, 0xab21, 0xab23, + 0xaba3, 0xab49, 0xab3a, 0xab48, 0xab2d, 0xab25, 0xab29, 0xab32, + 0xab34, 0xab24, 0xab2c, 0xab4b, 0xab3b, 0xab20, 0xab28, 0xaf98, + 0x11f5, 0xaf97, 0x2d04, 0xaf9d, 0xafa8, 0xb0d5, 0xb277, 0xb278, + 0xb272, 0xb273, 0xb302, 0xb43b, 0xb5fe, 0xb60b, 0xb5ff, 0xb607, + 0x1311, 0x130c, 0xb630, 0xb6cd, 0xb6cf, 0xb710, 0xb70a, 0xb783, + 0xb815, 0xb80e, 0xb80c, 0xb902, 0xb8fe, 0xb905, 0xb915, 0xb908, + 0xba7f, 0xba77, 0xba7c, 0xba82, 0xba7e, 0xba78, 0xba7d, 0xba79, + 0xba81, 0xbc4b, 0xbc63, 0xbc64, 0xbc56, 0xbc54, 0xbc4e, 0xbc10, + 0xbc4f, 0xbc57, 0xbc5e, 0xbc51, 0xbc6a, 0xbc69, 0xbead, 0xbea4, + 0xbeac, 0xbea9, 0xbeae, 0x3f4c, 0xc150, 0xc135, + /* 0x6a */ + 0xc132, 0xc2d8, 0xc2d1, 0xc2cf, 0xc2be, 0xc3d5, 0xc3c1, 0xc3c6, + 0xc3c3, 0xc3c2, 0xc3c0, 0xc3c5, 0xc3c7, 0xc3bf, 0xc3c4, 0xc3d4, + 0xc590, 0xc5d2, 0x154e, 0xc5d4, 0xc7af, 0xc7ae, 0xc7b2, 0xc7ad, + 0xc89c, 0xc8a0, 0xc8b6, 0xca3d, 0xca56, 0xca82, 0xcb28, 0xcb2b, + 0xcc3c, 0xcc3e, 0xcc3f, 0xcc42, 0xcc3d, 0xcc41, 0xcc3b, 0xcc49, + 0xcc43, 0xcd39, 0xcd38, 0xce22, 0xce08, 0xce0c, 0xce06, 0xce13, + 0xce04, 0xce20, 0xce1d, 0xce05, 0xce0a, 0xced6, 0xced7, 0xcf36, + 0xcf37, 0xd023, 0xd022, 0xd020, 0xd01a, 0xd01d, 0xd11c, 0xd120, + 0xd177, 0xd27f, 0xd28b, 0xd27d, 0xd299, 0xd284, 0xd289, 0xd285, + 0xd283, 0xd286, 0xd29e, 0xd353, 0xd417, 0x1794, 0xd419, 0xd420, + 0xd41f, 0xd423, 0xd418, 0xd421, 0xd429, 0xd424, 0xd426, 0xd55e, + 0xd56f, 0xd56e, 0xd574, 0xd572, 0xd573, 0xd67d, + /* 0x6b */ + 0xd67e, 0xd685, 0xd67f, 0xd684, 0xd744, 0xd7f5, 0xd7f8, 0xd803, + 0xd7f6, 0xd928, 0x1863, 0xd939, 0xd8fb, 0xd90e, 0xd8fd, 0xd91f, + 0x1861, 0xd903, 0x36d8, 0xd910, 0x185a, 0xd90d, 0xd927, 0xd941, + 0xdb72, 0xdb78, 0xdb80, 0x18e3, 0xdb85, 0xdb7b, 0x387c, 0xdb7d, + 0xdb91, 0xdb88, 0xdbaa, 0xdb8d, 0xdb89, 0xdb95, 0xdb9b, 0xdb8c, + 0xdb9e, 0xdb7c, 0xdb86, 0xdb84, 0xdd68, 0xddc5, 0xddc4, 0xddc9, + 0xddc6, 0xde42, 0xde45, 0xde41, 0xde44, 0xdea6, 0xdec2, 0xdf42, + 0xdf49, 0xdf48, 0xdf4a, 0xdf4c, 0xdf4b, 0xe017, 0xe018, 0xe015, + 0xe052, 0xe054, 0xe053, 0xe09a, 0xe09b, 0xe0dc, 0xe0e4, 0xe191, + 0x19af, 0xe1ba, 0x3f51, 0x3f5b, 0x3fcf, 0x6e05, 0x4c13, 0x4c15, + 0x4c14, 0x4c23, 0x0213, 0x4c11, 0x4c12, 0x0280, 0x4ff0, 0x519b, + 0x5412, 0x5416, 0x5417, 0x54b5, 0x57f4, 0x5ab1, + /* 0x6c */ + 0x5c79, 0x5dff, 0x5dfc, 0x5dfb, 0x5f3f, 0x5f44, 0x609d, 0x6432, + 0x644c, 0x642b, 0x645a, 0x651f, 0x6901, 0x692d, 0x6927, 0x6959, + 0x695a, 0x694d, 0x6958, 0x6b23, 0x6b25, 0x6b2b, 0x6dff, 0x6eae, + 0x72cb, 0x72ca, 0x72d0, 0x72ce, 0x72cc, 0x72d8, 0x72c6, 0x72d2, + 0x72cf, 0x72c8, 0x7617, 0x19b0, 0x7bc4, 0xcd40, 0x7be9, 0x7bf2, + 0x7bfc, 0x7bea, 0x7beb, 0x7bfd, 0x7f78, 0x7f77, 0x7f73, 0x7f9e, + 0x7f79, 0x80a2, 0x8103, 0x8204, 0x8205, 0x83ce, 0x85bf, 0x89f6, + 0x89f7, 0x8b31, 0x8b30, 0x8bc9, 0x8bc7, 0x8e1c, 0x8e28, 0x8e1a, + 0x8e1e, 0x8e1b, 0x8e1f, 0x90bf, 0x90bb, 0x90bc, 0x90c0, 0x921a, + 0x93ef, 0x93ec, 0x93e9, 0x93f0, 0x93fe, 0x9534, 0x986a, 0x9895, + 0x986c, 0x9872, 0x9867, 0x9860, 0x986b, 0x985e, 0x986f, 0x9866, + 0x2946, 0x9862, 0x985d, 0x985c, 0xe365, 0x9a50, + /* 0x6d */ + 0x9c9f, 0x0f23, 0x9c9e, 0x9ca6, 0x9e35, 0x9e38, 0x9e36, 0x9e3a, + 0x9edc, 0xa37c, 0xa3ab, 0x1049, 0xa3a8, 0xa3a7, 0xa42b, 0xa42c, + 0xa428, 0x442b, 0xa4a9, 0xa4aa, 0xa4ab, 0xa4f8, 0xa5b1, 0xa5f0, + 0xa5ef, 0xaba8, 0xab8b, 0xab94, 0xab9e, 0xab8f, 0xab88, 0xab7e, + 0xab81, 0xab30, 0xab9b, 0xab82, 0xab90, 0xab85, 0xab7f, 0xaba9, + 0xabde, 0xad0d, 0x11fa, 0xafcf, 0xafcb, 0xafd8, 0xafdd, 0xafd3, + 0xafd0, 0xafd5, 0xafd6, 0xb0d6, 0xb292, 0xb295, 0xe0cb, 0xb28d, + 0xb29b, 0xb29d, 0xb28f, 0xb29e, 0xb2a6, 0xb396, 0xb392, 0xb616, + 0xb62a, 0xb629, 0xb62c, 0xb715, 0xb712, 0xb711, 0xb713, 0xb788, + 0xb78b, 0xb78a, 0xb787, 0xb817, 0xb816, 0xb81a, 0xb919, 0xb917, + 0xba91, 0xba94, 0xbc8b, 0xbc90, 0xbc8f, 0xbc86, 0xbc83, 0xbc8e, + 0xbc87, 0xbca8, 0xbc85, 0xbca6, 0xbc82, 0xbca7, + /* 0x6e */ + 0xbeb9, 0xbeb7, 0xbeb4, 0xbeb6, 0xbeb3, 0xbec6, 0xc13c, 0xc140, + 0xc138, 0xc291, 0xc2a6, 0xc2da, 0xc3da, 0xc3d8, 0xc3d9, 0xc3db, + 0xc3d7, 0xc616, 0xc612, 0xc61f, 0x1559, 0xc614, 0xc61a, 0xc610, + 0xc7b3, 0xc8ae, 0xc8c1, 0xc8b0, 0xc8af, 0xc8b1, 0xc8ad, 0xc8b2, + 0xc8c4, 0xcb3c, 0xcb3f, 0xcc61, 0xcc66, 0xcd3c, 0xcd3b, 0xce2c, + 0x167e, 0xce2a, 0xce3e, 0xce2f, 0xce32, 0xce27, 0xce29, 0xce40, + 0xcedf, 0xcede, 0xcf3c, 0xcf3b, 0xcf3e, 0xd021, 0xd046, 0xd03c, + 0xd036, 0xd038, 0xd035, 0xd131, 0xd136, 0xd12d, 0xd133, 0xd12f, + 0xd12e, 0xd135, 0xd2ac, 0xd2a9, 0xd2a6, 0x17a8, 0xd44c, 0xd443, + 0xd441, 0xd44f, 0xd442, 0xd451, 0x17a9, 0xd440, 0xd450, 0xd445, + 0xd44a, 0xd44b, 0xd583, 0xd582, 0xd581, 0xd5e0, 0xd698, 0xd69f, + 0xd69b, 0xd69a, 0xd699, 0xd696, 0xd6ae, 0xd69e, + /* 0x6f */ + 0xd809, 0xd80d, 0xd94e, 0xd94a, 0xd94d, 0xd940, 0xd93e, 0xd948, + 0xd942, 0xd962, 0xd945, 0xd951, 0xdbc6, 0xdbd0, 0xdbc0, 0xdbb7, + 0xdbc2, 0xdbbc, 0xdbc5, 0xdbdc, 0xdbdb, 0xdbd2, 0xdbc7, 0xdbb6, + 0xdbc9, 0xdbcc, 0xdbd1, 0xdbcd, 0xdbda, 0xdbba, 0xdbd3, 0xdbce, + 0xdbf6, 0xdbbd, 0xdbdd, 0xdbc8, 0xdc0d, 0xdc35, 0xdd71, 0xdd6e, + 0xdd6f, 0xddd6, 0xde4c, 0xde4f, 0xde54, 0xde53, 0xdec9, 0xdec8, + 0xdf03, 0x1954, 0xdf04, 0x1956, 0xdf57, 0xdf52, 0xdf53, 0x196d, + 0xdf56, 0xdf5c, 0xdf55, 0xe064, 0xe05d, 0xe05e, 0xe0a2, 0xe0a3, + 0x198e, 0xe0e7, 0xe0e6, 0xe198, 0xe1ac, 0xe1af, 0xe1ae, 0x3f59, + 0x40a9, 0x432a, 0x43c7, 0x4c41, 0x4c37, 0x4c35, 0x4c33, 0x4c39, + 0x4c32, 0x4fff, 0x5001, 0x4ff8, 0x541b, 0x5419, 0x56bf, 0x5abc, + 0x5abe, 0x5abd, 0x5c7d, 0x5f46, 0x5f47, 0x60a4, + /* 0x70 */ + 0x6521, 0x6562, 0x6986, 0x0672, 0x6b2f, 0x6b31, 0x0814, 0x72f8, + 0x72f5, 0x72f9, 0x72f2, 0x72fa, 0x72f3, 0x7314, 0x72fd, 0x730f, + 0x730e, 0x7301, 0x7437, 0x7435, 0x7434, 0x7431, 0x757a, 0x757b, + 0x7737, 0x7c2b, 0x7bfb, 0x7c16, 0x7c13, 0x0993, 0x7c11, 0x7c0f, + 0x7c1b, 0x7c38, 0x7fa4, 0x8209, 0x8207, 0x820b, 0x83d3, 0x83d1, + 0x83d8, 0x861d, 0x86a9, 0x86d0, 0xad15, 0x8a02, 0x8a05, 0x8a01, + 0x8a00, 0x8e2e, 0x8e30, 0x8e2f, 0x8e31, 0x90d2, 0x90d3, 0x9402, + 0x9540, 0x9542, 0x953b, 0x95ce, 0x9898, 0x988f, 0x9894, 0x9891, + 0x0e6f, 0x98ba, 0x9890, 0x9886, 0x989a, 0x988c, 0x9893, 0x9887, + 0x9888, 0x9897, 0x988d, 0x989c, 0x98bd, 0x9a3c, 0x9a59, 0x0eb0, + 0x9cd1, 0x9cbb, 0x9cbe, 0x9d5d, 0x9ee2, 0xa105, 0xa3ba, 0x012e, + 0xa3f4, 0xa4b2, 0xa4f9, 0xa5b7, 0xa5b6, 0xab89, + /* 0x71 */ + 0xabf9, 0xabd9, 0xabe8, 0xabd4, 0xabdb, 0xabe2, 0xabdf, 0xabd1, + 0xabe9, 0xabea, 0xad13, 0xad11, 0xaffa, 0xaff8, 0xaff4, 0xaffb, + 0xb00e, 0xb002, 0xb00f, 0xb290, 0xb2ad, 0xb2a9, 0xb448, 0xb65a, + 0xb64f, 0xb64e, 0xb655, 0xb654, 0xb64a, 0xb6d5, 0xb718, 0xb78d, + 0xb81d, 0xb819, 0xb926, 0xb928, 0xb92b, 0xb97d, 0xbaa0, 0xba9a, + 0xba9b, 0xbcb5, 0xbcad, 0xbcb2, 0xbd94, 0xbec9, 0xc14e, 0xc14f, + 0xc144, 0xc152, 0xc3e9, 0xc439, 0x1569, 0x337e, 0xc8c7, 0xc8d3, + 0xc8c6, 0xc8c3, 0x15b4, 0xc8d2, 0xca66, 0xcc7f, 0xcc80, 0xcc84, + 0xcc85, 0xcce3, 0x164d, 0xcd41, 0xcd44, 0xcd43, 0xce4e, 0xce4f, + 0x1683, 0xce49, 0xce4a, 0xce4b, 0xce43, 0xcee0, 0xcee5, 0xcee1, + 0xcee6, 0xcee2, 0xcf0c, 0xcf40, 0xd049, 0xd04a, 0xd054, 0xd04c, + 0xd055, 0xd056, 0xd13b, 0xd13d, 0xd2a4, 0xd2a8, + /* 0x72 */ + 0xd2c3, 0xd2bf, 0xd2c8, 0xd2c2, 0xd2ca, 0xd2cc, 0xd2c9, 0xd2be, + 0xd2cd, 0xd2c7, 0xd2c5, 0xd35d, 0x17b0, 0xd46c, 0xd46b, 0xd470, + 0xd46d, 0xd46f, 0xd489, 0xd484, 0xd58d, 0xd58a, 0xd58e, 0xd591, + 0xd6b5, 0xd6b1, 0xd6af, 0xd6b9, 0xd6b7, 0xd6b0, 0x180c, 0xd717, + 0x1818, 0xd74f, 0xd819, 0xd810, 0xd818, 0xd811, 0xd81c, 0xd812, + 0xd976, 0xd971, 0x3720, 0xd97a, 0xd97f, 0x3722, 0xd973, 0xd9ab, + 0x371e, 0xd977, 0xd974, 0xd97e, 0xd99b, 0xd984, 0xd97c, 0xdc29, + 0xdc2b, 0xdc0e, 0xdc00, 0xdc0b, 0xdbfe, 0xdbfa, 0xdc17, 0xdbff, + 0xdc0c, 0xdc0f, 0x18f5, 0xdc02, 0xdc01, 0xdbfc, 0xdc49, 0xdc06, + 0xdc12, 0xdc13, 0xdd78, 0xde5b, 0xde62, 0xde5f, 0xde5d, 0xdeab, + 0xded5, 0xded4, 0xded3, 0xdf07, 0xdf6c, 0xdf70, 0xdf6e, 0xdf68, + 0xdf6d, 0xdf77, 0xdf6a, 0xdfce, 0xdfec, 0xe069, + /* 0x73 */ + 0xe068, 0xe0a6, 0xe0a9, 0xe0aa, 0xe100, 0xe10d, 0xe0f8, 0xe0fc, + 0xe10a, 0xe0f7, 0xe101, 0xe1b6, 0xe1bb, 0xe1b7, 0xe1b9, 0xe1ca, + 0x3f69, 0x4125, 0x4c59, 0x5007, 0x5009, 0x5422, 0x5607, 0x5604, + 0x6e0f, 0x57f8, 0x5ac7, 0x5ad1, 0x5c7e, 0x5e08, 0x5f4a, 0xe298, + 0x5fb9, 0x6988, 0x6991, 0x6984, 0x6973, 0x6989, 0x6985, 0x6b33, + 0x6e13, 0x731d, 0x731f, 0x731c, 0x7320, 0x731a, 0x731b, 0x7439, + 0x74af, 0x75e5, 0x773c, 0x7c37, 0x7c3a, 0x7fbb, 0x0a0e, 0x8210, + 0x820d, 0x86af, 0x8711, 0x0bd8, 0x8a0d, 0x8a0c, 0x8a0b, 0x8bd4, + 0x8e3d, 0x8e3e, 0x8e3b, 0x8e43, 0x8e40, 0x8e46, 0x8f11, 0x90dd, + 0x90df, 0x90ea, 0x924a, 0x9406, 0x98c1, 0x98b9, 0x98c6, 0x98b8, + 0x98bb, 0x98c8, 0x98c5, 0x98bf, 0x98c7, 0x98c4, 0x9a65, 0x9a67, + 0x9cd7, 0x9cdb, 0x9cd4, 0x9cd6, 0x9ee8, 0xa10a, + /* 0x74 */ + 0xa5bd, 0xa5be, 0xac1a, 0xac0d, 0xac0f, 0xac1b, 0xac10, 0xac11, + 0xac13, 0xad18, 0xb020, 0xb01f, 0xb023, 0xb01d, 0xb037, 0xb025, + 0xb024, 0xb02a, 0xb027, 0xb033, 0xb028, 0xb034, 0xb2ba, 0x2e70, + 0xb39d, 0xb44c, 0xb65c, 0xb66a, 0xb65d, 0xb665, 0xb663, 0xb65e, + 0xb719, 0xb797, 0xb93f, 0xb933, 0xb932, 0xbaa1, 0xbaa5, 0xbaa4, + 0xbaa2, 0xbcc1, 0x142c, 0xbcc7, 0xbcc4, 0xbcc6, 0xbcc5, 0xbcd4, + 0xbcca, 0xc153, 0xc3f1, 0xc421, 0x156e, 0xc6b7, 0xc692, 0xc8d4, + 0xca44, 0xcc98, 0xcc9b, 0xcc91, 0xcc95, 0xcc9a, 0xcc92, 0xce53, + 0xce57, 0x1686, 0xce5c, 0xce5d, 0xce64, 0xceea, 0xceed, 0xcf42, + 0xcf43, 0xd064, 0xd061, 0xd060, 0xd17d, 0xd2d4, 0xd2d5, 0xd2d9, + 0xd487, 0xd499, 0xd48c, 0xd48a, 0xd48f, 0x17b3, 0xd48b, 0xd482, + 0xd49b, 0x17eb, 0xd6c8, 0xd6c4, 0xd6cc, 0xd6c7, + /* 0x75 */ + 0xd6c3, 0xd6c6, 0xd6cb, 0xd6ca, 0xd6c9, 0xd6cd, 0xd753, 0xd821, + 0xd829, 0xd81d, 0xd824, 0xd828, 0x3743, 0xd9b1, 0xd9b2, 0xd9b5, + 0xd9d6, 0xd9af, 0xd9ca, 0xd9b8, 0xe412, 0xe411, 0xdc45, 0xdc47, + 0xdc34, 0xdc6e, 0xdc42, 0xdc31, 0xdc2e, 0xdc56, 0xdc38, 0xdc37, + 0xdc4b, 0xdc2d, 0xdc33, 0xdc36, 0x38e0, 0xdc48, 0xdddc, 0x1942, + 0xde66, 0xde6d, 0xde63, 0xde64, 0x1941, 0xde67, 0xded9, 0xdf0b, + 0xdf7e, 0xdf8b, 0xe026, 0xe02c, 0xe029, 0xe06f, 0xe06b, 0xe06d, + 0xe06e, 0xe11c, 0xe111, 0xe110, 0xe124, 0xe112, 0xe115, 0xe117, + 0x19ac, 0x3f6f, 0x40ab, 0x432e, 0x43c9, 0x4696, 0x4c85, 0x51a0, + 0x542b, 0x5e0d, 0x6b36, 0x3afd, 0x072f, 0x072e, 0x6eb1, 0x734a, + 0x7337, 0x733c, 0x7338, 0x733a, 0x733e, 0x7349, 0x084d, 0x087b, + 0x7580, 0x757f, 0x75e3, 0x773f, 0x7c52, 0x7c4e, + /* 0x76 */ + 0x7c4a, 0x7c4b, 0x7fd5, 0x85d8, 0x8620, 0x86b3, 0x86b1, 0x86b0, + 0x8a17, 0x8bd9, 0x8e49, 0x8f13, 0x90ed, 0x90eb, 0x90ee, 0x940a, + 0x940b, 0x954a, 0x98d5, 0x98d7, 0x98de, 0x98dc, 0x98ee, 0x9a70, + 0x0eb2, 0x9cd9, 0x9ed7, 0xa3cb, 0xa3c7, 0xa4fc, 0xac3b, 0xac39, + 0xac4b, 0xac43, 0xac40, 0xac46, 0xb04d, 0xb043, 0xb047, 0xb04b, + 0xb055, 0xb052, 0xb65f, 0x1322, 0xb67c, 0xb67b, 0xbaa8, 0xbaa9, + 0xbcde, 0xbcd7, 0xbcdd, 0xbcd6, 0xbcd8, 0xbd9b, 0xbee0, 0xbee8, + 0xbee6, 0xc3f8, 0xc3fb, 0xc6bb, 0x3259, 0xc6b8, 0x1570, 0xc7c1, + 0xc7c0, 0xcca4, 0xccab, 0xcd4d, 0xce65, 0xce67, 0xce6a, 0xce66, + 0xce69, 0xd073, 0xd080, 0xd06f, 0xd071, 0xd2e4, 0xd2e6, 0xd2e7, + 0xd4a0, 0xd4a4, 0xd5a2, 0xd5a7, 0xd5a4, 0xd6de, 0xd6db, 0xd758, + 0xd75c, 0xd82f, 0xd82e, 0xd9dd, 0xd9e4, 0xd9d8, + /* 0x77 */ + 0xd9e7, 0xd9da, 0xd975, 0x1895, 0xdc79, 0xdc80, 0xdc7f, 0xdc7c, + 0xdc75, 0xdc7b, 0xdc82, 0x1900, 0xdc89, 0xdc74, 0xdc7d, 0xdc7a, + 0xdc86, 0xdca8, 0xdc72, 0x1902, 0xdc8b, 0xdc91, 0xdcb3, 0xdc81, + 0xdd82, 0xdde1, 0xdde3, 0xdde2, 0xde76, 0xde74, 0xde72, 0xde75, + 0xdf0e, 0xdf0d, 0xdf94, 0xdf92, 0xdf93, 0xdf91, 0xdf8f, 0xdf95, + 0xdfd0, 0xdff7, 0xe076, 0xe0af, 0x199f, 0xe126, 0xe125, 0xe12d, + 0xe1a0, 0xe1c3, 0x3fd7, 0x45cc, 0x4c79, 0x4c7a, 0x5015, 0x5adb, + 0x5c85, 0x6470, 0x647b, 0x69a5, 0x699f, 0x6e17, 0x6eb2, 0x7339, + 0x7340, 0x734e, 0x743e, 0x75e8, 0x75e7, 0x7c66, 0x7c61, 0x7fda, + 0x8214, 0x83df, 0x8a18, 0x8b39, 0x8b3a, 0x9230, 0x9232, 0x940e, + 0x954c, 0x98e8, 0x98f1, 0x98eb, 0x98ec, 0x9a74, 0x9a73, 0x9cf1, + 0x9e42, 0x9e3e, 0x9e41, 0xa02c, 0xa3d2, 0xa4bb, + /* 0x78 */ + 0xac58, 0xac57, 0xac56, 0xac5a, 0x117d, 0xb061, 0xb068, 0xb065, + 0xb05f, 0xb064, 0xb05e, 0xb05b, 0xb067, 0xb2c3, 0xb3a2, 0xb453, + 0xb67d, 0xb720, 0xbaae, 0xbaaf, 0xbab0, 0xbce7, 0xbce6, 0xbce9, + 0xbef1, 0xbeeb, 0xbeea, 0xbee9, 0xc163, 0xc402, 0xc3fe, 0xc6de, + 0xc7c2, 0xc8e6, 0xca5d, 0xccad, 0xce75, 0xce72, 0xce77, 0x16f6, + 0xd151, 0xd2e8, 0xd2ed, 0xd2ee, 0xd4b9, 0xd4a1, 0xd4b6, 0xd5ae, + 0xd6e8, 0x1812, 0xd71e, 0xd831, 0xd832, 0x1891, 0xda0e, 0xda12, + 0xda09, 0xda05, 0x1890, 0xda03, 0xda1f, 0xda0d, 0xda0c, 0xda04, + 0xda0a, 0xdcc2, 0xdcbf, 0xdcc9, 0xdcb2, 0xdcc1, 0xdcaf, 0xdcb4, + 0xdcb0, 0xdcb6, 0xdcb7, 0xdcbb, 0xdcb1, 0xddf0, 0xde78, 0xde7a, + 0xde79, 0xdee4, 0xdee6, 0xdf9f, 0xdf9d, 0xdf98, 0xdf99, 0xdff9, + 0xe030, 0xe082, 0xe081, 0xe0b3, 0xe07f, 0xe13a, + /* 0x79 */ + 0xe13e, 0xe148, 0x4c86, 0x5436, 0x5613, 0x5722, 0x5add, 0x60a7, + 0x647d, 0x0679, 0x6e1c, 0x7365, 0x7360, 0x7367, 0x084e, 0x761a, + 0x85e3, 0x9234, 0x9418, 0x9552, 0x98fc, 0x9a79, 0x9a78, 0x9a76, + 0x9cfa, 0x9cf8, 0xa02d, 0xa3d6, 0xa4bd, 0xa4bf, 0xa4be, 0xac44, + 0xac70, 0xac62, 0xac6e, 0xb06e, 0xb07c, 0xb074, 0xb078, 0xb070, + 0xb079, 0xb071, 0xb2cc, 0xb3a7, 0xb3a6, 0xb693, 0xb721, 0xb79c, + 0xbd9d, 0xbef4, 0xbef3, 0xc8f0, 0xccb8, 0xccb6, 0xccbd, 0xce73, + 0xce82, 0xd087, 0xd156, 0xd159, 0xd2f6, 0xd4c9, 0xd4c5, 0xd4c7, + 0xd4ca, 0xd4c2, 0xd4c4, 0xd6f2, 0xd6f0, 0xd83b, 0xd83a, 0xda26, + 0xda28, 0xda34, 0xda2d, 0xdcd7, 0xdcd2, 0xdcd6, 0xdcdc, 0xdcd3, + 0xdcd1, 0xdd86, 0x191e, 0xddef, 0xddee, 0xdee8, 0xdfac, 0xdfa9, + 0xdfaa, 0xdfab, 0xdffb, 0xe033, 0xe088, 0xe0b6, + /* 0x7a */ + 0xe0b7, 0xe0d0, 0xe0cf, 0xe14f, 0xe159, 0xe14c, 0x5618, 0x5ae0, + 0x7369, 0x7c73, 0x7c72, 0x85e8, 0x90fb, 0x941c, 0x9909, 0x990a, + 0x9908, 0x9a7d, 0x9a7f, 0x9d67, 0xac7a, 0xac7b, 0xb2d1, 0xe3cb, + 0xb69d, 0xb79d, 0xbcfc, 0xbcfb, 0xbcfd, 0xbef5, 0xbef6, 0xc70f, + 0xc71d, 0xccc7, 0xccc1, 0xccbf, 0xcd54, 0xce7f, 0xcef5, 0xd08a, + 0xd08c, 0xd15c, 0xd365, 0xd4cf, 0xd4d0, 0xd5b8, 0xd6fa, 0xd766, + 0xda40, 0xda41, 0x3772, 0xdcf7, 0xdcf3, 0xdcef, 0xdcf4, 0xdced, + 0xdcf2, 0xdcf1, 0xdcf9, 0xdfb4, 0xdffc, 0xe0bc, 0xe15e, 0xe15b, + 0xe15f, 0xe15d, 0xe1cf, 0xe1ce, 0x543a, 0x5ae1, 0x5e15, 0x5e14, + 0x7c78, 0x7c79, 0x7fe6, 0x86b8, 0x8a22, 0x90fe, 0xa3db, 0xa506, + 0xa5c8, 0xac89, 0xb086, 0xb3ad, 0xb699, 0xb6d8, 0xb723, 0xb823, + 0xbab5, 0xbef9, 0xc407, 0xc71e, 0xc8fb, 0xca72, + /* 0x7b */ + 0xca73, 0xce87, 0xcf49, 0xd15d, 0xd2f8, 0xd703, 0xda4e, 0xda4d, + 0xda50, 0xda55, 0xdd09, 0xdd07, 0xdd0c, 0xdd03, 0xdd06, 0xdd0b, + 0xdd0a, 0xdd89, 0xdfbb, 0xdfff, 0xe036, 0xe08b, 0xe166, 0xe169, + 0xe167, 0xe1c2, 0xe1d2, 0x5ae2, 0x0428, 0x6488, 0x6e5b, 0x7376, + 0x7c7d, 0x80a6, 0x8e5a, 0x9917, 0xa3dc, 0xac8f, 0xb094, 0xb095, + 0xbab6, 0xbd04, 0xc2ee, 0xce8a, 0xcef9, 0xd707, 0xd71f, 0xd72a, + 0xd845, 0xda5c, 0xda5b, 0xda61, 0xda5d, 0xdd18, 0xdd1f, 0xde83, + 0xdf16, 0xdf14, 0xdfbf, 0xdfc0, 0xe173, 0xe1c0, 0x5017, 0x6489, + 0x941e, 0x941f, 0x9554, 0x9918, 0x9d05, 0xac95, 0xb098, 0xb09b, + 0xb459, 0xbd08, 0xbf01, 0xccce, 0xcefa, 0xd5be, 0xd847, 0xda6a, + 0xda69, 0xda68, 0xda67, 0xdd25, 0xdd28, 0xdfc4, 0xe037, 0xe08d, + 0xe08c, 0x1991, 0xe320, 0x9922, 0x9a82, 0xb2d9, + /* 0x7c */ + 0xc738, 0xcefb, 0xd4e1, 0xd772, 0xd848, 0xda6c, 0xda70, 0xdd31, + 0xdd30, 0xe179, 0x9923, 0xa3f8, 0xd774, 0xda73, 0xdd34, 0xde87, + 0xdeb2, 0xe0c2, 0xe17d, 0x5ae5, 0xce8c, 0xda77, 0xda75, 0xdd38, + 0xdd3a, 0xe183, 0xe181, 0x7c80, 0xac99, 0x1187, 0xcf4a, 0xd84a, + 0xdd3c, 0xe1c8, 0x9104, 0xb3af, 0xe189, 0xddfa, 0xd161, 0xdd3f, + 0xac93, 0xdfc9, 0xb2de, 0xce91, 0xe18e, 0xe18d, 0xac98, 0xa4c5, + 0xe1a5, +}; + +static const ucs4_t cns11643_5_2uni_upages[229] = { + 0x03400, 0x03500, 0x03600, 0x03700, 0x03800, 0x03900, 0x03a00, 0x03b00, + 0x03c00, 0x03d00, 0x03e00, 0x03f00, 0x04000, 0x04100, 0x04200, 0x04300, + 0x04400, 0x04500, 0x04600, 0x04700, 0x04800, 0x04900, 0x04a00, 0x04b00, + 0x04c00, 0x04d00, 0x05200, 0x05900, 0x05e00, 0x05f00, 0x06100, 0x06300, + 0x06400, 0x06b00, 0x07200, 0x07300, 0x07500, 0x07600, 0x07900, 0x07a00, + 0x07b00, 0x07c00, 0x08300, 0x08600, 0x08700, 0x08800, 0x08900, 0x08a00, + 0x08c00, 0x08e00, 0x09400, 0x09500, 0x09700, 0x09900, 0x09b00, 0x09c00, + 0x09d00, 0x09e00, 0x0ff00, 0x20000, 0x20100, 0x20200, 0x20300, 0x20400, + 0x20500, 0x20600, 0x20700, 0x20800, 0x20900, 0x20a00, 0x20b00, 0x20c00, + 0x20d00, 0x20e00, 0x20f00, 0x21000, 0x21100, 0x21200, 0x21300, 0x21400, + 0x21500, 0x21600, 0x21700, 0x21800, 0x21900, 0x21a00, 0x21b00, 0x21c00, + 0x21d00, 0x21e00, 0x21f00, 0x22000, 0x22100, 0x22200, 0x22300, 0x22400, + 0x22500, 0x22600, 0x22700, 0x22800, 0x22900, 0x22a00, 0x22b00, 0x22c00, + 0x22d00, 0x22e00, 0x22f00, 0x23000, 0x23100, 0x23200, 0x23300, 0x23400, + 0x23500, 0x23600, 0x23700, 0x23800, 0x23900, 0x23a00, 0x23b00, 0x23c00, + 0x23d00, 0x23e00, 0x23f00, 0x24000, 0x24100, 0x24200, 0x24300, 0x24400, + 0x24500, 0x24600, 0x24700, 0x24800, 0x24900, 0x24a00, 0x24b00, 0x24c00, + 0x24d00, 0x24e00, 0x24f00, 0x25000, 0x25100, 0x25200, 0x25300, 0x25400, + 0x25500, 0x25600, 0x25700, 0x25800, 0x25900, 0x25a00, 0x25b00, 0x25c00, + 0x25d00, 0x25e00, 0x25f00, 0x26000, 0x26100, 0x26200, 0x26300, 0x26400, + 0x26500, 0x26600, 0x26700, 0x26800, 0x26900, 0x26a00, 0x26b00, 0x26c00, + 0x26d00, 0x26e00, 0x26f00, 0x27000, 0x27100, 0x27200, 0x27300, 0x27400, + 0x27500, 0x27600, 0x27700, 0x27800, 0x27900, 0x27a00, 0x27b00, 0x27c00, + 0x27d00, 0x27e00, 0x27f00, 0x28000, 0x28100, 0x28200, 0x28300, 0x28400, + 0x28500, 0x28600, 0x28700, 0x28800, 0x28900, 0x28a00, 0x28b00, 0x28c00, + 0x28d00, 0x28e00, 0x28f00, 0x29000, 0x29100, 0x29200, 0x29300, 0x29400, + 0x29500, 0x29600, 0x29700, 0x29800, 0x29900, 0x29a00, 0x29b00, 0x29c00, + 0x29d00, 0x29e00, 0x29f00, 0x2a000, 0x2a100, 0x2a200, 0x2a300, 0x2a400, + 0x2a500, 0x2a600, 0x2f800, 0x2f900, 0x2fa00, +}; + +static int +cns11643_5_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 >= 0x21 && c1 <= 0x7c)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if (c2 >= 0x21 && c2 < 0x7f) { + unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); + ucs4_t wc = 0xfffd; + unsigned short swc; + { + if (i < 8603) + swc = cns11643_5_2uni_page21[i], + wc = cns11643_5_2uni_upages[swc>>8] | (swc & 0xff); + } + if (wc != 0xfffd) { + *pwc = wc; + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + diff --git a/graf2d/win32gdk/gdk/src/iconv/cns11643_6.h b/graf2d/win32gdk/gdk/src/iconv/cns11643_6.h new file mode 100644 index 00000000000..84939843513 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cns11643_6.h @@ -0,0 +1,968 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CNS 11643-1992 plane 6 + */ + +static const unsigned short cns11643_6_2uni_page21[6388] = { + /* 0x21 */ + 0xc902, 0x3362, 0x0005, 0x3388, 0x33d0, 0x33cf, 0x341e, 0x341f, + 0x3420, 0x3c0e, 0x3c2c, 0x3361, 0x3304, 0x3305, 0x3303, 0x0004, + 0xc901, 0x337d, 0x338d, 0x34a3, 0x34a4, 0x37db, 0x3800, 0xc91e, + 0x39a3, 0x3b32, 0x013f, 0x3dd4, 0x3dd5, 0x4e23, 0x552c, 0x557a, + 0x3803, 0x3307, 0x3308, 0x338f, 0x339c, 0x33d5, 0x3412, 0x3413, + 0x3414, 0x3421, 0x34a8, 0x34a6, 0x3776, 0x3801, 0x383d, 0xc914, + 0x383e, 0x3929, 0x3977, 0x3978, 0x39a6, 0x39a9, 0x39ac, 0x3b34, + 0x3804, 0x3c7b, 0x3d10, 0x392f, 0x3dd7, 0x3e1c, 0x3e1f, 0x3e1a, + 0xc936, 0x3e1e, 0x3e9e, 0x3e9a, 0x43a0, 0x43a1, 0x47d2, 0x47d3, + 0x4bb9, 0x4d1d, 0x4d55, 0x4eff, 0x51e7, 0x042a, 0x5211, 0x5213, + 0x5212, 0x53af, 0x53b1, 0xc990, 0x552d, 0x557b, 0x559d, 0x559a, + 0x04a7, 0x559f, 0x55a0, 0x559c, 0x56bd, 0x04fa, + /* 0x22 */ + 0x57aa, 0x626c, 0x6291, 0x6d74, 0x756a, 0xca29, 0x8605, 0x8f6b, + 0x8f6a, 0x33e0, 0x3312, 0x0000, 0x337f, 0x33a0, 0x3399, 0x3395, + 0x339e, 0x33df, 0x33de, 0x34af, 0x34ad, 0x34b0, 0x37df, 0x3843, + 0x3841, 0x3848, 0x3875, 0xc91a, 0x3932, 0x397b, 0x3979, 0x39b3, + 0x00db, 0x3ea7, 0x39b2, 0x39b0, 0x39b4, 0xc929, 0x3bcd, 0x3bce, + 0xc92b, 0x3c10, 0x3c80, 0x3cd3, 0x3d30, 0x3398, 0x3d2f, 0x3d31, + 0x3dda, 0x3dd9, 0x3e27, 0x3e28, 0x3e21, 0x3e25, 0x3ea6, 0x3ea2, + 0x3ea1, 0x3ea4, 0xc939, 0x3eaa, 0x3ea5, 0x3ea3, 0x3364, 0x443f, + 0x4444, 0x471b, 0x4753, 0x4784, 0x4786, 0x47d5, 0xc960, 0x4b3e, + 0x4b40, 0x4dca, 0x4dc9, 0x4e26, 0x4f00, 0x4f31, 0x4f3c, 0x4f30, + 0x4f33, 0x4f32, 0x4f38, 0x5234, 0x5253, 0x5254, 0x53b4, 0x53b2, + 0x552f, 0x55a5, 0x55a7, 0x55a4, 0x55a8, 0x55a9, + /* 0x23 */ + 0x55a2, 0x55a3, 0x55a6, 0x5681, 0x5680, 0x57ad, 0x5c24, 0x5c65, + 0x5c68, 0x5c69, 0x633c, 0x633b, 0x655d, 0x6a44, 0x7182, 0x74f1, + 0x756b, 0x771b, 0x78eb, 0x7bba, 0x7bd3, 0x7d13, 0x8922, 0x97f4, + 0xab0f, 0xab10, 0x3807, 0xc10b, 0xc10a, 0x3319, 0x331a, 0x3318, + 0x3366, 0x3382, 0x33a8, 0x33e5, 0x33e7, 0x33e4, 0x3415, 0x3423, + 0x3424, 0x3443, 0x34c3, 0x34bc, 0x34bb, 0x0038, 0x34b7, 0x34b9, + 0x34cf, 0xc90d, 0x377a, 0x377b, 0x37e1, 0x37e0, 0x3809, 0x384d, + 0xc916, 0x384b, 0x3879, 0x38b1, 0x3936, 0x3935, 0x3937, 0x3938, + 0x397f, 0x3980, 0x3981, 0x9653, 0x397e, 0x39cd, 0x39bf, 0x39be, + 0x39c2, 0x39b8, 0x39c1, 0x2030, 0x3c31, 0x3c2f, 0x3c6f, 0x3c82, + 0x013a, 0x3c87, 0x3c86, 0x3c8d, 0x3c94, 0x3cd7, 0x3cd4, 0x3cd8, + 0x3d16, 0x3d14, 0x3d2e, 0x3d36, 0x3d37, 0x51ee, + /* 0x24 */ + 0x3de0, 0x3de5, 0x3ddf, 0x3e2b, 0x3e29, 0x3e2d, 0x3e2f, 0x3eb7, + 0x3ec9, 0x3ec1, 0x3eca, 0x3eb2, 0x3eac, 0x3eae, 0x43b2, 0x43a8, + 0x43b0, 0x43a7, 0xc951, 0x4452, 0x444a, 0x4756, 0x4755, 0x475f, + 0x475e, 0x4788, 0xc95d, 0x47dd, 0x47e2, 0x47e1, 0x47df, 0x47e0, + 0x48af, 0x48b1, 0x48ba, 0x4b45, 0x4b43, 0x4bbd, 0x4bc8, 0xc96c, + 0x4bbe, 0x4bbf, 0xc974, 0x4d59, 0x4e29, 0x4e2c, 0x4e2f, 0x4e2d, + 0x4e2e, 0x4f04, 0x4f02, 0x4f01, 0x4f40, 0x4f4a, 0x4f3f, 0x4f4f, + 0x4f41, 0x4f4e, 0x51eb, 0x51ec, 0x33ac, 0x525b, 0x5263, 0x525a, + 0x5259, 0x53dc, 0x53db, 0x53d9, 0x53e0, 0x53dd, 0x3320, 0x55b0, + 0x55b1, 0x55b2, 0x55b6, 0x5651, 0x5652, 0x5650, 0x5684, 0x04c9, + 0x5683, 0x57c3, 0x57b8, 0x57b9, 0x57b2, 0x5b90, 0x5c26, 0x5c29, + 0x5c6e, 0x6340, 0x633e, 0x6341, 0x655e, 0x65bb, + /* 0x25 */ + 0x65bc, 0x65b9, 0xc9ef, 0x6980, 0x084f, 0x6a45, 0x6aba, 0x6abd, + 0x6d56, 0x6d55, 0x6d75, 0x6d77, 0x6d81, 0xc9fa, 0x6d83, 0x6d8b, + 0x6d84, 0x7186, 0x7183, 0x718b, 0x756d, 0x7616, 0x7728, 0x78ea, + 0x7bd4, 0x7c03, 0x7d15, 0x7f3d, 0x7f3e, 0x8416, 0xca4c, 0x8606, + 0x874d, 0x8f22, 0x8f73, 0x8f6d, 0x8f6e, 0x91b1, 0x384e, 0x932d, + 0x0fcd, 0x95f9, 0x9652, 0x9800, 0x97fc, 0x97fa, 0x1092, 0x97f7, + 0x97f8, 0xca90, 0xcac4, 0xa627, 0xab11, 0x33ae, 0xad50, 0xad4f, + 0xad4d, 0xaf71, 0xcae2, 0xaf72, 0xb518, 0x3d44, 0x3321, 0x3367, + 0x33af, 0x33b0, 0x3329, 0x3417, 0x3422, 0xc903, 0x3325, 0x3428, + 0x34ff, 0x34d9, 0x34db, 0x34de, 0x34f2, 0x34fe, 0x34f4, 0x34dd, + 0x0045, 0xc904, 0x3501, 0x34dc, 0x377d, 0x3781, 0x377e, 0x377f, + 0x37e5, 0x380f, 0x00b5, 0x380a, 0x00b6, 0x380b, + /* 0x26 */ + 0x3851, 0x3852, 0x3850, 0x38b8, 0x393d, 0x393e, 0x393c, 0x3987, + 0x39d7, 0x39db, 0x39cf, 0x39e0, 0x3b4c, 0x3b42, 0x3bd4, 0x3c11, + 0x3c14, 0x3c15, 0x3c12, 0x3c33, 0x3c35, 0x0137, 0x3c71, 0x0130, + 0x3c91, 0x3c93, 0x3c95, 0x3cdc, 0x3d42, 0x3d40, 0x83a6, 0x3de6, + 0x448f, 0x3e32, 0xc937, 0x3e31, 0x3ef5, 0x3ecd, 0x3ede, 0x3ed5, + 0x3eda, 0x3eee, 0x3eec, 0x3ecf, 0x3ece, 0xc93d, 0x3ecc, 0x3ef3, + 0x43c1, 0x43c4, 0x43c6, 0x43b4, 0x43c3, 0x43b8, 0x43bb, 0x43b7, + 0x43bc, 0x43bf, 0x43c7, 0x43be, 0x4460, 0x445d, 0x4476, 0x446c, + 0x4475, 0x445b, 0x4471, 0x4473, 0x4461, 0x445a, 0x4462, 0x4472, + 0x445f, 0x4458, 0x471e, 0x4758, 0x478b, 0x478a, 0x47f4, 0x47f0, + 0x48d2, 0x48cd, 0x48ce, 0x48bc, 0x48d0, 0x4b46, 0x4b47, 0x033e, + 0x034d, 0x0351, 0x4bce, 0x4bcf, 0x4bcc, 0x4bcb, + /* 0x27 */ + 0xc972, 0x4d60, 0x4d5f, 0x4d5d, 0x4dd4, 0x4e3a, 0x4e38, 0x4e3c, + 0x4e36, 0x4f08, 0x4f7e, 0x4f5e, 0x4f6e, 0x4f53, 0x4f70, 0x4f57, + 0x4f5d, 0x4f63, 0x4f7a, 0x4f79, 0x4f93, 0xc981, 0x521d, 0x5268, + 0x5273, 0x5274, 0x5266, 0x526f, 0x5275, 0x527a, 0x5270, 0x526d, + 0x5265, 0x538a, 0x53ed, 0x53e9, 0x53e3, 0x53ef, 0x0473, 0x53ea, + 0x5531, 0xc991, 0x5538, 0x9820, 0x5535, 0x553a, 0x5581, 0x5580, + 0x55b8, 0x55c1, 0x55ba, 0x5688, 0x56cf, 0x56ca, 0x56c7, 0x56c5, + 0x56c8, 0x56d0, 0x56c9, 0x57bb, 0x57b6, 0x57bd, 0xc99d, 0x57b4, + 0x57c1, 0x57d1, 0x57d2, 0x57cc, 0x57d4, 0x57cb, 0x57ce, 0x57d5, + 0x57d8, 0x5b95, 0x5b93, 0x5b99, 0x5b96, 0x05be, 0x5c89, 0x5c94, + 0x5c91, 0x5c8f, 0x5c84, 0x5c97, 0x5c86, 0x5c85, 0x5c8c, 0x60f2, + 0x60ed, 0x60ef, 0x62d9, 0x6346, 0x6347, 0x634b, + /* 0x28 */ + 0x6350, 0x634a, 0x634e, 0x634c, 0x6348, 0x6563, 0x6561, 0x6562, + 0x6560, 0x65c3, 0x65c5, 0x65c1, 0x65d0, 0xc9dc, 0x6982, 0x081e, + 0x6986, 0x6984, 0x6a4c, 0x6a48, 0x6ab8, 0x6abf, 0x6ac1, 0x6ac6, + 0x6ac5, 0x6ac7, 0x6ac0, 0x6ac3, 0x6bed, 0x6c03, 0x6c22, 0x6c21, + 0x6d9f, 0x6d90, 0x6d9e, 0x08c8, 0x6da0, 0x6d94, 0x6d95, 0x6da1, + 0x08c3, 0x08c7, 0x719a, 0x7190, 0x74f2, 0x74f3, 0x756e, 0x75ab, + 0x75a9, 0x761a, 0x7618, 0x761b, 0x7760, 0x774c, 0x7742, 0x7733, + 0x773f, 0x773e, 0x7738, 0x7743, 0x7746, 0x7736, 0x78ee, 0x78f5, + 0x78f4, 0x0b56, 0x7c1b, 0x0140, 0x7d2b, 0x7d29, 0x7d2a, 0x7d2e, + 0x803f, 0x80e6, 0x83a7, 0x83a8, 0x8418, 0x8608, 0x8750, 0x8753, + 0x8a56, 0x8a55, 0x8f6f, 0x8f7f, 0x91b3, 0x933a, 0x9338, 0x9337, + 0x9336, 0x3854, 0xca80, 0x95dd, 0x95fc, 0x95fa, + /* 0x29 */ + 0x9633, 0x9804, 0x9807, 0x9808, 0x9806, 0x9809, 0xca91, 0xca93, + 0x9d1e, 0xcad2, 0xad0b, 0xad43, 0xad52, 0xad58, 0xad5e, 0xaf68, + 0xaf8d, 0xaf82, 0xaf7b, 0xb358, 0x15bd, 0xc900, 0x332c, 0x332e, + 0x480b, 0x332d, 0x3369, 0x33b2, 0x33b6, 0x33a9, 0x33ed, 0x3419, + 0x344f, 0x3516, 0x3503, 0x350e, 0x3504, 0x3507, 0x3510, 0x3527, + 0x3528, 0x350d, 0x3529, 0x350f, 0x3522, 0x3511, 0x3785, 0x3784, + 0x3783, 0x378a, 0x3786, 0x3810, 0x3858, 0x385a, 0x3a0c, 0x38c4, + 0x38c5, 0x3947, 0x3949, 0x394a, 0x394b, 0x53bb, 0x398d, 0x398b, + 0x3a07, 0x3a06, 0xc920, 0x39ef, 0x39f0, 0x39ed, 0x39f9, 0x3a02, + 0x39e7, 0x39f4, 0x39f7, 0x39f1, 0x3b53, 0x3b55, 0x011a, 0x3bda, + 0x3bd9, 0x012c, 0x3c38, 0x3c99, 0x3ca2, 0x3c9c, 0x3c9a, 0x3c9b, + 0x3ce5, 0x3ce3, 0x3ce1, 0x3ce0, 0x3ce2, 0x3ce4, + /* 0x2a */ + 0x32fd, 0x3ce8, 0xc92f, 0x3d13, 0x3d56, 0x3d4b, 0x3d4a, 0x3d4d, + 0x3d4c, 0x0149, 0x3dea, 0x3de9, 0x3deb, 0x3dec, 0x3e3a, 0x3e3c, + 0x3e39, 0x3e3b, 0x3f14, 0x3f0e, 0x3f35, 0x3f0a, 0x3f3f, 0x3f38, + 0x017c, 0x3f4e, 0x3f17, 0xc93f, 0x3f1e, 0x43b6, 0x43ce, 0x43ca, + 0x43cb, 0x43cc, 0x43c9, 0x44b4, 0x44ac, 0x4488, 0x4486, 0x448c, + 0x4493, 0x448a, 0x44a4, 0x4487, 0x44a5, 0x44a6, 0x4485, 0x44a3, + 0x448e, 0x471f, 0x4763, 0x478d, 0x47fa, 0x47fb, 0x4809, 0x47fe, + 0x47ff, 0x4802, 0x4804, 0x47fd, 0x4805, 0x48f9, 0x48f7, 0x48db, + 0x48da, 0x4b51, 0x4b50, 0x4b57, 0x4be2, 0x4bd8, 0x4bda, 0x4bdc, + 0x4d20, 0x4d1f, 0x4d69, 0x4ddd, 0x4e40, 0x4e41, 0x4e43, 0x4f0d, + 0x4f0c, 0x4f87, 0x4fa9, 0x4f92, 0x4f85, 0x03bf, 0x4f8c, 0x4fa2, + 0x4f8f, 0x4f8a, 0x03ba, 0x4f8d, 0x51f1, 0x5237, + /* 0x2b */ + 0x528b, 0x5287, 0x5282, 0x538e, 0x53bc, 0x53f8, 0x53fa, 0x53eb, + 0x53f9, 0x53fc, 0x5405, 0x551b, 0x551d, 0x551e, 0xc992, 0x553c, + 0x553e, 0x5584, 0x55c8, 0x55c9, 0x55d3, 0x55c7, 0x55d2, 0x5655, + 0xc996, 0x568c, 0x568a, 0x56d5, 0x56d3, 0x04d8, 0x56d8, 0x57d0, + 0x57ee, 0x57f1, 0x57fb, 0x57d3, 0x57ec, 0x57cd, 0x5815, 0x5826, + 0x580e, 0x5827, 0x582a, 0x5800, 0x5804, 0x5828, 0x5808, 0x5814, + 0x5b9b, 0x05b2, 0x5ba1, 0x5b9d, 0x5ba0, 0x5b9e, 0x5ba2, 0x5b9c, + 0x5c32, 0x5c34, 0x5c93, 0x5c96, 0x5c90, 0x5cb4, 0x5cb5, 0xc9b6, + 0x5cb6, 0x5cc2, 0xc9b5, 0x5cba, 0x5c92, 0x60fb, 0x6105, 0x60f3, + 0x60fe, 0x60fd, 0x755d, 0x60fa, 0x6243, 0x6295, 0x6294, 0x06c4, + 0x636f, 0x6373, 0x635c, 0x635b, 0x6366, 0x6374, 0x6363, 0x6367, + 0x6360, 0x6362, 0x6371, 0x6372, 0x635e, 0x6523, + /* 0x2c */ + 0x6526, 0x6564, 0xc9d6, 0x65f2, 0x6601, 0x65dd, 0x65dc, 0x65db, + 0x65f3, 0x65fd, 0x65d8, 0x65f8, 0x65fb, 0x6983, 0x698c, 0x698e, + 0x6a49, 0x6a54, 0x6a52, 0x6a4e, 0x6a58, 0x6a51, 0x6a55, 0x6a53, + 0x6a57, 0x6a50, 0x6a4f, 0x6a4d, 0x6ad2, 0x6ad3, 0x6ac9, 0x6ad4, + 0x6bef, 0xc9f8, 0x33b1, 0x6c05, 0x6c04, 0x6c2e, 0x6c2d, 0x6d45, + 0x6d5b, 0x6d5a, 0x6d59, 0x6d9d, 0x6d8e, 0x6dbc, 0x6ddd, 0x6dba, + 0xc9fd, 0x6dd8, 0x6dcb, 0x6dd9, 0x6dda, 0x6dc4, 0x6db8, 0x6dbf, + 0x6ddb, 0x6dc1, 0xc9fc, 0x6dc5, 0xca19, 0x71b1, 0x71af, 0xca18, + 0x74f7, 0x74f6, 0x74f8, 0x7550, 0x7551, 0x7571, 0x7570, 0x75b0, + 0x75af, 0x75ae, 0x75ad, 0x7625, 0x762c, 0x7622, 0x7633, 0x7634, + 0x0a2b, 0x773a, 0x7740, 0x7768, 0x0a61, 0x7764, 0x775c, 0x7757, + 0x7753, 0x774f, 0x7751, 0x7754, 0x7766, 0x23dd, + /* 0x2d */ + 0x0ab2, 0x790d, 0x7908, 0xca2b, 0x78fa, 0x7aea, 0x7b2a, 0x7bbb, + 0x7bd5, 0x7bd7, 0x4fa4, 0x33f0, 0x33b5, 0x7c06, 0x7c28, 0x7c22, + 0x7c21, 0x5656, 0x7c23, 0x43cd, 0x7d30, 0x7d34, 0x7fc9, 0x7fca, + 0x7fc8, 0xca3d, 0x8044, 0x80f3, 0xca41, 0x80f8, 0x80fc, 0x80f6, + 0x80fb, 0x80f7, 0x8100, 0x8102, 0xca40, 0xca4d, 0x8424, 0x860d, + 0x0d29, 0x8762, 0x8930, 0x892b, 0x892a, 0x0d92, 0x892d, 0x8ada, + 0x8c28, 0x8d86, 0x8f77, 0x8f7c, 0x9050, 0x904e, 0x90f2, 0x91b2, + 0x91ce, 0x91cf, 0x91e5, 0x6607, 0x9235, 0x9231, 0x9313, 0x932b, + 0x932c, 0x9345, 0x9360, 0x9341, 0x9358, 0x9347, 0x935b, 0x9350, + 0xca82, 0x935f, 0x934a, 0x9356, 0x9343, 0x9344, 0x9351, 0x95fd, + 0x9634, 0x9635, 0x9654, 0x9655, 0x970c, 0x970b, 0x970a, 0x97f9, + 0x9835, 0x9824, 0x9813, 0x981c, 0x9869, 0x9825, + /* 0x2e */ + 0x9821, 0xca95, 0xca96, 0xca98, 0x9d20, 0x9fa9, 0x9fa8, 0x9fde, + 0xa009, 0xa00a, 0xa00b, 0xa1e3, 0xa207, 0xa2b2, 0xa2b3, 0xa35d, + 0xa858, 0xa886, 0xa887, 0xa9b9, 0xa9b8, 0xad0c, 0xad44, 0xad66, + 0xad80, 0xad75, 0xad6d, 0xad7e, 0xad67, 0xad81, 0xad77, 0xafa8, + 0xafa2, 0xafa5, 0xaf9b, 0xb357, 0xb50f, 0xb532, 0xb52c, 0xb533, + 0xb8e7, 0x336e, 0x33b7, 0x33f6, 0x33f2, 0x33f3, 0x3817, 0x3430, + 0x3454, 0x3453, 0x3552, 0x353d, 0x353c, 0x3534, 0x3533, 0x3554, + 0x352f, 0x0058, 0x3555, 0x353f, 0x3537, 0x3556, 0x3561, 0x3558, + 0xc906, 0x353b, 0x3532, 0x352e, 0x353e, 0x333b, 0x378c, 0x378d, + 0x3813, 0x3816, 0x3812, 0x385b, 0x388a, 0x38d7, 0x38ce, 0x3950, + 0x3951, 0x394f, 0x398e, 0x398f, 0x39f2, 0xc921, 0x3a28, 0x3a1a, + 0x3a25, 0x3a1d, 0x3a14, 0x3a20, 0x3a1f, 0x3a1b, + /* 0x2f */ + 0x3a17, 0x3a15, 0x3a1c, 0x3a13, 0xc925, 0x3b60, 0x011c, 0x3b66, + 0x3be3, 0x3bde, 0x3be0, 0x3be1, 0x3c1a, 0x3c1b, 0x3c18, 0x3c1c, + 0x3c19, 0x3c42, 0x3c40, 0x3c3e, 0x3c44, 0x3c74, 0x3c43, 0xc92d, + 0x3cf2, 0x3d1b, 0x3d19, 0x3d1e, 0xc930, 0x3d5e, 0x3d66, 0x3d5d, + 0x3d5a, 0x3d5f, 0x3d60, 0x3d5b, 0x3d5c, 0x3d59, 0x3df0, 0x3df1, + 0x3e43, 0x3e40, 0x3e42, 0x3e41, 0x3e3f, 0x3f57, 0x3f69, 0x3f6f, + 0x3fab, 0x3f71, 0x3f93, 0x3f56, 0x3f90, 0x3f6d, 0x3f6c, 0x3f70, + 0x3f66, 0x3f67, 0x43d7, 0x43b5, 0x43db, 0x43d8, 0x43d5, 0x43d4, + 0x44ba, 0x44b7, 0x44be, 0x44b9, 0x0237, 0x44e0, 0x44dd, 0x44de, + 0x7918, 0x44d8, 0x44bd, 0x44db, 0x471d, 0x4725, 0x4921, 0x490c, + 0x4929, 0x492d, 0x491b, 0x490e, 0x491f, 0x4904, 0x491c, 0x4905, + 0x4906, 0x4920, 0x490d, 0x492a, 0x4923, 0x4911, + /* 0x30 */ + 0x4b5c, 0x4b66, 0x4b5b, 0x4b4f, 0x4b5e, 0x4b5d, 0x4bf1, 0x4bea, + 0x4bf4, 0x4beb, 0x4bf0, 0x4bfa, 0x4bfb, 0x4d28, 0x4d2c, 0x4d6b, + 0x4d2a, 0x4d6a, 0x4d6f, 0x4ddb, 0x4de0, 0x7fd1, 0x4de3, 0x4de5, + 0x4de7, 0x4e4d, 0x4e55, 0x4e54, 0x4e53, 0x4e52, 0x4e4e, 0x4e60, + 0x53c0, 0x4f0f, 0x4f11, 0x4f13, 0x4fc6, 0x4fb3, 0x4fc7, 0x4fd2, + 0x4fb8, 0x4fac, 0x4fae, 0x4fcf, 0x4fc5, 0xc97b, 0x4fcc, 0x4fab, + 0x4fc9, 0x4fb9, 0x51fb, 0x51f8, 0x51f7, 0x51f9, 0x5220, 0x523b, + 0x5239, 0x529e, 0x529a, 0x52aa, 0x52ab, 0x52af, 0x5296, 0x52a9, + 0x52a6, 0x5291, 0x0443, 0x52ae, 0x529f, 0x52ac, 0x52a0, 0x5392, + 0x5391, 0x53bf, 0x5417, 0x540a, 0x540c, 0x554a, 0x5546, 0x5534, + 0x5545, 0x5543, 0x5544, 0xc993, 0x5587, 0x5586, 0x558a, 0x55da, + 0x55d8, 0x04b4, 0x3818, 0x3434, 0x55d6, 0x55d4, + /* 0x31 */ + 0x5654, 0x5659, 0x565a, 0x5657, 0x04e0, 0x56dd, 0x56e9, 0x56e0, + 0x5805, 0x5812, 0x5813, 0x5807, 0x5816, 0x5823, 0x5802, 0xc9a1, + 0x584a, 0x5836, 0x5840, 0x5856, 0x5843, 0xc9a0, 0x584b, 0x5846, + 0x583e, 0x5849, 0x5ba7, 0x5bb6, 0x5ba6, 0x5ba8, 0x5bac, 0x5ba9, + 0x5bab, 0x5c38, 0x5c37, 0x5c39, 0x5c41, 0x5c3e, 0x5cc0, 0x5cbb, + 0x5cbf, 0x5cbd, 0x5cfe, 0x5d1e, 0x5cee, 0x5cfc, 0xc9b7, 0x5cf9, + 0x5d06, 0x5ce4, 0x5ce9, 0x5ce5, 0x5d03, 0x5cfd, 0x5d49, 0x60be, + 0x610a, 0x8626, 0x6118, 0x610d, 0x610f, 0x610e, 0x6120, 0x6271, + 0x6299, 0x62e2, 0x62df, 0x62de, 0x6378, 0x6379, 0x06e4, 0x637c, + 0x637d, 0x6384, 0x638b, 0x638a, 0xc9d2, 0x6389, 0x652c, 0x6529, + 0x656c, 0x2104, 0x6609, 0x6608, 0x660c, 0x660d, 0x6610, 0x0826, + 0x699f, 0x6998, 0x69a2, 0x699a, 0x6ad5, 0x6ae2, + /* 0x32 */ + 0x6af0, 0x6aea, 0x6aeb, 0x6aed, 0x6ae8, 0x6ae0, 0x6b85, 0x6b86, + 0x6bf0, 0x5046, 0x6c45, 0x6c38, 0x6c3e, 0x6c42, 0x6c40, 0x6d47, + 0x6d5c, 0x6d5e, 0x6db4, 0x6dc2, 0x6e14, 0x6de5, 0x6e15, 0x6e11, + 0xc9ff, 0x6dee, 0x6de7, 0x6df5, 0x6df4, 0x6de8, 0x6e01, 0x6def, + 0x6df1, 0xca00, 0x71db, 0x71bf, 0x71da, 0x71c7, 0x71dd, 0xca1a, + 0x71eb, 0x71e1, 0x71c1, 0x71bd, 0x7507, 0x74fd, 0x7501, 0x750a, + 0x7503, 0x7572, 0x7574, 0x7575, 0x75b2, 0x75b1, 0x75b4, 0x764c, + 0x7642, 0x7640, 0x7649, 0x763c, 0x764d, 0x764a, 0x763b, 0x7761, + 0x7774, 0xca26, 0x777f, 0x777a, 0x7788, 0x777c, 0x0a6f, 0x7770, + 0x790f, 0x7928, 0x7913, 0x792a, 0x7aed, 0x7aef, 0x7b2e, 0x7bc1, + 0x7bdd, 0x3e47, 0x7c2d, 0x7c2b, 0x7c35, 0x7c2f, 0x7c31, 0x7c34, + 0xca35, 0x7c30, 0x7d3a, 0x7d39, 0x7d37, 0x7d4b, + /* 0x33 */ + 0x7d54, 0x7d4d, 0x7d51, 0x7d47, 0x7f27, 0x7f50, 0x7f4d, 0x7f4e, + 0x7f54, 0x7fd2, 0x7fce, 0x804b, 0x8049, 0x8105, 0x810f, 0x8119, + 0xca43, 0x8106, 0x810c, 0x8129, 0x8104, 0x8108, 0x8125, 0x0c1c, + 0x8103, 0x8127, 0x8110, 0x810a, 0xca42, 0x985d, 0x83aa, 0x83ab, + 0x83a9, 0x8441, 0x843a, 0x843c, 0x842b, 0x8449, 0x8615, 0x0d00, + 0x8616, 0xca53, 0x8631, 0x6d4a, 0x873c, 0x877c, 0x876d, 0x876a, + 0x8763, 0x876b, 0x877b, 0x8764, 0x877a, 0x8769, 0x876f, 0x8937, + 0x8935, 0x893c, 0x8936, 0x893d, 0x893e, 0x8ae1, 0x8ae0, 0x8c2d, + 0x8c2b, 0x8d8d, 0x8d92, 0x0eb6, 0x8d8e, 0xca6b, 0x8d91, 0x8d96, + 0x8f7b, 0x8f78, 0x8f81, 0x8f96, 0x8fa3, 0x8f95, 0x8f97, 0x9054, + 0x9052, 0x90f5, 0x9100, 0x90fb, 0x90f4, 0x90f6, 0x91e8, 0x91ea, + 0x933e, 0x933d, 0x933b, 0x9380, 0x0fe4, 0x9388, + /* 0x34 */ + 0x9381, 0x9382, 0x93ce, 0x9383, 0x9377, 0x9379, 0x9373, 0x936d, + 0x9370, 0x938d, 0x9375, 0x938c, 0x936a, 0x9391, 0x9389, 0x938e, + 0x44dc, 0x95ff, 0x9659, 0x96c7, 0x9712, 0x9714, 0x9713, 0x97cb, + 0x9842, 0x10ad, 0x983d, 0x2aff, 0x9840, 0x9844, 0x9862, 0x9843, + 0x983f, 0x9845, 0x983c, 0xca97, 0x9846, 0x9847, 0xcab3, 0x9c9e, + 0x9c9d, 0x9d2c, 0x9d29, 0x9d2f, 0x9d2e, 0x9d30, 0x9fe1, 0x9fe2, + 0xa00e, 0xa019, 0xa012, 0xa2b4, 0xa5da, 0xa726, 0xa859, 0xa85a, + 0xa888, 0xa9c0, 0xa9ba, 0xaba0, 0xcadd, 0xaba2, 0xad86, 0x2fec, + 0xad9d, 0xad88, 0xad8f, 0xad8e, 0xad9b, 0xafc1, 0xafc3, 0xafc4, + 0xaf96, 0xafc7, 0xafc6, 0xafbf, 0x14c3, 0xb20f, 0xb555, 0xb542, + 0xb546, 0xb54b, 0xb543, 0xb553, 0xb548, 0xb549, 0xb54a, 0xb54e, + 0x7bde, 0x3991, 0xbb4b, 0xbd80, 0xbd81, 0xbd83, + /* 0x35 */ + 0x358a, 0xbd82, 0x5542, 0x3c22, 0x3370, 0x3371, 0x33bc, 0x4f18, + 0x33be, 0x33ba, 0x33f8, 0x3437, 0x3435, 0x3dfc, 0x3456, 0x3459, + 0x345e, 0x356d, 0x3591, 0x3592, 0x3568, 0x3566, 0x3573, 0x0067, + 0x3596, 0x358b, 0x358c, 0x3796, 0x37ee, 0x381c, 0x381a, 0x3819, + 0x381b, 0x385d, 0x385e, 0xc918, 0x38dc, 0x38e2, 0x3952, 0x3992, + 0x3a30, 0x3a52, 0x3a42, 0x3a41, 0x3a45, 0x3a37, 0x3a40, 0x3a3f, + 0x3a3d, 0x3a38, 0x3a3a, 0x3a49, 0x3b6b, 0x3b78, 0x3b79, 0xc926, + 0x3b6c, 0x3be9, 0x3be6, 0x3be5, 0x3bea, 0x3be7, 0x3be8, 0x3c1f, + 0x3c4b, 0x3c4a, 0x3c53, 0x3c76, 0x3ca3, 0x3ca4, 0x3cf6, 0x3cf3, + 0x3cf9, 0x3cf7, 0x3cfc, 0x3d1d, 0x3d6d, 0x3d71, 0x3d6c, 0x3d6e, + 0x3d70, 0x3d6f, 0x3d67, 0x3d68, 0x3dfa, 0x3df9, 0x3e4e, 0x19de, + 0x3e4d, 0x3e4f, 0x3e4a, 0x3e4c, 0x0196, 0xc942, + /* 0x36 */ + 0x3fee, 0x3fb2, 0x3fc0, 0x3fc1, 0x3ff4, 0x3fc8, 0x3fc5, 0x3fc6, + 0x3fad, 0x43e2, 0x43ea, 0x43e3, 0x43e1, 0x44f7, 0x4501, 0x4512, + 0x44f6, 0x44f1, 0x451f, 0x44ee, 0xc952, 0x44f3, 0x4515, 0x4516, + 0x4517, 0x44f8, 0x4519, 0x44f2, 0x44f4, 0x44f5, 0x4513, 0x4506, + 0x4726, 0x4724, 0x475a, 0x60c8, 0x4797, 0x4795, 0x479a, 0x481f, + 0x3dfb, 0x4829, 0x4820, 0xc962, 0xc963, 0x494c, 0x4930, 0x4938, + 0x493d, 0x4951, 0x494f, 0x494a, 0x4934, 0x4936, 0x1b30, 0x4b6a, + 0x4b68, 0x4c1c, 0x4c0e, 0x4c1e, 0x0359, 0x4c09, 0x4c08, 0x4c13, + 0x4c01, 0x4c0f, 0x4c14, 0x4c06, 0x4c07, 0x1cb2, 0xc973, 0x0376, + 0x4d79, 0x4dea, 0x4ded, 0x4de9, 0x4dee, 0x4e68, 0x4e64, 0x4e67, + 0x4e72, 0x4e62, 0x4e74, 0x4e79, 0x4f19, 0x4f17, 0x4f15, 0x4f16, + 0x4fe6, 0x8fa4, 0x4fee, 0x03d2, 0x4fdf, 0x4fe4, + /* 0x37 */ + 0x4fda, 0x4fea, 0x4fed, 0x4fe3, 0x4fe9, 0x51fd, 0x3957, 0x5221, + 0x52c6, 0x52b8, 0x52cb, 0xc985, 0x52bd, 0x52b5, 0x52bb, 0x52bf, + 0x52be, 0x52b2, 0x52c1, 0x52c2, 0x5399, 0x53c6, 0x542c, 0x542d, + 0x5425, 0x541e, 0x541f, 0x5423, 0x5550, 0x554e, 0x554d, 0x5552, + 0x55e9, 0x55ec, 0x55e8, 0x5658, 0x565c, 0x565b, 0x568f, 0x6a72, + 0x56f6, 0x5700, 0x56fc, 0x56f8, 0x56ea, 0x56fe, 0x56f7, 0x56fd, + 0x5870, 0x5862, 0x5844, 0x0520, 0x584d, 0x584c, 0x583f, 0x5866, + 0x5835, 0x0529, 0x5834, 0x588d, 0x5884, 0x0538, 0x5886, 0x5889, + 0x5887, 0x5883, 0x5875, 0x5879, 0x58af, 0x58b0, 0x5bb7, 0x5bbb, + 0x5bb9, 0x5c46, 0x5c47, 0x5c45, 0x5cea, 0x5cf6, 0x5d68, 0x5d39, + 0xc9b9, 0x5d3d, 0x5d3b, 0x5d4d, 0x5d30, 0x5d4a, 0x5d3e, 0x5d40, + 0x5d4c, 0x5d47, 0x5d38, 0x5d52, 0x5d3a, 0x5d53, + /* 0x38 */ + 0x60c4, 0x60c1, 0x611c, 0x611d, 0x612a, 0x611e, 0x612f, 0x6122, + 0x612e, 0x6125, 0x0689, 0x06b0, 0x624a, 0x624b, 0x6276, 0x06bf, + 0x62e8, 0x62ef, 0x62e9, 0x06c5, 0x62ea, 0xc9cc, 0x06ea, 0x639b, + 0x639e, 0x6393, 0x63a7, 0x639c, 0x63a0, 0x639a, 0x63ab, 0x63be, + 0x63a9, 0x652d, 0x656e, 0x6644, 0x663d, 0x663a, 0x6668, 0x663c, + 0x666a, 0xc9e0, 0x6638, 0x6665, 0x6639, 0x666d, 0x6636, 0xc9e3, + 0x663e, 0x667e, 0x6637, 0x6999, 0x69a9, 0x69ad, 0x69a7, 0x69a8, + 0x6a66, 0x6a69, 0x6a6d, 0x6a67, 0x6a6b, 0x6a6a, 0x6aee, 0x6b01, + 0x6b03, 0x6af4, 0x6afb, 0x0837, 0x6af6, 0x6afc, 0x6bf4, 0x6c08, + 0x6c0a, 0x6c09, 0x6c6d, 0x6c62, 0x6c41, 0x6c5e, 0x6c5c, 0x6df3, + 0x6e26, 0x08e4, 0x6e39, 0xca04, 0x6e6c, 0x6e2b, 0x6e2e, 0x6e3b, + 0x6e5e, 0x6efb, 0x6e27, 0x6e24, 0x6e69, 0x6e30, + /* 0x39 */ + 0xca05, 0x6e62, 0x6e38, 0x6e35, 0x6e2a, 0x6e2c, 0x6e68, 0x6e31, + 0x6e2f, 0x6e2d, 0x6e3a, 0x6e36, 0xca03, 0x6e21, 0x6e3c, 0x6e20, + 0x6e64, 0x6e3e, 0x08e8, 0x71f7, 0x7212, 0x71f1, 0x71f5, 0x7222, + 0x71f2, 0x71df, 0x7215, 0x7216, 0x757a, 0x7576, 0x75be, 0x0a20, + 0x75bd, 0x7609, 0x7608, 0x7657, 0x77a3, 0x77bf, 0x77b8, 0x77af, + 0x779c, 0x77a5, 0x7772, 0x7775, 0x779d, 0x7799, 0x77b9, 0x794e, + 0x7939, 0x793b, 0x7935, 0x793c, 0x7955, 0x7af0, 0x7af3, 0x7af4, + 0x7b3b, 0x7b3c, 0x7b3a, 0x7b36, 0x7c07, 0x3feb, 0x7c55, 0x7c50, + 0x7c4f, 0x7c52, 0x7c56, 0x33bd, 0x7c32, 0x7d63, 0x7d6b, 0x7d66, + 0x7d57, 0x7d5d, 0x0b86, 0x7d6d, 0x7d61, 0x7d69, 0x7d5a, 0x7d5c, + 0x7d62, 0x7f2a, 0x7f29, 0x7f58, 0x7f5a, 0x7fd7, 0x7fdb, 0x7fdc, + 0x7fdd, 0x7fd8, 0x8054, 0x805b, 0x805c, 0x8053, + /* 0x3a */ + 0x804f, 0x8056, 0x8050, 0x805a, 0x806b, 0x8136, 0x8153, 0x813a, + 0x813c, 0x813e, 0x8149, 0x8140, 0xca46, 0xca47, 0x8364, 0x8365, + 0x83b5, 0x83b6, 0x83b2, 0x8448, 0x844a, 0x8472, 0x8469, 0x845a, + 0x844c, 0x862c, 0x8630, 0x864b, 0x8649, 0x8642, 0x8644, 0x864a, + 0x864f, 0x8792, 0xca57, 0x8797, 0x8780, 0x8782, 0x8786, 0x8953, + 0x895e, 0x8952, 0x895b, 0x894e, 0x8a6d, 0x8a6e, 0x8afa, 0x8af6, + 0x8afb, 0x8c33, 0x8c3d, 0x8c37, 0x8c3e, 0x8c35, 0x8d9a, 0x8dab, + 0x8da6, 0x8db0, 0x8d99, 0x8da0, 0x8d9e, 0x8da8, 0x8da1, 0x8daa, + 0x8dad, 0x8dbb, 0x8d9c, 0x8da5, 0x33b3, 0x8f27, 0x8f8d, 0x8f8e, + 0x8f8f, 0x8f92, 0x0f56, 0x8f91, 0x8fad, 0x9057, 0x9058, 0x905e, + 0x905d, 0x905c, 0x905b, 0x0f67, 0x910a, 0x9103, 0x910e, 0x91b8, + 0x924d, 0x923f, 0x9247, 0x924b, 0x924a, 0x923d, + /* 0x3b */ + 0x2838, 0x9241, 0x924c, 0x2881, 0x9362, 0x9369, 0x9361, 0x0fd1, + 0x93aa, 0x93a6, 0x93ac, 0x93bd, 0x93bb, 0x93a4, 0x93ba, 0x939a, + 0x0feb, 0x93a1, 0x93c1, 0x95e0, 0x960a, 0x9603, 0x9606, 0x9639, + 0x963a, 0x9636, 0x965b, 0x965f, 0x965e, 0x9667, 0x9661, 0x9662, + 0x965d, 0x96ca, 0x96cc, 0x96ce, 0x9718, 0x971d, 0x971f, 0x9720, + 0x9717, 0x9715, 0x981f, 0x9827, 0x9826, 0x5010, 0x988b, 0x98ae, + 0x988a, 0xca99, 0x9892, 0x9889, 0x9887, 0x10b6, 0x988f, 0x9884, + 0x9883, 0x988c, 0x9893, 0x988d, 0x9898, 0x987d, 0x987e, 0x98d2, + 0x9880, 0x9899, 0x9cac, 0x9d50, 0x9d55, 0x9d42, 0x9d3f, 0x9d3c, + 0x11a3, 0x9d4c, 0x9d49, 0x9d57, 0x9d58, 0x9d4f, 0x9d5c, 0x9d47, + 0xcab7, 0x9fab, 0x1210, 0x9faf, 0x9fad, 0x9fe8, 0x9fe7, 0xa030, + 0xa026, 0xa02f, 0xa028, 0xa02b, 0xa01d, 0xa02d, + /* 0x3c */ + 0xa020, 0xa02a, 0xa02c, 0xa035, 0xa021, 0xa023, 0xa024, 0xa036, + 0xa037, 0xa1e9, 0xa2ba, 0xa2b8, 0xcacc, 0xa36d, 0xa36a, 0xa368, + 0xa369, 0xa36b, 0xa361, 0xa5dc, 0xa5db, 0xa62d, 0xa62c, 0xa6a2, + 0xa72b, 0xa732, 0xcad7, 0xa894, 0xa892, 0xa890, 0xa9c9, 0xa9c4, + 0xa9c1, 0xa9c3, 0xa9cd, 0xab14, 0xaba7, 0xabaf, 0xabaa, 0xad0d, + 0xad54, 0xad5b, 0xad61, 0xadae, 0xadb3, 0xadc0, 0xadc4, 0xadbf, + 0xadcb, 0xadad, 0xada7, 0xada4, 0xadbd, 0xadaf, 0xadb2, 0xada5, + 0xafe7, 0xafe0, 0xafce, 0xafde, 0xafd5, 0xafdf, 0xafd9, 0xb0f2, + 0xb223, 0xb240, 0x151b, 0xb23e, 0x1587, 0xb3cf, 0x3e54, 0xb55b, + 0xb558, 0xb562, 0xb55f, 0xb567, 0xb563, 0xb55e, 0xb560, 0xb685, + 0xb686, 0xb687, 0xb8e8, 0xb8e6, 0xbd71, 0xbd85, 0xcb02, 0xbd86, + 0xbe10, 0x3cf8, 0x33bf, 0x3e61, 0x33fe, 0x33fc, + /* 0x3d */ + 0x3439, 0x3461, 0x3460, 0x35e2, 0x35ea, 0x35e3, 0x35b4, 0x35ae, + 0x35be, 0x35b8, 0x35a8, 0x35aa, 0x35a9, 0x35b3, 0x35d5, 0x35ad, + 0x35b9, 0x35bb, 0x35b1, 0x35c2, 0xc908, 0x35eb, 0x35ba, 0x35d2, + 0x35d4, 0x37f1, 0x381d, 0xc912, 0x3862, 0x388c, 0x38e6, 0x38e7, + 0x395a, 0x3958, 0x3959, 0x3996, 0x3997, 0x3a61, 0x3a67, 0x3a71, + 0x3a65, 0x3a7d, 0x3a7e, 0x3b7d, 0x3b84, 0x3b7c, 0x3b7e, 0x3b7f, + 0x3b80, 0x3bef, 0x3bf4, 0x3c1e, 0x3c4e, 0x3cfb, 0x3cfa, 0x3cfd, + 0xc931, 0xc932, 0x3d79, 0x3d7c, 0x3d7d, 0x3d84, 0x3d7b, 0x3d78, + 0x0157, 0x3e5e, 0x3e5a, 0x3e5c, 0x3e59, 0x3e55, 0x3e63, 0x3e56, + 0x3e5f, 0x3e60, 0x3e5b, 0x404a, 0x4065, 0x40b3, 0x402c, 0x4077, + 0x403d, 0x4052, 0x4061, 0x402a, 0x403e, 0x4034, 0x4029, 0x40b2, + 0x40ad, 0x4040, 0x4053, 0xc944, 0x403f, 0x4041, + /* 0x3e */ + 0x4072, 0x43f6, 0x43f5, 0x43f4, 0x43f2, 0x43f9, 0x4527, 0x4554, + 0x4555, 0x452e, 0xc954, 0xc953, 0x452c, 0x4538, 0x4539, 0x4531, + 0x454f, 0x4573, 0x4530, 0x452b, 0x4551, 0x472c, 0x475b, 0x475c, + 0x4768, 0x476c, 0x476b, 0x4769, 0x479f, 0x4838, 0x483c, 0x483a, + 0x4835, 0x029d, 0x4839, 0x4836, 0x483b, 0x4960, 0x4961, 0x4963, + 0x4964, 0x4994, 0x4993, 0x495e, 0x4968, 0x496a, 0x4965, 0xc966, + 0x4990, 0x495f, 0x4972, 0xc965, 0x4c3c, 0x4c27, 0x4c24, 0x4c26, + 0x4c25, 0x035f, 0x4c28, 0x4c36, 0x4d31, 0x4d30, 0x4d34, 0x4d81, + 0x4d7d, 0x4d82, 0x4d80, 0x0379, 0x35d3, 0x4df2, 0x4e66, 0x4e8c, + 0x4e7b, 0x4e83, 0x0398, 0x4e8e, 0x4e7a, 0x4e92, 0x4e91, 0x4e82, + 0x4f1b, 0x4f1c, 0x5027, 0x5021, 0x03dc, 0x1d2b, 0x5043, 0x03df, + 0x5018, 0x507b, 0x501a, 0x504b, 0x504a, 0x504d, + /* 0x3f */ + 0x504f, 0x5019, 0x5035, 0x5013, 0x5052, 0x5014, 0x501e, 0x502c, + 0x5020, 0x5022, 0x5012, 0x501f, 0x5200, 0x5223, 0x5240, 0x5243, + 0x52e4, 0x52db, 0x52ea, 0x52dd, 0x52cc, 0x52d9, 0x52e8, 0x52f6, + 0x52e3, 0x52d3, 0x52da, 0x52d6, 0x52e7, 0x543a, 0x543f, 0x5440, + 0x5448, 0x5459, 0x5437, 0x5444, 0xc98c, 0xc98b, 0x5455, 0x5439, + 0x5554, 0x5555, 0x5556, 0x5557, 0x5558, 0x5559, 0x558d, 0x55f2, + 0x55f8, 0x55f5, 0x55f6, 0x55fc, 0x55fe, 0x55f1, 0x55fd, 0x565e, + 0x5696, 0x5697, 0x569c, 0x569b, 0x5695, 0xc99a, 0x571a, 0x5709, + 0x5704, 0x570e, 0x571c, 0x5718, 0x570d, 0x5710, 0x570c, 0x5703, + 0x587b, 0x58a6, 0x5877, 0x5888, 0x5874, 0x58da, 0x5876, 0x5878, + 0x588a, 0x588f, 0x587d, 0x5890, 0x58ed, 0x58d9, 0x58d0, 0x591a, + 0x58d7, 0x58e2, 0x58e1, 0x58c5, 0x58e0, 0x58ca, + /* 0x40 */ + 0x5925, 0x58cc, 0xc9b3, 0x5bc6, 0x5bc1, 0x5c4d, 0x5d4b, 0x5d64, + 0x5d95, 0x5d99, 0xc9bc, 0x5d94, 0x5da2, 0x5dae, 0x5d9e, 0x5da7, + 0x5d86, 0x05fd, 0x5da4, 0x5d91, 0x5d93, 0xc9bb, 0x5d88, 0x60cd, + 0x60ca, 0x613f, 0x6140, 0x6146, 0x6141, 0x6145, 0x6158, 0x613b, + 0x6148, 0x624e, 0x6252, 0x624f, 0x627b, 0x627a, 0x62a0, 0x629f, + 0x62fb, 0x62f7, 0x63b8, 0x63b9, 0x63bb, 0x63b7, 0x06f4, 0x63ba, + 0x06ef, 0x63da, 0x63b5, 0x63bf, 0x63bc, 0x63c0, 0xc9d3, 0xc9d9, + 0x6575, 0x6579, 0x6576, 0x6635, 0x6640, 0x66c0, 0x6681, 0x66ad, + 0x66af, 0x66ac, 0x668f, 0x66a8, 0x66aa, 0x66a9, 0x6688, 0x667f, + 0x6680, 0x66bc, 0x69ae, 0x69bb, 0x69bd, 0x0831, 0x6a78, 0x6a74, + 0x6b0c, 0x6b11, 0x6b08, 0x6b06, 0x6b10, 0x6b8f, 0x6b90, 0x6b8d, + 0x6b8e, 0x6b96, 0x6b95, 0x6c0b, 0x6c0c, 0x6c7c, + /* 0x41 */ + 0x6c73, 0x6c75, 0x6c76, 0x6c7d, 0x6c78, 0x6c71, 0x6d4b, 0x6d4e, + 0x6e33, 0x6e32, 0x0903, 0x6e91, 0x6ee7, 0x6ee9, 0x6ea2, 0x6e94, + 0x6e87, 0x6ea3, 0x6edd, 0x6e7b, 0x6e83, 0x6e81, 0x6edf, 0x6e7c, + 0x6ee4, 0x6ee2, 0x6e93, 0x6e7d, 0x6ebf, 0x6e9b, 0x6e8e, 0x6e9f, + 0x0909, 0x6e8c, 0x6e7f, 0x6e9c, 0x6e84, 0x6e42, 0x6ee6, 0x7251, + 0x724a, 0x7264, 0x7225, 0x722f, 0x722e, 0x722b, 0x7228, 0x7232, + 0x722d, 0x7231, 0x7239, 0x722c, 0x7261, 0x7511, 0x7510, 0x7512, + 0x7553, 0x7555, 0x757b, 0x7581, 0x757d, 0x757c, 0x75c2, 0x75c5, + 0xca22, 0x75c4, 0xca23, 0x766b, 0x7668, 0x0a3e, 0x765c, 0x765d, + 0x766a, 0xca24, 0x7c76, 0x7776, 0x0a77, 0x77c4, 0x77cb, 0x77c8, + 0x77d4, 0x77d5, 0x77c9, 0x77d7, 0x0a7b, 0x7978, 0x795a, 0x795b, + 0x795c, 0x7956, 0x7958, 0x7971, 0x96d4, 0x7b40, + /* 0x42 */ + 0xca33, 0x7b3f, 0x7b43, 0x7b41, 0x7be2, 0x7be0, 0x7be3, 0x7c66, + 0x7c73, 0x7c6c, 0x7c71, 0x7c6a, 0x7c6d, 0x7c6e, 0x7c6b, 0x7d8c, + 0x7d77, 0xca3a, 0x7d7f, 0x7d89, 0x7d7a, 0x7d85, 0x7d78, 0x7d8a, + 0x7d86, 0x7f2c, 0x7f67, 0x7f5b, 0x7fe5, 0x7fe1, 0x8061, 0x8069, + 0x806a, 0x8165, 0x816d, 0x8163, 0x8186, 0x815c, 0x8162, 0xca48, + 0x8179, 0x8169, 0x8170, 0x8176, 0x815d, 0x8187, 0x816e, 0x8171, + 0x817c, 0x8173, 0x815b, 0x816b, 0x83bf, 0x83c1, 0x83bd, 0x83c9, + 0x83bc, 0x83c2, 0x83c0, 0x8492, 0x84a9, 0x848f, 0x8476, 0x847b, + 0x8475, 0x84a4, 0x8664, 0x873d, 0x87af, 0x0d3a, 0xca58, 0x879d, + 0x8799, 0x87b1, 0x8963, 0x8962, 0x8964, 0x8969, 0x0da0, 0x8a75, + 0x8a73, 0x8a71, 0x8a74, 0x8b0c, 0x8b16, 0x0de5, 0x8b11, 0x8b1f, + 0x8b1a, 0x8b0d, 0x8b1b, 0x8b13, 0x8c4e, 0x8c55, + /* 0x43 */ + 0x8c50, 0x0e7d, 0x8dd2, 0x8dd3, 0x8dd1, 0x8df1, 0x8ddc, 0x8dc8, + 0x8dcc, 0x8dd0, 0x8dcf, 0x8ddf, 0x8f2b, 0x8f2e, 0x8f2d, 0x8f9d, + 0x8f9e, 0x8f9f, 0x8fa9, 0x8fa0, 0x8f98, 0x8fa1, 0x8fab, 0x8faf, + 0x906e, 0x905f, 0x905a, 0x0f6d, 0x9065, 0x9068, 0x9072, 0x9117, + 0x9116, 0x9118, 0x9119, 0x911a, 0x9122, 0x911b, 0x911c, 0x91be, + 0x91ee, 0x925a, 0x9250, 0x9258, 0x9254, 0x9257, 0x9256, 0x9315, + 0x939b, 0x9393, 0x9392, 0x9372, 0x9398, 0x9399, 0x93df, 0x0ff8, + 0x93d5, 0x2958, 0x93d4, 0x93f3, 0x93f4, 0x93e7, 0x93e1, 0x93e6, + 0x93eb, 0x93ec, 0x35db, 0x1050, 0x960d, 0x960c, 0x4d2f, 0x9668, + 0x9665, 0x966b, 0x9669, 0x96d1, 0x96d3, 0x9727, 0x9728, 0x1068, + 0x1067, 0x9724, 0x97d7, 0x98ca, 0x98c7, 0xca9e, 0x98d8, 0x98e1, + 0x98c6, 0x98f8, 0x98c3, 0x98f4, 0x9917, 0x98ea, + /* 0x44 */ + 0x98cb, 0x9886, 0x98c4, 0x98d9, 0x9919, 0x98c2, 0x98e2, 0x10cf, + 0x98de, 0x98ed, 0xca9c, 0x10cd, 0x991d, 0x98dd, 0x98db, 0x98e8, + 0x98e9, 0x98bf, 0x98e0, 0x98d1, 0x98dc, 0x98ce, 0x991e, 0x98cc, + 0x98f2, 0x98f3, 0xca9f, 0xcaa2, 0xcaa3, 0xcaa1, 0x9cab, 0x9caa, + 0x9ca7, 0x9ca9, 0x9d88, 0x9d75, 0x9d60, 0x9d6c, 0x9d73, 0x11ab, + 0x9d6e, 0x9d74, 0x9d76, 0x9d68, 0x9d77, 0x9d86, 0x9fea, 0xa051, + 0xa050, 0xa058, 0xa04d, 0xa04f, 0xa04e, 0xa05c, 0xa052, 0xa044, + 0xa04a, 0xa04b, 0xa1ea, 0xa210, 0xa211, 0xa2cd, 0xa2bf, 0xa2c4, + 0xa2d0, 0xa2ce, 0xa2c0, 0xa2c2, 0xa2cf, 0xa2c9, 0xa2bb, 0xa397, + 0xa392, 0xa36f, 0xa37e, 0xa39a, 0x12c1, 0xa386, 0xa373, 0x2d24, + 0xa377, 0xa38f, 0xa370, 0xa381, 0xa382, 0xa399, 0xa37d, 0xa37f, + 0xa37b, 0xa387, 0xa5b2, 0xa62f, 0xa634, 0xa62e, + /* 0x45 */ + 0xa632, 0x1347, 0xa6aa, 0x1357, 0xa6a9, 0xa738, 0xa736, 0xa737, + 0xa747, 0xa733, 0xa739, 0xa735, 0xa744, 0xa8a5, 0xa8a6, 0xa89e, + 0xa9e3, 0xa9df, 0xa9d3, 0xa9f1, 0xa9e4, 0xa9e0, 0xa9d6, 0x2ec3, + 0xa9e6, 0xa9d8, 0xa9de, 0xa9db, 0xa9dc, 0xab1b, 0xab1f, 0xab1d, + 0xab1c, 0xab1e, 0xab20, 0xab21, 0x144e, 0xabb6, 0xabbc, 0xabc6, + 0xabc7, 0xabba, 0xabbe, 0xabbd, 0xabb5, 0xabb4, 0xad0f, 0xad62, + 0xadeb, 0xadd9, 0xade4, 0xadd7, 0xadd8, 0xadd6, 0xadce, 0xaddd, + 0xade7, 0xadd2, 0xadc5, 0xadc9, 0xaddb, 0xaf92, 0xaf8a, 0xaf8b, + 0xaf89, 0xb008, 0xb003, 0xb006, 0xb005, 0xaff5, 0xb00b, 0xaffb, + 0xb0fc, 0xb101, 0xb102, 0xb0fa, 0xb108, 0xb0f7, 0xb100, 0xb0ff, + 0xb106, 0xb0f6, 0xb0fb, 0xb10a, 0xb225, 0xb243, 0xb244, 0xb364, + 0xb362, 0xb35e, 0xb35b, 0xb3d6, 0x3372, 0x33c2, + /* 0x46 */ + 0xb577, 0xb582, 0xb57c, 0xb57d, 0xb586, 0xb581, 0xb584, 0xb576, + 0xb583, 0xb57f, 0xb57e, 0xb688, 0xb68d, 0xb68b, 0xb691, 0xb68f, + 0xb77c, 0xb779, 0xb77a, 0xb8ea, 0xbb4c, 0xbc99, 0x35d1, 0xbd8b, + 0xbd8d, 0xbd8a, 0xbd8e, 0xbe11, 0x5456, 0xcb15, 0x3374, 0x33c3, + 0x33c4, 0x341b, 0x345f, 0x346a, 0x3469, 0x346b, 0x360c, 0x35f6, + 0x35ed, 0x3629, 0x35fe, 0x35f1, 0x3617, 0x35ff, 0x35ee, 0x35fd, + 0x361c, 0x35fc, 0x3600, 0x3620, 0x0077, 0x35f9, 0x3667, 0x3608, + 0x379e, 0x37f3, 0x3825, 0x3827, 0x381f, 0x3865, 0x3863, 0x3894, + 0x3897, 0x38f1, 0x395f, 0x3962, 0x18f2, 0x3960, 0xc922, 0x3a8c, + 0x3a82, 0x3a90, 0x3a8b, 0x3a8d, 0x3a81, 0x3a9d, 0x3b8e, 0x3b8f, + 0x3b92, 0x3c23, 0x3c52, 0xc92e, 0x3d00, 0x3d01, 0x3d02, 0x3d1f, + 0x3d8c, 0x3d89, 0x3d8b, 0x3d88, 0x3d8d, 0x3d8f, + /* 0x47 */ + 0x9085, 0x3e00, 0x3e05, 0x3e01, 0x3e68, 0x3e6e, 0x3e67, 0x3e75, + 0x1ab6, 0xc945, 0x40d7, 0xc946, 0x3348, 0x40d4, 0x40d8, 0xc947, + 0xc948, 0x40ba, 0xc949, 0x40db, 0x40bf, 0x4135, 0x40bc, 0x40d9, + 0x01c4, 0x40dd, 0x4100, 0x40d5, 0x4130, 0x40bd, 0x40dc, 0x43fd, + 0x43fe, 0x4407, 0x7517, 0x456f, 0x4569, 0x4570, 0x4567, 0x45a9, + 0x4595, 0x4590, 0x456c, 0x4597, 0x4571, 0x0252, 0x4574, 0x456d, + 0x458e, 0x472f, 0xc61b, 0x47a9, 0x484e, 0xc95f, 0x485a, 0x4848, + 0x4855, 0x484c, 0x4849, 0x484f, 0x484a, 0x49d6, 0x49a0, 0x49a9, + 0xc967, 0x499d, 0x49d4, 0x49a4, 0x49a8, 0x49a6, 0x49e6, 0x4b7d, + 0x4b77, 0x4b7a, 0x4c41, 0x4c49, 0x4c59, 0x4c45, 0x4c48, 0x4c40, + 0x4d8e, 0x4d95, 0x4d90, 0x4df7, 0x4df8, 0x4df6, 0x4dfb, 0x4e9e, + 0x4e9d, 0x4e99, 0xc977, 0x4ea3, 0x4ea9, 0x4e98, + /* 0x48 */ + 0x4ea0, 0x4e96, 0x4e94, 0x4e95, 0x4e9f, 0x4ea1, 0x4f21, 0x4f1d, + 0x4f1f, 0x506d, 0xc97c, 0x509a, 0x5092, 0x507a, 0x507d, 0x50a1, + 0x509d, 0x5099, 0x506b, 0x506e, 0xc97d, 0x5245, 0xc984, 0x52fb, + 0x52eb, 0x52f2, 0x52f9, 0xc986, 0x52f8, 0x52ed, 0x5301, 0x52f7, + 0x5306, 0x539b, 0x53ca, 0x046b, 0x1ec3, 0x546b, 0x546c, 0x5474, + 0x5467, 0x545b, 0x5460, 0x5476, 0x5463, 0x5461, 0x5528, 0x555b, + 0x555e, 0x5560, 0x555d, 0x555c, 0x55f4, 0x5600, 0x5608, 0x5607, + 0x5601, 0x5605, 0x5664, 0x5663, 0x569e, 0x56a0, 0x56a1, 0x569f, + 0x5726, 0x572d, 0x5728, 0x571d, 0x58ec, 0x58e3, 0x58eb, 0x5916, + 0x58c8, 0x931b, 0x58e9, 0x58e4, 0x5924, 0x58d1, 0x0541, 0x58dd, + 0x58c2, 0x58cb, 0x58c7, 0x58e7, 0x0550, 0x58ea, 0x594b, 0xc9a5, + 0x5960, 0x597d, 0x593e, 0xc9a4, 0x5952, 0x594e, + /* 0x49 */ + 0x593c, 0x5932, 0x5930, 0x5923, 0x5bca, 0x5bcb, 0x5bc9, 0x5bc8, + 0x5bcd, 0x5d98, 0x5da0, 0x5d9f, 0x5d9c, 0x5da3, 0x5d97, 0xc9be, + 0x5df1, 0x5e09, 0x5e03, 0x5dea, 0x5e45, 0x5ded, 0x5e05, 0x5e1a, + 0x5e15, 0x5e01, 0x5dec, 0x5e0e, 0x5e17, 0x5e42, 0x5e12, 0x5e10, + 0x5def, 0x5dff, 0x5e00, 0x5e0c, 0x5e0f, 0x5e04, 0x5e08, 0x5e14, + 0x5e43, 0xc9bd, 0x5e1b, 0x5e11, 0x5e13, 0x60cf, 0x60ce, 0x616f, + 0x616e, 0x617a, 0x6170, 0x6164, 0x615e, 0x616c, 0xc9c9, 0x615b, + 0x6161, 0x6165, 0x627f, 0x6280, 0x627c, 0x62a7, 0x62a6, 0x62a1, + 0x06c0, 0x62a8, 0x62a3, 0x62a2, 0x62ad, 0x62a5, 0x6301, 0x62ff, + 0x62fc, 0x6300, 0x6335, 0x63ee, 0x63ef, 0x63f6, 0x63e8, 0x63ea, + 0x63e3, 0x641f, 0x06fc, 0x63e4, 0x63fa, 0x63f1, 0x63fb, 0xc9d4, + 0x653d, 0x653c, 0x0079, 0x6578, 0x6577, 0x100b, + /* 0x4a */ + 0x66d1, 0x66c7, 0x66df, 0x66d0, 0x66e0, 0x66d6, 0x66d8, 0x6716, + 0x670e, 0x66d9, 0x670f, 0x6711, 0x66cd, 0x6689, 0x66ce, 0x6714, + 0x66da, 0x6712, 0x66d3, 0x66c2, 0x66e1, 0x66e9, 0x66ea, 0x66de, + 0x6715, 0x69d9, 0x69d6, 0x69cd, 0x69d0, 0x69d3, 0xc9f0, 0x6a82, + 0x6a85, 0x6a7f, 0x6a7d, 0x6a81, 0x6a83, 0x6a84, 0xada0, 0x6b28, + 0x6b0f, 0x6b17, 0x6b1a, 0x6b25, 0xc9f7, 0x6b9b, 0x6b99, 0x6c92, + 0x6c8c, 0x6c95, 0x6c8d, 0x6ca3, 0x6c93, 0x6c91, 0x6edb, 0x6e99, + 0x6e9a, 0x6f08, 0x6f4c, 0x6f0d, 0x6f01, 0x6f4e, 0x6f02, 0x6f4d, + 0x6f21, 0x6efc, 0xca09, 0x6e8a, 0xca08, 0x6e95, 0x6f11, 0x6f12, + 0x6f46, 0x6f1c, 0x6f49, 0x6f0c, 0x091e, 0x6f13, 0x6f16, 0x6efd, + 0x6f0f, 0x6f1f, 0x7230, 0x726e, 0x726b, 0x729b, 0x727b, 0x7263, + 0x7297, 0x726d, 0x729c, 0x7298, 0x726f, 0x7267, + /* 0x4b */ + 0x7269, 0x7515, 0x7563, 0x7586, 0x758a, 0x7587, 0x7588, 0x7585, + 0x7589, 0x75ca, 0x75c7, 0x75cb, 0x75cc, 0x75c9, 0x760d, 0x7683, + 0x7684, 0x7678, 0x7682, 0x7673, 0x7679, 0x768c, 0x77d0, 0x77cf, + 0x77d2, 0x77d9, 0x77cc, 0x77eb, 0x77fd, 0x77ec, 0x77e8, 0x77f8, + 0x77fa, 0xca27, 0x0a85, 0x77e1, 0x77fb, 0x78e7, 0xca2e, 0x79a5, + 0x7991, 0x79a6, 0x797c, 0x7992, 0x79a2, 0x79a0, 0x7afc, 0x7afe, + 0x7b57, 0x7b53, 0x7b58, 0x7be7, 0x7c8e, 0xca38, 0x7c83, 0x7c8b, + 0x7c84, 0x0b97, 0x7da2, 0x7db7, 0x7da9, 0x7da5, 0x7d9f, 0x7daa, + 0x7d97, 0x7da1, 0x7d9e, 0x7dab, 0x7d99, 0x7da3, 0x7f30, 0x7f32, + 0x7f2f, 0x7f70, 0x7f6c, 0x7f6f, 0x7fe8, 0x7fee, 0x7fea, 0x806d, + 0x8076, 0x8070, 0x8071, 0x806c, 0x81eb, 0x81b5, 0x8196, 0x8190, + 0x818d, 0xca49, 0x81a2, 0x81b0, 0x8192, 0x81a0, + /* 0x4c */ + 0x8193, 0x81c3, 0x818e, 0x81b6, 0x819d, 0x8195, 0x81b3, 0x81a4, + 0x8370, 0x83d4, 0x0c93, 0x83cf, 0x3470, 0x8494, 0x2561, 0x84c0, + 0x84b4, 0x84c1, 0x0cb2, 0x84bd, 0x84af, 0x8677, 0x8678, 0x866b, + 0x866d, 0x866e, 0x8672, 0x866f, 0x8671, 0x62ab, 0x868c, 0x873f, + 0x87b6, 0x87b7, 0x2606, 0x87bb, 0x87b8, 0x3a9c, 0x87b9, 0x2601, + 0x898b, 0x897a, 0x8984, 0x8988, 0x8991, 0x8979, 0x898e, 0x8980, + 0x8982, 0x897c, 0x0da4, 0x8a84, 0x8a7f, 0x0df2, 0x8b3b, 0x8b71, + 0x8b3d, 0x8b30, 0x0df1, 0x8b3e, 0x8b38, 0x8c5e, 0x8c64, 0x0e81, + 0x8c5d, 0x8c6d, 0x8c4f, 0x8c62, 0x8c5f, 0x8dec, 0x8df2, 0x8df4, + 0x8df7, 0x8df6, 0x8e07, 0x8ded, 0x8dea, 0x8df0, 0x8df8, 0x8df3, + 0x0edc, 0xca72, 0x8f31, 0x8f2f, 0x8fb6, 0x8fae, 0x8faa, 0x8fbf, + 0x8fcc, 0x8fc7, 0x9983, 0x9080, 0x907b, 0x907f, + /* 0x4d */ + 0x907d, 0x9083, 0xca78, 0x9146, 0x912d, 0x9125, 0x9126, 0x912c, + 0x9137, 0x9131, 0x9133, 0x9132, 0x9127, 0x912a, 0x912e, 0x912f, + 0x91c0, 0x9271, 0x9261, 0x9262, 0x9266, 0x9318, 0x93c5, 0x93c3, + 0x93c4, 0x93c2, 0x93ae, 0x9410, 0x9408, 0x941f, 0x943a, 0x943b, + 0x9436, 0x940c, 0x9406, 0x942a, 0x9457, 0x9450, 0x9420, 0xca85, + 0x942c, 0x9421, 0x940b, 0x9419, 0x9435, 0x9418, 0x940f, 0x9413, + 0x9455, 0x9439, 0x941a, 0x100c, 0x9417, 0x95e4, 0x95e9, 0x758b, + 0x9610, 0x9612, 0x963f, 0x966e, 0x7518, 0xca8c, 0x96d6, 0x96d5, + 0x96d7, 0x3e02, 0x106d, 0x9731, 0x9730, 0x973a, 0x9885, 0x986b, + 0x9948, 0x994b, 0x9937, 0x997b, 0x996c, 0x9985, 0x9965, 0x9936, + 0x9986, 0x9934, 0x9968, 0x995a, 0x9958, 0x9972, 0x996a, 0x98d3, + 0x993c, 0x9933, 0x993b, 0x994d, 0x994f, 0x997c, + /* 0x4e */ + 0x99b0, 0x995b, 0x9955, 0x9964, 0x996b, 0x9953, 0x10e6, 0x9957, + 0x995e, 0x996d, 0x9935, 0x9969, 0x9959, 0x9966, 0x9950, 0x9951, + 0x995c, 0x9a5d, 0x9987, 0x9978, 0x9949, 0x994e, 0x98f1, 0x9973, + 0x9988, 0x98cf, 0xcaa4, 0x9cb1, 0x9cb3, 0x9d9c, 0x9da4, 0x9d90, + 0x9db8, 0x9da0, 0x9d9d, 0x9da8, 0x9da9, 0xcab9, 0x9db1, 0x9d93, + 0x9d9b, 0x9da2, 0x9da1, 0x9db0, 0x9da7, 0x9fb3, 0x2b49, 0x9fb4, + 0x9ff1, 0x9fed, 0x9fec, 0xa068, 0xa075, 0xa06a, 0xa062, 0xa067, + 0xa060, 0xa077, 0xa05f, 0xa079, 0xa223, 0xa221, 0xa21c, 0x2c99, + 0xa21f, 0xa21e, 0xa2d6, 0xa2d3, 0xa2d9, 0xa2d7, 0xa2d4, 0xa2dc, + 0xa2d8, 0xa3a3, 0x12d1, 0xa3be, 0xa3a9, 0xa3a1, 0xa3a0, 0xa3ab, + 0xa3a2, 0xa3ba, 0xa3c2, 0xa39c, 0xa3bb, 0xa3aa, 0xa3ac, 0xa3a5, + 0xa3c1, 0x132c, 0xa5e2, 0xa636, 0xa63d, 0xa63a, + /* 0x4f */ + 0x5661, 0xa648, 0xa63c, 0xa6b7, 0xa6ac, 0xa6b3, 0xa6b6, 0xa6b2, + 0x136e, 0xa75d, 0xa749, 0xa74e, 0xa74f, 0xa74d, 0xa75c, 0xa85d, + 0xa8bb, 0xa8ce, 0xa8bf, 0xa8ba, 0xa8c3, 0x13e5, 0xaa06, 0xa9f8, + 0xa9fe, 0xaa13, 0xa9f6, 0x13e6, 0xab34, 0xab2d, 0xab2a, 0xab35, + 0xab2c, 0xabd4, 0xabda, 0xabd3, 0xabd2, 0xabce, 0xabcf, 0x149f, + 0xadfd, 0xae0b, 0xadfe, 0xadf8, 0xadf7, 0xae17, 0xadfa, 0xadf9, + 0xae00, 0xadf5, 0xadf1, 0xae03, 0xae05, 0xae1c, 0xafac, 0xaf9a, + 0xafad, 0xafa0, 0xb01b, 0xb025, 0xb024, 0xb026, 0xb027, 0xb028, + 0xb02a, 0xb01a, 0xb02e, 0xb015, 0xb115, 0xb114, 0xb117, 0xb118, + 0xb10f, 0xb113, 0xb10b, 0xb122, 0x457a, 0xb226, 0x301f, 0xb251, + 0xb24d, 0xb24e, 0xb24a, 0xb24b, 0xb24c, 0xb250, 0xb262, 0xb24f, + 0xb252, 0xb368, 0xb369, 0xb3e5, 0xb3f0, 0xb3e1, + /* 0x50 */ + 0xb3e2, 0xcaf2, 0xb5a5, 0xb5a9, 0xb5a4, 0xb5af, 0xb5ac, 0xb5ae, + 0xb5aa, 0xb695, 0xb699, 0xb693, 0xb69d, 0xb698, 0xb69c, 0xb697, + 0x160d, 0xb789, 0xb787, 0xb8d7, 0xb8ed, 0xb8f1, 0xb8f0, 0xb905, + 0xb903, 0xb904, 0xb95f, 0xbb57, 0xbc9c, 0xbca1, 0xbc9a, 0xbd8f, + 0xbd93, 0xbd9e, 0xbda3, 0xbd98, 0xbd99, 0xbd95, 0xbe6e, 0xbe6a, + 0xbff4, 0xbff7, 0xc179, 0xc38f, 0xc391, 0xc40b, 0xc802, 0x3384, + 0x3404, 0x3480, 0x362f, 0x363f, 0x363b, 0x3662, 0x3644, 0x3633, + 0x365f, 0x362b, 0xc909, 0x3639, 0x3636, 0x3648, 0x3635, 0x366c, + 0x3658, 0x363a, 0x37a8, 0x37f4, 0x3829, 0x389a, 0x3900, 0x3abb, + 0x3abd, 0x3ab7, 0x3ab2, 0x00f8, 0x3aa8, 0x3aab, 0x3aa6, 0x3abc, + 0x3b97, 0x3b96, 0x3bf8, 0x1913, 0x3c51, 0x0133, 0x3cb5, 0x3cb4, + 0x3cb6, 0x013c, 0x3cb7, 0x3d05, 0x3d23, 0x3d95, + /* 0x51 */ + 0x3d98, 0x014f, 0x3d94, 0x3d93, 0x3e07, 0x3e73, 0x3e71, 0x3e72, + 0x3e78, 0x415f, 0x416a, 0x4167, 0x416b, 0x4169, 0x418e, 0x4149, + 0x4180, 0x01dc, 0x4144, 0x418f, 0x4145, 0xc94c, 0x414f, 0x4163, + 0x4136, 0x4148, 0x415c, 0x4193, 0x4161, 0x4160, 0x414e, 0x415e, + 0x413f, 0x41a4, 0x1ae0, 0x4168, 0x440b, 0x4411, 0x440d, 0x440e, + 0x45c2, 0xc957, 0x45b0, 0x45c3, 0x45c8, 0x4565, 0x45d7, 0x45bd, + 0x45b8, 0x45b6, 0x45c7, 0x45bc, 0x45b1, 0x45af, 0xc95b, 0x4735, + 0x4730, 0x475d, 0x3e76, 0x476f, 0x47b0, 0xc95e, 0x47b4, 0x485c, + 0x485d, 0x4a08, 0x49ee, 0x4a0b, 0x49f2, 0x49fd, 0x49f1, 0x4a10, + 0xc968, 0x4a14, 0x4b8b, 0x4b8c, 0x4b85, 0x4c7a, 0x4c6c, 0x4c60, + 0x4c67, 0x4c66, 0x4c6a, 0x4c5f, 0x4c6d, 0x4c68, 0x4c64, 0x4d3a, + 0x4d3b, 0x4d39, 0x4e02, 0x4e04, 0x4e03, 0x4eb4, + /* 0x52 */ + 0x4eb3, 0x4ebb, 0x4eac, 0x4eb6, 0x4eb1, 0x4eaf, 0x4eb5, 0x4ebe, + 0x4eb2, 0x4f24, 0x50b6, 0x50b9, 0x50ac, 0x50b0, 0x50d7, 0x50bb, + 0x50fe, 0x50cb, 0xc97f, 0x03f5, 0x50b3, 0x50be, 0x50cd, 0x50bc, + 0x50ba, 0x50c7, 0x5316, 0x531b, 0x5317, 0x5315, 0x539f, 0xc98e, + 0x5482, 0x5483, 0x548e, 0x546a, 0x5489, 0x5494, 0x5486, 0x5490, + 0x5562, 0x5590, 0x560c, 0x560f, 0x04c3, 0x56a5, 0x56a7, 0x56a6, + 0x56a4, 0x5735, 0x5738, 0x5736, 0x5743, 0x5747, 0x5737, 0x5943, + 0x59a2, 0x5951, 0x5972, 0x596d, 0x592f, 0x5954, 0x596e, 0x5955, + 0x5937, 0x594f, 0x5950, 0x1f39, 0x599e, 0xc9a8, 0x59b3, 0x59a7, + 0x0571, 0x59f9, 0x5991, 0xc9a7, 0x59b6, 0x59dd, 0x5999, 0x5bdf, + 0x5bd5, 0x77f5, 0x5e28, 0x5e40, 0x5e71, 0x5e98, 0x5e95, 0x5e65, + 0x5e78, 0x5e7f, 0x5e60, 0x5e7c, 0x5e96, 0x5e6a, + /* 0x53 */ + 0x5e79, 0x5e73, 0x5e72, 0x5e7b, 0x5e70, 0x60d5, 0x60d7, 0x618f, + 0x6189, 0x619e, 0x6187, 0x61a0, 0x618d, 0x6188, 0x617f, 0x618c, + 0x6193, 0x6259, 0xbcb0, 0x62b1, 0x81f4, 0x62af, 0x62b2, 0x6308, + 0x630a, 0x6336, 0x6337, 0xc9cf, 0x0701, 0x6436, 0x6429, 0x644a, + 0x6426, 0x6428, 0x6424, 0x642a, 0x6448, 0x6544, 0x6584, 0x658c, + 0x66c4, 0x66dc, 0x6787, 0x6753, 0x677f, 0x6731, 0x6751, 0x674b, + 0x6752, 0x6780, 0x67a5, 0x6781, 0x6743, 0x6734, 0x6736, 0x6732, + 0x6748, 0x6749, 0x673c, 0x674d, 0x674a, 0xc9e6, 0x678a, 0x6746, + 0x673e, 0x6783, 0x6750, 0x67b4, 0x69f0, 0x69e4, 0x69e3, 0x69e5, + 0x69e6, 0x69e7, 0x69e1, 0x69ef, 0x69e8, 0x69dd, 0x6a03, 0x6a88, + 0x6b26, 0x6b16, 0x6b3b, 0x6b2f, 0x6b39, 0x6b34, 0xc9f4, 0x6b35, + 0x6b31, 0x6b38, 0x3e81, 0x6baa, 0x6ba3, 0x6ba4, + /* 0x54 */ + 0x6ba0, 0x6ba1, 0x6ba9, 0x6ba5, 0x6caf, 0x6cb1, 0x6cab, 0x6cae, + 0x6cb0, 0x6cb3, 0x6cac, 0x6ca9, 0x6cb2, 0x6ca8, 0x6cb4, 0x6cc2, + 0x6d4f, 0x6d66, 0x6f1e, 0x6f15, 0x6f10, 0x6f7f, 0x6f7e, 0x6f60, + 0x6fcc, 0x6fb2, 0x6f62, 0x6f8d, 0x6f8e, 0x6f77, 0x6f7c, 0x6f8f, + 0x6f5d, 0x6f6d, 0x6f63, 0x6faf, 0x6f90, 0x6f7d, 0x6f7a, 0x6f06, + 0xca0b, 0x6f68, 0x6fb4, 0x6f78, 0x6fb1, 0x22d7, 0xca0c, 0x0941, + 0x72e8, 0x72e9, 0x72c0, 0x09d7, 0x72ea, 0x72b7, 0x72ba, 0x72b5, + 0xca1d, 0x72b4, 0x72bc, 0x72c6, 0x72b8, 0x72bd, 0x72c2, 0x734d, + 0x72f0, 0x72c7, 0x72c1, 0x72c3, 0x72f1, 0x72ec, 0x09e2, 0x751c, + 0x7520, 0x7558, 0x7565, 0x7564, 0x758c, 0x758d, 0x75d9, 0x75e0, + 0x7610, 0x7694, 0x7692, 0x7696, 0x7695, 0x76bf, 0x76a0, 0x0a45, + 0x77f4, 0x77f6, 0x77dc, 0x243d, 0x7816, 0x7815, + /* 0x55 */ + 0x781c, 0x780f, 0x782c, 0x7814, 0x7825, 0x7817, 0x7812, 0x781e, + 0x7980, 0x79a8, 0x79af, 0x79d6, 0x79e2, 0x79b4, 0x79b3, 0x79b0, + 0x79b2, 0x79a1, 0x7b60, 0x7b66, 0x7b61, 0x7b4e, 0x7b5d, 0x7b63, + 0x7be6, 0x7bef, 0x7bec, 0x7c98, 0x7ca7, 0x7c94, 0x7c95, 0x7c91, + 0x7c9d, 0x7c99, 0x7c9b, 0x7c9c, 0x7d1d, 0x7d1c, 0x7dd0, 0x7de0, + 0x7dcb, 0x7ddb, 0x7dda, 0x7dc2, 0x7dd3, 0x7de5, 0x7f7d, 0x7f7b, + 0x7fff, 0x0bf2, 0x7ff9, 0x8077, 0x807c, 0x8078, 0x807b, 0x807a, + 0x81d2, 0x81cb, 0x81c9, 0x81ce, 0x81e4, 0x81ca, 0x81d0, 0x61a5, + 0x0c49, 0x81d9, 0x81ee, 0x81dd, 0x8200, 0x81e1, 0x83de, 0x83e2, + 0x83da, 0x84ce, 0xca4f, 0x84cf, 0x84da, 0x84d1, 0x84d4, 0x84ed, + 0x84cb, 0x84d5, 0x84f1, 0x869c, 0x8688, 0x8741, 0x87d0, 0x87f7, + 0x87cf, 0x87d1, 0x87db, 0x87de, 0x87f8, 0x87dc, + /* 0x56 */ + 0x87d9, 0x89a0, 0x89b2, 0x89a1, 0x89aa, 0x89a9, 0x0da9, 0x89a6, + 0x899c, 0x89b5, 0x89a7, 0x8a8e, 0x8a90, 0x8a91, 0x8b85, 0x8b5b, + 0x8b70, 0x8b64, 0x8b67, 0x8b63, 0x8b77, 0x8b68, 0x8b65, 0x8b6a, + 0x8b78, 0x8b66, 0x8c88, 0x8c9e, 0x8c74, 0x8c7a, 0x8c79, 0x8c8b, + 0x8c7f, 0x8e13, 0x8e1e, 0x8e17, 0x8e1a, 0x8e22, 0x8e43, 0x8e19, + 0x8e1f, 0x8e27, 0x8e12, 0x8e24, 0x8e25, 0x365e, 0x8f35, 0x8f34, + 0x8fd1, 0x8fc4, 0x8fca, 0x8fc6, 0x8fcb, 0x8fcd, 0x8fe2, 0x9089, + 0x908b, 0x9086, 0x9088, 0x908d, 0x913b, 0x913c, 0x913d, 0x91f5, + 0x9279, 0x9275, 0x9282, 0x927f, 0x9285, 0x9276, 0x927c, 0x927e, + 0x927b, 0x9280, 0x927a, 0x5748, 0x0fcb, 0x931d, 0x93f6, 0x93f7, + 0x93f9, 0x9463, 0x946c, 0x946e, 0x9414, 0x100d, 0x9467, 0x946f, + 0x9469, 0x9476, 0x9495, 0x9471, 0x9461, 0x9478, + /* 0x57 */ + 0x946b, 0x9485, 0x9484, 0x9614, 0x9676, 0x89b6, 0x9675, 0x9674, + 0x96e2, 0x973f, 0x9744, 0x973d, 0x9747, 0x9748, 0x97db, 0x97dc, + 0x97dd, 0x98e5, 0x98e6, 0x99c2, 0x9a2e, 0x9a1d, 0x99f8, 0x99f0, + 0x99f6, 0x99c5, 0x99c6, 0x99fc, 0x9a52, 0x9a2f, 0x9a10, 0x99f3, + 0x99d2, 0x99ea, 0x99dc, 0x9a1b, 0x99fb, 0x99c3, 0x9a16, 0x9a07, + 0x99c9, 0x99d8, 0x9a30, 0x9a13, 0x9a31, 0x99fa, 0x99f2, 0x9ae3, + 0x99d5, 0x9a01, 0x99f1, 0x9a1c, 0x99d6, 0x9a08, 0x9a0b, 0x9a17, + 0x9a20, 0x99ca, 0x9a32, 0x9a05, 0x99e4, 0x99ce, 0x9a33, 0x9a02, + 0x9a19, 0x9a1e, 0x99d3, 0x99f7, 0x99e8, 0x9a1f, 0x99f4, 0x9ad8, + 0x9cbf, 0x9cbe, 0x9cbd, 0x9ddc, 0x9ddd, 0x9dab, 0x9dc9, 0x9dc8, + 0x9ddf, 0x9dd9, 0x9ddb, 0x9dcc, 0x9de0, 0x9def, 0x9df3, 0x9dae, + 0x9e01, 0x9fb7, 0x9fb9, 0x9fb6, 0x9fb8, 0x9ff6, + /* 0x58 */ + 0x9ff3, 0x9ff5, 0x9ff2, 0xa091, 0xa09d, 0xa09b, 0xa092, 0xa08d, + 0xa09e, 0xa08c, 0x1231, 0xcac7, 0xa095, 0xcac6, 0xa08a, 0xa08e, + 0xa09c, 0xa1ef, 0xa22d, 0xa252, 0xa235, 0xa228, 0xa22e, 0xa2e5, + 0xa3ea, 0xa3f1, 0xa3eb, 0xa3d8, 0xa3d0, 0xa3f3, 0xa3db, 0xa3ce, + 0x12d5, 0xa3da, 0xa3d7, 0xa3e1, 0xa3f2, 0xa3c8, 0xa3d9, 0xa3de, + 0xa3d1, 0xa3e7, 0xa3cf, 0xa5b7, 0xa647, 0xa642, 0xa643, 0xcad3, + 0xa6c3, 0xa6c1, 0xa6c7, 0xa764, 0xa76a, 0xa766, 0xa750, 0xa76e, + 0xa765, 0x69ec, 0xa77f, 0xcad5, 0xa79a, 0xa769, 0xa772, 0xa76f, + 0xa77d, 0xa770, 0xa860, 0xa8c2, 0xa8e7, 0xa8d1, 0xa8eb, 0xa8d4, + 0xa8dc, 0xa8db, 0xaa37, 0xaa25, 0xaa1f, 0xaa1e, 0xaa21, 0xaa1b, + 0xaa17, 0xaa22, 0xaa2a, 0xaa1a, 0xaa2d, 0xaa23, 0xaa26, 0xaa36, + 0xa9ff, 0xab3a, 0xab40, 0xab42, 0xab38, 0xab3b, + /* 0x59 */ + 0xab3c, 0xab43, 0xabe8, 0x1456, 0xabf9, 0xabeb, 0xabf1, 0xabe9, + 0xabec, 0xad15, 0xad47, 0xad46, 0xad45, 0xae24, 0xae56, 0xae21, + 0xae27, 0xae4d, 0xae31, 0xae1e, 0xae2c, 0xae4f, 0xae2b, 0xae53, + 0xae51, 0xae54, 0xae29, 0xae50, 0xae1f, 0xae32, 0xae2a, 0xae1d, + 0xae28, 0xae2e, 0xae2d, 0xafbc, 0xafbb, 0xafbd, 0xcae4, 0xb047, + 0xb041, 0xcae5, 0xb049, 0x14f4, 0xb12e, 0xb127, 0xb26a, 0xb27b, + 0xb273, 0xb275, 0xb269, 0xb279, 0xb272, 0xb376, 0xb377, 0xb374, + 0xb373, 0xb402, 0xb3fe, 0xb401, 0xb3f9, 0xb3f4, 0xb5d3, 0xb5d5, + 0xb5d8, 0xb5c3, 0xb5ca, 0xb5d0, 0xb5cb, 0xb5ce, 0xb5c5, 0xb5e6, + 0xb5c4, 0xb5c0, 0xb5d4, 0xb5e8, 0xb676, 0xb6a2, 0xb6ae, 0xb6a8, + 0xb6a3, 0xb6a7, 0xb696, 0xb6a9, 0xb6a5, 0xb6af, 0xb6a4, 0xb6ab, + 0xb6aa, 0xb6a6, 0xb6a0, 0xb798, 0xb8db, 0xb8f6, + /* 0x5a */ + 0xb8f5, 0xb90c, 0xb90a, 0x3175, 0xb968, 0xb963, 0xb966, 0x1658, + 0xb964, 0xb96a, 0xb969, 0xba95, 0xbb02, 0xbb6a, 0xbb5e, 0xbb68, + 0xbb69, 0xbb65, 0xcafe, 0xbca7, 0xbcae, 0xbca8, 0xbcb3, 0xbd9c, + 0xbda9, 0xbdb6, 0xbdb3, 0xbdb2, 0xcb03, 0xbdb8, 0xbdc0, 0xbdbf, + 0xbdba, 0xbda8, 0xbe3c, 0xbe72, 0xbe71, 0xbe75, 0xbe73, 0xbf17, + 0xbf15, 0xbf16, 0xbf1b, 0xbffa, 0xbff9, 0xc12c, 0xc185, 0xc182, + 0xc17f, 0xc17d, 0xc188, 0x72f3, 0xc24e, 0xc250, 0xc393, 0xc397, + 0xc398, 0xc39b, 0xc39c, 0xc396, 0xc58b, 0xc5fd, 0xc5fc, 0xcb17, + 0x6a8b, 0x3408, 0x3407, 0x3673, 0x36a2, 0x36af, 0x3682, 0x367b, + 0x3674, 0x36b0, 0x3676, 0x36b9, 0x369e, 0x36b1, 0x36a1, 0x36b2, + 0x366e, 0xc90b, 0x0087, 0x3678, 0x367a, 0x3683, 0x369a, 0x37f8, + 0x3831, 0x3869, 0x3868, 0x389c, 0x3904, 0x3999, + /* 0x5b */ + 0x3ac7, 0x3ac6, 0x3adc, 0x3ac4, 0x3ad8, 0x3ad4, 0x3adf, 0x3ad1, + 0x3ad0, 0x3ad6, 0x3acf, 0x3bad, 0x3baf, 0x3ba7, 0x3bfd, 0x3c5b, + 0x3c5a, 0x3d07, 0x3d9d, 0x3d9b, 0x3dab, 0x3da4, 0x3d9c, 0x3d9e, + 0x3da5, 0x3daa, 0x3da6, 0x3e0e, 0x3e7e, 0x3e7c, 0x41ee, 0x41d5, + 0x41e9, 0x4142, 0x41e2, 0x4223, 0x41d9, 0x41d4, 0x41e3, 0x4215, + 0x41ef, 0x41f0, 0x41d6, 0x41dd, 0x41f6, 0x421c, 0x41d8, 0x41db, + 0x41da, 0x41ed, 0x4611, 0x4415, 0x4418, 0x441a, 0x441f, 0x4416, + 0xc94d, 0x4419, 0xc94b, 0x45f0, 0x4609, 0x461b, 0xa5e7, 0x45f6, + 0x45f4, 0x45b5, 0x4610, 0x45f2, 0x4615, 0x45f3, 0x45f8, 0x4739, + 0x473b, 0x4736, 0x460e, 0x4772, 0x4774, 0x47b9, 0x47b7, 0x47b8, + 0x4872, 0x486b, 0x4a1d, 0x4a37, 0x4a22, 0x4a43, 0x4a4d, 0x4a38, + 0x4a5b, 0x4a79, 0x4a1b, 0x49f3, 0x4b91, 0x4c7b, + /* 0x5c */ + 0x4c94, 0xc96f, 0x4c96, 0x4c7f, 0x4c8f, 0x4c84, 0x4c7c, 0x4c8e, + 0x4c90, 0x4c98, 0x4c83, 0x4c80, 0x4c93, 0x4c82, 0x32fd, 0x4d3d, + 0x4d41, 0x4da1, 0x4d9f, 0x4e0a, 0x4e0d, 0x4ec8, 0x4ec9, 0x4ec7, + 0x4ecd, 0x4f25, 0x50b1, 0x50dc, 0xc980, 0x50e5, 0x50f4, 0x50bf, + 0x50db, 0x50ea, 0x50f2, 0x03fa, 0x50f1, 0x50ed, 0x50e6, 0x5202, + 0xc982, 0x5325, 0x5318, 0x531f, 0x5320, 0x53cf, 0x549d, 0x5499, + 0x54a8, 0x5568, 0x5566, 0x5567, 0x5591, 0x5613, 0x5615, 0x561d, + 0x5616, 0x5619, 0x566b, 0x5668, 0x566a, 0x566d, 0x5669, 0x56aa, + 0x5757, 0x5752, 0x5750, 0x575f, 0x5767, 0x574f, 0x04f2, 0x575b, + 0x575c, 0x575d, 0x5a1f, 0x599d, 0x59b1, 0x59b0, 0x5994, 0x59c3, + 0x59af, 0x59a8, 0x59dc, 0x5998, 0x59c4, 0x59a4, 0x59ab, 0x59aa, + 0x59a5, 0x5a21, 0x59eb, 0x59e6, 0x59f7, 0x59f8, + /* 0x5d */ + 0x59fc, 0x59fa, 0x59e0, 0xc9aa, 0x59f6, 0xc9a9, 0x59e1, 0x5bec, + 0x5be2, 0x5be4, 0x5bf9, 0x5e6f, 0x6b4c, 0x5ebb, 0x5ee1, 0x5f00, + 0x5ed8, 0x062f, 0x5ed6, 0x5ee2, 0x5ec3, 0x5eb3, 0x5ed2, 0xc9c1, + 0x5ece, 0x5ed0, 0x5ed5, 0x5eb9, 0x5eba, 0x5ecf, 0x5ebd, 0x60db, + 0x61aa, 0x61ad, 0x61b8, 0x61b6, 0x61b5, 0x61af, 0x61b4, 0x61b7, + 0x61a8, 0x61b9, 0x61be, 0x6282, 0x62bc, 0x62b8, 0x62b6, 0x62b9, + 0x06c1, 0x6310, 0x6427, 0x6469, 0x6470, 0x6456, 0x646b, 0x647a, + 0x646c, 0x646d, 0xc9d5, 0x94c1, 0x658d, 0x6590, 0x67b6, 0x6810, + 0x6812, 0x67ba, 0x67bd, 0x6805, 0x67c2, 0x6807, 0x67f5, 0xc9e9, + 0x67af, 0x67f4, 0x67f7, 0x67f8, 0x6811, 0x69f6, 0x69f5, 0x69fb, + 0x6a01, 0x6a00, 0x6a02, 0x69fe, 0x69fa, 0x69fd, 0x0840, 0x6b37, + 0x6b49, 0x6b4b, 0x6b46, 0x6b47, 0x6bb3, 0x6bb2, + /* 0x5e */ + 0x6bb0, 0x6bb7, 0x6c11, 0x6ccc, 0x6cdf, 0x6cd3, 0x6cd5, 0x6cdb, + 0x6cc5, 0x6cc8, 0x6cc9, 0x6ce2, 0x6cca, 0x6cd1, 0x6cd2, 0x6cdd, + 0x6f6c, 0x6f73, 0x7021, 0x6ff0, 0x701f, 0x703b, 0x7022, 0x7023, + 0x6fe8, 0x6fdd, 0x093f, 0x701b, 0x6fed, 0xca0e, 0x6ff2, 0x0946, + 0x6fdc, 0x6fe9, 0x701d, 0x6fda, 0x6fe6, 0x7313, 0x7315, 0x7316, + 0x733c, 0x730b, 0x731c, 0x733a, 0x733d, 0x739a, 0x731d, 0x7309, + 0x7308, 0x733b, 0x7522, 0x7526, 0x7525, 0x7524, 0x369b, 0x758f, + 0x7590, 0x75e6, 0x75e3, 0x75e5, 0x7611, 0xca25, 0x76ae, 0x76be, + 0x76b4, 0x76b3, 0x76af, 0x7691, 0x76c2, 0x76b6, 0x76b2, 0x7857, + 0x783b, 0x7858, 0x7851, 0x7841, 0x7839, 0x0a8f, 0x7859, 0x7845, + 0x7861, 0x78e8, 0x79fa, 0x79ea, 0x79ef, 0x79f2, 0x79f0, 0x7b08, + 0x7b70, 0x7b6a, 0x7b73, 0x7b68, 0x7bc8, 0x7bf2, + /* 0x5f */ + 0x3e7b, 0x7cae, 0x7cab, 0x7cb5, 0x7caf, 0x7cb2, 0x7cb6, 0x7cb0, + 0x7d1e, 0x7e03, 0x7e06, 0x7e1f, 0x0bac, 0x7e0f, 0x7e02, 0x7e19, + 0x7e18, 0x7e22, 0x7e15, 0x7e07, 0x7e0d, 0x7e24, 0x7e0c, 0x7e1e, + 0x7f89, 0x7f8a, 0x800a, 0x800b, 0x8007, 0x8004, 0x8009, 0x8084, + 0x8083, 0x8218, 0x8214, 0x8205, 0x8216, 0x820e, 0x8211, 0x8208, + 0x820b, 0x8215, 0x8085, 0x8237, 0x822a, 0x820d, 0x820f, 0x837e, + 0x8376, 0x8377, 0x83ec, 0x84fc, 0x8508, 0x84ff, 0x8503, 0x8510, + 0x8505, 0x8506, 0x84fa, 0x86c7, 0x86c0, 0x86c3, 0x86a7, 0x86a8, + 0x86ab, 0x86c1, 0x86aa, 0x86c8, 0x8743, 0x8802, 0x880e, 0x8801, + 0x87fe, 0x8803, 0x0d68, 0x8822, 0x8821, 0x8807, 0x8808, 0x880c, + 0x89ca, 0x89bc, 0x89be, 0x89bd, 0xca5c, 0x89bb, 0x89b9, 0x0dab, + 0x89c5, 0x8a99, 0x8b6b, 0x8b93, 0x8b94, 0x8ba9, + /* 0x60 */ + 0x8ba0, 0x8ba6, 0xca61, 0x8bab, 0x8b9e, 0x8b9b, 0x8b91, 0x8b99, + 0x8cb6, 0x8cb8, 0x8c9a, 0x0e91, 0x8c98, 0x8c9b, 0x8cb3, 0x8ca2, + 0x54aa, 0x8ca0, 0x8c9f, 0x8e5b, 0x8e70, 0x8e54, 0x8e71, 0x8e65, + 0x8e51, 0x8e9d, 0x8e61, 0x8e5a, 0x8e74, 0x8e4c, 0x8e4b, 0x8e5e, + 0x8e58, 0x8e53, 0x8e52, 0x8f3b, 0x8f39, 0x8fd6, 0x8fe7, 0x8fd7, + 0x8fd8, 0x8fd9, 0x8fda, 0x8fdb, 0x8fdc, 0x8fe0, 0x8fe4, 0x8fdd, + 0x8ff5, 0x8ff1, 0x9098, 0x909d, 0x9099, 0x9150, 0x9149, 0x27e4, + 0x9162, 0x91d7, 0x9201, 0x91f7, 0xca7d, 0x928c, 0x929c, 0x2888, + 0x931f, 0x931e, 0x943d, 0x943f, 0x9411, 0x9459, 0x943e, 0x9458, + 0x9500, 0x949e, 0x94b6, 0x94aa, 0x94af, 0x94ac, 0x1030, 0x94c0, + 0x94a9, 0x3e10, 0x95ee, 0x9677, 0x9679, 0x967a, 0x967d, 0x967f, + 0x9683, 0x9678, 0x967e, 0x96e4, 0x96e6, 0x96e5, + /* 0x61 */ + 0x105d, 0x974e, 0x9759, 0x1075, 0xca8e, 0x974f, 0x974a, 0x97e3, + 0x97de, 0x97e2, 0x9974, 0x99ac, 0x9961, 0x9962, 0x9976, 0x997a, + 0x9979, 0x9960, 0x9a64, 0x9b81, 0x9adf, 0x9a84, 0x9a8a, 0x9a92, + 0x9a79, 0x9ade, 0x9a98, 0x9a6c, 0x9ae1, 0xcaa5, 0x9a7c, 0x9a72, + 0x9a81, 0x9ae0, 0x9a65, 0x10ff, 0x9a6a, 0x9a97, 0x9aaa, 0x9ad3, + 0x9aab, 0x9a6e, 0x9aac, 0x9a76, 0x9a7b, 0x9aad, 0xcaa6, 0x9a94, + 0x9ad7, 0x9a70, 0x9ad5, 0x9af1, 0x9a7a, 0x9a68, 0x9a96, 0x110b, + 0x9a73, 0x9aae, 0x9add, 0x9ada, 0x9aaf, 0x9ab0, 0x9adb, 0x9a62, + 0x9af8, 0x9cc2, 0x9cc7, 0x9cc8, 0x9cc5, 0x9cc3, 0x9cc6, 0x9dde, + 0x11c8, 0x9e11, 0x9e15, 0x9e28, 0x9e21, 0x9e2d, 0x9e51, 0x9e2b, + 0x9e16, 0x9e24, 0x9e35, 0x9e1f, 0x9e12, 0x9e10, 0x9e80, 0x9e3b, + 0x9e29, 0x9e2a, 0x9e1b, 0x9e18, 0x9e20, 0x9e3f, + /* 0x62 */ + 0x9e1c, 0x9e26, 0x9e0b, 0x9fbe, 0x9fc4, 0x9fbd, 0x9ffa, 0x9ffb, + 0xa0b1, 0xa0b2, 0xa0b0, 0xa0b9, 0xa0a6, 0xa0bd, 0xa0b6, 0xa0b8, + 0xa0b4, 0xa0b3, 0xa0a7, 0xa0ae, 0xa0bc, 0xa1f2, 0xa1f3, 0xa1f4, + 0xa23b, 0xa240, 0xa246, 0xa2f0, 0xa2ee, 0xa2e8, 0xa2f1, 0xa2eb, + 0xa2ef, 0xa3fc, 0xa420, 0xa409, 0xa406, 0xa403, 0xcacf, 0xa419, + 0xa424, 0xa41b, 0xa41d, 0xa3fd, 0xa41e, 0xa3f4, 0xa401, 0xa408, + 0xa405, 0xa423, 0xa3ff, 0xa5ea, 0xa64d, 0xa64e, 0xa656, 0xa657, + 0xa651, 0xa655, 0xa654, 0xa6cb, 0xa6d4, 0xa6d1, 0xa6cf, 0xa6d2, + 0xa6ca, 0xa6d6, 0xa78b, 0xa788, 0xa785, 0xa789, 0x4c9b, 0xa7bb, + 0xa78c, 0x1374, 0xa799, 0xa78a, 0xa8ec, 0xa8ef, 0xa8f9, 0xa909, + 0xa8f8, 0xa8f3, 0xa900, 0xa91d, 0x13ac, 0xa8fd, 0xaa48, 0xaa5c, + 0xaa55, 0xaa5e, 0xaa49, 0xaa63, 0xaa60, 0xaa53, + /* 0x63 */ + 0xaa62, 0xaa40, 0xab49, 0xab4a, 0xab4c, 0xab4d, 0xac0a, 0xac06, + 0xac2f, 0xac21, 0xac07, 0xac09, 0xac02, 0xac16, 0xac03, 0xac0b, + 0xac0f, 0xae60, 0xae68, 0xae5e, 0xae5d, 0xae63, 0xae5f, 0xae64, + 0xae78, 0xae61, 0xae69, 0xae65, 0xafda, 0xafe6, 0xafdb, 0xafdc, + 0xb039, 0xb057, 0xb055, 0xb065, 0xb061, 0xb054, 0xb145, 0xb141, + 0xb13e, 0xb137, 0xb212, 0xb213, 0xb22c, 0xb296, 0xcae9, 0xb29c, + 0xb29d, 0xb285, 0xcae8, 0xb29f, 0xb2a3, 0xb382, 0xb383, 0xcaee, + 0xb41d, 0xb414, 0xb41f, 0xb420, 0xb547, 0xb580, 0xb5c9, 0xb5f9, + 0xb606, 0xb5f0, 0xb5f8, 0xb5ef, 0xb5fd, 0xb5f1, 0xb5fe, 0xb6b8, + 0xb6c0, 0xb6c3, 0xb6b5, 0xb6b6, 0xb6c9, 0xcaf3, 0xb6bd, 0xb6ba, + 0xb6bf, 0xb6b3, 0xb6c6, 0xb6b2, 0xb6bc, 0xb6b7, 0xb6b9, 0xb6c8, + 0xb7b5, 0xb7b3, 0x1616, 0xb7ac, 0xb7a9, 0xb7ad, + /* 0x64 */ + 0xb911, 0xb90d, 0xb916, 0xb989, 0xb97c, 0xb98b, 0xb97b, 0xb988, + 0xb984, 0xba9d, 0xba98, 0xbb88, 0xbb86, 0xbb82, 0xbb8b, 0xcaff, + 0xbb71, 0xbb72, 0xbb81, 0xbb8c, 0xbb80, 0xbb89, 0xbcbb, 0xbcc1, + 0xbcbe, 0xcb01, 0xbcbd, 0xbdc1, 0xbdb4, 0xbdb7, 0xbdc8, 0x173b, + 0xbdd3, 0xbdd0, 0xbdb0, 0xbdca, 0xbdcd, 0xbe15, 0xbe19, 0xbe17, + 0xbe3f, 0xbe40, 0xbe44, 0xbe7c, 0xbe78, 0xbe79, 0xbe88, 0xcb06, + 0xbe89, 0xbe7d, 0xbf23, 0xbf24, 0xbf26, 0xbf22, 0xbf27, 0xbf1f, + 0xbfc9, 0xbfc3, 0xc00a, 0xc00b, 0xc004, 0x17ef, 0xc003, 0xc001, + 0xc009, 0xc10f, 0xc12e, 0xc12d, 0xc191, 0xc199, 0xc19e, 0xc190, + 0xc194, 0xc19d, 0xc198, 0xc19b, 0xc19c, 0xc19a, 0xc254, 0xc39d, + 0xc39f, 0xc3a3, 0xc3a4, 0xc3a5, 0xc602, 0xc717, 0xc71b, 0xc719, + 0xc7d1, 0x4737, +}; + +static const ucs4_t cns11643_6_2uni_upages[204] = { + 0x03400, 0x03500, 0x03600, 0x03700, 0x03800, 0x03900, 0x03a00, 0x03b00, + 0x03c00, 0x03d00, 0x03e00, 0x03f00, 0x04000, 0x04100, 0x04200, 0x04300, + 0x04400, 0x04500, 0x04600, 0x04700, 0x04800, 0x04900, 0x04a00, 0x04b00, + 0x05100, 0x05300, 0x05500, 0x05a00, 0x05b00, 0x05d00, 0x05e00, 0x06100, + 0x06500, 0x06800, 0x06e00, 0x07200, 0x07300, 0x07800, 0x07a00, 0x07f00, + 0x08000, 0x08100, 0x08200, 0x08800, 0x08900, 0x08a00, 0x08d00, 0x08f00, + 0x09200, 0x09700, 0x0ff00, 0x20000, 0x20100, 0x20200, 0x20300, 0x20400, + 0x20500, 0x20600, 0x20700, 0x20800, 0x20900, 0x20a00, 0x20b00, 0x20c00, + 0x20d00, 0x20e00, 0x20f00, 0x21100, 0x21200, 0x21300, 0x21400, 0x21500, + 0x21600, 0x21700, 0x21800, 0x21900, 0x21a00, 0x21b00, 0x21c00, 0x21d00, + 0x21e00, 0x21f00, 0x22000, 0x22100, 0x22200, 0x22300, 0x22400, 0x22500, + 0x22600, 0x22700, 0x22800, 0x22900, 0x22a00, 0x22b00, 0x22c00, 0x22d00, + 0x22e00, 0x22f00, 0x23000, 0x23100, 0x23200, 0x23300, 0x23400, 0x23500, + 0x23600, 0x23800, 0x23900, 0x23a00, 0x23b00, 0x23c00, 0x23d00, 0x23e00, + 0x23f00, 0x24100, 0x24200, 0x24300, 0x24400, 0x24500, 0x24600, 0x24700, + 0x24800, 0x24900, 0x24a00, 0x24b00, 0x24c00, 0x24d00, 0x24e00, 0x24f00, + 0x25000, 0x25100, 0x25200, 0x25300, 0x25400, 0x25500, 0x25600, 0x25700, + 0x25800, 0x25900, 0x25a00, 0x25b00, 0x25e00, 0x25f00, 0x26000, 0x26200, + 0x26300, 0x26400, 0x26500, 0x26600, 0x26700, 0x26800, 0x26900, 0x26a00, + 0x26b00, 0x26c00, 0x26d00, 0x26e00, 0x27100, 0x27200, 0x27300, 0x27500, + 0x27600, 0x27700, 0x27800, 0x27900, 0x27a00, 0x27b00, 0x27c00, 0x27d00, + 0x27e00, 0x27f00, 0x28000, 0x28200, 0x28300, 0x28400, 0x28500, 0x28600, + 0x28700, 0x28800, 0x28900, 0x28c00, 0x28d00, 0x28e00, 0x28f00, 0x29000, + 0x29100, 0x29200, 0x29300, 0x29400, 0x29500, 0x29600, 0x29800, 0x29a00, + 0x29b00, 0x29c00, 0x29d00, 0x29f00, 0x2a000, 0x2a200, 0x2a300, 0x2a400, + 0x2a500, 0x2f800, 0x2f900, 0x2fa00, +}; + +static int +cns11643_6_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 >= 0x21 && c1 <= 0x64)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if (c2 >= 0x21 && c2 < 0x7f) { + unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); + ucs4_t wc = 0xfffd; + unsigned short swc; + { + if (i < 6388) + swc = cns11643_6_2uni_page21[i], + wc = cns11643_6_2uni_upages[swc>>8] | (swc & 0xff); + } + if (wc != 0xfffd) { + *pwc = wc; + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + diff --git a/graf2d/win32gdk/gdk/src/iconv/cns11643_7.h b/graf2d/win32gdk/gdk/src/iconv/cns11643_7.h new file mode 100644 index 00000000000..44532bc4e11 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cns11643_7.h @@ -0,0 +1,988 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CNS 11643-1992 plane 7 + */ + +static const unsigned short cns11643_7_2uni_page21[6539] = { + /* 0x21 */ + 0x2b55, 0x2c82, 0x2c89, 0x2c87, 0x2dbe, 0x2dbd, 0x2dca, 0x2dd4, + 0x2dbc, 0x2dc4, 0x2dc1, 0x2dc2, 0x2dd7, 0x2d70, 0x2dba, 0x2de3, + 0x2dbb, 0x2eb1, 0x2eb6, 0x2eb0, 0x2f6c, 0x300d, 0x3007, 0x31f1, + 0x31f5, 0x31ed, 0x31ef, 0x31eb, 0x31ec, 0x31ee, 0x3207, 0x33c4, + 0x3408, 0x34b3, 0x34ad, 0x34b0, 0x3511, 0x2c8a, 0x3683, 0x367a, + 0x3682, 0x3668, 0x3671, 0x36b0, 0x36af, 0x01f6, 0x366c, 0x366f, + 0x3662, 0x3665, 0x3681, 0x367f, 0x3664, 0x3673, 0x366e, 0x3667, + 0x3674, 0x367d, 0x3678, 0x3685, 0x36aa, 0x3688, 0x36a6, 0xc34e, + 0x368a, 0x3684, 0x1a55, 0x3924, 0x3922, 0x3923, 0x3a32, 0x3a5b, + 0x3a4f, 0x0267, 0x3a26, 0x3a3e, 0x3a42, 0x3a47, 0x3a22, 0x309b, + 0x3a4a, 0x3a1f, 0x3a49, 0x3a2b, 0x3a33, 0xc358, 0x3a2a, 0x3a28, + 0x3b3d, 0x3b3c, 0x3bbf, 0x3c79, 0x3c80, 0x3c7c, + /* 0x22 */ + 0x3c7a, 0x3c78, 0x3d82, 0x3d5c, 0x3d5a, 0x3d4b, 0x3d7c, 0x3d7f, + 0x3d1f, 0x3d89, 0x3d8b, 0x3d57, 0x3d7e, 0x3d7d, 0x3d53, 0x3f9f, + 0x3fbc, 0x3fa5, 0x3f86, 0x3fdc, 0x3fa4, 0x3fb6, 0x3fa2, 0x3fb4, + 0x4048, 0x4046, 0x40a7, 0x4114, 0x4112, 0x4111, 0x41e1, 0x41d0, + 0x4226, 0x4228, 0x4229, 0x432f, 0x430d, 0x4325, 0x4314, 0x433c, + 0x430b, 0x4311, 0x4330, 0x4318, 0x4319, 0x4336, 0x4317, 0x4310, + 0x4315, 0x4403, 0x4429, 0x444c, 0x453f, 0x453e, 0x4534, 0x4542, + 0x4535, 0x31f3, 0x45cd, 0x45d1, 0x45d2, 0x46ad, 0x46ba, 0x46c1, + 0x46bb, 0x46b4, 0x46bc, 0x476c, 0x4792, 0x4821, 0x4824, 0x5f19, + 0x48ad, 0x48ae, 0x48ab, 0x48ac, 0x4970, 0x4976, 0x4971, 0x4977, + 0x1c7f, 0x4aec, 0x4b1c, 0x4afb, 0x4aee, 0x4be2, 0x4afd, 0x4b1e, + 0x4b3b, 0x4b4a, 0xc3ae, 0x0592, 0x4b7d, 0x4b56, + /* 0x23 */ + 0x4b44, 0x4b4b, 0x4cfa, 0x4ce8, 0x4cf8, 0x4cff, 0x4cf7, 0x4cf6, + 0x4cfe, 0x4d07, 0x4d5d, 0x4ed4, 0xc3c3, 0x4ec8, 0x4ec5, 0xc3c0, + 0x4ec9, 0x4f4d, 0x4f20, 0x4f36, 0x4f35, 0x4f88, 0x4f25, 0x4f21, + 0x4f26, 0x0645, 0x4f3f, 0x4f3b, 0x4f24, 0x4f43, 0x4f4e, 0x4f4f, + 0x4f44, 0x4f40, 0x4f41, 0x4f39, 0x4f2b, 0x50dd, 0x50de, 0x51cd, + 0x51cb, 0x51db, 0x51d8, 0x51d9, 0x51d2, 0x51ca, 0x51d1, 0x51d4, + 0x51f9, 0x51d0, 0x525e, 0x525d, 0x528a, 0x5314, 0x5483, 0x5484, + 0x549b, 0x5482, 0x547d, 0x547c, 0x5499, 0x547e, 0x549a, 0x5495, + 0x547b, 0x5486, 0x5548, 0x5592, 0x56b2, 0x5742, 0x5772, 0x5715, + 0x5730, 0x5743, 0x575b, 0x571d, 0x5773, 0x572d, 0x07c9, 0x5721, + 0x571c, 0xc3ea, 0x5729, 0x571e, 0x5733, 0x5a10, 0x5a0e, 0xc3f1, + 0x5a0d, 0x5a11, 0x5a12, 0x5a17, 0x5a09, 0x5a0f, + /* 0x24 */ + 0x5a98, 0x5a94, 0x5a96, 0x5a99, 0x5a95, 0x5a97, 0x5b50, 0x5b52, + 0x5b4d, 0x5b57, 0x5b53, 0x5b56, 0x5bb8, 0x5c12, 0x5cf1, 0x5cf0, + 0x5cee, 0x5cef, 0x5ce5, 0x5ceb, 0x5ce7, 0x5cf2, 0x5ce6, 0x5cf7, + 0x5d09, 0x5d6b, 0x5d6a, 0x5e79, 0x5ecd, 0x5eef, 0x5ee4, 0x5ee3, + 0x5f6c, 0x5f67, 0x5f62, 0x5f58, 0x5f69, 0x5fab, 0x5f57, 0x5fad, + 0x5f54, 0x5fae, 0x5f76, 0x5f49, 0x5f45, 0x5f4f, 0xc40f, 0x5f50, + 0x5f7d, 0x5f44, 0x5f66, 0x5f48, 0x5fa3, 0x5f51, 0x5f53, 0xc410, + 0x5f60, 0x5f47, 0x5f5e, 0x5f85, 0x5fac, 0x5f6d, 0x5f75, 0x5fa8, + 0x0955, 0x5f43, 0x5f4e, 0x5f5c, 0x5f56, 0x5f6e, 0x5f63, 0x5f6a, + 0x6256, 0x6212, 0x625c, 0x6258, 0x6255, 0x627e, 0x62a8, 0x6211, + 0x6259, 0x625a, 0x6267, 0x6254, 0x625b, 0x62f0, 0x6429, 0x642c, + 0x642a, 0x6427, 0x6467, 0x6468, 0x6493, 0x6495, + /* 0x25 */ + 0x649a, 0x64ee, 0x64f1, 0x64ed, 0x64e9, 0x65cb, 0x65df, 0x65db, + 0x673c, 0x674e, 0x676c, 0x677b, 0x677c, 0x6783, 0x676b, 0x6766, + 0x6763, 0x67a0, 0x6785, 0x6768, 0x67a2, 0x68ec, 0x0ae8, 0x68e7, + 0x6910, 0x6918, 0x693a, 0x691a, 0x6938, 0x6941, 0x691b, 0x6914, + 0x691c, 0x691d, 0x6a12, 0x6a0d, 0x6a07, 0x6a7e, 0x6a7f, 0x34b9, + 0x6a80, 0x6a7a, 0x6af3, 0x6bb9, 0x6bbb, 0x6bba, 0x6bbd, 0x6bb7, + 0x6bbf, 0x6c21, 0x6d3a, 0x6d3d, 0x6d36, 0x6d49, 0x6d81, 0x0bb6, + 0x6d3f, 0x6d4d, 0x6d3e, 0x0bbd, 0x6d30, 0x6d4f, 0x6e37, 0x6e98, + 0x6e99, 0x6f11, 0x6f0d, 0x6f88, 0x6f8a, 0x701c, 0x7055, 0x7056, + 0x7062, 0x7057, 0x7042, 0x7010, 0x704d, 0x705a, 0x7066, 0x7046, + 0x4b7e, 0x704f, 0x80f9, 0x7187, 0x7184, 0x71f4, 0x71f5, 0x71f2, + 0x71f7, 0x7345, 0xc450, 0x7349, 0x7335, 0x72fd, + /* 0x26 */ + 0x7330, 0x7343, 0x7346, 0x0cd6, 0x7333, 0x74c6, 0xc456, 0x74d4, + 0x8dd8, 0x74e0, 0x36a7, 0x7544, 0x2d98, 0x7654, 0x763e, 0x7635, + 0x763a, 0x0d71, 0x7634, 0x7639, 0x7646, 0x765a, 0x765b, 0x763c, + 0x77dc, 0x77d6, 0x77d0, 0xc45e, 0x78ac, 0xc45d, 0x78a5, 0x79f4, + 0x7a24, 0x79e0, 0x79fd, 0x79f2, 0x79fc, 0x7a02, 0x79f1, 0x79ff, + 0x79d2, 0x79d8, 0x79d3, 0x79f9, 0xc463, 0x79ed, 0x79f7, 0x79f0, + 0x79d7, 0x7a09, 0x79f5, 0x7cc2, 0x7cc5, 0x7ccf, 0x0e98, 0x7cc1, + 0x7cc6, 0x7cd4, 0x7cce, 0x7e9b, 0x7e99, 0x7e8f, 0x7eb7, 0x7e82, + 0x7e93, 0x7eb4, 0x7ec1, 0x7e90, 0x7e9a, 0x7e94, 0x7e9c, 0x7eb5, + 0xc46f, 0xc46e, 0x7e9f, 0x7e8e, 0x7e9e, 0x803c, 0x8047, 0x8041, + 0x80eb, 0x80ec, 0x80ed, 0x80ee, 0x80df, 0x80f2, 0x810d, 0x810e, + 0x2c86, 0x81a9, 0x81a4, 0x81a5, 0x825f, 0x825a, + /* 0x27 */ + 0x8266, 0x8268, 0x826a, 0x8264, 0x8265, 0x82c1, 0x82d8, 0xc47b, + 0x82d9, 0x8309, 0x83aa, 0x83a3, 0x83b9, 0x77e2, 0x83a5, 0x83ab, + 0x8420, 0x8589, 0x858b, 0x85db, 0x85e4, 0x85ef, 0x85e2, 0x85e9, + 0x85f0, 0x85f3, 0x85dd, 0x861e, 0x871d, 0x8746, 0x877c, 0x8780, + 0x8781, 0x8782, 0x8787, 0x8788, 0x878a, 0x878c, 0x87e7, 0x87eb, + 0x87ea, 0x8868, 0x886b, 0x8869, 0x8866, 0x886a, 0x8865, 0x88e5, + 0x88e4, 0x88e6, 0x8918, 0x8a24, 0x8a48, 0x8a2f, 0x8a7e, 0x8989, + 0x8a1e, 0x8a49, 0x8a26, 0x8a09, 0x8a34, 0x8a2d, 0x8a4a, 0x8a15, + 0xc4a9, 0x8a33, 0x8a28, 0x8a27, 0x8a20, 0x8a2b, 0x8a29, 0x8a6a, + 0x8a0b, 0x8a0e, 0x8a1c, 0x89ff, 0xc4aa, 0x8a35, 0x8a11, 0x8a4b, + 0x8a4c, 0x8a1f, 0x8a0f, 0x8a39, 0x8a68, 0x8a1d, 0x8a08, 0x8a0c, + 0x8a0d, 0x8a62, 0x8aaf, 0x8a32, 0x8a2c, 0x8a64, + /* 0x28 */ + 0x8a04, 0x8a16, 0x8a4d, 0x8a07, 0x8aae, 0x8dd4, 0x8dd1, 0x8dd5, + 0x8dd0, 0x8f71, 0x8f5d, 0x8f5b, 0x8f7a, 0xc4bd, 0x8f7f, 0x8f79, + 0x8f67, 0x8f9e, 0x8f94, 0x8f64, 0x8f5e, 0x8f81, 0x8f5a, 0x8f57, + 0x8f7c, 0x8f98, 0x8f66, 0x8f7e, 0x8f82, 0x8f68, 0x8f5f, 0x8f63, + 0x8f97, 0x11cd, 0x8f53, 0x8f7b, 0x8f7d, 0x8f78, 0x9006, 0x91c0, + 0x91c2, 0x91c3, 0x92dc, 0x92e6, 0x92ec, 0x92f2, 0x92e8, 0x92eb, + 0x92ea, 0x92e5, 0x92e0, 0x92d0, 0x92d8, 0x92d5, 0x92d3, 0x92e4, + 0x92f3, 0x92db, 0x932f, 0x93f9, 0x945d, 0x945b, 0x944c, 0x9458, + 0x9460, 0x9453, 0x9450, 0x9507, 0x9508, 0x94f4, 0x94f6, 0x9504, + 0x94fd, 0x9505, 0x9628, 0x9656, 0x9642, 0x965c, 0x963d, 0x962f, + 0x962b, 0x9658, 0x9661, 0x962c, 0x9651, 0x9650, 0x963c, 0x9636, + 0x12f6, 0x9660, 0x965b, 0x962e, 0x9640, 0x965f, + /* 0x29 */ + 0x9626, 0x962d, 0x965e, 0x963b, 0x97ef, 0x97f3, 0x97ee, 0x97ed, + 0x985a, 0x9862, 0x985b, 0x985f, 0x985e, 0x9864, 0x98e0, 0x98e1, + 0x98e5, 0x99a5, 0x999b, 0x999f, 0x999c, 0x137a, 0x99aa, 0x99a4, + 0x99a3, 0x9a67, 0x9b26, 0x9b1a, 0x13b8, 0x9b1c, 0x9b15, 0x9b1b, + 0x9b18, 0x9b1e, 0x9b25, 0xc4dc, 0x9c7b, 0x9c75, 0x9c93, 0x9c8f, + 0x9c7c, 0x9c9b, 0x9c88, 0x9c91, 0x9c7e, 0x1401, 0x9c86, 0x9e5b, + 0x9e54, 0x9f35, 0x9f40, 0x9f37, 0x9f29, 0x9f26, 0x9f23, 0x9f30, + 0x9f20, 0x9f28, 0x9f32, 0x9f2a, 0x9f31, 0x9f24, 0x9f41, 0x9f42, + 0x9f43, 0x9f25, 0x9f38, 0xa01c, 0xa01d, 0xa01e, 0xa0f6, 0xa1a5, + 0xa189, 0xa19d, 0xa18a, 0xa187, 0xa1ab, 0xa186, 0xa19e, 0xa193, + 0xa1a1, 0xa188, 0xa1a3, 0xa19f, 0xa1a0, 0xa2ff, 0xa300, 0xa302, + 0xa2f8, 0xa2f7, 0xa301, 0xa387, 0xa389, 0xa376, + /* 0x2a */ + 0xa36e, 0xa377, 0xa382, 0xa385, 0xa383, 0xa384, 0xa457, 0xa44b, + 0xa456, 0xa45d, 0xa460, 0xa44d, 0xa455, 0xa454, 0xa453, 0xa450, + 0xa463, 0xa462, 0xa517, 0xa516, 0xa52d, 0xa5d9, 0xa5bf, 0x152f, + 0xa5b2, 0xa5ac, 0xa5b0, 0xa5cf, 0xa5b8, 0x1531, 0xa5d3, 0xa5b1, + 0xa5af, 0xa5ce, 0xa5b4, 0xa5b7, 0xa5d5, 0x159c, 0xa938, 0xa928, + 0xa93f, 0xa940, 0xa941, 0xa933, 0xa92b, 0xa92e, 0xab11, 0xab18, + 0xab17, 0xab19, 0xab16, 0x15e6, 0xab0d, 0xab26, 0xab79, 0xabd8, + 0xabf3, 0xabd7, 0xabcc, 0xabcf, 0xabcb, 0xabd1, 0xabce, 0xabd4, + 0xabd5, 0xabd3, 0xabd6, 0xabcd, 0xabda, 0xabd2, 0xabde, 0xaccc, + 0xacb8, 0xacb7, 0xacc2, 0xacc3, 0xadfa, 0xadf9, 0xae1f, 0xae1d, + 0x6282, 0xaea6, 0xae90, 0xae9e, 0xae98, 0xae93, 0xae92, 0xaea5, + 0xae95, 0xafa9, 0xafa8, 0xafaa, 0xafab, 0xafac, + /* 0x2b */ + 0xb01f, 0xb022, 0xb0aa, 0xb096, 0xb091, 0xb0ab, 0xb0a2, 0xb0a4, + 0xb09d, 0xb097, 0xb07d, 0xb09f, 0xb09c, 0xb099, 0xb0a6, 0xb092, + 0xb0a7, 0xb1c9, 0xb1c8, 0xb1c7, 0xb1cb, 0xb274, 0xb2c9, 0x1738, + 0xb2d2, 0xb2db, 0xb2eb, 0xb2e9, 0xb2ef, 0xb2ee, 0xb2f9, 0xb2de, + 0xb416, 0xb445, 0xb47f, 0xb498, 0xb49f, 0xb486, 0xb490, 0xb49a, + 0xb49d, 0xb48d, 0xb49c, 0xb4a0, 0xb4a7, 0xb48f, 0xb641, 0xb635, + 0xb637, 0xb630, 0xb63a, 0xb636, 0xc508, 0xb6ca, 0xb712, 0xb715, + 0xb722, 0xb713, 0xb718, 0xb721, 0xb810, 0xb820, 0xb82f, 0xb8a5, + 0xb8a3, 0xb8b6, 0xb8ab, 0xb968, 0xb967, 0xb96f, 0xb977, 0xb964, + 0xb978, 0x183a, 0xb976, 0xb96e, 0x18b1, 0xbbd0, 0xbbb3, 0xbbcb, + 0xbbd6, 0xbbb1, 0xbbb4, 0xbbd7, 0xbbc6, 0xbbba, 0xbbd1, 0xbbd2, + 0xbbb5, 0xbbc4, 0xbbcc, 0xbbbb, 0xbbb2, 0xbe5b, + /* 0x2c */ + 0xbe5a, 0xbe59, 0xbe99, 0xbe94, 0xbe96, 0xbe93, 0xbe91, 0xbe8f, + 0xbe98, 0xbf0c, 0xbf0a, 0xbf0e, 0xbf12, 0xbf11, 0xbf0b, 0xbf9a, + 0x1947, 0xbfb4, 0x1951, 0xc01c, 0xc020, 0xc021, 0xc0d3, 0xc0d2, + 0xc138, 0x2afd, 0x6bcf, 0x2c1d, 0x2c92, 0x2c8f, 0x2c8c, 0x2dea, + 0x2eb9, 0x2f6e, 0x2fa0, 0xaddd, 0x3012, 0x3017, 0x306d, 0x3205, + 0x31fb, 0x31fd, 0x3206, 0x3200, 0x31ff, 0x31fe, 0x32b6, 0x3305, + 0x3307, 0x34bc, 0x34bb, 0x358b, 0x3587, 0x97fb, 0x36e7, 0x36e6, + 0x36e2, 0xa1d3, 0x36d9, 0x36ca, 0x3712, 0x3710, 0x36dc, 0x36d0, + 0x368b, 0x3713, 0x4d10, 0x36da, 0xc34f, 0x36fd, 0x36e5, 0x36cc, + 0x3739, 0x36c7, 0x36d8, 0x3a60, 0x3a64, 0x3a86, 0x3a5e, 0x3a66, + 0x3a5f, 0x3a77, 0x3a82, 0x3a96, 0x3b3e, 0x3b79, 0x3b7a, 0x3c88, + 0x3c89, 0x3c8c, 0x62e0, 0x3c7b, 0x3c86, 0x3d94, + /* 0x2d */ + 0x3d97, 0x3db7, 0x3db5, 0x3db8, 0x3d93, 0x3db2, 0x3db4, 0x3d99, + 0x3dc3, 0x3d9d, 0x3d9b, 0x3da3, 0x0347, 0x3e9f, 0x3e9e, 0x3ea3, + 0x3ea0, 0x3ea1, 0x3fc5, 0x3fc6, 0x3fbe, 0x3fc4, 0x3fbf, 0x404c, + 0x404a, 0x40b1, 0x4115, 0x4117, 0x4110, 0x4118, 0x41e0, 0x41df, + 0x4227, 0x4343, 0x4348, 0x431d, 0x4350, 0x4358, 0x4347, 0x4354, + 0x4353, 0x4340, 0x4355, 0x0417, 0x435a, 0x4870, 0x455b, 0x454d, + 0x4556, 0x454f, 0xc387, 0x4559, 0xc388, 0x4554, 0x4553, 0x4550, + 0x46b3, 0x476e, 0x04a3, 0x476f, 0x4793, 0x4829, 0x4825, 0x4828, + 0x486f, 0x54b8, 0xc397, 0x48b3, 0x4979, 0x497e, 0x497c, 0x4983, + 0xc3ac, 0x4b00, 0x4b34, 0x4b65, 0x4b36, 0x4ba7, 0x4b59, 0x4b58, + 0x4b31, 0x4b62, 0x4b38, 0x4b73, 0x4b3e, 0x4b55, 0x4b54, 0x4b95, + 0xc3ad, 0x4ba5, 0x4b94, 0x4b9a, 0x4b9b, 0x4b99, + /* 0x2e */ + 0x4b9f, 0x4b53, 0x4d12, 0x4d0a, 0x4d09, 0x4d0c, 0x4d0b, 0x4d0e, + 0x4d0d, 0x4d08, 0x4f38, 0x4f3a, 0x4f37, 0x4f3d, 0x4f2d, 0x4f82, + 0x4f95, 0x4f87, 0x4f9d, 0x4fb5, 0x4f81, 0x4fc7, 0x4f9b, 0x4f98, + 0x4f94, 0x4f86, 0x4f90, 0x4f34, 0x4f8e, 0x4f85, 0x4fa6, 0x4f96, + 0x51ea, 0x51df, 0x54bd, 0x51f7, 0x51eb, 0x51e0, 0x51e8, 0x51e1, + 0x51e9, 0x51ee, 0x51e5, 0x51ec, 0x5263, 0x52c6, 0x52c2, 0x52c1, + 0x52c0, 0x52c3, 0x5318, 0x54ae, 0x54a3, 0x54c5, 0x54a0, 0x54b4, + 0x54a5, 0x071e, 0x54a4, 0x54a8, 0x54a6, 0x57a8, 0x578d, 0x5782, + 0x579e, 0x5789, 0x5783, 0x5791, 0x57a6, 0x579a, 0x5790, 0x5785, + 0x577d, 0xc3ec, 0x579b, 0x57a5, 0x57f0, 0x5796, 0x5788, 0x57d6, + 0x57d8, 0x5786, 0x57a4, 0x5797, 0x5a1c, 0x5a19, 0x5a9e, 0x5a9f, + 0x5a9d, 0x5a9c, 0x5b5d, 0x5b5e, 0x5b73, 0x5b63, + /* 0x2f */ + 0x5bbe, 0x5bc1, 0x5bbc, 0x5bbf, 0x5bbb, 0x5bbd, 0x5c13, 0x5c14, + 0x5cf8, 0x5cfa, 0x5d06, 0x5cfe, 0x5d51, 0x600b, 0x5ff1, 0x5fa9, + 0x5fd5, 0x5fdc, 0x5fcb, 0x5ff2, 0x605f, 0x5fdb, 0x5fd6, 0x5fd9, + 0x5fd1, 0x5fcf, 0x5fd8, 0x5fe0, 0x5fd4, 0x5ff3, 0x6005, 0x5fce, + 0x5ff4, 0xc412, 0x5fda, 0x600e, 0x6006, 0x5fd7, 0x5fcd, 0x6007, + 0x5fe1, 0x6008, 0x62be, 0x62ef, 0x62d9, 0x62da, 0x1fd7, 0x62a0, + 0x62df, 0x629e, 0x62bf, 0x62af, 0x62a7, 0x62aa, 0x62f4, 0x62ae, + 0x62b5, 0x62b8, 0x62db, 0x62c0, 0x62b7, 0x62a2, 0x62dd, 0x62a1, + 0x62a5, 0x62b4, 0x62a6, 0x62ab, 0x62ac, 0x629f, 0x62b1, 0x62fc, + 0x642e, 0x6430, 0x6499, 0x64f8, 0x64f6, 0x65f4, 0x65eb, 0x65e1, + 0x65e4, 0x6775, 0x6769, 0x0a9a, 0x6799, 0x679e, 0x6794, 0x6793, + 0x6791, 0x6919, 0x6917, 0x6949, 0x6947, 0x6948, + /* 0x30 */ + 0x6952, 0x6940, 0x6963, 0x6946, 0x695f, 0x6a0e, 0x6a85, 0x6a87, + 0x6acb, 0x6acc, 0x6ac9, 0x6bcb, 0x41e7, 0x6c20, 0x6d5f, 0x6d60, + 0x6d6a, 0x6d76, 0x6d73, 0x6d71, 0x6d66, 0x0bc2, 0x6d6b, 0x6d79, + 0x6d7b, 0x6e3c, 0x6e9e, 0x6e9c, 0x6f1c, 0x6f1e, 0x6f21, 0x6f96, + 0x6fa1, 0x6fb6, 0x6fa0, 0x6f94, 0x6f97, 0x7081, 0x7086, 0x70c0, + 0x708a, 0xc44b, 0x7085, 0x7095, 0x7049, 0x7082, 0x7084, 0x4b78, + 0x7090, 0x70b1, 0x71fe, 0x71fb, 0x7350, 0x7356, 0x735a, 0x734c, + 0x0cdc, 0x7357, 0x74e1, 0x74d9, 0x74db, 0x74f4, 0x7545, 0x7547, + 0x7674, 0x766b, 0x7668, 0x7669, 0x7679, 0xc45b, 0x7680, 0x7681, + 0x7661, 0x7670, 0x766f, 0x7673, 0x765d, 0x77fa, 0x0db3, 0x77f3, + 0x780a, 0x7817, 0xc45f, 0x78b0, 0x7a3e, 0x7a46, 0x7a4f, 0x7a44, + 0x7a69, 0x7a33, 0x7a2f, 0x7a4e, 0x7a3a, 0x7a2b, + /* 0x31 */ + 0x7aa9, 0x7a50, 0x7a45, 0x7a37, 0x7a25, 0x7a2c, 0x7a3f, 0x7a34, + 0x7a29, 0x7a1e, 0x7a3d, 0x7ced, 0xc466, 0x7cf3, 0x7cea, 0x7ceb, + 0x7ecc, 0x7ece, 0x7ed0, 0x7ee3, 0x7ee0, 0x7ed1, 0x7edc, 0x7edd, + 0x7ef0, 0x7edb, 0x7ee5, 0x7ef1, 0x7ec9, 0x7ee8, 0x7ee7, 0x7ec8, + 0x7ede, 0x7ecd, 0x7ec5, 0x7ec6, 0x7ee4, 0x7ec3, 0x80fb, 0x80fc, + 0x80fe, 0x8103, 0x8100, 0x80fd, 0x8105, 0x8113, 0x81a7, 0x81b4, + 0x8270, 0x8274, 0x8271, 0x8275, 0x827d, 0x8273, 0x82c4, 0x82c3, + 0x82de, 0x82dd, 0x8311, 0x830f, 0x8310, 0x83c3, 0x83c2, 0x83ca, + 0x83c1, 0x8423, 0x85b1, 0x8624, 0x8611, 0x8625, 0x860a, 0x861f, + 0x8620, 0x8614, 0x8628, 0x8603, 0x8612, 0x860b, 0x8617, 0x4d11, + 0x8749, 0x8789, 0x8790, 0x878f, 0x8796, 0x8795, 0x8793, 0x87ed, + 0x87f0, 0x62de, 0x8885, 0x8877, 0x887a, 0x8884, + /* 0x32 */ + 0x8879, 0x887d, 0x887b, 0x88ed, 0x88ec, 0x89f6, 0x899b, 0x8a9d, + 0x8b11, 0x8ac4, 0x8ac8, 0x8adf, 0x8abf, 0x8ab3, 0x8aba, 0x8b10, + 0x8b06, 0x8a88, 0x8a9a, 0x8ae0, 0x8acc, 0x8ab5, 0x8ae1, 0x8abc, + 0x8ac6, 0x8b0b, 0x8aa4, 0x8a95, 0x8aa3, 0x8ae2, 0x8acd, 0x8ae3, + 0x8aab, 0x8acb, 0x8a8f, 0xc4ab, 0x8aa9, 0x8b24, 0x8ae4, 0x8b12, + 0x8ae5, 0x8b67, 0x8aaa, 0x8aa0, 0x8ae6, 0x8ac1, 0x8ae7, 0x8b0d, + 0x8a86, 0x8ab0, 0x8a8b, 0x8ae8, 0x8ac9, 0x8b19, 0x8ac0, 0x8b0c, + 0x8ae9, 0x8aea, 0x8ded, 0x8de3, 0x8de4, 0x8de8, 0x8dd2, 0x8de2, + 0x2466, 0x8fcf, 0x8fd1, 0x8fc3, 0x8fc9, 0x8fea, 0x8fb4, 0x8fdc, + 0x8fbd, 0x8fe6, 0x8fc8, 0x8fec, 0x8fb2, 0x8fa9, 0x8fd3, 0x8fc0, + 0x8fe9, 0x8fd5, 0x11d9, 0x8fc5, 0x11dd, 0x8fcb, 0x8fd0, 0x8fd2, + 0x8fe4, 0x8fe8, 0x8fcd, 0x8fb6, 0x8faa, 0x8fd4, + /* 0x33 */ + 0xa049, 0x8fc1, 0x8fdd, 0x8fce, 0x91c9, 0x91ca, 0x92fd, 0x92d9, + 0x92ff, 0x9304, 0x92fa, 0x9306, 0x9315, 0x9311, 0x9307, 0x930b, + 0x93fc, 0x93fd, 0x946d, 0x9465, 0x9514, 0x9513, 0x950c, 0x950b, + 0x9518, 0x9522, 0x967d, 0x966f, 0x9675, 0x967b, 0x9680, 0x967f, + 0x9696, 0x966d, 0x966b, 0x9686, 0x9673, 0x9662, 0x9677, 0x9681, + 0x9669, 0x9682, 0x9697, 0x9684, 0x12fc, 0x9678, 0xc4d0, 0x967a, + 0x966a, 0x9665, 0x967e, 0x9694, 0x97c2, 0x97c1, 0x97f9, 0x9871, + 0x986b, 0x986d, 0x986f, 0x986e, 0x98f2, 0x98e8, 0x98ef, 0x98e9, + 0x98ea, 0x98ed, 0x98f3, 0x98e6, 0x99c9, 0x99b4, 0x99b3, 0x99b9, + 0x99ca, 0x99b1, 0x99b6, 0x99c7, 0x99c4, 0x99b7, 0x9a6f, 0x9b33, + 0x9b32, 0x9b1f, 0xc4d9, 0x9b2b, 0x9b30, 0x9b36, 0x9b42, 0x9b41, + 0xc4d8, 0x9ca5, 0x9cab, 0x9ca9, 0x9cb3, 0x9ca7, + /* 0x34 */ + 0x9ca0, 0x9cd2, 0x9ca8, 0x9cb6, 0x9cac, 0x9cae, 0x9ce6, 0x9e65, + 0x9f47, 0x9f63, 0x9f4d, 0x9f5f, 0x9f4b, 0x9f60, 0x9f49, 0x9f53, + 0xc4df, 0x263a, 0x9f57, 0x9f4e, 0x9f52, 0x9f54, 0xa020, 0xa022, + 0xa1c1, 0xa1d7, 0xa1d5, 0xa1c4, 0xa1d0, 0xa1bb, 0xa1e2, 0xa1cb, + 0xa1b8, 0xa1bf, 0xa1d8, 0xa1c0, 0xa1ba, 0xa1b4, 0xa1bc, 0xa1d4, + 0xa1ed, 0xa1c2, 0xa1d9, 0xa1cc, 0xa32f, 0xa323, 0xa396, 0xa38d, + 0xa39e, 0xa399, 0xa483, 0x1507, 0xa46a, 0xa469, 0xa475, 0xa46c, + 0xa480, 0xa46e, 0xa481, 0xa477, 0xa476, 0xa473, 0xa470, 0xa484, + 0xa519, 0xa5f2, 0x273d, 0xa5ec, 0xa5eb, 0xa5f6, 0xa5ef, 0xa5f4, + 0xa5ee, 0xa5f3, 0xa5ed, 0xa89b, 0xa898, 0xa894, 0x3a7a, 0xa89a, + 0xc4f0, 0xa94c, 0x15a8, 0xa957, 0xa951, 0xa962, 0xa952, 0xa95c, + 0xa953, 0xc4ef, 0xaa85, 0xab2d, 0xab3e, 0xab30, + /* 0x35 */ + 0xab7d, 0xabe6, 0xabf6, 0xabe4, 0xabe9, 0xabec, 0xabf2, 0xabe8, + 0xabe3, 0xabeb, 0xabf0, 0xabea, 0xabe7, 0xabfd, 0xabe5, 0xabee, + 0xabf5, 0xabf9, 0xabf1, 0xabf4, 0xc4f4, 0xac11, 0xacde, 0xacd8, + 0xacdd, 0xacdb, 0xacd3, 0xace1, 0xadde, 0xadfc, 0xae28, 0xaeb7, + 0xaeb8, 0xaec7, 0xaeb2, 0xaea9, 0xaeb9, 0xaebc, 0xaeb3, 0xaed1, + 0xafb0, 0xafb1, 0xafb6, 0xb004, 0xb02c, 0xb0c1, 0xb09e, 0xb0ba, + 0x16ca, 0xb0d1, 0xb0d3, 0xb0d4, 0xb0d5, 0xb0c5, 0xb0b6, 0xb0b2, + 0xb0b5, 0xb0c3, 0xb0b9, 0xb0c6, 0xb1d6, 0xb1e0, 0xb1db, 0xb1d7, + 0xb1dd, 0xb315, 0xb30c, 0xb30f, 0xb30e, 0xb2fe, 0xb304, 0xb30b, + 0xb302, 0xb2ff, 0xb308, 0xb310, 0xb317, 0xb313, 0xb306, 0xb309, + 0xb424, 0xb426, 0xb425, 0xb448, 0xb4b5, 0xb4d2, 0xb4d5, 0xb4c4, + 0xb4af, 0xb4ad, 0xb4c1, 0xb4c0, 0xb4cc, 0xb4cd, + /* 0x36 */ + 0xb4c3, 0xb4c8, 0xb4c5, 0xb4ba, 0xb4d0, 0xb4c2, 0xb4ce, 0x178d, + 0xb643, 0xb642, 0xb640, 0xb631, 0xb6cf, 0xb6ce, 0xb730, 0xb734, + 0xb732, 0xb743, 0xb73c, 0xb811, 0xb835, 0xb834, 0xb837, 0xb831, + 0xb8bf, 0xb8bc, 0xb8c2, 0xb8c9, 0xb983, 0xb98b, 0xb9a0, 0xb98d, + 0xb98c, 0xb99a, 0xb98a, 0xb991, 0xbbf1, 0xbc0f, 0xbc01, 0xbc07, + 0xbc0c, 0x18c0, 0xbbdc, 0xbbee, 0xbbf7, 0xbbf2, 0xbbf8, 0xbbeb, + 0x18ca, 0xbbe6, 0xbbed, 0xbbe9, 0xbc08, 0xbc00, 0xbbe5, 0xbbfc, + 0xbe61, 0xbe5e, 0xbe5f, 0x1925, 0xbe9b, 0xbf16, 0xbf15, 0xbf20, + 0xbf14, 0xbf1a, 0xbf17, 0xbf9c, 0x194a, 0xbff1, 0x1953, 0xbff0, + 0xc028, 0xc024, 0xc02a, 0xc02b, 0xc0d5, 0xc104, 0xc105, 0xc191, + 0xc192, 0xc2a6, 0x2c09, 0x2e22, 0x2e1a, 0x2e0e, 0x2e1b, 0x2e08, + 0x6fb3, 0xc31c, 0x309d, 0x3212, 0x321e, 0x32bb, + /* 0x37 */ + 0x32bf, 0x32bc, 0x3308, 0x3309, 0x3363, 0x33c8, 0x5828, 0x358e, + 0x358d, 0x3743, 0x374d, 0x376d, 0x3742, 0x3752, 0x3751, 0x3769, + 0x3750, 0x3756, 0x376c, 0x3744, 0x3745, 0x376b, 0x0205, 0x3768, + 0x3757, 0x392e, 0x3931, 0x392d, 0x3a8b, 0x3ab2, 0x3a8d, 0x3aa3, + 0x3aa4, 0x3a90, 0x3a89, 0x3a8e, 0x3a92, 0x3b7b, 0x3c90, 0x3c8f, + 0x3de9, 0x3dcd, 0x3dc5, 0x3dd0, 0x3dc9, 0x3dd1, 0x3dc7, 0x3dd2, + 0x3d5f, 0x3de1, 0x3dcc, 0x3dc6, 0x3de4, 0x3ea9, 0x3fd3, 0x3fda, + 0x3fd2, 0x3fdb, 0x404d, 0x404e, 0x411c, 0x41e8, 0x436c, 0x435f, + 0x4366, 0x4364, 0x4378, 0x4365, 0x436d, 0x4361, 0x437a, 0x4407, + 0x4566, 0x4568, 0x4562, 0x46d3, 0x46d4, 0x46d1, 0x46dc, 0x4773, + 0x4772, 0x482d, 0x482c, 0x482f, 0x4872, 0x48b4, 0x4989, 0x4bcd, + 0x4ba6, 0x4ba2, 0x4ba0, 0x4b46, 0x4ba1, 0x8657, + /* 0x38 */ + 0x4ba3, 0x4bb1, 0x4bdb, 0x4bf6, 0x4bdc, 0x4bd6, 0x4d13, 0x4f9c, + 0x4f97, 0x4fd8, 0x4fe4, 0x4fd4, 0x4fe5, 0x4fdb, 0x4fd0, 0x4fda, + 0x4fcc, 0x4fdc, 0x4fed, 0x4fd3, 0x4fd1, 0x4fce, 0x4fd9, 0x4fdd, + 0xc3c6, 0x50e6, 0x50e5, 0x50e9, 0x51ff, 0x51fe, 0x520e, 0x528c, + 0x52ca, 0x52cb, 0x531a, 0x54d7, 0x54cf, 0x54d0, 0x54c9, 0x54cc, + 0x54d3, 0x55a4, 0x55a3, 0x5781, 0x5826, 0x57f3, 0x5827, 0x57f2, + 0x57ff, 0x57f5, 0x57fc, 0x580e, 0x07f0, 0x57f6, 0x5800, 0x5823, + 0x5805, 0x5825, 0x5808, 0x5850, 0x5a25, 0x5a20, 0x5a23, 0x5a21, + 0x5aa1, 0x5b69, 0x5b6c, 0x5b68, 0x5b6b, 0x5bcc, 0x5bcd, 0x5d10, + 0x5d0d, 0x5d0a, 0x5d16, 0x5d14, 0x5d52, 0x6028, 0x602e, 0x602c, + 0x604d, 0x6049, 0x6031, 0x6030, 0x6033, 0x602d, 0x6036, 0x603e, + 0x602f, 0x6027, 0x6034, 0x604c, 0x62fe, 0x6312, + /* 0x39 */ + 0x631f, 0x6317, 0x62f5, 0x6315, 0x62f7, 0x0a02, 0x437d, 0x62fa, + 0x62f9, 0x634b, 0x649c, 0x649d, 0x0a23, 0x65f0, 0x65f6, 0x65ef, + 0x679d, 0x679a, 0x67a7, 0x67af, 0x67aa, 0x6964, 0x6986, 0x6975, + 0x6970, 0x6984, 0x696b, 0x6985, 0x696c, 0x6a17, 0x6a94, 0x6a93, + 0x6bd2, 0x6bd7, 0x6bd4, 0x6da6, 0x6da7, 0x6d9c, 0x6d8b, 0x6d8d, + 0x6d98, 0x6db9, 0x6d9b, 0x6d9d, 0x6d99, 0x6da8, 0x6d91, 0x6d87, + 0x6d9a, 0x6ea6, 0x6f1f, 0x6fa7, 0x6fb1, 0x6fb2, 0x6fb7, 0x70d0, + 0x70b3, 0x70b5, 0x70c4, 0x70c3, 0x70bc, 0x70b2, 0x70ba, 0x70bb, + 0x70c2, 0x70cd, 0x70be, 0x70b7, 0x718f, 0x7203, 0x7204, 0x7371, + 0x7377, 0x7374, 0x738b, 0x737a, 0xc451, 0x738c, 0x7373, 0x74ff, + 0x74fb, 0x74fd, 0x74f0, 0x74f3, 0x74fc, 0x74f2, 0x7692, 0x769e, + 0x76ae, 0x7696, 0x7814, 0x7812, 0x7813, 0x7816, + /* 0x3a */ + 0x780f, 0x78b6, 0x78bd, 0x7a8c, 0x7aae, 0x7aac, 0x7aab, 0x7a99, + 0x7a92, 0x7abb, 0x7a9e, 0x7a7e, 0x7aaf, 0x7abc, 0x7a98, 0x7d01, + 0x7d09, 0x7d06, 0xc467, 0x7d07, 0x7d08, 0x7ecf, 0x7f0e, 0x7f32, + 0x0f15, 0x7f12, 0x7f16, 0x7f17, 0x7f1b, 0x7f15, 0x7f31, 0x7f18, + 0x7f1a, 0x7f10, 0x7f0a, 0x7f09, 0x804f, 0xc473, 0x810f, 0x8110, + 0xc475, 0x8128, 0x8111, 0x8116, 0x8117, 0x8102, 0x81bb, 0x81ba, + 0x81c3, 0x81bc, 0x828a, 0x8284, 0x8286, 0x82e0, 0x8317, 0x8318, + 0x831e, 0x8315, 0x83d3, 0x83da, 0x83d9, 0x85e6, 0x85f4, 0x85e1, + 0x8669, 0x8640, 0x8658, 0x866c, 0x864d, 0x8721, 0x8799, 0x87f1, + 0x5f68, 0x8886, 0x8b5b, 0x8b5c, 0x8b77, 0x8b2c, 0xc4ad, 0x8b58, + 0x8b64, 0x8b61, 0x8b48, 0x8b97, 0x8b59, 0x8b29, 0x8b62, 0x8b2e, + 0x8b68, 0x8b90, 0x8b3a, 0x8b3d, 0x8b5e, 0x8b46, + /* 0x3b */ + 0x8b69, 0x8b65, 0x8b3e, 0x8b49, 0x8b56, 0x8be1, 0x8b78, 0x8b79, + 0x8b66, 0x8b4a, 0x8b35, 0x8b7a, 0x8b92, 0x8b60, 0x8b36, 0x8b51, + 0x8b42, 0x115d, 0x8b3f, 0x8b7b, 0x8b5d, 0x8b94, 0x8b6a, 0xc4b5, + 0x8df2, 0x8fbb, 0x901b, 0x901a, 0x9033, 0x9017, 0x900a, 0x9015, + 0x9012, 0x9001, 0x902d, 0x8ffd, 0x9023, 0x9005, 0x9011, 0x9000, + 0x901c, 0x9035, 0x902e, 0x9036, 0x34bf, 0x902f, 0x900c, 0x9009, + 0x9031, 0x8ffc, 0x900f, 0x9018, 0x9002, 0x9200, 0x931f, 0x9337, + 0x125a, 0x9338, 0x932b, 0x932e, 0x9321, 0x9330, 0x9329, 0x9331, + 0xc4c9, 0x9301, 0x932c, 0x9322, 0x93ff, 0x9477, 0x9467, 0x947f, + 0x947d, 0x947b, 0x947e, 0x951e, 0x951c, 0x9521, 0x9526, 0x9527, + 0x9529, 0x952c, 0x951d, 0x952b, 0x96bf, 0x96a4, 0x96aa, 0x96ae, + 0x969f, 0x96d0, 0x96b1, 0x96ad, 0x969b, 0x96b2, + /* 0x3c */ + 0x96a9, 0x96b3, 0x96b4, 0x96ba, 0x96a5, 0x96b7, 0x96ac, 0x96cb, + 0x96cf, 0x97c6, 0x9801, 0x97ff, 0x97fd, 0x9877, 0x9878, 0x9876, + 0x98f7, 0x99cc, 0x1385, 0x99d4, 0x99d7, 0x99d5, 0x99d6, 0x99d3, + 0x9b5d, 0x9b55, 0x9ce0, 0x9d48, 0x9cee, 0x9cdb, 0x9ce7, 0x9cd6, + 0x9ce5, 0x9ce1, 0x9cdd, 0x9ce2, 0x9e70, 0x9e66, 0x9e6f, 0x9e6e, + 0x9f81, 0x9f69, 0x9f6e, 0x9f6d, 0x9f6c, 0x9f84, 0x9f85, 0x9f71, + 0x9f73, 0x9f6a, 0x9f6f, 0x9f7b, 0xa16a, 0xa17c, 0xa17d, 0xa181, + 0xa1fa, 0xa205, 0xa1eb, 0xa1fb, 0xa1e9, 0xa1ef, 0xa1fc, 0xa1e7, + 0xc4e1, 0xa1ee, 0xa1fd, 0xa332, 0xa3a7, 0xa3b5, 0xa3b1, 0xa3b9, + 0xa3a8, 0xa3b3, 0xc4e6, 0xa48a, 0xa491, 0xa48d, 0xa499, 0x150b, + 0xa49a, 0xa49b, 0xa492, 0xa48f, 0xa4ab, 0x6bdb, 0x1539, 0xa675, + 0xa631, 0xa638, 0x1537, 0xa635, 0xa669, 0xa63b, + /* 0x3d */ + 0xa63d, 0xa66c, 0xa679, 0xa63c, 0xa63e, 0xa897, 0xa8a5, 0xa8a2, + 0xa89d, 0xa8a1, 0xa968, 0xa96f, 0xa96d, 0xa972, 0xa975, 0xa977, + 0xa979, 0xaab5, 0xaaea, 0xaaab, 0xab43, 0xab41, 0xab42, 0xac09, + 0xac08, 0xac06, 0xac01, 0xac03, 0xac00, 0xac04, 0xac0a, 0xac0e, + 0xac0d, 0xac07, 0xac0f, 0xac14, 0xac02, 0xac15, 0xac0c, 0xac10, + 0xac05, 0xacfd, 0xacff, 0xad04, 0xad00, 0xad09, 0xae2b, 0xc4f7, + 0xae31, 0xaedb, 0xaec5, 0xaed3, 0xaece, 0x166b, 0xaec9, 0xaebf, + 0xaecb, 0xaec0, 0xaed0, 0xaed4, 0xafc1, 0xafb9, 0xafbb, 0xafc3, + 0xafc9, 0xb007, 0xb02d, 0xb0f8, 0xb0e1, 0xb0fa, 0xb0ef, 0xb0fd, + 0x16cd, 0xb0eb, 0xb0f1, 0xb0ed, 0xb0fe, 0xb1f8, 0xb203, 0xb1ee, + 0xb1e8, 0xb201, 0xb2ec, 0xb322, 0xb314, 0xb334, 0xb32f, 0xb339, + 0xb341, 0xb33c, 0xb349, 0xb358, 0xb33a, 0xb342, + /* 0x3e */ + 0xb33f, 0xb422, 0xb423, 0xb44a, 0xb4dc, 0xb4d9, 0xb4db, 0xb4e2, + 0xc507, 0xb4df, 0xb4e0, 0xb4d7, 0xb64f, 0xb646, 0xb653, 0xb655, + 0xb64e, 0xb64a, 0xb64c, 0xb663, 0xb751, 0xb753, 0xb758, 0xb74d, + 0xb75a, 0xb749, 0xb75d, 0xb812, 0xb83c, 0xb8d1, 0xb8df, 0xb8d6, + 0xb8d8, 0xb8e0, 0xb8d9, 0xb9b1, 0xb9ac, 0xb9aa, 0xb9ee, 0xb9bd, + 0x184d, 0xb9c3, 0xb9a8, 0xb9ae, 0xb9ab, 0xbc1d, 0xbc27, 0xbc38, + 0xbc12, 0xbc48, 0xbc2b, 0xbc16, 0xbc19, 0xbc3d, 0xbc23, 0xbc2a, + 0xbe64, 0xbead, 0xbeac, 0xc514, 0xbeb1, 0xbeaf, 0xbf2c, 0xbf24, + 0xbf25, 0xbf28, 0xbff9, 0xbff7, 0xbffd, 0xbffe, 0xc039, 0xc033, + 0xc0d7, 0xc0d8, 0xc0e4, 0x3aa1, 0xc10e, 0xc13b, 0xc144, 0xc142, + 0xc194, 0xc193, 0xc1d5, 0xc2a7, 0x2e31, 0x2e23, 0x2e28, 0x2e27, + 0x2ec6, 0x2fa3, 0x3021, 0x321b, 0x0110, 0x32c1, + /* 0x3f */ + 0x32c3, 0x332a, 0x3369, 0x3427, 0x37b6, 0x37a7, 0x37a4, 0x37a6, + 0x3790, 0x379e, 0x3794, 0x37a8, 0x37a5, 0x37a2, 0x3791, 0x027b, + 0x3abc, 0x3abd, 0x3ab4, 0x3ab0, 0x3ae4, 0x3b45, 0x3b4b, 0x3b7e, + 0x3b7f, 0x3b7d, 0x3bc3, 0x3dfc, 0x3df7, 0x3df0, 0x3ded, 0x3df1, + 0x3df8, 0x3fe9, 0x41eb, 0x041d, 0x4390, 0x438d, 0x4386, 0x4391, + 0x438a, 0x4408, 0x4450, 0x46ea, 0x46e6, 0x46e2, 0x46e7, 0x46ed, + 0x46e1, 0x4834, 0x4876, 0x4875, 0x4873, 0x48b5, 0x4990, 0x4992, + 0x4be1, 0x4bdf, 0x4bd5, 0x4bf2, 0x4bfe, 0x4c13, 0x4c2e, 0x4d19, + 0x5008, 0x1df5, 0x5005, 0x5009, 0x5006, 0x5003, 0x4ffd, 0x4ffc, + 0x5002, 0x5042, 0x521a, 0x5211, 0x5215, 0x5216, 0x52cc, 0x52cf, + 0x52d0, 0x5322, 0x531e, 0x5321, 0x54e5, 0x0727, 0x5554, 0x54ef, + 0x5553, 0x5551, 0x55ad, 0x5867, 0x5868, 0x58a4, + /* 0x40 */ + 0x5877, 0x5889, 0x5844, 0x588b, 0x5879, 0x585b, 0x5843, 0x5857, + 0x584a, 0x587c, 0x5846, 0x587b, 0x5856, 0x5aa8, 0x5b76, 0x5b72, + 0x5bd6, 0x5bd8, 0x5bd1, 0x5d22, 0x5d20, 0x5d23, 0x5d1e, 0x5d6e, + 0x60a3, 0x6077, 0x60a6, 0x606d, 0x60a2, 0x607c, 0x6084, 0x6068, + 0x6074, 0x6086, 0x60a5, 0x607b, 0x607a, 0x6069, 0x6072, 0x6076, + 0x634a, 0x6337, 0x632a, 0x632d, 0x6346, 0x6328, 0x6326, 0x6342, + 0x632c, 0x6338, 0x632b, 0x6333, 0x6345, 0x6439, 0x65f9, 0x65fa, + 0x67b8, 0x67b7, 0x67bb, 0x67b9, 0x67b4, 0x696f, 0x6987, 0x698f, + 0x69a2, 0x69a3, 0xc431, 0x6a9b, 0x6a9d, 0x6ace, 0x0bcf, 0x6dbd, + 0x6dbf, 0x6d92, 0x0bcd, 0x6def, 0x6dc9, 0x6ea4, 0x6ea8, 0x6eaa, + 0x6f28, 0x6f24, 0x6f25, 0x6f26, 0x6fa9, 0x6fba, 0x6fbe, 0x6fbc, + 0x6fc0, 0x70f0, 0x70df, 0x70e0, 0x70ed, 0x70db, + /* 0x41 */ + 0x70fb, 0x70b9, 0x70da, 0x70eb, 0x70ec, 0x739a, 0x739f, 0x739b, + 0x7397, 0x73a1, 0x750f, 0x7505, 0x7548, 0x0d82, 0x76bc, 0x76ba, + 0x78bf, 0x7b01, 0x7ae8, 0x7aef, 0x7ae4, 0x7ae6, 0x7b02, 0x7aeb, + 0x7ae0, 0x7aed, 0x7ad9, 0xc464, 0x7b14, 0x7aee, 0x0e52, 0x7b13, + 0x7af9, 0x7af8, 0x7d25, 0xc469, 0x7d19, 0x7d20, 0x7d43, 0x7d3f, + 0x7f45, 0x7f4c, 0x7f49, 0x7f4f, 0x7f41, 0x7f3e, 0x7f4d, 0x7f52, + 0x7f4a, 0x7f4e, 0x7f73, 0x7f42, 0x7f51, 0x7f55, 0x7f50, 0x7f6c, + 0x2afd, 0x7f6a, 0x7f53, 0x7f68, 0x8055, 0x8056, 0x811c, 0x811d, + 0x2280, 0x811e, 0x8123, 0x811f, 0x81e1, 0x81cd, 0x81cb, 0x81cc, + 0x81c8, 0x81c9, 0x829b, 0x8294, 0x8292, 0x8296, 0x8293, 0x8295, + 0x828f, 0x831d, 0x8322, 0x8321, 0x83e9, 0x83ef, 0x83e0, 0x83e6, + 0x83e4, 0x8629, 0x862c, 0x8676, 0x8683, 0x8678, + /* 0x42 */ + 0x863c, 0x6343, 0x867a, 0x1051, 0x86f2, 0x879e, 0x879b, 0x879a, + 0x87f6, 0x87f5, 0x88a5, 0x8893, 0x88a4, 0x8a82, 0x8ac7, 0x8bb7, + 0x8c1d, 0x8be2, 0x8bd7, 0x8be3, 0x8be4, 0x8bbc, 0x8bd3, 0x115a, + 0x8b5a, 0x8bd2, 0x8b2d, 0xc4af, 0x8bc4, 0x8bd0, 0x8be5, 0x8c05, + 0x8c07, 0x8be6, 0x8c1b, 0x8be7, 0x8bd8, 0x8bbe, 0x8c17, 0x8bb4, + 0x8bd9, 0x8be8, 0x8bad, 0x8baf, 0x8bc8, 0x8be9, 0x8bea, 0x8dfe, + 0x8dfb, 0x8e00, 0x9072, 0x9070, 0x9046, 0x9059, 0x905e, 0x9048, + 0x904f, 0x9071, 0x9060, 0x905f, 0x906e, 0x9073, 0xc4c0, 0xc4bf, + 0x9047, 0x906d, 0x906f, 0x9081, 0x906c, 0x9078, 0x9083, 0x9049, + 0x9068, 0x9074, 0x9063, 0x906a, 0x8685, 0x9065, 0x9062, 0x90c8, + 0x91d0, 0x91d4, 0x91d1, 0x9203, 0x9342, 0x9363, 0x9356, 0x935b, + 0x9355, 0x9350, 0x932d, 0x9344, 0x9348, 0x9345, + /* 0x43 */ + 0x9382, 0x1265, 0x9362, 0x9485, 0x948d, 0x9536, 0x952f, 0x9531, + 0x9537, 0x96a7, 0x96d9, 0x96f0, 0x96f2, 0x96fd, 0x96e8, 0x96eb, + 0x96ee, 0x96e0, 0x96e9, 0x96ed, 0x96d6, 0x96f8, 0x96d4, 0x96df, + 0x96e7, 0x96d8, 0x96e3, 0x96ef, 0x970f, 0x97ca, 0x3b46, 0x9805, + 0x980c, 0x980d, 0x987f, 0x9880, 0x9881, 0x9901, 0x9903, 0x99f2, + 0x99e2, 0x99e3, 0x99de, 0x99e9, 0x99e8, 0x99e0, 0x9a01, 0x99f5, + 0x99e4, 0x2501, 0x9a77, 0x9b74, 0x9b6f, 0x9b62, 0x9b61, 0x9b6d, + 0x9b73, 0x9b6a, 0x9b69, 0x9d12, 0x9d2d, 0x9d14, 0x9d0f, 0x9d29, + 0x9d16, 0x9d03, 0x9d46, 0x9d5c, 0x9d11, 0x9d06, 0x9cdc, 0x9d2b, + 0x9d2a, 0x9d2c, 0x9d27, 0x9e7a, 0x9f9c, 0x9f99, 0x9f95, 0x9f8b, + 0x9f98, 0x9f96, 0xa032, 0xa1a4, 0xa1aa, 0xa21b, 0x14af, 0xa20d, + 0xa21c, 0xa20a, 0xa220, 0xa208, 0xa21a, 0xa213, + /* 0x44 */ + 0xa211, 0xa35d, 0xa35f, 0xa35e, 0xa360, 0xa3bb, 0xa3bc, 0xa3c1, + 0xa3c0, 0xa3c8, 0xa3ce, 0xa4a7, 0xa4b2, 0xa4b6, 0xa4a5, 0xa4ba, + 0xa4b5, 0xa4ad, 0xa4a4, 0xa4d3, 0xa4b0, 0xa4b1, 0xa51d, 0xa68d, + 0x1541, 0xa691, 0xa6b6, 0xa6b7, 0xa6bd, 0xa6bc, 0xa696, 0xa694, + 0xa6a0, 0xa8a8, 0xa8a6, 0xa984, 0xa996, 0xa988, 0xa99a, 0xaad1, + 0xaacf, 0xab50, 0xab51, 0xab4e, 0xab80, 0xab81, 0xac1b, 0xac17, + 0xac20, 0xac19, 0xac1a, 0xac21, 0xac1e, 0xac18, 0xac1d, 0x1629, + 0xad2d, 0xad24, 0xad27, 0xad2e, 0xad25, 0xad1c, 0xad19, 0x162a, + 0xad23, 0xad1f, 0xad1a, 0xad2b, 0xad1e, 0xade0, 0xae33, 0xaee6, + 0xaefc, 0xaee5, 0xaef8, 0xaef6, 0xaeea, 0xaef2, 0xaeed, 0xaeeb, + 0xaef0, 0xaef1, 0xafc6, 0xafc8, 0xafce, 0xafc5, 0x1696, 0xafcb, + 0xb113, 0xb114, 0xb107, 0xb10c, 0xb21a, 0x1712, + /* 0x45 */ + 0xb217, 0xb206, 0xb216, 0xb207, 0xb210, 0xb209, 0xb219, 0xb215, + 0xb36e, 0xb33b, 0xb33e, 0xb36c, 0xb365, 0xb364, 0xb359, 0xb37c, + 0xb370, 0xb379, 0xb42c, 0xb452, 0xb451, 0xb44c, 0xb500, 0xb510, + 0xb513, 0xb4ff, 0xb4fe, 0xb4ed, 0xb65a, 0xb658, 0xb65c, 0xb6da, + 0xb778, 0xb75e, 0xb767, 0xb764, 0xb813, 0xb823, 0xb841, 0xb83f, + 0xb840, 0xb8ed, 0xb8e3, 0xb8ea, 0xb8f0, 0xb8e6, 0xb8e9, 0xb8f1, + 0xb8ee, 0xb9d4, 0xb9d1, 0xb9dc, 0xb9ec, 0xbc69, 0xbc6d, 0xbc57, + 0xbc66, 0xbcf9, 0xbc4a, 0xbc60, 0xbc56, 0xbc59, 0xbc4c, 0xbc6a, + 0xbc62, 0xbc63, 0xbc70, 0xbc5f, 0xc50d, 0xbc64, 0xbc5d, 0xbc68, + 0xbc9f, 0xbeba, 0xbeb8, 0xbebc, 0xbeb9, 0xbeb4, 0xbf3b, 0xbf2d, + 0xbf38, 0xbf2f, 0xbf32, 0xc041, 0xc0cb, 0xc0de, 0xc0dd, 0xc0da, + 0xc0dc, 0xc110, 0xc14f, 0xc149, 0xc198, 0xc196, + /* 0x46 */ + 0xc197, 0xc1c7, 0x2c9c, 0xc1da, 0xc1d8, 0xc2a8, 0x2c0a, 0x2c9d, + 0x2ecb, 0x2f38, 0x2f39, 0x2fa6, 0x3223, 0x3222, 0x3221, 0x33ce, + 0x3592, 0x3591, 0x37ec, 0x37e0, 0x37ed, 0x3808, 0x37e5, 0x37ee, + 0x37e4, 0x37eb, 0x37e3, 0x37ea, 0x380a, 0xc359, 0x3ad1, 0x3ae3, + 0x3ad4, 0x3ad0, 0x3ad9, 0x027e, 0x1be1, 0x3ada, 0x3ad3, 0x3b4c, + 0x3b4d, 0x3b7c, 0x3b80, 0x3bcc, 0x3dff, 0x3e08, 0xc108, 0x3e01, + 0xc36b, 0x3e00, 0x3fed, 0x3ff3, 0x3fee, 0x3ff1, 0x3ff0, 0x3fde, + 0x4051, 0x4382, 0x43a9, 0x4398, 0x439d, 0x439a, 0x439e, 0x439f, + 0x43a6, 0x43a7, 0x4409, 0x442f, 0x4571, 0x456d, 0x4572, 0x46ef, + 0x46f0, 0x483b, 0x4839, 0x483c, 0x4838, 0x6afd, 0x483a, 0x4878, + 0x4879, 0x4877, 0x4998, 0x499c, 0x4999, 0x499a, 0x4c11, 0x4c0a, + 0x4bfd, 0x4c0f, 0x4c19, 0x4c03, 0x4c15, 0x4c0c, + /* 0x47 */ + 0x4c09, 0x4c12, 0x4c34, 0x4c2a, 0x4c08, 0x4c2d, 0x4c28, 0xc3b1, + 0x4c2c, 0x4c26, 0x4c33, 0x05a7, 0x4d1a, 0x4d1e, 0x5007, 0x502c, + 0x5032, 0x5028, 0x5031, 0x5029, 0x5030, 0x502a, 0x5044, 0x502e, + 0x52d1, 0x5324, 0x54f7, 0x54f4, 0x54f3, 0x54f8, 0x58b5, 0x5896, + 0x5898, 0x5895, 0x5891, 0x58b2, 0x589e, 0x5859, 0x58a3, 0x589a, + 0x589b, 0x0f20, 0x7f83, 0x5bda, 0x5bdf, 0x5c16, 0x5d1f, 0x5d2d, + 0x5d2e, 0x5d2b, 0x60b8, 0x60bb, 0x60bf, 0x60ba, 0x60d5, 0x60e3, + 0x60c1, 0x60be, 0x60bd, 0x60b4, 0x60c2, 0x60a1, 0x6087, 0x60d7, + 0x60ca, 0x60b5, 0x60da, 0x60d9, 0x60b3, 0x60d8, 0x6367, 0x6371, + 0x6362, 0x635c, 0x6368, 0x6352, 0x6356, 0x3809, 0x2e42, 0x64a0, + 0x6600, 0x65fe, 0x65ff, 0x67cb, 0xc428, 0x67ca, 0x67a9, 0x67c8, + 0x69b4, 0x69ac, 0x69aa, 0x69a9, 0x6b0e, 0x6be9, + /* 0x48 */ + 0x6bed, 0x6bf2, 0x6beb, 0x6bee, 0x6de8, 0x6ddb, 0x6dd7, 0x6de3, + 0x6de5, 0x6dee, 0x6dd5, 0x6eb3, 0x6f2d, 0x6fc1, 0x6fc3, 0x710c, + 0x710e, 0x7107, 0x7117, 0x7109, 0x7116, 0x719a, 0x719c, 0x73b4, + 0x73b7, 0x73b3, 0x3b4e, 0x7513, 0x7514, 0x76e6, 0x76dc, 0x76e8, + 0x76e5, 0x782e, 0x782c, 0x782b, 0x78cd, 0x7b3d, 0x7b32, 0x7b2d, + 0x7b45, 0x7b3e, 0x7b50, 0x7b25, 0x7b53, 0x7b23, 0x7d37, 0x7d38, + 0x7d47, 0x7d3d, 0x7d3e, 0x7d49, 0x7d4a, 0x7d1d, 0x21e9, 0x7fa5, + 0x7f8c, 0x7f8d, 0x7f89, 0x7f96, 0x7f85, 0x7f8f, 0x7f77, 0x7f8e, + 0x7f82, 0x7f8a, 0x7f88, 0x7f7b, 0x7f97, 0x7f7d, 0x7f79, 0x8059, + 0x8124, 0x812d, 0x812e, 0x812b, 0xc476, 0x81da, 0x81d8, 0x81d6, + 0x8287, 0x82a0, 0x8328, 0x8325, 0x831f, 0x83f3, 0x83f7, 0x83f6, + 0x862b, 0x865b, 0x8648, 0x23cb, 0x865c, 0x866d, + /* 0x49 */ + 0x869d, 0x8699, 0x868c, 0x8691, 0x869b, 0x869a, 0x869c, 0x8695, + 0x868d, 0x8696, 0x86a5, 0x872a, 0x87a1, 0x87a4, 0x87ad, 0x88a9, + 0x88ae, 0x88b0, 0x8c0d, 0x8b63, 0x8b71, 0x8c51, 0x8c54, 0x8c2a, + 0x8c44, 0x8c55, 0x8c99, 0x8c39, 0x8c3f, 0x8c3e, 0x8c4f, 0x8c4d, + 0x8c35, 0x8c40, 0x8c31, 0x8bd5, 0x8c2b, 0x8c33, 0x8c41, 0x8c56, + 0x8c4c, 0x8c46, 0x8c3c, 0x8c45, 0x8c43, 0x8c3d, 0x8c70, 0x8c57, + 0x8c38, 0x8c58, 0x1165, 0x8c37, 0x8e07, 0x8e06, 0x8e09, 0x90ab, + 0x9090, 0x9093, 0x90bc, 0x90a9, 0x909e, 0x90bf, 0x90aa, 0x9091, + 0x90a4, 0x909a, 0x90a7, 0x90a1, 0x909c, 0x90a2, 0x909b, 0x909f, + 0x9094, 0x908f, 0x8ef0, 0x9092, 0x9095, 0x90a5, 0x90a6, 0x9204, + 0x939c, 0x9379, 0x937a, 0x937e, 0x937b, 0x9371, 0x9381, 0x937f, + 0x937c, 0x937d, 0x9375, 0x9376, 0x948e, 0x948f, + /* 0x4a */ + 0x953e, 0x953f, 0x9540, 0x9541, 0x1304, 0x970d, 0x9717, 0x9710, + 0x970e, 0x96ea, 0x971d, 0x9703, 0x9722, 0x9704, 0x9700, 0x9720, + 0x9721, 0x9723, 0x9713, 0x9709, 0x9711, 0x97cb, 0x97ce, 0x97d0, + 0x97cc, 0x97d4, 0x3adb, 0x9809, 0x980b, 0x9885, 0x9906, 0x990d, + 0x1364, 0x9914, 0x990f, 0x9a09, 0x9a14, 0x9a0b, 0x99fc, 0x9a04, + 0x9a0a, 0x9a00, 0x99fd, 0x9a07, 0x9a06, 0x9a11, 0x9a79, 0x9a78, + 0x9b88, 0x9b80, 0x9b8b, 0x9d59, 0x9d61, 0x9d75, 0x1423, 0x9d55, + 0x9d5b, 0x9d5f, 0x9d52, 0x9d62, 0x9d72, 0x9d5d, 0x9d68, 0x9d71, + 0x9d65, 0x9d66, 0x9d67, 0x9d76, 0x9d4c, 0x9d60, 0x9d74, 0x9d50, + 0x9e8a, 0x9e81, 0x9e86, 0x9e7f, 0x9e80, 0x9fa5, 0x9fa7, 0x9fa8, + 0x9fa6, 0x9faf, 0x7f95, 0x9fb1, 0xa035, 0xa039, 0xa1c3, 0xa230, + 0xa22a, 0xa22b, 0xa22d, 0xa22e, 0xa22c, 0xa223, + /* 0x4b */ + 0xa221, 0xa222, 0xa36c, 0xa381, 0xa38f, 0xa380, 0xa3d0, 0xa3cd, + 0xa3d5, 0xa3d4, 0xa4d1, 0xa4be, 0xa4cb, 0xa4ce, 0xa4bd, 0xa4d0, + 0xa704, 0xa6d5, 0xa6d0, 0xa6d3, 0xa6fb, 0xa6d8, 0xa6d1, 0xa6fd, + 0xa6d9, 0xa6d6, 0xa6e6, 0xa6f9, 0xa9a1, 0xa99d, 0xa99e, 0x28d9, + 0xaaff, 0xab5f, 0xab57, 0xab60, 0xab59, 0xac2c, 0xac25, 0xac27, + 0xac30, 0xac24, 0xac26, 0xac2d, 0xac2e, 0xac29, 0xac31, 0xad45, + 0xad47, 0xad52, 0xad4a, 0xad50, 0xad46, 0xad4f, 0xad4e, 0xad53, + 0xaf21, 0xaf09, 0xaf1a, 0xaf1b, 0x7115, 0xaf10, 0xc4f9, 0xaf14, + 0xaf0e, 0xaf12, 0xaf0b, 0xafcf, 0xafd2, 0xafd0, 0xafd4, 0xafd3, + 0xafd1, 0x3518, 0xc4fb, 0xb009, 0xb11c, 0xb127, 0xb125, 0xb11b, + 0xb129, 0xb11f, 0xb130, 0xb124, 0xb128, 0xb119, 0xb12f, 0xb224, + 0xb221, 0xb225, 0xb226, 0xb227, 0xb276, 0xb366, + /* 0x4c */ + 0xb375, 0xb369, 0xb37e, 0xb38f, 0xb374, 0x8e10, 0xb3ad, 0xb42b, + 0xb42a, 0xb458, 0xb522, 0xb51d, 0xb52b, 0xb52c, 0xb52d, 0xb533, + 0xb51b, 0xb527, 0xb52a, 0xb528, 0xb53b, 0xb67e, 0xb671, 0xb679, + 0xb678, 0xb670, 0xb66d, 0xb67d, 0xb675, 0xb676, 0xb6de, 0xb766, + 0xb783, 0xb787, 0xb77b, 0xb789, 0xb786, 0xb782, 0xb77c, 0xb781, + 0xb843, 0xb845, 0xb8f7, 0xb8f9, 0xb8fa, 0xba05, 0xb9fe, 0xba0f, + 0xb9ff, 0xb9fa, 0xba09, 0xba20, 0xba0c, 0xba3c, 0xba22, 0xb9f8, + 0xba0a, 0xba08, 0xb9f7, 0xbc8e, 0xbc77, 0xbc8b, 0xbcb4, 0xbc8a, + 0xbc9a, 0xbc79, 0xbc83, 0xbc7f, 0xbca1, 0xbc8f, 0xbca3, 0xbc81, + 0xbc94, 0xbc7e, 0xbc82, 0xbc90, 0xbca5, 0xbcad, 0xbc9d, 0xbe67, + 0xbe69, 0xbecb, 0xbec8, 0xbed1, 0xbf40, 0xbf4b, 0xbf49, 0xbf46, + 0xbf3e, 0xbf43, 0xbf3f, 0xbfa5, 0xbfa7, 0xc04e, + /* 0x4d */ + 0xc04d, 0x499b, 0xc0e5, 0xc0e1, 0xc0e2, 0xc116, 0xc114, 0xc51b, + 0xc159, 0xc151, 0xc15f, 0xc14a, 0xc157, 0xc158, 0xc1ca, 0xc1db, + 0xc1de, 0xc1e0, 0xc1e1, 0xc1df, 0xc1e2, 0xc1e3, 0xc292, 0xc2bf, + 0xc2be, 0x2c0b, 0x2e52, 0x2e4e, 0x00b9, 0xc313, 0x2fa7, 0x3226, + 0x3227, 0x32c6, 0x330b, 0x336a, 0x3378, 0x381a, 0x3816, 0x3819, + 0x3817, 0x381b, 0x3818, 0x3820, 0x3937, 0x3aec, 0x3b81, 0xae3d, + 0x3e0f, 0x3ead, 0x3ffb, 0x4052, 0x43af, 0x43b7, 0x43b2, 0x4578, + 0x45ac, 0x4700, 0x46fe, 0x4702, 0x46fd, 0x4703, 0x4840, 0x4843, + 0x4842, 0x48b7, 0x49a2, 0x4c00, 0x4c35, 0x4c41, 0x4c05, 0x2e53, + 0x4c50, 0x4c4e, 0x4c53, 0x5053, 0x5050, 0x5057, 0x505f, 0x5055, + 0x50ea, 0x5226, 0xb430, 0x522a, 0x5228, 0x522c, 0x522d, 0x52d4, + 0x5507, 0x5558, 0x5559, 0x58c5, 0x58cd, 0x58c7, + /* 0x4e */ + 0x58e8, 0x084b, 0x5a32, 0xc297, 0x5bde, 0x5d32, 0x34c8, 0xc415, + 0x60f1, 0x60f0, 0x60ec, 0x6109, 0x60f9, 0x60f5, 0x60fe, 0x6374, + 0x6381, 0x637c, 0x6375, 0x6389, 0x6382, 0x6397, 0x6386, 0x637d, + 0x6393, 0x639c, 0x6376, 0x6380, 0x6445, 0x30a1, 0x6603, 0x67c9, + 0x67cd, 0x67d0, 0x69ad, 0x69c5, 0x6aa2, 0x6bec, 0x6bf6, 0x6bf3, + 0x6df3, 0x6dfa, 0x6df9, 0x6df5, 0x6df4, 0x6df8, 0x6eb6, 0x6eb4, + 0x6f32, 0x6fcd, 0x6fc8, 0x6fce, 0x6fca, 0x712a, 0x7121, 0x711d, + 0x73bd, 0x73be, 0x73c2, 0x0cf1, 0x73c9, 0x751f, 0x76f1, 0x76ed, + 0x76f2, 0x76e0, 0x76f7, 0x7830, 0x7837, 0x7831, 0x7836, 0x78c8, + 0x7b6d, 0x7b69, 0x7b7d, 0x7b61, 0x7b70, 0x7b71, 0x7b73, 0x7b76, + 0x7b75, 0x7b78, 0x7b79, 0x7b64, 0x7b6e, 0x7d51, 0x7d4f, 0x7d22, + 0x7faf, 0x7faa, 0x7fa3, 0x7f9d, 0x7f9c, 0x7fa1, + /* 0x4f */ + 0x7fb6, 0x7fac, 0x7fa2, 0x7fa7, 0x7fb0, 0x7fa9, 0x7fc3, 0x8131, + 0x8132, 0x8133, 0x8134, 0x8137, 0x813c, 0x81d9, 0x81dd, 0x81de, + 0x81df, 0x81e0, 0x82a5, 0x82aa, 0x82a2, 0x82a3, 0x8404, 0x8403, + 0x83fe, 0x8428, 0x86af, 0x86ad, 0x86a6, 0x87ac, 0x87a5, 0x87b0, + 0x87b1, 0x8801, 0x88b2, 0x88d2, 0x88f1, 0x8bd1, 0x8c47, 0x8cc9, + 0x8ca7, 0x8cc8, 0x8c95, 0x8c8e, 0x8c91, 0x8c7d, 0x8cee, 0x8c8d, + 0x8c8c, 0x8cb0, 0x8c96, 0x8c42, 0x8c7c, 0x8cb1, 0x8cb2, 0x8c84, + 0x8c9d, 0x8ca1, 0x8c98, 0x8cb3, 0x8c22, 0x8c7b, 0x8c8a, 0x8cce, + 0x8c80, 0x8c97, 0x8cb4, 0x8cb5, 0x8c9a, 0x8c9f, 0x8c93, 0x8e12, + 0x8e0b, 0x8e0e, 0x90a3, 0x90cc, 0x90dc, 0x90e1, 0x90de, 0x90d2, + 0x90db, 0x90d9, 0x90d7, 0x90d4, 0x90c9, 0x90eb, 0x90da, 0x90d1, + 0x9104, 0x90ca, 0x90e2, 0x91d7, 0x938c, 0x9399, + /* 0x50 */ + 0x93a2, 0x9396, 0x9394, 0x939f, 0x1267, 0x938e, 0x9403, 0x9494, + 0x9493, 0x9544, 0x972f, 0x9735, 0x972b, 0x9732, 0x972d, 0x9736, + 0x1314, 0x9731, 0x9712, 0x9733, 0x971f, 0x9734, 0x9740, 0x973f, + 0x9741, 0x97d3, 0x9889, 0x9918, 0x9910, 0x9a1a, 0x9a25, 0x9a1e, + 0x9b92, 0x9b95, 0x9b93, 0x9d84, 0x9d9a, 0x9d89, 0x9d8d, 0x9d88, + 0x9d91, 0x9d9b, 0x9d9c, 0xb148, 0x9e8e, 0x9e92, 0x9fc5, 0x9fc1, + 0x9fb8, 0x9fbe, 0x9fb5, 0x9fc7, 0xa03c, 0x1489, 0xa1ec, 0xa23f, + 0xa239, 0xa237, 0xa3a1, 0xa394, 0xa3a0, 0xa3de, 0xa3db, 0xa3df, + 0xa3dc, 0xa4d6, 0xa4dc, 0xa4dd, 0xa4e0, 0xa4e3, 0xa4e1, 0xa718, + 0xa719, 0xa753, 0xc4ec, 0xa744, 0xa70e, 0xa70f, 0xa747, 0xa717, + 0xa71d, 0xa711, 0xa8b4, 0xa8b6, 0xa9b7, 0xa9be, 0xa9c2, 0xa9b4, + 0xab31, 0xab15, 0xab83, 0xac3b, 0xac36, 0xac42, + /* 0x51 */ + 0xac50, 0xac40, 0xac34, 0xac38, 0xac3d, 0xac3e, 0xac35, 0xac3a, + 0xac46, 0xac37, 0xac39, 0xac45, 0xad77, 0xad5d, 0xad6a, 0xad76, + 0xad6b, 0xad6c, 0xad65, 0xad64, 0xad71, 0xad5f, 0xad72, 0xadfe, + 0xadff, 0xae3e, 0xaf2b, 0xaf36, 0xaf2d, 0xaf39, 0xaf3f, 0xaf3b, + 0xaf33, 0xaf42, 0xaf3a, 0xafd5, 0xafd8, 0xafd9, 0xb00d, 0xb00a, + 0xb039, 0xb03a, 0xb13d, 0xb145, 0xb13a, 0xb137, 0xb13e, 0xb142, + 0xb387, 0xb38c, 0xb382, 0xb36b, 0xb3a0, 0xb39a, 0xb390, 0xb38e, + 0xb3a1, 0xb3bd, 0xb3b2, 0xb3b5, 0xb3b7, 0xb3aa, 0xb3a2, 0xb3a5, + 0xb3ae, 0xb3ab, 0xb3bc, 0xb432, 0xb45a, 0xb564, 0xb55c, 0xb54d, + 0xb53f, 0xb53e, 0xb552, 0xb558, 0xb557, 0xb55e, 0xb553, 0xb554, + 0xb556, 0xab65, 0xb684, 0xb685, 0xb686, 0xb797, 0xb7a1, 0xb7a2, + 0x180b, 0xc50a, 0xb7a3, 0xb7a6, 0x1817, 0xb815, + /* 0x52 */ + 0xb824, 0xb84a, 0xb849, 0xb848, 0xb84b, 0xb90e, 0xb562, 0xb90b, + 0xb90a, 0xb908, 0xb906, 0xba43, 0xba47, 0xba3f, 0xba46, 0xba50, + 0x186d, 0xba4b, 0x1870, 0xba52, 0xbcd7, 0xbcbf, 0xbcd8, 0xbce0, + 0xbce7, 0xbcb8, 0xbcd5, 0xbcef, 0xbce6, 0xbce4, 0xbcd4, 0xbcd6, + 0xbcea, 0x18ed, 0xbcbb, 0xbce9, 0xc510, 0xbe6d, 0xbe70, 0xbe73, + 0xbe72, 0xbed4, 0xbece, 0xbed5, 0xbf5a, 0xbf58, 0xbf52, 0xbf50, + 0xbf55, 0xbf4e, 0xbf4d, 0xbfcb, 0xbfcc, 0xbfcd, 0xbfd1, 0xc058, + 0xc063, 0xc05e, 0xc054, 0xc05b, 0xc0e9, 0xc0e7, 0xc0e8, 0xc11d, + 0xc167, 0xc15a, 0xc15c, 0xc15b, 0xc161, 0xc1a1, 0x198d, 0xc1a4, + 0xc1e9, 0xc1ef, 0xc1e5, 0xc1f5, 0xc1eb, 0xc1ed, 0xc296, 0xc295, + 0xc2b3, 0xc2b5, 0xc2b1, 0x00a7, 0x2e4d, 0x3024, 0x322b, 0x33cf, + 0x34c9, 0x3836, 0x3831, 0x3854, 0x383a, 0x3838, + /* 0x53 */ + 0x3939, 0x3938, 0x3af4, 0x3af3, 0x3af6, 0x3afc, 0x3af5, 0x3af1, + 0x3c9c, 0x3e18, 0x3e1a, 0x3ffc, 0x3ffe, 0x4003, 0x4053, 0x422b, + 0x43c6, 0x43c1, 0x457b, 0x4706, 0x4849, 0x48b8, 0x49a3, 0x4c52, + 0x4c4d, 0x4c5f, 0x4c5e, 0x4c61, 0x4d23, 0x508c, 0x506f, 0x5075, + 0x5074, 0x5071, 0x5070, 0x506c, 0x5326, 0x5508, 0x1e07, 0x58f0, + 0x58ef, 0x58fb, 0x5910, 0x590c, 0x58f6, 0x58fe, 0x5b7c, 0x5be1, + 0x5d38, 0x5d6f, 0x6118, 0x6115, 0x611c, 0x6110, 0x6135, 0xc417, + 0x6117, 0x611d, 0x6126, 0x6128, 0x6129, 0x612a, 0x611a, 0xc416, + 0x4707, 0x63ab, 0x63ac, 0x63a1, 0x63ae, 0x63a3, 0x63a7, 0x6448, + 0x6504, 0x65fd, 0x0a5a, 0x6608, 0x67d2, 0x69c6, 0x69be, 0x6a1c, + 0x6aa6, 0x6aa7, 0x6aab, 0x6b00, 0x6bfb, 0x6bfc, 0x6bf9, 0x6c01, + 0x6e06, 0x6e04, 0xc43c, 0x6f34, 0x7136, 0x7132, + /* 0x54 */ + 0x7142, 0x712d, 0x7135, 0x73d8, 0x7523, 0x7520, 0x7701, 0x7700, + 0x7703, 0xc2bc, 0x783c, 0x7841, 0x7835, 0x78c9, 0x7b8e, 0x7b9e, + 0x7b99, 0x7bb4, 0x7baa, 0x7b9f, 0x7b96, 0x7b9d, 0x7bc3, 0x7b74, + 0x7bab, 0x0eaf, 0x7d63, 0x7d5b, 0x7d5a, 0x7fc5, 0x7fc4, 0x7fcf, + 0x7fc8, 0x7fa4, 0x7fbd, 0x7fd3, 0x8060, 0x813b, 0x81e3, 0x81e7, + 0x82a8, 0x82ac, 0x82a9, 0x832a, 0x8408, 0x8409, 0x86b9, 0x88c1, + 0x88c2, 0x88b8, 0x8ce1, 0x8ceb, 0x8ce5, 0x8cfa, 0x8ce4, 0x8d0b, + 0x8cd7, 0x8cef, 0x8ce0, 0x8cec, 0x8cfb, 0xc4b0, 0x8cd3, 0x8ce6, + 0x8cfc, 0x8ce3, 0x8ccf, 0x8cda, 0x8cdc, 0x8cd2, 0x8ca4, 0x116b, + 0x8e17, 0x8e16, 0x90f2, 0x90fc, 0x9118, 0x90f6, 0x90fe, 0x90f3, + 0x90f7, 0x9101, 0x90f9, 0x9106, 0x90f5, 0x9110, 0x90df, 0x9103, + 0x9108, 0x91d8, 0x9205, 0x9397, 0x93b3, 0x93ae, + /* 0x55 */ + 0x93af, 0x93a7, 0x93b1, 0x93a8, 0x93ac, 0x93ab, 0x9404, 0x949a, + 0x954a, 0x9742, 0x9758, 0x974b, 0x9745, 0x9749, 0x974c, 0x9759, + 0x9756, 0x131b, 0x9746, 0x9744, 0x975b, 0x9769, 0x988e, 0x988f, + 0x991e, 0x86bc, 0x9a2f, 0x9b9e, 0x9b9d, 0x9b9f, 0x9b9c, 0x9db4, + 0x9dae, 0x9dab, 0x9db3, 0x9daf, 0x9dc2, 0x9e93, 0x9e95, 0x9e96, + 0x9e97, 0x9fcf, 0x9fce, 0x9fcb, 0xa04b, 0xa246, 0xa243, 0xa245, + 0xa251, 0xa3ae, 0xa3af, 0xa3b0, 0xa3b8, 0xa3e2, 0xa3e3, 0xa3e6, + 0xa4ed, 0xa4ea, 0xa53a, 0xa759, 0xa784, 0xa75f, 0xa77c, 0xa75c, + 0xa758, 0xa755, 0xa75d, 0xa77e, 0xa780, 0xa783, 0xa757, 0x1563, + 0xa75e, 0xa8ba, 0xa9d5, 0xab58, 0xab68, 0xab67, 0xac4a, 0xac4c, + 0xac52, 0xac49, 0xac4e, 0xac47, 0xac4d, 0xac4b, 0xac4f, 0xad7e, + 0xad87, 0xad83, 0xad89, 0x69ca, 0xad86, 0xad88, + /* 0x56 */ + 0xae47, 0xae42, 0xae49, 0xae48, 0x1680, 0x1684, 0x167f, 0xaf44, + 0xaf51, 0xaf46, 0xaf47, 0xafe4, 0xb00f, 0xb03f, 0xb14b, 0xb157, + 0xb152, 0x16f1, 0xb151, 0xb158, 0xb15e, 0xb153, 0xb15d, 0xb14d, + 0xb23c, 0xb23f, 0xb246, 0xb23e, 0xb244, 0xb245, 0xb241, 0xb238, + 0xb242, 0xb243, 0xb27a, 0xb3a3, 0xb3ba, 0xb3c0, 0xb3c4, 0xb3c6, + 0xb3cb, 0xb461, 0xb57a, 0xb573, 0xb572, 0xb574, 0xb580, 0xb581, + 0x2947, 0xb695, 0xb68f, 0xb690, 0xb692, 0xb694, 0xb68b, 0xb6e6, + 0xb7b2, 0xb7b8, 0xb7bd, 0xb7be, 0xb7ce, 0xb7ba, 0xb816, 0xb826, + 0xb825, 0xb84c, 0xb850, 0xb84e, 0xb851, 0xb852, 0xb914, 0xb915, + 0xb91b, 0xba82, 0xba99, 0xba9a, 0xba7d, 0xba85, 0xba86, 0xba9c, + 0xba79, 0xba7b, 0xba80, 0xba83, 0xba81, 0xbd1e, 0xbd1b, 0xbd2a, + 0xbcfb, 0xbd05, 0xbd20, 0xbd11, 0xbd04, 0xbcfd, + /* 0x57 */ + 0xbd03, 0xbd10, 0xbd18, 0xbd0a, 0xbd4e, 0xbd09, 0xbd07, 0xbd1c, + 0x191c, 0xbe77, 0xbe76, 0xbed8, 0xbed9, 0xbf61, 0xbf5c, 0xbf5e, + 0xbf60, 0xbfaa, 0xbfd6, 0xbfd8, 0xc009, 0xc008, 0xc06b, 0xc065, + 0xc073, 0xc074, 0xc0ed, 0xc124, 0xc125, 0xc16a, 0xc1a7, 0xc1a8, + 0xc20b, 0xc1fa, 0xc1f9, 0xc1ff, 0xc204, 0xc1f6, 0xc205, 0xc299, + 0xc2ab, 0xc2bd, 0xc2b8, 0x00a8, 0x2e64, 0x2e5a, 0x2f72, 0x337a, + 0x3595, 0x385f, 0x3861, 0x385e, 0x385a, 0x385c, 0x385d, 0x386e, + 0x3857, 0x3858, 0x3b02, 0x3b0b, 0x3b08, 0x3b51, 0x3e25, 0x3e28, + 0x3e23, 0x3e21, 0x3e24, 0x3e29, 0x4006, 0x400a, 0x43ca, 0x43cc, + 0x43cb, 0x43cf, 0x457f, 0x457c, 0x45d6, 0x4709, 0x470b, 0x4776, + 0x487d, 0x49a5, 0x4c5b, 0x4c5c, 0x4c5d, 0x4c65, 0x506d, 0x5082, + 0x5083, 0x5087, 0x5095, 0x508a, 0x52d6, 0x5328, + /* 0x58 */ + 0x550d, 0x592e, 0xc3ee, 0x592d, 0x5921, 0x5919, 0x5a3b, 0x5a3c, + 0x5a3a, 0x5b7e, 0x5d3b, 0x6147, 0x6139, 0x6134, 0x6136, 0x6146, + 0x613b, 0x6141, 0x6145, 0x63c0, 0x63c4, 0x63ba, 0x63bd, 0x63be, + 0x64a3, 0x660c, 0x67d9, 0x69cd, 0x6aae, 0x6bff, 0x6c24, 0x6ebb, + 0x6ebc, 0x6f36, 0x6fd5, 0x6fd3, 0x6fd6, 0x713c, 0x713f, 0x73de, + 0x73e3, 0x7527, 0x7529, 0x0d8b, 0x7705, 0x7707, 0x770c, 0x78d0, + 0x7bbe, 0x7bbc, 0x7bd0, 0x7bc2, 0x7bb5, 0x7bc9, 0x7d66, 0x0f2b, + 0x7fd5, 0x7fe2, 0x7fdc, 0x7fe3, 0x7fda, 0x7fc2, 0x7fe8, 0x81e9, + 0x82af, 0x82ad, 0x82ae, 0x840b, 0x86c1, 0x87b6, 0x87b9, 0x88c0, + 0x8ca5, 0x8d28, 0x8d22, 0x8d29, 0x8d18, 0x8d1f, 0x8d1c, 0x8d12, + 0x8d2a, 0x117a, 0x8d21, 0x8d2b, 0x8d17, 0x8cf0, 0x8d16, 0x8d23, + 0x912b, 0x9126, 0x913d, 0x9122, 0x913a, 0x9131, + /* 0x59 */ + 0x9132, 0x9154, 0x9121, 0x9135, 0x1209, 0x912e, 0x9130, 0x912f, + 0x9136, 0x91da, 0x91d9, 0x93bb, 0x93bc, 0x93b7, 0x93c2, 0x93bd, + 0x93b2, 0x126d, 0x7144, 0x7bd1, 0x9752, 0x976b, 0x9767, 0x131f, + 0x9761, 0x976c, 0x9751, 0x9774, 0x9777, 0x976f, 0x976d, 0x9768, + 0xc4d1, 0x9784, 0x9890, 0x9892, 0x9893, 0x991f, 0x9a31, 0x9a38, + 0x9a39, 0x9a37, 0x9bab, 0x9dc3, 0x9dc8, 0x9dcb, 0x9dcf, 0x9e98, + 0x9fd4, 0x9fd3, 0x9fd8, 0x9fd9, 0x9fdd, 0x9fd1, 0x9fd6, 0xa03e, + 0xa258, 0xa257, 0xa255, 0xa3c4, 0xa3e4, 0xa4ee, 0xa4ef, 0xa4f3, + 0xa4f2, 0xa4f0, 0xa7ab, 0xa79a, 0xa7af, 0xa797, 0x156a, 0x156c, + 0xa7bf, 0xa794, 0xa793, 0xa8be, 0xa8bb, 0xa8bc, 0xa9d9, 0xab6c, + 0xac53, 0xac54, 0xac5b, 0xac58, 0xac56, 0xac57, 0xad9f, 0xad94, + 0xad96, 0xad97, 0xae4a, 0xae4b, 0xaf55, 0xaf5a, + /* 0x5a */ + 0xaf5e, 0xaf5f, 0xaf59, 0xaf5b, 0xaf58, 0xaf54, 0xafe8, 0xafeb, + 0xafec, 0xb013, 0xb166, 0xb16b, 0xb162, 0xb169, 0xb163, 0xb15f, + 0xb14e, 0xb248, 0xb24a, 0xb3e3, 0xb3db, 0xb3d8, 0xb3d6, 0xb586, + 0xb590, 0xb591, 0xb588, 0xb594, 0xb583, 0x17b2, 0xb59c, 0xb58d, + 0xb585, 0xb698, 0xb69a, 0xb69c, 0xb6e7, 0xb7c5, 0xb7d0, 0xb7d1, + 0xb819, 0xb827, 0x181d, 0xb854, 0xb92d, 0xb922, 0x182d, 0xb91f, + 0xbabd, 0xbaae, 0xbabb, 0xbaad, 0xbabc, 0xbab9, 0xbab4, 0xbacb, + 0xbab7, 0xbab3, 0xbaba, 0xbab6, 0xbacd, 0xbabe, 0xbac9, 0xc50b, + 0xbd5f, 0xbd3b, 0xbd61, 0xbd5c, 0xbd8a, 0xbd5a, 0xbd4d, 0xbd46, + 0xbd44, 0xbd3d, 0xbd40, 0xbd3c, 0xbd8c, 0xbd41, 0xbd4c, 0xbd3e, + 0xbd4a, 0xbe7c, 0xbe7a, 0xbf65, 0xbf6e, 0xbf69, 0xbf6a, 0xbf6f, + 0xbf6c, 0xbf70, 0xbf68, 0xbf6b, 0x1945, 0xbfac, + /* 0x5b */ + 0xbfde, 0xbfdd, 0xbfdc, 0x63c5, 0xc08c, 0xc083, 0xc082, 0xc088, + 0xc085, 0xc081, 0xc0f5, 0xc0ef, 0xc0f4, 0xc0f2, 0xc0f6, 0xc0f3, + 0xc0f0, 0xc0f1, 0xc12b, 0xc127, 0xc128, 0xc16c, 0xc1ae, 0xc20e, + 0xc21b, 0xc216, 0xc21f, 0xc222, 0xc220, 0xc221, 0xc214, 0xc213, + 0xc29d, 0xc29c, 0xc29e, 0xc29f, 0x2e6b, 0x32c8, 0x3878, 0x3876, + 0x3870, 0x3871, 0x3b0a, 0x3e2c, 0x4711, 0x487e, 0x4c57, 0x4c66, + 0x4c69, 0x4c67, 0x4c68, 0x4c71, 0x4c6f, 0xbfae, 0x508b, 0x5096, + 0x5235, 0x523a, 0x526b, 0x5516, 0x5943, 0x5946, 0x593f, 0x593b, + 0x593d, 0x5ab1, 0x5ab2, 0x5be4, 0x5d40, 0x615d, 0x6151, 0x614d, + 0x614c, 0x615b, 0x63d4, 0x63d2, 0x63ca, 0x63c8, 0x63d0, 0x63c9, + 0x6449, 0x64a4, 0x6612, 0x660f, 0x6611, 0x67db, 0x67dd, 0x67dc, + 0x69d4, 0x6a21, 0x6ab2, 0x6c04, 0x6c02, 0x6e11, + /* 0x5c */ + 0x6e16, 0x6e10, 0x6ebe, 0x8e1a, 0x714c, 0x714a, 0x73f2, 0x73f1, + 0x752a, 0x752c, 0x752f, 0x7531, 0x7711, 0x7712, 0x784b, 0x7bdb, + 0x7bd6, 0x7bdd, 0x7be2, 0x7be4, 0x7be0, 0x7bdf, 0x7be3, 0x7d6e, + 0x7d71, 0x7fe9, 0x7fea, 0x8063, 0x81eb, 0x81ea, 0x86bd, 0x86bb, + 0x86c6, 0x86cc, 0x86c8, 0x63cf, 0x86c9, 0x86ca, 0x86cf, 0x86d0, + 0x87ba, 0x87fb, 0x8803, 0x88c4, 0x8d49, 0x8d53, 0x8d36, 0x8d4a, + 0x8d41, 0x8d4e, 0x8d19, 0x8d4d, 0x8d45, 0x8d4c, 0x8d47, 0x8d48, + 0x8d4f, 0x8d37, 0x8d42, 0x914a, 0x9146, 0x120a, 0x9149, 0x914f, + 0x9151, 0x914c, 0x120c, 0x9206, 0x9551, 0x977a, 0x9783, 0x977e, + 0x977f, 0x9780, 0x6ab5, 0x9891, 0x9894, 0x9895, 0x9921, 0x9920, + 0x9a3d, 0x9a40, 0x9a46, 0x9a84, 0x9bac, 0x9bad, 0x142e, 0x9dda, + 0x9dd9, 0x9fe2, 0x9fe1, 0x9fe3, 0x9fe4, 0x9fde, + /* 0x5d */ + 0x9fdf, 0xa241, 0xa259, 0xa25c, 0xa25a, 0xa3e8, 0xa4f6, 0xa4fc, + 0xa4f7, 0xa4fa, 0xa4f9, 0xa7c4, 0xa7be, 0xa7d2, 0xa7bd, 0xa795, + 0xa7d4, 0xa9e4, 0xac61, 0xac62, 0xac63, 0xac64, 0xac60, 0xac5c, + 0xac5d, 0xac5e, 0xada5, 0xada6, 0xae4c, 0xaf68, 0xaf6e, 0xaf71, + 0xaf6b, 0xaf6f, 0xafee, 0xaff1, 0xaff0, 0xafef, 0xb015, 0xb014, + 0xab6e, 0xb047, 0xb17c, 0xb17a, 0xb174, 0xb176, 0xb16e, 0xb178, + 0xb16d, 0xb16c, 0xb24e, 0xb3d7, 0xb3ea, 0xb3e5, 0xb464, 0xb5b3, + 0xb5a3, 0xb5a5, 0xb5a7, 0xb5a2, 0xb59f, 0xb5a6, 0xb59e, 0xb5a8, + 0xb6a9, 0xb6a6, 0xb6aa, 0xb6ab, 0xb6a0, 0xb6a1, 0xb6a8, 0xb6e8, + 0xb6e9, 0xb6ea, 0xb7e4, 0xb7df, 0xb7e0, 0xb828, 0xb85d, 0xb85b, + 0xb856, 0xb857, 0xb85f, 0xb862, 0xbae1, 0xbae3, 0xbade, 0xbad9, + 0xbae8, 0xbaf2, 0xbaf6, 0xbae6, 0xbaf4, 0xbaf5, + /* 0x5e */ + 0xbae5, 0xbae2, 0x188d, 0xbd96, 0xbdaa, 0xbd97, 0xbd70, 0xbda1, + 0xbd9d, 0xbda9, 0xbd6f, 0xbd7e, 0xbd94, 0xbd9a, 0xbd73, 0xbd87, + 0xbd71, 0xbd77, 0xbd88, 0xbd8d, 0xbd85, 0xbd78, 0xbdad, 0xbe80, + 0xbe81, 0xbee5, 0xbee7, 0xbf7c, 0xbfaf, 0xbfe1, 0xc096, 0xc0a3, + 0xc090, 0xc0f8, 0xc12e, 0xc175, 0xc17e, 0xc17d, 0xc17b, 0xc178, + 0xc1b0, 0xc234, 0xc236, 0xc230, 0xc51d, 0xc22e, 0xc237, 0x34ce, + 0x3597, 0x3598, 0x387c, 0x387e, 0x387d, 0x387f, 0x3b0f, 0x3ca4, + 0x3e31, 0x3e2e, 0x3e2f, 0x3e32, 0x422c, 0x43d4, 0x43dc, 0x43d8, + 0x440e, 0x4583, 0x4584, 0x4712, 0x4c72, 0x4c7c, 0x4c7e, 0x50a6, + 0x50a0, 0x509e, 0x50a2, 0x532a, 0x5518, 0x594d, 0x5958, 0x595b, + 0x7714, 0xc3f2, 0x5be6, 0x6164, 0x6168, 0x6160, 0x6162, 0x63d7, + 0x644b, 0x67e0, 0x6a22, 0x6c05, 0x6e19, 0x6e1a, + /* 0x5f */ + 0x6ec3, 0x6fd8, 0x6fdc, 0x714f, 0x73f7, 0x73f4, 0x73f8, 0x7713, + 0x7850, 0x7bf0, 0x7be9, 0x7bef, 0x7bed, 0x7bea, 0x7bf8, 0x7c05, + 0x7bf2, 0x7d72, 0x0f31, 0x7ff9, 0x7ff3, 0x7ff6, 0x7ff2, 0x7ff7, + 0x8066, 0x8065, 0x8140, 0xc477, 0x86d1, 0x86d3, 0x8804, 0x8d59, + 0x8d60, 0x8d5b, 0x8d5d, 0x8d5e, 0x8d69, 0x8d5c, 0x8d61, 0x8d6a, + 0x8d5f, 0x914e, 0x915c, 0x9160, 0x9163, 0x91db, 0x93ca, 0x93c9, + 0x93c8, 0x94a5, 0x94a3, 0x978e, 0x9787, 0x9789, 0x9785, 0x9786, + 0x978f, 0x978a, 0x9790, 0x9898, 0x989b, 0x9a47, 0x9a49, 0x9a48, + 0x9de5, 0x9dea, 0x9ded, 0x9ff0, 0x9fef, 0x9ff2, 0x9fec, 0xa040, + 0xa260, 0xa25f, 0xa3eb, 0xa3ec, 0xa500, 0xa501, 0xa7e2, 0xa7df, + 0xa7e0, 0xa7e1, 0xa7e3, 0xa8c3, 0xa9eb, 0xa9ea, 0xab61, 0xab71, + 0xac6b, 0xac68, 0xac69, 0xac67, 0xadb0, 0xadb1, + /* 0x60 */ + 0xadb2, 0xae51, 0xaf74, 0xb17f, 0xb184, 0xb253, 0xb254, 0xb3f0, + 0xb3f4, 0xb3f1, 0xb437, 0xb5bf, 0x17bc, 0x17bb, 0xb5bd, 0xb5be, + 0xb5b7, 0xb5c0, 0xb5ba, 0xb5b8, 0xb5bc, 0xb5bb, 0xb6eb, 0xb7e7, + 0xb81d, 0xb81c, 0xb863, 0x484b, 0xb938, 0xb936, 0xb934, 0xb937, + 0xbb06, 0xbb1c, 0xbb02, 0xbb1d, 0xbb1e, 0xbae0, 0xbb11, 0xbb18, + 0xbb21, 0xbb20, 0xbb10, 0xbdbd, 0xbdae, 0xbdb5, 0xbdb8, 0xbdb9, + 0xbdbe, 0xbdc4, 0xbdbc, 0xbdba, 0xbe83, 0xbeea, 0xbeec, 0xbf7e, + 0xbf7b, 0xbfe5, 0xc0a7, 0xc09e, 0xc09a, 0xc12f, 0xc131, 0xc183, + 0xc1b5, 0xc246, 0xc241, 0xc243, 0xc23d, 0xc242, 0xc23b, 0xc247, + 0x336b, 0x33d0, 0x388e, 0x4011, 0xc371, 0xc389, 0x484c, 0x532b, + 0x594f, 0x595e, 0x5963, 0x596b, 0x5a3f, 0x5be9, 0x616d, 0x616b, + 0x616a, 0xbb2a, 0x63e0, 0x63dd, 0x63e1, 0x63de, + /* 0x61 */ + 0x63dc, 0x644d, 0x6616, 0x67e3, 0x69e5, 0x69e4, 0x6e1d, 0x754b, + 0xc2c1, 0x784e, 0x78d6, 0x7bfd, 0x7c07, 0x7bfe, 0x7c03, 0x7c0b, + 0x7bff, 0x7d7a, 0x7d77, 0x7ffb, 0x8143, 0x81ed, 0x87bc, 0x63df, + 0x8805, 0x88c6, 0x88c5, 0x8d74, 0x8d73, 0x8d72, 0x8d78, 0x9173, + 0x917a, 0x6e1c, 0x9176, 0x9175, 0x9177, 0x93cf, 0x93ce, 0x93cd, + 0x94a8, 0x9798, 0x9792, 0x9794, 0x989a, 0x9bb4, 0x9deb, 0x9df4, + 0x9df3, 0x9dee, 0x9df2, 0x9df0, 0xa264, 0xa805, 0xa7fb, 0xa7fc, + 0xa9f3, 0xac6c, 0xadba, 0xaf79, 0xaf7e, 0xaf78, 0xaff4, 0xb016, + 0xb257, 0xb5c8, 0xb5c3, 0xb5ce, 0xb6b3, 0xb6ed, 0xb6ee, 0xb7f1, + 0xb7f8, 0x1814, 0xb864, 0xb865, 0xbb35, 0xbb29, 0xbb2c, 0xbb31, + 0xbb2b, 0xbb2e, 0xbb25, 0xbdda, 0xbde0, 0xbdd4, 0xbde1, 0xbddd, + 0xbfe7, 0xc012, 0xc0ae, 0xc0af, 0xc186, 0xc185, + /* 0x62 */ + 0xc1d1, 0xc258, 0xc23f, 0xc252, 0xc24b, 0xc253, 0xc250, 0xc256, + 0xc257, 0xc2cd, 0xc2cb, 0x3231, 0x3230, 0x33d1, 0x021c, 0x3892, + 0x3890, 0x388f, 0x3893, 0x3891, 0x0372, 0x4713, 0x487f, 0x50ac, + 0x6170, 0x63e5, 0x6a23, 0x6a24, 0x6c08, 0x6c07, 0x6e1f, 0x6e20, + 0x6e21, 0x6fe1, 0x7154, 0x7157, 0x7155, 0x73fa, 0x7538, 0x8d86, + 0x7537, 0x7853, 0x7d7e, 0x7d7b, 0xc471, 0x7ffd, 0x7ffc, 0x8146, + 0x8732, 0x88c7, 0x8d71, 0x8d83, 0x8d6f, 0x8d7e, 0x8d7d, 0x8d81, + 0x8d7c, 0x918a, 0x917e, 0x9180, 0x917d, 0x917f, 0x9182, 0x93d4, + 0x93d0, 0x93d2, 0x9555, 0x979b, 0x979a, 0x9a4e, 0x9df1, 0x9ff8, + 0x9ffd, 0xa25e, 0xa266, 0xa505, 0xa80a, 0xa80b, 0xa80e, 0xa80d, + 0xa811, 0xa809, 0xa810, 0xa80c, 0xa812, 0xa8c4, 0xa9f7, 0xa9f8, + 0xab6a, 0xab6b, 0xadc0, 0xadc2, 0xaf85, 0xaf80, + /* 0x63 */ + 0xaf84, 0xaf81, 0xadc4, 0xb18b, 0xb18d, 0xb18e, 0xb6b7, 0xb6b9, + 0xb6ef, 0xb7fb, 0xb7ff, 0xb867, 0xb868, 0xb869, 0xb93f, 0xbb3c, + 0xbb4c, 0xbb3d, 0xbb3e, 0xbb3f, 0xbb3b, 0xbdff, 0x190e, 0xbdf6, + 0xbdee, 0xbdfc, 0xbdf8, 0xbe01, 0xbdfa, 0xbe88, 0xbf80, 0xc011, + 0xc0fe, 0xc100, 0xc135, 0x6f3c, 0xc1bd, 0xc1bb, 0xc25c, 0xc25a, + 0xc2d1, 0xc2d0, 0x340b, 0x5973, 0x3e39, 0x401a, 0x43e3, 0x4587, + 0x4777, 0x4778, 0x50b1, 0x596a, 0x5974, 0x5beb, 0x617b, 0x64a5, + 0x67e4, 0x6c0b, 0x6c0e, 0x6c0c, 0x7539, 0x7c10, 0x7c11, 0x7c16, + 0x7d81, 0x7d80, 0x7ffe, 0x8001, 0x8000, 0x8147, 0x81ef, 0x8d88, + 0x918b, 0x918d, 0x9187, 0x9185, 0x918f, 0x9184, 0x9188, 0x918e, + 0x918c, 0x93d7, 0x93d6, 0x979f, 0x4588, 0x9e03, 0x9ffe, 0xa3ef, + 0xa509, 0xa508, 0xa820, 0xa824, 0xa81f, 0xac70, + /* 0x64 */ + 0xae56, 0xaff7, 0xaff8, 0xaff6, 0xb190, 0xb25e, 0xb3f7, 0xb5d6, + 0xb5d5, 0xb6bb, 0xb6f0, 0xb801, 0xb86c, 0xb941, 0xb942, 0xbb4f, + 0xbb53, 0xbb58, 0xbe12, 0xbe04, 0xbe13, 0xbe05, 0xbe0d, 0xbf82, + 0xbf81, 0xc0b5, 0xc0ba, 0xc1be, 0xc265, 0xc263, 0xc26e, 0xc26a, + 0xc26c, 0xc2c4, 0x336c, 0x97a5, 0x4012, 0x484d, 0x551f, 0x5977, + 0x5978, 0x5d44, 0x617c, 0x63eb, 0x63ea, 0x63ec, 0x64a7, 0x6619, + 0x6e23, 0x2074, 0x7401, 0x7c1c, 0x8003, 0x8148, 0x86da, 0x8d91, + 0x8d92, 0x9196, 0x9197, 0x9191, 0x9193, 0x93d8, 0x93d5, 0x9557, + 0x9558, 0x97a2, 0x9e05, 0x9ffa, 0xa50c, 0xa50a, 0xa82e, 0xa829, + 0xa82f, 0xa8c5, 0xac72, 0xadc8, 0xae5a, 0xae59, 0xaf89, 0xaf88, + 0xb5db, 0xb5d9, 0xb5da, 0xb6bc, 0x17ec, 0xb806, 0xb805, 0xb86f, + 0xb86d, 0xb870, 0xbb60, 0xbb5e, 0xbb63, 0xbb5a, + /* 0x65 */ + 0xbb5f, 0xbe19, 0xbe1d, 0xbe1b, 0xbe22, 0xbe1c, 0xbe1e, 0xbef7, + 0xbf84, 0xc015, 0xc0b8, 0xc0c1, 0xc101, 0xc10a, 0xc1d2, 0xc275, + 0xc274, 0xc272, 0x34d0, 0x401b, 0x4410, 0x4779, 0x63ed, 0x6ab9, + 0x6e24, 0x6ec5, 0x7403, 0x814a, 0x86f7, 0x87c1, 0x87c2, 0x8d94, + 0x9199, 0x919a, 0x955a, 0x97a8, 0x9825, 0x989e, 0xa041, 0xa832, + 0xa833, 0xadcb, 0xadca, 0xadcc, 0xb193, 0xb5e0, 0xb871, 0xbb6b, + 0xbe2b, 0xbe29, 0xbe1a, 0xbe26, 0xbe27, 0xbe2a, 0xbef8, 0x6f3d, + 0xc276, 0x3b18, 0x597a, 0x617f, 0x0e79, 0x81f0, 0x8d9a, 0x8d96, + 0x919e, 0x919d, 0x91dc, 0x93da, 0x9e0b, 0xa002, 0xa042, 0xa267, + 0xaf8b, 0xb5e2, 0xbb71, 0xbe2f, 0xbe2e, 0xc0c6, 0xc18e, 0xc27b, + 0xc277, 0xc278, 0xc27c, 0x597c, 0x8007, 0x8d97, 0x97d9, 0xa50d, + 0xa50e, 0xb5e3, 0xb5e4, 0xb6f3, 0xb875, 0xbe37, + /* 0x66 */ + 0xbe35, 0xc18f, 0xc280, 0xc27f, 0xc2d4, 0x50b4, 0xbfec, 0xab75, + 0x6c10, 0x8069, 0x91a4, 0x93db, 0xadd1, 0xaf8d, 0xbb76, 0xbe39, + 0xc284, 0xc282, 0x34d2, 0x63ee, 0x6c11, 0x7d84, 0xab74, 0xaf8f, + 0xaf8e, 0xbe3b, 0x32cb, 0xc288, 0xc286, 0x555c, 0x71a4, 0xac75, + 0xc28b, 0x3b19, 0x989f, 0xb5e5, 0xbe40, 0x6c12, 0xbefb, 0xc28c, + 0x71a5, 0xb877, 0xb878, 0xc2d6, 0x93df, 0xadd2, 0x3b1a, 0x97a9, + 0xadd3, 0xc0ca, 0x87c4, 0x94b1, 0xb264, +}; + +static const ucs4_t cns11643_7_2uni_upages[198] = { + 0x03400, 0x03500, 0x03600, 0x03700, 0x03800, 0x03900, 0x03a00, 0x03b00, + 0x03c00, 0x03d00, 0x03e00, 0x03f00, 0x04000, 0x04100, 0x04200, 0x04300, + 0x04400, 0x04500, 0x04600, 0x04700, 0x04800, 0x04900, 0x04a00, 0x04b00, + 0x04c00, 0x04d00, 0x05600, 0x05800, 0x06100, 0x06400, 0x06700, 0x07100, + 0x07600, 0x07c00, 0x07f00, 0x08100, 0x08600, 0x08d00, 0x08f00, 0x09300, + 0x09500, 0x09a00, 0x0ff00, 0x20000, 0x20100, 0x20300, 0x20400, 0x20500, + 0x20600, 0x20700, 0x20800, 0x20900, 0x20a00, 0x20b00, 0x20f00, 0x21000, + 0x21100, 0x21200, 0x21400, 0x21500, 0x21600, 0x21800, 0x21900, 0x21a00, + 0x21b00, 0x21c00, 0x21d00, 0x21f00, 0x22000, 0x22100, 0x22200, 0x22300, + 0x22400, 0x22500, 0x22700, 0x22800, 0x22900, 0x22a00, 0x22c00, 0x22d00, + 0x22e00, 0x22f00, 0x23000, 0x23100, 0x23200, 0x23300, 0x23500, 0x23600, + 0x23700, 0x23800, 0x23900, 0x23a00, 0x23b00, 0x23c00, 0x23e00, 0x23f00, + 0x24000, 0x24100, 0x24300, 0x24400, 0x24500, 0x24600, 0x24700, 0x24800, + 0x24900, 0x24a00, 0x24b00, 0x24c00, 0x24d00, 0x24e00, 0x24f00, 0x25000, + 0x25200, 0x25300, 0x25400, 0x25500, 0x25600, 0x25700, 0x25800, 0x25900, + 0x25a00, 0x25b00, 0x25c00, 0x25d00, 0x25e00, 0x25f00, 0x26000, 0x26100, + 0x26200, 0x26300, 0x26400, 0x26500, 0x26600, 0x26700, 0x26800, 0x26900, + 0x26a00, 0x26d00, 0x26e00, 0x26f00, 0x27000, 0x27100, 0x27200, 0x27300, + 0x27400, 0x27500, 0x27600, 0x27700, 0x27800, 0x27900, 0x27a00, 0x27b00, + 0x27c00, 0x27d00, 0x27e00, 0x27f00, 0x28000, 0x28100, 0x28200, 0x28300, + 0x28400, 0x28500, 0x28600, 0x28700, 0x28800, 0x28900, 0x28a00, 0x28b00, + 0x28c00, 0x28d00, 0x28e00, 0x28f00, 0x29000, 0x29100, 0x29200, 0x29300, + 0x29400, 0x29500, 0x29600, 0x29700, 0x29800, 0x29900, 0x29a00, 0x29b00, + 0x29c00, 0x29d00, 0x29e00, 0x29f00, 0x2a000, 0x2a100, 0x2a200, 0x2a300, + 0x2a400, 0x2a500, 0x2a600, 0x2f800, 0x2f900, 0x2fa00, +}; + +static int +cns11643_7_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 >= 0x21 && c1 <= 0x66)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if (c2 >= 0x21 && c2 < 0x7f) { + unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); + ucs4_t wc = 0xfffd; + unsigned short swc; + { + if (i < 6539) + swc = cns11643_7_2uni_page21[i], + wc = cns11643_7_2uni_upages[swc>>8] | (swc & 0xff); + } + if (wc != 0xfffd) { + *pwc = wc; + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + diff --git a/graf2d/win32gdk/gdk/src/iconv/cns11643_inv.h b/graf2d/win32gdk/gdk/src/iconv/cns11643_inv.h new file mode 100644 index 00000000000..3a7c379a154 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cns11643_inv.h @@ -0,0 +1,15412 @@ +/* + * Copyright (C) 1999-2005 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CNS 11643-1992 planes 1-7, CNS 11643-1986 plane 15 + */ + +static const unsigned char cns11643_inv_2charset[3*55442] = { + 0x1,0x21,0x70, 0x1,0x22,0x78, 0x1,0x22,0x34, 0x1,0x21,0x31, + 0x1,0x22,0x32, 0x1,0x22,0x33, 0x1,0x25,0x6f, 0x1,0x25,0x6d, + 0x1,0x25,0x6e, 0x1,0x25,0x70, 0x1,0x25,0x6c, 0x1,0x24,0x75, + 0x1,0x24,0x76, 0x1,0x24,0x77, 0x1,0x24,0x78, 0x1,0x24,0x79, + 0x1,0x24,0x7a, 0x1,0x24,0x7b, 0x1,0x24,0x7c, 0x1,0x24,0x7d, + 0x1,0x24,0x7e, 0x1,0x25,0x21, 0x1,0x25,0x22, 0x1,0x25,0x23, + 0x1,0x25,0x24, 0x1,0x25,0x25, 0x1,0x25,0x26, 0x1,0x25,0x27, + 0x1,0x25,0x28, 0x1,0x25,0x29, 0x1,0x25,0x2a, 0x1,0x25,0x2b, + 0x1,0x25,0x2c, 0x1,0x25,0x2d, 0x1,0x25,0x2e, 0x1,0x25,0x2f, + 0x1,0x25,0x30, 0x1,0x25,0x31, 0x1,0x25,0x32, 0x1,0x25,0x33, + 0x1,0x25,0x34, 0x1,0x25,0x35, 0x1,0x25,0x36, 0x1,0x25,0x37, + 0x1,0x25,0x38, 0x1,0x25,0x39, 0x1,0x25,0x3a, 0x1,0x25,0x3b, + 0x1,0x25,0x3c, 0x1,0x25,0x3d, 0x1,0x25,0x3e, 0x1,0x25,0x3f, + 0x1,0x25,0x40, 0x1,0x25,0x41, 0x1,0x25,0x42, 0x1,0x25,0x43, + 0x1,0x25,0x44, 0x1,0x25,0x45, 0x1,0x25,0x46, 0x1,0x21,0x39, + 0x1,0x21,0x37, 0x1,0x22,0x5d, 0x1,0x21,0x64, 0x1,0x21,0x65, + 0x1,0x21,0x66, 0x1,0x21,0x67, 0x1,0x21,0x2d, 0x1,0x21,0x2c, + 0x1,0x21,0x6a, 0x1,0x21,0x6b, 0x1,0x21,0x6f, 0x1,0x22,0x23, + 0x1,0x42,0x42, 0x1,0x22,0x6a, 0x1,0x22,0x22, 0x1,0x22,0x6b, + 0x1,0x24,0x2b, 0x1,0x24,0x2c, 0x1,0x24,0x2d, 0x1,0x24,0x2e, + 0x1,0x24,0x2f, 0x1,0x24,0x30, 0x1,0x24,0x31, 0x1,0x24,0x32, + 0x1,0x24,0x33, 0x1,0x24,0x34, 0x1,0x26,0x35, 0x1,0x26,0x36, + 0x1,0x26,0x37, 0x1,0x26,0x38, 0x1,0x26,0x39, 0x1,0x26,0x3a, + 0x1,0x26,0x3b, 0x1,0x26,0x3c, 0x1,0x26,0x3d, 0x1,0x26,0x3e, + 0x1,0x22,0x58, 0x1,0x22,0x55, 0x1,0x22,0x57, 0x1,0x22,0x56, + 0x1,0x22,0x59, 0x1,0x22,0x5a, 0x1,0x22,0x5c, 0x1,0x22,0x5b, + 0x1,0x22,0x61, 0x1,0x22,0x35, 0x1,0x22,0x3c, 0x1,0x22,0x49, + 0x1,0x22,0x48, 0x1,0x22,0x45, 0x1,0x22,0x46, 0x1,0x22,0x4d, + 0x1,0x22,0x4e, 0x1,0x22,0x50, 0x1,0x22,0x4f, 0x1,0x22,0x44, + 0x1,0x22,0x3d, 0x1,0x22,0x3b, 0x1,0x22,0x3e, 0x1,0x22,0x39, + 0x1,0x22,0x3a, 0x1,0x22,0x47, 0x1,0x22,0x4a, 0x1,0x42,0x21, + 0x1,0x42,0x22, 0x1,0x42,0x23, 0x1,0x42,0x24, 0x1,0x42,0x25, + 0x1,0x42,0x26, 0x1,0x42,0x27, 0x1,0x42,0x28, 0x1,0x42,0x29, + 0x1,0x42,0x2a, 0x1,0x42,0x2b, 0x1,0x42,0x2c, 0x1,0x42,0x2d, + 0x1,0x42,0x2e, 0x1,0x42,0x2f, 0x1,0x42,0x30, 0x1,0x42,0x31, + 0x1,0x42,0x32, 0x1,0x42,0x33, 0x1,0x42,0x34, 0x1,0x42,0x35, + 0x1,0x42,0x36, 0x1,0x42,0x37, 0x1,0x42,0x38, 0x1,0x42,0x39, + 0x1,0x42,0x3a, 0x1,0x42,0x3b, 0x1,0x42,0x3c, 0x1,0x42,0x3d, + 0x1,0x42,0x3e, 0x1,0x42,0x3f, 0x1,0x42,0x40, 0x1,0x42,0x41, + 0x1,0x26,0x21, 0x1,0x26,0x22, 0x1,0x26,0x23, 0x1,0x26,0x24, + 0x1,0x26,0x25, 0x1,0x26,0x26, 0x1,0x26,0x27, 0x1,0x26,0x28, + 0x1,0x26,0x29, 0x1,0x26,0x2a, 0x1,0x26,0x2b, 0x1,0x26,0x2c, + 0x1,0x26,0x2d, 0x1,0x26,0x2e, 0x1,0x26,0x2f, 0x1,0x26,0x30, + 0x1,0x26,0x31, 0x1,0x26,0x32, 0x1,0x26,0x33, 0x1,0x26,0x34, + 0x1,0x23,0x39, 0x1,0x23,0x3a, 0x1,0x23,0x3c, 0x1,0x23,0x3d, + 0x1,0x23,0x3e, 0x1,0x23,0x3f, 0x1,0x23,0x37, 0x1,0x23,0x36, + 0x1,0x23,0x35, 0x1,0x23,0x34, 0x1,0x23,0x33, 0x1,0x23,0x44, + 0x1,0x23,0x45, 0x1,0x23,0x47, 0x1,0x23,0x46, 0x1,0x23,0x40, + 0x1,0x23,0x41, 0x1,0x23,0x43, 0x1,0x23,0x42, 0x1,0x23,0x4c, + 0x1,0x23,0x4d, 0x1,0x23,0x4e, 0x1,0x23,0x24, 0x1,0x23,0x25, + 0x1,0x23,0x26, 0x1,0x23,0x27, 0x1,0x23,0x28, 0x1,0x23,0x29, + 0x1,0x23,0x2a, 0x1,0x23,0x2b, 0x1,0x23,0x32, 0x1,0x23,0x31, + 0x1,0x23,0x30, 0x1,0x23,0x2f, 0x1,0x23,0x2e, 0x1,0x23,0x2d, + 0x1,0x23,0x2c, 0x1,0x23,0x38, 0x1,0x23,0x3b, 0x1,0x21,0x7c, + 0x1,0x21,0x7b, 0x1,0x21,0x75, 0x1,0x21,0x74, 0x1,0x21,0x7e, + 0x1,0x21,0x7d, 0x1,0x21,0x7a, 0x1,0x21,0x79, 0x1,0x21,0x72, + 0x1,0x21,0x76, 0x1,0x21,0x73, 0x1,0x23,0x48, 0x1,0x23,0x49, + 0x1,0x23,0x4b, 0x1,0x23,0x4a, 0x1,0x21,0x78, 0x1,0x21,0x77, + 0x1,0x22,0x54, 0x1,0x22,0x51, 0x1,0x22,0x53, 0x1,0x22,0x52, + 0x1,0x21,0x21, 0x1,0x21,0x23, 0x1,0x21,0x24, 0x1,0x21,0x71, + 0x1,0x21,0x52, 0x1,0x21,0x53, 0x1,0x21,0x4e, 0x1,0x21,0x4f, + 0x1,0x21,0x56, 0x1,0x21,0x57, 0x1,0x21,0x5a, 0x1,0x21,0x5b, + 0x1,0x21,0x4a, 0x1,0x21,0x4b, 0x1,0x22,0x65, 0x1,0x21,0x46, + 0x1,0x21,0x47, 0x1,0x21,0x68, 0x1,0x21,0x69, 0x1,0x24,0x35, + 0x1,0x24,0x36, 0x1,0x24,0x37, 0x1,0x24,0x38, 0x1,0x24,0x39, + 0x1,0x24,0x3a, 0x1,0x24,0x3b, 0x1,0x24,0x3c, 0x1,0x24,0x3d, + 0x1,0x21,0x26, 0x1,0x25,0x47, 0x1,0x25,0x48, 0x1,0x25,0x49, + 0x1,0x25,0x4a, 0x1,0x25,0x4b, 0x1,0x25,0x4c, 0x1,0x25,0x4d, + 0x1,0x25,0x4e, 0x1,0x25,0x4f, 0x1,0x25,0x50, 0x1,0x25,0x51, + 0x1,0x25,0x52, 0x1,0x25,0x53, 0x1,0x25,0x54, 0x1,0x25,0x55, + 0x1,0x25,0x56, 0x1,0x25,0x57, 0x1,0x25,0x58, 0x1,0x25,0x59, + 0x1,0x25,0x5a, 0x1,0x25,0x5b, 0x1,0x25,0x5c, 0x1,0x25,0x5d, + 0x1,0x25,0x5e, 0x1,0x25,0x5f, 0x1,0x25,0x60, 0x1,0x25,0x61, + 0x1,0x25,0x62, 0x1,0x25,0x63, 0x1,0x25,0x64, 0x1,0x25,0x65, + 0x1,0x25,0x66, 0x1,0x25,0x67, 0x1,0x25,0x68, 0x1,0x25,0x69, + 0x1,0x25,0x6a, 0x1,0x25,0x6b, 0x1,0x22,0x21, 0x1,0x22,0x75, + 0x1,0x22,0x76, 0x1,0x22,0x70, 0x1,0x22,0x71, 0x1,0x22,0x72, + 0x1,0x22,0x74, 0x1,0x22,0x77, 0x1,0x22,0x73, 0x1,0x22,0x4c, + 0x1,0x22,0x4b, 0x1,0x22,0x6f, 0x6,0x22,0x2c, 0x4,0x22,0x24, + 0x6,0x21,0x30, 0x6,0x21,0x23, 0xf,0x21,0x6c, 0x4,0x21,0x57, + 0x4,0x23,0x36, 0x4,0x28,0x35, 0x3,0x34,0x3b, 0x3,0x39,0x6d, + 0x3,0x27,0x41, 0x3,0x28,0x6c, 0x3,0x23,0x23, 0x4,0x23,0x37, + 0x4,0x25,0x34, 0x3,0x40,0x34, 0x4,0x21,0x59, 0x3,0x21,0x75, + 0x3,0x21,0x6e, 0x3,0x21,0x71, 0x3,0x21,0x73, 0xf,0x21,0x44, + 0x6,0x23,0x4e, 0x3,0x22,0x71, 0x4,0x22,0x31, 0x3,0x22,0x69, + 0x3,0x22,0x6a, 0xf,0x21,0x72, 0x5,0x23,0x34, 0x3,0x24,0x4a, + 0x3,0x24,0x47, 0x3,0x24,0x4d, 0x6,0x25,0x71, 0x3,0x27,0x46, + 0x5,0x25,0x25, 0x4,0x25,0x39, 0x4,0x25,0x3c, 0x3,0x27,0x45, + 0x5,0x25,0x2b, 0x4,0x25,0x3b, 0x4,0x25,0x38, 0x3,0x27,0x50, + 0xf,0x25,0x4a, 0x3,0x2b,0x31, 0x6,0x2e,0x5a, 0x4,0x28,0x39, + 0x3,0x2b,0x30, 0x5,0x28,0x21, 0x4,0x28,0x3a, 0x3,0x2b,0x2a, + 0x4,0x28,0x37, 0x4,0x28,0x3c, 0x5,0x2b,0x6c, 0x3,0x34,0x49, + 0x3,0x2f,0x52, 0x4,0x2b,0x65, 0x6,0x35,0x38, 0x4,0x30,0x45, + 0x3,0x34,0x3e, 0x3,0x34,0x48, 0x4,0x30,0x4a, 0x4,0x36,0x38, + 0x3,0x39,0x73, 0x4,0x36,0x32, 0x4,0x36,0x37, 0x6,0x46,0x55, + 0x6,0x49,0x7b, 0x3,0x39,0x74, 0x3,0x40,0x35, 0x3,0x40,0x38, + 0x3,0x40,0x3b, 0x4,0x3c,0x2c, 0x4,0x3c,0x2d, 0x4,0x3c,0x28, + 0x4,0x3c,0x2a, 0x5,0x44,0x57, 0x4,0x42,0x37, 0x4,0x42,0x33, + 0x4,0x42,0x2e, 0x3,0x45,0x78, 0x6,0x5a,0x73, 0x4,0x42,0x2f, + 0x3,0x45,0x73, 0x4,0x4f,0x59, 0x3,0x45,0x72, 0x3,0x45,0x6f, + 0x3,0x45,0x77, 0x4,0x42,0x32, 0x4,0x48,0x7b, 0x3,0x4b,0x26, + 0x3,0x4b,0x25, 0x4,0x48,0x7d, 0x3,0x4b,0x24, 0x3,0x4b,0x28, + 0x3,0x4b,0x2a, 0x3,0x50,0x32, 0x4,0x4f,0x5d, 0x5,0x53,0x59, + 0x4,0x4f,0x5b, 0x3,0x54,0x3f, 0x3,0x57,0x53, 0x4,0x5a,0x67, + 0x4,0x5a,0x68, 0x4,0x5f,0x49, 0x4,0x63,0x2f, 0x3,0x5c,0x33, + 0x3,0x5c,0x31, 0x7,0x52,0x74, 0x7,0x57,0x4c, 0x4,0x6a,0x41, + 0x3,0x61,0x3c, 0x4,0x22,0x33, 0xf,0x26,0x5a, 0x4,0x2b,0x69, + 0x3,0x57,0x54, 0x3,0x21,0x76, 0x3,0x22,0x79, 0x3,0x24,0x55, + 0x5,0x23,0x37, 0x6,0x25,0x7b, 0x6,0x25,0x7d, 0x3,0x24,0x56, + 0x3,0x2b,0x38, 0x7,0x4d,0x3d, 0x3,0x2a,0x4c, 0x4,0x30,0x4c, + 0x5,0x31,0x26, 0x4,0x36,0x3d, 0x4,0x3c,0x32, 0x4,0x6a,0x42, + 0x3,0x2b,0x3a, 0x3,0x39,0x78, 0x4,0x49,0x22, 0x3,0x21,0x50, + 0x3,0x23,0x21, 0x3,0x24,0x58, 0x5,0x25,0x2e, 0x3,0x27,0x57, + 0x3,0x27,0x56, 0x3,0x27,0x58, 0x4,0x28,0x43, 0x3,0x2b,0x3c, + 0x3,0x2f,0x5d, 0x3,0x2f,0x5c, 0x4,0x30,0x4d, 0x3,0x39,0x7b, + 0x3,0x39,0x7c, 0x4,0x3c,0x34, 0x3,0x45,0x79, 0x5,0x31,0x29, + 0x4,0x21,0x61, 0x6,0x22,0x41, 0x3,0x21,0x7e, 0x4,0x22,0x3c, + 0x5,0x22,0x30, 0x4,0x23,0x3e, 0x4,0x23,0x3f, 0x4,0x25,0x4a, + 0x4,0x25,0x4c, 0x4,0x25,0x48, 0x4,0x25,0x47, 0x3,0x2b,0x41, + 0x3,0x2b,0x45, 0x3,0x2b,0x42, 0x5,0x2b,0x7c, 0x4,0x30,0x53, + 0x3,0x2f,0x67, 0x3,0x2f,0x69, 0x4,0x30,0x57, 0x4,0x30,0x58, + 0x4,0x30,0x52, 0x5,0x31,0x2c, 0x4,0x30,0x54, 0x4,0x30,0x59, + 0x3,0x3a,0x24, 0x6,0x50,0x6c, 0x4,0x36,0x42, 0x4,0x36,0x45, + 0x3,0x3a,0x22, 0x5,0x3d,0x70, 0x3,0x40,0x42, 0x4,0x42,0x41, + 0x4,0x42,0x43, 0x4,0x42,0x42, 0x4,0x42,0x3c, 0x3,0x45,0x7d, + 0x3,0x45,0x7b, 0x4,0x42,0x3f, 0x4,0x42,0x3e, 0x3,0x45,0x7c, + 0x4,0x49,0x23, 0x4,0x4f,0x62, 0x4,0x4f,0x61, 0x4,0x4f,0x63, + 0x5,0x61,0x3b, 0x4,0x55,0x6c, 0x7,0x3e,0x7d, 0x4,0x5f,0x4a, + 0x4,0x63,0x30, 0x4,0x21,0x64, 0x4,0x22,0x40, 0x4,0x23,0x44, + 0x3,0x24,0x64, 0x4,0x25,0x4f, 0x6,0x29,0x6f, 0x6,0x2f,0x27, + 0x4,0x2b,0x75, 0x3,0x2f,0x6b, 0x4,0x30,0x5a, 0x4,0x36,0x4b, + 0x3,0x46,0x22, 0x4,0x55,0x6f, 0x3,0x54,0x43, 0x4,0x55,0x70, + 0x5,0x53,0x63, 0x4,0x5a,0x6e, 0x4,0x30,0x5c, 0x4,0x36,0x4d, + 0x5,0x3d,0x78, 0x6,0x29,0x72, 0x3,0x34,0x53, 0x5,0x70,0x78, + 0x4,0x23,0x4b, 0x6,0x26,0x38, 0x4,0x2b,0x77, 0x3,0x3a,0x25, + 0x6,0x50,0x76, 0x4,0x3c,0x3e, 0x5,0x44,0x6c, 0x4,0x6d,0x53, + 0x6,0x26,0x36, 0x4,0x36,0x50, 0x3,0x21,0x58, 0x6,0x23,0x71, + 0x3,0x23,0x2c, 0x6,0x50,0x7a, 0x3,0x27,0x64, 0x4,0x21,0x2b, + 0x6,0x21,0x3b, 0x6,0x28,0x64, 0x4,0x25,0x56, 0x3,0x23,0x30, + 0x5,0x22,0x3c, 0x3,0x23,0x2e, 0x3,0x24,0x6a, 0x3,0x24,0x69, + 0x3,0x24,0x68, 0x3,0x27,0x68, 0x6,0x2a,0x2a, 0x3,0x2b,0x4c, + 0x3,0x2f,0x70, 0x4,0x2b,0x7a, 0x3,0x2f,0x71, 0x4,0x36,0x51, + 0x6,0x51,0x22, 0x5,0x4c,0x31, 0x3,0x46,0x24, 0x4,0x49,0x27, + 0x3,0x60,0x70, 0x3,0x21,0x5d, 0x3,0x2f,0x72, 0x6,0x3d,0x61, + 0x3,0x34,0x56, 0x4,0x49,0x29, 0x5,0x21,0x41, 0x3,0x21,0x5f, + 0x3,0x23,0x32, 0x4,0x25,0x5a, 0x4,0x28,0x57, 0x3,0x3f,0x78, + 0x3,0x46,0x27, 0x4,0x47,0x56, 0x4,0x21,0x6b, 0x3,0x22,0x30, + 0x3,0x22,0x2c, 0x3,0x23,0x38, 0x3,0x23,0x36, 0x3,0x24,0x6c, + 0x4,0x23,0x51, 0x3,0x24,0x6b, 0x3,0x24,0x71, 0x4,0x23,0x54, + 0x4,0x23,0x59, 0x3,0x24,0x72, 0x4,0x23,0x53, 0x3,0x24,0x6f, + 0x3,0x24,0x6e, 0x3,0x24,0x7a, 0xf,0x23,0x49, 0x3,0x25,0x25, + 0x3,0x27,0x7a, 0x3,0x27,0x6d, 0x4,0x25,0x5d, 0x3,0x27,0x76, + 0x5,0x25,0x42, 0x6,0x2a,0x39, 0x3,0x2b,0x52, 0x3,0x2b,0x60, + 0x3,0x2b,0x5f, 0x3,0x2b,0x62, 0x3,0x2b,0x5a, 0x4,0x28,0x59, + 0x4,0x28,0x5c, 0x3,0x2b,0x56, 0xf,0x29,0x5c, 0x4,0x2c,0x25, + 0x3,0x2f,0x7d, 0x4,0x2b,0x7e, 0x3,0x2f,0x75, 0x3,0x2f,0x7c, + 0x4,0x2c,0x21, 0x4,0x2b,0x7d, 0x6,0x35,0x7d, 0x3,0x30,0x24, + 0x5,0x2c,0x43, 0x3,0x34,0x5d, 0x3,0x34,0x65, 0x4,0x30,0x6a, + 0x5,0x36,0x70, 0x3,0x34,0x63, 0x3,0x34,0x5c, 0x4,0x30,0x70, + 0x3,0x34,0x5a, 0x4,0x30,0x73, 0x4,0x30,0x71, 0x4,0x30,0x6d, + 0x4,0x30,0x6c, 0xf,0x33,0x43, 0x3,0x38,0x53, 0x4,0x30,0x6f, + 0x5,0x36,0x76, 0x3,0x3a,0x32, 0x4,0x36,0x67, 0x3,0x3a,0x35, + 0x3,0x3a,0x2c, 0x4,0x36,0x5e, 0x4,0x36,0x59, 0x3,0x3a,0x39, + 0x3,0x3a,0x3e, 0x3,0x3a,0x2d, 0x4,0x36,0x60, 0x3,0x3a,0x3d, + 0x4,0x36,0x5f, 0x3,0x3a,0x37, 0x6,0x47,0x39, 0x5,0x36,0x79, + 0x5,0x36,0x7a, 0x3,0x3a,0x30, 0x4,0x36,0x58, 0x4,0x36,0x65, + 0x4,0x36,0x63, 0x3,0x3a,0x41, 0x5,0x36,0x6e, 0x3,0x3a,0x3f, + 0x3,0x3a,0x3a, 0x5,0x3e,0x39, 0x4,0x3c,0x4a, 0x4,0x3c,0x46, + 0x3,0x40,0x4f, 0x5,0x3e,0x3d, 0x4,0x3c,0x47, 0x4,0x3c,0x4c, + 0x3,0x40,0x4d, 0x3,0x40,0x50, 0x6,0x51,0x32, 0x4,0x42,0x52, + 0x3,0x46,0x32, 0x3,0x46,0x2f, 0x3,0x46,0x2d, 0x4,0x42,0x4f, + 0x4,0x42,0x4a, 0x4,0x42,0x55, 0x3,0x46,0x2b, 0x3,0x4b,0x3a, + 0x4,0x42,0x53, 0x4,0x42,0x56, 0x4,0x42,0x51, 0x5,0x45,0x22, + 0x4,0x49,0x30, 0x4,0x49,0x2c, 0x3,0x4b,0x42, 0x4,0x49,0x2d, + 0x3,0x4b,0x36, 0x7,0x21,0x4e, 0x4,0x4f,0x6b, 0x4,0x4f,0x6c, + 0x3,0x50,0x41, 0x4,0x4f,0x67, 0x4,0x4f,0x6a, 0x4,0x4f,0x6f, + 0x3,0x50,0x3c, 0x3,0x50,0x3a, 0x7,0x37,0x37, 0x4,0x55,0x72, + 0x3,0x54,0x46, 0x4,0x55,0x73, 0x4,0x4f,0x6d, 0x5,0x61,0x40, + 0x4,0x5a,0x70, 0x3,0x57,0x56, 0x5,0x61,0x45, 0x4,0x5f,0x4c, + 0x5,0x67,0x59, 0x5,0x6b,0x73, 0x3,0x5c,0x35, 0x3,0x5e,0x27, + 0x4,0x66,0x32, 0x3,0x60,0x2e, 0x3,0x60,0x2d, 0x4,0x6c,0x6c, + 0x7,0x62,0x2f, 0x3,0x22,0x32, 0x3,0x22,0x21, 0x3,0x23,0x3d, + 0x5,0x25,0x53, 0x3,0x27,0x7e, 0x3,0x2b,0x64, 0x3,0x30,0x26, + 0x4,0x42,0x58, 0x4,0x63,0x32, 0x3,0x22,0x33, 0x3,0x25,0x2e, + 0x4,0x23,0x5f, 0x3,0x25,0x39, 0x3,0x25,0x3a, 0x4,0x23,0x5e, + 0x3,0x25,0x3d, 0x3,0x25,0x3f, 0x3,0x25,0x3b, 0x3,0x25,0x34, + 0x3,0x28,0x27, 0x4,0x25,0x6d, 0x3,0x28,0x2b, 0x3,0x28,0x2c, + 0x3,0x2b,0x76, 0x6,0x2f,0x65, 0x3,0x2b,0x74, 0x3,0x2b,0x75, + 0x3,0x2b,0x73, 0x3,0x2b,0x6f, 0x3,0x30,0x29, 0x4,0x2c,0x2f, + 0x4,0x2c,0x31, 0x3,0x30,0x2d, 0x3,0x30,0x2c, 0x3,0x30,0x2e, + 0x3,0x30,0x31, 0x3,0x34,0x6c, 0x3,0x34,0x6d, 0x3,0x34,0x73, + 0x3,0x34,0x6a, 0xf,0x33,0x57, 0x4,0x31,0x21, 0x4,0x36,0x6b, + 0x3,0x3a,0x46, 0x4,0x36,0x6e, 0x3,0x3a,0x51, 0x6,0x47,0x4e, + 0x3,0x3a,0x48, 0x3,0x3a,0x4d, 0x4,0x3c,0x59, 0x4,0x3c,0x5b, + 0x3,0x40,0x53, 0x3,0x40,0x55, 0x4,0x3c,0x56, 0x4,0x3c,0x58, + 0x4,0x42,0x5e, 0x4,0x42,0x5d, 0x4,0x42,0x5b, 0x3,0x46,0x3b, + 0x4,0x42,0x5f, 0x3,0x46,0x39, 0x7,0x21,0x6a, 0x3,0x4b,0x52, + 0x3,0x4b,0x48, 0x4,0x49,0x33, 0x3,0x4b,0x4a, 0x3,0x4b,0x4e, + 0xf,0x4e,0x25, 0xf,0x4e,0x2e, 0x4,0x49,0x2a, 0x3,0x50,0x44, + 0x4,0x4f,0x78, 0x3,0x50,0x47, 0x3,0x50,0x42, 0x3,0x50,0x43, + 0x3,0x50,0x46, 0x3,0x50,0x45, 0x4,0x55,0x7c, 0x3,0x54,0x4d, + 0x3,0x54,0x4a, 0x4,0x55,0x7b, 0x7,0x3f,0x30, 0x3,0x57,0x5d, + 0x7,0x46,0x44, 0x5,0x6b,0x76, 0x3,0x60,0x72, 0x4,0x6c,0x6e, + 0x5,0x37,0x3c, 0x3,0x4d,0x41, 0x3,0x2b,0x78, 0x4,0x28,0x61, + 0x5,0x25,0x58, 0x4,0x36,0x77, 0x4,0x42,0x60, 0x3,0x46,0x47, + 0x4,0x5a,0x7a, 0x3,0x22,0x3a, 0x3,0x23,0x46, 0x3,0x23,0x48, + 0x4,0x23,0x65, 0x3,0x25,0x4a, 0x4,0x25,0x71, 0x5,0x25,0x59, + 0x4,0x25,0x77, 0x4,0x25,0x73, 0x4,0x25,0x78, 0x3,0x2b,0x7d, + 0x4,0x31,0x25, 0x6,0x3e,0x42, 0x3,0x34,0x7a, 0x3,0x3a,0x55, + 0x4,0x3c,0x5c, 0x3,0x50,0x3e, 0x3,0x21,0x74, 0x3,0x23,0x4c, + 0x3,0x23,0x4a, 0x4,0x22,0x56, 0x4,0x22,0x59, 0x4,0x22,0x55, + 0x3,0x23,0x49, 0x3,0x25,0x52, 0x3,0x25,0x57, 0x3,0x25,0x50, + 0x3,0x25,0x4f, 0x3,0x25,0x4d, 0x3,0x25,0x54, 0x3,0x28,0x31, + 0x3,0x28,0x3b, 0x4,0x25,0x7b, 0x3,0x28,0x42, 0x3,0x28,0x32, + 0x3,0x28,0x3a, 0x3,0x28,0x43, 0x3,0x28,0x47, 0x3,0x28,0x34, + 0x4,0x26,0x21, 0x3,0x28,0x44, 0x3,0x28,0x3e, 0x3,0x28,0x36, + 0x3,0x28,0x3c, 0x5,0x25,0x5d, 0x3,0x28,0x39, 0x3,0x28,0x30, + 0x4,0x28,0x6d, 0x4,0x28,0x69, 0x3,0x2b,0x7e, 0x3,0x2c,0x22, + 0xf,0x2a,0x2a, 0x4,0x28,0x67, 0x3,0x30,0x3f, 0x3,0x30,0x42, + 0x3,0x30,0x3d, 0x3,0x30,0x49, 0x3,0x30,0x47, 0x4,0x2c,0x3b, + 0x3,0x30,0x43, 0x3,0x30,0x50, 0x3,0x30,0x4c, 0x3,0x30,0x44, + 0x4,0x2c,0x3f, 0x4,0x2c,0x3a, 0x3,0x30,0x39, 0x4,0x2c,0x3c, + 0x3,0x30,0x51, 0x3,0x30,0x46, 0x3,0x30,0x41, 0x3,0x30,0x3a, + 0xf,0x2e,0x6b, 0xf,0x2e,0x78, 0x4,0x31,0x29, 0x3,0x35,0x26, + 0x3,0x35,0x2d, 0x3,0x35,0x21, 0x3,0x35,0x36, 0x4,0x31,0x28, + 0x3,0x35,0x2c, 0x3,0x35,0x23, 0x3,0x35,0x25, 0x3,0x3a,0x71, + 0x3,0x3a,0x67, 0x3,0x3a,0x74, 0x3,0x3a,0x64, 0x3,0x3a,0x76, + 0x3,0x3a,0x6c, 0x3,0x3a,0x6a, 0x3,0x3a,0x65, 0x5,0x37,0x4e, + 0x3,0x3a,0x6e, 0x5,0x37,0x46, 0x4,0x36,0x7e, 0x3,0x3a,0x6f, + 0x3,0x3a,0x5f, 0x4,0x36,0x7d, 0x3,0x3a,0x70, 0x3,0x3a,0x5d, + 0xf,0x3a,0x3c, 0x3,0x3a,0x6d, 0x3,0x3a,0x69, 0x3,0x3a,0x68, + 0x4,0x3c,0x5f, 0x3,0x40,0x62, 0x4,0x3c,0x61, 0x3,0x40,0x6e, + 0x3,0x40,0x6d, 0x3,0x40,0x68, 0x3,0x40,0x63, 0x4,0x3c,0x64, + 0x3,0x40,0x65, 0x4,0x3c,0x63, 0x3,0x40,0x70, 0x3,0x40,0x6b, + 0x3,0x40,0x6f, 0x3,0x40,0x6c, 0x3,0x40,0x69, 0x3,0x46,0x4b, + 0x4,0x42,0x67, 0x4,0x42,0x6c, 0x4,0x42,0x68, 0x4,0x42,0x66, + 0x3,0x46,0x49, 0x3,0x46,0x52, 0x3,0x46,0x51, 0x4,0x42,0x6b, + 0x4,0x42,0x6d, 0x3,0x46,0x4d, 0x3,0x46,0x4e, 0x4,0x42,0x69, + 0x4,0x49,0x3c, 0x4,0x49,0x3a, 0x3,0x4b,0x59, 0x3,0x4b,0x57, + 0x4,0x49,0x40, 0x3,0x4b,0x55, 0x3,0x50,0x52, 0x3,0x50,0x55, + 0x4,0x50,0x21, 0xf,0x54,0x2a, 0x4,0x56,0x22, 0x4,0x56,0x24, + 0x3,0x57,0x5f, 0x3,0x57,0x60, 0x4,0x5f,0x54, 0x5,0x67,0x5e, + 0x3,0x5a,0x30, 0x3,0x5a,0x32, 0x3,0x5c,0x37, 0x4,0x63,0x35, + 0x3,0x5c,0x38, 0x4,0x66,0x37, 0x4,0x68,0x65, 0x3,0x61,0x62, + 0x3,0x61,0x63, 0x3,0x23,0x4e, 0x6,0x26,0x78, 0x4,0x23,0x6d, + 0x3,0x28,0x49, 0x4,0x28,0x70, 0x4,0x2c,0x41, 0x3,0x30,0x54, + 0x3,0x3a,0x7d, 0x4,0x3c,0x67, 0x7,0x2d,0x2d, 0x3,0x61,0x3d, + 0x3,0x22,0x3c, 0x3,0x23,0x4f, 0x6,0x26,0x79, 0x3,0x25,0x59, + 0x4,0x23,0x70, 0x3,0x25,0x5b, 0x6,0x26,0x7a, 0x3,0x28,0x4f, + 0x5,0x28,0x6e, 0x3,0x2c,0x30, 0x3,0x2c,0x31, 0x3,0x2c,0x33, + 0x4,0x2c,0x42, 0x5,0x2c,0x7c, 0x6,0x36,0x5d, 0x3,0x35,0x42, + 0x3,0x35,0x3d, 0x3,0x35,0x3e, 0x4,0x31,0x2e, 0x6,0x3e,0x5a, + 0x3,0x35,0x40, 0x3,0x3b,0x21, 0x4,0x37,0x22, 0x4,0x3c,0x6a, + 0x4,0x3c,0x6c, 0x4,0x3c,0x6f, 0x3,0x40,0x77, 0x4,0x42,0x74, + 0x4,0x42,0x75, 0x3,0x4b,0x60, 0x4,0x42,0x77, 0x4,0x49,0x43, + 0x4,0x49,0x45, 0x4,0x49,0x46, 0x4,0x5a,0x7d, 0x3,0x5e,0x2b, + 0x7,0x62,0x35, 0x4,0x23,0x71, 0x4,0x26,0x26, 0x6,0x36,0x68, + 0x3,0x3b,0x22, 0x4,0x2c,0x4c, 0x6,0x3e,0x64, 0x4,0x42,0x78, + 0x5,0x4c,0x63, 0x4,0x22,0x5d, 0x4,0x23,0x74, 0x4,0x26,0x28, + 0x4,0x26,0x27, 0x4,0x28,0x74, 0x4,0x28,0x75, 0x4,0x2c,0x4d, + 0x5,0x31,0x75, 0x4,0x31,0x33, 0x5,0x31,0x73, 0x4,0x31,0x32, + 0x4,0x37,0x28, 0x4,0x37,0x29, 0x4,0x3c,0x71, 0x4,0x42,0x79, + 0x3,0x22,0x40, 0x3,0x23,0x53, 0x4,0x26,0x2a, 0x3,0x28,0x52, + 0x3,0x28,0x53, 0x4,0x28,0x79, 0x4,0x28,0x78, 0x3,0x2c,0x39, + 0x3,0x2c,0x38, 0x3,0x2c,0x36, 0x4,0x2c,0x4e, 0x6,0x3e,0x6b, + 0x3,0x35,0x45, 0x4,0x37,0x2b, 0x5,0x37,0x66, 0x4,0x42,0x7d, + 0x4,0x49,0x4a, 0x3,0x5a,0x37, 0x3,0x21,0x62, 0x4,0x23,0x77, + 0x3,0x22,0x42, 0x3,0x22,0x43, 0x3,0x22,0x41, 0x3,0x22,0x44, + 0x3,0x23,0x56, 0x4,0x22,0x61, 0x5,0x22,0x51, 0x4,0x23,0x7b, + 0x5,0x22,0x50, 0x3,0x23,0x57, 0x3,0x23,0x58, 0x4,0x23,0x78, + 0x4,0x23,0x79, 0x3,0x25,0x60, 0x5,0x23,0x70, 0x5,0x23,0x74, + 0x3,0x25,0x64, 0x3,0x25,0x65, 0x4,0x23,0x76, 0x3,0x28,0x5b, + 0x6,0x2a,0x7b, 0x4,0x26,0x31, 0x4,0x26,0x32, 0x4,0x26,0x2e, + 0x3,0x28,0x56, 0x6,0x2a,0x76, 0x3,0x28,0x59, 0x3,0x28,0x5a, + 0x5,0x25,0x6e, 0x3,0x2c,0x3a, 0x4,0x28,0x7b, 0x4,0x2c,0x5b, + 0x4,0x2c,0x53, 0x4,0x2c,0x51, 0x3,0x30,0x60, 0x4,0x2c,0x5f, + 0x4,0x2c,0x55, 0x3,0x30,0x5c, 0x4,0x2c,0x5a, 0x4,0x2c,0x5e, + 0x4,0x2c,0x57, 0x3,0x30,0x5d, 0x6,0x36,0x7c, 0x5,0x2d,0x2e, + 0x3,0x30,0x65, 0x4,0x2c,0x54, 0x3,0x35,0x56, 0x3,0x35,0x49, + 0x4,0x31,0x37, 0x3,0x35,0x4c, 0x4,0x31,0x3d, 0x6,0x3e,0x75, + 0x3,0x35,0x4d, 0x4,0x31,0x39, 0x6,0x3e,0x78, 0x3,0x35,0x50, + 0xf,0x34,0x3f, 0x3,0x35,0x53, 0x3,0x3b,0x2f, 0x3,0x3b,0x32, + 0x3,0x3b,0x29, 0x4,0x37,0x32, 0x4,0x37,0x34, 0x3,0x3b,0x35, + 0x4,0x3c,0x72, 0x3,0x3b,0x30, 0x3,0x3b,0x2c, 0x4,0x3c,0x76, + 0x4,0x3c,0x73, 0x4,0x3c,0x7e, 0x5,0x3e,0x6d, 0x4,0x3d,0x21, + 0x6,0x52,0x34, 0x3,0x40,0x7b, 0x4,0x3c,0x77, 0x4,0x43,0x22, + 0x6,0x5c,0x44, 0x4,0x43,0x2d, 0x4,0x43,0x2a, 0x4,0x43,0x21, + 0x3,0x46,0x55, 0x4,0x43,0x24, 0x3,0x46,0x5b, 0x3,0x46,0x58, + 0x4,0x43,0x2e, 0x3,0x46,0x57, 0x4,0x49,0x50, 0x4,0x49,0x4c, + 0x5,0x4c,0x6c, 0x3,0x4b,0x62, 0x5,0x4c,0x68, 0x4,0x49,0x4b, + 0x4,0x49,0x53, 0x3,0x4b,0x64, 0x4,0x49,0x4f, 0x4,0x49,0x4d, + 0x3,0x4b,0x61, 0x4,0x49,0x54, 0x4,0x50,0x26, 0x4,0x50,0x27, + 0x4,0x56,0x28, 0x4,0x50,0x25, 0x5,0x54,0x36, 0x3,0x50,0x59, + 0x7,0x2d,0x4c, 0x3,0x54,0x5a, 0x3,0x54,0x56, 0x5,0x5b,0x3c, + 0x4,0x56,0x27, 0x3,0x54,0x58, 0x7,0x3f,0x44, 0x4,0x5f,0x5a, + 0x5,0x67,0x63, 0x5,0x67,0x64, 0x4,0x66,0x3a, 0x3,0x5e,0x2c, + 0x4,0x68,0x68, 0x5,0x7b,0x3d, 0x3,0x23,0x5b, 0x6,0x21,0x6e, + 0x3,0x3b,0x38, 0x4,0x49,0x55, 0x3,0x22,0x45, 0x4,0x31,0x42, + 0x3,0x22,0x46, 0x4,0x22,0x65, 0x4,0x22,0x66, 0x3,0x23,0x5d, + 0x4,0x24,0x22, 0x4,0x24,0x24, 0x3,0x25,0x69, 0x4,0x24,0x21, + 0x3,0x25,0x6a, 0xf,0x24,0x25, 0x4,0x26,0x36, 0x4,0x26,0x37, + 0x4,0x29,0x25, 0x4,0x24,0x25, 0x4,0x29,0x22, 0x4,0x29,0x24, + 0x6,0x30,0x63, 0x3,0x2c,0x47, 0x4,0x29,0x23, 0x4,0x29,0x21, + 0x4,0x2c,0x66, 0x4,0x2c,0x68, 0x4,0x31,0x47, 0x4,0x31,0x48, + 0x4,0x31,0x45, 0x4,0x31,0x49, 0x3,0x35,0x5c, 0x4,0x37,0x3b, + 0x4,0x37,0x36, 0x4,0x37,0x3d, 0x4,0x37,0x3a, 0x3,0x3b,0x3c, + 0x4,0x37,0x3c, 0x3,0x3b,0x39, 0x4,0x37,0x39, 0x4,0x3d,0x28, + 0x4,0x3d,0x23, 0x4,0x3d,0x27, 0x4,0x3d,0x26, 0x4,0x3d,0x29, + 0x4,0x43,0x33, 0x4,0x43,0x32, 0x4,0x43,0x31, 0x4,0x43,0x2f, + 0x3,0x4b,0x6e, 0x3,0x4b,0x6f, 0x4,0x50,0x29, 0x4,0x56,0x2d, + 0x4,0x56,0x2b, 0x4,0x63,0x3b, 0x4,0x63,0x3a, 0x3,0x5f,0x44, + 0x4,0x68,0x6b, 0x6,0x48,0x44, 0x3,0x46,0x5e, 0x4,0x50,0x2b, + 0x3,0x23,0x60, 0x3,0x23,0x5f, 0x3,0x23,0x5e, 0x3,0x25,0x6c, + 0x6,0x27,0x47, 0x4,0x26,0x38, 0x4,0x26,0x3d, 0x4,0x26,0x3b, + 0x5,0x26,0x26, 0x4,0x26,0x3c, 0x3,0x28,0x64, 0x4,0x26,0x3a, + 0x3,0x28,0x66, 0xf,0x2f,0x38, 0x3,0x2c,0x49, 0x3,0x2c,0x4a, + 0x4,0x29,0x2a, 0x5,0x29,0x26, 0x4,0x29,0x29, 0x4,0x29,0x28, + 0x4,0x2c,0x6b, 0x4,0x2c,0x6d, 0x4,0x2c,0x6c, 0x3,0x30,0x6d, + 0x3,0x35,0x5e, 0x4,0x31,0x4e, 0x4,0x31,0x4c, 0x4,0x31,0x4f, + 0x3,0x35,0x5d, 0x5,0x38,0x29, 0x4,0x37,0x40, 0x4,0x37,0x41, + 0x3,0x3b,0x41, 0x5,0x3f,0x21, 0x4,0x43,0x36, 0x3,0x46,0x5f, + 0x4,0x43,0x39, 0x4,0x43,0x3a, 0x4,0x49,0x5b, 0x4,0x49,0x5c, + 0x3,0x4b,0x71, 0x3,0x50,0x5d, 0x4,0x50,0x2c, 0x4,0x50,0x2e, + 0x5,0x54,0x42, 0x4,0x5f,0x5e, 0x4,0x63,0x3c, 0x4,0x24,0x29, + 0x3,0x28,0x6a, 0x3,0x46,0x62, 0x7,0x2d,0x5b, 0x4,0x29,0x2b, + 0x4,0x3d,0x2d, 0x6,0x21,0x79, 0x4,0x22,0x6a, 0x3,0x23,0x63, + 0x3,0x23,0x64, 0x3,0x25,0x70, 0x3,0x28,0x6f, 0x4,0x26,0x40, + 0x4,0x26,0x41, 0x3,0x2c,0x4e, 0x4,0x29,0x2d, 0x6,0x30,0x7a, + 0x4,0x29,0x2e, 0x3,0x2c,0x4f, 0x4,0x2c,0x71, 0x5,0x32,0x46, + 0x4,0x31,0x51, 0x4,0x2c,0x72, 0x3,0x3b,0x46, 0x3,0x3b,0x43, + 0x5,0x3f,0x29, 0x4,0x3d,0x2f, 0x4,0x3d,0x2e, 0x6,0x52,0x4d, + 0x4,0x49,0x5d, 0x4,0x49,0x5f, 0x3,0x5e,0x2e, 0x4,0x26,0x42, + 0x4,0x50,0x31, 0x6,0x24,0x70, 0x3,0x28,0x73, 0x4,0x26,0x43, + 0x3,0x28,0x72, 0x3,0x35,0x64, 0x3,0x3b,0x48, 0x3,0x3b,0x49, + 0x4,0x43,0x3b, 0x4,0x49,0x61, 0x3,0x50,0x5f, 0x3,0x22,0x4b, + 0x6,0x2b,0x3e, 0x3,0x28,0x74, 0x4,0x29,0x32, 0x4,0x29,0x34, + 0x3,0x2c,0x52, 0x5,0x29,0x2f, 0x5,0x29,0x33, 0x3,0x2c,0x53, + 0x6,0x31,0x25, 0x5,0x2d,0x47, 0xf,0x2f,0x3e, 0x4,0x31,0x54, + 0x3,0x35,0x66, 0x3,0x35,0x67, 0x4,0x37,0x49, 0x3,0x3b,0x4a, + 0x4,0x37,0x48, 0x4,0x3d,0x33, 0x5,0x45,0x69, 0x4,0x43,0x3d, + 0x6,0x5c,0x67, 0x3,0x50,0x60, 0x4,0x50,0x34, 0x4,0x56,0x2f, + 0x6,0x21,0x7e, 0x3,0x23,0x65, 0x3,0x23,0x68, 0x4,0x24,0x31, + 0x5,0x22,0x67, 0x4,0x22,0x70, 0x3,0x28,0x7b, 0x3,0x28,0x7d, + 0x3,0x25,0x79, 0x4,0x24,0x2e, 0x3,0x28,0x7c, 0x4,0x24,0x30, + 0x4,0x24,0x33, 0x3,0x25,0x73, 0x4,0x24,0x2f, 0x4,0x24,0x32, + 0x3,0x26,0x24, 0x3,0x28,0x79, 0x4,0x29,0x35, 0x4,0x29,0x37, + 0x4,0x26,0x4d, 0x3,0x2c,0x59, 0x3,0x29,0x24, 0x4,0x26,0x48, + 0x3,0x29,0x23, 0x4,0x26,0x4e, 0x4,0x26,0x4c, 0x4,0x26,0x46, + 0xf,0x2a,0x3e, 0x3,0x2c,0x58, 0x4,0x29,0x41, 0x3,0x2c,0x62, + 0x4,0x29,0x3c, 0x4,0x26,0x49, 0x4,0x29,0x39, 0x3,0x30,0x7d, + 0x6,0x37,0x54, 0x4,0x29,0x3d, 0x5,0x29,0x35, 0x4,0x2d,0x28, + 0x4,0x29,0x48, 0x4,0x29,0x3a, 0x4,0x29,0x3b, 0x4,0x29,0x40, + 0x3,0x2c,0x55, 0x6,0x37,0x5a, 0x3,0x30,0x7c, 0x3,0x2c,0x5e, + 0x4,0x31,0x5b, 0x5,0x2d,0x5a, 0x3,0x35,0x73, 0x4,0x2d,0x22, + 0x3,0x35,0x69, 0x3,0x30,0x75, 0x4,0x2d,0x23, 0x3,0x35,0x70, + 0x4,0x2d,0x24, 0x3,0x30,0x77, 0x6,0x37,0x5e, 0x3,0x31,0x24, + 0x4,0x2d,0x2b, 0x4,0x31,0x5a, 0x4,0x31,0x5c, 0x4,0x31,0x62, + 0x3,0x35,0x6b, 0x6,0x48,0x6f, 0x4,0x31,0x63, 0x3,0x35,0x75, + 0x4,0x31,0x60, 0x5,0x32,0x5b, 0x4,0x31,0x5d, 0x3,0x35,0x6c, + 0x3,0x3b,0x4e, 0x4,0x31,0x6c, 0x4,0x31,0x67, 0x3,0x3b,0x4c, + 0x3,0x35,0x6d, 0x3,0x35,0x77, 0x3,0x3b,0x57, 0x4,0x31,0x64, + 0x6,0x48,0x75, 0x3,0x3b,0x53, 0x4,0x31,0x66, 0x4,0x31,0x5e, + 0x5,0x2d,0x57, 0x3,0x3b,0x52, 0x5,0x38,0x42, 0x4,0x31,0x6a, + 0x5,0x38,0x48, 0x4,0x37,0x56, 0x4,0x37,0x50, 0x3,0x3b,0x5c, + 0x4,0x37,0x59, 0x3,0x3b,0x5f, 0x4,0x37,0x54, 0x4,0x37,0x4e, + 0x5,0x3f,0x32, 0x3,0x41,0x25, 0x4,0x37,0x55, 0x4,0x3d,0x3e, + 0x3,0x3b,0x60, 0x4,0x3d,0x37, 0x5,0x32,0x58, 0x3,0x3b,0x5b, + 0x3,0x41,0x26, 0x3,0x41,0x2d, 0x4,0x3d,0x3b, 0x4,0x43,0x43, + 0x5,0x3f,0x42, 0x6,0x52,0x69, 0x3,0x46,0x67, 0x4,0x3d,0x3a, + 0x4,0x3d,0x3c, 0x3,0x41,0x30, 0x3,0x46,0x65, 0x4,0x43,0x42, + 0x4,0x43,0x50, 0x3,0x46,0x66, 0x3,0x41,0x2f, 0x4,0x43,0x48, + 0x4,0x43,0x47, 0x4,0x43,0x49, 0x3,0x4b,0x7d, 0x4,0x43,0x4d, + 0x4,0x49,0x65, 0x3,0x4c,0x22, 0x3,0x46,0x69, 0x3,0x4b,0x7b, + 0x4,0x43,0x4a, 0x4,0x43,0x4c, 0x4,0x43,0x46, 0x3,0x4c,0x27, + 0x3,0x4b,0x78, 0x4,0x43,0x4b, 0x4,0x50,0x38, 0x3,0x4c,0x2a, + 0x4,0x49,0x67, 0x4,0x49,0x69, 0x4,0x49,0x68, 0x4,0x49,0x6b, + 0x7,0x22,0x7c, 0x4,0x49,0x6d, 0x3,0x50,0x69, 0x4,0x49,0x6c, + 0x3,0x4c,0x26, 0x4,0x50,0x39, 0x5,0x5b,0x4c, 0x4,0x5b,0x23, + 0x4,0x5b,0x29, 0x4,0x56,0x36, 0x4,0x5b,0x25, 0x3,0x57,0x67, + 0x4,0x5b,0x24, 0xf,0x5a,0x29, 0x3,0x57,0x66, 0x4,0x50,0x3a, + 0x5,0x67,0x78, 0x4,0x63,0x43, 0x4,0x5f,0x64, 0x5,0x67,0x73, + 0x7,0x47,0x2c, 0x3,0x5e,0x30, 0x4,0x63,0x42, 0x4,0x63,0x40, + 0x3,0x5f,0x47, 0x4,0x68,0x6c, 0x3,0x61,0x78, 0x3,0x23,0x6a, + 0x3,0x26,0x26, 0x4,0x26,0x54, 0x6,0x2b,0x52, 0x4,0x2d,0x2f, + 0x4,0x2d,0x30, 0x5,0x2d,0x5d, 0x3,0x35,0x7a, 0x3,0x3b,0x65, + 0x4,0x3d,0x42, 0x4,0x43,0x54, 0x5,0x4d,0x37, 0x3,0x4c,0x2b, + 0x3,0x54,0x62, 0x6,0x27,0x6e, 0x4,0x26,0x55, 0x4,0x26,0x56, + 0x4,0x29,0x4d, 0x3,0x2c,0x64, 0x4,0x21,0x7b, 0x4,0x21,0x7a, + 0x3,0x22,0x4f, 0x4,0x22,0x74, 0x4,0x22,0x73, 0x4,0x22,0x75, + 0x4,0x24,0x3a, 0x4,0x24,0x36, 0x3,0x26,0x2c, 0x3,0x26,0x2d, + 0x3,0x26,0x30, 0x3,0x26,0x2b, 0x4,0x26,0x58, 0x3,0x29,0x2d, + 0x5,0x26,0x3a, 0x3,0x29,0x2c, 0x3,0x29,0x38, 0x4,0x29,0x55, + 0x4,0x2d,0x33, 0x4,0x26,0x59, 0x3,0x29,0x2b, 0xf,0x27,0x2e, + 0x4,0x29,0x4e, 0x4,0x29,0x54, 0x3,0x2c,0x66, 0x3,0x29,0x27, + 0x3,0x2c,0x67, 0x3,0x2c,0x69, 0x4,0x2d,0x3c, 0x3,0x2c,0x71, + 0x4,0x29,0x56, 0x3,0x2c,0x68, 0x4,0x29,0x52, 0x4,0x2d,0x32, + 0x4,0x2d,0x31, 0x3,0x2c,0x6a, 0x3,0x2c,0x65, 0x3,0x31,0x34, + 0x3,0x31,0x2a, 0x3,0x35,0x7b, 0x3,0x31,0x31, 0x3,0x31,0x3a, + 0x4,0x2d,0x3b, 0x3,0x31,0x2d, 0x3,0x31,0x2b, 0x4,0x31,0x7c, + 0x4,0x32,0x21, 0x4,0x31,0x7b, 0x3,0x36,0x2c, 0x6,0x40,0x32, + 0x4,0x32,0x25, 0x3,0x36,0x2f, 0x3,0x36,0x30, 0x4,0x31,0x79, + 0x3,0x35,0x7e, 0x4,0x31,0x71, 0x3,0x36,0x25, 0x4,0x31,0x7e, + 0x4,0x31,0x7a, 0x3,0x3b,0x6b, 0x3,0x36,0x2a, 0x4,0x37,0x6e, + 0x4,0x37,0x62, 0x3,0x36,0x21, 0x4,0x3d,0x45, 0x3,0x41,0x31, + 0x4,0x37,0x64, 0x3,0x3b,0x6a, 0x4,0x37,0x6b, 0x4,0x37,0x68, + 0x4,0x37,0x65, 0x3,0x3b,0x6c, 0x3,0x3b,0x69, 0x4,0x37,0x70, + 0x4,0x37,0x61, 0x3,0x3b,0x6e, 0x4,0x3d,0x50, 0x4,0x3d,0x4f, + 0x3,0x41,0x37, 0x4,0x3d,0x4c, 0x4,0x3d,0x4a, 0x3,0x41,0x35, + 0x3,0x41,0x3b, 0x4,0x3d,0x48, 0x4,0x3d,0x4e, 0x3,0x41,0x3c, + 0x3,0x41,0x4a, 0x3,0x41,0x43, 0x3,0x41,0x3f, 0x3,0x41,0x47, + 0x3,0x41,0x40, 0x3,0x41,0x46, 0x3,0x41,0x41, 0x3,0x41,0x39, + 0x4,0x43,0x58, 0x4,0x43,0x61, 0x6,0x5d,0x32, 0x3,0x46,0x79, + 0x3,0x47,0x2e, 0x3,0x47,0x2d, 0x4,0x43,0x56, 0x3,0x46,0x7c, + 0x3,0x47,0x27, 0x3,0x47,0x2f, 0x4,0x43,0x5c, 0x3,0x46,0x77, + 0x5,0x46,0x25, 0x3,0x46,0x7d, 0x4,0x49,0x75, 0x3,0x4c,0x36, + 0x4,0x43,0x64, 0x5,0x46,0x23, 0x3,0x47,0x2b, 0x3,0x47,0x2c, + 0x4,0x4a,0x24, 0x3,0x4c,0x33, 0x7,0x23,0x3a, 0x4,0x49,0x79, + 0x4,0x49,0x7a, 0x4,0x49,0x76, 0x4,0x4a,0x28, 0x4,0x4a,0x22, + 0x5,0x4d,0x3a, 0x4,0x49,0x7e, 0x5,0x4d,0x3e, 0x3,0x4c,0x3c, + 0x4,0x4a,0x23, 0x3,0x50,0x74, 0x4,0x56,0x39, 0x4,0x50,0x45, + 0x3,0x50,0x73, 0x3,0x50,0x6e, 0x3,0x50,0x78, 0x3,0x50,0x72, + 0x3,0x50,0x71, 0x3,0x54,0x65, 0x3,0x54,0x6a, 0x3,0x54,0x68, + 0x3,0x54,0x63, 0x3,0x54,0x66, 0x4,0x5b,0x2d, 0x3,0x57,0x69, + 0x4,0x5b,0x32, 0x4,0x5b,0x30, 0x4,0x5b,0x2e, 0x3,0x57,0x6f, + 0x3,0x57,0x71, 0x4,0x5b,0x31, 0x3,0x57,0x68, 0x4,0x5b,0x2f, + 0x3,0x57,0x72, 0xf,0x5e,0x73, 0x3,0x5a,0x3d, 0x3,0x5a,0x3e, + 0x4,0x63,0x47, 0x3,0x5c,0x40, 0x4,0x63,0x46, 0x5,0x70,0x24, + 0x3,0x5e,0x32, 0x4,0x66,0x40, 0x3,0x60,0x31, 0x4,0x6a,0x49, + 0x4,0x6a,0x48, 0x5,0x79,0x2a, 0x4,0x26,0x5b, 0x4,0x2d,0x40, + 0x4,0x2d,0x3f, 0x4,0x32,0x27, 0x4,0x3d,0x54, 0x4,0x24,0x40, + 0x3,0x26,0x3a, 0x4,0x26,0x5e, 0x4,0x26,0x5f, 0x4,0x29,0x5d, + 0x3,0x2c,0x75, 0x3,0x31,0x3e, 0x4,0x2d,0x42, 0x6,0x38,0x2b, + 0x3,0x36,0x33, 0x4,0x32,0x28, 0x3,0x36,0x35, 0x4,0x32,0x2c, + 0x4,0x37,0x79, 0x4,0x37,0x75, 0x4,0x37,0x78, 0x4,0x37,0x77, + 0x4,0x37,0x76, 0x5,0x38,0x7c, 0x3,0x3b,0x77, 0x4,0x3d,0x5c, + 0x4,0x3d,0x59, 0x4,0x3d,0x5b, 0x3,0x41,0x4c, 0x4,0x43,0x66, + 0x5,0x46,0x30, 0x5,0x46,0x2e, 0x4,0x43,0x69, 0x4,0x4a,0x2b, + 0x4,0x4a,0x2a, 0x4,0x4a,0x29, 0x4,0x50,0x49, 0x4,0x50,0x4c, + 0x3,0x57,0x73, 0x4,0x5b,0x3a, 0x4,0x63,0x4c, 0x4,0x66,0x43, + 0x3,0x26,0x3b, 0x6,0x38,0x2c, 0x3,0x41,0x4f, 0x3,0x29,0x3a, + 0x4,0x29,0x61, 0x3,0x31,0x41, 0x3,0x39,0x2b, 0x3,0x3b,0x78, + 0x4,0x4a,0x2e, 0x4,0x56,0x3e, 0x4,0x6a,0x4b, 0x4,0x29,0x62, + 0x4,0x2d,0x49, 0x6,0x38,0x30, 0x6,0x49,0x61, 0x6,0x5d,0x51, + 0x5,0x4d,0x4b, 0x3,0x23,0x71, 0x6,0x2b,0x70, 0x6,0x38,0x34, + 0x3,0x36,0x3b, 0x3,0x36,0x3e, 0x4,0x3d,0x65, 0x4,0x4a,0x30, + 0x4,0x4a,0x31, 0x4,0x22,0x78, 0x4,0x22,0x79, 0x4,0x24,0x43, + 0x3,0x26,0x3c, 0x3,0x26,0x3f, 0x3,0x26,0x3e, 0x3,0x26,0x40, + 0x3,0x29,0x3f, 0x3,0x29,0x3d, 0x4,0x26,0x63, 0x5,0x29,0x4f, + 0x4,0x29,0x63, 0x3,0x2c,0x7b, 0x4,0x29,0x64, 0x4,0x29,0x65, + 0x3,0x2c,0x78, 0x3,0x2d,0x26, 0x6,0x31,0x67, 0x4,0x2d,0x4c, + 0x4,0x32,0x3b, 0x4,0x2d,0x4b, 0x3,0x31,0x47, 0x6,0x38,0x37, + 0x3,0x31,0x4a, 0xf,0x2f,0x6e, 0x4,0x2d,0x4d, 0x6,0x40,0x51, + 0x4,0x32,0x36, 0x4,0x32,0x3a, 0x4,0x32,0x37, 0x3,0x36,0x43, + 0x6,0x40,0x4f, 0x3,0x3c,0x22, 0x4,0x37,0x7e, 0x3,0x3b,0x7a, + 0x3,0x3b,0x7b, 0x4,0x38,0x25, 0x3,0x3c,0x27, 0x4,0x38,0x22, + 0x6,0x49,0x73, 0x3,0x3c,0x21, 0x6,0x53,0x3d, 0x5,0x3f,0x62, + 0x3,0x41,0x52, 0x3,0x41,0x57, 0x3,0x41,0x5a, 0x3,0x41,0x55, + 0x3,0x41,0x53, 0x3,0x41,0x5c, 0x3,0x41,0x58, 0x4,0x3d,0x68, + 0x4,0x3d,0x67, 0x3,0x41,0x54, 0x3,0x47,0x38, 0x4,0x43,0x6e, + 0x3,0x47,0x32, 0x3,0x47,0x36, 0x5,0x4d,0x53, 0x4,0x4a,0x32, + 0x3,0x4c,0x42, 0x3,0x4c,0x45, 0x4,0x50,0x52, 0x4,0x50,0x51, + 0x3,0x51,0x21, 0x5,0x4d,0x50, 0x3,0x50,0x7b, 0x3,0x50,0x7c, + 0x4,0x50,0x53, 0x7,0x2e,0x5a, 0x3,0x54,0x73, 0x3,0x54,0x6e, + 0x4,0x56,0x40, 0x4,0x5b,0x40, 0x4,0x5b,0x41, 0x4,0x5b,0x3f, + 0x7,0x3f,0x76, 0x3,0x5a,0x40, 0x3,0x5a,0x41, 0x3,0x5c,0x44, + 0x3,0x5f,0x4c, 0x3,0x5f,0x4d, 0x5,0x75,0x6e, 0x5,0x75,0x6d, + 0x3,0x23,0x74, 0x4,0x50,0x56, 0x3,0x54,0x74, 0x3,0x29,0x44, + 0x3,0x31,0x4e, 0x5,0x2e,0x25, 0x3,0x36,0x49, 0x3,0x3c,0x28, + 0x4,0x3a,0x43, 0x5,0x46,0x45, 0x5,0x4d,0x58, 0x3,0x51,0x25, + 0x3,0x23,0x76, 0x3,0x26,0x43, 0x4,0x24,0x48, 0x3,0x26,0x46, + 0x3,0x29,0x4b, 0x3,0x29,0x46, 0xf,0x27,0x4c, 0x3,0x29,0x50, + 0x3,0x29,0x4d, 0x5,0x26,0x51, 0x3,0x2d,0x28, 0x3,0x2d,0x2c, + 0x4,0x29,0x6f, 0x4,0x29,0x6c, 0x3,0x2d,0x29, 0x4,0x2d,0x57, + 0x4,0x2d,0x51, 0x4,0x2d,0x54, 0x4,0x2d,0x58, 0x3,0x31,0x52, + 0x5,0x2e,0x2b, 0x4,0x2d,0x52, 0x4,0x2d,0x5b, 0x3,0x31,0x55, + 0x4,0x2d,0x56, 0x3,0x31,0x51, 0x3,0x36,0x59, 0x4,0x32,0x43, + 0x3,0x36,0x4a, 0x3,0x36,0x4f, 0x5,0x32,0x79, 0x4,0x32,0x42, + 0x4,0x32,0x46, 0x4,0x32,0x41, 0x4,0x38,0x34, 0x3,0x36,0x58, + 0x3,0x36,0x5d, 0x4,0x38,0x2f, 0x3,0x3c,0x2e, 0x4,0x38,0x2c, + 0x3,0x3c,0x3f, 0x3,0x3c,0x30, 0x4,0x38,0x2a, 0x5,0x39,0x33, + 0x4,0x38,0x2d, 0x3,0x3c,0x2c, 0x5,0x39,0x39, 0x4,0x38,0x35, + 0x3,0x3c,0x35, 0x4,0x38,0x37, 0x3,0x3c,0x36, 0x3,0x3c,0x43, + 0x3,0x3c,0x2b, 0x3,0x3c,0x2d, 0x4,0x3d,0x78, 0x3,0x41,0x71, + 0x3,0x41,0x66, 0x3,0x41,0x70, 0x4,0x3d,0x6b, 0x4,0x3d,0x6e, + 0x4,0x3d,0x6f, 0x3,0x41,0x6c, 0x3,0x41,0x69, 0x3,0x41,0x64, + 0x4,0x3d,0x6d, 0x3,0x41,0x5e, 0x4,0x3d,0x75, 0x3,0x41,0x62, + 0x3,0x41,0x63, 0x3,0x41,0x7a, 0x3,0x41,0x61, 0x3,0x41,0x5f, + 0x4,0x44,0x23, 0x4,0x3d,0x76, 0x3,0x41,0x60, 0x3,0x42,0x5a, + 0x3,0x41,0x67, 0xf,0x48,0x55, 0x4,0x44,0x24, 0x4,0x43,0x75, + 0x4,0x44,0x21, 0x4,0x43,0x7c, 0x3,0x47,0x3f, 0x4,0x43,0x78, + 0x4,0x43,0x73, 0x3,0x47,0x41, 0x4,0x43,0x74, 0x3,0x47,0x4a, + 0x4,0x43,0x7d, 0x4,0x43,0x7e, 0x4,0x43,0x7a, 0x4,0x44,0x22, + 0x3,0x47,0x4f, 0x3,0x47,0x40, 0x4,0x44,0x25, 0x4,0x43,0x71, + 0x5,0x46,0x4b, 0x3,0x47,0x49, 0x4,0x3d,0x72, 0x3,0x47,0x50, + 0xf,0x48,0x52, 0x3,0x4c,0x4e, 0x5,0x4d,0x6d, 0x4,0x4a,0x3a, + 0x3,0x4c,0x4c, 0x5,0x4d,0x61, 0x3,0x4c,0x53, 0x4,0x4a,0x37, + 0x4,0x4a,0x36, 0x3,0x4c,0x5d, 0x3,0x4c,0x58, 0x7,0x23,0x6f, + 0x4,0x4a,0x38, 0x4,0x4a,0x42, 0x3,0x4c,0x5a, 0x3,0x4c,0x5c, + 0x3,0x4c,0x48, 0x3,0x4c,0x55, 0x3,0x51,0x43, 0x3,0x51,0x42, + 0x4,0x50,0x60, 0x4,0x50,0x5a, 0x3,0x51,0x37, 0x3,0x51,0x30, + 0x4,0x50,0x59, 0x4,0x4a,0x39, 0x3,0x51,0x3f, 0x3,0x51,0x2a, + 0x3,0x51,0x3d, 0x4,0x56,0x49, 0x3,0x51,0x33, 0x3,0x51,0x39, + 0x3,0x4c,0x4b, 0x4,0x50,0x5e, 0x3,0x51,0x2d, 0x4,0x50,0x64, + 0x3,0x51,0x35, 0x3,0x51,0x34, 0x3,0x51,0x36, 0x3,0x55,0x22, + 0x4,0x56,0x48, 0x3,0x54,0x7e, 0x3,0x55,0x25, 0x3,0x54,0x7d, + 0x4,0x56,0x4b, 0x7,0x38,0x55, 0x5,0x5b,0x68, 0x3,0x54,0x77, + 0x3,0x55,0x26, 0xf,0x5f,0x29, 0x3,0x54,0x79, 0x3,0x55,0x28, + 0x4,0x5b,0x48, 0x4,0x5b,0x44, 0x3,0x57,0x7c, 0x4,0x5b,0x4a, + 0x4,0x5b,0x49, 0x4,0x5f,0x6f, 0x4,0x5f,0x73, 0x3,0x5a,0x49, + 0x4,0x5f,0x70, 0x4,0x5f,0x6e, 0x4,0x5f,0x72, 0x4,0x5f,0x75, + 0x3,0x5a,0x4c, 0x3,0x5a,0x4b, 0xf,0x62,0x53, 0x3,0x5a,0x4a, + 0x3,0x5c,0x4c, 0x3,0x5c,0x46, 0x4,0x63,0x51, 0x4,0x63,0x4f, + 0x3,0x5c,0x48, 0x3,0x5c,0x4d, 0x4,0x63,0x54, 0x3,0x5c,0x4b, + 0x3,0x5c,0x45, 0xf,0x65,0x3e, 0x5,0x70,0x27, 0x3,0x5e,0x36, + 0x3,0x5c,0x4a, 0x3,0x5f,0x50, 0x4,0x68,0x6e, 0x3,0x60,0x35, + 0x3,0x60,0x33, 0x3,0x60,0x34, 0x5,0x24,0x48, 0x6,0x28,0x30, + 0x4,0x26,0x6d, 0x5,0x26,0x56, 0x4,0x26,0x70, 0x4,0x26,0x6c, + 0x4,0x2d,0x60, 0x4,0x29,0x70, 0x4,0x29,0x71, 0x6,0x31,0x78, + 0x4,0x29,0x74, 0x4,0x29,0x73, 0x5,0x2e,0x2e, 0x4,0x2d,0x5d, + 0x4,0x2d,0x61, 0x4,0x2d,0x62, 0x4,0x2d,0x5e, 0x3,0x36,0x61, + 0x4,0x32,0x48, 0x4,0x32,0x49, 0x6,0x40,0x6e, 0x4,0x38,0x3b, + 0x4,0x38,0x39, 0x3,0x3c,0x46, 0x5,0x39,0x43, 0x4,0x38,0x3c, + 0x6,0x38,0x64, 0x4,0x3e,0x21, 0x4,0x3d,0x7c, 0x4,0x3d,0x7b, + 0x4,0x3d,0x7d, 0x4,0x3d,0x7e, 0x4,0x3e,0x22, 0x3,0x47,0x52, + 0x6,0x5d,0x77, 0x4,0x44,0x2a, 0x4,0x4a,0x4c, 0x3,0x4c,0x68, + 0x4,0x50,0x66, 0x4,0x50,0x67, 0x4,0x56,0x4f, 0x4,0x56,0x4e, + 0x3,0x55,0x2a, 0x3,0x55,0x2c, 0x4,0x5f,0x77, 0x7,0x4e,0x22, + 0x4,0x68,0x71, 0x5,0x75,0x77, 0x5,0x79,0x2f, 0x6,0x25,0x25, + 0x3,0x2d,0x3e, 0x3,0x2b,0x7b, 0x3,0x3c,0x48, 0x4,0x38,0x3f, + 0x5,0x46,0x5f, 0x3,0x58,0x24, 0x4,0x22,0x7c, 0x3,0x29,0x57, + 0x5,0x26,0x62, 0x4,0x26,0x75, 0x3,0x2d,0x3f, 0x3,0x2d,0x41, + 0x3,0x2d,0x40, 0x3,0x31,0x69, 0x3,0x36,0x63, 0x4,0x32,0x4a, + 0x4,0x38,0x45, 0x4,0x38,0x44, 0x4,0x38,0x46, 0x4,0x38,0x42, + 0x3,0x3c,0x4a, 0x3,0x42,0x23, 0x4,0x3e,0x23, 0x4,0x3e,0x24, + 0x3,0x42,0x24, 0x4,0x44,0x32, 0x5,0x46,0x60, 0x4,0x44,0x33, + 0x4,0x44,0x30, 0x4,0x4a,0x50, 0x4,0x4a,0x4f, 0x4,0x50,0x6b, + 0x4,0x50,0x6a, 0x4,0x56,0x51, 0x4,0x63,0x55, 0x3,0x5c,0x4e, + 0x5,0x75,0x78, 0x5,0x24,0x4e, 0x4,0x26,0x78, 0x4,0x2d,0x64, + 0x3,0x31,0x6b, 0x4,0x32,0x4f, 0x4,0x38,0x49, 0x4,0x38,0x4a, + 0x4,0x38,0x4b, 0x3,0x42,0x25, 0x4,0x44,0x35, 0x3,0x51,0x47, + 0x3,0x51,0x48, 0x4,0x50,0x6e, 0x4,0x56,0x53, 0x3,0x58,0x25, + 0x4,0x29,0x7b, 0x3,0x23,0x7b, 0x4,0x26,0x79, 0x3,0x29,0x5b, + 0x4,0x26,0x7a, 0xf,0x27,0x5b, 0x3,0x2d,0x43, 0x4,0x2d,0x66, + 0x4,0x32,0x52, 0x4,0x32,0x54, 0x4,0x32,0x53, 0x4,0x32,0x55, + 0x3,0x36,0x67, 0x4,0x2d,0x67, 0x4,0x32,0x51, 0x5,0x39,0x5b, + 0x3,0x3c,0x4c, 0x4,0x38,0x4f, 0x4,0x38,0x4c, 0x4,0x3e,0x29, + 0x3,0x42,0x27, 0x4,0x3e,0x28, 0x4,0x3e,0x27, 0x4,0x44,0x3f, + 0x4,0x44,0x38, 0x4,0x44,0x39, 0x4,0x44,0x3a, 0x5,0x46,0x68, + 0x4,0x44,0x3c, 0x4,0x50,0x6f, 0x4,0x50,0x71, 0x4,0x50,0x72, + 0x3,0x51,0x49, 0x4,0x5b,0x50, 0x4,0x5b,0x4f, 0x3,0x5a,0x50, + 0x4,0x6d,0x57, 0x4,0x2d,0x6a, 0x3,0x29,0x5c, 0x3,0x36,0x68, + 0x3,0x4c,0x69, 0x3,0x51,0x4a, 0x4,0x21,0x4f, 0x3,0x22,0x56, + 0x3,0x22,0x55, 0x3,0x24,0x22, 0x5,0x21,0x74, 0x4,0x23,0x22, + 0x3,0x26,0x54, 0x3,0x26,0x4f, 0x4,0x24,0x4f, 0x3,0x26,0x5d, + 0x6,0x28,0x49, 0x3,0x26,0x5a, 0x4,0x24,0x51, 0x3,0x26,0x4b, + 0x6,0x28,0x4a, 0x6,0x28,0x44, 0x3,0x26,0x58, 0x3,0x29,0x61, + 0x3,0x29,0x5f, 0x3,0x29,0x5e, 0x3,0x29,0x62, 0x3,0x29,0x60, + 0x4,0x26,0x7e, 0x3,0x29,0x68, 0x3,0x29,0x66, 0xf,0x27,0x66, + 0x3,0x2d,0x44, 0x5,0x2a,0x24, 0x4,0x27,0x22, 0x3,0x2d,0x54, + 0x5,0x29,0x7b, 0x5,0x29,0x7c, 0x4,0x29,0x7e, 0x3,0x2d,0x56, + 0x3,0x2d,0x4c, 0xf,0x30,0x49, 0x6,0x38,0x72, 0x3,0x31,0x70, + 0x3,0x31,0x71, 0x4,0x2d,0x6b, 0x6,0x39,0x33, 0x3,0x31,0x74, + 0x4,0x2d,0x6c, 0x3,0x36,0x69, 0x3,0x32,0x24, 0x3,0x32,0x23, + 0x3,0x31,0x7e, 0x3,0x31,0x75, 0x4,0x32,0x57, 0x3,0x36,0x71, + 0x4,0x32,0x63, 0x4,0x32,0x64, 0x3,0x36,0x6e, 0x4,0x32,0x5e, + 0x3,0x37,0x22, 0x3,0x36,0x6d, 0x3,0x3c,0x4f, 0x3,0x36,0x7e, + 0x4,0x32,0x58, 0x4,0x32,0x68, 0x5,0x39,0x5e, 0x4,0x32,0x5a, + 0x4,0x32,0x5c, 0x6,0x41,0x2b, 0x5,0x33,0x3d, 0x3,0x3c,0x5e, + 0x3,0x36,0x7b, 0x3,0x3c,0x5f, 0x3,0x36,0x73, 0x6,0x41,0x41, + 0x3,0x36,0x78, 0xf,0x36,0x33, 0x4,0x38,0x51, 0x4,0x38,0x56, + 0x3,0x3c,0x65, 0x4,0x38,0x52, 0x3,0x3c,0x59, 0x4,0x38,0x59, + 0x3,0x3c,0x6a, 0x3,0x3c,0x67, 0x3,0x3c,0x55, 0x4,0x38,0x57, + 0x4,0x38,0x5a, 0x3,0x3c,0x53, 0x3,0x3c,0x57, 0x3,0x3c,0x61, + 0x3,0x42,0x2b, 0x6,0x4a,0x6d, 0xf,0x3c,0x43, 0xf,0x3c,0x5a, + 0x4,0x3e,0x37, 0x3,0x42,0x2c, 0x3,0x42,0x37, 0x3,0x42,0x35, + 0x3,0x42,0x48, 0x3,0x42,0x38, 0x4,0x3e,0x30, 0x4,0x3e,0x39, + 0x4,0x3e,0x2d, 0x3,0x42,0x42, 0x4,0x3e,0x38, 0x3,0x42,0x34, + 0x3,0x42,0x3c, 0x4,0x3e,0x3c, 0x3,0x42,0x2f, 0x3,0x42,0x41, + 0x5,0x40,0x27, 0x4,0x3e,0x2f, 0x4,0x3e,0x32, 0x3,0x42,0x32, + 0x3,0x42,0x43, 0x3,0x47,0x55, 0x4,0x44,0x49, 0x3,0x47,0x60, + 0x6,0x5e,0x3b, 0x3,0x47,0x59, 0x6,0x54,0x50, 0x3,0x47,0x58, + 0x4,0x44,0x46, 0x4,0x44,0x4d, 0x4,0x44,0x4a, 0x6,0x5e,0x40, + 0x3,0x4c,0x6e, 0x4,0x4a,0x5f, 0x4,0x4a,0x61, 0x3,0x4c,0x6f, + 0x3,0x4c,0x7c, 0x4,0x4a,0x68, 0x4,0x4a,0x5d, 0x3,0x4c,0x6d, + 0x4,0x4a,0x59, 0x3,0x4c,0x72, 0x5,0x46,0x78, 0x7,0x24,0x61, + 0x3,0x4c,0x70, 0x4,0x50,0x74, 0x3,0x51,0x4b, 0x3,0x4c,0x76, + 0x4,0x50,0x77, 0x4,0x50,0x7d, 0x5,0x55,0x36, 0x4,0x50,0x76, + 0x3,0x51,0x4f, 0x3,0x51,0x4e, 0x4,0x50,0x7a, 0x5,0x55,0x2d, + 0x3,0x51,0x53, 0x3,0x51,0x57, 0x4,0x50,0x7b, 0x4,0x56,0x56, + 0x3,0x51,0x51, 0x3,0x51,0x4c, 0x4,0x50,0x78, 0x3,0x51,0x52, + 0x4,0x4a,0x62, 0x5,0x55,0x2e, 0x3,0x55,0x32, 0x3,0x55,0x38, + 0x4,0x56,0x5e, 0x4,0x56,0x60, 0x3,0x55,0x34, 0x4,0x56,0x58, + 0x3,0x55,0x2e, 0x4,0x56,0x57, 0x4,0x56,0x5c, 0x3,0x55,0x3b, + 0x4,0x56,0x59, 0x4,0x56,0x5b, 0x3,0x55,0x33, 0x4,0x5b,0x56, + 0x4,0x5b,0x54, 0x4,0x5b,0x5a, 0x4,0x5b,0x57, 0x4,0x5b,0x60, + 0x4,0x5f,0x7b, 0x4,0x5f,0x7d, 0x4,0x5b,0x5b, 0x4,0x5f,0x79, + 0x3,0x5a,0x51, 0x3,0x5c,0x50, 0x4,0x63,0x5a, 0x4,0x63,0x5e, + 0x4,0x63,0x5b, 0x3,0x5c,0x52, 0x4,0x66,0x49, 0x5,0x70,0x3e, + 0x4,0x66,0x4a, 0x4,0x66,0x4c, 0x4,0x68,0x73, 0x3,0x5e,0x39, + 0x3,0x5e,0x38, 0x3,0x5f,0x51, 0x4,0x6a,0x4e, 0x3,0x60,0x38, + 0x4,0x6b,0x6d, 0x4,0x6b,0x6e, 0x3,0x61,0x66, 0x3,0x24,0x2a, + 0x4,0x24,0x52, 0x3,0x26,0x61, 0xf,0x24,0x6e, 0x3,0x29,0x6e, + 0x4,0x27,0x27, 0x3,0x29,0x78, 0xf,0x27,0x6e, 0x3,0x29,0x73, + 0x3,0x2d,0x67, 0x3,0x2d,0x59, 0x3,0x2d,0x66, 0x3,0x2d,0x61, + 0x3,0x2d,0x60, 0x3,0x2d,0x5b, 0x4,0x2a,0x27, 0x3,0x32,0x2e, + 0x4,0x2d,0x73, 0x3,0x32,0x32, 0x3,0x37,0x2b, 0x3,0x37,0x2a, + 0x3,0x37,0x34, 0x4,0x32,0x71, 0x4,0x32,0x76, 0x4,0x32,0x70, + 0x4,0x32,0x77, 0xf,0x36,0x48, 0x3,0x3c,0x76, 0x4,0x38,0x65, + 0x4,0x38,0x61, 0x3,0x3c,0x75, 0x4,0x38,0x62, 0x4,0x38,0x64, + 0x4,0x38,0x60, 0x3,0x3b,0x23, 0x3,0x3c,0x7e, 0x3,0x3c,0x70, + 0x3,0x3c,0x78, 0x3,0x42,0x54, 0x3,0x42,0x4d, 0x3,0x42,0x56, + 0x4,0x3e,0x4b, 0x3,0x42,0x4a, 0x3,0x42,0x55, 0x4,0x3e,0x48, + 0x4,0x3e,0x46, 0x4,0x3e,0x49, 0x6,0x54,0x54, 0x3,0x42,0x4b, + 0x3,0x42,0x50, 0xf,0x42,0x78, 0xf,0x43,0x3c, 0x4,0x44,0x59, + 0x3,0x47,0x73, 0x3,0x47,0x69, 0x6,0x54,0x67, 0x4,0x44,0x56, + 0x4,0x44,0x5a, 0x4,0x44,0x5c, 0x3,0x47,0x71, 0xf,0x49,0x58, + 0x3,0x4d,0x26, 0x3,0x4d,0x23, 0x3,0x4d,0x2b, 0x3,0x4d,0x21, + 0x3,0x4d,0x27, 0x4,0x4a,0x6a, 0x4,0x51,0x25, 0x3,0x51,0x5d, + 0x3,0x51,0x5b, 0x4,0x51,0x2b, 0x3,0x51,0x5f, 0x3,0x51,0x61, + 0x4,0x51,0x24, 0x3,0x51,0x64, 0x3,0x51,0x65, 0x3,0x55,0x3d, + 0x4,0x56,0x62, 0x3,0x55,0x3f, 0x3,0x55,0x44, 0x7,0x39,0x26, + 0x3,0x57,0x51, 0x3,0x58,0x2c, 0x4,0x56,0x64, 0x3,0x5c,0x5a, + 0x3,0x5a,0x59, 0x3,0x5c,0x54, 0x3,0x5c,0x5b, 0x4,0x63,0x5f, + 0x4,0x66,0x4e, 0x5,0x73,0x57, 0x4,0x6a,0x50, 0x3,0x60,0x3a, + 0x3,0x61,0x7a, 0x4,0x27,0x2c, 0x3,0x29,0x7a, 0x3,0x37,0x58, + 0x3,0x47,0x74, 0x3,0x2d,0x6a, 0x4,0x2d,0x76, 0x3,0x37,0x36, + 0x4,0x38,0x6b, 0x3,0x29,0x7b, 0x4,0x2a,0x2c, 0x4,0x38,0x6c, + 0x3,0x29,0x7d, 0x3,0x29,0x7e, 0x5,0x2e,0x53, 0x6,0x39,0x40, + 0x4,0x2d,0x7a, 0x4,0x44,0x5f, 0x7,0x39,0x2d, 0x4,0x5b,0x64, + 0x4,0x66,0x50, 0x3,0x21,0x6a, 0x3,0x32,0x33, 0x4,0x23,0x26, + 0x3,0x26,0x65, 0x4,0x24,0x55, 0x6,0x2c,0x71, 0x4,0x27,0x33, + 0x5,0x26,0x77, 0x4,0x27,0x32, 0x4,0x27,0x2f, 0x3,0x2d,0x6c, + 0x3,0x2d,0x6f, 0x4,0x2a,0x2e, 0x3,0x2d,0x6e, 0x3,0x32,0x34, + 0x3,0x32,0x35, 0x4,0x2d,0x7d, 0x4,0x2d,0x7c, 0x4,0x32,0x7a, + 0x5,0x33,0x4d, 0x4,0x32,0x79, 0x4,0x32,0x7e, 0x3,0x37,0x38, + 0x6,0x41,0x66, 0x3,0x37,0x37, 0x4,0x38,0x70, 0x4,0x38,0x72, + 0x4,0x38,0x73, 0x4,0x44,0x63, 0x6,0x54,0x78, 0x4,0x3e,0x4e, + 0x3,0x42,0x5e, 0x4,0x44,0x62, 0x4,0x44,0x60, 0x4,0x44,0x64, + 0x4,0x4a,0x6f, 0x4,0x4a,0x6e, 0x4,0x4a,0x72, 0x4,0x4a,0x71, + 0x4,0x4a,0x73, 0x4,0x51,0x2e, 0x4,0x51,0x30, 0x4,0x51,0x2f, + 0x4,0x56,0x67, 0x3,0x55,0x46, 0x3,0x55,0x47, 0x4,0x5b,0x66, + 0x4,0x5b,0x65, 0x4,0x60,0x24, 0x7,0x53,0x6b, 0x4,0x6a,0x51, + 0x4,0x27,0x34, 0x4,0x24,0x59, 0x3,0x26,0x6d, 0x4,0x24,0x56, + 0x3,0x26,0x6c, 0x6,0x2c,0x75, 0x4,0x27,0x39, 0x5,0x27,0x2e, + 0x3,0x2a,0x29, 0x3,0x2a,0x24, 0x3,0x2a,0x25, 0x4,0x27,0x3a, + 0x4,0x2a,0x32, 0x4,0x2a,0x34, 0x4,0x2a,0x35, 0x3,0x2d,0x72, + 0x6,0x32,0x67, 0x3,0x32,0x37, 0x5,0x2e,0x5c, 0x4,0x2e,0x21, + 0x4,0x2d,0x7e, 0x4,0x2e,0x22, 0x4,0x2e,0x26, 0x6,0x41,0x6d, + 0x4,0x2e,0x27, 0x5,0x33,0x51, 0x4,0x33,0x28, 0x6,0x41,0x75, + 0x4,0x33,0x29, 0x4,0x33,0x25, 0x4,0x33,0x2b, 0x4,0x33,0x27, + 0x4,0x33,0x2e, 0x4,0x38,0x79, 0x4,0x38,0x77, 0x3,0x3d,0x2c, + 0x4,0x38,0x7b, 0x6,0x4b,0x43, 0x4,0x44,0x65, 0x4,0x3e,0x54, + 0x4,0x44,0x66, 0x4,0x3e,0x53, 0x3,0x42,0x60, 0x4,0x3e,0x52, + 0x4,0x44,0x6a, 0x6,0x5e,0x6e, 0x4,0x44,0x69, 0x4,0x44,0x68, + 0x4,0x44,0x67, 0x3,0x47,0x76, 0x4,0x38,0x7a, 0x4,0x4a,0x7b, + 0x4,0x4a,0x76, 0x4,0x4a,0x7a, 0x4,0x4a,0x7c, 0x7,0x2f,0x74, + 0x4,0x51,0x32, 0x4,0x51,0x34, 0x3,0x55,0x48, 0x4,0x56,0x6a, + 0x4,0x56,0x6b, 0x4,0x5b,0x67, 0x5,0x68,0x3b, 0x4,0x63,0x65, + 0x4,0x63,0x66, 0x4,0x63,0x67, 0x4,0x63,0x63, 0x4,0x6b,0x6f, + 0x3,0x24,0x2e, 0x4,0x23,0x29, 0x3,0x24,0x30, 0x3,0x24,0x31, + 0x3,0x26,0x71, 0x3,0x26,0x6f, 0x3,0x26,0x70, 0x3,0x2a,0x2e, + 0x3,0x2d,0x76, 0x6,0x2d,0x21, 0x3,0x2a,0x30, 0x4,0x27,0x3b, + 0x3,0x2a,0x31, 0x3,0x2d,0x7d, 0x3,0x32,0x3a, 0x4,0x2a,0x37, + 0x4,0x2a,0x38, 0xf,0x2c,0x32, 0x4,0x33,0x2f, 0x3,0x32,0x43, + 0x3,0x32,0x44, 0x3,0x32,0x3b, 0x4,0x33,0x30, 0x3,0x32,0x45, + 0xf,0x31,0x27, 0x3,0x32,0x42, 0x3,0x37,0x3f, 0x3,0x37,0x42, + 0x3,0x37,0x41, 0x4,0x33,0x33, 0x3,0x37,0x3e, 0x3,0x37,0x43, + 0x3,0x3d,0x34, 0x4,0x38,0x7d, 0x5,0x3a,0x2d, 0x3,0x42,0x63, + 0x3,0x3d,0x31, 0x3,0x3d,0x30, 0x3,0x42,0x6c, 0xf,0x36,0x59, + 0xf,0x3d,0x3b, 0x4,0x3e,0x59, 0x3,0x42,0x65, 0x3,0x42,0x69, + 0x5,0x40,0x4e, 0x3,0x42,0x72, 0xf,0x43,0x49, 0xf,0x43,0x56, + 0x3,0x48,0x24, 0x7,0x25,0x37, 0x4,0x4b,0x22, 0x4,0x4b,0x21, + 0x3,0x4d,0x37, 0x3,0x4d,0x3c, 0x3,0x4d,0x33, 0x3,0x4d,0x38, + 0x3,0x4d,0x34, 0x3,0x4d,0x32, 0x3,0x51,0x68, 0x5,0x55,0x5d, + 0x4,0x51,0x37, 0x3,0x51,0x69, 0x3,0x55,0x4a, 0x4,0x56,0x6f, + 0xf,0x55,0x7a, 0xf,0x56,0x22, 0x3,0x55,0x4e, 0x4,0x5b,0x69, + 0x3,0x55,0x4c, 0xf,0x5b,0x2d, 0x3,0x58,0x31, 0x4,0x60,0x2a, + 0xf,0x62,0x78, 0xf,0x62,0x7b, 0x3,0x5c,0x61, 0x4,0x2a,0x39, + 0x4,0x2a,0x3a, 0x5,0x2e,0x62, 0x4,0x2e,0x2b, 0x4,0x33,0x35, + 0x4,0x33,0x34, 0x4,0x38,0x7e, 0x4,0x44,0x70, 0x4,0x44,0x71, + 0x4,0x44,0x6f, 0x4,0x4b,0x23, 0x4,0x4b,0x24, 0x4,0x5b,0x6c, + 0x4,0x6d,0x5a, 0x4,0x24,0x5e, 0x5,0x27,0x32, 0x3,0x2a,0x34, + 0x3,0x2e,0x23, 0x4,0x2a,0x3d, 0x3,0x32,0x4a, 0x3,0x32,0x4b, + 0x4,0x2e,0x2d, 0x3,0x32,0x49, 0x4,0x2e,0x2c, 0x4,0x33,0x3b, + 0x4,0x39,0x21, 0x4,0x33,0x3a, 0x4,0x33,0x38, 0x4,0x33,0x39, + 0x4,0x33,0x37, 0x4,0x39,0x23, 0x4,0x39,0x26, 0x4,0x33,0x3c, + 0x4,0x39,0x24, 0x4,0x3e,0x62, 0x4,0x3e,0x61, 0x4,0x3e,0x5d, + 0x4,0x3e,0x60, 0x3,0x42,0x76, 0x4,0x3e,0x63, 0x5,0x47,0x48, + 0x4,0x44,0x73, 0x4,0x44,0x76, 0x4,0x44,0x74, 0x4,0x44,0x78, + 0x4,0x44,0x77, 0x4,0x44,0x75, 0x4,0x4b,0x25, 0x4,0x4b,0x27, + 0x4,0x4b,0x26, 0x4,0x51,0x3f, 0x3,0x51,0x6f, 0x4,0x51,0x42, + 0x4,0x51,0x41, 0x4,0x56,0x72, 0x4,0x56,0x73, 0x3,0x55,0x51, + 0x4,0x56,0x75, 0x3,0x55,0x50, 0x4,0x56,0x71, 0x4,0x5b,0x6f, + 0x4,0x5b,0x6e, 0x4,0x60,0x2c, 0x4,0x60,0x2b, 0x4,0x68,0x75, + 0x4,0x6b,0x70, 0x4,0x6a,0x53, 0x3,0x32,0x4c, 0x4,0x3e,0x65, + 0x3,0x4d,0x3f, 0x4,0x56,0x78, 0x3,0x3d,0x40, 0xf,0x50,0x4e, + 0x5,0x24,0x63, 0x6,0x28,0x62, 0x3,0x26,0x72, 0x4,0x2a,0x41, + 0x3,0x2e,0x29, 0x4,0x2a,0x43, 0x4,0x2e,0x2f, 0x4,0x2e,0x31, + 0x5,0x33,0x64, 0x3,0x37,0x48, 0x3,0x3d,0x41, 0x4,0x39,0x28, + 0x4,0x3e,0x69, 0x3,0x42,0x79, 0x3,0x42,0x7a, 0x4,0x3e,0x68, + 0x4,0x44,0x79, 0x3,0x4d,0x40, 0x4,0x4b,0x2a, 0x4,0x4b,0x29, + 0x4,0x51,0x44, 0x5,0x5c,0x2f, 0x4,0x5b,0x72, 0x4,0x5b,0x73, + 0x4,0x60,0x2e, 0x4,0x63,0x69, 0x4,0x6a,0x54, 0x4,0x3e,0x6d, + 0x4,0x24,0x61, 0x4,0x24,0x62, 0x5,0x27,0x37, 0x3,0x2a,0x3c, + 0x4,0x2a,0x46, 0x3,0x2e,0x2d, 0x4,0x2a,0x49, 0x3,0x2e,0x2c, + 0x3,0x2e,0x2e, 0x3,0x32,0x56, 0x4,0x2e,0x37, 0x4,0x2e,0x3b, + 0x4,0x2e,0x35, 0x4,0x2e,0x36, 0x3,0x32,0x54, 0x4,0x2e,0x33, + 0x4,0x2e,0x3f, 0x4,0x2e,0x39, 0x6,0x39,0x6b, 0x3,0x32,0x53, + 0x4,0x2e,0x38, 0x4,0x2e,0x3a, 0x5,0x33,0x6d, 0x4,0x33,0x42, + 0x3,0x37,0x4c, 0x4,0x33,0x40, 0x4,0x2e,0x3c, 0x4,0x33,0x3f, + 0x4,0x33,0x45, 0x3,0x37,0x4b, 0x4,0x33,0x43, 0x4,0x39,0x32, + 0x4,0x39,0x33, 0x3,0x3d,0x46, 0x3,0x3d,0x4b, 0x6,0x4b,0x5a, + 0x3,0x3d,0x49, 0x4,0x39,0x36, 0x5,0x40,0x60, 0x4,0x39,0x2f, + 0x4,0x39,0x30, 0x3,0x3d,0x48, 0x3,0x3d,0x4a, 0x5,0x3a,0x3b, + 0x4,0x39,0x35, 0x4,0x39,0x38, 0x4,0x3e,0x74, 0x5,0x40,0x64, + 0x4,0x3e,0x6f, 0x4,0x3e,0x78, 0x4,0x3e,0x6e, 0x4,0x3e,0x76, + 0x4,0x3e,0x73, 0x4,0x3e,0x7a, 0x4,0x45,0x24, 0x4,0x45,0x28, + 0x6,0x5f,0x2d, 0x3,0x48,0x2a, 0x3,0x48,0x2c, 0x4,0x45,0x23, + 0x4,0x45,0x21, 0x7,0x25,0x58, 0x4,0x4b,0x38, 0x3,0x4d,0x42, + 0x4,0x4b,0x37, 0x4,0x4b,0x35, 0x4,0x4b,0x33, 0x4,0x4b,0x2f, + 0x7,0x25,0x5c, 0x4,0x4b,0x2e, 0x5,0x47,0x59, 0x4,0x4b,0x3b, + 0x7,0x30,0x36, 0x4,0x51,0x48, 0x4,0x51,0x49, 0x3,0x51,0x75, + 0x4,0x51,0x4e, 0x4,0x51,0x4a, 0x4,0x51,0x50, 0x4,0x57,0x26, + 0x4,0x57,0x22, 0x4,0x5b,0x7b, 0x4,0x5b,0x77, 0x7,0x40,0x6b, + 0x4,0x57,0x25, 0x7,0x40,0x67, 0x4,0x60,0x32, 0x4,0x60,0x2f, + 0x4,0x60,0x30, 0x4,0x66,0x58, 0x4,0x66,0x59, 0x3,0x5e,0x40, + 0x5,0x73,0x5c, 0x4,0x6a,0x55, 0x4,0x6b,0x72, 0x4,0x6b,0x71, + 0x3,0x62,0x2d, 0x3,0x26,0x75, 0x3,0x2e,0x30, 0x3,0x32,0x58, + 0x3,0x37,0x4e, 0x3,0x43,0x22, 0x3,0x48,0x2d, 0x5,0x47,0x5b, + 0x5,0x4e,0x59, 0x4,0x51,0x56, 0x4,0x60,0x37, 0x4,0x66,0x5b, + 0x4,0x6c,0x73, 0x4,0x27,0x46, 0x4,0x2a,0x4e, 0x3,0x2e,0x31, + 0x4,0x2e,0x46, 0x4,0x2e,0x45, 0x4,0x33,0x47, 0x4,0x33,0x48, + 0x4,0x39,0x3a, 0x6,0x55,0x52, 0x4,0x45,0x30, 0x4,0x45,0x32, + 0x3,0x48,0x2f, 0x3,0x4d,0x43, 0x4,0x4b,0x3d, 0x4,0x51,0x57, + 0x4,0x5b,0x7e, 0x4,0x63,0x6c, 0x4,0x27,0x48, 0x4,0x2a,0x51, + 0x4,0x2a,0x50, 0x4,0x2e,0x47, 0x4,0x2e,0x49, 0x3,0x32,0x59, + 0x4,0x33,0x4b, 0x3,0x37,0x4f, 0x3,0x3d,0x4e, 0x3,0x43,0x23, + 0x5,0x40,0x6f, 0x3,0x48,0x32, 0x4,0x51,0x5a, 0x4,0x45,0x36, + 0x4,0x57,0x2c, 0x4,0x60,0x38, 0x3,0x5f,0x38, 0x4,0x6e,0x48, + 0x3,0x26,0x79, 0x4,0x24,0x65, 0x4,0x27,0x4e, 0x4,0x27,0x4f, + 0x4,0x27,0x4d, 0x4,0x27,0x4c, 0x4,0x27,0x4a, 0x4,0x2a,0x53, + 0x4,0x2a,0x56, 0x4,0x2a,0x57, 0x4,0x2a,0x54, 0x4,0x2a,0x58, + 0x5,0x2a,0x6d, 0x4,0x2a,0x5a, 0x6,0x33,0x38, 0x3,0x2e,0x34, + 0x4,0x2e,0x52, 0x3,0x32,0x5d, 0x3,0x32,0x66, 0x3,0x32,0x60, + 0x4,0x2e,0x4d, 0x3,0x32,0x61, 0x5,0x33,0x76, 0x4,0x33,0x50, + 0x4,0x33,0x51, 0x3,0x37,0x56, 0x3,0x37,0x54, 0x4,0x33,0x52, + 0x4,0x33,0x4e, 0x4,0x33,0x4d, 0x3,0x3d,0x50, 0x4,0x39,0x49, + 0x3,0x3d,0x54, 0x4,0x39,0x4a, 0x3,0x3d,0x55, 0x4,0x39,0x45, + 0x4,0x39,0x48, 0x4,0x39,0x3f, 0x4,0x39,0x41, 0x4,0x39,0x4b, + 0x4,0x39,0x46, 0x4,0x39,0x4d, 0x4,0x39,0x47, 0x4,0x39,0x43, + 0x4,0x3f,0x22, 0x4,0x39,0x4c, 0x4,0x39,0x42, 0x4,0x3f,0x30, + 0x4,0x3f,0x2d, 0x3,0x43,0x24, 0x4,0x3f,0x25, 0x4,0x3f,0x26, + 0x4,0x3f,0x27, 0x4,0x3f,0x2b, 0x4,0x3f,0x2c, 0x6,0x55,0x61, + 0x5,0x47,0x61, 0x4,0x45,0x39, 0x4,0x45,0x41, 0x4,0x45,0x3c, + 0x4,0x45,0x37, 0x3,0x48,0x37, 0x4,0x45,0x43, 0x4,0x45,0x46, + 0x4,0x45,0x3f, 0x4,0x45,0x44, 0x3,0x48,0x3a, 0x4,0x45,0x38, + 0x3,0x4d,0x45, 0x4,0x4b,0x45, 0x4,0x4b,0x42, 0x4,0x4b,0x44, + 0x4,0x4b,0x47, 0x4,0x4b,0x43, 0x4,0x4b,0x4d, 0x3,0x4d,0x47, + 0x5,0x4e,0x60, 0x4,0x4b,0x3f, 0x3,0x51,0x77, 0x3,0x51,0x78, + 0x4,0x51,0x5c, 0x4,0x51,0x60, 0x3,0x51,0x7c, 0x3,0x51,0x7a, + 0x4,0x51,0x5d, 0x4,0x51,0x64, 0x4,0x57,0x32, 0x4,0x57,0x2e, + 0x4,0x57,0x31, 0x4,0x57,0x2f, 0x3,0x55,0x5a, 0x4,0x57,0x30, + 0x4,0x57,0x33, 0x4,0x57,0x34, 0x5,0x56,0x22, 0x5,0x62,0x69, + 0x4,0x5c,0x27, 0x4,0x5c,0x29, 0x4,0x5c,0x2a, 0x4,0x5c,0x25, + 0x3,0x58,0x37, 0x4,0x5c,0x26, 0x4,0x63,0x70, 0x4,0x63,0x6e, + 0x4,0x63,0x71, 0x4,0x63,0x6f, 0x4,0x66,0x5d, 0x3,0x5e,0x41, + 0x4,0x68,0x78, 0x4,0x6a,0x57, 0x4,0x68,0x7a, 0x4,0x6c,0x75, + 0x4,0x6e,0x4d, 0x4,0x27,0x51, 0x4,0x2a,0x5f, 0x4,0x33,0x57, + 0x4,0x45,0x4a, 0x3,0x55,0x5d, 0x4,0x57,0x38, 0x4,0x63,0x74, + 0x4,0x6b,0x75, 0x4,0x2e,0x57, 0x4,0x2e,0x58, 0x4,0x33,0x5a, + 0x4,0x33,0x59, 0x6,0x4c,0x2b, 0x4,0x3f,0x33, 0x4,0x45,0x4c, + 0x3,0x24,0x32, 0x3,0x26,0x7a, 0x4,0x27,0x53, 0xf,0x28,0x7a, + 0x4,0x2a,0x64, 0x3,0x2e,0x38, 0x4,0x2a,0x62, 0x3,0x2e,0x3c, + 0x3,0x2d,0x3b, 0x4,0x2e,0x5f, 0x4,0x2e,0x5c, 0x4,0x2e,0x62, + 0x5,0x2f,0x34, 0x3,0x37,0x5b, 0x3,0x32,0x6a, 0x3,0x32,0x6b, + 0x4,0x2e,0x5e, 0x4,0x2e,0x61, 0x4,0x33,0x5e, 0x4,0x33,0x61, + 0x3,0x37,0x5c, 0x4,0x33,0x5f, 0x3,0x37,0x5a, 0x4,0x33,0x60, + 0x3,0x37,0x5e, 0x3,0x3d,0x5b, 0x5,0x3a,0x59, 0x6,0x4c,0x33, + 0x4,0x39,0x58, 0x3,0x3d,0x58, 0x4,0x39,0x53, 0x4,0x3f,0x40, + 0x4,0x3f,0x39, 0x4,0x3f,0x3f, 0x3,0x43,0x2f, 0x4,0x3f,0x3c, + 0x3,0x43,0x32, 0x4,0x3f,0x3d, 0x3,0x43,0x2c, 0x4,0x3f,0x3e, + 0x4,0x3f,0x38, 0x4,0x3f,0x3a, 0x4,0x3f,0x3b, 0x4,0x3f,0x42, + 0x4,0x45,0x4e, 0x3,0x48,0x43, 0x4,0x45,0x51, 0x3,0x48,0x41, + 0x4,0x45,0x4d, 0x4,0x45,0x55, 0x4,0x45,0x4f, 0x5,0x47,0x76, + 0x4,0x4b,0x5c, 0x4,0x4b,0x58, 0x4,0x4b,0x56, 0x4,0x4b,0x55, + 0x4,0x4b,0x5e, 0x7,0x26,0x24, 0x4,0x4b,0x5b, 0x3,0x52,0x23, + 0x3,0x51,0x7d, 0x4,0x51,0x6c, 0x3,0x51,0x7e, 0x7,0x30,0x59, + 0x5,0x56,0x33, 0x4,0x51,0x70, 0x4,0x51,0x6d, 0x4,0x57,0x3b, + 0x4,0x57,0x41, 0x3,0x48,0x42, 0x4,0x57,0x39, 0x3,0x55,0x5e, + 0x3,0x55,0x5f, 0x4,0x57,0x3f, 0x3,0x58,0x41, 0x4,0x5c,0x2d, + 0x3,0x58,0x3d, 0x4,0x5c,0x31, 0x4,0x5c,0x2f, 0x4,0x5c,0x2e, + 0x4,0x60,0x3f, 0x7,0x4e,0x5c, 0x3,0x5c,0x63, 0x4,0x63,0x76, + 0x4,0x63,0x75, 0x4,0x66,0x5f, 0x4,0x66,0x60, 0x4,0x66,0x61, + 0x4,0x68,0x7c, 0x4,0x68,0x7b, 0x3,0x60,0x75, 0x3,0x61,0x67, + 0x3,0x2e,0x3f, 0x4,0x2a,0x67, 0x4,0x2a,0x66, 0x6,0x33,0x48, + 0x3,0x32,0x6e, 0x4,0x2e,0x64, 0x3,0x32,0x71, 0x3,0x37,0x64, + 0x4,0x33,0x63, 0x4,0x33,0x62, 0x3,0x3d,0x61, 0x3,0x3d,0x60, + 0x4,0x39,0x59, 0x4,0x3f,0x45, 0x4,0x3f,0x44, 0x3,0x43,0x3a, + 0x3,0x43,0x3b, 0x3,0x43,0x3e, 0x4,0x3f,0x47, 0x3,0x43,0x3c, + 0x3,0x43,0x3f, 0x3,0x48,0x46, 0x5,0x48,0x24, 0x3,0x48,0x49, + 0x5,0x4e,0x76, 0x3,0x4d,0x4e, 0x4,0x51,0x76, 0x3,0x52,0x25, + 0x4,0x51,0x74, 0x4,0x51,0x75, 0x4,0x57,0x42, 0x3,0x58,0x46, + 0x3,0x58,0x47, 0x3,0x5a,0x64, 0x4,0x66,0x63, 0x3,0x62,0x34, + 0x5,0x24,0x6e, 0x3,0x26,0x7d, 0x5,0x27,0x46, 0x6,0x2d,0x49, + 0x4,0x27,0x56, 0x3,0x2a,0x40, 0x3,0x2a,0x41, 0x3,0x2a,0x43, + 0x4,0x2a,0x6a, 0x4,0x2a,0x6f, 0x4,0x2a,0x6b, 0x4,0x2a,0x69, + 0x4,0x2a,0x6c, 0xf,0x2c,0x6d, 0x4,0x2e,0x65, 0x3,0x32,0x75, + 0x3,0x32,0x7a, 0x6,0x42,0x66, 0x4,0x33,0x67, 0x4,0x33,0x66, + 0x3,0x37,0x6d, 0x4,0x33,0x65, 0x5,0x34,0x3b, 0x5,0x34,0x39, + 0x4,0x33,0x6a, 0x4,0x33,0x69, 0x4,0x33,0x6b, 0x3,0x37,0x68, + 0x4,0x33,0x6d, 0x5,0x34,0x38, 0x3,0x37,0x6e, 0xf,0x37,0x3b, + 0x4,0x33,0x64, 0x5,0x3a,0x65, 0x4,0x39,0x5e, 0x4,0x39,0x62, + 0x3,0x3d,0x67, 0x4,0x39,0x64, 0x3,0x3d,0x6a, 0x4,0x39,0x63, + 0x3,0x3d,0x6b, 0x4,0x39,0x61, 0x4,0x3f,0x4f, 0x3,0x43,0x40, + 0x4,0x3f,0x4d, 0x3,0x43,0x45, 0x4,0x3f,0x4c, 0x3,0x43,0x42, + 0x4,0x3f,0x4b, 0x3,0x43,0x43, 0x4,0x45,0x57, 0x4,0x3f,0x49, + 0x5,0x41,0x31, 0x3,0x48,0x51, 0x3,0x48,0x4a, 0x4,0x45,0x5b, + 0x3,0x48,0x53, 0x3,0x48,0x4e, 0x4,0x45,0x5a, 0x3,0x48,0x4c, + 0x4,0x45,0x58, 0x6,0x5f,0x6b, 0x4,0x45,0x59, 0x4,0x4b,0x65, + 0x4,0x4b,0x61, 0x3,0x4d,0x54, 0x4,0x4b,0x62, 0x3,0x4d,0x52, + 0x7,0x26,0x32, 0x3,0x4d,0x58, 0x4,0x4b,0x68, 0x4,0x4b,0x66, + 0x4,0x4b,0x64, 0x3,0x4d,0x59, 0x4,0x51,0x7d, 0x4,0x51,0x7c, + 0x3,0x52,0x2b, 0x4,0x51,0x79, 0x4,0x51,0x78, 0x4,0x51,0x7a, + 0x3,0x52,0x2d, 0x4,0x57,0x45, 0x3,0x55,0x63, 0x4,0x57,0x47, + 0x3,0x58,0x48, 0x7,0x41,0x2e, 0x4,0x5c,0x37, 0x4,0x5c,0x35, + 0x4,0x5c,0x36, 0x3,0x5e,0x46, 0x4,0x63,0x79, 0x4,0x66,0x65, + 0x7,0x58,0x4c, 0x4,0x66,0x64, 0x4,0x68,0x7e, 0x4,0x69,0x21, + 0x3,0x62,0x39, 0x4,0x24,0x69, 0x6,0x2d,0x4e, 0x3,0x2e,0x46, + 0x3,0x2e,0x45, 0x4,0x2a,0x71, 0x4,0x2a,0x72, 0x3,0x33,0x21, + 0x3,0x32,0x7e, 0x3,0x32,0x7d, 0x4,0x33,0x6f, 0x4,0x33,0x70, + 0x3,0x37,0x6f, 0x5,0x34,0x45, 0x4,0x33,0x72, 0x4,0x33,0x71, + 0x6,0x42,0x6f, 0x3,0x3d,0x6c, 0x4,0x39,0x67, 0x3,0x3d,0x6d, + 0x6,0x4c,0x53, 0x3,0x3d,0x6e, 0x5,0x41,0x39, 0x4,0x3f,0x53, + 0x4,0x3f,0x52, 0x6,0x56,0x27, 0x4,0x45,0x60, 0x6,0x5f,0x78, + 0x4,0x4b,0x6c, 0x5,0x4f,0x23, 0x5,0x54,0x24, 0x4,0x52,0x25, + 0x4,0x52,0x22, 0x4,0x52,0x24, 0x7,0x30,0x6f, 0x3,0x55,0x65, + 0x3,0x55,0x66, 0x4,0x57,0x4c, 0x4,0x57,0x4d, 0x4,0x57,0x4b, + 0x4,0x57,0x4f, 0x3,0x55,0x67, 0x4,0x5c,0x39, 0x4,0x5c,0x3a, + 0x4,0x60,0x48, 0x4,0x60,0x49, 0x4,0x63,0x7c, 0x4,0x69,0x22, + 0x3,0x24,0x34, 0x3,0x2a,0x46, 0x4,0x2a,0x76, 0x3,0x2e,0x4a, + 0x3,0x33,0x25, 0x4,0x2e,0x6d, 0x3,0x33,0x22, 0x5,0x34,0x46, + 0x3,0x3d,0x6f, 0x4,0x39,0x6a, 0x3,0x43,0x48, 0x4,0x3f,0x54, + 0x4,0x3f,0x55, 0x4,0x3f,0x5a, 0x4,0x45,0x63, 0x4,0x57,0x52, + 0x4,0x5c,0x3b, 0x3,0x5a,0x68, 0x5,0x2b,0x21, 0x4,0x2e,0x75, + 0x4,0x2e,0x70, 0x3,0x33,0x28, 0x4,0x2e,0x77, 0x3,0x33,0x29, + 0x4,0x2e,0x73, 0x4,0x2e,0x72, 0x4,0x33,0x76, 0x4,0x33,0x7d, + 0x3,0x37,0x74, 0x5,0x34,0x48, 0x4,0x33,0x77, 0x4,0x33,0x7b, + 0x3,0x37,0x75, 0x6,0x42,0x76, 0x4,0x33,0x78, 0x4,0x39,0x6d, + 0x4,0x39,0x74, 0x4,0x39,0x71, 0x3,0x3d,0x74, 0x4,0x3f,0x5b, + 0x4,0x39,0x72, 0x3,0x3d,0x7a, 0x4,0x39,0x75, 0x3,0x3d,0x73, + 0x4,0x39,0x6f, 0x6,0x4c,0x5b, 0x6,0x4c,0x56, 0x3,0x43,0x50, + 0x4,0x3f,0x66, 0x4,0x3f,0x62, 0x4,0x3f,0x61, 0x3,0x43,0x52, + 0x3,0x43,0x53, 0x4,0x3f,0x5d, 0x3,0x43,0x4e, 0x4,0x3f,0x60, + 0x3,0x43,0x4b, 0x4,0x3f,0x63, 0x5,0x48,0x46, 0x4,0x39,0x76, + 0x4,0x45,0x65, 0x3,0x48,0x5b, 0x4,0x45,0x6a, 0x4,0x45,0x69, + 0x3,0x48,0x5f, 0x4,0x45,0x6e, 0x4,0x45,0x68, 0x3,0x48,0x59, + 0x4,0x45,0x6d, 0x4,0x45,0x66, 0x5,0x48,0x36, 0x4,0x4b,0x7b, + 0x4,0x4b,0x75, 0x4,0x4b,0x70, 0x3,0x4d,0x61, 0x3,0x4d,0x5e, + 0x4,0x4c,0x22, 0x3,0x4d,0x67, 0x4,0x4b,0x7e, 0x3,0x4d,0x62, + 0x4,0x4c,0x2e, 0x5,0x4f,0x3b, 0x3,0x4d,0x64, 0x4,0x4c,0x30, + 0x4,0x4c,0x25, 0x4,0x4c,0x2d, 0x4,0x4b,0x79, 0x5,0x4f,0x32, + 0x3,0x4d,0x5f, 0x5,0x4f,0x45, 0x4,0x4c,0x2c, 0x4,0x4c,0x27, + 0x4,0x4b,0x77, 0x3,0x4d,0x66, 0x3,0x4d,0x68, 0x4,0x4c,0x28, + 0x5,0x4f,0x36, 0x4,0x52,0x34, 0x4,0x52,0x3a, 0x3,0x52,0x31, + 0x4,0x52,0x37, 0x4,0x52,0x2b, 0x4,0x52,0x38, 0x3,0x52,0x35, + 0x4,0x52,0x39, 0x4,0x52,0x3b, 0x4,0x52,0x36, 0x4,0x52,0x2f, + 0x4,0x52,0x3d, 0x4,0x52,0x29, 0x3,0x52,0x32, 0x4,0x57,0x5b, + 0x5,0x5c,0x6d, 0x4,0x57,0x5e, 0x4,0x57,0x5a, 0x4,0x57,0x62, + 0x5,0x5c,0x7d, 0x4,0x57,0x65, 0x4,0x57,0x53, 0x3,0x55,0x6c, + 0x4,0x57,0x56, 0x4,0x57,0x58, 0x4,0x57,0x59, 0x5,0x5c,0x7e, + 0x4,0x57,0x55, 0x5,0x5d,0x30, 0x4,0x5c,0x44, 0x4,0x5c,0x4f, + 0x4,0x5c,0x4b, 0x4,0x5c,0x50, 0x4,0x5c,0x43, 0x3,0x58,0x4a, + 0x4,0x5c,0x4a, 0x3,0x5a,0x6c, 0x4,0x5c,0x42, 0x4,0x5c,0x4c, + 0x7,0x41,0x3f, 0x4,0x5c,0x46, 0x4,0x5c,0x49, 0x4,0x5c,0x40, + 0x5,0x63,0x34, 0x4,0x5c,0x48, 0x3,0x58,0x4d, 0x3,0x58,0x4b, + 0x5,0x63,0x41, 0x4,0x60,0x56, 0x5,0x68,0x6e, 0x3,0x5a,0x6a, + 0x4,0x60,0x53, 0x5,0x68,0x66, 0x3,0x5a,0x6d, 0x3,0x5a,0x69, + 0x3,0x5a,0x6b, 0x4,0x5c,0x51, 0x4,0x63,0x7e, 0x4,0x66,0x69, + 0x4,0x66,0x6c, 0x4,0x66,0x6e, 0x3,0x5e,0x4a, 0x4,0x66,0x6a, + 0x3,0x5e,0x4d, 0x4,0x66,0x68, 0x4,0x66,0x6d, 0x3,0x5f,0x56, + 0x5,0x70,0x61, 0x4,0x69,0x26, 0x4,0x69,0x28, 0x4,0x6a,0x5d, + 0x4,0x6a,0x61, 0x4,0x6a,0x5c, 0x3,0x60,0x5f, 0x4,0x6b,0x76, + 0x4,0x6d,0x5c, 0x4,0x6d,0x76, 0x7,0x65,0x5d, 0x4,0x2a,0x77, + 0x3,0x33,0x2f, 0x3,0x33,0x33, 0x6,0x43,0x22, 0x4,0x34,0x25, + 0x5,0x34,0x59, 0x3,0x37,0x7c, 0x6,0x4c,0x60, 0x4,0x39,0x7b, + 0x4,0x39,0x7c, 0x3,0x3d,0x7d, 0x3,0x3d,0x7c, 0x4,0x39,0x7d, + 0x3,0x43,0x5a, 0x3,0x43,0x56, 0x3,0x43,0x57, 0x3,0x43,0x59, + 0x3,0x43,0x5b, 0x3,0x48,0x63, 0x4,0x45,0x72, 0x3,0x48,0x64, + 0x3,0x48,0x65, 0x6,0x60,0x2c, 0x3,0x48,0x66, 0x3,0x4d,0x6b, + 0x3,0x4d,0x6c, 0x3,0x4d,0x69, 0x3,0x4d,0x6a, 0x4,0x4c,0x37, + 0x7,0x26,0x57, 0x4,0x4c,0x35, 0x3,0x52,0x36, 0x4,0x57,0x6d, + 0x3,0x55,0x73, 0x3,0x55,0x72, 0x4,0x57,0x69, 0x4,0x57,0x6a, + 0x3,0x4d,0x74, 0x4,0x57,0x6b, 0x5,0x63,0x4e, 0x4,0x5c,0x56, + 0x3,0x58,0x52, 0x4,0x5c,0x55, 0x4,0x5c,0x54, 0x5,0x63,0x54, + 0x3,0x58,0x53, 0x3,0x5a,0x70, 0x4,0x60,0x5b, 0x4,0x60,0x5d, + 0x4,0x64,0x23, 0x3,0x5c,0x68, 0x7,0x54,0x3a, 0x5,0x70,0x70, + 0x4,0x6a,0x65, 0x5,0x76,0x39, 0x4,0x6c,0x7a, 0x3,0x61,0x45, + 0x4,0x27,0x5c, 0x6,0x33,0x64, 0x3,0x2e,0x57, 0x3,0x2e,0x55, + 0x3,0x2e,0x58, 0x4,0x2e,0x78, 0x4,0x2e,0x7e, 0x3,0x33,0x35, + 0x3,0x33,0x34, 0x4,0x2e,0x7c, 0x3,0x33,0x39, 0x4,0x2f,0x21, + 0x3,0x33,0x38, 0x4,0x2e,0x7d, 0x3,0x33,0x36, 0x3,0x33,0x3a, + 0x4,0x34,0x2e, 0x4,0x34,0x26, 0x3,0x38,0x23, 0x3,0x38,0x2a, + 0x4,0x34,0x27, 0x4,0x34,0x30, 0x3,0x38,0x2c, 0x4,0x34,0x2d, + 0x4,0x34,0x2b, 0x4,0x34,0x29, 0x3,0x38,0x28, 0x3,0x38,0x2d, + 0x3,0x38,0x25, 0x3,0x3e,0x36, 0x5,0x3b,0x2c, 0x3,0x3e,0x2d, + 0x3,0x3e,0x32, 0x3,0x3e,0x27, 0x3,0x3e,0x30, 0x3,0x3e,0x25, + 0x6,0x4c,0x71, 0x3,0x3e,0x31, 0x4,0x3f,0x6a, 0x3,0x43,0x65, + 0x3,0x43,0x6b, 0x4,0x3f,0x6e, 0x4,0x3f,0x73, 0x4,0x3f,0x6f, + 0x3,0x43,0x61, 0x3,0x43,0x5d, 0x3,0x48,0x6c, 0x4,0x45,0x75, + 0x4,0x45,0x7e, 0x4,0x45,0x79, 0x4,0x46,0x21, 0x3,0x48,0x67, + 0x3,0x43,0x5f, 0x3,0x48,0x72, 0x3,0x48,0x75, 0x4,0x46,0x23, + 0x5,0x48,0x54, 0x3,0x48,0x6f, 0x3,0x4e,0x2a, 0x5,0x4f,0x53, + 0x4,0x4c,0x3e, 0x4,0x4c,0x3c, 0x4,0x4c,0x40, 0x3,0x4d,0x7b, + 0x3,0x4e,0x21, 0x3,0x4e,0x2d, 0x3,0x4d,0x76, 0x3,0x4d,0x79, + 0x4,0x4c,0x3a, 0x4,0x4c,0x3d, 0x4,0x4c,0x3f, 0x3,0x4d,0x7a, + 0x4,0x4c,0x44, 0x5,0x4f,0x54, 0x3,0x4e,0x26, 0x3,0x4e,0x23, + 0x3,0x52,0x3a, 0x4,0x52,0x49, 0x3,0x52,0x3c, 0x4,0x52,0x47, + 0x3,0x52,0x3d, 0x3,0x52,0x3e, 0x4,0x57,0x73, 0x3,0x55,0x78, + 0x5,0x5d,0x3f, 0x3,0x55,0x76, 0x5,0x5d,0x46, 0x3,0x55,0x77, + 0x4,0x57,0x6e, 0x3,0x55,0x7c, 0x3,0x55,0x7b, 0x7,0x3a,0x39, + 0x4,0x5c,0x62, 0x4,0x5c,0x60, 0x4,0x57,0x72, 0x3,0x58,0x57, + 0x3,0x58,0x56, 0x3,0x59,0x29, 0x4,0x60,0x66, 0x4,0x60,0x63, + 0x4,0x60,0x68, 0x4,0x60,0x62, 0x7,0x47,0x4a, 0x3,0x5a,0x73, + 0x3,0x5a,0x71, 0x5,0x6d,0x22, 0x3,0x5c,0x69, 0x4,0x64,0x24, + 0x3,0x5c,0x6a, 0x3,0x5c,0x6b, 0x3,0x5e,0x4f, 0x3,0x5e,0x4e, + 0x4,0x69,0x2a, 0x7,0x58,0x58, 0x3,0x5f,0x59, 0x4,0x69,0x2b, + 0x4,0x6a,0x66, 0x4,0x6b,0x79, 0x4,0x6b,0x78, 0x7,0x5f,0x33, + 0x3,0x60,0x78, 0x4,0x6c,0x7c, 0x4,0x6c,0x7b, 0x4,0x6d,0x77, + 0x4,0x2a,0x79, 0x4,0x2f,0x29, 0x3,0x38,0x2f, 0x3,0x38,0x32, + 0x5,0x34,0x60, 0x4,0x34,0x34, 0x3,0x38,0x30, 0x4,0x34,0x33, + 0x4,0x3a,0x28, 0x4,0x46,0x25, 0x3,0x48,0x76, 0x4,0x52,0x4e, + 0x4,0x6a,0x6b, 0xf,0x21,0x47, 0x3,0x2a,0x4d, 0x3,0x2e,0x5c, + 0x3,0x2e,0x5b, 0x3,0x2e,0x59, 0x4,0x2a,0x7b, 0x4,0x2f,0x2a, + 0x6,0x3a,0x6b, 0x4,0x2f,0x2d, 0x4,0x34,0x35, 0x4,0x3f,0x75, + 0x4,0x3a,0x2a, 0x3,0x43,0x6c, 0x3,0x43,0x6d, 0x5,0x41,0x65, + 0x3,0x48,0x7a, 0x3,0x48,0x7b, 0x4,0x52,0x4f, 0x4,0x57,0x75, + 0x4,0x5c,0x65, 0x4,0x60,0x6d, 0x4,0x66,0x7b, 0x4,0x6b,0x7b, + 0x6,0x3a,0x74, 0x4,0x2f,0x2e, 0x3,0x31,0x3f, 0x4,0x34,0x38, + 0x4,0x34,0x36, 0x4,0x34,0x37, 0x6,0x43,0x3c, 0x4,0x3a,0x2d, + 0x4,0x3a,0x31, 0x4,0x3a,0x30, 0x4,0x3f,0x76, 0x3,0x48,0x7e, + 0x4,0x46,0x27, 0x3,0x48,0x7d, 0x4,0x46,0x28, 0x3,0x48,0x7c, + 0x4,0x4c,0x49, 0x4,0x52,0x53, 0x3,0x52,0x41, 0x4,0x57,0x77, + 0x4,0x5c,0x6a, 0x4,0x5c,0x6b, 0x4,0x69,0x2c, 0x3,0x33,0x40, + 0x3,0x33,0x41, 0x4,0x34,0x3a, 0x3,0x38,0x33, 0x4,0x34,0x3b, + 0x4,0x34,0x3e, 0x4,0x34,0x3c, 0x3,0x38,0x35, 0x3,0x38,0x34, + 0x4,0x3a,0x34, 0x4,0x3a,0x35, 0x5,0x3b,0x3a, 0x4,0x3a,0x33, + 0x3,0x43,0x70, 0x4,0x3f,0x78, 0x3,0x43,0x71, 0x4,0x3f,0x77, + 0x3,0x43,0x6f, 0x3,0x49,0x21, 0x4,0x46,0x2a, 0x4,0x46,0x29, + 0x4,0x46,0x2b, 0x4,0x52,0x55, 0x4,0x52,0x56, 0x3,0x58,0x5e, + 0x3,0x58,0x60, 0x3,0x58,0x5f, 0x3,0x5c,0x6e, 0x4,0x66,0x7d, + 0x3,0x3e,0x39, 0x3,0x3e,0x3a, 0x4,0x2b,0x27, 0x4,0x2b,0x28, + 0x4,0x2f,0x38, 0x4,0x2b,0x29, 0x3,0x38,0x38, 0x4,0x3f,0x7a, + 0x4,0x46,0x2e, 0x4,0x46,0x2d, 0x4,0x46,0x2f, 0x4,0x46,0x32, + 0x4,0x46,0x30, 0x4,0x4c,0x4f, 0x4,0x57,0x7d, 0x4,0x57,0x7a, + 0x4,0x57,0x7b, 0x4,0x5c,0x70, 0x4,0x67,0x21, 0x4,0x24,0x6d, + 0x3,0x33,0x46, 0x3,0x33,0x45, 0x3,0x38,0x3a, 0x4,0x34,0x41, + 0x4,0x3a,0x39, 0x5,0x41,0x70, 0x3,0x43,0x74, 0x4,0x46,0x36, + 0x4,0x46,0x34, 0x4,0x46,0x35, 0x4,0x46,0x37, 0x3,0x49,0x24, + 0x3,0x4e,0x33, 0x4,0x4c,0x52, 0x4,0x52,0x5a, 0x3,0x52,0x42, + 0x4,0x52,0x5b, 0x4,0x58,0x21, 0x4,0x58,0x24, 0x4,0x58,0x23, + 0x4,0x58,0x22, 0x3,0x58,0x64, 0x4,0x64,0x28, 0x3,0x5f,0x5c, + 0x6,0x56,0x6d, 0x4,0x23,0x2d, 0x6,0x25,0x49, 0x4,0x24,0x6f, + 0x4,0x24,0x6e, 0x3,0x2a,0x51, 0x6,0x3b,0x28, 0x3,0x2a,0x55, + 0x3,0x2a,0x50, 0x4,0x27,0x66, 0xf,0x28,0x52, 0x4,0x27,0x62, + 0x4,0x27,0x67, 0x4,0x27,0x63, 0x4,0x27,0x65, 0x5,0x27,0x58, + 0x3,0x2a,0x5a, 0x3,0x2a,0x53, 0x5,0x2b,0x33, 0x4,0x2b,0x2f, + 0x4,0x2b,0x2a, 0x4,0x2b,0x2c, 0x3,0x2e,0x62, 0x3,0x2e,0x5f, + 0x6,0x33,0x7d, 0x5,0x2b,0x39, 0x3,0x33,0x51, 0x4,0x2f,0x41, + 0x4,0x2f,0x46, 0x4,0x2f,0x47, 0x4,0x2f,0x3f, 0x6,0x3b,0x31, + 0x5,0x2f,0x6d, 0x3,0x38,0x46, 0x4,0x34,0x4c, 0x4,0x34,0x48, + 0x3,0x38,0x44, 0x4,0x34,0x4b, 0x4,0x34,0x52, 0x4,0x34,0x51, + 0x4,0x34,0x4a, 0x4,0x34,0x53, 0x6,0x43,0x58, 0x3,0x38,0x40, + 0x3,0x38,0x3f, 0x3,0x38,0x43, 0x4,0x3a,0x49, 0x4,0x3a,0x3a, + 0x3,0x3e,0x3f, 0x4,0x3a,0x45, 0x5,0x3b,0x4d, 0x4,0x3a,0x4a, + 0x4,0x3a,0x41, 0x4,0x3a,0x40, 0x4,0x3a,0x42, 0x4,0x3a,0x3d, + 0x3,0x3e,0x46, 0x4,0x3a,0x3f, 0x4,0x3a,0x44, 0x4,0x3a,0x4b, + 0x6,0x49,0x7e, 0x6,0x4d,0x54, 0x6,0x56,0x76, 0x4,0x40,0x27, + 0x3,0x43,0x78, 0x4,0x40,0x2a, 0x4,0x40,0x23, 0x4,0x40,0x26, + 0x3,0x43,0x7a, 0x4,0x3f,0x7d, 0x4,0x40,0x28, 0x3,0x44,0x21, + 0x4,0x40,0x2c, 0x3,0x43,0x7d, 0x3,0x43,0x79, 0x5,0x34,0x6a, + 0x4,0x40,0x25, 0x4,0x46,0x45, 0x4,0x46,0x3e, 0x4,0x46,0x3c, + 0x4,0x46,0x3d, 0x4,0x46,0x3f, 0x3,0x52,0x48, 0x4,0x46,0x42, + 0x4,0x46,0x40, 0x4,0x46,0x3b, 0x3,0x49,0x29, 0x3,0x49,0x28, + 0x4,0x46,0x38, 0x4,0x46,0x47, 0x4,0x46,0x41, 0x4,0x4c,0x5d, + 0x4,0x4c,0x58, 0x4,0x4c,0x5e, 0x4,0x4c,0x55, 0x4,0x4c,0x5c, + 0x6,0x60,0x6f, 0x4,0x4c,0x54, 0x4,0x4c,0x5b, 0x4,0x4c,0x5f, + 0x5,0x42,0x28, 0x4,0x52,0x63, 0x4,0x52,0x64, 0x3,0x52,0x46, + 0x3,0x52,0x45, 0x4,0x52,0x5e, 0x4,0x52,0x61, 0x4,0x52,0x62, + 0x4,0x52,0x66, 0xf,0x51,0x55, 0x5,0x5d,0x5b, 0x4,0x58,0x2b, + 0x4,0x58,0x28, 0x4,0x58,0x2c, 0x4,0x5c,0x74, 0x3,0x58,0x66, + 0x4,0x5c,0x76, 0x3,0x58,0x67, 0x3,0x5a,0x76, 0x4,0x60,0x74, + 0x4,0x60,0x73, 0x5,0x6d,0x2c, 0x4,0x64,0x2a, 0x4,0x67,0x22, + 0x4,0x67,0x24, 0x4,0x67,0x23, 0x4,0x67,0x25, 0x4,0x69,0x30, + 0x6,0x43,0x64, 0x7,0x42,0x24, 0x3,0x2b,0x44, 0x3,0x44,0x24, + 0x4,0x2f,0x4a, 0x4,0x34,0x58, 0x4,0x4c,0x63, 0x4,0x52,0x6b, + 0x3,0x33,0x53, 0x3,0x33,0x54, 0x3,0x38,0x4a, 0x4,0x4c,0x64, + 0x6,0x61,0x21, 0x3,0x52,0x4b, 0x3,0x5e,0x54, 0x4,0x27,0x6f, + 0x4,0x2b,0x33, 0x4,0x2b,0x32, 0x3,0x2e,0x67, 0x3,0x33,0x56, + 0x4,0x2f,0x50, 0x3,0x38,0x4b, 0x6,0x43,0x71, 0x6,0x43,0x70, + 0x3,0x3e,0x4a, 0x4,0x3a,0x4e, 0x4,0x3a,0x4f, 0x6,0x4d,0x63, + 0x5,0x42,0x2d, 0x4,0x40,0x2f, 0x4,0x46,0x4f, 0x4,0x46,0x51, + 0x4,0x46,0x50, 0x3,0x49,0x2c, 0x6,0x61,0x24, 0x5,0x49,0x2c, + 0x3,0x4e,0x3e, 0x4,0x4c,0x68, 0x4,0x4c,0x65, 0x4,0x52,0x6c, + 0x4,0x52,0x6d, 0x4,0x58,0x30, 0x4,0x58,0x34, 0x4,0x58,0x33, + 0x3,0x56,0x25, 0x3,0x56,0x26, 0x5,0x5d,0x67, 0x5,0x5c,0x4d, + 0x4,0x58,0x32, 0x4,0x5c,0x7c, 0x4,0x64,0x2d, 0x4,0x2f,0x53, + 0x4,0x34,0x5c, 0x4,0x52,0x6f, 0x4,0x52,0x6e, 0x4,0x58,0x35, + 0x4,0x5c,0x7d, 0x4,0x69,0x33, 0x6,0x25,0x4f, 0x3,0x24,0x37, + 0x3,0x24,0x39, 0x3,0x27,0x27, 0x4,0x24,0x76, 0x4,0x24,0x7d, + 0x3,0x27,0x2c, 0x3,0x2a,0x63, 0x3,0x2a,0x67, 0x3,0x2a,0x64, + 0x3,0x2a,0x6a, 0x4,0x27,0x72, 0x3,0x2a,0x62, 0x4,0x28,0x21, + 0x4,0x27,0x73, 0x3,0x2a,0x65, 0x3,0x2a,0x69, 0x5,0x27,0x63, + 0x3,0x2a,0x61, 0x3,0x2e,0x6d, 0x4,0x2b,0x36, 0x3,0x2e,0x70, + 0x3,0x2e,0x71, 0x3,0x2e,0x6c, 0x3,0x2e,0x73, 0x3,0x2e,0x75, + 0x6,0x34,0x3a, 0x4,0x2f,0x55, 0x3,0x33,0x61, 0x4,0x2f,0x61, + 0x3,0x33,0x64, 0x3,0x33,0x5b, 0x3,0x33,0x5e, 0x6,0x3b,0x56, + 0x3,0x33,0x5d, 0x4,0x2f,0x5e, 0x3,0x33,0x5c, 0x3,0x33,0x65, + 0x5,0x30,0x21, 0x4,0x2f,0x59, 0x4,0x2f,0x64, 0x3,0x33,0x60, + 0x4,0x34,0x5e, 0x4,0x34,0x6c, 0x4,0x34,0x71, 0x3,0x38,0x5a, + 0x4,0x34,0x69, 0x4,0x34,0x65, 0x3,0x38,0x56, 0x4,0x34,0x66, + 0x4,0x34,0x62, 0x4,0x34,0x5d, 0x4,0x34,0x63, 0x6,0x44,0x2c, + 0x3,0x38,0x4c, 0x6,0x44,0x28, 0x5,0x35,0x2a, 0x3,0x38,0x59, + 0x3,0x38,0x5c, 0x5,0x35,0x24, 0x4,0x3a,0x6c, 0x4,0x3a,0x60, + 0x4,0x3a,0x5f, 0x4,0x3a,0x64, 0x4,0x3a,0x59, 0x5,0x3b,0x56, + 0x4,0x3a,0x5b, 0x4,0x3a,0x56, 0x3,0x3e,0x53, 0x4,0x3a,0x5e, + 0x3,0x3e,0x54, 0x3,0x3e,0x51, 0x4,0x3a,0x5c, 0x4,0x3a,0x61, + 0x3,0x3e,0x55, 0x6,0x4e,0x27, 0x3,0x3e,0x4c, 0xf,0x3e,0x6b, + 0x4,0x40,0x30, 0x4,0x40,0x32, 0x4,0x3a,0x65, 0x3,0x44,0x37, + 0x4,0x46,0x69, 0x4,0x40,0x47, 0x4,0x40,0x49, 0x4,0x40,0x3a, + 0x3,0x44,0x2b, 0x3,0x44,0x29, 0x3,0x44,0x34, 0x4,0x40,0x48, + 0x3,0x44,0x3d, 0x4,0x40,0x4c, 0x4,0x46,0x65, 0x3,0x49,0x2f, + 0x4,0x46,0x57, 0x6,0x61,0x44, 0x4,0x46,0x64, 0x3,0x49,0x31, + 0x4,0x46,0x53, 0x5,0x49,0x3c, 0x4,0x46,0x61, 0x3,0x49,0x30, + 0x4,0x46,0x6d, 0x4,0x46,0x60, 0x4,0x46,0x5c, 0x3,0x49,0x34, + 0x5,0x49,0x3b, 0x6,0x61,0x58, 0x3,0x49,0x37, 0x3,0x49,0x40, + 0x3,0x4e,0x43, 0x4,0x4c,0x72, 0x3,0x4e,0x3f, 0x4,0x4c,0x70, + 0x4,0x4d,0x24, 0x4,0x4c,0x6b, 0x3,0x4e,0x41, 0x4,0x4c,0x71, + 0x3,0x4e,0x53, 0x4,0x4c,0x6d, 0x4,0x4c,0x73, 0x3,0x4e,0x47, + 0x3,0x4e,0x45, 0x3,0x4e,0x56, 0x4,0x4c,0x7d, 0x3,0x52,0x51, + 0x4,0x4c,0x6c, 0x3,0x4e,0x4a, 0x4,0x4c,0x6e, 0x3,0x4e,0x48, + 0x3,0x4e,0x55, 0x3,0x4e,0x49, 0x5,0x50,0x46, 0x3,0x4e,0x50, + 0xf,0x51,0x65, 0xf,0x51,0x73, 0xf,0x51,0x76, 0x4,0x4d,0x21, + 0x4,0x4c,0x6f, 0x3,0x4e,0x51, 0x4,0x4c,0x77, 0x4,0x52,0x77, + 0x4,0x52,0x7b, 0x4,0x52,0x79, 0x4,0x53,0x2c, 0x4,0x53,0x21, + 0x4,0x52,0x76, 0x3,0x52,0x53, 0x4,0x53,0x25, 0x3,0x52,0x57, + 0x4,0x52,0x7e, 0x3,0x52,0x4d, 0x4,0x53,0x23, 0x4,0x52,0x7a, + 0x4,0x52,0x7c, 0x4,0x52,0x72, 0x5,0x64,0x2d, 0x3,0x52,0x4c, + 0x4,0x53,0x22, 0x4,0x52,0x73, 0x3,0x52,0x4e, 0x4,0x53,0x27, + 0x4,0x53,0x31, 0x4,0x46,0x67, 0x4,0x58,0x44, 0x4,0x58,0x3c, + 0x4,0x58,0x38, 0x4,0x58,0x42, 0x5,0x5d,0x79, 0x4,0x58,0x36, + 0x4,0x58,0x3b, 0x3,0x56,0x2e, 0x3,0x56,0x27, 0x4,0x58,0x3d, + 0x3,0x56,0x2a, 0x3,0x56,0x2f, 0x3,0x58,0x69, 0x4,0x5c,0x7e, + 0x4,0x5d,0x2b, 0x3,0x58,0x6d, 0x3,0x58,0x70, 0x3,0x58,0x6a, + 0x3,0x58,0x71, 0x4,0x5d,0x23, 0x7,0x42,0x38, 0x4,0x5d,0x21, + 0xf,0x60,0x4e, 0x7,0x3b,0x32, 0x4,0x60,0x77, 0x3,0x5c,0x73, + 0x3,0x5b,0x23, 0x4,0x60,0x78, 0x3,0x5b,0x21, 0x3,0x5b,0x24, + 0x7,0x49,0x53, 0x4,0x64,0x2f, 0x4,0x64,0x34, 0x3,0x5c,0x7d, + 0x4,0x64,0x33, 0x3,0x5c,0x74, 0x7,0x54,0x68, 0x3,0x5c,0x79, + 0x4,0x64,0x32, 0x4,0x64,0x38, 0x3,0x5c,0x7a, 0x4,0x64,0x30, + 0x3,0x5c,0x75, 0x4,0x64,0x36, 0x4,0x67,0x27, 0x3,0x5e,0x59, + 0x4,0x67,0x28, 0xf,0x68,0x39, 0x3,0x5f,0x5d, 0x4,0x69,0x37, + 0x7,0x58,0x72, 0x3,0x60,0x41, 0x3,0x60,0x42, 0x5,0x78,0x25, + 0x4,0x6b,0x7d, 0x4,0x6d,0x5e, 0x4,0x6c,0x7d, 0x3,0x61,0x6a, + 0x4,0x6d,0x79, 0x4,0x6d,0x7b, 0xf,0x6c,0x6c, 0x4,0x6e,0x37, + 0x4,0x6e,0x36, 0x5,0x7c,0x3e, 0x3,0x2a,0x6d, 0x4,0x2b,0x3e, + 0x4,0x2f,0x67, 0x3,0x33,0x67, 0x3,0x33,0x66, 0x3,0x33,0x68, + 0x5,0x35,0x35, 0x3,0x38,0x62, 0x5,0x3b,0x70, 0x3,0x3e,0x60, + 0x3,0x44,0x41, 0x5,0x42,0x54, 0x5,0x42,0x53, 0x3,0x44,0x42, + 0x3,0x44,0x43, 0x4,0x4d,0x26, 0x4,0x53,0x36, 0x4,0x5d,0x32, + 0x5,0x64,0x3b, 0x5,0x64,0x3a, 0x4,0x64,0x3a, 0x3,0x27,0x2e, + 0x3,0x2e,0x7d, 0x3,0x2f,0x21, 0x3,0x2f,0x22, 0x4,0x2f,0x69, + 0x4,0x2f,0x6b, 0x6,0x3b,0x69, 0x3,0x38,0x68, 0x3,0x38,0x67, + 0x4,0x34,0x7c, 0x3,0x38,0x65, 0x4,0x34,0x7b, 0x4,0x34,0x79, + 0x5,0x3c,0x26, 0x6,0x44,0x48, 0x4,0x3a,0x72, 0x3,0x3e,0x67, + 0x4,0x3a,0x74, 0x3,0x3e,0x65, 0x5,0x3b,0x74, 0x4,0x3a,0x70, + 0x4,0x3a,0x6d, 0x3,0x3e,0x64, 0x3,0x3e,0x66, 0x4,0x40,0x56, + 0x4,0x40,0x57, 0x3,0x44,0x4b, 0x3,0x44,0x47, 0x4,0x40,0x5b, + 0x4,0x3a,0x6e, 0x4,0x40,0x5d, 0x3,0x44,0x4a, 0x4,0x46,0x78, + 0x3,0x49,0x46, 0x4,0x46,0x72, 0x4,0x46,0x73, 0x4,0x46,0x71, + 0x4,0x46,0x75, 0x3,0x49,0x47, 0x4,0x46,0x70, 0x4,0x46,0x76, + 0x6,0x61,0x69, 0x3,0x49,0x48, 0x4,0x46,0x7b, 0x3,0x4e,0x5a, + 0x3,0x4e,0x5c, 0x7,0x28,0x42, 0x3,0x4e,0x57, 0x3,0x4e,0x58, + 0x4,0x4d,0x30, 0x3,0x4e,0x5b, 0x4,0x46,0x79, 0x4,0x4d,0x36, + 0x4,0x4d,0x2f, 0x3,0x49,0x4d, 0x4,0x53,0x3e, 0x3,0x52,0x5c, + 0x7,0x32,0x73, 0x4,0x53,0x3d, 0x4,0x58,0x4d, 0x3,0x52,0x60, + 0x7,0x32,0x75, 0x3,0x52,0x61, 0x5,0x5e,0x32, 0x4,0x58,0x57, + 0x4,0x58,0x52, 0x3,0x56,0x37, 0x4,0x58,0x58, 0x4,0x58,0x4f, + 0x4,0x58,0x56, 0x3,0x56,0x38, 0x4,0x58,0x4e, 0x3,0x56,0x32, + 0x4,0x58,0x54, 0x4,0x58,0x5f, 0x3,0x56,0x35, 0x3,0x56,0x3c, + 0x3,0x56,0x31, 0x4,0x5d,0x3b, 0x5,0x5e,0x35, 0x4,0x5d,0x39, + 0x3,0x58,0x72, 0x4,0x61,0x24, 0x5,0x69,0x41, 0x3,0x5b,0x2a, + 0x4,0x61,0x21, 0x4,0x61,0x25, 0xf,0x63,0x6e, 0x5,0x6d,0x4b, + 0x4,0x64,0x3b, 0x4,0x64,0x3c, 0x4,0x64,0x40, 0x4,0x64,0x3e, + 0x4,0x64,0x41, 0x3,0x5d,0x26, 0x3,0x5e,0x5e, 0x4,0x67,0x30, + 0x4,0x64,0x3d, 0x4,0x69,0x3e, 0x3,0x5f,0x5e, 0x3,0x5f,0x60, + 0x3,0x60,0x44, 0x7,0x59,0x25, 0x7,0x5c,0x5e, 0x4,0x6a,0x78, + 0x7,0x5c,0x63, 0x3,0x61,0x48, 0x4,0x6e,0x39, 0x3,0x2f,0x25, + 0x6,0x3b,0x73, 0x3,0x38,0x69, 0x3,0x44,0x4c, 0x4,0x47,0x23, + 0x4,0x4d,0x37, 0x4,0x2f,0x6f, 0x4,0x3a,0x78, 0x3,0x4e,0x5e, + 0x4,0x53,0x4a, 0x3,0x5b,0x2e, 0x3,0x2a,0x6e, 0x3,0x2f,0x28, + 0x4,0x2b,0x46, 0x5,0x30,0x3d, 0x4,0x2f,0x72, 0x5,0x30,0x39, + 0x4,0x35,0x2a, 0x4,0x3a,0x7a, 0x4,0x35,0x2d, 0x4,0x35,0x2e, + 0x4,0x35,0x2c, 0xf,0x32,0x51, 0x4,0x3a,0x79, 0x3,0x3e,0x71, + 0x4,0x35,0x30, 0x3,0x3e,0x6e, 0x3,0x3e,0x6c, 0x3,0x3e,0x6b, + 0x3,0x2f,0x4a, 0x4,0x40,0x62, 0x4,0x47,0x25, 0x6,0x58,0x2b, + 0x3,0x49,0x53, 0x4,0x47,0x2d, 0x5,0x49,0x6c, 0x5,0x49,0x6d, + 0x4,0x40,0x66, 0x4,0x47,0x31, 0x4,0x47,0x27, 0x3,0x49,0x55, + 0x4,0x40,0x60, 0x4,0x47,0x2a, 0x4,0x47,0x2e, 0x4,0x47,0x26, + 0x4,0x47,0x2b, 0x3,0x49,0x5a, 0x3,0x49,0x50, 0x3,0x49,0x5b, + 0x4,0x4d,0x3c, 0x4,0x4d,0x3f, 0x4,0x4d,0x3a, 0x4,0x4d,0x39, + 0x4,0x4d,0x42, 0x4,0x4d,0x40, 0x4,0x4d,0x47, 0x4,0x53,0x52, + 0x4,0x53,0x55, 0x4,0x53,0x56, 0x3,0x4e,0x63, 0x4,0x53,0x4f, + 0x4,0x58,0x63, 0x4,0x58,0x67, 0x3,0x56,0x45, 0x3,0x56,0x43, + 0x4,0x58,0x64, 0x3,0x56,0x3e, 0x7,0x3b,0x59, 0x3,0x56,0x44, + 0x4,0x58,0x65, 0x3,0x56,0x41, 0x5,0x64,0x56, 0x4,0x5d,0x4a, + 0x4,0x5d,0x48, 0x4,0x5d,0x49, 0x4,0x5d,0x44, 0x4,0x5d,0x46, + 0x4,0x61,0x2a, 0x7,0x43,0x22, 0x4,0x64,0x43, 0x7,0x50,0x25, + 0x3,0x5d,0x27, 0x4,0x64,0x44, 0x3,0x5e,0x5f, 0x4,0x6a,0x7b, + 0x7,0x59,0x32, 0x3,0x60,0x7a, 0x4,0x6c,0x26, 0x3,0x60,0x79, + 0x4,0x6d,0x7d, 0x5,0x2b,0x47, 0x4,0x2f,0x73, 0x4,0x35,0x31, + 0x4,0x3b,0x21, 0x3,0x33,0x79, 0x3,0x33,0x78, 0x4,0x35,0x33, + 0x4,0x35,0x35, 0x4,0x3b,0x23, 0x5,0x3c,0x35, 0x4,0x3b,0x22, + 0x3,0x3e,0x73, 0x3,0x44,0x50, 0x3,0x44,0x51, 0x4,0x47,0x36, + 0x4,0x47,0x38, 0x4,0x4d,0x4a, 0x4,0x4d,0x48, 0x4,0x53,0x5a, + 0x4,0x53,0x5b, 0x5,0x58,0x32, 0x4,0x53,0x5c, 0x5,0x5e,0x43, + 0x4,0x58,0x68, 0x4,0x58,0x69, 0x4,0x5d,0x4e, 0x4,0x5d,0x50, + 0x4,0x61,0x2d, 0x4,0x61,0x2e, 0x3,0x5b,0x30, 0x4,0x61,0x2c, + 0x4,0x61,0x30, 0x3,0x5e,0x60, 0x3,0x62,0x3c, 0x4,0x35,0x3a, + 0x3,0x44,0x53, 0x4,0x40,0x67, 0x3,0x44,0x52, 0x4,0x47,0x3a, + 0x4,0x4d,0x51, 0x4,0x4d,0x4c, 0x4,0x4d,0x4e, 0x4,0x4d,0x53, + 0x4,0x4d,0x4f, 0x4,0x53,0x64, 0x4,0x53,0x61, 0x4,0x53,0x62, + 0x4,0x58,0x6b, 0x4,0x58,0x6a, 0x5,0x64,0x63, 0x4,0x61,0x31, + 0x4,0x61,0x34, 0x4,0x64,0x46, 0x4,0x64,0x47, 0x4,0x6d,0x22, + 0x3,0x2f,0x2b, 0x5,0x2b,0x49, 0x3,0x2f,0x2d, 0x4,0x2f,0x7e, + 0x3,0x33,0x7d, 0x4,0x35,0x41, 0x3,0x38,0x7c, 0x3,0x38,0x78, + 0x5,0x35,0x57, 0x4,0x35,0x44, 0x5,0x35,0x5e, 0x3,0x39,0x24, + 0x3,0x39,0x28, 0x3,0x39,0x21, 0x4,0x35,0x3f, 0x3,0x38,0x7d, + 0x3,0x39,0x27, 0x4,0x35,0x43, 0x5,0x35,0x5d, 0x6,0x44,0x6d, + 0x3,0x39,0x26, 0x5,0x35,0x56, 0x4,0x3b,0x33, 0x3,0x3e,0x79, + 0x3,0x3e,0x7a, 0x4,0x3b,0x36, 0x4,0x3b,0x35, 0x3,0x3e,0x76, + 0x3,0x3e,0x7b, 0x3,0x3e,0x77, 0x4,0x3b,0x34, 0x4,0x3b,0x2a, + 0x4,0x3b,0x29, 0x4,0x3b,0x2b, 0x3,0x3f,0x26, 0x6,0x4e,0x6b, + 0x3,0x3f,0x25, 0x3,0x44,0x57, 0x6,0x58,0x41, 0x3,0x44,0x5e, + 0x4,0x40,0x6e, 0x4,0x40,0x6d, 0x4,0x40,0x6c, 0x3,0x44,0x5a, + 0x3,0x44,0x5f, 0x3,0x44,0x62, 0x4,0x47,0x3d, 0x4,0x47,0x40, + 0x4,0x47,0x4a, 0x4,0x47,0x3c, 0x3,0x49,0x6a, 0x4,0x47,0x46, + 0x4,0x47,0x42, 0x3,0x49,0x61, 0x4,0x47,0x43, 0x3,0x49,0x69, + 0x3,0x49,0x67, 0x3,0x49,0x5d, 0x4,0x4d,0x59, 0x4,0x4d,0x56, + 0x4,0x4d,0x5c, 0x4,0x4d,0x5e, 0x3,0x4e,0x68, 0x4,0x4d,0x61, + 0x4,0x4d,0x58, 0x4,0x4d,0x5b, 0x3,0x4e,0x6d, 0x4,0x4d,0x5f, + 0x4,0x4d,0x5a, 0x3,0x4e,0x6b, 0x4,0x4d,0x60, 0x7,0x28,0x79, + 0x4,0x4d,0x55, 0x3,0x4e,0x71, 0x4,0x53,0x6a, 0x3,0x52,0x6c, + 0x3,0x52,0x6d, 0x7,0x33,0x4d, 0x4,0x53,0x6b, 0x3,0x56,0x47, + 0x4,0x58,0x70, 0x3,0x56,0x4b, 0x3,0x56,0x4c, 0x5,0x5e,0x55, + 0x4,0x5d,0x5a, 0x7,0x4a,0x25, 0x4,0x5d,0x57, 0x4,0x5d,0x5b, + 0x3,0x59,0x22, 0x3,0x59,0x25, 0x4,0x5d,0x54, 0x3,0x59,0x27, + 0x4,0x61,0x40, 0x5,0x69,0x52, 0x3,0x5b,0x33, 0x4,0x61,0x3b, + 0x4,0x61,0x3d, 0x4,0x61,0x45, 0x5,0x69,0x51, 0x4,0x64,0x4e, + 0x3,0x5d,0x2d, 0x7,0x50,0x31, 0x4,0x64,0x4c, 0x3,0x5d,0x2f, + 0x4,0x64,0x48, 0x3,0x5d,0x31, 0x4,0x67,0x3d, 0x4,0x67,0x3f, + 0x7,0x55,0x32, 0x4,0x67,0x3e, 0x4,0x67,0x40, 0x4,0x67,0x39, + 0x7,0x59,0x38, 0x3,0x5f,0x63, 0x4,0x69,0x48, 0x5,0x76,0x4c, + 0x4,0x2b,0x49, 0x4,0x30,0x23, 0x6,0x4e,0x7a, 0x3,0x3f,0x27, + 0x4,0x47,0x4c, 0x3,0x4e,0x77, 0x4,0x58,0x75, 0x4,0x5d,0x61, + 0x4,0x69,0x4c, 0x4,0x35,0x4a, 0x3,0x3f,0x28, 0x4,0x40,0x74, + 0x4,0x47,0x4e, 0x4,0x47,0x4f, 0x3,0x49,0x6c, 0x4,0x4d,0x64, + 0x3,0x52,0x70, 0x4,0x53,0x73, 0x3,0x52,0x6f, 0x4,0x53,0x72, + 0x3,0x52,0x71, 0x4,0x58,0x76, 0x4,0x58,0x77, 0x3,0x56,0x4e, + 0x4,0x67,0x44, 0x4,0x6d,0x24, 0x4,0x30,0x25, 0x4,0x35,0x4b, + 0x6,0x45,0x22, 0x4,0x35,0x4c, 0xf,0x44,0x74, 0x4,0x4d,0x67, + 0x4,0x4d,0x65, 0x4,0x4d,0x68, 0x4,0x53,0x75, 0x4,0x53,0x77, + 0x4,0x5d,0x64, 0x4,0x61,0x48, 0x4,0x61,0x46, 0x4,0x67,0x45, + 0x3,0x5f,0x65, 0x3,0x61,0x4c, 0x4,0x6d,0x25, 0x4,0x35,0x50, + 0x6,0x45,0x24, 0x3,0x39,0x2f, 0x4,0x3b,0x3e, 0x3,0x49,0x6e, + 0x3,0x4e,0x79, 0x3,0x4e,0x78, 0x3,0x52,0x72, 0x3,0x56,0x50, + 0x3,0x59,0x2c, 0x3,0x59,0x2d, 0x4,0x61,0x4a, 0x7,0x4a,0x41, + 0x3,0x5b,0x37, 0x4,0x5d,0x68, 0x4,0x35,0x51, 0x4,0x35,0x54, + 0x5,0x3c,0x4c, 0x4,0x3b,0x3f, 0x4,0x3b,0x41, 0x3,0x3f,0x2e, + 0x4,0x3b,0x42, 0x6,0x4f,0x29, 0x4,0x3b,0x43, 0x4,0x41,0x21, + 0x3,0x44,0x66, 0x3,0x44,0x68, 0x5,0x4a,0x29, 0x6,0x62,0x6a, + 0x3,0x49,0x6f, 0x3,0x4e,0x7b, 0x3,0x4e,0x7c, 0x4,0x4d,0x6e, + 0x4,0x4d,0x6c, 0x7,0x29,0x36, 0x4,0x4d,0x6d, 0x5,0x51,0x39, + 0x3,0x4f,0x21, 0x3,0x52,0x74, 0x4,0x53,0x7d, 0x4,0x53,0x79, + 0x4,0x53,0x7b, 0x4,0x53,0x7a, 0x3,0x52,0x76, 0x7,0x3c,0x33, + 0x4,0x58,0x7a, 0xf,0x60,0x7a, 0x4,0x53,0x7e, 0x3,0x5d,0x35, + 0x3,0x5e,0x64, 0x4,0x6b,0x21, 0x5,0x30,0x4b, 0x5,0x43,0x34, + 0x4,0x47,0x59, 0x4,0x47,0x58, 0x4,0x67,0x48, 0x5,0x30,0x4c, + 0x4,0x30,0x27, 0x4,0x30,0x28, 0x4,0x35,0x55, 0x4,0x35,0x56, + 0x3,0x39,0x34, 0x3,0x39,0x36, 0x3,0x3f,0x31, 0x4,0x3b,0x45, + 0x3,0x3f,0x36, 0x3,0x3f,0x32, 0x5,0x3c,0x52, 0x3,0x3f,0x35, + 0x4,0x3b,0x48, 0x4,0x3b,0x47, 0x4,0x41,0x26, 0x4,0x41,0x27, + 0x5,0x43,0x3c, 0x3,0x44,0x6a, 0x4,0x41,0x28, 0x5,0x43,0x38, + 0x4,0x47,0x5a, 0x6,0x62,0x75, 0x4,0x47,0x5b, 0x3,0x49,0x76, + 0x5,0x4a,0x34, 0x3,0x49,0x77, 0x5,0x4a,0x32, 0x3,0x4f,0x27, + 0x4,0x4d,0x73, 0x4,0x4d,0x71, 0x3,0x4f,0x24, 0x4,0x4d,0x74, + 0x7,0x29,0x3d, 0x4,0x54,0x26, 0x5,0x58,0x5c, 0x5,0x58,0x55, + 0x3,0x52,0x78, 0x4,0x58,0x7d, 0x4,0x59,0x25, 0x4,0x58,0x7c, + 0x5,0x5e,0x6d, 0x4,0x5d,0x6d, 0x3,0x59,0x2f, 0x4,0x5d,0x6c, + 0x4,0x5d,0x6a, 0x4,0x5d,0x6e, 0x3,0x59,0x30, 0x4,0x61,0x4d, + 0x3,0x5d,0x36, 0x4,0x64,0x55, 0x4,0x64,0x53, 0x4,0x64,0x56, + 0x4,0x67,0x4a, 0x4,0x69,0x4e, 0x3,0x5f,0x66, 0x4,0x69,0x4f, + 0x4,0x6b,0x23, 0x4,0x6c,0x28, 0x4,0x6d,0x27, 0x4,0x2b,0x4c, + 0x3,0x2f,0x2f, 0x4,0x30,0x2a, 0x3,0x33,0x7e, 0x4,0x35,0x5e, + 0x4,0x35,0x59, 0x5,0x35,0x72, 0x3,0x39,0x3b, 0x4,0x35,0x5b, + 0x4,0x35,0x5c, 0x4,0x35,0x5d, 0x3,0x39,0x3c, 0x5,0x3c,0x63, + 0x4,0x3b,0x4c, 0x4,0x3b,0x50, 0x3,0x3f,0x3d, 0x4,0x3b,0x4d, + 0x4,0x3b,0x49, 0x6,0x4f,0x36, 0x6,0x4f,0x3c, 0x5,0x3c,0x5c, + 0x4,0x3b,0x4a, 0x4,0x3b,0x4b, 0x4,0x3b,0x4f, 0x3,0x3f,0x3c, + 0x5,0x3c,0x5f, 0x4,0x3b,0x51, 0x4,0x41,0x29, 0x5,0x43,0x4b, + 0x3,0x44,0x6c, 0x3,0x44,0x6e, 0xf,0x45,0x58, 0x5,0x4a,0x3e, + 0x4,0x47,0x5e, 0x4,0x47,0x61, 0x4,0x47,0x5f, 0x4,0x47,0x62, + 0x4,0x47,0x65, 0x3,0x49,0x78, 0x4,0x47,0x64, 0x3,0x4f,0x28, + 0x3,0x44,0x6f, 0x4,0x4d,0x77, 0x4,0x4e,0x22, 0x3,0x4f,0x2a, + 0x7,0x29,0x4e, 0x3,0x4f,0x2e, 0x3,0x4f,0x29, 0x4,0x4d,0x7e, + 0x4,0x4e,0x21, 0x4,0x4d,0x7d, 0x4,0x4d,0x79, 0x4,0x4d,0x78, + 0x4,0x4d,0x76, 0x3,0x4f,0x2d, 0x4,0x4e,0x23, 0x4,0x54,0x2e, + 0x3,0x52,0x7d, 0x3,0x52,0x7a, 0x4,0x54,0x2f, 0x4,0x54,0x2d, + 0x5,0x58,0x62, 0x4,0x54,0x30, 0x3,0x52,0x79, 0x5,0x5e,0x7b, + 0x4,0x59,0x2b, 0x4,0x59,0x2c, 0x4,0x59,0x26, 0xf,0x5c,0x78, + 0x4,0x59,0x2a, 0x4,0x59,0x28, 0x3,0x56,0x53, 0x3,0x59,0x33, + 0x4,0x5d,0x74, 0x4,0x5d,0x78, 0x4,0x5d,0x72, 0x4,0x5d,0x75, + 0x7,0x4a,0x57, 0x4,0x61,0x50, 0x3,0x59,0x34, 0x4,0x61,0x51, + 0x4,0x5d,0x77, 0x4,0x64,0x5b, 0x4,0x64,0x5a, 0x4,0x67,0x50, + 0x4,0x67,0x4c, 0x5,0x74,0x4b, 0x4,0x6b,0x24, 0x7,0x5c,0x77, + 0x4,0x6c,0x29, 0x3,0x61,0x4f, 0x3,0x62,0x2e, 0x3,0x3f,0x42, + 0x5,0x3c,0x67, 0x4,0x3b,0x52, 0x4,0x3b,0x53, 0x3,0x3f,0x41, + 0x3,0x44,0x71, 0x3,0x44,0x70, 0x3,0x44,0x72, 0x4,0x4e,0x26, + 0x4,0x54,0x32, 0x4,0x59,0x30, 0x3,0x56,0x56, 0x3,0x5b,0x3e, + 0x4,0x64,0x5f, 0x3,0x60,0x4c, 0x4,0x2b,0x4d, 0x4,0x2b,0x4e, + 0xf,0x2d,0x53, 0x3,0x34,0x22, 0x3,0x39,0x43, 0x3,0x39,0x44, + 0x3,0x39,0x48, 0x4,0x35,0x61, 0x4,0x35,0x62, 0x3,0x39,0x45, + 0x3,0x39,0x46, 0x3,0x39,0x42, 0x6,0x45,0x45, 0x3,0x3f,0x48, + 0x3,0x3f,0x43, 0x4,0x3b,0x54, 0x3,0x3f,0x4a, 0x3,0x44,0x75, + 0x4,0x41,0x2a, 0x3,0x44,0x74, 0x6,0x59,0x24, 0x4,0x41,0x2c, + 0x4,0x47,0x66, 0x4,0x47,0x69, 0x4,0x47,0x67, 0x3,0x49,0x7e, + 0x4,0x4e,0x28, 0x4,0x4e,0x27, 0x4,0x4e,0x2a, 0x4,0x4e,0x29, + 0x3,0x53,0x23, 0x5,0x58,0x72, 0x4,0x54,0x33, 0x4,0x54,0x34, + 0x5,0x51,0x61, 0x3,0x56,0x58, 0x4,0x59,0x32, 0x4,0x59,0x35, + 0x4,0x59,0x37, 0x3,0x56,0x57, 0x4,0x59,0x31, 0x4,0x5d,0x7c, + 0x4,0x5d,0x7b, 0x4,0x5d,0x7a, 0x5,0x65,0x35, 0x4,0x5d,0x7d, + 0x4,0x5d,0x7e, 0x4,0x61,0x59, 0x4,0x61,0x58, 0x4,0x61,0x57, + 0x4,0x64,0x60, 0x4,0x64,0x61, 0x4,0x67,0x52, 0xf,0x68,0x53, + 0x3,0x5f,0x68, 0x3,0x5f,0x67, 0x3,0x60,0x7d, 0x4,0x6d,0x61, + 0x4,0x6e,0x21, 0x3,0x62,0x3d, 0x4,0x4e,0x2e, 0x3,0x5d,0x39, + 0x4,0x47,0x6b, 0xf,0x4c,0x67, 0x3,0x4f,0x38, 0x4,0x64,0x63, + 0x7,0x50,0x56, 0x3,0x27,0x32, 0x4,0x25,0x22, 0xf,0x28,0x72, + 0x3,0x2a,0x6f, 0x5,0x27,0x69, 0x4,0x2b,0x53, 0x4,0x2b,0x50, + 0x3,0x34,0x23, 0x4,0x30,0x2d, 0x4,0x30,0x30, 0x3,0x34,0x24, + 0x4,0x30,0x2e, 0x3,0x39,0x49, 0x4,0x35,0x69, 0x3,0x39,0x4d, + 0x3,0x3f,0x53, 0x4,0x3b,0x57, 0x3,0x3f,0x4e, 0x6,0x4f,0x48, + 0x3,0x3f,0x52, 0x4,0x41,0x2f, 0x3,0x4a,0x25, 0x4,0x47,0x6c, + 0x3,0x4a,0x23, 0x3,0x4f,0x3a, 0x4,0x4e,0x31, 0x4,0x4e,0x35, + 0x3,0x4f,0x3d, 0x3,0x53,0x2a, 0x3,0x53,0x28, 0x3,0x53,0x29, + 0x4,0x59,0x38, 0x4,0x59,0x39, 0x7,0x43,0x77, 0x3,0x59,0x39, + 0x4,0x61,0x5e, 0x4,0x6c,0x2c, 0x3,0x22,0x5f, 0x4,0x23,0x32, + 0x3,0x27,0x36, 0x3,0x27,0x37, 0x3,0x27,0x38, 0x3,0x2a,0x76, + 0x4,0x28,0x29, 0x3,0x2f,0x36, 0x4,0x2b,0x56, 0x3,0x45,0x22, + 0x3,0x2f,0x3d, 0x4,0x2b,0x54, 0x4,0x2b,0x58, 0x3,0x2f,0x39, + 0x3,0x2f,0x3a, 0x6,0x34,0x6d, 0x4,0x30,0x38, 0x4,0x30,0x34, + 0x3,0x34,0x28, 0x4,0x30,0x33, 0x4,0x47,0x71, 0x4,0x35,0x6c, + 0x4,0x35,0x6e, 0x4,0x35,0x73, 0x4,0x35,0x6b, 0x3,0x39,0x50, + 0x4,0x35,0x70, 0x4,0x3b,0x5e, 0x3,0x3f,0x58, 0x4,0x41,0x34, + 0x4,0x41,0x36, 0x3,0x45,0x21, 0x4,0x59,0x3c, 0x4,0x41,0x38, + 0x4,0x47,0x6d, 0x4,0x47,0x6e, 0x3,0x4a,0x29, 0x3,0x4a,0x28, + 0x5,0x4a,0x60, 0x4,0x47,0x70, 0x3,0x4f,0x3e, 0x4,0x4e,0x3d, + 0x4,0x4e,0x3c, 0x5,0x58,0x7e, 0x5,0x5f,0x3c, 0x3,0x60,0x4d, + 0x4,0x6b,0x26, 0x3,0x2f,0x3f, 0x3,0x34,0x2b, 0x3,0x34,0x2c, + 0x4,0x35,0x78, 0x4,0x35,0x74, 0x3,0x39,0x53, 0x5,0x36,0x36, + 0x4,0x35,0x75, 0x4,0x3b,0x60, 0x3,0x3f,0x5a, 0x3,0x3f,0x5b, + 0x3,0x3f,0x5c, 0x4,0x3b,0x64, 0x6,0x59,0x4c, 0x3,0x45,0x26, + 0x4,0x41,0x3d, 0x4,0x41,0x3c, 0x4,0x41,0x3f, 0x4,0x41,0x3e, + 0x4,0x47,0x73, 0x4,0x47,0x74, 0x4,0x4e,0x3f, 0x4,0x4e,0x41, + 0x4,0x4e,0x3e, 0x4,0x4e,0x40, 0x4,0x54,0x3d, 0x4,0x54,0x3c, + 0x4,0x54,0x3a, 0x3,0x53,0x2e, 0x4,0x54,0x40, 0x4,0x54,0x3b, + 0x7,0x34,0x54, 0x3,0x53,0x30, 0x4,0x59,0x3d, 0x4,0x59,0x42, + 0x7,0x3c,0x70, 0x4,0x59,0x41, 0x5,0x65,0x45, 0x4,0x61,0x61, + 0x4,0x61,0x64, 0x4,0x61,0x63, 0x4,0x61,0x62, 0x4,0x61,0x65, + 0x4,0x67,0x5a, 0x4,0x67,0x5b, 0x4,0x69,0x54, 0x4,0x69,0x53, + 0x4,0x6c,0x2e, 0x4,0x6c,0x2d, 0x4,0x6e,0x3d, 0x4,0x35,0x7a, + 0x6,0x3c,0x63, 0x3,0x39,0x5a, 0x3,0x3f,0x5f, 0x3,0x3f,0x64, + 0x3,0x3f,0x61, 0x3,0x3f,0x67, 0x3,0x45,0x2c, 0x5,0x43,0x6d, + 0x3,0x4a,0x2e, 0x4,0x47,0x79, 0x3,0x4a,0x36, 0x4,0x47,0x76, + 0x4,0x47,0x7b, 0x4,0x47,0x78, 0x3,0x4f,0x4f, 0x4,0x4e,0x43, + 0x3,0x4f,0x47, 0x3,0x4f,0x46, 0x7,0x2a,0x38, 0x3,0x4f,0x4a, + 0x7,0x2a,0x3e, 0x3,0x53,0x33, 0x3,0x53,0x34, 0x4,0x54,0x48, + 0x4,0x54,0x46, 0x7,0x3c,0x7b, 0x3,0x56,0x69, 0x7,0x3c,0x77, + 0x4,0x59,0x45, 0x4,0x59,0x44, 0xf,0x5d,0x4c, 0x3,0x59,0x3f, + 0x3,0x59,0x41, 0x4,0x5e,0x2f, 0x4,0x5e,0x2c, 0x7,0x44,0x39, + 0x4,0x5e,0x27, 0x5,0x65,0x4f, 0x4,0x5e,0x2b, 0x3,0x59,0x48, + 0x3,0x59,0x47, 0x3,0x5b,0x46, 0x4,0x61,0x66, 0x3,0x5b,0x4b, + 0x3,0x5b,0x40, 0x3,0x5b,0x52, 0x4,0x61,0x69, 0x5,0x6a,0x33, + 0x4,0x61,0x68, 0x3,0x5b,0x51, 0x3,0x5b,0x4c, 0x3,0x5b,0x49, + 0xf,0x64,0x34, 0x3,0x5d,0x3b, 0x4,0x61,0x6c, 0x3,0x5d,0x40, + 0x4,0x64,0x66, 0x4,0x64,0x6c, 0x5,0x6e,0x35, 0x3,0x5d,0x48, + 0x4,0x64,0x6d, 0x4,0x67,0x5f, 0x3,0x5e,0x6b, 0x4,0x64,0x69, + 0x4,0x67,0x61, 0x3,0x5e,0x6c, 0x4,0x67,0x63, 0x7,0x55,0x68, + 0x3,0x5e,0x69, 0x3,0x5e,0x6e, 0x3,0x5e,0x6f, 0x3,0x5f,0x6f, + 0x3,0x60,0x51, 0x5,0x71,0x55, 0x7,0x59,0x67, 0x3,0x5f,0x6d, + 0x7,0x59,0x68, 0x3,0x5f,0x70, 0x5,0x74,0x55, 0x4,0x6b,0x2a, + 0x5,0x76,0x5f, 0x4,0x6b,0x27, 0x3,0x60,0x4e, 0x3,0x60,0x50, + 0x3,0x61,0x23, 0x3,0x61,0x21, 0x4,0x6c,0x30, 0x3,0x61,0x24, + 0x3,0x61,0x6e, 0x6,0x3c,0x65, 0x4,0x3b,0x67, 0xf,0x3f,0x76, + 0x4,0x41,0x49, 0x4,0x5e,0x32, 0x3,0x39,0x5b, 0x4,0x35,0x7c, + 0x3,0x3f,0x6a, 0x4,0x3b,0x6b, 0x3,0x3f,0x6e, 0x3,0x3f,0x6b, + 0x3,0x45,0x3b, 0x4,0x41,0x50, 0x4,0x41,0x4e, 0x4,0x48,0x23, + 0x3,0x4a,0x3b, 0x3,0x4a,0x3f, 0x3,0x4a,0x3a, 0x5,0x4a,0x6e, + 0x3,0x4a,0x3c, 0x7,0x2a,0x46, 0x4,0x4e,0x48, 0x3,0x4f,0x54, + 0x3,0x4f,0x57, 0x4,0x54,0x4f, 0x4,0x54,0x4b, 0x3,0x53,0x3f, + 0x4,0x54,0x4c, 0x3,0x53,0x41, 0x3,0x53,0x43, 0x3,0x53,0x46, + 0x3,0x53,0x45, 0x7,0x34,0x73, 0x4,0x59,0x4e, 0x4,0x59,0x4f, + 0x4,0x59,0x54, 0x3,0x56,0x6e, 0x3,0x56,0x6c, 0x4,0x59,0x4d, + 0x4,0x59,0x52, 0x4,0x67,0x66, 0x4,0x64,0x71, 0x5,0x71,0x5b, + 0x4,0x69,0x55, 0x5,0x21,0x7d, 0x3,0x22,0x60, 0x3,0x24,0x3e, + 0x5,0x24,0x7b, 0x6,0x29,0x35, 0x4,0x28,0x31, 0x4,0x28,0x32, + 0x3,0x2a,0x7a, 0x5,0x2b,0x64, 0x4,0x2b,0x5a, 0x3,0x2f,0x41, + 0x4,0x2b,0x59, 0x4,0x30,0x40, 0x4,0x30,0x3d, 0x3,0x34,0x35, + 0x4,0x30,0x3e, 0x3,0x34,0x37, 0x4,0x30,0x3c, 0x3,0x39,0x63, + 0x3,0x39,0x5d, 0x4,0x35,0x7d, 0x3,0x39,0x60, 0x3,0x39,0x62, + 0x3,0x39,0x64, 0x3,0x39,0x5f, 0x3,0x3f,0x6f, 0x4,0x3b,0x6d, + 0x3,0x3f,0x74, 0x3,0x45,0x3f, 0x3,0x45,0x3e, 0x4,0x41,0x55, + 0x4,0x41,0x54, 0x3,0x45,0x3d, 0x3,0x45,0x41, 0x3,0x4a,0x41, + 0x3,0x4a,0x40, 0x3,0x4a,0x43, 0x3,0x4a,0x42, 0x3,0x4f,0x59, + 0x3,0x4f,0x58, 0x7,0x2a,0x54, 0x3,0x53,0x47, 0x4,0x54,0x53, + 0x4,0x54,0x51, 0x4,0x59,0x55, 0x3,0x5b,0x54, 0x4,0x64,0x73, + 0x4,0x67,0x67, 0x3,0x34,0x38, 0x4,0x36,0x24, 0x3,0x3f,0x7a, + 0x3,0x3f,0x76, 0x3,0x3f,0x79, 0x3,0x3f,0x77, 0x4,0x41,0x56, + 0x3,0x45,0x44, 0x3,0x45,0x43, 0x3,0x45,0x45, 0x3,0x4a,0x48, + 0x3,0x4f,0x5d, 0x3,0x4f,0x5c, 0x3,0x53,0x4b, 0x3,0x53,0x4a, + 0x3,0x52,0x38, 0x4,0x59,0x58, 0x3,0x56,0x72, 0x3,0x59,0x4c, + 0x3,0x5b,0x55, 0x3,0x5d,0x4a, 0x3,0x5b,0x56, 0x3,0x5d,0x4b, + 0x4,0x69,0x56, 0x3,0x61,0x51, 0x3,0x62,0x40, 0x3,0x39,0x66, + 0x3,0x3f,0x7d, 0x6,0x50,0x31, 0x3,0x45,0x48, 0x4,0x48,0x2d, + 0x4,0x48,0x31, 0x4,0x48,0x2e, 0x3,0x4a,0x4a, 0x4,0x48,0x34, + 0x3,0x4a,0x4b, 0x4,0x48,0x33, 0x6,0x63,0x7b, 0x3,0x4f,0x5e, + 0x3,0x4f,0x61, 0x3,0x4f,0x5f, 0x4,0x54,0x59, 0x3,0x53,0x4f, + 0x3,0x53,0x4e, 0x4,0x59,0x60, 0x3,0x56,0x73, 0x3,0x56,0x77, + 0x4,0x54,0x58, 0x3,0x56,0x76, 0x4,0x59,0x5d, 0x4,0x59,0x5f, + 0x4,0x5e,0x35, 0x3,0x59,0x4d, 0x3,0x59,0x4e, 0x4,0x5e,0x36, + 0x7,0x44,0x58, 0x7,0x44,0x60, 0x4,0x61,0x74, 0x4,0x61,0x73, + 0x3,0x5b,0x57, 0x3,0x5b,0x58, 0x3,0x5b,0x59, 0x4,0x64,0x75, + 0x3,0x5d,0x4d, 0x4,0x69,0x58, 0x4,0x69,0x5a, 0x4,0x69,0x5b, + 0x3,0x60,0x58, 0x3,0x61,0x53, 0x3,0x61,0x27, 0x3,0x61,0x52, + 0x3,0x62,0x24, 0x3,0x62,0x44, 0x3,0x62,0x46, 0x4,0x69,0x5c, + 0x4,0x36,0x28, 0x4,0x36,0x2a, 0x4,0x3b,0x74, 0x4,0x4e,0x4c, + 0x4,0x64,0x7b, 0x4,0x41,0x5a, 0x3,0x45,0x4a, 0x3,0x4a,0x4d, + 0x4,0x48,0x38, 0x4,0x48,0x37, 0x4,0x54,0x5d, 0x4,0x54,0x5c, + 0x4,0x59,0x62, 0x4,0x64,0x7c, 0x4,0x67,0x6e, 0x5,0x71,0x63, + 0x4,0x6c,0x33, 0x4,0x3b,0x79, 0x3,0x40,0x23, 0x4,0x3b,0x76, + 0x3,0x45,0x4d, 0x4,0x41,0x5d, 0x4,0x41,0x5f, 0x3,0x45,0x4c, + 0xf,0x46,0x32, 0x6,0x5a,0x28, 0x4,0x48,0x3a, 0x4,0x48,0x40, + 0x4,0x48,0x3b, 0x3,0x4a,0x4f, 0x3,0x4a,0x50, 0x4,0x48,0x3d, + 0x4,0x4e,0x4f, 0x4,0x54,0x63, 0x4,0x54,0x61, 0x4,0x54,0x60, + 0x4,0x54,0x64, 0x4,0x54,0x62, 0x4,0x59,0x63, 0x4,0x54,0x68, + 0x3,0x53,0x52, 0x3,0x56,0x7c, 0x4,0x59,0x68, 0x4,0x59,0x64, + 0x7,0x3d,0x56, 0x3,0x56,0x79, 0x3,0x56,0x7d, 0x3,0x56,0x7e, + 0x4,0x5e,0x3e, 0x5,0x65,0x7e, 0x4,0x5e,0x42, 0x4,0x5e,0x3c, + 0x5,0x65,0x73, 0x5,0x65,0x7b, 0x4,0x5e,0x3b, 0x4,0x5e,0x41, + 0x3,0x5b,0x5c, 0x3,0x5b,0x5b, 0x4,0x61,0x77, 0x4,0x61,0x7b, + 0x3,0x5b,0x5a, 0x4,0x65,0x23, 0x4,0x64,0x7e, 0x5,0x6e,0x49, + 0x7,0x56,0x27, 0x7,0x56,0x25, 0x4,0x67,0x72, 0x4,0x67,0x70, + 0x5,0x71,0x69, 0x7,0x56,0x26, 0x3,0x5f,0x74, 0x5,0x74,0x62, + 0x4,0x6b,0x2c, 0x3,0x60,0x5a, 0x4,0x6c,0x34, 0x4,0x6d,0x2d, + 0x3,0x61,0x54, 0x4,0x6d,0x65, 0x3,0x61,0x70, 0x4,0x6e,0x22, + 0x4,0x41,0x61, 0x4,0x48,0x43, 0x4,0x48,0x41, 0x4,0x48,0x42, + 0x4,0x48,0x44, 0x3,0x53,0x54, 0x4,0x59,0x6b, 0x7,0x44,0x77, + 0x4,0x5e,0x45, 0x3,0x59,0x52, 0x4,0x61,0x7d, 0x4,0x61,0x7e, + 0x4,0x67,0x73, 0x4,0x69,0x60, 0x3,0x60,0x5b, 0x3,0x45,0x4e, + 0x3,0x57,0x21, 0x3,0x5b,0x63, 0x3,0x5b,0x62, 0x3,0x5d,0x52, + 0x4,0x67,0x75, 0x4,0x6b,0x2d, 0x3,0x40,0x25, 0x3,0x40,0x26, + 0x3,0x40,0x27, 0x3,0x45,0x51, 0x4,0x54,0x6a, 0x4,0x54,0x69, + 0x3,0x59,0x53, 0x4,0x62,0x22, 0x4,0x62,0x23, 0x3,0x5f,0x75, + 0x4,0x3b,0x7b, 0xf,0x40,0x2d, 0x4,0x41,0x65, 0x4,0x41,0x64, + 0x5,0x44,0x34, 0x5,0x4b,0x3e, 0x4,0x48,0x4d, 0x3,0x4a,0x51, + 0x4,0x48,0x4e, 0x3,0x4a,0x53, 0x4,0x48,0x4c, 0x4,0x48,0x4b, + 0x5,0x4b,0x3f, 0x4,0x48,0x47, 0x3,0x4f,0x68, 0x4,0x4e,0x59, + 0x4,0x4e,0x5c, 0x5,0x52,0x60, 0x4,0x54,0x6d, 0x4,0x54,0x6f, + 0x3,0x53,0x56, 0x4,0x4e,0x5d, 0x3,0x53,0x60, 0x3,0x53,0x57, + 0x3,0x53,0x5e, 0x7,0x35,0x51, 0x3,0x57,0x25, 0x4,0x59,0x73, + 0x7,0x3d,0x69, 0x3,0x57,0x22, 0x4,0x59,0x77, 0x3,0x57,0x23, + 0x3,0x57,0x24, 0x3,0x57,0x27, 0x3,0x57,0x29, 0x4,0x5e,0x4e, + 0x3,0x59,0x54, 0x4,0x5e,0x49, 0x4,0x5e,0x47, 0x4,0x5e,0x4b, + 0x3,0x59,0x57, 0x3,0x59,0x55, 0x4,0x5e,0x4d, 0x4,0x5e,0x4c, + 0x3,0x59,0x5a, 0x4,0x62,0x27, 0x4,0x62,0x29, 0x4,0x62,0x2d, + 0x4,0x62,0x26, 0x4,0x62,0x2c, 0x3,0x5b,0x64, 0x4,0x62,0x25, + 0x4,0x62,0x2f, 0x4,0x62,0x28, 0x4,0x62,0x2b, 0x4,0x65,0x2f, + 0x4,0x65,0x31, 0x4,0x65,0x30, 0x3,0x5d,0x54, 0x4,0x67,0x77, + 0x4,0x67,0x79, 0x4,0x67,0x76, 0x4,0x67,0x7c, 0x4,0x67,0x7b, + 0x7,0x56,0x32, 0x4,0x69,0x63, 0x3,0x5f,0x76, 0x4,0x69,0x62, + 0x4,0x6c,0x39, 0x5,0x78,0x48, 0x3,0x61,0x55, 0x4,0x36,0x2b, + 0x4,0x3b,0x7e, 0x3,0x45,0x53, 0x4,0x41,0x6d, 0x4,0x41,0x72, + 0x4,0x41,0x6e, 0x4,0x48,0x51, 0x4,0x48,0x56, 0x4,0x48,0x59, + 0x4,0x48,0x50, 0x4,0x48,0x54, 0x3,0x4a,0x57, 0x4,0x4e,0x60, + 0x4,0x4e,0x61, 0x4,0x54,0x76, 0x4,0x54,0x77, 0x4,0x54,0x73, + 0x4,0x54,0x74, 0x4,0x54,0x75, 0x4,0x59,0x7d, 0x4,0x5a,0x22, + 0x4,0x5a,0x21, 0x4,0x59,0x7c, 0x4,0x59,0x7a, 0x4,0x59,0x7e, + 0x4,0x5e,0x51, 0x7,0x44,0x7e, 0x4,0x5e,0x50, 0x4,0x5e,0x52, + 0x3,0x59,0x5d, 0x3,0x59,0x5e, 0x3,0x59,0x5f, 0x4,0x62,0x32, + 0x3,0x5b,0x67, 0x3,0x5b,0x66, 0x4,0x65,0x36, 0x3,0x5d,0x55, + 0x4,0x67,0x7e, 0x4,0x6b,0x30, 0x4,0x6c,0x3a, 0x3,0x57,0x2b, + 0x3,0x59,0x60, 0x3,0x34,0x3a, 0x4,0x36,0x2c, 0x3,0x40,0x29, + 0x3,0x40,0x2a, 0x4,0x3c,0x24, 0x3,0x40,0x28, 0x4,0x3c,0x25, + 0x3,0x45,0x5d, 0x3,0x40,0x2c, 0x4,0x41,0x77, 0x4,0x41,0x74, + 0x3,0x4a,0x5c, 0x3,0x45,0x5e, 0x4,0x41,0x75, 0x3,0x45,0x56, + 0x3,0x45,0x55, 0x3,0x45,0x5a, 0x4,0x41,0x79, 0x4,0x41,0x7a, + 0x3,0x4a,0x58, 0x3,0x4a,0x59, 0x4,0x48,0x5b, 0x7,0x2b,0x38, + 0x3,0x4a,0x5a, 0x4,0x48,0x5c, 0x6,0x64,0x40, 0x3,0x4f,0x6a, + 0x4,0x4e,0x65, 0x4,0x4e,0x64, 0x4,0x4e,0x67, 0x4,0x4e,0x66, + 0x4,0x54,0x78, 0x4,0x4e,0x69, 0x4,0x54,0x7c, 0x4,0x54,0x7d, + 0x4,0x54,0x7a, 0x4,0x5a,0x27, 0x4,0x55,0x22, 0x4,0x5a,0x28, + 0x4,0x5a,0x2a, 0x5,0x60,0x31, 0x3,0x57,0x2d, 0x3,0x59,0x64, + 0x5,0x60,0x2c, 0x3,0x57,0x2c, 0x4,0x5e,0x58, 0x4,0x5e,0x57, + 0x4,0x5e,0x5b, 0x4,0x5e,0x59, 0x4,0x5e,0x5a, 0x4,0x65,0x39, + 0x4,0x62,0x36, 0x3,0x5b,0x68, 0x4,0x65,0x3c, 0x4,0x65,0x3b, + 0x3,0x5d,0x57, 0x3,0x5d,0x59, 0x4,0x68,0x24, 0x4,0x68,0x23, + 0x3,0x5e,0x7d, 0x4,0x68,0x22, 0x4,0x69,0x67, 0x4,0x69,0x65, + 0x3,0x5f,0x77, 0x4,0x69,0x68, 0x4,0x6b,0x31, 0x3,0x61,0x56, + 0x4,0x6d,0x30, 0x4,0x6d,0x67, 0x4,0x6e,0x25, 0x3,0x4f,0x6c, + 0x3,0x53,0x67, 0x4,0x5e,0x5f, 0x4,0x62,0x3c, 0x4,0x48,0x5d, + 0x3,0x57,0x2f, 0x4,0x55,0x26, 0x3,0x57,0x2e, 0x3,0x61,0x71, + 0x3,0x40,0x2d, 0x5,0x44,0x4a, 0x3,0x45,0x60, 0x4,0x48,0x5e, + 0x3,0x4a,0x65, 0x4,0x48,0x5f, 0x3,0x4a,0x5f, 0x3,0x4a,0x67, + 0x3,0x4a,0x68, 0x3,0x4a,0x6b, 0x3,0x4a,0x69, 0x4,0x4e,0x6f, + 0x3,0x4f,0x71, 0x3,0x4f,0x70, 0x4,0x4e,0x6e, 0x3,0x4f,0x6f, + 0x4,0x4e,0x6d, 0x4,0x4e,0x70, 0x3,0x53,0x6f, 0x3,0x53,0x6e, + 0x3,0x53,0x6d, 0x5,0x5a,0x2c, 0x3,0x53,0x69, 0x4,0x55,0x2d, + 0x5,0x5a,0x2e, 0x7,0x36,0x28, 0x4,0x5a,0x2e, 0x3,0x57,0x32, + 0x3,0x57,0x35, 0x4,0x5a,0x2d, 0x3,0x57,0x31, 0x4,0x5e,0x67, + 0x5,0x6a,0x6e, 0x4,0x5e,0x62, 0x3,0x59,0x68, 0x4,0x5e,0x68, + 0x3,0x59,0x69, 0x4,0x5e,0x63, 0x4,0x5e,0x65, 0x3,0x59,0x6c, + 0x4,0x62,0x41, 0x4,0x62,0x3f, 0x3,0x5b,0x6a, 0x4,0x62,0x46, + 0x4,0x62,0x40, 0x4,0x62,0x44, 0x4,0x62,0x45, 0x4,0x65,0x41, + 0x4,0x65,0x40, 0x3,0x5d,0x5d, 0x3,0x5d,0x5b, 0x4,0x65,0x47, + 0x5,0x6e,0x66, 0x5,0x6e,0x6d, 0x3,0x5d,0x5c, 0x4,0x68,0x29, + 0x4,0x68,0x2a, 0x4,0x68,0x2b, 0x4,0x68,0x2d, 0x3,0x5f,0x23, + 0x5,0x72,0x2d, 0x4,0x68,0x28, 0x7,0x5a,0x3e, 0x5,0x74,0x76, + 0x4,0x69,0x6b, 0x4,0x69,0x69, 0x3,0x5f,0x7a, 0x4,0x6b,0x33, + 0x4,0x6b,0x34, 0x4,0x6b,0x32, 0x3,0x61,0x2b, 0x7,0x60,0x2e, + 0x7,0x60,0x2d, 0x3,0x61,0x57, 0x4,0x6d,0x68, 0x3,0x62,0x27, + 0x4,0x6e,0x3f, 0x3,0x62,0x37, 0x4,0x6e,0x57, 0x3,0x39,0x69, + 0x3,0x40,0x2e, 0x4,0x48,0x62, 0x3,0x4a,0x6d, 0x3,0x4f,0x75, + 0x4,0x4e,0x75, 0x4,0x4e,0x73, 0x4,0x4e,0x76, 0x3,0x4f,0x78, + 0x3,0x53,0x72, 0x3,0x53,0x73, 0x4,0x55,0x30, 0x4,0x55,0x32, + 0x4,0x55,0x2f, 0x4,0x55,0x2e, 0x3,0x57,0x39, 0x4,0x5a,0x31, + 0x4,0x5a,0x35, 0x4,0x5a,0x30, 0x3,0x57,0x38, 0x4,0x5a,0x33, + 0x5,0x66,0x51, 0x4,0x5e,0x6e, 0x3,0x5b,0x70, 0x4,0x62,0x48, + 0x4,0x62,0x47, 0x4,0x65,0x49, 0x3,0x5d,0x5f, 0x4,0x68,0x30, + 0x4,0x69,0x6e, 0x4,0x6b,0x35, 0x4,0x6c,0x3e, 0x4,0x6d,0x33, + 0x3,0x40,0x30, 0x4,0x42,0x22, 0x4,0x62,0x4a, 0x5,0x74,0x7a, + 0x7,0x64,0x75, 0x3,0x40,0x31, 0x5,0x3d,0x52, 0x6,0x64,0x5e, + 0x4,0x48,0x6a, 0x4,0x48,0x69, 0x4,0x48,0x67, 0x3,0x4a,0x74, + 0x5,0x4b,0x59, 0x4,0x4e,0x7b, 0x3,0x4f,0x7a, 0x4,0x55,0x35, + 0x4,0x55,0x36, 0x4,0x5a,0x38, 0x3,0x57,0x3d, 0x4,0x5a,0x3b, + 0x4,0x5e,0x70, 0x4,0x5e,0x73, 0x3,0x59,0x6e, 0x4,0x5e,0x74, + 0x4,0x5e,0x76, 0x4,0x5e,0x75, 0x4,0x5e,0x77, 0x4,0x62,0x4e, + 0x3,0x5b,0x72, 0x4,0x62,0x4c, 0x4,0x65,0x4d, 0x4,0x65,0x4f, + 0x4,0x65,0x4e, 0x7,0x51,0x79, 0x5,0x72,0x3f, 0x3,0x5f,0x26, + 0x4,0x69,0x72, 0x4,0x6c,0x43, 0x4,0x6c,0x41, 0x3,0x61,0x2d, + 0x5,0x78,0x52, 0x4,0x6d,0x35, 0x7,0x61,0x6a, 0x4,0x6d,0x69, + 0x4,0x6e,0x49, 0x7,0x51,0x7d, 0x5,0x72,0x41, 0x3,0x4a,0x77, + 0x3,0x4a,0x76, 0x3,0x4d,0x3e, 0x3,0x53,0x76, 0x7,0x5a,0x4b, + 0x3,0x61,0x58, 0x3,0x4a,0x79, 0x4,0x4f,0x24, 0x4,0x4f,0x25, + 0x4,0x55,0x3f, 0x3,0x53,0x77, 0x4,0x5e,0x7e, 0x3,0x59,0x70, + 0x4,0x5e,0x7d, 0x4,0x5e,0x7c, 0x3,0x5b,0x73, 0x5,0x66,0x68, + 0x3,0x5d,0x65, 0x4,0x69,0x77, 0x4,0x69,0x76, 0x7,0x5a,0x4f, + 0x4,0x6c,0x48, 0x4,0x6c,0x49, 0x4,0x6e,0x58, 0x5,0x3d,0x54, + 0x4,0x48,0x6d, 0x5,0x4b,0x64, 0x4,0x4f,0x28, 0x4,0x4f,0x34, + 0x3,0x50,0x21, 0x7,0x2b,0x6a, 0x4,0x4f,0x39, 0x4,0x4f,0x32, + 0x4,0x4f,0x2b, 0x4,0x4f,0x29, 0x3,0x54,0x27, 0x4,0x55,0x44, + 0x4,0x55,0x42, 0x4,0x55,0x48, 0x3,0x53,0x7e, 0x3,0x54,0x28, + 0x4,0x55,0x41, 0x3,0x54,0x26, 0x3,0x54,0x24, 0x3,0x54,0x22, + 0x3,0x53,0x7b, 0x4,0x5a,0x40, 0x3,0x57,0x41, 0x4,0x5f,0x21, + 0x7,0x3e,0x49, 0x4,0x5a,0x42, 0x3,0x59,0x72, 0x4,0x5f,0x23, + 0x5,0x66,0x6e, 0x4,0x5f,0x27, 0x4,0x5f,0x25, 0x3,0x59,0x78, + 0x4,0x5f,0x24, 0x3,0x59,0x77, 0x4,0x5f,0x29, 0x4,0x5f,0x2b, + 0x4,0x62,0x5d, 0x5,0x6b,0x35, 0x4,0x62,0x67, 0x4,0x62,0x57, + 0x4,0x62,0x61, 0x4,0x62,0x59, 0x4,0x62,0x54, 0x3,0x5b,0x76, + 0x5,0x6b,0x31, 0x4,0x62,0x62, 0x5,0x6b,0x2b, 0x4,0x62,0x60, + 0x4,0x62,0x64, 0x3,0x5b,0x78, 0x3,0x5b,0x7b, 0x3,0x5b,0x7c, + 0xf,0x64,0x72, 0x3,0x5d,0x77, 0x4,0x65,0x55, 0x7,0x52,0x31, + 0x4,0x65,0x5b, 0x3,0x5d,0x6c, 0x7,0x52,0x33, 0x4,0x65,0x53, + 0x3,0x5d,0x6b, 0x3,0x5d,0x6d, 0x4,0x68,0x3d, 0x3,0x5f,0x2d, + 0x3,0x5f,0x30, 0x4,0x68,0x3c, 0x3,0x5f,0x2e, 0x3,0x5f,0x2b, + 0x4,0x68,0x3a, 0x3,0x5f,0x29, 0x3,0x5f,0x2f, 0x4,0x69,0x7d, + 0x3,0x5f,0x7d, 0x4,0x6a,0x21, 0x4,0x69,0x7c, 0x3,0x5f,0x7c, + 0x4,0x69,0x7e, 0x3,0x60,0x24, 0x4,0x69,0x7b, 0x3,0x60,0x21, + 0xf,0x6a,0x3f, 0x4,0x6b,0x3c, 0x4,0x6b,0x3d, 0x4,0x6b,0x40, + 0x4,0x6b,0x3b, 0x7,0x5e,0x23, 0x3,0x60,0x67, 0x3,0x60,0x64, + 0x5,0x78,0x5b, 0x5,0x78,0x56, 0x3,0x61,0x30, 0x4,0x6c,0x4d, + 0x4,0x6c,0x4e, 0x5,0x77,0x24, 0x3,0x61,0x5a, 0x4,0x6d,0x39, + 0x3,0x61,0x31, 0x4,0x6e,0x2c, 0x4,0x6e,0x2d, 0x4,0x6e,0x5b, + 0x3,0x45,0x65, 0x3,0x4a,0x7a, 0x3,0x4a,0x7b, 0x3,0x4a,0x7c, + 0x3,0x4a,0x7e, 0x5,0x4b,0x6b, 0x3,0x4a,0x7d, 0x5,0x53,0x38, + 0x4,0x4f,0x3f, 0x3,0x50,0x23, 0x4,0x4f,0x44, 0x4,0x4f,0x3b, + 0x7,0x2b,0x6d, 0x4,0x4f,0x40, 0x3,0x50,0x28, 0x3,0x50,0x29, + 0x3,0x50,0x26, 0x3,0x4c,0x63, 0x4,0x4f,0x41, 0x4,0x55,0x4e, + 0x3,0x54,0x2f, 0x4,0x55,0x4d, 0x3,0x54,0x30, 0x4,0x55,0x4f, + 0x3,0x54,0x2b, 0x4,0x55,0x54, 0x7,0x36,0x4a, 0x4,0x55,0x4a, + 0x3,0x54,0x2e, 0x4,0x55,0x57, 0x3,0x57,0x4b, 0x4,0x55,0x4b, + 0x3,0x54,0x31, 0x4,0x55,0x55, 0x3,0x54,0x34, 0x4,0x55,0x50, + 0x7,0x36,0x51, 0x3,0x56,0x33, 0x3,0x57,0x4c, 0x4,0x5a,0x51, + 0x3,0x57,0x47, 0x3,0x57,0x49, 0x3,0x57,0x46, 0x4,0x5a,0x52, + 0x3,0x57,0x4e, 0x4,0x5a,0x50, 0x4,0x5f,0x2f, 0x4,0x5f,0x35, + 0x4,0x5f,0x2c, 0x3,0x5a,0x21, 0x3,0x59,0x7c, 0x4,0x5f,0x32, + 0x4,0x5f,0x31, 0x5,0x67,0x26, 0x4,0x5f,0x38, 0x4,0x62,0x6a, + 0x3,0x5c,0x21, 0x4,0x62,0x6c, 0x4,0x65,0x61, 0x3,0x5c,0x28, + 0x4,0x62,0x6f, 0x5,0x6b,0x3c, 0x4,0x5f,0x36, 0xf,0x64,0x75, + 0x3,0x5d,0x78, 0x4,0x65,0x6c, 0x3,0x5d,0x7d, 0x3,0x5d,0x7b, + 0x4,0x65,0x6a, 0x4,0x65,0x64, 0x3,0x5d,0x7c, 0x7,0x52,0x42, + 0x4,0x65,0x62, 0x4,0x65,0x6b, 0x3,0x5d,0x7e, 0x3,0x5f,0x34, + 0x4,0x68,0x40, 0x4,0x68,0x42, 0x4,0x68,0x41, 0x5,0x72,0x63, + 0x3,0x5f,0x33, 0x4,0x6a,0x27, 0x4,0x6a,0x2c, 0x3,0x60,0x28, + 0x4,0x6a,0x26, 0x3,0x60,0x26, 0x3,0x60,0x27, 0x4,0x6b,0x45, + 0x3,0x60,0x6b, 0x5,0x77,0x2c, 0x4,0x6b,0x44, 0x5,0x77,0x34, + 0x4,0x6b,0x47, 0x3,0x60,0x6a, 0x3,0x60,0x69, 0x4,0x6b,0x48, + 0x4,0x6c,0x50, 0x4,0x6c,0x52, 0x4,0x6c,0x51, 0x3,0x61,0x36, + 0x4,0x6c,0x54, 0x4,0x6d,0x3d, 0x3,0x61,0x5c, 0x7,0x63,0x37, + 0x3,0x62,0x2a, 0x3,0x62,0x3e, 0x4,0x6e,0x59, 0x3,0x62,0x43, + 0x4,0x4f,0x47, 0x4,0x5f,0x39, 0x7,0x57,0x29, 0x4,0x6b,0x4d, + 0x5,0x79,0x73, 0x5,0x4b,0x6d, 0x4,0x4f,0x49, 0x4,0x4f,0x4a, + 0x3,0x50,0x2d, 0x3,0x54,0x38, 0x4,0x55,0x58, 0x7,0x36,0x5c, + 0x3,0x5a,0x23, 0x4,0x62,0x72, 0x3,0x5f,0x39, 0x3,0x61,0x37, + 0x3,0x61,0x38, 0x4,0x48,0x73, 0x4,0x48,0x74, 0x3,0x4b,0x21, + 0x4,0x4f,0x4d, 0x4,0x4f,0x4b, 0x4,0x55,0x59, 0x4,0x55,0x5c, + 0x4,0x55,0x5a, 0x4,0x55,0x5d, 0x3,0x57,0x4f, 0x4,0x5f,0x3c, + 0x4,0x5f,0x3b, 0x3,0x5a,0x27, 0x4,0x62,0x79, 0x4,0x62,0x76, + 0x4,0x62,0x7d, 0x4,0x62,0x77, 0x4,0x62,0x7c, 0x4,0x68,0x49, + 0x4,0x68,0x48, 0x4,0x68,0x4a, 0x5,0x75,0x4d, 0x5,0x75,0x48, + 0x4,0x6b,0x4e, 0x3,0x61,0x39, 0x7,0x5a,0x7d, 0x4,0x6d,0x41, + 0x7,0x2c,0x31, 0x4,0x65,0x71, 0x4,0x65,0x72, 0x7,0x36,0x65, + 0x4,0x5f,0x3d, 0x4,0x63,0x21, 0x4,0x65,0x76, 0x4,0x68,0x4b, + 0x4,0x6b,0x52, 0x4,0x6c,0x5a, 0x7,0x2c,0x33, 0x4,0x55,0x5e, + 0x7,0x36,0x67, 0x5,0x6f,0x52, 0x4,0x65,0x79, 0x5,0x6f,0x54, + 0x4,0x68,0x4c, 0x4,0x68,0x4e, 0x4,0x68,0x4d, 0x4,0x6a,0x31, + 0x4,0x6b,0x55, 0x4,0x6d,0x42, 0x4,0x42,0x2c, 0x3,0x4b,0x23, + 0x4,0x4f,0x52, 0x4,0x4f,0x53, 0x4,0x55,0x5f, 0x4,0x5a,0x5f, + 0x5,0x61,0x23, 0x5,0x67,0x40, 0x5,0x67,0x3d, 0x4,0x5f,0x3f, + 0x5,0x67,0x41, 0x4,0x63,0x23, 0x3,0x5c,0x2b, 0x4,0x65,0x7c, + 0x4,0x66,0x21, 0x4,0x65,0x7d, 0x5,0x6f,0x58, 0x4,0x68,0x52, + 0x3,0x5f,0x3b, 0x4,0x6b,0x56, 0x4,0x6c,0x5b, 0x4,0x6d,0x44, + 0x3,0x61,0x5e, 0x4,0x6d,0x43, 0x4,0x6d,0x6f, 0x4,0x5f,0x40, + 0x3,0x5c,0x2c, 0x4,0x6a,0x37, 0x3,0x61,0x3a, 0x4,0x55,0x61, + 0x4,0x6c,0x61, 0x4,0x6c,0x62, 0x4,0x5f,0x43, 0x4,0x5f,0x42, + 0x4,0x5f,0x44, 0x4,0x63,0x26, 0x4,0x68,0x59, 0x4,0x55,0x62, + 0x4,0x5a,0x63, 0x4,0x5f,0x45, 0x4,0x63,0x27, 0x4,0x68,0x5a, + 0x3,0x60,0x2a, 0x4,0x6b,0x58, 0x4,0x6b,0x5b, 0x3,0x5a,0x2c, + 0x4,0x5f,0x46, 0x3,0x5e,0x23, 0x7,0x52,0x67, 0x5,0x6f,0x61, + 0x4,0x68,0x5c, 0x4,0x6e,0x31, 0x5,0x7b,0x7a, 0x4,0x5a,0x66, + 0x5,0x61,0x2d, 0x4,0x5f,0x48, 0x4,0x63,0x29, 0x4,0x63,0x2b, + 0x4,0x66,0x27, 0x4,0x66,0x25, 0x4,0x66,0x26, 0x3,0x5f,0x3d, + 0x4,0x68,0x61, 0x4,0x6a,0x3d, 0x4,0x6a,0x3c, 0x3,0x60,0x6e, + 0x5,0x77,0x4d, 0x4,0x6c,0x69, 0x4,0x6c,0x66, 0x4,0x6c,0x6a, + 0x4,0x6d,0x4c, 0x4,0x6d,0x4b, 0x4,0x6d,0x70, 0x3,0x61,0x76, + 0x3,0x62,0x2b, 0x3,0x62,0x32, 0x4,0x6e,0x4b, 0x4,0x6e,0x4c, + 0x4,0x6e,0x5a, 0x5,0x75,0x61, 0x5,0x6b,0x69, 0x5,0x6c,0x44, + 0x4,0x68,0x62, 0x4,0x68,0x63, 0x4,0x6d,0x51, 0x3,0x62,0x2c, + 0x1,0x44,0x21, 0x1,0x44,0x23, 0x4,0x21,0x26, 0x1,0x44,0x24, + 0x3,0x21,0x26, 0x3,0x21,0x25, 0x2,0x21,0x26, 0x1,0x44,0x37, + 0x1,0x44,0x35, 0x1,0x44,0x38, 0x1,0x44,0x36, 0x2,0x21,0x27, + 0x1,0x44,0x62, 0x2,0x21,0x2f, 0x2,0x21,0x2d, 0x1,0x44,0x61, + 0x1,0x44,0x60, 0x4,0x21,0x39, 0x1,0x45,0x62, 0x1,0x45,0x61, + 0x1,0x45,0x60, 0x4,0x21,0x55, 0x1,0x45,0x63, 0x1,0x45,0x5f, + 0x1,0x47,0x22, 0x1,0x47,0x23, 0x3,0x22,0x62, 0x3,0x22,0x61, + 0x3,0x22,0x63, 0x4,0x23,0x35, 0x3,0x24,0x3f, 0x1,0x4b,0x64, + 0x3,0x21,0x21, 0x4,0x21,0x27, 0x3,0x21,0x2c, 0x1,0x44,0x39, + 0x1,0x44,0x63, 0x2,0x21,0x30, 0x4,0x21,0x3a, 0x1,0x44,0x64, + 0x2,0x21,0x43, 0x1,0x48,0x6b, 0x2,0x25,0x31, 0x4,0x2b,0x5e, + 0x3,0x21,0x22, 0x1,0x44,0x3a, 0x1,0x44,0x65, 0x1,0x45,0x64, + 0x2,0x21,0x44, 0x3,0x27,0x40, 0x3,0x21,0x23, 0x4,0x21,0x22, + 0x4,0x21,0x23, 0x2,0x21,0x21, 0x1,0x44,0x25, 0x1,0x44,0x3c, + 0x3,0x21,0x30, 0x2,0x21,0x28, 0x1,0x44,0x3d, 0x3,0x21,0x2e, + 0x1,0x44,0x66, 0x1,0x45,0x65, 0x1,0x45,0x67, 0x1,0x45,0x66, + 0x4,0x22,0x27, 0x1,0x47,0x24, 0x1,0x47,0x25, 0x3,0x23,0x45, + 0x1,0x4b,0x65, 0x3,0x2b,0x22, 0x1,0x53,0x7d, 0x1,0x44,0x22, + 0x4,0x21,0x24, 0x2,0x21,0x22, 0x1,0x44,0x26, 0x1,0x44,0x3f, + 0x1,0x44,0x3e, 0x3,0x21,0x46, 0x3,0x21,0x45, 0x3,0x22,0x64, + 0x1,0x47,0x26, 0x4,0x22,0x28, 0x3,0x24,0x40, 0x1,0x4b,0x66, + 0x4,0x25,0x31, 0x4,0x25,0x30, 0x3,0x2b,0x23, 0x1,0x58,0x71, + 0x2,0x33,0x4e, 0x3,0x39,0x6c, 0x3,0x39,0x6e, 0x1,0x63,0x2a, + 0x2,0x41,0x56, 0x2,0x41,0x57, 0x3,0x21,0x24, 0x1,0x44,0x27, + 0x3,0x21,0x2d, 0x1,0x44,0x68, 0x3,0x22,0x65, 0x1,0x4b,0x67, + 0x1,0x44,0x28, 0x2,0x21,0x29, 0x1,0x44,0x40, 0x3,0x21,0x31, + 0x1,0x44,0x69, 0x1,0x44,0x6b, 0x2,0x21,0x31, 0x1,0x44,0x6c, + 0x1,0x44,0x6a, 0x4,0x21,0x3b, 0x3,0x21,0x6c, 0x3,0x22,0x66, + 0x1,0x47,0x27, 0x1,0x4b,0x68, 0x3,0x24,0x42, 0x3,0x27,0x42, + 0x1,0x4b,0x69, 0x1,0x4f,0x67, 0x1,0x27,0x28, 0x1,0x44,0x41, + 0x1,0x44,0x6d, 0x3,0x21,0x47, 0x1,0x47,0x28, 0x1,0x47,0x2a, + 0x1,0x47,0x29, 0x1,0x48,0x6c, 0x1,0x4b,0x6a, 0x1,0x4b,0x6b, + 0x1,0x4f,0x68, 0x1,0x4f,0x69, 0x3,0x2b,0x26, 0x3,0x2b,0x25, + 0x3,0x2b,0x27, 0x3,0x2b,0x24, 0x1,0x53,0x7e, 0x4,0x36,0x2e, + 0x2,0x41,0x58, 0x3,0x40,0x33, 0x2,0x6d,0x44, 0x1,0x44,0x29, + 0x3,0x21,0x32, 0x3,0x21,0x33, 0x1,0x44,0x6f, 0x1,0x44,0x6e, + 0x2,0x21,0x32, 0x1,0x44,0x70, 0x1,0x44,0x76, 0x3,0x21,0x49, + 0x1,0x44,0x71, 0x1,0x44,0x72, 0x2,0x21,0x34, 0x2,0x21,0x33, + 0x1,0x44,0x74, 0x1,0x44,0x75, 0x3,0x21,0x4c, 0x1,0x44,0x73, + 0x3,0x21,0x4b, 0x3,0x21,0x4a, 0x4,0x21,0x3c, 0x1,0x45,0x6a, + 0x1,0x45,0x6b, 0x1,0x45,0x6c, 0x1,0x45,0x6d, 0x1,0x45,0x69, + 0x1,0x45,0x70, 0x2,0x21,0x4a, 0x4,0x21,0x5b, 0x2,0x21,0x46, + 0x2,0x21,0x49, 0x1,0x45,0x71, 0x1,0x46,0x23, 0x3,0x21,0x6d, + 0x2,0x21,0x48, 0x4,0x21,0x5a, 0x1,0x45,0x6e, 0x1,0x45,0x6f, + 0x1,0x45,0x68, 0x3,0x21,0x72, 0x3,0x21,0x70, 0x2,0x21,0x45, + 0x2,0x21,0x47, 0x3,0x22,0x6f, 0x3,0x22,0x68, 0x1,0x47,0x37, + 0x2,0x21,0x6f, 0x1,0x47,0x34, 0x1,0x47,0x38, 0x2,0x21,0x79, + 0x2,0x21,0x6d, 0x1,0x47,0x35, 0x2,0x21,0x71, 0x3,0x22,0x6b, + 0x3,0x22,0x67, 0x3,0x22,0x76, 0x1,0x47,0x36, 0x3,0x22,0x6e, + 0x1,0x47,0x39, 0x4,0x22,0x2d, 0x1,0x47,0x2b, 0x2,0x21,0x70, + 0x1,0x47,0x3a, 0x2,0x21,0x74, 0x3,0x22,0x6d, 0x2,0x21,0x78, + 0x2,0x21,0x75, 0x3,0x22,0x6c, 0x3,0x22,0x74, 0x2,0x21,0x72, + 0x1,0x47,0x2c, 0x1,0x47,0x2e, 0x1,0x47,0x3b, 0x4,0x22,0x2a, + 0x1,0x47,0x30, 0x2,0x21,0x6a, 0x1,0x47,0x33, 0x1,0x47,0x31, + 0x1,0x47,0x32, 0x2,0x21,0x7a, 0x2,0x21,0x77, 0x2,0x21,0x6e, + 0x1,0x47,0x2f, 0x3,0x22,0x70, 0x3,0x22,0x77, 0x2,0x21,0x6b, + 0x1,0x47,0x2d, 0x3,0x22,0x75, 0x4,0x22,0x2e, 0x3,0x22,0x73, + 0x2,0x21,0x73, 0x2,0x21,0x76, 0x3,0x22,0x72, 0xf,0x21,0x71, + 0x2,0x21,0x6c, 0x2,0x23,0x28, 0x4,0x23,0x39, 0x1,0x49,0x24, + 0x1,0x48,0x75, 0x3,0x24,0x50, 0x3,0x24,0x48, 0x2,0x23,0x29, + 0x1,0x48,0x72, 0x3,0x24,0x4f, 0x1,0x49,0x26, 0x3,0x24,0x46, + 0x1,0x48,0x7a, 0x3,0x24,0x45, 0x1,0x48,0x79, 0x2,0x22,0x7b, + 0x1,0x48,0x7d, 0x1,0x48,0x78, 0x2,0x23,0x22, 0x2,0x23,0x2a, + 0x3,0x24,0x4e, 0x2,0x23,0x26, 0x3,0x24,0x49, 0x1,0x48,0x7b, + 0x3,0x24,0x4b, 0x3,0x24,0x43, 0x1,0x48,0x7e, 0x1,0x48,0x6f, + 0x1,0x49,0x29, 0x2,0x22,0x7d, 0x3,0x24,0x44, 0x3,0x24,0x4c, + 0x2,0x25,0x3d, 0x1,0x48,0x6d, 0x1,0x49,0x25, 0x1,0x48,0x6e, + 0x1,0x48,0x76, 0x1,0x48,0x77, 0x2,0x23,0x24, 0x2,0x22,0x7e, + 0x1,0x48,0x7c, 0x1,0x48,0x74, 0x2,0x22,0x7a, 0x1,0x48,0x70, + 0x2,0x23,0x27, 0x1,0x49,0x27, 0x1,0x49,0x2a, 0x1,0x48,0x73, + 0x1,0x49,0x22, 0x1,0x49,0x28, 0x1,0x48,0x71, 0x2,0x23,0x25, + 0x1,0x49,0x23, 0x2,0x23,0x2b, 0x2,0x22,0x7c, 0x1,0x49,0x21, + 0x2,0x23,0x21, 0x3,0x64,0x48, 0x2,0x23,0x23, 0x3,0x64,0x49, + 0x1,0x4b,0x79, 0x2,0x25,0x3f, 0x2,0x25,0x4b, 0x1,0x4b,0x71, + 0x3,0x27,0x47, 0x2,0x25,0x4c, 0x1,0x4b,0x6c, 0x1,0x4b,0x76, + 0x4,0x25,0x3e, 0x3,0x27,0x4f, 0x1,0x4b,0x6f, 0x2,0x25,0x39, + 0x1,0x4b,0x77, 0x2,0x25,0x38, 0x2,0x25,0x3c, 0x2,0x25,0x43, + 0x2,0x25,0x41, 0x1,0x4c,0x21, 0x1,0x4b,0x7a, 0x2,0x25,0x33, + 0x2,0x25,0x35, 0x1,0x4b,0x7c, 0x1,0x4b,0x70, 0x2,0x25,0x36, + 0x2,0x25,0x42, 0x2,0x25,0x49, 0x1,0x4b,0x75, 0x2,0x25,0x3b, + 0x2,0x25,0x34, 0x1,0x4b,0x74, 0x2,0x25,0x37, 0x1,0x4b,0x78, + 0x2,0x25,0x3a, 0x3,0x27,0x44, 0x1,0x4b,0x73, 0x3,0x27,0x51, + 0x1,0x4b,0x6e, 0x3,0x27,0x48, 0x1,0x4b,0x7d, 0x2,0x25,0x44, + 0x1,0x4b,0x7e, 0x2,0x25,0x48, 0x3,0x27,0x43, 0x2,0x25,0x46, + 0x2,0x25,0x4a, 0x1,0x4b,0x7b, 0x2,0x25,0x3e, 0x2,0x25,0x32, + 0x4,0x25,0x36, 0x2,0x25,0x40, 0x1,0x4b,0x72, 0x2,0x25,0x45, + 0x1,0x4b,0x6d, 0x2,0x25,0x47, 0x3,0x27,0x4c, 0x3,0x27,0x49, + 0x3,0x27,0x4b, 0x3,0x27,0x4a, 0x3,0x27,0x4d, 0xf,0x25,0x44, + 0x1,0x4f,0x78, 0x1,0x4f,0x6c, 0x3,0x2b,0x2d, 0x3,0x2b,0x2e, + 0x2,0x29,0x22, 0x2,0x29,0x2a, 0x3,0x2b,0x36, 0x1,0x4f,0x6b, + 0x1,0x4f,0x73, 0x1,0x50,0x21, 0x3,0x2b,0x2c, 0x2,0x29,0x30, + 0x2,0x29,0x2e, 0x2,0x29,0x29, 0x4,0x28,0x38, 0x4,0x28,0x3e, + 0x3,0x2b,0x2b, 0x1,0x4f,0x6d, 0x2,0x29,0x2f, 0x2,0x29,0x25, + 0x1,0x4f,0x7b, 0x1,0x4f,0x72, 0x1,0x4f,0x7a, 0x2,0x28,0x7e, + 0x3,0x2b,0x32, 0x2,0x29,0x2c, 0x3,0x2b,0x2f, 0x2,0x29,0x23, + 0x1,0x4f,0x76, 0x2,0x29,0x24, 0x3,0x2b,0x33, 0x2,0x28,0x7d, + 0x1,0x4f,0x7d, 0x1,0x4f,0x70, 0x1,0x4f,0x79, 0x1,0x4f,0x6f, + 0x3,0x2b,0x28, 0x2,0x29,0x21, 0x2,0x29,0x26, 0x3,0x2b,0x29, + 0x2,0x29,0x2d, 0x1,0x4f,0x77, 0x1,0x4f,0x74, 0x2,0x29,0x28, + 0x1,0x4f,0x7c, 0x2,0x29,0x2b, 0x2,0x29,0x27, 0x1,0x4f,0x71, + 0x1,0x4f,0x7e, 0x1,0x4f,0x75, 0x1,0x4f,0x6e, 0x1,0x4f,0x6a, + 0x4,0x28,0x3f, 0x3,0x2b,0x35, 0xf,0x29,0x2d, 0x3,0x2b,0x34, + 0x3,0x64,0x4a, 0x4,0x28,0x3d, 0x2,0x29,0x31, 0x1,0x54,0x3a, + 0x1,0x54,0x24, 0x3,0x2f,0x48, 0x1,0x54,0x34, 0x3,0x2f,0x4d, + 0x1,0x54,0x39, 0x2,0x2d,0x71, 0x2,0x2d,0x70, 0x2,0x2d,0x75, + 0x2,0x2d,0x76, 0x1,0x54,0x27, 0x3,0x2f,0x44, 0x1,0x54,0x30, + 0x3,0x2f,0x58, 0x3,0x2f,0x4c, 0x3,0x2f,0x56, 0x1,0x54,0x3d, + 0x3,0x2f,0x46, 0x1,0x54,0x31, 0x4,0x2b,0x62, 0x3,0x2f,0x4b, + 0x3,0x2f,0x49, 0x3,0x2f,0x47, 0x2,0x2d,0x6a, 0x1,0x54,0x2a, + 0x2,0x2d,0x6b, 0x3,0x2f,0x4f, 0x1,0x54,0x3f, 0x4,0x2b,0x64, + 0x1,0x54,0x36, 0x1,0x54,0x21, 0x1,0x54,0x22, 0x2,0x2d,0x7e, + 0x1,0x59,0x24, 0x3,0x2f,0x53, 0x1,0x54,0x2f, 0x1,0x54,0x2e, + 0x2,0x2d,0x6c, 0x1,0x54,0x32, 0x2,0x33,0x5e, 0x1,0x54,0x29, + 0x2,0x2d,0x77, 0x1,0x54,0x38, 0x1,0x54,0x37, 0x1,0x54,0x2d, + 0x2,0x2d,0x6f, 0x2,0x2d,0x78, 0x3,0x2f,0x45, 0x2,0x2d,0x69, + 0x1,0x54,0x2c, 0x2,0x2d,0x79, 0x1,0x54,0x35, 0x2,0x2d,0x6d, + 0x1,0x54,0x23, 0x3,0x2f,0x4e, 0x1,0x54,0x26, 0x1,0x54,0x25, + 0x2,0x2d,0x7a, 0x1,0x54,0x33, 0x1,0x54,0x28, 0x1,0x54,0x3c, + 0x1,0x54,0x3e, 0x2,0x2d,0x74, 0x1,0x54,0x3b, 0x3,0x2f,0x51, + 0x2,0x2d,0x7c, 0x2,0x2d,0x6e, 0x2,0x2d,0x7d, 0x3,0x2f,0x43, + 0x2,0x2d,0x72, 0x4,0x2b,0x61, 0x2,0x2d,0x7b, 0x3,0x2f,0x50, + 0x2,0x2d,0x73, 0x3,0x2f,0x54, 0x3,0x2f,0x55, 0x1,0x54,0x2b, + 0x3,0x64,0x4b, 0x2,0x33,0x66, 0x2,0x33,0x5a, 0x3,0x34,0x3c, + 0x1,0x58,0x76, 0x3,0x34,0x3f, 0x2,0x33,0x5f, 0x2,0x33,0x65, + 0x1,0x58,0x75, 0x2,0x33,0x58, 0x1,0x58,0x79, 0x2,0x33,0x5c, + 0x2,0x33,0x55, 0x1,0x58,0x77, 0x2,0x33,0x59, 0x1,0x58,0x7c, + 0x1,0x59,0x23, 0x3,0x34,0x44, 0x2,0x33,0x6a, 0x3,0x34,0x41, + 0x2,0x33,0x54, 0x3,0x34,0x42, 0x1,0x58,0x7d, 0x3,0x2f,0x57, + 0x2,0x33,0x69, 0x3,0x34,0x47, 0x3,0x34,0x3d, 0x1,0x58,0x78, + 0x2,0x33,0x5b, 0x1,0x58,0x74, 0x2,0x33,0x56, 0x2,0x33,0x52, + 0x2,0x33,0x60, 0x2,0x33,0x53, 0x2,0x33,0x51, 0x2,0x33,0x5d, + 0x2,0x33,0x63, 0x2,0x33,0x64, 0x1,0x58,0x7a, 0x3,0x34,0x40, + 0x4,0x30,0x47, 0x2,0x3a,0x3f, 0x2,0x33,0x61, 0x2,0x33,0x50, + 0x2,0x33,0x62, 0x3,0x34,0x4b, 0x1,0x59,0x26, 0x2,0x33,0x67, + 0x1,0x59,0x25, 0x2,0x33,0x4f, 0x3,0x34,0x43, 0x2,0x33,0x57, + 0x2,0x33,0x68, 0x1,0x59,0x21, 0x1,0x58,0x7e, 0x1,0x58,0x7b, + 0x1,0x59,0x22, 0x3,0x34,0x4c, 0x3,0x34,0x4a, 0x1,0x58,0x72, + 0x3,0x34,0x45, 0x3,0x34,0x46, 0x1,0x58,0x73, 0x1,0x5e,0x2e, + 0x3,0x39,0x75, 0x2,0x3a,0x42, 0x2,0x3a,0x3b, 0x4,0x36,0x34, + 0x1,0x5e,0x2b, 0x4,0x36,0x33, 0x2,0x3a,0x43, 0x3,0x39,0x71, + 0x3,0x39,0x72, 0x4,0x36,0x36, 0x2,0x3a,0x39, 0x2,0x3a,0x3c, + 0x1,0x5e,0x2a, 0x2,0x3a,0x3d, 0x3,0x39,0x6f, 0x4,0x36,0x31, + 0x1,0x5e,0x2d, 0x2,0x3a,0x41, 0x4,0x36,0x3c, 0x2,0x3a,0x37, + 0x2,0x3a,0x36, 0x1,0x5e,0x2f, 0x3,0x39,0x70, 0x1,0x5e,0x30, + 0x1,0x5e,0x2c, 0x1,0x5e,0x31, 0x2,0x3a,0x35, 0x2,0x3a,0x40, + 0x2,0x3a,0x3e, 0x2,0x3a,0x38, 0x4,0x36,0x39, 0x4,0x36,0x30, + 0x4,0x36,0x3a, 0x1,0x5e,0x29, 0x2,0x3a,0x3a, 0x3,0x64,0x4d, + 0x3,0x40,0x39, 0x3,0x40,0x3c, 0x1,0x63,0x31, 0x1,0x63,0x2b, + 0x2,0x41,0x5c, 0x1,0x63,0x34, 0x2,0x41,0x62, 0x2,0x41,0x65, + 0x1,0x63,0x2d, 0x1,0x63,0x2e, 0x2,0x41,0x5f, 0x1,0x63,0x2c, + 0x2,0x41,0x68, 0x1,0x63,0x32, 0x2,0x41,0x69, 0x3,0x40,0x3a, + 0x2,0x41,0x64, 0x1,0x63,0x33, 0x3,0x40,0x37, 0x2,0x41,0x59, + 0x1,0x63,0x30, 0x2,0x41,0x5a, 0x4,0x3c,0x29, 0x2,0x41,0x63, + 0x2,0x41,0x61, 0x3,0x40,0x3d, 0x2,0x41,0x5d, 0x1,0x63,0x2f, + 0x2,0x41,0x5b, 0x1,0x63,0x35, 0x2,0x41,0x60, 0x2,0x41,0x67, + 0x2,0x41,0x5e, 0x2,0x41,0x66, 0x3,0x40,0x36, 0x3,0x40,0x3e, + 0x1,0x67,0x7c, 0x1,0x67,0x79, 0x3,0x45,0x6b, 0x1,0x67,0x7a, + 0x4,0x42,0x2d, 0x2,0x49,0x21, 0x2,0x48,0x77, 0x1,0x67,0x78, + 0x1,0x67,0x75, 0x2,0x48,0x78, 0x3,0x45,0x6e, 0x3,0x45,0x6c, + 0x1,0x67,0x77, 0x2,0x48,0x7b, 0x3,0x45,0x6d, 0x2,0x48,0x7d, + 0x3,0x45,0x76, 0x4,0x42,0x35, 0x2,0x49,0x26, 0x3,0x45,0x70, + 0x3,0x45,0x75, 0x2,0x49,0x25, 0x2,0x48,0x7e, 0x1,0x67,0x74, + 0x2,0x48,0x76, 0x1,0x67,0x72, 0x2,0x48,0x79, 0x1,0x67,0x7d, + 0x2,0x48,0x7c, 0x3,0x45,0x71, 0x2,0x49,0x22, 0x1,0x67,0x76, + 0x1,0x67,0x73, 0x2,0x49,0x24, 0x2,0x49,0x23, 0x1,0x67,0x7b, + 0x2,0x48,0x7a, 0x3,0x45,0x74, 0x1,0x6c,0x23, 0x2,0x4f,0x54, + 0x3,0x4b,0x29, 0x2,0x4f,0x51, 0x1,0x6c,0x24, 0x4,0x48,0x79, + 0x1,0x6c,0x22, 0x3,0x4b,0x2b, 0x2,0x4f,0x58, 0x2,0x4f,0x55, + 0x2,0x4f,0x4e, 0x1,0x6c,0x21, 0x3,0x4b,0x2d, 0x1,0x6c,0x25, + 0x2,0x4f,0x4f, 0x1,0x6b,0x7e, 0x1,0x6c,0x28, 0x2,0x4f,0x52, + 0x2,0x4f,0x53, 0x1,0x6c,0x26, 0x1,0x6c,0x27, 0x2,0x4f,0x59, + 0x2,0x4f,0x56, 0x2,0x4f,0x57, 0x3,0x4b,0x2c, 0x3,0x4b,0x27, + 0x3,0x64,0x4e, 0x1,0x70,0x33, 0x2,0x56,0x43, 0x1,0x70,0x30, + 0x2,0x56,0x40, 0x1,0x70,0x32, 0x1,0x70,0x34, 0x3,0x50,0x31, + 0x2,0x56,0x41, 0x1,0x70,0x31, 0x4,0x4f,0x5a, 0x2,0x56,0x42, + 0x3,0x50,0x35, 0x2,0x56,0x3f, 0x3,0x50,0x30, 0x3,0x50,0x34, + 0x1,0x73,0x41, 0x2,0x5c,0x49, 0x1,0x73,0x42, 0x2,0x5c,0x47, + 0x4,0x55,0x65, 0x2,0x5c,0x48, 0x2,0x5c,0x46, 0x2,0x5c,0x45, + 0x3,0x54,0x41, 0x3,0x54,0x40, 0x2,0x5c,0x4a, 0x1,0x73,0x40, + 0x3,0x50,0x33, 0x4,0x55,0x69, 0x2,0x61,0x44, 0x2,0x61,0x45, + 0x3,0x57,0x52, 0x2,0x4f,0x50, 0x2,0x61,0x43, 0x1,0x73,0x43, + 0x1,0x78,0x2b, 0x2,0x65,0x37, 0x2,0x65,0x38, 0x3,0x5c,0x32, + 0x1,0x7a,0x62, 0x1,0x7a,0x63, 0x2,0x6b,0x4f, 0x2,0x6b,0x4e, + 0x1,0x7b,0x58, 0x1,0x7b,0x57, 0x2,0x6e,0x7d, 0x3,0x60,0x6f, + 0x1,0x44,0x2a, 0x1,0x44,0x42, 0x1,0x44,0x78, 0x4,0x21,0x3d, + 0x1,0x44,0x77, 0x1,0x45,0x73, 0x1,0x45,0x72, 0x1,0x47,0x3e, + 0x1,0x47,0x3d, 0x1,0x47,0x3f, 0x1,0x47,0x3c, 0x3,0x22,0x78, + 0x1,0x49,0x2c, 0x1,0x49,0x2b, 0x1,0x49,0x2d, 0x3,0x24,0x54, + 0x4,0x23,0x3b, 0x3,0x24,0x53, 0x3,0x24,0x51, 0x1,0x4c,0x23, + 0x4,0x25,0x3f, 0x1,0x4c,0x22, 0x1,0x4c,0x24, 0x3,0x27,0x52, + 0x1,0x50,0x22, 0x4,0x28,0x40, 0x1,0x22,0x79, 0x2,0x2e,0x21, + 0x1,0x22,0x7a, 0x1,0x59,0x27, 0x1,0x22,0x7c, 0x1,0x22,0x7b, + 0x2,0x3a,0x44, 0x3,0x39,0x76, 0x1,0x22,0x7d, 0x1,0x67,0x7e, + 0x1,0x22,0x7e, 0x3,0x5e,0x25, 0x1,0x44,0x2b, 0x3,0x21,0x34, + 0x1,0x44,0x79, 0x1,0x47,0x40, 0x1,0x4c,0x25, 0x3,0x2b,0x37, + 0x1,0x44,0x2c, 0x1,0x44,0x7c, 0x1,0x44,0x7a, 0x1,0x44,0x7b, + 0x1,0x47,0x41, 0x3,0x22,0x7a, 0x4,0x22,0x34, 0x1,0x49,0x2e, + 0x1,0x4c,0x27, 0x1,0x4c,0x26, 0x1,0x4c,0x28, 0x3,0x2e,0x7b, + 0x1,0x54,0x40, 0x3,0x40,0x3f, 0x3,0x64,0x53, 0x1,0x70,0x35, + 0x3,0x21,0x27, 0x4,0x21,0x3e, 0x3,0x21,0x4d, 0x3,0x21,0x48, + 0x3,0x21,0x4e, 0x2,0x21,0x2e, 0x4,0x21,0x52, 0x1,0x45,0x74, + 0x1,0x45,0x75, 0x3,0x21,0x78, 0x3,0x21,0x79, 0x1,0x47,0x42, + 0x4,0x22,0x36, 0x2,0x23,0x2c, 0x3,0x27,0x55, 0x1,0x50,0x24, + 0x1,0x50,0x23, 0x2,0x2e,0x23, 0x2,0x2e,0x22, 0x1,0x59,0x28, + 0x3,0x21,0x28, 0x1,0x44,0x7d, 0x2,0x21,0x35, 0x3,0x21,0x7a, + 0x3,0x24,0x57, 0x2,0x25,0x4d, 0x3,0x2b,0x39, 0x1,0x50,0x25, + 0x3,0x2f,0x5b, 0x1,0x54,0x43, 0x3,0x2f,0x59, 0x1,0x54,0x41, + 0x1,0x54,0x42, 0x3,0x2f,0x5a, 0x3,0x34,0x4d, 0xf,0x46,0x5c, + 0x1,0x70,0x36, 0x1,0x27,0x2f, 0x1,0x45,0x76, 0x4,0x21,0x5e, + 0x1,0x47,0x43, 0x2,0x21,0x7b, 0x3,0x22,0x7e, 0x3,0x22,0x7d, + 0x3,0x22,0x7c, 0x3,0x24,0x59, 0x1,0x49,0x2f, 0x1,0x49,0x30, + 0x3,0x24,0x5a, 0x2,0x23,0x2d, 0x4,0x23,0x3d, 0x2,0x25,0x4e, + 0x1,0x4c,0x29, 0x2,0x25,0x4f, 0x4,0x25,0x40, 0x4,0x25,0x43, + 0x3,0x2b,0x3b, 0x3,0x2b,0x3d, 0x3,0x2b,0x3e, 0x2,0x2e,0x25, + 0x2,0x2e,0x26, 0x1,0x54,0x46, 0x3,0x2f,0x5e, 0x2,0x2e,0x27, + 0x3,0x2f,0x5f, 0x2,0x2e,0x24, 0x1,0x54,0x47, 0x1,0x54,0x45, + 0x1,0x54,0x44, 0x2,0x2e,0x28, 0x3,0x34,0x4f, 0x2,0x33,0x6b, + 0x3,0x34,0x4e, 0x3,0x39,0x7d, 0x3,0x39,0x7a, 0x2,0x3a,0x45, + 0x4,0x36,0x3f, 0x3,0x39,0x7e, 0x2,0x41,0x6a, 0x2,0x49,0x27, + 0x3,0x4b,0x2f, 0x3,0x4b,0x2e, 0x3,0x4b,0x30, 0x1,0x6c,0x29, + 0x1,0x70,0x37, 0x2,0x56,0x44, 0x3,0x54,0x42, 0x1,0x44,0x2d, + 0x1,0x44,0x3b, 0x3,0x21,0x2f, 0x3,0x21,0x35, 0x3,0x21,0x51, + 0x3,0x21,0x7b, 0x3,0x23,0x22, 0xf,0x22,0x59, 0x3,0x24,0x5b, + 0x3,0x27,0x59, 0x4,0x25,0x45, 0x1,0x59,0x29, 0x1,0x5e,0x33, + 0x6,0x46,0x65, 0x1,0x68,0x21, 0x3,0x45,0x7a, 0x2,0x21,0x23, + 0x1,0x44,0x7e, 0x4,0x21,0x60, 0x1,0x45,0x79, 0x1,0x45,0x77, + 0x1,0x45,0x78, 0x1,0x4c,0x2a, 0x3,0x27,0x5a, 0x1,0x44,0x2e, + 0x1,0x44,0x2f, 0x4,0x21,0x2a, 0x1,0x44,0x43, 0x3,0x21,0x36, + 0x3,0x21,0x52, 0x1,0x45,0x21, 0x1,0x45,0x22, 0x1,0x45,0x23, + 0x2,0x21,0x4c, 0x1,0x45,0x7a, 0x3,0x21,0x7d, 0x2,0x21,0x4b, + 0x1,0x47,0x47, 0x3,0x23,0x25, 0x2,0x21,0x7d, 0x1,0x47,0x45, + 0x1,0x47,0x46, 0x2,0x21,0x7c, 0x3,0x23,0x24, 0x3,0x23,0x26, + 0x1,0x47,0x48, 0x1,0x47,0x44, 0x3,0x23,0x27, 0x2,0x23,0x2e, + 0x1,0x4f,0x4f, 0x2,0x23,0x2f, 0x3,0x24,0x5f, 0x3,0x24,0x61, + 0x2,0x23,0x30, 0x4,0x23,0x40, 0x3,0x24,0x5c, 0x1,0x49,0x32, + 0x1,0x49,0x31, 0x3,0x24,0x5e, 0x3,0x24,0x5d, 0x1,0x49,0x35, + 0x1,0x49,0x33, 0x1,0x49,0x34, 0x3,0x24,0x60, 0x1,0x4c,0x30, + 0x3,0x27,0x5b, 0x1,0x4c,0x2f, 0x2,0x25,0x54, 0x2,0x25,0x51, + 0x2,0x25,0x52, 0x3,0x27,0x5e, 0x2,0x25,0x50, 0x1,0x4c,0x31, + 0x1,0x4c,0x2d, 0x1,0x4c,0x2c, 0x3,0x27,0x5f, 0x1,0x4c,0x2e, + 0x1,0x4c,0x2b, 0x3,0x27,0x5d, 0x4,0x25,0x4e, 0x3,0x64,0x4f, + 0x1,0x4c,0x32, 0x1,0x50,0x27, 0x2,0x29,0x32, 0x3,0x2b,0x3f, + 0x2,0x25,0x53, 0x1,0x50,0x2c, 0x3,0x2b,0x40, 0x2,0x29,0x33, + 0x1,0x50,0x28, 0x1,0x50,0x2b, 0x1,0x50,0x2a, 0x1,0x50,0x29, + 0x1,0x50,0x26, 0x3,0x2b,0x43, 0x2,0x2e,0x2b, 0x3,0x2f,0x68, + 0x1,0x54,0x4a, 0x2,0x2e,0x2e, 0x1,0x54,0x48, 0x3,0x2f,0x65, + 0x4,0x2b,0x6e, 0x3,0x2f,0x62, 0x2,0x2e,0x2a, 0x1,0x54,0x4b, + 0x1,0x54,0x49, 0x1,0x54,0x4c, 0x2,0x2e,0x2c, 0x2,0x2e,0x2d, + 0x3,0x2f,0x60, 0x2,0x2e,0x29, 0x2,0x2e,0x2f, 0x3,0x2f,0x66, + 0x3,0x2f,0x61, 0x3,0x2f,0x63, 0xf,0x2e,0x2d, 0x3,0x2f,0x64, + 0x3,0x34,0x50, 0x1,0x5e,0x37, 0x1,0x59,0x2a, 0x2,0x33,0x6c, + 0x2,0x33,0x6e, 0x2,0x33,0x6d, 0x2,0x33,0x6f, 0x1,0x59,0x2b, + 0x3,0x3a,0x23, 0x1,0x5e,0x34, 0x3,0x3a,0x21, 0x1,0x5e,0x35, + 0x1,0x5e,0x36, 0x3,0x34,0x51, 0x1,0x63,0x37, 0x2,0x41,0x6c, + 0x3,0x40,0x41, 0x2,0x41,0x6b, 0x2,0x41,0x6d, 0x2,0x41,0x6e, + 0x1,0x63,0x38, 0x3,0x40,0x40, 0x1,0x63,0x36, 0x2,0x49,0x28, + 0x2,0x49,0x29, 0x1,0x68,0x23, 0x1,0x68,0x22, 0x2,0x4c,0x61, + 0x4,0x49,0x25, 0x3,0x4b,0x31, 0x1,0x6c,0x2a, 0x1,0x6c,0x2b, + 0x1,0x6c,0x2c, 0x1,0x6c,0x2e, 0x2,0x4f,0x5a, 0x2,0x4f,0x5b, + 0x1,0x6c,0x2d, 0x3,0x4b,0x32, 0x3,0x50,0x36, 0x1,0x70,0x38, + 0x4,0x4f,0x64, 0x1,0x70,0x39, 0x3,0x50,0x37, 0x4,0x55,0x6d, + 0x2,0x65,0x39, 0x2,0x6b,0x51, 0x2,0x6b,0x50, 0x2,0x6e,0x7e, + 0x3,0x60,0x2c, 0x1,0x44,0x30, 0x3,0x21,0x37, 0x3,0x21,0x54, + 0x3,0x21,0x53, 0x1,0x45,0x7c, 0x1,0x45,0x7b, 0x1,0x47,0x49, + 0x4,0x22,0x42, 0x4,0x22,0x3f, 0x2,0x21,0x7e, 0x4,0x22,0x41, + 0x3,0x23,0x28, 0x1,0x49,0x37, 0x1,0x49,0x38, 0x1,0x49,0x36, + 0x1,0x49,0x39, 0x2,0x23,0x31, 0x2,0x23,0x32, 0x4,0x23,0x46, + 0x4,0x23,0x47, 0x4,0x23,0x48, 0x3,0x24,0x63, 0x3,0x24,0x62, + 0x3,0x27,0x61, 0x5,0x25,0x3a, 0x5,0x25,0x37, 0x5,0x25,0x38, + 0x3,0x27,0x60, 0x5,0x25,0x3b, 0x1,0x4c,0x34, 0x2,0x25,0x55, + 0x4,0x25,0x50, 0x1,0x4c,0x33, 0x3,0x27,0x62, 0x2,0x29,0x34, + 0x1,0x50,0x30, 0x2,0x29,0x35, 0x1,0x50,0x2f, 0x3,0x2b,0x48, + 0x3,0x2b,0x46, 0x4,0x28,0x49, 0x1,0x50,0x2d, 0x4,0x28,0x4b, + 0x1,0x50,0x2e, 0x3,0x2b,0x47, 0x3,0x2f,0x6f, 0x2,0x2e,0x30, + 0x3,0x2f,0x6c, 0x3,0x2f,0x6a, 0x3,0x2f,0x6d, 0x3,0x2f,0x6e, + 0x1,0x59,0x2c, 0x2,0x33,0x71, 0x3,0x34,0x52, 0x1,0x59,0x2f, + 0x2,0x33,0x70, 0x1,0x5b,0x2b, 0x1,0x59,0x2e, 0x1,0x59,0x2d, + 0x1,0x5e,0x3a, 0x5,0x36,0x6a, 0x1,0x5e,0x39, 0x1,0x5e,0x38, + 0x1,0x63,0x39, 0x3,0x40,0x45, 0x3,0x40,0x44, 0x1,0x63,0x3c, + 0x1,0x63,0x3d, 0x1,0x63,0x3b, 0x4,0x3c,0x3c, 0x1,0x63,0x3a, + 0x3,0x40,0x46, 0x5,0x44,0x67, 0x2,0x49,0x2a, 0x3,0x46,0x21, + 0x2,0x49,0x2b, 0x5,0x44,0x63, 0x3,0x45,0x7e, 0x3,0x4b,0x33, + 0x2,0x4f,0x5d, 0x1,0x6c,0x2f, 0x2,0x4f,0x5c, 0x3,0x4d,0x2c, + 0x1,0x70,0x3a, 0x2,0x5c,0x4b, 0x1,0x73,0x44, 0x5,0x53,0x62, + 0x2,0x65,0x3a, 0x1,0x79,0x61, 0x1,0x27,0x34, 0x1,0x44,0x44, + 0x1,0x45,0x24, 0x2,0x21,0x36, 0x3,0x21,0x55, 0x1,0x45,0x25, + 0x1,0x45,0x26, 0x3,0x21,0x56, 0xf,0x21,0x30, 0x3,0x22,0x23, + 0x3,0x22,0x22, 0x1,0x45,0x7d, 0x1,0x45,0x7e, 0x3,0x22,0x24, + 0x1,0x47,0x4a, 0x2,0x23,0x33, 0x2,0x25,0x56, 0x2,0x25,0x57, + 0x4,0x25,0x51, 0x1,0x50,0x31, 0x2,0x2e,0x31, 0x1,0x59,0x31, + 0x1,0x59,0x30, 0x2,0x3a,0x47, 0x2,0x3a,0x46, 0x6,0x50,0x74, + 0x3,0x50,0x38, 0x1,0x44,0x31, 0x1,0x45,0x27, 0x1,0x46,0x21, + 0x4,0x30,0x5e, 0x1,0x59,0x32, 0x2,0x21,0x24, 0x4,0x21,0x65, + 0x2,0x21,0x4d, 0x1,0x46,0x22, 0x3,0x22,0x26, 0x2,0x22,0x22, + 0x1,0x47,0x4c, 0x1,0x47,0x4b, 0x2,0x22,0x21, 0x1,0x49,0x3a, + 0x3,0x64,0x50, 0x3,0x24,0x65, 0x3,0x2b,0x49, 0x4,0x28,0x4e, + 0x4,0x28,0x50, 0x1,0x54,0x4d, 0x4,0x2b,0x78, 0x4,0x30,0x5f, + 0x2,0x33,0x72, 0x1,0x63,0x3e, 0x2,0x49,0x2c, 0x1,0x68,0x24, + 0x3,0x46,0x23, 0x3,0x4b,0x34, 0x2,0x56,0x45, 0x3,0x54,0x44, + 0x3,0x5c,0x34, 0x2,0x68,0x6a, 0x3,0x21,0x29, 0x1,0x45,0x28, + 0x3,0x21,0x57, 0x3,0x24,0x66, 0x2,0x25,0x58, 0x2,0x29,0x36, + 0x1,0x59,0x35, 0x1,0x59,0x33, 0x1,0x59,0x34, 0x1,0x44,0x32, + 0x4,0x21,0x30, 0x1,0x44,0x45, 0x1,0x24,0x3f, 0x1,0x45,0x2b, + 0x3,0x21,0x59, 0x1,0x45,0x2a, 0x1,0x45,0x29, 0x1,0x46,0x25, + 0x1,0x46,0x24, 0x3,0x23,0x2a, 0x2,0x21,0x4e, 0x2,0x22,0x23, + 0xf,0x22,0x2c, 0x3,0x23,0x2b, 0x3,0x23,0x2d, 0x1,0x4c,0x38, + 0x1,0x4c,0x35, 0x1,0x4c,0x37, 0x1,0x4c,0x36, 0x3,0x27,0x63, + 0x1,0x50,0x32, 0x3,0x2b,0x4a, 0x4,0x30,0x60, 0x1,0x5e,0x3b, + 0x4,0x66,0x30, 0x1,0x44,0x33, 0x3,0x21,0x5a, 0x1,0x45,0x2c, + 0x3,0x22,0x27, 0x1,0x46,0x27, 0x1,0x46,0x26, 0x2,0x23,0x34, + 0x4,0x23,0x4d, 0x3,0x64,0x51, 0x1,0x4c,0x39, 0x3,0x2a,0x5c, + 0x4,0x30,0x64, 0x3,0x21,0x2a, 0x4,0x21,0x31, 0x2,0x21,0x37, + 0x3,0x22,0x28, 0x1,0x46,0x29, 0x1,0x46,0x28, 0x1,0x47,0x4d, + 0x1,0x47,0x4e, 0x2,0x23,0x35, 0x1,0x49,0x3b, 0x3,0x24,0x67, + 0x1,0x49,0x3c, 0x3,0x27,0x65, 0x1,0x4c,0x3a, 0x1,0x4c,0x3b, + 0x1,0x4c,0x3c, 0x3,0x27,0x66, 0x1,0x50,0x33, 0x2,0x29,0x37, + 0x3,0x2b,0x4b, 0x4,0x30,0x65, 0x1,0x54,0x4e, 0x3,0x40,0x47, + 0x2,0x21,0x25, 0x4,0x21,0x44, 0x1,0x45,0x2d, 0x3,0x21,0x5b, + 0x4,0x21,0x67, 0x4,0x21,0x66, 0x3,0x22,0x29, 0x2,0x22,0x24, + 0x3,0x23,0x2f, 0x2,0x23,0x36, 0x2,0x23,0x37, 0x2,0x25,0x59, + 0x3,0x27,0x67, 0x2,0x25,0x5a, 0x2,0x29,0x39, 0x2,0x29,0x38, + 0x2,0x29,0x3b, 0x2,0x29,0x3a, 0x1,0x50,0x34, 0x3,0x64,0x52, + 0x2,0x33,0x73, 0x1,0x54,0x50, 0x2,0x2e,0x32, 0x1,0x54,0x4f, + 0x3,0x34,0x54, 0x4,0x30,0x68, 0x2,0x3a,0x48, 0x1,0x5e,0x3c, + 0x3,0x3a,0x28, 0x2,0x3a,0x49, 0x3,0x3a,0x27, 0x3,0x40,0x4a, + 0x3,0x40,0x49, 0x3,0x40,0x48, 0x2,0x49,0x2d, 0x1,0x68,0x25, + 0x3,0x46,0x25, 0x4,0x3c,0x40, 0x3,0x46,0x26, 0x3,0x4b,0x35, + 0x1,0x6c,0x30, 0x3,0x54,0x45, 0x2,0x65,0x3b, 0xf,0x6d,0x2e, + 0x3,0x21,0x2b, 0x3,0x21,0x5c, 0x4,0x21,0x45, 0x2,0x21,0x38, + 0x3,0x22,0x2a, 0x1,0x46,0x2a, 0x4,0x22,0x48, 0x3,0x23,0x31, + 0x4,0x25,0x59, 0x3,0x27,0x69, 0x3,0x27,0x6a, 0x1,0x59,0x36, + 0x3,0x34,0x55, 0x3,0x3a,0x29, 0x1,0x44,0x34, 0x1,0x44,0x46, + 0x1,0x45,0x2f, 0x1,0x45,0x2e, 0x3,0x21,0x5e, 0x1,0x45,0x30, + 0x3,0x21,0x60, 0x4,0x21,0x69, 0x3,0x22,0x2b, 0x3,0x23,0x33, + 0x4,0x23,0x4f, 0x1,0x4c,0x3e, 0x3,0x27,0x6b, 0x1,0x4c,0x3d, + 0x1,0x4c,0x3f, 0x3,0x2b,0x50, 0x3,0x2b,0x4f, 0x1,0x50,0x35, + 0x3,0x2b,0x4e, 0x3,0x2b,0x4d, 0x6,0x35,0x78, 0x1,0x54,0x51, + 0x3,0x40,0x4b, 0x2,0x56,0x46, 0x1,0x76,0x3b, 0x1,0x44,0x47, + 0x1,0x46,0x2c, 0x1,0x46,0x3b, 0x1,0x46,0x36, 0x4,0x21,0x6c, + 0x1,0x46,0x31, 0x1,0x46,0x30, 0x1,0x46,0x37, 0x1,0x46,0x35, + 0x1,0x46,0x2e, 0x1,0x46,0x3c, 0x1,0x46,0x2f, 0x1,0x46,0x2b, + 0x1,0x46,0x3a, 0x1,0x46,0x39, 0x1,0x46,0x38, 0x1,0x46,0x2d, + 0x3,0x22,0x31, 0x1,0x46,0x34, 0x3,0x22,0x2d, 0x3,0x22,0x2e, + 0x1,0x46,0x33, 0x3,0x22,0x2f, 0xf,0x21,0x50, 0x1,0x46,0x3d, + 0x1,0x46,0x32, 0x4,0x21,0x6a, 0x3,0x23,0x35, 0x3,0x23,0x37, + 0x1,0x47,0x54, 0x4,0x22,0x4c, 0x1,0x47,0x5a, 0x1,0x47,0x56, + 0x3,0x23,0x39, 0x1,0x47,0x5c, 0x2,0x22,0x25, 0x1,0x47,0x59, + 0x1,0x47,0x4f, 0x1,0x47,0x52, 0x1,0x47,0x55, 0x1,0x47,0x51, + 0x1,0x47,0x58, 0x1,0x47,0x5b, 0x1,0x47,0x50, 0x1,0x47,0x53, + 0x1,0x47,0x57, 0x1,0x47,0x5d, 0x3,0x23,0x3a, 0x3,0x23,0x3b, + 0x3,0x23,0x34, 0x2,0x23,0x40, 0x2,0x23,0x3d, 0x3,0x24,0x76, + 0x1,0x49,0x49, 0x2,0x23,0x3e, 0x1,0x49,0x3d, 0x1,0x49,0x3f, + 0x1,0x49,0x57, 0x1,0x49,0x52, 0x3,0x24,0x79, 0x3,0x24,0x7e, + 0x3,0x24,0x75, 0x2,0x23,0x45, 0x2,0x23,0x3f, 0x1,0x49,0x41, + 0x1,0x49,0x43, 0x2,0x23,0x44, 0x1,0x49,0x4a, 0x2,0x23,0x3a, + 0x1,0x49,0x56, 0x1,0x49,0x58, 0x1,0x49,0x3e, 0x1,0x49,0x4f, + 0x3,0x25,0x24, 0x2,0x23,0x38, 0x1,0x49,0x55, 0x3,0x24,0x77, + 0x1,0x49,0x46, 0x3,0x24,0x7b, 0x1,0x49,0x50, 0x1,0x49,0x51, + 0x2,0x23,0x39, 0x1,0x49,0x4e, 0x1,0x49,0x4c, 0x3,0x24,0x70, + 0x1,0x49,0x4d, 0x1,0x49,0x53, 0x2,0x23,0x41, 0x1,0x49,0x40, + 0x3,0x25,0x21, 0x1,0x49,0x54, 0x2,0x23,0x43, 0x1,0x49,0x48, + 0x1,0x49,0x45, 0x3,0x24,0x73, 0x2,0x23,0x3c, 0x1,0x49,0x44, + 0x2,0x23,0x46, 0x1,0x49,0x47, 0x3,0x24,0x7c, 0x1,0x49,0x4b, + 0x3,0x24,0x78, 0x3,0x24,0x74, 0x3,0x24,0x6d, 0x1,0x49,0x42, + 0x2,0x23,0x42, 0x3,0x24,0x7d, 0x3,0x25,0x22, 0x2,0x23,0x3b, + 0x3,0x25,0x23, 0x4,0x25,0x64, 0x4,0x25,0x63, 0x3,0x27,0x6e, + 0x2,0x25,0x6b, 0x2,0x25,0x6a, 0x1,0x4c,0x51, 0x2,0x25,0x6d, + 0x2,0x25,0x6f, 0x2,0x25,0x64, 0x2,0x25,0x67, 0x2,0x25,0x6e, + 0x1,0x4c,0x52, 0x3,0x27,0x74, 0x3,0x27,0x78, 0x2,0x25,0x61, + 0x2,0x25,0x65, 0x3,0x27,0x75, 0x4,0x25,0x5f, 0x2,0x25,0x69, + 0x2,0x29,0x4a, 0x1,0x4c,0x4d, 0x2,0x29,0x4e, 0x1,0x4c,0x40, + 0x2,0x25,0x66, 0x1,0x4c,0x41, 0x1,0x4c,0x4e, 0x1,0x4c,0x47, + 0x1,0x4c,0x43, 0x3,0x27,0x71, 0x2,0x25,0x62, 0x1,0x4c,0x46, + 0x1,0x4c,0x4b, 0x1,0x4c,0x54, 0x2,0x25,0x63, 0x2,0x25,0x5c, + 0x1,0x4c,0x45, 0x2,0x25,0x5d, 0x2,0x25,0x5f, 0x4,0x25,0x60, + 0x1,0x4c,0x48, 0x3,0x27,0x6c, 0x1,0x4c,0x4a, 0x2,0x25,0x5b, + 0x2,0x25,0x60, 0x3,0x27,0x70, 0x3,0x27,0x79, 0x1,0x4c,0x53, + 0x1,0x4c,0x4f, 0x2,0x25,0x68, 0x1,0x4c,0x55, 0x3,0x27,0x73, + 0x1,0x4c,0x4c, 0x2,0x25,0x5e, 0x1,0x4c,0x49, 0x3,0x27,0x6f, + 0x3,0x27,0x77, 0x1,0x4c,0x44, 0x1,0x4c,0x42, 0x2,0x25,0x6c, + 0x1,0x4c,0x50, 0xf,0x25,0x71, 0x3,0x2b,0x5c, 0x3,0x2b,0x5d, + 0x2,0x29,0x49, 0x2,0x29,0x3d, 0x2,0x29,0x4c, 0x3,0x2b,0x57, + 0x3,0x2b,0x59, 0x2,0x29,0x3f, 0x1,0x50,0x3c, 0x1,0x50,0x4a, + 0x1,0x50,0x38, 0x1,0x50,0x49, 0x1,0x50,0x41, 0x1,0x50,0x46, + 0x1,0x50,0x36, 0x2,0x29,0x3e, 0x2,0x29,0x44, 0x1,0x50,0x45, + 0x2,0x29,0x50, 0x1,0x50,0x47, 0x3,0x2b,0x5b, 0x1,0x50,0x3d, + 0x3,0x2b,0x54, 0x3,0x2b,0x5e, 0x2,0x29,0x46, 0x2,0x29,0x43, + 0x1,0x50,0x3b, 0x3,0x2b,0x51, 0x2,0x29,0x3c, 0x1,0x50,0x48, + 0x2,0x29,0x4b, 0x1,0x50,0x40, 0x2,0x29,0x4d, 0x1,0x50,0x4b, + 0x1,0x50,0x37, 0x1,0x50,0x42, 0x1,0x50,0x3f, 0x2,0x29,0x41, + 0x1,0x50,0x43, 0x2,0x29,0x47, 0x2,0x29,0x48, 0x1,0x50,0x3e, + 0x1,0x50,0x44, 0x1,0x50,0x3a, 0x3,0x2b,0x55, 0x3,0x64,0x54, + 0x3,0x2b,0x63, 0x3,0x2b,0x61, 0x1,0x50,0x39, 0x2,0x29,0x40, + 0x3,0x2b,0x53, 0x2,0x29,0x45, 0x3,0x2b,0x58, 0x2,0x29,0x4f, + 0x2,0x2e,0x46, 0x1,0x54,0x5e, 0x2,0x2e,0x34, 0x4,0x2c,0x2d, + 0x2,0x2e,0x39, 0x1,0x54,0x57, 0x1,0x54,0x62, 0x2,0x2e,0x37, + 0x1,0x54,0x52, 0x1,0x54,0x5c, 0x1,0x54,0x61, 0x2,0x2e,0x3e, + 0x4,0x2c,0x26, 0x1,0x54,0x5d, 0x1,0x54,0x60, 0x3,0x2f,0x77, + 0x3,0x30,0x21, 0x2,0x2e,0x41, 0x1,0x54,0x58, 0x2,0x2e,0x38, + 0x3,0x2f,0x74, 0x3,0x2f,0x78, 0x3,0x30,0x22, 0x2,0x2e,0x44, + 0x2,0x2e,0x45, 0x3,0x2f,0x79, 0x1,0x54,0x5a, 0x2,0x2e,0x43, + 0x1,0x54,0x56, 0x1,0x54,0x65, 0x4,0x2c,0x29, 0x2,0x2e,0x3b, + 0x3,0x2f,0x7b, 0x1,0x54,0x54, 0x3,0x2f,0x7a, 0x2,0x2e,0x48, + 0x2,0x2e,0x3c, 0x2,0x2e,0x40, 0x1,0x54,0x59, 0x1,0x54,0x64, + 0x2,0x2e,0x3d, 0x1,0x54,0x5f, 0x2,0x2e,0x42, 0x2,0x2e,0x49, + 0x2,0x34,0x24, 0x3,0x2f,0x73, 0x2,0x2e,0x47, 0x1,0x54,0x66, + 0x1,0x54,0x53, 0x2,0x2e,0x3f, 0x2,0x2e,0x36, 0x3,0x2f,0x76, + 0x1,0x54,0x5b, 0x4,0x2c,0x28, 0x4,0x2c,0x2e, 0x2,0x2e,0x35, + 0x3,0x2f,0x7e, 0x3,0x30,0x25, 0x2,0x2e,0x3a, 0xf,0x29,0x54, + 0xf,0x2e,0x42, 0xf,0x2e,0x4a, 0x2,0x2e,0x33, 0x1,0x54,0x63, + 0x3,0x67,0x21, 0x3,0x34,0x5f, 0x2,0x33,0x7a, 0x3,0x34,0x68, + 0x1,0x59,0x49, 0x2,0x34,0x2a, 0x1,0x59,0x47, 0x1,0x59,0x44, + 0x2,0x34,0x21, 0x1,0x59,0x40, 0x2,0x34,0x25, 0x1,0x59,0x4b, + 0x2,0x33,0x79, 0x2,0x33,0x7e, 0x2,0x33,0x7d, 0x1,0x54,0x55, + 0x1,0x59,0x46, 0x2,0x34,0x28, 0x3,0x34,0x66, 0x2,0x34,0x2b, + 0x2,0x33,0x76, 0x4,0x30,0x77, 0x1,0x5e,0x4e, 0x3,0x34,0x67, + 0x2,0x34,0x2c, 0x1,0x59,0x4c, 0x4,0x30,0x72, 0x1,0x59,0x3e, + 0x1,0x59,0x3b, 0x2,0x34,0x23, 0x1,0x59,0x38, 0x4,0x30,0x74, + 0x2,0x34,0x29, 0x3,0x34,0x5b, 0x1,0x59,0x3f, 0x2,0x34,0x2d, + 0x3,0x34,0x58, 0x2,0x33,0x77, 0x2,0x34,0x27, 0x1,0x59,0x42, + 0x2,0x33,0x78, 0x2,0x33,0x7b, 0x2,0x34,0x22, 0x3,0x34,0x62, + 0x3,0x34,0x61, 0x1,0x59,0x43, 0x1,0x59,0x41, 0x1,0x59,0x4d, + 0x3,0x34,0x57, 0x3,0x3a,0x36, 0x3,0x34,0x64, 0x4,0x30,0x6b, + 0x1,0x59,0x48, 0x3,0x34,0x5e, 0x1,0x59,0x3c, 0x1,0x5a,0x76, + 0x4,0x30,0x7a, 0x1,0x59,0x3d, 0x2,0x33,0x7c, 0x1,0x59,0x4a, + 0x1,0x59,0x45, 0x2,0x34,0x26, 0x1,0x59,0x3a, 0x3,0x34,0x59, + 0x1,0x59,0x39, 0x3,0x64,0x57, 0x3,0x64,0x56, 0x3,0x67,0x22, + 0x3,0x64,0x55, 0x2,0x33,0x74, 0x2,0x33,0x75, 0x2,0x3a,0x4e, + 0x3,0x3a,0x3c, 0x1,0x5e,0x3d, 0x1,0x5e,0x40, 0x2,0x3a,0x59, + 0x1,0x5e,0x54, 0x2,0x3a,0x5c, 0x1,0x5e,0x3e, 0x2,0x3a,0x55, + 0x1,0x5e,0x44, 0x1,0x5e,0x4a, 0x1,0x61,0x43, 0x3,0x3a,0x31, + 0x3,0x3a,0x38, 0x1,0x5e,0x48, 0x2,0x3a,0x52, 0x1,0x5e,0x55, + 0x1,0x5e,0x41, 0x1,0x5e,0x49, 0x2,0x3a,0x5a, 0x2,0x41,0x7c, + 0x2,0x3a,0x5f, 0x2,0x3a,0x53, 0x4,0x36,0x5c, 0x2,0x3a,0x4a, + 0x2,0x3a,0x57, 0x2,0x3a,0x51, 0x1,0x5e,0x47, 0x2,0x3a,0x5d, + 0x3,0x3a,0x2e, 0x3,0x3a,0x2a, 0x1,0x5e,0x43, 0x1,0x5e,0x57, + 0x1,0x5e,0x50, 0x3,0x3a,0x33, 0x1,0x5e,0x45, 0x1,0x5e,0x42, + 0x3,0x3a,0x40, 0x1,0x5e,0x4d, 0x3,0x3a,0x34, 0x2,0x3a,0x5e, + 0x2,0x3a,0x50, 0x2,0x3a,0x56, 0x2,0x3a,0x58, 0x2,0x3a,0x4c, + 0x2,0x3a,0x5b, 0x1,0x5e,0x3f, 0x2,0x3a,0x4b, 0x3,0x3a,0x42, + 0x1,0x5e,0x46, 0x1,0x5e,0x56, 0x1,0x5e,0x52, 0x2,0x3a,0x4d, + 0x1,0x5e,0x4c, 0x3,0x3a,0x3b, 0xf,0x39,0x71, 0x1,0x5e,0x53, + 0x1,0x5e,0x4f, 0x1,0x5e,0x4b, 0x3,0x3a,0x2f, 0x2,0x3a,0x54, + 0x6,0x47,0x29, 0x3,0x67,0x23, 0x1,0x5e,0x51, 0x2,0x41,0x7a, + 0x2,0x41,0x76, 0x3,0x40,0x51, 0x2,0x42,0x27, 0x2,0x41,0x6f, + 0x2,0x41,0x78, 0x1,0x63,0x4c, 0x1,0x63,0x4d, 0x1,0x63,0x45, + 0x2,0x42,0x23, 0x1,0x63,0x4f, 0x2,0x41,0x74, 0x2,0x41,0x73, + 0x2,0x41,0x71, 0x2,0x42,0x25, 0x1,0x63,0x43, 0x2,0x41,0x7d, + 0x2,0x41,0x72, 0x1,0x63,0x46, 0x2,0x41,0x7b, 0x1,0x63,0x41, + 0x2,0x41,0x77, 0x2,0x41,0x7e, 0x2,0x42,0x22, 0x3,0x40,0x4e, + 0x4,0x3c,0x4b, 0x2,0x42,0x26, 0x1,0x63,0x4a, 0x2,0x41,0x70, + 0x1,0x63,0x44, 0x2,0x41,0x75, 0x3,0x3a,0x2b, 0x1,0x63,0x3f, + 0x6,0x51,0x43, 0x1,0x63,0x4b, 0x2,0x42,0x21, 0x1,0x63,0x47, + 0x1,0x63,0x48, 0x1,0x63,0x4e, 0x1,0x63,0x42, 0x1,0x23,0x21, + 0x1,0x63,0x40, 0x2,0x41,0x79, 0x3,0x40,0x4c, 0x3,0x67,0x25, + 0x1,0x63,0x49, 0x3,0x67,0x24, 0xf,0x40,0x62, 0x2,0x42,0x24, + 0x3,0x64,0x58, 0x1,0x68,0x35, 0x1,0x68,0x30, 0x3,0x46,0x2e, + 0x2,0x49,0x3c, 0x2,0x49,0x38, 0x3,0x46,0x28, 0x2,0x49,0x32, + 0x1,0x68,0x2a, 0x1,0x68,0x26, 0x2,0x49,0x3b, 0x1,0x68,0x27, + 0x2,0x49,0x35, 0x2,0x49,0x37, 0x3,0x46,0x29, 0x2,0x49,0x3a, + 0x3,0x46,0x36, 0x1,0x68,0x2c, 0x3,0x46,0x2c, 0x1,0x68,0x33, + 0x1,0x68,0x2d, 0x4,0x42,0x57, 0x3,0x46,0x2a, 0x2,0x49,0x30, + 0x1,0x68,0x2e, 0x1,0x68,0x2f, 0x2,0x49,0x33, 0x1,0x68,0x34, + 0x3,0x46,0x34, 0x2,0x49,0x31, 0x2,0x49,0x36, 0x1,0x68,0x2b, + 0x2,0x49,0x2f, 0x1,0x68,0x31, 0x1,0x68,0x29, 0x3,0x46,0x33, + 0x4,0x42,0x4b, 0x1,0x68,0x28, 0x2,0x49,0x34, 0x2,0x49,0x39, + 0x3,0x46,0x31, 0x1,0x68,0x32, 0x3,0x64,0x5a, 0x3,0x64,0x59, + 0x3,0x46,0x50, 0x2,0x49,0x2e, 0x3,0x46,0x30, 0x1,0x6c,0x37, + 0x2,0x4f,0x6e, 0x3,0x4b,0x41, 0x2,0x4f,0x6b, 0x3,0x4b,0x38, + 0x1,0x6c,0x31, 0x1,0x6c,0x3d, 0x1,0x6c,0x3e, 0x3,0x4b,0x3d, + 0x1,0x6c,0x34, 0x2,0x4f,0x69, 0x1,0x6c,0x36, 0x2,0x4f,0x61, + 0x1,0x6c,0x3c, 0x3,0x4b,0x44, 0x2,0x4f,0x6d, 0x1,0x6c,0x33, + 0x2,0x4f,0x6f, 0x1,0x6c,0x32, 0x4,0x49,0x31, 0x2,0x4f,0x6a, + 0x2,0x4f,0x6c, 0x1,0x6c,0x35, 0x2,0x4f,0x68, 0x2,0x4f,0x62, + 0x2,0x4f,0x5f, 0x4,0x49,0x2e, 0x3,0x4b,0x3e, 0x2,0x3a,0x4f, + 0x2,0x4f,0x65, 0x3,0x4b,0x37, 0x2,0x4f,0x5e, 0x2,0x4f,0x64, + 0x2,0x4f,0x63, 0x3,0x4b,0x3b, 0x2,0x4f,0x60, 0x3,0x4b,0x43, + 0x1,0x6c,0x39, 0x3,0x4b,0x45, 0x3,0x4b,0x40, 0x3,0x46,0x35, + 0x3,0x4b,0x3c, 0x1,0x6c,0x38, 0x3,0x4b,0x39, 0x7,0x21,0x63, + 0x3,0x4b,0x3f, 0x1,0x6c,0x3a, 0x2,0x4f,0x66, 0x1,0x70,0x3b, + 0x2,0x4f,0x67, 0x2,0x56,0x4f, 0x3,0x50,0x3f, 0x2,0x56,0x48, + 0x3,0x50,0x40, 0x1,0x70,0x47, 0x2,0x56,0x4c, 0x1,0x70,0x3f, + 0x1,0x70,0x43, 0x2,0x56,0x4b, 0x3,0x50,0x3b, 0x1,0x70,0x42, + 0x1,0x70,0x3e, 0x1,0x70,0x41, 0x1,0x70,0x3c, 0x1,0x70,0x46, + 0x2,0x56,0x4d, 0x2,0x56,0x49, 0x1,0x70,0x45, 0x2,0x56,0x47, + 0x1,0x70,0x44, 0x2,0x56,0x4e, 0x2,0x56,0x4a, 0x1,0x6c,0x3b, + 0x4,0x4f,0x71, 0x1,0x70,0x48, 0x2,0x56,0x50, 0x1,0x70,0x40, + 0x1,0x70,0x3d, 0xf,0x53,0x5d, 0x3,0x50,0x3d, 0x3,0x54,0x48, + 0x2,0x5c,0x52, 0x2,0x5c,0x54, 0x1,0x73,0x46, 0x2,0x5c,0x55, + 0x2,0x5c,0x53, 0x2,0x5c,0x51, 0x2,0x5c,0x50, 0x1,0x73,0x48, + 0x2,0x5c,0x4f, 0x1,0x73,0x49, 0x4,0x55,0x74, 0x3,0x54,0x49, + 0x3,0x54,0x47, 0x4,0x55,0x78, 0x2,0x5c,0x4d, 0x2,0x5c,0x4e, + 0x1,0x73,0x45, 0x1,0x73,0x4a, 0x1,0x73,0x47, 0x3,0x64,0x5d, + 0x3,0x64,0x5b, 0x2,0x5c,0x4c, 0x3,0x57,0x5b, 0x1,0x76,0x3c, + 0x3,0x57,0x5a, 0x2,0x61,0x48, 0x2,0x61,0x46, 0x2,0x61,0x4b, + 0x2,0x61,0x49, 0x3,0x57,0x58, 0x2,0x61,0x47, 0x2,0x61,0x4a, + 0x3,0x57,0x59, 0x3,0x57,0x57, 0x3,0x57,0x5c, 0x1,0x78,0x2c, + 0x2,0x65,0x3e, 0x2,0x65,0x3f, 0x1,0x78,0x2d, 0x4,0x5f,0x4d, + 0x2,0x65,0x40, 0x2,0x65,0x3c, 0x2,0x65,0x41, 0x2,0x65,0x3d, + 0x1,0x76,0x3d, 0x3,0x5a,0x2d, 0x3,0x64,0x5e, 0x4,0x63,0x31, + 0x2,0x68,0x6b, 0x2,0x68,0x6d, 0x1,0x79,0x64, 0x2,0x68,0x6c, + 0x1,0x79,0x63, 0x1,0x79,0x62, 0x3,0x67,0x26, 0x3,0x67,0x27, + 0x3,0x64,0x5c, 0x3,0x5e,0x26, 0x1,0x79,0x65, 0x2,0x6b,0x53, + 0x2,0x6b,0x54, 0x4,0x66,0x34, 0x1,0x7a,0x65, 0x1,0x7a,0x64, + 0x1,0x7a,0x66, 0x2,0x6b,0x52, 0x3,0x67,0x28, 0x2,0x6d,0x46, + 0x2,0x6d,0x45, 0x3,0x5f,0x40, 0x1,0x7b,0x59, 0x1,0x7b,0x5b, + 0x1,0x7b,0x5a, 0x2,0x6d,0x47, 0x1,0x7c,0x34, 0x2,0x70,0x34, + 0x4,0x6a,0x44, 0x4,0x6a,0x43, 0x1,0x7c,0x5d, 0x3,0x60,0x71, + 0x2,0x70,0x33, 0x2,0x70,0x7c, 0x2,0x21,0x2a, 0x3,0x21,0x77, + 0x4,0x21,0x6f, 0x1,0x46,0x3f, 0x1,0x46,0x3e, 0x4,0x21,0x6d, + 0x1,0x47,0x60, 0x1,0x47,0x5f, 0x2,0x22,0x27, 0x1,0x47,0x5e, + 0x2,0x22,0x26, 0x3,0x23,0x3e, 0x1,0x49,0x5b, 0x2,0x23,0x49, + 0x3,0x25,0x2c, 0x2,0x23,0x48, 0xf,0x23,0x50, 0x3,0x25,0x26, + 0x1,0x49,0x59, 0x1,0x49,0x5c, 0x3,0x25,0x2b, 0x3,0x25,0x2a, + 0x2,0x23,0x47, 0x3,0x25,0x29, 0x1,0x49,0x5a, 0x3,0x25,0x48, + 0x3,0x25,0x27, 0x3,0x25,0x28, 0x3,0x28,0x22, 0x2,0x25,0x70, + 0x3,0x27,0x7d, 0x2,0x25,0x71, 0x1,0x4c,0x56, 0x3,0x27,0x7c, + 0x3,0x28,0x21, 0x3,0x27,0x7b, 0x1,0x50,0x4c, 0x3,0x2b,0x65, + 0x2,0x2e,0x4a, 0x2,0x2e,0x4b, 0x1,0x54,0x67, 0x1,0x54,0x68, + 0x3,0x30,0x27, 0x2,0x34,0x2f, 0x1,0x59,0x4e, 0x1,0x59,0x50, + 0x2,0x34,0x2e, 0x1,0x59,0x4f, 0x2,0x3a,0x60, 0x1,0x5e,0x58, + 0x3,0x3a,0x44, 0x3,0x3a,0x43, 0x4,0x36,0x68, 0x4,0x3c,0x52, + 0x1,0x63,0x50, 0x1,0x63,0x51, 0x2,0x42,0x28, 0x3,0x40,0x52, + 0x1,0x68,0x37, 0x3,0x46,0x37, 0x1,0x68,0x36, 0x2,0x4f,0x70, + 0x2,0x56,0x52, 0x2,0x56,0x51, 0x3,0x5f,0x41, 0x2,0x71,0x5a, + 0x1,0x44,0x48, 0x2,0x21,0x39, 0x3,0x21,0x61, 0x2,0x21,0x4f, + 0x2,0x21,0x50, 0x3,0x22,0x34, 0x4,0x21,0x70, 0x4,0x21,0x71, + 0x1,0x47,0x63, 0x1,0x47,0x67, 0x2,0x22,0x29, 0x4,0x22,0x51, + 0x1,0x47,0x65, 0x1,0x47,0x64, 0x2,0x22,0x28, 0x1,0x47,0x66, + 0x1,0x47,0x62, 0x3,0x23,0x41, 0x3,0x23,0x42, 0x1,0x47,0x61, + 0x2,0x22,0x2a, 0x3,0x23,0x3f, 0x3,0x23,0x40, 0x1,0x49,0x66, + 0x3,0x25,0x31, 0x3,0x25,0x3e, 0x1,0x49,0x63, 0x3,0x25,0x30, + 0x1,0x49,0x5f, 0x2,0x23,0x4a, 0x3,0x25,0x40, 0x3,0x25,0x36, + 0x3,0x25,0x2f, 0x2,0x23,0x4b, 0x3,0x25,0x3c, 0x1,0x49,0x61, + 0x3,0x25,0x2d, 0x2,0x23,0x4d, 0x1,0x49,0x5d, 0x2,0x23,0x4e, + 0x2,0x23,0x4c, 0x1,0x49,0x60, 0x1,0x49,0x62, 0x1,0x49,0x65, + 0x1,0x49,0x64, 0x1,0x49,0x5e, 0x2,0x23,0x4f, 0x3,0x25,0x32, + 0x3,0x25,0x41, 0x3,0x25,0x42, 0x3,0x25,0x33, 0x3,0x25,0x38, + 0x3,0x25,0x37, 0x3,0x64,0x5f, 0xf,0x23,0x52, 0x3,0x25,0x35, + 0x1,0x4c,0x5b, 0x2,0x25,0x7e, 0x3,0x28,0x25, 0x1,0x4c,0x5d, + 0x3,0x28,0x23, 0x1,0x4c,0x5c, 0x3,0x28,0x26, 0x2,0x26,0x21, + 0x1,0x4c,0x5a, 0x1,0x4c,0x59, 0x2,0x25,0x75, 0x4,0x25,0x69, + 0x2,0x25,0x74, 0x3,0x28,0x28, 0x2,0x25,0x72, 0x2,0x25,0x77, + 0x2,0x25,0x76, 0x2,0x25,0x73, 0x2,0x25,0x7c, 0x2,0x25,0x7d, + 0x2,0x25,0x7a, 0x2,0x25,0x78, 0x1,0x4c,0x58, 0x3,0x28,0x29, + 0x4,0x25,0x66, 0x4,0x25,0x68, 0x2,0x25,0x7b, 0x1,0x4c,0x5e, + 0x2,0x26,0x22, 0x4,0x25,0x65, 0x3,0x28,0x2a, 0x2,0x25,0x79, + 0x3,0x28,0x24, 0x1,0x50,0x4d, 0x1,0x4c,0x57, 0x4,0x25,0x6e, + 0xf,0x26,0x33, 0x3,0x64,0x60, 0x1,0x50,0x4e, 0x2,0x29,0x55, + 0x3,0x2b,0x69, 0x3,0x2b,0x68, 0x2,0x29,0x5b, 0x3,0x2b,0x6c, + 0x3,0x2b,0x67, 0x3,0x2b,0x6a, 0x1,0x50,0x54, 0x2,0x29,0x59, + 0x2,0x29,0x5f, 0x3,0x2b,0x71, 0x2,0x29,0x56, 0x2,0x29,0x5a, + 0x2,0x29,0x5c, 0x2,0x29,0x5e, 0x2,0x29,0x58, 0x3,0x2b,0x70, + 0x2,0x29,0x57, 0x2,0x29,0x52, 0x2,0x29,0x53, 0x1,0x50,0x4f, + 0x3,0x2b,0x6b, 0x1,0x50,0x51, 0x1,0x50,0x50, 0x2,0x29,0x54, + 0x2,0x29,0x5d, 0x3,0x2b,0x6d, 0x3,0x2b,0x72, 0x3,0x2b,0x6e, + 0x4,0x28,0x60, 0xf,0x29,0x6a, 0xf,0x29,0x71, 0x3,0x2b,0x66, + 0x1,0x50,0x53, 0x4,0x28,0x5e, 0x2,0x29,0x51, 0x2,0x2e,0x55, + 0x3,0x30,0x2a, 0x2,0x2e,0x54, 0x2,0x2e,0x59, 0x2,0x2e,0x50, + 0x3,0x30,0x30, 0x2,0x2e,0x53, 0x2,0x2e,0x52, 0x3,0x30,0x2f, + 0x2,0x2e,0x56, 0x3,0x30,0x38, 0x2,0x2e,0x5a, 0x1,0x54,0x69, + 0x1,0x54,0x6c, 0x3,0x30,0x34, 0x3,0x30,0x35, 0x2,0x2e,0x51, + 0x2,0x2e,0x57, 0x3,0x30,0x33, 0x3,0x30,0x28, 0x3,0x30,0x37, + 0x1,0x54,0x6b, 0x2,0x2e,0x4c, 0x3,0x30,0x2b, 0x1,0x50,0x52, + 0x2,0x34,0x3d, 0x2,0x2e,0x58, 0x3,0x30,0x36, 0x2,0x2e,0x4f, + 0x4,0x2c,0x33, 0x1,0x54,0x6a, 0x2,0x2e,0x4e, 0xf,0x2e,0x5c, + 0x3,0x30,0x32, 0x2,0x34,0x34, 0x3,0x34,0x6e, 0x3,0x34,0x71, + 0x1,0x59,0x51, 0x1,0x59,0x55, 0x2,0x34,0x44, 0x2,0x34,0x32, + 0x2,0x34,0x40, 0x1,0x59,0x56, 0x2,0x34,0x42, 0x3,0x34,0x72, + 0x2,0x34,0x48, 0x3,0x34,0x74, 0x2,0x34,0x4c, 0x3,0x34,0x69, + 0x4,0x30,0x7b, 0x2,0x34,0x43, 0x2,0x34,0x37, 0x2,0x34,0x3f, + 0x3,0x34,0x6b, 0x2,0x34,0x4d, 0x2,0x34,0x4b, 0x2,0x34,0x41, + 0x2,0x34,0x3c, 0x2,0x34,0x35, 0x2,0x3a,0x68, 0x2,0x34,0x33, + 0x1,0x59,0x5a, 0x2,0x34,0x3a, 0x1,0x59,0x5b, 0x1,0x59,0x57, + 0x2,0x34,0x30, 0x2,0x34,0x46, 0x2,0x34,0x38, 0x3,0x34,0x6f, + 0x3,0x34,0x75, 0x2,0x34,0x36, 0x2,0x34,0x49, 0x1,0x59,0x58, + 0x3,0x34,0x76, 0x2,0x34,0x4f, 0x1,0x59,0x52, 0x1,0x59,0x54, + 0x2,0x34,0x3e, 0x2,0x34,0x39, 0x1,0x54,0x6d, 0x1,0x59,0x53, + 0x2,0x34,0x3b, 0x2,0x34,0x4a, 0x2,0x34,0x4e, 0x2,0x34,0x45, + 0x3,0x64,0x61, 0x2,0x34,0x47, 0x3,0x64,0x62, 0x3,0x64,0x63, + 0x2,0x34,0x31, 0x4,0x36,0x69, 0x3,0x3a,0x4a, 0x2,0x3a,0x63, + 0x3,0x3a,0x45, 0x2,0x3a,0x6c, 0x2,0x3a,0x6b, 0x1,0x5e,0x60, + 0x2,0x3a,0x64, 0x3,0x3a,0x47, 0x1,0x5e,0x61, 0x1,0x5e,0x5f, + 0x3,0x3a,0x50, 0x2,0x3a,0x66, 0x1,0x5e,0x5c, 0x2,0x3a,0x6a, + 0x3,0x3a,0x4c, 0x2,0x3a,0x65, 0x2,0x3a,0x67, 0x2,0x3a,0x61, + 0x1,0x5e,0x5a, 0x4,0x36,0x6f, 0x2,0x3a,0x74, 0x2,0x3a,0x73, + 0x2,0x3a,0x70, 0x1,0x5e,0x59, 0x1,0x5e,0x5d, 0x1,0x5e,0x5e, + 0x2,0x2e,0x4d, 0x2,0x3a,0x6d, 0x1,0x5e,0x5b, 0x1,0x59,0x59, + 0x2,0x3a,0x6f, 0x2,0x3a,0x62, 0x2,0x3a,0x72, 0x2,0x3a,0x71, + 0x3,0x3a,0x4e, 0x2,0x3a,0x75, 0x3,0x3a,0x49, 0x2,0x42,0x36, + 0x3,0x3a,0x4b, 0x2,0x3a,0x6e, 0xf,0x39,0x7d, 0xf,0x39,0x7e, + 0x4,0x3c,0x57, 0x4,0x36,0x6d, 0x4,0x36,0x71, 0x3,0x64,0x64, + 0x2,0x3a,0x69, 0x2,0x42,0x2e, 0x1,0x63,0x5b, 0x1,0x63,0x5e, + 0x1,0x63,0x59, 0x2,0x42,0x2d, 0x2,0x42,0x31, 0x2,0x42,0x2c, + 0x3,0x40,0x57, 0x1,0x63,0x53, 0x1,0x63,0x5d, 0x2,0x42,0x29, + 0x1,0x63,0x57, 0x2,0x42,0x30, 0x3,0x40,0x5b, 0x1,0x63,0x55, + 0x1,0x63,0x54, 0x2,0x42,0x33, 0x1,0x63,0x56, 0x2,0x42,0x35, + 0x3,0x40,0x56, 0x2,0x42,0x32, 0x1,0x63,0x52, 0x3,0x40,0x5e, + 0x3,0x40,0x5c, 0x3,0x40,0x58, 0x1,0x63,0x5c, 0x2,0x42,0x37, + 0x2,0x42,0x2b, 0x2,0x42,0x34, 0x3,0x40,0x5d, 0x4,0x3c,0x53, + 0x2,0x42,0x2a, 0x3,0x40,0x5a, 0x3,0x40,0x59, 0x1,0x63,0x58, + 0x3,0x40,0x54, 0x1,0x63,0x5a, 0x2,0x42,0x2f, 0x2,0x42,0x38, + 0x3,0x46,0x43, 0x3,0x46,0x3e, 0x2,0x49,0x44, 0x1,0x68,0x38, + 0x2,0x49,0x4a, 0x3,0x46,0x42, 0x3,0x46,0x3c, 0x1,0x68,0x3d, + 0x2,0x49,0x46, 0x2,0x49,0x4d, 0x2,0x49,0x3e, 0x1,0x68,0x3f, + 0x1,0x68,0x39, 0x2,0x49,0x43, 0x1,0x6c,0x3f, 0x2,0x49,0x42, + 0x2,0x49,0x4b, 0x1,0x68,0x3a, 0x3,0x46,0x3d, 0x1,0x68,0x3e, + 0x2,0x49,0x41, 0x2,0x49,0x47, 0x2,0x49,0x4c, 0x2,0x49,0x3d, + 0x1,0x68,0x3c, 0x2,0x49,0x45, 0x3,0x46,0x3a, 0x3,0x46,0x45, + 0x2,0x49,0x49, 0x2,0x49,0x4f, 0x2,0x49,0x3f, 0x2,0x49,0x48, + 0x3,0x46,0x38, 0x1,0x68,0x3b, 0x2,0x49,0x4e, 0x3,0x46,0x41, + 0x3,0x46,0x44, 0x3,0x46,0x40, 0x2,0x49,0x40, 0x4,0x42,0x59, + 0x3,0x64,0x65, 0x1,0x6c,0x43, 0x2,0x4f,0x72, 0x1,0x6c,0x41, + 0x1,0x6c,0x40, 0x2,0x4f,0x74, 0x2,0x4f,0x79, 0x3,0x4b,0x46, + 0x2,0x4f,0x75, 0x3,0x4b,0x50, 0x2,0x4f,0x78, 0x1,0x6c,0x46, + 0x3,0x4b,0x51, 0x1,0x70,0x2e, 0x1,0x6c,0x45, 0x3,0x4b,0x4b, + 0x2,0x4f,0x71, 0x2,0x4f,0x77, 0x3,0x46,0x3f, 0x1,0x6c,0x44, + 0x2,0x4f,0x76, 0x3,0x4b,0x4d, 0x2,0x4f,0x73, 0x3,0x4b,0x49, + 0x1,0x6c,0x42, 0x3,0x4b,0x4f, 0x3,0x4b,0x4c, 0x3,0x4b,0x47, + 0x2,0x56,0x57, 0x3,0x50,0x4a, 0x2,0x56,0x59, 0x2,0x56,0x54, + 0x1,0x70,0x4a, 0x2,0x56,0x56, 0x3,0x50,0x4b, 0x1,0x70,0x49, + 0x2,0x56,0x58, 0x3,0x50,0x48, 0x3,0x50,0x4c, 0x1,0x70,0x4c, + 0x2,0x56,0x5a, 0x1,0x70,0x4b, 0x2,0x56,0x53, 0x2,0x56,0x55, + 0x3,0x50,0x49, 0x3,0x54,0x4b, 0x1,0x73,0x4e, 0x2,0x5c,0x58, + 0x3,0x54,0x4c, 0x1,0x73,0x4d, 0x2,0x5c,0x59, 0x1,0x73,0x4c, + 0x2,0x5c,0x57, 0x1,0x73,0x4b, 0x2,0x5c,0x56, 0x1,0x76,0x3f, + 0x1,0x76,0x3e, 0x2,0x65,0x42, 0x2,0x65,0x44, 0x3,0x5a,0x2f, + 0x2,0x65,0x43, 0x1,0x78,0x2e, 0x1,0x78,0x2f, 0x3,0x5a,0x2e, + 0x7,0x46,0x45, 0x1,0x78,0x30, 0x2,0x68,0x6e, 0x1,0x79,0x66, + 0x3,0x5e,0x28, 0x2,0x6f,0x22, 0x2,0x6f,0x21, 0x1,0x7c,0x5e, + 0x1,0x44,0x49, 0x1,0x45,0x31, 0x3,0x23,0x43, 0x1,0x49,0x67, + 0x3,0x25,0x45, 0x3,0x25,0x43, 0x3,0x25,0x44, 0x3,0x28,0x2d, + 0x2,0x29,0x60, 0x3,0x2b,0x77, 0x3,0x34,0x77, 0x1,0x5e,0x62, + 0x1,0x5e,0x63, 0x3,0x3a,0x52, 0x2,0x42,0x39, 0x1,0x68,0x40, + 0x2,0x49,0x50, 0x2,0x4f,0x7a, 0x3,0x64,0x66, 0x3,0x50,0x4d, + 0x3,0x21,0x39, 0x2,0x21,0x3a, 0x3,0x22,0x35, 0x3,0x23,0x44, + 0x2,0x23,0x50, 0x3,0x2b,0x7a, 0x3,0x2b,0x79, 0x3,0x21,0x3a, + 0x3,0x25,0x46, 0x2,0x26,0x23, 0x2,0x29,0x61, 0x2,0x2e,0x5b, + 0x1,0x54,0x6e, 0x3,0x46,0x46, 0x3,0x65,0x60, 0x2,0x65,0x45, + 0x4,0x5f,0x52, 0x1,0x7a,0x67, 0x1,0x44,0x4a, 0x1,0x46,0x40, + 0x2,0x21,0x51, 0x3,0x22,0x36, 0x1,0x47,0x68, 0x1,0x47,0x69, + 0x4,0x22,0x52, 0x1,0x4c,0x5f, 0x4,0x25,0x70, 0x3,0x34,0x79, + 0x1,0x59,0x5c, 0x5,0x37,0x3d, 0x1,0x68,0x42, 0x3,0x40,0x5f, + 0x1,0x68,0x43, 0x1,0x68,0x41, 0x3,0x4b,0x53, 0x1,0x44,0x4b, + 0x4,0x21,0x49, 0x1,0x45,0x32, 0x1,0x45,0x34, 0x1,0x45,0x33, + 0x2,0x21,0x3b, 0x1,0x45,0x35, 0x1,0x46,0x41, 0x2,0x21,0x52, + 0x3,0x22,0x38, 0x1,0x46,0x42, 0x3,0x22,0x37, 0x4,0x21,0x72, + 0x3,0x22,0x39, 0x4,0x22,0x53, 0x3,0x23,0x47, 0x1,0x47,0x6a, + 0x1,0x47,0x6b, 0x2,0x22,0x2b, 0x3,0x25,0x49, 0x1,0x49,0x68, + 0x4,0x23,0x62, 0x2,0x23,0x51, 0x4,0x25,0x75, 0x1,0x4c,0x63, + 0x2,0x26,0x24, 0x4,0x25,0x72, 0x1,0x4c,0x61, 0x1,0x4c,0x62, + 0x1,0x4c,0x60, 0x2,0x2e,0x5c, 0x3,0x28,0x2e, 0x3,0x28,0x2f, + 0x3,0x64,0x67, 0x1,0x50,0x58, 0x1,0x50,0x57, 0x1,0x50,0x59, + 0x1,0x50,0x56, 0x3,0x2b,0x7c, 0x2,0x29,0x62, 0x1,0x4c,0x64, + 0x1,0x50,0x55, 0x1,0x54,0x6f, 0x1,0x54,0x70, 0x4,0x2c,0x38, + 0x1,0x54,0x71, 0x3,0x34,0x7b, 0x2,0x34,0x50, 0x3,0x34,0x7c, + 0x3,0x34,0x7d, 0x4,0x31,0x26, 0x1,0x5e,0x64, 0x2,0x3a,0x76, + 0x1,0x59,0x5d, 0x3,0x3a,0x53, 0x3,0x3a,0x54, 0x4,0x36,0x79, + 0x3,0x40,0x60, 0x1,0x63,0x5f, 0x3,0x40,0x61, 0x1,0x68,0x45, + 0x1,0x68,0x44, 0x2,0x49,0x51, 0x3,0x46,0x48, 0x1,0x6c,0x47, + 0x1,0x70,0x4d, 0x4,0x4f,0x7b, 0x2,0x61,0x4c, 0x2,0x6d,0x48, + 0x2,0x6f,0x23, 0x1,0x44,0x4c, 0x1,0x46,0x43, 0x3,0x22,0x3b, + 0x1,0x46,0x44, 0x2,0x22,0x31, 0x1,0x47,0x6d, 0x1,0x47,0x70, + 0x3,0x23,0x4b, 0x2,0x22,0x2f, 0x2,0x22,0x2d, 0x1,0x47,0x6f, + 0x2,0x22,0x30, 0x2,0x22,0x32, 0x2,0x22,0x2c, 0x1,0x47,0x72, + 0x1,0x47,0x71, 0x1,0x47,0x6e, 0x1,0x47,0x6c, 0x2,0x22,0x2e, + 0x3,0x23,0x4d, 0x3,0x25,0x55, 0x1,0x49,0x73, 0x4,0x23,0x67, + 0x3,0x25,0x4c, 0x1,0x49,0x70, 0x2,0x23,0x56, 0x2,0x23,0x59, + 0x2,0x23,0x58, 0x4,0x23,0x69, 0x1,0x49,0x6a, 0x1,0x49,0x72, + 0x3,0x25,0x4b, 0x4,0x23,0x6a, 0x1,0x49,0x6f, 0x2,0x23,0x55, + 0x2,0x23,0x53, 0x1,0x49,0x6e, 0x3,0x25,0x56, 0x3,0x25,0x53, + 0x3,0x25,0x4e, 0x1,0x49,0x69, 0x1,0x49,0x6c, 0x3,0x25,0x51, + 0x2,0x23,0x54, 0x2,0x23,0x5b, 0x2,0x23,0x57, 0x1,0x49,0x6d, + 0x1,0x49,0x71, 0x1,0x49,0x74, 0x2,0x23,0x52, 0x2,0x23,0x5a, + 0x1,0x49,0x6b, 0x3,0x28,0x41, 0x3,0x28,0x33, 0x1,0x4c,0x69, + 0x1,0x4c,0x71, 0x3,0x28,0x38, 0x2,0x26,0x30, 0x2,0x26,0x29, + 0x1,0x4c,0x72, 0x2,0x26,0x34, 0x2,0x26,0x25, 0x2,0x26,0x2c, + 0x3,0x28,0x45, 0x3,0x28,0x40, 0x1,0x4c,0x68, 0x2,0x26,0x26, + 0x1,0x4c,0x66, 0x2,0x26,0x2d, 0x2,0x26,0x31, 0x1,0x4c,0x65, + 0x3,0x28,0x3d, 0x2,0x26,0x32, 0x2,0x26,0x2b, 0x3,0x28,0x37, + 0x2,0x26,0x2e, 0x3,0x28,0x35, 0x1,0x4c,0x74, 0x1,0x4c,0x6b, + 0x2,0x26,0x35, 0x2,0x26,0x33, 0x3,0x28,0x3f, 0x1,0x4c,0x70, + 0x1,0x4c,0x6e, 0x2,0x26,0x2a, 0x1,0x4c,0x6d, 0x2,0x26,0x28, + 0x2,0x26,0x27, 0x1,0x4c,0x6c, 0x1,0x4c,0x6a, 0x1,0x4c,0x73, + 0x1,0x4c,0x6f, 0x1,0x4c,0x67, 0x3,0x2c,0x26, 0x2,0x26,0x2f, + 0x3,0x28,0x46, 0x1,0x50,0x5b, 0x3,0x2c,0x2d, 0x1,0x50,0x62, + 0x2,0x29,0x70, 0x1,0x50,0x5a, 0x2,0x29,0x68, 0x2,0x29,0x64, + 0x3,0x2c,0x21, 0x2,0x29,0x74, 0x2,0x29,0x63, 0x3,0x2c,0x2c, + 0x1,0x50,0x5d, 0x2,0x29,0x6d, 0x1,0x50,0x60, 0x1,0x50,0x63, + 0x3,0x2c,0x2e, 0x1,0x50,0x5e, 0x2,0x29,0x71, 0x1,0x50,0x61, + 0x3,0x2c,0x23, 0x1,0x54,0x78, 0x2,0x29,0x77, 0x2,0x29,0x65, + 0x3,0x2c,0x24, 0x3,0x2c,0x25, 0x2,0x29,0x67, 0x2,0x29,0x6e, + 0x2,0x29,0x72, 0x2,0x29,0x76, 0x2,0x29,0x73, 0x2,0x29,0x6c, + 0x2,0x29,0x6f, 0x3,0x2c,0x2b, 0x3,0x2c,0x29, 0x2,0x29,0x69, + 0x1,0x50,0x65, 0x2,0x29,0x6b, 0x2,0x29,0x6a, 0x2,0x29,0x75, + 0x1,0x50,0x5c, 0x2,0x29,0x66, 0x1,0x50,0x64, 0x3,0x2c,0x2a, + 0x1,0x50,0x5f, 0x3,0x2c,0x28, 0x1,0x54,0x7e, 0x2,0x2e,0x64, + 0x3,0x30,0x40, 0x1,0x54,0x7d, 0x3,0x2c,0x27, 0x4,0x2c,0x40, + 0x2,0x2e,0x62, 0x4,0x2c,0x3e, 0x1,0x54,0x72, 0x3,0x30,0x4f, + 0x1,0x54,0x77, 0x3,0x30,0x4a, 0x2,0x2e,0x61, 0x2,0x2e,0x5e, + 0x2,0x2e,0x63, 0x1,0x54,0x73, 0x2,0x2e,0x5d, 0x3,0x30,0x4e, + 0x1,0x54,0x76, 0x1,0x54,0x74, 0x3,0x30,0x3e, 0x2,0x2e,0x65, + 0x1,0x54,0x75, 0x1,0x54,0x79, 0x3,0x30,0x3b, 0x3,0x30,0x45, + 0x1,0x54,0x7a, 0x3,0x30,0x48, 0x1,0x54,0x7c, 0x3,0x30,0x52, + 0x4,0x2c,0x39, 0x4,0x2c,0x3d, 0x1,0x54,0x7b, 0x3,0x30,0x3c, + 0x3,0x35,0x22, 0x3,0x35,0x38, 0x2,0x2e,0x5f, 0x2,0x2e,0x60, + 0x3,0x30,0x4d, 0x6,0x36,0x57, 0x3,0x30,0x4b, 0x2,0x2e,0x66, + 0x2,0x34,0x57, 0x1,0x59,0x5e, 0x2,0x3b,0x26, 0x2,0x34,0x56, + 0x2,0x34,0x69, 0x3,0x35,0x28, 0x3,0x35,0x24, 0x1,0x59,0x64, + 0x3,0x35,0x31, 0x2,0x34,0x67, 0x3,0x35,0x33, 0x1,0x59,0x63, + 0x1,0x59,0x5f, 0x2,0x34,0x70, 0x2,0x34,0x60, 0x2,0x34,0x63, + 0x3,0x35,0x2e, 0x1,0x59,0x67, 0x2,0x34,0x6d, 0x2,0x34,0x65, + 0x1,0x59,0x60, 0x1,0x59,0x68, 0x3,0x35,0x2a, 0x2,0x34,0x6a, + 0x2,0x34,0x68, 0x3,0x35,0x2f, 0x3,0x35,0x3b, 0x2,0x34,0x59, + 0x2,0x34,0x6e, 0x2,0x34,0x62, 0x2,0x34,0x5d, 0x3,0x35,0x3a, + 0x2,0x34,0x53, 0x2,0x34,0x6f, 0x2,0x34,0x5f, 0x2,0x34,0x52, + 0x3,0x35,0x39, 0x1,0x59,0x66, 0x2,0x34,0x64, 0x2,0x34,0x71, + 0x2,0x34,0x61, 0x2,0x34,0x55, 0x2,0x34,0x5a, 0x2,0x34,0x51, + 0x3,0x35,0x27, 0x1,0x59,0x65, 0x3,0x35,0x3c, 0x2,0x34,0x5e, + 0x2,0x34,0x5b, 0x1,0x59,0x61, 0x2,0x34,0x54, 0x3,0x35,0x30, + 0x2,0x34,0x6c, 0x1,0x59,0x62, 0x3,0x35,0x2b, 0x2,0x34,0x5c, + 0x2,0x34,0x58, 0x3,0x35,0x29, 0x3,0x35,0x34, 0x2,0x34,0x6b, + 0x3,0x35,0x32, 0xf,0x33,0x73, 0x3,0x35,0x37, 0x3,0x35,0x35, + 0x1,0x5e,0x65, 0x2,0x3a,0x7d, 0x3,0x3a,0x75, 0x2,0x3a,0x7a, + 0x2,0x3b,0x2d, 0x2,0x3b,0x21, 0x2,0x3b,0x2e, 0x3,0x3a,0x7c, + 0x1,0x5e,0x67, 0x3,0x3a,0x63, 0x3,0x3a,0x61, 0x3,0x3a,0x58, + 0x2,0x3b,0x2a, 0x2,0x3b,0x27, 0x3,0x3a,0x5b, 0x3,0x3a,0x77, + 0x3,0x3a,0x72, 0x3,0x3a,0x59, 0x3,0x3a,0x60, 0x2,0x3b,0x28, + 0x2,0x3b,0x2b, 0x2,0x3b,0x2f, 0x3,0x3a,0x7b, 0x2,0x34,0x66, + 0x2,0x3b,0x31, 0x2,0x42,0x4d, 0x3,0x3a,0x66, 0x1,0x5e,0x68, + 0x2,0x3b,0x32, 0x2,0x3a,0x78, 0x2,0x3b,0x24, 0x3,0x3a,0x62, + 0x2,0x3b,0x29, 0x3,0x3a,0x5c, 0x3,0x3a,0x5e, 0x1,0x5e,0x66, + 0x1,0x5e,0x69, 0x2,0x3b,0x30, 0x2,0x3b,0x33, 0x2,0x3a,0x7c, + 0x2,0x3a,0x79, 0x3,0x3a,0x73, 0x3,0x3a,0x5a, 0x2,0x3a,0x7b, + 0x3,0x3a,0x57, 0x3,0x3a,0x7a, 0x2,0x3b,0x22, 0x2,0x3a,0x7e, + 0x1,0x5e,0x6a, 0x3,0x3a,0x56, 0x2,0x3b,0x2c, 0x3,0x3a,0x79, + 0x3,0x3a,0x78, 0x2,0x3b,0x23, 0x2,0x3b,0x25, 0x2,0x3a,0x77, + 0x2,0x42,0x41, 0x2,0x42,0x3f, 0x1,0x63,0x68, 0x1,0x63,0x66, + 0x2,0x42,0x49, 0x2,0x42,0x40, 0x2,0x42,0x4a, 0x2,0x42,0x46, + 0x2,0x42,0x3e, 0x2,0x42,0x4c, 0x2,0x42,0x3d, 0x2,0x42,0x44, + 0x1,0x63,0x65, 0x1,0x63,0x64, 0x1,0x63,0x63, 0x2,0x42,0x42, + 0x2,0x42,0x47, 0x1,0x63,0x60, 0x1,0x63,0x67, 0x3,0x40,0x67, + 0x2,0x42,0x3b, 0x3,0x40,0x66, 0x2,0x42,0x45, 0x2,0x42,0x3a, + 0x2,0x42,0x43, 0x1,0x63,0x61, 0x2,0x42,0x48, 0x2,0x42,0x3c, + 0x1,0x63,0x62, 0x2,0x42,0x4b, 0x3,0x40,0x64, 0x3,0x3a,0x6b, + 0x3,0x40,0x6a, 0x3,0x64,0x68, 0x3,0x64,0x69, 0x2,0x49,0x55, + 0x1,0x68,0x4a, 0x1,0x68,0x49, 0x1,0x68,0x4b, 0x2,0x49,0x61, + 0x2,0x49,0x57, 0x2,0x49,0x5d, 0x2,0x49,0x52, 0x2,0x49,0x60, + 0x2,0x49,0x5f, 0x2,0x49,0x63, 0x2,0x49,0x5c, 0x1,0x68,0x46, + 0x2,0x49,0x5b, 0x1,0x68,0x4c, 0x3,0x46,0x4c, 0x2,0x49,0x54, + 0x1,0x68,0x47, 0x3,0x46,0x4a, 0x2,0x49,0x62, 0x1,0x68,0x48, + 0x2,0x49,0x56, 0x2,0x49,0x59, 0x2,0x49,0x5e, 0x2,0x49,0x58, + 0x2,0x49,0x53, 0x3,0x46,0x4f, 0x3,0x46,0x53, 0x2,0x49,0x5a, + 0x2,0x4f,0x7c, 0x1,0x6c,0x4b, 0x2,0x50,0x21, 0x2,0x4f,0x7e, + 0x2,0x50,0x23, 0x2,0x50,0x25, 0x3,0x4b,0x5c, 0x1,0x6c,0x49, + 0x3,0x4b,0x58, 0x2,0x4f,0x7d, 0x3,0x4b,0x54, 0x2,0x4f,0x7b, + 0x3,0x4b,0x5e, 0x2,0x50,0x26, 0x2,0x50,0x24, 0x2,0x50,0x22, + 0x3,0x4b,0x56, 0x2,0x50,0x28, 0x3,0x4b,0x5a, 0x2,0x50,0x27, + 0x1,0x6c,0x4d, 0x1,0x6c,0x48, 0x3,0x4b,0x5b, 0x1,0x6c,0x4a, + 0x1,0x6c,0x4c, 0x3,0x4b,0x5d, 0x3,0x4b,0x5f, 0x2,0x50,0x29, + 0x2,0x56,0x61, 0x3,0x50,0x50, 0x3,0x50,0x53, 0x2,0x56,0x60, + 0x2,0x56,0x5f, 0x3,0x50,0x51, 0x2,0x56,0x62, 0x2,0x56,0x5b, + 0x3,0x50,0x4f, 0x2,0x56,0x5c, 0x2,0x56,0x64, 0x2,0x56,0x5d, + 0x3,0x50,0x54, 0x1,0x70,0x4e, 0x2,0x56,0x66, 0x3,0x50,0x4e, + 0x2,0x56,0x65, 0x2,0x56,0x5e, 0x3,0x50,0x56, 0x2,0x5c,0x5d, + 0x1,0x73,0x51, 0x2,0x5c,0x5b, 0x2,0x5c,0x60, 0x2,0x5c,0x5f, + 0x2,0x56,0x63, 0x3,0x54,0x50, 0x1,0x73,0x50, 0x3,0x54,0x4e, + 0x2,0x5c,0x5e, 0x2,0x5c,0x5a, 0x2,0x5c,0x62, 0x2,0x5c,0x61, + 0x1,0x73,0x4f, 0x3,0x54,0x52, 0x2,0x5c,0x5c, 0x3,0x54,0x4f, + 0x1,0x70,0x4f, 0x3,0x54,0x51, 0x3,0x54,0x53, 0x1,0x76,0x40, + 0x3,0x5a,0x31, 0x3,0x57,0x61, 0x3,0x57,0x5e, 0x2,0x61,0x4d, + 0x2,0x65,0x46, 0x2,0x65,0x47, 0x2,0x65,0x48, 0x1,0x79,0x67, + 0x4,0x63,0x34, 0x3,0x5c,0x36, 0x1,0x79,0x68, 0x3,0x5c,0x39, + 0x2,0x68,0x6f, 0x3,0x5c,0x3a, 0x2,0x6b,0x56, 0x2,0x6b,0x55, + 0x3,0x5e,0x29, 0x3,0x5f,0x42, 0x2,0x6d,0x49, 0x2,0x6d,0x4a, + 0x2,0x6f,0x24, 0x2,0x70,0x35, 0x3,0x60,0x73, 0x1,0x44,0x4d, + 0x1,0x44,0x4e, 0x4,0x21,0x32, 0x1,0x44,0x4f, 0x1,0x45,0x36, + 0x1,0x46,0x45, 0x2,0x22,0x33, 0x1,0x47,0x73, 0x1,0x47,0x74, + 0x1,0x49,0x77, 0x1,0x49,0x78, 0x1,0x49,0x76, 0x1,0x49,0x75, + 0x1,0x4c,0x75, 0x3,0x28,0x48, 0x4,0x26,0x22, 0x2,0x26,0x36, + 0x1,0x4c,0x77, 0x1,0x4c,0x76, 0x2,0x26,0x37, 0x4,0x26,0x23, + 0x3,0x64,0x6a, 0x4,0x28,0x6e, 0x1,0x50,0x66, 0x3,0x2c,0x2f, + 0x1,0x55,0x21, 0x2,0x2e,0x67, 0x2,0x34,0x73, 0x4,0x31,0x2c, + 0x1,0x59,0x69, 0x1,0x5e,0x6c, 0x2,0x34,0x72, 0x1,0x5e,0x6b, + 0x3,0x40,0x71, 0x1,0x68,0x4d, 0x3,0x40,0x72, 0x2,0x49,0x64, + 0x1,0x70,0x50, 0x3,0x50,0x57, 0x1,0x73,0x52, 0x2,0x5c,0x63, + 0x3,0x5a,0x34, 0x1,0x79,0x69, 0x3,0x5c,0x3b, 0x1,0x7b,0x5c, + 0x3,0x21,0x3b, 0x2,0x21,0x53, 0x3,0x22,0x3d, 0x1,0x46,0x46, + 0x2,0x21,0x54, 0x1,0x47,0x77, 0x3,0x23,0x50, 0x1,0x47,0x75, + 0x1,0x47,0x76, 0x1,0x47,0x78, 0x4,0x23,0x6f, 0x1,0x49,0x7a, + 0x1,0x49,0x79, 0x3,0x25,0x5a, 0x2,0x23,0x5c, 0x1,0x49,0x7b, + 0x4,0x26,0x25, 0x2,0x23,0x5d, 0x2,0x26,0x38, 0x3,0x28,0x4c, + 0x2,0x26,0x39, 0x3,0x28,0x4a, 0x1,0x4c,0x78, 0x1,0x4c,0x7a, + 0x1,0x4c,0x7c, 0x1,0x4c,0x79, 0x1,0x4c,0x7d, 0x1,0x4c,0x7b, + 0x3,0x28,0x4e, 0x3,0x28,0x4b, 0x3,0x28,0x4d, 0x1,0x50,0x6a, + 0x1,0x50,0x67, 0x1,0x50,0x69, 0x1,0x50,0x6b, 0x1,0x50,0x68, + 0x2,0x2e,0x68, 0x2,0x29,0x78, 0xf,0x2a,0x39, 0x3,0x2c,0x32, + 0x2,0x2e,0x6a, 0x2,0x2e,0x69, 0x1,0x55,0x27, 0x4,0x2c,0x46, + 0x1,0x55,0x23, 0x4,0x2c,0x49, 0x6,0x36,0x66, 0x1,0x55,0x24, + 0x1,0x55,0x26, 0x1,0x55,0x28, 0x1,0x55,0x25, 0x3,0x30,0x57, + 0x1,0x55,0x2a, 0x1,0x55,0x29, 0x4,0x2c,0x48, 0x3,0x30,0x56, + 0x3,0x30,0x55, 0xf,0x2e,0x7e, 0x1,0x59,0x6e, 0x2,0x34,0x75, + 0x2,0x34,0x74, 0x1,0x59,0x6d, 0x3,0x35,0x41, 0x1,0x59,0x6c, + 0x1,0x59,0x6b, 0x1,0x59,0x6f, 0x1,0x59,0x6a, 0x3,0x35,0x3f, + 0x2,0x3b,0x39, 0x2,0x3b,0x36, 0x1,0x5e,0x6e, 0x2,0x3b,0x35, + 0x2,0x3b,0x3a, 0x4,0x37,0x24, 0x1,0x5e,0x70, 0x2,0x3b,0x38, + 0x1,0x5e,0x6d, 0x1,0x5e,0x6f, 0x2,0x3b,0x37, 0x3,0x3a,0x7e, + 0x2,0x42,0x4e, 0x3,0x40,0x74, 0x2,0x42,0x4f, 0x2,0x42,0x50, + 0x3,0x40,0x75, 0x3,0x40,0x76, 0x3,0x40,0x73, 0x4,0x3c,0x6e, + 0x1,0x68,0x4e, 0x1,0x68,0x56, 0x2,0x49,0x65, 0x1,0x68,0x50, + 0x1,0x68,0x54, 0x2,0x49,0x66, 0x1,0x68,0x55, 0x1,0x68,0x51, + 0x1,0x68,0x52, 0x1,0x68,0x4f, 0x1,0x68,0x53, 0x1,0x6c,0x50, + 0x2,0x3b,0x34, 0x1,0x6c,0x51, 0x1,0x6c,0x4f, 0x4,0x49,0x44, + 0x1,0x6c,0x4e, 0x2,0x56,0x67, 0x1,0x70,0x51, 0x2,0x5c,0x64, + 0x2,0x5c,0x65, 0x3,0x5a,0x35, 0x4,0x5f,0x55, 0x1,0x78,0x31, + 0x1,0x79,0x6a, 0x3,0x5e,0x2a, 0x1,0x44,0x50, 0x3,0x22,0x3e, + 0x1,0x47,0x79, 0x3,0x25,0x5e, 0x3,0x25,0x5c, 0x3,0x25,0x5d, + 0x3,0x28,0x50, 0x1,0x50,0x6c, 0x2,0x2e,0x6b, 0x1,0x55,0x2b, + 0x3,0x30,0x58, 0x3,0x30,0x59, 0x1,0x59,0x72, 0x1,0x59,0x71, + 0x1,0x59,0x70, 0x1,0x5e,0x71, 0x1,0x5e,0x72, 0x2,0x3b,0x3b, + 0x1,0x68,0x57, 0x1,0x70,0x52, 0x1,0x44,0x51, 0x2,0x21,0x3c, + 0x1,0x45,0x37, 0x2,0x21,0x55, 0x4,0x21,0x73, 0x3,0x22,0x3f, + 0x2,0x22,0x34, 0x1,0x47,0x7a, 0x4,0x22,0x5c, 0x3,0x23,0x52, + 0x3,0x28,0x51, 0x1,0x4c,0x7e, 0x3,0x2c,0x34, 0x3,0x3b,0x24, + 0x2,0x42,0x51, 0x3,0x40,0x78, 0x3,0x65,0x25, 0x1,0x44,0x52, + 0x4,0x21,0x4b, 0x1,0x45,0x38, 0x2,0x22,0x35, 0x2,0x23,0x5e, + 0x4,0x26,0x29, 0x2,0x23,0x5f, 0x3,0x25,0x5f, 0x1,0x49,0x7c, + 0xf,0x25,0x54, 0x3,0x2c,0x35, 0x2,0x3b,0x3c, 0x1,0x5e,0x73, + 0x2,0x42,0x52, 0x4,0x49,0x49, 0x3,0x54,0x54, 0x1,0x73,0x53, + 0x1,0x44,0x53, 0x1,0x44,0x67, 0x1,0x45,0x39, 0x2,0x21,0x56, + 0x1,0x46,0x47, 0x3,0x23,0x54, 0x1,0x4a,0x22, 0x1,0x4a,0x21, + 0x1,0x49,0x7d, 0x1,0x49,0x7e, 0x2,0x26,0x3a, 0x1,0x4d,0x22, + 0x1,0x4d,0x23, 0x2,0x26,0x3b, 0x1,0x4d,0x21, 0x3,0x28,0x54, + 0x3,0x28,0x55, 0x1,0x50,0x70, 0x2,0x29,0x79, 0x1,0x50,0x6f, + 0x1,0x50,0x6d, 0x1,0x50,0x6e, 0x1,0x55,0x2e, 0x1,0x55,0x2c, + 0x3,0x30,0x5a, 0x3,0x30,0x5b, 0x2,0x2e,0x6d, 0x1,0x55,0x2d, + 0x2,0x2e,0x6c, 0x3,0x64,0x6b, 0x1,0x55,0x22, 0x2,0x34,0x76, + 0x4,0x31,0x35, 0x3,0x35,0x43, 0x1,0x59,0x74, 0x1,0x59,0x75, + 0x3,0x3b,0x26, 0x3,0x3b,0x25, 0x1,0x59,0x73, 0x3,0x35,0x44, + 0x1,0x68,0x58, 0x2,0x49,0x67, 0x1,0x6c,0x52, 0x1,0x6c,0x53, + 0x2,0x50,0x2a, 0x1,0x73,0x54, 0x2,0x61,0x4e, 0x2,0x61,0x4f, + 0x3,0x5a,0x38, 0x1,0x7a,0x68, 0x2,0x70,0x36, 0x2,0x21,0x2b, + 0x1,0x45,0x3a, 0x4,0x22,0x5f, 0x1,0x44,0x54, 0x2,0x21,0x58, + 0x2,0x21,0x57, 0x4,0x21,0x76, 0x3,0x64,0x6c, 0x3,0x23,0x55, + 0x1,0x47,0x7b, 0x2,0x22,0x37, 0x2,0x22,0x38, 0x2,0x22,0x36, + 0x4,0x22,0x60, 0x2,0x22,0x39, 0x3,0x23,0x5a, 0xf,0x22,0x47, + 0x3,0x25,0x61, 0x3,0x25,0x66, 0x2,0x23,0x67, 0x4,0x23,0x7a, + 0x2,0x23,0x62, 0x2,0x23,0x64, 0x2,0x23,0x66, 0x2,0x23,0x63, + 0x1,0x4a,0x26, 0x2,0x23,0x60, 0x3,0x25,0x62, 0x2,0x23,0x61, + 0x1,0x4a,0x23, 0x1,0x4a,0x24, 0x2,0x23,0x65, 0x2,0x23,0x68, + 0x1,0x4a,0x25, 0x2,0x23,0x69, 0xf,0x23,0x7c, 0xf,0x23,0x78, + 0x3,0x25,0x63, 0x2,0x26,0x49, 0x3,0x28,0x5d, 0x2,0x26,0x43, + 0x2,0x26,0x3e, 0x1,0x4d,0x25, 0x2,0x26,0x46, 0x2,0x26,0x44, + 0x2,0x26,0x3d, 0x2,0x26,0x4a, 0x2,0x26,0x4d, 0x2,0x26,0x48, + 0x2,0x26,0x41, 0x1,0x4d,0x27, 0x2,0x26,0x47, 0x1,0x4d,0x28, + 0x2,0x26,0x42, 0x2,0x26,0x45, 0x2,0x26,0x3c, 0x2,0x26,0x40, + 0x2,0x26,0x4c, 0x1,0x4d,0x29, 0x4,0x26,0x2f, 0x1,0x4d,0x2a, + 0x3,0x28,0x5e, 0x2,0x26,0x3f, 0x2,0x26,0x4b, 0x1,0x4d,0x24, + 0x1,0x4d,0x26, 0x3,0x28,0x5c, 0x3,0x28,0x5f, 0x3,0x28,0x57, + 0x4,0x26,0x34, 0x3,0x28,0x58, 0x2,0x2a,0x2c, 0x2,0x2a,0x25, + 0x2,0x2a,0x2b, 0x2,0x2a,0x24, 0x2,0x2a,0x26, 0x2,0x29,0x7e, + 0x2,0x29,0x7c, 0x3,0x2c,0x3f, 0x2,0x2a,0x2d, 0x2,0x2a,0x2a, + 0x2,0x29,0x7a, 0x3,0x2c,0x3b, 0x1,0x50,0x72, 0x2,0x2a,0x28, + 0x2,0x2a,0x29, 0x3,0x64,0x6d, 0x2,0x2a,0x27, 0x2,0x29,0x7d, + 0x2,0x29,0x7b, 0x1,0x50,0x71, 0x2,0x2a,0x23, 0x2,0x2a,0x21, + 0x3,0x2c,0x3c, 0x3,0x2c,0x42, 0x2,0x2a,0x22, 0x2,0x2a,0x2e, + 0x3,0x2c,0x3e, 0x3,0x2c,0x41, 0x3,0x2c,0x43, 0x3,0x2c,0x3d, + 0x1,0x55,0x33, 0x3,0x30,0x63, 0x1,0x55,0x32, 0x3,0x30,0x5f, + 0x2,0x2e,0x6e, 0x1,0x55,0x2f, 0x2,0x2e,0x70, 0x3,0x30,0x64, + 0x1,0x55,0x34, 0x2,0x2e,0x71, 0x4,0x2c,0x60, 0x3,0x30,0x61, + 0x1,0x55,0x37, 0x3,0x30,0x62, 0x1,0x55,0x35, 0x2,0x2e,0x72, + 0x2,0x2a,0x2f, 0x2,0x2e,0x74, 0x3,0x30,0x5e, 0x1,0x55,0x31, + 0x4,0x2c,0x5c, 0x1,0x55,0x30, 0x4,0x2c,0x61, 0x2,0x2e,0x6f, + 0x2,0x2e,0x73, 0x1,0x55,0x36, 0x1,0x59,0x77, 0x1,0x59,0x76, + 0x3,0x35,0x4b, 0x3,0x35,0x48, 0x3,0x35,0x47, 0x2,0x34,0x78, + 0x2,0x34,0x7c, 0x2,0x34,0x7e, 0x1,0x59,0x78, 0x2,0x35,0x23, + 0x3,0x35,0x51, 0x1,0x59,0x7c, 0x2,0x35,0x25, 0x3,0x35,0x52, + 0x1,0x59,0x7e, 0x3,0x35,0x4f, 0x1,0x59,0x7a, 0x1,0x5a,0x24, + 0x3,0x35,0x55, 0x1,0x5a,0x21, 0x2,0x34,0x7a, 0x1,0x59,0x79, + 0x3,0x3b,0x2b, 0x2,0x34,0x79, 0x2,0x34,0x77, 0x2,0x35,0x27, + 0x2,0x34,0x7b, 0x3,0x35,0x46, 0x1,0x59,0x7b, 0x2,0x35,0x26, + 0x1,0x5a,0x22, 0x2,0x35,0x22, 0x2,0x35,0x21, 0x1,0x5a,0x23, + 0x2,0x34,0x7d, 0x1,0x59,0x7d, 0x3,0x35,0x4e, 0x6,0x3e,0x76, + 0x3,0x35,0x4a, 0x2,0x35,0x28, 0x3,0x35,0x54, 0x2,0x35,0x24, + 0x2,0x3b,0x4b, 0x2,0x3b,0x52, 0x2,0x3b,0x47, 0x1,0x5e,0x76, + 0x2,0x3b,0x43, 0x2,0x3b,0x53, 0x2,0x3b,0x3d, 0x2,0x3b,0x50, + 0x2,0x3b,0x4e, 0x2,0x3b,0x48, 0x3,0x3b,0x36, 0x2,0x3b,0x51, + 0x2,0x3b,0x4a, 0x3,0x3b,0x28, 0x2,0x3b,0x42, 0x2,0x3b,0x54, + 0x2,0x3b,0x40, 0x2,0x3b,0x4d, 0x2,0x3b,0x3e, 0x3,0x3b,0x27, + 0x2,0x3b,0x55, 0x3,0x3b,0x37, 0x1,0x5e,0x77, 0x3,0x3b,0x2a, + 0x2,0x3b,0x4f, 0x2,0x42,0x55, 0x2,0x3b,0x41, 0x1,0x5e,0x74, + 0x3,0x3b,0x2e, 0x2,0x3b,0x45, 0x3,0x3b,0x34, 0x1,0x5e,0x75, + 0x2,0x3b,0x44, 0x2,0x3b,0x49, 0x3,0x3b,0x33, 0x4,0x37,0x35, + 0x2,0x3b,0x46, 0x4,0x37,0x2f, 0x3,0x3b,0x31, 0x2,0x3b,0x4c, + 0x3,0x3b,0x2d, 0x2,0x42,0x59, 0x4,0x3c,0x79, 0x3,0x41,0x21, + 0x4,0x3c,0x7b, 0x2,0x42,0x5c, 0x2,0x42,0x54, 0x3,0x40,0x7c, + 0x2,0x42,0x56, 0x3,0x40,0x7a, 0x2,0x42,0x5b, 0x2,0x42,0x5a, + 0x1,0x63,0x69, 0x4,0x3c,0x75, 0x2,0x3b,0x3f, 0x2,0x42,0x58, + 0x3,0x40,0x79, 0x3,0x40,0x7d, 0x1,0x63,0x6a, 0x4,0x3c,0x74, + 0x2,0x42,0x53, 0x2,0x42,0x57, 0x4,0x3c,0x7c, 0x4,0x3c,0x78, + 0x3,0x64,0x6e, 0x2,0x49,0x6e, 0x3,0x46,0x5c, 0x2,0x49,0x75, + 0x2,0x49,0x6c, 0x3,0x46,0x54, 0x2,0x49,0x73, 0x2,0x49,0x6a, + 0x2,0x49,0x72, 0x2,0x49,0x76, 0x2,0x49,0x69, 0x2,0x49,0x6d, + 0x2,0x49,0x68, 0x3,0x46,0x56, 0x1,0x68,0x59, 0x4,0x43,0x2c, + 0x2,0x49,0x6b, 0x1,0x68,0x5a, 0x2,0x49,0x71, 0x2,0x49,0x70, + 0x2,0x49,0x6f, 0x3,0x46,0x59, 0x3,0x46,0x5a, 0x2,0x49,0x74, + 0x3,0x64,0x6f, 0x3,0x4b,0x65, 0x3,0x4b,0x66, 0x3,0x4b,0x63, + 0x2,0x50,0x2e, 0x2,0x50,0x30, 0x1,0x6c,0x55, 0x2,0x50,0x31, + 0x3,0x4b,0x6b, 0x2,0x50,0x2c, 0x3,0x4b,0x67, 0x2,0x50,0x2b, + 0x2,0x50,0x35, 0x3,0x4b,0x69, 0x2,0x50,0x33, 0x1,0x6c,0x54, + 0x2,0x50,0x36, 0x2,0x50,0x2d, 0x2,0x50,0x32, 0x2,0x50,0x34, + 0x2,0x50,0x2f, 0x3,0x4b,0x6a, 0x3,0x4b,0x68, 0x3,0x64,0x70, + 0x3,0x50,0x58, 0x2,0x56,0x6b, 0x2,0x56,0x70, 0x2,0x56,0x6a, + 0x2,0x56,0x6f, 0x3,0x50,0x5b, 0x2,0x56,0x68, 0x2,0x56,0x72, + 0x2,0x56,0x6e, 0x2,0x56,0x73, 0x2,0x56,0x6d, 0x2,0x56,0x69, + 0x2,0x56,0x71, 0x3,0x50,0x5a, 0x2,0x56,0x74, 0x2,0x56,0x6c, + 0x3,0x64,0x71, 0x2,0x5c,0x66, 0x1,0x73,0x58, 0x3,0x54,0x57, + 0x1,0x73,0x56, 0x3,0x54,0x59, 0x1,0x73,0x55, 0x1,0x73,0x57, + 0x3,0x54,0x55, 0x3,0x64,0x72, 0x2,0x61,0x50, 0x3,0x57,0x62, + 0x2,0x64,0x3e, 0x2,0x65,0x49, 0x3,0x5a,0x39, 0x2,0x68,0x70, + 0x2,0x68,0x71, 0x3,0x5c,0x3d, 0x1,0x79,0x6b, 0x3,0x5c,0x3c, + 0x2,0x6b,0x57, 0x3,0x5c,0x3e, 0x1,0x7a,0x69, 0x4,0x66,0x3b, + 0x2,0x6b,0x58, 0x3,0x5e,0x2d, 0x2,0x6d,0x4c, 0x1,0x7b,0x5e, + 0x3,0x5f,0x43, 0x1,0x7b,0x5d, 0x2,0x6d,0x4b, 0x1,0x7c,0x35, + 0x3,0x60,0x30, 0x2,0x6f,0x25, 0x4,0x6b,0x68, 0x4,0x6a,0x46, + 0x3,0x21,0x3c, 0x4,0x21,0x2c, 0x1,0x44,0x55, 0x1,0x47,0x7c, + 0x2,0x22,0x3a, 0x2,0x23,0x6a, 0x1,0x4b,0x56, 0x1,0x5a,0x25, + 0x3,0x35,0x57, 0x3,0x4b,0x6c, 0x1,0x44,0x56, 0x1,0x46,0x4a, + 0x1,0x46,0x49, 0x1,0x46,0x48, 0x4,0x22,0x63, 0x1,0x4a,0x27, + 0x1,0x55,0x38, 0x2,0x42,0x5d, 0x1,0x44,0x57, 0x1,0x44,0x58, + 0x1,0x44,0x59, 0x1,0x45,0x3b, 0x3,0x25,0x67, 0x3,0x28,0x60, + 0x1,0x50,0x73, 0x4,0x2c,0x64, 0x2,0x2a,0x30, 0x3,0x2c,0x45, + 0x3,0x2c,0x44, 0x1,0x5e,0x78, 0x1,0x44,0x5a, 0x2,0x21,0x3d, + 0x3,0x21,0x63, 0x4,0x21,0x4c, 0x1,0x46,0x4b, 0x1,0x46,0x4c, + 0x2,0x21,0x59, 0x1,0x47,0x7d, 0x5,0x22,0x5c, 0x3,0x23,0x5c, + 0x3,0x25,0x68, 0x2,0x23,0x6b, 0x3,0x25,0x6b, 0x1,0x4a,0x28, + 0x4,0x24,0x23, 0x2,0x23,0x6c, 0x1,0x4d,0x30, 0x3,0x28,0x62, + 0x3,0x28,0x61, 0x2,0x26,0x4f, 0x1,0x4d,0x2e, 0x1,0x4d,0x2d, + 0x2,0x26,0x4e, 0x1,0x4d,0x2b, 0x2,0x26,0x50, 0x1,0x4d,0x2c, + 0x1,0x4d,0x2f, 0x1,0x50,0x74, 0x3,0x2c,0x46, 0x1,0x50,0x76, + 0x2,0x2a,0x34, 0x2,0x2a,0x31, 0x2,0x2a,0x32, 0x2,0x2a,0x33, + 0x2,0x2a,0x35, 0x1,0x50,0x75, 0x2,0x2e,0x76, 0x2,0x2e,0x75, + 0x3,0x30,0x66, 0x1,0x55,0x3a, 0x3,0x30,0x69, 0x1,0x55,0x39, + 0x3,0x30,0x68, 0x3,0x30,0x6a, 0x3,0x30,0x67, 0x3,0x35,0x5b, + 0x1,0x5a,0x28, 0x2,0x35,0x2a, 0x3,0x35,0x59, 0x1,0x5a,0x27, + 0x1,0x5a,0x29, 0x1,0x5a,0x26, 0x3,0x35,0x58, 0x3,0x35,0x5a, + 0x1,0x5e,0x7a, 0x2,0x35,0x29, 0x5,0x37,0x7c, 0x1,0x5e,0x7b, + 0x2,0x3b,0x57, 0x3,0x39,0x79, 0x1,0x5e,0x7c, 0x2,0x3b,0x56, + 0x1,0x5e,0x79, 0x3,0x3b,0x3a, 0x3,0x3b,0x3b, 0x3,0x3b,0x3d, + 0x2,0x42,0x60, 0x2,0x42,0x62, 0x1,0x63,0x6b, 0x2,0x42,0x61, + 0x2,0x42,0x5f, 0x2,0x42,0x5e, 0x4,0x3d,0x2a, 0x4,0x43,0x35, + 0x3,0x46,0x5d, 0x2,0x49,0x79, 0x1,0x68,0x5f, 0x1,0x68,0x5d, + 0x4,0x43,0x30, 0x1,0x68,0x5e, 0x2,0x49,0x77, 0x2,0x49,0x78, + 0x3,0x4b,0x6d, 0x1,0x68,0x5b, 0x2,0x50,0x3a, 0x2,0x50,0x38, + 0x3,0x4b,0x70, 0x1,0x6c,0x57, 0x2,0x50,0x39, 0x1,0x6c,0x58, + 0x1,0x6c,0x56, 0x1,0x68,0x5c, 0xf,0x4e,0x5e, 0x3,0x64,0x73, + 0x2,0x56,0x77, 0x2,0x56,0x75, 0x2,0x56,0x76, 0x2,0x50,0x37, + 0x2,0x5c,0x68, 0x1,0x73,0x59, 0x2,0x5c,0x67, 0x2,0x61,0x51, + 0x2,0x61,0x52, 0x2,0x56,0x78, 0x2,0x65,0x4a, 0x3,0x66,0x77, + 0x1,0x44,0x5b, 0x1,0x46,0x4d, 0x1,0x48,0x21, 0x2,0x22,0x3b, + 0x1,0x47,0x7e, 0x3,0x28,0x63, 0x1,0x4d,0x31, 0x1,0x63,0x6c, + 0x3,0x21,0x3d, 0x1,0x45,0x3c, 0x1,0x46,0x4e, 0x1,0x50,0x77, + 0x1,0x5e,0x7d, 0x3,0x21,0x3e, 0x2,0x21,0x5a, 0x3,0x22,0x47, + 0x2,0x21,0x5b, 0x3,0x22,0x48, 0x2,0x22,0x3c, 0x3,0x66,0x78, + 0x1,0x4a,0x2a, 0x2,0x23,0x70, 0x2,0x23,0x6e, 0x1,0x4a,0x2b, + 0x2,0x23,0x6d, 0x2,0x23,0x6f, 0x2,0x23,0x71, 0x4,0x24,0x28, + 0x1,0x4a,0x29, 0x3,0x25,0x6e, 0x3,0x25,0x6d, 0x1,0x4d,0x35, + 0x1,0x4d,0x36, 0x1,0x4d,0x33, 0x3,0x28,0x65, 0x3,0x28,0x67, + 0x1,0x4d,0x32, 0x2,0x2a,0x39, 0x1,0x4d,0x34, 0x3,0x28,0x68, + 0x1,0x50,0x78, 0x3,0x2c,0x48, 0x2,0x2a,0x38, 0x2,0x2a,0x3a, + 0x2,0x2a,0x37, 0x2,0x2a,0x3b, 0x1,0x50,0x79, 0x1,0x55,0x3d, + 0x2,0x2e,0x77, 0x3,0x30,0x6c, 0x2,0x2e,0x79, 0x1,0x55,0x3b, + 0x2,0x2e,0x7a, 0x1,0x55,0x3c, 0x2,0x2e,0x78, 0x3,0x30,0x6b, + 0x2,0x2a,0x36, 0x2,0x35,0x2b, 0x2,0x35,0x2e, 0x2,0x35,0x2f, + 0x2,0x35,0x2c, 0x1,0x5a,0x2d, 0x1,0x5a,0x2c, 0x1,0x5a,0x2a, + 0x1,0x5a,0x2b, 0x2,0x35,0x2d, 0x3,0x35,0x61, 0x3,0x35,0x60, + 0x3,0x3b,0x3f, 0x1,0x5a,0x2e, 0x3,0x3b,0x40, 0x3,0x3b,0x3e, + 0x1,0x5f,0x21, 0x1,0x5f,0x22, 0x6,0x48,0x45, 0x1,0x5f,0x23, + 0x2,0x42,0x63, 0x2,0x42,0x65, 0x2,0x42,0x67, 0x1,0x63,0x6e, + 0x1,0x63,0x6d, 0x1,0x5e,0x7e, 0x2,0x42,0x66, 0x2,0x42,0x64, + 0x3,0x64,0x74, 0x2,0x49,0x7d, 0x3,0x46,0x61, 0x3,0x46,0x60, + 0x2,0x49,0x7b, 0x2,0x4a,0x23, 0x1,0x68,0x60, 0x2,0x4a,0x24, + 0x2,0x4a,0x21, 0x1,0x68,0x61, 0x2,0x49,0x7c, 0x2,0x49,0x7a, + 0x2,0x4a,0x22, 0x1,0x6c,0x5a, 0x2,0x50,0x3c, 0x2,0x49,0x7e, + 0x1,0x6c,0x5c, 0x2,0x50,0x3d, 0x1,0x6c,0x5b, 0x1,0x6c,0x5e, + 0x2,0x50,0x3e, 0x1,0x6c,0x59, 0x1,0x6c,0x5d, 0x2,0x56,0x7d, + 0x2,0x56,0x7b, 0x2,0x56,0x7a, 0x2,0x56,0x7c, 0x2,0x56,0x79, + 0x3,0x50,0x5c, 0x4,0x5b,0x21, 0x1,0x78,0x33, 0x3,0x64,0x75, + 0x2,0x68,0x72, 0x2,0x68,0x73, 0x3,0x5c,0x3f, 0x2,0x6b,0x59, + 0x2,0x6d,0x4d, 0x1,0x7d,0x22, 0x3,0x21,0x3f, 0x3,0x23,0x61, + 0x1,0x4d,0x37, 0x1,0x4a,0x2c, 0x3,0x28,0x69, 0x3,0x28,0x6b, + 0x1,0x50,0x7a, 0x3,0x2c,0x4c, 0x3,0x2c,0x4b, 0x3,0x30,0x6e, + 0x1,0x44,0x5c, 0x1,0x45,0x3d, 0x4,0x21,0x4d, 0x1,0x46,0x4f, + 0x2,0x22,0x3d, 0x3,0x25,0x6f, 0x1,0x4a,0x2d, 0x2,0x23,0x72, + 0x3,0x28,0x6d, 0x2,0x2a,0x3c, 0x1,0x50,0x7b, 0x1,0x68,0x62, + 0x1,0x44,0x5d, 0x3,0x21,0x64, 0x3,0x22,0x49, 0x3,0x23,0x62, + 0x1,0x48,0x22, 0xf,0x22,0x4e, 0x3,0x3b,0x42, 0x1,0x63,0x6f, + 0x1,0x44,0x5e, 0x1,0x45,0x3e, 0x1,0x45,0x3f, 0x1,0x46,0x51, + 0x1,0x46,0x50, 0x4,0x22,0x6b, 0x2,0x22,0x3e, 0x1,0x48,0x23, + 0x4,0x22,0x6c, 0x2,0x23,0x73, 0x3,0x25,0x71, 0x1,0x4a,0x2e, + 0x3,0x28,0x6e, 0x2,0x26,0x52, 0x2,0x26,0x53, 0x2,0x26,0x54, + 0x3,0x28,0x70, 0x1,0x4d,0x38, 0x1,0x4d,0x39, 0x2,0x26,0x51, + 0x1,0x4d,0x3a, 0x4,0x29,0x2c, 0x4,0x2c,0x70, 0x1,0x50,0x7c, + 0x2,0x2a,0x3d, 0x3,0x2c,0x4d, 0x2,0x2e,0x7c, 0x1,0x55,0x3e, + 0x3,0x30,0x6f, 0x2,0x2e,0x7b, 0x3,0x35,0x62, 0x1,0x5a,0x2f, + 0x2,0x35,0x30, 0x1,0x5a,0x30, 0x2,0x35,0x31, 0x3,0x35,0x63, + 0x3,0x3b,0x47, 0x3,0x3b,0x45, 0x1,0x5f,0x24, 0x4,0x37,0x45, + 0x3,0x3b,0x44, 0x4,0x3d,0x30, 0x2,0x42,0x68, 0xf,0x41,0x3f, + 0x3,0x41,0x22, 0x2,0x4a,0x26, 0x2,0x4a,0x25, 0x1,0x68,0x63, + 0x4,0x49,0x5e, 0x1,0x6c,0x5f, 0x2,0x50,0x3f, 0x1,0x70,0x53, + 0x2,0x56,0x7e, 0x1,0x73,0x5a, 0x3,0x57,0x63, 0x1,0x7b,0x5f, + 0x2,0x6f,0x27, 0x3,0x21,0x40, 0x3,0x21,0x41, 0x3,0x22,0x4a, + 0x3,0x23,0x51, 0x2,0x26,0x55, 0x3,0x28,0x71, 0x2,0x2a,0x3e, + 0x1,0x5a,0x31, 0x2,0x3b,0x58, 0x1,0x63,0x70, 0x3,0x41,0x23, + 0x3,0x50,0x5e, 0xf,0x54,0x43, 0x3,0x57,0x64, 0x1,0x76,0x41, + 0x3,0x61,0x64, 0x3,0x21,0x42, 0x1,0x4a,0x30, 0x3,0x25,0x72, + 0x1,0x4a,0x2f, 0x1,0x50,0x7d, 0x3,0x2c,0x50, 0x2,0x2e,0x7d, + 0x1,0x5a,0x33, 0x1,0x5d,0x29, 0x1,0x5a,0x34, 0x1,0x5a,0x32, + 0x1,0x5f,0x25, 0x3,0x41,0x24, 0x2,0x4a,0x27, 0x1,0x68,0x64, + 0x1,0x6c,0x60, 0x3,0x5f,0x45, 0x2,0x21,0x2c, 0x2,0x22,0x3f, + 0x4,0x22,0x6d, 0x2,0x23,0x75, 0x1,0x4a,0x31, 0x2,0x23,0x74, + 0x1,0x4a,0x32, 0x4,0x24,0x2c, 0x1,0x4d,0x3e, 0x2,0x26,0x58, + 0x2,0x26,0x57, 0x1,0x4d,0x3d, 0x1,0x4d,0x3b, 0x1,0x4d,0x3c, + 0x2,0x26,0x56, 0x3,0x28,0x76, 0x3,0x28,0x75, 0x1,0x51,0x21, + 0x2,0x2a,0x3f, 0x1,0x51,0x24, 0x1,0x50,0x7e, 0x1,0x51,0x26, + 0x1,0x51,0x22, 0x1,0x51,0x23, 0x1,0x51,0x25, 0x4,0x29,0x31, + 0x3,0x30,0x70, 0x3,0x30,0x72, 0x1,0x55,0x41, 0x1,0x55,0x40, + 0x1,0x55,0x3f, 0x3,0x30,0x71, 0x3,0x64,0x76, 0x2,0x35,0x33, + 0x1,0x5a,0x35, 0x1,0x5a,0x38, 0x1,0x5a,0x36, 0x3,0x64,0x77, + 0x2,0x35,0x32, 0x1,0x5a,0x3b, 0x4,0x31,0x53, 0x1,0x5a,0x37, + 0x2,0x35,0x34, 0x1,0x5a,0x3a, 0x1,0x5a,0x39, 0x4,0x31,0x52, + 0x4,0x31,0x57, 0x4,0x37,0x4a, 0x2,0x3b,0x5a, 0x2,0x3b,0x59, + 0x3,0x3b,0x4b, 0x1,0x5f,0x28, 0x1,0x5f,0x26, 0x1,0x5f,0x27, + 0x2,0x3b,0x5b, 0x1,0x63,0x71, 0x2,0x42,0x6a, 0x1,0x63,0x72, + 0x2,0x42,0x69, 0x4,0x3d,0x34, 0x4,0x43,0x3f, 0x2,0x50,0x40, + 0x3,0x46,0x63, 0x3,0x46,0x64, 0x1,0x6c,0x62, 0x2,0x4a,0x28, + 0x1,0x6c,0x61, 0x3,0x4b,0x72, 0x1,0x68,0x65, 0x3,0x64,0x78, + 0x2,0x57,0x22, 0x2,0x57,0x21, 0x1,0x73,0x5b, 0x2,0x5c,0x69, + 0x2,0x65,0x4b, 0x2,0x68,0x74, 0x2,0x68,0x75, 0x3,0x5e,0x2f, + 0x1,0x45,0x40, 0x4,0x21,0x36, 0x1,0x46,0x52, 0x3,0x22,0x4d, + 0x4,0x22,0x71, 0x2,0x21,0x5c, 0x3,0x22,0x4c, 0x5,0x22,0x66, + 0x1,0x4a,0x34, 0x1,0x4a,0x36, 0x3,0x25,0x78, 0x2,0x22,0x42, + 0x2,0x23,0x78, 0x2,0x23,0x77, 0x2,0x23,0x76, 0x3,0x23,0x66, + 0x2,0x22,0x41, 0x2,0x22,0x40, 0x1,0x48,0x25, 0x1,0x4a,0x35, + 0x1,0x4a,0x33, 0x1,0x48,0x24, 0x3,0x23,0x67, 0x3,0x23,0x69, + 0x3,0x25,0x77, 0x1,0x4d,0x3f, 0x2,0x26,0x59, 0x3,0x25,0x7b, + 0x1,0x4d,0x40, 0x2,0x23,0x7d, 0x4,0x26,0x50, 0x2,0x24,0x21, + 0x2,0x23,0x7e, 0x2,0x26,0x5a, 0x3,0x25,0x76, 0x3,0x25,0x74, + 0x2,0x23,0x7a, 0x3,0x28,0x7e, 0x1,0x4a,0x3a, 0x1,0x4a,0x38, + 0x3,0x25,0x7c, 0x2,0x23,0x79, 0x2,0x23,0x7b, 0x2,0x24,0x23, + 0x3,0x26,0x22, 0x1,0x4a,0x37, 0x3,0x26,0x21, 0x2,0x23,0x7c, + 0x2,0x24,0x27, 0x1,0x4d,0x42, 0x3,0x25,0x7d, 0x2,0x24,0x24, + 0x1,0x4a,0x39, 0x3,0x26,0x23, 0x2,0x24,0x22, 0x2,0x24,0x25, + 0x3,0x25,0x7a, 0x1,0x4d,0x41, 0x3,0x25,0x75, 0x1,0x4d,0x43, + 0x2,0x24,0x26, 0x3,0x28,0x78, 0x3,0x29,0x22, 0x2,0x26,0x6e, + 0x2,0x26,0x61, 0x2,0x26,0x5f, 0x2,0x26,0x6d, 0x2,0x26,0x68, + 0x1,0x51,0x2b, 0x1,0x4d,0x44, 0x2,0x26,0x69, 0x2,0x26,0x6c, + 0x1,0x51,0x27, 0x2,0x26,0x6b, 0x1,0x4d,0x45, 0x1,0x4d,0x4a, + 0x1,0x4d,0x48, 0x2,0x26,0x62, 0x4,0x29,0x36, 0x2,0x26,0x5d, + 0x2,0x26,0x64, 0x1,0x4d,0x4f, 0x2,0x26,0x6f, 0x1,0x51,0x28, + 0x2,0x26,0x65, 0x4,0x26,0x4f, 0x1,0x51,0x29, 0x1,0x4d,0x4b, + 0x2,0x26,0x67, 0x3,0x2c,0x5a, 0x2,0x2a,0x4e, 0x1,0x51,0x2a, + 0x2,0x26,0x5c, 0x1,0x4d,0x4c, 0x1,0x51,0x2c, 0x1,0x4d,0x4d, + 0x1,0x4d,0x49, 0x1,0x4d,0x4e, 0x2,0x26,0x66, 0x2,0x26,0x5b, + 0x2,0x26,0x6a, 0x1,0x4d,0x46, 0x3,0x28,0x77, 0x3,0x2c,0x5b, + 0x2,0x26,0x5e, 0x2,0x26,0x63, 0x2,0x26,0x60, 0x1,0x4d,0x47, + 0x3,0x28,0x7a, 0x2,0x2a,0x40, 0x4,0x29,0x45, 0x2,0x2a,0x41, + 0x3,0x29,0x21, 0x2,0x2a,0x4b, 0x2,0x2f,0x23, 0x2,0x2a,0x4c, + 0x1,0x51,0x32, 0x2,0x2a,0x4f, 0x2,0x2a,0x45, 0x1,0x51,0x31, + 0x2,0x2a,0x47, 0x4,0x29,0x3f, 0x2,0x2a,0x48, 0x3,0x2c,0x60, + 0x3,0x30,0x79, 0x2,0x2a,0x4a, 0x1,0x51,0x2d, 0x3,0x2c,0x56, + 0x3,0x30,0x73, 0x1,0x55,0x45, 0x3,0x2c,0x57, 0x3,0x2c,0x5d, + 0x2,0x2a,0x46, 0x2,0x2a,0x42, 0x1,0x55,0x46, 0x3,0x30,0x7e, + 0x4,0x29,0x3e, 0x2,0x2a,0x50, 0x1,0x55,0x42, 0x2,0x2f,0x21, + 0x2,0x2a,0x49, 0x3,0x2c,0x54, 0x2,0x2e,0x7e, 0x2,0x2a,0x44, + 0x2,0x2a,0x4d, 0x3,0x2c,0x5f, 0x3,0x2c,0x61, 0x1,0x51,0x30, + 0x1,0x55,0x43, 0x1,0x51,0x36, 0x1,0x55,0x44, 0x2,0x2a,0x51, + 0x2,0x2f,0x22, 0x1,0x51,0x2f, 0x1,0x55,0x48, 0x1,0x51,0x35, + 0x1,0x51,0x34, 0x1,0x51,0x33, 0x1,0x55,0x47, 0x2,0x2a,0x52, + 0x1,0x55,0x49, 0x1,0x51,0x2e, 0x4,0x29,0x4b, 0x2,0x2a,0x43, + 0x3,0x30,0x7a, 0x3,0x30,0x78, 0x3,0x30,0x7b, 0x3,0x2c,0x5c, + 0x3,0x30,0x76, 0x1,0x5a,0x3c, 0x2,0x2f,0x26, 0x2,0x2f,0x28, + 0x4,0x2d,0x25, 0x2,0x2f,0x2a, 0x1,0x55,0x4a, 0x1,0x55,0x50, + 0x2,0x35,0x37, 0x2,0x2f,0x2e, 0x2,0x2f,0x25, 0x1,0x5a,0x3e, + 0x2,0x35,0x35, 0x3,0x31,0x22, 0x1,0x55,0x4f, 0x1,0x55,0x4d, + 0x2,0x2f,0x30, 0x4,0x2d,0x2d, 0x2,0x35,0x36, 0x4,0x2d,0x2c, + 0x2,0x2f,0x27, 0x3,0x31,0x25, 0x1,0x55,0x4e, 0x2,0x2f,0x2b, + 0x1,0x55,0x51, 0x2,0x2f,0x2d, 0x3,0x35,0x68, 0x3,0x30,0x74, + 0x1,0x55,0x4c, 0x2,0x2f,0x2c, 0x2,0x2f,0x2f, 0x2,0x2f,0x29, + 0x3,0x31,0x27, 0x1,0x55,0x4b, 0x1,0x5a,0x3f, 0x3,0x35,0x71, + 0x2,0x2f,0x24, 0x1,0x5a,0x3d, 0x3,0x35,0x72, 0x4,0x31,0x6b, + 0x3,0x31,0x23, 0x3,0x31,0x28, 0x1,0x5a,0x40, 0x3,0x31,0x21, + 0x3,0x35,0x6f, 0x3,0x31,0x26, 0x2,0x35,0x39, 0x2,0x35,0x42, + 0x1,0x5f,0x2b, 0x3,0x3b,0x54, 0x1,0x5a,0x42, 0x1,0x5a,0x47, + 0x1,0x5f,0x2c, 0x2,0x35,0x44, 0x1,0x5a,0x4e, 0x2,0x3b,0x5d, + 0x2,0x35,0x3a, 0x1,0x5a,0x46, 0x1,0x5a,0x49, 0x1,0x5a,0x44, + 0x2,0x35,0x38, 0x2,0x35,0x46, 0x2,0x35,0x49, 0x2,0x3b,0x6c, + 0x4,0x31,0x68, 0x2,0x35,0x47, 0x2,0x3b,0x61, 0x1,0x5a,0x45, + 0x1,0x5a,0x4c, 0x1,0x5a,0x50, 0x2,0x35,0x41, 0x2,0x3b,0x5c, + 0x2,0x35,0x45, 0x1,0x5a,0x41, 0x2,0x3b,0x5e, 0x2,0x35,0x48, + 0x2,0x3b,0x60, 0x2,0x35,0x3d, 0x3,0x35,0x6a, 0x1,0x5f,0x29, + 0x3,0x3b,0x56, 0x2,0x35,0x3b, 0x2,0x35,0x3c, 0x1,0x5a,0x4b, + 0x3,0x3b,0x55, 0x3,0x35,0x6e, 0x1,0x5a,0x4a, 0x2,0x35,0x3f, + 0x1,0x5a,0x4f, 0x2,0x35,0x43, 0x1,0x5a,0x48, 0x2,0x35,0x40, + 0x3,0x35,0x79, 0x1,0x5a,0x4d, 0x1,0x5f,0x2d, 0x1,0x5f,0x2a, + 0x2,0x3b,0x5f, 0x3,0x3b,0x58, 0x2,0x35,0x3e, 0x3,0x3b,0x59, + 0x1,0x5a,0x43, 0x3,0x35,0x76, 0x3,0x35,0x78, 0x3,0x3b,0x5a, + 0x3,0x3b,0x4d, 0x3,0x35,0x74, 0x1,0x5f,0x32, 0x1,0x5f,0x36, + 0x2,0x3b,0x63, 0x1,0x63,0x77, 0x1,0x5f,0x34, 0x2,0x3b,0x67, + 0x1,0x5f,0x38, 0x2,0x42,0x6b, 0x2,0x3b,0x69, 0x1,0x63,0x79, + 0x1,0x5f,0x30, 0x1,0x5f,0x33, 0x2,0x3b,0x6a, 0x3,0x3b,0x5e, + 0x2,0x3b,0x6b, 0x2,0x3b,0x71, 0x1,0x5f,0x3a, 0x1,0x63,0x7a, + 0x4,0x3d,0x3d, 0x2,0x3b,0x6d, 0x2,0x3b,0x72, 0x2,0x3b,0x66, + 0x1,0x64,0x26, 0x3,0x3b,0x4f, 0x1,0x63,0x7b, 0x1,0x5f,0x39, + 0x2,0x3b,0x64, 0x2,0x3b,0x73, 0x3,0x3b,0x51, 0x1,0x64,0x25, + 0x1,0x5f,0x37, 0x1,0x63,0x74, 0x2,0x3b,0x70, 0x3,0x3b,0x5d, + 0x1,0x5f,0x3b, 0x2,0x3b,0x68, 0x2,0x3b,0x62, 0x1,0x5f,0x31, + 0x2,0x3b,0x65, 0x5,0x3f,0x30, 0x2,0x3b,0x6e, 0x3,0x41,0x2b, + 0x1,0x63,0x73, 0x1,0x63,0x78, 0x1,0x5f,0x2e, 0x2,0x3b,0x6f, + 0x3,0x3b,0x61, 0x1,0x63,0x76, 0x3,0x3b,0x62, 0x3,0x3b,0x63, + 0x3,0x3b,0x50, 0x1,0x5f,0x2f, 0x3,0x64,0x79, 0x1,0x64,0x24, + 0x2,0x4a,0x2a, 0x2,0x42,0x76, 0x3,0x41,0x29, 0x2,0x42,0x6e, + 0x2,0x4a,0x29, 0x4,0x3d,0x39, 0x2,0x42,0x72, 0x2,0x42,0x74, + 0x3,0x41,0x27, 0x3,0x41,0x2c, 0x2,0x42,0x71, 0x3,0x46,0x6f, + 0x1,0x64,0x23, 0x4,0x3d,0x38, 0x2,0x42,0x70, 0x1,0x64,0x27, + 0x3,0x46,0x6e, 0x6,0x52,0x64, 0x3,0x41,0x28, 0x2,0x4a,0x39, + 0x3,0x46,0x6c, 0x3,0x41,0x2e, 0x1,0x64,0x22, 0x1,0x68,0x67, + 0x2,0x42,0x77, 0x2,0x4a,0x2b, 0x3,0x46,0x6d, 0x3,0x41,0x2a, + 0x1,0x63,0x7e, 0x2,0x42,0x6f, 0x2,0x42,0x73, 0x1,0x68,0x66, + 0x1,0x63,0x75, 0x2,0x42,0x6c, 0x2,0x42,0x6d, 0x1,0x68,0x68, + 0x1,0x63,0x7d, 0x1,0x64,0x21, 0x1,0x63,0x7c, 0x2,0x42,0x75, + 0x3,0x64,0x7a, 0x2,0x4a,0x2f, 0x2,0x4a,0x30, 0x2,0x4a,0x35, + 0x1,0x6c,0x67, 0x2,0x4a,0x3c, 0x3,0x4b,0x73, 0x1,0x68,0x6e, + 0x3,0x4b,0x7e, 0x1,0x68,0x6d, 0x2,0x4a,0x37, 0x3,0x4b,0x74, + 0x1,0x6c,0x66, 0x2,0x4a,0x2c, 0x1,0x68,0x6c, 0x3,0x46,0x71, + 0x2,0x4a,0x3b, 0x1,0x68,0x6a, 0x1,0x68,0x6b, 0x3,0x4b,0x7c, + 0x2,0x4a,0x38, 0x2,0x50,0x51, 0x1,0x6c,0x64, 0x1,0x5f,0x35, + 0x3,0x46,0x72, 0x2,0x4a,0x3a, 0x1,0x6c,0x6b, 0x2,0x4a,0x32, + 0x4,0x49,0x6f, 0x1,0x6c,0x65, 0x3,0x46,0x6a, 0x1,0x6c,0x6a, + 0x2,0x4a,0x2d, 0x2,0x4a,0x31, 0x2,0x4a,0x2e, 0x2,0x4a,0x34, + 0x1,0x68,0x6f, 0x1,0x6c,0x63, 0x1,0x68,0x69, 0x3,0x4c,0x21, + 0x2,0x50,0x43, 0x2,0x4a,0x36, 0x3,0x46,0x68, 0x1,0x6c,0x69, + 0x3,0x46,0x73, 0x1,0x6c,0x6c, 0x7,0x22,0x71, 0x2,0x4a,0x33, + 0x3,0x46,0x6b, 0x1,0x6c,0x68, 0x2,0x50,0x42, 0x5,0x4d,0x2a, + 0x3,0x4c,0x23, 0x3,0x46,0x74, 0x3,0x4c,0x24, 0x3,0x4b,0x77, + 0x2,0x50,0x47, 0x1,0x70,0x57, 0x2,0x50,0x41, 0x2,0x57,0x2e, + 0x2,0x50,0x50, 0x1,0x6c,0x70, 0x3,0x4b,0x7a, 0x1,0x6c,0x6e, + 0x1,0x70,0x55, 0x2,0x50,0x4d, 0x2,0x50,0x49, 0x1,0x6c,0x74, + 0x3,0x4b,0x76, 0x2,0x57,0x25, 0x3,0x50,0x68, 0x3,0x4c,0x28, + 0x3,0x50,0x67, 0x1,0x6c,0x72, 0x2,0x50,0x48, 0x3,0x4c,0x29, + 0x2,0x57,0x23, 0x3,0x4c,0x25, 0x2,0x50,0x4c, 0x4,0x50,0x3b, + 0x2,0x50,0x4f, 0x2,0x50,0x46, 0x3,0x4b,0x79, 0x1,0x6c,0x73, + 0x4,0x50,0x37, 0x3,0x4b,0x75, 0x1,0x6c,0x6d, 0x2,0x57,0x24, + 0x1,0x70,0x56, 0x2,0x50,0x4e, 0x1,0x6c,0x6f, 0x1,0x6c,0x71, + 0x2,0x50,0x4b, 0x1,0x6c,0x75, 0x2,0x50,0x4a, 0x2,0x50,0x45, + 0x2,0x50,0x44, 0x1,0x70,0x54, 0x2,0x50,0x52, 0x2,0x57,0x27, + 0x2,0x5c,0x6b, 0x1,0x70,0x59, 0x3,0x50,0x61, 0x2,0x57,0x2d, + 0x3,0x50,0x63, 0x2,0x57,0x2b, 0x3,0x50,0x6a, 0x2,0x5c,0x6c, + 0x3,0x50,0x64, 0x1,0x70,0x5a, 0x2,0x57,0x2c, 0x3,0x50,0x66, + 0x2,0x57,0x29, 0x1,0x73,0x5d, 0x2,0x5c,0x6a, 0x3,0x50,0x6c, + 0x2,0x57,0x26, 0x2,0x57,0x28, 0x1,0x73,0x5e, 0x1,0x70,0x5c, + 0x1,0x73,0x5c, 0x1,0x70,0x5b, 0x1,0x73,0x60, 0x2,0x57,0x2a, + 0x1,0x70,0x58, 0x3,0x50,0x62, 0x3,0x50,0x65, 0x3,0x50,0x6b, + 0x3,0x66,0x79, 0x4,0x5b,0x2b, 0x2,0x61,0x5b, 0x4,0x56,0x33, + 0x2,0x61,0x53, 0x3,0x54,0x61, 0x3,0x54,0x5f, 0x3,0x54,0x5c, + 0x3,0x54,0x5e, 0x3,0x54,0x5d, 0x2,0x5c,0x72, 0x2,0x61,0x54, + 0x2,0x5c,0x6e, 0x4,0x56,0x32, 0x3,0x54,0x5b, 0x1,0x76,0x42, + 0x2,0x5c,0x70, 0x2,0x5c,0x6f, 0x1,0x73,0x5f, 0x2,0x5c,0x6d, + 0x2,0x5c,0x71, 0x2,0x61,0x5c, 0x2,0x61,0x58, 0x2,0x61,0x5a, + 0x4,0x5f,0x60, 0x2,0x61,0x55, 0x2,0x61,0x56, 0x4,0x5f,0x61, + 0x2,0x61,0x59, 0x2,0x61,0x57, 0x1,0x78,0x34, 0x3,0x57,0x65, + 0x1,0x78,0x37, 0x1,0x78,0x36, 0x1,0x78,0x35, 0x1,0x79,0x6c, + 0x2,0x68,0x76, 0x1,0x79,0x6d, 0x2,0x65,0x4c, 0x1,0x7a,0x6a, + 0x2,0x6b,0x5a, 0x1,0x7a,0x6b, 0x1,0x7b,0x60, 0x1,0x7c,0x36, + 0x2,0x6f,0x28, 0x3,0x5f,0x46, 0x2,0x6f,0x29, 0x2,0x6f,0x2a, + 0x3,0x61,0x3e, 0x2,0x72,0x2a, 0x1,0x45,0x41, 0x2,0x21,0x5d, + 0x1,0x46,0x53, 0x1,0x48,0x27, 0x1,0x48,0x28, 0x1,0x48,0x26, + 0x3,0x23,0x6b, 0x1,0x48,0x29, 0x1,0x4a,0x3c, 0x1,0x4a,0x3b, + 0x3,0x26,0x25, 0x2,0x26,0x70, 0x1,0x4d,0x51, 0x1,0x4d,0x50, + 0x3,0x2c,0x63, 0x2,0x2f,0x31, 0x1,0x5a,0x51, 0x1,0x5a,0x52, + 0x4,0x31,0x6e, 0x4,0x31,0x70, 0x3,0x3b,0x64, 0x1,0x5f,0x3c, + 0x2,0x42,0x78, 0x1,0x64,0x28, 0x1,0x64,0x29, 0x2,0x42,0x7a, + 0x2,0x42,0x7c, 0x2,0x42,0x7b, 0x4,0x3d,0x43, 0x2,0x4a,0x3e, + 0x3,0x46,0x76, 0x2,0x4a,0x3d, 0x1,0x68,0x70, 0x2,0x4a,0x3f, + 0x3,0x46,0x75, 0x2,0x50,0x53, 0x1,0x6c,0x76, 0x3,0x4c,0x2c, + 0x1,0x70,0x5d, 0x3,0x50,0x6d, 0x1,0x73,0x61, 0x1,0x76,0x43, + 0x1,0x73,0x62, 0x3,0x5f,0x48, 0x1,0x45,0x42, 0x3,0x21,0x65, + 0x3,0x21,0x66, 0x3,0x22,0x4e, 0x2,0x24,0x28, 0x3,0x26,0x28, + 0x3,0x26,0x29, 0x2,0x26,0x71, 0x1,0x4d,0x53, 0x1,0x4d,0x52, + 0x1,0x4d,0x54, 0x1,0x51,0x37, 0x2,0x2a,0x53, 0x2,0x2a,0x54, + 0x3,0x31,0x29, 0x2,0x2f,0x32, 0x1,0x55,0x52, 0x1,0x5a,0x53, + 0x1,0x5f,0x3d, 0x2,0x3b,0x74, 0x1,0x45,0x43, 0x4,0x21,0x37, + 0x1,0x44,0x5f, 0x1,0x45,0x44, 0x3,0x22,0x50, 0x2,0x21,0x5e, + 0x1,0x46,0x57, 0x1,0x46,0x56, 0x1,0x46,0x54, 0x1,0x46,0x55, + 0x3,0x23,0x6f, 0x1,0x48,0x2c, 0x2,0x22,0x49, 0x2,0x22,0x4b, + 0x1,0x48,0x2b, 0x2,0x22,0x43, 0x3,0x23,0x6c, 0x2,0x22,0x44, + 0x3,0x23,0x6d, 0x2,0x22,0x4a, 0x2,0x22,0x46, 0x2,0x22,0x48, + 0x1,0x48,0x2a, 0x2,0x22,0x45, 0x2,0x22,0x4c, 0x2,0x22,0x47, + 0x3,0x23,0x6e, 0xf,0x22,0x51, 0x1,0x4a,0x43, 0x1,0x4a,0x4c, + 0x1,0x4a,0x4a, 0x2,0x24,0x32, 0x2,0x24,0x2f, 0x2,0x24,0x37, + 0x1,0x4a,0x48, 0x2,0x24,0x38, 0x3,0x26,0x39, 0x1,0x4a,0x41, + 0x2,0x24,0x35, 0x3,0x26,0x2e, 0x1,0x4a,0x47, 0x2,0x24,0x31, + 0x2,0x24,0x30, 0x1,0x4a,0x45, 0x2,0x24,0x36, 0x1,0x4a,0x46, + 0x1,0x4d,0x55, 0x1,0x4a,0x40, 0x2,0x24,0x33, 0x3,0x26,0x2a, + 0x2,0x24,0x29, 0x1,0x4a,0x3d, 0x3,0x26,0x37, 0x1,0x4a,0x50, + 0x2,0x24,0x2e, 0x2,0x24,0x34, 0x1,0x4a,0x42, 0x1,0x4a,0x44, + 0x3,0x26,0x2f, 0x2,0x24,0x2a, 0x3,0x26,0x36, 0x2,0x24,0x2b, + 0x2,0x24,0x2c, 0x4,0x24,0x39, 0x1,0x4a,0x4f, 0x1,0x4a,0x49, + 0x1,0x4a,0x4e, 0x2,0x24,0x2d, 0x1,0x4a,0x4d, 0x1,0x4a,0x3f, + 0x1,0x4a,0x3e, 0x1,0x4a,0x4b, 0x3,0x26,0x35, 0x4,0x24,0x3c, + 0x3,0x26,0x33, 0x3,0x26,0x34, 0x3,0x26,0x38, 0x3,0x26,0x31, + 0x3,0x64,0x7b, 0xf,0x24,0x39, 0x3,0x26,0x32, 0x3,0x29,0x31, + 0x3,0x29,0x2a, 0x1,0x4d,0x63, 0x2,0x26,0x7d, 0x2,0x26,0x76, + 0x1,0x4d,0x5e, 0x1,0x4d,0x71, 0x2,0x26,0x72, 0x2,0x26,0x79, + 0x2,0x26,0x7b, 0x2,0x26,0x7e, 0x1,0x4d,0x6c, 0x3,0x29,0x26, + 0x2,0x26,0x7a, 0x2,0x26,0x73, 0x1,0x4d,0x6a, 0x2,0x26,0x77, + 0x3,0x29,0x28, 0x2,0x27,0x21, 0x1,0x4d,0x5b, 0x3,0x29,0x25, + 0x2,0x26,0x7c, 0x1,0x4d,0x65, 0x1,0x4d,0x64, 0x2,0x26,0x75, + 0x1,0x4d,0x59, 0x3,0x29,0x34, 0x3,0x29,0x32, 0x1,0x4d,0x5a, + 0xf,0x27,0x30, 0x1,0x4d,0x58, 0x3,0x29,0x33, 0x1,0x4d,0x70, + 0x1,0x4d,0x68, 0x1,0x4d,0x62, 0x1,0x4d,0x56, 0x2,0x26,0x78, + 0x1,0x4d,0x61, 0x1,0x4d,0x57, 0x1,0x4d,0x69, 0x1,0x4d,0x72, + 0x2,0x2a,0x55, 0x1,0x4d,0x66, 0x2,0x26,0x74, 0x1,0x4d,0x5c, + 0x1,0x4d,0x5f, 0x1,0x4d,0x60, 0x3,0x29,0x2e, 0x1,0x4d,0x6e, + 0x1,0x4d,0x6f, 0x1,0x4d,0x6d, 0x1,0x4d,0x67, 0x1,0x4d,0x6b, + 0x1,0x4d,0x5d, 0x1,0x51,0x38, 0x3,0x29,0x30, 0x3,0x29,0x37, + 0x3,0x29,0x35, 0x3,0x29,0x36, 0x3,0x29,0x2f, 0x3,0x29,0x29, + 0x3,0x2c,0x6d, 0x2,0x2a,0x5b, 0x1,0x51,0x44, 0x1,0x51,0x3c, + 0x1,0x51,0x3e, 0x1,0x51,0x43, 0x2,0x2a,0x67, 0x1,0x51,0x41, + 0x2,0x2f,0x33, 0x1,0x55,0x53, 0x1,0x51,0x46, 0x2,0x2a,0x58, + 0x2,0x2a,0x60, 0x1,0x51,0x42, 0x2,0x2a,0x5f, 0x2,0x2a,0x5c, + 0x2,0x2a,0x64, 0x2,0x2a,0x66, 0x1,0x51,0x3b, 0x1,0x51,0x3f, + 0x1,0x51,0x45, 0x1,0x55,0x55, 0x2,0x2a,0x61, 0x1,0x51,0x3d, + 0x1,0x51,0x48, 0x2,0x2a,0x5a, 0x3,0x2c,0x6f, 0x3,0x2c,0x70, + 0x5,0x29,0x45, 0x1,0x51,0x40, 0x1,0x55,0x54, 0x1,0x51,0x3a, + 0x4,0x29,0x59, 0x2,0x2a,0x57, 0x2,0x2a,0x5e, 0x2,0x2a,0x56, + 0x2,0x2a,0x59, 0x2,0x2a,0x5d, 0x2,0x2f,0x34, 0x1,0x51,0x47, + 0x4,0x29,0x51, 0x2,0x2a,0x62, 0x2,0x2a,0x63, 0x2,0x2a,0x65, + 0x1,0x51,0x39, 0x3,0x2c,0x6c, 0x3,0x31,0x32, 0x3,0x31,0x33, + 0x3,0x2c,0x6b, 0x3,0x2c,0x6e, 0x4,0x29,0x5b, 0x1,0x55,0x63, + 0x2,0x2f,0x40, 0x1,0x55,0x61, 0x1,0x55,0x62, 0x2,0x2f,0x36, + 0x2,0x2f,0x46, 0x3,0x31,0x2c, 0x1,0x55,0x58, 0x3,0x31,0x2f, + 0x3,0x31,0x35, 0x2,0x35,0x4a, 0x2,0x2f,0x48, 0x2,0x2f,0x42, + 0x3,0x31,0x38, 0x2,0x2f,0x39, 0x3,0x31,0x37, 0x2,0x2f,0x4b, + 0x2,0x2f,0x3c, 0x1,0x55,0x5e, 0x2,0x35,0x61, 0x2,0x2f,0x3f, + 0x1,0x55,0x60, 0x1,0x55,0x57, 0x3,0x31,0x3c, 0x2,0x2f,0x4d, + 0x2,0x2f,0x41, 0x1,0x55,0x5a, 0x2,0x2f,0x3a, 0x2,0x2f,0x37, + 0x2,0x2f,0x38, 0x1,0x55,0x5b, 0x2,0x2f,0x47, 0x2,0x2f,0x4e, + 0x1,0x55,0x5d, 0x2,0x2f,0x3e, 0x2,0x2f,0x3d, 0x1,0x55,0x65, + 0x1,0x55,0x64, 0x1,0x55,0x56, 0x1,0x55,0x5c, 0x1,0x55,0x5f, + 0x2,0x2f,0x4a, 0x3,0x31,0x2e, 0x3,0x31,0x39, 0x2,0x2f,0x44, + 0x1,0x55,0x59, 0x2,0x2f,0x35, 0x2,0x2f,0x4c, 0x2,0x2f,0x43, + 0x2,0x2f,0x45, 0x2,0x2f,0x49, 0x3,0x31,0x30, 0x3,0x31,0x3b, + 0x3,0x31,0x36, 0x3,0x64,0x7c, 0x3,0x64,0x7d, 0x2,0x35,0x4b, + 0x3,0x36,0x31, 0x1,0x5a,0x5b, 0x1,0x5a,0x6f, 0x1,0x5a,0x6e, + 0x3,0x36,0x27, 0x1,0x5a,0x63, 0x3,0x36,0x29, 0x2,0x35,0x5d, + 0x2,0x35,0x59, 0x2,0x35,0x56, 0x2,0x35,0x68, 0x1,0x5a,0x5e, + 0x1,0x5a,0x56, 0x3,0x36,0x26, 0x3,0x36,0x32, 0x2,0x35,0x5b, + 0x1,0x5f,0x4d, 0x1,0x5a,0x5a, 0x2,0x35,0x63, 0x3,0x36,0x22, + 0x1,0x5a,0x70, 0x1,0x5a,0x6d, 0x2,0x35,0x5f, 0x2,0x35,0x4e, + 0x3,0x35,0x7c, 0x3,0x36,0x2b, 0x1,0x5a,0x6c, 0x2,0x35,0x65, + 0x2,0x35,0x4d, 0x1,0x5a,0x61, 0x1,0x5a,0x65, 0x2,0x35,0x64, + 0x3,0x36,0x23, 0x2,0x35,0x57, 0x1,0x5a,0x66, 0x1,0x5a,0x60, + 0x2,0x35,0x4c, 0x3,0x35,0x7d, 0x1,0x5f,0x3f, 0x2,0x35,0x67, + 0x2,0x35,0x55, 0x1,0x5a,0x6b, 0x2,0x35,0x58, 0x2,0x35,0x66, + 0x1,0x5a,0x6a, 0x3,0x36,0x24, 0x2,0x3b,0x75, 0x4,0x31,0x77, + 0x1,0x5a,0x57, 0x2,0x35,0x53, 0x1,0x5a,0x5c, 0x1,0x5a,0x67, + 0x4,0x31,0x78, 0x1,0x5a,0x62, 0x2,0x35,0x5c, 0x2,0x35,0x52, + 0x2,0x35,0x50, 0x2,0x35,0x62, 0x1,0x5a,0x54, 0x1,0x5a,0x68, + 0x1,0x5a,0x58, 0x1,0x5f,0x3e, 0x2,0x35,0x60, 0x1,0x5a,0x59, + 0x4,0x32,0x23, 0x1,0x5a,0x55, 0x1,0x5a,0x64, 0x1,0x5a,0x5f, + 0x1,0x5a,0x5d, 0x2,0x35,0x54, 0x1,0x5a,0x69, 0x2,0x35,0x51, + 0x2,0x35,0x5e, 0x2,0x35,0x5a, 0x2,0x3b,0x77, 0x2,0x3b,0x76, + 0x3,0x36,0x2d, 0x3,0x64,0x7e, 0x3,0x36,0x2e, 0x2,0x35,0x4f, + 0x2,0x3c,0x29, 0x3,0x3b,0x71, 0x1,0x5f,0x41, 0x3,0x3b,0x70, + 0x2,0x3c,0x2f, 0x2,0x3b,0x7c, 0x2,0x3c,0x2c, 0x2,0x42,0x7d, + 0x1,0x5f,0x44, 0x2,0x3c,0x30, 0x2,0x3c,0x33, 0x1,0x5f,0x43, + 0x2,0x3c,0x21, 0x2,0x3c,0x32, 0x2,0x3c,0x31, 0x1,0x5f,0x45, + 0x2,0x3b,0x78, 0x1,0x5f,0x40, 0x1,0x5f,0x48, 0x3,0x3b,0x73, + 0x1,0x5f,0x46, 0x2,0x3c,0x2e, 0x4,0x37,0x71, 0x2,0x3c,0x24, + 0x1,0x5f,0x4a, 0x2,0x3c,0x35, 0x2,0x3c,0x2d, 0x2,0x3c,0x36, + 0x1,0x5f,0x52, 0x1,0x5f,0x50, 0x2,0x3c,0x2b, 0x2,0x3c,0x2a, + 0x3,0x3b,0x67, 0x2,0x3c,0x28, 0x2,0x3c,0x22, 0x1,0x5f,0x49, + 0x3,0x3b,0x66, 0x1,0x5f,0x47, 0x2,0x2f,0x3b, 0x2,0x3b,0x79, + 0x3,0x3b,0x68, 0x2,0x43,0x3d, 0x2,0x3b,0x7a, 0x1,0x5f,0x42, + 0x1,0x5f,0x4f, 0x2,0x43,0x21, 0x4,0x37,0x60, 0x1,0x5f,0x4b, + 0x1,0x5f,0x4c, 0x2,0x3b,0x7b, 0x2,0x3c,0x34, 0x2,0x42,0x7e, + 0x2,0x3c,0x25, 0x2,0x3b,0x7e, 0x1,0x5f,0x4e, 0x2,0x3c,0x26, + 0x2,0x3c,0x23, 0x3,0x3b,0x72, 0x3,0x3b,0x6d, 0x1,0x5f,0x53, + 0x4,0x37,0x6f, 0x3,0x3b,0x6f, 0x3,0x65,0x21, 0x1,0x64,0x38, + 0x3,0x41,0x49, 0x3,0x41,0x32, 0x2,0x43,0x24, 0x2,0x43,0x37, + 0x2,0x43,0x3c, 0x2,0x43,0x30, 0x1,0x64,0x34, 0x2,0x43,0x41, + 0x1,0x64,0x31, 0x2,0x43,0x22, 0x3,0x41,0x3a, 0x2,0x43,0x23, + 0x1,0x64,0x2a, 0x1,0x64,0x33, 0x2,0x43,0x2a, 0x1,0x64,0x36, + 0x1,0x64,0x37, 0x2,0x43,0x2b, 0x3,0x41,0x38, 0x2,0x43,0x38, + 0x2,0x43,0x3e, 0x1,0x64,0x32, 0x3,0x41,0x3e, 0x1,0x64,0x2c, + 0x2,0x43,0x29, 0x2,0x43,0x25, 0x2,0x43,0x40, 0x2,0x43,0x2e, + 0x2,0x43,0x2f, 0x2,0x43,0x26, 0x2,0x43,0x3a, 0x2,0x43,0x31, + 0x2,0x43,0x3b, 0x2,0x43,0x33, 0x3,0x41,0x3d, 0x1,0x64,0x2d, + 0x2,0x4a,0x40, 0x1,0x64,0x30, 0x1,0x64,0x2e, 0x2,0x43,0x3f, + 0x2,0x43,0x36, 0x2,0x43,0x32, 0x3,0x41,0x36, 0x3,0x41,0x33, + 0x2,0x43,0x27, 0x1,0x68,0x7a, 0x2,0x43,0x35, 0x1,0x64,0x35, + 0x2,0x43,0x2d, 0x3,0x41,0x34, 0x2,0x43,0x2c, 0x3,0x41,0x48, + 0x3,0x47,0x25, 0x3,0x41,0x42, 0x1,0x64,0x2f, 0x1,0x64,0x2b, + 0x2,0x4a,0x55, 0x2,0x43,0x39, 0x2,0x43,0x34, 0x2,0x43,0x28, + 0x3,0x41,0x44, 0x3,0x41,0x45, 0x3,0x66,0x76, 0x2,0x4a,0x50, + 0x3,0x46,0x78, 0x2,0x4a,0x41, 0x2,0x4a,0x4c, 0x3,0x47,0x28, + 0x2,0x4a,0x53, 0x1,0x68,0x78, 0x1,0x5f,0x51, 0x2,0x4a,0x51, + 0x1,0x68,0x73, 0x3,0x46,0x7e, 0x3,0x47,0x24, 0x3,0x46,0x7a, + 0x1,0x68,0x72, 0x2,0x4a,0x58, 0x4,0x43,0x5d, 0x2,0x4a,0x42, + 0x2,0x4a,0x4f, 0x2,0x4a,0x43, 0x2,0x4a,0x4e, 0x1,0x68,0x76, + 0x2,0x4a,0x52, 0x2,0x3c,0x27, 0x3,0x47,0x21, 0x4,0x43,0x5e, + 0x3,0x47,0x2a, 0x2,0x4a,0x59, 0x2,0x4a,0x4a, 0x1,0x68,0x79, + 0x2,0x50,0x61, 0x1,0x6c,0x77, 0x3,0x47,0x23, 0x2,0x4a,0x57, + 0x2,0x4a,0x56, 0x1,0x68,0x7b, 0x2,0x50,0x54, 0x1,0x6c,0x78, + 0x2,0x50,0x55, 0x3,0x47,0x22, 0x2,0x4a,0x46, 0x2,0x4a,0x47, + 0x2,0x4a,0x44, 0x2,0x4a,0x49, 0x2,0x4a,0x45, 0x2,0x4a,0x5a, + 0x1,0x68,0x75, 0x1,0x6c,0x79, 0x1,0x68,0x77, 0x1,0x68,0x7c, + 0x3,0x46,0x7b, 0x2,0x4a,0x48, 0x3,0x47,0x29, 0x2,0x4a,0x54, + 0x3,0x4c,0x2d, 0x3,0x47,0x26, 0x2,0x4a,0x4d, 0x3,0x4c,0x35, + 0x2,0x50,0x58, 0x3,0x4c,0x38, 0x1,0x68,0x71, 0x1,0x6c,0x7c, + 0x2,0x57,0x35, 0x2,0x50,0x5d, 0x2,0x50,0x5c, 0x2,0x50,0x5e, + 0x3,0x4c,0x30, 0x3,0x4c,0x2f, 0x2,0x50,0x5b, 0x1,0x6c,0x7d, + 0x3,0x4c,0x3b, 0x1,0x6d,0x25, 0x1,0x6d,0x22, 0x3,0x4c,0x31, + 0x1,0x6d,0x23, 0x2,0x50,0x56, 0x2,0x50,0x59, 0x2,0x50,0x63, + 0x1,0x6d,0x2b, 0x1,0x6d,0x29, 0x3,0x4c,0x2e, 0x2,0x50,0x5a, + 0x2,0x3b,0x7d, 0x1,0x6c,0x7a, 0x2,0x50,0x60, 0x2,0x50,0x57, + 0x3,0x4c,0x3e, 0x1,0x6d,0x2c, 0x2,0x50,0x5f, 0x1,0x68,0x74, + 0x1,0x6d,0x21, 0x2,0x4a,0x4b, 0x3,0x4c,0x3f, 0x3,0x4c,0x34, + 0x1,0x6d,0x24, 0x3,0x4c,0x3d, 0x1,0x6d,0x28, 0x1,0x6d,0x2a, + 0x1,0x6d,0x27, 0x1,0x6d,0x26, 0x3,0x4c,0x3a, 0x1,0x6c,0x7e, + 0x2,0x50,0x62, 0x1,0x6c,0x7b, 0x1,0x6d,0x2d, 0x3,0x4c,0x39, + 0x3,0x65,0x22, 0x3,0x4c,0x37, 0x1,0x70,0x61, 0x1,0x70,0x62, + 0x2,0x57,0x34, 0x1,0x70,0x6b, 0x1,0x70,0x68, 0x3,0x50,0x70, + 0x1,0x70,0x5f, 0x1,0x70,0x66, 0x2,0x57,0x36, 0x1,0x70,0x64, + 0x1,0x70,0x5e, 0x3,0x4c,0x32, 0x1,0x70,0x65, 0x3,0x50,0x77, + 0x2,0x57,0x33, 0x1,0x73,0x64, 0x1,0x70,0x60, 0x5,0x54,0x5e, + 0x1,0x70,0x67, 0x1,0x73,0x63, 0x2,0x57,0x32, 0x2,0x57,0x31, + 0x3,0x50,0x76, 0x1,0x70,0x69, 0x3,0x50,0x6f, 0x1,0x70,0x6a, + 0x3,0x50,0x79, 0x2,0x57,0x30, 0x2,0x57,0x2f, 0x1,0x73,0x65, + 0x2,0x57,0x39, 0x1,0x70,0x63, 0x2,0x57,0x37, 0x3,0x50,0x75, + 0x3,0x54,0x64, 0x1,0x73,0x66, 0x3,0x54,0x67, 0x1,0x73,0x6b, + 0x2,0x5c,0x75, 0x2,0x5c,0x77, 0x3,0x57,0x6b, 0x1,0x73,0x68, + 0x3,0x57,0x6d, 0x2,0x5c,0x78, 0x2,0x5c,0x74, 0x3,0x57,0x6c, + 0x2,0x5c,0x76, 0x1,0x73,0x69, 0x1,0x73,0x6c, 0x3,0x54,0x69, + 0x2,0x5c,0x73, 0x1,0x73,0x67, 0x1,0x73,0x6a, 0x1,0x76,0x45, + 0x2,0x57,0x38, 0x1,0x76,0x44, 0x7,0x3f,0x62, 0x3,0x57,0x6a, + 0x1,0x76,0x4a, 0x2,0x61,0x60, 0x3,0x57,0x70, 0x1,0x76,0x48, + 0x1,0x76,0x49, 0x2,0x61,0x63, 0x2,0x61,0x5f, 0x1,0x76,0x46, + 0x2,0x61,0x5d, 0x1,0x78,0x38, 0x2,0x61,0x61, 0x4,0x5b,0x36, + 0x2,0x61,0x62, 0x2,0x61,0x5e, 0x3,0x57,0x6e, 0x1,0x76,0x47, + 0x2,0x65,0x4d, 0x3,0x5a,0x3b, 0x2,0x65,0x50, 0x3,0x5a,0x3c, + 0x3,0x5a,0x3a, 0x2,0x65,0x51, 0x2,0x65,0x4f, 0x2,0x65,0x52, + 0x1,0x78,0x39, 0x2,0x65,0x4e, 0x3,0x5e,0x31, 0x2,0x68,0x7a, + 0x1,0x79,0x6f, 0x2,0x68,0x79, 0x2,0x68,0x78, 0x2,0x68,0x77, + 0x1,0x79,0x6e, 0x1,0x79,0x70, 0x3,0x65,0x23, 0x2,0x6b,0x5b, + 0x1,0x7a,0x6d, 0x1,0x7a,0x6c, 0x3,0x5f,0x4a, 0x3,0x5f,0x4b, + 0x2,0x6d,0x4f, 0x2,0x6d,0x4e, 0x2,0x6d,0x51, 0x1,0x7c,0x37, + 0x1,0x7b,0x61, 0x2,0x6f,0x2c, 0x2,0x6d,0x50, 0x3,0x5f,0x49, + 0x3,0x60,0x32, 0x2,0x6f,0x2b, 0x1,0x7c,0x39, 0x1,0x7c,0x38, + 0x1,0x7c,0x5f, 0x2,0x70,0x37, 0x2,0x70,0x7d, 0x1,0x45,0x45, + 0x6,0x23,0x6c, 0x3,0x2c,0x72, 0x2,0x3c,0x37, 0x2,0x57,0x3a, + 0x3,0x21,0x67, 0x3,0x21,0x68, 0x1,0x48,0x2d, 0x2,0x22,0x4d, + 0x1,0x4a,0x53, 0x1,0x4a,0x51, 0x4,0x24,0x3f, 0x1,0x4a,0x52, + 0x4,0x24,0x3e, 0x2,0x27,0x22, 0x1,0x4d,0x73, 0x1,0x51,0x49, + 0x3,0x2c,0x74, 0x2,0x2a,0x68, 0x3,0x2c,0x76, 0x2,0x2a,0x69, + 0x3,0x2c,0x73, 0x1,0x51,0x4a, 0x2,0x2f,0x50, 0x4,0x2d,0x43, + 0x1,0x55,0x66, 0x1,0x55,0x67, 0x2,0x2f,0x4f, 0x3,0x31,0x3d, + 0x4,0x2d,0x44, 0x3,0x36,0x37, 0x3,0x36,0x36, 0x1,0x5a,0x77, + 0x4,0x32,0x2b, 0x1,0x5a,0x73, 0x4,0x32,0x2f, 0x2,0x35,0x69, + 0x1,0x5a,0x7a, 0x1,0x5a,0x79, 0x1,0x5a,0x72, 0x1,0x5a,0x75, + 0x1,0x5a,0x78, 0x1,0x5a,0x74, 0x3,0x36,0x34, 0x2,0x3c,0x3b, + 0x1,0x5a,0x71, 0x1,0x5f,0x54, 0x3,0x3b,0x74, 0x3,0x3b,0x75, + 0x3,0x3b,0x76, 0x1,0x5f,0x56, 0x1,0x5f,0x57, 0x2,0x3c,0x3a, + 0x2,0x3c,0x3d, 0x1,0x5f,0x55, 0x2,0x3c,0x38, 0x2,0x3c,0x3c, + 0x2,0x3c,0x39, 0x3,0x41,0x4b, 0x1,0x64,0x39, 0x3,0x41,0x4e, + 0x4,0x3d,0x5d, 0x2,0x43,0x42, 0x3,0x41,0x4d, 0x3,0x47,0x30, + 0x1,0x68,0x7d, 0x2,0x4a,0x5b, 0x1,0x70,0x6c, 0x1,0x6d,0x2e, + 0x2,0x50,0x64, 0x1,0x6d,0x2f, 0x1,0x6d,0x30, 0x2,0x50,0x66, + 0x2,0x50,0x65, 0x2,0x50,0x67, 0x2,0x57,0x3c, 0x2,0x57,0x3b, + 0x2,0x5c,0x7a, 0x2,0x5c,0x79, 0x1,0x73,0x6d, 0x1,0x73,0x6e, + 0x2,0x65,0x53, 0x3,0x5c,0x41, 0x1,0x45,0x46, 0x3,0x25,0x58, + 0x3,0x29,0x39, 0x4,0x2d,0x47, 0x3,0x31,0x40, 0x2,0x3c,0x3e, + 0x3,0x36,0x38, 0x3,0x36,0x39, 0x1,0x5f,0x59, 0x1,0x5f,0x58, + 0x2,0x43,0x43, 0x2,0x61,0x64, 0x1,0x7a,0x6e, 0x2,0x6f,0x2d, + 0x1,0x45,0x47, 0x4,0x24,0x41, 0x1,0x55,0x68, 0x3,0x31,0x42, + 0x1,0x5a,0x7c, 0x1,0x5a,0x7b, 0x2,0x3c,0x3f, 0x2,0x3c,0x40, + 0x1,0x64,0x3a, 0x2,0x4a,0x5c, 0x1,0x68,0x7e, 0x2,0x57,0x3d, + 0x4,0x56,0x3f, 0x1,0x45,0x48, 0x1,0x46,0x58, 0x3,0x29,0x3b, + 0x1,0x4d,0x74, 0x2,0x27,0x23, 0x2,0x2a,0x6a, 0x1,0x51,0x4b, + 0x1,0x5a,0x7d, 0x3,0x36,0x3a, 0x2,0x3c,0x41, 0x1,0x5f,0x5a, + 0x1,0x64,0x3b, 0x4,0x3d,0x63, 0x2,0x50,0x68, 0x2,0x50,0x69, + 0x4,0x50,0x4e, 0x3,0x54,0x6b, 0x2,0x5c,0x7b, 0x1,0x76,0x4b, + 0x2,0x70,0x7e, 0x1,0x45,0x49, 0x3,0x29,0x3c, 0x2,0x27,0x24, + 0x1,0x4d,0x75, 0x1,0x51,0x4c, 0x3,0x2c,0x77, 0x2,0x2a,0x6b, + 0x1,0x55,0x69, 0x2,0x2f,0x54, 0x2,0x2f,0x52, 0x2,0x2f,0x53, + 0x1,0x55,0x6a, 0x2,0x2f,0x51, 0x3,0x36,0x3c, 0x4,0x32,0x34, + 0x3,0x36,0x3f, 0x3,0x36,0x3d, 0x1,0x5b,0x21, 0x1,0x5b,0x22, + 0x2,0x35,0x6a, 0x1,0x5b,0x23, 0x1,0x5a,0x7e, 0x2,0x3c,0x42, + 0x3,0x3b,0x79, 0x2,0x3c,0x43, 0x2,0x43,0x44, 0x4,0x3d,0x64, + 0x1,0x69,0x22, 0x1,0x69,0x21, 0x4,0x50,0x4f, 0xf,0x54,0x64, + 0x2,0x5c,0x7c, 0x2,0x61,0x65, 0x3,0x5a,0x3f, 0x2,0x65,0x55, + 0x2,0x65,0x54, 0x2,0x68,0x7b, 0x3,0x21,0x69, 0x2,0x21,0x3e, + 0x1,0x51,0x4d, 0x3,0x36,0x41, 0x3,0x41,0x50, 0x1,0x45,0x4a, + 0x1,0x46,0x59, 0x3,0x22,0x51, 0x1,0x48,0x2f, 0x1,0x48,0x2e, + 0x3,0x23,0x73, 0x3,0x23,0x72, 0x1,0x48,0x30, 0x1,0x48,0x31, + 0x2,0x22,0x4f, 0x2,0x22,0x4e, 0x2,0x24,0x39, 0x1,0x4a,0x54, + 0x2,0x24,0x3c, 0x2,0x24,0x3b, 0x2,0x24,0x3a, 0x2,0x24,0x3d, + 0x3,0x26,0x3d, 0x4,0x26,0x62, 0x1,0x4d,0x76, 0x2,0x27,0x2a, + 0x2,0x27,0x26, 0x2,0x27,0x2f, 0x3,0x29,0x43, 0x3,0x29,0x3e, + 0x1,0x4d,0x7d, 0x3,0x29,0x42, 0x1,0x4d,0x7b, 0x2,0x27,0x2b, + 0x2,0x27,0x27, 0x2,0x27,0x2e, 0x1,0x4d,0x7a, 0x1,0x4e,0x23, + 0x2,0x27,0x29, 0x2,0x27,0x25, 0x1,0x4e,0x22, 0x2,0x27,0x2c, + 0x1,0x4d,0x79, 0x2,0x27,0x2d, 0x1,0x4d,0x7c, 0x1,0x4d,0x7e, + 0x2,0x27,0x31, 0x2,0x27,0x30, 0x2,0x27,0x28, 0x1,0x4d,0x78, + 0x1,0x4d,0x77, 0x1,0x4e,0x21, 0x4,0x26,0x61, 0x3,0x29,0x40, + 0x3,0x29,0x41, 0xf,0x27,0x3e, 0x3,0x2c,0x7e, 0x3,0x2c,0x7a, + 0x2,0x2a,0x70, 0x2,0x2a,0x76, 0x3,0x2d,0x23, 0x1,0x51,0x53, + 0x1,0x51,0x50, 0x2,0x2a,0x6d, 0x2,0x2a,0x72, 0x3,0x2c,0x7c, + 0x1,0x51,0x56, 0x1,0x51,0x4e, 0x2,0x2a,0x71, 0x1,0x51,0x51, + 0x1,0x51,0x54, 0x3,0x2c,0x79, 0x4,0x29,0x67, 0x2,0x2a,0x74, + 0x3,0x2c,0x7d, 0x1,0x51,0x4f, 0x2,0x2a,0x79, 0x1,0x51,0x52, + 0x3,0x2d,0x21, 0x1,0x51,0x55, 0x2,0x2a,0x6e, 0x2,0x2a,0x73, + 0x2,0x2a,0x77, 0x2,0x2a,0x6f, 0x2,0x2a,0x6c, 0x3,0x2d,0x24, + 0x3,0x2d,0x25, 0x2,0x2a,0x78, 0x2,0x2a,0x75, 0x3,0x2d,0x22, + 0x3,0x2c,0x37, 0x3,0x31,0x46, 0x1,0x55,0x72, 0x1,0x55,0x6b, + 0x1,0x55,0x6e, 0x3,0x31,0x4c, 0x1,0x55,0x71, 0x3,0x31,0x44, + 0x2,0x2f,0x57, 0x3,0x31,0x49, 0x1,0x55,0x6c, 0x2,0x2f,0x55, + 0x3,0x31,0x48, 0x1,0x55,0x70, 0x3,0x31,0x4d, 0x3,0x31,0x45, + 0x1,0x55,0x6d, 0x3,0x31,0x43, 0x2,0x2f,0x58, 0x1,0x55,0x6f, + 0x3,0x36,0x42, 0x4,0x32,0x39, 0x2,0x35,0x6e, 0x1,0x5b,0x25, + 0x2,0x35,0x6d, 0x2,0x35,0x6f, 0x1,0x5b,0x24, 0x1,0x5b,0x29, + 0x2,0x2f,0x56, 0x3,0x31,0x4b, 0x2,0x35,0x6c, 0x2,0x35,0x70, + 0x3,0x36,0x44, 0x1,0x5b,0x26, 0x2,0x35,0x6b, 0x1,0x5b,0x28, + 0x3,0x36,0x45, 0x1,0x5b,0x27, 0x3,0x3c,0x26, 0x2,0x3c,0x4a, + 0x3,0x3b,0x7d, 0x2,0x3c,0x45, 0x3,0x3c,0x25, 0x1,0x5f,0x5b, + 0x1,0x5f,0x5f, 0x1,0x5f,0x5c, 0x2,0x3c,0x48, 0x2,0x3c,0x4b, + 0x3,0x3c,0x23, 0x1,0x5f,0x5d, 0x4,0x38,0x24, 0x1,0x5f,0x5e, + 0x1,0x5f,0x63, 0x2,0x43,0x4d, 0x2,0x3c,0x49, 0x1,0x5f,0x61, + 0x2,0x3c,0x46, 0x2,0x3c,0x44, 0x3,0x3b,0x7c, 0x1,0x5f,0x62, + 0x3,0x3b,0x7e, 0x2,0x3c,0x47, 0x3,0x3c,0x24, 0x1,0x64,0x41, + 0x4,0x3d,0x69, 0x2,0x43,0x45, 0x1,0x64,0x3e, 0x1,0x64,0x3f, + 0x1,0x64,0x3d, 0x2,0x43,0x4a, 0x2,0x43,0x49, 0x2,0x43,0x46, + 0x1,0x64,0x43, 0x3,0x41,0x5b, 0x3,0x41,0x56, 0x2,0x43,0x48, + 0x1,0x5f,0x60, 0x3,0x41,0x59, 0x3,0x41,0x51, 0x2,0x43,0x4c, + 0x2,0x43,0x47, 0x1,0x64,0x40, 0x1,0x64,0x3c, 0x1,0x64,0x42, + 0x2,0x43,0x4b, 0x3,0x47,0x34, 0x4,0x43,0x6b, 0x3,0x47,0x35, + 0x1,0x69,0x25, 0x4,0x43,0x6f, 0x2,0x4a,0x5f, 0x2,0x4a,0x5e, + 0x2,0x4a,0x5d, 0x1,0x69,0x23, 0x4,0x43,0x6d, 0x3,0x47,0x39, + 0x3,0x47,0x33, 0x3,0x47,0x37, 0x1,0x69,0x24, 0x2,0x50,0x6c, + 0x2,0x50,0x6f, 0x1,0x6d,0x32, 0x3,0x4c,0x44, 0x3,0x4c,0x46, + 0x1,0x6d,0x31, 0x2,0x50,0x70, 0x2,0x50,0x6b, 0x1,0x6d,0x34, + 0x2,0x50,0x6d, 0x3,0x4c,0x41, 0x1,0x6d,0x33, 0x2,0x50,0x6a, + 0x3,0x4c,0x40, 0x2,0x50,0x6e, 0x1,0x70,0x72, 0x1,0x70,0x6f, + 0x2,0x57,0x46, 0x2,0x57,0x45, 0x3,0x4c,0x43, 0x2,0x57,0x44, + 0x2,0x57,0x3f, 0x3,0x50,0x7d, 0x2,0x57,0x40, 0x3,0x51,0x23, + 0x4,0x50,0x50, 0x3,0x50,0x7a, 0x1,0x70,0x70, 0x3,0x50,0x7e, + 0x1,0x70,0x6d, 0x1,0x70,0x71, 0x2,0x57,0x3e, 0x1,0x70,0x6e, + 0x2,0x57,0x41, 0x2,0x57,0x42, 0x2,0x57,0x47, 0x3,0x51,0x22, + 0x3,0x54,0x71, 0x2,0x57,0x43, 0x3,0x54,0x6f, 0x3,0x54,0x70, + 0x2,0x5c,0x7d, 0x4,0x56,0x41, 0x3,0x54,0x6c, 0x3,0x54,0x6d, + 0x1,0x73,0x70, 0x3,0x54,0x72, 0x2,0x61,0x68, 0x1,0x73,0x6f, + 0x2,0x61,0x66, 0x2,0x61,0x67, 0x1,0x76,0x4c, 0x1,0x78,0x3b, + 0x2,0x65,0x56, 0x3,0x5a,0x43, 0x1,0x78,0x3a, 0x3,0x5a,0x42, + 0x3,0x65,0x26, 0x2,0x68,0x7d, 0x2,0x68,0x7e, 0x3,0x5c,0x42, + 0x1,0x79,0x71, 0x3,0x5c,0x43, 0x2,0x68,0x7c, 0x1,0x7a,0x6f, + 0x4,0x6a,0x4c, 0x2,0x6f,0x2e, 0x1,0x7c,0x3a, 0x2,0x70,0x38, + 0x2,0x70,0x39, 0x3,0x61,0x3f, 0x1,0x45,0x4b, 0x4,0x21,0x7c, + 0x1,0x48,0x32, 0x1,0x48,0x33, 0x1,0x4a,0x55, 0x3,0x26,0x41, + 0x2,0x27,0x32, 0x1,0x51,0x57, 0x1,0x55,0x73, 0x1,0x5b,0x2a, + 0xf,0x32,0x73, 0x1,0x59,0x37, 0x1,0x5f,0x64, 0x1,0x5f,0x65, + 0x1,0x5e,0x32, 0x2,0x3c,0x4c, 0x3,0x65,0x27, 0x1,0x64,0x44, + 0x2,0x4a,0x61, 0x2,0x4a,0x60, 0x3,0x51,0x24, 0x7,0x53,0x47, + 0x1,0x45,0x4c, 0x1,0x48,0x34, 0x2,0x27,0x33, 0x1,0x4e,0x25, + 0x3,0x29,0x45, 0x1,0x4e,0x24, 0x3,0x2d,0x27, 0x2,0x2a,0x7a, + 0x2,0x2a,0x7b, 0x3,0x66,0x32, 0x2,0x2f,0x59, 0x2,0x2f,0x5a, + 0x1,0x55,0x74, 0x1,0x55,0x75, 0x3,0x36,0x48, 0x1,0x55,0x76, + 0x2,0x35,0x71, 0x3,0x36,0x47, 0x3,0x36,0x46, 0x1,0x5b,0x2c, + 0x4,0x38,0x29, 0x1,0x5f,0x67, 0x3,0x3c,0x29, 0x1,0x5f,0x66, + 0x2,0x43,0x4e, 0x2,0x46,0x41, 0x2,0x4a,0x62, 0x2,0x57,0x48, + 0x3,0x51,0x26, 0x3,0x66,0x33, 0x1,0x76,0x4d, 0x1,0x79,0x72, + 0x1,0x45,0x4d, 0x1,0x46,0x5c, 0x1,0x46,0x5d, 0x1,0x46,0x5b, + 0x1,0x46,0x5e, 0x1,0x46,0x5a, 0x3,0x22,0x52, 0x1,0x48,0x37, + 0x3,0x23,0x77, 0x2,0x22,0x57, 0x1,0x48,0x36, 0x1,0x48,0x38, + 0x3,0x23,0x78, 0x3,0x23,0x75, 0x2,0x22,0x52, 0x2,0x22,0x51, + 0x2,0x22,0x54, 0x2,0x22,0x53, 0x2,0x22,0x56, 0x1,0x48,0x35, + 0x2,0x22,0x50, 0x2,0x22,0x55, 0xf,0x22,0x58, 0xf,0x22,0x57, + 0x3,0x26,0x48, 0x2,0x24,0x3e, 0x1,0x4a,0x5f, 0x2,0x24,0x3f, + 0x2,0x24,0x43, 0x1,0x4a,0x5e, 0x3,0x26,0x49, 0x2,0x24,0x47, + 0x2,0x24,0x42, 0x2,0x24,0x45, 0x1,0x4a,0x57, 0x1,0x4a,0x58, + 0x1,0x4a,0x59, 0x1,0x4a,0x5a, 0x3,0x26,0x45, 0x1,0x4a,0x61, + 0x3,0x26,0x44, 0x2,0x24,0x41, 0x1,0x4a,0x5c, 0x1,0x4a,0x62, + 0x3,0x26,0x47, 0x2,0x24,0x40, 0x2,0x24,0x46, 0x3,0x26,0x42, + 0x1,0x4a,0x5b, 0x2,0x24,0x44, 0x1,0x4a,0x5d, 0x1,0x4a,0x56, + 0x1,0x4a,0x60, 0x3,0x26,0x4a, 0xf,0x24,0x22, 0x4,0x24,0x46, + 0xf,0x24,0x53, 0x1,0x4e,0x3a, 0x3,0x29,0x47, 0x2,0x27,0x35, + 0x1,0x4e,0x26, 0x4,0x26,0x69, 0x1,0x4e,0x30, 0x1,0x4e,0x31, + 0x1,0x4e,0x29, 0x1,0x4e,0x3b, 0x1,0x4e,0x2b, 0x2,0x27,0x3d, + 0x1,0x4e,0x36, 0x2,0x27,0x38, 0x1,0x4e,0x2c, 0x2,0x27,0x47, + 0x2,0x27,0x48, 0x2,0x27,0x40, 0x2,0x27,0x39, 0x1,0x4e,0x39, + 0x2,0x27,0x45, 0x1,0x4e,0x34, 0x1,0x4e,0x32, 0x3,0x29,0x52, + 0x2,0x27,0x46, 0x3,0x29,0x49, 0x2,0x27,0x44, 0x2,0x27,0x3c, + 0x2,0x27,0x34, 0x2,0x27,0x3b, 0x1,0x4e,0x2d, 0x4,0x26,0x65, + 0x1,0x4e,0x33, 0x3,0x29,0x4a, 0x1,0x4e,0x27, 0x2,0x27,0x3f, + 0x2,0x27,0x3e, 0x2,0x27,0x36, 0x3,0x29,0x4f, 0x1,0x4e,0x35, + 0x2,0x27,0x42, 0x2,0x27,0x37, 0x1,0x4e,0x38, 0x2,0x27,0x49, + 0x1,0x4e,0x28, 0x3,0x29,0x48, 0x1,0x4e,0x2f, 0x2,0x27,0x3a, + 0x2,0x27,0x43, 0x1,0x4e,0x37, 0x4,0x26,0x67, 0x1,0x4e,0x2a, + 0x1,0x4e,0x2e, 0x4,0x26,0x6a, 0x2,0x27,0x41, 0xf,0x27,0x4e, + 0x3,0x29,0x4e, 0x3,0x29,0x4c, 0x3,0x65,0x28, 0xf,0x27,0x50, + 0x3,0x65,0x29, 0x2,0x2b,0x3d, 0x1,0x51,0x5f, 0x1,0x51,0x6c, + 0x3,0x2d,0x36, 0x2,0x2b,0x38, 0x2,0x2b,0x2e, 0x1,0x51,0x65, + 0x2,0x2b,0x2c, 0x1,0x51,0x5e, 0x2,0x2b,0x27, 0x1,0x51,0x68, + 0x2,0x2b,0x34, 0x2,0x2b,0x21, 0x2,0x2b,0x23, 0x3,0x2d,0x2e, + 0x4,0x2d,0x59, 0x4,0x29,0x6e, 0x3,0x2d,0x30, 0x2,0x2b,0x26, + 0x2,0x2a,0x7c, 0x2,0x2b,0x33, 0x2,0x2b,0x43, 0x1,0x51,0x63, + 0x2,0x2b,0x28, 0x2,0x2b,0x3a, 0x3,0x2d,0x2d, 0x2,0x2a,0x7e, + 0x2,0x2b,0x41, 0x2,0x2b,0x42, 0x2,0x2b,0x45, 0x2,0x2b,0x3c, + 0x2,0x2b,0x2d, 0x2,0x2b,0x35, 0x1,0x51,0x69, 0x1,0x51,0x5c, + 0x1,0x51,0x64, 0x1,0x51,0x70, 0x1,0x51,0x59, 0x1,0x51,0x5b, + 0x3,0x2d,0x31, 0x3,0x2d,0x2b, 0x3,0x2d,0x3a, 0x2,0x2b,0x25, + 0x1,0x51,0x6d, 0x1,0x51,0x66, 0x2,0x2b,0x3f, 0x2,0x2b,0x22, + 0x1,0x51,0x6f, 0x1,0x51,0x6a, 0x2,0x2b,0x2b, 0x4,0x29,0x6d, + 0x4,0x2d,0x4e, 0x1,0x51,0x6e, 0x2,0x2b,0x32, 0x2,0x2b,0x2a, + 0x1,0x51,0x67, 0x2,0x2b,0x3e, 0x2,0x2b,0x36, 0x3,0x2d,0x2a, + 0x1,0x51,0x61, 0x2,0x2b,0x44, 0x2,0x2b,0x29, 0x1,0x51,0x5d, + 0x2,0x2b,0x3b, 0x2,0x2b,0x31, 0x1,0x51,0x62, 0x2,0x2b,0x37, + 0x1,0x51,0x5a, 0x2,0x2a,0x7d, 0x1,0x51,0x6b, 0x1,0x56,0x27, + 0x1,0x51,0x60, 0x2,0x2b,0x30, 0x2,0x2b,0x2f, 0x2,0x2b,0x24, + 0x3,0x29,0x51, 0x2,0x2b,0x40, 0x3,0x2d,0x34, 0x2,0x2b,0x39, + 0x3,0x2d,0x32, 0x1,0x51,0x58, 0x3,0x2d,0x39, 0x3,0x2d,0x37, + 0x6,0x31,0x72, 0x3,0x2d,0x38, 0x3,0x65,0x2b, 0x3,0x65,0x2a, + 0xf,0x2b,0x48, 0x2,0x2f,0x6e, 0x1,0x56,0x2e, 0x2,0x2f,0x6f, + 0x3,0x31,0x5d, 0x2,0x2f,0x63, 0x1,0x56,0x23, 0x1,0x56,0x2f, + 0x3,0x31,0x57, 0x2,0x2f,0x5c, 0x3,0x31,0x53, 0x2,0x2f,0x65, + 0x2,0x2f,0x6d, 0x3,0x31,0x5b, 0x2,0x2f,0x5b, 0x2,0x2f,0x76, + 0x1,0x55,0x77, 0x3,0x31,0x5e, 0x3,0x31,0x64, 0x3,0x31,0x50, + 0x2,0x2f,0x75, 0x2,0x2f,0x70, 0x3,0x31,0x5f, 0x2,0x2f,0x71, + 0x1,0x56,0x21, 0x1,0x56,0x2c, 0x2,0x2f,0x67, 0x3,0x31,0x56, + 0x2,0x2f,0x68, 0x2,0x2f,0x72, 0x2,0x2f,0x69, 0x3,0x31,0x63, + 0x2,0x2f,0x64, 0x2,0x2f,0x5e, 0x2,0x2f,0x5f, 0x2,0x2f,0x6c, + 0x2,0x2f,0x66, 0x3,0x31,0x54, 0x3,0x31,0x4f, 0x1,0x55,0x78, + 0x1,0x55,0x7c, 0x2,0x2f,0x74, 0x2,0x2f,0x60, 0x1,0x56,0x2a, + 0x1,0x56,0x26, 0x3,0x31,0x5a, 0x4,0x2d,0x55, 0x1,0x56,0x29, + 0x1,0x56,0x30, 0x1,0x55,0x7d, 0x1,0x56,0x2b, 0x2,0x2f,0x6b, + 0x1,0x56,0x2d, 0x1,0x55,0x7a, 0x3,0x31,0x59, 0x1,0x55,0x79, + 0x2,0x2f,0x5d, 0x4,0x2d,0x4f, 0x2,0x2f,0x61, 0x1,0x56,0x24, + 0x2,0x2f,0x73, 0x2,0x2f,0x6a, 0x2,0x2f,0x62, 0x1,0x56,0x28, + 0x1,0x56,0x25, 0x3,0x2d,0x2f, 0x1,0x55,0x7b, 0x1,0x55,0x7e, + 0x3,0x31,0x62, 0x3,0x31,0x58, 0xf,0x30,0x24, 0x3,0x31,0x61, + 0x3,0x31,0x60, 0x3,0x65,0x2d, 0x3,0x65,0x2c, 0x2,0x36,0x28, + 0x3,0x36,0x55, 0x2,0x35,0x76, 0x2,0x35,0x77, 0x2,0x35,0x7b, + 0x3,0x36,0x60, 0x2,0x36,0x2c, 0x2,0x36,0x29, 0x3,0x36,0x4e, + 0x2,0x36,0x22, 0x2,0x36,0x21, 0x1,0x5b,0x33, 0x2,0x36,0x25, + 0x2,0x36,0x34, 0x2,0x35,0x72, 0x3,0x36,0x5b, 0x2,0x36,0x35, + 0x2,0x36,0x27, 0x2,0x36,0x39, 0x2,0x36,0x2d, 0x1,0x5b,0x32, + 0x2,0x36,0x2b, 0x1,0x5b,0x2d, 0x1,0x5b,0x42, 0x1,0x5b,0x38, + 0x3,0x36,0x57, 0x1,0x5b,0x3c, 0x1,0x5b,0x3b, 0x2,0x35,0x73, + 0x4,0x32,0x3f, 0x2,0x36,0x32, 0x2,0x36,0x38, 0x2,0x36,0x30, + 0x2,0x36,0x37, 0x3,0x36,0x51, 0x2,0x36,0x24, 0x2,0x35,0x74, + 0x2,0x36,0x36, 0x2,0x36,0x26, 0x1,0x5b,0x30, 0x1,0x5b,0x3d, + 0x3,0x36,0x5a, 0x2,0x36,0x2f, 0x1,0x5b,0x36, 0x3,0x36,0x4d, + 0x3,0x36,0x5c, 0x3,0x36,0x50, 0x2,0x36,0x2e, 0x2,0x35,0x75, + 0x1,0x5b,0x3e, 0x3,0x36,0x4b, 0x1,0x5b,0x40, 0x2,0x36,0x31, + 0x1,0x5b,0x41, 0x1,0x5b,0x2f, 0x2,0x35,0x7c, 0x2,0x36,0x33, + 0x3,0x36,0x54, 0x3,0x34,0x78, 0x1,0x5b,0x35, 0x1,0x5b,0x3f, + 0x2,0x35,0x7e, 0x2,0x36,0x2a, 0x2,0x35,0x79, 0x2,0x35,0x7d, + 0x1,0x5b,0x3a, 0x2,0x35,0x78, 0x1,0x5b,0x2e, 0x1,0x5b,0x37, + 0x1,0x5b,0x34, 0x2,0x36,0x23, 0x1,0x56,0x22, 0x2,0x3c,0x63, + 0x1,0x5b,0x31, 0x3,0x36,0x4c, 0x3,0x36,0x52, 0x3,0x36,0x5e, + 0x3,0x36,0x5f, 0xf,0x35,0x57, 0x3,0x36,0x56, 0x3,0x3c,0x45, + 0x1,0x5b,0x39, 0x3,0x3c,0x41, 0x2,0x3c,0x66, 0x2,0x3c,0x7c, + 0x2,0x3c,0x71, 0x1,0x5f,0x7b, 0x3,0x3c,0x38, 0x1,0x5f,0x76, + 0x2,0x3c,0x60, 0x1,0x5f,0x77, 0x2,0x3c,0x70, 0x3,0x3c,0x3e, + 0x2,0x3c,0x69, 0x2,0x3c,0x76, 0x1,0x5f,0x73, 0x2,0x3c,0x4e, + 0x2,0x3c,0x78, 0x1,0x5f,0x69, 0x2,0x3c,0x56, 0x1,0x5f,0x6c, + 0x1,0x5f,0x6b, 0x4,0x38,0x32, 0x1,0x5f,0x7c, 0x3,0x36,0x53, + 0x2,0x3c,0x50, 0x2,0x3c,0x72, 0x2,0x3c,0x73, 0x1,0x5f,0x6e, + 0x1,0x5f,0x6a, 0x2,0x3c,0x5e, 0x3,0x3c,0x3d, 0x1,0x5f,0x75, + 0x2,0x3c,0x59, 0x3,0x3c,0x32, 0x2,0x3c,0x74, 0x1,0x5f,0x71, + 0x2,0x3c,0x6c, 0x2,0x3c,0x79, 0x2,0x3c,0x53, 0x2,0x3c,0x58, + 0x2,0x3c,0x52, 0x3,0x3c,0x2a, 0x1,0x5f,0x70, 0x2,0x3c,0x65, + 0x2,0x43,0x64, 0x2,0x3c,0x54, 0x1,0x5f,0x74, 0x2,0x3c,0x5d, + 0x2,0x3c,0x75, 0x1,0x5f,0x6f, 0x2,0x3c,0x5a, 0x2,0x3c,0x57, + 0x2,0x3c,0x68, 0x1,0x5f,0x72, 0x1,0x5f,0x68, 0x1,0x5f,0x7e, + 0x2,0x3c,0x6b, 0x2,0x3c,0x6a, 0x3,0x3c,0x31, 0x3,0x3c,0x42, + 0x3,0x3c,0x39, 0x3,0x3c,0x3b, 0x3,0x3c,0x34, 0x3,0x3c,0x2f, + 0x2,0x3c,0x4f, 0x1,0x5f,0x6d, 0x2,0x3c,0x77, 0x2,0x3c,0x5f, + 0x2,0x3c,0x61, 0x3,0x3c,0x37, 0x2,0x3c,0x6e, 0x2,0x3c,0x6d, + 0x2,0x3c,0x4d, 0x1,0x5f,0x78, 0x1,0x5f,0x7a, 0x2,0x3c,0x55, + 0x2,0x3c,0x5c, 0x2,0x3c,0x64, 0x1,0x5f,0x79, 0x2,0x3c,0x5b, + 0x2,0x3c,0x67, 0x2,0x3c,0x7a, 0xf,0x3b,0x70, 0x2,0x3c,0x6f, + 0x3,0x3c,0x3c, 0xf,0x3c,0x21, 0x3,0x3c,0x44, 0x3,0x3c,0x33, + 0x2,0x3c,0x7b, 0xf,0x3c,0x29, 0x3,0x65,0x2f, 0x2,0x3c,0x51, + 0xf,0x3b,0x6e, 0x3,0x65,0x2e, 0x3,0x3c,0x40, 0x2,0x43,0x78, + 0x1,0x64,0x4c, 0x3,0x41,0x65, 0x2,0x43,0x76, 0x2,0x43,0x61, + 0x2,0x43,0x66, 0x2,0x43,0x5f, 0x3,0x41,0x77, 0x2,0x43,0x72, + 0x2,0x43,0x51, 0x2,0x43,0x58, 0x4,0x3d,0x71, 0x2,0x43,0x70, + 0x2,0x43,0x7a, 0x2,0x43,0x62, 0x3,0x41,0x68, 0x2,0x43,0x55, + 0x2,0x43,0x68, 0x2,0x43,0x6d, 0x2,0x43,0x59, 0x3,0x41,0x6b, + 0x2,0x43,0x6a, 0x2,0x43,0x56, 0x3,0x41,0x5d, 0x3,0x41,0x75, + 0x2,0x43,0x5d, 0x2,0x43,0x5e, 0x1,0x64,0x4e, 0x2,0x43,0x71, + 0x2,0x43,0x6f, 0x3,0x41,0x73, 0x2,0x43,0x52, 0x2,0x43,0x74, + 0x3,0x41,0x74, 0x2,0x43,0x75, 0x2,0x43,0x77, 0x1,0x64,0x52, + 0x1,0x64,0x4a, 0x3,0x41,0x6f, 0x2,0x35,0x7a, 0x2,0x43,0x5a, + 0x2,0x43,0x6c, 0x2,0x43,0x5b, 0x1,0x64,0x47, 0x1,0x64,0x57, + 0x2,0x43,0x73, 0x1,0x64,0x55, 0x1,0x64,0x51, 0x2,0x43,0x50, + 0x1,0x64,0x49, 0x3,0x41,0x79, 0x2,0x43,0x53, 0x1,0x64,0x56, + 0x3,0x41,0x78, 0x2,0x43,0x63, 0x2,0x43,0x4f, 0x3,0x41,0x76, + 0x1,0x64,0x4f, 0x2,0x43,0x67, 0x2,0x43,0x57, 0x1,0x64,0x50, + 0x2,0x43,0x60, 0x1,0x64,0x46, 0x1,0x5f,0x7d, 0x2,0x43,0x69, + 0x2,0x3c,0x62, 0x2,0x43,0x54, 0x4,0x3d,0x6c, 0x3,0x41,0x6d, + 0x2,0x43,0x6e, 0x1,0x64,0x4b, 0x2,0x43,0x6b, 0x1,0x64,0x48, + 0x2,0x43,0x65, 0x1,0x64,0x53, 0x2,0x43,0x5c, 0x2,0x43,0x79, + 0x3,0x41,0x6a, 0x3,0x41,0x7b, 0xf,0x42,0x49, 0xf,0x42,0x47, + 0x1,0x64,0x4d, 0x2,0x45,0x2c, 0x3,0x41,0x72, 0x1,0x64,0x54, + 0xf,0x42,0x28, 0xf,0x42,0x3c, 0x2,0x4a,0x70, 0x2,0x4a,0x6e, + 0x3,0x47,0x3a, 0x2,0x4b,0x26, 0x2,0x4a,0x6c, 0x3,0x47,0x3d, + 0x2,0x4a,0x7e, 0x1,0x64,0x45, 0x1,0x69,0x28, 0x2,0x4a,0x68, + 0x2,0x4b,0x25, 0x3,0x47,0x51, 0x2,0x4a,0x6d, 0x2,0x4a,0x7b, + 0x1,0x69,0x2d, 0x1,0x69,0x26, 0x3,0x47,0x4e, 0x2,0x4b,0x23, + 0x3,0x47,0x46, 0x2,0x4a,0x66, 0x2,0x4b,0x22, 0x3,0x47,0x47, + 0x1,0x69,0x38, 0x2,0x4a,0x77, 0x2,0x4b,0x29, 0x1,0x69,0x36, + 0x2,0x4a,0x6f, 0x1,0x69,0x27, 0x2,0x4a,0x71, 0x2,0x4b,0x21, + 0x1,0x69,0x30, 0x2,0x4a,0x6a, 0x1,0x69,0x34, 0x1,0x69,0x2a, + 0x2,0x4a,0x73, 0x2,0x4a,0x69, 0x2,0x4a,0x63, 0x3,0x47,0x3e, + 0x2,0x4a,0x7d, 0x1,0x69,0x31, 0x2,0x4b,0x28, 0x2,0x4a,0x64, + 0x1,0x69,0x2e, 0x4,0x43,0x77, 0x2,0x4a,0x79, 0x4,0x43,0x79, + 0x1,0x69,0x2f, 0x2,0x4a,0x6b, 0x2,0x4a,0x76, 0x2,0x4a,0x72, + 0x2,0x4a,0x74, 0x3,0x47,0x43, 0x1,0x69,0x29, 0x2,0x4b,0x27, + 0x1,0x69,0x37, 0x2,0x4a,0x75, 0x3,0x47,0x3b, 0x2,0x4b,0x2a, + 0x4,0x44,0x27, 0x3,0x47,0x3c, 0x2,0x4a,0x65, 0x2,0x4a,0x7a, + 0x1,0x69,0x2c, 0x1,0x69,0x35, 0x1,0x69,0x33, 0x2,0x4a,0x67, + 0x2,0x4a,0x7c, 0x1,0x69,0x32, 0x3,0x47,0x45, 0x3,0x47,0x48, + 0x1,0x69,0x2b, 0x2,0x4a,0x78, 0x3,0x47,0x4d, 0x3,0x47,0x44, + 0x4,0x44,0x28, 0x3,0x4c,0x54, 0x2,0x4b,0x24, 0x3,0x47,0x4c, + 0x2,0x50,0x7c, 0x3,0x47,0x42, 0x2,0x50,0x78, 0x2,0x50,0x74, + 0x2,0x51,0x2a, 0x2,0x51,0x27, 0x1,0x6d,0x37, 0x3,0x4c,0x64, + 0x3,0x4c,0x60, 0x2,0x51,0x2e, 0x2,0x50,0x7b, 0x1,0x6d,0x42, + 0x2,0x51,0x24, 0x3,0x4c,0x4f, 0x3,0x4c,0x51, 0x2,0x50,0x77, + 0x2,0x51,0x23, 0x1,0x6d,0x3f, 0x2,0x51,0x37, 0x4,0x4a,0x3d, + 0x2,0x51,0x34, 0x2,0x51,0x26, 0x2,0x50,0x75, 0x3,0x4c,0x5f, + 0x3,0x4c,0x57, 0x2,0x51,0x2b, 0x2,0x51,0x2d, 0x1,0x6d,0x3b, + 0x2,0x51,0x21, 0x2,0x50,0x7a, 0x2,0x50,0x71, 0x1,0x6d,0x38, + 0x1,0x6d,0x40, 0x4,0x4a,0x48, 0x2,0x51,0x30, 0x1,0x6d,0x41, + 0x2,0x50,0x72, 0x2,0x51,0x36, 0x2,0x51,0x29, 0x2,0x51,0x2f, + 0x1,0x6d,0x3e, 0x3,0x4c,0x4d, 0x3,0x4c,0x50, 0x2,0x51,0x2c, + 0x3,0x4c,0x47, 0x2,0x51,0x33, 0x3,0x4c,0x5b, 0x1,0x6d,0x43, + 0x3,0x4c,0x56, 0x1,0x6d,0x3d, 0x2,0x51,0x25, 0x2,0x50,0x76, + 0x2,0x51,0x38, 0x2,0x50,0x73, 0x2,0x51,0x31, 0x1,0x6d,0x3a, + 0x3,0x4c,0x4a, 0x2,0x50,0x7d, 0x3,0x4c,0x49, 0x2,0x50,0x7e, + 0x1,0x6d,0x39, 0x1,0x6d,0x36, 0x2,0x50,0x79, 0x1,0x6d,0x3c, + 0x3,0x4c,0x52, 0x1,0x6d,0x35, 0x3,0x4c,0x62, 0x2,0x51,0x32, + 0x2,0x51,0x35, 0x2,0x51,0x22, 0x2,0x57,0x55, 0x3,0x4c,0x5e, + 0x3,0x4c,0x59, 0xf,0x4f,0x42, 0x3,0x4c,0x61, 0x3,0x65,0x30, + 0x2,0x57,0x4d, 0x3,0x51,0x2c, 0x2,0x57,0x49, 0x1,0x71,0x21, + 0x3,0x51,0x3c, 0x3,0x51,0x38, 0x1,0x70,0x74, 0x1,0x70,0x79, + 0x1,0x70,0x75, 0x2,0x57,0x57, 0x2,0x57,0x62, 0x1,0x70,0x73, + 0x2,0x57,0x4f, 0x2,0x57,0x58, 0x2,0x51,0x28, 0x2,0x57,0x59, + 0x3,0x51,0x28, 0x3,0x51,0x2b, 0x1,0x70,0x7a, 0x3,0x51,0x40, + 0x2,0x57,0x68, 0x1,0x70,0x7e, 0x1,0x71,0x23, 0x2,0x57,0x4b, + 0x3,0x51,0x3b, 0x1,0x70,0x7d, 0x3,0x51,0x31, 0x2,0x57,0x66, + 0x2,0x57,0x67, 0x2,0x57,0x5d, 0x2,0x57,0x5c, 0x2,0x57,0x54, + 0x3,0x51,0x29, 0x3,0x51,0x3e, 0x2,0x57,0x5e, 0x2,0x57,0x65, + 0x2,0x57,0x64, 0x3,0x51,0x2f, 0x1,0x70,0x78, 0x1,0x70,0x76, + 0x2,0x57,0x56, 0x2,0x57,0x53, 0x3,0x51,0x44, 0x2,0x57,0x50, + 0x2,0x57,0x63, 0x1,0x71,0x22, 0x2,0x57,0x61, 0x1,0x70,0x7c, + 0x1,0x70,0x7b, 0x3,0x51,0x27, 0x2,0x57,0x5b, 0x4,0x4a,0x4b, + 0x2,0x57,0x4a, 0x2,0x57,0x4c, 0x2,0x57,0x4e, 0x2,0x57,0x60, + 0x2,0x57,0x5a, 0x1,0x70,0x77, 0x3,0x51,0x2e, 0x2,0x57,0x51, + 0x3,0x51,0x32, 0x2,0x57,0x5f, 0x3,0x51,0x41, 0x3,0x51,0x3a, + 0xf,0x54,0x7b, 0x2,0x57,0x52, 0x3,0x65,0x31, 0xf,0x55,0x29, + 0x3,0x65,0x32, 0x3,0x54,0x75, 0x1,0x73,0x78, 0x2,0x5d,0x31, + 0x1,0x73,0x71, 0x2,0x5d,0x22, 0x3,0x54,0x7b, 0x2,0x5d,0x2d, + 0x1,0x73,0x73, 0x2,0x5d,0x34, 0x3,0x55,0x21, 0x2,0x5d,0x29, + 0x3,0x54,0x7c, 0x2,0x5d,0x24, 0x3,0x54,0x76, 0x4,0x56,0x45, + 0x2,0x5d,0x35, 0x2,0x5c,0x7e, 0x2,0x5d,0x2b, 0x3,0x55,0x27, + 0x1,0x73,0x7a, 0x2,0x5d,0x30, 0x2,0x5d,0x36, 0x2,0x5d,0x2a, + 0x1,0x73,0x72, 0x2,0x5d,0x2c, 0x2,0x5d,0x21, 0x1,0x73,0x79, + 0x3,0x55,0x23, 0x3,0x54,0x7a, 0x2,0x5d,0x33, 0x2,0x5d,0x26, + 0x1,0x73,0x75, 0x3,0x55,0x24, 0x2,0x5d,0x28, 0x2,0x5d,0x25, + 0x1,0x73,0x7b, 0x2,0x5d,0x27, 0x1,0x73,0x74, 0x1,0x73,0x77, + 0x2,0x5d,0x2f, 0x2,0x5d,0x23, 0x2,0x5d,0x32, 0x3,0x54,0x78, + 0x2,0x5d,0x2e, 0x3,0x55,0x29, 0x3,0x57,0x74, 0x1,0x76,0x4f, + 0x2,0x61,0x73, 0x1,0x76,0x54, 0x1,0x76,0x55, 0x3,0x57,0x77, + 0x3,0x58,0x21, 0x3,0x57,0x76, 0x1,0x76,0x4e, 0x2,0x61,0x72, + 0x3,0x57,0x78, 0x2,0x61,0x6f, 0x2,0x61,0x70, 0x1,0x76,0x52, + 0x2,0x61,0x6a, 0x2,0x61,0x6e, 0x1,0x76,0x51, 0x3,0x57,0x7e, + 0x2,0x61,0x6b, 0x3,0x57,0x79, 0x3,0x58,0x23, 0x3,0x57,0x7d, + 0x3,0x57,0x7a, 0x1,0x76,0x53, 0x1,0x76,0x50, 0x3,0x58,0x22, + 0x2,0x61,0x69, 0x2,0x61,0x6d, 0x2,0x61,0x71, 0x3,0x57,0x7b, + 0x3,0x65,0x33, 0x2,0x65,0x5c, 0x2,0x65,0x59, 0x2,0x65,0x62, + 0x3,0x5a,0x44, 0x2,0x65,0x61, 0x2,0x65,0x5f, 0x2,0x65,0x5a, + 0x3,0x5a,0x4f, 0x1,0x78,0x3f, 0x3,0x5a,0x45, 0x3,0x5a,0x4e, + 0x4,0x5f,0x71, 0x3,0x5a,0x47, 0x3,0x5a,0x4d, 0x2,0x65,0x5b, + 0x1,0x78,0x3e, 0x1,0x73,0x76, 0x2,0x65,0x5e, 0x1,0x78,0x3d, + 0x2,0x65,0x63, 0x2,0x65,0x5d, 0x2,0x65,0x58, 0x2,0x61,0x6c, + 0x3,0x5a,0x48, 0x3,0x5a,0x46, 0x1,0x78,0x3c, 0x3,0x65,0x34, + 0x2,0x65,0x57, 0x2,0x69,0x24, 0x3,0x5c,0x49, 0x2,0x69,0x23, + 0x2,0x65,0x60, 0x1,0x79,0x73, 0x3,0x57,0x75, 0x2,0x69,0x27, + 0x2,0x69,0x28, 0x2,0x69,0x22, 0x2,0x69,0x26, 0x4,0x63,0x50, + 0x2,0x69,0x21, 0x3,0x5c,0x47, 0x3,0x65,0x35, 0x4,0x63,0x4e, + 0x2,0x6b,0x5f, 0x2,0x69,0x25, 0x1,0x7a,0x72, 0x1,0x7a,0x70, + 0x2,0x6b,0x5d, 0x3,0x5e,0x35, 0x3,0x5e,0x34, 0x3,0x5e,0x33, + 0x2,0x6b,0x60, 0x3,0x5e,0x37, 0x2,0x6b,0x5c, 0x2,0x6b,0x5e, + 0x1,0x7a,0x71, 0x3,0x5f,0x4f, 0x3,0x5f,0x4e, 0x2,0x6d,0x53, + 0x2,0x6d,0x54, 0x1,0x7b,0x62, 0x2,0x6d,0x52, 0xf,0x69,0x4c, + 0x3,0x65,0x36, 0x3,0x65,0x37, 0x2,0x6f,0x31, 0x1,0x7c,0x3b, + 0x2,0x6f,0x2f, 0x2,0x6f,0x30, 0x2,0x70,0x3a, 0x3,0x60,0x74, + 0xf,0x6b,0x51, 0x1,0x7d,0x23, 0x2,0x71,0x23, 0x2,0x71,0x21, + 0x2,0x71,0x22, 0x2,0x71,0x24, 0x3,0x61,0x40, 0x3,0x61,0x65, + 0x3,0x61,0x41, 0x2,0x72,0x2b, 0x1,0x45,0x4e, 0x1,0x48,0x39, + 0x3,0x23,0x79, 0x1,0x4e,0x3c, 0x4,0x26,0x71, 0x2,0x27,0x4a, + 0x3,0x29,0x53, 0x3,0x29,0x54, 0x2,0x2b,0x46, 0x4,0x29,0x72, + 0x3,0x2d,0x3c, 0x3,0x31,0x66, 0x2,0x2f,0x77, 0x2,0x2f,0x79, + 0x3,0x31,0x65, 0x2,0x2f,0x78, 0x3,0x31,0x67, 0x2,0x2f,0x7a, + 0x1,0x5b,0x43, 0x2,0x36,0x3b, 0x2,0x2f,0x7b, 0x3,0x36,0x62, + 0x2,0x36,0x3a, 0x2,0x36,0x3c, 0x2,0x36,0x3d, 0x2,0x3c,0x7d, + 0x1,0x60,0x22, 0x2,0x3c,0x7e, 0x2,0x3d,0x22, 0x1,0x60,0x23, + 0x1,0x60,0x21, 0x2,0x3d,0x21, 0x3,0x41,0x7d, 0x2,0x44,0x22, + 0x2,0x43,0x7e, 0x2,0x43,0x7d, 0x3,0x41,0x7c, 0x2,0x43,0x7c, + 0x2,0x43,0x7b, 0x1,0x64,0x58, 0x2,0x44,0x21, 0x1,0x69,0x39, + 0x2,0x4b,0x2b, 0x2,0x4b,0x2d, 0x1,0x69,0x3a, 0x2,0x4b,0x2c, + 0x1,0x6d,0x45, 0x3,0x4c,0x66, 0x1,0x6d,0x44, 0x2,0x51,0x39, + 0x3,0x4c,0x65, 0x3,0x4c,0x67, 0x2,0x57,0x6a, 0x2,0x57,0x69, + 0x2,0x57,0x6b, 0x3,0x51,0x46, 0x3,0x51,0x45, 0x1,0x71,0x24, + 0xf,0x55,0x39, 0x2,0x5d,0x37, 0x1,0x73,0x7c, 0x3,0x55,0x2b, + 0x2,0x61,0x74, 0x1,0x76,0x56, 0x2,0x65,0x64, 0x1,0x7b,0x63, + 0x1,0x45,0x4f, 0x1,0x46,0x5f, 0x1,0x48,0x3a, 0x1,0x4a,0x63, + 0x1,0x4e,0x3d, 0x1,0x4e,0x3e, 0x3,0x29,0x55, 0x3,0x29,0x56, + 0x1,0x51,0x71, 0x3,0x2d,0x3d, 0x3,0x31,0x68, 0x2,0x2f,0x7c, + 0x3,0x3c,0x49, 0x3,0x3c,0x47, 0x4,0x44,0x2d, 0x3,0x41,0x7e, + 0x1,0x64,0x59, 0x3,0x42,0x21, 0x3,0x47,0x53, 0x4,0x4a,0x4e, + 0x2,0x52,0x59, 0x1,0x71,0x25, 0x1,0x76,0x57, 0x1,0x45,0x50, + 0x3,0x22,0x53, 0x1,0x48,0x3b, 0x4,0x26,0x76, 0x2,0x27,0x4c, + 0x1,0x4e,0x3f, 0x2,0x27,0x4b, 0x3,0x29,0x58, 0x2,0x2b,0x47, + 0x1,0x51,0x72, 0x2,0x2b,0x48, 0x5,0x29,0x69, 0x1,0x51,0x73, + 0x2,0x2f,0x7e, 0x1,0x56,0x32, 0x1,0x56,0x31, 0x3,0x31,0x6a, + 0x2,0x36,0x42, 0x2,0x36,0x40, 0x2,0x36,0x41, 0x2,0x36,0x3f, + 0x3,0x36,0x64, 0x2,0x36,0x3e, 0x2,0x3d,0x23, 0x2,0x3d,0x26, + 0x1,0x60,0x25, 0x2,0x3d,0x24, 0x1,0x60,0x24, 0x2,0x3d,0x25, + 0x2,0x44,0x23, 0x3,0x42,0x22, 0x4,0x44,0x31, 0x2,0x4b,0x2e, + 0x2,0x4b,0x2f, 0x2,0x4b,0x30, 0x3,0x47,0x54, 0x2,0x51,0x3c, + 0x2,0x51,0x3b, 0x1,0x6d,0x46, 0x2,0x51,0x3a, 0x2,0x51,0x3d, + 0x2,0x57,0x6c, 0x4,0x50,0x6d, 0x5,0x5b,0x72, 0x2,0x57,0x6d, + 0x2,0x57,0x6e, 0x4,0x56,0x52, 0x2,0x5d,0x38, 0x1,0x73,0x7d, + 0x1,0x76,0x58, 0x2,0x65,0x65, 0x1,0x7a,0x73, 0x2,0x21,0x3f, + 0x3,0x29,0x59, 0x1,0x51,0x74, 0x2,0x2b,0x49, 0x1,0x56,0x33, + 0x4,0x32,0x4e, 0x4,0x32,0x50, 0x1,0x5b,0x44, 0x3,0x36,0x65, + 0x1,0x60,0x26, 0x2,0x3d,0x27, 0x3,0x3c,0x4b, 0x1,0x64,0x5b, + 0x1,0x64,0x5a, 0x3,0x42,0x26, 0x2,0x4b,0x31, 0x2,0x4b,0x32, + 0x1,0x6d,0x47, 0x1,0x6d,0x48, 0x2,0x57,0x70, 0x2,0x57,0x6f, + 0x2,0x61,0x75, 0x2,0x6f,0x32, 0x1,0x45,0x51, 0x2,0x21,0x40, + 0x1,0x46,0x60, 0x3,0x23,0x7a, 0x1,0x4a,0x64, 0x2,0x24,0x48, + 0x3,0x29,0x5a, 0x1,0x51,0x75, 0x1,0x64,0x5c, 0x1,0x45,0x52, + 0x2,0x2b,0x4a, 0x1,0x51,0x76, 0x2,0x2b,0x4b, 0x1,0x73,0x7e, + 0x1,0x45,0x53, 0x3,0x65,0x38, 0x3,0x65,0x39, 0x2,0x27,0x4d, + 0x2,0x2b,0x4c, 0x3,0x2d,0x42, 0x2,0x30,0x25, 0x2,0x30,0x24, + 0x2,0x30,0x22, 0x3,0x31,0x6e, 0x2,0x30,0x21, 0x2,0x30,0x26, + 0x2,0x30,0x23, 0x3,0x31,0x6c, 0x3,0x31,0x6d, 0x1,0x5b,0x45, + 0x1,0x5b,0x46, 0x3,0x36,0x66, 0x1,0x60,0x27, 0x2,0x3d,0x28, + 0x4,0x38,0x4e, 0x2,0x3d,0x29, 0x2,0x3d,0x2a, 0x3,0x3c,0x4d, + 0xf,0x3c,0x3c, 0x3,0x65,0x3a, 0x2,0x44,0x27, 0x2,0x44,0x28, + 0x2,0x44,0x26, 0x3,0x42,0x28, 0x2,0x44,0x24, 0x2,0x44,0x25, + 0x1,0x64,0x5d, 0x2,0x4b,0x33, 0x2,0x51,0x40, 0x2,0x51,0x3f, + 0x2,0x51,0x3e, 0x2,0x51,0x41, 0x2,0x57,0x72, 0x2,0x57,0x71, + 0x1,0x71,0x26, 0x2,0x57,0x73, 0x1,0x74,0x21, 0x2,0x5d,0x39, + 0x3,0x55,0x2d, 0x2,0x61,0x76, 0x2,0x65,0x66, 0x2,0x6d,0x55, + 0x1,0x45,0x54, 0x1,0x46,0x62, 0x1,0x46,0x61, 0x4,0x23,0x21, + 0x1,0x4e,0x40, 0x2,0x21,0x41, 0x2,0x21,0x5f, 0x1,0x48,0x3c, + 0x2,0x22,0x58, 0x2,0x24,0x49, 0x2,0x24,0x4a, 0x1,0x4e,0x41, + 0x3,0x29,0x5d, 0x2,0x27,0x4e, 0x3,0x65,0x3b, 0x1,0x51,0x77, + 0x2,0x2b,0x4d, 0x2,0x2b,0x4e, 0x1,0x56,0x34, 0x1,0x56,0x38, + 0x2,0x30,0x27, 0x1,0x56,0x37, 0x1,0x56,0x35, 0x1,0x56,0x36, + 0x2,0x36,0x43, 0x1,0x5b,0x47, 0x1,0x60,0x2a, 0x3,0x3c,0x4e, + 0x1,0x60,0x28, 0x1,0x60,0x29, 0x2,0x3d,0x2b, 0x3,0x42,0x29, + 0x3,0x42,0x2a, 0x1,0x69,0x3b, 0x1,0x45,0x55, 0x2,0x21,0x60, + 0x3,0x22,0x57, 0x1,0x46,0x63, 0x3,0x22,0x54, 0x2,0x21,0x63, + 0x3,0x24,0x21, 0x1,0x46,0x66, 0x2,0x21,0x62, 0x1,0x46,0x65, + 0x1,0x46,0x64, 0x1,0x4a,0x65, 0x2,0x21,0x61, 0x3,0x22,0x58, + 0x3,0x22,0x59, 0x2,0x22,0x59, 0xf,0x21,0x66, 0x2,0x22,0x5d, + 0x2,0x22,0x5f, 0x2,0x22,0x60, 0x1,0x48,0x46, 0x1,0x48,0x47, + 0x2,0x22,0x5c, 0x1,0x48,0x42, 0x3,0x23,0x7d, 0x2,0x22,0x5a, + 0x3,0x24,0x25, 0x2,0x22,0x5e, 0x1,0x48,0x43, 0x3,0x26,0x55, + 0x1,0x48,0x3e, 0x3,0x23,0x7c, 0x1,0x48,0x3f, 0x3,0x24,0x23, + 0x1,0x48,0x45, 0x2,0x22,0x5b, 0x1,0x48,0x3d, 0x1,0x4a,0x66, + 0x1,0x48,0x40, 0x1,0x48,0x41, 0x1,0x48,0x44, 0xf,0x22,0x5d, + 0x3,0x65,0x3c, 0x2,0x24,0x5b, 0x2,0x24,0x59, 0x2,0x24,0x4c, + 0x1,0x4a,0x72, 0x2,0x24,0x53, 0x1,0x4a,0x6d, 0x2,0x24,0x4d, + 0x3,0x29,0x64, 0x2,0x24,0x55, 0x3,0x26,0x50, 0x2,0x24,0x52, + 0x1,0x4a,0x70, 0x2,0x24,0x51, 0x1,0x4a,0x77, 0x2,0x24,0x5a, + 0x1,0x4a,0x79, 0x3,0x26,0x53, 0x1,0x4a,0x7b, 0x3,0x23,0x7e, + 0x2,0x24,0x4b, 0x3,0x26,0x57, 0x1,0x4a,0x6e, 0x2,0x24,0x5c, + 0x3,0x26,0x51, 0x1,0x4a,0x75, 0x1,0x4a,0x78, 0x3,0x26,0x4c, + 0x2,0x27,0x65, 0x1,0x4a,0x68, 0x1,0x4b,0x21, 0x1,0x4a,0x76, + 0x2,0x24,0x4e, 0x1,0x4a,0x6b, 0x1,0x4a,0x7a, 0x2,0x24,0x56, + 0x1,0x4a,0x69, 0x1,0x4a,0x6a, 0x2,0x27,0x63, 0x2,0x24,0x4f, + 0x1,0x4a,0x71, 0x1,0x4a,0x7c, 0x2,0x24,0x5d, 0x2,0x24,0x50, + 0x1,0x4a,0x6f, 0x3,0x26,0x4d, 0x1,0x4a,0x74, 0x2,0x27,0x4f, + 0x1,0x4a,0x7d, 0x2,0x24,0x57, 0x1,0x4a,0x73, 0x3,0x29,0x63, + 0x1,0x4a,0x7e, 0x1,0x4a,0x67, 0x2,0x24,0x54, 0x1,0x4a,0x6c, + 0x2,0x24,0x58, 0x2,0x27,0x64, 0x3,0x26,0x4e, 0x3,0x26,0x52, + 0x3,0x26,0x5c, 0x3,0x26,0x59, 0x3,0x26,0x56, 0xf,0x24,0x68, + 0x3,0x26,0x5b, 0x1,0x4e,0x4d, 0x1,0x4e,0x5d, 0x2,0x27,0x56, + 0x1,0x4e,0x54, 0x3,0x2d,0x4e, 0x2,0x27,0x6b, 0x1,0x4e,0x45, + 0x3,0x29,0x6b, 0x1,0x4e,0x48, 0x2,0x27,0x62, 0x4,0x27,0x26, + 0x2,0x27,0x54, 0x2,0x27,0x58, 0x1,0x4e,0x50, 0x1,0x4e,0x52, + 0x2,0x27,0x5b, 0x1,0x4e,0x59, 0x1,0x4e,0x4b, 0x1,0x4e,0x49, + 0x1,0x4e,0x4a, 0x1,0x4e,0x58, 0x2,0x27,0x67, 0x1,0x4e,0x53, + 0x2,0x27,0x5a, 0x2,0x27,0x5c, 0x1,0x4e,0x51, 0x1,0x4e,0x56, + 0x2,0x27,0x5d, 0x2,0x27,0x6a, 0x3,0x29,0x6d, 0x1,0x51,0x78, + 0x1,0x4e,0x5c, 0x4,0x26,0x7d, 0x1,0x4e,0x46, 0x2,0x27,0x69, + 0x3,0x29,0x6c, 0x2,0x27,0x6d, 0x2,0x27,0x59, 0x2,0x27,0x6f, + 0x2,0x27,0x60, 0x1,0x4e,0x4f, 0x2,0x27,0x55, 0x1,0x4e,0x4e, + 0x1,0x4e,0x60, 0x1,0x4e,0x55, 0x3,0x29,0x6a, 0x2,0x27,0x53, + 0x2,0x2b,0x57, 0x1,0x4e,0x5b, 0x1,0x4e,0x5f, 0x2,0x27,0x61, + 0x2,0x27,0x66, 0x3,0x29,0x65, 0x1,0x4e,0x61, 0x1,0x4e,0x5a, + 0x1,0x4e,0x4c, 0x1,0x4e,0x42, 0x3,0x29,0x69, 0x1,0x4e,0x47, + 0x4,0x26,0x7b, 0x2,0x27,0x57, 0x1,0x4e,0x43, 0x2,0x27,0x6e, + 0x3,0x29,0x67, 0x2,0x27,0x51, 0x2,0x27,0x50, 0x2,0x27,0x5e, + 0x2,0x27,0x52, 0x1,0x4e,0x5e, 0x1,0x56,0x39, 0x1,0x4e,0x57, + 0x2,0x27,0x5f, 0x1,0x4e,0x44, 0x3,0x2d,0x4f, 0x1,0x52,0x29, + 0x2,0x27,0x6c, 0x3,0x2d,0x46, 0x2,0x2b,0x5e, 0x2,0x2b,0x61, + 0x3,0x2d,0x50, 0x2,0x2b,0x64, 0x2,0x2b,0x59, 0x3,0x2d,0x48, + 0x3,0x2d,0x4a, 0x2,0x2b,0x67, 0x2,0x2b,0x6a, 0x2,0x2b,0x6c, + 0x2,0x2b,0x56, 0x1,0x51,0x79, 0x1,0x51,0x7e, 0x2,0x30,0x2c, + 0x1,0x52,0x30, 0x2,0x2b,0x65, 0x2,0x2b,0x6d, 0x2,0x2b,0x5d, + 0x2,0x2b,0x55, 0x3,0x2d,0x49, 0x3,0x2d,0x47, 0x3,0x2d,0x4d, + 0x2,0x30,0x47, 0x1,0x52,0x23, 0x2,0x2b,0x62, 0x2,0x2b,0x5a, + 0x2,0x2b,0x5c, 0x1,0x52,0x28, 0x3,0x31,0x7a, 0x2,0x2b,0x5f, + 0x1,0x52,0x22, 0x2,0x2b,0x52, 0x2,0x2b,0x68, 0x3,0x2d,0x4b, + 0x2,0x2b,0x6b, 0x3,0x2d,0x45, 0x3,0x2d,0x57, 0x1,0x51,0x7d, + 0x3,0x2d,0x53, 0x1,0x52,0x2b, 0x2,0x2b,0x4f, 0x1,0x52,0x2d, + 0x1,0x51,0x7b, 0x1,0x52,0x31, 0x2,0x2b,0x69, 0x2,0x2b,0x51, + 0x1,0x52,0x2e, 0x2,0x30,0x41, 0x2,0x27,0x68, 0x1,0x52,0x21, + 0x1,0x51,0x7a, 0x2,0x2b,0x58, 0x2,0x2b,0x50, 0x1,0x52,0x2f, + 0x1,0x52,0x27, 0x2,0x2b,0x63, 0x1,0x52,0x2c, 0x1,0x52,0x2a, + 0x2,0x2b,0x5b, 0x1,0x52,0x24, 0x2,0x2b,0x53, 0x1,0x52,0x25, + 0x1,0x52,0x26, 0x2,0x2b,0x54, 0x2,0x2b,0x66, 0x1,0x51,0x7c, + 0x2,0x2b,0x60, 0x4,0x2a,0x21, 0x3,0x2d,0x55, 0x3,0x2d,0x51, + 0x3,0x31,0x77, 0x3,0x31,0x73, 0x2,0x30,0x2f, 0x1,0x56,0x41, + 0x1,0x56,0x46, 0x3,0x31,0x79, 0x3,0x32,0x26, 0x3,0x31,0x76, + 0x2,0x30,0x38, 0x2,0x30,0x3e, 0x2,0x30,0x3a, 0x2,0x30,0x2d, + 0x2,0x30,0x30, 0x2,0x30,0x29, 0x2,0x30,0x2a, 0x1,0x56,0x4d, + 0x1,0x56,0x3e, 0x2,0x30,0x39, 0x2,0x30,0x42, 0x1,0x56,0x48, + 0x1,0x56,0x3a, 0x3,0x31,0x6f, 0x1,0x56,0x43, 0x2,0x30,0x31, + 0x1,0x56,0x45, 0x2,0x30,0x32, 0x2,0x30,0x3c, 0x3,0x32,0x22, + 0x3,0x32,0x25, 0x3,0x31,0x72, 0x1,0x56,0x47, 0x2,0x30,0x4b, + 0x2,0x30,0x2b, 0x1,0x56,0x40, 0x1,0x56,0x3f, 0x1,0x56,0x4b, + 0x2,0x30,0x28, 0x2,0x30,0x49, 0x2,0x30,0x3d, 0x2,0x30,0x4a, + 0x2,0x30,0x44, 0x2,0x30,0x36, 0x2,0x30,0x45, 0x3,0x32,0x21, + 0x2,0x30,0x3f, 0x2,0x30,0x48, 0x2,0x30,0x46, 0x1,0x56,0x4c, + 0x2,0x30,0x37, 0x1,0x56,0x3d, 0x1,0x56,0x3c, 0x1,0x56,0x44, + 0x1,0x56,0x4a, 0x2,0x30,0x43, 0x1,0x56,0x49, 0x2,0x30,0x34, + 0x1,0x5b,0x48, 0x3,0x31,0x78, 0x2,0x30,0x4c, 0x2,0x30,0x33, + 0x2,0x30,0x2e, 0x1,0x56,0x42, 0x1,0x56,0x4e, 0x1,0x56,0x3b, + 0x3,0x32,0x27, 0x2,0x30,0x3b, 0x2,0x30,0x40, 0x3,0x31,0x7d, + 0x3,0x31,0x7b, 0x3,0x31,0x7c, 0x3,0x65,0x3d, 0x1,0x5b,0x6a, + 0x2,0x36,0x45, 0x2,0x36,0x49, 0x3,0x36,0x6f, 0x1,0x5b,0x57, + 0x1,0x5b,0x55, 0x3,0x36,0x7a, 0x3,0x37,0x21, 0x1,0x5b,0x4c, + 0x2,0x36,0x47, 0x2,0x36,0x46, 0x1,0x5b,0x60, 0x3,0x3c,0x50, + 0x2,0x36,0x4c, 0x1,0x5b,0x5a, 0x3,0x36,0x72, 0x2,0x36,0x5e, + 0x2,0x36,0x6a, 0x1,0x5b,0x49, 0x2,0x36,0x5b, 0x2,0x36,0x54, + 0x1,0x5b,0x6c, 0x2,0x36,0x44, 0x3,0x36,0x6a, 0x2,0x36,0x60, + 0x3,0x36,0x6b, 0x1,0x5b,0x69, 0x1,0x5b,0x5d, 0x1,0x5b,0x68, + 0x1,0x5b,0x53, 0x2,0x36,0x50, 0x2,0x36,0x62, 0x2,0x36,0x5a, + 0x1,0x5b,0x54, 0x1,0x5b,0x4e, 0x2,0x36,0x68, 0x3,0x36,0x6c, + 0x2,0x36,0x61, 0x2,0x36,0x63, 0x1,0x5b,0x56, 0x1,0x5b,0x5e, + 0x2,0x36,0x65, 0x2,0x36,0x4e, 0x2,0x36,0x5f, 0x2,0x36,0x53, + 0x2,0x36,0x67, 0x1,0x5b,0x63, 0x1,0x5b,0x4b, 0x1,0x5b,0x61, + 0x2,0x36,0x58, 0x2,0x36,0x56, 0x2,0x36,0x57, 0x1,0x5b,0x58, + 0x2,0x36,0x52, 0x2,0x36,0x51, 0x1,0x5b,0x4d, 0x2,0x36,0x4b, + 0x2,0x36,0x69, 0x1,0x5b,0x4f, 0x2,0x36,0x55, 0x1,0x5b,0x6d, + 0x3,0x36,0x74, 0x1,0x5b,0x67, 0x2,0x36,0x4a, 0x1,0x5b,0x64, + 0x1,0x5b,0x62, 0x1,0x5b,0x6b, 0x2,0x36,0x5c, 0x1,0x5b,0x66, + 0x2,0x30,0x35, 0x2,0x36,0x5d, 0x1,0x5b,0x65, 0x2,0x36,0x64, + 0x1,0x5b,0x4a, 0x2,0x36,0x59, 0x1,0x5b,0x5c, 0x2,0x36,0x4d, + 0x1,0x5b,0x5b, 0x3,0x36,0x7c, 0x1,0x5b,0x59, 0x1,0x5b,0x51, + 0x1,0x5b,0x50, 0x2,0x3d,0x2c, 0x2,0x36,0x66, 0x3,0x3c,0x5d, + 0x3,0x37,0x28, 0x2,0x36,0x4f, 0x3,0x37,0x26, 0x3,0x37,0x23, + 0x2,0x3d,0x41, 0x3,0x36,0x70, 0x1,0x5b,0x52, 0x3,0x36,0x77, + 0x3,0x37,0x24, 0x3,0x36,0x76, 0x3,0x37,0x25, 0x3,0x36,0x79, + 0x4,0x32,0x6d, 0x3,0x36,0x7d, 0x3,0x65,0x3e, 0x3,0x37,0x29, + 0xf,0x36,0x29, 0x3,0x37,0x27, 0x3,0x3c,0x54, 0x1,0x60,0x47, + 0x1,0x5b,0x5f, 0x1,0x60,0x35, 0x2,0x3d,0x3b, 0x1,0x60,0x43, + 0x3,0x3c,0x52, 0x2,0x3d,0x2f, 0x1,0x60,0x32, 0x1,0x60,0x2e, + 0x2,0x3d,0x4d, 0x1,0x60,0x34, 0x1,0x60,0x38, 0x1,0x60,0x33, + 0x1,0x60,0x3c, 0x2,0x3d,0x51, 0x2,0x3d,0x48, 0x3,0x3c,0x6b, + 0x3,0x3c,0x6d, 0x2,0x3d,0x36, 0x1,0x60,0x41, 0x1,0x60,0x3b, + 0x2,0x3d,0x42, 0x1,0x60,0x2b, 0x2,0x3d,0x4e, 0x2,0x3d,0x47, + 0x1,0x60,0x2f, 0x2,0x3d,0x3c, 0x1,0x60,0x3e, 0x2,0x3d,0x59, + 0x2,0x3d,0x5a, 0x4,0x38,0x5b, 0x1,0x60,0x2c, 0x2,0x3d,0x4c, + 0x1,0x60,0x40, 0x2,0x3d,0x40, 0x2,0x3d,0x32, 0x2,0x3d,0x33, + 0x1,0x60,0x44, 0x2,0x3d,0x37, 0x2,0x3d,0x3e, 0x2,0x3d,0x38, + 0x3,0x3c,0x5a, 0x1,0x60,0x42, 0x1,0x60,0x4a, 0x2,0x3d,0x34, + 0x2,0x3d,0x2d, 0x2,0x3d,0x2e, 0x3,0x3c,0x56, 0x2,0x3d,0x30, + 0x1,0x60,0x31, 0x2,0x3d,0x3d, 0x3,0x3c,0x6e, 0x1,0x60,0x3f, + 0x1,0x60,0x48, 0x3,0x3c,0x58, 0x3,0x3c,0x69, 0x2,0x3d,0x3f, + 0x2,0x3d,0x57, 0x2,0x3d,0x4f, 0x1,0x60,0x2d, 0x2,0x3d,0x55, + 0x1,0x60,0x39, 0x3,0x3c,0x66, 0x1,0x60,0x37, 0x3,0x3c,0x64, + 0x2,0x3d,0x5b, 0x1,0x60,0x36, 0x2,0x3d,0x45, 0x2,0x3d,0x39, + 0x2,0x3d,0x43, 0x1,0x60,0x4d, 0x2,0x3d,0x49, 0x2,0x3d,0x46, + 0x2,0x3d,0x35, 0x1,0x60,0x49, 0x2,0x3d,0x53, 0x2,0x3d,0x50, + 0x2,0x3d,0x58, 0x1,0x60,0x30, 0x2,0x3d,0x44, 0x1,0x60,0x4c, + 0x3,0x3c,0x5b, 0x2,0x3d,0x4b, 0x3,0x42,0x3a, 0x3,0x3c,0x60, + 0x1,0x60,0x3a, 0x1,0x60,0x3d, 0x3,0x3c,0x5c, 0x2,0x3d,0x4a, + 0x1,0x60,0x4b, 0x2,0x3d,0x3a, 0x2,0x36,0x48, 0x3,0x3c,0x51, + 0x3,0x3c,0x6c, 0x2,0x3d,0x54, 0x2,0x3d,0x52, 0x2,0x3d,0x56, + 0xf,0x3c,0x5d, 0x3,0x3c,0x62, 0x3,0x65,0x42, 0x4,0x38,0x5e, + 0x3,0x3c,0x63, 0x3,0x3c,0x68, 0xf,0x3c,0x47, 0x3,0x65,0x40, + 0x4,0x38,0x5f, 0x2,0x3d,0x31, 0x1,0x60,0x46, 0x3,0x65,0x3f, + 0x3,0x65,0x41, 0x2,0x44,0x47, 0x2,0x44,0x46, 0x2,0x44,0x2c, + 0x1,0x64,0x63, 0x3,0x42,0x30, 0x2,0x44,0x45, 0x2,0x44,0x2f, + 0x2,0x44,0x30, 0x4,0x3e,0x3f, 0x1,0x64,0x6d, 0x2,0x44,0x4e, + 0x1,0x64,0x68, 0x2,0x44,0x44, 0x3,0x42,0x33, 0x2,0x44,0x29, + 0x1,0x64,0x6e, 0x1,0x64,0x64, 0x2,0x44,0x38, 0x2,0x44,0x2e, + 0x2,0x44,0x31, 0x2,0x44,0x49, 0x1,0x64,0x5e, 0x2,0x44,0x50, + 0x2,0x44,0x48, 0x1,0x64,0x67, 0x2,0x44,0x3d, 0x1,0x64,0x72, + 0x3,0x42,0x2e, 0x3,0x42,0x36, 0x1,0x64,0x71, 0x1,0x64,0x6b, + 0x3,0x42,0x40, 0x4,0x3e,0x36, 0x2,0x44,0x4f, 0x1,0x64,0x5f, + 0x2,0x44,0x3b, 0x2,0x44,0x32, 0x2,0x44,0x3f, 0x2,0x44,0x4b, + 0x1,0x64,0x73, 0x3,0x42,0x39, 0x1,0x64,0x61, 0x2,0x44,0x3a, + 0x3,0x42,0x2d, 0x2,0x44,0x33, 0x1,0x64,0x6a, 0x3,0x42,0x31, + 0x1,0x64,0x69, 0x2,0x44,0x36, 0x2,0x44,0x40, 0x2,0x44,0x4a, + 0x2,0x44,0x2d, 0x2,0x44,0x37, 0x1,0x64,0x62, 0x2,0x44,0x41, + 0x1,0x64,0x6f, 0x1,0x64,0x66, 0x2,0x44,0x34, 0x1,0x64,0x65, + 0x2,0x44,0x2b, 0x2,0x44,0x39, 0x2,0x44,0x4d, 0x1,0x60,0x45, + 0x1,0x69,0x57, 0x2,0x44,0x3c, 0x2,0x4b,0x34, 0x2,0x44,0x3e, + 0x2,0x44,0x4c, 0x1,0x64,0x6c, 0x2,0x44,0x35, 0x1,0x64,0x60, + 0x1,0x64,0x70, 0x1,0x6d,0x5a, 0x2,0x44,0x2a, 0x6,0x54,0x4e, + 0x2,0x44,0x43, 0x3,0x42,0x44, 0x3,0x42,0x3e, 0x3,0x42,0x47, + 0x2,0x44,0x42, 0x3,0x42,0x3d, 0x3,0x42,0x45, 0x3,0x42,0x3f, + 0x3,0x42,0x3b, 0x3,0x42,0x46, 0x2,0x4b,0x50, 0x1,0x69,0x54, + 0x2,0x4b,0x45, 0x2,0x4b,0x4a, 0x1,0x69,0x49, 0x3,0x47,0x56, + 0x2,0x4b,0x36, 0x1,0x69,0x56, 0x3,0x47,0x57, 0x1,0x69,0x40, + 0x2,0x4b,0x35, 0x2,0x4b,0x56, 0x1,0x69,0x58, 0x2,0x4b,0x39, + 0x2,0x4b,0x49, 0x3,0x47,0x65, 0x2,0x4b,0x3b, 0x2,0x4b,0x59, + 0x2,0x4b,0x55, 0x1,0x69,0x3e, 0x1,0x69,0x48, 0x2,0x51,0x5b, + 0x1,0x69,0x55, 0x1,0x69,0x46, 0x2,0x4b,0x37, 0x3,0x47,0x63, + 0x2,0x4b,0x54, 0x1,0x69,0x4a, 0x2,0x4b,0x51, 0x2,0x4b,0x5e, + 0x2,0x4b,0x3d, 0x2,0x4b,0x46, 0x3,0x4c,0x78, 0x3,0x47,0x5b, + 0x2,0x4b,0x5c, 0x2,0x4b,0x52, 0x1,0x69,0x45, 0x3,0x4c,0x6a, + 0x3,0x47,0x64, 0x2,0x4b,0x44, 0x1,0x69,0x3f, 0x1,0x69,0x3d, + 0x1,0x69,0x4f, 0x4,0x44,0x43, 0x3,0x47,0x5f, 0x2,0x4b,0x42, + 0x2,0x4b,0x3f, 0x2,0x4b,0x40, 0x3,0x47,0x5a, 0x2,0x4b,0x58, + 0x3,0x47,0x5c, 0x2,0x4b,0x5d, 0x2,0x4b,0x5b, 0x1,0x69,0x43, + 0x2,0x4b,0x5f, 0x1,0x69,0x47, 0x1,0x69,0x4e, 0x4,0x44,0x44, + 0x2,0x4b,0x38, 0x2,0x51,0x43, 0x2,0x4b,0x41, 0x3,0x47,0x5e, + 0x1,0x69,0x41, 0x1,0x69,0x53, 0x1,0x69,0x50, 0x1,0x69,0x44, + 0x2,0x4b,0x4b, 0x2,0x4b,0x3c, 0x1,0x69,0x51, 0x2,0x4b,0x4d, + 0x1,0x69,0x4b, 0x1,0x69,0x4d, 0x1,0x69,0x3c, 0x3,0x47,0x5d, + 0x2,0x4b,0x4f, 0x2,0x4b,0x47, 0x2,0x4b,0x3a, 0x1,0x69,0x4c, + 0x2,0x4b,0x57, 0x2,0x4b,0x5a, 0x2,0x4b,0x43, 0x2,0x4b,0x4e, + 0x3,0x4c,0x74, 0x1,0x69,0x42, 0x1,0x6d,0x49, 0x2,0x4b,0x4c, + 0x2,0x51,0x42, 0x3,0x47,0x62, 0x2,0x4b,0x53, 0x3,0x47,0x61, + 0x4,0x44,0x52, 0xf,0x4f,0x79, 0x3,0x65,0x44, 0x3,0x65,0x45, + 0x3,0x47,0x66, 0x3,0x65,0x43, 0x2,0x4b,0x3e, 0x2,0x51,0x4c, + 0x2,0x51,0x56, 0x1,0x6d,0x4c, 0x2,0x51,0x55, 0x2,0x51,0x61, + 0x1,0x6d,0x4e, 0x2,0x51,0x53, 0x4,0x4a,0x58, 0x2,0x51,0x57, + 0x1,0x6d,0x59, 0x3,0x4c,0x7d, 0x2,0x51,0x4e, 0x1,0x6d,0x51, + 0x3,0x4c,0x73, 0x2,0x51,0x5a, 0x2,0x57,0x7b, 0x1,0x6d,0x5d, + 0x1,0x6d,0x5c, 0x2,0x51,0x5c, 0x2,0x51,0x4b, 0x2,0x51,0x66, + 0x1,0x6d,0x57, 0x3,0x4c,0x6b, 0x1,0x6d,0x4d, 0x2,0x51,0x5f, + 0x4,0x4a,0x69, 0x2,0x51,0x63, 0x2,0x51,0x68, 0x2,0x51,0x5d, + 0x2,0x51,0x51, 0x1,0x6d,0x50, 0x1,0x6d,0x53, 0x1,0x6d,0x5b, + 0x1,0x6d,0x56, 0x3,0x4c,0x75, 0x2,0x51,0x54, 0x2,0x4b,0x48, + 0x3,0x4c,0x7e, 0x3,0x4c,0x6c, 0x2,0x51,0x50, 0x2,0x51,0x67, + 0x1,0x6d,0x52, 0x3,0x4c,0x79, 0x1,0x6d,0x55, 0x2,0x51,0x69, + 0x1,0x6d,0x4a, 0x2,0x51,0x5e, 0x2,0x51,0x44, 0x2,0x51,0x64, + 0x1,0x74,0x2a, 0x3,0x4c,0x7a, 0x2,0x51,0x52, 0x4,0x50,0x75, + 0x1,0x6d,0x4b, 0x2,0x51,0x4d, 0x1,0x6d,0x4f, 0x2,0x51,0x45, + 0x1,0x69,0x52, 0x2,0x51,0x49, 0x4,0x4a,0x57, 0x2,0x51,0x62, + 0x2,0x51,0x4a, 0x2,0x51,0x48, 0x1,0x6d,0x54, 0x3,0x4c,0x7b, + 0x2,0x51,0x60, 0x3,0x4c,0x77, 0x2,0x51,0x47, 0x2,0x51,0x59, + 0x2,0x51,0x58, 0x2,0x51,0x65, 0x2,0x51,0x4f, 0x1,0x6d,0x58, + 0x4,0x4a,0x64, 0x3,0x65,0x47, 0xf,0x4f,0x7d, 0x3,0x65,0x46, + 0x2,0x57,0x7e, 0x3,0x51,0x56, 0x1,0x71,0x33, 0x1,0x71,0x29, + 0x2,0x58,0x2c, 0x2,0x57,0x76, 0x1,0x71,0x2b, 0x2,0x58,0x24, + 0x1,0x71,0x32, 0x1,0x71,0x2d, 0x2,0x58,0x22, 0x2,0x5d,0x3b, + 0x2,0x58,0x28, 0x2,0x58,0x2e, 0x2,0x58,0x27, 0x2,0x57,0x74, + 0x2,0x58,0x25, 0x2,0x58,0x30, 0x2,0x58,0x32, 0x1,0x71,0x28, + 0x2,0x58,0x31, 0x1,0x71,0x2e, 0x1,0x71,0x34, 0x3,0x51,0x54, + 0x1,0x71,0x31, 0x3,0x51,0x58, 0x2,0x58,0x2b, 0x1,0x71,0x30, + 0x2,0x58,0x26, 0x3,0x51,0x4d, 0x2,0x57,0x78, 0x2,0x57,0x7d, + 0x3,0x51,0x50, 0x2,0x58,0x2a, 0x1,0x71,0x2f, 0x1,0x71,0x2c, + 0x1,0x71,0x27, 0x1,0x71,0x2a, 0x2,0x57,0x7c, 0x4,0x51,0x22, + 0x2,0x51,0x46, 0x2,0x57,0x77, 0x2,0x57,0x7a, 0x2,0x58,0x2d, + 0x2,0x58,0x21, 0x2,0x57,0x75, 0x2,0x5d,0x3a, 0x2,0x58,0x2f, + 0x2,0x57,0x79, 0x2,0x58,0x29, 0x3,0x4c,0x71, 0x3,0x51,0x55, + 0x2,0x5d,0x3d, 0x1,0x74,0x2e, 0x3,0x55,0x30, 0x3,0x55,0x2f, + 0x1,0x74,0x22, 0x3,0x55,0x35, 0x3,0x55,0x36, 0x1,0x74,0x26, + 0x2,0x5d,0x3f, 0x2,0x5d,0x45, 0x2,0x5d,0x43, 0x1,0x74,0x24, + 0x1,0x74,0x25, 0x1,0x74,0x2c, 0x2,0x5d,0x46, 0x2,0x5d,0x3e, + 0x1,0x74,0x27, 0x3,0x55,0x31, 0x2,0x5d,0x42, 0x2,0x5d,0x41, + 0x2,0x5d,0x47, 0x1,0x74,0x2d, 0x3,0x55,0x37, 0x1,0x74,0x28, + 0x1,0x74,0x2b, 0x2,0x5d,0x40, 0x1,0x74,0x2f, 0x1,0x74,0x29, + 0x1,0x74,0x30, 0x1,0x74,0x23, 0x2,0x5d,0x44, 0x3,0x5a,0x55, + 0x2,0x5d,0x3c, 0x3,0x51,0x59, 0x3,0x55,0x39, 0x2,0x62,0x25, + 0x3,0x65,0x48, 0x1,0x76,0x5d, 0x2,0x62,0x22, 0x2,0x62,0x24, + 0x3,0x58,0x28, 0x1,0x76,0x5b, 0x2,0x61,0x7e, 0x2,0x62,0x21, + 0x2,0x61,0x7a, 0x3,0x58,0x2a, 0x3,0x58,0x27, 0x2,0x58,0x23, + 0x2,0x61,0x7b, 0x1,0x76,0x5c, 0x2,0x61,0x77, 0x3,0x58,0x26, + 0x1,0x76,0x59, 0x2,0x62,0x26, 0x1,0x76,0x5a, 0x2,0x61,0x78, + 0x2,0x61,0x79, 0x2,0x61,0x7d, 0x1,0x76,0x5f, 0x3,0x58,0x29, + 0x1,0x76,0x5e, 0x4,0x5b,0x5e, 0x3,0x58,0x2b, 0x2,0x61,0x7c, + 0x1,0x78,0x45, 0x2,0x65,0x6a, 0x2,0x65,0x70, 0x1,0x78,0x46, + 0x2,0x65,0x67, 0x1,0x78,0x43, 0x1,0x78,0x40, 0x2,0x65,0x72, + 0x1,0x78,0x44, 0x3,0x5a,0x52, 0x1,0x78,0x41, 0x2,0x65,0x69, + 0x2,0x65,0x6c, 0x2,0x65,0x6d, 0x2,0x65,0x6e, 0x2,0x65,0x71, + 0x3,0x5a,0x54, 0x2,0x62,0x23, 0x2,0x65,0x68, 0x1,0x78,0x42, + 0x2,0x65,0x6f, 0x2,0x69,0x34, 0x2,0x65,0x6b, 0x3,0x5a,0x53, + 0x3,0x65,0x4a, 0x3,0x65,0x49, 0x2,0x69,0x2b, 0x1,0x79,0x75, + 0x2,0x69,0x2e, 0x1,0x79,0x76, 0x2,0x69,0x37, 0x2,0x69,0x2d, + 0x2,0x69,0x2a, 0x3,0x5c,0x51, 0x2,0x69,0x2c, 0x2,0x69,0x30, + 0x2,0x69,0x33, 0x2,0x69,0x32, 0x2,0x69,0x36, 0x2,0x69,0x29, + 0x3,0x5c,0x4f, 0x1,0x79,0x74, 0x2,0x69,0x31, 0x2,0x69,0x35, + 0x2,0x69,0x38, 0x2,0x69,0x2f, 0x2,0x6b,0x61, 0x2,0x6b,0x62, + 0x2,0x6b,0x66, 0x2,0x6b,0x67, 0x3,0x5e,0x3c, 0x2,0x6b,0x64, + 0x2,0x6b,0x65, 0x2,0x6b,0x63, 0x3,0x5e,0x3a, 0x1,0x7a,0x74, + 0x3,0x5e,0x3b, 0x1,0x7b,0x64, 0x2,0x6d,0x59, 0x3,0x60,0x36, + 0x3,0x5f,0x52, 0x2,0x6d,0x56, 0x2,0x6d,0x57, 0x2,0x6d,0x58, + 0x1,0x7b,0x65, 0x3,0x60,0x37, 0x2,0x6f,0x34, 0x2,0x6f,0x33, + 0x3,0x65,0x4b, 0x2,0x70,0x3d, 0x1,0x7c,0x60, 0x2,0x70,0x3b, + 0x2,0x70,0x3e, 0x2,0x70,0x3c, 0x2,0x71,0x25, 0x1,0x7d,0x24, + 0x1,0x7d,0x32, 0x2,0x71,0x71, 0x2,0x71,0x5b, 0x3,0x61,0x79, + 0x2,0x71,0x70, 0x2,0x72,0x3e, 0x2,0x72,0x3f, 0x1,0x45,0x56, + 0x4,0x21,0x50, 0x3,0x24,0x28, 0x3,0x24,0x26, 0x1,0x48,0x48, + 0x2,0x22,0x61, 0x3,0x24,0x27, 0x3,0x24,0x2b, 0x2,0x24,0x5e, + 0x3,0x26,0x62, 0x1,0x4b,0x22, 0x3,0x26,0x5f, 0x1,0x4b,0x25, + 0x3,0x26,0x5e, 0x2,0x24,0x5f, 0x3,0x26,0x63, 0x1,0x4b,0x23, + 0x1,0x4b,0x24, 0x3,0x26,0x60, 0xf,0x24,0x71, 0x3,0x29,0x77, + 0x2,0x27,0x78, 0x2,0x27,0x7a, 0x2,0x27,0x75, 0x2,0x27,0x72, + 0x2,0x27,0x74, 0x3,0x29,0x74, 0x3,0x29,0x70, 0x3,0x29,0x75, + 0x1,0x4e,0x65, 0x3,0x29,0x6f, 0x3,0x29,0x79, 0x3,0x29,0x76, + 0x1,0x4e,0x63, 0x3,0x29,0x72, 0x3,0x29,0x71, 0x2,0x27,0x76, + 0x1,0x4e,0x64, 0x2,0x27,0x73, 0x2,0x27,0x70, 0x1,0x4e,0x62, + 0x2,0x27,0x77, 0x4,0x27,0x29, 0x2,0x27,0x71, 0x1,0x4e,0x66, + 0x2,0x27,0x79, 0x4,0x27,0x2b, 0x2,0x2b,0x6f, 0x3,0x2d,0x5e, + 0x2,0x2b,0x73, 0x3,0x2d,0x5c, 0x3,0x2d,0x5a, 0x1,0x52,0x3a, + 0x3,0x2d,0x58, 0x4,0x2a,0x26, 0x3,0x2d,0x65, 0x3,0x2d,0x62, + 0x2,0x2b,0x76, 0x3,0x2d,0x5f, 0x1,0x52,0x32, 0x1,0x52,0x35, + 0x1,0x52,0x37, 0x1,0x52,0x39, 0x1,0x52,0x36, 0x2,0x2b,0x72, + 0x2,0x2b,0x71, 0x3,0x2d,0x64, 0x1,0x52,0x34, 0x2,0x2b,0x74, + 0x2,0x2b,0x75, 0x3,0x2d,0x63, 0x2,0x2b,0x6e, 0x1,0x52,0x38, + 0x3,0x2d,0x68, 0x1,0x52,0x33, 0x3,0x2d,0x5d, 0x2,0x2b,0x70, + 0x3,0x65,0x4d, 0x4,0x2a,0x28, 0x3,0x32,0x28, 0x2,0x30,0x5a, + 0x2,0x30,0x5b, 0x2,0x30,0x5c, 0x1,0x56,0x53, 0x4,0x2d,0x75, + 0x1,0x56,0x4f, 0x2,0x30,0x51, 0x3,0x32,0x2a, 0x2,0x30,0x59, + 0x2,0x30,0x5e, 0x1,0x56,0x54, 0x3,0x32,0x2b, 0x2,0x30,0x4f, + 0x2,0x30,0x55, 0x2,0x30,0x4e, 0x2,0x30,0x58, 0x3,0x32,0x31, + 0x3,0x32,0x2f, 0x2,0x30,0x54, 0x1,0x56,0x50, 0x1,0x56,0x52, + 0x2,0x30,0x5d, 0x3,0x32,0x29, 0x2,0x30,0x4d, 0x2,0x30,0x50, + 0x2,0x30,0x56, 0x3,0x32,0x2d, 0x2,0x30,0x57, 0x2,0x30,0x5f, + 0x2,0x30,0x53, 0x3,0x32,0x2c, 0x1,0x56,0x51, 0x3,0x65,0x4f, + 0x3,0x65,0x4e, 0x3,0x32,0x30, 0x1,0x5b,0x72, 0x2,0x36,0x71, + 0x3,0x37,0x30, 0x3,0x37,0x32, 0x2,0x36,0x73, 0x2,0x36,0x6f, + 0x3,0x37,0x2f, 0x2,0x36,0x7b, 0x2,0x36,0x6d, 0x2,0x36,0x7a, + 0x1,0x5b,0x6e, 0x2,0x36,0x6b, 0x2,0x3d,0x5f, 0x2,0x36,0x75, + 0x1,0x5b,0x71, 0x3,0x37,0x35, 0x2,0x36,0x76, 0x2,0x36,0x79, + 0x3,0x37,0x2e, 0x2,0x36,0x7d, 0x3,0x37,0x2c, 0x2,0x36,0x72, + 0x4,0x32,0x72, 0x2,0x36,0x77, 0x3,0x37,0x2d, 0x3,0x37,0x31, + 0x1,0x5b,0x6f, 0x1,0x5b,0x70, 0x2,0x36,0x7c, 0x2,0x36,0x70, + 0x2,0x36,0x6c, 0x2,0x36,0x7e, 0x3,0x37,0x33, 0x2,0x36,0x74, + 0x3,0x65,0x50, 0x3,0x65,0x51, 0x2,0x36,0x78, 0x2,0x36,0x6e, + 0x1,0x60,0x4e, 0x1,0x60,0x4f, 0x2,0x3d,0x69, 0x1,0x60,0x55, + 0x3,0x3c,0x74, 0x2,0x3d,0x5d, 0x2,0x3d,0x66, 0x2,0x3d,0x5c, + 0x1,0x60,0x52, 0x2,0x3d,0x64, 0x2,0x3d,0x62, 0x3,0x3c,0x7d, + 0x2,0x3d,0x63, 0x1,0x60,0x50, 0x3,0x3c,0x7c, 0x2,0x3d,0x67, + 0xf,0x3c,0x7e, 0x3,0x3c,0x6f, 0x3,0x3c,0x7a, 0x3,0x3c,0x72, + 0x3,0x3d,0x21, 0x2,0x3d,0x60, 0x2,0x3d,0x5e, 0x1,0x60,0x51, + 0x2,0x3d,0x61, 0x2,0x3d,0x65, 0x3,0x3c,0x7b, 0x3,0x3c,0x79, + 0x3,0x3c,0x71, 0x1,0x60,0x53, 0x3,0x3c,0x73, 0x3,0x3c,0x77, + 0x3,0x65,0x53, 0x2,0x3d,0x68, 0x3,0x65,0x54, 0x3,0x65,0x55, + 0x3,0x65,0x52, 0x2,0x44,0x56, 0x2,0x44,0x5d, 0x2,0x44,0x5f, + 0x2,0x44,0x65, 0x3,0x42,0x57, 0x1,0x65,0x22, 0x2,0x44,0x51, + 0x3,0x42,0x4c, 0x1,0x64,0x78, 0x3,0x42,0x4e, 0x2,0x44,0x60, + 0x1,0x64,0x7d, 0x2,0x44,0x66, 0x1,0x64,0x74, 0x3,0x42,0x51, + 0x2,0x44,0x63, 0x3,0x42,0x58, 0x2,0x44,0x53, 0x2,0x44,0x64, + 0x2,0x44,0x52, 0x1,0x65,0x24, 0x3,0x42,0x52, 0x2,0x44,0x5e, + 0x1,0x64,0x75, 0x2,0x44,0x67, 0x3,0x48,0x3c, 0x1,0x64,0x7a, + 0x2,0x44,0x57, 0x1,0x65,0x21, 0x2,0x44,0x62, 0x2,0x44,0x55, + 0x2,0x44,0x5c, 0x2,0x44,0x58, 0x2,0x44,0x54, 0x1,0x64,0x77, + 0x1,0x64,0x7e, 0x1,0x64,0x7c, 0x1,0x64,0x79, 0x1,0x65,0x23, + 0x1,0x64,0x76, 0x2,0x44,0x5b, 0x3,0x42,0x4f, 0x1,0x64,0x7b, + 0x3,0x42,0x59, 0x1,0x60,0x54, 0x3,0x42,0x49, 0x2,0x44,0x61, + 0x3,0x65,0x59, 0x2,0x44,0x59, 0x3,0x42,0x53, 0x3,0x65,0x57, + 0x3,0x65,0x58, 0x3,0x65,0x56, 0x2,0x44,0x5a, 0x4,0x44,0x57, + 0x4,0x44,0x5b, 0x2,0x4b,0x67, 0x3,0x47,0x6f, 0x1,0x69,0x5b, + 0x3,0x47,0x6e, 0x3,0x47,0x6c, 0x2,0x4b,0x63, 0x2,0x4b,0x69, + 0x2,0x4b,0x65, 0x3,0x47,0x70, 0x1,0x69,0x5d, 0x2,0x4b,0x64, + 0x2,0x4b,0x68, 0x2,0x4b,0x60, 0x3,0x47,0x72, 0x2,0x4b,0x62, + 0x1,0x69,0x5c, 0x3,0x47,0x6a, 0x3,0x47,0x6d, 0x3,0x47,0x6b, + 0x3,0x47,0x68, 0x2,0x4b,0x66, 0x2,0x4b,0x61, 0x3,0x47,0x67, + 0x1,0x69,0x5e, 0x3,0x65,0x5b, 0x1,0x69,0x59, 0xf,0x49,0x4b, + 0x3,0x65,0x5a, 0x2,0x4b,0x6a, 0xf,0x49,0x5f, 0x1,0x69,0x5a, + 0x2,0x51,0x6f, 0x2,0x51,0x6c, 0x2,0x51,0x78, 0x2,0x51,0x72, + 0x2,0x51,0x74, 0x1,0x6d,0x5e, 0x2,0x51,0x6e, 0x2,0x51,0x76, + 0x3,0x4d,0x2a, 0x3,0x4d,0x24, 0x2,0x51,0x75, 0x2,0x51,0x73, + 0x3,0x4d,0x29, 0x2,0x51,0x79, 0x1,0x6d,0x61, 0x2,0x51,0x70, + 0x2,0x51,0x77, 0x3,0x4d,0x28, 0x1,0x6d,0x5f, 0x3,0x4d,0x25, + 0x3,0x4d,0x22, 0x2,0x51,0x6b, 0x2,0x51,0x6d, 0x1,0x6d,0x60, + 0x2,0x51,0x6a, 0x2,0x51,0x7a, 0x3,0x65,0x5c, 0x2,0x51,0x71, + 0x3,0x51,0x62, 0x3,0x51,0x5a, 0x2,0x58,0x36, 0x1,0x71,0x3b, + 0x3,0x51,0x60, 0x3,0x51,0x5c, 0x2,0x58,0x41, 0x2,0x58,0x3f, + 0x1,0x71,0x35, 0x2,0x58,0x35, 0x2,0x58,0x38, 0x2,0x58,0x39, + 0x2,0x58,0x34, 0x1,0x71,0x3f, 0x1,0x71,0x40, 0x2,0x58,0x33, + 0x2,0x58,0x42, 0x2,0x58,0x3d, 0x1,0x71,0x39, 0x1,0x71,0x36, + 0x2,0x58,0x3c, 0x2,0x58,0x3a, 0x3,0x51,0x63, 0x4,0x51,0x23, + 0x1,0x71,0x3c, 0x2,0x58,0x3e, 0x1,0x71,0x37, 0x3,0x51,0x5e, + 0x1,0x71,0x38, 0x3,0x51,0x66, 0x2,0x58,0x3b, 0x1,0x71,0x3a, + 0x2,0x58,0x37, 0x7,0x2f,0x4f, 0x2,0x58,0x40, 0x1,0x71,0x3d, + 0x2,0x58,0x43, 0x2,0x58,0x44, 0x1,0x71,0x3e, 0x3,0x65,0x5d, + 0x3,0x65,0x5e, 0x1,0x74,0x32, 0x1,0x74,0x39, 0x2,0x5d,0x48, + 0x2,0x5d,0x4e, 0x3,0x55,0x3c, 0x2,0x5d,0x4c, 0x1,0x74,0x35, + 0x1,0x74,0x34, 0x1,0x74,0x31, 0x2,0x5d,0x4a, 0x3,0x55,0x3e, + 0x3,0x55,0x43, 0x3,0x55,0x40, 0x1,0x74,0x37, 0x1,0x74,0x36, + 0x1,0x74,0x33, 0x3,0x55,0x41, 0x2,0x5d,0x4d, 0x2,0x5d,0x49, + 0x2,0x5d,0x4b, 0x3,0x55,0x42, 0x1,0x74,0x38, 0xf,0x5a,0x73, + 0x1,0x76,0x63, 0x2,0x62,0x29, 0x3,0x58,0x2d, 0x1,0x76,0x60, + 0x1,0x76,0x61, 0x2,0x62,0x2b, 0x1,0x76,0x62, 0x2,0x62,0x28, + 0x3,0x58,0x2e, 0x2,0x62,0x27, 0x2,0x65,0x76, 0x2,0x62,0x2a, + 0x3,0x5a,0x56, 0x2,0x65,0x77, 0x1,0x78,0x47, 0x2,0x65,0x75, + 0x3,0x5a,0x57, 0x4,0x5f,0x7e, 0x2,0x65,0x74, 0x3,0x5c,0x59, + 0x2,0x65,0x73, 0x1,0x78,0x48, 0x3,0x65,0x5f, 0x3,0x5c,0x56, + 0x1,0x79,0x77, 0x3,0x5c,0x58, 0x3,0x5c,0x55, 0x2,0x69,0x39, + 0x2,0x69,0x3a, 0x3,0x5a,0x58, 0x3,0x5c,0x53, 0x3,0x5c,0x57, + 0x3,0x65,0x61, 0x2,0x6b,0x6a, 0x2,0x6b,0x69, 0x1,0x7a,0x75, + 0x3,0x5f,0x53, 0x2,0x6b,0x68, 0x2,0x6d,0x5a, 0x2,0x6d,0x5b, + 0x3,0x5f,0x54, 0x3,0x60,0x39, 0x2,0x6f,0x35, 0x2,0x70,0x3f, + 0x3,0x61,0x43, 0x3,0x61,0x42, 0x2,0x71,0x26, 0x2,0x72,0x2c, + 0x1,0x7d,0x46, 0x2,0x72,0x40, 0x1,0x45,0x57, 0x4,0x21,0x51, + 0x1,0x4e,0x67, 0x1,0x4e,0x68, 0x3,0x2d,0x69, 0x4,0x2a,0x2a, + 0x1,0x52,0x3b, 0x3,0x3d,0x22, 0x4,0x4a,0x6c, 0x1,0x74,0x3a, + 0x1,0x45,0x58, 0x1,0x4e,0x69, 0x1,0x56,0x55, 0x1,0x65,0x25, + 0x1,0x45,0x59, 0x3,0x2d,0x6b, 0x1,0x5b,0x73, 0x1,0x69,0x5f, + 0x2,0x21,0x42, 0x3,0x29,0x7c, 0x2,0x2b,0x77, 0x2,0x30,0x60, + 0x4,0x3e,0x4c, 0x2,0x4b,0x6b, 0x4,0x4a,0x6d, 0x1,0x74,0x3b, + 0x1,0x45,0x5a, 0x1,0x4e,0x6a, 0x2,0x2b,0x78, 0x2,0x2b,0x79, + 0x2,0x3d,0x6a, 0x1,0x60,0x56, 0x3,0x42,0x5d, 0x2,0x44,0x68, + 0x3,0x42,0x5c, 0x3,0x42,0x5b, 0x1,0x65,0x26, 0x2,0x4b,0x6c, + 0x4,0x44,0x5e, 0x3,0x4d,0x2e, 0x1,0x6d,0x62, 0x3,0x4d,0x2d, + 0x1,0x78,0x49, 0x1,0x45,0x5b, 0x2,0x3d,0x6b, 0x1,0x45,0x5c, + 0x1,0x48,0x4a, 0x2,0x22,0x62, 0x1,0x48,0x49, 0x1,0x4b,0x28, + 0x1,0x4b,0x27, 0x1,0x4b,0x26, 0x2,0x24,0x60, 0x3,0x26,0x64, + 0x3,0x2a,0x21, 0x3,0x2a,0x22, 0x1,0x4e,0x6b, 0x3,0x2a,0x23, + 0x1,0x4e,0x6c, 0x2,0x27,0x7b, 0x4,0x27,0x31, 0x2,0x2b,0x7a, + 0x3,0x2d,0x6d, 0x2,0x2b,0x7d, 0x1,0x52,0x3d, 0x2,0x2b,0x7b, + 0x4,0x2a,0x2f, 0x1,0x52,0x3c, 0x2,0x2b,0x7c, 0x1,0x52,0x3e, + 0x2,0x30,0x63, 0x2,0x30,0x62, 0x2,0x30,0x61, 0x1,0x56,0x56, + 0x3,0x32,0x36, 0x2,0x37,0x22, 0x2,0x37,0x23, 0x1,0x5b,0x74, + 0x2,0x37,0x21, 0x2,0x37,0x24, 0x1,0x60,0x58, 0x1,0x5b,0x75, + 0x3,0x3d,0x24, 0x3,0x3d,0x23, 0x1,0x60,0x57, 0x2,0x3d,0x6f, + 0x2,0x3d,0x6e, 0x3,0x3d,0x25, 0x2,0x3d,0x6c, 0x2,0x3d,0x6d, + 0x2,0x3d,0x70, 0x2,0x44,0x6a, 0x2,0x44,0x69, 0x2,0x44,0x6d, + 0x4,0x3e,0x4f, 0x2,0x44,0x6c, 0x2,0x44,0x6b, 0x1,0x69,0x60, + 0x2,0x4b,0x6f, 0x3,0x47,0x75, 0x2,0x4b,0x6e, 0x1,0x69,0x61, + 0x2,0x4b,0x6d, 0x2,0x51,0x7b, 0x3,0x4d,0x2f, 0x2,0x51,0x7c, + 0x1,0x6d,0x63, 0x4,0x51,0x2d, 0x2,0x58,0x45, 0x2,0x58,0x46, + 0x5,0x4e,0x37, 0x2,0x65,0x7c, 0x1,0x78,0x4a, 0x2,0x65,0x7b, + 0x2,0x65,0x7a, 0x2,0x65,0x78, 0x2,0x65,0x79, 0x1,0x7a,0x76, + 0x2,0x69,0x3b, 0x2,0x6d,0x5c, 0x2,0x71,0x27, 0x3,0x61,0x7b, + 0x1,0x45,0x5d, 0x4,0x21,0x38, 0x2,0x21,0x64, 0x1,0x46,0x67, + 0x2,0x21,0x65, 0x3,0x24,0x2c, 0x3,0x24,0x2d, 0x4,0x23,0x27, + 0x2,0x22,0x63, 0x2,0x22,0x64, 0x3,0x26,0x6b, 0x3,0x26,0x69, + 0x2,0x24,0x66, 0x3,0x26,0x66, 0x3,0x26,0x67, 0x2,0x24,0x62, + 0x3,0x26,0x6a, 0x2,0x24,0x61, 0x1,0x4e,0x6d, 0x2,0x24,0x65, + 0x1,0x4b,0x2a, 0x2,0x24,0x63, 0x1,0x4b,0x29, 0x2,0x24,0x67, + 0x2,0x24,0x64, 0x3,0x26,0x68, 0x2,0x28,0x21, 0x2,0x2b,0x7e, + 0x2,0x27,0x7d, 0x2,0x28,0x26, 0x3,0x2a,0x26, 0x1,0x4e,0x6e, + 0x3,0x2a,0x2a, 0x1,0x4e,0x71, 0x2,0x28,0x27, 0x2,0x28,0x23, + 0x3,0x2a,0x27, 0x2,0x28,0x24, 0x4,0x27,0x36, 0x2,0x27,0x7c, + 0x1,0x4e,0x70, 0x2,0x27,0x7e, 0x1,0x4e,0x6f, 0x2,0x28,0x25, + 0x3,0x2a,0x28, 0x2,0x28,0x22, 0x6,0x2c,0x7e, 0x2,0x2c,0x24, + 0x1,0x52,0x40, 0x1,0x52,0x41, 0x3,0x2d,0x75, 0x2,0x2c,0x27, + 0x2,0x2c,0x21, 0x3,0x2d,0x74, 0x2,0x2c,0x26, 0x3,0x2d,0x70, + 0x2,0x2c,0x22, 0x1,0x52,0x3f, 0x2,0x2c,0x25, 0x2,0x2c,0x23, + 0x3,0x2d,0x73, 0x3,0x2d,0x71, 0x2,0x30,0x69, 0x2,0x30,0x66, + 0x3,0x32,0x38, 0x2,0x30,0x68, 0x1,0x56,0x5b, 0x1,0x56,0x5a, + 0x1,0x56,0x58, 0x2,0x30,0x65, 0x2,0x30,0x6a, 0x1,0x56,0x57, + 0x1,0x56,0x59, 0x2,0x30,0x67, 0x2,0x37,0x2c, 0x2,0x30,0x64, + 0x2,0x30,0x6b, 0x3,0x32,0x39, 0x4,0x33,0x23, 0x4,0x33,0x2a, + 0x3,0x3d,0x26, 0x2,0x37,0x27, 0x2,0x37,0x2b, 0x5,0x33,0x54, + 0x2,0x37,0x2a, 0x2,0x3d,0x72, 0x2,0x3d,0x7d, 0x4,0x33,0x2d, + 0x3,0x37,0x3b, 0x2,0x37,0x2d, 0x3,0x37,0x3a, 0x2,0x37,0x28, + 0x2,0x3d,0x71, 0x1,0x5b,0x79, 0x4,0x33,0x22, 0x4,0x33,0x2c, + 0x1,0x5b,0x78, 0x2,0x37,0x26, 0x2,0x37,0x29, 0x1,0x5b,0x7a, + 0x3,0x37,0x39, 0x1,0x5b,0x77, 0x1,0x5b,0x76, 0x2,0x37,0x25, + 0x2,0x37,0x2e, 0x2,0x3d,0x74, 0x2,0x3d,0x7b, 0x3,0x3d,0x27, + 0x1,0x60,0x5a, 0x2,0x3d,0x7a, 0x2,0x3d,0x77, 0x3,0x3d,0x2e, + 0x1,0x60,0x5c, 0x3,0x3d,0x29, 0x3,0x3d,0x2b, 0x3,0x3d,0x2a, + 0x2,0x3d,0x79, 0x3,0x42,0x61, 0x3,0x3d,0x2d, 0x2,0x3d,0x73, + 0x2,0x3d,0x75, 0x2,0x3d,0x78, 0x2,0x3d,0x76, 0x1,0x60,0x5b, + 0x2,0x3d,0x7c, 0x1,0x60,0x59, 0x1,0x65,0x27, 0x3,0x3d,0x28, + 0x2,0x44,0x71, 0x2,0x44,0x70, 0x2,0x44,0x6e, 0x6,0x54,0x7c, + 0x1,0x65,0x2a, 0x1,0x65,0x29, 0x2,0x44,0x72, 0x3,0x42,0x5f, + 0x2,0x44,0x6f, 0x2,0x4b,0x70, 0x1,0x69,0x62, 0x1,0x65,0x28, + 0x3,0x42,0x62, 0x3,0x65,0x62, 0x3,0x65,0x63, 0x2,0x44,0x74, + 0x2,0x44,0x73, 0x3,0x4d,0x30, 0x2,0x4b,0x73, 0x2,0x4b,0x71, + 0x1,0x6d,0x64, 0x3,0x47,0x79, 0x1,0x69,0x63, 0x2,0x4b,0x72, + 0x2,0x51,0x7e, 0x3,0x47,0x78, 0x3,0x47,0x7a, 0x3,0x47,0x77, + 0x4,0x4a,0x77, 0x1,0x6d,0x65, 0x2,0x51,0x7d, 0x2,0x52,0x28, + 0x2,0x52,0x27, 0x2,0x52,0x25, 0x4,0x4a,0x75, 0x2,0x52,0x24, + 0x2,0x52,0x21, 0x2,0x52,0x22, 0x2,0x52,0x23, 0x2,0x52,0x26, + 0x2,0x52,0x29, 0x2,0x58,0x4b, 0x2,0x58,0x48, 0x2,0x58,0x49, + 0x1,0x71,0x41, 0x2,0x58,0x47, 0x2,0x58,0x4d, 0x2,0x58,0x4c, + 0x2,0x58,0x4a, 0x2,0x5d,0x50, 0x2,0x5d,0x51, 0x1,0x74,0x3c, + 0x3,0x55,0x49, 0x1,0x74,0x3d, 0x2,0x5d,0x4f, 0x4,0x56,0x6c, + 0x1,0x76,0x65, 0x2,0x62,0x2c, 0x1,0x76,0x64, 0x1,0x78,0x4b, + 0x4,0x60,0x25, 0x1,0x78,0x4c, 0x1,0x79,0x78, 0x2,0x69,0x3d, + 0x2,0x69,0x3c, 0x2,0x6b,0x6b, 0x2,0x6d,0x5d, 0x1,0x7b,0x66, + 0x2,0x6f,0x37, 0x2,0x6f,0x36, 0x2,0x6f,0x38, 0x1,0x46,0x68, + 0x2,0x2c,0x28, 0x1,0x56,0x5c, 0x1,0x5b,0x7b, 0x2,0x37,0x2f, + 0x1,0x46,0x69, 0x2,0x21,0x66, 0x1,0x45,0x5e, 0x3,0x22,0x5a, + 0x3,0x21,0x6b, 0x2,0x22,0x65, 0x3,0x24,0x2f, 0x4,0x23,0x2a, + 0xf,0x22,0x66, 0x2,0x24,0x6c, 0x2,0x24,0x6a, 0x2,0x24,0x6b, + 0x2,0x24,0x68, 0x1,0x4b,0x2b, 0x2,0x24,0x69, 0x3,0x26,0x6e, + 0x3,0x2a,0x33, 0x2,0x28,0x2f, 0x3,0x2a,0x2d, 0x1,0x4e,0x74, + 0x2,0x28,0x2d, 0x2,0x28,0x29, 0x2,0x28,0x2c, 0x3,0x2a,0x2c, + 0x2,0x28,0x28, 0x1,0x4e,0x76, 0x2,0x28,0x2b, 0x3,0x2a,0x2b, + 0x1,0x4e,0x73, 0x1,0x4e,0x72, 0x3,0x2a,0x32, 0x1,0x4e,0x75, + 0x2,0x28,0x2e, 0x2,0x28,0x2a, 0x3,0x2a,0x2f, 0x1,0x52,0x45, + 0x1,0x52,0x48, 0x2,0x2c,0x30, 0x2,0x2c,0x2f, 0x2,0x2c,0x2e, + 0x1,0x52,0x42, 0x2,0x2c,0x37, 0x2,0x2c,0x2d, 0x4,0x2e,0x2a, + 0x1,0x52,0x44, 0x2,0x30,0x70, 0x3,0x2d,0x78, 0x2,0x2c,0x34, + 0x2,0x2c,0x32, 0x1,0x52,0x47, 0x3,0x2d,0x7b, 0x2,0x2c,0x2a, + 0x2,0x2c,0x35, 0x3,0x2d,0x77, 0x2,0x2c,0x2c, 0x2,0x2c,0x36, + 0x2,0x2c,0x33, 0x2,0x2c,0x2b, 0x3,0x2d,0x7a, 0x1,0x52,0x43, + 0x2,0x2c,0x38, 0x2,0x2c,0x29, 0x1,0x52,0x46, 0x3,0x2d,0x7e, + 0x3,0x2d,0x79, 0x3,0x2d,0x7c, 0x2,0x30,0x75, 0x2,0x30,0x6c, + 0x2,0x30,0x77, 0x3,0x32,0x3e, 0x2,0x30,0x6f, 0x2,0x30,0x7a, + 0x2,0x30,0x7b, 0x2,0x30,0x6d, 0x2,0x30,0x79, 0x2,0x30,0x76, + 0x2,0x30,0x74, 0x2,0x30,0x78, 0x1,0x56,0x62, 0x3,0x32,0x40, + 0x1,0x56,0x60, 0x3,0x32,0x47, 0x3,0x32,0x3c, 0x2,0x30,0x72, + 0x3,0x32,0x46, 0x2,0x30,0x6e, 0x3,0x32,0x41, 0x2,0x30,0x71, + 0x2,0x30,0x7c, 0x2,0x30,0x73, 0x1,0x56,0x61, 0x2,0x2c,0x31, + 0x3,0x32,0x3d, 0x1,0x56,0x5d, 0x1,0x56,0x5f, 0x3,0x65,0x64, + 0x3,0x37,0x3d, 0x2,0x37,0x3d, 0x2,0x37,0x32, 0x2,0x37,0x30, + 0x3,0x3d,0x38, 0x2,0x37,0x31, 0x3,0x32,0x3f, 0x2,0x37,0x38, + 0x3,0x37,0x40, 0x2,0x37,0x39, 0x2,0x37,0x35, 0x1,0x5c,0x22, + 0x2,0x37,0x3a, 0x2,0x37,0x37, 0x2,0x37,0x34, 0x3,0x37,0x3c, + 0x1,0x5b,0x7e, 0x2,0x37,0x33, 0x1,0x5b,0x7c, 0x1,0x5c,0x21, + 0x2,0x37,0x36, 0x2,0x37,0x3e, 0x1,0x56,0x5e, 0x1,0x5b,0x7d, + 0x2,0x37,0x3c, 0x2,0x37,0x3b, 0x1,0x5c,0x23, 0x3,0x65,0x65, + 0xf,0x36,0x57, 0x3,0x3d,0x36, 0x3,0x3d,0x3a, 0x2,0x3e,0x24, + 0x3,0x3d,0x2f, 0x3,0x3d,0x3b, 0x3,0x3d,0x32, 0x2,0x3e,0x25, + 0x1,0x60,0x66, 0x3,0x3d,0x39, 0x2,0x3e,0x2b, 0x3,0x42,0x6d, + 0x3,0x3d,0x35, 0x2,0x3e,0x2d, 0x2,0x3e,0x26, 0x1,0x60,0x60, + 0x2,0x3e,0x2a, 0x2,0x3e,0x29, 0x1,0x60,0x61, 0x1,0x60,0x67, + 0x3,0x42,0x64, 0x1,0x60,0x68, 0x2,0x3e,0x2c, 0x1,0x60,0x5e, + 0x2,0x3e,0x23, 0x2,0x3e,0x21, 0x2,0x3e,0x27, 0x2,0x3d,0x7e, + 0x1,0x60,0x65, 0x2,0x3e,0x22, 0x2,0x3e,0x28, 0x2,0x3e,0x2e, + 0x1,0x60,0x5f, 0x1,0x60,0x64, 0x1,0x60,0x62, 0x1,0x60,0x63, + 0x3,0x3d,0x33, 0x3,0x3d,0x3c, 0x1,0x60,0x5d, 0x3,0x65,0x66, + 0x3,0x3d,0x37, 0x3,0x42,0x68, 0x3,0x42,0x75, 0x1,0x65,0x31, + 0x2,0x44,0x7b, 0x1,0x65,0x30, 0x2,0x45,0x21, 0x3,0x42,0x6f, + 0x2,0x44,0x75, 0x3,0x42,0x74, 0x2,0x45,0x22, 0x3,0x42,0x6e, + 0x3,0x42,0x66, 0x3,0x42,0x71, 0x2,0x44,0x76, 0x2,0x44,0x77, + 0x3,0x42,0x73, 0x2,0x45,0x23, 0x2,0x44,0x7e, 0x2,0x44,0x7c, + 0x2,0x44,0x7d, 0x2,0x44,0x79, 0x2,0x44,0x78, 0x3,0x42,0x67, + 0x2,0x45,0x24, 0x1,0x65,0x2d, 0x3,0x42,0x6b, 0x2,0x44,0x7a, + 0x3,0x42,0x70, 0x1,0x65,0x32, 0x1,0x65,0x2c, 0x1,0x65,0x33, + 0x1,0x65,0x34, 0x3,0x42,0x6a, 0x1,0x65,0x2f, 0x1,0x65,0x2e, + 0x3,0x48,0x25, 0x3,0x47,0x7e, 0x2,0x4b,0x74, 0x1,0x69,0x65, + 0x1,0x69,0x64, 0x3,0x47,0x7c, 0x3,0x47,0x7d, 0x2,0x4b,0x79, + 0x3,0x48,0x22, 0x1,0x6d,0x66, 0x1,0x69,0x66, 0x3,0x48,0x21, + 0x3,0x47,0x7b, 0x1,0x69,0x68, 0x2,0x4b,0x7a, 0x1,0x65,0x2b, + 0x1,0x69,0x67, 0x2,0x4b,0x76, 0x2,0x4b,0x78, 0x2,0x4b,0x75, + 0x3,0x48,0x27, 0x2,0x4b,0x77, 0x3,0x48,0x23, 0xf,0x49,0x76, + 0x2,0x52,0x33, 0x3,0x4d,0x31, 0x3,0x4d,0x3b, 0x2,0x52,0x32, + 0x2,0x52,0x2f, 0x1,0x6d,0x69, 0x2,0x58,0x4e, 0x1,0x6d,0x6a, + 0x2,0x52,0x2e, 0x3,0x4d,0x39, 0x1,0x6d,0x68, 0x3,0x4d,0x36, + 0x2,0x52,0x30, 0x2,0x52,0x2d, 0x2,0x52,0x2a, 0x2,0x52,0x31, + 0x2,0x52,0x2b, 0x2,0x52,0x2c, 0x1,0x6d,0x67, 0x3,0x4d,0x35, + 0x3,0x65,0x68, 0x4,0x51,0x39, 0x2,0x5d,0x55, 0x4,0x51,0x3a, + 0x2,0x58,0x52, 0x3,0x4d,0x3a, 0x2,0x58,0x51, 0x2,0x58,0x53, + 0x3,0x51,0x6a, 0x2,0x5d,0x52, 0x1,0x71,0x44, 0x4,0x51,0x38, + 0x2,0x58,0x4f, 0x3,0x51,0x67, 0x1,0x71,0x42, 0x3,0x51,0x6c, + 0x1,0x71,0x46, 0x1,0x71,0x45, 0x2,0x58,0x50, 0x2,0x58,0x54, + 0x3,0x51,0x6b, 0x1,0x71,0x43, 0x3,0x65,0x67, 0x2,0x5d,0x59, + 0x1,0x74,0x40, 0x1,0x76,0x66, 0x1,0x74,0x41, 0x1,0x74,0x3e, + 0x2,0x5d,0x56, 0x2,0x5d,0x54, 0x3,0x55,0x4f, 0x2,0x5d,0x57, + 0x3,0x55,0x4b, 0x2,0x5d,0x5a, 0x1,0x74,0x3f, 0x2,0x5d,0x58, + 0x2,0x5d,0x53, 0x3,0x55,0x4d, 0x3,0x65,0x69, 0x2,0x62,0x2f, + 0x2,0x62,0x32, 0x2,0x66,0x21, 0x2,0x62,0x2d, 0x3,0x58,0x2f, + 0x2,0x69,0x3e, 0x2,0x62,0x33, 0x3,0x58,0x30, 0x1,0x78,0x4d, + 0x2,0x62,0x31, 0x1,0x76,0x67, 0x2,0x62,0x2e, 0x2,0x62,0x30, + 0x2,0x62,0x34, 0x2,0x66,0x22, 0x3,0x5a,0x5a, 0x2,0x65,0x7e, + 0x4,0x60,0x27, 0x3,0x5a,0x5c, 0x3,0x5a,0x5d, 0x3,0x5a,0x5b, + 0x1,0x78,0x4e, 0x2,0x65,0x7d, 0x3,0x5c,0x5e, 0x3,0x5c,0x5c, + 0x3,0x5c,0x5f, 0x1,0x79,0x79, 0x3,0x5c,0x5d, 0x3,0x5c,0x60, + 0x3,0x5e,0x3d, 0x1,0x7a,0x78, 0x2,0x6d,0x5f, 0x1,0x7a,0x77, + 0x2,0x6d,0x61, 0x2,0x6d,0x5e, 0x2,0x6d,0x60, 0x1,0x7c,0x3c, + 0x2,0x70,0x40, 0x1,0x46,0x6a, 0x2,0x28,0x30, 0x2,0x30,0x7d, + 0x2,0x30,0x7e, 0x1,0x5c,0x24, 0x2,0x45,0x25, 0x1,0x71,0x47, + 0x1,0x78,0x4f, 0x1,0x7b,0x67, 0x2,0x70,0x41, 0x1,0x46,0x6b, + 0x2,0x28,0x31, 0x1,0x23,0x22, 0x4,0x2a,0x3c, 0x3,0x2e,0x22, + 0x2,0x2c,0x39, 0x3,0x2e,0x21, 0x2,0x2c,0x3a, 0x3,0x2e,0x24, + 0x3,0x32,0x48, 0x2,0x31,0x21, 0x2,0x31,0x22, 0x1,0x5c,0x25, + 0x1,0x5c,0x26, 0xf,0x36,0x67, 0x3,0x3d,0x3d, 0x4,0x39,0x25, + 0x2,0x3e,0x2f, 0x2,0x45,0x28, 0x2,0x45,0x27, 0x2,0x45,0x26, + 0x2,0x4b,0x7b, 0x3,0x42,0x77, 0x2,0x4b,0x7c, 0x2,0x4b,0x7d, + 0x1,0x69,0x69, 0x3,0x48,0x28, 0x2,0x52,0x35, 0x2,0x52,0x34, + 0x3,0x4d,0x3d, 0x3,0x51,0x6d, 0x2,0x58,0x55, 0x1,0x71,0x48, + 0x1,0x71,0x49, 0x3,0x51,0x6e, 0x2,0x5d,0x5e, 0x2,0x5d,0x5b, + 0x2,0x5d,0x5c, 0x2,0x5d,0x5d, 0x2,0x62,0x36, 0x2,0x62,0x35, + 0x1,0x76,0x68, 0x2,0x66,0x23, 0x2,0x6b,0x6c, 0x1,0x46,0x6c, + 0x1,0x52,0x49, 0x3,0x37,0x44, 0x1,0x5c,0x27, 0x2,0x45,0x29, + 0x3,0x42,0x78, 0x1,0x46,0x6d, 0x4,0x2a,0x40, 0x2,0x31,0x23, + 0x1,0x5c,0x28, 0x3,0x37,0x45, 0x3,0x3d,0x3e, 0x1,0x60,0x69, + 0x1,0x60,0x6a, 0x5,0x47,0x49, 0x1,0x46,0x6e, 0x1,0x46,0x6f, + 0x2,0x22,0x66, 0x1,0x4b,0x2d, 0x1,0x4b,0x2c, 0x1,0x52,0x4a, + 0x2,0x2c,0x3b, 0x2,0x3e,0x30, 0x1,0x46,0x70, 0x1,0x46,0x71, + 0x1,0x46,0x72, 0x1,0x46,0x73, 0x4,0x23,0x2b, 0x1,0x4b,0x2e, + 0x1,0x4b,0x2f, 0x2,0x24,0x6e, 0x2,0x24,0x6d, 0x3,0x2a,0x37, + 0x1,0x4e,0x77, 0x2,0x28,0x34, 0x2,0x28,0x32, 0x2,0x28,0x33, + 0x3,0x2a,0x38, 0x3,0x2a,0x35, 0x4,0x27,0x40, 0x3,0x2a,0x36, + 0x3,0x2e,0x27, 0x2,0x2c,0x3c, 0x2,0x2c,0x3d, 0x3,0x2e,0x25, + 0x3,0x2e,0x28, 0x1,0x52,0x4e, 0x1,0x52,0x4c, 0x3,0x2e,0x2a, + 0x1,0x52,0x4d, 0x1,0x52,0x4b, 0x3,0x2e,0x26, 0xf,0x2b,0x7a, + 0xf,0x2c,0x4a, 0x1,0x56,0x63, 0x3,0x32,0x4e, 0x3,0x32,0x4d, + 0x3,0x32,0x50, 0x3,0x32,0x4f, 0x1,0x56,0x67, 0x1,0x56,0x66, + 0x2,0x31,0x24, 0x1,0x56,0x65, 0x1,0x56,0x64, 0x3,0x32,0x51, + 0x2,0x31,0x25, 0x3,0x37,0x46, 0x1,0x5c,0x2b, 0x2,0x37,0x40, + 0x2,0x37,0x3f, 0x1,0x5c,0x29, 0x1,0x5c,0x2a, 0x3,0x37,0x49, + 0x3,0x37,0x47, 0x1,0x60,0x6c, 0x1,0x60,0x6b, 0x2,0x3e,0x32, + 0x3,0x3d,0x43, 0x3,0x3d,0x42, 0x2,0x3e,0x31, 0x1,0x5c,0x2c, + 0x3,0x3d,0x44, 0x4,0x39,0x2c, 0x4,0x3e,0x6b, 0x1,0x65,0x35, + 0x2,0x45,0x2b, 0x1,0x65,0x36, 0x2,0x45,0x2a, 0x3,0x42,0x7b, + 0x4,0x44,0x7c, 0x4,0x44,0x7b, 0x2,0x4b,0x7e, 0x2,0x52,0x36, + 0x1,0x6d,0x6b, 0x2,0x58,0x56, 0x3,0x51,0x70, 0x3,0x55,0x52, + 0x2,0x5d,0x5f, 0x4,0x5b,0x74, 0x1,0x78,0x51, 0x1,0x78,0x50, + 0x4,0x63,0x68, 0x3,0x5c,0x62, 0x1,0x7b,0x68, 0x1,0x46,0x74, + 0x2,0x28,0x35, 0x3,0x3d,0x45, 0x1,0x5c,0x2d, 0x2,0x4c,0x21, + 0x1,0x69,0x6a, 0x3,0x22,0x5b, 0x3,0x26,0x73, 0x2,0x24,0x6f, + 0x2,0x24,0x70, 0x2,0x28,0x36, 0x1,0x4e,0x79, 0x1,0x4e,0x7a, + 0x3,0x2a,0x3a, 0x4,0x27,0x43, 0x1,0x4e,0x78, 0x3,0x2a,0x3b, + 0x1,0x52,0x52, 0x1,0x52,0x53, 0x1,0x52,0x50, 0x1,0x52,0x51, + 0x3,0x2e,0x2b, 0x2,0x2c,0x3e, 0x3,0x2e,0x2f, 0x4,0x2a,0x4a, + 0x2,0x2c,0x3f, 0x1,0x52,0x4f, 0x2,0x31,0x26, 0x3,0x32,0x57, + 0x1,0x56,0x6b, 0x1,0x56,0x6c, 0x3,0x32,0x55, 0x1,0x5c,0x30, + 0x2,0x31,0x2c, 0x4,0x2e,0x40, 0x1,0x56,0x71, 0x1,0x56,0x6f, + 0x2,0x31,0x2d, 0x2,0x31,0x28, 0x1,0x56,0x6e, 0x1,0x56,0x6d, + 0x1,0x56,0x68, 0x2,0x31,0x2b, 0x2,0x31,0x2a, 0x2,0x31,0x27, + 0x1,0x56,0x70, 0x3,0x32,0x52, 0x2,0x31,0x29, 0x1,0x56,0x69, + 0x4,0x2e,0x34, 0x1,0x56,0x6a, 0x1,0x5c,0x31, 0x2,0x37,0x44, + 0x2,0x37,0x45, 0x1,0x5c,0x32, 0x2,0x37,0x41, 0x2,0x37,0x43, + 0x2,0x37,0x47, 0x2,0x37,0x46, 0x2,0x37,0x42, 0x3,0x37,0x4a, + 0x1,0x5c,0x2e, 0x1,0x5c,0x2f, 0x2,0x3e,0x3a, 0x1,0x60,0x71, + 0x1,0x60,0x70, 0x2,0x3e,0x34, 0x1,0x60,0x6e, 0x4,0x39,0x34, + 0x2,0x3e,0x37, 0x1,0x60,0x72, 0x2,0x3e,0x38, 0x1,0x60,0x73, + 0x2,0x3e,0x35, 0x1,0x60,0x6d, 0x1,0x60,0x6f, 0x2,0x3e,0x39, + 0x3,0x3d,0x47, 0x2,0x3e,0x36, 0x2,0x3e,0x33, 0x4,0x3e,0x77, + 0x2,0x45,0x38, 0x3,0x42,0x7c, 0x2,0x45,0x2d, 0x1,0x65,0x38, + 0x1,0x65,0x3b, 0x1,0x65,0x3a, 0x1,0x65,0x3f, 0x1,0x65,0x3e, + 0x2,0x45,0x39, 0x2,0x45,0x37, 0x2,0x45,0x30, 0x2,0x45,0x34, + 0x2,0x45,0x33, 0x1,0x65,0x3c, 0x2,0x45,0x36, 0x2,0x45,0x32, + 0x2,0x45,0x3a, 0x2,0x45,0x31, 0x1,0x65,0x3d, 0x1,0x65,0x37, + 0x1,0x65,0x39, 0x3,0x42,0x7d, 0x2,0x45,0x2f, 0x3,0x48,0x2b, + 0x2,0x4c,0x23, 0x1,0x69,0x6e, 0x2,0x4c,0x27, 0x1,0x69,0x6d, + 0x2,0x4c,0x24, 0x1,0x69,0x6c, 0x3,0x48,0x29, 0x2,0x45,0x2e, + 0x2,0x45,0x35, 0x2,0x4c,0x26, 0x4,0x44,0x7e, 0x1,0x69,0x6f, + 0x2,0x4c,0x28, 0x2,0x4c,0x25, 0x2,0x4c,0x22, 0x2,0x52,0x39, + 0x2,0x52,0x3d, 0x2,0x52,0x3f, 0x2,0x52,0x3b, 0x2,0x52,0x3a, + 0x2,0x52,0x38, 0x1,0x6d,0x6e, 0x1,0x6d,0x6c, 0x1,0x6d,0x71, + 0x1,0x6d,0x72, 0x2,0x52,0x3c, 0x1,0x6d,0x6f, 0x2,0x52,0x37, + 0x1,0x6d,0x70, 0x1,0x69,0x6b, 0x2,0x52,0x3e, 0x1,0x6d,0x6d, + 0x3,0x51,0x71, 0x2,0x58,0x58, 0x4,0x51,0x4f, 0x2,0x58,0x57, + 0x2,0x58,0x5f, 0x2,0x58,0x59, 0x2,0x58,0x5e, 0x2,0x58,0x5b, + 0x1,0x71,0x4a, 0x2,0x58,0x5d, 0x3,0x51,0x73, 0x3,0x51,0x72, + 0x1,0x71,0x4b, 0x4,0x51,0x4d, 0x1,0x71,0x4c, 0x3,0x51,0x74, + 0x2,0x58,0x5c, 0x2,0x58,0x5a, 0x4,0x57,0x21, 0x4,0x57,0x24, + 0x1,0x74,0x43, 0x2,0x5d,0x60, 0x3,0x55,0x55, 0x3,0x55,0x53, + 0x1,0x74,0x42, 0x2,0x5d,0x63, 0x2,0x5d,0x61, 0x2,0x5d,0x62, + 0x5,0x55,0x69, 0x5,0x5c,0x36, 0x1,0x74,0x44, 0x3,0x55,0x54, + 0x3,0x58,0x34, 0x2,0x62,0x3a, 0x3,0x58,0x33, 0x1,0x76,0x6b, + 0x2,0x62,0x3b, 0x4,0x5b,0x75, 0x4,0x5b,0x79, 0x1,0x76,0x69, + 0x2,0x62,0x3c, 0x1,0x76,0x6a, 0x2,0x62,0x39, 0x2,0x62,0x3d, + 0x3,0x58,0x32, 0x2,0x62,0x37, 0x1,0x78,0x52, 0x2,0x66,0x24, + 0x1,0x78,0x53, 0x1,0x79,0x7a, 0x2,0x62,0x38, 0x1,0x79,0x7b, + 0x3,0x5e,0x3f, 0x3,0x5e,0x3e, 0x1,0x7a,0x79, 0x2,0x6b,0x6d, + 0x1,0x7b,0x6a, 0x2,0x6d,0x62, 0x1,0x7b,0x69, 0x3,0x60,0x3b, + 0x2,0x6f,0x39, 0x1,0x7c,0x61, 0x1,0x7c,0x62, 0x3,0x65,0x6a, + 0x7,0x64,0x52, 0x2,0x72,0x3a, 0x3,0x22,0x5c, 0x3,0x65,0x6b, + 0x1,0x52,0x54, 0x2,0x2c,0x40, 0x1,0x60,0x74, 0x1,0x60,0x75, + 0x1,0x46,0x75, 0x1,0x48,0x4b, 0x2,0x22,0x67, 0x3,0x26,0x74, + 0x2,0x24,0x71, 0x1,0x4b,0x30, 0x3,0x26,0x76, 0x1,0x4e,0x7b, + 0x4,0x2a,0x4c, 0x1,0x52,0x55, 0x1,0x52,0x56, 0x1,0x52,0x57, + 0x2,0x37,0x49, 0x2,0x31,0x2e, 0x1,0x56,0x72, 0x4,0x2e,0x41, + 0x4,0x2e,0x43, 0x1,0x5c,0x33, 0x2,0x37,0x48, 0x3,0x37,0x4d, + 0x2,0x3e,0x3c, 0x1,0x60,0x77, 0x3,0x3d,0x4c, 0x2,0x3e,0x3b, + 0x1,0x60,0x76, 0x3,0x42,0x7e, 0x3,0x43,0x21, 0x2,0x45,0x3b, + 0x1,0x6d,0x73, 0x2,0x52,0x43, 0x2,0x52,0x40, 0x2,0x52,0x41, + 0x2,0x52,0x42, 0x4,0x51,0x54, 0x4,0x51,0x55, 0x3,0x51,0x76, + 0x5,0x5c,0x43, 0x3,0x55,0x56, 0x2,0x5d,0x64, 0x3,0x55,0x57, + 0x2,0x62,0x3e, 0x4,0x5b,0x7c, 0x4,0x5b,0x7d, 0x3,0x5a,0x5e, + 0x2,0x69,0x40, 0x2,0x69,0x3f, 0x4,0x66,0x5a, 0x2,0x6d,0x63, + 0x1,0x46,0x76, 0x2,0x28,0x37, 0x1,0x56,0x73, 0x3,0x3d,0x4d, + 0x1,0x60,0x78, 0x2,0x45,0x3c, 0x4,0x45,0x34, 0x3,0x48,0x30, + 0x2,0x4c,0x29, 0x3,0x48,0x2e, 0x1,0x6d,0x74, 0x2,0x58,0x60, + 0x3,0x65,0x6c, 0x2,0x62,0x3f, 0x2,0x69,0x41, 0x1,0x46,0x77, + 0x3,0x26,0x77, 0x3,0x26,0x78, 0x1,0x4e,0x7c, 0x1,0x52,0x5a, + 0x2,0x2c,0x41, 0x1,0x52,0x5b, 0x1,0x52,0x59, 0x3,0x2e,0x32, + 0x1,0x52,0x58, 0x2,0x31,0x2f, 0x1,0x56,0x74, 0x3,0x32,0x5a, + 0x3,0x32,0x5b, 0x1,0x56,0x75, 0x1,0x56,0x76, 0x1,0x5c,0x35, + 0x2,0x37,0x4a, 0x1,0x5c,0x34, 0x3,0x37,0x50, 0x3,0x37,0x52, + 0x3,0x37,0x51, 0xf,0x37,0x23, 0x3,0x3d,0x4f, 0x2,0x3e,0x3d, + 0x1,0x5c,0x36, 0x1,0x60,0x79, 0x2,0x45,0x3d, 0x1,0x65,0x40, + 0x1,0x65,0x41, 0x4,0x45,0x35, 0x1,0x69,0x70, 0x3,0x48,0x31, + 0x1,0x69,0x71, 0x1,0x6d,0x75, 0x1,0x71,0x4e, 0x2,0x58,0x61, + 0x1,0x71,0x4d, 0x4,0x57,0x2d, 0x2,0x5d,0x65, 0x1,0x74,0x45, + 0x3,0x58,0x35, 0x2,0x62,0x40, 0x2,0x69,0x42, 0x1,0x46,0x78, + 0x1,0x4b,0x31, 0x2,0x28,0x3a, 0x2,0x28,0x39, 0x1,0x4e,0x7d, + 0x2,0x28,0x38, 0x1,0x4e,0x7e, 0x2,0x28,0x3b, 0x4,0x2a,0x55, + 0x2,0x2c,0x47, 0x1,0x52,0x5e, 0x1,0x52,0x5d, 0x2,0x2c,0x49, + 0x2,0x2c,0x48, 0x1,0x52,0x62, 0x3,0x2e,0x35, 0x1,0x52,0x61, + 0x3,0x2e,0x33, 0x4,0x2a,0x59, 0x1,0x52,0x5c, 0x4,0x2a,0x5d, + 0x2,0x2c,0x43, 0x2,0x2c,0x44, 0x2,0x2c,0x45, 0x4,0x2a,0x52, + 0x1,0x52,0x63, 0x2,0x2c,0x42, 0x1,0x52,0x5f, 0x2,0x2c,0x46, + 0x1,0x52,0x60, 0x3,0x32,0x64, 0x3,0x32,0x5f, 0x2,0x31,0x32, + 0x2,0x31,0x36, 0x2,0x31,0x34, 0x2,0x31,0x33, 0x4,0x2e,0x55, + 0x2,0x31,0x37, 0x3,0x32,0x5e, 0x4,0x2e,0x4f, 0x3,0x32,0x68, + 0x2,0x31,0x38, 0x2,0x31,0x39, 0x2,0x31,0x31, 0x4,0x2e,0x51, + 0x2,0x31,0x30, 0x3,0x37,0x59, 0x1,0x56,0x78, 0x1,0x56,0x79, + 0x3,0x32,0x67, 0x2,0x31,0x3a, 0x2,0x31,0x35, 0x3,0x32,0x65, + 0x2,0x37,0x53, 0x3,0x37,0x55, 0x2,0x31,0x3b, 0x1,0x56,0x7a, + 0x1,0x56,0x77, 0x3,0x32,0x5c, 0x3,0x32,0x63, 0x2,0x37,0x4d, + 0x4,0x33,0x4f, 0x2,0x37,0x4c, 0x3,0x37,0x53, 0x2,0x37,0x4e, + 0x2,0x37,0x4f, 0x2,0x37,0x51, 0x2,0x37,0x50, 0x2,0x37,0x55, + 0x1,0x5c,0x3a, 0x1,0x5c,0x37, 0x1,0x5c,0x3b, 0x2,0x37,0x4b, + 0x1,0x5c,0x3c, 0x2,0x37,0x54, 0x1,0x5c,0x39, 0x2,0x37,0x52, + 0x1,0x5c,0x38, 0x3,0x32,0x62, 0x3,0x37,0x57, 0x4,0x33,0x56, + 0x3,0x3d,0x56, 0x3,0x3d,0x53, 0x2,0x3e,0x40, 0x2,0x3e,0x42, + 0x2,0x3e,0x3e, 0x2,0x3e,0x3f, 0x3,0x3d,0x51, 0x3,0x3d,0x52, + 0x2,0x3e,0x43, 0x2,0x3e,0x45, 0x2,0x3e,0x46, 0x2,0x3e,0x41, + 0x2,0x3e,0x44, 0x1,0x60,0x7a, 0x2,0x45,0x41, 0x3,0x43,0x27, + 0x2,0x45,0x46, 0x2,0x45,0x3e, 0x2,0x45,0x42, 0x4,0x3f,0x29, + 0x3,0x43,0x28, 0x2,0x45,0x47, 0x2,0x45,0x43, 0x1,0x65,0x42, + 0x1,0x65,0x4a, 0x3,0x43,0x25, 0x1,0x65,0x45, 0x2,0x45,0x3f, + 0x2,0x45,0x40, 0x1,0x69,0x75, 0x1,0x65,0x4d, 0x1,0x65,0x46, + 0x3,0x43,0x26, 0x1,0x65,0x4b, 0x1,0x65,0x44, 0x2,0x45,0x45, + 0x1,0x65,0x4c, 0x2,0x45,0x44, 0x1,0x65,0x48, 0x1,0x65,0x43, + 0x1,0x65,0x49, 0x2,0x45,0x48, 0x2,0x4c,0x2e, 0x2,0x4c,0x30, + 0x4,0x45,0x42, 0x3,0x48,0x39, 0x4,0x45,0x40, 0x4,0x45,0x3d, + 0x3,0x48,0x33, 0x3,0x48,0x36, 0x3,0x48,0x35, 0x3,0x48,0x34, + 0x3,0x48,0x38, 0x1,0x65,0x47, 0x3,0x48,0x3b, 0x3,0x48,0x3d, + 0x2,0x4c,0x2b, 0x1,0x69,0x73, 0x2,0x4c,0x31, 0x1,0x69,0x74, + 0x2,0x4c,0x2f, 0x2,0x4c,0x2a, 0x2,0x4c,0x2d, 0x2,0x4c,0x32, + 0x1,0x69,0x72, 0x2,0x4c,0x2c, 0x1,0x6d,0x77, 0x2,0x52,0x47, + 0x2,0x52,0x46, 0x3,0x4d,0x44, 0x1,0x6d,0x7a, 0x1,0x6d,0x78, + 0x2,0x52,0x44, 0x1,0x6d,0x76, 0x2,0x52,0x45, 0x3,0x4d,0x46, + 0x1,0x6d,0x79, 0x4,0x51,0x5f, 0x2,0x58,0x69, 0x3,0x51,0x7b, + 0x2,0x58,0x6b, 0x3,0x51,0x79, 0x2,0x58,0x6a, 0x2,0x58,0x62, + 0x2,0x58,0x66, 0x2,0x58,0x65, 0x2,0x58,0x63, 0x1,0x71,0x50, + 0x1,0x71,0x51, 0x1,0x71,0x4f, 0x2,0x58,0x64, 0x2,0x58,0x67, + 0x2,0x58,0x68, 0x3,0x55,0x59, 0x1,0x71,0x52, 0x3,0x55,0x58, + 0x1,0x74,0x4a, 0x2,0x5d,0x6d, 0x3,0x55,0x5b, 0x1,0x74,0x47, + 0x2,0x5d,0x67, 0x1,0x74,0x49, 0x1,0x74,0x4b, 0x4,0x51,0x61, + 0x3,0x55,0x5c, 0x1,0x74,0x48, 0x2,0x5d,0x6c, 0x2,0x5d,0x68, + 0x1,0x74,0x46, 0x2,0x5d,0x6b, 0x2,0x5d,0x66, 0x2,0x5d,0x6a, + 0x2,0x5d,0x69, 0x3,0x58,0x36, 0x3,0x58,0x38, 0x2,0x62,0x42, + 0x1,0x76,0x6e, 0x1,0x76,0x6f, 0x1,0x76,0x6c, 0x3,0x58,0x3b, + 0x1,0x76,0x6d, 0x3,0x58,0x3a, 0x3,0x58,0x39, 0x2,0x62,0x41, + 0x4,0x60,0x39, 0x2,0x66,0x27, 0x3,0x5a,0x60, 0x3,0x5a,0x5f, + 0x1,0x78,0x54, 0x2,0x66,0x25, 0x2,0x66,0x26, 0x2,0x69,0x43, + 0x2,0x69,0x46, 0x2,0x69,0x44, 0x2,0x69,0x45, 0x2,0x6b,0x6e, + 0x3,0x5e,0x42, 0x4,0x66,0x5e, 0x1,0x7a,0x7a, 0x2,0x6f,0x3a, + 0x2,0x70,0x42, 0x4,0x6b,0x74, 0x1,0x7c,0x63, 0x2,0x71,0x28, + 0x2,0x71,0x29, 0x1,0x7d,0x33, 0x1,0x46,0x79, 0x1,0x52,0x64, + 0x3,0x32,0x69, 0x2,0x3e,0x47, 0x3,0x3d,0x57, 0x2,0x45,0x49, + 0x4,0x6c,0x76, 0x1,0x46,0x7a, 0x1,0x4b,0x32, 0x4,0x27,0x52, + 0x1,0x4f,0x21, 0x3,0x2e,0x36, 0x2,0x2c,0x4a, 0x2,0x2c,0x4b, + 0x1,0x56,0x7b, 0x4,0x33,0x5b, 0x2,0x3e,0x48, 0x1,0x60,0x7b, + 0x1,0x65,0x4e, 0x1,0x74,0x4c, 0x2,0x5d,0x6e, 0x2,0x66,0x28, + 0x2,0x69,0x47, 0x1,0x46,0x7b, 0x3,0x26,0x7b, 0x3,0x26,0x7c, + 0xf,0x25,0x23, 0x2,0x28,0x41, 0x2,0x28,0x3c, 0x2,0x28,0x3e, + 0x2,0x28,0x40, 0x2,0x28,0x3f, 0x2,0x28,0x3d, 0x1,0x4f,0x22, + 0xf,0x28,0x34, 0x1,0x52,0x65, 0x2,0x2c,0x54, 0x3,0x2e,0x39, + 0x2,0x2c,0x4f, 0x2,0x2c,0x4c, 0x3,0x2e,0x3b, 0x3,0x2e,0x3e, + 0x2,0x2c,0x53, 0x3,0x2e,0x37, 0x3,0x2e,0x3a, 0x1,0x52,0x67, + 0x1,0x52,0x68, 0x2,0x2c,0x52, 0x2,0x2c,0x51, 0x2,0x2c,0x50, + 0x2,0x2c,0x4d, 0x2,0x2c,0x4e, 0x2,0x2c,0x55, 0x1,0x52,0x66, + 0x3,0x2e,0x3d, 0xf,0x2c,0x5c, 0x3,0x65,0x6d, 0x3,0x65,0x6e, + 0x1,0x57,0x21, 0x3,0x66,0x7c, 0x1,0x57,0x27, 0x1,0x57,0x26, + 0x2,0x31,0x44, 0x2,0x31,0x3e, 0x2,0x31,0x3c, 0x3,0x32,0x6c, + 0x1,0x57,0x24, 0x2,0x37,0x5c, 0x1,0x56,0x7d, 0x2,0x31,0x41, + 0x2,0x31,0x45, 0x2,0x31,0x47, 0x2,0x31,0x43, 0x2,0x31,0x3d, + 0x1,0x57,0x25, 0x2,0x31,0x42, 0x2,0x31,0x40, 0x1,0x56,0x7c, + 0x2,0x31,0x48, 0x1,0x57,0x28, 0x2,0x31,0x46, 0x1,0x57,0x22, + 0x2,0x31,0x3f, 0x3,0x32,0x6d, 0x1,0x57,0x23, 0x1,0x56,0x7e, + 0x3,0x65,0x6f, 0x3,0x37,0x62, 0x1,0x5c,0x3e, 0x4,0x33,0x5d, + 0x2,0x37,0x5d, 0x3,0x37,0x63, 0x3,0x37,0x5d, 0x2,0x37,0x56, + 0x2,0x37,0x58, 0x2,0x37,0x5a, 0x3,0x37,0x5f, 0x2,0x37,0x5b, + 0x2,0x37,0x59, 0x1,0x5c,0x3f, 0x3,0x37,0x61, 0x2,0x37,0x5e, + 0x3,0x37,0x60, 0x2,0x37,0x57, 0x3,0x65,0x70, 0x3,0x65,0x71, + 0x3,0x65,0x72, 0x2,0x3e,0x4c, 0x1,0x60,0x7c, 0x2,0x3e,0x54, + 0x3,0x3d,0x5c, 0x2,0x3e,0x49, 0x6,0x4c,0x2f, 0x2,0x3e,0x55, + 0x3,0x3d,0x59, 0x2,0x3e,0x4a, 0x2,0x3e,0x4b, 0x3,0x3d,0x5d, + 0x4,0x39,0x54, 0x2,0x3e,0x53, 0x2,0x3e,0x52, 0x2,0x3e,0x4f, + 0x1,0x5c,0x3d, 0x1,0x60,0x7d, 0x2,0x3e,0x4d, 0x2,0x3e,0x50, + 0x1,0x60,0x7e, 0x2,0x3e,0x51, 0x2,0x3e,0x4e, 0x3,0x3d,0x5a, + 0x3,0x43,0x31, 0x2,0x45,0x54, 0x3,0x43,0x2d, 0x2,0x45,0x58, + 0x1,0x65,0x55, 0x3,0x43,0x2e, 0x2,0x4c,0x38, 0x1,0x65,0x58, + 0x2,0x45,0x56, 0x3,0x43,0x37, 0x3,0x43,0x29, 0x2,0x45,0x53, + 0x2,0x45,0x4e, 0x2,0x45,0x50, 0x2,0x45,0x51, 0x2,0x45,0x4a, + 0x3,0x43,0x35, 0x1,0x65,0x54, 0x3,0x43,0x2b, 0x3,0x43,0x30, + 0x1,0x65,0x53, 0x3,0x43,0x34, 0x1,0x65,0x4f, 0x2,0x45,0x4d, + 0x3,0x43,0x2a, 0x1,0x65,0x56, 0x3,0x43,0x36, 0x1,0x65,0x57, + 0x2,0x45,0x4c, 0x2,0x45,0x4f, 0x2,0x45,0x57, 0x1,0x65,0x51, + 0x1,0x65,0x52, 0x2,0x45,0x55, 0x2,0x45,0x4b, 0xf,0x44,0x25, + 0x4,0x45,0x53, 0x2,0x4c,0x3a, 0x1,0x69,0x77, 0x2,0x4c,0x3c, + 0x2,0x45,0x52, 0x2,0x4c,0x3e, 0x1,0x69,0x7b, 0x2,0x4c,0x3f, + 0x2,0x4c,0x3b, 0x3,0x48,0x3e, 0x1,0x69,0x78, 0x2,0x4c,0x37, + 0x1,0x69,0x7a, 0x2,0x4c,0x34, 0x2,0x4c,0x39, 0x2,0x4c,0x3d, + 0x2,0x4c,0x36, 0x3,0x48,0x3f, 0x3,0x48,0x45, 0x1,0x65,0x50, + 0x3,0x48,0x44, 0x2,0x4c,0x33, 0x1,0x69,0x79, 0x2,0x4c,0x35, + 0x3,0x65,0x73, 0x3,0x48,0x40, 0xf,0x4a,0x3f, 0x1,0x6d,0x7d, + 0x2,0x52,0x49, 0x1,0x6e,0x23, 0x4,0x4b,0x59, 0x1,0x6e,0x21, + 0x4,0x4b,0x57, 0x3,0x4d,0x4a, 0x1,0x69,0x76, 0x3,0x4d,0x4d, + 0x2,0x52,0x50, 0x2,0x52,0x51, 0x1,0x6d,0x7c, 0x3,0x4d,0x48, + 0x3,0x4d,0x4c, 0x2,0x52,0x4f, 0x2,0x52,0x52, 0x1,0x6d,0x7e, + 0x1,0x6d,0x7b, 0x2,0x52,0x4b, 0x2,0x52,0x48, 0x2,0x52,0x4d, + 0x2,0x52,0x4a, 0x1,0x6e,0x24, 0x2,0x52,0x4c, 0x3,0x4d,0x4b, + 0x3,0x4d,0x49, 0x2,0x52,0x4e, 0x1,0x6e,0x22, 0x3,0x52,0x21, + 0x3,0x65,0x74, 0x1,0x71,0x54, 0x2,0x58,0x72, 0x3,0x52,0x24, + 0x2,0x58,0x6c, 0x2,0x58,0x70, 0x2,0x58,0x76, 0x2,0x58,0x77, + 0x2,0x58,0x73, 0x2,0x58,0x74, 0x2,0x58,0x71, 0x4,0x4b,0x5d, + 0x2,0x58,0x6e, 0x4,0x51,0x6e, 0x1,0x71,0x56, 0x1,0x71,0x53, + 0x2,0x58,0x6d, 0x2,0x58,0x6f, 0x3,0x52,0x22, 0x1,0x71,0x55, + 0x2,0x58,0x75, 0x3,0x65,0x75, 0x1,0x74,0x50, 0x3,0x55,0x60, + 0x3,0x55,0x62, 0x2,0x5d,0x75, 0x2,0x5d,0x6f, 0x1,0x74,0x4f, + 0x4,0x57,0x3e, 0x1,0x74,0x4d, 0x3,0x55,0x61, 0x2,0x5d,0x77, + 0x1,0x74,0x4e, 0x2,0x5d,0x72, 0x2,0x5d,0x73, 0x2,0x5d,0x70, + 0x2,0x5d,0x78, 0x2,0x5d,0x74, 0x4,0x57,0x40, 0x1,0x74,0x51, + 0x2,0x5d,0x71, 0x2,0x5d,0x79, 0x2,0x5d,0x76, 0x3,0x58,0x43, + 0x3,0x58,0x3e, 0x3,0x58,0x40, 0x2,0x62,0x46, 0x3,0x58,0x3f, + 0x3,0x58,0x3c, 0x2,0x62,0x43, 0x3,0x58,0x42, 0x1,0x76,0x70, + 0x4,0x5c,0x32, 0x2,0x62,0x47, 0x2,0x62,0x49, 0x2,0x62,0x48, + 0x2,0x62,0x44, 0x2,0x62,0x45, 0x3,0x58,0x44, 0x2,0x66,0x2d, + 0x3,0x5a,0x61, 0x1,0x78,0x55, 0x3,0x5a,0x62, 0x2,0x66,0x2a, + 0x2,0x66,0x2c, 0x2,0x66,0x29, 0x2,0x66,0x2e, 0x4,0x60,0x42, + 0x3,0x5a,0x63, 0x2,0x66,0x2b, 0x3,0x65,0x76, 0x2,0x69,0x49, + 0x2,0x69,0x4c, 0x2,0x69,0x48, 0x1,0x79,0x7c, 0x2,0x69,0x4a, + 0x2,0x69,0x4b, 0x2,0x69,0x4d, 0x1,0x79,0x7d, 0x1,0x7a,0x21, + 0x1,0x79,0x7e, 0x2,0x6b,0x6f, 0x3,0x5e,0x45, 0x2,0x6b,0x71, + 0x3,0x5e,0x43, 0x2,0x6b,0x70, 0x3,0x5e,0x44, 0x2,0x6d,0x64, + 0xf,0x6a,0x66, 0x3,0x60,0x3c, 0x2,0x70,0x43, 0x2,0x71,0x2a, + 0x1,0x46,0x7c, 0x3,0x24,0x33, 0x2,0x24,0x72, 0x1,0x4f,0x23, + 0x2,0x28,0x43, 0x1,0x4f,0x24, 0x1,0x4f,0x25, 0x2,0x28,0x42, + 0x2,0x2c,0x5a, 0x2,0x2c,0x59, 0x1,0x52,0x69, 0x1,0x52,0x6c, + 0x1,0x52,0x6b, 0x1,0x52,0x6a, 0x2,0x2c,0x56, 0x2,0x2c,0x58, + 0x2,0x2c,0x57, 0x3,0x65,0x77, 0x2,0x31,0x4b, 0x1,0x57,0x2a, + 0x2,0x31,0x4f, 0x2,0x31,0x4e, 0x2,0x31,0x4d, 0x2,0x31,0x49, + 0x1,0x57,0x29, 0x1,0x57,0x2d, 0x1,0x57,0x30, 0x3,0x32,0x6f, + 0x3,0x32,0x70, 0x1,0x57,0x31, 0x2,0x31,0x4a, 0x2,0x31,0x4c, + 0x1,0x57,0x2f, 0x1,0x57,0x2e, 0x1,0x57,0x2c, 0x1,0x57,0x2b, + 0x2,0x37,0x65, 0x3,0x32,0x72, 0x2,0x37,0x63, 0x2,0x37,0x5f, + 0x1,0x5c,0x40, 0x3,0x3d,0x5e, 0x2,0x37,0x60, 0x1,0x5c,0x41, + 0x2,0x37,0x61, 0x2,0x37,0x62, 0x2,0x37,0x64, 0x3,0x37,0x66, + 0x1,0x5c,0x42, 0x3,0x37,0x65, 0x2,0x3e,0x59, 0x3,0x3d,0x5f, + 0x2,0x3e,0x58, 0x2,0x3e,0x57, 0x2,0x3e,0x56, 0x3,0x3d,0x64, + 0x3,0x3d,0x62, 0x4,0x39,0x5a, 0x2,0x45,0x5c, 0x1,0x65,0x59, + 0x4,0x3f,0x46, 0x2,0x45,0x59, 0x2,0x45,0x5b, 0x3,0x43,0x38, + 0x1,0x65,0x5a, 0x3,0x43,0x3d, 0x1,0x65,0x5b, 0x2,0x45,0x5a, + 0x3,0x43,0x39, 0x3,0x3d,0x63, 0x3,0x65,0x78, 0x3,0x48,0x48, + 0x2,0x4c,0x48, 0x3,0x48,0x47, 0x2,0x4c,0x41, 0x2,0x4c,0x42, + 0x5,0x47,0x7e, 0x1,0x69,0x7e, 0x1,0x69,0x7c, 0x1,0x69,0x7d, + 0x2,0x4c,0x4a, 0x5,0x48,0x22, 0x2,0x4c,0x49, 0x2,0x4c,0x46, + 0x2,0x4c,0x45, 0x2,0x4c,0x44, 0x2,0x4c,0x43, 0x2,0x4c,0x47, + 0x2,0x4c,0x40, 0x3,0x65,0x79, 0x2,0x52,0x53, 0x2,0x52,0x58, + 0x2,0x52,0x56, 0x3,0x4d,0x50, 0x3,0x4d,0x51, 0x3,0x4d,0x4f, + 0x2,0x52,0x55, 0x2,0x52,0x54, 0x2,0x52,0x57, 0x3,0x65,0x7a, + 0x2,0x58,0x78, 0x3,0x52,0x26, 0x1,0x71,0x57, 0x1,0x74,0x52, + 0x2,0x5d,0x7b, 0x3,0x52,0x27, 0x1,0x74,0x53, 0x2,0x5d,0x7a, + 0x2,0x62,0x4b, 0x2,0x62,0x4a, 0x1,0x76,0x71, 0x3,0x58,0x45, + 0x2,0x66,0x2f, 0x1,0x78,0x56, 0x2,0x69,0x4e, 0x1,0x7b,0x6b, + 0x2,0x6d,0x65, 0x3,0x60,0x3d, 0x2,0x70,0x45, 0x2,0x70,0x44, + 0x2,0x21,0x67, 0x1,0x52,0x6d, 0x1,0x52,0x6e, 0x2,0x37,0x66, + 0x3,0x65,0x7b, 0x1,0x65,0x5d, 0x1,0x46,0x7d, 0x1,0x4b,0x35, + 0x1,0x4b,0x34, 0x1,0x4b,0x33, 0x4,0x24,0x68, 0x3,0x2a,0x3e, + 0x3,0x2a,0x3d, 0x2,0x28,0x44, 0x3,0x2a,0x3f, 0x3,0x2a,0x42, + 0x1,0x4f,0x27, 0x1,0x4f,0x26, 0x3,0x2a,0x44, 0x1,0x52,0x71, + 0x3,0x65,0x4c, 0x2,0x2c,0x5c, 0x2,0x2c,0x5f, 0x2,0x2c,0x5d, + 0x3,0x2e,0x42, 0x1,0x52,0x6f, 0x1,0x52,0x70, 0x3,0x2e,0x40, + 0x3,0x2e,0x41, 0x2,0x2c,0x5b, 0x2,0x2c,0x5e, 0x3,0x2e,0x43, + 0x1,0x57,0x38, 0x3,0x32,0x74, 0x3,0x32,0x73, 0x3,0x32,0x79, + 0x2,0x31,0x56, 0x2,0x31,0x58, 0x2,0x31,0x57, 0x1,0x57,0x35, + 0x2,0x31,0x52, 0x3,0x32,0x76, 0x3,0x32,0x7b, 0x1,0x57,0x33, + 0x1,0x57,0x32, 0x3,0x32,0x77, 0x1,0x57,0x36, 0x1,0x57,0x34, + 0x3,0x32,0x78, 0x1,0x57,0x37, 0x2,0x31,0x55, 0x2,0x31,0x50, + 0x2,0x31,0x51, 0x2,0x31,0x54, 0x2,0x31,0x53, 0x3,0x32,0x7c, + 0x3,0x37,0x69, 0x3,0x37,0x67, 0x3,0x37,0x6b, 0x3,0x37,0x6a, + 0x2,0x37,0x69, 0x2,0x37,0x6a, 0x2,0x37,0x68, 0x3,0x37,0x6c, + 0x2,0x37,0x67, 0x1,0x5c,0x43, 0xf,0x37,0x3f, 0x3,0x3d,0x65, + 0x1,0x61,0x25, 0x6,0x4c,0x48, 0x2,0x3e,0x5a, 0x2,0x3e,0x5c, + 0x2,0x3e,0x5e, 0x1,0x61,0x24, 0x6,0x4c,0x43, 0x3,0x3d,0x66, + 0x1,0x61,0x22, 0x3,0x3d,0x69, 0x2,0x3e,0x5b, 0x1,0x61,0x23, + 0x2,0x3e,0x5d, 0x1,0x61,0x21, 0x3,0x3d,0x68, 0x3,0x43,0x41, + 0x2,0x45,0x66, 0x2,0x45,0x5d, 0x2,0x45,0x60, 0x2,0x45,0x64, + 0x1,0x65,0x61, 0x2,0x45,0x62, 0x4,0x3f,0x50, 0x2,0x45,0x61, + 0x2,0x45,0x5e, 0x2,0x45,0x5f, 0x1,0x65,0x5f, 0x2,0x45,0x65, + 0x1,0x65,0x5e, 0x3,0x43,0x44, 0x1,0x65,0x63, 0x1,0x65,0x62, + 0x1,0x65,0x60, 0x4,0x3f,0x4a, 0x2,0x45,0x63, 0x3,0x65,0x24, + 0x2,0x4c,0x50, 0x4,0x45,0x5d, 0x2,0x4c,0x4f, 0x3,0x48,0x4b, + 0x3,0x48,0x4d, 0x2,0x4c,0x4b, 0x3,0x48,0x50, 0x3,0x48,0x4f, + 0x1,0x6a,0x21, 0x2,0x4c,0x4e, 0x2,0x4c,0x4d, 0x1,0x6a,0x22, + 0x3,0x48,0x52, 0xf,0x4a,0x64, 0x4,0x4b,0x63, 0x4,0x45,0x5e, + 0x4,0x4b,0x6b, 0x1,0x6e,0x29, 0x3,0x4d,0x55, 0x2,0x52,0x5a, + 0x3,0x4d,0x56, 0x1,0x6e,0x2a, 0x1,0x6e,0x26, 0x1,0x6e,0x28, + 0x3,0x4d,0x5a, 0x1,0x6e,0x25, 0x1,0x6e,0x27, 0x3,0x4d,0x53, + 0x3,0x4d,0x57, 0x2,0x58,0x79, 0x3,0x52,0x2a, 0x1,0x71,0x5a, + 0x2,0x58,0x7b, 0x2,0x58,0x7a, 0x3,0x55,0x64, 0x2,0x4c,0x4c, + 0x1,0x71,0x5c, 0x1,0x71,0x5b, 0x1,0x71,0x58, 0x1,0x71,0x59, + 0x3,0x52,0x2c, 0xf,0x5b,0x59, 0x3,0x52,0x29, 0x2,0x5e,0x22, + 0x4,0x57,0x49, 0x2,0x5d,0x7e, 0x1,0x74,0x54, 0x2,0x5e,0x21, + 0x4,0x57,0x48, 0x2,0x5e,0x23, 0x2,0x5d,0x7d, 0x2,0x5d,0x7c, + 0x2,0x62,0x4c, 0x1,0x76,0x74, 0x1,0x76,0x72, 0x1,0x76,0x73, + 0x3,0x5a,0x66, 0x4,0x60,0x45, 0x3,0x5a,0x65, 0x2,0x66,0x30, + 0x2,0x66,0x31, 0x1,0x78,0x58, 0x3,0x5a,0x67, 0x1,0x78,0x57, + 0x2,0x69,0x50, 0x2,0x69,0x51, 0x2,0x69,0x4f, 0x3,0x5c,0x64, + 0x2,0x6d,0x66, 0x2,0x6d,0x67, 0x3,0x60,0x76, 0x3,0x60,0x77, + 0x1,0x46,0x7e, 0x2,0x22,0x68, 0x1,0x4b,0x36, 0x2,0x28,0x45, + 0x1,0x4f,0x29, 0x1,0x4f,0x28, 0x2,0x28,0x46, 0x3,0x2e,0x44, + 0x3,0x2e,0x47, 0x2,0x2c,0x61, 0x1,0x52,0x72, 0x2,0x2c,0x60, + 0x1,0x52,0x73, 0x3,0x2e,0x49, 0x3,0x2e,0x48, 0x1,0x57,0x39, + 0x2,0x31,0x5b, 0x2,0x31,0x59, 0x2,0x31,0x5f, 0x1,0x57,0x3a, + 0x2,0x31,0x5a, 0x2,0x31,0x5e, 0x2,0x31,0x5c, 0x2,0x31,0x5d, + 0x2,0x37,0x6b, 0x2,0x37,0x6d, 0x3,0x37,0x72, 0x1,0x5c,0x44, + 0x3,0x37,0x71, 0x2,0x37,0x6c, 0x1,0x5c,0x45, 0x1,0x61,0x28, + 0x1,0x61,0x27, 0x1,0x61,0x26, 0x2,0x3e,0x5f, 0x3,0x37,0x70, + 0x4,0x39,0x65, 0x2,0x45,0x69, 0x1,0x65,0x64, 0x1,0x65,0x65, + 0x3,0x43,0x46, 0x2,0x45,0x68, 0x2,0x45,0x67, 0x3,0x43,0x47, + 0x3,0x65,0x7c, 0x2,0x4c,0x51, 0x1,0x6a,0x24, 0x1,0x6a,0x23, + 0x2,0x4c,0x52, 0x2,0x4c,0x53, 0x1,0x6e,0x2c, 0x1,0x6e,0x2b, + 0x3,0x4d,0x5b, 0x2,0x59,0x21, 0x2,0x52,0x5b, 0x2,0x52,0x5d, + 0x2,0x52,0x5c, 0x2,0x58,0x7e, 0x2,0x58,0x7c, 0x2,0x59,0x22, + 0x2,0x58,0x7d, 0x5,0x56,0x52, 0x1,0x71,0x5d, 0x3,0x52,0x2f, + 0x4,0x52,0x27, 0x3,0x52,0x2e, 0x2,0x5e,0x24, 0x1,0x74,0x55, + 0x2,0x5e,0x25, 0x2,0x5e,0x26, 0x3,0x55,0x68, 0x1,0x76,0x75, + 0x1,0x76,0x76, 0x4,0x60,0x4b, 0x1,0x7a,0x22, 0x3,0x5e,0x49, + 0x3,0x5e,0x48, 0x1,0x7c,0x3d, 0x1,0x47,0x21, 0x3,0x26,0x7e, + 0x3,0x27,0x21, 0x4,0x27,0x5b, 0x3,0x2a,0x47, 0x3,0x2e,0x4e, + 0x2,0x2c,0x62, 0x3,0x2e,0x4f, 0x3,0x2e,0x4d, 0x3,0x2e,0x4b, + 0x3,0x2e,0x4c, 0xf,0x2c,0x76, 0x2,0x31,0x60, 0x1,0x57,0x3b, + 0x3,0x33,0x23, 0x3,0x33,0x26, 0x3,0x33,0x27, 0x3,0x33,0x24, + 0x1,0x5d,0x7e, 0x1,0x5d,0x7d, 0x3,0x37,0x73, 0x3,0x3d,0x71, + 0x1,0x61,0x2a, 0x2,0x3e,0x61, 0x1,0x61,0x29, 0x2,0x3e,0x60, + 0x3,0x3d,0x70, 0x4,0x3f,0x57, 0x3,0x43,0x49, 0x3,0x43,0x4a, + 0x2,0x45,0x6a, 0x3,0x48,0x54, 0x1,0x6a,0x25, 0x2,0x4c,0x54, + 0x1,0x6a,0x26, 0x3,0x48,0x55, 0x3,0x52,0x30, 0x3,0x55,0x69, + 0x3,0x55,0x6a, 0x4,0x57,0x50, 0x3,0x58,0x49, 0x1,0x7a,0x23, + 0x2,0x69,0x52, 0x3,0x5f,0x55, 0x1,0x48,0x4c, 0x1,0x4f,0x2a, + 0x2,0x28,0x47, 0x3,0x2e,0x51, 0x1,0x52,0x75, 0x3,0x2e,0x50, + 0x1,0x52,0x74, 0x2,0x2c,0x63, 0x2,0x2c,0x64, 0x2,0x31,0x62, + 0x2,0x31,0x64, 0x1,0x57,0x3c, 0x2,0x31,0x66, 0x2,0x31,0x69, + 0x2,0x31,0x67, 0x3,0x33,0x2b, 0x4,0x2e,0x71, 0x3,0x33,0x2a, + 0x2,0x31,0x68, 0x2,0x31,0x65, 0x2,0x31,0x61, 0x1,0x57,0x3d, + 0x2,0x31,0x6a, 0x2,0x31,0x63, 0x3,0x33,0x2c, 0x3,0x37,0x78, + 0x3,0x37,0x79, 0x2,0x37,0x76, 0x1,0x5c,0x4b, 0x2,0x38,0x21, + 0x1,0x5c,0x48, 0x3,0x37,0x77, 0x2,0x37,0x78, 0x1,0x5c,0x4c, + 0x3,0x37,0x7b, 0x1,0x5c,0x46, 0x3,0x37,0x76, 0x2,0x37,0x73, + 0x2,0x38,0x22, 0x2,0x37,0x74, 0x2,0x37,0x71, 0x1,0x5c,0x4a, + 0x4,0x33,0x7c, 0x1,0x5c,0x47, 0x4,0x33,0x7a, 0x2,0x37,0x77, + 0x2,0x37,0x7a, 0x1,0x5c,0x49, 0x2,0x37,0x7b, 0x1,0x5c,0x4d, + 0x2,0x37,0x7c, 0x2,0x37,0x72, 0x2,0x37,0x79, 0x2,0x37,0x7d, + 0x2,0x37,0x75, 0x2,0x37,0x70, 0x2,0x37,0x6e, 0x3,0x37,0x7a, + 0x3,0x65,0x7d, 0x2,0x37,0x7e, 0xf,0x37,0x4d, 0x2,0x37,0x6f, + 0xf,0x36,0x7e, 0x5,0x3b,0x24, 0x2,0x3e,0x68, 0x3,0x3d,0x7b, + 0x3,0x3d,0x78, 0x3,0x3d,0x75, 0x2,0x3e,0x64, 0x2,0x3e,0x6a, + 0x1,0x61,0x2d, 0x2,0x3e,0x63, 0x2,0x3e,0x65, 0x1,0x61,0x2b, + 0x2,0x3e,0x62, 0x1,0x61,0x32, 0x2,0x3e,0x66, 0x1,0x61,0x31, + 0x2,0x3e,0x67, 0x1,0x61,0x33, 0x1,0x61,0x2e, 0x1,0x61,0x34, + 0x1,0x61,0x2f, 0x3,0x3d,0x79, 0x1,0x61,0x30, 0x3,0x3d,0x72, + 0x1,0x61,0x2c, 0x3,0x3d,0x76, 0x2,0x3e,0x69, 0x3,0x65,0x7e, + 0x3,0x43,0x4f, 0x4,0x3f,0x67, 0x1,0x65,0x68, 0x2,0x45,0x75, + 0x3,0x43,0x4c, 0x2,0x45,0x78, 0x2,0x45,0x6c, 0x2,0x45,0x71, + 0x2,0x45,0x6b, 0x1,0x65,0x6a, 0x3,0x43,0x55, 0x2,0x45,0x6f, + 0x4,0x3f,0x5e, 0x3,0x43,0x4d, 0x3,0x3d,0x77, 0x2,0x45,0x6d, + 0x1,0x65,0x69, 0x3,0x43,0x54, 0x2,0x45,0x74, 0x2,0x45,0x73, + 0x2,0x45,0x70, 0x2,0x45,0x72, 0x2,0x45,0x6e, 0x1,0x6a,0x2a, + 0x2,0x45,0x77, 0x1,0x65,0x66, 0x2,0x45,0x76, 0x3,0x43,0x51, + 0xf,0x44,0x45, 0x3,0x48,0x56, 0x2,0x4c,0x64, 0x3,0x48,0x58, + 0x1,0x6a,0x31, 0x2,0x4c,0x5f, 0x3,0x48,0x60, 0x1,0x6a,0x30, + 0x2,0x4c,0x55, 0x4,0x45,0x6b, 0x2,0x4c,0x57, 0x1,0x6a,0x29, + 0x2,0x4c,0x5c, 0x2,0x4c,0x5b, 0x2,0x4c,0x5e, 0x1,0x6a,0x2e, + 0x2,0x4c,0x59, 0x2,0x4c,0x58, 0x3,0x48,0x5a, 0x3,0x48,0x5e, + 0x1,0x6a,0x2d, 0x1,0x6a,0x28, 0x2,0x4c,0x5a, 0x1,0x6a,0x2b, + 0x2,0x4c,0x60, 0x2,0x4c,0x62, 0x2,0x4c,0x5d, 0x2,0x4c,0x56, + 0x1,0x6a,0x2c, 0x3,0x48,0x57, 0x3,0x48,0x5d, 0x1,0x6e,0x34, + 0x1,0x6a,0x27, 0x4,0x45,0x64, 0x3,0x48,0x5c, 0x2,0x4c,0x63, + 0x4,0x45,0x70, 0x2,0x52,0x61, 0x1,0x6e,0x2d, 0x3,0x4d,0x5c, + 0x2,0x52,0x63, 0x4,0x4c,0x2b, 0x1,0x6e,0x2e, 0x3,0x4d,0x65, + 0x3,0x4d,0x5d, 0x1,0x6e,0x30, 0x2,0x52,0x66, 0x4,0x4b,0x7a, + 0x2,0x52,0x5e, 0x1,0x6a,0x2f, 0x2,0x52,0x64, 0x4,0x4b,0x73, + 0x4,0x4c,0x31, 0x4,0x4b,0x74, 0x4,0x4c,0x2a, 0x2,0x52,0x60, + 0x3,0x4d,0x60, 0x1,0x65,0x67, 0x1,0x6e,0x33, 0x4,0x4c,0x21, + 0x4,0x4b,0x78, 0x1,0x6e,0x2f, 0x4,0x4c,0x26, 0x1,0x6e,0x31, + 0x1,0x6e,0x32, 0x4,0x4b,0x76, 0x1,0x71,0x60, 0x2,0x52,0x65, + 0x2,0x52,0x5f, 0x1,0x6e,0x35, 0x3,0x4d,0x63, 0x2,0x52,0x62, + 0x3,0x66,0x21, 0x2,0x59,0x2c, 0x2,0x59,0x27, 0x4,0x52,0x2d, + 0x5,0x56,0x69, 0x2,0x59,0x31, 0x1,0x71,0x5e, 0x2,0x59,0x29, + 0x1,0x71,0x62, 0x2,0x59,0x2f, 0x2,0x59,0x26, 0x2,0x59,0x23, + 0x2,0x59,0x32, 0x1,0x74,0x5b, 0x1,0x71,0x63, 0x2,0x59,0x2e, + 0x2,0x59,0x24, 0x1,0x71,0x61, 0x2,0x59,0x28, 0x1,0x71,0x65, + 0x2,0x59,0x25, 0x2,0x59,0x2a, 0x1,0x71,0x64, 0x2,0x59,0x2d, + 0x2,0x59,0x30, 0x3,0x52,0x33, 0x3,0x52,0x34, 0x2,0x5e,0x38, + 0x2,0x5e,0x39, 0x2,0x5e,0x29, 0x2,0x5e,0x30, 0x2,0x5e,0x2e, + 0x4,0x57,0x5f, 0x3,0x55,0x6d, 0x1,0x74,0x59, 0x2,0x5e,0x35, + 0x2,0x59,0x2b, 0x3,0x55,0x6b, 0x2,0x5e,0x2c, 0x3,0x55,0x6e, + 0x2,0x5e,0x36, 0x1,0x74,0x58, 0x2,0x5e,0x2b, 0x2,0x5e,0x2a, + 0x2,0x5e,0x34, 0x2,0x5e,0x31, 0x2,0x5e,0x33, 0x4,0x57,0x54, + 0x2,0x5e,0x27, 0x2,0x5e,0x37, 0x1,0x74,0x56, 0x3,0x55,0x70, + 0x2,0x5e,0x32, 0x2,0x5e,0x3b, 0x2,0x5e,0x2f, 0x1,0x74,0x5a, + 0x1,0x74,0x57, 0x2,0x5e,0x2d, 0x2,0x5e,0x28, 0x2,0x5e,0x3a, + 0x1,0x71,0x5f, 0x3,0x55,0x71, 0xf,0x5b,0x5f, 0x4,0x57,0x57, + 0x3,0x55,0x6f, 0x2,0x62,0x4f, 0x3,0x58,0x50, 0x3,0x58,0x4e, + 0x2,0x62,0x4d, 0x2,0x62,0x53, 0x1,0x76,0x7a, 0x2,0x62,0x51, + 0x2,0x62,0x50, 0x1,0x76,0x7c, 0x2,0x62,0x56, 0x1,0x76,0x7b, + 0x3,0x58,0x51, 0x2,0x62,0x57, 0x2,0x62,0x54, 0x1,0x76,0x78, + 0x2,0x62,0x55, 0x2,0x62,0x4e, 0x1,0x76,0x79, 0x1,0x76,0x77, + 0x2,0x66,0x35, 0x2,0x62,0x52, 0x3,0x58,0x4c, 0x3,0x66,0x22, + 0x2,0x62,0x58, 0x3,0x66,0x23, 0x2,0x66,0x32, 0x3,0x5a,0x6f, + 0x3,0x5a,0x6e, 0x4,0x60,0x4e, 0x1,0x78,0x5d, 0x1,0x78,0x5b, + 0x2,0x66,0x34, 0x4,0x60,0x4c, 0x2,0x66,0x36, 0x2,0x66,0x33, + 0x1,0x78,0x5c, 0x1,0x78,0x59, 0x1,0x78,0x5a, 0x1,0x78,0x5e, + 0x3,0x66,0x24, 0x1,0x7a,0x25, 0x3,0x5c,0x66, 0x2,0x69,0x57, + 0x5,0x6c,0x79, 0x2,0x69,0x56, 0x2,0x69,0x54, 0x2,0x69,0x53, + 0x2,0x69,0x55, 0x3,0x5c,0x65, 0x1,0x7a,0x24, 0x1,0x7a,0x26, + 0x3,0x66,0x25, 0xf,0x65,0x67, 0x1,0x7a,0x7b, 0x3,0x5e,0x4c, + 0x4,0x66,0x6f, 0x2,0x6b,0x73, 0x2,0x6b,0x72, 0x3,0x5c,0x67, + 0x3,0x5e,0x4b, 0x2,0x6d,0x68, 0x3,0x5f,0x58, 0x2,0x6d,0x6a, + 0x2,0x6d,0x6c, 0x2,0x6d,0x6b, 0x2,0x6d,0x69, 0x3,0x5f,0x57, + 0x3,0x60,0x3f, 0x1,0x7b,0x6d, 0x1,0x7b,0x6c, 0x3,0x60,0x3e, + 0x1,0x7c,0x3f, 0x1,0x7c,0x3e, 0x1,0x7c,0x40, 0x2,0x6f,0x3c, + 0x2,0x6f,0x3b, 0x3,0x66,0x26, 0x2,0x71,0x2b, 0x2,0x70,0x46, + 0x2,0x71,0x2c, 0x1,0x7d,0x25, 0x3,0x61,0x44, 0x1,0x7d,0x26, + 0x2,0x71,0x5c, 0x4,0x6d,0x5b, 0x3,0x62,0x3a, 0x1,0x7d,0x4b, + 0x1,0x48,0x4d, 0x3,0x2a,0x49, 0x2,0x28,0x48, 0x3,0x2a,0x48, + 0x3,0x2e,0x52, 0x2,0x2c,0x66, 0x2,0x2c,0x67, 0x2,0x2c,0x65, + 0x3,0x2e,0x54, 0x3,0x2e,0x53, 0x1,0x52,0x76, 0xf,0x2d,0x21, + 0x2,0x2c,0x68, 0x2,0x2c,0x69, 0x2,0x2c,0x6a, 0x3,0x33,0x31, + 0x2,0x31,0x6b, 0x2,0x31,0x71, 0x3,0x33,0x2e, 0x3,0x33,0x30, + 0x2,0x31,0x6f, 0x1,0x57,0x3e, 0x2,0x31,0x6d, 0x3,0x33,0x32, + 0x2,0x31,0x6e, 0x2,0x31,0x70, 0x3,0x33,0x2d, 0x2,0x31,0x6c, + 0x1,0x5c,0x4e, 0x3,0x37,0x7d, 0x2,0x38,0x23, 0x1,0x5c,0x50, + 0x2,0x38,0x25, 0x1,0x5c,0x4f, 0x2,0x38,0x24, 0x3,0x37,0x7e, + 0x3,0x38,0x21, 0x3,0x38,0x3e, 0x3,0x38,0x22, 0x4,0x34,0x22, + 0x2,0x3e,0x6c, 0x1,0x61,0x35, 0x3,0x3e,0x21, 0x2,0x3e,0x6e, + 0x2,0x3e,0x6b, 0x2,0x38,0x26, 0x3,0x3e,0x23, 0x1,0x61,0x36, + 0x3,0x3e,0x22, 0x3,0x3d,0x7e, 0x2,0x3e,0x6d, 0x3,0x66,0x27, + 0xf,0x3e,0x21, 0xf,0x3e,0x23, 0x3,0x43,0x58, 0x2,0x45,0x7b, + 0x3,0x43,0x5c, 0x1,0x65,0x6b, 0x2,0x45,0x79, 0x1,0x65,0x6c, + 0x2,0x45,0x7a, 0x1,0x65,0x6d, 0x4,0x45,0x74, 0x3,0x48,0x62, + 0x3,0x48,0x61, 0x1,0x6a,0x32, 0x2,0x4c,0x68, 0x2,0x4c,0x65, + 0x2,0x4c,0x67, 0x1,0x6a,0x33, 0x1,0x6a,0x34, 0x2,0x4c,0x66, + 0xf,0x4b,0x27, 0xf,0x4b,0x2b, 0x3,0x4d,0x6f, 0x3,0x4d,0x71, + 0x3,0x4d,0x6d, 0x2,0x52,0x67, 0x3,0x4d,0x70, 0x3,0x4d,0x73, + 0x2,0x52,0x68, 0x3,0x4d,0x72, 0x1,0x6e,0x36, 0x2,0x52,0x6a, + 0x2,0x52,0x69, 0x3,0x4d,0x6e, 0x1,0x23,0x23, 0x4,0x52,0x44, + 0x2,0x59,0x36, 0x2,0x59,0x37, 0x2,0x59,0x33, 0x3,0x52,0x37, + 0x2,0x59,0x34, 0x1,0x71,0x66, 0x1,0x71,0x67, 0x2,0x59,0x35, + 0x1,0x74,0x61, 0x3,0x55,0x75, 0x3,0x55,0x74, 0x1,0x74,0x5d, + 0x1,0x74,0x62, 0x1,0x74,0x5e, 0x1,0x74,0x60, 0x1,0x74,0x5c, + 0x3,0x52,0x39, 0x1,0x74,0x5f, 0x3,0x58,0x55, 0x4,0x5c,0x5a, + 0x4,0x5c,0x5b, 0x3,0x58,0x54, 0x1,0x76,0x7d, 0x2,0x5e,0x3c, + 0x7,0x48,0x57, 0x2,0x66,0x38, 0x4,0x60,0x5a, 0x2,0x66,0x37, + 0x3,0x66,0x28, 0x2,0x69,0x58, 0x1,0x7a,0x27, 0x1,0x7a,0x28, + 0x2,0x6d,0x6e, 0x2,0x6b,0x74, 0x3,0x61,0x69, 0x2,0x6d,0x6d, + 0x3,0x60,0x40, 0x2,0x71,0x2d, 0x2,0x71,0x72, 0x1,0x48,0x4e, + 0x3,0x27,0x22, 0x1,0x4b,0x37, 0x3,0x2a,0x4b, 0x2,0x28,0x49, + 0x1,0x4f,0x2b, 0x3,0x2a,0x4a, 0x1,0x52,0x79, 0x2,0x2c,0x6d, + 0x1,0x52,0x77, 0x2,0x2c,0x6b, 0x1,0x52,0x7c, 0x1,0x52,0x78, + 0x1,0x52,0x7d, 0x1,0x52,0x7b, 0x2,0x2c,0x6c, 0x1,0x52,0x7a, + 0x1,0x57,0x42, 0x1,0x57,0x41, 0x2,0x31,0x7c, 0x1,0x57,0x4a, + 0x2,0x31,0x75, 0x2,0x31,0x7b, 0x1,0x57,0x46, 0x2,0x31,0x74, + 0x2,0x31,0x7a, 0x2,0x31,0x78, 0x1,0x57,0x45, 0x1,0x57,0x47, + 0x2,0x31,0x77, 0x1,0x57,0x40, 0x2,0x31,0x76, 0x1,0x57,0x4b, + 0x1,0x57,0x48, 0x1,0x57,0x4c, 0x1,0x57,0x49, 0x2,0x31,0x73, + 0x2,0x31,0x72, 0x2,0x31,0x79, 0x1,0x57,0x43, 0x1,0x57,0x3f, + 0x1,0x57,0x44, 0x4,0x2f,0x25, 0x3,0x33,0x37, 0x3,0x33,0x3b, + 0x2,0x38,0x35, 0x2,0x38,0x2e, 0x4,0x3a,0x26, 0x1,0x61,0x3b, + 0x2,0x38,0x2d, 0x3,0x38,0x29, 0x1,0x5c,0x54, 0x1,0x5c,0x5b, + 0x1,0x5c,0x58, 0x1,0x5c,0x5e, 0x1,0x5c,0x5d, 0x1,0x5c,0x59, + 0x3,0x38,0x26, 0x2,0x38,0x27, 0x2,0x38,0x2a, 0x3,0x38,0x27, + 0x2,0x38,0x29, 0x1,0x5c,0x55, 0x2,0x38,0x2b, 0x2,0x38,0x34, + 0x1,0x5c,0x56, 0x2,0x38,0x28, 0x2,0x38,0x31, 0x2,0x38,0x32, + 0x1,0x5c,0x57, 0x2,0x38,0x2f, 0x1,0x5c,0x5c, 0x1,0x5c,0x52, + 0x1,0x5c,0x5a, 0x2,0x38,0x2c, 0x1,0x5c,0x51, 0x2,0x38,0x30, + 0x3,0x38,0x2e, 0x3,0x38,0x24, 0x2,0x38,0x33, 0xf,0x37,0x54, + 0x3,0x38,0x2b, 0x3,0x3e,0x34, 0x2,0x3f,0x21, 0x2,0x3e,0x76, + 0x1,0x61,0x38, 0x2,0x3e,0x7d, 0x2,0x3e,0x7a, 0x2,0x3e,0x72, + 0x2,0x3e,0x7b, 0x1,0x61,0x3a, 0x2,0x3e,0x73, 0x3,0x3e,0x29, + 0x2,0x3e,0x6f, 0x3,0x3e,0x26, 0x3,0x3e,0x2e, 0x1,0x65,0x73, + 0x2,0x3e,0x78, 0x3,0x3e,0x2f, 0x1,0x61,0x37, 0x2,0x3e,0x7e, + 0x3,0x3e,0x28, 0x1,0x61,0x3e, 0x1,0x61,0x40, 0x2,0x3e,0x71, + 0x3,0x3e,0x2c, 0x4,0x3a,0x27, 0x1,0x61,0x3f, 0x2,0x3e,0x74, + 0x1,0x61,0x39, 0x2,0x3e,0x7c, 0x2,0x3e,0x75, 0x2,0x3e,0x79, + 0x3,0x3e,0x2a, 0x2,0x3e,0x77, 0x1,0x61,0x3c, 0x2,0x3e,0x70, + 0x1,0x61,0x41, 0x1,0x5c,0x53, 0x1,0x61,0x3d, 0x1,0x61,0x42, + 0x3,0x3e,0x24, 0x3,0x3e,0x35, 0x3,0x3e,0x33, 0x3,0x43,0x67, + 0x1,0x65,0x6f, 0x2,0x46,0x24, 0x2,0x46,0x26, 0x2,0x46,0x28, + 0x2,0x46,0x2c, 0x3,0x3e,0x2b, 0x2,0x46,0x22, 0x2,0x45,0x7e, + 0x1,0x65,0x71, 0x4,0x3f,0x71, 0x2,0x46,0x27, 0x2,0x46,0x2b, + 0x2,0x46,0x23, 0x2,0x45,0x7d, 0x3,0x43,0x66, 0x2,0x45,0x7c, + 0x3,0x43,0x69, 0x3,0x43,0x60, 0x3,0x43,0x62, 0x2,0x46,0x29, + 0x2,0x46,0x21, 0x2,0x46,0x25, 0x1,0x65,0x72, 0x3,0x43,0x5e, + 0x1,0x65,0x70, 0x2,0x46,0x2d, 0x1,0x65,0x6e, 0x2,0x46,0x2a, + 0x3,0x43,0x64, 0x2,0x4c,0x79, 0x3,0x43,0x68, 0x3,0x43,0x6a, + 0x3,0x43,0x63, 0x1,0x6a,0x37, 0x2,0x4c,0x71, 0x1,0x6e,0x43, + 0x2,0x4c,0x7b, 0x1,0x6a,0x3a, 0x2,0x4d,0x21, 0x1,0x6a,0x40, + 0x2,0x4c,0x6c, 0x3,0x48,0x74, 0x4,0x45,0x7b, 0x2,0x4c,0x7c, + 0x2,0x4c,0x69, 0x3,0x48,0x6d, 0x2,0x4c,0x7e, 0x2,0x4c,0x6d, + 0x3,0x48,0x6e, 0x1,0x6a,0x47, 0x1,0x6a,0x44, 0x2,0x4c,0x7d, + 0x2,0x4c,0x77, 0x1,0x6a,0x36, 0x1,0x6a,0x3e, 0x1,0x6a,0x3d, + 0x3,0x48,0x70, 0x1,0x6a,0x3c, 0x1,0x6a,0x42, 0x3,0x48,0x69, + 0x2,0x4c,0x6a, 0x1,0x6a,0x43, 0x2,0x4c,0x78, 0x1,0x6a,0x3f, + 0x1,0x6a,0x35, 0x2,0x4c,0x7a, 0x1,0x6a,0x38, 0x1,0x6a,0x39, + 0x1,0x6a,0x41, 0x2,0x4c,0x6f, 0x2,0x4c,0x6e, 0x2,0x4c,0x6b, + 0x4,0x45,0x7c, 0x2,0x4c,0x73, 0x2,0x4c,0x70, 0x2,0x4c,0x74, + 0x1,0x6a,0x46, 0x3,0x48,0x68, 0x2,0x4d,0x22, 0x1,0x6a,0x3b, + 0x2,0x4c,0x75, 0x2,0x4c,0x76, 0x3,0x48,0x71, 0x2,0x4c,0x72, + 0x3,0x48,0x73, 0x3,0x66,0x29, 0x3,0x48,0x6b, 0x1,0x6a,0x45, + 0x3,0x66,0x2b, 0x3,0x4e,0x22, 0x2,0x52,0x6f, 0x1,0x6e,0x3b, + 0x1,0x6e,0x44, 0x1,0x6e,0x40, 0x2,0x52,0x6c, 0x3,0x4d,0x7c, + 0x1,0x6e,0x3d, 0x1,0x6e,0x41, 0x2,0x52,0x78, 0x1,0x6e,0x37, + 0x2,0x52,0x70, 0x3,0x4d,0x78, 0x1,0x6e,0x3f, 0x3,0x4e,0x24, + 0x3,0x4e,0x2f, 0x2,0x52,0x73, 0x2,0x52,0x6e, 0x1,0x6e,0x3e, + 0x1,0x6e,0x42, 0x2,0x52,0x6d, 0x3,0x4e,0x2e, 0x1,0x6e,0x3c, + 0x3,0x4d,0x77, 0x2,0x52,0x77, 0x1,0x6e,0x39, 0x2,0x52,0x76, + 0x2,0x52,0x75, 0x1,0x6e,0x45, 0x2,0x50,0x3b, 0x1,0x6e,0x38, + 0x3,0x4e,0x2b, 0x2,0x52,0x74, 0x2,0x52,0x6b, 0x3,0x4d,0x75, + 0x1,0x6e,0x46, 0x2,0x52,0x72, 0x1,0x6e,0x3a, 0x3,0x4e,0x28, + 0x3,0x4e,0x29, 0x3,0x4e,0x25, 0x3,0x4e,0x2c, 0x3,0x4e,0x27, + 0x3,0x4d,0x7e, 0x3,0x4d,0x7d, 0x2,0x52,0x71, 0x4,0x4c,0x45, + 0x3,0x66,0x2a, 0x1,0x71,0x6a, 0x1,0x71,0x6f, 0x1,0x71,0x68, + 0x2,0x59,0x44, 0x2,0x59,0x3b, 0x2,0x59,0x47, 0x2,0x59,0x3f, + 0x2,0x59,0x45, 0x1,0x71,0x70, 0x1,0x71,0x69, 0x2,0x59,0x38, + 0x2,0x59,0x3e, 0x2,0x59,0x48, 0x2,0x59,0x41, 0x2,0x59,0x46, + 0x2,0x59,0x3a, 0x4,0x52,0x4c, 0x3,0x52,0x3b, 0x2,0x59,0x42, + 0x1,0x71,0x6b, 0x2,0x59,0x40, 0x1,0x71,0x6e, 0x1,0x71,0x6d, + 0x2,0x59,0x3c, 0x2,0x59,0x3d, 0x2,0x59,0x39, 0x2,0x59,0x43, + 0x1,0x71,0x6c, 0x2,0x59,0x4a, 0x2,0x59,0x49, 0x3,0x52,0x40, + 0x3,0x52,0x3f, 0x2,0x5e,0x47, 0x2,0x5e,0x43, 0x1,0x74,0x69, + 0x3,0x55,0x79, 0x2,0x5e,0x3d, 0x1,0x74,0x63, 0x1,0x74,0x73, + 0x2,0x5e,0x49, 0x1,0x74,0x6b, 0x1,0x74,0x67, 0x2,0x5e,0x40, + 0x1,0x74,0x6e, 0x1,0x74,0x71, 0x2,0x5e,0x4b, 0x1,0x74,0x66, + 0x2,0x5e,0x42, 0x1,0x74,0x6f, 0x2,0x5e,0x4d, 0x2,0x5e,0x4a, + 0x2,0x5e,0x3e, 0x1,0x74,0x6a, 0x1,0x74,0x64, 0x1,0x74,0x72, + 0x2,0x5e,0x45, 0x1,0x74,0x6d, 0x2,0x5e,0x3f, 0x1,0x74,0x68, + 0x2,0x5e,0x4c, 0x1,0x74,0x6c, 0x1,0x74,0x65, 0x2,0x5e,0x46, + 0x1,0x74,0x70, 0x2,0x5e,0x44, 0x2,0x5e,0x48, 0x3,0x55,0x7a, + 0x4,0x5c,0x5f, 0x3,0x58,0x59, 0x2,0x62,0x5a, 0x2,0x62,0x60, + 0x1,0x77,0x25, 0x2,0x62,0x63, 0x1,0x76,0x7e, 0x1,0x77,0x21, + 0x2,0x62,0x5b, 0x2,0x62,0x62, 0x2,0x62,0x5d, 0x1,0x77,0x26, + 0x1,0x77,0x23, 0x3,0x58,0x5b, 0x2,0x62,0x59, 0x3,0x58,0x58, + 0x1,0x77,0x22, 0x2,0x62,0x5f, 0x2,0x62,0x61, 0x1,0x77,0x24, + 0x2,0x62,0x5e, 0x2,0x62,0x5c, 0x3,0x66,0x2c, 0x4,0x5c,0x5e, + 0x3,0x58,0x5a, 0x2,0x66,0x42, 0x1,0x78,0x62, 0x1,0x78,0x63, + 0x1,0x78,0x5f, 0x3,0x5a,0x72, 0x1,0x78,0x60, 0x3,0x5a,0x74, + 0x2,0x66,0x3e, 0x2,0x66,0x3c, 0x3,0x5a,0x75, 0x2,0x66,0x40, + 0x1,0x78,0x64, 0x2,0x66,0x41, 0x2,0x66,0x3a, 0x2,0x66,0x39, + 0x2,0x66,0x3d, 0x2,0x66,0x3b, 0x1,0x78,0x61, 0x2,0x66,0x3f, + 0x2,0x69,0x59, 0x1,0x7a,0x2b, 0x1,0x7a,0x2a, 0x2,0x69,0x5a, + 0x3,0x5c,0x6c, 0x2,0x69,0x5c, 0x2,0x69,0x5b, 0x1,0x7a,0x2c, + 0x3,0x5e,0x53, 0x3,0x5e,0x50, 0x2,0x6b,0x79, 0x2,0x6b,0x76, + 0x2,0x6b,0x77, 0x3,0x5e,0x51, 0x2,0x6b,0x75, 0x2,0x6b,0x78, + 0x1,0x7a,0x7d, 0x2,0x6b,0x7a, 0x3,0x5e,0x52, 0x1,0x7a,0x7c, + 0x2,0x6d,0x6f, 0x3,0x5f,0x5a, 0x1,0x7c,0x41, 0x1,0x7c,0x43, + 0x2,0x6f,0x3d, 0x1,0x7c,0x42, 0x2,0x70,0x47, 0x2,0x71,0x2f, + 0x2,0x71,0x31, 0x2,0x71,0x2e, 0x2,0x71,0x30, 0x1,0x7d,0x39, + 0x4,0x6d,0x78, 0x3,0x62,0x35, 0x1,0x48,0x4f, 0x4,0x25,0x57, + 0x1,0x52,0x7e, 0x2,0x30,0x52, 0x1,0x57,0x4d, 0x3,0x38,0x31, + 0xf,0x31,0x78, 0x1,0x5c,0x5f, 0x2,0x3f,0x22, 0x2,0x3f,0x23, + 0x3,0x66,0x2d, 0x3,0x48,0x77, 0x2,0x59,0x4b, 0x1,0x74,0x74, + 0x2,0x5e,0x4e, 0x3,0x55,0x7d, 0x3,0x58,0x5c, 0x1,0x77,0x27, + 0x2,0x66,0x44, 0x2,0x66,0x43, 0x1,0x7a,0x2d, 0x2,0x6b,0x7b, + 0x3,0x5f,0x5b, 0x2,0x6d,0x70, 0x1,0x7c,0x64, 0x2,0x22,0x69, + 0x4,0x22,0x21, 0x1,0x4f,0x2c, 0x1,0x4b,0x38, 0xf,0x28,0x4a, + 0x2,0x2c,0x6e, 0x3,0x2a,0x4e, 0x2,0x32,0x24, 0x2,0x31,0x7d, + 0x2,0x32,0x23, 0x2,0x32,0x21, 0x1,0x57,0x4e, 0x2,0x32,0x22, + 0x2,0x31,0x7e, 0x3,0x33,0x3c, 0x2,0x38,0x36, 0x4,0x3a,0x2b, + 0x2,0x3f,0x24, 0x2,0x3f,0x25, 0x2,0x46,0x30, 0x2,0x46,0x31, + 0x1,0x65,0x75, 0x1,0x65,0x76, 0x2,0x46,0x2f, 0x2,0x46,0x32, + 0x2,0x46,0x2e, 0x1,0x65,0x74, 0x3,0x48,0x78, 0x1,0x6a,0x48, + 0x3,0x48,0x79, 0x1,0x65,0x77, 0x2,0x4d,0x23, 0x1,0x6e,0x47, + 0x2,0x52,0x79, 0x1,0x6e,0x48, 0x3,0x4e,0x30, 0x1,0x71,0x71, + 0x2,0x59,0x4e, 0x2,0x59,0x4c, 0x2,0x59,0x4d, 0x2,0x5e,0x51, + 0x2,0x5e,0x50, 0x2,0x5e,0x4f, 0x7,0x41,0x61, 0x4,0x5c,0x68, + 0x2,0x66,0x45, 0x4,0x60,0x6f, 0x1,0x78,0x65, 0x2,0x66,0x46, + 0x2,0x6d,0x71, 0x1,0x7c,0x65, 0x2,0x70,0x48, 0x1,0x48,0x50, + 0x1,0x4f,0x2e, 0x1,0x4f,0x2d, 0x2,0x2c,0x70, 0x1,0x53,0x21, + 0x3,0x2e,0x5d, 0x4,0x2f,0x30, 0x2,0x2c,0x6f, 0x2,0x32,0x26, + 0x3,0x33,0x3d, 0x1,0x57,0x4f, 0x2,0x38,0x37, 0x2,0x32,0x25, + 0x3,0x33,0x3f, 0x4,0x2f,0x2f, 0x3,0x33,0x3e, 0x1,0x5c,0x61, + 0x2,0x38,0x3a, 0x2,0x38,0x38, 0x2,0x38,0x39, 0x1,0x5c,0x60, + 0x2,0x3f,0x27, 0x2,0x3f,0x28, 0x2,0x3f,0x26, 0x3,0x43,0x6e, + 0x1,0x65,0x7a, 0x2,0x46,0x34, 0x2,0x46,0x33, 0x2,0x46,0x35, + 0x1,0x65,0x79, 0x1,0x65,0x78, 0x4,0x46,0x26, 0x2,0x52,0x7a, + 0x2,0x52,0x7c, 0x3,0x4e,0x31, 0x1,0x6e,0x49, 0x2,0x52,0x7b, + 0x2,0x59,0x4f, 0x1,0x71,0x72, 0x2,0x62,0x65, 0x3,0x58,0x5d, + 0x2,0x62,0x64, 0x1,0x78,0x66, 0x2,0x66,0x47, 0x1,0x78,0x68, + 0x1,0x78,0x67, 0x2,0x69,0x5d, 0x2,0x6b,0x7c, 0x1,0x7a,0x7e, + 0x1,0x48,0x51, 0x2,0x2c,0x71, 0x1,0x53,0x22, 0x2,0x32,0x29, + 0x1,0x57,0x51, 0x2,0x32,0x28, 0x2,0x32,0x27, 0x3,0x33,0x42, + 0x1,0x57,0x50, 0x3,0x33,0x43, 0x2,0x38,0x40, 0x4,0x34,0x3d, + 0x2,0x38,0x42, 0x2,0x38,0x3b, 0x2,0x38,0x3c, 0x1,0x5c,0x62, + 0x2,0x38,0x3d, 0x1,0x5c,0x63, 0x2,0x38,0x41, 0x2,0x38,0x3e, + 0x2,0x38,0x3f, 0x1,0x5c,0x64, 0x3,0x3e,0x37, 0x1,0x61,0x44, + 0x1,0x61,0x45, 0x3,0x3e,0x38, 0x2,0x3f,0x29, 0x2,0x46,0x36, + 0x2,0x46,0x37, 0x3,0x43,0x72, 0x2,0x4d,0x27, 0x1,0x6a,0x4b, + 0x1,0x6a,0x49, 0x1,0x6a,0x4a, 0x2,0x4d,0x24, 0x2,0x4d,0x25, + 0x6,0x60,0x58, 0x2,0x4d,0x26, 0x2,0x53,0x23, 0x3,0x4e,0x32, + 0x2,0x53,0x24, 0x1,0x6e,0x4a, 0x2,0x53,0x21, 0x2,0x52,0x7e, + 0x2,0x53,0x22, 0x2,0x52,0x7d, 0x1,0x71,0x75, 0x2,0x59,0x50, + 0x1,0x71,0x73, 0x1,0x71,0x74, 0x2,0x5e,0x53, 0x1,0x74,0x75, + 0x2,0x5e,0x52, 0x2,0x61,0x34, 0x3,0x55,0x7e, 0x2,0x62,0x66, + 0x2,0x62,0x67, 0x1,0x77,0x28, 0x3,0x58,0x61, 0x1,0x77,0x29, + 0x1,0x74,0x76, 0x2,0x66,0x48, 0x2,0x66,0x49, 0x2,0x69,0x5e, + 0x1,0x7a,0x2e, 0x1,0x48,0x52, 0x3,0x66,0x7b, 0x1,0x48,0x53, + 0x1,0x57,0x53, 0x1,0x4f,0x2f, 0x1,0x57,0x52, 0x2,0x2c,0x72, + 0x3,0x38,0x36, 0x4,0x2b,0x25, 0x3,0x33,0x44, 0x1,0x61,0x46, + 0x1,0x48,0x54, 0x1,0x53,0x24, 0x2,0x2c,0x73, 0x2,0x2c,0x74, + 0x1,0x53,0x23, 0x1,0x53,0x25, 0x1,0x48,0x55, 0x4,0x27,0x61, + 0x2,0x2c,0x75, 0x1,0x57,0x55, 0x2,0x32,0x2a, 0x1,0x57,0x57, + 0x1,0x57,0x54, 0x1,0x57,0x56, 0x3,0x38,0x37, 0x2,0x38,0x45, + 0x1,0x5c,0x65, 0x3,0x38,0x39, 0x2,0x38,0x44, 0x2,0x38,0x43, + 0x4,0x3a,0x38, 0x2,0x46,0x38, 0x3,0x49,0x22, 0x2,0x4d,0x28, + 0x4,0x46,0x2c, 0x1,0x6e,0x4b, 0x1,0x71,0x76, 0x2,0x59,0x52, + 0x2,0x59,0x51, 0x3,0x56,0x21, 0x2,0x5e,0x54, 0x4,0x5c,0x71, + 0x3,0x58,0x62, 0x3,0x5c,0x6f, 0x2,0x6b,0x7d, 0x4,0x69,0x2e, + 0x4,0x69,0x2d, 0x1,0x48,0x56, 0x2,0x24,0x73, 0x2,0x28,0x4a, + 0x1,0x53,0x26, 0x2,0x2c,0x76, 0x6,0x3b,0x21, 0x2,0x32,0x2c, + 0x4,0x2f,0x3a, 0x3,0x33,0x49, 0x3,0x33,0x48, 0x1,0x57,0x58, + 0x2,0x32,0x2b, 0x1,0x57,0x59, 0x3,0x33,0x47, 0x3,0x66,0x2f, + 0x2,0x38,0x47, 0x3,0x38,0x3d, 0x3,0x38,0x3c, 0x1,0x5c,0x67, + 0x2,0x38,0x46, 0x2,0x38,0x48, 0x3,0x38,0x3b, 0x1,0x5c,0x66, + 0x3,0x3e,0x3c, 0x2,0x3f,0x2b, 0x2,0x3f,0x2c, 0x2,0x3f,0x2a, + 0x1,0x61,0x47, 0x3,0x67,0x29, 0x4,0x3f,0x7c, 0x1,0x65,0x7b, + 0x3,0x43,0x73, 0x1,0x65,0x7c, 0x4,0x46,0x33, 0x1,0x6a,0x4d, + 0x3,0x49,0x23, 0x2,0x4d,0x2a, 0x2,0x4d,0x29, 0x1,0x6a,0x4c, + 0x3,0x49,0x26, 0x3,0x3e,0x3b, 0x3,0x49,0x25, 0x3,0x66,0x30, + 0x2,0x53,0x25, 0x3,0x4e,0x34, 0x3,0x4e,0x36, 0x2,0x53,0x26, + 0x3,0x4e,0x37, 0x3,0x4e,0x35, 0x3,0x4e,0x38, 0x2,0x59,0x53, + 0x4,0x52,0x5c, 0x3,0x52,0x43, 0x1,0x74,0x7a, 0x1,0x74,0x79, + 0x1,0x74,0x77, 0x1,0x74,0x78, 0x1,0x74,0x7b, 0x3,0x56,0x22, + 0x2,0x62,0x68, 0x1,0x77,0x2b, 0x1,0x77,0x2a, 0x2,0x66,0x4a, + 0x2,0x69,0x5f, 0x3,0x5c,0x70, 0x3,0x5c,0x71, 0x3,0x5c,0x72, + 0x1,0x7b,0x6f, 0x1,0x7b,0x6e, 0x1,0x48,0x57, 0x6,0x3b,0x24, + 0x2,0x2f,0x7d, 0x1,0x65,0x7e, 0x1,0x61,0x48, 0x1,0x65,0x7d, + 0x1,0x6a,0x4e, 0x6,0x60,0x60, 0x1,0x48,0x58, 0x2,0x21,0x68, + 0x1,0x48,0x59, 0x1,0x48,0x5a, 0x3,0x24,0x35, 0x3,0x24,0x36, + 0x2,0x28,0x4b, 0x2,0x24,0x76, 0x3,0x27,0x24, 0x2,0x24,0x77, + 0x1,0x4b,0x3a, 0x3,0x27,0x26, 0x2,0x24,0x74, 0x1,0x4b,0x39, + 0x3,0x27,0x25, 0x1,0x4b,0x3c, 0x2,0x24,0x75, 0x1,0x4b,0x3e, + 0x1,0x4b,0x3d, 0x2,0x24,0x78, 0x1,0x4b,0x3b, 0x4,0x24,0x70, + 0x3,0x27,0x23, 0x1,0x4f,0x34, 0x1,0x4f,0x32, 0x2,0x28,0x4d, + 0x3,0x2a,0x56, 0x1,0x4f,0x31, 0x3,0x2a,0x5b, 0x3,0x2a,0x58, + 0x3,0x2a,0x4f, 0x1,0x4f,0x36, 0x1,0x4f,0x38, 0x1,0x4f,0x35, + 0x3,0x2a,0x59, 0x2,0x28,0x50, 0x2,0x28,0x4c, 0x1,0x4f,0x39, + 0x3,0x2a,0x52, 0x1,0x4f,0x33, 0x1,0x4b,0x3f, 0x3,0x2a,0x54, + 0x1,0x4f,0x37, 0x2,0x28,0x4f, 0x3,0x2a,0x57, 0x4,0x27,0x64, + 0x2,0x28,0x4e, 0x4,0x27,0x69, 0x1,0x4f,0x30, 0x3,0x66,0x31, + 0x2,0x2c,0x7c, 0x1,0x53,0x2a, 0x1,0x53,0x2b, 0x2,0x2c,0x7e, + 0x3,0x2e,0x66, 0x2,0x2c,0x78, 0x2,0x2c,0x7b, 0x2,0x2d,0x26, + 0x2,0x2d,0x24, 0x3,0x2e,0x60, 0x1,0x53,0x2c, 0x2,0x2d,0x2a, + 0x1,0x53,0x2f, 0x2,0x2d,0x27, 0x2,0x2c,0x7d, 0x2,0x2c,0x7a, + 0x3,0x2e,0x61, 0x3,0x2e,0x5e, 0x2,0x3f,0x2e, 0x2,0x2d,0x25, + 0x1,0x53,0x27, 0x2,0x2d,0x28, 0x2,0x2c,0x77, 0x2,0x2d,0x22, + 0x1,0x53,0x29, 0x1,0x53,0x2e, 0x2,0x2d,0x23, 0x1,0x53,0x32, + 0x1,0x53,0x30, 0x3,0x2e,0x65, 0x2,0x2c,0x79, 0x1,0x53,0x2d, + 0x3,0x2e,0x64, 0x2,0x2d,0x21, 0x1,0x53,0x31, 0x1,0x53,0x28, + 0x2,0x2d,0x29, 0x1,0x57,0x5e, 0x3,0x33,0x4c, 0x1,0x57,0x67, + 0x1,0x57,0x5c, 0x1,0x57,0x5a, 0x2,0x32,0x2e, 0x1,0x57,0x62, + 0x1,0x57,0x5f, 0x2,0x32,0x30, 0x3,0x33,0x4a, 0x3,0x33,0x52, + 0x1,0x57,0x61, 0x2,0x32,0x2f, 0x2,0x32,0x2d, 0x2,0x32,0x32, + 0x1,0x57,0x66, 0x1,0x57,0x64, 0x2,0x3f,0x2d, 0x3,0x33,0x4b, + 0x2,0x32,0x33, 0x2,0x32,0x31, 0x1,0x57,0x5b, 0x3,0x33,0x4e, + 0x3,0x33,0x4d, 0x1,0x57,0x5d, 0x1,0x57,0x60, 0x3,0x33,0x4f, + 0x1,0x57,0x63, 0x3,0x2e,0x63, 0x1,0x57,0x65, 0x3,0x3e,0x44, + 0x2,0x38,0x52, 0x1,0x5c,0x69, 0x3,0x38,0x49, 0x2,0x38,0x49, + 0x2,0x38,0x4b, 0x3,0x38,0x47, 0x2,0x38,0x4c, 0x4,0x34,0x4d, + 0x2,0x38,0x54, 0x2,0x38,0x50, 0x2,0x38,0x4e, 0x4,0x3a,0x3b, + 0x2,0x38,0x51, 0x2,0x38,0x55, 0x1,0x5c,0x6a, 0x1,0x5c,0x6e, + 0x2,0x38,0x4a, 0x4,0x34,0x47, 0x2,0x38,0x53, 0x4,0x34,0x50, + 0x1,0x5c,0x6c, 0x3,0x38,0x41, 0x1,0x5c,0x6b, 0x2,0x38,0x4f, + 0x2,0x38,0x4d, 0x3,0x38,0x42, 0x1,0x5c,0x68, 0x1,0x5c,0x6d, + 0x3,0x38,0x45, 0x3,0x38,0x48, 0x1,0x61,0x4e, 0x2,0x3f,0x36, + 0x3,0x3e,0x3e, 0x4,0x3a,0x3e, 0x2,0x3f,0x34, 0x1,0x61,0x50, + 0x4,0x3a,0x47, 0x3,0x3e,0x43, 0x3,0x3e,0x45, 0x3,0x3e,0x41, + 0x2,0x3f,0x2f, 0x2,0x46,0x46, 0x3,0x3e,0x3d, 0x1,0x61,0x4f, + 0x2,0x3f,0x33, 0x3,0x3e,0x40, 0x3,0x3e,0x42, 0x2,0x3f,0x30, + 0x1,0x61,0x4b, 0x1,0x61,0x51, 0x2,0x3f,0x35, 0x1,0x61,0x4d, + 0x2,0x3f,0x32, 0x1,0x6a,0x4f, 0x1,0x61,0x4c, 0x2,0x3f,0x31, + 0x1,0x61,0x52, 0x1,0x61,0x4a, 0x1,0x61,0x49, 0x6,0x43,0x5a, + 0x2,0x46,0x3e, 0x2,0x46,0x3c, 0x3,0x43,0x7b, 0x2,0x46,0x42, + 0x3,0x43,0x7e, 0x2,0x46,0x3a, 0x2,0x46,0x47, 0x2,0x46,0x3f, + 0x3,0x43,0x75, 0x2,0x46,0x39, 0x1,0x66,0x24, 0x1,0x66,0x2a, + 0x2,0x46,0x44, 0x4,0x40,0x29, 0x2,0x46,0x3d, 0x3,0x43,0x76, + 0x1,0x66,0x27, 0x3,0x43,0x77, 0x3,0x44,0x23, 0x1,0x66,0x25, + 0x2,0x46,0x45, 0x1,0x66,0x22, 0x1,0x66,0x21, 0x2,0x46,0x40, + 0x1,0x66,0x26, 0x1,0x61,0x53, 0x3,0x43,0x7c, 0x2,0x46,0x43, + 0x2,0x46,0x3b, 0x1,0x66,0x23, 0x1,0x66,0x28, 0x1,0x66,0x29, + 0x3,0x44,0x22, 0x1,0x6a,0x54, 0x1,0x6a,0x50, 0x3,0x49,0x27, + 0x1,0x6a,0x55, 0x2,0x4d,0x2d, 0x3,0x49,0x2a, 0x4,0x46,0x39, + 0x2,0x4d,0x2c, 0x2,0x4d,0x2e, 0x1,0x6a,0x52, 0x2,0x4d,0x2b, + 0x1,0x6a,0x53, 0x2,0x4d,0x31, 0x2,0x4d,0x30, 0x2,0x4d,0x2f, + 0x4,0x46,0x46, 0x1,0x6a,0x51, 0x4,0x52,0x67, 0x3,0x4e,0x3b, + 0x3,0x4e,0x3d, 0x3,0x4e,0x39, 0x2,0x53,0x2a, 0x3,0x4e,0x3c, + 0x2,0x53,0x2d, 0x1,0x6e,0x51, 0x2,0x53,0x2c, 0x1,0x6e,0x50, + 0x1,0x6e,0x4c, 0x1,0x6e,0x4d, 0x1,0x6e,0x4e, 0x2,0x53,0x29, + 0x2,0x53,0x28, 0x1,0x6e,0x4f, 0x3,0x4e,0x3a, 0x2,0x53,0x2b, + 0x2,0x53,0x27, 0x2,0x59,0x55, 0x2,0x59,0x5f, 0x1,0x71,0x79, + 0x1,0x71,0x78, 0x3,0x52,0x49, 0x2,0x59,0x59, 0x2,0x59,0x5b, + 0x3,0x52,0x47, 0x2,0x59,0x56, 0x3,0x52,0x44, 0x2,0x59,0x5a, + 0x2,0x59,0x54, 0x2,0x59,0x5d, 0x1,0x71,0x77, 0x2,0x59,0x5c, + 0x2,0x59,0x58, 0x2,0x59,0x5e, 0x3,0x56,0x23, 0x2,0x59,0x57, + 0x1,0x74,0x7e, 0x2,0x5e,0x55, 0x2,0x5e,0x5b, 0x1,0x75,0x24, + 0x1,0x75,0x26, 0x1,0x75,0x23, 0x1,0x75,0x22, 0x4,0x58,0x27, + 0x1,0x75,0x21, 0x1,0x74,0x7d, 0x2,0x5e,0x56, 0x2,0x5e,0x59, + 0x1,0x74,0x7c, 0x2,0x5e,0x5a, 0x3,0x56,0x24, 0x1,0x75,0x25, + 0x2,0x5e,0x58, 0x7,0x48,0x7c, 0x2,0x5e,0x57, 0x1,0x77,0x2c, + 0x3,0x58,0x65, 0x1,0x77,0x2d, 0x2,0x62,0x6b, 0x2,0x62,0x69, + 0x2,0x62,0x6a, 0x3,0x5a,0x77, 0x2,0x66,0x4c, 0x3,0x5a,0x78, + 0x2,0x66,0x4b, 0x1,0x78,0x69, 0x2,0x69,0x61, 0x1,0x7a,0x2f, + 0x2,0x69,0x60, 0x2,0x6b,0x7e, 0x2,0x6d,0x72, 0x1,0x7b,0x70, + 0x2,0x71,0x32, 0x2,0x71,0x33, 0x1,0x7c,0x44, 0x1,0x48,0x5b, + 0x4,0x27,0x6c, 0x1,0x4f,0x3a, 0x2,0x3f,0x37, 0x1,0x6a,0x56, + 0x1,0x75,0x27, 0x2,0x5e,0x5c, 0x1,0x48,0x5c, 0x4,0x24,0x73, + 0x1,0x57,0x69, 0x1,0x57,0x68, 0x2,0x3f,0x38, 0x3,0x3e,0x47, + 0x4,0x3a,0x4c, 0x4,0x4c,0x62, 0x2,0x59,0x60, 0x1,0x48,0x5d, + 0x1,0x53,0x33, 0x4,0x3a,0x4d, 0x3,0x3e,0x48, 0x2,0x3f,0x39, + 0x2,0x3f,0x3a, 0x2,0x3f,0x3b, 0x1,0x6a,0x57, 0x1,0x71,0x7a, + 0x1,0x48,0x5e, 0x4,0x27,0x6d, 0x1,0x4f,0x3b, 0x2,0x2d,0x2b, + 0x1,0x57,0x6a, 0x2,0x32,0x34, 0x1,0x5c,0x6f, 0x3,0x3e,0x49, + 0x2,0x3f,0x3c, 0x1,0x66,0x2b, 0x1,0x6a,0x58, 0x1,0x71,0x7b, + 0x1,0x75,0x28, 0x1,0x77,0x2e, 0x2,0x66,0x4d, 0x1,0x48,0x5f, + 0x1,0x4f,0x3c, 0x3,0x2a,0x5d, 0x4,0x27,0x6e, 0x1,0x57,0x6b, + 0x2,0x38,0x56, 0x1,0x61,0x54, 0x3,0x49,0x2b, 0x1,0x6a,0x59, + 0x2,0x4d,0x32, 0x2,0x53,0x2e, 0x3,0x52,0x4a, 0x3,0x58,0x68, + 0x3,0x5a,0x79, 0x1,0x48,0x60, 0x1,0x61,0x55, 0x2,0x46,0x48, + 0x1,0x6a,0x5a, 0x1,0x48,0x61, 0x2,0x28,0x51, 0x2,0x2d,0x2c, + 0x1,0x53,0x34, 0x3,0x2e,0x68, 0x2,0x32,0x36, 0x4,0x2f,0x4f, + 0x3,0x33,0x57, 0x1,0x57,0x6e, 0x3,0x33,0x58, 0x1,0x57,0x6c, + 0x1,0x57,0x6d, 0x1,0x57,0x6f, 0x3,0x33,0x55, 0x2,0x32,0x35, + 0x2,0x38,0x5b, 0x2,0x38,0x58, 0x2,0x38,0x5a, 0x1,0x5c,0x70, + 0x1,0x5c,0x72, 0x1,0x5c,0x71, 0x2,0x38,0x57, 0x1,0x5c,0x73, + 0x2,0x38,0x59, 0x2,0x3f,0x3d, 0x2,0x3f,0x3e, 0x2,0x3f,0x3f, + 0x2,0x46,0x4b, 0x3,0x44,0x26, 0x2,0x46,0x4c, 0x4,0x40,0x2e, + 0x2,0x46,0x4a, 0x2,0x46,0x4d, 0x4,0x40,0x2d, 0x1,0x66,0x2c, + 0x3,0x66,0x34, 0x2,0x46,0x49, 0x3,0x49,0x2d, 0x1,0x6a,0x5b, + 0x3,0x49,0x2e, 0x2,0x53,0x33, 0x2,0x53,0x2f, 0x2,0x53,0x32, + 0x2,0x53,0x34, 0x2,0x53,0x31, 0x2,0x53,0x30, 0x2,0x59,0x61, + 0x2,0x59,0x62, 0x2,0x59,0x63, 0x1,0x71,0x7c, 0x1,0x71,0x7d, + 0x2,0x5e,0x5e, 0x2,0x5e,0x5d, 0x2,0x5e,0x5f, 0x2,0x62,0x6d, + 0x2,0x62,0x6c, 0x2,0x66,0x4f, 0x3,0x5a,0x7a, 0x2,0x66,0x50, + 0x2,0x66,0x4e, 0x3,0x5a,0x7b, 0x1,0x7a,0x30, 0x4,0x64,0x2c, + 0x2,0x69,0x62, 0x2,0x69,0x63, 0x3,0x5e,0x55, 0x2,0x6d,0x73, + 0x2,0x6f,0x3e, 0x2,0x70,0x49, 0x1,0x48,0x62, 0x1,0x4b,0x40, + 0x1,0x75,0x29, 0x1,0x48,0x63, 0xf,0x32,0x32, 0x2,0x38,0x5c, + 0x2,0x3f,0x40, 0x3,0x5a,0x7c, 0x1,0x7c,0x6c, 0x2,0x22,0x6a, + 0x4,0x21,0x53, 0x3,0x24,0x38, 0x2,0x22,0x6b, 0x2,0x22,0x6d, + 0x1,0x48,0x64, 0x2,0x22,0x6e, 0x2,0x22,0x6c, 0x4,0x23,0x2f, + 0x2,0x25,0x22, 0x2,0x25,0x23, 0x2,0x24,0x7b, 0x3,0x27,0x28, + 0x4,0x24,0x7b, 0x4,0x24,0x75, 0x2,0x25,0x21, 0x1,0x4b,0x42, + 0x3,0x27,0x29, 0x1,0x4b,0x43, 0x2,0x24,0x7c, 0x2,0x24,0x7a, + 0x2,0x24,0x79, 0x2,0x24,0x7d, 0x1,0x4b,0x41, 0x2,0x24,0x7e, + 0x2,0x2d,0x2d, 0x3,0x27,0x2b, 0x4,0x24,0x79, 0x2,0x28,0x56, + 0x1,0x4f,0x3f, 0x2,0x28,0x55, 0x2,0x28,0x57, 0x3,0x2a,0x60, + 0x1,0x4f,0x3e, 0x2,0x28,0x5c, 0x1,0x4f,0x42, 0x2,0x28,0x52, + 0x2,0x28,0x60, 0x2,0x28,0x66, 0x1,0x4f,0x49, 0x2,0x28,0x63, + 0x1,0x4f,0x46, 0x3,0x2a,0x6b, 0x2,0x28,0x59, 0x2,0x28,0x5f, + 0x2,0x28,0x61, 0x3,0x2a,0x66, 0x2,0x28,0x54, 0x1,0x4f,0x45, + 0x1,0x4f,0x40, 0x2,0x28,0x5a, 0x1,0x4f,0x47, 0x1,0x4f,0x4a, + 0x1,0x4f,0x44, 0x3,0x2a,0x6c, 0x1,0x4f,0x3d, 0x2,0x28,0x5e, + 0x2,0x28,0x58, 0x2,0x28,0x65, 0x1,0x4f,0x4c, 0x1,0x4f,0x48, + 0x1,0x4f,0x43, 0x2,0x28,0x5d, 0x1,0x57,0x70, 0x2,0x28,0x5b, + 0x1,0x4f,0x41, 0x1,0x4f,0x4b, 0x4,0x27,0x7a, 0x2,0x28,0x53, + 0x4,0x27,0x7e, 0x2,0x28,0x62, 0x2,0x28,0x64, 0x3,0x2a,0x5e, + 0xf,0x28,0x63, 0x3,0x2a,0x68, 0x4,0x27,0x7b, 0x3,0x2e,0x76, + 0x1,0x53,0x45, 0x1,0x53,0x3f, 0x1,0x53,0x47, 0x1,0x53,0x44, + 0x2,0x2d,0x34, 0x2,0x2d,0x37, 0x1,0x53,0x40, 0x3,0x2e,0x6a, + 0x2,0x2d,0x2e, 0x4,0x2b,0x3a, 0x1,0x53,0x39, 0x1,0x53,0x43, + 0x3,0x2e,0x6b, 0x1,0x53,0x46, 0x1,0x53,0x48, 0x2,0x2d,0x43, + 0x2,0x2d,0x3a, 0x3,0x2e,0x78, 0x1,0x53,0x38, 0x2,0x2d,0x42, + 0x1,0x53,0x3c, 0x1,0x53,0x3a, 0x1,0x53,0x35, 0x2,0x2d,0x32, + 0x3,0x2e,0x72, 0x2,0x2d,0x41, 0x2,0x2d,0x36, 0x2,0x2d,0x39, + 0x2,0x2d,0x46, 0x3,0x2e,0x74, 0x1,0x53,0x49, 0x2,0x2d,0x40, + 0x1,0x53,0x41, 0x2,0x2d,0x3b, 0x2,0x2d,0x45, 0x2,0x2d,0x38, + 0x2,0x2d,0x3c, 0x2,0x2d,0x3f, 0x3,0x2e,0x69, 0x3,0x2e,0x6e, + 0x2,0x2d,0x30, 0x2,0x2d,0x44, 0x2,0x2d,0x3e, 0x3,0x2e,0x6f, + 0x3,0x2e,0x7a, 0x2,0x2d,0x2f, 0x6,0x34,0x3c, 0x2,0x2d,0x33, + 0x1,0x53,0x42, 0x1,0x53,0x3d, 0x1,0x53,0x36, 0x1,0x53,0x3b, + 0x1,0x53,0x37, 0x1,0x53,0x4a, 0x2,0x2d,0x31, 0x2,0x32,0x47, + 0x1,0x53,0x3e, 0x4,0x2b,0x3d, 0x3,0x2e,0x79, 0x2,0x2d,0x3d, + 0x2,0x29,0x42, 0x3,0x2e,0x77, 0x3,0x66,0x35, 0x3,0x66,0x37, + 0x2,0x32,0x4a, 0x1,0x57,0x7e, 0x3,0x33,0x62, 0x2,0x32,0x3a, + 0x4,0x2f,0x5d, 0x2,0x32,0x45, 0x2,0x32,0x41, 0x3,0x38,0x4d, + 0x2,0x32,0x54, 0x3,0x33,0x59, 0x2,0x32,0x4c, 0x3,0x33,0x5f, + 0x2,0x32,0x42, 0x3,0x38,0x5b, 0x2,0x32,0x4b, 0x2,0x32,0x3c, + 0x2,0x32,0x40, 0x2,0x32,0x57, 0x1,0x58,0x23, 0x2,0x32,0x4f, + 0x2,0x32,0x46, 0x1,0x57,0x71, 0x2,0x32,0x55, 0x2,0x32,0x38, + 0x4,0x2f,0x5a, 0x2,0x32,0x4e, 0x4,0x2f,0x63, 0x1,0x58,0x22, + 0x1,0x57,0x7b, 0x2,0x32,0x37, 0x1,0x57,0x79, 0x1,0x57,0x78, + 0x1,0x57,0x7d, 0x2,0x32,0x4d, 0x1,0x57,0x75, 0x1,0x57,0x7c, + 0x2,0x2d,0x35, 0x2,0x3f,0x41, 0x2,0x32,0x48, 0x4,0x2f,0x5f, + 0x3,0x2a,0x5f, 0x2,0x32,0x3e, 0x1,0x58,0x21, 0x2,0x32,0x3f, + 0x2,0x32,0x43, 0x1,0x58,0x24, 0x2,0x32,0x39, 0x2,0x32,0x51, + 0x3,0x3e,0x57, 0x2,0x32,0x50, 0x2,0x32,0x58, 0x1,0x57,0x77, + 0x1,0x57,0x74, 0x2,0x32,0x56, 0x2,0x32,0x52, 0x2,0x32,0x49, + 0x2,0x32,0x44, 0x1,0x57,0x7a, 0x1,0x57,0x76, 0x2,0x32,0x3b, + 0x1,0x57,0x72, 0x2,0x32,0x53, 0x1,0x57,0x73, 0x4,0x2f,0x5c, + 0x2,0x32,0x3d, 0x3,0x33,0x5a, 0x3,0x33,0x63, 0x3,0x66,0x36, + 0x3,0x2d,0x33, 0x4,0x34,0x67, 0x3,0x38,0x4e, 0x3,0x38,0x51, + 0x2,0x38,0x62, 0x2,0x38,0x64, 0x2,0x38,0x69, 0x2,0x38,0x7d, + 0x1,0x5d,0x23, 0x1,0x5c,0x77, 0x3,0x38,0x54, 0x2,0x38,0x61, + 0x1,0x5d,0x24, 0x1,0x5d,0x25, 0x2,0x38,0x6c, 0x2,0x38,0x73, + 0x2,0x38,0x79, 0x3,0x38,0x50, 0x2,0x38,0x66, 0x4,0x34,0x6d, + 0x2,0x38,0x6d, 0x3,0x38,0x4f, 0x3,0x38,0x5d, 0x1,0x5d,0x26, + 0x2,0x38,0x7b, 0x2,0x38,0x76, 0x1,0x5d,0x21, 0x1,0x5c,0x7d, + 0x2,0x38,0x72, 0x2,0x38,0x6e, 0x2,0x38,0x60, 0x1,0x5c,0x74, + 0x2,0x38,0x65, 0x2,0x38,0x5d, 0x3,0x38,0x55, 0x1,0x5c,0x7c, + 0x1,0x5c,0x7e, 0x2,0x38,0x6a, 0x2,0x38,0x67, 0x1,0x5c,0x79, + 0x2,0x38,0x77, 0x1,0x5c,0x76, 0x2,0x38,0x68, 0x2,0x3f,0x6a, + 0x2,0x38,0x70, 0x3,0x38,0x5e, 0x2,0x38,0x6f, 0x1,0x5c,0x75, + 0x3,0x38,0x57, 0x1,0x5d,0x22, 0x3,0x38,0x52, 0x1,0x5c,0x78, + 0x2,0x38,0x5e, 0x2,0x38,0x63, 0x2,0x38,0x74, 0x2,0x38,0x7a, + 0x1,0x5d,0x27, 0x2,0x38,0x5f, 0x2,0x38,0x6b, 0x2,0x38,0x71, + 0x1,0x5c,0x7b, 0x4,0x34,0x6f, 0x3,0x38,0x58, 0x2,0x38,0x7c, + 0x2,0x38,0x75, 0x2,0x38,0x78, 0x3,0x38,0x5f, 0xf,0x37,0x78, + 0x1,0x5c,0x7a, 0x4,0x3a,0x68, 0x2,0x3f,0x51, 0x2,0x3f,0x45, + 0x1,0x61,0x5d, 0x2,0x3f,0x62, 0x2,0x3f,0x6b, 0x2,0x3f,0x6e, + 0x1,0x61,0x5b, 0x2,0x3f,0x4d, 0x2,0x3f,0x66, 0x2,0x3f,0x4e, + 0x2,0x3f,0x5c, 0x1,0x61,0x68, 0x2,0x3f,0x58, 0x1,0x61,0x65, + 0x3,0x3e,0x5e, 0x2,0x3f,0x59, 0x2,0x3f,0x42, 0x5,0x3b,0x6f, + 0x2,0x3f,0x67, 0x3,0x3e,0x4f, 0x3,0x3e,0x59, 0x1,0x61,0x6e, + 0x2,0x3f,0x64, 0x2,0x3f,0x5a, 0x2,0x3f,0x70, 0x2,0x3f,0x55, + 0x2,0x46,0x6d, 0x3,0x3e,0x4d, 0x2,0x3f,0x73, 0x1,0x61,0x6c, + 0x2,0x3f,0x53, 0x2,0x3f,0x5f, 0x1,0x61,0x6f, 0x1,0x61,0x5a, + 0x2,0x3f,0x57, 0x2,0x3f,0x71, 0x2,0x3f,0x50, 0x2,0x3f,0x49, + 0x2,0x3f,0x54, 0x3,0x3e,0x5f, 0x2,0x3f,0x48, 0x2,0x3f,0x46, + 0x1,0x61,0x56, 0x2,0x3f,0x68, 0x2,0x3f,0x4f, 0x2,0x3f,0x6c, + 0x3,0x3e,0x4b, 0x2,0x3f,0x6d, 0x1,0x61,0x5e, 0x1,0x61,0x63, + 0x1,0x61,0x5f, 0x1,0x61,0x67, 0x2,0x3f,0x63, 0x1,0x61,0x60, + 0x2,0x3f,0x5b, 0x2,0x3f,0x4b, 0xf,0x3e,0x66, 0x1,0x61,0x58, + 0x2,0x3f,0x43, 0x2,0x3f,0x65, 0x2,0x3f,0x6f, 0x2,0x3f,0x4a, + 0x1,0x61,0x66, 0x2,0x3f,0x74, 0x2,0x3f,0x56, 0x3,0x3e,0x52, + 0x2,0x3f,0x52, 0x3,0x3e,0x5c, 0x1,0x61,0x57, 0x1,0x61,0x6b, + 0x3,0x3e,0x5a, 0x2,0x3f,0x61, 0x1,0x61,0x6d, 0x3,0x3e,0x50, + 0x2,0x3f,0x5d, 0x1,0x61,0x62, 0x1,0x61,0x5c, 0x1,0x61,0x64, + 0x1,0x61,0x59, 0x1,0x61,0x6a, 0x2,0x3f,0x5e, 0x2,0x3f,0x4c, + 0x2,0x3f,0x60, 0x2,0x3f,0x47, 0x2,0x3f,0x69, 0x3,0x3e,0x58, + 0x4,0x3a,0x67, 0x3,0x3e,0x5d, 0x3,0x3e,0x56, 0x3,0x3e,0x4e, + 0x2,0x3f,0x72, 0x3,0x66,0x39, 0x3,0x3e,0x5b, 0x3,0x66,0x38, + 0x2,0x3f,0x44, 0x2,0x46,0x6c, 0x3,0x44,0x2d, 0x2,0x47,0x24, + 0x1,0x65,0x5c, 0x2,0x46,0x71, 0x3,0x44,0x31, 0x2,0x46,0x6f, + 0x2,0x46,0x5a, 0x1,0x66,0x30, 0x2,0x46,0x6a, 0x2,0x46,0x7e, + 0x2,0x46,0x66, 0x1,0x66,0x38, 0x2,0x46,0x7d, 0x2,0x46,0x64, + 0x1,0x61,0x69, 0x2,0x46,0x74, 0x2,0x46,0x65, 0x2,0x46,0x7b, + 0x1,0x66,0x37, 0x1,0x66,0x2f, 0x3,0x44,0x3a, 0x2,0x46,0x4f, + 0x2,0x46,0x57, 0x3,0x44,0x35, 0x2,0x46,0x70, 0x2,0x46,0x68, + 0x2,0x47,0x23, 0x2,0x46,0x6b, 0x1,0x66,0x3d, 0x2,0x46,0x7c, + 0x3,0x44,0x2c, 0x1,0x66,0x34, 0x3,0x44,0x3e, 0x2,0x46,0x6e, + 0x2,0x46,0x76, 0x2,0x46,0x5b, 0x2,0x46,0x75, 0x3,0x44,0x27, + 0x2,0x47,0x28, 0x2,0x46,0x56, 0x2,0x46,0x77, 0x3,0x44,0x33, + 0x2,0x47,0x26, 0x3,0x44,0x3f, 0x2,0x46,0x50, 0x1,0x61,0x61, + 0x3,0x44,0x40, 0x2,0x46,0x5e, 0x2,0x46,0x5d, 0x1,0x66,0x36, + 0x3,0x44,0x32, 0x2,0x46,0x61, 0x2,0x46,0x63, 0x2,0x46,0x72, + 0x2,0x47,0x25, 0x1,0x66,0x39, 0x3,0x44,0x38, 0x1,0x66,0x3a, + 0x3,0x44,0x30, 0x2,0x46,0x55, 0x1,0x66,0x32, 0x2,0x46,0x59, + 0x2,0x47,0x21, 0x1,0x66,0x3b, 0x4,0x40,0x44, 0x1,0x66,0x33, + 0x1,0x66,0x35, 0x1,0x66,0x3c, 0x2,0x47,0x27, 0x2,0x46,0x78, + 0x2,0x46,0x73, 0x3,0x44,0x3c, 0x3,0x44,0x2f, 0x2,0x46,0x60, + 0x2,0x46,0x5f, 0x1,0x66,0x31, 0x2,0x46,0x51, 0x1,0x66,0x2e, + 0x2,0x46,0x69, 0x2,0x46,0x52, 0x2,0x46,0x67, 0x3,0x44,0x2e, + 0x4,0x40,0x41, 0x2,0x46,0x5c, 0x2,0x47,0x22, 0x3,0x44,0x2a, + 0x3,0x44,0x39, 0x4,0x40,0x36, 0x1,0x66,0x2d, 0x3,0x44,0x3b, + 0x3,0x44,0x28, 0x2,0x46,0x58, 0x4,0x40,0x46, 0x2,0x46,0x54, + 0x2,0x46,0x7a, 0x2,0x46,0x53, 0x1,0x6a,0x68, 0x2,0x4d,0x5a, + 0x3,0x49,0x35, 0x3,0x49,0x44, 0x2,0x4d,0x49, 0x3,0x49,0x33, + 0x3,0x49,0x38, 0x2,0x4d,0x33, 0x2,0x4d,0x51, 0x1,0x6a,0x60, + 0x2,0x4d,0x42, 0x2,0x4d,0x4c, 0x1,0x6a,0x63, 0x2,0x4d,0x45, + 0x1,0x6a,0x61, 0x2,0x4d,0x36, 0x2,0x4d,0x54, 0x2,0x4d,0x35, + 0x2,0x4d,0x48, 0x3,0x49,0x3c, 0x2,0x4d,0x34, 0x3,0x49,0x39, + 0x4,0x46,0x6c, 0x2,0x4d,0x46, 0x2,0x4d,0x4f, 0x2,0x4d,0x4d, + 0x2,0x4d,0x41, 0x2,0x4d,0x3c, 0x2,0x4d,0x3a, 0x3,0x49,0x42, + 0x2,0x4d,0x3b, 0x2,0x4d,0x4e, 0x2,0x4d,0x59, 0x2,0x4d,0x43, + 0x1,0x6a,0x62, 0x3,0x49,0x3b, 0x2,0x4d,0x3e, 0x3,0x49,0x3a, + 0x2,0x4d,0x52, 0x3,0x49,0x41, 0x1,0x6a,0x65, 0x2,0x4d,0x3d, + 0x2,0x4d,0x37, 0x2,0x4d,0x47, 0x1,0x6a,0x69, 0x3,0x49,0x32, + 0x4,0x46,0x58, 0x1,0x6a,0x5d, 0x1,0x6a,0x66, 0x2,0x4d,0x3f, + 0x2,0x4d,0x39, 0x3,0x49,0x36, 0x1,0x6a,0x5f, 0x2,0x46,0x79, + 0x1,0x6a,0x5e, 0x2,0x4d,0x4a, 0x3,0x44,0x36, 0x1,0x6a,0x5c, + 0x1,0x6a,0x6b, 0x1,0x6a,0x64, 0x2,0x4d,0x4b, 0x2,0x4d,0x40, + 0x2,0x4d,0x38, 0x2,0x4d,0x53, 0x2,0x4d,0x44, 0x1,0x6a,0x6a, + 0x2,0x4d,0x57, 0x1,0x6a,0x67, 0x2,0x4d,0x56, 0x3,0x49,0x3f, + 0x2,0x4d,0x50, 0x2,0x4d,0x55, 0x3,0x49,0x3e, 0x3,0x49,0x43, + 0x2,0x4d,0x58, 0x3,0x66,0x3b, 0x3,0x66,0x3c, 0x3,0x66,0x3a, + 0x3,0x49,0x3d, 0x2,0x53,0x5c, 0x2,0x53,0x5d, 0x2,0x53,0x50, + 0x2,0x53,0x4f, 0x2,0x53,0x4b, 0x1,0x6e,0x5d, 0x3,0x4e,0x4f, + 0x1,0x6e,0x55, 0x2,0x53,0x5f, 0x2,0x53,0x5e, 0x2,0x46,0x4e, + 0x2,0x53,0x48, 0x2,0x53,0x4c, 0x2,0x53,0x46, 0x3,0x4e,0x44, + 0x2,0x53,0x59, 0x2,0x53,0x4a, 0x3,0x4e,0x42, 0x2,0x53,0x60, + 0x2,0x53,0x43, 0x2,0x53,0x41, 0x2,0x53,0x4d, 0x2,0x53,0x57, + 0x2,0x53,0x52, 0x1,0x6e,0x5f, 0x2,0x53,0x38, 0x3,0x4e,0x40, + 0x2,0x53,0x56, 0x3,0x4e,0x4c, 0x3,0x4e,0x46, 0x3,0x4e,0x54, + 0x1,0x6e,0x60, 0x2,0x46,0x62, 0x2,0x53,0x44, 0x2,0x53,0x3b, + 0x2,0x53,0x3e, 0x2,0x53,0x64, 0x2,0x53,0x45, 0x2,0x53,0x3c, + 0x2,0x53,0x3a, 0x2,0x53,0x37, 0x4,0x4c,0x7a, 0x1,0x6e,0x59, + 0x2,0x53,0x4e, 0x1,0x6e,0x58, 0x1,0x6e,0x5c, 0x2,0x53,0x49, + 0x2,0x53,0x51, 0x1,0x6e,0x52, 0x2,0x53,0x61, 0x2,0x53,0x65, + 0x1,0x6e,0x54, 0x3,0x4e,0x4b, 0x2,0x53,0x40, 0x2,0x53,0x54, + 0x2,0x53,0x58, 0x2,0x53,0x3d, 0x2,0x53,0x62, 0x1,0x6e,0x5b, + 0x4,0x4c,0x6a, 0x1,0x6e,0x5a, 0x2,0x53,0x35, 0x1,0x6e,0x5e, + 0x2,0x53,0x5b, 0x2,0x53,0x3f, 0x2,0x53,0x53, 0x2,0x53,0x39, + 0x2,0x53,0x47, 0x2,0x53,0x42, 0x1,0x6e,0x56, 0x1,0x6e,0x57, + 0x2,0x53,0x55, 0x2,0x53,0x66, 0x2,0x53,0x63, 0x2,0x53,0x5a, + 0x4,0x4c,0x78, 0x3,0x4e,0x4d, 0x3,0x4e,0x4e, 0x3,0x4e,0x52, + 0x4,0x4c,0x74, 0x2,0x53,0x36, 0x1,0x6e,0x53, 0x2,0x59,0x74, + 0x3,0x52,0x5a, 0x2,0x59,0x6b, 0x2,0x59,0x6e, 0x3,0x52,0x52, + 0x1,0x72,0x25, 0x2,0x59,0x70, 0x2,0x59,0x65, 0x2,0x59,0x6c, + 0x2,0x59,0x72, 0x1,0x72,0x22, 0x1,0x72,0x26, 0x1,0x71,0x7e, + 0x3,0x52,0x59, 0x3,0x52,0x50, 0x2,0x59,0x67, 0x2,0x59,0x77, + 0x4,0x4d,0x25, 0x4,0x53,0x33, 0x2,0x59,0x71, 0x4,0x53,0x24, + 0x2,0x59,0x68, 0x2,0x5a,0x22, 0x2,0x59,0x7a, 0x2,0x59,0x64, + 0x2,0x5e,0x72, 0x2,0x59,0x6a, 0x1,0x72,0x21, 0x3,0x52,0x58, + 0x2,0x59,0x75, 0x3,0x52,0x54, 0x2,0x5a,0x21, 0x1,0x72,0x29, + 0x3,0x52,0x56, 0x2,0x59,0x7c, 0x2,0x59,0x69, 0x2,0x59,0x6f, + 0x2,0x59,0x73, 0x2,0x59,0x6d, 0x2,0x5a,0x23, 0x2,0x59,0x7e, + 0x2,0x59,0x7b, 0x1,0x72,0x23, 0x1,0x72,0x24, 0x1,0x72,0x28, + 0x2,0x59,0x66, 0x2,0x5a,0x24, 0x1,0x72,0x27, 0x2,0x59,0x78, + 0x3,0x52,0x4f, 0x3,0x52,0x55, 0x2,0x59,0x76, 0x3,0x66,0x3d, + 0x2,0x59,0x79, 0x2,0x5f,0x21, 0x2,0x5e,0x6c, 0x2,0x5e,0x71, + 0x2,0x5e,0x7e, 0x2,0x5e,0x70, 0x2,0x5e,0x68, 0x2,0x5e,0x6d, + 0x4,0x58,0x3e, 0x1,0x75,0x2c, 0x3,0x56,0x2b, 0x2,0x5e,0x61, + 0x2,0x5e,0x79, 0x2,0x5e,0x7b, 0x2,0x5e,0x60, 0x1,0x75,0x2b, + 0x2,0x5e,0x7d, 0x2,0x5e,0x75, 0x1,0x75,0x32, 0x2,0x5e,0x7c, + 0x2,0x5e,0x6e, 0x1,0x75,0x34, 0x2,0x5e,0x66, 0x2,0x59,0x7d, + 0x2,0x5e,0x76, 0x2,0x5e,0x73, 0x2,0x5e,0x62, 0x2,0x5f,0x23, + 0x1,0x75,0x2e, 0x3,0x56,0x28, 0x3,0x56,0x29, 0x1,0x75,0x2f, + 0x2,0x5e,0x64, 0x2,0x5e,0x74, 0x3,0x56,0x2d, 0x2,0x5f,0x22, + 0x2,0x5e,0x77, 0x2,0x5e,0x6a, 0x1,0x75,0x31, 0x1,0x75,0x2d, + 0x2,0x5e,0x78, 0x2,0x5e,0x6b, 0x2,0x5f,0x24, 0x2,0x5e,0x65, + 0x2,0x5e,0x6f, 0x2,0x5e,0x7a, 0x2,0x5e,0x67, 0x2,0x5e,0x69, + 0x4,0x58,0x40, 0x1,0x75,0x35, 0x2,0x5e,0x63, 0x1,0x75,0x33, + 0x1,0x77,0x30, 0x1,0x75,0x2a, 0x3,0x56,0x2c, 0x3,0x56,0x30, + 0x1,0x75,0x30, 0x1,0x77,0x34, 0x2,0x62,0x7d, 0x3,0x58,0x6c, + 0x2,0x62,0x73, 0x2,0x62,0x6e, 0x2,0x62,0x74, 0x2,0x62,0x7e, + 0x2,0x63,0x24, 0x2,0x63,0x23, 0x1,0x77,0x36, 0x1,0x77,0x35, + 0x3,0x58,0x6e, 0x4,0x5d,0x2c, 0x2,0x62,0x75, 0x2,0x63,0x25, + 0x2,0x62,0x78, 0x2,0x62,0x70, 0x3,0x58,0x6f, 0x2,0x62,0x72, + 0x2,0x62,0x71, 0x2,0x62,0x77, 0x2,0x62,0x7c, 0x2,0x62,0x6f, + 0x2,0x62,0x76, 0x2,0x62,0x7b, 0x1,0x77,0x33, 0x4,0x5d,0x28, + 0x2,0x62,0x79, 0x3,0x58,0x6b, 0x1,0x77,0x31, 0x2,0x62,0x7a, + 0x1,0x77,0x2f, 0x1,0x77,0x32, 0x2,0x66,0x60, 0x2,0x63,0x21, + 0x3,0x66,0x3e, 0x1,0x78,0x6d, 0x3,0x5a,0x7e, 0x2,0x66,0x58, + 0x2,0x66,0x5c, 0x2,0x66,0x54, 0x2,0x66,0x57, 0x3,0x5a,0x7d, + 0x2,0x66,0x5f, 0x1,0x78,0x6b, 0x2,0x66,0x64, 0x2,0x66,0x5d, + 0x4,0x60,0x7a, 0x2,0x66,0x55, 0x2,0x66,0x65, 0x2,0x66,0x5e, + 0x1,0x78,0x6e, 0x1,0x78,0x6f, 0x2,0x66,0x62, 0x3,0x5b,0x22, + 0x2,0x66,0x56, 0x1,0x78,0x6a, 0x1,0x78,0x6c, 0x2,0x66,0x51, + 0x2,0x66,0x59, 0x2,0x66,0x53, 0x3,0x5c,0x7b, 0x2,0x66,0x63, + 0x2,0x66,0x61, 0x2,0x66,0x52, 0x2,0x66,0x5a, 0x4,0x60,0x7b, + 0x3,0x5b,0x25, 0x3,0x66,0x3f, 0x2,0x69,0x6a, 0x1,0x78,0x70, + 0x2,0x66,0x5b, 0x1,0x7a,0x32, 0x1,0x7a,0x34, 0x1,0x7a,0x31, + 0x3,0x5c,0x76, 0x2,0x69,0x6f, 0x2,0x69,0x67, 0x2,0x69,0x65, + 0x2,0x69,0x69, 0x2,0x69,0x66, 0x3,0x5c,0x78, 0x3,0x5c,0x7c, + 0x2,0x69,0x6b, 0x2,0x69,0x6d, 0x1,0x7a,0x35, 0x1,0x7a,0x37, + 0x3,0x5d,0x22, 0x2,0x69,0x6c, 0x1,0x7a,0x38, 0x1,0x7a,0x36, + 0x2,0x69,0x6e, 0x3,0x5c,0x7e, 0x4,0x64,0x37, 0x3,0x5d,0x23, + 0x3,0x5c,0x77, 0x1,0x7a,0x33, 0x3,0x5d,0x21, 0x3,0x5e,0x5b, + 0x3,0x5e,0x5a, 0x1,0x7b,0x21, 0x2,0x6c,0x21, 0x2,0x6c,0x27, + 0x1,0x7b,0x23, 0x2,0x69,0x68, 0x2,0x6c,0x26, 0x3,0x5e,0x5c, + 0x2,0x6c,0x2d, 0x2,0x6c,0x24, 0x2,0x6c,0x2b, 0x2,0x6c,0x2a, + 0x2,0x69,0x64, 0x2,0x6c,0x25, 0x2,0x63,0x22, 0x2,0x6c,0x2e, + 0x2,0x6c,0x23, 0x2,0x6c,0x28, 0x3,0x5e,0x58, 0x2,0x6c,0x2c, + 0x2,0x6c,0x22, 0x3,0x5e,0x56, 0x2,0x6d,0x77, 0x1,0x7b,0x22, + 0x2,0x6c,0x29, 0x3,0x5e,0x57, 0x2,0x6f,0x43, 0x2,0x6d,0x78, + 0x2,0x6d,0x76, 0x2,0x6d,0x74, 0x2,0x6d,0x75, 0x2,0x6d,0x79, + 0x3,0x66,0x40, 0x1,0x7c,0x45, 0x2,0x6f,0x41, 0x2,0x6f,0x3f, + 0x2,0x6f,0x44, 0x2,0x6f,0x42, 0x3,0x60,0x43, 0x2,0x6f,0x45, + 0x1,0x7c,0x46, 0x2,0x6f,0x40, 0x3,0x60,0x2f, 0x3,0x61,0x46, + 0x2,0x70,0x4a, 0x3,0x66,0x41, 0x2,0x71,0x34, 0x2,0x71,0x35, + 0x2,0x71,0x36, 0x3,0x61,0x47, 0x3,0x61,0x7c, 0x2,0x72,0x35, + 0x2,0x72,0x2d, 0x2,0x22,0x6f, 0x1,0x4f,0x4d, 0x1,0x53,0x4b, + 0x4,0x2f,0x68, 0x2,0x32,0x5a, 0x2,0x32,0x59, 0x1,0x58,0x25, + 0x1,0x5d,0x28, 0x2,0x39,0x21, 0x3,0x38,0x63, 0x3,0x38,0x60, + 0x2,0x38,0x7e, 0x3,0x38,0x61, 0x1,0x61,0x70, 0x1,0x66,0x3f, + 0x3,0x3e,0x61, 0x1,0x66,0x3e, 0x1,0x66,0x40, 0x5,0x49,0x4e, + 0x2,0x4d,0x5b, 0x2,0x53,0x67, 0x2,0x5a,0x25, 0x2,0x5a,0x27, + 0x2,0x5a,0x26, 0x7,0x32,0x61, 0x1,0x75,0x36, 0x2,0x5f,0x25, + 0x2,0x63,0x26, 0x2,0x71,0x73, 0x1,0x48,0x65, 0x3,0x27,0x2d, + 0x2,0x28,0x69, 0x2,0x28,0x6a, 0x2,0x28,0x68, 0x2,0x28,0x67, + 0x1,0x4f,0x4e, 0x3,0x66,0x42, 0x2,0x2d,0x4a, 0x2,0x2d,0x48, + 0x3,0x2f,0x23, 0x3,0x2e,0x7c, 0x2,0x2d,0x47, 0x3,0x2e,0x7e, + 0x1,0x53,0x4c, 0x1,0x53,0x4e, 0x1,0x53,0x4d, 0x2,0x2d,0x49, + 0x3,0x2f,0x24, 0xf,0x2d,0x3e, 0x3,0x33,0x69, 0x2,0x32,0x66, + 0x2,0x32,0x63, 0x2,0x32,0x61, 0x4,0x2f,0x6d, 0x3,0x33,0x6c, + 0x1,0x58,0x26, 0x2,0x32,0x64, 0x1,0x58,0x2b, 0x2,0x32,0x5e, + 0x2,0x32,0x6d, 0x3,0x33,0x6f, 0x2,0x32,0x6f, 0x2,0x32,0x5f, + 0x3,0x33,0x6e, 0x1,0x58,0x28, 0x2,0x32,0x70, 0x2,0x32,0x6b, + 0x2,0x32,0x5d, 0x2,0x32,0x62, 0x2,0x32,0x6c, 0x2,0x32,0x68, + 0x2,0x32,0x65, 0x3,0x33,0x6b, 0x1,0x58,0x2d, 0x2,0x32,0x6e, + 0x2,0x32,0x60, 0x3,0x33,0x6a, 0x3,0x33,0x70, 0x2,0x32,0x69, + 0x2,0x32,0x5b, 0x1,0x58,0x2c, 0x1,0x58,0x29, 0x2,0x32,0x67, + 0x3,0x33,0x6d, 0x2,0x32,0x6a, 0x2,0x32,0x5c, 0x1,0x58,0x2a, + 0x1,0x58,0x27, 0x4,0x34,0x7a, 0x3,0x38,0x66, 0x1,0x5d,0x32, + 0x2,0x39,0x28, 0x1,0x5d,0x31, 0x3,0x38,0x64, 0x2,0x39,0x2b, + 0x2,0x39,0x2e, 0x1,0x5d,0x2e, 0x1,0x5d,0x2c, 0x2,0x39,0x23, + 0x2,0x39,0x2c, 0x2,0x39,0x2a, 0x2,0x39,0x27, 0x2,0x39,0x2f, + 0x2,0x39,0x30, 0x2,0x39,0x32, 0x2,0x39,0x33, 0x2,0x39,0x22, + 0x1,0x5d,0x2b, 0x2,0x39,0x25, 0x2,0x39,0x24, 0x2,0x39,0x31, + 0x1,0x5d,0x2d, 0x2,0x39,0x26, 0x1,0x5d,0x2f, 0x1,0x5d,0x2a, + 0x2,0x39,0x29, 0x1,0x5d,0x33, 0x4,0x35,0x26, 0x1,0x5d,0x30, + 0x2,0x39,0x2d, 0xf,0x38,0x3a, 0x1,0x61,0x77, 0x2,0x40,0x25, + 0x4,0x3a,0x71, 0x2,0x3f,0x78, 0x1,0x61,0x74, 0x3,0x3e,0x62, + 0x2,0x47,0x2e, 0x2,0x40,0x23, 0x2,0x3f,0x75, 0x1,0x61,0x72, + 0x2,0x3f,0x7a, 0x1,0x61,0x75, 0x2,0x3f,0x7e, 0x2,0x3f,0x7c, + 0x1,0x61,0x78, 0x1,0x61,0x71, 0x4,0x3a,0x76, 0x3,0x3e,0x63, + 0x2,0x3f,0x76, 0x2,0x3f,0x79, 0x1,0x61,0x76, 0x4,0x3a,0x6f, + 0x2,0x3f,0x77, 0x5,0x3b,0x7b, 0x2,0x40,0x24, 0x2,0x40,0x22, + 0x2,0x3f,0x7b, 0x2,0x3f,0x7d, 0x2,0x40,0x21, 0x1,0x61,0x73, + 0x3,0x3e,0x68, 0x2,0x47,0x2f, 0x2,0x47,0x35, 0x2,0x47,0x2b, + 0x2,0x47,0x31, 0x1,0x66,0x41, 0x2,0x47,0x2d, 0x1,0x66,0x47, + 0x3,0x44,0x44, 0x3,0x44,0x45, 0x1,0x66,0x46, 0x3,0x44,0x49, + 0x1,0x66,0x45, 0x2,0x47,0x34, 0x1,0x66,0x48, 0x1,0x66,0x49, + 0x2,0x47,0x2a, 0x2,0x47,0x37, 0x1,0x66,0x4a, 0x1,0x66,0x44, + 0x1,0x66,0x43, 0x2,0x47,0x33, 0x1,0x66,0x4b, 0x2,0x47,0x29, + 0x2,0x47,0x2c, 0x2,0x47,0x36, 0x2,0x47,0x32, 0x4,0x40,0x59, + 0x4,0x40,0x52, 0x2,0x4d,0x7b, 0x2,0x4d,0x70, 0x1,0x66,0x42, + 0x5,0x42,0x5d, 0x3,0x44,0x46, 0x3,0x44,0x48, 0x1,0x6a,0x72, + 0x2,0x4d,0x64, 0x2,0x4d,0x79, 0x2,0x4d,0x65, 0x1,0x6a,0x6d, + 0x3,0x49,0x4f, 0x2,0x4d,0x62, 0x4,0x40,0x55, 0x2,0x4d,0x6b, + 0x2,0x4d,0x63, 0x1,0x6a,0x6f, 0x2,0x4d,0x5d, 0x2,0x4d,0x78, + 0x1,0x6a,0x70, 0x2,0x4d,0x75, 0x2,0x4d,0x76, 0x2,0x4d,0x5e, + 0x1,0x6a,0x75, 0x2,0x4d,0x6d, 0x3,0x49,0x4a, 0x2,0x4d,0x67, + 0x2,0x4d,0x6e, 0x2,0x4d,0x61, 0x4,0x46,0x7e, 0x2,0x4d,0x7a, + 0x2,0x4d,0x72, 0x2,0x4d,0x6c, 0x2,0x4d,0x5c, 0x1,0x6a,0x71, + 0x2,0x4d,0x73, 0x3,0x49,0x45, 0x1,0x6a,0x74, 0x2,0x4d,0x77, + 0x3,0x49,0x4c, 0x2,0x4d,0x71, 0x1,0x6a,0x6e, 0x2,0x4d,0x6f, + 0x3,0x49,0x49, 0x2,0x4d,0x69, 0x1,0x6a,0x6c, 0x2,0x4d,0x60, + 0x2,0x4d,0x68, 0x2,0x4d,0x74, 0x2,0x4d,0x66, 0xf,0x4c,0x33, + 0x3,0x49,0x4e, 0x2,0x4d,0x6a, 0x3,0x49,0x4b, 0x3,0x66,0x43, + 0x1,0x6e,0x6a, 0x2,0x47,0x30, 0x2,0x53,0x79, 0x2,0x54,0x24, + 0x2,0x53,0x78, 0x2,0x53,0x74, 0x2,0x53,0x71, 0x1,0x6e,0x6b, + 0x2,0x53,0x6f, 0x1,0x6a,0x73, 0x2,0x53,0x68, 0x1,0x6e,0x69, + 0x2,0x53,0x6e, 0x1,0x6e,0x68, 0x2,0x53,0x73, 0x2,0x53,0x70, + 0x2,0x54,0x22, 0x2,0x53,0x7b, 0x2,0x53,0x75, 0x2,0x53,0x7a, + 0x1,0x6e,0x64, 0x2,0x53,0x72, 0x2,0x54,0x27, 0x2,0x53,0x69, + 0x2,0x53,0x6a, 0x2,0x54,0x23, 0x1,0x6e,0x65, 0x2,0x54,0x28, + 0x1,0x6e,0x67, 0x2,0x54,0x29, 0x2,0x53,0x77, 0x2,0x4d,0x5f, + 0x2,0x53,0x7d, 0x2,0x53,0x76, 0x2,0x54,0x21, 0x2,0x53,0x7c, + 0x5,0x50,0x55, 0x3,0x4e,0x5d, 0x4,0x4d,0x28, 0x2,0x53,0x6d, + 0x1,0x6e,0x62, 0x2,0x54,0x26, 0x1,0x6e,0x63, 0x2,0x53,0x6b, + 0x1,0x6e,0x66, 0x2,0x5a,0x32, 0x2,0x53,0x7e, 0x2,0x54,0x25, + 0x4,0x4d,0x31, 0x3,0x4e,0x59, 0x2,0x5a,0x2f, 0x1,0x6e,0x61, + 0x1,0x72,0x2a, 0x2,0x5a,0x39, 0x2,0x5a,0x35, 0x4,0x53,0x3c, + 0x2,0x5a,0x33, 0x2,0x5a,0x2e, 0x2,0x5a,0x3d, 0x3,0x52,0x5b, + 0x3,0x52,0x5d, 0x4,0x53,0x44, 0x1,0x72,0x2e, 0x3,0x52,0x5f, + 0x2,0x5a,0x2a, 0x2,0x5a,0x36, 0x2,0x5a,0x37, 0x2,0x5a,0x2d, + 0x2,0x5a,0x2c, 0x2,0x5a,0x3a, 0x4,0x53,0x41, 0x2,0x5a,0x30, + 0x2,0x5a,0x2b, 0x2,0x5a,0x31, 0x3,0x52,0x62, 0x2,0x5a,0x3c, + 0x2,0x5a,0x29, 0x2,0x5a,0x3b, 0x2,0x5a,0x38, 0x1,0x72,0x2c, + 0x1,0x72,0x2b, 0x4,0x53,0x39, 0x3,0x52,0x5e, 0x1,0x72,0x2d, + 0x2,0x5a,0x34, 0x2,0x5a,0x28, 0x3,0x66,0x45, 0x3,0x66,0x44, + 0x2,0x5f,0x27, 0x1,0x75,0x3c, 0x2,0x5f,0x2b, 0x2,0x5f,0x28, + 0x2,0x5f,0x2f, 0x2,0x5f,0x35, 0x2,0x5f,0x2a, 0x3,0x56,0x3a, + 0x2,0x5f,0x3e, 0x1,0x75,0x39, 0x2,0x5f,0x38, 0x2,0x5f,0x2d, + 0x2,0x5f,0x39, 0x2,0x5f,0x34, 0x2,0x5f,0x3b, 0x2,0x5f,0x2c, + 0x1,0x75,0x3e, 0x1,0x75,0x3d, 0x2,0x5f,0x2e, 0x2,0x5f,0x3c, + 0x2,0x5f,0x26, 0x2,0x5f,0x3a, 0x1,0x75,0x37, 0x3,0x56,0x39, + 0x2,0x5f,0x32, 0x2,0x5f,0x31, 0x2,0x5f,0x36, 0x2,0x5f,0x29, + 0x1,0x75,0x3b, 0x3,0x56,0x3b, 0x1,0x75,0x3f, 0x2,0x5f,0x30, + 0x2,0x5f,0x37, 0x1,0x75,0x40, 0x2,0x5f,0x33, 0x3,0x56,0x36, + 0x3,0x56,0x34, 0x1,0x75,0x38, 0x1,0x75,0x3a, 0x2,0x63,0x33, + 0x2,0x63,0x31, 0x3,0x5b,0x28, 0x3,0x58,0x76, 0x2,0x63,0x37, + 0x2,0x63,0x35, 0x2,0x63,0x38, 0x3,0x58,0x78, 0x2,0x63,0x2a, + 0x2,0x63,0x32, 0x2,0x63,0x3c, 0x2,0x5f,0x3d, 0x2,0x63,0x2e, + 0x1,0x77,0x3a, 0x2,0x53,0x6c, 0x2,0x63,0x29, 0x2,0x63,0x36, + 0x2,0x63,0x30, 0x2,0x63,0x2d, 0x2,0x63,0x28, 0x2,0x63,0x27, + 0x2,0x63,0x3b, 0x3,0x58,0x73, 0x2,0x63,0x2c, 0x2,0x63,0x2b, + 0x1,0x77,0x38, 0x2,0x63,0x34, 0x3,0x58,0x74, 0x1,0x77,0x37, + 0x3,0x58,0x75, 0x5,0x64,0x48, 0x1,0x77,0x39, 0x2,0x63,0x2f, + 0x2,0x63,0x3a, 0x3,0x66,0x46, 0x2,0x66,0x69, 0x2,0x66,0x6a, + 0x3,0x5b,0x2c, 0x1,0x78,0x74, 0x2,0x66,0x67, 0x1,0x78,0x71, + 0x2,0x66,0x6f, 0x3,0x5b,0x27, 0x1,0x78,0x75, 0x2,0x66,0x71, + 0x2,0x66,0x66, 0x2,0x63,0x39, 0x2,0x66,0x73, 0x2,0x66,0x68, + 0x5,0x69,0x43, 0x1,0x78,0x72, 0x2,0x66,0x6e, 0x3,0x5b,0x29, + 0x2,0x66,0x70, 0x2,0x66,0x6b, 0x2,0x66,0x72, 0x2,0x66,0x6d, + 0x2,0x66,0x6c, 0x1,0x78,0x73, 0x3,0x58,0x77, 0x3,0x5b,0x2b, + 0x2,0x69,0x71, 0x2,0x69,0x72, 0x3,0x5d,0x25, 0x2,0x69,0x74, + 0x1,0x7a,0x39, 0x1,0x7a,0x3a, 0x2,0x69,0x75, 0x2,0x69,0x73, + 0x3,0x5d,0x24, 0x2,0x69,0x70, 0x3,0x5e,0x5d, 0x2,0x6c,0x31, + 0x2,0x6c,0x34, 0x2,0x6c,0x30, 0x4,0x61,0x26, 0x1,0x7b,0x27, + 0x2,0x6c,0x32, 0x1,0x7b,0x26, 0x1,0x7b,0x25, 0x1,0x7b,0x24, + 0x2,0x6c,0x33, 0x2,0x6d,0x7e, 0x2,0x6d,0x7c, 0x3,0x5f,0x5f, + 0x2,0x6d,0x7b, 0x2,0x6c,0x2f, 0x2,0x6d,0x7d, 0x2,0x6c,0x35, + 0x2,0x6d,0x7a, 0x3,0x60,0x45, 0x2,0x6f,0x48, 0x2,0x6f,0x26, + 0x2,0x6f,0x46, 0x1,0x7c,0x47, 0x2,0x6f,0x47, 0x2,0x6f,0x49, + 0x3,0x66,0x47, 0x2,0x70,0x4d, 0x1,0x7c,0x66, 0x2,0x70,0x4c, + 0x2,0x70,0x4b, 0x1,0x7c,0x67, 0x4,0x6c,0x23, 0x1,0x7d,0x27, + 0x2,0x71,0x5d, 0x2,0x71,0x75, 0x2,0x71,0x74, 0x2,0x71,0x76, + 0x1,0x48,0x66, 0x2,0x2d,0x4b, 0x3,0x2f,0x26, 0x2,0x32,0x71, + 0x2,0x32,0x72, 0x3,0x38,0x6a, 0x3,0x3e,0x6a, 0x3,0x3e,0x69, + 0x2,0x40,0x26, 0x6,0x4e,0x4f, 0x2,0x6c,0x36, 0x2,0x70,0x4e, + 0x1,0x48,0x67, 0x1,0x53,0x4f, 0x2,0x2d,0x4c, 0x3,0x33,0x71, + 0x3,0x66,0x48, 0x4,0x35,0x27, 0x2,0x39,0x34, 0x1,0x5d,0x34, + 0x2,0x40,0x28, 0x2,0x40,0x27, 0x1,0x61,0x79, 0x3,0x44,0x4d, + 0x1,0x66,0x4c, 0x2,0x54,0x2a, 0x1,0x6e,0x6c, 0x3,0x4e,0x5f, + 0x1,0x6e,0x6d, 0x3,0x52,0x63, 0x3,0x52,0x64, 0x4,0x53,0x4b, + 0x1,0x72,0x2f, 0x1,0x7c,0x68, 0x1,0x48,0x68, 0x3,0x2f,0x27, + 0x2,0x2d,0x4d, 0x1,0x4f,0x50, 0x2,0x2d,0x4f, 0x2,0x2d,0x4e, + 0x1,0x53,0x50, 0x2,0x32,0x73, 0x3,0x33,0x74, 0x2,0x32,0x7a, + 0x1,0x58,0x2e, 0x2,0x32,0x78, 0x2,0x32,0x76, 0x3,0x33,0x77, + 0x2,0x32,0x7d, 0x2,0x32,0x74, 0x2,0x32,0x75, 0x1,0x58,0x2f, + 0x3,0x33,0x72, 0x1,0x58,0x33, 0x3,0x33,0x73, 0x3,0x33,0x75, + 0x2,0x32,0x7e, 0x1,0x58,0x32, 0x2,0x32,0x7c, 0x2,0x32,0x79, + 0x2,0x32,0x77, 0x1,0x58,0x30, 0x1,0x58,0x31, 0x2,0x32,0x7b, + 0x3,0x33,0x76, 0x3,0x66,0x49, 0x1,0x5d,0x36, 0x2,0x39,0x35, + 0x3,0x38,0x72, 0x1,0x5d,0x3b, 0x2,0x39,0x45, 0x1,0x5d,0x3a, + 0x2,0x39,0x47, 0x3,0x38,0x6e, 0x3,0x38,0x74, 0x2,0x39,0x3b, + 0x1,0x5d,0x38, 0x2,0x39,0x46, 0x3,0x38,0x6c, 0x2,0x39,0x36, + 0x1,0x5d,0x39, 0x2,0x39,0x42, 0x2,0x39,0x3e, 0x2,0x39,0x40, + 0x2,0x39,0x3a, 0x2,0x39,0x41, 0x3,0x38,0x6b, 0x4,0x35,0x2f, + 0x1,0x5d,0x35, 0x2,0x39,0x3d, 0x3,0x38,0x73, 0x2,0x39,0x3c, + 0x2,0x39,0x38, 0x3,0x38,0x6d, 0x2,0x39,0x43, 0x3,0x38,0x6f, + 0x3,0x38,0x71, 0x2,0x39,0x3f, 0x2,0x39,0x37, 0x3,0x38,0x70, + 0x2,0x39,0x39, 0x1,0x5d,0x37, 0x2,0x39,0x44, 0x1,0x61,0x7c, + 0x2,0x40,0x33, 0x4,0x3a,0x7b, 0x3,0x3e,0x70, 0x3,0x3e,0x72, + 0x2,0x40,0x2f, 0x2,0x40,0x31, 0x2,0x40,0x2c, 0x2,0x40,0x2b, + 0x2,0x40,0x29, 0x3,0x3e,0x6d, 0x2,0x40,0x30, 0x2,0x40,0x32, + 0x2,0x40,0x2e, 0x3,0x3e,0x6f, 0x2,0x40,0x2d, 0x1,0x61,0x7a, + 0x1,0x61,0x7b, 0x2,0x40,0x35, 0x1,0x66,0x54, 0x2,0x47,0x39, + 0x2,0x47,0x3f, 0x2,0x47,0x3a, 0x2,0x47,0x3b, 0x3,0x44,0x4e, + 0x2,0x47,0x40, 0x5,0x42,0x6c, 0x1,0x66,0x56, 0x4,0x40,0x61, + 0x1,0x66,0x4e, 0x1,0x66,0x55, 0x2,0x47,0x38, 0x2,0x40,0x2a, + 0x1,0x66,0x51, 0x1,0x66,0x4f, 0x2,0x47,0x3e, 0x2,0x47,0x3d, + 0x1,0x66,0x50, 0x1,0x66,0x52, 0x2,0x47,0x3c, 0x1,0x66,0x4d, + 0x3,0x44,0x4f, 0x1,0x66,0x53, 0x3,0x4e,0x60, 0x2,0x4d,0x7d, + 0x1,0x6a,0x7c, 0x3,0x49,0x59, 0x3,0x49,0x52, 0x2,0x4e,0x2a, + 0x2,0x4e,0x29, 0x3,0x49,0x57, 0x2,0x4e,0x24, 0x1,0x6a,0x7e, + 0x2,0x4e,0x28, 0x2,0x4d,0x7e, 0x2,0x4e,0x21, 0x1,0x6a,0x76, + 0x1,0x6a,0x78, 0x3,0x49,0x54, 0x2,0x4e,0x26, 0x2,0x4d,0x7c, + 0x1,0x6a,0x7a, 0x1,0x6a,0x79, 0x2,0x4e,0x22, 0x2,0x4e,0x27, + 0x2,0x4e,0x25, 0x1,0x6a,0x7b, 0x2,0x4e,0x23, 0x3,0x49,0x51, + 0x3,0x49,0x56, 0x2,0x40,0x34, 0x1,0x6a,0x77, 0x3,0x49,0x58, + 0x2,0x54,0x2b, 0x2,0x54,0x32, 0x1,0x6e,0x6f, 0x4,0x4d,0x46, + 0x2,0x54,0x36, 0x1,0x6e,0x73, 0x2,0x54,0x2e, 0x2,0x54,0x2c, + 0x4,0x4d,0x3e, 0x2,0x54,0x35, 0x3,0x4e,0x61, 0x1,0x6e,0x6e, + 0x2,0x54,0x34, 0x1,0x6e,0x70, 0x1,0x6e,0x71, 0x2,0x54,0x2d, + 0x1,0x6e,0x72, 0x2,0x54,0x33, 0x2,0x54,0x2f, 0x2,0x54,0x30, + 0x2,0x54,0x31, 0x1,0x6a,0x7d, 0x3,0x4e,0x62, 0x2,0x5a,0x3e, + 0x2,0x5a,0x4a, 0x4,0x53,0x53, 0x1,0x72,0x34, 0x2,0x5a,0x45, + 0x2,0x5a,0x47, 0x3,0x52,0x65, 0x1,0x72,0x32, 0x2,0x5a,0x3f, + 0x2,0x5a,0x43, 0x4,0x53,0x50, 0x2,0x5a,0x46, 0x1,0x72,0x30, + 0x1,0x72,0x33, 0x2,0x5a,0x49, 0x2,0x5a,0x41, 0x2,0x5a,0x42, + 0x2,0x5a,0x48, 0x2,0x5a,0x40, 0x2,0x5a,0x44, 0x1,0x72,0x31, + 0x2,0x5f,0x40, 0x2,0x5f,0x3f, 0x1,0x75,0x42, 0x2,0x5f,0x45, + 0x1,0x75,0x44, 0x3,0x56,0x40, 0x4,0x58,0x62, 0x1,0x75,0x41, + 0x2,0x5f,0x41, 0x1,0x75,0x45, 0x2,0x5f,0x42, 0x3,0x56,0x3f, + 0x3,0x56,0x3d, 0x2,0x5f,0x43, 0x2,0x5f,0x46, 0x3,0x56,0x42, + 0x1,0x75,0x43, 0x2,0x63,0x41, 0x3,0x58,0x79, 0x2,0x63,0x44, + 0x3,0x58,0x7a, 0x2,0x63,0x3e, 0x2,0x63,0x40, 0x3,0x58,0x7c, + 0x3,0x58,0x7b, 0x2,0x63,0x3f, 0x2,0x63,0x42, 0x2,0x63,0x43, + 0x2,0x5f,0x44, 0x2,0x63,0x3d, 0x3,0x66,0x4a, 0x1,0x78,0x78, + 0x2,0x66,0x77, 0x2,0x66,0x7a, 0x2,0x66,0x7c, 0x2,0x66,0x75, + 0x2,0x66,0x76, 0x2,0x66,0x79, 0x2,0x66,0x7b, 0x1,0x78,0x79, + 0x1,0x78,0x77, 0x1,0x78,0x76, 0x2,0x66,0x78, 0x2,0x66,0x74, + 0x2,0x69,0x76, 0x1,0x7a,0x3b, 0x3,0x5d,0x29, 0x2,0x69,0x77, + 0x3,0x5d,0x28, 0x2,0x6c,0x38, 0x1,0x7b,0x28, 0x2,0x6c,0x3a, + 0x1,0x7b,0x29, 0x2,0x6c,0x37, 0x2,0x6c,0x39, 0x1,0x7b,0x72, + 0x5,0x74,0x38, 0x2,0x6e,0x21, 0x1,0x7b,0x71, 0x2,0x6f,0x4c, + 0x2,0x6f,0x4b, 0x4,0x6c,0x25, 0x2,0x6f,0x4a, 0xf,0x68,0x4a, + 0x3,0x61,0x49, 0x2,0x71,0x37, 0x2,0x71,0x38, 0x2,0x71,0x3a, + 0x2,0x71,0x39, 0x3,0x61,0x7d, 0x2,0x22,0x70, 0x1,0x48,0x69, + 0x1,0x53,0x51, 0x2,0x39,0x48, 0x1,0x61,0x7d, 0x3,0x66,0x4b, + 0x2,0x47,0x41, 0x1,0x77,0x3b, 0x3,0x5b,0x2f, 0x2,0x66,0x7d, + 0x3,0x60,0x46, 0x3,0x61,0x4a, 0x1,0x4b,0x44, 0x3,0x2f,0x29, + 0x4,0x2f,0x76, 0x4,0x2f,0x75, 0x1,0x5d,0x3d, 0x4,0x35,0x34, + 0x3,0x38,0x76, 0x3,0x38,0x75, 0x1,0x5d,0x3c, 0x3,0x38,0x77, + 0x2,0x40,0x36, 0x1,0x61,0x7e, 0x2,0x40,0x38, 0x2,0x40,0x37, + 0x6,0x4e,0x60, 0x3,0x3e,0x74, 0x2,0x47,0x42, 0x1,0x66,0x57, + 0x2,0x4e,0x2b, 0x2,0x4e,0x2e, 0x2,0x4e,0x2d, 0x4,0x47,0x35, + 0x2,0x4e,0x2c, 0x2,0x54,0x37, 0x2,0x54,0x39, 0x2,0x54,0x38, + 0x3,0x4e,0x65, 0x1,0x72,0x36, 0x3,0x52,0x66, 0x4,0x53,0x59, + 0x3,0x4e,0x64, 0x1,0x72,0x35, 0x3,0x56,0x46, 0x1,0x75,0x46, + 0x2,0x5f,0x47, 0x2,0x5f,0x49, 0x2,0x5f,0x48, 0x3,0x58,0x7e, + 0x3,0x58,0x7d, 0x1,0x77,0x3c, 0x3,0x59,0x21, 0x4,0x61,0x2f, + 0x3,0x5b,0x31, 0x2,0x67,0x21, 0x2,0x66,0x7e, 0xf,0x63,0x77, + 0x2,0x69,0x78, 0x1,0x7a,0x3c, 0x3,0x5d,0x2a, 0x3,0x5e,0x61, + 0x1,0x7b,0x2a, 0x2,0x6e,0x23, 0x2,0x6e,0x22, 0x1,0x7d,0x28, + 0x1,0x4b,0x45, 0x2,0x2d,0x50, 0x1,0x53,0x52, 0x2,0x39,0x4b, + 0x2,0x39,0x49, 0x4,0x35,0x39, 0x4,0x35,0x38, 0x2,0x39,0x4a, + 0x2,0x40,0x3a, 0x2,0x40,0x3b, 0x2,0x47,0x49, 0x2,0x40,0x39, + 0x2,0x47,0x43, 0x2,0x47,0x47, 0x2,0x47,0x46, 0x2,0x47,0x48, + 0x1,0x66,0x58, 0x2,0x47,0x45, 0x2,0x47,0x44, 0x2,0x47,0x4a, + 0x3,0x44,0x54, 0x2,0x4e,0x31, 0x2,0x4e,0x2f, 0x3,0x49,0x5c, + 0x2,0x4e,0x30, 0x2,0x54,0x3c, 0x2,0x54,0x3a, 0x3,0x4e,0x66, + 0x2,0x54,0x3b, 0x2,0x5a,0x4b, 0x2,0x5f,0x4a, 0x2,0x5f,0x4b, + 0x1,0x77,0x3d, 0x3,0x5b,0x32, 0x2,0x67,0x22, 0x2,0x69,0x79, + 0x1,0x7a,0x3d, 0x4,0x61,0x37, 0x2,0x6c,0x3b, 0x2,0x6e,0x24, + 0x1,0x7b,0x73, 0x4,0x69,0x45, 0x2,0x6f,0x4d, 0x2,0x71,0x3b, + 0x1,0x4b,0x46, 0x1,0x53,0x54, 0x1,0x53,0x55, 0x2,0x2d,0x51, + 0x3,0x2f,0x2a, 0x3,0x2f,0x2c, 0x2,0x2d,0x52, 0x1,0x53,0x53, + 0x4,0x2f,0x7c, 0x1,0x58,0x39, 0x3,0x33,0x7b, 0x1,0x58,0x37, + 0x3,0x33,0x7a, 0x1,0x58,0x36, 0x1,0x58,0x3d, 0x1,0x58,0x35, + 0x1,0x58,0x3e, 0x2,0x33,0x21, 0x1,0x58,0x3b, 0x4,0x2f,0x7d, + 0x1,0x58,0x38, 0x1,0x58,0x3c, 0x1,0x58,0x3a, 0x1,0x58,0x34, + 0x3,0x33,0x7c, 0x1,0x5d,0x45, 0x3,0x38,0x7e, 0x1,0x5d,0x3f, + 0x2,0x39,0x4f, 0x1,0x5d,0x44, 0x3,0x39,0x23, 0x3,0x39,0x29, + 0x1,0x5d,0x46, 0x1,0x5d,0x40, 0x6,0x44,0x70, 0x1,0x5d,0x41, + 0x3,0x38,0x79, 0x2,0x39,0x4d, 0x3,0x38,0x7b, 0x3,0x39,0x25, + 0x1,0x5d,0x3e, 0x3,0x39,0x22, 0x2,0x39,0x4e, 0x1,0x5d,0x43, + 0x4,0x35,0x3d, 0x5,0x35,0x5b, 0x2,0x39,0x4c, 0x1,0x5d,0x42, + 0x3,0x38,0x7a, 0x1,0x62,0x2b, 0x3,0x3e,0x7c, 0x1,0x62,0x2d, + 0x4,0x3b,0x2f, 0x3,0x3e,0x7d, 0x2,0x40,0x3e, 0x1,0x62,0x2c, + 0x1,0x62,0x21, 0x1,0x62,0x25, 0x3,0x3f,0x24, 0x1,0x66,0x6b, + 0x2,0x47,0x4f, 0x2,0x40,0x40, 0x1,0x62,0x26, 0x3,0x3e,0x7e, + 0x3,0x3e,0x75, 0x2,0x40,0x43, 0x2,0x40,0x44, 0x1,0x62,0x2a, + 0x4,0x3b,0x30, 0x2,0x40,0x46, 0x3,0x3f,0x21, 0x2,0x40,0x48, + 0x3,0x3f,0x23, 0x2,0x40,0x49, 0x2,0x40,0x3d, 0x2,0x40,0x3c, + 0x2,0x40,0x4a, 0x1,0x62,0x29, 0x2,0x40,0x47, 0x2,0x40,0x45, + 0x4,0x3b,0x2c, 0x1,0x62,0x27, 0x1,0x62,0x23, 0x1,0x62,0x2e, + 0x2,0x40,0x41, 0x2,0x40,0x42, 0x2,0x40,0x3f, 0x3,0x3e,0x78, + 0x1,0x62,0x28, 0x4,0x3b,0x31, 0x3,0x3f,0x22, 0x1,0x62,0x24, + 0x1,0x62,0x22, 0x2,0x47,0x4e, 0x1,0x66,0x66, 0x1,0x66,0x61, + 0x3,0x44,0x60, 0x3,0x44,0x59, 0x1,0x66,0x5c, 0x3,0x44,0x63, + 0x1,0x66,0x6c, 0x1,0x66,0x5d, 0x3,0x44,0x55, 0x1,0x66,0x59, + 0x1,0x66,0x68, 0x1,0x66,0x65, 0x1,0x66,0x67, 0x3,0x44,0x58, + 0x1,0x66,0x5e, 0x1,0x66,0x63, 0x1,0x66,0x5a, 0x1,0x66,0x5b, + 0x2,0x47,0x56, 0x2,0x47,0x53, 0x2,0x47,0x4b, 0x2,0x47,0x50, + 0x3,0x44,0x5b, 0x1,0x66,0x69, 0x2,0x47,0x57, 0x1,0x66,0x6a, + 0x1,0x66,0x60, 0x3,0x44,0x5c, 0x3,0x44,0x61, 0x2,0x47,0x4d, + 0x3,0x44,0x56, 0x2,0x47,0x55, 0x2,0x47,0x51, 0x2,0x47,0x54, + 0x2,0x47,0x52, 0x1,0x66,0x64, 0x2,0x47,0x4c, 0x1,0x66,0x5f, + 0x3,0x44,0x5d, 0x2,0x4e,0x34, 0x1,0x6b,0x22, 0x1,0x6b,0x25, + 0x3,0x49,0x5f, 0x2,0x4e,0x36, 0x3,0x49,0x64, 0x1,0x6b,0x2d, + 0x2,0x4e,0x35, 0x1,0x6b,0x27, 0x3,0x49,0x63, 0x1,0x6e,0x78, + 0x2,0x4e,0x37, 0x4,0x47,0x45, 0x1,0x6b,0x2c, 0x2,0x4e,0x33, + 0x1,0x6b,0x2e, 0x3,0x49,0x5e, 0x3,0x49,0x62, 0x3,0x49,0x6b, + 0x1,0x6b,0x23, 0x3,0x49,0x68, 0x1,0x66,0x62, 0x1,0x6b,0x26, + 0x3,0x49,0x60, 0x1,0x6b,0x24, 0x1,0x6b,0x28, 0x1,0x6b,0x2a, + 0x1,0x6b,0x21, 0x1,0x6b,0x2f, 0x1,0x6b,0x2b, 0x3,0x49,0x65, + 0x1,0x6b,0x29, 0x2,0x4e,0x32, 0x3,0x49,0x66, 0xf,0x4c,0x41, + 0x3,0x4e,0x74, 0x1,0x6f,0x21, 0x3,0x4e,0x67, 0x1,0x6e,0x7b, + 0x3,0x4e,0x72, 0x3,0x4e,0x70, 0x3,0x4e,0x6e, 0x1,0x6f,0x24, + 0x3,0x4e,0x6c, 0x2,0x54,0x3f, 0x1,0x6f,0x25, 0x2,0x54,0x4b, + 0x2,0x54,0x44, 0x1,0x6e,0x74, 0x2,0x54,0x4c, 0x2,0x54,0x46, + 0x1,0x6e,0x7e, 0x2,0x54,0x47, 0x3,0x4e,0x73, 0x1,0x6e,0x7d, + 0x2,0x54,0x4a, 0x1,0x6e,0x77, 0x2,0x54,0x48, 0x2,0x54,0x3e, + 0x1,0x6e,0x76, 0x2,0x5a,0x56, 0x1,0x6e,0x7c, 0x3,0x4e,0x75, + 0x1,0x6e,0x79, 0x3,0x4e,0x69, 0x1,0x6f,0x23, 0x3,0x4e,0x6a, + 0x2,0x54,0x3d, 0x3,0x4e,0x76, 0x2,0x54,0x41, 0x1,0x6e,0x75, + 0x2,0x54,0x40, 0x2,0x54,0x42, 0x2,0x54,0x43, 0x1,0x6f,0x22, + 0x2,0x54,0x45, 0x2,0x54,0x49, 0x2,0x54,0x4d, 0x1,0x6f,0x26, + 0x1,0x72,0x3c, 0x2,0x5a,0x51, 0x2,0x5a,0x57, 0x2,0x5a,0x54, + 0x2,0x5a,0x4c, 0x2,0x5a,0x58, 0x2,0x5a,0x4d, 0x3,0x52,0x6a, + 0x2,0x5a,0x53, 0x3,0x52,0x6b, 0x1,0x72,0x37, 0x1,0x72,0x3d, + 0x2,0x5a,0x59, 0x3,0x4e,0x6f, 0x3,0x52,0x67, 0x1,0x72,0x39, + 0x3,0x52,0x6e, 0x1,0x72,0x43, 0x1,0x72,0x3e, 0x2,0x5a,0x5b, + 0x2,0x5a,0x55, 0x1,0x72,0x3a, 0x2,0x5a,0x4e, 0x1,0x72,0x44, + 0x2,0x5a,0x4f, 0x2,0x5a,0x50, 0x1,0x72,0x45, 0x1,0x72,0x42, + 0x1,0x6e,0x7a, 0x3,0x52,0x69, 0x1,0x72,0x38, 0x2,0x5a,0x5c, + 0x1,0x72,0x46, 0x3,0x52,0x68, 0x1,0x72,0x3f, 0x2,0x5a,0x5a, + 0x1,0x72,0x3b, 0x1,0x72,0x40, 0x1,0x72,0x41, 0x3,0x66,0x4c, + 0x1,0x75,0x4e, 0x2,0x5f,0x50, 0x2,0x5f,0x59, 0x2,0x5f,0x56, + 0x2,0x5f,0x58, 0x3,0x56,0x49, 0x1,0x75,0x4b, 0x2,0x5f,0x51, + 0x3,0x56,0x4a, 0x2,0x5f,0x57, 0x1,0x75,0x47, 0x2,0x5f,0x53, + 0x1,0x75,0x4f, 0x2,0x5f,0x4f, 0x2,0x5f,0x54, 0x2,0x5f,0x5b, + 0x2,0x5a,0x52, 0x2,0x5f,0x55, 0x2,0x5f,0x4e, 0x1,0x75,0x48, + 0x2,0x5f,0x4d, 0x1,0x75,0x49, 0x2,0x5f,0x5c, 0x1,0x75,0x4a, + 0x2,0x5f,0x5a, 0x1,0x75,0x4d, 0x2,0x5f,0x4c, 0x3,0x56,0x48, + 0x1,0x75,0x4c, 0x2,0x5f,0x52, 0x2,0x63,0x47, 0x2,0x63,0x55, + 0x2,0x63,0x50, 0x2,0x63,0x52, 0x2,0x63,0x46, 0x1,0x77,0x3e, + 0x3,0x59,0x2a, 0x2,0x63,0x45, 0x1,0x77,0x41, 0x1,0x77,0x40, + 0x3,0x59,0x26, 0x2,0x63,0x54, 0x2,0x63,0x4c, 0x2,0x63,0x49, + 0x2,0x63,0x4f, 0x3,0x59,0x24, 0x2,0x63,0x48, 0x3,0x59,0x28, + 0x2,0x63,0x4a, 0x2,0x63,0x53, 0x2,0x63,0x51, 0x3,0x59,0x23, + 0x1,0x77,0x3f, 0x2,0x63,0x58, 0x2,0x63,0x56, 0x2,0x63,0x4d, + 0x2,0x63,0x57, 0x2,0x63,0x4e, 0x3,0x5b,0x34, 0x2,0x67,0x26, + 0x1,0x78,0x7a, 0x2,0x67,0x2d, 0x3,0x5b,0x35, 0x4,0x61,0x3a, + 0x2,0x6c,0x3e, 0x1,0x79,0x23, 0x2,0x63,0x4b, 0x2,0x67,0x24, + 0x1,0x78,0x7d, 0x2,0x67,0x25, 0x2,0x67,0x2a, 0x3,0x5b,0x36, + 0x3,0x5d,0x33, 0x1,0x79,0x21, 0x1,0x79,0x22, 0x2,0x67,0x23, + 0x2,0x67,0x2c, 0x2,0x67,0x2e, 0x2,0x67,0x27, 0x2,0x67,0x29, + 0x2,0x67,0x2b, 0x2,0x67,0x28, 0x2,0x67,0x2f, 0x1,0x78,0x7c, + 0x1,0x79,0x24, 0x1,0x78,0x7e, 0x1,0x78,0x7b, 0x2,0x69,0x7c, + 0x4,0x64,0x4d, 0x1,0x7a,0x42, 0x2,0x69,0x7a, 0x3,0x5d,0x30, + 0x3,0x5d,0x2c, 0x2,0x69,0x7e, 0x3,0x5d,0x32, 0x2,0x6a,0x21, + 0x1,0x7a,0x40, 0x2,0x6a,0x22, 0x2,0x69,0x7d, 0x3,0x5d,0x2b, + 0x2,0x69,0x7b, 0x1,0x7a,0x43, 0x1,0x7a,0x3f, 0x2,0x6a,0x23, + 0x3,0x5d,0x2e, 0x1,0x7a,0x41, 0x1,0x7a,0x3e, 0x3,0x5c,0x6d, + 0x4,0x67,0x3b, 0x1,0x7b,0x2b, 0x3,0x5e,0x62, 0x4,0x67,0x41, + 0x1,0x7b,0x2c, 0x2,0x6c,0x3d, 0x2,0x6c,0x3c, 0x2,0x6c,0x3f, + 0x2,0x6c,0x40, 0x3,0x5e,0x63, 0x1,0x7b,0x2d, 0x2,0x6e,0x25, + 0x2,0x6e,0x2a, 0x1,0x7b,0x74, 0x3,0x5f,0x61, 0x2,0x6e,0x27, + 0x3,0x5f,0x62, 0x2,0x6e,0x26, 0x2,0x6e,0x29, 0x2,0x6e,0x28, + 0x3,0x60,0x48, 0x2,0x6f,0x51, 0x4,0x6a,0x7c, 0x1,0x7c,0x48, + 0x2,0x6f,0x50, 0x2,0x6f,0x4e, 0x3,0x60,0x47, 0x2,0x6f,0x4f, + 0x3,0x60,0x49, 0x3,0x60,0x7b, 0x1,0x7c,0x6a, 0x1,0x7c,0x69, + 0x2,0x70,0x4f, 0x2,0x70,0x50, 0x1,0x7c,0x6b, 0x3,0x61,0x4b, + 0x2,0x71,0x3c, 0x2,0x71,0x3d, 0x1,0x7d,0x34, 0x3,0x61,0x6b, + 0x1,0x7d,0x3a, 0x3,0x61,0x7e, 0x2,0x71,0x77, 0x2,0x72,0x36, + 0x1,0x4b,0x47, 0x5,0x30,0x46, 0x2,0x39,0x50, 0x3,0x39,0x2a, + 0x2,0x39,0x51, 0x2,0x47,0x58, 0x2,0x4e,0x38, 0x2,0x54,0x4e, + 0x1,0x75,0x51, 0x3,0x56,0x4d, 0x1,0x75,0x50, 0x2,0x63,0x59, + 0x2,0x67,0x30, 0x3,0x5f,0x64, 0x2,0x6f,0x52, 0x1,0x4b,0x48, + 0x2,0x33,0x22, 0x1,0x58,0x3f, 0x1,0x5d,0x47, 0x2,0x47,0x5a, + 0x2,0x47,0x59, 0x1,0x6f,0x27, 0x2,0x54,0x4f, 0x1,0x6f,0x28, + 0x2,0x5f,0x5d, 0x1,0x77,0x42, 0x3,0x5d,0x34, 0x3,0x66,0x4d, + 0x3,0x62,0x21, 0x1,0x7d,0x43, 0x1,0x4b,0x49, 0x2,0x28,0x6b, + 0x2,0x33,0x23, 0x3,0x39,0x2d, 0x4,0x35,0x4d, 0x1,0x5d,0x48, + 0x3,0x39,0x2c, 0x2,0x39,0x52, 0x2,0x39,0x53, 0x3,0x3f,0x2a, + 0x2,0x40,0x4b, 0x3,0x3f,0x29, 0x1,0x62,0x2f, 0x1,0x66,0x6d, + 0x3,0x44,0x64, 0x2,0x47,0x5c, 0x2,0x47,0x5b, 0x2,0x47,0x5d, + 0x3,0x49,0x6d, 0x2,0x4e,0x39, 0x2,0x4e,0x3a, 0x1,0x6b,0x30, + 0x1,0x72,0x47, 0x1,0x6f,0x29, 0x1,0x72,0x48, 0x2,0x5f,0x61, + 0x2,0x5f,0x5e, 0x2,0x5f,0x60, 0x2,0x5f,0x5f, 0x1,0x75,0x52, + 0x3,0x59,0x2b, 0x2,0x63,0x5a, 0x2,0x67,0x32, 0x2,0x67,0x31, + 0x2,0x25,0x24, 0x1,0x58,0x41, 0x1,0x58,0x40, 0x2,0x33,0x24, + 0x3,0x39,0x2e, 0x2,0x39,0x54, 0x3,0x3f,0x2c, 0x3,0x3f,0x2b, + 0x2,0x40,0x4d, 0x2,0x40,0x4c, 0x1,0x62,0x30, 0x3,0x3f,0x2d, + 0x2,0x47,0x5f, 0x2,0x47,0x60, 0x2,0x47,0x5e, 0x4,0x40,0x78, + 0x3,0x44,0x65, 0x1,0x66,0x6f, 0x1,0x66,0x6e, 0x4,0x47,0x54, + 0x1,0x6b,0x32, 0x1,0x6b,0x31, 0x3,0x4e,0x7a, 0x2,0x54,0x50, + 0x2,0x5a,0x5f, 0x2,0x5a,0x5d, 0x2,0x5a,0x5e, 0x1,0x72,0x49, + 0x2,0x5f,0x63, 0x2,0x5f,0x62, 0x3,0x56,0x4f, 0x2,0x63,0x5d, + 0x2,0x63,0x5c, 0x2,0x63,0x5b, 0x2,0x67,0x33, 0x3,0x61,0x4d, + 0x2,0x71,0x78, 0x1,0x4b,0x4a, 0x1,0x53,0x56, 0x3,0x2f,0x2e, + 0x1,0x53,0x57, 0x1,0x58,0x42, 0x1,0x58,0x43, 0x2,0x33,0x26, + 0x2,0x33,0x25, 0x2,0x39,0x55, 0x3,0x39,0x30, 0x1,0x5d,0x4e, + 0x1,0x5d,0x4c, 0x1,0x5d,0x49, 0x1,0x5d,0x4d, 0x1,0x5d,0x4b, + 0x1,0x5d,0x4a, 0x3,0x39,0x32, 0x3,0x39,0x31, 0x1,0x62,0x31, + 0x2,0x40,0x50, 0x3,0x3f,0x2f, 0x1,0x66,0x74, 0x1,0x62,0x33, + 0x1,0x62,0x38, 0x2,0x40,0x52, 0x1,0x62,0x3a, 0x1,0x62,0x39, + 0x1,0x62,0x3c, 0x2,0x40,0x51, 0x2,0x40,0x4e, 0x1,0x62,0x36, + 0x1,0x62,0x32, 0x1,0x62,0x34, 0x2,0x40,0x4f, 0x1,0x62,0x3b, + 0x1,0x62,0x37, 0x1,0x62,0x35, 0x1,0x66,0x76, 0x1,0x66,0x75, + 0x1,0x66,0x73, 0x1,0x66,0x77, 0x4,0x40,0x7e, 0x1,0x66,0x71, + 0x1,0x66,0x72, 0x3,0x44,0x69, 0x1,0x66,0x70, 0x5,0x43,0x2d, + 0x2,0x47,0x61, 0x3,0x44,0x67, 0x2,0x4e,0x3c, 0x3,0x49,0x70, + 0x1,0x6b,0x34, 0x1,0x6b,0x35, 0x1,0x6b,0x33, 0x3,0x49,0x72, + 0x2,0x4e,0x3b, 0x3,0x49,0x71, 0x2,0x4e,0x3d, 0x3,0x66,0x4e, + 0x2,0x54,0x53, 0x2,0x54,0x55, 0x3,0x4e,0x7e, 0x1,0x6f,0x32, + 0x2,0x54,0x56, 0x1,0x6f,0x2b, 0x2,0x54,0x52, 0x1,0x6f,0x2a, + 0x1,0x6f,0x34, 0x1,0x6f,0x30, 0x1,0x6f,0x31, 0x1,0x6f,0x2d, + 0x2,0x54,0x51, 0x1,0x6f,0x2c, 0x2,0x54,0x57, 0x2,0x54,0x54, + 0x3,0x4e,0x7d, 0x1,0x6f,0x33, 0x3,0x4f,0x22, 0x1,0x6f,0x2e, + 0x1,0x6f,0x2f, 0x2,0x5a,0x61, 0x3,0x52,0x75, 0x2,0x5a,0x63, + 0x2,0x5a,0x62, 0x3,0x52,0x73, 0x2,0x5a,0x64, 0x1,0x72,0x4a, + 0x2,0x5a,0x60, 0x3,0x56,0x51, 0x3,0x56,0x52, 0x1,0x75,0x56, + 0x2,0x5f,0x64, 0x1,0x75,0x53, 0x1,0x75,0x57, 0x1,0x75,0x55, + 0x1,0x75,0x54, 0x2,0x63,0x5e, 0x4,0x5d,0x69, 0x2,0x63,0x61, + 0x7,0x43,0x52, 0x2,0x63,0x60, 0x3,0x59,0x2e, 0x2,0x63,0x5f, + 0x1,0x77,0x43, 0x2,0x67,0x34, 0x2,0x67,0x35, 0x1,0x79,0x25, + 0x2,0x67,0x36, 0x1,0x79,0x26, 0x3,0x5b,0x38, 0x3,0x66,0x4f, + 0x1,0x7a,0x45, 0x4,0x64,0x4f, 0x1,0x7a,0x44, 0x2,0x6c,0x41, + 0x3,0x5e,0x65, 0x3,0x5e,0x66, 0x1,0x7b,0x2e, 0x2,0x6c,0x42, + 0x2,0x6e,0x2b, 0x1,0x7b,0x75, 0x1,0x7b,0x76, 0x3,0x66,0x50, + 0x2,0x6f,0x53, 0x3,0x60,0x4a, 0x1,0x7c,0x6d, 0x3,0x61,0x4e, + 0x1,0x4b,0x4b, 0x3,0x39,0x33, 0x1,0x5d,0x50, 0x1,0x5d,0x4f, + 0x2,0x47,0x62, 0x2,0x47,0x63, 0x1,0x6b,0x36, 0x2,0x5a,0x65, + 0x1,0x6f,0x35, 0x2,0x5a,0x66, 0x2,0x5f,0x65, 0x1,0x4b,0x4c, + 0x3,0x24,0x3a, 0x2,0x2d,0x53, 0x1,0x53,0x59, 0x1,0x53,0x58, + 0x2,0x33,0x27, 0x1,0x58,0x44, 0x2,0x33,0x28, 0x2,0x39,0x58, + 0x3,0x39,0x39, 0x2,0x39,0x57, 0x3,0x39,0x37, 0x2,0x39,0x56, + 0x3,0x39,0x35, 0x3,0x39,0x38, 0x2,0x40,0x54, 0x1,0x62,0x3f, + 0x3,0x3f,0x39, 0x3,0x3f,0x34, 0x2,0x40,0x53, 0x1,0x62,0x3e, + 0x3,0x3f,0x37, 0x3,0x3f,0x30, 0x3,0x3f,0x33, 0x2,0x40,0x55, + 0x1,0x62,0x3d, 0x3,0x3f,0x38, 0x2,0x47,0x65, 0x2,0x47,0x68, + 0x2,0x47,0x66, 0x2,0x47,0x67, 0x2,0x47,0x6b, 0x2,0x47,0x64, + 0x2,0x47,0x6c, 0x2,0x47,0x69, 0x2,0x47,0x6a, 0x1,0x6b,0x38, + 0x2,0x4e,0x3e, 0x3,0x49,0x75, 0x3,0x49,0x73, 0x1,0x6b,0x37, + 0x3,0x49,0x74, 0x2,0x54,0x5b, 0x2,0x54,0x59, 0x3,0x4f,0x26, + 0x4,0x4d,0x75, 0x1,0x6f,0x36, 0x2,0x54,0x58, 0x2,0x54,0x5a, + 0x3,0x4f,0x25, 0x1,0x6f,0x37, 0x3,0x4f,0x23, 0x2,0x5a,0x67, + 0x3,0x52,0x77, 0x2,0x5a,0x68, 0x1,0x75,0x58, 0x3,0x59,0x31, + 0x2,0x67,0x38, 0x2,0x67,0x3a, 0x2,0x67,0x37, 0x2,0x67,0x39, + 0x2,0x6a,0x24, 0x2,0x6c,0x43, 0x3,0x66,0x51, 0x2,0x71,0x5e, + 0x1,0x4b,0x4d, 0x1,0x53,0x5a, 0x2,0x33,0x29, 0x2,0x33,0x2b, + 0x2,0x33,0x2a, 0x2,0x39,0x5b, 0x1,0x5d,0x52, 0x3,0x39,0x3e, + 0x2,0x39,0x59, 0x3,0x39,0x3a, 0x1,0x5d,0x51, 0x2,0x39,0x5c, + 0x3,0x39,0x3d, 0x2,0x39,0x5d, 0x2,0x39,0x5a, 0x6,0x45,0x38, + 0x2,0x40,0x61, 0x1,0x62,0x47, 0x2,0x40,0x59, 0x2,0x40,0x5f, + 0x3,0x3f,0x3f, 0x3,0x3f,0x3a, 0x1,0x62,0x42, 0x1,0x62,0x45, + 0x2,0x40,0x58, 0x1,0x62,0x40, 0x2,0x40,0x5c, 0x2,0x47,0x72, + 0x1,0x62,0x44, 0x3,0x3f,0x3b, 0x2,0x40,0x57, 0x3,0x3f,0x3e, + 0x2,0x40,0x5d, 0x2,0x40,0x5a, 0x2,0x40,0x60, 0x2,0x40,0x56, + 0x2,0x40,0x5e, 0x1,0x62,0x43, 0x1,0x62,0x46, 0x2,0x40,0x5b, + 0x1,0x62,0x41, 0x1,0x66,0x79, 0x2,0x47,0x6e, 0x1,0x66,0x78, + 0x2,0x47,0x75, 0x2,0x47,0x74, 0x1,0x67,0x21, 0x1,0x67,0x22, + 0x2,0x47,0x76, 0x1,0x66,0x7a, 0x2,0x47,0x73, 0x1,0x66,0x7e, + 0x2,0x47,0x78, 0x2,0x47,0x6f, 0x3,0x44,0x6b, 0x2,0x47,0x71, + 0x1,0x66,0x7b, 0x2,0x47,0x6d, 0x2,0x47,0x70, 0x2,0x47,0x77, + 0x1,0x66,0x7c, 0x2,0x47,0x79, 0x1,0x66,0x7d, 0x1,0x6b,0x39, + 0x2,0x4e,0x43, 0x2,0x4e,0x49, 0x2,0x4e,0x41, 0x2,0x4e,0x4a, + 0x3,0x49,0x7b, 0x2,0x4e,0x40, 0x2,0x4e,0x45, 0x2,0x4e,0x4b, + 0x2,0x4e,0x48, 0x2,0x4e,0x47, 0x2,0x4e,0x46, 0x3,0x49,0x7a, + 0x2,0x4e,0x3f, 0x2,0x4e,0x44, 0x3,0x49,0x79, 0x2,0x4e,0x42, + 0x1,0x6f,0x3c, 0x1,0x6f,0x39, 0x2,0x54,0x64, 0x2,0x54,0x69, + 0x2,0x54,0x6b, 0x2,0x54,0x68, 0x2,0x54,0x61, 0x2,0x54,0x63, + 0x2,0x54,0x6d, 0x2,0x54,0x6a, 0x2,0x54,0x65, 0x2,0x54,0x6e, + 0x2,0x54,0x62, 0x2,0x54,0x6c, 0x1,0x6f,0x3a, 0x1,0x6f,0x40, + 0x1,0x6f,0x3e, 0x2,0x54,0x5c, 0x1,0x6f,0x3f, 0x1,0x6f,0x3b, + 0x2,0x54,0x5d, 0x2,0x54,0x5f, 0x2,0x54,0x5e, 0x2,0x54,0x66, + 0x2,0x54,0x67, 0x3,0x4f,0x2c, 0x1,0x6f,0x3d, 0x3,0x4f,0x2b, + 0x1,0x6f,0x38, 0x2,0x54,0x60, 0x2,0x5a,0x72, 0x1,0x72,0x4c, + 0x3,0x52,0x7e, 0x2,0x5a,0x69, 0x1,0x72,0x4d, 0x1,0x72,0x50, + 0x2,0x5a,0x6e, 0x5,0x51,0x48, 0x2,0x5a,0x6b, 0x1,0x72,0x4f, + 0x4,0x54,0x29, 0x3,0x52,0x7b, 0x2,0x5a,0x6f, 0x2,0x5a,0x70, + 0x2,0x5a,0x6a, 0x2,0x5a,0x73, 0x2,0x5a,0x6c, 0x2,0x5a,0x71, + 0x1,0x72,0x4e, 0x3,0x52,0x7c, 0x1,0x72,0x4b, 0x2,0x5a,0x6d, + 0x3,0x56,0x54, 0x2,0x5f,0x6b, 0x1,0x75,0x5b, 0x1,0x75,0x59, + 0x1,0x75,0x5c, 0x1,0x75,0x5a, 0x2,0x5f,0x6a, 0x2,0x5f,0x67, + 0x2,0x5f,0x66, 0x3,0x56,0x55, 0x2,0x5f,0x69, 0x4,0x59,0x2d, + 0x2,0x5f,0x68, 0x2,0x63,0x6f, 0x1,0x77,0x49, 0x2,0x63,0x66, + 0x2,0x63,0x65, 0x3,0x59,0x32, 0x1,0x77,0x44, 0x2,0x63,0x6b, + 0x2,0x63,0x6a, 0x2,0x63,0x62, 0x2,0x63,0x6d, 0x2,0x63,0x67, + 0x1,0x77,0x48, 0x2,0x63,0x64, 0x2,0x63,0x6c, 0x2,0x63,0x63, + 0x1,0x77,0x45, 0x1,0x77,0x47, 0x2,0x63,0x68, 0x1,0x77,0x46, + 0x2,0x63,0x69, 0x3,0x5b,0x3a, 0x2,0x63,0x6e, 0x2,0x67,0x3e, + 0x3,0x5b,0x39, 0x1,0x79,0x2b, 0x2,0x67,0x3b, 0x4,0x61,0x52, + 0x2,0x67,0x3f, 0x3,0x5b,0x3b, 0x4,0x61,0x4f, 0x1,0x79,0x28, + 0x2,0x67,0x3d, 0x1,0x79,0x2d, 0x3,0x5b,0x3c, 0x1,0x79,0x2a, + 0x3,0x5b,0x3d, 0x2,0x67,0x3c, 0x4,0x61,0x54, 0x1,0x79,0x2c, + 0x2,0x67,0x40, 0x1,0x79,0x27, 0x1,0x7a,0x47, 0x1,0x7a,0x49, + 0x3,0x5d,0x37, 0x2,0x6a,0x27, 0x1,0x7a,0x48, 0x2,0x6a,0x25, + 0x1,0x79,0x29, 0x2,0x6a,0x26, 0x1,0x7a,0x46, 0x1,0x7b,0x2f, + 0x1,0x7b,0x31, 0x2,0x6c,0x45, 0x1,0x7b,0x30, 0x2,0x6c,0x44, + 0x2,0x6e,0x30, 0x1,0x7b,0x77, 0x2,0x6e,0x2f, 0x1,0x7b,0x78, + 0x2,0x6e,0x2d, 0x2,0x6e,0x2c, 0x2,0x6e,0x31, 0x2,0x6e,0x32, + 0x2,0x6f,0x54, 0x3,0x60,0x4b, 0x2,0x6e,0x2e, 0x2,0x70,0x54, + 0x2,0x70,0x51, 0x2,0x70,0x52, 0x2,0x70,0x53, 0x1,0x7d,0x29, + 0x3,0x61,0x50, 0x2,0x71,0x40, 0x2,0x71,0x3f, 0x2,0x71,0x3e, + 0x2,0x71,0x5f, 0x3,0x61,0x6c, 0x2,0x72,0x2e, 0x2,0x71,0x79, + 0x1,0x7d,0x3b, 0x1,0x4b,0x4e, 0x1,0x58,0x45, 0x3,0x39,0x3f, + 0xf,0x38,0x6c, 0x3,0x39,0x40, 0x3,0x3f,0x40, 0x3,0x44,0x73, + 0x1,0x67,0x23, 0x3,0x49,0x7d, 0x3,0x49,0x7c, 0x3,0x4f,0x30, + 0x3,0x4f,0x32, 0x3,0x4f,0x2f, 0x3,0x4f,0x31, 0x1,0x6f,0x41, + 0x3,0x66,0x52, 0x2,0x5a,0x74, 0xf,0x58,0x33, 0x3,0x59,0x35, + 0x1,0x77,0x4a, 0x3,0x59,0x36, 0x2,0x67,0x41, 0x3,0x5b,0x3f, + 0x4,0x61,0x56, 0x3,0x5d,0x38, 0x4,0x67,0x51, 0x2,0x71,0x7a, + 0x1,0x4b,0x4f, 0x1,0x4f,0x51, 0x1,0x53,0x5c, 0x1,0x53,0x5b, + 0x5,0x30,0x55, 0x1,0x58,0x48, 0x3,0x34,0x21, 0x2,0x33,0x2c, + 0x1,0x58,0x46, 0x2,0x33,0x2d, 0x1,0x58,0x47, 0x3,0x66,0x53, + 0x3,0x39,0x41, 0x2,0x39,0x62, 0x2,0x39,0x5e, 0x3,0x39,0x47, + 0x4,0x35,0x63, 0x1,0x5d,0x53, 0x2,0x39,0x61, 0x2,0x39,0x60, + 0x2,0x39,0x5f, 0x1,0x5d,0x54, 0x2,0x39,0x63, 0x2,0x39,0x64, + 0x3,0x3f,0x45, 0x2,0x40,0x68, 0x2,0x40,0x66, 0x2,0x40,0x6a, + 0x2,0x40,0x6b, 0x2,0x40,0x71, 0x3,0x3f,0x47, 0x2,0x40,0x6d, + 0x2,0x40,0x6f, 0x5,0x43,0x50, 0x2,0x40,0x67, 0x2,0x40,0x62, + 0x4,0x3b,0x55, 0x2,0x40,0x6e, 0x3,0x3f,0x44, 0x3,0x3f,0x46, + 0x2,0x40,0x70, 0x2,0x40,0x69, 0x2,0x40,0x6c, 0x2,0x40,0x63, + 0x1,0x62,0x49, 0x2,0x40,0x65, 0x2,0x40,0x64, 0x1,0x62,0x48, + 0x1,0x62,0x4a, 0x3,0x3f,0x49, 0x1,0x67,0x26, 0x2,0x47,0x7b, + 0x2,0x47,0x7d, 0x2,0x47,0x7c, 0x2,0x48,0x23, 0x1,0x67,0x24, + 0x3,0x44,0x76, 0x2,0x47,0x7e, 0x2,0x47,0x7a, 0x2,0x48,0x21, + 0x2,0x48,0x22, 0x1,0x67,0x25, 0x1,0x67,0x27, 0x2,0x48,0x24, + 0x2,0x4e,0x4f, 0x2,0x4e,0x4e, 0x4,0x47,0x6a, 0x2,0x4e,0x4c, + 0x2,0x4e,0x4d, 0x1,0x6b,0x3b, 0x1,0x6b,0x3d, 0x1,0x6b,0x3a, + 0x1,0x6b,0x3c, 0x2,0x54,0x75, 0x2,0x54,0x76, 0x2,0x54,0x71, + 0x3,0x4f,0x36, 0x2,0x54,0x72, 0x1,0x6f,0x43, 0x1,0x6f,0x48, + 0x1,0x6f,0x42, 0x1,0x6f,0x49, 0x1,0x6f,0x44, 0x2,0x54,0x73, + 0x4,0x4e,0x2d, 0x3,0x4f,0x33, 0x2,0x54,0x74, 0x2,0x54,0x70, + 0x1,0x6f,0x4a, 0x1,0x6f,0x46, 0x3,0x4f,0x35, 0x4,0x4e,0x2b, + 0x1,0x6f,0x45, 0x1,0x6f,0x47, 0x3,0x4f,0x34, 0x2,0x54,0x6f, + 0x3,0x53,0x24, 0x2,0x5a,0x76, 0x1,0x72,0x52, 0x3,0x53,0x22, + 0x3,0x53,0x21, 0x2,0x5a,0x78, 0x1,0x72,0x54, 0x2,0x5a,0x7b, + 0x2,0x5a,0x77, 0x2,0x5a,0x75, 0x2,0x5a,0x7a, 0x1,0x72,0x53, + 0x2,0x5a,0x79, 0x7,0x34,0x32, 0x1,0x72,0x51, 0x3,0x53,0x25, + 0x3,0x56,0x59, 0x1,0x75,0x5e, 0x1,0x75,0x61, 0x2,0x5f,0x6d, + 0x3,0x56,0x5a, 0x1,0x75,0x5f, 0x2,0x5f,0x6c, 0x1,0x75,0x5d, + 0x1,0x75,0x60, 0x2,0x63,0x70, 0x2,0x63,0x71, 0x2,0x63,0x72, + 0x1,0x77,0x4b, 0x3,0x59,0x37, 0x2,0x63,0x73, 0x1,0x77,0x4c, + 0x1,0x79,0x2f, 0x2,0x67,0x44, 0x2,0x67,0x45, 0x2,0x67,0x43, + 0x2,0x67,0x42, 0x2,0x67,0x46, 0x1,0x79,0x2e, 0x2,0x6a,0x2b, + 0x2,0x6a,0x29, 0x2,0x6a,0x2a, 0x2,0x6a,0x2c, 0x2,0x6a,0x28, + 0x2,0x6a,0x2d, 0x2,0x6c,0x47, 0x3,0x5e,0x67, 0x2,0x6c,0x48, + 0x2,0x6c,0x46, 0x1,0x7b,0x32, 0x2,0x6e,0x33, 0x1,0x7b,0x79, + 0x2,0x6e,0x34, 0x2,0x6f,0x56, 0x2,0x6f,0x55, 0x3,0x62,0x22, + 0x1,0x4b,0x50, 0x1,0x62,0x4b, 0x3,0x3f,0x4b, 0x3,0x44,0x77, + 0x1,0x67,0x28, 0x3,0x44,0x78, 0x3,0x4a,0x21, 0x3,0x4a,0x22, + 0x1,0x6b,0x3e, 0x3,0x4f,0x37, 0x3,0x53,0x27, 0x1,0x72,0x56, + 0x3,0x53,0x26, 0x1,0x72,0x55, 0x3,0x66,0x54, 0x3,0x59,0x38, + 0x1,0x79,0x30, 0x1,0x7a,0x29, 0x1,0x7b,0x33, 0x1,0x4b,0x51, + 0x1,0x58,0x49, 0x1,0x67,0x29, 0x3,0x4f,0x39, 0x2,0x67,0x47, + 0x3,0x27,0x2f, 0x4,0x21,0x54, 0xf,0x21,0x6a, 0x4,0x23,0x30, + 0x3,0x24,0x3b, 0xf,0x22,0x71, 0xf,0x22,0x72, 0x3,0x27,0x30, + 0x2,0x25,0x26, 0x4,0x25,0x21, 0x3,0x27,0x33, 0x1,0x4b,0x52, + 0x4,0x25,0x23, 0x1,0x4b,0x55, 0x1,0x4b,0x54, 0x1,0x4b,0x53, + 0x3,0x27,0x31, 0xf,0x25,0x32, 0x2,0x25,0x25, 0x3,0x2a,0x72, + 0x2,0x28,0x6d, 0x3,0x2a,0x70, 0x2,0x28,0x6f, 0x1,0x4f,0x52, + 0x3,0x2a,0x74, 0x4,0x28,0x26, 0x1,0x4f,0x54, 0x2,0x28,0x6c, + 0x2,0x28,0x6e, 0x1,0x4f,0x53, 0x2,0x28,0x71, 0x2,0x28,0x70, + 0x2,0x28,0x72, 0x3,0x2a,0x73, 0x3,0x2a,0x71, 0xf,0x28,0x71, + 0xf,0x28,0x6e, 0x2,0x2d,0x57, 0x2,0x2d,0x55, 0x1,0x53,0x5f, + 0x2,0x2d,0x54, 0x1,0x53,0x64, 0x1,0x53,0x61, 0x1,0x53,0x5e, + 0x3,0x2f,0x31, 0x1,0x53,0x65, 0x3,0x2f,0x32, 0x1,0x53,0x60, + 0x1,0x53,0x63, 0x6,0x34,0x60, 0x1,0x53,0x62, 0x2,0x2d,0x56, + 0x3,0x2f,0x33, 0x1,0x53,0x5d, 0x3,0x2f,0x30, 0x1,0x58,0x4f, + 0x2,0x33,0x2f, 0x2,0x33,0x35, 0x1,0x58,0x4c, 0x1,0x58,0x53, + 0x3,0x34,0x25, 0x1,0x58,0x4e, 0x2,0x33,0x32, 0x2,0x33,0x34, + 0x1,0x58,0x51, 0x2,0x33,0x2e, 0x2,0x33,0x31, 0x1,0x58,0x4d, + 0x1,0x58,0x4a, 0x2,0x33,0x30, 0x1,0x58,0x50, 0x2,0x33,0x33, + 0x1,0x58,0x52, 0x1,0x58,0x4b, 0x4,0x30,0x2f, 0x3,0x34,0x27, + 0x3,0x34,0x26, 0x2,0x39,0x66, 0x2,0x39,0x69, 0x1,0x5d,0x56, + 0x3,0x39,0x4b, 0x1,0x5d,0x60, 0x1,0x5d,0x5c, 0x2,0x39,0x67, + 0x3,0x39,0x4a, 0x3,0x39,0x4e, 0x1,0x5d,0x64, 0x1,0x5d,0x5d, + 0x1,0x5d,0x62, 0x1,0x5d,0x58, 0x4,0x35,0x68, 0x1,0x5d,0x55, + 0x1,0x5d,0x57, 0x1,0x5d,0x63, 0x2,0x39,0x68, 0x1,0x5d,0x5b, + 0x1,0x5d,0x5e, 0x1,0x5d,0x5a, 0x1,0x5d,0x5f, 0x2,0x39,0x6a, + 0x1,0x5d,0x61, 0x1,0x5d,0x59, 0x2,0x39,0x65, 0x3,0x39,0x4c, + 0x3,0x3f,0x4f, 0x3,0x3f,0x50, 0x3,0x3f,0x4d, 0x3,0x3f,0x4c, + 0x3,0x3f,0x51, 0x2,0x40,0x72, 0x1,0x62,0x4c, 0x2,0x40,0x74, + 0x3,0x3f,0x55, 0x1,0x62,0x4e, 0x1,0x62,0x50, 0x4,0x35,0x66, + 0x2,0x40,0x73, 0x1,0x62,0x4d, 0x1,0x62,0x51, 0x3,0x3f,0x56, + 0x1,0x62,0x4f, 0x3,0x3f,0x54, 0x3,0x3f,0x57, 0x1,0x67,0x2f, + 0x2,0x48,0x29, 0x1,0x67,0x37, 0x2,0x48,0x26, 0x3,0x44,0x7d, + 0x1,0x67,0x38, 0x1,0x67,0x2d, 0x3,0x44,0x79, 0x2,0x48,0x27, + 0x3,0x44,0x7c, 0x3,0x44,0x7a, 0x1,0x67,0x32, 0x3,0x44,0x7b, + 0x2,0x48,0x28, 0x1,0x67,0x2b, 0x1,0x67,0x2a, 0x3,0x44,0x7e, + 0x1,0x67,0x35, 0x1,0x67,0x34, 0x1,0x67,0x33, 0x1,0x67,0x31, + 0x1,0x67,0x36, 0x2,0x48,0x25, 0x1,0x67,0x2c, 0x1,0x67,0x2e, + 0x1,0x67,0x30, 0x1,0x6b,0x40, 0x1,0x6b,0x43, 0x3,0x4a,0x24, + 0x1,0x6b,0x47, 0x1,0x6b,0x41, 0x1,0x6b,0x46, 0x1,0x6b,0x44, + 0x3,0x4a,0x27, 0x1,0x6b,0x3f, 0x3,0x4a,0x26, 0x1,0x6b,0x45, + 0x1,0x6b,0x42, 0xf,0x4c,0x6b, 0x4,0x4e,0x32, 0x2,0x54,0x7a, + 0x1,0x6f,0x4d, 0x1,0x6f,0x4b, 0x3,0x4f,0x3c, 0x2,0x54,0x7b, + 0x4,0x4e,0x33, 0x1,0x6f,0x4e, 0x1,0x6f,0x4c, 0x2,0x54,0x79, + 0x2,0x54,0x78, 0x3,0x4f,0x3b, 0x1,0x72,0x5a, 0x2,0x54,0x77, + 0x1,0x72,0x58, 0x1,0x72,0x57, 0x2,0x5a,0x7c, 0x1,0x6f,0x4f, + 0x1,0x72,0x59, 0x2,0x5a,0x7d, 0x1,0x72,0x5c, 0x2,0x5a,0x7e, + 0x1,0x72,0x5b, 0x1,0x75,0x63, 0x2,0x5f,0x6f, 0x1,0x75,0x62, + 0x1,0x75,0x67, 0x1,0x75,0x65, 0x1,0x75,0x66, 0x1,0x77,0x4e, + 0x1,0x75,0x64, 0x2,0x5f,0x6e, 0x2,0x5b,0x21, 0x1,0x77,0x4d, + 0x1,0x77,0x4f, 0x3,0x59,0x3a, 0x1,0x79,0x31, 0x1,0x79,0x32, + 0x4,0x61,0x5f, 0x2,0x6a,0x2e, 0x4,0x69,0x52, 0x1,0x7c,0x4a, + 0x1,0x7c,0x49, 0x1,0x4b,0x57, 0x3,0x22,0x5e, 0x3,0x22,0x5d, + 0x2,0x22,0x75, 0x1,0x58,0x54, 0x3,0x24,0x3c, 0x2,0x22,0x72, + 0x2,0x22,0x73, 0x2,0x22,0x71, 0x3,0x24,0x3d, 0x2,0x22,0x74, + 0x3,0x66,0x55, 0x2,0x25,0x2a, 0x2,0x25,0x27, 0x2,0x25,0x2c, + 0x2,0x25,0x28, 0x1,0x4b,0x58, 0x1,0x4b,0x5b, 0x3,0x27,0x35, + 0x2,0x25,0x29, 0x1,0x4b,0x5a, 0x2,0x25,0x2b, 0x3,0x27,0x39, + 0x3,0x27,0x34, 0x1,0x4b,0x59, 0x3,0x39,0x51, 0x3,0x2a,0x77, + 0x4,0x28,0x2b, 0x2,0x28,0x75, 0x2,0x28,0x77, 0x1,0x4f,0x57, + 0x2,0x28,0x73, 0x2,0x28,0x76, 0x2,0x28,0x74, 0x1,0x4f,0x55, + 0x1,0x4f,0x58, 0x3,0x2a,0x75, 0x1,0x4f,0x56, 0x3,0x2a,0x78, + 0x3,0x2f,0x35, 0x2,0x2d,0x59, 0x2,0x2d,0x5d, 0x2,0x2d,0x5a, + 0x3,0x2f,0x38, 0x1,0x53,0x68, 0x3,0x2f,0x34, 0x1,0x53,0x69, + 0x3,0x2f,0x3e, 0x2,0x2d,0x5c, 0x3,0x2f,0x37, 0x2,0x2d,0x5e, + 0x2,0x2d,0x60, 0x3,0x2f,0x3c, 0x1,0x53,0x66, 0x2,0x2d,0x5f, + 0x4,0x41,0x39, 0x3,0x2f,0x3b, 0x1,0x53,0x67, 0xf,0x45,0x6d, + 0x2,0x39,0x71, 0x2,0x2d,0x5b, 0x2,0x33,0x36, 0x2,0x33,0x3f, + 0x2,0x33,0x3d, 0x2,0x33,0x38, 0x2,0x33,0x39, 0x2,0x33,0x3e, + 0x2,0x33,0x40, 0x1,0x58,0x56, 0x3,0x34,0x29, 0x2,0x33,0x3b, + 0x2,0x33,0x37, 0x1,0x58,0x55, 0x1,0x58,0x57, 0x2,0x33,0x3a, + 0x2,0x33,0x41, 0x2,0x33,0x3c, 0x1,0x5d,0x65, 0x2,0x39,0x74, + 0x2,0x39,0x6c, 0x2,0x39,0x72, 0x2,0x39,0x73, 0x1,0x5d,0x66, + 0x3,0x39,0x4f, 0x2,0x39,0x6b, 0x2,0x39,0x6d, 0x2,0x2d,0x58, + 0x2,0x39,0x6f, 0x2,0x39,0x70, 0x2,0x39,0x6e, 0x1,0x62,0x53, + 0x4,0x4e,0x3b, 0x3,0x39,0x52, 0x2,0x40,0x7b, 0x2,0x5b,0x22, + 0x2,0x40,0x7c, 0x2,0x40,0x79, 0x1,0x5d,0x67, 0x1,0x62,0x55, + 0x2,0x40,0x78, 0x2,0x40,0x7e, 0x2,0x40,0x7d, 0x1,0x62,0x52, + 0x2,0x41,0x23, 0x2,0x40,0x77, 0x2,0x41,0x22, 0x2,0x40,0x75, + 0x2,0x41,0x21, 0x2,0x40,0x7a, 0x1,0x62,0x54, 0x3,0x3f,0x59, + 0x2,0x48,0x30, 0x3,0x45,0x23, 0x2,0x48,0x2b, 0x2,0x48,0x31, + 0x2,0x48,0x2c, 0x2,0x48,0x2a, 0x2,0x48,0x2d, 0x1,0x67,0x39, + 0x3,0x45,0x24, 0x2,0x48,0x2f, 0x3,0x45,0x25, 0x2,0x48,0x2e, + 0x1,0x67,0x3a, 0x1,0x6b,0x49, 0x1,0x6b,0x48, 0x2,0x4e,0x56, + 0x2,0x4e,0x59, 0x2,0x4e,0x51, 0x2,0x4e,0x55, 0x1,0x6b,0x4a, + 0x2,0x4e,0x54, 0x2,0x4e,0x52, 0x2,0x4e,0x58, 0x2,0x4e,0x53, + 0x2,0x4e,0x50, 0x2,0x4e,0x57, 0x3,0x4a,0x2a, 0x2,0x55,0x23, + 0x1,0x6f,0x52, 0x2,0x63,0x74, 0x2,0x54,0x7e, 0x2,0x55,0x21, + 0x2,0x54,0x7d, 0x2,0x40,0x76, 0x1,0x6f,0x51, 0x2,0x55,0x24, + 0x2,0x54,0x7c, 0x1,0x6f,0x50, 0x1,0x6f,0x53, 0x2,0x55,0x22, + 0x2,0x5b,0x23, 0x1,0x72,0x5d, 0x2,0x5b,0x24, 0x2,0x5b,0x25, + 0x3,0x53,0x2b, 0x2,0x5f,0x70, 0x1,0x75,0x68, 0x2,0x63,0x75, + 0x2,0x63,0x76, 0x3,0x59,0x3c, 0x3,0x59,0x3b, 0x2,0x63,0x77, + 0x2,0x67,0x49, 0x2,0x67,0x48, 0x2,0x6a,0x30, 0x2,0x6a,0x2f, + 0x2,0x6c,0x4a, 0x2,0x6c,0x4b, 0x2,0x6c,0x49, 0x2,0x6e,0x35, + 0x1,0x7b,0x7a, 0x1,0x4b,0x5c, 0x1,0x53,0x6b, 0x1,0x53,0x6a, + 0x1,0x58,0x5a, 0x1,0x58,0x59, 0x2,0x33,0x43, 0x2,0x33,0x44, + 0x2,0x33,0x42, 0x3,0x34,0x2a, 0x1,0x58,0x58, 0x2,0x39,0x78, + 0x3,0x39,0x55, 0x2,0x39,0x79, 0x2,0x39,0x75, 0x1,0x5d,0x68, + 0x2,0x39,0x76, 0x3,0x39,0x54, 0x2,0x39,0x77, 0x3,0x66,0x57, + 0x2,0x41,0x26, 0x2,0x41,0x28, 0x2,0x41,0x24, 0x2,0x41,0x27, + 0x1,0x62,0x56, 0x2,0x41,0x25, 0x1,0x62,0x57, 0x3,0x45,0x28, + 0x2,0x42,0x79, 0x1,0x67,0x3d, 0x1,0x67,0x3c, 0x3,0x45,0x27, + 0x1,0x67,0x3b, 0x4,0x41,0x3a, 0x2,0x48,0x32, 0x2,0x48,0x33, + 0x4,0x41,0x3b, 0x2,0x4e,0x5b, 0x2,0x4e,0x5d, 0x1,0x6b,0x4e, + 0x1,0x6b,0x4b, 0x3,0x4a,0x2c, 0x1,0x6b,0x4d, 0x1,0x6b,0x4c, + 0x2,0x4e,0x5c, 0x2,0x4e,0x5a, 0x3,0x4a,0x2b, 0x3,0x4a,0x2d, + 0x2,0x55,0x2b, 0x2,0x55,0x28, 0x2,0x55,0x29, 0x1,0x6f,0x57, + 0x2,0x55,0x2a, 0x2,0x55,0x25, 0x2,0x55,0x26, 0x1,0x6f,0x54, + 0x3,0x4f,0x3f, 0x1,0x6f,0x55, 0x2,0x55,0x27, 0x1,0x6f,0x56, + 0x3,0x4f,0x40, 0x2,0x5b,0x29, 0x3,0x53,0x2d, 0x2,0x5b,0x2a, + 0x2,0x5b,0x27, 0x2,0x5b,0x28, 0x1,0x72,0x5e, 0x2,0x5b,0x26, + 0x4,0x54,0x42, 0x3,0x53,0x2c, 0x3,0x53,0x2f, 0x4,0x59,0x3f, + 0x2,0x5f,0x74, 0x2,0x5f,0x71, 0x2,0x5f,0x73, 0x1,0x75,0x6b, + 0x2,0x5f,0x77, 0x1,0x75,0x6a, 0x2,0x5f,0x75, 0x2,0x5f,0x78, + 0x2,0x5f,0x76, 0x2,0x5f,0x72, 0x1,0x75,0x69, 0x2,0x63,0x79, + 0x4,0x5e,0x24, 0x2,0x63,0x7a, 0x2,0x63,0x78, 0x3,0x59,0x3d, + 0x2,0x63,0x7c, 0x1,0x77,0x50, 0x1,0x77,0x51, 0x2,0x67,0x4b, + 0x1,0x79,0x34, 0x2,0x63,0x7b, 0x2,0x67,0x4a, 0x1,0x79,0x33, + 0x2,0x6a,0x33, 0x2,0x6a,0x34, 0x1,0x7a,0x4a, 0x2,0x6a,0x32, + 0x4,0x64,0x65, 0x2,0x6a,0x31, 0x2,0x6c,0x4c, 0x1,0x7b,0x34, + 0x3,0x5e,0x68, 0x2,0x6f,0x57, 0x2,0x70,0x56, 0x2,0x70,0x55, + 0x3,0x60,0x7e, 0x1,0x7c,0x6e, 0x1,0x7d,0x2a, 0x2,0x70,0x57, + 0x2,0x71,0x60, 0x3,0x61,0x6d, 0x1,0x7d,0x3c, 0x1,0x4b,0x5d, + 0x1,0x4f,0x59, 0x1,0x67,0x3e, 0x1,0x7a,0x4b, 0x1,0x4b,0x5e, + 0x1,0x53,0x6c, 0x1,0x5d,0x69, 0x1,0x62,0x58, 0x1,0x77,0x52, + 0x1,0x4f,0x5a, 0x2,0x2d,0x62, 0x2,0x2d,0x61, 0x2,0x33,0x45, + 0x3,0x34,0x30, 0x1,0x58,0x5d, 0x1,0x58,0x5b, 0x1,0x58,0x5f, + 0x2,0x33,0x47, 0x3,0x34,0x2d, 0x1,0x58,0x5e, 0x1,0x58,0x5c, + 0x3,0x34,0x2f, 0x3,0x34,0x2e, 0x3,0x34,0x31, 0x2,0x33,0x46, + 0x1,0x5d,0x6c, 0x2,0x3a,0x21, 0x3,0x39,0x58, 0x1,0x5d,0x6b, + 0x1,0x5d,0x6d, 0x2,0x3a,0x26, 0x1,0x5d,0x6f, 0x2,0x3a,0x23, + 0x2,0x3a,0x24, 0x2,0x39,0x7a, 0x1,0x5d,0x6e, 0x2,0x3a,0x27, + 0x4,0x35,0x7b, 0x3,0x39,0x57, 0x2,0x39,0x7c, 0x3,0x39,0x56, + 0x2,0x39,0x7d, 0x2,0x39,0x7b, 0x1,0x5d,0x6a, 0x3,0x39,0x59, + 0x2,0x3a,0x25, 0x2,0x39,0x7e, 0x2,0x3a,0x22, 0x2,0x41,0x34, + 0x3,0x3f,0x5d, 0x2,0x41,0x33, 0x2,0x41,0x31, 0x2,0x41,0x29, + 0x2,0x41,0x38, 0x2,0x41,0x2c, 0x2,0x41,0x36, 0x2,0x41,0x3d, + 0x2,0x41,0x35, 0x1,0x62,0x60, 0x3,0x3f,0x66, 0x1,0x62,0x5c, + 0x2,0x41,0x2a, 0x3,0x3f,0x60, 0x2,0x41,0x30, 0x1,0x62,0x5e, + 0x3,0x3f,0x68, 0x2,0x41,0x2f, 0x1,0x62,0x5f, 0x1,0x62,0x61, + 0x2,0x41,0x32, 0x3,0x3f,0x69, 0x1,0x62,0x59, 0x1,0x62,0x5a, + 0x2,0x41,0x3e, 0x2,0x41,0x3c, 0x3,0x3f,0x62, 0x2,0x41,0x3b, + 0x2,0x41,0x2d, 0x3,0x3f,0x65, 0x2,0x41,0x39, 0x4,0x3b,0x66, + 0x1,0x62,0x5d, 0x6,0x4f,0x6f, 0x3,0x3f,0x5e, 0x3,0x66,0x59, + 0x3,0x3f,0x63, 0x1,0x62,0x5b, 0x2,0x41,0x3a, 0x2,0x41,0x2b, + 0x2,0x41,0x2e, 0x2,0x41,0x37, 0x3,0x66,0x58, 0x2,0x4f,0x22, + 0x2,0x48,0x3d, 0x3,0x45,0x2e, 0x2,0x48,0x36, 0x2,0x48,0x49, + 0x2,0x48,0x52, 0x2,0x48,0x39, 0x1,0x67,0x49, 0x3,0x45,0x2b, + 0x2,0x48,0x46, 0x1,0x67,0x3f, 0x1,0x67,0x41, 0x1,0x67,0x4d, + 0x2,0x48,0x37, 0x3,0x45,0x37, 0x3,0x45,0x2f, 0x1,0x67,0x42, + 0x1,0x67,0x44, 0x1,0x67,0x4e, 0x1,0x67,0x43, 0x3,0x45,0x39, + 0x4,0x41,0x41, 0x4,0x41,0x46, 0x3,0x45,0x38, 0x1,0x67,0x4c, + 0x2,0x48,0x3f, 0x4,0x41,0x48, 0x2,0x48,0x34, 0x1,0x67,0x4a, + 0x2,0x48,0x3e, 0x1,0x67,0x46, 0x2,0x48,0x50, 0x1,0x67,0x4b, + 0x2,0x48,0x4e, 0x2,0x48,0x42, 0x2,0x48,0x4c, 0x1,0x67,0x48, + 0x2,0x48,0x35, 0x2,0x48,0x4f, 0x2,0x48,0x4a, 0x3,0x45,0x2a, + 0x2,0x48,0x51, 0x1,0x67,0x40, 0x4,0x41,0x40, 0x3,0x45,0x2d, + 0x1,0x67,0x4f, 0x1,0x67,0x45, 0x3,0x45,0x31, 0x3,0x45,0x29, + 0x2,0x48,0x3b, 0x3,0x45,0x34, 0x2,0x48,0x43, 0x2,0x48,0x47, + 0x3,0x45,0x33, 0x2,0x48,0x4b, 0x1,0x67,0x47, 0x2,0x48,0x3a, + 0x2,0x48,0x38, 0x2,0x48,0x44, 0x4,0x41,0x42, 0x4,0x41,0x43, + 0x3,0x45,0x32, 0x3,0x45,0x35, 0x2,0x48,0x41, 0x2,0x48,0x40, + 0x3,0x45,0x36, 0x2,0x48,0x45, 0x2,0x48,0x48, 0x2,0x48,0x4d, + 0x3,0x66,0x5a, 0xf,0x45,0x72, 0x4,0x47,0x75, 0x2,0x4e,0x60, + 0xf,0x4d,0x22, 0x1,0x6b,0x4f, 0x2,0x4e,0x6a, 0x2,0x4e,0x62, + 0x1,0x6b,0x55, 0x1,0x6b,0x59, 0x2,0x4e,0x73, 0x2,0x4e,0x7b, + 0x2,0x4e,0x6c, 0x1,0x6b,0x51, 0x3,0x4a,0x34, 0x2,0x4e,0x70, + 0x2,0x48,0x3c, 0x3,0x4a,0x35, 0x1,0x6b,0x52, 0x2,0x4e,0x77, + 0x2,0x4e,0x7c, 0x2,0x4e,0x74, 0x3,0x4a,0x2f, 0x2,0x4e,0x76, + 0x2,0x4f,0x21, 0x2,0x4e,0x78, 0x2,0x4e,0x66, 0x2,0x4e,0x6f, + 0x3,0x45,0x30, 0x3,0x4a,0x38, 0x1,0x6b,0x5a, 0x3,0x4a,0x33, + 0x1,0x6b,0x56, 0x2,0x4e,0x64, 0x2,0x4e,0x71, 0x1,0x6b,0x54, + 0x2,0x4e,0x6b, 0x1,0x6b,0x53, 0x2,0x4e,0x79, 0x2,0x4e,0x68, + 0x2,0x4e,0x61, 0x1,0x6b,0x57, 0x2,0x4e,0x7e, 0x3,0x4a,0x39, + 0x4,0x47,0x77, 0x2,0x4e,0x63, 0x2,0x4e,0x75, 0x2,0x4e,0x72, + 0x2,0x4e,0x6d, 0x2,0x4e,0x5f, 0x2,0x4e,0x5e, 0x2,0x4e,0x67, + 0x2,0x4e,0x7a, 0x1,0x6b,0x58, 0x2,0x4e,0x7d, 0x2,0x4e,0x65, + 0x2,0x4e,0x69, 0x1,0x6b,0x50, 0x3,0x4a,0x32, 0x3,0x4a,0x37, + 0xf,0x4d,0x27, 0x3,0x67,0x2a, 0x3,0x4a,0x31, 0x1,0x6f,0x63, + 0x1,0x6f,0x5e, 0x2,0x55,0x4d, 0x2,0x55,0x49, 0x2,0x55,0x31, + 0x1,0x6f,0x5a, 0x3,0x4f,0x42, 0x3,0x4f,0x50, 0x4,0x4e,0x45, + 0x1,0x6f,0x59, 0x1,0x6f,0x5f, 0x4,0x4e,0x47, 0x3,0x4f,0x43, + 0x3,0x4f,0x41, 0x2,0x55,0x2f, 0x1,0x6f,0x5d, 0x2,0x55,0x3b, + 0x2,0x55,0x2d, 0x2,0x55,0x2e, 0x1,0x6f,0x58, 0x2,0x55,0x4c, + 0x1,0x6f,0x61, 0x2,0x55,0x3e, 0x2,0x55,0x43, 0x2,0x55,0x3d, + 0x2,0x5b,0x3c, 0x2,0x55,0x39, 0x2,0x55,0x41, 0x2,0x55,0x3f, + 0x2,0x55,0x32, 0x2,0x55,0x2c, 0x2,0x55,0x47, 0x1,0x6f,0x60, + 0x2,0x55,0x48, 0x3,0x4f,0x48, 0x2,0x55,0x42, 0x3,0x4f,0x49, + 0x2,0x55,0x37, 0x2,0x55,0x35, 0x2,0x55,0x30, 0x3,0x4f,0x4b, + 0x3,0x4f,0x4e, 0x3,0x4f,0x44, 0x2,0x55,0x38, 0x2,0x55,0x45, + 0x2,0x55,0x34, 0x2,0x55,0x44, 0x2,0x55,0x4a, 0x3,0x4f,0x51, + 0x4,0x4e,0x46, 0x1,0x6f,0x5c, 0x3,0x4f,0x45, 0x2,0x55,0x40, + 0x2,0x55,0x46, 0x2,0x55,0x3c, 0x2,0x55,0x36, 0x1,0x6f,0x5b, + 0x3,0x4f,0x52, 0x4,0x4e,0x44, 0x3,0x4f,0x4c, 0x2,0x4e,0x6e, + 0x2,0x55,0x3a, 0x1,0x6f,0x62, 0x2,0x55,0x33, 0xf,0x52,0x6b, + 0x3,0x4f,0x4d, 0x3,0x66,0x5b, 0x3,0x66,0x5c, 0x3,0x4a,0x30, + 0x2,0x5b,0x41, 0x1,0x72,0x61, 0x2,0x5b,0x40, 0x2,0x5b,0x3e, + 0x2,0x5b,0x50, 0x1,0x72,0x65, 0x3,0x53,0x35, 0x2,0x5b,0x4d, + 0x2,0x5b,0x45, 0x2,0x5b,0x4f, 0x2,0x5b,0x37, 0x2,0x5b,0x43, + 0x3,0x53,0x3d, 0x1,0x72,0x67, 0x3,0x53,0x3e, 0x2,0x5b,0x2f, + 0x3,0x53,0x38, 0x2,0x5b,0x2d, 0x2,0x5b,0x4e, 0x3,0x53,0x32, + 0x2,0x5b,0x4c, 0x2,0x5b,0x4b, 0x2,0x5b,0x3b, 0x2,0x5b,0x3a, + 0x2,0x5b,0x30, 0x1,0x72,0x69, 0x4,0x54,0x43, 0x2,0x5b,0x36, + 0x2,0x5b,0x3f, 0x2,0x5b,0x4a, 0x1,0x72,0x6c, 0x2,0x5b,0x51, + 0x3,0x53,0x36, 0x1,0x75,0x73, 0x1,0x72,0x6e, 0x1,0x72,0x68, + 0x2,0x5b,0x34, 0x3,0x53,0x37, 0x2,0x5b,0x3d, 0x2,0x5b,0x2c, + 0x2,0x5b,0x2e, 0x1,0x72,0x5f, 0x1,0x72,0x6b, 0x1,0x72,0x64, + 0x2,0x5b,0x35, 0x2,0x5b,0x44, 0x2,0x55,0x4b, 0x1,0x72,0x6a, + 0x2,0x5b,0x2b, 0x1,0x75,0x6e, 0x2,0x5b,0x46, 0x2,0x5b,0x49, + 0x1,0x72,0x66, 0x3,0x53,0x3b, 0x2,0x5b,0x39, 0x1,0x72,0x6d, + 0x1,0x72,0x63, 0x3,0x53,0x3c, 0x3,0x53,0x39, 0x3,0x53,0x3a, + 0x1,0x72,0x62, 0x2,0x5b,0x42, 0x2,0x5b,0x48, 0x1,0x72,0x60, + 0x4,0x54,0x45, 0x2,0x5b,0x32, 0x2,0x5b,0x47, 0xf,0x58,0x59, + 0xf,0x58,0x48, 0x2,0x5b,0x33, 0x7,0x34,0x63, 0x3,0x66,0x5d, + 0xf,0x58,0x55, 0x3,0x66,0x5e, 0x4,0x54,0x49, 0x3,0x53,0x31, + 0x2,0x5b,0x38, 0x2,0x5f,0x7e, 0x3,0x56,0x65, 0x2,0x60,0x25, + 0x1,0x75,0x70, 0x1,0x75,0x72, 0x2,0x60,0x2b, 0x1,0x75,0x6c, + 0x2,0x60,0x39, 0x2,0x60,0x31, 0x2,0x60,0x26, 0x2,0x60,0x27, + 0x2,0x60,0x30, 0x3,0x56,0x66, 0x1,0x75,0x79, 0x2,0x60,0x2f, + 0x2,0x5f,0x7d, 0x2,0x60,0x2e, 0x2,0x60,0x22, 0x2,0x60,0x3a, + 0x1,0x75,0x78, 0x1,0x75,0x76, 0x2,0x60,0x23, 0x3,0x56,0x5d, + 0x2,0x60,0x36, 0x3,0x56,0x67, 0x2,0x60,0x28, 0x2,0x60,0x35, + 0x3,0x56,0x64, 0x2,0x60,0x37, 0x2,0x5f,0x7c, 0x1,0x75,0x71, + 0x3,0x56,0x5b, 0x2,0x60,0x38, 0x3,0x56,0x68, 0x3,0x56,0x5e, + 0x2,0x60,0x2c, 0x3,0x56,0x6b, 0x1,0x75,0x75, 0x2,0x60,0x29, + 0x3,0x56,0x61, 0x4,0x59,0x49, 0x1,0x75,0x77, 0x2,0x60,0x32, + 0x3,0x56,0x62, 0x3,0x56,0x63, 0x3,0x56,0x5f, 0x1,0x75,0x6f, + 0x2,0x60,0x24, 0x2,0x60,0x33, 0x3,0x56,0x5c, 0x2,0x60,0x2d, + 0x2,0x5b,0x31, 0x2,0x60,0x34, 0x2,0x60,0x21, 0x3,0x56,0x60, + 0x1,0x75,0x74, 0x3,0x56,0x6a, 0x2,0x64,0x2f, 0x4,0x59,0x47, + 0x1,0x75,0x6d, 0x2,0x5f,0x7a, 0x4,0x59,0x46, 0xf,0x5d,0x41, + 0x3,0x66,0x5f, 0xf,0x5d,0x39, 0x2,0x64,0x2c, 0x2,0x64,0x25, + 0x1,0x77,0x54, 0x3,0x59,0x43, 0x2,0x63,0x7e, 0x2,0x64,0x30, + 0x2,0x64,0x27, 0x2,0x60,0x2a, 0x3,0x59,0x40, 0x2,0x64,0x32, + 0x2,0x64,0x21, 0x3,0x59,0x42, 0x1,0x77,0x53, 0x2,0x64,0x2b, + 0x1,0x77,0x55, 0x1,0x77,0x5d, 0x1,0x77,0x5b, 0x2,0x64,0x2d, + 0x1,0x77,0x5c, 0x2,0x64,0x23, 0x3,0x59,0x49, 0x2,0x64,0x24, + 0x2,0x64,0x29, 0x2,0x64,0x2e, 0x3,0x59,0x3e, 0x2,0x5f,0x79, + 0x1,0x77,0x56, 0x2,0x64,0x37, 0x2,0x64,0x34, 0x2,0x67,0x61, + 0x2,0x64,0x2a, 0x2,0x64,0x26, 0x2,0x64,0x35, 0x2,0x67,0x56, + 0x2,0x64,0x28, 0x4,0x5e,0x31, 0x1,0x77,0x59, 0x3,0x59,0x44, + 0x1,0x77,0x58, 0x2,0x5f,0x7b, 0x1,0x77,0x5a, 0x2,0x64,0x31, + 0x2,0x64,0x33, 0x1,0x77,0x57, 0x2,0x64,0x36, 0x2,0x63,0x7d, + 0x4,0x5e,0x29, 0x2,0x64,0x22, 0x3,0x59,0x46, 0xf,0x61,0x33, + 0x3,0x59,0x45, 0x3,0x66,0x61, 0x3,0x66,0x62, 0x3,0x66,0x60, + 0xf,0x61,0x43, 0x2,0x67,0x5f, 0x3,0x5b,0x50, 0x2,0x67,0x4f, + 0x1,0x79,0x38, 0x2,0x67,0x5d, 0x3,0x5b,0x44, 0x3,0x5b,0x45, + 0x2,0x67,0x4d, 0x1,0x79,0x39, 0x4,0x61,0x67, 0x2,0x67,0x58, + 0x3,0x5b,0x43, 0x2,0x67,0x54, 0x1,0x79,0x3e, 0x2,0x67,0x5e, + 0x2,0x67,0x4e, 0x2,0x67,0x51, 0x1,0x79,0x36, 0x2,0x67,0x60, + 0x3,0x5b,0x48, 0x2,0x67,0x59, 0x2,0x67,0x5c, 0x1,0x79,0x3c, + 0x1,0x79,0x41, 0x1,0x79,0x3f, 0x2,0x67,0x55, 0x2,0x67,0x50, + 0x3,0x5b,0x4d, 0x1,0x79,0x3a, 0x1,0x79,0x3b, 0x2,0x67,0x4c, + 0x1,0x79,0x37, 0x3,0x5b,0x4f, 0x1,0x79,0x35, 0x1,0x79,0x3d, + 0x2,0x67,0x5b, 0x1,0x79,0x40, 0x3,0x5b,0x4a, 0x2,0x67,0x57, + 0x2,0x67,0x62, 0x1,0x79,0x42, 0x3,0x5b,0x41, 0x3,0x5b,0x42, + 0x3,0x5b,0x4e, 0x2,0x67,0x53, 0x3,0x5b,0x47, 0x2,0x67,0x5a, + 0x3,0x66,0x65, 0x3,0x66,0x63, 0x3,0x66,0x64, 0x3,0x5d,0x41, + 0x3,0x5e,0x6a, 0x2,0x6a,0x41, 0x2,0x6a,0x50, 0x2,0x6a,0x43, + 0x2,0x6a,0x4a, 0x2,0x67,0x52, 0x2,0x6a,0x48, 0x2,0x6a,0x37, + 0x2,0x6a,0x4e, 0x1,0x7a,0x4e, 0x2,0x6a,0x3b, 0x2,0x6a,0x4d, + 0x2,0x6a,0x42, 0x4,0x64,0x67, 0x3,0x5d,0x43, 0x1,0x7a,0x4d, + 0x3,0x5d,0x3c, 0x3,0x5d,0x3f, 0x2,0x6a,0x52, 0x2,0x6a,0x44, + 0x3,0x5d,0x3e, 0x2,0x6a,0x49, 0x2,0x6a,0x4c, 0x2,0x6a,0x35, + 0x2,0x6a,0x4f, 0x2,0x6a,0x40, 0x2,0x6a,0x45, 0x2,0x6a,0x39, + 0x2,0x6a,0x3d, 0x2,0x6a,0x51, 0x2,0x6a,0x47, 0x2,0x6a,0x36, + 0x2,0x6a,0x3a, 0x2,0x6a,0x3c, 0x2,0x6a,0x46, 0x3,0x5d,0x3d, + 0x1,0x7a,0x4c, 0x2,0x6a,0x3f, 0x3,0x5d,0x44, 0x3,0x5d,0x45, + 0x3,0x5d,0x47, 0x4,0x64,0x6b, 0x3,0x5d,0x42, 0x3,0x5d,0x3a, + 0x2,0x6a,0x38, 0x3,0x66,0x66, 0x3,0x66,0x67, 0x3,0x66,0x68, + 0xf,0x66,0x57, 0x3,0x5d,0x46, 0x2,0x6a,0x3e, 0x2,0x6c,0x50, + 0x2,0x6c,0x54, 0x1,0x7b,0x3b, 0x2,0x6c,0x56, 0x3,0x5e,0x6d, + 0x1,0x7b,0x35, 0x4,0x64,0x6f, 0x2,0x6c,0x52, 0x2,0x6c,0x58, + 0x1,0x7b,0x3a, 0x1,0x7b,0x36, 0x4,0x67,0x5c, 0x1,0x7b,0x37, + 0x2,0x6c,0x4f, 0x2,0x6c,0x55, 0x1,0x7b,0x39, 0x2,0x6c,0x53, + 0x1,0x7b,0x38, 0x2,0x6c,0x4e, 0x2,0x6a,0x4b, 0x2,0x6c,0x51, + 0x4,0x67,0x62, 0x2,0x6c,0x4d, 0x2,0x6c,0x57, 0x3,0x5f,0x69, + 0x3,0x5f,0x6e, 0x1,0x7b,0x7b, 0x2,0x6e,0x3c, 0x2,0x6e,0x3f, + 0x2,0x6e,0x3b, 0x2,0x6e,0x3d, 0x2,0x6e,0x3e, 0x2,0x6e,0x38, + 0x2,0x6e,0x39, 0x2,0x6e,0x36, 0x3,0x5f,0x6a, 0x3,0x5f,0x6c, + 0x2,0x6e,0x3a, 0x2,0x6e,0x37, 0x1,0x7b,0x7c, 0x1,0x7b,0x7d, + 0x3,0x5f,0x6b, 0x2,0x6f,0x59, 0x3,0x60,0x52, 0x2,0x6f,0x5b, + 0x4,0x6b,0x29, 0x5,0x76,0x5d, 0x3,0x60,0x55, 0x3,0x60,0x54, + 0x3,0x60,0x56, 0x2,0x6f,0x5a, 0x2,0x6f,0x5c, 0x3,0x60,0x4f, + 0x1,0x7c,0x4c, 0x3,0x60,0x53, 0x2,0x6f,0x58, 0x1,0x7c,0x4b, + 0x1,0x7c,0x4d, 0x3,0x60,0x57, 0x3,0x66,0x6a, 0x3,0x66,0x69, + 0x2,0x70,0x59, 0x2,0x70,0x5a, 0x1,0x7c,0x6f, 0x2,0x70,0x58, + 0x3,0x61,0x22, 0x2,0x71,0x42, 0x2,0x71,0x41, 0x2,0x71,0x43, + 0x1,0x7d,0x2c, 0x2,0x71,0x44, 0x1,0x7d,0x2b, 0x2,0x71,0x45, + 0x2,0x71,0x61, 0x2,0x71,0x64, 0x2,0x71,0x63, 0x1,0x7d,0x35, + 0x2,0x71,0x62, 0x4,0x6d,0x62, 0x3,0x61,0x6f, 0x3,0x62,0x23, + 0x1,0x7d,0x3f, 0x1,0x7d,0x3d, 0x1,0x7d,0x3e, 0x1,0x7d,0x44, + 0x2,0x72,0x30, 0x2,0x72,0x31, 0x2,0x72,0x2f, 0x2,0x72,0x37, + 0x3,0x62,0x36, 0x1,0x4f,0x5b, 0x4,0x25,0x2b, 0x4,0x30,0x3a, + 0x2,0x3a,0x28, 0x2,0x41,0x3f, 0x2,0x55,0x4e, 0x2,0x67,0x63, + 0x5,0x71,0x56, 0x1,0x4f,0x5c, 0x3,0x2f,0x40, 0x1,0x53,0x6d, + 0x1,0x58,0x60, 0x4,0x30,0x3b, 0x3,0x34,0x32, 0x2,0x3a,0x29, + 0x3,0x39,0x5c, 0x2,0x3a,0x2a, 0x1,0x5d,0x70, 0x1,0x62,0x64, + 0x2,0x41,0x41, 0x2,0x41,0x40, 0x1,0x62,0x68, 0x1,0x62,0x63, + 0x2,0x41,0x42, 0x1,0x62,0x65, 0x1,0x62,0x67, 0x1,0x62,0x66, + 0x1,0x62,0x62, 0x3,0x3f,0x6c, 0xf,0x3f,0x7e, 0x3,0x66,0x6b, + 0x1,0x67,0x50, 0x3,0x45,0x3c, 0x3,0x45,0x3a, 0x2,0x48,0x56, + 0x2,0x48,0x54, 0x4,0x41,0x53, 0x2,0x48,0x55, 0x2,0x48,0x53, + 0xf,0x45,0x7b, 0x1,0x6b,0x5b, 0x3,0x4a,0x3d, 0x1,0x6b,0x5e, + 0x1,0x6b,0x60, 0x1,0x6b,0x5f, 0x4,0x48,0x22, 0x3,0x4a,0x3e, + 0x1,0x6b,0x5c, 0x1,0x6b,0x5d, 0x2,0x55,0x50, 0x2,0x55,0x4f, + 0x1,0x6f,0x64, 0x2,0x55,0x51, 0x3,0x4f,0x53, 0x2,0x55,0x52, + 0x1,0x6f,0x65, 0x3,0x4f,0x55, 0x3,0x4f,0x56, 0x4,0x4e,0x4a, + 0x2,0x5b,0x59, 0x2,0x5b,0x57, 0x2,0x60,0x40, 0x3,0x53,0x42, + 0x2,0x5b,0x55, 0x2,0x5b,0x56, 0x1,0x72,0x6f, 0x2,0x5b,0x52, + 0x2,0x5b,0x5a, 0x2,0x5b,0x54, 0x2,0x5b,0x58, 0x2,0x60,0x3c, + 0x3,0x53,0x44, 0x3,0x53,0x40, 0x2,0x60,0x3e, 0x3,0x56,0x6d, + 0x2,0x60,0x3f, 0x1,0x75,0x7e, 0x2,0x60,0x3b, 0x1,0x75,0x7d, + 0x2,0x60,0x3d, 0x1,0x75,0x7a, 0x1,0x75,0x7b, 0x1,0x75,0x7c, + 0x2,0x5b,0x53, 0x3,0x66,0x6c, 0x1,0x77,0x60, 0x2,0x64,0x3a, + 0x2,0x64,0x38, 0x2,0x64,0x39, 0x1,0x77,0x5e, 0x1,0x77,0x61, + 0x1,0x77,0x5f, 0x3,0x59,0x4b, 0x3,0x59,0x4a, 0x7,0x4b,0x40, + 0x2,0x67,0x64, 0x2,0x67,0x65, 0x1,0x79,0x43, 0x3,0x5b,0x53, + 0x2,0x6a,0x53, 0x2,0x6a,0x55, 0x2,0x6a,0x54, 0x1,0x7a,0x4f, + 0x1,0x7b,0x3c, 0x2,0x6c,0x5b, 0x2,0x6c,0x5a, 0x2,0x6c,0x59, + 0xf,0x68,0x72, 0x3,0x66,0x6d, 0xf,0x25,0x39, 0x1,0x4f,0x5d, + 0x3,0x21,0x43, 0x2,0x21,0x69, 0x2,0x22,0x78, 0x1,0x48,0x6a, + 0x2,0x22,0x76, 0x2,0x22,0x79, 0x2,0x22,0x77, 0x4,0x25,0x2e, + 0x3,0x27,0x3b, 0x3,0x27,0x3a, 0x2,0x25,0x2e, 0x3,0x27,0x3f, + 0x1,0x4b,0x62, 0x3,0x27,0x3c, 0x1,0x4b,0x63, 0x2,0x25,0x30, + 0x1,0x4b,0x60, 0x2,0x25,0x2f, 0x2,0x25,0x2d, 0x1,0x4b,0x61, + 0x1,0x4b,0x5f, 0x3,0x27,0x3d, 0x3,0x27,0x3e, 0x3,0x2a,0x79, + 0x4,0x28,0x33, 0x2,0x28,0x78, 0x2,0x28,0x7b, 0x1,0x4f,0x60, + 0x2,0x28,0x7a, 0x2,0x28,0x79, 0x3,0x2a,0x7c, 0x1,0x4f,0x5f, + 0x1,0x4f,0x5e, 0x3,0x2a,0x7b, 0x1,0x4f,0x62, 0x2,0x28,0x7c, + 0x1,0x4f,0x61, 0x2,0x2d,0x67, 0x1,0x53,0x6f, 0x1,0x53,0x70, + 0x1,0x53,0x71, 0x2,0x2d,0x68, 0x2,0x2d,0x64, 0x1,0x53,0x6e, + 0x2,0x2d,0x65, 0x4,0x2b,0x5d, 0x2,0x2d,0x66, 0x2,0x2d,0x63, + 0x4,0x2b,0x5b, 0x3,0x34,0x36, 0x4,0x30,0x3f, 0x1,0x58,0x67, + 0x3,0x34,0x34, 0x3,0x39,0x5e, 0x1,0x58,0x64, 0x2,0x33,0x48, + 0x1,0x58,0x65, 0x1,0x58,0x68, 0x2,0x33,0x49, 0x3,0x34,0x33, + 0x1,0x58,0x63, 0x1,0x58,0x61, 0x1,0x58,0x62, 0x1,0x58,0x66, + 0x1,0x5d,0x71, 0x2,0x3a,0x2d, 0x1,0x5d,0x79, 0x2,0x3a,0x2c, + 0x3,0x39,0x61, 0x2,0x3a,0x2f, 0x1,0x5d,0x75, 0x2,0x3a,0x2e, + 0x1,0x62,0x70, 0x1,0x5d,0x73, 0x1,0x5d,0x76, 0x1,0x5d,0x72, + 0x1,0x5d,0x77, 0x1,0x5d,0x78, 0x1,0x5d,0x74, 0x3,0x39,0x65, + 0x3,0x3f,0x71, 0x2,0x3a,0x2b, 0x1,0x62,0x6c, 0x2,0x41,0x44, + 0x3,0x3f,0x72, 0x2,0x41,0x48, 0x3,0x3f,0x73, 0x3,0x3f,0x75, + 0x2,0x41,0x47, 0x1,0x62,0x71, 0x1,0x62,0x6d, 0x1,0x62,0x6e, + 0x2,0x41,0x43, 0x2,0x41,0x45, 0x2,0x41,0x46, 0x1,0x62,0x69, + 0x1,0x62,0x6b, 0x3,0x3f,0x70, 0x1,0x62,0x6f, 0x1,0x62,0x6a, + 0x3,0x45,0x40, 0x2,0x48,0x59, 0x2,0x48,0x57, 0x2,0x48,0x58, + 0x1,0x67,0x52, 0x1,0x67,0x53, 0x3,0x45,0x42, 0x2,0x48,0x5a, + 0x1,0x67,0x51, 0x1,0x6b,0x61, 0x4,0x48,0x24, 0x1,0x6b,0x63, + 0x1,0x6b,0x62, 0x3,0x4a,0x45, 0x2,0x4f,0x23, 0x3,0x4a,0x46, + 0x3,0x4a,0x44, 0x2,0x4f,0x24, 0x2,0x55,0x54, 0x3,0x4f,0x5a, + 0x2,0x55,0x53, 0x3,0x4f,0x5b, 0x4,0x54,0x52, 0x1,0x72,0x70, + 0x1,0x72,0x71, 0x2,0x5b,0x5b, 0x1,0x72,0x72, 0x3,0x53,0x48, + 0x2,0x60,0x43, 0x3,0x56,0x70, 0x2,0x60,0x41, 0x3,0x56,0x6f, + 0x2,0x60,0x42, 0x1,0x76,0x21, 0x3,0x56,0x71, 0x2,0x64,0x3b, + 0x1,0x79,0x44, 0x3,0x5d,0x49, 0x3,0x2a,0x7d, 0x3,0x53,0x49, + 0x1,0x76,0x22, 0x1,0x4f,0x63, 0x4,0x30,0x41, 0x1,0x58,0x69, + 0x2,0x33,0x4a, 0x3,0x34,0x39, 0xf,0x32,0x6f, 0x2,0x3a,0x30, + 0x1,0x5d,0x7a, 0x1,0x62,0x72, 0x2,0x41,0x49, 0x2,0x41,0x4b, + 0x1,0x62,0x74, 0x1,0x62,0x73, 0x1,0x62,0x75, 0x1,0x62,0x76, + 0x2,0x41,0x4a, 0x1,0x67,0x56, 0x1,0x67,0x57, 0x1,0x67,0x55, + 0x1,0x6b,0x64, 0x1,0x67,0x54, 0x2,0x48,0x5b, 0x4,0x41,0x57, + 0x3,0x4a,0x47, 0x3,0x4a,0x49, 0x1,0x6b,0x65, 0x2,0x55,0x55, + 0x2,0x5b,0x5c, 0x1,0x72,0x73, 0x1,0x76,0x23, 0x2,0x64,0x3c, + 0x2,0x64,0x40, 0x1,0x77,0x64, 0x2,0x64,0x3d, 0x1,0x77,0x65, + 0x1,0x77,0x63, 0x2,0x64,0x41, 0x1,0x77,0x66, 0x2,0x64,0x3f, + 0x2,0x67,0x66, 0x1,0x77,0x62, 0x1,0x79,0x45, 0x3,0x5e,0x70, + 0x2,0x70,0x5b, 0x3,0x61,0x25, 0x3,0x62,0x2f, 0x1,0x4f,0x64, + 0x1,0x5d,0x7c, 0x1,0x5d,0x7b, 0xf,0x39,0x2a, 0x3,0x3f,0x7e, + 0x3,0x3f,0x7c, 0x3,0x3f,0x7b, 0x1,0x62,0x77, 0x2,0x41,0x4d, + 0x2,0x41,0x4c, 0x1,0x62,0x78, 0x3,0x45,0x46, 0x2,0x48,0x5f, + 0x1,0x67,0x5b, 0x1,0x67,0x58, 0x2,0x48,0x5e, 0x1,0x67,0x5a, + 0x2,0x48,0x5c, 0x1,0x67,0x59, 0x3,0x45,0x47, 0x2,0x48,0x5d, + 0x2,0x4f,0x25, 0x1,0x6b,0x66, 0x2,0x55,0x58, 0x5,0x52,0x3b, + 0x1,0x6f,0x66, 0x2,0x55,0x56, 0x1,0x6f,0x67, 0x1,0x6f,0x68, + 0x2,0x55,0x57, 0x1,0x6f,0x69, 0x3,0x4f,0x60, 0x2,0x5b,0x5d, + 0x3,0x53,0x50, 0x1,0x72,0x77, 0x1,0x72,0x74, 0x1,0x72,0x79, + 0x2,0x5b,0x5f, 0x1,0x72,0x75, 0x2,0x5b,0x5e, 0x1,0x72,0x78, + 0x3,0x53,0x4d, 0x3,0x53,0x4c, 0x1,0x72,0x76, 0x3,0x53,0x51, + 0x2,0x60,0x46, 0x2,0x60,0x48, 0x3,0x56,0x74, 0x3,0x56,0x75, + 0x1,0x76,0x24, 0x2,0x60,0x47, 0x1,0x76,0x25, 0x2,0x60,0x45, + 0x2,0x60,0x44, 0x4,0x5e,0x38, 0x2,0x64,0x43, 0x2,0x64,0x42, + 0x1,0x77,0x67, 0x2,0x64,0x44, 0x2,0x67,0x6b, 0x1,0x79,0x47, + 0x2,0x67,0x6a, 0x2,0x67,0x67, 0x1,0x79,0x46, 0x2,0x67,0x68, + 0x2,0x67,0x69, 0x2,0x6a,0x56, 0x2,0x6a,0x57, 0x1,0x7a,0x50, + 0x3,0x5d,0x4f, 0x1,0x7b,0x3f, 0x3,0x5d,0x4c, 0x3,0x5d,0x4e, + 0x2,0x6c,0x5c, 0x3,0x5e,0x72, 0x3,0x5e,0x71, 0x1,0x7b,0x3d, + 0x1,0x7b,0x3e, 0x2,0x6c,0x5d, 0x3,0x66,0x6e, 0x3,0x5f,0x71, + 0x1,0x7b,0x7e, 0x1,0x7c,0x21, 0x2,0x6e,0x40, 0x3,0x5f,0x72, + 0x3,0x60,0x59, 0x1,0x7c,0x70, 0x2,0x70,0x5d, 0x1,0x7c,0x72, + 0x3,0x61,0x26, 0x2,0x70,0x5c, 0x2,0x70,0x5e, 0x1,0x7c,0x71, + 0x2,0x71,0x46, 0x4,0x6d,0x64, 0x2,0x71,0x7b, 0x3,0x66,0x6f, + 0x3,0x62,0x45, 0x3,0x2a,0x7e, 0x1,0x4f,0x65, 0x3,0x45,0x49, + 0x1,0x67,0x5c, 0x4,0x48,0x35, 0x2,0x4f,0x26, 0x3,0x4a,0x4c, + 0x2,0x55,0x59, 0x1,0x72,0x7a, 0x1,0x72,0x7b, 0x3,0x59,0x4f, + 0x1,0x4f,0x66, 0x3,0x40,0x21, 0x1,0x6f,0x6a, 0x1,0x79,0x48, + 0x1,0x53,0x72, 0x3,0x2b,0x21, 0x3,0x4a,0x4e, 0x1,0x72,0x7c, + 0x3,0x5e,0x73, 0x1,0x7c,0x4e, 0x1,0x53,0x73, 0x2,0x3a,0x31, + 0x4,0x3b,0x77, 0x2,0x41,0x4e, 0x3,0x40,0x24, 0x2,0x41,0x50, + 0x3,0x40,0x22, 0x2,0x41,0x4f, 0x2,0x48,0x63, 0x2,0x48,0x60, + 0x1,0x67,0x5d, 0x6,0x5a,0x24, 0x1,0x67,0x5e, 0x2,0x48,0x61, + 0x2,0x48,0x62, 0x3,0x45,0x4b, 0x2,0x4f,0x28, 0x2,0x4f,0x2d, + 0x1,0x6b,0x67, 0x2,0x4f,0x27, 0x2,0x4f,0x29, 0x2,0x4f,0x30, + 0x2,0x4f,0x2b, 0x2,0x4f,0x2f, 0x2,0x4f,0x2c, 0x2,0x4f,0x2a, + 0x2,0x4f,0x2e, 0x1,0x6b,0x68, 0x3,0x4f,0x62, 0x2,0x55,0x5c, + 0x3,0x4f,0x63, 0x2,0x55,0x5a, 0x1,0x6f,0x6c, 0x3,0x4f,0x64, + 0x1,0x6f,0x6b, 0x2,0x55,0x5b, 0x1,0x6f,0x6d, 0x3,0x53,0x53, + 0x2,0x5b,0x62, 0x4,0x54,0x5f, 0x4,0x54,0x67, 0x2,0x5b,0x61, + 0x1,0x72,0x7d, 0x2,0x5b,0x60, 0x2,0x60,0x49, 0x3,0x56,0x7a, + 0x2,0x60,0x4b, 0x2,0x60,0x4d, 0x2,0x60,0x4c, 0x3,0x56,0x7b, + 0x1,0x76,0x26, 0x2,0x60,0x4a, 0x2,0x64,0x4b, 0x1,0x77,0x68, + 0x2,0x64,0x49, 0x2,0x64,0x4c, 0x1,0x77,0x69, 0x4,0x5e,0x43, + 0x2,0x64,0x47, 0x3,0x59,0x50, 0x2,0x64,0x4a, 0x2,0x64,0x48, + 0x2,0x64,0x45, 0x1,0x77,0x6a, 0x2,0x64,0x46, 0x4,0x61,0x7c, + 0x3,0x5b,0x5f, 0x3,0x5b,0x5d, 0x2,0x67,0x6c, 0x3,0x5b,0x5e, + 0x3,0x5b,0x60, 0x2,0x67,0x6e, 0x2,0x67,0x6d, 0x3,0x5d,0x50, + 0x2,0x6a,0x58, 0x3,0x5d,0x51, 0x2,0x6a,0x59, 0x4,0x67,0x71, + 0x3,0x5e,0x75, 0x3,0x5e,0x74, 0x2,0x6c,0x5e, 0x3,0x5f,0x73, + 0x1,0x7c,0x23, 0x4,0x69,0x5e, 0x1,0x7c,0x22, 0x2,0x6f,0x5d, + 0x2,0x6f,0x5e, 0x1,0x7c,0x73, 0x2,0x70,0x5f, 0x3,0x61,0x28, + 0x1,0x7d,0x36, 0x3,0x62,0x3b, 0x1,0x53,0x74, 0x1,0x62,0x79, + 0x2,0x4f,0x32, 0x2,0x4f,0x31, 0x2,0x55,0x5e, 0x2,0x55,0x5d, + 0x4,0x4e,0x57, 0x3,0x53,0x55, 0x1,0x76,0x27, 0x2,0x60,0x4f, + 0x2,0x60,0x4e, 0x2,0x64,0x4f, 0x2,0x64,0x4d, 0x2,0x64,0x50, + 0x2,0x64,0x4e, 0x3,0x59,0x51, 0x4,0x65,0x29, 0x1,0x79,0x49, + 0x2,0x67,0x6f, 0x2,0x67,0x70, 0x2,0x67,0x71, 0x4,0x65,0x27, + 0x2,0x6c,0x5f, 0x3,0x5e,0x76, 0x2,0x6e,0x41, 0x3,0x61,0x29, + 0x2,0x70,0x60, 0x1,0x53,0x75, 0x3,0x45,0x4f, 0x3,0x4f,0x65, + 0x2,0x5b,0x63, 0x2,0x60,0x50, 0x3,0x5b,0x61, 0x1,0x53,0x76, + 0x4,0x41,0x63, 0x3,0x45,0x50, 0x1,0x6b,0x69, 0x4,0x48,0x46, + 0x2,0x5b,0x64, 0x1,0x77,0x6b, 0x2,0x64,0x51, 0x1,0x79,0x4a, + 0x3,0x5d,0x53, 0x2,0x6a,0x5a, 0x2,0x6a,0x5b, 0x1,0x7b,0x40, + 0x2,0x6f,0x5f, 0x1,0x53,0x77, 0x1,0x5e,0x21, 0x1,0x5e,0x22, + 0x2,0x3a,0x32, 0x1,0x62,0x7a, 0x1,0x62,0x7b, 0x2,0x41,0x51, + 0x1,0x62,0x7c, 0x4,0x41,0x68, 0x1,0x67,0x62, 0x3,0x45,0x52, + 0x1,0x67,0x64, 0x2,0x48,0x65, 0x2,0x48,0x66, 0x2,0x48,0x64, + 0x1,0x67,0x5f, 0x1,0x67,0x60, 0x1,0x67,0x63, 0x1,0x67,0x61, + 0x3,0x4a,0x54, 0x3,0x4a,0x55, 0x2,0x4f,0x33, 0x1,0x6b,0x6a, + 0x1,0x6b,0x6b, 0x3,0x4a,0x52, 0x3,0x4a,0x56, 0x2,0x55,0x65, + 0x1,0x6f,0x70, 0x2,0x55,0x60, 0x2,0x55,0x5f, 0x3,0x4f,0x69, + 0x2,0x55,0x64, 0x1,0x6f,0x6e, 0x3,0x4f,0x67, 0x4,0x4e,0x5a, + 0x1,0x73,0x26, 0x4,0x54,0x70, 0x2,0x55,0x61, 0x2,0x55,0x66, + 0x2,0x55,0x63, 0x2,0x55,0x62, 0x3,0x4f,0x66, 0x1,0x6f,0x6f, + 0x1,0x73,0x24, 0x3,0x53,0x5c, 0x2,0x5b,0x66, 0x1,0x72,0x7e, + 0x3,0x53,0x59, 0x2,0x5b,0x67, 0x3,0x53,0x5a, 0x3,0x52,0x28, + 0x2,0x5b,0x65, 0x3,0x53,0x58, 0x1,0x73,0x23, 0x1,0x73,0x21, + 0x1,0x73,0x25, 0x3,0x53,0x5d, 0x1,0x73,0x22, 0x3,0x53,0x5b, + 0x3,0x53,0x5f, 0x4,0x5e,0x4f, 0x3,0x59,0x5b, 0x3,0x57,0x26, + 0x2,0x60,0x51, 0x4,0x59,0x70, 0x2,0x60,0x56, 0x2,0x60,0x52, + 0x2,0x60,0x55, 0x1,0x76,0x28, 0x3,0x57,0x28, 0x2,0x5e,0x41, + 0x2,0x60,0x54, 0x2,0x60,0x53, 0x3,0x59,0x59, 0x1,0x77,0x6e, + 0x1,0x77,0x6c, 0x1,0x77,0x6f, 0x1,0x77,0x6d, 0x2,0x64,0x52, + 0x2,0x64,0x53, 0x2,0x64,0x54, 0x1,0x77,0x70, 0x3,0x59,0x56, + 0x3,0x59,0x58, 0x3,0x5b,0x65, 0x2,0x67,0x75, 0x1,0x79,0x4c, + 0x2,0x67,0x73, 0x4,0x62,0x30, 0x1,0x79,0x4d, 0x2,0x67,0x72, + 0x2,0x67,0x74, 0x1,0x79,0x4b, 0x2,0x6a,0x5f, 0x2,0x6a,0x5c, + 0x4,0x65,0x2c, 0x2,0x6a,0x5d, 0x2,0x6a,0x5e, 0x2,0x6c,0x60, + 0x1,0x7b,0x42, 0x3,0x5e,0x78, 0x1,0x7b,0x41, 0x3,0x5e,0x77, + 0x2,0x6e,0x43, 0x2,0x6e,0x42, 0x1,0x7c,0x24, 0x3,0x60,0x5d, + 0x3,0x60,0x5e, 0x3,0x60,0x5c, 0x1,0x7c,0x4f, 0x1,0x7c,0x74, + 0x1,0x7d,0x2d, 0x2,0x71,0x47, 0x2,0x71,0x7c, 0x2,0x71,0x7d, + 0x1,0x53,0x78, 0x2,0x41,0x52, 0x4,0x41,0x71, 0x2,0x48,0x67, + 0x2,0x4f,0x34, 0x2,0x4f,0x35, 0x1,0x6b,0x6c, 0x4,0x48,0x57, + 0x1,0x6b,0x6d, 0x2,0x55,0x67, 0x1,0x6f,0x71, 0x3,0x53,0x61, + 0x1,0x76,0x29, 0x3,0x57,0x2a, 0x2,0x64,0x55, 0x3,0x59,0x5c, + 0x1,0x77,0x71, 0x2,0x67,0x78, 0x1,0x79,0x4e, 0x2,0x67,0x77, + 0x2,0x67,0x79, 0x2,0x67,0x76, 0x2,0x6c,0x63, 0x2,0x6a,0x60, + 0x2,0x6a,0x61, 0x3,0x5d,0x56, 0x1,0x7a,0x51, 0x2,0x6c,0x62, + 0x3,0x5e,0x7b, 0x3,0x5e,0x79, 0x2,0x6c,0x61, 0x3,0x5e,0x7a, + 0x2,0x6e,0x44, 0x2,0x71,0x7e, 0x3,0x62,0x25, 0x1,0x53,0x79, + 0x3,0x5e,0x7c, 0x3,0x62,0x26, 0x1,0x53,0x7a, 0x3,0x39,0x67, + 0x1,0x58,0x6a, 0x2,0x33,0x4b, 0x3,0x66,0x70, 0x2,0x3a,0x33, + 0x3,0x39,0x68, 0x1,0x62,0x7d, 0x1,0x63,0x22, 0x1,0x62,0x7e, + 0x2,0x41,0x53, 0x3,0x45,0x5b, 0x1,0x63,0x24, 0x1,0x63,0x21, + 0x3,0x40,0x2b, 0x3,0x45,0x5c, 0x1,0x63,0x23, 0x3,0x45,0x54, + 0x1,0x67,0x66, 0x3,0x45,0x59, 0x2,0x48,0x68, 0x3,0x45,0x57, + 0x3,0x4a,0x5d, 0x2,0x48,0x69, 0x2,0x55,0x69, 0x4,0x41,0x7b, + 0x1,0x67,0x65, 0x1,0x67,0x67, 0x1,0x67,0x68, 0x3,0x45,0x58, + 0x2,0x4f,0x37, 0x3,0x4a,0x5e, 0x2,0x4f,0x36, 0x1,0x6b,0x6e, + 0x5,0x4b,0x4c, 0x1,0x6b,0x6f, 0x3,0x4a,0x5b, 0x2,0x4f,0x38, + 0x2,0x55,0x68, 0x1,0x6b,0x71, 0x1,0x6f,0x72, 0x4,0x4e,0x63, + 0x1,0x6b,0x70, 0x3,0x66,0x7a, 0x1,0x73,0x27, 0x2,0x55,0x6a, + 0x1,0x6f,0x74, 0x1,0x6f,0x73, 0x2,0x55,0x6b, 0x2,0x55,0x6e, + 0x2,0x55,0x6c, 0x2,0x55,0x6d, 0x1,0x6f,0x75, 0x3,0x4f,0x6b, + 0x1,0x73,0x2c, 0x1,0x73,0x2a, 0x3,0x53,0x65, 0x3,0x53,0x66, + 0x1,0x73,0x29, 0x2,0x5b,0x69, 0x3,0x53,0x64, 0x1,0x73,0x2b, + 0x3,0x53,0x62, 0x3,0x53,0x63, 0x2,0x5b,0x68, 0x2,0x60,0x57, + 0x4,0x54,0x7e, 0x2,0x5b,0x6a, 0x1,0x73,0x28, 0x2,0x5b,0x6b, + 0x2,0x60,0x5a, 0x2,0x60,0x58, 0x2,0x60,0x59, 0x2,0x60,0x5e, + 0x1,0x77,0x75, 0x2,0x60,0x5d, 0x2,0x60,0x60, 0x2,0x60,0x5f, + 0x2,0x60,0x5c, 0x2,0x60,0x5b, 0x4,0x55,0x21, 0x1,0x76,0x2a, + 0x3,0x59,0x62, 0x4,0x5a,0x29, 0x3,0x59,0x61, 0x3,0x59,0x66, + 0x2,0x64,0x58, 0x3,0x59,0x65, 0x2,0x64,0x57, 0x1,0x77,0x74, + 0x1,0x77,0x72, 0x1,0x77,0x73, 0x3,0x59,0x63, 0x2,0x64,0x56, + 0x3,0x66,0x71, 0x2,0x67,0x7c, 0x3,0x5b,0x69, 0x1,0x79,0x4f, + 0x4,0x62,0x38, 0x2,0x67,0x7b, 0x2,0x67,0x7a, 0x1,0x79,0x50, + 0x4,0x65,0x3a, 0x2,0x6a,0x66, 0x2,0x6a,0x65, 0x3,0x5d,0x58, + 0x2,0x6a,0x63, 0x3,0x5e,0x7e, 0x2,0x6a,0x62, 0x1,0x7a,0x53, + 0x1,0x7a,0x52, 0x2,0x6a,0x67, 0x2,0x6e,0x45, 0x1,0x7c,0x25, + 0x2,0x6c,0x65, 0x1,0x7b,0x43, 0x2,0x6c,0x64, 0x2,0x6a,0x64, + 0x3,0x5f,0x78, 0x2,0x6e,0x46, 0x1,0x7c,0x50, 0x3,0x61,0x2a, + 0x1,0x7d,0x2e, 0x2,0x71,0x48, 0x4,0x6e,0x24, 0x2,0x72,0x21, + 0x1,0x53,0x7b, 0x2,0x3a,0x34, 0x2,0x60,0x61, 0x1,0x53,0x7c, + 0x3,0x45,0x5f, 0x5,0x4b,0x4e, 0x2,0x4f,0x3a, 0x2,0x4f,0x39, + 0x2,0x5b,0x6c, 0x5,0x5a,0x26, 0x3,0x53,0x68, 0x2,0x60,0x63, + 0x3,0x57,0x30, 0x2,0x60,0x62, 0x3,0x59,0x67, 0x1,0x77,0x76, + 0x2,0x67,0x7d, 0x2,0x67,0x7e, 0x1,0x7a,0x54, 0x3,0x5f,0x21, + 0x3,0x60,0x60, 0x2,0x72,0x22, 0x1,0x58,0x6b, 0x1,0x63,0x26, + 0x1,0x63,0x25, 0x2,0x48,0x6a, 0x2,0x48,0x6c, 0x1,0x67,0x6a, + 0x2,0x48,0x6b, 0x1,0x67,0x69, 0x1,0x67,0x6b, 0x2,0x48,0x6d, + 0x3,0x4a,0x63, 0x3,0x4a,0x62, 0x3,0x4a,0x66, 0x2,0x4f,0x3c, + 0x2,0x4f,0x3e, 0x2,0x4f,0x3d, 0x3,0x4a,0x61, 0x2,0x4f,0x40, + 0x3,0x4a,0x60, 0x3,0x4a,0x6c, 0x3,0x4a,0x64, 0x1,0x6b,0x72, + 0x2,0x4f,0x3f, 0x2,0x4f,0x3b, 0x3,0x4a,0x6a, 0x4,0x48,0x60, + 0x2,0x4f,0x41, 0x3,0x4f,0x73, 0x2,0x55,0x75, 0x3,0x4f,0x6d, + 0x2,0x55,0x78, 0x2,0x55,0x7a, 0x2,0x55,0x70, 0x2,0x55,0x74, + 0x2,0x55,0x71, 0x1,0x6f,0x77, 0x1,0x6f,0x7a, 0x1,0x6f,0x7c, + 0x2,0x55,0x72, 0x2,0x55,0x73, 0x1,0x6f,0x7b, 0x2,0x55,0x76, + 0x2,0x55,0x79, 0x2,0x55,0x77, 0x1,0x6f,0x7d, 0x3,0x4f,0x6e, + 0x1,0x6f,0x79, 0x2,0x55,0x6f, 0x1,0x6f,0x76, 0x3,0x4f,0x72, + 0x1,0x6f,0x78, 0x3,0x4f,0x74, 0x3,0x53,0x70, 0x1,0x73,0x2e, + 0x2,0x5b,0x72, 0x2,0x5b,0x70, 0x2,0x5b,0x6f, 0x3,0x53,0x71, + 0x2,0x5b,0x75, 0x3,0x53,0x6b, 0x2,0x5b,0x74, 0x2,0x5b,0x73, + 0x3,0x53,0x6c, 0x2,0x5b,0x6e, 0x1,0x73,0x2d, 0x2,0x5b,0x6d, + 0x3,0x53,0x6a, 0x2,0x5b,0x71, 0x1,0x73,0x2f, 0x3,0x57,0x34, + 0x2,0x60,0x66, 0x3,0x57,0x37, 0x2,0x60,0x6a, 0x2,0x60,0x67, + 0x2,0x60,0x69, 0x2,0x60,0x68, 0x2,0x60,0x65, 0x2,0x60,0x6b, + 0x2,0x60,0x6e, 0x2,0x60,0x6c, 0x2,0x60,0x6d, 0x1,0x76,0x2c, + 0x3,0x57,0x33, 0x1,0x76,0x2b, 0x2,0x60,0x64, 0x2,0x60,0x6f, + 0x2,0x64,0x5d, 0x2,0x64,0x60, 0x2,0x64,0x62, 0x2,0x64,0x61, + 0x3,0x59,0x6a, 0x2,0x64,0x5b, 0x2,0x64,0x5f, 0x2,0x64,0x5a, + 0x3,0x59,0x6b, 0x2,0x64,0x5c, 0x1,0x77,0x77, 0x2,0x64,0x59, + 0x3,0x59,0x6d, 0x2,0x64,0x5e, 0x2,0x68,0x2d, 0x2,0x68,0x22, + 0x1,0x79,0x51, 0x3,0x5b,0x6f, 0x3,0x5b,0x6d, 0x1,0x79,0x52, + 0x2,0x68,0x21, 0x2,0x68,0x26, 0x2,0x68,0x2c, 0x2,0x68,0x24, + 0x2,0x68,0x2b, 0x3,0x5b,0x6c, 0x2,0x68,0x28, 0x3,0x5b,0x6e, + 0x2,0x68,0x27, 0x2,0x68,0x2a, 0x2,0x68,0x25, 0x2,0x68,0x23, + 0x3,0x5b,0x6b, 0x2,0x68,0x29, 0x2,0x6a,0x6e, 0x2,0x6a,0x6c, + 0x1,0x7a,0x55, 0x2,0x6a,0x6b, 0x2,0x6a,0x71, 0x2,0x6a,0x6f, + 0x3,0x5d,0x5a, 0x1,0x7a,0x56, 0x2,0x6a,0x6a, 0x2,0x6a,0x68, + 0x4,0x65,0x46, 0x2,0x6a,0x69, 0x1,0x7a,0x58, 0x2,0x6a,0x6d, + 0x1,0x7a,0x57, 0x2,0x6a,0x70, 0x2,0x6c,0x66, 0x2,0x6c,0x6c, + 0x3,0x5f,0x24, 0x3,0x5f,0x22, 0x2,0x6c,0x67, 0x1,0x7b,0x47, + 0x2,0x6c,0x6d, 0x1,0x7b,0x46, 0x2,0x6c,0x6b, 0x2,0x6c,0x6a, + 0x1,0x7b,0x45, 0x2,0x6c,0x69, 0x1,0x7b,0x44, 0x2,0x6c,0x68, + 0x7,0x56,0x51, 0x2,0x6e,0x4c, 0x2,0x6e,0x4e, 0x2,0x6e,0x4d, + 0x4,0x69,0x6a, 0x2,0x6e,0x4a, 0x1,0x7c,0x27, 0x2,0x6e,0x47, + 0x2,0x6e,0x4b, 0x2,0x6e,0x50, 0x3,0x5f,0x79, 0x2,0x6e,0x4f, + 0x2,0x6e,0x48, 0x2,0x6e,0x49, 0x1,0x7c,0x26, 0x2,0x6f,0x60, + 0x1,0x7c,0x53, 0x3,0x60,0x62, 0x2,0x6f,0x61, 0x1,0x7c,0x51, + 0x1,0x7c,0x52, 0x3,0x60,0x61, 0x4,0x6c,0x3d, 0x2,0x70,0x61, + 0x1,0x7c,0x75, 0x2,0x71,0x65, 0x3,0x61,0x72, 0x1,0x7d,0x37, + 0x3,0x61,0x73, 0x2,0x72,0x23, 0x1,0x7d,0x38, 0x2,0x72,0x24, + 0x2,0x72,0x25, 0x2,0x72,0x33, 0x2,0x72,0x32, 0x1,0x7d,0x47, + 0x2,0x72,0x3b, 0x1,0x58,0x6c, 0x3,0x40,0x2f, 0x4,0x42,0x21, + 0x2,0x48,0x6f, 0x4,0x41,0x7d, 0x2,0x48,0x6e, 0x4,0x41,0x7e, + 0x1,0x6b,0x73, 0x1,0x6b,0x74, 0x2,0x4f,0x42, 0x4,0x4e,0x74, + 0x2,0x55,0x7b, 0x2,0x5b,0x78, 0x3,0x4f,0x77, 0x3,0x4f,0x76, + 0x1,0x6f,0x7e, 0x1,0x73,0x30, 0x2,0x5b,0x76, 0x4,0x55,0x31, + 0x2,0x5b,0x79, 0x1,0x73,0x31, 0x3,0x57,0x3a, 0x2,0x60,0x70, + 0x2,0x5b,0x77, 0x2,0x64,0x63, 0x1,0x77,0x78, 0x2,0x68,0x2e, + 0x4,0x62,0x49, 0x3,0x5d,0x61, 0x2,0x6a,0x74, 0x2,0x6a,0x72, + 0x3,0x5d,0x60, 0x3,0x5d,0x5e, 0x2,0x6a,0x73, 0x2,0x6c,0x6e, + 0x3,0x5f,0x25, 0x1,0x7b,0x48, 0x2,0x6e,0x51, 0x1,0x7c,0x56, + 0x1,0x7c,0x28, 0x1,0x7c,0x54, 0x1,0x7c,0x55, 0x2,0x70,0x62, + 0x1,0x7d,0x2f, 0x3,0x61,0x74, 0x1,0x58,0x6d, 0x4,0x36,0x2d, + 0x3,0x4a,0x6e, 0x4,0x4e,0x79, 0x2,0x64,0x64, 0x3,0x5f,0x7b, + 0x3,0x60,0x63, 0x2,0x33,0x4c, 0x3,0x40,0x32, 0x1,0x67,0x6c, + 0x3,0x45,0x61, 0x2,0x4f,0x43, 0x3,0x4a,0x6f, 0x3,0x4a,0x73, + 0x1,0x6b,0x75, 0x2,0x4f,0x44, 0x3,0x4a,0x71, 0x3,0x4a,0x70, + 0x3,0x4a,0x72, 0x2,0x55,0x7d, 0x2,0x55,0x7c, 0x1,0x73,0x33, + 0x1,0x70,0x21, 0x1,0x70,0x22, 0x4,0x4f,0x21, 0x2,0x56,0x22, + 0x2,0x56,0x21, 0x2,0x55,0x7e, 0x3,0x4f,0x79, 0x3,0x53,0x75, + 0x2,0x5b,0x7a, 0x2,0x5b,0x7d, 0x3,0x53,0x74, 0x2,0x5b,0x7c, + 0x2,0x5b,0x7b, 0x1,0x73,0x32, 0x2,0x60,0x74, 0x2,0x60,0x72, + 0x2,0x60,0x71, 0x4,0x5a,0x37, 0x3,0x57,0x3b, 0x2,0x60,0x73, + 0x3,0x57,0x3c, 0x1,0x77,0x79, 0x2,0x64,0x66, 0x2,0x64,0x67, + 0x1,0x77,0x7a, 0x3,0x59,0x6f, 0x2,0x64,0x65, 0x3,0x5b,0x71, + 0x2,0x68,0x30, 0x2,0x68,0x2f, 0x2,0x68,0x32, 0x1,0x79,0x53, + 0x2,0x68,0x31, 0x4,0x62,0x4f, 0x2,0x6a,0x75, 0x2,0x6a,0x77, + 0x2,0x6a,0x76, 0x3,0x5f,0x27, 0x2,0x6c,0x6f, 0x2,0x6c,0x72, + 0x2,0x6c,0x70, 0x2,0x6c,0x71, 0x2,0x6e,0x52, 0x1,0x7c,0x29, + 0x4,0x69,0x74, 0x4,0x69,0x71, 0x3,0x66,0x72, 0x2,0x6f,0x62, + 0x2,0x6f,0x63, 0x2,0x6f,0x64, 0x3,0x61,0x2c, 0x1,0x7c,0x76, + 0x1,0x7d,0x30, 0x2,0x72,0x26, 0x1,0x58,0x6e, 0x3,0x4a,0x75, + 0x1,0x70,0x23, 0x1,0x73,0x34, 0x2,0x64,0x68, 0x3,0x5d,0x62, + 0x2,0x6e,0x53, 0x3,0x61,0x2e, 0x4,0x6d,0x37, 0x2,0x71,0x66, + 0x2,0x33,0x4d, 0x3,0x62,0x28, 0x1,0x7d,0x48, 0x1,0x58,0x6f, + 0x2,0x5b,0x7e, 0x3,0x57,0x3e, 0x2,0x64,0x69, 0x2,0x68,0x33, + 0x3,0x5d,0x63, 0x4,0x68,0x36, 0x2,0x6c,0x73, 0x2,0x6e,0x54, + 0x1,0x58,0x70, 0x3,0x45,0x62, 0x2,0x4f,0x45, 0x2,0x4f,0x46, + 0x3,0x4a,0x78, 0x1,0x6b,0x76, 0x1,0x6b,0x77, 0x2,0x56,0x24, + 0x1,0x70,0x25, 0x1,0x70,0x24, 0x2,0x56,0x23, 0x2,0x60,0x75, + 0x3,0x57,0x3f, 0x2,0x64,0x6a, 0x2,0x64,0x6c, 0x2,0x64,0x6b, + 0x1,0x77,0x7d, 0x1,0x77,0x7c, 0x1,0x77,0x7b, 0x3,0x5d,0x64, + 0x1,0x7b,0x4a, 0x2,0x6c,0x74, 0x3,0x5f,0x28, 0x1,0x7b,0x49, + 0x2,0x6e,0x56, 0x2,0x6e,0x55, 0x3,0x61,0x2f, 0x1,0x7c,0x77, + 0x2,0x70,0x63, 0x1,0x5e,0x23, 0x2,0x48,0x70, 0x4,0x42,0x29, + 0x3,0x45,0x63, 0x2,0x4f,0x49, 0x2,0x4f,0x47, 0x2,0x4f,0x48, + 0x4,0x48,0x6b, 0x3,0x4f,0x7e, 0x2,0x56,0x2d, 0x4,0x4f,0x30, + 0x2,0x56,0x28, 0x2,0x56,0x25, 0x2,0x56,0x2c, 0x3,0x4f,0x7c, + 0x4,0x4f,0x35, 0x3,0x4f,0x7b, 0x2,0x56,0x2e, 0x4,0x4f,0x37, + 0x4,0x4f,0x2c, 0x1,0x70,0x27, 0x2,0x56,0x2b, 0x2,0x56,0x27, + 0x3,0x4f,0x7d, 0x4,0x4f,0x2a, 0x2,0x56,0x26, 0x2,0x56,0x2a, + 0x2,0x56,0x29, 0x1,0x70,0x26, 0xf,0x53,0x3e, 0x2,0x5c,0x2b, + 0x2,0x5c,0x26, 0x2,0x5c,0x24, 0x2,0x5c,0x2d, 0x2,0x5c,0x25, + 0x4,0x55,0x47, 0x2,0x5c,0x21, 0x4,0x55,0x43, 0x2,0x5c,0x27, + 0x3,0x53,0x78, 0x3,0x53,0x7a, 0x2,0x5c,0x22, 0x2,0x60,0x7e, + 0x2,0x5c,0x23, 0x2,0x5c,0x2e, 0x3,0x54,0x23, 0x4,0x55,0x45, + 0x3,0x53,0x7c, 0x3,0x54,0x21, 0x5,0x5a,0x4a, 0x3,0x54,0x25, + 0x3,0x53,0x7d, 0x2,0x5c,0x2a, 0x1,0x73,0x35, 0x2,0x5c,0x29, + 0x2,0x5c,0x28, 0x3,0x53,0x79, 0x2,0x5c,0x2c, 0xf,0x59,0x38, + 0x3,0x66,0x73, 0x3,0x57,0x44, 0x2,0x60,0x76, 0x2,0x60,0x79, + 0x4,0x5a,0x49, 0x3,0x57,0x45, 0x2,0x60,0x78, 0x3,0x57,0x40, + 0x2,0x61,0x22, 0x2,0x60,0x7b, 0x2,0x61,0x21, 0x3,0x57,0x42, + 0x2,0x60,0x7d, 0x2,0x60,0x7c, 0x2,0x60,0x7a, 0x4,0x5a,0x41, + 0x2,0x60,0x77, 0x4,0x5a,0x3f, 0x1,0x76,0x2f, 0x1,0x76,0x2e, + 0x4,0x5a,0x44, 0x1,0x76,0x30, 0x1,0x76,0x2d, 0x2,0x61,0x23, + 0x4,0x5a,0x45, 0xf,0x5d,0x76, 0x4,0x5a,0x43, 0x2,0x64,0x72, + 0x2,0x64,0x75, 0x4,0x5f,0x26, 0x2,0x64,0x73, 0x2,0x64,0x77, + 0x5,0x66,0x79, 0x3,0x59,0x74, 0x4,0x5f,0x22, 0x2,0x64,0x78, + 0x4,0x5f,0x2a, 0x2,0x64,0x70, 0x1,0x78,0x24, 0x2,0x64,0x71, + 0x3,0x59,0x73, 0x2,0x64,0x6f, 0x2,0x64,0x76, 0x3,0x5b,0x74, + 0x2,0x64,0x6e, 0x2,0x64,0x6d, 0x1,0x78,0x23, 0x1,0x78,0x21, + 0x1,0x77,0x7e, 0x3,0x59,0x76, 0x3,0x59,0x75, 0x3,0x57,0x43, + 0xf,0x61,0x72, 0x3,0x59,0x71, 0x2,0x64,0x74, 0x2,0x68,0x3c, + 0x2,0x68,0x42, 0x1,0x79,0x56, 0x2,0x68,0x3d, 0x5,0x6b,0x33, + 0x2,0x68,0x40, 0x2,0x68,0x44, 0x1,0x79,0x57, 0x2,0x68,0x3f, + 0x4,0x62,0x5c, 0x2,0x68,0x37, 0x3,0x5b,0x75, 0x2,0x68,0x36, + 0x2,0x68,0x43, 0x2,0x68,0x3a, 0x3,0x5b,0x77, 0x2,0x68,0x38, + 0x2,0x68,0x41, 0x2,0x68,0x39, 0x1,0x79,0x55, 0x1,0x79,0x54, + 0x3,0x5b,0x79, 0x2,0x68,0x34, 0x2,0x68,0x35, 0x2,0x68,0x3e, + 0x4,0x62,0x66, 0x3,0x5b,0x7a, 0x4,0x62,0x68, 0x2,0x68,0x3b, + 0xf,0x64,0x6b, 0x4,0x62,0x55, 0x3,0x5d,0x6f, 0x2,0x6a,0x7a, + 0x2,0x6a,0x7d, 0x3,0x5d,0x71, 0x4,0x62,0x56, 0x3,0x5d,0x67, + 0x3,0x5d,0x69, 0x1,0x78,0x22, 0x3,0x5d,0x6a, 0x3,0x5d,0x74, + 0x3,0x5d,0x75, 0x4,0x65,0x5a, 0x3,0x5d,0x6e, 0x4,0x65,0x59, + 0x3,0x5d,0x68, 0x2,0x6a,0x7b, 0x2,0x6b,0x23, 0x2,0x6b,0x21, + 0x2,0x6a,0x79, 0x2,0x6b,0x26, 0x3,0x5d,0x66, 0x2,0x6a,0x78, + 0x3,0x5d,0x76, 0x1,0x7a,0x5a, 0x2,0x6b,0x22, 0x4,0x65,0x54, + 0x3,0x5d,0x73, 0x4,0x65,0x57, 0x2,0x6a,0x7c, 0x1,0x7a,0x59, + 0x2,0x6b,0x25, 0x3,0x5d,0x72, 0x4,0x65,0x5d, 0x2,0x6b,0x24, + 0x3,0x5d,0x70, 0x2,0x6c,0x77, 0x2,0x6c,0x76, 0x5,0x72,0x51, + 0x3,0x5f,0x2c, 0x5,0x72,0x4b, 0x2,0x6c,0x7d, 0x5,0x72,0x4e, + 0x2,0x6c,0x79, 0x2,0x6c,0x7c, 0x1,0x7b,0x4c, 0x4,0x68,0x3b, + 0x4,0x68,0x3e, 0x2,0x6c,0x7a, 0x2,0x6c,0x7b, 0x4,0x68,0x39, + 0x2,0x6c,0x75, 0x2,0x6c,0x78, 0x1,0x7b,0x4b, 0x3,0x5f,0x2a, + 0xf,0x69,0x2a, 0x1,0x7c,0x2b, 0x2,0x6e,0x61, 0x2,0x6e,0x5c, + 0x2,0x6e,0x60, 0x3,0x60,0x25, 0x2,0x6e,0x63, 0x2,0x6e,0x5f, + 0x3,0x5f,0x7e, 0x2,0x6e,0x5b, 0x3,0x60,0x23, 0x1,0x7c,0x2d, + 0x2,0x6e,0x5e, 0x2,0x6e,0x62, 0x1,0x7c,0x2c, 0x2,0x6e,0x59, + 0x2,0x6a,0x7e, 0x2,0x6e,0x5d, 0x4,0x6a,0x23, 0x5,0x75,0x2d, + 0x2,0x6e,0x5a, 0x3,0x60,0x22, 0x2,0x6e,0x57, 0xf,0x6a,0x3e, + 0x2,0x6e,0x58, 0x1,0x7c,0x2a, 0x2,0x6f,0x68, 0x2,0x6f,0x6a, + 0x2,0x6f,0x6d, 0x2,0x6f,0x69, 0x2,0x6f,0x6e, 0x3,0x60,0x65, + 0x2,0x6f,0x67, 0x3,0x60,0x66, 0x2,0x6f,0x65, 0x3,0x60,0x68, + 0x1,0x7c,0x57, 0x2,0x6f,0x6b, 0x1,0x7c,0x59, 0x1,0x7c,0x58, + 0x2,0x6f,0x66, 0x2,0x6f,0x6c, 0x3,0x61,0x32, 0x2,0x70,0x68, + 0x1,0x7c,0x78, 0x2,0x70,0x69, 0x3,0x61,0x33, 0x2,0x70,0x67, + 0x2,0x70,0x64, 0x4,0x6c,0x4a, 0x3,0x61,0x34, 0x2,0x70,0x66, + 0x2,0x70,0x65, 0x2,0x71,0x49, 0x3,0x61,0x59, 0x2,0x71,0x4b, + 0x2,0x71,0x4a, 0x3,0x61,0x5b, 0x2,0x71,0x69, 0x5,0x7a,0x53, + 0x2,0x71,0x68, 0x2,0x71,0x67, 0x2,0x71,0x6a, 0x3,0x61,0x75, + 0x1,0x7d,0x40, 0x1,0x7d,0x41, 0x2,0x72,0x38, 0x2,0x72,0x3c, + 0x3,0x62,0x41, 0x1,0x5e,0x24, 0x2,0x41,0x54, 0x2,0x48,0x73, + 0x3,0x45,0x64, 0x1,0x67,0x6d, 0x2,0x48,0x71, 0x3,0x45,0x66, + 0x3,0x2f,0x42, 0x2,0x48,0x72, 0x3,0x45,0x68, 0x3,0x45,0x67, + 0x2,0x4f,0x4a, 0x2,0x4f,0x4b, 0x1,0x6b,0x7a, 0x1,0x6b,0x78, + 0x2,0x4f,0x4c, 0x1,0x6b,0x79, 0x2,0x56,0x33, 0x3,0x50,0x27, + 0x2,0x56,0x36, 0x2,0x56,0x30, 0x2,0x56,0x37, 0x2,0x56,0x2f, + 0x2,0x56,0x31, 0x3,0x50,0x2a, 0x2,0x56,0x32, 0x2,0x56,0x35, + 0x3,0x50,0x24, 0x3,0x50,0x2b, 0x1,0x70,0x2a, 0x2,0x56,0x3a, + 0x2,0x56,0x39, 0x1,0x70,0x28, 0x2,0x56,0x34, 0x2,0x56,0x38, + 0x1,0x70,0x29, 0x3,0x54,0x2d, 0x4,0x4f,0x42, 0x3,0x50,0x25, + 0x3,0x50,0x22, 0x3,0x54,0x2a, 0x2,0x5c,0x38, 0x4,0x55,0x52, + 0x1,0x73,0x3a, 0x3,0x54,0x2c, 0x2,0x5c,0x33, 0x1,0x73,0x36, + 0x3,0x54,0x36, 0x2,0x5c,0x30, 0x2,0x5c,0x36, 0x2,0x5c,0x39, + 0x3,0x54,0x33, 0x1,0x73,0x3b, 0x4,0x5a,0x4e, 0x2,0x5c,0x35, + 0x2,0x5c,0x32, 0x2,0x5c,0x3a, 0x2,0x5c,0x31, 0x3,0x54,0x37, + 0x2,0x5c,0x37, 0x1,0x73,0x37, 0x3,0x54,0x29, 0x2,0x5c,0x2f, + 0x1,0x73,0x38, 0x3,0x54,0x35, 0x1,0x73,0x39, 0x2,0x5c,0x34, + 0x3,0x54,0x32, 0x2,0x61,0x35, 0x2,0x61,0x28, 0x2,0x61,0x29, + 0x2,0x61,0x2c, 0x2,0x61,0x2a, 0x4,0x5a,0x55, 0x2,0x61,0x24, + 0x4,0x5a,0x56, 0x3,0x57,0x4d, 0x2,0x61,0x27, 0x2,0x61,0x31, + 0x2,0x61,0x2b, 0x3,0x57,0x48, 0x4,0x5a,0x4f, 0x1,0x76,0x31, + 0x4,0x5a,0x4d, 0x2,0x61,0x33, 0x2,0x61,0x30, 0x1,0x76,0x32, + 0x2,0x61,0x32, 0x2,0x61,0x25, 0x2,0x61,0x2e, 0x2,0x61,0x2f, + 0x3,0x57,0x4a, 0x2,0x61,0x2d, 0xf,0x5e,0x24, 0x3,0x66,0x75, + 0x2,0x64,0x7c, 0x2,0x64,0x7e, 0x2,0x65,0x23, 0x3,0x59,0x79, + 0x3,0x59,0x7b, 0x2,0x64,0x7b, 0x3,0x59,0x7d, 0x1,0x78,0x25, + 0x2,0x65,0x25, 0x2,0x64,0x7a, 0x2,0x65,0x26, 0x3,0x59,0x7e, + 0x2,0x65,0x22, 0x2,0x65,0x24, 0x2,0x65,0x28, 0x2,0x65,0x21, + 0x2,0x65,0x29, 0x2,0x64,0x7d, 0x2,0x64,0x79, 0x1,0x78,0x26, + 0x3,0x5a,0x22, 0x2,0x65,0x27, 0x1,0x78,0x27, 0x1,0x79,0x59, + 0x4,0x5f,0x34, 0x3,0x59,0x7a, 0xf,0x61,0x77, 0x3,0x5b,0x7d, + 0x2,0x61,0x26, 0x2,0x68,0x5e, 0x2,0x68,0x55, 0x1,0x79,0x5b, + 0x2,0x68,0x51, 0x1,0x79,0x5c, 0x3,0x5c,0x27, 0x3,0x5c,0x22, + 0x2,0x68,0x5a, 0x2,0x68,0x54, 0x2,0x68,0x4a, 0x1,0x79,0x5a, + 0x2,0x68,0x57, 0x2,0x68,0x52, 0x2,0x68,0x53, 0x3,0x5c,0x25, + 0x2,0x68,0x45, 0x2,0x68,0x4c, 0x2,0x68,0x5b, 0x3,0x5b,0x7e, + 0x2,0x68,0x58, 0x5,0x6b,0x3f, 0x2,0x68,0x50, 0x3,0x5c,0x26, + 0x2,0x68,0x5c, 0x2,0x68,0x4b, 0x2,0x68,0x46, 0x2,0x68,0x59, + 0x3,0x5c,0x24, 0x2,0x68,0x48, 0x2,0x68,0x56, 0x2,0x68,0x4d, + 0x2,0x68,0x5d, 0x2,0x68,0x49, 0x1,0x79,0x58, 0x2,0x68,0x47, + 0x2,0x68,0x4e, 0x2,0x68,0x4f, 0x2,0x6b,0x2d, 0x3,0x5c,0x23, + 0x2,0x6b,0x2b, 0x4,0x65,0x69, 0x2,0x6b,0x30, 0x3,0x5d,0x79, + 0x2,0x6b,0x3c, 0x2,0x6b,0x33, 0x2,0x6b,0x2c, 0x2,0x6b,0x28, + 0x2,0x6b,0x35, 0x2,0x6b,0x2e, 0x2,0x6b,0x31, 0x2,0x6b,0x2a, + 0x2,0x6b,0x38, 0x2,0x6b,0x27, 0x2,0x6b,0x2f, 0x2,0x6b,0x34, + 0x2,0x6b,0x36, 0x2,0x6b,0x39, 0x2,0x6b,0x29, 0x3,0x5d,0x7a, + 0x2,0x6b,0x3d, 0x2,0x6b,0x3e, 0x2,0x6b,0x37, 0x2,0x6b,0x3b, + 0x2,0x6b,0x32, 0x2,0x6d,0x2f, 0x2,0x6d,0x32, 0x3,0x5f,0x35, + 0x1,0x7b,0x4d, 0x3,0x5f,0x31, 0x2,0x6d,0x31, 0x2,0x6d,0x36, + 0x2,0x6d,0x34, 0x1,0x7b,0x4e, 0x2,0x6d,0x2b, 0x2,0x6d,0x21, + 0x2,0x6c,0x7e, 0x1,0x7b,0x50, 0x2,0x6d,0x2d, 0x2,0x6d,0x2e, + 0x2,0x6d,0x2a, 0x2,0x6d,0x22, 0x3,0x5f,0x32, 0x2,0x6d,0x27, + 0x2,0x6b,0x3a, 0x4,0x68,0x43, 0x2,0x6d,0x23, 0x1,0x7b,0x4f, + 0x2,0x6d,0x29, 0x3,0x5f,0x36, 0x2,0x6d,0x28, 0x2,0x6d,0x24, + 0x2,0x6d,0x30, 0x4,0x68,0x44, 0x2,0x6d,0x25, 0x2,0x6e,0x68, + 0x2,0x6d,0x33, 0x2,0x6d,0x35, 0x2,0x6d,0x2c, 0x2,0x6d,0x26, + 0x2,0x6e,0x69, 0x2,0x6e,0x6b, 0x2,0x6e,0x65, 0x1,0x7c,0x2e, + 0x4,0x6a,0x25, 0x2,0x6e,0x72, 0x2,0x6e,0x70, 0x1,0x7c,0x2f, + 0x2,0x6e,0x6f, 0x2,0x6e,0x6e, 0x2,0x6e,0x67, 0x2,0x6e,0x64, + 0x2,0x6e,0x6a, 0x2,0x6e,0x73, 0x2,0x6e,0x66, 0x2,0x6e,0x6c, + 0x5,0x75,0x45, 0x2,0x6f,0x77, 0x2,0x6f,0x7c, 0x2,0x6f,0x72, + 0x2,0x6f,0x75, 0x1,0x7c,0x5a, 0x2,0x6f,0x79, 0x4,0x6b,0x46, + 0x2,0x70,0x22, 0x2,0x6e,0x6d, 0x4,0x6b,0x4a, 0x2,0x6f,0x73, + 0x2,0x6f,0x7d, 0x2,0x70,0x23, 0x2,0x6f,0x78, 0x2,0x6f,0x71, + 0x2,0x6f,0x7b, 0x4,0x6b,0x4b, 0x2,0x6f,0x7a, 0x2,0x70,0x21, + 0x2,0x6f,0x7e, 0x2,0x6e,0x71, 0x2,0x6f,0x76, 0x2,0x6f,0x70, + 0x2,0x6f,0x74, 0x1,0x7c,0x79, 0x1,0x7c,0x7a, 0x2,0x6f,0x6f, + 0x3,0x60,0x6c, 0x2,0x70,0x74, 0x2,0x70,0x6b, 0x2,0x70,0x73, + 0x2,0x70,0x70, 0x2,0x70,0x71, 0x2,0x70,0x6a, 0x2,0x70,0x6d, + 0x2,0x70,0x75, 0x2,0x70,0x6f, 0x2,0x70,0x6e, 0x2,0x70,0x6c, + 0x3,0x61,0x35, 0x2,0x70,0x72, 0x4,0x6c,0x56, 0x2,0x71,0x4c, + 0x4,0x6d,0x3a, 0x2,0x71,0x4d, 0x3,0x61,0x5d, 0x2,0x71,0x4f, + 0x2,0x71,0x4e, 0x2,0x71,0x51, 0x2,0x71,0x50, 0x2,0x71,0x6c, + 0x2,0x71,0x6b, 0x2,0x72,0x27, 0x3,0x62,0x29, 0x2,0x72,0x28, + 0x3,0x62,0x30, 0x2,0x72,0x34, 0x1,0x7d,0x45, 0x1,0x7d,0x49, + 0x3,0x62,0x38, 0x2,0x72,0x3d, 0x1,0x7d,0x4a, 0x1,0x5e,0x25, + 0x4,0x4f,0x48, 0x5,0x5a,0x5b, 0x1,0x7a,0x5b, 0x2,0x6d,0x37, + 0x3,0x5f,0x37, 0x1,0x7c,0x7b, 0x1,0x7c,0x7c, 0x1,0x5e,0x26, + 0x2,0x48,0x74, 0x3,0x45,0x69, 0x1,0x67,0x6e, 0x2,0x56,0x3b, + 0x3,0x50,0x2c, 0x3,0x54,0x39, 0x2,0x5c,0x3c, 0x2,0x5c,0x3d, + 0x2,0x5c,0x3b, 0x2,0x61,0x37, 0x2,0x61,0x36, 0x1,0x76,0x33, + 0x2,0x65,0x2b, 0x2,0x61,0x38, 0x2,0x65,0x2a, 0x4,0x5f,0x3a, + 0x3,0x5a,0x24, 0x2,0x68,0x60, 0x1,0x79,0x5d, 0x1,0x79,0x5f, + 0x2,0x68,0x5f, 0x3,0x5c,0x29, 0x4,0x62,0x75, 0x1,0x79,0x5e, + 0x3,0x5e,0x21, 0x2,0x6b,0x3f, 0x2,0x6b,0x41, 0x2,0x6b,0x40, + 0x2,0x6d,0x38, 0x1,0x7b,0x51, 0x3,0x5f,0x3a, 0x1,0x7c,0x5b, + 0x2,0x70,0x76, 0x2,0x71,0x52, 0x3,0x62,0x31, 0x3,0x62,0x3f, + 0x2,0x72,0x41, 0x1,0x5e,0x27, 0x3,0x25,0x47, 0x2,0x4f,0x4d, + 0x4,0x4f,0x4c, 0x1,0x70,0x2b, 0x3,0x50,0x2f, 0x3,0x50,0x2e, + 0x3,0x54,0x3a, 0x2,0x5c,0x3f, 0x2,0x5c,0x3e, 0x3,0x57,0x50, + 0x2,0x61,0x39, 0x3,0x5a,0x26, 0x3,0x5a,0x25, 0x4,0x62,0x7e, + 0x1,0x79,0x60, 0x1,0x7a,0x5c, 0x2,0x6e,0x74, 0x2,0x72,0x39, + 0x1,0x5e,0x28, 0x1,0x6b,0x7b, 0x3,0x4b,0x22, 0x1,0x70,0x2c, + 0xf,0x61,0x7c, 0x2,0x68,0x61, 0x3,0x5e,0x22, 0x2,0x70,0x24, + 0x1,0x63,0x27, 0x3,0x39,0x6a, 0x3,0x54,0x3c, 0x3,0x54,0x3b, + 0x4,0x5a,0x5d, 0x2,0x61,0x3a, 0x3,0x5a,0x28, 0x4,0x5f,0x3e, + 0x1,0x7d,0x31, 0x1,0x63,0x28, 0x1,0x70,0x2d, 0x1,0x76,0x34, + 0x2,0x70,0x25, 0x1,0x63,0x29, 0x3,0x39,0x6b, 0x2,0x56,0x3c, + 0x1,0x73,0x3d, 0x2,0x5c,0x40, 0x2,0x5c,0x41, 0x3,0x54,0x3d, + 0x1,0x73,0x3c, 0x4,0x55,0x60, 0x2,0x61,0x3b, 0x1,0x76,0x38, + 0x1,0x76,0x36, 0x1,0x76,0x37, 0x1,0x76,0x35, 0x2,0x65,0x2c, + 0x1,0x78,0x28, 0x4,0x63,0x24, 0x3,0x5c,0x2a, 0x2,0x6b,0x43, + 0x2,0x6b,0x42, 0x2,0x6b,0x45, 0x2,0x6b,0x44, 0x1,0x7a,0x5d, + 0x2,0x6d,0x39, 0x4,0x68,0x56, 0x2,0x6d,0x3b, 0x2,0x6d,0x3a, + 0x1,0x7b,0x52, 0x2,0x6e,0x75, 0x3,0x60,0x29, 0x2,0x70,0x26, + 0x2,0x70,0x27, 0x1,0x7c,0x5c, 0x2,0x71,0x53, 0x2,0x71,0x6d, + 0x1,0x7d,0x42, 0x4,0x6e,0x43, 0x2,0x41,0x55, 0x2,0x5c,0x42, + 0x2,0x61,0x3c, 0x2,0x68,0x62, 0x2,0x48,0x75, 0x3,0x27,0x72, + 0x2,0x61,0x3d, 0x2,0x65,0x2e, 0x2,0x65,0x2d, 0x3,0x5a,0x29, + 0x3,0x5c,0x2d, 0x3,0x5c,0x2e, 0x3,0x5f,0x3c, 0x2,0x70,0x28, + 0x1,0x7c,0x7d, 0x3,0x61,0x5f, 0x2,0x71,0x54, 0x2,0x71,0x6e, + 0x1,0x67,0x6f, 0x2,0x56,0x3d, 0x2,0x56,0x3e, 0x4,0x4f,0x56, + 0x2,0x5c,0x43, 0x1,0x67,0x70, 0x3,0x45,0x6a, 0x1,0x78,0x29, + 0x2,0x65,0x2f, 0x3,0x5c,0x30, 0x2,0x6d,0x3d, 0x1,0x7b,0x53, + 0x2,0x6d,0x3e, 0x2,0x6d,0x3c, 0x2,0x70,0x29, 0x3,0x61,0x60, + 0x2,0x70,0x77, 0x4,0x6d,0x48, 0x1,0x67,0x71, 0x2,0x61,0x40, + 0x2,0x61,0x3f, 0x2,0x61,0x3e, 0x2,0x65,0x30, 0x3,0x5a,0x2b, + 0x3,0x5a,0x2a, 0x2,0x65,0x34, 0x2,0x65,0x33, 0x2,0x65,0x32, + 0x2,0x65,0x31, 0x1,0x78,0x2a, 0x2,0x68,0x63, 0x2,0x6b,0x47, + 0x1,0x7a,0x5e, 0x2,0x6b,0x46, 0x2,0x6d,0x3f, 0x2,0x6e,0x78, + 0x2,0x6e,0x77, 0x1,0x7c,0x30, 0x2,0x6e,0x76, 0x2,0x70,0x2c, + 0x2,0x70,0x2b, 0x2,0x70,0x2a, 0x3,0x60,0x6d, 0x4,0x6e,0x44, + 0x1,0x6b,0x7c, 0x4,0x55,0x63, 0x2,0x5c,0x44, 0x1,0x76,0x39, + 0x4,0x5a,0x64, 0x2,0x68,0x64, 0x2,0x68,0x65, 0x2,0x6e,0x79, + 0x2,0x70,0x2d, 0x4,0x6b,0x5c, 0x3,0x61,0x3b, 0x2,0x70,0x78, + 0x2,0x71,0x55, 0x2,0x72,0x29, 0x2,0x72,0x43, 0x1,0x6b,0x7d, + 0x1,0x76,0x3a, 0x2,0x65,0x35, 0x2,0x68,0x66, 0x2,0x6d,0x40, + 0x2,0x70,0x2e, 0x3,0x23,0x70, 0x1,0x70,0x2f, 0x3,0x54,0x3e, + 0x2,0x61,0x41, 0x2,0x65,0x36, 0x2,0x68,0x67, 0x2,0x68,0x68, + 0x2,0x68,0x69, 0x2,0x6b,0x4c, 0x3,0x5e,0x24, 0x2,0x6b,0x48, + 0x1,0x7b,0x54, 0x2,0x6b,0x4b, 0x2,0x6b,0x4a, 0x1,0x7a,0x5f, + 0x2,0x6b,0x49, 0x1,0x7a,0x61, 0x1,0x7a,0x60, 0x2,0x6d,0x42, + 0x2,0x6d,0x41, 0x1,0x7b,0x55, 0x1,0x7b,0x56, 0x4,0x68,0x60, + 0x3,0x5f,0x3e, 0x1,0x7c,0x32, 0x2,0x6e,0x7a, 0x1,0x7c,0x31, + 0x4,0x6b,0x61, 0x2,0x70,0x31, 0x2,0x70,0x32, 0x2,0x70,0x30, + 0x2,0x70,0x2f, 0x1,0x7d,0x21, 0x4,0x6c,0x64, 0x2,0x70,0x79, + 0x2,0x70,0x7a, 0x2,0x70,0x7b, 0x1,0x7c,0x7e, 0x2,0x71,0x56, + 0x2,0x71,0x59, 0x2,0x71,0x58, 0x2,0x71,0x57, 0x3,0x62,0x33, + 0x4,0x6e,0x45, 0x2,0x72,0x42, 0x1,0x73,0x3e, 0x3,0x57,0x55, + 0x4,0x63,0x2d, 0x1,0x78,0x32, 0x2,0x6b,0x4d, 0x2,0x6d,0x43, + 0x3,0x60,0x2b, 0x1,0x7c,0x33, 0x2,0x6e,0x7b, 0x4,0x6e,0x55, + 0x3,0x62,0x42, 0x2,0x72,0x44, 0xf,0x21,0x59, 0x1,0x73,0x3f, + 0x3,0x5e,0x47, 0x4,0x6e,0x33, 0x2,0x61,0x42, 0x3,0x5f,0x3f, + 0x2,0x6e,0x7c, 0x3,0x61,0x61, 0x2,0x71,0x6f, 0x3,0x61,0x77, + 0xf,0x58,0x4c, 0x1,0x21,0x2b, 0x1,0x21,0x36, 0x1,0x21,0x38, + 0x1,0x21,0x40, 0x1,0x21,0x41, 0x1,0x21,0x44, 0x1,0x21,0x45, + 0x1,0x21,0x48, 0x1,0x21,0x49, 0x1,0x21,0x4c, 0x1,0x21,0x4d, + 0x1,0x21,0x50, 0x1,0x21,0x51, 0x1,0x21,0x54, 0x1,0x21,0x55, + 0x1,0x21,0x58, 0x1,0x21,0x59, 0x1,0x21,0x5c, 0x1,0x21,0x5d, + 0x1,0x22,0x27, 0x1,0x22,0x28, 0x1,0x22,0x2b, 0x1,0x22,0x2c, + 0x1,0x22,0x29, 0x1,0x22,0x2a, 0x1,0x21,0x2e, 0x1,0x21,0x2f, + 0x1,0x21,0x30, 0x1,0x21,0x32, 0x1,0x21,0x33, 0x1,0x21,0x34, + 0x1,0x21,0x35, 0x1,0x21,0x5e, 0x1,0x21,0x5f, 0x1,0x21,0x60, + 0x1,0x21,0x61, 0x1,0x21,0x62, 0x1,0x21,0x63, 0x1,0x22,0x2d, + 0x1,0x22,0x2e, 0x1,0x22,0x2f, 0x1,0x22,0x3f, 0x1,0x22,0x40, + 0x1,0x22,0x41, 0x1,0x22,0x43, 0x1,0x22,0x42, 0x1,0x22,0x62, + 0x1,0x22,0x6c, 0x1,0x22,0x6d, 0x1,0x22,0x6e, 0x1,0x21,0x2a, + 0x1,0x21,0x6c, 0x1,0x22,0x63, 0x1,0x22,0x68, 0x1,0x21,0x6d, + 0x1,0x21,0x3e, 0x1,0x21,0x3f, 0x1,0x21,0x6e, 0x1,0x22,0x30, + 0x1,0x21,0x22, 0x1,0x22,0x31, 0x1,0x21,0x25, 0x1,0x22,0x5f, + 0x1,0x24,0x21, 0x1,0x24,0x22, 0x1,0x24,0x23, 0x1,0x24,0x24, + 0x1,0x24,0x25, 0x1,0x24,0x26, 0x1,0x24,0x27, 0x1,0x24,0x28, + 0x1,0x24,0x29, 0x1,0x24,0x2a, 0x1,0x21,0x28, 0x1,0x21,0x27, + 0x1,0x22,0x36, 0x1,0x22,0x38, 0x1,0x22,0x37, 0x1,0x21,0x29, + 0x1,0x22,0x69, 0x1,0x24,0x41, 0x1,0x24,0x42, 0x1,0x24,0x43, + 0x1,0x24,0x44, 0x1,0x24,0x45, 0x1,0x24,0x46, 0x1,0x24,0x47, + 0x1,0x24,0x48, 0x1,0x24,0x49, 0x1,0x24,0x4a, 0x1,0x24,0x4b, + 0x1,0x24,0x4c, 0x1,0x24,0x4d, 0x1,0x24,0x4e, 0x1,0x24,0x4f, + 0x1,0x24,0x50, 0x1,0x24,0x51, 0x1,0x24,0x52, 0x1,0x24,0x53, + 0x1,0x24,0x54, 0x1,0x24,0x55, 0x1,0x24,0x56, 0x1,0x24,0x57, + 0x1,0x24,0x58, 0x1,0x24,0x59, 0x1,0x24,0x5a, 0x1,0x22,0x60, + 0x1,0x22,0x25, 0x1,0x24,0x5b, 0x1,0x24,0x5c, 0x1,0x24,0x5d, + 0x1,0x24,0x5e, 0x1,0x24,0x5f, 0x1,0x24,0x60, 0x1,0x24,0x61, + 0x1,0x24,0x62, 0x1,0x24,0x63, 0x1,0x24,0x64, 0x1,0x24,0x65, + 0x1,0x24,0x66, 0x1,0x24,0x67, 0x1,0x24,0x68, 0x1,0x24,0x69, + 0x1,0x24,0x6a, 0x1,0x24,0x6b, 0x1,0x24,0x6c, 0x1,0x24,0x6d, + 0x1,0x24,0x6e, 0x1,0x24,0x6f, 0x1,0x24,0x70, 0x1,0x24,0x71, + 0x1,0x24,0x72, 0x1,0x24,0x73, 0x1,0x24,0x74, 0x1,0x21,0x42, + 0x1,0x22,0x5e, 0x1,0x21,0x43, 0x1,0x22,0x66, 0x1,0x22,0x67, + 0x1,0x22,0x64, 0x5,0x21,0x25, 0xf,0x21,0x21, 0x6,0x21,0x2f, + 0x6,0x21,0x2d, 0x6,0x21,0x2e, 0x6,0x21,0x42, 0x6,0x21,0x43, + 0x5,0x21,0x33, 0x3,0x21,0x44, 0xf,0x21,0x3e, 0xf,0x21,0x3f, + 0x6,0x22,0x2b, 0x5,0x21,0x4d, 0x6,0x23,0x40, 0x6,0x23,0x3e, + 0x6,0x23,0x3f, 0x6,0x24,0x67, 0x6,0x25,0x5f, 0x5,0x23,0x2f, + 0xf,0x22,0x74, 0x6,0x25,0x67, 0x6,0x25,0x63, 0x6,0x29,0x37, + 0x6,0x29,0x3a, 0x6,0x29,0x38, 0xf,0x29,0x22, 0xf,0x29,0x23, + 0x6,0x2e,0x66, 0x5,0x30,0x72, 0x5,0x33,0x23, 0xf,0x39,0x32, + 0xf,0x39,0x33, 0x6,0x47,0x2d, 0xf,0x3b,0x73, 0xf,0x40,0x35, + 0xf,0x40,0x75, 0xf,0x47,0x42, 0xf,0x4d,0x56, 0x7,0x21,0x21, + 0xf,0x59,0x47, 0x4,0x4f,0x7c, 0xf,0x5a,0x3f, 0x6,0x21,0x2c, + 0x6,0x21,0x22, 0x6,0x22,0x5f, 0x4,0x21,0x56, 0x6,0x23,0x41, + 0x6,0x25,0x60, 0x6,0x29,0x3b, 0x5,0x25,0x21, 0x5,0x27,0x7a, + 0x6,0x2e,0x4a, 0xf,0x29,0x50, 0x6,0x35,0x25, 0x6,0x35,0x26, + 0x6,0x45,0x7d, 0x6,0x46,0x3f, 0xf,0x46,0x40, 0x5,0x44,0x7e, + 0x6,0x21,0x32, 0x5,0x21,0x2d, 0x6,0x22,0x2d, 0x6,0x23,0x42, + 0xf,0x2d,0x61, 0x6,0x50,0x50, 0xf,0x53,0x44, 0x4,0x21,0x21, + 0x5,0x21,0x26, 0x6,0x21,0x24, 0xf,0x21,0x22, 0x6,0x21,0x33, + 0x6,0x21,0x44, 0xf,0x21,0x25, 0xf,0x21,0x26, 0x5,0x21,0x4e, + 0x6,0x22,0x30, 0xf,0x21,0x45, 0x6,0x22,0x4e, 0x6,0x22,0x2f, + 0xf,0x21,0x40, 0xf,0x21,0x41, 0x6,0x21,0x45, 0x6,0x22,0x31, + 0x6,0x22,0x2e, 0x4,0x22,0x26, 0x4,0x22,0x25, 0x5,0x22,0x24, + 0x5,0x22,0x25, 0x6,0x23,0x43, 0x6,0x29,0x3e, 0x6,0x24,0x5d, + 0x6,0x25,0x56, 0x6,0x25,0x61, 0x6,0x25,0x62, 0x6,0x2c,0x43, + 0x6,0x29,0x3c, 0x6,0x3a,0x65, 0xf,0x29,0x25, 0x6,0x2d,0x2d, + 0x6,0x29,0x3d, 0x6,0x2e,0x4b, 0x5,0x2b,0x67, 0x6,0x35,0x2a, + 0x6,0x35,0x27, 0x6,0x39,0x64, 0x6,0x35,0x29, 0x6,0x3c,0x7b, + 0x6,0x45,0x7e, 0x6,0x46,0x40, 0x6,0x46,0x41, 0x5,0x3d,0x56, + 0x5,0x21,0x23, 0x5,0x21,0x22, 0x6,0x21,0x26, 0x6,0x21,0x25, + 0x5,0x21,0x21, 0x5,0x21,0x2b, 0xf,0x21,0x23, 0x6,0x21,0x46, + 0x5,0x21,0x34, 0xf,0x21,0x27, 0xf,0x21,0x28, 0x6,0x22,0x33, + 0x6,0x22,0x32, 0x6,0x22,0x2a, 0x5,0x21,0x4f, 0x6,0x23,0x46, + 0x6,0x23,0x44, 0xf,0x21,0x6e, 0x6,0x23,0x45, 0xf,0x22,0x75, + 0x6,0x29,0x3f, 0x6,0x2d,0x2c, 0x4,0x26,0x24, 0x6,0x2e,0x4d, + 0x6,0x2e,0x4e, 0xf,0x25,0x40, 0x6,0x2e,0x4c, 0x6,0x35,0x2b, + 0xf,0x2d,0x60, 0x6,0x3c,0x7e, 0x5,0x30,0x73, 0x6,0x3c,0x7d, + 0xf,0x39,0x34, 0x6,0x50,0x51, 0x5,0x44,0x55, 0xf,0x46,0x41, + 0x6,0x5a,0x63, 0x6,0x5a,0x62, 0x7,0x36,0x73, 0x7,0x46,0x27, + 0x7,0x4d,0x3a, 0x5,0x21,0x24, 0x5,0x21,0x27, 0x4,0x21,0x28, + 0x5,0x21,0x28, 0x5,0x21,0x2c, 0x6,0x21,0x47, 0x6,0x21,0x48, + 0x6,0x21,0x49, 0x6,0x23,0x47, 0x5,0x23,0x30, 0x6,0x25,0x64, + 0x6,0x29,0x40, 0x5,0x30,0x74, 0x6,0x46,0x42, 0x7,0x2c,0x3c, + 0x6,0x21,0x27, 0x6,0x21,0x28, 0x6,0x21,0x29, 0x6,0x21,0x4a, + 0x6,0x25,0x65, 0x6,0x23,0x48, 0x6,0x23,0x49, 0x6,0x25,0x68, + 0xf,0x22,0x76, 0x4,0x25,0x33, 0x5,0x25,0x22, 0x4,0x25,0x32, + 0x6,0x2e,0x50, 0x5,0x27,0x7b, 0xf,0x29,0x27, 0x6,0x30,0x7c, + 0x6,0x35,0x2d, 0x6,0x35,0x2c, 0xf,0x2d,0x62, 0x6,0x3d,0x21, + 0xf,0x4d,0x6e, 0x6,0x23,0x4a, 0xf,0x21,0x6f, 0xf,0x21,0x70, + 0xf,0x22,0x2b, 0x5,0x23,0x31, 0xf,0x22,0x77, 0xf,0x22,0x78, + 0xf,0x22,0x79, 0x5,0x25,0x23, 0x6,0x29,0x41, 0xf,0x25,0x43, + 0x6,0x2e,0x52, 0x6,0x2e,0x51, 0xf,0x29,0x28, 0x6,0x35,0x2f, + 0x5,0x2c,0x66, 0x4,0x2b,0x5f, 0x6,0x35,0x30, 0xf,0x2d,0x63, + 0x6,0x35,0x31, 0x6,0x46,0x43, 0x6,0x3d,0x23, 0x6,0x3d,0x22, + 0x4,0x30,0x44, 0x5,0x30,0x75, 0xf,0x32,0x74, 0xf,0x32,0x75, + 0xf,0x32,0x72, 0x6,0x46,0x45, 0x6,0x46,0x44, 0x6,0x46,0x46, + 0x4,0x36,0x2f, 0xf,0x39,0x35, 0xf,0x39,0x36, 0xf,0x39,0x37, + 0x6,0x4c,0x2d, 0xf,0x40,0x36, 0xf,0x40,0x37, 0xf,0x40,0x38, + 0xf,0x46,0x42, 0x6,0x50,0x52, 0x5,0x4b,0x71, 0x7,0x21,0x22, + 0xf,0x4d,0x57, 0xf,0x4d,0x58, 0xf,0x4d,0x59, 0x7,0x26,0x79, + 0x7,0x21,0x24, 0x7,0x21,0x23, 0x7,0x21,0x46, 0x7,0x2c,0x3f, + 0x5,0x53,0x53, 0x7,0x2c,0x3e, 0x7,0x2c,0x3d, 0x7,0x46,0x23, + 0x7,0x46,0x28, 0x6,0x21,0x34, 0x6,0x21,0x35, 0xf,0x21,0x24, + 0x6,0x21,0x4c, 0xf,0x21,0x29, 0x6,0x21,0x4b, 0x3,0x21,0x6f, + 0xf,0x21,0x43, 0x6,0x22,0x35, 0x6,0x22,0x34, 0x6,0x22,0x36, + 0x4,0x21,0x58, 0x4,0x22,0x2c, 0x4,0x22,0x2b, 0x4,0x22,0x29, + 0x6,0x23,0x4f, 0x4,0x22,0x30, 0x6,0x23,0x50, 0x5,0x22,0x27, + 0x6,0x23,0x4d, 0x6,0x23,0x4c, 0x4,0x22,0x2f, 0x6,0x23,0x4b, + 0xf,0x21,0x73, 0xf,0x21,0x74, 0xf,0x21,0x75, 0xf,0x21,0x76, + 0xf,0x21,0x77, 0xf,0x21,0x78, 0xf,0x21,0x79, 0x5,0x22,0x28, + 0x6,0x23,0x51, 0x5,0x22,0x26, 0xf,0x21,0x7a, 0x5,0x23,0x32, + 0x6,0x25,0x6a, 0x4,0x23,0x3a, 0x6,0x25,0x6b, 0x6,0x25,0x74, + 0x6,0x25,0x70, 0x6,0x25,0x6c, 0xf,0x22,0x7a, 0xf,0x22,0x7b, + 0xf,0x22,0x7c, 0xf,0x22,0x7d, 0xf,0x23,0x21, 0xf,0x23,0x22, + 0xf,0x23,0x23, 0xf,0x23,0x25, 0xf,0x23,0x28, 0xf,0x23,0x29, + 0xf,0x23,0x2a, 0xf,0x23,0x2b, 0xf,0x23,0x2c, 0x4,0x23,0x38, + 0x6,0x25,0x6d, 0x6,0x25,0x6f, 0xf,0x23,0x26, 0x6,0x25,0x6e, + 0x6,0x25,0x69, 0x5,0x23,0x33, 0x6,0x25,0x73, 0x6,0x29,0x43, + 0x6,0x29,0x45, 0x4,0x25,0x3a, 0x5,0x25,0x28, 0x6,0x29,0x46, + 0x5,0x25,0x29, 0x3,0x27,0x4e, 0x5,0x25,0x2a, 0x4,0x25,0x37, + 0x4,0x25,0x35, 0x6,0x29,0x4a, 0x6,0x29,0x44, 0x6,0x29,0x4c, + 0x6,0x29,0x47, 0x6,0x29,0x4e, 0x5,0x25,0x26, 0x6,0x29,0x42, + 0xf,0x25,0x45, 0xf,0x25,0x46, 0xf,0x25,0x48, 0xf,0x25,0x49, + 0xf,0x25,0x4b, 0xf,0x25,0x4c, 0xf,0x25,0x4d, 0xf,0x25,0x4e, + 0xf,0x25,0x4f, 0xf,0x25,0x50, 0xf,0x25,0x51, 0x6,0x29,0x4d, + 0x6,0x29,0x48, 0x6,0x29,0x49, 0x6,0x29,0x4b, 0x5,0x25,0x24, + 0x5,0x25,0x27, 0x5,0x27,0x7c, 0x6,0x2e,0x64, 0x6,0x2e,0x59, + 0x5,0x2b,0x72, 0x4,0x28,0x36, 0x6,0x2e,0x63, 0x6,0x2e,0x57, + 0x6,0x2e,0x56, 0x5,0x28,0x23, 0x4,0x28,0x3b, 0x6,0x2e,0x5d, + 0x5,0x27,0x7e, 0x5,0x27,0x7d, 0x5,0x28,0x22, 0x6,0x2e,0x62, + 0x6,0x2e,0x55, 0x6,0x2e,0x54, 0x6,0x2e,0x65, 0x6,0x2e,0x5c, + 0xf,0x29,0x29, 0xf,0x29,0x2a, 0xf,0x29,0x2b, 0xf,0x29,0x2c, + 0xf,0x29,0x2e, 0xf,0x29,0x2f, 0xf,0x29,0x31, 0xf,0x29,0x32, + 0xf,0x29,0x33, 0xf,0x29,0x34, 0xf,0x29,0x35, 0xf,0x29,0x36, + 0xf,0x29,0x37, 0xf,0x29,0x38, 0x6,0x2e,0x53, 0x6,0x2e,0x58, + 0x6,0x2e,0x5b, 0x6,0x2e,0x5e, 0x6,0x2e,0x60, 0xf,0x25,0x47, + 0x6,0x2e,0x5f, 0x5,0x28,0x24, 0x4,0x2b,0x63, 0x5,0x2b,0x70, + 0x4,0x2b,0x67, 0x6,0x35,0x36, 0x5,0x2b,0x6b, 0x6,0x35,0x35, + 0x5,0x2b,0x74, 0x4,0x2b,0x66, 0x4,0x2b,0x68, 0x5,0x2b,0x6f, + 0x6,0x35,0x32, 0x5,0x2b,0x69, 0xf,0x2d,0x64, 0xf,0x2d,0x6e, + 0x6,0x35,0x37, 0x5,0x2b,0x6e, 0xf,0x2d,0x66, 0xf,0x2d,0x67, + 0xf,0x2d,0x6a, 0xf,0x2d,0x6b, 0xf,0x2d,0x6c, 0xf,0x2d,0x6d, + 0xf,0x2d,0x6f, 0xf,0x2d,0x71, 0xf,0x2d,0x72, 0xf,0x2d,0x73, + 0xf,0x2d,0x74, 0xf,0x2d,0x75, 0xf,0x2d,0x76, 0xf,0x2d,0x78, + 0xf,0x2d,0x79, 0xf,0x2d,0x7a, 0xf,0x2d,0x7b, 0xf,0x2d,0x7c, + 0x6,0x35,0x21, 0x6,0x35,0x3a, 0x6,0x35,0x3b, 0x6,0x35,0x33, + 0x6,0x35,0x34, 0x5,0x2b,0x68, 0x6,0x35,0x39, 0xf,0x2d,0x77, + 0xf,0x2d,0x70, 0x5,0x2b,0x6a, 0x5,0x2b,0x6d, 0x5,0x2b,0x75, + 0x5,0x2b,0x71, 0x5,0x2b,0x73, 0x4,0x2b,0x60, 0x6,0x3d,0x2b, + 0x6,0x3d,0x2d, 0x6,0x3d,0x2c, 0x4,0x30,0x49, 0x4,0x30,0x48, + 0x6,0x3d,0x30, 0x6,0x3d,0x28, 0x5,0x31,0x21, 0x6,0x3d,0x33, + 0x5,0x30,0x77, 0x6,0x3d,0x2e, 0x6,0x3d,0x27, 0x5,0x31,0x22, + 0x5,0x30,0x76, 0x4,0x30,0x46, 0x6,0x3d,0x2a, 0x6,0x3d,0x31, + 0x6,0x3d,0x37, 0x6,0x3d,0x32, 0x6,0x3d,0x29, 0x4,0x30,0x4b, + 0x6,0x3d,0x34, 0xf,0x2d,0x69, 0xf,0x32,0x77, 0xf,0x32,0x78, + 0xf,0x32,0x79, 0xf,0x32,0x7a, 0xf,0x32,0x7b, 0xf,0x32,0x7c, + 0xf,0x32,0x7e, 0xf,0x33,0x21, 0xf,0x33,0x23, 0xf,0x33,0x24, + 0xf,0x33,0x25, 0xf,0x33,0x26, 0xf,0x33,0x27, 0x6,0x46,0x37, + 0x6,0x3d,0x38, 0x6,0x3e,0x65, 0x6,0x3d,0x39, 0x6,0x3d,0x2f, + 0x5,0x30,0x7a, 0x6,0x43,0x63, 0x5,0x30,0x7d, 0x5,0x31,0x23, + 0x6,0x3d,0x24, 0x6,0x3d,0x26, 0xf,0x32,0x7d, 0x5,0x30,0x79, + 0x5,0x30,0x7e, 0x5,0x30,0x78, 0x6,0x3d,0x25, 0x6,0x3d,0x36, + 0x5,0x30,0x7c, 0x6,0x46,0x49, 0x6,0x46,0x4f, 0x5,0x36,0x56, + 0x5,0x36,0x51, 0x6,0x46,0x4c, 0x5,0x36,0x4e, 0x5,0x36,0x52, + 0x5,0x36,0x63, 0x5,0x36,0x53, 0x6,0x46,0x48, 0x5,0x36,0x55, + 0x5,0x36,0x50, 0x6,0x46,0x56, 0x4,0x36,0x35, 0x5,0x36,0x54, + 0x6,0x46,0x52, 0x6,0x46,0x50, 0x6,0x46,0x4b, 0x6,0x46,0x4e, + 0x6,0x46,0x53, 0xf,0x32,0x76, 0x6,0x46,0x58, 0x5,0x36,0x4f, + 0x5,0x36,0x57, 0x6,0x46,0x47, 0xf,0x39,0x38, 0xf,0x39,0x39, + 0xf,0x39,0x3a, 0xf,0x39,0x3b, 0xf,0x39,0x3c, 0xf,0x39,0x3d, + 0xf,0x39,0x3e, 0xf,0x39,0x3f, 0x6,0x46,0x4d, 0x4,0x36,0x3b, + 0x6,0x46,0x51, 0x6,0x46,0x54, 0x5,0x36,0x4d, 0x6,0x46,0x4a, + 0x5,0x34,0x21, 0x6,0x50,0x5a, 0x4,0x42,0x38, 0x5,0x3d,0x5a, + 0x5,0x3d,0x58, 0x6,0x50,0x53, 0x5,0x30,0x7b, 0x5,0x3d,0x5e, + 0x5,0x3d,0x5c, 0x6,0x50,0x58, 0x5,0x3d,0x5b, 0x6,0x50,0x5f, + 0x6,0x50,0x5d, 0x4,0x3c,0x2e, 0x6,0x50,0x5c, 0x6,0x50,0x62, + 0x6,0x50,0x55, 0x4,0x3c,0x2f, 0x5,0x3d,0x60, 0x6,0x50,0x54, + 0x5,0x3d,0x57, 0x6,0x50,0x57, 0x6,0x50,0x5e, 0xf,0x40,0x39, + 0xf,0x40,0x3a, 0xf,0x40,0x3b, 0xf,0x40,0x3c, 0xf,0x40,0x3d, + 0xf,0x40,0x3e, 0xf,0x40,0x3f, 0xf,0x40,0x40, 0xf,0x40,0x41, + 0xf,0x40,0x42, 0xf,0x40,0x43, 0xf,0x40,0x44, 0xf,0x40,0x45, + 0xf,0x40,0x46, 0x6,0x50,0x61, 0x6,0x56,0x4e, 0x6,0x50,0x59, + 0x6,0x50,0x56, 0x6,0x46,0x57, 0x5,0x3d,0x59, 0x5,0x3d,0x5d, + 0x5,0x3d,0x5f, 0x4,0x3c,0x2b, 0x6,0x50,0x60, 0x6,0x5a,0x71, + 0x5,0x3d,0x61, 0x7,0x21,0x2e, 0x4,0x42,0x34, 0x5,0x44,0x56, + 0x6,0x5a,0x64, 0x6,0x5a,0x69, 0x5,0x3d,0x62, 0x6,0x5a,0x6b, + 0x4,0x42,0x39, 0x6,0x5a,0x74, 0x4,0x42,0x31, 0x6,0x5a,0x75, + 0x6,0x5a,0x68, 0x6,0x5a,0x67, 0x6,0x5a,0x76, 0xf,0x46,0x43, + 0xf,0x46,0x44, 0xf,0x46,0x45, 0xf,0x46,0x46, 0xf,0x46,0x47, + 0xf,0x46,0x49, 0xf,0x46,0x4a, 0xf,0x46,0x4b, 0xf,0x46,0x4c, + 0xf,0x46,0x4d, 0xf,0x46,0x4e, 0xf,0x46,0x4f, 0xf,0x46,0x51, + 0xf,0x46,0x52, 0xf,0x46,0x53, 0xf,0x46,0x54, 0xf,0x46,0x56, + 0xf,0x46,0x57, 0xf,0x46,0x58, 0xf,0x53,0x45, 0x7,0x26,0x2d, + 0x5,0x44,0x58, 0x6,0x5a,0x77, 0x6,0x5e,0x57, 0x6,0x5a,0x6d, + 0x6,0x5a,0x6f, 0x6,0x5a,0x65, 0xf,0x46,0x50, 0xf,0x46,0x48, + 0xf,0x46,0x55, 0x4,0x42,0x30, 0x6,0x5a,0x66, 0x6,0x5a,0x6a, + 0x6,0x5a,0x6e, 0x6,0x5a,0x70, 0x4,0x42,0x36, 0x5,0x3f,0x46, + 0x4,0x48,0x7e, 0x4,0x48,0x7a, 0x6,0x5a,0x6c, 0x7,0x21,0x2f, + 0x7,0x21,0x31, 0x7,0x21,0x29, 0x7,0x21,0x26, 0x7,0x21,0x25, + 0x5,0x4b,0x77, 0x4,0x48,0x7c, 0x7,0x21,0x2b, 0x7,0x21,0x2c, + 0x5,0x4b,0x73, 0x7,0x21,0x2a, 0x5,0x4b,0x79, 0x5,0x4b,0x78, + 0x7,0x21,0x27, 0xf,0x4d,0x5a, 0xf,0x4d,0x5b, 0xf,0x4d,0x5c, + 0xf,0x4d,0x5d, 0xf,0x4d,0x5e, 0xf,0x4d,0x60, 0xf,0x4d,0x61, + 0x7,0x21,0x28, 0x5,0x4b,0x72, 0x7,0x21,0x2d, 0xf,0x4d,0x62, + 0x4,0x49,0x21, 0x5,0x4b,0x75, 0x7,0x21,0x30, 0x5,0x4b,0x74, + 0x5,0x4c,0x45, 0x5,0x53,0x54, 0x5,0x53,0x5a, 0x7,0x2c,0x40, + 0x4,0x4f,0x58, 0x4,0x4f,0x5f, 0x5,0x53,0x58, 0x4,0x4f,0x5c, + 0x4,0x4f,0x5e, 0x5,0x53,0x55, 0x5,0x53,0x56, 0xf,0x53,0x46, + 0xf,0x53,0x47, 0xf,0x53,0x48, 0xf,0x53,0x49, 0xf,0x53,0x4a, + 0x5,0x53,0x5b, 0x5,0x53,0x57, 0x7,0x36,0x78, 0x5,0x4b,0x76, + 0x5,0x5a,0x6f, 0x5,0x5a,0x70, 0x4,0x55,0x67, 0x4,0x55,0x66, + 0x7,0x36,0x76, 0xf,0x59,0x48, 0xf,0x59,0x4a, 0xf,0x59,0x4b, + 0xf,0x59,0x4c, 0xf,0x59,0x4e, 0x7,0x36,0x75, 0x7,0x36,0x77, + 0xf,0x59,0x49, 0x4,0x55,0x68, 0x7,0x36,0x74, 0x7,0x3e,0x76, + 0x4,0x5a,0x6b, 0x4,0x5a,0x69, 0x4,0x5a,0x6a, 0x7,0x3e,0x78, + 0x7,0x3e,0x77, 0xf,0x5e,0x30, 0xf,0x5e,0x31, 0xf,0x5e,0x2c, + 0xf,0x5e,0x2e, 0xf,0x5e,0x2f, 0x7,0x3e,0x75, 0x5,0x61,0x31, + 0x4,0x5a,0x6c, 0x5,0x61,0x2f, 0x5,0x61,0x30, 0x5,0x61,0x32, + 0x5,0x67,0x4a, 0x5,0x67,0x4e, 0x4,0x63,0x2e, 0x5,0x67,0x4d, + 0x5,0x67,0x4f, 0xf,0x61,0x7e, 0xf,0x62,0x21, 0x7,0x47,0x6f, + 0x5,0x67,0x4c, 0x5,0x67,0x4b, 0x5,0x69,0x7c, 0x7,0x52,0x75, + 0x7,0x4d,0x3c, 0xf,0x64,0x7a, 0x5,0x6b,0x6b, 0x7,0x4d,0x3b, + 0x7,0x4d,0x68, 0x4,0x66,0x2f, 0x4,0x66,0x2e, 0x5,0x6f,0x68, + 0x7,0x57,0x4e, 0x5,0x6b,0x6c, 0xf,0x67,0x3f, 0xf,0x67,0x7e, + 0x4,0x66,0x2d, 0x7,0x57,0x4d, 0xf,0x69,0x38, 0xf,0x69,0x3a, + 0xf,0x69,0x39, 0x5,0x73,0x31, 0x4,0x6a,0x40, 0x7,0x5b,0x45, + 0xf,0x6a,0x4b, 0xf,0x6b,0x41, 0x5,0x75,0x62, 0x4,0x6d,0x52, + 0xf,0x6c,0x49, 0x6,0x21,0x4d, 0x4,0x21,0x5c, 0x4,0x22,0x32, + 0x6,0x23,0x53, 0x6,0x23,0x54, 0x6,0x25,0x75, 0x6,0x25,0x77, + 0x6,0x25,0x78, 0x5,0x23,0x35, 0x6,0x25,0x76, 0x6,0x29,0x51, + 0x6,0x29,0x50, 0x6,0x29,0x4f, 0x6,0x29,0x53, 0xf,0x25,0x53, + 0x6,0x29,0x52, 0xf,0x25,0x52, 0x6,0x2e,0x67, 0x6,0x2e,0x68, + 0x5,0x2b,0x76, 0xf,0x2d,0x7d, 0xf,0x2d,0x7e, 0xf,0x2e,0x21, + 0x6,0x35,0x3c, 0xf,0x33,0x28, 0x5,0x31,0x24, 0x5,0x31,0x25, + 0xf,0x33,0x29, 0xf,0x33,0x2a, 0x6,0x46,0x59, 0xf,0x39,0x40, + 0xf,0x39,0x41, 0xf,0x39,0x42, 0x5,0x36,0x58, 0xf,0x39,0x43, + 0xf,0x40,0x47, 0x6,0x50,0x63, 0xf,0x40,0x48, 0xf,0x46,0x59, + 0xf,0x46,0x5a, 0x5,0x44,0x59, 0x7,0x21,0x34, 0x7,0x21,0x32, + 0x5,0x4b,0x7b, 0xf,0x4d,0x63, 0xf,0x4d,0x64, 0x5,0x4b,0x7a, + 0x7,0x21,0x33, 0x5,0x53,0x5c, 0x7,0x2c,0x41, 0xf,0x53,0x4b, + 0xf,0x53,0x4c, 0xf,0x53,0x4d, 0xf,0x53,0x4e, 0x5,0x5a,0x71, + 0xf,0x59,0x4f, 0xf,0x59,0x50, 0xf,0x59,0x51, 0x7,0x3e,0x79, + 0x5,0x61,0x33, 0xf,0x5e,0x32, 0x7,0x46,0x29, 0x5,0x67,0x50, + 0xf,0x64,0x7b, 0x5,0x67,0x51, 0x5,0x6b,0x6d, 0xf,0x67,0x41, + 0xf,0x69,0x3b, 0xf,0x6a,0x4c, 0x5,0x77,0x53, 0xf,0x6b,0x42, + 0x6,0x21,0x36, 0x5,0x21,0x36, 0x5,0x21,0x35, 0x6,0x22,0x37, + 0x6,0x23,0x56, 0x6,0x23,0x55, 0x5,0x23,0x36, 0x6,0x25,0x79, + 0x5,0x23,0x38, 0x5,0x28,0x25, 0x5,0x28,0x26, 0x4,0x2b,0x6a, + 0x6,0x35,0x3d, 0xf,0x2e,0x22, 0xf,0x2e,0x23, 0x6,0x3d,0x3a, + 0x6,0x46,0x5a, 0x6,0x50,0x64, 0x5,0x3d,0x63, 0x4,0x3c,0x31, + 0x6,0x5a,0x78, 0x5,0x5a,0x72, 0x6,0x21,0x37, 0x6,0x21,0x4e, + 0x5,0x21,0x37, 0x6,0x21,0x41, 0x6,0x21,0x59, 0x5,0x21,0x50, + 0x6,0x23,0x3b, 0x4,0x22,0x35, 0x6,0x23,0x57, 0x6,0x25,0x7c, + 0x6,0x25,0x7e, 0x5,0x23,0x39, 0xf,0x23,0x2d, 0x6,0x25,0x7a, + 0x6,0x29,0x54, 0x6,0x2e,0x6b, 0x6,0x2e,0x69, 0x5,0x28,0x27, + 0x6,0x2e,0x6a, 0x6,0x2e,0x4f, 0x6,0x30,0x7b, 0x6,0x35,0x40, + 0x6,0x35,0x3f, 0x6,0x35,0x41, 0x6,0x35,0x3e, 0x6,0x3d,0x3b, + 0x6,0x46,0x5d, 0x5,0x3d,0x64, 0xf,0x39,0x44, 0xf,0x39,0x45, + 0x6,0x46,0x5b, 0x6,0x46,0x5c, 0x5,0x3d,0x65, 0x6,0x50,0x65, + 0xf,0x40,0x49, 0xf,0x40,0x4a, 0x4,0x42,0x3a, 0x6,0x5a,0x79, + 0xf,0x54,0x46, 0xf,0x53,0x4f, 0xf,0x53,0x50, 0x5,0x61,0x34, + 0xf,0x5e,0x33, 0x7,0x46,0x2a, 0x7,0x46,0x2b, 0x4,0x21,0x2d, + 0x6,0x21,0x4f, 0x6,0x21,0x51, 0x6,0x22,0x39, 0x4,0x21,0x5d, + 0x6,0x22,0x38, 0x5,0x21,0x52, 0xf,0x21,0x46, 0x6,0x22,0x3a, + 0x5,0x21,0x51, 0x6,0x23,0x5a, 0x6,0x23,0x58, 0x6,0x25,0x47, + 0x6,0x26,0x23, 0x6,0x26,0x21, 0x6,0x26,0x22, 0x5,0x23,0x3a, + 0x6,0x28,0x7a, 0x5,0x25,0x2c, 0x6,0x29,0x55, 0x6,0x29,0x56, + 0x6,0x2e,0x6c, 0x6,0x35,0x42, 0x6,0x35,0x43, 0x5,0x2b,0x77, + 0x5,0x2b,0x78, 0x6,0x3d,0x3d, 0x6,0x46,0x5f, 0x3,0x39,0x77, + 0x6,0x46,0x5e, 0x4,0x3c,0x33, 0x5,0x3d,0x66, 0x6,0x5a,0x7b, + 0x6,0x5a,0x7a, 0x7,0x21,0x35, 0x5,0x53,0x5d, 0x7,0x2c,0x42, + 0xf,0x55,0x76, 0x4,0x5a,0x6d, 0xf,0x67,0x42, 0x7,0x57,0x4f, + 0x5,0x21,0x38, 0x6,0x22,0x3b, 0xf,0x21,0x48, 0xf,0x21,0x49, + 0x6,0x23,0x5b, 0x4,0x22,0x37, 0x5,0x22,0x29, 0xf,0x21,0x7b, + 0xf,0x23,0x2e, 0xf,0x23,0x2f, 0x5,0x25,0x2d, 0xf,0x25,0x55, + 0x6,0x2e,0x6d, 0x6,0x3d,0x3e, 0xf,0x2e,0x25, 0xf,0x2e,0x26, + 0xf,0x2e,0x27, 0xf,0x2e,0x28, 0xf,0x2e,0x29, 0x5,0x31,0x27, + 0x6,0x46,0x60, 0xf,0x39,0x47, 0xf,0x39,0x48, 0x6,0x46,0x61, + 0xf,0x3a,0x5d, 0x6,0x50,0x66, 0x6,0x5a,0x7c, 0xf,0x46,0x5b, + 0x5,0x4e,0x77, 0x7,0x2c,0x43, 0xf,0x59,0x52, 0xf,0x53,0x51, + 0x7,0x3e,0x7a, 0x7,0x46,0x2c, 0x7,0x4d,0x3f, 0x5,0x6f,0x69, + 0x5,0x75,0x63, 0xf,0x21,0x4a, 0x6,0x23,0x5c, 0xf,0x21,0x7d, + 0xf,0x21,0x7e, 0x4,0x22,0x38, 0x5,0x23,0x3b, 0x6,0x26,0x24, + 0x4,0x23,0x3c, 0xf,0x23,0x30, 0xf,0x23,0x31, 0xf,0x23,0x32, + 0xf,0x23,0x33, 0xf,0x23,0x24, 0xf,0x22,0x7e, 0x4,0x25,0x41, + 0x4,0x25,0x42, 0x6,0x29,0x58, 0x6,0x29,0x59, 0x5,0x25,0x2f, + 0xf,0x25,0x57, 0x5,0x28,0x29, 0x4,0x28,0x41, 0x4,0x28,0x42, + 0x5,0x28,0x2c, 0x5,0x28,0x28, 0x5,0x28,0x2a, 0x6,0x2e,0x6f, + 0xf,0x29,0x3a, 0xf,0x29,0x3c, 0xf,0x29,0x3d, 0xf,0x29,0x3e, + 0xf,0x29,0x3f, 0x6,0x2e,0x6e, 0x5,0x2b,0x7a, 0x4,0x2b,0x6b, + 0x5,0x2b,0x79, 0x5,0x28,0x2b, 0x6,0x35,0x45, 0x5,0x2b,0x7b, + 0xf,0x2e,0x2a, 0xf,0x2e,0x2b, 0x6,0x35,0x46, 0x5,0x31,0x28, + 0x6,0x3d,0x3f, 0x6,0x3d,0x40, 0x4,0x30,0x4e, 0xf,0x33,0x2b, + 0xf,0x33,0x2c, 0xf,0x33,0x2d, 0xf,0x33,0x2f, 0xf,0x33,0x30, + 0x6,0x46,0x62, 0x5,0x36,0x5c, 0x5,0x36,0x5a, 0x5,0x36,0x5b, + 0x5,0x36,0x59, 0x4,0x36,0x3e, 0xf,0x33,0x2e, 0x5,0x3d,0x6c, + 0x5,0x3d,0x67, 0x5,0x3d,0x69, 0x5,0x3d,0x6a, 0x5,0x3d,0x68, + 0x5,0x3d,0x6b, 0x6,0x50,0x67, 0x6,0x5a,0x7d, 0x5,0x4c,0x21, + 0x5,0x44,0x5a, 0x7,0x21,0x37, 0xf,0x46,0x5d, 0xf,0x46,0x5e, + 0x5,0x4b,0x7e, 0x5,0x4b,0x7d, 0x5,0x4b,0x7c, 0x7,0x21,0x36, + 0xf,0x4d,0x67, 0xf,0x53,0x53, 0x7,0x2c,0x45, 0xf,0x4d,0x66, + 0xf,0x53,0x52, 0x4,0x55,0x6a, 0x7,0x2c,0x46, 0x5,0x5a,0x73, + 0xf,0x59,0x53, 0xf,0x59,0x54, 0x5,0x61,0x36, 0x5,0x61,0x35, + 0x5,0x61,0x37, 0xf,0x5e,0x34, 0x7,0x3e,0x7b, 0x5,0x67,0x52, + 0x5,0x67,0x53, 0x7,0x52,0x76, 0x5,0x73,0x32, 0x4,0x21,0x29, + 0x6,0x21,0x52, 0xf,0x21,0x2a, 0xf,0x21,0x2b, 0xf,0x21,0x2c, + 0xf,0x21,0x2e, 0x6,0x21,0x5c, 0xf,0x21,0x2d, 0x5,0x21,0x53, + 0x6,0x22,0x3d, 0x4,0x21,0x5f, 0x6,0x23,0x5e, 0x6,0x23,0x5d, + 0x6,0x23,0x5f, 0x6,0x23,0x60, 0xf,0x21,0x4b, 0x6,0x26,0x27, + 0x6,0x26,0x25, 0x6,0x26,0x26, 0xf,0x23,0x34, 0xf,0x23,0x35, + 0x4,0x25,0x46, 0x6,0x29,0x5a, 0x4,0x25,0x44, 0x6,0x29,0x5b, + 0x6,0x29,0x5c, 0x6,0x29,0x5d, 0xf,0x25,0x58, 0xf,0x25,0x59, + 0x6,0x2e,0x72, 0x6,0x2e,0x70, 0x6,0x2e,0x71, 0x6,0x35,0x47, + 0xf,0x2e,0x2c, 0x6,0x37,0x27, 0x6,0x3d,0x42, 0x6,0x3d,0x43, + 0x6,0x3d,0x41, 0xf,0x33,0x31, 0xf,0x33,0x32, 0xf,0x33,0x33, + 0x6,0x46,0x63, 0x6,0x46,0x66, 0xf,0x39,0x49, 0x6,0x46,0x64, + 0xf,0x39,0x4a, 0xf,0x46,0x5f, 0xf,0x46,0x60, 0xf,0x46,0x61, + 0xf,0x4d,0x68, 0x7,0x2c,0x47, 0xf,0x53,0x54, 0xf,0x53,0x55, + 0xf,0x53,0x43, 0xf,0x59,0x55, 0xf,0x5e,0x35, 0xf,0x67,0x43, + 0x4,0x21,0x2e, 0x5,0x21,0x39, 0x6,0x21,0x53, 0x6,0x21,0x54, + 0x6,0x22,0x3f, 0x5,0x21,0x54, 0x6,0x22,0x3e, 0xf,0x21,0x4c, + 0x6,0x23,0x65, 0x6,0x23,0x61, 0x6,0x23,0x62, 0x6,0x23,0x63, + 0xf,0x22,0x21, 0x5,0x22,0x2a, 0x6,0x26,0x28, 0xf,0x23,0x36, + 0x6,0x29,0x60, 0x6,0x29,0x5f, 0x6,0x2e,0x73, 0x6,0x2e,0x74, + 0x6,0x34,0x7a, 0x6,0x35,0x48, 0x6,0x3d,0x44, 0x6,0x3d,0x45, + 0x5,0x36,0x5d, 0x6,0x5a,0x7e, 0xf,0x46,0x62, 0x7,0x21,0x70, + 0x7,0x36,0x7b, 0x5,0x5a,0x76, 0x5,0x67,0x54, 0x7,0x4e,0x3e, + 0x6,0x21,0x39, 0x4,0x21,0x40, 0x6,0x21,0x55, 0x5,0x21,0x3a, + 0x5,0x21,0x3b, 0x6,0x21,0x56, 0x4,0x21,0x41, 0xf,0x21,0x2f, + 0x6,0x21,0x57, 0x5,0x21,0x55, 0x5,0x21,0x56, 0x4,0x21,0x62, + 0x6,0x22,0x44, 0x5,0x21,0x57, 0x6,0x22,0x43, 0x6,0x22,0x40, + 0x6,0x22,0x45, 0x4,0x22,0x3a, 0x6,0x23,0x6a, 0x5,0x22,0x2e, + 0x5,0x22,0x2c, 0x5,0x22,0x2b, 0x4,0x22,0x3b, 0x4,0x22,0x39, + 0x6,0x23,0x68, 0x6,0x23,0x67, 0x5,0x22,0x2f, 0x6,0x23,0x6b, + 0x6,0x23,0x69, 0x5,0x22,0x2d, 0x4,0x22,0x3d, 0xf,0x22,0x22, + 0xf,0x22,0x23, 0x4,0x22,0x3e, 0x6,0x23,0x66, 0x4,0x23,0x41, + 0x6,0x26,0x2b, 0x4,0x23,0x43, 0x5,0x23,0x3d, 0x4,0x23,0x42, + 0x5,0x23,0x46, 0x5,0x23,0x45, 0x5,0x23,0x43, 0x5,0x23,0x40, + 0x6,0x26,0x29, 0x5,0x23,0x3f, 0x5,0x23,0x42, 0x5,0x23,0x41, + 0x6,0x26,0x2a, 0x6,0x26,0x2c, 0x5,0x23,0x3e, 0x5,0x23,0x44, + 0x6,0x29,0x69, 0x5,0x25,0x33, 0x5,0x25,0x35, 0x4,0x25,0x49, + 0x4,0x25,0x4b, 0x3,0x27,0x5c, 0x6,0x29,0x66, 0x4,0x25,0x4d, + 0x6,0x29,0x64, 0x6,0x29,0x65, 0x6,0x29,0x6c, 0x6,0x2e,0x75, + 0x6,0x29,0x6a, 0x5,0x25,0x30, 0x5,0x25,0x36, 0x6,0x29,0x6b, + 0x5,0x25,0x32, 0x6,0x29,0x67, 0x5,0x25,0x34, 0xf,0x25,0x5a, + 0xf,0x25,0x5b, 0xf,0x25,0x5c, 0xf,0x25,0x5d, 0x6,0x29,0x68, + 0x6,0x29,0x62, 0x6,0x29,0x61, 0x5,0x25,0x31, 0x6,0x29,0x57, + 0x4,0x28,0x47, 0x5,0x28,0x2d, 0x4,0x28,0x45, 0x6,0x2f,0x24, + 0x6,0x2e,0x7b, 0x6,0x2f,0x22, 0x4,0x28,0x48, 0x6,0x2f,0x21, + 0x4,0x28,0x44, 0x4,0x28,0x46, 0x6,0x2e,0x78, 0x6,0x2e,0x7e, + 0x6,0x2f,0x23, 0x6,0x2e,0x7a, 0x6,0x2e,0x7d, 0x6,0x2e,0x7c, + 0xf,0x29,0x40, 0xf,0x29,0x41, 0xf,0x29,0x42, 0x6,0x2e,0x79, + 0x5,0x28,0x2e, 0x6,0x2e,0x77, 0x6,0x35,0x49, 0x4,0x2b,0x70, + 0x4,0x2b,0x6d, 0x5,0x2c,0x25, 0x5,0x2c,0x23, 0x4,0x2b,0x6f, + 0x4,0x2b,0x73, 0x6,0x35,0x4e, 0x6,0x35,0x52, 0x5,0x2c,0x22, + 0x6,0x35,0x53, 0x4,0x2b,0x6c, 0x5,0x2c,0x26, 0x6,0x35,0x51, + 0x4,0x2b,0x71, 0x6,0x35,0x50, 0x6,0x35,0x4f, 0x6,0x35,0x4c, + 0x6,0x35,0x4b, 0x4,0x2b,0x72, 0x5,0x2c,0x24, 0x6,0x35,0x4d, + 0xf,0x2e,0x33, 0x6,0x35,0x54, 0xf,0x2e,0x2e, 0xf,0x2e,0x2f, + 0xf,0x2e,0x30, 0xf,0x2e,0x32, 0xf,0x2e,0x31, 0x6,0x35,0x4a, + 0x5,0x2c,0x27, 0x5,0x2b,0x7d, 0x5,0x2c,0x21, 0x5,0x2b,0x7e, + 0x4,0x30,0x50, 0x5,0x31,0x2b, 0x4,0x30,0x51, 0x5,0x31,0x2a, + 0x6,0x3d,0x46, 0x4,0x30,0x56, 0x4,0x36,0x49, 0x4,0x30,0x55, + 0x6,0x3d,0x49, 0x6,0x3d,0x47, 0x5,0x36,0x5e, 0x4,0x30,0x4f, + 0x5,0x2c,0x28, 0xf,0x33,0x34, 0xf,0x33,0x35, 0xf,0x33,0x37, + 0x6,0x3d,0x48, 0x6,0x3d,0x4a, 0x6,0x3d,0x4b, 0x4,0x36,0x43, + 0x5,0x36,0x5f, 0x6,0x46,0x6d, 0x6,0x46,0x69, 0x4,0x36,0x46, + 0x4,0x36,0x47, 0x5,0x36,0x60, 0x5,0x36,0x64, 0x4,0x36,0x4a, + 0x4,0x36,0x44, 0x4,0x36,0x41, 0x4,0x36,0x40, 0x6,0x46,0x6b, + 0x6,0x46,0x68, 0x6,0x46,0x6c, 0x5,0x36,0x61, 0x5,0x36,0x62, + 0x6,0x46,0x6a, 0xf,0x39,0x4b, 0xf,0x39,0x4c, 0xf,0x39,0x4d, + 0xf,0x39,0x4e, 0x4,0x36,0x48, 0x6,0x4c,0x46, 0x6,0x46,0x6e, + 0x5,0x36,0x65, 0x4,0x3c,0x39, 0x6,0x50,0x6f, 0x5,0x3d,0x73, + 0x6,0x50,0x6d, 0x4,0x3c,0x35, 0x5,0x3d,0x74, 0x6,0x50,0x6e, + 0x5,0x3d,0x6d, 0x4,0x3c,0x37, 0x4,0x3c,0x36, 0x5,0x3d,0x6e, + 0x4,0x3c,0x3a, 0x5,0x3d,0x6f, 0x6,0x50,0x6b, 0xf,0x40,0x4b, + 0x6,0x50,0x6a, 0x6,0x50,0x68, 0x6,0x50,0x70, 0x6,0x50,0x69, + 0x5,0x3d,0x72, 0x5,0x3d,0x71, 0xf,0x40,0x4c, 0x5,0x44,0x5b, + 0x4,0x42,0x3b, 0x6,0x5b,0x24, 0x5,0x44,0x61, 0x6,0x5b,0x22, + 0x6,0x5b,0x21, 0x4,0x3c,0x38, 0x4,0x42,0x40, 0x5,0x44,0x62, + 0x5,0x44,0x5c, 0x5,0x44,0x5f, 0x4,0x42,0x3d, 0x4,0x42,0x44, + 0x6,0x5b,0x2b, 0x6,0x5b,0x29, 0x6,0x5b,0x28, 0x5,0x44,0x5e, + 0x5,0x4c,0x22, 0x6,0x5b,0x26, 0x5,0x44,0x5d, 0x6,0x5b,0x2a, + 0x5,0x44,0x60, 0x6,0x5b,0x25, 0xf,0x46,0x63, 0xf,0x46,0x64, + 0xf,0x46,0x65, 0x6,0x5b,0x23, 0x6,0x5b,0x27, 0x5,0x4c,0x23, + 0x5,0x4c,0x27, 0x4,0x49,0x24, 0x5,0x4c,0x24, 0x5,0x4c,0x26, + 0x7,0x21,0x3c, 0x7,0x21,0x3d, 0x7,0x21,0x3a, 0x7,0x21,0x3e, + 0x7,0x21,0x3b, 0x5,0x4c,0x25, 0x7,0x21,0x38, 0x7,0x22,0x5a, + 0x7,0x21,0x39, 0x4,0x4f,0x60, 0x7,0x2c,0x49, 0x5,0x5a,0x77, + 0x7,0x2c,0x4a, 0x7,0x2c,0x4e, 0x7,0x2c,0x4d, 0x7,0x2c,0x4c, + 0x5,0x53,0x5f, 0x5,0x53,0x61, 0x5,0x53,0x60, 0x5,0x53,0x5e, + 0x7,0x2c,0x48, 0x7,0x2c,0x4b, 0x7,0x21,0x3f, 0xf,0x53,0x56, + 0x5,0x58,0x51, 0x5,0x5a,0x7a, 0x4,0x55,0x6b, 0x5,0x5a,0x79, + 0x5,0x5a,0x78, 0x7,0x36,0x7c, 0xf,0x59,0x56, 0x4,0x55,0x6e, + 0x7,0x3e,0x7c, 0x5,0x61,0x38, 0x5,0x61,0x39, 0x7,0x36,0x7d, + 0xf,0x5e,0x36, 0x5,0x61,0x3a, 0x7,0x46,0x2f, 0x7,0x46,0x2e, + 0x7,0x46,0x2d, 0x7,0x4d,0x40, 0x7,0x4d,0x41, 0x5,0x6f,0x6a, + 0x7,0x52,0x77, 0xf,0x67,0x44, 0x5,0x75,0x64, 0x4,0x6b,0x65, + 0x7,0x62,0x2d, 0x7,0x62,0x2c, 0x6,0x21,0x3a, 0x5,0x21,0x3c, + 0x6,0x21,0x58, 0x4,0x21,0x63, 0x5,0x21,0x59, 0x5,0x21,0x58, + 0x5,0x22,0x31, 0x5,0x22,0x32, 0xf,0x22,0x25, 0xf,0x22,0x26, + 0xf,0x22,0x27, 0xf,0x22,0x28, 0x5,0x22,0x33, 0x6,0x26,0x2e, + 0x4,0x23,0x45, 0x5,0x23,0x47, 0xf,0x23,0x38, 0xf,0x23,0x3a, + 0xf,0x23,0x3b, 0x6,0x26,0x2d, 0x4,0x23,0x49, 0x5,0x25,0x3d, + 0x5,0x25,0x39, 0x6,0x29,0x6d, 0x5,0x25,0x3c, 0x6,0x29,0x6e, + 0xf,0x25,0x60, 0xf,0x25,0x61, 0xf,0x25,0x62, 0xf,0x25,0x63, + 0x5,0x28,0x30, 0x4,0x28,0x4a, 0x6,0x2f,0x26, 0x5,0x28,0x31, + 0x5,0x28,0x2f, 0x6,0x2f,0x28, 0xf,0x29,0x43, 0xf,0x29,0x44, + 0xf,0x29,0x45, 0x6,0x35,0x55, 0x6,0x35,0x59, 0x4,0x2b,0x74, + 0x5,0x2c,0x2d, 0x5,0x2c,0x29, 0x5,0x2c,0x2b, 0x5,0x2c,0x2c, + 0x5,0x2c,0x2a, 0xf,0x2e,0x34, 0xf,0x2e,0x35, 0x6,0x35,0x56, + 0x6,0x35,0x57, 0x5,0x31,0x2d, 0x6,0x3d,0x4e, 0x6,0x3d,0x4c, + 0x6,0x3d,0x4f, 0x6,0x3d,0x50, 0x6,0x3d,0x51, 0xf,0x33,0x38, + 0xf,0x33,0x39, 0x6,0x3d,0x4d, 0x5,0x36,0x69, 0x5,0x36,0x66, + 0x5,0x36,0x68, 0x5,0x36,0x6b, 0x5,0x36,0x67, 0xf,0x39,0x4f, + 0xf,0x39,0x50, 0x6,0x46,0x6f, 0x6,0x46,0x70, 0x6,0x46,0x71, + 0x5,0x3d,0x76, 0x5,0x3d,0x75, 0x4,0x3c,0x3b, 0x6,0x50,0x72, + 0x6,0x50,0x71, 0xf,0x40,0x4d, 0x5,0x3d,0x77, 0x4,0x42,0x46, + 0x5,0x44,0x66, 0x5,0x44,0x64, 0x5,0x44,0x65, 0x5,0x44,0x69, + 0x4,0x42,0x45, 0x5,0x44,0x68, 0x6,0x5b,0x2e, 0xf,0x46,0x66, + 0x6,0x5b,0x2c, 0x6,0x5b,0x2d, 0x5,0x4c,0x2b, 0x5,0x4c,0x28, + 0x4,0x49,0x26, 0x5,0x4c,0x29, 0x5,0x4c,0x2a, 0x7,0x2c,0x4f, + 0x5,0x5a,0x7c, 0xf,0x53,0x57, 0x5,0x5a,0x7b, 0x5,0x5a,0x7d, + 0x7,0x36,0x7e, 0x7,0x37,0x22, 0x7,0x37,0x21, 0x5,0x61,0x3c, + 0x7,0x3e,0x7e, 0x7,0x3f,0x21, 0x5,0x67,0x56, 0x5,0x67,0x55, + 0x7,0x4d,0x42, 0x5,0x6f,0x6b, 0x7,0x5b,0x46, 0x5,0x75,0x65, + 0x4,0x6c,0x6b, 0x7,0x66,0x3b, 0x5,0x21,0x3d, 0x6,0x22,0x47, + 0x6,0x22,0x48, 0x5,0x22,0x35, 0x5,0x22,0x34, 0x5,0x22,0x36, + 0xf,0x22,0x2a, 0x6,0x26,0x2f, 0x5,0x23,0x48, 0x5,0x23,0x49, + 0x4,0x25,0x52, 0x6,0x29,0x71, 0x6,0x29,0x70, 0xf,0x25,0x64, + 0xf,0x25,0x65, 0x6,0x2f,0x2a, 0x4,0x28,0x4c, 0x6,0x2f,0x2b, + 0x6,0x2f,0x2c, 0xf,0x29,0x46, 0x6,0x2f,0x29, 0x4,0x2b,0x76, + 0x6,0x35,0x5c, 0x6,0x35,0x5b, 0x6,0x35,0x5e, 0x6,0x35,0x5f, + 0x6,0x35,0x5a, 0x6,0x35,0x5d, 0x5,0x2c,0x2f, 0x4,0x30,0x5d, + 0x6,0x3d,0x52, 0x5,0x2c,0x2e, 0x5,0x31,0x2e, 0x5,0x31,0x2f, + 0x6,0x3d,0x53, 0x4,0x36,0x4e, 0xf,0x39,0x51, 0x6,0x50,0x73, + 0x4,0x30,0x5b, 0x5,0x3d,0x79, 0xf,0x40,0x4e, 0xf,0x40,0x4f, + 0x6,0x5b,0x2f, 0x4,0x42,0x47, 0x5,0x44,0x6a, 0x5,0x44,0x6b, + 0xf,0x46,0x67, 0xf,0x4d,0x69, 0x4,0x4f,0x65, 0x7,0x2c,0x50, + 0x7,0x2c,0x51, 0x7,0x37,0x23, 0x7,0x37,0x24, 0x5,0x5a,0x7e, + 0x7,0x4d,0x43, 0x6,0x21,0x2a, 0x4,0x21,0x42, 0x6,0x22,0x4a, + 0x6,0x26,0x30, 0x6,0x26,0x33, 0x5,0x23,0x4a, 0x6,0x26,0x31, + 0x6,0x26,0x32, 0x4,0x28,0x4d, 0x6,0x2f,0x2f, 0x6,0x2f,0x31, + 0x6,0x2f,0x2d, 0x6,0x2f,0x2e, 0x6,0x2f,0x30, 0x6,0x3d,0x54, + 0x6,0x35,0x60, 0xf,0x2e,0x36, 0xf,0x2e,0x37, 0x6,0x35,0x24, + 0x6,0x46,0x72, 0xf,0x39,0x52, 0x4,0x3c,0x3d, 0xf,0x46,0x68, + 0x7,0x3f,0x22, 0x5,0x6d,0x32, 0x6,0x21,0x2b, 0xf,0x21,0x31, + 0x5,0x22,0x37, 0x6,0x23,0x6e, 0x4,0x22,0x43, 0x6,0x23,0x6d, + 0x6,0x26,0x34, 0x4,0x23,0x4a, 0x6,0x26,0x35, 0xf,0x23,0x3c, + 0x6,0x29,0x73, 0x5,0x25,0x3e, 0x5,0x25,0x3f, 0x4,0x28,0x4f, + 0x6,0x2f,0x34, 0x5,0x28,0x33, 0x6,0x2f,0x33, 0x5,0x28,0x32, + 0x6,0x2f,0x32, 0x6,0x2f,0x37, 0x6,0x2f,0x35, 0xf,0x29,0x47, + 0x5,0x2c,0x30, 0x6,0x35,0x62, 0x6,0x35,0x61, 0x5,0x2c,0x31, + 0x6,0x3d,0x55, 0xf,0x33,0x3a, 0x4,0x36,0x4f, 0x6,0x50,0x75, + 0x6,0x46,0x73, 0x6,0x35,0x63, 0x5,0x3d,0x7a, 0x4,0x42,0x48, + 0x6,0x5b,0x31, 0x6,0x5b,0x30, 0x5,0x4c,0x2c, 0x5,0x4c,0x2d, + 0x5,0x4c,0x2e, 0xf,0x4d,0x6a, 0x5,0x53,0x64, 0x7,0x37,0x25, + 0xf,0x5e,0x37, 0x4,0x5f,0x4b, 0x7,0x3f,0x23, 0x7,0x4d,0x44, + 0x7,0x60,0x69, 0x7,0x64,0x43, 0xf,0x21,0x32, 0x5,0x22,0x38, + 0x6,0x23,0x6f, 0x5,0x23,0x4c, 0x6,0x26,0x37, 0xf,0x23,0x3d, + 0xf,0x25,0x66, 0x6,0x2f,0x36, 0x5,0x28,0x34, 0x6,0x35,0x64, + 0xf,0x46,0x69, 0x7,0x4d,0x45, 0x7,0x57,0x50, 0x6,0x21,0x5a, + 0x5,0x21,0x5a, 0x5,0x21,0x5b, 0x6,0x22,0x4b, 0x6,0x23,0x70, + 0x4,0x22,0x44, 0x4,0x22,0x45, 0x6,0x23,0x73, 0x6,0x23,0x72, + 0x5,0x22,0x3a, 0x5,0x22,0x39, 0x6,0x23,0x74, 0x6,0x26,0x39, + 0x5,0x23,0x4d, 0x6,0x26,0x3a, 0x6,0x23,0x75, 0x6,0x26,0x3b, + 0xf,0x23,0x3e, 0x5,0x25,0x40, 0x6,0x29,0x74, 0x6,0x29,0x77, + 0x6,0x29,0x78, 0x6,0x29,0x76, 0xf,0x25,0x67, 0xf,0x25,0x69, + 0xf,0x25,0x6a, 0xf,0x25,0x6b, 0xf,0x25,0x68, 0x6,0x29,0x75, + 0x6,0x35,0x65, 0x6,0x35,0x66, 0xf,0x2e,0x38, 0xf,0x2e,0x39, + 0x4,0x30,0x63, 0x4,0x30,0x61, 0x4,0x30,0x62, 0xf,0x33,0x3b, + 0xf,0x39,0x53, 0xf,0x39,0x54, 0x6,0x50,0x78, 0x6,0x50,0x77, + 0x6,0x50,0x79, 0x6,0x50,0x7b, 0xf,0x40,0x50, 0xf,0x46,0x6a, + 0xf,0x46,0x6b, 0x5,0x4c,0x2f, 0xf,0x4d,0x6b, 0xf,0x4d,0x6c, + 0x7,0x21,0x40, 0x7,0x37,0x26, 0xf,0x5e,0x38, 0x7,0x46,0x30, + 0x7,0x52,0x78, 0x7,0x60,0x6a, 0x7,0x62,0x2e, 0x6,0x22,0x4c, + 0x6,0x23,0x77, 0x6,0x23,0x76, 0x6,0x23,0x78, 0x4,0x23,0x4c, + 0x5,0x23,0x4f, 0x5,0x23,0x4e, 0x6,0x26,0x3c, 0x4,0x25,0x55, + 0x4,0x25,0x54, 0x6,0x29,0x7c, 0x6,0x29,0x7b, 0x6,0x29,0x7d, + 0x6,0x29,0x7a, 0x6,0x29,0x7e, 0x6,0x29,0x79, 0xf,0x25,0x6c, + 0x6,0x2a,0x22, 0x4,0x28,0x52, 0x4,0x28,0x51, 0x5,0x28,0x37, + 0xf,0x29,0x48, 0xf,0x29,0x49, 0xf,0x29,0x4a, 0xf,0x29,0x4b, + 0x6,0x2f,0x39, 0x6,0x35,0x68, 0x4,0x2b,0x79, 0x5,0x2c,0x32, + 0x6,0x35,0x67, 0x6,0x35,0x6a, 0x6,0x3c,0x7a, 0x6,0x35,0x69, + 0x6,0x3d,0x57, 0x6,0x3d,0x56, 0x6,0x35,0x6b, 0x6,0x3d,0x58, + 0x6,0x46,0x75, 0x6,0x46,0x76, 0x6,0x46,0x77, 0x5,0x37,0x3f, + 0x6,0x50,0x7c, 0x5,0x44,0x6d, 0x6,0x5b,0x32, 0x7,0x21,0x41, + 0xf,0x53,0x58, 0x7,0x63,0x4b, 0x5,0x21,0x3e, 0x4,0x21,0x43, + 0xf,0x21,0x34, 0x6,0x21,0x5b, 0x4,0x22,0x46, 0x6,0x2a,0x24, + 0x6,0x23,0x7a, 0x6,0x23,0x79, 0x4,0x23,0x4e, 0x6,0x2f,0x3b, + 0x5,0x28,0x38, 0x6,0x2f,0x3a, 0x4,0x28,0x53, 0x6,0x35,0x6c, + 0x6,0x2f,0x3c, 0x6,0x46,0x78, 0x5,0x2c,0x33, 0x5,0x3d,0x7b, + 0x6,0x50,0x7d, 0x5,0x44,0x6e, 0x7,0x3f,0x24, 0x5,0x21,0x3f, + 0x5,0x21,0x5c, 0x6,0x23,0x7b, 0x6,0x22,0x4f, 0x6,0x22,0x4d, + 0x6,0x22,0x50, 0x5,0x21,0x5d, 0x4,0x22,0x47, 0x5,0x22,0x3b, + 0x6,0x23,0x7c, 0x6,0x23,0x7d, 0x5,0x22,0x3f, 0x5,0x22,0x40, + 0x5,0x22,0x3d, 0x5,0x22,0x3e, 0xf,0x22,0x2d, 0x6,0x26,0x3e, + 0x5,0x23,0x50, 0x6,0x26,0x3d, 0x5,0x23,0x51, 0x6,0x25,0x5e, + 0xf,0x23,0x3f, 0x6,0x2a,0x27, 0x6,0x2a,0x26, 0x6,0x2a,0x29, + 0x6,0x2a,0x28, 0x5,0x25,0x41, 0x4,0x25,0x58, 0xf,0x25,0x6d, + 0xf,0x25,0x6e, 0x6,0x2a,0x25, 0x5,0x28,0x39, 0x4,0x28,0x54, + 0x6,0x2f,0x46, 0x6,0x2f,0x41, 0x6,0x2f,0x44, 0x6,0x2f,0x45, + 0x6,0x2f,0x40, 0x6,0x2f,0x3e, 0x6,0x2f,0x42, 0x6,0x2f,0x43, + 0xf,0x29,0x4d, 0xf,0x29,0x4e, 0x4,0x28,0x55, 0x6,0x2f,0x3f, + 0x6,0x35,0x73, 0x6,0x35,0x74, 0x4,0x2b,0x7b, 0x5,0x2c,0x34, + 0x4,0x2b,0x7c, 0x6,0x35,0x6f, 0x6,0x35,0x6d, 0x6,0x35,0x70, + 0x6,0x35,0x72, 0x6,0x35,0x71, 0x6,0x35,0x6e, 0x5,0x2c,0x35, + 0xf,0x2e,0x3a, 0xf,0x2e,0x3b, 0x6,0x3d,0x60, 0x6,0x3d,0x5b, + 0x4,0x30,0x67, 0x6,0x3d,0x5f, 0x6,0x3d,0x5c, 0x6,0x3d,0x5d, + 0xf,0x33,0x3d, 0x5,0x31,0x30, 0x6,0x3d,0x5e, 0x4,0x30,0x66, + 0x4,0x36,0x52, 0x6,0x46,0x7c, 0x6,0x46,0x7a, 0x4,0x36,0x53, + 0x6,0x46,0x7b, 0x6,0x46,0x79, 0x6,0x46,0x7d, 0xf,0x39,0x55, + 0x6,0x46,0x7e, 0x5,0x3d,0x7c, 0x5,0x3d,0x7d, 0x6,0x51,0x24, + 0x6,0x51,0x23, 0x6,0x50,0x7e, 0xf,0x40,0x51, 0x6,0x51,0x21, + 0x4,0x3c,0x3f, 0x4,0x42,0x49, 0x6,0x5b,0x34, 0x6,0x5b,0x37, + 0x6,0x5b,0x33, 0x6,0x5b,0x38, 0x5,0x44,0x6f, 0xf,0x46,0x6d, + 0xf,0x46,0x6e, 0x6,0x5b,0x36, 0x6,0x5b,0x39, 0x6,0x5b,0x3b, + 0x6,0x5b,0x3a, 0x6,0x5b,0x35, 0x7,0x21,0x43, 0x4,0x49,0x28, + 0x5,0x4c,0x30, 0x7,0x21,0x44, 0x7,0x21,0x42, 0xf,0x4d,0x6d, + 0x7,0x25,0x48, 0x5,0x53,0x65, 0x7,0x2c,0x53, 0x7,0x2c,0x52, + 0xf,0x53,0x59, 0xf,0x53,0x5a, 0x7,0x3b,0x4d, 0xf,0x5e,0x39, + 0xf,0x5e,0x3a, 0xf,0x5e,0x3b, 0xf,0x64,0x7c, 0x7,0x4e,0x27, + 0x7,0x52,0x79, 0x5,0x77,0x54, 0x7,0x5e,0x50, 0x7,0x65,0x33, + 0x7,0x66,0x33, 0x5,0x21,0x2e, 0x6,0x21,0x3c, 0x6,0x21,0x3d, + 0x6,0x21,0x5d, 0x6,0x22,0x52, 0x6,0x22,0x51, 0x4,0x22,0x4a, + 0x6,0x24,0x23, 0x6,0x24,0x21, 0xf,0x22,0x2e, 0x4,0x22,0x49, + 0x6,0x24,0x22, 0x6,0x26,0x40, 0xf,0x23,0x40, 0x5,0x23,0x3c, + 0x6,0x2a,0x2c, 0x6,0x2a,0x2b, 0x6,0x2a,0x2d, 0x6,0x2a,0x2e, + 0x6,0x2f,0x47, 0x6,0x2f,0x48, 0x4,0x28,0x56, 0xf,0x29,0x4f, + 0x6,0x35,0x76, 0x6,0x35,0x75, 0x6,0x36,0x49, 0x6,0x35,0x2e, + 0x5,0x36,0x6c, 0x6,0x47,0x22, 0x6,0x47,0x24, 0x6,0x4d,0x62, + 0xf,0x39,0x56, 0x6,0x47,0x23, 0x5,0x3e,0x21, 0x6,0x51,0x25, + 0x5,0x3d,0x7e, 0xf,0x40,0x52, 0x6,0x5b,0x3c, 0xf,0x46,0x6f, + 0x6,0x60,0x72, 0x7,0x21,0x45, 0x5,0x53,0x66, 0xf,0x59,0x57, + 0x7,0x4b,0x6a, 0x6,0x21,0x60, 0x5,0x21,0x40, 0x6,0x21,0x5e, + 0x5,0x21,0x42, 0x6,0x21,0x62, 0x6,0x21,0x5f, 0x6,0x22,0x55, + 0x4,0x21,0x68, 0x5,0x21,0x5e, 0x6,0x22,0x56, 0x5,0x21,0x5f, + 0x6,0x22,0x53, 0x6,0x22,0x54, 0x6,0x24,0x25, 0x4,0x22,0x4b, + 0x6,0x24,0x24, 0x5,0x22,0x42, 0x6,0x24,0x26, 0x5,0x22,0x41, + 0x6,0x24,0x27, 0x6,0x26,0x44, 0x6,0x26,0x42, 0x5,0x23,0x52, + 0xf,0x23,0x41, 0xf,0x23,0x42, 0xf,0x23,0x43, 0xf,0x23,0x44, + 0x4,0x23,0x50, 0x6,0x2a,0x31, 0x6,0x2a,0x2f, 0x6,0x2a,0x32, + 0x6,0x2a,0x30, 0xf,0x25,0x6f, 0x6,0x2f,0x4d, 0x6,0x2f,0x4a, + 0x6,0x2f,0x4c, 0x6,0x2f,0x4b, 0x6,0x2f,0x49, 0xf,0x29,0x51, + 0xf,0x29,0x52, 0x6,0x32,0x72, 0x5,0x28,0x36, 0x6,0x35,0x7b, + 0x5,0x2c,0x36, 0x6,0x35,0x7c, 0x6,0x35,0x79, 0x6,0x35,0x77, + 0x6,0x35,0x7a, 0xf,0x2e,0x3c, 0xf,0x2e,0x3d, 0xf,0x2e,0x3e, + 0xf,0x2e,0x3f, 0x6,0x3c,0x67, 0x6,0x3d,0x66, 0x6,0x3d,0x68, + 0x5,0x31,0x32, 0x5,0x31,0x33, 0x6,0x3d,0x65, 0x6,0x3d,0x63, + 0x6,0x3d,0x6b, 0x6,0x3d,0x64, 0x5,0x2c,0x37, 0x6,0x3d,0x62, + 0x6,0x3d,0x69, 0x6,0x3d,0x6a, 0x6,0x3c,0x7c, 0x6,0x3d,0x67, + 0x4,0x36,0x54, 0x5,0x36,0x6d, 0x6,0x47,0x27, 0x6,0x47,0x25, + 0xf,0x33,0x3e, 0xf,0x39,0x57, 0xf,0x39,0x58, 0xf,0x39,0x59, + 0xf,0x39,0x5a, 0x6,0x47,0x26, 0x4,0x3c,0x43, 0x4,0x3c,0x42, + 0x6,0x51,0x27, 0x6,0x51,0x28, 0x6,0x51,0x26, 0x4,0x3c,0x41, + 0x6,0x47,0x28, 0x6,0x51,0x5b, 0x6,0x51,0x29, 0x6,0x5f,0x21, + 0x6,0x5b,0x3e, 0x6,0x5b,0x3d, 0x5,0x44,0x70, 0x6,0x53,0x7b, + 0xf,0x4d,0x55, 0x5,0x4c,0x33, 0x5,0x4c,0x34, 0xf,0x46,0x70, + 0x5,0x4c,0x32, 0x7,0x2c,0x55, 0xf,0x53,0x5b, 0x3,0x50,0x39, + 0x5,0x54,0x2e, 0x7,0x2c,0x54, 0x7,0x37,0x29, 0x7,0x37,0x28, + 0xf,0x59,0x58, 0x4,0x5a,0x6f, 0x7,0x46,0x32, 0x7,0x46,0x31, + 0x4,0x66,0x31, 0xf,0x67,0x45, 0x7,0x57,0x51, 0x5,0x75,0x66, + 0x7,0x5e,0x51, 0x7,0x5e,0x52, 0x5,0x21,0x43, 0x6,0x21,0x64, + 0x4,0x21,0x47, 0x4,0x21,0x46, 0xf,0x21,0x36, 0x6,0x21,0x63, + 0x5,0x21,0x61, 0x6,0x22,0x59, 0x6,0x22,0x58, 0x6,0x22,0x5e, + 0x6,0x22,0x5a, 0x6,0x22,0x5d, 0x6,0x22,0x57, 0x6,0x22,0x42, + 0xf,0x21,0x4e, 0x6,0x22,0x5c, 0x5,0x22,0x47, 0x6,0x24,0x2d, + 0x5,0x22,0x45, 0x6,0x24,0x2e, 0x4,0x22,0x4d, 0x5,0x22,0x46, + 0x4,0x22,0x50, 0x6,0x24,0x2c, 0x4,0x22,0x4f, 0x4,0x22,0x4e, + 0x5,0x22,0x44, 0x6,0x24,0x28, 0xf,0x22,0x2f, 0xf,0x22,0x30, + 0xf,0x22,0x32, 0xf,0x22,0x34, 0x6,0x24,0x2a, 0xf,0x22,0x31, + 0xf,0x22,0x33, 0x5,0x22,0x43, 0x6,0x24,0x29, 0x6,0x24,0x2b, + 0x4,0x23,0x56, 0x6,0x26,0x4f, 0x6,0x26,0x46, 0x6,0x26,0x4d, + 0x6,0x26,0x4c, 0x5,0x23,0x56, 0x4,0x23,0x5a, 0x4,0x23,0x5d, + 0x5,0x23,0x5b, 0x5,0x23,0x54, 0x6,0x26,0x48, 0x4,0x23,0x57, + 0x4,0x23,0x52, 0x4,0x23,0x58, 0x5,0x23,0x58, 0x6,0x26,0x49, + 0x5,0x23,0x59, 0x4,0x23,0x55, 0x5,0x23,0x55, 0x6,0x26,0x47, + 0x5,0x23,0x5c, 0xf,0x23,0x45, 0xf,0x23,0x46, 0xf,0x23,0x47, + 0xf,0x23,0x4a, 0xf,0x23,0x4b, 0xf,0x23,0x4c, 0xf,0x23,0x48, + 0x6,0x26,0x4b, 0x6,0x26,0x4a, 0x6,0x26,0x50, 0x6,0x26,0x45, + 0x5,0x23,0x53, 0x5,0x23,0x57, 0x5,0x23,0x5a, 0x4,0x25,0x5c, + 0x4,0x25,0x5e, 0x6,0x2a,0x36, 0x5,0x25,0x4c, 0x5,0x25,0x44, + 0x4,0x25,0x5b, 0x6,0x2a,0x34, 0x5,0x25,0x4d, 0x5,0x25,0x45, + 0x5,0x25,0x47, 0x4,0x25,0x61, 0x5,0x25,0x50, 0x6,0x2a,0x33, + 0x5,0x25,0x52, 0x5,0x28,0x47, 0x6,0x2a,0x3b, 0x5,0x25,0x48, + 0x5,0x25,0x4b, 0x5,0x25,0x4a, 0x5,0x25,0x51, 0x5,0x25,0x49, + 0x5,0x25,0x4e, 0x6,0x2a,0x3d, 0x5,0x25,0x4f, 0xf,0x25,0x70, + 0xf,0x25,0x72, 0xf,0x25,0x73, 0xf,0x25,0x74, 0xf,0x25,0x75, + 0xf,0x25,0x76, 0xf,0x25,0x77, 0xf,0x25,0x78, 0xf,0x25,0x79, + 0xf,0x25,0x7a, 0xf,0x25,0x7d, 0xf,0x25,0x7e, 0xf,0x26,0x21, + 0xf,0x26,0x22, 0xf,0x26,0x23, 0x5,0x25,0x46, 0x6,0x2a,0x35, + 0x5,0x25,0x43, 0x6,0x2a,0x38, 0x6,0x2a,0x37, 0xf,0x25,0x7c, + 0x6,0x2a,0x3a, 0x5,0x2c,0x38, 0x5,0x28,0x46, 0x5,0x28,0x52, + 0x5,0x28,0x4d, 0x5,0x28,0x3c, 0x5,0x28,0x51, 0x6,0x2f,0x54, + 0x6,0x2f,0x4e, 0x5,0x28,0x3f, 0x4,0x28,0x5b, 0x4,0x28,0x5a, + 0x5,0x28,0x4f, 0x5,0x28,0x45, 0x5,0x28,0x4b, 0x5,0x28,0x4a, + 0x5,0x28,0x4e, 0x5,0x28,0x48, 0x5,0x28,0x49, 0x5,0x28,0x3d, + 0x5,0x28,0x41, 0x5,0x28,0x4c, 0x4,0x25,0x62, 0x6,0x2f,0x59, + 0x6,0x2f,0x5a, 0x5,0x28,0x53, 0x6,0x2f,0x4f, 0x5,0x28,0x3a, + 0x6,0x2f,0x57, 0x6,0x2f,0x56, 0x5,0x28,0x50, 0x6,0x2f,0x50, + 0x6,0x2f,0x58, 0x6,0x2f,0x52, 0x5,0x28,0x40, 0x5,0x28,0x42, + 0xf,0x2b,0x33, 0xf,0x29,0x53, 0xf,0x29,0x55, 0xf,0x29,0x56, + 0xf,0x29,0x57, 0xf,0x29,0x58, 0xf,0x29,0x59, 0xf,0x29,0x5a, + 0xf,0x29,0x5b, 0xf,0x29,0x5e, 0xf,0x29,0x5f, 0xf,0x29,0x60, + 0xf,0x29,0x61, 0xf,0x29,0x62, 0xf,0x29,0x63, 0xf,0x29,0x64, + 0xf,0x29,0x66, 0xf,0x29,0x67, 0x5,0x28,0x43, 0x5,0x28,0x44, + 0x4,0x28,0x5d, 0xf,0x29,0x65, 0x6,0x2f,0x55, 0x6,0x2f,0x53, + 0x4,0x28,0x58, 0x5,0x28,0x3b, 0x5,0x28,0x3e, 0x6,0x2f,0x51, + 0x6,0x36,0x29, 0x4,0x2c,0x24, 0x4,0x2c,0x2b, 0x4,0x2c,0x2c, + 0x4,0x2c,0x27, 0x6,0x36,0x22, 0x5,0x2c,0x4e, 0x5,0x2c,0x41, + 0x5,0x2c,0x3f, 0x5,0x2c,0x4c, 0x5,0x2c,0x3d, 0x5,0x2c,0x46, + 0x5,0x2c,0x56, 0x5,0x2c,0x49, 0x4,0x2c,0x2a, 0x5,0x2c,0x4d, + 0x5,0x2c,0x54, 0x5,0x2c,0x52, 0x4,0x2c,0x22, 0x6,0x36,0x23, + 0x6,0x36,0x24, 0x5,0x2c,0x51, 0x4,0x2c,0x23, 0x5,0x2c,0x40, + 0x6,0x36,0x27, 0x6,0x36,0x28, 0x5,0x2c,0x57, 0x6,0x36,0x26, + 0x5,0x2c,0x53, 0x5,0x2c,0x58, 0x5,0x2c,0x47, 0x5,0x2c,0x59, + 0x5,0x2c,0x44, 0x5,0x2c,0x55, 0xf,0x2e,0x40, 0xf,0x2e,0x41, + 0xf,0x2e,0x43, 0xf,0x2e,0x44, 0xf,0x2e,0x48, 0xf,0x2e,0x49, + 0xf,0x2e,0x4b, 0xf,0x2e,0x4c, 0xf,0x2e,0x4d, 0xf,0x2e,0x4e, + 0xf,0x2e,0x4f, 0xf,0x2e,0x50, 0xf,0x2e,0x51, 0xf,0x2e,0x52, + 0xf,0x2e,0x53, 0xf,0x2e,0x54, 0x6,0x39,0x5e, 0x6,0x36,0x21, + 0x5,0x2c,0x42, 0x5,0x2c,0x45, 0x5,0x2c,0x48, 0x6,0x36,0x25, + 0x5,0x2c,0x50, 0x5,0x2c,0x4b, 0x5,0x2c,0x39, 0x5,0x2c,0x3a, + 0x5,0x2c,0x3b, 0xf,0x2e,0x45, 0x5,0x2c,0x4a, 0x5,0x2c,0x4f, + 0x5,0x2c,0x3e, 0x5,0x2c,0x3c, 0x5,0x2c,0x5a, 0x5,0x31,0x46, + 0x4,0x30,0x69, 0x6,0x3d,0x77, 0x6,0x3d,0x74, 0x4,0x30,0x78, + 0x6,0x3d,0x6f, 0x4,0x30,0x75, 0x5,0x31,0x51, 0x5,0x31,0x49, + 0x5,0x31,0x4c, 0x4,0x30,0x6e, 0x4,0x30,0x79, 0x5,0x31,0x44, + 0x6,0x3d,0x76, 0x5,0x31,0x36, 0x5,0x31,0x4a, 0x5,0x31,0x45, + 0x5,0x31,0x4e, 0x5,0x31,0x34, 0x5,0x31,0x4d, 0x5,0x31,0x42, + 0x5,0x31,0x3b, 0x6,0x3d,0x71, 0x6,0x3d,0x75, 0x6,0x3d,0x7d, + 0x6,0x3d,0x7a, 0x6,0x3d,0x7e, 0x5,0x31,0x3a, 0x5,0x31,0x3c, + 0x6,0x3d,0x6c, 0x5,0x31,0x38, 0x6,0x3d,0x72, 0x6,0x3d,0x7b, + 0xf,0x33,0x3f, 0xf,0x33,0x40, 0xf,0x33,0x41, 0xf,0x33,0x42, + 0xf,0x33,0x44, 0xf,0x33,0x45, 0xf,0x33,0x46, 0xf,0x33,0x47, + 0xf,0x33,0x48, 0xf,0x33,0x49, 0xf,0x33,0x4c, 0xf,0x33,0x4d, + 0x5,0x31,0x37, 0x6,0x3d,0x73, 0x5,0x31,0x39, 0x6,0x3d,0x6d, + 0x5,0x31,0x41, 0x5,0x31,0x48, 0x6,0x3e,0x21, 0x5,0x31,0x52, + 0x6,0x3d,0x70, 0x5,0x31,0x40, 0x5,0x31,0x35, 0x5,0x31,0x47, + 0x5,0x31,0x3e, 0x5,0x31,0x43, 0x5,0x31,0x3d, 0x5,0x31,0x50, + 0x6,0x3d,0x79, 0x3,0x34,0x60, 0x5,0x31,0x53, 0x5,0x31,0x4f, + 0x6,0x3d,0x78, 0x6,0x3d,0x6e, 0x5,0x31,0x3f, 0x5,0x31,0x4b, + 0x4,0x36,0x55, 0x4,0x36,0x61, 0x6,0x47,0x32, 0x5,0x37,0x24, + 0x6,0x47,0x37, 0x6,0x47,0x3e, 0x5,0x36,0x77, 0x6,0x47,0x35, + 0x5,0x36,0x7c, 0x4,0x36,0x56, 0x5,0x37,0x28, 0x5,0x36,0x6f, + 0x5,0x36,0x71, 0x4,0x36,0x5a, 0x5,0x36,0x78, 0x4,0x36,0x57, + 0x5,0x37,0x29, 0x5,0x36,0x7e, 0x4,0x36,0x62, 0x4,0x36,0x5b, + 0x5,0x37,0x23, 0x5,0x37,0x27, 0x4,0x36,0x66, 0x5,0x37,0x30, + 0x4,0x36,0x5d, 0x5,0x37,0x2c, 0x5,0x37,0x2e, 0x6,0x47,0x2e, + 0x6,0x47,0x3c, 0x5,0x3e,0x22, 0x6,0x47,0x2b, 0x6,0x47,0x2f, + 0x6,0x47,0x38, 0x5,0x37,0x22, 0x6,0x47,0x34, 0x6,0x47,0x3f, + 0x6,0x47,0x3a, 0x4,0x36,0x64, 0x5,0x37,0x26, 0x5,0x36,0x73, + 0xf,0x39,0x5b, 0xf,0x39,0x5d, 0xf,0x39,0x5e, 0xf,0x39,0x61, + 0xf,0x39,0x62, 0xf,0x39,0x63, 0xf,0x39,0x64, 0xf,0x39,0x65, + 0xf,0x39,0x66, 0xf,0x39,0x67, 0xf,0x39,0x68, 0xf,0x39,0x6a, + 0xf,0x39,0x6d, 0xf,0x39,0x6e, 0xf,0x39,0x6f, 0xf,0x39,0x70, + 0x5,0x36,0x74, 0x5,0x36,0x75, 0x5,0x36,0x7b, 0x5,0x37,0x25, + 0x5,0x37,0x21, 0x6,0x47,0x3b, 0xf,0x39,0x6b, 0xf,0x39,0x5c, + 0xf,0x39,0x5f, 0xf,0x39,0x69, 0xf,0x39,0x6c, 0x5,0x37,0x2b, + 0x5,0x37,0x2f, 0x6,0x47,0x3d, 0x5,0x37,0x2d, 0x5,0x37,0x2a, + 0x5,0x36,0x7d, 0x6,0x47,0x36, 0x6,0x51,0x39, 0x5,0x3e,0x23, + 0x4,0x3c,0x49, 0x5,0x3e,0x27, 0x4,0x3c,0x4e, 0x5,0x36,0x72, + 0x6,0x51,0x41, 0x4,0x3c,0x48, 0x4,0x3c,0x44, 0x6,0x5b,0x42, + 0x5,0x3e,0x2d, 0x6,0x51,0x33, 0x6,0x51,0x35, 0x5,0x3e,0x2a, + 0x5,0x3e,0x38, 0x6,0x51,0x3a, 0x6,0x51,0x30, 0x5,0x3e,0x2e, + 0x5,0x3e,0x24, 0x5,0x3e,0x35, 0x5,0x3e,0x3f, 0x6,0x51,0x3f, + 0x6,0x51,0x37, 0x5,0x3e,0x34, 0x5,0x3e,0x37, 0x4,0x3c,0x4d, + 0x5,0x3e,0x3a, 0x4,0x3c,0x45, 0x5,0x3e,0x33, 0x5,0x3e,0x2c, + 0x4,0x3c,0x4f, 0x5,0x3e,0x2f, 0x4,0x3c,0x51, 0x5,0x3e,0x31, + 0x5,0x3e,0x32, 0x6,0x51,0x3b, 0x6,0x51,0x40, 0x6,0x51,0x2a, + 0x6,0x51,0x3e, 0x6,0x51,0x3d, 0x5,0x3e,0x3b, 0x6,0x51,0x38, + 0x5,0x3e,0x28, 0x5,0x3e,0x30, 0x5,0x3e,0x2b, 0x6,0x51,0x2c, + 0x6,0x51,0x44, 0x6,0x51,0x2e, 0x6,0x51,0x2b, 0x6,0x51,0x2d, + 0xf,0x47,0x26, 0x5,0x3e,0x3e, 0x6,0x51,0x31, 0xf,0x40,0x56, + 0xf,0x40,0x57, 0xf,0x40,0x58, 0xf,0x40,0x59, 0xf,0x40,0x5a, + 0xf,0x40,0x5b, 0xf,0x40,0x5c, 0xf,0x40,0x5d, 0xf,0x40,0x5e, + 0xf,0x40,0x5f, 0xf,0x40,0x60, 0xf,0x40,0x61, 0xf,0x40,0x63, + 0x6,0x51,0x2f, 0x6,0x51,0x34, 0x6,0x51,0x3c, 0xf,0x40,0x54, + 0x6,0x51,0x42, 0x5,0x3e,0x3c, 0x5,0x3e,0x36, 0x5,0x3e,0x25, + 0x5,0x3e,0x29, 0x5,0x3e,0x26, 0xf,0x40,0x64, 0x6,0x5b,0x46, + 0x6,0x5b,0x40, 0x6,0x5b,0x4b, 0x4,0x42,0x4d, 0x6,0x5b,0x4f, + 0x6,0x5b,0x45, 0x6,0x5b,0x51, 0x6,0x5b,0x50, 0x4,0x42,0x4e, + 0x6,0x5b,0x4c, 0x5,0x44,0x73, 0x5,0x44,0x77, 0x5,0x44,0x75, + 0x5,0x44,0x7c, 0x6,0x5b,0x43, 0x6,0x5b,0x47, 0x4,0x42,0x4c, + 0x4,0x42,0x54, 0x5,0x44,0x7b, 0x4,0x42,0x50, 0x5,0x44,0x76, + 0x6,0x5b,0x41, 0x5,0x44,0x71, 0x5,0x44,0x72, 0x5,0x44,0x79, + 0x6,0x5b,0x52, 0x6,0x5b,0x3f, 0x6,0x5b,0x49, 0x6,0x5b,0x4a, + 0x5,0x44,0x78, 0x6,0x5b,0x4d, 0xf,0x46,0x71, 0xf,0x46,0x72, + 0xf,0x46,0x73, 0xf,0x46,0x74, 0xf,0x46,0x76, 0xf,0x46,0x77, + 0xf,0x46,0x78, 0xf,0x46,0x79, 0xf,0x46,0x7a, 0xf,0x46,0x7b, + 0xf,0x46,0x7c, 0xf,0x46,0x7e, 0xf,0x47,0x21, 0xf,0x47,0x22, + 0xf,0x47,0x23, 0xf,0x47,0x27, 0xf,0x47,0x28, 0xf,0x47,0x29, + 0xf,0x47,0x2a, 0xf,0x47,0x2b, 0xf,0x47,0x2c, 0xf,0x47,0x2d, + 0xf,0x47,0x24, 0x6,0x5b,0x48, 0xf,0x46,0x75, 0x5,0x44,0x74, + 0x5,0x44,0x7a, 0x6,0x5b,0x4e, 0x5,0x45,0x21, 0xf,0x46,0x7d, + 0x6,0x5b,0x44, 0xf,0x47,0x25, 0x5,0x4c,0x35, 0x5,0x44,0x7d, + 0xf,0x46,0x6c, 0x7,0x21,0x51, 0x5,0x4c,0x3b, 0x7,0x21,0x55, + 0x7,0x21,0x52, 0x5,0x4c,0x39, 0x7,0x21,0x58, 0x7,0x21,0x4a, + 0x5,0x4c,0x40, 0x5,0x4c,0x46, 0x5,0x4c,0x3d, 0x7,0x21,0x4f, + 0x5,0x4c,0x3e, 0x7,0x21,0x57, 0x7,0x21,0x50, 0x5,0x4c,0x36, + 0x7,0x21,0x4b, 0x5,0x4c,0x3f, 0x7,0x21,0x56, 0x7,0x21,0x59, + 0x5,0x4c,0x41, 0x4,0x49,0x2f, 0x7,0x21,0x5b, 0x5,0x4c,0x3a, + 0x7,0x21,0x48, 0x5,0x4c,0x38, 0x5,0x5b,0x27, 0x7,0x21,0x5a, + 0x4,0x49,0x2b, 0x7,0x21,0x54, 0x5,0x45,0x23, 0x7,0x21,0x53, + 0x7,0x21,0x49, 0x7,0x21,0x47, 0x7,0x21,0x62, 0x7,0x21,0x5c, + 0xf,0x4d,0x7a, 0x7,0x21,0x5e, 0x5,0x4c,0x42, 0x7,0x21,0x61, + 0x7,0x2c,0x61, 0x5,0x4c,0x37, 0x4,0x49,0x32, 0x5,0x4c,0x47, + 0xf,0x4d,0x6f, 0xf,0x4d,0x70, 0xf,0x4d,0x71, 0xf,0x4d,0x72, + 0xf,0x4d,0x73, 0xf,0x4d,0x74, 0xf,0x4d,0x75, 0xf,0x4d,0x76, + 0xf,0x4d,0x78, 0xf,0x4d,0x79, 0x5,0x4c,0x44, 0x7,0x21,0x5f, + 0x7,0x26,0x2b, 0x7,0x21,0x5d, 0x7,0x21,0x4d, 0x7,0x21,0x4c, + 0x5,0x4c,0x3c, 0x5,0x4c,0x43, 0x7,0x2c,0x6a, 0x4,0x4f,0x6e, + 0x5,0x53,0x74, 0x7,0x2c,0x5c, 0x5,0x53,0x72, 0x7,0x2c,0x68, + 0x4,0x4f,0x72, 0x5,0x53,0x6a, 0x5,0x53,0x78, 0x7,0x2c,0x60, + 0x4,0x4f,0x68, 0x4,0x4f,0x73, 0x4,0x4f,0x66, 0x5,0x53,0x71, + 0x4,0x4f,0x70, 0x5,0x53,0x6f, 0x5,0x53,0x68, 0x7,0x2c,0x6b, + 0x7,0x2c,0x5b, 0x7,0x2c,0x64, 0x5,0x53,0x6e, 0x7,0x2c,0x5f, + 0x5,0x53,0x6c, 0x5,0x53,0x67, 0x5,0x53,0x75, 0x5,0x53,0x70, + 0x5,0x53,0x73, 0x7,0x2c,0x59, 0x5,0x53,0x6b, 0x5,0x53,0x69, + 0x7,0x2c,0x67, 0x7,0x2c,0x58, 0x7,0x2c,0x57, 0xf,0x4d,0x77, + 0x4,0x4f,0x69, 0x4,0x4f,0x74, 0x5,0x53,0x77, 0x7,0x2c,0x66, + 0xf,0x53,0x5c, 0xf,0x53,0x5e, 0xf,0x53,0x5f, 0xf,0x53,0x60, + 0xf,0x53,0x61, 0xf,0x53,0x62, 0xf,0x53,0x63, 0xf,0x53,0x64, + 0xf,0x53,0x65, 0xf,0x53,0x67, 0xf,0x53,0x68, 0xf,0x53,0x69, + 0xf,0x53,0x6a, 0xf,0x53,0x6b, 0xf,0x53,0x6c, 0xf,0x53,0x6d, + 0xf,0x53,0x6e, 0xf,0x53,0x6f, 0x7,0x2c,0x5e, 0x7,0x2c,0x5d, + 0x7,0x2c,0x62, 0x7,0x2c,0x69, 0x5,0x53,0x6d, 0xf,0x55,0x74, + 0x5,0x53,0x76, 0x4,0x55,0x7a, 0x5,0x5b,0x26, 0x5,0x5b,0x21, + 0x7,0x37,0x2d, 0x7,0x37,0x2a, 0x7,0x37,0x34, 0x7,0x37,0x35, + 0x5,0x5b,0x23, 0x5,0x5b,0x2b, 0x4,0x55,0x71, 0x4,0x55,0x76, + 0x5,0x5b,0x28, 0x4,0x55,0x77, 0x7,0x37,0x2b, 0x5,0x5b,0x29, + 0x4,0x55,0x79, 0x7,0x37,0x31, 0x7,0x37,0x2f, 0x7,0x37,0x2e, + 0x5,0x5b,0x24, 0x4,0x55,0x75, 0x7,0x37,0x32, 0x7,0x37,0x39, + 0xf,0x59,0x59, 0xf,0x59,0x5a, 0xf,0x59,0x5e, 0xf,0x59,0x5f, + 0xf,0x59,0x60, 0xf,0x59,0x61, 0xf,0x59,0x62, 0x7,0x37,0x38, + 0x7,0x37,0x30, 0x7,0x37,0x36, 0x7,0x37,0x33, 0x7,0x37,0x2c, + 0x5,0x5b,0x2a, 0x5,0x5b,0x22, 0x4,0x5a,0x74, 0x7,0x3f,0x29, + 0x7,0x3f,0x2f, 0x4,0x5a,0x73, 0x5,0x61,0x3e, 0x7,0x3f,0x2b, + 0x4,0x5a,0x71, 0x4,0x5a,0x76, 0x5,0x61,0x46, 0x4,0x5a,0x77, + 0x5,0x67,0x58, 0x5,0x61,0x3d, 0x5,0x61,0x44, 0x5,0x61,0x43, + 0x4,0x5a,0x78, 0x7,0x3f,0x2a, 0x4,0x5a,0x75, 0x4,0x5a,0x79, + 0x4,0x5a,0x72, 0x7,0x3f,0x2e, 0x5,0x61,0x41, 0x7,0x3f,0x27, + 0x7,0x3f,0x2d, 0x7,0x3f,0x28, 0x7,0x3f,0x26, 0x7,0x3f,0x2c, + 0x5,0x61,0x42, 0xf,0x59,0x5b, 0x7,0x3f,0x25, 0xf,0x5e,0x3c, + 0xf,0x5e,0x3d, 0xf,0x5e,0x3e, 0xf,0x5e,0x3f, 0xf,0x5e,0x40, + 0xf,0x5e,0x43, 0xf,0x5e,0x44, 0xf,0x5e,0x45, 0x5,0x61,0x3f, + 0xf,0x5e,0x4a, 0x7,0x46,0x34, 0x4,0x5f,0x4e, 0x5,0x5b,0x25, + 0x7,0x46,0x3b, 0x7,0x46,0x39, 0x7,0x46,0x37, 0x5,0x67,0x5a, + 0x5,0x67,0x5b, 0x4,0x5f,0x50, 0x5,0x67,0x57, 0x7,0x46,0x3c, + 0x7,0x46,0x3a, 0x7,0x46,0x33, 0x7,0x46,0x35, 0x7,0x46,0x38, + 0x4,0x5f,0x4f, 0xf,0x5e,0x46, 0x5,0x67,0x5c, 0xf,0x62,0x22, + 0xf,0x62,0x23, 0xf,0x62,0x24, 0xf,0x62,0x25, 0xf,0x62,0x26, + 0x7,0x46,0x36, 0x7,0x47,0x6e, 0x7,0x46,0x3d, 0x5,0x6b,0x74, + 0x5,0x6b,0x75, 0x5,0x6b,0x6f, 0x5,0x6b,0x71, 0x5,0x6b,0x70, + 0x7,0x4d,0x47, 0x7,0x4d,0x49, 0x7,0x4d,0x4b, 0x7,0x4d,0x48, + 0x7,0x4d,0x46, 0x7,0x4d,0x4a, 0xf,0x64,0x7d, 0xf,0x64,0x7e, + 0xf,0x65,0x21, 0x7,0x4d,0x4c, 0x5,0x6b,0x72, 0x7,0x52,0x7b, + 0x5,0x6f,0x71, 0x5,0x6f,0x6f, 0x4,0x66,0x35, 0x5,0x6f,0x6e, + 0x7,0x52,0x7a, 0x5,0x6f,0x6d, 0x7,0x52,0x7e, 0x5,0x6f,0x70, + 0x7,0x52,0x7d, 0x4,0x66,0x33, 0xf,0x67,0x47, 0xf,0x67,0x48, + 0x5,0x6f,0x6c, 0x7,0x52,0x7c, 0x7,0x57,0x59, 0x7,0x57,0x5a, + 0x5,0x73,0x33, 0x7,0x57,0x55, 0x7,0x57,0x56, 0x7,0x57,0x57, + 0x7,0x57,0x54, 0x7,0x57,0x52, 0x7,0x57,0x53, 0xf,0x69,0x3c, + 0x4,0x68,0x64, 0x7,0x57,0x58, 0x7,0x5b,0x49, 0x7,0x5b,0x4a, + 0xf,0x6a,0x4d, 0x7,0x5b,0x48, 0x7,0x5b,0x47, 0x5,0x77,0x55, + 0x5,0x77,0x56, 0x4,0x6b,0x66, 0x7,0x5e,0x53, 0x7,0x5e,0x55, + 0x7,0x5e,0x54, 0x7,0x5e,0x56, 0xf,0x6b,0x43, 0x5,0x75,0x67, + 0x5,0x79,0x23, 0x4,0x6c,0x6d, 0xf,0x6c,0x22, 0xf,0x6c,0x23, + 0x7,0x60,0x6b, 0x7,0x62,0x32, 0x7,0x62,0x31, 0x7,0x62,0x34, + 0x7,0x62,0x30, 0x7,0x62,0x33, 0xf,0x6c,0x79, 0xf,0x6c,0x7a, + 0x6,0x21,0x65, 0x6,0x21,0x66, 0xf,0x21,0x37, 0x4,0x21,0x6e, + 0x6,0x24,0x32, 0x6,0x24,0x30, 0x5,0x22,0x49, 0xf,0x22,0x35, + 0x6,0x24,0x31, 0x6,0x24,0x2f, 0x5,0x22,0x48, 0x6,0x26,0x54, + 0x6,0x2f,0x5c, 0x6,0x2a,0x3e, 0x6,0x26,0x58, 0x6,0x26,0x56, + 0xf,0x23,0x4f, 0xf,0x23,0x51, 0x6,0x26,0x57, 0x6,0x26,0x59, + 0x6,0x26,0x5c, 0x6,0x26,0x5a, 0x6,0x26,0x51, 0x6,0x26,0x55, + 0x6,0x26,0x52, 0x6,0x26,0x53, 0x6,0x26,0x5b, 0x5,0x25,0x55, + 0x6,0x2a,0x43, 0x6,0x2a,0x40, 0x6,0x2a,0x41, 0x6,0x2a,0x42, + 0x6,0x2d,0x34, 0x6,0x2a,0x3f, 0xf,0x26,0x24, 0x5,0x25,0x54, + 0x5,0x28,0x54, 0x5,0x28,0x56, 0x6,0x2f,0x60, 0x6,0x2f,0x5f, + 0x5,0x28,0x55, 0x6,0x2f,0x5b, 0x6,0x2f,0x5e, 0x6,0x2f,0x5d, + 0x5,0x2c,0x5c, 0x6,0x36,0x2d, 0x6,0x36,0x2a, 0x6,0x36,0x2c, + 0x5,0x2c,0x5b, 0x6,0x36,0x2b, 0x5,0x2c,0x5d, 0x5,0x31,0x56, + 0x6,0x3e,0x25, 0x5,0x31,0x57, 0x6,0x3e,0x24, 0x6,0x3e,0x23, + 0x6,0x3e,0x22, 0x5,0x31,0x54, 0x6,0x3e,0x26, 0x5,0x37,0x33, + 0x6,0x47,0x40, 0x6,0x47,0x41, 0x5,0x37,0x31, 0x5,0x31,0x55, + 0xf,0x39,0x72, 0xf,0x39,0x73, 0xf,0x39,0x74, 0x6,0x47,0x42, + 0x5,0x37,0x32, 0x5,0x3e,0x40, 0x6,0x51,0x45, 0x5,0x3e,0x41, + 0x6,0x51,0x47, 0x6,0x51,0x48, 0x5,0x3e,0x42, 0x6,0x51,0x46, + 0xf,0x40,0x65, 0x6,0x5b,0x54, 0x6,0x5b,0x58, 0x5,0x45,0x24, + 0x6,0x5b,0x55, 0x6,0x5b,0x5a, 0x6,0x5b,0x56, 0xf,0x47,0x2e, + 0xf,0x47,0x2f, 0xf,0x47,0x30, 0x6,0x5b,0x57, 0x7,0x21,0x65, + 0x7,0x21,0x66, 0x7,0x21,0x64, 0xf,0x4d,0x7b, 0x4,0x4f,0x75, + 0xf,0x53,0x73, 0x7,0x37,0x3c, 0x7,0x37,0x3a, 0x7,0x37,0x3b, + 0x4,0x5f,0x51, 0x7,0x4d,0x4d, 0x7,0x53,0x22, 0x7,0x53,0x21, + 0x4,0x21,0x48, 0x5,0x21,0x44, 0x6,0x22,0x60, 0xf,0x21,0x51, + 0xf,0x21,0x52, 0x6,0x22,0x61, 0x6,0x24,0x35, 0xf,0x22,0x36, + 0xf,0x22,0x37, 0x6,0x24,0x34, 0x6,0x26,0x6a, 0x4,0x23,0x60, + 0x6,0x26,0x66, 0x6,0x26,0x62, 0x6,0x26,0x5e, 0x6,0x26,0x69, + 0x6,0x26,0x5d, 0x6,0x26,0x65, 0x6,0x26,0x67, 0xf,0x23,0x53, + 0xf,0x23,0x54, 0xf,0x23,0x56, 0xf,0x23,0x58, 0xf,0x23,0x5a, + 0x6,0x26,0x60, 0x6,0x26,0x63, 0x6,0x26,0x68, 0x6,0x26,0x64, + 0x6,0x26,0x61, 0x6,0x26,0x5f, 0x5,0x23,0x5e, 0xf,0x23,0x59, + 0x5,0x23,0x5d, 0x5,0x23,0x5f, 0x5,0x23,0x60, 0x5,0x23,0x61, + 0x4,0x25,0x6a, 0x6,0x2a,0x4f, 0x6,0x2a,0x47, 0x6,0x2a,0x4c, + 0x6,0x2a,0x46, 0x4,0x25,0x67, 0x6,0x2a,0x4a, 0x4,0x25,0x6c, + 0x6,0x2a,0x48, 0x5,0x25,0x56, 0x6,0x2a,0x51, 0x6,0x26,0x41, + 0x6,0x2a,0x49, 0xf,0x26,0x26, 0xf,0x26,0x27, 0xf,0x26,0x28, + 0xf,0x26,0x29, 0xf,0x26,0x2a, 0xf,0x26,0x30, 0xf,0x26,0x31, + 0xf,0x26,0x2c, 0xf,0x26,0x2b, 0x4,0x25,0x6b, 0xf,0x26,0x2f, + 0xf,0x26,0x2e, 0x6,0x2a,0x50, 0x6,0x2a,0x4b, 0x6,0x2a,0x4d, + 0x6,0x2a,0x4e, 0xf,0x26,0x32, 0xf,0x26,0x25, 0x6,0x2a,0x45, + 0x6,0x2a,0x44, 0x5,0x25,0x57, 0x5,0x28,0x5b, 0x6,0x2f,0x62, + 0x5,0x28,0x57, 0x6,0x2f,0x64, 0x6,0x2f,0x61, 0x5,0x28,0x58, + 0x4,0x28,0x5f, 0x6,0x2f,0x6b, 0x6,0x2f,0x63, 0xf,0x29,0x7a, + 0xf,0x29,0x68, 0xf,0x29,0x69, 0xf,0x29,0x6b, 0xf,0x29,0x6c, + 0xf,0x29,0x6d, 0xf,0x29,0x6e, 0xf,0x29,0x6f, 0xf,0x29,0x70, + 0xf,0x29,0x72, 0xf,0x29,0x73, 0xf,0x29,0x75, 0xf,0x29,0x76, + 0xf,0x29,0x77, 0xf,0x29,0x78, 0xf,0x29,0x79, 0xf,0x29,0x7b, + 0xf,0x29,0x7c, 0xf,0x29,0x7d, 0x6,0x2f,0x6a, 0x6,0x2f,0x6c, + 0x6,0x34,0x31, 0x6,0x2f,0x67, 0x6,0x2f,0x68, 0x6,0x2f,0x66, + 0xf,0x29,0x74, 0x5,0x28,0x5d, 0x5,0x28,0x5a, 0x5,0x28,0x5e, + 0x5,0x28,0x5c, 0x5,0x28,0x59, 0x5,0x2c,0x5e, 0x4,0x2c,0x32, + 0x6,0x36,0x34, 0x4,0x2c,0x30, 0x4,0x2c,0x34, 0x6,0x36,0x32, + 0x6,0x36,0x3c, 0x6,0x36,0x36, 0x6,0x36,0x3d, 0x6,0x36,0x3e, + 0x6,0x36,0x31, 0x6,0x36,0x2e, 0x6,0x36,0x3a, 0x6,0x36,0x2f, + 0x6,0x36,0x40, 0xf,0x2e,0x55, 0xf,0x2e,0x56, 0xf,0x2e,0x57, + 0xf,0x2e,0x58, 0xf,0x2e,0x59, 0xf,0x2e,0x5a, 0xf,0x2e,0x5b, + 0xf,0x2e,0x5e, 0xf,0x2e,0x5f, 0xf,0x2e,0x60, 0x6,0x36,0x30, + 0x6,0x36,0x3f, 0x6,0x36,0x37, 0x6,0x36,0x38, 0x6,0x36,0x39, + 0x5,0x2c,0x60, 0x6,0x36,0x3b, 0xf,0x2e,0x5d, 0xf,0x2e,0x61, + 0x6,0x36,0x33, 0x5,0x2c,0x5f, 0x5,0x2c,0x62, 0x4,0x30,0x7d, + 0x6,0x3e,0x27, 0x4,0x30,0x7c, 0x5,0x31,0x5d, 0x6,0x3e,0x34, + 0x6,0x3e,0x2d, 0x5,0x31,0x5b, 0x6,0x3e,0x2a, 0x5,0x2c,0x61, + 0x6,0x3e,0x33, 0x6,0x3e,0x30, 0x5,0x31,0x5a, 0x4,0x31,0x22, + 0x4,0x31,0x23, 0xf,0x33,0x4f, 0xf,0x33,0x5b, 0x6,0x3e,0x2e, + 0x6,0x3e,0x2f, 0xf,0x33,0x4e, 0xf,0x33,0x50, 0xf,0x33,0x51, + 0xf,0x33,0x52, 0xf,0x33,0x53, 0xf,0x33,0x54, 0xf,0x33,0x55, + 0xf,0x33,0x56, 0xf,0x33,0x58, 0xf,0x33,0x59, 0xf,0x33,0x5a, + 0xf,0x33,0x5e, 0xf,0x33,0x5f, 0xf,0x33,0x60, 0xf,0x33,0x61, + 0x5,0x31,0x5c, 0x6,0x3e,0x31, 0x6,0x3e,0x35, 0x4,0x30,0x7e, + 0x6,0x3e,0x28, 0x6,0x3e,0x29, 0x5,0x31,0x58, 0x5,0x31,0x59, + 0x3,0x3a,0x4f, 0x6,0x51,0x4e, 0x4,0x36,0x72, 0x6,0x47,0x47, + 0x4,0x36,0x6a, 0x6,0x47,0x45, 0x4,0x36,0x70, 0x4,0x36,0x6c, + 0x6,0x47,0x4b, 0x6,0x47,0x50, 0x4,0x36,0x75, 0x6,0x47,0x44, + 0x6,0x47,0x46, 0x6,0x47,0x4d, 0x5,0x37,0x34, 0x6,0x3e,0x32, + 0x6,0x47,0x4f, 0x4,0x3c,0x5a, 0x5,0x37,0x39, 0x4,0x36,0x73, + 0x6,0x4f,0x6d, 0x5,0x37,0x38, 0xf,0x39,0x76, 0xf,0x39,0x78, + 0xf,0x39,0x79, 0xf,0x39,0x7a, 0xf,0x39,0x7b, 0xf,0x39,0x7c, + 0xf,0x3a,0x21, 0xf,0x3a,0x22, 0xf,0x3a,0x23, 0xf,0x3a,0x24, + 0xf,0x3a,0x25, 0xf,0x3a,0x26, 0x6,0x47,0x51, 0x6,0x47,0x4a, + 0x6,0x47,0x49, 0x4,0x36,0x74, 0x6,0x47,0x4c, 0xf,0x39,0x75, + 0x5,0x37,0x37, 0x5,0x37,0x3a, 0x6,0x47,0x48, 0x5,0x37,0x35, + 0x5,0x37,0x36, 0x5,0x37,0x3b, 0x5,0x3e,0x46, 0x6,0x51,0x56, + 0x6,0x51,0x4b, 0x6,0x51,0x55, 0x5,0x3e,0x4d, 0x4,0x3c,0x54, + 0x6,0x5b,0x62, 0x6,0x51,0x52, 0x5,0x3e,0x4c, 0x6,0x51,0x51, + 0x5,0x3e,0x44, 0x5,0x3e,0x4b, 0x5,0x3e,0x43, 0x6,0x51,0x54, + 0x6,0x51,0x50, 0x5,0x3e,0x49, 0x5,0x3e,0x4a, 0x4,0x3c,0x55, + 0x5,0x3e,0x47, 0x6,0x51,0x49, 0x6,0x51,0x4c, 0xf,0x39,0x77, + 0x6,0x51,0x53, 0x6,0x51,0x4d, 0xf,0x40,0x66, 0xf,0x40,0x67, + 0xf,0x40,0x68, 0xf,0x40,0x6a, 0xf,0x40,0x6b, 0xf,0x40,0x6c, + 0xf,0x40,0x6d, 0xf,0x40,0x6e, 0xf,0x40,0x6f, 0xf,0x40,0x70, + 0xf,0x40,0x71, 0xf,0x40,0x72, 0xf,0x40,0x73, 0x6,0x51,0x4f, + 0x5,0x3e,0x4e, 0x5,0x3e,0x48, 0x5,0x3e,0x45, 0x5,0x45,0x29, + 0x5,0x45,0x28, 0x5,0x45,0x27, 0x6,0x5b,0x5c, 0x4,0x42,0x5c, + 0x6,0x5b,0x64, 0x6,0x5b,0x66, 0x6,0x5b,0x61, 0x5,0x45,0x2a, + 0x6,0x5b,0x60, 0x5,0x45,0x26, 0x6,0x5b,0x67, 0xf,0x47,0x32, + 0xf,0x47,0x33, 0xf,0x47,0x34, 0xf,0x47,0x35, 0xf,0x47,0x36, + 0xf,0x47,0x37, 0xf,0x47,0x39, 0xf,0x47,0x3a, 0xf,0x47,0x3b, + 0xf,0x47,0x3c, 0x6,0x5b,0x5d, 0xf,0x47,0x38, 0x6,0x5b,0x6b, + 0x6,0x5b,0x63, 0x6,0x5b,0x53, 0xf,0x47,0x31, 0x4,0x42,0x5a, + 0x6,0x5b,0x65, 0x6,0x5b,0x5e, 0x5,0x45,0x25, 0x5,0x45,0x2b, + 0x7,0x21,0x72, 0x4,0x49,0x34, 0x4,0x49,0x35, 0x7,0x21,0x6f, + 0x4,0x49,0x36, 0x5,0x4c,0x4b, 0x5,0x4c,0x4c, 0x7,0x21,0x6b, + 0x7,0x21,0x78, 0x4,0x49,0x37, 0x7,0x21,0x77, 0x7,0x21,0x74, + 0xf,0x4e,0x21, 0x5,0x4c,0x4d, 0x5,0x4c,0x4f, 0x7,0x21,0x67, + 0x7,0x21,0x75, 0xf,0x4d,0x7c, 0xf,0x4d,0x7d, 0xf,0x4e,0x26, + 0xf,0x4e,0x27, 0xf,0x4e,0x28, 0xf,0x4e,0x29, 0xf,0x4e,0x2a, + 0xf,0x4e,0x2b, 0xf,0x4e,0x2d, 0x7,0x21,0x6c, 0x7,0x21,0x6d, + 0x7,0x21,0x6e, 0x5,0x4c,0x71, 0x7,0x21,0x73, 0x7,0x21,0x71, + 0x7,0x21,0x69, 0xf,0x4d,0x7e, 0xf,0x4e,0x24, 0xf,0x4e,0x23, + 0x5,0x4c,0x4e, 0x5,0x4c,0x4a, 0x5,0x4c,0x48, 0x7,0x21,0x68, + 0x5,0x4c,0x49, 0x7,0x2c,0x6f, 0x7,0x2c,0x71, 0x7,0x2c,0x6c, + 0x4,0x4f,0x77, 0x4,0x4f,0x7a, 0x4,0x4f,0x79, 0x7,0x2c,0x6d, + 0x7,0x2c,0x70, 0xf,0x4e,0x2c, 0xf,0x53,0x74, 0xf,0x53,0x76, + 0xf,0x53,0x78, 0x5,0x53,0x7a, 0x7,0x2c,0x72, 0x5,0x53,0x7b, + 0x5,0x53,0x79, 0x7,0x34,0x6f, 0x7,0x2c,0x73, 0x7,0x2c,0x6e, + 0xf,0x53,0x77, 0x4,0x4f,0x76, 0x7,0x37,0x43, 0x4,0x55,0x7d, + 0x7,0x37,0x3d, 0x5,0x5b,0x2e, 0x7,0x37,0x3f, 0x7,0x37,0x44, + 0x7,0x37,0x42, 0x7,0x37,0x45, 0x5,0x5b,0x2c, 0x7,0x2c,0x74, + 0xf,0x59,0x64, 0xf,0x59,0x65, 0xf,0x59,0x66, 0xf,0x59,0x67, + 0xf,0x59,0x68, 0xf,0x59,0x69, 0xf,0x59,0x6a, 0xf,0x59,0x6b, + 0x7,0x3e,0x6c, 0x7,0x37,0x40, 0x7,0x37,0x41, 0x4,0x55,0x7e, + 0x5,0x5b,0x2f, 0x7,0x3f,0x34, 0x5,0x61,0x47, 0x7,0x37,0x3e, + 0x5,0x61,0x49, 0x7,0x3f,0x33, 0xf,0x5e,0x47, 0xf,0x5e,0x48, + 0xf,0x5e,0x49, 0xf,0x5e,0x4b, 0xf,0x5e,0x4d, 0xf,0x5e,0x4e, + 0x7,0x3f,0x31, 0x7,0x3f,0x32, 0x5,0x5b,0x30, 0x5,0x61,0x48, + 0xf,0x62,0x28, 0x5,0x61,0x4a, 0x7,0x46,0x42, 0x7,0x46,0x3f, + 0x5,0x67,0x5d, 0x7,0x46,0x47, 0x7,0x46,0x41, 0xf,0x5e,0x4c, + 0xf,0x62,0x27, 0x7,0x46,0x43, 0x7,0x46,0x46, 0x7,0x4a,0x3b, + 0x7,0x46,0x40, 0x7,0x3f,0x35, 0x4,0x63,0x33, 0xf,0x65,0x22, + 0xf,0x65,0x23, 0xf,0x65,0x24, 0xf,0x65,0x25, 0x7,0x4d,0x4e, + 0x5,0x6b,0x77, 0x7,0x53,0x28, 0x4,0x66,0x36, 0x7,0x53,0x24, + 0x7,0x53,0x23, 0x7,0x53,0x27, 0x7,0x53,0x25, 0x5,0x6f,0x74, + 0xf,0x67,0x49, 0xf,0x67,0x4a, 0xf,0x67,0x4c, 0x7,0x53,0x26, + 0xf,0x67,0x4b, 0x5,0x6f,0x72, 0x5,0x6f,0x73, 0x7,0x57,0x5b, + 0xf,0x69,0x3d, 0x5,0x73,0x34, 0x7,0x57,0x5d, 0x5,0x73,0x35, + 0x7,0x5b,0x4b, 0x7,0x57,0x5c, 0x7,0x5e,0x57, 0x5,0x77,0x57, + 0x5,0x7b,0x5f, 0x7,0x65,0x5a, 0x7,0x66,0x42, 0x7,0x66,0x4f, + 0x6,0x22,0x62, 0x6,0x2f,0x6d, 0x6,0x26,0x6b, 0x6,0x2a,0x52, + 0xf,0x29,0x7e, 0xf,0x2a,0x21, 0x5,0x2c,0x64, 0x6,0x36,0x42, + 0x6,0x2f,0x6e, 0x6,0x36,0x41, 0xf,0x2e,0x62, 0x5,0x2c,0x63, + 0x6,0x3e,0x36, 0xf,0x33,0x62, 0x6,0x47,0x52, 0x6,0x51,0x59, + 0x6,0x51,0x58, 0x6,0x5b,0x6a, 0x6,0x64,0x7a, 0x6,0x5b,0x68, + 0xf,0x47,0x3d, 0x6,0x5b,0x69, 0x7,0x21,0x7a, 0x7,0x21,0x79, + 0x7,0x2c,0x75, 0x7,0x3f,0x36, 0x7,0x43,0x3f, 0xf,0x5e,0x4f, + 0x7,0x3f,0x37, 0x7,0x46,0x48, 0x7,0x46,0x49, 0x7,0x48,0x3b, + 0x7,0x57,0x5e, 0x5,0x21,0x2f, 0x6,0x22,0x63, 0x6,0x24,0x37, + 0x6,0x24,0x36, 0x6,0x26,0x6c, 0xf,0x23,0x5c, 0x6,0x36,0x43, + 0x6,0x3e,0x37, 0x6,0x3e,0x38, 0x6,0x51,0x5a, 0x6,0x24,0x39, + 0x6,0x24,0x38, 0x5,0x23,0x64, 0x5,0x23,0x63, 0x4,0x25,0x6f, + 0x6,0x2a,0x53, 0xf,0x26,0x34, 0xf,0x2e,0x63, 0x5,0x31,0x5e, + 0x6,0x3e,0x39, 0x6,0x3e,0x3c, 0x5,0x2c,0x65, 0x6,0x3e,0x3b, + 0x6,0x3e,0x3a, 0x5,0x3e,0x4f, 0x6,0x51,0x5c, 0xf,0x40,0x74, + 0x6,0x5b,0x6c, 0xf,0x47,0x3e, 0x6,0x5b,0x6d, 0x5,0x4c,0x50, + 0xf,0x4e,0x2f, 0xf,0x53,0x79, 0x7,0x2c,0x76, 0x7,0x2c,0x77, + 0x7,0x37,0x46, 0x7,0x46,0x4a, 0x7,0x3f,0x3a, 0x7,0x3f,0x38, + 0x7,0x3f,0x39, 0x7,0x46,0x4b, 0x7,0x4d,0x4f, 0x6,0x22,0x64, + 0x6,0x22,0x65, 0x6,0x24,0x3a, 0x6,0x26,0x6e, 0x6,0x26,0x6d, + 0x6,0x2a,0x54, 0xf,0x25,0x42, 0x5,0x28,0x5f, 0x5,0x2c,0x68, + 0x4,0x2c,0x35, 0x5,0x2c,0x67, 0x6,0x36,0x46, 0x6,0x36,0x45, + 0xf,0x2e,0x64, 0xf,0x2e,0x65, 0x6,0x36,0x47, 0x5,0x2c,0x69, + 0x4,0x31,0x24, 0x5,0x31,0x61, 0x6,0x3e,0x3d, 0x5,0x31,0x5f, + 0x5,0x31,0x60, 0x5,0x31,0x62, 0xf,0x33,0x63, 0x6,0x47,0x54, + 0x5,0x37,0x3e, 0x5,0x37,0x42, 0x5,0x37,0x40, 0x5,0x37,0x41, + 0xf,0x3a,0x27, 0x5,0x3e,0x50, 0x6,0x51,0x5d, 0x5,0x3e,0x52, + 0x5,0x3e,0x51, 0x6,0x51,0x5f, 0x4,0x42,0x61, 0x6,0x5b,0x6f, + 0x6,0x5b,0x70, 0x6,0x5b,0x6e, 0x5,0x45,0x2c, 0x5,0x45,0x2e, + 0x7,0x21,0x7b, 0x5,0x4c,0x51, 0x7,0x3f,0x3b, 0x5,0x5b,0x31, + 0x5,0x5b,0x32, 0x7,0x46,0x4c, 0x6,0x21,0x67, 0x6,0x21,0x68, + 0xf,0x21,0x38, 0x6,0x22,0x66, 0xf,0x21,0x53, 0xf,0x21,0x54, + 0x5,0x21,0x76, 0x6,0x24,0x3c, 0x4,0x22,0x54, 0x6,0x24,0x3f, + 0x6,0x24,0x40, 0x6,0x24,0x3e, 0x6,0x24,0x3d, 0xf,0x21,0x6b, + 0x4,0x23,0x63, 0x4,0x23,0x64, 0x4,0x23,0x66, 0xf,0x23,0x5d, + 0xf,0x23,0x5e, 0xf,0x23,0x5f, 0xf,0x23,0x60, 0xf,0x23,0x61, + 0xf,0x23,0x62, 0xf,0x23,0x63, 0x6,0x26,0x70, 0x6,0x26,0x6f, + 0x4,0x25,0x76, 0x5,0x25,0x5a, 0x4,0x25,0x74, 0x6,0x2a,0x55, + 0x6,0x2a,0x56, 0x4,0x28,0x63, 0x6,0x2a,0x5c, 0x6,0x2a,0x58, + 0x6,0x2a,0x59, 0xf,0x26,0x36, 0xf,0x26,0x37, 0x6,0x2a,0x5a, + 0x6,0x2a,0x5b, 0x6,0x2a,0x5d, 0x4,0x25,0x79, 0x6,0x2a,0x57, + 0x6,0x29,0x39, 0x4,0x28,0x64, 0x4,0x28,0x62, 0x5,0x28,0x61, + 0x5,0x28,0x62, 0x5,0x28,0x60, 0xf,0x2a,0x23, 0xf,0x2a,0x24, + 0xf,0x2a,0x25, 0xf,0x2a,0x26, 0xf,0x2a,0x28, 0xf,0x2a,0x29, + 0xf,0x2a,0x27, 0xf,0x2a,0x22, 0x5,0x2c,0x6c, 0x6,0x36,0x48, + 0x6,0x36,0x4b, 0x5,0x2c,0x6a, 0x5,0x2c,0x6d, 0xf,0x2e,0x67, + 0xf,0x2e,0x68, 0xf,0x2e,0x69, 0x6,0x36,0x4a, 0x4,0x2c,0x37, + 0x5,0x2c,0x6b, 0x5,0x31,0x64, 0xf,0x2e,0x66, 0x4,0x2c,0x36, + 0x6,0x3e,0x41, 0x6,0x3e,0x44, 0x3,0x34,0x7e, 0x6,0x3e,0x3e, + 0x6,0x3e,0x43, 0x6,0x3e,0x40, 0x6,0x3e,0x45, 0x6,0x3e,0x3f, + 0xf,0x33,0x64, 0xf,0x33,0x65, 0x4,0x31,0x27, 0x5,0x31,0x63, + 0x4,0x3c,0x5e, 0x6,0x47,0x58, 0x6,0x47,0x5b, 0x6,0x47,0x5d, + 0x6,0x47,0x5a, 0xf,0x3a,0x28, 0x6,0x47,0x55, 0x6,0x47,0x5c, + 0x5,0x37,0x43, 0x6,0x47,0x59, 0x4,0x36,0x7a, 0x4,0x36,0x78, + 0x5,0x37,0x44, 0x6,0x47,0x57, 0x6,0x51,0x60, 0x6,0x51,0x61, + 0x4,0x3c,0x5d, 0xf,0x40,0x76, 0x5,0x3e,0x53, 0x5,0x3e,0x54, + 0x5,0x3e,0x55, 0x6,0x5b,0x72, 0x4,0x42,0x63, 0x5,0x45,0x2f, + 0x4,0x42,0x62, 0xf,0x47,0x3f, 0xf,0x47,0x40, 0xf,0x47,0x41, + 0x6,0x5b,0x71, 0x5,0x45,0x30, 0x4,0x49,0x38, 0x7,0x22,0x22, + 0x7,0x21,0x7c, 0x7,0x22,0x21, 0x7,0x2c,0x7c, 0x7,0x21,0x7e, + 0x5,0x4c,0x53, 0xf,0x4e,0x31, 0xf,0x4e,0x32, 0x7,0x21,0x7d, + 0x4,0x42,0x64, 0x5,0x4c,0x52, 0x7,0x2c,0x7d, 0x5,0x53,0x7c, + 0x7,0x2c,0x78, 0x7,0x2c,0x79, 0x4,0x56,0x21, 0xf,0x53,0x7a, + 0x7,0x2c,0x7a, 0x7,0x37,0x48, 0x7,0x37,0x47, 0x5,0x5b,0x33, + 0x4,0x56,0x2e, 0x4,0x5a,0x7b, 0xf,0x62,0x29, 0x5,0x6b,0x78, + 0x7,0x53,0x29, 0xf,0x69,0x3e, 0x5,0x75,0x68, 0xf,0x6b,0x44, + 0x7,0x5e,0x58, 0xf,0x6c,0x5f, 0x5,0x21,0x62, 0xf,0x21,0x55, + 0xf,0x21,0x56, 0x6,0x24,0x41, 0x4,0x22,0x58, 0x6,0x24,0x42, + 0xf,0x22,0x39, 0xf,0x22,0x3a, 0xf,0x22,0x3b, 0xf,0x22,0x3c, + 0x4,0x22,0x57, 0x5,0x22,0x4b, 0x6,0x24,0x43, 0x5,0x22,0x4a, + 0x6,0x26,0x74, 0x4,0x23,0x68, 0x4,0x23,0x6b, 0xf,0x23,0x64, + 0xf,0x23,0x66, 0xf,0x23,0x68, 0xf,0x23,0x69, 0xf,0x23,0x6b, + 0xf,0x23,0x6c, 0xf,0x23,0x6d, 0xf,0x23,0x6e, 0xf,0x23,0x6f, + 0xf,0x23,0x65, 0x6,0x26,0x72, 0x6,0x26,0x73, 0x6,0x26,0x75, + 0x6,0x26,0x71, 0xf,0x23,0x6a, 0xf,0x23,0x67, 0x5,0x23,0x66, + 0x5,0x23,0x67, 0x5,0x23,0x65, 0x4,0x25,0x7c, 0x6,0x2a,0x61, + 0x6,0x2a,0x60, 0x5,0x25,0x60, 0x4,0x25,0x7a, 0x5,0x25,0x5e, + 0x4,0x25,0x7d, 0x5,0x25,0x5b, 0x5,0x25,0x5c, 0x4,0x25,0x7e, + 0xf,0x26,0x3a, 0xf,0x26,0x3b, 0xf,0x26,0x3e, 0xf,0x26,0x3f, + 0xf,0x26,0x40, 0xf,0x26,0x41, 0xf,0x26,0x42, 0xf,0x26,0x43, + 0xf,0x26,0x45, 0xf,0x26,0x46, 0xf,0x26,0x47, 0xf,0x26,0x48, + 0xf,0x26,0x49, 0x6,0x2a,0x5f, 0x6,0x2a,0x5e, 0xf,0x26,0x44, + 0xf,0x26,0x3c, 0xf,0x26,0x3d, 0x5,0x25,0x62, 0x5,0x25,0x5f, + 0x5,0x25,0x63, 0x5,0x25,0x61, 0x4,0x28,0x68, 0x5,0x28,0x64, + 0x6,0x2f,0x76, 0x6,0x2f,0x78, 0x6,0x2f,0x79, 0x4,0x28,0x65, + 0x4,0x28,0x6b, 0x5,0x28,0x66, 0x4,0x28,0x66, 0x5,0x28,0x63, + 0x6,0x2f,0x70, 0x6,0x2f,0x7b, 0x6,0x2f,0x74, 0x5,0x28,0x6b, + 0x6,0x2f,0x7e, 0xf,0x2a,0x2d, 0xf,0x2a,0x2e, 0xf,0x2a,0x2f, + 0xf,0x2a,0x30, 0xf,0x2a,0x31, 0xf,0x2a,0x32, 0xf,0x2a,0x33, + 0xf,0x2a,0x34, 0x6,0x2f,0x73, 0x6,0x2f,0x77, 0x4,0x28,0x6c, + 0x6,0x2f,0x75, 0x6,0x2f,0x7a, 0x6,0x2f,0x6f, 0x6,0x2f,0x7d, + 0x5,0x28,0x69, 0x4,0x28,0x6a, 0x5,0x28,0x6a, 0x5,0x28,0x67, + 0x6,0x2f,0x71, 0x6,0x2f,0x7c, 0x5,0x28,0x65, 0x5,0x28,0x68, + 0x6,0x2f,0x72, 0x3,0x30,0x53, 0x5,0x2c,0x70, 0x6,0x36,0x4f, + 0x5,0x2c,0x72, 0x5,0x2c,0x75, 0x5,0x2c,0x6f, 0x6,0x36,0x55, + 0x5,0x2c,0x6e, 0x6,0x36,0x56, 0x6,0x36,0x50, 0x6,0x36,0x51, + 0xf,0x2e,0x6c, 0xf,0x2e,0x6e, 0xf,0x2e,0x70, 0xf,0x2e,0x71, + 0xf,0x2e,0x73, 0xf,0x2e,0x74, 0xf,0x2e,0x75, 0xf,0x2e,0x76, + 0xf,0x2e,0x77, 0xf,0x2e,0x79, 0x6,0x36,0x54, 0x6,0x36,0x4e, + 0x5,0x2c,0x71, 0x6,0x36,0x53, 0x6,0x36,0x52, 0xf,0x2e,0x6f, + 0xf,0x2e,0x72, 0x5,0x2c,0x77, 0x5,0x2c,0x74, 0x5,0x2c,0x73, + 0x5,0x2c,0x76, 0x5,0x2c,0x78, 0x6,0x3e,0x4c, 0x6,0x3e,0x52, + 0x6,0x3e,0x46, 0x6,0x3e,0x47, 0x5,0x31,0x6a, 0x6,0x3e,0x48, + 0x6,0x3e,0x49, 0x6,0x3e,0x4f, 0x5,0x31,0x69, 0x5,0x31,0x6d, + 0x6,0x3e,0x4d, 0x4,0x31,0x2b, 0x6,0x3e,0x4e, 0x5,0x31,0x6b, + 0x6,0x3e,0x53, 0xf,0x33,0x68, 0xf,0x33,0x69, 0xf,0x33,0x6a, + 0xf,0x33,0x6b, 0xf,0x33,0x6c, 0xf,0x33,0x6d, 0xf,0x33,0x6e, + 0xf,0x33,0x6f, 0xf,0x33,0x71, 0xf,0x33,0x72, 0xf,0x33,0x74, + 0xf,0x33,0x75, 0xf,0x33,0x76, 0xf,0x33,0x77, 0xf,0x33,0x78, + 0xf,0x33,0x79, 0xf,0x33,0x7a, 0xf,0x33,0x7b, 0xf,0x33,0x7c, + 0xf,0x33,0x7d, 0xf,0x33,0x7e, 0xf,0x34,0x21, 0xf,0x34,0x22, + 0xf,0x34,0x23, 0xf,0x33,0x70, 0x6,0x3e,0x51, 0x4,0x31,0x2a, + 0x6,0x3e,0x4b, 0x6,0x3e,0x4a, 0x5,0x31,0x66, 0x5,0x31,0x67, + 0x5,0x31,0x68, 0x5,0x31,0x65, 0x4,0x36,0x7b, 0x6,0x47,0x62, + 0x4,0x36,0x7c, 0x5,0x37,0x5a, 0x6,0x47,0x5f, 0x4,0x37,0x21, + 0x5,0x37,0x48, 0x5,0x37,0x59, 0x6,0x47,0x64, 0x6,0x47,0x66, + 0x5,0x37,0x4f, 0x6,0x47,0x65, 0x6,0x47,0x60, 0x5,0x37,0x50, + 0x5,0x37,0x49, 0x5,0x37,0x57, 0x5,0x37,0x54, 0x5,0x37,0x47, + 0x5,0x37,0x4b, 0xf,0x3a,0x29, 0xf,0x3a,0x2b, 0xf,0x3a,0x2c, + 0xf,0x3a,0x2d, 0xf,0x3a,0x2e, 0xf,0x3a,0x2f, 0xf,0x3a,0x30, + 0xf,0x3a,0x32, 0xf,0x3a,0x33, 0xf,0x3a,0x34, 0xf,0x3a,0x36, + 0xf,0x3a,0x37, 0xf,0x3a,0x38, 0xf,0x3a,0x39, 0xf,0x3a,0x3a, + 0xf,0x3a,0x3e, 0xf,0x3a,0x3f, 0xf,0x3a,0x41, 0xf,0x3a,0x42, + 0xf,0x3a,0x43, 0xf,0x3a,0x44, 0xf,0x3a,0x45, 0xf,0x3a,0x3b, + 0x5,0x37,0x56, 0x6,0x47,0x63, 0x5,0x37,0x58, 0x6,0x47,0x5e, + 0xf,0x3a,0x3d, 0xf,0x3a,0x40, 0xf,0x3a,0x31, 0xf,0x3a,0x2a, + 0x5,0x37,0x45, 0x5,0x3e,0x56, 0x5,0x37,0x53, 0x5,0x37,0x4c, + 0x5,0x37,0x52, 0x5,0x37,0x51, 0x5,0x37,0x4a, 0x5,0x37,0x4d, + 0x5,0x37,0x55, 0x6,0x47,0x67, 0xf,0x33,0x67, 0x5,0x3e,0x5f, + 0x5,0x3e,0x5a, 0x5,0x3e,0x5d, 0x5,0x3e,0x57, 0x4,0x3c,0x65, + 0x5,0x3e,0x59, 0x6,0x51,0x63, 0x4,0x3c,0x62, 0x4,0x3c,0x60, + 0x6,0x51,0x67, 0x6,0x51,0x65, 0x6,0x5b,0x7c, 0x5,0x3e,0x5c, + 0x5,0x3e,0x5b, 0x6,0x51,0x66, 0xf,0x40,0x78, 0xf,0x40,0x79, + 0xf,0x40,0x7a, 0xf,0x40,0x7c, 0xf,0x40,0x7d, 0xf,0x40,0x7e, + 0xf,0x41,0x22, 0xf,0x41,0x23, 0x6,0x51,0x62, 0x6,0x51,0x64, + 0xf,0x40,0x77, 0x6,0x51,0x68, 0x5,0x3e,0x58, 0x5,0x3e,0x5e, + 0x5,0x3e,0x60, 0x6,0x51,0x6a, 0xf,0x41,0x21, 0x4,0x42,0x70, + 0x5,0x45,0x32, 0x4,0x42,0x6a, 0x6,0x5b,0x7b, 0x4,0x42,0x71, + 0x6,0x5b,0x73, 0x5,0x45,0x34, 0x7,0x22,0x29, 0x4,0x42,0x73, + 0x6,0x5b,0x75, 0xf,0x47,0x48, 0x4,0x42,0x6f, 0x5,0x45,0x37, + 0x4,0x42,0x6e, 0xf,0x47,0x47, 0xf,0x47,0x49, 0xf,0x47,0x4a, + 0xf,0x47,0x4b, 0xf,0x47,0x4c, 0xf,0x47,0x4d, 0xf,0x47,0x4e, + 0xf,0x47,0x4f, 0xf,0x47,0x50, 0xf,0x47,0x51, 0xf,0x47,0x52, + 0xf,0x47,0x54, 0x6,0x5b,0x74, 0x6,0x5b,0x78, 0x4,0x42,0x72, + 0x4,0x42,0x65, 0x6,0x5b,0x76, 0xf,0x47,0x53, 0x5,0x45,0x33, + 0x5,0x45,0x36, 0x5,0x45,0x35, 0x7,0x22,0x26, 0x5,0x45,0x31, + 0x6,0x5b,0x77, 0x5,0x4c,0x5b, 0x5,0x4c,0x59, 0x4,0x49,0x39, + 0x5,0x4c,0x56, 0x7,0x22,0x2f, 0x5,0x4c,0x57, 0x4,0x49,0x3f, + 0x4,0x49,0x3b, 0x7,0x22,0x2c, 0x4,0x49,0x3e, 0x7,0x22,0x25, + 0x6,0x5b,0x79, 0x7,0x22,0x24, 0xf,0x4e,0x3a, 0x7,0x37,0x51, + 0xf,0x47,0x45, 0x5,0x4c,0x54, 0x5,0x4c,0x5c, 0xf,0x4e,0x33, + 0xf,0x4e,0x34, 0xf,0x4e,0x35, 0xf,0x4e,0x36, 0xf,0x4e,0x37, + 0xf,0x4e,0x38, 0xf,0x4e,0x39, 0xf,0x4e,0x3b, 0xf,0x4e,0x3d, + 0xf,0x4e,0x3e, 0xf,0x4e,0x3f, 0xf,0x4e,0x40, 0xf,0x4e,0x41, + 0xf,0x4e,0x42, 0xf,0x4e,0x44, 0x6,0x5b,0x7a, 0x7,0x22,0x27, + 0x7,0x22,0x2e, 0x7,0x22,0x2d, 0x7,0x22,0x28, 0x7,0x22,0x23, + 0xf,0x4e,0x45, 0xf,0x4e,0x43, 0xf,0x4e,0x3c, 0x5,0x4c,0x5a, + 0x5,0x4c,0x55, 0x4,0x49,0x3d, 0x7,0x22,0x2a, 0x5,0x4c,0x58, + 0x7,0x22,0x2b, 0xf,0x54,0x25, 0x5,0x54,0x28, 0x5,0x54,0x23, + 0x7,0x2d,0x25, 0x7,0x2c,0x7e, 0x5,0x54,0x29, 0x5,0x54,0x26, + 0x7,0x2d,0x21, 0x4,0x4f,0x7e, 0x7,0x2d,0x28, 0x5,0x54,0x22, + 0x7,0x2d,0x2b, 0x5,0x53,0x7d, 0x7,0x2d,0x2a, 0x7,0x2d,0x2c, + 0xf,0x53,0x7b, 0xf,0x53,0x7c, 0xf,0x53,0x7d, 0xf,0x53,0x7e, + 0xf,0x54,0x22, 0xf,0x54,0x23, 0xf,0x54,0x24, 0xf,0x54,0x26, + 0xf,0x54,0x27, 0xf,0x54,0x2b, 0xf,0x54,0x2c, 0x5,0x53,0x7e, + 0x7,0x2d,0x26, 0x7,0x2d,0x27, 0x7,0x2d,0x23, 0x7,0x2d,0x22, + 0x7,0x2d,0x24, 0xf,0x54,0x21, 0xf,0x54,0x28, 0x5,0x54,0x27, + 0x5,0x54,0x21, 0x5,0x54,0x25, 0x7,0x2d,0x29, 0x7,0x37,0x4b, + 0x7,0x37,0x54, 0x7,0x37,0x4f, 0x4,0x4f,0x7d, 0x7,0x37,0x4d, + 0x4,0x56,0x23, 0x7,0x37,0x53, 0x7,0x37,0x4a, 0x5,0x5b,0x36, + 0x5,0x5b,0x34, 0x7,0x37,0x4c, 0x7,0x37,0x4e, 0x7,0x37,0x50, + 0x5,0x5b,0x35, 0x4,0x56,0x25, 0xf,0x59,0x6c, 0xf,0x59,0x6d, + 0xf,0x59,0x6e, 0xf,0x59,0x6f, 0xf,0x59,0x70, 0xf,0x59,0x71, + 0x7,0x37,0x52, 0x7,0x37,0x55, 0x7,0x37,0x49, 0x5,0x61,0x4b, + 0x4,0x5a,0x7c, 0x7,0x3f,0x3f, 0x5,0x61,0x4c, 0x5,0x61,0x4d, + 0x7,0x3f,0x3e, 0x7,0x3f,0x40, 0xf,0x5e,0x50, 0xf,0x5e,0x51, + 0xf,0x5e,0x52, 0xf,0x5e,0x54, 0x7,0x3f,0x3d, 0x7,0x3f,0x41, + 0xf,0x5e,0x53, 0x7,0x3f,0x3c, 0x5,0x67,0x5f, 0x4,0x5f,0x53, + 0x7,0x46,0x4d, 0x7,0x46,0x52, 0x7,0x46,0x50, 0xf,0x5e,0x55, + 0xf,0x62,0x2a, 0xf,0x62,0x2b, 0x7,0x46,0x4e, 0x5,0x67,0x61, + 0x5,0x67,0x60, 0xf,0x5f,0x73, 0x7,0x4d,0x51, 0x5,0x6b,0x79, + 0xf,0x65,0x26, 0x5,0x6b,0x7a, 0x5,0x6b,0x7b, 0x7,0x53,0x2a, + 0x5,0x6f,0x76, 0x7,0x53,0x2b, 0x5,0x6f,0x75, 0xf,0x67,0x4d, + 0xf,0x67,0x4e, 0x7,0x57,0x62, 0x5,0x73,0x36, 0x7,0x57,0x61, + 0x7,0x57,0x63, 0x7,0x57,0x5f, 0xf,0x69,0x3f, 0x7,0x57,0x60, + 0x7,0x57,0x64, 0xf,0x69,0x40, 0x5,0x75,0x69, 0x7,0x5b,0x4c, + 0x7,0x5e,0x5a, 0x7,0x5e,0x5b, 0xf,0x6b,0x45, 0x7,0x5e,0x59, + 0x7,0x5e,0x5c, 0xf,0x6c,0x24, 0x5,0x79,0x24, 0xf,0x6c,0x4a, + 0x7,0x63,0x4d, 0x5,0x7a,0x65, 0x4,0x21,0x33, 0x6,0x22,0x68, + 0x5,0x21,0x63, 0x6,0x22,0x69, 0xf,0x21,0x58, 0xf,0x21,0x57, + 0x6,0x24,0x45, 0x6,0x24,0x44, 0x6,0x26,0x76, 0x6,0x26,0x77, + 0x5,0x23,0x6a, 0x4,0x23,0x6c, 0xf,0x23,0x70, 0x5,0x23,0x69, + 0x4,0x28,0x6f, 0x6,0x30,0x24, 0x6,0x2a,0x63, 0x6,0x2a,0x62, + 0xf,0x26,0x4a, 0xf,0x26,0x4b, 0xf,0x26,0x4c, 0xf,0x26,0x4d, + 0xf,0x26,0x4f, 0x6,0x2a,0x64, 0xf,0x26,0x4e, 0x6,0x30,0x23, + 0x6,0x30,0x21, 0x6,0x30,0x26, 0x6,0x30,0x25, 0xf,0x2a,0x35, + 0xf,0x2a,0x36, 0xf,0x2a,0x37, 0x6,0x30,0x22, 0x6,0x36,0x59, + 0x5,0x2c,0x79, 0x6,0x36,0x58, 0xf,0x2e,0x7a, 0xf,0x2e,0x7b, + 0x5,0x2c,0x7a, 0xf,0x33,0x66, 0xf,0x34,0x24, 0xf,0x34,0x25, + 0xf,0x34,0x26, 0xf,0x34,0x27, 0x5,0x37,0x5c, 0x6,0x47,0x69, + 0x5,0x37,0x5b, 0x6,0x47,0x6a, 0xf,0x3a,0x47, 0x6,0x47,0x68, + 0xf,0x3a,0x46, 0x4,0x3c,0x66, 0x4,0x3c,0x68, 0x6,0x51,0x6d, + 0x5,0x3e,0x62, 0xf,0x41,0x25, 0xf,0x41,0x26, 0x6,0x51,0x6b, + 0x6,0x51,0x6c, 0x5,0x3e,0x61, 0x4,0x3c,0x69, 0x6,0x5b,0x7d, + 0xf,0x47,0x55, 0xf,0x47,0x56, 0x5,0x45,0x38, 0x4,0x49,0x41, + 0x4,0x49,0x42, 0xf,0x4e,0x46, 0x5,0x4c,0x5d, 0x7,0x2d,0x2f, + 0x7,0x2d,0x2e, 0x7,0x2d,0x31, 0x7,0x2d,0x32, 0x5,0x54,0x2a, + 0x7,0x2d,0x30, 0xf,0x54,0x2d, 0xf,0x54,0x2e, 0x7,0x37,0x56, + 0x7,0x4d,0x52, 0xf,0x62,0x2c, 0xf,0x62,0x2d, 0x5,0x6b,0x7c, + 0xf,0x6c,0x60, 0x6,0x21,0x69, 0x5,0x21,0x64, 0x6,0x24,0x46, + 0x6,0x24,0x49, 0x6,0x24,0x4a, 0x4,0x22,0x5a, 0xf,0x22,0x3d, + 0xf,0x22,0x3e, 0xf,0x22,0x3f, 0xf,0x22,0x40, 0xf,0x22,0x41, + 0x6,0x24,0x47, 0x6,0x26,0x7e, 0x6,0x26,0x7d, 0x4,0x23,0x6e, + 0x6,0x26,0x7b, 0x6,0x26,0x7c, 0xf,0x23,0x72, 0x5,0x25,0x65, + 0x5,0x25,0x64, 0x6,0x2a,0x66, 0x5,0x25,0x66, 0x6,0x2a,0x67, + 0x6,0x2a,0x68, 0xf,0x26,0x51, 0xf,0x26,0x52, 0xf,0x26,0x54, + 0xf,0x26,0x55, 0x6,0x2a,0x65, 0xf,0x26,0x53, 0x5,0x28,0x6c, + 0x6,0x30,0x28, 0x6,0x30,0x2a, 0x5,0x28,0x6d, 0x4,0x28,0x71, + 0x4,0x28,0x72, 0x4,0x28,0x73, 0x6,0x30,0x2b, 0x6,0x30,0x27, + 0x6,0x30,0x29, 0xf,0x2a,0x38, 0xf,0x2a,0x3a, 0xf,0x2a,0x3b, + 0xf,0x2a,0x3c, 0x6,0x30,0x2c, 0x6,0x30,0x2d, 0x4,0x2c,0x4a, + 0x6,0x36,0x61, 0x4,0x2c,0x45, 0x4,0x2c,0x44, 0x4,0x2c,0x43, + 0x4,0x2c,0x47, 0x6,0x36,0x64, 0x6,0x36,0x65, 0x6,0x36,0x5f, + 0x6,0x36,0x5e, 0x5,0x2c,0x7d, 0x5,0x2d,0x22, 0x6,0x36,0x5b, + 0x6,0x36,0x62, 0xf,0x2e,0x7c, 0xf,0x2e,0x7d, 0x6,0x36,0x60, + 0x6,0x36,0x63, 0x6,0x36,0x5a, 0x6,0x36,0x5c, 0x5,0x2d,0x21, + 0x5,0x2c,0x7e, 0x4,0x31,0x2d, 0x5,0x31,0x6f, 0x6,0x3e,0x57, + 0x6,0x3e,0x59, 0x6,0x3e,0x58, 0x6,0x3e,0x56, 0x6,0x3e,0x5b, + 0x5,0x31,0x70, 0xf,0x34,0x28, 0xf,0x34,0x29, 0xf,0x34,0x2a, + 0xf,0x34,0x2b, 0xf,0x34,0x2c, 0xf,0x34,0x2d, 0xf,0x34,0x2e, + 0xf,0x34,0x2f, 0x4,0x31,0x2f, 0x6,0x3e,0x5c, 0x5,0x31,0x6e, + 0x6,0x3e,0x55, 0x5,0x37,0x5e, 0x4,0x37,0x26, 0x5,0x37,0x61, + 0x6,0x47,0x70, 0x6,0x47,0x6b, 0x4,0x37,0x23, 0x5,0x37,0x5d, + 0x5,0x37,0x60, 0x6,0x47,0x6e, 0x4,0x37,0x25, 0x5,0x37,0x5f, + 0x6,0x47,0x6f, 0x6,0x47,0x6c, 0xf,0x3a,0x48, 0xf,0x3a,0x49, + 0xf,0x3a,0x4a, 0xf,0x3a,0x4b, 0xf,0x3a,0x4c, 0xf,0x3a,0x4d, + 0xf,0x3a,0x4e, 0xf,0x3a,0x4f, 0x6,0x47,0x6d, 0x5,0x37,0x62, + 0xf,0x3d,0x6c, 0x6,0x51,0x74, 0x6,0x51,0x70, 0x4,0x3c,0x6b, + 0x4,0x3c,0x70, 0x5,0x3e,0x63, 0x6,0x51,0x77, 0x5,0x3e,0x64, + 0x6,0x51,0x72, 0x6,0x51,0x71, 0x6,0x51,0x76, 0x4,0x3c,0x6d, + 0x6,0x51,0x73, 0x6,0x51,0x6f, 0x6,0x51,0x75, 0xf,0x41,0x27, + 0xf,0x41,0x28, 0xf,0x41,0x29, 0xf,0x41,0x2a, 0xf,0x41,0x2c, + 0xf,0x41,0x2d, 0xf,0x41,0x2e, 0x6,0x51,0x6e, 0x6,0x5b,0x7e, + 0x6,0x5c,0x27, 0x5,0x45,0x3c, 0x5,0x45,0x3a, 0x6,0x5c,0x24, + 0x6,0x5c,0x2c, 0x4,0x42,0x76, 0x6,0x5c,0x2e, 0x6,0x5c,0x2b, + 0x6,0x5c,0x26, 0x5,0x45,0x39, 0x7,0x22,0x33, 0xf,0x47,0x57, + 0xf,0x47,0x58, 0xf,0x47,0x59, 0xf,0x47,0x5a, 0x6,0x5c,0x28, + 0x6,0x5c,0x25, 0x6,0x5c,0x29, 0x6,0x5c,0x2d, 0x6,0x5c,0x21, + 0x6,0x5c,0x23, 0x5,0x45,0x3b, 0x6,0x5c,0x2a, 0xf,0x47,0x44, + 0x6,0x62,0x67, 0x7,0x22,0x30, 0x5,0x4c,0x5e, 0x4,0x49,0x47, + 0x7,0x22,0x37, 0x4,0x49,0x48, 0x7,0x22,0x35, 0x7,0x22,0x32, + 0xf,0x4e,0x47, 0xf,0x4e,0x48, 0xf,0x4e,0x49, 0xf,0x4e,0x4a, + 0xf,0x4e,0x4b, 0xf,0x4e,0x4c, 0xf,0x4e,0x4e, 0xf,0x4e,0x4f, + 0x7,0x22,0x38, 0x7,0x22,0x36, 0xf,0x4e,0x4d, 0x5,0x4c,0x61, + 0x5,0x4c,0x5f, 0x7,0x22,0x31, 0x5,0x4c,0x60, 0x7,0x2d,0x35, + 0x7,0x2d,0x37, 0x5,0x54,0x2c, 0x4,0x50,0x22, 0x5,0x54,0x2d, + 0x5,0x54,0x2b, 0x7,0x2d,0x36, 0x7,0x2d,0x33, 0x7,0x2d,0x34, + 0xf,0x54,0x2f, 0xf,0x54,0x30, 0xf,0x54,0x31, 0xf,0x54,0x33, + 0xf,0x54,0x34, 0xf,0x54,0x35, 0xf,0x54,0x36, 0xf,0x54,0x37, + 0x7,0x37,0x59, 0x7,0x37,0x57, 0x5,0x5b,0x38, 0xf,0x59,0x72, + 0xf,0x59,0x73, 0xf,0x59,0x74, 0xf,0x59,0x75, 0x7,0x37,0x58, + 0x7,0x37,0x5a, 0x7,0x22,0x34, 0x5,0x5b,0x37, 0x7,0x46,0x58, + 0x5,0x61,0x4e, 0xf,0x59,0x76, 0xf,0x5e,0x56, 0xf,0x5e,0x57, + 0x7,0x3f,0x42, 0xf,0x62,0x2e, 0x4,0x5f,0x57, 0x7,0x46,0x53, + 0x7,0x46,0x55, 0x4,0x5f,0x56, 0x7,0x46,0x57, 0x7,0x46,0x56, + 0xf,0x62,0x2f, 0x7,0x46,0x54, 0x4,0x63,0x36, 0x7,0x4d,0x53, + 0x7,0x53,0x2c, 0x4,0x66,0x38, 0x7,0x53,0x2d, 0xf,0x67,0x4f, + 0xf,0x67,0x50, 0x7,0x53,0x2e, 0x5,0x73,0x38, 0x4,0x68,0x66, + 0x7,0x57,0x65, 0x5,0x73,0x37, 0x7,0x57,0x66, 0x4,0x6a,0x45, + 0x4,0x6b,0x67, 0xf,0x6b,0x46, 0x7,0x60,0x6c, 0x7,0x64,0x45, + 0x5,0x79,0x25, 0xf,0x6c,0x25, 0x4,0x6d,0x54, 0x5,0x7a,0x27, + 0x4,0x6d,0x71, 0x7,0x63,0x4e, 0x7,0x65,0x34, 0x6,0x21,0x6a, + 0x6,0x2a,0x6a, 0x6,0x2a,0x69, 0xf,0x26,0x56, 0xf,0x26,0x57, + 0x5,0x28,0x6f, 0x6,0x30,0x2e, 0xf,0x2a,0x3d, 0x6,0x30,0x31, + 0x6,0x30,0x2f, 0x4,0x31,0x31, 0x6,0x43,0x67, 0x6,0x3e,0x5e, + 0x6,0x3e,0x5d, 0x4,0x37,0x27, 0x6,0x3e,0x5f, 0x6,0x51,0x7a, + 0x6,0x51,0x78, 0x6,0x51,0x79, 0x6,0x5c,0x30, 0x4,0x44,0x26, + 0xf,0x47,0x5b, 0x6,0x5c,0x31, 0x5,0x45,0x3d, 0xf,0x4e,0x51, + 0x7,0x22,0x3a, 0x7,0x22,0x39, 0x7,0x2d,0x39, 0x5,0x53,0x52, + 0x7,0x2d,0x38, 0x7,0x37,0x5b, 0x7,0x37,0x5c, 0x5,0x61,0x4f, + 0x7,0x46,0x59, 0x7,0x4d,0x54, 0x7,0x53,0x2f, 0x6,0x21,0x6b, + 0xf,0x21,0x39, 0x6,0x24,0x4c, 0x5,0x22,0x4c, 0x6,0x27,0x24, + 0x4,0x23,0x72, 0x6,0x27,0x23, 0x6,0x27,0x22, 0xf,0x23,0x73, + 0x5,0x25,0x67, 0xf,0x26,0x58, 0x6,0x2a,0x6b, 0x6,0x30,0x32, + 0x6,0x30,0x30, 0x6,0x30,0x33, 0x5,0x28,0x70, 0x4,0x2c,0x4b, + 0xf,0x2f,0x21, 0x6,0x36,0x69, 0x6,0x3e,0x61, 0x5,0x31,0x71, + 0x5,0x37,0x63, 0x6,0x3e,0x63, 0x6,0x3e,0x60, 0x6,0x3e,0x62, + 0xf,0x34,0x30, 0x6,0x47,0x71, 0xf,0x3a,0x50, 0x6,0x47,0x73, + 0x6,0x47,0x72, 0x5,0x3e,0x65, 0xf,0x41,0x2f, 0x5,0x45,0x3e, + 0x6,0x5c,0x33, 0x6,0x5c,0x32, 0x5,0x4c,0x62, 0x7,0x22,0x3b, + 0x5,0x54,0x2f, 0x7,0x2d,0x3a, 0xf,0x59,0x77, 0x5,0x61,0x50, + 0x5,0x6f,0x77, 0x4,0x21,0x4a, 0xf,0x21,0x3a, 0x5,0x21,0x65, + 0xf,0x21,0x4d, 0xf,0x21,0x5a, 0x6,0x22,0x6b, 0x6,0x22,0x6a, + 0x5,0x22,0x4d, 0xf,0x22,0x43, 0x5,0x23,0x6c, 0x4,0x23,0x73, + 0x5,0x25,0x68, 0x6,0x27,0x25, 0x5,0x23,0x6b, 0x5,0x23,0x6e, + 0x5,0x23,0x6d, 0x6,0x30,0x34, 0x5,0x25,0x69, 0x6,0x2a,0x6c, + 0x5,0x25,0x6b, 0xf,0x26,0x59, 0x6,0x30,0x35, 0x5,0x25,0x6a, + 0x5,0x28,0x71, 0x6,0x30,0x37, 0x6,0x30,0x38, 0x5,0x28,0x72, + 0x6,0x30,0x39, 0x5,0x2d,0x23, 0x6,0x36,0x6c, 0x6,0x36,0x6a, + 0x5,0x2d,0x24, 0x6,0x36,0x6b, 0x6,0x36,0x6d, 0xf,0x2f,0x22, + 0x6,0x3e,0x66, 0x5,0x31,0x72, 0x4,0x31,0x34, 0x5,0x31,0x74, + 0x6,0x47,0x76, 0x6,0x47,0x74, 0x6,0x47,0x75, 0x4,0x37,0x2a, + 0x6,0x47,0x77, 0xf,0x3a,0x51, 0x6,0x51,0x7b, 0x6,0x51,0x7d, + 0x6,0x51,0x7c, 0x5,0x48,0x26, 0x4,0x42,0x7a, 0x6,0x5c,0x34, + 0x5,0x45,0x40, 0x5,0x45,0x3f, 0x6,0x5c,0x35, 0x5,0x45,0x41, + 0x7,0x2d,0x3d, 0x7,0x22,0x3e, 0x7,0x22,0x3d, 0x7,0x22,0x3c, + 0x7,0x2d,0x3b, 0x5,0x54,0x30, 0x7,0x2d,0x3c, 0x7,0x2d,0x3e, + 0xf,0x54,0x38, 0x7,0x37,0x5d, 0x4,0x66,0x39, 0x4,0x68,0x67, + 0x5,0x79,0x26, 0x6,0x21,0x3e, 0x4,0x21,0x75, 0x4,0x21,0x74, + 0x6,0x22,0x6c, 0x6,0x24,0x4d, 0x4,0x22,0x5e, 0x5,0x22,0x4e, + 0x6,0x24,0x4e, 0x6,0x24,0x50, 0x6,0x24,0x51, 0x6,0x24,0x4f, + 0xf,0x22,0x44, 0x6,0x27,0x29, 0xf,0x23,0x74, 0x6,0x27,0x27, + 0x6,0x27,0x26, 0x6,0x27,0x28, 0x5,0x23,0x6f, 0x4,0x26,0x2c, + 0x4,0x26,0x2b, 0x6,0x2a,0x6d, 0x6,0x2a,0x6e, 0x5,0x25,0x6c, + 0x6,0x2a,0x6f, 0xf,0x26,0x5b, 0x5,0x25,0x6d, 0x4,0x28,0x77, + 0x6,0x30,0x3a, 0x6,0x30,0x3f, 0x4,0x28,0x7a, 0x4,0x28,0x76, + 0x5,0x28,0x75, 0x6,0x30,0x3e, 0x6,0x30,0x3d, 0x6,0x30,0x3c, + 0x6,0x30,0x3b, 0xf,0x2a,0x40, 0xf,0x2a,0x41, 0xf,0x2a,0x42, + 0xf,0x2a,0x43, 0xf,0x2a,0x44, 0xf,0x2a,0x3f, 0x6,0x30,0x40, + 0x5,0x28,0x74, 0x6,0x36,0x72, 0x4,0x2c,0x50, 0x6,0x36,0x6f, + 0x4,0x2c,0x4f, 0x6,0x3e,0x67, 0x6,0x36,0x70, 0x6,0x36,0x6e, + 0xf,0x2f,0x23, 0xf,0x2f,0x24, 0xf,0x2f,0x26, 0xf,0x2f,0x27, + 0xf,0x2f,0x28, 0x5,0x2d,0x26, 0x5,0x2d,0x27, 0x6,0x36,0x71, + 0x6,0x36,0x73, 0x5,0x2d,0x25, 0x6,0x36,0x74, 0x6,0x3e,0x6d, + 0x6,0x3e,0x69, 0x5,0x31,0x78, 0x5,0x31,0x7a, 0x5,0x31,0x77, + 0x5,0x31,0x79, 0x5,0x31,0x76, 0x5,0x31,0x7b, 0x6,0x3e,0x70, + 0x6,0x3e,0x6a, 0xf,0x34,0x31, 0xf,0x34,0x32, 0xf,0x34,0x35, + 0xf,0x34,0x36, 0xf,0x34,0x37, 0xf,0x34,0x38, 0xf,0x34,0x39, + 0xf,0x34,0x3a, 0x6,0x3e,0x68, 0x6,0x3e,0x6c, 0x6,0x3e,0x6f, + 0x6,0x3e,0x6e, 0xf,0x34,0x33, 0x6,0x48,0x23, 0x6,0x48,0x24, + 0x6,0x48,0x22, 0x4,0x37,0x2c, 0x6,0x47,0x7e, 0x6,0x47,0x7a, + 0x5,0x37,0x64, 0x4,0x37,0x2d, 0x5,0x37,0x65, 0x6,0x47,0x79, + 0x6,0x47,0x78, 0x6,0x48,0x25, 0x6,0x48,0x21, 0x6,0x48,0x26, + 0x6,0x47,0x7c, 0xf,0x3a,0x52, 0xf,0x3a,0x53, 0xf,0x3a,0x54, + 0x6,0x47,0x7d, 0x4,0x37,0x2e, 0x6,0x52,0x23, 0x5,0x3e,0x69, + 0x5,0x3e,0x67, 0x6,0x52,0x26, 0x5,0x3e,0x68, 0x6,0x52,0x25, + 0x6,0x52,0x29, 0x6,0x52,0x21, 0x6,0x51,0x7e, 0x6,0x52,0x27, + 0x6,0x52,0x24, 0xf,0x41,0x30, 0xf,0x41,0x31, 0xf,0x41,0x32, + 0x6,0x52,0x22, 0x6,0x52,0x28, 0x5,0x3e,0x66, 0x4,0x42,0x7c, + 0x4,0x42,0x7e, 0x4,0x42,0x7b, 0x6,0x5c,0x38, 0x6,0x5c,0x36, + 0x6,0x5c,0x37, 0xf,0x47,0x5d, 0x6,0x5c,0x39, 0x5,0x45,0x42, + 0x7,0x22,0x40, 0x5,0x4c,0x66, 0xf,0x4e,0x52, 0xf,0x4e,0x53, + 0xf,0x4e,0x54, 0xf,0x4e,0x55, 0xf,0x4e,0x56, 0x5,0x4c,0x65, + 0x5,0x4c,0x64, 0x7,0x2d,0x40, 0x7,0x2d,0x3f, 0x7,0x22,0x3f, + 0xf,0x54,0x39, 0x7,0x30,0x2d, 0x7,0x37,0x5e, 0x7,0x3f,0x43, + 0x4,0x5f,0x58, 0x5,0x67,0x62, 0xf,0x65,0x27, 0xf,0x65,0x28, + 0x5,0x6b,0x7d, 0xf,0x67,0x51, 0x5,0x73,0x3a, 0x5,0x21,0x30, + 0x6,0x21,0x6c, 0x6,0x22,0x6d, 0x6,0x24,0x54, 0x6,0x24,0x53, + 0x6,0x24,0x52, 0x5,0x22,0x4f, 0x4,0x23,0x75, 0x6,0x27,0x2a, + 0x4,0x26,0x2d, 0x6,0x2a,0x71, 0x6,0x2a,0x70, 0x5,0x28,0x77, + 0x6,0x30,0x42, 0x6,0x30,0x43, 0x5,0x28,0x76, 0x6,0x30,0x44, + 0x6,0x36,0x77, 0x6,0x36,0x78, 0x6,0x36,0x76, 0x6,0x35,0x28, + 0x6,0x36,0x75, 0x6,0x3e,0x71, 0x6,0x3e,0x72, 0x6,0x48,0x28, + 0x5,0x37,0x67, 0x6,0x48,0x29, 0x6,0x48,0x27, 0xf,0x3a,0x55, + 0x6,0x52,0x2a, 0x6,0x5c,0x3a, 0x7,0x22,0x41, 0x7,0x2d,0x41, + 0x7,0x22,0x42, 0x7,0x22,0x43, 0x7,0x53,0x30, 0x7,0x5e,0x5d, + 0x5,0x21,0x45, 0x5,0x21,0x46, 0x6,0x22,0x70, 0x6,0x22,0x6e, + 0x6,0x22,0x72, 0x6,0x22,0x71, 0xf,0x21,0x5c, 0xf,0x21,0x5d, + 0xf,0x21,0x5e, 0x6,0x22,0x73, 0x5,0x21,0x66, 0x6,0x22,0x6f, + 0x6,0x24,0x57, 0x6,0x24,0x55, 0x6,0x24,0x59, 0x3,0x23,0x59, + 0xf,0x22,0x45, 0xf,0x22,0x46, 0x6,0x24,0x56, 0x5,0x22,0x53, + 0x6,0x24,0x5a, 0x6,0x24,0x58, 0x5,0x22,0x52, 0x6,0x27,0x2e, + 0x5,0x23,0x71, 0x5,0x23,0x78, 0x5,0x23,0x79, 0x6,0x27,0x30, + 0x5,0x23,0x76, 0x5,0x23,0x75, 0x5,0x23,0x77, 0x5,0x23,0x72, + 0x5,0x23,0x73, 0x6,0x27,0x31, 0x6,0x27,0x2c, 0x6,0x27,0x32, + 0xf,0x23,0x76, 0xf,0x23,0x77, 0xf,0x23,0x79, 0xf,0x23,0x7a, + 0xf,0x23,0x7b, 0xf,0x23,0x7e, 0xf,0x24,0x21, 0x6,0x27,0x2d, + 0x6,0x27,0x2f, 0x4,0x23,0x7d, 0xf,0x23,0x7d, 0x6,0x27,0x34, + 0x6,0x27,0x33, 0x4,0x23,0x7c, 0x6,0x27,0x2b, 0x5,0x23,0x7a, + 0x4,0x26,0x30, 0x5,0x25,0x75, 0x6,0x2a,0x75, 0x4,0x26,0x33, + 0x6,0x2a,0x72, 0x5,0x25,0x73, 0x5,0x25,0x74, 0x6,0x2a,0x7a, + 0x5,0x25,0x71, 0x6,0x2a,0x77, 0x6,0x2a,0x7c, 0x5,0x25,0x6f, + 0x6,0x2a,0x79, 0x5,0x25,0x72, 0x5,0x25,0x70, 0x6,0x2a,0x74, + 0x6,0x27,0x35, 0xf,0x26,0x5c, 0xf,0x26,0x5d, 0xf,0x26,0x5e, + 0xf,0x26,0x5f, 0xf,0x26,0x60, 0xf,0x26,0x61, 0xf,0x26,0x63, + 0xf,0x26,0x64, 0xf,0x26,0x65, 0xf,0x26,0x66, 0xf,0x26,0x67, + 0xf,0x26,0x68, 0x6,0x2a,0x78, 0x6,0x2d,0x2b, 0x6,0x2a,0x73, + 0x5,0x25,0x76, 0x6,0x30,0x50, 0x6,0x30,0x4a, 0x5,0x28,0x78, + 0x6,0x30,0x4b, 0x5,0x28,0x79, 0x4,0x28,0x7e, 0x5,0x28,0x7a, + 0x6,0x30,0x46, 0x6,0x30,0x49, 0x6,0x30,0x52, 0xf,0x2a,0x45, + 0xf,0x2a,0x47, 0xf,0x2a,0x48, 0xf,0x2a,0x4b, 0xf,0x2a,0x4c, + 0xf,0x2a,0x4d, 0xf,0x2a,0x4e, 0xf,0x2a,0x4f, 0xf,0x2a,0x50, + 0xf,0x2a,0x51, 0x6,0x30,0x4d, 0x6,0x30,0x45, 0x6,0x30,0x47, + 0x6,0x30,0x51, 0x6,0x30,0x4f, 0x6,0x30,0x4c, 0xf,0x2a,0x4a, + 0xf,0x2a,0x46, 0x6,0x30,0x48, 0x5,0x28,0x7b, 0x4,0x28,0x7c, + 0x5,0x2d,0x2c, 0x5,0x2d,0x29, 0x4,0x2c,0x52, 0x4,0x2c,0x59, + 0x5,0x2d,0x2a, 0x6,0x37,0x21, 0x4,0x2c,0x58, 0x5,0x2d,0x34, + 0x5,0x2d,0x30, 0x5,0x2d,0x2b, 0x6,0x36,0x7d, 0x5,0x2d,0x31, + 0x5,0x2d,0x2d, 0x5,0x2d,0x2f, 0x6,0x37,0x24, 0x6,0x36,0x7e, + 0x4,0x2c,0x62, 0x6,0x36,0x79, 0x4,0x2c,0x63, 0x4,0x2c,0x56, + 0x6,0x37,0x25, 0x6,0x37,0x22, 0x6,0x37,0x23, 0x6,0x36,0x7b, + 0xf,0x2f,0x29, 0xf,0x2f,0x2a, 0xf,0x2f,0x2b, 0xf,0x2f,0x2c, + 0xf,0x2f,0x2d, 0xf,0x2f,0x2e, 0xf,0x2f,0x2f, 0xf,0x2f,0x31, + 0xf,0x2f,0x33, 0x5,0x2d,0x28, 0xf,0x2f,0x30, 0xf,0x2f,0x32, + 0x5,0x2d,0x33, 0x4,0x2c,0x5d, 0x5,0x2d,0x35, 0x5,0x2d,0x36, + 0x5,0x2d,0x32, 0x6,0x3b,0x4e, 0x4,0x31,0x3a, 0x6,0x3f,0x2b, + 0x6,0x3f,0x24, 0x6,0x3f,0x26, 0x4,0x31,0x3c, 0x4,0x31,0x3e, + 0x5,0x31,0x7e, 0x6,0x3e,0x79, 0x6,0x3f,0x22, 0x6,0x3e,0x7b, + 0x5,0x32,0x28, 0x4,0x31,0x38, 0x6,0x3f,0x27, 0x6,0x3f,0x2c, + 0x6,0x3f,0x29, 0x6,0x3e,0x74, 0x6,0x3f,0x2a, 0x4,0x31,0x40, + 0x4,0x31,0x3b, 0x5,0x31,0x7c, 0x5,0x32,0x26, 0x6,0x3e,0x73, + 0x4,0x31,0x36, 0x5,0x31,0x7d, 0x5,0x32,0x24, 0x6,0x3f,0x28, + 0x6,0x3f,0x23, 0xf,0x34,0x3b, 0xf,0x34,0x3c, 0xf,0x34,0x3d, + 0xf,0x34,0x3e, 0xf,0x34,0x40, 0xf,0x34,0x41, 0xf,0x34,0x42, + 0xf,0x34,0x43, 0xf,0x34,0x44, 0xf,0x34,0x46, 0xf,0x34,0x47, + 0xf,0x34,0x48, 0x6,0x3e,0x77, 0x6,0x32,0x2a, 0x6,0x3e,0x7d, + 0x6,0x3e,0x7c, 0x6,0x3e,0x7e, 0x6,0x3f,0x21, 0x6,0x3f,0x25, + 0x4,0x31,0x3f, 0x5,0x32,0x29, 0x5,0x32,0x21, 0x5,0x32,0x27, + 0x5,0x32,0x23, 0x5,0x32,0x22, 0x5,0x32,0x25, 0x5,0x32,0x2a, + 0x5,0x37,0x69, 0x6,0x48,0x33, 0x5,0x37,0x6e, 0x6,0x48,0x2a, + 0x6,0x48,0x34, 0x5,0x37,0x6f, 0x5,0x37,0x6c, 0x5,0x37,0x6b, + 0x4,0x37,0x30, 0x5,0x37,0x70, 0x5,0x37,0x6a, 0x5,0x37,0x71, + 0x5,0x37,0x72, 0x5,0x37,0x74, 0x6,0x48,0x2e, 0x6,0x3e,0x7a, + 0x4,0x37,0x31, 0x6,0x48,0x2f, 0x5,0x37,0x6d, 0x4,0x37,0x33, + 0x5,0x37,0x68, 0x5,0x37,0x73, 0xf,0x3a,0x56, 0xf,0x3a,0x58, + 0xf,0x3a,0x59, 0xf,0x3a,0x5a, 0xf,0x3a,0x5b, 0x6,0x48,0x2d, + 0x5,0x37,0x75, 0x6,0x48,0x32, 0x6,0x48,0x2c, 0x6,0x48,0x31, + 0x6,0x48,0x30, 0xf,0x3a,0x5c, 0x5,0x3e,0x70, 0x6,0x52,0x2d, + 0x5,0x3e,0x6c, 0x4,0x3c,0x7a, 0x5,0x3e,0x71, 0x6,0x52,0x2e, + 0x6,0x5c,0x3b, 0x4,0x3c,0x7d, 0x6,0x52,0x35, 0x5,0x3e,0x6a, + 0x5,0x3e,0x73, 0x6,0x52,0x2b, 0x5,0x3e,0x6f, 0x6,0x52,0x2c, + 0x6,0x52,0x39, 0x6,0x52,0x30, 0x6,0x52,0x38, 0x5,0x3e,0x6e, + 0x6,0x52,0x36, 0x6,0x5c,0x40, 0xf,0x41,0x37, 0x5,0x3e,0x72, + 0xf,0x41,0x33, 0xf,0x41,0x34, 0xf,0x41,0x36, 0xf,0x41,0x38, + 0xf,0x41,0x39, 0x6,0x52,0x3a, 0x6,0x52,0x32, 0x6,0x52,0x37, + 0x5,0x3e,0x6b, 0xf,0x41,0x35, 0x6,0x52,0x2f, 0x5,0x45,0x43, + 0x5,0x45,0x4b, 0x5,0x45,0x49, 0x6,0x5c,0x41, 0x6,0x5c,0x3c, + 0x4,0x43,0x2b, 0x4,0x43,0x26, 0x4,0x43,0x25, 0x5,0x45,0x44, + 0x5,0x45,0x48, 0x5,0x45,0x47, 0x5,0x45,0x4a, 0x5,0x45,0x4e, + 0x6,0x5c,0x3e, 0x6,0x5c,0x47, 0x5,0x45,0x4d, 0x5,0x45,0x45, + 0x5,0x45,0x46, 0x6,0x5c,0x42, 0x4,0x43,0x29, 0x6,0x5c,0x46, + 0x4,0x43,0x27, 0x4,0x43,0x23, 0x5,0x45,0x4c, 0x6,0x5c,0x45, + 0x6,0x5c,0x43, 0x6,0x5c,0x3f, 0x4,0x43,0x28, 0xf,0x47,0x5e, + 0xf,0x47,0x5f, 0xf,0x47,0x60, 0xf,0x47,0x61, 0x6,0x52,0x31, + 0x4,0x49,0x4e, 0x7,0x22,0x49, 0x4,0x49,0x52, 0x7,0x22,0x45, + 0x5,0x4c,0x69, 0x7,0x22,0x50, 0x7,0x22,0x4a, 0x5,0x4c,0x6e, + 0x5,0x4c,0x67, 0x7,0x22,0x47, 0x7,0x22,0x51, 0x5,0x4c,0x6f, + 0x7,0x22,0x4f, 0x7,0x22,0x4c, 0x7,0x22,0x4d, 0x5,0x4c,0x70, + 0x5,0x4c,0x6a, 0x5,0x4c,0x6d, 0x7,0x2d,0x44, 0x7,0x22,0x46, + 0xf,0x4e,0x57, 0xf,0x4e,0x58, 0xf,0x4e,0x59, 0xf,0x4e,0x5b, + 0xf,0x4e,0x5c, 0x7,0x22,0x44, 0x7,0x22,0x4b, 0x7,0x22,0x4e, + 0x5,0x4c,0x6b, 0x7,0x22,0x48, 0x4,0x49,0x51, 0x5,0x54,0x33, + 0x4,0x50,0x23, 0x7,0x2d,0x4a, 0x4,0x50,0x24, 0x5,0x54,0x35, + 0x7,0x2d,0x42, 0x5,0x54,0x38, 0x5,0x54,0x34, 0x5,0x54,0x31, + 0x7,0x2d,0x47, 0x7,0x2d,0x43, 0x5,0x5b,0x39, 0x5,0x54,0x32, + 0xf,0x54,0x3a, 0xf,0x54,0x3b, 0xf,0x54,0x3c, 0x7,0x2d,0x45, + 0x7,0x2d,0x49, 0x7,0x2d,0x48, 0x7,0x2d,0x4b, 0x7,0x2d,0x46, + 0x7,0x2d,0x4d, 0x5,0x54,0x37, 0x4,0x56,0x29, 0x5,0x5b,0x3b, + 0x5,0x61,0x55, 0x7,0x37,0x60, 0x5,0x5b,0x3f, 0x7,0x37,0x66, + 0x5,0x5b,0x3a, 0x7,0x37,0x62, 0x7,0x37,0x64, 0x7,0x37,0x61, + 0x5,0x5b,0x3d, 0x7,0x37,0x5f, 0x7,0x37,0x65, 0xf,0x59,0x79, + 0xf,0x59,0x7a, 0xf,0x59,0x7b, 0x4,0x56,0x2a, 0x7,0x37,0x63, + 0x7,0x37,0x67, 0x7,0x39,0x27, 0x5,0x5b,0x40, 0x7,0x46,0x5a, + 0x5,0x61,0x54, 0x7,0x3f,0x47, 0x4,0x5a,0x7e, 0x5,0x61,0x51, + 0x5,0x61,0x52, 0x7,0x3f,0x49, 0xf,0x5e,0x59, 0x5,0x61,0x53, + 0x7,0x3f,0x46, 0xf,0x5e,0x58, 0x7,0x3f,0x45, 0x7,0x3f,0x48, + 0x5,0x61,0x56, 0x5,0x61,0x57, 0x7,0x46,0x5c, 0x4,0x5f,0x5b, + 0x7,0x46,0x5e, 0x5,0x67,0x65, 0x4,0x5f,0x59, 0x7,0x46,0x5d, + 0x7,0x46,0x5f, 0x7,0x46,0x60, 0xf,0x62,0x30, 0xf,0x62,0x31, + 0xf,0x62,0x32, 0x7,0x46,0x61, 0x7,0x46,0x62, 0x7,0x46,0x5b, + 0x4,0x63,0x38, 0x7,0x4d,0x55, 0x4,0x63,0x37, 0x5,0x6b,0x7e, + 0x7,0x4d,0x57, 0xf,0x65,0x29, 0x7,0x4d,0x56, 0x5,0x5b,0x3e, + 0x5,0x6f,0x78, 0x5,0x6f,0x7a, 0x5,0x6f,0x79, 0x7,0x53,0x32, + 0x7,0x53,0x31, 0x5,0x73,0x3b, 0x4,0x68,0x69, 0x4,0x68,0x6a, + 0x7,0x57,0x67, 0x7,0x57,0x69, 0x7,0x57,0x68, 0x7,0x57,0x6a, + 0x5,0x73,0x3c, 0x7,0x5e,0x5e, 0x4,0x6b,0x6a, 0x4,0x6b,0x69, + 0x7,0x5e,0x60, 0x5,0x77,0x58, 0x7,0x5e,0x5f, 0x5,0x79,0x27, + 0xf,0x6c,0x26, 0x5,0x7a,0x28, 0x5,0x7a,0x66, 0x5,0x7b,0x3c, + 0x7,0x63,0x4f, 0x5,0x7c,0x34, 0x6,0x21,0x6d, 0x4,0x21,0x25, + 0x4,0x22,0x62, 0x5,0x22,0x54, 0x6,0x24,0x5b, 0x6,0x24,0x5c, + 0x5,0x22,0x55, 0x6,0x23,0x7e, 0x4,0x23,0x7e, 0x5,0x23,0x7b, + 0x6,0x2a,0x7d, 0xf,0x26,0x6a, 0xf,0x26,0x69, 0x6,0x30,0x55, + 0x6,0x30,0x54, 0x6,0x30,0x56, 0x6,0x30,0x53, 0x6,0x37,0x26, + 0x5,0x32,0x2b, 0x4,0x31,0x41, 0x6,0x3f,0x2d, 0x5,0x37,0x76, + 0x6,0x5c,0x48, 0x7,0x22,0x52, 0x5,0x54,0x39, 0xf,0x4e,0x5d, + 0xf,0x54,0x3d, 0x7,0x37,0x68, 0x7,0x3f,0x4a, 0x7,0x46,0x63, + 0x5,0x67,0x66, 0x7,0x5e,0x61, 0x7,0x65,0x35, 0x6,0x21,0x6f, + 0x6,0x21,0x71, 0x6,0x21,0x70, 0xf,0x21,0x3b, 0x5,0x21,0x68, + 0x5,0x21,0x67, 0x5,0x23,0x7c, 0x6,0x27,0x37, 0xf,0x26,0x6b, + 0x6,0x30,0x57, 0x6,0x37,0x28, 0xf,0x2f,0x34, 0x6,0x3f,0x2e, + 0xf,0x3a,0x5e, 0x7,0x22,0x53, 0x7,0x46,0x64, 0x6,0x22,0x74, + 0x5,0x22,0x56, 0x6,0x2a,0x7e, 0x6,0x30,0x59, 0x6,0x30,0x58, + 0x4,0x2c,0x65, 0x6,0x3f,0x2f, 0x5,0x35,0x5f, 0x5,0x32,0x2d, + 0x6,0x3f,0x30, 0x5,0x32,0x2c, 0x6,0x48,0x36, 0xf,0x3a,0x5f, + 0xf,0x3a,0x60, 0xf,0x3a,0x61, 0x7,0x22,0x54, 0x7,0x3f,0x4b, + 0x4,0x21,0x77, 0x6,0x22,0x75, 0x6,0x22,0x76, 0x5,0x22,0x59, + 0x5,0x22,0x58, 0x4,0x22,0x64, 0x5,0x22,0x5b, 0x6,0x24,0x61, + 0x6,0x24,0x60, 0x6,0x24,0x5e, 0xf,0x22,0x48, 0xf,0x22,0x4a, + 0x5,0x22,0x57, 0x6,0x24,0x5f, 0x5,0x22,0x5a, 0x6,0x27,0x41, + 0x6,0x27,0x3b, 0x5,0x24,0x22, 0x6,0x27,0x38, 0x5,0x23,0x7e, + 0x5,0x23,0x7d, 0x5,0x24,0x23, 0x6,0x27,0x40, 0x5,0x24,0x24, + 0x6,0x27,0x3c, 0x6,0x27,0x3f, 0x5,0x24,0x21, 0xf,0x24,0x24, + 0x6,0x27,0x39, 0x6,0x27,0x3a, 0x6,0x27,0x3d, 0x5,0x24,0x25, + 0x6,0x27,0x3e, 0x5,0x25,0x7b, 0x4,0x26,0x35, 0x5,0x25,0x79, + 0x5,0x25,0x7d, 0x5,0x25,0x7a, 0x5,0x25,0x7c, 0x5,0x26,0x21, + 0x6,0x2b,0x23, 0x5,0x25,0x7e, 0x5,0x26,0x22, 0x6,0x2b,0x22, + 0xf,0x26,0x6c, 0x5,0x26,0x23, 0x6,0x2b,0x21, 0x5,0x25,0x77, + 0x5,0x25,0x78, 0x5,0x28,0x7e, 0x6,0x30,0x62, 0x5,0x28,0x7d, + 0x5,0x29,0x22, 0x5,0x28,0x7c, 0x5,0x29,0x23, 0x6,0x30,0x5f, + 0x5,0x29,0x25, 0x5,0x29,0x24, 0x6,0x30,0x5b, 0x5,0x29,0x21, + 0x6,0x30,0x5a, 0x6,0x30,0x65, 0x6,0x30,0x67, 0xf,0x2a,0x53, + 0xf,0x2a,0x54, 0xf,0x2a,0x55, 0x4,0x29,0x26, 0x6,0x30,0x61, + 0x6,0x30,0x60, 0x6,0x30,0x5c, 0x6,0x30,0x5d, 0x6,0x30,0x66, + 0x6,0x30,0x64, 0x6,0x30,0x5e, 0x5,0x2d,0x38, 0x6,0x37,0x32, + 0x5,0x2d,0x37, 0x6,0x37,0x2e, 0x5,0x2d,0x39, 0x5,0x32,0x2e, + 0x6,0x37,0x2a, 0x4,0x2c,0x69, 0x4,0x2c,0x6a, 0x6,0x37,0x2f, + 0x5,0x2d,0x3a, 0x6,0x37,0x2d, 0x6,0x37,0x31, 0x6,0x37,0x30, + 0x4,0x2c,0x67, 0x6,0x37,0x33, 0x6,0x37,0x34, 0xf,0x2f,0x36, + 0xf,0x2f,0x35, 0x6,0x37,0x29, 0x6,0x37,0x2b, 0x6,0x3f,0x35, + 0x5,0x32,0x35, 0x4,0x31,0x46, 0x4,0x31,0x43, 0x4,0x31,0x44, + 0x5,0x32,0x33, 0x5,0x32,0x2f, 0x6,0x3f,0x3a, 0x5,0x32,0x30, + 0x5,0x32,0x34, 0x6,0x3f,0x3c, 0x5,0x32,0x31, 0x5,0x32,0x36, + 0x6,0x3f,0x36, 0x6,0x3f,0x3b, 0x6,0x3f,0x32, 0x5,0x32,0x32, + 0x6,0x3f,0x34, 0xf,0x34,0x49, 0xf,0x34,0x4a, 0xf,0x34,0x4b, + 0xf,0x34,0x4c, 0x6,0x3f,0x39, 0x6,0x3f,0x31, 0x6,0x3f,0x3d, + 0x6,0x3f,0x37, 0x6,0x3f,0x33, 0x6,0x48,0x39, 0x4,0x37,0x3e, + 0x6,0x48,0x3e, 0x5,0x37,0x79, 0x5,0x37,0x7a, 0x4,0x37,0x38, + 0x5,0x37,0x78, 0x6,0x48,0x3a, 0x4,0x37,0x37, 0x5,0x38,0x21, + 0x5,0x38,0x22, 0x6,0x3f,0x38, 0x6,0x48,0x40, 0x6,0x48,0x3d, + 0x6,0x48,0x3b, 0x5,0x37,0x7d, 0x6,0x48,0x38, 0xf,0x3a,0x62, + 0xf,0x3a,0x63, 0x6,0x48,0x3f, 0x5,0x37,0x7b, 0x5,0x37,0x77, + 0x6,0x48,0x41, 0x5,0x37,0x7e, 0xf,0x40,0x2b, 0x5,0x3e,0x78, + 0x4,0x3d,0x22, 0x5,0x45,0x52, 0x4,0x3d,0x25, 0x5,0x3e,0x75, + 0x5,0x3e,0x74, 0x4,0x3d,0x24, 0x5,0x3e,0x77, 0x5,0x3e,0x7a, + 0x6,0x52,0x3e, 0x6,0x52,0x3b, 0x6,0x52,0x3d, 0x6,0x5c,0x4b, + 0x5,0x3e,0x7b, 0x6,0x52,0x3c, 0x5,0x3e,0x76, 0x5,0x3e,0x79, + 0x6,0x5c,0x4c, 0x6,0x5c,0x4d, 0x5,0x45,0x58, 0x4,0x43,0x34, + 0x5,0x45,0x4f, 0x5,0x45,0x55, 0x6,0x5c,0x4a, 0x5,0x45,0x54, + 0x5,0x45,0x57, 0xf,0x47,0x62, 0x5,0x45,0x59, 0x5,0x45,0x50, + 0x5,0x45,0x56, 0x5,0x45,0x51, 0x7,0x22,0x57, 0x7,0x22,0x59, + 0x5,0x4c,0x74, 0x5,0x4c,0x73, 0x5,0x4c,0x75, 0x4,0x49,0x57, + 0x5,0x4c,0x76, 0x5,0x4c,0x78, 0x4,0x49,0x56, 0x7,0x22,0x56, + 0x7,0x22,0x55, 0x7,0x22,0x58, 0x5,0x4c,0x77, 0x5,0x4c,0x79, + 0x5,0x4c,0x72, 0x7,0x2d,0x50, 0x5,0x54,0x3e, 0x7,0x2d,0x52, + 0x7,0x2d,0x58, 0x5,0x54,0x3d, 0x4,0x50,0x28, 0x7,0x2d,0x57, + 0x7,0x2d,0x56, 0x5,0x54,0x3b, 0x7,0x2d,0x51, 0x5,0x54,0x3c, + 0x7,0x2d,0x54, 0x5,0x54,0x3f, 0x7,0x2d,0x4f, 0x4,0x50,0x2a, + 0x5,0x5b,0x41, 0x5,0x5b,0x42, 0x4,0x56,0x2c, 0x7,0x37,0x6b, + 0xf,0x59,0x7c, 0x7,0x37,0x69, 0x7,0x37,0x6a, 0x5,0x61,0x5a, + 0x5,0x61,0x59, 0x5,0x61,0x58, 0x7,0x46,0x66, 0x4,0x5f,0x5d, + 0x5,0x67,0x67, 0x4,0x5f,0x5c, 0x7,0x46,0x65, 0x7,0x46,0x67, + 0x5,0x67,0x68, 0xf,0x62,0x33, 0x7,0x4d,0x58, 0x5,0x6c,0x21, + 0x7,0x53,0x33, 0x7,0x57,0x6c, 0x5,0x6f,0x7b, 0x5,0x73,0x3d, + 0x7,0x57,0x6b, 0x7,0x5e,0x62, 0x7,0x5e,0x63, 0x5,0x77,0x59, + 0x7,0x63,0x50, 0x7,0x63,0x75, 0x4,0x21,0x78, 0x6,0x27,0x42, + 0x5,0x24,0x26, 0x4,0x24,0x26, 0x6,0x2b,0x24, 0xf,0x26,0x6d, + 0xf,0x26,0x6e, 0x6,0x30,0x69, 0x6,0x30,0x68, 0xf,0x2a,0x56, + 0x6,0x37,0x35, 0x5,0x32,0x37, 0x6,0x48,0x42, 0x5,0x38,0x23, + 0x6,0x52,0x3f, 0x5,0x45,0x5a, 0xf,0x47,0x64, 0x7,0x4d,0x59, + 0xf,0x6a,0x4e, 0x6,0x21,0x72, 0x6,0x21,0x73, 0x6,0x22,0x78, + 0x5,0x21,0x69, 0x6,0x22,0x77, 0xf,0x21,0x62, 0x4,0x22,0x67, + 0x4,0x24,0x27, 0x5,0x24,0x27, 0xf,0x24,0x26, 0x6,0x29,0x5e, + 0x6,0x2b,0x25, 0x5,0x26,0x24, 0x5,0x26,0x25, 0x6,0x30,0x6a, + 0x6,0x30,0x41, 0x4,0x2f,0x27, 0x6,0x37,0x36, 0x4,0x31,0x4a, + 0x6,0x48,0x43, 0x5,0x3e,0x7c, 0x5,0x45,0x5b, 0x7,0x22,0x5b, + 0xf,0x47,0x65, 0x6,0x5c,0x4e, 0xf,0x4e,0x5f, 0x7,0x22,0x5c, + 0x7,0x22,0x5d, 0x4,0x56,0x26, 0x7,0x57,0x6d, 0x4,0x22,0x68, + 0x5,0x22,0x5e, 0x6,0x24,0x64, 0x5,0x22,0x5d, 0x6,0x24,0x63, + 0x6,0x24,0x62, 0x6,0x24,0x66, 0x4,0x22,0x69, 0x6,0x24,0x65, + 0x6,0x27,0x45, 0x5,0x24,0x2a, 0x5,0x24,0x2c, 0x5,0x24,0x2b, + 0x5,0x24,0x28, 0x5,0x24,0x29, 0x6,0x27,0x44, 0x6,0x27,0x48, + 0x6,0x2b,0x28, 0x6,0x27,0x43, 0x6,0x27,0x46, 0x5,0x24,0x2d, + 0x5,0x26,0x2c, 0x5,0x26,0x28, 0x5,0x26,0x27, 0x5,0x26,0x2b, + 0x5,0x26,0x2a, 0x4,0x26,0x39, 0x6,0x2b,0x26, 0x6,0x2b,0x29, + 0x6,0x2b,0x27, 0x4,0x26,0x3e, 0x6,0x2b,0x2a, 0xf,0x26,0x70, + 0xf,0x26,0x71, 0xf,0x26,0x72, 0xf,0x26,0x73, 0xf,0x26,0x74, + 0x5,0x26,0x29, 0x5,0x26,0x2d, 0x6,0x2b,0x2b, 0x5,0x29,0x28, + 0x5,0x29,0x2a, 0x4,0x29,0x27, 0x6,0x30,0x6c, 0x5,0x29,0x29, + 0x6,0x30,0x6d, 0xf,0x2a,0x57, 0xf,0x2a,0x59, 0xf,0x2a,0x58, + 0xf,0x2a,0x5a, 0xf,0x2a,0x5b, 0xf,0x2a,0x5c, 0x6,0x30,0x6b, + 0x5,0x2d,0x3d, 0x5,0x2d,0x40, 0x5,0x2d,0x3e, 0x5,0x2d,0x41, + 0x5,0x2d,0x3b, 0x6,0x37,0x3a, 0x6,0x37,0x3b, 0x4,0x2c,0x6e, + 0x5,0x2d,0x42, 0x5,0x2d,0x3f, 0x6,0x37,0x3c, 0x5,0x2d,0x3c, + 0x6,0x37,0x39, 0xf,0x2f,0x37, 0x6,0x37,0x37, 0x6,0x37,0x38, + 0x5,0x2c,0x7b, 0x5,0x32,0x44, 0x5,0x32,0x3b, 0x5,0x32,0x39, + 0x4,0x31,0x4d, 0x6,0x3f,0x43, 0x5,0x32,0x42, 0x6,0x3f,0x48, + 0x6,0x3f,0x3e, 0x5,0x32,0x3d, 0x5,0x32,0x3c, 0x5,0x32,0x3f, + 0x5,0x32,0x3e, 0x6,0x3f,0x3f, 0x6,0x3f,0x40, 0x5,0x32,0x41, + 0x5,0x32,0x38, 0x4,0x31,0x50, 0x6,0x3f,0x44, 0x5,0x32,0x43, + 0x5,0x38,0x28, 0x6,0x3f,0x41, 0xf,0x34,0x4d, 0xf,0x34,0x4e, + 0xf,0x34,0x4f, 0xf,0x34,0x50, 0xf,0x34,0x51, 0xf,0x34,0x52, + 0xf,0x34,0x53, 0x6,0x3f,0x47, 0x6,0x46,0x3d, 0x5,0x32,0x3a, + 0x6,0x3f,0x42, 0x5,0x32,0x40, 0x6,0x48,0x4a, 0x4,0x31,0x4b, + 0x5,0x38,0x2b, 0x5,0x38,0x2c, 0x5,0x38,0x2d, 0x6,0x48,0x4b, + 0x6,0x48,0x4e, 0x5,0x38,0x27, 0x6,0x48,0x4d, 0x4,0x37,0x42, + 0x5,0x38,0x2a, 0x5,0x38,0x26, 0x6,0x48,0x49, 0x4,0x37,0x43, + 0x5,0x38,0x25, 0x6,0x52,0x44, 0x6,0x48,0x46, 0x6,0x48,0x47, + 0x5,0x38,0x24, 0xf,0x3a,0x65, 0xf,0x3a,0x67, 0xf,0x3a,0x68, + 0xf,0x3a,0x69, 0xf,0x3a,0x6a, 0x6,0x48,0x48, 0x6,0x48,0x4c, + 0xf,0x3a,0x66, 0x4,0x3d,0x2b, 0x5,0x3f,0x25, 0x4,0x3d,0x2c, + 0x6,0x52,0x41, 0x6,0x52,0x42, 0x5,0x3f,0x22, 0x5,0x3f,0x23, + 0x6,0x52,0x47, 0x5,0x3e,0x7d, 0x6,0x52,0x45, 0xf,0x41,0x3a, + 0xf,0x41,0x3b, 0xf,0x41,0x3c, 0x6,0x52,0x43, 0x6,0x52,0x48, + 0x5,0x3f,0x24, 0x5,0x3e,0x7e, 0x6,0x52,0x46, 0x4,0x43,0x38, + 0x5,0x45,0x5c, 0x4,0x43,0x37, 0x5,0x45,0x5e, 0x6,0x5c,0x50, + 0x5,0x45,0x60, 0x5,0x45,0x5f, 0x6,0x5c,0x4f, 0xf,0x47,0x67, + 0xf,0x47,0x68, 0xf,0x47,0x69, 0xf,0x47,0x6a, 0xf,0x47,0x6b, + 0xf,0x47,0x6c, 0xf,0x47,0x6d, 0xf,0x47,0x6e, 0xf,0x47,0x6f, + 0x6,0x5c,0x51, 0x6,0x60,0x31, 0xf,0x4a,0x54, 0x7,0x22,0x5e, + 0x4,0x49,0x5a, 0x4,0x37,0x3f, 0x4,0x49,0x58, 0x5,0x4c,0x7a, + 0x4,0x49,0x59, 0x7,0x2d,0x59, 0x7,0x22,0x62, 0x5,0x4c,0x7c, + 0x5,0x4c,0x7e, 0xf,0x4e,0x60, 0xf,0x4e,0x62, 0xf,0x4e,0x63, + 0x7,0x22,0x5f, 0x7,0x22,0x61, 0x7,0x22,0x63, 0x7,0x22,0x60, + 0x5,0x4c,0x7b, 0x5,0x54,0x41, 0x5,0x4c,0x7d, 0x5,0x54,0x43, + 0x5,0x54,0x40, 0x4,0x50,0x2d, 0x5,0x54,0x44, 0xf,0x54,0x3f, + 0xf,0x54,0x40, 0xf,0x54,0x41, 0xf,0x54,0x42, 0x7,0x37,0x6e, + 0x5,0x5b,0x44, 0x7,0x37,0x6c, 0x7,0x37,0x6d, 0xf,0x59,0x7e, + 0xf,0x5a,0x21, 0xf,0x5a,0x22, 0xf,0x5a,0x23, 0x5,0x5b,0x43, + 0x7,0x37,0x6f, 0x5,0x5b,0x45, 0x7,0x3f,0x51, 0x7,0x3f,0x4e, + 0x5,0x61,0x5b, 0xf,0x5e,0x5a, 0xf,0x5e,0x5c, 0x7,0x3f,0x4d, + 0x7,0x3f,0x4f, 0x7,0x3f,0x4c, 0xf,0x5e,0x5b, 0x7,0x3f,0x50, + 0x7,0x46,0x68, 0x7,0x46,0x69, 0x5,0x61,0x5c, 0x5,0x67,0x69, + 0xf,0x62,0x34, 0xf,0x62,0x35, 0xf,0x62,0x36, 0x5,0x67,0x6a, + 0x5,0x6c,0x24, 0x5,0x6c,0x23, 0x7,0x4d,0x5d, 0x7,0x4d,0x5b, + 0x5,0x6c,0x22, 0x7,0x4d,0x5a, 0x7,0x4d,0x5c, 0x7,0x4d,0x5e, + 0x4,0x66,0x3c, 0x7,0x53,0x34, 0x7,0x53,0x61, 0x5,0x73,0x3e, + 0x7,0x57,0x6e, 0x7,0x57,0x6f, 0x5,0x75,0x6a, 0xf,0x6a,0x4f, + 0x7,0x5b,0x4d, 0x7,0x5e,0x64, 0x7,0x62,0x36, 0x5,0x7a,0x68, + 0x5,0x7a,0x67, 0xf,0x6c,0x7b, 0xf,0x21,0x63, 0xf,0x22,0x4b, + 0xf,0x22,0x4c, 0x6,0x2b,0x2c, 0xf,0x24,0x27, 0x6,0x2b,0x2d, + 0x6,0x2b,0x2e, 0xf,0x2f,0x39, 0xf,0x2f,0x3b, 0xf,0x2f,0x3c, + 0xf,0x2f,0x3a, 0x5,0x32,0x45, 0xf,0x34,0x54, 0x6,0x48,0x4f, + 0xf,0x3a,0x6b, 0xf,0x3a,0x6c, 0x5,0x3f,0x26, 0x6,0x21,0x3f, + 0x6,0x21,0x75, 0x6,0x22,0x79, 0x6,0x27,0x49, 0x4,0x24,0x2a, + 0x6,0x30,0x70, 0x6,0x27,0x4d, 0xf,0x24,0x28, 0x6,0x27,0x4b, + 0x6,0x27,0x4e, 0x4,0x26,0x3f, 0x6,0x2b,0x30, 0x5,0x26,0x2e, + 0x6,0x2b,0x31, 0x3,0x2a,0x39, 0x4,0x27,0x41, 0x6,0x35,0x23, + 0x6,0x30,0x72, 0x6,0x30,0x73, 0x6,0x30,0x71, 0x6,0x30,0x6f, + 0x6,0x30,0x6e, 0x6,0x37,0x3f, 0x6,0x37,0x3e, 0x4,0x2c,0x6f, + 0x6,0x37,0x3d, 0x6,0x37,0x40, 0x6,0x3f,0x49, 0x6,0x3f,0x4a, + 0x6,0x3f,0x4b, 0x6,0x3f,0x4c, 0x6,0x3f,0x4d, 0x6,0x3f,0x4e, + 0x4,0x37,0x44, 0x6,0x48,0x50, 0x6,0x48,0x54, 0x6,0x48,0x53, + 0x6,0x48,0x51, 0xf,0x3a,0x6d, 0x6,0x48,0x52, 0x6,0x52,0x49, + 0x5,0x3f,0x27, 0xf,0x41,0x3d, 0x6,0x5c,0x53, 0x6,0x5c,0x54, + 0x6,0x5c,0x52, 0x5,0x45,0x61, 0x7,0x22,0x64, 0x7,0x2d,0x5a, + 0x7,0x2d,0x5c, 0x4,0x50,0x2f, 0x5,0x54,0x45, 0x7,0x37,0x71, + 0x7,0x37,0x70, 0x7,0x57,0x70, 0x7,0x63,0x51, 0x7,0x63,0x52, + 0x7,0x65,0x36, 0x6,0x21,0x40, 0x6,0x21,0x76, 0xf,0x22,0x4d, + 0x4,0x24,0x2b, 0x6,0x27,0x50, 0x6,0x27,0x4f, 0x5,0x24,0x2e, + 0x6,0x2b,0x32, 0x6,0x30,0x76, 0x6,0x30,0x75, 0x6,0x30,0x77, + 0x5,0x2e,0x68, 0x6,0x3f,0x4f, 0x5,0x38,0x2e, 0x6,0x52,0x4a, + 0x6,0x5c,0x55, 0x7,0x22,0x65, 0x7,0x2d,0x5d, 0x5,0x21,0x2a, + 0x5,0x21,0x47, 0x6,0x21,0x78, 0x6,0x21,0x7c, 0x6,0x21,0x77, + 0x6,0x21,0x7a, 0x6,0x21,0x7b, 0x6,0x23,0x21, 0x6,0x23,0x22, + 0x6,0x22,0x7c, 0x6,0x22,0x7a, 0x6,0x23,0x23, 0x6,0x22,0x7b, + 0x6,0x22,0x7d, 0x6,0x22,0x7e, 0x5,0x21,0x6a, 0x5,0x22,0x60, + 0x5,0x22,0x5f, 0x6,0x24,0x68, 0x6,0x24,0x69, 0x6,0x24,0x6a, + 0x6,0x24,0x6b, 0x5,0x24,0x2f, 0x6,0x27,0x51, 0x5,0x24,0x31, + 0x6,0x27,0x53, 0x5,0x24,0x30, 0xf,0x24,0x29, 0xf,0x24,0x2a, + 0xf,0x24,0x2b, 0xf,0x24,0x2c, 0x6,0x27,0x52, 0x5,0x24,0x32, + 0x5,0x26,0x2f, 0x6,0x2b,0x36, 0x6,0x2b,0x33, 0x6,0x2b,0x34, + 0x6,0x2b,0x37, 0x6,0x2b,0x35, 0x6,0x30,0x7e, 0x5,0x29,0x2c, + 0x6,0x30,0x7d, 0x4,0x29,0x30, 0x6,0x30,0x79, 0x5,0x29,0x2b, + 0x6,0x30,0x78, 0x5,0x2d,0x44, 0x5,0x2d,0x43, 0x5,0x2d,0x45, + 0x6,0x37,0x43, 0x6,0x37,0x41, 0x5,0x2d,0x46, 0xf,0x2f,0x3d, + 0x6,0x37,0x42, 0x5,0x32,0x4a, 0x5,0x32,0x48, 0x5,0x32,0x49, + 0x6,0x3f,0x56, 0x6,0x3f,0x50, 0x4,0x29,0x2f, 0x6,0x48,0x55, + 0x6,0x3f,0x52, 0x6,0x3f,0x53, 0x5,0x32,0x47, 0x6,0x3f,0x51, + 0xf,0x34,0x55, 0xf,0x34,0x56, 0xf,0x34,0x57, 0x6,0x3f,0x54, + 0x6,0x3f,0x57, 0x6,0x3f,0x55, 0x6,0x48,0x56, 0x6,0x48,0x59, + 0x5,0x38,0x2f, 0x5,0x38,0x32, 0x5,0x38,0x31, 0x6,0x48,0x5a, + 0x5,0x38,0x30, 0x6,0x48,0x58, 0x6,0x48,0x57, 0x5,0x3f,0x28, + 0x4,0x3d,0x31, 0x6,0x52,0x4b, 0xf,0x41,0x40, 0x6,0x52,0x4c, + 0x5,0x45,0x62, 0x6,0x5c,0x56, 0x5,0x45,0x63, 0x6,0x5c,0x57, + 0x6,0x5c,0x59, 0xf,0x47,0x70, 0x6,0x5c,0x5a, 0x6,0x5c,0x58, + 0x5,0x4d,0x21, 0x5,0x4d,0x22, 0x4,0x49,0x60, 0x7,0x22,0x66, + 0xf,0x4e,0x64, 0xf,0x4e,0x65, 0x7,0x22,0x67, 0x7,0x2d,0x5f, + 0x5,0x54,0x46, 0x4,0x50,0x30, 0x7,0x2d,0x60, 0x7,0x2d,0x5e, + 0x7,0x37,0x73, 0x7,0x37,0x72, 0x7,0x37,0x74, 0xf,0x5a,0x24, + 0x4,0x5b,0x22, 0x5,0x61,0x5e, 0x7,0x3f,0x52, 0xf,0x5e,0x5d, + 0x5,0x61,0x5d, 0x7,0x46,0x6d, 0x7,0x46,0x6b, 0x7,0x46,0x6f, + 0x7,0x46,0x6a, 0x7,0x46,0x6c, 0x5,0x67,0x6b, 0x5,0x6c,0x25, + 0x7,0x4d,0x5f, 0x4,0x5f,0x5f, 0x7,0x4d,0x61, 0x7,0x4d,0x60, + 0x5,0x6c,0x26, 0x5,0x6f,0x7c, 0x5,0x6f,0x7d, 0x4,0x66,0x3d, + 0x7,0x53,0x35, 0x5,0x73,0x3f, 0x7,0x60,0x3c, 0x7,0x60,0x6f, + 0x7,0x64,0x46, 0x6,0x24,0x6e, 0x6,0x24,0x6c, 0x6,0x24,0x6d, + 0x5,0x24,0x33, 0x6,0x31,0x21, 0x6,0x2b,0x38, 0x6,0x2d,0x32, + 0x6,0x31,0x24, 0x6,0x37,0x44, 0x6,0x31,0x22, 0x6,0x31,0x23, + 0x6,0x37,0x46, 0x6,0x37,0x45, 0x6,0x3f,0x58, 0x6,0x4f,0x21, + 0x5,0x38,0x33, 0x6,0x48,0x5c, 0x6,0x48,0x5b, 0x5,0x3f,0x2a, + 0x6,0x5c,0x5c, 0x6,0x5c,0x5f, 0x6,0x5c,0x5d, 0x6,0x5c,0x5b, + 0x6,0x5c,0x5e, 0x7,0x2d,0x61, 0x7,0x2d,0x4e, 0x4,0x50,0x32, + 0x7,0x37,0x75, 0x7,0x3f,0x55, 0x7,0x3f,0x54, 0x7,0x3f,0x53, + 0x7,0x46,0x72, 0x7,0x46,0x70, 0x7,0x46,0x71, 0x7,0x57,0x71, + 0x7,0x5b,0x4e, 0x7,0x62,0x37, 0x6,0x23,0x25, 0x6,0x23,0x24, + 0xf,0x21,0x64, 0x6,0x24,0x71, 0x6,0x24,0x6f, 0xf,0x24,0x2d, + 0x6,0x27,0x54, 0x5,0x26,0x30, 0x6,0x2b,0x3b, 0x6,0x2b,0x3a, + 0x6,0x37,0x47, 0x4,0x2c,0x74, 0x4,0x2c,0x73, 0x5,0x35,0x60, + 0x6,0x3f,0x5d, 0x6,0x3f,0x59, 0x6,0x3f,0x5a, 0xf,0x34,0x58, + 0xf,0x34,0x59, 0xf,0x34,0x5a, 0x6,0x3f,0x5c, 0x6,0x3f,0x5b, + 0x5,0x32,0x4b, 0x6,0x48,0x5d, 0x6,0x48,0x60, 0x6,0x48,0x5e, + 0x6,0x48,0x5f, 0xf,0x3a,0x6e, 0x6,0x52,0x51, 0x6,0x52,0x4e, + 0x6,0x52,0x50, 0x6,0x52,0x4f, 0xf,0x41,0x41, 0x4,0x43,0x3c, + 0x6,0x5c,0x60, 0x7,0x22,0x6b, 0x7,0x22,0x6c, 0x7,0x22,0x69, + 0x7,0x22,0x6a, 0x5,0x4d,0x23, 0x4,0x50,0x33, 0x5,0x54,0x47, + 0x7,0x2d,0x64, 0x7,0x37,0x76, 0x7,0x3f,0x56, 0xf,0x67,0x54, + 0x7,0x4d,0x62, 0x7,0x53,0x36, 0x5,0x73,0x41, 0xf,0x6c,0x27, + 0x6,0x21,0x7d, 0x5,0x21,0x6b, 0x4,0x21,0x79, 0x5,0x22,0x61, + 0x4,0x22,0x6e, 0x5,0x22,0x62, 0x5,0x24,0x34, 0x6,0x27,0x58, + 0x5,0x24,0x35, 0x6,0x27,0x57, 0x6,0x27,0x59, 0x6,0x27,0x5b, + 0x6,0x27,0x56, 0x5,0x24,0x36, 0x6,0x27,0x55, 0x6,0x27,0x5a, + 0x5,0x26,0x33, 0x6,0x2b,0x3d, 0x5,0x26,0x31, 0x6,0x2b,0x3c, + 0x5,0x26,0x32, 0x5,0x29,0x2d, 0x6,0x2b,0x3f, 0x4,0x29,0x33, + 0x6,0x31,0x26, 0x5,0x29,0x30, 0x5,0x29,0x2e, 0x6,0x31,0x28, + 0x5,0x29,0x32, 0x5,0x29,0x31, 0xf,0x2a,0x5e, 0x6,0x31,0x27, + 0x6,0x37,0x4d, 0x4,0x2c,0x79, 0x4,0x2c,0x77, 0x4,0x2c,0x7c, + 0x4,0x2c,0x75, 0x5,0x2d,0x4b, 0x5,0x2d,0x49, 0x4,0x2c,0x78, + 0x4,0x2c,0x7a, 0x4,0x2c,0x76, 0x4,0x2c,0x7b, 0x5,0x2d,0x4a, + 0x6,0x37,0x49, 0x6,0x37,0x4f, 0x6,0x37,0x4c, 0xf,0x2f,0x3f, + 0xf,0x2f,0x40, 0x6,0x37,0x4b, 0x6,0x37,0x50, 0x6,0x37,0x4e, + 0x6,0x37,0x4a, 0x4,0x31,0x56, 0x5,0x32,0x4f, 0x6,0x3f,0x68, + 0x6,0x3f,0x61, 0x5,0x32,0x4c, 0x5,0x32,0x51, 0x5,0x32,0x4e, + 0x6,0x3f,0x60, 0x5,0x32,0x50, 0x4,0x31,0x58, 0x6,0x3f,0x67, + 0x6,0x3f,0x65, 0x6,0x3f,0x62, 0x4,0x31,0x59, 0x6,0x3f,0x66, + 0x5,0x32,0x4d, 0x6,0x3f,0x64, 0x6,0x3f,0x5f, 0x6,0x3f,0x63, + 0x6,0x48,0x64, 0xf,0x34,0x5c, 0x4,0x37,0x46, 0x5,0x38,0x36, + 0x5,0x38,0x35, 0x5,0x38,0x3b, 0x5,0x38,0x3a, 0x5,0x38,0x37, + 0x4,0x37,0x47, 0x6,0x48,0x61, 0x5,0x38,0x34, 0x6,0x48,0x63, + 0x5,0x38,0x38, 0x4,0x31,0x55, 0xf,0x3a,0x70, 0x6,0x48,0x62, + 0xf,0x3a,0x6f, 0x5,0x38,0x39, 0x5,0x3f,0x2c, 0x5,0x3f,0x2b, + 0x6,0x52,0x52, 0x6,0x52,0x54, 0x6,0x52,0x57, 0x6,0x52,0x53, + 0xf,0x41,0x42, 0xf,0x41,0x43, 0xf,0x41,0x44, 0xf,0x41,0x45, + 0xf,0x41,0x46, 0xf,0x41,0x47, 0x6,0x52,0x55, 0x6,0x52,0x56, + 0x6,0x56,0x6c, 0x5,0x3f,0x2d, 0x4,0x3d,0x32, 0x6,0x5c,0x66, + 0x6,0x5c,0x63, 0x5,0x45,0x66, 0x6,0x5c,0x62, 0x4,0x43,0x3e, + 0x5,0x45,0x65, 0x4,0x43,0x41, 0x4,0x43,0x40, 0x6,0x5c,0x61, + 0x5,0x45,0x68, 0x5,0x45,0x6a, 0x5,0x45,0x64, 0x6,0x5c,0x68, + 0x6,0x5c,0x69, 0x6,0x5c,0x6a, 0x5,0x45,0x67, 0x6,0x5c,0x64, + 0xf,0x47,0x71, 0xf,0x47,0x72, 0xf,0x47,0x73, 0xf,0x47,0x74, + 0xf,0x47,0x75, 0x6,0x5c,0x65, 0x4,0x49,0x64, 0x5,0x4d,0x24, + 0x5,0x5b,0x48, 0x4,0x49,0x63, 0x4,0x49,0x62, 0x5,0x4d,0x25, + 0x7,0x22,0x6d, 0x7,0x22,0x6f, 0xf,0x4e,0x66, 0xf,0x4e,0x67, + 0x7,0x22,0x6e, 0x7,0x22,0x70, 0x7,0x2d,0x65, 0x5,0x54,0x48, + 0x5,0x54,0x4a, 0x7,0x2d,0x67, 0x7,0x2d,0x66, 0xf,0x54,0x44, + 0xf,0x54,0x45, 0x7,0x2d,0x68, 0x5,0x54,0x49, 0x5,0x5b,0x47, + 0x7,0x37,0x77, 0x4,0x56,0x30, 0xf,0x5c,0x5f, 0x5,0x5b,0x46, + 0x5,0x61,0x60, 0x7,0x3f,0x57, 0x5,0x61,0x5f, 0x7,0x3f,0x58, + 0xf,0x5e,0x5e, 0x5,0x61,0x61, 0x7,0x46,0x73, 0x7,0x46,0x75, + 0x7,0x46,0x76, 0x7,0x4d,0x22, 0x7,0x46,0x74, 0x5,0x6c,0x27, + 0x4,0x63,0x3e, 0x4,0x63,0x3d, 0xf,0x65,0x2a, 0x7,0x4d,0x63, + 0x7,0x53,0x37, 0x5,0x6f,0x7e, 0x7,0x57,0x72, 0x4,0x6a,0x47, + 0x5,0x79,0x28, 0x5,0x21,0x31, 0x6,0x22,0x21, 0x4,0x22,0x6f, + 0x5,0x21,0x6c, 0x6,0x23,0x26, 0xf,0x22,0x4f, 0x6,0x24,0x75, + 0x5,0x22,0x63, 0x6,0x27,0x60, 0x5,0x22,0x69, 0x6,0x27,0x5d, + 0x5,0x22,0x64, 0x6,0x24,0x73, 0x6,0x24,0x74, 0x5,0x22,0x65, + 0x6,0x27,0x5c, 0x6,0x27,0x5e, 0x6,0x27,0x61, 0x6,0x24,0x72, + 0x5,0x22,0x68, 0x5,0x24,0x37, 0x5,0x24,0x39, 0x4,0x26,0x45, + 0x6,0x27,0x66, 0x6,0x27,0x64, 0x6,0x2b,0x46, 0x6,0x27,0x67, + 0x6,0x2b,0x40, 0x6,0x27,0x62, 0x6,0x27,0x63, 0x6,0x2b,0x44, + 0x6,0x27,0x65, 0x6,0x27,0x68, 0x3,0x25,0x7e, 0x6,0x27,0x69, + 0x5,0x24,0x3a, 0xf,0x24,0x2e, 0xf,0x24,0x2f, 0xf,0x24,0x31, + 0xf,0x24,0x32, 0xf,0x24,0x34, 0xf,0x24,0x35, 0xf,0x24,0x36, + 0xf,0x26,0x77, 0xf,0x26,0x78, 0xf,0x26,0x79, 0xf,0x26,0x7a, + 0xf,0x26,0x7b, 0xf,0x26,0x7d, 0xf,0x26,0x7e, 0xf,0x27,0x21, + 0xf,0x26,0x7c, 0x6,0x2b,0x45, 0x6,0x2b,0x41, 0x6,0x2b,0x42, + 0x4,0x24,0x2d, 0xf,0x24,0x30, 0x4,0x26,0x44, 0x5,0x26,0x34, + 0x6,0x2b,0x43, 0x4,0x26,0x47, 0x6,0x2b,0x4c, 0x4,0x29,0x47, + 0x6,0x31,0x2f, 0x4,0x26,0x4b, 0x6,0x2b,0x4d, 0x6,0x31,0x29, + 0x5,0x26,0x35, 0x6,0x31,0x2c, 0x6,0x2b,0x4f, 0x4,0x26,0x4a, + 0x5,0x26,0x37, 0x4,0x29,0x38, 0x5,0x26,0x36, 0x4,0x29,0x43, + 0x6,0x2b,0x49, 0x5,0x26,0x38, 0x4,0x26,0x51, 0x4,0x29,0x44, + 0x6,0x31,0x2a, 0x6,0x31,0x2b, 0x6,0x2b,0x50, 0x6,0x2b,0x47, + 0x6,0x31,0x2d, 0xf,0x26,0x75, 0xf,0x27,0x22, 0xf,0x2a,0x70, + 0x4,0x29,0x46, 0x6,0x31,0x2e, 0x6,0x2b,0x48, 0x6,0x2b,0x4a, + 0x6,0x2b,0x4e, 0x6,0x2b,0x4b, 0xf,0x2a,0x64, 0xf,0x2a,0x5f, + 0xf,0x2a,0x62, 0xf,0x2a,0x65, 0xf,0x2a,0x68, 0xf,0x2a,0x6c, + 0x6,0x37,0x5b, 0x6,0x37,0x59, 0x6,0x31,0x32, 0x4,0x29,0x49, + 0x5,0x29,0x37, 0x4,0x29,0x42, 0x4,0x2d,0x29, 0x5,0x2d,0x4e, + 0x5,0x29,0x36, 0x6,0x31,0x39, 0x6,0x37,0x57, 0x6,0x31,0x33, + 0x4,0x2c,0x7d, 0x5,0x2d,0x4c, 0x6,0x31,0x35, 0x6,0x37,0x53, + 0x4,0x2d,0x21, 0x6,0x31,0x38, 0x5,0x29,0x34, 0x4,0x2c,0x7e, + 0x6,0x31,0x3a, 0x6,0x31,0x31, 0x6,0x31,0x37, 0x6,0x37,0x56, + 0x6,0x37,0x55, 0x4,0x2d,0x2a, 0x6,0x31,0x34, 0xf,0x2a,0x61, + 0xf,0x2a,0x66, 0xf,0x2a,0x69, 0xf,0x2a,0x6b, 0xf,0x2a,0x6d, + 0xf,0x2a,0x6e, 0xf,0x2a,0x6f, 0xf,0x2f,0x46, 0xf,0x2f,0x47, + 0xf,0x2f,0x48, 0xf,0x2f,0x4a, 0x6,0x37,0x52, 0xf,0x2f,0x44, + 0x6,0x37,0x58, 0xf,0x2a,0x63, 0x5,0x2d,0x4d, 0x6,0x37,0x51, + 0x5,0x2d,0x52, 0x5,0x2d,0x58, 0x5,0x2d,0x5b, 0x6,0x3f,0x6d, + 0x6,0x37,0x63, 0x6,0x3f,0x6f, 0x6,0x3f,0x6b, 0x6,0x3f,0x70, + 0x6,0x37,0x64, 0x5,0x2d,0x55, 0x6,0x3f,0x69, 0x4,0x2d,0x2e, + 0x6,0x3f,0x73, 0x5,0x2d,0x56, 0x4,0x2d,0x26, 0x5,0x32,0x5d, + 0x5,0x2d,0x51, 0x5,0x2d,0x5c, 0x6,0x37,0x62, 0x6,0x37,0x5d, + 0x5,0x32,0x54, 0x6,0x37,0x5f, 0x6,0x37,0x61, 0x6,0x3f,0x6c, + 0x6,0x37,0x60, 0x6,0x3f,0x71, 0x4,0x2d,0x27, 0x5,0x2d,0x50, + 0x6,0x37,0x5c, 0x5,0x32,0x53, 0x6,0x3f,0x72, 0x6,0x3f,0x74, + 0x5,0x32,0x52, 0x5,0x2d,0x4f, 0xf,0x2f,0x41, 0xf,0x2f,0x42, + 0xf,0x2f,0x43, 0xf,0x2f,0x49, 0xf,0x2f,0x4b, 0xf,0x34,0x5d, + 0xf,0x34,0x5f, 0xf,0x34,0x60, 0xf,0x34,0x64, 0xf,0x34,0x65, + 0xf,0x34,0x66, 0xf,0x34,0x67, 0xf,0x34,0x68, 0x6,0x3f,0x6a, + 0x6,0x37,0x65, 0x6,0x37,0x66, 0x5,0x2d,0x54, 0x5,0x2d,0x59, + 0x4,0x37,0x5a, 0x6,0x48,0x71, 0x4,0x37,0x4d, 0x5,0x32,0x59, + 0x6,0x3f,0x7c, 0x4,0x37,0x4b, 0x6,0x48,0x73, 0x6,0x48,0x69, + 0x5,0x38,0x55, 0x6,0x3f,0x7e, 0x6,0x48,0x72, 0x6,0x40,0x22, + 0x4,0x31,0x65, 0x5,0x2d,0x53, 0x4,0x31,0x6d, 0x6,0x3f,0x77, + 0x6,0x48,0x6e, 0x4,0x31,0x61, 0x5,0x38,0x3f, 0x5,0x32,0x57, + 0x5,0x32,0x5a, 0x4,0x37,0x4c, 0x6,0x3f,0x79, 0x5,0x32,0x5c, + 0x6,0x3f,0x76, 0x6,0x3f,0x6e, 0x4,0x31,0x69, 0x5,0x38,0x3c, + 0x6,0x48,0x70, 0x5,0x32,0x5e, 0x4,0x31,0x5f, 0x6,0x3f,0x7d, + 0x6,0x3f,0x7b, 0x6,0x3f,0x7a, 0x6,0x48,0x66, 0x6,0x48,0x6c, + 0x5,0x38,0x3e, 0x5,0x38,0x41, 0x6,0x48,0x74, 0x5,0x32,0x55, + 0x6,0x48,0x6b, 0x6,0x48,0x76, 0x6,0x48,0x67, 0x6,0x48,0x65, + 0x6,0x3f,0x75, 0x5,0x38,0x40, 0xf,0x34,0x61, 0xf,0x34,0x5e, + 0xf,0x34,0x62, 0xf,0x34,0x63, 0xf,0x34,0x69, 0xf,0x34,0x6a, + 0xf,0x34,0x6b, 0xf,0x34,0x6c, 0xf,0x34,0x6d, 0xf,0x34,0x6f, + 0xf,0x34,0x70, 0xf,0x34,0x72, 0xf,0x3a,0x72, 0xf,0x3a,0x73, + 0xf,0x3a,0x74, 0xf,0x3a,0x75, 0xf,0x3a,0x76, 0xf,0x3a,0x77, + 0xf,0x3a,0x79, 0xf,0x3a,0x7a, 0xf,0x3a,0x7c, 0xf,0x3a,0x7d, + 0xf,0x3a,0x7e, 0xf,0x3b,0x21, 0xf,0x3b,0x22, 0xf,0x3b,0x25, + 0xf,0x3b,0x29, 0xf,0x3b,0x2a, 0xf,0x3b,0x2c, 0xf,0x3b,0x2e, + 0x6,0x48,0x68, 0x5,0x32,0x56, 0x6,0x3f,0x78, 0xf,0x3b,0x27, + 0xf,0x34,0x6e, 0x6,0x49,0x24, 0x6,0x48,0x6d, 0x6,0x40,0x21, + 0xf,0x3b,0x24, 0x4,0x3d,0x3f, 0x5,0x38,0x4a, 0x5,0x38,0x4d, + 0x5,0x38,0x52, 0x4,0x37,0x4f, 0x4,0x37,0x57, 0x4,0x37,0x51, + 0x6,0x52,0x5d, 0x6,0x49,0x23, 0x5,0x38,0x50, 0x6,0x49,0x22, + 0x4,0x37,0x53, 0x5,0x38,0x56, 0x5,0x38,0x58, 0x5,0x38,0x43, + 0x6,0x52,0x61, 0x5,0x38,0x5a, 0x5,0x3f,0x33, 0x4,0x37,0x5b, + 0x5,0x38,0x53, 0x6,0x49,0x21, 0x5,0x38,0x46, 0x6,0x48,0x7b, + 0x5,0x3f,0x34, 0x5,0x38,0x44, 0x5,0x38,0x54, 0x5,0x32,0x5f, + 0x6,0x52,0x58, 0x5,0x38,0x47, 0x4,0x3d,0x36, 0x4,0x37,0x58, + 0x5,0x38,0x59, 0x5,0x38,0x51, 0x5,0x38,0x4b, 0x5,0x3f,0x31, + 0x6,0x48,0x77, 0x5,0x38,0x4f, 0x5,0x38,0x3d, 0x6,0x48,0x7e, + 0x6,0x52,0x62, 0x6,0x52,0x63, 0x6,0x52,0x5a, 0x6,0x48,0x7d, + 0x5,0x38,0x57, 0x6,0x52,0x5e, 0x6,0x52,0x60, 0x5,0x3f,0x2f, + 0x4,0x3d,0x40, 0x4,0x37,0x52, 0x5,0x38,0x49, 0x6,0x48,0x79, + 0xf,0x3a,0x71, 0xf,0x3a,0x7b, 0xf,0x3b,0x23, 0xf,0x3b,0x28, + 0xf,0x3b,0x2d, 0xf,0x41,0x48, 0xf,0x41,0x4e, 0xf,0x41,0x50, + 0xf,0x41,0x51, 0xf,0x41,0x52, 0x6,0x52,0x5c, 0x6,0x52,0x5f, + 0x6,0x52,0x5b, 0x6,0x48,0x7a, 0xf,0x3b,0x2b, 0x5,0x38,0x4e, + 0x5,0x3f,0x2e, 0x5,0x38,0x4c, 0xf,0x34,0x71, 0xf,0x47,0x7d, + 0x5,0x3f,0x3c, 0x5,0x3f,0x36, 0x5,0x3f,0x35, 0x6,0x52,0x6b, + 0x5,0x4d,0x26, 0x5,0x3f,0x45, 0x6,0x5c,0x6f, 0x5,0x3f,0x39, + 0x5,0x3f,0x3f, 0x5,0x3f,0x44, 0x6,0x5c,0x74, 0x6,0x52,0x6f, + 0x5,0x45,0x6b, 0x5,0x3f,0x3b, 0x6,0x5c,0x6c, 0x6,0x52,0x65, + 0x5,0x3f,0x38, 0x5,0x3f,0x3d, 0x5,0x3f,0x3a, 0x6,0x52,0x59, + 0x4,0x49,0x6e, 0x6,0x5c,0x76, 0x6,0x5c,0x79, 0x5,0x3f,0x43, + 0x6,0x52,0x68, 0x6,0x5c,0x72, 0x4,0x43,0x4f, 0x6,0x5c,0x78, + 0x6,0x5c,0x77, 0x5,0x3f,0x41, 0x5,0x45,0x6d, 0x5,0x3f,0x3e, + 0x6,0x5c,0x71, 0x6,0x5c,0x6e, 0x6,0x5c,0x6d, 0x5,0x3f,0x37, + 0x6,0x52,0x67, 0x6,0x52,0x6d, 0xf,0x41,0x4a, 0xf,0x41,0x4b, + 0xf,0x41,0x4c, 0xf,0x41,0x4d, 0xf,0x41,0x4f, 0xf,0x41,0x53, + 0xf,0x47,0x76, 0xf,0x47,0x77, 0xf,0x47,0x79, 0xf,0x47,0x7a, + 0xf,0x48,0x25, 0xf,0x48,0x28, 0x6,0x5c,0x70, 0x6,0x5c,0x75, + 0x5,0x3f,0x40, 0xf,0x41,0x49, 0x6,0x5c,0x73, 0x6,0x52,0x6e, + 0x6,0x5d,0x23, 0x6,0x5d,0x27, 0x4,0x43,0x45, 0x4,0x43,0x44, + 0x5,0x4d,0x27, 0x6,0x5c,0x7c, 0x5,0x45,0x77, 0x5,0x45,0x76, + 0x5,0x45,0x73, 0x4,0x3d,0x35, 0x6,0x5c,0x7b, 0x7,0x22,0x72, + 0x7,0x22,0x75, 0x5,0x4d,0x29, 0x5,0x45,0x70, 0x5,0x45,0x6f, + 0x5,0x45,0x6c, 0x5,0x45,0x71, 0x5,0x45,0x72, 0x5,0x45,0x79, + 0x6,0x5d,0x25, 0x6,0x5c,0x7d, 0x6,0x5c,0x7e, 0x6,0x52,0x6a, + 0x6,0x5d,0x22, 0x7,0x22,0x74, 0x6,0x5d,0x21, 0x7,0x22,0x77, + 0x5,0x45,0x74, 0x5,0x45,0x78, 0x7,0x2d,0x6a, 0x4,0x43,0x53, + 0xf,0x47,0x78, 0xf,0x47,0x7c, 0xf,0x47,0x7e, 0xf,0x48,0x21, + 0xf,0x48,0x23, 0xf,0x48,0x24, 0xf,0x48,0x26, 0xf,0x4e,0x69, + 0xf,0x4e,0x6a, 0xf,0x4e,0x6b, 0xf,0x4e,0x6c, 0xf,0x4e,0x6d, + 0xf,0x4e,0x6e, 0xf,0x4e,0x6f, 0xf,0x4e,0x73, 0xf,0x4e,0x75, + 0x7,0x22,0x73, 0x7,0x22,0x78, 0x6,0x5c,0x6b, 0x5,0x45,0x6e, + 0x6,0x5c,0x7a, 0x5,0x4d,0x28, 0x5,0x45,0x75, 0x7,0x2d,0x71, + 0x4,0x49,0x66, 0x4,0x43,0x52, 0x7,0x2d,0x6b, 0x4,0x49,0x71, + 0x7,0x2d,0x6d, 0x5,0x4d,0x2f, 0x7,0x2d,0x73, 0x4,0x49,0x6a, + 0x5,0x4d,0x2e, 0x7,0x22,0x79, 0x5,0x4d,0x33, 0x4,0x49,0x72, + 0x7,0x2d,0x75, 0x5,0x38,0x45, 0x5,0x4d,0x32, 0x5,0x4d,0x35, + 0x4,0x50,0x35, 0x4,0x50,0x36, 0x7,0x23,0x21, 0x5,0x4d,0x34, + 0x7,0x37,0x7c, 0x5,0x4d,0x30, 0x5,0x54,0x4e, 0x4,0x56,0x34, + 0x7,0x22,0x7a, 0x7,0x23,0x22, 0x5,0x54,0x54, 0x5,0x4d,0x2b, + 0x5,0x4d,0x2d, 0x5,0x54,0x4d, 0x5,0x4d,0x2c, 0x7,0x2e,0x22, + 0x7,0x2d,0x77, 0x7,0x2d,0x76, 0x7,0x22,0x7e, 0x4,0x50,0x3c, + 0x7,0x2d,0x70, 0x7,0x2d,0x6f, 0xf,0x48,0x22, 0xf,0x4e,0x70, + 0x7,0x2d,0x72, 0x5,0x4d,0x31, 0x7,0x2d,0x6c, 0xf,0x4e,0x71, + 0xf,0x4e,0x72, 0xf,0x4e,0x74, 0xf,0x4e,0x76, 0xf,0x54,0x47, + 0xf,0x54,0x48, 0xf,0x54,0x4a, 0xf,0x54,0x4b, 0xf,0x54,0x51, + 0xf,0x54,0x53, 0x7,0x2d,0x74, 0x5,0x54,0x4b, 0x7,0x30,0x50, + 0x7,0x22,0x7d, 0x7,0x25,0x71, 0x4,0x49,0x70, 0x5,0x54,0x4c, + 0x5,0x54,0x4f, 0xf,0x4e,0x68, 0xf,0x54,0x4f, 0x5,0x54,0x50, + 0x5,0x54,0x52, 0x7,0x2d,0x7b, 0x7,0x2d,0x78, 0x5,0x54,0x55, + 0x5,0x54,0x56, 0x5,0x54,0x51, 0x7,0x2d,0x7e, 0x7,0x2d,0x7c, + 0x7,0x2d,0x7d, 0x5,0x54,0x57, 0x4,0x50,0x3d, 0x5,0x5b,0x49, + 0x7,0x2e,0x21, 0x7,0x37,0x7b, 0x7,0x37,0x7d, 0x7,0x37,0x7a, + 0x7,0x38,0x21, 0x5,0x5b,0x4b, 0x7,0x2d,0x7a, 0x7,0x37,0x79, + 0x7,0x2d,0x6e, 0xf,0x54,0x4d, 0x5,0x54,0x53, 0x7,0x38,0x22, + 0xf,0x54,0x49, 0xf,0x54,0x4e, 0xf,0x54,0x52, 0xf,0x5a,0x25, + 0xf,0x5a,0x26, 0xf,0x5a,0x2e, 0xf,0x5a,0x27, 0x5,0x5b,0x4a, + 0x5,0x54,0x58, 0xf,0x5a,0x2a, 0xf,0x54,0x4c, 0x7,0x37,0x78, + 0x5,0x5b,0x51, 0x4,0x56,0x35, 0x4,0x56,0x31, 0x4,0x5b,0x2a, + 0x5,0x5b,0x4e, 0x5,0x61,0x64, 0x5,0x61,0x62, 0x7,0x3f,0x5b, + 0x7,0x38,0x26, 0x4,0x5b,0x26, 0x5,0x5b,0x4d, 0x5,0x5b,0x4f, + 0x7,0x38,0x23, 0x7,0x38,0x25, 0x5,0x5b,0x50, 0x5,0x61,0x63, + 0x7,0x3f,0x5a, 0x5,0x61,0x65, 0x7,0x3f,0x59, 0x7,0x22,0x76, + 0xf,0x5a,0x2b, 0xf,0x5a,0x2d, 0xf,0x5e,0x5f, 0xf,0x5e,0x60, + 0xf,0x5e,0x62, 0xf,0x5e,0x63, 0xf,0x5e,0x65, 0xf,0x5e,0x66, + 0xf,0x5e,0x67, 0x7,0x3f,0x5c, 0x7,0x38,0x24, 0xf,0x5a,0x28, + 0x4,0x5b,0x27, 0x5,0x5b,0x52, 0x7,0x46,0x79, 0x7,0x3f,0x5d, + 0x5,0x61,0x68, 0x7,0x4d,0x64, 0x4,0x5f,0x63, 0x4,0x5f,0x62, + 0x7,0x46,0x7c, 0x5,0x61,0x69, 0x7,0x4d,0x67, 0x4,0x5b,0x28, + 0x5,0x61,0x6a, 0x7,0x47,0x25, 0x7,0x47,0x21, 0x7,0x46,0x78, + 0x5,0x61,0x67, 0x7,0x46,0x7e, 0x5,0x67,0x6d, 0x7,0x46,0x7a, + 0x5,0x67,0x70, 0x7,0x46,0x77, 0x7,0x47,0x22, 0x7,0x3f,0x5e, + 0x7,0x46,0x7d, 0x5,0x67,0x6e, 0xf,0x5e,0x64, 0x5,0x67,0x6f, + 0x7,0x46,0x7b, 0x5,0x67,0x6c, 0xf,0x62,0x39, 0x7,0x47,0x2a, + 0x4,0x63,0x44, 0x7,0x47,0x27, 0x5,0x67,0x74, 0x7,0x47,0x24, + 0x5,0x6c,0x2a, 0x7,0x47,0x29, 0x7,0x47,0x26, 0x7,0x3f,0x5f, + 0x5,0x67,0x75, 0x4,0x63,0x3f, 0x5,0x67,0x71, 0x5,0x6c,0x28, + 0x7,0x47,0x2b, 0x7,0x47,0x23, 0x7,0x4d,0x65, 0x5,0x67,0x77, + 0xf,0x62,0x3a, 0xf,0x62,0x38, 0xf,0x62,0x3b, 0xf,0x62,0x3c, + 0xf,0x62,0x3d, 0x7,0x4d,0x66, 0x5,0x61,0x66, 0x5,0x67,0x72, + 0xf,0x65,0x2b, 0x5,0x67,0x76, 0x5,0x6c,0x29, 0x7,0x53,0x39, + 0x7,0x4d,0x6a, 0x4,0x63,0x41, 0x7,0x4d,0x69, 0x4,0x63,0x45, + 0x7,0x53,0x38, 0x7,0x4d,0x6b, 0xf,0x67,0x55, 0x7,0x5b,0x4f, + 0x4,0x66,0x3e, 0x5,0x6c,0x2b, 0x7,0x57,0x73, 0x7,0x57,0x74, + 0x7,0x57,0x75, 0x7,0x53,0x3b, 0x7,0x53,0x3a, 0x7,0x53,0x3c, + 0xf,0x69,0x42, 0x7,0x57,0x76, 0x7,0x5b,0x50, 0x7,0x5b,0x52, + 0x7,0x5b,0x53, 0x7,0x5b,0x51, 0xf,0x6a,0x50, 0xf,0x69,0x41, + 0xf,0x6a,0x51, 0xf,0x6a,0x52, 0x7,0x5b,0x55, 0x5,0x77,0x5a, + 0x7,0x5b,0x54, 0x7,0x5e,0x65, 0xf,0x6a,0x53, 0xf,0x6b,0x47, + 0xf,0x6b,0x48, 0x5,0x77,0x5b, 0x7,0x5e,0x66, 0x5,0x79,0x29, + 0x7,0x5e,0x67, 0xf,0x6c,0x28, 0xf,0x6c,0x29, 0x4,0x6d,0x72, + 0xf,0x6c,0x7c, 0xf,0x6c,0x7d, 0x5,0x7b,0x3e, 0x5,0x7b,0x60, + 0xf,0x6d,0x34, 0x5,0x22,0x6a, 0x4,0x22,0x72, 0x6,0x24,0x76, + 0x6,0x27,0x6b, 0x5,0x24,0x3b, 0x6,0x27,0x6a, 0x6,0x27,0x6d, + 0x6,0x27,0x6c, 0x4,0x26,0x52, 0x6,0x2b,0x51, 0x6,0x2b,0x58, + 0x6,0x2b,0x54, 0x6,0x2b,0x56, 0x4,0x26,0x53, 0x6,0x2b,0x55, + 0x6,0x2b,0x53, 0x6,0x2b,0x57, 0xf,0x27,0x24, 0xf,0x27,0x23, + 0x6,0x31,0x3d, 0x6,0x31,0x3b, 0x6,0x31,0x3e, 0x6,0x31,0x40, + 0x4,0x29,0x4c, 0x6,0x31,0x41, 0x6,0x31,0x3f, 0xf,0x2a,0x71, + 0xf,0x2a,0x72, 0x6,0x31,0x3c, 0x6,0x37,0x67, 0x5,0x2d,0x5f, + 0x6,0x37,0x69, 0x5,0x2d,0x5e, 0x6,0x37,0x68, 0x5,0x32,0x61, + 0x4,0x31,0x6f, 0x6,0x40,0x25, 0xf,0x34,0x73, 0xf,0x34,0x74, + 0x6,0x40,0x24, 0x5,0x32,0x60, 0x6,0x49,0x28, 0x6,0x49,0x27, + 0x6,0x49,0x25, 0x6,0x49,0x26, 0x4,0x37,0x5c, 0x6,0x49,0x29, + 0xf,0x3b,0x2f, 0x5,0x38,0x5b, 0x5,0x38,0x5c, 0xf,0x34,0x76, + 0x4,0x3d,0x44, 0x6,0x52,0x71, 0x5,0x3f,0x47, 0x5,0x3f,0x49, + 0xf,0x41,0x55, 0x4,0x3d,0x41, 0x6,0x52,0x70, 0x5,0x3f,0x48, + 0x6,0x5d,0x29, 0x6,0x5d,0x2a, 0x5,0x45,0x7a, 0x5,0x45,0x7c, + 0x5,0x45,0x7b, 0x7,0x23,0x24, 0x5,0x45,0x7d, 0xf,0x48,0x29, + 0xf,0x48,0x2a, 0x6,0x5d,0x28, 0x5,0x4d,0x36, 0x4,0x49,0x73, + 0x4,0x49,0x74, 0x7,0x23,0x28, 0x7,0x23,0x27, 0x7,0x23,0x25, + 0x6,0x5d,0x2b, 0x7,0x23,0x23, 0xf,0x4e,0x7b, 0x7,0x23,0x29, + 0x7,0x23,0x26, 0xf,0x4e,0x77, 0xf,0x4e,0x78, 0xf,0x4e,0x7a, + 0x7,0x23,0x2a, 0x7,0x2e,0x2a, 0x7,0x2e,0x25, 0x7,0x2e,0x24, + 0x7,0x2e,0x27, 0x7,0x2e,0x26, 0x7,0x2e,0x29, 0x7,0x2e,0x28, + 0x7,0x2c,0x63, 0x7,0x31,0x70, 0x7,0x2e,0x23, 0x7,0x38,0x27, + 0x5,0x5b,0x53, 0xf,0x5a,0x2f, 0x7,0x3f,0x60, 0x7,0x47,0x2d, + 0x4,0x5f,0x65, 0x7,0x47,0x2e, 0x5,0x6c,0x2c, 0xf,0x65,0x2c, + 0x5,0x70,0x21, 0x7,0x53,0x3d, 0x6,0x23,0x27, 0x5,0x21,0x6d, + 0x6,0x24,0x77, 0x6,0x24,0x78, 0x4,0x24,0x34, 0xf,0x24,0x37, + 0xf,0x24,0x38, 0x5,0x26,0x39, 0x6,0x2b,0x59, 0x6,0x2b,0x5a, + 0x6,0x31,0x43, 0x6,0x31,0x42, 0x6,0x31,0x44, 0x5,0x29,0x39, + 0xf,0x2a,0x73, 0xf,0x2a,0x74, 0xf,0x2a,0x75, 0x6,0x31,0x46, + 0x6,0x31,0x45, 0x5,0x29,0x38, 0x6,0x37,0x6c, 0x6,0x37,0x6a, + 0x6,0x37,0x6b, 0x5,0x2d,0x61, 0x5,0x2d,0x60, 0x6,0x40,0x26, + 0xf,0x34,0x77, 0x5,0x38,0x5d, 0x5,0x38,0x5f, 0x5,0x38,0x60, + 0x5,0x38,0x5e, 0x5,0x3f,0x4a, 0x5,0x45,0x7e, 0x4,0x43,0x55, + 0x7,0x23,0x2b, 0x5,0x5b,0x54, 0x5,0x70,0x22, 0x6,0x23,0x28, + 0x5,0x21,0x6e, 0x6,0x23,0x29, 0x6,0x23,0x2a, 0x5,0x21,0x6f, + 0x5,0x22,0x6c, 0x4,0x22,0x76, 0x6,0x24,0x79, 0x5,0x22,0x72, + 0x5,0x22,0x70, 0x5,0x22,0x6f, 0x5,0x22,0x6b, 0x5,0x22,0x6d, + 0xf,0x22,0x50, 0xf,0x22,0x52, 0x5,0x22,0x71, 0x4,0x24,0x37, + 0x6,0x27,0x73, 0x6,0x27,0x76, 0x6,0x27,0x75, 0x4,0x26,0x57, + 0x5,0x24,0x3d, 0x6,0x27,0x6f, 0x4,0x24,0x38, 0x4,0x24,0x35, + 0x6,0x27,0x77, 0x5,0x24,0x3e, 0x4,0x24,0x3b, 0x6,0x27,0x72, + 0x6,0x2b,0x5d, 0x6,0x27,0x71, 0x6,0x2b,0x65, 0x6,0x2b,0x5b, + 0x6,0x27,0x70, 0x5,0x24,0x3c, 0x6,0x2b,0x5c, 0x6,0x27,0x74, + 0xf,0x24,0x3b, 0xf,0x24,0x3c, 0xf,0x24,0x3d, 0xf,0x24,0x3e, + 0xf,0x24,0x3f, 0xf,0x24,0x40, 0xf,0x24,0x41, 0xf,0x24,0x43, + 0xf,0x24,0x44, 0xf,0x24,0x45, 0xf,0x24,0x3a, 0x6,0x2b,0x5e, + 0x6,0x2b,0x5f, 0x6,0x2b,0x61, 0x5,0x26,0x3b, 0x5,0x29,0x3a, + 0x6,0x2b,0x64, 0x6,0x31,0x48, 0x5,0x26,0x3d, 0x6,0x31,0x4a, + 0x5,0x26,0x3c, 0x6,0x31,0x49, 0x6,0x31,0x47, 0x6,0x2b,0x62, + 0xf,0x27,0x26, 0xf,0x27,0x27, 0xf,0x27,0x28, 0xf,0x27,0x29, + 0xf,0x27,0x2a, 0xf,0x27,0x2b, 0xf,0x27,0x2c, 0xf,0x27,0x2d, + 0xf,0x27,0x2f, 0xf,0x27,0x25, 0x5,0x26,0x3e, 0x6,0x31,0x52, + 0x6,0x31,0x54, 0x4,0x29,0x58, 0x4,0x29,0x4f, 0x4,0x29,0x50, + 0x6,0x31,0x53, 0x6,0x37,0x6d, 0x5,0x29,0x3f, 0x5,0x29,0x42, + 0x5,0x29,0x41, 0x6,0x31,0x4d, 0x5,0x29,0x47, 0x4,0x2d,0x34, + 0x4,0x29,0x5c, 0x5,0x29,0x3e, 0x5,0x29,0x3d, 0x5,0x2d,0x63, + 0x4,0x29,0x53, 0x6,0x37,0x6e, 0x5,0x29,0x48, 0x4,0x29,0x5a, + 0x6,0x31,0x50, 0x5,0x29,0x40, 0x5,0x29,0x44, 0x6,0x31,0x4e, + 0x6,0x31,0x56, 0x6,0x31,0x4b, 0x5,0x29,0x43, 0x5,0x29,0x3c, + 0x6,0x31,0x55, 0x6,0x31,0x51, 0xf,0x2a,0x76, 0xf,0x2a,0x77, + 0xf,0x2a,0x78, 0xf,0x2a,0x79, 0xf,0x2a,0x7a, 0xf,0x2a,0x7b, + 0xf,0x2a,0x7c, 0xf,0x2a,0x7d, 0xf,0x2a,0x7e, 0xf,0x2b,0x21, + 0xf,0x2b,0x23, 0xf,0x2b,0x24, 0xf,0x2b,0x25, 0xf,0x2b,0x26, + 0xf,0x2b,0x27, 0xf,0x2b,0x28, 0xf,0x2b,0x29, 0xf,0x2b,0x2a, + 0xf,0x2f,0x53, 0xf,0x2f,0x5c, 0xf,0x2f,0x61, 0x6,0x31,0x4c, + 0xf,0x2b,0x22, 0x5,0x29,0x3b, 0x5,0x2d,0x62, 0x5,0x2d,0x64, + 0x4,0x2d,0x3d, 0x6,0x37,0x75, 0x4,0x2d,0x38, 0x5,0x2d,0x6d, + 0x5,0x2d,0x6b, 0x4,0x2d,0x39, 0x4,0x29,0x57, 0x4,0x2d,0x35, + 0x5,0x2d,0x6a, 0x6,0x37,0x7b, 0x6,0x37,0x70, 0x6,0x37,0x7d, + 0x6,0x37,0x73, 0x5,0x2d,0x69, 0x6,0x37,0x72, 0x6,0x37,0x77, + 0x4,0x2d,0x36, 0x6,0x37,0x78, 0x5,0x2d,0x6c, 0x5,0x2d,0x65, + 0x4,0x2d,0x37, 0x5,0x2d,0x67, 0x5,0x2d,0x68, 0x4,0x2d,0x3a, + 0x6,0x37,0x7a, 0x5,0x2d,0x66, 0x6,0x31,0x57, 0x6,0x37,0x76, + 0x6,0x40,0x27, 0x6,0x37,0x79, 0x6,0x37,0x74, 0x5,0x29,0x46, + 0x6,0x37,0x7c, 0x6,0x37,0x7e, 0xf,0x2f,0x4c, 0xf,0x2f,0x4d, + 0xf,0x2f,0x4e, 0xf,0x2f,0x4f, 0xf,0x2f,0x50, 0xf,0x2f,0x51, + 0xf,0x2f,0x52, 0xf,0x2f,0x55, 0xf,0x2f,0x56, 0xf,0x2f,0x57, + 0xf,0x2f,0x5a, 0xf,0x2f,0x5b, 0xf,0x2f,0x5d, 0xf,0x2f,0x5e, + 0xf,0x2f,0x60, 0xf,0x2f,0x62, 0x6,0x40,0x28, 0xf,0x2f,0x58, + 0x6,0x37,0x6f, 0xf,0x2f,0x54, 0x4,0x31,0x72, 0x4,0x31,0x73, + 0x4,0x37,0x5e, 0x5,0x32,0x69, 0x6,0x40,0x31, 0x5,0x2d,0x6e, + 0x6,0x40,0x37, 0x5,0x32,0x63, 0x4,0x31,0x74, 0x4,0x32,0x22, + 0x4,0x31,0x76, 0x5,0x32,0x62, 0x4,0x31,0x7d, 0x5,0x38,0x61, + 0x5,0x32,0x64, 0x6,0x40,0x34, 0x5,0x32,0x67, 0x6,0x40,0x35, + 0x6,0x40,0x2c, 0x6,0x40,0x29, 0x4,0x32,0x24, 0x6,0x49,0x2f, + 0x6,0x49,0x2a, 0x6,0x40,0x2a, 0x5,0x32,0x65, 0x6,0x49,0x2d, + 0x4,0x37,0x5d, 0x6,0x40,0x2f, 0x6,0x49,0x2c, 0x6,0x49,0x2b, + 0x5,0x32,0x68, 0x6,0x40,0x2d, 0x6,0x49,0x2e, 0x6,0x40,0x33, + 0x6,0x40,0x30, 0x4,0x31,0x75, 0x6,0x40,0x2e, 0xf,0x34,0x78, + 0xf,0x34,0x79, 0xf,0x34,0x7a, 0xf,0x34,0x7b, 0xf,0x34,0x7c, + 0xf,0x34,0x7e, 0xf,0x35,0x22, 0xf,0x35,0x23, 0xf,0x35,0x24, + 0xf,0x35,0x25, 0xf,0x35,0x26, 0xf,0x35,0x27, 0xf,0x35,0x28, + 0xf,0x35,0x29, 0xf,0x35,0x2a, 0xf,0x35,0x2b, 0xf,0x35,0x2c, + 0xf,0x35,0x2e, 0xf,0x35,0x2d, 0xf,0x35,0x2f, 0xf,0x35,0x30, + 0xf,0x3b,0x31, 0xf,0x34,0x7d, 0x5,0x32,0x66, 0x4,0x32,0x26, + 0xf,0x3b,0x41, 0x5,0x38,0x6b, 0x6,0x49,0x34, 0x4,0x37,0x69, + 0x6,0x49,0x3b, 0x6,0x49,0x36, 0x5,0x38,0x6d, 0x6,0x49,0x41, + 0x5,0x38,0x74, 0x6,0x49,0x31, 0x4,0x3d,0x51, 0x4,0x37,0x67, + 0x5,0x38,0x62, 0x5,0x38,0x6a, 0x4,0x37,0x5f, 0x5,0x38,0x68, + 0x4,0x37,0x63, 0x5,0x38,0x69, 0x4,0x37,0x6a, 0x5,0x38,0x66, + 0x4,0x37,0x6d, 0x5,0x38,0x6f, 0x4,0x37,0x66, 0x6,0x49,0x42, + 0x6,0x49,0x43, 0x6,0x49,0x3a, 0x5,0x38,0x71, 0x6,0x49,0x33, + 0x6,0x49,0x46, 0x6,0x49,0x37, 0x5,0x38,0x70, 0x4,0x37,0x6c, + 0x6,0x49,0x47, 0x6,0x49,0x32, 0x5,0x38,0x6c, 0x5,0x38,0x6e, + 0x6,0x49,0x44, 0x5,0x38,0x64, 0x6,0x49,0x3c, 0x6,0x49,0x45, + 0x6,0x49,0x40, 0x6,0x49,0x4c, 0x6,0x49,0x3f, 0x6,0x49,0x4d, + 0x6,0x49,0x48, 0x6,0x49,0x39, 0x5,0x38,0x72, 0x6,0x49,0x3d, + 0x5,0x38,0x73, 0x5,0x38,0x67, 0x6,0x49,0x38, 0x6,0x49,0x4b, + 0x5,0x38,0x65, 0x6,0x52,0x73, 0xf,0x3b,0x30, 0xf,0x3b,0x32, + 0xf,0x3b,0x34, 0xf,0x3b,0x35, 0xf,0x3b,0x36, 0xf,0x3b,0x37, + 0xf,0x3b,0x38, 0xf,0x3b,0x39, 0xf,0x3b,0x3a, 0xf,0x3b,0x3b, + 0xf,0x3b,0x3c, 0xf,0x3b,0x3d, 0xf,0x3b,0x3f, 0xf,0x3b,0x40, + 0xf,0x3b,0x42, 0xf,0x3b,0x43, 0xf,0x3b,0x44, 0xf,0x3b,0x45, + 0xf,0x3b,0x46, 0xf,0x3b,0x48, 0xf,0x3b,0x49, 0xf,0x3b,0x4a, + 0x6,0x52,0x74, 0x6,0x49,0x3e, 0x6,0x49,0x49, 0x6,0x49,0x35, + 0x5,0x38,0x63, 0xf,0x3b,0x47, 0x5,0x3f,0x52, 0x6,0x52,0x7b, + 0x4,0x3d,0x4b, 0x4,0x3d,0x49, 0x5,0x3f,0x55, 0x4,0x3d,0x46, + 0x6,0x52,0x78, 0x4,0x3d,0x4d, 0x4,0x3d,0x53, 0x4,0x3d,0x47, + 0x4,0x3d,0x52, 0x6,0x52,0x7e, 0x5,0x3f,0x51, 0x5,0x46,0x21, + 0x5,0x3f,0x4b, 0x6,0x5d,0x2c, 0x6,0x53,0x25, 0x6,0x52,0x75, + 0x6,0x53,0x23, 0x6,0x53,0x22, 0x5,0x3f,0x4d, 0x5,0x3f,0x53, + 0x5,0x3f,0x4e, 0x6,0x52,0x79, 0x6,0x53,0x21, 0x5,0x3f,0x50, + 0x6,0x53,0x24, 0x6,0x52,0x7c, 0x5,0x3f,0x4c, 0x6,0x52,0x7a, + 0x5,0x3f,0x4f, 0xf,0x41,0x56, 0xf,0x41,0x57, 0xf,0x41,0x58, + 0xf,0x41,0x59, 0xf,0x41,0x5a, 0xf,0x41,0x5b, 0xf,0x41,0x5c, + 0xf,0x41,0x5d, 0xf,0x41,0x5e, 0xf,0x41,0x60, 0xf,0x41,0x61, + 0xf,0x41,0x63, 0xf,0x41,0x64, 0xf,0x41,0x65, 0xf,0x41,0x66, + 0xf,0x41,0x67, 0xf,0x41,0x69, 0xf,0x48,0x30, 0x6,0x52,0x77, + 0x6,0x52,0x7d, 0x6,0x52,0x76, 0xf,0x41,0x68, 0x5,0x3f,0x54, + 0x6,0x5d,0x36, 0x5,0x4d,0x39, 0x5,0x46,0x27, 0x5,0x46,0x2a, + 0x4,0x43,0x62, 0x4,0x43,0x5f, 0x6,0x5d,0x3c, 0x6,0x5d,0x3d, + 0x6,0x5d,0x2e, 0x4,0x43,0x57, 0x6,0x5d,0x3f, 0x5,0x46,0x26, + 0x4,0x43,0x63, 0x5,0x4d,0x38, 0x5,0x46,0x29, 0x6,0x5d,0x35, + 0x4,0x43,0x59, 0x7,0x23,0x2f, 0x4,0x43,0x5b, 0x4,0x43,0x5a, + 0x7,0x23,0x2e, 0x7,0x23,0x31, 0x5,0x46,0x24, 0x4,0x43,0x65, + 0x6,0x5d,0x39, 0x6,0x5d,0x3e, 0x6,0x5d,0x3a, 0x5,0x46,0x28, + 0x6,0x5d,0x37, 0x5,0x46,0x2b, 0x7,0x23,0x2c, 0x6,0x5d,0x3b, + 0x6,0x5d,0x33, 0x6,0x5d,0x31, 0x5,0x46,0x22, 0x4,0x43,0x60, + 0x6,0x5d,0x2f, 0x6,0x5d,0x34, 0xf,0x48,0x2b, 0xf,0x48,0x2c, + 0xf,0x48,0x2d, 0xf,0x48,0x2e, 0xf,0x48,0x2f, 0xf,0x48,0x33, + 0xf,0x48,0x34, 0xf,0x48,0x35, 0xf,0x48,0x37, 0xf,0x48,0x38, + 0xf,0x48,0x3a, 0xf,0x48,0x3b, 0xf,0x48,0x39, 0xf,0x48,0x3c, + 0xf,0x48,0x3d, 0xf,0x48,0x3e, 0xf,0x48,0x3f, 0xf,0x48,0x40, + 0xf,0x48,0x41, 0xf,0x48,0x42, 0xf,0x48,0x43, 0xf,0x48,0x44, + 0xf,0x48,0x45, 0xf,0x48,0x47, 0xf,0x48,0x48, 0xf,0x48,0x49, + 0xf,0x48,0x46, 0x6,0x5d,0x30, 0xf,0x48,0x36, 0x7,0x23,0x33, + 0x7,0x23,0x38, 0x5,0x4d,0x3c, 0x4,0x4a,0x25, 0x7,0x23,0x3d, + 0x7,0x23,0x37, 0x7,0x23,0x39, 0x4,0x49,0x7b, 0x4,0x49,0x78, + 0x5,0x4d,0x3d, 0x5,0x4d,0x3b, 0x7,0x23,0x45, 0x4,0x49,0x7d, + 0x7,0x2e,0x2f, 0x4,0x4a,0x21, 0x5,0x4d,0x41, 0x4,0x4a,0x26, + 0x4,0x49,0x7c, 0x5,0x54,0x59, 0x7,0x2e,0x3c, 0x7,0x23,0x35, + 0x7,0x23,0x34, 0x7,0x2e,0x2d, 0x7,0x2e,0x2b, 0x7,0x23,0x44, + 0x7,0x2e,0x2c, 0x7,0x23,0x3c, 0x5,0x4d,0x40, 0x7,0x2e,0x2e, + 0x5,0x4d,0x3f, 0x7,0x23,0x3b, 0x7,0x23,0x42, 0x7,0x23,0x43, + 0x7,0x23,0x3e, 0x7,0x23,0x41, 0x4,0x49,0x77, 0xf,0x48,0x31, + 0x7,0x23,0x32, 0x7,0x23,0x3f, 0x7,0x23,0x40, 0xf,0x4e,0x7c, + 0xf,0x4e,0x7d, 0xf,0x4e,0x7e, 0xf,0x4f,0x21, 0xf,0x4f,0x22, + 0xf,0x4f,0x23, 0xf,0x4f,0x26, 0xf,0x4f,0x27, 0xf,0x4f,0x28, + 0xf,0x4f,0x29, 0xf,0x4f,0x2a, 0xf,0x4f,0x2b, 0xf,0x4f,0x2d, + 0xf,0x4f,0x2e, 0xf,0x4f,0x2f, 0xf,0x4f,0x30, 0xf,0x54,0x5f, + 0xf,0x4f,0x24, 0x4,0x56,0x38, 0x4,0x50,0x41, 0x7,0x2e,0x35, + 0x7,0x2e,0x30, 0x5,0x54,0x5a, 0x5,0x54,0x5b, 0x7,0x2e,0x3e, + 0x7,0x2e,0x3a, 0x7,0x2e,0x32, 0x7,0x23,0x36, 0x4,0x50,0x3e, + 0x4,0x50,0x43, 0x4,0x50,0x40, 0x5,0x54,0x5d, 0x4,0x50,0x3f, + 0x7,0x2e,0x3d, 0x4,0x50,0x46, 0x7,0x2e,0x3b, 0x4,0x50,0x48, + 0x4,0x50,0x42, 0x4,0x50,0x47, 0x7,0x2e,0x39, 0x7,0x2e,0x31, + 0x7,0x2e,0x40, 0x7,0x38,0x29, 0x7,0x2e,0x38, 0x5,0x54,0x5f, + 0x5,0x54,0x5c, 0x7,0x2e,0x37, 0x7,0x38,0x28, 0x7,0x2e,0x33, + 0x7,0x2e,0x3f, 0xf,0x54,0x55, 0xf,0x54,0x56, 0xf,0x54,0x57, + 0xf,0x54,0x58, 0xf,0x54,0x59, 0xf,0x54,0x5a, 0xf,0x54,0x5b, + 0xf,0x54,0x5c, 0xf,0x54,0x5d, 0xf,0x54,0x5e, 0xf,0x54,0x60, + 0x7,0x2e,0x34, 0x7,0x2e,0x36, 0x4,0x50,0x44, 0xf,0x54,0x54, + 0x5,0x5b,0x56, 0x7,0x38,0x31, 0x5,0x5b,0x57, 0x7,0x38,0x36, + 0x4,0x56,0x3b, 0x7,0x38,0x2f, 0x7,0x38,0x35, 0x4,0x56,0x3a, + 0x7,0x38,0x34, 0x7,0x38,0x2c, 0x5,0x5b,0x58, 0x4,0x56,0x37, + 0x5,0x5b,0x55, 0x7,0x38,0x2a, 0x7,0x38,0x37, 0x7,0x38,0x30, + 0x7,0x38,0x2e, 0x7,0x38,0x32, 0x7,0x38,0x38, 0x7,0x38,0x2b, + 0x7,0x38,0x2d, 0xf,0x5a,0x30, 0xf,0x5a,0x31, 0xf,0x5a,0x32, + 0xf,0x5a,0x33, 0xf,0x5a,0x34, 0xf,0x5a,0x35, 0x7,0x38,0x33, + 0x4,0x5b,0x33, 0x4,0x5b,0x38, 0x5,0x61,0x6e, 0x5,0x61,0x6b, + 0x5,0x61,0x6c, 0x5,0x61,0x6d, 0x7,0x3f,0x68, 0x7,0x3f,0x67, + 0x4,0x5b,0x35, 0x4,0x5b,0x37, 0x5,0x67,0x7a, 0x5,0x6c,0x2d, + 0x7,0x3f,0x69, 0x7,0x3f,0x66, 0x4,0x5b,0x34, 0x7,0x3f,0x63, + 0x7,0x3f,0x65, 0x7,0x47,0x2f, 0x7,0x3f,0x61, 0x7,0x3f,0x64, + 0xf,0x5e,0x68, 0xf,0x5e,0x69, 0xf,0x5e,0x6a, 0xf,0x5e,0x6d, + 0xf,0x5e,0x6e, 0xf,0x5e,0x6f, 0xf,0x5e,0x71, 0xf,0x5e,0x72, + 0xf,0x5e,0x74, 0xf,0x5e,0x6c, 0xf,0x5e,0x6b, 0x4,0x5f,0x66, + 0x4,0x5f,0x68, 0x4,0x5f,0x67, 0x4,0x5f,0x69, 0x5,0x6c,0x2f, + 0x7,0x47,0x32, 0x7,0x47,0x34, 0x7,0x47,0x36, 0x5,0x67,0x7b, + 0x7,0x47,0x30, 0x5,0x6c,0x2e, 0x7,0x47,0x38, 0x4,0x5f,0x6b, + 0x7,0x47,0x35, 0x7,0x47,0x33, 0x7,0x47,0x31, 0x4,0x5f,0x6a, + 0x5,0x67,0x79, 0xf,0x62,0x3e, 0xf,0x62,0x3f, 0xf,0x62,0x40, + 0xf,0x62,0x41, 0xf,0x62,0x42, 0xf,0x62,0x43, 0xf,0x62,0x44, + 0xf,0x62,0x45, 0xf,0x62,0x46, 0xf,0x62,0x49, 0xf,0x65,0x2f, + 0x7,0x3f,0x6a, 0x7,0x47,0x37, 0xf,0x62,0x47, 0x5,0x6c,0x32, + 0x4,0x66,0x3f, 0x7,0x4d,0x6d, 0x4,0x63,0x48, 0x7,0x4d,0x6c, + 0x4,0x63,0x49, 0x7,0x4d,0x70, 0x4,0x63,0x4a, 0x7,0x4d,0x6e, + 0x5,0x6c,0x33, 0x5,0x6c,0x30, 0x5,0x6c,0x31, 0x7,0x4d,0x6f, + 0xf,0x65,0x2d, 0xf,0x65,0x2e, 0xf,0x65,0x30, 0x7,0x53,0x44, + 0x7,0x57,0x77, 0x4,0x66,0x41, 0x7,0x53,0x3f, 0x7,0x53,0x43, + 0x7,0x53,0x42, 0x4,0x66,0x42, 0x5,0x73,0x45, 0x7,0x53,0x41, + 0x7,0x53,0x40, 0xf,0x67,0x56, 0xf,0x67,0x57, 0xf,0x67,0x58, + 0xf,0x67,0x59, 0x7,0x57,0x78, 0x7,0x57,0x79, 0x5,0x73,0x44, + 0x5,0x73,0x47, 0x5,0x70,0x23, 0x7,0x57,0x7a, 0x5,0x73,0x42, + 0x5,0x73,0x46, 0x7,0x57,0x7c, 0x7,0x5b,0x57, 0x7,0x53,0x3e, + 0xf,0x69,0x43, 0xf,0x69,0x44, 0x5,0x73,0x43, 0x7,0x57,0x7b, + 0x7,0x5b,0x58, 0xf,0x6a,0x54, 0xf,0x6a,0x55, 0xf,0x6a,0x56, + 0x7,0x5e,0x6a, 0x5,0x77,0x5d, 0x7,0x5e,0x69, 0x4,0x6b,0x6b, + 0x7,0x5e,0x6b, 0x5,0x77,0x5c, 0x7,0x5e,0x68, 0xf,0x6b,0x49, + 0xf,0x6b,0x4a, 0xf,0x6b,0x4b, 0xf,0x6b,0x4c, 0x7,0x62,0x38, + 0xf,0x6c,0x2a, 0xf,0x6c,0x2b, 0x4,0x6d,0x73, 0x7,0x63,0x53, + 0xf,0x6c,0x61, 0x7,0x66,0x26, 0x4,0x22,0x77, 0x4,0x24,0x3d, + 0x4,0x26,0x5a, 0xf,0x27,0x31, 0xf,0x27,0x32, 0xf,0x27,0x33, + 0x6,0x31,0x58, 0x6,0x38,0x22, 0x5,0x2f,0x5c, 0x4,0x2d,0x3e, + 0x6,0x38,0x21, 0x6,0x36,0x44, 0x6,0x40,0x39, 0x6,0x40,0x38, + 0x6,0x49,0x4f, 0x6,0x49,0x4e, 0xf,0x3b,0x4c, 0xf,0x3b,0x4d, + 0x5,0x38,0x75, 0x6,0x53,0x26, 0xf,0x41,0x6a, 0x6,0x53,0x27, + 0x5,0x46,0x2d, 0x6,0x5d,0x40, 0x7,0x23,0x46, 0x7,0x23,0x47, + 0x5,0x54,0x60, 0xf,0x54,0x61, 0x7,0x38,0x3b, 0x7,0x38,0x3a, + 0x5,0x5b,0x59, 0x7,0x38,0x3c, 0x7,0x4d,0x71, 0x5,0x24,0x3f, + 0x6,0x27,0x79, 0x5,0x24,0x40, 0x6,0x27,0x7a, 0x5,0x24,0x41, + 0x6,0x27,0x78, 0x6,0x2b,0x68, 0x4,0x26,0x60, 0x5,0x26,0x42, + 0x5,0x26,0x40, 0x4,0x26,0x5d, 0x6,0x2b,0x6c, 0x6,0x2b,0x66, + 0x6,0x2b,0x6a, 0x6,0x2b,0x69, 0x6,0x2b,0x67, 0x5,0x26,0x3f, + 0x5,0x26,0x41, 0x4,0x26,0x5c, 0x4,0x29,0x60, 0x6,0x31,0x59, + 0x5,0x29,0x4c, 0x5,0x29,0x4b, 0x6,0x31,0x5c, 0x6,0x31,0x5e, + 0x6,0x31,0x5d, 0x5,0x29,0x49, 0x5,0x29,0x4a, 0x4,0x29,0x5e, + 0x4,0x29,0x5f, 0x6,0x31,0x5b, 0x6,0x38,0x23, 0x6,0x38,0x24, + 0x6,0x38,0x26, 0x5,0x2d,0x72, 0x6,0x31,0x5f, 0x4,0x2d,0x45, + 0x6,0x38,0x28, 0x5,0x2d,0x70, 0x6,0x38,0x2a, 0x5,0x2d,0x6f, + 0x5,0x2d,0x74, 0x6,0x38,0x25, 0x5,0x2d,0x73, 0x5,0x2d,0x71, + 0x6,0x38,0x29, 0x6,0x38,0x27, 0x4,0x2d,0x41, 0x5,0x32,0x6d, + 0x6,0x40,0x40, 0x4,0x32,0x2e, 0x6,0x40,0x3a, 0x6,0x40,0x3b, + 0x6,0x40,0x3d, 0x5,0x32,0x6f, 0x5,0x32,0x70, 0x4,0x32,0x30, + 0x6,0x40,0x3e, 0x6,0x40,0x3c, 0x5,0x32,0x6b, 0x6,0x40,0x41, + 0x4,0x32,0x31, 0x4,0x32,0x2a, 0x4,0x32,0x2d, 0x4,0x32,0x29, + 0x5,0x32,0x6e, 0xf,0x35,0x31, 0xf,0x35,0x32, 0xf,0x35,0x33, + 0xf,0x35,0x34, 0xf,0x35,0x35, 0x5,0x32,0x6a, 0x6,0x40,0x3f, + 0x6,0x49,0x58, 0x5,0x39,0x22, 0x6,0x49,0x55, 0x4,0x37,0x7a, + 0x4,0x37,0x7b, 0x6,0x49,0x59, 0x6,0x49,0x54, 0x6,0x49,0x5a, + 0x5,0x38,0x76, 0x5,0x38,0x7e, 0x5,0x39,0x21, 0x5,0x38,0x7d, + 0x5,0x38,0x77, 0x6,0x49,0x56, 0x5,0x38,0x7b, 0x6,0x49,0x51, + 0x6,0x49,0x50, 0x6,0x49,0x53, 0x4,0x37,0x72, 0x4,0x37,0x73, + 0x4,0x37,0x74, 0x5,0x38,0x78, 0x5,0x38,0x79, 0x5,0x32,0x6c, + 0x6,0x49,0x52, 0x6,0x53,0x2f, 0x5,0x38,0x7a, 0x5,0x3f,0x57, + 0x5,0x3f,0x5a, 0x5,0x3f,0x5c, 0x4,0x3d,0x57, 0x4,0x3d,0x5f, + 0x6,0x53,0x2b, 0x6,0x53,0x2e, 0x6,0x53,0x29, 0x5,0x3f,0x5b, + 0x6,0x53,0x30, 0x6,0x53,0x2d, 0x6,0x53,0x28, 0x4,0x3d,0x60, + 0x5,0x3f,0x56, 0x6,0x53,0x31, 0x5,0x3f,0x59, 0x4,0x3d,0x5e, + 0x4,0x3d,0x55, 0x4,0x3d,0x56, 0x4,0x3d,0x58, 0x5,0x3f,0x58, + 0x6,0x53,0x2a, 0xf,0x41,0x6b, 0x6,0x53,0x2c, 0x5,0x32,0x71, + 0x4,0x3d,0x5a, 0x6,0x55,0x60, 0x5,0x46,0x34, 0x6,0x5d,0x49, + 0x5,0x46,0x32, 0x6,0x5d,0x41, 0x4,0x43,0x68, 0x5,0x46,0x31, + 0x6,0x5d,0x42, 0x5,0x46,0x2f, 0x6,0x5d,0x46, 0x5,0x46,0x37, + 0x5,0x46,0x35, 0x6,0x5d,0x47, 0x6,0x5d,0x45, 0x6,0x5d,0x44, + 0x6,0x5d,0x48, 0x6,0x5d,0x43, 0x6,0x5d,0x4a, 0x5,0x46,0x33, + 0x4,0x43,0x67, 0x5,0x46,0x36, 0x6,0x5d,0x4b, 0x5,0x48,0x25, + 0x5,0x4d,0x42, 0x5,0x4d,0x47, 0x4,0x4a,0x2c, 0x7,0x23,0x4e, + 0x7,0x23,0x49, 0x7,0x23,0x48, 0x5,0x4d,0x46, 0x7,0x23,0x52, + 0x7,0x23,0x4f, 0x7,0x23,0x4d, 0x5,0x4d,0x45, 0x7,0x23,0x50, + 0x5,0x4d,0x43, 0x5,0x4d,0x44, 0xf,0x4f,0x31, 0x7,0x23,0x4b, + 0x7,0x23,0x4c, 0x7,0x23,0x4a, 0x4,0x50,0x4b, 0x7,0x2e,0x42, + 0x7,0x2e,0x46, 0x7,0x2e,0x48, 0xf,0x54,0x62, 0x5,0x54,0x61, + 0x7,0x2e,0x4b, 0x7,0x2e,0x47, 0x7,0x2e,0x49, 0x7,0x2e,0x41, + 0x7,0x2e,0x45, 0x7,0x2e,0x4c, 0x5,0x54,0x63, 0x7,0x2e,0x4a, + 0x4,0x50,0x4a, 0x5,0x54,0x64, 0x5,0x54,0x65, 0x5,0x54,0x66, + 0xf,0x54,0x63, 0x7,0x2e,0x44, 0x5,0x54,0x62, 0x7,0x23,0x51, + 0x5,0x54,0x67, 0x7,0x38,0x3e, 0x7,0x38,0x3d, 0x5,0x5b,0x5a, + 0x5,0x5b,0x5e, 0x5,0x5b,0x5d, 0x4,0x56,0x3c, 0x4,0x56,0x3d, + 0x5,0x5b,0x5b, 0xf,0x5a,0x37, 0xf,0x5a,0x38, 0x7,0x38,0x3f, + 0x5,0x5b,0x5c, 0x5,0x61,0x70, 0x7,0x3f,0x6c, 0x5,0x61,0x6f, + 0x4,0x5b,0x3b, 0x7,0x3f,0x6d, 0x7,0x3f,0x6e, 0x4,0x5b,0x39, + 0x7,0x3f,0x6b, 0x5,0x68,0x21, 0x5,0x67,0x7e, 0x5,0x67,0x7c, + 0x5,0x67,0x7d, 0xf,0x62,0x4a, 0x5,0x6c,0x34, 0x4,0x63,0x4d, + 0x5,0x6c,0x35, 0x7,0x4d,0x72, 0x4,0x63,0x4b, 0x7,0x4d,0x75, + 0x7,0x4d,0x74, 0x5,0x6c,0x36, 0x7,0x4d,0x76, 0x7,0x4d,0x77, + 0x4,0x66,0x44, 0x5,0x70,0x25, 0x5,0x70,0x26, 0x5,0x73,0x48, + 0xf,0x69,0x45, 0x7,0x5b,0x59, 0x5,0x75,0x6b, 0x4,0x6a,0x4a, + 0x7,0x5b,0x5a, 0x4,0x6c,0x6f, 0xf,0x6c,0x62, 0xf,0x22,0x53, + 0xf,0x24,0x46, 0x6,0x2b,0x6d, 0xf,0x2b,0x2d, 0xf,0x2b,0x2e, + 0xf,0x2b,0x2f, 0x6,0x38,0x2d, 0x6,0x38,0x2e, 0xf,0x2f,0x65, + 0x6,0x40,0x42, 0x6,0x40,0x44, 0xf,0x35,0x37, 0xf,0x35,0x38, + 0x6,0x40,0x43, 0xf,0x3b,0x4e, 0x5,0x3f,0x5d, 0xf,0x41,0x6c, + 0x6,0x53,0x32, 0xf,0x35,0x36, 0x5,0x4d,0x48, 0x7,0x23,0x54, + 0x7,0x23,0x53, 0x5,0x4d,0x49, 0xf,0x4f,0x33, 0xf,0x4f,0x34, + 0x5,0x4d,0x4a, 0x7,0x2e,0x4d, 0xf,0x5a,0x39, 0xf,0x5e,0x75, + 0xf,0x62,0x4b, 0xf,0x67,0x5a, 0x7,0x5b,0x5b, 0x6,0x22,0x22, + 0xf,0x27,0x34, 0x6,0x31,0x60, 0x4,0x2d,0x48, 0x5,0x2d,0x76, + 0x5,0x2d,0x75, 0x6,0x38,0x2f, 0x5,0x32,0x72, 0xf,0x35,0x39, + 0x6,0x40,0x46, 0x6,0x40,0x45, 0x6,0x49,0x5d, 0xf,0x40,0x32, + 0x6,0x49,0x5b, 0x6,0x49,0x5c, 0x4,0x3d,0x61, 0x6,0x5d,0x4c, + 0x5,0x3f,0x5e, 0xf,0x41,0x6d, 0x4,0x43,0x6a, 0x4,0x4a,0x2d, + 0x7,0x23,0x55, 0x7,0x38,0x40, 0x4,0x5f,0x6c, 0x6,0x22,0x23, + 0xf,0x24,0x47, 0x6,0x2b,0x6f, 0x6,0x2b,0x6e, 0x6,0x31,0x61, + 0xf,0x2f,0x66, 0x4,0x32,0x32, 0x6,0x40,0x48, 0x6,0x40,0x47, + 0x6,0x49,0x60, 0x6,0x49,0x64, 0x6,0x49,0x63, 0x5,0x39,0x23, + 0x6,0x49,0x66, 0x6,0x49,0x5f, 0x6,0x49,0x5e, 0x6,0x49,0x62, + 0x4,0x37,0x7c, 0x6,0x4c,0x3e, 0x6,0x49,0x65, 0x4,0x3d,0x62, + 0x6,0x53,0x36, 0x6,0x53,0x34, 0x6,0x53,0x37, 0x5,0x3f,0x5f, + 0x6,0x5d,0x4f, 0x6,0x5d,0x4e, 0x6,0x5d,0x50, 0x3,0x47,0x31, + 0x4,0x4a,0x2f, 0x6,0x5d,0x4d, 0x5,0x4d,0x4c, 0x5,0x4d,0x4d, + 0x7,0x2e,0x51, 0x7,0x2e,0x50, 0x7,0x2e,0x4f, 0x7,0x2e,0x52, + 0x7,0x2e,0x4e, 0x4,0x50,0x4d, 0x7,0x38,0x41, 0x7,0x38,0x42, + 0x7,0x3f,0x6f, 0x4,0x5b,0x3c, 0x7,0x3f,0x70, 0x7,0x3f,0x71, + 0x7,0x47,0x39, 0xf,0x62,0x4c, 0x7,0x4d,0x78, 0x7,0x57,0x7d, + 0x4,0x24,0x42, 0x6,0x27,0x7b, 0xf,0x27,0x35, 0xf,0x27,0x36, + 0x5,0x29,0x4d, 0x6,0x31,0x64, 0x6,0x31,0x63, 0xf,0x2b,0x30, + 0x6,0x31,0x62, 0x4,0x2d,0x4a, 0x5,0x2d,0x77, 0x6,0x38,0x31, + 0x6,0x38,0x33, 0x6,0x38,0x35, 0xf,0x2f,0x67, 0xf,0x2f,0x68, + 0xf,0x2f,0x69, 0xf,0x2f,0x6a, 0x6,0x38,0x32, 0x4,0x32,0x33, + 0x4,0x32,0x35, 0x6,0x40,0x4a, 0xf,0x35,0x3a, 0xf,0x35,0x3b, + 0x6,0x40,0x49, 0x6,0x49,0x69, 0x5,0x39,0x25, 0x5,0x39,0x24, + 0x6,0x49,0x68, 0x6,0x49,0x6a, 0x6,0x49,0x67, 0xf,0x3b,0x4f, + 0xf,0x3b,0x50, 0x6,0x53,0x38, 0x5,0x3f,0x60, 0x6,0x53,0x39, + 0xf,0x41,0x6e, 0xf,0x41,0x6f, 0x5,0x46,0x38, 0x5,0x46,0x3a, + 0x6,0x5d,0x52, 0x5,0x46,0x39, 0x7,0x23,0x56, 0xf,0x4f,0x35, + 0x7,0x2e,0x53, 0x5,0x54,0x68, 0x7,0x38,0x43, 0x5,0x5b,0x5f, + 0x7,0x3f,0x73, 0x5,0x61,0x71, 0x4,0x5b,0x3d, 0x7,0x3f,0x74, + 0x7,0x3f,0x72, 0x7,0x47,0x3a, 0x7,0x53,0x45, 0x4,0x68,0x6d, + 0x7,0x57,0x7e, 0x7,0x5e,0x6c, 0x7,0x60,0x70, 0x5,0x24,0x42, + 0x5,0x29,0x4e, 0x5,0x2d,0x79, 0x5,0x2d,0x78, 0x4,0x37,0x7d, + 0x6,0x49,0x6b, 0x6,0x53,0x3a, 0x6,0x53,0x3b, 0x4,0x3d,0x66, + 0xf,0x4f,0x36, 0x6,0x23,0x2c, 0x6,0x23,0x2b, 0x6,0x24,0x7b, + 0x5,0x22,0x73, 0x6,0x24,0x7a, 0x6,0x24,0x7c, 0xf,0x22,0x54, + 0xf,0x24,0x4b, 0x6,0x27,0x7c, 0x6,0x27,0x7d, 0x6,0x28,0x25, + 0x5,0x24,0x43, 0x6,0x28,0x22, 0x6,0x27,0x7e, 0x6,0x28,0x24, + 0x6,0x28,0x23, 0x6,0x28,0x21, 0xf,0x24,0x48, 0xf,0x24,0x4a, + 0xf,0x24,0x4c, 0x4,0x24,0x44, 0x5,0x26,0x48, 0x6,0x2b,0x74, + 0x6,0x2b,0x73, 0x5,0x26,0x49, 0x6,0x2b,0x7d, 0x5,0x26,0x44, + 0x6,0x2b,0x79, 0x5,0x26,0x47, 0x6,0x2b,0x7a, 0x6,0x2b,0x77, + 0x5,0x26,0x46, 0x5,0x26,0x45, 0x6,0x2b,0x75, 0x6,0x2b,0x78, + 0xf,0x27,0x37, 0xf,0x27,0x38, 0xf,0x27,0x39, 0xf,0x27,0x3a, + 0xf,0x27,0x3b, 0xf,0x27,0x3c, 0xf,0x27,0x3d, 0x6,0x2b,0x71, + 0x6,0x2b,0x7b, 0x6,0x2b,0x7c, 0x6,0x2b,0x72, 0x6,0x2b,0x76, + 0x5,0x29,0x51, 0x6,0x31,0x65, 0x6,0x31,0x66, 0x5,0x29,0x50, + 0x4,0x29,0x66, 0x6,0x31,0x68, 0x6,0x31,0x69, 0x4,0x29,0x68, + 0xf,0x2b,0x31, 0xf,0x2b,0x32, 0x6,0x31,0x6a, 0xf,0x2b,0x35, + 0xf,0x2b,0x36, 0x6,0x31,0x6e, 0x6,0x31,0x6c, 0x6,0x31,0x6b, + 0x5,0x2d,0x7e, 0x6,0x38,0x3a, 0x5,0x2e,0x21, 0x5,0x2e,0x22, + 0x5,0x2d,0x7b, 0x5,0x2e,0x23, 0x5,0x2d,0x7c, 0x5,0x2d,0x7a, + 0x6,0x38,0x3e, 0x6,0x38,0x38, 0x6,0x38,0x3c, 0x5,0x2d,0x7d, + 0x6,0x38,0x39, 0x6,0x38,0x3d, 0xf,0x2f,0x6b, 0xf,0x2f,0x6d, + 0x6,0x38,0x3b, 0xf,0x2f,0x6c, 0x6,0x38,0x41, 0x6,0x38,0x3f, + 0x5,0x32,0x73, 0x4,0x32,0x38, 0x4,0x38,0x21, 0x6,0x40,0x53, + 0x4,0x32,0x3d, 0x6,0x40,0x4e, 0x6,0x40,0x4b, 0x6,0x40,0x4c, + 0x6,0x40,0x50, 0x6,0x40,0x4d, 0x6,0x40,0x55, 0x5,0x32,0x75, + 0x6,0x38,0x40, 0x6,0x40,0x54, 0x6,0x40,0x56, 0xf,0x35,0x3c, + 0xf,0x35,0x3d, 0xf,0x35,0x3e, 0xf,0x35,0x3f, 0xf,0x35,0x40, + 0xf,0x35,0x41, 0xf,0x35,0x42, 0xf,0x35,0x43, 0xf,0x35,0x44, + 0xf,0x35,0x45, 0xf,0x35,0x46, 0xf,0x35,0x47, 0x6,0x40,0x52, + 0x5,0x32,0x74, 0x6,0x49,0x71, 0x6,0x49,0x74, 0x4,0x32,0x3c, + 0x5,0x3f,0x61, 0x5,0x39,0x2a, 0x6,0x49,0x6f, 0x5,0x39,0x27, + 0x6,0x49,0x70, 0x5,0x39,0x29, 0x5,0x39,0x26, 0x6,0x49,0x6c, + 0x6,0x49,0x6d, 0x4,0x38,0x23, 0x6,0x49,0x76, 0x5,0x39,0x2b, + 0x4,0x38,0x27, 0x6,0x49,0x6e, 0x6,0x49,0x75, 0x6,0x49,0x77, + 0xf,0x3b,0x51, 0xf,0x3b,0x53, 0xf,0x3b,0x54, 0xf,0x3b,0x56, + 0xf,0x3b,0x57, 0xf,0x3b,0x59, 0xf,0x3b,0x5a, 0xf,0x3b,0x5c, + 0xf,0x3b,0x5d, 0xf,0x3b,0x52, 0xf,0x3b,0x58, 0x4,0x38,0x26, + 0x4,0x38,0x28, 0x6,0x49,0x72, 0x5,0x39,0x2c, 0x5,0x39,0x28, + 0x6,0x53,0x43, 0x5,0x3f,0x63, 0x6,0x53,0x41, 0x6,0x5d,0x53, + 0x6,0x53,0x42, 0x6,0x53,0x3f, 0x6,0x53,0x44, 0xf,0x46,0x39, + 0xf,0x3b,0x5b, 0x6,0x53,0x3e, 0xf,0x41,0x70, 0xf,0x41,0x71, + 0xf,0x41,0x73, 0xf,0x41,0x74, 0xf,0x41,0x75, 0xf,0x41,0x76, + 0xf,0x41,0x77, 0xf,0x41,0x78, 0xf,0x41,0x79, 0xf,0x41,0x7a, + 0xf,0x41,0x7b, 0xf,0x41,0x7d, 0x5,0x3d,0x55, 0x6,0x53,0x45, + 0x6,0x53,0x40, 0x5,0x3f,0x64, 0x5,0x46,0x3b, 0x5,0x46,0x3f, + 0x5,0x46,0x3d, 0x5,0x46,0x3e, 0x6,0x5d,0x56, 0x5,0x46,0x40, + 0x5,0x46,0x43, 0x5,0x46,0x44, 0x4,0x43,0x6c, 0x5,0x46,0x42, + 0x5,0x4d,0x4e, 0xf,0x48,0x4a, 0xf,0x48,0x4b, 0xf,0x48,0x4c, + 0xf,0x48,0x4d, 0xf,0x48,0x4e, 0xf,0x48,0x4f, 0x6,0x5d,0x54, + 0x5,0x46,0x3c, 0x6,0x5d,0x57, 0x6,0x5d,0x59, 0x6,0x5d,0x5a, + 0x6,0x5d,0x55, 0x6,0x5d,0x58, 0x7,0x23,0x61, 0x7,0x23,0x5c, + 0x7,0x23,0x5b, 0x7,0x23,0x5e, 0x5,0x4d,0x52, 0x5,0x4d,0x55, + 0x7,0x23,0x5a, 0x7,0x23,0x57, 0x7,0x23,0x58, 0x7,0x23,0x62, + 0xf,0x4f,0x37, 0xf,0x4f,0x39, 0xf,0x4f,0x3a, 0x5,0x4d,0x54, + 0x7,0x23,0x60, 0xf,0x4e,0x30, 0x7,0x23,0x5d, 0x7,0x23,0x5f, + 0x7,0x23,0x59, 0x5,0x4d,0x51, 0x5,0x54,0x69, 0x5,0x54,0x6b, + 0x7,0x2e,0x57, 0x4,0x50,0x55, 0x7,0x2e,0x55, 0x7,0x2e,0x5b, + 0x7,0x2e,0x59, 0x7,0x2e,0x5d, 0x4,0x50,0x54, 0x7,0x2e,0x5c, + 0x7,0x2e,0x54, 0xf,0x54,0x65, 0xf,0x54,0x66, 0xf,0x54,0x67, + 0xf,0x54,0x69, 0xf,0x54,0x6a, 0x7,0x2e,0x58, 0x5,0x4d,0x4f, + 0x7,0x2d,0x62, 0xf,0x54,0x68, 0x7,0x2e,0x43, 0x5,0x54,0x6a, + 0x7,0x2e,0x56, 0xf,0x4f,0x38, 0x7,0x38,0x47, 0x5,0x5b,0x60, + 0x5,0x5b,0x61, 0x7,0x38,0x48, 0x5,0x5b,0x62, 0x7,0x38,0x45, + 0x7,0x38,0x46, 0x7,0x38,0x49, 0xf,0x5a,0x3a, 0xf,0x5a,0x3b, + 0xf,0x5a,0x3c, 0x7,0x38,0x44, 0xf,0x5a,0x3d, 0x4,0x5b,0x3e, + 0x5,0x61,0x72, 0x5,0x61,0x73, 0x7,0x3f,0x75, 0xf,0x5e,0x76, + 0xf,0x5e,0x77, 0xf,0x5e,0x78, 0xf,0x5e,0x79, 0xf,0x5e,0x7b, + 0x7,0x3f,0x78, 0x5,0x68,0x23, 0x7,0x47,0x3d, 0x7,0x47,0x3c, + 0x5,0x68,0x22, 0x5,0x68,0x24, 0x7,0x47,0x3b, 0x7,0x47,0x3e, + 0xf,0x62,0x4d, 0x5,0x6c,0x37, 0xf,0x65,0x31, 0xf,0x65,0x32, + 0x5,0x6b,0x6e, 0x7,0x4d,0x79, 0x7,0x53,0x46, 0x7,0x58,0x21, + 0xf,0x69,0x46, 0x5,0x73,0x39, 0x5,0x73,0x49, 0x7,0x5b,0x5c, + 0x5,0x77,0x5e, 0x7,0x5e,0x6d, 0xf,0x6b,0x4d, 0x5,0x79,0x2b, + 0x7,0x64,0x47, 0xf,0x24,0x4d, 0x6,0x2b,0x7e, 0xf,0x27,0x3f, + 0xf,0x27,0x40, 0x6,0x2c,0x21, 0x5,0x29,0x53, 0x5,0x29,0x52, + 0x6,0x31,0x70, 0xf,0x2b,0x37, 0xf,0x2b,0x39, 0x6,0x31,0x6f, + 0x6,0x38,0x42, 0xf,0x2f,0x6f, 0xf,0x2f,0x70, 0xf,0x2f,0x71, + 0xf,0x2f,0x72, 0xf,0x2f,0x73, 0xf,0x35,0x49, 0xf,0x35,0x4a, + 0xf,0x3b,0x5f, 0x6,0x49,0x7a, 0x6,0x49,0x79, 0x5,0x3f,0x65, + 0x4,0x43,0x70, 0x6,0x53,0x46, 0x5,0x4d,0x57, 0x5,0x4d,0x56, + 0x7,0x23,0x63, 0xf,0x54,0x6b, 0x5,0x5b,0x63, 0x7,0x3f,0x7a, + 0x5,0x61,0x74, 0x7,0x3f,0x79, 0x7,0x3f,0x77, 0x4,0x5f,0x6d, + 0x7,0x4d,0x7a, 0x7,0x4d,0x7b, 0x5,0x7b,0x3f, 0x7,0x66,0x3e, + 0x6,0x23,0x2d, 0x6,0x24,0x7d, 0x5,0x24,0x44, 0x6,0x28,0x29, + 0x6,0x28,0x27, 0x6,0x28,0x28, 0x6,0x28,0x26, 0x6,0x2c,0x22, + 0x5,0x29,0x54, 0x4,0x29,0x69, 0x4,0x29,0x6a, 0xf,0x2b,0x3a, + 0x6,0x31,0x71, 0x6,0x38,0x43, 0xf,0x35,0x4b, 0x5,0x32,0x76, + 0x6,0x40,0x59, 0x6,0x40,0x5b, 0x6,0x49,0x7d, 0x6,0x49,0x7c, + 0x6,0x40,0x5a, 0x5,0x39,0x2d, 0xf,0x39,0x46, 0xf,0x3b,0x61, + 0xf,0x3b,0x62, 0x6,0x53,0x47, 0x5,0x3f,0x67, 0xf,0x3b,0x60, + 0xf,0x41,0x7e, 0xf,0x42,0x21, 0x6,0x53,0x48, 0x6,0x5d,0x5d, + 0x6,0x5d,0x5e, 0x7,0x23,0x64, 0x4,0x4a,0x34, 0x5,0x4d,0x59, + 0x4,0x4a,0x33, 0xf,0x4f,0x3b, 0xf,0x4f,0x3c, 0x5,0x54,0x6e, + 0x5,0x54,0x6c, 0x5,0x5b,0x64, 0x5,0x54,0x6d, 0xf,0x54,0x6d, + 0xf,0x54,0x6e, 0x7,0x38,0x4b, 0x7,0x38,0x4a, 0xf,0x5a,0x3e, + 0x5,0x61,0x75, 0xf,0x5e,0x7c, 0x7,0x3f,0x7b, 0x5,0x6c,0x38, + 0x5,0x75,0x6f, 0x5,0x77,0x5f, 0x5,0x21,0x48, 0x4,0x21,0x4e, + 0x4,0x21,0x7d, 0xf,0x21,0x65, 0x5,0x22,0x75, 0x6,0x25,0x22, + 0x5,0x22,0x74, 0x6,0x24,0x7e, 0x6,0x25,0x21, 0xf,0x22,0x56, + 0x4,0x22,0x7b, 0x4,0x22,0x7a, 0x6,0x28,0x2c, 0x4,0x24,0x49, + 0x6,0x28,0x2a, 0x6,0x28,0x2b, 0xf,0x24,0x4e, 0xf,0x24,0x4f, + 0xf,0x24,0x54, 0xf,0x24,0x50, 0xf,0x24,0x52, 0x5,0x24,0x46, + 0x6,0x28,0x2d, 0x5,0x24,0x45, 0x4,0x24,0x45, 0x4,0x26,0x6b, + 0x5,0x26,0x4c, 0x4,0x26,0x66, 0x5,0x26,0x4b, 0x6,0x2c,0x2b, + 0x5,0x26,0x50, 0x5,0x26,0x52, 0x6,0x2c,0x28, 0x6,0x2c,0x27, + 0x6,0x2c,0x26, 0x5,0x26,0x4d, 0x5,0x26,0x53, 0x5,0x26,0x4f, + 0x5,0x26,0x4e, 0xf,0x27,0x43, 0xf,0x27,0x45, 0xf,0x27,0x46, + 0xf,0x27,0x47, 0xf,0x27,0x49, 0xf,0x27,0x4a, 0xf,0x27,0x4b, + 0xf,0x27,0x4d, 0xf,0x27,0x4f, 0xf,0x27,0x51, 0xf,0x27,0x54, + 0xf,0x27,0x55, 0x6,0x2c,0x24, 0x6,0x2c,0x29, 0x5,0x26,0x54, + 0x6,0x2c,0x2c, 0xf,0x27,0x44, 0x6,0x2c,0x2d, 0x6,0x2c,0x2a, + 0xf,0x27,0x48, 0xf,0x27,0x42, 0x6,0x2c,0x25, 0x5,0x26,0x55, + 0x6,0x2d,0x5c, 0x6,0x31,0x74, 0x6,0x31,0x73, 0x4,0x29,0x6b, + 0x5,0x29,0x56, 0x6,0x31,0x75, 0x6,0x31,0x76, 0x5,0x29,0x55, + 0x5,0x29,0x59, 0x6,0x31,0x77, 0x5,0x2e,0x26, 0x5,0x29,0x5a, + 0x5,0x29,0x58, 0xf,0x27,0x53, 0xf,0x2b,0x3b, 0xf,0x2b,0x3c, + 0xf,0x2b,0x3d, 0xf,0x2b,0x3f, 0xf,0x2b,0x40, 0xf,0x2b,0x41, + 0xf,0x2b,0x42, 0xf,0x2b,0x43, 0xf,0x2b,0x44, 0xf,0x2b,0x45, + 0xf,0x2b,0x46, 0xf,0x2b,0x47, 0xf,0x2b,0x49, 0xf,0x2b,0x4a, + 0xf,0x2b,0x4b, 0xf,0x2b,0x4c, 0xf,0x2b,0x4d, 0xf,0x2b,0x4e, + 0xf,0x2b,0x4f, 0x5,0x29,0x5b, 0x6,0x40,0x5c, 0x6,0x38,0x4f, + 0x6,0x38,0x53, 0x6,0x38,0x4b, 0x6,0x38,0x4d, 0x6,0x38,0x46, + 0x5,0x2e,0x27, 0x6,0x38,0x48, 0x6,0x38,0x45, 0x6,0x38,0x51, + 0x4,0x2d,0x50, 0x6,0x40,0x5d, 0x5,0x29,0x57, 0x5,0x2e,0x29, + 0x5,0x2e,0x2a, 0x6,0x38,0x44, 0xf,0x2f,0x74, 0xf,0x2f,0x75, + 0xf,0x2f,0x76, 0xf,0x2f,0x78, 0xf,0x2f,0x79, 0xf,0x2f,0x7a, + 0xf,0x2f,0x7b, 0xf,0x2f,0x7c, 0xf,0x2f,0x7d, 0xf,0x2f,0x7e, + 0xf,0x30,0x21, 0xf,0x30,0x22, 0xf,0x30,0x23, 0xf,0x30,0x25, + 0xf,0x30,0x26, 0xf,0x30,0x27, 0xf,0x30,0x29, 0xf,0x30,0x2a, + 0xf,0x30,0x2b, 0xf,0x30,0x2c, 0xf,0x30,0x2e, 0x6,0x38,0x4c, + 0x6,0x38,0x47, 0x6,0x38,0x49, 0x4,0x2d,0x53, 0x6,0x38,0x4e, + 0xf,0x30,0x30, 0xf,0x30,0x28, 0x4,0x2d,0x5a, 0xf,0x30,0x2d, + 0x5,0x2e,0x2c, 0x5,0x2e,0x28, 0xf,0x2f,0x77, 0x6,0x38,0x52, + 0x6,0x40,0x68, 0x6,0x40,0x69, 0x6,0x40,0x5f, 0x5,0x32,0x77, + 0x5,0x33,0x21, 0x5,0x39,0x36, 0x4,0x32,0x45, 0x4,0x32,0x40, + 0x5,0x32,0x7d, 0x6,0x40,0x67, 0x6,0x4a,0x2e, 0x6,0x40,0x63, + 0xf,0x35,0x4c, 0xf,0x35,0x4d, 0xf,0x35,0x4f, 0xf,0x35,0x50, + 0xf,0x35,0x51, 0xf,0x35,0x52, 0xf,0x35,0x53, 0xf,0x35,0x54, + 0xf,0x35,0x55, 0xf,0x35,0x56, 0xf,0x35,0x58, 0xf,0x35,0x59, + 0xf,0x35,0x5a, 0xf,0x35,0x5b, 0xf,0x35,0x5c, 0xf,0x35,0x5d, + 0xf,0x35,0x5e, 0xf,0x35,0x5f, 0xf,0x35,0x60, 0xf,0x35,0x61, + 0xf,0x35,0x62, 0xf,0x35,0x63, 0xf,0x35,0x65, 0xf,0x35,0x66, + 0x6,0x40,0x64, 0x6,0x40,0x66, 0x6,0x40,0x65, 0x4,0x32,0x47, + 0x6,0x40,0x62, 0x6,0x40,0x60, 0x6,0x40,0x61, 0x4,0x32,0x44, + 0x5,0x33,0x22, 0x5,0x32,0x78, 0x5,0x32,0x7b, 0x5,0x32,0x7a, + 0x5,0x32,0x7c, 0x6,0x40,0x6a, 0xf,0x35,0x4e, 0x6,0x40,0x5e, + 0x4,0x38,0x36, 0x6,0x4a,0x34, 0x5,0x39,0x35, 0x6,0x53,0x49, + 0x4,0x38,0x2e, 0x5,0x39,0x38, 0x6,0x4a,0x22, 0x5,0x39,0x32, + 0x4,0x38,0x2b, 0x5,0x39,0x30, 0x5,0x39,0x34, 0x4,0x38,0x31, + 0x6,0x4a,0x2d, 0x6,0x4a,0x2f, 0x5,0x39,0x3a, 0x6,0x4a,0x24, + 0x6,0x4a,0x21, 0x5,0x39,0x37, 0x6,0x4a,0x33, 0x5,0x39,0x3c, + 0x5,0x39,0x3b, 0x6,0x4a,0x26, 0x4,0x38,0x30, 0x6,0x4a,0x27, + 0x6,0x4a,0x2a, 0x6,0x4a,0x31, 0x5,0x39,0x40, 0x6,0x53,0x4a, + 0x5,0x39,0x3d, 0x6,0x4a,0x38, 0x6,0x4a,0x23, 0x6,0x4a,0x25, + 0x6,0x4a,0x35, 0x4,0x38,0x33, 0x4,0x38,0x38, 0x6,0x4a,0x36, + 0x6,0x4a,0x37, 0xf,0x3b,0x64, 0xf,0x3b,0x65, 0xf,0x3b,0x67, + 0xf,0x3b,0x68, 0xf,0x3b,0x69, 0xf,0x3b,0x6b, 0xf,0x3b,0x6c, + 0xf,0x3b,0x6d, 0xf,0x3b,0x6f, 0xf,0x3b,0x71, 0xf,0x3b,0x72, + 0xf,0x3b,0x74, 0xf,0x3b,0x75, 0xf,0x3b,0x76, 0xf,0x3b,0x77, + 0xf,0x3b,0x78, 0xf,0x3b,0x79, 0xf,0x3b,0x7a, 0xf,0x3b,0x7b, + 0xf,0x3b,0x7c, 0xf,0x3b,0x7d, 0xf,0x3b,0x7e, 0xf,0x3c,0x22, + 0xf,0x3c,0x23, 0xf,0x3c,0x24, 0xf,0x3c,0x25, 0xf,0x3c,0x26, + 0xf,0x3c,0x27, 0xf,0x3c,0x28, 0xf,0x3c,0x2a, 0xf,0x3c,0x2b, + 0xf,0x3c,0x2c, 0xf,0x3c,0x2d, 0xf,0x3c,0x2e, 0xf,0x3c,0x2f, + 0x6,0x4a,0x29, 0x6,0x4a,0x2b, 0x6,0x4a,0x2c, 0x6,0x4a,0x32, + 0x5,0x39,0x42, 0x6,0x4a,0x30, 0x6,0x4a,0x39, 0x6,0x4a,0x28, + 0x5,0x39,0x3e, 0x5,0x39,0x41, 0x5,0x39,0x2e, 0x5,0x39,0x2f, + 0x5,0x39,0x31, 0x6,0x53,0x4e, 0x6,0x53,0x58, 0x4,0x3d,0x77, + 0x6,0x53,0x56, 0x4,0x3d,0x74, 0x6,0x53,0x57, 0x5,0x3f,0x6f, + 0x5,0x3f,0x6a, 0x5,0x3f,0x6e, 0x5,0x3f,0x6b, 0x4,0x3d,0x6a, + 0x6,0x53,0x5b, 0x5,0x3f,0x73, 0x6,0x53,0x61, 0x5,0x3f,0x68, + 0x4,0x3d,0x7a, 0x5,0x3f,0x74, 0x5,0x3f,0x69, 0x6,0x53,0x55, + 0x5,0x3f,0x70, 0x5,0x3f,0x6d, 0x6,0x53,0x60, 0x4,0x3d,0x73, + 0x6,0x53,0x59, 0x6,0x53,0x5a, 0x6,0x53,0x5d, 0x6,0x53,0x50, + 0x4,0x3d,0x70, 0x6,0x53,0x5c, 0x5,0x3f,0x6c, 0x6,0x53,0x63, + 0x6,0x53,0x4f, 0x6,0x53,0x51, 0x6,0x53,0x4c, 0xf,0x42,0x23, + 0xf,0x42,0x24, 0xf,0x42,0x25, 0xf,0x42,0x26, 0xf,0x42,0x27, + 0xf,0x42,0x29, 0xf,0x42,0x2a, 0xf,0x42,0x2b, 0xf,0x42,0x2c, + 0xf,0x42,0x2d, 0xf,0x42,0x2e, 0xf,0x42,0x30, 0xf,0x42,0x31, + 0xf,0x42,0x32, 0xf,0x42,0x33, 0xf,0x42,0x34, 0xf,0x42,0x35, + 0xf,0x42,0x36, 0xf,0x42,0x38, 0xf,0x42,0x39, 0xf,0x42,0x3a, + 0xf,0x42,0x3b, 0xf,0x42,0x3d, 0xf,0x42,0x3e, 0xf,0x42,0x3f, + 0xf,0x42,0x40, 0xf,0x42,0x41, 0xf,0x42,0x42, 0xf,0x42,0x43, + 0xf,0x42,0x44, 0xf,0x42,0x45, 0xf,0x42,0x46, 0xf,0x42,0x48, + 0xf,0x42,0x4a, 0xf,0x42,0x4c, 0x6,0x53,0x4d, 0x6,0x53,0x52, + 0x6,0x53,0x54, 0x4,0x3d,0x79, 0x6,0x53,0x62, 0x6,0x53,0x4b, + 0x6,0x53,0x5f, 0xf,0x42,0x22, 0xf,0x42,0x2f, 0xf,0x42,0x37, + 0x5,0x39,0x3f, 0x5,0x3f,0x72, 0x6,0x53,0x53, 0xf,0x43,0x74, + 0x5,0x46,0x4e, 0xf,0x42,0x4b, 0x5,0x46,0x50, 0x4,0x43,0x7b, + 0x4,0x43,0x72, 0x5,0x46,0x4d, 0x5,0x46,0x4f, 0x6,0x5d,0x69, + 0x5,0x46,0x55, 0x5,0x46,0x52, 0x7,0x23,0x65, 0x6,0x53,0x64, + 0x5,0x46,0x47, 0x6,0x5d,0x5f, 0x5,0x46,0x54, 0x5,0x46,0x46, + 0x5,0x46,0x58, 0x6,0x5d,0x62, 0x5,0x46,0x4a, 0x5,0x46,0x53, + 0x6,0x5d,0x63, 0x4,0x43,0x76, 0x5,0x46,0x48, 0x5,0x46,0x49, + 0x6,0x5d,0x65, 0x5,0x46,0x4c, 0x5,0x46,0x51, 0xf,0x48,0x57, + 0xf,0x48,0x58, 0xf,0x48,0x59, 0xf,0x48,0x5a, 0xf,0x48,0x5b, + 0xf,0x48,0x5c, 0xf,0x48,0x5d, 0xf,0x48,0x5e, 0xf,0x48,0x5f, + 0xf,0x48,0x60, 0xf,0x48,0x61, 0xf,0x48,0x62, 0xf,0x48,0x63, + 0xf,0x48,0x64, 0xf,0x48,0x65, 0xf,0x48,0x66, 0xf,0x48,0x67, + 0xf,0x48,0x68, 0xf,0x48,0x69, 0xf,0x48,0x6a, 0xf,0x48,0x6b, + 0xf,0x48,0x6c, 0xf,0x48,0x6d, 0xf,0x48,0x6e, 0xf,0x48,0x6f, + 0xf,0x48,0x71, 0xf,0x48,0x72, 0xf,0x48,0x73, 0xf,0x48,0x75, + 0x3,0x47,0x4b, 0x6,0x5d,0x6a, 0x6,0x5d,0x67, 0x6,0x5d,0x6b, + 0x6,0x5d,0x6c, 0x5,0x46,0x56, 0x5,0x46,0x57, 0xf,0x48,0x74, + 0x6,0x5d,0x64, 0x6,0x5d,0x66, 0xf,0x48,0x50, 0xf,0x48,0x51, + 0xf,0x48,0x53, 0xf,0x48,0x54, 0x6,0x5d,0x60, 0x6,0x5d,0x6d, + 0x6,0x5d,0x61, 0xf,0x48,0x56, 0x7,0x23,0x68, 0x5,0x4d,0x67, + 0x5,0x4d,0x5e, 0x4,0x4a,0x3b, 0x4,0x4a,0x47, 0x5,0x4d,0x5b, + 0x4,0x4a,0x40, 0x7,0x23,0x71, 0x7,0x23,0x6c, 0x7,0x23,0x74, + 0x5,0x4d,0x6b, 0x5,0x4d,0x65, 0x7,0x23,0x70, 0x4,0x4a,0x46, + 0x5,0x4d,0x5f, 0x4,0x4a,0x3f, 0x5,0x4d,0x64, 0x4,0x4a,0x43, + 0x4,0x4a,0x3e, 0x4,0x4a,0x35, 0x7,0x23,0x73, 0x5,0x4d,0x5c, + 0x4,0x4a,0x4a, 0x5,0x4d,0x69, 0x7,0x23,0x6e, 0x5,0x4d,0x63, + 0x5,0x4d,0x6a, 0x7,0x23,0x69, 0x4,0x4a,0x41, 0x5,0x4d,0x5d, + 0x7,0x23,0x75, 0x4,0x4a,0x3c, 0x4,0x4a,0x45, 0x4,0x4a,0x49, + 0x7,0x23,0x66, 0x7,0x23,0x6a, 0xf,0x4f,0x3d, 0xf,0x4f,0x3e, + 0xf,0x4f,0x3f, 0xf,0x4f,0x43, 0xf,0x4f,0x44, 0xf,0x4f,0x46, + 0xf,0x4f,0x47, 0xf,0x4f,0x48, 0xf,0x4f,0x49, 0xf,0x4f,0x4a, + 0xf,0x4f,0x4b, 0xf,0x4f,0x4c, 0xf,0x4f,0x4d, 0xf,0x4f,0x4e, + 0xf,0x4f,0x4f, 0xf,0x4f,0x50, 0xf,0x4f,0x51, 0xf,0x4f,0x52, + 0xf,0x4f,0x53, 0xf,0x4f,0x40, 0x7,0x23,0x6b, 0x5,0x4d,0x6c, + 0x5,0x4d,0x68, 0x5,0x4d,0x66, 0x7,0x23,0x67, 0x7,0x23,0x6d, + 0x5,0x4d,0x60, 0x5,0x4d,0x5a, 0x5,0x4d,0x62, 0x4,0x50,0x5b, + 0x5,0x54,0x7d, 0x7,0x2e,0x69, 0x4,0x50,0x65, 0x4,0x50,0x58, + 0x5,0x5b,0x65, 0x7,0x38,0x4c, 0x7,0x2e,0x60, 0x7,0x2e,0x63, + 0x5,0x54,0x7b, 0x7,0x2e,0x68, 0x7,0x2e,0x72, 0x5,0x54,0x7a, + 0x7,0x2e,0x6f, 0x7,0x2e,0x62, 0x4,0x50,0x62, 0x4,0x56,0x4c, + 0x4,0x50,0x57, 0x7,0x2e,0x5f, 0x4,0x50,0x5f, 0x5,0x54,0x79, + 0x7,0x2e,0x67, 0x7,0x2e,0x64, 0x5,0x54,0x71, 0x5,0x54,0x77, + 0x4,0x50,0x5c, 0x7,0x2e,0x6e, 0x7,0x2e,0x74, 0x5,0x54,0x78, + 0x4,0x50,0x5d, 0x7,0x2e,0x66, 0x7,0x2e,0x6b, 0x4,0x50,0x63, + 0x5,0x54,0x70, 0x7,0x2e,0x61, 0x5,0x61,0x7b, 0x5,0x54,0x75, + 0x5,0x54,0x76, 0x5,0x54,0x72, 0x4,0x4a,0x44, 0x7,0x2e,0x73, + 0x7,0x2e,0x6c, 0x7,0x2e,0x65, 0x7,0x2e,0x5e, 0x5,0x54,0x7c, + 0x5,0x54,0x6f, 0x5,0x54,0x73, 0xf,0x54,0x6f, 0xf,0x54,0x70, + 0xf,0x54,0x71, 0xf,0x54,0x72, 0xf,0x54,0x73, 0xf,0x54,0x75, + 0xf,0x54,0x76, 0xf,0x54,0x77, 0xf,0x54,0x78, 0xf,0x54,0x79, + 0xf,0x54,0x7a, 0xf,0x54,0x7c, 0xf,0x54,0x7d, 0xf,0x54,0x7e, + 0xf,0x55,0x21, 0xf,0x55,0x22, 0xf,0x55,0x24, 0xf,0x55,0x25, + 0xf,0x55,0x26, 0xf,0x55,0x27, 0xf,0x55,0x28, 0xf,0x55,0x2b, + 0xf,0x55,0x2c, 0xf,0x55,0x2d, 0xf,0x55,0x2e, 0xf,0x55,0x2f, + 0xf,0x55,0x30, 0xf,0x55,0x32, 0xf,0x55,0x33, 0xf,0x55,0x34, + 0xf,0x55,0x35, 0xf,0x55,0x36, 0xf,0x55,0x37, 0xf,0x55,0x38, + 0x7,0x2e,0x70, 0x7,0x2e,0x71, 0x4,0x50,0x61, 0xf,0x55,0x23, + 0x5,0x54,0x74, 0xf,0x48,0x70, 0xf,0x4f,0x41, 0x7,0x2e,0x6d, + 0x4,0x56,0x43, 0x7,0x38,0x50, 0x7,0x38,0x4e, 0x4,0x56,0x47, + 0x7,0x38,0x52, 0x7,0x38,0x56, 0x5,0x5b,0x6a, 0x5,0x5b,0x6b, + 0x4,0x56,0x4a, 0x4,0x56,0x46, 0x5,0x5b,0x6e, 0x7,0x38,0x53, + 0x5,0x5b,0x6c, 0x7,0x38,0x51, 0x7,0x38,0x57, 0x5,0x61,0x7c, + 0x5,0x5b,0x67, 0x4,0x56,0x4d, 0x4,0x56,0x44, 0x7,0x38,0x59, + 0x4,0x56,0x42, 0x5,0x5b,0x69, 0x7,0x38,0x5b, 0x5,0x5b,0x66, + 0x7,0x38,0x54, 0xf,0x5a,0x40, 0xf,0x5a,0x41, 0xf,0x5a,0x43, + 0xf,0x5a,0x44, 0xf,0x5a,0x45, 0xf,0x5a,0x46, 0xf,0x5a,0x47, + 0xf,0x5a,0x48, 0xf,0x5a,0x49, 0xf,0x5a,0x4a, 0xf,0x5a,0x4b, + 0xf,0x5a,0x4c, 0xf,0x5a,0x4e, 0xf,0x5a,0x4f, 0xf,0x5a,0x51, + 0xf,0x5a,0x52, 0xf,0x5a,0x54, 0x7,0x38,0x58, 0x5,0x5b,0x6d, + 0x7,0x38,0x5a, 0x7,0x38,0x4d, 0x7,0x38,0x4f, 0x7,0x37,0x27, + 0xf,0x5a,0x53, 0xf,0x5a,0x4d, 0x5,0x5b,0x6f, 0x5,0x5b,0x70, + 0xf,0x55,0x31, 0xf,0x5a,0x50, 0x4,0x5b,0x47, 0x5,0x61,0x78, + 0x7,0x40,0x27, 0x7,0x40,0x23, 0x4,0x5b,0x42, 0x7,0x40,0x2b, + 0x5,0x62,0x24, 0x5,0x61,0x7d, 0x5,0x62,0x26, 0x7,0x40,0x29, + 0x4,0x5b,0x45, 0x5,0x61,0x7a, 0x5,0x62,0x22, 0x5,0x62,0x27, + 0x5,0x61,0x7e, 0x7,0x38,0x5c, 0x5,0x62,0x2b, 0x5,0x61,0x79, + 0x4,0x5b,0x43, 0x4,0x5b,0x4c, 0x4,0x5b,0x46, 0x7,0x40,0x2d, + 0x7,0x40,0x28, 0x5,0x62,0x23, 0x7,0x47,0x46, 0x5,0x62,0x29, + 0x7,0x40,0x26, 0x4,0x5b,0x4b, 0x5,0x62,0x28, 0x5,0x62,0x25, + 0x5,0x61,0x76, 0x7,0x3f,0x7c, 0x7,0x3f,0x7d, 0xf,0x5e,0x7e, + 0xf,0x5f,0x22, 0xf,0x5f,0x23, 0xf,0x5f,0x24, 0xf,0x5f,0x25, + 0xf,0x5f,0x26, 0xf,0x5f,0x27, 0xf,0x5f,0x28, 0xf,0x5f,0x2a, + 0xf,0x5f,0x2b, 0xf,0x5f,0x2c, 0xf,0x5f,0x2e, 0xf,0x5f,0x2f, + 0xf,0x5f,0x30, 0x7,0x40,0x21, 0x7,0x40,0x25, 0x7,0x40,0x2c, + 0x7,0x40,0x2a, 0x5,0x62,0x21, 0xf,0x5f,0x21, 0x5,0x62,0x2a, + 0x5,0x61,0x77, 0x7,0x40,0x22, 0x7,0x40,0x24, 0xf,0x5f,0x2d, + 0x5,0x68,0x25, 0x7,0x47,0x43, 0x5,0x68,0x28, 0x5,0x68,0x2b, + 0x5,0x68,0x29, 0x7,0x47,0x42, 0x7,0x47,0x40, 0x5,0x68,0x2d, + 0x7,0x47,0x41, 0x4,0x5f,0x74, 0x7,0x47,0x48, 0x7,0x47,0x49, + 0x5,0x68,0x27, 0x5,0x68,0x26, 0x7,0x47,0x45, 0x5,0x68,0x2f, + 0x7,0x47,0x47, 0x7,0x3f,0x7e, 0xf,0x62,0x52, 0xf,0x62,0x56, + 0xf,0x62,0x58, 0xf,0x62,0x59, 0xf,0x62,0x5a, 0xf,0x62,0x5b, + 0xf,0x62,0x5c, 0xf,0x62,0x5d, 0xf,0x62,0x5f, 0xf,0x62,0x60, + 0xf,0x62,0x61, 0x5,0x68,0x2e, 0x7,0x47,0x44, 0x7,0x47,0x3f, + 0xf,0x62,0x54, 0x5,0x68,0x2c, 0xf,0x62,0x57, 0xf,0x62,0x4f, + 0xf,0x62,0x5e, 0xf,0x5e,0x7d, 0x4,0x63,0x53, 0x7,0x4d,0x7c, + 0x5,0x6c,0x3f, 0x7,0x4d,0x7e, 0x5,0x6c,0x42, 0x5,0x68,0x30, + 0x5,0x6c,0x3a, 0x5,0x6c,0x39, 0x5,0x6c,0x3d, 0x7,0x4d,0x7d, + 0x5,0x6c,0x3c, 0x5,0x6c,0x41, 0x5,0x6c,0x3b, 0x5,0x68,0x2a, + 0x5,0x6c,0x40, 0x5,0x6c,0x3e, 0xf,0x65,0x33, 0xf,0x65,0x34, + 0xf,0x65,0x35, 0xf,0x65,0x36, 0xf,0x65,0x37, 0xf,0x65,0x39, + 0xf,0x65,0x3a, 0xf,0x65,0x3b, 0xf,0x65,0x3c, 0xf,0x65,0x3d, + 0xf,0x65,0x3f, 0x7,0x4e,0x21, 0x4,0x63,0x52, 0x7,0x53,0x49, + 0x7,0x53,0x48, 0x5,0x70,0x2b, 0x5,0x70,0x2d, 0x4,0x66,0x46, + 0x5,0x70,0x29, 0x7,0x53,0x4d, 0x5,0x70,0x28, 0x5,0x70,0x2a, + 0x5,0x70,0x2c, 0x7,0x53,0x4a, 0x4,0x66,0x45, 0x5,0x70,0x2f, + 0x7,0x53,0x4e, 0x5,0x70,0x32, 0xf,0x67,0x5b, 0xf,0x67,0x5c, + 0xf,0x67,0x5d, 0xf,0x67,0x5e, 0xf,0x67,0x5f, 0xf,0x67,0x60, + 0xf,0x67,0x61, 0xf,0x67,0x62, 0xf,0x67,0x63, 0xf,0x67,0x64, + 0x7,0x53,0x4c, 0x5,0x70,0x31, 0x5,0x70,0x30, 0x7,0x53,0x4b, + 0x5,0x70,0x2e, 0x7,0x58,0x26, 0x5,0x73,0x4e, 0x5,0x73,0x4f, + 0x5,0x73,0x4c, 0x5,0x73,0x4a, 0x4,0x68,0x6f, 0x5,0x73,0x4b, + 0x5,0x73,0x4d, 0x7,0x58,0x25, 0xf,0x69,0x47, 0xf,0x69,0x48, + 0xf,0x69,0x49, 0xf,0x69,0x4b, 0xf,0x69,0x4e, 0xf,0x69,0x4f, + 0xf,0x69,0x50, 0xf,0x69,0x51, 0x7,0x58,0x24, 0x7,0x58,0x22, + 0xf,0x67,0x65, 0x5,0x75,0x71, 0x5,0x75,0x73, 0x5,0x77,0x60, + 0x5,0x75,0x74, 0x7,0x5b,0x60, 0x5,0x75,0x72, 0x7,0x5b,0x61, + 0x5,0x75,0x75, 0x7,0x5b,0x5f, 0x5,0x77,0x61, 0x7,0x5b,0x5d, + 0xf,0x6a,0x57, 0xf,0x6a,0x59, 0x7,0x5b,0x5e, 0x5,0x75,0x76, + 0x5,0x75,0x70, 0x4,0x6b,0x6c, 0x7,0x5e,0x6e, 0x5,0x77,0x62, + 0x7,0x60,0x71, 0xf,0x6b,0x4e, 0xf,0x6b,0x4f, 0xf,0x6b,0x50, + 0xf,0x6b,0x53, 0xf,0x6b,0x54, 0x7,0x5e,0x6f, 0x7,0x5e,0x70, + 0xf,0x6a,0x58, 0x7,0x60,0x72, 0x5,0x79,0x2d, 0xf,0x6c,0x2c, + 0x7,0x60,0x73, 0x5,0x79,0x2c, 0x5,0x79,0x2e, 0xf,0x6b,0x52, + 0x5,0x7a,0x29, 0x7,0x63,0x54, 0x7,0x60,0x74, 0x4,0x6d,0x55, + 0xf,0x6c,0x2d, 0xf,0x6c,0x4c, 0xf,0x6c,0x63, 0x7,0x63,0x4c, + 0x7,0x63,0x55, 0x5,0x7b,0x40, 0x7,0x64,0x48, 0x7,0x64,0x49, + 0x7,0x65,0x5b, 0xf,0x6d,0x2f, 0x7,0x65,0x74, 0x6,0x25,0x24, + 0x4,0x24,0x4b, 0x6,0x28,0x2f, 0x6,0x2c,0x2e, 0x6,0x28,0x32, + 0x5,0x24,0x47, 0x6,0x28,0x31, 0x4,0x24,0x4a, 0x5,0x26,0x5c, + 0x5,0x26,0x5b, 0x5,0x26,0x58, 0x6,0x2c,0x2f, 0x4,0x26,0x6f, + 0x6,0x2c,0x30, 0x5,0x26,0x5d, 0x4,0x26,0x6e, 0x5,0x26,0x59, + 0x5,0x26,0x5a, 0x5,0x26,0x57, 0xf,0x27,0x56, 0x5,0x29,0x5f, + 0x6,0x31,0x7a, 0x6,0x38,0x54, 0x6,0x31,0x7c, 0x5,0x29,0x62, + 0x4,0x29,0x75, 0x5,0x29,0x61, 0x5,0x29,0x5e, 0x6,0x31,0x79, + 0x5,0x29,0x5c, 0x5,0x29,0x60, 0x6,0x31,0x7b, 0x5,0x29,0x5d, + 0xf,0x2c,0x77, 0x6,0x38,0x57, 0x6,0x38,0x58, 0x6,0x38,0x55, + 0x5,0x2e,0x33, 0x5,0x2e,0x2d, 0x6,0x38,0x56, 0x6,0x40,0x6b, + 0x5,0x2e,0x32, 0x4,0x2d,0x5f, 0x5,0x2e,0x2f, 0x5,0x2e,0x34, + 0x5,0x2e,0x31, 0x5,0x2e,0x30, 0xf,0x30,0x31, 0x5,0x33,0x25, + 0x6,0x40,0x6c, 0x6,0x40,0x6d, 0xf,0x35,0x67, 0xf,0x35,0x68, + 0xf,0x35,0x69, 0xf,0x35,0x6a, 0xf,0x35,0x6b, 0xf,0x35,0x6c, + 0xf,0x35,0x6d, 0xf,0x35,0x6e, 0x4,0x38,0x3d, 0x5,0x39,0x47, + 0x5,0x3f,0x77, 0x4,0x38,0x3a, 0x5,0x39,0x45, 0x6,0x4a,0x3c, + 0x5,0x33,0x24, 0x5,0x39,0x48, 0x6,0x4a,0x3d, 0x5,0x39,0x44, + 0x5,0x39,0x49, 0x6,0x4a,0x3e, 0x5,0x39,0x46, 0x6,0x4a,0x3b, + 0xf,0x3c,0x30, 0xf,0x3c,0x31, 0x6,0x4a,0x3a, 0x6,0x53,0x6e, + 0x5,0x3f,0x76, 0x5,0x3f,0x75, 0x5,0x3f,0x7a, 0x6,0x53,0x6b, + 0x5,0x3f,0x79, 0x6,0x53,0x67, 0x6,0x53,0x66, 0x6,0x53,0x68, + 0x6,0x53,0x69, 0x6,0x53,0x6a, 0x6,0x53,0x6d, 0x5,0x3f,0x78, + 0xf,0x42,0x4e, 0x6,0x58,0x5a, 0x6,0x53,0x6c, 0x6,0x53,0x65, + 0xf,0x42,0x4d, 0x5,0x46,0x5c, 0x4,0x44,0x2b, 0x5,0x46,0x5e, + 0x6,0x5d,0x6f, 0x6,0x5d,0x6e, 0x4,0x44,0x2c, 0x5,0x46,0x5d, + 0x4,0x44,0x29, 0x6,0x5d,0x75, 0x6,0x5d,0x70, 0x5,0x46,0x5a, + 0x6,0x5d,0x76, 0x6,0x5d,0x74, 0x5,0x46,0x5b, 0x6,0x5d,0x72, + 0x6,0x5d,0x71, 0x6,0x5d,0x73, 0x6,0x53,0x6f, 0xf,0x48,0x76, + 0xf,0x48,0x78, 0x5,0x46,0x59, 0x5,0x4d,0x6e, 0x7,0x23,0x7d, + 0x5,0x4d,0x70, 0x5,0x4d,0x71, 0x4,0x4a,0x4d, 0x7,0x23,0x79, + 0x7,0x23,0x77, 0x7,0x23,0x7e, 0x7,0x23,0x76, 0x7,0x23,0x7a, + 0x7,0x23,0x7b, 0x5,0x4d,0x6f, 0xf,0x4f,0x54, 0x7,0x23,0x7c, + 0x5,0x54,0x7e, 0x7,0x2e,0x76, 0x4,0x50,0x68, 0x7,0x2e,0x75, + 0xf,0x55,0x3a, 0xf,0x55,0x3b, 0x7,0x38,0x5e, 0x7,0x38,0x60, + 0x5,0x5b,0x71, 0x7,0x38,0x5f, 0xf,0x5a,0x55, 0x7,0x38,0x5d, + 0x5,0x62,0x2c, 0x5,0x68,0x32, 0x5,0x68,0x31, 0xf,0x62,0x62, + 0x5,0x70,0x36, 0x7,0x4e,0x23, 0x5,0x70,0x35, 0x5,0x70,0x34, + 0x4,0x68,0x70, 0x5,0x70,0x33, 0x5,0x73,0x50, 0x7,0x58,0x29, + 0x7,0x58,0x27, 0x7,0x58,0x28, 0x5,0x77,0x63, 0x7,0x60,0x75, + 0x4,0x6c,0x70, 0x4,0x6d,0x56, 0x5,0x21,0x32, 0x5,0x21,0x70, + 0x6,0x23,0x2e, 0x6,0x25,0x26, 0x5,0x24,0x4a, 0x6,0x28,0x34, + 0x6,0x2c,0x31, 0x5,0x24,0x49, 0x5,0x24,0x4b, 0x6,0x28,0x33, + 0x6,0x2c,0x3c, 0x6,0x2c,0x34, 0x6,0x2c,0x3b, 0x6,0x2c,0x3a, + 0x6,0x2c,0x36, 0x6,0x2c,0x33, 0x6,0x2c,0x38, 0x6,0x2c,0x32, + 0x6,0x2c,0x37, 0x5,0x26,0x5e, 0x6,0x2c,0x39, 0x6,0x2c,0x35, + 0x5,0x26,0x5f, 0xf,0x27,0x57, 0xf,0x27,0x58, 0xf,0x27,0x59, + 0x4,0x26,0x72, 0x4,0x29,0x76, 0x5,0x29,0x63, 0x5,0x28,0x35, + 0x6,0x38,0x59, 0x6,0x38,0x5c, 0x5,0x2e,0x35, 0x6,0x38,0x5a, + 0x6,0x38,0x5e, 0x6,0x38,0x5d, 0x6,0x38,0x5b, 0x6,0x37,0x48, + 0x5,0x33,0x26, 0x6,0x40,0x70, 0xf,0x35,0x6f, 0x6,0x40,0x6f, + 0x4,0x38,0x40, 0x4,0x38,0x3e, 0x5,0x39,0x4a, 0x5,0x39,0x4b, + 0x6,0x4a,0x43, 0x4,0x38,0x41, 0x6,0x4a,0x42, 0x6,0x4a,0x44, + 0x6,0x4a,0x40, 0x6,0x4a,0x45, 0x6,0x4a,0x46, 0x6,0x4a,0x41, + 0x5,0x3f,0x7c, 0x6,0x53,0x70, 0x5,0x3f,0x7b, 0xf,0x42,0x4f, + 0x6,0x5a,0x61, 0x7,0x24,0x22, 0x7,0x24,0x25, 0x7,0x24,0x23, + 0x7,0x24,0x26, 0x7,0x24,0x21, 0x7,0x24,0x24, 0xf,0x4f,0x55, + 0x7,0x2e,0x7a, 0x7,0x2e,0x79, 0x7,0x2e,0x77, 0x7,0x2e,0x78, + 0x7,0x38,0x61, 0x4,0x56,0x50, 0xf,0x5a,0x56, 0xf,0x5a,0x57, + 0x5,0x62,0x2d, 0x5,0x62,0x2e, 0x7,0x40,0x2e, 0x5,0x73,0x51, + 0x7,0x5b,0x62, 0x7,0x5b,0x63, 0x5,0x21,0x71, 0x5,0x21,0x49, + 0x5,0x22,0x76, 0x6,0x28,0x35, 0x4,0x22,0x7d, 0x6,0x25,0x27, + 0x5,0x24,0x4c, 0x4,0x24,0x4d, 0x6,0x25,0x28, 0x6,0x28,0x36, + 0x6,0x28,0x3b, 0x6,0x28,0x37, 0x4,0x24,0x4c, 0x6,0x28,0x3c, + 0x5,0x24,0x4d, 0x6,0x28,0x39, 0x6,0x28,0x38, 0x6,0x28,0x3a, + 0x6,0x2c,0x3f, 0x5,0x26,0x60, 0x5,0x26,0x66, 0x5,0x26,0x61, + 0x5,0x26,0x64, 0x4,0x26,0x73, 0x4,0x26,0x74, 0x5,0x26,0x63, + 0x4,0x26,0x77, 0x6,0x2c,0x3d, 0x6,0x2c,0x3e, 0x6,0x2c,0x40, + 0x6,0x31,0x7d, 0x5,0x26,0x65, 0x5,0x29,0x68, 0x4,0x29,0x78, + 0x4,0x29,0x79, 0x6,0x32,0x26, 0x4,0x29,0x77, 0x6,0x31,0x7e, + 0x5,0x29,0x64, 0x5,0x29,0x65, 0x5,0x29,0x6b, 0x5,0x29,0x66, + 0x5,0x29,0x67, 0x6,0x32,0x25, 0x4,0x29,0x7a, 0x6,0x32,0x22, + 0x6,0x32,0x23, 0x5,0x29,0x6a, 0x6,0x32,0x24, 0x6,0x38,0x5f, + 0xf,0x2b,0x50, 0x6,0x32,0x21, 0x5,0x29,0x6c, 0x5,0x2e,0x36, + 0x4,0x2d,0x63, 0x6,0x38,0x62, 0x5,0x2e,0x3b, 0x6,0x38,0x65, + 0x5,0x2e,0x3c, 0x5,0x2e,0x38, 0x5,0x2e,0x39, 0x6,0x38,0x63, + 0x6,0x38,0x66, 0x5,0x2e,0x3d, 0x5,0x2e,0x37, 0x5,0x2e,0x3a, + 0x5,0x2e,0x3e, 0x6,0x38,0x60, 0x6,0x38,0x61, 0x5,0x33,0x2b, + 0x6,0x40,0x74, 0x5,0x33,0x2a, 0x6,0x40,0x73, 0x5,0x33,0x27, + 0x5,0x33,0x28, 0x5,0x33,0x29, 0x6,0x40,0x71, 0x4,0x32,0x4b, + 0x5,0x33,0x2c, 0x6,0x4a,0x49, 0x6,0x40,0x75, 0x6,0x40,0x72, + 0xf,0x35,0x71, 0x6,0x53,0x72, 0x6,0x4a,0x4a, 0x5,0x39,0x53, + 0x4,0x38,0x48, 0x6,0x4a,0x4b, 0x4,0x38,0x43, 0x5,0x39,0x4e, + 0x5,0x39,0x4d, 0x5,0x39,0x4f, 0x4,0x38,0x47, 0x5,0x39,0x52, + 0x5,0x39,0x54, 0x5,0x39,0x50, 0x5,0x39,0x4c, 0x5,0x39,0x51, + 0x6,0x4a,0x4c, 0x6,0x53,0x71, 0x6,0x4a,0x48, 0xf,0x3c,0x32, + 0x6,0x53,0x74, 0x6,0x53,0x79, 0x5,0x3f,0x7d, 0x5,0x3f,0x7e, + 0x6,0x53,0x76, 0x6,0x53,0x78, 0x4,0x3e,0x25, 0x6,0x5d,0x78, + 0x6,0x53,0x7a, 0x6,0x53,0x75, 0x6,0x53,0x73, 0xf,0x42,0x50, + 0xf,0x35,0x70, 0x4,0x44,0x34, 0x4,0x44,0x2e, 0x6,0x5d,0x7b, + 0x6,0x5d,0x7c, 0x4,0x44,0x2f, 0x6,0x5d,0x79, 0x6,0x5d,0x7a, + 0x6,0x5d,0x2d, 0x7,0x24,0x29, 0x4,0x4a,0x51, 0x5,0x4d,0x72, + 0x7,0x24,0x27, 0x5,0x4d,0x75, 0x7,0x24,0x28, 0x7,0x24,0x2b, + 0x5,0x4d,0x74, 0x4,0x50,0x69, 0x7,0x24,0x2c, 0x7,0x24,0x2a, + 0xf,0x4f,0x56, 0x5,0x4d,0x73, 0x7,0x2e,0x7b, 0x7,0x2e,0x7c, + 0x5,0x55,0x21, 0x4,0x50,0x6c, 0x5,0x55,0x23, 0x5,0x55,0x22, + 0x7,0x2e,0x7e, 0xf,0x55,0x3c, 0xf,0x55,0x3d, 0x7,0x38,0x64, + 0x7,0x38,0x62, 0x5,0x5b,0x73, 0x7,0x38,0x65, 0x7,0x38,0x63, + 0x5,0x5b,0x74, 0x5,0x62,0x30, 0x5,0x62,0x2f, 0x4,0x5b,0x4d, + 0x7,0x40,0x30, 0x7,0x2e,0x7d, 0x5,0x5b,0x75, 0x7,0x40,0x2f, + 0x5,0x68,0x33, 0x5,0x70,0x37, 0x5,0x70,0x38, 0x7,0x53,0x4f, + 0x7,0x58,0x2a, 0x5,0x75,0x7a, 0x5,0x75,0x79, 0x5,0x26,0x68, + 0x5,0x26,0x67, 0x6,0x32,0x27, 0x6,0x32,0x28, 0x5,0x2e,0x3f, + 0x4,0x32,0x4c, 0x4,0x32,0x4d, 0x6,0x40,0x78, 0x6,0x40,0x79, + 0x6,0x40,0x76, 0x6,0x40,0x77, 0xf,0x35,0x73, 0xf,0x35,0x75, + 0xf,0x35,0x76, 0xf,0x35,0x77, 0x6,0x40,0x7b, 0x6,0x40,0x7a, + 0x5,0x33,0x2d, 0x6,0x4a,0x4f, 0x6,0x4a,0x4e, 0xf,0x3c,0x33, + 0xf,0x35,0x72, 0x6,0x54,0x21, 0x6,0x54,0x22, 0x6,0x53,0x7d, + 0x6,0x53,0x7e, 0x6,0x54,0x24, 0xf,0x42,0x51, 0xf,0x42,0x52, + 0x6,0x54,0x23, 0x6,0x53,0x7c, 0x5,0x40,0x21, 0x5,0x40,0x7b, + 0x5,0x46,0x61, 0x4,0x44,0x36, 0x6,0x5e,0x21, 0x4,0x44,0x37, + 0x6,0x5d,0x7e, 0x6,0x5d,0x7d, 0xf,0x48,0x7a, 0x5,0x4d,0x76, + 0x6,0x5e,0x22, 0x7,0x24,0x2d, 0x4,0x4a,0x52, 0x7,0x2f,0x25, + 0x7,0x2f,0x23, 0x7,0x2f,0x26, 0x7,0x2f,0x21, 0x7,0x2f,0x24, + 0x5,0x55,0x24, 0x7,0x2f,0x22, 0xf,0x55,0x3e, 0xf,0x55,0x3f, + 0xf,0x55,0x40, 0x7,0x38,0x66, 0x7,0x38,0x67, 0x4,0x5b,0x4e, + 0x7,0x40,0x33, 0x5,0x62,0x32, 0x5,0x62,0x31, 0x7,0x40,0x31, + 0x7,0x40,0x32, 0x4,0x5f,0x78, 0x7,0x47,0x4c, 0x7,0x4e,0x25, + 0x7,0x47,0x4d, 0x7,0x53,0x50, 0x4,0x6a,0x4d, 0x5,0x75,0x7b, + 0x7,0x5b,0x64, 0x5,0x73,0x52, 0x7,0x5e,0x73, 0x5,0x77,0x65, + 0x5,0x77,0x64, 0x7,0x60,0x76, 0x7,0x63,0x56, 0x5,0x21,0x72, + 0x6,0x28,0x3d, 0x6,0x2c,0x41, 0x6,0x32,0x29, 0x6,0x38,0x67, + 0xf,0x3c,0x34, 0x5,0x40,0x22, 0x4,0x4a,0x53, 0xf,0x4f,0x57, + 0xf,0x4f,0x58, 0xf,0x5a,0x59, 0xf,0x55,0x41, 0xf,0x62,0x63, + 0xf,0x6a,0x5a, 0x5,0x24,0x4f, 0x6,0x28,0x3e, 0x6,0x2c,0x45, + 0x6,0x2c,0x44, 0x5,0x26,0x69, 0x6,0x38,0x68, 0x6,0x38,0x6a, + 0x6,0x38,0x69, 0x6,0x40,0x7c, 0x6,0x40,0x7d, 0x5,0x40,0x23, + 0x4,0x3e,0x26, 0x5,0x46,0x62, 0x5,0x46,0x63, 0x6,0x5e,0x23, + 0x7,0x24,0x2e, 0x7,0x2f,0x27, 0x7,0x2f,0x28, 0x5,0x55,0x25, + 0x7,0x47,0x4e, 0x5,0x6c,0x43, 0x5,0x79,0x30, 0x5,0x21,0x4a, + 0x4,0x22,0x7e, 0xf,0x22,0x5a, 0xf,0x22,0x5b, 0x6,0x28,0x40, + 0x6,0x28,0x3f, 0x4,0x24,0x4e, 0xf,0x24,0x55, 0xf,0x24,0x56, + 0xf,0x24,0x57, 0xf,0x24,0x59, 0xf,0x24,0x5a, 0x5,0x26,0x6d, + 0x5,0x26,0x6a, 0x5,0x26,0x6c, 0x5,0x26,0x6b, 0x6,0x2c,0x47, + 0x6,0x2c,0x46, 0xf,0x27,0x5a, 0xf,0x27,0x5c, 0xf,0x27,0x5d, + 0xf,0x27,0x5e, 0xf,0x27,0x5f, 0x5,0x26,0x43, 0x6,0x32,0x2c, + 0x5,0x29,0x6e, 0x5,0x29,0x6f, 0x5,0x29,0x6d, 0x5,0x29,0x70, + 0x5,0x29,0x71, 0x6,0x32,0x2d, 0x5,0x29,0x73, 0x6,0x32,0x2f, + 0x6,0x38,0x6d, 0x6,0x32,0x2e, 0x5,0x29,0x74, 0x6,0x32,0x2b, + 0x5,0x29,0x72, 0xf,0x2b,0x51, 0xf,0x2b,0x52, 0xf,0x2b,0x53, + 0xf,0x2b,0x54, 0xf,0x2b,0x55, 0xf,0x2b,0x56, 0xf,0x2b,0x57, + 0xf,0x2b,0x58, 0xf,0x2b,0x59, 0xf,0x2b,0x5a, 0xf,0x2b,0x5b, + 0xf,0x2b,0x5c, 0xf,0x2b,0x5e, 0xf,0x2b,0x5d, 0x6,0x38,0x6f, + 0x5,0x2e,0x41, 0x6,0x38,0x6e, 0x4,0x2d,0x69, 0x5,0x2e,0x43, + 0x4,0x2d,0x68, 0x6,0x38,0x6c, 0x5,0x2e,0x42, 0xf,0x30,0x32, + 0xf,0x30,0x33, 0xf,0x30,0x34, 0xf,0x30,0x35, 0xf,0x30,0x36, + 0xf,0x30,0x37, 0xf,0x30,0x38, 0xf,0x30,0x39, 0x6,0x38,0x6b, + 0x5,0x2e,0x40, 0x6,0x41,0x26, 0x4,0x32,0x56, 0x6,0x41,0x21, + 0x5,0x33,0x31, 0x6,0x41,0x22, 0x6,0x41,0x23, 0x5,0x33,0x2e, + 0x6,0x41,0x25, 0x5,0x33,0x32, 0x5,0x33,0x30, 0x5,0x33,0x2f, + 0x6,0x40,0x7e, 0x6,0x41,0x24, 0xf,0x35,0x78, 0xf,0x35,0x79, + 0xf,0x35,0x7a, 0xf,0x35,0x7b, 0xf,0x35,0x7c, 0x5,0x39,0x55, + 0x4,0x38,0x4d, 0x5,0x39,0x56, 0x4,0x38,0x50, 0x6,0x4a,0x51, + 0x6,0x4a,0x53, 0x5,0x39,0x59, 0x5,0x39,0x58, 0x5,0x39,0x5a, + 0x6,0x4a,0x56, 0x6,0x4a,0x50, 0x6,0x4a,0x55, 0x5,0x39,0x57, + 0x6,0x4a,0x52, 0xf,0x3c,0x3a, 0xf,0x3c,0x35, 0xf,0x3c,0x37, + 0xf,0x3c,0x38, 0xf,0x3c,0x39, 0xf,0x3c,0x3b, 0xf,0x3c,0x3d, + 0xf,0x3c,0x3f, 0xf,0x3c,0x40, 0x6,0x4a,0x54, 0xf,0x3c,0x36, + 0x5,0x39,0x5c, 0x6,0x54,0x2e, 0x6,0x54,0x2c, 0x4,0x3e,0x2b, + 0x6,0x54,0x27, 0x6,0x54,0x2b, 0x4,0x3e,0x2a, 0x6,0x54,0x28, + 0x6,0x54,0x25, 0x6,0x54,0x29, 0x6,0x54,0x26, 0x6,0x54,0x2d, + 0x6,0x54,0x2a, 0x6,0x54,0x2f, 0x5,0x40,0x24, 0xf,0x42,0x53, + 0xf,0x42,0x55, 0xf,0x42,0x56, 0xf,0x42,0x57, 0x6,0x54,0x30, + 0x6,0x5e,0x29, 0x5,0x46,0x66, 0x5,0x46,0x65, 0x6,0x5e,0x2a, + 0x6,0x5e,0x2b, 0x6,0x5e,0x2d, 0x4,0x44,0x3d, 0x6,0x5e,0x24, + 0x4,0x44,0x3e, 0x5,0x46,0x67, 0x4,0x44,0x3b, 0x6,0x5e,0x2e, + 0x6,0x5e,0x2f, 0x6,0x5e,0x26, 0x6,0x5e,0x27, 0xf,0x48,0x7c, + 0xf,0x48,0x7d, 0xf,0x48,0x7e, 0xf,0x49,0x21, 0x6,0x5e,0x28, + 0x5,0x46,0x69, 0x6,0x5e,0x30, 0x6,0x5e,0x25, 0x6,0x5e,0x2c, + 0x4,0x4a,0x56, 0x7,0x24,0x33, 0x7,0x24,0x37, 0x7,0x24,0x35, + 0x4,0x4a,0x55, 0x4,0x4a,0x54, 0x5,0x4d,0x79, 0x7,0x24,0x34, + 0x5,0x4d,0x77, 0x5,0x4d,0x78, 0x7,0x24,0x31, 0x7,0x24,0x32, + 0x7,0x24,0x30, 0x7,0x24,0x2f, 0x7,0x24,0x36, 0x7,0x24,0x38, + 0x7,0x2f,0x29, 0x5,0x55,0x27, 0x7,0x2f,0x2a, 0x4,0x50,0x70, + 0x5,0x55,0x26, 0x4,0x50,0x73, 0x7,0x2f,0x2c, 0xf,0x55,0x42, + 0xf,0x55,0x43, 0xf,0x55,0x44, 0xf,0x55,0x45, 0x7,0x2f,0x2b, + 0x7,0x24,0x39, 0x7,0x38,0x6a, 0x4,0x56,0x55, 0x4,0x56,0x54, + 0x7,0x38,0x69, 0x5,0x5b,0x76, 0x7,0x38,0x68, 0xf,0x5a,0x5a, + 0xf,0x5a,0x5b, 0xf,0x5a,0x5c, 0x7,0x38,0x6c, 0x7,0x38,0x6b, + 0x5,0x62,0x35, 0x5,0x62,0x34, 0x5,0x62,0x36, 0x7,0x40,0x37, + 0x7,0x47,0x4f, 0x7,0x40,0x35, 0x5,0x62,0x37, 0x7,0x40,0x34, + 0x7,0x40,0x36, 0xf,0x5f,0x31, 0x5,0x62,0x33, 0xf,0x5f,0x32, + 0x7,0x47,0x52, 0x5,0x68,0x34, 0x7,0x47,0x50, 0x7,0x47,0x51, + 0xf,0x65,0x41, 0x7,0x4e,0x26, 0x4,0x66,0x47, 0x5,0x70,0x39, + 0x7,0x53,0x51, 0xf,0x67,0x67, 0x7,0x58,0x2b, 0x5,0x73,0x53, + 0xf,0x69,0x52, 0x5,0x75,0x7c, 0x7,0x5b,0x65, 0x7,0x64,0x4a, + 0x6,0x2c,0x48, 0x6,0x32,0x30, 0x5,0x29,0x75, 0x5,0x29,0x76, + 0x6,0x33,0x4c, 0x6,0x41,0x27, 0xf,0x35,0x7d, 0x6,0x41,0x28, + 0x6,0x54,0x31, 0x4,0x44,0x40, 0x7,0x2f,0x2d, 0x7,0x38,0x6d, + 0x4,0x5b,0x51, 0xf,0x5a,0x5d, 0x6,0x25,0x2a, 0x6,0x25,0x29, + 0xf,0x24,0x5c, 0x6,0x2c,0x4b, 0x6,0x2c,0x4a, 0x6,0x2c,0x49, + 0x6,0x32,0x31, 0x6,0x32,0x32, 0xf,0x2b,0x5f, 0x5,0x29,0x77, + 0x5,0x2e,0x44, 0xf,0x35,0x7e, 0x5,0x39,0x5d, 0xf,0x3c,0x41, + 0x6,0x54,0x32, 0x7,0x24,0x3b, 0x7,0x24,0x3a, 0x7,0x40,0x38, + 0x7,0x53,0x52, 0xf,0x21,0x67, 0x6,0x22,0x24, 0x6,0x25,0x2b, + 0x5,0x21,0x73, 0x6,0x25,0x2c, 0xf,0x22,0x5e, 0xf,0x24,0x69, + 0x4,0x23,0x23, 0x6,0x25,0x2d, 0x5,0x24,0x50, 0x6,0x25,0x2f, + 0x6,0x25,0x31, 0x3,0x24,0x24, 0xf,0x22,0x5c, 0xf,0x24,0x5f, + 0xf,0x24,0x60, 0x6,0x25,0x30, 0x6,0x2c,0x4d, 0x5,0x24,0x52, + 0x6,0x28,0x42, 0x5,0x24,0x51, 0x5,0x24,0x53, 0x4,0x24,0x50, + 0x6,0x28,0x46, 0x6,0x28,0x47, 0x6,0x2c,0x4c, 0x6,0x28,0x43, + 0x6,0x28,0x41, 0x6,0x28,0x45, 0x6,0x28,0x48, 0xf,0x24,0x61, + 0xf,0x24,0x5e, 0xf,0x24,0x62, 0xf,0x24,0x63, 0xf,0x24,0x64, + 0xf,0x24,0x65, 0xf,0x24,0x66, 0xf,0x24,0x67, 0xf,0x27,0x63, + 0xf,0x27,0x64, 0xf,0x27,0x65, 0x4,0x27,0x23, 0x5,0x26,0x6f, + 0x6,0x32,0x33, 0x5,0x26,0x72, 0x5,0x26,0x73, 0x4,0x27,0x21, + 0x6,0x2c,0x57, 0x4,0x27,0x25, 0x6,0x2c,0x50, 0x4,0x27,0x24, + 0x6,0x2c,0x4e, 0x5,0x26,0x6e, 0x5,0x26,0x70, 0x6,0x2c,0x58, + 0x5,0x26,0x71, 0x6,0x2c,0x5a, 0x6,0x32,0x34, 0x6,0x2c,0x56, + 0x6,0x2c,0x5c, 0x4,0x26,0x7c, 0x6,0x2c,0x53, 0xf,0x27,0x60, + 0xf,0x27,0x61, 0xf,0x27,0x62, 0xf,0x27,0x67, 0xf,0x27,0x68, + 0xf,0x27,0x69, 0xf,0x27,0x6a, 0xf,0x27,0x6b, 0xf,0x27,0x6d, + 0xf,0x2b,0x64, 0xf,0x2b,0x67, 0xf,0x2b,0x6c, 0x6,0x2c,0x52, + 0x6,0x2c,0x54, 0x6,0x2c,0x55, 0x6,0x2c,0x59, 0x6,0x2c,0x4f, + 0x5,0x29,0x78, 0x4,0x29,0x7c, 0x6,0x32,0x36, 0x5,0x2a,0x22, + 0x6,0x32,0x3b, 0x6,0x32,0x3e, 0x5,0x29,0x79, 0x4,0x2a,0x22, + 0x4,0x2d,0x71, 0x5,0x2a,0x21, 0x5,0x29,0x7e, 0x6,0x32,0x3a, + 0x6,0x32,0x40, 0x5,0x29,0x7a, 0x6,0x32,0x41, 0x5,0x29,0x7d, + 0x6,0x38,0x70, 0x6,0x32,0x3d, 0x6,0x32,0x3c, 0x4,0x2a,0x23, + 0x4,0x29,0x7d, 0x6,0x32,0x3f, 0xf,0x2b,0x60, 0xf,0x2b,0x61, + 0xf,0x2b,0x62, 0xf,0x2b,0x63, 0xf,0x2b,0x65, 0xf,0x2b,0x66, + 0xf,0x2b,0x68, 0xf,0x2b,0x69, 0xf,0x2b,0x6a, 0xf,0x2b,0x6b, + 0xf,0x2b,0x6d, 0xf,0x2b,0x6e, 0xf,0x30,0x3a, 0xf,0x30,0x3d, + 0xf,0x30,0x44, 0x6,0x32,0x38, 0x4,0x2a,0x24, 0x6,0x32,0x35, + 0x6,0x32,0x37, 0x5,0x2a,0x23, 0xf,0x30,0x57, 0x4,0x2d,0x6e, + 0x5,0x2e,0x49, 0x6,0x39,0x30, 0x6,0x39,0x2e, 0x5,0x2e,0x48, + 0x5,0x2e,0x47, 0x6,0x38,0x7c, 0x5,0x2e,0x4a, 0x6,0x38,0x71, + 0x6,0x38,0x7b, 0x4,0x2d,0x6d, 0x4,0x2d,0x6f, 0x6,0x39,0x25, + 0x6,0x38,0x76, 0x6,0x39,0x26, 0x6,0x39,0x2a, 0x6,0x38,0x77, + 0x6,0x39,0x29, 0x6,0x38,0x7e, 0x6,0x39,0x28, 0x6,0x41,0x2a, + 0x6,0x41,0x29, 0x4,0x32,0x66, 0x6,0x39,0x24, 0x6,0x39,0x2c, + 0x5,0x2e,0x45, 0x6,0x39,0x23, 0x6,0x38,0x73, 0x6,0x39,0x2b, + 0x6,0x38,0x78, 0x6,0x39,0x2f, 0x6,0x39,0x32, 0x6,0x41,0x46, + 0xf,0x30,0x3b, 0xf,0x30,0x3e, 0xf,0x30,0x3f, 0xf,0x30,0x40, + 0xf,0x30,0x41, 0xf,0x30,0x42, 0xf,0x30,0x43, 0xf,0x30,0x45, + 0xf,0x30,0x46, 0xf,0x30,0x47, 0xf,0x30,0x48, 0xf,0x30,0x4a, + 0xf,0x30,0x4b, 0xf,0x30,0x4c, 0xf,0x30,0x4d, 0xf,0x30,0x4e, + 0xf,0x30,0x4f, 0xf,0x30,0x50, 0xf,0x30,0x51, 0xf,0x30,0x52, + 0xf,0x30,0x53, 0xf,0x30,0x54, 0xf,0x30,0x55, 0xf,0x30,0x56, + 0xf,0x30,0x58, 0xf,0x30,0x59, 0xf,0x30,0x5a, 0x6,0x38,0x79, + 0x6,0x39,0x22, 0x6,0x39,0x31, 0x4,0x2d,0x72, 0x6,0x39,0x27, + 0x6,0x38,0x7d, 0x6,0x38,0x75, 0x5,0x2e,0x46, 0xf,0x36,0x2d, + 0x4,0x32,0x5d, 0x5,0x33,0x40, 0x4,0x32,0x5b, 0x4,0x32,0x6b, + 0x6,0x41,0x34, 0x6,0x41,0x38, 0x6,0x41,0x3c, 0x4,0x32,0x6a, + 0x6,0x41,0x43, 0x4,0x32,0x61, 0x6,0x41,0x36, 0x4,0x32,0x65, + 0x6,0x41,0x35, 0x6,0x41,0x45, 0x4,0x32,0x69, 0x5,0x33,0x33, + 0x6,0x41,0x31, 0x4,0x32,0x60, 0x4,0x32,0x67, 0x6,0x4a,0x64, + 0x5,0x33,0x3f, 0x6,0x41,0x42, 0x5,0x33,0x3e, 0x6,0x41,0x3f, + 0x4,0x32,0x59, 0x4,0x32,0x5f, 0x6,0x41,0x2c, 0x4,0x25,0x2f, + 0x6,0x41,0x3b, 0x6,0x41,0x30, 0x6,0x4a,0x66, 0x5,0x33,0x38, + 0x5,0x33,0x41, 0x6,0x4a,0x58, 0x6,0x4a,0x59, 0x6,0x41,0x3e, + 0x6,0x41,0x44, 0x5,0x33,0x36, 0x4,0x32,0x62, 0x6,0x41,0x40, + 0x5,0x33,0x3b, 0x6,0x41,0x2f, 0x6,0x41,0x32, 0x5,0x33,0x3a, + 0x5,0x33,0x35, 0x4,0x32,0x6c, 0x4,0x32,0x6e, 0x5,0x33,0x37, + 0x6,0x41,0x3d, 0xf,0x36,0x21, 0xf,0x36,0x22, 0xf,0x36,0x23, + 0xf,0x36,0x25, 0xf,0x36,0x26, 0xf,0x36,0x27, 0xf,0x36,0x28, + 0xf,0x36,0x2a, 0xf,0x36,0x2c, 0xf,0x36,0x2e, 0xf,0x36,0x2f, + 0xf,0x36,0x30, 0xf,0x36,0x31, 0xf,0x36,0x32, 0xf,0x36,0x36, + 0xf,0x36,0x37, 0xf,0x36,0x38, 0xf,0x36,0x39, 0xf,0x36,0x3a, + 0xf,0x36,0x3b, 0xf,0x36,0x3c, 0xf,0x36,0x3d, 0xf,0x3c,0x42, + 0xf,0x3c,0x4b, 0xf,0x3c,0x4d, 0xf,0x3c,0x57, 0xf,0x42,0x5f, + 0x6,0x4a,0x57, 0x6,0x41,0x33, 0x6,0x41,0x37, 0x5,0x33,0x39, + 0x6,0x41,0x3a, 0x6,0x41,0x39, 0x6,0x41,0x47, 0x6,0x41,0x2d, + 0x6,0x41,0x2e, 0x5,0x33,0x34, 0x5,0x33,0x3c, 0x6,0x38,0x7a, + 0x6,0x4a,0x62, 0x6,0x4a,0x70, 0x4,0x38,0x54, 0x5,0x39,0x63, + 0x4,0x38,0x55, 0x6,0x4a,0x5d, 0x6,0x4a,0x5f, 0x5,0x39,0x67, + 0x5,0x39,0x6a, 0x5,0x39,0x62, 0x6,0x54,0x48, 0x5,0x39,0x6c, + 0x6,0x4a,0x5a, 0x4,0x38,0x53, 0x5,0x33,0x42, 0x4,0x38,0x58, + 0x6,0x4a,0x6c, 0x6,0x4a,0x5c, 0x5,0x39,0x68, 0x6,0x4a,0x71, + 0x6,0x54,0x35, 0x6,0x4a,0x67, 0x6,0x4a,0x68, 0x6,0x4a,0x6e, + 0x5,0x39,0x60, 0x6,0x54,0x34, 0x6,0x4a,0x6f, 0x4,0x3e,0x2c, + 0x5,0x39,0x5f, 0x5,0x39,0x66, 0x5,0x39,0x65, 0x5,0x39,0x64, + 0x6,0x4a,0x6a, 0x5,0x39,0x61, 0x6,0x54,0x33, 0x6,0x4a,0x72, + 0x5,0x39,0x6d, 0x6,0x4a,0x61, 0xf,0x3c,0x44, 0xf,0x3c,0x45, + 0xf,0x3c,0x46, 0xf,0x3c,0x48, 0xf,0x3c,0x49, 0xf,0x3c,0x4a, + 0xf,0x3c,0x4e, 0xf,0x3c,0x4f, 0xf,0x3c,0x50, 0xf,0x3c,0x51, + 0xf,0x3c,0x52, 0xf,0x3c,0x53, 0xf,0x3c,0x54, 0xf,0x3c,0x55, + 0xf,0x3c,0x56, 0xf,0x3c,0x58, 0xf,0x3c,0x59, 0xf,0x3c,0x5b, + 0xf,0x3c,0x5c, 0x6,0x4a,0x69, 0x5,0x39,0x69, 0x6,0x4a,0x6b, + 0x4,0x38,0x5d, 0x6,0x4a,0x5b, 0x6,0x4a,0x60, 0x6,0x4a,0x5e, + 0x5,0x39,0x6b, 0xf,0x42,0x73, 0x6,0x54,0x41, 0x5,0x40,0x25, + 0x4,0x3e,0x41, 0x6,0x54,0x38, 0x4,0x3e,0x34, 0x6,0x54,0x3b, + 0x6,0x54,0x43, 0x4,0x3e,0x3b, 0x4,0x3e,0x43, 0x4,0x3e,0x3e, + 0x4,0x3e,0x2e, 0x6,0x54,0x4a, 0x5,0x40,0x29, 0x5,0x40,0x26, + 0x4,0x3e,0x40, 0x6,0x5e,0x31, 0x6,0x54,0x42, 0x4,0x3e,0x3a, + 0x5,0x40,0x2f, 0x5,0x40,0x2d, 0x4,0x3e,0x31, 0x6,0x5e,0x32, + 0x4,0x3e,0x42, 0x5,0x40,0x2c, 0x5,0x40,0x2e, 0x6,0x54,0x3e, + 0x6,0x54,0x4c, 0x7,0x24,0x3c, 0x6,0x54,0x47, 0x4,0x44,0x4b, + 0x6,0x54,0x3f, 0x6,0x54,0x46, 0x6,0x54,0x37, 0x6,0x54,0x36, + 0x5,0x40,0x2b, 0x5,0x40,0x28, 0x4,0x3e,0x3d, 0x6,0x54,0x3c, + 0x6,0x54,0x3d, 0x6,0x54,0x40, 0x6,0x54,0x45, 0xf,0x42,0x58, + 0xf,0x42,0x59, 0xf,0x42,0x5a, 0xf,0x42,0x5b, 0xf,0x42,0x5c, + 0xf,0x42,0x5d, 0xf,0x42,0x5e, 0xf,0x42,0x60, 0xf,0x42,0x61, + 0xf,0x42,0x62, 0xf,0x42,0x65, 0xf,0x42,0x66, 0xf,0x42,0x67, + 0xf,0x42,0x68, 0xf,0x42,0x69, 0xf,0x42,0x6a, 0xf,0x42,0x6c, + 0xf,0x42,0x6d, 0xf,0x42,0x6e, 0xf,0x42,0x6f, 0xf,0x42,0x70, + 0xf,0x42,0x71, 0xf,0x42,0x72, 0xf,0x42,0x75, 0xf,0x49,0x22, + 0xf,0x49,0x3e, 0x5,0x40,0x2a, 0x6,0x54,0x44, 0x4,0x3e,0x35, + 0x6,0x54,0x4d, 0x6,0x54,0x3a, 0x6,0x54,0x4b, 0xf,0x49,0x2f, + 0xf,0x42,0x6b, 0xf,0x4f,0x6c, 0x6,0x54,0x39, 0x7,0x24,0x3d, + 0x4,0x44,0x54, 0x4,0x44,0x47, 0x4,0x44,0x48, 0x4,0x44,0x4c, + 0x5,0x46,0x6b, 0x4,0x44,0x4e, 0x5,0x46,0x6a, 0x5,0x46,0x74, + 0x5,0x46,0x76, 0x4,0x44,0x45, 0x4,0x44,0x53, 0x6,0x5e,0x44, + 0x5,0x46,0x6f, 0x6,0x5e,0x41, 0x6,0x5e,0x3a, 0x4,0x44,0x51, + 0x4,0x44,0x50, 0x5,0x46,0x75, 0x5,0x46,0x72, 0x5,0x46,0x6d, + 0x7,0x24,0x40, 0x7,0x24,0x3f, 0x5,0x46,0x77, 0x6,0x5e,0x45, + 0x4,0x44,0x4f, 0x6,0x5e,0x39, 0x6,0x5e,0x42, 0x5,0x46,0x70, + 0x5,0x46,0x71, 0x4,0x44,0x41, 0x6,0x5e,0x3d, 0x5,0x4d,0x7a, + 0x7,0x24,0x3e, 0x6,0x5e,0x34, 0x5,0x46,0x6e, 0x6,0x5e,0x3f, + 0x5,0x46,0x73, 0xf,0x49,0x23, 0xf,0x49,0x24, 0xf,0x49,0x25, + 0xf,0x49,0x26, 0xf,0x49,0x27, 0xf,0x49,0x28, 0xf,0x49,0x29, + 0xf,0x49,0x2b, 0xf,0x49,0x2c, 0xf,0x49,0x2d, 0xf,0x49,0x2e, + 0xf,0x49,0x30, 0xf,0x49,0x31, 0xf,0x49,0x34, 0xf,0x49,0x36, + 0xf,0x49,0x37, 0xf,0x49,0x38, 0xf,0x49,0x39, 0xf,0x49,0x3a, + 0xf,0x49,0x3c, 0xf,0x49,0x3d, 0xf,0x49,0x41, 0xf,0x49,0x42, + 0xf,0x49,0x43, 0xf,0x4f,0x6d, 0x7,0x22,0x68, 0x4,0x44,0x42, + 0x6,0x5e,0x3c, 0x6,0x5e,0x43, 0x6,0x5e,0x35, 0x5,0x46,0x6c, + 0x6,0x5e,0x33, 0x6,0x5e,0x37, 0x6,0x5e,0x38, 0xf,0x49,0x3b, + 0x6,0x5e,0x36, 0xf,0x49,0x2a, 0x7,0x24,0x62, 0x7,0x24,0x52, + 0x7,0x24,0x4d, 0x4,0x4a,0x60, 0x7,0x24,0x5a, 0x7,0x24,0x54, + 0x7,0x24,0x4c, 0x4,0x4a,0x65, 0x4,0x4a,0x67, 0x5,0x4e,0x25, + 0x7,0x24,0x63, 0x7,0x24,0x4e, 0x7,0x24,0x50, 0x7,0x24,0x56, + 0x4,0x4a,0x5c, 0x7,0x24,0x57, 0x7,0x24,0x49, 0x5,0x4e,0x21, + 0x7,0x24,0x65, 0x7,0x24,0x47, 0x7,0x24,0x44, 0x4,0x4a,0x66, + 0x5,0x4d,0x7b, 0x5,0x4e,0x24, 0x7,0x24,0x64, 0x4,0x4a,0x5b, + 0x7,0x24,0x5b, 0x4,0x4a,0x5a, 0x7,0x24,0x59, 0x5,0x4d,0x7e, + 0x7,0x24,0x43, 0x7,0x24,0x67, 0x5,0x4e,0x23, 0x5,0x4d,0x7d, + 0x7,0x24,0x53, 0x7,0x24,0x42, 0x7,0x3a,0x69, 0x7,0x24,0x45, + 0x7,0x24,0x68, 0x5,0x4e,0x22, 0x7,0x24,0x41, 0x7,0x24,0x5e, + 0x7,0x24,0x66, 0x5,0x4e,0x26, 0x5,0x4e,0x28, 0x5,0x4d,0x7c, + 0x4,0x4a,0x5e, 0x7,0x24,0x5f, 0x7,0x24,0x4b, 0x7,0x24,0x51, + 0x5,0x4e,0x27, 0x7,0x24,0x5c, 0xf,0x4f,0x59, 0xf,0x4f,0x5a, + 0xf,0x4f,0x5b, 0xf,0x4f,0x5c, 0xf,0x4f,0x5d, 0xf,0x4f,0x5e, + 0xf,0x4f,0x5f, 0xf,0x4f,0x62, 0xf,0x4f,0x63, 0xf,0x4f,0x64, + 0xf,0x4f,0x65, 0xf,0x4f,0x66, 0xf,0x4f,0x67, 0xf,0x4f,0x68, + 0xf,0x4f,0x6a, 0xf,0x4f,0x6b, 0xf,0x4f,0x6f, 0xf,0x4f,0x70, + 0xf,0x4f,0x71, 0xf,0x4f,0x72, 0xf,0x4f,0x73, 0xf,0x4f,0x74, + 0xf,0x4f,0x75, 0xf,0x4f,0x76, 0xf,0x4f,0x77, 0xf,0x4f,0x78, + 0xf,0x4f,0x7b, 0xf,0x4f,0x7c, 0xf,0x55,0x51, 0x7,0x24,0x55, + 0x7,0x24,0x60, 0x7,0x2f,0x30, 0x4,0x4a,0x63, 0x7,0x24,0x46, + 0x7,0x24,0x5d, 0x7,0x24,0x48, 0x7,0x24,0x4a, 0xf,0x55,0x4a, + 0xf,0x4f,0x7e, 0xf,0x49,0x40, 0x4,0x50,0x7c, 0x5,0x55,0x35, + 0x5,0x55,0x34, 0x5,0x55,0x28, 0x5,0x55,0x29, 0x5,0x55,0x2b, + 0x7,0x2f,0x33, 0x5,0x55,0x30, 0x7,0x2f,0x47, 0x7,0x2f,0x40, + 0x7,0x2f,0x3a, 0x4,0x50,0x79, 0x7,0x2f,0x39, 0x4,0x50,0x7e, + 0x5,0x55,0x33, 0x7,0x2f,0x3d, 0x7,0x2f,0x31, 0x7,0x2f,0x37, + 0x7,0x2f,0x46, 0x7,0x2f,0x3b, 0x7,0x2f,0x38, 0x7,0x2f,0x43, + 0x7,0x2f,0x36, 0x7,0x2f,0x32, 0x5,0x55,0x31, 0x5,0x55,0x2a, + 0x5,0x5b,0x77, 0x7,0x2f,0x3c, 0x7,0x2f,0x49, 0x5,0x55,0x2c, + 0x5,0x5b,0x79, 0x5,0x55,0x32, 0x7,0x2f,0x2f, 0x7,0x2f,0x34, + 0x7,0x2f,0x3e, 0x7,0x2f,0x41, 0xf,0x55,0x46, 0xf,0x55,0x48, + 0xf,0x55,0x49, 0xf,0x55,0x4b, 0xf,0x55,0x4c, 0xf,0x55,0x4f, + 0xf,0x55,0x50, 0xf,0x55,0x52, 0xf,0x55,0x53, 0xf,0x55,0x54, + 0xf,0x55,0x55, 0xf,0x55,0x57, 0xf,0x5a,0x6d, 0x5,0x55,0x2f, + 0x7,0x2f,0x3f, 0x7,0x2f,0x45, 0x7,0x2f,0x48, 0x7,0x2f,0x4a, + 0x7,0x2f,0x2e, 0x7,0x2f,0x44, 0x4,0x51,0x21, 0xf,0x4f,0x61, + 0xf,0x5a,0x66, 0xf,0x5a,0x5f, 0x5,0x54,0x3a, 0x5,0x5b,0x7c, + 0x4,0x56,0x5a, 0x4,0x56,0x5f, 0x5,0x5b,0x7a, 0x7,0x38,0x7a, + 0x7,0x38,0x6e, 0x4,0x5b,0x52, 0x5,0x5b,0x7b, 0x5,0x5b,0x78, + 0x7,0x38,0x70, 0x7,0x38,0x76, 0x7,0x38,0x6f, 0x7,0x38,0x79, + 0x7,0x38,0x74, 0x7,0x38,0x73, 0x5,0x62,0x38, 0x7,0x38,0x75, + 0x7,0x38,0x7b, 0x5,0x5b,0x7d, 0x7,0x38,0x77, 0x5,0x55,0x37, + 0x3,0x55,0x3a, 0x7,0x38,0x78, 0xf,0x5a,0x60, 0xf,0x5a,0x61, + 0xf,0x5a,0x62, 0xf,0x5a,0x63, 0xf,0x5a,0x64, 0xf,0x5a,0x65, + 0xf,0x5a,0x67, 0xf,0x5a,0x69, 0xf,0x5a,0x6b, 0xf,0x5a,0x70, + 0x7,0x38,0x72, 0x5,0x5b,0x7e, 0x7,0x38,0x7c, 0x7,0x38,0x71, + 0xf,0x55,0x4e, 0xf,0x5a,0x6c, 0xf,0x5a,0x6f, 0xf,0x55,0x47, + 0xf,0x55,0x4d, 0xf,0x5a,0x5e, 0x7,0x2f,0x35, 0x5,0x62,0x3f, + 0x5,0x62,0x46, 0x5,0x62,0x45, 0x4,0x5b,0x5d, 0x5,0x62,0x3d, + 0x5,0x62,0x39, 0x5,0x62,0x42, 0x7,0x40,0x40, 0x7,0x40,0x46, + 0x4,0x5b,0x59, 0x5,0x62,0x4b, 0x5,0x62,0x44, 0x7,0x40,0x3c, + 0x5,0x62,0x41, 0x5,0x62,0x4a, 0x4,0x5b,0x58, 0x5,0x62,0x43, + 0x7,0x40,0x47, 0x5,0x62,0x3b, 0x7,0x40,0x41, 0x5,0x62,0x40, + 0x7,0x40,0x48, 0x7,0x40,0x3a, 0x4,0x5b,0x5f, 0x4,0x5b,0x55, + 0x7,0x40,0x45, 0x7,0x40,0x44, 0x7,0x40,0x3e, 0x5,0x62,0x3a, + 0x4,0x5b,0x53, 0x5,0x62,0x3c, 0x5,0x62,0x3e, 0x5,0x62,0x49, + 0x5,0x62,0x4c, 0x5,0x62,0x47, 0x7,0x40,0x3f, 0x4,0x5b,0x5c, + 0x7,0x40,0x42, 0x7,0x47,0x5f, 0x5,0x62,0x4d, 0xf,0x5f,0x33, + 0xf,0x5f,0x35, 0xf,0x5f,0x36, 0xf,0x5f,0x37, 0xf,0x5f,0x39, + 0xf,0x5f,0x3a, 0xf,0x5f,0x3b, 0xf,0x5f,0x3c, 0xf,0x5f,0x3d, + 0xf,0x5f,0x3e, 0xf,0x5f,0x3f, 0xf,0x5f,0x40, 0xf,0x5f,0x41, + 0xf,0x5f,0x42, 0xf,0x5f,0x43, 0xf,0x62,0x64, 0xf,0x62,0x65, + 0xf,0x62,0x6c, 0x7,0x47,0x5e, 0x7,0x40,0x3d, 0x7,0x40,0x39, + 0x7,0x40,0x43, 0x7,0x40,0x3b, 0xf,0x5f,0x34, 0xf,0x5a,0x6a, + 0xf,0x5a,0x6e, 0x5,0x62,0x48, 0x7,0x47,0x65, 0x7,0x47,0x5c, + 0x7,0x47,0x62, 0x4,0x5f,0x7c, 0x4,0x5f,0x7a, 0x7,0x47,0x53, + 0x5,0x68,0x36, 0x7,0x47,0x56, 0x7,0x47,0x54, 0x7,0x47,0x5b, + 0x7,0x47,0x5a, 0x7,0x47,0x55, 0x5,0x68,0x35, 0x7,0x47,0x59, + 0x7,0x47,0x5d, 0x5,0x6c,0x45, 0x7,0x47,0x61, 0xf,0x62,0x66, + 0xf,0x62,0x67, 0xf,0x62,0x68, 0xf,0x62,0x69, 0xf,0x62,0x6a, + 0xf,0x62,0x6d, 0xf,0x62,0x6e, 0xf,0x62,0x6f, 0xf,0x62,0x70, + 0xf,0x62,0x71, 0x7,0x47,0x57, 0x7,0x47,0x60, 0x7,0x47,0x66, + 0x7,0x47,0x64, 0x7,0x47,0x63, 0x7,0x47,0x58, 0x5,0x6c,0x47, + 0x5,0x6c,0x4a, 0x5,0x6c,0x4b, 0x7,0x4e,0x2b, 0x4,0x63,0x59, + 0x4,0x63,0x5d, 0x7,0x4e,0x2a, 0x7,0x4e,0x29, 0x5,0x6c,0x48, + 0x4,0x63,0x5c, 0x7,0x4e,0x2e, 0x4,0x63,0x57, 0x4,0x63,0x58, + 0x4,0x63,0x56, 0x7,0x4e,0x2d, 0x5,0x70,0x3b, 0x5,0x6c,0x49, + 0x5,0x6c,0x4c, 0x7,0x4e,0x2f, 0xf,0x65,0x42, 0xf,0x65,0x43, + 0xf,0x65,0x44, 0x7,0x4e,0x2c, 0x4,0x66,0x48, 0x5,0x70,0x40, + 0x7,0x53,0x56, 0x5,0x70,0x3f, 0x5,0x70,0x3d, 0x4,0x66,0x4b, + 0x7,0x53,0x54, 0x5,0x70,0x3c, 0x7,0x53,0x59, 0x7,0x53,0x53, + 0x4,0x66,0x4d, 0x7,0x53,0x5f, 0x5,0x70,0x41, 0x7,0x53,0x55, + 0x7,0x53,0x5a, 0xf,0x67,0x68, 0xf,0x67,0x69, 0xf,0x67,0x6a, + 0xf,0x67,0x6b, 0xf,0x67,0x6d, 0xf,0x67,0x6e, 0xf,0x67,0x6f, + 0x7,0x53,0x5b, 0x7,0x53,0x5c, 0x7,0x53,0x5d, 0x7,0x53,0x5e, + 0x5,0x70,0x3a, 0xf,0x67,0x70, 0xf,0x69,0x55, 0x7,0x58,0x2e, + 0x7,0x53,0x57, 0x7,0x58,0x2f, 0x5,0x73,0x54, 0x5,0x70,0x42, + 0x7,0x58,0x2d, 0x5,0x73,0x55, 0x7,0x58,0x31, 0x4,0x68,0x72, + 0x7,0x58,0x32, 0xf,0x69,0x53, 0xf,0x69,0x54, 0x7,0x58,0x33, + 0x7,0x58,0x30, 0x7,0x58,0x2c, 0x5,0x76,0x21, 0x5,0x76,0x22, + 0x7,0x5b,0x69, 0x7,0x5b,0x68, 0x5,0x75,0x7e, 0x7,0x5b,0x67, + 0x5,0x75,0x7d, 0xf,0x6a,0x5b, 0xf,0x6a,0x5c, 0xf,0x6a,0x5d, + 0x7,0x5b,0x6a, 0x7,0x5b,0x66, 0x7,0x5e,0x76, 0x5,0x77,0x67, + 0x7,0x5e,0x77, 0x4,0x6c,0x71, 0x7,0x5e,0x74, 0x5,0x77,0x66, + 0x7,0x5e,0x75, 0x4,0x6c,0x72, 0x7,0x60,0x79, 0x7,0x60,0x78, + 0x7,0x60,0x77, 0xf,0x6c,0x2f, 0x7,0x62,0x39, 0x4,0x6d,0x58, + 0x5,0x7a,0x2b, 0x5,0x7a,0x2a, 0x4,0x6d,0x59, 0x4,0x6d,0x74, + 0x5,0x7a,0x69, 0x5,0x7a,0x6a, 0x7,0x63,0x57, 0x7,0x64,0x4b, + 0x5,0x7b,0x41, 0xf,0x6d,0x26, 0x7,0x65,0x5c, 0x5,0x7c,0x3c, + 0x6,0x23,0x2f, 0x6,0x25,0x33, 0x4,0x23,0x24, 0x4,0x23,0x25, + 0x6,0x25,0x32, 0xf,0x22,0x5f, 0xf,0x22,0x60, 0xf,0x22,0x61, + 0x6,0x25,0x34, 0x4,0x24,0x53, 0x4,0x24,0x54, 0x5,0x24,0x54, + 0x6,0x28,0x4c, 0x5,0x24,0x55, 0x5,0x24,0x57, 0xf,0x24,0x6b, + 0xf,0x24,0x6c, 0xf,0x24,0x6d, 0xf,0x24,0x70, 0xf,0x24,0x72, + 0x6,0x28,0x4b, 0x5,0x26,0x74, 0x4,0x27,0x28, 0x5,0x26,0x75, + 0xf,0x27,0x6f, 0xf,0x27,0x70, 0xf,0x27,0x71, 0xf,0x27,0x73, + 0xf,0x27,0x74, 0xf,0x27,0x75, 0xf,0x27,0x76, 0xf,0x27,0x77, + 0x6,0x2c,0x5f, 0xf,0x27,0x72, 0x6,0x2c,0x5e, 0x4,0x27,0x2a, + 0x5,0x24,0x56, 0x5,0x2a,0x25, 0x6,0x32,0x4c, 0x5,0x2a,0x26, + 0x6,0x32,0x44, 0x5,0x2a,0x27, 0x6,0x32,0x4b, 0x6,0x32,0x46, + 0xf,0x2b,0x6f, 0xf,0x2b,0x70, 0xf,0x2b,0x71, 0xf,0x2b,0x72, + 0xf,0x2b,0x73, 0xf,0x2b,0x74, 0xf,0x2b,0x75, 0xf,0x2b,0x76, + 0xf,0x2b,0x77, 0xf,0x2b,0x78, 0xf,0x2b,0x79, 0xf,0x2b,0x7b, + 0xf,0x2b,0x7c, 0xf,0x2b,0x7d, 0xf,0x2b,0x7e, 0xf,0x2c,0x21, + 0xf,0x2c,0x23, 0x4,0x2a,0x29, 0x6,0x32,0x45, 0x6,0x32,0x43, + 0x6,0x32,0x47, 0x6,0x39,0x3a, 0x5,0x2a,0x28, 0x6,0x32,0x4a, + 0xf,0x2c,0x22, 0x6,0x32,0x49, 0x5,0x2e,0x4f, 0x5,0x2e,0x4e, + 0x6,0x39,0x36, 0x6,0x39,0x39, 0xf,0x30,0x6a, 0x4,0x32,0x6f, + 0x6,0x39,0x37, 0x4,0x2d,0x74, 0x6,0x39,0x34, 0x5,0x2e,0x4b, + 0xf,0x30,0x5d, 0xf,0x30,0x5e, 0xf,0x30,0x5f, 0xf,0x30,0x60, + 0xf,0x30,0x61, 0xf,0x30,0x62, 0xf,0x30,0x63, 0xf,0x30,0x64, + 0xf,0x30,0x65, 0xf,0x30,0x66, 0xf,0x30,0x68, 0xf,0x30,0x69, + 0xf,0x30,0x6b, 0xf,0x30,0x6c, 0xf,0x30,0x6e, 0xf,0x30,0x6f, + 0xf,0x30,0x70, 0xf,0x30,0x71, 0xf,0x30,0x72, 0x5,0x2e,0x4c, + 0x6,0x39,0x35, 0x6,0x39,0x3b, 0x6,0x39,0x3c, 0xf,0x30,0x67, + 0xf,0x30,0x6d, 0x6,0x39,0x38, 0x5,0x2e,0x4d, 0x6,0x41,0x4b, + 0x4,0x32,0x74, 0x5,0x33,0x44, 0x6,0x41,0x4f, 0x4,0x32,0x73, + 0x4,0x32,0x75, 0x6,0x41,0x4e, 0x6,0x41,0x54, 0x6,0x41,0x51, + 0x6,0x41,0x4d, 0x6,0x41,0x4c, 0x6,0x4a,0x73, 0x6,0x41,0x52, + 0x6,0x41,0x50, 0x6,0x41,0x53, 0xf,0x36,0x24, 0xf,0x36,0x3e, + 0xf,0x36,0x3f, 0xf,0x36,0x40, 0xf,0x36,0x41, 0xf,0x36,0x43, + 0xf,0x36,0x44, 0xf,0x36,0x45, 0xf,0x36,0x46, 0xf,0x36,0x47, + 0xf,0x36,0x49, 0xf,0x36,0x4a, 0xf,0x36,0x4c, 0xf,0x36,0x4d, + 0xf,0x36,0x4e, 0xf,0x36,0x50, 0x6,0x41,0x49, 0x6,0x41,0x48, + 0xf,0x36,0x4b, 0x5,0x33,0x43, 0x5,0x33,0x45, 0x6,0x41,0x55, + 0x4,0x38,0x69, 0x6,0x4a,0x78, 0x6,0x41,0x4a, 0x5,0x39,0x71, + 0x5,0x39,0x6f, 0x6,0x4a,0x7e, 0x6,0x4b,0x21, 0x5,0x39,0x6e, + 0x6,0x4a,0x75, 0x4,0x38,0x66, 0x6,0x4a,0x7a, 0x6,0x4a,0x74, + 0x6,0x4a,0x7d, 0x4,0x38,0x63, 0x5,0x39,0x70, 0x6,0x4a,0x77, + 0xf,0x3c,0x5e, 0xf,0x3c,0x5f, 0xf,0x3c,0x60, 0xf,0x3c,0x61, + 0xf,0x3c,0x62, 0xf,0x3c,0x63, 0xf,0x3c,0x64, 0xf,0x3c,0x66, + 0xf,0x3c,0x67, 0xf,0x3c,0x68, 0xf,0x3c,0x69, 0xf,0x3c,0x6b, + 0xf,0x3c,0x6c, 0xf,0x3c,0x6d, 0xf,0x3c,0x6e, 0xf,0x3c,0x6f, + 0xf,0x3c,0x70, 0xf,0x3c,0x71, 0xf,0x3c,0x72, 0xf,0x3c,0x75, + 0xf,0x3c,0x77, 0xf,0x3c,0x78, 0xf,0x3c,0x79, 0xf,0x3c,0x7a, + 0xf,0x3c,0x7b, 0xf,0x3c,0x7c, 0xf,0x3d,0x21, 0x6,0x4a,0x79, + 0x6,0x4a,0x7c, 0x4,0x38,0x67, 0x6,0x4a,0x76, 0x6,0x4a,0x7b, + 0xf,0x3c,0x6a, 0x5,0x39,0x72, 0x5,0x40,0x34, 0x6,0x54,0x5a, + 0x6,0x54,0x58, 0x5,0x40,0x30, 0x6,0x54,0x56, 0x6,0x54,0x5d, + 0x4,0x3e,0x47, 0x6,0x54,0x57, 0x4,0x3e,0x44, 0x6,0x54,0x5b, + 0x6,0x54,0x5e, 0x4,0x3e,0x45, 0x5,0x40,0x32, 0x6,0x54,0x53, + 0x6,0x54,0x63, 0x6,0x54,0x5f, 0x6,0x54,0x64, 0x5,0x40,0x35, + 0x6,0x54,0x5c, 0x6,0x54,0x62, 0xf,0x42,0x76, 0xf,0x42,0x79, + 0xf,0x42,0x7b, 0xf,0x42,0x7c, 0xf,0x42,0x7d, 0xf,0x43,0x21, + 0xf,0x43,0x22, 0xf,0x43,0x23, 0xf,0x43,0x25, 0xf,0x43,0x26, + 0xf,0x43,0x27, 0xf,0x43,0x28, 0xf,0x43,0x29, 0xf,0x43,0x2a, + 0xf,0x43,0x2b, 0xf,0x43,0x2d, 0xf,0x43,0x2e, 0xf,0x43,0x30, + 0xf,0x43,0x33, 0xf,0x43,0x34, 0xf,0x43,0x35, 0xf,0x43,0x36, + 0xf,0x43,0x37, 0xf,0x43,0x38, 0xf,0x43,0x39, 0xf,0x43,0x3a, + 0xf,0x43,0x3b, 0xf,0x43,0x3d, 0xf,0x43,0x3e, 0x6,0x54,0x51, + 0x6,0x54,0x52, 0x6,0x54,0x55, 0x6,0x54,0x66, 0x4,0x3e,0x4a, + 0x6,0x54,0x61, 0x6,0x54,0x65, 0x6,0x5a,0x54, 0xf,0x43,0x2c, + 0x5,0x40,0x33, 0x5,0x40,0x31, 0xf,0x49,0x54, 0x6,0x5e,0x51, + 0x6,0x5e,0x50, 0x5,0x46,0x7e, 0x6,0x5e,0x4a, 0x5,0x47,0x22, + 0x4,0x44,0x55, 0x5,0x46,0x7c, 0x5,0x46,0x7b, 0x5,0x46,0x7a, + 0x7,0x24,0x70, 0x7,0x24,0x6a, 0x6,0x5e,0x46, 0x5,0x47,0x21, + 0x6,0x5e,0x47, 0x6,0x5e,0x48, 0x5,0x46,0x79, 0x6,0x5e,0x4b, + 0x6,0x5e,0x4f, 0xf,0x49,0x44, 0xf,0x49,0x45, 0xf,0x49,0x46, + 0xf,0x49,0x47, 0xf,0x49,0x49, 0xf,0x49,0x4a, 0xf,0x49,0x4c, + 0xf,0x49,0x4d, 0xf,0x49,0x4e, 0xf,0x49,0x4f, 0xf,0x49,0x50, + 0xf,0x49,0x51, 0xf,0x49,0x52, 0xf,0x49,0x53, 0xf,0x49,0x55, + 0xf,0x49,0x56, 0xf,0x49,0x57, 0xf,0x49,0x5a, 0xf,0x49,0x5b, + 0xf,0x49,0x5d, 0xf,0x49,0x5e, 0xf,0x49,0x60, 0xf,0x49,0x62, + 0xf,0x49,0x63, 0xf,0x49,0x64, 0x4,0x44,0x5d, 0x5,0x46,0x7d, + 0x6,0x5e,0x4c, 0x6,0x5e,0x52, 0x6,0x5e,0x49, 0x6,0x5e,0x4d, + 0xf,0x49,0x5c, 0x6,0x54,0x60, 0xf,0x42,0x7e, 0xf,0x42,0x7a, + 0x4,0x4a,0x6b, 0x5,0x4e,0x2c, 0x7,0x24,0x74, 0x7,0x24,0x6d, + 0x7,0x24,0x69, 0x5,0x4e,0x2a, 0x7,0x24,0x6c, 0x7,0x24,0x71, + 0x7,0x24,0x72, 0x7,0x24,0x75, 0x7,0x24,0x6b, 0x5,0x4e,0x29, + 0xf,0x4e,0x22, 0x5,0x4e,0x2b, 0x7,0x24,0x73, 0xf,0x50,0x23, + 0xf,0x50,0x24, 0xf,0x50,0x26, 0xf,0x50,0x27, 0xf,0x50,0x28, + 0xf,0x50,0x29, 0xf,0x50,0x2a, 0xf,0x50,0x2b, 0xf,0x50,0x2e, + 0xf,0x50,0x2f, 0xf,0x50,0x31, 0xf,0x50,0x32, 0xf,0x50,0x33, + 0xf,0x50,0x34, 0xf,0x50,0x35, 0xf,0x50,0x37, 0xf,0x50,0x38, + 0xf,0x50,0x39, 0xf,0x50,0x3a, 0xf,0x50,0x3b, 0xf,0x50,0x3c, + 0x7,0x24,0x6e, 0xf,0x50,0x2c, 0x7,0x2a,0x71, 0xf,0x50,0x2d, + 0xf,0x50,0x30, 0xf,0x50,0x25, 0xf,0x50,0x22, 0x5,0x4e,0x2e, + 0x5,0x4e,0x2d, 0x6,0x5e,0x4e, 0x4,0x51,0x2a, 0x7,0x2f,0x52, + 0x7,0x2f,0x66, 0x7,0x2f,0x50, 0x7,0x2f,0x60, 0x7,0x2f,0x5e, + 0x5,0x55,0x3b, 0x4,0x51,0x27, 0x7,0x2f,0x61, 0x7,0x2f,0x63, + 0x7,0x2f,0x55, 0x7,0x24,0x6f, 0x4,0x51,0x28, 0x7,0x2f,0x56, + 0x7,0x2f,0x64, 0x7,0x2f,0x65, 0x4,0x51,0x26, 0x7,0x2f,0x58, + 0x7,0x2f,0x54, 0x4,0x51,0x29, 0x7,0x2f,0x67, 0x5,0x55,0x3a, + 0x5,0x55,0x3c, 0x7,0x2f,0x62, 0x7,0x2f,0x59, 0x7,0x2f,0x5d, + 0x7,0x2f,0x5a, 0x7,0x2f,0x4b, 0x7,0x2f,0x53, 0x7,0x2f,0x5c, + 0xf,0x55,0x59, 0xf,0x55,0x5a, 0xf,0x55,0x5b, 0xf,0x55,0x5c, + 0xf,0x55,0x5d, 0xf,0x55,0x5e, 0xf,0x55,0x5f, 0xf,0x55,0x60, + 0xf,0x55,0x61, 0xf,0x55,0x62, 0xf,0x55,0x63, 0xf,0x55,0x66, + 0xf,0x55,0x67, 0xf,0x55,0x68, 0xf,0x55,0x6a, 0xf,0x55,0x6b, + 0xf,0x55,0x6d, 0xf,0x55,0x6e, 0xf,0x55,0x70, 0xf,0x55,0x71, + 0xf,0x55,0x72, 0xf,0x55,0x65, 0x5,0x55,0x38, 0x7,0x2f,0x4d, + 0x7,0x2f,0x4e, 0x7,0x2f,0x5b, 0x7,0x2f,0x5f, 0x7,0x31,0x7a, + 0x7,0x2f,0x51, 0x7,0x2c,0x7b, 0xf,0x55,0x6f, 0x5,0x55,0x3d, + 0x5,0x55,0x39, 0x7,0x2f,0x4c, 0x7,0x24,0x76, 0x7,0x2f,0x57, + 0x7,0x39,0x23, 0x4,0x56,0x61, 0x7,0x39,0x25, 0x5,0x55,0x3e, + 0x7,0x39,0x29, 0x7,0x39,0x28, 0x4,0x56,0x63, 0x7,0x2f,0x68, + 0x5,0x5c,0x21, 0x7,0x38,0x7d, 0x5,0x5c,0x24, 0x5,0x5c,0x22, + 0xf,0x5a,0x71, 0xf,0x5a,0x72, 0xf,0x5a,0x76, 0xf,0x5a,0x77, + 0xf,0x5a,0x78, 0xf,0x5a,0x79, 0xf,0x5a,0x7a, 0xf,0x5a,0x7b, + 0xf,0x5a,0x7c, 0xf,0x5a,0x7d, 0xf,0x5a,0x7e, 0xf,0x5b,0x21, + 0xf,0x5b,0x22, 0xf,0x5b,0x23, 0x7,0x38,0x7e, 0x7,0x39,0x24, + 0x7,0x39,0x22, 0x5,0x5c,0x23, 0x7,0x39,0x21, 0xf,0x55,0x69, + 0x7,0x40,0x4f, 0x4,0x5b,0x62, 0x7,0x40,0x4e, 0x5,0x62,0x4e, + 0x7,0x40,0x4b, 0x7,0x40,0x53, 0x7,0x40,0x51, 0x7,0x40,0x4c, + 0x4,0x5b,0x63, 0x5,0x62,0x4f, 0x5,0x62,0x50, 0x4,0x5b,0x61, + 0x7,0x40,0x54, 0x7,0x40,0x4a, 0x7,0x40,0x52, 0xf,0x5f,0x44, + 0xf,0x5f,0x46, 0xf,0x5f,0x45, 0xf,0x5f,0x47, 0xf,0x5f,0x48, + 0xf,0x5f,0x49, 0xf,0x5f,0x4a, 0xf,0x5f,0x4c, 0xf,0x5f,0x4d, + 0x7,0x40,0x50, 0x7,0x42,0x22, 0x7,0x40,0x55, 0x7,0x40,0x4d, + 0x7,0x40,0x49, 0x7,0x39,0x2a, 0xf,0x61,0x76, 0xf,0x5a,0x74, + 0xf,0x5a,0x75, 0x7,0x47,0x6c, 0x5,0x68,0x37, 0x4,0x60,0x21, + 0x7,0x47,0x6d, 0x4,0x60,0x22, 0x7,0x47,0x6a, 0xf,0x62,0x74, + 0xf,0x62,0x75, 0xf,0x62,0x76, 0xf,0x62,0x77, 0x7,0x47,0x69, + 0x7,0x47,0x67, 0x7,0x47,0x6b, 0xf,0x5f,0x4b, 0x7,0x47,0x68, + 0xf,0x65,0x45, 0x5,0x6c,0x4f, 0x7,0x4e,0x30, 0x7,0x4e,0x33, + 0x7,0x4e,0x3b, 0x5,0x6c,0x4e, 0x5,0x6c,0x4d, 0x5,0x6c,0x51, + 0x4,0x60,0x23, 0x7,0x4e,0x32, 0x7,0x4e,0x38, 0x4,0x63,0x62, + 0x4,0x63,0x60, 0x7,0x4e,0x3c, 0x7,0x4e,0x31, 0x7,0x4e,0x35, + 0x7,0x4e,0x37, 0xf,0x65,0x48, 0x7,0x4e,0x34, 0xf,0x65,0x46, + 0xf,0x65,0x47, 0xf,0x65,0x4a, 0xf,0x65,0x4b, 0xf,0x65,0x4c, + 0xf,0x65,0x4d, 0xf,0x65,0x4e, 0x7,0x4e,0x39, 0x7,0x4e,0x36, + 0x7,0x4e,0x3a, 0x5,0x6c,0x50, 0x7,0x53,0x64, 0x4,0x63,0x61, + 0x7,0x53,0x66, 0x5,0x70,0x43, 0x4,0x66,0x4f, 0x7,0x53,0x67, + 0x7,0x53,0x62, 0x7,0x53,0x63, 0x7,0x53,0x65, 0xf,0x67,0x71, + 0xf,0x67,0x72, 0xf,0x67,0x73, 0xf,0x67,0x74, 0xf,0x67,0x75, + 0x7,0x58,0x36, 0x5,0x73,0x56, 0x4,0x6a,0x4f, 0x7,0x58,0x37, + 0x7,0x58,0x38, 0x7,0x58,0x34, 0xf,0x69,0x56, 0xf,0x69,0x57, + 0xf,0x69,0x58, 0x7,0x58,0x35, 0x7,0x5b,0x24, 0x7,0x5b,0x6e, + 0x7,0x5b,0x70, 0x7,0x5b,0x6d, 0x7,0x5c,0x44, 0x7,0x5b,0x6f, + 0x7,0x5b,0x6c, 0x7,0x5b,0x6b, 0x5,0x76,0x23, 0xf,0x6a,0x60, + 0x7,0x5e,0x78, 0xf,0x6a,0x5f, 0x5,0x77,0x68, 0x7,0x61,0x21, + 0x7,0x60,0x7c, 0x7,0x60,0x7e, 0x7,0x61,0x38, 0x7,0x60,0x7b, + 0x7,0x60,0x7d, 0x7,0x62,0x3a, 0x5,0x7a,0x6b, 0xf,0x6c,0x64, + 0xf,0x6c,0x65, 0x7,0x64,0x4d, 0x7,0x64,0x4c, 0x7,0x64,0x4e, + 0x7,0x65,0x37, 0x7,0x66,0x34, 0x5,0x21,0x4b, 0x6,0x23,0x30, + 0x6,0x28,0x4d, 0x6,0x28,0x4e, 0x5,0x24,0x58, 0x6,0x2c,0x62, + 0x6,0x2c,0x61, 0x6,0x2c,0x63, 0xf,0x27,0x78, 0xf,0x27,0x79, + 0x6,0x32,0x4e, 0x5,0x2a,0x2b, 0x5,0x2a,0x29, 0x6,0x32,0x4f, + 0x5,0x2a,0x2a, 0x6,0x32,0x51, 0xf,0x2c,0x24, 0xf,0x2c,0x25, + 0xf,0x2c,0x26, 0x6,0x32,0x4d, 0x6,0x32,0x50, 0x5,0x2e,0x51, + 0x5,0x2e,0x50, 0xf,0x30,0x73, 0x6,0x41,0x57, 0x6,0x41,0x56, + 0x6,0x41,0x58, 0xf,0x36,0x51, 0x4,0x38,0x6a, 0x6,0x4b,0x22, + 0x6,0x47,0x43, 0x6,0x4d,0x5d, 0x6,0x54,0x68, 0x6,0x54,0x69, + 0x6,0x5e,0x53, 0x5,0x47,0x23, 0x6,0x5e,0x56, 0x6,0x5e,0x55, + 0x6,0x5e,0x54, 0x7,0x24,0x7a, 0x5,0x4e,0x2f, 0x7,0x24,0x77, + 0x7,0x24,0x79, 0x7,0x24,0x78, 0x7,0x2f,0x69, 0x7,0x2f,0x6a, + 0x5,0x55,0x3f, 0x4,0x56,0x65, 0xf,0x5b,0x24, 0xf,0x5b,0x25, + 0xf,0x5b,0x26, 0xf,0x55,0x73, 0x7,0x40,0x56, 0x5,0x68,0x38, + 0xf,0x65,0x4f, 0xf,0x65,0x50, 0x7,0x4e,0x3d, 0x7,0x53,0x68, + 0x7,0x5b,0x71, 0x7,0x5e,0x79, 0x7,0x61,0x22, 0xf,0x24,0x73, + 0xf,0x24,0x74, 0x6,0x2c,0x64, 0x6,0x2c,0x65, 0x6,0x41,0x59, + 0x6,0x41,0x5a, 0xf,0x3d,0x22, 0xf,0x3d,0x23, 0x6,0x54,0x6a, + 0xf,0x49,0x65, 0x5,0x47,0x24, 0x5,0x55,0x40, 0xf,0x21,0x68, + 0x6,0x2b,0x6b, 0x5,0x2a,0x2c, 0x4,0x2a,0x2b, 0x4,0x2d,0x77, + 0xf,0x30,0x74, 0x5,0x31,0x6c, 0x6,0x4b,0x23, 0x6,0x54,0x6c, + 0x6,0x54,0x6b, 0x5,0x55,0x41, 0x7,0x24,0x7b, 0x7,0x24,0x7c, + 0x5,0x55,0x42, 0x6,0x22,0x25, 0x6,0x23,0x31, 0x6,0x25,0x35, + 0x6,0x28,0x4f, 0x4,0x27,0x2d, 0x6,0x2c,0x67, 0x6,0x2c,0x66, + 0x6,0x32,0x52, 0x4,0x2a,0x2d, 0x6,0x32,0x53, 0x6,0x32,0x54, + 0x6,0x39,0x3e, 0x4,0x2d,0x78, 0xf,0x30,0x75, 0x6,0x39,0x3d, + 0x6,0x41,0x5b, 0x6,0x41,0x5e, 0x6,0x41,0x5d, 0x4,0x32,0x78, + 0x6,0x41,0x5c, 0xf,0x36,0x52, 0xf,0x36,0x53, 0x6,0x4b,0x28, + 0x6,0x4b,0x24, 0x6,0x4b,0x26, 0x6,0x4b,0x27, 0x6,0x4b,0x29, + 0x6,0x4b,0x25, 0x6,0x4d,0x58, 0x6,0x54,0x6d, 0x6,0x54,0x6e, + 0xf,0x43,0x3f, 0x6,0x5e,0x58, 0x6,0x5e,0x59, 0xf,0x49,0x66, + 0x7,0x24,0x7d, 0xf,0x50,0x3e, 0x7,0x24,0x7e, 0x5,0x55,0x43, + 0x5,0x62,0x51, 0x4,0x51,0x2c, 0x7,0x2f,0x6b, 0x7,0x25,0x21, + 0x5,0x55,0x44, 0x7,0x39,0x2b, 0x7,0x39,0x2c, 0x5,0x5c,0x25, + 0x7,0x47,0x70, 0x5,0x6c,0x52, 0x7,0x58,0x39, 0x7,0x5b,0x72, + 0x7,0x63,0x58, 0x5,0x7b,0x42, 0x7,0x64,0x4f, 0xf,0x21,0x69, + 0x6,0x28,0x51, 0x5,0x24,0x59, 0x6,0x28,0x50, 0x4,0x27,0x2e, + 0x6,0x2c,0x6b, 0x6,0x2c,0x6a, 0x6,0x2c,0x69, 0x6,0x2c,0x68, + 0x6,0x32,0x56, 0x6,0x32,0x55, 0x5,0x2a,0x2d, 0x6,0x32,0x57, + 0x5,0x2a,0x2e, 0x5,0x2e,0x52, 0x4,0x2d,0x79, 0x4,0x2d,0x7b, + 0x6,0x39,0x41, 0x6,0x39,0x3f, 0x5,0x33,0x46, 0x5,0x33,0x47, + 0x6,0x41,0x5f, 0x6,0x41,0x62, 0x6,0x41,0x60, 0x6,0x4b,0x2b, + 0x4,0x38,0x6d, 0x6,0x4b,0x2e, 0x6,0x4b,0x2a, 0x6,0x4b,0x2c, + 0x6,0x4b,0x2d, 0x5,0x39,0x73, 0x5,0x39,0x76, 0x5,0x39,0x74, + 0x5,0x39,0x75, 0x4,0x38,0x6e, 0x5,0x40,0x38, 0x6,0x54,0x6f, + 0x4,0x3e,0x4d, 0x5,0x40,0x36, 0x5,0x40,0x37, 0x6,0x54,0x70, + 0xf,0x3d,0x24, 0x5,0x47,0x25, 0x6,0x5e,0x5b, 0x6,0x5e,0x5c, + 0x6,0x5e,0x5a, 0xf,0x49,0x67, 0x5,0x4e,0x32, 0x7,0x25,0x25, + 0x5,0x4e,0x31, 0x5,0x4e,0x30, 0x5,0x4e,0x33, 0x7,0x25,0x24, + 0x7,0x25,0x22, 0x5,0x4e,0x34, 0x7,0x25,0x23, 0x5,0x55,0x46, + 0x5,0x55,0x47, 0x5,0x55,0x48, 0x7,0x2f,0x6d, 0x5,0x55,0x45, + 0x7,0x2f,0x6c, 0x5,0x5c,0x26, 0x4,0x56,0x66, 0xf,0x5b,0x27, + 0xf,0x5b,0x28, 0x5,0x62,0x53, 0x5,0x62,0x52, 0x5,0x6c,0x53, + 0x7,0x53,0x69, 0x5,0x23,0x68, 0x6,0x39,0x43, 0x6,0x39,0x42, + 0x4,0x38,0x6f, 0x6,0x4b,0x2f, 0xf,0x3d,0x25, 0xf,0x3d,0x26, + 0x6,0x54,0x71, 0x6,0x5e,0x5d, 0x5,0x21,0x75, 0xf,0x22,0x63, + 0x6,0x25,0x36, 0xf,0x22,0x62, 0x6,0x28,0x53, 0xf,0x24,0x75, + 0x6,0x28,0x52, 0x6,0x28,0x54, 0x5,0x26,0x79, 0x5,0x27,0x22, + 0x5,0x26,0x78, 0x5,0x26,0x7b, 0x5,0x26,0x76, 0x5,0x26,0x7d, + 0x6,0x2c,0x6e, 0x4,0x27,0x30, 0x5,0x27,0x21, 0x6,0x2c,0x6c, + 0x5,0x26,0x7e, 0x5,0x27,0x23, 0x5,0x26,0x7c, 0x6,0x2c,0x6d, + 0xf,0x27,0x7b, 0xf,0x27,0x7c, 0xf,0x27,0x7e, 0xf,0x28,0x21, + 0x5,0x26,0x7a, 0x6,0x2c,0x6f, 0x6,0x2c,0x70, 0x5,0x2a,0x32, + 0x5,0x2a,0x30, 0x5,0x2a,0x2f, 0x6,0x32,0x5f, 0x6,0x32,0x5c, + 0x5,0x2a,0x33, 0x5,0x2a,0x31, 0x4,0x2a,0x30, 0x6,0x32,0x5a, + 0x6,0x32,0x59, 0xf,0x2c,0x28, 0xf,0x2c,0x29, 0x6,0x32,0x5b, + 0x6,0x32,0x5e, 0x6,0x32,0x58, 0x6,0x32,0x5d, 0x5,0x2a,0x34, + 0xf,0x27,0x7d, 0x5,0x2e,0x58, 0x5,0x2e,0x54, 0x5,0x2e,0x56, + 0x5,0x2e,0x57, 0x5,0x2e,0x55, 0x6,0x39,0x44, 0x5,0x2e,0x59, + 0x4,0x32,0x7b, 0x6,0x41,0x67, 0x6,0x41,0x68, 0x5,0x33,0x49, + 0x5,0x39,0x77, 0x4,0x32,0x7d, 0x4,0x32,0x7c, 0x5,0x33,0x4b, + 0x5,0x33,0x4c, 0xf,0x36,0x54, 0xf,0x36,0x55, 0x6,0x41,0x65, + 0x6,0x41,0x69, 0x6,0x41,0x64, 0x5,0x33,0x48, 0x4,0x38,0x71, + 0x4,0x38,0x74, 0x5,0x39,0x7d, 0x6,0x4b,0x34, 0x5,0x39,0x79, + 0x5,0x39,0x7b, 0x5,0x39,0x78, 0x6,0x4b,0x32, 0x6,0x4b,0x35, + 0xf,0x3d,0x27, 0xf,0x3d,0x28, 0x6,0x4b,0x33, 0x6,0x4b,0x30, + 0x6,0x4b,0x31, 0x5,0x39,0x7a, 0x5,0x39,0x7c, 0x5,0x33,0x4a, + 0xf,0x3d,0x29, 0x6,0x4b,0x36, 0x5,0x47,0x2b, 0x5,0x40,0x3e, + 0x5,0x40,0x3c, 0x4,0x3e,0x50, 0x6,0x5e,0x64, 0x6,0x54,0x73, + 0x5,0x47,0x26, 0x6,0x54,0x72, 0x6,0x54,0x75, 0x6,0x54,0x74, + 0xf,0x43,0x40, 0xf,0x43,0x41, 0x5,0x40,0x3d, 0x6,0x54,0x77, + 0x5,0x40,0x3b, 0x4,0x44,0x61, 0x5,0x47,0x2d, 0x5,0x47,0x28, + 0x5,0x47,0x2e, 0x5,0x47,0x2c, 0x6,0x5e,0x5f, 0x6,0x5e,0x63, + 0x5,0x47,0x27, 0x5,0x47,0x2a, 0x6,0x5e,0x67, 0x6,0x5e,0x62, + 0x6,0x5e,0x61, 0x5,0x40,0x3a, 0x6,0x5e,0x66, 0xf,0x49,0x68, + 0xf,0x49,0x69, 0xf,0x49,0x6a, 0xf,0x49,0x6b, 0x5,0x47,0x2f, + 0x5,0x47,0x29, 0x6,0x5e,0x60, 0x6,0x54,0x76, 0x6,0x5e,0x65, + 0xf,0x49,0x6c, 0x5,0x47,0x30, 0x5,0x4e,0x36, 0x7,0x25,0x26, + 0x4,0x4a,0x74, 0x5,0x4e,0x39, 0x5,0x4e,0x3a, 0x5,0x4e,0x38, + 0x4,0x4a,0x70, 0x5,0x4e,0x35, 0xf,0x50,0x3f, 0x7,0x25,0x28, + 0x7,0x25,0x27, 0x7,0x2f,0x70, 0x5,0x55,0x49, 0x5,0x55,0x4e, + 0x7,0x2f,0x71, 0x5,0x55,0x4b, 0x5,0x55,0x4d, 0x5,0x55,0x4a, + 0x5,0x55,0x4c, 0x7,0x2f,0x6f, 0x7,0x39,0x30, 0x7,0x39,0x2e, + 0x5,0x5c,0x27, 0x4,0x56,0x68, 0x4,0x56,0x69, 0x7,0x2f,0x6e, + 0x7,0x39,0x2f, 0x7,0x40,0x57, 0x7,0x40,0x58, 0x5,0x68,0x3a, + 0x7,0x53,0x6a, 0x7,0x47,0x72, 0x7,0x47,0x73, 0x7,0x47,0x71, + 0x5,0x68,0x39, 0x7,0x4e,0x3f, 0x5,0x6c,0x54, 0x5,0x6c,0x55, + 0x5,0x70,0x45, 0x7,0x53,0x6c, 0x5,0x70,0x44, 0x5,0x70,0x46, + 0x7,0x58,0x3a, 0x5,0x73,0x59, 0x7,0x5b,0x74, 0x5,0x73,0x58, + 0x7,0x5b,0x75, 0x7,0x5b,0x73, 0x5,0x77,0x69, 0x7,0x61,0x23, + 0xf,0x6c,0x31, 0x7,0x64,0x50, 0xf,0x21,0x3d, 0x6,0x23,0x32, + 0x5,0x21,0x77, 0x5,0x21,0x78, 0x5,0x22,0x78, 0x5,0x22,0x7b, + 0x5,0x22,0x77, 0x4,0x23,0x28, 0x5,0x22,0x7a, 0x6,0x25,0x37, + 0x5,0x22,0x79, 0x5,0x24,0x5e, 0x5,0x24,0x5f, 0x4,0x24,0x5b, + 0x4,0x27,0x37, 0x6,0x28,0x58, 0x4,0x24,0x5a, 0x5,0x24,0x5a, + 0x6,0x28,0x5e, 0x5,0x24,0x5b, 0x6,0x28,0x5b, 0x5,0x27,0x2f, + 0x6,0x2c,0x72, 0x4,0x24,0x57, 0x5,0x24,0x5d, 0x5,0x24,0x5c, + 0x6,0x28,0x5a, 0x6,0x28,0x59, 0x6,0x2c,0x73, 0xf,0x24,0x77, + 0x6,0x28,0x57, 0x6,0x28,0x5c, 0x6,0x28,0x5d, 0x6,0x28,0x56, + 0x4,0x24,0x58, 0x6,0x2c,0x7a, 0x5,0x27,0x28, 0x6,0x2c,0x7b, + 0x5,0x27,0x2c, 0x6,0x2c,0x79, 0x6,0x2c,0x7c, 0x5,0x27,0x27, + 0x5,0x27,0x2a, 0x6,0x2c,0x78, 0x5,0x27,0x2d, 0x5,0x27,0x25, + 0x5,0x27,0x29, 0x5,0x27,0x24, 0x6,0x2c,0x77, 0x4,0x27,0x38, + 0x5,0x2a,0x36, 0x6,0x28,0x55, 0x6,0x32,0x60, 0x5,0x27,0x2b, + 0x6,0x2c,0x76, 0xf,0x28,0x22, 0x6,0x2c,0x7d, 0x6,0x2c,0x74, + 0x4,0x27,0x35, 0x5,0x2a,0x35, 0x5,0x2a,0x3e, 0x6,0x32,0x68, + 0x5,0x2a,0x39, 0x6,0x39,0x4b, 0x5,0x2a,0x3d, 0x6,0x32,0x61, + 0x6,0x39,0x4c, 0x6,0x41,0x6c, 0x5,0x2a,0x3c, 0x4,0x2a,0x31, + 0x5,0x2a,0x3b, 0x6,0x32,0x64, 0x5,0x2a,0x3a, 0x6,0x32,0x66, + 0x4,0x2a,0x33, 0x5,0x2a,0x40, 0x6,0x32,0x63, 0x5,0x27,0x26, + 0x5,0x2a,0x37, 0x5,0x2a,0x38, 0xf,0x2c,0x2a, 0xf,0x2c,0x2c, + 0xf,0x2c,0x2d, 0x6,0x32,0x65, 0xf,0x2c,0x2b, 0x5,0x2a,0x3f, + 0x6,0x39,0x4e, 0x5,0x2e,0x5e, 0x4,0x33,0x21, 0x6,0x39,0x49, + 0x6,0x39,0x4d, 0x4,0x2e,0x25, 0x5,0x2e,0x5b, 0x5,0x2e,0x60, + 0x5,0x2e,0x5d, 0x4,0x2e,0x23, 0x6,0x39,0x45, 0x6,0x39,0x4a, + 0xf,0x30,0x77, 0xf,0x30,0x78, 0x6,0x39,0x48, 0x5,0x2e,0x5a, + 0x4,0x2e,0x24, 0x6,0x39,0x47, 0x6,0x39,0x4f, 0x5,0x2e,0x5f, + 0x6,0x39,0x46, 0x5,0x33,0x4e, 0xf,0x30,0x76, 0x4,0x33,0x24, + 0x6,0x41,0x6e, 0x5,0x33,0x55, 0x5,0x39,0x7e, 0x5,0x33,0x52, + 0x6,0x41,0x70, 0x6,0x41,0x73, 0x5,0x33,0x4f, 0x6,0x41,0x6f, + 0x6,0x4b,0x3b, 0x4,0x33,0x26, 0x5,0x33,0x53, 0x6,0x4b,0x38, + 0x6,0x4b,0x37, 0x5,0x33,0x50, 0x6,0x4b,0x39, 0x6,0x41,0x71, + 0x6,0x41,0x72, 0x6,0x41,0x74, 0x6,0x4b,0x3a, 0x5,0x3a,0x28, + 0x6,0x54,0x7b, 0x5,0x3a,0x26, 0x5,0x40,0x3f, 0x4,0x38,0x75, + 0x5,0x3a,0x22, 0x6,0x4b,0x44, 0x5,0x40,0x40, 0x5,0x3a,0x27, + 0x4,0x38,0x76, 0x5,0x3a,0x25, 0x5,0x3a,0x24, 0x4,0x38,0x78, + 0x6,0x4b,0x3f, 0x4,0x3e,0x51, 0x5,0x3a,0x21, 0x6,0x4b,0x3c, + 0x6,0x4b,0x3e, 0x4,0x3e,0x57, 0xf,0x3d,0x2a, 0xf,0x3d,0x2b, + 0x6,0x54,0x79, 0x6,0x52,0x72, 0x6,0x54,0x7a, 0x6,0x4b,0x40, + 0x6,0x4b,0x41, 0x6,0x4b,0x45, 0x6,0x4b,0x3d, 0x5,0x3a,0x23, + 0xf,0x43,0x43, 0x4,0x3e,0x56, 0x5,0x40,0x48, 0x6,0x55,0x22, + 0x5,0x40,0x47, 0x4,0x3e,0x55, 0x6,0x55,0x27, 0x5,0x40,0x4b, + 0x6,0x55,0x24, 0x6,0x54,0x7e, 0x6,0x54,0x7d, 0x6,0x55,0x26, + 0x5,0x40,0x46, 0x5,0x40,0x44, 0x5,0x40,0x43, 0x6,0x55,0x21, + 0x5,0x40,0x42, 0x6,0x55,0x28, 0x5,0x40,0x4a, 0x5,0x40,0x41, + 0x4,0x3e,0x58, 0x5,0x40,0x49, 0x6,0x55,0x25, 0xf,0x43,0x45, + 0xf,0x43,0x46, 0xf,0x49,0x70, 0xf,0x50,0x40, 0x5,0x40,0x45, + 0x6,0x55,0x23, 0x5,0x40,0x4c, 0x6,0x5e,0x6d, 0x5,0x47,0x3a, + 0x6,0x5e,0x69, 0x7,0x25,0x29, 0x5,0x47,0x37, 0x4,0x44,0x6b, + 0x5,0x47,0x35, 0x5,0x47,0x33, 0x6,0x5e,0x6c, 0x5,0x47,0x3b, + 0x5,0x47,0x36, 0x5,0x47,0x34, 0x6,0x5e,0x70, 0x4,0x44,0x6c, + 0x5,0x47,0x31, 0xf,0x49,0x6d, 0x7,0x25,0x2a, 0xf,0x49,0x6f, + 0x6,0x5e,0x6b, 0x6,0x5e,0x68, 0x6,0x5e,0x6a, 0x6,0x5e,0x6f, + 0x4,0x4a,0x7d, 0x5,0x47,0x3d, 0x5,0x47,0x3c, 0x5,0x47,0x39, + 0x5,0x47,0x38, 0x6,0x5e,0x71, 0x5,0x47,0x32, 0x7,0x25,0x31, + 0x4,0x4a,0x78, 0x4,0x4a,0x79, 0x7,0x25,0x30, 0x5,0x4e,0x3c, + 0x7,0x25,0x34, 0x7,0x2f,0x73, 0x5,0x4e,0x41, 0x7,0x25,0x2f, + 0x7,0x25,0x2b, 0x5,0x4e,0x3e, 0x5,0x4e,0x45, 0x5,0x4e,0x3b, + 0x5,0x4e,0x44, 0x5,0x4e,0x43, 0x5,0x4e,0x3d, 0x5,0x55,0x4f, + 0x7,0x2f,0x72, 0x5,0x4e,0x3f, 0x5,0x4e,0x40, 0x5,0x4e,0x46, + 0x7,0x25,0x2c, 0x7,0x25,0x2d, 0xf,0x55,0x75, 0x5,0x55,0x50, + 0x7,0x25,0x2e, 0x7,0x25,0x33, 0xf,0x49,0x6e, 0x4,0x51,0x33, + 0x5,0x4e,0x42, 0x5,0x55,0x57, 0x4,0x51,0x35, 0x5,0x55,0x55, + 0x5,0x55,0x51, 0x5,0x55,0x52, 0x7,0x2f,0x79, 0x4,0x51,0x31, + 0x7,0x2f,0x78, 0x7,0x2f,0x77, 0x5,0x5c,0x28, 0x4,0x51,0x36, + 0x5,0x55,0x53, 0x5,0x55,0x56, 0x7,0x2f,0x75, 0x7,0x39,0x32, + 0x4,0x56,0x6d, 0x7,0x39,0x31, 0x7,0x2f,0x76, 0x7,0x25,0x32, + 0xf,0x55,0x77, 0x7,0x25,0x35, 0x5,0x55,0x54, 0x5,0x5c,0x2a, + 0x7,0x39,0x33, 0x5,0x5c,0x29, 0x7,0x47,0x77, 0x7,0x39,0x35, + 0x7,0x39,0x34, 0xf,0x5b,0x29, 0xf,0x5b,0x2a, 0xf,0x5b,0x2b, + 0xf,0x5b,0x2c, 0x7,0x40,0x5d, 0x5,0x62,0x55, 0x5,0x62,0x54, + 0x7,0x40,0x5a, 0x7,0x40,0x59, 0x7,0x40,0x5c, 0x4,0x5b,0x68, + 0x7,0x40,0x5b, 0xf,0x5f,0x4e, 0xf,0x5f,0x4f, 0x5,0x62,0x56, + 0x4,0x63,0x64, 0x7,0x47,0x78, 0x7,0x4e,0x40, 0x7,0x47,0x76, + 0x7,0x47,0x74, 0x7,0x4e,0x41, 0x5,0x6c,0x56, 0x7,0x4e,0x42, + 0x5,0x70,0x48, 0x7,0x53,0x6d, 0x5,0x70,0x47, 0x4,0x68,0x74, + 0x5,0x70,0x49, 0x7,0x58,0x3b, 0x7,0x5b,0x76, 0x7,0x5b,0x78, + 0x7,0x5b,0x77, 0x5,0x77,0x6a, 0x7,0x5e,0x7a, 0xf,0x6b,0x55, + 0x7,0x61,0x24, 0x7,0x63,0x59, 0xf,0x28,0x23, 0x6,0x4b,0x46, + 0x6,0x5e,0x72, 0x5,0x21,0x4c, 0x6,0x25,0x38, 0x6,0x23,0x33, + 0x6,0x28,0x5f, 0x5,0x24,0x61, 0x4,0x24,0x5d, 0x4,0x24,0x5c, + 0x6,0x28,0x61, 0x6,0x28,0x60, 0xf,0x24,0x79, 0x5,0x24,0x60, + 0x5,0x27,0x30, 0x6,0x2d,0x25, 0x4,0x27,0x3c, 0x5,0x2a,0x41, + 0xf,0x28,0x25, 0xf,0x28,0x26, 0xf,0x28,0x27, 0xf,0x28,0x28, + 0xf,0x28,0x29, 0x6,0x2d,0x23, 0xf,0x2c,0x40, 0xf,0x28,0x24, + 0x6,0x2d,0x22, 0xf,0x2c,0x3c, 0x6,0x32,0x69, 0x5,0x2a,0x45, + 0x5,0x2a,0x42, 0x4,0x2a,0x36, 0x6,0x32,0x6b, 0x6,0x2f,0x69, + 0xf,0x2c,0x2f, 0xf,0x2c,0x30, 0xf,0x2c,0x31, 0xf,0x2c,0x33, + 0xf,0x2c,0x34, 0xf,0x2c,0x35, 0xf,0x2c,0x36, 0xf,0x2c,0x37, + 0xf,0x2c,0x38, 0xf,0x2c,0x3a, 0xf,0x2c,0x3b, 0xf,0x2c,0x3d, + 0x6,0x32,0x6a, 0x6,0x32,0x6c, 0xf,0x2c,0x3e, 0xf,0x2c,0x3f, + 0xf,0x2c,0x2e, 0x5,0x2a,0x44, 0x5,0x2a,0x43, 0x6,0x39,0x53, + 0x5,0x33,0x56, 0x5,0x2e,0x61, 0x4,0x2e,0x29, 0x6,0x39,0x51, + 0x4,0x2e,0x28, 0x6,0x39,0x52, 0x6,0x39,0x54, 0xf,0x30,0x79, + 0xf,0x30,0x7a, 0xf,0x30,0x7b, 0xf,0x30,0x7c, 0xf,0x30,0x7d, + 0xf,0x30,0x7e, 0xf,0x31,0x21, 0xf,0x31,0x23, 0xf,0x31,0x24, + 0xf,0x31,0x25, 0xf,0x31,0x26, 0x6,0x39,0x50, 0xf,0x36,0x63, + 0x4,0x33,0x31, 0x6,0x39,0x55, 0x6,0x41,0x7a, 0x5,0x33,0x57, + 0x6,0x41,0x7b, 0x4,0x33,0x32, 0x6,0x41,0x77, 0x6,0x41,0x78, + 0x6,0x41,0x79, 0xf,0x31,0x22, 0xf,0x36,0x56, 0xf,0x36,0x58, + 0xf,0x36,0x5c, 0xf,0x36,0x5f, 0xf,0x36,0x60, 0xf,0x36,0x61, + 0xf,0x36,0x62, 0xf,0x36,0x64, 0xf,0x36,0x5d, 0x6,0x41,0x7c, + 0xf,0x36,0x5b, 0xf,0x36,0x5a, 0xf,0x36,0x5e, 0x5,0x33,0x58, + 0x6,0x41,0x76, 0xf,0x3d,0x3e, 0xf,0x3d,0x34, 0x6,0x4b,0x4b, + 0x5,0x3a,0x2b, 0x5,0x3a,0x2a, 0x5,0x3a,0x2c, 0x6,0x55,0x29, + 0x4,0x3e,0x5a, 0x5,0x40,0x4d, 0xf,0x3d,0x38, 0x4,0x38,0x7c, + 0x6,0x4b,0x49, 0x6,0x4b,0x4c, 0xf,0x3d,0x2c, 0xf,0x3d,0x2d, + 0xf,0x3d,0x2e, 0xf,0x3d,0x2f, 0xf,0x3d,0x30, 0xf,0x3d,0x32, + 0xf,0x3d,0x35, 0xf,0x3d,0x36, 0xf,0x3d,0x37, 0xf,0x3d,0x39, + 0xf,0x3d,0x3a, 0xf,0x3d,0x3f, 0xf,0x43,0x50, 0x6,0x4b,0x4e, + 0x6,0x55,0x32, 0x6,0x4b,0x4d, 0xf,0x3d,0x40, 0x6,0x4b,0x48, + 0x6,0x4b,0x4a, 0x6,0x55,0x2a, 0xf,0x3d,0x33, 0xf,0x3d,0x3d, + 0xf,0x3d,0x31, 0x5,0x3a,0x29, 0x6,0x55,0x2b, 0x6,0x55,0x30, + 0x4,0x3e,0x5b, 0x6,0x55,0x31, 0x6,0x55,0x2f, 0x6,0x55,0x2e, + 0x5,0x47,0x3e, 0xf,0x43,0x47, 0xf,0x43,0x4a, 0xf,0x43,0x4c, + 0xf,0x43,0x4d, 0xf,0x43,0x4e, 0xf,0x43,0x4f, 0xf,0x43,0x51, + 0xf,0x43,0x52, 0xf,0x43,0x53, 0xf,0x43,0x54, 0xf,0x43,0x55, + 0xf,0x43,0x57, 0xf,0x43,0x58, 0xf,0x43,0x5a, 0xf,0x43,0x5b, + 0xf,0x43,0x5c, 0xf,0x43,0x5d, 0xf,0x43,0x5e, 0xf,0x43,0x5f, + 0xf,0x43,0x60, 0xf,0x43,0x61, 0xf,0x43,0x62, 0xf,0x43,0x63, + 0xf,0x43,0x65, 0x6,0x55,0x2c, 0x5,0x40,0x4f, 0x5,0x3a,0x2e, + 0xf,0x43,0x4b, 0xf,0x43,0x48, 0x5,0x47,0x3f, 0x6,0x55,0x2d, + 0xf,0x43,0x59, 0xf,0x49,0x7a, 0xf,0x49,0x7b, 0xf,0x4a,0x26, + 0x7,0x25,0x38, 0x6,0x5e,0x74, 0x5,0x47,0x41, 0x7,0x25,0x36, + 0x4,0x44,0x6d, 0x5,0x47,0x40, 0x6,0x5e,0x75, 0x6,0x5e,0x77, + 0x6,0x5e,0x76, 0x6,0x5e,0x73, 0xf,0x49,0x71, 0xf,0x49,0x72, + 0xf,0x49,0x73, 0xf,0x49,0x74, 0xf,0x49,0x75, 0xf,0x49,0x77, + 0xf,0x49,0x78, 0xf,0x49,0x79, 0xf,0x49,0x7c, 0xf,0x49,0x7d, + 0xf,0x49,0x7e, 0xf,0x4a,0x21, 0xf,0x4a,0x22, 0xf,0x4a,0x24, + 0xf,0x4a,0x25, 0xf,0x4a,0x27, 0xf,0x4a,0x28, 0xf,0x4a,0x29, + 0x5,0x47,0x42, 0x3,0x48,0x26, 0x7,0x25,0x39, 0xf,0x4a,0x23, + 0x7,0x25,0x40, 0x4,0x4a,0x7e, 0x5,0x4e,0x47, 0x7,0x2f,0x7b, + 0x7,0x25,0x3a, 0x7,0x2f,0x7a, 0x7,0x25,0x3c, 0x7,0x25,0x3f, + 0x7,0x25,0x41, 0x7,0x25,0x42, 0xf,0x50,0x41, 0xf,0x50,0x42, + 0xf,0x50,0x43, 0xf,0x50,0x44, 0xf,0x50,0x45, 0xf,0x50,0x46, + 0xf,0x50,0x48, 0xf,0x50,0x49, 0xf,0x50,0x4a, 0xf,0x50,0x4b, + 0xf,0x50,0x4c, 0x7,0x25,0x3d, 0x5,0x4e,0x48, 0x7,0x25,0x3b, + 0x5,0x4e,0x49, 0xf,0x55,0x7c, 0xf,0x56,0x2e, 0xf,0x50,0x47, + 0x7,0x30,0x22, 0x7,0x25,0x3e, 0x5,0x55,0x58, 0x5,0x55,0x5b, + 0x5,0x55,0x59, 0x4,0x51,0x3b, 0x7,0x30,0x24, 0x7,0x2f,0x7d, + 0x7,0x2f,0x7e, 0x7,0x2f,0x7c, 0x4,0x51,0x3c, 0x7,0x30,0x21, + 0xf,0x55,0x78, 0xf,0x55,0x79, 0xf,0x55,0x7b, 0xf,0x55,0x7d, + 0xf,0x56,0x23, 0xf,0x56,0x24, 0xf,0x56,0x25, 0xf,0x56,0x26, + 0xf,0x56,0x27, 0xf,0x56,0x29, 0xf,0x56,0x2d, 0xf,0x56,0x2f, + 0x7,0x30,0x25, 0x7,0x30,0x23, 0x7,0x39,0x36, 0xf,0x56,0x30, + 0xf,0x56,0x21, 0xf,0x56,0x28, 0x5,0x55,0x5c, 0x5,0x55,0x5a, + 0xf,0x56,0x2c, 0x7,0x39,0x3b, 0x7,0x39,0x3d, 0x5,0x5c,0x2d, + 0x5,0x5c,0x2b, 0x7,0x40,0x5e, 0x7,0x39,0x39, 0x4,0x5b,0x6a, + 0x4,0x56,0x6e, 0x4,0x56,0x70, 0x7,0x39,0x38, 0xf,0x5b,0x2e, + 0xf,0x5b,0x2f, 0xf,0x5b,0x30, 0xf,0x5b,0x31, 0xf,0x5b,0x32, + 0xf,0x5b,0x33, 0xf,0x5b,0x34, 0xf,0x5b,0x35, 0x5,0x5c,0x2c, + 0x7,0x39,0x3a, 0x7,0x39,0x3c, 0x7,0x39,0x37, 0x7,0x40,0x5f, + 0x5,0x68,0x3c, 0x4,0x5b,0x6b, 0x5,0x62,0x57, 0x4,0x60,0x26, + 0x7,0x40,0x60, 0x4,0x60,0x28, 0xf,0x5f,0x51, 0xf,0x5f,0x53, + 0xf,0x5f,0x54, 0xf,0x5f,0x55, 0xf,0x5f,0x57, 0xf,0x5f,0x59, + 0xf,0x5f,0x5a, 0xf,0x5f,0x5b, 0xf,0x5f,0x5c, 0xf,0x5f,0x5f, + 0x7,0x40,0x61, 0x7,0x40,0x62, 0xf,0x5f,0x50, 0xf,0x5f,0x52, + 0xf,0x5f,0x58, 0xf,0x63,0x23, 0x7,0x47,0x7c, 0x7,0x47,0x7b, + 0x5,0x68,0x3e, 0x7,0x47,0x7a, 0x7,0x4e,0x43, 0x5,0x68,0x3d, + 0x7,0x47,0x79, 0xf,0x62,0x7c, 0xf,0x62,0x7e, 0xf,0x63,0x21, + 0xf,0x63,0x22, 0x4,0x60,0x29, 0xf,0x62,0x79, 0xf,0x62,0x7a, + 0xf,0x62,0x7d, 0x7,0x53,0x6f, 0x5,0x6c,0x57, 0x4,0x66,0x52, + 0xf,0x65,0x52, 0xf,0x65,0x53, 0xf,0x65,0x54, 0xf,0x65,0x55, + 0x7,0x4e,0x44, 0x7,0x53,0x6e, 0xf,0x5f,0x5e, 0x4,0x66,0x51, + 0x7,0x55,0x7c, 0x4,0x66,0x53, 0x7,0x58,0x3c, 0xf,0x67,0x76, + 0x7,0x5b,0x79, 0x4,0x6a,0x52, 0xf,0x69,0x59, 0xf,0x69,0x5a, + 0x5,0x76,0x24, 0xf,0x6a,0x61, 0xf,0x6a,0x63, 0xf,0x6b,0x56, + 0xf,0x6a,0x62, 0x5,0x79,0x31, 0x7,0x61,0x26, 0x7,0x61,0x25, + 0xf,0x6c,0x32, 0x5,0x7a,0x2c, 0x4,0x6e,0x34, 0x6,0x2d,0x26, + 0x5,0x2a,0x47, 0x5,0x2a,0x46, 0x6,0x32,0x6d, 0xf,0x2c,0x41, + 0x6,0x32,0x6e, 0x6,0x39,0x56, 0x5,0x2e,0x63, 0x5,0x2e,0x64, + 0x6,0x39,0x57, 0x6,0x39,0x58, 0x4,0x33,0x36, 0x5,0x33,0x59, + 0x5,0x33,0x5a, 0xf,0x36,0x65, 0x5,0x3a,0x2f, 0x5,0x3a,0x30, + 0x6,0x4b,0x4f, 0xf,0x3d,0x41, 0x6,0x4b,0x50, 0x4,0x3e,0x5c, + 0x5,0x40,0x50, 0x5,0x40,0x51, 0xf,0x43,0x66, 0x7,0x25,0x45, + 0x6,0x5e,0x78, 0x5,0x47,0x43, 0xf,0x4a,0x2a, 0x5,0x47,0x44, + 0x7,0x25,0x44, 0x7,0x30,0x26, 0x4,0x51,0x3d, 0x5,0x4e,0x4a, + 0xf,0x50,0x4d, 0x7,0x25,0x43, 0x4,0x51,0x3e, 0x7,0x39,0x3e, + 0x5,0x62,0x58, 0xf,0x5f,0x60, 0x4,0x5b,0x6d, 0x4,0x66,0x54, + 0x7,0x53,0x70, 0x5,0x70,0x4a, 0x5,0x76,0x25, 0x7,0x5b,0x7a, + 0x7,0x5e,0x7b, 0x7,0x62,0x3b, 0x7,0x62,0x3c, 0x5,0x24,0x62, + 0x5,0x27,0x31, 0x4,0x27,0x3d, 0x6,0x2d,0x27, 0x5,0x2a,0x48, + 0x5,0x2a,0x49, 0x6,0x32,0x6f, 0x4,0x2a,0x3b, 0x4,0x2a,0x3e, + 0x5,0x2e,0x65, 0x5,0x2e,0x67, 0x6,0x39,0x5c, 0x5,0x2e,0x66, + 0xf,0x31,0x29, 0x6,0x39,0x5b, 0x6,0x39,0x59, 0x6,0x39,0x5a, + 0x5,0x33,0x5d, 0x6,0x42,0x22, 0x6,0x41,0x7e, 0x6,0x42,0x24, + 0x5,0x33,0x5e, 0x6,0x42,0x23, 0x5,0x33,0x5c, 0xf,0x36,0x66, + 0xf,0x36,0x68, 0x4,0x39,0x22, 0x5,0x3a,0x31, 0x6,0x55,0x36, + 0x4,0x39,0x27, 0x5,0x3a,0x34, 0x5,0x3a,0x33, 0x5,0x33,0x5f, + 0x6,0x4b,0x52, 0x5,0x3a,0x32, 0x5,0x33,0x5b, 0x6,0x4b,0x51, + 0x6,0x4b,0x53, 0x4,0x3e,0x64, 0x5,0x40,0x52, 0x6,0x55,0x37, + 0x4,0x3e,0x5e, 0x5,0x40,0x53, 0x6,0x55,0x33, 0x6,0x55,0x35, + 0x4,0x3e,0x5f, 0x6,0x55,0x38, 0xf,0x43,0x67, 0x6,0x55,0x34, + 0x5,0x47,0x47, 0x6,0x5e,0x7c, 0x5,0x47,0x45, 0x6,0x5e,0x7a, + 0x4,0x44,0x72, 0x6,0x5e,0x79, 0x6,0x5e,0x7b, 0x5,0x47,0x46, + 0x4,0x4b,0x28, 0x7,0x25,0x4a, 0x5,0x4e,0x4c, 0x5,0x4e,0x4d, + 0x5,0x4e,0x4e, 0x7,0x25,0x46, 0x7,0x25,0x47, 0x7,0x25,0x49, + 0x7,0x30,0x27, 0x4,0x56,0x74, 0x7,0x30,0x28, 0x5,0x55,0x5f, + 0x5,0x55,0x61, 0x4,0x51,0x40, 0x5,0x55,0x60, 0x5,0x55,0x5e, + 0x4,0x56,0x76, 0x5,0x5c,0x2e, 0x4,0x56,0x77, 0x7,0x39,0x40, + 0x7,0x39,0x3f, 0x5,0x4e,0x4b, 0x4,0x5b,0x70, 0x5,0x62,0x5b, + 0x5,0x62,0x5a, 0x7,0x40,0x64, 0x5,0x62,0x59, 0x7,0x40,0x65, + 0x5,0x68,0x3f, 0x7,0x4e,0x45, 0x7,0x53,0x71, 0x7,0x53,0x72, + 0x4,0x66,0x56, 0x5,0x70,0x4b, 0x4,0x66,0x55, 0x7,0x53,0x73, + 0x4,0x68,0x76, 0x7,0x58,0x3d, 0x5,0x73,0x5a, 0x5,0x76,0x28, + 0x5,0x76,0x27, 0x7,0x5b,0x7b, 0x5,0x76,0x26, 0x7,0x5c,0x6b, + 0x5,0x7a,0x6c, 0x7,0x65,0x38, 0x6,0x23,0x34, 0x6,0x2d,0x28, + 0x5,0x27,0x33, 0x4,0x27,0x3e, 0xf,0x28,0x2b, 0x6,0x32,0x70, + 0xf,0x2c,0x43, 0x5,0x40,0x54, 0x6,0x5e,0x7d, 0x7,0x30,0x2b, + 0x7,0x30,0x29, 0x7,0x30,0x2a, 0x4,0x56,0x79, 0x7,0x40,0x66, + 0x5,0x70,0x4c, 0x6,0x23,0x35, 0x6,0x25,0x39, 0x6,0x2d,0x29, + 0x5,0x27,0x34, 0x6,0x2d,0x2a, 0xf,0x2c,0x44, 0xf,0x2c,0x45, + 0x5,0x2a,0x4a, 0x4,0x2a,0x3f, 0x6,0x32,0x71, 0x6,0x34,0x79, + 0x5,0x2e,0x69, 0x6,0x42,0x26, 0x5,0x33,0x60, 0x6,0x42,0x25, + 0x6,0x42,0x27, 0xf,0x36,0x69, 0x6,0x55,0x39, 0x6,0x4b,0x54, + 0xf,0x3d,0x43, 0xf,0x3d,0x42, 0x6,0x55,0x3b, 0xf,0x43,0x68, + 0x6,0x55,0x3a, 0x6,0x5e,0x7e, 0x7,0x25,0x4b, 0xf,0x4a,0x2b, + 0x4,0x56,0x7a, 0xf,0x5b,0x36, 0xf,0x63,0x26, 0x7,0x46,0x6e, + 0xf,0x63,0x25, 0x7,0x53,0x74, 0x6,0x25,0x3a, 0xf,0x24,0x7a, + 0x5,0x27,0x35, 0x6,0x2d,0x2e, 0x6,0x39,0x5d, 0x5,0x33,0x61, + 0xf,0x4a,0x2c, 0xf,0x5f,0x61, 0x7,0x47,0x7d, 0xf,0x6c,0x33, + 0x5,0x73,0x5b, 0x4,0x24,0x5f, 0xf,0x24,0x7c, 0xf,0x24,0x7b, + 0x6,0x28,0x63, 0x4,0x27,0x42, 0x4,0x25,0x53, 0x4,0x27,0x3f, + 0x5,0x27,0x36, 0x6,0x2d,0x31, 0x6,0x2d,0x30, 0x6,0x2d,0x33, + 0xf,0x28,0x2c, 0xf,0x28,0x2d, 0x6,0x2d,0x2f, 0x4,0x2a,0x42, + 0x5,0x2a,0x4d, 0x6,0x32,0x74, 0x5,0x2a,0x4c, 0x6,0x32,0x73, + 0x5,0x2a,0x4b, 0x6,0x32,0x76, 0x6,0x32,0x7a, 0x6,0x32,0x77, + 0x6,0x39,0x65, 0x5,0x2a,0x4e, 0x6,0x32,0x78, 0x6,0x32,0x75, + 0x5,0x2e,0x6e, 0xf,0x2c,0x46, 0xf,0x2c,0x47, 0xf,0x2c,0x48, + 0xf,0x2c,0x49, 0xf,0x2c,0x4b, 0xf,0x2c,0x4c, 0xf,0x2c,0x4d, + 0xf,0x2c,0x4e, 0xf,0x2c,0x4f, 0x5,0x2a,0x4f, 0x5,0x2e,0x6a, + 0x4,0x2e,0x2e, 0x5,0x2e,0x6b, 0x6,0x39,0x61, 0x6,0x39,0x60, + 0x6,0x39,0x62, 0x6,0x39,0x5f, 0x6,0x39,0x63, 0xf,0x31,0x2a, + 0xf,0x31,0x2b, 0xf,0x31,0x2c, 0xf,0x31,0x2e, 0x4,0x2e,0x30, + 0xf,0x31,0x2d, 0x5,0x2e,0x6d, 0x5,0x2e,0x6c, 0x4,0x33,0x3e, + 0x6,0x42,0x28, 0x5,0x33,0x63, 0x5,0x33,0x62, 0x4,0x33,0x3d, + 0x6,0x42,0x2c, 0x6,0x42,0x2f, 0x6,0x42,0x2a, 0x6,0x42,0x2d, + 0x6,0x42,0x2e, 0xf,0x36,0x6b, 0xf,0x36,0x6c, 0x6,0x42,0x2b, + 0x6,0x42,0x29, 0x6,0x41,0x6b, 0x4,0x39,0x2b, 0x4,0x39,0x29, + 0x4,0x39,0x2a, 0x6,0x4b,0x57, 0x6,0x4b,0x59, 0xf,0x36,0x6a, + 0xf,0x3d,0x46, 0xf,0x3d,0x47, 0xf,0x3d,0x48, 0x6,0x4b,0x58, + 0x4,0x39,0x2d, 0x6,0x4b,0x55, 0xf,0x3d,0x44, 0xf,0x3d,0x45, + 0x6,0x55,0x40, 0x4,0x3e,0x6a, 0x4,0x3e,0x67, 0x6,0x55,0x3e, + 0x6,0x55,0x3f, 0x4,0x3e,0x66, 0x5,0x40,0x56, 0x6,0x55,0x3c, + 0x6,0x55,0x42, 0x5,0x40,0x55, 0x6,0x55,0x43, 0x6,0x55,0x44, + 0x6,0x55,0x41, 0xf,0x43,0x69, 0xf,0x43,0x6a, 0x5,0x40,0x57, + 0x6,0x55,0x3d, 0x6,0x5f,0x23, 0x4,0x44,0x7a, 0x5,0x47,0x4a, + 0x6,0x5f,0x22, 0x6,0x5f,0x25, 0x6,0x5f,0x28, 0xf,0x4a,0x2d, + 0x6,0x5f,0x26, 0x6,0x5f,0x24, 0x6,0x5f,0x27, 0x7,0x25,0x50, + 0x4,0x4b,0x2c, 0x7,0x25,0x4c, 0x7,0x25,0x4e, 0x7,0x25,0x4d, + 0x7,0x25,0x4f, 0x5,0x4e,0x4f, 0x7,0x25,0x51, 0xf,0x50,0x4f, + 0x4,0x4b,0x2b, 0x4,0x51,0x45, 0x4,0x51,0x43, 0x4,0x51,0x46, + 0x7,0x30,0x2c, 0x5,0x55,0x62, 0xf,0x56,0x32, 0x7,0x2c,0x3b, + 0x7,0x39,0x41, 0x5,0x5c,0x33, 0x7,0x39,0x43, 0x5,0x5c,0x31, + 0x4,0x56,0x7b, 0x7,0x39,0x42, 0x5,0x5c,0x34, 0xf,0x5b,0x37, + 0x7,0x3c,0x76, 0x5,0x5c,0x30, 0x5,0x5c,0x32, 0xf,0x56,0x31, + 0x4,0x5b,0x71, 0x7,0x47,0x7e, 0x5,0x68,0x41, 0x7,0x48,0x23, + 0x7,0x4e,0x46, 0x7,0x48,0x21, 0x7,0x48,0x24, 0x4,0x60,0x2d, + 0x7,0x48,0x22, 0x7,0x4e,0x48, 0x7,0x4e,0x47, 0x7,0x53,0x77, + 0xf,0x67,0x77, 0x7,0x53,0x75, 0x7,0x53,0x76, 0xf,0x67,0x52, + 0x7,0x58,0x3e, 0x4,0x68,0x77, 0x7,0x53,0x78, 0x7,0x5b,0x7d, + 0xf,0x6a,0x64, 0x7,0x5b,0x7c, 0x7,0x5e,0x7c, 0x7,0x62,0x3e, + 0x7,0x62,0x3d, 0x7,0x63,0x5a, 0x7,0x63,0x5c, 0x7,0x63,0x5b, + 0x7,0x66,0x29, 0x7,0x66,0x35, 0x7,0x66,0x46, 0x6,0x23,0x36, + 0x6,0x25,0x3b, 0xf,0x28,0x2e, 0x4,0x2e,0x32, 0x5,0x2a,0x50, + 0x4,0x39,0x2e, 0x6,0x55,0x46, 0x6,0x55,0x45, 0x6,0x5f,0x29, + 0x5,0x55,0x63, 0x7,0x30,0x2e, 0x7,0x25,0x52, 0x7,0x58,0x3f, + 0x5,0x22,0x7c, 0x5,0x24,0x64, 0x5,0x24,0x65, 0x4,0x24,0x60, + 0x6,0x28,0x66, 0x6,0x28,0x67, 0x6,0x28,0x65, 0x6,0x28,0x68, + 0x4,0x27,0x45, 0x6,0x2d,0x35, 0x4,0x27,0x44, 0xf,0x28,0x2f, + 0x5,0x27,0x38, 0x6,0x2d,0x36, 0x6,0x32,0x7d, 0x4,0x2a,0x4b, + 0x6,0x32,0x7c, 0x6,0x32,0x7b, 0x5,0x2a,0x52, 0x5,0x2a,0x56, + 0x4,0x2a,0x47, 0x4,0x2a,0x48, 0x5,0x2a,0x53, 0x4,0x2a,0x45, + 0x5,0x2a,0x54, 0x5,0x2a,0x51, 0x5,0x2a,0x55, 0x6,0x33,0x24, + 0xf,0x2c,0x50, 0x6,0x32,0x7e, 0xf,0x2c,0x51, 0x6,0x33,0x22, + 0x6,0x33,0x23, 0x6,0x33,0x21, 0x6,0x39,0x69, 0x5,0x2e,0x6f, + 0x5,0x2e,0x73, 0x6,0x39,0x6f, 0x5,0x2e,0x71, 0x6,0x39,0x70, + 0x6,0x39,0x6a, 0x5,0x2e,0x76, 0x5,0x2e,0x72, 0x5,0x2e,0x75, + 0x6,0x39,0x6d, 0x6,0x39,0x71, 0x6,0x39,0x66, 0x4,0x2e,0x3d, + 0x5,0x2e,0x74, 0x6,0x39,0x68, 0x4,0x2e,0x3e, 0x5,0x2e,0x70, + 0x6,0x39,0x6e, 0xf,0x31,0x2f, 0x6,0x39,0x67, 0x6,0x39,0x6c, + 0x6,0x42,0x31, 0x6,0x42,0x37, 0x5,0x33,0x68, 0x6,0x42,0x35, + 0x5,0x33,0x6b, 0x4,0x33,0x41, 0x5,0x33,0x6a, 0x5,0x33,0x66, + 0x6,0x42,0x33, 0x4,0x33,0x44, 0x5,0x33,0x69, 0xf,0x36,0x6d, + 0xf,0x36,0x6e, 0xf,0x36,0x6f, 0x6,0x42,0x36, 0x6,0x42,0x39, + 0x6,0x42,0x34, 0x6,0x42,0x38, 0xf,0x36,0x70, 0x6,0x42,0x30, + 0x5,0x33,0x67, 0x5,0x33,0x6c, 0x5,0x3a,0x36, 0x5,0x3a,0x3f, + 0x6,0x4b,0x61, 0x5,0x3a,0x35, 0x6,0x4b,0x65, 0x5,0x3a,0x39, + 0x5,0x3a,0x3a, 0x5,0x3a,0x3c, 0x5,0x3a,0x37, 0x6,0x4b,0x63, + 0x6,0x4b,0x5f, 0x5,0x3a,0x40, 0x6,0x4b,0x62, 0x6,0x4b,0x5b, + 0x6,0x4b,0x66, 0x5,0x3a,0x3e, 0x6,0x4b,0x5e, 0x4,0x39,0x39, + 0x6,0x4b,0x5d, 0x6,0x4b,0x60, 0x6,0x4b,0x64, 0xf,0x3d,0x49, + 0xf,0x3d,0x4a, 0x4,0x39,0x37, 0x6,0x4b,0x5c, 0x4,0x39,0x31, + 0x5,0x3a,0x38, 0x6,0x55,0x4c, 0x4,0x3e,0x72, 0x4,0x3e,0x70, + 0x4,0x3e,0x7b, 0x5,0x40,0x59, 0x4,0x3e,0x71, 0x4,0x3e,0x75, + 0x4,0x44,0x7d, 0x4,0x3e,0x79, 0x6,0x55,0x49, 0x5,0x40,0x5a, + 0x5,0x40,0x5c, 0x5,0x40,0x62, 0x4,0x3e,0x7c, 0x6,0x55,0x47, + 0x5,0x40,0x61, 0x6,0x55,0x4d, 0x5,0x40,0x65, 0x5,0x40,0x63, + 0x5,0x40,0x5b, 0x5,0x3a,0x3d, 0x5,0x40,0x5f, 0x5,0x40,0x5e, + 0x6,0x55,0x4b, 0x6,0x55,0x4a, 0x4,0x3e,0x7d, 0xf,0x43,0x6b, + 0xf,0x43,0x6c, 0x6,0x55,0x48, 0x6,0x55,0x4e, 0x5,0x40,0x58, + 0x5,0x40,0x66, 0x5,0x40,0x5d, 0x5,0x47,0x58, 0x5,0x47,0x50, + 0x4,0x45,0x25, 0x4,0x45,0x2b, 0x5,0x47,0x4b, 0x5,0x47,0x4f, + 0x4,0x45,0x26, 0x6,0x5f,0x2f, 0x6,0x5f,0x2a, 0x4,0x45,0x2e, + 0x4,0x45,0x2a, 0x6,0x5f,0x2b, 0x6,0x5f,0x34, 0x5,0x47,0x4d, + 0x5,0x47,0x4e, 0x5,0x47,0x53, 0x4,0x45,0x2c, 0x6,0x5f,0x37, + 0x6,0x5f,0x35, 0x5,0x47,0x5a, 0x6,0x5f,0x2e, 0x4,0x45,0x27, + 0x4,0x45,0x22, 0x5,0x47,0x51, 0x5,0x47,0x52, 0x6,0x5f,0x33, + 0x5,0x47,0x4c, 0x5,0x47,0x56, 0x6,0x5f,0x31, 0x6,0x5f,0x30, + 0xf,0x4a,0x2e, 0x6,0x5f,0x38, 0x6,0x5f,0x2c, 0x4,0x45,0x2d, + 0x6,0x5f,0x32, 0x6,0x5f,0x36, 0x5,0x47,0x55, 0x4,0x4b,0x3a, + 0x4,0x4b,0x36, 0x4,0x4b,0x2d, 0x4,0x4b,0x39, 0x5,0x4e,0x53, + 0x4,0x4b,0x34, 0x7,0x25,0x5d, 0x4,0x4b,0x32, 0x5,0x4e,0x55, + 0x5,0x4e,0x57, 0x5,0x4e,0x54, 0x4,0x4b,0x31, 0x7,0x25,0x55, + 0x4,0x4b,0x30, 0x5,0x4e,0x51, 0x5,0x4e,0x52, 0x7,0x25,0x53, + 0x5,0x47,0x57, 0x5,0x4e,0x58, 0x7,0x25,0x54, 0x7,0x25,0x5b, + 0x7,0x25,0x59, 0xf,0x50,0x50, 0xf,0x50,0x51, 0xf,0x50,0x52, + 0xf,0x50,0x53, 0xf,0x50,0x54, 0x7,0x25,0x56, 0x7,0x25,0x5a, + 0x7,0x25,0x5e, 0x5,0x4e,0x56, 0x5,0x4e,0x50, 0x4,0x51,0x4b, + 0x5,0x55,0x65, 0x7,0x30,0x2f, 0x7,0x30,0x30, 0x5,0x55,0x6c, + 0x5,0x55,0x6d, 0x4,0x51,0x4c, 0x4,0x51,0x47, 0x5,0x55,0x68, + 0x7,0x30,0x35, 0x5,0x55,0x66, 0x5,0x55,0x67, 0x5,0x55,0x6b, + 0x7,0x30,0x31, 0x7,0x30,0x37, 0x5,0x55,0x6e, 0xf,0x56,0x34, + 0xf,0x56,0x35, 0x7,0x30,0x34, 0x7,0x30,0x33, 0x5,0x55,0x6a, + 0x7,0x30,0x32, 0x7,0x30,0x38, 0x7,0x30,0x39, 0x5,0x55,0x64, + 0x7,0x25,0x57, 0x4,0x56,0x7c, 0x5,0x5c,0x39, 0x5,0x55,0x70, + 0x7,0x39,0x50, 0x4,0x51,0x51, 0x4,0x45,0x29, 0x4,0x56,0x7e, + 0x7,0x39,0x47, 0x5,0x5c,0x35, 0x7,0x39,0x48, 0x5,0x5c,0x3c, + 0x5,0x5c,0x3a, 0x5,0x5c,0x3d, 0x7,0x39,0x4f, 0x7,0x40,0x6a, + 0x5,0x55,0x6f, 0x5,0x5c,0x37, 0x4,0x56,0x7d, 0x5,0x5c,0x38, + 0x4,0x57,0x23, 0x7,0x39,0x49, 0x7,0x39,0x4d, 0x7,0x39,0x51, + 0x7,0x39,0x4b, 0x7,0x39,0x46, 0x7,0x39,0x4c, 0xf,0x5b,0x38, + 0x7,0x39,0x44, 0x7,0x39,0x45, 0x7,0x39,0x4e, 0x5,0x5c,0x3b, + 0x5,0x62,0x5c, 0x5,0x5c,0x3e, 0x7,0x39,0x4a, 0x4,0x5b,0x78, + 0x5,0x5c,0x40, 0x5,0x62,0x60, 0x7,0x40,0x68, 0x5,0x62,0x65, + 0x7,0x40,0x69, 0x5,0x62,0x61, 0x5,0x62,0x64, 0x4,0x5b,0x76, + 0x5,0x5c,0x3f, 0x5,0x62,0x5d, 0x5,0x62,0x62, 0x5,0x62,0x5e, + 0x5,0x62,0x5f, 0x4,0x5b,0x7a, 0x7,0x40,0x6d, 0x5,0x62,0x63, + 0x7,0x48,0x2b, 0x4,0x60,0x33, 0x7,0x48,0x27, 0x4,0x60,0x34, + 0x5,0x68,0x44, 0x4,0x60,0x35, 0x7,0x48,0x26, 0x5,0x68,0x43, + 0x5,0x68,0x42, 0x4,0x60,0x36, 0xf,0x63,0x27, 0x4,0x60,0x31, + 0x7,0x48,0x28, 0x7,0x48,0x29, 0x7,0x48,0x25, 0x7,0x48,0x2a, + 0x7,0x40,0x6c, 0x4,0x63,0x6a, 0x4,0x63,0x6b, 0x7,0x4e,0x49, + 0x7,0x4e,0x4d, 0x7,0x4e,0x4c, 0x5,0x6c,0x58, 0x5,0x6c,0x59, + 0x7,0x4e,0x4e, 0x7,0x4e,0x4b, 0x7,0x4e,0x4a, 0x5,0x70,0x51, + 0x5,0x70,0x50, 0x5,0x70,0x4e, 0x4,0x66,0x57, 0x7,0x53,0x7a, + 0x5,0x70,0x4f, 0x7,0x53,0x79, 0xf,0x67,0x78, 0x5,0x73,0x5f, + 0x5,0x73,0x5e, 0x5,0x73,0x5d, 0x7,0x5c,0x22, 0x7,0x5b,0x7e, + 0x4,0x6a,0x56, 0x7,0x5c,0x21, 0x5,0x76,0x29, 0x5,0x77,0x6b, + 0x7,0x5e,0x7d, 0x7,0x5e,0x7e, 0x7,0x61,0x42, 0x7,0x61,0x27, + 0x7,0x62,0x3f, 0x7,0x62,0x40, 0x7,0x62,0x41, 0x5,0x7a,0x6d, + 0x7,0x64,0x51, 0x7,0x65,0x39, 0x4,0x24,0x63, 0x6,0x33,0x25, + 0xf,0x2c,0x52, 0x6,0x39,0x73, 0x6,0x39,0x72, 0xf,0x31,0x30, + 0x6,0x42,0x3a, 0xf,0x36,0x71, 0x6,0x4b,0x69, 0x6,0x4b,0x67, + 0x5,0x3a,0x41, 0x6,0x4b,0x68, 0x7,0x25,0x5f, 0x4,0x51,0x53, + 0x4,0x51,0x52, 0x7,0x30,0x3a, 0x6,0x25,0x3c, 0x6,0x25,0x3d, + 0x5,0x24,0x66, 0x5,0x27,0x3a, 0x5,0x27,0x3b, 0x5,0x27,0x39, + 0x5,0x27,0x3c, 0x4,0x2a,0x4d, 0x5,0x2a,0x59, 0x5,0x2a,0x58, + 0x5,0x2a,0x57, 0x6,0x33,0x27, 0x6,0x33,0x28, 0x6,0x33,0x26, + 0xf,0x2c,0x53, 0xf,0x2c,0x54, 0x6,0x33,0x29, 0x5,0x2a,0x5a, + 0x6,0x39,0x74, 0x4,0x2e,0x42, 0x6,0x39,0x75, 0x6,0x42,0x3c, + 0xf,0x31,0x31, 0xf,0x31,0x32, 0xf,0x31,0x33, 0xf,0x31,0x35, + 0xf,0x31,0x36, 0xf,0x36,0x75, 0x4,0x33,0x46, 0x5,0x33,0x6e, + 0x6,0x42,0x3b, 0xf,0x36,0x72, 0xf,0x36,0x73, 0xf,0x36,0x76, + 0x6,0x4b,0x6b, 0x6,0x4b,0x6c, 0x6,0x4b,0x6a, 0xf,0x36,0x74, + 0x5,0x40,0x68, 0x5,0x40,0x67, 0x6,0x55,0x50, 0x4,0x3e,0x7e, + 0x6,0x55,0x4f, 0x5,0x40,0x69, 0xf,0x43,0x6d, 0x4,0x45,0x2f, + 0x6,0x5f,0x39, 0x6,0x5f,0x3a, 0xf,0x4a,0x30, 0xf,0x4a,0x31, + 0xf,0x4a,0x33, 0xf,0x4a,0x34, 0xf,0x4a,0x32, 0x4,0x4b,0x3c, + 0x7,0x25,0x60, 0x7,0x25,0x61, 0x5,0x55,0x72, 0x7,0x30,0x3c, + 0x5,0x55,0x71, 0x7,0x30,0x3b, 0x4,0x57,0x27, 0x4,0x57,0x28, + 0x5,0x5c,0x42, 0x5,0x5c,0x44, 0x7,0x40,0x6e, 0x5,0x5c,0x41, + 0x7,0x39,0x52, 0x5,0x62,0x66, 0x7,0x40,0x6f, 0x7,0x40,0x70, + 0x5,0x68,0x45, 0x5,0x68,0x46, 0x5,0x68,0x47, 0x5,0x68,0x48, + 0x7,0x48,0x2c, 0x7,0x4e,0x50, 0x7,0x4e,0x4f, 0x5,0x62,0x67, + 0x7,0x58,0x40, 0x7,0x58,0x41, 0xf,0x67,0x79, 0x7,0x5c,0x23, + 0x4,0x6b,0x73, 0x7,0x5f,0x21, 0x7,0x65,0x3a, 0x5,0x24,0x67, + 0x5,0x24,0x68, 0x6,0x2d,0x39, 0x6,0x2d,0x37, 0x6,0x2d,0x38, + 0x5,0x27,0x3d, 0x6,0x33,0x2b, 0x5,0x2a,0x5b, 0x4,0x2a,0x4f, + 0x6,0x30,0x36, 0x6,0x33,0x2a, 0x5,0x2e,0x77, 0x5,0x2e,0x78, + 0x6,0x39,0x76, 0x6,0x39,0x7a, 0x5,0x33,0x6f, 0x4,0x2e,0x44, + 0x6,0x39,0x77, 0x6,0x39,0x78, 0x6,0x39,0x79, 0x4,0x33,0x49, + 0x5,0x33,0x70, 0x6,0x42,0x3e, 0xf,0x36,0x79, 0x6,0x42,0x3d, + 0x4,0x39,0x3c, 0x6,0x4b,0x6d, 0x5,0x3a,0x42, 0x6,0x4b,0x6f, + 0x4,0x39,0x3b, 0xf,0x3d,0x4b, 0x6,0x4b,0x6e, 0xf,0x36,0x78, + 0x5,0x40,0x6a, 0x5,0x40,0x6d, 0x5,0x40,0x6b, 0x5,0x40,0x6c, + 0x5,0x40,0x6e, 0x6,0x55,0x53, 0xf,0x43,0x6e, 0x6,0x55,0x51, + 0x4,0x3f,0x21, 0x4,0x45,0x31, 0x4,0x45,0x33, 0x6,0x5f,0x3e, + 0xf,0x4a,0x35, 0x6,0x5f,0x3d, 0x5,0x47,0x5c, 0x6,0x5f,0x3f, + 0x6,0x5f,0x3b, 0x6,0x5f,0x3c, 0x7,0x25,0x63, 0x5,0x4e,0x5a, + 0x5,0x4e,0x5b, 0x5,0x4e,0x5c, 0x7,0x25,0x62, 0x5,0x55,0x76, + 0x5,0x55,0x78, 0x5,0x55,0x74, 0x4,0x51,0x58, 0x5,0x55,0x77, + 0x5,0x55,0x75, 0xf,0x56,0x36, 0x5,0x55,0x73, 0x7,0x30,0x3d, + 0x7,0x30,0x3e, 0x7,0x39,0x53, 0x7,0x30,0x3f, 0x4,0x57,0x29, + 0x5,0x62,0x68, 0x7,0x40,0x72, 0x7,0x40,0x73, 0x7,0x40,0x74, + 0x7,0x40,0x71, 0x5,0x68,0x4a, 0x5,0x68,0x49, 0x7,0x48,0x2d, + 0x4,0x63,0x6d, 0x5,0x6c,0x5b, 0x5,0x6c,0x5a, 0x7,0x4e,0x51, + 0x7,0x53,0x7c, 0x4,0x66,0x5c, 0x7,0x58,0x42, 0x5,0x77,0x6c, + 0x5,0x77,0x6d, 0x7,0x63,0x44, 0x7,0x65,0x58, 0x6,0x28,0x69, + 0xf,0x24,0x7d, 0x4,0x27,0x49, 0x5,0x27,0x3e, 0x4,0x27,0x47, + 0x6,0x2d,0x3b, 0x5,0x27,0x3f, 0x5,0x2a,0x5e, 0x5,0x2a,0x5c, + 0x5,0x2a,0x5d, 0x6,0x33,0x2d, 0x6,0x33,0x2c, 0xf,0x2c,0x55, + 0x5,0x2e,0x79, 0x6,0x3a,0x21, 0x6,0x3a,0x23, 0x4,0x2e,0x48, + 0x5,0x2e,0x7a, 0x6,0x39,0x7e, 0x6,0x39,0x7b, 0x4,0x2e,0x4a, + 0x6,0x3a,0x22, 0xf,0x31,0x37, 0xf,0x31,0x38, 0x6,0x3a,0x24, + 0x6,0x39,0x7c, 0x6,0x39,0x7d, 0x4,0x33,0x4c, 0x5,0x33,0x72, + 0x4,0x33,0x4a, 0x6,0x42,0x3f, 0xf,0x36,0x7a, 0xf,0x36,0x7b, + 0xf,0x36,0x7c, 0xf,0x36,0x7d, 0xf,0x37,0x21, 0xf,0x37,0x22, + 0x6,0x42,0x40, 0x6,0x42,0x41, 0x6,0x3a,0x25, 0x6,0x4b,0x74, + 0x6,0x4b,0x70, 0x5,0x3a,0x43, 0x4,0x39,0x3d, 0x6,0x4b,0x72, + 0x6,0x4b,0x73, 0xf,0x3d,0x4c, 0xf,0x3d,0x4d, 0x6,0x4b,0x71, + 0x6,0x55,0x54, 0x6,0x55,0x56, 0x5,0x40,0x70, 0x6,0x55,0x58, + 0x6,0x55,0x57, 0x6,0x55,0x55, 0xf,0x43,0x6f, 0xf,0x43,0x70, + 0x6,0x5f,0x41, 0x6,0x5f,0x40, 0x6,0x5f,0x4b, 0xf,0x4a,0x36, + 0x5,0x4e,0x5d, 0x7,0x25,0x64, 0x7,0x25,0x65, 0xf,0x50,0x55, + 0xf,0x50,0x56, 0xf,0x50,0x57, 0xf,0x50,0x58, 0xf,0x50,0x59, + 0xf,0x50,0x5a, 0x4,0x51,0x59, 0x7,0x30,0x44, 0x4,0x51,0x5b, + 0x7,0x30,0x40, 0x7,0x30,0x45, 0x5,0x55,0x7a, 0x5,0x55,0x79, + 0xf,0x56,0x37, 0xf,0x56,0x38, 0xf,0x56,0x39, 0xf,0x56,0x3a, + 0xf,0x56,0x3b, 0x7,0x30,0x43, 0x7,0x30,0x41, 0x4,0x57,0x2b, + 0x4,0x5c,0x23, 0x4,0x57,0x2a, 0x7,0x39,0x54, 0x5,0x5c,0x47, + 0x7,0x40,0x75, 0x5,0x5c,0x46, 0xf,0x5b,0x3b, 0xf,0x5b,0x3c, + 0x7,0x39,0x55, 0x7,0x39,0x56, 0x7,0x36,0x79, 0x5,0x5c,0x45, + 0x7,0x30,0x42, 0x7,0x39,0x57, 0x4,0x5c,0x22, 0x4,0x5c,0x21, + 0x7,0x40,0x76, 0x7,0x40,0x78, 0x7,0x40,0x77, 0xf,0x5f,0x62, + 0x7,0x40,0x79, 0x7,0x48,0x2e, 0x5,0x68,0x4b, 0x7,0x48,0x2f, + 0xf,0x63,0x28, 0xf,0x63,0x29, 0x5,0x6c,0x5d, 0x7,0x4e,0x53, + 0x5,0x6c,0x5c, 0x7,0x4e,0x55, 0xf,0x65,0x56, 0x7,0x4e,0x52, + 0x7,0x4e,0x54, 0xf,0x67,0x7b, 0x7,0x58,0x44, 0x5,0x73,0x60, + 0x7,0x58,0x43, 0x7,0x58,0x45, 0xf,0x67,0x7a, 0x7,0x5f,0x22, + 0x5,0x76,0x2a, 0x7,0x5f,0x23, 0x7,0x62,0x42, 0x5,0x22,0x7d, + 0xf,0x22,0x67, 0x6,0x28,0x6a, 0x4,0x24,0x64, 0x5,0x24,0x6a, + 0x4,0x24,0x66, 0x5,0x24,0x6b, 0x5,0x24,0x69, 0xf,0x24,0x7e, + 0x4,0x27,0x50, 0x6,0x2d,0x3c, 0x5,0x27,0x41, 0x4,0x27,0x4b, + 0x6,0x2d,0x40, 0x6,0x2d,0x42, 0x6,0x2d,0x3e, 0x5,0x27,0x42, + 0x5,0x27,0x43, 0x6,0x2d,0x41, 0x6,0x2d,0x3f, 0x5,0x27,0x40, + 0x6,0x2d,0x43, 0x6,0x2d,0x44, 0x6,0x33,0x39, 0x6,0x33,0x35, + 0x6,0x33,0x2e, 0x6,0x33,0x32, 0x4,0x2a,0x5e, 0x6,0x33,0x36, + 0x4,0x2a,0x5c, 0x6,0x33,0x3c, 0x5,0x2a,0x65, 0x6,0x33,0x33, + 0x5,0x2a,0x69, 0x4,0x2a,0x5b, 0x6,0x33,0x2f, 0x6,0x33,0x3b, + 0x5,0x2a,0x60, 0x5,0x2a,0x67, 0x5,0x2a,0x6b, 0x5,0x2a,0x61, + 0x5,0x2a,0x6a, 0x5,0x2a,0x68, 0x5,0x2a,0x63, 0x5,0x2a,0x6c, + 0x6,0x33,0x30, 0x5,0x2a,0x5f, 0x5,0x2a,0x66, 0x5,0x2a,0x62, + 0x5,0x2a,0x64, 0xf,0x2c,0x56, 0xf,0x2c,0x58, 0x6,0x33,0x37, + 0x6,0x33,0x3a, 0x6,0x33,0x34, 0x4,0x2e,0x50, 0x5,0x2f,0x24, + 0x3,0x2e,0x5a, 0x4,0x2e,0x4c, 0x5,0x2e,0x7b, 0x6,0x3a,0x26, + 0x4,0x2e,0x4e, 0x5,0x2f,0x22, 0x5,0x2e,0x7c, 0x6,0x3a,0x28, + 0x4,0x2e,0x4b, 0x6,0x3a,0x29, 0x5,0x2f,0x23, 0x6,0x3a,0x2a, + 0x4,0x2e,0x53, 0x6,0x3a,0x2c, 0x5,0x2e,0x7e, 0x5,0x2f,0x25, + 0x6,0x3a,0x2b, 0xf,0x31,0x39, 0xf,0x31,0x3a, 0xf,0x31,0x3b, + 0xf,0x31,0x3c, 0xf,0x31,0x3d, 0x6,0x3a,0x27, 0x5,0x2f,0x21, + 0x5,0x2e,0x7d, 0x4,0x2e,0x54, 0x4,0x33,0x55, 0x6,0x42,0x53, + 0x6,0x42,0x46, 0x6,0x42,0x4d, 0x5,0x33,0x74, 0x5,0x33,0x73, + 0x5,0x33,0x7d, 0x4,0x33,0x54, 0x6,0x42,0x47, 0x6,0x42,0x44, + 0x6,0x42,0x42, 0x5,0x33,0x7a, 0x5,0x33,0x7b, 0x5,0x33,0x75, + 0x6,0x42,0x4a, 0x5,0x33,0x78, 0x6,0x42,0x54, 0x5,0x33,0x79, + 0x6,0x42,0x43, 0x6,0x42,0x4f, 0x6,0x42,0x4b, 0x6,0x42,0x50, + 0xf,0x37,0x25, 0x6,0x42,0x52, 0x6,0x42,0x4c, 0x6,0x42,0x49, + 0x6,0x42,0x51, 0xf,0x37,0x26, 0x5,0x33,0x7e, 0x6,0x42,0x45, + 0x6,0x42,0x4e, 0x5,0x33,0x77, 0x5,0x33,0x7c, 0x5,0x3a,0x49, + 0x5,0x3a,0x4c, 0x6,0x4b,0x79, 0x6,0x4c,0x23, 0x4,0x33,0x53, + 0x6,0x4b,0x78, 0x5,0x3a,0x4b, 0x6,0x4b,0x7d, 0x6,0x4c,0x21, + 0x5,0x3a,0x46, 0x6,0x4c,0x26, 0x6,0x4b,0x77, 0x4,0x39,0x4f, + 0x5,0x3a,0x4a, 0x5,0x3a,0x48, 0x5,0x3a,0x44, 0x4,0x39,0x4e, + 0x5,0x40,0x71, 0x6,0x4c,0x25, 0x5,0x40,0x7e, 0x4,0x39,0x40, + 0x6,0x4b,0x7e, 0x5,0x3a,0x4d, 0x6,0x4b,0x7b, 0x5,0x3a,0x4e, + 0x6,0x4c,0x28, 0x5,0x3a,0x45, 0x5,0x3a,0x47, 0xf,0x3d,0x4f, + 0xf,0x3d,0x50, 0xf,0x3d,0x51, 0x6,0x4b,0x7c, 0x6,0x4c,0x27, + 0x6,0x4b,0x76, 0x6,0x4c,0x24, 0x6,0x4c,0x22, 0x4,0x39,0x44, + 0x4,0x39,0x50, 0x5,0x3a,0x4f, 0x4,0x39,0x3e, 0x6,0x55,0x5b, + 0x6,0x55,0x5e, 0x6,0x55,0x5a, 0x4,0x3f,0x2a, 0x5,0x40,0x78, + 0x6,0x55,0x5c, 0x5,0x40,0x77, 0x6,0x55,0x5f, 0x5,0x40,0x75, + 0x6,0x55,0x59, 0x4,0x3f,0x23, 0x4,0x3f,0x28, 0x4,0x3f,0x31, + 0x4,0x3f,0x2e, 0x5,0x40,0x7a, 0x6,0x55,0x62, 0x5,0x40,0x76, + 0x4,0x3f,0x2f, 0x4,0x3f,0x24, 0x6,0x55,0x64, 0x5,0x40,0x79, + 0x5,0x40,0x72, 0x5,0x40,0x7c, 0x6,0x55,0x66, 0x6,0x55,0x5d, + 0xf,0x43,0x71, 0xf,0x43,0x72, 0xf,0x43,0x73, 0x6,0x4b,0x75, + 0x6,0x55,0x63, 0x6,0x53,0x35, 0x5,0x40,0x73, 0x5,0x40,0x7d, + 0x5,0x40,0x74, 0x6,0x55,0x65, 0x5,0x47,0x60, 0x4,0x45,0x45, + 0x6,0x5f,0x44, 0x4,0x45,0x3e, 0x5,0x47,0x63, 0x6,0x5f,0x48, + 0x5,0x47,0x65, 0x5,0x47,0x66, 0x6,0x5f,0x49, 0x4,0x4b,0x4f, + 0x6,0x5f,0x4e, 0x6,0x5f,0x46, 0x6,0x5f,0x4f, 0x7,0x25,0x6c, + 0x6,0x5f,0x47, 0x5,0x47,0x67, 0x5,0x47,0x64, 0x6,0x5f,0x43, + 0x6,0x5f,0x4a, 0x6,0x5f,0x45, 0x5,0x47,0x62, 0x6,0x5f,0x42, + 0x5,0x47,0x5f, 0x5,0x47,0x5e, 0x5,0x47,0x5d, 0x7,0x25,0x66, + 0xf,0x4a,0x37, 0xf,0x4a,0x38, 0xf,0x4a,0x39, 0xf,0x4a,0x3a, + 0xf,0x4a,0x3b, 0xf,0x4a,0x3c, 0xf,0x4a,0x3d, 0x4,0x45,0x3a, + 0x6,0x5f,0x4d, 0x6,0x5f,0x4c, 0x5,0x47,0x69, 0x4,0x45,0x3b, + 0x4,0x4b,0x50, 0x4,0x4b,0x4c, 0x4,0x4b,0x3e, 0x5,0x4e,0x62, + 0x5,0x4e,0x67, 0x4,0x4b,0x4e, 0x7,0x25,0x6b, 0x5,0x4e,0x6c, + 0x5,0x4e,0x65, 0x4,0x4b,0x41, 0x7,0x25,0x70, 0x4,0x4b,0x40, + 0x4,0x51,0x65, 0x7,0x30,0x4d, 0x5,0x4e,0x64, 0x5,0x56,0x21, + 0x5,0x4e,0x66, 0x7,0x25,0x6d, 0x5,0x4e,0x6a, 0x7,0x25,0x72, + 0x4,0x4b,0x49, 0x4,0x4b,0x4b, 0x4,0x4b,0x46, 0x5,0x4e,0x5f, + 0x5,0x4e,0x6b, 0x7,0x25,0x67, 0x7,0x25,0x68, 0x7,0x25,0x6a, + 0x4,0x4b,0x4a, 0x5,0x4e,0x63, 0x7,0x25,0x6e, 0x5,0x4e,0x5e, + 0x5,0x4e,0x61, 0x5,0x55,0x7b, 0x5,0x4e,0x69, 0x5,0x4e,0x68, + 0x7,0x25,0x69, 0xf,0x50,0x5b, 0xf,0x50,0x5c, 0xf,0x50,0x5d, + 0x7,0x25,0x6f, 0x4,0x4b,0x48, 0x5,0x56,0x2a, 0x5,0x56,0x2b, + 0x4,0x51,0x5e, 0x5,0x56,0x25, 0x5,0x56,0x23, 0x5,0x56,0x27, + 0x5,0x55,0x7d, 0x4,0x51,0x63, 0x5,0x56,0x29, 0x5,0x55,0x7e, + 0x5,0x56,0x26, 0x5,0x56,0x24, 0x4,0x51,0x62, 0x7,0x30,0x46, + 0x7,0x30,0x4e, 0x7,0x30,0x4f, 0x7,0x30,0x4b, 0x7,0x30,0x47, + 0x5,0x4e,0x6d, 0x4,0x51,0x67, 0x5,0x55,0x7c, 0x7,0x30,0x49, + 0xf,0x56,0x3d, 0x7,0x30,0x51, 0x7,0x30,0x4c, 0x5,0x56,0x2c, + 0x4,0x51,0x66, 0x5,0x47,0x68, 0x5,0x56,0x28, 0x4,0x5c,0x2b, + 0x5,0x5c,0x48, 0x5,0x5c,0x4b, 0x4,0x57,0x35, 0x4,0x57,0x36, + 0x7,0x30,0x52, 0x7,0x39,0x5e, 0x7,0x39,0x59, 0x5,0x5c,0x4a, + 0x7,0x39,0x5a, 0x5,0x5c,0x4c, 0x7,0x39,0x64, 0x5,0x5c,0x49, + 0x7,0x41,0x22, 0x7,0x39,0x5f, 0x7,0x39,0x60, 0x7,0x39,0x5d, + 0x4,0x57,0x37, 0x7,0x39,0x63, 0x5,0x5c,0x4f, 0x7,0x30,0x48, + 0x5,0x5c,0x4e, 0x7,0x39,0x61, 0x7,0x39,0x5c, 0x7,0x39,0x5b, + 0xf,0x5b,0x3e, 0xf,0x5b,0x3f, 0xf,0x5b,0x40, 0x7,0x39,0x62, + 0x7,0x39,0x58, 0x4,0x5c,0x28, 0x7,0x41,0x23, 0x7,0x40,0x7e, + 0x5,0x62,0x6e, 0x4,0x5c,0x2c, 0x5,0x62,0x6b, 0x7,0x40,0x7b, + 0x7,0x40,0x7c, 0x5,0x62,0x70, 0x4,0x5c,0x24, 0x5,0x62,0x6c, + 0x5,0x62,0x6f, 0x5,0x62,0x71, 0x5,0x62,0x6a, 0xf,0x5f,0x63, + 0xf,0x5f,0x64, 0x7,0x41,0x24, 0x7,0x41,0x25, 0x7,0x40,0x7d, + 0x5,0x62,0x6d, 0x7,0x40,0x7a, 0x7,0x41,0x21, 0x5,0x68,0x4f, + 0x5,0x68,0x4c, 0x5,0x68,0x51, 0x4,0x60,0x3e, 0x5,0x68,0x50, + 0x4,0x60,0x3b, 0x5,0x68,0x54, 0x5,0x68,0x4e, 0x7,0x48,0x32, + 0x4,0x60,0x3a, 0x7,0x48,0x34, 0x4,0x60,0x3c, 0x4,0x60,0x3d, + 0x7,0x48,0x30, 0x5,0x68,0x4d, 0x7,0x48,0x31, 0x5,0x68,0x53, + 0x5,0x68,0x52, 0xf,0x63,0x2a, 0x7,0x4b,0x5d, 0x7,0x48,0x35, + 0x7,0x48,0x33, 0x5,0x6c,0x60, 0x5,0x6c,0x62, 0x5,0x6c,0x5e, + 0x7,0x4e,0x58, 0x5,0x6c,0x61, 0x5,0x6c,0x63, 0x7,0x4e,0x57, + 0xf,0x65,0x57, 0x4,0x63,0x72, 0x5,0x6c,0x5f, 0x4,0x63,0x73, + 0x7,0x4e,0x56, 0x7,0x54,0x22, 0x5,0x70,0x52, 0x5,0x70,0x54, + 0x5,0x70,0x53, 0x5,0x70,0x55, 0x7,0x53,0x7e, 0x7,0x54,0x23, + 0x7,0x53,0x7d, 0x4,0x68,0x79, 0x5,0x73,0x63, 0x7,0x58,0x46, + 0x5,0x73,0x61, 0x5,0x73,0x62, 0x7,0x58,0x47, 0x5,0x73,0x65, + 0x4,0x6a,0x59, 0x7,0x54,0x21, 0x5,0x73,0x64, 0x7,0x59,0x33, + 0x5,0x73,0x66, 0x5,0x76,0x2b, 0x7,0x5c,0x26, 0x4,0x6a,0x58, + 0x7,0x5c,0x25, 0x7,0x5f,0x24, 0x4,0x6c,0x74, 0x7,0x62,0x43, + 0x7,0x62,0x45, 0x7,0x62,0x44, 0xf,0x6c,0x66, 0x5,0x7b,0x43, + 0x5,0x27,0x44, 0x4,0x2a,0x60, 0x4,0x2a,0x61, 0x4,0x2e,0x56, + 0x5,0x2f,0x28, 0x5,0x2f,0x27, 0x6,0x3a,0x2f, 0x6,0x3a,0x30, + 0x4,0x33,0x58, 0x5,0x34,0x22, 0xf,0x37,0x27, 0x5,0x3a,0x52, + 0x4,0x39,0x51, 0x5,0x3a,0x53, 0x5,0x3a,0x51, 0x5,0x3a,0x55, + 0x5,0x3a,0x50, 0x6,0x4c,0x29, 0x5,0x3a,0x54, 0x5,0x41,0x23, + 0x5,0x41,0x22, 0x5,0x41,0x21, 0x6,0x5f,0x51, 0x6,0x5f,0x52, + 0x4,0x45,0x47, 0x4,0x45,0x48, 0x5,0x47,0x6c, 0x5,0x47,0x6a, + 0x5,0x47,0x6b, 0x4,0x45,0x49, 0x6,0x5f,0x50, 0x4,0x45,0x4b, + 0xf,0x4d,0x3f, 0x5,0x4e,0x6e, 0x4,0x4b,0x52, 0x7,0x25,0x75, + 0x5,0x4e,0x6f, 0x4,0x4b,0x51, 0x7,0x25,0x74, 0x4,0x4b,0x53, + 0x4,0x51,0x69, 0x4,0x51,0x68, 0x4,0x51,0x6a, 0x5,0x56,0x2d, + 0x5,0x62,0x75, 0x7,0x39,0x65, 0x5,0x5a,0x75, 0x5,0x5c,0x50, + 0x5,0x62,0x74, 0x5,0x62,0x73, 0x5,0x62,0x72, 0x5,0x68,0x57, + 0x5,0x68,0x56, 0x5,0x68,0x55, 0x5,0x68,0x58, 0x7,0x48,0x36, + 0x7,0x48,0x37, 0x4,0x6a,0x5a, 0x7,0x66,0x3f, 0x7,0x66,0x49, + 0x6,0x26,0x3f, 0x6,0x28,0x6b, 0x6,0x28,0x6c, 0x6,0x33,0x41, + 0x6,0x33,0x3f, 0x6,0x33,0x40, 0x5,0x2a,0x6e, 0x5,0x2f,0x2a, + 0x5,0x2f,0x2b, 0x6,0x3a,0x33, 0xf,0x31,0x3f, 0xf,0x31,0x40, + 0x6,0x3a,0x31, 0x6,0x3a,0x32, 0x5,0x2f,0x29, 0x5,0x34,0x23, + 0x5,0x34,0x24, 0x4,0x33,0x5c, 0x6,0x42,0x59, 0x6,0x42,0x57, + 0x5,0x34,0x25, 0x6,0x42,0x55, 0x6,0x42,0x5b, 0x6,0x42,0x56, + 0x6,0x42,0x5a, 0x6,0x42,0x58, 0x4,0x39,0x52, 0x6,0x4c,0x2c, + 0xf,0x3d,0x52, 0x6,0x4c,0x2a, 0xf,0x3d,0x53, 0x5,0x41,0x24, + 0x4,0x3f,0x32, 0x6,0x55,0x69, 0x4,0x3f,0x35, 0x4,0x3f,0x34, + 0x6,0x55,0x67, 0x5,0x3a,0x56, 0x4,0x3f,0x36, 0xf,0x43,0x75, + 0x6,0x55,0x68, 0x5,0x47,0x6d, 0x5,0x47,0x6e, 0x6,0x5f,0x53, + 0x5,0x47,0x6f, 0x5,0x47,0x70, 0xf,0x4a,0x3e, 0x7,0x25,0x78, + 0x4,0x4b,0x54, 0x7,0x25,0x76, 0x7,0x25,0x77, 0xf,0x50,0x61, + 0x7,0x25,0x79, 0x7,0x30,0x54, 0x4,0x51,0x6b, 0xf,0x56,0x3f, + 0x7,0x30,0x53, 0x5,0x5c,0x51, 0x5,0x5c,0x52, 0x7,0x39,0x66, + 0x7,0x39,0x67, 0x5,0x73,0x67, 0x5,0x76,0x2c, 0x5,0x22,0x7e, + 0x6,0x25,0x3e, 0x4,0x24,0x67, 0x6,0x28,0x6d, 0x5,0x24,0x6d, + 0x5,0x24,0x6c, 0xf,0x25,0x21, 0xf,0x25,0x22, 0x5,0x27,0x45, + 0x4,0x27,0x54, 0xf,0x28,0x30, 0xf,0x28,0x31, 0xf,0x28,0x32, + 0xf,0x28,0x33, 0x6,0x2d,0x47, 0xf,0x28,0x35, 0x4,0x2a,0x65, + 0x4,0x2a,0x63, 0x6,0x33,0x45, 0x5,0x2a,0x70, 0xf,0x2c,0x59, + 0xf,0x2c,0x5a, 0xf,0x2c,0x5b, 0xf,0x2c,0x5d, 0xf,0x2c,0x5e, + 0xf,0x2c,0x5f, 0xf,0x2c,0x61, 0xf,0x2c,0x63, 0x6,0x33,0x43, + 0x6,0x33,0x44, 0xf,0x2c,0x64, 0xf,0x2c,0x60, 0x6,0x33,0x42, + 0x5,0x2a,0x6f, 0x5,0x2a,0x71, 0x4,0x2e,0x60, 0x5,0x2f,0x33, + 0x6,0x3a,0x34, 0x6,0x33,0x46, 0x6,0x3a,0x35, 0x5,0x2f,0x2f, + 0x6,0x3a,0x39, 0x5,0x2f,0x2c, 0x5,0x2f,0x31, 0x5,0x2f,0x30, + 0x4,0x2e,0x5b, 0x4,0x2e,0x5d, 0x5,0x2f,0x36, 0x5,0x2f,0x32, + 0x5,0x2f,0x35, 0xf,0x31,0x3e, 0x4,0x2e,0x59, 0x5,0x2f,0x37, + 0x6,0x3a,0x38, 0xf,0x31,0x42, 0xf,0x31,0x43, 0xf,0x31,0x45, + 0xf,0x31,0x46, 0x4,0x2e,0x5a, 0x5,0x2f,0x2d, 0x6,0x3a,0x37, + 0xf,0x31,0x48, 0xf,0x31,0x41, 0x5,0x34,0x26, 0x5,0x2f,0x2e, + 0x6,0x3a,0x36, 0x5,0x34,0x2c, 0x5,0x34,0x28, 0x6,0x42,0x61, + 0x6,0x42,0x5f, 0x5,0x34,0x31, 0x5,0x34,0x30, 0x5,0x34,0x2a, + 0x6,0x42,0x60, 0x5,0x34,0x34, 0x5,0x34,0x32, 0x5,0x2f,0x38, + 0x5,0x34,0x2e, 0x5,0x34,0x27, 0x5,0x34,0x29, 0x5,0x34,0x2d, + 0xf,0x37,0x28, 0xf,0x37,0x29, 0xf,0x37,0x2a, 0xf,0x37,0x2b, + 0xf,0x37,0x2e, 0xf,0x37,0x2f, 0xf,0x37,0x31, 0xf,0x37,0x32, + 0xf,0x37,0x33, 0x6,0x42,0x5e, 0x6,0x42,0x5c, 0x6,0x4c,0x2e, + 0xf,0x37,0x30, 0x5,0x34,0x2b, 0xf,0x37,0x2c, 0x6,0x42,0x62, + 0x5,0x34,0x2f, 0x5,0x34,0x33, 0x6,0x42,0x5d, 0x5,0x3a,0x58, + 0x5,0x3a,0x5e, 0x5,0x3a,0x57, 0x5,0x3a,0x5b, 0x4,0x39,0x56, + 0x6,0x4c,0x35, 0x4,0x39,0x57, 0x4,0x39,0x55, 0x5,0x3a,0x5c, + 0x5,0x3a,0x5d, 0x6,0x4c,0x31, 0x5,0x3a,0x5a, 0x5,0x3a,0x5f, + 0xf,0x3d,0x54, 0xf,0x3d,0x55, 0xf,0x3d,0x56, 0xf,0x3d,0x57, + 0x6,0x4c,0x34, 0x6,0x4c,0x30, 0x6,0x4c,0x32, 0x5,0x3a,0x61, + 0x5,0x3a,0x60, 0x5,0x41,0x28, 0x6,0x55,0x71, 0x4,0x3f,0x37, + 0x5,0x41,0x29, 0x6,0x55,0x6a, 0x6,0x55,0x6c, 0x5,0x41,0x25, + 0x6,0x55,0x6e, 0x4,0x3f,0x41, 0x4,0x3f,0x43, 0x6,0x55,0x6f, + 0x6,0x55,0x72, 0x5,0x41,0x26, 0x5,0x41,0x27, 0x6,0x55,0x6d, + 0xf,0x43,0x77, 0xf,0x43,0x78, 0xf,0x43,0x79, 0xf,0x43,0x7a, + 0xf,0x43,0x7b, 0xf,0x43,0x7c, 0xf,0x43,0x7d, 0xf,0x43,0x7e, + 0xf,0x44,0x21, 0xf,0x44,0x22, 0xf,0x44,0x23, 0xf,0x44,0x24, + 0xf,0x44,0x26, 0x6,0x55,0x70, 0x6,0x55,0x73, 0x6,0x5f,0x5b, + 0x5,0x47,0x78, 0x6,0x5f,0x54, 0x7,0x25,0x7e, 0x5,0x47,0x7a, + 0x6,0x5f,0x56, 0x4,0x45,0x52, 0x5,0x47,0x73, 0x5,0x47,0x72, + 0x6,0x5f,0x57, 0x5,0x47,0x7b, 0x6,0x5f,0x59, 0x6,0x5f,0x5a, + 0x5,0x47,0x75, 0x6,0x5f,0x55, 0x5,0x47,0x71, 0x5,0x47,0x7d, + 0x6,0x5f,0x58, 0xf,0x4a,0x41, 0xf,0x4a,0x43, 0xf,0x4a,0x44, + 0xf,0x4a,0x45, 0xf,0x4a,0x46, 0xf,0x4a,0x47, 0xf,0x4a,0x48, + 0xf,0x4a,0x49, 0xf,0x4a,0x4b, 0xf,0x4a,0x4c, 0xf,0x4a,0x4d, + 0xf,0x4a,0x4f, 0xf,0x4a,0x50, 0xf,0x4a,0x51, 0xf,0x4a,0x52, + 0x4,0x45,0x54, 0xf,0x4a,0x40, 0x5,0x47,0x77, 0x5,0x47,0x7c, + 0x5,0x47,0x79, 0x5,0x47,0x74, 0xf,0x50,0x64, 0x4,0x4b,0x5a, + 0x5,0x4e,0x72, 0x5,0x4e,0x73, 0x7,0x26,0x21, 0x5,0x4e,0x70, + 0x4,0x45,0x50, 0x7,0x26,0x25, 0x5,0x4e,0x75, 0x7,0x25,0x7d, + 0xf,0x50,0x62, 0xf,0x50,0x63, 0xf,0x50,0x65, 0xf,0x50,0x66, + 0xf,0x50,0x68, 0x7,0x26,0x22, 0x7,0x25,0x7a, 0x7,0x26,0x23, + 0x5,0x4e,0x71, 0x5,0x4e,0x74, 0x7,0x25,0x7c, 0xf,0x4a,0x4a, + 0x7,0x30,0x58, 0x5,0x56,0x31, 0x5,0x56,0x2e, 0x5,0x56,0x32, + 0x7,0x30,0x55, 0x4,0x51,0x71, 0x4,0x51,0x73, 0x5,0x56,0x34, + 0x4,0x51,0x72, 0x7,0x30,0x56, 0x7,0x30,0x5a, 0x4,0x51,0x6f, + 0x7,0x30,0x57, 0xf,0x56,0x41, 0xf,0x56,0x42, 0xf,0x56,0x43, + 0x5,0x56,0x30, 0xf,0x56,0x44, 0x5,0x56,0x2f, 0xf,0x56,0x45, + 0xf,0x56,0x46, 0xf,0x56,0x47, 0xf,0x56,0x49, 0xf,0x56,0x4b, + 0xf,0x56,0x4c, 0xf,0x56,0x4d, 0x5,0x5c,0x56, 0x7,0x39,0x68, + 0x5,0x5c,0x54, 0x7,0x39,0x6f, 0x7,0x39,0x6a, 0x5,0x5c,0x53, + 0x4,0x57,0x3a, 0x7,0x39,0x69, 0x5,0x5c,0x55, 0x4,0x57,0x3d, + 0x7,0x39,0x6c, 0x4,0x57,0x3c, 0x5,0x56,0x35, 0x5,0x5c,0x58, + 0x5,0x5c,0x57, 0x5,0x5c,0x59, 0xf,0x5b,0x41, 0xf,0x5b,0x42, + 0xf,0x5b,0x43, 0xf,0x5b,0x44, 0xf,0x5b,0x45, 0xf,0x5b,0x46, + 0xf,0x5b,0x47, 0xf,0x5b,0x48, 0xf,0x5b,0x49, 0x7,0x39,0x6b, + 0x7,0x39,0x6e, 0xf,0x56,0x4a, 0x7,0x41,0x29, 0x5,0x62,0x76, + 0x5,0x62,0x78, 0x7,0x41,0x26, 0x7,0x41,0x28, 0x5,0x62,0x77, + 0x4,0x5c,0x30, 0x5,0x62,0x7a, 0x7,0x41,0x27, 0x5,0x62,0x79, + 0x7,0x41,0x2a, 0xf,0x5f,0x65, 0xf,0x5f,0x66, 0xf,0x5f,0x67, + 0xf,0x5f,0x68, 0xf,0x5f,0x69, 0x4,0x60,0x40, 0x5,0x68,0x5a, + 0x5,0x68,0x59, 0xf,0x63,0x2b, 0xf,0x63,0x2c, 0xf,0x63,0x2d, + 0xf,0x63,0x2e, 0x7,0x48,0x3a, 0x7,0x48,0x38, 0x7,0x48,0x39, + 0xf,0x63,0x2f, 0x5,0x6c,0x65, 0x5,0x6c,0x66, 0x7,0x4e,0x59, + 0x7,0x4e,0x5a, 0x5,0x6c,0x64, 0x5,0x6c,0x67, 0x4,0x60,0x41, + 0x7,0x4e,0x5b, 0xf,0x65,0x5a, 0xf,0x65,0x5b, 0xf,0x65,0x5c, + 0xf,0x65,0x5d, 0x7,0x4e,0x5d, 0x5,0x70,0x56, 0x5,0x70,0x57, + 0xf,0x67,0x7d, 0x7,0x54,0x24, 0x4,0x66,0x62, 0xf,0x67,0x7c, + 0x5,0x73,0x68, 0x7,0x58,0x48, 0x5,0x73,0x69, 0xf,0x69,0x5b, + 0xf,0x69,0x5c, 0x7,0x58,0x49, 0x5,0x73,0x6a, 0x5,0x76,0x2e, + 0x4,0x6a,0x5b, 0x5,0x76,0x2d, 0x5,0x76,0x2f, 0xf,0x6a,0x65, + 0x7,0x5c,0x28, 0x7,0x5c,0x27, 0x7,0x5f,0x26, 0x7,0x5f,0x25, + 0x7,0x5f,0x27, 0x7,0x62,0x46, 0x5,0x7a,0x2d, 0x5,0x7a,0x6e, + 0x4,0x6d,0x75, 0x7,0x64,0x53, 0x7,0x65,0x3b, 0x5,0x7c,0x43, + 0x6,0x22,0x27, 0x6,0x25,0x40, 0x6,0x28,0x6e, 0xf,0x22,0x68, + 0x6,0x2d,0x48, 0xf,0x25,0x24, 0x6,0x33,0x47, 0x6,0x33,0x49, + 0xf,0x28,0x36, 0xf,0x28,0x38, 0xf,0x28,0x39, 0xf,0x28,0x3a, + 0xf,0x28,0x3b, 0xf,0x28,0x3d, 0xf,0x28,0x37, 0x6,0x31,0x5a, + 0x5,0x2f,0x39, 0x6,0x3a,0x3a, 0x4,0x2e,0x63, 0x5,0x2f,0x3a, + 0x6,0x3a,0x3b, 0x6,0x33,0x4b, 0xf,0x2c,0x65, 0xf,0x2c,0x66, + 0xf,0x2c,0x67, 0xf,0x2c,0x68, 0xf,0x2c,0x69, 0xf,0x31,0x49, + 0xf,0x31,0x4b, 0xf,0x31,0x4e, 0x6,0x3a,0x3e, 0x6,0x3a,0x3f, + 0x6,0x3a,0x3d, 0x6,0x3a,0x40, 0x6,0x3a,0x3c, 0xf,0x2c,0x6a, + 0x4,0x2a,0x68, 0x5,0x34,0x36, 0x6,0x3a,0x41, 0xf,0x31,0x4a, + 0xf,0x31,0x4c, 0xf,0x31,0x4d, 0xf,0x31,0x4f, 0xf,0x31,0x50, + 0xf,0x31,0x51, 0xf,0x31,0x52, 0xf,0x31,0x53, 0xf,0x31,0x54, + 0xf,0x37,0x37, 0x6,0x42,0x63, 0x5,0x34,0x35, 0x6,0x4c,0x38, + 0x5,0x3a,0x62, 0x6,0x4c,0x39, 0x6,0x4c,0x3a, 0x6,0x4c,0x3c, + 0x5,0x3a,0x63, 0x6,0x4c,0x3d, 0x6,0x4c,0x3b, 0x6,0x4c,0x36, + 0x6,0x4c,0x37, 0xf,0x37,0x34, 0xf,0x37,0x36, 0xf,0x37,0x38, + 0xf,0x3d,0x5b, 0xf,0x37,0x35, 0x6,0x55,0x75, 0x5,0x41,0x2b, + 0x5,0x41,0x2a, 0x5,0x41,0x2c, 0x6,0x4c,0x3f, 0x4,0x3f,0x48, + 0xf,0x3d,0x58, 0xf,0x3d,0x59, 0xf,0x3d,0x5a, 0xf,0x3d,0x5c, + 0xf,0x3d,0x5d, 0xf,0x3d,0x5e, 0xf,0x3d,0x5f, 0xf,0x3d,0x62, + 0xf,0x3d,0x63, 0xf,0x3d,0x64, 0xf,0x44,0x28, 0xf,0x44,0x2a, + 0xf,0x3d,0x61, 0x6,0x55,0x74, 0x5,0x48,0x23, 0x6,0x5f,0x5f, + 0x6,0x5f,0x60, 0x4,0x45,0x56, 0x6,0x5f,0x63, 0x6,0x5f,0x61, + 0xf,0x44,0x27, 0xf,0x44,0x29, 0xf,0x44,0x2b, 0xf,0x44,0x2c, + 0xf,0x44,0x2d, 0xf,0x44,0x2e, 0xf,0x44,0x2f, 0xf,0x44,0x30, + 0xf,0x44,0x31, 0xf,0x44,0x32, 0x6,0x5f,0x5d, 0x6,0x5f,0x62, + 0x5,0x48,0x21, 0x6,0x5f,0x5e, 0x4,0x4b,0x5f, 0x7,0x26,0x26, + 0x6,0x5f,0x5c, 0x6,0x5f,0x64, 0xf,0x4a,0x53, 0xf,0x4a,0x55, + 0xf,0x4a,0x56, 0xf,0x4a,0x57, 0xf,0x4a,0x58, 0xf,0x4a,0x5a, + 0x7,0x26,0x28, 0x5,0x56,0x38, 0x7,0x30,0x5c, 0x5,0x56,0x36, + 0x7,0x30,0x5d, 0x4,0x51,0x77, 0x5,0x56,0x39, 0x5,0x56,0x37, + 0x5,0x56,0x3a, 0x7,0x26,0x2a, 0x7,0x30,0x5b, 0xf,0x50,0x6a, + 0xf,0x50,0x69, 0xf,0x56,0x51, 0x4,0x57,0x43, 0x5,0x5c,0x5a, + 0x7,0x39,0x73, 0x4,0x57,0x44, 0x7,0x39,0x76, 0x7,0x39,0x74, + 0x7,0x30,0x5e, 0xf,0x50,0x6b, 0xf,0x56,0x4e, 0xf,0x56,0x4f, + 0xf,0x56,0x50, 0xf,0x56,0x52, 0x7,0x39,0x71, 0x7,0x39,0x75, + 0x7,0x39,0x72, 0x7,0x39,0x70, 0xf,0x5b,0x4d, 0xf,0x5b,0x4f, + 0x4,0x5c,0x34, 0x5,0x62,0x7b, 0x7,0x41,0x2c, 0xf,0x5b,0x4b, + 0xf,0x5b,0x4c, 0xf,0x5b,0x4e, 0xf,0x5b,0x50, 0xf,0x5b,0x51, + 0xf,0x5b,0x52, 0x7,0x41,0x2b, 0x4,0x5c,0x33, 0x5,0x68,0x5b, + 0x7,0x48,0x3c, 0x7,0x48,0x3d, 0xf,0x5f,0x6a, 0xf,0x5f,0x6b, + 0x5,0x6c,0x68, 0x4,0x63,0x77, 0xf,0x65,0x5e, 0x7,0x4e,0x5e, + 0x7,0x54,0x26, 0x7,0x54,0x25, 0xf,0x65,0x5f, 0x4,0x68,0x7d, + 0x7,0x58,0x4a, 0x7,0x58,0x4b, 0x7,0x5c,0x29, 0xf,0x69,0x5d, + 0x7,0x5c,0x2a, 0x7,0x5c,0x2b, 0x5,0x77,0x6e, 0x7,0x5c,0x2c, + 0x5,0x77,0x6f, 0xf,0x6a,0x67, 0x5,0x79,0x32, 0x7,0x62,0x49, + 0x7,0x62,0x47, 0x7,0x63,0x5d, 0xf,0x6c,0x67, 0xf,0x22,0x69, + 0x6,0x33,0x4d, 0x6,0x42,0x64, 0x4,0x39,0x5b, 0x6,0x4c,0x40, + 0x6,0x55,0x76, 0x6,0x5f,0x65, 0x7,0x26,0x2c, 0x7,0x30,0x5f, + 0x7,0x30,0x60, 0x7,0x41,0x2d, 0x5,0x73,0x6b, 0x7,0x61,0x28, + 0x4,0x21,0x7e, 0x6,0x25,0x41, 0xf,0x22,0x6a, 0x6,0x28,0x6f, + 0xf,0x25,0x25, 0x6,0x28,0x70, 0x4,0x27,0x55, 0x5,0x27,0x48, + 0x4,0x27,0x57, 0x5,0x27,0x47, 0xf,0x28,0x3e, 0xf,0x28,0x3f, + 0xf,0x28,0x40, 0xf,0x28,0x41, 0xf,0x28,0x42, 0x6,0x2d,0x4a, + 0x6,0x33,0x51, 0x6,0x33,0x54, 0x5,0x2a,0x74, 0x5,0x2a,0x72, + 0x4,0x2a,0x70, 0x5,0x2a,0x75, 0x6,0x33,0x56, 0x6,0x33,0x50, + 0x6,0x33,0x52, 0x4,0x2a,0x6d, 0x6,0x33,0x4f, 0x5,0x2a,0x73, + 0x6,0x33,0x57, 0xf,0x2c,0x6b, 0xf,0x2c,0x6c, 0xf,0x2c,0x6e, + 0xf,0x2c,0x6f, 0xf,0x2c,0x70, 0x6,0x33,0x55, 0x6,0x33,0x53, + 0x6,0x33,0x4e, 0x5,0x2f,0x3c, 0x5,0x2f,0x3b, 0x6,0x3a,0x45, + 0x5,0x2f,0x3d, 0x6,0x3a,0x46, 0x5,0x2f,0x3e, 0x5,0x2a,0x76, + 0x5,0x34,0x3c, 0x6,0x3a,0x47, 0xf,0x31,0x55, 0xf,0x31,0x56, + 0x6,0x3a,0x42, 0x6,0x3a,0x44, 0x5,0x34,0x3a, 0x6,0x42,0x69, + 0x5,0x34,0x3f, 0x4,0x33,0x68, 0x5,0x34,0x3d, 0x6,0x42,0x68, + 0x5,0x34,0x37, 0xf,0x37,0x3a, 0xf,0x37,0x3c, 0xf,0x37,0x3d, + 0xf,0x37,0x3e, 0x4,0x33,0x6c, 0x6,0x42,0x65, 0x6,0x42,0x6a, + 0x4,0x39,0x5f, 0x5,0x3a,0x64, 0x4,0x39,0x60, 0x4,0x39,0x5c, + 0x6,0x4c,0x41, 0x6,0x4c,0x42, 0x6,0x4c,0x45, 0x6,0x4c,0x47, + 0x4,0x39,0x5d, 0x6,0x4c,0x44, 0x4,0x3f,0x51, 0xf,0x3d,0x65, + 0xf,0x3d,0x67, 0xf,0x3d,0x69, 0x5,0x34,0x3e, 0xf,0x3d,0x66, + 0x5,0x41,0x36, 0x5,0x41,0x2f, 0x6,0x55,0x79, 0x6,0x55,0x77, + 0x6,0x55,0x7a, 0x5,0x41,0x30, 0x5,0x41,0x2d, 0x5,0x41,0x32, + 0x5,0x41,0x34, 0x5,0x41,0x38, 0x5,0x41,0x33, 0x4,0x3f,0x4e, + 0x6,0x56,0x21, 0x5,0x41,0x2e, 0x6,0x55,0x7b, 0x6,0x55,0x7e, + 0x6,0x55,0x7c, 0xf,0x44,0x33, 0xf,0x44,0x34, 0xf,0x44,0x35, + 0xf,0x44,0x36, 0xf,0x44,0x37, 0xf,0x44,0x38, 0xf,0x44,0x39, + 0xf,0x44,0x3a, 0x6,0x55,0x78, 0x6,0x55,0x7d, 0x5,0x41,0x37, + 0x5,0x41,0x35, 0x5,0x48,0x28, 0x6,0x5f,0x69, 0x5,0x45,0x2d, + 0x5,0x48,0x2d, 0x6,0x5f,0x68, 0x6,0x5f,0x66, 0x6,0x5f,0x6a, + 0x4,0x45,0x5c, 0x5,0x48,0x2e, 0x5,0x48,0x29, 0x6,0x5f,0x6e, + 0x6,0x5f,0x6f, 0x5,0x48,0x2b, 0x5,0x48,0x27, 0x5,0x48,0x2c, + 0x6,0x5f,0x70, 0x5,0x48,0x2a, 0x6,0x5f,0x67, 0xf,0x4a,0x60, + 0xf,0x4a,0x5b, 0xf,0x4a,0x5c, 0xf,0x4a,0x5d, 0xf,0x4a,0x5e, + 0xf,0x4a,0x5f, 0xf,0x4a,0x61, 0xf,0x4a,0x62, 0xf,0x4a,0x63, + 0xf,0x4a,0x65, 0x6,0x5f,0x6d, 0x6,0x5f,0x6c, 0x5,0x4e,0x7b, + 0x5,0x4e,0x78, 0x5,0x4e,0x7a, 0x7,0x26,0x33, 0x7,0x26,0x30, + 0x5,0x4e,0x79, 0x4,0x4b,0x69, 0x7,0x26,0x34, 0x7,0x26,0x31, + 0x7,0x26,0x38, 0x5,0x48,0x2f, 0x7,0x26,0x2f, 0x5,0x56,0x45, + 0x5,0x4e,0x7c, 0x5,0x4e,0x7d, 0x4,0x4b,0x67, 0x4,0x4b,0x6a, + 0x7,0x26,0x35, 0xf,0x50,0x6c, 0xf,0x50,0x6e, 0xf,0x50,0x6f, + 0xf,0x50,0x70, 0xf,0x50,0x71, 0xf,0x50,0x72, 0x7,0x26,0x2e, + 0x7,0x26,0x36, 0x7,0x26,0x37, 0x4,0x51,0x7b, 0x7,0x30,0x6d, + 0x5,0x56,0x3d, 0x5,0x56,0x40, 0x7,0x30,0x69, 0x5,0x56,0x3c, + 0x5,0x56,0x3f, 0x5,0x56,0x3e, 0x4,0x51,0x7e, 0x5,0x56,0x3b, + 0x5,0x56,0x43, 0x7,0x30,0x63, 0x7,0x30,0x64, 0x5,0x56,0x42, + 0x7,0x30,0x62, 0x5,0x56,0x46, 0x5,0x5c,0x5b, 0x5,0x56,0x47, + 0x7,0x30,0x6b, 0x7,0x30,0x6a, 0x7,0x30,0x6c, 0x7,0x30,0x61, + 0xf,0x56,0x54, 0xf,0x56,0x55, 0x7,0x30,0x65, 0x7,0x30,0x67, + 0x7,0x30,0x68, 0x5,0x56,0x44, 0x5,0x56,0x41, 0x5,0x5c,0x5e, + 0x5,0x5c,0x61, 0x5,0x5c,0x62, 0x5,0x5c,0x5f, 0x5,0x5c,0x5c, + 0x5,0x5c,0x5d, 0x4,0x57,0x4a, 0x7,0x39,0x77, 0x5,0x5c,0x64, + 0x4,0x57,0x46, 0x5,0x5c,0x60, 0x7,0x39,0x7a, 0xf,0x5b,0x54, + 0xf,0x5b,0x55, 0xf,0x5b,0x56, 0xf,0x5b,0x57, 0xf,0x5b,0x58, + 0xf,0x5b,0x5a, 0x7,0x39,0x78, 0xf,0x5b,0x53, 0x5,0x56,0x48, + 0x7,0x39,0x79, 0x5,0x5c,0x63, 0xf,0x56,0x53, 0x5,0x62,0x7d, + 0x5,0x63,0x26, 0x5,0x63,0x24, 0x5,0x63,0x21, 0x5,0x63,0x22, + 0x5,0x63,0x25, 0x7,0x41,0x30, 0x5,0x62,0x7e, 0x7,0x41,0x2f, + 0x5,0x63,0x23, 0xf,0x5f,0x6c, 0xf,0x5f,0x6d, 0xf,0x5f,0x6e, + 0xf,0x5f,0x6f, 0xf,0x5f,0x70, 0xf,0x5f,0x71, 0xf,0x5f,0x72, + 0x5,0x62,0x7c, 0x5,0x68,0x5e, 0x4,0x60,0x43, 0x5,0x68,0x5c, + 0x4,0x60,0x44, 0x4,0x60,0x47, 0x7,0x48,0x3f, 0x4,0x60,0x46, + 0x5,0x68,0x5d, 0x7,0x4e,0x62, 0x7,0x48,0x41, 0x7,0x48,0x3e, + 0xf,0x63,0x30, 0x7,0x48,0x40, 0x5,0x6c,0x6b, 0x4,0x63,0x7a, + 0x4,0x63,0x78, 0x5,0x6c,0x6a, 0x7,0x4e,0x60, 0x4,0x5c,0x38, + 0x5,0x6c,0x69, 0x5,0x6c,0x6c, 0x7,0x4e,0x5f, 0x7,0x4e,0x61, + 0xf,0x65,0x60, 0xf,0x65,0x61, 0xf,0x65,0x63, 0x7,0x4e,0x63, + 0x5,0x6c,0x6d, 0x7,0x54,0x28, 0x7,0x54,0x27, 0x5,0x70,0x58, + 0x7,0x54,0x29, 0x7,0x58,0x4d, 0x5,0x73,0x6c, 0x7,0x58,0x4e, + 0x5,0x76,0x30, 0x5,0x76,0x31, 0x7,0x58,0x4f, 0x5,0x77,0x70, + 0x7,0x5c,0x2d, 0x7,0x5c,0x2e, 0x7,0x5f,0x28, 0x7,0x5e,0x71, + 0xf,0x6b,0x57, 0xf,0x6b,0x58, 0x4,0x6c,0x77, 0x5,0x79,0x33, + 0xf,0x6c,0x34, 0x4,0x6c,0x78, 0x5,0x7a,0x2e, 0x5,0x7b,0x61, + 0x5,0x7b,0x62, 0x6,0x23,0x37, 0x5,0x24,0x6f, 0x5,0x24,0x70, + 0x4,0x27,0x59, 0x4,0x27,0x5a, 0x4,0x27,0x58, 0x6,0x2d,0x4d, + 0x6,0x2d,0x4c, 0x6,0x2d,0x4f, 0x3,0x2a,0x45, 0x6,0x2d,0x4b, + 0xf,0x28,0x43, 0x4,0x2a,0x74, 0x6,0x33,0x59, 0x6,0x33,0x5b, + 0x6,0x33,0x58, 0x5,0x2a,0x77, 0x4,0x2a,0x73, 0x5,0x2a,0x79, + 0x5,0x2a,0x78, 0x6,0x33,0x5a, 0x6,0x33,0x5c, 0x6,0x33,0x5d, + 0x5,0x2a,0x7a, 0xf,0x2c,0x71, 0xf,0x2c,0x72, 0xf,0x2c,0x73, + 0x5,0x2f,0x3f, 0x4,0x2e,0x66, 0x4,0x2e,0x6b, 0x4,0x2e,0x68, + 0x5,0x2f,0x43, 0x5,0x2f,0x42, 0x5,0x2f,0x41, 0x6,0x3a,0x4c, + 0x4,0x2e,0x69, 0x4,0x2e,0x6a, 0x4,0x2e,0x67, 0x6,0x3a,0x4a, + 0x6,0x3a,0x48, 0x5,0x2f,0x40, 0x5,0x2f,0x44, 0xf,0x31,0x58, + 0xf,0x31,0x59, 0xf,0x31,0x5a, 0x6,0x3a,0x4b, 0x6,0x3a,0x49, + 0x5,0x34,0x44, 0x5,0x34,0x43, 0x6,0x42,0x6c, 0x6,0x42,0x6b, + 0x6,0x42,0x6d, 0x5,0x34,0x41, 0x4,0x33,0x6e, 0x5,0x34,0x42, + 0x5,0x34,0x40, 0x6,0x42,0x6e, 0xf,0x37,0x40, 0xf,0x37,0x41, + 0xf,0x37,0x42, 0xf,0x37,0x43, 0xf,0x37,0x44, 0x5,0x3a,0x72, + 0x4,0x39,0x66, 0x5,0x3a,0x74, 0x6,0x4c,0x4e, 0x6,0x4c,0x4a, + 0x4,0x39,0x69, 0x6,0x4c,0x52, 0x5,0x3a,0x69, 0x5,0x3a,0x6f, + 0x5,0x3a,0x71, 0x6,0x4c,0x50, 0x5,0x3a,0x67, 0x6,0x4c,0x51, + 0x5,0x3a,0x68, 0x6,0x4c,0x4b, 0x5,0x3a,0x6a, 0x4,0x39,0x68, + 0x5,0x3a,0x73, 0x6,0x4c,0x4c, 0x5,0x3a,0x70, 0x6,0x4c,0x49, + 0x5,0x3a,0x66, 0x5,0x3a,0x6d, 0x6,0x4c,0x4f, 0x5,0x3a,0x6e, + 0x5,0x3a,0x6b, 0x6,0x4c,0x4d, 0xf,0x3d,0x6b, 0x5,0x41,0x3a, + 0x6,0x56,0x29, 0x5,0x41,0x3c, 0x5,0x41,0x3b, 0x5,0x41,0x3e, + 0x6,0x56,0x22, 0x6,0x56,0x24, 0x5,0x3a,0x6c, 0x5,0x41,0x3d, + 0x5,0x41,0x3f, 0x6,0x56,0x28, 0x6,0x56,0x2b, 0x5,0x41,0x40, + 0x6,0x56,0x26, 0x6,0x56,0x25, 0xf,0x44,0x3b, 0xf,0x44,0x3d, + 0xf,0x44,0x3e, 0xf,0x44,0x3f, 0xf,0x44,0x40, 0x6,0x56,0x23, + 0x6,0x56,0x2a, 0x6,0x57,0x26, 0x4,0x45,0x61, 0x6,0x5f,0x77, + 0x5,0x48,0x32, 0x6,0x5f,0x76, 0x6,0x5f,0x72, 0x6,0x5f,0x74, + 0x6,0x5f,0x73, 0x5,0x48,0x31, 0x6,0x5f,0x79, 0xf,0x4a,0x66, + 0x5,0x48,0x33, 0x6,0x5f,0x71, 0xf,0x44,0x3c, 0x7,0x26,0x3b, + 0x5,0x4f,0x21, 0x5,0x4f,0x27, 0x5,0x4f,0x2a, 0x5,0x48,0x30, + 0x7,0x26,0x3a, 0x5,0x4f,0x2b, 0x5,0x4f,0x26, 0x5,0x4f,0x22, + 0x5,0x4f,0x2c, 0x5,0x4f,0x25, 0x7,0x26,0x39, 0x5,0x4e,0x7e, + 0x5,0x4f,0x28, 0x5,0x4f,0x24, 0x5,0x4f,0x29, 0x7,0x27,0x2e, + 0x4,0x4b,0x6d, 0x5,0x56,0x4f, 0x5,0x56,0x51, 0x4,0x52,0x23, + 0x5,0x56,0x50, 0x4,0x52,0x26, 0x5,0x56,0x49, 0x4,0x52,0x28, + 0x7,0x30,0x70, 0x5,0x56,0x4a, 0x5,0x56,0x4c, 0x5,0x56,0x4b, + 0x5,0x56,0x53, 0x5,0x56,0x4d, 0x5,0x56,0x54, 0x7,0x30,0x6e, + 0x5,0x56,0x4e, 0x5,0x5c,0x65, 0x5,0x56,0x55, 0xf,0x56,0x56, + 0xf,0x56,0x57, 0xf,0x56,0x58, 0xf,0x56,0x59, 0xf,0x56,0x5a, + 0x7,0x30,0x71, 0x5,0x5c,0x6a, 0x5,0x5c,0x67, 0x7,0x3a,0x21, + 0x4,0x57,0x4e, 0x5,0x5c,0x69, 0x7,0x39,0x7c, 0x7,0x39,0x7d, + 0x7,0x39,0x7b, 0x5,0x5c,0x66, 0x7,0x39,0x7e, 0x7,0x30,0x72, + 0x5,0x5c,0x68, 0xf,0x5b,0x5b, 0x5,0x63,0x28, 0x5,0x63,0x27, + 0xf,0x5f,0x74, 0x4,0x60,0x4a, 0x7,0x48,0x44, 0x7,0x48,0x43, + 0x5,0x68,0x5f, 0x7,0x48,0x42, 0x7,0x4e,0x64, 0x7,0x4e,0x66, + 0x5,0x68,0x60, 0x4,0x63,0x7b, 0x5,0x6c,0x6e, 0x7,0x54,0x2d, + 0x7,0x4e,0x67, 0x7,0x4e,0x65, 0xf,0x65,0x64, 0x5,0x70,0x5b, + 0x7,0x54,0x2b, 0x4,0x66,0x67, 0x4,0x66,0x66, 0x5,0x70,0x59, + 0x7,0x54,0x2c, 0x5,0x70,0x5a, 0xf,0x68,0x21, 0xf,0x65,0x65, + 0x5,0x76,0x32, 0x7,0x5c,0x2f, 0x5,0x77,0x71, 0x7,0x61,0x2a, + 0xf,0x6b,0x59, 0x7,0x5f,0x29, 0x5,0x79,0x34, 0x7,0x62,0x4a, + 0x5,0x7b,0x63, 0x6,0x28,0x72, 0x6,0x28,0x71, 0x5,0x27,0x49, + 0x5,0x27,0x4a, 0x4,0x2a,0x75, 0xf,0x2c,0x74, 0xf,0x2c,0x78, + 0x4,0x2e,0x6f, 0x5,0x2f,0x47, 0x5,0x2f,0x48, 0x4,0x2e,0x6c, + 0x5,0x2f,0x46, 0x5,0x2f,0x45, 0x4,0x2e,0x6e, 0xf,0x31,0x5c, + 0xf,0x31,0x5d, 0xf,0x31,0x5e, 0xf,0x31,0x5f, 0xf,0x31,0x61, + 0xf,0x31,0x62, 0x6,0x3a,0x4d, 0x6,0x3a,0x4e, 0x6,0x42,0x72, + 0x4,0x33,0x73, 0x6,0x42,0x71, 0x6,0x42,0x73, 0x6,0x42,0x70, + 0x4,0x33,0x74, 0xf,0x37,0x45, 0xf,0x37,0x47, 0x5,0x34,0x47, + 0xf,0x37,0x48, 0x4,0x39,0x6b, 0x6,0x4c,0x55, 0x5,0x3a,0x75, + 0x5,0x3a,0x77, 0x5,0x3a,0x76, 0x5,0x3a,0x78, 0x6,0x4c,0x54, + 0xf,0x3d,0x6d, 0xf,0x3d,0x6e, 0xf,0x3d,0x6f, 0xf,0x3d,0x70, + 0x4,0x3f,0x56, 0x4,0x3f,0x58, 0x5,0x41,0x42, 0x4,0x3f,0x59, + 0x6,0x56,0x2c, 0x5,0x41,0x41, 0x6,0x56,0x2d, 0x6,0x56,0x2e, + 0xf,0x44,0x41, 0xf,0x44,0x42, 0xf,0x44,0x43, 0x5,0x41,0x43, + 0x5,0x48,0x34, 0x6,0x5f,0x7a, 0x5,0x48,0x35, 0x4,0x45,0x62, + 0xf,0x4a,0x67, 0xf,0x4a,0x68, 0xf,0x4a,0x6a, 0xf,0x4a,0x69, + 0x7,0x26,0x3f, 0x4,0x4b,0x6e, 0x5,0x4f,0x2d, 0xf,0x50,0x73, + 0xf,0x50,0x74, 0xf,0x50,0x75, 0x7,0x26,0x3d, 0xf,0x56,0x5c, + 0xf,0x56,0x5b, 0x4,0x57,0x51, 0x7,0x30,0x74, 0x5,0x56,0x56, + 0xf,0x5b,0x5c, 0x5,0x5c,0x6c, 0x5,0x5d,0x63, 0x7,0x3a,0x22, + 0x5,0x5c,0x6b, 0x5,0x63,0x2a, 0x7,0x3a,0x23, 0xf,0x5f,0x75, + 0x7,0x41,0x31, 0x5,0x63,0x29, 0x7,0x4e,0x68, 0x7,0x54,0x2e, + 0xf,0x65,0x66, 0x7,0x48,0x45, 0x5,0x70,0x5c, 0xf,0x68,0x22, + 0x7,0x58,0x50, 0xf,0x69,0x5e, 0xf,0x6a,0x68, 0x7,0x61,0x2b, + 0xf,0x25,0x26, 0x5,0x27,0x4b, 0x6,0x2d,0x50, 0x5,0x27,0x4d, + 0x5,0x27,0x4c, 0x5,0x2a,0x7c, 0x5,0x2a,0x7d, 0x5,0x2a,0x7b, + 0x6,0x33,0x5f, 0x6,0x33,0x5e, 0x5,0x2a,0x7e, 0xf,0x2c,0x79, + 0xf,0x2c,0x7a, 0xf,0x2c,0x7b, 0xf,0x2c,0x7c, 0xf,0x2c,0x7d, + 0xf,0x29,0x24, 0x5,0x2f,0x4e, 0x5,0x2f,0x49, 0x4,0x2e,0x74, + 0x5,0x2f,0x4a, 0x5,0x2f,0x4c, 0x5,0x2f,0x4d, 0x6,0x3a,0x50, + 0x5,0x2f,0x51, 0x5,0x2f,0x4f, 0x5,0x2f,0x4b, 0x6,0x3a,0x4f, + 0x6,0x3a,0x51, 0x5,0x2f,0x50, 0x5,0x2f,0x52, 0xf,0x31,0x63, + 0xf,0x31,0x64, 0xf,0x31,0x65, 0xf,0x31,0x66, 0xf,0x31,0x67, + 0xf,0x31,0x68, 0xf,0x31,0x69, 0xf,0x31,0x6a, 0x4,0x2e,0x76, + 0x6,0x42,0x74, 0x6,0x42,0x7a, 0x5,0x34,0x4a, 0x4,0x33,0x79, + 0x5,0x34,0x4d, 0x6,0x42,0x77, 0x5,0x34,0x4c, 0x6,0x42,0x7c, + 0x4,0x33,0x75, 0x5,0x34,0x4e, 0x6,0x42,0x75, 0x5,0x2f,0x53, + 0x5,0x34,0x49, 0x6,0x42,0x79, 0x6,0x42,0x7b, 0x5,0x34,0x50, + 0x5,0x34,0x51, 0x6,0x42,0x78, 0xf,0x37,0x49, 0xf,0x37,0x4a, + 0xf,0x37,0x4b, 0xf,0x37,0x4c, 0xf,0x37,0x4e, 0xf,0x37,0x4f, + 0x5,0x3a,0x7c, 0x5,0x3b,0x22, 0x5,0x3a,0x7b, 0x5,0x3a,0x7e, + 0x4,0x39,0x6c, 0x4,0x39,0x6e, 0x6,0x4c,0x5a, 0x5,0x34,0x4b, + 0x4,0x39,0x73, 0x5,0x3b,0x21, 0x5,0x3a,0x7a, 0x4,0x39,0x79, + 0x4,0x39,0x77, 0x4,0x39,0x70, 0x6,0x4c,0x5d, 0x4,0x39,0x78, + 0x6,0x4c,0x57, 0x5,0x3b,0x25, 0x6,0x4c,0x59, 0x6,0x4c,0x5c, + 0x5,0x34,0x4f, 0x5,0x3a,0x7d, 0xf,0x3d,0x71, 0xf,0x3d,0x72, + 0xf,0x3d,0x73, 0xf,0x3d,0x74, 0xf,0x3d,0x75, 0xf,0x3d,0x76, + 0xf,0x3d,0x78, 0xf,0x3d,0x79, 0xf,0x3d,0x7a, 0xf,0x3d,0x77, + 0x5,0x3b,0x23, 0x5,0x41,0x54, 0x5,0x41,0x48, 0x5,0x41,0x4f, + 0x4,0x3f,0x5c, 0x5,0x41,0x4d, 0x5,0x41,0x45, 0x4,0x3f,0x64, + 0x4,0x3f,0x65, 0x5,0x41,0x50, 0x4,0x3f,0x5f, 0x5,0x3a,0x79, + 0x6,0x56,0x30, 0x5,0x41,0x46, 0x5,0x41,0x55, 0x5,0x41,0x4b, + 0x5,0x41,0x52, 0x5,0x41,0x44, 0x5,0x41,0x49, 0x5,0x41,0x4c, + 0x6,0x56,0x34, 0x6,0x56,0x32, 0x6,0x56,0x37, 0x6,0x56,0x3a, + 0x6,0x56,0x33, 0x6,0x56,0x36, 0x6,0x56,0x38, 0x6,0x5f,0x7b, + 0x5,0x41,0x53, 0x5,0x41,0x51, 0x5,0x41,0x4e, 0x5,0x41,0x47, + 0x6,0x56,0x31, 0x6,0x4c,0x58, 0x6,0x56,0x35, 0x6,0x56,0x39, + 0xf,0x44,0x44, 0xf,0x44,0x46, 0xf,0x44,0x47, 0xf,0x44,0x48, + 0xf,0x44,0x49, 0xf,0x44,0x4a, 0xf,0x44,0x4b, 0xf,0x44,0x4c, + 0xf,0x44,0x4d, 0xf,0x44,0x4e, 0xf,0x44,0x4f, 0xf,0x44,0x50, + 0x6,0x56,0x2f, 0xf,0x41,0x3e, 0x5,0x48,0x45, 0x5,0x41,0x56, + 0x4,0x45,0x6c, 0x5,0x48,0x43, 0x6,0x60,0x27, 0x4,0x45,0x67, + 0x6,0x5f,0x7c, 0x6,0x5f,0x7d, 0x5,0x48,0x3c, 0x5,0x48,0x3b, + 0x5,0x48,0x42, 0x4,0x45,0x6f, 0x6,0x60,0x28, 0x5,0x48,0x40, + 0x6,0x60,0x26, 0x5,0x48,0x38, 0x5,0x48,0x39, 0x6,0x60,0x25, + 0x6,0x60,0x21, 0x5,0x48,0x3a, 0x5,0x48,0x41, 0x5,0x48,0x37, + 0x5,0x48,0x3d, 0x6,0x60,0x22, 0x5,0x41,0x4a, 0x5,0x48,0x47, + 0x6,0x5f,0x7e, 0x5,0x48,0x3e, 0x6,0x60,0x24, 0x5,0x48,0x3f, + 0x4,0x45,0x71, 0x5,0x48,0x44, 0xf,0x4a,0x6b, 0xf,0x4a,0x6c, + 0xf,0x4a,0x6d, 0xf,0x4a,0x6e, 0xf,0x4a,0x6f, 0xf,0x4a,0x70, + 0xf,0x4a,0x73, 0xf,0x4a,0x74, 0xf,0x4a,0x75, 0xf,0x4a,0x76, + 0xf,0x4a,0x77, 0xf,0x4a,0x78, 0xf,0x4a,0x79, 0xf,0x4a,0x7a, + 0xf,0x4a,0x72, 0xf,0x4a,0x71, 0x5,0x4f,0x3a, 0x7,0x26,0x49, + 0x7,0x26,0x4b, 0x5,0x4f,0x44, 0x4,0x4c,0x2f, 0x5,0x4f,0x33, + 0x7,0x26,0x51, 0x7,0x26,0x4a, 0x5,0x4f,0x3e, 0x4,0x4b,0x71, + 0x4,0x4b,0x6f, 0x5,0x4f,0x41, 0x5,0x4f,0x2f, 0x5,0x4f,0x34, + 0x5,0x4f,0x43, 0x7,0x26,0x42, 0x5,0x4f,0x40, 0x5,0x4f,0x31, + 0x4,0x52,0x40, 0x5,0x4f,0x39, 0x5,0x4f,0x42, 0x4,0x4b,0x72, + 0x4,0x4c,0x29, 0x4,0x4c,0x23, 0x4,0x4b,0x7d, 0x5,0x4f,0x38, + 0x5,0x4f,0x37, 0x5,0x4f,0x3c, 0x7,0x26,0x4e, 0x5,0x48,0x48, + 0x5,0x4f,0x35, 0x7,0x26,0x50, 0x7,0x26,0x47, 0x7,0x26,0x44, + 0x5,0x4f,0x3f, 0x7,0x26,0x40, 0x7,0x26,0x53, 0x4,0x4c,0x24, + 0x7,0x26,0x4f, 0x4,0x4b,0x7c, 0x7,0x26,0x4c, 0x5,0x4f,0x3d, + 0x7,0x26,0x45, 0x7,0x26,0x43, 0x5,0x4f,0x2e, 0x7,0x26,0x48, + 0x7,0x26,0x46, 0x5,0x4f,0x46, 0xf,0x50,0x78, 0x7,0x26,0x52, + 0xf,0x50,0x77, 0xf,0x50,0x7a, 0xf,0x50,0x7b, 0xf,0x50,0x7c, + 0xf,0x50,0x7d, 0xf,0x50,0x7e, 0xf,0x51,0x22, 0xf,0x51,0x24, + 0xf,0x51,0x29, 0xf,0x51,0x25, 0xf,0x51,0x26, 0xf,0x51,0x27, + 0xf,0x51,0x2a, 0x5,0x56,0x64, 0x4,0x52,0x41, 0x4,0x52,0x3e, + 0x5,0x56,0x58, 0x5,0x56,0x5e, 0x5,0x56,0x66, 0x7,0x31,0x2a, + 0x5,0x56,0x5c, 0x4,0x52,0x2e, 0x5,0x56,0x5d, 0x4,0x52,0x2c, + 0x5,0x56,0x68, 0x7,0x26,0x41, 0x7,0x31,0x25, 0x4,0x52,0x32, + 0x5,0x56,0x67, 0x4,0x52,0x31, 0x7,0x31,0x29, 0x4,0x52,0x3c, + 0x7,0x30,0x7e, 0x7,0x31,0x26, 0x4,0x52,0x30, 0x5,0x56,0x60, + 0x7,0x30,0x7b, 0x4,0x52,0x3f, 0x5,0x56,0x5f, 0x5,0x56,0x59, + 0x7,0x30,0x7a, 0x7,0x31,0x28, 0x4,0x52,0x2a, 0x5,0x56,0x57, + 0x7,0x31,0x24, 0x4,0x52,0x35, 0x5,0x56,0x65, 0x7,0x30,0x7d, + 0x5,0x56,0x62, 0x4,0x52,0x33, 0x7,0x31,0x2b, 0x7,0x30,0x75, + 0x7,0x31,0x27, 0x5,0x4f,0x30, 0x5,0x56,0x63, 0x5,0x56,0x5a, + 0x7,0x30,0x78, 0x7,0x31,0x23, 0x7,0x30,0x76, 0x5,0x56,0x61, + 0xf,0x56,0x72, 0x5,0x56,0x5b, 0x7,0x30,0x7c, 0x7,0x30,0x77, + 0x7,0x31,0x22, 0xf,0x56,0x5d, 0xf,0x56,0x5e, 0xf,0x56,0x60, + 0xf,0x56,0x61, 0xf,0x56,0x62, 0xf,0x56,0x63, 0xf,0x56,0x64, + 0xf,0x56,0x65, 0xf,0x56,0x66, 0xf,0x56,0x67, 0xf,0x56,0x68, + 0xf,0x56,0x69, 0xf,0x56,0x6a, 0xf,0x56,0x6b, 0xf,0x56,0x6c, + 0xf,0x56,0x6d, 0xf,0x56,0x6e, 0xf,0x56,0x6f, 0xf,0x56,0x70, + 0xf,0x56,0x71, 0xf,0x56,0x73, 0x7,0x30,0x79, 0xf,0x50,0x79, + 0x5,0x5d,0x24, 0x5,0x5d,0x21, 0x4,0x57,0x5d, 0x5,0x5c,0x75, + 0x5,0x5d,0x2d, 0x5,0x5c,0x79, 0x4,0x57,0x5c, 0x4,0x57,0x63, + 0x4,0x57,0x67, 0x7,0x3a,0x2c, 0x5,0x5d,0x2b, 0x4,0x57,0x60, + 0x5,0x5d,0x22, 0x5,0x5c,0x70, 0x5,0x5d,0x23, 0x5,0x5c,0x72, + 0x5,0x5d,0x31, 0x5,0x5c,0x7b, 0x5,0x5d,0x2a, 0x5,0x5c,0x77, + 0x5,0x5d,0x34, 0x7,0x3a,0x24, 0x5,0x5c,0x76, 0x5,0x5c,0x7c, + 0x5,0x5d,0x26, 0x4,0x57,0x64, 0x5,0x5d,0x27, 0x7,0x3a,0x29, + 0x5,0x63,0x42, 0x5,0x5d,0x2c, 0x5,0x5c,0x7a, 0x7,0x3a,0x2f, + 0x7,0x3a,0x28, 0x5,0x5c,0x6f, 0x5,0x5d,0x32, 0x5,0x5d,0x29, + 0x5,0x5c,0x73, 0x7,0x3a,0x2b, 0x5,0x5d,0x2e, 0x5,0x5c,0x71, + 0x5,0x5c,0x6e, 0x5,0x5d,0x28, 0x4,0x57,0x66, 0x4,0x5c,0x3c, + 0x5,0x5d,0x33, 0x5,0x5c,0x78, 0x5,0x5d,0x2f, 0x5,0x5d,0x25, + 0x7,0x31,0x21, 0x5,0x5c,0x74, 0x7,0x3a,0x27, 0x7,0x3a,0x26, + 0x7,0x3a,0x25, 0x7,0x3a,0x2d, 0xf,0x5b,0x5d, 0xf,0x5b,0x5e, + 0xf,0x5b,0x60, 0xf,0x5b,0x61, 0xf,0x5b,0x62, 0xf,0x5b,0x63, + 0xf,0x5b,0x64, 0xf,0x5b,0x66, 0xf,0x5b,0x67, 0xf,0x5b,0x68, + 0xf,0x5b,0x69, 0x7,0x3a,0x2a, 0x7,0x3a,0x2e, 0x4,0x57,0x68, + 0xf,0x5b,0x65, 0x4,0x57,0x61, 0x5,0x63,0x4b, 0x5,0x63,0x47, + 0x5,0x5d,0x35, 0x4,0x5c,0x52, 0x5,0x63,0x45, 0x5,0x63,0x38, + 0x5,0x63,0x33, 0x4,0x5c,0x47, 0x5,0x63,0x4a, 0x5,0x63,0x40, + 0x3,0x58,0x4f, 0x5,0x63,0x2e, 0x4,0x5c,0x4e, 0x4,0x5c,0x45, + 0x5,0x63,0x43, 0x5,0x63,0x39, 0x5,0x63,0x4c, 0x4,0x5c,0x3d, + 0x7,0x41,0x3b, 0x5,0x63,0x46, 0x5,0x63,0x30, 0x5,0x63,0x37, + 0x4,0x5c,0x3e, 0x4,0x5c,0x3f, 0x5,0x63,0x48, 0x7,0x41,0x39, + 0x5,0x63,0x35, 0x5,0x63,0x32, 0x5,0x63,0x3f, 0x7,0x41,0x35, + 0x5,0x63,0x2c, 0x7,0x41,0x36, 0x4,0x5c,0x41, 0x7,0x41,0x33, + 0x4,0x5c,0x53, 0x5,0x63,0x3e, 0x7,0x41,0x38, 0x5,0x63,0x3d, + 0x7,0x41,0x3a, 0x7,0x41,0x3e, 0x7,0x41,0x34, 0x5,0x63,0x31, + 0x4,0x5c,0x4d, 0x5,0x63,0x36, 0x5,0x63,0x3a, 0x5,0x63,0x44, + 0x5,0x63,0x49, 0x5,0x63,0x3c, 0x5,0x63,0x2d, 0x7,0x41,0x42, + 0x7,0x41,0x41, 0x5,0x63,0x3b, 0x5,0x63,0x2b, 0x5,0x63,0x2f, + 0x7,0x41,0x32, 0x7,0x41,0x37, 0xf,0x5f,0x76, 0xf,0x5f,0x77, + 0xf,0x5f,0x78, 0xf,0x5f,0x79, 0xf,0x5f,0x7a, 0xf,0x5f,0x7b, + 0xf,0x5f,0x7c, 0xf,0x5f,0x7d, 0xf,0x5f,0x7e, 0xf,0x60,0x21, + 0xf,0x60,0x23, 0xf,0x60,0x24, 0xf,0x60,0x25, 0x7,0x41,0x40, + 0x7,0x41,0x3d, 0xf,0x5b,0x6a, 0xf,0x63,0x36, 0xf,0x63,0x37, + 0xf,0x60,0x22, 0x5,0x68,0x6a, 0x5,0x68,0x6f, 0x7,0x48,0x4e, + 0x4,0x60,0x59, 0x7,0x48,0x4c, 0x5,0x68,0x63, 0x4,0x60,0x54, + 0x4,0x60,0x55, 0x4,0x60,0x51, 0x5,0x68,0x69, 0x4,0x60,0x4f, + 0x4,0x60,0x50, 0x7,0x48,0x48, 0x4,0x60,0x52, 0x5,0x68,0x62, + 0x4,0x60,0x58, 0x4,0x60,0x4d, 0x7,0x48,0x47, 0x5,0x68,0x6d, + 0x5,0x68,0x68, 0x5,0x68,0x70, 0x5,0x68,0x6c, 0x5,0x68,0x6b, + 0x5,0x68,0x65, 0x5,0x68,0x64, 0x5,0x68,0x67, 0x7,0x48,0x46, + 0x7,0x48,0x4a, 0x5,0x68,0x61, 0x5,0x68,0x71, 0x7,0x48,0x49, + 0xf,0x63,0x31, 0xf,0x63,0x33, 0xf,0x63,0x34, 0xf,0x63,0x35, + 0xf,0x63,0x38, 0xf,0x63,0x39, 0xf,0x63,0x3a, 0xf,0x63,0x3b, + 0xf,0x63,0x3c, 0x7,0x48,0x4b, 0x7,0x48,0x4d, 0x5,0x6c,0x7c, + 0x5,0x6c,0x7b, 0x5,0x6c,0x76, 0x4,0x60,0x57, 0x5,0x6c,0x74, + 0x7,0x4e,0x6c, 0x5,0x6c,0x7a, 0x4,0x63,0x7d, 0x7,0x4e,0x74, + 0x4,0x64,0x22, 0x5,0x6c,0x78, 0x5,0x6c,0x73, 0x4,0x66,0x70, + 0x7,0x4e,0x6a, 0x5,0x6c,0x6f, 0x5,0x6c,0x75, 0x5,0x6c,0x71, + 0x7,0x4e,0x69, 0x7,0x4e,0x75, 0x5,0x6c,0x77, 0x7,0x4e,0x6d, + 0x7,0x4e,0x6e, 0x5,0x6c,0x72, 0x7,0x4e,0x6f, 0x7,0x54,0x38, + 0x7,0x4e,0x71, 0x7,0x4e,0x70, 0x7,0x4e,0x72, 0x7,0x4e,0x73, + 0xf,0x65,0x68, 0xf,0x65,0x69, 0x7,0x4e,0x6b, 0x5,0x70,0x64, + 0x5,0x70,0x68, 0x5,0x70,0x69, 0x4,0x66,0x71, 0x4,0x66,0x6b, + 0x5,0x70,0x66, 0x5,0x70,0x6b, 0x7,0x54,0x2f, 0x5,0x70,0x5e, + 0x5,0x70,0x63, 0x5,0x70,0x60, 0x4,0x64,0x21, 0x5,0x70,0x67, + 0x5,0x70,0x5f, 0x5,0x6c,0x70, 0x7,0x54,0x35, 0x5,0x70,0x6a, + 0x5,0x70,0x5d, 0x7,0x54,0x31, 0x5,0x70,0x65, 0x4,0x69,0x27, + 0x5,0x70,0x6c, 0x7,0x54,0x36, 0x7,0x54,0x30, 0x7,0x54,0x34, + 0xf,0x68,0x23, 0xf,0x68,0x24, 0xf,0x68,0x25, 0xf,0x68,0x26, + 0xf,0x68,0x27, 0xf,0x68,0x28, 0xf,0x68,0x29, 0x7,0x54,0x33, + 0x7,0x54,0x39, 0x7,0x54,0x32, 0x7,0x58,0x55, 0x4,0x69,0x24, + 0x4,0x69,0x23, 0x5,0x73,0x70, 0x5,0x73,0x6e, 0x5,0x70,0x62, + 0x5,0x73,0x71, 0x7,0x58,0x52, 0x5,0x70,0x6d, 0x7,0x58,0x51, + 0x5,0x73,0x74, 0x4,0x69,0x25, 0x5,0x73,0x6d, 0x7,0x58,0x54, + 0x7,0x54,0x37, 0x5,0x73,0x76, 0x5,0x73,0x73, 0x5,0x73,0x6f, + 0x5,0x73,0x75, 0x5,0x73,0x72, 0x7,0x58,0x56, 0xf,0x69,0x5f, + 0xf,0x69,0x60, 0xf,0x69,0x61, 0xf,0x69,0x62, 0x7,0x58,0x53, + 0x7,0x59,0x34, 0x4,0x6a,0x5e, 0x5,0x76,0x33, 0x7,0x5c,0x31, + 0x5,0x76,0x34, 0x4,0x6a,0x5f, 0x4,0x6a,0x60, 0x4,0x6a,0x62, + 0x7,0x5c,0x30, 0x5,0x76,0x36, 0x7,0x5c,0x32, 0x5,0x76,0x35, + 0x7,0x5c,0x36, 0x7,0x5c,0x35, 0xf,0x6a,0x69, 0x7,0x5c,0x33, + 0x7,0x5c,0x37, 0x7,0x5c,0x34, 0x5,0x77,0x72, 0x7,0x5f,0x2b, + 0x7,0x5f,0x2e, 0x5,0x77,0x74, 0x5,0x77,0x75, 0x7,0x5f,0x2d, + 0x5,0x76,0x37, 0x7,0x5f,0x2c, 0x7,0x5f,0x2a, 0x5,0x77,0x73, + 0x7,0x5f,0x31, 0x4,0x6b,0x77, 0xf,0x6b,0x5a, 0xf,0x6b,0x5b, + 0xf,0x6b,0x5c, 0x7,0x5f,0x2f, 0x5,0x79,0x35, 0x7,0x61,0x2c, + 0x7,0x61,0x2e, 0x7,0x61,0x31, 0x4,0x6c,0x79, 0x7,0x61,0x2f, + 0x7,0x5f,0x30, 0x7,0x61,0x2d, 0x5,0x7a,0x31, 0x5,0x7a,0x2f, + 0x5,0x7a,0x30, 0x7,0x61,0x30, 0xf,0x6c,0x4f, 0xf,0x6c,0x4d, + 0x7,0x63,0x5e, 0x7,0x63,0x5f, 0xf,0x6c,0x68, 0x7,0x63,0x60, + 0x5,0x7b,0x44, 0x5,0x7b,0x64, 0xf,0x6d,0x27, 0x7,0x64,0x54, + 0x4,0x6e,0x4e, 0x5,0x7b,0x7c, 0x5,0x7c,0x2b, 0x5,0x24,0x71, + 0xf,0x25,0x27, 0x5,0x27,0x4e, 0x6,0x2d,0x51, 0xf,0x28,0x45, + 0x6,0x33,0x61, 0x5,0x2b,0x22, 0x6,0x33,0x60, 0x5,0x2b,0x23, + 0xf,0x2c,0x7e, 0xf,0x2d,0x22, 0x6,0x3a,0x52, 0x5,0x2f,0x54, + 0x6,0x3a,0x56, 0x5,0x2f,0x55, 0x6,0x3a,0x54, 0x5,0x2f,0x56, + 0xf,0x31,0x6b, 0xf,0x31,0x6c, 0xf,0x31,0x6d, 0xf,0x31,0x6e, + 0x6,0x3a,0x53, 0x6,0x3a,0x55, 0x4,0x33,0x7e, 0x5,0x34,0x55, + 0x4,0x34,0x24, 0x5,0x34,0x54, 0x4,0x34,0x21, 0x5,0x34,0x58, + 0x5,0x34,0x53, 0x5,0x34,0x56, 0x5,0x34,0x57, 0x4,0x34,0x23, + 0x5,0x34,0x5a, 0x5,0x34,0x52, 0x6,0x42,0x7d, 0x6,0x4c,0x63, + 0x6,0x43,0x21, 0xf,0x37,0x50, 0xf,0x37,0x51, 0x6,0x42,0x7e, + 0xf,0x37,0x52, 0x5,0x3b,0x26, 0x4,0x39,0x7a, 0x6,0x4c,0x61, + 0x6,0x4c,0x5e, 0x6,0x4c,0x65, 0x5,0x3b,0x28, 0x4,0x3a,0x21, + 0x6,0x4c,0x64, 0x6,0x4c,0x5f, 0xf,0x3d,0x7c, 0xf,0x3d,0x7e, + 0xf,0x3e,0x22, 0xf,0x3d,0x7b, 0x6,0x4c,0x62, 0x5,0x41,0x57, + 0x4,0x3f,0x68, 0x6,0x56,0x3d, 0x5,0x41,0x59, 0x5,0x41,0x5a, + 0x5,0x3b,0x27, 0x5,0x41,0x58, 0x6,0x56,0x3f, 0x6,0x56,0x3e, + 0x4,0x39,0x7e, 0x5,0x41,0x5b, 0x5,0x41,0x5d, 0x5,0x41,0x5c, + 0x6,0x56,0x41, 0xf,0x44,0x52, 0xf,0x44,0x53, 0xf,0x44,0x55, + 0xf,0x44,0x56, 0x6,0x56,0x3b, 0xf,0x44,0x54, 0x6,0x56,0x40, + 0xf,0x44,0x51, 0x6,0x60,0x2d, 0x5,0x48,0x4a, 0x6,0x60,0x2b, + 0x6,0x60,0x2e, 0x5,0x48,0x4c, 0x4,0x45,0x73, 0x6,0x56,0x3c, + 0x6,0x60,0x33, 0x6,0x60,0x32, 0x5,0x48,0x4b, 0x6,0x60,0x30, + 0x5,0x48,0x49, 0x5,0x48,0x4d, 0xf,0x4a,0x7c, 0xf,0x4a,0x7d, + 0xf,0x4a,0x7e, 0xf,0x4b,0x21, 0xf,0x4b,0x22, 0xf,0x4b,0x23, + 0xf,0x4b,0x25, 0xf,0x4b,0x26, 0xf,0x4b,0x28, 0xf,0x4b,0x29, + 0xf,0x4b,0x2a, 0xf,0x4b,0x2d, 0x6,0x60,0x2f, 0xf,0x4b,0x2c, + 0x6,0x60,0x29, 0x6,0x60,0x2a, 0xf,0x4b,0x24, 0x7,0x26,0x58, + 0x7,0x26,0x54, 0x4,0x4c,0x36, 0x5,0x4f,0x4b, 0x7,0x26,0x55, + 0x7,0x26,0x59, 0x4,0x4c,0x33, 0x5,0x4f,0x4a, 0x5,0x4f,0x4c, + 0x5,0x4f,0x50, 0x5,0x48,0x4e, 0x5,0x4f,0x4f, 0x5,0x4f,0x4d, + 0x7,0x26,0x5b, 0x7,0x26,0x56, 0x5,0x4f,0x49, 0x4,0x4c,0x34, + 0x5,0x4f,0x4e, 0x4,0x4c,0x32, 0x7,0x26,0x5a, 0x5,0x4f,0x48, + 0x5,0x4f,0x47, 0xf,0x51,0x2b, 0xf,0x51,0x2c, 0xf,0x51,0x2d, + 0xf,0x51,0x2f, 0x5,0x56,0x6e, 0x5,0x56,0x6c, 0x5,0x5d,0x3c, + 0x4,0x52,0x43, 0x5,0x56,0x6b, 0x4,0x52,0x42, 0x7,0x31,0x2f, + 0x7,0x31,0x30, 0x5,0x56,0x6f, 0x7,0x31,0x2c, 0x5,0x56,0x6a, + 0x5,0x56,0x6d, 0x5,0x56,0x70, 0xf,0x56,0x74, 0xf,0x56,0x75, + 0x7,0x31,0x2e, 0x5,0x5d,0x36, 0x5,0x5d,0x38, 0x7,0x3a,0x30, + 0x5,0x5d,0x39, 0x5,0x5d,0x37, 0x5,0x5d,0x3a, 0x5,0x5d,0x3b, + 0x7,0x3a,0x32, 0x7,0x3a,0x34, 0x7,0x3a,0x35, 0x7,0x3a,0x31, + 0xf,0x5b,0x6b, 0xf,0x5b,0x6c, 0xf,0x5b,0x6d, 0xf,0x5b,0x6f, + 0xf,0x5b,0x70, 0xf,0x5b,0x71, 0xf,0x5b,0x72, 0x4,0x57,0x6c, + 0x5,0x63,0x52, 0x7,0x41,0x45, 0x4,0x5c,0x57, 0x5,0x63,0x53, + 0x5,0x63,0x4f, 0x7,0x48,0x56, 0x5,0x63,0x51, 0x5,0x5d,0x3d, + 0x7,0x41,0x46, 0x5,0x63,0x50, 0x7,0x4e,0x78, 0x5,0x63,0x4d, + 0x7,0x41,0x43, 0xf,0x60,0x27, 0xf,0x60,0x28, 0xf,0x60,0x29, + 0xf,0x5b,0x6e, 0x5,0x68,0x74, 0x7,0x48,0x4f, 0x7,0x48,0x50, + 0x4,0x60,0x5e, 0x4,0x60,0x5c, 0x5,0x68,0x73, 0x5,0x70,0x6e, + 0x7,0x48,0x52, 0x7,0x48,0x53, 0x7,0x41,0x48, 0x4,0x60,0x5f, + 0x4,0x5c,0x58, 0x5,0x68,0x75, 0x7,0x41,0x47, 0x5,0x68,0x72, + 0xf,0x63,0x3e, 0x7,0x48,0x51, 0x7,0x48,0x54, 0x7,0x48,0x55, + 0xf,0x63,0x3f, 0x7,0x4e,0x77, 0x5,0x6c,0x7e, 0x7,0x4e,0x76, + 0xf,0x65,0x6a, 0xf,0x65,0x6b, 0x4,0x66,0x73, 0x4,0x66,0x72, + 0x5,0x70,0x6f, 0x7,0x54,0x3d, 0x7,0x54,0x3c, 0xf,0x68,0x2a, + 0xf,0x68,0x2b, 0x7,0x54,0x3b, 0x5,0x73,0x77, 0x7,0x58,0x57, + 0x5,0x73,0x78, 0x4,0x6a,0x63, 0x4,0x6a,0x64, 0x7,0x5c,0x38, + 0xf,0x6a,0x6a, 0x5,0x76,0x38, 0x7,0x5c,0x39, 0x7,0x5f,0x32, + 0x5,0x77,0x77, 0x5,0x77,0x76, 0x5,0x79,0x38, 0x7,0x61,0x33, + 0x5,0x79,0x37, 0x5,0x79,0x36, 0x7,0x61,0x32, 0x7,0x62,0x4c, + 0x4,0x6d,0x5d, 0x5,0x7a,0x32, 0x7,0x62,0x4b, 0x5,0x7a,0x33, + 0x7,0x63,0x62, 0x7,0x63,0x61, 0x5,0x7b,0x7d, 0x7,0x66,0x36, + 0x5,0x27,0x4f, 0x6,0x2d,0x52, 0x5,0x27,0x50, 0xf,0x28,0x47, + 0xf,0x28,0x48, 0x5,0x27,0x51, 0x5,0x2b,0x26, 0x6,0x33,0x62, + 0x6,0x33,0x65, 0x5,0x2b,0x24, 0x5,0x2b,0x25, 0x6,0x33,0x67, + 0x6,0x33,0x63, 0x5,0x2b,0x27, 0xf,0x2d,0x23, 0x6,0x33,0x68, + 0x6,0x3a,0x5b, 0x6,0x3a,0x57, 0x4,0x2e,0x79, 0x6,0x3a,0x63, + 0x4,0x2e,0x7b, 0x6,0x3a,0x5d, 0x6,0x3a,0x5c, 0x6,0x3a,0x5f, + 0x5,0x2f,0x5a, 0x4,0x2e,0x7a, 0x4,0x2f,0x24, 0x6,0x3a,0x64, + 0x6,0x3a,0x59, 0x4,0x2f,0x23, 0x6,0x3a,0x5e, 0x4,0x2f,0x22, + 0x6,0x3a,0x60, 0x6,0x3a,0x58, 0x5,0x2f,0x59, 0x6,0x3a,0x61, + 0x5,0x2f,0x58, 0x5,0x2f,0x57, 0x6,0x3a,0x5a, 0xf,0x31,0x71, + 0xf,0x31,0x72, 0xf,0x31,0x73, 0xf,0x31,0x74, 0xf,0x31,0x75, + 0xf,0x31,0x76, 0xf,0x31,0x77, 0x4,0x2f,0x26, 0x6,0x3a,0x62, + 0x5,0x34,0x5f, 0x5,0x34,0x5d, 0x4,0x34,0x32, 0x4,0x34,0x28, + 0x4,0x34,0x2a, 0x6,0x43,0x28, 0x4,0x34,0x2f, 0x5,0x34,0x5e, + 0x4,0x34,0x31, 0x6,0x43,0x29, 0x5,0x34,0x5b, 0x4,0x34,0x2c, + 0x6,0x43,0x2b, 0x6,0x43,0x2a, 0x6,0x43,0x25, 0x6,0x43,0x23, + 0x6,0x43,0x24, 0x5,0x34,0x5c, 0xf,0x37,0x58, 0xf,0x37,0x59, + 0xf,0x37,0x5a, 0xf,0x37,0x5b, 0x6,0x43,0x27, 0x6,0x43,0x2c, + 0xf,0x37,0x55, 0x5,0x3b,0x31, 0x5,0x3b,0x30, 0x5,0x3b,0x2e, + 0x5,0x3b,0x32, 0x6,0x4c,0x6d, 0x4,0x3a,0x23, 0x6,0x4c,0x66, + 0x6,0x4c,0x6c, 0x4,0x3a,0x22, 0x4,0x3a,0x24, 0x6,0x4c,0x6e, + 0x6,0x43,0x26, 0x6,0x4c,0x67, 0x6,0x4c,0x70, 0x6,0x4c,0x68, + 0x5,0x3b,0x2d, 0x6,0x4c,0x6a, 0x6,0x4c,0x69, 0x6,0x4c,0x6f, + 0x5,0x3b,0x2a, 0x5,0x3b,0x29, 0x5,0x3b,0x2b, 0xf,0x3e,0x25, + 0xf,0x3e,0x26, 0xf,0x3e,0x27, 0xf,0x3e,0x28, 0xf,0x3e,0x29, + 0xf,0x3e,0x2a, 0xf,0x3e,0x2b, 0xf,0x3e,0x2c, 0xf,0x3e,0x2d, + 0xf,0x3e,0x2e, 0x6,0x4c,0x6b, 0x5,0x3b,0x2f, 0x6,0x56,0x4b, + 0x6,0x56,0x42, 0x5,0x41,0x5f, 0x5,0x41,0x5e, 0x4,0x3f,0x6c, + 0x6,0x56,0x44, 0x4,0x3f,0x6d, 0x6,0x56,0x48, 0x6,0x56,0x45, + 0x4,0x3f,0x69, 0x5,0x41,0x61, 0x5,0x41,0x60, 0x6,0x56,0x43, + 0x6,0x56,0x49, 0x4,0x3a,0x25, 0x4,0x3f,0x6b, 0x6,0x56,0x46, + 0x5,0x41,0x62, 0x6,0x56,0x4c, 0x6,0x56,0x4d, 0x4,0x3f,0x72, + 0x6,0x56,0x4a, 0xf,0x44,0x57, 0xf,0x44,0x58, 0xf,0x44,0x59, + 0xf,0x44,0x5a, 0xf,0x44,0x5b, 0xf,0x44,0x5c, 0xf,0x44,0x5d, + 0xf,0x44,0x5e, 0xf,0x44,0x5f, 0xf,0x44,0x60, 0xf,0x44,0x61, + 0xf,0x44,0x62, 0x6,0x56,0x47, 0x4,0x3f,0x70, 0x4,0x45,0x78, + 0x5,0x48,0x50, 0x4,0x45,0x76, 0x5,0x48,0x52, 0x6,0x60,0x3f, + 0x6,0x60,0x3e, 0x5,0x48,0x56, 0x4,0x45,0x7a, 0x5,0x48,0x55, + 0x4,0x45,0x77, 0x6,0x60,0x39, 0x6,0x60,0x43, 0x6,0x60,0x42, + 0x6,0x60,0x36, 0x4,0x45,0x7d, 0x5,0x48,0x4f, 0x5,0x41,0x63, + 0x6,0x60,0x41, 0x5,0x48,0x51, 0x6,0x60,0x3c, 0x6,0x60,0x34, + 0x5,0x48,0x53, 0x5,0x48,0x57, 0x6,0x60,0x40, 0x6,0x60,0x3b, + 0x4,0x46,0x22, 0x6,0x60,0x38, 0xf,0x4b,0x2e, 0xf,0x4b,0x2f, + 0xf,0x4b,0x30, 0xf,0x4b,0x31, 0xf,0x4b,0x32, 0xf,0x4b,0x33, + 0xf,0x4b,0x34, 0xf,0x4b,0x35, 0xf,0x4b,0x36, 0xf,0x4b,0x37, + 0x6,0x60,0x35, 0x6,0x60,0x37, 0x6,0x60,0x3d, 0x4,0x4c,0x38, + 0x4,0x4c,0x43, 0x7,0x26,0x60, 0x4,0x4c,0x42, 0x4,0x4c,0x3b, + 0x5,0x4f,0x5b, 0x5,0x4f,0x59, 0x4,0x52,0x48, 0x5,0x4f,0x58, + 0x5,0x4f,0x5d, 0x5,0x4f,0x55, 0x4,0x4c,0x46, 0x5,0x4f,0x5a, + 0x7,0x26,0x6c, 0x7,0x26,0x5e, 0x7,0x26,0x64, 0x5,0x4f,0x5c, + 0x5,0x4f,0x52, 0x7,0x26,0x61, 0x7,0x26,0x66, 0x5,0x4f,0x57, + 0x4,0x4c,0x41, 0x4,0x4c,0x39, 0x7,0x26,0x5d, 0x7,0x26,0x65, + 0x7,0x26,0x5c, 0x7,0x26,0x67, 0x6,0x60,0x3a, 0x7,0x26,0x6d, + 0x7,0x26,0x6b, 0x5,0x4f,0x51, 0x5,0x4f,0x56, 0x5,0x4f,0x5e, + 0xf,0x51,0x30, 0xf,0x51,0x31, 0xf,0x51,0x32, 0xf,0x51,0x33, + 0xf,0x51,0x34, 0xf,0x51,0x35, 0xf,0x51,0x38, 0xf,0x51,0x39, + 0xf,0x51,0x3a, 0xf,0x51,0x3d, 0xf,0x51,0x3e, 0xf,0x51,0x3f, + 0x7,0x26,0x62, 0x7,0x26,0x68, 0x7,0x26,0x5f, 0x7,0x26,0x63, + 0x7,0x31,0x46, 0x4,0x52,0x46, 0x7,0x31,0x43, 0x7,0x31,0x44, + 0x4,0x52,0x4a, 0x7,0x31,0x40, 0x7,0x31,0x3d, 0x5,0x56,0x74, + 0x5,0x56,0x76, 0x7,0x31,0x31, 0x7,0x31,0x42, 0x7,0x31,0x32, + 0x7,0x3a,0x36, 0x7,0x31,0x33, 0x7,0x31,0x36, 0x5,0x56,0x75, + 0x5,0x56,0x77, 0x5,0x56,0x73, 0x5,0x5d,0x45, 0x4,0x52,0x45, + 0x5,0x56,0x71, 0x5,0x56,0x72, 0x4,0x52,0x4b, 0x7,0x31,0x3a, + 0x7,0x31,0x37, 0x7,0x31,0x38, 0x7,0x31,0x41, 0x4,0x52,0x4d, + 0x7,0x31,0x35, 0x5,0x56,0x79, 0x7,0x31,0x34, 0x7,0x31,0x45, + 0x7,0x31,0x3b, 0x5,0x56,0x78, 0x7,0x31,0x3f, 0x7,0x31,0x3e, + 0x7,0x31,0x39, 0x7,0x31,0x3c, 0xf,0x56,0x76, 0xf,0x56,0x77, + 0xf,0x56,0x78, 0xf,0x56,0x79, 0xf,0x56,0x7a, 0xf,0x56,0x7b, + 0xf,0x56,0x7c, 0xf,0x56,0x7d, 0xf,0x56,0x7e, 0x7,0x3a,0x44, + 0x7,0x3a,0x43, 0x5,0x5d,0x43, 0x5,0x5d,0x40, 0x4,0x57,0x71, + 0x7,0x3a,0x37, 0x5,0x5d,0x41, 0x7,0x3a,0x42, 0x4,0x57,0x6f, + 0x7,0x3a,0x3a, 0x5,0x5d,0x44, 0x5,0x5d,0x3e, 0x7,0x3a,0x3e, + 0x7,0x3a,0x3b, 0x7,0x3a,0x3c, 0x7,0x3a,0x40, 0x5,0x5d,0x42, + 0x7,0x3a,0x41, 0x7,0x3a,0x3d, 0x5,0x5d,0x47, 0xf,0x5b,0x73, + 0xf,0x5b,0x74, 0xf,0x5b,0x75, 0xf,0x5b,0x77, 0xf,0x5b,0x78, + 0xf,0x5b,0x79, 0xf,0x5b,0x7a, 0xf,0x5b,0x7b, 0xf,0x5b,0x7c, + 0xf,0x5b,0x7d, 0xf,0x5b,0x7e, 0xf,0x5c,0x21, 0xf,0x5c,0x22, + 0x7,0x3a,0x3f, 0x7,0x3a,0x38, 0x4,0x5c,0x64, 0x4,0x5c,0x5c, + 0x7,0x41,0x4e, 0x4,0x5c,0x63, 0x4,0x5c,0x5d, 0x7,0x41,0x4d, + 0x7,0x41,0x54, 0x4,0x5c,0x61, 0x4,0x57,0x70, 0x7,0x41,0x49, + 0x5,0x63,0x55, 0x5,0x63,0x58, 0x5,0x63,0x57, 0x7,0x41,0x4b, + 0x7,0x41,0x51, 0x5,0x63,0x56, 0x7,0x41,0x4a, 0x7,0x41,0x4f, + 0x7,0x41,0x52, 0x7,0x41,0x4c, 0x7,0x41,0x57, 0x7,0x41,0x55, + 0x7,0x41,0x50, 0x7,0x41,0x5b, 0x5,0x63,0x5a, 0x7,0x41,0x56, + 0xf,0x60,0x2a, 0xf,0x60,0x2b, 0xf,0x60,0x2c, 0xf,0x60,0x2d, + 0xf,0x60,0x2e, 0xf,0x60,0x2f, 0xf,0x60,0x30, 0xf,0x60,0x31, + 0xf,0x60,0x32, 0x5,0x63,0x59, 0x7,0x41,0x5c, 0x7,0x41,0x5a, + 0x7,0x41,0x58, 0x7,0x41,0x53, 0x4,0x60,0x64, 0x4,0x60,0x65, + 0x7,0x48,0x5f, 0x4,0x60,0x69, 0x7,0x48,0x67, 0x5,0x68,0x76, + 0x7,0x48,0x64, 0x4,0x60,0x67, 0x7,0x48,0x66, 0x4,0x60,0x6b, + 0x5,0x68,0x79, 0x4,0x60,0x60, 0x5,0x68,0x7a, 0x7,0x48,0x61, + 0x7,0x47,0x4b, 0x4,0x60,0x61, 0x7,0x48,0x5d, 0x5,0x68,0x77, + 0x7,0x48,0x63, 0x7,0x48,0x5b, 0x7,0x48,0x62, 0x5,0x68,0x78, + 0x7,0x48,0x59, 0x7,0x48,0x5a, 0x7,0x48,0x60, 0x7,0x48,0x5e, + 0xf,0x63,0x40, 0xf,0x63,0x41, 0xf,0x63,0x43, 0xf,0x63,0x44, + 0xf,0x63,0x45, 0x7,0x4a,0x73, 0x7,0x48,0x5c, 0x7,0x48,0x65, + 0x4,0x60,0x6a, 0x7,0x4e,0x7d, 0x7,0x4e,0x7c, 0x5,0x6d,0x23, + 0x5,0x6d,0x21, 0x4,0x64,0x25, 0x7,0x4e,0x7e, 0x7,0x4f,0x23, + 0x7,0x4e,0x7b, 0x7,0x54,0x42, 0x7,0x48,0x58, 0x5,0x6d,0x24, + 0x7,0x4f,0x24, 0x7,0x4f,0x26, 0x7,0x4e,0x7a, 0x4,0x66,0x79, + 0x7,0x4f,0x22, 0x7,0x4e,0x79, 0x7,0x4f,0x25, 0xf,0x65,0x6c, + 0xf,0x65,0x6d, 0xf,0x65,0x6e, 0xf,0x65,0x70, 0xf,0x65,0x71, + 0x7,0x4f,0x21, 0x5,0x70,0x72, 0x4,0x66,0x75, 0x7,0x54,0x43, + 0x5,0x70,0x73, 0x4,0x66,0x78, 0x4,0x66,0x76, 0x4,0x66,0x77, + 0x7,0x58,0x5e, 0x7,0x4f,0x27, 0x7,0x54,0x3f, 0x7,0x54,0x3e, + 0x7,0x54,0x41, 0xf,0x68,0x2c, 0xf,0x68,0x2d, 0xf,0x68,0x2e, + 0xf,0x68,0x2f, 0x4,0x66,0x74, 0x7,0x54,0x40, 0x5,0x70,0x71, + 0x7,0x54,0x44, 0x5,0x73,0x7b, 0x7,0x58,0x59, 0x5,0x73,0x7c, + 0x5,0x73,0x79, 0x4,0x69,0x29, 0x5,0x76,0x3a, 0x7,0x58,0x5d, + 0x5,0x73,0x7a, 0x7,0x58,0x5b, 0xf,0x69,0x63, 0xf,0x69,0x64, + 0xf,0x69,0x65, 0xf,0x69,0x66, 0x7,0x58,0x5a, 0x7,0x58,0x5c, + 0x4,0x69,0x4b, 0x4,0x6a,0x67, 0x7,0x58,0x5f, 0x7,0x5c,0x3a, + 0x7,0x5c,0x3b, 0x4,0x6a,0x68, 0x4,0x6a,0x69, 0x4,0x6b,0x7a, + 0x5,0x77,0x78, 0x7,0x5f,0x37, 0x7,0x5f,0x35, 0xf,0x6b,0x5d, + 0x7,0x5f,0x36, 0x7,0x5f,0x38, 0x5,0x79,0x3a, 0x7,0x5f,0x34, + 0x5,0x79,0x39, 0x7,0x61,0x34, 0x7,0x62,0x4f, 0x7,0x62,0x4e, + 0x7,0x63,0x63, 0xf,0x6c,0x69, 0x7,0x63,0x65, 0x7,0x63,0x64, + 0x7,0x64,0x55, 0x5,0x7b,0x65, 0xf,0x6d,0x30, 0x7,0x65,0x75, + 0x6,0x25,0x42, 0x4,0x2a,0x78, 0x5,0x2b,0x28, 0x4,0x2f,0x28, + 0x6,0x3a,0x66, 0x5,0x2f,0x5b, 0x5,0x34,0x61, 0x6,0x43,0x2d, + 0x5,0x3b,0x34, 0x6,0x43,0x2f, 0x6,0x43,0x2e, 0x6,0x4c,0x74, + 0x4,0x3a,0x29, 0x6,0x4c,0x73, 0x5,0x3b,0x33, 0xf,0x3e,0x2f, + 0x6,0x56,0x50, 0x6,0x56,0x4f, 0x4,0x3f,0x74, 0x4,0x46,0x24, + 0x6,0x60,0x45, 0x5,0x48,0x58, 0x6,0x60,0x44, 0x7,0x26,0x6e, + 0xf,0x4b,0x39, 0xf,0x4b,0x3a, 0xf,0x4b,0x3b, 0x7,0x26,0x70, + 0x4,0x4c,0x47, 0xf,0x51,0x40, 0xf,0x51,0x41, 0x7,0x26,0x6f, + 0x5,0x56,0x7b, 0x5,0x56,0x7a, 0xf,0x57,0x22, 0xf,0x57,0x21, + 0x5,0x5d,0x49, 0x7,0x3a,0x45, 0x5,0x5d,0x48, 0xf,0x5a,0x58, + 0xf,0x5c,0x23, 0xf,0x5c,0x24, 0x7,0x41,0x5d, 0x7,0x41,0x5e, + 0xf,0x60,0x33, 0x7,0x48,0x68, 0x4,0x60,0x6c, 0xf,0x63,0x46, + 0x5,0x70,0x74, 0x4,0x64,0x27, 0x4,0x66,0x7a, 0x7,0x54,0x45, + 0x4,0x6a,0x6a, 0x7,0x5c,0x3c, 0xf,0x6a,0x6b, 0x7,0x5f,0x3a, + 0x7,0x5f,0x39, 0x5,0x7a,0x34, 0x7,0x66,0x2a, 0x6,0x22,0x29, + 0x6,0x22,0x28, 0x4,0x24,0x6a, 0x6,0x25,0x44, 0x6,0x25,0x45, + 0x6,0x28,0x73, 0xf,0x21,0x7c, 0x6,0x25,0x43, 0xf,0x25,0x28, + 0xf,0x25,0x2a, 0x6,0x2d,0x53, 0x6,0x33,0x6a, 0x4,0x27,0x5d, + 0x6,0x33,0x69, 0x6,0x2d,0x54, 0x4,0x27,0x5e, 0x6,0x28,0x74, + 0x4,0x24,0x6b, 0x6,0x33,0x6b, 0x4,0x2a,0x7a, 0x4,0x2a,0x7c, + 0xf,0x25,0x56, 0x5,0x2b,0x29, 0xf,0x28,0x49, 0x5,0x27,0x52, + 0x6,0x3a,0x67, 0x6,0x3a,0x68, 0x6,0x3a,0x69, 0x5,0x2f,0x5f, + 0x6,0x3a,0x6c, 0x6,0x3a,0x6a, 0x4,0x2f,0x2c, 0x4,0x2f,0x2b, + 0x6,0x33,0x6e, 0x6,0x33,0x6c, 0x6,0x33,0x6f, 0x6,0x43,0x35, + 0xf,0x29,0x39, 0x5,0x2f,0x5d, 0x6,0x43,0x30, 0x6,0x43,0x31, + 0x6,0x43,0x32, 0x6,0x43,0x34, 0x6,0x43,0x36, 0xf,0x31,0x79, + 0x6,0x33,0x6d, 0x6,0x36,0x7a, 0x5,0x2b,0x2a, 0x4,0x2a,0x7d, + 0x6,0x43,0x33, 0x6,0x4c,0x77, 0x6,0x43,0x37, 0x6,0x3a,0x6d, + 0x6,0x4c,0x76, 0x6,0x43,0x38, 0x5,0x2f,0x5e, 0x5,0x34,0x62, + 0xf,0x37,0x5c, 0x6,0x4c,0x75, 0x5,0x3b,0x36, 0x5,0x3b,0x35, + 0x4,0x3a,0x2c, 0x6,0x4c,0x78, 0xf,0x3e,0x30, 0x6,0x56,0x52, + 0x5,0x41,0x67, 0x6,0x56,0x54, 0x6,0x4c,0x7a, 0x5,0x41,0x64, + 0x5,0x41,0x66, 0x6,0x56,0x53, 0x6,0x56,0x55, 0x6,0x4c,0x79, + 0x6,0x56,0x56, 0xf,0x3e,0x31, 0x6,0x56,0x51, 0xf,0x44,0x63, + 0x6,0x60,0x46, 0x6,0x60,0x48, 0x6,0x60,0x49, 0x6,0x60,0x4a, + 0x6,0x60,0x4b, 0x6,0x60,0x4c, 0x6,0x60,0x4d, 0x6,0x60,0x50, + 0x5,0x48,0x5b, 0x7,0x26,0x75, 0x6,0x60,0x4e, 0x5,0x48,0x5a, + 0x6,0x56,0x57, 0x5,0x48,0x59, 0x6,0x60,0x4f, 0x6,0x60,0x47, + 0xf,0x4b,0x3c, 0x7,0x26,0x71, 0x7,0x26,0x72, 0x7,0x26,0x73, + 0x7,0x26,0x74, 0x5,0x4f,0x62, 0x5,0x4f,0x5f, 0x6,0x60,0x52, + 0x7,0x26,0x76, 0x5,0x4f,0x60, 0x5,0x4f,0x61, 0x6,0x60,0x51, + 0xf,0x51,0x42, 0xf,0x51,0x43, 0x7,0x25,0x73, 0x7,0x31,0x47, + 0x7,0x31,0x48, 0x7,0x31,0x4c, 0x7,0x31,0x49, 0x5,0x56,0x7c, + 0x7,0x31,0x4b, 0x4,0x52,0x51, 0x7,0x3a,0x4e, 0x7,0x31,0x4a, + 0x7,0x31,0x4d, 0x5,0x4f,0x63, 0x5,0x56,0x7d, 0x4,0x52,0x50, + 0x7,0x26,0x77, 0x7,0x26,0x78, 0x7,0x3a,0x47, 0x7,0x3a,0x48, + 0x7,0x3a,0x4b, 0x5,0x5d,0x4a, 0x7,0x31,0x4e, 0x4,0x57,0x74, + 0x5,0x63,0x5b, 0x7,0x3a,0x4c, 0x7,0x3a,0x4d, 0xf,0x5c,0x25, + 0xf,0x57,0x23, 0x7,0x41,0x5f, 0x7,0x41,0x60, 0x7,0x41,0x62, + 0x7,0x41,0x64, 0x4,0x5c,0x67, 0x4,0x5c,0x66, 0x5,0x63,0x5c, + 0x7,0x41,0x63, 0x7,0x48,0x69, 0x7,0x3a,0x4a, 0x5,0x63,0x5e, + 0x5,0x68,0x7b, 0x7,0x48,0x6c, 0x4,0x60,0x6e, 0x7,0x48,0x6a, + 0x7,0x48,0x6b, 0x7,0x4f,0x28, 0x7,0x4f,0x29, 0x7,0x4f,0x2a, + 0x7,0x4f,0x2b, 0x5,0x6d,0x25, 0x5,0x6d,0x27, 0x7,0x4f,0x2c, + 0x5,0x6d,0x26, 0x5,0x6d,0x28, 0x7,0x54,0x46, 0x7,0x4f,0x2d, + 0x5,0x77,0x7a, 0x4,0x6b,0x7c, 0x7,0x5f,0x3b, 0x5,0x77,0x7b, + 0x5,0x77,0x79, 0x7,0x61,0x35, 0x7,0x62,0x50, 0x7,0x63,0x66, + 0x7,0x64,0x56, 0x7,0x65,0x3c, 0x4,0x24,0x6c, 0x4,0x23,0x2c, + 0xf,0x21,0x60, 0x6,0x2d,0x56, 0x5,0x27,0x53, 0x6,0x2d,0x55, + 0xf,0x2d,0x24, 0x6,0x33,0x71, 0x6,0x33,0x70, 0x4,0x2a,0x7e, + 0xf,0x28,0x4b, 0x6,0x3a,0x6e, 0x6,0x3a,0x6f, 0x6,0x43,0x3b, + 0x6,0x3a,0x73, 0x6,0x3a,0x72, 0x6,0x3a,0x71, 0x6,0x3a,0x70, + 0x6,0x43,0x3a, 0xf,0x31,0x7a, 0xf,0x31,0x7b, 0x6,0x43,0x3d, + 0x5,0x34,0x64, 0x4,0x3a,0x2e, 0x6,0x43,0x3e, 0x4,0x34,0x39, + 0x5,0x34,0x65, 0xf,0x37,0x5d, 0x5,0x34,0x63, 0x6,0x43,0x39, + 0xf,0x37,0x5e, 0xf,0x37,0x5f, 0x6,0x43,0x3f, 0x5,0x3b,0x39, + 0x5,0x3b,0x37, 0x6,0x4c,0x7d, 0x4,0x3a,0x2f, 0x6,0x4d,0x21, + 0x5,0x3b,0x38, 0x6,0x4c,0x7e, 0x6,0x4c,0x7c, 0x6,0x4d,0x22, + 0x6,0x47,0x21, 0x6,0x56,0x5a, 0x5,0x41,0x68, 0x6,0x56,0x5b, + 0x6,0x56,0x58, 0x5,0x41,0x69, 0x6,0x56,0x59, 0x6,0x56,0x5c, + 0x5,0x41,0x6a, 0xf,0x3e,0x33, 0xf,0x3e,0x34, 0x5,0x48,0x5c, + 0x6,0x60,0x53, 0x6,0x60,0x55, 0x5,0x48,0x5d, 0x6,0x60,0x54, + 0x5,0x4f,0x64, 0x4,0x4c,0x4a, 0x7,0x26,0x7b, 0x7,0x26,0x7c, + 0x4,0x4c,0x4b, 0x7,0x31,0x4f, 0x7,0x26,0x7a, 0x4,0x4c,0x48, + 0x5,0x57,0x21, 0x5,0x56,0x7e, 0x4,0x52,0x52, 0xf,0x57,0x25, + 0x7,0x31,0x50, 0x4,0x57,0x78, 0x4,0x57,0x76, 0x5,0x5d,0x4b, + 0x7,0x3a,0x50, 0x7,0x3a,0x4f, 0x7,0x3a,0x52, 0xf,0x5c,0x26, + 0x4,0x52,0x54, 0x7,0x3a,0x51, 0x5,0x63,0x5d, 0x4,0x5c,0x69, + 0x5,0x63,0x5f, 0x7,0x41,0x69, 0x7,0x41,0x6a, 0x4,0x5c,0x6d, + 0x7,0x41,0x67, 0x7,0x41,0x68, 0x7,0x41,0x66, 0xf,0x57,0x24, + 0xf,0x60,0x34, 0xf,0x60,0x35, 0x4,0x5c,0x6c, 0x5,0x68,0x7c, + 0x7,0x48,0x70, 0x5,0x76,0x3b, 0x7,0x48,0x6f, 0x7,0x4f,0x2e, + 0x7,0x48,0x6e, 0x5,0x6d,0x29, 0x7,0x4f,0x2f, 0x7,0x4f,0x30, + 0x7,0x4f,0x31, 0x7,0x4f,0x32, 0x7,0x41,0x65, 0x5,0x70,0x75, + 0x7,0x54,0x47, 0x7,0x54,0x48, 0x5,0x73,0x7d, 0x7,0x58,0x60, + 0x7,0x5c,0x3e, 0x7,0x5c,0x3d, 0x7,0x61,0x36, 0x7,0x63,0x67, + 0x7,0x65,0x5e, 0x6,0x2d,0x57, 0x6,0x33,0x75, 0x6,0x33,0x72, + 0x6,0x33,0x76, 0x5,0x2b,0x2b, 0x4,0x2b,0x22, 0x4,0x2b,0x21, + 0x4,0x2b,0x24, 0x6,0x33,0x74, 0x4,0x2b,0x23, 0xf,0x2d,0x25, + 0xf,0x2d,0x26, 0x6,0x33,0x73, 0x4,0x2f,0x33, 0x6,0x3a,0x76, + 0x5,0x2f,0x61, 0x5,0x2f,0x63, 0x5,0x2f,0x60, 0x4,0x2f,0x31, + 0x4,0x2f,0x36, 0x4,0x2f,0x35, 0x6,0x3a,0x75, 0x5,0x2f,0x62, + 0x4,0x2f,0x34, 0x4,0x2f,0x32, 0x6,0x3a,0x77, 0xf,0x2f,0x63, + 0xf,0x2f,0x64, 0x4,0x2f,0x37, 0xf,0x31,0x7c, 0x5,0x34,0x66, + 0x6,0x43,0x41, 0x6,0x43,0x40, 0x6,0x43,0x42, 0x6,0x43,0x43, + 0x6,0x43,0x44, 0x6,0x43,0x46, 0x6,0x43,0x47, 0x4,0x34,0x3f, + 0x6,0x43,0x45, 0x5,0x3b,0x3b, 0x4,0x3a,0x32, 0x6,0x4d,0x26, + 0x6,0x4d,0x27, 0x6,0x4d,0x2d, 0x5,0x3b,0x3d, 0x4,0x3a,0x36, + 0x6,0x4d,0x2e, 0x6,0x4d,0x28, 0x6,0x4d,0x25, 0x6,0x4d,0x2f, + 0x6,0x4d,0x30, 0x5,0x3b,0x3c, 0x6,0x4d,0x2a, 0x6,0x4d,0x2c, + 0x6,0x4d,0x2b, 0xf,0x3e,0x35, 0xf,0x3e,0x36, 0x6,0x4d,0x29, + 0x5,0x41,0x6e, 0x5,0x41,0x6b, 0x4,0x3f,0x79, 0x6,0x56,0x5d, + 0x6,0x56,0x5e, 0x6,0x56,0x5f, 0x5,0x41,0x6d, 0x5,0x41,0x6c, + 0xf,0x44,0x64, 0x6,0x4d,0x24, 0x5,0x48,0x65, 0x5,0x48,0x5e, + 0x6,0x60,0x57, 0x5,0x48,0x5f, 0x5,0x48,0x63, 0x5,0x48,0x60, + 0x5,0x48,0x64, 0x5,0x48,0x61, 0x5,0x48,0x62, 0x6,0x60,0x56, + 0x5,0x48,0x66, 0xf,0x4b,0x3d, 0xf,0x4b,0x3e, 0xf,0x4b,0x3f, + 0xf,0x4b,0x40, 0x5,0x4f,0x6a, 0x5,0x4f,0x6b, 0x7,0x26,0x7e, + 0x5,0x4f,0x68, 0x4,0x4c,0x4c, 0x5,0x4f,0x6c, 0x5,0x4f,0x65, + 0x7,0x26,0x7d, 0x5,0x4f,0x67, 0xf,0x51,0x46, 0x6,0x60,0x59, + 0x5,0x4f,0x66, 0x7,0x27,0x24, 0x7,0x27,0x25, 0x7,0x27,0x21, + 0x4,0x4c,0x4e, 0x7,0x27,0x22, 0x4,0x4c,0x4d, 0x7,0x27,0x23, + 0xf,0x51,0x44, 0xf,0x51,0x45, 0x7,0x31,0x51, 0x7,0x31,0x53, + 0x5,0x57,0x25, 0x7,0x31,0x56, 0x7,0x31,0x52, 0x7,0x31,0x54, + 0x4,0x52,0x57, 0x5,0x57,0x23, 0x5,0x57,0x26, 0x5,0x57,0x24, + 0x5,0x4f,0x69, 0x5,0x57,0x22, 0x7,0x31,0x55, 0x5,0x57,0x27, + 0xf,0x57,0x26, 0x4,0x57,0x79, 0x7,0x3a,0x54, 0x5,0x5d,0x4c, + 0x7,0x3a,0x55, 0x7,0x48,0x71, 0x5,0x5d,0x4d, 0x7,0x3a,0x53, + 0xf,0x5c,0x27, 0xf,0x5c,0x28, 0x5,0x63,0x60, 0x4,0x5c,0x6e, + 0x7,0x41,0x71, 0x5,0x5d,0x4e, 0x4,0x5c,0x6f, 0x7,0x41,0x6d, + 0x7,0x41,0x6f, 0x7,0x41,0x6c, 0x7,0x41,0x70, 0x7,0x41,0x6e, + 0xf,0x60,0x36, 0xf,0x60,0x37, 0x7,0x41,0x6b, 0x4,0x60,0x70, + 0x5,0x68,0x7e, 0x5,0x68,0x7d, 0x7,0x48,0x72, 0x7,0x4f,0x35, + 0x7,0x4f,0x36, 0xf,0x65,0x72, 0x7,0x4f,0x33, 0x4,0x66,0x7c, + 0x7,0x54,0x49, 0x7,0x54,0x4b, 0x7,0x4f,0x34, 0x7,0x54,0x4a, + 0x7,0x58,0x62, 0x7,0x58,0x63, 0x7,0x58,0x61, 0x6,0x25,0x46, + 0x6,0x2d,0x58, 0x6,0x28,0x75, 0x4,0x27,0x5f, 0x4,0x27,0x60, + 0x6,0x3a,0x78, 0x4,0x34,0x40, 0x5,0x2b,0x2c, 0xf,0x37,0x60, + 0xf,0x37,0x61, 0x6,0x43,0x48, 0x6,0x4d,0x31, 0x7,0x27,0x26, + 0x7,0x31,0x58, 0x7,0x31,0x57, 0xf,0x6b,0x5e, 0x6,0x2d,0x59, + 0x6,0x2d,0x5a, 0x5,0x21,0x79, 0xf,0x28,0x4c, 0x4,0x2f,0x39, + 0x5,0x34,0x67, 0x5,0x3b,0x3e, 0x5,0x41,0x6f, 0x6,0x60,0x5a, + 0x7,0x27,0x27, 0x7,0x27,0x29, 0x5,0x48,0x67, 0x7,0x31,0x5a, + 0x7,0x31,0x59, 0x7,0x3a,0x56, 0x5,0x23,0x21, 0x6,0x2d,0x5b, + 0xf,0x28,0x4d, 0x6,0x33,0x77, 0xf,0x2d,0x27, 0x6,0x33,0x78, + 0xf,0x31,0x7e, 0x5,0x34,0x68, 0xf,0x37,0x62, 0x6,0x43,0x49, + 0x4,0x3a,0x37, 0x5,0x3b,0x41, 0x5,0x3b,0x40, 0x4,0x3f,0x7b, + 0x6,0x56,0x60, 0x6,0x60,0x5c, 0x5,0x48,0x6c, 0x5,0x48,0x68, + 0x5,0x48,0x6d, 0x5,0x48,0x6a, 0x5,0x48,0x69, 0x5,0x48,0x6b, + 0x4,0x46,0x31, 0xf,0x44,0x65, 0x6,0x60,0x5b, 0x5,0x4f,0x6f, + 0x5,0x4f,0x70, 0x5,0x4f,0x71, 0x5,0x4f,0x6d, 0x5,0x4f,0x6e, + 0x7,0x27,0x2a, 0x5,0x57,0x29, 0x5,0x57,0x28, 0x4,0x52,0x58, + 0x4,0x52,0x59, 0x7,0x31,0x5c, 0x7,0x31,0x5d, 0x7,0x31,0x5b, + 0xf,0x51,0x47, 0x5,0x5d,0x4f, 0x4,0x57,0x7c, 0x7,0x3a,0x5a, + 0x7,0x3a,0x57, 0x7,0x3a,0x58, 0xf,0x57,0x29, 0x5,0x63,0x61, + 0x4,0x57,0x7e, 0x7,0x41,0x72, 0x7,0x3a,0x59, 0x7,0x48,0x75, + 0x5,0x63,0x62, 0x7,0x41,0x74, 0x7,0x41,0x73, 0xf,0x5c,0x29, + 0xf,0x5c,0x2a, 0x7,0x48,0x74, 0x5,0x69,0x21, 0x7,0x48,0x73, + 0x4,0x66,0x7e, 0x7,0x54,0x4c, 0x4,0x6a,0x6c, 0x5,0x77,0x7c, + 0x5,0x79,0x3b, 0x5,0x27,0x55, 0x5,0x27,0x54, 0x6,0x2d,0x5e, + 0xf,0x28,0x4e, 0xf,0x28,0x4f, 0x6,0x2d,0x5d, 0x5,0x2b,0x2f, + 0x5,0x2b,0x2d, 0x5,0x2b,0x2e, 0x4,0x2f,0x3c, 0x6,0x3a,0x7e, + 0x4,0x2f,0x3b, 0x6,0x3a,0x7a, 0x5,0x2f,0x64, 0x6,0x3b,0x22, + 0xf,0x32,0x21, 0xf,0x32,0x24, 0xf,0x32,0x26, 0xf,0x32,0x27, + 0x6,0x3a,0x7b, 0xf,0x32,0x22, 0x6,0x3a,0x7d, 0x6,0x3a,0x7c, + 0x6,0x3b,0x23, 0x6,0x3a,0x79, 0xf,0x32,0x25, 0x5,0x2f,0x65, + 0x6,0x43,0x4b, 0x4,0x34,0x43, 0x4,0x34,0x42, 0x4,0x34,0x44, + 0x6,0x43,0x4d, 0x5,0x34,0x69, 0x6,0x43,0x4f, 0x6,0x43,0x4e, + 0x6,0x43,0x4c, 0x6,0x43,0x4a, 0xf,0x37,0x63, 0xf,0x37,0x64, + 0xf,0x37,0x65, 0xf,0x37,0x66, 0x5,0x3b,0x42, 0x6,0x4d,0x33, + 0x6,0x4d,0x34, 0x5,0x3b,0x43, 0x6,0x4d,0x35, 0xf,0x3e,0x37, + 0xf,0x3e,0x38, 0xf,0x3e,0x39, 0xf,0x3e,0x3a, 0xf,0x3e,0x3c, + 0xf,0x3e,0x3d, 0xf,0x3e,0x3e, 0xf,0x3e,0x3f, 0xf,0x3e,0x40, + 0x6,0x4d,0x32, 0xf,0x3e,0x3b, 0x6,0x56,0x62, 0x6,0x56,0x66, + 0x5,0x41,0x71, 0x5,0x41,0x72, 0x6,0x56,0x61, 0x6,0x56,0x6b, + 0x6,0x56,0x69, 0x6,0x56,0x67, 0x5,0x41,0x73, 0x6,0x56,0x68, + 0x6,0x56,0x64, 0x6,0x56,0x6a, 0x6,0x56,0x63, 0xf,0x44,0x66, + 0xf,0x44,0x67, 0x6,0x56,0x65, 0x5,0x48,0x70, 0x5,0x48,0x71, + 0x5,0x48,0x6e, 0x4,0x4c,0x50, 0x6,0x60,0x5e, 0x5,0x48,0x72, + 0x5,0x48,0x6f, 0x5,0x48,0x73, 0xf,0x4b,0x41, 0xf,0x4b,0x42, + 0xf,0x4b,0x43, 0xf,0x4b,0x44, 0xf,0x4b,0x45, 0xf,0x4b,0x46, + 0xf,0x4b,0x47, 0xf,0x4b,0x48, 0xf,0x4b,0x4a, 0xf,0x4b,0x4b, + 0xf,0x4b,0x4c, 0x6,0x60,0x5f, 0x5,0x4f,0x72, 0x7,0x27,0x2c, + 0x5,0x4f,0x75, 0x7,0x27,0x2f, 0x5,0x4f,0x74, 0x5,0x4f,0x73, + 0x4,0x4c,0x51, 0x5,0x4f,0x77, 0x7,0x27,0x2b, 0x7,0x27,0x30, + 0x5,0x4f,0x76, 0xf,0x51,0x48, 0xf,0x51,0x49, 0xf,0x51,0x4a, + 0xf,0x51,0x4b, 0xf,0x51,0x4c, 0xf,0x51,0x4d, 0xf,0x51,0x4e, + 0xf,0x51,0x4f, 0x7,0x27,0x2d, 0x5,0x57,0x2c, 0x5,0x57,0x2f, + 0x5,0x57,0x2b, 0x5,0x57,0x2d, 0x5,0x57,0x2e, 0x7,0x31,0x61, + 0x7,0x31,0x5f, 0x7,0x31,0x5e, 0xf,0x57,0x2a, 0xf,0x57,0x2b, + 0xf,0x57,0x2c, 0xf,0x57,0x2d, 0xf,0x57,0x2e, 0xf,0x57,0x2f, + 0x7,0x31,0x60, 0x5,0x57,0x2a, 0x5,0x5d,0x50, 0x5,0x5d,0x51, + 0x5,0x5d,0x52, 0x7,0x3a,0x5b, 0x4,0x58,0x25, 0x4,0x58,0x26, + 0x5,0x5d,0x54, 0x5,0x5d,0x53, 0xf,0x5c,0x2c, 0x7,0x3a,0x5d, + 0x7,0x3a,0x5c, 0x3,0x58,0x63, 0x7,0x41,0x77, 0x5,0x63,0x66, + 0x5,0x63,0x63, 0x4,0x5c,0x72, 0x7,0x41,0x79, 0x5,0x5d,0x55, + 0x7,0x41,0x78, 0x5,0x63,0x64, 0x5,0x63,0x65, 0x7,0x41,0x75, + 0xf,0x60,0x38, 0xf,0x60,0x39, 0xf,0x60,0x3a, 0x7,0x41,0x76, + 0xf,0x5c,0x2b, 0xf,0x63,0x47, 0x7,0x48,0x76, 0x5,0x69,0x22, + 0x5,0x69,0x23, 0x7,0x48,0x78, 0x7,0x48,0x77, 0xf,0x63,0x48, + 0xf,0x63,0x49, 0x7,0x4f,0x39, 0xf,0x65,0x73, 0xf,0x65,0x74, + 0xf,0x65,0x75, 0x7,0x4f,0x38, 0x7,0x4f,0x37, 0x5,0x70,0x76, + 0xf,0x68,0x30, 0xf,0x68,0x31, 0x7,0x54,0x4d, 0x7,0x54,0x4e, + 0x5,0x73,0x7e, 0x7,0x58,0x64, 0x4,0x6a,0x6d, 0xf,0x6a,0x6c, + 0xf,0x6b,0x5f, 0xf,0x6c,0x36, 0xf,0x6c,0x50, 0x5,0x21,0x7a, + 0x6,0x2d,0x5f, 0x5,0x2b,0x30, 0x6,0x43,0x50, 0x6,0x4d,0x36, + 0x6,0x48,0x6a, 0x6,0x56,0x6e, 0x6,0x60,0x62, 0x6,0x60,0x61, + 0x7,0x27,0x31, 0xf,0x51,0x50, 0x7,0x31,0x62, 0x7,0x4f,0x3a, + 0x5,0x23,0x25, 0x5,0x23,0x23, 0x6,0x2d,0x60, 0x6,0x2d,0x61, + 0x6,0x25,0x48, 0xf,0x22,0x6c, 0xf,0x22,0x6d, 0x5,0x23,0x24, + 0x5,0x23,0x22, 0x5,0x24,0x73, 0x5,0x24,0x72, 0x6,0x28,0x79, + 0x6,0x28,0x78, 0x6,0x28,0x77, 0x6,0x28,0x76, 0x6,0x33,0x7b, + 0x6,0x33,0x7a, 0x6,0x33,0x79, 0x5,0x27,0x5a, 0x5,0x27,0x5e, + 0x6,0x2d,0x64, 0x4,0x2f,0x43, 0x6,0x2d,0x6d, 0x6,0x2d,0x6e, + 0x6,0x2d,0x62, 0x5,0x27,0x5d, 0x6,0x2d,0x66, 0x5,0x27,0x59, + 0x5,0x27,0x57, 0x6,0x2d,0x6b, 0x5,0x27,0x5b, 0x4,0x27,0x6b, + 0x6,0x2d,0x68, 0x6,0x2d,0x6f, 0xf,0x28,0x50, 0xf,0x28,0x51, + 0xf,0x28,0x53, 0xf,0x28,0x54, 0x6,0x2d,0x6c, 0x4,0x26,0x64, + 0x6,0x2d,0x65, 0x6,0x2d,0x67, 0x5,0x27,0x5c, 0x6,0x2d,0x6a, + 0x6,0x2d,0x63, 0x6,0x3b,0x27, 0x6,0x3b,0x25, 0x4,0x2f,0x3d, + 0x5,0x27,0x56, 0x6,0x3b,0x26, 0x6,0x34,0x2d, 0x4,0x2b,0x2d, + 0x5,0x2b,0x34, 0x6,0x34,0x28, 0x5,0x2b,0x31, 0x5,0x2b,0x38, + 0x6,0x34,0x29, 0x4,0x2b,0x2e, 0x6,0x43,0x54, 0x6,0x34,0x27, + 0x4,0x2b,0x2b, 0x6,0x34,0x2b, 0x4,0x2b,0x30, 0x6,0x34,0x25, + 0x5,0x2b,0x36, 0x6,0x34,0x26, 0x5,0x2b,0x37, 0x5,0x2b,0x32, + 0x4,0x2f,0x48, 0x5,0x2b,0x35, 0x6,0x33,0x7c, 0x6,0x34,0x21, + 0x6,0x34,0x22, 0x6,0x34,0x24, 0xf,0x2d,0x2a, 0xf,0x2d,0x2f, + 0xf,0x37,0x67, 0xf,0x37,0x68, 0x6,0x33,0x7e, 0x6,0x34,0x2f, + 0x6,0x34,0x2c, 0x6,0x34,0x2a, 0x6,0x34,0x30, 0x6,0x34,0x2e, + 0x6,0x43,0x53, 0x6,0x43,0x52, 0xf,0x2d,0x2b, 0x6,0x43,0x55, + 0x6,0x43,0x56, 0x6,0x3b,0x30, 0x6,0x43,0x51, 0xf,0x2d,0x2d, + 0x5,0x2f,0x67, 0x4,0x2f,0x3e, 0x4,0x34,0x45, 0x4,0x2f,0x45, + 0x6,0x3b,0x32, 0x5,0x2f,0x6c, 0x4,0x2f,0x44, 0x6,0x3b,0x2e, + 0x5,0x2f,0x6e, 0x6,0x3b,0x2a, 0x5,0x2f,0x70, 0x5,0x3b,0x44, + 0x5,0x2f,0x6f, 0x6,0x3b,0x29, 0x5,0x2f,0x66, 0x6,0x3b,0x2b, + 0x4,0x2f,0x40, 0x6,0x4d,0x3b, 0x5,0x2f,0x69, 0xf,0x2d,0x29, + 0xf,0x32,0x28, 0xf,0x32,0x29, 0xf,0x32,0x2d, 0xf,0x3e,0x4c, + 0x5,0x2f,0x68, 0x5,0x2e,0x24, 0x6,0x3b,0x2f, 0x6,0x3b,0x2d, + 0x6,0x3b,0x2c, 0x6,0x3b,0x33, 0x6,0x4d,0x3a, 0x6,0x4d,0x38, + 0x6,0x4d,0x39, 0x6,0x4d,0x37, 0x6,0x34,0x23, 0x5,0x2f,0x6b, + 0x5,0x2f,0x71, 0x5,0x2f,0x6a, 0x5,0x34,0x74, 0x6,0x43,0x5b, + 0x6,0x43,0x59, 0x5,0x34,0x6b, 0x4,0x34,0x4e, 0x5,0x34,0x6c, + 0x4,0x2f,0x42, 0x5,0x34,0x71, 0x4,0x34,0x46, 0x4,0x34,0x55, + 0x5,0x41,0x74, 0x4,0x34,0x54, 0x6,0x43,0x57, 0x5,0x34,0x6e, + 0x6,0x43,0x5f, 0x4,0x34,0x49, 0x5,0x34,0x75, 0x5,0x34,0x76, + 0x6,0x43,0x60, 0x6,0x43,0x5e, 0x4,0x34,0x4f, 0x5,0x34,0x72, + 0x6,0x43,0x61, 0x6,0x43,0x62, 0xf,0x37,0x69, 0xf,0x37,0x6b, + 0x6,0x43,0x5c, 0x6,0x43,0x5d, 0x6,0x56,0x6f, 0x6,0x56,0x70, + 0x6,0x56,0x71, 0x5,0x34,0x73, 0x5,0x34,0x6f, 0x5,0x34,0x70, + 0x6,0x4d,0x43, 0x5,0x3b,0x48, 0x6,0x4d,0x3d, 0x5,0x3b,0x45, + 0x6,0x4d,0x4b, 0x6,0x4d,0x42, 0x4,0x3a,0x3c, 0x5,0x3b,0x4a, + 0x6,0x4d,0x4f, 0x6,0x4d,0x3c, 0x6,0x60,0x65, 0x5,0x3b,0x47, + 0x6,0x4d,0x50, 0x6,0x56,0x75, 0x4,0x3a,0x48, 0x5,0x3b,0x4c, + 0x6,0x4d,0x55, 0x6,0x4d,0x4e, 0x6,0x4d,0x4c, 0x6,0x4d,0x53, + 0x5,0x3b,0x46, 0x5,0x48,0x75, 0x6,0x4d,0x3e, 0x6,0x4d,0x47, + 0x6,0x4d,0x4a, 0xf,0x3e,0x41, 0xf,0x3e,0x44, 0xf,0x3e,0x46, + 0xf,0x3e,0x47, 0xf,0x3e,0x48, 0xf,0x3e,0x49, 0xf,0x3e,0x4a, + 0xf,0x3e,0x4b, 0x6,0x4d,0x44, 0x6,0x4d,0x49, 0xf,0x3b,0x63, + 0x6,0x4d,0x4d, 0x6,0x4d,0x41, 0x6,0x4d,0x52, 0x6,0x4d,0x3f, + 0x6,0x4d,0x40, 0x6,0x60,0x63, 0x6,0x60,0x67, 0x6,0x60,0x64, + 0xf,0x3e,0x45, 0x5,0x3b,0x49, 0x6,0x4d,0x46, 0x5,0x34,0x6d, + 0x5,0x3b,0x4b, 0x5,0x3b,0x4e, 0x5,0x3b,0x4f, 0x6,0x4d,0x51, + 0x5,0x3b,0x51, 0x6,0x4d,0x45, 0x6,0x60,0x68, 0x6,0x60,0x66, + 0x5,0x41,0x7d, 0x4,0x40,0x21, 0x5,0x42,0x26, 0x5,0x42,0x21, + 0x5,0x41,0x75, 0x5,0x41,0x79, 0x5,0x42,0x27, 0x6,0x56,0x7d, + 0x4,0x3f,0x7e, 0x6,0x56,0x72, 0x4,0x3a,0x46, 0x5,0x42,0x22, + 0x5,0x41,0x78, 0x6,0x56,0x77, 0x4,0x40,0x24, 0x6,0x56,0x79, + 0x4,0x40,0x22, 0x6,0x57,0x21, 0x6,0x56,0x73, 0x5,0x42,0x29, + 0x6,0x56,0x74, 0x6,0x56,0x78, 0x5,0x42,0x23, 0x6,0x56,0x7c, + 0x5,0x41,0x7b, 0x5,0x41,0x7a, 0x5,0x42,0x25, 0x5,0x42,0x24, + 0x6,0x56,0x7a, 0x5,0x41,0x76, 0x6,0x56,0x7e, 0xf,0x44,0x69, + 0xf,0x44,0x6a, 0xf,0x44,0x6b, 0xf,0x44,0x6c, 0xf,0x44,0x6d, + 0xf,0x44,0x6f, 0xf,0x44,0x71, 0x4,0x40,0x2b, 0x6,0x57,0x23, + 0x6,0x57,0x22, 0xf,0x44,0x70, 0x7,0x27,0x32, 0x7,0x27,0x33, + 0x6,0x56,0x7b, 0x5,0x41,0x7e, 0x5,0x41,0x7c, 0x4,0x46,0x44, + 0x5,0x48,0x7b, 0x4,0x46,0x4c, 0x4,0x46,0x43, 0x5,0x49,0x23, + 0x6,0x60,0x6a, 0x5,0x48,0x7a, 0x4,0x46,0x4a, 0x5,0x49,0x24, + 0x5,0x49,0x21, 0x4,0x46,0x49, 0x5,0x48,0x77, 0x5,0x48,0x7d, + 0x4,0x46,0x3a, 0x4,0x46,0x4b, 0x5,0x48,0x78, 0x6,0x60,0x71, + 0x6,0x60,0x6c, 0x5,0x48,0x76, 0x6,0x60,0x6e, 0x5,0x48,0x79, + 0x6,0x60,0x6d, 0x5,0x48,0x7c, 0x7,0x31,0x63, 0x5,0x49,0x22, + 0x4,0x46,0x48, 0x6,0x60,0x6b, 0xf,0x4b,0x4d, 0xf,0x4b,0x4e, + 0xf,0x4b,0x4f, 0xf,0x4b,0x51, 0xf,0x4b,0x52, 0xf,0x4b,0x55, + 0xf,0x4b,0x53, 0x6,0x60,0x70, 0x6,0x5d,0x5c, 0x5,0x41,0x77, + 0x5,0x48,0x7e, 0x4,0x4c,0x53, 0x5,0x4f,0x7b, 0x7,0x27,0x34, + 0x4,0x4c,0x57, 0x7,0x27,0x3b, 0x5,0x4f,0x7a, 0x4,0x4c,0x59, + 0x7,0x3a,0x60, 0x7,0x27,0x37, 0x5,0x4f,0x7c, 0x7,0x27,0x35, + 0x4,0x4c,0x5a, 0x7,0x3a,0x5e, 0x5,0x4f,0x78, 0x7,0x27,0x38, + 0xf,0x51,0x51, 0xf,0x51,0x52, 0xf,0x51,0x53, 0xf,0x51,0x54, + 0x7,0x27,0x36, 0x7,0x27,0x39, 0x7,0x27,0x3a, 0x7,0x3a,0x5f, + 0x6,0x60,0x69, 0x5,0x4f,0x79, 0xf,0x5c,0x35, 0x7,0x31,0x6c, + 0x5,0x57,0x37, 0x5,0x57,0x32, 0x4,0x52,0x68, 0x4,0x52,0x5d, + 0x5,0x57,0x31, 0x4,0x52,0x5f, 0x7,0x31,0x67, 0x7,0x31,0x6e, + 0x5,0x57,0x35, 0x5,0x57,0x36, 0x4,0x52,0x65, 0x5,0x4f,0x7d, + 0x5,0x57,0x34, 0x7,0x31,0x65, 0x7,0x31,0x6d, 0x5,0x57,0x39, + 0x7,0x31,0x6a, 0x5,0x69,0x24, 0x4,0x52,0x60, 0x7,0x31,0x6f, + 0xf,0x57,0x31, 0xf,0x57,0x33, 0xf,0x57,0x32, 0x7,0x27,0x3c, + 0x7,0x31,0x68, 0x7,0x31,0x69, 0x7,0x31,0x64, 0x7,0x31,0x66, + 0x7,0x31,0x6b, 0x7,0x41,0x7a, 0x7,0x48,0x79, 0x7,0x41,0x7b, + 0x5,0x57,0x3a, 0x5,0x57,0x30, 0x5,0x57,0x3b, 0x5,0x57,0x38, + 0x5,0x57,0x33, 0x7,0x42,0x21, 0x5,0x5d,0x5a, 0x5,0x5d,0x59, + 0x7,0x3a,0x62, 0x4,0x58,0x2e, 0x4,0x58,0x2a, 0x4,0x58,0x29, + 0x5,0x5d,0x58, 0x5,0x5d,0x56, 0x4,0x60,0x71, 0x7,0x48,0x7b, + 0x5,0x5d,0x5e, 0x7,0x3a,0x65, 0xf,0x5c,0x2e, 0xf,0x5c,0x2f, + 0xf,0x5c,0x31, 0xf,0x5c,0x32, 0xf,0x5c,0x33, 0xf,0x5c,0x34, + 0xf,0x5c,0x36, 0xf,0x5c,0x30, 0x7,0x37,0x7e, 0x7,0x3a,0x63, + 0x7,0x48,0x7a, 0x7,0x48,0x7d, 0x5,0x5d,0x5d, 0x7,0x3a,0x61, + 0x5,0x5d,0x5c, 0x5,0x5d,0x57, 0x7,0x3a,0x64, 0x7,0x48,0x7e, + 0x4,0x5c,0x75, 0x5,0x63,0x6a, 0x5,0x63,0x67, 0x5,0x63,0x69, + 0x5,0x63,0x6c, 0x7,0x41,0x7c, 0x5,0x63,0x6e, 0x7,0x41,0x7e, + 0x5,0x63,0x6b, 0x7,0x42,0x23, 0x5,0x63,0x68, 0x5,0x6d,0x2a, + 0x5,0x63,0x6f, 0xf,0x60,0x3b, 0xf,0x60,0x3c, 0xf,0x60,0x3d, + 0xf,0x60,0x40, 0xf,0x60,0x41, 0x7,0x41,0x7d, 0x7,0x42,0x6d, + 0x4,0x5c,0x73, 0x4,0x60,0x72, 0x7,0x49,0x23, 0x7,0x49,0x29, + 0x5,0x69,0x25, 0x5,0x69,0x26, 0x5,0x63,0x6d, 0x7,0x49,0x24, + 0xf,0x63,0x4a, 0x7,0x49,0x28, 0x7,0x49,0x2a, 0xf,0x63,0x4c, + 0xf,0x63,0x4d, 0x7,0x49,0x22, 0x7,0x49,0x26, 0x7,0x49,0x25, + 0x7,0x49,0x27, 0x7,0x49,0x21, 0xf,0x63,0x4b, 0x7,0x49,0x2b, + 0x7,0x4f,0x3d, 0x5,0x6d,0x2e, 0x5,0x6d,0x2d, 0x4,0x64,0x2b, + 0x4,0x64,0x29, 0x5,0x6d,0x2b, 0xf,0x65,0x76, 0x7,0x4f,0x3c, + 0x7,0x4f,0x3b, 0x4,0x67,0x26, 0x7,0x54,0x4f, 0x5,0x70,0x77, + 0x7,0x5c,0x40, 0x7,0x55,0x3a, 0x7,0x5c,0x3f, 0x4,0x69,0x31, + 0x4,0x69,0x2f, 0x7,0x58,0x65, 0xf,0x68,0x33, 0x7,0x5c,0x41, + 0x5,0x76,0x3d, 0x7,0x5c,0x43, 0x7,0x5c,0x45, 0x7,0x5c,0x46, + 0x5,0x76,0x3c, 0x7,0x5c,0x42, 0x4,0x6a,0x6e, 0x7,0x5c,0x47, + 0x7,0x5c,0x48, 0x7,0x5f,0x3d, 0x5,0x77,0x7d, 0x7,0x5f,0x3e, + 0x5,0x79,0x3c, 0x7,0x64,0x57, 0x5,0x7a,0x6f, 0x5,0x7b,0x45, + 0x6,0x28,0x7c, 0x4,0x24,0x71, 0xf,0x2a,0x49, 0x6,0x3b,0x34, + 0xf,0x32,0x2f, 0x6,0x4d,0x56, 0x6,0x4d,0x57, 0xf,0x4b,0x58, + 0xf,0x4b,0x59, 0xf,0x51,0x56, 0x6,0x60,0x73, 0xf,0x5c,0x37, + 0x7,0x42,0x25, 0xf,0x60,0x42, 0x5,0x70,0x79, 0xf,0x68,0x34, + 0xf,0x69,0x67, 0x7,0x65,0x3d, 0x5,0x7c,0x2c, 0x6,0x25,0x4a, + 0x6,0x28,0x7e, 0x4,0x24,0x72, 0x6,0x28,0x7d, 0x6,0x2d,0x70, + 0x5,0x2b,0x3a, 0x6,0x34,0x32, 0xf,0x2d,0x30, 0x5,0x2f,0x72, + 0x6,0x3b,0x36, 0x4,0x2f,0x49, 0xf,0x32,0x30, 0x6,0x3b,0x37, + 0x6,0x3b,0x35, 0x6,0x43,0x66, 0x6,0x43,0x65, 0xf,0x37,0x6d, + 0xf,0x37,0x6e, 0x6,0x4d,0x59, 0x6,0x4d,0x5a, 0x6,0x57,0x24, + 0x5,0x49,0x25, 0xf,0x4b,0x5a, 0x4,0x4c,0x60, 0x4,0x4c,0x61, + 0x5,0x4f,0x7e, 0xf,0x51,0x57, 0x7,0x27,0x3d, 0x4,0x52,0x69, + 0x5,0x57,0x3c, 0x7,0x3a,0x66, 0x5,0x5d,0x60, 0x5,0x5d,0x5f, + 0xf,0x5c,0x38, 0xf,0x60,0x43, 0x5,0x69,0x27, 0x4,0x60,0x75, + 0x5,0x6d,0x31, 0xf,0x63,0x4e, 0x7,0x49,0x2c, 0x5,0x6d,0x2f, + 0x5,0x6d,0x30, 0x7,0x62,0x51, 0x6,0x29,0x21, 0x6,0x2d,0x71, + 0x6,0x2d,0x72, 0x6,0x3b,0x3a, 0xf,0x2d,0x31, 0x6,0x3b,0x38, + 0x6,0x3b,0x39, 0x5,0x34,0x77, 0x4,0x34,0x56, 0x6,0x4d,0x5b, + 0x5,0x42,0x2a, 0x5,0x49,0x26, 0xf,0x4b,0x5b, 0x5,0x50,0x21, + 0x7,0x27,0x3e, 0xf,0x51,0x58, 0x5,0x50,0x22, 0x7,0x31,0x71, + 0x4,0x52,0x6a, 0x5,0x57,0x3d, 0xf,0x57,0x34, 0x4,0x58,0x2f, + 0x5,0x63,0x70, 0x5,0x63,0x71, 0x4,0x24,0x74, 0x6,0x25,0x4b, + 0x6,0x23,0x64, 0x6,0x2d,0x73, 0x6,0x2d,0x74, 0xf,0x2d,0x32, + 0x4,0x2f,0x4b, 0x6,0x34,0x33, 0x6,0x3b,0x3b, 0x6,0x3b,0x41, + 0x6,0x3b,0x3d, 0x6,0x3b,0x3c, 0x4,0x2f,0x4c, 0x6,0x3b,0x3f, + 0x6,0x3b,0x40, 0x6,0x43,0x69, 0x5,0x34,0x78, 0x6,0x3b,0x3e, + 0x6,0x43,0x68, 0x6,0x43,0x6b, 0x6,0x43,0x6a, 0x5,0x3b,0x52, + 0x6,0x4d,0x5c, 0x5,0x3b,0x53, 0x5,0x49,0x27, 0x6,0x57,0x28, + 0x6,0x57,0x27, 0x6,0x57,0x25, 0x6,0x60,0x74, 0x6,0x60,0x7a, + 0x6,0x60,0x75, 0x6,0x60,0x76, 0x5,0x50,0x23, 0x7,0x27,0x3f, + 0x6,0x60,0x77, 0x6,0x60,0x7b, 0x6,0x60,0x78, 0x7,0x27,0x40, + 0x7,0x27,0x41, 0x7,0x27,0x42, 0x6,0x60,0x79, 0x5,0x49,0x28, + 0x5,0x50,0x24, 0x5,0x50,0x25, 0x7,0x27,0x43, 0x7,0x27,0x44, + 0x7,0x31,0x72, 0x7,0x27,0x45, 0x7,0x27,0x46, 0xf,0x57,0x35, + 0x7,0x31,0x74, 0x7,0x31,0x73, 0x5,0x5d,0x62, 0x7,0x31,0x77, + 0x7,0x31,0x76, 0x7,0x31,0x75, 0x5,0x5d,0x61, 0x5,0x5d,0x64, + 0x7,0x3a,0x67, 0x7,0x42,0x28, 0x7,0x42,0x27, 0x5,0x5d,0x65, + 0x4,0x5c,0x77, 0x7,0x42,0x26, 0xf,0x60,0x44, 0xf,0x60,0x45, + 0x7,0x49,0x2d, 0x5,0x63,0x73, 0x5,0x63,0x72, 0x7,0x49,0x2e, + 0x7,0x4f,0x3f, 0x5,0x69,0x28, 0x5,0x6d,0x33, 0x5,0x6d,0x34, + 0x5,0x6d,0x35, 0x7,0x4f,0x3e, 0x7,0x49,0x2f, 0xf,0x63,0x4f, + 0x5,0x69,0x29, 0x7,0x4f,0x40, 0x7,0x4f,0x41, 0x5,0x70,0x7a, + 0xf,0x65,0x78, 0xf,0x68,0x35, 0xf,0x68,0x37, 0x7,0x58,0x66, + 0xf,0x68,0x36, 0x7,0x58,0x67, 0x7,0x5c,0x49, 0x5,0x77,0x7e, + 0x7,0x61,0x37, 0x5,0x79,0x3d, 0x5,0x79,0x3f, 0x5,0x79,0x3e, + 0xf,0x6c,0x6a, 0x7,0x65,0x3e, 0x7,0x65,0x3f, 0x7,0x66,0x53, + 0x5,0x7c,0x50, 0xf,0x25,0x2b, 0x6,0x34,0x34, 0x4,0x2f,0x4e, + 0x4,0x2f,0x4d, 0x6,0x3b,0x42, 0x6,0x3b,0x43, 0x6,0x3b,0x44, + 0x5,0x2f,0x73, 0x5,0x2f,0x74, 0x6,0x43,0x6c, 0x6,0x43,0x6d, + 0x6,0x41,0x7d, 0x6,0x4d,0x60, 0x6,0x4d,0x5f, 0x6,0x4d,0x61, + 0xf,0x3e,0x50, 0x5,0x49,0x29, 0x4,0x46,0x4d, 0x5,0x45,0x53, + 0x4,0x46,0x4e, 0x6,0x57,0x29, 0xf,0x4b,0x5c, 0x6,0x60,0x7c, + 0x6,0x60,0x7e, 0x6,0x60,0x7d, 0x7,0x27,0x47, 0xf,0x51,0x59, + 0x7,0x27,0x49, 0x7,0x27,0x48, 0x7,0x31,0x78, 0x5,0x57,0x3e, + 0x7,0x31,0x79, 0x7,0x3a,0x68, 0xf,0x60,0x46, 0x5,0x63,0x74, + 0x7,0x42,0x2a, 0x7,0x42,0x29, 0x5,0x6d,0x36, 0x5,0x70,0x7b, + 0x7,0x5c,0x4a, 0x5,0x76,0x3e, 0x5,0x50,0x26, 0x5,0x50,0x27, + 0xf,0x60,0x47, 0x7,0x4f,0x42, 0x7,0x5c,0x4b, 0x7,0x5f,0x3f, + 0x7,0x61,0x39, 0x5,0x7a,0x70, 0x5,0x24,0x74, 0x4,0x27,0x71, + 0x4,0x27,0x70, 0x6,0x2d,0x77, 0x6,0x2d,0x76, 0x6,0x2d,0x75, + 0x5,0x27,0x5f, 0x4,0x2b,0x31, 0x4,0x2b,0x35, 0x4,0x2b,0x34, + 0x6,0x34,0x35, 0x6,0x34,0x37, 0x6,0x34,0x36, 0x6,0x3b,0x4a, + 0x5,0x2f,0x75, 0x6,0x3b,0x49, 0x6,0x3b,0x45, 0x5,0x2f,0x76, + 0x4,0x2f,0x52, 0x4,0x2f,0x51, 0x6,0x3b,0x46, 0x6,0x3b,0x47, + 0x6,0x3b,0x48, 0x5,0x34,0x7a, 0x4,0x34,0x59, 0x4,0x34,0x5b, + 0x6,0x43,0x72, 0x5,0x34,0x7b, 0x6,0x43,0x6e, 0x6,0x43,0x6f, + 0xf,0x37,0x71, 0x5,0x34,0x79, 0xf,0x37,0x70, 0xf,0x37,0x72, + 0x5,0x3b,0x54, 0x6,0x4d,0x65, 0x6,0x4d,0x64, 0x4,0x34,0x5a, + 0x4,0x3a,0x52, 0x4,0x3a,0x50, 0x4,0x3a,0x51, 0x4,0x3a,0x53, + 0x6,0x4d,0x66, 0x5,0x42,0x2b, 0x6,0x57,0x2c, 0x5,0x42,0x2c, + 0x6,0x57,0x2a, 0xf,0x44,0x72, 0x6,0x57,0x2b, 0x6,0x57,0x2d, + 0x6,0x57,0x2e, 0x5,0x42,0x2e, 0x6,0x61,0x27, 0x5,0x49,0x2d, + 0x5,0x49,0x2b, 0x4,0x46,0x52, 0x6,0x61,0x22, 0x6,0x61,0x26, + 0xf,0x4b,0x5e, 0xf,0x4b,0x5f, 0xf,0x4b,0x5d, 0x6,0x61,0x23, + 0x5,0x49,0x2a, 0x5,0x50,0x2f, 0x4,0x4c,0x67, 0x4,0x4c,0x66, + 0x5,0x50,0x2e, 0x5,0x50,0x2b, 0x5,0x50,0x2c, 0x5,0x50,0x30, + 0x5,0x50,0x28, 0x7,0x27,0x4f, 0x7,0x27,0x4d, 0x5,0x50,0x31, + 0x7,0x27,0x4a, 0x7,0x27,0x4c, 0x7,0x27,0x4e, 0x7,0x27,0x4b, + 0x5,0x50,0x2d, 0x5,0x50,0x29, 0x5,0x50,0x2a, 0x5,0x57,0x42, + 0x5,0x57,0x3f, 0x5,0x57,0x43, 0x7,0x31,0x7c, 0x5,0x57,0x40, + 0x7,0x32,0x21, 0x7,0x31,0x7d, 0x7,0x32,0x23, 0x5,0x57,0x41, + 0x7,0x32,0x22, 0xf,0x57,0x36, 0x7,0x31,0x7e, 0x7,0x31,0x7b, + 0x7,0x3a,0x6a, 0x4,0x58,0x31, 0x5,0x5d,0x6c, 0x5,0x5d,0x66, + 0x5,0x5d,0x69, 0x5,0x5d,0x68, 0x5,0x5d,0x6a, 0x5,0x5d,0x6b, + 0x4,0x5c,0x79, 0x5,0x63,0x7b, 0x7,0x42,0x2c, 0x5,0x63,0x75, + 0x5,0x63,0x7a, 0x5,0x63,0x7d, 0x5,0x63,0x79, 0x4,0x5c,0x7a, + 0x4,0x5c,0x7b, 0x5,0x63,0x76, 0x5,0x63,0x77, 0x5,0x63,0x7c, + 0x4,0x5c,0x78, 0x7,0x42,0x2d, 0x7,0x42,0x2b, 0x5,0x63,0x78, + 0x7,0x49,0x30, 0x5,0x69,0x2d, 0x5,0x69,0x2c, 0x5,0x69,0x2b, + 0x5,0x69,0x2a, 0x7,0x49,0x31, 0xf,0x63,0x50, 0x7,0x49,0x32, + 0x5,0x6d,0x37, 0x7,0x4f,0x43, 0x5,0x70,0x7d, 0x5,0x70,0x7c, + 0x7,0x54,0x52, 0x5,0x74,0x21, 0x5,0x74,0x22, 0x4,0x69,0x32, + 0x7,0x58,0x68, 0x7,0x54,0x50, 0x7,0x54,0x51, 0x4,0x6a,0x6f, + 0x7,0x5c,0x4c, 0x7,0x61,0x3b, 0x7,0x61,0x3a, 0x7,0x62,0x52, + 0x5,0x7a,0x71, 0x4,0x6e,0x4f, 0x6,0x34,0x38, 0xf,0x37,0x73, + 0x5,0x3b,0x3f, 0xf,0x3e,0x51, 0xf,0x51,0x5a, 0xf,0x5c,0x39, + 0x7,0x4f,0x44, 0x5,0x34,0x7c, 0x5,0x34,0x7d, 0x6,0x43,0x73, + 0x5,0x34,0x7e, 0xf,0x3e,0x52, 0x6,0x57,0x2f, 0x6,0x57,0x30, + 0x6,0x57,0x31, 0x6,0x61,0x29, 0xf,0x4b,0x60, 0x6,0x61,0x2a, + 0x6,0x61,0x28, 0x7,0x27,0x51, 0x7,0x27,0x50, 0x7,0x27,0x52, + 0xf,0x51,0x5b, 0xf,0x51,0x5c, 0xf,0x51,0x5d, 0x5,0x57,0x44, + 0x5,0x57,0x45, 0x7,0x32,0x25, 0x7,0x32,0x24, 0x5,0x6d,0x39, + 0x5,0x6d,0x38, 0x7,0x4f,0x45, 0xf,0x6c,0x37, 0x5,0x21,0x7b, + 0x6,0x23,0x38, 0x4,0x23,0x2e, 0x6,0x25,0x50, 0x6,0x25,0x51, + 0x6,0x2d,0x78, 0x6,0x25,0x4e, 0x5,0x23,0x26, 0x6,0x25,0x4d, + 0xf,0x22,0x6f, 0xf,0x22,0x70, 0xf,0x22,0x6e, 0x6,0x25,0x4c, + 0x4,0x24,0x77, 0x4,0x24,0x78, 0x4,0x24,0x7c, 0x6,0x29,0x22, + 0x4,0x24,0x7a, 0x6,0x29,0x25, 0x6,0x29,0x23, 0x6,0x29,0x24, + 0x6,0x29,0x26, 0xf,0x25,0x2c, 0xf,0x25,0x2d, 0xf,0x25,0x2e, + 0xf,0x25,0x2f, 0xf,0x25,0x30, 0xf,0x25,0x31, 0x6,0x2d,0x7b, + 0x4,0x27,0x7c, 0x4,0x27,0x77, 0x4,0x27,0x79, 0x5,0x27,0x62, + 0x4,0x27,0x7d, 0x4,0x27,0x78, 0x4,0x27,0x75, 0x5,0x27,0x60, + 0x6,0x2d,0x7c, 0x5,0x27,0x61, 0x4,0x27,0x74, 0x6,0x3b,0x4b, + 0x6,0x27,0x4c, 0x6,0x2e,0x21, 0x5,0x27,0x64, 0x4,0x27,0x76, + 0x6,0x2d,0x7a, 0x6,0x2d,0x7e, 0x6,0x3b,0x4d, 0x6,0x3b,0x4c, + 0xf,0x28,0x57, 0xf,0x28,0x58, 0xf,0x28,0x59, 0xf,0x28,0x5a, + 0xf,0x28,0x5b, 0xf,0x28,0x5d, 0xf,0x28,0x5e, 0xf,0x28,0x5f, + 0xf,0x28,0x60, 0xf,0x28,0x61, 0xf,0x28,0x62, 0xf,0x28,0x64, + 0x6,0x2d,0x79, 0x4,0x2b,0x3b, 0x4,0x2b,0x37, 0x4,0x2b,0x38, + 0x4,0x2b,0x39, 0x5,0x2b,0x3f, 0x6,0x34,0x43, 0x6,0x34,0x3b, + 0x4,0x2b,0x3c, 0x6,0x34,0x41, 0x6,0x34,0x3d, 0x5,0x2b,0x3d, + 0x6,0x34,0x39, 0x6,0x34,0x40, 0x6,0x34,0x3e, 0x6,0x34,0x42, + 0x6,0x34,0x45, 0x6,0x34,0x46, 0x5,0x2b,0x3b, 0x5,0x2b,0x3e, + 0x5,0x2b,0x3c, 0xf,0x2d,0x33, 0xf,0x2d,0x35, 0xf,0x2d,0x37, + 0xf,0x2d,0x38, 0xf,0x2d,0x39, 0xf,0x2d,0x3a, 0xf,0x2d,0x3b, + 0xf,0x2d,0x3c, 0xf,0x2d,0x36, 0x6,0x33,0x3e, 0x6,0x34,0x3f, + 0xf,0x2d,0x34, 0x6,0x2d,0x7d, 0x6,0x4d,0x68, 0xf,0x2a,0x52, + 0x5,0x2f,0x7c, 0x4,0x2f,0x56, 0x4,0x2f,0x57, 0x4,0x2f,0x62, + 0x5,0x2f,0x78, 0x5,0x2f,0x7a, 0x5,0x2f,0x7e, 0x4,0x2f,0x54, + 0x5,0x2f,0x77, 0x5,0x30,0x23, 0x4,0x2f,0x5b, 0x5,0x30,0x27, + 0x4,0x2f,0x58, 0x4,0x2f,0x65, 0x5,0x30,0x24, 0x4,0x2f,0x60, + 0x6,0x3b,0x5e, 0x6,0x3b,0x5f, 0x5,0x30,0x25, 0x6,0x3b,0x61, + 0x5,0x30,0x22, 0x4,0x2f,0x66, 0x6,0x3b,0x59, 0x6,0x3b,0x58, + 0x6,0x4d,0x67, 0x6,0x44,0x22, 0x6,0x3b,0x55, 0x5,0x2f,0x7d, + 0x6,0x3b,0x54, 0x6,0x3b,0x51, 0x6,0x3b,0x4f, 0x6,0x3b,0x5a, + 0x6,0x3b,0x5c, 0x5,0x2f,0x7b, 0x6,0x3b,0x57, 0x5,0x30,0x26, + 0x5,0x2f,0x79, 0x6,0x3b,0x53, 0x6,0x3b,0x5b, 0x6,0x3b,0x5d, + 0x6,0x3b,0x62, 0xf,0x32,0x33, 0xf,0x32,0x35, 0xf,0x32,0x36, + 0xf,0x32,0x37, 0xf,0x32,0x38, 0xf,0x32,0x39, 0xf,0x32,0x3b, + 0xf,0x32,0x3c, 0xf,0x32,0x3d, 0xf,0x32,0x3f, 0xf,0x32,0x40, + 0xf,0x32,0x42, 0xf,0x32,0x43, 0xf,0x32,0x44, 0xf,0x32,0x45, + 0xf,0x32,0x47, 0xf,0x32,0x48, 0xf,0x32,0x49, 0xf,0x32,0x4a, + 0xf,0x32,0x4b, 0x6,0x3b,0x50, 0xf,0x32,0x46, 0xf,0x32,0x4c, + 0xf,0x32,0x3e, 0x5,0x35,0x2b, 0x5,0x35,0x2e, 0x5,0x35,0x27, + 0x4,0x34,0x70, 0x5,0x35,0x2c, 0x4,0x34,0x61, 0x4,0x34,0x6e, + 0x4,0x34,0x68, 0x6,0x44,0x32, 0x4,0x34,0x72, 0x4,0x34,0x75, + 0x6,0x44,0x26, 0x6,0x43,0x7b, 0x6,0x44,0x23, 0x5,0x35,0x23, + 0x6,0x43,0x79, 0x6,0x43,0x75, 0x4,0x34,0x60, 0x5,0x35,0x32, + 0x6,0x43,0x74, 0x6,0x44,0x21, 0x6,0x44,0x38, 0x4,0x34,0x64, + 0x6,0x44,0x36, 0x6,0x4e,0x3a, 0x6,0x44,0x34, 0x6,0x3b,0x60, + 0x6,0x4d,0x78, 0x4,0x34,0x5f, 0x5,0x35,0x21, 0x4,0x34,0x6b, + 0x6,0x43,0x77, 0x6,0x44,0x24, 0x5,0x35,0x30, 0x6,0x44,0x2f, + 0x6,0x44,0x35, 0x6,0x44,0x2e, 0x6,0x44,0x29, 0x5,0x35,0x2f, + 0x6,0x44,0x33, 0x6,0x43,0x78, 0x6,0x44,0x27, 0x5,0x35,0x31, + 0x5,0x42,0x2f, 0x6,0x57,0x32, 0x6,0x57,0x33, 0x6,0x44,0x30, + 0x6,0x44,0x31, 0x6,0x43,0x7e, 0x5,0x35,0x22, 0x5,0x35,0x33, + 0x6,0x44,0x2a, 0x5,0x35,0x29, 0x5,0x35,0x2d, 0x5,0x35,0x26, + 0x6,0x4e,0x37, 0x6,0x44,0x39, 0x6,0x44,0x3a, 0x6,0x43,0x7c, + 0x6,0x43,0x7a, 0xf,0x37,0x74, 0xf,0x37,0x75, 0xf,0x37,0x76, + 0xf,0x37,0x77, 0xf,0x37,0x79, 0xf,0x37,0x7b, 0xf,0x37,0x7c, + 0xf,0x37,0x7d, 0xf,0x37,0x7e, 0xf,0x38,0x21, 0xf,0x38,0x22, + 0xf,0x38,0x24, 0xf,0x38,0x25, 0xf,0x38,0x26, 0xf,0x38,0x27, + 0xf,0x38,0x28, 0xf,0x38,0x29, 0xf,0x38,0x2a, 0xf,0x38,0x2b, + 0xf,0x38,0x2c, 0xf,0x38,0x2d, 0xf,0x38,0x2e, 0xf,0x38,0x2f, + 0xf,0x38,0x30, 0xf,0x38,0x31, 0xf,0x38,0x32, 0xf,0x38,0x33, + 0xf,0x38,0x34, 0xf,0x38,0x35, 0x5,0x3b,0x5d, 0x6,0x43,0x7d, + 0x5,0x35,0x28, 0x6,0x44,0x25, 0xf,0x37,0x7a, 0x6,0x44,0x2d, + 0x6,0x44,0x37, 0xf,0x38,0x23, 0x5,0x35,0x25, 0x5,0x3b,0x55, + 0x4,0x3a,0x55, 0x5,0x3b,0x69, 0x5,0x3b,0x6a, 0x5,0x3b,0x62, + 0x5,0x3b,0x6c, 0x5,0x3b,0x6d, 0x5,0x3b,0x63, 0x4,0x3a,0x5d, + 0x6,0x4d,0x7a, 0x6,0x4d,0x72, 0x6,0x4e,0x2b, 0x6,0x4d,0x70, + 0x6,0x4d,0x6b, 0x5,0x3b,0x5f, 0x5,0x3b,0x67, 0x5,0x3b,0x68, + 0x6,0x4d,0x7b, 0x6,0x4d,0x79, 0x5,0x3b,0x5e, 0x5,0x3b,0x6e, + 0x5,0x3b,0x6b, 0x4,0x34,0x6a, 0x4,0x3a,0x57, 0x4,0x3a,0x5a, + 0x4,0x3a,0x58, 0x4,0x3a,0x62, 0x5,0x3b,0x5a, 0x4,0x3a,0x54, + 0x6,0x4d,0x69, 0x6,0x4e,0x35, 0x4,0x3a,0x63, 0x6,0x4d,0x6a, + 0x5,0x3b,0x64, 0x6,0x4d,0x7c, 0x6,0x4e,0x36, 0x6,0x4d,0x7d, + 0x6,0x4e,0x2f, 0x6,0x4e,0x30, 0x4,0x3a,0x6b, 0x6,0x4e,0x26, + 0x4,0x3a,0x69, 0x6,0x4e,0x23, 0x5,0x3b,0x5c, 0x6,0x4e,0x28, + 0x6,0x4d,0x75, 0x6,0x4e,0x2d, 0x6,0x4d,0x74, 0x6,0x4e,0x22, + 0x6,0x4e,0x31, 0x6,0x4e,0x29, 0x5,0x3b,0x65, 0x6,0x61,0x32, + 0x6,0x61,0x2d, 0x6,0x61,0x2e, 0x5,0x3b,0x57, 0x6,0x4e,0x24, + 0x6,0x4d,0x6f, 0x6,0x4e,0x2e, 0x5,0x49,0x2e, 0x6,0x4d,0x73, + 0x6,0x4e,0x2c, 0x6,0x4d,0x77, 0x6,0x4e,0x25, 0x6,0x4d,0x6d, + 0x6,0x4e,0x2a, 0x4,0x3a,0x6a, 0x5,0x3b,0x60, 0x5,0x3b,0x5b, + 0x6,0x4d,0x76, 0x6,0x4e,0x38, 0x6,0x61,0x2b, 0x5,0x3b,0x66, + 0x6,0x61,0x2f, 0x5,0x3b,0x61, 0x6,0x4e,0x34, 0x6,0x61,0x31, + 0x6,0x61,0x30, 0x6,0x4d,0x6c, 0x6,0x4d,0x7e, 0x6,0x4c,0x7b, + 0x5,0x3b,0x58, 0x6,0x4d,0x6e, 0x6,0x4d,0x71, 0x6,0x4e,0x33, + 0x6,0x4e,0x39, 0xf,0x3e,0x53, 0xf,0x3e,0x55, 0xf,0x3e,0x56, + 0xf,0x3e,0x58, 0xf,0x3e,0x5a, 0xf,0x3e,0x5b, 0xf,0x3e,0x5c, + 0xf,0x3e,0x5d, 0xf,0x3e,0x5e, 0xf,0x3e,0x5f, 0xf,0x3e,0x60, + 0xf,0x3e,0x61, 0xf,0x3e,0x63, 0xf,0x3e,0x64, 0xf,0x3e,0x65, + 0xf,0x3e,0x68, 0xf,0x3e,0x69, 0xf,0x3e,0x6a, 0xf,0x3e,0x6d, + 0xf,0x3e,0x6f, 0xf,0x3e,0x70, 0xf,0x3e,0x71, 0xf,0x3e,0x72, + 0xf,0x3e,0x74, 0xf,0x3e,0x75, 0xf,0x3e,0x76, 0xf,0x3e,0x77, + 0xf,0x3e,0x78, 0xf,0x3e,0x79, 0xf,0x3e,0x7a, 0xf,0x3e,0x7b, + 0xf,0x3e,0x7c, 0xf,0x3e,0x7d, 0xf,0x3e,0x7e, 0x6,0x61,0x2c, + 0x5,0x3b,0x59, 0x6,0x4e,0x21, 0xf,0x3e,0x62, 0xf,0x3e,0x54, + 0xf,0x3e,0x6e, 0xf,0x3e,0x73, 0x4,0x40,0x43, 0x6,0x57,0x34, + 0x6,0x57,0x46, 0x5,0x42,0x4e, 0x6,0x57,0x3a, 0x6,0x57,0x3b, + 0x5,0x42,0x34, 0x4,0x40,0x3d, 0x6,0x57,0x49, 0x6,0x57,0x5a, + 0x4,0x40,0x40, 0x4,0x40,0x42, 0x5,0x42,0x45, 0x6,0x57,0x5e, + 0x5,0x42,0x3a, 0x4,0x40,0x37, 0x4,0x40,0x34, 0x6,0x57,0x41, + 0x6,0x57,0x63, 0x5,0x42,0x33, 0x6,0x57,0x51, 0x6,0x57,0x55, + 0x5,0x42,0x43, 0x6,0x57,0x4a, 0x4,0x40,0x38, 0x4,0x40,0x3b, + 0x5,0x42,0x36, 0x6,0x57,0x43, 0x4,0x40,0x3c, 0x4,0x40,0x45, + 0x5,0x42,0x41, 0x4,0x40,0x4d, 0x5,0x42,0x4f, 0x4,0x40,0x3e, + 0x5,0x42,0x46, 0x6,0x57,0x5d, 0x5,0x42,0x3f, 0x4,0x40,0x33, + 0x4,0x40,0x31, 0x6,0x57,0x65, 0x4,0x40,0x3f, 0x6,0x57,0x42, + 0x5,0x42,0x48, 0x5,0x42,0x42, 0x5,0x42,0x38, 0x5,0x42,0x3e, + 0x6,0x57,0x38, 0x6,0x57,0x53, 0x6,0x57,0x4f, 0x6,0x57,0x40, + 0x6,0x57,0x67, 0x5,0x42,0x3d, 0x6,0x57,0x39, 0x6,0x57,0x64, + 0x6,0x57,0x37, 0x5,0x42,0x50, 0x6,0x57,0x4e, 0x6,0x57,0x45, + 0x6,0x57,0x3c, 0x5,0x42,0x49, 0x5,0x42,0x4d, 0x5,0x42,0x3b, + 0x5,0x42,0x47, 0x6,0x57,0x52, 0x6,0x57,0x60, 0x6,0x57,0x5c, + 0x6,0x57,0x48, 0x6,0x57,0x56, 0x5,0x42,0x39, 0x4,0x40,0x39, + 0x6,0x57,0x57, 0x5,0x42,0x30, 0x5,0x42,0x40, 0x5,0x42,0x32, + 0x5,0x42,0x4a, 0x6,0x57,0x3f, 0x4,0x40,0x35, 0x4,0x40,0x4b, + 0x6,0x57,0x4c, 0x5,0x42,0x35, 0x5,0x42,0x31, 0x6,0x57,0x47, + 0x6,0x57,0x58, 0x7,0x27,0x53, 0x6,0x57,0x61, 0x5,0x42,0x3c, + 0x6,0x57,0x44, 0x6,0x57,0x54, 0x6,0x57,0x36, 0x6,0x57,0x62, + 0x6,0x57,0x66, 0x6,0x57,0x59, 0x4,0x40,0x4e, 0x5,0x42,0x44, + 0x5,0x42,0x4b, 0x6,0x57,0x35, 0x6,0x57,0x3e, 0x6,0x57,0x4b, + 0x6,0x57,0x4d, 0x6,0x57,0x5b, 0x6,0x57,0x5f, 0xf,0x44,0x73, + 0xf,0x44,0x75, 0xf,0x44,0x76, 0xf,0x44,0x77, 0xf,0x44,0x78, + 0xf,0x44,0x79, 0xf,0x44,0x7a, 0xf,0x44,0x7b, 0xf,0x44,0x7c, + 0xf,0x44,0x7d, 0xf,0x44,0x7e, 0xf,0x45,0x21, 0xf,0x45,0x22, + 0xf,0x45,0x23, 0xf,0x45,0x24, 0xf,0x45,0x25, 0xf,0x45,0x26, + 0xf,0x45,0x27, 0xf,0x45,0x28, 0xf,0x45,0x29, 0xf,0x45,0x2a, + 0xf,0x45,0x2b, 0xf,0x45,0x2c, 0xf,0x45,0x2e, 0xf,0x45,0x2f, + 0xf,0x45,0x30, 0xf,0x45,0x31, 0x5,0x42,0x4c, 0x4,0x40,0x4a, + 0x6,0x57,0x3d, 0x6,0x4e,0x32, 0xf,0x3e,0x57, 0x5,0x42,0x37, + 0x4,0x46,0x66, 0x6,0x61,0x60, 0x5,0x49,0x45, 0x6,0x61,0x33, + 0x6,0x61,0x43, 0x5,0x49,0x4b, 0x4,0x46,0x63, 0x6,0x61,0x56, + 0x4,0x46,0x56, 0x6,0x61,0x45, 0x4,0x46,0x59, 0x6,0x61,0x3c, + 0x5,0x49,0x41, 0x6,0x61,0x4a, 0x4,0x46,0x55, 0x6,0x61,0x52, + 0x5,0x49,0x3d, 0x6,0x61,0x40, 0x6,0x61,0x59, 0x5,0x49,0x49, + 0x5,0x49,0x46, 0x6,0x61,0x4c, 0x5,0x49,0x3a, 0x4,0x46,0x5a, + 0x6,0x61,0x39, 0x6,0x61,0x55, 0x6,0x61,0x4d, 0x6,0x61,0x3f, + 0x5,0x49,0x44, 0x5,0x49,0x39, 0x5,0x49,0x30, 0x4,0x46,0x62, + 0x6,0x61,0x41, 0x4,0x46,0x5e, 0x6,0x61,0x36, 0x4,0x46,0x5d, + 0x4,0x46,0x6b, 0x4,0x46,0x5b, 0x5,0x49,0x3f, 0x7,0x27,0x58, + 0x6,0x61,0x37, 0x5,0x49,0x32, 0x5,0x49,0x37, 0x5,0x49,0x31, + 0x5,0x49,0x48, 0x5,0x50,0x3b, 0x4,0x46,0x5f, 0x5,0x49,0x43, + 0x6,0x61,0x38, 0x4,0x46,0x68, 0x6,0x61,0x50, 0x5,0x49,0x38, + 0x6,0x61,0x57, 0x6,0x61,0x46, 0x6,0x61,0x3b, 0x5,0x49,0x40, + 0x5,0x49,0x36, 0x7,0x32,0x27, 0x5,0x49,0x2f, 0x5,0x49,0x34, + 0x6,0x61,0x47, 0x6,0x61,0x49, 0x6,0x61,0x4b, 0x6,0x61,0x4e, + 0x6,0x61,0x5a, 0x6,0x61,0x5d, 0x6,0x61,0x5e, 0xf,0x4b,0x61, + 0xf,0x4b,0x62, 0xf,0x4b,0x63, 0xf,0x4b,0x66, 0xf,0x4b,0x68, + 0xf,0x4b,0x69, 0xf,0x4b,0x6a, 0xf,0x4b,0x6b, 0xf,0x4b,0x6c, + 0xf,0x4b,0x6d, 0xf,0x4b,0x6e, 0xf,0x4b,0x6f, 0xf,0x4b,0x70, + 0xf,0x4b,0x71, 0xf,0x4b,0x72, 0xf,0x4b,0x73, 0xf,0x4b,0x74, + 0xf,0x4b,0x75, 0xf,0x4b,0x76, 0xf,0x4b,0x78, 0xf,0x4b,0x79, + 0xf,0x4b,0x7a, 0xf,0x4b,0x7c, 0xf,0x4b,0x7d, 0xf,0x4b,0x7e, + 0xf,0x4c,0x21, 0xf,0x4c,0x22, 0xf,0x4c,0x23, 0xf,0x4c,0x25, + 0xf,0x4c,0x26, 0xf,0x4c,0x27, 0xf,0x4c,0x28, 0xf,0x4c,0x29, + 0xf,0x4c,0x2a, 0x6,0x61,0x48, 0x5,0x49,0x42, 0x6,0x61,0x53, + 0x6,0x61,0x51, 0x6,0x57,0x68, 0x5,0x49,0x4a, 0x6,0x61,0x5c, + 0x6,0x61,0x5f, 0x6,0x61,0x5b, 0x6,0x61,0x3a, 0x6,0x61,0x35, + 0x6,0x61,0x42, 0x6,0x61,0x3d, 0x6,0x57,0x50, 0xf,0x4b,0x64, + 0xf,0x4b,0x67, 0x6,0x61,0x54, 0x4,0x46,0x6a, 0x4,0x46,0x54, + 0x5,0x49,0x35, 0x5,0x49,0x4d, 0x7,0x32,0x26, 0x5,0x49,0x33, + 0x6,0x61,0x61, 0x5,0x49,0x47, 0x5,0x49,0x4c, 0x5,0x57,0x46, + 0xf,0x4b,0x7b, 0x5,0x49,0x3e, 0x7,0x27,0x6c, 0x4,0x4c,0x7e, + 0x5,0x50,0x32, 0x4,0x4c,0x69, 0x4,0x4c,0x7c, 0x7,0x28,0x21, + 0x5,0x50,0x35, 0x7,0x28,0x24, 0x7,0x27,0x77, 0x7,0x27,0x5c, + 0x5,0x50,0x39, 0x7,0x27,0x69, 0x7,0x27,0x78, 0x7,0x27,0x79, + 0x7,0x27,0x6a, 0x7,0x27,0x73, 0x5,0x50,0x3a, 0x7,0x27,0x6f, + 0x4,0x4c,0x75, 0x5,0x50,0x3d, 0x5,0x50,0x42, 0x7,0x27,0x60, + 0x7,0x28,0x22, 0x5,0x50,0x40, 0x5,0x50,0x3f, 0x5,0x57,0x47, + 0x5,0x50,0x41, 0x5,0x50,0x4b, 0x7,0x27,0x6b, 0x7,0x27,0x76, + 0x7,0x27,0x59, 0x7,0x27,0x72, 0x7,0x27,0x65, 0x5,0x50,0x48, + 0x5,0x50,0x37, 0x4,0x4c,0x7b, 0x7,0x27,0x54, 0x7,0x27,0x5b, + 0x7,0x27,0x64, 0x7,0x27,0x63, 0x7,0x27,0x67, 0x5,0x50,0x33, + 0x7,0x27,0x66, 0x7,0x27,0x7d, 0x7,0x27,0x5e, 0x5,0x50,0x3e, + 0x7,0x27,0x56, 0x5,0x50,0x34, 0x5,0x50,0x4a, 0x7,0x27,0x7c, + 0x7,0x27,0x62, 0x7,0x27,0x5d, 0x7,0x27,0x6e, 0x4,0x4c,0x76, + 0x5,0x50,0x49, 0x5,0x50,0x45, 0x7,0x27,0x74, 0x5,0x57,0x58, + 0x4,0x4d,0x22, 0x5,0x50,0x43, 0x7,0x27,0x55, 0x7,0x27,0x5a, + 0x7,0x27,0x5f, 0x7,0x27,0x70, 0x7,0x27,0x71, 0x7,0x28,0x23, + 0xf,0x51,0x5e, 0xf,0x51,0x5f, 0xf,0x51,0x60, 0xf,0x51,0x62, + 0xf,0x51,0x63, 0xf,0x51,0x66, 0xf,0x51,0x67, 0xf,0x51,0x68, + 0xf,0x51,0x69, 0xf,0x51,0x6a, 0xf,0x51,0x6c, 0xf,0x51,0x6d, + 0xf,0x51,0x6e, 0xf,0x51,0x6f, 0xf,0x51,0x70, 0xf,0x51,0x72, + 0xf,0x51,0x75, 0xf,0x51,0x77, 0x4,0x4d,0x23, 0x7,0x27,0x7a, + 0x5,0x50,0x44, 0x7,0x27,0x7e, 0x7,0x27,0x75, 0x7,0x27,0x68, + 0xf,0x51,0x71, 0xf,0x51,0x61, 0xf,0x51,0x6b, 0x5,0x50,0x36, + 0x7,0x27,0x57, 0x5,0x50,0x47, 0x5,0x50,0x3c, 0x6,0x61,0x34, + 0x7,0x42,0x2e, 0xf,0x4c,0x24, 0x7,0x32,0x51, 0x4,0x53,0x2d, + 0x7,0x32,0x32, 0x4,0x53,0x2a, 0x4,0x53,0x34, 0x7,0x32,0x53, + 0x5,0x57,0x49, 0x4,0x53,0x2b, 0x5,0x57,0x5d, 0x7,0x32,0x43, + 0x5,0x57,0x54, 0x4,0x52,0x71, 0x4,0x53,0x30, 0x5,0x57,0x51, + 0x5,0x57,0x5b, 0x7,0x32,0x3c, 0x4,0x52,0x75, 0x5,0x57,0x5a, + 0x5,0x57,0x4b, 0x5,0x57,0x5f, 0x7,0x32,0x33, 0x5,0x57,0x61, + 0x4,0x53,0x2f, 0x7,0x32,0x28, 0x5,0x57,0x4d, 0x5,0x57,0x4f, + 0x7,0x32,0x4c, 0x5,0x57,0x55, 0x5,0x57,0x62, 0x7,0x32,0x3d, + 0x7,0x32,0x3b, 0x5,0x50,0x4c, 0x4,0x52,0x70, 0x5,0x57,0x48, + 0x5,0x57,0x5e, 0x7,0x32,0x45, 0x7,0x32,0x4b, 0x7,0x32,0x41, + 0x5,0x57,0x64, 0x5,0x57,0x60, 0x7,0x28,0x25, 0x7,0x27,0x7b, + 0x7,0x32,0x52, 0x5,0x5d,0x7a, 0x4,0x53,0x26, 0x7,0x32,0x2e, + 0x4,0x53,0x29, 0x7,0x32,0x36, 0x5,0x57,0x53, 0x4,0x53,0x28, + 0x4,0x52,0x74, 0x5,0x50,0x38, 0x7,0x32,0x2f, 0x5,0x57,0x52, + 0x7,0x32,0x38, 0x5,0x57,0x56, 0x5,0x57,0x4c, 0x7,0x32,0x2d, + 0x7,0x32,0x57, 0x7,0x32,0x4e, 0x4,0x53,0x2e, 0x5,0x57,0x5c, + 0x7,0x32,0x2a, 0x4,0x52,0x78, 0x7,0x32,0x39, 0x7,0x42,0x2f, + 0x7,0x32,0x2b, 0x7,0x32,0x55, 0x4,0x53,0x32, 0x7,0x32,0x42, + 0x7,0x32,0x35, 0x7,0x32,0x3f, 0xf,0x57,0x3e, 0xf,0x57,0x3f, + 0xf,0x57,0x40, 0xf,0x57,0x41, 0x5,0x57,0x4a, 0x5,0x57,0x50, + 0x5,0x57,0x57, 0x7,0x32,0x2c, 0x7,0x32,0x34, 0x7,0x32,0x37, + 0x7,0x32,0x3e, 0x7,0x32,0x40, 0x7,0x32,0x47, 0x7,0x32,0x49, + 0x7,0x32,0x4d, 0x7,0x32,0x4f, 0x7,0x32,0x54, 0x7,0x32,0x59, + 0x7,0x32,0x5a, 0xf,0x57,0x37, 0xf,0x57,0x38, 0xf,0x57,0x39, + 0xf,0x57,0x3a, 0xf,0x57,0x3b, 0xf,0x57,0x3c, 0xf,0x57,0x3d, + 0xf,0x57,0x42, 0xf,0x57,0x43, 0xf,0x57,0x44, 0xf,0x57,0x49, + 0xf,0x57,0x4c, 0xf,0x57,0x4d, 0xf,0x57,0x4e, 0xf,0x57,0x4f, + 0xf,0x57,0x50, 0xf,0x57,0x51, 0xf,0x57,0x52, 0xf,0x57,0x53, + 0xf,0x57,0x54, 0xf,0x57,0x56, 0xf,0x57,0x57, 0xf,0x57,0x58, + 0xf,0x57,0x59, 0xf,0x57,0x5a, 0xf,0x57,0x5b, 0xf,0x57,0x5c, + 0x7,0x32,0x31, 0xf,0x57,0x45, 0x4,0x52,0x7d, 0x7,0x32,0x3a, + 0x7,0x32,0x58, 0x7,0x32,0x50, 0x5,0x57,0x65, 0x5,0x57,0x4e, + 0x7,0x32,0x30, 0x7,0x32,0x29, 0x7,0x32,0x48, 0xf,0x57,0x4a, + 0x7,0x32,0x56, 0x5,0x57,0x63, 0x5,0x57,0x59, 0x7,0x32,0x46, + 0x7,0x3a,0x76, 0x4,0x58,0x3a, 0x4,0x58,0x3f, 0x7,0x3a,0x6e, + 0x7,0x42,0x3b, 0x7,0x3a,0x78, 0x4,0x58,0x48, 0x4,0x58,0x49, + 0x5,0x57,0x66, 0x5,0x5d,0x75, 0x5,0x5d,0x7d, 0x5,0x5d,0x73, + 0x7,0x3b,0x2b, 0x7,0x3b,0x2f, 0x5,0x5d,0x6f, 0x4,0x58,0x4a, + 0x4,0x58,0x37, 0x7,0x3a,0x7b, 0x4,0x58,0x45, 0x5,0x5e,0x21, + 0x7,0x3a,0x7c, 0x7,0x3b,0x23, 0x7,0x3b,0x33, 0x5,0x5d,0x7e, + 0x5,0x5e,0x25, 0x7,0x3b,0x31, 0x5,0x5e,0x22, 0x5,0x5d,0x6e, + 0x5,0x5d,0x78, 0x7,0x3a,0x7e, 0x5,0x5d,0x7c, 0x7,0x3a,0x73, + 0x7,0x3b,0x24, 0x7,0x3b,0x2a, 0x5,0x5d,0x7b, 0x4,0x58,0x4b, + 0x5,0x5d,0x6d, 0x5,0x5e,0x23, 0x4,0x58,0x41, 0x7,0x3b,0x30, + 0x5,0x5d,0x77, 0x4,0x58,0x46, 0x5,0x5d,0x71, 0x5,0x5e,0x24, + 0x7,0x3b,0x25, 0x5,0x5d,0x76, 0x7,0x3a,0x70, 0x7,0x3a,0x75, + 0x7,0x42,0x39, 0x7,0x3a,0x6b, 0x7,0x3a,0x6c, 0x7,0x3b,0x35, + 0x7,0x3a,0x7d, 0x4,0x58,0x47, 0x7,0x3b,0x2e, 0x7,0x3a,0x72, + 0x7,0x3a,0x77, 0x7,0x49,0x34, 0x7,0x3a,0x71, 0x7,0x3b,0x22, + 0x7,0x3b,0x29, 0x7,0x32,0x4a, 0x7,0x3a,0x79, 0x7,0x3b,0x21, + 0x7,0x3b,0x37, 0x5,0x5d,0x74, 0x5,0x50,0x4d, 0x4,0x58,0x43, + 0x7,0x49,0x35, 0x5,0x5d,0x70, 0x5,0x5d,0x72, 0x7,0x3a,0x6d, + 0x7,0x3b,0x27, 0x7,0x3b,0x28, 0x7,0x3b,0x2c, 0x7,0x3b,0x34, + 0xf,0x5c,0x3a, 0xf,0x5c,0x3b, 0xf,0x5c,0x3c, 0xf,0x5c,0x3d, + 0xf,0x5c,0x3e, 0xf,0x5c,0x40, 0xf,0x5c,0x41, 0xf,0x5c,0x42, + 0xf,0x5c,0x43, 0xf,0x5c,0x44, 0xf,0x5c,0x45, 0xf,0x5c,0x46, + 0xf,0x5c,0x47, 0xf,0x5c,0x49, 0xf,0x5c,0x4a, 0xf,0x5c,0x4b, + 0xf,0x5c,0x4c, 0xf,0x5c,0x4f, 0xf,0x5c,0x50, 0x4,0x58,0x39, + 0x7,0x3a,0x7a, 0x7,0x3b,0x2d, 0x7,0x3b,0x36, 0x7,0x3a,0x74, + 0xf,0x5c,0x48, 0xf,0x5c,0x3f, 0xf,0x5c,0x4e, 0xf,0x57,0x55, + 0xf,0x63,0x5b, 0x5,0x64,0x2c, 0x7,0x42,0x4b, 0x4,0x5d,0x24, + 0x7,0x42,0x4c, 0x5,0x64,0x22, 0x4,0x5d,0x25, 0x5,0x5e,0x26, + 0x5,0x64,0x2f, 0x7,0x42,0x48, 0x5,0x64,0x25, 0x5,0x63,0x7e, + 0x7,0x42,0x30, 0x5,0x64,0x21, 0x5,0x64,0x29, 0x5,0x64,0x36, + 0x5,0x64,0x39, 0x7,0x42,0x36, 0x5,0x64,0x33, 0x7,0x42,0x46, + 0x4,0x5d,0x22, 0x5,0x5e,0x27, 0x5,0x64,0x38, 0x5,0x64,0x26, + 0x5,0x64,0x30, 0x7,0x42,0x3d, 0x5,0x64,0x24, 0x5,0x64,0x2e, + 0x7,0x42,0x4d, 0x4,0x5d,0x30, 0x5,0x64,0x31, 0x4,0x5d,0x2e, + 0x4,0x5d,0x26, 0x4,0x5d,0x2a, 0x5,0x64,0x34, 0x5,0x64,0x32, + 0x7,0x42,0x3e, 0x7,0x4f,0x46, 0x7,0x42,0x3a, 0x7,0x42,0x37, + 0x4,0x5d,0x2f, 0x7,0x49,0x44, 0x5,0x64,0x2b, 0x7,0x42,0x33, + 0x7,0x42,0x45, 0x7,0x42,0x49, 0x4,0x5d,0x2d, 0x7,0x3b,0x26, + 0x7,0x42,0x32, 0x7,0x42,0x34, 0x7,0x42,0x35, 0x7,0x42,0x3f, + 0x7,0x42,0x42, 0x7,0x42,0x44, 0x7,0x42,0x4a, 0x7,0x42,0x4e, + 0x7,0x42,0x4f, 0xf,0x60,0x48, 0xf,0x60,0x49, 0xf,0x60,0x4a, + 0xf,0x60,0x4b, 0xf,0x60,0x4c, 0xf,0x60,0x4f, 0xf,0x60,0x50, + 0xf,0x60,0x51, 0xf,0x60,0x52, 0xf,0x60,0x53, 0xf,0x60,0x54, + 0xf,0x60,0x55, 0xf,0x60,0x56, 0xf,0x60,0x57, 0xf,0x60,0x58, + 0xf,0x60,0x59, 0xf,0x60,0x5a, 0xf,0x60,0x5b, 0xf,0x60,0x5c, + 0xf,0x60,0x5e, 0xf,0x60,0x5f, 0x4,0x5d,0x27, 0x7,0x42,0x40, + 0x5,0x64,0x27, 0x7,0x42,0x41, 0x7,0x49,0x33, 0x5,0x64,0x35, + 0x5,0x64,0x2a, 0x4,0x5d,0x29, 0x7,0x42,0x47, 0x5,0x64,0x23, + 0x5,0x64,0x28, 0x5,0x64,0x37, 0x7,0x42,0x43, 0x7,0x42,0x31, + 0x5,0x69,0x3e, 0x5,0x69,0x2f, 0x7,0x4f,0x5d, 0x5,0x69,0x30, + 0x5,0x69,0x3a, 0x5,0x69,0x36, 0x4,0x60,0x7d, 0x4,0x60,0x79, + 0x5,0x69,0x3f, 0x5,0x69,0x37, 0x7,0x49,0x38, 0x7,0x49,0x45, + 0x5,0x69,0x3b, 0x5,0x69,0x35, 0x4,0x60,0x7c, 0x5,0x69,0x2e, + 0x5,0x6d,0x42, 0x7,0x49,0x43, 0x5,0x69,0x38, 0x7,0x49,0x46, + 0x5,0x69,0x39, 0x7,0x49,0x41, 0x7,0x49,0x54, 0x7,0x49,0x51, + 0x7,0x49,0x3c, 0x5,0x69,0x33, 0x5,0x69,0x3d, 0x7,0x49,0x4b, + 0x7,0x49,0x4e, 0x7,0x49,0x3e, 0x7,0x49,0x3d, 0x7,0x49,0x42, + 0x7,0x49,0x47, 0x7,0x4f,0x54, 0x7,0x49,0x4d, 0x7,0x49,0x39, + 0x7,0x49,0x4c, 0x7,0x49,0x4a, 0x7,0x4f,0x47, 0x5,0x69,0x34, + 0x5,0x69,0x32, 0x4,0x60,0x76, 0x5,0x69,0x3c, 0x7,0x49,0x49, + 0x7,0x49,0x40, 0x7,0x49,0x3f, 0x7,0x49,0x36, 0x7,0x49,0x37, + 0x7,0x49,0x3a, 0x7,0x49,0x48, 0x7,0x49,0x50, 0x7,0x49,0x52, + 0xf,0x63,0x51, 0xf,0x63,0x52, 0xf,0x63,0x54, 0xf,0x63,0x55, + 0xf,0x63,0x56, 0xf,0x63,0x57, 0xf,0x63,0x58, 0xf,0x63,0x59, + 0xf,0x63,0x5a, 0xf,0x63,0x5c, 0xf,0x63,0x5d, 0xf,0x63,0x5e, + 0xf,0x63,0x5f, 0xf,0x63,0x60, 0xf,0x63,0x61, 0xf,0x63,0x62, + 0xf,0x63,0x63, 0xf,0x63,0x64, 0xf,0x63,0x65, 0xf,0x63,0x66, + 0xf,0x63,0x67, 0xf,0x63,0x68, 0xf,0x63,0x69, 0x7,0x49,0x4f, + 0x7,0x4f,0x5e, 0x7,0x4f,0x55, 0x7,0x4f,0x4e, 0x5,0x6d,0x40, + 0x5,0x6d,0x47, 0x7,0x4f,0x61, 0x5,0x6d,0x41, 0x5,0x6d,0x44, + 0x4,0x64,0x39, 0x7,0x4f,0x58, 0x5,0x6d,0x46, 0x4,0x64,0x35, + 0x5,0x6d,0x3f, 0x5,0x70,0x7e, 0x7,0x4f,0x5f, 0x5,0x6d,0x3b, + 0x7,0x4f,0x51, 0x7,0x4f,0x50, 0x7,0x4f,0x4c, 0x5,0x6d,0x3e, + 0x5,0x6d,0x45, 0x7,0x4f,0x4d, 0x4,0x64,0x31, 0x7,0x4f,0x67, + 0x5,0x6d,0x3c, 0x7,0x4f,0x4b, 0x7,0x4f,0x53, 0x7,0x4f,0x62, + 0x7,0x4f,0x5b, 0x7,0x49,0x3b, 0x7,0x4f,0x65, 0x5,0x6d,0x43, + 0x4,0x64,0x2e, 0x7,0x4f,0x59, 0x5,0x6d,0x3d, 0x7,0x4f,0x66, + 0x7,0x4f,0x5a, 0x5,0x69,0x31, 0x7,0x54,0x67, 0x7,0x58,0x69, + 0x7,0x4f,0x49, 0x5,0x6d,0x3a, 0x5,0x6d,0x48, 0x7,0x4f,0x52, + 0x7,0x4f,0x56, 0x7,0x4f,0x57, 0x7,0x4f,0x5c, 0x7,0x4f,0x63, + 0x7,0x4f,0x64, 0xf,0x65,0x79, 0xf,0x65,0x7a, 0xf,0x65,0x7b, + 0xf,0x65,0x7c, 0xf,0x65,0x7d, 0xf,0x65,0x7e, 0xf,0x66,0x21, + 0xf,0x66,0x22, 0xf,0x66,0x23, 0xf,0x66,0x24, 0xf,0x66,0x25, + 0xf,0x66,0x26, 0xf,0x66,0x27, 0xf,0x66,0x28, 0xf,0x66,0x29, + 0xf,0x66,0x2a, 0xf,0x66,0x2b, 0xf,0x66,0x2c, 0x7,0x4f,0x4a, + 0x7,0x4f,0x48, 0x7,0x4f,0x60, 0x7,0x54,0x63, 0x4,0x69,0x35, + 0x5,0x71,0x28, 0x7,0x54,0x66, 0x7,0x54,0x5f, 0x5,0x71,0x24, + 0x4,0x67,0x2c, 0x4,0x67,0x2a, 0x7,0x54,0x59, 0x4,0x67,0x2e, + 0x5,0x71,0x22, 0x7,0x54,0x64, 0x5,0x71,0x25, 0x7,0x54,0x65, + 0x4,0x67,0x29, 0x5,0x6d,0x49, 0x5,0x71,0x27, 0x7,0x54,0x5b, + 0x7,0x54,0x53, 0x5,0x71,0x26, 0x7,0x54,0x62, 0x7,0x54,0x57, + 0x7,0x54,0x55, 0x7,0x54,0x60, 0x4,0x67,0x2d, 0x5,0x71,0x23, + 0x5,0x71,0x29, 0x5,0x71,0x2a, 0x7,0x54,0x54, 0x7,0x54,0x5c, + 0x7,0x4f,0x4f, 0x7,0x54,0x5a, 0x7,0x58,0x76, 0x5,0x71,0x21, + 0x7,0x54,0x56, 0x7,0x54,0x5d, 0x7,0x54,0x61, 0xf,0x68,0x38, + 0xf,0x68,0x3a, 0xf,0x68,0x3b, 0xf,0x68,0x3c, 0xf,0x68,0x3d, + 0xf,0x68,0x3e, 0xf,0x68,0x3f, 0xf,0x68,0x41, 0xf,0x68,0x42, + 0xf,0x68,0x43, 0xf,0x68,0x44, 0xf,0x68,0x40, 0x7,0x54,0x58, + 0x5,0x74,0x24, 0x4,0x69,0x36, 0x5,0x74,0x25, 0x5,0x74,0x27, + 0x5,0x74,0x28, 0x7,0x58,0x70, 0x5,0x74,0x29, 0x4,0x69,0x3b, + 0x4,0x69,0x3a, 0x7,0x58,0x77, 0x7,0x58,0x75, 0x7,0x58,0x6d, + 0x7,0x5c,0x53, 0x5,0x74,0x23, 0x5,0x74,0x26, 0x7,0x58,0x6f, + 0x4,0x69,0x38, 0x4,0x69,0x39, 0x7,0x58,0x6e, 0x4,0x69,0x34, + 0x7,0x58,0x73, 0x7,0x58,0x6b, 0x7,0x58,0x78, 0x7,0x58,0x6a, + 0x7,0x58,0x6c, 0x7,0x58,0x71, 0x7,0x58,0x74, 0xf,0x69,0x68, + 0xf,0x69,0x6b, 0xf,0x69,0x6c, 0x7,0x5c,0x4f, 0x7,0x5c,0x5a, + 0x4,0x6a,0x75, 0x5,0x76,0x40, 0x4,0x6a,0x74, 0x5,0x76,0x3f, + 0x4,0x6a,0x71, 0x4,0x6a,0x73, 0x4,0x6a,0x72, 0x4,0x6a,0x70, + 0x5,0x76,0x43, 0x7,0x5c,0x51, 0x7,0x5c,0x5b, 0x5,0x76,0x42, + 0x5,0x79,0x40, 0x7,0x5c,0x55, 0x5,0x76,0x44, 0x7,0x5c,0x57, + 0x7,0x5c,0x58, 0x7,0x5c,0x4d, 0x7,0x5c,0x50, 0x5,0x76,0x41, + 0x7,0x5c,0x56, 0x7,0x5c,0x54, 0x7,0x5c,0x52, 0x7,0x5c,0x59, + 0xf,0x6a,0x6d, 0xf,0x6a,0x6e, 0xf,0x6a,0x6f, 0x7,0x5c,0x4e, + 0xf,0x69,0x6a, 0x5,0x78,0x23, 0x5,0x78,0x22, 0x5,0x78,0x21, + 0x7,0x5f,0x40, 0x5,0x78,0x24, 0x7,0x5f,0x42, 0x7,0x5f,0x46, + 0x7,0x5f,0x43, 0x7,0x5f,0x44, 0x7,0x5f,0x49, 0x7,0x5f,0x41, + 0x7,0x5f,0x47, 0x5,0x79,0x42, 0xf,0x6b,0x60, 0xf,0x6b,0x61, + 0xf,0x6b,0x63, 0x7,0x5f,0x45, 0x7,0x5f,0x48, 0x5,0x79,0x43, + 0x7,0x62,0x55, 0x5,0x79,0x41, 0x7,0x62,0x53, 0x7,0x61,0x3e, + 0x7,0x61,0x3d, 0x7,0x61,0x3c, 0xf,0x6c,0x38, 0xf,0x6c,0x39, + 0x7,0x61,0x3f, 0x5,0x7a,0x35, 0x5,0x7a,0x36, 0x7,0x62,0x59, + 0x7,0x62,0x57, 0x7,0x62,0x56, 0x7,0x62,0x58, 0x7,0x62,0x54, + 0xf,0x6c,0x51, 0x7,0x62,0x48, 0x4,0x6d,0x7a, 0x7,0x63,0x68, + 0x5,0x7a,0x72, 0x4,0x6d,0x5f, 0x4,0x6d,0x7c, 0xf,0x6c,0x6b, + 0xf,0x6c,0x6d, 0x5,0x7b,0x46, 0x4,0x6e,0x35, 0x7,0x64,0x58, + 0x7,0x64,0x59, 0x5,0x7c,0x49, 0x7,0x65,0x40, 0x5,0x7b,0x66, + 0x7,0x65,0x60, 0x7,0x65,0x76, 0x5,0x7c,0x4f, 0x5,0x7c,0x3d, + 0x7,0x65,0x5f, 0xf,0x28,0x65, 0x4,0x2b,0x3f, 0x6,0x34,0x49, + 0x6,0x34,0x48, 0xf,0x32,0x4e, 0x5,0x35,0x36, 0x5,0x35,0x34, + 0x4,0x34,0x77, 0x4,0x34,0x76, 0x6,0x44,0x41, 0x4,0x34,0x78, + 0x6,0x44,0x42, 0x6,0x44,0x40, 0x6,0x44,0x3f, 0x6,0x3b,0x63, + 0x6,0x4e,0x3c, 0x5,0x3b,0x71, 0x6,0x4e,0x3d, 0xf,0x3f,0x22, + 0xf,0x3f,0x23, 0xf,0x3f,0x24, 0x5,0x42,0x55, 0x5,0x42,0x51, + 0x5,0x42,0x52, 0x6,0x57,0x6b, 0x6,0x57,0x6a, 0x6,0x57,0x69, + 0x5,0x49,0x4f, 0x6,0x61,0x62, 0x6,0x61,0x66, 0x4,0x46,0x6f, + 0x6,0x61,0x65, 0x6,0x61,0x67, 0x6,0x61,0x63, 0x6,0x61,0x64, + 0x5,0x49,0x50, 0xf,0x4c,0x2b, 0xf,0x4c,0x2c, 0x4,0x46,0x6e, + 0x7,0x28,0x29, 0x7,0x28,0x27, 0x7,0x32,0x5f, 0x5,0x50,0x4e, + 0x7,0x28,0x26, 0x7,0x28,0x28, 0xf,0x51,0x79, 0x7,0x26,0x29, + 0x5,0x57,0x6a, 0x5,0x57,0x6b, 0x5,0x57,0x68, 0x5,0x57,0x69, + 0x4,0x53,0x35, 0x5,0x57,0x67, 0x7,0x32,0x60, 0x7,0x32,0x5c, + 0x7,0x32,0x5d, 0x4,0x53,0x38, 0x4,0x53,0x37, 0x5,0x57,0x6d, + 0x7,0x32,0x5e, 0xf,0x57,0x5d, 0xf,0x57,0x5e, 0xf,0x57,0x5f, + 0x5,0x57,0x6c, 0x7,0x32,0x5b, 0x4,0x58,0x4c, 0x7,0x3b,0x39, + 0xf,0x5c,0x51, 0xf,0x5c,0x52, 0xf,0x5c,0x53, 0x7,0x42,0x51, + 0x5,0x64,0x3d, 0x4,0x5d,0x33, 0x7,0x42,0x50, 0x4,0x5d,0x31, + 0x7,0x42,0x52, 0x5,0x64,0x3c, 0xf,0x60,0x60, 0x7,0x49,0x56, + 0x7,0x49,0x55, 0x4,0x60,0x7e, 0x7,0x49,0x57, 0x7,0x4f,0x69, + 0x5,0x6d,0x4a, 0x7,0x4f,0x6a, 0x7,0x4c,0x26, 0x5,0x71,0x2c, + 0x7,0x4f,0x68, 0x5,0x71,0x2b, 0x5,0x70,0x4d, 0x7,0x54,0x6a, + 0x7,0x54,0x69, 0x5,0x74,0x2a, 0x7,0x5c,0x24, 0x4,0x6e,0x38, + 0x5,0x24,0x75, 0x6,0x29,0x29, 0x4,0x28,0x22, 0x6,0x2e,0x25, + 0xf,0x28,0x66, 0xf,0x28,0x67, 0xf,0x28,0x69, 0xf,0x28,0x6a, + 0x4,0x2b,0x43, 0x6,0x34,0x4b, 0x4,0x2b,0x40, 0x4,0x2b,0x42, + 0x6,0x34,0x4a, 0x5,0x2b,0x40, 0x6,0x34,0x4d, 0x6,0x34,0x4c, + 0x6,0x34,0x4e, 0xf,0x2d,0x3d, 0xf,0x2d,0x3f, 0xf,0x2d,0x42, + 0xf,0x2d,0x43, 0xf,0x2d,0x44, 0xf,0x2d,0x41, 0x4,0x2b,0x41, + 0x5,0x30,0x30, 0x6,0x3b,0x68, 0x5,0x30,0x2c, 0x5,0x30,0x33, + 0x6,0x3b,0x67, 0x5,0x30,0x2d, 0x5,0x30,0x32, 0x6,0x3b,0x66, + 0x4,0x2f,0x6c, 0x4,0x2f,0x6a, 0x4,0x2f,0x6e, 0x5,0x30,0x2e, + 0x6,0x3b,0x70, 0x5,0x30,0x29, 0x6,0x3b,0x6b, 0x5,0x30,0x31, + 0x5,0x30,0x28, 0x6,0x3b,0x6a, 0x5,0x30,0x2f, 0x5,0x30,0x34, + 0x6,0x3b,0x6e, 0x6,0x3b,0x64, 0x5,0x30,0x2b, 0x6,0x3b,0x65, + 0xf,0x32,0x4f, 0x6,0x3b,0x6c, 0x6,0x3b,0x6d, 0x5,0x30,0x2a, + 0x6,0x3b,0x6f, 0x5,0x35,0x37, 0x4,0x34,0x7d, 0x6,0x44,0x45, + 0x5,0x35,0x38, 0x5,0x35,0x39, 0x5,0x35,0x3a, 0x5,0x35,0x40, + 0x4,0x35,0x22, 0xf,0x38,0x3d, 0x4,0x35,0x23, 0x6,0x44,0x4c, + 0x5,0x35,0x3c, 0x4,0x35,0x21, 0x5,0x35,0x3d, 0x6,0x44,0x46, + 0x5,0x35,0x41, 0x6,0x44,0x49, 0x4,0x35,0x24, 0x4,0x34,0x7e, + 0x6,0x44,0x47, 0x6,0x44,0x4a, 0x6,0x44,0x44, 0x6,0x44,0x4b, + 0x6,0x44,0x4d, 0xf,0x38,0x36, 0xf,0x38,0x37, 0xf,0x38,0x38, + 0xf,0x38,0x39, 0xf,0x38,0x3b, 0xf,0x38,0x3c, 0xf,0x38,0x3e, + 0xf,0x38,0x3f, 0xf,0x38,0x40, 0x5,0x35,0x3e, 0x6,0x44,0x4e, + 0x4,0x35,0x25, 0x6,0x44,0x43, 0x5,0x35,0x3f, 0x5,0x35,0x3b, + 0x5,0x3b,0x73, 0x6,0x4e,0x40, 0xf,0x3f,0x28, 0x4,0x3a,0x73, + 0x6,0x4e,0x48, 0x5,0x3c,0x28, 0x5,0x3b,0x78, 0x5,0x3b,0x75, + 0x5,0x3b,0x77, 0x5,0x3b,0x7a, 0x5,0x3c,0x23, 0x5,0x3b,0x7d, + 0x6,0x4e,0x49, 0x6,0x4e,0x3e, 0x6,0x4e,0x43, 0x5,0x3b,0x76, + 0x5,0x3c,0x27, 0x6,0x4e,0x42, 0x6,0x4e,0x4b, 0x6,0x4e,0x4a, + 0x5,0x3b,0x7c, 0x6,0x4e,0x3f, 0x5,0x3b,0x79, 0x5,0x3c,0x21, + 0x6,0x4e,0x4d, 0x6,0x4e,0x44, 0x6,0x4e,0x45, 0x6,0x57,0x6e, + 0x5,0x3c,0x25, 0x5,0x3b,0x7e, 0x6,0x57,0x78, 0x5,0x3c,0x24, + 0x6,0x4e,0x4c, 0x6,0x4e,0x47, 0x5,0x3c,0x22, 0x5,0x3b,0x72, + 0x6,0x4e,0x41, 0xf,0x3f,0x25, 0xf,0x3f,0x26, 0xf,0x3f,0x27, + 0xf,0x3f,0x29, 0x4,0x3a,0x77, 0x6,0x57,0x70, 0x6,0x57,0x6f, + 0x4,0x40,0x5a, 0x4,0x40,0x5c, 0x6,0x57,0x74, 0x4,0x40,0x54, + 0x5,0x42,0x58, 0x5,0x42,0x5b, 0x5,0x42,0x56, 0x4,0x40,0x51, + 0x4,0x40,0x53, 0x5,0x42,0x5c, 0x5,0x42,0x5e, 0x5,0x42,0x5a, + 0x5,0x42,0x57, 0x4,0x40,0x5e, 0x4,0x40,0x50, 0x6,0x57,0x72, + 0x6,0x57,0x73, 0x6,0x57,0x6c, 0x6,0x57,0x6d, 0x6,0x61,0x68, + 0x6,0x57,0x71, 0x6,0x57,0x75, 0x5,0x42,0x59, 0xf,0x45,0x32, + 0xf,0x45,0x33, 0xf,0x45,0x34, 0xf,0x45,0x35, 0xf,0x45,0x36, + 0xf,0x45,0x37, 0xf,0x45,0x38, 0xf,0x45,0x39, 0x6,0x57,0x76, + 0x7,0x49,0x6b, 0x6,0x57,0x77, 0x6,0x57,0x79, 0x5,0x49,0x51, + 0x5,0x49,0x56, 0x5,0x49,0x5b, 0x5,0x49,0x57, 0x5,0x49,0x5c, + 0x4,0x47,0x21, 0x5,0x49,0x55, 0x4,0x46,0x7d, 0x6,0x62,0x23, + 0x5,0x49,0x5f, 0x4,0x46,0x77, 0x5,0x49,0x59, 0x4,0x46,0x74, + 0x6,0x61,0x76, 0x6,0x61,0x6a, 0x6,0x61,0x75, 0x4,0x47,0x22, + 0x5,0x49,0x5e, 0x6,0x61,0x6b, 0x6,0x61,0x71, 0x5,0x49,0x54, + 0x6,0x61,0x7c, 0x5,0x49,0x5d, 0x5,0x49,0x58, 0x6,0x61,0x7b, + 0x6,0x62,0x21, 0x5,0x49,0x60, 0x6,0x61,0x74, 0x6,0x61,0x7d, + 0x6,0x61,0x6d, 0x5,0x49,0x61, 0x5,0x49,0x62, 0x6,0x61,0x72, + 0x6,0x62,0x22, 0x5,0x49,0x5a, 0x6,0x61,0x6c, 0x6,0x61,0x79, + 0x6,0x61,0x7a, 0x6,0x61,0x70, 0x5,0x49,0x52, 0x6,0x61,0x6e, + 0x5,0x49,0x53, 0x6,0x61,0x73, 0xf,0x4c,0x2d, 0xf,0x4c,0x2e, + 0xf,0x4c,0x30, 0xf,0x4c,0x31, 0xf,0x4c,0x32, 0x6,0x61,0x78, + 0x4,0x40,0x58, 0x6,0x61,0x7e, 0x6,0x61,0x6f, 0x4,0x4d,0x2d, + 0x7,0x28,0x43, 0x5,0x50,0x53, 0x4,0x4d,0x2e, 0x4,0x4d,0x2b, + 0x7,0x28,0x38, 0x4,0x4d,0x34, 0x5,0x50,0x5f, 0x7,0x28,0x37, + 0x7,0x28,0x2c, 0x5,0x50,0x51, 0x7,0x28,0x2b, 0x7,0x28,0x35, + 0x7,0x28,0x3f, 0x5,0x50,0x57, 0x4,0x4d,0x32, 0x4,0x4d,0x2a, + 0x7,0x28,0x40, 0x7,0x28,0x34, 0x5,0x50,0x56, 0x7,0x28,0x3b, + 0x7,0x28,0x31, 0x7,0x28,0x3e, 0x5,0x57,0x6e, 0x4,0x4d,0x2c, + 0x4,0x4d,0x29, 0x5,0x50,0x5c, 0x5,0x50,0x5a, 0x5,0x50,0x50, + 0x5,0x50,0x59, 0x5,0x50,0x58, 0x7,0x28,0x2a, 0x5,0x50,0x5b, + 0x4,0x46,0x7a, 0x5,0x50,0x52, 0x5,0x50,0x5e, 0x5,0x50,0x5d, + 0x4,0x4d,0x35, 0x7,0x28,0x46, 0x7,0x28,0x30, 0x7,0x28,0x2d, + 0x7,0x28,0x44, 0x7,0x28,0x39, 0x7,0x28,0x45, 0x7,0x28,0x3c, + 0x7,0x28,0x2f, 0x6,0x61,0x77, 0x7,0x28,0x36, 0x7,0x28,0x3d, + 0x5,0x50,0x54, 0x4,0x4d,0x27, 0x5,0x50,0x4f, 0xf,0x51,0x7a, + 0xf,0x51,0x7b, 0xf,0x51,0x7e, 0xf,0x52,0x21, 0xf,0x52,0x22, + 0xf,0x52,0x23, 0xf,0x52,0x25, 0xf,0x52,0x28, 0xf,0x52,0x29, + 0xf,0x52,0x2a, 0xf,0x52,0x2b, 0x7,0x28,0x33, 0x7,0x28,0x41, + 0x7,0x28,0x3a, 0xf,0x52,0x27, 0x7,0x28,0x32, 0xf,0x4c,0x2f, + 0x5,0x57,0x70, 0x4,0x53,0x45, 0x5,0x57,0x76, 0x5,0x57,0x75, + 0x4,0x53,0x3a, 0x5,0x57,0x74, 0x5,0x57,0x71, 0x7,0x32,0x6e, + 0x7,0x32,0x7d, 0x5,0x57,0x77, 0x4,0x53,0x48, 0x5,0x57,0x7b, + 0x4,0x53,0x49, 0x4,0x53,0x40, 0x4,0x53,0x42, 0x5,0x57,0x7c, + 0x7,0x32,0x6d, 0x4,0x53,0x3b, 0x7,0x32,0x67, 0x4,0x53,0x3f, + 0x7,0x32,0x7c, 0x5,0x57,0x79, 0x5,0x57,0x6f, 0x5,0x58,0x21, + 0x5,0x57,0x72, 0x7,0x3b,0x3a, 0x5,0x57,0x78, 0x7,0x32,0x69, + 0x4,0x53,0x46, 0x5,0x57,0x7a, 0x7,0x32,0x70, 0x7,0x33,0x22, + 0x5,0x57,0x73, 0x7,0x32,0x64, 0x5,0x57,0x7e, 0x7,0x32,0x74, + 0x4,0x53,0x47, 0x5,0x50,0x60, 0x7,0x32,0x6b, 0x7,0x32,0x65, + 0x5,0x57,0x7d, 0x7,0x32,0x76, 0x4,0x53,0x43, 0x7,0x32,0x7b, + 0x7,0x33,0x24, 0x7,0x32,0x62, 0x7,0x32,0x77, 0x7,0x32,0x63, + 0x7,0x32,0x78, 0x7,0x32,0x6f, 0x7,0x32,0x7e, 0x7,0x32,0x72, + 0x7,0x32,0x68, 0x7,0x33,0x23, 0xf,0x57,0x60, 0xf,0x57,0x61, + 0xf,0x57,0x63, 0xf,0x57,0x64, 0xf,0x57,0x65, 0xf,0x57,0x66, + 0x7,0x32,0x79, 0x7,0x32,0x6a, 0x7,0x32,0x7a, 0x7,0x32,0x71, + 0x7,0x32,0x66, 0x7,0x32,0x6c, 0x4,0x58,0x59, 0x5,0x5e,0x29, + 0x5,0x5e,0x2c, 0x4,0x58,0x55, 0x7,0x3b,0x52, 0x7,0x3b,0x44, + 0x4,0x58,0x60, 0x4,0x58,0x5c, 0x7,0x3b,0x48, 0x7,0x3b,0x42, + 0x7,0x3b,0x55, 0x4,0x58,0x5e, 0x7,0x3b,0x46, 0x7,0x28,0x47, + 0x4,0x58,0x50, 0x5,0x5e,0x31, 0x7,0x3b,0x50, 0x7,0x3b,0x3f, + 0x4,0x58,0x5d, 0x7,0x3b,0x4f, 0x5,0x5e,0x2b, 0x5,0x5e,0x2f, + 0x7,0x3b,0x53, 0x4,0x58,0x5a, 0x7,0x3b,0x47, 0x7,0x3b,0x41, + 0x5,0x5e,0x33, 0x4,0x58,0x53, 0x7,0x3b,0x40, 0x4,0x58,0x51, + 0x7,0x3b,0x3e, 0x7,0x3b,0x54, 0x5,0x5e,0x2a, 0x7,0x3b,0x3c, + 0x7,0x3b,0x3b, 0x7,0x3b,0x49, 0x4,0x58,0x5b, 0x5,0x5e,0x2d, + 0x5,0x5e,0x2e, 0x7,0x3b,0x45, 0xf,0x5c,0x54, 0xf,0x5c,0x55, + 0xf,0x5c,0x56, 0xf,0x5c,0x57, 0xf,0x5c,0x58, 0xf,0x5c,0x59, + 0xf,0x5c,0x5a, 0xf,0x5c,0x5c, 0x7,0x3b,0x43, 0x7,0x3b,0x4b, + 0x7,0x3b,0x4e, 0x7,0x3b,0x51, 0x7,0x3b,0x3d, 0x5,0x5e,0x28, + 0x7,0x3b,0x4a, 0x7,0x3b,0x4c, 0x5,0x5e,0x30, 0x4,0x5d,0x3d, + 0x4,0x5d,0x37, 0x7,0x42,0x55, 0x7,0x42,0x61, 0x7,0x42,0x58, + 0x7,0x42,0x68, 0x5,0x64,0x43, 0x5,0x64,0x44, 0x5,0x5e,0x34, + 0x4,0x5d,0x38, 0x5,0x64,0x50, 0x7,0x42,0x59, 0x4,0x5d,0x36, + 0x5,0x64,0x45, 0x4,0x5d,0x35, 0x4,0x5d,0x3a, 0x5,0x64,0x3f, + 0x5,0x64,0x42, 0x5,0x64,0x4d, 0x4,0x5d,0x34, 0x5,0x64,0x4a, + 0x7,0x42,0x56, 0x5,0x64,0x3e, 0x5,0x64,0x41, 0x5,0x64,0x4b, + 0x7,0x42,0x57, 0x7,0x42,0x5c, 0x7,0x42,0x5b, 0x5,0x64,0x40, + 0x7,0x42,0x6f, 0x7,0x42,0x6b, 0x5,0x64,0x4f, 0x7,0x42,0x6e, + 0x5,0x64,0x49, 0x5,0x64,0x4c, 0x7,0x42,0x69, 0x5,0x64,0x46, + 0x7,0x42,0x6c, 0x5,0x64,0x47, 0x7,0x42,0x65, 0x7,0x42,0x62, + 0x7,0x42,0x5d, 0x7,0x42,0x63, 0x7,0x42,0x54, 0x7,0x42,0x5a, + 0x7,0x42,0x53, 0x7,0x42,0x5e, 0x7,0x42,0x6a, 0x7,0x42,0x66, + 0xf,0x60,0x62, 0xf,0x60,0x64, 0xf,0x60,0x65, 0xf,0x60,0x66, + 0xf,0x60,0x68, 0xf,0x60,0x69, 0xf,0x60,0x6a, 0x7,0x42,0x64, + 0x4,0x5d,0x3c, 0x7,0x42,0x67, 0xf,0x60,0x67, 0xf,0x60,0x61, + 0x5,0x64,0x4e, 0x4,0x61,0x28, 0x7,0x49,0x6a, 0x7,0x49,0x59, + 0x7,0x49,0x60, 0x7,0x49,0x6c, 0x7,0x49,0x5a, 0x7,0x49,0x69, + 0x7,0x49,0x6d, 0x4,0x61,0x23, 0x5,0x69,0x42, 0x5,0x69,0x40, + 0x7,0x49,0x62, 0x7,0x49,0x67, 0x7,0x49,0x65, 0x5,0x69,0x44, + 0x7,0x49,0x5d, 0x7,0x49,0x68, 0x7,0x49,0x64, 0x7,0x49,0x66, + 0x7,0x4f,0x6b, 0x7,0x49,0x61, 0x7,0x49,0x6e, 0x7,0x49,0x6f, + 0x7,0x49,0x63, 0x5,0x69,0x45, 0x7,0x49,0x5c, 0x7,0x49,0x5f, + 0x7,0x49,0x58, 0xf,0x63,0x6b, 0xf,0x63,0x6c, 0xf,0x63,0x6d, + 0xf,0x63,0x6f, 0xf,0x63,0x70, 0xf,0x63,0x71, 0xf,0x63,0x72, + 0xf,0x63,0x73, 0xf,0x63,0x74, 0xf,0x63,0x75, 0x7,0x49,0x5b, + 0x4,0x61,0x22, 0x4,0x61,0x27, 0x7,0x49,0x5e, 0x7,0x42,0x70, + 0x7,0x4f,0x75, 0x7,0x4f,0x7a, 0x5,0x6d,0x4d, 0x7,0x4f,0x6c, + 0x4,0x64,0x42, 0x5,0x6d,0x4c, 0x5,0x6d,0x51, 0x7,0x4f,0x78, + 0x7,0x4f,0x70, 0x5,0x6d,0x50, 0x7,0x4f,0x74, 0x5,0x6d,0x52, + 0x5,0x6d,0x53, 0x7,0x4f,0x73, 0x5,0x6d,0x4e, 0x7,0x4f,0x72, + 0x7,0x4f,0x77, 0x7,0x4f,0x71, 0x7,0x4f,0x6d, 0x5,0x6d,0x4f, + 0x7,0x4f,0x6f, 0x7,0x54,0x77, 0x7,0x4f,0x6e, 0x7,0x4f,0x7b, + 0xf,0x66,0x2d, 0xf,0x66,0x2e, 0xf,0x66,0x2f, 0xf,0x66,0x30, + 0xf,0x66,0x31, 0x7,0x4f,0x76, 0x4,0x67,0x2f, 0x4,0x67,0x34, + 0x7,0x54,0x6b, 0x7,0x54,0x70, 0x5,0x71,0x2f, 0x7,0x54,0x75, + 0x7,0x54,0x6e, 0x7,0x54,0x71, 0x5,0x71,0x2e, 0x7,0x54,0x73, + 0x5,0x71,0x2d, 0x5,0x71,0x30, 0x7,0x54,0x6c, 0x4,0x67,0x33, + 0x7,0x54,0x6f, 0x4,0x67,0x35, 0x4,0x67,0x31, 0x7,0x54,0x72, + 0x5,0x71,0x32, 0x7,0x54,0x78, 0x7,0x4f,0x79, 0x7,0x54,0x74, + 0x4,0x67,0x32, 0x7,0x54,0x79, 0x5,0x71,0x31, 0x5,0x71,0x33, + 0x7,0x54,0x76, 0xf,0x68,0x45, 0xf,0x68,0x46, 0xf,0x68,0x47, + 0xf,0x68,0x48, 0xf,0x68,0x49, 0x7,0x54,0x6d, 0x5,0x74,0x2e, + 0x4,0x69,0x3c, 0x5,0x74,0x2c, 0x5,0x74,0x2b, 0x7,0x59,0x23, + 0x7,0x58,0x7c, 0x5,0x74,0x2d, 0x5,0x74,0x31, 0x5,0x74,0x30, + 0x7,0x58,0x7a, 0x5,0x74,0x33, 0x5,0x74,0x35, 0x5,0x74,0x32, + 0x7,0x58,0x79, 0x4,0x69,0x3d, 0x7,0x59,0x26, 0x7,0x59,0x28, + 0x7,0x59,0x27, 0x7,0x58,0x7e, 0x7,0x59,0x21, 0x5,0x74,0x34, + 0x5,0x74,0x36, 0x7,0x59,0x24, 0x7,0x59,0x29, 0x5,0x74,0x2f, + 0x7,0x58,0x7d, 0x7,0x58,0x7b, 0xf,0x69,0x6d, 0xf,0x69,0x6e, + 0x5,0x76,0x46, 0x4,0x6a,0x76, 0x4,0x6a,0x77, 0x7,0x5c,0x5d, + 0x5,0x76,0x47, 0x4,0x6a,0x79, 0x7,0x5c,0x5f, 0x7,0x5c,0x5c, + 0x5,0x76,0x48, 0x7,0x5c,0x62, 0x5,0x76,0x45, 0x7,0x5f,0x4a, + 0x7,0x5c,0x60, 0x4,0x6a,0x7a, 0x7,0x5c,0x61, 0x5,0x76,0x4a, + 0x7,0x59,0x22, 0x5,0x76,0x49, 0xf,0x6a,0x70, 0xf,0x6a,0x71, + 0xf,0x6a,0x72, 0x5,0x78,0x2c, 0x7,0x5f,0x4b, 0x4,0x6b,0x7e, + 0x5,0x78,0x2b, 0x5,0x78,0x29, 0x7,0x5f,0x4c, 0x5,0x78,0x26, + 0x4,0x6c,0x22, 0x7,0x5f,0x4d, 0x5,0x78,0x2a, 0x5,0x78,0x28, + 0x4,0x6c,0x24, 0x5,0x78,0x2d, 0x5,0x78,0x27, 0x5,0x79,0x44, + 0x4,0x6c,0x7e, 0x5,0x79,0x48, 0x5,0x79,0x4a, 0x4,0x6c,0x21, + 0x7,0x61,0x40, 0x5,0x79,0x46, 0x7,0x61,0x44, 0x7,0x61,0x43, + 0x7,0x61,0x45, 0x5,0x79,0x47, 0x5,0x79,0x49, 0x7,0x61,0x41, + 0x5,0x79,0x45, 0x7,0x62,0x5d, 0x7,0x62,0x5b, 0x7,0x62,0x5e, + 0x7,0x62,0x5c, 0x7,0x62,0x5f, 0x7,0x63,0x6e, 0x7,0x63,0x6c, + 0x5,0x7a,0x73, 0x7,0x63,0x6b, 0x7,0x63,0x6f, 0x7,0x62,0x5a, + 0x7,0x63,0x69, 0x7,0x63,0x71, 0x7,0x63,0x6a, 0x7,0x63,0x70, + 0x7,0x63,0x6d, 0x7,0x64,0x5c, 0x4,0x6e,0x3a, 0x7,0x64,0x5d, + 0x5,0x7b,0x47, 0x5,0x7b,0x48, 0x7,0x64,0x5a, 0x7,0x64,0x5b, + 0x5,0x7b,0x67, 0x7,0x65,0x41, 0x7,0x65,0x42, 0x5,0x7b,0x68, + 0x4,0x6e,0x50, 0x7,0x65,0x62, 0x7,0x65,0x61, 0xf,0x6d,0x31, + 0x7,0x66,0x2b, 0x5,0x27,0x65, 0x6,0x2e,0x27, 0x6,0x2e,0x26, + 0x4,0x2b,0x44, 0x6,0x3b,0x72, 0x5,0x30,0x35, 0x6,0x3b,0x75, + 0x6,0x3b,0x74, 0xf,0x38,0x41, 0x6,0x4e,0x4e, 0x6,0x4e,0x50, + 0x5,0x42,0x5f, 0x6,0x57,0x7c, 0x6,0x57,0x7a, 0x6,0x57,0x7d, + 0x6,0x57,0x7b, 0x5,0x49,0x65, 0x5,0x49,0x63, 0x5,0x49,0x64, + 0x6,0x62,0x26, 0x6,0x62,0x24, 0x7,0x28,0x48, 0x5,0x50,0x61, + 0x7,0x28,0x49, 0x7,0x28,0x4a, 0x6,0x62,0x25, 0x5,0x58,0x23, + 0x5,0x58,0x24, 0x5,0x58,0x22, 0x7,0x33,0x25, 0x7,0x33,0x26, + 0x5,0x5e,0x37, 0x5,0x5e,0x36, 0xf,0x5c,0x5d, 0x4,0x5d,0x3e, + 0x4,0x5d,0x3f, 0x7,0x42,0x71, 0x7,0x42,0x73, 0x4,0x5d,0x40, + 0x7,0x42,0x72, 0x5,0x69,0x46, 0x5,0x6d,0x54, 0x7,0x4f,0x7c, + 0x7,0x54,0x7a, 0x7,0x59,0x2b, 0x7,0x59,0x2a, 0x7,0x5f,0x4e, + 0x7,0x65,0x63, 0x4,0x28,0x23, 0x6,0x2e,0x28, 0x4,0x28,0x24, + 0x6,0x34,0x4f, 0x6,0x34,0x50, 0x5,0x2b,0x41, 0xf,0x2d,0x45, + 0x5,0x30,0x36, 0x6,0x3b,0x77, 0x6,0x3b,0x76, 0x5,0x30,0x37, + 0x6,0x44,0x4f, 0x5,0x3c,0x29, 0x6,0x4e,0x53, 0x6,0x4e,0x52, + 0xf,0x3f,0x2a, 0xf,0x3f,0x2b, 0x6,0x4e,0x51, 0x6,0x58,0x23, + 0x6,0x58,0x21, 0x4,0x40,0x5f, 0x6,0x58,0x22, 0x6,0x57,0x7e, + 0xf,0x45,0x3a, 0x4,0x47,0x24, 0x5,0x50,0x62, 0x6,0x62,0x27, + 0x6,0x62,0x28, 0x4,0x58,0x61, 0x7,0x3b,0x56, 0xf,0x5c,0x5e, + 0x4,0x5d,0x41, 0x7,0x42,0x74, 0x7,0x49,0x70, 0x7,0x54,0x7b, + 0x7,0x5c,0x64, 0x5,0x27,0x66, 0x6,0x2e,0x29, 0x6,0x2e,0x2a, + 0x6,0x2e,0x2b, 0x5,0x2b,0x43, 0x6,0x34,0x51, 0x4,0x2b,0x45, + 0x4,0x2b,0x47, 0x5,0x2b,0x45, 0x6,0x34,0x53, 0x5,0x2b,0x44, + 0xf,0x28,0x6b, 0x6,0x34,0x52, 0x5,0x2b,0x42, 0x5,0x2b,0x46, + 0x6,0x3b,0x7d, 0x5,0x30,0x3c, 0x4,0x2f,0x71, 0x6,0x3c,0x21, + 0x6,0x3c,0x25, 0x5,0x30,0x3f, 0x6,0x3c,0x26, 0x6,0x3c,0x27, + 0x4,0x2f,0x70, 0x6,0x3b,0x79, 0x5,0x30,0x40, 0x6,0x3b,0x7b, + 0x5,0x30,0x38, 0x6,0x3c,0x22, 0x6,0x3b,0x7c, 0x6,0x3c,0x23, + 0x6,0x3b,0x7e, 0x5,0x30,0x3b, 0x6,0x3b,0x7a, 0x6,0x3b,0x78, + 0x5,0x30,0x3a, 0xf,0x32,0x50, 0x6,0x3c,0x24, 0x6,0x3c,0x28, + 0x6,0x3c,0x29, 0xf,0x2d,0x48, 0xf,0x2d,0x49, 0xf,0x32,0x52, + 0x4,0x35,0x28, 0x5,0x3c,0x32, 0x4,0x35,0x2b, 0x4,0x3a,0x7c, + 0x5,0x35,0x46, 0x4,0x35,0x29, 0x6,0x44,0x58, 0x5,0x35,0x47, + 0x5,0x35,0x4a, 0x5,0x35,0x44, 0x5,0x35,0x45, 0x5,0x35,0x43, + 0x6,0x44,0x59, 0x6,0x44,0x5a, 0x5,0x35,0x42, 0x6,0x44,0x53, + 0x6,0x44,0x55, 0x6,0x44,0x54, 0x6,0x44,0x51, 0x6,0x44,0x50, + 0x6,0x44,0x57, 0x6,0x44,0x52, 0xf,0x2d,0x46, 0xf,0x38,0x45, + 0x5,0x35,0x48, 0x6,0x44,0x56, 0x5,0x35,0x49, 0x5,0x3c,0x31, + 0x6,0x4e,0x5b, 0x6,0x4e,0x59, 0x5,0x3c,0x2e, 0x6,0x4e,0x57, + 0x5,0x3c,0x2f, 0x5,0x3c,0x33, 0x4,0x3a,0x7e, 0x6,0x4e,0x58, + 0x6,0x4e,0x54, 0x4,0x3a,0x7d, 0x6,0x4e,0x56, 0x5,0x3c,0x30, + 0x5,0x3c,0x2d, 0x5,0x3c,0x2b, 0x5,0x42,0x64, 0x5,0x3c,0x2a, + 0xf,0x38,0x44, 0xf,0x3f,0x2e, 0x6,0x4e,0x55, 0x6,0x4e,0x5a, + 0x6,0x4e,0x5c, 0x5,0x3c,0x2c, 0xf,0x38,0x43, 0x5,0x42,0x6a, + 0x5,0x42,0x62, 0x5,0x42,0x66, 0x4,0x40,0x65, 0x5,0x42,0x6b, + 0x5,0x42,0x63, 0x5,0x42,0x67, 0x4,0x40,0x63, 0x5,0x42,0x65, + 0x5,0x42,0x69, 0x6,0x58,0x2f, 0x4,0x40,0x64, 0x6,0x58,0x2a, + 0x6,0x58,0x28, 0x6,0x58,0x30, 0x5,0x42,0x68, 0x5,0x42,0x60, + 0x6,0x58,0x24, 0x6,0x58,0x27, 0x6,0x58,0x2d, 0xf,0x3f,0x2c, + 0xf,0x3f,0x2d, 0xf,0x3f,0x2f, 0xf,0x3f,0x30, 0xf,0x45,0x3b, + 0x6,0x58,0x26, 0x6,0x58,0x31, 0x6,0x58,0x25, 0x6,0x58,0x29, + 0x5,0x42,0x61, 0xf,0x45,0x3e, 0x4,0x47,0x30, 0x4,0x47,0x2c, + 0x6,0x62,0x2d, 0x6,0x62,0x33, 0x4,0x47,0x29, 0x5,0x49,0x66, + 0x5,0x49,0x69, 0x4,0x47,0x28, 0x5,0x49,0x68, 0x5,0x3c,0x34, + 0x6,0x62,0x34, 0x5,0x49,0x6a, 0x6,0x62,0x2b, 0x6,0x62,0x29, + 0x6,0x62,0x2a, 0x6,0x62,0x32, 0x6,0x62,0x31, 0x5,0x49,0x67, + 0x6,0x62,0x2f, 0x5,0x49,0x6b, 0x6,0x62,0x30, 0x6,0x62,0x2c, + 0x4,0x47,0x33, 0x6,0x62,0x35, 0x6,0x62,0x2e, 0xf,0x4c,0x34, + 0xf,0x4c,0x36, 0xf,0x4c,0x37, 0x4,0x47,0x2f, 0xf,0x45,0x3c, + 0xf,0x45,0x3f, 0x5,0x50,0x66, 0x7,0x28,0x54, 0x4,0x4d,0x41, + 0x5,0x50,0x69, 0x7,0x28,0x57, 0x4,0x47,0x32, 0x7,0x28,0x56, + 0x5,0x50,0x65, 0x4,0x4d,0x38, 0x7,0x28,0x55, 0x7,0x33,0x28, + 0x5,0x50,0x67, 0x7,0x28,0x5a, 0x7,0x28,0x4b, 0x4,0x4d,0x45, + 0x4,0x4d,0x3b, 0x4,0x4d,0x3d, 0x7,0x28,0x53, 0x4,0x4d,0x44, + 0x4,0x4d,0x43, 0x5,0x50,0x63, 0x7,0x28,0x58, 0x7,0x28,0x52, + 0x7,0x28,0x4c, 0x5,0x50,0x64, 0x7,0x28,0x4f, 0x5,0x50,0x68, + 0x7,0x28,0x51, 0x7,0x28,0x50, 0x7,0x28,0x4d, 0xf,0x4c,0x35, + 0xf,0x52,0x2d, 0x7,0x28,0x4e, 0x7,0x28,0x59, 0x5,0x58,0x2c, + 0x5,0x58,0x2b, 0x7,0x33,0x2b, 0x5,0x58,0x27, 0x5,0x58,0x2a, + 0x7,0x33,0x27, 0x4,0x53,0x51, 0x7,0x33,0x29, 0x4,0x53,0x54, + 0x7,0x3b,0x62, 0x5,0x58,0x29, 0x5,0x58,0x28, 0x7,0x33,0x2a, + 0x4,0x53,0x4e, 0x7,0x33,0x2c, 0x7,0x33,0x2f, 0x4,0x53,0x4d, + 0x5,0x58,0x25, 0x7,0x33,0x30, 0x5,0x58,0x26, 0x7,0x33,0x2e, + 0xf,0x52,0x2c, 0x7,0x33,0x2d, 0x5,0x5e,0x3e, 0x5,0x5e,0x3f, + 0x7,0x3b,0x57, 0x5,0x5e,0x3b, 0x7,0x3b,0x5d, 0x7,0x3b,0x64, + 0x4,0x58,0x66, 0x5,0x5e,0x38, 0x5,0x5e,0x39, 0x5,0x5e,0x3d, + 0x5,0x5e,0x3c, 0x7,0x3b,0x5f, 0x7,0x3b,0x5b, 0x7,0x3b,0x63, + 0x7,0x42,0x7b, 0x7,0x3b,0x5c, 0x7,0x28,0x5b, 0x7,0x3b,0x5e, + 0x7,0x3b,0x60, 0x5,0x5e,0x40, 0x7,0x3b,0x58, 0x7,0x3b,0x5a, + 0x5,0x5e,0x3a, 0xf,0x57,0x67, 0xf,0x57,0x68, 0xf,0x57,0x69, + 0xf,0x57,0x6a, 0x7,0x42,0x75, 0x4,0x5d,0x45, 0x7,0x42,0x7c, + 0x7,0x42,0x7e, 0x5,0x64,0x5b, 0x5,0x64,0x57, 0x7,0x42,0x7d, + 0x4,0x5d,0x4b, 0x5,0x64,0x54, 0x5,0x64,0x55, 0x5,0x64,0x5f, + 0x4,0x5d,0x4d, 0x4,0x5d,0x42, 0x7,0x42,0x7a, 0x5,0x64,0x53, + 0x4,0x5d,0x47, 0x4,0x5d,0x4c, 0x5,0x64,0x5d, 0x7,0x42,0x79, + 0x7,0x42,0x77, 0x5,0x64,0x51, 0x4,0x5d,0x43, 0x5,0x5e,0x42, + 0x5,0x64,0x52, 0x7,0x42,0x78, 0x7,0x43,0x23, 0x7,0x42,0x76, + 0x5,0x64,0x59, 0x5,0x64,0x5a, 0x5,0x5e,0x41, 0x5,0x64,0x5c, + 0x5,0x64,0x5e, 0x5,0x64,0x58, 0xf,0x5c,0x60, 0x7,0x49,0x76, + 0x5,0x69,0x49, 0x5,0x69,0x4a, 0x4,0x61,0x29, 0x7,0x49,0x7b, + 0x7,0x49,0x7c, 0x5,0x69,0x47, 0x5,0x69,0x48, 0x7,0x49,0x72, + 0x7,0x49,0x73, 0x7,0x49,0x75, 0x7,0x49,0x79, 0x7,0x49,0x7a, + 0x7,0x49,0x74, 0x7,0x49,0x78, 0x4,0x61,0x2b, 0x7,0x49,0x77, + 0x7,0x43,0x21, 0xf,0x60,0x6b, 0xf,0x60,0x6c, 0xf,0x63,0x76, + 0x7,0x4f,0x7d, 0x5,0x6d,0x58, 0x7,0x50,0x26, 0x5,0x6d,0x5b, + 0x5,0x71,0x34, 0x5,0x6d,0x55, 0x4,0x64,0x45, 0x7,0x50,0x23, + 0x5,0x6d,0x56, 0x7,0x50,0x22, 0x7,0x54,0x7c, 0x7,0x4f,0x7e, + 0x5,0x6d,0x59, 0x7,0x49,0x71, 0x5,0x6d,0x5a, 0x5,0x6d,0x5c, + 0x7,0x50,0x24, 0xf,0x66,0x34, 0x7,0x50,0x21, 0x5,0x6d,0x5d, + 0x7,0x55,0x22, 0x7,0x55,0x24, 0x5,0x71,0x36, 0x4,0x67,0x36, + 0x7,0x55,0x26, 0x7,0x55,0x25, 0x5,0x71,0x35, 0x7,0x54,0x7e, + 0x7,0x55,0x21, 0x4,0x67,0x37, 0x7,0x55,0x23, 0x7,0x59,0x31, + 0x7,0x54,0x7d, 0xf,0x66,0x33, 0x4,0x69,0x41, 0x7,0x59,0x2e, + 0x4,0x69,0x40, 0x4,0x69,0x3f, 0x5,0x74,0x37, 0x7,0x59,0x2c, + 0x7,0x59,0x2d, 0x7,0x59,0x30, 0x7,0x59,0x2f, 0x5,0x78,0x2e, + 0xf,0x69,0x6f, 0x7,0x5f,0x51, 0x7,0x5f,0x50, 0x7,0x5f,0x4f, + 0x5,0x79,0x4b, 0x7,0x61,0x48, 0x7,0x61,0x47, 0x7,0x61,0x46, + 0x7,0x62,0x61, 0x5,0x7a,0x37, 0x7,0x62,0x62, 0x7,0x62,0x60, + 0x7,0x64,0x5f, 0x7,0x63,0x73, 0x7,0x63,0x72, 0x7,0x64,0x5e, + 0x5,0x7b,0x7e, 0x7,0x65,0x64, 0x7,0x66,0x2c, 0x5,0x7c,0x4b, + 0x7,0x66,0x4d, 0x5,0x24,0x76, 0x6,0x2e,0x2c, 0x4,0x2b,0x48, + 0x5,0x30,0x41, 0x4,0x2f,0x74, 0x6,0x3c,0x2a, 0x6,0x44,0x5b, + 0xf,0x38,0x46, 0xf,0x3f,0x31, 0xf,0x3f,0x32, 0x6,0x58,0x32, + 0x4,0x47,0x34, 0x6,0x62,0x36, 0x6,0x62,0x37, 0x6,0x62,0x38, + 0xf,0x4c,0x38, 0xf,0x4c,0x39, 0x7,0x28,0x5c, 0xf,0x4c,0x3a, + 0xf,0x52,0x30, 0x7,0x33,0x31, 0x7,0x33,0x32, 0xf,0x52,0x2f, + 0x7,0x3b,0x65, 0xf,0x60,0x6d, 0xf,0x60,0x6e, 0x5,0x69,0x4b, + 0x7,0x50,0x27, 0x7,0x55,0x27, 0x5,0x27,0x67, 0x6,0x2e,0x2d, + 0x4,0x2f,0x77, 0x5,0x30,0x42, 0xf,0x32,0x53, 0x5,0x35,0x4d, + 0x5,0x35,0x4e, 0x6,0x44,0x5c, 0x6,0x44,0x5d, 0x5,0x35,0x50, + 0x5,0x35,0x4b, 0xf,0x38,0x47, 0xf,0x38,0x49, 0xf,0x38,0x4b, + 0x4,0x35,0x32, 0x4,0x35,0x36, 0x5,0x35,0x4c, 0x5,0x35,0x4f, + 0x6,0x4e,0x5f, 0x4,0x3b,0x25, 0x6,0x4e,0x62, 0x6,0x4e,0x61, + 0x5,0x3c,0x36, 0x6,0x4e,0x5e, 0x4,0x3b,0x24, 0x6,0x4e,0x5d, + 0x6,0x58,0x36, 0x5,0x42,0x6d, 0x5,0x42,0x6f, 0x5,0x42,0x6e, + 0x6,0x58,0x33, 0x6,0x58,0x37, 0x5,0x42,0x70, 0xf,0x45,0x40, + 0xf,0x45,0x41, 0xf,0x45,0x42, 0x6,0x58,0x35, 0x6,0x62,0x39, + 0x5,0x49,0x71, 0x5,0x49,0x6e, 0x5,0x49,0x72, 0x4,0x47,0x37, + 0x6,0x62,0x3a, 0xf,0x4c,0x3b, 0xf,0x4c,0x3c, 0x5,0x49,0x6f, + 0x6,0x62,0x3b, 0x5,0x49,0x70, 0x4,0x4d,0x49, 0x7,0x28,0x5f, + 0x5,0x50,0x6c, 0x4,0x4d,0x4b, 0x5,0x50,0x6b, 0x7,0x28,0x63, + 0x5,0x50,0x6d, 0x6,0x58,0x34, 0x7,0x28,0x62, 0x5,0x50,0x6a, + 0x5,0x50,0x6e, 0xf,0x52,0x31, 0x7,0x28,0x60, 0x7,0x28,0x5e, + 0x7,0x28,0x5d, 0x7,0x28,0x61, 0x5,0x58,0x30, 0x5,0x58,0x2f, + 0x5,0x58,0x2e, 0x4,0x53,0x57, 0x7,0x33,0x34, 0x5,0x58,0x34, + 0x7,0x3b,0x67, 0x4,0x53,0x58, 0x4,0x53,0x5e, 0x4,0x53,0x5d, + 0x5,0x58,0x31, 0x5,0x58,0x35, 0x7,0x33,0x33, 0x5,0x58,0x2d, + 0x5,0x58,0x33, 0xf,0x57,0x6b, 0xf,0x57,0x6c, 0xf,0x57,0x6d, + 0x7,0x3b,0x66, 0x5,0x64,0x60, 0x5,0x5e,0x45, 0x5,0x5e,0x44, + 0x7,0x3b,0x6a, 0x7,0x3b,0x69, 0x7,0x3b,0x6b, 0x7,0x3b,0x68, + 0xf,0x5c,0x61, 0xf,0x5c,0x62, 0x5,0x64,0x62, 0x4,0x5d,0x51, + 0x4,0x5d,0x4f, 0x7,0x43,0x24, 0x5,0x64,0x61, 0xf,0x60,0x6f, + 0xf,0x60,0x70, 0xf,0x60,0x71, 0x7,0x43,0x25, 0x7,0x49,0x7d, + 0x7,0x49,0x7e, 0x5,0x6d,0x5f, 0x7,0x50,0x29, 0x7,0x50,0x28, + 0xf,0x66,0x35, 0x5,0x6d,0x5e, 0xf,0x68,0x4b, 0xf,0x68,0x4c, + 0x7,0x55,0x28, 0x4,0x69,0x43, 0x5,0x74,0x39, 0x4,0x69,0x42, + 0xf,0x69,0x70, 0xf,0x69,0x71, 0x5,0x78,0x2f, 0x7,0x5f,0x53, + 0xf,0x6b,0x64, 0x7,0x5f,0x52, 0x5,0x79,0x4d, 0x5,0x79,0x4c, + 0x7,0x61,0x49, 0x4,0x6d,0x21, 0x5,0x7a,0x74, 0x4,0x6e,0x3b, + 0x5,0x7c,0x44, 0x7,0x66,0x54, 0x6,0x2e,0x2e, 0x6,0x2e,0x2f, + 0x6,0x34,0x54, 0x5,0x2b,0x48, 0x4,0x2f,0x78, 0x6,0x3c,0x2c, + 0x4,0x2f,0x79, 0x6,0x3c,0x2b, 0x6,0x44,0x67, 0x4,0x35,0x3b, + 0x5,0x35,0x53, 0x5,0x35,0x52, 0x6,0x44,0x5f, 0x6,0x44,0x63, + 0x4,0x35,0x37, 0x6,0x44,0x64, 0x5,0x35,0x51, 0x6,0x44,0x60, + 0xf,0x38,0x4d, 0xf,0x38,0x4e, 0xf,0x38,0x4f, 0x4,0x35,0x3c, + 0x6,0x44,0x66, 0x6,0x44,0x5e, 0x6,0x44,0x62, 0x6,0x44,0x65, + 0x6,0x44,0x61, 0x5,0x3c,0x37, 0x4,0x3b,0x26, 0x6,0x4e,0x64, + 0x6,0x4e,0x67, 0x5,0x3c,0x38, 0x6,0x4e,0x63, 0x6,0x4e,0x66, + 0x6,0x4e,0x69, 0x6,0x4e,0x65, 0x4,0x3b,0x27, 0x4,0x3b,0x28, + 0x6,0x4e,0x68, 0xf,0x3f,0x33, 0x5,0x42,0x73, 0x5,0x42,0x71, + 0x5,0x42,0x72, 0x6,0x58,0x38, 0x6,0x62,0x3e, 0x5,0x49,0x75, + 0x4,0x47,0x39, 0x6,0x62,0x40, 0x5,0x49,0x73, 0x5,0x49,0x74, + 0x6,0x62,0x3d, 0x6,0x62,0x41, 0x6,0x62,0x3c, 0x6,0x62,0x3f, + 0x7,0x28,0x66, 0x5,0x50,0x75, 0x7,0x28,0x67, 0x5,0x50,0x74, + 0x5,0x50,0x70, 0x5,0x50,0x6f, 0x4,0x4d,0x50, 0x4,0x4d,0x52, + 0x4,0x4d,0x4d, 0x7,0x28,0x69, 0x4,0x4d,0x54, 0x5,0x50,0x72, + 0x7,0x28,0x68, 0x7,0x28,0x6a, 0x5,0x50,0x71, 0x7,0x28,0x64, + 0x7,0x28,0x65, 0x5,0x50,0x73, 0x7,0x33,0x38, 0x7,0x33,0x37, + 0x4,0x53,0x5f, 0x5,0x58,0x36, 0x4,0x53,0x63, 0x5,0x58,0x39, + 0x5,0x58,0x3b, 0x4,0x53,0x60, 0x7,0x33,0x36, 0x7,0x33,0x35, + 0x5,0x58,0x37, 0x5,0x58,0x38, 0x5,0x58,0x3a, 0x7,0x33,0x39, + 0x5,0x5e,0x46, 0x7,0x3b,0x6d, 0x7,0x3b,0x73, 0x7,0x3b,0x6c, + 0x5,0x5e,0x4a, 0x5,0x5e,0x49, 0x7,0x3b,0x6e, 0x7,0x33,0x3a, + 0x5,0x5e,0x48, 0x7,0x3b,0x6f, 0x7,0x3b,0x70, 0x7,0x3b,0x71, + 0x4,0x58,0x6c, 0x7,0x3b,0x74, 0x7,0x3b,0x72, 0x5,0x5e,0x47, + 0x7,0x43,0x27, 0x7,0x43,0x28, 0x4,0x5d,0x52, 0x7,0x43,0x26, + 0x7,0x43,0x29, 0x4,0x61,0x35, 0x5,0x69,0x4c, 0x4,0x61,0x32, + 0x4,0x61,0x33, 0x7,0x4a,0x21, 0x7,0x4a,0x22, 0x7,0x4a,0x23, + 0x7,0x4a,0x24, 0x4,0x61,0x36, 0x7,0x50,0x2a, 0x5,0x71,0x37, + 0x7,0x55,0x29, 0x5,0x74,0x3a, 0x4,0x69,0x44, 0x7,0x5c,0x65, + 0x5,0x78,0x30, 0x7,0x62,0x63, 0x4,0x6d,0x60, 0x7,0x64,0x60, + 0x7,0x64,0x61, 0x5,0x7b,0x69, 0x7,0x65,0x43, 0x5,0x23,0x27, + 0x5,0x23,0x28, 0x6,0x2e,0x30, 0x6,0x3c,0x33, 0x4,0x30,0x21, + 0x4,0x2f,0x7b, 0x4,0x2f,0x7a, 0x4,0x30,0x22, 0x5,0x30,0x43, + 0x6,0x3c,0x30, 0x6,0x3c,0x31, 0x6,0x3c,0x2f, 0x6,0x3c,0x32, + 0x6,0x3c,0x2e, 0x4,0x35,0x40, 0x6,0x44,0x6a, 0x6,0x44,0x73, + 0x4,0x35,0x3e, 0x6,0x44,0x6f, 0x5,0x35,0x5c, 0x5,0x35,0x59, + 0x6,0x44,0x71, 0x4,0x35,0x42, 0x5,0x35,0x54, 0x4,0x35,0x46, + 0x6,0x44,0x79, 0x5,0x35,0x55, 0x6,0x44,0x77, 0x6,0x44,0x6b, + 0x6,0x44,0x78, 0x5,0x35,0x58, 0x6,0x44,0x74, 0x6,0x44,0x75, + 0x6,0x44,0x6e, 0x6,0x44,0x7a, 0xf,0x38,0x50, 0xf,0x38,0x51, + 0xf,0x38,0x53, 0xf,0x38,0x54, 0xf,0x38,0x55, 0xf,0x38,0x56, + 0x6,0x44,0x72, 0x6,0x44,0x69, 0x6,0x44,0x68, 0x6,0x44,0x76, + 0x6,0x44,0x6c, 0x5,0x35,0x5a, 0x6,0x4e,0x74, 0x4,0x3b,0x32, + 0x4,0x3b,0x2e, 0x5,0x3c,0x3b, 0x6,0x4e,0x6f, 0x6,0x4e,0x6e, + 0x6,0x4e,0x71, 0x6,0x4e,0x6a, 0x4,0x3b,0x2d, 0x6,0x4e,0x78, + 0x4,0x3b,0x38, 0x4,0x3b,0x39, 0x5,0x3c,0x3c, 0x6,0x4e,0x6d, + 0x6,0x4e,0x76, 0x6,0x4e,0x70, 0x6,0x4e,0x77, 0x4,0x3b,0x37, + 0x5,0x3c,0x39, 0x5,0x3c,0x3a, 0xf,0x3f,0x34, 0xf,0x3f,0x35, + 0xf,0x3f,0x36, 0xf,0x3f,0x37, 0xf,0x3f,0x38, 0xf,0x3f,0x39, + 0xf,0x3f,0x3a, 0xf,0x3f,0x3c, 0x6,0x4e,0x72, 0x6,0x4e,0x75, + 0x6,0x4e,0x6c, 0x6,0x4e,0x79, 0x6,0x4e,0x73, 0x5,0x42,0x75, + 0x4,0x40,0x68, 0x4,0x40,0x6a, 0x6,0x58,0x46, 0x5,0x42,0x76, + 0x5,0x3c,0x3d, 0x5,0x42,0x79, 0x4,0x40,0x71, 0x4,0x40,0x70, + 0x6,0x58,0x40, 0x6,0x58,0x4b, 0x6,0x58,0x3d, 0x6,0x58,0x49, + 0x4,0x40,0x69, 0x4,0x40,0x6b, 0x5,0x42,0x7c, 0x5,0x42,0x74, + 0x4,0x40,0x73, 0x6,0x58,0x43, 0x6,0x58,0x3c, 0x6,0x58,0x47, + 0x6,0x58,0x42, 0x6,0x58,0x3f, 0x4,0x40,0x72, 0x5,0x42,0x7a, + 0x6,0x58,0x48, 0x5,0x42,0x78, 0x5,0x42,0x77, 0x6,0x58,0x44, + 0xf,0x45,0x43, 0xf,0x45,0x45, 0xf,0x45,0x46, 0x6,0x58,0x4a, + 0x5,0x42,0x7b, 0x6,0x58,0x39, 0x6,0x58,0x3b, 0x4,0x40,0x6f, + 0x6,0x58,0x3a, 0x6,0x58,0x45, 0x6,0x58,0x3e, 0x6,0x62,0x4e, + 0x4,0x47,0x3f, 0x5,0x49,0x7a, 0x4,0x47,0x3b, 0x5,0x49,0x78, + 0x5,0x49,0x7b, 0x4,0x47,0x3e, 0x4,0x47,0x48, 0x6,0x62,0x42, + 0x6,0x62,0x4c, 0x4,0x47,0x41, 0x6,0x62,0x53, 0x4,0x47,0x44, + 0x6,0x62,0x4f, 0x4,0x47,0x47, 0x6,0x62,0x46, 0x5,0x49,0x79, + 0x6,0x62,0x51, 0x6,0x62,0x45, 0x4,0x47,0x49, 0x6,0x62,0x50, + 0x6,0x62,0x44, 0x5,0x49,0x76, 0x5,0x49,0x77, 0xf,0x4c,0x3d, + 0xf,0x4c,0x3e, 0xf,0x4c,0x3f, 0xf,0x4c,0x40, 0xf,0x4c,0x42, + 0xf,0x4c,0x43, 0xf,0x4c,0x44, 0xf,0x4c,0x45, 0x6,0x62,0x48, + 0x4,0x47,0x4b, 0x6,0x62,0x4a, 0x5,0x42,0x7d, 0x6,0x62,0x4b, + 0x6,0x62,0x4d, 0x6,0x62,0x43, 0x6,0x62,0x52, 0x6,0x62,0x49, + 0x7,0x29,0x21, 0x5,0x51,0x2a, 0x7,0x28,0x6b, 0x5,0x50,0x7a, + 0x5,0x51,0x22, 0x7,0x28,0x71, 0x7,0x28,0x74, 0x7,0x29,0x22, + 0x7,0x28,0x7c, 0x7,0x28,0x70, 0x5,0x51,0x27, 0x4,0x4d,0x57, + 0x5,0x51,0x29, 0x5,0x51,0x23, 0x5,0x50,0x7b, 0x5,0x50,0x7e, + 0x7,0x28,0x78, 0x5,0x51,0x24, 0x4,0x4d,0x5d, 0x5,0x51,0x26, + 0x4,0x4d,0x62, 0x7,0x29,0x24, 0x7,0x28,0x77, 0x7,0x28,0x6f, + 0x5,0x50,0x78, 0x5,0x50,0x7c, 0x7,0x28,0x7d, 0x7,0x28,0x6d, + 0x5,0x51,0x25, 0x5,0x50,0x7d, 0x5,0x50,0x77, 0x5,0x50,0x79, + 0x5,0x50,0x76, 0xf,0x52,0x32, 0xf,0x52,0x33, 0xf,0x52,0x34, + 0xf,0x52,0x35, 0xf,0x52,0x37, 0xf,0x52,0x39, 0xf,0x52,0x3a, + 0x7,0x28,0x76, 0x7,0x28,0x75, 0x7,0x28,0x6c, 0x7,0x28,0x72, + 0xf,0x52,0x38, 0x5,0x51,0x21, 0x7,0x28,0x7b, 0x7,0x28,0x6e, + 0x5,0x51,0x28, 0x7,0x29,0x23, 0x7,0x28,0x7e, 0x7,0x28,0x7a, + 0x7,0x28,0x73, 0x7,0x33,0x46, 0x5,0x58,0x40, 0x4,0x53,0x71, + 0x7,0x33,0x52, 0x4,0x53,0x68, 0x4,0x53,0x65, 0x4,0x53,0x6c, + 0x7,0x33,0x49, 0x7,0x33,0x51, 0x7,0x33,0x43, 0x5,0x58,0x3d, + 0x7,0x33,0x42, 0x5,0x58,0x3c, 0x7,0x33,0x3c, 0x4,0x53,0x70, + 0x4,0x53,0x67, 0x7,0x33,0x45, 0x4,0x53,0x6f, 0x7,0x33,0x3d, + 0x4,0x53,0x6e, 0x7,0x33,0x47, 0x7,0x33,0x4e, 0x4,0x53,0x66, + 0x7,0x33,0x50, 0x7,0x33,0x3e, 0x4,0x53,0x69, 0x7,0x33,0x3b, + 0x7,0x33,0x53, 0x7,0x33,0x40, 0x7,0x33,0x3f, 0x7,0x33,0x48, + 0x7,0x33,0x4a, 0x5,0x58,0x3f, 0x7,0x33,0x4c, 0x4,0x53,0x6d, + 0x7,0x33,0x44, 0x5,0x58,0x3e, 0xf,0x57,0x6e, 0xf,0x57,0x6f, + 0xf,0x57,0x70, 0xf,0x57,0x71, 0xf,0x57,0x72, 0xf,0x57,0x73, + 0xf,0x57,0x74, 0xf,0x57,0x75, 0xf,0x57,0x76, 0xf,0x57,0x77, + 0xf,0x57,0x78, 0x7,0x33,0x54, 0x7,0x33,0x41, 0x7,0x33,0x4b, + 0x4,0x58,0x6e, 0x5,0x5e,0x52, 0x5,0x5e,0x51, 0x7,0x3b,0x7d, + 0x4,0x58,0x6f, 0x5,0x5e,0x54, 0x4,0x58,0x71, 0x7,0x3b,0x79, + 0x4,0x58,0x6d, 0x5,0x5e,0x4d, 0x5,0x5e,0x53, 0x5,0x5e,0x4e, + 0x7,0x3b,0x76, 0x7,0x3c,0x25, 0x4,0x58,0x72, 0x7,0x43,0x2a, + 0x5,0x5e,0x4f, 0x7,0x3c,0x21, 0x7,0x3b,0x77, 0x5,0x5e,0x56, + 0x7,0x3c,0x27, 0x7,0x3b,0x7c, 0x7,0x3b,0x78, 0x5,0x5e,0x50, + 0x4,0x58,0x74, 0x7,0x3b,0x7b, 0x7,0x3b,0x7e, 0x7,0x3c,0x22, + 0x7,0x3c,0x23, 0x4,0x58,0x73, 0x5,0x5e,0x4b, 0x7,0x3c,0x26, + 0x5,0x5e,0x4c, 0x7,0x3c,0x24, 0x7,0x3b,0x75, 0xf,0x5c,0x63, + 0xf,0x5c,0x64, 0xf,0x5c,0x65, 0xf,0x5c,0x66, 0xf,0x5c,0x67, + 0xf,0x5c,0x68, 0xf,0x5c,0x69, 0xf,0x5c,0x6a, 0xf,0x5c,0x6b, + 0x7,0x3c,0x28, 0x7,0x3c,0x29, 0x7,0x3b,0x7a, 0x4,0x5d,0x5e, + 0x4,0x5d,0x56, 0x7,0x43,0x37, 0x4,0x5d,0x58, 0x7,0x43,0x35, + 0x5,0x64,0x68, 0x7,0x43,0x3a, 0x7,0x43,0x2b, 0x4,0x5d,0x60, + 0x5,0x64,0x66, 0x5,0x58,0x41, 0x4,0x5d,0x59, 0x5,0x64,0x67, + 0x7,0x43,0x38, 0x7,0x43,0x32, 0x5,0x64,0x64, 0x4,0x5d,0x53, + 0x7,0x43,0x3b, 0x4,0x5d,0x55, 0x5,0x64,0x65, 0x4,0x5d,0x5d, + 0x7,0x43,0x39, 0x7,0x43,0x2f, 0x7,0x43,0x33, 0x7,0x4a,0x2a, + 0x7,0x43,0x30, 0x4,0x5d,0x5c, 0x7,0x43,0x34, 0x7,0x43,0x31, + 0x7,0x43,0x3c, 0x7,0x43,0x2c, 0x7,0x43,0x2d, 0xf,0x60,0x72, + 0xf,0x60,0x75, 0x7,0x43,0x36, 0x4,0x5d,0x5f, 0x7,0x43,0x2e, + 0x5,0x69,0x4d, 0x5,0x69,0x4f, 0x7,0x4a,0x2f, 0x4,0x61,0x3e, + 0x7,0x4a,0x2c, 0x7,0x4a,0x2e, 0x4,0x61,0x43, 0x4,0x61,0x39, + 0x5,0x69,0x50, 0x4,0x61,0x41, 0x7,0x4a,0x34, 0x4,0x61,0x42, + 0x5,0x69,0x4e, 0x4,0x61,0x3f, 0x7,0x4a,0x26, 0x7,0x4a,0x29, + 0x7,0x43,0x3d, 0x7,0x4a,0x28, 0x7,0x4a,0x35, 0x7,0x50,0x33, + 0x7,0x4a,0x33, 0x4,0x61,0x3c, 0x5,0x6d,0x60, 0x7,0x4a,0x27, + 0xf,0x63,0x78, 0xf,0x63,0x79, 0xf,0x63,0x7a, 0x4,0x61,0x44, + 0x7,0x4a,0x2b, 0x7,0x50,0x35, 0x7,0x4a,0x30, 0x7,0x4a,0x31, + 0x7,0x4a,0x2d, 0x7,0x4a,0x32, 0x4,0x61,0x38, 0xf,0x60,0x74, + 0x4,0x64,0x4a, 0x4,0x64,0x4b, 0x5,0x6d,0x62, 0x5,0x6d,0x61, + 0x7,0x50,0x2d, 0x5,0x6d,0x63, 0x7,0x50,0x2f, 0x4,0x64,0x49, + 0x7,0x50,0x2b, 0x5,0x69,0x53, 0x7,0x50,0x32, 0x7,0x50,0x2e, + 0x7,0x50,0x34, 0x7,0x50,0x36, 0x7,0x50,0x2c, 0x7,0x50,0x30, + 0xf,0x66,0x36, 0xf,0x66,0x37, 0xf,0x66,0x38, 0xf,0x66,0x39, + 0x7,0x50,0x38, 0x7,0x50,0x37, 0x7,0x50,0x39, 0x7,0x55,0x2a, + 0x4,0x67,0x42, 0x7,0x55,0x34, 0x7,0x55,0x2d, 0x7,0x55,0x33, + 0x4,0x67,0x38, 0x7,0x55,0x2e, 0x5,0x71,0x3d, 0x7,0x55,0x2c, + 0x7,0x55,0x2f, 0x4,0x67,0x3c, 0x5,0x71,0x3a, 0x5,0x71,0x39, + 0x4,0x67,0x43, 0x7,0x59,0x3b, 0x7,0x59,0x35, 0x4,0x67,0x3a, + 0x5,0x71,0x3c, 0x5,0x71,0x3b, 0x7,0x55,0x31, 0x7,0x55,0x2b, + 0x7,0x55,0x30, 0x5,0x71,0x38, 0x7,0x55,0x35, 0x5,0x74,0x3b, + 0x5,0x74,0x3d, 0x5,0x74,0x40, 0x5,0x76,0x4b, 0x4,0x69,0x47, + 0x7,0x59,0x39, 0x4,0x69,0x4a, 0x5,0x74,0x3f, 0x4,0x69,0x49, + 0x5,0x74,0x3e, 0x7,0x59,0x37, 0x7,0x59,0x40, 0x7,0x55,0x36, + 0x5,0x74,0x3c, 0x7,0x59,0x36, 0x7,0x59,0x3a, 0x7,0x59,0x3f, + 0x4,0x69,0x46, 0x7,0x59,0x3e, 0xf,0x69,0x72, 0xf,0x69,0x73, + 0xf,0x69,0x74, 0x7,0x59,0x3c, 0x7,0x59,0x3d, 0x4,0x6a,0x7d, + 0x4,0x6a,0x7e, 0x7,0x5c,0x66, 0x5,0x76,0x4e, 0x5,0x76,0x4d, + 0x5,0x78,0x31, 0x7,0x5c,0x68, 0x7,0x5c,0x69, 0x7,0x5c,0x6a, + 0xf,0x6a,0x74, 0xf,0x6a,0x75, 0x7,0x5c,0x67, 0x7,0x59,0x42, + 0x7,0x5f,0x57, 0x7,0x5f,0x58, 0x7,0x5f,0x55, 0x4,0x6c,0x27, + 0x7,0x5f,0x56, 0x7,0x5f,0x5a, 0xf,0x6b,0x65, 0xf,0x6b,0x66, + 0x7,0x5f,0x54, 0x7,0x5f,0x59, 0x7,0x5f,0x5b, 0x4,0x6d,0x23, + 0x7,0x61,0x4b, 0x5,0x79,0x4e, 0x7,0x61,0x4c, 0xf,0x6c,0x3a, + 0xf,0x6c,0x3b, 0x7,0x61,0x4a, 0x5,0x7a,0x75, 0x7,0x62,0x65, + 0x7,0x62,0x64, 0x5,0x7a,0x39, 0x4,0x6d,0x7e, 0x7,0x63,0x74, + 0x7,0x64,0x62, 0x4,0x6e,0x3c, 0x7,0x64,0x44, 0x7,0x65,0x44, + 0x7,0x66,0x50, 0x5,0x24,0x77, 0x4,0x30,0x24, 0x5,0x30,0x44, + 0x5,0x30,0x45, 0x4,0x35,0x48, 0x4,0x35,0x49, 0x4,0x35,0x47, + 0x6,0x44,0x7b, 0x4,0x3b,0x3a, 0x5,0x42,0x7e, 0x5,0x43,0x21, + 0x6,0x58,0x4c, 0x4,0x47,0x4d, 0x5,0x51,0x2c, 0x4,0x4d,0x63, + 0x5,0x51,0x2d, 0x5,0x51,0x2b, 0x5,0x58,0x42, 0x7,0x33,0x56, + 0x7,0x33,0x55, 0x7,0x3c,0x2a, 0x5,0x5e,0x57, 0x7,0x43,0x3e, + 0x7,0x4a,0x36, 0x7,0x4a,0x39, 0x5,0x69,0x54, 0x7,0x4a,0x37, + 0x5,0x69,0x55, 0x7,0x4a,0x38, 0x7,0x50,0x3a, 0x7,0x4a,0x3a, + 0x5,0x71,0x3e, 0x5,0x7a,0x76, 0x7,0x65,0x77, 0x6,0x34,0x55, + 0x6,0x3c,0x35, 0x6,0x3c,0x34, 0xf,0x38,0x57, 0x4,0x3b,0x3b, + 0x5,0x3c,0x3e, 0x6,0x4e,0x7b, 0xf,0x3f,0x3d, 0x5,0x43,0x22, + 0x4,0x40,0x75, 0x6,0x5b,0x5f, 0x4,0x47,0x50, 0x6,0x62,0x54, + 0x4,0x47,0x51, 0x7,0x29,0x28, 0x7,0x29,0x27, 0x7,0x29,0x25, + 0x5,0x51,0x2f, 0x5,0x51,0x2e, 0x7,0x29,0x26, 0xf,0x52,0x3b, + 0x5,0x58,0x43, 0x4,0x53,0x74, 0x7,0x33,0x57, 0x5,0x58,0x44, + 0x7,0x2c,0x56, 0x5,0x5e,0x5a, 0x7,0x3c,0x2d, 0x5,0x5e,0x58, + 0x7,0x3c,0x2c, 0x5,0x5e,0x59, 0x7,0x3c,0x2b, 0x5,0x64,0x69, + 0x4,0x5d,0x63, 0x7,0x43,0x40, 0x4,0x5d,0x62, 0x5,0x5e,0x5b, + 0x7,0x4a,0x3c, 0x5,0x69,0x57, 0x7,0x4a,0x3d, 0x7,0x43,0x41, + 0x7,0x43,0x42, 0x5,0x69,0x56, 0x5,0x6d,0x66, 0x5,0x6d,0x65, + 0x5,0x6d,0x67, 0xf,0x66,0x3a, 0x5,0x6d,0x64, 0xf,0x63,0x7b, + 0x5,0x71,0x3f, 0x5,0x74,0x41, 0xf,0x6a,0x76, 0xf,0x6a,0x77, + 0x5,0x78,0x32, 0x5,0x79,0x4f, 0x5,0x7a,0x77, 0x7,0x65,0x45, + 0x6,0x25,0x54, 0x5,0x23,0x29, 0x5,0x2b,0x4a, 0x5,0x30,0x48, + 0x5,0x30,0x47, 0x6,0x3c,0x37, 0x6,0x3c,0x36, 0x6,0x44,0x7e, + 0x6,0x44,0x7c, 0x5,0x35,0x61, 0x6,0x45,0x21, 0x6,0x44,0x7d, + 0x4,0x3b,0x3c, 0x6,0x4e,0x7c, 0x4,0x3b,0x3d, 0x5,0x3c,0x40, + 0x5,0x3c,0x3f, 0x6,0x4e,0x7e, 0x5,0x3c,0x41, 0x6,0x4f,0x23, + 0x6,0x4e,0x7d, 0xf,0x32,0x55, 0x4,0x40,0x77, 0x5,0x43,0x25, + 0x4,0x40,0x76, 0x6,0x58,0x4e, 0x6,0x58,0x4f, 0x5,0x43,0x27, + 0x5,0x43,0x23, 0x5,0x43,0x26, 0x6,0x58,0x4d, 0x6,0x4f,0x22, + 0x5,0x43,0x24, 0x5,0x43,0x28, 0x6,0x62,0x55, 0x6,0x62,0x56, + 0x4,0x47,0x53, 0x4,0x47,0x52, 0x6,0x62,0x59, 0x5,0x49,0x7d, + 0x5,0x49,0x7c, 0x6,0x62,0x5b, 0x6,0x62,0x5a, 0x6,0x62,0x57, + 0x6,0x62,0x58, 0x5,0x51,0x32, 0x4,0x4d,0x66, 0x7,0x29,0x29, + 0x7,0x29,0x2b, 0x5,0x51,0x31, 0x5,0x51,0x33, 0x7,0x29,0x2d, + 0x7,0x29,0x2c, 0x5,0x49,0x7e, 0x5,0x51,0x30, 0x7,0x29,0x2a, + 0x5,0x4a,0x21, 0x7,0x29,0x2e, 0xf,0x52,0x3c, 0x5,0x58,0x47, + 0x5,0x58,0x48, 0x5,0x58,0x46, 0x7,0x33,0x59, 0x4,0x53,0x76, + 0x7,0x33,0x5a, 0x7,0x33,0x5c, 0x7,0x33,0x5b, 0x5,0x58,0x45, + 0x7,0x33,0x58, 0x5,0x5e,0x5d, 0x5,0x5e,0x5e, 0x5,0x5e,0x5f, + 0x5,0x5e,0x5c, 0x7,0x3c,0x30, 0x7,0x3c,0x2e, 0x7,0x3c,0x2f, + 0x4,0x5d,0x65, 0x5,0x64,0x6a, 0x5,0x64,0x6b, 0x7,0x43,0x43, + 0x7,0x43,0x44, 0x7,0x43,0x45, 0x4,0x61,0x47, 0x5,0x69,0x58, + 0x5,0x58,0x49, 0x7,0x4a,0x3e, 0x4,0x61,0x49, 0x5,0x6d,0x6b, + 0x5,0x6d,0x68, 0x7,0x50,0x3b, 0x5,0x6d,0x6a, 0x5,0x6d,0x69, + 0x4,0x67,0x46, 0x5,0x71,0x40, 0x7,0x55,0x37, 0x7,0x55,0x38, + 0x7,0x59,0x43, 0x7,0x5c,0x6c, 0x7,0x59,0x44, 0x7,0x59,0x45, + 0x7,0x5c,0x6d, 0x7,0x5c,0x6e, 0x5,0x74,0x42, 0x7,0x5f,0x5c, + 0x7,0x61,0x4d, 0x7,0x5f,0x5d, 0x5,0x79,0x50, 0x5,0x7a,0x3a, + 0x7,0x65,0x46, 0x7,0x66,0x43, 0xf,0x28,0x6c, 0x5,0x2b,0x4b, + 0x6,0x3c,0x38, 0xf,0x32,0x56, 0x5,0x35,0x64, 0x5,0x35,0x63, + 0x4,0x35,0x4f, 0x5,0x35,0x62, 0x4,0x35,0x4e, 0x6,0x45,0x25, + 0x6,0x45,0x23, 0x6,0x4f,0x25, 0x5,0x3c,0x42, 0x5,0x3c,0x46, + 0x5,0x3c,0x44, 0x5,0x3c,0x48, 0x5,0x3c,0x45, 0x6,0x4f,0x28, + 0x6,0x4f,0x26, 0x5,0x3c,0x47, 0x5,0x3c,0x43, 0x6,0x4f,0x27, + 0x6,0x4f,0x24, 0xf,0x3f,0x3e, 0x4,0x40,0x7c, 0x4,0x40,0x7d, + 0x4,0x40,0x7a, 0x6,0x58,0x52, 0x5,0x43,0x2b, 0x6,0x58,0x51, + 0x5,0x43,0x2a, 0x4,0x40,0x79, 0x4,0x40,0x7b, 0x6,0x58,0x53, + 0xf,0x45,0x47, 0x5,0x43,0x29, 0x6,0x62,0x61, 0x6,0x62,0x5c, + 0x5,0x4a,0x25, 0x5,0x4a,0x23, 0x5,0x4a,0x22, 0x6,0x62,0x5f, + 0x5,0x4a,0x24, 0x6,0x62,0x5e, 0x6,0x62,0x60, 0xf,0x4c,0x48, + 0x6,0x62,0x5d, 0x6,0x62,0x62, 0xf,0x4c,0x49, 0x5,0x51,0x35, + 0x5,0x51,0x34, 0x4,0x4d,0x69, 0x5,0x51,0x37, 0x5,0x51,0x36, + 0x5,0x51,0x38, 0x4,0x4d,0x6a, 0x7,0x29,0x2f, 0x7,0x29,0x30, + 0x4,0x4d,0x6b, 0x7,0x29,0x31, 0x7,0x33,0x64, 0x5,0x58,0x4b, + 0x7,0x33,0x5e, 0x7,0x33,0x60, 0x7,0x33,0x61, 0x4,0x53,0x78, + 0x5,0x58,0x4a, 0x7,0x33,0x62, 0x5,0x58,0x4c, 0x7,0x33,0x5f, + 0xf,0x57,0x7a, 0x7,0x33,0x5d, 0x7,0x33,0x63, 0x4,0x58,0x79, + 0x5,0x5e,0x63, 0x7,0x3c,0x31, 0x5,0x5e,0x62, 0x4,0x58,0x78, + 0x5,0x5e,0x60, 0x5,0x5e,0x64, 0x5,0x5e,0x61, 0xf,0x5c,0x6c, + 0x7,0x43,0x46, 0x4,0x5d,0x67, 0x7,0x43,0x47, 0x4,0x5d,0x66, + 0x5,0x64,0x6c, 0x7,0x4a,0x3f, 0x5,0x64,0x6d, 0x5,0x69,0x5b, + 0x7,0x4a,0x40, 0x5,0x69,0x5a, 0x7,0x4a,0x43, 0x7,0x50,0x3d, + 0x7,0x4a,0x42, 0x5,0x69,0x59, 0x5,0x6d,0x6d, 0x5,0x6d,0x6c, + 0x7,0x50,0x3c, 0x5,0x71,0x42, 0x5,0x6d,0x6e, 0x5,0x71,0x41, + 0x7,0x55,0x39, 0x7,0x59,0x46, 0x7,0x5c,0x70, 0x7,0x5c,0x6f, + 0x5,0x7a,0x78, 0x5,0x2b,0x4c, 0x4,0x2b,0x4a, 0x6,0x34,0x56, + 0xf,0x2d,0x4a, 0x4,0x30,0x26, 0x6,0x3c,0x39, 0x5,0x30,0x49, + 0x5,0x30,0x4a, 0xf,0x32,0x57, 0xf,0x32,0x58, 0x6,0x3c,0x3a, + 0x6,0x45,0x2a, 0x6,0x45,0x2c, 0x6,0x45,0x27, 0x6,0x45,0x28, + 0x6,0x45,0x26, 0x6,0x45,0x2b, 0x5,0x35,0x65, 0xf,0x38,0x59, + 0xf,0x38,0x5a, 0xf,0x38,0x5b, 0xf,0x38,0x5c, 0xf,0x38,0x5d, + 0xf,0x38,0x5e, 0xf,0x38,0x5f, 0xf,0x38,0x60, 0x6,0x45,0x2d, + 0x4,0x35,0x53, 0x6,0x45,0x29, 0x4,0x35,0x52, 0x6,0x4f,0x2b, + 0x4,0x3b,0x40, 0x5,0x3c,0x49, 0x5,0x3c,0x4b, 0x6,0x4f,0x2e, + 0x6,0x4f,0x2c, 0x6,0x4f,0x2d, 0x6,0x58,0x57, 0x5,0x3c,0x4a, + 0xf,0x3f,0x3f, 0xf,0x3f,0x41, 0xf,0x3f,0x42, 0xf,0x3f,0x43, + 0xf,0x3f,0x44, 0xf,0x3f,0x45, 0x6,0x4f,0x2f, 0x6,0x4f,0x2a, + 0x5,0x3c,0x4d, 0x4,0x41,0x22, 0x6,0x58,0x54, 0x6,0x58,0x59, + 0x6,0x58,0x56, 0x5,0x43,0x30, 0x5,0x43,0x2c, 0x6,0x58,0x5e, + 0x6,0x58,0x55, 0x5,0x43,0x2f, 0x5,0x43,0x31, 0x5,0x43,0x32, + 0x6,0x58,0x58, 0x6,0x58,0x60, 0x6,0x58,0x62, 0x5,0x43,0x33, + 0x6,0x58,0x5f, 0xf,0x45,0x48, 0xf,0x45,0x49, 0xf,0x45,0x4a, + 0xf,0x45,0x4b, 0xf,0x45,0x4c, 0xf,0x45,0x4d, 0xf,0x45,0x4e, + 0x6,0x58,0x61, 0xf,0x3f,0x40, 0x6,0x58,0x5b, 0x5,0x43,0x2e, + 0xf,0x46,0x34, 0x6,0x62,0x65, 0x4,0x47,0x55, 0x5,0x4a,0x26, + 0x6,0x62,0x64, 0x6,0x62,0x66, 0x6,0x62,0x6c, 0x6,0x62,0x63, + 0x6,0x62,0x69, 0x5,0x4a,0x27, 0x4,0x47,0x57, 0xf,0x4c,0x4d, + 0xf,0x4c,0x4e, 0xf,0x4c,0x4f, 0xf,0x4c,0x51, 0xf,0x4c,0x50, + 0xf,0x4c,0x4c, 0x6,0x62,0x6b, 0x6,0x58,0x5d, 0x7,0x29,0x33, + 0x7,0x29,0x35, 0x5,0x4a,0x28, 0x4,0x4d,0x6f, 0x7,0x29,0x34, + 0x5,0x51,0x3a, 0x4,0x4d,0x70, 0x5,0x51,0x3b, 0x7,0x29,0x39, + 0x7,0x29,0x38, 0x7,0x29,0x32, 0xf,0x52,0x3d, 0xf,0x52,0x3e, + 0xf,0x52,0x3f, 0x7,0x29,0x37, 0xf,0x4c,0x4b, 0x7,0x33,0x6a, + 0x5,0x58,0x4e, 0x7,0x33,0x67, 0x7,0x33,0x66, 0x5,0x58,0x4f, + 0x7,0x33,0x6b, 0x7,0x33,0x6e, 0x4,0x53,0x7c, 0x7,0x33,0x68, + 0x5,0x58,0x4d, 0x6,0x62,0x68, 0xf,0x54,0x32, 0xf,0x57,0x7b, + 0xf,0x57,0x7c, 0xf,0x57,0x7d, 0xf,0x57,0x7e, 0xf,0x58,0x21, + 0xf,0x58,0x22, 0x7,0x33,0x6d, 0x7,0x33,0x6c, 0x7,0x33,0x65, + 0x7,0x33,0x69, 0x5,0x58,0x50, 0x7,0x3c,0x32, 0x5,0x5e,0x65, + 0x5,0x5b,0x2d, 0x5,0x5e,0x67, 0x5,0x58,0x52, 0x5,0x5e,0x66, + 0x4,0x58,0x7b, 0x7,0x3c,0x38, 0x7,0x3c,0x34, 0x7,0x3c,0x36, + 0x7,0x3c,0x37, 0x7,0x3c,0x35, 0xf,0x5c,0x6e, 0xf,0x5c,0x70, + 0xf,0x5c,0x6f, 0x7,0x43,0x4b, 0x5,0x64,0x73, 0x7,0x43,0x4e, + 0x5,0x64,0x6f, 0x7,0x43,0x49, 0x7,0x43,0x4a, 0x7,0x43,0x51, + 0x5,0x64,0x71, 0x5,0x64,0x6e, 0x5,0x64,0x72, 0x7,0x43,0x4d, + 0x7,0x43,0x4c, 0xf,0x60,0x76, 0xf,0x60,0x77, 0xf,0x60,0x78, + 0xf,0x60,0x79, 0xf,0x60,0x7b, 0xf,0x60,0x7c, 0x7,0x43,0x48, + 0x7,0x43,0x50, 0x5,0x64,0x70, 0x7,0x4a,0x47, 0x7,0x4a,0x4b, + 0x5,0x69,0x5d, 0x5,0x64,0x74, 0x7,0x4a,0x4a, 0x7,0x43,0x4f, + 0x5,0x69,0x5c, 0x4,0x61,0x4b, 0x7,0x4a,0x48, 0x5,0x69,0x5e, + 0x7,0x4a,0x4d, 0x7,0x4a,0x4c, 0x5,0x69,0x60, 0x7,0x4a,0x44, + 0x7,0x4a,0x49, 0x7,0x4a,0x46, 0xf,0x63,0x7c, 0xf,0x63,0x7d, + 0xf,0x63,0x7e, 0xf,0x64,0x21, 0x7,0x4a,0x4e, 0x7,0x4a,0x45, + 0x5,0x69,0x5f, 0x4,0x64,0x51, 0x5,0x6d,0x70, 0x4,0x64,0x50, + 0x5,0x6d,0x6f, 0x7,0x50,0x3e, 0x7,0x50,0x40, 0xf,0x66,0x3b, + 0xf,0x66,0x3c, 0xf,0x66,0x3d, 0xf,0x66,0x3e, 0xf,0x66,0x3f, + 0x7,0x50,0x3f, 0x5,0x71,0x43, 0x4,0x67,0x47, 0x5,0x71,0x44, + 0x5,0x71,0x45, 0xf,0x68,0x4e, 0xf,0x68,0x4f, 0x7,0x55,0x3b, + 0x7,0x59,0x47, 0x5,0x74,0x45, 0x5,0x74,0x44, 0xf,0x69,0x76, + 0xf,0x69,0x77, 0xf,0x69,0x78, 0x7,0x59,0x4a, 0x7,0x59,0x48, + 0x7,0x59,0x49, 0xf,0x68,0x4d, 0x7,0x5c,0x71, 0x4,0x6b,0x22, + 0x5,0x74,0x43, 0x7,0x5c,0x72, 0xf,0x6a,0x78, 0x7,0x5c,0x73, + 0x7,0x5f,0x5e, 0x7,0x5f,0x60, 0x7,0x5f,0x5f, 0x7,0x62,0x66, + 0x6,0x2e,0x31, 0x6,0x34,0x57, 0x6,0x34,0x58, 0x5,0x35,0x66, + 0xf,0x38,0x61, 0x6,0x4f,0x30, 0x4,0x3b,0x44, 0x6,0x58,0x63, + 0xf,0x45,0x4f, 0x5,0x4a,0x2a, 0xf,0x4c,0x52, 0x7,0x29,0x3a, + 0x5,0x58,0x54, 0x5,0x58,0x53, 0xf,0x58,0x23, 0x7,0x33,0x6f, + 0x5,0x5e,0x69, 0x5,0x5e,0x6a, 0x5,0x5e,0x68, 0xf,0x5c,0x71, + 0x5,0x64,0x75, 0x7,0x43,0x53, 0x7,0x4a,0x50, 0x7,0x4a,0x4f, + 0x5,0x71,0x46, 0x7,0x5c,0x74, 0x6,0x2e,0x32, 0x6,0x2e,0x33, + 0x6,0x34,0x59, 0xf,0x2d,0x4b, 0xf,0x2d,0x4d, 0xf,0x2d,0x4e, + 0xf,0x2d,0x4f, 0xf,0x2d,0x50, 0x4,0x2b,0x4b, 0x5,0x30,0x4d, + 0x6,0x3c,0x3e, 0x6,0x3c,0x3d, 0x5,0x30,0x4e, 0x6,0x3c,0x3c, + 0x4,0x30,0x29, 0xf,0x32,0x59, 0xf,0x32,0x5a, 0xf,0x32,0x5b, + 0xf,0x32,0x5c, 0xf,0x32,0x5d, 0x5,0x35,0x6d, 0x6,0x45,0x30, + 0x5,0x35,0x67, 0x4,0x35,0x57, 0x5,0x35,0x6a, 0x5,0x35,0x6f, + 0x5,0x35,0x6e, 0x4,0x35,0x58, 0x6,0x45,0x2e, 0x6,0x45,0x2f, + 0x5,0x35,0x6b, 0x5,0x35,0x68, 0xf,0x38,0x63, 0xf,0x38,0x64, + 0xf,0x38,0x65, 0xf,0x38,0x66, 0xf,0x38,0x68, 0xf,0x38,0x69, + 0xf,0x38,0x62, 0x5,0x35,0x6c, 0x5,0x35,0x69, 0xf,0x38,0x67, + 0x5,0x3c,0x51, 0x5,0x3c,0x50, 0x5,0x3c,0x54, 0x5,0x3c,0x4f, + 0x6,0x4f,0x34, 0x6,0x4f,0x31, 0x5,0x43,0x39, 0x5,0x3c,0x53, + 0x5,0x3c,0x4e, 0x6,0x4f,0x33, 0x4,0x3b,0x46, 0x5,0x3c,0x55, + 0x6,0x58,0x64, 0x6,0x4f,0x35, 0xf,0x3f,0x47, 0xf,0x3f,0x48, + 0xf,0x3f,0x49, 0xf,0x3f,0x4a, 0xf,0x3f,0x4b, 0xf,0x3f,0x4c, + 0xf,0x3f,0x4f, 0xf,0x3f,0x50, 0xf,0x3f,0x51, 0x6,0x4f,0x32, + 0xf,0x3f,0x4e, 0x6,0x58,0x66, 0x5,0x43,0x36, 0x4,0x41,0x23, + 0x6,0x58,0x68, 0x4,0x41,0x25, 0x5,0x43,0x3b, 0x5,0x43,0x35, + 0x5,0x43,0x3d, 0x5,0x43,0x37, 0x4,0x41,0x24, 0x6,0x58,0x6a, + 0x6,0x58,0x69, 0x5,0x43,0x3a, 0xf,0x45,0x50, 0xf,0x45,0x51, + 0xf,0x45,0x52, 0xf,0x45,0x53, 0xf,0x45,0x54, 0xf,0x45,0x55, + 0xf,0x45,0x56, 0xf,0x45,0x57, 0x6,0x58,0x65, 0x6,0x58,0x67, + 0x6,0x62,0x6d, 0xf,0x3f,0x4d, 0x6,0x62,0x6e, 0x4,0x47,0x5c, + 0x5,0x4a,0x2c, 0x5,0x4a,0x30, 0x6,0x62,0x72, 0x5,0x4a,0x2b, + 0x5,0x4a,0x2e, 0x5,0x4a,0x31, 0x6,0x62,0x71, 0x6,0x62,0x6f, + 0x5,0x4a,0x33, 0x4,0x47,0x5d, 0x5,0x4a,0x2f, 0x6,0x62,0x76, + 0x5,0x4a,0x2d, 0x6,0x62,0x73, 0xf,0x4c,0x53, 0xf,0x4c,0x54, + 0xf,0x4c,0x55, 0xf,0x4c,0x56, 0xf,0x4c,0x57, 0xf,0x4c,0x58, + 0xf,0x4c,0x59, 0x6,0x62,0x70, 0x5,0x51,0x42, 0x5,0x51,0x3c, + 0x4,0x4d,0x72, 0x5,0x51,0x3f, 0x5,0x51,0x3e, 0x5,0x51,0x3d, + 0x5,0x51,0x40, 0x7,0x29,0x3f, 0x5,0x51,0x46, 0x5,0x51,0x43, + 0x7,0x29,0x41, 0x5,0x51,0x41, 0x7,0x29,0x3c, 0x7,0x29,0x40, + 0x7,0x29,0x3e, 0x6,0x62,0x74, 0x7,0x29,0x42, 0x7,0x33,0x72, + 0x5,0x51,0x45, 0x5,0x51,0x44, 0xf,0x52,0x40, 0xf,0x52,0x41, + 0x7,0x29,0x43, 0x7,0x29,0x3b, 0xf,0x58,0x2d, 0x4,0x54,0x23, + 0x4,0x54,0x24, 0x4,0x54,0x28, 0x7,0x33,0x74, 0x5,0x58,0x59, + 0x4,0x54,0x21, 0x4,0x54,0x22, 0x4,0x54,0x27, 0x7,0x33,0x75, + 0x4,0x54,0x25, 0x7,0x33,0x71, 0x7,0x33,0x70, 0x5,0x58,0x58, + 0x5,0x58,0x5a, 0x7,0x33,0x76, 0xf,0x58,0x24, 0xf,0x58,0x26, + 0xf,0x58,0x27, 0xf,0x58,0x28, 0xf,0x58,0x29, 0xf,0x58,0x2a, + 0xf,0x58,0x2b, 0xf,0x58,0x2c, 0xf,0x58,0x2e, 0x7,0x33,0x78, + 0x7,0x33,0x77, 0x5,0x58,0x5b, 0x5,0x58,0x56, 0x5,0x58,0x57, + 0x5,0x5e,0x6f, 0x5,0x5e,0x71, 0x4,0x59,0x22, 0x5,0x5e,0x70, + 0x4,0x59,0x24, 0x4,0x59,0x21, 0x5,0x5e,0x72, 0x4,0x58,0x7e, + 0x5,0x5e,0x6c, 0x4,0x59,0x23, 0x5,0x5e,0x6e, 0x5,0x5e,0x6b, + 0x7,0x3c,0x3a, 0x5,0x5e,0x73, 0xf,0x58,0x25, 0xf,0x5c,0x72, + 0xf,0x5c,0x73, 0xf,0x5c,0x74, 0xf,0x5c,0x75, 0xf,0x5c,0x76, + 0x7,0x3c,0x39, 0x5,0x64,0x79, 0x5,0x64,0x7c, 0x4,0x5d,0x6b, + 0x7,0x43,0x57, 0x7,0x43,0x56, 0x5,0x64,0x76, 0x5,0x64,0x7a, + 0x5,0x64,0x78, 0x5,0x64,0x77, 0x5,0x64,0x7d, 0x5,0x64,0x7e, + 0x7,0x43,0x5b, 0x7,0x43,0x5a, 0x5,0x64,0x7b, 0xf,0x60,0x7d, + 0x7,0x43,0x58, 0x7,0x43,0x55, 0x7,0x43,0x59, 0x7,0x43,0x54, + 0x5,0x58,0x5d, 0x5,0x69,0x62, 0x5,0x69,0x66, 0x5,0x69,0x68, + 0x4,0x61,0x4e, 0x4,0x61,0x4c, 0x5,0x69,0x63, 0x5,0x69,0x67, + 0x5,0x69,0x65, 0x5,0x69,0x61, 0x7,0x4a,0x52, 0x5,0x69,0x69, + 0x5,0x69,0x64, 0xf,0x64,0x23, 0xf,0x64,0x24, 0xf,0x64,0x25, + 0x7,0x4a,0x51, 0x7,0x4a,0x53, 0x4,0x64,0x52, 0x4,0x64,0x54, + 0x4,0x64,0x58, 0x4,0x64,0x57, 0x5,0x6d,0x71, 0x7,0x50,0x41, + 0x7,0x50,0x43, 0x5,0x6d,0x72, 0x7,0x50,0x42, 0xf,0x66,0x40, + 0xf,0x66,0x41, 0xf,0x66,0x42, 0x4,0x67,0x49, 0x5,0x71,0x48, + 0x5,0x71,0x49, 0x7,0x55,0x3f, 0x7,0x55,0x3d, 0x7,0x55,0x3c, + 0x7,0x55,0x3e, 0x5,0x71,0x47, 0x5,0x74,0x46, 0x5,0x74,0x49, + 0x4,0x69,0x4d, 0x5,0x74,0x48, 0x5,0x74,0x47, 0xf,0x69,0x79, + 0x5,0x76,0x4f, 0x5,0x76,0x50, 0xf,0x6a,0x79, 0x7,0x59,0x4b, + 0x7,0x5c,0x75, 0x7,0x5c,0x76, 0x5,0x78,0x33, 0x5,0x78,0x34, + 0x5,0x78,0x35, 0x4,0x6d,0x26, 0x7,0x61,0x4e, 0x5,0x7a,0x79, + 0x5,0x7b,0x49, 0x6,0x2e,0x35, 0x6,0x2e,0x34, 0x6,0x34,0x5b, + 0x5,0x2b,0x4d, 0xf,0x2d,0x51, 0x6,0x34,0x5a, 0x6,0x3c,0x41, + 0x4,0x30,0x2b, 0x6,0x3c,0x42, 0x6,0x3c,0x40, 0x5,0x30,0x50, + 0x5,0x30,0x4f, 0x6,0x3c,0x3f, 0x6,0x3c,0x43, 0x4,0x35,0x5f, + 0x6,0x45,0x33, 0x4,0x35,0x5a, 0x5,0x35,0x73, 0x6,0x45,0x37, + 0x5,0x35,0x77, 0x6,0x45,0x3a, 0x5,0x35,0x71, 0x5,0x35,0x75, + 0x6,0x45,0x3c, 0x6,0x45,0x3d, 0x5,0x35,0x74, 0x6,0x45,0x3b, + 0x6,0x45,0x32, 0x6,0x45,0x36, 0xf,0x38,0x6a, 0x6,0x45,0x31, + 0x6,0x45,0x35, 0x6,0x45,0x39, 0x5,0x35,0x76, 0x5,0x35,0x70, + 0x6,0x45,0x34, 0x5,0x3c,0x60, 0x5,0x3c,0x57, 0x5,0x3c,0x58, + 0x5,0x3c,0x5b, 0x6,0x4f,0x3b, 0x5,0x3c,0x56, 0x6,0x4f,0x38, + 0x4,0x3b,0x4e, 0x5,0x3c,0x5d, 0x5,0x3c,0x59, 0x5,0x3c,0x61, + 0x5,0x3c,0x5a, 0x6,0x4f,0x39, 0x6,0x58,0x79, 0x5,0x3c,0x62, + 0xf,0x3f,0x54, 0x6,0x4f,0x37, 0xf,0x3f,0x52, 0x6,0x4f,0x3a, + 0x5,0x3c,0x5e, 0x5,0x43,0x41, 0x5,0x43,0x3f, 0x6,0x58,0x71, + 0x5,0x43,0x40, 0x5,0x43,0x42, 0x6,0x58,0x74, 0x6,0x58,0x70, + 0x5,0x43,0x47, 0x5,0x43,0x45, 0x6,0x58,0x6e, 0x6,0x58,0x6d, + 0x5,0x43,0x3e, 0x6,0x58,0x6f, 0x6,0x58,0x72, 0x6,0x58,0x76, + 0x5,0x43,0x4a, 0x6,0x58,0x6c, 0x6,0x58,0x77, 0x5,0x43,0x43, + 0x5,0x43,0x4c, 0x5,0x43,0x48, 0x6,0x58,0x73, 0x5,0x43,0x49, + 0x5,0x43,0x46, 0x6,0x58,0x75, 0x5,0x4a,0x35, 0xf,0x45,0x59, + 0x6,0x58,0x78, 0x6,0x58,0x6b, 0x6,0x63,0x22, 0x5,0x4a,0x43, + 0x4,0x47,0x60, 0x5,0x4a,0x37, 0x5,0x4a,0x3f, 0x5,0x4a,0x36, + 0x5,0x51,0x4e, 0x5,0x4a,0x3b, 0x6,0x62,0x77, 0x6,0x62,0x7b, + 0x5,0x4a,0x42, 0x5,0x4a,0x3c, 0x5,0x4a,0x39, 0x5,0x4a,0x40, + 0x5,0x4a,0x41, 0x5,0x4a,0x3d, 0x5,0x43,0x44, 0x5,0x4a,0x38, + 0x5,0x4a,0x44, 0x6,0x62,0x7e, 0x5,0x4a,0x46, 0x6,0x62,0x79, + 0x5,0x4a,0x47, 0xf,0x4c,0x5a, 0xf,0x4c,0x5b, 0x6,0x62,0x78, + 0x6,0x62,0x7a, 0x6,0x62,0x7d, 0x6,0x63,0x21, 0x6,0x62,0x7c, + 0x5,0x4a,0x3a, 0x7,0x29,0x46, 0x4,0x4d,0x7a, 0x5,0x51,0x4c, + 0x5,0x51,0x47, 0x5,0x51,0x4a, 0x5,0x51,0x4f, 0x7,0x29,0x45, + 0x7,0x29,0x49, 0x4,0x4d,0x7c, 0x7,0x29,0x4d, 0x4,0x4d,0x7b, + 0x5,0x51,0x4b, 0x5,0x51,0x4d, 0x4,0x4e,0x24, 0x5,0x51,0x51, + 0x5,0x51,0x52, 0x4,0x47,0x63, 0x7,0x29,0x4f, 0x5,0x51,0x49, + 0x7,0x29,0x4b, 0xf,0x52,0x42, 0xf,0x52,0x43, 0xf,0x52,0x44, + 0xf,0x52,0x45, 0x7,0x29,0x48, 0x7,0x29,0x4c, 0x7,0x29,0x47, + 0x7,0x29,0x4a, 0x5,0x51,0x50, 0x5,0x51,0x54, 0x5,0x51,0x55, + 0x5,0x4a,0x45, 0x7,0x34,0x21, 0x5,0x58,0x60, 0x5,0x4a,0x48, + 0x5,0x58,0x69, 0x4,0x54,0x2a, 0x7,0x33,0x7a, 0x5,0x58,0x63, + 0x7,0x33,0x7e, 0x7,0x34,0x23, 0x7,0x33,0x7c, 0x5,0x58,0x5f, + 0x7,0x33,0x7b, 0x7,0x34,0x25, 0x5,0x51,0x53, 0x7,0x34,0x26, + 0x5,0x58,0x67, 0x5,0x58,0x68, 0x5,0x58,0x5e, 0x5,0x58,0x61, + 0x7,0x33,0x7d, 0x5,0x58,0x65, 0x5,0x58,0x64, 0x7,0x34,0x24, + 0x4,0x54,0x2b, 0x5,0x58,0x66, 0x4,0x54,0x2c, 0xf,0x58,0x31, + 0xf,0x58,0x32, 0x7,0x34,0x22, 0x5,0x5e,0x7a, 0x5,0x5e,0x7d, + 0x5,0x5e,0x75, 0x7,0x3c,0x40, 0x5,0x5e,0x76, 0x5,0x5e,0x7c, + 0x5,0x5e,0x78, 0x4,0x59,0x29, 0x7,0x3c,0x3e, 0x7,0x43,0x67, + 0x7,0x3c,0x43, 0x5,0x5e,0x7e, 0x4,0x59,0x2e, 0x7,0x3c,0x3b, + 0x7,0x3c,0x42, 0x7,0x3c,0x44, 0x5,0x5e,0x79, 0x4,0x59,0x27, + 0x7,0x3c,0x41, 0x7,0x34,0x27, 0x7,0x3c,0x3f, 0x4,0x59,0x2f, + 0xf,0x5c,0x77, 0x7,0x3c,0x3d, 0xf,0x5c,0x79, 0x5,0x5e,0x77, + 0x5,0x5e,0x74, 0x7,0x43,0x62, 0x4,0x5d,0x70, 0x7,0x43,0x66, + 0x4,0x5d,0x6f, 0x5,0x65,0x21, 0x5,0x65,0x22, 0x5,0x65,0x2d, + 0x5,0x65,0x26, 0x4,0x5d,0x71, 0x5,0x65,0x2c, 0x5,0x65,0x28, + 0x7,0x43,0x5f, 0x5,0x69,0x70, 0x7,0x43,0x65, 0x7,0x43,0x5c, + 0x5,0x65,0x2e, 0x7,0x43,0x5e, 0x5,0x65,0x24, 0x7,0x43,0x61, + 0x5,0x65,0x23, 0x5,0x65,0x29, 0x4,0x5f,0x33, 0x4,0x5d,0x76, + 0x5,0x65,0x25, 0xf,0x60,0x7e, 0xf,0x61,0x21, 0xf,0x61,0x22, + 0xf,0x61,0x23, 0xf,0x61,0x24, 0xf,0x61,0x25, 0x7,0x43,0x6b, + 0x5,0x65,0x27, 0x7,0x43,0x60, 0x7,0x43,0x69, 0x7,0x43,0x68, + 0x7,0x43,0x6a, 0x7,0x43,0x5d, 0x5,0x65,0x2b, 0x7,0x43,0x63, + 0x7,0x3c,0x3c, 0x5,0x65,0x2f, 0x5,0x69,0x6a, 0x7,0x4a,0x65, + 0x5,0x69,0x6f, 0x5,0x69,0x71, 0x7,0x4a,0x68, 0x5,0x69,0x74, + 0x7,0x4a,0x5b, 0x5,0x65,0x2a, 0x5,0x69,0x6e, 0x7,0x4a,0x58, + 0x5,0x69,0x6d, 0x5,0x69,0x72, 0x4,0x61,0x55, 0x7,0x4a,0x54, + 0x4,0x5d,0x73, 0x7,0x4a,0x59, 0x7,0x43,0x64, 0x7,0x4a,0x5e, + 0x5,0x69,0x73, 0x7,0x4a,0x5a, 0x7,0x4a,0x66, 0x7,0x4a,0x55, + 0x7,0x4a,0x5c, 0x5,0x69,0x6b, 0x5,0x69,0x6c, 0x7,0x4a,0x61, + 0x7,0x4a,0x62, 0x7,0x4a,0x63, 0x7,0x4a,0x5f, 0x5,0x69,0x76, + 0x5,0x69,0x75, 0x7,0x4a,0x60, 0x7,0x4a,0x5d, 0x7,0x4a,0x67, + 0x7,0x4a,0x56, 0x7,0x4a,0x64, 0x4,0x61,0x53, 0x4,0x64,0x59, + 0x5,0x6d,0x7d, 0x5,0x6d,0x77, 0x7,0x50,0x44, 0x5,0x6d,0x7b, + 0x5,0x6d,0x76, 0x5,0x6d,0x79, 0x7,0x50,0x48, 0x7,0x50,0x46, + 0x4,0x64,0x5c, 0x5,0x6d,0x73, 0x4,0x64,0x5d, 0x7,0x50,0x47, + 0x5,0x6d,0x78, 0x5,0x6d,0x75, 0x5,0x6d,0x74, 0x7,0x50,0x49, + 0xf,0x66,0x43, 0xf,0x66,0x44, 0xf,0x66,0x45, 0xf,0x66,0x46, + 0xf,0x66,0x47, 0x7,0x50,0x45, 0x7,0x50,0x4a, 0x7,0x50,0x4b, + 0x5,0x6d,0x7c, 0x5,0x6d,0x7e, 0x5,0x6d,0x7a, 0x4,0x67,0x4e, + 0x7,0x55,0x42, 0x4,0x67,0x4f, 0x5,0x71,0x4b, 0x7,0x55,0x41, + 0x7,0x55,0x44, 0x4,0x67,0x4d, 0x4,0x67,0x4b, 0x5,0x71,0x4c, + 0x7,0x55,0x43, 0x7,0x55,0x40, 0x5,0x71,0x4a, 0xf,0x68,0x51, + 0xf,0x68,0x52, 0x5,0x74,0x4a, 0x7,0x55,0x45, 0x7,0x59,0x4c, + 0x5,0x74,0x4d, 0x5,0x74,0x4f, 0x5,0x74,0x4e, 0x5,0x74,0x4c, + 0x7,0x59,0x4d, 0x5,0x74,0x51, 0x7,0x59,0x4e, 0xf,0x69,0x7a, + 0x7,0x59,0x4f, 0x5,0x74,0x50, 0x5,0x76,0x54, 0x5,0x76,0x52, + 0x5,0x76,0x55, 0x7,0x5c,0x79, 0x7,0x5c,0x78, 0x5,0x76,0x53, + 0x5,0x76,0x51, 0x4,0x6c,0x2b, 0x7,0x5f,0x61, 0x5,0x78,0x37, + 0x5,0x78,0x36, 0x4,0x6c,0x2a, 0x5,0x78,0x38, 0x7,0x5f,0x62, + 0x7,0x61,0x4f, 0x7,0x5f,0x63, 0x7,0x61,0x52, 0x4,0x6d,0x28, + 0x7,0x61,0x54, 0x7,0x62,0x67, 0x7,0x61,0x53, 0x7,0x61,0x51, + 0x7,0x61,0x50, 0xf,0x6b,0x67, 0x5,0x7a,0x3c, 0x5,0x7a,0x3b, + 0x5,0x7a,0x3d, 0x7,0x63,0x76, 0x5,0x7b,0x4a, 0x7,0x64,0x63, + 0x5,0x7b,0x6a, 0xf,0x6d,0x28, 0x7,0x65,0x65, 0xf,0x6d,0x33, + 0x6,0x23,0x39, 0x6,0x23,0x3a, 0x6,0x25,0x55, 0x5,0x30,0x52, + 0x6,0x3c,0x44, 0x5,0x30,0x51, 0x5,0x35,0x7a, 0x5,0x35,0x79, + 0x5,0x35,0x78, 0x6,0x45,0x3e, 0x6,0x45,0x41, 0x6,0x45,0x40, + 0x6,0x45,0x42, 0x6,0x45,0x3f, 0x6,0x45,0x43, 0x6,0x45,0x44, + 0x4,0x35,0x60, 0xf,0x38,0x6b, 0x5,0x3c,0x65, 0x6,0x4f,0x3f, + 0x5,0x3c,0x64, 0x6,0x4f,0x41, 0x6,0x4f,0x3e, 0x5,0x3c,0x66, + 0xf,0x3f,0x55, 0xf,0x3f,0x56, 0xf,0x3f,0x57, 0xf,0x3f,0x58, + 0x6,0x4f,0x3d, 0x6,0x4f,0x40, 0x6,0x58,0x7d, 0x5,0x43,0x4d, + 0x6,0x58,0x7a, 0x6,0x58,0x7e, 0x6,0x59,0x21, 0xf,0x45,0x5a, + 0xf,0x45,0x5b, 0xf,0x45,0x5c, 0x6,0x58,0x7b, 0x6,0x58,0x7c, + 0x6,0x59,0x22, 0x5,0x4a,0x4a, 0x6,0x63,0x23, 0x6,0x63,0x24, + 0x5,0x4a,0x49, 0x6,0x63,0x25, 0x6,0x63,0x26, 0xf,0x4c,0x5c, + 0xf,0x4c,0x5d, 0xf,0x4c,0x5e, 0x7,0x29,0x51, 0x5,0x51,0x56, + 0x4,0x4e,0x25, 0xf,0x52,0x46, 0xf,0x52,0x48, 0x7,0x29,0x50, + 0x5,0x58,0x6a, 0x4,0x54,0x31, 0x5,0x58,0x6b, 0x7,0x34,0x28, + 0x7,0x3c,0x46, 0xf,0x58,0x34, 0xf,0x58,0x36, 0x7,0x3c,0x48, + 0x7,0x3c,0x47, 0x7,0x3c,0x45, 0x5,0x5f,0x21, 0xf,0x5c,0x7a, + 0xf,0x5c,0x7b, 0x5,0x65,0x30, 0x7,0x43,0x6c, 0xf,0x61,0x26, + 0xf,0x61,0x27, 0x7,0x4a,0x6c, 0x7,0x4a,0x6d, 0x7,0x4a,0x6a, + 0xf,0x64,0x26, 0xf,0x64,0x27, 0x7,0x4a,0x6b, 0x7,0x4a,0x69, + 0x4,0x64,0x5e, 0x7,0x50,0x4d, 0xf,0x66,0x48, 0xf,0x66,0x49, + 0x7,0x50,0x4e, 0x7,0x55,0x46, 0x5,0x71,0x4d, 0x7,0x55,0x47, + 0x7,0x55,0x48, 0x7,0x55,0x49, 0x7,0x59,0x50, 0xf,0x69,0x7c, + 0x5,0x76,0x56, 0x5,0x79,0x51, 0x6,0x34,0x5c, 0x5,0x2b,0x4e, + 0x6,0x34,0x5e, 0xf,0x2d,0x52, 0xf,0x2d,0x54, 0x6,0x3c,0x45, + 0x5,0x30,0x54, 0x6,0x3c,0x47, 0xf,0x32,0x5f, 0xf,0x32,0x60, + 0x6,0x3c,0x46, 0x5,0x30,0x53, 0xf,0x32,0x5e, 0x5,0x35,0x7b, + 0x6,0x45,0x4e, 0x6,0x45,0x4d, 0x6,0x45,0x46, 0x4,0x35,0x64, + 0x5,0x36,0x22, 0x5,0x36,0x21, 0x6,0x45,0x4a, 0x5,0x35,0x7d, + 0x6,0x45,0x47, 0x6,0x45,0x4c, 0x6,0x45,0x4b, 0x5,0x35,0x7c, + 0x5,0x35,0x7e, 0xf,0x38,0x6d, 0x6,0x45,0x48, 0x6,0x45,0x49, + 0x4,0x35,0x65, 0x6,0x4f,0x46, 0x6,0x4f,0x47, 0x5,0x3c,0x70, + 0x5,0x3c,0x6e, 0x6,0x4f,0x45, 0x6,0x4f,0x44, 0x6,0x4f,0x42, + 0x5,0x36,0x23, 0x5,0x3c,0x6d, 0x5,0x3c,0x68, 0x5,0x3c,0x6b, + 0x5,0x3c,0x6a, 0x6,0x4f,0x43, 0x5,0x3c,0x69, 0x5,0x3c,0x71, + 0x5,0x3c,0x6c, 0x5,0x3c,0x6f, 0x6,0x59,0x23, 0x6,0x59,0x28, + 0x5,0x43,0x53, 0x6,0x59,0x26, 0x6,0x59,0x29, 0x5,0x43,0x51, + 0x4,0x41,0x2b, 0x5,0x43,0x52, 0x5,0x43,0x4f, 0x6,0x59,0x27, + 0x5,0x43,0x4e, 0xf,0x45,0x5d, 0xf,0x45,0x5e, 0xf,0x45,0x5f, + 0x6,0x59,0x25, 0x4,0x41,0x2d, 0x5,0x43,0x54, 0x6,0x63,0x2d, + 0x6,0x63,0x2f, 0x5,0x4a,0x50, 0x4,0x47,0x68, 0x6,0x63,0x28, + 0x6,0x63,0x2b, 0x5,0x4a,0x4d, 0x6,0x63,0x2c, 0x6,0x63,0x27, + 0x6,0x63,0x30, 0x5,0x4a,0x4b, 0x5,0x4a,0x4e, 0x6,0x63,0x31, + 0x6,0x63,0x2e, 0xf,0x4c,0x5f, 0xf,0x4c,0x60, 0xf,0x4c,0x61, + 0xf,0x4c,0x63, 0x5,0x4a,0x4f, 0x5,0x4a,0x4c, 0x7,0x29,0x59, + 0x6,0x63,0x2a, 0x5,0x51,0x60, 0x7,0x29,0x57, 0x7,0x29,0x5e, + 0x7,0x29,0x62, 0x7,0x29,0x56, 0x5,0x51,0x59, 0x7,0x29,0x5a, + 0x7,0x29,0x55, 0x7,0x29,0x5c, 0x5,0x51,0x58, 0x5,0x51,0x5b, + 0x5,0x51,0x5e, 0x4,0x4e,0x2c, 0x6,0x63,0x29, 0x7,0x29,0x58, + 0x7,0x29,0x5d, 0x7,0x29,0x5b, 0x5,0x51,0x5d, 0x5,0x51,0x5f, + 0x7,0x29,0x52, 0x5,0x51,0x57, 0x7,0x29,0x54, 0x7,0x29,0x63, + 0xf,0x52,0x49, 0xf,0x52,0x4a, 0xf,0x52,0x4b, 0xf,0x52,0x4c, + 0x7,0x29,0x53, 0x7,0x29,0x5f, 0x7,0x29,0x60, 0x7,0x29,0x61, + 0x5,0x51,0x5c, 0x5,0x51,0x5a, 0x7,0x34,0x29, 0x5,0x58,0x73, + 0x7,0x34,0x2f, 0x5,0x58,0x74, 0x7,0x34,0x2d, 0x5,0x58,0x70, + 0x7,0x34,0x2b, 0x7,0x34,0x34, 0x5,0x58,0x6e, 0x5,0x58,0x71, + 0x5,0x58,0x6d, 0x7,0x34,0x35, 0x7,0x34,0x30, 0x7,0x34,0x36, + 0x5,0x58,0x6c, 0x7,0x34,0x33, 0xf,0x58,0x37, 0xf,0x58,0x39, + 0xf,0x58,0x3a, 0x7,0x34,0x2c, 0x7,0x34,0x2e, 0x7,0x34,0x2a, + 0xf,0x58,0x38, 0x4,0x54,0x35, 0x5,0x58,0x6f, 0x7,0x3c,0x4a, + 0x7,0x3c,0x52, 0x5,0x5f,0x25, 0x7,0x3c,0x4d, 0x7,0x3c,0x4c, + 0x7,0x3c,0x4b, 0x7,0x3c,0x53, 0x4,0x59,0x33, 0x7,0x3c,0x50, + 0x4,0x59,0x34, 0x7,0x3c,0x51, 0x5,0x5f,0x22, 0x5,0x5f,0x2b, + 0x4,0x59,0x36, 0x5,0x5f,0x28, 0x5,0x5f,0x27, 0x7,0x3c,0x54, + 0x5,0x5f,0x24, 0x5,0x5f,0x2a, 0x7,0x3c,0x49, 0xf,0x5c,0x7c, + 0xf,0x5c,0x7d, 0x7,0x3c,0x4e, 0x7,0x3c,0x4f, 0x5,0x5f,0x26, + 0x5,0x5f,0x23, 0x5,0x5f,0x29, 0x4,0x5d,0x79, 0x7,0x43,0x70, + 0x4,0x5e,0x21, 0x5,0x65,0x32, 0x5,0x65,0x34, 0xf,0x61,0x28, + 0xf,0x61,0x29, 0xf,0x61,0x2a, 0x7,0x43,0x6f, 0x7,0x43,0x72, + 0x7,0x43,0x71, 0x7,0x43,0x6e, 0x7,0x43,0x6d, 0x5,0x65,0x31, + 0x5,0x65,0x33, 0x5,0x69,0x78, 0x7,0x4a,0x6e, 0x7,0x4a,0x71, + 0x7,0x4a,0x6f, 0x7,0x4a,0x70, 0x5,0x69,0x7a, 0x4,0x61,0x5a, + 0x4,0x61,0x5b, 0x5,0x69,0x79, 0x5,0x69,0x77, 0x5,0x69,0x7b, + 0x7,0x4a,0x72, 0xf,0x64,0x28, 0x7,0x4a,0x74, 0x4,0x64,0x62, + 0x5,0x6e,0x25, 0x5,0x6e,0x23, 0x7,0x50,0x53, 0x5,0x6e,0x24, + 0x5,0x6e,0x22, 0x7,0x50,0x51, 0x5,0x6e,0x21, 0xf,0x66,0x4a, + 0x7,0x50,0x52, 0x7,0x50,0x50, 0x7,0x50,0x4f, 0x5,0x6e,0x26, + 0x7,0x50,0x54, 0x4,0x67,0x53, 0x5,0x71,0x4e, 0x4,0x67,0x54, + 0x7,0x55,0x4c, 0x7,0x55,0x4b, 0x7,0x55,0x4a, 0x7,0x59,0x56, + 0x4,0x69,0x50, 0x7,0x59,0x52, 0x7,0x59,0x51, 0x4,0x69,0x51, + 0x7,0x59,0x57, 0x7,0x59,0x53, 0x7,0x59,0x54, 0x7,0x59,0x55, + 0x7,0x5c,0x7e, 0x7,0x5d,0x21, 0x5,0x76,0x57, 0x7,0x5c,0x7b, + 0x7,0x5c,0x7a, 0x7,0x5c,0x7c, 0x7,0x5c,0x7d, 0x5,0x76,0x59, + 0x5,0x76,0x58, 0x5,0x78,0x3c, 0x5,0x78,0x3b, 0x5,0x78,0x3a, + 0x7,0x5f,0x67, 0x7,0x5f,0x65, 0x7,0x5f,0x64, 0x5,0x78,0x39, + 0x7,0x5f,0x66, 0x5,0x79,0x53, 0x5,0x79,0x52, 0x5,0x7a,0x3e, + 0x5,0x7a,0x3f, 0x7,0x62,0x68, 0x5,0x7a,0x7a, 0x7,0x64,0x64, + 0x7,0x62,0x69, 0x7,0x63,0x77, 0x5,0x7b,0x6b, 0x7,0x65,0x66, + 0x6,0x29,0x2b, 0x6,0x2e,0x36, 0x6,0x3c,0x48, 0x6,0x45,0x4f, + 0x5,0x36,0x25, 0x5,0x36,0x24, 0x4,0x41,0x2e, 0x6,0x59,0x2a, + 0xf,0x45,0x61, 0x5,0x4a,0x51, 0xf,0x4c,0x65, 0xf,0x4c,0x66, + 0x5,0x4a,0x52, 0x7,0x29,0x64, 0x7,0x29,0x65, 0x7,0x29,0x66, + 0x5,0x51,0x62, 0x7,0x34,0x37, 0x5,0x58,0x75, 0x7,0x34,0x38, + 0xf,0x58,0x3b, 0x5,0x5f,0x2d, 0x5,0x5f,0x2c, 0xf,0x5c,0x7e, + 0xf,0x5d,0x21, 0xf,0x5d,0x22, 0xf,0x5d,0x23, 0x5,0x5f,0x2e, + 0x5,0x65,0x37, 0x5,0x65,0x36, 0x7,0x43,0x73, 0x7,0x4a,0x75, + 0x4,0x61,0x5c, 0x7,0x4a,0x76, 0xf,0x66,0x4b, 0x7,0x50,0x55, + 0xf,0x68,0x54, 0x7,0x59,0x58, 0x7,0x5f,0x68, 0x7,0x65,0x47, + 0x7,0x65,0x67, 0x6,0x29,0x2c, 0x6,0x2e,0x37, 0x6,0x59,0x2d, + 0x6,0x59,0x2c, 0x6,0x59,0x2b, 0xf,0x52,0x4d, 0x7,0x33,0x21, + 0x4,0x61,0x5d, 0x7,0x55,0x4d, 0x6,0x25,0x59, 0x6,0x25,0x58, + 0x6,0x25,0x57, 0x4,0x24,0x7e, 0x6,0x29,0x2d, 0x4,0x25,0x24, + 0x6,0x3c,0x49, 0x6,0x29,0x2e, 0xf,0x25,0x33, 0xf,0x25,0x34, + 0x6,0x3c,0x4a, 0x6,0x29,0x2f, 0x5,0x24,0x78, 0x6,0x3c,0x4b, + 0x6,0x45,0x50, 0x5,0x27,0x6a, 0x5,0x27,0x6b, 0x5,0x27,0x70, + 0x6,0x2e,0x38, 0x6,0x2e,0x3d, 0x5,0x27,0x6f, 0x4,0x28,0x25, + 0x5,0x27,0x71, 0x5,0x27,0x6d, 0x4,0x28,0x28, 0x6,0x2e,0x3b, + 0xf,0x28,0x6d, 0xf,0x28,0x6f, 0xf,0x28,0x70, 0xf,0x28,0x73, + 0xf,0x28,0x74, 0xf,0x28,0x75, 0x6,0x2e,0x3a, 0x6,0x2e,0x3f, + 0x5,0x27,0x6e, 0x5,0x27,0x68, 0x6,0x2e,0x3c, 0x5,0x27,0x6c, + 0x6,0x2e,0x39, 0x6,0x2e,0x3e, 0x5,0x2b,0x4f, 0x5,0x2b,0x56, + 0x5,0x2b,0x52, 0x6,0x34,0x5f, 0x5,0x2b,0x51, 0x6,0x34,0x62, + 0x5,0x2b,0x55, 0x5,0x2b,0x53, 0x4,0x2b,0x4f, 0x4,0x2b,0x51, + 0x5,0x2b,0x50, 0x6,0x34,0x64, 0x6,0x34,0x63, 0xf,0x2d,0x55, + 0xf,0x2d,0x56, 0xf,0x2d,0x57, 0xf,0x2d,0x58, 0xf,0x2d,0x59, + 0x4,0x2b,0x52, 0x6,0x34,0x65, 0x6,0x34,0x61, 0x6,0x4a,0x47, + 0x5,0x2b,0x57, 0x5,0x2b,0x54, 0x6,0x3c,0x54, 0x6,0x3c,0x58, + 0x5,0x30,0x5b, 0x6,0x3c,0x53, 0x5,0x30,0x56, 0x5,0x30,0x5a, + 0x4,0x30,0x31, 0x5,0x30,0x57, 0x5,0x30,0x59, 0x6,0x3c,0x52, + 0x6,0x3c,0x4c, 0x6,0x3c,0x56, 0x4,0x30,0x32, 0x6,0x3c,0x57, + 0x6,0x3c,0x4d, 0x5,0x43,0x55, 0x6,0x3c,0x55, 0x5,0x30,0x58, + 0x6,0x3c,0x50, 0x6,0x3c,0x4e, 0x5,0x30,0x5c, 0x5,0x36,0x27, + 0x5,0x36,0x26, 0x6,0x3c,0x4f, 0x6,0x45,0x5b, 0x5,0x36,0x2c, + 0x4,0x35,0x6a, 0x6,0x45,0x5c, 0x5,0x36,0x2b, 0x6,0x3c,0x51, + 0x5,0x36,0x29, 0x6,0x45,0x57, 0x6,0x45,0x5a, 0xf,0x38,0x70, + 0xf,0x38,0x71, 0xf,0x38,0x72, 0x6,0x45,0x56, 0x6,0x45,0x54, + 0x6,0x45,0x55, 0x6,0x45,0x52, 0x6,0x45,0x5d, 0x6,0x45,0x58, + 0x6,0x45,0x53, 0x5,0x36,0x2a, 0x4,0x35,0x67, 0x6,0x45,0x59, + 0x5,0x36,0x2d, 0x5,0x36,0x28, 0xf,0x38,0x6f, 0x6,0x45,0x51, + 0x5,0x3c,0x76, 0x5,0x3c,0x72, 0x5,0x3c,0x78, 0x5,0x3c,0x77, + 0x4,0x3b,0x56, 0x6,0x4f,0x53, 0x4,0x3b,0x5a, 0x4,0x3b,0x58, + 0x5,0x3c,0x79, 0x6,0x4f,0x52, 0x7,0x29,0x67, 0x6,0x4f,0x4d, + 0x6,0x4f,0x4c, 0x6,0x4f,0x50, 0x6,0x4f,0x4f, 0x4,0x3b,0x5b, + 0x6,0x4f,0x49, 0x6,0x4f,0x4b, 0xf,0x3f,0x62, 0x6,0x4f,0x51, + 0x6,0x4f,0x54, 0x6,0x4f,0x55, 0x6,0x4f,0x4a, 0xf,0x3f,0x59, + 0xf,0x3f,0x5a, 0xf,0x3f,0x5b, 0xf,0x3f,0x5c, 0xf,0x3f,0x5d, + 0xf,0x3f,0x5f, 0xf,0x3f,0x60, 0xf,0x3f,0x61, 0x5,0x3c,0x75, + 0x6,0x4f,0x4e, 0x5,0x3c,0x74, 0x5,0x3c,0x73, 0x4,0x3b,0x59, + 0x6,0x4f,0x56, 0x6,0x59,0x40, 0x6,0x59,0x34, 0x6,0x59,0x3d, + 0x6,0x59,0x30, 0x4,0x41,0x31, 0x4,0x41,0x30, 0x6,0x59,0x2e, + 0x5,0x43,0x59, 0x6,0x59,0x31, 0x6,0x59,0x41, 0x6,0x59,0x3b, + 0x6,0x59,0x3f, 0x6,0x59,0x37, 0x6,0x59,0x35, 0x6,0x59,0x43, + 0x6,0x59,0x42, 0x5,0x3c,0x7a, 0x4,0x41,0x32, 0x6,0x59,0x33, + 0x6,0x59,0x3e, 0xf,0x45,0x62, 0xf,0x45,0x63, 0xf,0x45,0x64, + 0xf,0x45,0x65, 0xf,0x45,0x66, 0xf,0x45,0x67, 0xf,0x45,0x68, + 0xf,0x45,0x69, 0xf,0x45,0x6a, 0xf,0x45,0x6b, 0xf,0x45,0x6c, + 0x6,0x59,0x32, 0x6,0x59,0x36, 0x6,0x59,0x3c, 0x6,0x59,0x39, + 0x6,0x59,0x38, 0x6,0x59,0x3a, 0x6,0x59,0x2f, 0x5,0x43,0x58, + 0x5,0x43,0x57, 0x5,0x43,0x56, 0x6,0x63,0x35, 0x6,0x63,0x34, + 0x6,0x63,0x37, 0x6,0x63,0x32, 0x6,0x63,0x3a, 0x5,0x4a,0x54, + 0x6,0x63,0x36, 0x6,0x63,0x38, 0x6,0x63,0x3c, 0x5,0x4a,0x53, + 0x5,0x4a,0x56, 0x6,0x63,0x33, 0x6,0x63,0x3b, 0x7,0x3c,0x55, + 0xf,0x4c,0x69, 0xf,0x4c,0x6a, 0xf,0x4c,0x6c, 0xf,0x4c,0x6d, + 0xf,0x4c,0x6e, 0xf,0x4c,0x6f, 0xf,0x4c,0x70, 0xf,0x4c,0x71, + 0xf,0x4c,0x72, 0x6,0x63,0x39, 0x7,0x3c,0x56, 0x7,0x3c,0x57, + 0x7,0x3c,0x58, 0x5,0x4a,0x55, 0x7,0x29,0x6e, 0x7,0x29,0x6c, + 0x7,0x29,0x72, 0x7,0x29,0x69, 0x7,0x29,0x6b, 0x4,0x4e,0x2f, + 0x5,0x51,0x64, 0x4,0x4e,0x30, 0x5,0x51,0x68, 0x5,0x51,0x65, + 0x4,0x4e,0x34, 0x7,0x29,0x70, 0xf,0x52,0x4e, 0xf,0x52,0x4f, + 0xf,0x52,0x50, 0xf,0x52,0x51, 0xf,0x52,0x52, 0x5,0x51,0x6d, + 0x7,0x29,0x6a, 0x7,0x29,0x6f, 0x7,0x29,0x74, 0x7,0x29,0x75, + 0x7,0x29,0x71, 0x7,0x29,0x73, 0x7,0x43,0x74, 0x7,0x29,0x68, + 0x7,0x43,0x75, 0x7,0x29,0x6d, 0x5,0x51,0x69, 0x5,0x51,0x67, + 0x5,0x51,0x6c, 0x5,0x51,0x66, 0x5,0x51,0x6a, 0x5,0x51,0x6b, + 0x5,0x51,0x63, 0x7,0x34,0x46, 0x5,0x58,0x7c, 0x5,0x58,0x7b, + 0x5,0x58,0x79, 0x7,0x34,0x41, 0x5,0x58,0x77, 0x7,0x34,0x45, + 0x7,0x34,0x3e, 0x7,0x34,0x47, 0x4,0x54,0x36, 0x7,0x34,0x42, + 0x7,0x34,0x44, 0x7,0x34,0x39, 0x7,0x34,0x4a, 0x7,0x4a,0x77, + 0x7,0x34,0x3c, 0x7,0x34,0x40, 0x7,0x34,0x4c, 0xf,0x58,0x3c, + 0xf,0x58,0x3d, 0xf,0x58,0x3e, 0x7,0x34,0x3d, 0xf,0x58,0x3f, + 0x7,0x2c,0x5a, 0x7,0x34,0x48, 0x7,0x34,0x3b, 0x7,0x34,0x3a, + 0x7,0x34,0x43, 0x7,0x34,0x4b, 0x5,0x58,0x78, 0x5,0x58,0x7d, + 0x5,0x58,0x7a, 0x7,0x34,0x3f, 0x5,0x58,0x76, 0x5,0x5f,0x2f, + 0x4,0x59,0x3a, 0x7,0x3c,0x60, 0x5,0x5f,0x33, 0x7,0x3c,0x5d, + 0x5,0x5f,0x34, 0x7,0x3c,0x5b, 0x7,0x50,0x57, 0x7,0x34,0x49, + 0x7,0x3c,0x62, 0x7,0x3c,0x5e, 0x5,0x5f,0x32, 0x5,0x5f,0x35, + 0xf,0x5d,0x24, 0xf,0x5d,0x26, 0xf,0x5d,0x27, 0xf,0x5d,0x28, + 0x7,0x3c,0x59, 0x7,0x3c,0x5c, 0x7,0x3c,0x5f, 0x7,0x3c,0x63, + 0xf,0x5d,0x25, 0x5,0x5f,0x36, 0x5,0x5f,0x37, 0x5,0x5f,0x31, + 0x5,0x5f,0x30, 0x7,0x3c,0x5a, 0x5,0x65,0x3d, 0x7,0x43,0x7c, + 0x4,0x5e,0x22, 0x7,0x43,0x7a, 0x5,0x65,0x3a, 0x7,0x43,0x78, + 0xf,0x61,0x2b, 0xf,0x61,0x2c, 0xf,0x61,0x2d, 0x7,0x44,0x21, + 0x7,0x43,0x7e, 0x5,0x65,0x39, 0x7,0x43,0x7d, 0x7,0x43,0x76, + 0x7,0x43,0x79, 0x5,0x65,0x3c, 0x5,0x65,0x3b, 0x5,0x65,0x38, + 0x7,0x43,0x7b, 0x7,0x4b,0x21, 0x7,0x4b,0x22, 0x7,0x4a,0x7e, + 0xf,0x64,0x2a, 0xf,0x64,0x2b, 0xf,0x64,0x2d, 0xf,0x64,0x2e, + 0x7,0x4a,0x79, 0x7,0x4a,0x7a, 0x7,0x4a,0x7d, 0x7,0x4a,0x7b, + 0x7,0x4a,0x7c, 0x7,0x4a,0x78, 0x5,0x6a,0x21, 0x5,0x69,0x7e, + 0xf,0x64,0x2c, 0x7,0x50,0x5a, 0x5,0x6e,0x29, 0x7,0x50,0x59, + 0x5,0x6e,0x27, 0xf,0x66,0x4c, 0x7,0x50,0x58, 0x5,0x6e,0x28, + 0x7,0x5d,0x22, 0x4,0x67,0x55, 0x7,0x55,0x4f, 0x5,0x71,0x51, + 0x7,0x55,0x50, 0x7,0x55,0x4e, 0xf,0x68,0x55, 0xf,0x68,0x56, + 0xf,0x68,0x57, 0xf,0x68,0x58, 0x5,0x71,0x4f, 0x5,0x71,0x50, + 0x5,0x69,0x7d, 0x7,0x55,0x51, 0x5,0x71,0x52, 0x5,0x74,0x52, + 0x4,0x6b,0x25, 0x7,0x59,0x5b, 0x7,0x59,0x5a, 0x7,0x59,0x59, + 0x7,0x5d,0x23, 0x7,0x5d,0x25, 0x7,0x5d,0x24, 0x7,0x62,0x6a, + 0x7,0x5f,0x6a, 0x7,0x5f,0x69, 0x5,0x78,0x3d, 0x7,0x61,0x55, + 0x7,0x62,0x6b, 0x7,0x65,0x68, 0x6,0x29,0x30, 0x5,0x21,0x7c, + 0x5,0x23,0x2c, 0x5,0x23,0x2b, 0x5,0x23,0x2d, 0x5,0x23,0x2a, + 0x4,0x23,0x31, 0x6,0x25,0x5a, 0x6,0x25,0x5c, 0x4,0x23,0x33, + 0x4,0x25,0x27, 0x5,0x24,0x79, 0x4,0x25,0x26, 0x4,0x25,0x28, + 0x4,0x25,0x25, 0x6,0x29,0x33, 0x4,0x25,0x2a, 0x5,0x24,0x7a, + 0x4,0x35,0x71, 0x6,0x29,0x32, 0xf,0x25,0x35, 0xf,0x25,0x36, + 0xf,0x25,0x37, 0xf,0x38,0x73, 0xf,0x38,0x75, 0x6,0x45,0x61, + 0x6,0x45,0x5f, 0x6,0x45,0x60, 0x6,0x29,0x31, 0x4,0x25,0x29, + 0x4,0x28,0x2e, 0x6,0x45,0x5e, 0x4,0x28,0x2a, 0x4,0x28,0x2d, + 0x4,0x28,0x2c, 0x6,0x34,0x69, 0x4,0x28,0x2f, 0x5,0x27,0x72, + 0x5,0x27,0x73, 0x6,0x4f,0x58, 0x6,0x2e,0x43, 0xf,0x28,0x76, + 0xf,0x28,0x78, 0xf,0x28,0x79, 0xf,0x28,0x7c, 0x6,0x4f,0x5a, + 0x6,0x2e,0x41, 0x6,0x2e,0x42, 0x6,0x2e,0x40, 0xf,0x28,0x77, + 0xf,0x28,0x7b, 0x6,0x4f,0x57, 0x6,0x4f,0x59, 0x5,0x27,0x74, + 0x5,0x2b,0x5a, 0x5,0x2b,0x59, 0x5,0x2b,0x58, 0x4,0x2b,0x57, + 0x4,0x2b,0x55, 0x5,0x2b,0x5f, 0x4,0x41,0x33, 0x5,0x2b,0x5b, + 0xf,0x2d,0x5a, 0xf,0x45,0x6e, 0x6,0x59,0x45, 0x6,0x59,0x44, + 0x6,0x59,0x46, 0x6,0x34,0x6c, 0x6,0x34,0x66, 0x6,0x34,0x67, + 0x6,0x34,0x68, 0x6,0x34,0x6b, 0x6,0x34,0x6a, 0x5,0x2b,0x5e, + 0x5,0x2b,0x5c, 0x5,0x2b,0x5d, 0x5,0x30,0x61, 0x5,0x30,0x5d, + 0x4,0x30,0x36, 0x6,0x3c,0x5b, 0x5,0x30,0x65, 0x5,0x30,0x66, + 0x5,0x30,0x5e, 0x5,0x30,0x63, 0x5,0x30,0x5f, 0x4,0x30,0x35, + 0x6,0x3c,0x5d, 0x4,0x30,0x37, 0x6,0x3c,0x5f, 0x6,0x63,0x3d, + 0x6,0x63,0x3f, 0x6,0x63,0x40, 0x6,0x3c,0x5c, 0x6,0x3c,0x5e, + 0x6,0x3c,0x5a, 0x5,0x30,0x62, 0x5,0x30,0x64, 0x5,0x30,0x60, + 0x5,0x30,0x67, 0x6,0x63,0x3e, 0x6,0x3c,0x59, 0xf,0x32,0x62, + 0xf,0x32,0x63, 0xf,0x32,0x64, 0x5,0x51,0x6e, 0x4,0x4e,0x36, + 0x4,0x35,0x6f, 0x5,0x36,0x31, 0x5,0x36,0x30, 0x5,0x36,0x35, + 0x5,0x36,0x2e, 0x5,0x36,0x32, 0x4,0x35,0x6d, 0x6,0x45,0x66, + 0x5,0x36,0x34, 0x7,0x29,0x7a, 0x7,0x29,0x79, 0x6,0x45,0x68, + 0xf,0x32,0x61, 0xf,0x38,0x76, 0xf,0x52,0x54, 0x7,0x29,0x76, + 0x7,0x29,0x77, 0x7,0x29,0x7b, 0x7,0x29,0x78, 0x6,0x45,0x63, + 0x6,0x45,0x65, 0x6,0x45,0x64, 0x6,0x45,0x62, 0xf,0x33,0x3c, + 0x6,0x45,0x67, 0x5,0x36,0x2f, 0x5,0x36,0x33, 0x5,0x30,0x68, + 0x4,0x3b,0x5f, 0x5,0x3d,0x23, 0x5,0x3c,0x7e, 0x5,0x3d,0x22, + 0x4,0x3b,0x5d, 0x5,0x3d,0x24, 0x6,0x4f,0x64, 0x5,0x3d,0x21, + 0x5,0x43,0x67, 0x5,0x3c,0x7d, 0x5,0x3c,0x7c, 0x6,0x4f,0x62, + 0x6,0x4f,0x5b, 0x4,0x3b,0x5c, 0xf,0x3f,0x63, 0xf,0x3f,0x64, + 0xf,0x3f,0x65, 0xf,0x58,0x41, 0x7,0x34,0x4e, 0x6,0x4f,0x5d, + 0x6,0x4f,0x5c, 0x6,0x4f,0x5e, 0x6,0x4f,0x5f, 0x6,0x4f,0x60, + 0x6,0x4f,0x61, 0xf,0x3f,0x66, 0x6,0x4f,0x63, 0x7,0x34,0x4d, + 0x5,0x3c,0x7b, 0x7,0x3c,0x64, 0x5,0x43,0x5b, 0x5,0x43,0x60, + 0x5,0x43,0x63, 0x5,0x43,0x5e, 0x5,0x43,0x5d, 0x4,0x41,0x35, + 0x6,0x63,0x41, 0x5,0x43,0x5c, 0x5,0x43,0x62, 0x5,0x43,0x5f, + 0x5,0x43,0x64, 0x5,0x43,0x66, 0x4,0x41,0x37, 0x5,0x43,0x65, + 0x6,0x59,0x49, 0x5,0x43,0x5a, 0xf,0x45,0x6f, 0x6,0x59,0x48, + 0x6,0x59,0x4b, 0x5,0x43,0x61, 0x4,0x47,0x6f, 0x5,0x4a,0x5d, + 0x5,0x4a,0x5c, 0x5,0x4a,0x59, 0x5,0x4a,0x58, 0x5,0x4a,0x63, + 0x5,0x4a,0x5f, 0x5,0x4a,0x5b, 0x6,0x63,0x46, 0x6,0x63,0x43, + 0x6,0x63,0x42, 0x5,0x4a,0x61, 0x5,0x4a,0x62, 0x7,0x44,0x22, + 0x7,0x44,0x24, 0x7,0x44,0x23, 0x7,0x44,0x25, 0x6,0x63,0x45, + 0x5,0x4a,0x57, 0x4,0x47,0x72, 0x6,0x63,0x44, 0x5,0x65,0x3e, + 0x5,0x4a,0x5a, 0x5,0x4a,0x5e, 0x5,0x4a,0x64, 0x4,0x4e,0x38, + 0x7,0x4b,0x23, 0x5,0x51,0x72, 0x7,0x2a,0x21, 0x4,0x4e,0x37, + 0x5,0x51,0x73, 0x4,0x4e,0x39, 0x5,0x59,0x28, 0x5,0x51,0x6f, + 0x5,0x51,0x70, 0x7,0x29,0x7e, 0x7,0x2a,0x22, 0x4,0x4e,0x3a, + 0xf,0x52,0x53, 0xf,0x52,0x55, 0xf,0x52,0x56, 0x7,0x4b,0x26, + 0x7,0x4b,0x24, 0x7,0x2a,0x23, 0x7,0x2a,0x25, 0x7,0x2a,0x26, + 0x7,0x2a,0x24, 0x7,0x29,0x7c, 0x7,0x29,0x7d, 0x5,0x51,0x74, + 0x7,0x34,0x50, 0x5,0x51,0x71, 0x7,0x4b,0x25, 0x5,0x6e,0x2a, + 0x5,0x59,0x25, 0x5,0x59,0x26, 0x7,0x50,0x5c, 0x4,0x54,0x38, + 0x7,0x34,0x4f, 0x5,0x59,0x21, 0x5,0x59,0x24, 0x7,0x34,0x52, + 0x5,0x59,0x22, 0x5,0x59,0x23, 0x4,0x54,0x39, 0x7,0x34,0x51, + 0xf,0x58,0x40, 0x7,0x50,0x5d, 0x7,0x50,0x5b, 0x5,0x6e,0x2b, + 0x7,0x3c,0x65, 0x7,0x3c,0x69, 0x5,0x5f,0x38, 0x4,0x59,0x3b, + 0x5,0x5f,0x39, 0x7,0x55,0x52, 0x7,0x55,0x53, 0x7,0x55,0x54, + 0x7,0x3c,0x67, 0x7,0x3c,0x6a, 0x7,0x3c,0x66, 0x5,0x5f,0x3b, + 0x5,0x5f,0x3a, 0x7,0x55,0x55, 0x7,0x3c,0x68, 0x5,0x65,0x40, + 0x7,0x44,0x26, 0x7,0x44,0x27, 0x5,0x65,0x41, 0x5,0x6a,0x25, + 0x5,0x65,0x44, 0x7,0x44,0x29, 0x7,0x44,0x28, 0x5,0x65,0x42, + 0x5,0x65,0x43, 0x7,0x59,0x5c, 0x5,0x65,0x3f, 0x7,0x44,0x2a, + 0x7,0x4b,0x28, 0x7,0x44,0x2b, 0x5,0x6a,0x24, 0x7,0x4b,0x27, + 0x5,0x6a,0x23, 0x7,0x4b,0x2a, 0x7,0x4b,0x29, 0x4,0x61,0x60, + 0x5,0x59,0x27, 0x5,0x6a,0x22, 0x4,0x64,0x64, 0x5,0x6e,0x2c, + 0x7,0x50,0x5f, 0x7,0x50,0x61, 0x7,0x50,0x5e, 0x7,0x50,0x60, + 0x4,0x67,0x56, 0xf,0x68,0x59, 0x7,0x55,0x56, 0x7,0x55,0x57, + 0x7,0x59,0x5d, 0x7,0x55,0x58, 0xf,0x68,0x5a, 0x7,0x5d,0x26, + 0x7,0x5f,0x6b, 0x7,0x5f,0x6c, 0x5,0x7b,0x4b, 0x7,0x63,0x78, + 0x4,0x30,0x39, 0xf,0x32,0x65, 0x6,0x3c,0x60, 0x5,0x36,0x38, + 0x5,0x36,0x37, 0x6,0x45,0x72, 0x6,0x45,0x6e, 0x5,0x36,0x39, + 0x4,0x35,0x76, 0x6,0x45,0x6c, 0x6,0x45,0x73, 0x6,0x45,0x69, + 0x4,0x35,0x77, 0x5,0x36,0x3a, 0x6,0x45,0x70, 0x6,0x45,0x6f, + 0x6,0x45,0x6a, 0x6,0x45,0x6b, 0xf,0x38,0x77, 0x6,0x45,0x71, + 0x4,0x35,0x79, 0x6,0x45,0x6d, 0x6,0x45,0x74, 0x6,0x4f,0x6b, + 0x5,0x3d,0x25, 0x5,0x3d,0x26, 0x4,0x3b,0x65, 0x6,0x4f,0x69, + 0x5,0x43,0x6a, 0x4,0x3b,0x62, 0x4,0x3b,0x63, 0x6,0x4f,0x6a, + 0x6,0x4f,0x66, 0x6,0x4f,0x65, 0x4,0x3b,0x61, 0x6,0x4f,0x67, + 0x6,0x4f,0x68, 0xf,0x3f,0x68, 0xf,0x3f,0x69, 0xf,0x3f,0x6a, + 0xf,0x3f,0x6b, 0x6,0x4f,0x6c, 0x5,0x43,0x69, 0x5,0x43,0x6c, + 0x5,0x43,0x68, 0x6,0x59,0x4e, 0x6,0x59,0x4d, 0x5,0x43,0x6b, + 0x6,0x63,0x4a, 0x5,0x4a,0x66, 0x5,0x4a,0x65, 0xf,0x4c,0x73, + 0xf,0x4c,0x74, 0xf,0x4c,0x75, 0xf,0x4c,0x77, 0x6,0x63,0x49, + 0x6,0x63,0x48, 0xf,0x4c,0x78, 0x6,0x63,0x47, 0x7,0x2a,0x28, + 0x5,0x51,0x78, 0x7,0x2a,0x2c, 0x5,0x51,0x79, 0x5,0x51,0x75, + 0x7,0x2a,0x30, 0x5,0x51,0x76, 0x7,0x2a,0x2f, 0x7,0x2a,0x2e, + 0x7,0x2a,0x2d, 0x7,0x2a,0x29, 0x7,0x2a,0x27, 0x5,0x51,0x77, + 0xf,0x4c,0x76, 0xf,0x52,0x58, 0xf,0x52,0x59, 0x7,0x2a,0x2a, + 0x7,0x2a,0x2b, 0x7,0x2a,0x32, 0x7,0x2a,0x31, 0x7,0x34,0x56, + 0x7,0x34,0x55, 0x5,0x59,0x29, 0x7,0x34,0x58, 0x5,0x59,0x2c, + 0x7,0x34,0x5a, 0x4,0x54,0x41, 0x7,0x34,0x5f, 0x4,0x54,0x3e, + 0x4,0x54,0x3f, 0x7,0x34,0x5e, 0x5,0x59,0x2a, 0x7,0x34,0x57, + 0x7,0x34,0x5d, 0x7,0x34,0x5c, 0x5,0x59,0x2b, 0xf,0x58,0x42, + 0xf,0x58,0x43, 0x7,0x34,0x59, 0x7,0x34,0x5b, 0x7,0x34,0x53, + 0x7,0x34,0x60, 0x5,0x5f,0x41, 0x5,0x5f,0x3f, 0x5,0x5f,0x40, + 0x5,0x5f,0x43, 0x4,0x59,0x40, 0x7,0x3c,0x6c, 0x5,0x5f,0x42, + 0x4,0x59,0x3e, 0x7,0x3c,0x6e, 0x5,0x5f,0x3e, 0x7,0x3c,0x74, + 0x5,0x5f,0x44, 0x7,0x3c,0x6d, 0x7,0x3c,0x73, 0xf,0x5d,0x2a, + 0xf,0x5d,0x2b, 0xf,0x5d,0x2c, 0x7,0x3c,0x6f, 0x7,0x3c,0x71, + 0x7,0x3c,0x72, 0x5,0x5f,0x3d, 0x5,0x65,0x46, 0x5,0x65,0x47, + 0x5,0x65,0x49, 0x7,0x44,0x33, 0x7,0x44,0x2f, 0x4,0x5e,0x23, + 0x7,0x44,0x2c, 0x5,0x65,0x48, 0x4,0x5e,0x26, 0x5,0x65,0x4a, + 0x7,0x3c,0x75, 0x4,0x5e,0x25, 0x7,0x44,0x32, 0x5,0x65,0x4b, + 0x7,0x44,0x35, 0x7,0x44,0x36, 0x7,0x44,0x2d, 0xf,0x61,0x2e, + 0x7,0x44,0x31, 0x7,0x44,0x2e, 0x5,0x65,0x4c, 0x7,0x44,0x30, + 0x7,0x4b,0x2f, 0x7,0x4b,0x2c, 0x5,0x6a,0x2e, 0x5,0x6a,0x2b, + 0x5,0x6a,0x27, 0x5,0x6a,0x2a, 0x5,0x6a,0x29, 0x5,0x6a,0x2f, + 0x5,0x6a,0x2c, 0x5,0x6a,0x28, 0x5,0x6a,0x2d, 0x7,0x4b,0x2d, + 0x7,0x4b,0x2e, 0x7,0x4b,0x30, 0x7,0x4b,0x2b, 0x7,0x44,0x34, + 0x5,0x6a,0x30, 0x5,0x6a,0x26, 0x7,0x50,0x62, 0x5,0x6e,0x31, + 0x5,0x6e,0x2e, 0x5,0x6e,0x2f, 0x5,0x6e,0x2d, 0x5,0x6e,0x30, + 0x7,0x50,0x63, 0x7,0x50,0x64, 0xf,0x66,0x4e, 0x7,0x50,0x65, + 0x7,0x50,0x67, 0x7,0x50,0x66, 0x4,0x67,0x59, 0x4,0x67,0x57, + 0x4,0x67,0x58, 0x5,0x71,0x53, 0x7,0x55,0x5a, 0xf,0x68,0x5b, + 0x7,0x55,0x59, 0x7,0x59,0x5e, 0x7,0x59,0x5f, 0x7,0x59,0x62, + 0x5,0x74,0x53, 0x7,0x59,0x61, 0x7,0x59,0x60, 0xf,0x69,0x7d, + 0x7,0x5d,0x27, 0x7,0x5d,0x29, 0x5,0x76,0x5a, 0x7,0x5d,0x2b, + 0x7,0x5d,0x2a, 0x5,0x76,0x5b, 0x7,0x5d,0x28, 0xf,0x6a,0x7a, + 0x5,0x78,0x3f, 0x4,0x6c,0x2f, 0x7,0x5f,0x6d, 0x7,0x5f,0x6e, + 0x5,0x78,0x3e, 0x7,0x62,0x6c, 0x5,0x7a,0x7b, 0x7,0x63,0x7a, + 0x7,0x63,0x79, 0x7,0x64,0x66, 0x7,0x64,0x65, 0x7,0x65,0x78, + 0x7,0x65,0x79, 0x6,0x34,0x6e, 0x5,0x3d,0x27, 0x5,0x36,0x3b, + 0x6,0x63,0x4b, 0x6,0x63,0x4c, 0x5,0x51,0x7a, 0x7,0x2a,0x34, + 0x7,0x2a,0x33, 0x5,0x59,0x2d, 0x7,0x34,0x61, 0x5,0x5f,0x45, + 0xf,0x5d,0x2d, 0x7,0x44,0x37, 0xf,0x66,0x4f, 0xf,0x68,0x5c, + 0x5,0x74,0x54, 0x5,0x36,0x3c, 0x6,0x3c,0x61, 0x6,0x45,0x75, + 0x6,0x4f,0x6e, 0x5,0x3d,0x29, 0x5,0x3d,0x28, 0xf,0x45,0x70, + 0x6,0x63,0x4d, 0x7,0x2a,0x35, 0x5,0x5f,0x46, 0xf,0x61,0x2f, + 0x5,0x65,0x4d, 0xf,0x68,0x5d, 0x5,0x71,0x54, 0x7,0x55,0x5b, + 0x6,0x3c,0x64, 0xf,0x32,0x66, 0x6,0x3c,0x62, 0x5,0x36,0x3d, + 0x6,0x45,0x76, 0x6,0x45,0x77, 0xf,0x38,0x78, 0x6,0x4f,0x73, + 0x6,0x4f,0x74, 0x6,0x4f,0x75, 0x6,0x4f,0x71, 0x6,0x4f,0x72, + 0x6,0x4f,0x78, 0x6,0x4f,0x76, 0x6,0x4f,0x70, 0x6,0x4f,0x79, + 0xf,0x3f,0x6c, 0xf,0x3f,0x6d, 0xf,0x3f,0x6e, 0xf,0x3f,0x6f, + 0xf,0x3f,0x72, 0xf,0x3f,0x74, 0xf,0x3f,0x71, 0x6,0x4f,0x77, + 0xf,0x3f,0x70, 0x4,0x41,0x47, 0x5,0x43,0x6e, 0x4,0x41,0x45, + 0x4,0x41,0x44, 0x6,0x59,0x53, 0x6,0x59,0x4f, 0xf,0x45,0x71, + 0xf,0x45,0x75, 0xf,0x45,0x76, 0xf,0x45,0x77, 0xf,0x45,0x78, + 0x6,0x59,0x55, 0x6,0x59,0x51, 0x6,0x59,0x52, 0xf,0x45,0x79, + 0x6,0x59,0x54, 0x6,0x59,0x50, 0xf,0x45,0x74, 0x5,0x4a,0x67, + 0x5,0x4a,0x68, 0x6,0x63,0x52, 0x5,0x4a,0x69, 0xf,0x4c,0x68, + 0xf,0x4c,0x79, 0xf,0x4c,0x7b, 0xf,0x4c,0x7c, 0xf,0x4c,0x7d, + 0xf,0x4d,0x21, 0xf,0x4d,0x23, 0xf,0x4d,0x24, 0xf,0x4d,0x25, + 0xf,0x4d,0x28, 0xf,0x4d,0x29, 0x6,0x63,0x4e, 0x4,0x47,0x7a, + 0x6,0x63,0x50, 0x6,0x63,0x51, 0xf,0x4d,0x2a, 0x6,0x63,0x54, + 0xf,0x4c,0x7a, 0x6,0x63,0x55, 0xf,0x4d,0x2b, 0xf,0x4d,0x26, + 0xf,0x4c,0x7e, 0x7,0x2a,0x3a, 0x4,0x4e,0x42, 0x5,0x51,0x7e, + 0x7,0x2a,0x41, 0x7,0x2a,0x3b, 0x7,0x2a,0x40, 0x7,0x2a,0x39, + 0x5,0x51,0x7d, 0x7,0x2a,0x43, 0x7,0x2a,0x44, 0x7,0x2a,0x3d, + 0x5,0x51,0x7b, 0x7,0x2a,0x37, 0xf,0x52,0x5b, 0xf,0x52,0x5d, + 0xf,0x52,0x5f, 0xf,0x52,0x60, 0xf,0x52,0x63, 0xf,0x52,0x64, + 0xf,0x52,0x65, 0xf,0x52,0x67, 0xf,0x52,0x68, 0xf,0x52,0x69, + 0xf,0x52,0x6a, 0xf,0x52,0x6c, 0xf,0x52,0x6d, 0x7,0x2a,0x42, + 0x7,0x2a,0x3c, 0x7,0x2a,0x3f, 0x7,0x2a,0x45, 0xf,0x52,0x5e, + 0x7,0x2a,0x36, 0x5,0x51,0x7c, 0xf,0x52,0x62, 0xf,0x52,0x66, + 0xf,0x52,0x5a, 0x5,0x59,0x34, 0x5,0x59,0x37, 0x5,0x59,0x32, + 0x4,0x54,0x47, 0x5,0x59,0x2e, 0x5,0x59,0x30, 0x7,0x34,0x65, + 0x7,0x34,0x64, 0x7,0x34,0x6b, 0x7,0x34,0x69, 0x7,0x34,0x67, + 0x5,0x59,0x36, 0x4,0x54,0x44, 0x7,0x34,0x62, 0x7,0x34,0x6a, + 0x7,0x34,0x68, 0x5,0x59,0x2f, 0x7,0x34,0x66, 0xf,0x52,0x5c, + 0x5,0x59,0x33, 0xf,0x58,0x44, 0xf,0x58,0x46, 0xf,0x58,0x47, + 0xf,0x58,0x49, 0xf,0x58,0x4a, 0xf,0x58,0x4b, 0xf,0x58,0x4d, + 0xf,0x58,0x4e, 0xf,0x58,0x4f, 0xf,0x58,0x51, 0xf,0x58,0x53, + 0xf,0x58,0x54, 0xf,0x58,0x56, 0xf,0x58,0x57, 0xf,0x58,0x5a, + 0xf,0x58,0x5c, 0xf,0x58,0x5d, 0xf,0x58,0x5e, 0xf,0x58,0x60, + 0xf,0x58,0x61, 0xf,0x58,0x63, 0xf,0x58,0x64, 0xf,0x58,0x50, + 0xf,0x58,0x52, 0xf,0x58,0x5f, 0xf,0x58,0x45, 0xf,0x58,0x58, + 0x5,0x59,0x38, 0x5,0x59,0x31, 0x5,0x5f,0x48, 0x5,0x5f,0x49, + 0x7,0x3c,0x79, 0x4,0x59,0x43, 0x5,0x5f,0x4c, 0x5,0x5f,0x4b, + 0x7,0x3c,0x7c, 0x5,0x59,0x35, 0x5,0x5f,0x47, 0x7,0x3c,0x7a, + 0x5,0x5f,0x4a, 0x5,0x5f,0x4f, 0x7,0x3c,0x7e, 0x7,0x3d,0x24, + 0x7,0x3d,0x21, 0x7,0x3d,0x25, 0xf,0x5d,0x2f, 0xf,0x5d,0x30, + 0xf,0x5d,0x34, 0xf,0x5d,0x35, 0xf,0x5d,0x36, 0xf,0x5d,0x37, + 0xf,0x5d,0x3a, 0xf,0x5d,0x3b, 0xf,0x5d,0x3c, 0xf,0x5d,0x3d, + 0xf,0x5d,0x3f, 0xf,0x5d,0x40, 0xf,0x5d,0x42, 0xf,0x5d,0x43, + 0xf,0x5d,0x44, 0xf,0x5d,0x45, 0xf,0x5d,0x46, 0xf,0x5d,0x47, + 0xf,0x5d,0x48, 0xf,0x5d,0x49, 0xf,0x5d,0x4b, 0xf,0x5d,0x4e, + 0xf,0x5d,0x4f, 0x7,0x3c,0x7d, 0x7,0x3d,0x22, 0x7,0x3c,0x78, + 0x7,0x3d,0x23, 0x4,0x59,0x48, 0xf,0x5d,0x4a, 0xf,0x5d,0x38, + 0xf,0x5d,0x33, 0xf,0x5d,0x31, 0x5,0x5f,0x4e, 0x5,0x5f,0x4d, + 0xf,0x5d,0x2e, 0x5,0x65,0x51, 0x4,0x5e,0x2d, 0x4,0x5e,0x2e, + 0x5,0x65,0x52, 0x4,0x5e,0x28, 0x4,0x5e,0x2a, 0x7,0x44,0x38, + 0x5,0x65,0x50, 0x5,0x65,0x4e, 0x5,0x6a,0x31, 0x7,0x44,0x3a, + 0x5,0x65,0x53, 0x4,0x5e,0x30, 0x7,0x44,0x40, 0x7,0x44,0x3f, + 0x5,0x65,0x54, 0x5,0x65,0x55, 0x7,0x44,0x41, 0xf,0x61,0x31, + 0xf,0x61,0x32, 0xf,0x61,0x34, 0xf,0x61,0x36, 0xf,0x61,0x37, + 0xf,0x61,0x38, 0xf,0x61,0x3a, 0xf,0x61,0x3c, 0xf,0x61,0x3d, + 0xf,0x61,0x3e, 0xf,0x61,0x40, 0xf,0x61,0x41, 0xf,0x61,0x42, + 0xf,0x61,0x44, 0xf,0x61,0x45, 0xf,0x61,0x46, 0x7,0x44,0x3b, + 0x7,0x44,0x3c, 0x7,0x44,0x3e, 0x7,0x44,0x3d, 0xf,0x61,0x30, + 0xf,0x61,0x39, 0xf,0x61,0x35, 0xf,0x5f,0x5d, 0x4,0x61,0x6b, + 0x7,0x4b,0x33, 0x7,0x4b,0x37, 0x5,0x6a,0x32, 0x7,0x4b,0x34, + 0x5,0x6a,0x34, 0x7,0x4b,0x32, 0x7,0x4b,0x3a, 0x7,0x4b,0x36, + 0x7,0x4b,0x39, 0x7,0x4b,0x3b, 0xf,0x64,0x31, 0xf,0x64,0x32, + 0xf,0x64,0x33, 0xf,0x64,0x35, 0xf,0x64,0x36, 0xf,0x64,0x38, + 0xf,0x64,0x39, 0xf,0x64,0x3a, 0xf,0x64,0x3b, 0xf,0x64,0x3c, + 0xf,0x64,0x3d, 0xf,0x64,0x3f, 0xf,0x64,0x40, 0xf,0x64,0x41, + 0xf,0x64,0x42, 0xf,0x64,0x43, 0xf,0x64,0x44, 0xf,0x64,0x45, + 0x7,0x4b,0x3c, 0x7,0x4b,0x35, 0x7,0x4b,0x38, 0x4,0x61,0x6a, + 0x7,0x4b,0x31, 0x5,0x65,0x56, 0xf,0x64,0x3e, 0x4,0x64,0x68, + 0x7,0x50,0x6d, 0x7,0x50,0x6e, 0x5,0x6e,0x38, 0x7,0x50,0x72, + 0x5,0x6e,0x33, 0x4,0x64,0x6a, 0x5,0x6e,0x36, 0x5,0x6e,0x32, + 0x7,0x50,0x70, 0x7,0x50,0x68, 0x7,0x50,0x69, 0x5,0x6e,0x37, + 0x4,0x64,0x6e, 0x7,0x50,0x71, 0x5,0x6e,0x34, 0xf,0x66,0x50, + 0xf,0x66,0x51, 0xf,0x66,0x53, 0xf,0x66,0x54, 0xf,0x66,0x55, + 0xf,0x66,0x56, 0xf,0x66,0x58, 0xf,0x66,0x59, 0xf,0x66,0x5a, + 0xf,0x66,0x5b, 0xf,0x66,0x5d, 0xf,0x66,0x5f, 0xf,0x66,0x60, + 0xf,0x66,0x61, 0xf,0x66,0x62, 0xf,0x66,0x63, 0xf,0x66,0x64, + 0xf,0x66,0x66, 0xf,0x66,0x68, 0xf,0x66,0x6a, 0xf,0x66,0x6b, + 0xf,0x66,0x6c, 0xf,0x66,0x6d, 0xf,0x66,0x6e, 0xf,0x66,0x6f, + 0x7,0x50,0x6c, 0x7,0x50,0x6f, 0xf,0x66,0x52, 0xf,0x66,0x5c, + 0xf,0x66,0x67, 0x7,0x50,0x6a, 0x7,0x55,0x62, 0x4,0x67,0x5e, + 0x7,0x55,0x67, 0x7,0x55,0x61, 0x7,0x55,0x5c, 0x4,0x67,0x60, + 0x4,0x67,0x5d, 0x7,0x55,0x60, 0x7,0x55,0x63, 0x7,0x55,0x69, + 0x7,0x55,0x5e, 0xf,0x68,0x5e, 0xf,0x68,0x5f, 0xf,0x68,0x60, + 0xf,0x68,0x61, 0xf,0x68,0x62, 0xf,0x68,0x63, 0xf,0x68,0x64, + 0xf,0x68,0x65, 0xf,0x68,0x66, 0xf,0x68,0x67, 0xf,0x68,0x68, + 0xf,0x68,0x69, 0xf,0x68,0x6b, 0xf,0x68,0x6c, 0xf,0x68,0x6d, + 0xf,0x68,0x6e, 0xf,0x68,0x6f, 0x7,0x55,0x5f, 0x7,0x55,0x64, + 0x7,0x55,0x65, 0x7,0x55,0x66, 0x7,0x55,0x5d, 0xf,0x68,0x6a, + 0x5,0x74,0x57, 0x7,0x59,0x6b, 0x7,0x59,0x6a, 0x7,0x5d,0x30, + 0x7,0x59,0x66, 0x7,0x59,0x64, 0xf,0x69,0x7e, 0xf,0x6a,0x21, + 0xf,0x6a,0x22, 0xf,0x6a,0x23, 0xf,0x6a,0x24, 0xf,0x6a,0x25, + 0xf,0x6a,0x26, 0xf,0x6a,0x27, 0xf,0x6a,0x28, 0xf,0x6a,0x29, + 0xf,0x6a,0x2a, 0xf,0x6a,0x2b, 0x7,0x59,0x63, 0x7,0x59,0x65, + 0x5,0x74,0x56, 0x5,0x76,0x5e, 0x4,0x6b,0x28, 0x5,0x76,0x5c, + 0xf,0x6b,0x2f, 0x7,0x5d,0x2f, 0x7,0x5d,0x2d, 0x7,0x59,0x69, + 0x7,0x5d,0x2c, 0xf,0x6a,0x7c, 0xf,0x6a,0x7d, 0xf,0x6b,0x23, + 0xf,0x6b,0x24, 0xf,0x6b,0x25, 0xf,0x6b,0x26, 0xf,0x6b,0x29, + 0xf,0x6b,0x2a, 0xf,0x6b,0x2b, 0xf,0x6b,0x2c, 0xf,0x6b,0x2d, + 0xf,0x6b,0x2e, 0x7,0x5d,0x2e, 0x7,0x5d,0x31, 0xf,0x6b,0x21, + 0xf,0x6a,0x7e, 0xf,0x6b,0x27, 0x5,0x78,0x40, 0x7,0x5f,0x70, + 0x7,0x5f,0x71, 0x7,0x5f,0x72, 0x7,0x5f,0x6f, 0x7,0x5f,0x73, + 0xf,0x6b,0x68, 0xf,0x6b,0x69, 0xf,0x6b,0x6a, 0xf,0x6b,0x6b, + 0xf,0x6b,0x6c, 0x4,0x6d,0x63, 0x7,0x61,0x57, 0x7,0x61,0x58, + 0xf,0x6b,0x6d, 0xf,0x6c,0x3c, 0xf,0x6c,0x3d, 0x7,0x61,0x56, + 0x7,0x62,0x72, 0x7,0x62,0x6d, 0x7,0x62,0x6e, 0x7,0x62,0x74, + 0x7,0x62,0x70, 0x7,0x62,0x6f, 0x5,0x7a,0x40, 0x7,0x62,0x73, + 0x7,0x62,0x71, 0x7,0x62,0x75, 0xf,0x6c,0x52, 0xf,0x6c,0x53, + 0xf,0x6c,0x54, 0xf,0x6c,0x55, 0xf,0x6c,0x56, 0xf,0x6c,0x57, + 0xf,0x6c,0x58, 0xf,0x6c,0x40, 0x5,0x7a,0x41, 0x5,0x7a,0x7c, + 0x7,0x63,0x7d, 0x7,0x63,0x7b, 0xf,0x6c,0x6f, 0x7,0x63,0x7c, + 0xf,0x6d,0x23, 0x7,0x64,0x68, 0xf,0x6d,0x21, 0x7,0x64,0x67, + 0x7,0x64,0x69, 0xf,0x6d,0x22, 0xf,0x6c,0x3e, 0x7,0x65,0x48, + 0x7,0x65,0x49, 0xf,0x6d,0x29, 0x5,0x7c,0x21, 0xf,0x6d,0x35, + 0xf,0x6d,0x38, 0xf,0x6d,0x39, 0x6,0x2e,0x44, 0x6,0x29,0x34, + 0x5,0x2b,0x60, 0x5,0x36,0x3f, 0x6,0x45,0x7b, 0x5,0x36,0x3e, + 0x5,0x36,0x40, 0x6,0x45,0x7a, 0xf,0x38,0x79, 0x6,0x45,0x79, + 0x6,0x45,0x78, 0x5,0x3d,0x2a, 0x5,0x3d,0x2b, 0x4,0x3b,0x68, + 0x6,0x4f,0x7a, 0x6,0x4f,0x7b, 0xf,0x3f,0x75, 0x6,0x59,0x59, + 0x6,0x59,0x58, 0x4,0x41,0x4a, 0x6,0x59,0x56, 0x6,0x59,0x57, + 0xf,0x45,0x7a, 0x5,0x43,0x70, 0x5,0x43,0x6f, 0x5,0x4a,0x6a, + 0x4,0x47,0x7c, 0x6,0x63,0x56, 0x6,0x63,0x57, 0x5,0x4a,0x6b, + 0x5,0x52,0x21, 0x5,0x52,0x23, 0x5,0x59,0x39, 0x5,0x52,0x22, + 0x5,0x52,0x24, 0x5,0x52,0x25, 0xf,0x58,0x65, 0x5,0x59,0x3b, + 0x7,0x34,0x6e, 0x5,0x59,0x3a, 0x7,0x3d,0x26, 0x7,0x34,0x6d, + 0x7,0x34,0x70, 0x7,0x34,0x6c, 0x7,0x3d,0x29, 0x4,0x59,0x4a, + 0x5,0x5f,0x50, 0x4,0x59,0x4b, 0x7,0x3d,0x2a, 0x7,0x3d,0x28, + 0x7,0x3d,0x27, 0x7,0x44,0x43, 0x5,0x65,0x58, 0x7,0x44,0x42, + 0x5,0x65,0x57, 0x5,0x6a,0x38, 0x5,0x6a,0x36, 0x5,0x6a,0x35, + 0x5,0x6a,0x37, 0x5,0x6e,0x39, 0x7,0x50,0x73, 0x7,0x50,0x74, + 0x4,0x67,0x64, 0x7,0x55,0x6a, 0x7,0x59,0x6d, 0x7,0x59,0x6e, + 0x7,0x59,0x6c, 0x5,0x76,0x61, 0x5,0x76,0x60, 0x5,0x78,0x41, + 0x7,0x5f,0x74, 0x7,0x62,0x76, 0x7,0x64,0x6a, 0x5,0x2b,0x61, + 0x5,0x30,0x6a, 0x5,0x30,0x6b, 0x5,0x30,0x69, 0xf,0x32,0x67, + 0x6,0x3c,0x66, 0x5,0x36,0x42, 0x5,0x36,0x41, 0xf,0x38,0x7a, + 0xf,0x38,0x7b, 0x6,0x45,0x7c, 0x5,0x3d,0x33, 0x5,0x3d,0x31, + 0x5,0x3d,0x2f, 0x4,0x3b,0x6a, 0x5,0x3d,0x30, 0x4,0x3b,0x6c, + 0x3,0x3f,0x6d, 0x5,0x3d,0x2c, 0x5,0x3d,0x2d, 0x5,0x3d,0x2e, + 0x6,0x4f,0x7e, 0x6,0x50,0x21, 0x5,0x3d,0x32, 0x6,0x4f,0x7c, + 0xf,0x3f,0x78, 0xf,0x3f,0x79, 0xf,0x3f,0x7a, 0xf,0x3f,0x7b, + 0xf,0x3f,0x7c, 0xf,0x3f,0x7d, 0xf,0x40,0x21, 0x6,0x4f,0x7d, + 0x4,0x3b,0x69, 0x4,0x41,0x4c, 0x6,0x59,0x5e, 0x4,0x41,0x52, + 0x4,0x41,0x4d, 0x4,0x41,0x4b, 0xf,0x45,0x7e, 0x6,0x59,0x5d, + 0x5,0x43,0x74, 0x5,0x43,0x71, 0x5,0x43,0x73, 0x5,0x43,0x72, + 0x6,0x59,0x5b, 0x4,0x41,0x51, 0x4,0x41,0x4f, 0x6,0x59,0x5c, + 0x6,0x59,0x5a, 0xf,0x45,0x7d, 0xf,0x46,0x21, 0x5,0x4a,0x73, + 0x5,0x4a,0x6f, 0x5,0x4a,0x71, 0x4,0x47,0x7e, 0x5,0x4a,0x6d, + 0x4,0x48,0x21, 0x5,0x4a,0x74, 0x6,0x63,0x5a, 0x5,0x4a,0x70, + 0x5,0x4a,0x75, 0x4,0x47,0x7d, 0x5,0x4a,0x72, 0x5,0x4a,0x76, + 0x6,0x63,0x59, 0x6,0x63,0x5b, 0x6,0x63,0x5c, 0x5,0x4a,0x6c, + 0x7,0x2a,0x48, 0x5,0x52,0x2d, 0x5,0x52,0x28, 0x7,0x2a,0x4d, + 0x5,0x52,0x2a, 0x5,0x52,0x27, 0x7,0x2a,0x4e, 0x4,0x4e,0x49, + 0x5,0x52,0x2c, 0x5,0x52,0x29, 0x7,0x2a,0x4c, 0xf,0x52,0x6e, + 0xf,0x52,0x6f, 0xf,0x52,0x71, 0x7,0x2a,0x47, 0x7,0x2a,0x49, + 0x7,0x2a,0x4a, 0x7,0x2a,0x4b, 0x5,0x52,0x26, 0x5,0x52,0x2b, + 0x5,0x52,0x2e, 0xf,0x52,0x70, 0x4,0x54,0x50, 0x4,0x54,0x4d, + 0x5,0x59,0x3d, 0x5,0x59,0x40, 0x7,0x34,0x72, 0x5,0x59,0x3c, + 0x5,0x59,0x3e, 0x5,0x59,0x3f, 0x7,0x34,0x75, 0x7,0x34,0x77, + 0x7,0x34,0x79, 0xf,0x58,0x66, 0xf,0x58,0x67, 0xf,0x58,0x68, + 0x7,0x34,0x74, 0x7,0x34,0x78, 0x7,0x34,0x76, 0x4,0x54,0x4e, + 0x4,0x59,0x53, 0x4,0x59,0x51, 0x5,0x5f,0x54, 0x7,0x3d,0x2b, + 0x5,0x5f,0x51, 0x5,0x5f,0x53, 0x5,0x5f,0x55, 0x5,0x5f,0x52, + 0x7,0x3d,0x2d, 0x4,0x59,0x50, 0x7,0x3d,0x2c, 0x4,0x59,0x4c, + 0x7,0x3d,0x2e, 0xf,0x5d,0x50, 0x7,0x3d,0x2f, 0x7,0x3d,0x30, + 0x7,0x3d,0x31, 0x5,0x65,0x5f, 0x5,0x65,0x5e, 0x5,0x65,0x5a, + 0x4,0x5e,0x33, 0x7,0x44,0x44, 0x5,0x65,0x5b, 0x5,0x65,0x61, + 0x5,0x65,0x60, 0x7,0x44,0x46, 0x5,0x65,0x5d, 0x5,0x65,0x59, + 0x5,0x65,0x5c, 0xf,0x61,0x47, 0xf,0x61,0x48, 0xf,0x61,0x49, + 0xf,0x61,0x4c, 0xf,0x61,0x4b, 0x7,0x44,0x45, 0x7,0x44,0x47, + 0x5,0x6a,0x39, 0x7,0x4b,0x3e, 0x7,0x4b,0x3f, 0x4,0x61,0x6d, + 0x5,0x6a,0x3a, 0x7,0x4b,0x3d, 0x4,0x61,0x6e, 0xf,0x64,0x46, + 0xf,0x64,0x47, 0xf,0x64,0x48, 0xf,0x64,0x49, 0xf,0x64,0x4a, + 0x4,0x64,0x70, 0x5,0x6e,0x3f, 0x5,0x6e,0x3a, 0x5,0x6e,0x3d, + 0x5,0x6e,0x3c, 0x5,0x6e,0x3e, 0x5,0x6e,0x40, 0x4,0x64,0x72, + 0x7,0x50,0x78, 0x5,0x6a,0x3b, 0x7,0x50,0x75, 0xf,0x66,0x70, + 0xf,0x66,0x71, 0x7,0x50,0x76, 0x5,0x6e,0x3b, 0x7,0x50,0x77, + 0x5,0x71,0x5a, 0x5,0x6e,0x41, 0x4,0x67,0x65, 0x5,0x71,0x59, + 0x5,0x71,0x57, 0xf,0x68,0x70, 0xf,0x68,0x71, 0xf,0x68,0x73, + 0xf,0x68,0x74, 0xf,0x68,0x75, 0x5,0x71,0x5c, 0x5,0x71,0x58, + 0x5,0x74,0x58, 0x7,0x55,0x6b, 0xf,0x6a,0x2f, 0x7,0x59,0x6f, + 0xf,0x6a,0x2c, 0xf,0x6a,0x2d, 0xf,0x6a,0x2e, 0xf,0x6a,0x30, + 0xf,0x6a,0x31, 0xf,0x6b,0x30, 0xf,0x6b,0x31, 0xf,0x6b,0x32, + 0x7,0x5d,0x32, 0x5,0x78,0x42, 0xf,0x6b,0x6e, 0xf,0x6b,0x6f, + 0x7,0x5f,0x76, 0x7,0x5f,0x75, 0x5,0x79,0x54, 0x4,0x6d,0x29, + 0x4,0x6d,0x2a, 0x7,0x61,0x59, 0x7,0x62,0x77, 0x7,0x62,0x78, + 0x5,0x7a,0x7d, 0xf,0x6d,0x2a, 0x6,0x2e,0x45, 0x5,0x22,0x22, + 0x5,0x21,0x7e, 0x4,0x22,0x23, 0x5,0x22,0x23, 0x4,0x22,0x22, + 0x5,0x22,0x21, 0x5,0x23,0x2e, 0x4,0x23,0x34, 0x6,0x25,0x5d, + 0x5,0x24,0x7d, 0x4,0x25,0x2c, 0x4,0x25,0x2d, 0x5,0x24,0x7e, + 0x5,0x24,0x7c, 0xf,0x25,0x3a, 0xf,0x25,0x3b, 0xf,0x25,0x3c, + 0xf,0x25,0x3d, 0xf,0x25,0x3e, 0xf,0x25,0x3f, 0x5,0x27,0x75, + 0x6,0x2e,0x47, 0x5,0x27,0x76, 0x5,0x27,0x78, 0x5,0x27,0x79, + 0x4,0x28,0x30, 0x5,0x27,0x77, 0x6,0x2e,0x46, 0x6,0x2e,0x48, + 0xf,0x28,0x7d, 0xf,0x28,0x7e, 0x5,0x2b,0x62, 0x6,0x34,0x70, + 0x6,0x34,0x73, 0x4,0x2b,0x5c, 0x5,0x2b,0x65, 0x6,0x34,0x71, + 0x6,0x63,0x5d, 0x6,0x34,0x75, 0x6,0x34,0x76, 0x6,0x34,0x77, + 0x6,0x34,0x72, 0x5,0x2b,0x63, 0x6,0x34,0x78, 0xf,0x2d,0x5b, + 0xf,0x2d,0x5c, 0xf,0x2d,0x5d, 0x6,0x34,0x74, 0x6,0x34,0x6f, + 0x6,0x3c,0x69, 0x5,0x30,0x6f, 0x5,0x2b,0x66, 0x6,0x3c,0x68, + 0x5,0x30,0x6c, 0x5,0x30,0x6e, 0x6,0x3c,0x6e, 0x6,0x3c,0x6b, + 0x6,0x3c,0x6f, 0x5,0x30,0x6d, 0x6,0x3c,0x6a, 0x6,0x3c,0x6d, + 0x6,0x3c,0x6c, 0xf,0x32,0x68, 0xf,0x32,0x69, 0xf,0x32,0x6a, + 0xf,0x32,0x6b, 0xf,0x32,0x6c, 0xf,0x32,0x6d, 0xf,0x32,0x6e, + 0x5,0x36,0x43, 0x6,0x46,0x28, 0x6,0x46,0x21, 0x4,0x35,0x7e, + 0x4,0x36,0x22, 0x4,0x36,0x21, 0x5,0x36,0x44, 0x6,0x46,0x23, + 0x6,0x46,0x24, 0x6,0x46,0x2b, 0x6,0x46,0x2a, 0x6,0x63,0x5e, + 0x6,0x46,0x26, 0x6,0x46,0x22, 0x6,0x46,0x29, 0x6,0x46,0x27, + 0x7,0x34,0x7b, 0x6,0x46,0x25, 0xf,0x38,0x7c, 0xf,0x38,0x7d, + 0xf,0x38,0x7e, 0xf,0x39,0x21, 0xf,0x39,0x22, 0xf,0x39,0x23, + 0xf,0x39,0x24, 0xf,0x39,0x25, 0xf,0x39,0x26, 0xf,0x39,0x27, + 0x5,0x3d,0x38, 0x5,0x3d,0x3d, 0x5,0x3d,0x39, 0x5,0x3d,0x3a, + 0x5,0x3d,0x3c, 0x6,0x50,0x25, 0x6,0x50,0x23, 0x5,0x3d,0x34, + 0x5,0x3d,0x35, 0x5,0x3d,0x37, 0x6,0x50,0x24, 0x6,0x50,0x29, + 0x7,0x3d,0x34, 0x6,0x50,0x27, 0x5,0x3d,0x3b, 0x6,0x50,0x28, + 0x6,0x50,0x26, 0xf,0x40,0x22, 0xf,0x40,0x23, 0x7,0x3d,0x32, + 0x5,0x3d,0x36, 0x6,0x59,0x6a, 0x5,0x43,0x7b, 0x5,0x43,0x78, + 0x6,0x59,0x62, 0x6,0x59,0x69, 0x6,0x59,0x67, 0x5,0x43,0x7c, + 0x5,0x43,0x79, 0x5,0x43,0x77, 0x6,0x63,0x5f, 0x6,0x59,0x63, + 0x6,0x59,0x65, 0x5,0x43,0x7d, 0x5,0x43,0x7a, 0x6,0x59,0x66, + 0x7,0x44,0x49, 0x6,0x59,0x64, 0x7,0x44,0x48, 0x5,0x43,0x76, + 0x6,0x59,0x5f, 0x6,0x59,0x6b, 0x6,0x59,0x60, 0x5,0x43,0x75, + 0x6,0x59,0x61, 0xf,0x46,0x22, 0xf,0x46,0x23, 0xf,0x46,0x24, + 0xf,0x46,0x25, 0xf,0x46,0x26, 0xf,0x46,0x27, 0xf,0x46,0x28, + 0xf,0x46,0x29, 0x6,0x59,0x68, 0x6,0x59,0x6c, 0x7,0x3d,0x33, + 0x6,0x63,0x64, 0x6,0x63,0x62, 0x6,0x63,0x66, 0x4,0x48,0x27, + 0x4,0x48,0x26, 0x5,0x52,0x2f, 0x4,0x48,0x28, 0x4,0x48,0x29, + 0x5,0x4a,0x78, 0x6,0x63,0x63, 0x6,0x63,0x60, 0x4,0x48,0x25, + 0x5,0x4a,0x79, 0x5,0x4a,0x7a, 0x6,0x63,0x65, 0x6,0x63,0x67, + 0x7,0x4b,0x41, 0xf,0x4d,0x2e, 0xf,0x4d,0x2f, 0xf,0x4d,0x30, + 0xf,0x4d,0x31, 0xf,0x4d,0x32, 0xf,0x4d,0x33, 0x6,0x63,0x61, + 0x5,0x4a,0x77, 0x5,0x52,0x36, 0x5,0x52,0x34, 0x5,0x52,0x35, + 0x7,0x2a,0x55, 0x5,0x52,0x38, 0x5,0x52,0x32, 0x5,0x52,0x31, + 0x7,0x2a,0x4f, 0x5,0x52,0x33, 0x5,0x52,0x37, 0x5,0x52,0x30, + 0x7,0x50,0x7a, 0x7,0x2a,0x53, 0x7,0x2a,0x51, 0x7,0x2a,0x50, + 0x7,0x2a,0x52, 0xf,0x52,0x72, 0xf,0x52,0x73, 0xf,0x52,0x74, + 0xf,0x52,0x75, 0xf,0x52,0x76, 0xf,0x52,0x77, 0x7,0x2a,0x56, + 0x5,0x59,0x41, 0x5,0x59,0x42, 0x4,0x54,0x54, 0x7,0x34,0x7c, + 0x5,0x59,0x44, 0x5,0x59,0x43, 0x7,0x34,0x7e, 0x7,0x50,0x79, + 0xf,0x58,0x69, 0xf,0x58,0x6a, 0xf,0x58,0x6b, 0xf,0x58,0x6c, + 0x5,0x6a,0x3c, 0x7,0x34,0x7d, 0x5,0x5f,0x56, 0x5,0x5f,0x57, + 0x7,0x3d,0x36, 0x7,0x3d,0x37, 0x7,0x3d,0x35, 0x5,0x74,0x59, + 0xf,0x5d,0x51, 0xf,0x5d,0x52, 0xf,0x5d,0x53, 0xf,0x5d,0x54, + 0x5,0x65,0x62, 0x7,0x44,0x4c, 0x4,0x5e,0x34, 0x7,0x44,0x4a, + 0x7,0x44,0x4b, 0xf,0x61,0x4d, 0xf,0x61,0x4e, 0xf,0x61,0x4f, + 0xf,0x61,0x50, 0x5,0x6a,0x3d, 0x7,0x4b,0x43, 0x7,0x55,0x6c, + 0x7,0x4b,0x45, 0xf,0x64,0x4c, 0x5,0x78,0x43, 0x7,0x4b,0x42, + 0x7,0x4b,0x44, 0x7,0x5f,0x77, 0xf,0x66,0x72, 0xf,0x66,0x73, + 0x7,0x51,0x72, 0x5,0x71,0x5d, 0x7,0x55,0x6e, 0x7,0x55,0x6d, + 0x7,0x62,0x79, 0x7,0x62,0x7a, 0x7,0x59,0x70, 0x7,0x5d,0x49, + 0x7,0x5f,0x78, 0x5,0x7a,0x7e, 0x5,0x7b,0x21, 0x7,0x66,0x37, + 0x7,0x66,0x28, 0x6,0x59,0x6d, 0x4,0x4e,0x4b, 0x7,0x2a,0x57, + 0xf,0x52,0x79, 0xf,0x52,0x78, 0x5,0x59,0x45, 0x7,0x35,0x21, + 0x4,0x59,0x56, 0x7,0x44,0x4d, 0x7,0x44,0x4e, 0x5,0x6a,0x3e, + 0x7,0x50,0x7b, 0x6,0x3c,0x70, 0x6,0x3c,0x71, 0x6,0x3c,0x72, + 0x6,0x46,0x2c, 0x5,0x36,0x45, 0x4,0x36,0x23, 0x6,0x46,0x2e, + 0x6,0x46,0x2d, 0x6,0x46,0x30, 0x6,0x46,0x2f, 0x4,0x3b,0x70, + 0x6,0x50,0x2c, 0x4,0x3b,0x6e, 0x6,0x50,0x2a, 0x6,0x59,0x73, + 0x6,0x50,0x30, 0x6,0x50,0x2e, 0x6,0x50,0x2b, 0x4,0x3b,0x71, + 0x4,0x3b,0x6f, 0x6,0x50,0x2f, 0x6,0x50,0x2d, 0x6,0x59,0x7b, + 0x5,0x43,0x7e, 0x6,0x59,0x6e, 0x6,0x59,0x71, 0x6,0x59,0x77, + 0x6,0x59,0x75, 0x6,0x59,0x7a, 0x6,0x59,0x72, 0x6,0x59,0x70, + 0x6,0x59,0x74, 0x6,0x59,0x79, 0x6,0x59,0x78, 0x6,0x59,0x6f, + 0x6,0x59,0x76, 0x6,0x63,0x74, 0x6,0x63,0x72, 0x5,0x4a,0x7b, + 0x6,0x63,0x6b, 0x6,0x63,0x6c, 0x6,0x63,0x76, 0x6,0x63,0x68, + 0x6,0x63,0x77, 0x6,0x63,0x70, 0x4,0x48,0x2a, 0x6,0x63,0x75, + 0x6,0x63,0x6f, 0x5,0x4a,0x7c, 0x6,0x63,0x71, 0x6,0x63,0x69, + 0x5,0x4a,0x7d, 0x4,0x48,0x2b, 0x6,0x63,0x6a, 0xf,0x4d,0x34, + 0xf,0x4d,0x35, 0x6,0x63,0x73, 0x6,0x63,0x78, 0x6,0x63,0x6d, + 0x7,0x2a,0x5d, 0x7,0x2a,0x5b, 0x7,0x2a,0x64, 0x7,0x2a,0x5f, + 0x7,0x2a,0x5c, 0x5,0x52,0x3a, 0x7,0x2a,0x5e, 0x7,0x2a,0x66, + 0x7,0x2a,0x62, 0x7,0x2a,0x60, 0x7,0x2a,0x61, 0x7,0x2a,0x63, + 0x7,0x2a,0x5a, 0x7,0x2a,0x58, 0x5,0x52,0x39, 0x7,0x2a,0x65, + 0x7,0x2a,0x67, 0x4,0x59,0x57, 0x4,0x54,0x55, 0x5,0x59,0x47, + 0x7,0x35,0x29, 0x7,0x35,0x24, 0x7,0x35,0x2f, 0x7,0x35,0x22, + 0x7,0x35,0x2d, 0x7,0x35,0x28, 0x7,0x35,0x25, 0x7,0x35,0x2c, + 0x7,0x35,0x2a, 0x7,0x35,0x26, 0x5,0x59,0x46, 0x7,0x35,0x30, + 0x4,0x54,0x56, 0x7,0x35,0x2b, 0x7,0x35,0x33, 0x7,0x35,0x27, + 0x7,0x2a,0x59, 0x7,0x35,0x34, 0x7,0x35,0x31, 0x7,0x35,0x23, + 0x7,0x35,0x32, 0xf,0x58,0x6d, 0x7,0x35,0x2e, 0xf,0x52,0x7a, + 0x4,0x59,0x59, 0x7,0x3d,0x3d, 0x7,0x3d,0x3b, 0x7,0x3d,0x45, + 0x7,0x3d,0x3c, 0x7,0x3d,0x3e, 0x7,0x3d,0x49, 0x7,0x3d,0x3a, + 0x7,0x3d,0x42, 0x7,0x3d,0x39, 0x7,0x3d,0x38, 0x7,0x3d,0x3f, + 0x5,0x5f,0x58, 0x7,0x3d,0x47, 0x7,0x3d,0x41, 0x7,0x3d,0x40, + 0x7,0x3d,0x43, 0x7,0x3d,0x48, 0x7,0x35,0x36, 0xf,0x5d,0x55, + 0xf,0x5d,0x57, 0x7,0x3d,0x44, 0x7,0x3d,0x46, 0x7,0x44,0x50, + 0x7,0x44,0x56, 0x7,0x44,0x52, 0x7,0x44,0x53, 0x7,0x44,0x4f, + 0x5,0x65,0x63, 0x7,0x44,0x57, 0x7,0x44,0x55, 0x5,0x65,0x64, + 0x7,0x44,0x51, 0x7,0x44,0x54, 0x7,0x4b,0x4a, 0x7,0x4b,0x47, + 0x7,0x4b,0x4b, 0x7,0x4b,0x48, 0x5,0x6a,0x3f, 0x7,0x4b,0x4e, + 0x4,0x61,0x6f, 0x5,0x6a,0x40, 0x7,0x4b,0x46, 0x7,0x4b,0x4c, + 0x7,0x4b,0x4d, 0x4,0x61,0x70, 0x7,0x4b,0x49, 0x7,0x4b,0x4f, + 0x7,0x51,0x23, 0x7,0x51,0x27, 0x7,0x50,0x7d, 0x7,0x51,0x2a, + 0x7,0x51,0x24, 0x7,0x51,0x2b, 0x7,0x51,0x28, 0x7,0x50,0x7c, + 0x5,0x6e,0x42, 0x7,0x51,0x25, 0x7,0x51,0x26, 0x5,0x6e,0x43, + 0x7,0x51,0x22, 0xf,0x66,0x74, 0x7,0x50,0x7e, 0x7,0x51,0x2c, + 0x7,0x51,0x29, 0x7,0x55,0x74, 0x4,0x67,0x68, 0x7,0x55,0x72, + 0x7,0x55,0x6f, 0x7,0x55,0x76, 0x7,0x55,0x70, 0x7,0x55,0x75, + 0x7,0x55,0x73, 0x7,0x55,0x77, 0x7,0x51,0x21, 0xf,0x68,0x76, + 0x7,0x55,0x71, 0x7,0x59,0x71, 0x7,0x59,0x72, 0x4,0x69,0x57, + 0x7,0x59,0x75, 0x7,0x59,0x76, 0x7,0x59,0x74, 0xf,0x6a,0x32, + 0x7,0x59,0x73, 0x7,0x5d,0x38, 0x7,0x5d,0x39, 0x7,0x5d,0x3a, + 0x4,0x6b,0x2b, 0x7,0x5d,0x37, 0x7,0x5d,0x33, 0x7,0x5d,0x34, + 0x7,0x5d,0x35, 0x7,0x5d,0x36, 0x7,0x5f,0x7c, 0x7,0x5f,0x7a, + 0x7,0x5f,0x7b, 0x7,0x5f,0x79, 0x7,0x61,0x5a, 0xf,0x6c,0x41, + 0x7,0x63,0x7e, 0x7,0x64,0x6b, 0x7,0x66,0x40, 0xf,0x2d,0x5e, + 0x5,0x30,0x70, 0xf,0x32,0x70, 0x6,0x46,0x32, 0x6,0x46,0x33, + 0x4,0x36,0x25, 0x6,0x46,0x31, 0xf,0x39,0x28, 0xf,0x39,0x29, + 0x5,0x3d,0x40, 0x5,0x3d,0x3e, 0x5,0x3d,0x41, 0x5,0x3d,0x3f, + 0x4,0x3b,0x73, 0x6,0x50,0x33, 0x4,0x3b,0x72, 0x6,0x50,0x32, + 0xf,0x40,0x25, 0xf,0x40,0x27, 0xf,0x40,0x26, 0x4,0x41,0x58, + 0x5,0x44,0x25, 0x5,0x44,0x22, 0x5,0x44,0x21, 0x5,0x44,0x24, + 0x5,0x44,0x23, 0x6,0x59,0x7c, 0xf,0x46,0x2b, 0xf,0x46,0x2c, + 0xf,0x46,0x2d, 0x5,0x44,0x26, 0x5,0x4b,0x22, 0x4,0x48,0x30, + 0x5,0x4b,0x23, 0x5,0x4b,0x21, 0x5,0x4a,0x7e, 0x4,0x48,0x2c, + 0x4,0x48,0x2f, 0x6,0x63,0x7d, 0x4,0x48,0x32, 0x6,0x63,0x7c, + 0x6,0x63,0x7e, 0xf,0x4d,0x37, 0xf,0x4d,0x38, 0x6,0x63,0x7a, + 0x6,0x63,0x79, 0x7,0x2a,0x6a, 0x7,0x2a,0x69, 0x5,0x52,0x45, + 0x5,0x52,0x40, 0x5,0x52,0x41, 0x5,0x52,0x3f, 0x5,0x52,0x3e, + 0x5,0x52,0x43, 0x5,0x52,0x3d, 0x4,0x54,0x57, 0x5,0x52,0x3c, + 0x7,0x2a,0x6b, 0x7,0x2a,0x6c, 0xf,0x46,0x2a, 0xf,0x52,0x7b, + 0xf,0x52,0x7c, 0xf,0x52,0x7d, 0xf,0x52,0x7e, 0xf,0x53,0x21, + 0x7,0x2a,0x68, 0x5,0x52,0x44, 0x5,0x52,0x42, 0x5,0x5f,0x59, + 0x7,0x35,0x3b, 0x4,0x54,0x5b, 0x5,0x59,0x4e, 0x5,0x59,0x4b, + 0x4,0x54,0x5a, 0x7,0x35,0x38, 0x5,0x59,0x4d, 0x5,0x59,0x4a, + 0x7,0x35,0x3a, 0x5,0x59,0x49, 0x7,0x35,0x39, 0x7,0x35,0x37, + 0x5,0x59,0x48, 0x7,0x35,0x3c, 0xf,0x58,0x6e, 0xf,0x58,0x6f, + 0xf,0x58,0x71, 0xf,0x58,0x72, 0xf,0x58,0x73, 0xf,0x58,0x74, + 0xf,0x58,0x75, 0xf,0x58,0x70, 0xf,0x55,0x64, 0x5,0x59,0x4c, + 0x4,0x59,0x5c, 0x4,0x59,0x5a, 0x4,0x59,0x5b, 0x5,0x5f,0x5a, + 0x4,0x59,0x61, 0x5,0x5f,0x5c, 0x4,0x59,0x5e, 0x7,0x3d,0x4a, + 0x5,0x65,0x68, 0x7,0x3d,0x4b, 0x7,0x3d,0x4d, 0x5,0x5f,0x5b, + 0xf,0x5d,0x59, 0x7,0x3d,0x4c, 0x7,0x3d,0x4e, 0xf,0x5d,0x5a, + 0x5,0x5f,0x5d, 0x5,0x65,0x6c, 0x5,0x65,0x6f, 0x7,0x44,0x5f, + 0x7,0x44,0x63, 0x5,0x65,0x69, 0x7,0x44,0x5e, 0x5,0x65,0x66, + 0x7,0x44,0x65, 0x7,0x44,0x62, 0x4,0x5e,0x37, 0x5,0x65,0x65, + 0x5,0x65,0x67, 0x7,0x44,0x61, 0x7,0x44,0x5a, 0x7,0x44,0x5d, + 0x5,0x65,0x6e, 0x7,0x44,0x5b, 0xf,0x61,0x51, 0x7,0x44,0x64, + 0x7,0x44,0x59, 0x7,0x44,0x5c, 0x5,0x65,0x6b, 0x5,0x65,0x6d, + 0xf,0x5d,0x58, 0x5,0x65,0x6a, 0x5,0x6a,0x47, 0x5,0x6a,0x41, + 0x5,0x6a,0x45, 0x5,0x6a,0x42, 0x5,0x6a,0x43, 0x4,0x61,0x72, + 0x5,0x6a,0x46, 0x5,0x6a,0x44, 0x5,0x6a,0x49, 0x4,0x61,0x71, + 0x7,0x4b,0x50, 0x7,0x4b,0x55, 0x7,0x4b,0x51, 0x5,0x6a,0x48, + 0x7,0x4b,0x53, 0xf,0x64,0x4e, 0x7,0x4b,0x57, 0x7,0x4b,0x56, + 0x7,0x4b,0x54, 0x7,0x4b,0x52, 0x7,0x4b,0x58, 0x7,0x51,0x2e, + 0x4,0x64,0x74, 0x7,0x51,0x36, 0x4,0x64,0x76, 0x5,0x6e,0x44, + 0x4,0x67,0x6d, 0x4,0x64,0x78, 0x7,0x51,0x34, 0x7,0x51,0x33, + 0x5,0x6e,0x45, 0x4,0x64,0x7a, 0x4,0x64,0x77, 0x4,0x64,0x79, + 0x7,0x51,0x2f, 0x7,0x51,0x31, 0x7,0x51,0x32, 0xf,0x66,0x75, + 0x7,0x51,0x35, 0x7,0x51,0x37, 0x7,0x51,0x30, 0x7,0x51,0x2d, + 0x4,0x67,0x6a, 0x4,0x67,0x69, 0x7,0x55,0x78, 0x5,0x71,0x5e, + 0x5,0x71,0x5f, 0x4,0x67,0x6b, 0x4,0x67,0x6c, 0x7,0x55,0x7a, + 0x5,0x71,0x60, 0x5,0x71,0x61, 0x7,0x55,0x7d, 0x7,0x55,0x79, + 0x7,0x55,0x7e, 0x7,0x55,0x7b, 0x5,0x74,0x5c, 0x5,0x74,0x5f, + 0x4,0x69,0x59, 0x7,0x59,0x78, 0x5,0x74,0x5d, 0x7,0x59,0x79, + 0x7,0x59,0x7a, 0x5,0x74,0x5a, 0x5,0x74,0x5e, 0x5,0x74,0x5b, + 0x7,0x59,0x77, 0x5,0x76,0x62, 0x7,0x5d,0x3b, 0x7,0x5d,0x3c, + 0xf,0x6b,0x33, 0x5,0x76,0x63, 0x5,0x78,0x44, 0x4,0x6c,0x32, + 0x4,0x6c,0x31, 0x7,0x5f,0x7d, 0x7,0x5f,0x7e, 0x7,0x60,0x21, + 0xf,0x6b,0x70, 0x4,0x6d,0x2c, 0x5,0x79,0x56, 0x4,0x6d,0x2b, + 0x5,0x79,0x55, 0x7,0x61,0x5b, 0x5,0x79,0x57, 0x5,0x7a,0x44, + 0x7,0x62,0x7b, 0x5,0x7a,0x43, 0x7,0x62,0x7c, 0xf,0x6c,0x59, + 0x7,0x63,0x23, 0x5,0x7a,0x42, 0x7,0x64,0x6c, 0x4,0x6e,0x3e, + 0x7,0x65,0x4b, 0x7,0x65,0x4a, 0x7,0x65,0x4c, 0x5,0x7b,0x6c, + 0x7,0x66,0x2d, 0x7,0x66,0x4e, 0x7,0x66,0x51, 0x4,0x6e,0x5c, + 0x4,0x36,0x26, 0x6,0x50,0x34, 0xf,0x46,0x2e, 0xf,0x46,0x2f, + 0xf,0x46,0x30, 0x6,0x59,0x7d, 0x4,0x48,0x36, 0x7,0x2c,0x44, + 0x7,0x35,0x3d, 0x5,0x5a,0x74, 0x7,0x44,0x66, 0xf,0x64,0x4f, + 0x5,0x71,0x62, 0xf,0x6b,0x71, 0x6,0x3c,0x74, 0x6,0x2e,0x49, + 0x6,0x3c,0x73, 0x4,0x36,0x27, 0x6,0x46,0x34, 0x4,0x36,0x29, + 0xf,0x39,0x2d, 0x6,0x50,0x35, 0x5,0x3d,0x42, 0x4,0x3b,0x75, + 0x6,0x50,0x37, 0x6,0x50,0x36, 0xf,0x40,0x28, 0xf,0x40,0x29, + 0x6,0x5a,0x21, 0x6,0x59,0x7e, 0xf,0x4d,0x3b, 0x4,0x4e,0x4d, + 0x7,0x2a,0x6e, 0x7,0x2a,0x6d, 0x7,0x35,0x3e, 0x7,0x51,0x38, + 0x7,0x51,0x39, 0x6,0x50,0x39, 0x6,0x50,0x3a, 0x6,0x50,0x38, + 0x4,0x41,0x59, 0x4,0x41,0x5b, 0x5,0x44,0x28, 0x5,0x44,0x27, + 0x6,0x5a,0x23, 0x6,0x5a,0x22, 0x6,0x64,0x22, 0x5,0x4b,0x25, + 0x4,0x48,0x39, 0x6,0x64,0x21, 0x5,0x4b,0x24, 0xf,0x4d,0x3c, + 0x6,0x64,0x23, 0x4,0x4e,0x4e, 0x5,0x52,0x46, 0x5,0x52,0x48, + 0x5,0x52,0x47, 0x7,0x2a,0x70, 0x7,0x2a,0x6f, 0xf,0x58,0x77, + 0x5,0x59,0x50, 0x5,0x59,0x4f, 0x5,0x59,0x54, 0x5,0x59,0x51, + 0x5,0x59,0x52, 0x5,0x59,0x53, 0xf,0x58,0x76, 0x7,0x35,0x3f, + 0x7,0x3d,0x4f, 0x5,0x5f,0x5f, 0x5,0x5f,0x60, 0x5,0x5f,0x62, + 0x5,0x5f,0x61, 0xf,0x5d,0x5b, 0x7,0x3d,0x51, 0x5,0x65,0x72, + 0x7,0x44,0x67, 0x5,0x65,0x70, 0x5,0x65,0x71, 0x4,0x5e,0x39, + 0x5,0x6a,0x4b, 0x5,0x6a,0x4a, 0x5,0x6e,0x47, 0x5,0x6e,0x46, + 0x7,0x4d,0x50, 0x7,0x51,0x3a, 0x5,0x6c,0x46, 0x5,0x71,0x64, + 0x7,0x56,0x22, 0x5,0x71,0x66, 0x5,0x71,0x65, 0xf,0x68,0x79, + 0x7,0x56,0x21, 0x7,0x56,0x24, 0x7,0x56,0x23, 0x7,0x59,0x7b, + 0x7,0x59,0x7c, 0x7,0x5d,0x3d, 0x5,0x76,0x64, 0xf,0x6b,0x34, + 0x7,0x60,0x22, 0x5,0x7a,0x45, 0x7,0x64,0x21, 0x7,0x64,0x6e, + 0x7,0x64,0x6d, 0xf,0x39,0x2e, 0x5,0x3d,0x43, 0x4,0x3b,0x78, + 0x6,0x50,0x3b, 0x5,0x44,0x2c, 0x5,0x44,0x2b, 0x6,0x5a,0x26, + 0x6,0x5a,0x29, 0x5,0x44,0x2a, 0x6,0x5a,0x27, 0x5,0x44,0x29, + 0x6,0x5a,0x25, 0x6,0x5a,0x2b, 0x6,0x5a,0x2a, 0x4,0x41,0x5c, + 0x4,0x41,0x5e, 0xf,0x46,0x31, 0x5,0x4b,0x27, 0x4,0x48,0x3c, + 0x5,0x4b,0x26, 0x6,0x64,0x27, 0x6,0x64,0x25, 0x5,0x4b,0x28, + 0x5,0x4b,0x29, 0x4,0x48,0x3e, 0x5,0x4b,0x2c, 0x5,0x4b,0x2a, + 0x5,0x4b,0x2d, 0x5,0x4b,0x2b, 0x6,0x64,0x29, 0x4,0x48,0x3f, + 0x6,0x64,0x28, 0x6,0x64,0x24, 0x6,0x64,0x26, 0x7,0x2a,0x73, + 0x5,0x52,0x49, 0x7,0x2a,0x77, 0x7,0x2a,0x76, 0x4,0x4e,0x51, + 0x7,0x2a,0x79, 0x5,0x52,0x4a, 0x4,0x4e,0x52, 0x7,0x2a,0x75, + 0x4,0x4e,0x53, 0x5,0x52,0x4d, 0x4,0x4e,0x50, 0x5,0x52,0x4c, + 0x5,0x52,0x4e, 0x7,0x2a,0x74, 0x5,0x52,0x4b, 0x7,0x2a,0x78, + 0x7,0x2a,0x72, 0x7,0x35,0x44, 0x5,0x59,0x55, 0x5,0x59,0x58, + 0x4,0x54,0x66, 0x4,0x54,0x5e, 0x4,0x54,0x65, 0x5,0x59,0x56, + 0x5,0x59,0x57, 0x7,0x35,0x43, 0x7,0x35,0x47, 0x7,0x35,0x40, + 0x7,0x35,0x41, 0x7,0x35,0x45, 0x7,0x35,0x46, 0x7,0x3d,0x58, + 0x7,0x3d,0x5a, 0x5,0x5f,0x63, 0x5,0x5f,0x69, 0x4,0x59,0x66, + 0x5,0x5f,0x65, 0x7,0x3d,0x53, 0x4,0x59,0x67, 0x7,0x35,0x42, + 0x5,0x5f,0x6d, 0x7,0x3d,0x57, 0x4,0x59,0x65, 0x7,0x3d,0x59, + 0x5,0x5f,0x67, 0x5,0x5f,0x6a, 0x7,0x3d,0x55, 0x5,0x5f,0x6b, + 0x7,0x3d,0x5b, 0x7,0x35,0x48, 0x5,0x5f,0x68, 0x7,0x3d,0x54, + 0x7,0x3d,0x5c, 0xf,0x5d,0x5c, 0x7,0x3d,0x52, 0x5,0x5f,0x6c, + 0x5,0x5f,0x66, 0x4,0x5e,0x44, 0x5,0x65,0x7c, 0x5,0x65,0x74, + 0x4,0x5e,0x3a, 0x5,0x65,0x76, 0x5,0x66,0x22, 0x7,0x44,0x6a, + 0x7,0x44,0x68, 0x4,0x5e,0x3f, 0x5,0x65,0x77, 0x4,0x5e,0x40, + 0x7,0x44,0x6d, 0x7,0x44,0x70, 0x5,0x66,0x21, 0x7,0x44,0x6f, + 0x4,0x5e,0x3d, 0x5,0x66,0x23, 0x7,0x44,0x71, 0x7,0x44,0x72, + 0x7,0x44,0x6e, 0xf,0x61,0x53, 0xf,0x61,0x54, 0x5,0x5f,0x64, + 0x7,0x44,0x6c, 0x7,0x44,0x6b, 0x5,0x65,0x78, 0x5,0x66,0x24, + 0x7,0x44,0x69, 0x5,0x65,0x75, 0x5,0x65,0x7a, 0x5,0x65,0x79, + 0x5,0x65,0x7d, 0x4,0x61,0x7a, 0x5,0x6a,0x51, 0x5,0x6a,0x54, + 0x5,0x6a,0x4f, 0x4,0x61,0x79, 0x5,0x6a,0x4d, 0x7,0x4b,0x5a, + 0x5,0x6a,0x55, 0x7,0x4b,0x63, 0x5,0x6a,0x4e, 0x4,0x61,0x78, + 0x7,0x4b,0x61, 0x4,0x61,0x76, 0x7,0x4b,0x5e, 0x4,0x61,0x75, + 0x7,0x4b,0x62, 0x5,0x6a,0x50, 0x7,0x4b,0x60, 0xf,0x64,0x50, + 0xf,0x64,0x52, 0xf,0x64,0x53, 0x7,0x4b,0x5b, 0x7,0x4b,0x5c, + 0x5,0x6a,0x53, 0x5,0x6a,0x52, 0x7,0x4b,0x59, 0x5,0x6a,0x4c, + 0x4,0x65,0x24, 0x5,0x6e,0x4e, 0x4,0x64,0x7d, 0x5,0x6e,0x4f, + 0x5,0x6e,0x4a, 0x7,0x51,0x3b, 0x5,0x6e,0x48, 0x7,0x51,0x3d, + 0x4,0x65,0x21, 0x5,0x6e,0x4c, 0x4,0x65,0x22, 0x4,0x65,0x25, + 0x5,0x6e,0x4d, 0x7,0x51,0x41, 0x7,0x51,0x3c, 0xf,0x66,0x78, + 0x7,0x51,0x3e, 0x7,0x51,0x43, 0x7,0x51,0x40, 0x5,0x6e,0x4b, + 0x7,0x51,0x3f, 0x5,0x6e,0x50, 0x4,0x65,0x26, 0x7,0x51,0x42, + 0x5,0x71,0x6d, 0x7,0x56,0x28, 0x4,0x67,0x6f, 0x7,0x56,0x2a, + 0x7,0x56,0x2b, 0x5,0x71,0x6a, 0x5,0x71,0x6b, 0x5,0x71,0x6c, + 0x5,0x71,0x67, 0x5,0x71,0x68, 0x7,0x56,0x29, 0xf,0x66,0x77, + 0x5,0x74,0x60, 0x7,0x5a,0x26, 0x7,0x59,0x7d, 0x4,0x69,0x5d, + 0x5,0x74,0x61, 0x7,0x5a,0x25, 0x7,0x5a,0x23, 0x7,0x59,0x7e, + 0x7,0x5a,0x24, 0x5,0x74,0x63, 0x5,0x74,0x64, 0x7,0x5a,0x21, + 0x7,0x5a,0x22, 0x5,0x74,0x65, 0x5,0x76,0x65, 0x5,0x76,0x68, + 0x5,0x76,0x66, 0x7,0x5d,0x3e, 0x5,0x76,0x69, 0x5,0x76,0x67, + 0x7,0x5d,0x41, 0x7,0x5d,0x3f, 0x7,0x5d,0x42, 0x7,0x5d,0x40, + 0x5,0x78,0x46, 0x5,0x79,0x58, 0x7,0x60,0x23, 0x5,0x78,0x45, + 0x5,0x78,0x47, 0x7,0x61,0x5e, 0x7,0x61,0x5c, 0x7,0x61,0x5d, + 0x5,0x7a,0x46, 0x7,0x62,0x7e, 0x7,0x63,0x22, 0x5,0x79,0x59, + 0x7,0x63,0x21, 0x7,0x62,0x7d, 0x5,0x7b,0x22, 0x7,0x64,0x70, + 0x7,0x64,0x6f, 0x5,0x7b,0x4c, 0x7,0x65,0x69, 0x5,0x7c,0x35, + 0x7,0x66,0x2e, 0x7,0x66,0x39, 0x7,0x66,0x38, 0x5,0x7c,0x4c, + 0x5,0x3d,0x44, 0x4,0x41,0x60, 0x4,0x41,0x62, 0x6,0x5a,0x2c, + 0x5,0x44,0x2d, 0x6,0x64,0x2b, 0x5,0x4b,0x2f, 0x5,0x4b,0x31, + 0x5,0x4b,0x2e, 0x5,0x4b,0x30, 0x6,0x64,0x2a, 0xf,0x4d,0x3d, + 0x5,0x4b,0x32, 0x4,0x4e,0x55, 0x5,0x52,0x50, 0x4,0x4e,0x54, + 0x4,0x4e,0x56, 0x7,0x2a,0x7b, 0x7,0x2a,0x7a, 0x7,0x2a,0x7c, + 0x7,0x2a,0x7d, 0x7,0x2a,0x7e, 0x5,0x52,0x4f, 0x5,0x52,0x51, + 0x5,0x59,0x59, 0x7,0x35,0x49, 0x7,0x35,0x4a, 0x5,0x59,0x5c, + 0x5,0x59,0x5d, 0x5,0x59,0x5b, 0x7,0x35,0x4b, 0x5,0x59,0x5a, + 0x4,0x59,0x69, 0x7,0x3d,0x5e, 0x5,0x5f,0x6e, 0x7,0x3d,0x5f, + 0x4,0x59,0x6c, 0x4,0x59,0x6a, 0x5,0x5f,0x6f, 0x5,0x5f,0x70, + 0xf,0x5d,0x5d, 0x7,0x3d,0x5d, 0x7,0x3d,0x60, 0x7,0x44,0x76, + 0x7,0x44,0x73, 0x4,0x5e,0x46, 0x7,0x44,0x74, 0x7,0x3d,0x61, + 0x5,0x66,0x25, 0x7,0x44,0x78, 0x7,0x44,0x75, 0x7,0x4b,0x64, + 0x7,0x4b,0x66, 0x7,0x4b,0x69, 0x7,0x4b,0x65, 0x7,0x4b,0x68, + 0x7,0x4b,0x67, 0x7,0x51,0x44, 0x5,0x6a,0x56, 0x5,0x6a,0x57, + 0x7,0x51,0x45, 0x7,0x51,0x46, 0x4,0x65,0x28, 0xf,0x66,0x79, + 0x5,0x6e,0x52, 0x5,0x6e,0x51, 0x5,0x71,0x6e, 0x5,0x71,0x70, + 0x5,0x71,0x72, 0x4,0x67,0x74, 0x7,0x56,0x2c, 0x5,0x71,0x6f, + 0x5,0x71,0x71, 0x7,0x5a,0x27, 0x4,0x69,0x5f, 0x5,0x74,0x66, + 0x7,0x5a,0x28, 0x7,0x5a,0x29, 0x5,0x74,0x67, 0x7,0x5d,0x43, + 0x7,0x5d,0x46, 0x7,0x5d,0x45, 0x7,0x5d,0x44, 0x4,0x6c,0x35, + 0x7,0x61,0x5f, 0x5,0x7a,0x47, 0x7,0x64,0x24, 0x7,0x64,0x22, + 0x7,0x64,0x23, 0x5,0x7b,0x4d, 0x5,0x7b,0x6d, 0x5,0x7c,0x22, + 0x5,0x44,0x2e, 0x6,0x5a,0x2d, 0x5,0x52,0x52, 0x7,0x35,0x4c, + 0x4,0x59,0x6d, 0x7,0x3d,0x62, 0x7,0x4b,0x6c, 0x7,0x51,0x48, + 0x4,0x65,0x2b, 0x5,0x71,0x73, 0x7,0x51,0x47, 0x7,0x56,0x2d, + 0x7,0x5a,0x2a, 0x7,0x5d,0x48, 0x7,0x5d,0x47, 0x7,0x61,0x60, + 0xf,0x40,0x2c, 0x5,0x44,0x30, 0x5,0x44,0x2f, 0x5,0x4b,0x33, + 0x4,0x48,0x45, 0x5,0x4b,0x34, 0x5,0x52,0x5a, 0x7,0x2b,0x21, + 0x5,0x52,0x54, 0x5,0x52,0x57, 0x7,0x2b,0x22, 0x5,0x52,0x55, + 0x5,0x52,0x56, 0x5,0x52,0x59, 0x5,0x52,0x53, 0x4,0x54,0x6b, + 0x5,0x52,0x58, 0xf,0x58,0x79, 0x5,0x59,0x5e, 0x7,0x35,0x4d, + 0x7,0x3d,0x63, 0x5,0x5f,0x71, 0x5,0x5f,0x72, 0x5,0x66,0x26, + 0x5,0x66,0x27, 0x5,0x66,0x28, 0x4,0x62,0x21, 0x5,0x6a,0x58, + 0x5,0x6a,0x59, 0x7,0x51,0x49, 0x7,0x51,0x4a, 0x5,0x6e,0x54, + 0x5,0x6e,0x53, 0x5,0x6e,0x55, 0x7,0x56,0x2e, 0x5,0x71,0x74, + 0x5,0x66,0x29, 0x5,0x74,0x68, 0x5,0x74,0x69, 0x4,0x69,0x61, + 0xf,0x6a,0x33, 0x7,0x5d,0x4a, 0x4,0x6c,0x36, 0x5,0x7b,0x23, + 0x5,0x7c,0x3f, 0x6,0x34,0x7b, 0x6,0x46,0x35, 0x5,0x36,0x46, + 0x5,0x3d,0x4a, 0x5,0x3d,0x48, 0x5,0x3d,0x49, 0x5,0x3d,0x46, + 0x4,0x3b,0x7d, 0x5,0x3d,0x45, 0x4,0x3b,0x7c, 0x6,0x50,0x3c, + 0x4,0x3b,0x7a, 0x4,0x41,0x6c, 0x5,0x44,0x3a, 0x4,0x41,0x6b, + 0x5,0x44,0x31, 0x5,0x44,0x39, 0x6,0x5a,0x2f, 0x4,0x41,0x69, + 0x5,0x4b,0x3b, 0x5,0x44,0x37, 0x4,0x41,0x66, 0x4,0x41,0x67, + 0x4,0x41,0x6a, 0x6,0x5a,0x32, 0x5,0x44,0x36, 0x5,0x44,0x32, + 0x6,0x5a,0x30, 0x6,0x5a,0x31, 0x6,0x5a,0x2e, 0xf,0x46,0x33, + 0x5,0x44,0x33, 0x5,0x44,0x38, 0x5,0x4b,0x3d, 0x6,0x64,0x31, + 0x6,0x64,0x32, 0x5,0x4b,0x37, 0x5,0x4b,0x44, 0x5,0x4b,0x38, + 0x4,0x48,0x49, 0x4,0x48,0x48, 0x5,0x4b,0x3a, 0x5,0x4b,0x36, + 0x4,0x48,0x4f, 0x5,0x4b,0x42, 0x5,0x4b,0x39, 0x7,0x2b,0x2b, + 0x5,0x4b,0x43, 0x6,0x64,0x35, 0x6,0x64,0x33, 0x6,0x64,0x2e, + 0x5,0x4b,0x3c, 0x5,0x4b,0x41, 0xf,0x4d,0x3e, 0x6,0x64,0x2d, + 0x5,0x4b,0x40, 0x6,0x64,0x2c, 0x6,0x64,0x36, 0x5,0x4b,0x35, + 0x6,0x64,0x2f, 0x6,0x64,0x34, 0x5,0x52,0x5d, 0x4,0x4e,0x5b, + 0x7,0x2b,0x25, 0x7,0x2b,0x30, 0x5,0x52,0x5c, 0x5,0x52,0x5b, + 0x4,0x4e,0x58, 0x7,0x2b,0x24, 0x7,0x2b,0x2a, 0x4,0x48,0x4a, + 0x7,0x2b,0x2e, 0x5,0x52,0x5e, 0x4,0x4e,0x5e, 0x7,0x2b,0x2d, + 0x7,0x2b,0x29, 0x7,0x35,0x4f, 0x7,0x2b,0x2c, 0xf,0x53,0x23, + 0xf,0x53,0x24, 0x7,0x2b,0x27, 0x7,0x2b,0x28, 0x7,0x2b,0x2f, + 0x7,0x2b,0x31, 0x7,0x2b,0x23, 0x7,0x2b,0x26, 0x5,0x52,0x5f, + 0x4,0x54,0x6c, 0x5,0x59,0x61, 0x4,0x54,0x6e, 0x5,0x59,0x69, + 0x7,0x35,0x58, 0x5,0x59,0x68, 0x5,0x59,0x66, 0x7,0x35,0x59, + 0x7,0x35,0x57, 0x5,0x59,0x65, 0x5,0x59,0x63, 0x7,0x35,0x5b, + 0x7,0x35,0x50, 0x5,0x59,0x6a, 0x5,0x59,0x62, 0x5,0x59,0x6b, + 0x5,0x59,0x64, 0x5,0x59,0x67, 0x4,0x54,0x71, 0x7,0x35,0x4e, + 0x5,0x59,0x60, 0x7,0x35,0x5a, 0x4,0x54,0x72, 0x7,0x35,0x56, + 0x7,0x35,0x5c, 0xf,0x4d,0x40, 0xf,0x58,0x7a, 0xf,0x58,0x7c, + 0xf,0x58,0x7d, 0xf,0x59,0x21, 0xf,0x59,0x22, 0xf,0x59,0x23, + 0x7,0x35,0x52, 0x7,0x35,0x53, 0x7,0x35,0x54, 0x7,0x35,0x55, + 0x5,0x59,0x6c, 0x5,0x59,0x5f, 0xf,0x58,0x7e, 0x5,0x59,0x6d, + 0x4,0x59,0x75, 0x4,0x59,0x71, 0x4,0x59,0x6e, 0x7,0x3d,0x65, + 0x5,0x5f,0x77, 0x4,0x59,0x79, 0x5,0x5f,0x78, 0x4,0x59,0x74, + 0x5,0x5f,0x76, 0x5,0x5f,0x73, 0x5,0x5f,0x75, 0x4,0x59,0x6f, + 0x5,0x5f,0x7b, 0x7,0x3d,0x6a, 0x4,0x59,0x72, 0x7,0x3d,0x6c, + 0x5,0x5f,0x74, 0x7,0x3d,0x67, 0x4,0x59,0x78, 0x7,0x3d,0x6b, + 0xf,0x5d,0x5e, 0xf,0x5d,0x5f, 0xf,0x5d,0x60, 0xf,0x5d,0x61, + 0xf,0x5d,0x62, 0xf,0x5d,0x63, 0x7,0x3d,0x64, 0x7,0x3d,0x66, + 0x5,0x5f,0x79, 0x5,0x5f,0x7a, 0x7,0x3d,0x68, 0x7,0x3d,0x6d, + 0x5,0x66,0x2a, 0x4,0x5e,0x4a, 0x5,0x66,0x30, 0x5,0x66,0x2e, + 0x4,0x62,0x24, 0x5,0x66,0x2d, 0x5,0x66,0x2b, 0x7,0x44,0x7b, + 0x5,0x66,0x2c, 0x4,0x5e,0x48, 0x5,0x66,0x31, 0x5,0x66,0x2f, + 0x7,0x44,0x7c, 0xf,0x61,0x55, 0xf,0x61,0x56, 0xf,0x61,0x57, + 0xf,0x61,0x58, 0x7,0x44,0x79, 0x7,0x44,0x7a, 0x7,0x4b,0x76, + 0x5,0x6a,0x5d, 0x7,0x4b,0x70, 0x7,0x4b,0x6d, 0x5,0x6a,0x5e, + 0x4,0x62,0x2e, 0x7,0x4b,0x72, 0x5,0x6a,0x5c, 0x5,0x6e,0x56, + 0x5,0x6a,0x5b, 0x5,0x6a,0x5a, 0x7,0x4b,0x74, 0x7,0x4b,0x6f, + 0x4,0x62,0x2a, 0x7,0x4b,0x6e, 0x7,0x4b,0x75, 0x7,0x4b,0x71, + 0xf,0x64,0x54, 0xf,0x64,0x55, 0x7,0x4b,0x77, 0x7,0x4b,0x73, + 0x4,0x65,0x2e, 0x4,0x65,0x2d, 0x5,0x6e,0x5b, 0x5,0x6e,0x59, + 0x7,0x51,0x4e, 0x5,0x6e,0x5a, 0x4,0x65,0x32, 0x7,0x51,0x4d, + 0x4,0x65,0x33, 0x5,0x6e,0x58, 0x7,0x51,0x4b, 0x7,0x51,0x4f, + 0xf,0x66,0x7a, 0x4,0x65,0x34, 0x7,0x51,0x50, 0x7,0x51,0x4c, + 0x5,0x6e,0x57, 0x7,0x50,0x4c, 0x5,0x71,0x75, 0x5,0x71,0x76, + 0x7,0x56,0x2f, 0x5,0x71,0x78, 0x7,0x56,0x38, 0x7,0x5a,0x31, + 0x4,0x67,0x7a, 0x4,0x67,0x78, 0x7,0x56,0x33, 0x7,0x56,0x31, + 0x7,0x56,0x36, 0x5,0x71,0x77, 0x5,0x71,0x79, 0x5,0x71,0x7a, + 0x7,0x56,0x30, 0x7,0x56,0x34, 0xf,0x68,0x7a, 0xf,0x68,0x7b, + 0xf,0x68,0x7c, 0x7,0x56,0x37, 0x7,0x56,0x35, 0x7,0x5a,0x30, + 0x5,0x74,0x6c, 0x5,0x74,0x6b, 0x7,0x5a,0x2d, 0x7,0x5a,0x2f, + 0x5,0x74,0x6a, 0xf,0x6a,0x34, 0x7,0x5a,0x2b, 0x7,0x5a,0x2e, + 0x7,0x5a,0x2c, 0x7,0x5d,0x52, 0x7,0x5d,0x51, 0x7,0x5d,0x4f, + 0x5,0x76,0x6c, 0x5,0x76,0x6d, 0x4,0x6b,0x2e, 0x5,0x76,0x6a, + 0x7,0x5d,0x4d, 0x4,0x6b,0x2f, 0x7,0x5d,0x4e, 0xf,0x6b,0x35, + 0x7,0x5d,0x50, 0x7,0x5d,0x4c, 0x7,0x5d,0x4b, 0x4,0x6c,0x38, + 0x7,0x60,0x24, 0x5,0x76,0x6b, 0x4,0x6c,0x37, 0xf,0x6b,0x72, + 0x7,0x60,0x25, 0x4,0x6d,0x2e, 0x5,0x79,0x5a, 0x5,0x7a,0x48, + 0x7,0x63,0x24, 0x5,0x7a,0x49, 0x7,0x63,0x25, 0x7,0x63,0x26, + 0x4,0x6e,0x23, 0x7,0x64,0x25, 0x7,0x65,0x4d, 0x6,0x46,0x36, + 0x6,0x50,0x3f, 0x4,0x3c,0x21, 0x6,0x50,0x3d, 0x5,0x3d,0x4b, + 0xf,0x40,0x2e, 0x6,0x50,0x3e, 0x5,0x44,0x3b, 0x5,0x44,0x40, + 0x4,0x41,0x6f, 0x5,0x44,0x3d, 0x5,0x44,0x3e, 0x6,0x5a,0x34, + 0x6,0x5a,0x36, 0x5,0x44,0x3c, 0x4,0x41,0x70, 0x6,0x5a,0x35, + 0x6,0x53,0x33, 0x5,0x44,0x3f, 0x6,0x5a,0x37, 0x4,0x48,0x58, + 0x5,0x4b,0x48, 0x4,0x48,0x55, 0x5,0x4b,0x47, 0x5,0x4b,0x46, + 0x5,0x4b,0x45, 0x4,0x48,0x53, 0x6,0x64,0x37, 0x4,0x48,0x52, + 0x6,0x64,0x3b, 0x6,0x64,0x39, 0x6,0x64,0x38, 0x4,0x4e,0x5f, + 0x5,0x52,0x62, 0x4,0x4e,0x62, 0x7,0x2b,0x34, 0x7,0x2b,0x33, + 0x7,0x2b,0x32, 0x5,0x52,0x61, 0x7,0x2b,0x35, 0xf,0x53,0x25, + 0xf,0x53,0x26, 0x5,0x59,0x6f, 0x5,0x59,0x77, 0x5,0x59,0x70, + 0x7,0x35,0x5d, 0x7,0x35,0x60, 0x5,0x59,0x6e, 0x5,0x59,0x73, + 0x5,0x59,0x76, 0x7,0x35,0x5f, 0x7,0x35,0x61, 0x5,0x59,0x74, + 0x5,0x59,0x75, 0x7,0x35,0x5e, 0xf,0x59,0x25, 0x5,0x59,0x72, + 0x5,0x59,0x71, 0x7,0x3d,0x71, 0x4,0x5a,0x25, 0x5,0x60,0x25, + 0x5,0x60,0x26, 0x4,0x59,0x7b, 0x5,0x5f,0x7c, 0x7,0x3d,0x70, + 0x4,0x5a,0x24, 0x5,0x66,0x32, 0x5,0x60,0x22, 0x4,0x5a,0x23, + 0x5,0x5f,0x7e, 0x5,0x60,0x21, 0x5,0x60,0x24, 0x5,0x5f,0x7d, + 0x5,0x60,0x23, 0x7,0x3d,0x6e, 0xf,0x5d,0x64, 0xf,0x5d,0x65, + 0x7,0x3d,0x72, 0x7,0x3d,0x6f, 0x4,0x5e,0x53, 0x7,0x45,0x22, + 0x7,0x45,0x24, 0x5,0x66,0x37, 0x7,0x45,0x26, 0x5,0x66,0x34, + 0x5,0x66,0x38, 0x4,0x5e,0x54, 0x5,0x66,0x3a, 0x4,0x62,0x31, + 0x5,0x66,0x35, 0x7,0x45,0x25, 0x5,0x66,0x36, 0x5,0x66,0x39, + 0x5,0x66,0x33, 0xf,0x61,0x59, 0x7,0x45,0x28, 0x7,0x45,0x23, + 0x7,0x45,0x21, 0x7,0x45,0x27, 0x7,0x44,0x7d, 0x5,0x6a,0x5f, + 0x4,0x62,0x33, 0x4,0x62,0x34, 0x4,0x62,0x35, 0x5,0x6a,0x60, + 0x7,0x4b,0x79, 0xf,0x64,0x56, 0xf,0x64,0x57, 0x7,0x4b,0x78, + 0x7,0x4b,0x7a, 0x7,0x4b,0x7b, 0x7,0x4b,0x7c, 0x5,0x6e,0x5e, + 0x5,0x6e,0x61, 0x5,0x6e,0x60, 0x4,0x65,0x35, 0x5,0x6e,0x5c, + 0x4,0x65,0x37, 0x5,0x6e,0x5f, 0xf,0x66,0x7b, 0x5,0x6e,0x62, + 0x5,0x6e,0x5d, 0x4,0x65,0x38, 0x7,0x56,0x40, 0x4,0x67,0x7d, + 0x4,0x68,0x21, 0x5,0x71,0x7b, 0x7,0x56,0x39, 0x5,0x71,0x7c, + 0x7,0x56,0x3c, 0x7,0x56,0x3a, 0xf,0x68,0x7d, 0x7,0x56,0x3f, + 0x7,0x56,0x41, 0x7,0x56,0x42, 0x7,0x56,0x3d, 0x7,0x56,0x3e, + 0x7,0x56,0x3b, 0x7,0x5a,0x32, 0xf,0x6a,0x35, 0x7,0x5a,0x33, + 0x7,0x5d,0x53, 0x5,0x78,0x49, 0x4,0x6c,0x3b, 0x7,0x60,0x26, + 0x7,0x60,0x27, 0x5,0x79,0x5b, 0x7,0x61,0x61, 0x5,0x79,0x5c, + 0x4,0x6d,0x2f, 0x4,0x6d,0x66, 0x5,0x7a,0x4a, 0x5,0x7b,0x24, + 0x7,0x64,0x26, 0xf,0x6d,0x24, 0x5,0x7c,0x47, 0x7,0x66,0x55, + 0x6,0x3c,0x75, 0x5,0x40,0x39, 0x7,0x2b,0x36, 0x7,0x4b,0x7d, + 0x5,0x6a,0x61, 0x7,0x56,0x43, 0x4,0x69,0x64, 0x5,0x74,0x6d, + 0x6,0x34,0x7c, 0x6,0x34,0x7d, 0x6,0x35,0x22, 0x6,0x34,0x7e, + 0x5,0x30,0x71, 0x6,0x3c,0x76, 0x6,0x3c,0x78, 0x5,0x3d,0x4c, + 0x5,0x36,0x4a, 0x5,0x36,0x47, 0x6,0x46,0x3a, 0x6,0x46,0x38, + 0x5,0x36,0x49, 0x6,0x46,0x39, 0x6,0x46,0x3b, 0x6,0x50,0x40, + 0x5,0x36,0x48, 0x6,0x50,0x41, 0x6,0x50,0x46, 0x4,0x3c,0x22, + 0x5,0x3d,0x4d, 0x6,0x50,0x44, 0x6,0x50,0x45, 0x4,0x3c,0x26, + 0x5,0x3d,0x4e, 0x6,0x5a,0x38, 0x5,0x3d,0x4f, 0x6,0x50,0x42, + 0xf,0x40,0x2f, 0x6,0x50,0x43, 0x4,0x3c,0x23, 0x6,0x5a,0x42, + 0x6,0x5a,0x39, 0x5,0x44,0x42, 0x5,0x44,0x44, 0x5,0x44,0x41, + 0x5,0x44,0x47, 0x4,0x41,0x76, 0x5,0x44,0x43, 0x6,0x64,0x43, + 0x5,0x44,0x45, 0x6,0x5a,0x3c, 0x6,0x5a,0x3b, 0x6,0x64,0x3d, + 0x4,0x41,0x73, 0x6,0x5a,0x3a, 0x6,0x64,0x3e, 0x6,0x5a,0x3e, + 0x5,0x44,0x48, 0x6,0x5a,0x41, 0x5,0x52,0x63, 0xf,0x46,0x37, + 0x6,0x5a,0x40, 0x6,0x5a,0x3f, 0x6,0x64,0x3c, 0x4,0x41,0x78, + 0x5,0x44,0x46, 0x6,0x64,0x3f, 0x7,0x2b,0x37, 0x6,0x64,0x44, + 0x5,0x4b,0x4d, 0x5,0x4b,0x49, 0x6,0x64,0x45, 0x5,0x4b,0x4a, + 0x4,0x48,0x5a, 0x6,0x64,0x42, 0x5,0x4b,0x4b, 0x7,0x2b,0x39, + 0x6,0x64,0x41, 0xf,0x46,0x36, 0xf,0x53,0x28, 0x7,0x2b,0x3a, + 0x4,0x4e,0x6b, 0x7,0x2b,0x40, 0x4,0x4e,0x6a, 0x5,0x52,0x69, + 0x5,0x52,0x64, 0x5,0x59,0x79, 0x4,0x4e,0x68, 0x5,0x52,0x66, + 0x5,0x52,0x6b, 0x5,0x52,0x68, 0x4,0x4e,0x6c, 0x5,0x52,0x6a, + 0x7,0x2b,0x3c, 0x5,0x52,0x65, 0x7,0x2b,0x3b, 0x7,0x3d,0x73, + 0x5,0x52,0x67, 0x7,0x2b,0x3e, 0x7,0x2b,0x3d, 0xf,0x53,0x27, + 0x5,0x59,0x78, 0x7,0x2b,0x3f, 0x5,0x5a,0x23, 0x4,0x5a,0x26, + 0x5,0x5a,0x24, 0x4,0x54,0x7b, 0x7,0x35,0x66, 0x7,0x35,0x6a, + 0x5,0x60,0x27, 0x5,0x59,0x7b, 0x7,0x35,0x69, 0x5,0x59,0x7e, + 0x7,0x35,0x67, 0x5,0x59,0x7c, 0x7,0x35,0x6f, 0x4,0x54,0x79, + 0x7,0x35,0x6b, 0x7,0x35,0x70, 0x5,0x5a,0x25, 0x7,0x35,0x68, + 0x7,0x35,0x63, 0x5,0x59,0x7a, 0x7,0x35,0x65, 0x7,0x35,0x64, + 0x7,0x35,0x6c, 0x5,0x60,0x29, 0x7,0x35,0x6e, 0x7,0x3d,0x75, + 0x7,0x35,0x62, 0x5,0x5a,0x22, 0x7,0x35,0x6d, 0x5,0x59,0x7d, + 0xf,0x59,0x26, 0xf,0x59,0x27, 0xf,0x59,0x28, 0xf,0x59,0x29, + 0x5,0x5a,0x21, 0x7,0x3d,0x74, 0x5,0x60,0x28, 0x5,0x60,0x34, + 0x7,0x3d,0x77, 0x5,0x60,0x2d, 0x5,0x60,0x2f, 0x5,0x60,0x33, + 0x5,0x60,0x2b, 0x7,0x3d,0x76, 0x5,0x60,0x32, 0x5,0x60,0x35, + 0x4,0x5a,0x2b, 0x5,0x60,0x36, 0x7,0x3d,0x78, 0x7,0x3d,0x7d, + 0x7,0x45,0x2a, 0x7,0x3d,0x7a, 0x5,0x60,0x2a, 0x7,0x45,0x2b, + 0x7,0x3e,0x21, 0x5,0x60,0x2e, 0x7,0x3d,0x79, 0x7,0x3d,0x7e, + 0xf,0x5d,0x66, 0xf,0x5d,0x67, 0x7,0x3d,0x7b, 0x5,0x60,0x30, + 0x7,0x3d,0x7c, 0x7,0x45,0x2f, 0x5,0x66,0x3f, 0x5,0x66,0x3b, + 0x4,0x5e,0x56, 0x4,0x5e,0x5c, 0x5,0x60,0x38, 0x4,0x5e,0x5d, + 0x5,0x66,0x3d, 0x5,0x60,0x37, 0x5,0x66,0x3c, 0x7,0x45,0x2e, + 0x7,0x45,0x2d, 0x7,0x4b,0x7e, 0x4,0x5e,0x5e, 0x5,0x66,0x3e, + 0x7,0x4c,0x22, 0x7,0x51,0x54, 0x7,0x45,0x2c, 0x7,0x45,0x29, + 0x7,0x45,0x31, 0xf,0x61,0x5a, 0xf,0x61,0x5b, 0x7,0x4c,0x25, + 0x7,0x4c,0x21, 0x4,0x5e,0x55, 0x7,0x45,0x32, 0x7,0x45,0x30, + 0x5,0x6a,0x64, 0x7,0x4c,0x23, 0x5,0x6a,0x62, 0x4,0x62,0x3b, + 0x4,0x65,0x3d, 0x7,0x51,0x53, 0x5,0x6a,0x69, 0x5,0x6a,0x66, + 0x5,0x6a,0x68, 0x5,0x6a,0x6a, 0x7,0x51,0x51, 0x4,0x62,0x37, + 0x5,0x6a,0x67, 0x5,0x60,0x39, 0x5,0x6a,0x63, 0x7,0x51,0x52, + 0x4,0x62,0x39, 0x7,0x51,0x58, 0x7,0x4c,0x24, 0x7,0x51,0x57, + 0x4,0x62,0x3a, 0xf,0x64,0x58, 0xf,0x64,0x59, 0x5,0x6a,0x65, + 0x7,0x51,0x56, 0x5,0x6a,0x6b, 0x4,0x65,0x3e, 0x7,0x51,0x55, + 0x7,0x51,0x59, 0x7,0x51,0x5f, 0x7,0x56,0x44, 0x5,0x71,0x7d, + 0x7,0x51,0x60, 0x5,0x6e,0x65, 0x4,0x65,0x3f, 0x5,0x71,0x7e, + 0x5,0x6e,0x64, 0x7,0x51,0x5e, 0x7,0x51,0x62, 0x5,0x6e,0x63, + 0x7,0x4c,0x27, 0x7,0x51,0x61, 0x7,0x51,0x5b, 0x7,0x51,0x5c, + 0x7,0x51,0x5d, 0x7,0x56,0x45, 0x7,0x51,0x63, 0x7,0x51,0x5a, + 0x5,0x72,0x28, 0x5,0x72,0x22, 0x7,0x56,0x46, 0x4,0x68,0x25, + 0x5,0x72,0x24, 0x5,0x72,0x21, 0x7,0x56,0x47, 0x5,0x72,0x2b, + 0x7,0x56,0x48, 0x5,0x72,0x2a, 0x5,0x72,0x23, 0x5,0x72,0x27, + 0x5,0x72,0x25, 0x7,0x56,0x49, 0x5,0x72,0x26, 0x5,0x72,0x29, + 0xf,0x68,0x7e, 0x4,0x69,0x66, 0x5,0x74,0x6e, 0x5,0x74,0x6f, + 0x7,0x5a,0x37, 0x7,0x5d,0x54, 0x7,0x5a,0x36, 0x5,0x74,0x70, + 0x7,0x5a,0x35, 0xf,0x6a,0x37, 0x7,0x5a,0x34, 0x5,0x76,0x6e, + 0x7,0x5d,0x56, 0x5,0x76,0x6f, 0x5,0x76,0x70, 0x5,0x78,0x4a, + 0x7,0x5d,0x55, 0x5,0x78,0x4b, 0x5,0x78,0x4c, 0x4,0x6c,0x3c, + 0x7,0x60,0x28, 0x7,0x60,0x2a, 0x7,0x60,0x29, 0x5,0x79,0x5d, + 0x7,0x64,0x27, 0x5,0x7b,0x25, 0x6,0x3c,0x79, 0x6,0x46,0x3c, + 0x6,0x64,0x46, 0x7,0x2b,0x41, 0x6,0x64,0x48, 0x6,0x64,0x47, + 0x5,0x52,0x6c, 0x4,0x55,0x24, 0x4,0x55,0x25, 0x7,0x3e,0x22, + 0x7,0x3e,0x23, 0x7,0x35,0x71, 0x7,0x35,0x73, 0x7,0x35,0x72, + 0x7,0x4c,0x29, 0x7,0x4c,0x28, 0x7,0x45,0x33, 0x7,0x4d,0x73, + 0x7,0x51,0x64, 0x7,0x60,0x2b, 0x4,0x6e,0x26, 0xf,0x32,0x71, + 0x4,0x41,0x7c, 0x6,0x5a,0x43, 0x5,0x47,0x54, 0x6,0x64,0x49, + 0x6,0x64,0x4a, 0xf,0x4d,0x41, 0xf,0x53,0x29, 0x6,0x64,0x4b, + 0x7,0x2b,0x42, 0xf,0x53,0x2a, 0xf,0x59,0x2a, 0x7,0x35,0x74, + 0xf,0x5d,0x68, 0x7,0x3e,0x24, 0x7,0x45,0x36, 0x5,0x66,0x41, + 0x5,0x66,0x40, 0x5,0x66,0x42, 0x7,0x45,0x35, 0x7,0x45,0x34, + 0x5,0x6a,0x6c, 0x4,0x62,0x3d, 0x4,0x62,0x3e, 0x7,0x4c,0x2a, + 0x7,0x51,0x65, 0xf,0x66,0x7c, 0x5,0x72,0x2c, 0xf,0x69,0x21, + 0x7,0x56,0x4a, 0x7,0x5d,0x57, 0x5,0x7a,0x4b, 0x5,0x36,0x4b, + 0x5,0x36,0x4c, 0x5,0x3d,0x50, 0x6,0x50,0x48, 0xf,0x40,0x31, + 0x6,0x50,0x47, 0x5,0x44,0x49, 0x6,0x5a,0x45, 0x6,0x5a,0x44, + 0x6,0x5a,0x47, 0x6,0x5a,0x46, 0x5,0x4b,0x51, 0x6,0x64,0x4d, + 0x6,0x64,0x4e, 0x5,0x4b,0x50, 0x4,0x48,0x61, 0x6,0x64,0x4c, + 0x6,0x64,0x52, 0x5,0x4b,0x4f, 0x7,0x2b,0x43, 0xf,0x4d,0x42, + 0xf,0x4d,0x43, 0xf,0x4d,0x44, 0xf,0x4d,0x45, 0x7,0x2b,0x46, + 0x6,0x64,0x4f, 0x6,0x64,0x51, 0x5,0x4b,0x52, 0x7,0x2b,0x4a, + 0x5,0x52,0x72, 0x7,0x2b,0x4e, 0x7,0x2b,0x47, 0x5,0x5a,0x32, + 0x5,0x52,0x74, 0x5,0x52,0x77, 0x5,0x52,0x6d, 0x5,0x52,0x70, + 0x5,0x52,0x6e, 0x5,0x52,0x75, 0x7,0x2b,0x44, 0x5,0x52,0x76, + 0x7,0x2b,0x48, 0x5,0x52,0x73, 0x7,0x2b,0x4b, 0x7,0x2b,0x49, + 0x5,0x52,0x6f, 0x7,0x2b,0x45, 0x7,0x2b,0x4c, 0x5,0x52,0x71, + 0xf,0x53,0x2b, 0xf,0x53,0x2c, 0xf,0x53,0x2d, 0x7,0x2b,0x4d, + 0x7,0x35,0x7a, 0x4,0x55,0x2c, 0x7,0x35,0x79, 0x5,0x5a,0x2f, + 0x4,0x55,0x2a, 0x4,0x55,0x27, 0x4,0x55,0x2b, 0x4,0x55,0x28, + 0x7,0x35,0x75, 0x5,0x5a,0x29, 0x4,0x55,0x29, 0x5,0x5a,0x30, + 0x5,0x5a,0x2d, 0x7,0x36,0x24, 0x5,0x5a,0x33, 0x5,0x5a,0x27, + 0x5,0x5a,0x31, 0x5,0x5a,0x34, 0x5,0x5a,0x2b, 0x7,0x35,0x7c, + 0x7,0x35,0x7b, 0x7,0x36,0x26, 0x7,0x36,0x21, 0x7,0x35,0x78, + 0x7,0x36,0x23, 0x5,0x5a,0x2a, 0x7,0x36,0x22, 0xf,0x59,0x2c, + 0x5,0x5a,0x28, 0x7,0x35,0x7d, 0x7,0x35,0x7e, 0x7,0x36,0x27, + 0x7,0x36,0x25, 0xf,0x59,0x2b, 0x7,0x35,0x76, 0x7,0x35,0x77, + 0x5,0x60,0x3a, 0x7,0x3e,0x2c, 0x5,0x60,0x3b, 0x7,0x3e,0x26, + 0x4,0x5a,0x2f, 0x7,0x3e,0x27, 0x7,0x3e,0x25, 0x5,0x60,0x3c, + 0x4,0x5a,0x2c, 0x7,0x3e,0x2a, 0x7,0x3e,0x2b, 0x5,0x4b,0x53, + 0x7,0x3e,0x28, 0x5,0x60,0x3e, 0x5,0x60,0x3d, 0xf,0x5d,0x69, + 0xf,0x5d,0x6a, 0x7,0x45,0x3c, 0x5,0x66,0x4c, 0x5,0x66,0x4b, + 0x5,0x66,0x47, 0x4,0x5e,0x64, 0x5,0x66,0x49, 0x5,0x66,0x48, + 0x4,0x5e,0x61, 0x5,0x66,0x45, 0x5,0x66,0x4e, 0x4,0x5e,0x6d, + 0x4,0x5e,0x69, 0x4,0x5e,0x6a, 0x4,0x5e,0x66, 0x5,0x66,0x4f, + 0x5,0x66,0x43, 0x4,0x5e,0x6c, 0x7,0x45,0x3b, 0x7,0x45,0x3a, + 0x7,0x45,0x37, 0x5,0x66,0x4a, 0xf,0x61,0x5d, 0xf,0x61,0x5e, + 0xf,0x61,0x60, 0x4,0x5e,0x6b, 0xf,0x61,0x5c, 0x7,0x45,0x38, + 0x5,0x66,0x44, 0x7,0x45,0x39, 0x5,0x66,0x4d, 0x5,0x6a,0x6d, + 0x5,0x6a,0x73, 0x5,0x6a,0x6f, 0x4,0x62,0x43, 0x7,0x4c,0x31, + 0x5,0x66,0x50, 0x7,0x4c,0x2c, 0x5,0x66,0x46, 0x5,0x6a,0x71, + 0x5,0x6a,0x70, 0x5,0x6a,0x74, 0x7,0x4c,0x2b, 0x5,0x6a,0x72, + 0x5,0x6a,0x76, 0x4,0x62,0x42, 0x5,0x6a,0x77, 0x7,0x4c,0x32, + 0x7,0x4c,0x34, 0x5,0x6a,0x75, 0x7,0x4c,0x33, 0x7,0x4c,0x2d, + 0x7,0x4c,0x2e, 0x7,0x4c,0x2f, 0xf,0x64,0x5b, 0xf,0x64,0x5c, + 0xf,0x64,0x5d, 0x7,0x4c,0x30, 0x3,0x57,0x36, 0x7,0x4c,0x35, + 0x4,0x65,0x45, 0x7,0x51,0x6a, 0x7,0x51,0x69, 0x5,0x6e,0x6e, + 0x5,0x6e,0x69, 0x5,0x6e,0x6b, 0x5,0x6e,0x68, 0x4,0x65,0x42, + 0x5,0x6e,0x70, 0xf,0x66,0x7d, 0x4,0x65,0x43, 0x4,0x65,0x44, + 0x4,0x65,0x48, 0x5,0x6e,0x71, 0x5,0x6e,0x72, 0x5,0x6e,0x67, + 0x7,0x51,0x68, 0x4,0x68,0x26, 0x5,0x6e,0x6a, 0x5,0x6e,0x6f, + 0x5,0x6e,0x6c, 0x7,0x51,0x6b, 0x7,0x51,0x6f, 0x7,0x51,0x70, + 0x7,0x51,0x71, 0x7,0x51,0x6d, 0x7,0x51,0x6c, 0xf,0x66,0x7e, + 0xf,0x67,0x21, 0x7,0x51,0x67, 0x7,0x51,0x6e, 0x7,0x52,0x27, + 0x7,0x51,0x66, 0x5,0x72,0x2f, 0x5,0x72,0x2e, 0x5,0x72,0x31, + 0x4,0x68,0x27, 0x5,0x72,0x32, 0x5,0x72,0x30, 0x4,0x68,0x2c, + 0x7,0x56,0x4d, 0x7,0x56,0x4c, 0x7,0x56,0x4e, 0x7,0x56,0x4b, + 0xf,0x69,0x22, 0x7,0x56,0x4f, 0x7,0x56,0x50, 0x5,0x74,0x78, + 0x7,0x5a,0x3d, 0x5,0x72,0x34, 0x7,0x5a,0x41, 0x7,0x5a,0x38, + 0x5,0x74,0x71, 0x7,0x5a,0x3b, 0x5,0x72,0x33, 0x5,0x74,0x74, + 0x5,0x74,0x77, 0x5,0x74,0x73, 0x7,0x5a,0x40, 0x4,0x69,0x6c, + 0x5,0x74,0x75, 0x7,0x5a,0x39, 0x7,0x5a,0x3a, 0x7,0x5a,0x3c, + 0xf,0x6a,0x38, 0xf,0x6a,0x39, 0xf,0x6a,0x3a, 0x5,0x74,0x72, + 0x5,0x74,0x79, 0x7,0x5a,0x3f, 0x7,0x5d,0x5f, 0x7,0x5d,0x5d, + 0x5,0x76,0x71, 0x5,0x78,0x4e, 0x7,0x5d,0x5c, 0x7,0x5d,0x59, + 0x5,0x76,0x72, 0x7,0x5d,0x5a, 0x7,0x5d,0x5e, 0x7,0x5d,0x5b, + 0x7,0x5d,0x60, 0xf,0x6b,0x38, 0xf,0x6b,0x39, 0x7,0x5d,0x58, + 0x5,0x78,0x4f, 0x7,0x60,0x31, 0x7,0x60,0x34, 0x5,0x78,0x4d, + 0x7,0x60,0x33, 0x7,0x60,0x36, 0x7,0x60,0x35, 0x7,0x60,0x2f, + 0x7,0x60,0x30, 0x7,0x60,0x2c, 0x7,0x60,0x32, 0x5,0x79,0x62, + 0x7,0x61,0x63, 0x5,0x79,0x63, 0x5,0x79,0x5f, 0x4,0x6d,0x31, + 0x5,0x79,0x60, 0x7,0x61,0x62, 0x5,0x79,0x5e, 0x5,0x79,0x61, + 0x4,0x6d,0x32, 0x7,0x61,0x64, 0x5,0x7a,0x4c, 0x5,0x7a,0x4d, + 0x4,0x6e,0x27, 0x7,0x64,0x29, 0x7,0x64,0x28, 0x4,0x6e,0x40, + 0x7,0x64,0x72, 0x7,0x64,0x73, 0x7,0x64,0x71, 0x7,0x65,0x4e, + 0x5,0x7c,0x23, 0x7,0x65,0x6a, 0x7,0x65,0x7a, 0x7,0x65,0x7b, + 0x7,0x66,0x44, 0x5,0x3d,0x51, 0x4,0x3c,0x27, 0x6,0x5a,0x49, + 0x6,0x5a,0x4a, 0x6,0x5a,0x48, 0x6,0x5a,0x4b, 0x4,0x48,0x63, + 0x4,0x48,0x65, 0x5,0x4b,0x55, 0x6,0x64,0x58, 0x5,0x4b,0x54, + 0x4,0x48,0x64, 0x6,0x64,0x56, 0x6,0x64,0x53, 0x6,0x64,0x54, + 0x6,0x64,0x55, 0x6,0x64,0x57, 0x4,0x4e,0x72, 0x4,0x4e,0x71, + 0x5,0x52,0x7a, 0x5,0x52,0x79, 0x7,0x2b,0x52, 0x7,0x36,0x2c, + 0x5,0x52,0x78, 0x5,0x52,0x7b, 0x4,0x4e,0x77, 0x7,0x2b,0x50, + 0x7,0x2b,0x54, 0x7,0x2b,0x51, 0x4,0x4e,0x78, 0x7,0x2b,0x53, + 0x5,0x5a,0x36, 0x5,0x5a,0x35, 0x4,0x55,0x33, 0x7,0x36,0x2b, + 0x7,0x2b,0x4f, 0x7,0x36,0x2a, 0x7,0x36,0x29, 0x7,0x3e,0x2e, + 0x4,0x5a,0x34, 0x7,0x3e,0x32, 0x4,0x5a,0x32, 0x7,0x3e,0x33, + 0x5,0x60,0x3f, 0x7,0x3e,0x31, 0x7,0x3e,0x2d, 0x7,0x3e,0x2f, + 0x7,0x3e,0x30, 0x5,0x66,0x59, 0x7,0x45,0x3e, 0x4,0x5e,0x6f, + 0x7,0x45,0x3d, 0x5,0x66,0x57, 0x7,0x45,0x3f, 0x5,0x66,0x52, + 0x5,0x6a,0x78, 0x5,0x66,0x55, 0x5,0x66,0x53, 0x5,0x66,0x56, + 0x5,0x66,0x58, 0x7,0x3e,0x34, 0x5,0x66,0x54, 0x7,0x4c,0x3b, + 0x5,0x6a,0x7a, 0x5,0x6a,0x79, 0x7,0x4c,0x3a, 0x7,0x4c,0x37, + 0x5,0x6a,0x7c, 0x5,0x6a,0x7d, 0x5,0x6a,0x7b, 0x7,0x4c,0x3d, + 0x7,0x4c,0x3e, 0x7,0x4c,0x39, 0x7,0x4c,0x38, 0x7,0x4c,0x3c, + 0x7,0x4c,0x36, 0x4,0x65,0x4a, 0x5,0x6e,0x75, 0x5,0x6e,0x74, + 0x5,0x6e,0x73, 0x7,0x51,0x73, 0x7,0x51,0x74, 0x7,0x51,0x75, + 0x4,0x68,0x2f, 0x5,0x72,0x36, 0x7,0x56,0x57, 0x4,0x68,0x2e, + 0x5,0x72,0x35, 0x5,0x72,0x37, 0x7,0x56,0x53, 0x7,0x56,0x54, + 0x5,0x72,0x38, 0x7,0x56,0x55, 0xf,0x69,0x23, 0x7,0x56,0x56, + 0x7,0x56,0x52, 0x4,0x69,0x6d, 0x7,0x5a,0x42, 0x4,0x69,0x70, + 0x7,0x5a,0x43, 0x4,0x69,0x6f, 0x7,0x5a,0x44, 0x7,0x5d,0x65, + 0x7,0x5d,0x66, 0x5,0x76,0x73, 0x4,0x6b,0x36, 0x5,0x76,0x75, + 0x4,0x6b,0x37, 0x7,0x5d,0x62, 0x5,0x76,0x74, 0x7,0x5d,0x67, + 0x7,0x5d,0x61, 0x7,0x5d,0x63, 0x7,0x5d,0x64, 0x4,0x6c,0x3f, + 0x5,0x78,0x50, 0x4,0x6d,0x34, 0x7,0x61,0x65, 0xf,0x6b,0x3a, + 0x7,0x63,0x27, 0x5,0x7a,0x4e, 0x7,0x63,0x28, 0x7,0x64,0x2a, + 0x7,0x64,0x74, 0x5,0x7b,0x6e, 0x4,0x42,0x23, 0x4,0x48,0x66, + 0x5,0x46,0x64, 0x5,0x4b,0x56, 0x6,0x64,0x5a, 0xf,0x4d,0x46, + 0xf,0x4d,0x47, 0xf,0x4d,0x48, 0x6,0x64,0x59, 0x7,0x2b,0x56, + 0xf,0x53,0x2e, 0xf,0x53,0x2f, 0x7,0x36,0x2e, 0x7,0x36,0x2d, + 0xf,0x59,0x2d, 0xf,0x59,0x2e, 0x4,0x5a,0x36, 0x5,0x60,0x40, + 0xf,0x5d,0x6b, 0xf,0x5d,0x6c, 0x7,0x45,0x40, 0xf,0x61,0x61, + 0xf,0x61,0x62, 0x7,0x4c,0x3f, 0xf,0x64,0x5f, 0x5,0x6e,0x76, + 0xf,0x67,0x22, 0xf,0x67,0x23, 0xf,0x67,0x24, 0xf,0x67,0x25, + 0x4,0x68,0x31, 0x7,0x56,0x58, 0x7,0x5a,0x45, 0x7,0x5d,0x68, + 0x7,0x5d,0x69, 0x7,0x5d,0x6a, 0x7,0x60,0x37, 0xf,0x6b,0x73, + 0x7,0x61,0x66, 0x7,0x61,0x67, 0x7,0x63,0x29, 0x7,0x64,0x2b, + 0x4,0x6e,0x28, 0x7,0x65,0x7c, 0x6,0x50,0x49, 0x6,0x50,0x4a, + 0x6,0x5a,0x4d, 0x6,0x5a,0x4c, 0xf,0x46,0x3a, 0xf,0x40,0x69, + 0x4,0x48,0x68, 0x5,0x4b,0x58, 0x6,0x64,0x60, 0x6,0x64,0x5f, + 0x6,0x64,0x5d, 0x6,0x64,0x61, 0x6,0x64,0x5b, 0x6,0x64,0x5c, + 0x5,0x4b,0x57, 0x5,0x4b,0x5a, 0x5,0x52,0x7e, 0x7,0x2b,0x57, + 0x7,0x2b,0x5a, 0x4,0x4e,0x7e, 0x7,0x2b,0x58, 0x5,0x53,0x24, + 0x4,0x4f,0x22, 0x7,0x2b,0x5b, 0x5,0x53,0x23, 0x4,0x4e,0x7c, + 0x4,0x4e,0x7d, 0x5,0x52,0x7c, 0x4,0x4e,0x7a, 0x5,0x52,0x7d, + 0x5,0x53,0x22, 0x5,0x53,0x21, 0x7,0x2b,0x5c, 0x7,0x2b,0x59, + 0xf,0x53,0x30, 0xf,0x53,0x31, 0xf,0x53,0x32, 0xf,0x53,0x33, + 0x7,0x36,0x2f, 0x4,0x55,0x37, 0x7,0x36,0x31, 0x5,0x5a,0x3a, + 0x7,0x36,0x30, 0x4,0x55,0x39, 0x4,0x55,0x34, 0x4,0x55,0x3b, + 0x5,0x5a,0x37, 0x5,0x5a,0x39, 0x4,0x55,0x3a, 0x4,0x55,0x38, + 0x7,0x36,0x33, 0x5,0x5a,0x38, 0xf,0x59,0x2f, 0xf,0x59,0x30, + 0xf,0x59,0x31, 0xf,0x59,0x33, 0x7,0x36,0x32, 0x4,0x5a,0x3a, + 0x4,0x5a,0x3c, 0x7,0x3e,0x3a, 0x5,0x60,0x41, 0x5,0x60,0x44, + 0x5,0x60,0x42, 0x7,0x3e,0x38, 0x5,0x60,0x45, 0x5,0x60,0x46, + 0x5,0x60,0x43, 0x7,0x3e,0x35, 0x4,0x5a,0x39, 0x7,0x3e,0x36, + 0xf,0x5d,0x6d, 0xf,0x5d,0x6e, 0xf,0x5d,0x6f, 0x7,0x3e,0x37, + 0x7,0x3e,0x39, 0x7,0x3e,0x3b, 0x7,0x45,0x42, 0x5,0x66,0x5e, + 0x4,0x5e,0x71, 0x5,0x66,0x5c, 0x5,0x66,0x60, 0x5,0x66,0x5f, + 0x7,0x45,0x44, 0x5,0x66,0x61, 0x7,0x4c,0x40, 0x7,0x45,0x43, + 0x4,0x5e,0x72, 0x5,0x66,0x5a, 0x4,0x5e,0x78, 0x5,0x66,0x5b, + 0xf,0x61,0x63, 0xf,0x61,0x65, 0x5,0x66,0x5d, 0x7,0x45,0x41, + 0xf,0x61,0x64, 0x4,0x62,0x4d, 0x7,0x4c,0x43, 0x7,0x4c,0x47, + 0x5,0x6a,0x7e, 0x5,0x6b,0x21, 0x5,0x6b,0x23, 0x4,0x62,0x50, + 0x7,0x4c,0x48, 0x7,0x4c,0x46, 0x7,0x4c,0x41, 0x5,0x6b,0x24, + 0x5,0x6b,0x22, 0x7,0x4c,0x45, 0x7,0x4c,0x42, 0x4,0x62,0x4b, + 0x7,0x4c,0x44, 0xf,0x64,0x60, 0xf,0x64,0x61, 0xf,0x64,0x63, + 0x5,0x6e,0x7c, 0x7,0x51,0x76, 0x5,0x6e,0x77, 0x5,0x6e,0x7b, + 0x5,0x6e,0x7a, 0x5,0x6e,0x79, 0x4,0x65,0x50, 0x4,0x65,0x4c, + 0x5,0x6e,0x7e, 0x5,0x6e,0x78, 0x4,0x65,0x4b, 0x7,0x51,0x77, + 0x7,0x51,0x78, 0x7,0x51,0x7b, 0x7,0x51,0x7c, 0xf,0x67,0x26, + 0xf,0x67,0x27, 0xf,0x67,0x28, 0x5,0x6e,0x7d, 0x5,0x72,0x3b, + 0x5,0x72,0x3e, 0x5,0x72,0x3a, 0x7,0x56,0x59, 0x4,0x68,0x32, + 0x4,0x68,0x34, 0x5,0x72,0x39, 0x4,0x68,0x33, 0x5,0x72,0x3d, + 0x7,0x56,0x5a, 0x5,0x72,0x3c, 0x7,0x56,0x5e, 0xf,0x69,0x24, + 0x7,0x56,0x5b, 0x7,0x56,0x5c, 0x5,0x75,0x21, 0x5,0x74,0x7c, + 0x7,0x5a,0x46, 0x5,0x75,0x22, 0x5,0x74,0x7e, 0x5,0x74,0x7b, + 0x5,0x75,0x25, 0x5,0x75,0x24, 0x5,0x75,0x23, 0x5,0x74,0x7d, + 0x5,0x75,0x26, 0x7,0x56,0x5d, 0x4,0x69,0x73, 0x7,0x5a,0x47, + 0x7,0x5a,0x48, 0xf,0x6a,0x3b, 0xf,0x6a,0x3c, 0x5,0x76,0x77, + 0x4,0x6b,0x38, 0x4,0x6b,0x39, 0x5,0x76,0x76, 0x7,0x5d,0x6c, + 0x7,0x5d,0x6d, 0x7,0x5d,0x6b, 0xf,0x6b,0x3b, 0x4,0x6c,0x40, + 0x7,0x60,0x38, 0x5,0x78,0x51, 0x4,0x6c,0x44, 0x4,0x6c,0x42, + 0x5,0x79,0x65, 0x7,0x61,0x68, 0x5,0x79,0x64, 0x4,0x6d,0x36, + 0xf,0x6c,0x42, 0xf,0x6c,0x43, 0x7,0x61,0x69, 0x5,0x7a,0x4f, + 0x7,0x63,0x2a, 0x7,0x63,0x2b, 0x7,0x64,0x2c, 0x4,0x6e,0x29, + 0x5,0x7b,0x26, 0xf,0x6c,0x72, 0x7,0x64,0x77, 0x7,0x64,0x76, + 0x5,0x7b,0x4e, 0x4,0x6e,0x54, 0x6,0x23,0x3d, 0x6,0x23,0x3c, + 0x5,0x44,0x4b, 0x5,0x4b,0x5b, 0x5,0x4b,0x5c, 0x6,0x64,0x62, + 0x7,0x2b,0x5d, 0x7,0x36,0x34, 0x7,0x3e,0x3c, 0x7,0x45,0x45, + 0x4,0x5e,0x79, 0x7,0x51,0x7e, 0x7,0x56,0x5f, 0x5,0x72,0x40, + 0x7,0x5a,0x49, 0x7,0x60,0x3a, 0x7,0x60,0x39, 0x5,0x78,0x53, + 0x5,0x7b,0x4f, 0x7,0x2b,0x5e, 0x4,0x4f,0x23, 0x4,0x55,0x3c, + 0x7,0x45,0x46, 0x7,0x52,0x21, 0x7,0x56,0x61, 0x7,0x56,0x60, + 0x7,0x5a,0x4a, 0x7,0x5d,0x6e, 0xf,0x6c,0x73, 0x5,0x7b,0x50, + 0x4,0x42,0x24, 0x6,0x5a,0x4e, 0x6,0x64,0x64, 0x6,0x64,0x63, + 0x7,0x2b,0x5f, 0x7,0x36,0x38, 0x4,0x55,0x3e, 0x5,0x5a,0x3b, + 0x7,0x36,0x36, 0x7,0x36,0x35, 0x4,0x55,0x3d, 0x7,0x36,0x37, + 0x5,0x60,0x47, 0x7,0x3e,0x3d, 0x4,0x5e,0x7a, 0x7,0x45,0x48, + 0x7,0x45,0x49, 0x7,0x45,0x47, 0x7,0x4c,0x49, 0x5,0x6b,0x25, + 0x7,0x4c,0x4a, 0x4,0x65,0x51, 0x7,0x52,0x24, 0x7,0x52,0x23, + 0x7,0x52,0x22, 0x7,0x52,0x25, 0x7,0x56,0x62, 0x4,0x68,0x35, + 0x7,0x56,0x64, 0x5,0x72,0x42, 0x7,0x56,0x63, 0x7,0x56,0x65, + 0x7,0x56,0x66, 0x5,0x75,0x27, 0x7,0x5a,0x4c, 0x7,0x5d,0x71, + 0x7,0x5d,0x72, 0x5,0x76,0x78, 0x4,0x69,0x75, 0x4,0x6b,0x3a, + 0x7,0x5d,0x70, 0x5,0x76,0x79, 0x7,0x5d,0x6f, 0x7,0x5d,0x73, + 0x4,0x6c,0x46, 0x4,0x6c,0x45, 0x7,0x5d,0x74, 0x7,0x60,0x3b, + 0x7,0x61,0x6b, 0x7,0x61,0x6c, 0x5,0x7a,0x50, 0x7,0x63,0x2c, + 0x7,0x63,0x2d, 0x7,0x63,0x2e, 0x4,0x6e,0x2a, 0x7,0x64,0x2d, + 0x7,0x64,0x79, 0x7,0x64,0x78, 0x7,0x64,0x7a, 0x7,0x65,0x4f, + 0x5,0x7c,0x24, 0x4,0x6e,0x51, 0x5,0x7c,0x2d, 0x7,0x65,0x7d, + 0x7,0x66,0x4a, 0x7,0x66,0x4b, 0x6,0x50,0x4b, 0x5,0x3d,0x53, + 0x6,0x5a,0x52, 0x5,0x44,0x4e, 0x6,0x5a,0x51, 0x4,0x42,0x26, + 0x5,0x44,0x4c, 0x6,0x5a,0x50, 0x5,0x44,0x4d, 0x4,0x42,0x25, + 0x6,0x5a,0x4f, 0xf,0x39,0x30, 0xf,0x39,0x2f, 0x6,0x5a,0x53, + 0x5,0x4b,0x5f, 0x5,0x4b,0x60, 0x5,0x4b,0x61, 0x5,0x4b,0x5e, + 0x5,0x4b,0x5d, 0x5,0x4b,0x62, 0x6,0x64,0x68, 0x6,0x64,0x65, + 0x6,0x64,0x69, 0xf,0x4d,0x49, 0xf,0x4d,0x4a, 0xf,0x4d,0x4b, + 0x6,0x64,0x6b, 0x6,0x64,0x66, 0x6,0x64,0x6e, 0x6,0x64,0x6c, + 0x6,0x64,0x6d, 0x6,0x64,0x6a, 0x6,0x64,0x67, 0x4,0x4f,0x27, + 0x5,0x53,0x29, 0x7,0x2b,0x61, 0x7,0x2b,0x60, 0x5,0x53,0x28, + 0x5,0x53,0x2b, 0x5,0x5a,0x41, 0x5,0x53,0x2a, 0x4,0x4f,0x26, + 0x7,0x2b,0x63, 0x5,0x53,0x25, 0xf,0x53,0x34, 0xf,0x53,0x35, + 0xf,0x53,0x36, 0x5,0x53,0x27, 0x7,0x2b,0x62, 0x5,0x53,0x26, + 0x5,0x5a,0x3c, 0x7,0x36,0x3a, 0x5,0x5a,0x45, 0x5,0x5a,0x43, + 0x7,0x36,0x39, 0x4,0x55,0x40, 0x5,0x5a,0x44, 0x7,0x36,0x3b, + 0xf,0x59,0x34, 0x5,0x5a,0x3e, 0x5,0x5a,0x3d, 0x5,0x5a,0x3f, + 0x5,0x5a,0x42, 0x7,0x36,0x3c, 0x5,0x5a,0x40, 0x4,0x5a,0x3d, + 0x5,0x60,0x49, 0x5,0x60,0x4c, 0x5,0x60,0x50, 0x4,0x5a,0x3e, + 0x7,0x3e,0x3e, 0x5,0x60,0x48, 0x5,0x60,0x4a, 0x5,0x60,0x4f, + 0x5,0x60,0x4d, 0x7,0x3e,0x40, 0x7,0x3e,0x41, 0x7,0x3e,0x43, + 0xf,0x5d,0x70, 0xf,0x5d,0x71, 0xf,0x5d,0x72, 0x5,0x60,0x4e, + 0x7,0x3e,0x3f, 0x7,0x3e,0x42, 0x5,0x60,0x4b, 0x5,0x66,0x63, + 0x7,0x45,0x4b, 0x4,0x5e,0x7b, 0x5,0x66,0x69, 0x7,0x45,0x4e, + 0x5,0x66,0x67, 0x5,0x66,0x65, 0x7,0x45,0x4f, 0x7,0x45,0x4c, + 0xf,0x61,0x67, 0x7,0x45,0x4a, 0x7,0x45,0x51, 0x5,0x66,0x62, + 0x7,0x45,0x4d, 0x7,0x45,0x50, 0x5,0x66,0x66, 0x5,0x6b,0x26, + 0x5,0x6b,0x29, 0x7,0x4c,0x4b, 0x5,0x6b,0x27, 0x7,0x4c,0x4c, + 0x7,0x4c,0x4d, 0xf,0x64,0x64, 0xf,0x64,0x65, 0xf,0x64,0x66, + 0xf,0x64,0x67, 0x5,0x66,0x64, 0x5,0x6b,0x28, 0x7,0x52,0x2b, + 0x4,0x65,0x52, 0x7,0x52,0x2a, 0x5,0x6f,0x21, 0x7,0x52,0x29, + 0x7,0x52,0x28, 0x5,0x6f,0x22, 0x7,0x52,0x26, 0xf,0x67,0x29, + 0x5,0x72,0x44, 0x5,0x72,0x46, 0x5,0x72,0x48, 0x4,0x68,0x37, + 0x7,0x56,0x67, 0x7,0x56,0x68, 0xf,0x69,0x25, 0x5,0x72,0x45, + 0x5,0x72,0x43, 0x7,0x56,0x69, 0x5,0x72,0x47, 0x5,0x75,0x2a, + 0x4,0x62,0x51, 0x7,0x5a,0x50, 0x4,0x69,0x78, 0x5,0x75,0x28, + 0x7,0x5a,0x4e, 0x4,0x69,0x79, 0x5,0x75,0x2b, 0xf,0x6a,0x3d, + 0x5,0x75,0x2c, 0x5,0x75,0x29, 0x4,0x69,0x7a, 0xf,0x67,0x2a, + 0x7,0x5a,0x4d, 0x5,0x76,0x7b, 0x5,0x76,0x7a, 0xf,0x69,0x26, + 0x5,0x78,0x54, 0x5,0x78,0x55, 0x4,0x6c,0x47, 0x7,0x60,0x3f, + 0x7,0x60,0x3e, 0x7,0x60,0x40, 0x7,0x60,0x3d, 0x5,0x79,0x67, + 0x5,0x79,0x66, 0xf,0x6c,0x44, 0x7,0x63,0x2f, 0x4,0x6e,0x2b, + 0x7,0x64,0x2e, 0x7,0x64,0x2f, 0x4,0x6e,0x41, 0x5,0x7b,0x51, + 0x5,0x7b,0x6f, 0x5,0x7c,0x25, 0x5,0x7c,0x40, 0x4,0x30,0x43, + 0x4,0x42,0x2a, 0x4,0x42,0x27, 0x6,0x5a,0x55, 0x4,0x42,0x28, + 0x6,0x5a,0x56, 0x5,0x44,0x4f, 0xf,0x46,0x3b, 0x6,0x64,0x6f, + 0x5,0x4b,0x65, 0x4,0x48,0x6c, 0x5,0x4b,0x63, 0xf,0x4d,0x4c, + 0xf,0x4d,0x4d, 0x5,0x4b,0x66, 0x4,0x4f,0x2f, 0x4,0x4f,0x33, + 0x4,0x4f,0x31, 0x4,0x4f,0x2d, 0x7,0x2b,0x68, 0x5,0x53,0x31, + 0x5,0x53,0x30, 0x7,0x2b,0x65, 0x7,0x2b,0x64, 0x5,0x53,0x2e, + 0x4,0x4f,0x38, 0x5,0x53,0x33, 0x5,0x53,0x2c, 0x5,0x53,0x2d, + 0x7,0x2b,0x6c, 0x7,0x2b,0x66, 0x4,0x4f,0x36, 0x5,0x53,0x32, + 0xf,0x53,0x37, 0xf,0x53,0x3a, 0xf,0x53,0x3d, 0x7,0x2b,0x6b, + 0x7,0x2b,0x67, 0x7,0x2b,0x69, 0x4,0x4f,0x2e, 0xf,0x53,0x39, + 0x5,0x53,0x2f, 0x5,0x5a,0x48, 0x5,0x5a,0x46, 0x7,0x36,0x3d, + 0x5,0x5a,0x49, 0x4,0x55,0x46, 0x4,0x5a,0x46, 0x5,0x5a,0x4e, + 0x5,0x5a,0x4d, 0x4,0x55,0x49, 0x7,0x36,0x43, 0x7,0x36,0x3e, + 0x7,0x36,0x41, 0x7,0x36,0x40, 0x5,0x5a,0x4c, 0x7,0x36,0x44, + 0xf,0x59,0x36, 0xf,0x59,0x37, 0xf,0x59,0x39, 0xf,0x59,0x3a, + 0x5,0x5a,0x4b, 0x7,0x36,0x42, 0xf,0x59,0x35, 0x5,0x5a,0x47, + 0x7,0x36,0x3f, 0x5,0x60,0x56, 0x4,0x5a,0x48, 0x5,0x60,0x57, + 0x5,0x60,0x54, 0x5,0x60,0x52, 0x4,0x5a,0x47, 0x7,0x3e,0x4b, + 0x5,0x60,0x55, 0x7,0x3e,0x46, 0x7,0x3e,0x4d, 0x7,0x3e,0x45, + 0x4,0x5a,0x4b, 0x7,0x3e,0x4c, 0x5,0x60,0x5a, 0x5,0x60,0x58, + 0x7,0x3e,0x44, 0x4,0x5a,0x4a, 0xf,0x46,0x3c, 0xf,0x5d,0x73, + 0xf,0x5d,0x74, 0xf,0x5d,0x75, 0xf,0x5d,0x77, 0xf,0x5d,0x79, + 0x7,0x3e,0x48, 0x5,0x60,0x5b, 0x5,0x60,0x53, 0x7,0x3e,0x4a, + 0x5,0x60,0x51, 0x5,0x60,0x59, 0x5,0x66,0x77, 0x5,0x66,0x74, + 0x5,0x66,0x70, 0x5,0x66,0x6b, 0x7,0x45,0x53, 0x4,0x5f,0x28, + 0x5,0x66,0x6d, 0x7,0x45,0x52, 0x5,0x66,0x6a, 0x5,0x66,0x71, + 0x5,0x66,0x75, 0x5,0x66,0x72, 0x5,0x66,0x6f, 0x5,0x66,0x6c, + 0x7,0x45,0x54, 0xf,0x61,0x68, 0xf,0x61,0x69, 0xf,0x61,0x6a, + 0xf,0x61,0x6b, 0xf,0x61,0x6c, 0xf,0x61,0x6d, 0xf,0x61,0x6e, + 0xf,0x61,0x6f, 0xf,0x61,0x71, 0xf,0x61,0x73, 0x7,0x45,0x55, + 0x7,0x3e,0x47, 0x5,0x66,0x76, 0x5,0x66,0x73, 0x7,0x4c,0x5b, + 0x7,0x4c,0x58, 0x4,0x62,0x5e, 0x7,0x4c,0x52, 0x5,0x6b,0x2d, + 0x4,0x62,0x52, 0x5,0x6b,0x2f, 0x7,0x4c,0x4f, 0x7,0x4c,0x51, + 0x4,0x62,0x5f, 0x5,0x66,0x78, 0x4,0x62,0x63, 0x5,0x6b,0x32, + 0x4,0x62,0x5b, 0x7,0x4c,0x4e, 0x4,0x62,0x5a, 0x4,0x62,0x65, + 0x7,0x4c,0x5a, 0x7,0x4c,0x53, 0x7,0x4c,0x59, 0x4,0x62,0x58, + 0x7,0x4c,0x55, 0x5,0x6b,0x36, 0x5,0x6b,0x2e, 0x7,0x4c,0x50, + 0x5,0x6b,0x34, 0xf,0x64,0x6e, 0xf,0x64,0x68, 0xf,0x64,0x6a, + 0xf,0x64,0x6c, 0xf,0x64,0x6f, 0xf,0x64,0x70, 0xf,0x64,0x71, + 0x5,0x6b,0x30, 0x7,0x4c,0x54, 0x7,0x4c,0x57, 0x4,0x62,0x53, + 0x5,0x6b,0x37, 0x5,0x6b,0x2a, 0xf,0x64,0x69, 0x5,0x6b,0x2c, + 0xf,0x61,0x70, 0x7,0x4c,0x56, 0x5,0x6f,0x27, 0x7,0x52,0x2e, + 0x5,0x6f,0x26, 0x5,0x6b,0x38, 0x5,0x6f,0x29, 0x7,0x52,0x2c, + 0x4,0x65,0x58, 0x5,0x6f,0x2b, 0x7,0x52,0x2f, 0x7,0x52,0x2d, + 0x5,0x6f,0x28, 0x4,0x65,0x56, 0x5,0x6f,0x24, 0x7,0x52,0x32, + 0x4,0x65,0x5e, 0x5,0x6f,0x25, 0x5,0x6f,0x23, 0x4,0x65,0x60, + 0x7,0x52,0x30, 0x5,0x6f,0x2c, 0x7,0x52,0x34, 0xf,0x67,0x2b, + 0xf,0x67,0x2c, 0xf,0x67,0x2d, 0xf,0x67,0x2f, 0xf,0x67,0x30, + 0xf,0x67,0x31, 0xf,0x67,0x32, 0xf,0x67,0x2e, 0x5,0x6f,0x2a, + 0xf,0x67,0x34, 0x5,0x72,0x4a, 0x4,0x68,0x3f, 0x5,0x72,0x4f, + 0x5,0x72,0x53, 0x5,0x77,0x23, 0x5,0x72,0x49, 0x5,0x72,0x52, + 0x4,0x68,0x38, 0x7,0x56,0x71, 0x5,0x72,0x4c, 0x7,0x56,0x72, + 0x5,0x72,0x57, 0x7,0x56,0x6d, 0x5,0x72,0x54, 0x5,0x72,0x4d, + 0x7,0x56,0x73, 0x7,0x56,0x75, 0x7,0x56,0x6a, 0x7,0x56,0x74, + 0x5,0x72,0x56, 0x7,0x56,0x6e, 0x7,0x56,0x6f, 0xf,0x69,0x28, + 0xf,0x69,0x29, 0xf,0x69,0x2b, 0xf,0x69,0x2c, 0xf,0x69,0x2d, + 0xf,0x69,0x2e, 0xf,0x69,0x2f, 0xf,0x69,0x30, 0xf,0x69,0x31, + 0xf,0x69,0x32, 0x7,0x56,0x6b, 0x7,0x56,0x6c, 0x5,0x72,0x55, + 0x7,0x56,0x70, 0x5,0x72,0x50, 0x7,0x5a,0x54, 0x7,0x5a,0x52, + 0x5,0x75,0x32, 0x4,0x6a,0x22, 0x5,0x75,0x2e, 0x5,0x75,0x2f, + 0x7,0x5a,0x5a, 0x7,0x5a,0x57, 0x5,0x75,0x30, 0x7,0x5a,0x5c, + 0x7,0x5a,0x59, 0x5,0x75,0x34, 0x7,0x5a,0x56, 0x7,0x5a,0x5b, + 0x7,0x5a,0x53, 0x7,0x5a,0x55, 0x7,0x5a,0x51, 0x7,0x5a,0x5e, + 0xf,0x6a,0x41, 0xf,0x6a,0x42, 0xf,0x6a,0x43, 0xf,0x6a,0x40, + 0x7,0x5a,0x5f, 0x5,0x75,0x33, 0x7,0x5a,0x58, 0x7,0x5a,0x5d, + 0x5,0x75,0x31, 0x5,0x76,0x7e, 0x7,0x5d,0x78, 0x5,0x77,0x22, + 0x4,0x6b,0x3e, 0x4,0x6b,0x3f, 0x5,0x76,0x7c, 0x7,0x5d,0x77, + 0x4,0x65,0x5c, 0x7,0x60,0x46, 0x7,0x5d,0x75, 0x7,0x5e,0x22, + 0x7,0x5d,0x76, 0x5,0x76,0x7d, 0x7,0x5e,0x21, 0x7,0x5d,0x7c, + 0x5,0x77,0x21, 0x7,0x5d,0x79, 0xf,0x6b,0x3d, 0xf,0x6b,0x3f, + 0x7,0x5d,0x7a, 0x7,0x5d,0x7d, 0x7,0x5d,0x7e, 0x7,0x5d,0x7b, + 0xf,0x6b,0x3c, 0x7,0x60,0x43, 0x5,0x78,0x5c, 0x5,0x78,0x60, + 0x5,0x78,0x5a, 0x7,0x60,0x41, 0x4,0x6c,0x4f, 0x4,0x6c,0x4c, + 0x5,0x78,0x59, 0x5,0x78,0x61, 0x4,0x6c,0x4b, 0x5,0x78,0x5f, + 0x5,0x78,0x5e, 0x5,0x78,0x57, 0x7,0x60,0x4b, 0x7,0x60,0x47, + 0x5,0x78,0x58, 0xf,0x6b,0x75, 0xf,0x6b,0x78, 0x7,0x60,0x48, + 0x7,0x60,0x42, 0x7,0x60,0x44, 0x7,0x60,0x45, 0x5,0x78,0x5d, + 0x7,0x60,0x4a, 0x7,0x60,0x49, 0x7,0x61,0x73, 0x5,0x79,0x68, + 0x4,0x6d,0x38, 0x5,0x79,0x69, 0x7,0x61,0x6e, 0x7,0x60,0x7a, + 0x7,0x61,0x71, 0x7,0x61,0x6f, 0x5,0x79,0x6b, 0x7,0x61,0x72, + 0x7,0x61,0x70, 0xf,0x6c,0x45, 0xf,0x6c,0x46, 0x5,0x79,0x6a, + 0x7,0x61,0x6d, 0x7,0x63,0x35, 0x7,0x63,0x30, 0x7,0x63,0x32, + 0x7,0x63,0x33, 0x7,0x63,0x34, 0x5,0x7a,0x51, 0x5,0x7a,0x52, + 0xf,0x6c,0x5a, 0xf,0x6c,0x5b, 0xf,0x6c,0x5c, 0xf,0x6c,0x5d, + 0x7,0x63,0x31, 0x5,0x7b,0x28, 0x5,0x7b,0x27, 0x7,0x64,0x30, + 0x5,0x7b,0x29, 0xf,0x6c,0x74, 0x7,0x64,0x31, 0x5,0x7b,0x2a, + 0x7,0x64,0x32, 0x7,0x64,0x7e, 0x5,0x7b,0x53, 0x5,0x7b,0x52, + 0x5,0x7b,0x55, 0x7,0x64,0x7c, 0x7,0x65,0x21, 0x7,0x64,0x7b, + 0x5,0x7b,0x54, 0x7,0x64,0x7d, 0xf,0x6c,0x75, 0x5,0x7b,0x73, + 0x5,0x7b,0x72, 0x5,0x7b,0x71, 0x5,0x7b,0x70, 0x7,0x65,0x50, + 0x5,0x7c,0x26, 0xf,0x6d,0x2b, 0xf,0x6d,0x2c, 0x5,0x7c,0x27, + 0x7,0x65,0x6b, 0x5,0x7c,0x2e, 0x5,0x7c,0x37, 0x7,0x66,0x2f, + 0x5,0x7c,0x36, 0xf,0x53,0x3c, 0xf,0x5d,0x78, 0xf,0x6b,0x3e, + 0x6,0x50,0x4c, 0xf,0x40,0x33, 0x6,0x50,0x4d, 0x4,0x42,0x2b, + 0x6,0x5a,0x57, 0x5,0x44,0x51, 0x5,0x44,0x52, 0x6,0x5a,0x5c, + 0x6,0x5a,0x58, 0x6,0x5a,0x59, 0x5,0x44,0x50, 0x6,0x5a,0x5a, + 0x6,0x5a,0x5b, 0x6,0x64,0x70, 0x5,0x4b,0x6a, 0x6,0x64,0x71, + 0x5,0x4b,0x69, 0x4,0x48,0x6e, 0x4,0x48,0x6f, 0x6,0x64,0x72, + 0x6,0x64,0x73, 0x6,0x64,0x74, 0x4,0x48,0x70, 0x5,0x4b,0x68, + 0xf,0x4d,0x4f, 0xf,0x4d,0x50, 0xf,0x4d,0x51, 0x5,0x4b,0x67, + 0x4,0x4f,0x45, 0x7,0x2b,0x72, 0x7,0x2b,0x7d, 0x7,0x2b,0x6f, + 0x7,0x2b,0x73, 0x7,0x2b,0x79, 0x5,0x53,0x37, 0x5,0x53,0x3b, + 0x5,0x53,0x3d, 0x5,0x53,0x39, 0x7,0x2b,0x76, 0x7,0x2b,0x7c, + 0x5,0x53,0x3f, 0x5,0x53,0x34, 0x4,0x4f,0x3d, 0x5,0x53,0x41, + 0x5,0x53,0x3e, 0x5,0x53,0x35, 0x4,0x4f,0x3e, 0x5,0x53,0x42, + 0x7,0x2b,0x7a, 0x4,0x4f,0x3c, 0x7,0x2b,0x75, 0x4,0x4f,0x43, + 0x4,0x4f,0x3a, 0x5,0x53,0x43, 0x4,0x4f,0x46, 0x7,0x2b,0x70, + 0x7,0x2b,0x7b, 0xf,0x53,0x40, 0x7,0x2b,0x6e, 0x7,0x2b,0x77, + 0x7,0x2b,0x78, 0x5,0x53,0x36, 0x5,0x53,0x3a, 0x5,0x53,0x40, + 0x7,0x2b,0x71, 0x7,0x2b,0x74, 0x5,0x53,0x3c, 0x7,0x36,0x4b, + 0x5,0x5a,0x54, 0x5,0x5a,0x56, 0x5,0x5a,0x51, 0x5,0x5a,0x4f, + 0x4,0x55,0x4c, 0x5,0x5a,0x53, 0x5,0x5a,0x59, 0x5,0x5a,0x52, + 0x7,0x36,0x57, 0x7,0x36,0x52, 0x5,0x5a,0x57, 0x4,0x55,0x56, + 0x7,0x36,0x54, 0x5,0x5a,0x58, 0x7,0x36,0x50, 0x5,0x5a,0x55, + 0x7,0x36,0x53, 0x7,0x36,0x4c, 0x7,0x36,0x45, 0x7,0x36,0x4e, + 0xf,0x59,0x3d, 0xf,0x59,0x3e, 0xf,0x59,0x3f, 0xf,0x59,0x40, + 0x7,0x36,0x4d, 0x7,0x36,0x4f, 0x7,0x36,0x58, 0x7,0x36,0x56, + 0x7,0x36,0x47, 0x7,0x36,0x48, 0x7,0x36,0x55, 0x4,0x55,0x53, + 0x4,0x55,0x51, 0x6,0x50,0x4e, 0x7,0x36,0x49, 0x5,0x5a,0x50, + 0x7,0x36,0x46, 0xf,0x56,0x33, 0x7,0x3e,0x51, 0x4,0x5a,0x4c, + 0x5,0x60,0x5e, 0x5,0x60,0x69, 0x7,0x3e,0x54, 0x4,0x5a,0x53, + 0x5,0x60,0x67, 0x7,0x3e,0x55, 0x5,0x60,0x5d, 0x5,0x60,0x61, + 0x7,0x3e,0x4e, 0x5,0x60,0x64, 0x5,0x60,0x6b, 0x5,0x60,0x60, + 0x5,0x60,0x62, 0x4,0x5a,0x54, 0x7,0x3e,0x57, 0x5,0x60,0x5c, + 0x5,0x60,0x63, 0x4,0x5a,0x58, 0x7,0x3e,0x4f, 0x4,0x5a,0x5b, + 0x5,0x60,0x6c, 0x7,0x3e,0x58, 0x7,0x3e,0x53, 0x5,0x60,0x68, + 0x5,0x60,0x6a, 0xf,0x5d,0x7a, 0xf,0x5d,0x7b, 0xf,0x5d,0x7c, + 0xf,0x5d,0x7d, 0xf,0x5e,0x21, 0xf,0x5e,0x22, 0xf,0x5e,0x23, + 0xf,0x5e,0x25, 0x7,0x3e,0x50, 0x5,0x60,0x5f, 0x4,0x5a,0x5a, + 0x7,0x3e,0x56, 0x5,0x60,0x65, 0x5,0x60,0x66, 0x7,0x3e,0x52, + 0x4,0x5a,0x57, 0x7,0x45,0x5b, 0x5,0x60,0x6d, 0x7,0x45,0x5f, + 0x5,0x66,0x7d, 0x5,0x67,0x25, 0x5,0x67,0x27, 0x4,0x5f,0x2e, + 0x5,0x67,0x2a, 0x5,0x66,0x7a, 0x5,0x67,0x21, 0x5,0x66,0x7e, + 0x5,0x66,0x7b, 0x7,0x45,0x5d, 0x7,0x45,0x58, 0x4,0x5f,0x2d, + 0x7,0x45,0x5e, 0x5,0x66,0x7c, 0x5,0x67,0x2b, 0x4,0x5f,0x30, + 0x7,0x45,0x67, 0x5,0x67,0x22, 0x7,0x45,0x64, 0x7,0x45,0x5c, + 0x5,0x67,0x28, 0x7,0x45,0x61, 0x7,0x45,0x62, 0x7,0x45,0x66, + 0x5,0x67,0x24, 0x7,0x45,0x59, 0x5,0x67,0x23, 0x7,0x45,0x68, + 0x7,0x45,0x56, 0x7,0x45,0x60, 0xf,0x61,0x74, 0xf,0x61,0x75, + 0x7,0x45,0x57, 0x5,0x67,0x29, 0x7,0x45,0x63, 0x5,0x6b,0x39, + 0x7,0x4c,0x5d, 0x5,0x6b,0x3a, 0x7,0x4c,0x62, 0x5,0x6b,0x3e, + 0x5,0x6b,0x4a, 0x5,0x6b,0x40, 0x7,0x4c,0x6a, 0x7,0x4c,0x64, + 0x5,0x6b,0x3b, 0x7,0x4c,0x68, 0x7,0x4c,0x6b, 0x7,0x4c,0x63, + 0x5,0x6b,0x4c, 0x5,0x6b,0x3d, 0x5,0x6b,0x4b, 0x4,0x62,0x6b, + 0x5,0x6b,0x42, 0x5,0x6b,0x45, 0x7,0x4c,0x60, 0x7,0x4c,0x5e, + 0x5,0x6b,0x48, 0x5,0x6b,0x44, 0x7,0x4c,0x5c, 0x7,0x4c,0x66, + 0x7,0x4c,0x6c, 0x5,0x6b,0x41, 0x4,0x62,0x6d, 0x7,0x4c,0x69, + 0x5,0x6b,0x46, 0xf,0x64,0x74, 0xf,0x64,0x76, 0xf,0x64,0x77, + 0x7,0x4c,0x61, 0x5,0x6b,0x47, 0x7,0x4c,0x6f, 0x5,0x6b,0x49, + 0x7,0x45,0x69, 0x7,0x4c,0x65, 0x7,0x4c,0x67, 0x7,0x4c,0x6d, + 0x5,0x6b,0x43, 0x7,0x4c,0x6e, 0x7,0x4c,0x5f, 0x4,0x62,0x69, + 0x5,0x6f,0x38, 0x5,0x6f,0x30, 0x7,0x52,0x3a, 0x4,0x65,0x65, + 0x5,0x6f,0x3e, 0x7,0x52,0x43, 0x5,0x6f,0x32, 0x5,0x6f,0x42, + 0x4,0x62,0x70, 0x7,0x52,0x36, 0x5,0x6f,0x2f, 0x4,0x65,0x63, + 0x5,0x6f,0x31, 0x4,0x65,0x6e, 0x4,0x65,0x68, 0x5,0x6f,0x33, + 0x5,0x6f,0x2d, 0x5,0x6f,0x37, 0x5,0x6f,0x44, 0x5,0x6f,0x39, + 0x4,0x65,0x6d, 0x4,0x65,0x66, 0x5,0x6f,0x3a, 0x5,0x6f,0x3c, + 0x5,0x6f,0x40, 0x4,0x65,0x67, 0x5,0x6f,0x2e, 0x5,0x6f,0x3b, + 0x5,0x6f,0x36, 0x5,0x6f,0x3f, 0x7,0x52,0x3f, 0x7,0x52,0x3b, + 0x7,0x52,0x40, 0x7,0x52,0x35, 0x7,0x52,0x37, 0x5,0x6f,0x3d, + 0x5,0x6f,0x35, 0x5,0x6f,0x34, 0x5,0x6f,0x43, 0x7,0x52,0x38, + 0xf,0x67,0x37, 0x7,0x52,0x3e, 0x7,0x52,0x3d, 0x7,0x52,0x39, + 0x7,0x52,0x44, 0x7,0x52,0x41, 0x7,0x52,0x3c, 0xf,0x67,0x38, + 0x5,0x6f,0x41, 0x7,0x45,0x5a, 0x5,0x72,0x5e, 0x7,0x56,0x79, + 0x5,0x72,0x66, 0x7,0x56,0x7e, 0x5,0x72,0x5d, 0x5,0x72,0x60, + 0x5,0x72,0x5b, 0x5,0x72,0x65, 0x5,0x72,0x64, 0x7,0x57,0x21, + 0x7,0x56,0x7d, 0x7,0x56,0x7a, 0x5,0x72,0x68, 0x7,0x57,0x27, + 0x7,0x57,0x26, 0x7,0x57,0x24, 0x5,0x72,0x5c, 0x5,0x72,0x61, + 0x5,0x6f,0x45, 0x5,0x72,0x5a, 0x5,0x72,0x62, 0x7,0x57,0x22, + 0x7,0x56,0x7c, 0x5,0x72,0x69, 0x5,0x72,0x6a, 0xf,0x69,0x34, + 0x5,0x72,0x5f, 0x7,0x57,0x23, 0x7,0x56,0x77, 0x7,0x57,0x28, + 0x7,0x56,0x76, 0x7,0x56,0x7b, 0xf,0x69,0x33, 0x5,0x72,0x58, + 0x7,0x56,0x78, 0x5,0x72,0x59, 0xf,0x67,0x36, 0x5,0x75,0x42, + 0x5,0x75,0x3d, 0x4,0x6a,0x24, 0x4,0x6a,0x2d, 0x5,0x75,0x3c, + 0x4,0x6a,0x28, 0x5,0x75,0x43, 0x5,0x75,0x39, 0x5,0x6f,0x46, + 0x5,0x75,0x44, 0x5,0x75,0x40, 0x5,0x75,0x3f, 0x4,0x6a,0x2b, + 0x7,0x5a,0x62, 0x7,0x5a,0x6c, 0x7,0x5a,0x6a, 0x7,0x5a,0x70, + 0x4,0x6a,0x2a, 0x7,0x5a,0x6b, 0x7,0x5a,0x6e, 0x5,0x75,0x3b, + 0x4,0x6a,0x29, 0x7,0x5a,0x69, 0x5,0x75,0x37, 0x7,0x5a,0x68, + 0x5,0x75,0x38, 0x5,0x75,0x46, 0x5,0x72,0x67, 0x7,0x5a,0x71, + 0x5,0x75,0x41, 0x7,0x5a,0x6f, 0x7,0x5a,0x67, 0x7,0x57,0x25, + 0xf,0x6a,0x44, 0xf,0x6a,0x45, 0xf,0x6a,0x46, 0xf,0x6a,0x47, + 0xf,0x6a,0x48, 0x5,0x75,0x3e, 0x7,0x5a,0x66, 0x7,0x5a,0x64, + 0x7,0x5a,0x61, 0x7,0x5a,0x63, 0x5,0x75,0x3a, 0x7,0x5e,0x2b, + 0x7,0x5e,0x27, 0x7,0x5e,0x31, 0x5,0x77,0x33, 0x7,0x5e,0x2f, + 0x5,0x77,0x2e, 0x5,0x77,0x29, 0x4,0x6b,0x43, 0x7,0x5e,0x32, + 0x7,0x5e,0x36, 0x5,0x77,0x25, 0x5,0x77,0x30, 0x5,0x77,0x2a, + 0x5,0x77,0x28, 0x5,0x77,0x2f, 0x7,0x5e,0x2c, 0x5,0x77,0x27, + 0x5,0x77,0x26, 0x5,0x77,0x38, 0x5,0x77,0x2b, 0x4,0x6b,0x49, + 0x4,0x6b,0x42, 0x7,0x5e,0x35, 0x5,0x77,0x31, 0x7,0x5e,0x30, + 0x7,0x5e,0x33, 0x5,0x77,0x2d, 0x7,0x5a,0x65, 0x5,0x77,0x35, + 0x7,0x5a,0x6d, 0x7,0x5e,0x34, 0x5,0x77,0x36, 0x7,0x5e,0x2d, + 0xf,0x6b,0x40, 0x7,0x5e,0x24, 0x7,0x5e,0x26, 0x7,0x5e,0x2e, + 0x7,0x5e,0x29, 0x7,0x5e,0x28, 0x5,0x77,0x32, 0x7,0x5e,0x2a, + 0x7,0x5e,0x25, 0x4,0x6b,0x41, 0xf,0x6b,0x7a, 0x7,0x5e,0x37, + 0x7,0x60,0x4d, 0x5,0x78,0x67, 0x5,0x78,0x69, 0x5,0x78,0x6d, + 0x5,0x78,0x65, 0x5,0x77,0x37, 0x5,0x78,0x68, 0x7,0x60,0x4e, + 0x5,0x78,0x6a, 0x5,0x78,0x6b, 0x7,0x60,0x4f, 0x7,0x60,0x50, + 0x7,0x60,0x54, 0x5,0x78,0x6c, 0x7,0x60,0x53, 0x7,0x60,0x4c, + 0x7,0x60,0x51, 0x5,0x78,0x63, 0x5,0x78,0x66, 0x5,0x78,0x62, + 0xf,0x6b,0x79, 0x7,0x60,0x52, 0x4,0x6c,0x55, 0x5,0x78,0x64, + 0x4,0x6c,0x53, 0x5,0x79,0x71, 0x5,0x79,0x6d, 0x5,0x79,0x70, + 0x7,0x61,0x76, 0x4,0x6d,0x3b, 0x5,0x79,0x6e, 0x5,0x79,0x6c, + 0x4,0x6d,0x3c, 0x7,0x61,0x74, 0x5,0x79,0x6f, 0x7,0x61,0x78, + 0x7,0x61,0x75, 0x7,0x61,0x77, 0x4,0x6d,0x3e, 0x5,0x7a,0x58, + 0x7,0x63,0x39, 0x5,0x7a,0x56, 0x4,0x6d,0x6b, 0x5,0x7a,0x5a, + 0x5,0x7a,0x59, 0x5,0x7a,0x55, 0x5,0x7a,0x57, 0x4,0x6d,0x6a, + 0x7,0x63,0x38, 0x5,0x7a,0x54, 0x7,0x63,0x3b, 0x5,0x7a,0x5b, + 0x7,0x63,0x3d, 0xf,0x6c,0x5e, 0x7,0x63,0x3a, 0x7,0x63,0x36, + 0x7,0x63,0x3c, 0x5,0x7b,0x2e, 0x7,0x64,0x34, 0x7,0x64,0x36, + 0x5,0x7b,0x2f, 0x5,0x7b,0x2c, 0x5,0x7b,0x2b, 0x5,0x7b,0x31, + 0x5,0x7b,0x30, 0x5,0x7b,0x2d, 0x7,0x64,0x37, 0xf,0x6c,0x76, + 0x4,0x6e,0x2e, 0x7,0x64,0x33, 0x7,0x64,0x35, 0x5,0x7b,0x56, + 0x7,0x65,0x22, 0x7,0x65,0x53, 0x7,0x65,0x24, 0x7,0x65,0x26, + 0x7,0x65,0x23, 0x7,0x65,0x27, 0x5,0x7b,0x57, 0x7,0x65,0x25, + 0x4,0x6e,0x42, 0x5,0x7b,0x74, 0x7,0x65,0x54, 0x7,0x65,0x55, + 0x5,0x7b,0x75, 0x7,0x65,0x52, 0x7,0x65,0x56, 0x7,0x65,0x51, + 0x7,0x65,0x6d, 0x7,0x65,0x6c, 0x5,0x7c,0x29, 0x5,0x7c,0x28, + 0xf,0x6d,0x32, 0x5,0x7c,0x2f, 0x7,0x66,0x21, 0x7,0x65,0x7e, + 0x5,0x7c,0x38, 0x7,0x66,0x30, 0x5,0x7c,0x39, 0x7,0x66,0x3a, + 0x5,0x7c,0x41, 0xf,0x6d,0x37, 0x5,0x7c,0x48, 0x7,0x66,0x45, + 0x4,0x48,0x71, 0x4,0x48,0x72, 0x5,0x53,0x44, 0x7,0x2c,0x22, + 0x7,0x2c,0x21, 0x7,0x2b,0x7e, 0x5,0x5a,0x5a, 0x5,0x5a,0x5c, + 0x7,0x36,0x5a, 0x7,0x36,0x5b, 0xf,0x59,0x41, 0x7,0x36,0x59, + 0x5,0x67,0x2c, 0x7,0x3e,0x59, 0x4,0x62,0x71, 0x7,0x4c,0x70, + 0x5,0x6b,0x4d, 0x7,0x4c,0x71, 0x7,0x52,0x46, 0x5,0x6f,0x48, + 0x5,0x6f,0x49, 0x7,0x52,0x47, 0x5,0x6f,0x47, 0x7,0x52,0x49, + 0x7,0x52,0x48, 0x4,0x68,0x45, 0x7,0x57,0x2b, 0x7,0x57,0x2a, + 0x5,0x72,0x6b, 0x7,0x5a,0x73, 0x7,0x5a,0x72, 0x4,0x6b,0x4c, + 0x7,0x5e,0x38, 0x7,0x5e,0x39, 0x5,0x77,0x39, 0x7,0x60,0x55, + 0x4,0x6c,0x57, 0x5,0x79,0x72, 0x4,0x6d,0x3f, 0x7,0x63,0x3e, + 0x5,0x7b,0x32, 0x6,0x5a,0x5d, 0xf,0x46,0x3d, 0x5,0x4b,0x6c, + 0xf,0x4d,0x52, 0x7,0x2c,0x28, 0x5,0x53,0x45, 0x7,0x2c,0x27, + 0x7,0x2c,0x26, 0x7,0x2c,0x24, 0x5,0x53,0x46, 0x7,0x2c,0x25, + 0x5,0x53,0x47, 0x7,0x2c,0x29, 0x7,0x2c,0x23, 0x7,0x36,0x5d, + 0x5,0x5a,0x5d, 0xf,0x59,0x42, 0xf,0x59,0x43, 0xf,0x59,0x44, + 0x5,0x60,0x6f, 0x5,0x60,0x72, 0x5,0x60,0x70, 0x4,0x5a,0x5c, + 0x5,0x60,0x73, 0x5,0x60,0x71, 0x7,0x3e,0x5b, 0x7,0x3e,0x5a, + 0x7,0x3e,0x5e, 0x7,0x3e,0x5d, 0xf,0x5e,0x26, 0x5,0x60,0x6e, + 0x7,0x45,0x6e, 0x5,0x67,0x31, 0x5,0x67,0x2e, 0x5,0x67,0x2d, + 0x7,0x45,0x6b, 0x7,0x45,0x6d, 0x7,0x45,0x6a, 0x5,0x67,0x30, + 0x7,0x45,0x6c, 0xf,0x61,0x78, 0xf,0x61,0x79, 0xf,0x61,0x7a, + 0x5,0x67,0x2f, 0x5,0x6b,0x4f, 0x5,0x6b,0x4e, 0x5,0x6b,0x51, + 0x4,0x62,0x73, 0x7,0x4c,0x73, 0x5,0x6b,0x50, 0x7,0x4c,0x72, + 0x5,0x68,0x40, 0x7,0x52,0x4b, 0x4,0x62,0x74, 0x4,0x65,0x6f, + 0x7,0x4c,0x74, 0xf,0x67,0x39, 0x7,0x52,0x4a, 0x7,0x52,0x4c, + 0x5,0x6f,0x4a, 0x4,0x68,0x47, 0x7,0x57,0x2c, 0x7,0x57,0x2d, + 0x4,0x68,0x46, 0xf,0x69,0x35, 0x5,0x75,0x47, 0x4,0x6a,0x2e, + 0xf,0x6a,0x49, 0x5,0x77,0x3a, 0x5,0x77,0x3c, 0x5,0x77,0x3b, + 0x7,0x5e,0x3a, 0x7,0x5e,0x3b, 0x7,0x60,0x56, 0x4,0x6c,0x58, + 0x7,0x60,0x57, 0xf,0x6b,0x7b, 0x5,0x79,0x75, 0x5,0x79,0x74, + 0x5,0x78,0x6e, 0x4,0x6d,0x40, 0x4,0x6d,0x6c, 0xf,0x6c,0x47, + 0x7,0x65,0x28, 0x7,0x65,0x57, 0x5,0x7c,0x46, 0x7,0x66,0x47, + 0x6,0x5a,0x5f, 0x6,0x5a,0x5e, 0x5,0x44,0x53, 0xf,0x46,0x3f, + 0x4,0x48,0x75, 0x6,0x64,0x75, 0xf,0x4d,0x53, 0x5,0x53,0x4b, + 0x5,0x53,0x4a, 0x4,0x4f,0x4f, 0x5,0x53,0x49, 0x5,0x53,0x48, + 0x7,0x2c,0x2b, 0x7,0x2c,0x2f, 0x7,0x2c,0x2a, 0x4,0x4f,0x4e, + 0x7,0x2c,0x2c, 0x5,0x53,0x4c, 0x7,0x2c,0x2e, 0x7,0x2c,0x2d, + 0x7,0x36,0x61, 0x7,0x36,0x5f, 0x7,0x36,0x5e, 0x7,0x36,0x63, + 0x4,0x55,0x5b, 0x7,0x36,0x62, 0x6,0x47,0x53, 0xf,0x59,0x45, + 0x5,0x5a,0x5e, 0x7,0x36,0x60, 0x5,0x60,0x74, 0x5,0x60,0x75, + 0x7,0x3e,0x60, 0x7,0x3e,0x61, 0xf,0x5e,0x28, 0x7,0x3e,0x62, + 0x7,0x3e,0x5f, 0x7,0x45,0x70, 0x5,0x67,0x32, 0x7,0x45,0x72, + 0x5,0x67,0x33, 0x5,0x67,0x35, 0x7,0x45,0x73, 0x5,0x67,0x34, + 0xf,0x61,0x7b, 0x7,0x45,0x71, 0x7,0x45,0x6f, 0x4,0x62,0x7a, + 0x4,0x62,0x78, 0x7,0x4c,0x79, 0x7,0x4c,0x7b, 0x7,0x4c,0x75, + 0x5,0x6b,0x54, 0x5,0x6b,0x52, 0x7,0x4c,0x7a, 0x5,0x6b,0x55, + 0x5,0x6b,0x53, 0x7,0x4c,0x78, 0x4,0x62,0x7b, 0x7,0x4c,0x77, + 0x7,0x4c,0x76, 0x5,0x6f,0x4b, 0x7,0x52,0x53, 0x7,0x52,0x52, + 0x5,0x6f,0x4c, 0x7,0x52,0x50, 0x4,0x65,0x70, 0x7,0x52,0x4f, + 0x5,0x6f,0x4e, 0x5,0x6f,0x4d, 0x7,0x52,0x51, 0xf,0x67,0x3a, + 0x7,0x52,0x4e, 0x7,0x52,0x4d, 0x5,0x72,0x6c, 0x7,0x57,0x2f, + 0x5,0x72,0x6f, 0x7,0x57,0x30, 0x5,0x72,0x6e, 0x7,0x57,0x31, + 0x7,0x57,0x2e, 0x5,0x72,0x6d, 0x5,0x75,0x4b, 0x5,0x75,0x4c, + 0x7,0x5a,0x74, 0x5,0x75,0x49, 0x5,0x75,0x4e, 0x7,0x5a,0x7b, + 0x7,0x5a,0x76, 0x7,0x5a,0x77, 0x7,0x5a,0x7c, 0x7,0x5a,0x79, + 0x5,0x75,0x4a, 0x7,0x5a,0x75, 0x7,0x5a,0x78, 0x7,0x5a,0x7a, + 0x5,0x77,0x3f, 0x4,0x6b,0x4f, 0x5,0x77,0x3e, 0x5,0x77,0x40, + 0x5,0x77,0x3d, 0x5,0x78,0x6f, 0x5,0x78,0x71, 0x5,0x78,0x70, + 0x7,0x60,0x59, 0x7,0x5e,0x3c, 0x4,0x6c,0x59, 0x7,0x60,0x58, + 0x4,0x6d,0x6d, 0x7,0x63,0x3f, 0x7,0x64,0x39, 0x7,0x64,0x38, + 0x5,0x7b,0x58, 0x7,0x65,0x29, 0x4,0x6e,0x52, 0x5,0x7c,0x30, + 0xf,0x29,0x21, 0xf,0x46,0x3e, 0xf,0x53,0x42, 0xf,0x5e,0x27, + 0x5,0x4b,0x70, 0x5,0x4b,0x6e, 0x5,0x4b,0x6f, 0x5,0x53,0x4e, + 0x4,0x4f,0x50, 0x5,0x53,0x4d, 0x7,0x2c,0x30, 0x5,0x5a,0x61, + 0x7,0x36,0x64, 0x5,0x5a,0x5f, 0x5,0x5a,0x60, 0xf,0x59,0x46, + 0x5,0x60,0x78, 0x5,0x60,0x76, 0xf,0x5e,0x29, 0x5,0x60,0x77, + 0x5,0x67,0x36, 0x7,0x4c,0x7c, 0x5,0x6b,0x56, 0x7,0x4c,0x7d, + 0x4,0x65,0x73, 0x7,0x57,0x32, 0x5,0x72,0x70, 0x7,0x5a,0x7e, + 0x4,0x6b,0x50, 0x7,0x5b,0x56, 0x7,0x5e,0x3d, 0x4,0x6b,0x51, + 0x5,0x7c,0x31, 0xf,0x4d,0x54, 0x7,0x2c,0x32, 0x5,0x5a,0x62, + 0x5,0x5a,0x64, 0x5,0x5a,0x63, 0x5,0x60,0x7a, 0x5,0x67,0x38, + 0x5,0x60,0x79, 0x5,0x67,0x39, 0x5,0x67,0x37, 0x5,0x6b,0x57, + 0x4,0x63,0x22, 0xf,0x64,0x79, 0x4,0x65,0x75, 0x4,0x65,0x74, + 0x5,0x6f,0x50, 0x5,0x6f,0x4f, 0x4,0x65,0x77, 0x7,0x52,0x54, + 0x7,0x52,0x55, 0x7,0x52,0x56, 0xf,0x67,0x3b, 0x7,0x52,0x57, + 0x5,0x72,0x73, 0x5,0x72,0x72, 0x5,0x72,0x71, 0x7,0x57,0x33, + 0x7,0x57,0x34, 0x5,0x75,0x4f, 0x4,0x6a,0x2f, 0x4,0x6a,0x30, + 0x7,0x5b,0x23, 0x7,0x5b,0x22, 0x7,0x5b,0x21, 0x7,0x5e,0x3e, + 0x5,0x78,0x72, 0x7,0x60,0x5a, 0x5,0x78,0x73, 0x7,0x61,0x79, + 0x5,0x79,0x76, 0x7,0x66,0x27, 0x4,0x48,0x76, 0x5,0x53,0x4f, + 0x4,0x4f,0x51, 0x7,0x36,0x68, 0x7,0x36,0x66, 0x5,0x5a,0x66, + 0x5,0x5a,0x65, 0x5,0x5a,0x67, 0x5,0x60,0x7e, 0x7,0x3e,0x64, + 0x5,0x60,0x7c, 0x7,0x3e,0x63, 0x5,0x60,0x7b, 0x4,0x5a,0x5e, + 0x5,0x60,0x7d, 0x7,0x3e,0x65, 0x7,0x3e,0x66, 0x5,0x67,0x3b, + 0x5,0x67,0x3a, 0x4,0x65,0x78, 0x5,0x6f,0x51, 0x5,0x6f,0x53, + 0x5,0x72,0x74, 0x7,0x57,0x36, 0x7,0x57,0x35, 0xf,0x69,0x36, + 0x5,0x75,0x50, 0x4,0x6b,0x54, 0x5,0x77,0x42, 0x5,0x77,0x41, + 0x4,0x6b,0x53, 0x7,0x63,0x40, 0x7,0x61,0x7a, 0x4,0x6d,0x6e, + 0x5,0x7b,0x5a, 0x7,0x65,0x2a, 0x5,0x7b,0x59, 0x6,0x64,0x76, + 0x5,0x44,0x54, 0x6,0x64,0x78, 0x6,0x64,0x77, 0x7,0x2c,0x34, + 0x4,0x4f,0x55, 0x4,0x4f,0x54, 0x5,0x53,0x50, 0x7,0x2c,0x35, + 0x7,0x2c,0x36, 0x7,0x36,0x6a, 0x5,0x5a,0x6a, 0x5,0x5a,0x68, + 0x5,0x5a,0x69, 0x7,0x36,0x69, 0x7,0x36,0x6b, 0x7,0x36,0x6c, + 0x4,0x5a,0x60, 0x7,0x3e,0x68, 0x5,0x61,0x21, 0xf,0x5e,0x2a, + 0x7,0x3e,0x67, 0x5,0x67,0x3e, 0x5,0x67,0x3c, 0x7,0x45,0x74, + 0x5,0x6b,0x58, 0x5,0x61,0x22, 0x5,0x67,0x3f, 0x5,0x6b,0x5a, + 0x5,0x6b,0x59, 0x5,0x6b,0x5b, 0x5,0x6b,0x5d, 0x5,0x6b,0x5c, + 0x7,0x4d,0x21, 0x7,0x4c,0x7e, 0x5,0x6f,0x56, 0x5,0x6f,0x57, + 0x7,0x52,0x5b, 0x5,0x6f,0x5b, 0x5,0x6f,0x59, 0x5,0x6f,0x55, + 0x7,0x52,0x58, 0x4,0x65,0x7e, 0x4,0x65,0x7b, 0x7,0x52,0x5c, + 0x5,0x6f,0x5a, 0x4,0x65,0x7a, 0x7,0x52,0x5a, 0xf,0x67,0x3c, + 0x7,0x52,0x59, 0x7,0x57,0x38, 0x4,0x68,0x53, 0x4,0x68,0x51, + 0x5,0x72,0x78, 0x4,0x68,0x50, 0x5,0x72,0x7b, 0x7,0x57,0x37, + 0x5,0x72,0x75, 0x5,0x72,0x79, 0x5,0x72,0x77, 0x4,0x68,0x54, + 0x5,0x72,0x76, 0x4,0x68,0x55, 0x4,0x6a,0x34, 0x7,0x57,0x39, + 0x7,0x57,0x3a, 0x5,0x72,0x7a, 0x5,0x75,0x51, 0x4,0x6a,0x33, + 0x4,0x6a,0x35, 0x7,0x5b,0x2a, 0x7,0x5b,0x27, 0x7,0x5b,0x26, + 0x4,0x6a,0x32, 0x7,0x5b,0x29, 0x7,0x5b,0x28, 0x5,0x75,0x52, + 0x7,0x5b,0x25, 0x5,0x77,0x47, 0x7,0x5e,0x41, 0x5,0x77,0x46, + 0x5,0x77,0x44, 0x5,0x77,0x45, 0x5,0x77,0x43, 0x5,0x77,0x48, + 0x7,0x5e,0x3f, 0x5,0x78,0x76, 0x5,0x78,0x77, 0x7,0x60,0x5d, + 0x4,0x6c,0x5c, 0x4,0x6c,0x60, 0x5,0x78,0x75, 0x7,0x60,0x5c, + 0x5,0x78,0x74, 0x4,0x6c,0x5f, 0x4,0x6c,0x5e, 0x4,0x6c,0x5d, + 0x7,0x5e,0x40, 0x7,0x60,0x5b, 0x5,0x79,0x78, 0x5,0x79,0x79, + 0x5,0x79,0x7a, 0x5,0x79,0x77, 0x4,0x6d,0x45, 0x7,0x61,0x7b, + 0x7,0x61,0x7c, 0x4,0x6d,0x46, 0x5,0x7a,0x5c, 0x7,0x64,0x3a, + 0x7,0x65,0x2b, 0x4,0x6e,0x30, 0x7,0x64,0x3b, 0x5,0x7b,0x33, + 0x4,0x6e,0x2f, 0x5,0x7b,0x5b, 0x5,0x7b,0x5c, 0x7,0x65,0x2c, + 0x4,0x6e,0x4a, 0x5,0x7b,0x76, 0x7,0x65,0x6e, 0x5,0x7c,0x4a, + 0x7,0x66,0x52, 0x7,0x45,0x75, 0x4,0x66,0x22, 0x5,0x72,0x7c, + 0x4,0x68,0x57, 0x5,0x77,0x49, 0x6,0x64,0x79, 0x7,0x2c,0x38, + 0x7,0x2c,0x37, 0x5,0x61,0x24, 0x7,0x36,0x6d, 0x4,0x5a,0x61, + 0x7,0x3e,0x69, 0x7,0x3e,0x6a, 0x7,0x45,0x78, 0x5,0x67,0x42, + 0x7,0x45,0x79, 0x7,0x45,0x77, 0x7,0x45,0x76, 0x4,0x5f,0x41, + 0x7,0x4d,0x24, 0x7,0x4d,0x25, 0x7,0x3e,0x6b, 0x7,0x4d,0x23, + 0x7,0x52,0x5e, 0x7,0x52,0x5f, 0x7,0x52,0x5d, 0x5,0x72,0x7d, + 0x7,0x57,0x3b, 0x4,0x6a,0x36, 0x7,0x5b,0x2c, 0x7,0x5b,0x31, + 0x7,0x5b,0x32, 0x7,0x5b,0x2e, 0x7,0x5b,0x30, 0x7,0x5b,0x2d, + 0x7,0x5b,0x2b, 0x7,0x5b,0x2f, 0x5,0x77,0x4a, 0x7,0x5e,0x42, + 0x5,0x78,0x78, 0x5,0x79,0x7b, 0x5,0x7a,0x5d, 0x4,0x6d,0x47, + 0x7,0x63,0x41, 0x5,0x7b,0x34, 0x7,0x63,0x42, 0x7,0x65,0x2d, + 0x6,0x50,0x4f, 0x7,0x36,0x6e, 0x7,0x36,0x6f, 0x5,0x5a,0x6b, + 0x7,0x46,0x4f, 0x7,0x65,0x2e, 0x5,0x5a,0x6c, 0x5,0x61,0x25, + 0x7,0x3e,0x6d, 0x5,0x67,0x43, 0x7,0x45,0x7a, 0x5,0x67,0x44, + 0xf,0x61,0x7d, 0x7,0x4d,0x27, 0x5,0x6b,0x60, 0x7,0x4d,0x26, + 0x5,0x6b,0x5e, 0x5,0x6b,0x5f, 0x4,0x63,0x25, 0x4,0x66,0x23, + 0x7,0x52,0x60, 0x4,0x6a,0x39, 0x4,0x68,0x58, 0x7,0x57,0x3c, + 0x7,0x57,0x3d, 0x5,0x75,0x53, 0x7,0x5b,0x34, 0x7,0x5b,0x35, + 0x5,0x75,0x55, 0x4,0x6a,0x38, 0x7,0x5b,0x33, 0x5,0x75,0x54, + 0x7,0x5e,0x43, 0x7,0x60,0x5e, 0x5,0x78,0x79, 0x7,0x60,0x5f, + 0x5,0x79,0x7c, 0x7,0x63,0x43, 0x5,0x7b,0x35, 0x5,0x7b,0x77, + 0x7,0x2c,0x39, 0x5,0x5a,0x6d, 0x7,0x3e,0x6e, 0x5,0x5a,0x6e, + 0x5,0x61,0x28, 0x5,0x61,0x2a, 0x5,0x61,0x2b, 0x5,0x61,0x29, + 0x5,0x61,0x27, 0x7,0x3e,0x70, 0x5,0x61,0x26, 0x7,0x3e,0x6f, + 0x5,0x61,0x2c, 0x4,0x5a,0x62, 0x7,0x45,0x7c, 0x7,0x4d,0x2c, + 0x5,0x67,0x47, 0x5,0x67,0x48, 0x5,0x67,0x46, 0x5,0x67,0x45, + 0x7,0x45,0x7b, 0x7,0x4d,0x2a, 0x5,0x6b,0x61, 0x5,0x6b,0x63, + 0x5,0x6b,0x62, 0x7,0x4d,0x2d, 0x7,0x4d,0x2e, 0x7,0x4d,0x29, + 0x7,0x52,0x62, 0x7,0x52,0x64, 0x7,0x52,0x63, 0x5,0x6f,0x5d, + 0x5,0x6f,0x5e, 0x7,0x4d,0x2b, 0x7,0x52,0x65, 0x5,0x6f,0x5c, + 0x7,0x52,0x61, 0x5,0x73,0x21, 0x5,0x72,0x7e, 0x7,0x57,0x3e, + 0x5,0x75,0x57, 0x7,0x5b,0x36, 0x5,0x75,0x58, 0x5,0x75,0x59, + 0x5,0x75,0x56, 0x4,0x6a,0x3a, 0x7,0x5e,0x44, 0x5,0x77,0x4b, + 0x4,0x6b,0x59, 0x7,0x5e,0x48, 0x4,0x6b,0x57, 0x4,0x6b,0x5a, + 0x7,0x5e,0x47, 0x7,0x5e,0x46, 0x7,0x5e,0x45, 0x5,0x78,0x7d, + 0x4,0x6c,0x63, 0x5,0x78,0x7b, 0x5,0x78,0x7a, 0x7,0x60,0x60, + 0x7,0x61,0x7e, 0x7,0x61,0x7d, 0x4,0x6d,0x49, 0x5,0x79,0x7d, + 0x5,0x7b,0x36, 0x5,0x7b,0x79, 0x5,0x7b,0x78, 0x7,0x65,0x6f, + 0x7,0x66,0x22, 0x4,0x4f,0x57, 0x7,0x36,0x70, 0x7,0x36,0x71, + 0x7,0x3e,0x72, 0x7,0x3e,0x71, 0x5,0x67,0x49, 0x7,0x45,0x7e, + 0x7,0x46,0x21, 0x7,0x45,0x7d, 0x5,0x6b,0x64, 0x5,0x6b,0x65, + 0x7,0x52,0x66, 0x5,0x6f,0x5f, 0x5,0x6f,0x60, 0x7,0x52,0x68, + 0x4,0x68,0x5b, 0x5,0x73,0x22, 0x7,0x57,0x3f, 0x7,0x57,0x40, + 0x5,0x73,0x23, 0x5,0x73,0x24, 0x7,0x5b,0x37, 0x5,0x77,0x4c, + 0x7,0x5e,0x49, 0x5,0x78,0x7c, 0xf,0x6b,0x7e, 0x7,0x60,0x61, + 0x5,0x79,0x7e, 0x5,0x7a,0x21, 0x7,0x63,0x46, 0x5,0x7a,0x5e, + 0x7,0x63,0x45, 0x7,0x64,0x3c, 0x4,0x6e,0x53, 0x5,0x7c,0x32, + 0xf,0x40,0x34, 0x4,0x55,0x64, 0x4,0x5a,0x65, 0x7,0x46,0x22, + 0x4,0x63,0x28, 0x7,0x4d,0x2f, 0x5,0x6d,0x57, 0x4,0x66,0x24, + 0x4,0x6a,0x3b, 0xf,0x69,0x37, 0x5,0x7a,0x23, 0x5,0x7a,0x22, + 0x7,0x62,0x21, 0x7,0x65,0x2f, 0x5,0x61,0x2e, 0x7,0x3e,0x73, + 0x7,0x46,0x25, 0x4,0x5f,0x47, 0x7,0x46,0x24, 0x7,0x4d,0x30, + 0x5,0x6b,0x66, 0x4,0x63,0x2a, 0x7,0x4d,0x31, 0x7,0x4d,0x34, + 0x7,0x4d,0x32, 0x7,0x4d,0x33, 0x7,0x4d,0x35, 0x7,0x4d,0x36, + 0x5,0x6b,0x67, 0x7,0x52,0x6b, 0x5,0x6f,0x63, 0x5,0x6f,0x62, + 0x4,0x66,0x28, 0x7,0x52,0x69, 0x4,0x66,0x2a, 0x7,0x52,0x6d, + 0x4,0x66,0x29, 0x7,0x52,0x6e, 0x7,0x52,0x6a, 0x4,0x48,0x78, + 0x7,0x52,0x6c, 0x7,0x57,0x46, 0x5,0x73,0x2a, 0x5,0x73,0x27, + 0x7,0x57,0x43, 0x7,0x57,0x42, 0x4,0x68,0x5e, 0x5,0x73,0x28, + 0x4,0x68,0x5f, 0x4,0x68,0x5d, 0x7,0x57,0x44, 0x5,0x73,0x25, + 0x5,0x73,0x2b, 0x7,0x57,0x45, 0x7,0x57,0x47, 0x5,0x73,0x29, + 0x7,0x57,0x41, 0x5,0x73,0x26, 0x7,0x5b,0x38, 0x4,0x6a,0x3e, + 0x5,0x75,0x5c, 0x5,0x75,0x5b, 0x5,0x75,0x5e, 0x7,0x5b,0x40, + 0x7,0x5b,0x3f, 0x5,0x75,0x5f, 0x7,0x5b,0x3a, 0x5,0x75,0x60, + 0x4,0x6a,0x3f, 0x7,0x5b,0x39, 0x5,0x75,0x5a, 0x7,0x5b,0x3b, + 0x7,0x5b,0x3d, 0x7,0x5b,0x3e, 0x7,0x5b,0x3c, 0x5,0x75,0x5d, + 0x5,0x77,0x4f, 0x5,0x77,0x4e, 0x4,0x6b,0x5e, 0x4,0x6b,0x62, + 0x4,0x6b,0x63, 0x4,0x6b,0x5f, 0x4,0x6b,0x60, 0x5,0x77,0x50, + 0x7,0x5e,0x4e, 0x7,0x5e,0x4c, 0x4,0x6b,0x5d, 0x7,0x5e,0x4a, + 0x7,0x5e,0x4b, 0x7,0x5e,0x4f, 0x4,0x6b,0x64, 0x4,0x6c,0x67, + 0x5,0x78,0x7e, 0x7,0x60,0x67, 0x4,0x6c,0x68, 0x7,0x60,0x65, + 0x5,0x79,0x21, 0x7,0x62,0x23, 0x4,0x6c,0x65, 0x7,0x60,0x63, + 0x7,0x60,0x66, 0x7,0x60,0x64, 0x7,0x60,0x62, 0x7,0x60,0x68, + 0x5,0x79,0x22, 0x4,0x6d,0x4e, 0x4,0x6d,0x4a, 0x7,0x62,0x25, + 0x5,0x7a,0x26, 0x4,0x6d,0x50, 0x4,0x6d,0x4d, 0x5,0x7a,0x24, + 0x7,0x62,0x27, 0x4,0x6d,0x4f, 0x7,0x62,0x24, 0x7,0x62,0x26, + 0x7,0x62,0x28, 0x7,0x62,0x29, 0x7,0x62,0x22, 0x5,0x7a,0x25, + 0x7,0x63,0x48, 0x5,0x7a,0x60, 0x7,0x63,0x47, 0x5,0x7a,0x62, + 0x5,0x7a,0x5f, 0x5,0x7a,0x61, 0x7,0x64,0x3e, 0x4,0x6e,0x32, + 0x7,0x64,0x3d, 0x5,0x7b,0x37, 0x5,0x7b,0x39, 0x5,0x7b,0x38, + 0x7,0x64,0x40, 0x7,0x64,0x41, 0x7,0x64,0x3f, 0x4,0x6e,0x46, + 0x7,0x65,0x32, 0x5,0x7b,0x5d, 0x7,0x65,0x31, 0x7,0x65,0x30, + 0x7,0x65,0x59, 0x7,0x65,0x71, 0x7,0x65,0x72, 0x5,0x7c,0x2a, + 0x7,0x65,0x70, 0x7,0x65,0x73, 0x5,0x7c,0x33, 0x7,0x66,0x24, + 0x7,0x66,0x23, 0x5,0x7c,0x3b, 0x7,0x66,0x32, 0x5,0x7c,0x3a, + 0x7,0x66,0x31, 0x7,0x66,0x3d, 0x7,0x66,0x3c, 0x5,0x7c,0x45, + 0x7,0x66,0x41, 0x7,0x66,0x48, 0x5,0x7c,0x4e, 0x5,0x7c,0x4d, + 0x5,0x6b,0x68, 0x7,0x4d,0x37, 0x4,0x63,0x2c, 0x7,0x52,0x70, + 0x7,0x52,0x6f, 0x7,0x4e,0x24, 0x5,0x6f,0x64, 0x7,0x57,0x48, + 0xf,0x67,0x3d, 0x7,0x5b,0x42, 0x7,0x5b,0x41, 0x7,0x5b,0x43, + 0x7,0x5b,0x44, 0x5,0x77,0x51, 0x5,0x7c,0x51, 0x7,0x36,0x72, + 0x7,0x3e,0x74, 0x7,0x46,0x26, 0x7,0x57,0x49, 0x5,0x6f,0x65, + 0x4,0x66,0x2b, 0x5,0x6f,0x67, 0x5,0x6f,0x66, 0x4,0x66,0x2c, + 0x7,0x52,0x73, 0x7,0x52,0x71, 0xf,0x67,0x3e, 0x7,0x52,0x72, + 0x5,0x73,0x2c, 0x5,0x73,0x2e, 0x7,0x57,0x4b, 0x5,0x73,0x2f, + 0x5,0x6b,0x6a, 0x5,0x73,0x2d, 0x7,0x54,0x2a, 0x7,0x57,0x4a, + 0x7,0x4d,0x39, 0x7,0x4d,0x38, 0x5,0x7b,0x5e, 0x7,0x61,0x29, + 0x5,0x7b,0x3a, 0x5,0x77,0x52, 0x7,0x64,0x42, 0xf,0x6d,0x2d, + 0x5,0x7c,0x42, 0xf,0x29,0x26, 0x5,0x73,0x30, 0x7,0x62,0x2b, + 0x7,0x62,0x2a, 0x5,0x7a,0x64, 0x5,0x7a,0x63, 0x7,0x63,0x4a, + 0x7,0x63,0x49, 0x5,0x7b,0x3b, 0x4,0x6e,0x47, 0x7,0x66,0x25, + 0x4,0x6e,0x56, 0x7,0x66,0x4c, 0x6,0x29,0x36, 0x6,0x21,0x31, + 0x6,0x21,0x21, 0x6,0x25,0x66, 0x6,0x25,0x72, 0x4,0x25,0x3d, + 0x6,0x2e,0x61, 0xf,0x2d,0x68, 0x6,0x3d,0x35, 0x6,0x50,0x5b, + 0x4,0x3c,0x30, 0x6,0x5a,0x72, 0xf,0x59,0x4d, 0x6,0x23,0x52, + 0x3,0x24,0x52, 0x3,0x27,0x53, 0xf,0x67,0x40, 0x3,0x27,0x54, + 0x6,0x3d,0x3c, 0x7,0x4d,0x3e, 0x6,0x21,0x50, 0x3,0x22,0x7b, + 0x6,0x23,0x59, 0x3,0x21,0x4f, 0x6,0x35,0x44, 0x4,0x21,0x3f, + 0x6,0x22,0x3c, 0x3,0x24,0x41, 0x7,0x36,0x7a, 0x5,0x21,0x29, + 0x6,0x21,0x38, 0xf,0x23,0x37, 0x6,0x29,0x63, 0x6,0x2e,0x76, + 0x6,0x46,0x67, 0x3,0x40,0x43, 0xf,0x22,0x29, 0x6,0x2f,0x25, + 0x6,0x35,0x58, 0x4,0x36,0x4c, 0x4,0x21,0x2f, 0x6,0x22,0x46, + 0x3,0x22,0x25, 0x6,0x22,0x49, 0x3,0x23,0x29, 0x6,0x2f,0x38, + 0x6,0x46,0x74, 0x6,0x2a,0x23, 0x6,0x2f,0x3d, 0x6,0x3d,0x59, + 0x6,0x3d,0x5a, 0x3,0x3a,0x26, 0xf,0x21,0x33, 0x3,0x24,0x29, + 0x6,0x21,0x61, 0x6,0x26,0x43, 0x5,0x31,0x31, 0x6,0x22,0x5b, + 0x5,0x21,0x60, 0x3,0x23,0x3c, 0x4,0x23,0x5c, 0x6,0x26,0x4e, + 0x4,0x23,0x5b, 0x6,0x2a,0x3c, 0x3,0x30,0x23, 0x6,0x35,0x7e, + 0x4,0x30,0x76, 0x6,0x3d,0x7c, 0x6,0x47,0x2a, 0x6,0x47,0x2c, + 0x6,0x47,0x30, 0x6,0x47,0x31, 0x6,0x47,0x33, 0x4,0x3c,0x50, + 0x6,0x5b,0x5b, 0x6,0x51,0x36, 0x6,0x5b,0x59, 0x7,0x21,0x60, + 0x7,0x2c,0x65, 0x3,0x21,0x7c, 0x6,0x24,0x33, 0x6,0x36,0x35, + 0x6,0x3e,0x2c, 0x6,0x3e,0x2b, 0x3,0x34,0x70, 0x4,0x36,0x76, + 0x6,0x51,0x4a, 0x7,0x21,0x76, 0x7,0x46,0x3e, 0xf,0x23,0x5b, + 0x6,0x51,0x57, 0x5,0x23,0x62, 0x6,0x24,0x3b, 0x6,0x51,0x5e, + 0x6,0x47,0x56, 0x6,0x22,0x67, 0xf,0x2a,0x2b, 0x6,0x36,0x4c, + 0x6,0x36,0x4d, 0xf,0x2e,0x6d, 0x6,0x3e,0x54, 0x6,0x3e,0x50, + 0x6,0x47,0x61, 0x6,0x51,0x69, 0xf,0x47,0x46, 0x3,0x5a,0x33, + 0x7,0x46,0x51, 0x6,0x24,0x48, 0x4,0x31,0x30, 0xf,0x41,0x2b, + 0x6,0x5c,0x22, 0x3,0x5a,0x36, 0x7,0x60,0x6d, 0x6,0x27,0x21, + 0x6,0x36,0x67, 0x6,0x24,0x4b, 0x4,0x21,0x34, 0x5,0x28,0x73, + 0x6,0x47,0x7b, 0x4,0x21,0x35, 0xf,0x26,0x62, 0x3,0x2c,0x40, + 0x6,0x30,0x4e, 0x6,0x48,0x2b, 0x6,0x48,0x35, 0x3,0x40,0x7e, + 0x6,0x52,0x33, 0x6,0x5c,0x3d, 0x6,0x27,0x36, 0x6,0x5c,0x49, + 0xf,0x21,0x5f, 0x6,0x48,0x37, 0x6,0x37,0x2c, 0x6,0x48,0x3c, + 0x7,0x2d,0x53, 0x7,0x2d,0x55, 0x7,0x60,0x6e, 0x5,0x29,0x27, + 0x6,0x3f,0x46, 0x6,0x3f,0x45, 0x3,0x35,0x5f, 0x6,0x52,0x40, + 0x5,0x45,0x5d, 0x6,0x21,0x74, 0x6,0x27,0x4a, 0x6,0x2b,0x2f, + 0x6,0x30,0x74, 0xf,0x2a,0x5d, 0x6,0x2b,0x39, 0x7,0x2d,0x63, + 0x5,0x73,0x40, 0x3,0x2c,0x51, 0x6,0x3f,0x5e, 0x5,0x2d,0x48, + 0x3,0x35,0x65, 0x6,0x27,0x5f, 0xf,0x24,0x33, 0x5,0x24,0x38, + 0x6,0x31,0x36, 0x6,0x31,0x30, 0xf,0x2a,0x67, 0x4,0x29,0x4a, + 0x6,0x48,0x7c, 0x6,0x48,0x78, 0x3,0x46,0x70, 0x6,0x52,0x6c, + 0x6,0x52,0x66, 0x6,0x5d,0x26, 0x6,0x5d,0x24, 0x4,0x43,0x51, + 0x7,0x2d,0x69, 0x7,0x2d,0x79, 0x7,0x22,0x7b, 0x3,0x54,0x60, + 0x4,0x5b,0x2c, 0x7,0x47,0x28, 0x3,0x26,0x27, 0x6,0x40,0x23, + 0x5,0x22,0x6e, 0x6,0x2b,0x63, 0x6,0x2b,0x60, 0x6,0x31,0x4f, + 0xf,0x2b,0x2b, 0x6,0x37,0x71, 0x3,0x36,0x28, 0x6,0x40,0x36, + 0x6,0x40,0x2b, 0x6,0x49,0x4a, 0x6,0x49,0x30, 0xf,0x41,0x5f, + 0x7,0x23,0x30, 0x6,0x5d,0x38, 0x5,0x46,0x2c, 0x7,0x23,0x2d, + 0xf,0x4f,0x25, 0x4,0x4a,0x27, 0x7,0x38,0x39, 0xf,0x5e,0x70, + 0x4,0x2d,0x46, 0x6,0x49,0x57, 0xf,0x5a,0x36, 0x3,0x36,0x40, + 0x6,0x38,0x36, 0xf,0x41,0x72, 0x6,0x53,0x3c, 0x5,0x46,0x41, + 0xf,0x2b,0x38, 0x6,0x31,0x6d, 0x6,0x40,0x57, 0x6,0x49,0x78, + 0x6,0x5d,0x5b, 0x6,0x2c,0x23, 0x5,0x26,0x4a, 0x4,0x32,0x3e, + 0x6,0x40,0x58, 0x5,0x3f,0x66, 0x4,0x24,0x47, 0x6,0x28,0x2e, + 0xf,0x24,0x51, 0x4,0x26,0x68, 0x3,0x2d,0x35, 0x6,0x38,0x4a, + 0x3,0x31,0x5c, 0x4,0x2d,0x5c, 0x6,0x38,0x50, 0x5,0x32,0x7e, + 0x3,0x3c,0x3a, 0x6,0x53,0x5e, 0x5,0x3f,0x71, 0x3,0x41,0x6e, + 0x6,0x5d,0x68, 0x7,0x23,0x72, 0xf,0x54,0x74, 0x7,0x2e,0x6a, + 0x4,0x5f,0x76, 0x7,0x58,0x23, 0x6,0x25,0x23, 0x6,0x4a,0x3f, + 0x7,0x23,0x78, 0x7,0x5e,0x72, 0xf,0x48,0x79, 0x6,0x53,0x77, + 0x4,0x2d,0x65, 0xf,0x35,0x74, 0x6,0x4a,0x4d, 0x6,0x2c,0x42, + 0xf,0x48,0x7b, 0x6,0x25,0x2e, 0xf,0x24,0x5d, 0x6,0x2c,0x5b, + 0x6,0x2c,0x51, 0x3,0x2d,0x52, 0x6,0x32,0x39, 0x6,0x32,0x42, + 0x4,0x2a,0x25, 0x4,0x2d,0x70, 0x6,0x39,0x2d, 0x6,0x38,0x74, + 0x6,0x39,0x21, 0xf,0x30,0x5b, 0x3,0x36,0x75, 0x6,0x4a,0x65, + 0x6,0x4a,0x63, 0x4,0x3e,0x33, 0x6,0x54,0x49, 0x6,0x54,0x4f, + 0xf,0x42,0x74, 0x6,0x5e,0x3e, 0x7,0x24,0x4f, 0x7,0x24,0x58, + 0xf,0x4f,0x69, 0x7,0x2f,0x42, 0xf,0x55,0x56, 0x4,0x56,0x5d, + 0x7,0x4e,0x28, 0x7,0x53,0x60, 0x7,0x53,0x58, 0x6,0x2c,0x60, + 0x6,0x2c,0x5d, 0x6,0x32,0x48, 0x4,0x38,0x68, 0xf,0x43,0x2f, + 0x6,0x54,0x59, 0xf,0x50,0x3d, 0xf,0x55,0x58, 0x5,0x7b,0x7b, + 0x3,0x55,0x45, 0x6,0x41,0x61, 0x6,0x41,0x63, 0x6,0x41,0x6a, + 0x6,0x5e,0x5e, 0x6,0x32,0x62, 0x6,0x4b,0x42, 0x7,0x47,0x75, + 0x6,0x22,0x26, 0xf,0x24,0x78, 0x6,0x2d,0x24, 0xf,0x2c,0x39, + 0xf,0x31,0x28, 0x6,0x4b,0x47, 0xf,0x43,0x64, 0x4,0x44,0x6e, + 0x7,0x40,0x63, 0xf,0x63,0x24, 0x6,0x42,0x21, 0x3,0x3d,0x3f, + 0x6,0x32,0x79, 0x4,0x2a,0x44, 0x5,0x33,0x65, 0x6,0x4b,0x56, + 0x4,0x3e,0x6c, 0x6,0x42,0x32, 0xf,0x4a,0x2f, 0x7,0x53,0x7b, + 0x6,0x2d,0x3a, 0x5,0x33,0x71, 0xf,0x56,0x3c, 0x6,0x2d,0x45, + 0x6,0x2d,0x3d, 0x6,0x33,0x3d, 0x6,0x33,0x31, 0x5,0x2f,0x26, + 0xf,0x2c,0x57, 0x6,0x3a,0x2d, 0x6,0x3a,0x2e, 0x6,0x42,0x48, + 0x6,0x4b,0x7a, 0xf,0x50,0x5f, 0x7,0x30,0x4a, 0x6,0x25,0x3f, + 0x6,0x2d,0x46, 0x3,0x43,0x33, 0x6,0x55,0x6b, 0x7,0x25,0x7b, + 0x7,0x39,0x6d, 0xf,0x28,0x3c, 0x6,0x33,0x4a, 0xf,0x3d,0x60, + 0x4,0x4b,0x60, 0x7,0x26,0x27, 0x6,0x3a,0x43, 0x6,0x42,0x67, + 0x4,0x45,0x5f, 0x4,0x52,0x21, 0x7,0x30,0x66, 0x6,0x5f,0x75, + 0x7,0x26,0x3e, 0x7,0x26,0x3c, 0x7,0x30,0x73, 0xf,0x4a,0x7b, + 0x6,0x60,0x23, 0xf,0x51,0x23, 0x7,0x26,0x4d, 0x7,0x41,0x3c, + 0x5,0x6c,0x7d, 0x7,0x31,0x2d, 0x7,0x3a,0x33, 0x4,0x5c,0x59, + 0x7,0x41,0x44, 0x3,0x2e,0x56, 0x6,0x33,0x66, 0x3,0x48,0x6a, + 0xf,0x51,0x37, 0x7,0x26,0x6a, 0x7,0x26,0x69, 0x4,0x64,0x26, + 0x7,0x62,0x4d, 0x6,0x4c,0x72, 0x7,0x3a,0x46, 0xf,0x3e,0x32, + 0x7,0x3a,0x49, 0x7,0x48,0x6d, 0x7,0x5f,0x3c, 0x6,0x4d,0x23, + 0xf,0x57,0x27, 0x4,0x2b,0x26, 0x7,0x27,0x28, 0xf,0x57,0x28, + 0x6,0x60,0x5d, 0x5,0x48,0x74, 0xf,0x5c,0x2d, 0x6,0x28,0x7b, + 0x4,0x27,0x68, 0x6,0x2d,0x69, 0x3,0x33,0x50, 0x5,0x3b,0x50, + 0x6,0x4d,0x48, 0xf,0x44,0x68, 0xf,0x4b,0x57, 0xf,0x4b,0x56, + 0x4,0x4c,0x56, 0x4,0x58,0x2d, 0x4,0x34,0x57, 0x6,0x4d,0x5e, + 0x3,0x44,0x25, 0x6,0x61,0x25, 0x3,0x27,0x2a, 0x6,0x25,0x52, + 0x6,0x29,0x27, 0xf,0x28,0x5c, 0x6,0x29,0x28, 0x6,0x2e,0x22, + 0x6,0x2e,0x23, 0x6,0x34,0x44, 0x6,0x2e,0x24, 0x6,0x3b,0x52, + 0xf,0x32,0x3a, 0x4,0x34,0x73, 0x6,0x44,0x2b, 0x4,0x34,0x74, + 0x6,0x43,0x76, 0x6,0x44,0x3b, 0x4,0x3a,0x66, 0x6,0x44,0x3e, + 0x6,0x44,0x3c, 0x6,0x44,0x3d, 0x6,0x4e,0x3b, 0x6,0x61,0x3e, + 0x6,0x61,0x4f, 0xf,0x51,0x64, 0x4,0x4c,0x79, 0x7,0x27,0x61, + 0x7,0x27,0x6d, 0x7,0x32,0x44, 0xf,0x57,0x47, 0x7,0x3a,0x6f, + 0xf,0x60,0x5d, 0x7,0x42,0x3c, 0x7,0x54,0x5e, 0x4,0x67,0x2b, + 0x6,0x34,0x47, 0x4,0x40,0x4f, 0x7,0x3b,0x38, 0x3,0x5b,0x26, + 0x6,0x3b,0x71, 0x4,0x3a,0x75, 0x6,0x4e,0x46, 0x4,0x46,0x7c, + 0x4,0x4d,0x33, 0xf,0x52,0x24, 0x7,0x28,0x2e, 0xf,0x51,0x7d, + 0x7,0x42,0x60, 0x7,0x42,0x5f, 0x3,0x5b,0x2d, 0x4,0x64,0x3f, + 0x4,0x53,0x4c, 0x6,0x25,0x53, 0x5,0x30,0x3e, 0x6,0x58,0x2e, + 0x6,0x58,0x2c, 0xf,0x45,0x3d, 0x7,0x3b,0x61, 0xf,0x38,0x4a, + 0x5,0x7a,0x38, 0x6,0x3c,0x2d, 0x4,0x35,0x45, 0xf,0x3f,0x3b, + 0x6,0x62,0x47, 0x7,0x33,0x4f, 0x7,0x59,0x41, 0x6,0x29,0x2a, + 0x6,0x58,0x50, 0x6,0x58,0x5c, 0x3,0x60,0x7c, 0x6,0x3c,0x3b, + 0x7,0x33,0x79, 0x7,0x33,0x73, 0xf,0x3f,0x53, 0x3,0x44,0x6d, + 0x7,0x29,0x44, 0x6,0x34,0x5d, 0x4,0x30,0x2c, 0x7,0x34,0x31, + 0x4,0x54,0x37, 0x7,0x3c,0x61, 0x6,0x25,0x5b, 0x4,0x35,0x72, + 0x6,0x59,0x47, 0x6,0x59,0x4a, 0x7,0x3c,0x6b, 0xf,0x45,0x73, + 0x6,0x63,0x53, 0x6,0x63,0x4f, 0x4,0x54,0x4a, 0xf,0x66,0x5e, + 0x7,0x50,0x6b, 0xf,0x6c,0x3f, 0x6,0x63,0x58, 0x7,0x34,0x7a, + 0x7,0x34,0x71, 0xf,0x61,0x4a, 0x6,0x50,0x22, 0x6,0x63,0x6e, + 0x7,0x35,0x35, 0x3,0x56,0x78, 0x5,0x5f,0x5e, 0x7,0x3d,0x50, + 0xf,0x58,0x78, 0x7,0x4b,0x5f, 0x4,0x65,0x2a, 0x7,0x4b,0x6b, + 0x5,0x3d,0x47, 0x5,0x44,0x35, 0x6,0x5a,0x33, 0x6,0x64,0x30, + 0x4,0x59,0x76, 0x6,0x64,0x3a, 0x6,0x3c,0x77, 0x6,0x5a,0x3d, + 0x4,0x55,0x23, 0x4,0x5e,0x60, 0x6,0x64,0x50, 0x7,0x3e,0x29, + 0x7,0x2b,0x55, 0xf,0x59,0x32, 0x7,0x51,0x7a, 0x7,0x5a,0x60, + 0x4,0x5a,0x59, 0x7,0x45,0x65, 0x4,0x5f,0x37, 0x4,0x62,0x6e, + 0x7,0x52,0x45, 0x5,0x75,0x36, 0x5,0x75,0x35, 0xf,0x6c,0x77, + 0x7,0x3e,0x5c, 0x6,0x46,0x3e, 0x4,0x68,0x4f, 0x6,0x5a,0x60, + 0x4,0x28,0x34, 0x3,0x5c,0x2f, 0x5,0x53,0x51, 0x7,0x4d,0x28, + 0x4,0x48,0x77, 0x7,0x5e,0x4d, +}; + +static const Summary16 cns11643_inv_uni2indx_page00[16] = { + /* 0x0000 */ + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0080 }, { 1, 0x0083 }, + { 4, 0x0000 }, { 4, 0x0080 }, { 5, 0x0000 }, { 5, 0x0080 }, +}; +static const Summary16 cns11643_inv_uni2indx_page02[29] = { + /* 0x0200 */ + { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0000 }, + { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0000 }, + { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0000 }, + { 6, 0x0e80 }, { 10, 0x0200 }, { 11, 0x0000 }, { 11, 0x0000 }, + /* 0x0300 */ + { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, + { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, + { 11, 0x0000 }, { 11, 0xfffe }, { 26, 0x03fb }, { 35, 0xfffe }, + { 50, 0x03fb }, +}; +static const Summary16 cns11643_inv_uni2indx_page20[44] = { + /* 0x2000 */ + { 59, 0x0000 }, { 59, 0x3358 }, { 66, 0x0060 }, { 68, 0x4824 }, + { 72, 0x0000 }, { 72, 0x0000 }, { 72, 0x0000 }, { 72, 0x0000 }, + { 72, 0x0000 }, { 72, 0x0000 }, { 72, 0x1000 }, { 73, 0x0000 }, + { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, + /* 0x2100 */ + { 73, 0x0228 }, { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, + { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x03ff }, { 86, 0x03ff }, + { 96, 0x0000 }, { 96, 0x03cf }, { 104, 0x0000 }, { 104, 0x0000 }, + { 104, 0x0000 }, { 104, 0x0000 }, { 104, 0x0000 }, { 104, 0x0000 }, + /* 0x2200 */ + { 104, 0x0000 }, { 104, 0xc420 }, { 108, 0x4e01 }, { 113, 0x1030 }, + { 116, 0x0000 }, { 116, 0x0004 }, { 117, 0x00c3 }, { 121, 0x0000 }, + { 121, 0x0000 }, { 121, 0x0000 }, { 121, 0x0020 }, { 122, 0x8000 }, +}; +static const Summary16 cns11643_inv_uni2indx_page24[37] = { + /* 0x2400 */ + { 123, 0xffff }, { 139, 0xffff }, { 155, 0x0002 }, { 156, 0x0000 }, + { 156, 0x0000 }, { 156, 0x0000 }, { 156, 0x03ff }, { 166, 0x3ff0 }, + { 176, 0x0000 }, { 176, 0x0000 }, { 176, 0x0000 }, { 176, 0x0000 }, + { 176, 0x0000 }, { 176, 0x0000 }, { 176, 0x0000 }, { 176, 0x0000 }, + /* 0x2500 */ + { 176, 0x1005 }, { 179, 0x1111 }, { 183, 0x1010 }, { 185, 0x1010 }, + { 187, 0x0000 }, { 187, 0x4001 }, { 189, 0xe402 }, { 194, 0x000f }, + { 198, 0xfffe }, { 213, 0x0030 }, { 215, 0x0003 }, { 217, 0x300c }, + { 221, 0xc8c0 }, { 226, 0x0000 }, { 226, 0x003c }, { 230, 0x0000 }, + /* 0x2600 */ + { 230, 0x0260 }, { 233, 0x0000 }, { 233, 0x0000 }, { 233, 0x0000 }, + { 233, 0x0007 }, +}; +static const Summary16 cns11643_inv_uni2indx_page30[1787] = { + /* 0x3000 */ + { 236, 0xff0f }, { 248, 0x6037 }, { 255, 0x03fe }, { 264, 0x0000 }, + { 264, 0x0000 }, { 264, 0x0000 }, { 264, 0x0000 }, { 264, 0x0000 }, + { 264, 0x0000 }, { 264, 0x0000 }, { 264, 0x0000 }, { 264, 0x0000 }, + { 264, 0x0000 }, { 264, 0x0000 }, { 264, 0x0000 }, { 264, 0x0800 }, + /* 0x3100 */ + { 265, 0xffe0 }, { 276, 0xffff }, { 292, 0x03ff }, { 302, 0x0000 }, + { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, + { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, + { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, + /* 0x3200 */ + { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, + { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, + { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0008 }, { 303, 0x0000 }, + { 303, 0x0000 }, { 303, 0x0000 }, { 303, 0x0000 }, { 303, 0x0000 }, + /* 0x3300 */ + { 303, 0x0000 }, { 303, 0x0000 }, { 303, 0x0000 }, { 303, 0x0000 }, + { 303, 0x0000 }, { 303, 0x0000 }, { 303, 0x0000 }, { 303, 0x0000 }, + { 303, 0xc000 }, { 305, 0x7000 }, { 308, 0x0002 }, { 309, 0x0000 }, + { 309, 0x4010 }, { 311, 0x0026 }, { 314, 0x0000 }, { 314, 0x0000 }, + /* 0x3400 */ + { 314, 0x1073 }, { 320, 0x1040 }, { 322, 0x7b12 }, { 330, 0x5f5f }, + { 342, 0xfe3e }, { 354, 0xff8b }, { 366, 0xc0f8 }, { 373, 0xfefb }, + { 387, 0x7fff }, { 402, 0xfefe }, { 416, 0xbff3 }, { 429, 0xfffd }, + { 444, 0xdfbc }, { 456, 0xfdfb }, { 470, 0xf39f }, { 482, 0x7ffe }, + /* 0x3500 */ + { 496, 0xfcff }, { 510, 0x77af }, { 522, 0xf7ff }, { 537, 0xffff }, + { 553, 0xffff }, { 569, 0xdff7 }, { 583, 0xfeff }, { 598, 0x1fef }, + { 610, 0x81ff }, { 620, 0x81ff }, { 630, 0x0fff }, { 642, 0xfff0 }, + { 654, 0x3fff }, { 668, 0x1ff9 }, { 679, 0x3ffc }, { 691, 0xf87f }, + /* 0x3600 */ + { 703, 0x3fe7 }, { 715, 0xfe7b }, { 728, 0xbfff }, { 743, 0x8fdf }, + { 755, 0xefbf }, { 769, 0x7e2f }, { 780, 0xffbf }, { 795, 0x5fff }, + { 809, 0xfebf }, { 823, 0xf5fd }, { 836, 0x7fff }, { 851, 0xffff }, + { 867, 0xe63e }, { 877, 0x7fff }, { 892, 0xffe6 }, { 905, 0x7fff }, + /* 0x3700 */ + { 920, 0xfffe }, { 935, 0x7fef }, { 949, 0xdfff }, { 964, 0xffff }, + { 980, 0xf5bf }, { 993, 0xfbff }, { 1008, 0xfefd }, { 1022, 0xfff7 }, + { 1037, 0x9fff }, { 1051, 0x9fff }, { 1065, 0xbffe }, { 1079, 0xfeff }, + { 1094, 0xffbb }, { 1108, 0xffdf }, { 1123, 0xbfe5 }, { 1135, 0xff7f }, + /* 0x3800 */ + { 1150, 0xfff7 }, { 1165, 0x3fff }, { 1179, 0xe7e7 }, { 1191, 0xfff6 }, + { 1205, 0xdfff }, { 1220, 0xffff }, { 1236, 0xefed }, { 1249, 0xffff }, + { 1265, 0xff7f }, { 1280, 0xffff }, { 1296, 0xd7eb }, { 1308, 0x7d7d }, + { 1320, 0xfbff }, { 1335, 0xff1f }, { 1348, 0xb87d }, { 1358, 0xfce7 }, + /* 0x3900 */ + { 1370, 0xfffe }, { 1385, 0xfeff }, { 1400, 0xd7ff }, { 1414, 0xcfff }, + { 1428, 0xffff }, { 1444, 0xfc7f }, { 1457, 0xfbff }, { 1472, 0xf7ff }, + { 1487, 0xfeff }, { 1502, 0xfdff }, { 1517, 0xffff }, { 1533, 0xfff5 }, + { 1547, 0x7fff }, { 1562, 0x47fc }, { 1572, 0xfffe }, { 1587, 0xfffe }, + /* 0x3a00 */ + { 1602, 0xffff }, { 1618, 0xfeff }, { 1633, 0xe7ff }, { 1647, 0xffff }, + { 1663, 0x7ff9 }, { 1676, 0x7ffd }, { 1690, 0xbfff }, { 1705, 0xfeff }, + { 1720, 0xfbb7 }, { 1733, 0xf46e }, { 1743, 0xfb7f }, { 1757, 0xdff3 }, + { 1770, 0xec3f }, { 1781, 0xffbf }, { 1796, 0xdef3 }, { 1808, 0x3fff }, + /* 0x3b00 */ + { 1822, 0xfffe }, { 1837, 0x7fbd }, { 1850, 0xfeef }, { 1864, 0x9b7f }, + { 1876, 0x1f9e }, { 1886, 0xff3e }, { 1899, 0xff07 }, { 1910, 0xff07 }, + { 1921, 0xf9ff }, { 1935, 0xffff }, { 1951, 0xfffa }, { 1965, 0x97ff }, + { 1978, 0xffff }, { 1994, 0xfff9 }, { 2008, 0xfc7f }, { 2021, 0xcfff }, + /* 0x3c00 */ + { 2035, 0xffff }, { 2051, 0xeff7 }, { 2065, 0xffff }, { 2081, 0xfeff }, + { 2096, 0xffff }, { 2112, 0xdff4 }, { 2124, 0xbdff }, { 2138, 0xff7f }, + { 2153, 0xffff }, { 2169, 0xfffe }, { 2184, 0xbdff }, { 2198, 0x7fff }, + { 2213, 0xfdff }, { 2228, 0xffcf }, { 2242, 0x7ff0 }, { 2253, 0xfff8 }, + /* 0x3d00 */ + { 2266, 0xc7ff }, { 2279, 0x7fff }, { 2294, 0xffe3 }, { 2307, 0xf9ff }, + { 2321, 0xfc7f }, { 2334, 0xe3ff }, { 2347, 0xffff }, { 2363, 0xefff }, + { 2378, 0xf1f3 }, { 2389, 0xddfe }, { 2402, 0xfffb }, { 2417, 0xde3d }, + { 2428, 0xefff }, { 2443, 0x8fff }, { 2456, 0xf97f }, { 2469, 0xdbf9 }, + /* 0x3e00 */ + { 2481, 0xff3f }, { 2495, 0xffff }, { 2511, 0xffff }, { 2527, 0x7fef }, + { 2541, 0xfeff }, { 2556, 0xffff }, { 2572, 0xf8ff }, { 2585, 0xfffe }, + { 2600, 0xdfbf }, { 2614, 0xfdff }, { 2629, 0x7ffb }, { 2643, 0xa7bf }, + { 2655, 0x7f9f }, { 2668, 0xe6fe }, { 2680, 0xf98f }, { 2691, 0xffe7 }, + /* 0x3f00 */ + { 2705, 0xfef6 }, { 2718, 0xffff }, { 2734, 0xffff }, { 2750, 0xffff }, + { 2766, 0x7fdf }, { 2780, 0xffef }, { 2795, 0xffff }, { 2811, 0xefb7 }, + { 2824, 0xffff }, { 2840, 0xffff }, { 2856, 0xffff }, { 2872, 0xffc1 }, + { 2883, 0xfffe }, { 2898, 0xffee }, { 2912, 0xfffe }, { 2927, 0xffff }, + /* 0x4000 */ + { 2943, 0xefff }, { 2958, 0xdfff }, { 2973, 0xff9f }, { 2987, 0xffff }, + { 3003, 0xfffe }, { 3018, 0xffbf }, { 3033, 0xfbfd }, { 3047, 0xffff }, + { 3063, 0xf7ff }, { 3078, 0xffff }, { 3094, 0xfeff }, { 3109, 0xffdf }, + { 3124, 0xff87 }, { 3136, 0x7ffe }, { 3150, 0x7eff }, { 3164, 0xefff }, + /* 0x4100 */ + { 3179, 0xfbff }, { 3194, 0xbf3f }, { 3207, 0xfff7 }, { 3222, 0xfdcf }, + { 3235, 0xfdff }, { 3250, 0x7fff }, { 3265, 0xf3ff }, { 3279, 0xffff }, + { 3295, 0xef3f }, { 3308, 0xffff }, { 3324, 0xbfff }, { 3339, 0xffef }, + { 3354, 0xfbef }, { 3368, 0xffff }, { 3384, 0xffff }, { 3400, 0x7fe7 }, + /* 0x4200 */ + { 3413, 0xffff }, { 3429, 0xffff }, { 3445, 0xfcff }, { 3459, 0xffff }, + { 3475, 0xff7f }, { 3490, 0xffff }, { 3506, 0xffef }, { 3521, 0xffff }, + { 3537, 0xefff }, { 3552, 0xffff }, { 3568, 0xfffb }, { 3583, 0xffff }, + { 3599, 0xff1f }, { 3612, 0xdfff }, { 3627, 0xffff }, { 3643, 0xffff }, + /* 0x4300 */ + { 3659, 0xf7ff }, { 3674, 0xffff }, { 3690, 0xffff }, { 3706, 0x003f }, + { 3712, 0xfffc }, { 3726, 0xffff }, { 3742, 0xfffe }, { 3757, 0xffff }, + { 3773, 0xffff }, { 3789, 0xb7ff }, { 3803, 0xefdf }, { 3817, 0xffff }, + { 3833, 0xffff }, { 3849, 0xdfff }, { 3864, 0x9fff }, { 3878, 0xffff }, + /* 0x4400 */ + { 3894, 0xffbf }, { 3909, 0xffff }, { 3925, 0xfbff }, { 3940, 0xffff }, + { 3956, 0xffff }, { 3972, 0xffbf }, { 3987, 0xbdff }, { 4001, 0xbe7f }, + { 4014, 0xff7f }, { 4029, 0xfdfd }, { 4043, 0x3fff }, { 4057, 0x3fff }, + { 4071, 0xfffe }, { 4086, 0xff8f }, { 4099, 0xe4ff }, { 4111, 0xf7ff }, + /* 0x4500 */ + { 4126, 0xffff }, { 4142, 0xffff }, { 4158, 0xffff }, { 4174, 0xffff }, + { 4190, 0xfffb }, { 4205, 0xfffe }, { 4220, 0xfff7 }, { 4235, 0xffbf }, + { 4250, 0xffff }, { 4266, 0xffff }, { 4282, 0xefff }, { 4297, 0xbfff }, + { 4312, 0xffff }, { 4328, 0xffbf }, { 4343, 0xdfff }, { 4358, 0xf7f7 }, + /* 0x4600 */ + { 4372, 0xffff }, { 4388, 0xb7ff }, { 4402, 0xffff }, { 4418, 0xfffb }, + { 4433, 0xc3ff }, { 4445, 0xfff7 }, { 4460, 0xf7ff }, { 4475, 0xf7bf }, + { 4489, 0xffff }, { 4505, 0xffdf }, { 4520, 0xefef }, { 4534, 0xffff }, + { 4550, 0xffff }, { 4566, 0xfff7 }, { 4581, 0xffff }, { 4597, 0xffff }, + /* 0x4700 */ + { 4613, 0xffff }, { 4629, 0xffff }, { 4645, 0xfc07 }, { 4654, 0xfff7 }, + { 4669, 0xffff }, { 4685, 0xf5ff }, { 4699, 0xffff }, { 4715, 0xefff }, + { 4730, 0x0fff }, { 4742, 0xfffe }, { 4757, 0xffff }, { 4773, 0xfffb }, + { 4788, 0xffff }, { 4804, 0xffff }, { 4820, 0xffff }, { 4836, 0xfffb }, + /* 0x4800 */ + { 4851, 0xefff }, { 4866, 0xffbf }, { 4881, 0xffff }, { 4897, 0xfbff }, + { 4912, 0xffff }, { 4928, 0xffff }, { 4944, 0xffff }, { 4960, 0xf7fd }, + { 4974, 0x7ff8 }, { 4986, 0xfe7f }, { 5000, 0xfff7 }, { 5015, 0xfbff }, + { 5030, 0xfdff }, { 5045, 0xfffb }, { 5060, 0xffbf }, { 5075, 0xfff7 }, + /* 0x4900 */ + { 5090, 0xfffe }, { 5105, 0xffff }, { 5121, 0xfdf7 }, { 5135, 0xfffb }, + { 5150, 0xff7f }, { 5165, 0xefff }, { 5180, 0xffff }, { 5196, 0x01ff }, + { 5205, 0xff80 }, { 5214, 0xf7ff }, { 5229, 0xfdff }, { 5244, 0x3e3e }, + { 5254, 0x7efe }, { 5267, 0xffff }, { 5283, 0xd5ff }, { 5296, 0xffff }, + /* 0x4a00 */ + { 5312, 0xffff }, { 5328, 0xfbff }, { 5343, 0xffff }, { 5359, 0xffff }, + { 5375, 0xbfef }, { 5389, 0xffff }, { 5405, 0xffff }, { 5421, 0xffff }, + { 5437, 0xffff }, { 5453, 0x7fff }, { 5468, 0xfbff }, { 5483, 0xffff }, + { 5499, 0xffff }, { 5515, 0xffff }, { 5531, 0xffff }, { 5547, 0xffff }, + /* 0x4b00 */ + { 5563, 0xffff }, { 5579, 0xffff }, { 5595, 0xffff }, { 5611, 0xffff }, + { 5627, 0x7fff }, { 5642, 0xefff }, { 5657, 0xfbff }, { 5672, 0xffff }, + { 5688, 0xffff }, { 5704, 0xffff }, { 5720, 0xffff }, { 5736, 0xffff }, + { 5752, 0xffc7 }, { 5765, 0xffff }, { 5781, 0xfdff }, { 5796, 0xf7ff }, + /* 0x4c00 */ + { 5811, 0xff7f }, { 5826, 0xffff }, { 5842, 0xbfff }, { 5857, 0xffb7 }, + { 5871, 0xffff }, { 5887, 0xffff }, { 5903, 0xfbff }, { 5918, 0xffef }, + { 5933, 0xff7f }, { 5948, 0x1eff }, { 5960, 0xffe0 }, { 5971, 0xffbf }, + { 5986, 0xffff }, { 6002, 0xffff }, { 6018, 0xffff }, { 6034, 0xfdff }, + /* 0x4d00 */ + { 6049, 0xffff }, { 6065, 0xfc07 }, { 6074, 0xfeff }, { 6089, 0xffff }, + { 6105, 0xffff }, { 6121, 0xffff }, { 6137, 0xffff }, { 6153, 0xffff }, + { 6169, 0xffff }, { 6185, 0xffff }, { 6201, 0x9fff }, { 6215, 0x003b }, + { 6220, 0x0000 }, { 6220, 0x0000 }, { 6220, 0x0000 }, { 6220, 0x0000 }, + /* 0x4e00 */ + { 6220, 0xffbf }, { 6235, 0xc3f7 }, { 6246, 0xef5f }, { 6259, 0xbb6f }, + { 6271, 0xebef }, { 6284, 0xf7de }, { 6297, 0x070c }, { 6302, 0xc23a }, + { 6309, 0xfbff }, { 6324, 0xfbfe }, { 6338, 0xf97f }, { 6351, 0x56df }, + { 6362, 0xffff }, { 6378, 0xfff1 }, { 6391, 0xc3ff }, { 6403, 0xffff }, + /* 0x4f00 */ + { 6419, 0xffff }, { 6435, 0x3fff }, { 6449, 0xf304 }, { 6456, 0xffff }, + { 6472, 0xffff }, { 6488, 0xffff }, { 6504, 0xffdf }, { 6519, 0xffff }, + { 6535, 0xffff }, { 6551, 0xffff }, { 6567, 0xc80f }, { 6574, 0xffff }, + { 6590, 0xffff }, { 6606, 0xffff }, { 6622, 0xd2bf }, { 6633, 0xffff }, + /* 0x5000 */ + { 6649, 0xffff }, { 6665, 0xffff }, { 6681, 0xffff }, { 6697, 0x93ff }, + { 6709, 0xffff }, { 6725, 0xffff }, { 6741, 0xffff }, { 6757, 0x3fff }, + { 6771, 0xffff }, { 6787, 0xffff }, { 6803, 0xfc4f }, { 6814, 0xffff }, + { 6830, 0xffff }, { 6846, 0xffff }, { 6862, 0xffff }, { 6878, 0xfffb }, + /* 0x5100 */ + { 6893, 0xffff }, { 6909, 0xffff }, { 6925, 0xffff }, { 6941, 0xffff }, + { 6957, 0xffff }, { 6973, 0xffff }, { 6989, 0x7fff }, { 7004, 0xd3ee }, + { 7015, 0xfffd }, { 7030, 0xe3ff }, { 7043, 0x3f7f }, { 7056, 0xf7ff }, + { 7071, 0xffff }, { 7087, 0xffff }, { 7103, 0x753f }, { 7114, 0x67ff }, + /* 0x5200 */ + { 7127, 0xdfff }, { 7142, 0xf1ff }, { 7155, 0xcfff }, { 7169, 0x7fff }, + { 7184, 0xfffa }, { 7198, 0xfffc }, { 7212, 0xffff }, { 7228, 0xfffd }, + { 7243, 0x7fff }, { 7258, 0xffff }, { 7274, 0xfff9 }, { 7288, 0xfffb }, + { 7303, 0xf7ff }, { 7318, 0xfbff }, { 7333, 0xffff }, { 7349, 0xffff }, + /* 0x5300 */ + { 7365, 0xfffb }, { 7380, 0xffff }, { 7396, 0xbfbf }, { 7410, 0xffff }, + { 7426, 0xffff }, { 7442, 0xffbf }, { 7457, 0xf7fb }, { 7471, 0xffff }, + { 7487, 0xcfdd }, { 7499, 0xffdc }, { 7512, 0xfff3 }, { 7526, 0x6fff }, + { 7540, 0xff3f }, { 7554, 0xfefd }, { 7568, 0xffff }, { 7584, 0xbfff }, + /* 0x5400 */ + { 7599, 0xffff }, { 7615, 0xff6f }, { 7629, 0xffff }, { 7645, 0xffff }, + { 7661, 0xffff }, { 7677, 0xe413 }, { 7684, 0xffff }, { 7700, 0xffff }, + { 7716, 0xffff }, { 7732, 0xd57f }, { 7744, 0xffff }, { 7760, 0xffff }, + { 7776, 0xffff }, { 7792, 0x4441 }, { 7796, 0xffff }, { 7812, 0xffff }, + /* 0x5500 */ + { 7828, 0xffff }, { 7844, 0x0fff }, { 7856, 0xffc3 }, { 7868, 0xffff }, + { 7884, 0xffff }, { 7900, 0xffff }, { 7916, 0x0d7f }, { 7926, 0xfcee }, + { 7938, 0xffff }, { 7954, 0xffff }, { 7970, 0xffff }, { 7986, 0x8c7f }, + { 7996, 0xffff }, { 8012, 0xffff }, { 8028, 0xc7ff }, { 8041, 0xffd7 }, + /* 0x5600 */ + { 8055, 0xffff }, { 8071, 0xfbff }, { 8086, 0xffc5 }, { 8098, 0xffff }, + { 8114, 0xffff }, { 8130, 0xc7ff }, { 8143, 0xffff }, { 8159, 0xefff }, + { 8174, 0xffff }, { 8190, 0xffff }, { 8206, 0xffe1 }, { 8218, 0xffff }, + { 8234, 0xbfff }, { 8249, 0xff9f }, { 8263, 0xfffb }, { 8278, 0xbfcf }, + /* 0x5700 */ + { 8291, 0xffbf }, { 8306, 0xfdff }, { 8321, 0xffbf }, { 8336, 0xf87f }, + { 8348, 0xffff }, { 8364, 0x8bff }, { 8376, 0xfffe }, { 8391, 0xffff }, + { 8407, 0xfd8f }, { 8419, 0xffff }, { 8435, 0x5fff }, { 8449, 0xfff0 }, + { 8461, 0xffff }, { 8477, 0xf8bf }, { 8489, 0xffff }, { 8505, 0xffff }, + /* 0x5800 */ + { 8521, 0xffff }, { 8537, 0xff9d }, { 8550, 0xffff }, { 8566, 0xffff }, + { 8582, 0xffbd }, { 8596, 0xffff }, { 8612, 0xbfff }, { 8627, 0xfffe }, + { 8642, 0xffff }, { 8658, 0xfdff }, { 8673, 0xffff }, { 8689, 0xfcbf }, + { 8702, 0xe7ff }, { 8716, 0xff7f }, { 8731, 0xdbdf }, { 8744, 0xfebf }, + /* 0x5900 */ + { 8758, 0xff7f }, { 8773, 0xbfff }, { 8788, 0xffff }, { 8804, 0xf1ff }, + { 8817, 0xfff9 }, { 8831, 0xffbf }, { 8846, 0xffff }, { 8862, 0xffff }, + { 8878, 0xfe7f }, { 8892, 0xffff }, { 8908, 0xf1ff }, { 8921, 0xffff }, + { 8937, 0xffff }, { 8953, 0xffff }, { 8969, 0xffff }, { 8985, 0xffff }, + /* 0x5a00 */ + { 9001, 0xfe1f }, { 9013, 0xffff }, { 9029, 0xffff }, { 9045, 0xffeb }, + { 9059, 0xffff }, { 9075, 0xffff }, { 9091, 0xffff }, { 9107, 0xffaf }, + { 9121, 0xffff }, { 9137, 0xffff }, { 9153, 0xdfff }, { 9168, 0xffff }, + { 9184, 0xffff }, { 9200, 0xffeb }, { 9214, 0xffff }, { 9230, 0xfff9 }, + /* 0x5b00 */ + { 9244, 0xffff }, { 9260, 0xffff }, { 9276, 0xffff }, { 9292, 0xffbf }, + { 9307, 0xffff }, { 9323, 0xbdff }, { 9337, 0xdfff }, { 9352, 0xffff }, + { 9368, 0xffff }, { 9384, 0xfffd }, { 9399, 0xfbfc }, { 9412, 0xdfff }, + { 9427, 0xfdff }, { 9442, 0xffff }, { 9458, 0xffff }, { 9474, 0xe7ff }, + /* 0x5c00 */ + { 9488, 0xfffb }, { 9503, 0xcfff }, { 9517, 0xbf3f }, { 9530, 0xffeb }, + { 9544, 0xfff3 }, { 9558, 0xffff }, { 9574, 0xffbf }, { 9589, 0x7fbb }, + { 9602, 0xfff3 }, { 9616, 0xf2bf }, { 9628, 0xffff }, { 9644, 0x0fff }, + { 9656, 0xffc3 }, { 9668, 0xffff }, { 9684, 0xff66 }, { 9696, 0xffff }, + /* 0x5d00 */ + { 9712, 0xffc3 }, { 9724, 0xffff }, { 9740, 0xdfff }, { 9755, 0xffff }, + { 9771, 0xffff }, { 9787, 0xcaff }, { 9799, 0xffff }, { 9815, 0xffbf }, + { 9830, 0xffff }, { 9846, 0xffff }, { 9862, 0xffff }, { 9878, 0xffff }, + { 9894, 0xffdf }, { 9909, 0xffff }, { 9925, 0x4bff }, { 9937, 0xefff }, + /* 0x5e00 */ + { 9952, 0x7fdf }, { 9966, 0xeffe }, { 9980, 0xff3f }, { 9994, 0xe7fd }, + { 10007, 0xfdff }, { 10022, 0xffff }, { 10038, 0xffff }, { 10054, 0xffff }, + { 10070, 0xffbf }, { 10085, 0x3fe5 }, { 10096, 0xffff }, { 10112, 0xefff }, + { 10127, 0xffff }, { 10143, 0xffff }, { 10159, 0xffef }, { 10174, 0xffff }, + /* 0x5f00 */ + { 10190, 0xfdff }, { 10205, 0xffbf }, { 10220, 0xfbfe }, { 10234, 0xffff }, + { 10250, 0xffdf }, { 10265, 0x7fff }, { 10280, 0xfeff }, { 10295, 0xf7ff }, + { 10310, 0xffff }, { 10326, 0xffdf }, { 10341, 0xffff }, { 10357, 0xffff }, + { 10373, 0xffbf }, { 10388, 0xffff }, { 10404, 0xffff }, { 10420, 0xffff }, + /* 0x6000 */ + { 10436, 0xff81 }, { 10446, 0xffff }, { 10462, 0xffff }, { 10478, 0x23ff }, + { 10489, 0xffff }, { 10505, 0xffff }, { 10521, 0xffff }, { 10537, 0xd03f }, + { 10546, 0xffff }, { 10562, 0xffff }, { 10578, 0x47ff }, { 10590, 0xffff }, + { 10606, 0xffff }, { 10622, 0xffff }, { 10638, 0x47ff }, { 10650, 0xffff }, + /* 0x6100 */ + { 10666, 0xffff }, { 10682, 0xffff }, { 10698, 0xffaf }, { 10712, 0xffff }, + { 10728, 0xffff }, { 10744, 0xfffd }, { 10759, 0xffff }, { 10775, 0xffff }, + { 10791, 0xffff }, { 10807, 0xffff }, { 10823, 0xffff }, { 10839, 0xffff }, + { 10855, 0xffff }, { 10871, 0xffe9 }, { 10884, 0xffff }, { 10900, 0xffef }, + /* 0x6200 */ + { 10915, 0xf7bf }, { 10929, 0xff7f }, { 10944, 0xffff }, { 10960, 0xffff }, + { 10976, 0xffef }, { 10991, 0xff9f }, { 11005, 0xe1ff }, { 11017, 0xffff }, + { 11033, 0xffff }, { 11049, 0x7fff }, { 11064, 0xfff8 }, { 11077, 0xffff }, + { 11093, 0xffff }, { 11109, 0xffff }, { 11125, 0xfc13 }, { 11134, 0xffff }, + /* 0x6300 */ + { 11150, 0xffff }, { 11166, 0x8aff }, { 11177, 0xff0a }, { 11187, 0xffff }, + { 11203, 0xffff }, { 11219, 0x3fff }, { 11233, 0xfff1 }, { 11246, 0xffff }, + { 11262, 0xffff }, { 11278, 0xffff }, { 11294, 0xffff }, { 11310, 0xe447 }, + { 11318, 0xffff }, { 11334, 0xffff }, { 11350, 0xffff }, { 11366, 0x47ff }, + /* 0x6400 */ + { 11378, 0xffc8 }, { 11389, 0xffff }, { 11405, 0xffff }, { 11421, 0xffff }, + { 11437, 0xfacb }, { 11448, 0xffff }, { 11464, 0xffff }, { 11480, 0xffff }, + { 11496, 0xffef }, { 11511, 0xffff }, { 11527, 0xffff }, { 11543, 0xfa5f }, + { 11555, 0xffff }, { 11571, 0x9fff }, { 11585, 0xffff }, { 11601, 0xffff }, + /* 0x6500 */ + { 11617, 0xffff }, { 11633, 0xfffb }, { 11648, 0xffff }, { 11664, 0xffff }, + { 11680, 0xffff }, { 11696, 0xf7ff }, { 11711, 0xfdff }, { 11726, 0x9fff }, + { 11740, 0x7fbf }, { 11754, 0xfff7 }, { 11769, 0xfdff }, { 11784, 0xffff }, + { 11800, 0xfffe }, { 11815, 0xffdf }, { 11830, 0xffff }, { 11846, 0xfe7f }, + /* 0x6600 */ + { 11860, 0xffff }, { 11876, 0xffff }, { 11892, 0xffff }, { 11908, 0x1fff }, + { 11921, 0xffff }, { 11937, 0xff87 }, { 11949, 0xffff }, { 11965, 0xffff }, + { 11981, 0xfff3 }, { 11995, 0xffff }, { 12011, 0xff7f }, { 12026, 0xffff }, + { 12042, 0xffff }, { 12058, 0xffff }, { 12074, 0xffff }, { 12090, 0xd7ff }, + /* 0x6700 */ + { 12104, 0xffff }, { 12120, 0xffff }, { 12136, 0xfdff }, { 12151, 0xfffe }, + { 12166, 0xfff5 }, { 12180, 0xffff }, { 12196, 0xfc67 }, { 12207, 0xffff }, + { 12223, 0xffff }, { 12239, 0xffff }, { 12255, 0xd05e }, { 12263, 0xffff }, + { 12279, 0xffff }, { 12295, 0xffff }, { 12311, 0xffff }, { 12327, 0xdfff }, + /* 0x6800 */ + { 12342, 0x0073 }, { 12347, 0xffff }, { 12363, 0xffff }, { 12379, 0xffff }, + { 12395, 0xffff }, { 12411, 0x47ff }, { 12423, 0xf800 }, { 12428, 0xffff }, + { 12444, 0xdfff }, { 12459, 0xffff }, { 12475, 0xffff }, { 12491, 0x23ff }, + { 12502, 0xfffa }, { 12516, 0xffff }, { 12532, 0xffff }, { 12548, 0xffff }, + /* 0x6900 */ + { 12564, 0xffff }, { 12580, 0x59ff }, { 12592, 0xdea0 }, { 12600, 0xffff }, + { 12616, 0xffff }, { 12632, 0xffff }, { 12648, 0xffff }, { 12664, 0xbfff }, + { 12679, 0xf46d }, { 12689, 0xffff }, { 12705, 0xffff }, { 12721, 0xffff }, + { 12737, 0xffff }, { 12753, 0x03ff }, { 12763, 0xfffe }, { 12778, 0xffff }, + /* 0x6a00 */ + { 12794, 0xffff }, { 12810, 0xffff }, { 12826, 0x3fff }, { 12840, 0xfffc }, + { 12854, 0xffff }, { 12870, 0xffff }, { 12886, 0xffff }, { 12902, 0xe5c7 }, + { 12912, 0xffff }, { 12928, 0xffff }, { 12944, 0xfdff }, { 12959, 0xffff }, + { 12975, 0xfdff }, { 12990, 0xffff }, { 13006, 0xffef }, { 13021, 0xff7f }, + /* 0x6b00 */ + { 13036, 0xffdf }, { 13051, 0x7fff }, { 13066, 0xffff }, { 13082, 0xffff }, + { 13098, 0xffff }, { 13114, 0xffff }, { 13130, 0xffff }, { 13146, 0xefff }, + { 13161, 0xff7f }, { 13176, 0xfbf3 }, { 13189, 0xffff }, { 13205, 0xfffd }, + { 13220, 0xfffb }, { 13235, 0x7ddf }, { 13248, 0xbfff }, { 13263, 0xffff }, + /* 0x6c00 */ + { 13279, 0xbf7f }, { 13293, 0xff7f }, { 13308, 0xfdfb }, { 13322, 0xdbdf }, + { 13335, 0xfe7f }, { 13349, 0xffff }, { 13365, 0xffef }, { 13380, 0xffff }, + { 13396, 0xffff }, { 13412, 0xffff }, { 13428, 0xfc0f }, { 13438, 0xffff }, + { 13454, 0xffff }, { 13470, 0xffff }, { 13486, 0xffff }, { 13502, 0x823f }, + /* 0x6d00 */ + { 13510, 0xffff }, { 13526, 0xffff }, { 13542, 0xffff }, { 13558, 0xffff }, + { 13574, 0x003f }, { 13580, 0xffc0 }, { 13590, 0xffff }, { 13606, 0xffff }, + { 13622, 0xffff }, { 13638, 0x0fff }, { 13650, 0xfc20 }, { 13657, 0xffff }, + { 13673, 0xffff }, { 13689, 0xffff }, { 13705, 0xffff }, { 13721, 0xffff }, + /* 0x6e00 */ + { 13737, 0x9fff }, { 13751, 0xffa4 }, { 13762, 0xffff }, { 13778, 0xffff }, + { 13794, 0xffff }, { 13810, 0xffff }, { 13826, 0xffff }, { 13842, 0x7fff }, + { 13857, 0xef55 }, { 13868, 0xffff }, { 13884, 0xffff }, { 13900, 0xffff }, + { 13916, 0xffff }, { 13932, 0x3fff }, { 13946, 0xfb48 }, { 13955, 0xffff }, + /* 0x6f00 */ + { 13971, 0xffff }, { 13987, 0xffff }, { 14003, 0xffff }, { 14019, 0xffff }, + { 14035, 0xd77f }, { 14048, 0xffff }, { 14064, 0xffff }, { 14080, 0xffff }, + { 14096, 0xffff }, { 14112, 0xe7ff }, { 14126, 0xffff }, { 14142, 0xffff }, + { 14158, 0xffff }, { 14174, 0xfff9 }, { 14188, 0xffff }, { 14204, 0xfdff }, + /* 0x7000 */ + { 14219, 0xffff }, { 14235, 0xffff }, { 14251, 0xffff }, { 14267, 0xffff }, + { 14283, 0x3fff }, { 14297, 0xfffe }, { 14312, 0xdfff }, { 14327, 0xffff }, + { 14343, 0xfffe }, { 14358, 0x8fff }, { 14371, 0xffff }, { 14387, 0xcfff }, + { 14401, 0xfff1 }, { 14414, 0xffff }, { 14430, 0xc43f }, { 14439, 0xffff }, + /* 0x7100 */ + { 14455, 0xffff }, { 14471, 0xfe8f }, { 14483, 0xffff }, { 14499, 0xafff }, + { 14513, 0xfffe }, { 14528, 0xffdf }, { 14543, 0xffff }, { 14559, 0xfff7 }, + { 14574, 0xffff }, { 14590, 0xffff }, { 14606, 0xffff }, { 14622, 0xffff }, + { 14638, 0xffff }, { 14654, 0xffff }, { 14670, 0xffff }, { 14686, 0xff3f }, + /* 0x7200 */ + { 14700, 0xffff }, { 14716, 0xffff }, { 14732, 0xffff }, { 14748, 0xff75 }, + { 14761, 0xdfff }, { 14776, 0xefff }, { 14791, 0xffff }, { 14807, 0xffdf }, + { 14822, 0xfbff }, { 14837, 0xffff }, { 14853, 0xfffe }, { 14868, 0xfe7f }, + { 14882, 0xfeff }, { 14897, 0xbfff }, { 14912, 0x3fff }, { 14926, 0xfff8 }, + /* 0x7300 */ + { 14939, 0xfff7 }, { 14954, 0x7fff }, { 14969, 0xfffc }, { 14983, 0xfdff }, + { 14998, 0xffff }, { 15014, 0xffff }, { 15030, 0xdfe7 }, { 15043, 0xffff }, + { 15059, 0xffff }, { 15075, 0xf1ff }, { 15088, 0xbfff }, { 15103, 0xfffc }, + { 15117, 0xffff }, { 15133, 0xfffd }, { 15148, 0xffff }, { 15164, 0xfff8 }, + /* 0x7400 */ + { 15177, 0x3fff }, { 15191, 0xfffc }, { 15205, 0xffff }, { 15221, 0xff7f }, + { 15236, 0xffff }, { 15252, 0xffff }, { 15268, 0xffff }, { 15284, 0xff7f }, + { 15299, 0xbfff }, { 15314, 0xffff }, { 15330, 0xffff }, { 15346, 0xffff }, + { 15362, 0xffff }, { 15378, 0xfffb }, { 15393, 0xff7f }, { 15408, 0xeff8 }, + /* 0x7500 */ + { 15420, 0xffdf }, { 15435, 0xfdff }, { 15450, 0xffff }, { 15466, 0xefcf }, + { 15479, 0xffdf }, { 15494, 0xfffb }, { 15509, 0xfdfe }, { 15523, 0xffe7 }, + { 15537, 0xdffb }, { 15551, 0x7f3f }, { 15564, 0x0ffc }, { 15574, 0xffff }, + { 15590, 0xfcff }, { 15604, 0xffbf }, { 15619, 0xf0ff }, { 15631, 0xffff }, + /* 0x7600 */ + { 15647, 0xff8f }, { 15660, 0xfe7f }, { 15674, 0xf3ff }, { 15688, 0x3fff }, + { 15702, 0xdfff }, { 15717, 0x9fff }, { 15731, 0xf7b7 }, { 15744, 0xfbff }, + { 15759, 0xffff }, { 15775, 0xfffd }, { 15790, 0xffff }, { 15806, 0xfff9 }, + { 15820, 0x7fff }, { 15835, 0xfffc }, { 15849, 0xffff }, { 15865, 0xffff }, + /* 0x7700 */ + { 15881, 0xcfff }, { 15895, 0xffff }, { 15911, 0xefff }, { 15926, 0xffff }, + { 15942, 0xffff }, { 15958, 0xfffc }, { 15972, 0xffff }, { 15988, 0xffff }, + { 16004, 0xffbf }, { 16019, 0xfff3 }, { 16033, 0xffff }, { 16049, 0xffff }, + { 16065, 0xf6ff }, { 16079, 0xffff }, { 16095, 0xf7ff }, { 16110, 0x7fff }, + /* 0x7800 */ + { 16125, 0xfffc }, { 16139, 0xeb3f }, { 16151, 0xffff }, { 16167, 0x21ff }, + { 16177, 0xfffc }, { 16191, 0xf11f }, { 16201, 0xffff }, { 16217, 0xff43 }, + { 16228, 0xffff }, { 16244, 0xf7ff }, { 16259, 0xffff }, { 16275, 0xff9f }, + { 16289, 0xffff }, { 16305, 0xfd7f }, { 16319, 0xffff }, { 16335, 0xffdf }, + /* 0x7900 */ + { 16350, 0xfff7 }, { 16365, 0xffbf }, { 16380, 0xffff }, { 16396, 0xf7e7 }, + { 16409, 0xbff7 }, { 16423, 0xffff }, { 16439, 0x7fff }, { 16454, 0xfeff }, + { 16469, 0xffdf }, { 16484, 0xffff }, { 16500, 0xffff }, { 16516, 0xffff }, + { 16532, 0xffff }, { 16548, 0xffff }, { 16564, 0x7fff }, { 16579, 0x9fef }, + /* 0x7a00 */ + { 16592, 0xffff }, { 16608, 0xffff }, { 16624, 0xffe7 }, { 16638, 0xffff }, + { 16654, 0xfff7 }, { 16669, 0x9ff9 }, { 16681, 0xfff7 }, { 16696, 0xff7f }, + { 16711, 0x9fff }, { 16725, 0xcfff }, { 16739, 0xdf9f }, { 16752, 0xffff }, + { 16768, 0xfff7 }, { 16783, 0xbfbf }, { 16797, 0xffff }, { 16813, 0xffff }, + /* 0x7b00 */ + { 16829, 0xff73 }, { 16842, 0xffdf }, { 16857, 0xffff }, { 16873, 0xabff }, + { 16886, 0xffff }, { 16902, 0xc3ff }, { 16914, 0xffff }, { 16930, 0x0bff }, + { 16941, 0xfffe }, { 16956, 0xfbff }, { 16971, 0xf03f }, { 16981, 0xffff }, + { 16997, 0x7fff }, { 17012, 0xfff1 }, { 17025, 0x3fff }, { 17039, 0xffff }, + /* 0x7c00 */ + { 17055, 0xffff }, { 17071, 0xff37 }, { 17084, 0xffff }, { 17100, 0xfffd }, + { 17115, 0xfffd }, { 17130, 0xffff }, { 17146, 0xfffd }, { 17161, 0xffff }, + { 17177, 0x7ffb }, { 17191, 0xfffe }, { 17206, 0xdbff }, { 17220, 0xffff }, + { 17236, 0xffff }, { 17252, 0xfeff }, { 17267, 0xffff }, { 17283, 0xfdff }, + /* 0x7d00 */ + { 17298, 0xffff }, { 17314, 0xffff }, { 17330, 0xff3f }, { 17344, 0xffff }, + { 17360, 0xffff }, { 17376, 0xffff }, { 17392, 0xffff }, { 17408, 0xff7f }, + { 17423, 0xffff }, { 17439, 0xf3ff }, { 17453, 0xffff }, { 17469, 0xffff }, + { 17485, 0xffff }, { 17501, 0xffcf }, { 17515, 0xffff }, { 17531, 0xffff }, + /* 0x7e00 */ + { 17547, 0xff9f }, { 17561, 0xffff }, { 17577, 0xfeff }, { 17592, 0xffff }, + { 17608, 0xf3ff }, { 17622, 0xffff }, { 17638, 0xff7f }, { 17653, 0xffff }, + { 17669, 0xfff7 }, { 17684, 0x7ffe }, { 17698, 0x0000 }, { 17698, 0x0000 }, + { 17698, 0x0000 }, { 17698, 0x0000 }, { 17698, 0x0000 }, { 17698, 0x0000 }, + /* 0x7f00 */ + { 17698, 0x0000 }, { 17698, 0x0000 }, { 17698, 0x0000 }, { 17698, 0xffc0 }, + { 17708, 0xfdfb }, { 17722, 0xfbb7 }, { 17735, 0xffff }, { 17751, 0xffef }, + { 17766, 0xfffd }, { 17781, 0x7fff }, { 17796, 0xfbff }, { 17811, 0xffff }, + { 17827, 0xffff }, { 17843, 0xf8ff }, { 17856, 0xffff }, { 17872, 0xffff }, + /* 0x8000 */ + { 17888, 0xffff }, { 17904, 0xffff }, { 17920, 0xff7b }, { 17934, 0xffff }, + { 17950, 0xc7fb }, { 17962, 0xffef }, { 17977, 0xfdfb }, { 17991, 0xffff }, + { 18007, 0xfff6 }, { 18021, 0xffff }, { 18037, 0xfffe }, { 18052, 0x0fff }, + { 18064, 0xfffc }, { 18078, 0xffff }, { 18094, 0xe07f }, { 18104, 0xffff }, + /* 0x8100 */ + { 18120, 0x07ff }, { 18131, 0xfff0 }, { 18143, 0xffff }, { 18159, 0xfe13 }, + { 18169, 0xffff }, { 18185, 0xf93f }, { 18197, 0xffff }, { 18213, 0xa7ff }, + { 18226, 0xffff }, { 18242, 0xfffd }, { 18257, 0xffcf }, { 18271, 0xffbf }, + { 18286, 0xffff }, { 18302, 0xeff7 }, { 18316, 0xffff }, { 18332, 0xffff }, + /* 0x8200 */ + { 18348, 0xffbf }, { 18363, 0xff7f }, { 18378, 0xbff7 }, { 18392, 0xb7fc }, + { 18404, 0xdfff }, { 18419, 0xdfef }, { 18433, 0xfffe }, { 18448, 0xfbfe }, + { 18462, 0xfefb }, { 18476, 0xff7f }, { 18491, 0xffff }, { 18507, 0xffff }, + { 18523, 0x063f }, { 18531, 0xffff }, { 18547, 0xffff }, { 18563, 0xffff }, + /* 0x8300 */ + { 18579, 0x7fff }, { 18594, 0xffc5 }, { 18606, 0xffff }, { 18622, 0xffff }, + { 18638, 0xffff }, { 18654, 0x01ff }, { 18663, 0x000c }, { 18665, 0xffff }, + { 18681, 0xffff }, { 18697, 0xffff }, { 18713, 0xffff }, { 18729, 0xe281 }, + { 18735, 0xffff }, { 18751, 0xffff }, { 18767, 0xffff }, { 18783, 0xffff }, + /* 0x8400 */ + { 18799, 0xffff }, { 18815, 0xc9ff }, { 18827, 0xfe0a }, { 18836, 0xffff }, + { 18852, 0xffff }, { 18868, 0xffff }, { 18884, 0xffff }, { 18900, 0xffff }, + { 18916, 0xe15f }, { 18926, 0xffff }, { 18942, 0xffff }, { 18958, 0xffff }, + { 18974, 0xffff }, { 18990, 0x4dff }, { 19002, 0xff96 }, { 19014, 0xffff }, + /* 0x8500 */ + { 19030, 0xffff }, { 19046, 0xffff }, { 19062, 0xffff }, { 19078, 0xe93f }, + { 19089, 0xffff }, { 19105, 0xffff }, { 19121, 0xffff }, { 19137, 0xffeb }, + { 19151, 0xffff }, { 19167, 0xffff }, { 19183, 0x9fff }, { 19197, 0xffff }, + { 19213, 0xffff }, { 19229, 0xfff7 }, { 19244, 0xffff }, { 19260, 0xffff }, + /* 0x8600 */ + { 19276, 0xffff }, { 19292, 0xffeb }, { 19306, 0xffff }, { 19322, 0xfffe }, + { 19337, 0x7fef }, { 19351, 0xffff }, { 19367, 0xffff }, { 19383, 0x7fff }, + { 19398, 0xfff0 }, { 19410, 0xffff }, { 19426, 0xe7ff }, { 19440, 0xffff }, + { 19456, 0x9fff }, { 19470, 0xffff }, { 19486, 0x7fff }, { 19501, 0xffe0 }, + /* 0x8700 */ + { 19512, 0xffff }, { 19528, 0xff7f }, { 19543, 0xffff }, { 19559, 0xffff }, + { 19575, 0xf4ff }, { 19588, 0xffff }, { 19604, 0xffff }, { 19620, 0x3fff }, + { 19634, 0xfffe }, { 19649, 0xffff }, { 19665, 0xfe3f }, { 19678, 0xffff }, + { 19694, 0x7fff }, { 19709, 0xfffe }, { 19724, 0xffff }, { 19740, 0xffff }, + /* 0x8800 */ + { 19756, 0xffff }, { 19772, 0xffff }, { 19788, 0xffff }, { 19804, 0xffff }, + { 19820, 0xffff }, { 19836, 0xffef }, { 19851, 0xefcf }, { 19864, 0xffff }, + { 19880, 0xff9f }, { 19894, 0xffff }, { 19910, 0x1fff }, { 19923, 0xfffe }, + { 19938, 0xfe07 }, { 19948, 0xffff }, { 19964, 0xffc3 }, { 19976, 0xffff }, + /* 0x8900 */ + { 19992, 0xffef }, { 20007, 0xcfff }, { 20021, 0xffff }, { 20037, 0xffef }, + { 20052, 0xff5f }, { 20066, 0xffdf }, { 20081, 0xfeff }, { 20096, 0xffff }, + { 20112, 0xfffe }, { 20127, 0xffff }, { 20143, 0xffff }, { 20159, 0xffff }, + { 20175, 0x0001 }, { 20176, 0xbffc }, { 20189, 0x7fff }, { 20204, 0xffff }, + /* 0x8a00 */ + { 20220, 0xfffd }, { 20235, 0xfbff }, { 20250, 0xffff }, { 20266, 0xfff7 }, + { 20281, 0xffff }, { 20297, 0x7fff }, { 20312, 0xffff }, { 20328, 0xffff }, + { 20344, 0xf9ff }, { 20358, 0xffff }, { 20374, 0xbfff }, { 20389, 0xffff }, + { 20405, 0xffff }, { 20421, 0xfbff }, { 20436, 0xffff }, { 20452, 0xffff }, + /* 0x8b00 */ + { 20468, 0xffff }, { 20484, 0xffff }, { 20500, 0xfffd }, { 20515, 0xffff }, + { 20531, 0xffff }, { 20547, 0xf7ff }, { 20562, 0xffff }, { 20578, 0xfffb }, + { 20593, 0x7fff }, { 20608, 0xffff }, { 20624, 0x0000 }, { 20624, 0x0000 }, + { 20624, 0x0000 }, { 20624, 0x0000 }, { 20624, 0x0000 }, { 20624, 0x0000 }, + /* 0x8c00 */ + { 20624, 0x0000 }, { 20624, 0x0000 }, { 20624, 0x0000 }, { 20624, 0xff80 }, + { 20633, 0xffff }, { 20649, 0xffff }, { 20665, 0xbfff }, { 20680, 0xffff }, + { 20696, 0xffff }, { 20712, 0xffff }, { 20728, 0xffff }, { 20744, 0xffff }, + { 20760, 0xbfff }, { 20775, 0xffff }, { 20791, 0xffff }, { 20807, 0xffff }, + /* 0x8d00 */ + { 20823, 0xffff }, { 20839, 0x1fff }, { 20852, 0x0000 }, { 20852, 0x0000 }, + { 20852, 0x0000 }, { 20852, 0x0000 }, { 20852, 0xfbf0 }, { 20863, 0xffdf }, + { 20878, 0xffff }, { 20894, 0xffff }, { 20910, 0xffff }, { 20926, 0xfefd }, + { 20940, 0xffef }, { 20955, 0xbfff }, { 20970, 0xffdf }, { 20985, 0xf41f }, + /* 0x8e00 */ + { 20995, 0xafff }, { 21009, 0xffff }, { 21025, 0x4fff }, { 21038, 0xffff }, + { 21054, 0xffff }, { 21070, 0xfffb }, { 21085, 0xffff }, { 21101, 0x1fff }, + { 21114, 0x7ffe }, { 21128, 0xe7ff }, { 21142, 0xffff }, { 21158, 0xf7df }, + { 21172, 0xfedf }, { 21186, 0xffff }, { 21202, 0xfff3 }, { 21216, 0xffff }, + /* 0x8f00 */ + { 21232, 0xefff }, { 21247, 0xffff }, { 21263, 0xffff }, { 21279, 0xffff }, + { 21295, 0xefff }, { 21310, 0xffff }, { 21326, 0x003f }, { 21332, 0x0000 }, + { 21332, 0x0000 }, { 21332, 0xf800 }, { 21337, 0xf5ff }, { 21351, 0xdbff }, + { 21365, 0xffff }, { 21381, 0x93ff }, { 21393, 0xffff }, { 21409, 0xfff3 }, + /* 0x9000 */ + { 21423, 0xfbff }, { 21438, 0xffff }, { 21454, 0xff3f }, { 21468, 0xfdff }, + { 21483, 0xffff }, { 21499, 0xff3f }, { 21513, 0xffdf }, { 21528, 0xffff }, + { 21544, 0xffff }, { 21560, 0xdfff }, { 21575, 0xefff }, { 21590, 0xf3ff }, + { 21604, 0x7fff }, { 21619, 0xfff4 }, { 21632, 0xff3f }, { 21646, 0xfeff }, + /* 0x9100 */ + { 21661, 0xffff }, { 21677, 0xffff }, { 21693, 0xffff }, { 21709, 0xffff }, + { 21725, 0xfffb }, { 21740, 0x97ff }, { 21753, 0xffbf }, { 21768, 0x1ffd }, + { 21780, 0xffff }, { 21796, 0xff7f }, { 21811, 0xffef }, { 21826, 0xfeff }, + { 21841, 0xfaff }, { 21855, 0xfffb }, { 21870, 0xfffd }, { 21885, 0xe3ff }, + /* 0x9200 */ + { 21898, 0xffff }, { 21914, 0xffff }, { 21930, 0xe8ff }, { 21942, 0xffff }, + { 21958, 0xffff }, { 21974, 0xffff }, { 21990, 0xffff }, { 22006, 0xfffd }, + { 22021, 0xffff }, { 22037, 0xffff }, { 22053, 0xffff }, { 22069, 0xffff }, + { 22085, 0xffff }, { 22101, 0xffff }, { 22117, 0xffff }, { 22133, 0xffff }, + /* 0x9300 */ + { 22149, 0xffff }, { 22165, 0xffff }, { 22181, 0xffff }, { 22197, 0xbfff }, + { 22212, 0xffed }, { 22226, 0xffff }, { 22242, 0xffff }, { 22258, 0xffff }, + { 22274, 0xffff }, { 22290, 0xffff }, { 22306, 0xffff }, { 22322, 0xfbff }, + { 22337, 0xffff }, { 22353, 0xffff }, { 22369, 0xffff }, { 22385, 0xfffe }, + /* 0x9400 */ + { 22400, 0xffff }, { 22416, 0xffff }, { 22432, 0xffbd }, { 22446, 0xffff }, + { 22462, 0xfffd }, { 22477, 0xfff7 }, { 22492, 0xffff }, { 22508, 0xffff }, + { 22524, 0x001f }, { 22529, 0x0000 }, { 22529, 0x0000 }, { 22529, 0x0000 }, + { 22529, 0x0000 }, { 22529, 0x0000 }, { 22529, 0x0000 }, { 22529, 0x0000 }, + /* 0x9500 */ + { 22529, 0x0000 }, { 22529, 0x0000 }, { 22529, 0x0000 }, { 22529, 0x0000 }, + { 22529, 0x0000 }, { 22529, 0x0000 }, { 22529, 0x0000 }, { 22529, 0x7f80 }, + { 22537, 0xfbff }, { 22552, 0xffff }, { 22568, 0xfbff }, { 22583, 0xffff }, + { 22599, 0x7fff }, { 22614, 0xffff }, { 22630, 0x00ff }, { 22638, 0x0020 }, + /* 0x9600 */ + { 22639, 0x0000 }, { 22639, 0x7000 }, { 22642, 0xffff }, { 22658, 0xff9f }, + { 22672, 0xfc1f }, { 22683, 0xffff }, { 22699, 0xfc1f }, { 22710, 0xfbff }, + { 22725, 0xffff }, { 22741, 0xfffe }, { 22756, 0xffff }, { 22772, 0xffff }, + { 22788, 0xffff }, { 22804, 0xffff }, { 22820, 0xfffe }, { 22835, 0xbff7 }, + /* 0x9700 */ + { 22849, 0xfffd }, { 22864, 0xffff }, { 22880, 0xdfff }, { 22895, 0xffff }, + { 22911, 0x2fff }, { 22924, 0xffe7 }, { 22938, 0xffdf }, { 22953, 0xfffd }, + { 22968, 0xffbf }, { 22983, 0xfff8 }, { 22996, 0x7fff }, { 23011, 0xffff }, + { 23027, 0xffff }, { 23043, 0xffff }, { 23059, 0xe03f }, { 23068, 0xffff }, + /* 0x9800 */ + { 23084, 0xffff }, { 23100, 0xffff }, { 23116, 0xefff }, { 23131, 0xffff }, + { 23147, 0xffff }, { 23163, 0xffff }, { 23179, 0xffff }, { 23195, 0x001f }, + { 23200, 0x0000 }, { 23200, 0x0000 }, { 23200, 0xfb00 }, { 23207, 0xffef }, + { 23222, 0x3fdf }, { 23235, 0xb800 }, { 23239, 0xbefe }, { 23252, 0xffff }, + /* 0x9900 */ + { 23268, 0x5fff }, { 23282, 0xffff }, { 23298, 0xffff }, { 23314, 0xffff }, + { 23330, 0xffff }, { 23346, 0xffff }, { 23362, 0x0003 }, { 23364, 0x0000 }, + { 23364, 0x0000 }, { 23364, 0xffc0 }, { 23374, 0xffff }, { 23390, 0xffff }, + { 23406, 0xffdf }, { 23421, 0xffff }, { 23437, 0xffff }, { 23453, 0xfffb }, + /* 0x9a00 */ + { 23468, 0xffff }, { 23484, 0xfff3 }, { 23498, 0xfeff }, { 23513, 0xffff }, + { 23529, 0xffff }, { 23545, 0xffff }, { 23561, 0x0fff }, { 23573, 0x0000 }, + { 23573, 0x0000 }, { 23573, 0x0000 }, { 23573, 0xff00 }, { 23581, 0xffff }, + { 23597, 0xe7df }, { 23610, 0xffff }, { 23626, 0xffff }, { 23642, 0xffff }, + /* 0x9b00 */ + { 23658, 0xffff }, { 23674, 0xfff7 }, { 23689, 0xffff }, { 23705, 0xffbf }, + { 23720, 0xff7f }, { 23735, 0xbfff }, { 23750, 0xffff }, { 23766, 0xfeff }, + { 23781, 0xffff }, { 23797, 0xff7f }, { 23812, 0xffff }, { 23828, 0xffeb }, + { 23842, 0xbfff }, { 23857, 0xfffc }, { 23871, 0xffff }, { 23887, 0xffd9 }, + /* 0x9c00 */ + { 23900, 0xffff }, { 23916, 0xf8ff }, { 23929, 0xffff }, { 23945, 0xfffe }, + { 23960, 0xffff }, { 23976, 0xe3ff }, { 23989, 0xf1ff }, { 24002, 0x0ffe }, + { 24013, 0x0000 }, { 24013, 0x0000 }, { 24013, 0x0000 }, { 24013, 0x0000 }, + { 24013, 0x0000 }, { 24013, 0x0000 }, { 24013, 0xffe0 }, { 24024, 0xfffe }, + /* 0x9d00 */ + { 24039, 0xbfff }, { 24054, 0xffff }, { 24070, 0xe7ff }, { 24084, 0xffff }, + { 24100, 0xfebf }, { 24114, 0xffff }, { 24130, 0xffdf }, { 24145, 0xffff }, + { 24161, 0x1fff }, { 24174, 0xffff }, { 24190, 0xf7ff }, { 24205, 0xffff }, + { 24221, 0xffbf }, { 24236, 0xffff }, { 24252, 0xffff }, { 24268, 0xffff }, + /* 0x9e00 */ + { 24284, 0xffff }, { 24300, 0x7fff }, { 24315, 0x0000 }, { 24315, 0x0000 }, + { 24315, 0x0000 }, { 24315, 0x0000 }, { 24315, 0x0000 }, { 24315, 0xbee0 }, + { 24324, 0xffff }, { 24340, 0xffff }, { 24356, 0xffff }, { 24372, 0xf8ff }, + { 24385, 0xfdff }, { 24400, 0xffff }, { 24416, 0xf9fd }, { 24429, 0xffff }, + /* 0x9f00 */ + { 24445, 0xc7ff }, { 24458, 0xffff }, { 24474, 0xfffd }, { 24489, 0xffff }, + { 24505, 0xffff }, { 24521, 0xfffd }, { 24536, 0xfffb }, { 24551, 0x7fff }, + { 24566, 0xe000 }, { 24569, 0x73ff }, { 24582, 0x003f }, +}; +static const Summary16 cns11643_inv_uni2indx_pagefa[3] = { + /* 0xfa00 */ + { 24588, 0x0000 }, { 24588, 0x0000 }, { 24588, 0x0100 }, +}; +static const Summary16 cns11643_inv_uni2indx_pagefe[31] = { + /* 0xfe00 */ + { 24589, 0x0000 }, { 24589, 0x0000 }, { 24589, 0x0000 }, { 24589, 0xffe7 }, + { 24603, 0x7e1f }, { 24614, 0xfef7 }, { 24628, 0x0f7f }, { 24639, 0x0000 }, + { 24639, 0x0000 }, { 24639, 0x0000 }, { 24639, 0x0000 }, { 24639, 0x0000 }, + { 24639, 0x0000 }, { 24639, 0x0000 }, { 24639, 0x0000 }, { 24639, 0x0000 }, + /* 0xff00 */ + { 24639, 0xff7a }, { 24652, 0xffff }, { 24668, 0xffff }, { 24684, 0x97ff }, + { 24697, 0xfffe }, { 24712, 0x3fff }, { 24726, 0x0000 }, { 24726, 0x0000 }, + { 24726, 0x0000 }, { 24726, 0x0000 }, { 24726, 0x0000 }, { 24726, 0x0000 }, + { 24726, 0x0000 }, { 24726, 0x0000 }, { 24726, 0x0023 }, +}; +static const Summary16 cns11643_inv_uni2indx_page200[2670] = { + /* 0x20000 */ + { 24729, 0x8bbd }, { 24739, 0x0715 }, { 24745, 0x722f }, { 24754, 0x0860 }, + { 24757, 0x39ca }, { 24765, 0x08ec }, { 24771, 0xeaf6 }, { 24782, 0xe0d7 }, + { 24791, 0xb1fc }, { 24801, 0x5fbc }, { 24812, 0xd33d }, { 24822, 0xf6ff }, + { 24836, 0x8a5c }, { 24843, 0xc377 }, { 24853, 0x24f3 }, { 24861, 0x795f }, + /* 0x20100 */ + { 24872, 0xfff4 }, { 24885, 0xeefe }, { 24898, 0x751f }, { 24908, 0x03b7 }, + { 24916, 0x9fb9 }, { 24927, 0xe3fa }, { 24938, 0xfebf }, { 24952, 0x4071 }, + { 24957, 0xd6ff }, { 24970, 0x3004 }, { 24973, 0xb3f8 }, { 24983, 0x1ff5 }, + { 24994, 0x8ffc }, { 25005, 0xff11 }, { 25015, 0x0fff }, { 25027, 0xc096 }, + /* 0x20200 */ + { 25033, 0xfffb }, { 25048, 0xffe3 }, { 25061, 0xf787 }, { 25072, 0xffff }, + { 25088, 0xfff0 }, { 25100, 0x0977 }, { 25108, 0x7ffe }, { 25122, 0xffce }, + { 25135, 0x1dff }, { 25147, 0x4056 }, { 25152, 0x7ffd }, { 25166, 0x4fff }, + { 25179, 0xfffe }, { 25194, 0x287f }, { 25203, 0xffae }, { 25216, 0xffff }, + /* 0x20300 */ + { 25232, 0xfb81 }, { 25241, 0x119f }, { 25249, 0xfe03 }, { 25258, 0xdeff }, + { 25272, 0xff11 }, { 25282, 0xc17f }, { 25292, 0xdf84 }, { 25301, 0x0fff }, + { 25313, 0xfffc }, { 25327, 0x4fff }, { 25340, 0xd08e }, { 25347, 0xffcf }, + { 25361, 0xf59f }, { 25373, 0x04d7 }, { 25380, 0xff9e }, { 25393, 0x0dd1 }, + /* 0x20400 */ + { 25400, 0x7f41 }, { 25409, 0x8de4 }, { 25417, 0xcdfe }, { 25429, 0xfc6f }, + { 25441, 0xf037 }, { 25450, 0xbf8e }, { 25461, 0xefd0 }, { 25471, 0xeecc }, + { 25481, 0x3d7b }, { 25492, 0xcff9 }, { 25504, 0x2f1f }, { 25514, 0xbf7f }, + { 25528, 0xfb5c }, { 25539, 0xb9ac }, { 25548, 0xecb3 }, { 25558, 0x21db }, + /* 0x20500 */ + { 25566, 0xdfdf }, { 25580, 0xbfed }, { 25593, 0x8fa7 }, { 25603, 0x73fa }, + { 25614, 0x6d5e }, { 25624, 0xed5f }, { 25636, 0xf3fd }, { 25649, 0x2eef }, + { 25660, 0xb433 }, { 25668, 0xd6ff }, { 25681, 0x4acf }, { 25690, 0x3fd6 }, + { 25701, 0x7fff }, { 25716, 0x7fbe }, { 25729, 0xf5e6 }, { 25740, 0xfcfe }, + /* 0x20600 */ + { 25753, 0x7ff1 }, { 25765, 0xf9de }, { 25777, 0xfabf }, { 25790, 0xf5ef }, + { 25803, 0xbfc1 }, { 25813, 0xbf8f }, { 25825, 0xef87 }, { 25836, 0xefef }, + { 25850, 0xe9c7 }, { 25860, 0xefc6 }, { 25871, 0xffea }, { 25884, 0xff9f }, + { 25898, 0xe39f }, { 25909, 0x0fff }, { 25921, 0xffe1 }, { 25933, 0xfbf7 }, + /* 0x20700 */ + { 25947, 0x12c4 }, { 25952, 0xbfff }, { 25967, 0x016f }, { 25974, 0xffff }, + { 25990, 0x3f3f }, { 26002, 0xef06 }, { 26011, 0xe7bf }, { 26024, 0xe002 }, + { 26028, 0xffff }, { 26044, 0x311f }, { 26052, 0xfff0 }, { 26064, 0xf88f }, + { 26074, 0xfffe }, { 26089, 0x9fff }, { 26103, 0xffc0 }, { 26113, 0xfc2b }, + /* 0x20800 */ + { 26123, 0xe9ff }, { 26136, 0xf88d }, { 26145, 0xdccf }, { 26156, 0xfbdf }, + { 26170, 0x31de }, { 26179, 0xc3fe }, { 26190, 0xff47 }, { 26202, 0xfb37 }, + { 26214, 0xcff7 }, { 26227, 0x03fc }, { 26235, 0xa1ff }, { 26246, 0x9fdf }, + { 26259, 0xfffb }, { 26274, 0xf7de }, { 26287, 0xcfff }, { 26301, 0xffbb }, + /* 0x20900 */ + { 26315, 0xcfbb }, { 26327, 0xdfbf }, { 26341, 0xfd3f }, { 26354, 0xd77b }, + { 26366, 0xde3f }, { 26378, 0x7e4f }, { 26389, 0xfe6e }, { 26401, 0x6dff }, + { 26414, 0x31ed }, { 26423, 0xff7e }, { 26437, 0x3c7f }, { 26448, 0x70f3 }, + { 26457, 0xc517 }, { 26465, 0xdf9b }, { 26477, 0xff7f }, { 26492, 0x3ffc }, + /* 0x20a00 */ + { 26504, 0xebef }, { 26517, 0xff5d }, { 26530, 0xf0ad }, { 26539, 0x2ff7 }, + { 26551, 0xfc9f }, { 26563, 0xffc6 }, { 26575, 0xffdd }, { 26589, 0xff1f }, + { 26602, 0xffd0 }, { 26613, 0xff7e }, { 26627, 0xec75 }, { 26637, 0xfe29 }, + { 26647, 0x5387 }, { 26655, 0xc6bd }, { 26665, 0x1ff5 }, { 26676, 0x9e1b }, + /* 0x20b00 */ + { 26685, 0xc5f7 }, { 26696, 0xfd8b }, { 26707, 0xffee }, { 26721, 0xbffe }, + { 26735, 0xfebf }, { 26749, 0xffff }, { 26765, 0xffeb }, { 26779, 0xd97f }, + { 26791, 0xeffe }, { 26805, 0x7fff }, { 26820, 0xfdff }, { 26835, 0x0fbf }, + { 26846, 0xff46 }, { 26857, 0x7fff }, { 26872, 0x59fa }, { 26882, 0x0068 }, + /* 0x20c00 */ + { 26885, 0xff30 }, { 26895, 0x7fff }, { 26910, 0xfffe }, { 26925, 0x8165 }, + { 26931, 0x4001 }, { 26933, 0xffff }, { 26949, 0xfbff }, { 26964, 0xfe2f }, + { 26976, 0xdbff }, { 26990, 0x0089 }, { 26993, 0xee00 }, { 26999, 0xffff }, + { 27015, 0x7fff }, { 27030, 0xf800 }, { 27035, 0xcfff }, { 27049, 0x8f93 }, + /* 0x20d00 */ + { 27058, 0x0008 }, { 27059, 0x0000 }, { 27059, 0xffce }, { 27072, 0xffff }, + { 27088, 0x040f }, { 27093, 0xfffe }, { 27108, 0x0427 }, { 27113, 0x02a5 }, + { 27118, 0x0000 }, { 27118, 0x0000 }, { 27118, 0x7f80 }, { 27126, 0xfdbf }, + { 27140, 0xffff }, { 27156, 0xfffe }, { 27171, 0xff80 }, { 27180, 0x79ff }, + /* 0x20e00 */ + { 27193, 0x3011 }, { 27197, 0x2040 }, { 27199, 0x6000 }, { 27201, 0x8fef }, + { 27213, 0xffff }, { 27229, 0xdfff }, { 27244, 0x4fff }, { 27257, 0x8000 }, + { 27258, 0xffff }, { 27274, 0x0008 }, { 27275, 0x0014 }, { 27277, 0x0000 }, + { 27277, 0xf000 }, { 27281, 0xfff3 }, { 27295, 0xffff }, { 27311, 0xc043 }, + /* 0x20f00 */ + { 27316, 0xffff }, { 27332, 0x557f }, { 27343, 0x020c }, { 27346, 0x0000 }, + { 27346, 0x0000 }, { 27346, 0x3000 }, { 27348, 0xfffd }, { 27363, 0xff7f }, + { 27378, 0x1f7f }, { 27390, 0xffc0 }, { 27400, 0x84e3 }, { 27407, 0x0001 }, + { 27408, 0xffe0 }, { 27419, 0xffff }, { 27435, 0x40ff }, { 27444, 0xfc00 }, + /* 0x21000 */ + { 27450, 0xffff }, { 27466, 0x000d }, { 27469, 0x0000 }, { 27469, 0xbe00 }, + { 27475, 0xfbfe }, { 27489, 0x80ef }, { 27497, 0x3b3f }, { 27508, 0x0000 }, + { 27508, 0x8c00 }, { 27511, 0xffff }, { 27527, 0x13ff }, { 27538, 0x7fc0 }, + { 27547, 0x0000 }, { 27547, 0xa000 }, { 27549, 0xffff }, { 27565, 0x0084 }, + /* 0x21100 */ + { 27567, 0x077c }, { 27575, 0x7ffe }, { 27589, 0x0009 }, { 27591, 0x8ffe }, + { 27603, 0x0003 }, { 27605, 0xf790 }, { 27614, 0x600a }, { 27618, 0xff47 }, + { 27630, 0xce68 }, { 27638, 0x180f }, { 27644, 0x238f }, { 27652, 0xdffd }, + { 27666, 0x7fda }, { 27678, 0x09ff }, { 27688, 0x041f }, { 27694, 0xf2ff }, + /* 0x21200 */ + { 27707, 0xfe9d }, { 27719, 0xbff2 }, { 27731, 0x743c }, { 27739, 0xd38a }, + { 27747, 0x3416 }, { 27753, 0xaf04 }, { 27760, 0x10ff }, { 27769, 0x10ee }, + { 27776, 0xffff }, { 27792, 0x5ff8 }, { 27803, 0x11fb }, { 27812, 0x7ff0 }, + { 27823, 0xfff0 }, { 27835, 0x797f }, { 27847, 0xff89 }, { 27858, 0x01ff }, + /* 0x21300 */ + { 27867, 0xffc2 }, { 27878, 0x97ed }, { 27889, 0xfef0 }, { 27900, 0xfbdf }, + { 27914, 0x87ff }, { 27926, 0x003a }, { 27930, 0xfff3 }, { 27944, 0xfcff }, + { 27958, 0x40ff }, { 27967, 0x04e1 }, { 27972, 0xdf80 }, { 27980, 0xfffb }, + { 27995, 0xffaf }, { 28009, 0x00bf }, { 28016, 0xee00 }, { 28022, 0x81ff }, + /* 0x21400 */ + { 28032, 0x47ff }, { 28044, 0xe83b }, { 28053, 0x2f7f }, { 28065, 0x5fff }, + { 28079, 0x8784 }, { 28085, 0xdf16 }, { 28095, 0x395f }, { 28105, 0x07c0 }, + { 28110, 0x7fc4 }, { 28120, 0xfe4d }, { 28131, 0x811b }, { 28137, 0x3fbf }, + { 28150, 0x3600 }, { 28154, 0x0ebf }, { 28164, 0x1ed8 }, { 28172, 0xbf7f }, + /* 0x21500 */ + { 28186, 0x8f96 }, { 28195, 0xefa0 }, { 28204, 0xb1f7 }, { 28215, 0x7ee1 }, + { 28225, 0x7c60 }, { 28232, 0xff6e }, { 28245, 0xdfdf }, { 28259, 0xffde }, + { 28273, 0xad53 }, { 28282, 0xf7be }, { 28295, 0xfe3c }, { 28306, 0xe3dd }, + { 28317, 0x114a }, { 28322, 0xf33c }, { 28332, 0xff6f }, { 28346, 0xff91 }, + /* 0x21600 */ + { 28357, 0xfa77 }, { 28369, 0xa7f5 }, { 28380, 0x0a7d }, { 28388, 0xbffd }, + { 28402, 0xf792 }, { 28412, 0x35e1 }, { 28420, 0xff05 }, { 28430, 0xffc7 }, + { 28443, 0x9fe3 }, { 28454, 0x59c3 }, { 28462, 0x8d39 }, { 28470, 0xff3f }, + { 28484, 0x6ff8 }, { 28495, 0xffed }, { 28509, 0xfe27 }, { 28520, 0x7e9f }, + /* 0x21700 */ + { 28532, 0xffff }, { 28548, 0xbbfe }, { 28561, 0xffeb }, { 28575, 0xe17f }, + { 28586, 0xb4ff }, { 28598, 0xff82 }, { 28608, 0x0fff }, { 28620, 0xffe4 }, + { 28632, 0x5fff }, { 28646, 0xff1b }, { 28658, 0xffdf }, { 28673, 0xffc1 }, + { 28684, 0x47ff }, { 28696, 0xfe72 }, { 28707, 0xffff }, { 28723, 0xe09f }, + /* 0x21800 */ + { 28732, 0x493f }, { 28741, 0xfebf }, { 28755, 0xf8f5 }, { 28766, 0x21ff }, + { 28776, 0xbf2c }, { 28786, 0xbeff }, { 28800, 0xff21 }, { 28810, 0xf2ff }, + { 28823, 0x2ffc }, { 28834, 0x3ffe }, { 28847, 0x7ff8 }, { 28859, 0xc1b6 }, + { 28867, 0xfbef }, { 28881, 0xfc37 }, { 28892, 0xee12 }, { 28900, 0xf5bf }, + /* 0x21900 */ + { 28913, 0xb9c7 }, { 28923, 0x3fe4 }, { 28933, 0xdf7e }, { 28946, 0xd6d7 }, + { 28957, 0xe7ef }, { 28970, 0x79ff }, { 28983, 0xff4e }, { 28995, 0x6ec7 }, + { 29005, 0xdaf8 }, { 29015, 0xe5ae }, { 29025, 0xa23f }, { 29034, 0xf321 }, + { 29042, 0xf9fc }, { 29054, 0xf7c2 }, { 29064, 0xfe0d }, { 29074, 0x0df3 }, + /* 0x21a00 */ + { 29083, 0xe7ff }, { 29097, 0xd01b }, { 29104, 0xfffd }, { 29119, 0xf853 }, + { 29128, 0xc3ff }, { 29140, 0xca3f }, { 29150, 0xf7ff }, { 29165, 0xfc1f }, + { 29176, 0xcf7f }, { 29189, 0x8dd9 }, { 29198, 0x7fbf }, { 29212, 0xf5d0 }, + { 29221, 0x7fff }, { 29236, 0xfdfc }, { 29249, 0xf60d }, { 29258, 0xf88f }, + /* 0x21b00 */ + { 29268, 0xb4f9 }, { 29278, 0xaf5e }, { 29289, 0xd78d }, { 29299, 0xee1b }, + { 29309, 0x7d66 }, { 29319, 0xe66f }, { 29330, 0x8f23 }, { 29338, 0xe238 }, + { 29345, 0xc00f }, { 29351, 0xe221 }, { 29357, 0x00c2 }, { 29360, 0x8813 }, + { 29365, 0xe67c }, { 29375, 0xfb55 }, { 29386, 0xf7ef }, { 29400, 0x1dfc }, + /* 0x21c00 */ + { 29410, 0x7e9c }, { 29420, 0x33f7 }, { 29431, 0xfe7d }, { 29444, 0xf5c1 }, + { 29453, 0xf81f }, { 29463, 0x2fbf }, { 29475, 0x7dff }, { 29489, 0xfe97 }, + { 29501, 0x5fff }, { 29515, 0xfffe }, { 29530, 0xf7cb }, { 29542, 0x4f7f }, + { 29554, 0xa7f4 }, { 29564, 0xc1fb }, { 29574, 0x39c3 }, { 29582, 0xc196 }, + /* 0x21d00 */ + { 29589, 0xf977 }, { 29601, 0xfbee }, { 29614, 0xbbfa }, { 29626, 0x99ef }, + { 29637, 0xcdc3 }, { 29646, 0x7ffa }, { 29659, 0x4fd8 }, { 29668, 0x560b }, + { 29675, 0xfffc }, { 29689, 0xefff }, { 29704, 0xfe15 }, { 29714, 0xfb0b }, + { 29724, 0x92ff }, { 29735, 0xffff }, { 29751, 0xe7ff }, { 29765, 0x81ff }, + /* 0x21e00 */ + { 29775, 0x5704 }, { 29781, 0xdfff }, { 29796, 0x17ff }, { 29808, 0xff60 }, + { 29818, 0xac4f }, { 29827, 0x0014 }, { 29829, 0xffbc }, { 29842, 0x7fed }, + { 29855, 0xfd40 }, { 29863, 0x2614 }, { 29868, 0xf812 }, { 29875, 0xfeff }, + { 29890, 0x28ff }, { 29900, 0xffa2 }, { 29911, 0xf7ff }, { 29926, 0x43f7 }, + /* 0x21f00 */ + { 29936, 0x7c00 }, { 29941, 0x3fff }, { 29955, 0x87e0 }, { 29962, 0xf441 }, + { 29969, 0x77ff }, { 29983, 0xfd39 }, { 29994, 0xf0fb }, { 30005, 0x2521 }, + { 30010, 0x7fe5 }, { 30022, 0xff33 }, { 30034, 0xc2dc }, { 30042, 0x78c7 }, + { 30051, 0x9fc2 }, { 30060, 0xb972 }, { 30069, 0xffaf }, { 30083, 0xeb8f }, + /* 0x22000 */ + { 30094, 0x47ff }, { 30106, 0xb31f }, { 30116, 0x821f }, { 30123, 0x8ad0 }, + { 30129, 0x11ff }, { 30139, 0x9ffd }, { 30152, 0xf7fc }, { 30165, 0xfe3f }, + { 30178, 0xadcf }, { 30189, 0xe5ff }, { 30202, 0xde6f }, { 30214, 0xfff6 }, + { 30228, 0xf85f }, { 30239, 0xffff }, { 30255, 0xfd9b }, { 30267, 0x6fff }, + /* 0x22100 */ + { 30281, 0xfdf2 }, { 30293, 0xddf9 }, { 30305, 0x08ff }, { 30314, 0xf7ff }, + { 30329, 0xee04 }, { 30336, 0xceff }, { 30349, 0xef4f }, { 30361, 0xfb67 }, + { 30373, 0xefb8 }, { 30384, 0x9e0f }, { 30393, 0xd014 }, { 30398, 0xfbfe }, + { 30412, 0xfcc3 }, { 30422, 0x7fd7 }, { 30435, 0xaff9 }, { 30447, 0xfffd }, + /* 0x22200 */ + { 30462, 0xffb7 }, { 30476, 0xfe87 }, { 30487, 0x313f }, { 30496, 0xfffc }, + { 30510, 0xfd7f }, { 30524, 0xff61 }, { 30535, 0xffff }, { 30551, 0x9057 }, + { 30558, 0x5eff }, { 30571, 0xfbfd }, { 30585, 0xf57f }, { 30598, 0x1fff }, + { 30611, 0xf0fe }, { 30622, 0x35ff }, { 30634, 0xacfe }, { 30645, 0xf9e7 }, + /* 0x22300 */ + { 30657, 0xabdd }, { 30668, 0x7bfe }, { 30681, 0xbfed }, { 30694, 0xfd7a }, + { 30706, 0xe47e }, { 30716, 0xfff5 }, { 30730, 0xd9dd }, { 30741, 0xcfcf }, + { 30753, 0x74db }, { 30763, 0xb70f }, { 30773, 0x2ffd }, { 30785, 0xdfc7 }, + { 30797, 0x03e3 }, { 30804, 0x07fc }, { 30813, 0xdfd0 }, { 30823, 0x7fff }, + /* 0x22400 */ + { 30838, 0xbdff }, { 30852, 0xe37c }, { 30862, 0xb3ff }, { 30875, 0xdfbd }, + { 30888, 0x3fdf }, { 30901, 0x5fff }, { 30915, 0xaf5e }, { 30926, 0xe3ef }, + { 30938, 0x979f }, { 30949, 0xfff3 }, { 30963, 0xfff7 }, { 30978, 0xebfd }, + { 30991, 0x8ffd }, { 31003, 0xf1fd }, { 31015, 0xfe2d }, { 31026, 0x77ff }, + /* 0x22500 */ + { 31040, 0xffdf }, { 31055, 0xf503 }, { 31063, 0x2fff }, { 31076, 0xf9fb }, + { 31089, 0xe189 }, { 31096, 0xffff }, { 31112, 0xfc9f }, { 31124, 0x5edb }, + { 31135, 0xe71e }, { 31145, 0xff8f }, { 31158, 0x3efd }, { 31170, 0x2ffd }, + { 31182, 0x7f8a }, { 31192, 0xf9bf }, { 31205, 0x5fff }, { 31219, 0x8e26 }, + /* 0x22600 */ + { 31226, 0xffff }, { 31242, 0x647f }, { 31252, 0x8dc9 }, { 31260, 0xfdff }, + { 31275, 0x7fff }, { 31290, 0xffc0 }, { 31300, 0x414f }, { 31307, 0xffff }, + { 31323, 0xffff }, { 31339, 0xfe83 }, { 31349, 0x807f }, { 31357, 0x0c01 }, + { 31360, 0xfffe }, { 31375, 0xffff }, { 31391, 0x7fff }, { 31406, 0xff81 }, + /* 0x22700 */ + { 31416, 0xffff }, { 31432, 0x8ccf }, { 31441, 0xffb8 }, { 31453, 0xffff }, + { 31469, 0xffff }, { 31485, 0xe0bf }, { 31495, 0x67ff }, { 31508, 0x2004 }, + { 31510, 0xf682 }, { 31518, 0xf7ff }, { 31533, 0xffff }, { 31549, 0xffcf }, + { 31563, 0x0c1f }, { 31570, 0x3000 }, { 31572, 0xdfdf }, { 31586, 0xffff }, + /* 0x22800 */ + { 31602, 0xfc01 }, { 31609, 0xd7ff }, { 31623, 0x5003 }, { 31627, 0xfffe }, + { 31642, 0xcfff }, { 31656, 0x43ff }, { 31667, 0xfff6 }, { 31681, 0xe118 }, + { 31687, 0xb000 }, { 31690, 0xfffe }, { 31705, 0x40ff }, { 31714, 0x00ff }, + { 31722, 0xfe02 }, { 31730, 0xff7f }, { 31745, 0xff07 }, { 31756, 0xf8c5 }, + /* 0x22900 */ + { 31765, 0xdfff }, { 31780, 0x03ef }, { 31789, 0xfff0 }, { 31801, 0x7c7f }, + { 31813, 0xfc1a }, { 31822, 0xfd9f }, { 31835, 0xfbf2 }, { 31847, 0xff07 }, + { 31858, 0xcbe2 }, { 31867, 0xfe79 }, { 31879, 0xdfdf }, { 31893, 0x8fc0 }, + { 31900, 0x7fcf }, { 31913, 0x997e }, { 31923, 0x1ff5 }, { 31934, 0xe7f8 }, + /* 0x22a00 */ + { 31945, 0x7ff0 }, { 31956, 0xce3f }, { 31967, 0xb67b }, { 31978, 0x7f94 }, + { 31988, 0x69f2 }, { 31997, 0x236e }, { 32005, 0x7b65 }, { 32015, 0x007f }, + { 32022, 0xfffc }, { 32036, 0xf0ff }, { 32048, 0x029f }, { 32055, 0xfdf0 }, + { 32066, 0x7fc5 }, { 32077, 0x0010 }, { 32078, 0xfff4 }, { 32091, 0xffff }, + /* 0x22b00 */ + { 32107, 0xffc9 }, { 32119, 0x4fff }, { 32132, 0x9c04 }, { 32137, 0xffff }, + { 32153, 0x7fff }, { 32168, 0xfffc }, { 32182, 0x055f }, { 32190, 0x0000 }, + { 32190, 0xffde }, { 32204, 0xf7ff }, { 32219, 0xc19f }, { 32228, 0xffff }, + { 32244, 0x115f }, { 32252, 0x0000 }, { 32252, 0xfe08 }, { 32260, 0xffff }, + /* 0x22c00 */ + { 32276, 0xffff }, { 32292, 0x1fff }, { 32305, 0xff00 }, { 32313, 0x7fff }, + { 32328, 0x20ad }, { 32334, 0x8000 }, { 32335, 0xdfff }, { 32350, 0xdfdf }, + { 32364, 0xffff }, { 32380, 0x0167 }, { 32386, 0x0002 }, { 32387, 0x7ff9 }, + { 32400, 0xebff }, { 32414, 0x077f }, { 32424, 0xfffe }, { 32439, 0x5fff }, + /* 0x22d00 */ + { 32453, 0x0003 }, { 32455, 0x0000 }, { 32455, 0x7fff }, { 32470, 0xffff }, + { 32486, 0xe51b }, { 32495, 0xffff }, { 32511, 0x0009 }, { 32513, 0x8000 }, + { 32514, 0xffff }, { 32530, 0x3fff }, { 32544, 0xffc0 }, { 32554, 0x0023 }, + { 32557, 0xfb80 }, { 32565, 0x3fff }, { 32579, 0x2ff0 }, { 32588, 0xffc0 }, + /* 0x22e00 */ + { 32598, 0xc3ff }, { 32610, 0x037f }, { 32619, 0xfff8 }, { 32632, 0xff9f }, + { 32646, 0xa817 }, { 32653, 0x87fb }, { 32664, 0xf007 }, { 32671, 0x0ebf }, + { 32681, 0x9ffc }, { 32693, 0xc763 }, { 32702, 0x77e7 }, { 32714, 0x47f7 }, + { 32725, 0xe51e }, { 32734, 0x6cf3 }, { 32744, 0xf6e3 }, { 32755, 0x6ede }, + /* 0x22f00 */ + { 32766, 0xffe0 }, { 32777, 0xf133 }, { 32786, 0xf5af }, { 32798, 0xac40 }, + { 32803, 0x8fff }, { 32816, 0xe9bf }, { 32828, 0xf7f3 }, { 32841, 0x84fd }, + { 32850, 0xbbfd }, { 32863, 0xfe1d }, { 32874, 0xffb9 }, { 32887, 0x77fa }, + { 32899, 0x6fc0 }, { 32907, 0xcbff }, { 32920, 0x7f3b }, { 32932, 0xe3fc }, + /* 0x23000 */ + { 32943, 0xde47 }, { 32953, 0x6577 }, { 32963, 0xfdff }, { 32978, 0x34fa }, + { 32987, 0xddce }, { 32998, 0xf7a7 }, { 33010, 0x5abf }, { 33021, 0xbdfa }, + { 33033, 0x9677 }, { 33043, 0xca3a }, { 33051, 0xedff }, { 33065, 0xbf66 }, + { 33076, 0xbd4f }, { 33087, 0xfb5b }, { 33099, 0xffc6 }, { 33111, 0xfba8 }, + /* 0x23100 */ + { 33121, 0xdf17 }, { 33132, 0xe793 }, { 33142, 0x4dd7 }, { 33152, 0xdbf7 }, + { 33165, 0x5fd7 }, { 33177, 0xfc4f }, { 33188, 0xffff }, { 33204, 0x7f9e }, + { 33216, 0x0e7a }, { 33224, 0x7ffc }, { 33237, 0x0bc9 }, { 33244, 0xfffc }, + { 33258, 0xf841 }, { 33265, 0x043f }, { 33272, 0xdffc }, { 33285, 0xfc4f }, + /* 0x23200 */ + { 33296, 0xa19f }, { 33305, 0x8000 }, { 33306, 0x47f3 }, { 33316, 0x7fe0 }, + { 33326, 0x051f }, { 33333, 0x1ffe }, { 33345, 0x3ff8 }, { 33356, 0xfc01 }, + { 33363, 0x805e }, { 33369, 0xee73 }, { 33380, 0xc1fb }, { 33390, 0x255f }, + { 33399, 0xbf30 }, { 33408, 0xc1f9 }, { 33417, 0xfc28 }, { 33425, 0x85fc }, + /* 0x23300 */ + { 33434, 0xe1b8 }, { 33442, 0x93c8 }, { 33449, 0xbffc }, { 33462, 0x798f }, + { 33472, 0x91d8 }, { 33479, 0xfb5e }, { 33491, 0x58ff }, { 33502, 0x17f8 }, + { 33511, 0x3e36 }, { 33520, 0x9f9d }, { 33531, 0x723b }, { 33540, 0xbf7e }, + { 33553, 0x0fef }, { 33564, 0xfff7 }, { 33579, 0xffa3 }, { 33591, 0x6b4f }, + /* 0x23400 */ + { 33601, 0xff8b }, { 33613, 0xff8f }, { 33626, 0x07ff }, { 33637, 0xffe1 }, + { 33649, 0x801f }, { 33655, 0xfffe }, { 33670, 0xed3f }, { 33682, 0xe306 }, + { 33689, 0x83ff }, { 33700, 0xffff }, { 33716, 0xbfff }, { 33731, 0x9fc0 }, + { 33739, 0xffff }, { 33755, 0xffff }, { 33771, 0xff83 }, { 33782, 0xffff }, + /* 0x23500 */ + { 33798, 0xffff }, { 33814, 0x007e }, { 33820, 0xf800 }, { 33825, 0xfffe }, + { 33840, 0x7fff }, { 33855, 0xfa0f }, { 33865, 0xffff }, { 33881, 0x9fff }, + { 33895, 0x048f }, { 33901, 0x0029 }, { 33904, 0xff78 }, { 33916, 0xfff7 }, + { 33931, 0x000e }, { 33934, 0xfff1 }, { 33947, 0xffff }, { 33963, 0x0db9 }, + /* 0x23600 */ + { 33971, 0xe8a1 }, { 33978, 0xfff7 }, { 33993, 0xffff }, { 34009, 0x880f }, + { 34015, 0xfffe }, { 34030, 0x0a7f }, { 34039, 0x0010 }, { 34040, 0xf87f }, + { 34052, 0xffff }, { 34068, 0xfff7 }, { 34083, 0x877f }, { 34094, 0xffff }, + { 34110, 0xffff }, { 34126, 0x8543 }, { 34132, 0x5800 }, { 34135, 0xbfff }, + /* 0x23700 */ + { 34150, 0xe1ff }, { 34162, 0xffff }, { 34178, 0x91f8 }, { 34186, 0x9600 }, + { 34190, 0xfffe }, { 34205, 0x7fff }, { 34220, 0xffa0 }, { 34230, 0x5aff }, + { 34242, 0x1ac2 }, { 34248, 0xffff }, { 34264, 0xfff8 }, { 34277, 0x98e5 }, + { 34285, 0xfff4 }, { 34298, 0xff07 }, { 34309, 0x910f }, { 34316, 0x7f7d }, + /* 0x23800 */ + { 34329, 0xdffe }, { 34343, 0xfe11 }, { 34352, 0x7fe3 }, { 34364, 0xffa0 }, + { 34374, 0xf679 }, { 34385, 0x591f }, { 34394, 0x6fad }, { 34405, 0x1dde }, + { 34415, 0xfeff }, { 34430, 0xff9f }, { 34444, 0xf7cf }, { 34457, 0xac3f }, + { 34467, 0xff7f }, { 34482, 0xe3ef }, { 34494, 0x9bff }, { 34507, 0xffff }, + /* 0x23900 */ + { 34523, 0xffbf }, { 34538, 0x77b7 }, { 34550, 0x723f }, { 34560, 0xdef6 }, + { 34572, 0xffbf }, { 34587, 0x3bff }, { 34600, 0x2fed }, { 34611, 0xff3c }, + { 34623, 0x0fbe }, { 34633, 0xf7f0 }, { 34644, 0x81f6 }, { 34652, 0xbfe6 }, + { 34664, 0xfeff }, { 34679, 0xe07f }, { 34689, 0xffff }, { 34705, 0xfbff }, + /* 0x23a00 */ + { 34720, 0xffeb }, { 34734, 0xffc7 }, { 34747, 0x837f }, { 34757, 0x2bfe }, + { 34768, 0xfbf8 }, { 34780, 0xe3ff }, { 34793, 0xbf3f }, { 34806, 0xdcdf }, + { 34818, 0xf96d }, { 34829, 0x9aff }, { 34841, 0xf6fb }, { 34854, 0xfbef }, + { 34868, 0x30e3 }, { 34875, 0xc74f }, { 34885, 0xbbfe }, { 34898, 0xf711 }, + /* 0x23b00 */ + { 34907, 0xff7f }, { 34922, 0xdcff }, { 34935, 0xfffe }, { 34950, 0xff2f }, + { 34963, 0xfeb7 }, { 34976, 0xf43f }, { 34987, 0x7fef }, { 35001, 0xfffe }, + { 35016, 0xff07 }, { 35027, 0xffbf }, { 35042, 0xff98 }, { 35053, 0x3e1f }, + { 35063, 0xffe4 }, { 35075, 0xbbee }, { 35087, 0xfff4 }, { 35100, 0xff87 }, + /* 0x23c00 */ + { 35112, 0x7e47 }, { 35122, 0xdc5f }, { 35133, 0x7d1f }, { 35144, 0xdbc6 }, + { 35154, 0xdfb1 }, { 35165, 0xdf7f }, { 35179, 0xcc7b }, { 35189, 0x03f4 }, + { 35196, 0xcbdf }, { 35208, 0xe03f }, { 35217, 0xffa3 }, { 35229, 0xfffd }, + { 35244, 0xfc37 }, { 35255, 0x2fff }, { 35268, 0xfff8 }, { 35281, 0x00ff }, + /* 0x23d00 */ + { 35289, 0xfffe }, { 35304, 0xe077 }, { 35313, 0xffff }, { 35329, 0x5fff }, + { 35343, 0xfffc }, { 35357, 0x7fff }, { 35372, 0x1354 }, { 35378, 0xff8a }, + { 35389, 0xffff }, { 35405, 0xff7f }, { 35420, 0x007e }, { 35426, 0xc020 }, + { 35429, 0xffff }, { 35445, 0xafff }, { 35459, 0x02d6 }, { 35465, 0xf860 }, + /* 0x23e00 */ + { 35472, 0xffff }, { 35488, 0xffff }, { 35504, 0x0003 }, { 35506, 0xfffc }, + { 35520, 0x76df }, { 35532, 0xec00 }, { 35537, 0xffff }, { 35553, 0xfffe }, + { 35568, 0xf003 }, { 35574, 0xffff }, { 35590, 0x97ff }, { 35603, 0x8057 }, + { 35609, 0xb400 }, { 35613, 0xffff }, { 35629, 0xffff }, { 35645, 0x8007 }, + /* 0x23f00 */ + { 35649, 0xffff }, { 35665, 0xafff }, { 35679, 0x000f }, { 35683, 0x8820 }, + { 35686, 0xdff8 }, { 35698, 0xffff }, { 35714, 0xffff }, { 35730, 0x2079 }, + { 35736, 0xfff0 }, { 35748, 0xffff }, { 35764, 0x7f0f }, { 35775, 0x0081 }, + { 35777, 0xffe2 }, { 35789, 0xffff }, { 35805, 0x001f }, { 35810, 0xfffe }, + /* 0x24000 */ + { 35825, 0x49f3 }, { 35834, 0x8002 }, { 35836, 0xffff }, { 35852, 0xc2ff }, + { 35863, 0x37ff }, { 35876, 0xf481 }, { 35883, 0xfffe }, { 35898, 0xffff }, + { 35914, 0xc4ff }, { 35925, 0xffff }, { 35941, 0x806e }, { 35947, 0xefff }, + { 35962, 0xfc17 }, { 35972, 0x07bf }, { 35982, 0xbe08 }, { 35989, 0x7bf7 }, + /* 0x24100 */ + { 36002, 0xc2e0 }, { 36008, 0xfffb }, { 36023, 0x1f5f }, { 36034, 0x2ff8 }, + { 36044, 0x7cee }, { 36055, 0x2f06 }, { 36062, 0x6f5f }, { 36074, 0xfb9f }, + { 36087, 0xef7d }, { 36100, 0xe5f7 }, { 36112, 0xbfc0 }, { 36121, 0xf017 }, + { 36129, 0xff83 }, { 36140, 0xafff }, { 36154, 0x8807 }, { 36159, 0xe0ff }, + /* 0x24200 */ + { 36170, 0xffff }, { 36186, 0x0967 }, { 36193, 0xffec }, { 36206, 0xfe07 }, + { 36216, 0x07ff }, { 36227, 0xa202 }, { 36231, 0xfefe }, { 36245, 0xfe00 }, + { 36252, 0xffff }, { 36268, 0x1bff }, { 36280, 0x8020 }, { 36282, 0xfff4 }, + { 36295, 0xf8df }, { 36307, 0xffff }, { 36323, 0x97ff }, { 36336, 0x040b }, + /* 0x24300 */ + { 36340, 0xff8a }, { 36351, 0xf87f }, { 36363, 0xffff }, { 36379, 0x3f7f }, + { 36392, 0xe100 }, { 36396, 0x3ff9 }, { 36408, 0xffc4 }, { 36419, 0xdfff }, + { 36434, 0x1034 }, { 36438, 0xe5c0 }, { 36445, 0xffff }, { 36461, 0xc1bf }, + { 36471, 0xffff }, { 36487, 0xefbf }, { 36501, 0xe201 }, { 36506, 0xfff1 }, + /* 0x24400 */ + { 36519, 0xfff1 }, { 36532, 0xc0a7 }, { 36539, 0xbfc4 }, { 36549, 0xff8f }, + { 36562, 0xcc6f }, { 36572, 0xf0dd }, { 36582, 0x0185 }, { 36586, 0xf7ff }, + { 36601, 0xff47 }, { 36613, 0x5089 }, { 36618, 0x58de }, { 36627, 0x7de8 }, + { 36637, 0x873f }, { 36647, 0xf6f5 }, { 36659, 0xfde3 }, { 36671, 0x79de }, + /* 0x24500 */ + { 36682, 0xd4ff }, { 36694, 0x11bf }, { 36703, 0x57fd }, { 36715, 0x033f }, + { 36723, 0xeb2d }, { 36733, 0xffeb }, { 36747, 0xefff }, { 36762, 0x7eff }, + { 36776, 0xffee }, { 36790, 0x7ffb }, { 36804, 0xfffd }, { 36819, 0x7c9f }, + { 36830, 0xffb7 }, { 36844, 0x1f82 }, { 36851, 0xffef }, { 36866, 0xbdfa }, + /* 0x24600 */ + { 36878, 0xf339 }, { 36888, 0xfff3 }, { 36902, 0xf8ff }, { 36915, 0xff1d }, + { 36927, 0xb61d }, { 36936, 0xf9bf }, { 36949, 0x2dd7 }, { 36959, 0x0fbf }, + { 36970, 0xff1c }, { 36981, 0x437f }, { 36991, 0xff01 }, { 37000, 0xff7f }, + { 37015, 0xff04 }, { 37024, 0x8823 }, { 37029, 0x8afe }, { 37039, 0xee5f }, + /* 0x24700 */ + { 37051, 0xbbbd }, { 37063, 0x3ed7 }, { 37074, 0x895e }, { 37082, 0xffff }, + { 37098, 0xb04f }, { 37106, 0xdfff }, { 37121, 0xd17b }, { 37131, 0xffff }, + { 37147, 0x8177 }, { 37155, 0xfe80 }, { 37163, 0xb02f }, { 37171, 0xc305 }, + { 37177, 0xfffb }, { 37192, 0xf6b7 }, { 37204, 0x3fff }, { 37218, 0x2d7c }, + /* 0x24800 */ + { 37227, 0xe480 }, { 37232, 0xf7ff }, { 37247, 0x1bf3 }, { 37257, 0xfe20 }, + { 37265, 0x60ff }, { 37275, 0xf383 }, { 37284, 0x7fff }, { 37299, 0xbe7f }, + { 37312, 0xfe28 }, { 37321, 0x77ff }, { 37335, 0x87cf }, { 37345, 0x0fff }, + { 37357, 0x6f2b }, { 37367, 0xbb8f }, { 37378, 0xcfdd }, { 37390, 0x1fb5 }, + /* 0x24900 */ + { 37400, 0xf97c }, { 37411, 0xfd0f }, { 37422, 0x9d3f }, { 37433, 0x1fe6 }, + { 37443, 0xfff8 }, { 37456, 0x1ff0 }, { 37465, 0x3ff0 }, { 37475, 0xfbf2 }, + { 37487, 0x002b }, { 37491, 0xffff }, { 37507, 0xf977 }, { 37519, 0xf01f }, + { 37528, 0xffff }, { 37544, 0xc2df }, { 37554, 0xfcfd }, { 37567, 0xfc05 }, + /* 0x24a00 */ + { 37575, 0xbfff }, { 37590, 0x3ff9 }, { 37602, 0xf800 }, { 37607, 0x7f3f }, + { 37620, 0x0bff }, { 37631, 0xfffc }, { 37645, 0xfff8 }, { 37658, 0xf837 }, + { 37668, 0xf8ff }, { 37681, 0xff81 }, { 37691, 0x7f7d }, { 37704, 0xf7f0 }, + { 37715, 0x377f }, { 37727, 0x9df1 }, { 37737, 0xff78 }, { 37749, 0x7dff }, + /* 0x24b00 */ + { 37763, 0xfb9e }, { 37775, 0x3fc7 }, { 37786, 0xf75f }, { 37799, 0xdef1 }, + { 37810, 0xf07f }, { 37821, 0xf9bf }, { 37834, 0x17ef }, { 37845, 0xfe19 }, + { 37855, 0xefe1 }, { 37866, 0x3f59 }, { 37876, 0xefc6 }, { 37887, 0x3f2f }, + { 37898, 0x7b8b }, { 37908, 0xeff9 }, { 37921, 0xdcdf }, { 37933, 0x729c }, + /* 0x24c00 */ + { 37941, 0x65f9 }, { 37951, 0xeaa3 }, { 37960, 0xff3f }, { 37974, 0xff7f }, + { 37989, 0xf801 }, { 37995, 0xc7e5 }, { 38005, 0xfff8 }, { 38018, 0x704b }, + { 38025, 0xe9f8 }, { 38035, 0x3fff }, { 38049, 0xf88b }, { 38058, 0xefe7 }, + { 38071, 0xbf21 }, { 38080, 0x8dfc }, { 38090, 0xfe13 }, { 38100, 0xde4c }, + /* 0x24d00 */ + { 38109, 0x59bf }, { 38120, 0xf3ef }, { 38133, 0xcff3 }, { 38145, 0xff9f }, + { 38159, 0x398f }, { 38168, 0xff92 }, { 38179, 0x2fff }, { 38192, 0xff80 }, + { 38201, 0x1e7f }, { 38212, 0xfff8 }, { 38225, 0x3f3f }, { 38237, 0x00c0 }, + { 38239, 0xffff }, { 38255, 0x7ffb }, { 38269, 0x0021 }, { 38271, 0xfb80 }, + /* 0x24e00 */ + { 38279, 0xffff }, { 38295, 0xe3fe }, { 38307, 0xfe15 }, { 38317, 0xffff }, + { 38333, 0xa27c }, { 38341, 0xf800 }, { 38346, 0x9fff }, { 38360, 0x0a5b }, + { 38367, 0xfff3 }, { 38381, 0x3fff }, { 38395, 0x03c2 }, { 38400, 0xff80 }, + { 38409, 0x23ff }, { 38420, 0x7fe0 }, { 38430, 0xc12e }, { 38437, 0x07fe }, + /* 0x24f00 */ + { 38447, 0x38ff }, { 38458, 0xb7c7 }, { 38469, 0xbfbf }, { 38483, 0x7687 }, + { 38492, 0x77ce }, { 38503, 0xef57 }, { 38515, 0x97f3 }, { 38526, 0xbe81 }, + { 38534, 0xff08 }, { 38543, 0x7b20 }, { 38550, 0x3dff }, { 38563, 0x795c }, + { 38572, 0xcfe9 }, { 38583, 0xbfe7 }, { 38596, 0x5fa7 }, { 38607, 0x86fc }, + /* 0x25000 */ + { 38616, 0xefde }, { 38629, 0xdff3 }, { 38642, 0xb97e }, { 38653, 0xb677 }, + { 38664, 0xdbff }, { 38678, 0xdf7f }, { 38692, 0xfffb }, { 38707, 0x9fdb }, + { 38719, 0xf5f9 }, { 38731, 0xdffb }, { 38745, 0x73f3 }, { 38756, 0xd7ee }, + { 38768, 0x6fbf }, { 38781, 0x13fc }, { 38790, 0x1ff2 }, { 38800, 0x3ffc }, + /* 0x25100 */ + { 38812, 0xfffd }, { 38827, 0x7bff }, { 38841, 0x02b8 }, { 38846, 0xfffe }, + { 38861, 0x7e13 }, { 38870, 0xff88 }, { 38880, 0x7fef }, { 38894, 0x324f }, + { 38902, 0xfbe0 }, { 38912, 0xffff }, { 38928, 0x1c7f }, { 38938, 0x0069 }, + { 38942, 0xfef8 }, { 38954, 0xff7f }, { 38969, 0x4f13 }, { 38977, 0xc030 }, + /* 0x25200 */ + { 38981, 0xffed }, { 38995, 0x1fff }, { 39008, 0x07fc }, { 39017, 0xf980 }, + { 39024, 0xffff }, { 39040, 0xffff }, { 39056, 0x007c }, { 39061, 0xfff1 }, + { 39074, 0x47f7 }, { 39085, 0x0021 }, { 39087, 0xfd80 }, { 39095, 0xffff }, + { 39111, 0x271f }, { 39120, 0xfe01 }, { 39128, 0xbf3f }, { 39141, 0x8801 }, + /* 0x25300 */ + { 39144, 0xffff }, { 39160, 0xfcf1 }, { 39171, 0xe70e }, { 39180, 0xfc67 }, + { 39191, 0x9e5f }, { 39202, 0xc6b8 }, { 39210, 0xffbf }, { 39225, 0xffef }, + { 39240, 0xfefd }, { 39254, 0x17fd }, { 39265, 0x1ff2 }, { 39275, 0xff7f }, + { 39290, 0xc207 }, { 39296, 0xf792 }, { 39306, 0x9c07 }, { 39313, 0x78ff }, + /* 0x25400 */ + { 39325, 0x001b }, { 39329, 0x7fea }, { 39341, 0x1e3f }, { 39351, 0x35fe }, + { 39362, 0xfff3 }, { 39376, 0x7f9f }, { 39389, 0xd20c }, { 39395, 0xff7d }, + { 39409, 0xbfd7 }, { 39422, 0x5054 }, { 39427, 0xff90 }, { 39437, 0x3e7f }, + { 39449, 0xfcc3 }, { 39459, 0xfcff }, { 39473, 0x20ff }, { 39482, 0xfc02 }, + /* 0x25500 */ + { 39489, 0x07ff }, { 39500, 0xfffd }, { 39515, 0xff0d }, { 39526, 0x07ff }, + { 39537, 0xfbe8 }, { 39548, 0xc5fb }, { 39559, 0x3fe3 }, { 39570, 0xffff }, + { 39586, 0x9ffc }, { 39598, 0xff80 }, { 39607, 0xdc7f }, { 39619, 0xfa9b }, + { 39630, 0x027f }, { 39638, 0xeb4c }, { 39647, 0xfc0e }, { 39656, 0xcd96 }, + /* 0x25600 */ + { 39665, 0x637a }, { 39674, 0x7e60 }, { 39682, 0x7850 }, { 39688, 0xff03 }, + { 39698, 0xfe14 }, { 39707, 0x3ff0 }, { 39717, 0xf910 }, { 39724, 0x1f87 }, + { 39733, 0xff08 }, { 39742, 0x17ff }, { 39754, 0x0fc0 }, { 39760, 0x03ff }, + { 39770, 0xfdef }, { 39784, 0xff10 }, { 39793, 0xc01f }, { 39800, 0xbfbf }, + /* 0x25700 */ + { 39814, 0x9fbe }, { 39826, 0xccbe }, { 39836, 0x9ee9 }, { 39846, 0xff9f }, + { 39860, 0xbdba }, { 39871, 0x7d7d }, { 39883, 0xfffc }, { 39897, 0xde78 }, + { 39907, 0x037f }, { 39916, 0xff84 }, { 39926, 0x8207 }, { 39931, 0xfffe }, + { 39946, 0xe0a0 }, { 39951, 0x5fff }, { 39965, 0x03fc }, { 39973, 0xed80 }, + /* 0x25800 */ + { 39980, 0xffff }, { 39996, 0x01ff }, { 40005, 0x0006 }, { 40007, 0xf6fe }, + { 40020, 0x1feb }, { 40031, 0xbc10 }, { 40037, 0xffff }, { 40053, 0x0279 }, + { 40059, 0xfd83 }, { 40069, 0x7f7e }, { 40082, 0x6080 }, { 40085, 0xbff3 }, + { 40098, 0x003f }, { 40104, 0xd7c8 }, { 40113, 0xffe1 }, { 40125, 0x40bf }, + /* 0x25900 */ + { 40133, 0x5cef }, { 40144, 0xd7fe }, { 40157, 0x6f9c }, { 40167, 0xfff3 }, + { 40181, 0xff8e }, { 40193, 0x4f9f }, { 40204, 0x7fff }, { 40219, 0xffc0 }, + { 40229, 0xfdff }, { 40244, 0xf80b }, { 40252, 0xe7f7 }, { 40265, 0xff67 }, + { 40278, 0x84e0 }, { 40283, 0xfffd }, { 40298, 0xf025 }, { 40305, 0xbfff }, + /* 0x25a00 */ + { 40320, 0xe40f }, { 40328, 0x05ff }, { 40338, 0x7c0e }, { 40346, 0xb9ff }, + { 40359, 0xdd0f }, { 40369, 0x1bfd }, { 40380, 0x7fff }, { 40395, 0xdb7e }, + { 40407, 0xffdf }, { 40422, 0x8f3f }, { 40433, 0xf7f3 }, { 40446, 0xf86f }, + { 40457, 0xe708 }, { 40464, 0xff47 }, { 40476, 0xe1e7 }, { 40486, 0xfffb }, + /* 0x25b00 */ + { 40501, 0xf0bf }, { 40512, 0xeeff }, { 40526, 0xfc7e }, { 40538, 0xfbff }, + { 40553, 0x0fff }, { 40565, 0xffff }, { 40581, 0xfdff }, { 40596, 0xff83 }, + { 40607, 0xf03f }, { 40617, 0x7fff }, { 40632, 0xeffd }, { 40646, 0xffe0 }, + { 40657, 0x0047 }, { 40661, 0xffff }, { 40677, 0xffff }, { 40693, 0xf7ff }, + /* 0x25c00 */ + { 40708, 0xfa64 }, { 40717, 0xffff }, { 40733, 0xffff }, { 40749, 0xffff }, + { 40765, 0xf0f7 }, { 40776, 0xffff }, { 40792, 0x025f }, { 40799, 0xffe8 }, + { 40811, 0xfff3 }, { 40825, 0xffe7 }, { 40839, 0xdfff }, { 40854, 0x3fff }, + { 40868, 0xffc1 }, { 40879, 0xffff }, { 40895, 0xffff }, { 40911, 0x87ff }, + /* 0x25d00 */ + { 40923, 0xffff }, { 40939, 0xe018 }, { 40944, 0xffff }, { 40960, 0xeff7 }, + { 40974, 0x7ff0 }, { 40985, 0xf009 }, { 40991, 0xffff }, { 41007, 0x2f7f }, + { 41019, 0xfdc0 }, { 41028, 0xffff }, { 41044, 0x0ff8 }, { 41053, 0xfff0 }, + { 41065, 0xf3ff }, { 41079, 0xfff3 }, { 41093, 0xff1f }, { 41106, 0xf1f7 }, + /* 0x25e00 */ + { 41118, 0xcfa9 }, { 41128, 0x13d3 }, { 41136, 0xbbee }, { 41148, 0x7ffb }, + { 41162, 0xffee }, { 41176, 0xf467 }, { 41186, 0x29d7 }, { 41195, 0xfffc }, + { 41209, 0x0bf0 }, { 41216, 0xff80 }, { 41225, 0xff9f }, { 41239, 0x115f }, + { 41247, 0xfffe }, { 41262, 0x1e7f }, { 41273, 0xfff0 }, { 41285, 0x800f }, + /* 0x25f00 */ + { 41290, 0xf3ff }, { 41304, 0xff0f }, { 41316, 0x01f7 }, { 41324, 0xffe0 }, + { 41335, 0x8eef }, { 41346, 0x6fe3 }, { 41357, 0xf0e8 }, { 41365, 0xffdf }, + { 41380, 0xf7f7 }, { 41394, 0x7e5f }, { 41406, 0xffff }, { 41422, 0x0dfd }, + { 41432, 0xfff8 }, { 41445, 0x93ef }, { 41456, 0xffc2 }, { 41467, 0xf7ff }, + /* 0x26000 */ + { 41482, 0x02ff }, { 41491, 0xfffc }, { 41505, 0xf0ff }, { 41517, 0x00ff }, + { 41525, 0xff58 }, { 41536, 0x7fff }, { 41551, 0xfff2 }, { 41564, 0x0013 }, + { 41567, 0xfbff }, { 41582, 0xffbf }, { 41597, 0xffc7 }, { 41610, 0x00b3 }, + { 41615, 0xfffa }, { 41629, 0xfbff }, { 41644, 0x01fd }, { 41652, 0x07ff }, + /* 0x26100 */ + { 41663, 0xfe00 }, { 41670, 0x1fff }, { 41683, 0x7ffc }, { 41696, 0xf006 }, + { 41702, 0xffff }, { 41718, 0xe03f }, { 41727, 0x15bf }, { 41737, 0xffe8 }, + { 41749, 0xff7f }, { 41764, 0xf8ff }, { 41777, 0x9eff }, { 41790, 0xf87f }, + { 41802, 0xdf3f }, { 41815, 0xdffa }, { 41828, 0x1faf }, { 41839, 0xffdf }, + /* 0x26200 */ + { 41854, 0x00eb }, { 41860, 0x0000 }, { 41860, 0xfbec }, { 41872, 0xdf7f }, + { 41886, 0xdbb7 }, { 41898, 0xeeef }, { 41911, 0xfefd }, { 41925, 0xdbbc }, + { 41936, 0xeb8f }, { 41947, 0xf3ff }, { 41961, 0xef9f }, { 41974, 0xf078 }, + { 41982, 0x3ff4 }, { 41993, 0xffc7 }, { 42006, 0xf99f }, { 42018, 0xfbbf }, + /* 0x26300 */ + { 42032, 0xe66f }, { 42043, 0xfaff }, { 42057, 0x7f1f }, { 42069, 0xddfe }, + { 42082, 0xfdcf }, { 42095, 0xfdf7 }, { 42109, 0xf7e6 }, { 42121, 0xfe05 }, + { 42130, 0x2fe9 }, { 42140, 0x27f0 }, { 42148, 0x8afc }, { 42157, 0x9f9b }, + { 42168, 0xffea }, { 42181, 0xf7e3 }, { 42193, 0xaf8f }, { 42204, 0x7ff5 }, + /* 0x26400 */ + { 42217, 0x7ffd }, { 42231, 0x5ffb }, { 42244, 0xf7fc }, { 42257, 0x7fef }, + { 42271, 0xffd1 }, { 42283, 0xff3f }, { 42297, 0x1fff }, { 42310, 0xff7f }, + { 42325, 0xfdf8 }, { 42337, 0xbe7f }, { 42350, 0xf77d }, { 42363, 0x7dce }, + { 42374, 0xd01b }, { 42381, 0x67df }, { 42393, 0xff71 }, { 42405, 0x7fb3 }, + /* 0x26500 */ + { 42417, 0xfa7f }, { 42430, 0xfdbf }, { 42444, 0xbf7f }, { 42458, 0xf3af }, + { 42470, 0xfdbf }, { 42484, 0x7dff }, { 42498, 0xffe7 }, { 42512, 0xffe6 }, + { 42525, 0x7f3d }, { 42537, 0x1fff }, { 42550, 0x9ffc }, { 42562, 0xf27f }, + { 42574, 0x27ff }, { 42586, 0x87ff }, { 42598, 0x9fff }, { 42612, 0x43fe }, + /* 0x26600 */ + { 42622, 0xefff }, { 42637, 0xe93f }, { 42648, 0xff0d }, { 42659, 0xedfc }, + { 42671, 0x2fff }, { 42684, 0x99ff }, { 42696, 0xff87 }, { 42708, 0x9fff }, + { 42722, 0x73ff }, { 42735, 0xff1e }, { 42747, 0x7fff }, { 42762, 0x2ffc }, + { 42773, 0xc03e }, { 42780, 0xfffd }, { 42795, 0x7efb }, { 42808, 0x02d8 }, + /* 0x26700 */ + { 42813, 0xfddc }, { 42825, 0x9fff }, { 42839, 0x17ff }, { 42851, 0xee68 }, + { 42860, 0x8002 }, { 42862, 0xffff }, { 42878, 0xffff }, { 42894, 0xfdff }, + { 42909, 0x0ab3 }, { 42916, 0xfee0 }, { 42926, 0xbfff }, { 42941, 0x3fe7 }, + { 42953, 0x0003 }, { 42955, 0xbb30 }, { 42963, 0xbeff }, { 42977, 0x0019 }, + /* 0x26800 */ + { 42980, 0xffff }, { 42996, 0xd6ff }, { 43009, 0x1b31 }, { 43016, 0xdf80 }, + { 43024, 0xf1ef }, { 43036, 0x19bf }, { 43046, 0x3f00 }, { 43052, 0xfff7 }, + { 43067, 0xf52f }, { 43078, 0x3ff3 }, { 43090, 0xbff0 }, { 43101, 0xbf00 }, + { 43108, 0xbfe3 }, { 43120, 0xfc4f }, { 43131, 0x7a13 }, { 43139, 0xfffe }, + /* 0x26900 */ + { 43154, 0xf47d }, { 43165, 0xef75 }, { 43177, 0x1ffe }, { 43189, 0x9efc }, + { 43200, 0xdff6 }, { 43213, 0xebbf }, { 43226, 0x6be7 }, { 43237, 0xfffc }, + { 43251, 0xd7ff }, { 43265, 0xffeb }, { 43279, 0xfebf }, { 43293, 0xff7f }, + { 43308, 0xd7f7 }, { 43321, 0xa4fb }, { 43331, 0x6dff }, { 43344, 0xdb7b }, + /* 0x26a00 */ + { 43356, 0xfffb }, { 43371, 0xb7fd }, { 43384, 0xf5df }, { 43397, 0xf4f7 }, + { 43409, 0xff98 }, { 43420, 0xf318 }, { 43428, 0x1fff }, { 43441, 0x7ff6 }, + { 43454, 0x6ff0 }, { 43464, 0x3ffe }, { 43477, 0xfeb0 }, { 43487, 0xe1c7 }, + { 43496, 0xddff }, { 43510, 0x7eb7 }, { 43522, 0xbffd }, { 43536, 0xffdf }, + /* 0x26b00 */ + { 43551, 0xfbff }, { 43566, 0xfff9 }, { 43580, 0xfeff }, { 43595, 0xffbf }, + { 43610, 0x0bff }, { 43621, 0x3ff0 }, { 43631, 0xfb04 }, { 43639, 0xffff }, + { 43655, 0xffff }, { 43671, 0xff0f }, { 43683, 0xffff }, { 43699, 0xffa8 }, + { 43710, 0xffff }, { 43726, 0xff7e }, { 43740, 0xff7f }, { 43755, 0xff1f }, + /* 0x26c00 */ + { 43768, 0xffff }, { 43784, 0x6bff }, { 43797, 0xfc82 }, { 43805, 0xffff }, + { 43821, 0xffbf }, { 43836, 0xdfff }, { 43851, 0xffff }, { 43867, 0x1ffd }, + { 43879, 0xfff8 }, { 43892, 0xffff }, { 43908, 0x97ff }, { 43921, 0x20c1 }, + { 43925, 0xffff }, { 43941, 0xffff }, { 43957, 0x7fff }, { 43972, 0xffff }, + /* 0x26d00 */ + { 43988, 0xffa7 }, { 44001, 0xffff }, { 44017, 0xf801 }, { 44023, 0xffff }, + { 44039, 0x7fff }, { 44054, 0xe007 }, { 44060, 0xfffe }, { 44075, 0xffff }, + { 44091, 0xfff7 }, { 44106, 0x0fff }, { 44118, 0xff00 }, { 44126, 0xffff }, + { 44142, 0xffff }, { 44158, 0xefbf }, { 44172, 0x040b }, { 44176, 0xbfff }, + /* 0x26e00 */ + { 44191, 0xffdf }, { 44206, 0xffff }, { 44222, 0xffdf }, { 44237, 0x07ff }, + { 44248, 0xffc0 }, { 44258, 0xffff }, { 44274, 0x451e }, { 44281, 0xe084 }, + { 44286, 0xffd7 }, { 44300, 0xffff }, { 44316, 0xffff }, { 44332, 0xffff }, + { 44348, 0x3fff }, { 44362, 0xff00 }, { 44370, 0xffff }, { 44386, 0xffff }, + /* 0x26f00 */ + { 44402, 0xfcff }, { 44416, 0x0227 }, { 44421, 0xfe16 }, { 44431, 0xffff }, + { 44447, 0xdfff }, { 44462, 0xffff }, { 44478, 0x5fff }, { 44492, 0xffe2 }, + { 44504, 0xffff }, { 44520, 0x8895 }, { 44526, 0xf482 }, { 44533, 0xffff }, + { 44549, 0xff7f }, { 44564, 0x03ff }, { 44574, 0xffff }, { 44590, 0xfe3f }, + /* 0x27000 */ + { 44603, 0x20f7 }, { 44611, 0x2ff0 }, { 44620, 0xffff }, { 44636, 0xffbf }, + { 44651, 0xbfff }, { 44666, 0xfff2 }, { 44679, 0xffff }, { 44695, 0xf801 }, + { 44701, 0xff7f }, { 44716, 0xffff }, { 44732, 0x03ba }, { 44739, 0xffff }, + { 44755, 0xc3ff }, { 44767, 0xffff }, { 44783, 0xdfff }, { 44798, 0xfe01 }, + /* 0x27100 */ + { 44806, 0xeaff }, { 44819, 0xffff }, { 44835, 0x7f0f }, { 44846, 0xffc0 }, + { 44856, 0xffff }, { 44872, 0xffdf }, { 44887, 0xc7c7 }, { 44897, 0x7ddf }, + { 44910, 0xefea }, { 44922, 0x7fff }, { 44937, 0x1ff9 }, { 44948, 0xfc7e }, + { 44960, 0x2ffe }, { 44972, 0xf1bf }, { 44984, 0x3fff }, { 44998, 0xf83e }, + /* 0x27200 */ + { 45008, 0x6bcb }, { 45018, 0xf5ef }, { 45031, 0xffb9 }, { 45044, 0xfff1 }, + { 45057, 0xffff }, { 45073, 0xd9e3 }, { 45083, 0xffff }, { 45099, 0xf8f9 }, + { 45110, 0xe1ef }, { 45121, 0xffff }, { 45137, 0xfbff }, { 45152, 0x9fc3 }, + { 45162, 0xff00 }, { 45170, 0xfbff }, { 45185, 0xff83 }, { 45196, 0x0009 }, + /* 0x27300 */ + { 45198, 0xfffa }, { 45212, 0xbfff }, { 45227, 0x3fdf }, { 45240, 0xaff0 }, + { 45250, 0x0000 }, { 45250, 0xfffe }, { 45265, 0xffff }, { 45281, 0xffff }, + { 45297, 0xff1f }, { 45310, 0xc59f }, { 45320, 0xff7e }, { 45334, 0xffff }, + { 45350, 0xffff }, { 45366, 0xf03f }, { 45376, 0x175f }, { 45386, 0xff00 }, + /* 0x27400 */ + { 45394, 0xfff7 }, { 45409, 0xffff }, { 45425, 0xeff8 }, { 45437, 0x007a }, + { 45442, 0xfff1 }, { 45455, 0xf7ff }, { 45470, 0xffff }, { 45486, 0xff1f }, + { 45499, 0xc15e }, { 45507, 0xfdff }, { 45522, 0x0ffe }, { 45533, 0xfffc }, + { 45547, 0xdf00 }, { 45554, 0xffff }, { 45570, 0x18fe }, { 45579, 0xfffe }, + /* 0x27500 */ + { 45594, 0xc1df }, { 45604, 0xe13f }, { 45614, 0xddff }, { 45628, 0x24ff }, + { 45638, 0xfffe }, { 45653, 0xf9f7 }, { 45666, 0xc1ff }, { 45677, 0xf7ff }, + { 45692, 0xfdf5 }, { 45705, 0xfffe }, { 45720, 0xbf90 }, { 45729, 0x7ffc }, + { 45742, 0xffdf }, { 45757, 0xfff7 }, { 45772, 0xffee }, { 45786, 0x8ffe }, + /* 0x27600 */ + { 45798, 0xef7f }, { 45812, 0xf64f }, { 45823, 0xffff }, { 45839, 0x7cf9 }, + { 45850, 0xffff }, { 45866, 0xff07 }, { 45877, 0xffbf }, { 45892, 0xc2ac }, + { 45899, 0xffff }, { 45915, 0x7fe7 }, { 45928, 0xfffa }, { 45942, 0xf7ff }, + { 45957, 0xe009 }, { 45962, 0xffff }, { 45978, 0x1fff }, { 45991, 0xff0f }, + /* 0x27700 */ + { 46003, 0x2dff }, { 46015, 0xe026 }, { 46021, 0xfaff }, { 46035, 0xe187 }, + { 46043, 0xbfff }, { 46058, 0x0fff }, { 46070, 0xfc0c }, { 46078, 0xffff }, + { 46094, 0xf1c7 }, { 46104, 0xfafd }, { 46117, 0xffc6 }, { 46129, 0x3fef }, + { 46142, 0xf78c }, { 46152, 0xcff7 }, { 46165, 0xefca }, { 46176, 0xff9e }, + /* 0x27800 */ + { 46189, 0xdadf }, { 46201, 0xffef }, { 46216, 0x6f0f }, { 46226, 0xf82f }, + { 46236, 0xf979 }, { 46247, 0x29ef }, { 46257, 0xffff }, { 46273, 0xef8e }, + { 46284, 0xe77f }, { 46297, 0x777c }, { 46308, 0xe9ff }, { 46321, 0xffbe }, + { 46335, 0xe3ff }, { 46348, 0x5fff }, { 46362, 0xff2e }, { 46374, 0x7ff3 }, + /* 0x27900 */ + { 46387, 0xfbf8 }, { 46399, 0xf9ff }, { 46413, 0xdecf }, { 46425, 0xfcc6 }, + { 46435, 0x3517 }, { 46443, 0x3fea }, { 46454, 0xef7e }, { 46467, 0xffbb }, + { 46481, 0xbfc7 }, { 46493, 0xfe84 }, { 46502, 0xffff }, { 46518, 0x4cff }, + { 46529, 0xff76 }, { 46542, 0xffff }, { 46558, 0x0df3 }, { 46567, 0xffff }, + /* 0x27a00 */ + { 46583, 0x8fff }, { 46596, 0x7e7f }, { 46609, 0xffd9 }, { 46622, 0xffff }, + { 46638, 0xfefd }, { 46652, 0xff43 }, { 46663, 0xffff }, { 46679, 0xfffe }, + { 46694, 0xffff }, { 46710, 0xffd7 }, { 46724, 0xffff }, { 46740, 0x86ff }, + { 46751, 0x89ff }, { 46762, 0xfffd }, { 46777, 0xffff }, { 46793, 0xe565 }, + /* 0x27b00 */ + { 46802, 0xfffd }, { 46817, 0xbeef }, { 46830, 0xffbf }, { 46845, 0xf87f }, + { 46857, 0xff7f }, { 46872, 0xff7f }, { 46887, 0xffbf }, { 46902, 0xff97 }, + { 46915, 0xdfff }, { 46930, 0xef7f }, { 46944, 0xfb2c }, { 46954, 0x3def }, + { 46966, 0xfe47 }, { 46977, 0x9f39 }, { 46987, 0xeeef }, { 47000, 0xff9b }, + /* 0x27c00 */ + { 47013, 0x3efb }, { 47025, 0x637f }, { 47036, 0xffab }, { 47049, 0xfff5 }, + { 47063, 0xe7ff }, { 47077, 0xffff }, { 47093, 0xff3f }, { 47107, 0xd9ff }, + { 47120, 0xffff }, { 47136, 0xfdbf }, { 47150, 0xf7ff }, { 47165, 0xc2ff }, + { 47176, 0xffff }, { 47192, 0xfedf }, { 47206, 0xffe7 }, { 47220, 0x5fee }, + /* 0x27d00 */ + { 47232, 0xf0fe }, { 47243, 0xe7f1 }, { 47254, 0x3d7b }, { 47265, 0xffef }, + { 47280, 0xffb7 }, { 47294, 0x37e3 }, { 47304, 0xfff9 }, { 47318, 0xe7f7 }, + { 47331, 0x7fec }, { 47343, 0xff8f }, { 47356, 0x05ff }, { 47366, 0xdfff }, + { 47381, 0xfe9f }, { 47394, 0xd6ff }, { 47407, 0xfbff }, { 47422, 0xf825 }, + /* 0x27e00 */ + { 47430, 0xffff }, { 47446, 0x47f2 }, { 47455, 0xe9ff }, { 47468, 0xf3fe }, + { 47481, 0x43c9 }, { 47488, 0x7f00 }, { 47495, 0xf09b }, { 47504, 0x23fc }, + { 47513, 0xffd0 }, { 47524, 0xefdd }, { 47537, 0xffff }, { 47553, 0xffec }, + { 47566, 0xdfff }, { 47581, 0xbffe }, { 47595, 0xd8ff }, { 47607, 0xbf7f }, + /* 0x27f00 */ + { 47621, 0xc2ff }, { 47632, 0xffff }, { 47648, 0xffef }, { 47663, 0xffff }, + { 47679, 0xfe76 }, { 47691, 0xffff }, { 47707, 0xbfff }, { 47722, 0xffd8 }, + { 47734, 0xe93f }, { 47745, 0xffff }, { 47761, 0xff7f }, { 47776, 0x1f73 }, + { 47786, 0x227f }, { 47795, 0xfffc }, { 47809, 0xc05d }, { 47816, 0xfffe }, + /* 0x28000 */ + { 47831, 0x0249 }, { 47835, 0xfff8 }, { 47848, 0x7fff }, { 47863, 0x00c2 }, + { 47866, 0xffff }, { 47882, 0x5e3f }, { 47893, 0x000d }, { 47896, 0xffe8 }, + { 47908, 0xf9ff }, { 47922, 0xf80a }, { 47929, 0xffff }, { 47945, 0x81ff }, + { 47955, 0x0003 }, { 47957, 0xfffc }, { 47971, 0x51ff }, { 47982, 0x8008 }, + /* 0x28100 */ + { 47984, 0xffe9 }, { 47997, 0x0fff }, { 48009, 0x3ffe }, { 48022, 0x0000 }, + { 48022, 0xdd60 }, { 48030, 0xffff }, { 48046, 0x07ff }, { 48057, 0x0076 }, + { 48062, 0xffff }, { 48078, 0x1df3 }, { 48088, 0xfdc0 }, { 48097, 0x183f }, + { 48105, 0x9dfe }, { 48117, 0x67d0 }, { 48125, 0xeff0 }, { 48136, 0x3c1f }, + /* 0x28200 */ + { 48145, 0xad38 }, { 48153, 0xff3b }, { 48166, 0xfe17 }, { 48177, 0xff37 }, + { 48190, 0xff0d }, { 48201, 0x0bb1 }, { 48208, 0xc1fc }, { 48217, 0x9e0f }, + { 48226, 0xe45b }, { 48235, 0x2bfd }, { 48246, 0x9e9f }, { 48257, 0xfffe }, + { 48272, 0xd0d1 }, { 48279, 0x1fff }, { 48292, 0xffc0 }, { 48302, 0x1277 }, + /* 0x28300 */ + { 48310, 0xeffe }, { 48324, 0xbe40 }, { 48331, 0xffff }, { 48347, 0x79ff }, + { 48360, 0xffef }, { 48375, 0x87df }, { 48386, 0xffa9 }, { 48398, 0x8bdf }, + { 48409, 0x3fbf }, { 48422, 0x136f }, { 48431, 0xfff6 }, { 48445, 0x53ff }, + { 48457, 0xcfe2 }, { 48467, 0xe37e }, { 48478, 0x9f5f }, { 48490, 0x677f }, + /* 0x28400 */ + { 48502, 0xb806 }, { 48508, 0xffb3 }, { 48521, 0xbf17 }, { 48532, 0x7a67 }, + { 48542, 0xafff }, { 48556, 0x4f1f }, { 48566, 0xbfff }, { 48581, 0xf0bf }, + { 48592, 0xfffb }, { 48607, 0x2cf8 }, { 48615, 0xfffd }, { 48630, 0xf00d }, + { 48637, 0x6fbf }, { 48650, 0x2bfc }, { 48660, 0xfff0 }, { 48672, 0xefff }, + /* 0x28500 */ + { 48687, 0xc829 }, { 48693, 0xfeff }, { 48708, 0xffde }, { 48722, 0x0007 }, + { 48725, 0xaffe }, { 48738, 0xfc5b }, { 48749, 0xc7ff }, { 48762, 0x317f }, + { 48772, 0xffca }, { 48784, 0xe3f9 }, { 48795, 0xfc3b }, { 48806, 0xdffb }, + { 48820, 0xf81f }, { 48830, 0xc3bd }, { 48840, 0xffee }, { 48854, 0x3fc3 }, + /* 0x28600 */ + { 48864, 0xf7bf }, { 48878, 0xfe0b }, { 48888, 0x7fcf }, { 48901, 0xb3e5 }, + { 48911, 0xc7ff }, { 48924, 0xd7bf }, { 48937, 0xebd9 }, { 48948, 0x7fe7 }, + { 48961, 0xaefc }, { 48972, 0xfffe }, { 48987, 0xfd25 }, { 48997, 0xbe7f }, + { 49010, 0xffda }, { 49023, 0xde7f }, { 49036, 0xfffb }, { 49051, 0xf9fb }, + /* 0x28700 */ + { 49064, 0xfd6f }, { 49077, 0x9fff }, { 49091, 0xe5ff }, { 49104, 0xfffd }, + { 49119, 0xfe9b }, { 49131, 0xe9bb }, { 49142, 0xfdef }, { 49156, 0xe1fb }, + { 49167, 0xf2bf }, { 49179, 0xdffe }, { 49193, 0xcfc3 }, { 49203, 0xffeb }, + { 49217, 0xe13f }, { 49227, 0xdff3 }, { 49240, 0xd9df }, { 49252, 0xfff7 }, + /* 0x28800 */ + { 49267, 0xfde7 }, { 49280, 0x79ff }, { 49293, 0x40f4 }, { 49299, 0x7fc0 }, + { 49308, 0xf826 }, { 49316, 0x3dfb }, { 49328, 0xfe0d }, { 49338, 0x61ff }, + { 49349, 0xfffb }, { 49364, 0x0e77 }, { 49373, 0xbfff }, { 49388, 0xe66f }, + { 49399, 0x48ff }, { 49409, 0xbffb }, { 49423, 0xefcb }, { 49435, 0xffdf }, + /* 0x28900 */ + { 49450, 0xf7a7 }, { 49462, 0x6fef }, { 49475, 0x376f }, { 49486, 0xc7d0 }, + { 49494, 0xfe1d }, { 49505, 0x03ff }, { 49515, 0xe7f4 }, { 49526, 0x4a6f }, + { 49535, 0xfc74 }, { 49545, 0xf25f }, { 49556, 0xfd09 }, { 49565, 0xc19f }, + { 49574, 0xfffe }, { 49589, 0x1a68 }, { 49595, 0xfff2 }, { 49608, 0xe07f }, + /* 0x28a00 */ + { 49618, 0x7fff }, { 49633, 0x20ff }, { 49642, 0xd220 }, { 49647, 0x7fff }, + { 49662, 0xf000 }, { 49666, 0xf9ff }, { 49680, 0x121f }, { 49687, 0x1620 }, + { 49691, 0xfffe }, { 49706, 0x80df }, { 49714, 0xffff }, { 49730, 0x30c1 }, + { 49735, 0xd840 }, { 49740, 0x037f }, { 49749, 0xffc0 }, { 49759, 0x2bff }, + /* 0x28b00 */ + { 49771, 0xf038 }, { 49778, 0xafdf }, { 49791, 0xc7f8 }, { 49801, 0x7fff }, + { 49816, 0x4290 }, { 49820, 0xffe9 }, { 49833, 0xef84 }, { 49842, 0x50ff }, + { 49852, 0x8019 }, { 49856, 0xccbc }, { 49865, 0x89ff }, { 49876, 0xfb80 }, + { 49884, 0xffd0 }, { 49895, 0xc697 }, { 49904, 0xe04f }, { 49912, 0x5c01 }, + /* 0x28c00 */ + { 49917, 0xfe23 }, { 49927, 0xf7f7 }, { 49941, 0xd315 }, { 49949, 0x394f }, + { 49958, 0x0000 }, { 49958, 0xff80 }, { 49967, 0x0bf4 }, { 49975, 0x86f8 }, + { 49983, 0x3fcf }, { 49995, 0xedb8 }, { 50005, 0xe3e7 }, { 50016, 0x5d5c }, + { 50025, 0xde3f }, { 50037, 0xffeb }, { 50051, 0x3faf }, { 50063, 0xfffd }, + /* 0x28d00 */ + { 50078, 0xe037 }, { 50086, 0xa3ff }, { 50098, 0xff21 }, { 50108, 0x81eb }, + { 50116, 0xbff3 }, { 50129, 0x10ff }, { 50138, 0xfff4 }, { 50151, 0x02ad }, + { 50157, 0xffff }, { 50173, 0xf444 }, { 50180, 0xf0ff }, { 50192, 0x43df }, + { 50202, 0x3efe }, { 50214, 0xfabc }, { 50225, 0x0dde }, { 50234, 0x198f }, + /* 0x28e00 */ + { 50242, 0x8000 }, { 50243, 0x7dff }, { 50257, 0xfa1f }, { 50268, 0x012f }, + { 50274, 0xdffe }, { 50288, 0xff2b }, { 50300, 0xe08f }, { 50308, 0xffef }, + { 50323, 0xfc7f }, { 50336, 0x800f }, { 50341, 0xffff }, { 50357, 0x8032 }, + { 50361, 0xffff }, { 50377, 0xfd7f }, { 50391, 0x8543 }, { 50397, 0xffff }, + /* 0x28f00 */ + { 50413, 0xfd7f }, { 50427, 0xfbff }, { 50442, 0xfc41 }, { 50450, 0xe07b }, + { 50459, 0xf0ff }, { 50471, 0xb3ff }, { 50484, 0x5def }, { 50496, 0xbf7e }, + { 50509, 0xafef }, { 50522, 0x3ffe }, { 50535, 0xcfff }, { 50549, 0xfffc }, + { 50563, 0xfb7f }, { 50577, 0x47ff }, { 50589, 0xffff }, { 50605, 0xe67f }, + /* 0x29000 */ + { 50617, 0xffff }, { 50633, 0xffbf }, { 50648, 0xfff3 }, { 50662, 0xfff3 }, + { 50676, 0xffe7 }, { 50690, 0xfbff }, { 50705, 0x3b9f }, { 50716, 0x7fe5 }, + { 50728, 0x37fc }, { 50739, 0x1dfc }, { 50749, 0x77fe }, { 50762, 0xffac }, + { 50774, 0x17ef }, { 50785, 0x7fff }, { 50800, 0xafcb }, { 50811, 0xf7f0 }, + /* 0x29100 */ + { 50822, 0x221b }, { 50828, 0xffc0 }, { 50838, 0x6aff }, { 50850, 0xff80 }, + { 50859, 0xceff }, { 50872, 0xe00d }, { 50878, 0x3fff }, { 50892, 0xf0c6 }, + { 50900, 0x03ff }, { 50910, 0x8dfe }, { 50921, 0xea70 }, { 50929, 0xa5ef }, + { 50940, 0x5f9f }, { 50952, 0xffbe }, { 50966, 0xffdb }, { 50980, 0xd7ef }, + /* 0x29200 */ + { 50993, 0xf7f8 }, { 51005, 0xbe4e }, { 51015, 0xf9ff }, { 51029, 0x7b7f }, + { 51042, 0x7fbf }, { 51056, 0xee52 }, { 51065, 0x5ffe }, { 51078, 0xff00 }, + { 51086, 0x0b3f }, { 51095, 0xffff }, { 51111, 0xfe60 }, { 51120, 0x938d }, + { 51128, 0xffff }, { 51144, 0xe83f }, { 51154, 0xffff }, { 51170, 0xf77f }, + /* 0x29300 */ + { 51184, 0xfff9 }, { 51198, 0x2cff }, { 51209, 0xffc7 }, { 51222, 0xcecf }, + { 51233, 0xceff }, { 51246, 0xfffe }, { 51261, 0xcff0 }, { 51271, 0xc3be }, + { 51281, 0xffb7 }, { 51295, 0x7fbe }, { 51308, 0xfff2 }, { 51321, 0xffef }, + { 51336, 0xcfeb }, { 51348, 0xcfff }, { 51362, 0xff7f }, { 51377, 0x0ff7 }, + /* 0x29400 */ + { 51388, 0xbebe }, { 51400, 0xdff8 }, { 51412, 0x7dff }, { 51426, 0xdef7 }, + { 51439, 0x3fef }, { 51452, 0xffff }, { 51468, 0x5fff }, { 51482, 0x7fff }, + { 51497, 0x9fff }, { 51511, 0xffff }, { 51527, 0xecd7 }, { 51538, 0xffff }, + { 51554, 0x7f7f }, { 51568, 0xe37a }, { 51578, 0xffff }, { 51594, 0x7dff }, + /* 0x29500 */ + { 51608, 0xffff }, { 51624, 0xfe19 }, { 51634, 0xb3ff }, { 51647, 0xfff9 }, + { 51661, 0xff65 }, { 51673, 0xefff }, { 51688, 0xfa7f }, { 51701, 0xd5fe }, + { 51713, 0xfcdb }, { 51725, 0xbe09 }, { 51733, 0x53fe }, { 51744, 0x7ffd }, + { 51758, 0x3ff2 }, { 51769, 0xeff8 }, { 51781, 0xff0f }, { 51793, 0x0dff }, + /* 0x29600 */ + { 51804, 0xffea }, { 51817, 0xf6ff }, { 51831, 0xe0ff }, { 51842, 0xffff }, + { 51858, 0x477f }, { 51869, 0xfede }, { 51882, 0x0012 }, { 51884, 0x34d6 }, + { 51892, 0xffff }, { 51908, 0x7fec }, { 51920, 0xff19 }, { 51931, 0xafff }, + { 51945, 0xff63 }, { 51957, 0xe8cf }, { 51967, 0xffff }, { 51983, 0xfe0a }, + /* 0x29700 */ + { 51992, 0xffff }, { 52008, 0xfcfd }, { 52021, 0xb004 }, { 52025, 0xffff }, + { 52041, 0x0267 }, { 52047, 0xef80 }, { 52055, 0x5bff }, { 52068, 0xf337 }, + { 52079, 0xffff }, { 52095, 0xc6c3 }, { 52103, 0x7fff }, { 52118, 0xf4a4 }, + { 52126, 0xbfff }, { 52141, 0x2bf8 }, { 52150, 0xe5f8 }, { 52160, 0x01d3 }, + /* 0x29800 */ + { 52166, 0x0000 }, { 52166, 0x1ee3 }, { 52175, 0x1c7c }, { 52183, 0xde85 }, + { 52192, 0x77f7 }, { 52205, 0x6d3f }, { 52216, 0x67b2 }, { 52225, 0xffaf }, + { 52239, 0xf35e }, { 52250, 0xffff }, { 52266, 0xe0eb }, { 52275, 0xffff }, + { 52291, 0x77bf }, { 52304, 0xffe7 }, { 52318, 0xe19f }, { 52328, 0xffff }, + /* 0x29900 */ + { 52344, 0x82d3 }, { 52351, 0xffcd }, { 52364, 0x7fff }, { 52379, 0xe88b }, + { 52387, 0xffff }, { 52403, 0x5ddf }, { 52415, 0xf814 }, { 52422, 0x0c1f }, + { 52429, 0xffff }, { 52445, 0xdaf3 }, { 52456, 0x31ff }, { 52467, 0xffc8 }, + { 52478, 0xcffd }, { 52491, 0x0f71 }, { 52499, 0x003f }, { 52505, 0x0000 }, + /* 0x29a00 */ + { 52505, 0x0000 }, { 52505, 0xf8e6 }, { 52515, 0xf0df }, { 52526, 0xe5ff }, + { 52539, 0xfe4f }, { 52551, 0xffa8 }, { 52562, 0xe04f }, { 52570, 0x637f }, + { 52581, 0xfe7f }, { 52595, 0x1fbf }, { 52607, 0x6fff }, { 52621, 0xdbcc }, + { 52631, 0xde7f }, { 52644, 0xf7a3 }, { 52655, 0xffff }, { 52671, 0xb69b }, + /* 0x29b00 */ + { 52681, 0x8e1b }, { 52689, 0xffff }, { 52705, 0x03c7 }, { 52712, 0xbfff }, + { 52727, 0xff8f }, { 52740, 0xe5ef }, { 52752, 0x6fff }, { 52766, 0xff80 }, + { 52775, 0x3bff }, { 52788, 0xffc0 }, { 52798, 0xc3cf }, { 52808, 0x77ff }, + { 52822, 0xfff8 }, { 52835, 0xf853 }, { 52844, 0x23f1 }, { 52852, 0x8d3f }, + /* 0x29c00 */ + { 52862, 0xfefe }, { 52876, 0xf2ff }, { 52889, 0xffff }, { 52905, 0xd2fe }, + { 52916, 0xffbb }, { 52930, 0xbfdf }, { 52944, 0xbbff }, { 52958, 0xe7bf }, + { 52971, 0xfdff }, { 52986, 0x7ff3 }, { 52999, 0xdfee }, { 53012, 0xfa49 }, + { 53021, 0xfbf7 }, { 53035, 0xbf7f }, { 53049, 0xf7ff }, { 53064, 0xf7e7 }, + /* 0x29d00 */ + { 53077, 0xefc9 }, { 53088, 0xfb7f }, { 53102, 0xef5f }, { 53115, 0xaddf }, + { 53127, 0xfdb7 }, { 53140, 0x0bfb }, { 53150, 0xffff }, { 53166, 0x13fb }, + { 53176, 0x7fff }, { 53191, 0x4c7e }, { 53200, 0xfffd }, { 53215, 0xbfc3 }, + { 53226, 0xf80c }, { 53233, 0xf7ff }, { 53248, 0x507f }, { 53257, 0xffb0 }, + /* 0x29e00 */ + { 53268, 0xffff }, { 53284, 0x9f85 }, { 53293, 0x21a5 }, { 53299, 0xd600 }, + { 53304, 0xffff }, { 53320, 0x5fc7 }, { 53331, 0x0104 }, { 53333, 0xfffe }, + { 53348, 0xe07f }, { 53358, 0x1e7f }, { 53369, 0xe800 }, { 53373, 0x7fff }, + { 53388, 0x2fe0 }, { 53396, 0xff40 }, { 53405, 0x0dff }, { 53416, 0x0174 }, + /* 0x29f00 */ + { 53421, 0x7ffc }, { 53434, 0xf1c7 }, { 53444, 0x7fe3 }, { 53456, 0xf83e }, + { 53466, 0xf11f }, { 53476, 0xfd2b }, { 53487, 0x7fcb }, { 53499, 0x00eb }, + { 53505, 0xa201 }, { 53509, 0xfbff }, { 53524, 0x1eff }, { 53536, 0xffff }, + { 53552, 0x9fff }, { 53566, 0xf8ff }, { 53579, 0x7fff }, { 53594, 0x11fe }, + /* 0x2a000 */ + { 53603, 0xbf83 }, { 53613, 0xeffe }, { 53627, 0x3fff }, { 53641, 0xb5ff }, + { 53654, 0xff01 }, { 53663, 0xffff }, { 53679, 0x7fff }, { 53694, 0xfb85 }, + { 53704, 0xffff }, { 53720, 0xefbb }, { 53733, 0x242a }, { 53738, 0xfff0 }, + { 53750, 0xffff }, { 53766, 0x3dff }, { 53779, 0x86d5 }, { 53787, 0xfe48 }, + /* 0x2a100 */ + { 53796, 0xfeff }, { 53811, 0x599f }, { 53821, 0xfe09 }, { 53830, 0xfbff }, + { 53845, 0x7fff }, { 53860, 0x947e }, { 53869, 0xc002 }, { 53872, 0xffff }, + { 53888, 0x3fff }, { 53902, 0x24f2 }, { 53909, 0xff02 }, { 53918, 0xffff }, + { 53934, 0x065e }, { 53941, 0x35fe }, { 53952, 0xf003 }, { 53958, 0x9fff }, + /* 0x2a200 */ + { 53972, 0x7efa }, { 53984, 0xff0d }, { 53995, 0xcff4 }, { 54006, 0xbfb7 }, + { 54019, 0x0001 }, { 54020, 0xffc0 }, { 54030, 0xe3db }, { 54041, 0x95ef }, + { 54052, 0xfbdf }, { 54066, 0x5bfb }, { 54078, 0xbde3 }, { 54089, 0xfffe }, + { 54104, 0xebf8 }, { 54115, 0x7ff7 }, { 54129, 0xfcae }, { 54140, 0xfd9d }, + /* 0x2a300 */ + { 54152, 0x7fee }, { 54165, 0x3df7 }, { 54177, 0xf17d }, { 54188, 0xf91f }, + { 54199, 0xfaff }, { 54213, 0xfd7f }, { 54227, 0xffff }, { 54243, 0xff7d }, + { 54257, 0xe0df }, { 54267, 0xfcfd }, { 54280, 0xfdff }, { 54295, 0x6e7d }, + { 54306, 0x7fde }, { 54319, 0x7f7a }, { 54331, 0xf1f2 }, { 54341, 0xffdf }, + /* 0x2a400 */ + { 54356, 0xff9d }, { 54369, 0xfbfe }, { 54383, 0x0df3 }, { 54392, 0x831c }, + { 54398, 0x7f1f }, { 54410, 0x7ffc }, { 54423, 0xffea }, { 54436, 0xc09f }, + { 54444, 0x993f }, { 54454, 0xff7f }, { 54469, 0xfe8f }, { 54481, 0xcf31 }, + { 54490, 0xde5b }, { 54501, 0xfdff }, { 54516, 0xf3b6 }, { 54527, 0xfbff }, + /* 0x2a500 */ + { 54542, 0xed77 }, { 54554, 0x39f7 }, { 54565, 0xdffc }, { 54578, 0xfdeb }, + { 54591, 0xff5f }, { 54605, 0xff9e }, { 54618, 0xff92 }, { 54629, 0xefe2 }, + { 54640, 0xf9ef }, { 54653, 0x0dff }, { 54664, 0xc7fe }, { 54676, 0x78f9 }, + { 54686, 0xfef6 }, { 54699, 0xff37 }, { 54712, 0xbfff }, { 54727, 0xffe4 }, + /* 0x2a600 */ + { 54739, 0xec33 }, { 54748, 0x99ff }, { 54760, 0x77f7 }, { 54773, 0xffd5 }, + { 54786, 0xffcf }, { 54800, 0xffcf }, { 54814, 0x56f8 }, { 54823, 0xbbfd }, + { 54836, 0x7b5f }, { 54848, 0xfbee }, { 54861, 0xf9e1 }, { 54871, 0xfffb }, + { 54886, 0xef5f }, { 54899, 0x007f }, +}; +static const Summary16 cns11643_inv_uni2indx_page2f8[34] = { + /* 0x2f800 */ + { 54906, 0xffff }, { 54922, 0xffff }, { 54938, 0xffff }, { 54954, 0xffff }, + { 54970, 0xfffe }, { 54985, 0xffff }, { 55001, 0xffff }, { 55017, 0xffff }, + { 55033, 0xffff }, { 55049, 0xffef }, { 55064, 0xffff }, { 55080, 0xffff }, + { 55096, 0xdfff }, { 55111, 0xffff }, { 55127, 0xffff }, { 55143, 0xffff }, + /* 0x2f900 */ + { 55159, 0xffff }, { 55175, 0xffff }, { 55191, 0xffff }, { 55207, 0xffff }, + { 55223, 0xffff }, { 55239, 0xffff }, { 55255, 0xffff }, { 55271, 0xffff }, + { 55287, 0xffff }, { 55303, 0xffef }, { 55318, 0xffff }, { 55334, 0xfffb }, + { 55349, 0xffff }, { 55365, 0xffef }, { 55380, 0xffff }, { 55396, 0xffff }, + /* 0x2fa00 */ + { 55412, 0xffff }, { 55428, 0x3fff }, +}; + +static int +cns11643_inv_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (n >= 2) { + const Summary16 *summary = NULL; + if (wc >= 0x0000 && wc < 0x0100) + summary = &cns11643_inv_uni2indx_page00[(wc>>4)]; + else if (wc >= 0x0200 && wc < 0x03d0) + summary = &cns11643_inv_uni2indx_page02[(wc>>4)-0x020]; + else if (wc >= 0x2000 && wc < 0x22c0) + summary = &cns11643_inv_uni2indx_page20[(wc>>4)-0x200]; + else if (wc >= 0x2400 && wc < 0x2650) + summary = &cns11643_inv_uni2indx_page24[(wc>>4)-0x240]; + else if (wc >= 0x3000 && wc < 0x9fb0) + summary = &cns11643_inv_uni2indx_page30[(wc>>4)-0x300]; + else if (wc >= 0xfa00 && wc < 0xfa30) + summary = &cns11643_inv_uni2indx_pagefa[(wc>>4)-0xfa0]; + else if (wc >= 0xfe00 && wc < 0xfff0) + summary = &cns11643_inv_uni2indx_pagefe[(wc>>4)-0xfe0]; + else if (wc >= 0x20000 && wc < 0x2a6e0) + summary = &cns11643_inv_uni2indx_page200[(wc>>4)-0x2000]; + else if (wc >= 0x2f800 && wc < 0x2fa20) + summary = &cns11643_inv_uni2indx_page2f8[(wc>>4)-0x2f80]; + if (summary) { + unsigned short used = summary->used; + unsigned int i = wc & 0x0f; + if (used & ((unsigned short) 1 << i)) { + /* Keep in `used' only the bits 0..i-1. */ + used &= ((unsigned short) 1 << i) - 1; + /* Add `summary->indx' and the number of bits set in `used'. */ + used = (used & 0x5555) + ((used & 0xaaaa) >> 1); + used = (used & 0x3333) + ((used & 0xcccc) >> 2); + used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); + used = (used & 0x00ff) + (used >> 8); + used += summary->indx; + r[0] = cns11643_inv_2charset[3*used]; + r[1] = cns11643_inv_2charset[3*used+1]; + r[2] = cns11643_inv_2charset[3*used+2]; + return 3; + } + } + return RET_ILUNI; + } + return RET_TOOSMALL; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/config.h b/graf2d/win32gdk/gdk/src/iconv/config.h new file mode 100644 index 00000000000..fb706d02e66 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/config.h @@ -0,0 +1,458 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if the compiler is building for multiple architectures of Apple + platforms at once. */ +#undef AA_APPLE_UNIVERSAL_BUILD + +/* Define to the number of bits in type 'ptrdiff_t'. */ +#undef BITSIZEOF_PTRDIFF_T + +/* Define to the number of bits in type 'sig_atomic_t'. */ +#undef BITSIZEOF_SIG_ATOMIC_T + +/* Define to the number of bits in type 'size_t'. */ +#undef BITSIZEOF_SIZE_T + +/* Define to the number of bits in type 'wchar_t'. */ +#undef BITSIZEOF_WCHAR_T + +/* Define to the number of bits in type 'wint_t'. */ +#undef BITSIZEOF_WINT_T + +/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP + systems. This function is required for `alloca.c' support on those systems. + */ +#undef CRAY_STACKSEG_END + +/* Define to 1 if using `alloca.c'. */ +#undef C_ALLOCA + +/* Define as good substitute value for EILSEQ. */ +//#undef EILSEQ + +/* Define to 1 to enable a few rarely used encodings. */ +#undef ENABLE_EXTRA + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +#undef ENABLE_NLS + +/* Define to 1 if the package shall run at any location in the filesystem. */ +#undef ENABLE_RELOCATABLE + +/* Define to 1 when using the gnulib module canonicalize-lgpl. */ +#undef GNULIB_CANONICALIZE_LGPL + +/* Define to 1 when using the gnulib module sigpipe. */ +#undef GNULIB_SIGPIPE + +/* Define to 1 if you have `alloca', as a function or macro. */ +#undef HAVE_ALLOCA + +/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix). + */ +#undef HAVE_ALLOCA_H + +/* Define to 1 if you have the `canonicalize_file_name' function. */ +#undef HAVE_CANONICALIZE_FILE_NAME + +/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the + CoreFoundation framework. */ +#undef HAVE_CFLOCALECOPYCURRENT + +/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in + the CoreFoundation framework. */ +#undef HAVE_CFPREFERENCESCOPYAPPVALUE + +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +#undef HAVE_DCGETTEXT + +/* Define to 1 if you have the declaration of `canonicalize_file_name', and to + 0 if you don't. */ +#undef HAVE_DECL_CANONICALIZE_FILE_NAME + +/* Define to 1 if you have the declaration of `clearerr_unlocked', and to 0 if + you don't. */ +#undef HAVE_DECL_CLEARERR_UNLOCKED + +/* Define to 1 if you have the declaration of `feof_unlocked', and to 0 if you + don't. */ +#undef HAVE_DECL_FEOF_UNLOCKED + +/* Define to 1 if you have the declaration of `ferror_unlocked', and to 0 if + you don't. */ +#undef HAVE_DECL_FERROR_UNLOCKED + +/* Define to 1 if you have the declaration of `fflush_unlocked', and to 0 if + you don't. */ +#undef HAVE_DECL_FFLUSH_UNLOCKED + +/* Define to 1 if you have the declaration of `fgets_unlocked', and to 0 if + you don't. */ +#undef HAVE_DECL_FGETS_UNLOCKED + +/* Define to 1 if you have the declaration of `fputc_unlocked', and to 0 if + you don't. */ +#undef HAVE_DECL_FPUTC_UNLOCKED + +/* Define to 1 if you have the declaration of `fputs_unlocked', and to 0 if + you don't. */ +#undef HAVE_DECL_FPUTS_UNLOCKED + +/* Define to 1 if you have the declaration of `fread_unlocked', and to 0 if + you don't. */ +#undef HAVE_DECL_FREAD_UNLOCKED + +/* Define to 1 if you have the declaration of `fwrite_unlocked', and to 0 if + you don't. */ +#undef HAVE_DECL_FWRITE_UNLOCKED + +/* Define to 1 if you have the declaration of `getchar_unlocked', and to 0 if + you don't. */ +#undef HAVE_DECL_GETCHAR_UNLOCKED + +/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you + don't. */ +#undef HAVE_DECL_GETC_UNLOCKED + +/* Define to 1 if you have the declaration of `putchar_unlocked', and to 0 if + you don't. */ +#undef HAVE_DECL_PUTCHAR_UNLOCKED + +/* Define to 1 if you have the declaration of `putc_unlocked', and to 0 if you + don't. */ +#undef HAVE_DECL_PUTC_UNLOCKED + +/* Define to 1 if you have the declaration of `strerror', and to 0 if you + don't. */ +#undef HAVE_DECL_STRERROR + +/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you + don't. */ +#undef HAVE_DECL_STRERROR_R + +/* Define to 1 if you have the <dlfcn.h> header file. */ +#undef HAVE_DLFCN_H + +/* Define if you have the declaration of environ. */ +#undef HAVE_ENVIRON_DECL + +/* Define to 1 if you have the <errno.h> header file. */ +#undef HAVE_ERRNO_H + +/* Define to 1 if you have the `getcwd' function. */ +#undef HAVE_GETCWD + +/* Define to 1 if you have the `getc_unlocked' function. */ +#undef HAVE_GETC_UNLOCKED + +/* Define if the GNU gettext() function is already present or preinstalled. */ +#undef HAVE_GETTEXT + +/* Define if you have the iconv() function and it works. */ +#undef HAVE_ICONV + +/* Define to 1 if you have the <inttypes.h> header file. */ +#undef HAVE_INTTYPES_H + +/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */ +#undef HAVE_LANGINFO_CODESET + +/* Define to 1 if the system has the type `long long int'. */ +#undef HAVE_LONG_LONG_INT + +/* Define to 1 if you have the <mach-o/dyld.h> header file. */ +#undef HAVE_MACH_O_DYLD_H + +/* Define if the 'malloc' function is POSIX compliant. */ +#undef HAVE_MALLOC_POSIX + +/* Define to 1 if you have the `mbrtowc' function. */ +#undef HAVE_MBRTOWC + +/* Define to 1 if you have the `mbsinit' function. */ +#undef HAVE_MBSINIT + +/* Define to 1 if <wchar.h> declares mbstate_t. */ +#undef HAVE_MBSTATE_T + +/* Define to 1 if you have the <memory.h> header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the `pathconf' function. */ +#undef HAVE_PATHCONF + +/* Define to 1 if you have the <random.h> header file. */ +#undef HAVE_RANDOM_H + +/* Define to 1 if you have the `readlink' function. */ +#undef HAVE_READLINK + +/* Define to 1 if you have the <search.h> header file. */ +#undef HAVE_SEARCH_H + +/* Define to 1 if you have the `setenv' function. */ +#undef HAVE_SETENV + +/* Define to 1 if you have the `setlocale' function. */ +#undef HAVE_SETLOCALE + +/* Define to 1 if you have the <signal.h> header file. */ +#undef HAVE_SIGNAL_H + +/* Define to 1 if 'sig_atomic_t' is a signed integer type. */ +#undef HAVE_SIGNED_SIG_ATOMIC_T + +/* Define to 1 if 'wchar_t' is a signed integer type. */ +#undef HAVE_SIGNED_WCHAR_T + +/* Define to 1 if 'wint_t' is a signed integer type. */ +#undef HAVE_SIGNED_WINT_T + +/* Define to 1 if the system has the type `sigset_t'. */ +#undef HAVE_SIGSET_T + +/* Define to 1 if stdbool.h conforms to C99. */ +#undef HAVE_STDBOOL_H + +/* Define to 1 if you have the <stdint.h> header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the <stdio.h> header file. */ +#undef HAVE_STDIO_H + +/* Define to 1 if you have the <stdlib.h> header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the `strerror_r' function. */ +#undef HAVE_STRERROR_R + +/* Define to 1 if you have the <strings.h> header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the <string.h> header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if the system has the type `struct random_data'. */ +#undef HAVE_STRUCT_RANDOM_DATA + +/* Define to 1 if you have the <sys/bitypes.h> header file. */ +#undef HAVE_SYS_BITYPES_H + +/* Define to 1 if you have the <sys/inttypes.h> header file. */ +#undef HAVE_SYS_INTTYPES_H + +/* Define to 1 if you have the <sys/param.h> header file. */ +#undef HAVE_SYS_PARAM_H + +/* Define to 1 if you have the <sys/socket.h> header file. */ +#undef HAVE_SYS_SOCKET_H + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the <sys/types.h> header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the `tsearch' function. */ +#undef HAVE_TSEARCH + +/* Define to 1 if you have the <unistd.h> header file. */ +#undef HAVE_UNISTD_H + +/* Define to 1 if the system has the type `unsigned long long int'. */ +#undef HAVE_UNSIGNED_LONG_LONG_INT + +/* Define to 1 or 0, depending whether the compiler supports simple visibility + declarations. */ +#undef HAVE_VISIBILITY + +/* Define to 1 if you have the <wchar.h> header file. */ +#undef HAVE_WCHAR_H + +/* Define if you have the 'wchar_t' type. */ +#undef HAVE_WCHAR_T + +/* Define to 1 if you have the `wcrtomb' function. */ +#undef HAVE_WCRTOMB + +/* Define to 1 if you have the <winsock2.h> header file. */ +#undef HAVE_WINSOCK2_H + +/* Define if you have the 'wint_t' type. */ +#undef HAVE_WINT_T + +/* Define to 1 if the system has the type `_Bool'. */ +#undef HAVE__BOOL + +/* Define to 1 if you have the `_NSGetExecutablePath' function. */ +#undef HAVE__NSGETEXECUTABLEPATH + +/* Define as const if the declaration of iconv() needs const. */ +#undef ICONV_CONST + +/* Define to the value of ${prefix}, as a string. */ +#undef INSTALLPREFIX + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#undef LT_OBJDIR + +/* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */ +#undef MALLOC_0_IS_NONNULL + +/* Define to 1 if your C compiler doesn't accept -c and -o together. */ +#undef NO_MINUS_C_MINUS_O + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type + 'ptrdiff_t'. */ +#undef PTRDIFF_T_SUFFIX + +/* Define this to 1 if strerror is broken. */ +#undef REPLACE_STRERROR + +/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type + 'sig_atomic_t'. */ +#undef SIG_ATOMIC_T_SUFFIX + +/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type + 'size_t'. */ +#undef SIZE_T_SUFFIX + +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at runtime. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown */ +#undef STACK_DIRECTION + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define to 1 if strerror_r returns char *. */ +#undef STRERROR_R_CHAR_P + +/* Define to 1 if you want getc etc. to use unlocked I/O if available. + Unlocked I/O can improve performance in unithreaded apps, but it is not + safe for multithreaded apps. */ +#undef USE_UNLOCKED_IO + +/* Version number of package */ +#undef VERSION + +/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type + 'wchar_t'. */ +#undef WCHAR_T_SUFFIX + +/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type + 'wint_t'. */ +#undef WINT_T_SUFFIX + +/* Define if the machine's byte ordering is little endian. */ +#undef WORDS_LITTLEENDIAN + +/* Define to 1 if on MINIX. */ +#undef _MINIX + +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +#undef _POSIX_1_SOURCE + +/* Define to 1 if you need to in order for `stat' and other things to work. */ +#undef _POSIX_SOURCE + +/* Define to 500 only on HP-UX. */ +#undef _XOPEN_SOURCE + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# undef _ALL_SOURCE +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# undef _POSIX_PTHREAD_SEMANTICS +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# undef _TANDEM_SOURCE +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif + + +/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports + the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of + earlier versions), but does not display it by setting __GNUC_STDC_INLINE__. + __APPLE__ && __MACH__ test for MacOS X. + __APPLE_CC__ tests for the Apple compiler and its version. + __STDC_VERSION__ tests for the C99 mode. */ +#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__ +# define __GNUC_STDC_INLINE__ 1 +#endif + +/* Define to a type if <wchar.h> does not define. */ +#undef mbstate_t + +/* Define to a replacement function name for realpath(). */ +#undef realpath + +/* Define to the equivalent of the C99 'restrict' keyword, or to + nothing if this is not supported. Do not define if restrict is + supported directly. */ +#undef restrict +/* Work around a bug in Sun C++: it does not support _Restrict, even + though the corresponding Sun C compiler does, which causes + "#define restrict _Restrict" in the previous line. Perhaps some future + version of Sun C++ will work with _Restrict; if so, it'll probably + define __RESTRICT, just as Sun C does. */ +#if defined __SUNPRO_CC && !defined __RESTRICT +# define _Restrict +#endif + +/* Define as a signed type of the same size as size_t. */ +#undef ssize_t + +/* Define as a marker that can be attached to function parameter declarations + for parameters that are not used. This helps to reduce warnings, such as + from GCC -Wunused-parameter. */ +#if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) +# define _UNUSED_PARAMETER_ __attribute__ ((__unused__)) +#else +# define _UNUSED_PARAMETER_ +#endif + + + +/* On Windows, variables that may be in a DLL must be marked specially. */ +#if defined _MSC_VER && defined _DLL +# define DLL_VARIABLE __declspec (dllimport) +#else +# define DLL_VARIABLE +#endif + diff --git a/graf2d/win32gdk/gdk/src/iconv/converters.h b/graf2d/win32gdk/gdk/src/iconv/converters.h new file mode 100644 index 00000000000..f2cd366978b --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/converters.h @@ -0,0 +1,297 @@ +/* + * Copyright (C) 1999-2002, 2004-2009 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* This file defines all the converters. */ + + +/* Our own notion of wide character, as UCS-4, according to ISO-10646-1. */ +typedef unsigned int ucs4_t; + +/* State used by a conversion. 0 denotes the initial state. */ +typedef unsigned int state_t; + +/* iconv_t is an opaque type. This is the real iconv_t type. */ +typedef struct conv_struct * conv_t; + +/* + * Data type for conversion multibyte -> unicode + */ +struct mbtowc_funcs { + int (*xxx_mbtowc) (conv_t conv, ucs4_t *pwc, unsigned char const *s, int n); + /* + * int xxx_mbtowc (conv_t conv, ucs4_t *pwc, unsigned char const *s, int n) + * converts the byte sequence starting at s to a wide character. Up to n bytes + * are available at s. n is >= 1. + * Result is number of bytes consumed (if a wide character was read), + * or -1 if invalid, or -2 if n too small, or -2-(number of bytes consumed) + * if only a shift sequence was read. + */ + int (*xxx_flushwc) (conv_t conv, ucs4_t *pwc); + /* + * int xxx_flushwc (conv_t conv, ucs4_t *pwc) + * returns to the initial state and stores the pending wide character, if any. + * Result is 1 (if a wide character was read) or 0 if none was pending. + */ +}; + +/* Return code if invalid input after a shift sequence of n bytes was read. + (xxx_mbtowc) */ +#define RET_SHIFT_ILSEQ(n) (-1-2*(n)) +/* Return code if invalid. (xxx_mbtowc) */ +#define RET_ILSEQ RET_SHIFT_ILSEQ(0) +/* Return code if only a shift sequence of n bytes was read. (xxx_mbtowc) */ +#define RET_TOOFEW(n) (-2-2*(n)) +/* Retrieve the n from the encoded RET_... value. */ +#define DECODE_SHIFT_ILSEQ(r) ((unsigned int)(RET_SHIFT_ILSEQ(0) - (r)) / 2) +#define DECODE_TOOFEW(r) ((unsigned int)(RET_TOOFEW(0) - (r)) / 2) + +/* + * Data type for conversion unicode -> multibyte + */ +struct wctomb_funcs { + int (*xxx_wctomb) (conv_t conv, unsigned char *r, ucs4_t wc, int n); + /* + * int xxx_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) + * converts the wide character wc to the character set xxx, and stores the + * result beginning at r. Up to n bytes may be written at r. n is >= 1. + * Result is number of bytes written, or -1 if invalid, or -2 if n too small. + */ + int (*xxx_reset) (conv_t conv, unsigned char *r, int n); + /* + * int xxx_reset (conv_t conv, unsigned char *r, int n) + * stores a shift sequences returning to the initial state beginning at r. + * Up to n bytes may be written at r. n is >= 0. + * Result is number of bytes written, or -2 if n too small. + */ +}; + +/* Return code if invalid. (xxx_wctomb) */ +#define RET_ILUNI -1 +/* Return code if output buffer is too small. (xxx_wctomb, xxx_reset) */ +#define RET_TOOSMALL -2 + +/* + * Contents of a conversion descriptor. + */ +struct conv_struct { + struct loop_funcs lfuncs; + /* Input (conversion multibyte -> unicode) */ + int iindex; + struct mbtowc_funcs ifuncs; + state_t istate; + /* Output (conversion unicode -> multibyte) */ + int oindex; + struct wctomb_funcs ofuncs; + int oflags; + state_t ostate; + /* Operation flags */ + int transliterate; + int discard_ilseq; + #ifndef LIBICONV_PLUG + struct iconv_fallbacks fallbacks; + struct iconv_hooks hooks; + #endif +}; + +/* + * Include all the converters. + */ + +#include "ascii.h" + +/* General multi-byte encodings */ +#include "utf8.h" +#include "ucs2.h" +#include "ucs2be.h" +#include "ucs2le.h" +#include "ucs4.h" +#include "ucs4be.h" +#include "ucs4le.h" +#include "utf16.h" +#include "utf16be.h" +#include "utf16le.h" +#include "utf32.h" +#include "utf32be.h" +#include "utf32le.h" +#include "utf7.h" +#include "ucs2internal.h" +#include "ucs2swapped.h" +#include "ucs4internal.h" +#include "ucs4swapped.h" +#include "c99.h" +#include "java.h" + +/* 8-bit encodings */ +#include "iso8859_1.h" +#include "iso8859_2.h" +#include "iso8859_3.h" +#include "iso8859_4.h" +#include "iso8859_5.h" +#include "iso8859_6.h" +#include "iso8859_7.h" +#include "iso8859_8.h" +#include "iso8859_9.h" +#include "iso8859_10.h" +#include "iso8859_11.h" +#include "iso8859_13.h" +#include "iso8859_14.h" +#include "iso8859_15.h" +#include "iso8859_16.h" +#include "koi8_r.h" +#include "koi8_u.h" +#include "koi8_ru.h" +#include "cp1250.h" +#include "cp1251.h" +#include "cp1252.h" +#include "cp1253.h" +#include "cp1254.h" +#include "cp1255.h" +#include "cp1256.h" +#include "cp1257.h" +#include "cp1258.h" +#include "cp850.h" +#include "cp862.h" +#include "cp866.h" +#include "cp1131.h" +#include "mac_roman.h" +#include "mac_centraleurope.h" +#include "mac_iceland.h" +#include "mac_croatian.h" +#include "mac_romania.h" +#include "mac_cyrillic.h" +#include "mac_ukraine.h" +#include "mac_greek.h" +#include "mac_turkish.h" +#include "mac_hebrew.h" +#include "mac_arabic.h" +#include "mac_thai.h" +#include "hp_roman8.h" +#include "nextstep.h" +#include "armscii_8.h" +#include "georgian_academy.h" +#include "georgian_ps.h" +#include "koi8_t.h" +#include "pt154.h" +#include "rk1048.h" +#include "mulelao.h" +#include "cp1133.h" +#include "tis620.h" +#include "cp874.h" +#include "viscii.h" +#include "tcvn.h" + +/* CJK character sets [CCS = coded character set] [CJKV.INF chapter 3] */ + +typedef struct { + unsigned short indx; /* index into big table */ + unsigned short used; /* bitmask of used entries */ +} Summary16; + +#include "iso646_jp.h" +#include "jisx0201.h" +#include "jisx0208.h" +#include "jisx0212.h" + +#include "iso646_cn.h" +#include "gb2312.h" +#include "isoir165.h" +/*#include "gb12345.h"*/ +#include "gbk.h" +#include "cns11643.h" +#include "big5.h" + +#include "ksc5601.h" +#include "johab_hangul.h" + +/* CJK encodings [CES = character encoding scheme] [CJKV.INF chapter 4] */ + +#include "euc_jp.h" +#include "sjis.h" +#include "cp932.h" +#include "iso2022_jp.h" +#include "iso2022_jp1.h" +#include "iso2022_jp2.h" + +#include "euc_cn.h" +#include "ces_gbk.h" +#include "cp936.h" +#include "gb18030.h" +#include "iso2022_cn.h" +#include "iso2022_cnext.h" +#include "hz.h" +#include "euc_tw.h" +#include "ces_big5.h" +#include "cp950.h" +#include "big5hkscs1999.h" +#include "big5hkscs2001.h" +#include "big5hkscs2004.h" + +#include "euc_kr.h" +#include "cp949.h" +#include "johab.h" +#include "iso2022_kr.h" + +/* Encodings used by system dependent locales. */ + +#ifdef USE_AIX +#include "cp856.h" +#include "cp922.h" +#include "cp943.h" +#include "cp1046.h" +#include "cp1124.h" +#include "cp1129.h" +#include "cp1161.h" +#include "cp1162.h" +#include "cp1163.h" +#endif + +#ifdef USE_OSF1 +#include "dec_kanji.h" +#include "dec_hanyu.h" +#endif + +#ifdef USE_DOS +#include "cp437.h" +#include "cp737.h" +#include "cp775.h" +#include "cp852.h" +#include "cp853.h" +#include "cp855.h" +#include "cp857.h" +#include "cp858.h" +#include "cp860.h" +#include "cp861.h" +#include "cp863.h" +#include "cp864.h" +#include "cp865.h" +#include "cp869.h" +#include "cp1125.h" +#endif + +#ifdef USE_EXTRA +#include "euc_jisx0213.h" +#include "shift_jisx0213.h" +#include "iso2022_jp3.h" +#include "big5_2003.h" +#include "tds565.h" +#include "atarist.h" +#include "riscos1.h" +#endif + diff --git a/graf2d/win32gdk/gdk/src/iconv/cp1046.h b/graf2d/win32gdk/gdk/src/iconv/cp1046.h new file mode 100644 index 00000000000..b6716b73db3 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp1046.h @@ -0,0 +1,157 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP1046 + */ + +static const unsigned short cp1046_2uni[128] = { + /* 0x80 */ + 0xfe88, 0x00d7, 0x00f7, 0xf8f6, 0xf8f5, 0xf8f4, 0xf8f7, 0xfe71, + 0x0088, 0x25a0, 0x2502, 0x2500, 0x2510, 0x250c, 0x2514, 0x2518, + /* 0x90 */ + 0xfe79, 0xfe7b, 0xfe7d, 0xfe7f, 0xfe77, 0xfe8a, 0xfef0, 0xfef3, + 0xfef2, 0xfece, 0xfecf, 0xfed0, 0xfef6, 0xfef8, 0xfefa, 0xfefc, + /* 0xa0 */ + 0x00a0, 0xf8fa, 0xf8f9, 0xf8f8, 0x00a4, 0xf8fb, 0xfe8b, 0xfe91, + 0xfe97, 0xfe9b, 0xfe9f, 0xfea3, 0x060c, 0x00ad, 0xfea7, 0xfeb3, + /* 0xb0 */ + 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, + 0x0668, 0x0669, 0xfeb7, 0x061b, 0xfebb, 0xfebf, 0xfeca, 0x061f, + /* 0xc0 */ + 0xfecb, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, + 0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, + /* 0xd0 */ + 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, + 0xfec7, 0x0639, 0x063a, 0xfecc, 0xfe82, 0xfe84, 0xfe8e, 0xfed3, + /* 0xe0 */ + 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, + 0x0648, 0x0649, 0x064a, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f, + /* 0xf0 */ + 0x0650, 0x0651, 0x0652, 0xfed7, 0xfedb, 0xfedf, 0xf8fc, 0xfef5, + 0xfef7, 0xfef9, 0xfefb, 0xfee3, 0xfee7, 0xfeec, 0xfee9, 0xfffd, +}; + +static int +cp1046_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = cp1046_2uni[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char cp1046_page00[112] = { + 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, /* 0xf0-0xf7 */ +}; +static const unsigned char cp1046_page06[104] = { + 0x00, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xbf, /* 0x18-0x1f */ + 0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */ + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */ + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */ + 0x00, 0xd9, 0xda, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */ + 0xf0, 0xf1, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x60-0x67 */ + 0xb8, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ +}; +static const unsigned char cp1046_page25[32] = { + 0x8b, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x8c, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ +}; +static const unsigned char cp1046_pagef8[16] = { + 0x00, 0x00, 0x00, 0x00, 0x85, 0x84, 0x83, 0x86, /* 0xf0-0xf7 */ + 0xa3, 0xa2, 0xa1, 0xa5, 0xf6, 0x00, 0x00, 0x00, /* 0xf8-0xff */ +}; +static const unsigned char cp1046_pagefe[144] = { + 0x00, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, /* 0x70-0x77 */ + 0x00, 0x90, 0x00, 0x91, 0x00, 0x92, 0x00, 0x93, /* 0x78-0x7f */ + 0x00, 0x00, 0xdc, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x80, 0x00, 0x95, 0xa6, 0x00, 0x00, 0xde, 0x00, /* 0x88-0x8f */ + 0x00, 0xa7, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0xaa, /* 0x98-0x9f */ + 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0xae, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0xba, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0xbd, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, /* 0xc0-0xc7 */ + 0x00, 0x00, 0xbe, 0xc0, 0xdb, 0x00, 0x99, 0x9a, /* 0xc8-0xcf */ + 0x9b, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0xf3, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0xf5, /* 0xd8-0xdf */ + 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0xfc, /* 0xe0-0xe7 */ + 0x00, 0xfe, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, /* 0xe8-0xef */ + 0x96, 0x00, 0x98, 0x97, 0x00, 0xf7, 0x9c, 0xf8, /* 0xf0-0xf7 */ + 0x9d, 0xf9, 0x9e, 0xfa, 0x9f, 0x00, 0x00, 0x00, /* 0xf8-0xff */ +}; + +static int +cp1046_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x0088 && wc < 0x00f8) + c = cp1046_page00[wc-0x0088]; + else if (wc >= 0x0608 && wc < 0x0670) + c = cp1046_page06[wc-0x0608]; + else if (wc >= 0x2500 && wc < 0x2520) + c = cp1046_page25[wc-0x2500]; + else if (wc == 0x25a0) + c = 0x89; + else if (wc >= 0xf8f0 && wc < 0xf900) + c = cp1046_pagef8[wc-0xf8f0]; + else if (wc >= 0xfe70 && wc < 0xff00) + c = cp1046_pagefe[wc-0xfe70]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp1124.h b/graf2d/win32gdk/gdk/src/iconv/cp1124.h new file mode 100644 index 00000000000..8b97a7e8515 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp1124.h @@ -0,0 +1,102 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP1124 + */ + +static const unsigned short cp1124_2uni[96] = { + /* 0xa0 */ + 0x00a0, 0x0401, 0x0402, 0x0490, 0x0404, 0x0405, 0x0406, 0x0407, + 0x0408, 0x0409, 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f, + /* 0xb0 */ + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, + 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, + /* 0xc0 */ + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, + 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, + /* 0xd0 */ + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, + 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, + /* 0xe0 */ + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, + 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, + /* 0xf0 */ + 0x2116, 0x0451, 0x0452, 0x0491, 0x0454, 0x0455, 0x0456, 0x0457, + 0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x00a7, 0x045e, 0x045f, +}; + +static int +cp1124_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0xa0) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) cp1124_2uni[c-0xa0]; + return 1; +} + +static const unsigned char cp1124_page00[16] = { + 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */ +}; +static const unsigned char cp1124_page04[152] = { + 0x00, 0xa1, 0xa2, 0x00, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x00-0x07 */ + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0x00, 0xae, 0xaf, /* 0x08-0x0f */ + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x10-0x17 */ + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0x18-0x1f */ + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */ + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */ + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */ + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0x38-0x3f */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */ + 0x00, 0xf1, 0xf2, 0x00, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x50-0x57 */ + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0xfe, 0xff, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0xa3, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ +}; + +static int +cp1124_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x00a0) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00b0) + c = cp1124_page00[wc-0x00a0]; + else if (wc >= 0x0400 && wc < 0x0498) + c = cp1124_page04[wc-0x0400]; + else if (wc == 0x2116) + c = 0xf0; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp1125.h b/graf2d/win32gdk/gdk/src/iconv/cp1125.h new file mode 100644 index 00000000000..802f0742d6c --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp1125.h @@ -0,0 +1,129 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP1125 + */ + +static const unsigned short cp1125_2uni[80] = { + /* 0xb0 */ + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, + 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, + /* 0xc0 */ + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, + /* 0xd0 */ + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, + 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + /* 0xe0 */ + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, + 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, + /* 0xf0 */ + 0x0401, 0x0451, 0x0490, 0x0491, 0x0404, 0x0454, 0x0406, 0x0456, + 0x0407, 0x0457, 0x00b7, 0x221a, 0x2116, 0x00a4, 0x25a0, 0x00a0, +}; + +static int +cp1125_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) + *pwc = (ucs4_t) c; + else if (c < 0xb0) + *pwc = (ucs4_t) c + 0x0390; + else + *pwc = (ucs4_t) cp1125_2uni[c-0xb0]; + return 1; +} + +static const unsigned char cp1125_page00[24] = { + 0xff, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, /* 0xb0-0xb7 */ +}; +static const unsigned char cp1125_page04[152] = { + 0x00, 0xf0, 0x00, 0x00, 0xf4, 0x00, 0xf6, 0xf8, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x10-0x17 */ + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /* 0x18-0x1f */ + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x20-0x27 */ + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x28-0x2f */ + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x30-0x37 */ + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0x38-0x3f */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */ + 0x00, 0xf1, 0x00, 0x00, 0xf5, 0x00, 0xf7, 0xf9, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0xf2, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ +}; +static const unsigned char cp1125_page25[168] = { + 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, /* 0x50-0x57 */ + 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, /* 0x58-0x5f */ + 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, /* 0x60-0x67 */ + 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0xdb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0xde, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ +}; + +static int +cp1125_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00b8) + c = cp1125_page00[wc-0x00a0]; + else if (wc >= 0x0400 && wc < 0x0498) + c = cp1125_page04[wc-0x0400]; + else if (wc == 0x2116) + c = 0xfc; + else if (wc == 0x221a) + c = 0xfb; + else if (wc >= 0x2500 && wc < 0x25a8) + c = cp1125_page25[wc-0x2500]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp1129.h b/graf2d/win32gdk/gdk/src/iconv/cp1129.h new file mode 100644 index 00000000000..1b7cff85943 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp1129.h @@ -0,0 +1,121 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP1129 + */ + +static const unsigned short cp1129_2uni[96] = { + /* 0xa0 */ + 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, + 0x0153, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, + /* 0xb0 */ + 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0178, 0x00b5, 0x00b6, 0x00b7, + 0x0152, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, + /* 0xc0 */ + 0x00c0, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x00c5, 0x00c6, 0x00c7, + 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x0300, 0x00cd, 0x00ce, 0x00cf, + /* 0xd0 */ + 0x0110, 0x00d1, 0x0309, 0x00d3, 0x00d4, 0x01a0, 0x00d6, 0x00d7, + 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x01af, 0x0303, 0x00df, + /* 0xe0 */ + 0x00e0, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x00e5, 0x00e6, 0x00e7, + 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x0301, 0x00ed, 0x00ee, 0x00ef, + /* 0xf0 */ + 0x0111, 0x00f1, 0x0323, 0x00f3, 0x00f4, 0x01a1, 0x00f6, 0x00f7, + 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x01b0, 0x20ab, 0x00ff, +}; + +static int +cp1129_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0xa0) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) cp1129_2uni[c-0xa0]; + return 1; +} + +static const unsigned char cp1129_page00[272] = { + 0x00, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0xa8-0xaf */ + 0xb0, 0xb1, 0xb2, 0xb3, 0x00, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */ + 0x00, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0xb8-0xbf */ + 0xc0, 0xc1, 0xc2, 0x00, 0xc4, 0xc5, 0xc6, 0xc7, /* 0xc0-0xc7 */ + 0xc8, 0xc9, 0xca, 0xcb, 0x00, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */ + 0x00, 0xd1, 0x00, 0xd3, 0xd4, 0x00, 0xd6, 0xd7, /* 0xd0-0xd7 */ + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */ + 0xe0, 0xe1, 0xe2, 0x00, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xe0-0xe7 */ + 0xe8, 0xe9, 0xea, 0xeb, 0x00, 0xed, 0xee, 0xef, /* 0xe8-0xef */ + 0x00, 0xf1, 0x00, 0xf3, 0xf4, 0x00, 0xf6, 0xf7, /* 0xf0-0xf7 */ + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0xff, /* 0xf8-0xff */ + /* 0x0100 */ + 0x00, 0x00, 0xc3, 0xe3, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0xb8, 0xa8, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0xb4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0xd5, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdd, /* 0xa8-0xaf */ + 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ +}; +static const unsigned char cp1129_page03[40] = { + 0xcc, 0xec, 0x00, 0xde, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0xd2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ +}; + +static int +cp1129_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x00a8) { + *r = wc; + return 1; + } + else if (wc >= 0x00a8 && wc < 0x01b8) + c = cp1129_page00[wc-0x00a8]; + else if (wc >= 0x0300 && wc < 0x0328) + c = cp1129_page03[wc-0x0300]; + else if (wc == 0x20ab) + c = 0xfe; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp1131.h b/graf2d/win32gdk/gdk/src/iconv/cp1131.h new file mode 100644 index 00000000000..15f4ed2accf --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp1131.h @@ -0,0 +1,132 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP1131 + */ + +static const unsigned short cp1131_2uni[128] = { + /* 0x80 */ + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, + 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, + /* 0x90 */ + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, + 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, + /* 0xa0 */ + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, + 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, + /* 0xb0 */ + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, + 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, + /* 0xc0 */ + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, + /* 0xd0 */ + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, + 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + /* 0xe0 */ + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, + 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, + /* 0xf0 */ + 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040e, 0x045e, + 0x0406, 0x0456, 0x00b7, 0x00a4, 0x0490, 0x0491, 0x2219, 0x00a0, +}; + +static int +cp1131_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) cp1131_2uni[c-0x80]; + return 1; +} + +static const unsigned char cp1131_page00[24] = { + 0xff, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, /* 0xb0-0xb7 */ +}; +static const unsigned char cp1131_page04[152] = { + 0x00, 0xf0, 0x00, 0x00, 0xf2, 0x00, 0xf8, 0xf4, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0x00, /* 0x08-0x0f */ + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x10-0x17 */ + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /* 0x18-0x1f */ + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x20-0x27 */ + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x28-0x2f */ + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x30-0x37 */ + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0x38-0x3f */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */ + 0x00, 0xf1, 0x00, 0x00, 0xf3, 0x00, 0xf9, 0xf5, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0xfc, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ +}; +static const unsigned char cp1131_page25[152] = { + 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, /* 0x50-0x57 */ + 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, /* 0x58-0x5f */ + 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, /* 0x60-0x67 */ + 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0xdb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0xde, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ +}; + +static int +cp1131_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00b8) + c = cp1131_page00[wc-0x00a0]; + else if (wc >= 0x0400 && wc < 0x0498) + c = cp1131_page04[wc-0x0400]; + else if (wc == 0x2219) + c = 0xfe; + else if (wc >= 0x2500 && wc < 0x2598) + c = cp1131_page25[wc-0x2500]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp1133.h b/graf2d/win32gdk/gdk/src/iconv/cp1133.h new file mode 100644 index 00000000000..a16d93f1a46 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp1133.h @@ -0,0 +1,110 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * IBM-CP1133 + */ + +static const unsigned short cp1133_2uni_1[64] = { + /* 0xa0 */ + 0x00a0, 0x0e81, 0x0e82, 0x0e84, 0x0e87, 0x0e88, 0x0eaa, 0x0e8a, + 0x0e8d, 0x0e94, 0x0e95, 0x0e96, 0x0e97, 0x0e99, 0x0e9a, 0x0e9b, + /* 0xb0 */ + 0x0e9c, 0x0e9d, 0x0e9e, 0x0e9f, 0x0ea1, 0x0ea2, 0x0ea3, 0x0ea5, + 0x0ea7, 0x0eab, 0x0ead, 0x0eae, 0xfffd, 0xfffd, 0xfffd, 0x0eaf, + /* 0xc0 */ + 0x0eb0, 0x0eb2, 0x0eb3, 0x0eb4, 0x0eb5, 0x0eb6, 0x0eb7, 0x0eb8, + 0x0eb9, 0x0ebc, 0x0eb1, 0x0ebb, 0x0ebd, 0xfffd, 0xfffd, 0xfffd, + /* 0xd0 */ + 0x0ec0, 0x0ec1, 0x0ec2, 0x0ec3, 0x0ec4, 0x0ec8, 0x0ec9, 0x0eca, + 0x0ecb, 0x0ecc, 0x0ecd, 0x0ec6, 0xfffd, 0x0edc, 0x0edd, 0x20ad, +}; +static const unsigned short cp1133_2uni_2[16] = { + /* 0xf0 */ + 0x0ed0, 0x0ed1, 0x0ed2, 0x0ed3, 0x0ed4, 0x0ed5, 0x0ed6, 0x0ed7, + 0x0ed8, 0x0ed9, 0xfffd, 0xfffd, 0x00a2, 0x00ac, 0x00a6, 0xfffd, +}; + +static int +cp1133_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0xa0) { + *pwc = (ucs4_t) c; + return 1; + } + else if (c < 0xe0) { + unsigned short wc = cp1133_2uni_1[c-0xa0]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + else if (c < 0xf0) { + } + else { + unsigned short wc = cp1133_2uni_2[c-0xf0]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char cp1133_page00[16] = { + 0xa0, 0x00, 0xfc, 0x00, 0x00, 0x00, 0xfe, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ +}; +static const unsigned char cp1133_page0e[96] = { + 0x00, 0xa1, 0xa2, 0x00, 0xa3, 0x00, 0x00, 0xa4, /* 0x80-0x87 */ + 0xa5, 0x00, 0xa7, 0x00, 0x00, 0xa8, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0x00, 0x00, 0xa9, 0xaa, 0xab, 0xac, /* 0x90-0x97 */ + 0x00, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, /* 0x98-0x9f */ + 0x00, 0xb4, 0xb5, 0xb6, 0x00, 0xb7, 0x00, 0xb8, /* 0xa0-0xa7 */ + 0x00, 0x00, 0xa6, 0xb9, 0x00, 0xba, 0xbb, 0xbf, /* 0xa8-0xaf */ + 0xc0, 0xca, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, /* 0xb0-0xb7 */ + 0xc7, 0xc8, 0x00, 0xcb, 0xc9, 0xcc, 0x00, 0x00, /* 0xb8-0xbf */ + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0x00, 0xdb, 0x00, /* 0xc0-0xc7 */ + 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0x00, 0x00, /* 0xc8-0xcf */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xd0-0xd7 */ + 0xf8, 0xf9, 0x00, 0x00, 0xdd, 0xde, 0x00, 0x00, /* 0xd8-0xdf */ +}; + +static int +cp1133_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x00a0) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00b0) + c = cp1133_page00[wc-0x00a0]; + else if (wc >= 0x0e80 && wc < 0x0ee0) + c = cp1133_page0e[wc-0x0e80]; + else if (wc == 0x20ad) + c = 0xdf; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp1161.h b/graf2d/win32gdk/gdk/src/iconv/cp1161.h new file mode 100644 index 00000000000..b6349c67c4c --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp1161.h @@ -0,0 +1,89 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP1161 + */ + +static const unsigned short cp1161_2uni[96] = { + /* 0xa0 */ + 0x0e48, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07, + 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f, + /* 0xb0 */ + 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17, + 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f, + /* 0xc0 */ + 0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, + 0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f, + /* 0xd0 */ + 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37, + 0x0e38, 0x0e39, 0x0e3a, 0x0e49, 0x0e4a, 0x0e4b, 0x20ac, 0x0e3f, + /* 0xe0 */ + 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47, + 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4e, 0x0e4f, + /* 0xf0 */ + 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, + 0x0e58, 0x0e59, 0x0e5a, 0x0e5b, 0x00a2, 0x00ac, 0x00a6, 0x00a0, +}; + +static int +cp1161_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else if (c < 0xa0) { + } + else { + *pwc = (ucs4_t) cp1161_2uni[c-0xa0]; + return 1; + } + return RET_ILSEQ; +} + +static const unsigned char cp1161_page00[16] = { + 0xff, 0x00, 0xfc, 0x00, 0x00, 0x00, 0xfe, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ +}; + +static int +cp1161_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00b0) + c = cp1161_page00[wc-0x00a0]; + else if (wc >= 0x0e48 && wc < 0x0e4c) + c = wc-0x0d60; + else if (wc >= 0x0e00 && wc < 0x0e60) + c = cp874_page0e[wc-0x0e00]; + else if (wc == 0x20ac) + c = 0xde; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp1162.h b/graf2d/win32gdk/gdk/src/iconv/cp1162.h new file mode 100644 index 00000000000..6c7fa82ae5d --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp1162.h @@ -0,0 +1,70 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP1162 + */ + +static int +cp1162_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = cp874_2uni[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + if (c < 0xa0) { + *pwc = (ucs4_t) c; + return 1; + } + } + return RET_ILSEQ; +} + +static int +cp1162_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x0080 && wc < 0x00a0 && cp874_2uni[wc-0x0080] == 0xfffd) + c = wc; + else if (wc == 0x00a0) + c = 0xa0; + else if (wc >= 0x0e00 && wc < 0x0e60) + c = cp874_page0e[wc-0x0e00]; + else if (wc >= 0x2010 && wc < 0x2028) + c = cp874_page20[wc-0x2010]; + else if (wc == 0x20ac) + c = 0x80; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp1163.h b/graf2d/win32gdk/gdk/src/iconv/cp1163.h new file mode 100644 index 00000000000..ca5d0b07d11 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp1163.h @@ -0,0 +1,63 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP1163 + */ + +static int +cp1163_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0xa0) + *pwc = (ucs4_t) c; + else if (c == 0xa4) + *pwc = 0x20ac; + else + *pwc = (ucs4_t) cp1129_2uni[c-0xa0]; + return 1; +} + +static const unsigned char cp1163_page20[8] = { + 0x00, 0x00, 0x00, 0xfe, 0xa4, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ +}; + +static int +cp1163_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x00a0 || (wc < 0x00a8 && wc != 0x00a4) || wc == 0x00d0) { + *r = wc; + return 1; + } + else if (wc >= 0x00a8 && wc < 0x01b8) + c = cp1129_page00[wc-0x00a8]; + else if (wc >= 0x0300 && wc < 0x0328) + c = cp1129_page03[wc-0x0300]; + else if (wc == 0x203e) + c = 0xaf; + else if (wc >= 0x20a8 && wc < 0x20b0) + c = cp1163_page20[wc-0x20a8]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp1250.h b/graf2d/win32gdk/gdk/src/iconv/cp1250.h new file mode 100644 index 00000000000..b89300fecb8 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp1250.h @@ -0,0 +1,139 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP1250 + */ + +static const unsigned short cp1250_2uni[128] = { + /* 0x80 */ + 0x20ac, 0xfffd, 0x201a, 0xfffd, 0x201e, 0x2026, 0x2020, 0x2021, + 0xfffd, 0x2030, 0x0160, 0x2039, 0x015a, 0x0164, 0x017d, 0x0179, + /* 0x90 */ + 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, + 0xfffd, 0x2122, 0x0161, 0x203a, 0x015b, 0x0165, 0x017e, 0x017a, + /* 0xa0 */ + 0x00a0, 0x02c7, 0x02d8, 0x0141, 0x00a4, 0x0104, 0x00a6, 0x00a7, + 0x00a8, 0x00a9, 0x015e, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x017b, + /* 0xb0 */ + 0x00b0, 0x00b1, 0x02db, 0x0142, 0x00b4, 0x00b5, 0x00b6, 0x00b7, + 0x00b8, 0x0105, 0x015f, 0x00bb, 0x013d, 0x02dd, 0x013e, 0x017c, + /* 0xc0 */ + 0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7, + 0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e, + /* 0xd0 */ + 0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7, + 0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df, + /* 0xe0 */ + 0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7, + 0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f, + /* 0xf0 */ + 0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7, + 0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9, +}; + +static int +cp1250_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = cp1250_2uni[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char cp1250_page00[224] = { + 0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0xa6, 0xa7, /* 0xa0-0xa7 */ + 0xa8, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0x00, /* 0xa8-0xaf */ + 0xb0, 0xb1, 0x00, 0x00, 0xb4, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */ + 0xb8, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0xc1, 0xc2, 0x00, 0xc4, 0x00, 0x00, 0xc7, /* 0xc0-0xc7 */ + 0x00, 0xc9, 0x00, 0xcb, 0x00, 0xcd, 0xce, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0xd3, 0xd4, 0x00, 0xd6, 0xd7, /* 0xd0-0xd7 */ + 0x00, 0x00, 0xda, 0x00, 0xdc, 0xdd, 0x00, 0xdf, /* 0xd8-0xdf */ + 0x00, 0xe1, 0xe2, 0x00, 0xe4, 0x00, 0x00, 0xe7, /* 0xe0-0xe7 */ + 0x00, 0xe9, 0x00, 0xeb, 0x00, 0xed, 0xee, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0xf3, 0xf4, 0x00, 0xf6, 0xf7, /* 0xf0-0xf7 */ + 0x00, 0x00, 0xfa, 0x00, 0xfc, 0xfd, 0x00, 0x00, /* 0xf8-0xff */ + /* 0x0100 */ + 0x00, 0x00, 0xc3, 0xe3, 0xa5, 0xb9, 0xc6, 0xe6, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0xcf, 0xef, /* 0x08-0x0f */ + 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xca, 0xea, 0xcc, 0xec, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0xc5, 0xe5, 0x00, 0x00, 0xbc, 0xbe, 0x00, /* 0x38-0x3f */ + 0x00, 0xa3, 0xb3, 0xd1, 0xf1, 0x00, 0x00, 0xd2, /* 0x40-0x47 */ + 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xd5, 0xf5, 0x00, 0x00, 0xc0, 0xe0, 0x00, 0x00, /* 0x50-0x57 */ + 0xd8, 0xf8, 0x8c, 0x9c, 0x00, 0x00, 0xaa, 0xba, /* 0x58-0x5f */ + 0x8a, 0x9a, 0xde, 0xfe, 0x8d, 0x9d, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xf9, /* 0x68-0x6f */ + 0xdb, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x8f, 0x9f, 0xaf, 0xbf, 0x8e, 0x9e, 0x00, /* 0x78-0x7f */ +}; +static const unsigned char cp1250_page02[32] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0xa2, 0xff, 0x00, 0xb2, 0x00, 0xbd, 0x00, 0x00, /* 0xd8-0xdf */ +}; +static const unsigned char cp1250_page20[48] = { + 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ + 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ +}; + +static int +cp1250_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0180) + c = cp1250_page00[wc-0x00a0]; + else if (wc >= 0x02c0 && wc < 0x02e0) + c = cp1250_page02[wc-0x02c0]; + else if (wc >= 0x2010 && wc < 0x2040) + c = cp1250_page20[wc-0x2010]; + else if (wc == 0x20ac) + c = 0x80; + else if (wc == 0x2122) + c = 0x99; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp1251.h b/graf2d/win32gdk/gdk/src/iconv/cp1251.h new file mode 100644 index 00000000000..0fa540db490 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp1251.h @@ -0,0 +1,131 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP1251 + */ + +static const unsigned short cp1251_2uni[128] = { + /* 0x80 */ + 0x0402, 0x0403, 0x201a, 0x0453, 0x201e, 0x2026, 0x2020, 0x2021, + 0x20ac, 0x2030, 0x0409, 0x2039, 0x040a, 0x040c, 0x040b, 0x040f, + /* 0x90 */ + 0x0452, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, + 0xfffd, 0x2122, 0x0459, 0x203a, 0x045a, 0x045c, 0x045b, 0x045f, + /* 0xa0 */ + 0x00a0, 0x040e, 0x045e, 0x0408, 0x00a4, 0x0490, 0x00a6, 0x00a7, + 0x0401, 0x00a9, 0x0404, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x0407, + /* 0xb0 */ + 0x00b0, 0x00b1, 0x0406, 0x0456, 0x0491, 0x00b5, 0x00b6, 0x00b7, + 0x0451, 0x2116, 0x0454, 0x00bb, 0x0458, 0x0405, 0x0455, 0x0457, + /* 0xc0 */ + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, + 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, + /* 0xd0 */ + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, + 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, + /* 0xe0 */ + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, + 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, + /* 0xf0 */ + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, + 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, +}; + +static int +cp1251_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = cp1251_2uni[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char cp1251_page00[32] = { + 0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0xa6, 0xa7, /* 0xa0-0xa7 */ + 0x00, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0x00, /* 0xa8-0xaf */ + 0xb0, 0xb1, 0x00, 0x00, 0x00, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ +}; +static const unsigned char cp1251_page04[152] = { + 0x00, 0xa8, 0x80, 0x81, 0xaa, 0xbd, 0xb2, 0xaf, /* 0x00-0x07 */ + 0xa3, 0x8a, 0x8c, 0x8e, 0x8d, 0x00, 0xa1, 0x8f, /* 0x08-0x0f */ + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x10-0x17 */ + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x18-0x1f */ + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x20-0x27 */ + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0x28-0x2f */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x30-0x37 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x38-0x3f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x40-0x47 */ + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0x48-0x4f */ + 0x00, 0xb8, 0x90, 0x83, 0xba, 0xbe, 0xb3, 0xbf, /* 0x50-0x57 */ + 0xbc, 0x9a, 0x9c, 0x9e, 0x9d, 0x00, 0xa2, 0x9f, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0xa5, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ +}; +static const unsigned char cp1251_page20[48] = { + 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ + 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ +}; + +static int +cp1251_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00c0) + c = cp1251_page00[wc-0x00a0]; + else if (wc >= 0x0400 && wc < 0x0498) + c = cp1251_page04[wc-0x0400]; + else if (wc >= 0x2010 && wc < 0x2040) + c = cp1251_page20[wc-0x2010]; + else if (wc == 0x20ac) + c = 0x88; + else if (wc == 0x2116) + c = 0xb9; + else if (wc == 0x2122) + c = 0x99; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp1252.h b/graf2d/win32gdk/gdk/src/iconv/cp1252.h new file mode 100644 index 00000000000..15644423add --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp1252.h @@ -0,0 +1,103 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP1252 + */ + +static const unsigned short cp1252_2uni[32] = { + /* 0x80 */ + 0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, + 0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0xfffd, 0x017d, 0xfffd, + /* 0x90 */ + 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, + 0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0xfffd, 0x017e, 0x0178, +}; + +static int +cp1252_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80 || c >= 0xa0) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = cp1252_2uni[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char cp1252_page01[72] = { + 0x00, 0x00, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x8a, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x9f, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x9e, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ +}; +static const unsigned char cp1252_page02[32] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ +}; +static const unsigned char cp1252_page20[48] = { + 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ + 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ +}; + +static int +cp1252_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0100) + c = wc; + else if (wc >= 0x0150 && wc < 0x0198) + c = cp1252_page01[wc-0x0150]; + else if (wc >= 0x02c0 && wc < 0x02e0) + c = cp1252_page02[wc-0x02c0]; + else if (wc >= 0x2010 && wc < 0x2040) + c = cp1252_page20[wc-0x2010]; + else if (wc == 0x20ac) + c = 0x80; + else if (wc == 0x2122) + c = 0x99; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp1253.h b/graf2d/win32gdk/gdk/src/iconv/cp1253.h new file mode 100644 index 00000000000..020f0d6e057 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp1253.h @@ -0,0 +1,122 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP1253 + */ + +static const unsigned short cp1253_2uni[128] = { + /* 0x80 */ + 0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, + 0xfffd, 0x2030, 0xfffd, 0x2039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x90 */ + 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, + 0xfffd, 0x2122, 0xfffd, 0x203a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0xa0 */ + 0x00a0, 0x0385, 0x0386, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, + 0x00a8, 0x00a9, 0xfffd, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x2015, + /* 0xb0 */ + 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0384, 0x00b5, 0x00b6, 0x00b7, + 0x0388, 0x0389, 0x038a, 0x00bb, 0x038c, 0x00bd, 0x038e, 0x038f, + /* 0xc0 */ + 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, + 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, + /* 0xd0 */ + 0x03a0, 0x03a1, 0xfffd, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, + 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af, + /* 0xe0 */ + 0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, + 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, + /* 0xf0 */ + 0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, + 0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0xfffd, +}; + +static int +cp1253_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = cp1253_2uni[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char cp1253_page00[32] = { + 0xa0, 0x00, 0x00, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0xa0-0xa7 */ + 0xa8, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0x00, /* 0xa8-0xaf */ + 0xb0, 0xb1, 0xb2, 0xb3, 0x00, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0xbb, 0x00, 0xbd, 0x00, 0x00, /* 0xb8-0xbf */ +}; +static const unsigned char cp1253_page03[80] = { + 0x00, 0x00, 0x00, 0x00, 0xb4, 0xa1, 0xa2, 0x00, /* 0x80-0x87 */ + 0xb8, 0xb9, 0xba, 0x00, 0xbc, 0x00, 0xbe, 0xbf, /* 0x88-0x8f */ + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x90-0x97 */ + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x98-0x9f */ + 0xd0, 0xd1, 0x00, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xa0-0xa7 */ + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0xa8-0xaf */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xb0-0xb7 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xb8-0xbf */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xc0-0xc7 */ + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x00, /* 0xc8-0xcf */ +}; +static const unsigned char cp1253_page20[48] = { + 0x00, 0x00, 0x00, 0x96, 0x97, 0xaf, 0x00, 0x00, /* 0x10-0x17 */ + 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ + 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ +}; + +static int +cp1253_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00c0) + c = cp1253_page00[wc-0x00a0]; + else if (wc == 0x0192) + c = 0x83; + else if (wc >= 0x0380 && wc < 0x03d0) + c = cp1253_page03[wc-0x0380]; + else if (wc >= 0x2010 && wc < 0x2040) + c = cp1253_page20[wc-0x2010]; + else if (wc == 0x20ac) + c = 0x80; + else if (wc == 0x2122) + c = 0x99; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp1254.h b/graf2d/win32gdk/gdk/src/iconv/cp1254.h new file mode 100644 index 00000000000..845a01b8948 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp1254.h @@ -0,0 +1,146 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP1254 + */ + +static const unsigned short cp1254_2uni_1[32] = { + /* 0x80 */ + 0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, + 0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0xfffd, 0xfffd, 0xfffd, + /* 0x90 */ + 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, + 0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0xfffd, 0xfffd, 0x0178, +}; +static const unsigned short cp1254_2uni_2[16] = { + /* 0xd0 */ + 0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, + 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df, +}; +static const unsigned short cp1254_2uni_3[16] = { + /* 0xf0 */ + 0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, + 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff, +}; + +static int +cp1254_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else if (c < 0xa0) { + unsigned short wc = cp1254_2uni_1[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + else if (c < 0xd0) { + *pwc = (ucs4_t) c; + return 1; + } + else if (c < 0xe0) { + *pwc = (ucs4_t) cp1254_2uni_2[c-0xd0]; + return 1; + } + else if (c < 0xf0) { + *pwc = (ucs4_t) c; + return 1; + } + else { + *pwc = (ucs4_t) cp1254_2uni_3[c-0xf0]; + return 1; + } + return RET_ILSEQ; +} + +static const unsigned char cp1254_page00[48] = { + 0x00, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xd0-0xd7 */ + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xe0-0xe7 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xe8-0xef */ + 0x00, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xf0-0xf7 */ + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0xff, /* 0xf8-0xff */ +}; +static const unsigned char cp1254_page01[128] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0xf0, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0xdd, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xfe, /* 0x58-0x5f */ + 0x8a, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ +}; +static const unsigned char cp1254_page02[32] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ +}; +static const unsigned char cp1254_page20[48] = { + 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ + 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ +}; + +static int +cp1254_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00d0) + c = wc; + else if (wc >= 0x00d0 && wc < 0x0100) + c = cp1254_page00[wc-0x00d0]; + else if (wc >= 0x0118 && wc < 0x0198) + c = cp1254_page01[wc-0x0118]; + else if (wc >= 0x02c0 && wc < 0x02e0) + c = cp1254_page02[wc-0x02c0]; + else if (wc >= 0x2010 && wc < 0x2040) + c = cp1254_page20[wc-0x2010]; + else if (wc == 0x20ac) + c = 0x80; + else if (wc == 0x2122) + c = 0x99; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp1255.h b/graf2d/win32gdk/gdk/src/iconv/cp1255.h new file mode 100644 index 00000000000..e7761aeb5b3 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp1255.h @@ -0,0 +1,380 @@ +/* + * Copyright (C) 1999-2001, 2004 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP1255 + */ + +#include "flushwc.h" + +/* Combining characters used in Hebrew encoding CP1255. */ + +/* Relevant combining characters: + 0x05b4, 0x05b7, 0x05b8, 0x05b9, 0x05bc, 0x05bf, 0x05c1, 0x05c2. */ + +/* Composition tables for each of the relevant combining characters. */ +static const struct { unsigned short base; unsigned short composed; } cp1255_comp_table_data[] = { +#define cp1255_comp_table05b4_idx 0 +#define cp1255_comp_table05b4_len 1 + { 0x05D9, 0xFB1D }, +#define cp1255_comp_table05b7_idx (cp1255_comp_table05b4_idx+cp1255_comp_table05b4_len) +#define cp1255_comp_table05b7_len 2 + { 0x05D0, 0xFB2E }, + { 0x05F2, 0xFB1F }, +#define cp1255_comp_table05b8_idx (cp1255_comp_table05b7_idx+cp1255_comp_table05b7_len) +#define cp1255_comp_table05b8_len 1 + { 0x05D0, 0xFB2F }, +#define cp1255_comp_table05b9_idx (cp1255_comp_table05b8_idx+cp1255_comp_table05b8_len) +#define cp1255_comp_table05b9_len 1 + { 0x05D5, 0xFB4B }, +#define cp1255_comp_table05bc_idx (cp1255_comp_table05b9_idx+cp1255_comp_table05b9_len) +#define cp1255_comp_table05bc_len 24 + { 0x05D0, 0xFB30 }, + { 0x05D1, 0xFB31 }, + { 0x05D2, 0xFB32 }, + { 0x05D3, 0xFB33 }, + { 0x05D4, 0xFB34 }, + { 0x05D5, 0xFB35 }, + { 0x05D6, 0xFB36 }, + { 0x05D8, 0xFB38 }, + { 0x05D9, 0xFB39 }, + { 0x05DA, 0xFB3A }, + { 0x05DB, 0xFB3B }, + { 0x05DC, 0xFB3C }, + { 0x05DE, 0xFB3E }, + { 0x05E0, 0xFB40 }, + { 0x05E1, 0xFB41 }, + { 0x05E3, 0xFB43 }, + { 0x05E4, 0xFB44 }, + { 0x05E6, 0xFB46 }, + { 0x05E7, 0xFB47 }, + { 0x05E8, 0xFB48 }, + { 0x05E9, 0xFB49 }, + { 0x05EA, 0xFB4A }, + { 0xFB2A, 0xFB2C }, + { 0xFB2B, 0xFB2D }, +#define cp1255_comp_table05bf_idx (cp1255_comp_table05bc_idx+cp1255_comp_table05bc_len) +#define cp1255_comp_table05bf_len 3 + { 0x05D1, 0xFB4C }, + { 0x05DB, 0xFB4D }, + { 0x05E4, 0xFB4E }, +#define cp1255_comp_table05c1_idx (cp1255_comp_table05bf_idx+cp1255_comp_table05bf_len) +#define cp1255_comp_table05c1_len 2 + { 0x05E9, 0xFB2A }, + { 0xFB49, 0xFB2C }, +#define cp1255_comp_table05c2_idx (cp1255_comp_table05c1_idx+cp1255_comp_table05c1_len) +#define cp1255_comp_table05c2_len 2 + { 0x05E9, 0xFB2B }, + { 0xFB49, 0xFB2D }, +}; +static const struct { unsigned int len; unsigned int idx; } cp1255_comp_table[] = { + { cp1255_comp_table05b4_len, cp1255_comp_table05b4_idx }, + { cp1255_comp_table05b7_len, cp1255_comp_table05b7_idx }, + { cp1255_comp_table05b8_len, cp1255_comp_table05b8_idx }, + { cp1255_comp_table05b9_len, cp1255_comp_table05b9_idx }, + { cp1255_comp_table05bc_len, cp1255_comp_table05bc_idx }, + { cp1255_comp_table05bf_len, cp1255_comp_table05bf_idx }, + { cp1255_comp_table05c1_len, cp1255_comp_table05c1_idx }, + { cp1255_comp_table05c2_len, cp1255_comp_table05c2_idx }, +}; + +/* Decomposition table for the relevant Unicode characters. */ +struct cp1255_decomp { unsigned short composed; unsigned short base; int comb1 : 8; signed int comb2 : 8; }; +static const struct cp1255_decomp cp1255_decomp_table[] = { + { 0xFB1D, 0x05D9, 0, -1 }, + { 0xFB1F, 0x05F2, 1, -1 }, + { 0xFB2A, 0x05E9, 6, -1 }, + { 0xFB2B, 0x05E9, 7, -1 }, + { 0xFB2C, 0x05E9, 4, 6 }, + { 0xFB2D, 0x05E9, 4, 7 }, + { 0xFB2E, 0x05D0, 1, -1 }, + { 0xFB2F, 0x05D0, 2, -1 }, + { 0xFB30, 0x05D0, 4, -1 }, + { 0xFB31, 0x05D1, 4, -1 }, + { 0xFB32, 0x05D2, 4, -1 }, + { 0xFB33, 0x05D3, 4, -1 }, + { 0xFB34, 0x05D4, 4, -1 }, + { 0xFB35, 0x05D5, 4, -1 }, + { 0xFB36, 0x05D6, 4, -1 }, + { 0xFB38, 0x05D8, 4, -1 }, + { 0xFB39, 0x05D9, 4, -1 }, + { 0xFB3A, 0x05DA, 4, -1 }, + { 0xFB3B, 0x05DB, 4, -1 }, + { 0xFB3C, 0x05DC, 4, -1 }, + { 0xFB3E, 0x05DE, 4, -1 }, + { 0xFB40, 0x05E0, 4, -1 }, + { 0xFB41, 0x05E1, 4, -1 }, + { 0xFB43, 0x05E3, 4, -1 }, + { 0xFB44, 0x05E4, 4, -1 }, + { 0xFB46, 0x05E6, 4, -1 }, + { 0xFB47, 0x05E7, 4, -1 }, + { 0xFB48, 0x05E8, 4, -1 }, + { 0xFB49, 0x05E9, 4, -1 }, + { 0xFB4A, 0x05EA, 4, -1 }, + { 0xFB4B, 0x05D5, 3, -1 }, + { 0xFB4C, 0x05D1, 5, -1 }, + { 0xFB4D, 0x05DB, 5, -1 }, + { 0xFB4E, 0x05E4, 5, -1 }, +}; + +static const unsigned char cp1255_comb_table[] = { + 0xc4, 0xc7, 0xc8, 0xc9, 0xcc, 0xcf, 0xd1, 0xd2, +}; + +static const unsigned short cp1255_2uni[128] = { + /* 0x80 */ + 0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, + 0x02c6, 0x2030, 0xfffd, 0x2039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x90 */ + 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, + 0x02dc, 0x2122, 0xfffd, 0x203a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0xa0 */ + 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x20aa, 0x00a5, 0x00a6, 0x00a7, + 0x00a8, 0x00a9, 0x00d7, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, + /* 0xb0 */ + 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, + 0x00b8, 0x00b9, 0x00f7, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, + /* 0xc0 */ + 0x05b0, 0x05b1, 0x05b2, 0x05b3, 0x05b4, 0x05b5, 0x05b6, 0x05b7, + 0x05b8, 0x05b9, 0xfffd, 0x05bb, 0x05bc, 0x05bd, 0x05be, 0x05bf, + /* 0xd0 */ + 0x05c0, 0x05c1, 0x05c2, 0x05c3, 0x05f0, 0x05f1, 0x05f2, 0x05f3, + 0x05f4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0xe0 */ + 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, + 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, + /* 0xf0 */ + 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, + 0x05e8, 0x05e9, 0x05ea, 0xfffd, 0xfffd, 0x200e, 0x200f, 0xfffd, +}; + +/* In the CP1255 to Unicode direction, the state contains a buffered + character, or 0 if none. */ + +static int +cp1255_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + unsigned short wc; + unsigned short last_wc; + if (c < 0x80) { + wc = c; + } else { + wc = cp1255_2uni[c-0x80]; + if (wc == 0xfffd) + return RET_ILSEQ; + } + last_wc = conv->istate; + if (last_wc) { + if (wc >= 0x05b0 && wc < 0x05c5) { + /* See whether last_wc and wc can be combined. */ + unsigned int k; + unsigned int i1, i2; + switch (wc) { + case 0x05b4: k = 0; break; + case 0x05b7: k = 1; break; + case 0x05b8: k = 2; break; + case 0x05b9: k = 3; break; + case 0x05bc: k = 4; break; + case 0x05bf: k = 5; break; + case 0x05c1: k = 6; break; + case 0x05c2: k = 7; break; + default: goto not_combining; + } + i1 = cp1255_comp_table[k].idx; + i2 = i1 + cp1255_comp_table[k].len-1; + if (last_wc >= cp1255_comp_table_data[i1].base + && last_wc <= cp1255_comp_table_data[i2].base) { + unsigned int i; + for (;;) { + i = (i1+i2)>>1; + if (last_wc == cp1255_comp_table_data[i].base) + break; + if (last_wc < cp1255_comp_table_data[i].base) { + if (i1 == i) + goto not_combining; + i2 = i; + } else { + if (i1 != i) + i1 = i; + else { + i = i2; + if (last_wc == cp1255_comp_table_data[i].base) + break; + goto not_combining; + } + } + } + last_wc = cp1255_comp_table_data[i].composed; + if (last_wc == 0xfb2a || last_wc == 0xfb2b || last_wc == 0xfb49) { + /* Buffer the combined character. */ + conv->istate = last_wc; + return RET_TOOFEW(1); + } else { + /* Output the combined character. */ + conv->istate = 0; + *pwc = (ucs4_t) last_wc; + return 1; + } + } + } + not_combining: + /* Output the buffered character. */ + conv->istate = 0; + *pwc = (ucs4_t) last_wc; + return 0; /* Don't advance the input pointer. */ + } + if ((wc >= 0x05d0 && wc <= 0x05ea && ((0x07db5f7f >> (wc - 0x05d0)) & 1)) + || wc == 0x05f2) { + /* wc is a possible match in cp1255_comp_table_data. Buffer it. */ + conv->istate = wc; + return RET_TOOFEW(1); + } else { + /* Output wc immediately. */ + *pwc = (ucs4_t) wc; + return 1; + } +} + +#define cp1255_flushwc normal_flushwc + +static const unsigned char cp1255_page00[88] = { + 0xa0, 0xa1, 0xa2, 0xa3, 0x00, 0xa5, 0xa6, 0xa7, /* 0xa0-0xa7 */ + 0xa8, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0xa8-0xaf */ + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */ + 0xb8, 0xb9, 0x00, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, /* 0xf0-0xf7 */ +}; +static const unsigned char cp1255_page02[32] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ +}; +static const unsigned char cp1255_page05[72] = { + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0xb0-0xb7 */ + 0xc8, 0xc9, 0x00, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0xb8-0xbf */ + 0xd0, 0xd1, 0xd2, 0xd3, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xd0-0xd7 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xd8-0xdf */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xe0-0xe7 */ + 0xf8, 0xf9, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ + 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0x00, 0x00, 0x00, /* 0xf0-0xf7 */ +}; +static const unsigned char cp1255_page20[56] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0xfe, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ + 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ +}; + +static int +cp1255_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00f8) + c = cp1255_page00[wc-0x00a0]; + else if (wc == 0x0192) + c = 0x83; + else if (wc >= 0x02c0 && wc < 0x02e0) + c = cp1255_page02[wc-0x02c0]; + else if (wc >= 0x05b0 && wc < 0x05f8) + c = cp1255_page05[wc-0x05b0]; + else if (wc >= 0x2008 && wc < 0x2040) + c = cp1255_page20[wc-0x2008]; + else if (wc == 0x20aa) + c = 0xa4; + else if (wc == 0x20ac) + c = 0x80; + else if (wc == 0x2122) + c = 0x99; + if (c != 0) { + *r = c; + return 1; + } + /* Try canonical decomposition. */ + { + /* Binary search through cp1255_decomp_table. */ + unsigned int i1 = 0; + unsigned int i2 = sizeof(cp1255_decomp_table)/sizeof(cp1255_decomp_table[0])-1; + if (wc >= cp1255_decomp_table[i1].composed + && wc <= cp1255_decomp_table[i2].composed) { + unsigned int i; + for (;;) { + /* Here i2 - i1 > 0. */ + i = (i1+i2)>>1; + if (wc == cp1255_decomp_table[i].composed) + break; + if (wc < cp1255_decomp_table[i].composed) { + if (i1 == i) + return RET_ILUNI; + /* Here i1 < i < i2. */ + i2 = i; + } else { + /* Here i1 <= i < i2. */ + if (i1 != i) + i1 = i; + else { + /* Here i2 - i1 = 1. */ + i = i2; + if (wc == cp1255_decomp_table[i].composed) + break; + else + return RET_ILUNI; + } + } + } + /* Found a canonical decomposition. */ + wc = cp1255_decomp_table[i].base; + /* wc is one of 0x05d0..0x05d6, 0x05d8..0x05dc, 0x05de, 0x05e0..0x05e1, + 0x05e3..0x05e4, 0x05e6..0x05ea, 0x05f2. */ + c = cp1255_page05[wc-0x05b0]; + if (cp1255_decomp_table[i].comb2 < 0) { + if (n < 2) + return RET_TOOSMALL; + r[0] = c; + r[1] = cp1255_comb_table[cp1255_decomp_table[i].comb1]; + return 2; + } else { + if (n < 3) + return RET_TOOSMALL; + r[0] = c; + r[1] = cp1255_comb_table[cp1255_decomp_table[i].comb1]; + r[2] = cp1255_comb_table[cp1255_decomp_table[i].comb2]; + return 3; + } + } + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp1256.h b/graf2d/win32gdk/gdk/src/iconv/cp1256.h new file mode 100644 index 00000000000..3804e8f4bdf --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp1256.h @@ -0,0 +1,153 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP1256 + */ + +static const unsigned short cp1256_2uni[128] = { + /* 0x80 */ + 0x20ac, 0x067e, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, + 0x02c6, 0x2030, 0x0679, 0x2039, 0x0152, 0x0686, 0x0698, 0x0688, + /* 0x90 */ + 0x06af, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, + 0x06a9, 0x2122, 0x0691, 0x203a, 0x0153, 0x200c, 0x200d, 0x06ba, + /* 0xa0 */ + 0x00a0, 0x060c, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, + 0x00a8, 0x00a9, 0x06be, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, + /* 0xb0 */ + 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, + 0x00b8, 0x00b9, 0x061b, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x061f, + /* 0xc0 */ + 0x06c1, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, + 0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, + /* 0xd0 */ + 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x00d7, + 0x0637, 0x0638, 0x0639, 0x063a, 0x0640, 0x0641, 0x0642, 0x0643, + /* 0xe0 */ + 0x00e0, 0x0644, 0x00e2, 0x0645, 0x0646, 0x0647, 0x0648, 0x00e7, + 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x0649, 0x064a, 0x00ee, 0x00ef, + /* 0xf0 */ + 0x064b, 0x064c, 0x064d, 0x064e, 0x00f4, 0x064f, 0x0650, 0x00f7, + 0x0651, 0x00f9, 0x0652, 0x00fb, 0x00fc, 0x200e, 0x200f, 0x06d2, +}; + +static int +cp1256_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) cp1256_2uni[c-0x80]; + return 1; +} + +static const unsigned char cp1256_page00[96] = { + 0xa0, 0x00, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0xa0-0xa7 */ + 0xa8, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0xa8-0xaf */ + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */ + 0xb8, 0xb9, 0x00, 0xbb, 0xbc, 0xbd, 0xbe, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd7, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ + 0xe0, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00, 0xe7, /* 0xe0-0xe7 */ + 0xe8, 0xe9, 0xea, 0xeb, 0x00, 0x00, 0xee, 0xef, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0xf7, /* 0xf0-0xf7 */ + 0x00, 0xf9, 0x00, 0xfb, 0xfc, 0x00, 0x00, 0x00, /* 0xf8-0xff */ +}; +static const unsigned char cp1256_page01[72] = { + 0x00, 0x00, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ +}; +static const unsigned char cp1256_page06[208] = { + 0x00, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0xbf, /* 0x18-0x1f */ + 0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */ + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */ + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd8, /* 0x30-0x37 */ + 0xd9, 0xda, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0xdc, 0xdd, 0xde, 0xdf, 0xe1, 0xe3, 0xe4, 0xe5, /* 0x40-0x47 */ + 0xe6, 0xec, 0xed, 0xf0, 0xf1, 0xf2, 0xf3, 0xf5, /* 0x48-0x4f */ + 0xf6, 0xf8, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x8a, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, 0x00, /* 0x80-0x87 */ + 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x8e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, /* 0xa8-0xaf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0xaa, 0x00, /* 0xb8-0xbf */ + 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ +}; +static const unsigned char cp1256_page20[56] = { + 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9e, 0xfd, 0xfe, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ + 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ +}; + +static int +cp1256_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0100) + c = cp1256_page00[wc-0x00a0]; + else if (wc >= 0x0150 && wc < 0x0198) + c = cp1256_page01[wc-0x0150]; + else if (wc == 0x02c6) + c = 0x88; + else if (wc >= 0x0608 && wc < 0x06d8) + c = cp1256_page06[wc-0x0608]; + else if (wc >= 0x2008 && wc < 0x2040) + c = cp1256_page20[wc-0x2008]; + else if (wc == 0x20ac) + c = 0x80; + else if (wc == 0x2122) + c = 0x99; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp1257.h b/graf2d/win32gdk/gdk/src/iconv/cp1257.h new file mode 100644 index 00000000000..0d8518e4e23 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp1257.h @@ -0,0 +1,139 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP1257 + */ + +static const unsigned short cp1257_2uni[128] = { + /* 0x80 */ + 0x20ac, 0xfffd, 0x201a, 0xfffd, 0x201e, 0x2026, 0x2020, 0x2021, + 0xfffd, 0x2030, 0xfffd, 0x2039, 0xfffd, 0x00a8, 0x02c7, 0x00b8, + /* 0x90 */ + 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, + 0xfffd, 0x2122, 0xfffd, 0x203a, 0xfffd, 0x00af, 0x02db, 0xfffd, + /* 0xa0 */ + 0x00a0, 0xfffd, 0x00a2, 0x00a3, 0x00a4, 0xfffd, 0x00a6, 0x00a7, + 0x00d8, 0x00a9, 0x0156, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00c6, + /* 0xb0 */ + 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, + 0x00f8, 0x00b9, 0x0157, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00e6, + /* 0xc0 */ + 0x0104, 0x012e, 0x0100, 0x0106, 0x00c4, 0x00c5, 0x0118, 0x0112, + 0x010c, 0x00c9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012a, 0x013b, + /* 0xd0 */ + 0x0160, 0x0143, 0x0145, 0x00d3, 0x014c, 0x00d5, 0x00d6, 0x00d7, + 0x0172, 0x0141, 0x015a, 0x016a, 0x00dc, 0x017b, 0x017d, 0x00df, + /* 0xe0 */ + 0x0105, 0x012f, 0x0101, 0x0107, 0x00e4, 0x00e5, 0x0119, 0x0113, + 0x010d, 0x00e9, 0x017a, 0x0117, 0x0123, 0x0137, 0x012b, 0x013c, + /* 0xf0 */ + 0x0161, 0x0144, 0x0146, 0x00f3, 0x014d, 0x00f5, 0x00f6, 0x00f7, + 0x0173, 0x0142, 0x015b, 0x016b, 0x00fc, 0x017c, 0x017e, 0x02d9, +}; + +static int +cp1257_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = cp1257_2uni[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char cp1257_page00[224] = { + 0xa0, 0x00, 0xa2, 0xa3, 0xa4, 0x00, 0xa6, 0xa7, /* 0xa0-0xa7 */ + 0x8d, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0x9d, /* 0xa8-0xaf */ + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */ + 0x8f, 0xb9, 0x00, 0xbb, 0xbc, 0xbd, 0xbe, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0xc4, 0xc5, 0xaf, 0x00, /* 0xc0-0xc7 */ + 0x00, 0xc9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0xd3, 0x00, 0xd5, 0xd6, 0xd7, /* 0xd0-0xd7 */ + 0xa8, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */ + 0x00, 0x00, 0x00, 0x00, 0xe4, 0xe5, 0xbf, 0x00, /* 0xe0-0xe7 */ + 0x00, 0xe9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0xf3, 0x00, 0xf5, 0xf6, 0xf7, /* 0xf0-0xf7 */ + 0xb8, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, /* 0xf8-0xff */ + /* 0x0100 */ + 0xc2, 0xe2, 0x00, 0x00, 0xc0, 0xe0, 0xc3, 0xe3, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0xc7, 0xe7, 0x00, 0x00, 0xcb, 0xeb, /* 0x10-0x17 */ + 0xc6, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0xcc, 0xec, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0xce, 0xee, 0x00, 0x00, 0xc1, 0xe1, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcd, 0xed, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0xcf, 0xef, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0xd9, 0xf9, 0xd1, 0xf1, 0xd2, 0xf2, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0xd4, 0xf4, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0xba, /* 0x50-0x57 */ + 0x00, 0x00, 0xda, 0xfa, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0xdb, 0xfb, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0xd8, 0xf8, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0xca, 0xea, 0xdd, 0xfd, 0xde, 0xfe, 0x00, /* 0x78-0x7f */ +}; +static const unsigned char cp1257_page02[32] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0x00, 0xff, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ +}; +static const unsigned char cp1257_page20[48] = { + 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ + 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ +}; + +static int +cp1257_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0180) + c = cp1257_page00[wc-0x00a0]; + else if (wc >= 0x02c0 && wc < 0x02e0) + c = cp1257_page02[wc-0x02c0]; + else if (wc >= 0x2010 && wc < 0x2040) + c = cp1257_page20[wc-0x2010]; + else if (wc == 0x20ac) + c = 0x80; + else if (wc == 0x2122) + c = 0x99; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp1258.h b/graf2d/win32gdk/gdk/src/iconv/cp1258.h new file mode 100644 index 00000000000..57834048373 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp1258.h @@ -0,0 +1,288 @@ +/* + * Copyright (C) 1999-2001, 2004 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP1258 + */ + +#include "flushwc.h" +#include "vietcomb.h" + +static const unsigned char cp1258_comb_table[] = { + 0xcc, 0xec, 0xde, 0xd2, 0xf2, +}; + +/* The possible bases in viet_comp_table_data: + 0x0041..0x0045, 0x0047..0x0049, 0x004B..0x0050, 0x0052..0x0057, + 0x0059..0x005A, 0x0061..0x0065, 0x0067..0x0069, 0x006B..0x0070, + 0x0072..0x0077, 0x0079..0x007A, 0x00A5, 0x00A8, 0x00C2, 0x00C5..0x00C7, + 0x00CA, 0x00CF, 0x00D3..0x00D4, 0x00D6, 0x00D8, 0x00DA, 0x00DC, 0x00E2, + 0x00E5..0x00E7, 0x00EA, 0x00EF, 0x00F3..0x00F4, 0x00F6, 0x00F8, 0x00FA, + 0x00FC, 0x0102..0x0103, 0x01A0..0x01A1, 0x01AF..0x01B0. */ +static const unsigned int cp1258_comp_bases[] = { + 0x06fdfbbe, 0x06fdfbbe, 0x00000000, 0x00000120, 0x155884e4, 0x155884e4, + 0x0000000c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00018003 +}; + +static const unsigned short cp1258_2uni[128] = { + /* 0x80 */ + 0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, + 0x02c6, 0x2030, 0xfffd, 0x2039, 0x0152, 0xfffd, 0xfffd, 0xfffd, + /* 0x90 */ + 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, + 0x02dc, 0x2122, 0xfffd, 0x203a, 0x0153, 0xfffd, 0xfffd, 0x0178, + /* 0xa0 */ + 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, + 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, + /* 0xb0 */ + 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, + 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, + /* 0xc0 */ + 0x00c0, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x00c5, 0x00c6, 0x00c7, + 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x0300, 0x00cd, 0x00ce, 0x00cf, + /* 0xd0 */ + 0x0110, 0x00d1, 0x0309, 0x00d3, 0x00d4, 0x01a0, 0x00d6, 0x00d7, + 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x01af, 0x0303, 0x00df, + /* 0xe0 */ + 0x00e0, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x00e5, 0x00e6, 0x00e7, + 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x0301, 0x00ed, 0x00ee, 0x00ef, + /* 0xf0 */ + 0x0111, 0x00f1, 0x0323, 0x00f3, 0x00f4, 0x01a1, 0x00f6, 0x00f7, + 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x01b0, 0x20ab, 0x00ff, +}; + +/* In the CP1258 to Unicode direction, the state contains a buffered + character, or 0 if none. */ + +static int +cp1258_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + unsigned short wc; + unsigned short last_wc; + if (c < 0x80) { + wc = c; + } else { + wc = cp1258_2uni[c-0x80]; + if (wc == 0xfffd) + return RET_ILSEQ; + } + last_wc = conv->istate; + if (last_wc) { + if (wc >= 0x0300 && wc < 0x0340) { + /* See whether last_wc and wc can be combined. */ + unsigned int k; + unsigned int i1, i2; + switch (wc) { + case 0x0300: k = 0; break; + case 0x0301: k = 1; break; + case 0x0303: k = 2; break; + case 0x0309: k = 3; break; + case 0x0323: k = 4; break; + default: abort(); + } + i1 = viet_comp_table[k].idx; + i2 = i1 + viet_comp_table[k].len-1; + if (last_wc >= viet_comp_table_data[i1].base + && last_wc <= viet_comp_table_data[i2].base) { + unsigned int i; + for (;;) { + i = (i1+i2)>>1; + if (last_wc == viet_comp_table_data[i].base) + break; + if (last_wc < viet_comp_table_data[i].base) { + if (i1 == i) + goto not_combining; + i2 = i; + } else { + if (i1 != i) + i1 = i; + else { + i = i2; + if (last_wc == viet_comp_table_data[i].base) + break; + goto not_combining; + } + } + } + last_wc = viet_comp_table_data[i].composed; + /* Output the combined character. */ + conv->istate = 0; + *pwc = (ucs4_t) last_wc; + return 1; + } + } + not_combining: + /* Output the buffered character. */ + conv->istate = 0; + *pwc = (ucs4_t) last_wc; + return 0; /* Don't advance the input pointer. */ + } + if (wc >= 0x0041 && wc <= 0x01b0 + && ((cp1258_comp_bases[(wc - 0x0040) >> 5] >> (wc & 0x1f)) & 1)) { + /* wc is a possible match in viet_comp_table_data. Buffer it. */ + conv->istate = wc; + return RET_TOOFEW(1); + } else { + /* Output wc immediately. */ + *pwc = (ucs4_t) wc; + return 1; + } +} + +#define cp1258_flushwc normal_flushwc + +static const unsigned char cp1258_page00[88] = { + 0xc0, 0xc1, 0xc2, 0x00, 0xc4, 0xc5, 0xc6, 0xc7, /* 0xc0-0xc7 */ + 0xc8, 0xc9, 0xca, 0xcb, 0x00, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */ + 0x00, 0xd1, 0x00, 0xd3, 0xd4, 0x00, 0xd6, 0xd7, /* 0xd0-0xd7 */ + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */ + 0xe0, 0xe1, 0xe2, 0x00, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xe0-0xe7 */ + 0xe8, 0xe9, 0xea, 0xeb, 0x00, 0xed, 0xee, 0xef, /* 0xe8-0xef */ + 0x00, 0xf1, 0x00, 0xf3, 0xf4, 0x00, 0xf6, 0xf7, /* 0xf0-0xf7 */ + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0xff, /* 0xf8-0xff */ + /* 0x0100 */ + 0x00, 0x00, 0xc3, 0xe3, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ +}; +static const unsigned char cp1258_page01[104] = { + 0x00, 0x00, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0xd5, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdd, /* 0xa8-0xaf */ + 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ +}; +static const unsigned char cp1258_page02[32] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ +}; +static const unsigned char cp1258_page03[40] = { + 0xcc, 0xec, 0x00, 0xde, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0xd2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ +}; +static const unsigned char cp1258_page20[48] = { + 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ + 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ +}; + +static int +cp1258_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00c0) + c = wc; + else if (wc >= 0x00c0 && wc < 0x0118) + c = cp1258_page00[wc-0x00c0]; + else if (wc >= 0x0150 && wc < 0x01b8) + c = cp1258_page01[wc-0x0150]; + else if (wc >= 0x02c0 && wc < 0x02e0) + c = cp1258_page02[wc-0x02c0]; + else if (wc >= 0x0300 && wc < 0x0328) + c = cp1258_page03[wc-0x0300]; + else if (wc >= 0x0340 && wc < 0x0342) /* deprecated Vietnamese tone marks */ + c = cp1258_page03[wc-0x0340]; + else if (wc >= 0x2010 && wc < 0x2040) + c = cp1258_page20[wc-0x2010]; + else if (wc == 0x20ab) + c = 0xfe; + else if (wc == 0x20ac) + c = 0x80; + else if (wc == 0x2122) + c = 0x99; + if (c != 0) { + *r = c; + return 1; + } + /* Try canonical decomposition. */ + { + /* Binary search through viet_decomp_table. */ + unsigned int i1 = 0; + unsigned int i2 = sizeof(viet_decomp_table)/sizeof(viet_decomp_table[0])-1; + if (wc >= viet_decomp_table[i1].composed + && wc <= viet_decomp_table[i2].composed) { + unsigned int i; + for (;;) { + /* Here i2 - i1 > 0. */ + i = (i1+i2)>>1; + if (wc == viet_decomp_table[i].composed) + break; + if (wc < viet_decomp_table[i].composed) { + if (i1 == i) + return RET_ILUNI; + /* Here i1 < i < i2. */ + i2 = i; + } else { + /* Here i1 <= i < i2. */ + if (i1 != i) + i1 = i; + else { + /* Here i2 - i1 = 1. */ + i = i2; + if (wc == viet_decomp_table[i].composed) + break; + else + return RET_ILUNI; + } + } + } + /* Found a canonical decomposition. */ + wc = viet_decomp_table[i].base; + /* wc is one of 0x0020, 0x0041..0x005a, 0x0061..0x007a, 0x00a5, 0x00a8, + 0x00c2, 0x00c5..0x00c7, 0x00ca, 0x00cf, 0x00d3, 0x00d4, 0x00d6, + 0x00d8, 0x00da, 0x00dc, 0x00e2, 0x00e5..0x00e7, 0x00ea, 0x00ef, + 0x00f3, 0x00f4, 0x00f6, 0x00f8, 0x00fc, 0x0102, 0x0103, 0x01a0, + 0x01a1, 0x01af, 0x01b0. */ + if (wc < 0x0100) + c = wc; + else if (wc < 0x0118) + c = cp1258_page00[wc-0x00c0]; + else + c = cp1258_page01[wc-0x0150]; + if (n < 2) + return RET_TOOSMALL; + r[0] = c; + r[1] = cp1258_comb_table[viet_decomp_table[i].comb1]; + return 2; + } + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp437.h b/graf2d/win32gdk/gdk/src/iconv/cp437.h new file mode 100644 index 00000000000..a3c8e685bb4 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp437.h @@ -0,0 +1,156 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP437 + */ + +static const unsigned short cp437_2uni[128] = { + /* 0x80 */ + 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, + 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, + /* 0x90 */ + 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, + 0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192, + /* 0xa0 */ + 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, + 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, + /* 0xb0 */ + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, + 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, + /* 0xc0 */ + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, + /* 0xd0 */ + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, + 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + /* 0xe0 */ + 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, + 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, + /* 0xf0 */ + 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, + 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, +}; + +static int +cp437_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) cp437_2uni[c-0x80]; + return 1; +} + +static const unsigned char cp437_page00[96] = { + 0xff, 0xad, 0x9b, 0x9c, 0x00, 0x9d, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0xa6, 0xae, 0xaa, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0xf8, 0xf1, 0xfd, 0x00, 0x00, 0xe6, 0x00, 0xfa, /* 0xb0-0xb7 */ + 0x00, 0x00, 0xa7, 0xaf, 0xac, 0xab, 0x00, 0xa8, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x8f, 0x92, 0x80, /* 0xc0-0xc7 */ + 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0xa5, 0x00, 0x00, 0x00, 0x00, 0x99, 0x00, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0xe1, /* 0xd8-0xdf */ + 0x85, 0xa0, 0x83, 0x00, 0x84, 0x86, 0x91, 0x87, /* 0xe0-0xe7 */ + 0x8a, 0x82, 0x88, 0x89, 0x8d, 0xa1, 0x8c, 0x8b, /* 0xe8-0xef */ + 0x00, 0xa4, 0x95, 0xa2, 0x93, 0x00, 0x94, 0xf6, /* 0xf0-0xf7 */ + 0x00, 0x97, 0xa3, 0x96, 0x81, 0x00, 0x00, 0x98, /* 0xf8-0xff */ +}; +static const unsigned char cp437_page03[56] = { + 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0xe9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0xe8, 0x00, /* 0xa0-0xa7 */ + 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0x00, 0xe0, 0x00, 0x00, 0xeb, 0xee, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ +}; +static const unsigned char cp437_page22[80] = { + 0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0xec, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ +}; +static const unsigned char cp437_page23[24] = { + 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0xf4, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ +}; +static const unsigned char cp437_page25[168] = { + 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, /* 0x50-0x57 */ + 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, /* 0x58-0x5f */ + 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, /* 0x60-0x67 */ + 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0xdb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0xde, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ +}; + +static int +cp437_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0100) + c = cp437_page00[wc-0x00a0]; + else if (wc == 0x0192) + c = 0x9f; + else if (wc >= 0x0390 && wc < 0x03c8) + c = cp437_page03[wc-0x0390]; + else if (wc == 0x207f) + c = 0xfc; + else if (wc == 0x20a7) + c = 0x9e; + else if (wc >= 0x2218 && wc < 0x2268) + c = cp437_page22[wc-0x2218]; + else if (wc >= 0x2310 && wc < 0x2328) + c = cp437_page23[wc-0x2310]; + else if (wc >= 0x2500 && wc < 0x25a8) + c = cp437_page25[wc-0x2500]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp737.h b/graf2d/win32gdk/gdk/src/iconv/cp737.h new file mode 100644 index 00000000000..955e458d043 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp737.h @@ -0,0 +1,141 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP737 + */ + +static const unsigned short cp737_2uni[128] = { + /* 0x80 */ + 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, + 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, + /* 0x90 */ + 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, + 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, + /* 0xa0 */ + 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, + 0x03c1, 0x03c3, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, + /* 0xb0 */ + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, + 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, + /* 0xc0 */ + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, + /* 0xd0 */ + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, + 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + /* 0xe0 */ + 0x03c9, 0x03ac, 0x03ad, 0x03ae, 0x03ca, 0x03af, 0x03cc, 0x03cd, + 0x03cb, 0x03ce, 0x0386, 0x0388, 0x0389, 0x038a, 0x038c, 0x038e, + /* 0xf0 */ + 0x038f, 0x00b1, 0x2265, 0x2264, 0x03aa, 0x03ab, 0x00f7, 0x2248, + 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, +}; + +static int +cp737_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) cp737_2uni[c-0x80]; + return 1; +} + +static const unsigned char cp737_page00[24] = { + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0xf8, 0xf1, 0xfd, 0x00, 0x00, 0x00, 0x00, 0xfa, /* 0xb0-0xb7 */ +}; +static const unsigned char cp737_page03[80] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0x00, /* 0x80-0x87 */ + 0xeb, 0xec, 0xed, 0x00, 0xee, 0x00, 0xef, 0xf0, /* 0x88-0x8f */ + 0x00, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, /* 0x90-0x97 */ + 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, /* 0x98-0x9f */ + 0x8f, 0x90, 0x00, 0x91, 0x92, 0x93, 0x94, 0x95, /* 0xa0-0xa7 */ + 0x96, 0x97, 0xf4, 0xf5, 0xe1, 0xe2, 0xe3, 0xe5, /* 0xa8-0xaf */ + 0x00, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, /* 0xb0-0xb7 */ + 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0xb8-0xbf */ + 0xa7, 0xa8, 0xaa, 0xa9, 0xab, 0xac, 0xad, 0xae, /* 0xc0-0xc7 */ + 0xaf, 0xe0, 0xe4, 0xe8, 0xe6, 0xe7, 0xe9, 0x00, /* 0xc8-0xcf */ +}; +static const unsigned char cp737_page22[80] = { + 0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ +}; +static const unsigned char cp737_page25[168] = { + 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, /* 0x50-0x57 */ + 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, /* 0x58-0x5f */ + 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, /* 0x60-0x67 */ + 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0xdb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0xde, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ +}; + +static int +cp737_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00b8) + c = cp737_page00[wc-0x00a0]; + else if (wc == 0x00f7) + c = 0xf6; + else if (wc >= 0x0380 && wc < 0x03d0) + c = cp737_page03[wc-0x0380]; + else if (wc == 0x207f) + c = 0xfc; + else if (wc >= 0x2218 && wc < 0x2268) + c = cp737_page22[wc-0x2218]; + else if (wc >= 0x2500 && wc < 0x25a8) + c = cp737_page25[wc-0x2500]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp775.h b/graf2d/win32gdk/gdk/src/iconv/cp775.h new file mode 100644 index 00000000000..b9a5a5c4eb9 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp775.h @@ -0,0 +1,142 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP775 + */ + +static const unsigned short cp775_2uni[128] = { + /* 0x80 */ + 0x0106, 0x00fc, 0x00e9, 0x0101, 0x00e4, 0x0123, 0x00e5, 0x0107, + 0x0142, 0x0113, 0x0156, 0x0157, 0x012b, 0x0179, 0x00c4, 0x00c5, + /* 0x90 */ + 0x00c9, 0x00e6, 0x00c6, 0x014d, 0x00f6, 0x0122, 0x00a2, 0x015a, + 0x015b, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x00a4, + /* 0xa0 */ + 0x0100, 0x012a, 0x00f3, 0x017b, 0x017c, 0x017a, 0x201d, 0x00a6, + 0x00a9, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x0141, 0x00ab, 0x00bb, + /* 0xb0 */ + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0104, 0x010c, 0x0118, + 0x0116, 0x2563, 0x2551, 0x2557, 0x255d, 0x012e, 0x0160, 0x2510, + /* 0xc0 */ + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x0172, 0x016a, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x017d, + /* 0xd0 */ + 0x0105, 0x010d, 0x0119, 0x0117, 0x012f, 0x0161, 0x0173, 0x016b, + 0x017e, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + /* 0xe0 */ + 0x00d3, 0x00df, 0x014c, 0x0143, 0x00f5, 0x00d5, 0x00b5, 0x0144, + 0x0136, 0x0137, 0x013b, 0x013c, 0x0146, 0x0112, 0x0145, 0x2019, + /* 0xf0 */ + 0x00ad, 0x00b1, 0x201c, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x201e, + 0x00b0, 0x2219, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0, +}; + +static int +cp775_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) cp775_2uni[c-0x80]; + return 1; +} + +static const unsigned char cp775_page00[224] = { + 0xff, 0x00, 0x96, 0x9c, 0x9f, 0x00, 0xa7, 0xf5, /* 0xa0-0xa7 */ + 0x00, 0xa8, 0x00, 0xae, 0xaa, 0xf0, 0xa9, 0x00, /* 0xa8-0xaf */ + 0xf8, 0xf1, 0xfd, 0xfc, 0x00, 0xe6, 0xf4, 0xfa, /* 0xb0-0xb7 */ + 0x00, 0xfb, 0x00, 0xaf, 0xac, 0xab, 0xf3, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x8f, 0x92, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0xe0, 0x00, 0xe5, 0x99, 0x9e, /* 0xd0-0xd7 */ + 0x9d, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0xe1, /* 0xd8-0xdf */ + 0x00, 0x00, 0x00, 0x00, 0x84, 0x86, 0x91, 0x00, /* 0xe0-0xe7 */ + 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0xa2, 0x00, 0xe4, 0x94, 0xf6, /* 0xf0-0xf7 */ + 0x9b, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, /* 0xf8-0xff */ + /* 0x0100 */ + 0xa0, 0x83, 0x00, 0x00, 0xb5, 0xd0, 0x80, 0x87, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xb6, 0xd1, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0xed, 0x89, 0x00, 0x00, 0xb8, 0xd3, /* 0x10-0x17 */ + 0xb7, 0xd2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x95, 0x85, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0xa1, 0x8c, 0x00, 0x00, 0xbd, 0xd4, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0xe9, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0xea, 0xeb, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0xad, 0x88, 0xe3, 0xe7, 0xee, 0xec, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0xe2, 0x93, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8a, 0x8b, /* 0x50-0x57 */ + 0x00, 0x00, 0x97, 0x98, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0xbe, 0xd5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0xc7, 0xd7, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0xc6, 0xd6, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x8d, 0xa5, 0xa3, 0xa4, 0xcf, 0xd8, 0x00, /* 0x78-0x7f */ +}; +static const unsigned char cp775_page20[8] = { + 0x00, 0xef, 0x00, 0x00, 0xf2, 0xa6, 0xf7, 0x00, /* 0x18-0x1f */ +}; +static const unsigned char cp775_page25[168] = { + 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xcd, 0xba, 0x00, 0x00, 0xc9, 0x00, 0x00, 0xbb, /* 0x50-0x57 */ + 0x00, 0x00, 0xc8, 0x00, 0x00, 0xbc, 0x00, 0x00, /* 0x58-0x5f */ + 0xcc, 0x00, 0x00, 0xb9, 0x00, 0x00, 0xcb, 0x00, /* 0x60-0x67 */ + 0x00, 0xca, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0xdb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0xde, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ +}; + +static int +cp775_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0180) + c = cp775_page00[wc-0x00a0]; + else if (wc >= 0x2018 && wc < 0x2020) + c = cp775_page20[wc-0x2018]; + else if (wc == 0x2219) + c = 0xf9; + else if (wc >= 0x2500 && wc < 0x25a8) + c = cp775_page25[wc-0x2500]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp850.h b/graf2d/win32gdk/gdk/src/iconv/cp850.h new file mode 100644 index 00000000000..25acfee1481 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp850.h @@ -0,0 +1,124 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP850 + */ + +static const unsigned short cp850_2uni[128] = { + /* 0x80 */ + 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, + 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, + /* 0x90 */ + 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, + 0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x0192, + /* 0xa0 */ + 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, + 0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, + /* 0xb0 */ + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0, + 0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510, + /* 0xc0 */ + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, + /* 0xd0 */ + 0x00f0, 0x00d0, 0x00ca, 0x00cb, 0x00c8, 0x0131, 0x00cd, 0x00ce, + 0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580, + /* 0xe0 */ + 0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x00fe, + 0x00de, 0x00da, 0x00db, 0x00d9, 0x00fd, 0x00dd, 0x00af, 0x00b4, + /* 0xf0 */ + 0x00ad, 0x00b1, 0x2017, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8, + 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0, +}; + +static int +cp850_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) cp850_2uni[c-0x80]; + return 1; +} + +static const unsigned char cp850_page00[96] = { + 0xff, 0xad, 0xbd, 0x9c, 0xcf, 0xbe, 0xdd, 0xf5, /* 0xa0-0xa7 */ + 0xf9, 0xb8, 0xa6, 0xae, 0xaa, 0xf0, 0xa9, 0xee, /* 0xa8-0xaf */ + 0xf8, 0xf1, 0xfd, 0xfc, 0xef, 0xe6, 0xf4, 0xfa, /* 0xb0-0xb7 */ + 0xf7, 0xfb, 0xa7, 0xaf, 0xac, 0xab, 0xf3, 0xa8, /* 0xb8-0xbf */ + 0xb7, 0xb5, 0xb6, 0xc7, 0x8e, 0x8f, 0x92, 0x80, /* 0xc0-0xc7 */ + 0xd4, 0x90, 0xd2, 0xd3, 0xde, 0xd6, 0xd7, 0xd8, /* 0xc8-0xcf */ + 0xd1, 0xa5, 0xe3, 0xe0, 0xe2, 0xe5, 0x99, 0x9e, /* 0xd0-0xd7 */ + 0x9d, 0xeb, 0xe9, 0xea, 0x9a, 0xed, 0xe8, 0xe1, /* 0xd8-0xdf */ + 0x85, 0xa0, 0x83, 0xc6, 0x84, 0x86, 0x91, 0x87, /* 0xe0-0xe7 */ + 0x8a, 0x82, 0x88, 0x89, 0x8d, 0xa1, 0x8c, 0x8b, /* 0xe8-0xef */ + 0xd0, 0xa4, 0x95, 0xa2, 0x93, 0xe4, 0x94, 0xf6, /* 0xf0-0xf7 */ + 0x9b, 0x97, 0xa3, 0x96, 0x81, 0xec, 0xe7, 0x98, /* 0xf8-0xff */ +}; +static const unsigned char cp850_page25[168] = { + 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xcd, 0xba, 0x00, 0x00, 0xc9, 0x00, 0x00, 0xbb, /* 0x50-0x57 */ + 0x00, 0x00, 0xc8, 0x00, 0x00, 0xbc, 0x00, 0x00, /* 0x58-0x5f */ + 0xcc, 0x00, 0x00, 0xb9, 0x00, 0x00, 0xcb, 0x00, /* 0x60-0x67 */ + 0x00, 0xca, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ +}; + +static int +cp850_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0100) + c = cp850_page00[wc-0x00a0]; + else if (wc == 0x0131) + c = 0xd5; + else if (wc == 0x0192) + c = 0x9f; + else if (wc == 0x2017) + c = 0xf2; + else if (wc >= 0x2500 && wc < 0x25a8) + c = cp850_page25[wc-0x2500]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp852.h b/graf2d/win32gdk/gdk/src/iconv/cp852.h new file mode 100644 index 00000000000..fac7a63f15c --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp852.h @@ -0,0 +1,143 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP852 + */ + +static const unsigned short cp852_2uni[128] = { + /* 0x80 */ + 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x016f, 0x0107, 0x00e7, + 0x0142, 0x00eb, 0x0150, 0x0151, 0x00ee, 0x0179, 0x00c4, 0x0106, + /* 0x90 */ + 0x00c9, 0x0139, 0x013a, 0x00f4, 0x00f6, 0x013d, 0x013e, 0x015a, + 0x015b, 0x00d6, 0x00dc, 0x0164, 0x0165, 0x0141, 0x00d7, 0x010d, + /* 0xa0 */ + 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x0104, 0x0105, 0x017d, 0x017e, + 0x0118, 0x0119, 0x00ac, 0x017a, 0x010c, 0x015f, 0x00ab, 0x00bb, + /* 0xb0 */ + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x011a, + 0x015e, 0x2563, 0x2551, 0x2557, 0x255d, 0x017b, 0x017c, 0x2510, + /* 0xc0 */ + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x0102, 0x0103, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, + /* 0xd0 */ + 0x0111, 0x0110, 0x010e, 0x00cb, 0x010f, 0x0147, 0x00cd, 0x00ce, + 0x011b, 0x2518, 0x250c, 0x2588, 0x2584, 0x0162, 0x016e, 0x2580, + /* 0xe0 */ + 0x00d3, 0x00df, 0x00d4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161, + 0x0154, 0x00da, 0x0155, 0x0170, 0x00fd, 0x00dd, 0x0163, 0x00b4, + /* 0xf0 */ + 0x00ad, 0x02dd, 0x02db, 0x02c7, 0x02d8, 0x00a7, 0x00f7, 0x00b8, + 0x00b0, 0x00a8, 0x02d9, 0x0171, 0x0158, 0x0159, 0x25a0, 0x00a0, +}; + +static int +cp852_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) cp852_2uni[c-0x80]; + return 1; +} + +static const unsigned char cp852_page00[224] = { + 0xff, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0xf5, /* 0xa0-0xa7 */ + 0xf9, 0x00, 0x00, 0xae, 0xaa, 0xf0, 0x00, 0x00, /* 0xa8-0xaf */ + 0xf8, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ + 0xf7, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0xb5, 0xb6, 0x00, 0x8e, 0x00, 0x00, 0x80, /* 0xc0-0xc7 */ + 0x00, 0x90, 0x00, 0xd3, 0x00, 0xd6, 0xd7, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0xe0, 0xe2, 0x00, 0x99, 0x9e, /* 0xd0-0xd7 */ + 0x00, 0x00, 0xe9, 0x00, 0x9a, 0xed, 0x00, 0xe1, /* 0xd8-0xdf */ + 0x00, 0xa0, 0x83, 0x00, 0x84, 0x00, 0x00, 0x87, /* 0xe0-0xe7 */ + 0x00, 0x82, 0x00, 0x89, 0x00, 0xa1, 0x8c, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0xa2, 0x93, 0x00, 0x94, 0xf6, /* 0xf0-0xf7 */ + 0x00, 0x00, 0xa3, 0x00, 0x81, 0xec, 0x00, 0x00, /* 0xf8-0xff */ + /* 0x0100 */ + 0x00, 0x00, 0xc6, 0xc7, 0xa4, 0xa5, 0x8f, 0x86, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xac, 0x9f, 0xd2, 0xd4, /* 0x08-0x0f */ + 0xd1, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xa8, 0xa9, 0xb7, 0xd8, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x91, 0x92, 0x00, 0x00, 0x95, 0x96, 0x00, /* 0x38-0x3f */ + 0x00, 0x9d, 0x88, 0xe3, 0xe4, 0x00, 0x00, 0xd5, /* 0x40-0x47 */ + 0xe5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x8a, 0x8b, 0x00, 0x00, 0xe8, 0xea, 0x00, 0x00, /* 0x50-0x57 */ + 0xfc, 0xfd, 0x97, 0x98, 0x00, 0x00, 0xb8, 0xad, /* 0x58-0x5f */ + 0xe6, 0xe7, 0xdd, 0xee, 0x9b, 0x9c, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0x85, /* 0x68-0x6f */ + 0xeb, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x8d, 0xab, 0xbd, 0xbe, 0xa6, 0xa7, 0x00, /* 0x78-0x7f */ +}; +static const unsigned char cp852_page02[32] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf3, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0xf4, 0xfa, 0x00, 0xf2, 0x00, 0xf1, 0x00, 0x00, /* 0xd8-0xdf */ +}; +static const unsigned char cp852_page25[168] = { + 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xcd, 0xba, 0x00, 0x00, 0xc9, 0x00, 0x00, 0xbb, /* 0x50-0x57 */ + 0x00, 0x00, 0xc8, 0x00, 0x00, 0xbc, 0x00, 0x00, /* 0x58-0x5f */ + 0xcc, 0x00, 0x00, 0xb9, 0x00, 0x00, 0xcb, 0x00, /* 0x60-0x67 */ + 0x00, 0xca, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ +}; + +static int +cp852_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0180) + c = cp852_page00[wc-0x00a0]; + else if (wc >= 0x02c0 && wc < 0x02e0) + c = cp852_page02[wc-0x02c0]; + else if (wc >= 0x2500 && wc < 0x25a8) + c = cp852_page25[wc-0x2500]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp853.h b/graf2d/win32gdk/gdk/src/iconv/cp853.h new file mode 100644 index 00000000000..fe82ae9817b --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp853.h @@ -0,0 +1,151 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP853 + */ + +static const unsigned short cp853_2uni[128] = { + /* 0x80 */ + 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x0109, 0x00e7, + 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x0108, + /* 0x90 */ + 0x00c9, 0x010b, 0x010a, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, + 0x0130, 0x00d6, 0x00dc, 0x011d, 0x00a3, 0x011c, 0x00d7, 0x0135, + /* 0xa0 */ + 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x011e, 0x011f, + 0x0124, 0x0125, 0xfffd, 0x00bd, 0x0134, 0x015f, 0x00ab, 0x00bb, + /* 0xb0 */ + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0, + 0x015e, 0x2563, 0x2551, 0x2557, 0x255d, 0x017b, 0x017c, 0x2510, + /* 0xc0 */ + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x015c, 0x015d, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, + /* 0xd0 */ + 0xfffd, 0xfffd, 0x00ca, 0x00cb, 0x00c8, 0x0131, 0x00cd, 0x00ce, + 0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0xfffd, 0x00cc, 0x2580, + /* 0xe0 */ + 0x00d3, 0x00df, 0x00d4, 0x00d2, 0x0120, 0x0121, 0x00b5, 0x0126, + 0x0127, 0x00da, 0x00db, 0x00d9, 0x016c, 0x016d, 0xfffd, 0x00b4, + /* 0xf0 */ + 0x00ad, 0xfffd, 0x2113, 0x0149, 0x02d8, 0x00a7, 0x00f7, 0x00b8, + 0x00b0, 0x00a8, 0x02d9, 0xfffd, 0x00b3, 0x00b2, 0x25a0, 0x00a0, +}; + +static int +cp853_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = cp853_2uni[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char cp853_page00[96] = { + 0xff, 0x00, 0x00, 0x9c, 0xcf, 0x00, 0x00, 0xf5, /* 0xa0-0xa7 */ + 0xf9, 0x00, 0x00, 0xae, 0x00, 0xf0, 0x00, 0x00, /* 0xa8-0xaf */ + 0xf8, 0x00, 0xfd, 0xfc, 0xef, 0xe6, 0x00, 0x00, /* 0xb0-0xb7 */ + 0xf7, 0x00, 0x00, 0xaf, 0x00, 0xab, 0x00, 0x00, /* 0xb8-0xbf */ + 0xb7, 0xb5, 0xb6, 0x00, 0x8e, 0x00, 0x00, 0x80, /* 0xc0-0xc7 */ + 0xd4, 0x90, 0xd2, 0xd3, 0xde, 0xd6, 0xd7, 0xd8, /* 0xc8-0xcf */ + 0x00, 0xa5, 0xe3, 0xe0, 0xe2, 0x00, 0x99, 0x9e, /* 0xd0-0xd7 */ + 0x00, 0xeb, 0xe9, 0xea, 0x9a, 0x00, 0x00, 0xe1, /* 0xd8-0xdf */ + 0x85, 0xa0, 0x83, 0x00, 0x84, 0x00, 0x00, 0x87, /* 0xe0-0xe7 */ + 0x8a, 0x82, 0x88, 0x89, 0x8d, 0xa1, 0x8c, 0x8b, /* 0xe8-0xef */ + 0x00, 0xa4, 0x95, 0xa2, 0x93, 0x00, 0x94, 0xf6, /* 0xf0-0xf7 */ + 0x00, 0x97, 0xa3, 0x96, 0x81, 0x00, 0x00, 0x00, /* 0xf8-0xff */ +}; +static const unsigned char cp853_page01[120] = { + 0x8f, 0x86, 0x92, 0x91, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9b, 0xa6, 0xa7, /* 0x18-0x1f */ + 0xe4, 0xe5, 0x00, 0x00, 0xa8, 0xa9, 0xe7, 0xe8, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x98, 0xd5, 0x00, 0x00, 0xac, 0x9f, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc7, 0xb8, 0xad, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0xec, 0xed, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0xbd, 0xbe, 0x00, 0x00, 0x00, /* 0x78-0x7f */ +}; +static const unsigned char cp853_page02[8] = { + 0xf4, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ +}; +static const unsigned char cp853_page25[168] = { + 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xcd, 0xba, 0x00, 0x00, 0xc9, 0x00, 0x00, 0xbb, /* 0x50-0x57 */ + 0x00, 0x00, 0xc8, 0x00, 0x00, 0xbc, 0x00, 0x00, /* 0x58-0x5f */ + 0xcc, 0x00, 0x00, 0xb9, 0x00, 0x00, 0xcb, 0x00, /* 0x60-0x67 */ + 0x00, 0xca, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ +}; + +static int +cp853_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0100) + c = cp853_page00[wc-0x00a0]; + else if (wc >= 0x0108 && wc < 0x0180) + c = cp853_page01[wc-0x0108]; + else if (wc >= 0x02d8 && wc < 0x02e0) + c = cp853_page02[wc-0x02d8]; + else if (wc == 0x2113) + c = 0xf2; + else if (wc >= 0x2500 && wc < 0x25a8) + c = cp853_page25[wc-0x2500]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp855.h b/graf2d/win32gdk/gdk/src/iconv/cp855.h new file mode 100644 index 00000000000..ddb8bf17d08 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp855.h @@ -0,0 +1,128 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP855 + */ + +static const unsigned short cp855_2uni[128] = { + /* 0x80 */ + 0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404, + 0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408, + /* 0x90 */ + 0x0459, 0x0409, 0x045a, 0x040a, 0x045b, 0x040b, 0x045c, 0x040c, + 0x045e, 0x040e, 0x045f, 0x040f, 0x044e, 0x042e, 0x044a, 0x042a, + /* 0xa0 */ + 0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414, + 0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00ab, 0x00bb, + /* 0xb0 */ + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438, + 0x0418, 0x2563, 0x2551, 0x2557, 0x255d, 0x0439, 0x0419, 0x2510, + /* 0xc0 */ + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x043a, 0x041a, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, + /* 0xd0 */ + 0x043b, 0x041b, 0x043c, 0x041c, 0x043d, 0x041d, 0x043e, 0x041e, + 0x043f, 0x2518, 0x250c, 0x2588, 0x2584, 0x041f, 0x044f, 0x2580, + /* 0xe0 */ + 0x042f, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443, + 0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044c, 0x042c, 0x2116, + /* 0xf0 */ + 0x00ad, 0x044b, 0x042b, 0x0437, 0x0417, 0x0448, 0x0428, 0x044d, + 0x042d, 0x0449, 0x0429, 0x0447, 0x0427, 0x00a7, 0x25a0, 0x00a0, +}; + +static int +cp855_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) cp855_2uni[c-0x80]; + return 1; +} + +static const unsigned char cp855_page00[32] = { + 0xff, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0xfd, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0xae, 0x00, 0xf0, 0x00, 0x00, /* 0xa8-0xaf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ +}; +static const unsigned char cp855_page04[96] = { + 0x00, 0x85, 0x81, 0x83, 0x87, 0x89, 0x8b, 0x8d, /* 0x00-0x07 */ + 0x8f, 0x91, 0x93, 0x95, 0x97, 0x00, 0x99, 0x9b, /* 0x08-0x0f */ + 0xa1, 0xa3, 0xec, 0xad, 0xa7, 0xa9, 0xea, 0xf4, /* 0x10-0x17 */ + 0xb8, 0xbe, 0xc7, 0xd1, 0xd3, 0xd5, 0xd7, 0xdd, /* 0x18-0x1f */ + 0xe2, 0xe4, 0xe6, 0xe8, 0xab, 0xb6, 0xa5, 0xfc, /* 0x20-0x27 */ + 0xf6, 0xfa, 0x9f, 0xf2, 0xee, 0xf8, 0x9d, 0xe0, /* 0x28-0x2f */ + 0xa0, 0xa2, 0xeb, 0xac, 0xa6, 0xa8, 0xe9, 0xf3, /* 0x30-0x37 */ + 0xb7, 0xbd, 0xc6, 0xd0, 0xd2, 0xd4, 0xd6, 0xd8, /* 0x38-0x3f */ + 0xe1, 0xe3, 0xe5, 0xe7, 0xaa, 0xb5, 0xa4, 0xfb, /* 0x40-0x47 */ + 0xf5, 0xf9, 0x9e, 0xf1, 0xed, 0xf7, 0x9c, 0xde, /* 0x48-0x4f */ + 0x00, 0x84, 0x80, 0x82, 0x86, 0x88, 0x8a, 0x8c, /* 0x50-0x57 */ + 0x8e, 0x90, 0x92, 0x94, 0x96, 0x00, 0x98, 0x9a, /* 0x58-0x5f */ +}; +static const unsigned char cp855_page25[168] = { + 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xcd, 0xba, 0x00, 0x00, 0xc9, 0x00, 0x00, 0xbb, /* 0x50-0x57 */ + 0x00, 0x00, 0xc8, 0x00, 0x00, 0xbc, 0x00, 0x00, /* 0x58-0x5f */ + 0xcc, 0x00, 0x00, 0xb9, 0x00, 0x00, 0xcb, 0x00, /* 0x60-0x67 */ + 0x00, 0xca, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ +}; + +static int +cp855_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00c0) + c = cp855_page00[wc-0x00a0]; + else if (wc >= 0x0400 && wc < 0x0460) + c = cp855_page04[wc-0x0400]; + else if (wc == 0x2116) + c = 0xef; + else if (wc >= 0x2500 && wc < 0x25a8) + c = cp855_page25[wc-0x2500]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp856.h b/graf2d/win32gdk/gdk/src/iconv/cp856.h new file mode 100644 index 00000000000..30ba80b331d --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp856.h @@ -0,0 +1,134 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP856 + */ + +static const unsigned short cp856_2uni[128] = { + /* 0x80 */ + 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, + 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, + /* 0x90 */ + 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, + 0x05e8, 0x05e9, 0x05ea, 0xfffd, 0x00a3, 0xfffd, 0x00d7, 0xfffd, + /* 0xa0 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0xfffd, 0x00ab, 0x00bb, + /* 0xb0 */ + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0xfffd, 0xfffd, 0xfffd, + 0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510, + /* 0xc0 */ + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0xfffd, 0xfffd, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, + /* 0xd0 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0xfffd, 0x2580, + /* 0xe0 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00b5, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00af, 0x00b4, + /* 0xf0 */ + 0x00ad, 0x00b1, 0x2017, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8, + 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0, +}; + +static int +cp856_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = cp856_2uni[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char cp856_page00[88] = { + 0xff, 0x00, 0xbd, 0x9c, 0xcf, 0xbe, 0xdd, 0xf5, /* 0xa0-0xa7 */ + 0xf9, 0xb8, 0x00, 0xae, 0xaa, 0xf0, 0xa9, 0xee, /* 0xa8-0xaf */ + 0xf8, 0xf1, 0xfd, 0xfc, 0xef, 0xe6, 0xf4, 0xfa, /* 0xb0-0xb7 */ + 0xf7, 0xfb, 0x00, 0xaf, 0xac, 0xab, 0xf3, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, /* 0xf0-0xf7 */ +}; +static const unsigned char cp856_page05[32] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0xd0-0xd7 */ + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /* 0xd8-0xdf */ + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0xe0-0xe7 */ + 0x98, 0x99, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ +}; +static const unsigned char cp856_page25[168] = { + 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xcd, 0xba, 0x00, 0x00, 0xc9, 0x00, 0x00, 0xbb, /* 0x50-0x57 */ + 0x00, 0x00, 0xc8, 0x00, 0x00, 0xbc, 0x00, 0x00, /* 0x58-0x5f */ + 0xcc, 0x00, 0x00, 0xb9, 0x00, 0x00, 0xcb, 0x00, /* 0x60-0x67 */ + 0x00, 0xca, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ +}; + +static int +cp856_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00f8) + c = cp856_page00[wc-0x00a0]; + else if (wc >= 0x05d0 && wc < 0x05f0) + c = cp856_page05[wc-0x05d0]; + else if (wc == 0x2017) + c = 0xf2; + else if (wc >= 0x2500 && wc < 0x25a8) + c = cp856_page25[wc-0x2500]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp857.h b/graf2d/win32gdk/gdk/src/iconv/cp857.h new file mode 100644 index 00000000000..09de722d215 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp857.h @@ -0,0 +1,138 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP857 + */ + +static const unsigned short cp857_2uni[128] = { + /* 0x80 */ + 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, + 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x0131, 0x00c4, 0x00c5, + /* 0x90 */ + 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, + 0x0130, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x015e, 0x015f, + /* 0xa0 */ + 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x011e, 0x011f, + 0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, + /* 0xb0 */ + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0, + 0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510, + /* 0xc0 */ + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, + /* 0xd0 */ + 0x00ba, 0x00aa, 0x00ca, 0x00cb, 0x00c8, 0xfffd, 0x00cd, 0x00ce, + 0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580, + /* 0xe0 */ + 0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0xfffd, + 0x00d7, 0x00da, 0x00db, 0x00d9, 0x00ec, 0x00ff, 0x00af, 0x00b4, + /* 0xf0 */ + 0x00ad, 0x00b1, 0xfffd, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8, + 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0, +}; + +static int +cp857_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = cp857_2uni[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char cp857_page00[96] = { + 0xff, 0xad, 0xbd, 0x9c, 0xcf, 0xbe, 0xdd, 0xf5, /* 0xa0-0xa7 */ + 0xf9, 0xb8, 0xd1, 0xae, 0xaa, 0xf0, 0xa9, 0xee, /* 0xa8-0xaf */ + 0xf8, 0xf1, 0xfd, 0xfc, 0xef, 0xe6, 0xf4, 0xfa, /* 0xb0-0xb7 */ + 0xf7, 0xfb, 0xd0, 0xaf, 0xac, 0xab, 0xf3, 0xa8, /* 0xb8-0xbf */ + 0xb7, 0xb5, 0xb6, 0xc7, 0x8e, 0x8f, 0x92, 0x80, /* 0xc0-0xc7 */ + 0xd4, 0x90, 0xd2, 0xd3, 0xde, 0xd6, 0xd7, 0xd8, /* 0xc8-0xcf */ + 0x00, 0xa5, 0xe3, 0xe0, 0xe2, 0xe5, 0x99, 0xe8, /* 0xd0-0xd7 */ + 0x9d, 0xeb, 0xe9, 0xea, 0x9a, 0x00, 0x00, 0xe1, /* 0xd8-0xdf */ + 0x85, 0xa0, 0x83, 0xc6, 0x84, 0x86, 0x91, 0x87, /* 0xe0-0xe7 */ + 0x8a, 0x82, 0x88, 0x89, 0xec, 0xa1, 0x8c, 0x8b, /* 0xe8-0xef */ + 0x00, 0xa4, 0x95, 0xa2, 0x93, 0xe4, 0x94, 0xf6, /* 0xf0-0xf7 */ + 0x9b, 0x97, 0xa3, 0x96, 0x81, 0x00, 0x00, 0xed, /* 0xf8-0xff */ +}; +static const unsigned char cp857_page01[72] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0xa7, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x98, 0x8d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x9f, /* 0x58-0x5f */ +}; +static const unsigned char cp857_page25[168] = { + 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xcd, 0xba, 0x00, 0x00, 0xc9, 0x00, 0x00, 0xbb, /* 0x50-0x57 */ + 0x00, 0x00, 0xc8, 0x00, 0x00, 0xbc, 0x00, 0x00, /* 0x58-0x5f */ + 0xcc, 0x00, 0x00, 0xb9, 0x00, 0x00, 0xcb, 0x00, /* 0x60-0x67 */ + 0x00, 0xca, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ +}; + +static int +cp857_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0100) + c = cp857_page00[wc-0x00a0]; + else if (wc >= 0x0118 && wc < 0x0160) + c = cp857_page01[wc-0x0118]; + else if (wc >= 0x2500 && wc < 0x25a8) + c = cp857_page25[wc-0x2500]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp858.h b/graf2d/win32gdk/gdk/src/iconv/cp858.h new file mode 100644 index 00000000000..dd26d0a27e2 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp858.h @@ -0,0 +1,61 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP858 + */ + +static int +cp858_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) + *pwc = (ucs4_t) c; + else if (c == 0xd5) + *pwc = 0x20ac; + else + *pwc = (ucs4_t) cp850_2uni[c-0x80]; + return 1; +} + +static int +cp858_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0100) + c = cp850_page00[wc-0x00a0]; + else if (wc == 0x0192) + c = 0x9f; + else if (wc == 0x2017) + c = 0xf2; + else if (wc == 0x20ac) + c = 0xd5; + else if (wc >= 0x2500 && wc < 0x25a8) + c = cp850_page25[wc-0x2500]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp860.h b/graf2d/win32gdk/gdk/src/iconv/cp860.h new file mode 100644 index 00000000000..2cca2f12ff9 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp860.h @@ -0,0 +1,149 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP860 + */ + +static const unsigned short cp860_2uni[128] = { + /* 0x80 */ + 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e3, 0x00e0, 0x00c1, 0x00e7, + 0x00ea, 0x00ca, 0x00e8, 0x00cd, 0x00d4, 0x00ec, 0x00c3, 0x00c2, + /* 0x90 */ + 0x00c9, 0x00c0, 0x00c8, 0x00f4, 0x00f5, 0x00f2, 0x00da, 0x00f9, + 0x00cc, 0x00d5, 0x00dc, 0x00a2, 0x00a3, 0x00d9, 0x20a7, 0x00d3, + /* 0xa0 */ + 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, + 0x00bf, 0x00d2, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, + /* 0xb0 */ + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, + 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, + /* 0xc0 */ + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, + /* 0xd0 */ + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, + 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + /* 0xe0 */ + 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, + 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, + /* 0xf0 */ + 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, + 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, +}; + +static int +cp860_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) cp860_2uni[c-0x80]; + return 1; +} + +static const unsigned char cp860_page00[96] = { + 0xff, 0xad, 0x9b, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0xa6, 0xae, 0xaa, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0xf8, 0xf1, 0xfd, 0x00, 0x00, 0xe6, 0x00, 0xfa, /* 0xb0-0xb7 */ + 0x00, 0x00, 0xa7, 0xaf, 0xac, 0xab, 0x00, 0xa8, /* 0xb8-0xbf */ + 0x91, 0x86, 0x8f, 0x8e, 0x00, 0x00, 0x00, 0x80, /* 0xc0-0xc7 */ + 0x92, 0x90, 0x89, 0x00, 0x98, 0x8b, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0xa5, 0xa9, 0x9f, 0x8c, 0x99, 0x00, 0x00, /* 0xd0-0xd7 */ + 0x00, 0x9d, 0x96, 0x00, 0x9a, 0x00, 0x00, 0xe1, /* 0xd8-0xdf */ + 0x85, 0xa0, 0x83, 0x84, 0x00, 0x00, 0x00, 0x87, /* 0xe0-0xe7 */ + 0x8a, 0x82, 0x88, 0x00, 0x8d, 0xa1, 0x00, 0x00, /* 0xe8-0xef */ + 0x00, 0xa4, 0x95, 0xa2, 0x93, 0x94, 0x00, 0xf6, /* 0xf0-0xf7 */ + 0x00, 0x97, 0xa3, 0x00, 0x81, 0x00, 0x00, 0x00, /* 0xf8-0xff */ +}; +static const unsigned char cp860_page03[56] = { + 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0xe9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0xe8, 0x00, /* 0xa0-0xa7 */ + 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0x00, 0xe0, 0x00, 0x00, 0xeb, 0xee, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ +}; +static const unsigned char cp860_page22[80] = { + 0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0xec, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ +}; +static const unsigned char cp860_page25[168] = { + 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, /* 0x50-0x57 */ + 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, /* 0x58-0x5f */ + 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, /* 0x60-0x67 */ + 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0xdb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0xde, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ +}; + +static int +cp860_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0100) + c = cp860_page00[wc-0x00a0]; + else if (wc >= 0x0390 && wc < 0x03c8) + c = cp860_page03[wc-0x0390]; + else if (wc == 0x207f) + c = 0xfc; + else if (wc == 0x20a7) + c = 0x9e; + else if (wc >= 0x2218 && wc < 0x2268) + c = cp860_page22[wc-0x2218]; + else if (wc >= 0x2320 && wc < 0x2322) + c = wc-0x222c; + else if (wc >= 0x2500 && wc < 0x25a8) + c = cp860_page25[wc-0x2500]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp861.h b/graf2d/win32gdk/gdk/src/iconv/cp861.h new file mode 100644 index 00000000000..07bcf5f2d8a --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp861.h @@ -0,0 +1,156 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP861 + */ + +static const unsigned short cp861_2uni[128] = { + /* 0x80 */ + 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, + 0x00ea, 0x00eb, 0x00e8, 0x00d0, 0x00f0, 0x00de, 0x00c4, 0x00c5, + /* 0x90 */ + 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00fe, 0x00fb, 0x00dd, + 0x00fd, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x20a7, 0x0192, + /* 0xa0 */ + 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00c1, 0x00cd, 0x00d3, 0x00da, + 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, + /* 0xb0 */ + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, + 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, + /* 0xc0 */ + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, + /* 0xd0 */ + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, + 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + /* 0xe0 */ + 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, + 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, + /* 0xf0 */ + 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, + 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, +}; + +static int +cp861_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) cp861_2uni[c-0x80]; + return 1; +} + +static const unsigned char cp861_page00[96] = { + 0xff, 0xad, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0xae, 0xaa, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0xf8, 0xf1, 0xfd, 0x00, 0x00, 0xe6, 0x00, 0xfa, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0xaf, 0xac, 0xab, 0x00, 0xa8, /* 0xb8-0xbf */ + 0x00, 0xa4, 0x00, 0x00, 0x8e, 0x8f, 0x92, 0x80, /* 0xc0-0xc7 */ + 0x00, 0x90, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, /* 0xc8-0xcf */ + 0x8b, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x99, 0x00, /* 0xd0-0xd7 */ + 0x9d, 0x00, 0xa7, 0x00, 0x9a, 0x97, 0x8d, 0xe1, /* 0xd8-0xdf */ + 0x85, 0xa0, 0x83, 0x00, 0x84, 0x86, 0x91, 0x87, /* 0xe0-0xe7 */ + 0x8a, 0x82, 0x88, 0x89, 0x00, 0xa1, 0x00, 0x00, /* 0xe8-0xef */ + 0x8c, 0x00, 0x00, 0xa2, 0x93, 0x00, 0x94, 0xf6, /* 0xf0-0xf7 */ + 0x9b, 0x00, 0xa3, 0x96, 0x81, 0x98, 0x95, 0x00, /* 0xf8-0xff */ +}; +static const unsigned char cp861_page03[56] = { + 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0xe9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0xe8, 0x00, /* 0xa0-0xa7 */ + 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0x00, 0xe0, 0x00, 0x00, 0xeb, 0xee, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ +}; +static const unsigned char cp861_page22[80] = { + 0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0xec, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ +}; +static const unsigned char cp861_page23[24] = { + 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0xf4, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ +}; +static const unsigned char cp861_page25[168] = { + 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, /* 0x50-0x57 */ + 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, /* 0x58-0x5f */ + 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, /* 0x60-0x67 */ + 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0xdb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0xde, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ +}; + +static int +cp861_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0100) + c = cp861_page00[wc-0x00a0]; + else if (wc == 0x0192) + c = 0x9f; + else if (wc >= 0x0390 && wc < 0x03c8) + c = cp861_page03[wc-0x0390]; + else if (wc == 0x207f) + c = 0xfc; + else if (wc == 0x20a7) + c = 0x9e; + else if (wc >= 0x2218 && wc < 0x2268) + c = cp861_page22[wc-0x2218]; + else if (wc >= 0x2310 && wc < 0x2328) + c = cp861_page23[wc-0x2310]; + else if (wc >= 0x2500 && wc < 0x25a8) + c = cp861_page25[wc-0x2500]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp862.h b/graf2d/win32gdk/gdk/src/iconv/cp862.h new file mode 100644 index 00000000000..623fc4d5fa5 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp862.h @@ -0,0 +1,155 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP862 + */ + +static const unsigned short cp862_2uni[128] = { + /* 0x80 */ + 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, + 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, + /* 0x90 */ + 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, + 0x05e8, 0x05e9, 0x05ea, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192, + /* 0xa0 */ + 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, + 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, + /* 0xb0 */ + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, + 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, + /* 0xc0 */ + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, + /* 0xd0 */ + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, + 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + /* 0xe0 */ + 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, + 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, + /* 0xf0 */ + 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, + 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, +}; + +static int +cp862_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) cp862_2uni[c-0x80]; + return 1; +} + +static const unsigned char cp862_page00[96] = { + 0xff, 0xad, 0x9b, 0x9c, 0x00, 0x9d, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0xa6, 0xae, 0xaa, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0xf8, 0xf1, 0xfd, 0x00, 0x00, 0xe6, 0x00, 0xfa, /* 0xb0-0xb7 */ + 0x00, 0x00, 0xa7, 0xaf, 0xac, 0xab, 0x00, 0xa8, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0xa5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, /* 0xd8-0xdf */ + 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, /* 0xe8-0xef */ + 0x00, 0xa4, 0x00, 0xa2, 0x00, 0x00, 0x00, 0xf6, /* 0xf0-0xf7 */ + 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ +}; +static const unsigned char cp862_page03[56] = { + 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0xe9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0xe8, 0x00, /* 0xa0-0xa7 */ + 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0x00, 0xe0, 0x00, 0x00, 0xeb, 0xee, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ +}; +static const unsigned char cp862_page22[80] = { + 0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0xec, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ +}; +static const unsigned char cp862_page25[168] = { + 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, /* 0x50-0x57 */ + 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, /* 0x58-0x5f */ + 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, /* 0x60-0x67 */ + 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0xdb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0xde, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ +}; + +static int +cp862_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0100) + c = cp862_page00[wc-0x00a0]; + else if (wc == 0x0192) + c = 0x9f; + else if (wc >= 0x0390 && wc < 0x03c8) + c = cp862_page03[wc-0x0390]; + else if (wc >= 0x05d0 && wc < 0x05eb) + c = wc-0x0550; + else if (wc == 0x207f) + c = 0xfc; + else if (wc == 0x20a7) + c = 0x9e; + else if (wc >= 0x2218 && wc < 0x2268) + c = cp862_page22[wc-0x2218]; + else if (wc == 0x2310) + c = 0xa9; + else if (wc >= 0x2320 && wc < 0x2322) + c = wc-0x222c; + else if (wc >= 0x2500 && wc < 0x25a8) + c = cp862_page25[wc-0x2500]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp863.h b/graf2d/win32gdk/gdk/src/iconv/cp863.h new file mode 100644 index 00000000000..5890ad423d5 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp863.h @@ -0,0 +1,156 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP863 + */ + +static const unsigned short cp863_2uni[128] = { + /* 0x80 */ + 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00c2, 0x00e0, 0x00b6, 0x00e7, + 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x2017, 0x00c0, 0x00a7, + /* 0x90 */ + 0x00c9, 0x00c8, 0x00ca, 0x00f4, 0x00cb, 0x00cf, 0x00fb, 0x00f9, + 0x00a4, 0x00d4, 0x00dc, 0x00a2, 0x00a3, 0x00d9, 0x00db, 0x0192, + /* 0xa0 */ + 0x00a6, 0x00b4, 0x00f3, 0x00fa, 0x00a8, 0x00b8, 0x00b3, 0x00af, + 0x00ce, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00be, 0x00ab, 0x00bb, + /* 0xb0 */ + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, + 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, + /* 0xc0 */ + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, + /* 0xd0 */ + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, + 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + /* 0xe0 */ + 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, + 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, + /* 0xf0 */ + 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, + 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, +}; + +static int +cp863_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) cp863_2uni[c-0x80]; + return 1; +} + +static const unsigned char cp863_page00[96] = { + 0xff, 0x00, 0x9b, 0x9c, 0x98, 0x00, 0xa0, 0x8f, /* 0xa0-0xa7 */ + 0xa4, 0x00, 0x00, 0xae, 0xaa, 0x00, 0x00, 0xa7, /* 0xa8-0xaf */ + 0xf8, 0xf1, 0xfd, 0xa6, 0xa1, 0xe6, 0x86, 0xfa, /* 0xb0-0xb7 */ + 0xa5, 0x00, 0x00, 0xaf, 0xac, 0xab, 0xad, 0x00, /* 0xb8-0xbf */ + 0x8e, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0xc0-0xc7 */ + 0x91, 0x90, 0x92, 0x94, 0x00, 0x00, 0xa8, 0x95, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0x00, 0x9d, 0x00, 0x9e, 0x9a, 0x00, 0x00, 0xe1, /* 0xd8-0xdf */ + 0x85, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x87, /* 0xe0-0xe7 */ + 0x8a, 0x82, 0x88, 0x89, 0x00, 0x00, 0x8c, 0x8b, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0xa2, 0x93, 0x00, 0x00, 0xf6, /* 0xf0-0xf7 */ + 0x00, 0x97, 0xa3, 0x96, 0x81, 0x00, 0x00, 0x00, /* 0xf8-0xff */ +}; +static const unsigned char cp863_page03[56] = { + 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0xe9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0xe8, 0x00, /* 0xa0-0xa7 */ + 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0x00, 0xe0, 0x00, 0x00, 0xeb, 0xee, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ +}; +static const unsigned char cp863_page22[80] = { + 0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0xec, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ +}; +static const unsigned char cp863_page23[24] = { + 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0xf4, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ +}; +static const unsigned char cp863_page25[168] = { + 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, /* 0x50-0x57 */ + 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, /* 0x58-0x5f */ + 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, /* 0x60-0x67 */ + 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0xdb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0xde, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ +}; + +static int +cp863_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0100) + c = cp863_page00[wc-0x00a0]; + else if (wc == 0x0192) + c = 0x9f; + else if (wc >= 0x0390 && wc < 0x03c8) + c = cp863_page03[wc-0x0390]; + else if (wc == 0x2017) + c = 0x8d; + else if (wc == 0x207f) + c = 0xfc; + else if (wc >= 0x2218 && wc < 0x2268) + c = cp863_page22[wc-0x2218]; + else if (wc >= 0x2310 && wc < 0x2328) + c = cp863_page23[wc-0x2310]; + else if (wc >= 0x2500 && wc < 0x25a8) + c = cp863_page25[wc-0x2500]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp864.h b/graf2d/win32gdk/gdk/src/iconv/cp864.h new file mode 100644 index 00000000000..a1d8c4a23fd --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp864.h @@ -0,0 +1,188 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP864 + */ + +static const unsigned short cp864_2uni_1[16] = { + /* 0x20 */ + 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x066a, 0x0026, 0x0027, + 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, +}; +static const unsigned short cp864_2uni_2[128] = { + /* 0x80 */ + 0x00b0, 0x00b7, 0x2219, 0x221a, 0x2592, 0x2500, 0x2502, 0x253c, + 0x2524, 0x252c, 0x251c, 0x2534, 0x2510, 0x250c, 0x2514, 0x2518, + /* 0x90 */ + 0x03b2, 0x221e, 0x03c6, 0x00b1, 0x00bd, 0x00bc, 0x2248, 0x00ab, + 0x00bb, 0xfef7, 0xfef8, 0xfffd, 0xfffd, 0xfefb, 0xfefc, 0xfffd, + /* 0xa0 */ + 0x00a0, 0x00ad, 0xfe82, 0x00a3, 0x00a4, 0xfe84, 0xfffd, 0xfffd, + 0xfe8e, 0xfe8f, 0xfe95, 0xfe99, 0x060c, 0xfe9d, 0xfea1, 0xfea5, + /* 0xb0 */ + 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, + 0x0668, 0x0669, 0xfed1, 0x061b, 0xfeb1, 0xfeb5, 0xfeb9, 0x061f, + /* 0xc0 */ + 0x00a2, 0xfe80, 0xfe81, 0xfe83, 0xfe85, 0xfeca, 0xfe8b, 0xfe8d, + 0xfe91, 0xfe93, 0xfe97, 0xfe9b, 0xfe9f, 0xfea3, 0xfea7, 0xfea9, + /* 0xd0 */ + 0xfeab, 0xfead, 0xfeaf, 0xfeb3, 0xfeb7, 0xfebb, 0xfebf, 0xfec1, + 0xfec5, 0xfecb, 0xfecf, 0x00a6, 0x00ac, 0x00f7, 0x00d7, 0xfec9, + /* 0xe0 */ + 0x0640, 0xfed3, 0xfed7, 0xfedb, 0xfedf, 0xfee3, 0xfee7, 0xfeeb, + 0xfeed, 0xfeef, 0xfef3, 0xfebd, 0xfecc, 0xfece, 0xfecd, 0xfee1, + /* 0xf0 */ + 0xfe7d, 0x0651, 0xfee5, 0xfee9, 0xfeec, 0xfef0, 0xfef2, 0xfed0, + 0xfed5, 0xfef5, 0xfef6, 0xfedd, 0xfed9, 0xfef1, 0x25a0, 0xfffd, +}; + +static int +cp864_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x20) { + *pwc = (ucs4_t) c; + return 1; + } + else if (c < 0x30) { + *pwc = (ucs4_t) cp864_2uni_1[c-0x20]; + return 1; + } + else if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = cp864_2uni_2[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char cp864_page00[8] = { + 0x20, 0x21, 0x22, 0x23, 0x24, 0x00, 0x26, 0x27, /* 0x20-0x27 */ +}; +static const unsigned char cp864_page00_1[88] = { + 0xa0, 0x00, 0xc0, 0xa3, 0xa4, 0x00, 0xdb, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x97, 0xdc, 0xa1, 0x00, 0x00, /* 0xa8-0xaf */ + 0x80, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0x98, 0x95, 0x94, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdd, /* 0xf0-0xf7 */ +}; +static const unsigned char cp864_page06[104] = { + 0x00, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xbf, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x60-0x67 */ + 0xb8, 0xb9, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ +}; +static const unsigned char cp864_page22[56] = { + 0x00, 0x82, 0x83, 0x00, 0x00, 0x00, 0x91, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ +}; +static const unsigned char cp864_page25[64] = { + 0x85, 0x00, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x8c, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x8f, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, /* 0x38-0x3f */ +}; +static const unsigned char cp864_pagefe[136] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, /* 0x78-0x7f */ + 0xc1, 0xc2, 0xa2, 0xc3, 0xa5, 0xc4, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0xc6, 0x00, 0xc7, 0xa8, 0xa9, /* 0x88-0x8f */ + 0x00, 0xc8, 0x00, 0xc9, 0x00, 0xaa, 0x00, 0xca, /* 0x90-0x97 */ + 0x00, 0xab, 0x00, 0xcb, 0x00, 0xad, 0x00, 0xcc, /* 0x98-0x9f */ + 0x00, 0xae, 0x00, 0xcd, 0x00, 0xaf, 0x00, 0xce, /* 0xa0-0xa7 */ + 0x00, 0xcf, 0x00, 0xd0, 0x00, 0xd1, 0x00, 0xd2, /* 0xa8-0xaf */ + 0x00, 0xbc, 0x00, 0xd3, 0x00, 0xbd, 0x00, 0xd4, /* 0xb0-0xb7 */ + 0x00, 0xbe, 0x00, 0xd5, 0x00, 0xeb, 0x00, 0xd6, /* 0xb8-0xbf */ + 0x00, 0xd7, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0xdf, 0xc5, 0xd9, 0xec, 0xee, 0xed, 0xda, /* 0xc8-0xcf */ + 0xf7, 0xba, 0x00, 0xe1, 0x00, 0xf8, 0x00, 0xe2, /* 0xd0-0xd7 */ + 0x00, 0xfc, 0x00, 0xe3, 0x00, 0xfb, 0x00, 0xe4, /* 0xd8-0xdf */ + 0x00, 0xef, 0x00, 0xe5, 0x00, 0xf2, 0x00, 0xe6, /* 0xe0-0xe7 */ + 0x00, 0xf3, 0x00, 0xe7, 0xf4, 0xe8, 0x00, 0xe9, /* 0xe8-0xef */ + 0xf5, 0xfd, 0xf6, 0xea, 0x00, 0xf9, 0xfa, 0x99, /* 0xf0-0xf7 */ + 0x9a, 0x00, 0x00, 0x9d, 0x9e, 0x00, 0x00, 0x00, /* 0xf8-0xff */ +}; + +static int +cp864_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0020) { + *r = wc; + return 1; + } + else if (wc >= 0x0020 && wc < 0x0028) + c = cp864_page00[wc-0x0020]; + else if (wc >= 0x0028 && wc < 0x0080) + c = wc; + else if (wc >= 0x00a0 && wc < 0x00f8) + c = cp864_page00_1[wc-0x00a0]; + else if (wc == 0x03b2) + c = 0x90; + else if (wc == 0x03c6) + c = 0x92; + else if (wc >= 0x0608 && wc < 0x0670) + c = cp864_page06[wc-0x0608]; + else if (wc >= 0x2218 && wc < 0x2250) + c = cp864_page22[wc-0x2218]; + else if (wc >= 0x2500 && wc < 0x2540) + c = cp864_page25[wc-0x2500]; + else if (wc == 0x2592) + c = 0x84; + else if (wc == 0x25a0) + c = 0xfe; + else if (wc >= 0xfe78 && wc < 0xff00) + c = cp864_pagefe[wc-0xfe78]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp865.h b/graf2d/win32gdk/gdk/src/iconv/cp865.h new file mode 100644 index 00000000000..3944916d9fd --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp865.h @@ -0,0 +1,156 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP865 + */ + +static const unsigned short cp865_2uni[128] = { + /* 0x80 */ + 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, + 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, + /* 0x90 */ + 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, + 0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x20a7, 0x0192, + /* 0xa0 */ + 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, + 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00a4, + /* 0xb0 */ + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, + 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, + /* 0xc0 */ + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, + /* 0xd0 */ + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, + 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + /* 0xe0 */ + 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, + 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, + /* 0xf0 */ + 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, + 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, +}; + +static int +cp865_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) cp865_2uni[c-0x80]; + return 1; +} + +static const unsigned char cp865_page00[96] = { + 0xff, 0xad, 0x00, 0x9c, 0xaf, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0xa6, 0xae, 0xaa, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0xf8, 0xf1, 0xfd, 0x00, 0x00, 0xe6, 0x00, 0xfa, /* 0xb0-0xb7 */ + 0x00, 0x00, 0xa7, 0x00, 0xac, 0xab, 0x00, 0xa8, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x8f, 0x92, 0x80, /* 0xc0-0xc7 */ + 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0xa5, 0x00, 0x00, 0x00, 0x00, 0x99, 0x00, /* 0xd0-0xd7 */ + 0x9d, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0xe1, /* 0xd8-0xdf */ + 0x85, 0xa0, 0x83, 0x00, 0x84, 0x86, 0x91, 0x87, /* 0xe0-0xe7 */ + 0x8a, 0x82, 0x88, 0x89, 0x8d, 0xa1, 0x8c, 0x8b, /* 0xe8-0xef */ + 0x00, 0xa4, 0x95, 0xa2, 0x93, 0x00, 0x94, 0xf6, /* 0xf0-0xf7 */ + 0x9b, 0x97, 0xa3, 0x96, 0x81, 0x00, 0x00, 0x98, /* 0xf8-0xff */ +}; +static const unsigned char cp865_page03[56] = { + 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0xe9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0xe8, 0x00, /* 0xa0-0xa7 */ + 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0x00, 0xe0, 0x00, 0x00, 0xeb, 0xee, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ +}; +static const unsigned char cp865_page22[80] = { + 0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0xec, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ +}; +static const unsigned char cp865_page23[24] = { + 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0xf4, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ +}; +static const unsigned char cp865_page25[168] = { + 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, /* 0x50-0x57 */ + 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, /* 0x58-0x5f */ + 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, /* 0x60-0x67 */ + 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0xdb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0xde, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ +}; + +static int +cp865_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0100) + c = cp865_page00[wc-0x00a0]; + else if (wc == 0x0192) + c = 0x9f; + else if (wc >= 0x0390 && wc < 0x03c8) + c = cp865_page03[wc-0x0390]; + else if (wc == 0x207f) + c = 0xfc; + else if (wc == 0x20a7) + c = 0x9e; + else if (wc >= 0x2218 && wc < 0x2268) + c = cp865_page22[wc-0x2218]; + else if (wc >= 0x2310 && wc < 0x2328) + c = cp865_page23[wc-0x2310]; + else if (wc >= 0x2500 && wc < 0x25a8) + c = cp865_page25[wc-0x2500]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp866.h b/graf2d/win32gdk/gdk/src/iconv/cp866.h new file mode 100644 index 00000000000..0aaa2169f04 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp866.h @@ -0,0 +1,125 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP866 + */ + +static const unsigned short cp866_2uni[80] = { + /* 0xb0 */ + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, + 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, + /* 0xc0 */ + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, + /* 0xd0 */ + 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, + 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + /* 0xe0 */ + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, + 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, + /* 0xf0 */ + 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040e, 0x045e, + 0x00b0, 0x2219, 0x00b7, 0x221a, 0x2116, 0x00a4, 0x25a0, 0x00a0, +}; + +static int +cp866_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) + *pwc = (ucs4_t) c; + else if (c < 0xb0) + *pwc = (ucs4_t) c + 0x0390; + else + *pwc = (ucs4_t) cp866_2uni[c-0xb0]; + return 1; +} + +static const unsigned char cp866_page00[24] = { + 0xff, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, /* 0xb0-0xb7 */ +}; +static const unsigned char cp866_page04[96] = { + 0x00, 0xf0, 0x00, 0x00, 0xf2, 0x00, 0x00, 0xf4, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0x00, /* 0x08-0x0f */ + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x10-0x17 */ + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /* 0x18-0x1f */ + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x20-0x27 */ + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x28-0x2f */ + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x30-0x37 */ + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0x38-0x3f */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */ + 0x00, 0xf1, 0x00, 0x00, 0xf3, 0x00, 0x00, 0xf5, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x00, /* 0x58-0x5f */ +}; +static const unsigned char cp866_page22[8] = { + 0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ +}; +static const unsigned char cp866_page25[168] = { + 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, /* 0x50-0x57 */ + 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, /* 0x58-0x5f */ + 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, /* 0x60-0x67 */ + 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0xdb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0xde, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ +}; + +static int +cp866_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00b8) + c = cp866_page00[wc-0x00a0]; + else if (wc >= 0x0400 && wc < 0x0460) + c = cp866_page04[wc-0x0400]; + else if (wc == 0x2116) + c = 0xfc; + else if (wc >= 0x2218 && wc < 0x2220) + c = cp866_page22[wc-0x2218]; + else if (wc >= 0x2500 && wc < 0x25a8) + c = cp866_page25[wc-0x2500]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp869.h b/graf2d/win32gdk/gdk/src/iconv/cp869.h new file mode 100644 index 00000000000..8e839d2cfa8 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp869.h @@ -0,0 +1,137 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP869 + */ + +static const unsigned short cp869_2uni[128] = { + /* 0x80 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0386, 0xfffd, + 0x00b7, 0x00ac, 0x00a6, 0x2018, 0x2019, 0x0388, 0x2015, 0x0389, + /* 0x90 */ + 0x038a, 0x03aa, 0x038c, 0xfffd, 0xfffd, 0x038e, 0x03ab, 0x00a9, + 0x038f, 0x00b2, 0x00b3, 0x03ac, 0x00a3, 0x03ad, 0x03ae, 0x03af, + /* 0xa0 */ + 0x03ca, 0x0390, 0x03cc, 0x03cd, 0x0391, 0x0392, 0x0393, 0x0394, + 0x0395, 0x0396, 0x0397, 0x00bd, 0x0398, 0x0399, 0x00ab, 0x00bb, + /* 0xb0 */ + 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039a, 0x039b, 0x039c, + 0x039d, 0x2563, 0x2551, 0x2557, 0x255d, 0x039e, 0x039f, 0x2510, + /* 0xc0 */ + 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x03a0, 0x03a1, + 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x03a3, + /* 0xd0 */ + 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03b1, 0x03b2, + 0x03b3, 0x2518, 0x250c, 0x2588, 0x2584, 0x03b4, 0x03b5, 0x2580, + /* 0xe0 */ + 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, + 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c2, 0x03c4, 0x0384, + /* 0xf0 */ + 0x00ad, 0x00b1, 0x03c5, 0x03c6, 0x03c7, 0x00a7, 0x03c8, 0x0385, + 0x00b0, 0x00a8, 0x03c9, 0x03cb, 0x03b0, 0x03ce, 0x25a0, 0x00a0, +}; + +static int +cp869_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = cp869_2uni[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char cp869_page00[32] = { + 0xff, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x8a, 0xf5, /* 0xa0-0xa7 */ + 0xf9, 0x97, 0x00, 0xae, 0x89, 0xf0, 0x00, 0x00, /* 0xa8-0xaf */ + 0xf8, 0xf1, 0x99, 0x9a, 0x00, 0x00, 0x00, 0x88, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0xaf, 0x00, 0xab, 0x00, 0x00, /* 0xb8-0xbf */ +}; +static const unsigned char cp869_page03[80] = { + 0x00, 0x00, 0x00, 0x00, 0xef, 0xf7, 0x86, 0x00, /* 0x80-0x87 */ + 0x8d, 0x8f, 0x90, 0x00, 0x92, 0x00, 0x95, 0x98, /* 0x88-0x8f */ + 0xa1, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, /* 0x90-0x97 */ + 0xac, 0xad, 0xb5, 0xb6, 0xb7, 0xb8, 0xbd, 0xbe, /* 0x98-0x9f */ + 0xc6, 0xc7, 0x00, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, /* 0xa0-0xa7 */ + 0xd4, 0xd5, 0x91, 0x96, 0x9b, 0x9d, 0x9e, 0x9f, /* 0xa8-0xaf */ + 0xfc, 0xd6, 0xd7, 0xd8, 0xdd, 0xde, 0xe0, 0xe1, /* 0xb0-0xb7 */ + 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, /* 0xb8-0xbf */ + 0xea, 0xeb, 0xed, 0xec, 0xee, 0xf2, 0xf3, 0xf4, /* 0xc0-0xc7 */ + 0xf6, 0xfa, 0xa0, 0xfb, 0xa2, 0xa3, 0xfd, 0x00, /* 0xc8-0xcf */ +}; +static const unsigned char cp869_page20[16] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, /* 0x10-0x17 */ + 0x8b, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ +}; +static const unsigned char cp869_page25[168] = { + 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xcd, 0xba, 0x00, 0x00, 0xc9, 0x00, 0x00, 0xbb, /* 0x50-0x57 */ + 0x00, 0x00, 0xc8, 0x00, 0x00, 0xbc, 0x00, 0x00, /* 0x58-0x5f */ + 0xcc, 0x00, 0x00, 0xb9, 0x00, 0x00, 0xcb, 0x00, /* 0x60-0x67 */ + 0x00, 0xca, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ +}; + +static int +cp869_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00c0) + c = cp869_page00[wc-0x00a0]; + else if (wc >= 0x0380 && wc < 0x03d0) + c = cp869_page03[wc-0x0380]; + else if (wc >= 0x2010 && wc < 0x2020) + c = cp869_page20[wc-0x2010]; + else if (wc >= 0x2500 && wc < 0x25a8) + c = cp869_page25[wc-0x2500]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp874.h b/graf2d/win32gdk/gdk/src/iconv/cp874.h new file mode 100644 index 00000000000..6374dd7d05c --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp874.h @@ -0,0 +1,111 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP874 + */ + +static const unsigned short cp874_2uni[128] = { + /* 0x80 */ + 0x20ac, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2026, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x90 */ + 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0xa0 */ + 0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07, + 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f, + /* 0xb0 */ + 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17, + 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f, + /* 0xc0 */ + 0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, + 0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f, + /* 0xd0 */ + 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37, + 0x0e38, 0x0e39, 0x0e3a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0e3f, + /* 0xe0 */ + 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47, + 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4e, 0x0e4f, + /* 0xf0 */ + 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, + 0x0e58, 0x0e59, 0x0e5a, 0x0e5b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, +}; + +static int +cp874_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = cp874_2uni[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char cp874_page0e[96] = { + 0x00, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x00-0x07 */ + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0x08-0x0f */ + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x10-0x17 */ + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0x18-0x1f */ + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */ + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */ + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */ + 0xd8, 0xd9, 0xda, 0x00, 0x00, 0x00, 0x00, 0xdf, /* 0x38-0x3f */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x50-0x57 */ + 0xf8, 0xf9, 0xfa, 0xfb, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ +}; +static const unsigned char cp874_page20[24] = { + 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x91, 0x92, 0x00, 0x00, 0x93, 0x94, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ +}; + +static int +cp874_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc == 0x00a0) + c = 0xa0; + else if (wc >= 0x0e00 && wc < 0x0e60) + c = cp874_page0e[wc-0x0e00]; + else if (wc >= 0x2010 && wc < 0x2028) + c = cp874_page20[wc-0x2010]; + else if (wc == 0x20ac) + c = 0x80; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp922.h b/graf2d/win32gdk/gdk/src/iconv/cp922.h new file mode 100644 index 00000000000..ca661b3862f --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp922.h @@ -0,0 +1,99 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP922 + */ + +static const unsigned short cp922_2uni_1[16] = { + /* 0xa0 */ + 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, + 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x203e, +}; +static const unsigned short cp922_2uni_2[16] = { + /* 0xd0 */ + 0x0160, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, + 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x017d, 0x00df, +}; +static const unsigned short cp922_2uni_3[16] = { + /* 0xf0 */ + 0x0161, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, + 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x017e, 0x00ff, +}; + +static int +cp922_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0xa0) + *pwc = (ucs4_t) c; + else if (c < 0xb0) + *pwc = (ucs4_t) cp922_2uni_1[c-0xa0]; + else if (c < 0xd0) + *pwc = (ucs4_t) c; + else if (c < 0xe0) + *pwc = (ucs4_t) cp922_2uni_2[c-0xd0]; + else if (c < 0xf0) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) cp922_2uni_3[c-0xf0]; + return 1; +} + +static const unsigned char cp922_page00[88] = { + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0x00, /* 0xa8-0xaf */ + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */ + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0xb8-0xbf */ + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0xc0-0xc7 */ + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */ + 0x00, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xd0-0xd7 */ + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0x00, 0xdf, /* 0xd8-0xdf */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xe0-0xe7 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xe8-0xef */ + 0x00, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xf0-0xf7 */ + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0x00, 0xff, /* 0xf8-0xff */ +}; +static const unsigned char cp922_page01[32] = { + 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xfe, 0x00, /* 0x78-0x7f */ +}; + +static int +cp922_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x00a8) { + *r = wc; + return 1; + } + else if (wc >= 0x00a8 && wc < 0x0100) + c = cp922_page00[wc-0x00a8]; + else if (wc >= 0x0160 && wc < 0x0180) + c = cp922_page01[wc-0x0160]; + else if (wc == 0x203e) + c = 0xaf; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp932.h b/graf2d/win32gdk/gdk/src/iconv/cp932.h new file mode 100644 index 00000000000..6534cd0297d --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp932.h @@ -0,0 +1,240 @@ +/* + * Copyright (C) 1999-2002, 2005 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP932 + */ + +/* + * Microsoft CP932 is a slightly extended version of SHIFT_JIS. + * The differences between the EASTASIA/JIS/SHIFTJIS.TXT and the + * VENDORS/MICSFT/WINDOWS/CP932.TXT tables found on ftp.unicode.org are + * as follows: + * + * 1. CP932 uses ASCII, not JISX0201 Roman. + * + * 2. Some characters in the JISX0208 range are defined differently: + * + * code SHIFTJIS.TXT CP932.TXT + * 0x815F 0x005C # REVERSE SOLIDUS 0xFF3C # FULLWIDTH REVERSE SOLIDUS + * 0x8160 0x301C # WAVE DASH 0xFF5E # FULLWIDTH TILDE + * 0x8161 0x2016 # DOUBLE VERTICAL LINE 0x2225 # PARALLEL TO + * 0x817C 0x2212 # MINUS SIGN 0xFF0D # FULLWIDTH HYPHEN-MINUS + * 0x8191 0x00A2 # CENT SIGN 0xFFE0 # FULLWIDTH CENT SIGN + * 0x8192 0x00A3 # POUND SIGN 0xFFE1 # FULLWIDTH POUND SIGN + * 0x81CA 0x00AC # NOT SIGN 0xFFE2 # FULLWIDTH NOT SIGN + * + * We don't implement the latter 6 of these changes, only the first one. + * SHIFTJIS.TXT makes more sense. However, as a compromise with user + * expectation, we implement the middle 5 of these changes in the + * Unicode to CP932 direction. We don't implement the last one at all, + * because it would collide with the mapping of 0xFA54. + * + * 3. A few new rows. See cp932ext.h. + * + * Many variants of CP932 (in GNU libc, JDK, OSF/1, Windows-2000, ICU) also + * add: + * + * 4. Private area mappings: + * + * code Unicode + * 0x{F0..F9}{40..7E,80..FC} U+E000..U+E757 + * + * We add them too because, although there are backward compatibility problems + * when a character from a private area is moved to an official Unicode code + * point, they are useful for some people in practice. + */ + +#include "cp932ext.h" + +/* + Conversion between SJIS codes (s1,s2) and JISX0208 codes (c1,c2): + Example. (s1,s2) = 0x8140, (c1,c2) = 0x2121. + 0x81 <= s1 <= 0x9F || 0xE0 <= s1 <= 0xEA, + 0x40 <= s2 <= 0x7E || 0x80 <= s2 <= 0xFC, + 0x21 <= c1 <= 0x74, 0x21 <= c2 <= 0x7E. + Invariant: + 94*2*(s1 < 0xE0 ? s1-0x81 : s1-0xC1) + (s2 < 0x80 ? s2-0x40 : s2-0x41) + = 94*(c1-0x21)+(c2-0x21) + Conversion (s1,s2) -> (c1,c2): + t1 := (s1 < 0xE0 ? s1-0x81 : s1-0xC1) + t2 := (s2 < 0x80 ? s2-0x40 : s2-0x41) + c1 := 2*t1 + (t2 < 0x5E ? 0 : 1) + 0x21 + c2 := (t2 < 0x5E ? t2 : t2-0x5E) + 0x21 + Conversion (c1,c2) -> (s1,s2): + t1 := (c1 - 0x21) >> 1 + t2 := ((c1 - 0x21) & 1) * 0x5E + (c2 - 0x21) + s1 := (t1 < 0x1F ? t1+0x81 : t1+0xC1) + s2 := (t2 < 0x3F ? t2+0x40 : t2+0x41) + */ + +static int +cp932_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) + return ascii_mbtowc(conv,pwc,s,n); + else if (c >= 0xa1 && c <= 0xdf) + return jisx0201_mbtowc(conv,pwc,s,n); + else { + unsigned char s1, s2; + s1 = c; + if ((s1 >= 0x81 && s1 <= 0x9f && s1 != 0x87) || (s1 >= 0xe0 && s1 <= 0xea)) { + if (n < 2) + return RET_TOOFEW(0); + s2 = s[1]; + if ((s2 >= 0x40 && s2 <= 0x7e) || (s2 >= 0x80 && s2 <= 0xfc)) { + unsigned char t1 = (s1 < 0xe0 ? s1-0x81 : s1-0xc1); + unsigned char t2 = (s2 < 0x80 ? s2-0x40 : s2-0x41); + unsigned char buf[2]; + buf[0] = 2*t1 + (t2 < 0x5e ? 0 : 1) + 0x21; + buf[1] = (t2 < 0x5e ? t2 : t2-0x5e) + 0x21; + return jisx0208_mbtowc(conv,pwc,buf,2); + } + } else if ((s1 == 0x87) || (s1 >= 0xed && s1 <= 0xee) || (s1 >= 0xfa)) { + if (n < 2) + return RET_TOOFEW(0); + return cp932ext_mbtowc(conv,pwc,s,2); + } else if (s1 >= 0xf0 && s1 <= 0xf9) { + /* User-defined range. See + * Ken Lunde's "CJKV Information Processing", table 4-66, p. 206. */ + if (n < 2) + return RET_TOOFEW(0); + s2 = s[1]; + if ((s2 >= 0x40 && s2 <= 0x7e) || (s2 >= 0x80 && s2 <= 0xfc)) { + *pwc = 0xe000 + 188*(s1 - 0xf0) + (s2 < 0x80 ? s2-0x40 : s2-0x41); + return 2; + } + } + return RET_ILSEQ; + } +} + +static int +cp932_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char buf[2]; + int ret; + + /* Try ASCII. */ + ret = ascii_wctomb(conv,buf,wc,1); + if (ret != RET_ILUNI) { + unsigned char c; + if (ret != 1) abort(); + c = buf[0]; + if (c < 0x80) { + r[0] = c; + return 1; + } + } + + /* Try JIS X 0201-1976 Katakana. */ + ret = jisx0201_wctomb(conv,buf,wc,1); + if (ret != RET_ILUNI) { + unsigned char c; + if (ret != 1) abort(); + c = buf[0]; + if (c >= 0xa1 && c <= 0xdf) { + r[0] = c; + return 1; + } + } + + /* Try JIS X 0208-1990. */ + ret = jisx0208_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + unsigned char c1, c2; + if (ret != 2) abort(); + if (n < 2) + return RET_TOOSMALL; + c1 = buf[0]; + c2 = buf[1]; + if ((c1 >= 0x21 && c1 <= 0x74) && (c2 >= 0x21 && c2 <= 0x7e)) { + unsigned char t1 = (c1 - 0x21) >> 1; + unsigned char t2 = (((c1 - 0x21) & 1) ? 0x5e : 0) + (c2 - 0x21); + r[0] = (t1 < 0x1f ? t1+0x81 : t1+0xc1); + r[1] = (t2 < 0x3f ? t2+0x40 : t2+0x41); + return 2; + } + } + + /* Try CP932 extensions. */ + ret = cp932ext_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (n < 2) + return RET_TOOSMALL; + r[0] = buf[0]; + r[1] = buf[1]; + return 2; + } + + /* User-defined range. See + * Ken Lunde's "CJKV Information Processing", table 4-66, p. 206. */ + if (wc >= 0xe000 && wc < 0xe758) { + unsigned char c1, c2; + if (n < 2) + return RET_TOOSMALL; + c1 = (unsigned int) (wc - 0xe000) / 188; + c2 = (unsigned int) (wc - 0xe000) % 188; + r[0] = c1+0xf0; + r[1] = (c2 < 0x3f ? c2+0x40 : c2+0x41); + return 2; + } + + /* Irreversible mappings. */ + if (wc == 0xff5e) { + if (n < 2) + return RET_TOOSMALL; + r[0] = 0x81; + r[1] = 0x60; + return 2; + } + if (wc == 0x2225) { + if (n < 2) + return RET_TOOSMALL; + r[0] = 0x81; + r[1] = 0x61; + return 2; + } + if (wc == 0xff0d) { + if (n < 2) + return RET_TOOSMALL; + r[0] = 0x81; + r[1] = 0x7c; + return 2; + } + if (wc == 0xffe0) { + if (n < 2) + return RET_TOOSMALL; + r[0] = 0x81; + r[1] = 0x91; + return 2; + } + if (wc == 0xffe1) { + if (n < 2) + return RET_TOOSMALL; + r[0] = 0x81; + r[1] = 0x92; + return 2; + } + + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp932ext.h b/graf2d/win32gdk/gdk/src/iconv/cp932ext.h new file mode 100644 index 00000000000..6f94c9a5cfb --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp932ext.h @@ -0,0 +1,709 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP932 extensions + */ + +static const unsigned short cp932ext_2uni_page87[92] = { + /* 0x87 */ + 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, + 0x2468, 0x2469, 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, + 0x2470, 0x2471, 0x2472, 0x2473, 0x2160, 0x2161, 0x2162, 0x2163, + 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, 0x2169, 0xfffd, 0x3349, + 0x3314, 0x3322, 0x334d, 0x3318, 0x3327, 0x3303, 0x3336, 0x3351, + 0x3357, 0x330d, 0x3326, 0x3323, 0x332b, 0x334a, 0x333b, 0x339c, + 0x339d, 0x339e, 0x338e, 0x338f, 0x33c4, 0x33a1, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x337b, 0x301d, + 0x301f, 0x2116, 0x33cd, 0x2121, 0x32a4, 0x32a5, 0x32a6, 0x32a7, + 0x32a8, 0x3231, 0x3232, 0x3239, 0x337e, 0x337d, 0x337c, 0x2252, + 0x2261, 0x222b, 0x222e, 0x2211, 0x221a, 0x22a5, 0x2220, 0x221f, + 0x22bf, 0x2235, 0x2229, 0x222a, +}; +static const unsigned short cp932ext_2uni_pageed[376] = { + /* 0xed */ + 0x7e8a, 0x891c, 0x9348, 0x9288, 0x84dc, 0x4fc9, 0x70bb, 0x6631, + 0x68c8, 0x92f9, 0x66fb, 0x5f45, 0x4e28, 0x4ee1, 0x4efc, 0x4f00, + 0x4f03, 0x4f39, 0x4f56, 0x4f92, 0x4f8a, 0x4f9a, 0x4f94, 0x4fcd, + 0x5040, 0x5022, 0x4fff, 0x501e, 0x5046, 0x5070, 0x5042, 0x5094, + 0x50f4, 0x50d8, 0x514a, 0x5164, 0x519d, 0x51be, 0x51ec, 0x5215, + 0x529c, 0x52a6, 0x52c0, 0x52db, 0x5300, 0x5307, 0x5324, 0x5372, + 0x5393, 0x53b2, 0x53dd, 0xfa0e, 0x549c, 0x548a, 0x54a9, 0x54ff, + 0x5586, 0x5759, 0x5765, 0x57ac, 0x57c8, 0x57c7, 0xfa0f, 0xfa10, + 0x589e, 0x58b2, 0x590b, 0x5953, 0x595b, 0x595d, 0x5963, 0x59a4, + 0x59ba, 0x5b56, 0x5bc0, 0x752f, 0x5bd8, 0x5bec, 0x5c1e, 0x5ca6, + 0x5cba, 0x5cf5, 0x5d27, 0x5d53, 0xfa11, 0x5d42, 0x5d6d, 0x5db8, + 0x5db9, 0x5dd0, 0x5f21, 0x5f34, 0x5f67, 0x5fb7, 0x5fde, 0x605d, + 0x6085, 0x608a, 0x60de, 0x60d5, 0x6120, 0x60f2, 0x6111, 0x6137, + 0x6130, 0x6198, 0x6213, 0x62a6, 0x63f5, 0x6460, 0x649d, 0x64ce, + 0x654e, 0x6600, 0x6615, 0x663b, 0x6609, 0x662e, 0x661e, 0x6624, + 0x6665, 0x6657, 0x6659, 0xfa12, 0x6673, 0x6699, 0x66a0, 0x66b2, + 0x66bf, 0x66fa, 0x670e, 0xf929, 0x6766, 0x67bb, 0x6852, 0x67c0, + 0x6801, 0x6844, 0x68cf, 0xfa13, 0x6968, 0xfa14, 0x6998, 0x69e2, + 0x6a30, 0x6a6b, 0x6a46, 0x6a73, 0x6a7e, 0x6ae2, 0x6ae4, 0x6bd6, + 0x6c3f, 0x6c5c, 0x6c86, 0x6c6f, 0x6cda, 0x6d04, 0x6d87, 0x6d6f, + 0x6d96, 0x6dac, 0x6dcf, 0x6df8, 0x6df2, 0x6dfc, 0x6e39, 0x6e5c, + 0x6e27, 0x6e3c, 0x6ebf, 0x6f88, 0x6fb5, 0x6ff5, 0x7005, 0x7007, + 0x7028, 0x7085, 0x70ab, 0x710f, 0x7104, 0x715c, 0x7146, 0x7147, + 0xfa15, 0x71c1, 0x71fe, 0x72b1, + /* 0xee */ + 0x72be, 0x7324, 0xfa16, 0x7377, 0x73bd, 0x73c9, 0x73d6, 0x73e3, + 0x73d2, 0x7407, 0x73f5, 0x7426, 0x742a, 0x7429, 0x742e, 0x7462, + 0x7489, 0x749f, 0x7501, 0x756f, 0x7682, 0x769c, 0x769e, 0x769b, + 0x76a6, 0xfa17, 0x7746, 0x52af, 0x7821, 0x784e, 0x7864, 0x787a, + 0x7930, 0xfa18, 0xfa19, 0xfa1a, 0x7994, 0xfa1b, 0x799b, 0x7ad1, + 0x7ae7, 0xfa1c, 0x7aeb, 0x7b9e, 0xfa1d, 0x7d48, 0x7d5c, 0x7db7, + 0x7da0, 0x7dd6, 0x7e52, 0x7f47, 0x7fa1, 0xfa1e, 0x8301, 0x8362, + 0x837f, 0x83c7, 0x83f6, 0x8448, 0x84b4, 0x8553, 0x8559, 0x856b, + 0xfa1f, 0x85b0, 0xfa20, 0xfa21, 0x8807, 0x88f5, 0x8a12, 0x8a37, + 0x8a79, 0x8aa7, 0x8abe, 0x8adf, 0xfa22, 0x8af6, 0x8b53, 0x8b7f, + 0x8cf0, 0x8cf4, 0x8d12, 0x8d76, 0xfa23, 0x8ecf, 0xfa24, 0xfa25, + 0x9067, 0x90de, 0xfa26, 0x9115, 0x9127, 0x91da, 0x91d7, 0x91de, + 0x91ed, 0x91ee, 0x91e4, 0x91e5, 0x9206, 0x9210, 0x920a, 0x923a, + 0x9240, 0x923c, 0x924e, 0x9259, 0x9251, 0x9239, 0x9267, 0x92a7, + 0x9277, 0x9278, 0x92e7, 0x92d7, 0x92d9, 0x92d0, 0xfa27, 0x92d5, + 0x92e0, 0x92d3, 0x9325, 0x9321, 0x92fb, 0xfa28, 0x931e, 0x92ff, + 0x931d, 0x9302, 0x9370, 0x9357, 0x93a4, 0x93c6, 0x93de, 0x93f8, + 0x9431, 0x9445, 0x9448, 0x9592, 0xf9dc, 0xfa29, 0x969d, 0x96af, + 0x9733, 0x973b, 0x9743, 0x974d, 0x974f, 0x9751, 0x9755, 0x9857, + 0x9865, 0xfa2a, 0xfa2b, 0x9927, 0xfa2c, 0x999e, 0x9a4e, 0x9ad9, + 0x9adc, 0x9b75, 0x9b72, 0x9b8f, 0x9bb1, 0x9bbb, 0x9c00, 0x9d70, + 0x9d6b, 0xfa2d, 0x9e19, 0x9ed1, 0xfffd, 0xfffd, 0x2170, 0x2171, + 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, + 0xffe2, 0xffe4, 0xff07, 0xff02, +}; +static const unsigned short cp932ext_2uni_pagefa[388] = { + /* 0xfa */ + 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, + 0x2178, 0x2179, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, + 0x2166, 0x2167, 0x2168, 0x2169, 0xffe2, 0xffe4, 0xff07, 0xff02, + 0x3231, 0x2116, 0x2121, 0x2235, 0x7e8a, 0x891c, 0x9348, 0x9288, + 0x84dc, 0x4fc9, 0x70bb, 0x6631, 0x68c8, 0x92f9, 0x66fb, 0x5f45, + 0x4e28, 0x4ee1, 0x4efc, 0x4f00, 0x4f03, 0x4f39, 0x4f56, 0x4f92, + 0x4f8a, 0x4f9a, 0x4f94, 0x4fcd, 0x5040, 0x5022, 0x4fff, 0x501e, + 0x5046, 0x5070, 0x5042, 0x5094, 0x50f4, 0x50d8, 0x514a, 0x5164, + 0x519d, 0x51be, 0x51ec, 0x5215, 0x529c, 0x52a6, 0x52c0, 0x52db, + 0x5300, 0x5307, 0x5324, 0x5372, 0x5393, 0x53b2, 0x53dd, 0xfa0e, + 0x549c, 0x548a, 0x54a9, 0x54ff, 0x5586, 0x5759, 0x5765, 0x57ac, + 0x57c8, 0x57c7, 0xfa0f, 0xfa10, 0x589e, 0x58b2, 0x590b, 0x5953, + 0x595b, 0x595d, 0x5963, 0x59a4, 0x59ba, 0x5b56, 0x5bc0, 0x752f, + 0x5bd8, 0x5bec, 0x5c1e, 0x5ca6, 0x5cba, 0x5cf5, 0x5d27, 0x5d53, + 0xfa11, 0x5d42, 0x5d6d, 0x5db8, 0x5db9, 0x5dd0, 0x5f21, 0x5f34, + 0x5f67, 0x5fb7, 0x5fde, 0x605d, 0x6085, 0x608a, 0x60de, 0x60d5, + 0x6120, 0x60f2, 0x6111, 0x6137, 0x6130, 0x6198, 0x6213, 0x62a6, + 0x63f5, 0x6460, 0x649d, 0x64ce, 0x654e, 0x6600, 0x6615, 0x663b, + 0x6609, 0x662e, 0x661e, 0x6624, 0x6665, 0x6657, 0x6659, 0xfa12, + 0x6673, 0x6699, 0x66a0, 0x66b2, 0x66bf, 0x66fa, 0x670e, 0xf929, + 0x6766, 0x67bb, 0x6852, 0x67c0, 0x6801, 0x6844, 0x68cf, 0xfa13, + 0x6968, 0xfa14, 0x6998, 0x69e2, 0x6a30, 0x6a6b, 0x6a46, 0x6a73, + 0x6a7e, 0x6ae2, 0x6ae4, 0x6bd6, 0x6c3f, 0x6c5c, 0x6c86, 0x6c6f, + 0x6cda, 0x6d04, 0x6d87, 0x6d6f, + /* 0xfb */ + 0x6d96, 0x6dac, 0x6dcf, 0x6df8, 0x6df2, 0x6dfc, 0x6e39, 0x6e5c, + 0x6e27, 0x6e3c, 0x6ebf, 0x6f88, 0x6fb5, 0x6ff5, 0x7005, 0x7007, + 0x7028, 0x7085, 0x70ab, 0x710f, 0x7104, 0x715c, 0x7146, 0x7147, + 0xfa15, 0x71c1, 0x71fe, 0x72b1, 0x72be, 0x7324, 0xfa16, 0x7377, + 0x73bd, 0x73c9, 0x73d6, 0x73e3, 0x73d2, 0x7407, 0x73f5, 0x7426, + 0x742a, 0x7429, 0x742e, 0x7462, 0x7489, 0x749f, 0x7501, 0x756f, + 0x7682, 0x769c, 0x769e, 0x769b, 0x76a6, 0xfa17, 0x7746, 0x52af, + 0x7821, 0x784e, 0x7864, 0x787a, 0x7930, 0xfa18, 0xfa19, 0xfa1a, + 0x7994, 0xfa1b, 0x799b, 0x7ad1, 0x7ae7, 0xfa1c, 0x7aeb, 0x7b9e, + 0xfa1d, 0x7d48, 0x7d5c, 0x7db7, 0x7da0, 0x7dd6, 0x7e52, 0x7f47, + 0x7fa1, 0xfa1e, 0x8301, 0x8362, 0x837f, 0x83c7, 0x83f6, 0x8448, + 0x84b4, 0x8553, 0x8559, 0x856b, 0xfa1f, 0x85b0, 0xfa20, 0xfa21, + 0x8807, 0x88f5, 0x8a12, 0x8a37, 0x8a79, 0x8aa7, 0x8abe, 0x8adf, + 0xfa22, 0x8af6, 0x8b53, 0x8b7f, 0x8cf0, 0x8cf4, 0x8d12, 0x8d76, + 0xfa23, 0x8ecf, 0xfa24, 0xfa25, 0x9067, 0x90de, 0xfa26, 0x9115, + 0x9127, 0x91da, 0x91d7, 0x91de, 0x91ed, 0x91ee, 0x91e4, 0x91e5, + 0x9206, 0x9210, 0x920a, 0x923a, 0x9240, 0x923c, 0x924e, 0x9259, + 0x9251, 0x9239, 0x9267, 0x92a7, 0x9277, 0x9278, 0x92e7, 0x92d7, + 0x92d9, 0x92d0, 0xfa27, 0x92d5, 0x92e0, 0x92d3, 0x9325, 0x9321, + 0x92fb, 0xfa28, 0x931e, 0x92ff, 0x931d, 0x9302, 0x9370, 0x9357, + 0x93a4, 0x93c6, 0x93de, 0x93f8, 0x9431, 0x9445, 0x9448, 0x9592, + 0xf9dc, 0xfa29, 0x969d, 0x96af, 0x9733, 0x973b, 0x9743, 0x974d, + 0x974f, 0x9751, 0x9755, 0x9857, 0x9865, 0xfa2a, 0xfa2b, 0x9927, + 0xfa2c, 0x999e, 0x9a4e, 0x9ad9, + /* 0xfc */ + 0x9adc, 0x9b75, 0x9b72, 0x9b8f, 0x9bb1, 0x9bbb, 0x9c00, 0x9d70, + 0x9d6b, 0xfa2d, 0x9e19, 0x9ed1, +}; + +static int +cp932ext_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 == 0x87) || (c1 >= 0xed && c1 <= 0xee) || (c1 >= 0xfa && c1 <= 0xfc)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0x80 && c2 < 0xfd)) { + unsigned int i = 188 * (c1 - (c1 >= 0xe0 ? 0xc1 : 0x81)) + (c2 - (c2 >= 0x80 ? 0x41 : 0x40)); + unsigned short wc = 0xfffd; + if (i < 8272) { + if (i < 1220) + wc = cp932ext_2uni_page87[i-1128]; + } else if (i < 10716) { + if (i < 8648) + wc = cp932ext_2uni_pageed[i-8272]; + } else { + if (i < 11104) + wc = cp932ext_2uni_pagefa[i-10716]; + } + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + +static const unsigned short cp932ext_2charset[457] = { + 0xfa59, 0xfa5a, 0xfa4a, 0xfa4b, 0xfa4c, 0xfa4d, 0xfa4e, 0xfa4f, + 0xfa50, 0xfa51, 0xfa52, 0xfa53, 0xfa40, 0xfa41, 0xfa42, 0xfa43, + 0xfa44, 0xfa45, 0xfa46, 0xfa47, 0xfa48, 0xfa49, 0x8794, 0x8795, + 0x8798, 0x8797, 0x879b, 0x879c, 0x8792, 0x8793, 0xfa5b, 0x8790, + 0x8791, 0x8796, 0x8799, 0x8740, 0x8741, 0x8742, 0x8743, 0x8744, + 0x8745, 0x8746, 0x8747, 0x8748, 0x8749, 0x874a, 0x874b, 0x874c, + 0x874d, 0x874e, 0x874f, 0x8750, 0x8751, 0x8752, 0x8753, 0x8780, + 0x8781, 0xfa58, 0x878b, 0x878c, 0x8785, 0x8786, 0x8787, 0x8788, + 0x8789, 0x8765, 0x8769, 0x8760, 0x8763, 0x8761, 0x876b, 0x876a, + 0x8764, 0x876c, 0x8766, 0x876e, 0x875f, 0x876d, 0x8762, 0x8767, + 0x8768, 0x877e, 0x878f, 0x878e, 0x878d, 0x8772, 0x8773, 0x876f, + 0x8770, 0x8771, 0x8775, 0x8774, 0x8783, 0xfa68, 0xfa69, 0xfa6a, + 0xfa6b, 0xfa6c, 0xfa6d, 0xfa6e, 0xfa70, 0xfa6f, 0xfa72, 0xfa71, + 0xfa61, 0xfa73, 0xfa76, 0xfa77, 0xfa75, 0xfa74, 0xfa7a, 0xfa78, + 0xfa79, 0xfa7b, 0xfa7d, 0xfa7c, 0xfa7e, 0xfa80, 0xfa81, 0xfa82, + 0xfa83, 0xfa84, 0xfa85, 0xfa86, 0xfb77, 0xfa87, 0xfa88, 0xfa89, + 0xfa8a, 0xfa8b, 0xfa8c, 0xfa8d, 0xfa8e, 0xfa8f, 0xfa92, 0xfa91, + 0xfa93, 0xfa94, 0xfa95, 0xfa96, 0xfa97, 0xfa98, 0xfa9a, 0xfa99, + 0xfa9d, 0xfa9e, 0xfa9f, 0xfaa0, 0xfaa1, 0xfaa2, 0xfaa3, 0xfaa4, + 0xfaa5, 0xfaa6, 0xfaa7, 0xfaa9, 0xfaaa, 0xfaab, 0xfaac, 0xfaad, + 0xfaae, 0xfaaf, 0xfab2, 0xfab0, 0xfab3, 0xfab4, 0xfab5, 0xfab6, + 0xfab7, 0xfab8, 0xfa67, 0xfab9, 0xfaba, 0xfabb, 0xfabc, 0xfabd, + 0xfabe, 0xfac0, 0xfabf, 0xfac2, 0xfac3, 0xfac1, 0xfac5, 0xfac4, + 0xfac6, 0xfac7, 0xfac8, 0xfac9, 0xfaca, 0xfacb, 0xfacc, 0xfacd, + 0xface, 0xfad1, 0xfacf, 0xfad3, 0xfad4, 0xfad2, 0xfa63, 0xfad0, + 0xfad6, 0xfad7, 0xfad5, 0xfad9, 0xfada, 0xfadb, 0xfadc, 0xfadd, + 0xfade, 0xfa66, 0xfadf, 0xfae1, 0xfae2, 0xfae4, 0xfae5, 0xfae6, + 0xfae3, 0xfa64, 0xfae7, 0xfae9, 0xfaeb, 0xfaec, 0xfaed, 0xfaef, + 0xfaee, 0xfaf0, 0xfaf1, 0xfaf2, 0xfaf3, 0xfaf4, 0xfaf5, 0xfaf6, + 0xfaf8, 0xfaf7, 0xfaf9, 0xfafa, 0xfafc, 0xfafb, 0xfb40, 0xfb41, + 0xfb42, 0xfb44, 0xfb43, 0xfb45, 0xfb48, 0xfb46, 0xfb49, 0xfb47, + 0xfb4a, 0xfb4b, 0xfb4c, 0xfb4d, 0xfb4e, 0xfb4f, 0xfb50, 0xfb51, + 0xfb52, 0xfa62, 0xfb54, 0xfb53, 0xfb56, 0xfb57, 0xfb55, 0xfb59, + 0xfb5a, 0xfb5b, 0xfb5c, 0xfb5d, 0xfb5f, 0xfb60, 0xfb61, 0xfb64, + 0xfb62, 0xfb63, 0xfb66, 0xfb65, 0xfb67, 0xfb69, 0xfb68, 0xfb6a, + 0xfb6b, 0xfb6c, 0xfb6d, 0xfb6e, 0xfaa8, 0xfb6f, 0xfb70, 0xfb73, + 0xfb71, 0xfb72, 0xfb74, 0xfb76, 0xfb78, 0xfb79, 0xfb7a, 0xfb7b, + 0xfb7c, 0xfb81, 0xfb83, 0xfb84, 0xfb85, 0xfb87, 0xfb88, 0xfb8a, + 0xfb8b, 0xfb8d, 0xfb8c, 0xfb8e, 0xfb8f, 0xfa5c, 0xfb90, 0xfb91, + 0xfb93, 0xfb94, 0xfb95, 0xfb96, 0xfb97, 0xfb98, 0xfb99, 0xfa60, + 0xfb9a, 0xfb9b, 0xfb9c, 0xfb9e, 0xfba1, 0xfba2, 0xfa5d, 0xfba3, + 0xfba4, 0xfba5, 0xfba6, 0xfba7, 0xfba8, 0xfbaa, 0xfbab, 0xfbac, + 0xfbad, 0xfbae, 0xfbaf, 0xfbb0, 0xfbb2, 0xfbb5, 0xfbb6, 0xfbb8, + 0xfbb9, 0xfbbb, 0xfbba, 0xfbbc, 0xfbbf, 0xfbc0, 0xfbbd, 0xfbbe, + 0xfbc1, 0xfbc3, 0xfbc2, 0xfbca, 0xfbc4, 0xfbc6, 0xfbc5, 0xfbc7, + 0xfbc9, 0xfbc8, 0xfbcb, 0xfbcd, 0xfbce, 0xfa5f, 0xfbcc, 0xfbd2, + 0xfbd6, 0xfbd4, 0xfbd0, 0xfbd1, 0xfbd5, 0xfbcf, 0xfa65, 0xfbd9, + 0xfbdc, 0xfbde, 0xfbdd, 0xfbdb, 0xfbd8, 0xfbd7, 0xfa5e, 0xfbe0, + 0xfbdf, 0xfbe1, 0xfbe2, 0xfbe3, 0xfbe4, 0xfbe5, 0xfbe6, 0xfbe7, + 0xfbe8, 0xfbeb, 0xfbec, 0xfbed, 0xfbee, 0xfbef, 0xfbf0, 0xfbf1, + 0xfbf2, 0xfbf3, 0xfbf4, 0xfbf5, 0xfbf8, 0xfbfa, 0xfbfb, 0xfbfc, + 0xfc40, 0xfc42, 0xfc41, 0xfc43, 0xfc44, 0xfc45, 0xfc46, 0xfc48, + 0xfc47, 0xfc4a, 0xfc4b, 0xfae0, 0xfbe9, 0xfa90, 0xfa9b, 0xfa9c, + 0xfab1, 0xfad8, 0xfae8, 0xfaea, 0xfb58, 0xfb5e, 0xfb75, 0xfb7d, + 0xfb7e, 0xfb80, 0xfb82, 0xfb86, 0xfb89, 0xfb92, 0xfb9d, 0xfb9f, + 0xfba0, 0xfba9, 0xfbb1, 0xfbb3, 0xfbb4, 0xfbb7, 0xfbd3, 0xfbda, + 0xfbea, 0xfbf6, 0xfbf7, 0xfbf9, 0xfc49, 0xfa57, 0xfa56, 0xfa54, + 0xfa55, +}; + +static const Summary16 cp932ext_uni2indx_page21[28] = { + /* 0x2100 */ + { 0, 0x0000 }, { 0, 0x0040 }, { 1, 0x0002 }, { 2, 0x0000 }, + { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x03ff }, { 12, 0x03ff }, + { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, + { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, + /* 0x2200 */ + { 22, 0x0000 }, { 22, 0x8402 }, { 25, 0x4e01 }, { 30, 0x0020 }, + { 31, 0x0000 }, { 31, 0x0004 }, { 32, 0x0002 }, { 33, 0x0000 }, + { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0020 }, { 34, 0x8000 }, +}; +static const Summary16 cp932ext_uni2indx_page24[8] = { + /* 0x2400 */ + { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, + { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0xffff }, { 51, 0x000f }, +}; +static const Summary16 cp932ext_uni2indx_page30[2] = { + /* 0x3000 */ + { 55, 0x0000 }, { 55, 0xa000 }, +}; +static const Summary16 cp932ext_uni2indx_page32[29] = { + /* 0x3200 */ + { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0206 }, + { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x0000 }, + { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x01f0 }, { 65, 0x0000 }, + { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0000 }, + /* 0x3300 */ + { 65, 0x2008 }, { 67, 0x0110 }, { 69, 0x08cc }, { 74, 0x0840 }, + { 76, 0x2600 }, { 79, 0x0082 }, { 81, 0x0000 }, { 81, 0x7800 }, + { 85, 0xc000 }, { 87, 0x7000 }, { 90, 0x0002 }, { 91, 0x0000 }, + { 91, 0x2010 }, +}; +static const Summary16 cp932ext_uni2indx_page4e[121] = { + /* 0x4e00 */ + { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0100 }, { 94, 0x0000 }, + { 94, 0x0000 }, { 94, 0x0000 }, { 94, 0x0000 }, { 94, 0x0000 }, + { 94, 0x0000 }, { 94, 0x0000 }, { 94, 0x0000 }, { 94, 0x0000 }, + { 94, 0x0000 }, { 94, 0x0000 }, { 94, 0x0002 }, { 95, 0x1000 }, + /* 0x4f00 */ + { 96, 0x0009 }, { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0200 }, + { 99, 0x0000 }, { 99, 0x0040 }, { 100, 0x0000 }, { 100, 0x0000 }, + { 100, 0x0400 }, { 101, 0x0414 }, { 104, 0x0000 }, { 104, 0x0000 }, + { 104, 0x2200 }, { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x8000 }, + /* 0x5000 */ + { 107, 0x0000 }, { 107, 0x4000 }, { 108, 0x0004 }, { 109, 0x0000 }, + { 109, 0x0045 }, { 112, 0x0000 }, { 112, 0x0000 }, { 112, 0x0001 }, + { 113, 0x0000 }, { 113, 0x0010 }, { 114, 0x0000 }, { 114, 0x0000 }, + { 114, 0x0000 }, { 114, 0x0100 }, { 115, 0x0000 }, { 115, 0x0010 }, + /* 0x5100 */ + { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0000 }, + { 116, 0x0400 }, { 117, 0x0000 }, { 117, 0x0010 }, { 118, 0x0000 }, + { 118, 0x0000 }, { 118, 0x2000 }, { 119, 0x0000 }, { 119, 0x4000 }, + { 120, 0x0000 }, { 120, 0x0000 }, { 120, 0x1000 }, { 121, 0x0000 }, + /* 0x5200 */ + { 121, 0x0000 }, { 121, 0x0020 }, { 122, 0x0000 }, { 122, 0x0000 }, + { 122, 0x0000 }, { 122, 0x0000 }, { 122, 0x0000 }, { 122, 0x0000 }, + { 122, 0x0000 }, { 122, 0x1000 }, { 123, 0x8040 }, { 125, 0x0000 }, + { 125, 0x0001 }, { 126, 0x0800 }, { 127, 0x0000 }, { 127, 0x0000 }, + /* 0x5300 */ + { 127, 0x0081 }, { 129, 0x0000 }, { 129, 0x0010 }, { 130, 0x0000 }, + { 130, 0x0000 }, { 130, 0x0000 }, { 130, 0x0000 }, { 130, 0x0004 }, + { 131, 0x0000 }, { 131, 0x0008 }, { 132, 0x0000 }, { 132, 0x0004 }, + { 133, 0x0000 }, { 133, 0x2000 }, { 134, 0x0000 }, { 134, 0x0000 }, + /* 0x5400 */ + { 134, 0x0000 }, { 134, 0x0000 }, { 134, 0x0000 }, { 134, 0x0000 }, + { 134, 0x0000 }, { 134, 0x0000 }, { 134, 0x0000 }, { 134, 0x0000 }, + { 134, 0x0400 }, { 135, 0x1000 }, { 136, 0x0200 }, { 137, 0x0000 }, + { 137, 0x0000 }, { 137, 0x0000 }, { 137, 0x0000 }, { 137, 0x8000 }, + /* 0x5500 */ + { 138, 0x0000 }, { 138, 0x0000 }, { 138, 0x0000 }, { 138, 0x0000 }, + { 138, 0x0000 }, { 138, 0x0000 }, { 138, 0x0000 }, { 138, 0x0000 }, + { 138, 0x0040 }, +}; +static const Summary16 cp932ext_uni2indx_page57[44] = { + /* 0x5700 */ + { 139, 0x0000 }, { 139, 0x0000 }, { 139, 0x0000 }, { 139, 0x0000 }, + { 139, 0x0000 }, { 139, 0x0200 }, { 140, 0x0020 }, { 141, 0x0000 }, + { 141, 0x0000 }, { 141, 0x0000 }, { 141, 0x1000 }, { 142, 0x0000 }, + { 142, 0x0180 }, { 144, 0x0000 }, { 144, 0x0000 }, { 144, 0x0000 }, + /* 0x5800 */ + { 144, 0x0000 }, { 144, 0x0000 }, { 144, 0x0000 }, { 144, 0x0000 }, + { 144, 0x0000 }, { 144, 0x0000 }, { 144, 0x0000 }, { 144, 0x0000 }, + { 144, 0x0000 }, { 144, 0x4000 }, { 145, 0x0000 }, { 145, 0x0004 }, + { 146, 0x0000 }, { 146, 0x0000 }, { 146, 0x0000 }, { 146, 0x0000 }, + /* 0x5900 */ + { 146, 0x0800 }, { 147, 0x0000 }, { 147, 0x0000 }, { 147, 0x0000 }, + { 147, 0x0000 }, { 147, 0x2808 }, { 150, 0x0008 }, { 151, 0x0000 }, + { 151, 0x0000 }, { 151, 0x0000 }, { 151, 0x0010 }, { 152, 0x0400 }, +}; +static const Summary16 cp932ext_uni2indx_page5b[46] = { + /* 0x5b00 */ + { 153, 0x0000 }, { 153, 0x0000 }, { 153, 0x0000 }, { 153, 0x0000 }, + { 153, 0x0000 }, { 153, 0x0040 }, { 154, 0x0000 }, { 154, 0x0000 }, + { 154, 0x0000 }, { 154, 0x0000 }, { 154, 0x0000 }, { 154, 0x0000 }, + { 154, 0x0001 }, { 155, 0x0100 }, { 156, 0x1000 }, { 157, 0x0000 }, + /* 0x5c00 */ + { 157, 0x0000 }, { 157, 0x4000 }, { 158, 0x0000 }, { 158, 0x0000 }, + { 158, 0x0000 }, { 158, 0x0000 }, { 158, 0x0000 }, { 158, 0x0000 }, + { 158, 0x0000 }, { 158, 0x0000 }, { 158, 0x0040 }, { 159, 0x0400 }, + { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0020 }, + /* 0x5d00 */ + { 161, 0x0000 }, { 161, 0x0000 }, { 161, 0x0080 }, { 162, 0x0000 }, + { 162, 0x0004 }, { 163, 0x0008 }, { 164, 0x2000 }, { 165, 0x0000 }, + { 165, 0x0000 }, { 165, 0x0000 }, { 165, 0x0000 }, { 165, 0x0300 }, + { 167, 0x0000 }, { 167, 0x0001 }, +}; +static const Summary16 cp932ext_uni2indx_page5f[458] = { + /* 0x5f00 */ + { 168, 0x0000 }, { 168, 0x0000 }, { 168, 0x0002 }, { 169, 0x0010 }, + { 170, 0x0020 }, { 171, 0x0000 }, { 171, 0x0080 }, { 172, 0x0000 }, + { 172, 0x0000 }, { 172, 0x0000 }, { 172, 0x0000 }, { 172, 0x0080 }, + { 173, 0x0000 }, { 173, 0x4000 }, { 174, 0x0000 }, { 174, 0x0000 }, + /* 0x6000 */ + { 174, 0x0000 }, { 174, 0x0000 }, { 174, 0x0000 }, { 174, 0x0000 }, + { 174, 0x0000 }, { 174, 0x2000 }, { 175, 0x0000 }, { 175, 0x0000 }, + { 175, 0x0420 }, { 177, 0x0000 }, { 177, 0x0000 }, { 177, 0x0000 }, + { 177, 0x0000 }, { 177, 0x4020 }, { 179, 0x0000 }, { 179, 0x0004 }, + /* 0x6100 */ + { 180, 0x0000 }, { 180, 0x0002 }, { 181, 0x0001 }, { 182, 0x0081 }, + { 184, 0x0000 }, { 184, 0x0000 }, { 184, 0x0000 }, { 184, 0x0000 }, + { 184, 0x0000 }, { 184, 0x0100 }, { 185, 0x0000 }, { 185, 0x0000 }, + { 185, 0x0000 }, { 185, 0x0000 }, { 185, 0x0000 }, { 185, 0x0000 }, + /* 0x6200 */ + { 185, 0x0000 }, { 185, 0x0008 }, { 186, 0x0000 }, { 186, 0x0000 }, + { 186, 0x0000 }, { 186, 0x0000 }, { 186, 0x0000 }, { 186, 0x0000 }, + { 186, 0x0000 }, { 186, 0x0000 }, { 186, 0x0040 }, { 187, 0x0000 }, + { 187, 0x0000 }, { 187, 0x0000 }, { 187, 0x0000 }, { 187, 0x0000 }, + /* 0x6300 */ + { 187, 0x0000 }, { 187, 0x0000 }, { 187, 0x0000 }, { 187, 0x0000 }, + { 187, 0x0000 }, { 187, 0x0000 }, { 187, 0x0000 }, { 187, 0x0000 }, + { 187, 0x0000 }, { 187, 0x0000 }, { 187, 0x0000 }, { 187, 0x0000 }, + { 187, 0x0000 }, { 187, 0x0000 }, { 187, 0x0000 }, { 187, 0x0020 }, + /* 0x6400 */ + { 188, 0x0000 }, { 188, 0x0000 }, { 188, 0x0000 }, { 188, 0x0000 }, + { 188, 0x0000 }, { 188, 0x0000 }, { 188, 0x0001 }, { 189, 0x0000 }, + { 189, 0x0000 }, { 189, 0x2000 }, { 190, 0x0000 }, { 190, 0x0000 }, + { 190, 0x4000 }, { 191, 0x0000 }, { 191, 0x0000 }, { 191, 0x0000 }, + /* 0x6500 */ + { 191, 0x0000 }, { 191, 0x0000 }, { 191, 0x0000 }, { 191, 0x0000 }, + { 191, 0x4000 }, { 192, 0x0000 }, { 192, 0x0000 }, { 192, 0x0000 }, + { 192, 0x0000 }, { 192, 0x0000 }, { 192, 0x0000 }, { 192, 0x0000 }, + { 192, 0x0000 }, { 192, 0x0000 }, { 192, 0x0000 }, { 192, 0x0000 }, + /* 0x6600 */ + { 192, 0x0201 }, { 194, 0x4020 }, { 196, 0x4010 }, { 198, 0x0802 }, + { 200, 0x0000 }, { 200, 0x0280 }, { 202, 0x0020 }, { 203, 0x0008 }, + { 204, 0x0000 }, { 204, 0x0200 }, { 205, 0x0001 }, { 206, 0x8004 }, + { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0c00 }, + /* 0x6700 */ + { 210, 0x4000 }, { 211, 0x0000 }, { 211, 0x0000 }, { 211, 0x0000 }, + { 211, 0x0000 }, { 211, 0x0000 }, { 211, 0x0040 }, { 212, 0x0000 }, + { 212, 0x0000 }, { 212, 0x0000 }, { 212, 0x0000 }, { 212, 0x0800 }, + { 213, 0x0001 }, { 214, 0x0000 }, { 214, 0x0000 }, { 214, 0x0000 }, + /* 0x6800 */ + { 214, 0x0002 }, { 215, 0x0000 }, { 215, 0x0000 }, { 215, 0x0000 }, + { 215, 0x0010 }, { 216, 0x0004 }, { 217, 0x0000 }, { 217, 0x0000 }, + { 217, 0x0000 }, { 217, 0x0000 }, { 217, 0x0000 }, { 217, 0x0000 }, + { 217, 0x8100 }, { 219, 0x0000 }, { 219, 0x0000 }, { 219, 0x0000 }, + /* 0x6900 */ + { 219, 0x0000 }, { 219, 0x0000 }, { 219, 0x0000 }, { 219, 0x0000 }, + { 219, 0x0000 }, { 219, 0x0000 }, { 219, 0x0100 }, { 220, 0x0000 }, + { 220, 0x0000 }, { 220, 0x0100 }, { 221, 0x0000 }, { 221, 0x0000 }, + { 221, 0x0000 }, { 221, 0x0000 }, { 221, 0x0004 }, { 222, 0x0000 }, + /* 0x6a00 */ + { 222, 0x0000 }, { 222, 0x0000 }, { 222, 0x0000 }, { 222, 0x0001 }, + { 223, 0x0040 }, { 224, 0x0000 }, { 224, 0x0800 }, { 225, 0x4008 }, + { 227, 0x0000 }, { 227, 0x0000 }, { 227, 0x0000 }, { 227, 0x0000 }, + { 227, 0x0000 }, { 227, 0x0000 }, { 227, 0x0014 }, { 229, 0x0000 }, + /* 0x6b00 */ + { 229, 0x0000 }, { 229, 0x0000 }, { 229, 0x0000 }, { 229, 0x0000 }, + { 229, 0x0000 }, { 229, 0x0000 }, { 229, 0x0000 }, { 229, 0x0000 }, + { 229, 0x0000 }, { 229, 0x0000 }, { 229, 0x0000 }, { 229, 0x0000 }, + { 229, 0x0000 }, { 229, 0x0040 }, { 230, 0x0000 }, { 230, 0x0000 }, + /* 0x6c00 */ + { 230, 0x0000 }, { 230, 0x0000 }, { 230, 0x0000 }, { 230, 0x8000 }, + { 231, 0x0000 }, { 231, 0x1000 }, { 232, 0x8000 }, { 233, 0x0000 }, + { 233, 0x0040 }, { 234, 0x0000 }, { 234, 0x0000 }, { 234, 0x0000 }, + { 234, 0x0000 }, { 234, 0x0400 }, { 235, 0x0000 }, { 235, 0x0000 }, + /* 0x6d00 */ + { 235, 0x0010 }, { 236, 0x0000 }, { 236, 0x0000 }, { 236, 0x0000 }, + { 236, 0x0000 }, { 236, 0x0000 }, { 236, 0x8000 }, { 237, 0x0000 }, + { 237, 0x0080 }, { 238, 0x0040 }, { 239, 0x1000 }, { 240, 0x0000 }, + { 240, 0x8000 }, { 241, 0x0000 }, { 241, 0x0000 }, { 241, 0x1104 }, + /* 0x6e00 */ + { 244, 0x0000 }, { 244, 0x0000 }, { 244, 0x0080 }, { 245, 0x1200 }, + { 247, 0x0000 }, { 247, 0x1000 }, { 248, 0x0000 }, { 248, 0x0000 }, + { 248, 0x0000 }, { 248, 0x0000 }, { 248, 0x0000 }, { 248, 0x8000 }, + { 249, 0x0000 }, { 249, 0x0000 }, { 249, 0x0000 }, { 249, 0x0000 }, + /* 0x6f00 */ + { 249, 0x0000 }, { 249, 0x0000 }, { 249, 0x0000 }, { 249, 0x0000 }, + { 249, 0x0000 }, { 249, 0x0000 }, { 249, 0x0000 }, { 249, 0x0000 }, + { 249, 0x0100 }, { 250, 0x0000 }, { 250, 0x0000 }, { 250, 0x0020 }, + { 251, 0x0000 }, { 251, 0x0000 }, { 251, 0x0000 }, { 251, 0x0020 }, + /* 0x7000 */ + { 252, 0x00a0 }, { 254, 0x0000 }, { 254, 0x0100 }, { 255, 0x0000 }, + { 255, 0x0000 }, { 255, 0x0000 }, { 255, 0x0000 }, { 255, 0x0000 }, + { 255, 0x0020 }, { 256, 0x0000 }, { 256, 0x0800 }, { 257, 0x0800 }, + { 258, 0x0000 }, { 258, 0x0000 }, { 258, 0x0000 }, { 258, 0x0000 }, + /* 0x7100 */ + { 258, 0x8010 }, { 260, 0x0000 }, { 260, 0x0000 }, { 260, 0x0000 }, + { 260, 0x00c0 }, { 262, 0x1000 }, { 263, 0x0000 }, { 263, 0x0000 }, + { 263, 0x0000 }, { 263, 0x0000 }, { 263, 0x0000 }, { 263, 0x0000 }, + { 263, 0x0002 }, { 264, 0x0000 }, { 264, 0x0000 }, { 264, 0x4000 }, + /* 0x7200 */ + { 265, 0x0000 }, { 265, 0x0000 }, { 265, 0x0000 }, { 265, 0x0000 }, + { 265, 0x0000 }, { 265, 0x0000 }, { 265, 0x0000 }, { 265, 0x0000 }, + { 265, 0x0000 }, { 265, 0x0000 }, { 265, 0x0000 }, { 265, 0x4002 }, + { 267, 0x0000 }, { 267, 0x0000 }, { 267, 0x0000 }, { 267, 0x0000 }, + /* 0x7300 */ + { 267, 0x0000 }, { 267, 0x0000 }, { 267, 0x0010 }, { 268, 0x0000 }, + { 268, 0x0000 }, { 268, 0x0000 }, { 268, 0x0000 }, { 268, 0x0080 }, + { 269, 0x0000 }, { 269, 0x0000 }, { 269, 0x0000 }, { 269, 0x2000 }, + { 270, 0x0200 }, { 271, 0x0044 }, { 273, 0x0008 }, { 274, 0x0020 }, + /* 0x7400 */ + { 275, 0x0080 }, { 276, 0x0000 }, { 276, 0x4640 }, { 280, 0x0000 }, + { 280, 0x0000 }, { 280, 0x0000 }, { 280, 0x0004 }, { 281, 0x0000 }, + { 281, 0x0200 }, { 282, 0x8000 }, { 283, 0x0000 }, { 283, 0x0000 }, + { 283, 0x0000 }, { 283, 0x0000 }, { 283, 0x0000 }, { 283, 0x0000 }, + /* 0x7500 */ + { 283, 0x0002 }, { 284, 0x0000 }, { 284, 0x8000 }, { 285, 0x0000 }, + { 285, 0x0000 }, { 285, 0x0000 }, { 285, 0x8000 }, { 286, 0x0000 }, + { 286, 0x0000 }, { 286, 0x0000 }, { 286, 0x0000 }, { 286, 0x0000 }, + { 286, 0x0000 }, { 286, 0x0000 }, { 286, 0x0000 }, { 286, 0x0000 }, + /* 0x7600 */ + { 286, 0x0000 }, { 286, 0x0000 }, { 286, 0x0000 }, { 286, 0x0000 }, + { 286, 0x0000 }, { 286, 0x0000 }, { 286, 0x0000 }, { 286, 0x0000 }, + { 286, 0x0004 }, { 287, 0x5800 }, { 290, 0x0040 }, { 291, 0x0000 }, + { 291, 0x0000 }, { 291, 0x0000 }, { 291, 0x0000 }, { 291, 0x0000 }, + /* 0x7700 */ + { 291, 0x0000 }, { 291, 0x0000 }, { 291, 0x0000 }, { 291, 0x0000 }, + { 291, 0x0040 }, { 292, 0x0000 }, { 292, 0x0000 }, { 292, 0x0000 }, + { 292, 0x0000 }, { 292, 0x0000 }, { 292, 0x0000 }, { 292, 0x0000 }, + { 292, 0x0000 }, { 292, 0x0000 }, { 292, 0x0000 }, { 292, 0x0000 }, + /* 0x7800 */ + { 292, 0x0000 }, { 292, 0x0000 }, { 292, 0x0002 }, { 293, 0x0000 }, + { 293, 0x4000 }, { 294, 0x0000 }, { 294, 0x0010 }, { 295, 0x0400 }, + { 296, 0x0000 }, { 296, 0x0000 }, { 296, 0x0000 }, { 296, 0x0000 }, + { 296, 0x0000 }, { 296, 0x0000 }, { 296, 0x0000 }, { 296, 0x0000 }, + /* 0x7900 */ + { 296, 0x0000 }, { 296, 0x0000 }, { 296, 0x0000 }, { 296, 0x0001 }, + { 297, 0x0000 }, { 297, 0x0000 }, { 297, 0x0000 }, { 297, 0x0000 }, + { 297, 0x0000 }, { 297, 0x0810 }, { 299, 0x0000 }, { 299, 0x0000 }, + { 299, 0x0000 }, { 299, 0x0000 }, { 299, 0x0000 }, { 299, 0x0000 }, + /* 0x7a00 */ + { 299, 0x0000 }, { 299, 0x0000 }, { 299, 0x0000 }, { 299, 0x0000 }, + { 299, 0x0000 }, { 299, 0x0000 }, { 299, 0x0000 }, { 299, 0x0000 }, + { 299, 0x0000 }, { 299, 0x0000 }, { 299, 0x0000 }, { 299, 0x0000 }, + { 299, 0x0000 }, { 299, 0x0002 }, { 300, 0x0880 }, { 302, 0x0000 }, + /* 0x7b00 */ + { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, + { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, + { 302, 0x0000 }, { 302, 0x4000 }, +}; +static const Summary16 cp932ext_uni2indx_page7d[43] = { + /* 0x7d00 */ + { 303, 0x0000 }, { 303, 0x0000 }, { 303, 0x0000 }, { 303, 0x0000 }, + { 303, 0x0100 }, { 304, 0x1000 }, { 305, 0x0000 }, { 305, 0x0000 }, + { 305, 0x0000 }, { 305, 0x0000 }, { 305, 0x0001 }, { 306, 0x0080 }, + { 307, 0x0000 }, { 307, 0x0040 }, { 308, 0x0000 }, { 308, 0x0000 }, + /* 0x7e00 */ + { 308, 0x0000 }, { 308, 0x0000 }, { 308, 0x0000 }, { 308, 0x0000 }, + { 308, 0x0000 }, { 308, 0x0004 }, { 309, 0x0000 }, { 309, 0x0000 }, + { 309, 0x0400 }, { 310, 0x0000 }, { 310, 0x0000 }, { 310, 0x0000 }, + { 310, 0x0000 }, { 310, 0x0000 }, { 310, 0x0000 }, { 310, 0x0000 }, + /* 0x7f00 */ + { 310, 0x0000 }, { 310, 0x0000 }, { 310, 0x0000 }, { 310, 0x0000 }, + { 310, 0x0080 }, { 311, 0x0000 }, { 311, 0x0000 }, { 311, 0x0000 }, + { 311, 0x0000 }, { 311, 0x0000 }, { 311, 0x0002 }, +}; +static const Summary16 cp932ext_uni2indx_page83[44] = { + /* 0x8300 */ + { 312, 0x0002 }, { 313, 0x0000 }, { 313, 0x0000 }, { 313, 0x0000 }, + { 313, 0x0000 }, { 313, 0x0000 }, { 313, 0x0004 }, { 314, 0x8000 }, + { 315, 0x0000 }, { 315, 0x0000 }, { 315, 0x0000 }, { 315, 0x0000 }, + { 315, 0x0080 }, { 316, 0x0000 }, { 316, 0x0000 }, { 316, 0x0040 }, + /* 0x8400 */ + { 317, 0x0000 }, { 317, 0x0000 }, { 317, 0x0000 }, { 317, 0x0000 }, + { 317, 0x0100 }, { 318, 0x0000 }, { 318, 0x0000 }, { 318, 0x0000 }, + { 318, 0x0000 }, { 318, 0x0000 }, { 318, 0x0000 }, { 318, 0x0010 }, + { 319, 0x0000 }, { 319, 0x1000 }, { 320, 0x0000 }, { 320, 0x0000 }, + /* 0x8500 */ + { 320, 0x0000 }, { 320, 0x0000 }, { 320, 0x0000 }, { 320, 0x0000 }, + { 320, 0x0000 }, { 320, 0x0208 }, { 322, 0x0800 }, { 323, 0x0000 }, + { 323, 0x0000 }, { 323, 0x0000 }, { 323, 0x0000 }, { 323, 0x0001 }, +}; +static const Summary16 cp932ext_uni2indx_page88[109] = { + /* 0x8800 */ + { 324, 0x0080 }, { 325, 0x0000 }, { 325, 0x0000 }, { 325, 0x0000 }, + { 325, 0x0000 }, { 325, 0x0000 }, { 325, 0x0000 }, { 325, 0x0000 }, + { 325, 0x0000 }, { 325, 0x0000 }, { 325, 0x0000 }, { 325, 0x0000 }, + { 325, 0x0000 }, { 325, 0x0000 }, { 325, 0x0000 }, { 325, 0x0020 }, + /* 0x8900 */ + { 326, 0x0000 }, { 326, 0x1000 }, { 327, 0x0000 }, { 327, 0x0000 }, + { 327, 0x0000 }, { 327, 0x0000 }, { 327, 0x0000 }, { 327, 0x0000 }, + { 327, 0x0000 }, { 327, 0x0000 }, { 327, 0x0000 }, { 327, 0x0000 }, + { 327, 0x0000 }, { 327, 0x0000 }, { 327, 0x0000 }, { 327, 0x0000 }, + /* 0x8a00 */ + { 327, 0x0000 }, { 327, 0x0004 }, { 328, 0x0000 }, { 328, 0x0080 }, + { 329, 0x0000 }, { 329, 0x0000 }, { 329, 0x0000 }, { 329, 0x0200 }, + { 330, 0x0000 }, { 330, 0x0000 }, { 330, 0x0080 }, { 331, 0x4000 }, + { 332, 0x0000 }, { 332, 0x8000 }, { 333, 0x0000 }, { 333, 0x0040 }, + /* 0x8b00 */ + { 334, 0x0000 }, { 334, 0x0000 }, { 334, 0x0000 }, { 334, 0x0000 }, + { 334, 0x0000 }, { 334, 0x0008 }, { 335, 0x0000 }, { 335, 0x8000 }, + { 336, 0x0000 }, { 336, 0x0000 }, { 336, 0x0000 }, { 336, 0x0000 }, + { 336, 0x0000 }, { 336, 0x0000 }, { 336, 0x0000 }, { 336, 0x0000 }, + /* 0x8c00 */ + { 336, 0x0000 }, { 336, 0x0000 }, { 336, 0x0000 }, { 336, 0x0000 }, + { 336, 0x0000 }, { 336, 0x0000 }, { 336, 0x0000 }, { 336, 0x0000 }, + { 336, 0x0000 }, { 336, 0x0000 }, { 336, 0x0000 }, { 336, 0x0000 }, + { 336, 0x0000 }, { 336, 0x0000 }, { 336, 0x0000 }, { 336, 0x0011 }, + /* 0x8d00 */ + { 338, 0x0000 }, { 338, 0x0004 }, { 339, 0x0000 }, { 339, 0x0000 }, + { 339, 0x0000 }, { 339, 0x0000 }, { 339, 0x0000 }, { 339, 0x0040 }, + { 340, 0x0000 }, { 340, 0x0000 }, { 340, 0x0000 }, { 340, 0x0000 }, + { 340, 0x0000 }, { 340, 0x0000 }, { 340, 0x0000 }, { 340, 0x0000 }, + /* 0x8e00 */ + { 340, 0x0000 }, { 340, 0x0000 }, { 340, 0x0000 }, { 340, 0x0000 }, + { 340, 0x0000 }, { 340, 0x0000 }, { 340, 0x0000 }, { 340, 0x0000 }, + { 340, 0x0000 }, { 340, 0x0000 }, { 340, 0x0000 }, { 340, 0x0000 }, + { 340, 0x8000 }, +}; +static const Summary16 cp932ext_uni2indx_page90[238] = { + /* 0x9000 */ + { 341, 0x0000 }, { 341, 0x0000 }, { 341, 0x0000 }, { 341, 0x0000 }, + { 341, 0x0000 }, { 341, 0x0000 }, { 341, 0x0080 }, { 342, 0x0000 }, + { 342, 0x0000 }, { 342, 0x0000 }, { 342, 0x0000 }, { 342, 0x0000 }, + { 342, 0x0000 }, { 342, 0x4000 }, { 343, 0x0000 }, { 343, 0x0000 }, + /* 0x9100 */ + { 343, 0x0000 }, { 343, 0x0020 }, { 344, 0x0080 }, { 345, 0x0000 }, + { 345, 0x0000 }, { 345, 0x0000 }, { 345, 0x0000 }, { 345, 0x0000 }, + { 345, 0x0000 }, { 345, 0x0000 }, { 345, 0x0000 }, { 345, 0x0000 }, + { 345, 0x0000 }, { 345, 0x4480 }, { 348, 0x6030 }, { 352, 0x0000 }, + /* 0x9200 */ + { 352, 0x0440 }, { 354, 0x0001 }, { 355, 0x0000 }, { 355, 0x1600 }, + { 358, 0x4001 }, { 360, 0x0202 }, { 362, 0x0080 }, { 363, 0x0180 }, + { 365, 0x0100 }, { 366, 0x0000 }, { 366, 0x0080 }, { 367, 0x0000 }, + { 367, 0x0000 }, { 367, 0x02a9 }, { 372, 0x0081 }, { 374, 0x8a00 }, + /* 0x9300 */ + { 377, 0x0004 }, { 378, 0x6000 }, { 380, 0x0022 }, { 382, 0x0000 }, + { 382, 0x0100 }, { 383, 0x0080 }, { 384, 0x0000 }, { 384, 0x0001 }, + { 385, 0x0000 }, { 385, 0x0000 }, { 385, 0x0010 }, { 386, 0x0000 }, + { 386, 0x0040 }, { 387, 0x4000 }, { 388, 0x0000 }, { 388, 0x0100 }, + /* 0x9400 */ + { 389, 0x0000 }, { 389, 0x0000 }, { 389, 0x0000 }, { 389, 0x0002 }, + { 390, 0x0120 }, { 392, 0x0000 }, { 392, 0x0000 }, { 392, 0x0000 }, + { 392, 0x0000 }, { 392, 0x0000 }, { 392, 0x0000 }, { 392, 0x0000 }, + { 392, 0x0000 }, { 392, 0x0000 }, { 392, 0x0000 }, { 392, 0x0000 }, + /* 0x9500 */ + { 392, 0x0000 }, { 392, 0x0000 }, { 392, 0x0000 }, { 392, 0x0000 }, + { 392, 0x0000 }, { 392, 0x0000 }, { 392, 0x0000 }, { 392, 0x0000 }, + { 392, 0x0000 }, { 392, 0x0004 }, { 393, 0x0000 }, { 393, 0x0000 }, + { 393, 0x0000 }, { 393, 0x0000 }, { 393, 0x0000 }, { 393, 0x0000 }, + /* 0x9600 */ + { 393, 0x0000 }, { 393, 0x0000 }, { 393, 0x0000 }, { 393, 0x0000 }, + { 393, 0x0000 }, { 393, 0x0000 }, { 393, 0x0000 }, { 393, 0x0000 }, + { 393, 0x0000 }, { 393, 0x2000 }, { 394, 0x8000 }, { 395, 0x0000 }, + { 395, 0x0000 }, { 395, 0x0000 }, { 395, 0x0000 }, { 395, 0x0000 }, + /* 0x9700 */ + { 395, 0x0000 }, { 395, 0x0000 }, { 395, 0x0000 }, { 395, 0x0808 }, + { 397, 0xa008 }, { 400, 0x0022 }, { 402, 0x0000 }, { 402, 0x0000 }, + { 402, 0x0000 }, { 402, 0x0000 }, { 402, 0x0000 }, { 402, 0x0000 }, + { 402, 0x0000 }, { 402, 0x0000 }, { 402, 0x0000 }, { 402, 0x0000 }, + /* 0x9800 */ + { 402, 0x0000 }, { 402, 0x0000 }, { 402, 0x0000 }, { 402, 0x0000 }, + { 402, 0x0000 }, { 402, 0x0080 }, { 403, 0x0020 }, { 404, 0x0000 }, + { 404, 0x0000 }, { 404, 0x0000 }, { 404, 0x0000 }, { 404, 0x0000 }, + { 404, 0x0000 }, { 404, 0x0000 }, { 404, 0x0000 }, { 404, 0x0000 }, + /* 0x9900 */ + { 404, 0x0000 }, { 404, 0x0000 }, { 404, 0x0080 }, { 405, 0x0000 }, + { 405, 0x0000 }, { 405, 0x0000 }, { 405, 0x0000 }, { 405, 0x0000 }, + { 405, 0x0000 }, { 405, 0x4000 }, { 406, 0x0000 }, { 406, 0x0000 }, + { 406, 0x0000 }, { 406, 0x0000 }, { 406, 0x0000 }, { 406, 0x0000 }, + /* 0x9a00 */ + { 406, 0x0000 }, { 406, 0x0000 }, { 406, 0x0000 }, { 406, 0x0000 }, + { 406, 0x4000 }, { 407, 0x0000 }, { 407, 0x0000 }, { 407, 0x0000 }, + { 407, 0x0000 }, { 407, 0x0000 }, { 407, 0x0000 }, { 407, 0x0000 }, + { 407, 0x0000 }, { 407, 0x1200 }, { 409, 0x0000 }, { 409, 0x0000 }, + /* 0x9b00 */ + { 409, 0x0000 }, { 409, 0x0000 }, { 409, 0x0000 }, { 409, 0x0000 }, + { 409, 0x0000 }, { 409, 0x0000 }, { 409, 0x0000 }, { 409, 0x0024 }, + { 411, 0x8000 }, { 412, 0x0000 }, { 412, 0x0000 }, { 412, 0x0802 }, + { 414, 0x0000 }, { 414, 0x0000 }, { 414, 0x0000 }, { 414, 0x0000 }, + /* 0x9c00 */ + { 414, 0x0001 }, { 415, 0x0000 }, { 415, 0x0000 }, { 415, 0x0000 }, + { 415, 0x0000 }, { 415, 0x0000 }, { 415, 0x0000 }, { 415, 0x0000 }, + { 415, 0x0000 }, { 415, 0x0000 }, { 415, 0x0000 }, { 415, 0x0000 }, + { 415, 0x0000 }, { 415, 0x0000 }, { 415, 0x0000 }, { 415, 0x0000 }, + /* 0x9d00 */ + { 415, 0x0000 }, { 415, 0x0000 }, { 415, 0x0000 }, { 415, 0x0000 }, + { 415, 0x0000 }, { 415, 0x0000 }, { 415, 0x0800 }, { 416, 0x0001 }, + { 417, 0x0000 }, { 417, 0x0000 }, { 417, 0x0000 }, { 417, 0x0000 }, + { 417, 0x0000 }, { 417, 0x0000 }, { 417, 0x0000 }, { 417, 0x0000 }, + /* 0x9e00 */ + { 417, 0x0000 }, { 417, 0x0200 }, { 418, 0x0000 }, { 418, 0x0000 }, + { 418, 0x0000 }, { 418, 0x0000 }, { 418, 0x0000 }, { 418, 0x0000 }, + { 418, 0x0000 }, { 418, 0x0000 }, { 418, 0x0000 }, { 418, 0x0000 }, + { 418, 0x0000 }, { 418, 0x0002 }, +}; +static const Summary16 cp932ext_uni2indx_pagef9[19] = { + /* 0xf900 */ + { 419, 0x0000 }, { 419, 0x0000 }, { 419, 0x0200 }, { 420, 0x0000 }, + { 420, 0x0000 }, { 420, 0x0000 }, { 420, 0x0000 }, { 420, 0x0000 }, + { 420, 0x0000 }, { 420, 0x0000 }, { 420, 0x0000 }, { 420, 0x0000 }, + { 420, 0x0000 }, { 420, 0x1000 }, { 421, 0x0000 }, { 421, 0x0000 }, + /* 0xfa00 */ + { 421, 0xc000 }, { 423, 0xffff }, { 439, 0x3fff }, +}; +static const Summary16 cp932ext_uni2indx_pageff[15] = { + /* 0xff00 */ + { 453, 0x0084 }, { 455, 0x0000 }, { 455, 0x0000 }, { 455, 0x0000 }, + { 455, 0x0000 }, { 455, 0x0000 }, { 455, 0x0000 }, { 455, 0x0000 }, + { 455, 0x0000 }, { 455, 0x0000 }, { 455, 0x0000 }, { 455, 0x0000 }, + { 455, 0x0000 }, { 455, 0x0000 }, { 455, 0x0014 }, +}; + +static int +cp932ext_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (n >= 2) { + const Summary16 *summary = NULL; + if (wc >= 0x2100 && wc < 0x22c0) + summary = &cp932ext_uni2indx_page21[(wc>>4)-0x210]; + else if (wc >= 0x2400 && wc < 0x2480) + summary = &cp932ext_uni2indx_page24[(wc>>4)-0x240]; + else if (wc >= 0x3000 && wc < 0x3020) + summary = &cp932ext_uni2indx_page30[(wc>>4)-0x300]; + else if (wc >= 0x3200 && wc < 0x33d0) + summary = &cp932ext_uni2indx_page32[(wc>>4)-0x320]; + else if (wc >= 0x4e00 && wc < 0x5590) + summary = &cp932ext_uni2indx_page4e[(wc>>4)-0x4e0]; + else if (wc >= 0x5700 && wc < 0x59c0) + summary = &cp932ext_uni2indx_page57[(wc>>4)-0x570]; + else if (wc >= 0x5b00 && wc < 0x5de0) + summary = &cp932ext_uni2indx_page5b[(wc>>4)-0x5b0]; + else if (wc >= 0x5f00 && wc < 0x7ba0) + summary = &cp932ext_uni2indx_page5f[(wc>>4)-0x5f0]; + else if (wc >= 0x7d00 && wc < 0x7fb0) + summary = &cp932ext_uni2indx_page7d[(wc>>4)-0x7d0]; + else if (wc >= 0x8300 && wc < 0x85c0) + summary = &cp932ext_uni2indx_page83[(wc>>4)-0x830]; + else if (wc >= 0x8800 && wc < 0x8ed0) + summary = &cp932ext_uni2indx_page88[(wc>>4)-0x880]; + else if (wc >= 0x9000 && wc < 0x9ee0) + summary = &cp932ext_uni2indx_page90[(wc>>4)-0x900]; + else if (wc >= 0xf900 && wc < 0xfa30) + summary = &cp932ext_uni2indx_pagef9[(wc>>4)-0xf90]; + else if (wc >= 0xff00 && wc < 0xfff0) + summary = &cp932ext_uni2indx_pageff[(wc>>4)-0xff0]; + if (summary) { + unsigned short used = summary->used; + unsigned int i = wc & 0x0f; + if (used & ((unsigned short) 1 << i)) { + unsigned short c; + /* Keep in `used' only the bits 0..i-1. */ + used &= ((unsigned short) 1 << i) - 1; + /* Add `summary->indx' and the number of bits set in `used'. */ + used = (used & 0x5555) + ((used & 0xaaaa) >> 1); + used = (used & 0x3333) + ((used & 0xcccc) >> 2); + used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); + used = (used & 0x00ff) + (used >> 8); + c = cp932ext_2charset[summary->indx + used]; + r[0] = (c >> 8); r[1] = (c & 0xff); + return 2; + } + } + return RET_ILUNI; + } + return RET_TOOSMALL; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp936.h b/graf2d/win32gdk/gdk/src/iconv/cp936.h new file mode 100644 index 00000000000..06e510cae28 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp936.h @@ -0,0 +1,126 @@ +/* + * Copyright (C) 2005 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP936 + */ + +/* + * The IANA has CP936 as an alias of GBK. But GBK is an official Chinese + * specification, whereas CP936 is de-facto maintained by Microsoft. And, + * of course, Microsoft modified CP936 since 1999. + * + * The differences from GBK are: + * + * 1. A single character: + * + * code CP936.TXT + * 0x80 0x20AC # EURO SIGN + * + * Some variants of CP936 (in JDK, Windows-2000, ICU) also add: + * + * 2. Private area mappings: + * + * code Unicode + * 0x{A1..A2}{40..7E,80..A0} U+E4C6..U+E585 + * 0x{AA..AF,F8..FE}{A1..FE} U+E000..U+E4C5 + * + * We add them too because, although there are backward compatibility problems + * when a character from a private area is moved to an official Unicode code + * point, they are useful for some people in practice. + */ + +static int +cp936_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + /* Try GBK first. */ + { + int ret = ces_gbk_mbtowc(conv,pwc,s,n); + if (ret != RET_ILSEQ) + return ret; + } + /* Then handle the additional mappings. */ + { + unsigned char c = *s; + if (c == 0x80) { + *pwc = 0x20ac; + return 1; + } + /* User-defined characters */ + if (c >= 0xa1 && c <= 0xa2) { + if (n < 2) + return RET_TOOFEW(0); + { + unsigned char c2 = s[1]; + if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0x80 && c2 < 0xa1)) { + *pwc = 0xe4c6 + 96 * (c - 0xa1) + (c2 - (c2 >= 0x80 ? 0x41 : 0x40)); + return 2; + } + } + } else if ((c >= 0xaa && c < 0xb0) || (c >= 0xf8 && c < 0xff)) { + if (n < 2) + return RET_TOOFEW(0); + { + unsigned char c2 = s[1]; + if (c2 >= 0xa1 && c2 < 0xff) { + *pwc = 0xe000 + 94 * (c - (c >= 0xf8 ? 0xf2 : 0xaa)) + (c2 - 0xa1); + return 2; + } + } + } + } + return RET_ILSEQ; +} + +static int +cp936_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + /* Try GBK first. */ + { + int ret = ces_gbk_wctomb(conv,r,wc,n); + if (ret != RET_ILUNI) + return ret; + } + /* Then handle the additional mappings. */ + if (wc >= 0xe000 && wc < 0xe586) { + /* User-defined characters */ + if (n < 2) + return RET_TOOFEW(0); + if (wc < 0xe4c6) { + unsigned int i = wc - 0xe000; + unsigned int c1 = i / 94; + unsigned int c2 = i % 94; + r[0] = c1 + (c1 < 6 ? 0xaa : 0xf2); + r[1] = c2 + 0xa1; + return 2; + } else { + unsigned int i = wc - 0xe4c6; + unsigned int c1 = i / 96; + unsigned int c2 = i % 96; + r[0] = c1 + 0xa1; + r[1] = c2 + (c2 < 0x3f ? 0x40 : 0x41); + return 2; + } + } else if (wc == 0x20ac) { + r[0] = 0x80; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp936ext.h b/graf2d/win32gdk/gdk/src/iconv/cp936ext.h new file mode 100644 index 00000000000..db1817b701e --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp936ext.h @@ -0,0 +1,99 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP936 extensions + */ + +static const unsigned short cp936ext_2uni_pagea6[181-159] = { + /* 0xa6 */ + 0xfe35, + 0xfe36, 0xfe39, 0xfe3a, 0xfe3f, 0xfe40, 0xfe3d, 0xfe3e, 0xfe41, + 0xfe42, 0xfe43, 0xfe44, 0xfffd, 0xfffd, 0xfe3b, 0xfe3c, 0xfe37, + 0xfe38, 0xfe31, 0xfffd, 0xfe33, 0xfe34, +}; +static const unsigned short cp936ext_2uni_pagea8[128-122] = { + /* 0xa8 */ + 0x0251, 0xfffd, 0x0144, 0x0148, 0xfffd, 0x0261, +}; + +static int +cp936ext_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 == 0xa6) || (c1 == 0xa8)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0x80 && c2 < 0xff)) { + unsigned int i = 190 * (c1 - 0x81) + (c2 - (c2 >= 0x80 ? 0x41 : 0x40)); + unsigned short wc = 0xfffd; + if (i < 7410) { + if (i >= 7189 && i < 7211) + wc = cp936ext_2uni_pagea6[i-7189]; + } else { + if (i >= 7532 && i < 7538) + wc = cp936ext_2uni_pagea8[i-7532]; + } + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + +static const unsigned short cp936ext_page01[16] = { + 0x0000, 0x0000, 0x0000, 0x0000, 0xa8bd, 0x0000, 0x0000, 0x0000, /*0x40-0x47*/ + 0xa8be, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x48-0x4f*/ +}; +static const unsigned short cp936ext_page02[24] = { + 0x0000, 0xa8bb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x50-0x57*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x58-0x5f*/ + 0x0000, 0xa8c0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x60-0x67*/ +}; +static const unsigned short cp936ext_pagefe[24] = { + 0x0000, 0xa6f2, 0x0000, 0xa6f4, 0xa6f5, 0xa6e0, 0xa6e1, 0xa6f0, /*0x30-0x37*/ + 0xa6f1, 0xa6e2, 0xa6e3, 0xa6ee, 0xa6ef, 0xa6e6, 0xa6e7, 0xa6e4, /*0x38-0x3f*/ + 0xa6e5, 0xa6e8, 0xa6e9, 0xa6ea, 0xa6eb, 0x0000, 0x0000, 0x0000, /*0x40-0x47*/ +}; + +static int +cp936ext_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (n >= 2) { + unsigned short c = 0; + if (wc >= 0x0140 && wc < 0x0150) + c = cp936ext_page01[wc-0x0140]; + else if (wc >= 0x0250 && wc < 0x0268) + c = cp936ext_page02[wc-0x0250]; + else if (wc >= 0xfe30 && wc < 0xfe48) + c = cp936ext_pagefe[wc-0xfe30]; + if (c != 0) { + r[0] = (c >> 8); r[1] = (c & 0xff); + return 2; + } + return RET_ILUNI; + } + return RET_TOOSMALL; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp943.h b/graf2d/win32gdk/gdk/src/iconv/cp943.h new file mode 100644 index 00000000000..dbaebe97e2a --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp943.h @@ -0,0 +1,29 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * IBM CP943 + */ + +/* This is essentially CP932, with many mappings missing in the AIX conversion + table. We just pretend it were the same as CP932. */ + +#define cp943_mbtowc cp932_mbtowc +#define cp943_wctomb cp932_wctomb diff --git a/graf2d/win32gdk/gdk/src/iconv/cp949.h b/graf2d/win32gdk/gdk/src/iconv/cp949.h new file mode 100644 index 00000000000..665e7243ae9 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp949.h @@ -0,0 +1,128 @@ +/* + * Copyright (C) 1999-2001, 2005, 2007 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP949 is EUC-KR, extended with UHC (Unified Hangul Code). + * + * Some variants of CP949 (in JDK, Windows-2000, ICU) also add: + * + * 2. Private area mappings: + * + * code Unicode + * 0xC9{A1..FE} U+E000..U+E05D + * 0xFE{A1..FE} U+E05E..U+E0BB + * + * We add them too because, although there are backward compatibility problems + * when a character from a private area is moved to an official Unicode code + * point, they are useful for some people in practice. + */ + +#include "uhc_1.h" +#include "uhc_2.h" + +static int +cp949_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + /* Code set 0 (ASCII) */ + if (c < 0x80) + return ascii_mbtowc(conv,pwc,s,n); + /* UHC part 1 */ + if (c >= 0x81 && c <= 0xa0) + return uhc_1_mbtowc(conv,pwc,s,n); + if (c >= 0xa1 && c < 0xff) { + if (n < 2) + return RET_TOOFEW(0); + { + unsigned char c2 = s[1]; + if (c2 < 0xa1) + /* UHC part 2 */ + return uhc_2_mbtowc(conv,pwc,s,n); + else if (c2 < 0xff && !(c == 0xa2 && c2 == 0xe8)) { + /* Code set 1 (KS C 5601-1992, now KS X 1001:1998) */ + unsigned char buf[2]; + int ret; + buf[0] = c-0x80; buf[1] = c2-0x80; + ret = ksc5601_mbtowc(conv,pwc,buf,2); + if (ret != RET_ILSEQ) + return ret; + /* User-defined characters */ + if (c == 0xc9) { + *pwc = 0xe000 + (c2 - 0xa1); + return 2; + } + if (c == 0xfe) { + *pwc = 0xe05e + (c2 - 0xa1); + return 2; + } + } + } + } + return RET_ILSEQ; +} + +static int +cp949_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char buf[2]; + int ret; + + /* Code set 0 (ASCII) */ + ret = ascii_wctomb(conv,r,wc,n); + if (ret != RET_ILUNI) + return ret; + + /* Code set 1 (KS C 5601-1992, now KS X 1001:1998) */ + if (wc != 0x327e) { + ret = ksc5601_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (n < 2) + return RET_TOOSMALL; + r[0] = buf[0]+0x80; + r[1] = buf[1]+0x80; + return 2; + } + } + + /* UHC */ + if (wc >= 0xac00 && wc < 0xd7a4) { + if (wc < 0xc8a5) + return uhc_1_wctomb(conv,r,wc,n); + else + return uhc_2_wctomb(conv,r,wc,n); + } + + /* User-defined characters */ + if (wc >= 0xe000 && wc < 0xe0bc) { + if (n < 2) + return RET_TOOSMALL; + if (wc < 0xe05e) { + r[0] = 0xc9; + r[1] = wc - 0xe000 + 0xa1; + } else { + r[0] = 0xfe; + r[1] = wc - 0xe05e + 0xa1; + } + return 2; + } + + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp950.h b/graf2d/win32gdk/gdk/src/iconv/cp950.h new file mode 100644 index 00000000000..28ca19945cc --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp950.h @@ -0,0 +1,284 @@ +/* + * Copyright (C) 1999-2001, 2005 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP950 + */ + +/* + * Microsoft CP950 is a slightly extended and slightly modified version of + * BIG5. The differences between the EASTASIA/OTHER/BIG5.TXT and + * VENDORS/MICSFT/WINDOWS/CP950.TXT tables found on ftp.unicode.org are + * as follows: + * + * 1. Some characters in the BIG5 range are defined differently: + * + * code BIG5.TXT CP950.TXT + * 0xA145 0x2022 # BULLET 0x2027 # HYPHENATION POINT + * 0xA14E 0xFF64 # HALFWIDTH IDEOGRAPHIC COMMA + * 0xFE51 # SMALL IDEOGRAPHIC COMMA + * 0xA15A --- 0x2574 # BOX DRAWINGS LIGHT LEFT + * 0xA1C2 0x203E # OVERLINE 0x00AF # MACRON + * 0xA1C3 --- 0xFFE3 # FULLWIDTH MACRON + * 0xA1C5 --- 0x02CD # MODIFIER LETTER LOW MACRON + * 0xA1E3 0x223C # TILDE OPERATOR 0xFF5E # FULLWIDTH TILDE + * 0xA1F2 0x2641 # EARTH 0x2295 # CIRCLED PLUS + * 0xA1F3 0x2609 # SUN 0x2299 # CIRCLED DOT OPERATOR + * 0xA1FE --- 0xFF0F # FULLWIDTH SOLIDUS + * 0xA240 --- 0xFF3C # FULLWIDTH REVERSE SOLIDUS + * 0xA241 0xFF0F # FULLWIDTH SOLIDUS 0x2215 # DIVISION SLASH + * 0xA242 0xFF3C # FULLWIDTH REVERSE SOLIDUS + * 0xFE68 # SMALL REVERSE SOLIDUS + * 0xA244 0x00A5 # YEN SIGN 0xFFE5 # FULLWIDTH YEN SIGN + * 0xA246 0x00A2 # CENT SIGN 0xFFE0 # FULLWIDTH CENT SIGN + * 0xA247 0x00A3 # POUND SIGN 0xFFE1 # FULLWIDTH POUND SIGN + * 0xA2CC --- 0x5341 + * 0xA2CE --- 0x5345 + * + * 2. A small new row. See cp950ext.h. + * + * 3. CP950.TXT is lacking the range 0xC6A1..0xC7FC (Hiragana, Katakana, + * Cyrillic, circled digits, parenthesized digits). + * + * We implement this omission, because said range is marked "uncertain" + * in the unicode.org BIG5 table. + * + * The table found on Microsoft's website furthermore adds: + * + * 4. A single character: + * + * code CP950.TXT + * 0xA3E1 0x20AC # EURO SIGN + * + * Many variants of BIG5 or CP950 (in JDK, Solaris, OSF/1, Windows-2000, ICU, + * as well as our BIG5-2003 converter) also add: + * + * 5. Private area mappings: + * + * code Unicode + * 0x{81..8D}{40..7E,A1..FE} U+EEB8..U+F6B0 + * 0x{8E..A0}{40..7E,A1..FE} U+E311..U+EEB7 + * 0x{FA..FE}{40..7E,A1..FE} U+E000..U+E310 + * + * We add them too because, although there are backward compatibility problems + * when a character from a private area is moved to an official Unicode code + * point, they are useful for some people in practice. + */ + +static const unsigned short cp950_2uni_pagea1[314] = { + /* 0xa1 */ + 0x3000, 0xff0c, 0x3001, 0x3002, 0xff0e, 0x2027, 0xff1b, 0xff1a, + 0xff1f, 0xff01, 0xfe30, 0x2026, 0x2025, 0xfe50, 0xfe51, 0xfe52, + 0x00b7, 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xff5c, 0x2013, 0xfe31, + 0x2014, 0xfe33, 0x2574, 0xfe34, 0xfe4f, 0xff08, 0xff09, 0xfe35, + 0xfe36, 0xff5b, 0xff5d, 0xfe37, 0xfe38, 0x3014, 0x3015, 0xfe39, + 0xfe3a, 0x3010, 0x3011, 0xfe3b, 0xfe3c, 0x300a, 0x300b, 0xfe3d, + 0xfe3e, 0x3008, 0x3009, 0xfe3f, 0xfe40, 0x300c, 0x300d, 0xfe41, + 0xfe42, 0x300e, 0x300f, 0xfe43, 0xfe44, 0xfe59, 0xfe5a, 0xfe5b, + 0xfe5c, 0xfe5d, 0xfe5e, 0x2018, 0x2019, 0x201c, 0x201d, 0x301d, + 0x301e, 0x2035, 0x2032, 0xff03, 0xff06, 0xff0a, 0x203b, 0x00a7, + 0x3003, 0x25cb, 0x25cf, 0x25b3, 0x25b2, 0x25ce, 0x2606, 0x2605, + 0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25bd, 0x25bc, 0x32a3, 0x2105, + 0x00af, 0xffe3, 0xff3f, 0x02cd, 0xfe49, 0xfe4a, 0xfe4d, 0xfe4e, + 0xfe4b, 0xfe4c, 0xfe5f, 0xfe60, 0xfe61, 0xff0b, 0xff0d, 0x00d7, + 0x00f7, 0x00b1, 0x221a, 0xff1c, 0xff1e, 0xff1d, 0x2266, 0x2267, + 0x2260, 0x221e, 0x2252, 0x2261, 0xfe62, 0xfe63, 0xfe64, 0xfe65, + 0xfe66, 0xff5e, 0x2229, 0x222a, 0x22a5, 0x2220, 0x221f, 0x22bf, + 0x33d2, 0x33d1, 0x222b, 0x222e, 0x2235, 0x2234, 0x2640, 0x2642, + 0x2295, 0x2299, 0x2191, 0x2193, 0x2190, 0x2192, 0x2196, 0x2197, + 0x2199, 0x2198, 0x2225, 0x2223, 0xff0f, + /* 0xa2 */ + 0xff3c, 0x2215, 0xfe68, 0xff04, 0xffe5, 0x3012, 0xffe0, 0xffe1, + 0xff05, 0xff20, 0x2103, 0x2109, 0xfe69, 0xfe6a, 0xfe6b, 0x33d5, + 0x339c, 0x339d, 0x339e, 0x33ce, 0x33a1, 0x338e, 0x338f, 0x33c4, + 0x00b0, 0x5159, 0x515b, 0x515e, 0x515d, 0x5161, 0x5163, 0x55e7, + 0x74e9, 0x7cce, 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586, + 0x2587, 0x2588, 0x258f, 0x258e, 0x258d, 0x258c, 0x258b, 0x258a, + 0x2589, 0x253c, 0x2534, 0x252c, 0x2524, 0x251c, 0x2594, 0x2500, + 0x2502, 0x2595, 0x250c, 0x2510, 0x2514, 0x2518, 0x256d, 0x256e, + 0x2570, 0x256f, 0x2550, 0x255e, 0x256a, 0x2561, 0x25e2, 0x25e3, + 0x25e5, 0x25e4, 0x2571, 0x2572, 0x2573, 0xff10, 0xff11, 0xff12, + 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, 0xff19, 0x2160, + 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, + 0x2169, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027, + 0x3028, 0x3029, 0x5341, 0x5344, 0x5345, 0xff21, 0xff22, 0xff23, + 0xff24, 0xff25, 0xff26, 0xff27, 0xff28, 0xff29, 0xff2a, 0xff2b, + 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30, 0xff31, 0xff32, 0xff33, + 0xff34, 0xff35, 0xff36, 0xff37, 0xff38, 0xff39, 0xff3a, 0xff41, + 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, 0xff49, + 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50, 0xff51, + 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, +}; + +#include "cp950ext.h" + +static int +cp950_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + /* Code set 0 (ASCII) */ + if (c < 0x80) + return ascii_mbtowc(conv,pwc,s,n); + /* Code set 1 (BIG5 extended) */ + if (c >= 0x81 && c < 0xff) { + if (n < 2) + return RET_TOOFEW(0); + { + unsigned char c2 = s[1]; + if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) { + if (c >= 0xa1) { + if (c < 0xa3) { + unsigned int i = 157 * (c - 0xa1) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40)); + unsigned short wc = cp950_2uni_pagea1[i]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 2; + } + } + if (!((c == 0xc6 && c2 >= 0xa1) || c == 0xc7)) { + int ret = big5_mbtowc(conv,pwc,s,2); + if (ret != RET_ILSEQ) + return ret; + } + if (c == 0xa3 && c2 == 0xe1) { + *pwc = 0x20ac; + return 2; + } + if (c >= 0xfa) { + /* User-defined characters */ + *pwc = 0xe000 + 157 * (c - 0xfa) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40)); + return 2; + } + } else { + /* 0x81 <= c < 0xa1. */ + /* User-defined characters */ + *pwc = (c >= 0x8e ? 0xdb18 : 0xeeb8) + 157 * (c - 0x81) + + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40)); + return 2; + } + } + } + if (c == 0xf9) { + int ret = cp950ext_mbtowc(conv,pwc,s,2); + if (ret != RET_ILSEQ) + return ret; + } + } + return RET_ILSEQ; +} + +static int +cp950_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char buf[2]; + int ret; + + /* Code set 0 (ASCII) */ + ret = ascii_wctomb(conv,r,wc,n); + if (ret != RET_ILUNI) + return ret; + + /* Code set 1 (BIG5 extended) */ + switch (wc >> 8) { + case 0x00: + if (wc == 0x00af) { buf[0] = 0xa1; buf[1] = 0xc2; ret = 2; break; } + if (wc == 0x00a2 || wc == 0x00a3 || wc == 0x00a4) + return RET_ILUNI; + break; + case 0x02: + if (wc == 0x02cd) { buf[0] = 0xa1; buf[1] = 0xc5; ret = 2; break; } + break; + case 0x20: + if (wc == 0x2027) { buf[0] = 0xa1; buf[1] = 0x45; ret = 2; break; } + if (wc == 0x20ac) { buf[0] = 0xa3; buf[1] = 0xe1; ret = 2; break; } + if (wc == 0x2022 || wc == 0x203e) + return RET_ILUNI; + break; + case 0x22: + if (wc == 0x2215) { buf[0] = 0xa2; buf[1] = 0x41; ret = 2; break; } + if (wc == 0x2295) { buf[0] = 0xa1; buf[1] = 0xf2; ret = 2; break; } + if (wc == 0x2299) { buf[0] = 0xa1; buf[1] = 0xf3; ret = 2; break; } + if (wc == 0x223c) + return RET_ILUNI; + break; + case 0x25: + if (wc == 0x2574) { buf[0] = 0xa1; buf[1] = 0x5a; ret = 2; break; } + break; + case 0x26: + if (wc == 0x2609 || wc == 0x2641) + return RET_ILUNI; + break; + case 0xe0: case 0xe1: case 0xe2: case 0xe3: case 0xe4: case 0xe5: + case 0xe6: case 0xe7: case 0xe8: case 0xe9: case 0xea: case 0xeb: + case 0xec: case 0xed: case 0xee: case 0xef: case 0xf0: case 0xf1: + case 0xf2: case 0xf3: case 0xf4: case 0xf5: case 0xf6: + { + /* User-defined characters */ + unsigned int i = wc - 0xe000; + if (i < 5809) { + unsigned int c1 = i / 157; + unsigned int c2 = i % 157; + buf[0] = c1 + (c1 < 5 ? 0xfa : c1 < 24 ? 0x89 : 0x69); + buf[1] = c2 + (c2 < 0x3f ? 0x40 : 0x62); + ret = 2; + break; + } + } + break; + case 0xfe: + if (wc == 0xfe51) { buf[0] = 0xa1; buf[1] = 0x4e; ret = 2; break; } + if (wc == 0xfe68) { buf[0] = 0xa2; buf[1] = 0x42; ret = 2; break; } + break; + case 0xff: + if (wc == 0xff0f) { buf[0] = 0xa1; buf[1] = 0xfe; ret = 2; break; } + if (wc == 0xff3c) { buf[0] = 0xa2; buf[1] = 0x40; ret = 2; break; } + if (wc == 0xff5e) { buf[0] = 0xa1; buf[1] = 0xe3; ret = 2; break; } + if (wc == 0xffe0) { buf[0] = 0xa2; buf[1] = 0x46; ret = 2; break; } + if (wc == 0xffe1) { buf[0] = 0xa2; buf[1] = 0x47; ret = 2; break; } + if (wc == 0xffe3) { buf[0] = 0xa1; buf[1] = 0xc3; ret = 2; break; } + if (wc == 0xffe5) { buf[0] = 0xa2; buf[1] = 0x44; ret = 2; break; } + if (wc == 0xff64) + return RET_ILUNI; + break; + } + if (ret == RET_ILUNI) + ret = big5_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (!((buf[0] == 0xc6 && buf[1] >= 0xa1) || buf[0] == 0xc7)) { + if (n < 2) + return RET_TOOSMALL; + r[0] = buf[0]; + r[1] = buf[1]; + return 2; + } + } + ret = cp950ext_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (n < 2) + return RET_TOOSMALL; + r[0] = buf[0]; + r[1] = buf[1]; + return 2; + } + + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/cp950ext.h b/graf2d/win32gdk/gdk/src/iconv/cp950ext.h new file mode 100644 index 00000000000..2a18d805454 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/cp950ext.h @@ -0,0 +1,161 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * CP950 extensions + */ + +static const unsigned short cp950ext_2uni_pagef9[157-116] = { + /* 0xf9 */ + 0x7881, 0x92b9, 0x88cf, 0x58bb, + 0x6052, 0x7ca7, 0x5afa, 0x2554, 0x2566, 0x2557, 0x2560, 0x256c, + 0x2563, 0x255a, 0x2569, 0x255d, 0x2552, 0x2564, 0x2555, 0x255e, + 0x256a, 0x2561, 0x2558, 0x2567, 0x255b, 0x2553, 0x2565, 0x2556, + 0x255f, 0x256b, 0x2562, 0x2559, 0x2568, 0x255c, 0x2551, 0x2550, + 0x256d, 0x256e, 0x2570, 0x256f, 0x2593, +}; + +static int +cp950ext_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 == 0xf9)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) { + unsigned int i = 157 * (c1 - 0xa1) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40)); + unsigned short wc = 0xfffd; + { + if (i >= 13932 && i < 13973) + wc = cp950ext_2uni_pagef9[i-13932]; + } + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + +static const unsigned short cp950ext_2charset[41] = { + 0xf9f9, 0xf9f8, 0xf9e6, 0xf9ef, 0xf9dd, 0xf9e8, 0xf9f1, 0xf9df, + 0xf9ec, 0xf9f5, 0xf9e3, 0xf9ee, 0xf9f7, 0xf9e5, 0xf9e9, 0xf9f2, + 0xf9e0, 0xf9eb, 0xf9f4, 0xf9e2, 0xf9e7, 0xf9f0, 0xf9de, 0xf9ed, + 0xf9f6, 0xf9e4, 0xf9ea, 0xf9f3, 0xf9e1, 0xf9fa, 0xf9fb, 0xf9fd, + 0xf9fc, 0xf9fe, 0xf9d9, 0xf9dc, 0xf9da, 0xf9d6, 0xf9db, 0xf9d8, + 0xf9d7, +}; + +static const Summary16 cp950ext_uni2indx_page25[10] = { + /* 0x2500 */ + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0000 }, { 0, 0xffff }, { 16, 0xffff }, { 32, 0x0001 }, + { 33, 0x0000 }, { 33, 0x0008 }, +}; +static const Summary16 cp950ext_uni2indx_page58[12] = { + /* 0x5800 */ + { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 }, + { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 }, + { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0800 }, +}; +static const Summary16 cp950ext_uni2indx_page5a[16] = { + /* 0x5a00 */ + { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, + { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, + { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, + { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0400 }, +}; +static const Summary16 cp950ext_uni2indx_page60[6] = { + /* 0x6000 */ + { 36, 0x0000 }, { 36, 0x0000 }, { 36, 0x0000 }, { 36, 0x0000 }, + { 36, 0x0000 }, { 36, 0x0004 }, +}; +static const Summary16 cp950ext_uni2indx_page78[9] = { + /* 0x7800 */ + { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, + { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, + { 37, 0x0002 }, +}; +static const Summary16 cp950ext_uni2indx_page7c[11] = { + /* 0x7c00 */ + { 38, 0x0000 }, { 38, 0x0000 }, { 38, 0x0000 }, { 38, 0x0000 }, + { 38, 0x0000 }, { 38, 0x0000 }, { 38, 0x0000 }, { 38, 0x0000 }, + { 38, 0x0000 }, { 38, 0x0000 }, { 38, 0x0080 }, +}; +static const Summary16 cp950ext_uni2indx_page88[13] = { + /* 0x8800 */ + { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, + { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, + { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, + { 39, 0x8000 }, +}; +static const Summary16 cp950ext_uni2indx_page92[12] = { + /* 0x9200 */ + { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, + { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, + { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0200 }, +}; + +static int +cp950ext_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (n >= 2) { + const Summary16 *summary = NULL; + if (wc >= 0x2500 && wc < 0x25a0) + summary = &cp950ext_uni2indx_page25[(wc>>4)-0x250]; + else if (wc >= 0x5800 && wc < 0x58c0) + summary = &cp950ext_uni2indx_page58[(wc>>4)-0x580]; + else if (wc >= 0x5a00 && wc < 0x5b00) + summary = &cp950ext_uni2indx_page5a[(wc>>4)-0x5a0]; + else if (wc >= 0x6000 && wc < 0x6060) + summary = &cp950ext_uni2indx_page60[(wc>>4)-0x600]; + else if (wc >= 0x7800 && wc < 0x7890) + summary = &cp950ext_uni2indx_page78[(wc>>4)-0x780]; + else if (wc >= 0x7c00 && wc < 0x7cb0) + summary = &cp950ext_uni2indx_page7c[(wc>>4)-0x7c0]; + else if (wc >= 0x8800 && wc < 0x88d0) + summary = &cp950ext_uni2indx_page88[(wc>>4)-0x880]; + else if (wc >= 0x9200 && wc < 0x92c0) + summary = &cp950ext_uni2indx_page92[(wc>>4)-0x920]; + if (summary) { + unsigned short used = summary->used; + unsigned int i = wc & 0x0f; + if (used & ((unsigned short) 1 << i)) { + unsigned short c; + /* Keep in `used' only the bits 0..i-1. */ + used &= ((unsigned short) 1 << i) - 1; + /* Add `summary->indx' and the number of bits set in `used'. */ + used = (used & 0x5555) + ((used & 0xaaaa) >> 1); + used = (used & 0x3333) + ((used & 0xcccc) >> 2); + used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); + used = (used & 0x00ff) + (used >> 8); + c = cp950ext_2charset[summary->indx + used]; + r[0] = (c >> 8); r[1] = (c & 0xff); + return 2; + } + } + return RET_ILUNI; + } + return RET_TOOSMALL; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/dec_hanyu.h b/graf2d/win32gdk/gdk/src/iconv/dec_hanyu.h new file mode 100644 index 00000000000..065fd5d5158 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/dec_hanyu.h @@ -0,0 +1,115 @@ +/* + * Copyright (C) 2001, 2005 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * DEC-HANYU + */ + +static int +dec_hanyu_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + /* Code set 0 (ASCII) */ + if (c < 0x80) + return ascii_mbtowc(conv,pwc,s,n); + /* Code set 1 (CNS 11643-1992 Plane 1), + Code set 2 (CNS 11643-1992 Plane 2), + Code set 3 (CNS 11643-1992 Plane 3) */ + if (c >= 0xa1 && c < 0xff) { + if (n < 2) + return RET_TOOFEW(0); + { + unsigned char c2 = s[1]; + if (c == 0xc2 && c2 == 0xcb) { + if (n < 4) + return RET_TOOFEW(0); + if (s[2] >= 0xa1 && s[2] < 0xff && s[3] >= 0xa1 && s[3] < 0xff) { + unsigned char buf[2]; + int ret; + buf[0] = s[2]-0x80; buf[1] = s[3]-0x80; + ret = cns11643_3_mbtowc(conv,pwc,buf,2); + if (ret != RET_ILSEQ) { + if (ret != 2) abort(); + return 4; + } + } + } else if (c2 >= 0xa1 && c2 < 0xff) { + if (c != 0xc2 || c2 < 0xc2) { + unsigned char buf[2]; + buf[0] = c-0x80; buf[1] = c2-0x80; + return cns11643_1_mbtowc(conv,pwc,buf,2); + } + } else if (c2 >= 0x21 && c2 < 0x7f) { + unsigned char buf[2]; + buf[0] = c-0x80; buf[1] = c2; + return cns11643_2_mbtowc(conv,pwc,buf,2); + } + } + } + return RET_ILSEQ; +} + +static int +dec_hanyu_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char buf[3]; + int ret; + + /* Code set 0 (ASCII) */ + ret = ascii_wctomb(conv,r,wc,n); + if (ret != RET_ILUNI) + return ret; + + ret = cns11643_wctomb(conv,buf,wc,3); + if (ret != RET_ILUNI) { + if (ret != 3) abort(); + + /* Code set 1 (CNS 11643-1992 Plane 1) */ + if (buf[0] == 1 && (buf[1] != 0x42 || buf[2] < 0x42)) { + if (n < 2) + return RET_TOOSMALL; + r[0] = buf[1]+0x80; + r[1] = buf[2]+0x80; + return 2; + } + + /* Code set 2 (CNS 11643-1992 Plane 2) */ + if (buf[0] == 2) { + if (n < 2) + return RET_TOOSMALL; + r[0] = buf[1]+0x80; + r[1] = buf[2]; + return 2; + } + + /* Code set 3 (CNS 11643-1992 Plane 3) */ + if (buf[0] == 3) { + if (n < 4) + return RET_TOOSMALL; + r[0] = 0xc2; + r[1] = 0xcb; + r[2] = buf[1]+0x80; + r[3] = buf[2]+0x80; + return 4; + } + } + + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/dec_kanji.h b/graf2d/win32gdk/gdk/src/iconv/dec_kanji.h new file mode 100644 index 00000000000..0a056fb87ed --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/dec_kanji.h @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * DEC-KANJI + */ + +static int +dec_kanji_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + /* Code set 0 (ASCII or JIS X 0201-1976 Roman) */ + if (c < 0x80) + return ascii_mbtowc(conv,pwc,s,n); + /* Code set 1 (JIS X 0208) */ + if (c >= 0xa1 && c < 0xf5) { + if (n < 2) + return RET_TOOFEW(0); + { + unsigned char c2 = s[1]; + if (c2 >= 0xa1 && c2 < 0xff) { + unsigned char buf[2]; + buf[0] = c-0x80; buf[1] = c2-0x80; + return jisx0208_mbtowc(conv,pwc,buf,2); + } + } + } + return RET_ILSEQ; +} + +static int +dec_kanji_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char buf[2]; + int ret; + + /* Code set 0 (ASCII or JIS X 0201-1976 Roman) */ + ret = ascii_wctomb(conv,r,wc,n); + if (ret != RET_ILUNI) + return ret; + + /* Code set 1 (JIS X 0208) */ + ret = jisx0208_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (n < 2) + return RET_TOOSMALL; + r[0] = buf[0]+0x80; + r[1] = buf[1]+0x80; + return 2; + } + + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/encodings.def b/graf2d/win32gdk/gdk/src/iconv/encodings.def new file mode 100644 index 00000000000..b5fda5480f0 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/encodings.def @@ -0,0 +1,1025 @@ +/* Copyright (C) 1999-2009 Free Software Foundation, Inc. + This file is part of the GNU LIBICONV Library. + + The GNU LIBICONV Library is free software; you can redistribute it + and/or modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + The GNU LIBICONV Library is distributed in the hope that it will be + useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU LIBICONV Library; see the file COPYING.LIB. + If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* The list of all system independent user-visible encodings. */ + +/* By convention, an encoding named FOOBAR or FOO_BAR or FOO-BAR is defined + in a file named "foobar.h" through the functions foobar_mbtowc and + foobar_wctomb (and possibly foobar_reset). */ + +/* DEFENCODING(( name, alias1, ..., ), + xxx, + { xxx_mbtowc, xxx_flushwc }, + { xxx_wctomb, xxx_reset }) + defines an encoding with the given name and aliases. (There is no + difference between a name and an alias. By convention, the name is chosen + as the preferred MIME name or the standard name.) + All names and aliases must be in ASCII. Case is not significant, but + for the "cs*" aliases mixed case is preferred, otherwise UPPERCASE is + preferred. For all names and aliases, note where it comes from. + xxx is the name as used in the C code (lowercase). + */ + + +DEFENCODING(( "US-ASCII", /* IANA */ + "ASCII", /* IANA, JDK 1.1 */ + "ISO646-US", /* IANA */ + "ISO_646.IRV:1991", /* IANA */ + "ISO-IR-6", /* IANA */ + "ANSI_X3.4-1968", /* IANA */ + "ANSI_X3.4-1986", /* IANA */ + "CP367", /* IANA */ + "IBM367", /* IANA */ + "US", /* IANA */ + "csASCII", /* IANA */ + /*"ISO646.1991-IRV", X11R6.4 */ + ), + ascii, + { ascii_mbtowc, NULL }, { ascii_wctomb, NULL }) +#ifdef USE_SOLARIS_ALIASES +DEFALIAS( "646", /* Solaris */ + ascii) +#endif + +/* General multi-byte encodings */ + +DEFENCODING(( "UTF-8", /* IANA, RFC 2279 */ + /*"UTF8", JDK 1.1 */ + /*"CP65001", Windows */ + ), + utf8, + { utf8_mbtowc, NULL }, { utf8_wctomb, NULL }) +#ifdef USE_HPUX_ALIASES +DEFALIAS( "UTF8", /* HP-UX */ + utf8) +#endif + +DEFENCODING(( "UCS-2", /* glibc */ + "ISO-10646-UCS-2", /* IANA */ + "csUnicode", /* IANA */ + ), + ucs2, + { ucs2_mbtowc, NULL }, { ucs2_wctomb, NULL }) + +DEFENCODING(( "UCS-2BE", /* glibc */ + "UNICODEBIG", /* glibc */ + "UNICODE-1-1", /* IANA */ + "csUnicode11", /* IANA */ + /*"CP1201", Windows */ + ), + ucs2be, + { ucs2be_mbtowc, NULL }, { ucs2be_wctomb, NULL }) + +DEFENCODING(( "UCS-2LE", /* glibc */ + "UNICODELITTLE", /* glibc */ + /*"CP1200", Windows */ + ), + ucs2le, + { ucs2le_mbtowc, NULL }, { ucs2le_wctomb, NULL }) + +DEFENCODING(( "UCS-4", /* glibc */ + "ISO-10646-UCS-4", /* IANA */ + "csUCS4", /* IANA */ + ), + ucs4, + { ucs4_mbtowc, NULL }, { ucs4_wctomb, NULL }) + +DEFENCODING(( "UCS-4BE", /* glibc */ + /*"CP12001", Windows */ + ), + ucs4be, + { ucs4be_mbtowc, NULL }, { ucs4be_wctomb, NULL }) + +DEFENCODING(( "UCS-4LE", /* glibc */ + /*"CP12000", Windows */ + ), + ucs4le, + { ucs4le_mbtowc, NULL }, { ucs4le_wctomb, NULL }) + +DEFENCODING(( "UTF-16", /* IANA, RFC 2781 */ + ), + utf16, + { utf16_mbtowc, NULL }, { utf16_wctomb, NULL }) + +DEFENCODING(( "UTF-16BE", /* IANA, RFC 2781 */ + ), + utf16be, + { utf16be_mbtowc, NULL }, { utf16be_wctomb, NULL }) + +DEFENCODING(( "UTF-16LE", /* IANA, RFC 2781 */ + ), + utf16le, + { utf16le_mbtowc, NULL }, { utf16le_wctomb, NULL }) + +DEFENCODING(( "UTF-32", /* IANA, Unicode 3.1 */ + ), + utf32, + { utf32_mbtowc, NULL }, { utf32_wctomb, NULL }) + +DEFENCODING(( "UTF-32BE", /* IANA, Unicode 3.1 */ + ), + utf32be, + { utf32be_mbtowc, NULL }, { utf32be_wctomb, NULL }) + +DEFENCODING(( "UTF-32LE", /* IANA, Unicode 3.1 */ + ), + utf32le, + { utf32le_mbtowc, NULL }, { utf32le_wctomb, NULL }) + +DEFENCODING(( "UTF-7", /* IANA, RFC 2152 */ + "UNICODE-1-1-UTF-7", /* IANA, RFC 1642 */ + "csUnicode11UTF7", /* IANA */ + /*"CP65000", Windows */ + ), + utf7, + { utf7_mbtowc, NULL }, { utf7_wctomb, utf7_reset }) + +DEFENCODING(( "UCS-2-INTERNAL", /* libiconv */ + ), + ucs2internal, + { ucs2internal_mbtowc, NULL }, { ucs2internal_wctomb, NULL }) + +DEFENCODING(( "UCS-2-SWAPPED", /* libiconv */ + ), + ucs2swapped, + { ucs2swapped_mbtowc, NULL }, { ucs2swapped_wctomb, NULL }) + +DEFENCODING(( "UCS-4-INTERNAL", /* libiconv */ + ), + ucs4internal, + { ucs4internal_mbtowc, NULL },{ ucs4internal_wctomb, NULL }) + +DEFENCODING(( "UCS-4-SWAPPED", /* libiconv */ + ), + ucs4swapped, + { ucs4swapped_mbtowc, NULL }, { ucs4swapped_wctomb, NULL }) + +DEFENCODING(( "C99", + ), + c99, + { c99_mbtowc, NULL }, { c99_wctomb, NULL }) + +DEFENCODING(( "JAVA", + ), + java, + { java_mbtowc, NULL }, { java_wctomb, NULL }) + +/* Standard 8-bit encodings */ + +DEFENCODING(( "ISO-8859-1", /* IANA */ + "ISO_8859-1", /* IANA */ + "ISO_8859-1:1987", /* IANA */ + "ISO-IR-100", /* IANA */ + "CP819", /* IANA */ + "IBM819", /* IANA */ + "LATIN1", /* IANA */ + "L1", /* IANA */ + "csISOLatin1", /* IANA */ + "ISO8859-1", /* X11R6.4, glibc, FreeBSD, AIX, IRIX, OSF/1, Solaris */ + /*"ISO8859_1", JDK 1.1 */ + /*"CP28591", Windows */ + ), + iso8859_1, + { iso8859_1_mbtowc, NULL }, { iso8859_1_wctomb, NULL }) +#ifdef USE_HPUX_ALIASES +DEFALIAS( "ISO88591", /* HP-UX */ + iso8859_1) +#endif + +DEFENCODING(( "ISO-8859-2", /* IANA */ + "ISO_8859-2", /* IANA */ + "ISO_8859-2:1987", /* IANA */ + "ISO-IR-101", /* IANA */ + "LATIN2", /* IANA */ + "L2", /* IANA */ + "csISOLatin2", /* IANA */ + "ISO8859-2", /* X11R6.4, glibc, FreeBSD, AIX, IRIX, OSF/1, Solaris */ + /*"ISO8859_2", JDK 1.1 */ + /*"CP28592", Windows */ + ), + iso8859_2, + { iso8859_2_mbtowc, NULL }, { iso8859_2_wctomb, NULL }) +#ifdef USE_HPUX_ALIASES +DEFALIAS( "ISO88592", /* HP-UX */ + iso8859_2) +#endif + +DEFENCODING(( "ISO-8859-3", /* IANA */ + "ISO_8859-3", /* IANA */ + "ISO_8859-3:1988", /* IANA */ + "ISO-IR-109", /* IANA */ + "LATIN3", /* IANA */ + "L3", /* IANA */ + "csISOLatin3", /* IANA */ + "ISO8859-3", /* X11R6.4, glibc, FreeBSD, Solaris */ + /*"ISO8859_3", JDK 1.1 */ + /*"CP28593", Windows */ + ), + iso8859_3, + { iso8859_3_mbtowc, NULL }, { iso8859_3_wctomb, NULL }) + +DEFENCODING(( "ISO-8859-4", /* IANA */ + "ISO_8859-4", /* IANA */ + "ISO_8859-4:1988", /* IANA */ + "ISO-IR-110", /* IANA */ + "LATIN4", /* IANA */ + "L4", /* IANA */ + "csISOLatin4", /* IANA */ + "ISO8859-4", /* X11R6.4, glibc, FreeBSD, OSF/1, Solaris */ + /*"ISO8859_4", JDK 1.1 */ + /*"CP28594", Windows */ + ), + iso8859_4, + { iso8859_4_mbtowc, NULL }, { iso8859_4_wctomb, NULL }) + +DEFENCODING(( "ISO-8859-5", /* IANA */ + "ISO_8859-5", /* IANA */ + "ISO_8859-5:1988", /* IANA */ + "ISO-IR-144", /* IANA */ + "CYRILLIC", /* IANA */ + "csISOLatinCyrillic", /* IANA */ + "ISO8859-5", /* X11R6.4, glibc, FreeBSD, AIX, IRIX, OSF/1, Solaris */ + /*"ISO8859_5", JDK 1.1 */ + /*"CP28595", Windows */ + ), + iso8859_5, + { iso8859_5_mbtowc, NULL }, { iso8859_5_wctomb, NULL }) +#ifdef USE_HPUX_ALIASES +DEFALIAS( "ISO88595", /* HP-UX */ + iso8859_5) +#endif + +DEFENCODING(( "ISO-8859-6", /* IANA */ + "ISO_8859-6", /* IANA */ + "ISO_8859-6:1987", /* IANA */ + "ISO-IR-127", /* IANA */ + "ECMA-114", /* IANA */ + "ASMO-708", /* IANA */ + "ARABIC", /* IANA */ + "csISOLatinArabic", /* IANA */ + "ISO8859-6", /* X11R6.4, glibc, FreeBSD, AIX, Solaris */ + /*"ISO8859_6", JDK 1.1 */ + /*"CP28596", Windows */ + ), + iso8859_6, + { iso8859_6_mbtowc, NULL }, { iso8859_6_wctomb, NULL }) +#ifdef USE_HPUX_ALIASES +DEFALIAS( "ISO88596", /* HP-UX */ + iso8859_6) +#endif + +DEFENCODING(( "ISO-8859-7", /* IANA, RFC 1947 */ + "ISO_8859-7", /* IANA */ + "ISO_8859-7:1987", /* IANA */ + "ISO_8859-7:2003", + "ISO-IR-126", /* IANA */ + "ECMA-118", /* IANA */ + "ELOT_928", /* IANA */ + "GREEK8", /* IANA */ + "GREEK", /* IANA */ + "csISOLatinGreek", /* IANA */ + "ISO8859-7", /* X11R6.4, glibc, FreeBSD, AIX, IRIX, OSF/1, Solaris */ + /*"ISO8859_7", JDK 1.1 */ + /*"CP28597", Windows */ + ), + iso8859_7, + { iso8859_7_mbtowc, NULL }, { iso8859_7_wctomb, NULL }) +#ifdef USE_HPUX_ALIASES +DEFALIAS( "ISO88597", /* HP-UX */ + iso8859_7) +#endif + +DEFENCODING(( "ISO-8859-8", /* IANA */ + "ISO_8859-8", /* IANA */ + "ISO_8859-8:1988", /* IANA */ + "ISO-IR-138", /* IANA */ + "HEBREW", /* IANA */ + "csISOLatinHebrew", /* IANA */ + "ISO8859-8", /* X11R6.4, glibc, FreeBSD, AIX, OSF/1, Solaris */ + /*"ISO8859_8", JDK 1.1 */ + /*"CP28598", Windows */ + /*"CP38598", Windows */ + ), + iso8859_8, + { iso8859_8_mbtowc, NULL }, { iso8859_8_wctomb, NULL }) +#ifdef USE_HPUX_ALIASES +DEFALIAS( "ISO88598", /* HP-UX */ + iso8859_8) +#endif + +DEFENCODING(( "ISO-8859-9", /* IANA */ + "ISO_8859-9", /* IANA */ + "ISO_8859-9:1989", /* IANA */ + "ISO-IR-148", /* IANA */ + "LATIN5", /* IANA */ + "L5", /* IANA */ + "csISOLatin5", /* IANA */ + "ISO8859-9", /* X11R6.4, glibc, FreeBSD, AIX, IRIX, OSF/1, Solaris */ + /*"ISO8859_9", JDK 1.1 */ + /*"CP28599", Windows */ + ), + iso8859_9, + { iso8859_9_mbtowc, NULL }, { iso8859_9_wctomb, NULL }) +#ifdef USE_HPUX_ALIASES +DEFALIAS( "ISO88599", /* HP-UX */ + iso8859_9) +#endif + +DEFENCODING(( "ISO-8859-10", /* IANA */ + "ISO_8859-10", + "ISO_8859-10:1992", /* IANA */ + "ISO-IR-157", /* IANA */ + "LATIN6", /* IANA */ + "L6", /* IANA */ + "csISOLatin6", /* IANA */ + "ISO8859-10", /* X11R6.4, glibc, FreeBSD */ + ), + iso8859_10, + { iso8859_10_mbtowc, NULL }, { iso8859_10_wctomb, NULL }) + +DEFENCODING(( "ISO-8859-11", /* glibc */ + "ISO_8859-11", + "ISO8859-11", /* X11R6.7, glibc */ + ), + iso8859_11, + { iso8859_11_mbtowc, NULL }, { iso8859_11_wctomb, NULL }) + +DEFENCODING(( "ISO-8859-13", /* IANA, glibc */ + "ISO_8859-13", + "ISO-IR-179", /* glibc */ + "LATIN7", /* glibc */ + "L7", /* glibc */ + "ISO8859-13", /* glibc, FreeBSD */ + ), + iso8859_13, + { iso8859_13_mbtowc, NULL }, { iso8859_13_wctomb, NULL }) +#ifdef USE_AIX_ALIASES +DEFALIAS( "IBM-921", /* AIX */ + iso8859_13) +#endif + +DEFENCODING(( "ISO-8859-14", /* IANA, glibc */ + "ISO_8859-14", /* IANA */ + "ISO_8859-14:1998", /* IANA, glibc */ + "ISO-IR-199", /* IANA */ + "LATIN8", /* IANA, glibc */ + "L8", /* IANA, glibc */ + "ISO-CELTIC", /* IANA */ + "ISO8859-14", /* glibc, FreeBSD */ + ), + iso8859_14, + { iso8859_14_mbtowc, NULL }, { iso8859_14_wctomb, NULL }) + +DEFENCODING(( "ISO-8859-15", /* IANA, glibc */ + "ISO_8859-15", /* IANA */ + "ISO_8859-15:1998", /* glibc */ + "ISO-IR-203", + "LATIN-9", /* IANA */ + "ISO8859-15", /* glibc, FreeBSD, AIX, OSF/1, Solaris */ + /*"CP28605", Windows */ + ), + iso8859_15, + { iso8859_15_mbtowc, NULL }, { iso8859_15_wctomb, NULL }) +#ifdef USE_HPUX_ALIASES +DEFALIAS( "ISO885915", /* HP-UX */ + iso8859_15) +#endif + +DEFENCODING(( "ISO-8859-16", /* IANA */ + "ISO_8859-16", /* IANA */ + "ISO_8859-16:2001", /* IANA */ + "ISO-IR-226", /* IANA */ + "LATIN10", /* IANA */ + "L10", /* IANA */ + "ISO8859-16", /* glibc, FreeBSD */ + ), + iso8859_16, + { iso8859_16_mbtowc, NULL }, { iso8859_16_wctomb, NULL }) + +DEFENCODING(( "KOI8-R", /* IANA, RFC 1489, X11R6.4, JDK 1.1 */ + "csKOI8R", /* IANA */ + /*"CP20866", Windows */ + ), + koi8_r, + { koi8_r_mbtowc, NULL }, { koi8_r_wctomb, NULL }) + +DEFENCODING(( "KOI8-U", /* IANA, RFC 2319 */ + ), + koi8_u, + { koi8_u_mbtowc, NULL }, { koi8_u_wctomb, NULL }) + +DEFENCODING(( "KOI8-RU", + ), + koi8_ru, + { koi8_ru_mbtowc, NULL }, { koi8_ru_wctomb, NULL }) + +/* Windows 8-bit encodings */ + +DEFENCODING(( "CP1250", /* JDK 1.1 */ + "WINDOWS-1250", /* IANA */ + "MS-EE", + ), + cp1250, + { cp1250_mbtowc, NULL }, { cp1250_wctomb, NULL }) + +DEFENCODING(( "CP1251", /* JDK 1.1 */ + "WINDOWS-1251", /* IANA */ + "MS-CYRL", + ), + cp1251, + { cp1251_mbtowc, NULL }, { cp1251_wctomb, NULL }) +#ifdef USE_SOLARIS_ALIASES +DEFALIAS( "ANSI-1251", /* Solaris */ + cp1251) +#endif + +DEFENCODING(( "CP1252", /* JDK 1.1 */ + "WINDOWS-1252", /* IANA */ + "MS-ANSI", + ), + cp1252, + { cp1252_mbtowc, NULL }, { cp1252_wctomb, NULL }) +#ifdef USE_AIX_ALIASES +DEFALIAS( "IBM-1252", /* AIX */ + cp1252) +#endif + +DEFENCODING(( "CP1253", /* JDK 1.1 */ + "WINDOWS-1253", /* IANA */ + "MS-GREEK", + ), + cp1253, + { cp1253_mbtowc, NULL }, { cp1253_wctomb, NULL }) + +DEFENCODING(( "CP1254", /* JDK 1.1 */ + "WINDOWS-1254", /* IANA */ + "MS-TURK", + ), + cp1254, + { cp1254_mbtowc, NULL }, { cp1254_wctomb, NULL }) + +DEFENCODING(( "CP1255", /* JDK 1.1 */ + "WINDOWS-1255", /* IANA */ + "MS-HEBR", + ), + cp1255, + { cp1255_mbtowc, cp1255_flushwc }, { cp1255_wctomb, NULL }) + +DEFENCODING(( "CP1256", /* JDK 1.1 */ + "WINDOWS-1256", /* IANA */ + "MS-ARAB", + ), + cp1256, + { cp1256_mbtowc, NULL }, { cp1256_wctomb, NULL }) + +DEFENCODING(( "CP1257", /* JDK 1.1 */ + "WINDOWS-1257", /* IANA */ + "WINBALTRIM", + ), + cp1257, + { cp1257_mbtowc, NULL }, { cp1257_wctomb, NULL }) + +DEFENCODING(( "CP1258", /* JDK 1.1 */ + "WINDOWS-1258", /* IANA */ + ), + cp1258, + { cp1258_mbtowc, cp1258_flushwc }, { cp1258_wctomb, NULL }) + +/* DOS 8-bit encodings */ + +DEFENCODING(( "CP850", /* IANA, JDK 1.1 */ + "IBM850", /* IANA */ + "850", /* IANA */ + "csPC850Multilingual", /* IANA */ + ), + cp850, + { cp850_mbtowc, NULL }, { cp850_wctomb, NULL }) +#ifdef USE_AIX_ALIASES +DEFALIAS( "IBM-850", /* AIX */ + cp850) +#endif + +DEFENCODING(( "CP862", /* IANA, JDK 1.1 */ + "IBM862", /* IANA */ + "862", /* IANA */ + "csPC862LatinHebrew", /* IANA */ + ), + cp862, + { cp862_mbtowc, NULL }, { cp862_wctomb, NULL }) + +DEFENCODING(( "CP866", /* IANA, JDK 1.1 */ + "IBM866", /* IANA */ + "866", /* IANA */ + "csIBM866", /* IANA */ + ), + cp866, + { cp866_mbtowc, NULL }, { cp866_wctomb, NULL }) + +DEFENCODING(( "CP1131", /* FreeBSD, MacOS X */ + ), + cp1131, + { cp1131_mbtowc, NULL }, { cp1131_wctomb, NULL }) +#ifdef USE_AIX_ALIASES +DEFALIAS( "IBM-1131", /* AIX */ + cp1131) +#endif + +/* Macintosh 8-bit encodings */ + +DEFENCODING(( "MacRoman", /* JDK 1.1 */ + /* This is the best table for MACINTOSH. The ones */ + /* in glibc and FreeBSD-iconv are bad quality. */ + "MACINTOSH", /* IANA */ + "MAC", /* IANA */ + "csMacintosh", /* IANA */ + /*"CP10000", Windows */ + ), + mac_roman, + { mac_roman_mbtowc, NULL }, { mac_roman_wctomb, NULL }) + +DEFENCODING(( "MacCentralEurope", /* JDK 1.1 */ + /*"CP10029", Windows */ + ), + mac_centraleurope, + { mac_centraleurope_mbtowc, NULL }, { mac_centraleurope_wctomb, NULL }) + +DEFENCODING(( "MacIceland", /* JDK 1.1 */ + /*"CP10079", Windows */ + ), + mac_iceland, + { mac_iceland_mbtowc, NULL }, { mac_iceland_wctomb, NULL }) + +DEFENCODING(( "MacCroatian", /* JDK 1.1 */ + /*"CP10082", Windows */ + ), + mac_croatian, + { mac_croatian_mbtowc, NULL }, { mac_croatian_wctomb, NULL }) + +DEFENCODING(( "MacRomania", /* JDK 1.1 */ + /*"CP10010", Windows */ + ), + mac_romania, + { mac_romania_mbtowc, NULL }, { mac_romania_wctomb, NULL }) + +DEFENCODING(( "MacCyrillic", /* JDK 1.1 */ + /*"CP10007", Windows */ + ), + mac_cyrillic, + { mac_cyrillic_mbtowc, NULL }, { mac_cyrillic_wctomb, NULL }) + +DEFENCODING(( "MacUkraine", /* JDK 1.1 */ + /*"CP10017", Windows */ + ), + mac_ukraine, + { mac_ukraine_mbtowc, NULL }, { mac_ukraine_wctomb, NULL }) + +DEFENCODING(( "MacGreek", /* JDK 1.1 */ + /*"CP10006", Windows */ + ), + mac_greek, + { mac_greek_mbtowc, NULL }, { mac_greek_wctomb, NULL }) + +DEFENCODING(( "MacTurkish", /* JDK 1.1 */ + /*"CP10081", Windows */ + ), + mac_turkish, + { mac_turkish_mbtowc, NULL }, { mac_turkish_wctomb, NULL }) + +DEFENCODING(( "MacHebrew", /* JDK 1.1 */ + /*"CP10005", Windows */ + ), + mac_hebrew, + { mac_hebrew_mbtowc, NULL }, { mac_hebrew_wctomb, NULL }) + +DEFENCODING(( "MacArabic", /* JDK 1.1 */ + /*"CP10004", Windows */ + ), + mac_arabic, + { mac_arabic_mbtowc, NULL }, { mac_arabic_wctomb, NULL }) + +DEFENCODING(( "MacThai", /* JDK 1.1 */ + /*"CP10021", Windows */ + ), + mac_thai, + { mac_thai_mbtowc, NULL }, { mac_thai_wctomb, NULL }) + +/* Other platform specific 8-bit encodings */ + +DEFENCODING(( "HP-ROMAN8", /* IANA, X11R6.4 */ + "ROMAN8", /* IANA */ + "R8", /* IANA */ + "csHPRoman8", /* IANA */ + ), + hp_roman8, + { hp_roman8_mbtowc, NULL }, { hp_roman8_wctomb, NULL }) + +DEFENCODING(( "NEXTSTEP", + ), + nextstep, + { nextstep_mbtowc, NULL }, { nextstep_wctomb, NULL }) + +/* Regional 8-bit encodings used for a single language */ + +DEFENCODING(( "ARMSCII-8", + ), + armscii_8, + { armscii_8_mbtowc, NULL }, { armscii_8_wctomb, NULL }) + +DEFENCODING(( "GEORGIAN-ACADEMY", + ), + georgian_academy, + { georgian_academy_mbtowc, NULL }, { georgian_academy_wctomb, NULL }) + +DEFENCODING(( "GEORGIAN-PS", + ), + georgian_ps, + { georgian_ps_mbtowc, NULL }, { georgian_ps_wctomb, NULL }) + +DEFENCODING(( "KOI8-T", + ), + koi8_t, + { koi8_t_mbtowc, NULL }, { koi8_t_wctomb, NULL }) + +DEFENCODING(( "PT154", /* IANA, glibc */ + "PTCP154", /* IANA */ + "CP154", /* IANA */ + "CYRILLIC-ASIAN", /* IANA */ + "csPTCP154", /* IANA */ + ), + pt154, + { pt154_mbtowc, NULL }, { pt154_wctomb, NULL }) + +DEFENCODING(( "RK1048", /* IANA, glibc */ + "STRK1048-2002", /* IANA */ + "KZ-1048", /* IANA */ + "csKZ1048", /* IANA */ + ), + rk1048, + { rk1048_mbtowc, NULL }, { rk1048_wctomb, NULL }) + +DEFENCODING(( "MULELAO-1", + ), + mulelao, + { mulelao_mbtowc, NULL }, { mulelao_wctomb, NULL }) + +DEFENCODING(( "CP1133", + "IBM-CP1133", + ), + cp1133, + { cp1133_mbtowc, NULL }, { cp1133_wctomb, NULL }) + +DEFENCODING(( "TIS-620", /* IANA */ + "TIS620", /* glibc, HP-UX */ + "TIS620-0", /* glibc */ + "TIS620.2529-1", /* glibc */ + "TIS620.2533-0", /* glibc */ + "TIS620.2533-1", + "ISO-IR-166", /* glibc */ + ), + tis620, + { tis620_mbtowc, NULL }, { tis620_wctomb, NULL }) +#ifdef USE_OSF1_ALIASES +DEFALIAS( "TACTIS", /* OSF/1 */ + tis620) +#endif +#ifdef USE_SOLARIS_ALIASES +DEFALIAS( "TIS620.2533", /* Solaris */ + tis620) +#endif + +DEFENCODING(( "CP874", /* JDK 1.1 */ + "WINDOWS-874", + ), + cp874, + { cp874_mbtowc, NULL }, { cp874_wctomb, NULL }) + +DEFENCODING(( "VISCII", /* IANA, RFC 1456 */ + "VISCII1.1-1", + "csVISCII", /* IANA */ + ), + viscii, + { viscii_mbtowc, NULL }, { viscii_wctomb, NULL }) + +DEFENCODING(( "TCVN", + "TCVN-5712", + "TCVN5712-1", + "TCVN5712-1:1993", + ), + tcvn, + { tcvn_mbtowc, tcvn_flushwc }, { tcvn_wctomb, NULL }) + +/* CJK character sets (not documented) */ + +DEFENCODING(( "JIS_C6220-1969-RO", /* IANA */ + "ISO646-JP", /* IANA */ + "ISO-IR-14", /* IANA */ + "JP", /* IANA */ + "csISO14JISC6220ro", /* IANA */ + ), + iso646_jp, + { iso646_jp_mbtowc, NULL }, { iso646_jp_wctomb, NULL }) + +DEFENCODING(( "JIS_X0201", /* IANA */ + "JISX0201-1976", + "X0201", /* IANA */ + "csHalfWidthKatakana", /* IANA */ + /*"JISX0201.1976-0", X11R6.4 */ + /*"JIS0201", JDK 1.1 */ + ), + jisx0201, + { jisx0201_mbtowc, NULL }, { jisx0201_wctomb, NULL }) + +DEFENCODING(( "JIS_X0208", + "JIS_X0208-1983", /* IANA */ + "JIS_X0208-1990", + "JIS0208", + "X0208", /* IANA */ + "ISO-IR-87", /* IANA */ + "JIS_C6226-1983", /* IANA */ + "csISO87JISX0208", /* IANA */ + /*"JISX0208.1983-0", X11R6.4 */ + /*"JISX0208.1990-0", X11R6.4 */ + /*"JIS0208", JDK 1.1 */ + ), + jisx0208, + { jisx0208_mbtowc, NULL }, { jisx0208_wctomb, NULL }) + +DEFENCODING(( "JIS_X0212", + "JIS_X0212.1990-0", + "JIS_X0212-1990", /* IANA */ + "X0212", /* IANA */ + "ISO-IR-159", /* IANA */ + "csISO159JISX02121990", /* IANA */ + /*"JISX0212.1990-0", X11R6.4 */ + /*"JIS0212", JDK 1.1 */ + ), + jisx0212, + { jisx0212_mbtowc, NULL }, { jisx0212_wctomb, NULL }) + +DEFENCODING(( "GB_1988-80", /* IANA */ + "ISO646-CN", /* IANA */ + "ISO-IR-57", /* IANA */ + "CN", /* IANA */ + "csISO57GB1988", /* IANA */ + ), + iso646_cn, + { iso646_cn_mbtowc, NULL }, { iso646_cn_wctomb, NULL }) + +DEFENCODING(( "GB_2312-80", /* IANA */ + "ISO-IR-58", /* IANA */ + "csISO58GB231280", /* IANA */ + "CHINESE", /* IANA */ + /*"GB2312.1980-0", X11R6.4 */ + ), + gb2312, + { gb2312_mbtowc, NULL }, { gb2312_wctomb, NULL }) + +DEFENCODING(( "ISO-IR-165", + "CN-GB-ISOIR165", /* RFC 1922 */ + ), + isoir165, + { isoir165_mbtowc, NULL }, { isoir165_wctomb, NULL }) + +DEFENCODING(( "KSC_5601", /* IANA */ + "KS_C_5601-1987", /* IANA */ + "KS_C_5601-1989", /* IANA */ + "ISO-IR-149", /* IANA */ + "csKSC56011987", /* IANA */ + "KOREAN", /* IANA */ + /*"KSC5601.1987-0", X11R6.4 */ + /*"KSX1001:1992", Ken Lunde */ + ), + ksc5601, + { ksc5601_mbtowc, NULL }, { ksc5601_wctomb, NULL }) + +/* CJK encodings */ + +DEFENCODING(( "EUC-JP", /* IANA */ + "EUCJP", /* glibc, HP-UX, IRIX, OSF/1, Solaris */ + "Extended_UNIX_Code_Packed_Format_for_Japanese", /* IANA */ + "csEUCPkdFmtJapanese", /* IANA */ + /*"EUC_JP", JDK 1.1 */ + /*"CP51932", Windows */ + ), + euc_jp, + { euc_jp_mbtowc, NULL }, { euc_jp_wctomb, NULL }) +#ifdef USE_AIX_ALIASES +DEFALIAS( "IBM-EUCJP", /* AIX */ + euc_jp) +#endif +#ifdef USE_OSF1_ALIASES +DEFALIAS( "SDECKANJI", /* OSF/1 */ + euc_jp) +#endif + +DEFENCODING(( "SHIFT_JIS", /* IANA */ + "SHIFT-JIS", /* glibc */ + "SJIS", /* JDK 1.1, HP-UX, OSF/1 */ + "MS_KANJI", /* IANA */ + "csShiftJIS", /* IANA */ + ), + sjis, + { sjis_mbtowc, NULL }, { sjis_wctomb, NULL }) +#ifdef USE_SOLARIS_ALIASES +DEFALIAS( "PCK", /* Solaris */ + sjis) +#endif + +DEFENCODING(( "CP932", /* glibc */ + ), + cp932, + { cp932_mbtowc, NULL }, { cp932_wctomb, NULL }) +#ifdef USE_AIX_ALIASES +DEFALIAS( "IBM-932", /* AIX */ + cp932) +#endif + +DEFENCODING(( "ISO-2022-JP", /* IANA, RFC 1468 */ + "csISO2022JP", /* IANA */ + /*"ISO2022JP", JDK 1.1 */ + ), + iso2022_jp, + { iso2022_jp_mbtowc, NULL }, { iso2022_jp_wctomb, iso2022_jp_reset }) + +DEFENCODING(( "ISO-2022-JP-1", /* RFC 2237 */ + ), + iso2022_jp1, + { iso2022_jp1_mbtowc, NULL }, { iso2022_jp1_wctomb, iso2022_jp1_reset }) + +DEFENCODING(( "ISO-2022-JP-2", /* IANA, RFC 1554 */ + "csISO2022JP2", /* IANA */ + ), + iso2022_jp2, + { iso2022_jp2_mbtowc, NULL }, { iso2022_jp2_wctomb, iso2022_jp2_reset }) + +DEFENCODING(( "EUC-CN", /* glibc */ + "EUCCN", /* glibc, IRIX */ + "GB2312", /* IANA */ + "CN-GB", /* RFC 1922 */ + "csGB2312", /* IANA */ + /*"EUC_CN", JDK 1.1 */ + /*"CP51936", Windows */ + ), + euc_cn, + { euc_cn_mbtowc, NULL }, { euc_cn_wctomb, NULL }) +#ifdef USE_AIX_ALIASES +DEFALIAS( "IBM-EUCCN", /* AIX */ + euc_cn) +#endif +#ifdef USE_HPUX_ALIASES +DEFALIAS( "HP15CN", /* HP-UX */ + euc_cn) +#endif +#ifdef USE_OSF1_ALIASES +DEFALIAS( "DECHANZI", /* OSF/1 */ + euc_cn) +#endif + +DEFENCODING(( "GBK", /* IANA, JDK 1.1 */ + ), + ces_gbk, + { ces_gbk_mbtowc, NULL }, { ces_gbk_wctomb, NULL }) + +DEFENCODING(( "CP936", /* IANA */ + "MS936", /* IANA */ + "WINDOWS-936", /* IANA */ + ), + cp936, + { cp936_mbtowc, NULL }, { cp936_wctomb, NULL }) + +DEFENCODING(( "GB18030", /* IANA, glibc */ + /*"CP54936", Windows */ + ), + gb18030, + { gb18030_mbtowc, NULL }, { gb18030_wctomb, NULL }) + +DEFENCODING(( "ISO-2022-CN", /* IANA, RFC 1922 */ + "csISO2022CN", + /*"ISO2022CN", JDK 1.1 */ + ), + iso2022_cn, + { iso2022_cn_mbtowc, NULL }, { iso2022_cn_wctomb, iso2022_cn_reset }) + +DEFENCODING(( "ISO-2022-CN-EXT", /* IANA, RFC 1922 */ + ), + iso2022_cn_ext, + { iso2022_cn_ext_mbtowc, NULL }, { iso2022_cn_ext_wctomb, iso2022_cn_ext_reset }) + +DEFENCODING(( "HZ", /* RFC 1843 */ + "HZ-GB-2312", /* IANA, RFC 1842 */ + ), + hz, + { hz_mbtowc, NULL }, { hz_wctomb, hz_reset }) + +DEFENCODING(( "EUC-TW", /* glibc */ + "EUCTW", /* glibc, HP-UX, IRIX, OSF/1 */ + "csEUCTW", + /*"EUC_TW", JDK 1.1 */ + /*"CP51950", Windows */ + ), + euc_tw, + { euc_tw_mbtowc, NULL }, { euc_tw_wctomb, NULL }) +#ifdef USE_AIX_ALIASES +DEFALIAS( "IBM-EUCTW", /* AIX */ + euc_tw) +#endif +#ifdef USE_SOLARIS_ALIASES +DEFALIAS( "CNS11643", /* Solaris */ + euc_tw) +#endif + +DEFENCODING(( "BIG5", /* IANA, JDK 1.1 */ + "BIG-5", /* glibc */ + "BIG-FIVE", /* glibc */ + "BIGFIVE", /* glibc */ + "CN-BIG5", /* RFC 1922 */ + "csBig5", /* IANA */ + ), + ces_big5, + { ces_big5_mbtowc, NULL }, { ces_big5_wctomb, NULL }) + +DEFENCODING(( "CP950", /* JDK 1.1 */ + ), + cp950, + { cp950_mbtowc, NULL }, { cp950_wctomb, NULL }) + +DEFENCODING(( "BIG5-HKSCS:1999", + ), + big5hkscs1999, + { big5hkscs1999_mbtowc, big5hkscs1999_flushwc }, { big5hkscs1999_wctomb, big5hkscs1999_reset }) + +DEFENCODING(( "BIG5-HKSCS:2001", + ), + big5hkscs2001, + { big5hkscs2001_mbtowc, big5hkscs2001_flushwc }, { big5hkscs2001_wctomb, big5hkscs2001_reset }) + +DEFENCODING(( "BIG5-HKSCS", /* IANA */ + "BIG5HKSCS", /* glibc */ + "BIG5-HKSCS:2004", + ), + big5hkscs2004, + { big5hkscs2004_mbtowc, big5hkscs2004_flushwc }, { big5hkscs2004_wctomb, big5hkscs2004_reset }) + +DEFENCODING(( "EUC-KR", /* IANA, RFC 1557 */ + "EUCKR", /* glibc, HP-UX, IRIX, OSF/1 */ + "csEUCKR", /* IANA */ + /*"EUC_KR", JDK 1.1 */ + /*"CP51949", Windows */ + ), + euc_kr, + { euc_kr_mbtowc, NULL }, { euc_kr_wctomb, NULL }) +#ifdef USE_AIX_ALIASES +DEFALIAS( "IBM-EUCKR", /* AIX */ + euc_kr) +#endif +#ifdef USE_OSF1_ALIASES +DEFALIAS( "DECKOREAN", /* OSF/1 */ + euc_kr) +#endif +#ifdef USE_SOLARIS_ALIASES +DEFALIAS( "5601", /* Solaris */ + euc_kr) +#endif + +DEFENCODING(( "CP949", /* JDK 1.1 */ + "UHC", /* glibc */ + ), + cp949, + { cp949_mbtowc, NULL }, { cp949_wctomb, NULL }) +#ifdef USE_OSF1_ALIASES +DEFALIAS( "KSC5601", /* OSF/1 */ + cp949) +#endif + +DEFENCODING(( "JOHAB", /* glibc */ + "CP1361", /* glibc */ + ), + johab, + { johab_mbtowc, NULL }, { johab_wctomb, NULL }) +#ifdef USE_SOLARIS_ALIASES +DEFALIAS( "KO_KR.JOHAP92", /* Solaris */ + johab) +#endif + +DEFENCODING(( "ISO-2022-KR", /* IANA, RFC 1557 */ + "csISO2022KR", /* IANA */ + /*"ISO2022KR", JDK 1.1 */ + ), + iso2022_kr, + { iso2022_kr_mbtowc, NULL }, { iso2022_kr_wctomb, iso2022_kr_reset }) + diff --git a/graf2d/win32gdk/gdk/src/iconv/encodings_aix.def b/graf2d/win32gdk/gdk/src/iconv/encodings_aix.def new file mode 100644 index 00000000000..259452eb538 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/encodings_aix.def @@ -0,0 +1,97 @@ +/* Copyright (C) 2000-2002, 2008 Free Software Foundation, Inc. + This file is part of the GNU LIBICONV Library. + + The GNU LIBICONV Library is free software; you can redistribute it + and/or modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + The GNU LIBICONV Library is distributed in the hope that it will be + useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU LIBICONV Library; see the file COPYING.LIB. + If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* Encodings used by system dependent locales on AIX. */ + +DEFENCODING(( "CP856", + ), + cp856, + { cp856_mbtowc, NULL }, { cp856_wctomb, NULL }) +#ifdef USE_AIX_ALIASES +DEFALIAS( "IBM-856", /* AIX */ + cp856) +#endif + +DEFENCODING(( "CP922", + ), + cp922, + { cp922_mbtowc, NULL }, { cp922_wctomb, NULL }) +#ifdef USE_AIX_ALIASES +DEFALIAS( "IBM-922", /* AIX */ + cp922) +#endif + +DEFENCODING(( "CP943", + ), + cp943, + { cp943_mbtowc, NULL }, { cp943_wctomb, NULL }) +#ifdef USE_AIX_ALIASES +DEFALIAS( "IBM-943", /* AIX */ + cp943) +#endif + +DEFENCODING(( "CP1046", + ), + cp1046, + { cp1046_mbtowc, NULL }, { cp1046_wctomb, NULL }) +#ifdef USE_AIX_ALIASES +DEFALIAS( "IBM-1046", /* AIX */ + cp1046) +#endif + +DEFENCODING(( "CP1124", + ), + cp1124, + { cp1124_mbtowc, NULL }, { cp1124_wctomb, NULL }) +#ifdef USE_AIX_ALIASES +DEFALIAS( "IBM-1124", /* AIX */ + cp1124) +#endif + +DEFENCODING(( "CP1129", + ), + cp1129, + { cp1129_mbtowc, NULL }, { cp1129_wctomb, NULL }) +#ifdef USE_AIX_ALIASES +DEFALIAS( "IBM-1129", /* AIX */ + cp1129) +#endif + +DEFENCODING(( "CP1161", + "IBM1161", /* glibc */ + "IBM-1161", /* glibc */ + "csIBM1161", /* glibc */ + ), + cp1161, + { cp1161_mbtowc, NULL }, { cp1161_wctomb, NULL }) + +DEFENCODING(( "CP1162", + "IBM1162", /* glibc */ + "IBM-1162", /* glibc */ + "csIBM1162", /* glibc */ + ), + cp1162, + { cp1162_mbtowc, NULL }, { cp1162_wctomb, NULL }) + +DEFENCODING(( "CP1163", + "IBM1163", /* glibc */ + "IBM-1163", /* glibc */ + "csIBM1163", /* glibc */ + ), + cp1163, + { cp1163_mbtowc, NULL }, { cp1163_wctomb, NULL }) diff --git a/graf2d/win32gdk/gdk/src/iconv/encodings_dos.def b/graf2d/win32gdk/gdk/src/iconv/encodings_dos.def new file mode 100644 index 00000000000..c9d30c8c0ff --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/encodings_dos.def @@ -0,0 +1,127 @@ +/* Copyright (C) 2001-2002 Free Software Foundation, Inc. + This file is part of the GNU LIBICONV Library. + + The GNU LIBICONV Library is free software; you can redistribute it + and/or modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + The GNU LIBICONV Library is distributed in the hope that it will be + useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU LIBICONV Library; see the file COPYING.LIB. + If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* Encodings used by system dependent locales on MSDOS. */ + +DEFENCODING(( "CP437", /* IANA, JDK 1.1 */ + "IBM437", /* IANA */ + "437", /* IANA */ + "csPC8CodePage437", /* IANA */ + ), + cp437, + { cp437_mbtowc, NULL }, { cp437_wctomb, NULL }) + +DEFENCODING(( "CP737", /* JDK 1.1 */ + ), + cp737, + { cp737_mbtowc, NULL }, { cp737_wctomb, NULL }) + +DEFENCODING(( "CP775", /* IANA, JDK 1.1 */ + "IBM775", /* IANA */ + "csPC775Baltic", /* IANA */ + ), + cp775, + { cp775_mbtowc, NULL }, { cp775_wctomb, NULL }) + +DEFENCODING(( "CP852", /* IANA, JDK 1.1 */ + "IBM852", /* IANA */ + "852", /* IANA */ + "csPCp852", /* IANA */ + ), + cp852, + { cp852_mbtowc, NULL }, { cp852_wctomb, NULL }) + +DEFENCODING(( "CP853", + ), + cp853, + { cp853_mbtowc, NULL }, { cp853_wctomb, NULL }) + +DEFENCODING(( "CP855", /* IANA, JDK 1.1 */ + "IBM855", /* IANA */ + "855", /* IANA */ + "csIBM855", /* IANA */ + ), + cp855, + { cp855_mbtowc, NULL }, { cp855_wctomb, NULL }) + +DEFENCODING(( "CP857", /* IANA, JDK 1.1 */ + "IBM857", /* IANA */ + "857", /* IANA */ + "csIBM857", /* IANA */ + ), + cp857, + { cp857_mbtowc, NULL }, { cp857_wctomb, NULL }) + +DEFENCODING(( "CP858", /* JDK 1.1.7 */ + ), + cp858, + { cp858_mbtowc, NULL }, { cp858_wctomb, NULL }) + +DEFENCODING(( "CP860", /* IANA, JDK 1.1 */ + "IBM860", /* IANA */ + "860", /* IANA */ + "csIBM860", /* IANA */ + ), + cp860, + { cp860_mbtowc, NULL }, { cp860_wctomb, NULL }) + +DEFENCODING(( "CP861", /* IANA, JDK 1.1 */ + "IBM861", /* IANA */ + "861", /* IANA */ + "CP-IS", /* IANA */ + "csIBM861", /* IANA */ + ), + cp861, + { cp861_mbtowc, NULL }, { cp861_wctomb, NULL }) + +DEFENCODING(( "CP863", /* IANA, JDK 1.1 */ + "IBM863", /* IANA */ + "863", /* IANA */ + "csIBM863", /* IANA */ + ), + cp863, + { cp863_mbtowc, NULL }, { cp863_wctomb, NULL }) + +DEFENCODING(( "CP864", /* IANA, JDK 1.1 */ + "IBM864", /* IANA */ + "csIBM864", /* IANA */ + ), + cp864, + { cp864_mbtowc, NULL }, { cp864_wctomb, NULL }) + +DEFENCODING(( "CP865", /* IANA, JDK 1.1 */ + "IBM865", /* IANA */ + "865", /* IANA */ + "csIBM865", /* IANA */ + ), + cp865, + { cp865_mbtowc, NULL }, { cp865_wctomb, NULL }) + +DEFENCODING(( "CP869", /* IANA, JDK 1.1 */ + "IBM869", /* IANA */ + "869", /* IANA */ + "CP-GR", /* IANA */ + "csIBM869", /* IANA */ + ), + cp869, + { cp869_mbtowc, NULL }, { cp869_wctomb, NULL }) + +DEFENCODING(( "CP1125", /* ICU */ + ), + cp1125, + { cp1125_mbtowc, NULL }, { cp1125_wctomb, NULL }) diff --git a/graf2d/win32gdk/gdk/src/iconv/encodings_extra.def b/graf2d/win32gdk/gdk/src/iconv/encodings_extra.def new file mode 100644 index 00000000000..614422b68d6 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/encodings_extra.def @@ -0,0 +1,57 @@ +/* Copyright (C) 2002, 2005, 2008 Free Software Foundation, Inc. + This file is part of the GNU LIBICONV Library. + + The GNU LIBICONV Library is free software; you can redistribute it + and/or modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + The GNU LIBICONV Library is distributed in the hope that it will be + useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU LIBICONV Library; see the file COPYING.LIB. + If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + Fifth Floor, Boston, MA 02110-1301, USA. */ + +DEFENCODING(( "EUC-JISX0213", + "EUC-JIS-2004", /* x0213.org */ + ), + euc_jisx0213, + { euc_jisx0213_mbtowc, euc_jisx0213_flushwc }, { euc_jisx0213_wctomb, euc_jisx0213_reset }) + +DEFENCODING(( "SHIFT_JISX0213", + "SHIFT_JIS-2004", /* x0213.org */ + ), + shift_jisx0213, + { shift_jisx0213_mbtowc, shift_jisx0213_flushwc }, { shift_jisx0213_wctomb, shift_jisx0213_reset }) + +DEFENCODING(( "ISO-2022-JP-3", + "ISO-2022-JP-2004", /* x0213.org */ + ), + iso2022_jp3, + { iso2022_jp3_mbtowc, iso2022_jp3_flushwc }, { iso2022_jp3_wctomb, iso2022_jp3_reset }) + +DEFENCODING(( "BIG5-2003", + ), + big5_2003, + { big5_2003_mbtowc, NULL }, { big5_2003_wctomb, NULL }) + +DEFENCODING(( "TDS565", + "ISO-IR-230", + ), + tds565, + { tds565_mbtowc, NULL }, { tds565_wctomb, NULL }) + +DEFENCODING(( "ATARIST", + "ATARI", + ), + atarist, + { atarist_mbtowc, NULL }, { atarist_wctomb, NULL }) + +DEFENCODING(( "RISCOS-LATIN1", + ), + riscos1, + { riscos1_mbtowc, NULL }, { riscos1_wctomb, NULL }) diff --git a/graf2d/win32gdk/gdk/src/iconv/encodings_local.def b/graf2d/win32gdk/gdk/src/iconv/encodings_local.def new file mode 100644 index 00000000000..4e793e5bd97 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/encodings_local.def @@ -0,0 +1,29 @@ +/* Copyright (C) 2000-2001 Free Software Foundation, Inc. + This file is part of the GNU LIBICONV Library. + + The GNU LIBICONV Library is free software; you can redistribute it + and/or modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + The GNU LIBICONV Library is distributed in the hope that it will be + useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU LIBICONV Library; see the file COPYING.LIB. + If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* Names for locale dependent encodings. */ + +DEFENCODING(( "CHAR", + ), + local_char, + { NULL, NULL }, { NULL, NULL }) + +DEFENCODING(( "WCHAR_T", /* glibc */ + ), + local_wchar_t, + { NULL, NULL }, { NULL, NULL }) diff --git a/graf2d/win32gdk/gdk/src/iconv/encodings_osf1.def b/graf2d/win32gdk/gdk/src/iconv/encodings_osf1.def new file mode 100644 index 00000000000..7912854bbbd --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/encodings_osf1.def @@ -0,0 +1,37 @@ +/* Copyright (C) 2001, 2008 Free Software Foundation, Inc. + This file is part of the GNU LIBICONV Library. + + The GNU LIBICONV Library is free software; you can redistribute it + and/or modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + The GNU LIBICONV Library is distributed in the hope that it will be + useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU LIBICONV Library; see the file COPYING.LIB. + If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* Encodings used by system dependent locales on OSF/1 a.k.a. Tru64. */ + +DEFENCODING(( "DEC-KANJI", + ), + dec_kanji, + { dec_kanji_mbtowc, NULL }, { dec_kanji_wctomb, NULL }) +#ifdef USE_OSF1_ALIASES +DEFALIAS( "DECKANJI", /* OSF/1 */ + dec_kanji) +#endif + +DEFENCODING(( "DEC-HANYU", + ), + dec_hanyu, + { dec_hanyu_mbtowc, NULL }, { dec_hanyu_wctomb, NULL }) +#ifdef USE_OSF1_ALIASES +DEFALIAS( "DECHANYU", /* OSF/1 */ + dec_hanyu) +#endif diff --git a/graf2d/win32gdk/gdk/src/iconv/euc_cn.h b/graf2d/win32gdk/gdk/src/iconv/euc_cn.h new file mode 100644 index 00000000000..a25417a989c --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/euc_cn.h @@ -0,0 +1,72 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * EUC-CN + */ + +static int +euc_cn_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + /* Code set 0 (ASCII or GB 1988-89) */ + if (c < 0x80) + return ascii_mbtowc(conv,pwc,s,n); + /* Code set 1 (GB 2312-1980) */ + if (c >= 0xa1 && c < 0xff) { + if (n < 2) + return RET_TOOFEW(0); + { + unsigned char c2 = s[1]; + if (c2 >= 0xa1 && c2 < 0xff) { + unsigned char buf[2]; + buf[0] = c-0x80; buf[1] = c2-0x80; + return gb2312_mbtowc(conv,pwc,buf,2); + } else + return RET_ILSEQ; + } + } + return RET_ILSEQ; +} + +static int +euc_cn_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char buf[2]; + int ret; + + /* Code set 0 (ASCII or GB 1988-89) */ + ret = ascii_wctomb(conv,r,wc,n); + if (ret != RET_ILUNI) + return ret; + + /* Code set 1 (GB 2312-1980) */ + ret = gb2312_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (n < 2) + return RET_TOOSMALL; + r[0] = buf[0]+0x80; + r[1] = buf[1]+0x80; + return 2; + } + + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/euc_jisx0213.h b/graf2d/win32gdk/gdk/src/iconv/euc_jisx0213.h new file mode 100644 index 00000000000..4d417ca12e1 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/euc_jisx0213.h @@ -0,0 +1,268 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * EUC-JISX0213 + */ + +/* The structure of EUC-JISX0213 is as follows: + + 0x00..0x7F: ASCII + + 0x8E{A1..FE}: JISX0201 Katakana, with prefix 0x8E, offset by +0x80. + + 0x8F{A1..FE}{A1..FE}: JISX0213 plane 2, with prefix 0x8F, offset by +0x8080. + + 0x{A1..FE}{A1..FE}: JISX0213 plane 1, offset by +0x8080. + + Note that some JISX0213 characters are not contained in Unicode 3.2 + and are therefore best represented as sequences of Unicode characters. +*/ + +#include "jisx0213.h" +#include "flushwc.h" + +static int +euc_jisx0213_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + ucs4_t last_wc = conv->istate; + if (last_wc) { + /* Output the buffered character. */ + conv->istate = 0; + *pwc = last_wc; + return 0; /* Don't advance the input pointer. */ + } else { + unsigned char c = *s; + if (c < 0x80) { + /* Plain ASCII character. */ + *pwc = (ucs4_t) c; + return 1; + } else { + if ((c >= 0xa1 && c <= 0xfe) || c == 0x8e || c == 0x8f) { + /* Two or three byte character. */ + if (n >= 2) { + unsigned char c2 = s[1]; + if (c2 >= 0xa1 && c2 <= 0xfe) { + if (c == 0x8e) { + /* Half-width katakana. */ + if (c2 <= 0xdf) { + *pwc = c2 + 0xfec0; + return 2; + } + } else { + ucs4_t wc; + if (c == 0x8f) { + /* JISX 0213 plane 2. */ + if (n >= 3) { + unsigned char c3 = s[2]; + wc = jisx0213_to_ucs4(0x200-0x80+c2,c3^0x80); + } else + return RET_TOOFEW(0); + } else { + /* JISX 0213 plane 1. */ + wc = jisx0213_to_ucs4(0x100-0x80+c,c2^0x80); + } + if (wc) { + if (wc < 0x80) { + /* It's a combining character. */ + ucs4_t wc1 = jisx0213_to_ucs_combining[wc - 1][0]; + ucs4_t wc2 = jisx0213_to_ucs_combining[wc - 1][1]; + /* We cannot output two Unicode characters at once. So, + output the first character and buffer the second one. */ + *pwc = wc1; + conv->istate = wc2; + } else + *pwc = wc; + return (c == 0x8f ? 3 : 2); + } + } + } + } else + return RET_TOOFEW(0); + } + return RET_ILSEQ; + } + } +} + +#define euc_jisx0213_flushwc normal_flushwc + +/* Composition tables for each of the relevant combining characters. */ +static const struct { unsigned short base; unsigned short composed; } euc_jisx0213_comp_table_data[] = { +#define euc_jisx0213_comp_table02e5_idx 0 +#define euc_jisx0213_comp_table02e5_len 1 + { 0xabe4, 0xabe5 }, /* 0x12B65 = 0x12B64 U+02E5 */ +#define euc_jisx0213_comp_table02e9_idx (euc_jisx0213_comp_table02e5_idx+euc_jisx0213_comp_table02e5_len) +#define euc_jisx0213_comp_table02e9_len 1 + { 0xabe0, 0xabe6 }, /* 0x12B66 = 0x12B60 U+02E9 */ +#define euc_jisx0213_comp_table0300_idx (euc_jisx0213_comp_table02e9_idx+euc_jisx0213_comp_table02e9_len) +#define euc_jisx0213_comp_table0300_len 5 + { 0xa9dc, 0xabc4 }, /* 0x12B44 = 0x1295C U+0300 */ + { 0xabb8, 0xabc8 }, /* 0x12B48 = 0x12B38 U+0300 */ + { 0xabb7, 0xabca }, /* 0x12B4A = 0x12B37 U+0300 */ + { 0xabb0, 0xabcc }, /* 0x12B4C = 0x12B30 U+0300 */ + { 0xabc3, 0xabce }, /* 0x12B4E = 0x12B43 U+0300 */ +#define euc_jisx0213_comp_table0301_idx (euc_jisx0213_comp_table0300_idx+euc_jisx0213_comp_table0300_len) +#define euc_jisx0213_comp_table0301_len 4 + { 0xabb8, 0xabc9 }, /* 0x12B49 = 0x12B38 U+0301 */ + { 0xabb7, 0xabcb }, /* 0x12B4B = 0x12B37 U+0301 */ + { 0xabb0, 0xabcd }, /* 0x12B4D = 0x12B30 U+0301 */ + { 0xabc3, 0xabcf }, /* 0x12B4F = 0x12B43 U+0301 */ +#define euc_jisx0213_comp_table309a_idx (euc_jisx0213_comp_table0301_idx+euc_jisx0213_comp_table0301_len) +#define euc_jisx0213_comp_table309a_len 14 + { 0xa4ab, 0xa4f7 }, /* 0x12477 = 0x1242B U+309A */ + { 0xa4ad, 0xa4f8 }, /* 0x12478 = 0x1242D U+309A */ + { 0xa4af, 0xa4f9 }, /* 0x12479 = 0x1242F U+309A */ + { 0xa4b1, 0xa4fa }, /* 0x1247A = 0x12431 U+309A */ + { 0xa4b3, 0xa4fb }, /* 0x1247B = 0x12433 U+309A */ + { 0xa5ab, 0xa5f7 }, /* 0x12577 = 0x1252B U+309A */ + { 0xa5ad, 0xa5f8 }, /* 0x12578 = 0x1252D U+309A */ + { 0xa5af, 0xa5f9 }, /* 0x12579 = 0x1252F U+309A */ + { 0xa5b1, 0xa5fa }, /* 0x1257A = 0x12531 U+309A */ + { 0xa5b3, 0xa5fb }, /* 0x1257B = 0x12533 U+309A */ + { 0xa5bb, 0xa5fc }, /* 0x1257C = 0x1253B U+309A */ + { 0xa5c4, 0xa5fd }, /* 0x1257D = 0x12544 U+309A */ + { 0xa5c8, 0xa5fe }, /* 0x1257E = 0x12548 U+309A */ + { 0xa6f5, 0xa6f8 }, /* 0x12678 = 0x12675 U+309A */ +}; + +static int +euc_jisx0213_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + int count = 0; + unsigned short lasttwo = conv->ostate; + + if (lasttwo) { + /* Attempt to combine the last character with this one. */ + unsigned int idx; + unsigned int len; + + if (wc == 0x02e5) + idx = euc_jisx0213_comp_table02e5_idx, + len = euc_jisx0213_comp_table02e5_len; + else if (wc == 0x02e9) + idx = euc_jisx0213_comp_table02e9_idx, + len = euc_jisx0213_comp_table02e9_len; + else if (wc == 0x0300) + idx = euc_jisx0213_comp_table0300_idx, + len = euc_jisx0213_comp_table0300_len; + else if (wc == 0x0301) + idx = euc_jisx0213_comp_table0301_idx, + len = euc_jisx0213_comp_table0301_len; + else if (wc == 0x309a) + idx = euc_jisx0213_comp_table309a_idx, + len = euc_jisx0213_comp_table309a_len; + else + goto not_combining; + + do + if (euc_jisx0213_comp_table_data[idx].base == lasttwo) + break; + while (++idx, --len > 0); + + if (len > 0) { + /* Output the combined character. */ + if (n >= 2) { + lasttwo = euc_jisx0213_comp_table_data[idx].composed; + r[0] = (lasttwo >> 8) & 0xff; + r[1] = lasttwo & 0xff; + conv->ostate = 0; + return 2; + } else + return RET_TOOSMALL; + } + + not_combining: + /* Output the buffered character. */ + if (n < 2) + return RET_TOOSMALL; + r[0] = (lasttwo >> 8) & 0xff; + r[1] = lasttwo & 0xff; + r += 2; + count = 2; + } + + if (wc < 0x80) { + /* Plain ASCII character. */ + if (n > count) { + r[0] = (unsigned char) wc; + conv->ostate = 0; + return count+1; + } else + return RET_TOOSMALL; + } else if (wc >= 0xff61 && wc <= 0xff9f) { + /* Half-width katakana. */ + if (n >= count+2) { + r[0] = 0x8e; + r[1] = wc - 0xfec0; + conv->ostate = 0; + return count+2; + } else + return RET_TOOSMALL; + } else { + unsigned short jch = ucs4_to_jisx0213(wc); + if (jch != 0) { + if (jch & 0x0080) { + /* A possible match in comp_table_data. We have to buffer it. */ + /* We know it's a JISX 0213 plane 1 character. */ + if (jch & 0x8000) abort(); + conv->ostate = jch | 0x8080; + return count+0; + } + if (jch & 0x8000) { + /* JISX 0213 plane 2. */ + if (n >= count+3) { + r[0] = 0x8f; + r[1] = (jch >> 8) | 0x80; + r[2] = (jch & 0xff) | 0x80; + conv->ostate = 0; + return count+3; + } else + return RET_TOOSMALL; + } else { + /* JISX 0213 plane 1. */ + if (n >= count+2) { + r[0] = (jch >> 8) | 0x80; + r[1] = (jch & 0xff) | 0x80; + conv->ostate = 0; + return count+2; + } else + return RET_TOOSMALL; + } + } + return RET_ILUNI; + } +} + +static int +euc_jisx0213_reset (conv_t conv, unsigned char *r, int n) +{ + state_t lasttwo = conv->ostate; + + if (lasttwo) { + if (n < 2) + return RET_TOOSMALL; + r[0] = (lasttwo >> 8) & 0xff; + r[1] = lasttwo & 0xff; + /* conv->ostate = 0; will be done by the caller */ + return 2; + } else + return 0; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/euc_jp.h b/graf2d/win32gdk/gdk/src/iconv/euc_jp.h new file mode 100644 index 00000000000..84fa2e7eb03 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/euc_jp.h @@ -0,0 +1,191 @@ +/* + * Copyright (C) 1999-2001, 2005 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * EUC-JP + */ + +static int +euc_jp_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + /* Code set 0 (ASCII or JIS X 0201-1976 Roman) */ + if (c < 0x80) + return ascii_mbtowc(conv,pwc,s,n); + /* Code set 1 (JIS X 0208) */ + if (c >= 0xa1 && c < 0xff) { + if (n < 2) + return RET_TOOFEW(0); + if (c < 0xf5) { + unsigned char c2 = s[1]; + if (c2 >= 0xa1 && c2 < 0xff) { + unsigned char buf[2]; + buf[0] = c-0x80; buf[1] = c2-0x80; + return jisx0208_mbtowc(conv,pwc,buf,2); + } else + return RET_ILSEQ; + } else { + /* User-defined range. See + * Ken Lunde's "CJKV Information Processing", table 4-66, p. 206. */ + unsigned char c2 = s[1]; + if (c2 >= 0xa1 && c2 < 0xff) { + *pwc = 0xe000 + 94*(c-0xf5) + (c2-0xa1); + return 2; + } else + return RET_ILSEQ; + } + } + /* Code set 2 (half-width katakana) */ + if (c == 0x8e) { + if (n < 2) + return RET_TOOFEW(0); + { + unsigned char c2 = s[1]; + if (c2 >= 0xa1 && c2 < 0xe0) { + int ret = jisx0201_mbtowc(conv,pwc,s+1,n-1); + if (ret == RET_ILSEQ) + return RET_ILSEQ; + if (ret != 1) abort(); + return 2; + } else + return RET_ILSEQ; + } + } + /* Code set 3 (JIS X 0212-1990) */ + if (c == 0x8f) { + if (n < 2) + return RET_TOOFEW(0); + { + unsigned char c2 = s[1]; + if (c2 >= 0xa1 && c2 < 0xff) { + if (n < 3) + return RET_TOOFEW(0); + if (c2 < 0xf5) { + unsigned char c3 = s[2]; + if (c3 >= 0xa1 && c3 < 0xff) { + unsigned char buf[2]; + int ret; + buf[0] = c2-0x80; buf[1] = c3-0x80; + ret = jisx0212_mbtowc(conv,pwc,buf,2); + if (ret == RET_ILSEQ) + return RET_ILSEQ; + if (ret != 2) abort(); + return 3; + } else + return RET_ILSEQ; + } else { + /* User-defined range. See + * Ken Lunde's "CJKV Information Processing", table 4-66, p. 206. */ + unsigned char c3 = s[2]; + if (c3 >= 0xa1 && c3 < 0xff) { + *pwc = 0xe3ac + 94*(c2-0xf5) + (c3-0xa1); + return 3; + } else + return RET_ILSEQ; + } + } else + return RET_ILSEQ; + } + } + return RET_ILSEQ; +} + +static int +euc_jp_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char buf[2]; + int ret; + + /* Code set 0 (ASCII or JIS X 0201-1976 Roman) */ + ret = ascii_wctomb(conv,r,wc,n); + if (ret != RET_ILUNI) + return ret; + + /* Code set 1 (JIS X 0208) */ + ret = jisx0208_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (n < 2) + return RET_TOOSMALL; + r[0] = buf[0]+0x80; + r[1] = buf[1]+0x80; + return 2; + } + + /* Code set 2 (half-width katakana) */ + ret = jisx0201_wctomb(conv,buf,wc,1); + if (ret != RET_ILUNI && buf[0] >= 0x80) { + if (ret != 1) abort(); + if (n < 2) + return RET_TOOSMALL; + r[0] = 0x8e; + r[1] = buf[0]; + return 2; + } + + /* Code set 3 (JIS X 0212-1990) */ + ret = jisx0212_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (n < 3) + return RET_TOOSMALL; + r[0] = 0x8f; + r[1] = buf[0]+0x80; + r[2] = buf[1]+0x80; + return 3; + } + + /* Extra compatibility with Shift_JIS. */ + if (wc == 0x00a5) { + r[0] = 0x5c; + return 1; + } + if (wc == 0x203e) { + r[0] = 0x7e; + return 1; + } + + /* User-defined range. See + * Ken Lunde's "CJKV Information Processing", table 4-66, p. 206. */ + if (wc >= 0xe000 && wc < 0xe758) { + if (wc < 0xe3ac) { + unsigned char c1, c2; + if (n < 2) + return RET_TOOSMALL; + c1 = (unsigned int) (wc - 0xe000) / 94; + c2 = (unsigned int) (wc - 0xe000) % 94; + r[0] = c1+0xf5; + r[1] = c2+0xa1; + return 2; + } else { + unsigned char c1, c2; + if (n < 3) + return RET_TOOSMALL; + c1 = (unsigned int) (wc - 0xe3ac) / 94; + c2 = (unsigned int) (wc - 0xe3ac) % 94; + r[0] = 0x8f; + r[1] = c1+0xf5; + r[2] = c2+0xa1; + return 3; + } + } + + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/euc_kr.h b/graf2d/win32gdk/gdk/src/iconv/euc_kr.h new file mode 100644 index 00000000000..8b3dd0528d7 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/euc_kr.h @@ -0,0 +1,74 @@ +/* + * Copyright (C) 1999-2001, 2007 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * EUC-KR + */ + +/* Specification: RFC 1557 */ + +static int +euc_kr_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + /* Code set 0 (ASCII or KS C 5636-1993) */ + if (c < 0x80) + return ascii_mbtowc(conv,pwc,s,n); + /* Code set 1 (KS C 5601-1992, now KS X 1001:2002) */ + if (c >= 0xa1 && c < 0xff) { + if (n < 2) + return RET_TOOFEW(0); + { + unsigned char c2 = s[1]; + if (c2 >= 0xa1 && c2 < 0xff) { + unsigned char buf[2]; + buf[0] = c-0x80; buf[1] = c2-0x80; + return ksc5601_mbtowc(conv,pwc,buf,2); + } else + return RET_ILSEQ; + } + } + return RET_ILSEQ; +} + +static int +euc_kr_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char buf[2]; + int ret; + + /* Code set 0 (ASCII or KS C 5636-1993) */ + ret = ascii_wctomb(conv,r,wc,n); + if (ret != RET_ILUNI) + return ret; + + /* Code set 1 (KS C 5601-1992, now KS X 1001:2002) */ + ret = ksc5601_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (n < 2) + return RET_TOOSMALL; + r[0] = buf[0]+0x80; + r[1] = buf[1]+0x80; + return 2; + } + + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/euc_tw.h b/graf2d/win32gdk/gdk/src/iconv/euc_tw.h new file mode 100644 index 00000000000..f7bdc8b7ca3 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/euc_tw.h @@ -0,0 +1,116 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * EUC-TW + */ + +static int +euc_tw_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + /* Code set 0 (ASCII) */ + if (c < 0x80) + return ascii_mbtowc(conv,pwc,s,n); + /* Code set 1 (CNS 11643-1992 Plane 1) */ + if (c >= 0xa1 && c < 0xff) { + if (n < 2) + return RET_TOOFEW(0); + { + unsigned char c2 = s[1]; + if (c2 >= 0xa1 && c2 < 0xff) { + unsigned char buf[2]; + buf[0] = c-0x80; buf[1] = c2-0x80; + return cns11643_1_mbtowc(conv,pwc,buf,2); + } else + return RET_ILSEQ; + } + } + /* Code set 2 (CNS 11643-1992 Planes 1-16) */ + if (c == 0x8e) { + if (n < 4) + return RET_TOOFEW(0); + { + unsigned char c2 = s[1]; + if (c2 >= 0xa1 && c2 <= 0xb0) { + unsigned char c3 = s[2]; + unsigned char c4 = s[3]; + if (c3 >= 0xa1 && c3 < 0xff && c4 >= 0xa1 && c4 < 0xff) { + unsigned char buf[2]; + int ret; + buf[0] = c3-0x80; buf[1] = c4-0x80; + switch (c2-0xa0) { + case 1: ret = cns11643_1_mbtowc(conv,pwc,buf,2); break; + case 2: ret = cns11643_2_mbtowc(conv,pwc,buf,2); break; + case 3: ret = cns11643_3_mbtowc(conv,pwc,buf,2); break; + case 4: ret = cns11643_4_mbtowc(conv,pwc,buf,2); break; + case 5: ret = cns11643_5_mbtowc(conv,pwc,buf,2); break; + case 6: ret = cns11643_6_mbtowc(conv,pwc,buf,2); break; + case 7: ret = cns11643_7_mbtowc(conv,pwc,buf,2); break; + case 15: ret = cns11643_15_mbtowc(conv,pwc,buf,2); break; + default: return RET_ILSEQ; + } + if (ret == RET_ILSEQ) + return RET_ILSEQ; + if (ret != 2) abort(); + return 4; + } + } + } + } + return RET_ILSEQ; +} + +static int +euc_tw_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char buf[3]; + int ret; + + /* Code set 0 (ASCII) */ + ret = ascii_wctomb(conv,r,wc,n); + if (ret != RET_ILUNI) + return ret; + + ret = cns11643_wctomb(conv,buf,wc,3); + if (ret != RET_ILUNI) { + if (ret != 3) abort(); + + /* Code set 1 (CNS 11643-1992 Plane 1) */ + if (buf[0] == 1) { + if (n < 2) + return RET_TOOSMALL; + r[0] = buf[1]+0x80; + r[1] = buf[2]+0x80; + return 2; + } + + /* Code set 2 (CNS 11643-1992 Planes 1-16) */ + if (n < 4) + return RET_TOOSMALL; + r[0] = 0x8e; + r[1] = buf[0]+0xa0; + r[2] = buf[1]+0x80; + r[3] = buf[2]+0x80; + return 4; + } + + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/flags.h b/graf2d/win32gdk/gdk/src/iconv/flags.h new file mode 100644 index 00000000000..d7cda212c68 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/flags.h @@ -0,0 +1,156 @@ +/* Generated automatically by genflags. */ + +/* Set if the encoding can encode + the acute and grave accents U+00B4 and U+0060. */ +#define HAVE_ACCENTS 1 + +/* Set if the encoding can encode + the single quotation marks U+2018 and U+2019. */ +#define HAVE_QUOTATION_MARKS 2 + +/* Set if the encoding can encode + the double-width Hangul letters (Jamo) U+3131 to U+3163. */ +#define HAVE_HANGUL_JAMO 4 + +#define ei_ascii_oflags (0) +#define ei_utf8_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_ucs2_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_ucs2be_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_ucs2le_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_ucs4_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_ucs4be_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_ucs4le_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_utf16_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_utf16be_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_utf16le_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_utf32_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_utf32be_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_utf32le_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_utf7_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_ucs2internal_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_ucs2swapped_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_ucs4internal_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_ucs4swapped_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_c99_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_java_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_iso8859_1_oflags (HAVE_ACCENTS) +#define ei_iso8859_2_oflags (HAVE_ACCENTS) +#define ei_iso8859_3_oflags (HAVE_ACCENTS) +#define ei_iso8859_4_oflags (HAVE_ACCENTS) +#define ei_iso8859_5_oflags (0) +#define ei_iso8859_6_oflags (0) +#define ei_iso8859_7_oflags (HAVE_QUOTATION_MARKS) +#define ei_iso8859_8_oflags (HAVE_ACCENTS) +#define ei_iso8859_9_oflags (HAVE_ACCENTS) +#define ei_iso8859_10_oflags (0) +#define ei_iso8859_11_oflags (0) +#define ei_iso8859_13_oflags (0) +#define ei_iso8859_14_oflags (0) +#define ei_iso8859_15_oflags (0) +#define ei_iso8859_16_oflags (0) +#define ei_koi8_r_oflags (0) +#define ei_koi8_u_oflags (0) +#define ei_koi8_ru_oflags (0) +#define ei_cp1250_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_cp1251_oflags (HAVE_QUOTATION_MARKS) +#define ei_cp1252_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_cp1253_oflags (HAVE_QUOTATION_MARKS) +#define ei_cp1254_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_cp1255_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_cp1256_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_cp1257_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_cp1258_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_cp850_oflags (HAVE_ACCENTS) +#define ei_cp862_oflags (0) +#define ei_cp866_oflags (0) +#define ei_cp1131_oflags (0) +#define ei_mac_roman_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_mac_centraleurope_oflags (HAVE_QUOTATION_MARKS) +#define ei_mac_iceland_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_mac_croatian_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_mac_romania_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_mac_cyrillic_oflags (HAVE_QUOTATION_MARKS) +#define ei_mac_ukraine_oflags (HAVE_QUOTATION_MARKS) +#define ei_mac_greek_oflags (HAVE_QUOTATION_MARKS) +#define ei_mac_turkish_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_mac_hebrew_oflags (HAVE_QUOTATION_MARKS) +#define ei_mac_arabic_oflags (0) +#define ei_mac_thai_oflags (HAVE_QUOTATION_MARKS) +#define ei_hp_roman8_oflags (HAVE_ACCENTS) +#define ei_nextstep_oflags (HAVE_ACCENTS) +#define ei_armscii_8_oflags (0) +#define ei_georgian_academy_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_georgian_ps_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_koi8_t_oflags (HAVE_QUOTATION_MARKS) +#define ei_pt154_oflags (HAVE_QUOTATION_MARKS) +#define ei_rk1048_oflags (HAVE_QUOTATION_MARKS) +#define ei_mulelao_oflags (0) +#define ei_cp1133_oflags (0) +#define ei_tis620_oflags (0) +#define ei_cp874_oflags (HAVE_QUOTATION_MARKS) +#define ei_viscii_oflags (0) +#define ei_tcvn_oflags (HAVE_ACCENTS) +#define ei_iso646_jp_oflags (0) +#define ei_jisx0201_oflags (0) +#define ei_jisx0208_oflags (HAVE_QUOTATION_MARKS) +#define ei_jisx0212_oflags (0) +#define ei_iso646_cn_oflags (0) +#define ei_gb2312_oflags (HAVE_QUOTATION_MARKS) +#define ei_isoir165_oflags (HAVE_QUOTATION_MARKS) +#define ei_ksc5601_oflags (HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_euc_jp_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_sjis_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_cp932_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_iso2022_jp_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_iso2022_jp1_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_iso2022_jp2_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_euc_cn_oflags (HAVE_QUOTATION_MARKS) +#define ei_ces_gbk_oflags (HAVE_QUOTATION_MARKS) +#define ei_cp936_oflags (HAVE_QUOTATION_MARKS) +#define ei_gb18030_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_iso2022_cn_oflags (HAVE_QUOTATION_MARKS) +#define ei_iso2022_cn_ext_oflags (HAVE_QUOTATION_MARKS) +#define ei_hz_oflags (HAVE_QUOTATION_MARKS) +#define ei_euc_tw_oflags (HAVE_QUOTATION_MARKS) +#define ei_ces_big5_oflags (HAVE_QUOTATION_MARKS) +#define ei_cp950_oflags (HAVE_QUOTATION_MARKS) +#define ei_big5hkscs1999_oflags (HAVE_QUOTATION_MARKS) +#define ei_big5hkscs2001_oflags (HAVE_QUOTATION_MARKS) +#define ei_big5hkscs2004_oflags (HAVE_QUOTATION_MARKS) +#define ei_euc_kr_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_cp949_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_johab_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_iso2022_kr_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) +#define ei_cp856_oflags (HAVE_ACCENTS) +#define ei_cp922_oflags (HAVE_ACCENTS) +#define ei_cp943_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_cp1046_oflags (0) +#define ei_cp1124_oflags (0) +#define ei_cp1129_oflags (0) +#define ei_cp1161_oflags (0) +#define ei_cp1162_oflags (HAVE_QUOTATION_MARKS) +#define ei_cp1163_oflags (0) +#define ei_dec_kanji_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_dec_hanyu_oflags (HAVE_QUOTATION_MARKS) +#define ei_cp437_oflags (0) +#define ei_cp737_oflags (0) +#define ei_cp775_oflags (0) +#define ei_cp852_oflags (HAVE_ACCENTS) +#define ei_cp853_oflags (HAVE_ACCENTS) +#define ei_cp855_oflags (0) +#define ei_cp857_oflags (HAVE_ACCENTS) +#define ei_cp858_oflags (HAVE_ACCENTS) +#define ei_cp860_oflags (0) +#define ei_cp861_oflags (0) +#define ei_cp863_oflags (HAVE_ACCENTS) +#define ei_cp864_oflags (0) +#define ei_cp865_oflags (0) +#define ei_cp869_oflags (HAVE_QUOTATION_MARKS) +#define ei_cp1125_oflags (0) +#define ei_euc_jisx0213_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_shift_jisx0213_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_iso2022_jp3_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) +#define ei_big5_2003_oflags (HAVE_QUOTATION_MARKS) +#define ei_tds565_oflags (0) +#define ei_atarist_oflags (HAVE_ACCENTS) +#define ei_riscos1_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) diff --git a/graf2d/win32gdk/gdk/src/iconv/flushwc.h b/graf2d/win32gdk/gdk/src/iconv/flushwc.h new file mode 100644 index 00000000000..da25212efaa --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/flushwc.h @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef _FLUSHWC_H +#define _FLUSHWC_H + +static int +normal_flushwc (conv_t conv, ucs4_t *pwc) +{ + ucs4_t last_wc = conv->istate; + if (last_wc) { + /* Output the buffered character. */ + conv->istate = 0; + *pwc = (ucs4_t) last_wc; + return 1; + } else + return 0; +} + +#endif /* _FLUSHWC_H */ diff --git a/graf2d/win32gdk/gdk/src/iconv/gb12345.h b/graf2d/win32gdk/gdk/src/iconv/gb12345.h new file mode 100644 index 00000000000..b7e062e3e62 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/gb12345.h @@ -0,0 +1,67 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * GB/T 12345-1990 + */ + +/* + * GB/T 12345-1990 is a traditional chinese counterpart of GB 2312-1986. + * According to the unicode.org tables: + * 2146 characters have been changed to their traditional counterpart, + * 103 characters have been added, no characters have been removed. + * Therefore we use an auxiliary table, which contains only the changes. + */ + +#include "gb12345ext.h" + +static int +gb12345_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + int ret; + + /* The gb12345ext table overrides some entries in the gb2312 table. */ + /* Try the GB12345 extensions -> Unicode table. */ + ret = gb12345ext_mbtowc(conv,pwc,s,n); + if (ret != RET_ILSEQ) + return ret; + /* Try the GB2312 -> Unicode table. */ + ret = gb2312_mbtowc(conv,pwc,s,n); + return ret; +} + +static int +gb12345_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + int ret; + + /* The gb12345ext table overrides some entries in the gb2312 table. */ + /* Try the Unicode -> GB12345 extensions table. */ + ret = gb12345ext_wctomb(conv,r,wc,n); + if (ret != RET_ILUNI) + return ret; + /* Try the Unicode -> GB2312 table, and check that the resulting GB2312 + byte sequence is not overridden by the GB12345 extensions table. */ + ret = gb2312_wctomb(conv,r,wc,n); + if (ret == 2 && gb12345ext_mbtowc(conv,&wc,r,2) == 2) + return RET_ILUNI; + else + return ret; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/gb12345ext.h b/graf2d/win32gdk/gdk/src/iconv/gb12345ext.h new file mode 100644 index 00000000000..b461ec87d56 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/gb12345ext.h @@ -0,0 +1,1796 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * GB/T 12345.1990-0 extensions + */ + +static const unsigned short gb12345ext_2uni_page21[12] = { + /* 0x21 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x2225, +}; +static const unsigned short gb12345ext_2uni_page26[85] = { + /* 0x26 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfe35, + 0xfe36, 0xfe39, 0xfe3a, 0xfe3f, 0xfe40, 0xfe3d, 0xfe3e, 0xfe41, + 0xfe42, 0xfe43, 0xfe44, 0xfffd, 0xfffd, 0xfe3b, 0xfe3c, 0xfe37, + 0xfe38, 0xfe31, 0xfffd, 0xfe33, 0xfe34, +}; +static const unsigned short gb12345ext_2uni_page28[32] = { + /* 0x28 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x0251, 0x1e3f, 0x0144, 0x0148, 0x01f9, 0x0261, +}; +static const unsigned short gb12345ext_2uni_page30[6871] = { + /* 0x30 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x769a, + 0xfffd, 0x85f9, 0xfffd, 0xfffd, 0x7919, 0x611b, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x9aaf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8956, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x58e9, 0xfffd, 0x7f77, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x64fa, 0xfffd, 0x6557, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x9812, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x8fa6, 0x7d46, 0xfffd, 0x5e6b, 0xfffd, + 0xfffd, 0xfffd, 0x7d81, 0xfffd, 0xfffd, 0xfffd, 0x938a, 0xfffd, + 0x8b17, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x31 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x98fd, 0x5bf6, 0xfffd, 0x5831, + 0xfffd, 0xfffd, 0x9b91, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x8f29, 0xfffd, 0x8c9d, 0x92c7, 0xfffd, 0x72fd, 0x5099, + 0x618a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x7db3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x7b46, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7562, 0x6583, + 0xfffd, 0x5e63, 0xfffd, 0xfffd, 0x9589, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x908a, 0x7de8, + 0x8cb6, 0xfffd, 0xfffd, 0x8b8a, 0xfffd, 0xfffd, 0x8faf, 0x8fae, + 0xfffd, 0x6a19, 0xfffd, 0xfffd, 0xfffd, 0x9c49, 0xfffd, 0xfffd, + 0x765f, 0xfffd, 0xfffd, 0x7015, 0x6ff1, 0x8cd3, 0x64ef, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9905, 0xfffd, + /* 0x32 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x64a5, 0x9262, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x9251, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99c1, 0xfffd, 0xfffd, 0xfffd, + 0x88dc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ca1, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x53c3, 0x8836, 0x6b98, + 0x615a, 0x6158, 0x71e6, 0x84bc, 0x8259, 0x5009, 0x6ec4, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x53a0, 0xfffd, 0x5074, + 0xfffd, 0x6e2c, 0x5c64, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a6b, 0xfffd, + 0xfffd, 0xfffd, 0x6519, 0x647b, 0x87ec, 0x995e, 0x8b92, 0x7e8f, + 0x93df, 0x7523, 0x95e1, 0x986b, 0xfffd, 0xfffd, + /* 0x33 */ + 0x5834, 0x5617, 0xfffd, 0x9577, 0x511f, 0x8178, 0x5ee0, 0xfffd, + 0x66a2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9214, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8eca, 0xfffd, 0xfffd, 0xfffd, + 0x5fb9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5875, 0xfffd, 0xfffd, + 0xfffd, 0x9673, 0xfffd, 0x896f, 0xfffd, 0x7a31, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x61f2, 0xfffd, 0x8aa0, 0xfffd, + 0xfffd, 0x9a01, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x9072, 0xfffd, 0x99b3, 0xfffd, 0x9f52, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x71be, 0xfffd, 0x885d, 0x87f2, 0xfffd, 0x5bf5, + 0xfffd, 0xfffd, 0x7587, 0x8e8a, 0xfffd, 0xfffd, 0x7c4c, 0xfffd, + 0x7da2, 0xfffd, 0x919c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x92e4, 0x96db, 0xfffd, 0xfffd, 0xfffd, + /* 0x34 */ + 0x790e, 0x5132, 0xfffd, 0xfffd, 0x89f8, 0x8655, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x50b3, 0xfffd, 0xfffd, 0xfffd, 0x7621, 0xfffd, + 0xfffd, 0xfffd, 0x95d6, 0x5275, 0xfffd, 0xfffd, 0xfffd, 0x9318, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7d14, 0xfffd, + 0xfffd, 0x7dbd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8fad, 0xfffd, + 0xfffd, 0x8a5e, 0xfffd, 0xfffd, 0x8cdc, 0xfffd, 0x8070, 0xfffd, + 0xfffd, 0xfffd, 0x5f9e, 0x53e2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x8ea5, 0xfffd, 0x7ac4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x932f, 0xfffd, 0x9054, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5e36, + 0xfffd, 0xfffd, 0x8cb8, 0xfffd, 0xfffd, 0xfffd, + /* 0x35 */ + 0xfffd, 0xfffd, 0x64d4, 0xfffd, 0x55ae, 0x9132, 0x64a3, 0x81bd, + 0xfffd, 0xfffd, 0xfffd, 0x619a, 0xfffd, 0x8a95, 0x5f48, 0xfffd, + 0x7576, 0x64cb, 0x9ee8, 0x8569, 0x6a94, 0xfffd, 0x6417, 0xfffd, + 0xfffd, 0x5cf6, 0x79b1, 0x5c0e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x71c8, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x9127, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6575, + 0xfffd, 0xfffd, 0x6ecc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x905e, 0x7de0, 0x985b, 0xfffd, + 0xfffd, 0xfffd, 0x9ede, 0xfffd, 0xfffd, 0x588a, 0x96fb, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6fb1, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91e3, 0x8abf, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8adc, 0xfffd, + /* 0x36 */ + 0xfffd, 0xfffd, 0xfffd, 0x91d8, 0x9802, 0xfffd, 0x9320, 0xfffd, + 0x8a02, 0xfffd, 0x6771, 0xfffd, 0xfffd, 0xfffd, 0x52d5, 0x68df, + 0xfffd, 0xfffd, 0x51cd, 0xfffd, 0xfffd, 0xfffd, 0x9b25, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x72a2, 0x7368, + 0x8b80, 0xfffd, 0xfffd, 0x8ced, 0xfffd, 0x934d, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x935b, 0xfffd, 0x65b7, 0x7dde, + 0xfffd, 0xfffd, 0x968a, 0x5c0d, 0xfffd, 0x5678, 0xfffd, 0xfffd, + 0x9813, 0xfffd, 0x920d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x596a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x58ae, 0xfffd, 0xfffd, 0x9d5d, 0xfffd, 0x984d, 0x8a1b, 0xfffd, + 0x60e1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9913, 0xfffd, 0xfffd, + 0x5152, 0xfffd, 0x723e, 0x990c, 0xfffd, 0xfffd, + /* 0x37 */ + 0x8cb3, 0x767c, 0x7f70, 0xfffd, 0xfffd, 0xfffd, 0x95a5, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x792c, 0x91e9, + 0xfffd, 0xfffd, 0x7169, 0xfffd, 0xfffd, 0x7bc4, 0x8ca9, 0xfffd, + 0x98ef, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x8a2a, 0x7d21, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x98db, 0xfffd, 0xfffd, 0x8ab9, 0xfffd, 0xfffd, 0x5ee2, 0xfffd, + 0x8cbb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7d1b, 0x58b3, + 0xfffd, 0xfffd, 0xfffd, 0x596e, 0xfffd, 0xfffd, 0x61a4, 0x7cde, + 0x8c50, 0xfffd, 0x6953, 0xfffd, 0xfffd, 0x92d2, 0x98a8, 0x760b, + 0xfffd, 0xfffd, 0x99ae, 0x7e2b, 0x8af7, 0xfffd, 0x9cf3, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x819a, 0xfffd, 0xfffd, 0xfffd, 0x8f3b, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x38 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x64ab, 0x8f14, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x8ce6, 0x5fa9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x8ca0, 0xfffd, 0x8a03, 0xfffd, 0x5a66, 0x7e1b, 0xfffd, + 0xfffd, 0xfffd, 0x8a72, 0xfffd, 0xfffd, 0x9223, 0x84cb, 0xfffd, + 0x5e79, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8d95, 0xfffd, + 0xfffd, 0xfffd, 0x8d1b, 0x5ca1, 0x525b, 0x92fc, 0xfffd, 0xfffd, + 0x7db1, 0x5d17, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x93ac, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x64f1, 0xfffd, 0x9d3f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x95a3, 0xfffd, 0x927b, 0x500b, 0xfffd, 0x7d66, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x39 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f94, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x978f, 0xfffd, 0xfffd, + 0x8ca2, 0xfffd, 0x920e, 0xfffd, 0x6e9d, 0xfffd, 0xfffd, 0xfffd, + 0x69cb, 0x8cfc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8831, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x9867, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x526e, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95dc, + 0xfffd, 0xfffd, 0x89c0, 0xfffd, 0x9928, 0xfffd, 0x6163, 0xfffd, + 0x8cab, 0xfffd, 0x5ee3, 0xfffd, 0xfffd, 0x898f, 0xfffd, 0xfffd, + 0x6b78, 0x9f9c, 0x95a8, 0x8ecc, 0xfffd, 0x8a6d, 0xfffd, 0xfffd, + 0x6ac3, 0xfffd, 0x8cb4, 0x528a, 0x8f25, 0xfffd, 0xfffd, 0x934b, + 0xfffd, 0x570b, 0xfffd, 0xfffd, 0x904e, 0xfffd, + /* 0x3a */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99ed, 0xfffd, + 0xfffd, 0xfffd, 0x97d3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x6f22, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x865f, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x95a1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9db4, 0x8cc0, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x8f5f, 0xfffd, 0xfffd, 0xfffd, 0x9d3b, + 0xfffd, 0xfffd, 0xfffd, 0x7d05, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x5f8c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x58fa, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x3b */ + 0xfffd, 0xfffd, 0xfffd, 0x8b77, 0xfffd, 0x6eec, 0xfffd, 0xfffd, + 0x5629, 0x83ef, 0xfffd, 0xfffd, 0x756b, 0x5283, 0xfffd, 0x8a71, + 0xfffd, 0xfffd, 0x61f7, 0xfffd, 0x58de, 0x6b61, 0x74b0, 0xfffd, + 0x9084, 0x7de9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x8b0a, 0xfffd, 0x63ee, 0x8f1d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8cc4, 0x7a62, + 0x6703, 0x71f4, 0x532f, 0x8af1, 0x8aa8, 0x7e6a, 0x8477, 0xfffd, + 0xfffd, 0xfffd, 0x6e3e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x7372, 0xfffd, 0xfffd, 0xfffd, 0x8ca8, 0x798d, 0x64ca, 0xfffd, + 0xfffd, 0x6a5f, 0xfffd, 0xfffd, 0x7a4d, 0xfffd, + /* 0x3c */ + 0xfffd, 0x9951, 0xfffd, 0xfffd, 0x8b4f, 0x9dc4, 0xfffd, 0x7e3e, + 0x7ddd, 0xfffd, 0x6975, 0xfffd, 0x8f2f, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7d1a, 0x64e0, 0x5e7e, + 0xfffd, 0xfffd, 0x858a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x5291, 0xfffd, 0x6fdf, 0xfffd, 0xfffd, 0x8a08, 0x8a18, 0xfffd, + 0xfffd, 0x969b, 0xfffd, 0x7e7c, 0x7d00, 0xfffd, 0xfffd, 0x593e, + 0xfffd, 0xfffd, 0xfffd, 0x83a2, 0x9830, 0x8cc8, 0xfffd, 0x9240, + 0xfffd, 0xfffd, 0x50f9, 0xfffd, 0x99d5, 0xfffd, 0x6bb2, 0x76e3, + 0x5805, 0xfffd, 0x7b8b, 0x9593, 0xfffd, 0xfffd, 0xfffd, 0x8271, + 0xfffd, 0x7dd8, 0x7e6d, 0x6aa2, 0xfffd, 0xfffd, 0x9e7c, 0x63c0, + 0x64bf, 0x7c21, 0x5109, 0xfffd, 0xfffd, 0x85a6, 0x6abb, 0x9452, + 0x8e10, 0x8ce4, 0x898b, 0x9375, 0xfffd, 0xfffd, + /* 0x3d */ + 0xfffd, 0x8266, 0x528d, 0x991e, 0x6f38, 0x6ffa, 0x6f97, 0xfffd, + 0xfffd, 0xfffd, 0x5c07, 0x6f3f, 0xfffd, 0xfffd, 0x8523, 0x69f3, + 0x596c, 0x8b1b, 0xfffd, 0x91ac, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x81a0, 0xfffd, 0xfffd, 0x6f86, 0x9a55, 0x5b0c, 0xfffd, + 0x652a, 0x9278, 0x77ef, 0x50e5, 0xfffd, 0xfffd, 0xfffd, 0x9903, + 0x7e73, 0x7d5e, 0xfffd, 0xfffd, 0xfffd, 0x8f4e, 0x8f03, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x968e, 0xfffd, + 0xfffd, 0x7bc0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6f54, + 0x7d50, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x8aa1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x7dca, 0x9326, 0x50c5, 0x8b39, 0x9032, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x71fc, 0xfffd, + /* 0x3e */ + 0x76e1, 0x52c1, 0xfffd, 0xfffd, 0x8396, 0xfffd, 0xfffd, 0x9be8, + 0xfffd, 0x9a5a, 0xfffd, 0xfffd, 0x7d93, 0xfffd, 0xfffd, 0xfffd, + 0x9838, 0xfffd, 0xfffd, 0xfffd, 0x93e1, 0x5f91, 0x75d9, 0xfffd, + 0xfffd, 0x7af6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7cfe, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x820a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x99d2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x8209, 0xfffd, 0xfffd, 0xfffd, 0x64da, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x92f8, 0xfffd, 0xfffd, 0x61fc, 0xfffd, 0x5287, 0xfffd, + 0x9d51, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7d79, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x89ba, 0xfffd, 0x8a23, 0x7d76, + 0xfffd, 0xfffd, 0x921e, 0x8ecd, 0xfffd, 0xfffd, + /* 0x3f */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99ff, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x958b, 0xfffd, 0xfffd, 0x51f1, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9846, 0xfffd, 0x6bbb, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ab2, 0xfffd, 0xfffd, + 0x58be, 0x61c7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x6473, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x5eab, 0x8932, 0x8a87, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x584a, 0xfffd, 0x5108, 0xfffd, 0x5bec, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x7926, 0xfffd, 0x66e0, 0xfffd, 0x8667, 0xfffd, + 0x5dcb, 0x7aba, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x40 */ + 0x994b, 0xfffd, 0x6f70, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x64f4, 0xfffd, 0x95ca, 0xfffd, 0xfffd, 0xfffd, 0x881f, 0x81d8, + 0xfffd, 0xfffd, 0x840a, 0x4f86, 0x8cf4, 0x85cd, 0xfffd, 0x6b04, + 0x6514, 0x7c43, 0x95cc, 0x862d, 0x703e, 0x8b95, 0x652c, 0x89bd, + 0x61f6, 0x7e9c, 0x721b, 0x6feb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x6488, 0x52de, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x6f87, 0xfffd, 0x6a02, 0xfffd, 0x9433, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x58d8, 0xfffd, 0xfffd, 0x985e, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x7c6c, 0xfffd, 0x96e2, 0x7055, 0xfffd, 0xfffd, 0x88cf, 0x9bc9, + 0x79ae, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e97, 0x53b2, 0x52f5, + 0x792b, 0x6b77, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x41 */ + 0xfffd, 0xfffd, 0xfffd, 0x701d, 0x96b8, 0xfffd, 0xfffd, 0xfffd, + 0x5006, 0x806f, 0x84ee, 0x9023, 0x942e, 0xfffd, 0x6190, 0x6f23, + 0x7c3e, 0x6582, 0x81c9, 0x93c8, 0x6200, 0x7149, 0x7df4, 0x7ce7, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5169, 0x8f1b, 0xfffd, 0xfffd, + 0xfffd, 0x8ad2, 0xfffd, 0xfffd, 0xfffd, 0x7642, 0xfffd, 0xfffd, + 0x907c, 0xfffd, 0xfffd, 0xfffd, 0x9410, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x7375, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x81e8, 0x9130, 0x9c57, 0xfffd, 0xfffd, 0x8cc3, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x9f61, 0x9234, 0xfffd, 0xfffd, 0xfffd, + 0x9748, 0xfffd, 0x5dba, 0x9818, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x993e, 0xfffd, 0x5289, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x9f8d, 0x807e, 0x56a8, 0x7c60, 0xfffd, + /* 0x42 */ + 0xfffd, 0x58df, 0x650f, 0x96b4, 0x6a13, 0x5a41, 0x645f, 0x7c0d, + 0xfffd, 0xfffd, 0x8606, 0x76e7, 0x9871, 0x5eec, 0x7210, 0x64c4, + 0x6ef7, 0x865c, 0x9b6f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8cc2, + 0xfffd, 0xfffd, 0xfffd, 0x9332, 0x9678, 0xfffd, 0x9a62, 0xfffd, + 0x92c1, 0xfffd, 0xfffd, 0xfffd, 0x5c62, 0x7e37, 0x616e, 0xfffd, + 0xfffd, 0xfffd, 0x6ffe, 0x7dd1, 0x5dd2, 0x6523, 0x5b7f, 0x7064, + 0xfffd, 0x4e82, 0xfffd, 0xfffd, 0x6384, 0x8f2a, 0x502b, 0x4f96, + 0x6dea, 0x7db8, 0x8ad6, 0x863f, 0xfffd, 0x7f85, 0x908f, 0x947c, + 0x7c6e, 0x9a3e, 0xfffd, 0xfffd, 0xfffd, 0x99f1, 0x7d61, 0x5abd, + 0xfffd, 0x746a, 0x78bc, 0x879e, 0x99ac, 0x99e1, 0xfffd, 0x55ce, + 0xfffd, 0x8cb7, 0x9ea5, 0x8ce3, 0x9081, 0xfffd, 0x779e, 0x9945, + 0x883b, 0x6eff, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x43 */ + 0x8b3e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x9328, 0xfffd, 0xfffd, 0x925a, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x8cbf, 0x9ebd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9382, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9580, 0x60b6, 0x5011, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x9333, 0xfffd, 0x5922, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b0e, 0x5f4c, 0xfffd, 0xfffd, + 0x8993, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7dbf, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7dec, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5edf, 0xfffd, 0xfffd, 0x6ec5, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x61ab, 0x95a9, 0xfffd, 0xfffd, + 0x9cf4, 0x9298, 0xfffd, 0xfffd, 0x8b2c, 0xfffd, + /* 0x44 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x8b00, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x755d, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9209, 0xfffd, 0xfffd, + 0x7d0d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x96e3, 0xfffd, 0x6493, 0x8166, 0x60f1, 0x9b27, 0xfffd, 0xfffd, + 0x9912, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x64ec, 0xfffd, 0xfffd, 0x81a9, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x6506, 0xfffd, 0xfffd, 0xfffd, 0x91c0, + 0x9ce5, 0xfffd, 0xfffd, 0x8076, 0xfffd, 0x5699, 0x9477, 0x93b3, + 0xfffd, 0xfffd, 0x6ab8, 0x7370, 0xfffd, 0x5be7, + /* 0x45 */ + 0x64f0, 0x6fd8, 0xfffd, 0xfffd, 0x9215, 0x7d10, 0x81bf, 0x6fc3, + 0x8fb2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x7627, 0xfffd, 0xfffd, 0xfffd, 0x8afe, 0xfffd, 0x6b50, 0x9dd7, + 0x6bc6, 0xfffd, 0x5614, 0xfffd, 0x6f1a, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x76e4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x9f90, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x8ce0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5674, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x9d6c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x46 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a19, 0x98c4, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x983b, 0x8ca7, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x860b, 0xfffd, 0xfffd, 0x6191, 0xfffd, 0x8a55, + 0xfffd, 0xfffd, 0x6f51, 0x9817, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x64b2, 0x92ea, 0x50d5, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x6a38, 0xfffd, 0xfffd, 0xfffd, 0x8b5c, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x81cd, 0x9f4a, 0xfffd, 0xfffd, 0xfffd, 0x9a0e, 0xfffd, + 0x8c48, 0xfffd, 0xfffd, 0x5553, 0xfffd, 0xfffd, 0xfffd, 0x6c23, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a16, 0xfffd, + /* 0x47 */ + 0xfffd, 0xfffd, 0x727d, 0xfffd, 0x91fa, 0x925b, 0xfffd, 0x9077, + 0x7c3d, 0xfffd, 0x8b19, 0xfffd, 0xfffd, 0x9322, 0x9257, 0xfffd, + 0xfffd, 0xfffd, 0x6dfa, 0x8b74, 0x5879, 0xfffd, 0xfffd, 0xfffd, + 0x69cd, 0x55c6, 0xfffd, 0xfffd, 0x58bb, 0x8594, 0xfffd, 0x6436, + 0xfffd, 0x936c, 0xfffd, 0xfffd, 0x6a4b, 0xfffd, 0x55ac, 0x50d1, + 0xfffd, 0xfffd, 0xfffd, 0x7ff9, 0xfffd, 0xfffd, 0x7ac5, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x7aca, 0x6b3d, 0xfffd, 0x89aa, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5be2, 0xfffd, 0xfffd, + 0x8f15, 0x6c2b, 0x50be, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x9803, 0x8acb, 0x6176, 0x74ca, 0x7aae, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8da8, 0x5340, + 0xfffd, 0xfffd, 0x8ec0, 0xfffd, 0x9a45, 0xfffd, + /* 0x48 */ + 0xfffd, 0xfffd, 0x9f72, 0xfffd, 0xfffd, 0xfffd, 0x9874, 0x6b0a, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x52f8, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d72, 0xfffd, 0x78ba, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x8b93, 0x9952, 0x64fe, 0x7e5e, 0xfffd, 0x71b1, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97cc, 0xfffd, 0x8a8d, 0xfffd, + 0xfffd, 0x7d09, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x69ae, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7d68, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8edf, 0xfffd, 0xfffd, 0xfffd, + 0x92ed, 0x958f, 0x6f64, 0xfffd, 0xfffd, 0xfffd, 0x7051, 0x85a9, + 0xfffd, 0x9c13, 0xfffd, 0x8cfd, 0xfffd, 0xfffd, + /* 0x49 */ + 0x5098, 0xfffd, 0xfffd, 0xfffd, 0x55aa, 0xfffd, 0x9a37, 0x6383, + 0xfffd, 0xfffd, 0xfffd, 0x6f80, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x6bba, 0xfffd, 0xfffd, 0x7d17, 0xfffd, 0xfffd, 0xfffd, 0x7be9, + 0x66ec, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x9583, 0x965d, 0xfffd, 0x8d0d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x7e55, 0xfffd, 0x50b7, 0xfffd, 0x8cde, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x71d2, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x7d39, 0xfffd, 0x8cd2, 0xfffd, 0xfffd, + 0x6368, 0xfffd, 0x651d, 0xfffd, 0x61fe, 0xfffd, 0xfffd, 0x8a2d, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7d33, + 0xfffd, 0xfffd, 0x5be9, 0x5b38, 0xfffd, 0x814e, 0xfffd, 0x6ef2, + 0x8072, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7e69, + /* 0x4a */ + 0xfffd, 0xfffd, 0xfffd, 0x52dd, 0x8056, 0x5e2b, 0xfffd, 0x7345, + 0xfffd, 0x6fd5, 0x8a69, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x6642, 0xfffd, 0xfffd, 0x8755, 0x5be6, 0x8b58, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x99db, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x52e2, 0xfffd, 0xfffd, + 0xfffd, 0x9069, 0xfffd, 0xfffd, 0x91cb, 0x98fe, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x8996, 0x8a66, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x58fd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7378, 0xfffd, 0x6a1e, + 0xfffd, 0xfffd, 0xfffd, 0x8f38, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x66f8, 0x8d16, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x5c6c, 0x8853, 0xfffd, 0x6a39, 0xfffd, + 0xfffd, 0x7aea, 0xfffd, 0xfffd, 0x6578, 0xfffd, + /* 0x4b */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5e25, 0xfffd, + 0xfffd, 0xfffd, 0x96d9, 0xfffd, 0x8ab0, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x9806, 0xfffd, 0x8aac, 0x78a9, 0xfffd, 0x720d, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7d72, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x98fc, 0xfffd, + 0x9b06, 0x8073, 0x616b, 0x980c, 0xfffd, 0xfffd, 0x8a1f, 0x8aa6, + 0xfffd, 0xfffd, 0x64fb, 0xfffd, 0x8607, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a34, 0x8085, + 0xfffd, 0xfffd, 0xfffd, 0x96d6, 0xfffd, 0x96a8, 0x7d8f, 0xfffd, + 0xfffd, 0x6b72, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5b6b, 0x640d, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7e2e, 0x7463, 0xfffd, 0x9396, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x4c */ + 0x737a, 0x64bb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x81fa, + 0xfffd, 0xfffd, 0xfffd, 0x614b, 0xfffd, 0xfffd, 0x6524, 0x8caa, + 0x7671, 0x7058, 0x58c7, 0xfffd, 0xfffd, 0xfffd, 0x8b5a, 0x8ac7, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5606, 0xfffd, 0x6e6f, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x71d9, 0xfffd, 0x6fe4, 0xfffd, 0x7e27, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a0e, 0xfffd, 0xfffd, + 0xfffd, 0x9a30, 0xfffd, 0x8b04, 0xfffd, 0xfffd, 0xfffd, 0x92bb, + 0xfffd, 0x984c, 0xfffd, 0xfffd, 0x9ad4, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x689d, 0xfffd, 0xfffd, 0xfffd, + 0x8cbc, 0x9435, 0xfffd, 0x5ef3, 0x807d, 0x70f4, + /* 0x4d */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9285, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x7d71, 0xfffd, 0xfffd, 0xfffd, 0x982d, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x5716, 0xfffd, 0xfffd, 0x5857, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5718, 0xfffd, 0x983d, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x9d15, 0xfffd, 0x99b1, 0x99dd, 0x6a62, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7aaa, 0xfffd, 0xfffd, 0x896a, + 0xfffd, 0xfffd, 0xfffd, 0x5f4e, 0x7063, 0xfffd, 0x9811, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x842c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7db2, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x4e */ + 0xfffd, 0xfffd, 0xfffd, 0x97cb, 0x9055, 0xfffd, 0x570d, 0xfffd, + 0xfffd, 0x7232, 0x6ff0, 0x7dad, 0x8466, 0xfffd, 0xfffd, 0x5049, + 0x50de, 0xfffd, 0x7def, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b02, 0xfffd, 0xfffd, 0x885b, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x805e, 0x7d0b, 0xfffd, 0x7a69, + 0xfffd, 0x554f, 0xfffd, 0xfffd, 0xfffd, 0x64be, 0x8778, 0x6e26, + 0x7aa9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x55da, + 0x93a2, 0x70cf, 0xfffd, 0x8aa3, 0xfffd, 0x7121, 0x856a, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x5862, 0xfffd, 0x9727, 0xfffd, 0xfffd, 0xfffd, + 0x52d9, 0xfffd, 0x8aa4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x932b, 0x72a7, + /* 0x4f */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8972, 0xfffd, 0x7fd2, + 0xfffd, 0xfffd, 0x9291, 0xfffd, 0xfffd, 0xfffd, 0x6232, 0x7d30, + 0xfffd, 0x8766, 0xfffd, 0xfffd, 0x8f44, 0xfffd, 0x5cfd, 0x4fe0, + 0x72f9, 0xfffd, 0xfffd, 0xfffd, 0x5687, 0xfffd, 0x9341, 0xfffd, + 0xfffd, 0x9bae, 0x7e96, 0xfffd, 0x8ce2, 0x929c, 0xfffd, 0x9591, + 0xfffd, 0xfffd, 0xfffd, 0x986f, 0x96aa, 0x73fe, 0x737b, 0x7e23, + 0xfffd, 0x9921, 0xfffd, 0x61b2, 0xfffd, 0xfffd, 0x7dab, 0xfffd, + 0xfffd, 0x9472, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9109, 0xfffd, + 0xfffd, 0x8a73, 0xfffd, 0x97ff, 0xfffd, 0x9805, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x856d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x56c2, 0x92b7, 0xfffd, 0xfffd, 0xfffd, 0x66c9, + /* 0x50 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x562f, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5354, 0x633e, 0xfffd, 0xfffd, + 0xfffd, 0x8105, 0x8ae7, 0x5beb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x7009, 0x8b1d, 0xfffd, 0xfffd, 0xfffd, 0x92c5, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91c1, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x8208, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x92b9, 0xfffd, 0xfffd, 0x7d89, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x9808, 0xfffd, 0x8a31, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7dd2, 0x7e8c, + 0x8ed2, 0xfffd, 0xfffd, 0x61f8, 0xfffd, 0xfffd, + /* 0x51 */ + 0x9078, 0x766c, 0xfffd, 0x7d62, 0xfffd, 0xfffd, 0x5b78, 0xfffd, + 0xfffd, 0xfffd, 0x52db, 0xfffd, 0xfffd, 0xfffd, 0x8a62, 0x5c0b, + 0x99b4, 0xfffd, 0xfffd, 0xfffd, 0x8a13, 0x8a0a, 0x905c, 0xfffd, + 0x58d3, 0xfffd, 0x9d09, 0x9d28, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x555e, 0x4e9e, 0x8a1d, + 0xfffd, 0xfffd, 0x95b9, 0xfffd, 0xfffd, 0x9e7d, 0x56b4, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9854, 0x95bb, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8277, 0xfffd, 0xfffd, + 0x53ad, 0x786f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8afa, + 0x9a57, 0xfffd, 0xfffd, 0x9d26, 0xfffd, 0x694a, 0x63da, 0xfffd, + 0x760d, 0xfffd, 0xfffd, 0x967d, 0xfffd, 0xfffd, 0x7662, 0x990a, + 0x6a23, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x52 */ + 0xfffd, 0x582f, 0xfffd, 0xfffd, 0x8b21, 0xfffd, 0xfffd, 0xfffd, + 0x85e5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x723a, 0xfffd, + 0xfffd, 0xfffd, 0x9801, 0xfffd, 0x696d, 0x8449, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91ab, 0xfffd, 0x92a5, 0xfffd, + 0xfffd, 0xfffd, 0x9824, 0xfffd, 0x907a, 0xfffd, 0x5100, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x87fb, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x85dd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x5104, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x61b6, 0x7fa9, 0xfffd, 0xfffd, 0x8a63, + 0x8b70, 0x8abc, 0x8b6f, 0xfffd, 0xfffd, 0xfffd, 0x7e79, 0xfffd, + 0x852d, 0xfffd, 0xfffd, 0xfffd, 0x9670, 0xfffd, 0xfffd, 0x9280, + 0xfffd, 0xfffd, 0x98f2, 0xfffd, 0xfffd, 0x96b1, + /* 0x53 */ + 0xfffd, 0xfffd, 0x6afb, 0x5b30, 0x9df9, 0x61c9, 0x7e93, 0x7469, + 0x87a2, 0x71df, 0x7192, 0x8805, 0xfffd, 0x8d0f, 0xfffd, 0xfffd, + 0x7a4e, 0xfffd, 0xfffd, 0x55b2, 0x64c1, 0x50ad, 0xfffd, 0x7670, + 0xfffd, 0xfffd, 0x8e34, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x512a, 0xfffd, 0x6182, 0xfffd, + 0xfffd, 0x90f5, 0x923e, 0x7336, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a98, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f3f, 0x9918, + 0xfffd, 0xfffd, 0x9b5a, 0xfffd, 0xfffd, 0x6f01, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x8207, 0x5dbc, 0xfffd, 0xfffd, 0x8a9e, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x9b31, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x7344, 0xfffd, 0x8b7d, + /* 0x54 */ + 0xfffd, 0xfffd, 0xfffd, 0x9810, 0xfffd, 0x99ad, 0x9d1b, 0x6df5, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f45, 0x5712, + 0x54e1, 0x5713, 0xfffd, 0xfffd, 0x7de3, 0x9060, 0xfffd, 0x9858, + 0xfffd, 0xfffd, 0xfffd, 0x7d04, 0xfffd, 0x8e8d, 0x9470, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x95b2, 0xfffd, 0x96f2, 0x9116, 0xfffd, + 0x9695, 0xfffd, 0x904b, 0x85f4, 0x9196, 0x6688, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x96dc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f09, + 0xfffd, 0xfffd, 0xfffd, 0x6522, 0x66ab, 0x8d0a, 0x8d1c, 0x81df, + 0xfffd, 0xfffd, 0xfffd, 0x947f, 0xfffd, 0x68d7, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7ac8, 0xfffd, 0x8cac, + 0x64c7, 0x5247, 0x6fa4, 0x8cca, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x8d08, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ecb, + /* 0x55 */ + 0x9358, 0x9598, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x8a50, 0xfffd, 0x9f4b, 0xfffd, 0xfffd, 0x50b5, 0xfffd, 0xfffd, + 0x6c08, 0xfffd, 0xfffd, 0xfffd, 0x76de, 0x65ac, 0x8f3e, 0x5d84, + 0xfffd, 0xfffd, 0x68e7, 0xfffd, 0x6230, 0xfffd, 0xfffd, 0x7dbb, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5f35, 0xfffd, 0x6f32, 0xfffd, + 0xfffd, 0x5e33, 0x8cec, 0xfffd, 0x8139, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x8d99, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x87c4, 0x8f4d, 0xfffd, 0x937a, + 0xfffd, 0x9019, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x8c9e, 0x91dd, 0x5075, 0xfffd, 0xfffd, 0x8a3a, 0xfffd, + 0xfffd, 0x93ae, 0x9663, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x56 */ + 0x5e40, 0x7665, 0x912d, 0x8b49, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7e54, 0x8077, + 0xfffd, 0xfffd, 0xfffd, 0x57f7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x8879, 0xfffd, 0x7d19, 0xfffd, 0x646f, 0x64f2, + 0xfffd, 0xfffd, 0xfffd, 0x5e5f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x8cea, 0xfffd, 0xfffd, 0x6eef, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x9418, 0xfffd, 0x7d42, 0x7a2e, 0x816b, 0xfffd, + 0xfffd, 0x8846, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b05, 0xfffd, + 0x8ef8, 0xfffd, 0xfffd, 0xfffd, 0x76ba, 0xfffd, 0x665d, 0x9a5f, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8af8, 0x8a85, 0xfffd, + 0xfffd, 0x71ed, 0xfffd, 0xfffd, 0x77da, 0x56d1, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x8caf, 0x9444, 0x7bc9, + /* 0x57 */ + 0xfffd, 0xfffd, 0xfffd, 0x99d0, 0xfffd, 0xfffd, 0xfffd, 0x5c08, + 0x78da, 0x8f49, 0xfffd, 0x8cfa, 0xfffd, 0x6a01, 0x838a, 0x88dd, + 0x599d, 0xfffd, 0x58ef, 0x72c0, 0xfffd, 0x9310, 0xfffd, 0x8d05, + 0x589c, 0x7db4, 0x8ac4, 0x6e96, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6fc1, 0xfffd, + 0xfffd, 0x8cc7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6f2c, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x7d9c, 0x7e3d, 0x7e31, 0x9112, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a5b, 0xfffd, + 0x7d44, 0x947d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x58 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x55c7, 0xfffd, 0xfffd, 0x5399, 0xfffd, + 0x53b4, 0xfffd, 0xfffd, 0x9768, 0x8d0b, 0xfffd, 0xfffd, 0x532d, + 0x5331, 0xfffd, 0x8cfe, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x5244, 0xfffd, 0x528c, 0x5274, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x50b4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5000, 0x5096, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x59 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5115, 0xfffd, 0x5102, 0xfffd, + 0x5114, 0x513c, 0x5137, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x50e8, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x50c2, 0x513b, 0x5110, 0x513a, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x50c9, 0xfffd, 0xfffd, 0xfffd, + 0x7cf4, 0xfffd, 0xfffd, 0x9ecc, 0xfffd, 0x56c5, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x9cec, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x893b, 0x81e0, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x5a */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a01, 0x8a10, 0x8a0c, 0x8a15, + 0x8b33, 0x8a4e, 0x8a25, 0x8a41, 0x8a36, 0x8a46, 0x8a54, 0x8a58, + 0x8a52, 0x8a86, 0x8a84, 0x8a7f, 0x8a70, 0x8a7c, 0x8a75, 0x8a6c, + 0x8a6e, 0x8acd, 0x8ae2, 0x8a61, 0x8a9a, 0x8aa5, 0x8a91, 0x8a92, + 0x8acf, 0x8ad1, 0x8ac9, 0x8adb, 0x8ad7, 0x8ac2, 0x8ab6, 0x8af6, + 0x8aeb, 0x8b14, 0x8b01, 0x8ae4, 0x8aed, 0x8afc, 0x8af3, 0x8ae6, + 0x8aee, 0x8ade, 0x8b28, 0x8b9c, 0x8b16, 0x8b1a, 0x8b10, 0x8b2b, + 0x8b2d, 0x8b56, 0x8b59, 0x8b4e, 0x8b9e, 0x8b6b, 0x8b96, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x9658, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x913a, 0xfffd, + 0x9114, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9134, + /* 0x5b */ + 0xfffd, 0xfffd, 0x90df, 0xfffd, 0xfffd, 0x9136, 0xfffd, 0xfffd, + 0x9106, 0x9148, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x82bb, 0xfffd, 0x52f1, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5df0, 0xfffd, + 0x580a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x58d9, 0xfffd, 0xfffd, 0x58e2, 0xfffd, 0xfffd, + 0xfffd, 0x58e0, 0xfffd, 0x58da, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x57e1, 0xfffd, 0xfffd, 0x584f, 0xfffd, 0xfffd, + 0x5816, 0xfffd, 0xfffd, 0xfffd, 0x5852, 0x581d, 0x5864, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x5c */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x858c, 0xfffd, 0xfffd, 0x8553, 0xfffd, + 0xfffd, 0x85f6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x83a7, + 0x8407, 0x84ef, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x82e7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8622, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8526, + 0xfffd, 0xfffd, 0x584b, 0x7162, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x8558, 0x84fd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x854e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8588, 0xfffd, 0xfffd, + 0x85ba, 0xfffd, 0xfffd, 0xfffd, 0x7296, 0x6ece, + /* 0x5d */ + 0x8541, 0xfffd, 0x85ce, 0x8552, 0x84c0, 0x8452, 0x8464, 0xfffd, + 0xfffd, 0x8494, 0x8435, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x859f, 0xfffd, 0xfffd, 0x8555, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x9daf, 0x8493, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x7e08, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x8546, 0xfffd, 0xfffd, 0x8562, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x851e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x9a40, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x863a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x93a3, 0x8577, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x861e, 0xfffd, 0x85fa, + /* 0x5e */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8604, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x85ea, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x861a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5969, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5c37, 0xfffd, + 0x636b, 0x6476, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x649f, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x6451, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x645c, + 0xfffd, 0xfffd, 0xfffd, 0x64b3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x6504, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x6516, 0xfffd, 0xfffd, + /* 0x5f */ + 0xfffd, 0x64f7, 0x64fc, 0xfffd, 0x651b, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x5630, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x5638, 0x56c8, 0xfffd, 0x56a6, 0xfffd, + 0xfffd, 0x5504, 0x54bc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x5680, 0xfffd, 0xfffd, 0xfffd, 0x565d, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5660, 0xfffd, 0xfffd, 0x5635, + 0x55f6, 0xfffd, 0xfffd, 0x5666, 0xfffd, 0xfffd, 0xfffd, 0x5672, + 0xfffd, 0x568c, 0xfffd, 0xfffd, 0xfffd, 0x5665, 0xfffd, 0xfffd, + 0x561c, 0xfffd, 0x562e, 0xfffd, 0xfffd, 0xfffd, 0x55e9, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5616, 0xfffd, 0xfffd, 0xfffd, + 0x56c0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x60 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x560d, 0x56b3, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x56c1, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x566f, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f61, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x56b6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5695, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5707, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5e43, + 0xfffd, 0xfffd, 0xfffd, 0x5e6c, 0x5e58, 0x5e57, + /* 0x61 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x5d87, 0xfffd, 0x5cf4, 0xfffd, 0xfffd, 0x5d50, + 0xfffd, 0xfffd, 0xfffd, 0x5d2c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x5da7, 0xfffd, 0x5da0, 0xfffd, 0xfffd, 0x5d97, + 0x5d0d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x5db8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5d81, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x5dd4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x540e, 0x5fa0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7377, 0x7341, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x736a, 0xfffd, 0x733b, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x736b, 0xfffd, + /* 0x62 */ + 0xfffd, 0xfffd, 0xfffd, 0x7380, 0xfffd, 0xfffd, 0xfffd, 0x737c, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x98e0, 0x9933, 0x98e9, 0x993c, 0x98ea, 0x98eb, + 0x98ed, 0x98f4, 0x9909, 0x9911, 0x4f59, 0x991b, 0x9937, 0x993f, + 0x9943, 0x9948, 0x9949, 0x994a, 0x994c, 0x9962, 0xfffd, 0x5ee1, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x8ce1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x61fa, 0x61ae, 0xfffd, 0x616a, 0xfffd, 0xfffd, + 0x613e, 0x60b5, 0x6134, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x61cc, + 0xfffd, 0x615f, 0x61e8, 0x60fb, 0x6137, 0xfffd, + /* 0x63 */ + 0xfffd, 0x60f2, 0xfffd, 0xfffd, 0x6173, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x611c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x6192, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9582, 0x9586, 0x95c8, 0x958e, + 0x9594, 0x958c, 0x95e5, 0x95ad, 0x95ab, 0x9b2e, 0x95ac, 0x95be, + 0x95b6, 0x9b29, 0x95bf, 0x95bd, 0x95bc, 0x95c3, 0x95cb, 0x95d4, + 0x95d0, 0x95d5, 0x95de, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x7043, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6f59, 0xfffd, 0xfffd, 0xfffd, + 0x7027, 0x7018, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6ffc, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6d87, + /* 0x64 */ + 0xfffd, 0xfffd, 0xfffd, 0x6d79, 0x6e5e, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x6fae, 0xfffd, 0xfffd, 0xfffd, 0x700f, 0x6ef8, + 0x6f6f, 0xfffd, 0xfffd, 0xfffd, 0x6df6, 0x6f7f, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x7006, 0xfffd, 0xfffd, 0x6fa0, 0xfffd, 0xfffd, 0xfffd, + 0x700b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x7067, 0xfffd, 0xfffd, 0x7044, 0xfffd, 0x7005, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x6f77, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x7020, 0x701f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x7032, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7028, + /* 0x65 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x705d, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x9a2b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9087, 0xfffd, + 0x9015, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9090, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5c68, + 0xfffd, 0x5f33, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x5af5, 0x5ad7, 0xfffd, + /* 0x66 */ + 0xfffd, 0xfffd, 0x5b00, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x5a6d, 0x5b08, 0xfffd, 0x5b4c, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x5aa7, 0x5afb, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5b0b, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5b21, + 0x5b2a, 0xfffd, 0xfffd, 0xfffd, 0x5b19, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99d4, + 0x99df, 0x99d9, 0x9a36, 0x9a5b, 0x99d1, 0x99d8, 0x9a4d, 0x9a4a, + 0x99e2, 0x9a6a, 0x9a0f, 0x9a0d, 0x9a05, 0x9a42, 0x9a2d, 0x9a16, + 0x9a41, 0x9a2e, 0x9a38, 0x9a43, 0x9a44, 0x9a4f, 0x9a65, 0x9a64, + 0x7cf9, 0x7d06, 0x7d02, 0x7d07, 0x7d08, 0x7e8a, + /* 0x67 */ + 0x7d1c, 0x7d15, 0x7d13, 0x7d3a, 0x7d32, 0x7d31, 0x7e10, 0x7d3c, + 0x7d40, 0x7d3f, 0x7d5d, 0x7d4e, 0x7d73, 0x7d86, 0x7d83, 0x7d88, + 0x7dbe, 0x7dba, 0x7dcb, 0x7dd4, 0x7dc4, 0x7d9e, 0x7dac, 0x7db9, + 0x7da3, 0x7db0, 0x7dc7, 0x7dd9, 0x7dd7, 0x7df9, 0x7df2, 0x7e62, + 0x7de6, 0x7df6, 0x7df1, 0x7e0b, 0x7de1, 0x7e09, 0x7e1d, 0x7e1f, + 0x7e1e, 0x7e2d, 0x7e0a, 0x7e11, 0x7e7d, 0x7e39, 0x7e35, 0x7e32, + 0x7e46, 0x7e45, 0x7e88, 0x7e5a, 0x7e52, 0x7e6e, 0x7e7e, 0x7e70, + 0x7e6f, 0x7e98, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x74a3, 0x744b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x74cf, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x980a, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x74bd, 0x743f, 0x7489, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x68 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x74a6, + 0xfffd, 0xfffd, 0xfffd, 0x74d4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x74da, 0xfffd, 0x97d9, + 0x97de, 0x97dc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x69aa, 0x6aea, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6898, 0xfffd, 0x68d6, 0x6a05, + 0x689f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6adb, 0xfffd, 0x6af3, + 0xfffd, 0xfffd, 0x6ae8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6adf, 0xfffd, 0x6a89, 0xfffd, + 0xfffd, 0x690f, 0x6a48, 0xfffd, 0x6968, 0xfffd, 0x69bf, 0xfffd, + 0xfffd, 0xfffd, 0x6a3a, 0xfffd, 0x6a9c, 0xfffd, 0x6b12, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x6b1e, 0xfffd, 0xfffd, 0x6add, 0x69e7, 0xfffd, + /* 0x69 */ + 0x6b0f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6b16, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x6aec, 0x6ada, 0xfffd, 0x6af8, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x6ab3, 0xfffd, 0x6ae7, 0xfffd, 0xfffd, + 0x6aa3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6ad3, 0xfffd, 0xfffd, + 0xfffd, 0x6ade, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x6ba4, 0xfffd, 0x6b9e, 0x6bae, 0xfffd, + 0x6bab, 0xfffd, 0x6baf, 0xfffd, 0x8ed4, 0x8edb, 0x8ef2, 0x8efb, + 0x8f64, 0x8ef9, 0x8efc, 0x8eeb, 0x8ee4, 0x8f62, 0x8efa, 0x8efe, + 0x8f0a, 0x8f07, 0x8f05, 0x8f12, 0x8f26, 0x8f1e, + /* 0x6a */ + 0x8f1f, 0x8f1c, 0x8f33, 0x8f46, 0x8f54, 0xfffd, 0x6214, 0x6227, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x750c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x66c7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x66c4, 0xfffd, 0xfffd, 0x6689, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x66d6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x8cc1, 0x8cb0, 0x8cba, 0x8cbd, 0x8d04, 0x8cb2, 0x8cc5, + 0x8d10, 0x8cd1, 0x8cda, 0x8cd5, 0x8ceb, 0x8ce7, 0x8cfb, 0x8998, + 0x89ac, 0x89a1, 0x89bf, 0x89a6, 0x89af, 0x89b2, 0x89b7, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x6b */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6bff, 0xfffd, + 0xfffd, 0x6c0c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x6c2c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x7258, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x6727, 0x8156, 0xfffd, 0x81da, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x811b, 0xfffd, 0xfffd, + 0xfffd, 0x81be, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x8161, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x81cf, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x6c */ + 0xfffd, 0xfffd, 0x6b5f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x98ae, 0x98af, 0x98b6, 0x98bc, 0x98c6, 0x98c8, 0xfffd, 0xfffd, + 0x8f42, 0xfffd, 0xfffd, 0x9f4f, 0x6595, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x716c, 0x7152, 0xfffd, + 0x7197, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x71c1, 0xfffd, + 0xfffd, 0xfffd, 0x71dc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x71fe, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x79b0, 0xfffd, 0xfffd, 0x798e, 0xfffd, 0xfffd, 0x79aa, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x6d */ + 0x61df, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6164, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x61e3, 0x6207, + 0xfffd, 0xfffd, 0xfffd, 0x6fa9, 0xfffd, 0x78ef, 0xfffd, 0x78ad, + 0xfffd, 0x7868, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x78b8, 0xfffd, + 0xfffd, 0x792a, 0x7931, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x7864, 0x78fd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x78e7, 0xfffd, 0xfffd, 0xfffd, 0x78e3, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f95, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7798, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x775e, 0x77bc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x6e */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x7f86, 0xfffd, 0xfffd, 0x7f88, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x91d2, 0x91d3, 0x91d4, 0x91d9, 0x91d7, + 0x91d5, 0x91f7, 0x91e7, 0x91e4, 0x9346, 0x91f5, 0x91f9, 0x9208, + 0x9226, 0x9245, 0x9211, 0x9210, 0x9201, 0x9227, 0x9204, 0x9225, + 0x9200, 0x923a, 0x9266, 0x9237, 0x9233, 0x9255, 0x923d, 0x9238, + 0x925e, 0x926c, 0x926d, 0x923f, 0x9460, 0x9230, 0x9249, 0x9248, + 0x924d, 0x922e, 0x9239, 0x9438, 0x92ac, 0x92a0, 0x927a, 0x92aa, + 0x92ee, 0x92cf, 0x9403, 0x92e3, 0x943a, 0x92b1, 0x92a6, 0x93a7, + 0x9296, 0x92cc, 0x92a9, 0x93f5, 0x9293, 0x927f, + /* 0x6f */ + 0x93a9, 0x929a, 0x931a, 0x92ab, 0x9283, 0x940b, 0x92a8, 0x92a3, + 0x9412, 0x9338, 0x92f1, 0x93d7, 0x92e5, 0x92f0, 0x92ef, 0x92e8, + 0x92bc, 0x92dd, 0x92f6, 0x9426, 0x9427, 0x92c3, 0x92df, 0x92e6, + 0x9312, 0x9306, 0x9369, 0x931b, 0x9340, 0x9301, 0x9315, 0x932e, + 0x9343, 0x9307, 0x9308, 0x931f, 0x9319, 0x9365, 0x9347, 0x9376, + 0x9354, 0x9364, 0x93aa, 0x9370, 0x9384, 0x93e4, 0x93d8, 0x9428, + 0x9387, 0x93cc, 0x9398, 0x93b8, 0x93bf, 0x93a6, 0x93b0, 0x93b5, + 0x944c, 0x93e2, 0x93dc, 0x93dd, 0x93cd, 0x93de, 0x93c3, 0x93c7, + 0x93d1, 0x9414, 0x941d, 0x93f7, 0x9465, 0x9413, 0x946d, 0x9420, + 0x9479, 0x93f9, 0x9419, 0x944a, 0x9432, 0x943f, 0x9454, 0x9463, + 0x937e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x70 */ + 0xfffd, 0xfffd, 0x7a61, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ce9, 0x9cf6, + 0x9d07, 0x9d06, 0x9d23, 0x9d87, 0x9e15, 0x9d1d, 0x9d1f, 0x9de5, + 0x9d2f, 0x9dd9, 0x9d30, 0x9d42, 0x9e1e, 0x9d53, 0x9e1d, 0x9d60, + 0x9d52, 0x9df3, 0x9d5c, 0x9d61, 0x9d93, 0x9d6a, 0x9d6f, 0x9d89, + 0x9d98, 0x9d9a, 0x9dc0, 0x9da5, 0x9da9, 0x9dc2, 0x9dbc, 0x9e1a, + 0x9dd3, 0x9dda, 0x9def, 0x9de6, 0x9df2, 0x9df8, 0x9e0c, 0x9dfa, + 0x9e1b, 0xfffd, 0xfffd, 0x7664, 0x7658, 0xfffd, 0x7667, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x7602, 0xfffd, 0xfffd, 0x7646, 0xfffd, 0xfffd, 0x7647, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7649, 0xfffd, + 0x761e, 0xfffd, 0xfffd, 0x763b, 0xfffd, 0xfffd, + /* 0x71 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x766d, + 0xfffd, 0xfffd, 0x766e, 0xfffd, 0xfffd, 0x7669, 0xfffd, 0xfffd, + 0xfffd, 0x7672, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x7ac7, 0xfffd, 0xfffd, 0xfffd, 0x7ab6, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x8960, 0xfffd, 0xfffd, 0xfffd, 0x8933, 0xfffd, 0x895d, 0x8947, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x8938, 0xfffd, 0x8964, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x76b8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x802e, 0xfffd, 0xfffd, 0x802c, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8079, 0xfffd, + 0x8075, 0xfffd, 0xfffd, 0x9807, 0x980e, 0x980f, + /* 0x72 */ + 0x9821, 0x981c, 0x6f41, 0x9826, 0x9837, 0x984e, 0x9853, 0x9873, + 0x9862, 0x9859, 0x9865, 0x986c, 0x9870, 0xfffd, 0xfffd, 0xfffd, + 0x87e3, 0x8806, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x8706, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x8823, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x87f6, 0xfffd, 0xfffd, 0x86fa, 0x87ef, 0xfffd, 0x8784, 0xfffd, + 0xfffd, 0xfffd, 0x8810, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x87c8, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8811, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x87bb, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x87ce, 0xfffd, + /* 0x73 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7f4c, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7be4, 0xfffd, 0x7b67, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7c69, 0xfffd, 0xfffd, + 0x7bf3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7c00, 0x7bcb, 0xfffd, 0xfffd, + 0xfffd, 0x7c5c, 0xfffd, 0x7c1e, 0xfffd, 0xfffd, 0x7c2b, 0xfffd, + 0x7c23, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7c6a, 0xfffd, + /* 0x74 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7c5f, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8264, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x826b, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x88ca, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7fa5, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7cf2, 0x7cf6, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7cdd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x7e36, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ea9, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8db2, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x75 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91c5, 0x91c3, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x9e7a, 0x8e89, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x8e4c, 0xfffd, 0xfffd, 0xfffd, 0x8e92, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e7a, 0x8e55, 0xfffd, + 0x8e9a, 0x8e8b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x8e93, 0xfffd, 0xfffd, 0x8e91, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ea1, 0x8e63, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8eaa, 0xfffd, + 0xfffd, 0x8ea6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x89f4, 0xfffd, 0xfffd, + /* 0x76 */ + 0xfffd, 0xfffd, 0x89f6, 0xfffd, 0xfffd, 0x975a, 0xfffd, 0x9742, + 0xfffd, 0xfffd, 0x973d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9744, + 0xfffd, 0xfffd, 0x9f54, 0x9f5f, 0x9f59, 0x9f60, 0x9f5c, 0x9f66, + 0x9f6c, 0x9f6a, 0x9f77, 0x9efd, 0x9eff, 0x9f09, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b8e, 0xfffd, 0x947e, 0xfffd, + 0x93e8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b77, 0x9b74, + 0x9b81, 0x9b83, 0x9b8e, 0x9c78, 0x7a4c, 0x9b92, 0x9c5f, 0x9b90, + 0x9bad, 0x9b9a, 0x9baa, 0x9b9e, 0x9c6d, 0x9bab, 0x9b9d, 0x9c58, + 0x9bc1, 0x9c7a, 0x9c31, 0x9c39, 0x9c23, 0x9c37, 0x9bc0, 0x9bca, + 0x9bc7, 0x9bfd, 0x9bd6, 0x9bea, 0x9beb, 0x9be1, 0x9be4, 0x9be7, + 0x9bdd, 0x9be2, 0x9bf0, 0x9bdb, 0x9bf4, 0x9bd4, 0x9c5d, 0x9c08, + 0x9c10, 0x9c0d, 0x9c12, 0x9c09, 0x9bff, 0x9c20, + /* 0x77 */ + 0x9c32, 0x9c2d, 0x9c28, 0x9c25, 0x9c29, 0x9c33, 0x9c3e, 0x9c48, + 0x9c3b, 0x9c35, 0x9c45, 0x9c56, 0x9c54, 0x9c52, 0x9c67, 0xfffd, + 0xfffd, 0x97c3, 0x97bd, 0xfffd, 0x97c9, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9dbb, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x9acf, 0xfffd, 0x9ad6, 0x9ad5, 0xfffd, 0xfffd, + 0xfffd, 0x9b58, 0x9b4e, 0xfffd, 0xfffd, 0xfffd, 0x9957, 0x995c, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b22, 0xfffd, 0xfffd, + 0x4e48, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x9ef7, 0xfffd, 0xfffd, 0x9ef2, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x78 */ + 0x896c, 0x95c6, 0x9336, 0x5f46, 0x8514, 0x7e94, 0x5382, 0x51b2, + 0x4e11, 0x9f63, 0x5679, 0x515a, 0x6dc0, 0x9f15, 0x6597, 0x5641, + 0x9aee, 0x8303, 0x4e30, 0x8907, 0x5e72, 0x7a40, 0x98b3, 0x5e7f, + 0x95a4, 0x9b0d, 0x5212, 0x8ff4, 0x5f59, 0x7a6b, 0x98e2, 0x51e0, + 0x50a2, 0x4ef7, 0x8350, 0x8591, 0x5118, 0x636e, 0x6372, 0x524b, + 0x5938, 0x774f, 0x8721, 0x814a, 0x7e8d, 0x91cc, 0x66c6, 0x5e18, + 0x77ad, 0x9e75, 0x56c9, 0x9ef4, 0x6fdb, 0x61de, 0x77c7, 0x7030, + 0x9eb5, 0x884a, 0x95e2, 0x82f9, 0x51ed, 0x6251, 0x4ec6, 0x6734, + 0x97c6, 0x7c64, 0x7e34, 0x97a6, 0x9eaf, 0x786e, 0x820d, 0x672f, + 0x677e, 0x56cc, 0x53f0, 0x98b1, 0x6aaf, 0x7f4e, 0x6d82, 0x7cf0, + 0x4e07, 0x4fc2, 0x7e6b, 0x9e79, 0x56ae, 0x9b1a, 0x846f, 0x53f6, + 0x90c1, 0x79a6, 0x7c72, 0x613f, 0x4e91, 0x9ad2, + /* 0x79 */ + 0x75c7, 0x96bb, 0x53ea, 0x7dfb, 0x88fd, 0x79cd, 0x7843, 0x7b51, + 0x51c6, +}; + +static int +gb12345ext_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 == 0x21) || (c1 == 0x26) || (c1 == 0x28) || (c1 >= 0x30 && c1 <= 0x79)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if (c2 >= 0x21 && c2 < 0x7f) { + unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); + unsigned short wc = 0xfffd; + if (i < 470) { + if (i < 12) + wc = gb12345ext_2uni_page21[i]; + } else if (i < 658) { + if (i < 555) + wc = gb12345ext_2uni_page26[i-470]; + } else if (i < 1410) { + if (i < 690) + wc = gb12345ext_2uni_page28[i-658]; + } else { + if (i < 8281) + wc = gb12345ext_2uni_page30[i-1410]; + } + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + +static const unsigned short gb12345ext_2charset[2252] = { + 0x283d, 0x283e, 0x283f, 0x283b, 0x2840, 0x283c, 0x212c, 0x7871, + 0x7829, 0x7833, 0x7761, 0x4252, 0x787d, 0x5147, 0x785f, 0x7842, + 0x6245, 0x4034, 0x4258, 0x7872, 0x4f40, 0x5876, 0x4129, 0x3256, + 0x3876, 0x4347, 0x4257, 0x4e30, 0x3260, 0x556c, 0x5877, 0x4921, + 0x3138, 0x7841, 0x5336, 0x342b, 0x5871, 0x552e, 0x494b, 0x4763, + 0x594d, 0x3d76, 0x595d, 0x4748, 0x464d, 0x4e31, 0x3d44, 0x5947, + 0x3c5b, 0x5247, 0x592f, 0x525a, 0x3f6b, 0x3c73, 0x594f, 0x5931, + 0x592d, 0x7845, 0x3325, 0x5345, 0x3422, 0x5933, 0x5950, 0x594e, + 0x5932, 0x3679, 0x782c, 0x413d, 0x7828, 0x7929, 0x3633, 0x7840, + 0x785d, 0x3f2d, 0x783b, 0x5859, 0x5472, 0x7848, 0x3855, 0x3950, + 0x585c, 0x3434, 0x3b2e, 0x3e67, 0x4175, 0x3974, 0x585b, 0x3d23, + 0x3c41, 0x3e22, 0x362f, 0x4e71, 0x512b, 0x4a24, 0x404d, 0x4a46, + 0x5b3d, 0x4078, 0x4830, 0x5850, 0x3b63, 0x5851, 0x4778, 0x502d, + 0x7827, 0x5847, 0x325e, 0x5161, 0x4077, 0x5849, 0x324e, 0x3454, + 0x7923, 0x786b, 0x7878, 0x6161, 0x5f43, 0x5431, 0x5f42, 0x4e4a, + 0x4674, 0x5146, 0x4925, 0x4747, 0x3525, 0x5334, 0x473a, 0x5844, + 0x4270, 0x4e58, 0x5f6f, 0x5f59, 0x4c3e, 0x6036, 0x453b, 0x5f75, + 0x3322, 0x5f69, 0x3b29, 0x5f6b, 0x5025, 0x5f34, 0x5f58, 0x5f3c, + 0x7830, 0x5f50, 0x5f55, 0x5f66, 0x5f5c, 0x6048, 0x5f60, 0x4567, + 0x3656, 0x782b, 0x5f4c, 0x4f45, 0x5f62, 0x6060, 0x4476, 0x5f3f, + 0x417c, 0x7875, 0x6037, 0x514f, 0x6053, 0x5f79, 0x603f, 0x4f79, + 0x5966, 0x5f3d, 0x7853, 0x786a, 0x5676, 0x6070, 0x397a, 0x4e27, + 0x5430, 0x5432, 0x4d3c, 0x4d45, 0x5b6b, 0x5634, 0x3c61, 0x5b51, + 0x5b71, 0x5b76, 0x5222, 0x3128, 0x3321, 0x3f69, 0x5c63, 0x5b6e, + 0x5b75, 0x4d3f, 0x4e6b, 0x5b77, 0x333e, 0x4735, 0x3566, 0x5739, + 0x3669, 0x3758, 0x473d, 0x3f51, 0x4c33, 0x5139, 0x405d, 0x5b5b, + 0x5b64, 0x3b35, 0x4222, 0x5b62, 0x5b5e, 0x3053, 0x5733, 0x3a78, + 0x4a59, 0x434e, 0x7849, 0x3c50, 0x5e46, 0x3661, 0x3d31, 0x375c, + 0x5731, 0x4226, 0x383e, 0x662b, 0x6634, 0x4268, 0x657d, 0x657c, + 0x6635, 0x6623, 0x662c, 0x663f, 0x3d3f, 0x664d, 0x6648, 0x6649, + 0x5324, 0x4974, 0x662e, 0x4b6f, 0x5127, 0x424f, 0x475e, 0x4a35, + 0x447e, 0x4973, 0x5034, 0x3f6d, 0x3368, 0x3126, 0x3d2b, 0x5728, + 0x5130, 0x3654, 0x353c, 0x5e4f, 0x4245, 0x3263, 0x6570, 0x4a74, + 0x3854, 0x612d, 0x353a, 0x4f3f, 0x6141, 0x385a, 0x6134, 0x6130, + 0x6150, 0x5538, 0x612b, 0x6140, 0x613d, 0x613b, 0x6149, 0x416b, + 0x536c, 0x3f79, 0x424d, 0x615b, 0x5b4f, 0x7850, 0x4b27, 0x4a26, + 0x554a, 0x3478, 0x5621, 0x6078, 0x607e, 0x607d, 0x5644, 0x3152, + 0x306f, 0x607c, 0x7835, 0x3849, 0x3c38, 0x7838, 0x3f62, 0x436d, + 0x3327, 0x6250, 0x374f, 0x3963, 0x422e, 0x4c7c, 0x6572, 0x5545, + 0x7824, 0x352f, 0x4356, 0x4d64, 0x783d, 0x3a73, 0x3e36, 0x3453, + 0x6162, 0x3834, 0x3339, 0x626a, 0x4346, 0x3671, 0x4455, 0x6322, + 0x627c, 0x302e, 0x632b, 0x626b, 0x627d, 0x6269, 0x787c, 0x4c2c, + 0x3252, 0x3251, 0x627a, 0x395f, 0x6d28, 0x6266, 0x4b4b, 0x4247, + 0x6325, 0x476c, 0x5347, 0x3139, 0x412f, 0x463e, 0x6334, 0x352c, + 0x375f, 0x4375, 0x6264, 0x4f5c, 0x5264, 0x3f52, 0x5326, 0x6278, + 0x7856, 0x6d21, 0x6d2f, 0x627b, 0x334d, 0x4041, 0x3b33, 0x507c, + 0x6263, 0x3e65, 0x4965, 0x4135, 0x6d30, 0x6a27, 0x6a28, 0x553d, + 0x4f37, 0x785e, 0x502e, 0x4961, 0x5e51, 0x7846, 0x7847, 0x4928, + 0x4255, 0x3c70, 0x516f, 0x3b53, 0x4b70, 0x3537, 0x4740, 0x5e62, + 0x5e68, 0x4227, 0x563f, 0x3f59, 0x5e52, 0x3274, 0x404c, 0x4453, + 0x5e58, 0x3527, 0x3226, 0x3827, 0x464b, 0x5e6c, 0x4c22, 0x4e4e, + 0x3c71, 0x5335, 0x4230, 0x5471, 0x3b77, 0x3532, 0x3523, 0x3e5d, + 0x3c37, 0x4462, 0x3177, 0x4521, 0x3869, 0x5640, 0x4029, 0x5f22, + 0x305a, 0x4b53, 0x5f23, 0x4845, 0x5e73, 0x446c, 0x4223, 0x4039, + 0x5e7c, 0x3273, 0x5f25, 0x4963, 0x545c, 0x424e, 0x4c2f, 0x3d41, + 0x403f, 0x305c, 0x3550, 0x4a7d, 0x4132, 0x3150, 0x6c35, 0x782f, + 0x5536, 0x364f, 0x4a31, 0x5667, 0x544e, 0x6a4d, 0x3329, 0x545d, + 0x6a4a, 0x784f, 0x6a3c, 0x4f7e, 0x6a53, 0x3f75, 0x4939, 0x4a69, + 0x3b61, 0x6b4a, 0x7868, 0x7860, 0x362b, 0x7869, 0x6845, 0x4c75, + 0x6849, 0x6847, 0x5466, 0x3630, 0x553b, 0x6862, 0x516e, 0x3763, + 0x6865, 0x5235, 0x3c2b, 0x683f, 0x4859, 0x6867, 0x3939, 0x4739, + 0x687d, 0x3d30, 0x572e, 0x4056, 0x6848, 0x4225, 0x316a, 0x4a60, + 0x5179, 0x4653, 0x4a77, 0x686b, 0x6863, 0x4745, 0x3b7a, 0x4d56, + 0x685f, 0x3535, 0x686d, 0x3c6c, 0x6949, 0x786d, 0x6944, 0x447b, + 0x3c77, 0x3971, 0x6956, 0x6935, 0x684e, 0x687c, 0x695a, 0x685d, + 0x6946, 0x6853, 0x6840, 0x6934, 0x6850, 0x6937, 0x5323, 0x4038, + 0x4828, 0x6921, 0x686f, 0x692d, 0x6879, 0x4755, 0x4537, 0x6c23, + 0x3b36, 0x4b6a, 0x407a, 0x3969, 0x3250, 0x6966, 0x6964, 0x6969, + 0x6967, 0x696b, 0x3c5f, 0x4931, 0x3f47, 0x4539, 0x6b27, 0x5531, + 0x6b2a, 0x4678, 0x4762, 0x6b32, 0x6424, 0x786f, 0x637e, 0x782d, + 0x4259, 0x5428, 0x6435, 0x4733, 0x4e50, 0x3262, 0x3b6b, 0x6425, + 0x4c40, 0x573c, 0x3935, 0x3257, 0x4370, 0x3553, 0x5c7e, 0x3b26, + 0x564d, 0x4978, 0x4231, 0x6430, 0x427a, 0x5366, 0x453d, 0x3a3a, + 0x4130, 0x5755, 0x5547, 0x3d25, 0x3d2c, 0x7223, 0x4643, 0x3d60, + 0x636d, 0x4873, 0x6431, 0x4023, 0x6464, 0x6436, 0x492c, 0x3d3d, + 0x4054, 0x3d27, 0x6445, 0x5473, 0x6d34, 0x642b, 0x356d, 0x5747, + 0x4528, 0x4a2a, 0x4522, 0x7855, 0x3c43, 0x4c4e, 0x4044, 0x4e2b, + 0x3175, 0x3d26, 0x6378, 0x424b, 0x645e, 0x6442, 0x503a, 0x6449, + 0x642f, 0x3174, 0x6372, 0x4124, 0x646c, 0x646b, 0x6371, 0x647e, + 0x7858, 0x6472, 0x403d, 0x6363, 0x645c, 0x4877, 0x406c, 0x4c32, + 0x6530, 0x4d65, 0x4250, 0x6459, 0x4e5a, 0x4c7e, 0x4e5e, 0x4136, + 0x6c3f, 0x5c64, 0x3733, 0x6c3e, 0x532b, 0x6c41, 0x4848, 0x3363, + 0x6c47, 0x3546, 0x4955, 0x4c4c, 0x6c4b, 0x532a, 0x3253, 0x5672, + 0x3b62, 0x3d7d, 0x6c62, 0x4b38, 0x422f, 0x4043, 0x4e2a, 0x522f, + 0x367b, 0x6b39, 0x4723, 0x5c7d, 0x363f, 0x4e7e, 0x5734, 0x4f41, + 0x3137, 0x534c, 0x6178, 0x616f, 0x537c, 0x4a28, 0x3640, 0x6176, + 0x617d, 0x447c, 0x3b71, 0x4154, 0x616e, 0x4a5e, 0x4c21, 0x4f57, + 0x6228, 0x6224, 0x4f56, 0x6775, 0x6762, 0x4b76, 0x5328, 0x426a, + 0x6776, 0x6761, 0x6828, 0x3b37, 0x6774, 0x476d, 0x6767, 0x682c, + 0x6836, 0x6a31, 0x327a, 0x4436, 0x314f, 0x3b2d, 0x3531, 0x336b, + 0x7921, 0x3e37, 0x7069, 0x3768, 0x5171, 0x7079, 0x342f, 0x4531, + 0x707c, 0x4146, 0x706c, 0x706f, 0x7077, 0x705d, 0x3171, 0x5177, + 0x705c, 0x5622, 0x705f, 0x712e, 0x5122, 0x7128, 0x712b, 0x5338, + 0x4c31, 0x7132, 0x3722, 0x3028, 0x7164, 0x5665, 0x5535, 0x3e21, + 0x3c60, 0x454c, 0x422c, 0x784a, 0x6d79, 0x6d6e, 0x4277, 0x7851, + 0x6d7a, 0x7857, 0x5675, 0x3d43, 0x7927, 0x6d4c, 0x6d3a, 0x7866, + 0x5162, 0x4b36, 0x6d38, 0x6d3f, 0x4837, 0x426b, 0x5729, 0x6d57, + 0x6d53, 0x6d36, 0x6d4d, 0x3421, 0x302d, 0x3f73, 0x6d42, 0x4079, + 0x372f, 0x6d43, 0x3b76, 0x6c75, 0x787a, 0x6c78, 0x4071, 0x6c72, + 0x353b, 0x7926, 0x5656, 0x3346, 0x7836, 0x7655, 0x3b7d, 0x5331, + 0x7023, 0x3b60, 0x4e48, 0x783e, 0x4e51, 0x4d5d, 0x476e, 0x7140, + 0x3f7a, 0x345c, 0x474f, 0x713c, 0x546e, 0x4754, 0x4a7a, 0x3e3a, + 0x314a, 0x7928, 0x7348, 0x3c63, 0x3d5a, 0x3736, 0x567e, 0x7366, + 0x7346, 0x4938, 0x7359, 0x7365, 0x4228, 0x736c, 0x3c72, 0x7371, + 0x736f, 0x4729, 0x4131, 0x403a, 0x336f, 0x736a, 0x7425, 0x417d, + 0x7862, 0x7356, 0x737d, 0x4069, 0x4261, 0x787b, 0x7456, 0x3760, + 0x4138, 0x7870, 0x744f, 0x5961, 0x7450, 0x6679, 0x3e40, 0x3c4d, + 0x667b, 0x543c, 0x3a6c, 0x667a, 0x667c, 0x667d, 0x4852, 0x4e46, + 0x4449, 0x4526, 0x6723, 0x343f, 0x6722, 0x4934, 0x563d, 0x3c36, + 0x3757, 0x6721, 0x3744, 0x4f38, 0x6726, 0x6725, 0x4970, 0x495c, + 0x6724, 0x6728, 0x672a, 0x6729, 0x5655, 0x5769, 0x306d, 0x672c, + 0x3d61, 0x672b, 0x3d4a, 0x4267, 0x5124, 0x3878, 0x485e, 0x4d33, + 0x4b3f, 0x672d, 0x3e78, 0x3e6e, 0x3073, 0x672f, 0x672e, 0x6730, + 0x5065, 0x4b67, 0x3e2d, 0x575b, 0x6736, 0x3371, 0x6739, 0x4f5f, + 0x6737, 0x4e2c, 0x673a, 0x3859, 0x4d78, 0x3141, 0x573a, 0x425a, + 0x6738, 0x6732, 0x5540, 0x3442, 0x6731, 0x4360, 0x6735, 0x673b, + 0x3d74, 0x6733, 0x424c, 0x5077, 0x6734, 0x673d, 0x3c6a, 0x673c, + 0x3c29, 0x3650, 0x355e, 0x6745, 0x5435, 0x6741, 0x3160, 0x3b3a, + 0x4365, 0x4e33, 0x6743, 0x673f, 0x4137, 0x6742, 0x673e, 0x7924, + 0x5d53, 0x6746, 0x674b, 0x6744, 0x6727, 0x674c, 0x383f, 0x6747, + 0x6749, 0x6748, 0x4f58, 0x4c50, 0x376c, 0x674a, 0x4b75, 0x575d, + 0x6750, 0x7863, 0x674f, 0x746a, 0x4246, 0x674e, 0x575c, 0x3c28, + 0x6752, 0x6751, 0x6755, 0x562f, 0x4949, 0x6754, 0x4846, 0x6740, + 0x497e, 0x3b66, 0x7873, 0x3c6b, 0x6756, 0x6759, 0x6758, 0x3d49, + 0x526f, 0x3c4c, 0x674d, 0x6757, 0x6753, 0x667e, 0x5078, 0x784d, + 0x3278, 0x5327, 0x7826, 0x4f4b, 0x675a, 0x4042, 0x733f, 0x786e, + 0x3723, 0x3055, 0x425e, 0x6e3c, 0x6e3f, 0x7447, 0x5265, 0x4f30, + 0x474c, 0x716f, 0x716c, 0x4a25, 0x4e45, 0x412a, 0x344f, 0x4979, + 0x4b4a, 0x7179, 0x4474, 0x5630, 0x7177, 0x4c7d, 0x417b, 0x4b60, + 0x5032, 0x6b56, 0x554d, 0x784c, 0x4976, 0x6b4b, 0x6b61, 0x4454, + 0x5657, 0x3326, 0x3774, 0x3d3a, 0x4465, 0x3528, 0x6b5a, 0x4527, + 0x4133, 0x466a, 0x6b77, 0x4030, 0x6b4d, 0x5460, 0x5975, 0x4159, + 0x4c28, 0x536b, 0x504b, 0x3e59, 0x3e49, 0x7867, 0x3255, 0x742f, + 0x3d22, 0x7435, 0x3c68, 0x515e, 0x5b3b, 0x5c51, 0x785c, 0x7832, + 0x7843, 0x572f, 0x3e25, 0x3c54, 0x5c48, 0x3b2a, 0x5c49, 0x4033, + 0x4d72, 0x5d2b, 0x5236, 0x5d26, 0x5d27, 0x4e2d, 0x7877, 0x3b67, + 0x5d3b, 0x5d2a, 0x3254, 0x5d25, 0x3847, 0x412b, 0x5c4a, 0x5c6a, + 0x7825, 0x5d64, 0x3d2f, 0x5c60, 0x5271, 0x5d21, 0x5d5b, 0x5c71, + 0x5d24, 0x5c3f, 0x5d35, 0x5c69, 0x5d5e, 0x3534, 0x4e5f, 0x4f74, + 0x5d77, 0x5c76, 0x3c3b, 0x5c3c, 0x7844, 0x473e, 0x5d32, 0x3c76, + 0x4878, 0x5c79, 0x4036, 0x5d23, 0x5255, 0x5229, 0x5e34, 0x544c, + 0x5c42, 0x302a, 0x5d7e, 0x5e2d, 0x422b, 0x4b55, 0x463b, 0x5e3a, + 0x5d7c, 0x5c57, 0x403c, 0x5d71, 0x425c, 0x3426, 0x4232, 0x3a45, + 0x3f77, 0x724c, 0x7239, 0x784b, 0x4a34, 0x4f3a, 0x4e4f, 0x724f, + 0x426c, 0x5329, 0x7277, 0x555d, 0x7265, 0x727d, 0x7231, 0x3275, + 0x724d, 0x3366, 0x7249, 0x524f, 0x532c, 0x7232, 0x7253, 0x726e, + 0x402f, 0x7243, 0x3946, 0x324f, 0x4279, 0x565a, 0x785a, 0x4a75, + 0x4e40, 0x3365, 0x563b, 0x7441, 0x406f, 0x3239, 0x5730, 0x7925, + 0x7834, 0x3f63, 0x714d, 0x715a, 0x5974, 0x7150, 0x3040, 0x714f, + 0x7149, 0x715c, 0x4d60, 0x7821, 0x3344, 0x4f2e, 0x3c7b, 0x3966, + 0x4359, 0x4a53, 0x6a68, 0x6a6a, 0x6a6c, 0x4757, 0x6a69, 0x6a6d, + 0x6a6e, 0x6a6f, 0x3e75, 0x4040, 0x6a6b, 0x395b, 0x757c, 0x7623, + 0x3425, 0x5a25, 0x3629, 0x383c, 0x3c46, 0x5136, 0x5a27, 0x4c56, + 0x5a26, 0x5135, 0x5a28, 0x467d, 0x3c47, 0x366f, 0x5148, 0x4b4f, + 0x3e77, 0x5a2b, 0x3743, 0x4968, 0x506d, 0x4b5f, 0x5a2d, 0x556f, + 0x5a2c, 0x5a2e, 0x5a2a, 0x5529, 0x5a31, 0x5a2f, 0x4640, 0x5a30, + 0x5767, 0x344a, 0x5a3c, 0x512f, 0x5268, 0x4a54, 0x4a2b, 0x326f, + 0x5a38, 0x396e, 0x5a39, 0x5a35, 0x3b30, 0x3843, 0x4f6a, 0x5a37, + 0x5a36, 0x5a34, 0x5a33, 0x566f, 0x5a32, 0x3f64, 0x484f, 0x5a3f, + 0x5a40, 0x352e, 0x5355, 0x5a3d, 0x536f, 0x334f, 0x3d6b, 0x4e5c, + 0x4e73, 0x5a3e, 0x4b50, 0x3b65, 0x4b35, 0x4b2d, 0x3f4e, 0x5a47, + 0x374c, 0x526a, 0x3577, 0x5a46, 0x573b, 0x4c38, 0x5a43, 0x476b, + 0x5a3a, 0x5a41, 0x5a42, 0x4142, 0x425b, 0x5a45, 0x5a44, 0x357d, + 0x5a52, 0x5a3b, 0x5a4c, 0x5a50, 0x5033, 0x5a49, 0x5a4d, 0x5a51, + 0x3b64, 0x5a4f, 0x5a48, 0x376d, 0x566e, 0x5168, 0x5a4e, 0x4535, + 0x4431, 0x5a4b, 0x4e3d, 0x4c5c, 0x565f, 0x3b51, 0x4355, 0x5a57, + 0x5a4a, 0x5a55, 0x3079, 0x472b, 0x5a56, 0x3d32, 0x503b, 0x5225, + 0x5a53, 0x5a58, 0x437d, 0x5a59, 0x5a29, 0x3d77, 0x4321, 0x5624, + 0x5a5c, 0x3c25, 0x5a5a, 0x4a36, 0x5a5b, 0x4c37, 0x4657, 0x5a5e, + 0x526b, 0x5269, 0x4734, 0x3b24, 0x537e, 0x3641, 0x3164, 0x7645, + 0x3277, 0x4843, 0x403e, 0x5a5f, 0x5a54, 0x5a5d, 0x4671, 0x3761, + 0x3134, 0x556a, 0x383a, 0x3246, 0x3931, 0x4636, 0x3b75, 0x3737, + 0x4c30, 0x3961, 0x5470, 0x567c, 0x6a5b, 0x6a5f, 0x3721, 0x3973, + 0x3161, 0x4272, 0x347b, 0x6a5c, 0x3751, 0x4c79, 0x6a5d, 0x4333, + 0x3a58, 0x6a5a, 0x4238, 0x415e, 0x3b5f, 0x6a60, 0x574a, 0x3c56, + 0x5474, 0x6a62, 0x495e, 0x3176, 0x6a64, 0x6a63, 0x344d, 0x494d, + 0x4562, 0x6259, 0x4f4d, 0x4274, 0x3c7a, 0x3833, 0x6a66, 0x564a, + 0x6a65, 0x554b, 0x3644, 0x4035, 0x572c, 0x6a67, 0x393a, 0x487c, + 0x5853, 0x6a5e, 0x5738, 0x5479, 0x545e, 0x584d, 0x4944, 0x532e, + 0x6a61, 0x4a6a, 0x3853, 0x545f, 0x384f, 0x5554, 0x4777, 0x7475, + 0x3c79, 0x533b, 0x7544, 0x754f, 0x7567, 0x754e, 0x753b, 0x336c, + 0x7552, 0x543e, 0x755c, 0x7548, 0x7559, 0x7551, 0x7566, 0x345a, + 0x7572, 0x756f, 0x477b, 0x3335, 0x547e, 0x396c, 0x3e7c, 0x5079, + 0x696d, 0x696e, 0x486d, 0x6975, 0x6974, 0x696f, 0x5661, 0x6972, + 0x6977, 0x6970, 0x6973, 0x6978, 0x3d4f, 0x697b, 0x697a, 0x5458, + 0x6979, 0x697c, 0x3828, 0x4761, 0x413e, 0x6a22, 0x3b54, 0x697e, + 0x6a21, 0x3975, 0x697d, 0x3132, 0x4256, 0x3c2d, 0x6a23, 0x4a64, + 0x3778, 0x5537, 0x535f, 0x6c31, 0x4f3d, 0x542f, 0x6a24, 0x572a, + 0x555e, 0x3d4e, 0x6a25, 0x3a64, 0x604e, 0x6976, 0x6971, 0x306c, + 0x3447, 0x3168, 0x3167, 0x4529, 0x783c, 0x6549, 0x5562, 0x412c, + 0x3d78, 0x544b, 0x397d, 0x346f, 0x4e25, 0x5137, 0x355d, 0x5436, + 0x4a4a, 0x3359, 0x4728, 0x5121, 0x5245, 0x4149, 0x4275, 0x3b39, + 0x6547, 0x315f, 0x425f, 0x654e, 0x7879, 0x5b23, 0x534a, 0x5b29, + 0x4f67, 0x575e, 0x5a79, 0x5447, 0x354b, 0x5623, 0x415a, 0x3526, + 0x5a7e, 0x5b26, 0x5a77, 0x5b2a, 0x544d, 0x3373, 0x523d, 0x3d34, + 0x4470, 0x5046, 0x7527, 0x7526, 0x4a4d, 0x784e, 0x6e44, 0x6e45, + 0x6e46, 0x6e49, 0x6e48, 0x3624, 0x6e47, 0x556b, 0x3576, 0x6e4c, + 0x6e4b, 0x3730, 0x6e4e, 0x6e4a, 0x6e4f, 0x4725, 0x6e59, 0x6e55, + 0x6e57, 0x6e50, 0x4446, 0x365b, 0x3933, 0x6e54, 0x6e53, 0x332e, + 0x4525, 0x3e7b, 0x3846, 0x6e58, 0x6e51, 0x6e56, 0x6e6a, 0x6e66, + 0x6e5d, 0x4165, 0x6e5c, 0x6e60, 0x6e6b, 0x6e5a, 0x6e5f, 0x534b, + 0x6e64, 0x3c58, 0x6e52, 0x6e68, 0x6e67, 0x6e69, 0x322c, 0x6e5e, + 0x472f, 0x432d, 0x4726, 0x6e61, 0x3227, 0x6e5b, 0x6e62, 0x6e63, + 0x3d42, 0x6e6f, 0x3875, 0x6e7e, 0x5278, 0x6f25, 0x4d2d, 0x4f33, + 0x6e7d, 0x6e79, 0x437a, 0x6f22, 0x4f4e, 0x6e6e, 0x6f28, 0x523f, + 0x6e77, 0x6f27, 0x6e7b, 0x6e70, 0x6f24, 0x6e6d, 0x6e76, 0x4f7a, + 0x5062, 0x4c60, 0x6f31, 0x4241, 0x6f36, 0x503f, 0x3135, 0x6e7a, + 0x6e72, 0x3766, 0x6f32, 0x6f37, 0x6e74, 0x337a, 0x6f2d, 0x6f38, + 0x6f30, 0x464c, 0x4871, 0x6e71, 0x6f2f, 0x6f2e, 0x6f2b, 0x6f33, + 0x3e62, 0x3856, 0x6f3e, 0x6f3a, 0x6f42, 0x6f43, 0x5736, 0x6f39, + 0x6f3f, 0x3438, 0x6f45, 0x6f23, 0x6f3c, 0x6f44, 0x3627, 0x472e, + 0x3d75, 0x432a, 0x4e7d, 0x6f40, 0x346d, 0x423c, 0x434c, 0x7823, + 0x6f2a, 0x6f3d, 0x4f47, 0x6f41, 0x6e4d, 0x6f47, 0x3978, 0x3646, + 0x6f49, 0x5521, 0x364d, 0x6f4a, 0x6f46, 0x6f3b, 0x4742, 0x6f4c, + 0x3c7c, 0x6f48, 0x5560, 0x6f71, 0x433e, 0x6f4d, 0x6f51, 0x3077, + 0x4b78, 0x6f53, 0x4e59, 0x5d76, 0x6f56, 0x6e78, 0x6f21, 0x6f4b, + 0x3864, 0x5572, 0x6f57, 0x4478, 0x6f58, 0x6f54, 0x6f55, 0x6f5f, + 0x6f60, 0x4134, 0x6f52, 0x6f5d, 0x6f61, 0x6f2c, 0x6f4f, 0x6f5b, + 0x6f5c, 0x6f5e, 0x3279, 0x3e35, 0x6f5a, 0x6f4e, 0x7649, 0x6e7c, + 0x6f64, 0x6f6a, 0x6e73, 0x6f26, 0x414d, 0x6f29, 0x6f66, 0x6f62, + 0x5653, 0x6f6b, 0x6f63, 0x6f68, 0x6f34, 0x6f35, 0x6f50, 0x412d, + 0x6f6d, 0x4058, 0x4c7a, 0x6e6c, 0x6e75, 0x6f6e, 0x567d, 0x6f6c, + 0x6f59, 0x3c78, 0x6f6f, 0x6e65, 0x6f70, 0x6f65, 0x6f67, 0x543f, + 0x4f62, 0x4477, 0x6f69, 0x4260, 0x576a, 0x7647, 0x5464, 0x3324, + 0x4345, 0x6345, 0x4941, 0x6346, 0x3155, 0x3f2a, 0x634a, 0x6348, + 0x4872, 0x4f50, 0x3c64, 0x6349, 0x5522, 0x3a52, 0x3873, 0x7839, + 0x3727, 0x396b, 0x4376, 0x634d, 0x634f, 0x634c, 0x5444, 0x6351, + 0x514b, 0x5156, 0x6355, 0x6354, 0x6350, 0x6353, 0x6356, 0x7822, + 0x6347, 0x402b, 0x6357, 0x403b, 0x6359, 0x6358, 0x635a, 0x3433, + 0x3958, 0x635b, 0x327b, 0x785b, 0x634b, 0x5a6a, 0x4942, 0x5573, + 0x5275, 0x3342, 0x423d, 0x5174, 0x3653, 0x3d57, 0x5449, 0x3c4a, + 0x4b66, 0x4f55, 0x527e, 0x4224, 0x4125, 0x7922, 0x4b64, 0x4b2b, + 0x337b, 0x5453, 0x406b, 0x4451, 0x5446, 0x3567, 0x4e6d, 0x762b, + 0x7628, 0x7630, 0x4169, 0x7626, 0x584c, 0x392e, 0x7864, 0x7733, + 0x7732, 0x7861, 0x7735, 0x4e24, 0x484d, 0x3a2b, 0x6838, 0x683a, + 0x6839, 0x4f6c, 0x5233, 0x3625, 0x476a, 0x4f6e, 0x4b33, 0x717c, + 0x506b, 0x676f, 0x4b4c, 0x717d, 0x717e, 0x5424, 0x4d67, 0x3064, + 0x3659, 0x4644, 0x416c, 0x7222, 0x7221, 0x5243, 0x7224, 0x4d37, + 0x3c55, 0x7225, 0x3e31, 0x4635, 0x4d47, 0x3f45, 0x4c62, 0x366e, + 0x7226, 0x7227, 0x5155, 0x5438, 0x722a, 0x355f, 0x4060, 0x7229, + 0x722b, 0x394b, 0x327c, 0x722c, 0x4f54, 0x722d, 0x422d, 0x7228, + 0x4827, 0x3767, 0x6c29, 0x6c2a, 0x786c, 0x7837, 0x6c2b, 0x6c2c, + 0x462e, 0x6c2d, 0x6c2e, 0x3749, 0x623b, 0x783f, 0x623d, 0x623f, + 0x6240, 0x6241, 0x3739, 0x527b, 0x6242, 0x4b47, 0x3125, 0x4a4e, + 0x3d48, 0x317d, 0x6243, 0x5178, 0x367c, 0x6244, 0x4459, 0x3676, + 0x5360, 0x6246, 0x3d24, 0x4f5a, 0x395d, 0x623c, 0x6247, 0x623e, + 0x4173, 0x6248, 0x6249, 0x4278, 0x624a, 0x624b, 0x624c, 0x4021, + 0x624d, 0x3c22, 0x4844, 0x774f, 0x7750, 0x3276, 0x624e, 0x426d, + 0x5426, 0x376b, 0x4d54, 0x335b, 0x5131, 0x3235, 0x5724, 0x6665, + 0x3e54, 0x6660, 0x3c5d, 0x6666, 0x6662, 0x4a3b, 0x4d55, 0x6661, + 0x426e, 0x6669, 0x3a27, 0x4266, 0x3f25, 0x3352, 0x666d, 0x666c, + 0x466f, 0x666b, 0x6670, 0x462d, 0x6539, 0x666f, 0x6672, 0x4c5a, + 0x6663, 0x4927, 0x6673, 0x4262, 0x5d6b, 0x6671, 0x666e, 0x6674, + 0x6675, 0x477d, 0x6668, 0x6667, 0x6676, 0x3d3e, 0x5169, 0x3e2a, + 0x6664, 0x5668, 0x423f, 0x6678, 0x6677, 0x666a, 0x3039, 0x7743, + 0x787e, 0x4c65, 0x7746, 0x7745, 0x7831, 0x4b49, 0x783a, 0x7876, + 0x775e, 0x3637, 0x4456, 0x6352, 0x634e, 0x5374, 0x774b, 0x774a, + 0x5363, 0x4233, 0x7650, 0x764f, 0x7651, 0x7652, 0x7653, 0x7658, + 0x312b, 0x7656, 0x765a, 0x765f, 0x765c, 0x765b, 0x765e, 0x7659, + 0x4f4a, 0x7667, 0x7661, 0x7669, 0x4070, 0x7668, 0x7676, 0x766b, + 0x7674, 0x7671, 0x766e, 0x7672, 0x766f, 0x7670, 0x3e28, 0x766c, + 0x766d, 0x7673, 0x7675, 0x766a, 0x767d, 0x7678, 0x767c, 0x767a, + 0x7679, 0x767b, 0x487a, 0x767e, 0x7665, 0x7724, 0x7723, 0x7725, + 0x7722, 0x7663, 0x7721, 0x7726, 0x772a, 0x7666, 0x7664, 0x7729, + 0x7727, 0x772b, 0x7728, 0x316e, 0x772e, 0x772d, 0x772c, 0x415b, + 0x7660, 0x7677, 0x7657, 0x772f, 0x765d, 0x7654, 0x7662, 0x4471, + 0x702f, 0x596c, 0x376f, 0x4379, 0x7030, 0x7032, 0x7031, 0x513b, + 0x4d52, 0x5427, 0x7036, 0x7037, 0x7033, 0x516c, 0x513c, 0x7039, + 0x703b, 0x3a68, 0x386b, 0x703c, 0x3e69, 0x7041, 0x703e, 0x7043, + 0x366c, 0x7040, 0x7044, 0x7046, 0x4574, 0x7047, 0x4835, 0x7034, + 0x7048, 0x7045, 0x7049, 0x704a, 0x704c, 0x704d, 0x5d3a, 0x3a57, + 0x773d, 0x704f, 0x704b, 0x704e, 0x3c26, 0x7051, 0x4538, 0x703a, + 0x7052, 0x7038, 0x7054, 0x7053, 0x7055, 0x7042, 0x7056, 0x5325, + 0x7058, 0x7057, 0x7035, 0x7050, 0x7059, 0x703f, 0x703d, 0x7852, + 0x7874, 0x753a, 0x3c6f, 0x514e, 0x4076, 0x4273, 0x746f, 0x7865, + 0x7859, 0x4334, 0x5964, 0x3563, 0x3533, 0x7775, 0x7854, 0x7772, + 0x763c, 0x763d, 0x763e, 0x782e, 0x466b, 0x552b, 0x6c34, 0x335d, + 0x7633, 0x7635, 0x7637, 0x7634, 0x7636, 0x4164, 0x782a, 0x7638, + 0x763a, 0x7639, 0x4823, 0x763b, 0x417a, 0x4553, 0x3928, 0x6d68, + 0x396a, 0x2672, 0x2674, 0x2675, 0x2660, 0x2661, 0x2670, 0x2671, + 0x2662, 0x2663, 0x266e, 0x266f, 0x2666, 0x2667, 0x2664, 0x2665, + 0x2668, 0x2669, 0x266a, 0x266b, +}; + +static const Summary16 gb12345ext_uni2indx_page01[23] = { + /* 0x0100 */ + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0110 }, { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, + { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, + { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0200 }, + /* 0x0200 */ + { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, + { 3, 0x0000 }, { 3, 0x0002 }, { 4, 0x0002 }, +}; +static const Summary16 gb12345ext_uni2indx_page1e[4] = { + /* 0x1e00 */ + { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x8000 }, +}; +static const Summary16 gb12345ext_uni2indx_page22[3] = { + /* 0x2200 */ + { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0020 }, +}; +static const Summary16 gb12345ext_uni2indx_page4e[1306] = { + /* 0x4e00 */ + { 7, 0x0080 }, { 8, 0x0002 }, { 9, 0x0000 }, { 9, 0x0001 }, + { 10, 0x0100 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, + { 11, 0x0004 }, { 12, 0x4002 }, { 14, 0x0000 }, { 14, 0x0000 }, + { 14, 0x0040 }, { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0080 }, + /* 0x4f00 */ + { 16, 0x0000 }, { 16, 0x0000 }, { 16, 0x0000 }, { 16, 0x0000 }, + { 16, 0x0000 }, { 16, 0x0200 }, { 17, 0x0000 }, { 17, 0x0000 }, + { 17, 0x0040 }, { 18, 0x0040 }, { 19, 0x0000 }, { 19, 0x0000 }, + { 19, 0x0004 }, { 20, 0x0000 }, { 20, 0x0001 }, { 21, 0x0000 }, + /* 0x5000 */ + { 21, 0x0a41 }, { 25, 0x0002 }, { 26, 0x0800 }, { 27, 0x0000 }, + { 27, 0x0200 }, { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0030 }, + { 30, 0x0000 }, { 30, 0x0340 }, { 33, 0x2004 }, { 35, 0x40b8 }, + { 40, 0x0224 }, { 43, 0x4022 }, { 46, 0x0120 }, { 48, 0x0200 }, + /* 0x5100 */ + { 49, 0x0315 }, { 54, 0x8131 }, { 59, 0x0400 }, { 60, 0x1c84 }, + { 65, 0x0000 }, { 65, 0x0404 }, { 67, 0x0200 }, { 68, 0x0000 }, + { 68, 0x0000 }, { 68, 0x0000 }, { 68, 0x0000 }, { 68, 0x0004 }, + { 69, 0x2040 }, { 71, 0x0000 }, { 71, 0x2001 }, { 73, 0x0002 }, + /* 0x5200 */ + { 74, 0x0000 }, { 74, 0x0004 }, { 75, 0x0000 }, { 75, 0x0000 }, + { 75, 0x0890 }, { 78, 0x0800 }, { 79, 0x4000 }, { 80, 0x0030 }, + { 82, 0x3688 }, { 88, 0x0002 }, { 89, 0x0000 }, { 89, 0x0000 }, + { 89, 0x0002 }, { 90, 0x6a20 }, { 95, 0x0004 }, { 96, 0x0122 }, + /* 0x5300 */ + { 99, 0x0000 }, { 99, 0x0000 }, { 99, 0xa000 }, { 101, 0x0002 }, + { 102, 0x0001 }, { 103, 0x0010 }, { 104, 0x0000 }, { 104, 0x0000 }, + { 104, 0x0004 }, { 105, 0x0200 }, { 106, 0x2001 }, { 108, 0x0014 }, + { 110, 0x0008 }, { 111, 0x0000 }, { 111, 0x0404 }, { 113, 0x0041 }, + /* 0x5400 */ + { 115, 0x4000 }, { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0000 }, + { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0000 }, + { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x1000 }, + { 117, 0x0000 }, { 117, 0x0000 }, { 117, 0x0002 }, { 118, 0x0000 }, + /* 0x5500 */ + { 118, 0x0010 }, { 119, 0x0000 }, { 119, 0x0000 }, { 119, 0x0000 }, + { 119, 0x8000 }, { 120, 0x4008 }, { 122, 0x0000 }, { 122, 0x0000 }, + { 122, 0x0000 }, { 122, 0x0000 }, { 122, 0x5400 }, { 125, 0x0004 }, + { 126, 0x40c0 }, { 129, 0x0400 }, { 130, 0x0200 }, { 131, 0x0040 }, + /* 0x5600 */ + { 132, 0x2040 }, { 134, 0x10d0 }, { 138, 0xc200 }, { 141, 0x0121 }, + { 144, 0x0002 }, { 145, 0x2000 }, { 146, 0x8061 }, { 150, 0x0314 }, + { 154, 0x1081 }, { 157, 0x0220 }, { 159, 0x4140 }, { 162, 0x0058 }, + { 165, 0x1327 }, { 172, 0x0002 }, { 173, 0x0000 }, { 173, 0x0000 }, + /* 0x5700 */ + { 173, 0x2880 }, { 176, 0x014c }, { 180, 0x0000 }, { 180, 0x0000 }, + { 180, 0x0000 }, { 180, 0x0000 }, { 180, 0x0000 }, { 180, 0x0000 }, + { 180, 0x0000 }, { 180, 0x0000 }, { 180, 0x0000 }, { 180, 0x0000 }, + { 180, 0x0000 }, { 180, 0x0000 }, { 180, 0x0002 }, { 181, 0x0080 }, + /* 0x5800 */ + { 182, 0x0420 }, { 184, 0x2040 }, { 186, 0x8000 }, { 187, 0x0012 }, + { 189, 0x8c00 }, { 192, 0x0084 }, { 194, 0x0014 }, { 196, 0x0220 }, + { 198, 0x0400 }, { 199, 0x1000 }, { 200, 0x4000 }, { 201, 0x4808 }, + { 204, 0x0080 }, { 205, 0xc708 }, { 211, 0x8205 }, { 215, 0x2400 }, + /* 0x5900 */ + { 217, 0x0000 }, { 217, 0x0000 }, { 217, 0x0004 }, { 218, 0x4100 }, + { 220, 0x0000 }, { 220, 0x0000 }, { 220, 0x5600 }, { 224, 0x0000 }, + { 224, 0x0000 }, { 224, 0x2000 }, { 225, 0x0000 }, { 225, 0x0000 }, + { 225, 0x0000 }, { 225, 0x0000 }, { 225, 0x0000 }, { 225, 0x0000 }, + /* 0x5a00 */ + { 225, 0x0000 }, { 225, 0x0000 }, { 225, 0x0000 }, { 225, 0x0000 }, + { 225, 0x0002 }, { 226, 0x0000 }, { 226, 0x2040 }, { 228, 0x0000 }, + { 228, 0x0000 }, { 228, 0x0000 }, { 228, 0x0080 }, { 229, 0x2000 }, + { 230, 0x0000 }, { 230, 0x0080 }, { 231, 0x0000 }, { 231, 0x0820 }, + /* 0x5b00 */ + { 233, 0x1901 }, { 237, 0x0200 }, { 238, 0x0402 }, { 240, 0x0101 }, + { 242, 0x1000 }, { 243, 0x0000 }, { 243, 0x0800 }, { 244, 0x8100 }, + { 246, 0x0000 }, { 246, 0x0000 }, { 246, 0x0000 }, { 246, 0x0000 }, + { 246, 0x0000 }, { 246, 0x0000 }, { 246, 0x1ac4 }, { 252, 0x0060 }, + /* 0x5c00 */ + { 254, 0x6980 }, { 259, 0x0000 }, { 259, 0x0000 }, { 259, 0x0080 }, + { 260, 0x0000 }, { 260, 0x0000 }, { 260, 0x1114 }, { 264, 0x0000 }, + { 264, 0x0000 }, { 264, 0x0000 }, { 264, 0x0002 }, { 265, 0x0000 }, + { 265, 0x0000 }, { 265, 0x0000 }, { 265, 0x0000 }, { 265, 0x2050 }, + /* 0x5d00 */ + { 268, 0x2000 }, { 269, 0x0080 }, { 270, 0x1000 }, { 271, 0x0000 }, + { 271, 0x0000 }, { 271, 0x0001 }, { 272, 0x0000 }, { 272, 0x0000 }, + { 272, 0x0092 }, { 275, 0x0080 }, { 276, 0x0081 }, { 278, 0x1500 }, + { 281, 0x0800 }, { 282, 0x0014 }, { 284, 0x0000 }, { 284, 0x0001 }, + /* 0x5e00 */ + { 285, 0x0000 }, { 285, 0x0100 }, { 286, 0x0820 }, { 288, 0x0048 }, + { 290, 0x0009 }, { 292, 0x8180 }, { 295, 0x1808 }, { 298, 0xc204 }, + { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0800 }, { 303, 0x0000 }, + { 303, 0x0000 }, { 303, 0x8000 }, { 304, 0x100f }, { 309, 0x0008 }, + /* 0x5f00 */ + { 310, 0x0000 }, { 310, 0x0000 }, { 310, 0x0000 }, { 310, 0x0028 }, + { 312, 0x5140 }, { 316, 0x0200 }, { 317, 0x0000 }, { 317, 0x0000 }, + { 317, 0x1000 }, { 318, 0x4002 }, { 320, 0x0201 }, { 322, 0x0200 }, + { 323, 0x0000 }, { 323, 0x0000 }, { 323, 0x0000 }, { 323, 0x0000 }, + /* 0x6000 */ + { 323, 0x0000 }, { 323, 0x0000 }, { 323, 0x0000 }, { 323, 0x0000 }, + { 323, 0x0000 }, { 323, 0x0000 }, { 323, 0x0000 }, { 323, 0x0000 }, + { 323, 0x0000 }, { 323, 0x0000 }, { 323, 0x0000 }, { 323, 0x0060 }, + { 325, 0x0000 }, { 325, 0x0000 }, { 325, 0x0002 }, { 326, 0x0806 }, + /* 0x6100 */ + { 329, 0x0000 }, { 329, 0x1800 }, { 331, 0x0000 }, { 331, 0xc090 }, + { 335, 0x0800 }, { 336, 0x8500 }, { 339, 0x4c18 }, { 344, 0x0048 }, + { 346, 0x0404 }, { 348, 0x0407 }, { 352, 0x4810 }, { 355, 0x0044 }, + { 357, 0x1280 }, { 360, 0xc000 }, { 362, 0x0108 }, { 364, 0x55c4 }, + /* 0x6200 */ + { 371, 0x0081 }, { 373, 0x0010 }, { 374, 0x0080 }, { 375, 0x0005 }, + { 377, 0x0000 }, { 377, 0x0002 }, { 378, 0x0000 }, { 378, 0x0000 }, + { 378, 0x0000 }, { 378, 0x0000 }, { 378, 0x0000 }, { 378, 0x0000 }, + { 378, 0x0000 }, { 378, 0x0000 }, { 378, 0x0000 }, { 378, 0x0000 }, + /* 0x6300 */ + { 378, 0x0000 }, { 378, 0x0000 }, { 378, 0x0000 }, { 378, 0x4000 }, + { 379, 0x0000 }, { 379, 0x0000 }, { 379, 0x4900 }, { 382, 0x0004 }, + { 383, 0x0018 }, { 385, 0x0000 }, { 385, 0x0000 }, { 385, 0x0000 }, + { 385, 0x0001 }, { 386, 0x0400 }, { 387, 0x4000 }, { 388, 0x0000 }, + /* 0x6400 */ + { 388, 0x2000 }, { 389, 0x0080 }, { 390, 0x0000 }, { 390, 0x0040 }, + { 391, 0x0000 }, { 391, 0x9002 }, { 394, 0x8000 }, { 395, 0x0848 }, + { 398, 0x0100 }, { 399, 0x8008 }, { 401, 0x0828 }, { 404, 0xc80c }, + { 409, 0x0c92 }, { 414, 0x0410 }, { 416, 0x9001 }, { 419, 0x5c97 }, + /* 0x6500 */ + { 428, 0x8050 }, { 431, 0x2a50 }, { 436, 0x141c }, { 441, 0x0000 }, + { 441, 0x0000 }, { 441, 0x0080 }, { 442, 0x0000 }, { 442, 0x0120 }, + { 444, 0x000c }, { 446, 0x00a0 }, { 448, 0x1000 }, { 449, 0x0080 }, + { 450, 0x0000 }, { 450, 0x0000 }, { 450, 0x0000 }, { 450, 0x0000 }, + /* 0x6600 */ + { 450, 0x0000 }, { 450, 0x0000 }, { 450, 0x0000 }, { 450, 0x0000 }, + { 450, 0x0004 }, { 451, 0x2000 }, { 452, 0x0000 }, { 452, 0x0000 }, + { 452, 0x0300 }, { 454, 0x0000 }, { 454, 0x0804 }, { 456, 0x0000 }, + { 456, 0x02d0 }, { 460, 0x0040 }, { 461, 0x1001 }, { 463, 0x0100 }, + /* 0x6700 */ + { 464, 0x0008 }, { 465, 0x0000 }, { 465, 0x8080 }, { 467, 0x0010 }, + { 468, 0x0000 }, { 468, 0x0000 }, { 468, 0x0000 }, { 468, 0x4002 }, + { 470, 0x0000 }, { 470, 0x0000 }, { 470, 0x0000 }, { 470, 0x0000 }, + { 470, 0x0000 }, { 470, 0x0000 }, { 470, 0x0000 }, { 470, 0x0000 }, + /* 0x6800 */ + { 470, 0x0000 }, { 470, 0x0000 }, { 470, 0x0000 }, { 470, 0x0000 }, + { 470, 0x0000 }, { 470, 0x0000 }, { 470, 0x0000 }, { 470, 0x0000 }, + { 470, 0x0000 }, { 470, 0xa100 }, { 473, 0x0000 }, { 473, 0x0000 }, + { 473, 0x0000 }, { 473, 0x80c0 }, { 476, 0x0080 }, { 477, 0x0000 }, + /* 0x6900 */ + { 477, 0x8000 }, { 478, 0x0000 }, { 478, 0x0000 }, { 478, 0x0000 }, + { 478, 0x0400 }, { 479, 0x0008 }, { 480, 0x2100 }, { 482, 0x0020 }, + { 483, 0x0000 }, { 483, 0x0000 }, { 483, 0x4400 }, { 485, 0x8000 }, + { 486, 0x2800 }, { 488, 0x0000 }, { 488, 0x0080 }, { 489, 0x0008 }, + /* 0x6a00 */ + { 490, 0x0026 }, { 493, 0x4208 }, { 496, 0x0008 }, { 497, 0x0700 }, + { 500, 0x0900 }, { 502, 0x8000 }, { 503, 0x0004 }, { 504, 0x0000 }, + { 504, 0x0200 }, { 505, 0x1010 }, { 507, 0x800c }, { 510, 0x0908 }, + { 513, 0x0008 }, { 514, 0xec08 }, { 520, 0x1580 }, { 524, 0x0908 }, + /* 0x6b00 */ + { 527, 0x8410 }, { 530, 0x4044 }, { 533, 0x0000 }, { 533, 0x2000 }, + { 534, 0x0000 }, { 534, 0x8001 }, { 536, 0x0002 }, { 537, 0x0184 }, + { 540, 0x0000 }, { 540, 0x4100 }, { 542, 0xc810 }, { 546, 0x0c04 }, + { 549, 0x0040 }, { 550, 0x0000 }, { 550, 0x0000 }, { 550, 0x8000 }, + /* 0x6c00 */ + { 551, 0x1100 }, { 553, 0x0000 }, { 553, 0x1808 }, { 556, 0x0000 }, + { 556, 0x0000 }, { 556, 0x0000 }, { 556, 0x0000 }, { 556, 0x0000 }, + { 556, 0x0000 }, { 556, 0x0000 }, { 556, 0x0000 }, { 556, 0x0000 }, + { 556, 0x0000 }, { 556, 0x0000 }, { 556, 0x0000 }, { 556, 0x0000 }, + /* 0x6d00 */ + { 556, 0x0000 }, { 556, 0x0000 }, { 556, 0x0000 }, { 556, 0x0000 }, + { 556, 0x0000 }, { 556, 0x0000 }, { 556, 0x0000 }, { 556, 0x0200 }, + { 557, 0x0084 }, { 559, 0x0000 }, { 559, 0x0000 }, { 559, 0x0000 }, + { 559, 0x0001 }, { 560, 0x0000 }, { 560, 0x0400 }, { 561, 0x0460 }, + /* 0x6e00 */ + { 564, 0x0000 }, { 564, 0x0000 }, { 564, 0x1040 }, { 566, 0x4000 }, + { 567, 0x0000 }, { 567, 0x4000 }, { 568, 0x8000 }, { 569, 0x0000 }, + { 569, 0x0000 }, { 569, 0x2040 }, { 571, 0x0000 }, { 571, 0x0000 }, + { 571, 0x5030 }, { 575, 0x0000 }, { 575, 0x9000 }, { 577, 0x8184 }, + /* 0x6f00 */ + { 581, 0x0002 }, { 582, 0x0400 }, { 583, 0x100c }, { 586, 0x8104 }, + { 589, 0x0002 }, { 590, 0x0212 }, { 593, 0x8010 }, { 595, 0x8081 }, + { 598, 0x00c1 }, { 601, 0x0080 }, { 602, 0x4211 }, { 606, 0x0002 }, + { 607, 0x000a }, { 609, 0x8920 }, { 613, 0x0810 }, { 615, 0x5403 }, + /* 0x7000 */ + { 620, 0x8a60 }, { 625, 0xa120 }, { 629, 0x0181 }, { 632, 0x4005 }, + { 635, 0x0018 }, { 637, 0x2122 }, { 641, 0x0098 }, { 644, 0x0000 }, + { 644, 0x0000 }, { 644, 0x0000 }, { 644, 0x0000 }, { 644, 0x0000 }, + { 644, 0x8000 }, { 645, 0x0000 }, { 645, 0x0000 }, { 645, 0x0010 }, + /* 0x7100 */ + { 646, 0x0000 }, { 646, 0x0000 }, { 646, 0x0002 }, { 647, 0x0000 }, + { 647, 0x0200 }, { 648, 0x0004 }, { 649, 0x1204 }, { 652, 0x0000 }, + { 652, 0x0000 }, { 652, 0x0084 }, { 654, 0x0000 }, { 654, 0x4002 }, + { 656, 0x0102 }, { 658, 0x9204 }, { 662, 0x2040 }, { 664, 0x5010 }, + /* 0x7200 */ + { 667, 0x2000 }, { 668, 0x0801 }, { 670, 0x0000 }, { 670, 0x4404 }, + { 673, 0x0000 }, { 673, 0x0100 }, { 674, 0x0000 }, { 674, 0x2000 }, + { 675, 0x0000 }, { 675, 0x0040 }, { 676, 0x0084 }, { 678, 0x0000 }, + { 678, 0x0001 }, { 679, 0x0000 }, { 679, 0x0000 }, { 679, 0x2200 }, + /* 0x7300 */ + { 681, 0x0000 }, { 681, 0x0000 }, { 681, 0x0000 }, { 681, 0x0840 }, + { 683, 0x0032 }, { 686, 0x0000 }, { 686, 0x0d00 }, { 689, 0x1da5 }, + { 697, 0x0001 }, { 698, 0x0000 }, { 698, 0x0000 }, { 698, 0x0000 }, + { 698, 0x0000 }, { 698, 0x0000 }, { 698, 0x0000 }, { 698, 0x4000 }, + /* 0x7400 */ + { 699, 0x0000 }, { 699, 0x0000 }, { 699, 0x0000 }, { 699, 0x8000 }, + { 700, 0x0800 }, { 701, 0x0000 }, { 701, 0x0608 }, { 704, 0x0000 }, + { 704, 0x0200 }, { 705, 0x0000 }, { 705, 0x0048 }, { 707, 0x2001 }, + { 709, 0x8400 }, { 711, 0x0410 }, { 713, 0x0000 }, { 713, 0x0000 }, + /* 0x7500 */ + { 713, 0x1000 }, { 714, 0x0000 }, { 714, 0x0008 }, { 715, 0x0000 }, + { 715, 0x0000 }, { 715, 0x2000 }, { 716, 0x0804 }, { 718, 0x0040 }, + { 719, 0x0080 }, { 720, 0x0000 }, { 720, 0x0000 }, { 720, 0x0000 }, + { 720, 0x0080 }, { 721, 0x0200 }, { 722, 0x0000 }, { 722, 0x0000 }, + /* 0x7600 */ + { 722, 0x2804 }, { 725, 0x4000 }, { 726, 0x0082 }, { 728, 0x0800 }, + { 729, 0x02c4 }, { 733, 0x8100 }, { 735, 0x72b4 }, { 743, 0x1007 }, + { 747, 0x0000 }, { 747, 0x0400 }, { 748, 0x0000 }, { 748, 0x0500 }, + { 750, 0x0000 }, { 750, 0x4000 }, { 751, 0x009a }, { 755, 0x0000 }, + /* 0x7700 */ + { 755, 0x0000 }, { 755, 0x0000 }, { 755, 0x0000 }, { 755, 0x0000 }, + { 755, 0x8000 }, { 756, 0x4000 }, { 757, 0x0000 }, { 757, 0x0000 }, + { 757, 0x0000 }, { 757, 0x4100 }, { 759, 0x2000 }, { 760, 0x1000 }, + { 761, 0x0080 }, { 762, 0x0400 }, { 763, 0x8000 }, { 764, 0x0000 }, + /* 0x7800 */ + { 764, 0x0000 }, { 764, 0x0000 }, { 764, 0x0000 }, { 764, 0x0000 }, + { 764, 0x0008 }, { 765, 0x0000 }, { 765, 0xc110 }, { 769, 0x0000 }, + { 769, 0x0000 }, { 769, 0x0000 }, { 769, 0x2200 }, { 771, 0x1500 }, + { 774, 0x0000 }, { 774, 0x0400 }, { 775, 0x8088 }, { 778, 0x2000 }, + /* 0x7900 */ + { 779, 0x4000 }, { 780, 0x0200 }, { 781, 0x1c40 }, { 785, 0x0002 }, + { 786, 0x0000 }, { 786, 0x0000 }, { 786, 0x0000 }, { 786, 0x0000 }, + { 786, 0x6000 }, { 788, 0x0000 }, { 788, 0x4440 }, { 791, 0x0003 }, + { 793, 0x2000 }, { 794, 0x0000 }, { 794, 0x0000 }, { 794, 0x0000 }, + /* 0x7a00 */ + { 794, 0x0000 }, { 794, 0x0000 }, { 794, 0x4000 }, { 795, 0x0002 }, + { 796, 0x7001 }, { 800, 0x0000 }, { 800, 0x0a06 }, { 804, 0x0000 }, + { 804, 0x0000 }, { 804, 0x0000 }, { 804, 0x4600 }, { 807, 0x0440 }, + { 809, 0x05b0 }, { 814, 0x0000 }, { 814, 0x0400 }, { 815, 0x0040 }, + /* 0x7b00 */ + { 816, 0x0000 }, { 816, 0x0000 }, { 816, 0x0000 }, { 816, 0x0000 }, + { 816, 0x0040 }, { 817, 0x0002 }, { 818, 0x0080 }, { 819, 0x0000 }, + { 819, 0x0800 }, { 820, 0x0000 }, { 820, 0x0000 }, { 820, 0x0000 }, + { 820, 0x0a11 }, { 824, 0x0000 }, { 824, 0x0210 }, { 826, 0x0008 }, + /* 0x7c00 */ + { 827, 0x2001 }, { 829, 0x4000 }, { 830, 0x080a }, { 833, 0x6000 }, + { 835, 0x1008 }, { 837, 0x9000 }, { 839, 0x5611 }, { 845, 0x0004 }, + { 846, 0x0000 }, { 846, 0x0000 }, { 846, 0x0000 }, { 846, 0x0000 }, + { 846, 0x0000 }, { 846, 0x6000 }, { 848, 0x0080 }, { 849, 0x4255 }, + /* 0x7d00 */ + { 855, 0x2bf5 }, { 865, 0x1eb9 }, { 874, 0x0002 }, { 875, 0x960f }, + { 883, 0x4055 }, { 888, 0x6001 }, { 891, 0x0146 }, { 895, 0x024e }, + { 900, 0x834a }, { 906, 0x5008 }, { 909, 0x380c }, { 914, 0xef1f }, + { 926, 0x0c90 }, { 930, 0x6396 }, { 938, 0x934b }, { 946, 0x0a56 }, + /* 0x7e00 */ + { 952, 0x0f00 }, { 956, 0xe803 }, { 962, 0x6888 }, { 967, 0x62f6 }, + { 976, 0x0060 }, { 978, 0x4434 }, { 983, 0xee04 }, { 990, 0x7209 }, + { 996, 0xb500 }, { 1001, 0x1158 }, { 1006, 0x0000 }, { 1006, 0x0000 }, + { 1006, 0x0000 }, { 1006, 0x0000 }, { 1006, 0x0000 }, { 1006, 0x0000 }, + /* 0x7f00 */ + { 1006, 0x0000 }, { 1006, 0x0000 }, { 1006, 0x0000 }, { 1006, 0x0000 }, + { 1006, 0x5000 }, { 1008, 0x0000 }, { 1008, 0x0000 }, { 1008, 0x0081 }, + { 1010, 0x0160 }, { 1013, 0x0000 }, { 1013, 0x0220 }, { 1015, 0x0000 }, + { 1015, 0x0000 }, { 1015, 0x0004 }, { 1016, 0x0000 }, { 1016, 0x0200 }, + /* 0x8000 */ + { 1017, 0x0000 }, { 1017, 0x0000 }, { 1017, 0x5000 }, { 1019, 0x0000 }, + { 1019, 0x0000 }, { 1019, 0x4040 }, { 1021, 0x8000 }, { 1022, 0x62ed }, + { 1031, 0x0020 }, { 1032, 0x0000 }, { 1032, 0x0000 }, { 1032, 0x0000 }, + { 1032, 0x0000 }, { 1032, 0x0000 }, { 1032, 0x0000 }, { 1032, 0x0000 }, + /* 0x8100 */ + { 1032, 0x0020 }, { 1033, 0x0800 }, { 1034, 0x0000 }, { 1034, 0x0200 }, + { 1035, 0x4400 }, { 1037, 0x0040 }, { 1038, 0x0842 }, { 1041, 0x0100 }, + { 1042, 0x0000 }, { 1042, 0x0400 }, { 1043, 0x0201 }, { 1045, 0xe000 }, + { 1048, 0xa200 }, { 1051, 0x8500 }, { 1054, 0x0101 }, { 1056, 0x0400 }, + /* 0x8200 */ + { 1057, 0x2780 }, { 1062, 0x0000 }, { 1062, 0x0000 }, { 1062, 0x0000 }, + { 1062, 0x0000 }, { 1062, 0x0200 }, { 1063, 0x0850 }, { 1066, 0x0082 }, + { 1068, 0x0000 }, { 1068, 0x0000 }, { 1068, 0x0000 }, { 1068, 0x0800 }, + { 1069, 0x0000 }, { 1069, 0x0000 }, { 1069, 0x0080 }, { 1070, 0x0200 }, + /* 0x8300 */ + { 1071, 0x0008 }, { 1072, 0x0000 }, { 1072, 0x0000 }, { 1072, 0x0000 }, + { 1072, 0x0000 }, { 1072, 0x0001 }, { 1073, 0x0000 }, { 1073, 0x0000 }, + { 1073, 0x0400 }, { 1074, 0x0040 }, { 1075, 0x0084 }, { 1077, 0x0000 }, + { 1077, 0x0000 }, { 1077, 0x0000 }, { 1077, 0x8000 }, { 1078, 0x0000 }, + /* 0x8400 */ + { 1078, 0x0480 }, { 1080, 0x0000 }, { 1080, 0x1000 }, { 1081, 0x0020 }, + { 1082, 0x0200 }, { 1083, 0x0004 }, { 1084, 0x8050 }, { 1087, 0x0080 }, + { 1088, 0x0000 }, { 1088, 0x0018 }, { 1090, 0x0000 }, { 1090, 0x1000 }, + { 1091, 0x0801 }, { 1093, 0x0000 }, { 1093, 0xc000 }, { 1095, 0x2000 }, + /* 0x8500 */ + { 1096, 0x0000 }, { 1096, 0x4010 }, { 1098, 0x2048 }, { 1101, 0x0000 }, + { 1101, 0x4042 }, { 1104, 0x012c }, { 1108, 0x2604 }, { 1112, 0x0080 }, + { 1113, 0x1500 }, { 1116, 0x8012 }, { 1119, 0x0240 }, { 1121, 0x0400 }, + { 1122, 0x6000 }, { 1124, 0x2000 }, { 1125, 0x0420 }, { 1127, 0x0650 }, + /* 0x8600 */ + { 1131, 0x08d0 }, { 1135, 0x4400 }, { 1137, 0x2004 }, { 1139, 0x8400 }, + { 1141, 0x0000 }, { 1141, 0x9020 }, { 1144, 0x0080 }, { 1145, 0x0000 }, + { 1145, 0x0000 }, { 1145, 0x0000 }, { 1145, 0x0000 }, { 1145, 0x0000 }, + { 1145, 0x0000 }, { 1145, 0x0000 }, { 1145, 0x0000 }, { 1145, 0x0400 }, + /* 0x8700 */ + { 1146, 0x0040 }, { 1147, 0x0000 }, { 1147, 0x0002 }, { 1148, 0x0000 }, + { 1148, 0x0000 }, { 1148, 0x0020 }, { 1149, 0x0040 }, { 1150, 0x0100 }, + { 1151, 0x0010 }, { 1152, 0x4000 }, { 1153, 0x0004 }, { 1154, 0x0800 }, + { 1155, 0x4110 }, { 1158, 0x0000 }, { 1158, 0x9008 }, { 1161, 0x0844 }, + /* 0x8800 */ + { 1164, 0x0060 }, { 1166, 0x8003 }, { 1169, 0x0008 }, { 1170, 0x0842 }, + { 1173, 0x0440 }, { 1175, 0x2808 }, { 1178, 0x0000 }, { 1178, 0x0200 }, + { 1179, 0x0000 }, { 1179, 0x0000 }, { 1179, 0x0000 }, { 1179, 0x0000 }, + { 1179, 0x8400 }, { 1181, 0x3000 }, { 1183, 0x0000 }, { 1183, 0x2000 }, + /* 0x8900 */ + { 1184, 0x0080 }, { 1185, 0x0000 }, { 1185, 0x0000 }, { 1185, 0x090c }, + { 1189, 0x0080 }, { 1190, 0x2040 }, { 1192, 0x9411 }, { 1197, 0x0004 }, + { 1198, 0x8800 }, { 1200, 0x0148 }, { 1203, 0x9442 }, { 1208, 0xa484 }, + { 1213, 0x0001 }, { 1214, 0x0000 }, { 1214, 0x0000 }, { 1214, 0x0150 }, + /* 0x8a00 */ + { 1217, 0x550e }, { 1224, 0xa969 }, { 1232, 0x2428 }, { 1236, 0x0452 }, + { 1240, 0x4042 }, { 1243, 0x4935 }, { 1250, 0x7a4e }, { 1259, 0x902f }, + { 1266, 0x20f0 }, { 1271, 0x4526 }, { 1277, 0x117b }, { 1285, 0x9245 }, + { 1291, 0xaa94 }, { 1298, 0x58c6 }, { 1305, 0x68d4 }, { 1312, 0x55ca }, + /* 0x8b00 */ + { 1320, 0x4437 }, { 1327, 0x2ed1 }, { 1335, 0x3902 }, { 1340, 0x4208 }, + { 1343, 0xc200 }, { 1346, 0x1740 }, { 1351, 0x8800 }, { 1353, 0x2091 }, + { 1357, 0x4401 }, { 1360, 0x506c }, { 1366, 0x0000 }, { 1366, 0x0000 }, + { 1366, 0x0000 }, { 1366, 0x0000 }, { 1366, 0x0000 }, { 1366, 0x0000 }, + /* 0x8c00 */ + { 1366, 0x0000 }, { 1366, 0x0000 }, { 1366, 0x0000 }, { 1366, 0x0000 }, + { 1366, 0x0100 }, { 1367, 0x0001 }, { 1368, 0x0000 }, { 1368, 0x0000 }, + { 1368, 0x0000 }, { 1368, 0x6000 }, { 1370, 0x9f87 }, { 1380, 0xbddd }, + { 1392, 0x05bf }, { 1401, 0x542e }, { 1408, 0x3cdf }, { 1419, 0x7c10 }, + /* 0x8d00 */ + { 1425, 0xad30 }, { 1432, 0x1841 }, { 1436, 0x0000 }, { 1436, 0x0000 }, + { 1436, 0x0000 }, { 1436, 0x0000 }, { 1436, 0x0000 }, { 1436, 0x0000 }, + { 1436, 0x0000 }, { 1436, 0x0220 }, { 1438, 0x0100 }, { 1439, 0x0004 }, + { 1440, 0x0000 }, { 1440, 0x0000 }, { 1440, 0x0000 }, { 1440, 0x0000 }, + /* 0x8e00 */ + { 1440, 0x0000 }, { 1440, 0x0001 }, { 1441, 0x0000 }, { 1441, 0x0010 }, + { 1442, 0x1000 }, { 1443, 0x0020 }, { 1444, 0x0008 }, { 1445, 0x0400 }, + { 1446, 0x2e00 }, { 1450, 0x040e }, { 1454, 0x0462 }, { 1458, 0x0000 }, + { 1458, 0x3c01 }, { 1463, 0x8814 }, { 1467, 0x0810 }, { 1469, 0x5f04 }, + /* 0x8f00 */ + { 1476, 0x06a8 }, { 1481, 0xf834 }, { 1489, 0x8660 }, { 1494, 0xc908 }, + { 1499, 0x6274 }, { 1506, 0x8010 }, { 1508, 0x0016 }, { 1511, 0x0000 }, + { 1511, 0x0000 }, { 1511, 0x0000 }, { 1511, 0xe040 }, { 1515, 0x0004 }, + { 1516, 0x0000 }, { 1516, 0x0000 }, { 1516, 0x0000 }, { 1516, 0x0010 }, + /* 0x9000 */ + { 1517, 0x0000 }, { 1517, 0x0220 }, { 1519, 0x0008 }, { 1520, 0x0004 }, + { 1521, 0x4800 }, { 1523, 0x5030 }, { 1527, 0x0201 }, { 1529, 0x1584 }, + { 1534, 0x8492 }, { 1539, 0x0001 }, { 1540, 0x0000 }, { 1540, 0x0000 }, + { 1540, 0x0002 }, { 1541, 0x8000 }, { 1542, 0x0000 }, { 1542, 0x0020 }, + /* 0x9100 */ + { 1543, 0x0240 }, { 1545, 0x0054 }, { 1548, 0x2080 }, { 1550, 0x0455 }, + { 1555, 0x0100 }, { 1556, 0x0000 }, { 1556, 0x0000 }, { 1556, 0x0000 }, + { 1556, 0x0000 }, { 1556, 0x1040 }, { 1558, 0x1800 }, { 1560, 0x0000 }, + { 1560, 0x182b }, { 1566, 0x23bc }, { 1574, 0x0298 }, { 1578, 0x06a0 }, + /* 0x9200 */ + { 1582, 0x6313 }, { 1589, 0x4033 }, { 1594, 0x40e8 }, { 1599, 0xe799 }, + { 1609, 0x2321 }, { 1614, 0x4ca2 }, { 1620, 0x3044 }, { 1624, 0x8d00 }, + { 1628, 0x0029 }, { 1631, 0x154a }, { 1637, 0x1f69 }, { 1646, 0x1a82 }, + { 1651, 0x90aa }, { 1657, 0xa004 }, { 1660, 0xe578 }, { 1669, 0x1143 }, + /* 0x9300 */ + { 1674, 0x01c2 }, { 1678, 0x8f25 }, { 1686, 0xc945 }, { 1693, 0x014c }, + { 1697, 0x28cb }, { 1704, 0x0910 }, { 1707, 0x1230 }, { 1711, 0x4461 }, + { 1716, 0x0494 }, { 1720, 0x0140 }, { 1722, 0x56cc }, { 1730, 0x8129 }, + { 1735, 0x3188 }, { 1740, 0xf182 }, { 1747, 0x0116 }, { 1751, 0x02a0 }, + /* 0x9400 */ + { 1754, 0x0808 }, { 1756, 0x231d }, { 1763, 0x41c1 }, { 1768, 0x852c }, + { 1774, 0x1410 }, { 1777, 0x0014 }, { 1779, 0x2029 }, { 1783, 0xf285 }, + { 1791, 0x0000 }, { 1791, 0x0000 }, { 1791, 0x0000 }, { 1791, 0x0000 }, + { 1791, 0x0000 }, { 1791, 0x0000 }, { 1791, 0x0000 }, { 1791, 0x0000 }, + /* 0x9500 */ + { 1791, 0x0000 }, { 1791, 0x0000 }, { 1791, 0x0000 }, { 1791, 0x0000 }, + { 1791, 0x0000 }, { 1791, 0x0000 }, { 1791, 0x0000 }, { 1791, 0x0080 }, + { 1792, 0xda4d }, { 1801, 0x011a }, { 1805, 0x3b3a }, { 1814, 0xfa44 }, + { 1822, 0x1d48 }, { 1828, 0x5071 }, { 1834, 0x0026 }, { 1837, 0x0000 }, + /* 0x9600 */ + { 1837, 0x0000 }, { 1837, 0x0000 }, { 1837, 0x0000 }, { 1837, 0x0000 }, + { 1837, 0x0000 }, { 1837, 0x2100 }, { 1839, 0x0008 }, { 1840, 0x2109 }, + { 1844, 0x4400 }, { 1846, 0x0820 }, { 1848, 0x0500 }, { 1850, 0x0912 }, + { 1854, 0x0000 }, { 1854, 0x1a40 }, { 1858, 0x000c }, { 1860, 0x0804 }, + /* 0x9700 */ + { 1862, 0x0000 }, { 1862, 0x0000 }, { 1862, 0x0080 }, { 1863, 0x2000 }, + { 1864, 0x0114 }, { 1867, 0x0400 }, { 1868, 0x0100 }, { 1869, 0x0000 }, + { 1869, 0x8000 }, { 1870, 0x0000 }, { 1870, 0x0040 }, { 1871, 0x2000 }, + { 1872, 0x1a48 }, { 1877, 0x5208 }, { 1881, 0x0000 }, { 1881, 0x8000 }, + /* 0x9800 */ + { 1882, 0xd5ee }, { 1893, 0x118f }, { 1900, 0x2052 }, { 1904, 0x2981 }, + { 1909, 0x7040 }, { 1913, 0x4b18 }, { 1919, 0x98a4 }, { 1925, 0x001b }, + { 1929, 0x0000 }, { 1929, 0x0000 }, { 1929, 0xc100 }, { 1932, 0x104a }, + { 1936, 0x0150 }, { 1939, 0x0800 }, { 1940, 0xae05 }, { 1947, 0x7014 }, + /* 0x9900 */ + { 1952, 0x1628 }, { 1957, 0x490e }, { 1963, 0x0102 }, { 1965, 0xd088 }, + { 1970, 0x1f28 }, { 1977, 0x5086 }, { 1982, 0x0004 }, { 1983, 0x0000 }, + { 1983, 0x0000 }, { 1983, 0x0000 }, { 1983, 0x7000 }, { 1986, 0x001a }, + { 1989, 0x0002 }, { 1990, 0xab37 }, { 2000, 0x2006 }, { 2003, 0x8002 }, + /* 0x9a00 */ + { 2005, 0xe022 }, { 2010, 0x0240 }, { 2012, 0x6800 }, { 2015, 0x41c1 }, + { 2020, 0xa43f }, { 2029, 0x8ca0 }, { 2034, 0x0434 }, { 2038, 0x0000 }, + { 2038, 0x0000 }, { 2038, 0x0000 }, { 2038, 0x8000 }, { 2039, 0x0000 }, + { 2039, 0x8000 }, { 2040, 0x0074 }, { 2044, 0x4000 }, { 2045, 0x0000 }, + /* 0x9b00 */ + { 2045, 0x2040 }, { 2047, 0x0400 }, { 2048, 0x42a4 }, { 2053, 0x0002 }, + { 2054, 0x4000 }, { 2055, 0x0500 }, { 2057, 0x8000 }, { 2058, 0x0090 }, + { 2060, 0x400a }, { 2063, 0x6407 }, { 2069, 0x6c00 }, { 2073, 0x0000 }, + { 2073, 0x0683 }, { 2078, 0x2850 }, { 2082, 0x0d96 }, { 2089, 0xa011 }, + /* 0x9c00 */ + { 2093, 0x2300 }, { 2096, 0x000d }, { 2099, 0x2329 }, { 2105, 0x4aae }, + { 2113, 0x0320 }, { 2116, 0xa1d4 }, { 2123, 0x2080 }, { 2125, 0x0500 }, + { 2127, 0x0000 }, { 2127, 0x0000 }, { 2127, 0x0000 }, { 2127, 0x0000 }, + { 2127, 0x0000 }, { 2127, 0x0000 }, { 2127, 0x1220 }, { 2130, 0x0058 }, + /* 0x9d00 */ + { 2133, 0x02c0 }, { 2136, 0xa820 }, { 2140, 0x8148 }, { 2144, 0x8801 }, + { 2147, 0x0004 }, { 2148, 0x300e }, { 2153, 0x9403 }, { 2158, 0x0004 }, + { 2159, 0x0280 }, { 2161, 0x0508 }, { 2164, 0x8220 }, { 2167, 0x1810 }, + { 2170, 0x0015 }, { 2173, 0x0688 }, { 2177, 0x8060 }, { 2180, 0x070c }, + /* 0x9e00 */ + { 2185, 0x1000 }, { 2186, 0x6c20 }, { 2191, 0x0000 }, { 2191, 0x0000 }, + { 2191, 0x0000 }, { 2191, 0x0000 }, { 2191, 0x0000 }, { 2191, 0x3620 }, + { 2196, 0x0000 }, { 2196, 0x0080 }, { 2197, 0x8220 }, { 2200, 0x2020 }, + { 2202, 0x1000 }, { 2203, 0x4000 }, { 2204, 0x0100 }, { 2205, 0xa094 }, + /* 0x9f00 */ + { 2210, 0x0200 }, { 2211, 0x0020 }, { 2212, 0x0000 }, { 2212, 0x0000 }, + { 2212, 0x8c00 }, { 2215, 0x9214 }, { 2220, 0x144b }, { 2226, 0x0084 }, + { 2228, 0x2000 }, { 2229, 0x1031 }, +}; +static const Summary16 gb12345ext_uni2indx_pagefe[5] = { + /* 0xfe00 */ + { 2233, 0x0000 }, { 2233, 0x0000 }, { 2233, 0x0000 }, { 2233, 0xfffa }, + { 2247, 0x001f }, +}; + +static int +gb12345ext_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (n >= 2) { + const Summary16 *summary = NULL; + if (wc >= 0x0100 && wc < 0x0270) + summary = &gb12345ext_uni2indx_page01[(wc>>4)-0x010]; + else if (wc >= 0x1e00 && wc < 0x1e40) + summary = &gb12345ext_uni2indx_page1e[(wc>>4)-0x1e0]; + else if (wc >= 0x2200 && wc < 0x2230) + summary = &gb12345ext_uni2indx_page22[(wc>>4)-0x220]; + else if (wc >= 0x4e00 && wc < 0x9fa0) + summary = &gb12345ext_uni2indx_page4e[(wc>>4)-0x4e0]; + else if (wc >= 0xfe00 && wc < 0xfe50) + summary = &gb12345ext_uni2indx_pagefe[(wc>>4)-0xfe0]; + if (summary) { + unsigned short used = summary->used; + unsigned int i = wc & 0x0f; + if (used & ((unsigned short) 1 << i)) { + unsigned short c; + /* Keep in `used' only the bits 0..i-1. */ + used &= ((unsigned short) 1 << i) - 1; + /* Add `summary->indx' and the number of bits set in `used'. */ + used = (used & 0x5555) + ((used & 0xaaaa) >> 1); + used = (used & 0x3333) + ((used & 0xcccc) >> 2); + used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); + used = (used & 0x00ff) + (used >> 8); + c = gb12345ext_2charset[summary->indx + used]; + r[0] = (c >> 8); r[1] = (c & 0xff); + return 2; + } + } + return RET_ILUNI; + } + return RET_TOOSMALL; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/gb18030.h b/graf2d/win32gdk/gdk/src/iconv/gb18030.h new file mode 100644 index 00000000000..e9502e1bdd8 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/gb18030.h @@ -0,0 +1,382 @@ +/* + * Copyright (C) 1999-2001, 2005 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * GB18030 + */ + +/* + * GB18030, as specified in the GB18030 standard, is an extension of GBK. + * + * In what follows, page numbers refer to the GB18030 standard (second + * printing). + * + * + * It consists of the following parts: + * + * One-byte range: + * ASCII p. 2 0x{00..7F} + * + * Two-byte range: + * GBK part 1 p. 10..12 0x{A1..A9}{A1..FE} + * GBK part 2 p. 13..36 0x{B0..F7}{A1..FE} + * GBK part 3 p. 37..52 0x{81..A0}{40..7E,80..FE} + * GBK part 4 p. 53..81 0x{AA..FE}{40..7E,80..A0} + * GBK part 5 p. 82 0x{A8..A9}{40..7E,80..A0} + * UDA part 1 p. 83..84 0x{AA..AF}{A1..FE} U+E000..U+E233 + * UDA part 2 p. 85..87 0x{F8..FE}{A1..FE} U+E234..U+E4C5 + * UDA part 3 p. 88..90 0x{A1..A7}{40..7E,80..A0} U+E4C6..U+E765 + * + * Four-byte range: + * BMP rest p. 94..283 0x{81..84}{30..39}{81..FE}{30..39} + * rest of U+0080..U+FFFF + * Planes 1-16 p. 5 0x{90..FE}{30..39}{81..FE}{30..39} + * U+10000..U+10FFFF + * + * To GBK part 1 were added: + * 1. 0xA2E3, 0xA8BF. + * 2. Characters mapped to the Unicode PUA + * 0xA2AB..0xA2B0 U+E766..U+E76B + * 0xA2E4 U+E76D + * 0xA2EF..0xA2F0 U+E76E..U+E76F + * 0xA2FD..0xA2FE U+E770..U+E771 + * 0xA4F4..0xA4FE U+E772..U+E77C + * 0xA5F7..0xA5FE U+E77D..U+E784 + * 0xA6B9..0xA6C0 U+E785..U+E78C + * 0xA6D9..0xA6DF [glyphs here!!] U+E78D..U+E793 + * 0xA6EC..0xA6ED [glyphs here!!] U+E794..U+E795 + * 0xA6F3 [glyphs here!!] U+E796 + * 0xA6F6..0xA6FE U+E797..U+E79F + * 0xA7C2..0xA7D0 U+E7A0..U+E7AE + * 0xA7F2..0xA7FE U+E7AF..U+E7BB + * 0xA8BC [glyphs here!!] U+E7C7 + * 0xA8C1..0xA8C4 U+E7C9..U+E7CC + * 0xA8EA..0xA8FE U+E7CD..U+E7E1 + * 0xA9A1..0xA9A3 U+E7FE..U+E800 + * 0xA9F0..0xA9FE U+E801..U+E80F + * + * To GBK part 2 were added: + * 3. Characters mapped to the Unicode PUA + * 0xD7FA..0xD7FE U+E810..0xE814 + * + * To GBK part 3 nothing was added. + * + * To GBK part 4 were added: + * 4. 0xFE{50,54..58,5A..60,62..65,68..6B,6E..75,77..7D,80..8F,92..9F}. + * 5. Characters mapped to the Unicode PUA + * 0xFE51..0xFE53 [glyphs here!!] U+E816..U+E818 + * 0xFE59 [glyphs here!!] U+E81E + * 0xFE61 [glyphs here!!] U+E826 + * 0xFE66..0xFE67 [glyphs here!!] U+E82B..U+E82C + * 0xFE6C..0xFE6D [glyphs here!!] U+E831..U+E832 + * 0xFE76 [glyphs here!!] U+E83B + * 0xFE7E [glyphs here!!] U+E843 + * 0xFE90..0xFE91 [glyphs here!!] U+E854..U+E855 + * 0xFEA0 [glyphs here!!] U+E864 + * + * To GBK part 5 were added: + * 6. 0xA98A..0xA995. + * 7. Characters mapped to the Unicode PUA + * 0xA896..0xA8A0 U+E7BC..U+E7C6 + * 0xA958 U+E7E2 + * 0xA95B U+E7E3 + * 0xA95D..0xA95F U+E7E4..U+E7E6 + * 0xA997..0xA9A0 U+E7F4..U+E7FD + * + * UDA part 1 contains the user-defined characters, mapped to the Unicode PUA + * U+E000..U+E233 in ascending order. + * + * UDA part 2 contains the user-defined characters, mapped to the Unicode PUA + * U+E234..U+E4C5 in ascending order. + * + * UDA part 3 contains the user-defined characters, mapped to the Unicode PUA + * U+E4C6..U+E765 in ascending order. + * + * The four-byte range 0x{81..84}{30..39}{81..FE}{30..39} + * contains the rest of the Unicode BMP in ascending order. + * Start: 0x81308130 = 0x0080 + * End: 0x8431A439 = 0xFFFF + * + * The four-byte range 0x{90..E3}{30..39}{81..FE}{30..39} + * contains the remaining 16 Unicode planes in Unicode order. + * Start: 0x90308130 = 0x010000 + * End: 0xE3329A35 = 0x10FFFF + * + * + * Unassigned Unicode characters are mapped. For example, + * U+173F = 0x8134BF35 (p. 120) + * U+2EFF = 0x81398B31 (p. 148) + * U+FFFE = 0x8431A438 (p. 283) + * + * + * The Unicode PUA (U+E000..U+F8FF) is mapped as follows: + * p. 83..84 0x{AA..AF}{A1..FE} U+E000..U+E233 + * p. 85..87 0x{F8..FE}{A1..FE} U+E234..U+E4C5 + * p. 88..90 0x{A1..A7}{40..7E,80..A0} U+E4C6..U+E765 + * p. 10 0xA2AB..0xA2B0 U+E766..U+E76B + * p. 255 0x8336C739 U+E76C + * p. 10 0xA2E4 U+E76D + * p. 10 0xA2EF..0xA2F0 U+E76E..U+E76F + * p. 10 0xA2FD..0xA2FE U+E770..U+E771 + * p. 11 0xA4F4..0xA4FE U+E772..U+E77C + * p. 11 0xA5F7..0xA5FE U+E77D..U+E784 + * p. 11 0xA6B9..0xA6C0 U+E785..U+E78C + * p. 11 0xA6D9..0xA6DF [glyphs here!!] U+E78D..U+E793 + * p. 11 0xA6EC..0xA6ED [glyphs here!!] U+E794..U+E795 + * p. 11 0xA6F3 [glyphs here!!] U+E796 + * p. 11 0xA6F6..0xA6FE U+E797..U+E79F + * p. 12 0xA7C2..0xA7D0 U+E7A0..U+E7AE + * p. 12 0xA7F2..0xA7FE U+E7AF..U+E7BB + * p. 82 0xA896..0xA8A0 U+E7BC..U+E7C6 + * p. 12 0xA8BC [glyphs here!!] U+E7C7 + * p. 255 0x8336C830 U+E7C8 + * p. 12 0xA8C1..0xA8C4 U+E7C9..U+E7CC + * p. 12 0xA8EA..0xA8FE U+E7CD..U+E7E1 + * p. 82 0xA958 U+E7E2 + * p. 82 0xA95B U+E7E3 + * p. 82 0xA95D..0xA95F U+E7E4..U+E7E6 + * p. 255 0x8336C831..0x8336C933 U+E7E7..U+E7F3 + * p. 82 0xA997..0xA9A0 U+E7F4..U+E7FD + * p. 12 0xA9A1..0xA9A3 U+E7FE..U+E800 + * p. 12 0xA9F0..0xA9FE U+E801..U+E80F + * p. 26 0xD7FA..0xD7FE U+E810..0xE814 + * p. 255 0x8336C934 U+E815 + * p. 81 0xFE51..0xFE53 [glyphs here!!] U+E816..U+E818 + * p. 255 0x8336C935..0x8336C939 U+E819..U+E81D + * p. 81 0xFE59 [glyphs here!!] U+E81E + * p. 255 0x8336CA30..0x8336CA36 U+E81F..U+E825 + * p. 81 0xFE61 [glyphs here!!] U+E826 + * p. 255 0x8336CA37..0x8336CB30 U+E827..U+E82A + * p. 81 0xFE66..0xFE67 [glyphs here!!] U+E82B..U+E82C + * p. 255 0x8336CB31..0x8336CB34 U+E82D..U+E830 + * p. 81 0xFE6C..0xFE6D [glyphs here!!] U+E831..U+E832 + * p. 255 0x8336CB35..0x8336CC32 U+E833..U+E83A + * p. 81 0xFE76 [glyphs here!!] U+E83B + * p. 255 0x8336CC33..0x8336CC39 U+E83C..U+E842 + * p. 81 0xFE7E [glyphs here!!] U+E843 + * p. 255 0x8336CD30..0x8336CE35 U+E844..U+E853 + * p. 81 0xFE90..0xFE91 [glyphs here!!] U+E854..U+E855 + * p. 255 0x8336CE36..0x8336CF39 U+E856..U+E863 + * p. 81 0xFEA0 [glyphs here!!] U+E864 + * p. 255..276 0x8336D030..0x84308130 U+E865..U+F8FF + * + * + * The Unicode surrogate area (U+D800..U+DFFF) is not mapped. (p. 255) + * + */ + +#include "gb18030ext.h" +#include "gb18030uni.h" + +static int +gb18030_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + int ret; + + /* Code set 0 (ASCII) */ + if (*s < 0x80) + return ascii_mbtowc(conv,pwc,s,n); + + /* Code set 1 (GBK extended) */ + ret = gbk_mbtowc(conv,pwc,s,n); + if (ret != RET_ILSEQ) + return ret; + + ret = gb18030ext_mbtowc(conv,pwc,s,n); + if (ret != RET_ILSEQ) + return ret; + + /* Code set 2 (remainder of Unicode U+0000..U+FFFF), including + User-defined characters, two-byte part of range U+E766..U+E864 */ + ret = gb18030uni_mbtowc(conv,pwc,s,n); + if (ret != RET_ILSEQ) + return ret; + /* User-defined characters range U+E000..U+E765 */ + { + unsigned char c1 = s[0]; + if ((c1 >= 0xaa && c1 <= 0xaf) || (c1 >= 0xf8 && c1 <= 0xfe)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if (c2 >= 0xa1 && c2 <= 0xfe) { + *pwc = 0xe000 + 94 * (c1 >= 0xf8 ? c1 - 0xf2 : c1 - 0xaa) + (c2 - 0xa1); + return 2; + } + } else + return RET_TOOFEW(0); + } else if (c1 >= 0xa1 && c1 <= 0xa7) { + if (n >= 2) { + unsigned char c2 = s[1]; + if (c2 >= 0x40 && c2 <= 0xa1 && c2 != 0x7f) { + *pwc = 0xe4c6 + 96 * (c1 - 0xa1) + c2 - (c2 >= 0x80 ? 0x41 : 0x40); + return 2; + } + } else + return RET_TOOFEW(0); + } + } + + /* Code set 3 (Unicode U+10000..U+10FFFF) */ + { + unsigned char c1 = s[0]; + if (c1 >= 0x90 && c1 <= 0xe3) { + if (n >= 2) { + unsigned char c2 = s[1]; + if (c2 >= 0x30 && c2 <= 0x39) { + if (n >= 3) { + unsigned char c3 = s[2]; + if (c3 >= 0x81 && c3 <= 0xfe) { + if (n >= 4) { + unsigned char c4 = s[3]; + if (c4 >= 0x30 && c4 <= 0x39) { + unsigned int i = (((c1 - 0x90) * 10 + (c2 - 0x30)) * 126 + (c3 - 0x81)) * 10 + (c4 - 0x30); + if (i >= 0 && i < 0x100000) { + *pwc = (ucs4_t) (0x10000 + i); + return 4; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; + } +} + +static const unsigned short gb18030_pua2charset[32*3] = { +/* Unicode range GB18030 range */ + 0xe766, 0xe76b, 0xa2ab, /*.. 0xa2b0, */ + 0xe76d, 0xe76d, 0xa2e4, + 0xe76e, 0xe76f, 0xa2ef, /*.. 0xa2f0, */ + 0xe770, 0xe771, 0xa2fd, /*.. 0xa2fe, */ + 0xe772, 0xe77c, 0xa4f4, /*.. 0xa4fe, */ + 0xe77d, 0xe784, 0xa5f7, /*.. 0xa5fe, */ + 0xe785, 0xe78c, 0xa6b9, /*.. 0xa6c0, */ + 0xe78d, 0xe793, 0xa6d9, /*.. 0xa6df, */ + 0xe794, 0xe795, 0xa6ec, /*.. 0xa6ed, */ + 0xe796, 0xe796, 0xa6f3, + 0xe797, 0xe79f, 0xa6f6, /*.. 0xa6fe, */ + 0xe7a0, 0xe7ae, 0xa7c2, /*.. 0xa7d0, */ + 0xe7af, 0xe7bb, 0xa7f2, /*.. 0xa7fe, */ + 0xe7bc, 0xe7c6, 0xa896, /*.. 0xa8a0, */ + 0xe7c7, 0xe7c7, 0xa8bc, + 0xe7c9, 0xe7cc, 0xa8c1, /*.. 0xa8c4, */ + 0xe7cd, 0xe7e1, 0xa8ea, /*.. 0xa8fe, */ + 0xe7e2, 0xe7e2, 0xa958, + 0xe7e3, 0xe7e3, 0xa95b, + 0xe7e4, 0xe7e6, 0xa95d, /*.. 0xa95f, */ + 0xe7f4, 0xe800, 0xa997, /*.. 0xa9a3, */ + 0xe801, 0xe80f, 0xa9f0, /*.. 0xa9fe, */ + 0xe810, 0xe814, 0xd7fa, /*.. 0xd7fe, */ + 0xe816, 0xe818, 0xfe51, /*.. 0xfe53, */ + 0xe81e, 0xe81e, 0xfe59, + 0xe826, 0xe826, 0xfe61, + 0xe82b, 0xe82c, 0xfe66, /*.. 0xfe67, */ + 0xe831, 0xe832, 0xfe6c, /*.. 0xfe6d, */ + 0xe83b, 0xe83b, 0xfe76, + 0xe843, 0xe843, 0xfe7e, + 0xe854, 0xe855, 0xfe90, /*.. 0xfe91, */ + 0xe864, 0xe864, 0xfea0, +}; + +static int +gb18030_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + int ret; + + /* Code set 0 (ASCII) */ + ret = ascii_wctomb(conv,r,wc,n); + if (ret != RET_ILUNI) + return ret; + + /* Code set 1 (GBK extended) */ + ret = gbk_wctomb(conv,r,wc,n); + if (ret != RET_ILUNI) + return ret; + + ret = gb18030ext_wctomb(conv,r,wc,n); + if (ret != RET_ILUNI) + return ret; + + /* Code set 2 (remainder of Unicode U+0000..U+FFFF) */ + if (wc >= 0xe000 && wc <= 0xe864) { + if (n >= 2) { + if (wc < 0xe766) { + /* User-defined characters range U+E000..U+E765 */ + if (wc < 0xe4c6) { + unsigned int i = wc - 0xe000; + r[1] = (i % 94) + 0xa1; i = i / 94; + r[0] = (i < 6 ? i + 0xaa : i + 0xf2); + return 2; + } else { + unsigned int i = wc - 0xe4c6; + r[0] = (i / 96) + 0xa1; i = i % 96; + r[1] = i + (i >= 0x3f ? 0x41 : 0x40); + return 2; + } + } else { + /* User-defined characters, two-byte part of range U+E766..U+E864 */ + unsigned int k1 = 0; + unsigned int k2 = 32; + /* Invariant: We know that if wc occurs in Unicode interval in + gb18030_pua2charset, it does so at a k with k1 <= k < k2. */ + while (k1 < k2) { + unsigned int k = (k1 + k2) / 2; + if (wc < gb18030_pua2charset[k*3+0]) + k2 = k; + else if (wc > gb18030_pua2charset[k*3+1]) + k1 = k + 1; + else { + unsigned short c = + gb18030_pua2charset[k*3+2] + (wc - gb18030_pua2charset[k*3+0]); + r[0] = (c >> 8); + r[1] = (c & 0xff); + return 2; + } + } + } + } else + return RET_TOOSMALL; + } + ret = gb18030uni_wctomb(conv,r,wc,n); + if (ret != RET_ILUNI) + return ret; + + /* Code set 3 (Unicode U+10000..U+10FFFF) */ + if (n >= 4) { + if (wc >= 0x10000 && wc < 0x110000) { + unsigned int i = wc - 0x10000; + r[3] = (i % 10) + 0x30; i = i / 10; + r[2] = (i % 126) + 0x81; i = i / 126; + r[1] = (i % 10) + 0x30; i = i / 10; + r[0] = i + 0x90; + return 4; + } + return RET_ILUNI; + } + return RET_TOOSMALL; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/gb18030ext.h b/graf2d/win32gdk/gdk/src/iconv/gb18030ext.h new file mode 100644 index 00000000000..14b0e452ed0 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/gb18030ext.h @@ -0,0 +1,300 @@ +/* + * Copyright (C) 1999-2001, 2005 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * GB18030 two-byte extension + */ + +static const unsigned short gb18030ext_2uni_pagea9[13] = { + /* 0xa9 */ + 0x303e, 0x2ff0, 0x2ff1, 0x2ff2, 0x2ff3, 0x2ff4, 0x2ff5, 0x2ff6, + 0x2ff7, 0x2ff8, 0x2ff9, 0x2ffa, 0x2ffb, +}; +static const unsigned short gb18030ext_2uni_pagefe[96] = { + /* 0xfe */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x2e81, 0xe816, 0xe817, 0xe818, 0x2e84, 0x3473, 0x3447, 0x2e88, + 0x2e8b, 0xe81e, 0x359e, 0x361a, 0x360e, 0x2e8c, 0x2e97, 0x396e, + 0x3918, 0xe826, 0x39cf, 0x39df, 0x3a73, 0x39d0, 0xe82b, 0xe82c, + 0x3b4e, 0x3c6e, 0x3ce0, 0x2ea7, 0xe831, 0xe832, 0x2eaa, 0x4056, + 0x415f, 0x2eae, 0x4337, 0x2eb3, 0x2eb6, 0x2eb7, 0xe83b, 0x43b1, + 0x43ac, 0x2ebb, 0x43dd, 0x44d6, 0x4661, 0x464c, 0xe843, 0x4723, + 0x4729, 0x477c, 0x478d, 0x2eca, 0x4947, 0x497a, 0x497d, 0x4982, + 0x4983, 0x4985, 0x4986, 0x499f, 0x499b, 0x49b7, 0x49b6, 0xe854, + 0xe855, 0x4ca3, 0x4c9f, 0x4ca0, 0x4ca1, 0x4c77, 0x4ca2, 0x4d13, + 0x4d14, 0x4d15, 0x4d16, 0x4d17, 0x4d18, 0x4d19, 0x4dae, 0xe864, +}; + +static int +gb18030ext_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 == 0xa2) || (c1 >= 0xa4 && c1 <= 0xa9) || (c1 == 0xd7) || (c1 == 0xfe)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0x80 && c2 < 0xff)) { + unsigned int i = 190 * (c1 - 0x81) + (c2 - (c2 >= 0x80 ? 0x41 : 0x40)); + unsigned short wc = 0xfffd; + switch (c1) { + case 0xa2: + if (i >= 6376 && i <= 6381) /* 0xA2AB..0xA2B0 */ + wc = 0xe766 + (i - 6376); + else if (i == 6432) /* 0xA2E3 */ + wc = 0x20ac; + else if (i == 6433) /* 0xA2E4 */ + wc = 0xe76d; + else if (i >= 6444 && i <= 6445) /* 0xA2EF..0xA2F0 */ + wc = 0xe76e + (i - 6444); + else if (i >= 6458 && i <= 6459) /* 0xA2FD..0xA2FE */ + wc = 0xe770 + (i - 6458); + break; + case 0xa4: + if (i >= 6829 && i <= 6839) /* 0xA4F4..0xA4FE */ + wc = 0xe772 + (i - 6829); + break; + case 0xa5: + if (i >= 7022 && i <= 7029) /* 0xA5F7..0xA5FE */ + wc = 0xe77d + (i - 7022); + break; + case 0xa6: + if (i >= 7150 && i <= 7157) /* 0xA6B9..0xA6C0 */ + wc = 0xe785 + (i - 7150); + else if (i >= 7182 && i <= 7190) /* 0xA6D9..0xA6DF */ + wc = 0xe78d + (i - 7182); + else if (i >= 7201 && i <= 7202) /* 0xA6EC..0xA6ED */ + wc = 0xe794 + (i - 7201); + else if (i == 7208) /* 0xA6F3 */ + wc = 0xe796; + else if (i >= 7211 && i <= 7219) /* 0xA6F6..0xA6FE */ + wc = 0xe797 + (i - 7211); + break; + case 0xa7: + if (i >= 7349 && i <= 7363) /* 0xA7C2..0xA7D0 */ + wc = 0xe7a0 + (i - 7349); + else if (i >= 7397 && i <= 7409) /* 0xA7F2..0xA7FE */ + wc = 0xe7af + (i - 7397); + break; + case 0xa8: + if (i >= 7495 && i <= 7505) /* 0xA896..0xA8A0 */ + wc = 0xe7bc + (i - 7495); + else if (i == 7533) /* 0xA8BC */ + wc = 0xe7c7; + else if (i == 7536) /* 0xA8BF */ + wc = 0x01f9; + else if (i >= 7538 && i <= 7541) /* 0xA8C1..0xA8C4 */ + wc = 0xe7c9 + (i - 7538); + else if (i >= 7579 && i <= 7599) /* 0xA8EA..0xA8FE */ + wc = 0xe7cd + (i - 7579); + break; + case 0xa9: + if (i == 7624) /* 0xA958 */ + wc = 0xe7e2; + else if (i == 7627) /* 0xA95B */ + wc = 0xe7e3; + else if (i >= 7629 && i <= 7631) /* 0xA95D..0xA95F */ + wc = 0xe7e4 + (i - 7629); + else if (i >= 7672 && i < 7685) /* 0xA989..0xA995 */ + wc = gb18030ext_2uni_pagea9[i-7672]; + else if (i >= 7686 && i <= 7698) /* 0xA997..0xA9A3 */ + wc = 0xe7f4 + (i - 7686); + else if (i >= 7775 && i <= 7789) /* 0xA9F0..0xA9FE */ + wc = 0xe801 + (i - 7775); + break; + case 0xd7: + if (i >= 16525 && i <= 16529) /* 0xD7FA..0xD7FE */ + wc = 0xe810 + (i - 16525); + break; + case 0xfe: + if (i < 23846) + wc = gb18030ext_2uni_pagefe[i-23750]; + break; + default: + break; + } + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + +static const unsigned short gb18030ext_page2e[80] = { + 0x0000, 0xfe50, 0x0000, 0x0000, 0xfe54, 0x0000, 0x0000, 0x0000, /*0x80-0x87*/ + 0xfe57, 0x0000, 0x0000, 0xfe58, 0xfe5d, 0x0000, 0x0000, 0x0000, /*0x88-0x8f*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe5e, /*0x90-0x97*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x98-0x9f*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe6b, /*0xa0-0xa7*/ + 0x0000, 0x0000, 0xfe6e, 0x0000, 0x0000, 0x0000, 0xfe71, 0x0000, /*0xa8-0xaf*/ + 0x0000, 0x0000, 0x0000, 0xfe73, 0x0000, 0x0000, 0xfe74, 0xfe75, /*0xb0-0xb7*/ + 0x0000, 0x0000, 0x0000, 0xfe79, 0x0000, 0x0000, 0x0000, 0x0000, /*0xb8-0xbf*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xc0-0xc7*/ + 0x0000, 0x0000, 0xfe84, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xc8-0xcf*/ +}; +static const unsigned short gb18030ext_page2f[16] = { + 0xa98a, 0xa98b, 0xa98c, 0xa98d, 0xa98e, 0xa98f, 0xa990, 0xa991, /*0xf0-0xf7*/ + 0xa992, 0xa993, 0xa994, 0xa995, 0x0000, 0x0000, 0x0000, 0x0000, /*0xf8-0xff*/ +}; +static const unsigned short gb18030ext_page34[56] = { + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe56, /*0x40-0x47*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x48-0x4f*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x50-0x57*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x58-0x5f*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x60-0x67*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x68-0x6f*/ + 0x0000, 0x0000, 0x0000, 0xfe55, 0x0000, 0x0000, 0x0000, 0x0000, /*0x70-0x77*/ +}; +static const unsigned short gb18030ext_page36[24] = { + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe5c, 0x0000, /*0x08-0x0f*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x10-0x17*/ + 0x0000, 0x0000, 0xfe5b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x18-0x1f*/ +}; +static const unsigned short gb18030ext_page39[24] = { + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe62, /*0xc8-0xcf*/ + 0xfe65, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xd0-0xd7*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe63, /*0xd8-0xdf*/ +}; +static const unsigned short gb18030ext_page43[56] = { + 0x0000, 0x0000, 0x0000, 0x0000, 0xfe78, 0x0000, 0x0000, 0x0000, /*0xa8-0xaf*/ + 0x0000, 0xfe77, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xb0-0xb7*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xb8-0xbf*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xc0-0xc7*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xc8-0xcf*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xd0-0xd7*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe7a, 0x0000, 0x0000, /*0xd8-0xdf*/ +}; +static const unsigned short gb18030ext_page46[32] = { + 0x0000, 0x0000, 0x0000, 0x0000, 0xfe7d, 0x0000, 0x0000, 0x0000, /*0x48-0x4f*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x50-0x57*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x58-0x5f*/ + 0x0000, 0xfe7c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x60-0x67*/ +}; +static const unsigned short gb18030ext_page47_1[16] = { + 0x0000, 0x0000, 0x0000, 0xfe80, 0x0000, 0x0000, 0x0000, 0x0000, /*0x20-0x27*/ + 0x0000, 0xfe81, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x28-0x2f*/ +}; +static const unsigned short gb18030ext_page47_2[24] = { + 0x0000, 0x0000, 0x0000, 0x0000, 0xfe82, 0x0000, 0x0000, 0x0000, /*0x78-0x7f*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x80-0x87*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe83, 0x0000, 0x0000, /*0x88-0x8f*/ +}; +static const unsigned short gb18030ext_page49[120] = { + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe85, /*0x40-0x47*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x48-0x4f*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x50-0x57*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x58-0x5f*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x60-0x67*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x68-0x6f*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x70-0x77*/ + 0x0000, 0x0000, 0xfe86, 0x0000, 0x0000, 0xfe87, 0x0000, 0x0000, /*0x78-0x7f*/ + 0x0000, 0x0000, 0xfe88, 0xfe89, 0x0000, 0xfe8a, 0xfe8b, 0x0000, /*0x80-0x87*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x88-0x8f*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x90-0x97*/ + 0x0000, 0x0000, 0x0000, 0xfe8d, 0x0000, 0x0000, 0x0000, 0xfe8c, /*0x98-0x9f*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xa0-0xa7*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xa8-0xaf*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe8f, 0xfe8e, /*0xb0-0xb7*/ +}; +static const unsigned short gb18030ext_page4c[56] = { + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe96, /*0x70-0x77*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x78-0x7f*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x80-0x87*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x88-0x8f*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x90-0x97*/ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe93, /*0x98-0x9f*/ + 0xfe94, 0xfe95, 0xfe97, 0xfe92, 0x0000, 0x0000, 0x0000, 0x0000, /*0xa0-0xa7*/ +}; +static const unsigned short gb18030ext_page4d[16] = { + 0x0000, 0x0000, 0x0000, 0xfe98, 0xfe99, 0xfe9a, 0xfe9b, 0xfe9c, /*0x10-0x17*/ + 0xfe9d, 0xfe9e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x18-0x1f*/ +}; + +static int +gb18030ext_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (n >= 2) { + unsigned short c = 0; + if (wc == 0x01f9) + c = 0xa8bf; + else if (wc == 0x20ac) + c = 0xa2e3; + else if (wc >= 0x2e80 && wc < 0x2ed0) + c = gb18030ext_page2e[wc-0x2e80]; + else if (wc >= 0x2ff0 && wc < 0x3000) + c = gb18030ext_page2f[wc-0x2ff0]; + else if (wc == 0x303e) + c = 0xa989; + else if (wc >= 0x3440 && wc < 0x3478) + c = gb18030ext_page34[wc-0x3440]; + else if (wc == 0x359e) + c = 0xfe5a; + else if (wc >= 0x3608 && wc < 0x3620) + c = gb18030ext_page36[wc-0x3608]; + else if (wc == 0x3918) + c = 0xfe60; + else if (wc == 0x396e) + c = 0xfe5f; + else if (wc >= 0x39c8 && wc < 0x39e0) + c = gb18030ext_page39[wc-0x39c8]; + else if (wc == 0x3a73) + c = 0xfe64; + else if (wc == 0x3b4e) + c = 0xfe68; + else if (wc == 0x3c6e) + c = 0xfe69; + else if (wc == 0x3ce0) + c = 0xfe6a; + else if (wc == 0x4056) + c = 0xfe6f; + else if (wc == 0x415f) + c = 0xfe70; + else if (wc == 0x4337) + c = 0xfe72; + else if (wc >= 0x43a8 && wc < 0x43e0) + c = gb18030ext_page43[wc-0x43a8]; + else if (wc == 0x44d6) + c = 0xfe7b; + else if (wc >= 0x4648 && wc < 0x4668) + c = gb18030ext_page46[wc-0x4648]; + else if (wc >= 0x4720 && wc < 0x4730) + c = gb18030ext_page47_1[wc-0x4720]; + else if (wc >= 0x4778 && wc < 0x4790) + c = gb18030ext_page47_2[wc-0x4778]; + else if (wc >= 0x4940 && wc < 0x49b8) + c = gb18030ext_page49[wc-0x4940]; + else if (wc >= 0x4c70 && wc < 0x4ca8) + c = gb18030ext_page4c[wc-0x4c70]; + else if (wc >= 0x4d10 && wc < 0x4d20) + c = gb18030ext_page4d[wc-0x4d10]; + else if (wc == 0x4dae) + c = 0xfe9f; + if (c != 0) { + r[0] = (c >> 8); r[1] = (c & 0xff); + return 2; + } + return RET_ILUNI; + } + return RET_TOOSMALL; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/gb18030uni.h b/graf2d/win32gdk/gdk/src/iconv/gb18030uni.h new file mode 100644 index 00000000000..bea31e513b7 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/gb18030uni.h @@ -0,0 +1,249 @@ +/* + * Copyright (C) 1999-2001, 2005 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * GB18030 four-byte extension + */ + +static const unsigned short gb18030uni_charset2uni_ranges[412] = { + 0x0000, 0x0023, 0x0024, 0x0025, 0x0026, 0x002c, 0x002d, 0x0031, + 0x0032, 0x0050, 0x0051, 0x0058, 0x0059, 0x005e, 0x005f, 0x005f, + 0x0060, 0x0063, 0x0064, 0x0066, 0x0067, 0x0067, 0x0068, 0x0068, + 0x0069, 0x006c, 0x006d, 0x007d, 0x007e, 0x0084, 0x0085, 0x0093, + 0x0094, 0x00ab, 0x00ac, 0x00ae, 0x00af, 0x00b2, 0x00b3, 0x00cf, + 0x00d0, 0x0131, 0x0132, 0x0132, 0x0133, 0x0133, 0x0134, 0x0134, + 0x0135, 0x0135, 0x0136, 0x0136, 0x0137, 0x0137, 0x0138, 0x0138, + 0x0139, 0x0154, 0x0155, 0x01ab, 0x01ac, 0x01ba, 0x01bb, 0x021f, + 0x0220, 0x0220, 0x0221, 0x022d, 0x022e, 0x02e4, 0x02e5, 0x02e5, + 0x02e6, 0x02ec, 0x02ed, 0x02ed, 0x02ee, 0x0324, 0x0325, 0x0332, + 0x0333, 0x0333, 0x0334, 0x1ef1, 0x1ef2, 0x1ef3, 0x1ef4, 0x1ef4, + 0x1ef5, 0x1ef6, 0x1ef7, 0x1efd, 0x1efe, 0x1f06, 0x1f07, 0x1f07, + 0x1f08, 0x1f08, 0x1f09, 0x1f0d, 0x1f0e, 0x1f7d, 0x1f7e, 0x1fd3, + 0x1fd4, 0x1fd4, 0x1fd5, 0x1fd7, 0x1fd8, 0x1fe3, 0x1fe4, 0x1fed, + 0x1fee, 0x202b, 0x202c, 0x202f, 0x2030, 0x2045, 0x2046, 0x2047, + 0x2048, 0x20b5, 0x20b6, 0x20bb, 0x20bc, 0x20bc, 0x20bd, 0x20bf, + 0x20c0, 0x20c3, 0x20c4, 0x20c5, 0x20c6, 0x20c7, 0x20c8, 0x20c8, + 0x20c9, 0x20c9, 0x20ca, 0x20cb, 0x20cc, 0x20d0, 0x20d1, 0x20d5, + 0x20d6, 0x20df, 0x20e0, 0x20e2, 0x20e3, 0x20e7, 0x20e8, 0x20f4, + 0x20f5, 0x20f6, 0x20f7, 0x20fc, 0x20fd, 0x2121, 0x2122, 0x2124, + 0x2125, 0x212f, 0x2130, 0x2148, 0x2149, 0x219a, 0x219b, 0x22e7, + 0x22e8, 0x22f1, 0x22f2, 0x2355, 0x2356, 0x2359, 0x235a, 0x2366, + 0x2367, 0x2369, 0x236a, 0x2373, 0x2374, 0x2383, 0x2384, 0x238b, + 0x238c, 0x2393, 0x2394, 0x2396, 0x2397, 0x2398, 0x2399, 0x23aa, + 0x23ab, 0x23c9, 0x23ca, 0x23cb, 0x23cc, 0x2401, 0x2402, 0x2402, + 0x2403, 0x2c40, 0x2c41, 0x2c42, 0x2c43, 0x2c45, 0x2c46, 0x2c47, + 0x2c48, 0x2c51, 0x2c52, 0x2c60, 0x2c61, 0x2c62, 0x2c63, 0x2c65, + 0x2c66, 0x2c69, 0x2c6a, 0x2c6b, 0x2c6c, 0x2c6e, 0x2c6f, 0x2c7c, + 0x2c7d, 0x2da1, 0x2da2, 0x2da5, 0x2da6, 0x2da6, 0x2da7, 0x2dab, + 0x2dac, 0x2dad, 0x2dae, 0x2dc1, 0x2dc2, 0x2dc3, 0x2dc4, 0x2dca, + 0x2dcb, 0x2dcc, 0x2dcd, 0x2dd1, 0x2dd2, 0x2dd7, 0x2dd8, 0x2ecd, + 0x2ece, 0x2ed4, 0x2ed5, 0x2f45, 0x2f46, 0x302f, 0x3030, 0x303b, + 0x303c, 0x303d, 0x303e, 0x305f, 0x3060, 0x3068, 0x3069, 0x306a, + 0x306b, 0x306c, 0x306d, 0x30dd, 0x30de, 0x3108, 0x3109, 0x3232, + 0x3233, 0x32a1, 0x32a2, 0x32ac, 0x32ad, 0x35a9, 0x35aa, 0x35fe, + 0x35ff, 0x365e, 0x365f, 0x366c, 0x366d, 0x36ff, 0x3700, 0x37d9, + 0x37da, 0x38f8, 0x38f9, 0x3969, 0x396a, 0x3cde, 0x3cdf, 0x3de6, + 0x3de7, 0x3fbd, 0x3fbe, 0x4031, 0x4032, 0x4035, 0x4036, 0x4060, + 0x4061, 0x4158, 0x4159, 0x42cd, 0x42ce, 0x42e1, 0x42e2, 0x43a2, + 0x43a3, 0x43a7, 0x43a8, 0x43f9, 0x43fa, 0x4409, 0x440a, 0x45c2, + 0x45c3, 0x45f4, 0x45f5, 0x45f6, 0x45f7, 0x45fa, 0x45fb, 0x45fb, + 0x45fc, 0x460f, 0x4610, 0x4612, 0x4613, 0x4628, 0x4629, 0x48e7, + 0x48e8, 0x490e, 0x490f, 0x497d, 0x497e, 0x4a11, 0x4a12, 0x4a62, + 0x4a63, 0x82bc, + 0x82bd, 0x82bd, 0x82be, 0x82be, 0x82bf, 0x82cb, + 0x82cc, 0x82cc, 0x82cd, 0x82d1, 0x82d2, 0x82d8, 0x82d9, 0x82dc, + 0x82dd, 0x82e0, 0x82e1, 0x82e8, 0x82e9, 0x82ef, 0x82f0, 0x82ff, + 0x8300, 0x830d, + 0x830e, 0x93d4, 0x93d5, 0x9420, 0x9421, 0x943b, + 0x943c, 0x948c, 0x948d, 0x9495, 0x9496, 0x94af, 0x94b0, 0x94b0, + 0x94b1, 0x94b1, 0x94b2, 0x94b4, 0x94b5, 0x94ba, 0x94bb, 0x94bb, + 0x94bc, 0x94bd, 0x94be, 0x98c3, 0x98c4, 0x98c4, 0x98c5, 0x98c8, + 0x98c9, 0x98c9, 0x98ca, 0x98ca, 0x98cb, 0x98cb, 0x98cc, 0x9960, + 0x9961, 0x99e1, 0x99e2, 0x99fb +}; + +static const unsigned short gb18030uni_uni2charset_ranges[412] = { + 0x0080, 0x00a3, 0x00a5, 0x00a6, 0x00a9, 0x00af, 0x00b2, 0x00b6, + 0x00b8, 0x00d6, 0x00d8, 0x00df, 0x00e2, 0x00e7, 0x00eb, 0x00eb, + 0x00ee, 0x00f1, 0x00f4, 0x00f6, 0x00f8, 0x00f8, 0x00fb, 0x00fb, + 0x00fd, 0x0100, 0x0102, 0x0112, 0x0114, 0x011a, 0x011c, 0x012a, + 0x012c, 0x0143, 0x0145, 0x0147, 0x0149, 0x014c, 0x014e, 0x016a, + 0x016c, 0x01cd, 0x01cf, 0x01cf, 0x01d1, 0x01d1, 0x01d3, 0x01d3, + 0x01d5, 0x01d5, 0x01d7, 0x01d7, 0x01d9, 0x01d9, 0x01db, 0x01db, + 0x01dd, 0x01f8, 0x01fa, 0x0250, 0x0252, 0x0260, 0x0262, 0x02c6, + 0x02c8, 0x02c8, 0x02cc, 0x02d8, 0x02da, 0x0390, 0x03a2, 0x03a2, + 0x03aa, 0x03b0, 0x03c2, 0x03c2, 0x03ca, 0x0400, 0x0402, 0x040f, + 0x0450, 0x0450, 0x0452, 0x200f, 0x2011, 0x2012, 0x2017, 0x2017, + 0x201a, 0x201b, 0x201e, 0x2024, 0x2027, 0x202f, 0x2031, 0x2031, + 0x2034, 0x2034, 0x2036, 0x203a, 0x203c, 0x20ab, 0x20ad, 0x2102, + 0x2104, 0x2104, 0x2106, 0x2108, 0x210a, 0x2115, 0x2117, 0x2120, + 0x2122, 0x215f, 0x216c, 0x216f, 0x217a, 0x218f, 0x2194, 0x2195, + 0x219a, 0x2207, 0x2209, 0x220e, 0x2210, 0x2210, 0x2212, 0x2214, + 0x2216, 0x2219, 0x221b, 0x221c, 0x2221, 0x2222, 0x2224, 0x2224, + 0x2226, 0x2226, 0x222c, 0x222d, 0x222f, 0x2233, 0x2238, 0x223c, + 0x223e, 0x2247, 0x2249, 0x224b, 0x224d, 0x2251, 0x2253, 0x225f, + 0x2262, 0x2263, 0x2268, 0x226d, 0x2270, 0x2294, 0x2296, 0x2298, + 0x229a, 0x22a4, 0x22a6, 0x22be, 0x22c0, 0x2311, 0x2313, 0x245f, + 0x246a, 0x2473, 0x249c, 0x24ff, 0x254c, 0x254f, 0x2574, 0x2580, + 0x2590, 0x2592, 0x2596, 0x259f, 0x25a2, 0x25b1, 0x25b4, 0x25bb, + 0x25be, 0x25c5, 0x25c8, 0x25ca, 0x25cc, 0x25cd, 0x25d0, 0x25e1, + 0x25e6, 0x2604, 0x2607, 0x2608, 0x260a, 0x263f, 0x2641, 0x2641, + 0x2643, 0x2e80, 0x2e82, 0x2e83, 0x2e85, 0x2e87, 0x2e89, 0x2e8a, + 0x2e8d, 0x2e96, 0x2e98, 0x2ea6, 0x2ea8, 0x2ea9, 0x2eab, 0x2ead, + 0x2eaf, 0x2eb2, 0x2eb4, 0x2eb5, 0x2eb8, 0x2eba, 0x2ebc, 0x2ec9, + 0x2ecb, 0x2fef, 0x2ffc, 0x2fff, 0x3004, 0x3004, 0x3018, 0x301c, + 0x301f, 0x3020, 0x302a, 0x303d, 0x303f, 0x3040, 0x3094, 0x309a, + 0x309f, 0x30a0, 0x30f7, 0x30fb, 0x30ff, 0x3104, 0x312a, 0x321f, + 0x322a, 0x3230, 0x3232, 0x32a2, 0x32a4, 0x338d, 0x3390, 0x339b, + 0x339f, 0x33a0, 0x33a2, 0x33c3, 0x33c5, 0x33cd, 0x33cf, 0x33d0, + 0x33d3, 0x33d4, 0x33d6, 0x3446, 0x3448, 0x3472, 0x3474, 0x359d, + 0x359f, 0x360d, 0x360f, 0x3619, 0x361b, 0x3917, 0x3919, 0x396d, + 0x396f, 0x39ce, 0x39d1, 0x39de, 0x39e0, 0x3a72, 0x3a74, 0x3b4d, + 0x3b4f, 0x3c6d, 0x3c6f, 0x3cdf, 0x3ce1, 0x4055, 0x4057, 0x415e, + 0x4160, 0x4336, 0x4338, 0x43ab, 0x43ad, 0x43b0, 0x43b2, 0x43dc, + 0x43de, 0x44d5, 0x44d7, 0x464b, 0x464d, 0x4660, 0x4662, 0x4722, + 0x4724, 0x4728, 0x472a, 0x477b, 0x477d, 0x478c, 0x478e, 0x4946, + 0x4948, 0x4979, 0x497b, 0x497c, 0x497e, 0x4981, 0x4984, 0x4984, + 0x4987, 0x499a, 0x499c, 0x499e, 0x49a0, 0x49b5, 0x49b8, 0x4c76, + 0x4c78, 0x4c9e, 0x4ca4, 0x4d12, 0x4d1a, 0x4dad, 0x4daf, 0x4dff, + 0x9fa6, 0xd7ff, + 0xe76c, 0xe76c, 0xe7c8, 0xe7c8, 0xe7e7, 0xe7f3, + 0xe815, 0xe815, 0xe819, 0xe81d, 0xe81f, 0xe825, 0xe827, 0xe82a, + 0xe82d, 0xe830, 0xe833, 0xe83a, 0xe83c, 0xe842, 0xe844, 0xe853, + 0xe856, 0xe863, + 0xe865, 0xf92b, 0xf92d, 0xf978, 0xf97a, 0xf994, + 0xf996, 0xf9e6, 0xf9e8, 0xf9f0, 0xf9f2, 0xfa0b, 0xfa10, 0xfa10, + 0xfa12, 0xfa12, 0xfa15, 0xfa17, 0xfa19, 0xfa1e, 0xfa22, 0xfa22, + 0xfa25, 0xfa26, 0xfa2a, 0xfe2f, 0xfe32, 0xfe32, 0xfe45, 0xfe48, + 0xfe53, 0xfe53, 0xfe58, 0xfe58, 0xfe67, 0xfe67, 0xfe6c, 0xff00, + 0xff5f, 0xffdf, 0xffe6, 0xffff +}; + +static const unsigned short gb18030uni_ranges[206] = { + 128, 129, 131, 133, 134, 135, 137, 140, + 142, 144, 145, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, + 168, 171, 172, 189, 196, 213, 220, 221, + 285, 286, 287, 291, 293, 295, 297, 298, + 300, 301, 302, 303, 304, 305, 306, 307, + 308, 320, 330, 334, 338, 339, 340, 341, + 342, 343, 347, 348, 349, 354, 355, 359, + 360, 361, 362, 363, 365, 369, 371, 372, + 373, 374, 375, 376, 386, 426, 502, 538, + 553, 556, 558, 560, 562, 564, 565, 567, + 571, 573, 574, 575, 576, 577, 578, 579, + 581, 582, 583, 584, 585, 586, 588, 589, + 590, 602, 606, 625, 627, 636, 637, 720, + 724, 810, 813, 850, 860, 861, 862, 864, + 867, 868, 869, 870, 872, 873, 874, 875, + 876, 877, 878, 879, 880, 882, 883, 884, + 885, 886, 887, 888, 889, 890, 891, 892, + 893, 894, 895, 896, 897, 898, 899, 900, + 901, 902, 903, 905, 907, 908, 909, 911, + 912, 917, 924, 925, 21827, + 25775, 25866, 25896, + 25929, 25932, 25933, 25934, 25936, 25938, 25939, 25940, + 25942, + 25943, 25944, 25945, 25946, 25947, 25948, 25952, + 25953, 25955, 25956, 25959, 25961, 25964, 25966, 25984, + 25994, 25998, 26012, 26016, 26110, 26116 +}; + +static int +gb18030uni_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if (c1 >= 0x81 && c1 <= 0x84) { + if (n >= 2) { + unsigned char c2 = s[1]; + if (c2 >= 0x30 && c2 <= 0x39) { + if (n >= 3) { + unsigned char c3 = s[2]; + if (c3 >= 0x81 && c3 <= 0xfe) { + if (n >= 4) { + unsigned char c4 = s[3]; + if (c4 >= 0x30 && c4 <= 0x39) { + unsigned int i = (((c1 - 0x81) * 10 + (c2 - 0x30)) * 126 + (c3 - 0x81)) * 10 + (c4 - 0x30); + if (i >= 0 && i <= 39419) { + unsigned int k1 = 0; + unsigned int k2 = 205; + while (k1 < k2) { + unsigned int k = (k1 + k2) / 2; + if (i <= gb18030uni_charset2uni_ranges[2*k+1]) + k2 = k; + else if (i >= gb18030uni_charset2uni_ranges[2*k+2]) + k1 = k + 1; + else + return RET_ILSEQ; + } + { + unsigned int diff = gb18030uni_ranges[k1]; + *pwc = (ucs4_t) (i + diff); + return 4; + } + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + +static int +gb18030uni_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (n >= 4) { + unsigned int i = wc; + if (i >= 0x0080 && i <= 0xffff) { + unsigned int k1 = 0; + unsigned int k2 = 205; + while (k1 < k2) { + unsigned int k = (k1 + k2) / 2; + if (i <= gb18030uni_uni2charset_ranges[2*k+1]) + k2 = k; + else if (i >= gb18030uni_uni2charset_ranges[2*k+2]) + k1 = k + 1; + else + return RET_ILUNI; + } + { + unsigned int diff = gb18030uni_ranges[k1]; + i -= diff; + r[3] = (i % 10) + 0x30; i = i / 10; + r[2] = (i % 126) + 0x81; i = i / 126; + r[1] = (i % 10) + 0x30; i = i / 10; + r[0] = i + 0x81; + return 4; + } + } + return RET_ILUNI; + } + return RET_TOOSMALL; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/gb2312.h b/graf2d/win32gdk/gdk/src/iconv/gb2312.h new file mode 100644 index 00000000000..831a5691273 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/gb2312.h @@ -0,0 +1,2571 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * GB2312.1980-0 + */ + +static const unsigned short gb2312_2uni_page21[831] = { + /* 0x21 */ + 0x3000, 0x3001, 0x3002, 0x30fb, 0x02c9, 0x02c7, 0x00a8, 0x3003, + 0x3005, 0x2015, 0xff5e, 0x2016, 0x2026, 0x2018, 0x2019, 0x201c, + 0x201d, 0x3014, 0x3015, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c, + 0x300d, 0x300e, 0x300f, 0x3016, 0x3017, 0x3010, 0x3011, 0x00b1, + 0x00d7, 0x00f7, 0x2236, 0x2227, 0x2228, 0x2211, 0x220f, 0x222a, + 0x2229, 0x2208, 0x2237, 0x221a, 0x22a5, 0x2225, 0x2220, 0x2312, + 0x2299, 0x222b, 0x222e, 0x2261, 0x224c, 0x2248, 0x223d, 0x221d, + 0x2260, 0x226e, 0x226f, 0x2264, 0x2265, 0x221e, 0x2235, 0x2234, + 0x2642, 0x2640, 0x00b0, 0x2032, 0x2033, 0x2103, 0xff04, 0x00a4, + 0xffe0, 0xffe1, 0x2030, 0x00a7, 0x2116, 0x2606, 0x2605, 0x25cb, + 0x25cf, 0x25ce, 0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25b3, 0x25b2, + 0x203b, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013, + /* 0x22 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x2488, 0x2489, 0x248a, 0x248b, 0x248c, 0x248d, 0x248e, 0x248f, + 0x2490, 0x2491, 0x2492, 0x2493, 0x2494, 0x2495, 0x2496, 0x2497, + 0x2498, 0x2499, 0x249a, 0x249b, 0x2474, 0x2475, 0x2476, 0x2477, + 0x2478, 0x2479, 0x247a, 0x247b, 0x247c, 0x247d, 0x247e, 0x247f, + 0x2480, 0x2481, 0x2482, 0x2483, 0x2484, 0x2485, 0x2486, 0x2487, + 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, + 0x2468, 0x2469, 0xfffd, 0xfffd, 0x3220, 0x3221, 0x3222, 0x3223, + 0x3224, 0x3225, 0x3226, 0x3227, 0x3228, 0x3229, 0xfffd, 0xfffd, + 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, + 0x2168, 0x2169, 0x216a, 0x216b, 0xfffd, 0xfffd, + /* 0x23 */ + 0xff01, 0xff02, 0xff03, 0xffe5, 0xff05, 0xff06, 0xff07, 0xff08, + 0xff09, 0xff0a, 0xff0b, 0xff0c, 0xff0d, 0xff0e, 0xff0f, 0xff10, + 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, + 0xff19, 0xff1a, 0xff1b, 0xff1c, 0xff1d, 0xff1e, 0xff1f, 0xff20, + 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28, + 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30, + 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38, + 0xff39, 0xff3a, 0xff3b, 0xff3c, 0xff3d, 0xff3e, 0xff3f, 0xff40, + 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, + 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50, + 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58, + 0xff59, 0xff5a, 0xff5b, 0xff5c, 0xff5d, 0xffe3, + /* 0x24 */ + 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, + 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, + 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, + 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060, + 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, + 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070, + 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078, + 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080, + 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088, + 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090, + 0x3091, 0x3092, 0x3093, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x25 */ + 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8, + 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0, + 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8, + 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0, + 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8, + 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0, + 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8, + 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0, + 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8, + 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0, + 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x26 */ + 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, + 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, + 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, + 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, + 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x27 */ + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416, + 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, + 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, + 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, + 0x042f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436, + 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, + 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, + 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, + 0x044f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x28 */ + 0x0101, 0x00e1, 0x01ce, 0x00e0, 0x0113, 0x00e9, 0x011b, 0x00e8, + 0x012b, 0x00ed, 0x01d0, 0x00ec, 0x014d, 0x00f3, 0x01d2, 0x00f2, + 0x016b, 0x00fa, 0x01d4, 0x00f9, 0x01d6, 0x01d8, 0x01da, 0x01dc, + 0x00fc, 0x00ea, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x3105, 0x3106, 0x3107, 0x3108, + 0x3109, 0x310a, 0x310b, 0x310c, 0x310d, 0x310e, 0x310f, 0x3110, + 0x3111, 0x3112, 0x3113, 0x3114, 0x3115, 0x3116, 0x3117, 0x3118, + 0x3119, 0x311a, 0x311b, 0x311c, 0x311d, 0x311e, 0x311f, 0x3120, + 0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, 0x3127, 0x3128, + 0x3129, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x29 */ + 0xfffd, 0xfffd, 0xfffd, 0x2500, 0x2501, 0x2502, 0x2503, 0x2504, + 0x2505, 0x2506, 0x2507, 0x2508, 0x2509, 0x250a, 0x250b, 0x250c, + 0x250d, 0x250e, 0x250f, 0x2510, 0x2511, 0x2512, 0x2513, 0x2514, + 0x2515, 0x2516, 0x2517, 0x2518, 0x2519, 0x251a, 0x251b, 0x251c, + 0x251d, 0x251e, 0x251f, 0x2520, 0x2521, 0x2522, 0x2523, 0x2524, + 0x2525, 0x2526, 0x2527, 0x2528, 0x2529, 0x252a, 0x252b, 0x252c, + 0x252d, 0x252e, 0x252f, 0x2530, 0x2531, 0x2532, 0x2533, 0x2534, + 0x2535, 0x2536, 0x2537, 0x2538, 0x2539, 0x253a, 0x253b, 0x253c, + 0x253d, 0x253e, 0x253f, 0x2540, 0x2541, 0x2542, 0x2543, 0x2544, + 0x2545, 0x2546, 0x2547, 0x2548, 0x2549, 0x254a, 0x254b, +}; +static const unsigned short gb2312_2uni_page30[6768] = { + /* 0x30 */ + 0x554a, 0x963f, 0x57c3, 0x6328, 0x54ce, 0x5509, 0x54c0, 0x7691, + 0x764c, 0x853c, 0x77ee, 0x827e, 0x788d, 0x7231, 0x9698, 0x978d, + 0x6c28, 0x5b89, 0x4ffa, 0x6309, 0x6697, 0x5cb8, 0x80fa, 0x6848, + 0x80ae, 0x6602, 0x76ce, 0x51f9, 0x6556, 0x71ac, 0x7ff1, 0x8884, + 0x50b2, 0x5965, 0x61ca, 0x6fb3, 0x82ad, 0x634c, 0x6252, 0x53ed, + 0x5427, 0x7b06, 0x516b, 0x75a4, 0x5df4, 0x62d4, 0x8dcb, 0x9776, + 0x628a, 0x8019, 0x575d, 0x9738, 0x7f62, 0x7238, 0x767d, 0x67cf, + 0x767e, 0x6446, 0x4f70, 0x8d25, 0x62dc, 0x7a17, 0x6591, 0x73ed, + 0x642c, 0x6273, 0x822c, 0x9881, 0x677f, 0x7248, 0x626e, 0x62cc, + 0x4f34, 0x74e3, 0x534a, 0x529e, 0x7eca, 0x90a6, 0x5e2e, 0x6886, + 0x699c, 0x8180, 0x7ed1, 0x68d2, 0x78c5, 0x868c, 0x9551, 0x508d, + 0x8c24, 0x82de, 0x80de, 0x5305, 0x8912, 0x5265, + /* 0x31 */ + 0x8584, 0x96f9, 0x4fdd, 0x5821, 0x9971, 0x5b9d, 0x62b1, 0x62a5, + 0x66b4, 0x8c79, 0x9c8d, 0x7206, 0x676f, 0x7891, 0x60b2, 0x5351, + 0x5317, 0x8f88, 0x80cc, 0x8d1d, 0x94a1, 0x500d, 0x72c8, 0x5907, + 0x60eb, 0x7119, 0x88ab, 0x5954, 0x82ef, 0x672c, 0x7b28, 0x5d29, + 0x7ef7, 0x752d, 0x6cf5, 0x8e66, 0x8ff8, 0x903c, 0x9f3b, 0x6bd4, + 0x9119, 0x7b14, 0x5f7c, 0x78a7, 0x84d6, 0x853d, 0x6bd5, 0x6bd9, + 0x6bd6, 0x5e01, 0x5e87, 0x75f9, 0x95ed, 0x655d, 0x5f0a, 0x5fc5, + 0x8f9f, 0x58c1, 0x81c2, 0x907f, 0x965b, 0x97ad, 0x8fb9, 0x7f16, + 0x8d2c, 0x6241, 0x4fbf, 0x53d8, 0x535e, 0x8fa8, 0x8fa9, 0x8fab, + 0x904d, 0x6807, 0x5f6a, 0x8198, 0x8868, 0x9cd6, 0x618b, 0x522b, + 0x762a, 0x5f6c, 0x658c, 0x6fd2, 0x6ee8, 0x5bbe, 0x6448, 0x5175, + 0x51b0, 0x67c4, 0x4e19, 0x79c9, 0x997c, 0x70b3, + /* 0x32 */ + 0x75c5, 0x5e76, 0x73bb, 0x83e0, 0x64ad, 0x62e8, 0x94b5, 0x6ce2, + 0x535a, 0x52c3, 0x640f, 0x94c2, 0x7b94, 0x4f2f, 0x5e1b, 0x8236, + 0x8116, 0x818a, 0x6e24, 0x6cca, 0x9a73, 0x6355, 0x535c, 0x54fa, + 0x8865, 0x57e0, 0x4e0d, 0x5e03, 0x6b65, 0x7c3f, 0x90e8, 0x6016, + 0x64e6, 0x731c, 0x88c1, 0x6750, 0x624d, 0x8d22, 0x776c, 0x8e29, + 0x91c7, 0x5f69, 0x83dc, 0x8521, 0x9910, 0x53c2, 0x8695, 0x6b8b, + 0x60ed, 0x60e8, 0x707f, 0x82cd, 0x8231, 0x4ed3, 0x6ca7, 0x85cf, + 0x64cd, 0x7cd9, 0x69fd, 0x66f9, 0x8349, 0x5395, 0x7b56, 0x4fa7, + 0x518c, 0x6d4b, 0x5c42, 0x8e6d, 0x63d2, 0x53c9, 0x832c, 0x8336, + 0x67e5, 0x78b4, 0x643d, 0x5bdf, 0x5c94, 0x5dee, 0x8be7, 0x62c6, + 0x67f4, 0x8c7a, 0x6400, 0x63ba, 0x8749, 0x998b, 0x8c17, 0x7f20, + 0x94f2, 0x4ea7, 0x9610, 0x98a4, 0x660c, 0x7316, + /* 0x33 */ + 0x573a, 0x5c1d, 0x5e38, 0x957f, 0x507f, 0x80a0, 0x5382, 0x655e, + 0x7545, 0x5531, 0x5021, 0x8d85, 0x6284, 0x949e, 0x671d, 0x5632, + 0x6f6e, 0x5de2, 0x5435, 0x7092, 0x8f66, 0x626f, 0x64a4, 0x63a3, + 0x5f7b, 0x6f88, 0x90f4, 0x81e3, 0x8fb0, 0x5c18, 0x6668, 0x5ff1, + 0x6c89, 0x9648, 0x8d81, 0x886c, 0x6491, 0x79f0, 0x57ce, 0x6a59, + 0x6210, 0x5448, 0x4e58, 0x7a0b, 0x60e9, 0x6f84, 0x8bda, 0x627f, + 0x901e, 0x9a8b, 0x79e4, 0x5403, 0x75f4, 0x6301, 0x5319, 0x6c60, + 0x8fdf, 0x5f1b, 0x9a70, 0x803b, 0x9f7f, 0x4f88, 0x5c3a, 0x8d64, + 0x7fc5, 0x65a5, 0x70bd, 0x5145, 0x51b2, 0x866b, 0x5d07, 0x5ba0, + 0x62bd, 0x916c, 0x7574, 0x8e0c, 0x7a20, 0x6101, 0x7b79, 0x4ec7, + 0x7ef8, 0x7785, 0x4e11, 0x81ed, 0x521d, 0x51fa, 0x6a71, 0x53a8, + 0x8e87, 0x9504, 0x96cf, 0x6ec1, 0x9664, 0x695a, + /* 0x34 */ + 0x7840, 0x50a8, 0x77d7, 0x6410, 0x89e6, 0x5904, 0x63e3, 0x5ddd, + 0x7a7f, 0x693d, 0x4f20, 0x8239, 0x5598, 0x4e32, 0x75ae, 0x7a97, + 0x5e62, 0x5e8a, 0x95ef, 0x521b, 0x5439, 0x708a, 0x6376, 0x9524, + 0x5782, 0x6625, 0x693f, 0x9187, 0x5507, 0x6df3, 0x7eaf, 0x8822, + 0x6233, 0x7ef0, 0x75b5, 0x8328, 0x78c1, 0x96cc, 0x8f9e, 0x6148, + 0x74f7, 0x8bcd, 0x6b64, 0x523a, 0x8d50, 0x6b21, 0x806a, 0x8471, + 0x56f1, 0x5306, 0x4ece, 0x4e1b, 0x51d1, 0x7c97, 0x918b, 0x7c07, + 0x4fc3, 0x8e7f, 0x7be1, 0x7a9c, 0x6467, 0x5d14, 0x50ac, 0x8106, + 0x7601, 0x7cb9, 0x6dec, 0x7fe0, 0x6751, 0x5b58, 0x5bf8, 0x78cb, + 0x64ae, 0x6413, 0x63aa, 0x632b, 0x9519, 0x642d, 0x8fbe, 0x7b54, + 0x7629, 0x6253, 0x5927, 0x5446, 0x6b79, 0x50a3, 0x6234, 0x5e26, + 0x6b86, 0x4ee3, 0x8d37, 0x888b, 0x5f85, 0x902e, + /* 0x35 */ + 0x6020, 0x803d, 0x62c5, 0x4e39, 0x5355, 0x90f8, 0x63b8, 0x80c6, + 0x65e6, 0x6c2e, 0x4f46, 0x60ee, 0x6de1, 0x8bde, 0x5f39, 0x86cb, + 0x5f53, 0x6321, 0x515a, 0x8361, 0x6863, 0x5200, 0x6363, 0x8e48, + 0x5012, 0x5c9b, 0x7977, 0x5bfc, 0x5230, 0x7a3b, 0x60bc, 0x9053, + 0x76d7, 0x5fb7, 0x5f97, 0x7684, 0x8e6c, 0x706f, 0x767b, 0x7b49, + 0x77aa, 0x51f3, 0x9093, 0x5824, 0x4f4e, 0x6ef4, 0x8fea, 0x654c, + 0x7b1b, 0x72c4, 0x6da4, 0x7fdf, 0x5ae1, 0x62b5, 0x5e95, 0x5730, + 0x8482, 0x7b2c, 0x5e1d, 0x5f1f, 0x9012, 0x7f14, 0x98a0, 0x6382, + 0x6ec7, 0x7898, 0x70b9, 0x5178, 0x975b, 0x57ab, 0x7535, 0x4f43, + 0x7538, 0x5e97, 0x60e6, 0x5960, 0x6dc0, 0x6bbf, 0x7889, 0x53fc, + 0x96d5, 0x51cb, 0x5201, 0x6389, 0x540a, 0x9493, 0x8c03, 0x8dcc, + 0x7239, 0x789f, 0x8776, 0x8fed, 0x8c0d, 0x53e0, + /* 0x36 */ + 0x4e01, 0x76ef, 0x53ee, 0x9489, 0x9876, 0x9f0e, 0x952d, 0x5b9a, + 0x8ba2, 0x4e22, 0x4e1c, 0x51ac, 0x8463, 0x61c2, 0x52a8, 0x680b, + 0x4f97, 0x606b, 0x51bb, 0x6d1e, 0x515c, 0x6296, 0x6597, 0x9661, + 0x8c46, 0x9017, 0x75d8, 0x90fd, 0x7763, 0x6bd2, 0x728a, 0x72ec, + 0x8bfb, 0x5835, 0x7779, 0x8d4c, 0x675c, 0x9540, 0x809a, 0x5ea6, + 0x6e21, 0x5992, 0x7aef, 0x77ed, 0x953b, 0x6bb5, 0x65ad, 0x7f0e, + 0x5806, 0x5151, 0x961f, 0x5bf9, 0x58a9, 0x5428, 0x8e72, 0x6566, + 0x987f, 0x56e4, 0x949d, 0x76fe, 0x9041, 0x6387, 0x54c6, 0x591a, + 0x593a, 0x579b, 0x8eb2, 0x6735, 0x8dfa, 0x8235, 0x5241, 0x60f0, + 0x5815, 0x86fe, 0x5ce8, 0x9e45, 0x4fc4, 0x989d, 0x8bb9, 0x5a25, + 0x6076, 0x5384, 0x627c, 0x904f, 0x9102, 0x997f, 0x6069, 0x800c, + 0x513f, 0x8033, 0x5c14, 0x9975, 0x6d31, 0x4e8c, + /* 0x37 */ + 0x8d30, 0x53d1, 0x7f5a, 0x7b4f, 0x4f10, 0x4e4f, 0x9600, 0x6cd5, + 0x73d0, 0x85e9, 0x5e06, 0x756a, 0x7ffb, 0x6a0a, 0x77fe, 0x9492, + 0x7e41, 0x51e1, 0x70e6, 0x53cd, 0x8fd4, 0x8303, 0x8d29, 0x72af, + 0x996d, 0x6cdb, 0x574a, 0x82b3, 0x65b9, 0x80aa, 0x623f, 0x9632, + 0x59a8, 0x4eff, 0x8bbf, 0x7eba, 0x653e, 0x83f2, 0x975e, 0x5561, + 0x98de, 0x80a5, 0x532a, 0x8bfd, 0x5420, 0x80ba, 0x5e9f, 0x6cb8, + 0x8d39, 0x82ac, 0x915a, 0x5429, 0x6c1b, 0x5206, 0x7eb7, 0x575f, + 0x711a, 0x6c7e, 0x7c89, 0x594b, 0x4efd, 0x5fff, 0x6124, 0x7caa, + 0x4e30, 0x5c01, 0x67ab, 0x8702, 0x5cf0, 0x950b, 0x98ce, 0x75af, + 0x70fd, 0x9022, 0x51af, 0x7f1d, 0x8bbd, 0x5949, 0x51e4, 0x4f5b, + 0x5426, 0x592b, 0x6577, 0x80a4, 0x5b75, 0x6276, 0x62c2, 0x8f90, + 0x5e45, 0x6c1f, 0x7b26, 0x4f0f, 0x4fd8, 0x670d, + /* 0x38 */ + 0x6d6e, 0x6daa, 0x798f, 0x88b1, 0x5f17, 0x752b, 0x629a, 0x8f85, + 0x4fef, 0x91dc, 0x65a7, 0x812f, 0x8151, 0x5e9c, 0x8150, 0x8d74, + 0x526f, 0x8986, 0x8d4b, 0x590d, 0x5085, 0x4ed8, 0x961c, 0x7236, + 0x8179, 0x8d1f, 0x5bcc, 0x8ba3, 0x9644, 0x5987, 0x7f1a, 0x5490, + 0x5676, 0x560e, 0x8be5, 0x6539, 0x6982, 0x9499, 0x76d6, 0x6e89, + 0x5e72, 0x7518, 0x6746, 0x67d1, 0x7aff, 0x809d, 0x8d76, 0x611f, + 0x79c6, 0x6562, 0x8d63, 0x5188, 0x521a, 0x94a2, 0x7f38, 0x809b, + 0x7eb2, 0x5c97, 0x6e2f, 0x6760, 0x7bd9, 0x768b, 0x9ad8, 0x818f, + 0x7f94, 0x7cd5, 0x641e, 0x9550, 0x7a3f, 0x544a, 0x54e5, 0x6b4c, + 0x6401, 0x6208, 0x9e3d, 0x80f3, 0x7599, 0x5272, 0x9769, 0x845b, + 0x683c, 0x86e4, 0x9601, 0x9694, 0x94ec, 0x4e2a, 0x5404, 0x7ed9, + 0x6839, 0x8ddf, 0x8015, 0x66f4, 0x5e9a, 0x7fb9, + /* 0x39 */ + 0x57c2, 0x803f, 0x6897, 0x5de5, 0x653b, 0x529f, 0x606d, 0x9f9a, + 0x4f9b, 0x8eac, 0x516c, 0x5bab, 0x5f13, 0x5de9, 0x6c5e, 0x62f1, + 0x8d21, 0x5171, 0x94a9, 0x52fe, 0x6c9f, 0x82df, 0x72d7, 0x57a2, + 0x6784, 0x8d2d, 0x591f, 0x8f9c, 0x83c7, 0x5495, 0x7b8d, 0x4f30, + 0x6cbd, 0x5b64, 0x59d1, 0x9f13, 0x53e4, 0x86ca, 0x9aa8, 0x8c37, + 0x80a1, 0x6545, 0x987e, 0x56fa, 0x96c7, 0x522e, 0x74dc, 0x5250, + 0x5be1, 0x6302, 0x8902, 0x4e56, 0x62d0, 0x602a, 0x68fa, 0x5173, + 0x5b98, 0x51a0, 0x89c2, 0x7ba1, 0x9986, 0x7f50, 0x60ef, 0x704c, + 0x8d2f, 0x5149, 0x5e7f, 0x901b, 0x7470, 0x89c4, 0x572d, 0x7845, + 0x5f52, 0x9f9f, 0x95fa, 0x8f68, 0x9b3c, 0x8be1, 0x7678, 0x6842, + 0x67dc, 0x8dea, 0x8d35, 0x523d, 0x8f8a, 0x6eda, 0x68cd, 0x9505, + 0x90ed, 0x56fd, 0x679c, 0x88f9, 0x8fc7, 0x54c8, + /* 0x3a */ + 0x9ab8, 0x5b69, 0x6d77, 0x6c26, 0x4ea5, 0x5bb3, 0x9a87, 0x9163, + 0x61a8, 0x90af, 0x97e9, 0x542b, 0x6db5, 0x5bd2, 0x51fd, 0x558a, + 0x7f55, 0x7ff0, 0x64bc, 0x634d, 0x65f1, 0x61be, 0x608d, 0x710a, + 0x6c57, 0x6c49, 0x592f, 0x676d, 0x822a, 0x58d5, 0x568e, 0x8c6a, + 0x6beb, 0x90dd, 0x597d, 0x8017, 0x53f7, 0x6d69, 0x5475, 0x559d, + 0x8377, 0x83cf, 0x6838, 0x79be, 0x548c, 0x4f55, 0x5408, 0x76d2, + 0x8c89, 0x9602, 0x6cb3, 0x6db8, 0x8d6b, 0x8910, 0x9e64, 0x8d3a, + 0x563f, 0x9ed1, 0x75d5, 0x5f88, 0x72e0, 0x6068, 0x54fc, 0x4ea8, + 0x6a2a, 0x8861, 0x6052, 0x8f70, 0x54c4, 0x70d8, 0x8679, 0x9e3f, + 0x6d2a, 0x5b8f, 0x5f18, 0x7ea2, 0x5589, 0x4faf, 0x7334, 0x543c, + 0x539a, 0x5019, 0x540e, 0x547c, 0x4e4e, 0x5ffd, 0x745a, 0x58f6, + 0x846b, 0x80e1, 0x8774, 0x72d0, 0x7cca, 0x6e56, + /* 0x3b */ + 0x5f27, 0x864e, 0x552c, 0x62a4, 0x4e92, 0x6caa, 0x6237, 0x82b1, + 0x54d7, 0x534e, 0x733e, 0x6ed1, 0x753b, 0x5212, 0x5316, 0x8bdd, + 0x69d0, 0x5f8a, 0x6000, 0x6dee, 0x574f, 0x6b22, 0x73af, 0x6853, + 0x8fd8, 0x7f13, 0x6362, 0x60a3, 0x5524, 0x75ea, 0x8c62, 0x7115, + 0x6da3, 0x5ba6, 0x5e7b, 0x8352, 0x614c, 0x9ec4, 0x78fa, 0x8757, + 0x7c27, 0x7687, 0x51f0, 0x60f6, 0x714c, 0x6643, 0x5e4c, 0x604d, + 0x8c0e, 0x7070, 0x6325, 0x8f89, 0x5fbd, 0x6062, 0x86d4, 0x56de, + 0x6bc1, 0x6094, 0x6167, 0x5349, 0x60e0, 0x6666, 0x8d3f, 0x79fd, + 0x4f1a, 0x70e9, 0x6c47, 0x8bb3, 0x8bf2, 0x7ed8, 0x8364, 0x660f, + 0x5a5a, 0x9b42, 0x6d51, 0x6df7, 0x8c41, 0x6d3b, 0x4f19, 0x706b, + 0x83b7, 0x6216, 0x60d1, 0x970d, 0x8d27, 0x7978, 0x51fb, 0x573e, + 0x57fa, 0x673a, 0x7578, 0x7a3d, 0x79ef, 0x7b95, + /* 0x3c */ + 0x808c, 0x9965, 0x8ff9, 0x6fc0, 0x8ba5, 0x9e21, 0x59ec, 0x7ee9, + 0x7f09, 0x5409, 0x6781, 0x68d8, 0x8f91, 0x7c4d, 0x96c6, 0x53ca, + 0x6025, 0x75be, 0x6c72, 0x5373, 0x5ac9, 0x7ea7, 0x6324, 0x51e0, + 0x810a, 0x5df1, 0x84df, 0x6280, 0x5180, 0x5b63, 0x4f0e, 0x796d, + 0x5242, 0x60b8, 0x6d4e, 0x5bc4, 0x5bc2, 0x8ba1, 0x8bb0, 0x65e2, + 0x5fcc, 0x9645, 0x5993, 0x7ee7, 0x7eaa, 0x5609, 0x67b7, 0x5939, + 0x4f73, 0x5bb6, 0x52a0, 0x835a, 0x988a, 0x8d3e, 0x7532, 0x94be, + 0x5047, 0x7a3c, 0x4ef7, 0x67b6, 0x9a7e, 0x5ac1, 0x6b7c, 0x76d1, + 0x575a, 0x5c16, 0x7b3a, 0x95f4, 0x714e, 0x517c, 0x80a9, 0x8270, + 0x5978, 0x7f04, 0x8327, 0x68c0, 0x67ec, 0x78b1, 0x7877, 0x62e3, + 0x6361, 0x7b80, 0x4fed, 0x526a, 0x51cf, 0x8350, 0x69db, 0x9274, + 0x8df5, 0x8d31, 0x89c1, 0x952e, 0x7bad, 0x4ef6, + /* 0x3d */ + 0x5065, 0x8230, 0x5251, 0x996f, 0x6e10, 0x6e85, 0x6da7, 0x5efa, + 0x50f5, 0x59dc, 0x5c06, 0x6d46, 0x6c5f, 0x7586, 0x848b, 0x6868, + 0x5956, 0x8bb2, 0x5320, 0x9171, 0x964d, 0x8549, 0x6912, 0x7901, + 0x7126, 0x80f6, 0x4ea4, 0x90ca, 0x6d47, 0x9a84, 0x5a07, 0x56bc, + 0x6405, 0x94f0, 0x77eb, 0x4fa5, 0x811a, 0x72e1, 0x89d2, 0x997a, + 0x7f34, 0x7ede, 0x527f, 0x6559, 0x9175, 0x8f7f, 0x8f83, 0x53eb, + 0x7a96, 0x63ed, 0x63a5, 0x7686, 0x79f8, 0x8857, 0x9636, 0x622a, + 0x52ab, 0x8282, 0x6854, 0x6770, 0x6377, 0x776b, 0x7aed, 0x6d01, + 0x7ed3, 0x89e3, 0x59d0, 0x6212, 0x85c9, 0x82a5, 0x754c, 0x501f, + 0x4ecb, 0x75a5, 0x8beb, 0x5c4a, 0x5dfe, 0x7b4b, 0x65a4, 0x91d1, + 0x4eca, 0x6d25, 0x895f, 0x7d27, 0x9526, 0x4ec5, 0x8c28, 0x8fdb, + 0x9773, 0x664b, 0x7981, 0x8fd1, 0x70ec, 0x6d78, + /* 0x3e */ + 0x5c3d, 0x52b2, 0x8346, 0x5162, 0x830e, 0x775b, 0x6676, 0x9cb8, + 0x4eac, 0x60ca, 0x7cbe, 0x7cb3, 0x7ecf, 0x4e95, 0x8b66, 0x666f, + 0x9888, 0x9759, 0x5883, 0x656c, 0x955c, 0x5f84, 0x75c9, 0x9756, + 0x7adf, 0x7ade, 0x51c0, 0x70af, 0x7a98, 0x63ea, 0x7a76, 0x7ea0, + 0x7396, 0x97ed, 0x4e45, 0x7078, 0x4e5d, 0x9152, 0x53a9, 0x6551, + 0x65e7, 0x81fc, 0x8205, 0x548e, 0x5c31, 0x759a, 0x97a0, 0x62d8, + 0x72d9, 0x75bd, 0x5c45, 0x9a79, 0x83ca, 0x5c40, 0x5480, 0x77e9, + 0x4e3e, 0x6cae, 0x805a, 0x62d2, 0x636e, 0x5de8, 0x5177, 0x8ddd, + 0x8e1e, 0x952f, 0x4ff1, 0x53e5, 0x60e7, 0x70ac, 0x5267, 0x6350, + 0x9e43, 0x5a1f, 0x5026, 0x7737, 0x5377, 0x7ee2, 0x6485, 0x652b, + 0x6289, 0x6398, 0x5014, 0x7235, 0x89c9, 0x51b3, 0x8bc0, 0x7edd, + 0x5747, 0x83cc, 0x94a7, 0x519b, 0x541b, 0x5cfb, + /* 0x3f */ + 0x4fca, 0x7ae3, 0x6d5a, 0x90e1, 0x9a8f, 0x5580, 0x5496, 0x5361, + 0x54af, 0x5f00, 0x63e9, 0x6977, 0x51ef, 0x6168, 0x520a, 0x582a, + 0x52d8, 0x574e, 0x780d, 0x770b, 0x5eb7, 0x6177, 0x7ce0, 0x625b, + 0x6297, 0x4ea2, 0x7095, 0x8003, 0x62f7, 0x70e4, 0x9760, 0x5777, + 0x82db, 0x67ef, 0x68f5, 0x78d5, 0x9897, 0x79d1, 0x58f3, 0x54b3, + 0x53ef, 0x6e34, 0x514b, 0x523b, 0x5ba2, 0x8bfe, 0x80af, 0x5543, + 0x57a6, 0x6073, 0x5751, 0x542d, 0x7a7a, 0x6050, 0x5b54, 0x63a7, + 0x62a0, 0x53e3, 0x6263, 0x5bc7, 0x67af, 0x54ed, 0x7a9f, 0x82e6, + 0x9177, 0x5e93, 0x88e4, 0x5938, 0x57ae, 0x630e, 0x8de8, 0x80ef, + 0x5757, 0x7b77, 0x4fa9, 0x5feb, 0x5bbd, 0x6b3e, 0x5321, 0x7b50, + 0x72c2, 0x6846, 0x77ff, 0x7736, 0x65f7, 0x51b5, 0x4e8f, 0x76d4, + 0x5cbf, 0x7aa5, 0x8475, 0x594e, 0x9b41, 0x5080, + /* 0x40 */ + 0x9988, 0x6127, 0x6e83, 0x5764, 0x6606, 0x6346, 0x56f0, 0x62ec, + 0x6269, 0x5ed3, 0x9614, 0x5783, 0x62c9, 0x5587, 0x8721, 0x814a, + 0x8fa3, 0x5566, 0x83b1, 0x6765, 0x8d56, 0x84dd, 0x5a6a, 0x680f, + 0x62e6, 0x7bee, 0x9611, 0x5170, 0x6f9c, 0x8c30, 0x63fd, 0x89c8, + 0x61d2, 0x7f06, 0x70c2, 0x6ee5, 0x7405, 0x6994, 0x72fc, 0x5eca, + 0x90ce, 0x6717, 0x6d6a, 0x635e, 0x52b3, 0x7262, 0x8001, 0x4f6c, + 0x59e5, 0x916a, 0x70d9, 0x6d9d, 0x52d2, 0x4e50, 0x96f7, 0x956d, + 0x857e, 0x78ca, 0x7d2f, 0x5121, 0x5792, 0x64c2, 0x808b, 0x7c7b, + 0x6cea, 0x68f1, 0x695e, 0x51b7, 0x5398, 0x68a8, 0x7281, 0x9ece, + 0x7bf1, 0x72f8, 0x79bb, 0x6f13, 0x7406, 0x674e, 0x91cc, 0x9ca4, + 0x793c, 0x8389, 0x8354, 0x540f, 0x6817, 0x4e3d, 0x5389, 0x52b1, + 0x783e, 0x5386, 0x5229, 0x5088, 0x4f8b, 0x4fd0, + /* 0x41 */ + 0x75e2, 0x7acb, 0x7c92, 0x6ca5, 0x96b6, 0x529b, 0x7483, 0x54e9, + 0x4fe9, 0x8054, 0x83b2, 0x8fde, 0x9570, 0x5ec9, 0x601c, 0x6d9f, + 0x5e18, 0x655b, 0x8138, 0x94fe, 0x604b, 0x70bc, 0x7ec3, 0x7cae, + 0x51c9, 0x6881, 0x7cb1, 0x826f, 0x4e24, 0x8f86, 0x91cf, 0x667e, + 0x4eae, 0x8c05, 0x64a9, 0x804a, 0x50da, 0x7597, 0x71ce, 0x5be5, + 0x8fbd, 0x6f66, 0x4e86, 0x6482, 0x9563, 0x5ed6, 0x6599, 0x5217, + 0x88c2, 0x70c8, 0x52a3, 0x730e, 0x7433, 0x6797, 0x78f7, 0x9716, + 0x4e34, 0x90bb, 0x9cde, 0x6dcb, 0x51db, 0x8d41, 0x541d, 0x62ce, + 0x73b2, 0x83f1, 0x96f6, 0x9f84, 0x94c3, 0x4f36, 0x7f9a, 0x51cc, + 0x7075, 0x9675, 0x5cad, 0x9886, 0x53e6, 0x4ee4, 0x6e9c, 0x7409, + 0x69b4, 0x786b, 0x998f, 0x7559, 0x5218, 0x7624, 0x6d41, 0x67f3, + 0x516d, 0x9f99, 0x804b, 0x5499, 0x7b3c, 0x7abf, + /* 0x42 */ + 0x9686, 0x5784, 0x62e2, 0x9647, 0x697c, 0x5a04, 0x6402, 0x7bd3, + 0x6f0f, 0x964b, 0x82a6, 0x5362, 0x9885, 0x5e90, 0x7089, 0x63b3, + 0x5364, 0x864f, 0x9c81, 0x9e93, 0x788c, 0x9732, 0x8def, 0x8d42, + 0x9e7f, 0x6f5e, 0x7984, 0x5f55, 0x9646, 0x622e, 0x9a74, 0x5415, + 0x94dd, 0x4fa3, 0x65c5, 0x5c65, 0x5c61, 0x7f15, 0x8651, 0x6c2f, + 0x5f8b, 0x7387, 0x6ee4, 0x7eff, 0x5ce6, 0x631b, 0x5b6a, 0x6ee6, + 0x5375, 0x4e71, 0x63a0, 0x7565, 0x62a1, 0x8f6e, 0x4f26, 0x4ed1, + 0x6ca6, 0x7eb6, 0x8bba, 0x841d, 0x87ba, 0x7f57, 0x903b, 0x9523, + 0x7ba9, 0x9aa1, 0x88f8, 0x843d, 0x6d1b, 0x9a86, 0x7edc, 0x5988, + 0x9ebb, 0x739b, 0x7801, 0x8682, 0x9a6c, 0x9a82, 0x561b, 0x5417, + 0x57cb, 0x4e70, 0x9ea6, 0x5356, 0x8fc8, 0x8109, 0x7792, 0x9992, + 0x86ee, 0x6ee1, 0x8513, 0x66fc, 0x6162, 0x6f2b, + /* 0x43 */ + 0x8c29, 0x8292, 0x832b, 0x76f2, 0x6c13, 0x5fd9, 0x83bd, 0x732b, + 0x8305, 0x951a, 0x6bdb, 0x77db, 0x94c6, 0x536f, 0x8302, 0x5192, + 0x5e3d, 0x8c8c, 0x8d38, 0x4e48, 0x73ab, 0x679a, 0x6885, 0x9176, + 0x9709, 0x7164, 0x6ca1, 0x7709, 0x5a92, 0x9541, 0x6bcf, 0x7f8e, + 0x6627, 0x5bd0, 0x59b9, 0x5a9a, 0x95e8, 0x95f7, 0x4eec, 0x840c, + 0x8499, 0x6aac, 0x76df, 0x9530, 0x731b, 0x68a6, 0x5b5f, 0x772f, + 0x919a, 0x9761, 0x7cdc, 0x8ff7, 0x8c1c, 0x5f25, 0x7c73, 0x79d8, + 0x89c5, 0x6ccc, 0x871c, 0x5bc6, 0x5e42, 0x68c9, 0x7720, 0x7ef5, + 0x5195, 0x514d, 0x52c9, 0x5a29, 0x7f05, 0x9762, 0x82d7, 0x63cf, + 0x7784, 0x85d0, 0x79d2, 0x6e3a, 0x5e99, 0x5999, 0x8511, 0x706d, + 0x6c11, 0x62bf, 0x76bf, 0x654f, 0x60af, 0x95fd, 0x660e, 0x879f, + 0x9e23, 0x94ed, 0x540d, 0x547d, 0x8c2c, 0x6478, + /* 0x44 */ + 0x6479, 0x8611, 0x6a21, 0x819c, 0x78e8, 0x6469, 0x9b54, 0x62b9, + 0x672b, 0x83ab, 0x58a8, 0x9ed8, 0x6cab, 0x6f20, 0x5bde, 0x964c, + 0x8c0b, 0x725f, 0x67d0, 0x62c7, 0x7261, 0x4ea9, 0x59c6, 0x6bcd, + 0x5893, 0x66ae, 0x5e55, 0x52df, 0x6155, 0x6728, 0x76ee, 0x7766, + 0x7267, 0x7a46, 0x62ff, 0x54ea, 0x5450, 0x94a0, 0x90a3, 0x5a1c, + 0x7eb3, 0x6c16, 0x4e43, 0x5976, 0x8010, 0x5948, 0x5357, 0x7537, + 0x96be, 0x56ca, 0x6320, 0x8111, 0x607c, 0x95f9, 0x6dd6, 0x5462, + 0x9981, 0x5185, 0x5ae9, 0x80fd, 0x59ae, 0x9713, 0x502a, 0x6ce5, + 0x5c3c, 0x62df, 0x4f60, 0x533f, 0x817b, 0x9006, 0x6eba, 0x852b, + 0x62c8, 0x5e74, 0x78be, 0x64b5, 0x637b, 0x5ff5, 0x5a18, 0x917f, + 0x9e1f, 0x5c3f, 0x634f, 0x8042, 0x5b7d, 0x556e, 0x954a, 0x954d, + 0x6d85, 0x60a8, 0x67e0, 0x72de, 0x51dd, 0x5b81, + /* 0x45 */ + 0x62e7, 0x6cde, 0x725b, 0x626d, 0x94ae, 0x7ebd, 0x8113, 0x6d53, + 0x519c, 0x5f04, 0x5974, 0x52aa, 0x6012, 0x5973, 0x6696, 0x8650, + 0x759f, 0x632a, 0x61e6, 0x7cef, 0x8bfa, 0x54e6, 0x6b27, 0x9e25, + 0x6bb4, 0x85d5, 0x5455, 0x5076, 0x6ca4, 0x556a, 0x8db4, 0x722c, + 0x5e15, 0x6015, 0x7436, 0x62cd, 0x6392, 0x724c, 0x5f98, 0x6e43, + 0x6d3e, 0x6500, 0x6f58, 0x76d8, 0x78d0, 0x76fc, 0x7554, 0x5224, + 0x53db, 0x4e53, 0x5e9e, 0x65c1, 0x802a, 0x80d6, 0x629b, 0x5486, + 0x5228, 0x70ae, 0x888d, 0x8dd1, 0x6ce1, 0x5478, 0x80da, 0x57f9, + 0x88f4, 0x8d54, 0x966a, 0x914d, 0x4f69, 0x6c9b, 0x55b7, 0x76c6, + 0x7830, 0x62a8, 0x70f9, 0x6f8e, 0x5f6d, 0x84ec, 0x68da, 0x787c, + 0x7bf7, 0x81a8, 0x670b, 0x9e4f, 0x6367, 0x78b0, 0x576f, 0x7812, + 0x9739, 0x6279, 0x62ab, 0x5288, 0x7435, 0x6bd7, + /* 0x46 */ + 0x5564, 0x813e, 0x75b2, 0x76ae, 0x5339, 0x75de, 0x50fb, 0x5c41, + 0x8b6c, 0x7bc7, 0x504f, 0x7247, 0x9a97, 0x98d8, 0x6f02, 0x74e2, + 0x7968, 0x6487, 0x77a5, 0x62fc, 0x9891, 0x8d2b, 0x54c1, 0x8058, + 0x4e52, 0x576a, 0x82f9, 0x840d, 0x5e73, 0x51ed, 0x74f6, 0x8bc4, + 0x5c4f, 0x5761, 0x6cfc, 0x9887, 0x5a46, 0x7834, 0x9b44, 0x8feb, + 0x7c95, 0x5256, 0x6251, 0x94fa, 0x4ec6, 0x8386, 0x8461, 0x83e9, + 0x84b2, 0x57d4, 0x6734, 0x5703, 0x666e, 0x6d66, 0x8c31, 0x66dd, + 0x7011, 0x671f, 0x6b3a, 0x6816, 0x621a, 0x59bb, 0x4e03, 0x51c4, + 0x6f06, 0x67d2, 0x6c8f, 0x5176, 0x68cb, 0x5947, 0x6b67, 0x7566, + 0x5d0e, 0x8110, 0x9f50, 0x65d7, 0x7948, 0x7941, 0x9a91, 0x8d77, + 0x5c82, 0x4e5e, 0x4f01, 0x542f, 0x5951, 0x780c, 0x5668, 0x6c14, + 0x8fc4, 0x5f03, 0x6c7d, 0x6ce3, 0x8bab, 0x6390, + /* 0x47 */ + 0x6070, 0x6d3d, 0x7275, 0x6266, 0x948e, 0x94c5, 0x5343, 0x8fc1, + 0x7b7e, 0x4edf, 0x8c26, 0x4e7e, 0x9ed4, 0x94b1, 0x94b3, 0x524d, + 0x6f5c, 0x9063, 0x6d45, 0x8c34, 0x5811, 0x5d4c, 0x6b20, 0x6b49, + 0x67aa, 0x545b, 0x8154, 0x7f8c, 0x5899, 0x8537, 0x5f3a, 0x62a2, + 0x6a47, 0x9539, 0x6572, 0x6084, 0x6865, 0x77a7, 0x4e54, 0x4fa8, + 0x5de7, 0x9798, 0x64ac, 0x7fd8, 0x5ced, 0x4fcf, 0x7a8d, 0x5207, + 0x8304, 0x4e14, 0x602f, 0x7a83, 0x94a6, 0x4fb5, 0x4eb2, 0x79e6, + 0x7434, 0x52e4, 0x82b9, 0x64d2, 0x79bd, 0x5bdd, 0x6c81, 0x9752, + 0x8f7b, 0x6c22, 0x503e, 0x537f, 0x6e05, 0x64ce, 0x6674, 0x6c30, + 0x60c5, 0x9877, 0x8bf7, 0x5e86, 0x743c, 0x7a77, 0x79cb, 0x4e18, + 0x90b1, 0x7403, 0x6c42, 0x56da, 0x914b, 0x6cc5, 0x8d8b, 0x533a, + 0x86c6, 0x66f2, 0x8eaf, 0x5c48, 0x9a71, 0x6e20, + /* 0x48 */ + 0x53d6, 0x5a36, 0x9f8b, 0x8da3, 0x53bb, 0x5708, 0x98a7, 0x6743, + 0x919b, 0x6cc9, 0x5168, 0x75ca, 0x62f3, 0x72ac, 0x5238, 0x529d, + 0x7f3a, 0x7094, 0x7638, 0x5374, 0x9e4a, 0x69b7, 0x786e, 0x96c0, + 0x88d9, 0x7fa4, 0x7136, 0x71c3, 0x5189, 0x67d3, 0x74e4, 0x58e4, + 0x6518, 0x56b7, 0x8ba9, 0x9976, 0x6270, 0x7ed5, 0x60f9, 0x70ed, + 0x58ec, 0x4ec1, 0x4eba, 0x5fcd, 0x97e7, 0x4efb, 0x8ba4, 0x5203, + 0x598a, 0x7eab, 0x6254, 0x4ecd, 0x65e5, 0x620e, 0x8338, 0x84c9, + 0x8363, 0x878d, 0x7194, 0x6eb6, 0x5bb9, 0x7ed2, 0x5197, 0x63c9, + 0x67d4, 0x8089, 0x8339, 0x8815, 0x5112, 0x5b7a, 0x5982, 0x8fb1, + 0x4e73, 0x6c5d, 0x5165, 0x8925, 0x8f6f, 0x962e, 0x854a, 0x745e, + 0x9510, 0x95f0, 0x6da6, 0x82e5, 0x5f31, 0x6492, 0x6d12, 0x8428, + 0x816e, 0x9cc3, 0x585e, 0x8d5b, 0x4e09, 0x53c1, + /* 0x49 */ + 0x4f1e, 0x6563, 0x6851, 0x55d3, 0x4e27, 0x6414, 0x9a9a, 0x626b, + 0x5ac2, 0x745f, 0x8272, 0x6da9, 0x68ee, 0x50e7, 0x838e, 0x7802, + 0x6740, 0x5239, 0x6c99, 0x7eb1, 0x50bb, 0x5565, 0x715e, 0x7b5b, + 0x6652, 0x73ca, 0x82eb, 0x6749, 0x5c71, 0x5220, 0x717d, 0x886b, + 0x95ea, 0x9655, 0x64c5, 0x8d61, 0x81b3, 0x5584, 0x6c55, 0x6247, + 0x7f2e, 0x5892, 0x4f24, 0x5546, 0x8d4f, 0x664c, 0x4e0a, 0x5c1a, + 0x88f3, 0x68a2, 0x634e, 0x7a0d, 0x70e7, 0x828d, 0x52fa, 0x97f6, + 0x5c11, 0x54e8, 0x90b5, 0x7ecd, 0x5962, 0x8d4a, 0x86c7, 0x820c, + 0x820d, 0x8d66, 0x6444, 0x5c04, 0x6151, 0x6d89, 0x793e, 0x8bbe, + 0x7837, 0x7533, 0x547b, 0x4f38, 0x8eab, 0x6df1, 0x5a20, 0x7ec5, + 0x795e, 0x6c88, 0x5ba1, 0x5a76, 0x751a, 0x80be, 0x614e, 0x6e17, + 0x58f0, 0x751f, 0x7525, 0x7272, 0x5347, 0x7ef3, + /* 0x4a */ + 0x7701, 0x76db, 0x5269, 0x80dc, 0x5723, 0x5e08, 0x5931, 0x72ee, + 0x65bd, 0x6e7f, 0x8bd7, 0x5c38, 0x8671, 0x5341, 0x77f3, 0x62fe, + 0x65f6, 0x4ec0, 0x98df, 0x8680, 0x5b9e, 0x8bc6, 0x53f2, 0x77e2, + 0x4f7f, 0x5c4e, 0x9a76, 0x59cb, 0x5f0f, 0x793a, 0x58eb, 0x4e16, + 0x67ff, 0x4e8b, 0x62ed, 0x8a93, 0x901d, 0x52bf, 0x662f, 0x55dc, + 0x566c, 0x9002, 0x4ed5, 0x4f8d, 0x91ca, 0x9970, 0x6c0f, 0x5e02, + 0x6043, 0x5ba4, 0x89c6, 0x8bd5, 0x6536, 0x624b, 0x9996, 0x5b88, + 0x5bff, 0x6388, 0x552e, 0x53d7, 0x7626, 0x517d, 0x852c, 0x67a2, + 0x68b3, 0x6b8a, 0x6292, 0x8f93, 0x53d4, 0x8212, 0x6dd1, 0x758f, + 0x4e66, 0x8d4e, 0x5b70, 0x719f, 0x85af, 0x6691, 0x66d9, 0x7f72, + 0x8700, 0x9ecd, 0x9f20, 0x5c5e, 0x672f, 0x8ff0, 0x6811, 0x675f, + 0x620d, 0x7ad6, 0x5885, 0x5eb6, 0x6570, 0x6f31, + /* 0x4b */ + 0x6055, 0x5237, 0x800d, 0x6454, 0x8870, 0x7529, 0x5e05, 0x6813, + 0x62f4, 0x971c, 0x53cc, 0x723d, 0x8c01, 0x6c34, 0x7761, 0x7a0e, + 0x542e, 0x77ac, 0x987a, 0x821c, 0x8bf4, 0x7855, 0x6714, 0x70c1, + 0x65af, 0x6495, 0x5636, 0x601d, 0x79c1, 0x53f8, 0x4e1d, 0x6b7b, + 0x8086, 0x5bfa, 0x55e3, 0x56db, 0x4f3a, 0x4f3c, 0x9972, 0x5df3, + 0x677e, 0x8038, 0x6002, 0x9882, 0x9001, 0x5b8b, 0x8bbc, 0x8bf5, + 0x641c, 0x8258, 0x64de, 0x55fd, 0x82cf, 0x9165, 0x4fd7, 0x7d20, + 0x901f, 0x7c9f, 0x50f3, 0x5851, 0x6eaf, 0x5bbf, 0x8bc9, 0x8083, + 0x9178, 0x849c, 0x7b97, 0x867d, 0x968b, 0x968f, 0x7ee5, 0x9ad3, + 0x788e, 0x5c81, 0x7a57, 0x9042, 0x96a7, 0x795f, 0x5b59, 0x635f, + 0x7b0b, 0x84d1, 0x68ad, 0x5506, 0x7f29, 0x7410, 0x7d22, 0x9501, + 0x6240, 0x584c, 0x4ed6, 0x5b83, 0x5979, 0x5854, + /* 0x4c */ + 0x736d, 0x631e, 0x8e4b, 0x8e0f, 0x80ce, 0x82d4, 0x62ac, 0x53f0, + 0x6cf0, 0x915e, 0x592a, 0x6001, 0x6c70, 0x574d, 0x644a, 0x8d2a, + 0x762b, 0x6ee9, 0x575b, 0x6a80, 0x75f0, 0x6f6d, 0x8c2d, 0x8c08, + 0x5766, 0x6bef, 0x8892, 0x78b3, 0x63a2, 0x53f9, 0x70ad, 0x6c64, + 0x5858, 0x642a, 0x5802, 0x68e0, 0x819b, 0x5510, 0x7cd6, 0x5018, + 0x8eba, 0x6dcc, 0x8d9f, 0x70eb, 0x638f, 0x6d9b, 0x6ed4, 0x7ee6, + 0x8404, 0x6843, 0x9003, 0x6dd8, 0x9676, 0x8ba8, 0x5957, 0x7279, + 0x85e4, 0x817e, 0x75bc, 0x8a8a, 0x68af, 0x5254, 0x8e22, 0x9511, + 0x63d0, 0x9898, 0x8e44, 0x557c, 0x4f53, 0x66ff, 0x568f, 0x60d5, + 0x6d95, 0x5243, 0x5c49, 0x5929, 0x6dfb, 0x586b, 0x7530, 0x751c, + 0x606c, 0x8214, 0x8146, 0x6311, 0x6761, 0x8fe2, 0x773a, 0x8df3, + 0x8d34, 0x94c1, 0x5e16, 0x5385, 0x542c, 0x70c3, + /* 0x4d */ + 0x6c40, 0x5ef7, 0x505c, 0x4ead, 0x5ead, 0x633a, 0x8247, 0x901a, + 0x6850, 0x916e, 0x77b3, 0x540c, 0x94dc, 0x5f64, 0x7ae5, 0x6876, + 0x6345, 0x7b52, 0x7edf, 0x75db, 0x5077, 0x6295, 0x5934, 0x900f, + 0x51f8, 0x79c3, 0x7a81, 0x56fe, 0x5f92, 0x9014, 0x6d82, 0x5c60, + 0x571f, 0x5410, 0x5154, 0x6e4d, 0x56e2, 0x63a8, 0x9893, 0x817f, + 0x8715, 0x892a, 0x9000, 0x541e, 0x5c6f, 0x81c0, 0x62d6, 0x6258, + 0x8131, 0x9e35, 0x9640, 0x9a6e, 0x9a7c, 0x692d, 0x59a5, 0x62d3, + 0x553e, 0x6316, 0x54c7, 0x86d9, 0x6d3c, 0x5a03, 0x74e6, 0x889c, + 0x6b6a, 0x5916, 0x8c4c, 0x5f2f, 0x6e7e, 0x73a9, 0x987d, 0x4e38, + 0x70f7, 0x5b8c, 0x7897, 0x633d, 0x665a, 0x7696, 0x60cb, 0x5b9b, + 0x5a49, 0x4e07, 0x8155, 0x6c6a, 0x738b, 0x4ea1, 0x6789, 0x7f51, + 0x5f80, 0x65fa, 0x671b, 0x5fd8, 0x5984, 0x5a01, + /* 0x4e */ + 0x5dcd, 0x5fae, 0x5371, 0x97e6, 0x8fdd, 0x6845, 0x56f4, 0x552f, + 0x60df, 0x4e3a, 0x6f4d, 0x7ef4, 0x82c7, 0x840e, 0x59d4, 0x4f1f, + 0x4f2a, 0x5c3e, 0x7eac, 0x672a, 0x851a, 0x5473, 0x754f, 0x80c3, + 0x5582, 0x9b4f, 0x4f4d, 0x6e2d, 0x8c13, 0x5c09, 0x6170, 0x536b, + 0x761f, 0x6e29, 0x868a, 0x6587, 0x95fb, 0x7eb9, 0x543b, 0x7a33, + 0x7d0a, 0x95ee, 0x55e1, 0x7fc1, 0x74ee, 0x631d, 0x8717, 0x6da1, + 0x7a9d, 0x6211, 0x65a1, 0x5367, 0x63e1, 0x6c83, 0x5deb, 0x545c, + 0x94a8, 0x4e4c, 0x6c61, 0x8bec, 0x5c4b, 0x65e0, 0x829c, 0x68a7, + 0x543e, 0x5434, 0x6bcb, 0x6b66, 0x4e94, 0x6342, 0x5348, 0x821e, + 0x4f0d, 0x4fae, 0x575e, 0x620a, 0x96fe, 0x6664, 0x7269, 0x52ff, + 0x52a1, 0x609f, 0x8bef, 0x6614, 0x7199, 0x6790, 0x897f, 0x7852, + 0x77fd, 0x6670, 0x563b, 0x5438, 0x9521, 0x727a, + /* 0x4f */ + 0x7a00, 0x606f, 0x5e0c, 0x6089, 0x819d, 0x5915, 0x60dc, 0x7184, + 0x70ef, 0x6eaa, 0x6c50, 0x7280, 0x6a84, 0x88ad, 0x5e2d, 0x4e60, + 0x5ab3, 0x559c, 0x94e3, 0x6d17, 0x7cfb, 0x9699, 0x620f, 0x7ec6, + 0x778e, 0x867e, 0x5323, 0x971e, 0x8f96, 0x6687, 0x5ce1, 0x4fa0, + 0x72ed, 0x4e0b, 0x53a6, 0x590f, 0x5413, 0x6380, 0x9528, 0x5148, + 0x4ed9, 0x9c9c, 0x7ea4, 0x54b8, 0x8d24, 0x8854, 0x8237, 0x95f2, + 0x6d8e, 0x5f26, 0x5acc, 0x663e, 0x9669, 0x73b0, 0x732e, 0x53bf, + 0x817a, 0x9985, 0x7fa1, 0x5baa, 0x9677, 0x9650, 0x7ebf, 0x76f8, + 0x53a2, 0x9576, 0x9999, 0x7bb1, 0x8944, 0x6e58, 0x4e61, 0x7fd4, + 0x7965, 0x8be6, 0x60f3, 0x54cd, 0x4eab, 0x9879, 0x5df7, 0x6a61, + 0x50cf, 0x5411, 0x8c61, 0x8427, 0x785d, 0x9704, 0x524a, 0x54ee, + 0x56a3, 0x9500, 0x6d88, 0x5bb5, 0x6dc6, 0x6653, + /* 0x50 */ + 0x5c0f, 0x5b5d, 0x6821, 0x8096, 0x5578, 0x7b11, 0x6548, 0x6954, + 0x4e9b, 0x6b47, 0x874e, 0x978b, 0x534f, 0x631f, 0x643a, 0x90aa, + 0x659c, 0x80c1, 0x8c10, 0x5199, 0x68b0, 0x5378, 0x87f9, 0x61c8, + 0x6cc4, 0x6cfb, 0x8c22, 0x5c51, 0x85aa, 0x82af, 0x950c, 0x6b23, + 0x8f9b, 0x65b0, 0x5ffb, 0x5fc3, 0x4fe1, 0x8845, 0x661f, 0x8165, + 0x7329, 0x60fa, 0x5174, 0x5211, 0x578b, 0x5f62, 0x90a2, 0x884c, + 0x9192, 0x5e78, 0x674f, 0x6027, 0x59d3, 0x5144, 0x51f6, 0x80f8, + 0x5308, 0x6c79, 0x96c4, 0x718a, 0x4f11, 0x4fee, 0x7f9e, 0x673d, + 0x55c5, 0x9508, 0x79c0, 0x8896, 0x7ee3, 0x589f, 0x620c, 0x9700, + 0x865a, 0x5618, 0x987b, 0x5f90, 0x8bb8, 0x84c4, 0x9157, 0x53d9, + 0x65ed, 0x5e8f, 0x755c, 0x6064, 0x7d6e, 0x5a7f, 0x7eea, 0x7eed, + 0x8f69, 0x55a7, 0x5ba3, 0x60ac, 0x65cb, 0x7384, + /* 0x51 */ + 0x9009, 0x7663, 0x7729, 0x7eda, 0x9774, 0x859b, 0x5b66, 0x7a74, + 0x96ea, 0x8840, 0x52cb, 0x718f, 0x5faa, 0x65ec, 0x8be2, 0x5bfb, + 0x9a6f, 0x5de1, 0x6b89, 0x6c5b, 0x8bad, 0x8baf, 0x900a, 0x8fc5, + 0x538b, 0x62bc, 0x9e26, 0x9e2d, 0x5440, 0x4e2b, 0x82bd, 0x7259, + 0x869c, 0x5d16, 0x8859, 0x6daf, 0x96c5, 0x54d1, 0x4e9a, 0x8bb6, + 0x7109, 0x54bd, 0x9609, 0x70df, 0x6df9, 0x76d0, 0x4e25, 0x7814, + 0x8712, 0x5ca9, 0x5ef6, 0x8a00, 0x989c, 0x960e, 0x708e, 0x6cbf, + 0x5944, 0x63a9, 0x773c, 0x884d, 0x6f14, 0x8273, 0x5830, 0x71d5, + 0x538c, 0x781a, 0x96c1, 0x5501, 0x5f66, 0x7130, 0x5bb4, 0x8c1a, + 0x9a8c, 0x6b83, 0x592e, 0x9e2f, 0x79e7, 0x6768, 0x626c, 0x4f6f, + 0x75a1, 0x7f8a, 0x6d0b, 0x9633, 0x6c27, 0x4ef0, 0x75d2, 0x517b, + 0x6837, 0x6f3e, 0x9080, 0x8170, 0x5996, 0x7476, + /* 0x52 */ + 0x6447, 0x5c27, 0x9065, 0x7a91, 0x8c23, 0x59da, 0x54ac, 0x8200, + 0x836f, 0x8981, 0x8000, 0x6930, 0x564e, 0x8036, 0x7237, 0x91ce, + 0x51b6, 0x4e5f, 0x9875, 0x6396, 0x4e1a, 0x53f6, 0x66f3, 0x814b, + 0x591c, 0x6db2, 0x4e00, 0x58f9, 0x533b, 0x63d6, 0x94f1, 0x4f9d, + 0x4f0a, 0x8863, 0x9890, 0x5937, 0x9057, 0x79fb, 0x4eea, 0x80f0, + 0x7591, 0x6c82, 0x5b9c, 0x59e8, 0x5f5d, 0x6905, 0x8681, 0x501a, + 0x5df2, 0x4e59, 0x77e3, 0x4ee5, 0x827a, 0x6291, 0x6613, 0x9091, + 0x5c79, 0x4ebf, 0x5f79, 0x81c6, 0x9038, 0x8084, 0x75ab, 0x4ea6, + 0x88d4, 0x610f, 0x6bc5, 0x5fc6, 0x4e49, 0x76ca, 0x6ea2, 0x8be3, + 0x8bae, 0x8c0a, 0x8bd1, 0x5f02, 0x7ffc, 0x7fcc, 0x7ece, 0x8335, + 0x836b, 0x56e0, 0x6bb7, 0x97f3, 0x9634, 0x59fb, 0x541f, 0x94f6, + 0x6deb, 0x5bc5, 0x996e, 0x5c39, 0x5f15, 0x9690, + /* 0x53 */ + 0x5370, 0x82f1, 0x6a31, 0x5a74, 0x9e70, 0x5e94, 0x7f28, 0x83b9, + 0x8424, 0x8425, 0x8367, 0x8747, 0x8fce, 0x8d62, 0x76c8, 0x5f71, + 0x9896, 0x786c, 0x6620, 0x54df, 0x62e5, 0x4f63, 0x81c3, 0x75c8, + 0x5eb8, 0x96cd, 0x8e0a, 0x86f9, 0x548f, 0x6cf3, 0x6d8c, 0x6c38, + 0x607f, 0x52c7, 0x7528, 0x5e7d, 0x4f18, 0x60a0, 0x5fe7, 0x5c24, + 0x7531, 0x90ae, 0x94c0, 0x72b9, 0x6cb9, 0x6e38, 0x9149, 0x6709, + 0x53cb, 0x53f3, 0x4f51, 0x91c9, 0x8bf1, 0x53c8, 0x5e7c, 0x8fc2, + 0x6de4, 0x4e8e, 0x76c2, 0x6986, 0x865e, 0x611a, 0x8206, 0x4f59, + 0x4fde, 0x903e, 0x9c7c, 0x6109, 0x6e1d, 0x6e14, 0x9685, 0x4e88, + 0x5a31, 0x96e8, 0x4e0e, 0x5c7f, 0x79b9, 0x5b87, 0x8bed, 0x7fbd, + 0x7389, 0x57df, 0x828b, 0x90c1, 0x5401, 0x9047, 0x55bb, 0x5cea, + 0x5fa1, 0x6108, 0x6b32, 0x72f1, 0x80b2, 0x8a89, + /* 0x54 */ + 0x6d74, 0x5bd3, 0x88d5, 0x9884, 0x8c6b, 0x9a6d, 0x9e33, 0x6e0a, + 0x51a4, 0x5143, 0x57a3, 0x8881, 0x539f, 0x63f4, 0x8f95, 0x56ed, + 0x5458, 0x5706, 0x733f, 0x6e90, 0x7f18, 0x8fdc, 0x82d1, 0x613f, + 0x6028, 0x9662, 0x66f0, 0x7ea6, 0x8d8a, 0x8dc3, 0x94a5, 0x5cb3, + 0x7ca4, 0x6708, 0x60a6, 0x9605, 0x8018, 0x4e91, 0x90e7, 0x5300, + 0x9668, 0x5141, 0x8fd0, 0x8574, 0x915d, 0x6655, 0x97f5, 0x5b55, + 0x531d, 0x7838, 0x6742, 0x683d, 0x54c9, 0x707e, 0x5bb0, 0x8f7d, + 0x518d, 0x5728, 0x54b1, 0x6512, 0x6682, 0x8d5e, 0x8d43, 0x810f, + 0x846c, 0x906d, 0x7cdf, 0x51ff, 0x85fb, 0x67a3, 0x65e9, 0x6fa1, + 0x86a4, 0x8e81, 0x566a, 0x9020, 0x7682, 0x7076, 0x71e5, 0x8d23, + 0x62e9, 0x5219, 0x6cfd, 0x8d3c, 0x600e, 0x589e, 0x618e, 0x66fe, + 0x8d60, 0x624e, 0x55b3, 0x6e23, 0x672d, 0x8f67, + /* 0x55 */ + 0x94e1, 0x95f8, 0x7728, 0x6805, 0x69a8, 0x548b, 0x4e4d, 0x70b8, + 0x8bc8, 0x6458, 0x658b, 0x5b85, 0x7a84, 0x503a, 0x5be8, 0x77bb, + 0x6be1, 0x8a79, 0x7c98, 0x6cbe, 0x76cf, 0x65a9, 0x8f97, 0x5d2d, + 0x5c55, 0x8638, 0x6808, 0x5360, 0x6218, 0x7ad9, 0x6e5b, 0x7efd, + 0x6a1f, 0x7ae0, 0x5f70, 0x6f33, 0x5f20, 0x638c, 0x6da8, 0x6756, + 0x4e08, 0x5e10, 0x8d26, 0x4ed7, 0x80c0, 0x7634, 0x969c, 0x62db, + 0x662d, 0x627e, 0x6cbc, 0x8d75, 0x7167, 0x7f69, 0x5146, 0x8087, + 0x53ec, 0x906e, 0x6298, 0x54f2, 0x86f0, 0x8f99, 0x8005, 0x9517, + 0x8517, 0x8fd9, 0x6d59, 0x73cd, 0x659f, 0x771f, 0x7504, 0x7827, + 0x81fb, 0x8d1e, 0x9488, 0x4fa6, 0x6795, 0x75b9, 0x8bca, 0x9707, + 0x632f, 0x9547, 0x9635, 0x84b8, 0x6323, 0x7741, 0x5f81, 0x72f0, + 0x4e89, 0x6014, 0x6574, 0x62ef, 0x6b63, 0x653f, + /* 0x56 */ + 0x5e27, 0x75c7, 0x90d1, 0x8bc1, 0x829d, 0x679d, 0x652f, 0x5431, + 0x8718, 0x77e5, 0x80a2, 0x8102, 0x6c41, 0x4e4b, 0x7ec7, 0x804c, + 0x76f4, 0x690d, 0x6b96, 0x6267, 0x503c, 0x4f84, 0x5740, 0x6307, + 0x6b62, 0x8dbe, 0x53ea, 0x65e8, 0x7eb8, 0x5fd7, 0x631a, 0x63b7, + 0x81f3, 0x81f4, 0x7f6e, 0x5e1c, 0x5cd9, 0x5236, 0x667a, 0x79e9, + 0x7a1a, 0x8d28, 0x7099, 0x75d4, 0x6ede, 0x6cbb, 0x7a92, 0x4e2d, + 0x76c5, 0x5fe0, 0x949f, 0x8877, 0x7ec8, 0x79cd, 0x80bf, 0x91cd, + 0x4ef2, 0x4f17, 0x821f, 0x5468, 0x5dde, 0x6d32, 0x8bcc, 0x7ca5, + 0x8f74, 0x8098, 0x5e1a, 0x5492, 0x76b1, 0x5b99, 0x663c, 0x9aa4, + 0x73e0, 0x682a, 0x86db, 0x6731, 0x732a, 0x8bf8, 0x8bdb, 0x9010, + 0x7af9, 0x70db, 0x716e, 0x62c4, 0x77a9, 0x5631, 0x4e3b, 0x8457, + 0x67f1, 0x52a9, 0x86c0, 0x8d2e, 0x94f8, 0x7b51, + /* 0x57 */ + 0x4f4f, 0x6ce8, 0x795d, 0x9a7b, 0x6293, 0x722a, 0x62fd, 0x4e13, + 0x7816, 0x8f6c, 0x64b0, 0x8d5a, 0x7bc6, 0x6869, 0x5e84, 0x88c5, + 0x5986, 0x649e, 0x58ee, 0x72b6, 0x690e, 0x9525, 0x8ffd, 0x8d58, + 0x5760, 0x7f00, 0x8c06, 0x51c6, 0x6349, 0x62d9, 0x5353, 0x684c, + 0x7422, 0x8301, 0x914c, 0x5544, 0x7740, 0x707c, 0x6d4a, 0x5179, + 0x54a8, 0x8d44, 0x59ff, 0x6ecb, 0x6dc4, 0x5b5c, 0x7d2b, 0x4ed4, + 0x7c7d, 0x6ed3, 0x5b50, 0x81ea, 0x6e0d, 0x5b57, 0x9b03, 0x68d5, + 0x8e2a, 0x5b97, 0x7efc, 0x603b, 0x7eb5, 0x90b9, 0x8d70, 0x594f, + 0x63cd, 0x79df, 0x8db3, 0x5352, 0x65cf, 0x7956, 0x8bc5, 0x963b, + 0x7ec4, 0x94bb, 0x7e82, 0x5634, 0x9189, 0x6700, 0x7f6a, 0x5c0a, + 0x9075, 0x6628, 0x5de6, 0x4f50, 0x67de, 0x505a, 0x4f5c, 0x5750, + 0x5ea7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x58 */ + 0x4e8d, 0x4e0c, 0x5140, 0x4e10, 0x5eff, 0x5345, 0x4e15, 0x4e98, + 0x4e1e, 0x9b32, 0x5b6c, 0x5669, 0x4e28, 0x79ba, 0x4e3f, 0x5315, + 0x4e47, 0x592d, 0x723b, 0x536e, 0x6c10, 0x56df, 0x80e4, 0x9997, + 0x6bd3, 0x777e, 0x9f17, 0x4e36, 0x4e9f, 0x9f10, 0x4e5c, 0x4e69, + 0x4e93, 0x8288, 0x5b5b, 0x556c, 0x560f, 0x4ec4, 0x538d, 0x539d, + 0x53a3, 0x53a5, 0x53ae, 0x9765, 0x8d5d, 0x531a, 0x53f5, 0x5326, + 0x532e, 0x533e, 0x8d5c, 0x5366, 0x5363, 0x5202, 0x5208, 0x520e, + 0x522d, 0x5233, 0x523f, 0x5240, 0x524c, 0x525e, 0x5261, 0x525c, + 0x84af, 0x527d, 0x5282, 0x5281, 0x5290, 0x5293, 0x5182, 0x7f54, + 0x4ebb, 0x4ec3, 0x4ec9, 0x4ec2, 0x4ee8, 0x4ee1, 0x4eeb, 0x4ede, + 0x4f1b, 0x4ef3, 0x4f22, 0x4f64, 0x4ef5, 0x4f25, 0x4f27, 0x4f09, + 0x4f2b, 0x4f5e, 0x4f67, 0x6538, 0x4f5a, 0x4f5d, + /* 0x59 */ + 0x4f5f, 0x4f57, 0x4f32, 0x4f3d, 0x4f76, 0x4f74, 0x4f91, 0x4f89, + 0x4f83, 0x4f8f, 0x4f7e, 0x4f7b, 0x4faa, 0x4f7c, 0x4fac, 0x4f94, + 0x4fe6, 0x4fe8, 0x4fea, 0x4fc5, 0x4fda, 0x4fe3, 0x4fdc, 0x4fd1, + 0x4fdf, 0x4ff8, 0x5029, 0x504c, 0x4ff3, 0x502c, 0x500f, 0x502e, + 0x502d, 0x4ffe, 0x501c, 0x500c, 0x5025, 0x5028, 0x507e, 0x5043, + 0x5055, 0x5048, 0x504e, 0x506c, 0x507b, 0x50a5, 0x50a7, 0x50a9, + 0x50ba, 0x50d6, 0x5106, 0x50ed, 0x50ec, 0x50e6, 0x50ee, 0x5107, + 0x510b, 0x4edd, 0x6c3d, 0x4f58, 0x4f65, 0x4fce, 0x9fa0, 0x6c46, + 0x7c74, 0x516e, 0x5dfd, 0x9ec9, 0x9998, 0x5181, 0x5914, 0x52f9, + 0x530d, 0x8a07, 0x5310, 0x51eb, 0x5919, 0x5155, 0x4ea0, 0x5156, + 0x4eb3, 0x886e, 0x88a4, 0x4eb5, 0x8114, 0x88d2, 0x7980, 0x5b34, + 0x8803, 0x7fb8, 0x51ab, 0x51b1, 0x51bd, 0x51bc, + /* 0x5a */ + 0x51c7, 0x5196, 0x51a2, 0x51a5, 0x8ba0, 0x8ba6, 0x8ba7, 0x8baa, + 0x8bb4, 0x8bb5, 0x8bb7, 0x8bc2, 0x8bc3, 0x8bcb, 0x8bcf, 0x8bce, + 0x8bd2, 0x8bd3, 0x8bd4, 0x8bd6, 0x8bd8, 0x8bd9, 0x8bdc, 0x8bdf, + 0x8be0, 0x8be4, 0x8be8, 0x8be9, 0x8bee, 0x8bf0, 0x8bf3, 0x8bf6, + 0x8bf9, 0x8bfc, 0x8bff, 0x8c00, 0x8c02, 0x8c04, 0x8c07, 0x8c0c, + 0x8c0f, 0x8c11, 0x8c12, 0x8c14, 0x8c15, 0x8c16, 0x8c19, 0x8c1b, + 0x8c18, 0x8c1d, 0x8c1f, 0x8c20, 0x8c21, 0x8c25, 0x8c27, 0x8c2a, + 0x8c2b, 0x8c2e, 0x8c2f, 0x8c32, 0x8c33, 0x8c35, 0x8c36, 0x5369, + 0x537a, 0x961d, 0x9622, 0x9621, 0x9631, 0x962a, 0x963d, 0x963c, + 0x9642, 0x9649, 0x9654, 0x965f, 0x9667, 0x966c, 0x9672, 0x9674, + 0x9688, 0x968d, 0x9697, 0x96b0, 0x9097, 0x909b, 0x909d, 0x9099, + 0x90ac, 0x90a1, 0x90b4, 0x90b3, 0x90b6, 0x90ba, + /* 0x5b */ + 0x90b8, 0x90b0, 0x90cf, 0x90c5, 0x90be, 0x90d0, 0x90c4, 0x90c7, + 0x90d3, 0x90e6, 0x90e2, 0x90dc, 0x90d7, 0x90db, 0x90eb, 0x90ef, + 0x90fe, 0x9104, 0x9122, 0x911e, 0x9123, 0x9131, 0x912f, 0x9139, + 0x9143, 0x9146, 0x520d, 0x5942, 0x52a2, 0x52ac, 0x52ad, 0x52be, + 0x54ff, 0x52d0, 0x52d6, 0x52f0, 0x53df, 0x71ee, 0x77cd, 0x5ef4, + 0x51f5, 0x51fc, 0x9b2f, 0x53b6, 0x5f01, 0x755a, 0x5def, 0x574c, + 0x57a9, 0x57a1, 0x587e, 0x58bc, 0x58c5, 0x58d1, 0x5729, 0x572c, + 0x572a, 0x5733, 0x5739, 0x572e, 0x572f, 0x575c, 0x573b, 0x5742, + 0x5769, 0x5785, 0x576b, 0x5786, 0x577c, 0x577b, 0x5768, 0x576d, + 0x5776, 0x5773, 0x57ad, 0x57a4, 0x578c, 0x57b2, 0x57cf, 0x57a7, + 0x57b4, 0x5793, 0x57a0, 0x57d5, 0x57d8, 0x57da, 0x57d9, 0x57d2, + 0x57b8, 0x57f4, 0x57ef, 0x57f8, 0x57e4, 0x57dd, + /* 0x5c */ + 0x580b, 0x580d, 0x57fd, 0x57ed, 0x5800, 0x581e, 0x5819, 0x5844, + 0x5820, 0x5865, 0x586c, 0x5881, 0x5889, 0x589a, 0x5880, 0x99a8, + 0x9f19, 0x61ff, 0x8279, 0x827d, 0x827f, 0x828f, 0x828a, 0x82a8, + 0x8284, 0x828e, 0x8291, 0x8297, 0x8299, 0x82ab, 0x82b8, 0x82be, + 0x82b0, 0x82c8, 0x82ca, 0x82e3, 0x8298, 0x82b7, 0x82ae, 0x82cb, + 0x82cc, 0x82c1, 0x82a9, 0x82b4, 0x82a1, 0x82aa, 0x829f, 0x82c4, + 0x82ce, 0x82a4, 0x82e1, 0x8309, 0x82f7, 0x82e4, 0x830f, 0x8307, + 0x82dc, 0x82f4, 0x82d2, 0x82d8, 0x830c, 0x82fb, 0x82d3, 0x8311, + 0x831a, 0x8306, 0x8314, 0x8315, 0x82e0, 0x82d5, 0x831c, 0x8351, + 0x835b, 0x835c, 0x8308, 0x8392, 0x833c, 0x8334, 0x8331, 0x839b, + 0x835e, 0x832f, 0x834f, 0x8347, 0x8343, 0x835f, 0x8340, 0x8317, + 0x8360, 0x832d, 0x833a, 0x8333, 0x8366, 0x8365, + /* 0x5d */ + 0x8368, 0x831b, 0x8369, 0x836c, 0x836a, 0x836d, 0x836e, 0x83b0, + 0x8378, 0x83b3, 0x83b4, 0x83a0, 0x83aa, 0x8393, 0x839c, 0x8385, + 0x837c, 0x83b6, 0x83a9, 0x837d, 0x83b8, 0x837b, 0x8398, 0x839e, + 0x83a8, 0x83ba, 0x83bc, 0x83c1, 0x8401, 0x83e5, 0x83d8, 0x5807, + 0x8418, 0x840b, 0x83dd, 0x83fd, 0x83d6, 0x841c, 0x8438, 0x8411, + 0x8406, 0x83d4, 0x83df, 0x840f, 0x8403, 0x83f8, 0x83f9, 0x83ea, + 0x83c5, 0x83c0, 0x8426, 0x83f0, 0x83e1, 0x845c, 0x8451, 0x845a, + 0x8459, 0x8473, 0x8487, 0x8488, 0x847a, 0x8489, 0x8478, 0x843c, + 0x8446, 0x8469, 0x8476, 0x848c, 0x848e, 0x8431, 0x846d, 0x84c1, + 0x84cd, 0x84d0, 0x84e6, 0x84bd, 0x84d3, 0x84ca, 0x84bf, 0x84ba, + 0x84e0, 0x84a1, 0x84b9, 0x84b4, 0x8497, 0x84e5, 0x84e3, 0x850c, + 0x750d, 0x8538, 0x84f0, 0x8539, 0x851f, 0x853a, + /* 0x5e */ + 0x8556, 0x853b, 0x84ff, 0x84fc, 0x8559, 0x8548, 0x8568, 0x8564, + 0x855e, 0x857a, 0x77a2, 0x8543, 0x8572, 0x857b, 0x85a4, 0x85a8, + 0x8587, 0x858f, 0x8579, 0x85ae, 0x859c, 0x8585, 0x85b9, 0x85b7, + 0x85b0, 0x85d3, 0x85c1, 0x85dc, 0x85ff, 0x8627, 0x8605, 0x8629, + 0x8616, 0x863c, 0x5efe, 0x5f08, 0x593c, 0x5941, 0x8037, 0x5955, + 0x595a, 0x5958, 0x530f, 0x5c22, 0x5c25, 0x5c2c, 0x5c34, 0x624c, + 0x626a, 0x629f, 0x62bb, 0x62ca, 0x62da, 0x62d7, 0x62ee, 0x6322, + 0x62f6, 0x6339, 0x634b, 0x6343, 0x63ad, 0x63f6, 0x6371, 0x637a, + 0x638e, 0x63b4, 0x636d, 0x63ac, 0x638a, 0x6369, 0x63ae, 0x63bc, + 0x63f2, 0x63f8, 0x63e0, 0x63ff, 0x63c4, 0x63de, 0x63ce, 0x6452, + 0x63c6, 0x63be, 0x6445, 0x6441, 0x640b, 0x641b, 0x6420, 0x640c, + 0x6426, 0x6421, 0x645e, 0x6484, 0x646d, 0x6496, + /* 0x5f */ + 0x647a, 0x64b7, 0x64b8, 0x6499, 0x64ba, 0x64c0, 0x64d0, 0x64d7, + 0x64e4, 0x64e2, 0x6509, 0x6525, 0x652e, 0x5f0b, 0x5fd2, 0x7519, + 0x5f11, 0x535f, 0x53f1, 0x53fd, 0x53e9, 0x53e8, 0x53fb, 0x5412, + 0x5416, 0x5406, 0x544b, 0x5452, 0x5453, 0x5454, 0x5456, 0x5443, + 0x5421, 0x5457, 0x5459, 0x5423, 0x5432, 0x5482, 0x5494, 0x5477, + 0x5471, 0x5464, 0x549a, 0x549b, 0x5484, 0x5476, 0x5466, 0x549d, + 0x54d0, 0x54ad, 0x54c2, 0x54b4, 0x54d2, 0x54a7, 0x54a6, 0x54d3, + 0x54d4, 0x5472, 0x54a3, 0x54d5, 0x54bb, 0x54bf, 0x54cc, 0x54d9, + 0x54da, 0x54dc, 0x54a9, 0x54aa, 0x54a4, 0x54dd, 0x54cf, 0x54de, + 0x551b, 0x54e7, 0x5520, 0x54fd, 0x5514, 0x54f3, 0x5522, 0x5523, + 0x550f, 0x5511, 0x5527, 0x552a, 0x5567, 0x558f, 0x55b5, 0x5549, + 0x556d, 0x5541, 0x5555, 0x553f, 0x5550, 0x553c, + /* 0x60 */ + 0x5537, 0x5556, 0x5575, 0x5576, 0x5577, 0x5533, 0x5530, 0x555c, + 0x558b, 0x55d2, 0x5583, 0x55b1, 0x55b9, 0x5588, 0x5581, 0x559f, + 0x557e, 0x55d6, 0x5591, 0x557b, 0x55df, 0x55bd, 0x55be, 0x5594, + 0x5599, 0x55ea, 0x55f7, 0x55c9, 0x561f, 0x55d1, 0x55eb, 0x55ec, + 0x55d4, 0x55e6, 0x55dd, 0x55c4, 0x55ef, 0x55e5, 0x55f2, 0x55f3, + 0x55cc, 0x55cd, 0x55e8, 0x55f5, 0x55e4, 0x8f94, 0x561e, 0x5608, + 0x560c, 0x5601, 0x5624, 0x5623, 0x55fe, 0x5600, 0x5627, 0x562d, + 0x5658, 0x5639, 0x5657, 0x562c, 0x564d, 0x5662, 0x5659, 0x565c, + 0x564c, 0x5654, 0x5686, 0x5664, 0x5671, 0x566b, 0x567b, 0x567c, + 0x5685, 0x5693, 0x56af, 0x56d4, 0x56d7, 0x56dd, 0x56e1, 0x56f5, + 0x56eb, 0x56f9, 0x56ff, 0x5704, 0x570a, 0x5709, 0x571c, 0x5e0f, + 0x5e19, 0x5e14, 0x5e11, 0x5e31, 0x5e3b, 0x5e3c, + /* 0x61 */ + 0x5e37, 0x5e44, 0x5e54, 0x5e5b, 0x5e5e, 0x5e61, 0x5c8c, 0x5c7a, + 0x5c8d, 0x5c90, 0x5c96, 0x5c88, 0x5c98, 0x5c99, 0x5c91, 0x5c9a, + 0x5c9c, 0x5cb5, 0x5ca2, 0x5cbd, 0x5cac, 0x5cab, 0x5cb1, 0x5ca3, + 0x5cc1, 0x5cb7, 0x5cc4, 0x5cd2, 0x5ce4, 0x5ccb, 0x5ce5, 0x5d02, + 0x5d03, 0x5d27, 0x5d26, 0x5d2e, 0x5d24, 0x5d1e, 0x5d06, 0x5d1b, + 0x5d58, 0x5d3e, 0x5d34, 0x5d3d, 0x5d6c, 0x5d5b, 0x5d6f, 0x5d5d, + 0x5d6b, 0x5d4b, 0x5d4a, 0x5d69, 0x5d74, 0x5d82, 0x5d99, 0x5d9d, + 0x8c73, 0x5db7, 0x5dc5, 0x5f73, 0x5f77, 0x5f82, 0x5f87, 0x5f89, + 0x5f8c, 0x5f95, 0x5f99, 0x5f9c, 0x5fa8, 0x5fad, 0x5fb5, 0x5fbc, + 0x8862, 0x5f61, 0x72ad, 0x72b0, 0x72b4, 0x72b7, 0x72b8, 0x72c3, + 0x72c1, 0x72ce, 0x72cd, 0x72d2, 0x72e8, 0x72ef, 0x72e9, 0x72f2, + 0x72f4, 0x72f7, 0x7301, 0x72f3, 0x7303, 0x72fa, + /* 0x62 */ + 0x72fb, 0x7317, 0x7313, 0x7321, 0x730a, 0x731e, 0x731d, 0x7315, + 0x7322, 0x7339, 0x7325, 0x732c, 0x7338, 0x7331, 0x7350, 0x734d, + 0x7357, 0x7360, 0x736c, 0x736f, 0x737e, 0x821b, 0x5925, 0x98e7, + 0x5924, 0x5902, 0x9963, 0x9967, 0x9968, 0x9969, 0x996a, 0x996b, + 0x996c, 0x9974, 0x9977, 0x997d, 0x9980, 0x9984, 0x9987, 0x998a, + 0x998d, 0x9990, 0x9991, 0x9993, 0x9994, 0x9995, 0x5e80, 0x5e91, + 0x5e8b, 0x5e96, 0x5ea5, 0x5ea0, 0x5eb9, 0x5eb5, 0x5ebe, 0x5eb3, + 0x8d53, 0x5ed2, 0x5ed1, 0x5edb, 0x5ee8, 0x5eea, 0x81ba, 0x5fc4, + 0x5fc9, 0x5fd6, 0x5fcf, 0x6003, 0x5fee, 0x6004, 0x5fe1, 0x5fe4, + 0x5ffe, 0x6005, 0x6006, 0x5fea, 0x5fed, 0x5ff8, 0x6019, 0x6035, + 0x6026, 0x601b, 0x600f, 0x600d, 0x6029, 0x602b, 0x600a, 0x603f, + 0x6021, 0x6078, 0x6079, 0x607b, 0x607a, 0x6042, + /* 0x63 */ + 0x606a, 0x607d, 0x6096, 0x609a, 0x60ad, 0x609d, 0x6083, 0x6092, + 0x608c, 0x609b, 0x60ec, 0x60bb, 0x60b1, 0x60dd, 0x60d8, 0x60c6, + 0x60da, 0x60b4, 0x6120, 0x6126, 0x6115, 0x6123, 0x60f4, 0x6100, + 0x610e, 0x612b, 0x614a, 0x6175, 0x61ac, 0x6194, 0x61a7, 0x61b7, + 0x61d4, 0x61f5, 0x5fdd, 0x96b3, 0x95e9, 0x95eb, 0x95f1, 0x95f3, + 0x95f5, 0x95f6, 0x95fc, 0x95fe, 0x9603, 0x9604, 0x9606, 0x9608, + 0x960a, 0x960b, 0x960c, 0x960d, 0x960f, 0x9612, 0x9615, 0x9616, + 0x9617, 0x9619, 0x961a, 0x4e2c, 0x723f, 0x6215, 0x6c35, 0x6c54, + 0x6c5c, 0x6c4a, 0x6ca3, 0x6c85, 0x6c90, 0x6c94, 0x6c8c, 0x6c68, + 0x6c69, 0x6c74, 0x6c76, 0x6c86, 0x6ca9, 0x6cd0, 0x6cd4, 0x6cad, + 0x6cf7, 0x6cf8, 0x6cf1, 0x6cd7, 0x6cb2, 0x6ce0, 0x6cd6, 0x6cfa, + 0x6ceb, 0x6cee, 0x6cb1, 0x6cd3, 0x6cef, 0x6cfe, + /* 0x64 */ + 0x6d39, 0x6d27, 0x6d0c, 0x6d43, 0x6d48, 0x6d07, 0x6d04, 0x6d19, + 0x6d0e, 0x6d2b, 0x6d4d, 0x6d2e, 0x6d35, 0x6d1a, 0x6d4f, 0x6d52, + 0x6d54, 0x6d33, 0x6d91, 0x6d6f, 0x6d9e, 0x6da0, 0x6d5e, 0x6d93, + 0x6d94, 0x6d5c, 0x6d60, 0x6d7c, 0x6d63, 0x6e1a, 0x6dc7, 0x6dc5, + 0x6dde, 0x6e0e, 0x6dbf, 0x6de0, 0x6e11, 0x6de6, 0x6ddd, 0x6dd9, + 0x6e16, 0x6dab, 0x6e0c, 0x6dae, 0x6e2b, 0x6e6e, 0x6e4e, 0x6e6b, + 0x6eb2, 0x6e5f, 0x6e86, 0x6e53, 0x6e54, 0x6e32, 0x6e25, 0x6e44, + 0x6edf, 0x6eb1, 0x6e98, 0x6ee0, 0x6f2d, 0x6ee2, 0x6ea5, 0x6ea7, + 0x6ebd, 0x6ebb, 0x6eb7, 0x6ed7, 0x6eb4, 0x6ecf, 0x6e8f, 0x6ec2, + 0x6e9f, 0x6f62, 0x6f46, 0x6f47, 0x6f24, 0x6f15, 0x6ef9, 0x6f2f, + 0x6f36, 0x6f4b, 0x6f74, 0x6f2a, 0x6f09, 0x6f29, 0x6f89, 0x6f8d, + 0x6f8c, 0x6f78, 0x6f72, 0x6f7c, 0x6f7a, 0x6fd1, + /* 0x65 */ + 0x6fc9, 0x6fa7, 0x6fb9, 0x6fb6, 0x6fc2, 0x6fe1, 0x6fee, 0x6fde, + 0x6fe0, 0x6fef, 0x701a, 0x7023, 0x701b, 0x7039, 0x7035, 0x704f, + 0x705e, 0x5b80, 0x5b84, 0x5b95, 0x5b93, 0x5ba5, 0x5bb8, 0x752f, + 0x9a9e, 0x6434, 0x5be4, 0x5bee, 0x8930, 0x5bf0, 0x8e47, 0x8b07, + 0x8fb6, 0x8fd3, 0x8fd5, 0x8fe5, 0x8fee, 0x8fe4, 0x8fe9, 0x8fe6, + 0x8ff3, 0x8fe8, 0x9005, 0x9004, 0x900b, 0x9026, 0x9011, 0x900d, + 0x9016, 0x9021, 0x9035, 0x9036, 0x902d, 0x902f, 0x9044, 0x9051, + 0x9052, 0x9050, 0x9068, 0x9058, 0x9062, 0x905b, 0x66b9, 0x9074, + 0x907d, 0x9082, 0x9088, 0x9083, 0x908b, 0x5f50, 0x5f57, 0x5f56, + 0x5f58, 0x5c3b, 0x54ab, 0x5c50, 0x5c59, 0x5b71, 0x5c63, 0x5c66, + 0x7fbc, 0x5f2a, 0x5f29, 0x5f2d, 0x8274, 0x5f3c, 0x9b3b, 0x5c6e, + 0x5981, 0x5983, 0x598d, 0x59a9, 0x59aa, 0x59a3, + /* 0x66 */ + 0x5997, 0x59ca, 0x59ab, 0x599e, 0x59a4, 0x59d2, 0x59b2, 0x59af, + 0x59d7, 0x59be, 0x5a05, 0x5a06, 0x59dd, 0x5a08, 0x59e3, 0x59d8, + 0x59f9, 0x5a0c, 0x5a09, 0x5a32, 0x5a34, 0x5a11, 0x5a23, 0x5a13, + 0x5a40, 0x5a67, 0x5a4a, 0x5a55, 0x5a3c, 0x5a62, 0x5a75, 0x80ec, + 0x5aaa, 0x5a9b, 0x5a77, 0x5a7a, 0x5abe, 0x5aeb, 0x5ab2, 0x5ad2, + 0x5ad4, 0x5ab8, 0x5ae0, 0x5ae3, 0x5af1, 0x5ad6, 0x5ae6, 0x5ad8, + 0x5adc, 0x5b09, 0x5b17, 0x5b16, 0x5b32, 0x5b37, 0x5b40, 0x5c15, + 0x5c1c, 0x5b5a, 0x5b65, 0x5b73, 0x5b51, 0x5b53, 0x5b62, 0x9a75, + 0x9a77, 0x9a78, 0x9a7a, 0x9a7f, 0x9a7d, 0x9a80, 0x9a81, 0x9a85, + 0x9a88, 0x9a8a, 0x9a90, 0x9a92, 0x9a93, 0x9a96, 0x9a98, 0x9a9b, + 0x9a9c, 0x9a9d, 0x9a9f, 0x9aa0, 0x9aa2, 0x9aa3, 0x9aa5, 0x9aa7, + 0x7e9f, 0x7ea1, 0x7ea3, 0x7ea5, 0x7ea8, 0x7ea9, + /* 0x67 */ + 0x7ead, 0x7eb0, 0x7ebe, 0x7ec0, 0x7ec1, 0x7ec2, 0x7ec9, 0x7ecb, + 0x7ecc, 0x7ed0, 0x7ed4, 0x7ed7, 0x7edb, 0x7ee0, 0x7ee1, 0x7ee8, + 0x7eeb, 0x7eee, 0x7eef, 0x7ef1, 0x7ef2, 0x7f0d, 0x7ef6, 0x7efa, + 0x7efb, 0x7efe, 0x7f01, 0x7f02, 0x7f03, 0x7f07, 0x7f08, 0x7f0b, + 0x7f0c, 0x7f0f, 0x7f11, 0x7f12, 0x7f17, 0x7f19, 0x7f1c, 0x7f1b, + 0x7f1f, 0x7f21, 0x7f22, 0x7f23, 0x7f24, 0x7f25, 0x7f26, 0x7f27, + 0x7f2a, 0x7f2b, 0x7f2c, 0x7f2d, 0x7f2f, 0x7f30, 0x7f31, 0x7f32, + 0x7f33, 0x7f35, 0x5e7a, 0x757f, 0x5ddb, 0x753e, 0x9095, 0x738e, + 0x7391, 0x73ae, 0x73a2, 0x739f, 0x73cf, 0x73c2, 0x73d1, 0x73b7, + 0x73b3, 0x73c0, 0x73c9, 0x73c8, 0x73e5, 0x73d9, 0x987c, 0x740a, + 0x73e9, 0x73e7, 0x73de, 0x73ba, 0x73f2, 0x740f, 0x742a, 0x745b, + 0x7426, 0x7425, 0x7428, 0x7430, 0x742e, 0x742c, + /* 0x68 */ + 0x741b, 0x741a, 0x7441, 0x745c, 0x7457, 0x7455, 0x7459, 0x7477, + 0x746d, 0x747e, 0x749c, 0x748e, 0x7480, 0x7481, 0x7487, 0x748b, + 0x749e, 0x74a8, 0x74a9, 0x7490, 0x74a7, 0x74d2, 0x74ba, 0x97ea, + 0x97eb, 0x97ec, 0x674c, 0x6753, 0x675e, 0x6748, 0x6769, 0x67a5, + 0x6787, 0x676a, 0x6773, 0x6798, 0x67a7, 0x6775, 0x67a8, 0x679e, + 0x67ad, 0x678b, 0x6777, 0x677c, 0x67f0, 0x6809, 0x67d8, 0x680a, + 0x67e9, 0x67b0, 0x680c, 0x67d9, 0x67b5, 0x67da, 0x67b3, 0x67dd, + 0x6800, 0x67c3, 0x67b8, 0x67e2, 0x680e, 0x67c1, 0x67fd, 0x6832, + 0x6833, 0x6860, 0x6861, 0x684e, 0x6862, 0x6844, 0x6864, 0x6883, + 0x681d, 0x6855, 0x6866, 0x6841, 0x6867, 0x6840, 0x683e, 0x684a, + 0x6849, 0x6829, 0x68b5, 0x688f, 0x6874, 0x6877, 0x6893, 0x686b, + 0x68c2, 0x696e, 0x68fc, 0x691f, 0x6920, 0x68f9, + /* 0x69 */ + 0x6924, 0x68f0, 0x690b, 0x6901, 0x6957, 0x68e3, 0x6910, 0x6971, + 0x6939, 0x6960, 0x6942, 0x695d, 0x6984, 0x696b, 0x6980, 0x6998, + 0x6978, 0x6934, 0x69cc, 0x6987, 0x6988, 0x69ce, 0x6989, 0x6966, + 0x6963, 0x6979, 0x699b, 0x69a7, 0x69bb, 0x69ab, 0x69ad, 0x69d4, + 0x69b1, 0x69c1, 0x69ca, 0x69df, 0x6995, 0x69e0, 0x698d, 0x69ff, + 0x6a2f, 0x69ed, 0x6a17, 0x6a18, 0x6a65, 0x69f2, 0x6a44, 0x6a3e, + 0x6aa0, 0x6a50, 0x6a5b, 0x6a35, 0x6a8e, 0x6a79, 0x6a3d, 0x6a28, + 0x6a58, 0x6a7c, 0x6a91, 0x6a90, 0x6aa9, 0x6a97, 0x6aab, 0x7337, + 0x7352, 0x6b81, 0x6b82, 0x6b87, 0x6b84, 0x6b92, 0x6b93, 0x6b8d, + 0x6b9a, 0x6b9b, 0x6ba1, 0x6baa, 0x8f6b, 0x8f6d, 0x8f71, 0x8f72, + 0x8f73, 0x8f75, 0x8f76, 0x8f78, 0x8f77, 0x8f79, 0x8f7a, 0x8f7c, + 0x8f7e, 0x8f81, 0x8f82, 0x8f84, 0x8f87, 0x8f8b, + /* 0x6a */ + 0x8f8d, 0x8f8e, 0x8f8f, 0x8f98, 0x8f9a, 0x8ece, 0x620b, 0x6217, + 0x621b, 0x621f, 0x6222, 0x6221, 0x6225, 0x6224, 0x622c, 0x81e7, + 0x74ef, 0x74f4, 0x74ff, 0x750f, 0x7511, 0x7513, 0x6534, 0x65ee, + 0x65ef, 0x65f0, 0x660a, 0x6619, 0x6772, 0x6603, 0x6615, 0x6600, + 0x7085, 0x66f7, 0x661d, 0x6634, 0x6631, 0x6636, 0x6635, 0x8006, + 0x665f, 0x6654, 0x6641, 0x664f, 0x6656, 0x6661, 0x6657, 0x6677, + 0x6684, 0x668c, 0x66a7, 0x669d, 0x66be, 0x66db, 0x66dc, 0x66e6, + 0x66e9, 0x8d32, 0x8d33, 0x8d36, 0x8d3b, 0x8d3d, 0x8d40, 0x8d45, + 0x8d46, 0x8d48, 0x8d49, 0x8d47, 0x8d4d, 0x8d55, 0x8d59, 0x89c7, + 0x89ca, 0x89cb, 0x89cc, 0x89ce, 0x89cf, 0x89d0, 0x89d1, 0x726e, + 0x729f, 0x725d, 0x7266, 0x726f, 0x727e, 0x727f, 0x7284, 0x728b, + 0x728d, 0x728f, 0x7292, 0x6308, 0x6332, 0x63b0, + /* 0x6b */ + 0x643f, 0x64d8, 0x8004, 0x6bea, 0x6bf3, 0x6bfd, 0x6bf5, 0x6bf9, + 0x6c05, 0x6c07, 0x6c06, 0x6c0d, 0x6c15, 0x6c18, 0x6c19, 0x6c1a, + 0x6c21, 0x6c29, 0x6c24, 0x6c2a, 0x6c32, 0x6535, 0x6555, 0x656b, + 0x724d, 0x7252, 0x7256, 0x7230, 0x8662, 0x5216, 0x809f, 0x809c, + 0x8093, 0x80bc, 0x670a, 0x80bd, 0x80b1, 0x80ab, 0x80ad, 0x80b4, + 0x80b7, 0x80e7, 0x80e8, 0x80e9, 0x80ea, 0x80db, 0x80c2, 0x80c4, + 0x80d9, 0x80cd, 0x80d7, 0x6710, 0x80dd, 0x80eb, 0x80f1, 0x80f4, + 0x80ed, 0x810d, 0x810e, 0x80f2, 0x80fc, 0x6715, 0x8112, 0x8c5a, + 0x8136, 0x811e, 0x812c, 0x8118, 0x8132, 0x8148, 0x814c, 0x8153, + 0x8174, 0x8159, 0x815a, 0x8171, 0x8160, 0x8169, 0x817c, 0x817d, + 0x816d, 0x8167, 0x584d, 0x5ab5, 0x8188, 0x8182, 0x8191, 0x6ed5, + 0x81a3, 0x81aa, 0x81cc, 0x6726, 0x81ca, 0x81bb, + /* 0x6c */ + 0x81c1, 0x81a6, 0x6b24, 0x6b37, 0x6b39, 0x6b43, 0x6b46, 0x6b59, + 0x98d1, 0x98d2, 0x98d3, 0x98d5, 0x98d9, 0x98da, 0x6bb3, 0x5f40, + 0x6bc2, 0x89f3, 0x6590, 0x9f51, 0x6593, 0x65bc, 0x65c6, 0x65c4, + 0x65c3, 0x65cc, 0x65ce, 0x65d2, 0x65d6, 0x7080, 0x709c, 0x7096, + 0x709d, 0x70bb, 0x70c0, 0x70b7, 0x70ab, 0x70b1, 0x70e8, 0x70ca, + 0x7110, 0x7113, 0x7116, 0x712f, 0x7131, 0x7173, 0x715c, 0x7168, + 0x7145, 0x7172, 0x714a, 0x7178, 0x717a, 0x7198, 0x71b3, 0x71b5, + 0x71a8, 0x71a0, 0x71e0, 0x71d4, 0x71e7, 0x71f9, 0x721d, 0x7228, + 0x706c, 0x7118, 0x7166, 0x71b9, 0x623e, 0x623d, 0x6243, 0x6248, + 0x6249, 0x793b, 0x7940, 0x7946, 0x7949, 0x795b, 0x795c, 0x7953, + 0x795a, 0x7962, 0x7957, 0x7960, 0x796f, 0x7967, 0x797a, 0x7985, + 0x798a, 0x799a, 0x79a7, 0x79b3, 0x5fd1, 0x5fd0, + /* 0x6d */ + 0x603c, 0x605d, 0x605a, 0x6067, 0x6041, 0x6059, 0x6063, 0x60ab, + 0x6106, 0x610d, 0x615d, 0x61a9, 0x619d, 0x61cb, 0x61d1, 0x6206, + 0x8080, 0x807f, 0x6c93, 0x6cf6, 0x6dfc, 0x77f6, 0x77f8, 0x7800, + 0x7809, 0x7817, 0x7818, 0x7811, 0x65ab, 0x782d, 0x781c, 0x781d, + 0x7839, 0x783a, 0x783b, 0x781f, 0x783c, 0x7825, 0x782c, 0x7823, + 0x7829, 0x784e, 0x786d, 0x7856, 0x7857, 0x7826, 0x7850, 0x7847, + 0x784c, 0x786a, 0x789b, 0x7893, 0x789a, 0x7887, 0x789c, 0x78a1, + 0x78a3, 0x78b2, 0x78b9, 0x78a5, 0x78d4, 0x78d9, 0x78c9, 0x78ec, + 0x78f2, 0x7905, 0x78f4, 0x7913, 0x7924, 0x791e, 0x7934, 0x9f9b, + 0x9ef9, 0x9efb, 0x9efc, 0x76f1, 0x7704, 0x770d, 0x76f9, 0x7707, + 0x7708, 0x771a, 0x7722, 0x7719, 0x772d, 0x7726, 0x7735, 0x7738, + 0x7750, 0x7751, 0x7747, 0x7743, 0x775a, 0x7768, + /* 0x6e */ + 0x7762, 0x7765, 0x777f, 0x778d, 0x777d, 0x7780, 0x778c, 0x7791, + 0x779f, 0x77a0, 0x77b0, 0x77b5, 0x77bd, 0x753a, 0x7540, 0x754e, + 0x754b, 0x7548, 0x755b, 0x7572, 0x7579, 0x7583, 0x7f58, 0x7f61, + 0x7f5f, 0x8a48, 0x7f68, 0x7f74, 0x7f71, 0x7f79, 0x7f81, 0x7f7e, + 0x76cd, 0x76e5, 0x8832, 0x9485, 0x9486, 0x9487, 0x948b, 0x948a, + 0x948c, 0x948d, 0x948f, 0x9490, 0x9494, 0x9497, 0x9495, 0x949a, + 0x949b, 0x949c, 0x94a3, 0x94a4, 0x94ab, 0x94aa, 0x94ad, 0x94ac, + 0x94af, 0x94b0, 0x94b2, 0x94b4, 0x94b6, 0x94b7, 0x94b8, 0x94b9, + 0x94ba, 0x94bc, 0x94bd, 0x94bf, 0x94c4, 0x94c8, 0x94c9, 0x94ca, + 0x94cb, 0x94cc, 0x94cd, 0x94ce, 0x94d0, 0x94d1, 0x94d2, 0x94d5, + 0x94d6, 0x94d7, 0x94d9, 0x94d8, 0x94db, 0x94de, 0x94df, 0x94e0, + 0x94e2, 0x94e4, 0x94e5, 0x94e7, 0x94e8, 0x94ea, + /* 0x6f */ + 0x94e9, 0x94eb, 0x94ee, 0x94ef, 0x94f3, 0x94f4, 0x94f5, 0x94f7, + 0x94f9, 0x94fc, 0x94fd, 0x94ff, 0x9503, 0x9502, 0x9506, 0x9507, + 0x9509, 0x950a, 0x950d, 0x950e, 0x950f, 0x9512, 0x9513, 0x9514, + 0x9515, 0x9516, 0x9518, 0x951b, 0x951d, 0x951e, 0x951f, 0x9522, + 0x952a, 0x952b, 0x9529, 0x952c, 0x9531, 0x9532, 0x9534, 0x9536, + 0x9537, 0x9538, 0x953c, 0x953e, 0x953f, 0x9542, 0x9535, 0x9544, + 0x9545, 0x9546, 0x9549, 0x954c, 0x954e, 0x954f, 0x9552, 0x9553, + 0x9554, 0x9556, 0x9557, 0x9558, 0x9559, 0x955b, 0x955e, 0x955f, + 0x955d, 0x9561, 0x9562, 0x9564, 0x9565, 0x9566, 0x9567, 0x9568, + 0x9569, 0x956a, 0x956b, 0x956c, 0x956f, 0x9571, 0x9572, 0x9573, + 0x953a, 0x77e7, 0x77ec, 0x96c9, 0x79d5, 0x79ed, 0x79e3, 0x79eb, + 0x7a06, 0x5d47, 0x7a03, 0x7a02, 0x7a1e, 0x7a14, + /* 0x70 */ + 0x7a39, 0x7a37, 0x7a51, 0x9ecf, 0x99a5, 0x7a70, 0x7688, 0x768e, + 0x7693, 0x7699, 0x76a4, 0x74de, 0x74e0, 0x752c, 0x9e20, 0x9e22, + 0x9e28, 0x9e29, 0x9e2a, 0x9e2b, 0x9e2c, 0x9e32, 0x9e31, 0x9e36, + 0x9e38, 0x9e37, 0x9e39, 0x9e3a, 0x9e3e, 0x9e41, 0x9e42, 0x9e44, + 0x9e46, 0x9e47, 0x9e48, 0x9e49, 0x9e4b, 0x9e4c, 0x9e4e, 0x9e51, + 0x9e55, 0x9e57, 0x9e5a, 0x9e5b, 0x9e5c, 0x9e5e, 0x9e63, 0x9e66, + 0x9e67, 0x9e68, 0x9e69, 0x9e6a, 0x9e6b, 0x9e6c, 0x9e71, 0x9e6d, + 0x9e73, 0x7592, 0x7594, 0x7596, 0x75a0, 0x759d, 0x75ac, 0x75a3, + 0x75b3, 0x75b4, 0x75b8, 0x75c4, 0x75b1, 0x75b0, 0x75c3, 0x75c2, + 0x75d6, 0x75cd, 0x75e3, 0x75e8, 0x75e6, 0x75e4, 0x75eb, 0x75e7, + 0x7603, 0x75f1, 0x75fc, 0x75ff, 0x7610, 0x7600, 0x7605, 0x760c, + 0x7617, 0x760a, 0x7625, 0x7618, 0x7615, 0x7619, + /* 0x71 */ + 0x761b, 0x763c, 0x7622, 0x7620, 0x7640, 0x762d, 0x7630, 0x763f, + 0x7635, 0x7643, 0x763e, 0x7633, 0x764d, 0x765e, 0x7654, 0x765c, + 0x7656, 0x766b, 0x766f, 0x7fca, 0x7ae6, 0x7a78, 0x7a79, 0x7a80, + 0x7a86, 0x7a88, 0x7a95, 0x7aa6, 0x7aa0, 0x7aac, 0x7aa8, 0x7aad, + 0x7ab3, 0x8864, 0x8869, 0x8872, 0x887d, 0x887f, 0x8882, 0x88a2, + 0x88c6, 0x88b7, 0x88bc, 0x88c9, 0x88e2, 0x88ce, 0x88e3, 0x88e5, + 0x88f1, 0x891a, 0x88fc, 0x88e8, 0x88fe, 0x88f0, 0x8921, 0x8919, + 0x8913, 0x891b, 0x890a, 0x8934, 0x892b, 0x8936, 0x8941, 0x8966, + 0x897b, 0x758b, 0x80e5, 0x76b2, 0x76b4, 0x77dc, 0x8012, 0x8014, + 0x8016, 0x801c, 0x8020, 0x8022, 0x8025, 0x8026, 0x8027, 0x8029, + 0x8028, 0x8031, 0x800b, 0x8035, 0x8043, 0x8046, 0x804d, 0x8052, + 0x8069, 0x8071, 0x8983, 0x9878, 0x9880, 0x9883, + /* 0x72 */ + 0x9889, 0x988c, 0x988d, 0x988f, 0x9894, 0x989a, 0x989b, 0x989e, + 0x989f, 0x98a1, 0x98a2, 0x98a5, 0x98a6, 0x864d, 0x8654, 0x866c, + 0x866e, 0x867f, 0x867a, 0x867c, 0x867b, 0x86a8, 0x868d, 0x868b, + 0x86ac, 0x869d, 0x86a7, 0x86a3, 0x86aa, 0x8693, 0x86a9, 0x86b6, + 0x86c4, 0x86b5, 0x86ce, 0x86b0, 0x86ba, 0x86b1, 0x86af, 0x86c9, + 0x86cf, 0x86b4, 0x86e9, 0x86f1, 0x86f2, 0x86ed, 0x86f3, 0x86d0, + 0x8713, 0x86de, 0x86f4, 0x86df, 0x86d8, 0x86d1, 0x8703, 0x8707, + 0x86f8, 0x8708, 0x870a, 0x870d, 0x8709, 0x8723, 0x873b, 0x871e, + 0x8725, 0x872e, 0x871a, 0x873e, 0x8748, 0x8734, 0x8731, 0x8729, + 0x8737, 0x873f, 0x8782, 0x8722, 0x877d, 0x877e, 0x877b, 0x8760, + 0x8770, 0x874c, 0x876e, 0x878b, 0x8753, 0x8763, 0x877c, 0x8764, + 0x8759, 0x8765, 0x8793, 0x87af, 0x87a8, 0x87d2, + /* 0x73 */ + 0x87c6, 0x8788, 0x8785, 0x87ad, 0x8797, 0x8783, 0x87ab, 0x87e5, + 0x87ac, 0x87b5, 0x87b3, 0x87cb, 0x87d3, 0x87bd, 0x87d1, 0x87c0, + 0x87ca, 0x87db, 0x87ea, 0x87e0, 0x87ee, 0x8816, 0x8813, 0x87fe, + 0x880a, 0x881b, 0x8821, 0x8839, 0x883c, 0x7f36, 0x7f42, 0x7f44, + 0x7f45, 0x8210, 0x7afa, 0x7afd, 0x7b08, 0x7b03, 0x7b04, 0x7b15, + 0x7b0a, 0x7b2b, 0x7b0f, 0x7b47, 0x7b38, 0x7b2a, 0x7b19, 0x7b2e, + 0x7b31, 0x7b20, 0x7b25, 0x7b24, 0x7b33, 0x7b3e, 0x7b1e, 0x7b58, + 0x7b5a, 0x7b45, 0x7b75, 0x7b4c, 0x7b5d, 0x7b60, 0x7b6e, 0x7b7b, + 0x7b62, 0x7b72, 0x7b71, 0x7b90, 0x7ba6, 0x7ba7, 0x7bb8, 0x7bac, + 0x7b9d, 0x7ba8, 0x7b85, 0x7baa, 0x7b9c, 0x7ba2, 0x7bab, 0x7bb4, + 0x7bd1, 0x7bc1, 0x7bcc, 0x7bdd, 0x7bda, 0x7be5, 0x7be6, 0x7bea, + 0x7c0c, 0x7bfe, 0x7bfc, 0x7c0f, 0x7c16, 0x7c0b, + /* 0x74 */ + 0x7c1f, 0x7c2a, 0x7c26, 0x7c38, 0x7c41, 0x7c40, 0x81fe, 0x8201, + 0x8202, 0x8204, 0x81ec, 0x8844, 0x8221, 0x8222, 0x8223, 0x822d, + 0x822f, 0x8228, 0x822b, 0x8238, 0x823b, 0x8233, 0x8234, 0x823e, + 0x8244, 0x8249, 0x824b, 0x824f, 0x825a, 0x825f, 0x8268, 0x887e, + 0x8885, 0x8888, 0x88d8, 0x88df, 0x895e, 0x7f9d, 0x7f9f, 0x7fa7, + 0x7faf, 0x7fb0, 0x7fb2, 0x7c7c, 0x6549, 0x7c91, 0x7c9d, 0x7c9c, + 0x7c9e, 0x7ca2, 0x7cb2, 0x7cbc, 0x7cbd, 0x7cc1, 0x7cc7, 0x7ccc, + 0x7ccd, 0x7cc8, 0x7cc5, 0x7cd7, 0x7ce8, 0x826e, 0x66a8, 0x7fbf, + 0x7fce, 0x7fd5, 0x7fe5, 0x7fe1, 0x7fe6, 0x7fe9, 0x7fee, 0x7ff3, + 0x7cf8, 0x7d77, 0x7da6, 0x7dae, 0x7e47, 0x7e9b, 0x9eb8, 0x9eb4, + 0x8d73, 0x8d84, 0x8d94, 0x8d91, 0x8db1, 0x8d67, 0x8d6d, 0x8c47, + 0x8c49, 0x914a, 0x9150, 0x914e, 0x914f, 0x9164, + /* 0x75 */ + 0x9162, 0x9161, 0x9170, 0x9169, 0x916f, 0x917d, 0x917e, 0x9172, + 0x9174, 0x9179, 0x918c, 0x9185, 0x9190, 0x918d, 0x9191, 0x91a2, + 0x91a3, 0x91aa, 0x91ad, 0x91ae, 0x91af, 0x91b5, 0x91b4, 0x91ba, + 0x8c55, 0x9e7e, 0x8db8, 0x8deb, 0x8e05, 0x8e59, 0x8e69, 0x8db5, + 0x8dbf, 0x8dbc, 0x8dba, 0x8dc4, 0x8dd6, 0x8dd7, 0x8dda, 0x8dde, + 0x8dce, 0x8dcf, 0x8ddb, 0x8dc6, 0x8dec, 0x8df7, 0x8df8, 0x8de3, + 0x8df9, 0x8dfb, 0x8de4, 0x8e09, 0x8dfd, 0x8e14, 0x8e1d, 0x8e1f, + 0x8e2c, 0x8e2e, 0x8e23, 0x8e2f, 0x8e3a, 0x8e40, 0x8e39, 0x8e35, + 0x8e3d, 0x8e31, 0x8e49, 0x8e41, 0x8e42, 0x8e51, 0x8e52, 0x8e4a, + 0x8e70, 0x8e76, 0x8e7c, 0x8e6f, 0x8e74, 0x8e85, 0x8e8f, 0x8e94, + 0x8e90, 0x8e9c, 0x8e9e, 0x8c78, 0x8c82, 0x8c8a, 0x8c85, 0x8c98, + 0x8c94, 0x659b, 0x89d6, 0x89de, 0x89da, 0x89dc, + /* 0x76 */ + 0x89e5, 0x89eb, 0x89ef, 0x8a3e, 0x8b26, 0x9753, 0x96e9, 0x96f3, + 0x96ef, 0x9706, 0x9701, 0x9708, 0x970f, 0x970e, 0x972a, 0x972d, + 0x9730, 0x973e, 0x9f80, 0x9f83, 0x9f85, 0x9f86, 0x9f87, 0x9f88, + 0x9f89, 0x9f8a, 0x9f8c, 0x9efe, 0x9f0b, 0x9f0d, 0x96b9, 0x96bc, + 0x96bd, 0x96ce, 0x96d2, 0x77bf, 0x96e0, 0x928e, 0x92ae, 0x92c8, + 0x933e, 0x936a, 0x93ca, 0x938f, 0x943e, 0x946b, 0x9c7f, 0x9c82, + 0x9c85, 0x9c86, 0x9c87, 0x9c88, 0x7a23, 0x9c8b, 0x9c8e, 0x9c90, + 0x9c91, 0x9c92, 0x9c94, 0x9c95, 0x9c9a, 0x9c9b, 0x9c9e, 0x9c9f, + 0x9ca0, 0x9ca1, 0x9ca2, 0x9ca3, 0x9ca5, 0x9ca6, 0x9ca7, 0x9ca8, + 0x9ca9, 0x9cab, 0x9cad, 0x9cae, 0x9cb0, 0x9cb1, 0x9cb2, 0x9cb3, + 0x9cb4, 0x9cb5, 0x9cb6, 0x9cb7, 0x9cba, 0x9cbb, 0x9cbc, 0x9cbd, + 0x9cc4, 0x9cc5, 0x9cc6, 0x9cc7, 0x9cca, 0x9ccb, + /* 0x77 */ + 0x9ccc, 0x9ccd, 0x9cce, 0x9ccf, 0x9cd0, 0x9cd3, 0x9cd4, 0x9cd5, + 0x9cd7, 0x9cd8, 0x9cd9, 0x9cdc, 0x9cdd, 0x9cdf, 0x9ce2, 0x977c, + 0x9785, 0x9791, 0x9792, 0x9794, 0x97af, 0x97ab, 0x97a3, 0x97b2, + 0x97b4, 0x9ab1, 0x9ab0, 0x9ab7, 0x9e58, 0x9ab6, 0x9aba, 0x9abc, + 0x9ac1, 0x9ac0, 0x9ac5, 0x9ac2, 0x9acb, 0x9acc, 0x9ad1, 0x9b45, + 0x9b43, 0x9b47, 0x9b49, 0x9b48, 0x9b4d, 0x9b51, 0x98e8, 0x990d, + 0x992e, 0x9955, 0x9954, 0x9adf, 0x9ae1, 0x9ae6, 0x9aef, 0x9aeb, + 0x9afb, 0x9aed, 0x9af9, 0x9b08, 0x9b0f, 0x9b13, 0x9b1f, 0x9b23, + 0x9ebd, 0x9ebe, 0x7e3b, 0x9e82, 0x9e87, 0x9e88, 0x9e8b, 0x9e92, + 0x93d6, 0x9e9d, 0x9e9f, 0x9edb, 0x9edc, 0x9edd, 0x9ee0, 0x9edf, + 0x9ee2, 0x9ee9, 0x9ee7, 0x9ee5, 0x9eea, 0x9eef, 0x9f22, 0x9f2c, + 0x9f2f, 0x9f39, 0x9f37, 0x9f3d, 0x9f3e, 0x9f44, +}; + +static int +gb2312_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 >= 0x21 && c1 <= 0x29) || (c1 >= 0x30 && c1 <= 0x77)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if (c2 >= 0x21 && c2 < 0x7f) { + unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); + unsigned short wc = 0xfffd; + if (i < 1410) { + if (i < 831) + wc = gb2312_2uni_page21[i]; + } else { + if (i < 8178) + wc = gb2312_2uni_page30[i-1410]; + } + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + +static const unsigned short gb2312_2charset[7445] = { + 0x2168, 0x216c, 0x2127, 0x2163, 0x2140, 0x2141, 0x2824, 0x2822, + 0x2828, 0x2826, 0x283a, 0x282c, 0x282a, 0x2830, 0x282e, 0x2142, + 0x2834, 0x2832, 0x2839, 0x2821, 0x2825, 0x2827, 0x2829, 0x282d, + 0x2831, 0x2823, 0x282b, 0x282f, 0x2833, 0x2835, 0x2836, 0x2837, + 0x2838, 0x2126, 0x2125, 0x2621, 0x2622, 0x2623, 0x2624, 0x2625, + 0x2626, 0x2627, 0x2628, 0x2629, 0x262a, 0x262b, 0x262c, 0x262d, + 0x262e, 0x262f, 0x2630, 0x2631, 0x2632, 0x2633, 0x2634, 0x2635, + 0x2636, 0x2637, 0x2638, 0x2641, 0x2642, 0x2643, 0x2644, 0x2645, + 0x2646, 0x2647, 0x2648, 0x2649, 0x264a, 0x264b, 0x264c, 0x264d, + 0x264e, 0x264f, 0x2650, 0x2651, 0x2652, 0x2653, 0x2654, 0x2655, + 0x2656, 0x2657, 0x2658, 0x2727, 0x2721, 0x2722, 0x2723, 0x2724, + 0x2725, 0x2726, 0x2728, 0x2729, 0x272a, 0x272b, 0x272c, 0x272d, + 0x272e, 0x272f, 0x2730, 0x2731, 0x2732, 0x2733, 0x2734, 0x2735, + 0x2736, 0x2737, 0x2738, 0x2739, 0x273a, 0x273b, 0x273c, 0x273d, + 0x273e, 0x273f, 0x2740, 0x2741, 0x2751, 0x2752, 0x2753, 0x2754, + 0x2755, 0x2756, 0x2758, 0x2759, 0x275a, 0x275b, 0x275c, 0x275d, + 0x275e, 0x275f, 0x2760, 0x2761, 0x2762, 0x2763, 0x2764, 0x2765, + 0x2766, 0x2767, 0x2768, 0x2769, 0x276a, 0x276b, 0x276c, 0x276d, + 0x276e, 0x276f, 0x2770, 0x2771, 0x2757, 0x212a, 0x212c, 0x212e, + 0x212f, 0x2130, 0x2131, 0x212d, 0x216b, 0x2164, 0x2165, 0x2179, + 0x2166, 0x216d, 0x2271, 0x2272, 0x2273, 0x2274, 0x2275, 0x2276, + 0x2277, 0x2278, 0x2279, 0x227a, 0x227b, 0x227c, 0x217b, 0x217c, + 0x217a, 0x217d, 0x214a, 0x2147, 0x2146, 0x214c, 0x2158, 0x215e, + 0x214f, 0x214e, 0x2144, 0x2145, 0x2149, 0x2148, 0x2152, 0x2153, + 0x2160, 0x215f, 0x2143, 0x214b, 0x2157, 0x2156, 0x2155, 0x2159, + 0x2154, 0x215c, 0x215d, 0x215a, 0x215b, 0x2151, 0x214d, 0x2150, + 0x2259, 0x225a, 0x225b, 0x225c, 0x225d, 0x225e, 0x225f, 0x2260, + 0x2261, 0x2262, 0x2245, 0x2246, 0x2247, 0x2248, 0x2249, 0x224a, + 0x224b, 0x224c, 0x224d, 0x224e, 0x224f, 0x2250, 0x2251, 0x2252, + 0x2253, 0x2254, 0x2255, 0x2256, 0x2257, 0x2258, 0x2231, 0x2232, + 0x2233, 0x2234, 0x2235, 0x2236, 0x2237, 0x2238, 0x2239, 0x223a, + 0x223b, 0x223c, 0x223d, 0x223e, 0x223f, 0x2240, 0x2241, 0x2242, + 0x2243, 0x2244, 0x2924, 0x2925, 0x2926, 0x2927, 0x2928, 0x2929, + 0x292a, 0x292b, 0x292c, 0x292d, 0x292e, 0x292f, 0x2930, 0x2931, + 0x2932, 0x2933, 0x2934, 0x2935, 0x2936, 0x2937, 0x2938, 0x2939, + 0x293a, 0x293b, 0x293c, 0x293d, 0x293e, 0x293f, 0x2940, 0x2941, + 0x2942, 0x2943, 0x2944, 0x2945, 0x2946, 0x2947, 0x2948, 0x2949, + 0x294a, 0x294b, 0x294c, 0x294d, 0x294e, 0x294f, 0x2950, 0x2951, + 0x2952, 0x2953, 0x2954, 0x2955, 0x2956, 0x2957, 0x2958, 0x2959, + 0x295a, 0x295b, 0x295c, 0x295d, 0x295e, 0x295f, 0x2960, 0x2961, + 0x2962, 0x2963, 0x2964, 0x2965, 0x2966, 0x2967, 0x2968, 0x2969, + 0x296a, 0x296b, 0x296c, 0x296d, 0x296e, 0x296f, 0x2176, 0x2175, + 0x2178, 0x2177, 0x2174, 0x2173, 0x2170, 0x2172, 0x2171, 0x216f, + 0x216e, 0x2162, 0x2161, 0x2121, 0x2122, 0x2123, 0x2128, 0x2129, + 0x2134, 0x2135, 0x2136, 0x2137, 0x2138, 0x2139, 0x213a, 0x213b, + 0x213e, 0x213f, 0x217e, 0x2132, 0x2133, 0x213c, 0x213d, 0x2421, + 0x2422, 0x2423, 0x2424, 0x2425, 0x2426, 0x2427, 0x2428, 0x2429, + 0x242a, 0x242b, 0x242c, 0x242d, 0x242e, 0x242f, 0x2430, 0x2431, + 0x2432, 0x2433, 0x2434, 0x2435, 0x2436, 0x2437, 0x2438, 0x2439, + 0x243a, 0x243b, 0x243c, 0x243d, 0x243e, 0x243f, 0x2440, 0x2441, + 0x2442, 0x2443, 0x2444, 0x2445, 0x2446, 0x2447, 0x2448, 0x2449, + 0x244a, 0x244b, 0x244c, 0x244d, 0x244e, 0x244f, 0x2450, 0x2451, + 0x2452, 0x2453, 0x2454, 0x2455, 0x2456, 0x2457, 0x2458, 0x2459, + 0x245a, 0x245b, 0x245c, 0x245d, 0x245e, 0x245f, 0x2460, 0x2461, + 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, + 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, 0x2470, 0x2471, + 0x2472, 0x2473, 0x2521, 0x2522, 0x2523, 0x2524, 0x2525, 0x2526, + 0x2527, 0x2528, 0x2529, 0x252a, 0x252b, 0x252c, 0x252d, 0x252e, + 0x252f, 0x2530, 0x2531, 0x2532, 0x2533, 0x2534, 0x2535, 0x2536, + 0x2537, 0x2538, 0x2539, 0x253a, 0x253b, 0x253c, 0x253d, 0x253e, + 0x253f, 0x2540, 0x2541, 0x2542, 0x2543, 0x2544, 0x2545, 0x2546, + 0x2547, 0x2548, 0x2549, 0x254a, 0x254b, 0x254c, 0x254d, 0x254e, + 0x254f, 0x2550, 0x2551, 0x2552, 0x2553, 0x2554, 0x2555, 0x2556, + 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e, + 0x255f, 0x2560, 0x2561, 0x2562, 0x2563, 0x2564, 0x2565, 0x2566, + 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x256d, 0x256e, + 0x256f, 0x2570, 0x2571, 0x2572, 0x2573, 0x2574, 0x2575, 0x2576, + 0x2124, 0x2845, 0x2846, 0x2847, 0x2848, 0x2849, 0x284a, 0x284b, + 0x284c, 0x284d, 0x284e, 0x284f, 0x2850, 0x2851, 0x2852, 0x2853, + 0x2854, 0x2855, 0x2856, 0x2857, 0x2858, 0x2859, 0x285a, 0x285b, + 0x285c, 0x285d, 0x285e, 0x285f, 0x2860, 0x2861, 0x2862, 0x2863, + 0x2864, 0x2865, 0x2866, 0x2867, 0x2868, 0x2869, 0x2265, 0x2266, + 0x2267, 0x2268, 0x2269, 0x226a, 0x226b, 0x226c, 0x226d, 0x226e, + 0x523b, 0x3621, 0x465f, 0x4d72, 0x5549, 0x487d, 0x494f, 0x4f42, + 0x5822, 0x323b, 0x536b, 0x5824, 0x3373, 0x5728, 0x4752, 0x5827, + 0x4a40, 0x4770, 0x317b, 0x5235, 0x3454, 0x362b, 0x4b3f, 0x5829, + 0x362a, 0x413d, 0x514f, 0x4925, 0x582d, 0x3876, 0x513e, 0x635c, + 0x5650, 0x3761, 0x342e, 0x4159, 0x583c, 0x4d68, 0x3524, 0x4e2a, + 0x5677, 0x4076, 0x3e59, 0x582f, 0x444b, 0x3e43, 0x5831, 0x4334, + 0x5265, 0x562e, 0x4e5a, 0x5527, 0x3a75, 0x3726, 0x4056, 0x4639, + 0x4552, 0x4747, 0x3954, 0x334b, 0x5252, 0x583f, 0x3e45, 0x4672, + 0x5232, 0x4f30, 0x4f67, 0x4a69, 0x5840, 0x4272, 0x4252, 0x4869, + 0x472c, 0x414b, 0x5368, 0x5579, 0x4a42, 0x367e, 0x5821, 0x535a, + 0x3f77, 0x5446, 0x3b25, 0x5841, 0x4e65, 0x3e2e, 0x5828, 0x5147, + 0x5029, 0x583d, 0x596f, 0x4d76, 0x3f3a, 0x3d3b, 0x3a25, 0x5260, + 0x327a, 0x3a60, 0x4436, 0x4f6d, 0x3e29, 0x4d24, 0x4141, 0x4757, + 0x5971, 0x5974, 0x484b, 0x5869, 0x525a, 0x4a32, 0x484a, 0x586c, + 0x586a, 0x5846, 0x3d76, 0x464d, 0x3370, 0x586b, 0x3d71, 0x3d69, + 0x4854, 0x3453, 0x4258, 0x3256, 0x5750, 0x4a4b, 0x4b7b, 0x554c, + 0x3836, 0x4f49, 0x595a, 0x5870, 0x472a, 0x586e, 0x347a, 0x416e, + 0x5254, 0x586d, 0x5247, 0x586f, 0x4347, 0x5176, 0x5659, 0x5872, + 0x5875, 0x3c7e, 0x3c5b, 0x484e, 0x375d, 0x3742, 0x4673, 0x5878, + 0x5241, 0x4e69, 0x3c3f, 0x377c, 0x3725, 0x505d, 0x565a, 0x5345, + 0x3b6f, 0x3b61, 0x5871, 0x4921, 0x4e30, 0x342b, 0x5873, 0x494b, + 0x5876, 0x4257, 0x5877, 0x4e31, 0x5879, 0x322e, 0x3940, 0x5923, + 0x3069, 0x4166, 0x496c, 0x4b45, 0x4b46, 0x5924, 0x3568, 0x352b, + 0x4e3b, 0x354d, 0x5721, 0x5774, 0x5353, 0x4c65, 0x3a4e, 0x5922, + 0x595c, 0x5360, 0x587d, 0x3770, 0x5777, 0x587e, 0x587a, 0x5921, + 0x4463, 0x5336, 0x5874, 0x595d, 0x587b, 0x4565, 0x4050, 0x5170, + 0x305b, 0x3c51, 0x5926, 0x5925, 0x592c, 0x592e, 0x592b, 0x4a39, + 0x5929, 0x5636, 0x335e, 0x5928, 0x407d, 0x4a4c, 0x592a, 0x5927, + 0x5930, 0x3631, 0x3929, 0x5240, 0x4f40, 0x4242, 0x3d44, 0x556c, + 0x3260, 0x4748, 0x3f6b, 0x592d, 0x592f, 0x4e6a, 0x3a6e, 0x4756, + 0x3163, 0x3459, 0x366d, 0x5934, 0x3f21, 0x595e, 0x474e, 0x407e, + 0x5938, 0x4b57, 0x377d, 0x5935, 0x5937, 0x3123, 0x5361, 0x5939, + 0x5045, 0x5936, 0x5931, 0x5932, 0x4129, 0x5933, 0x3c73, 0x505e, + 0x3829, 0x3e63, 0x593d, 0x593a, 0x3033, 0x5942, 0x5944, 0x3136, + 0x593f, 0x3539, 0x3e73, 0x4c48, 0x3a72, 0x5250, 0x5943, 0x3d68, + 0x332b, 0x5945, 0x3e6b, 0x5946, 0x593b, 0x445f, 0x593e, 0x5941, + 0x5940, 0x552e, 0x5635, 0x4763, 0x5948, 0x3c59, 0x594a, 0x593c, + 0x594b, 0x462b, 0x5949, 0x5776, 0x4d23, 0x3d21, 0x594c, 0x453c, + 0x4d35, 0x594d, 0x5947, 0x3325, 0x3f7e, 0x3835, 0x407c, 0x3078, + 0x3476, 0x594e, 0x594f, 0x3422, 0x5950, 0x345f, 0x3041, 0x5951, + 0x4935, 0x4f71, 0x5952, 0x4145, 0x5956, 0x492e, 0x5955, 0x5954, + 0x5957, 0x4b5b, 0x3d29, 0x4627, 0x5953, 0x5958, 0x5959, 0x4865, + 0x405c, 0x3679, 0x5823, 0x544a, 0x542a, 0x5056, 0x3364, 0x5557, + 0x4f48, 0x3962, 0x3f4b, 0x4362, 0x3652, 0x4d43, 0x596e, 0x5970, + 0x3533, 0x3635, 0x3e24, 0x486b, 0x482b, 0x304b, 0x392b, 0x4179, + 0x5962, 0x403c, 0x3932, 0x3958, 0x504b, 0x3178, 0x4664, 0x3e5f, + 0x3564, 0x5748, 0x5178, 0x3c66, 0x4a5e, 0x3c3d, 0x5966, 0x5867, + 0x445a, 0x3854, 0x483d, 0x3261, 0x5459, 0x4330, 0x4361, 0x5a22, + 0x485f, 0x5034, 0x3e7c, 0x4529, 0x395a, 0x5a23, 0x5429, 0x5a24, + 0x597b, 0x362c, 0x376b, 0x3179, 0x597c, 0x3365, 0x3e76, 0x3f76, + 0x5231, 0x4064, 0x3633, 0x597e, 0x597d, 0x3e3b, 0x4660, 0x573c, + 0x5a21, 0x4139, 0x3572, 0x4168, 0x3c75, 0x3455, 0x415d, 0x447d, + 0x3c38, 0x3732, 0x376f, 0x596c, 0x463e, 0x3f2d, 0x3b4b, 0x354a, + 0x5b49, 0x5057, 0x4d39, 0x303c, 0x3376, 0x3b77, 0x5b4a, 0x3a2f, + 0x5464, 0x3536, 0x3573, 0x5856, 0x4850, 0x3756, 0x4750, 0x5857, + 0x3f2f, 0x5b3b, 0x5858, 0x504c, 0x3b2e, 0x6b3e, 0x4150, 0x4175, + 0x5472, 0x3855, 0x3434, 0x3375, 0x493e, 0x4550, 0x4559, 0x407b, + 0x3170, 0x5859, 0x394e, 0x353d, 0x585a, 0x5646, 0x4b22, 0x482f, + 0x4932, 0x344c, 0x3f4c, 0x3974, 0x585b, 0x585c, 0x3667, 0x3c41, + 0x4c6a, 0x4f77, 0x585d, 0x4730, 0x3950, 0x3d23, 0x4c5e, 0x464a, + 0x5860, 0x585e, 0x585f, 0x307e, 0x3e67, 0x4a23, 0x3c74, 0x3831, + 0x386e, 0x5862, 0x3d4b, 0x5864, 0x5863, 0x457c, 0x5865, 0x5866, + 0x4126, 0x4830, 0x306c, 0x3926, 0x3c53, 0x4e71, 0x5b3d, 0x4153, + 0x362f, 0x567a, 0x452c, 0x3d59, 0x5b3e, 0x5b3f, 0x4078, 0x3e22, + 0x404d, 0x5b40, 0x4a46, 0x322a, 0x5342, 0x4363, 0x512b, 0x5b42, + 0x4055, 0x5b43, 0x3f31, 0x443c, 0x475a, 0x5b44, 0x5968, 0x4957, + 0x3934, 0x4e70, 0x5448, 0x307c, 0x3452, 0x5059, 0x5969, 0x5e4b, + 0x596b, 0x5830, 0x3b2f, 0x3131, 0x3357, 0x584e, 0x5451, 0x3d33, + 0x3f6f, 0x4f3b, 0x5850, 0x374b, 0x5851, 0x4625, 0x4778, 0x523d, + 0x5852, 0x4464, 0x4a2e, 0x4727, 0x5826, 0x497d, 0x4e67, 0x3b5c, + 0x306b, 0x3b2a, 0x502d, 0x3130, 0x5764, 0x573f, 0x3525, 0x4274, + 0x444f, 0x3229, 0x3237, 0x3165, 0x5f32, 0x553c, 0x3f28, 0x422c, + 0x5855, 0x4231, 0x5854, 0x4e54, 0x5a60, 0x4e40, 0x5834, 0x432e, + 0x5321, 0x4e23, 0x3c34, 0x4834, 0x4251, 0x3e6d, 0x5036, 0x5a61, + 0x4764, 0x3327, 0x3672, 0x4c7c, 0x407a, 0x4077, 0x5139, 0x5161, + 0x5847, 0x325e, 0x4065, 0x3a71, 0x5848, 0x542d, 0x4f61, 0x5849, + 0x584a, 0x4f43, 0x3378, 0x3e47, 0x584b, 0x5b4c, 0x4825, 0x4f58, + 0x487e, 0x324e, 0x5356, 0x3266, 0x3c30, 0x5351, 0x4b2b, 0x3734, + 0x3722, 0x4a65, 0x4821, 0x4a5c, 0x3164, 0x5070, 0x4551, 0x5b45, + 0x357e, 0x3f5a, 0x3945, 0x3e64, 0x416d, 0x5f36, 0x5f35, 0x563b, + 0x3d50, 0x5559, 0x3048, 0x3623, 0x3f49, 0x4c28, 0x5f33, 0x4a37, + 0x5352, 0x584f, 0x5236, 0x3a45, 0x4b3e, 0x4c3e, 0x5f37, 0x3570, + 0x5f34, 0x5375, 0x3354, 0x3877, 0x5f3a, 0x3a4f, 0x3c2a, 0x3575, + 0x4d2c, 0x437b, 0x3a73, 0x4074, 0x4d42, 0x4f72, 0x5f38, 0x4f45, + 0x4240, 0x5f39, 0x4270, 0x3e7d, 0x415f, 0x4d4c, 0x5277, 0x374d, + 0x5f41, 0x5f44, 0x3771, 0x3049, 0x3656, 0x3754, 0x3a2c, 0x4c7d, + 0x3f54, 0x4b31, 0x4674, 0x5628, 0x5f45, 0x4e62, 0x3333, 0x4e7c, + 0x3435, 0x4e47, 0x3a70, 0x4e61, 0x513d, 0x5f40, 0x3474, 0x334a, + 0x3866, 0x5f3b, 0x4445, 0x5f3c, 0x5f3d, 0x5f3e, 0x453b, 0x5f3f, + 0x5f42, 0x5431, 0x5f43, 0x473a, 0x4e58, 0x4458, 0x5f4a, 0x5f4f, + 0x565c, 0x5f49, 0x5f5a, 0x4e36, 0x3a47, 0x5f4e, 0x5f48, 0x455e, + 0x496b, 0x3a74, 0x437c, 0x3e57, 0x5f46, 0x5f4d, 0x4558, 0x5526, + 0x3a4d, 0x3e4c, 0x533d, 0x3840, 0x5664, 0x5f47, 0x393e, 0x3f27, + 0x417c, 0x5f4b, 0x5f4c, 0x5f50, 0x5f5b, 0x5f65, 0x5f57, 0x5f56, + 0x5749, 0x5f63, 0x5f64, 0x656b, 0x5227, 0x5f52, 0x3f29, 0x545b, + 0x3f48, 0x5f54, 0x4f4c, 0x5f5d, 0x514a, 0x5f5e, 0x3027, 0x4637, + 0x5f53, 0x3a65, 0x365f, 0x4d5b, 0x397e, 0x5455, 0x5f5f, 0x4f6c, + 0x3025, 0x5f67, 0x5f51, 0x5146, 0x5f55, 0x5f58, 0x5f59, 0x5f5c, + 0x3b29, 0x5f60, 0x5f61, 0x5f62, 0x5f66, 0x5f68, 0x5334, 0x3867, + 0x4536, 0x5f6a, 0x495a, 0x4128, 0x4444, 0x3f5e, 0x4f78, 0x555c, + 0x5f6e, 0x3238, 0x3a5f, 0x5f6c, 0x5b41, 0x5164, 0x4b74, 0x343d, + 0x3026, 0x5f71, 0x4c46, 0x5f72, 0x5f6d, 0x5f69, 0x5f6b, 0x5f6f, + 0x5f70, 0x3b3d, 0x5f73, 0x5f74, 0x3b23, 0x4a5b, 0x4e28, 0x6027, + 0x332a, 0x6026, 0x6021, 0x5f7e, 0x4d59, 0x5f7c, 0x5f7a, 0x3f50, + 0x5744, 0x494c, 0x5f78, 0x3021, 0x5f7d, 0x5f7b, 0x6022, 0x6028, + 0x3748, 0x4621, 0x4936, 0x4032, 0x5f75, 0x453e, 0x5844, 0x5f79, + 0x4476, 0x6023, 0x6024, 0x6025, 0x5025, 0x6034, 0x4c64, 0x6031, + 0x3f26, 0x602f, 0x4e39, 0x602b, 0x4946, 0x402e, 0x602e, 0x3a6d, + 0x3a30, 0x6029, 0x5f76, 0x6033, 0x6038, 0x342d, 0x6039, 0x4f32, + 0x3a48, 0x6030, 0x507a, 0x602c, 0x547b, 0x5f77, 0x4567, 0x602d, + 0x5377, 0x6036, 0x6037, 0x6044, 0x5061, 0x603c, 0x6049, 0x604a, + 0x603e, 0x602a, 0x4924, 0x6041, 0x6032, 0x4a48, 0x6043, 0x6035, + 0x4e4b, 0x4b43, 0x604d, 0x6046, 0x6042, 0x604b, 0x603a, 0x603f, + 0x6040, 0x6045, 0x6047, 0x6048, 0x604c, 0x603b, 0x4b54, 0x6055, + 0x6056, 0x6052, 0x6050, 0x3c4e, 0x6051, 0x3842, 0x5845, 0x506a, + 0x426f, 0x604f, 0x603d, 0x6054, 0x6053, 0x6057, 0x605c, 0x6058, + 0x5676, 0x3330, 0x576c, 0x4b3b, 0x605a, 0x4e7b, 0x3a59, 0x6061, + 0x605d, 0x522d, 0x6062, 0x605b, 0x6059, 0x605f, 0x6060, 0x605e, + 0x6064, 0x4677, 0x582c, 0x546b, 0x6066, 0x4a49, 0x6065, 0x3841, + 0x6067, 0x6068, 0x6069, 0x6063, 0x3a3f, 0x4c67, 0x606a, 0x4f79, + 0x606b, 0x4842, 0x3d40, 0x4452, 0x606c, 0x606d, 0x4774, 0x4b44, + 0x606e, 0x3b58, 0x5836, 0x5272, 0x606f, 0x4d45, 0x365a, 0x6071, + 0x5430, 0x4027, 0x3451, 0x4e27, 0x6070, 0x6072, 0x394c, 0x397a, + 0x4d3c, 0x6073, 0x4654, 0x6074, 0x5432, 0x4826, 0x6076, 0x6075, + 0x6077, 0x4d41, 0x4a25, 0x545a, 0x5b57, 0x5b59, 0x5b58, 0x3967, + 0x5b5c, 0x5b5d, 0x3558, 0x5b5a, 0x5b5b, 0x3321, 0x5b5f, 0x3b78, + 0x5637, 0x5b60, 0x3e79, 0x373b, 0x5b50, 0x4c2e, 0x3f32, 0x3b35, + 0x5778, 0x3f53, 0x3f69, 0x3c61, 0x4c33, 0x5b5e, 0x3053, 0x4e6b, + 0x3758, 0x5739, 0x4642, 0x4024, 0x4c39, 0x5b67, 0x5b61, 0x463a, + 0x5b63, 0x5b68, 0x4577, 0x5b6a, 0x5b69, 0x3f40, 0x5b66, 0x5b65, + 0x3439, 0x402c, 0x4222, 0x5b62, 0x5b64, 0x504d, 0x5b6d, 0x405d, + 0x5b72, 0x3662, 0x5b73, 0x5b52, 0x3938, 0x542b, 0x5b6c, 0x3f51, + 0x5b70, 0x5b51, 0x3566, 0x5b6b, 0x3f65, 0x5b6e, 0x5b71, 0x5b79, + 0x3921, 0x3023, 0x4271, 0x3347, 0x5b6f, 0x5b78, 0x4652, 0x5b74, + 0x5b75, 0x5b77, 0x5b76, 0x5b7e, 0x5372, 0x323a, 0x5b7d, 0x5c24, + 0x5b7b, 0x5b7a, 0x5b7c, 0x4560, 0x3b79, 0x5c23, 0x5c25, 0x4c43, + 0x3651, 0x5d40, 0x5c21, 0x5c22, 0x4735, 0x3669, 0x5c27, 0x5c26, + 0x5c29, 0x3124, 0x354c, 0x3f30, 0x515f, 0x3642, 0x5c28, 0x4b7a, + 0x6b73, 0x4b5c, 0x4b7e, 0x4c41, 0x487b, 0x5c2a, 0x4c6e, 0x5c2b, + 0x5b53, 0x5c2f, 0x5c2c, 0x3e33, 0x4a7b, 0x5c2d, 0x494a, 0x4439, + 0x473d, 0x5c2e, 0x5476, 0x5066, 0x442b, 0x3655, 0x5b54, 0x315a, + 0x5b55, 0x5b56, 0x3a3e, 0x4840, 0x4a3f, 0x4849, 0x5733, 0x4979, + 0x3f47, 0x3a78, 0x523c, 0x623a, 0x3426, 0x3138, 0x3834, 0x4f44, + 0x5967, 0x4f26, 0x4d62, 0x596d, 0x3660, 0x5239, 0x393b, 0x6239, + 0x6237, 0x3473, 0x4c6c, 0x4c2b, 0x3772, 0x5832, 0x516b, 0x3a3b, + 0x4a27, 0x4d37, 0x5244, 0x3f64, 0x3c50, 0x3661, 0x5e45, 0x5e46, + 0x5b3c, 0x5159, 0x4666, 0x444e, 0x376e, 0x375c, 0x3f7c, 0x5760, + 0x4675, 0x313c, 0x5e48, 0x3d31, 0x4c57, 0x5e4a, 0x5e49, 0x356c, + 0x495d, 0x3042, 0x452e, 0x452b, 0x444c, 0x3c69, 0x4b7d, 0x3a43, + 0x6579, 0x4867, 0x657a, 0x4d7d, 0x5731, 0x383e, 0x4268, 0x4851, + 0x657b, 0x364a, 0x3c4b, 0x517d, 0x6621, 0x436e, 0x6624, 0x657e, + 0x6625, 0x4d57, 0x3741, 0x657c, 0x657d, 0x6623, 0x445d, 0x6628, + 0x6627, 0x4343, 0x465e, 0x662a, 0x4437, 0x6622, 0x4a3c, 0x3d63, + 0x3943, 0x6626, 0x5055, 0x4e2f, 0x6629, 0x6630, 0x5226, 0x3d2a, + 0x662d, 0x662f, 0x4051, 0x524c, 0x3c27, 0x6631, 0x5276, 0x574b, + 0x4d7e, 0x4d5e, 0x4226, 0x662b, 0x662c, 0x3d3f, 0x662e, 0x6633, + 0x6632, 0x6636, 0x6638, 0x446f, 0x4448, 0x3e6a, 0x496f, 0x6637, + 0x3670, 0x4364, 0x5369, 0x6634, 0x6635, 0x4822, 0x663d, 0x6639, + 0x4645, 0x4d71, 0x663b, 0x663c, 0x3b69, 0x663e, 0x663a, 0x4037, + 0x5324, 0x663f, 0x4974, 0x6643, 0x6644, 0x5076, 0x433d, 0x4344, + 0x6642, 0x6641, 0x6647, 0x4f31, 0x6b74, 0x664a, 0x6645, 0x3c5e, + 0x4929, 0x3c35, 0x4f53, 0x6648, 0x6649, 0x664e, 0x6650, 0x6651, + 0x664b, 0x3555, 0x664c, 0x664f, 0x445b, 0x6646, 0x664d, 0x6652, + 0x6654, 0x6653, 0x6655, 0x5978, 0x6656, 0x6657, 0x5753, 0x665d, + 0x665e, 0x3f57, 0x5450, 0x5756, 0x3466, 0x4b6f, 0x665a, 0x5843, + 0x574e, 0x5022, 0x434f, 0x665f, 0x3c3e, 0x3942, 0x665b, 0x5127, + 0x3a22, 0x424f, 0x582b, 0x4a6b, 0x656e, 0x665c, 0x3775, 0x4866, + 0x4475, 0x6532, 0x447e, 0x4b7c, 0x6533, 0x552c, 0x536e, 0x4a58, + 0x3032, 0x4b4e, 0x4d6a, 0x3a6a, 0x6535, 0x6534, 0x575a, 0x3959, + 0x5666, 0x3628, 0x4d70, 0x524b, 0x3126, 0x4a35, 0x3368, 0x4973, + 0x3f4d, 0x507b, 0x4a52, 0x6536, 0x3b42, 0x4f5c, 0x392c, 0x5457, + 0x3a26, 0x5167, 0x4f7c, 0x3c52, 0x6537, 0x485d, 0x3f6d, 0x3176, + 0x4b5e, 0x3c45, 0x3c44, 0x527a, 0x435c, 0x3f5c, 0x383b, 0x4342, + 0x3a2e, 0x5422, 0x475e, 0x442f, 0x326c, 0x3951, 0x653b, 0x4148, + 0x552f, 0x653c, 0x653e, 0x3467, 0x3654, 0x4b42, 0x5130, 0x353c, + 0x4a59, 0x3762, 0x4964, 0x3d2b, 0x4e3e, 0x5770, 0x5021, 0x4959, + 0x367b, 0x6658, 0x3c62, 0x333e, 0x4950, 0x6659, 0x3322, 0x5e4c, + 0x5348, 0x5e4d, 0x5222, 0x5e4e, 0x3e4d, 0x5e4f, 0x4a2c, 0x527c, + 0x335f, 0x656a, 0x4461, 0x3e21, 0x4e32, 0x4472, 0x3e56, 0x4628, + 0x3263, 0x3e53, 0x477c, 0x4c6b, 0x3d6c, 0x4e5d, 0x4a3a, 0x4641, + 0x656c, 0x503c, 0x5539, 0x656d, 0x4a74, 0x4d40, 0x4245, 0x656f, + 0x4244, 0x6570, 0x6578, 0x4d4d, 0x493d, 0x5259, 0x6128, 0x536c, + 0x4b6a, 0x4671, 0x612c, 0x6127, 0x6129, 0x612a, 0x612f, 0x326d, + 0x612b, 0x385a, 0x612d, 0x612e, 0x6130, 0x353a, 0x6131, 0x6133, + 0x6138, 0x5152, 0x6136, 0x6135, 0x416b, 0x6137, 0x5440, 0x6132, + 0x613a, 0x3036, 0x6134, 0x3f79, 0x6139, 0x613b, 0x613e, 0x613c, + 0x5645, 0x4f3f, 0x613d, 0x613f, 0x424d, 0x366b, 0x5378, 0x474d, + 0x3765, 0x3e7e, 0x6140, 0x6141, 0x6147, 0x3367, 0x4669, 0x345e, + 0x5142, 0x6148, 0x6146, 0x6145, 0x6143, 0x6142, 0x3140, 0x5538, + 0x6144, 0x614b, 0x614c, 0x614a, 0x6f7a, 0x6153, 0x6152, 0x4736, + 0x6149, 0x614e, 0x6150, 0x6154, 0x6151, 0x614d, 0x614f, 0x6155, + 0x6156, 0x6157, 0x6158, 0x615a, 0x615b, 0x4e21, 0x675d, 0x3428, + 0x565d, 0x5132, 0x3332, 0x3924, 0x5773, 0x4749, 0x3e5e, 0x392e, + 0x4e57, 0x326e, 0x5b4f, 0x3c3a, 0x5251, 0x4b48, 0x304d, 0x4f6f, + 0x5963, 0x3d6d, 0x3152, 0x4a50, 0x323c, 0x4b27, 0x372b, 0x4a26, + 0x4f23, 0x6078, 0x554a, 0x607b, 0x607a, 0x4541, 0x4c7b, 0x4131, + 0x6079, 0x5663, 0x322f, 0x5644, 0x355b, 0x3478, 0x5621, 0x4f2f, + 0x306f, 0x607c, 0x6121, 0x3323, 0x607d, 0x607e, 0x4331, 0x435d, + 0x6122, 0x3779, 0x3b4f, 0x6123, 0x443b, 0x6124, 0x6125, 0x6126, + 0x3431, 0x3849, 0x463d, 0x446a, 0x3222, 0x5052, 0x675b, 0x3b43, + 0x5357, 0x5344, 0x3963, 0x624f, 0x572f, 0x476c, 0x3153, 0x3432, + 0x6251, 0x5072, 0x422e, 0x6250, 0x3f62, 0x5326, 0x3557, 0x6252, + 0x356a, 0x436d, 0x387d, 0x382e, 0x4553, 0x374f, 0x6254, 0x6253, + 0x3648, 0x5779, 0x4d25, 0x6258, 0x6256, 0x4a7c, 0x3f35, 0x5339, + 0x6255, 0x6257, 0x412e, 0x4048, 0x625b, 0x625a, 0x402a, 0x414e, + 0x625c, 0x625d, 0x625e, 0x5b48, 0x5153, 0x4d22, 0x3d28, 0x5e43, + 0x5825, 0x3f2a, 0x5b4d, 0x526c, 0x467a, 0x452a, 0x5e44, 0x3157, + 0x5f2e, 0x4a3d, 0x5f31, 0x392d, 0x527d, 0x3825, 0x3a6b, 0x335a, + 0x355c, 0x5545, 0x4356, 0x4f52, 0x3b21, 0x6573, 0x6572, 0x6574, + 0x4d64, 0x4875, 0x352f, 0x473f, 0x6576, 0x6c30, 0x6566, 0x3969, + 0x3531, 0x423c, 0x6568, 0x6567, 0x6569, 0x524d, 0x616a, 0x504e, + 0x4d2e, 0x5165, 0x324a, 0x316b, 0x3172, 0x456d, 0x5543, 0x5330, + 0x615c, 0x615d, 0x525b, 0x3339, 0x314b, 0x4d79, 0x5577, 0x615e, + 0x3e36, 0x347d, 0x615f, 0x3a5c, 0x6160, 0x3b32, 0x4249, 0x6161, + 0x506c, 0x4d3d, 0x6162, 0x3543, 0x4547, 0x6163, 0x6164, 0x5379, + 0x6165, 0x512d, 0x6166, 0x4e22, 0x6167, 0x3542, 0x6168, 0x3b55, + 0x5044, 0x6260, 0x3158, 0x5264, 0x6261, 0x3c49, 0x484c, 0x6263, + 0x6c7e, 0x6c7d, 0x5f2f, 0x6262, 0x563e, 0x4d7c, 0x4326, 0x6343, + 0x5652, 0x6267, 0x6268, 0x5347, 0x626c, 0x3f6c, 0x626d, 0x6265, + 0x3340, 0x446e, 0x626e, 0x5043, 0x3a76, 0x6269, 0x375e, 0x3b33, + 0x4c2c, 0x4b4b, 0x6264, 0x6266, 0x626a, 0x626b, 0x6277, 0x6274, + 0x5475, 0x6273, 0x452d, 0x557a, 0x4542, 0x3240, 0x626f, 0x6272, + 0x412f, 0x4b3c, 0x3521, 0x6279, 0x3c31, 0x6271, 0x5054, 0x5439, + 0x6275, 0x3956, 0x6276, 0x4753, 0x6270, 0x575c, 0x6d21, 0x6278, + 0x6d25, 0x627e, 0x4a51, 0x4135, 0x3b50, 0x3f56, 0x3a63, 0x4b21, + 0x6d26, 0x6d23, 0x6d22, 0x3b56, 0x6d27, 0x5074, 0x6d24, 0x3a5e, + 0x3677, 0x6321, 0x3632, 0x4c71, 0x3927, 0x4f22, 0x4721, 0x3f52, + 0x3671, 0x627a, 0x627b, 0x627d, 0x627c, 0x4455, 0x6322, 0x5341, + 0x6327, 0x4744, 0x4f24, 0x6329, 0x3a37, 0x6328, 0x3b5a, 0x6323, + 0x6324, 0x632a, 0x6326, 0x4e72, 0x5346, 0x3b3c, 0x5443, 0x447a, + 0x6d28, 0x507c, 0x6325, 0x4375, 0x632d, 0x312f, 0x6332, 0x3c42, + 0x632c, 0x353f, 0x4769, 0x6330, 0x3e2a, 0x4d6f, 0x3b73, 0x4c68, + 0x632f, 0x6331, 0x4f27, 0x632e, 0x4e29, 0x3b5d, 0x356b, 0x3e65, + 0x3252, 0x334d, 0x3139, 0x632b, 0x3251, 0x352c, 0x395f, 0x3668, + 0x4f6b, 0x6337, 0x3b4c, 0x4847, 0x504a, 0x6338, 0x336e, 0x6d29, + 0x537a, 0x5364, 0x6d2a, 0x6339, 0x5262, 0x6335, 0x535e, 0x3850, + 0x6333, 0x6336, 0x375f, 0x6334, 0x4022, 0x633a, 0x5438, 0x3448, + 0x633b, 0x3b45, 0x4977, 0x4965, 0x443d, 0x6d2b, 0x427d, 0x3b5b, + 0x3f2e, 0x4e3f, 0x633c, 0x3f36, 0x316f, 0x5477, 0x633e, 0x6d2d, + 0x633f, 0x3a29, 0x6d2c, 0x633d, 0x6340, 0x3a36, 0x362e, 0x5038, + 0x3043, 0x6d2e, 0x6d2f, 0x4041, 0x6341, 0x4533, 0x6342, 0x5c32, + 0x6d30, 0x386a, 0x4e6c, 0x6a27, 0x5067, 0x4a79, 0x4856, 0x4f37, + 0x3349, 0x4e52, 0x3d64, 0x635e, 0x3b72, 0x6a28, 0x553d, 0x465d, + 0x6a29, 0x6a2a, 0x6a2c, 0x6a2b, 0x6a2e, 0x6a2d, 0x3d58, 0x6a2f, + 0x423e, 0x3441, 0x3477, 0x3b27, 0x6c66, 0x6c65, 0x373f, 0x4b79, + 0x3162, 0x6c67, 0x4948, 0x6c68, 0x6c69, 0x4a56, 0x5e50, 0x3245, + 0x547a, 0x464b, 0x3047, 0x3472, 0x4853, 0x4d50, 0x3f38, 0x3f5b, + 0x4724, 0x5634, 0x4029, 0x5e51, 0x4928, 0x516f, 0x4524, 0x3067, + 0x3336, 0x4845, 0x3062, 0x3776, 0x457a, 0x3673, 0x5552, 0x3350, + 0x3c3c, 0x332d, 0x3e71, 0x3051, 0x5256, 0x4a63, 0x5725, 0x4d36, + 0x3636, 0x3f39, 0x555b, 0x3827, 0x4557, 0x5e52, 0x3f59, 0x4255, + 0x4740, 0x3b24, 0x3128, 0x456a, 0x457b, 0x4c27, 0x3127, 0x3556, + 0x4428, 0x5e53, 0x513a, 0x3369, 0x4372, 0x3777, 0x5674, 0x3523, + 0x3270, 0x4434, 0x4469, 0x402d, 0x5e54, 0x3068, 0x4544, 0x4160, + 0x3955, 0x3e5c, 0x4d58, 0x304e, 0x4d4f, 0x5e56, 0x3e50, 0x573e, + 0x5e55, 0x5550, 0x305d, 0x4462, 0x4223, 0x3c70, 0x5335, 0x4039, + 0x4521, 0x3226, 0x5471, 0x4028, 0x4a43, 0x5e57, 0x557c, 0x3930, + 0x482d, 0x4b29, 0x5e59, 0x3f3d, 0x4634, 0x5727, 0x4a30, 0x4443, + 0x3356, 0x3952, 0x5638, 0x6a7c, 0x3034, 0x3f66, 0x4c74, 0x4d5a, + 0x563f, 0x424e, 0x4e4e, 0x4c22, 0x502e, 0x4453, 0x3532, 0x5e58, + 0x5575, 0x3c37, 0x3b53, 0x3024, 0x4532, 0x346c, 0x5571, 0x6a7d, + 0x5e5a, 0x4d26, 0x4d6c, 0x4e66, 0x5e5c, 0x4d31, 0x4026, 0x573d, + 0x5e5b, 0x3046, 0x3a34, 0x4953, 0x4473, 0x3e68, 0x3236, 0x404c, + 0x4b70, 0x3c71, 0x3b3b, 0x3537, 0x4575, 0x5e66, 0x5e63, 0x3e5d, + 0x5e5f, 0x3437, 0x3d5d, 0x5e60, 0x446d, 0x4f46, 0x3560, 0x365e, + 0x4a5a, 0x3574, 0x5e65, 0x5546, 0x5e61, 0x4c4d, 0x467e, 0x4545, + 0x5234, 0x3e72, 0x4253, 0x4c3d, 0x3338, 0x3d53, 0x3f58, 0x4d46, + 0x515a, 0x346b, 0x5e64, 0x5e5d, 0x5e67, 0x6a7e, 0x4230, 0x5e62, + 0x5640, 0x3527, 0x3274, 0x5e68, 0x5e72, 0x5e6d, 0x5e71, 0x4860, + 0x5761, 0x5e6f, 0x4368, 0x4c61, 0x3265, 0x523e, 0x5e6e, 0x5e6b, + 0x4e55, 0x3427, 0x3f2b, 0x3e3e, 0x3d52, 0x5e69, 0x542e, 0x5e5e, + 0x5e6a, 0x403f, 0x5e6c, 0x3273, 0x3869, 0x4227, 0x3d41, 0x5e75, + 0x5e78, 0x322b, 0x3424, 0x346a, 0x4926, 0x5e76, 0x4b51, 0x3863, + 0x5e77, 0x5e7a, 0x5e79, 0x4c42, 0x3061, 0x346e, 0x653a, 0x502f, + 0x326b, 0x6b21, 0x5e74, 0x4963, 0x5e73, 0x305a, 0x5221, 0x3177, + 0x4c2f, 0x5e70, 0x4b24, 0x552a, 0x5e7b, 0x345d, 0x4426, 0x5e7d, + 0x437e, 0x4421, 0x5f21, 0x414c, 0x5e7c, 0x3e6f, 0x4632, 0x3345, + 0x4876, 0x4b3a, 0x5e7e, 0x5f24, 0x5732, 0x3337, 0x4143, 0x474b, + 0x3225, 0x3469, 0x572b, 0x446c, 0x5f22, 0x5f23, 0x5f25, 0x3a33, + 0x5f26, 0x405e, 0x4943, 0x3259, 0x4766, 0x5f27, 0x475c, 0x5f28, + 0x6b22, 0x4b53, 0x5f2a, 0x5f29, 0x3241, 0x454a, 0x5f2b, 0x545c, + 0x4841, 0x5f2c, 0x3e70, 0x5f2d, 0x5627, 0x6a37, 0x6b36, 0x4a55, + 0x587c, 0x3844, 0x3925, 0x3745, 0x557e, 0x394a, 0x5027, 0x744d, + 0x3550, 0x4374, 0x3e48, 0x6b37, 0x303d, 0x3d4c, 0x4132, 0x3156, + 0x3328, 0x3852, 0x4922, 0x3658, 0x6b38, 0x3e34, 0x4a7d, 0x4743, + 0x557b, 0x3773, 0x4e44, 0x552b, 0x3173, 0x6c33, 0x305f, 0x6c35, + 0x3637, 0x414f, 0x757a, 0x5031, 0x5565, 0x4e53, 0x3d6f, 0x3362, + 0x382b, 0x5536, 0x6d3d, 0x364f, 0x4b39, 0x5042, 0x373d, 0x6c36, + 0x4a29, 0x4554, 0x6c39, 0x6c38, 0x4243, 0x6c37, 0x507d, 0x6c3a, + 0x6c3b, 0x5765, 0x6c3c, 0x6c3d, 0x466c, 0x4e5e, 0x3c48, 0x4855, + 0x3529, 0x3e49, 0x563c, 0x5467, 0x512e, 0x5071, 0x6a38, 0x6a39, + 0x6a3a, 0x3a35, 0x4a31, 0x3f75, 0x4d7a, 0x6a40, 0x303a, 0x6a3e, + 0x4025, 0x6a3b, 0x327d, 0x4377, 0x3b68, 0x5257, 0x4e74, 0x6a3f, + 0x6a3c, 0x6a43, 0x5047, 0x5333, 0x343a, 0x4341, 0x5772, 0x5551, + 0x4a47, 0x6a45, 0x6a44, 0x6a47, 0x6a46, 0x5667, 0x4f54, 0x6a4b, + 0x3b4e, 0x3d7a, 0x494e, 0x6a4c, 0x4939, 0x4f7e, 0x6a4a, 0x544e, + 0x6a4d, 0x6a4f, 0x4d6d, 0x6a49, 0x6a4e, 0x4e6e, 0x3b5e, 0x333f, + 0x4655, 0x3e30, 0x4e7a, 0x4767, 0x3e27, 0x6a50, 0x5647, 0x4140, + 0x545d, 0x6a51, 0x4f3e, 0x6a52, 0x4a6e, 0x452f, 0x3035, 0x6a54, + 0x6a53, 0x745f, 0x443a, 0x3129, 0x655f, 0x6a55, 0x4a6f, 0x6a56, + 0x6a57, 0x4658, 0x6a58, 0x6a59, 0x543b, 0x477a, 0x5237, 0x387c, + 0x6a42, 0x325c, 0x427c, 0x5478, 0x4c66, 0x576e, 0x5442, 0x5350, + 0x6b43, 0x4573, 0x377e, 0x6b54, 0x4b37, 0x6b5e, 0x404a, 0x4d7b, + 0x332f, 0x465a, 0x6b7c, 0x443e, 0x4e34, 0x4429, 0x313e, 0x547d, + 0x4a75, 0x566c, 0x4653, 0x3664, 0x3b7a, 0x5060, 0x4931, 0x5453, + 0x4828, 0x384b, 0x683e, 0x493c, 0x683b, 0x406e, 0x5053, 0x3244, + 0x3465, 0x683c, 0x5548, 0x3645, 0x683d, 0x4a78, 0x385c, 0x4c75, + 0x4034, 0x516e, 0x683f, 0x6842, 0x3a3c, 0x312d, 0x3d5c, 0x6a3d, + 0x6843, 0x6846, 0x684b, 0x684c, 0x4b49, 0x3065, 0x3c2b, 0x3939, + 0x6841, 0x4d77, 0x684a, 0x4e76, 0x556d, 0x4156, 0x6844, 0x4336, + 0x397b, 0x5626, 0x6848, 0x4a60, 0x5466, 0x6840, 0x6845, 0x6847, + 0x4739, 0x3763, 0x6849, 0x3f5d, 0x6852, 0x6857, 0x6855, 0x3c5c, + 0x3c4f, 0x685b, 0x685e, 0x685a, 0x317a, 0x3058, 0x4433, 0x384c, + 0x4662, 0x483e, 0x4861, 0x684f, 0x6854, 0x6856, 0x3971, 0x6858, + 0x5775, 0x447b, 0x685c, 0x3269, 0x6851, 0x3c6d, 0x3f42, 0x684d, + 0x5679, 0x4178, 0x3271, 0x685f, 0x4a41, 0x6859, 0x5524, 0x316a, + 0x553b, 0x684e, 0x6850, 0x3630, 0x6853, 0x685d, 0x4038, 0x4a77, + 0x4b28, 0x465c, 0x4075, 0x6869, 0x5023, 0x6872, 0x566a, 0x6860, + 0x6861, 0x5179, 0x3a4b, 0x3879, 0x3871, 0x5454, 0x686f, 0x686e, + 0x686c, 0x3970, 0x4c52, 0x6866, 0x4e26, 0x3f72, 0x3038, 0x6871, + 0x6870, 0x5740, 0x6864, 0x4d29, 0x4923, 0x3b38, 0x3d5b, 0x686a, + 0x6862, 0x6863, 0x6865, 0x3535, 0x6867, 0x4745, 0x686b, 0x686d, + 0x3d30, 0x572e, 0x6878, 0x6875, 0x4d30, 0x6876, 0x413a, 0x6868, + 0x4337, 0x3070, 0x6874, 0x6877, 0x3923, 0x4952, 0x434e, 0x4e60, + 0x4066, 0x4b73, 0x4c5d, 0x5035, 0x4a61, 0x6873, 0x3c6c, 0x6879, + 0x435e, 0x4665, 0x3977, 0x3074, 0x5758, 0x3c2c, 0x456f, 0x4c44, + 0x6926, 0x492d, 0x6922, 0x4062, 0x3f43, 0x687e, 0x3957, 0x687b, + 0x6924, 0x524e, 0x6923, 0x5632, 0x5735, 0x6927, 0x3d37, 0x687c, + 0x687d, 0x6921, 0x4d56, 0x522c, 0x6932, 0x6929, 0x342a, 0x343b, + 0x692b, 0x5028, 0x6925, 0x337e, 0x692c, 0x4063, 0x692a, 0x6939, + 0x6938, 0x692e, 0x687a, 0x6928, 0x3f2c, 0x6931, 0x693a, 0x4225, + 0x692f, 0x3845, 0x692d, 0x535c, 0x6934, 0x6935, 0x6937, 0x6947, + 0x4046, 0x6945, 0x6930, 0x693b, 0x3071, 0x693c, 0x5525, 0x693e, + 0x693f, 0x6941, 0x4171, 0x4836, 0x693d, 0x6942, 0x6943, 0x6933, + 0x6936, 0x3b31, 0x6940, 0x3c77, 0x6944, 0x6946, 0x694a, 0x694e, + 0x325b, 0x6948, 0x372e, 0x694b, 0x694c, 0x5541, 0x4423, 0x6958, + 0x3a61, 0x6949, 0x5323, 0x6954, 0x6957, 0x6950, 0x694f, 0x4741, + 0x6952, 0x6959, 0x3348, 0x6953, 0x4f70, 0x694d, 0x3377, 0x6956, + 0x695a, 0x4c34, 0x4f2d, 0x6955, 0x695c, 0x695b, 0x695e, 0x6951, + 0x695d, 0x695f, 0x434a, 0x4737, 0x344e, 0x3b36, 0x5040, 0x6c23, + 0x4537, 0x537b, 0x6c24, 0x6c25, 0x465b, 0x3f6e, 0x6c26, 0x6c27, + 0x502a, 0x4738, 0x3868, 0x6c28, 0x5639, 0x557d, 0x344b, 0x323d, + 0x4e64, 0x4667, 0x4d61, 0x3475, 0x4b40, 0x3c5f, 0x6962, 0x6963, + 0x516a, 0x6965, 0x3479, 0x6964, 0x5133, 0x4a62, 0x3250, 0x6968, + 0x6966, 0x6967, 0x5633, 0x6969, 0x696a, 0x696b, 0x696c, 0x6c2f, + 0x4539, 0x364e, 0x5273, 0x356e, 0x3b59, 0x6c31, 0x5263, 0x4e63, + 0x4438, 0x433f, 0x363e, 0x5839, 0x3148, 0x314f, 0x3151, 0x457e, + 0x3150, 0x432b, 0x5531, 0x6b24, 0x3a41, 0x4c3a, 0x6b25, 0x6b27, + 0x6b28, 0x6b26, 0x6b29, 0x6b2b, 0x6b2a, 0x6b2c, 0x4a4f, 0x5835, + 0x4371, 0x4325, 0x4678, 0x6b2d, 0x444a, 0x6b2e, 0x6b2f, 0x6b30, + 0x3755, 0x377a, 0x6b31, 0x4762, 0x6b33, 0x3a24, 0x5175, 0x3031, + 0x6b32, 0x6b34, 0x352a, 0x4248, 0x4768, 0x6b35, 0x4b2e, 0x635f, + 0x5340, 0x595b, 0x4d21, 0x562d, 0x4773, 0x5960, 0x3b63, 0x3a3a, + 0x6362, 0x4f2b, 0x6360, 0x4947, 0x3a39, 0x5134, 0x6361, 0x486a, + 0x392f, 0x3d2d, 0x3358, 0x4e5b, 0x4c40, 0x6368, 0x6369, 0x4d74, + 0x4c2d, 0x3c33, 0x636a, 0x636b, 0x505a, 0x467b, 0x375a, 0x475f, + 0x524a, 0x4e56, 0x6364, 0x636c, 0x4972, 0x3341, 0x6367, 0x4663, + 0x6365, 0x6d33, 0x6366, 0x4933, 0x4566, 0x3935, 0x433b, 0x6363, + 0x453d, 0x4124, 0x4259, 0x3257, 0x636d, 0x3b26, 0x442d, 0x6370, + 0x3e5a, 0x637b, 0x6375, 0x3a53, 0x3750, 0x534d, 0x564e, 0x5553, + 0x3941, 0x5534, 0x5158, 0x5039, 0x4776, 0x482a, 0x3234, 0x435a, + 0x636e, 0x637c, 0x636f, 0x3728, 0x6377, 0x6374, 0x373a, 0x4522, + 0x6376, 0x455d, 0x3228, 0x467c, 0x4460, 0x5722, 0x4061, 0x6379, + 0x637a, 0x637d, 0x4c29, 0x6373, 0x533e, 0x3143, 0x6d34, 0x6371, + 0x6372, 0x6378, 0x503a, 0x4643, 0x5473, 0x637e, 0x3d60, 0x6427, + 0x6426, 0x5173, 0x6423, 0x6429, 0x4877, 0x4f34, 0x6428, 0x642e, + 0x4265, 0x3634, 0x3d72, 0x6422, 0x3a69, 0x642a, 0x642c, 0x367d, + 0x565e, 0x6432, 0x642d, 0x6421, 0x3b6e, 0x4d5d, 0x4722, 0x4549, + 0x4177, 0x6424, 0x4733, 0x3d2c, 0x3d3d, 0x6425, 0x5747, 0x3262, + 0x642b, 0x3c43, 0x642f, 0x3b6b, 0x6430, 0x4528, 0x6431, 0x5563, + 0x3f23, 0x643a, 0x6437, 0x643b, 0x643d, 0x4656, 0x3a46, 0x404b, + 0x3821, 0x6434, 0x5421, 0x3a23, 0x3d7e, 0x643c, 0x4d3f, 0x4479, + 0x4f7b, 0x4966, 0x533f, 0x4f51, 0x6433, 0x6438, 0x6439, 0x4c69, + 0x4c4e, 0x4054, 0x6435, 0x4130, 0x6436, 0x4e50, 0x3b41, 0x3553, + 0x4873, 0x3d27, 0x5547, 0x492c, 0x3822, 0x644a, 0x644c, 0x5144, + 0x523a, 0x3a2d, 0x3a54, 0x6443, 0x356d, 0x574d, 0x6440, 0x4f7d, + 0x643f, 0x415c, 0x4c4a, 0x4a67, 0x4457, 0x4c54, 0x6448, 0x6447, + 0x6441, 0x6444, 0x352d, 0x5359, 0x6446, 0x5279, 0x3463, 0x3b34, + 0x496e, 0x343e, 0x3b6c, 0x514d, 0x4c6d, 0x6d35, 0x4765, 0x5428, + 0x644b, 0x5755, 0x6442, 0x3d25, 0x6445, 0x5366, 0x6449, 0x4978, + 0x643e, 0x5365, 0x477e, 0x3649, 0x547c, 0x3233, 0x6457, 0x4e42, + 0x644d, 0x4e3c, 0x385b, 0x6456, 0x3f4a, 0x534e, 0x436c, 0x4548, + 0x6458, 0x4d44, 0x644f, 0x6454, 0x6455, 0x3a7e, 0x4f66, 0x553f, + 0x6452, 0x6450, 0x644e, 0x4d65, 0x4a2a, 0x4023, 0x3d26, 0x6453, + 0x3848, 0x6467, 0x5434, 0x645b, 0x416f, 0x6469, 0x5267, 0x645f, + 0x6460, 0x4f2a, 0x4b5d, 0x645a, 0x6451, 0x6465, 0x485c, 0x6463, + 0x4467, 0x6462, 0x6461, 0x337c, 0x6468, 0x3561, 0x574c, 0x6466, + 0x3b2c, 0x5752, 0x4c4f, 0x6b78, 0x6464, 0x3976, 0x564d, 0x6459, + 0x645c, 0x427a, 0x645e, 0x424b, 0x4044, 0x4250, 0x3175, 0x4c32, + 0x354e, 0x646f, 0x462f, 0x4661, 0x6475, 0x4229, 0x406c, 0x515d, + 0x646e, 0x442e, 0x646d, 0x6476, 0x6474, 0x427e, 0x645d, 0x6470, + 0x4a7e, 0x5544, 0x6471, 0x517a, 0x646b, 0x646c, 0x6472, 0x4e2b, + 0x454b, 0x4731, 0x423a, 0x646a, 0x414a, 0x4c36, 0x3331, 0x647b, + 0x6473, 0x647a, 0x647d, 0x647c, 0x334e, 0x333a, 0x6477, 0x6479, + 0x6478, 0x456c, 0x403d, 0x5468, 0x6522, 0x3044, 0x6524, 0x6523, + 0x3c24, 0x6525, 0x6521, 0x647e, 0x3174, 0x6528, 0x6529, 0x6526, + 0x6527, 0x652a, 0x4659, 0x652b, 0x652d, 0x652c, 0x652f, 0x652e, + 0x3960, 0x6530, 0x6531, 0x3b70, 0x6c61, 0x4370, 0x3546, 0x3b52, + 0x4169, 0x546e, 0x3e44, 0x5746, 0x5456, 0x3253, 0x6c3e, 0x6a41, + 0x422f, 0x3436, 0x5157, 0x3334, 0x4832, 0x3f3b, 0x6c40, 0x564b, + 0x6c3f, 0x6c41, 0x6c45, 0x3e66, 0x4c3f, 0x455a, 0x3e3c, 0x6c46, + 0x317e, 0x6c44, 0x5528, 0x3563, 0x6c42, 0x4136, 0x3363, 0x6c43, + 0x4b38, 0x4043, 0x4c7e, 0x4152, 0x6c48, 0x3a66, 0x4053, 0x5672, + 0x514c, 0x3f3e, 0x3733, 0x4955, 0x6c47, 0x3b62, 0x4c4c, 0x3d7d, + 0x4848, 0x4f29, 0x4d69, 0x456b, 0x3769, 0x5149, 0x3a38, 0x6c49, + 0x6c4a, 0x3b40, 0x6c4b, 0x6c62, 0x313a, 0x3759, 0x3d39, 0x6c4c, + 0x5166, 0x6c4d, 0x483b, 0x6c51, 0x6c53, 0x3b4d, 0x3c65, 0x6c4f, + 0x4937, 0x433a, 0x6c63, 0x5555, 0x6c50, 0x5673, 0x6c52, 0x6c4e, + 0x6c54, 0x6c55, 0x493f, 0x4f28, 0x505c, 0x512c, 0x485b, 0x6c56, + 0x4e75, 0x4a6c, 0x6c5a, 0x6c59, 0x303e, 0x6c57, 0x6c58, 0x6c64, + 0x483c, 0x4147, 0x6c5c, 0x5160, 0x6c5b, 0x546f, 0x6c5d, 0x5b46, + 0x6c5e, 0x312c, 0x6c5f, 0x6c60, 0x5726, 0x4540, 0x6b3c, 0x302e, + 0x3e74, 0x3838, 0x522f, 0x3056, 0x3579, 0x5833, 0x4b2c, 0x635d, + 0x462c, 0x3066, 0x4546, 0x6b39, 0x6b3a, 0x6b3b, 0x5140, 0x4523, + 0x6a72, 0x4432, 0x4435, 0x404e, 0x6a73, 0x4441, 0x4e6f, 0x6a70, + 0x6a74, 0x497c, 0x4723, 0x4c58, 0x4e7e, 0x6a75, 0x6a76, 0x4f2c, + 0x4067, 0x6a77, 0x363f, 0x6a78, 0x6a79, 0x6a7a, 0x6a7b, 0x6a71, + 0x482e, 0x616b, 0x3738, 0x616c, 0x616d, 0x5734, 0x616e, 0x616f, + 0x534c, 0x6171, 0x3f71, 0x6170, 0x3552, 0x3137, 0x6173, 0x6172, + 0x3a7c, 0x6174, 0x3937, 0x3e51, 0x447c, 0x3a5d, 0x3d46, 0x6175, + 0x6177, 0x3640, 0x4f41, 0x4a28, 0x6176, 0x5578, 0x537c, 0x6178, + 0x617c, 0x6179, 0x617a, 0x406a, 0x617e, 0x6221, 0x4047, 0x617b, + 0x617d, 0x6225, 0x4154, 0x6223, 0x6228, 0x327e, 0x6222, 0x434d, + 0x3242, 0x6227, 0x6226, 0x6224, 0x6229, 0x622b, 0x5049, 0x566d, + 0x4328, 0x622c, 0x4f57, 0x622e, 0x3a6f, 0x6960, 0x622d, 0x622a, + 0x3b2b, 0x5433, 0x6230, 0x622f, 0x6961, 0x6231, 0x6232, 0x6233, + 0x4c21, 0x6234, 0x6235, 0x507e, 0x424a, 0x5371, 0x4d75, 0x6760, + 0x6761, 0x3e41, 0x426a, 0x6764, 0x6763, 0x4d66, 0x4335, 0x6762, + 0x3b37, 0x4f56, 0x4161, 0x6769, 0x6768, 0x6774, 0x3223, 0x676a, + 0x6766, 0x676c, 0x676b, 0x493a, 0x5564, 0x6765, 0x3729, 0x6767, + 0x676e, 0x6773, 0x5669, 0x676d, 0x6772, 0x6771, 0x3060, 0x6775, + 0x4772, 0x4045, 0x406d, 0x4170, 0x6770, 0x6776, 0x4b76, 0x6822, + 0x6821, 0x5741, 0x677a, 0x6779, 0x677b, 0x6777, 0x677e, 0x677d, + 0x677c, 0x4155, 0x4759, 0x457d, 0x4543, 0x476d, 0x6823, 0x6826, + 0x6825, 0x6827, 0x3a77, 0x6778, 0x6824, 0x4870, 0x492a, 0x6829, + 0x3965, 0x517e, 0x6828, 0x682a, 0x682d, 0x682e, 0x4127, 0x682f, + 0x6830, 0x682c, 0x6834, 0x682b, 0x6831, 0x6835, 0x6832, 0x6833, + 0x6837, 0x6836, 0x394f, 0x702c, 0x702d, 0x4630, 0x306a, 0x483f, + 0x4d5f, 0x4e4d, 0x6a31, 0x6a32, 0x463f, 0x3449, 0x6a33, 0x5567, + 0x5d79, 0x6a34, 0x6a35, 0x6a36, 0x384a, 0x5f30, 0x4975, 0x4c70, + 0x497a, 0x497b, 0x5343, 0x4b26, 0x3826, 0x702e, 0x3142, 0x6538, + 0x4c6f, 0x5349, 0x3c57, 0x496a, 0x3567, 0x4450, 0x3569, 0x6e2e, + 0x3b2d, 0x675e, 0x6e2f, 0x3329, 0x6e32, 0x6e31, 0x3d67, 0x6e30, + 0x4e37, 0x454f, 0x4174, 0x5b4e, 0x6e33, 0x5073, 0x4254, 0x4668, + 0x372c, 0x6e34, 0x336b, 0x3b7b, 0x6e35, 0x675c, 0x6e36, 0x3d2e, + 0x7162, 0x4a68, 0x5249, 0x705a, 0x705b, 0x705c, 0x4146, 0x386d, + 0x3e4e, 0x705e, 0x4531, 0x705d, 0x5171, 0x7060, 0x304c, 0x3d6a, + 0x525f, 0x705f, 0x342f, 0x3768, 0x7066, 0x7065, 0x4623, 0x7061, + 0x7062, 0x3443, 0x7063, 0x556e, 0x4c5b, 0x3e52, 0x3c32, 0x7068, + 0x7067, 0x7064, 0x3221, 0x5622, 0x5338, 0x3e37, 0x482c, 0x706a, + 0x5177, 0x564c, 0x3a5b, 0x7069, 0x363b, 0x4d34, 0x4626, 0x4121, + 0x706b, 0x706e, 0x706d, 0x7070, 0x706c, 0x3b3e, 0x706f, 0x4c35, + 0x7072, 0x3355, 0x3154, 0x7073, 0x7074, 0x7076, 0x3461, 0x7071, + 0x7077, 0x707a, 0x7078, 0x7075, 0x707d, 0x7079, 0x707c, 0x707e, + 0x7121, 0x4e41, 0x7124, 0x7123, 0x4176, 0x707b, 0x4a5d, 0x3471, + 0x3171, 0x4c31, 0x7126, 0x7127, 0x712c, 0x554e, 0x7129, 0x4833, + 0x7122, 0x712b, 0x7128, 0x7125, 0x712a, 0x3029, 0x712d, 0x712f, + 0x7131, 0x7130, 0x712e, 0x5122, 0x7132, 0x7133, 0x396f, 0x3547, + 0x3057, 0x3059, 0x546d, 0x3544, 0x3d54, 0x3b4a, 0x7027, 0x385e, + 0x7028, 0x3028, 0x7029, 0x4d6e, 0x702a, 0x702b, 0x4624, 0x5665, + 0x7164, 0x7165, 0x4373, 0x535b, 0x5651, 0x4568, 0x532f, 0x5266, + 0x6e41, 0x303b, 0x5535, 0x514e, 0x3c60, 0x3a50, 0x3f78, 0x3847, + 0x3541, 0x454c, 0x4a22, 0x434b, 0x6e42, 0x443f, 0x3622, 0x6d6c, + 0x4324, 0x5631, 0x4f60, 0x6d6f, 0x454e, 0x365c, 0x4a21, 0x6d6d, + 0x6d70, 0x6d71, 0x433c, 0x3f34, 0x6d6e, 0x6d74, 0x6d72, 0x5566, + 0x435f, 0x6d73, 0x6d76, 0x5523, 0x5123, 0x6d75, 0x4350, 0x6d77, + 0x3f74, 0x3e6c, 0x6d78, 0x4c77, 0x515b, 0x5745, 0x5576, 0x6d7c, + 0x6d7b, 0x6d79, 0x6d7a, 0x6d7d, 0x3e26, 0x4b2f, 0x6e21, 0x363d, + 0x6e22, 0x4440, 0x6d7e, 0x3d5e, 0x3247, 0x3643, 0x6e25, 0x583a, + 0x6e23, 0x6e26, 0x4369, 0x3372, 0x6e27, 0x6e24, 0x4f39, 0x6e28, + 0x4277, 0x6e29, 0x6e2a, 0x5e2b, 0x4633, 0x4746, 0x5675, 0x3549, + 0x4b32, 0x6e2b, 0x4d2b, 0x6e2c, 0x5530, 0x6e2d, 0x7644, 0x5b47, + 0x3423, 0x432c, 0x7166, 0x4a38, 0x5253, 0x562a, 0x6f72, 0x3e58, + 0x3d43, 0x6f73, 0x364c, 0x302b, 0x4a2f, 0x6d36, 0x6d37, 0x4e79, + 0x372f, 0x3f73, 0x6d38, 0x426b, 0x4930, 0x6d39, 0x4676, 0x3f33, + 0x6d3c, 0x4578, 0x5150, 0x5729, 0x6d3a, 0x6d3b, 0x5162, 0x6d3f, + 0x6d40, 0x6d44, 0x6d48, 0x6d46, 0x6d4e, 0x5568, 0x6d49, 0x6d47, + 0x6d3e, 0x4569, 0x4646, 0x4969, 0x5452, 0x6d41, 0x6d42, 0x6d43, + 0x6d45, 0x4079, 0x3421, 0x3968, 0x6d50, 0x6d51, 0x6d4a, 0x6d4f, + 0x4e78, 0x4b36, 0x6d4c, 0x6d4d, 0x4f75, 0x6d52, 0x4172, 0x5332, + 0x6d4b, 0x4837, 0x3c6f, 0x4570, 0x6d56, 0x356f, 0x4235, 0x302d, + 0x4b69, 0x312e, 0x6d54, 0x4d6b, 0x3562, 0x6d55, 0x6d53, 0x6d57, + 0x357a, 0x6d58, 0x6d59, 0x6d5c, 0x314c, 0x4576, 0x3c6e, 0x6d5a, + 0x4c3c, 0x326a, 0x6d5b, 0x446b, 0x3445, 0x3075, 0x6d5f, 0x405a, + 0x3468, 0x454d, 0x6d5d, 0x3f44, 0x6d5e, 0x4425, 0x6d60, 0x6d61, + 0x6d63, 0x4157, 0x3b47, 0x3d38, 0x6d62, 0x6d64, 0x6d66, 0x6d65, + 0x6d67, 0x4a3e, 0x6c6a, 0x4071, 0x4967, 0x6c6b, 0x466e, 0x6c6c, + 0x466d, 0x6c6d, 0x6c70, 0x5766, 0x6c73, 0x6c71, 0x6c6e, 0x6c6f, + 0x5723, 0x4971, 0x4b6e, 0x6c74, 0x6c72, 0x4f69, 0x6c76, 0x4631, + 0x3c40, 0x6c75, 0x353b, 0x3b76, 0x6c77, 0x5977, 0x3d7b, 0x423b, + 0x6c78, 0x6c79, 0x3823, 0x6c7a, 0x6c7b, 0x6c7c, 0x536d, 0x582e, + 0x406b, 0x475d, 0x3a4c, 0x5063, 0x4b3d, 0x4d3a, 0x3851, 0x317c, + 0x476f, 0x5656, 0x3f46, 0x436b, 0x6f75, 0x4358, 0x5762, 0x6f77, + 0x3353, 0x4758, 0x516d, 0x5648, 0x6f78, 0x6f76, 0x3b7d, 0x3346, + 0x3d55, 0x5246, 0x3b60, 0x4f21, 0x6f7c, 0x6f7b, 0x6f79, 0x334c, + 0x4954, 0x4b30, 0x6f7e, 0x305e, 0x5649, 0x6f7d, 0x336d, 0x7655, + 0x4e48, 0x7022, 0x7021, 0x353e, 0x3c5a, 0x3b7c, 0x3865, 0x4442, + 0x7023, 0x4b6b, 0x7026, 0x5128, 0x3e3f, 0x476e, 0x7136, 0x7137, + 0x3f55, 0x3429, 0x7138, 0x4d3b, 0x4754, 0x552d, 0x7139, 0x713a, + 0x474f, 0x5224, 0x564f, 0x713b, 0x3d51, 0x3430, 0x3e3d, 0x345c, + 0x4e51, 0x3f5f, 0x713d, 0x3f7a, 0x713c, 0x713f, 0x713e, 0x7140, + 0x7141, 0x417e, 0x4122, 0x4a7a, 0x553e, 0x3e3a, 0x3e39, 0x5542, + 0x3f22, 0x4d2f, 0x7135, 0x3d5f, 0x364b, 0x5671, 0x7343, 0x7344, + 0x384d, 0x7346, 0x7347, 0x304a, 0x7345, 0x7349, 0x4b71, 0x734b, + 0x5026, 0x314a, 0x7348, 0x734f, 0x3551, 0x7357, 0x7352, 0x7354, + 0x7353, 0x377b, 0x313f, 0x734e, 0x734a, 0x355a, 0x7350, 0x7351, + 0x7355, 0x734d, 0x3c63, 0x417d, 0x7356, 0x735a, 0x734c, 0x3548, + 0x3d6e, 0x735c, 0x3724, 0x3f70, 0x567e, 0x4d32, 0x3470, 0x325f, + 0x7358, 0x7359, 0x4938, 0x735d, 0x735e, 0x7361, 0x735f, 0x7363, + 0x7362, 0x735b, 0x3f6a, 0x336f, 0x7360, 0x4729, 0x3c72, 0x736b, + 0x393f, 0x7364, 0x322d, 0x3b7e, 0x4b63, 0x736d, 0x7369, 0x395c, + 0x736e, 0x7365, 0x7366, 0x736a, 0x4261, 0x736c, 0x736f, 0x7368, + 0x3c7d, 0x4f64, 0x7370, 0x7367, 0x7372, 0x572d, 0x462a, 0x7373, + 0x7371, 0x4228, 0x385d, 0x7375, 0x7374, 0x345b, 0x7376, 0x7377, + 0x7378, 0x403a, 0x4069, 0x4571, 0x737b, 0x737a, 0x3458, 0x737e, + 0x7379, 0x737c, 0x737d, 0x7421, 0x7423, 0x3b49, 0x7422, 0x7424, + 0x323e, 0x7426, 0x7425, 0x3c2e, 0x4357, 0x5961, 0x4060, 0x744c, + 0x5751, 0x375b, 0x744e, 0x4123, 0x4649, 0x3456, 0x5533, 0x7450, + 0x744f, 0x7451, 0x4b5a, 0x7452, 0x5441, 0x5660, 0x3760, 0x4138, + 0x413b, 0x7453, 0x3e2c, 0x3462, 0x7454, 0x7455, 0x3e2b, 0x7456, + 0x745b, 0x7457, 0x745a, 0x3a7d, 0x7458, 0x7459, 0x3862, 0x4c47, + 0x745c, 0x325a, 0x4353, 0x5463, 0x3f37, 0x745d, 0x4534, 0x7469, + 0x4f35, 0x4e49, 0x4b58, 0x4b77, 0x3d74, 0x574f, 0x405b, 0x5075, + 0x746a, 0x746b, 0x746c, 0x7763, 0x3731, 0x746d, 0x576b, 0x746e, + 0x6679, 0x3e40, 0x667a, 0x3a6c, 0x667b, 0x4f4b, 0x667c, 0x543c, + 0x3c36, 0x667d, 0x667e, 0x3c4d, 0x4852, 0x4e33, 0x6721, 0x343f, + 0x6722, 0x4934, 0x3859, 0x4449, 0x575d, 0x425a, 0x3757, 0x563d, + 0x4e46, 0x3744, 0x4526, 0x6723, 0x4f5f, 0x6724, 0x6725, 0x6726, + 0x4137, 0x5769, 0x4970, 0x4f38, 0x562f, 0x5655, 0x6727, 0x306d, + 0x6728, 0x6729, 0x495c, 0x526f, 0x3e2d, 0x672a, 0x3073, 0x485e, + 0x3d61, 0x672b, 0x4846, 0x672c, 0x3b66, 0x3878, 0x5124, 0x672d, + 0x4267, 0x3e78, 0x3d4a, 0x4d33, 0x672e, 0x672f, 0x3e6e, 0x5065, + 0x4b67, 0x4c50, 0x3c4c, 0x6730, 0x3c28, 0x5077, 0x6731, 0x5078, + 0x6732, 0x6733, 0x3442, 0x6734, 0x6735, 0x497e, 0x4e2c, 0x4360, + 0x6737, 0x3141, 0x3371, 0x6738, 0x6739, 0x575b, 0x5540, 0x673a, + 0x424c, 0x573a, 0x673b, 0x673c, 0x673d, 0x3c6a, 0x4365, 0x4042, + 0x673e, 0x673f, 0x3c29, 0x6740, 0x6741, 0x6736, 0x3650, 0x6742, + 0x6743, 0x6744, 0x3b3a, 0x355e, 0x4246, 0x3160, 0x6745, 0x5435, + 0x6746, 0x383f, 0x6748, 0x6747, 0x376c, 0x6749, 0x3278, 0x674a, + 0x674b, 0x674c, 0x674d, 0x674e, 0x674f, 0x6750, 0x5327, 0x4b75, + 0x6751, 0x6752, 0x6753, 0x6754, 0x4949, 0x6755, 0x6756, 0x6757, + 0x6758, 0x6759, 0x3d49, 0x675a, 0x733e, 0x3857, 0x4831, 0x733f, + 0x7340, 0x7341, 0x395e, 0x4d78, 0x5868, 0x3a31, 0x425e, 0x6e37, + 0x3723, 0x6e39, 0x6e38, 0x3055, 0x6e3b, 0x5556, 0x576f, 0x5643, + 0x6e3d, 0x4a70, 0x6e3c, 0x6e3e, 0x6e40, 0x6e3f, 0x5172, 0x473c, + 0x4340, 0x3861, 0x4167, 0x7446, 0x505f, 0x7447, 0x4f5b, 0x483a, + 0x7448, 0x7449, 0x744a, 0x744b, 0x597a, 0x387e, 0x6571, 0x5370, + 0x7460, 0x4e4c, 0x3361, 0x7134, 0x526e, 0x7461, 0x4f68, 0x7462, + 0x474c, 0x3554, 0x3464, 0x7464, 0x7463, 0x7465, 0x7466, 0x7467, + 0x3a32, 0x303f, 0x7468, 0x372d, 0x526d, 0x522b, 0x404f, 0x3f3c, + 0x6b23, 0x555f, 0x6a48, 0x7173, 0x3678, 0x4b23, 0x444d, 0x7167, + 0x7168, 0x387b, 0x7169, 0x3a44, 0x5445, 0x3052, 0x716a, 0x716b, + 0x716c, 0x716d, 0x716e, 0x716f, 0x7171, 0x7170, 0x4555, 0x7172, + 0x367a, 0x7174, 0x522e, 0x5e47, 0x4b4a, 0x335c, 0x3522, 0x3922, + 0x4474, 0x7175, 0x7176, 0x4144, 0x417b, 0x5630, 0x7177, 0x7178, + 0x412a, 0x4638, 0x3e5b, 0x7179, 0x344f, 0x717a, 0x6d32, 0x6d31, + 0x4b60, 0x525e, 0x4b41, 0x5558, 0x4862, 0x405f, 0x3c21, 0x6b41, + 0x5024, 0x5662, 0x3647, 0x3858, 0x6b40, 0x384e, 0x6b3f, 0x3326, + 0x3949, 0x562b, 0x3774, 0x374a, 0x3c67, 0x373e, 0x6b46, 0x6b47, + 0x3039, 0x3f4f, 0x6b45, 0x537d, 0x6b48, 0x6b49, 0x374e, 0x6b42, + 0x6b44, 0x4976, 0x5657, 0x554d, 0x5032, 0x6b4f, 0x4e38, 0x6b50, + 0x3528, 0x3133, 0x6b52, 0x4c25, 0x4556, 0x6b53, 0x6b51, 0x455f, + 0x6b4e, 0x4a24, 0x6b55, 0x307b, 0x3a7a, 0x5837, 0x7163, 0x6b4a, + 0x6b4b, 0x6b4c, 0x6b4d, 0x6b56, 0x6640, 0x6b59, 0x3f68, 0x5248, + 0x6b57, 0x6b5c, 0x386c, 0x6b58, 0x3d3a, 0x5058, 0x3037, 0x6b5d, + 0x445c, 0x562c, 0x3460, 0x4276, 0x3c39, 0x6b5a, 0x6b5b, 0x5460, + 0x466a, 0x4454, 0x6b5f, 0x4527, 0x5975, 0x3231, 0x6b64, 0x3d45, + 0x6b62, 0x6b63, 0x382c, 0x4d51, 0x6b65, 0x6b61, 0x4133, 0x4622, + 0x4c73, 0x6b66, 0x4030, 0x5238, 0x6b67, 0x382f, 0x382d, 0x6b68, + 0x473b, 0x4d73, 0x6b6a, 0x6b6b, 0x6b6d, 0x5048, 0x6b72, 0x6b6e, + 0x6b71, 0x4879, 0x517c, 0x6b6c, 0x6b69, 0x3839, 0x4f59, 0x4465, + 0x6b6f, 0x6b70, 0x4c5a, 0x4d48, 0x3072, 0x6b76, 0x6b75, 0x3232, + 0x3860, 0x6b77, 0x316c, 0x4c45, 0x4424, 0x4f25, 0x6b79, 0x6c22, + 0x4572, 0x6b7a, 0x4945, 0x625f, 0x6b7e, 0x4d4e, 0x6c21, 0x315b, + 0x5337, 0x525c, 0x6b7d, 0x6b7b, 0x333c, 0x6a30, 0x5754, 0x742b, + 0x3374, 0x5641, 0x5642, 0x5569, 0x3e4a, 0x7427, 0x5228, 0x7428, + 0x7429, 0x742a, 0x3e4b, 0x535f, 0x4960, 0x4961, 0x7342, 0x4a66, + 0x4c72, 0x6236, 0x4b34, 0x4e68, 0x565b, 0x742d, 0x742e, 0x742f, + 0x7432, 0x3a3d, 0x7433, 0x3063, 0x7430, 0x7431, 0x3d22, 0x3255, + 0x7436, 0x7437, 0x3666, 0x3230, 0x4f4f, 0x7434, 0x342c, 0x7435, + 0x7438, 0x7439, 0x4d27, 0x743a, 0x743b, 0x743c, 0x4b52, 0x743d, + 0x743e, 0x743f, 0x745e, 0x413c, 0x3c68, 0x492b, 0x515e, 0x6575, + 0x5c33, 0x5255, 0x5c34, 0x302c, 0x5c35, 0x3d5a, 0x5c39, 0x5842, + 0x5c37, 0x5373, 0x4956, 0x5c3a, 0x5c36, 0x5c3b, 0x4322, 0x5c3c, + 0x5c45, 0x5c3d, 0x4e5f, 0x5625, 0x5c4f, 0x5c4d, 0x5c52, 0x3d66, + 0x422b, 0x5c38, 0x5c4b, 0x5c4e, 0x5c3e, 0x3752, 0x3045, 0x5c47, + 0x503e, 0x5c41, 0x3b28, 0x373c, 0x5c4c, 0x5c46, 0x5c3f, 0x475b, + 0x513f, 0x5c40, 0x5c4a, 0x5c50, 0x4e2d, 0x5c42, 0x5c43, 0x5c48, + 0x5c49, 0x3254, 0x5c51, 0x4b55, 0x5437, 0x5c5b, 0x5c5f, 0x4c26, + 0x5c66, 0x4367, 0x5c5c, 0x3f41, 0x5c59, 0x307a, 0x3936, 0x5c65, + 0x5c53, 0x5c44, 0x5c56, 0x4874, 0x3f60, 0x493b, 0x313d, 0x5322, + 0x5c5a, 0x5c55, 0x463b, 0x5c5e, 0x5742, 0x432f, 0x3736, 0x4751, + 0x4329, 0x5c62, 0x5c58, 0x5c6b, 0x5c54, 0x5c5d, 0x3e25, 0x5c57, + 0x5c60, 0x5c63, 0x5c64, 0x5c78, 0x5c61, 0x5d22, 0x5c67, 0x3c6b, + 0x3444, 0x4323, 0x3267, 0x5c7a, 0x5c72, 0x5c6f, 0x5c7c, 0x5c6e, + 0x5270, 0x3268, 0x4857, 0x4863, 0x5c7b, 0x5c6d, 0x5c77, 0x5c75, + 0x3e23, 0x5c74, 0x325d, 0x5c73, 0x3c76, 0x5c68, 0x3b44, 0x4073, + 0x3c54, 0x5c69, 0x5c6a, 0x5c71, 0x5c76, 0x5c79, 0x3534, 0x4859, + 0x3b67, 0x5c7e, 0x5c7d, 0x532b, 0x5d21, 0x5d23, 0x5d25, 0x5271, + 0x5d24, 0x5d26, 0x5d27, 0x5229, 0x3a49, 0x5d29, 0x5d36, 0x5d31, + 0x5d34, 0x5d30, 0x464e, 0x4072, 0x492f, 0x5c6c, 0x5d2e, 0x5d37, + 0x5c70, 0x5d2f, 0x5d38, 0x5d2c, 0x5d39, 0x5d33, 0x5d2d, 0x442a, + 0x5d28, 0x4033, 0x412b, 0x5d2a, 0x5d2b, 0x5d32, 0x3b71, 0x5d35, + 0x5328, 0x5d3a, 0x5d3b, 0x4327, 0x5d52, 0x5d3c, 0x5d51, 0x393d, + 0x3e55, 0x3e7a, 0x3a4a, 0x5d4a, 0x5d45, 0x5d3f, 0x324b, 0x5d43, + 0x5d4b, 0x3224, 0x5d55, 0x5d3e, 0x4650, 0x5d50, 0x5d54, 0x4162, + 0x3746, 0x5d4e, 0x5d4f, 0x5d44, 0x5d3d, 0x5d4d, 0x4c51, 0x5d49, + 0x5d42, 0x4348, 0x463c, 0x4e2e, 0x5d4c, 0x5d48, 0x5d41, 0x5d46, + 0x425c, 0x5329, 0x532a, 0x5d53, 0x4f74, 0x4878, 0x5d66, 0x5d47, + 0x5d60, 0x4264, 0x5d61, 0x5d57, 0x5678, 0x5d59, 0x5d58, 0x3870, + 0x5d56, 0x464f, 0x362d, 0x5d62, 0x3a79, 0x5461, 0x5d67, 0x3450, + 0x5d5a, 0x3f7b, 0x5d63, 0x5d5f, 0x5d5d, 0x3559, 0x5d5b, 0x5d5c, + 0x5d5e, 0x3d2f, 0x5d64, 0x5d65, 0x5d75, 0x4349, 0x4b62, 0x5d72, + 0x5861, 0x4651, 0x5d74, 0x5574, 0x5d73, 0x5d70, 0x5d6c, 0x5d6f, + 0x5d68, 0x506e, 0x4858, 0x5d6e, 0x5d69, 0x5d6a, 0x4b72, 0x5d6d, + 0x314d, 0x4036, 0x3c3b, 0x5d71, 0x5d77, 0x5d76, 0x5d6b, 0x456e, + 0x5d7b, 0x5e24, 0x5e23, 0x5d78, 0x436f, 0x427b, 0x5561, 0x4e35, + 0x5d7d, 0x324c, 0x4468, 0x4a5f, 0x473e, 0x5d7a, 0x5d7c, 0x5d7e, + 0x5e22, 0x302a, 0x314e, 0x5e2c, 0x5e26, 0x3d36, 0x486f, 0x5e21, + 0x5e25, 0x5e29, 0x5e28, 0x5e27, 0x5e2d, 0x544c, 0x5e33, 0x5e2a, + 0x5e2e, 0x4059, 0x3121, 0x5e36, 0x5e31, 0x5e32, 0x5126, 0x5e35, + 0x5e2f, 0x5e30, 0x503d, 0x5e34, 0x4a6d, 0x5e39, 0x5e38, 0x5e37, + 0x5e3b, 0x3d65, 0x3258, 0x436a, 0x5e3a, 0x453a, 0x5e3c, 0x4c59, + 0x372a, 0x5465, 0x5e3d, 0x5e3f, 0x4422, 0x5e41, 0x5e3e, 0x5e40, + 0x553a, 0x5e42, 0x722e, 0x3b22, 0x4232, 0x4530, 0x4247, 0x722f, + 0x5069, 0x535d, 0x6b3d, 0x3366, 0x7230, 0x7231, 0x4a2d, 0x3a67, + 0x7233, 0x7235, 0x7234, 0x4b64, 0x4f3a, 0x7232, 0x4a34, 0x524f, + 0x426c, 0x4e43, 0x7238, 0x3076, 0x7237, 0x723e, 0x324f, 0x5141, + 0x723a, 0x723c, 0x5469, 0x723b, 0x7236, 0x723f, 0x723d, 0x7239, + 0x7247, 0x7244, 0x7246, 0x724a, 0x7242, 0x7240, 0x7245, 0x567b, + 0x7241, 0x4779, 0x495f, 0x7248, 0x3946, 0x3530, 0x7243, 0x7249, + 0x7250, 0x7256, 0x3b57, 0x7255, 0x4d5c, 0x566b, 0x7252, 0x7254, + 0x3872, 0x724b, 0x724e, 0x4279, 0x555d, 0x724c, 0x724d, 0x724f, + 0x7253, 0x7259, 0x533c, 0x366a, 0x4a71, 0x3764, 0x7257, 0x7258, + 0x725a, 0x725d, 0x725b, 0x725c, 0x5151, 0x7251, 0x4d49, 0x4e4f, + 0x5629, 0x7263, 0x435b, 0x7260, 0x402f, 0x726c, 0x725e, 0x7261, + 0x7268, 0x7262, 0x7267, 0x7266, 0x7269, 0x725f, 0x7264, 0x726a, + 0x532c, 0x7265, 0x3275, 0x7272, 0x502b, 0x7275, 0x3b48, 0x7279, + 0x7270, 0x7276, 0x7278, 0x727a, 0x7273, 0x7271, 0x3a7b, 0x357b, + 0x726f, 0x7277, 0x726d, 0x726e, 0x726b, 0x7326, 0x7323, 0x7322, + 0x7274, 0x485a, 0x727b, 0x7325, 0x4378, 0x727d, 0x7327, 0x7329, + 0x7324, 0x727c, 0x732b, 0x732a, 0x425d, 0x732e, 0x7330, 0x7321, + 0x7331, 0x732c, 0x732f, 0x727e, 0x732d, 0x7332, 0x7334, 0x7328, + 0x7333, 0x7335, 0x5037, 0x7338, 0x5979, 0x7339, 0x7337, 0x4864, + 0x7336, 0x733a, 0x733b, 0x3440, 0x6e43, 0x733c, 0x733d, 0x512a, + 0x742c, 0x5046, 0x5050, 0x515c, 0x4f4e, 0x3d56, 0x5143, 0x3a62, + 0x6169, 0x5242, 0x7142, 0x3239, 0x316d, 0x7143, 0x4940, 0x3344, + 0x5972, 0x4b25, 0x7144, 0x5654, 0x7145, 0x7440, 0x7146, 0x542c, + 0x7147, 0x3040, 0x7441, 0x7442, 0x347c, 0x455b, 0x4c3b, 0x5064, + 0x4d60, 0x7148, 0x5973, 0x313b, 0x4f2e, 0x3824, 0x714a, 0x714b, + 0x3243, 0x4151, 0x5730, 0x7149, 0x714c, 0x714e, 0x5976, 0x5261, + 0x5423, 0x7443, 0x4839, 0x7444, 0x714d, 0x714f, 0x3f63, 0x7150, + 0x7154, 0x7156, 0x7151, 0x4951, 0x4561, 0x4263, 0x397c, 0x7153, + 0x7155, 0x3953, 0x715b, 0x3a56, 0x307d, 0x7159, 0x7158, 0x7152, + 0x715a, 0x7157, 0x486c, 0x4d4a, 0x715d, 0x653d, 0x715c, 0x715e, + 0x715f, 0x4f65, 0x7445, 0x3d73, 0x7160, 0x7161, 0x4e77, 0x522a, + 0x717b, 0x3832, 0x3c7b, 0x395b, 0x3966, 0x4359, 0x4a53, 0x6a68, + 0x4040, 0x3e75, 0x6a69, 0x6a6a, 0x6a6b, 0x6a6c, 0x6a6d, 0x6a6e, + 0x6a6f, 0x3d47, 0x757b, 0x757d, 0x757e, 0x757c, 0x3d62, 0x7621, + 0x3425, 0x7622, 0x7623, 0x6c32, 0x5154, 0x596a, 0x7624, 0x6e3a, + 0x5532, 0x537e, 0x4c5c, 0x4a44, 0x6540, 0x7625, 0x3e2f, 0x4629, + 0x5a25, 0x3c46, 0x3629, 0x383c, 0x484f, 0x3c25, 0x5a26, 0x5a27, + 0x4c56, 0x4843, 0x5a28, 0x467d, 0x5135, 0x5269, 0x5136, 0x3c47, + 0x3d32, 0x3b64, 0x5a29, 0x5a2a, 0x5148, 0x5a2b, 0x506d, 0x366f, + 0x425b, 0x4b4f, 0x376d, 0x4968, 0x3743, 0x3e77, 0x5624, 0x5a2c, + 0x5a2d, 0x4640, 0x5767, 0x4a36, 0x5529, 0x4b5f, 0x556f, 0x5a2e, + 0x565f, 0x344a, 0x5a30, 0x5a2f, 0x526b, 0x5a31, 0x5a32, 0x5a33, + 0x4a54, 0x5a34, 0x4a2b, 0x5a35, 0x5a36, 0x334f, 0x566f, 0x5a37, + 0x3b30, 0x352e, 0x5a38, 0x5a39, 0x396e, 0x512f, 0x5268, 0x5a3a, + 0x3843, 0x4f6a, 0x326f, 0x5a3b, 0x5a3c, 0x3d6b, 0x4e5c, 0x536f, + 0x5a3d, 0x4e73, 0x5a3e, 0x5355, 0x3b65, 0x5a3f, 0x4b35, 0x4b50, + 0x5a40, 0x476b, 0x566e, 0x5a41, 0x4535, 0x3641, 0x5a42, 0x374c, + 0x3f4e, 0x5a43, 0x5a44, 0x4b2d, 0x5a45, 0x3577, 0x5a46, 0x4142, + 0x573b, 0x5a47, 0x4c38, 0x526a, 0x4431, 0x5a48, 0x357d, 0x3b51, + 0x5a49, 0x5033, 0x5a4a, 0x5a4b, 0x4e3d, 0x5a4c, 0x5a4d, 0x5a4e, + 0x3277, 0x5a51, 0x5a4f, 0x5168, 0x5a50, 0x4355, 0x5a52, 0x5a53, + 0x5a54, 0x5a55, 0x503b, 0x5225, 0x3079, 0x5a56, 0x472b, 0x5a57, + 0x3d77, 0x4321, 0x5a58, 0x5a59, 0x437d, 0x4c37, 0x5a5a, 0x5a5b, + 0x403e, 0x4657, 0x5a5c, 0x5a5d, 0x4734, 0x5a5e, 0x5a5f, 0x3948, + 0x3b6d, 0x3639, 0x7478, 0x7479, 0x4d63, 0x7539, 0x6b60, 0x4f73, + 0x3b3f, 0x3a40, 0x5425, 0x6159, 0x7574, 0x312a, 0x3272, 0x7575, + 0x7577, 0x3a51, 0x7576, 0x4332, 0x7579, 0x7578, 0x3134, 0x556a, + 0x383a, 0x3931, 0x3246, 0x5470, 0x4f4d, 0x305c, 0x554b, 0x3b75, + 0x564a, 0x3737, 0x4c30, 0x4636, 0x3161, 0x393a, 0x567c, 0x3961, + 0x3721, 0x3c7a, 0x6a5a, 0x6a5b, 0x4c79, 0x3973, 0x6a5c, 0x347b, + 0x4333, 0x3751, 0x3a58, 0x6a5d, 0x5474, 0x6a5e, 0x3c56, 0x3b5f, + 0x6a5f, 0x415e, 0x4238, 0x545f, 0x574a, 0x6a60, 0x6a61, 0x6a64, + 0x6a62, 0x6a63, 0x495e, 0x3833, 0x3644, 0x6a65, 0x4a6a, 0x494d, + 0x344d, 0x6259, 0x4562, 0x6a66, 0x4035, 0x5738, 0x6a67, 0x572c, + 0x487c, 0x5853, 0x584d, 0x545e, 0x5479, 0x4944, 0x532e, 0x3853, + 0x3360, 0x4962, 0x7476, 0x3a55, 0x7477, 0x575f, 0x7471, 0x3830, + 0x5554, 0x384f, 0x4670, 0x3343, 0x7472, 0x332c, 0x543d, 0x4777, + 0x7474, 0x7473, 0x4c4b, 0x4824, 0x7475, 0x5763, 0x453f, 0x7540, + 0x753b, 0x7543, 0x7542, 0x563a, 0x7541, 0x543e, 0x7544, 0x754c, + 0x304f, 0x3578, 0x7549, 0x754a, 0x455c, 0x7545, 0x7546, 0x7547, + 0x754b, 0x3e60, 0x7548, 0x387a, 0x7550, 0x7553, 0x3f67, 0x3972, + 0x753c, 0x754d, 0x4237, 0x4c78, 0x3c79, 0x754e, 0x754f, 0x7551, + 0x3665, 0x7552, 0x7555, 0x753d, 0x7554, 0x533b, 0x336c, 0x4c24, + 0x7556, 0x7557, 0x3e61, 0x7558, 0x4c5f, 0x755b, 0x3248, 0x5759, + 0x7559, 0x755a, 0x755c, 0x7562, 0x7560, 0x755f, 0x755d, 0x7561, + 0x755e, 0x7564, 0x7565, 0x4c63, 0x653f, 0x3538, 0x7563, 0x7568, + 0x4c23, 0x7566, 0x7567, 0x753e, 0x3144, 0x753f, 0x3545, 0x3264, + 0x756c, 0x7569, 0x3657, 0x756d, 0x756a, 0x756b, 0x345a, 0x546a, + 0x756e, 0x3379, 0x756f, 0x7571, 0x7570, 0x7572, 0x7573, 0x496d, + 0x392a, 0x477b, 0x3663, 0x4c49, 0x6a26, 0x3335, 0x547e, 0x396c, + 0x5079, 0x696d, 0x572a, 0x696e, 0x4256, 0x486d, 0x3a64, 0x696f, + 0x6970, 0x6971, 0x5661, 0x6972, 0x6973, 0x6975, 0x6974, 0x6976, + 0x6977, 0x4761, 0x6978, 0x5458, 0x6979, 0x3d4e, 0x697a, 0x697b, + 0x3d4f, 0x697c, 0x3828, 0x413e, 0x697d, 0x3132, 0x3b54, 0x3975, + 0x697e, 0x6a21, 0x6a22, 0x6a23, 0x3778, 0x3c2d, 0x4a64, 0x604e, + 0x542f, 0x4f3d, 0x5537, 0x6a24, 0x555e, 0x6a25, 0x5041, 0x393c, + 0x3447, 0x3159, 0x4031, 0x3166, 0x3167, 0x3168, 0x333d, 0x4868, + 0x6541, 0x315f, 0x4149, 0x346f, 0x4728, 0x5358, 0x4679, 0x5138, + 0x397d, 0x4275, 0x532d, 0x544b, 0x3d7c, 0x6542, 0x3735, 0x6543, + 0x3b39, 0x5562, 0x3d78, 0x5436, 0x4e25, 0x412c, 0x3359, 0x4c76, + 0x6546, 0x6544, 0x6548, 0x654a, 0x6547, 0x354f, 0x4648, 0x357c, + 0x6545, 0x4a76, 0x6549, 0x4354, 0x3145, 0x3c23, 0x5737, 0x4d4b, + 0x4b4d, 0x4a4a, 0x4c53, 0x654c, 0x654b, 0x4466, 0x5121, 0x5137, + 0x654d, 0x6550, 0x4d38, 0x5670, 0x654f, 0x355d, 0x4d3e, 0x6551, + 0x363a, 0x4d28, 0x3964, 0x4a45, 0x3351, 0x4b59, 0x546c, 0x6552, + 0x376a, 0x654e, 0x6555, 0x347e, 0x6556, 0x6553, 0x6554, 0x525d, + 0x425f, 0x3146, 0x5362, 0x365d, 0x4b6c, 0x6557, 0x5376, 0x3169, + 0x3674, 0x655a, 0x6558, 0x6559, 0x3540, 0x5245, 0x655c, 0x655e, + 0x655d, 0x4732, 0x5223, 0x655b, 0x5462, 0x555a, 0x6560, 0x5771, + 0x6561, 0x315c, 0x517b, 0x6562, 0x6564, 0x6563, 0x6565, 0x5258, + 0x354b, 0x675f, 0x5a75, 0x5a78, 0x5a76, 0x5a77, 0x5a7a, 0x504f, + 0x4447, 0x306e, 0x5030, 0x5a79, 0x534a, 0x3a2a, 0x5b22, 0x4771, + 0x5a7c, 0x5a7b, 0x495b, 0x5a7d, 0x5b21, 0x575e, 0x5a7e, 0x415a, + 0x5b25, 0x5374, 0x5b27, 0x5b24, 0x5b28, 0x3d3c, 0x4049, 0x5b23, + 0x5b26, 0x5623, 0x5b29, 0x5b2d, 0x5b2e, 0x5b2c, 0x3a42, 0x3f24, + 0x5b2b, 0x5b2a, 0x5447, 0x323f, 0x5b2f, 0x3979, 0x5b30, 0x333b, + 0x3526, 0x363c, 0x5b31, 0x3675, 0x5b32, 0x3149, 0x5b34, 0x5b33, + 0x5b35, 0x5b37, 0x5b36, 0x5b38, 0x5b39, 0x5b3a, 0x534f, 0x747a, + 0x4775, 0x5743, 0x4564, 0x747c, 0x747d, 0x747b, 0x3e46, 0x506f, + 0x3753, 0x544d, 0x4c2a, 0x7522, 0x7521, 0x3a28, 0x747e, 0x4b56, + 0x7524, 0x4052, 0x336a, 0x4d2a, 0x7525, 0x7523, 0x3d34, 0x7528, + 0x7529, 0x3d4d, 0x4338, 0x3f61, 0x4b61, 0x752a, 0x7526, 0x7527, + 0x4470, 0x752c, 0x343c, 0x576d, 0x3457, 0x752b, 0x752e, 0x752d, + 0x752f, 0x5051, 0x4351, 0x4829, 0x7530, 0x7531, 0x7532, 0x7533, + 0x7534, 0x7535, 0x7537, 0x7536, 0x7538, 0x3249, 0x5354, 0x4a4d, + 0x406f, 0x5658, 0x5230, 0x413f, 0x3d70, 0x382a, 0x3c78, 0x7646, + 0x7647, 0x7648, 0x7649, 0x764a, 0x764c, 0x764b, 0x7769, 0x764d, + 0x764e, 0x6e44, 0x6e45, 0x6e46, 0x556b, 0x3624, 0x6e48, 0x6e47, + 0x6e49, 0x6e4a, 0x4725, 0x6e4b, 0x6e4c, 0x3730, 0x3576, 0x6e4d, + 0x6e4f, 0x6e4e, 0x3846, 0x6e50, 0x6e51, 0x6e52, 0x365b, 0x332e, + 0x5653, 0x4446, 0x3135, 0x3856, 0x6e53, 0x6e54, 0x543f, 0x4755, + 0x3e7b, 0x4e59, 0x3933, 0x6e56, 0x6e55, 0x6e58, 0x6e57, 0x4525, + 0x6e59, 0x6e5a, 0x472e, 0x6e5b, 0x472f, 0x6e5c, 0x3227, 0x6e5d, + 0x6e5e, 0x6e5f, 0x6e60, 0x6e61, 0x576a, 0x6e62, 0x6e63, 0x3c58, + 0x6e64, 0x534b, 0x4c7a, 0x322c, 0x4165, 0x6e65, 0x4726, 0x432d, + 0x6e66, 0x6e67, 0x6e68, 0x6e69, 0x6e6a, 0x6e6b, 0x6e6c, 0x6e6d, + 0x6e6e, 0x6e6f, 0x6e70, 0x6e71, 0x6e72, 0x6e74, 0x6e73, 0x6e75, + 0x4d2d, 0x4241, 0x6e76, 0x6e77, 0x6e78, 0x5521, 0x6e79, 0x4f33, + 0x6e7a, 0x6e7b, 0x6e7c, 0x6e7d, 0x6f21, 0x6e7e, 0x6f22, 0x3875, + 0x437a, 0x6f23, 0x6f24, 0x3d42, 0x523f, 0x3279, 0x6f25, 0x6f26, + 0x6f27, 0x5278, 0x6f28, 0x567d, 0x6f29, 0x464c, 0x6f2a, 0x6f2b, + 0x4134, 0x6f2c, 0x4f7a, 0x4b78, 0x6f2e, 0x6f2d, 0x337a, 0x3978, + 0x6f2f, 0x6f30, 0x5062, 0x6f31, 0x6f32, 0x3766, 0x503f, 0x6f33, + 0x6f34, 0x6f35, 0x4871, 0x4c60, 0x6f36, 0x6f37, 0x6f38, 0x6f39, + 0x6f3a, 0x5560, 0x6f3b, 0x346d, 0x432a, 0x6f3c, 0x6f3d, 0x6f3e, + 0x6f3f, 0x4e7d, 0x6f40, 0x4260, 0x3438, 0x5736, 0x3d75, 0x4f47, + 0x6f43, 0x6f41, 0x6f42, 0x6f44, 0x3627, 0x3c7c, 0x3e62, 0x434c, + 0x6f45, 0x6f46, 0x6f47, 0x6f4f, 0x6f48, 0x6f49, 0x6f4a, 0x4742, + 0x6f71, 0x364d, 0x6f4b, 0x6f4c, 0x6f4d, 0x3646, 0x433e, 0x6f4e, + 0x6f50, 0x6f51, 0x6f52, 0x5572, 0x6f53, 0x4477, 0x6f54, 0x4478, + 0x6f55, 0x6f56, 0x3864, 0x3077, 0x6f57, 0x6f58, 0x6f59, 0x6f5a, + 0x6f5b, 0x6f5c, 0x6f5d, 0x6f5e, 0x3e35, 0x6f61, 0x6f5f, 0x6f60, + 0x6f62, 0x6f63, 0x414d, 0x6f64, 0x6f65, 0x6f66, 0x6f67, 0x6f68, + 0x6f69, 0x6f6a, 0x6f6b, 0x6f6c, 0x4058, 0x6f6d, 0x412d, 0x6f6e, + 0x6f6f, 0x6f70, 0x4f62, 0x3324, 0x4345, 0x6345, 0x4941, 0x6346, + 0x3155, 0x4e4a, 0x3433, 0x4872, 0x6347, 0x4f50, 0x6348, 0x3c64, + 0x6349, 0x634a, 0x4346, 0x5522, 0x4456, 0x396b, 0x4e45, 0x634b, + 0x4376, 0x634c, 0x3727, 0x3873, 0x3a52, 0x634d, 0x634e, 0x5444, + 0x634f, 0x6350, 0x514b, 0x6351, 0x6352, 0x6353, 0x6354, 0x5156, + 0x6355, 0x327b, 0x403b, 0x6356, 0x402b, 0x6357, 0x6358, 0x6359, + 0x635a, 0x635b, 0x3837, 0x5a62, 0x3653, 0x5a64, 0x5a63, 0x5a66, + 0x486e, 0x5a65, 0x3740, 0x5174, 0x5275, 0x5573, 0x3d57, 0x5768, + 0x5a68, 0x5a67, 0x3022, 0x4d53, 0x5a69, 0x383d, 0x3c4a, 0x423d, + 0x4224, 0x3342, 0x5a6a, 0x422a, 0x4430, 0x3d35, 0x4f5e, 0x5a6b, + 0x4942, 0x315d, 0x5a6c, 0x3638, 0x543a, 0x337d, 0x5a6d, 0x5449, + 0x4f55, 0x4563, 0x5a6e, 0x5a6f, 0x5a70, 0x416a, 0x4c55, 0x4f5d, + 0x5367, 0x4221, 0x5a71, 0x4b65, 0x5a72, 0x4b66, 0x527e, 0x3874, + 0x5a73, 0x302f, 0x4f36, 0x554f, 0x4b6d, 0x5a74, 0x6344, 0x4125, + 0x763f, 0x7640, 0x7641, 0x4451, 0x4838, 0x5163, 0x505b, 0x5145, + 0x3c2f, 0x394d, 0x6f74, 0x3446, 0x533a, 0x7642, 0x337b, 0x7643, + 0x3571, 0x7645, 0x536a, 0x7627, 0x5129, 0x7629, 0x7628, 0x4163, + 0x4057, 0x3122, 0x4e6d, 0x5068, 0x762b, 0x4f76, 0x762a, 0x5570, + 0x762c, 0x4339, 0x3b74, 0x762e, 0x762d, 0x445e, 0x4158, 0x4b2a, + 0x4f3c, 0x762f, 0x7630, 0x7631, 0x4236, 0x3054, 0x4579, 0x7632, + 0x4760, 0x7626, 0x3e38, 0x3e32, 0x3565, 0x3747, 0x3f3f, 0x4352, + 0x4366, 0x584c, 0x386f, 0x3d79, 0x5125, 0x3050, 0x7730, 0x7731, + 0x502c, 0x3030, 0x7732, 0x7733, 0x7734, 0x474a, 0x3e4f, 0x7737, + 0x7736, 0x315e, 0x7735, 0x7738, 0x7739, 0x4e24, 0x484d, 0x3a2b, + 0x6838, 0x6839, 0x683a, 0x3e42, 0x5274, 0x544f, 0x4958, 0x5233, + 0x3625, 0x476a, 0x717c, 0x4f6e, 0x4b33, 0x506b, 0x676f, 0x4d67, + 0x394b, 0x3659, 0x717d, 0x3064, 0x4b4c, 0x717e, 0x5424, 0x422d, + 0x416c, 0x4644, 0x3e31, 0x7221, 0x3c55, 0x7222, 0x7223, 0x7224, + 0x5243, 0x4635, 0x4d47, 0x7225, 0x5331, 0x3f45, 0x4c62, 0x7226, + 0x7227, 0x5155, 0x366e, 0x7228, 0x7229, 0x355f, 0x722a, 0x722b, + 0x327c, 0x722c, 0x722d, 0x4827, 0x3767, 0x6c29, 0x6c2a, 0x6c2b, + 0x6c2c, 0x462e, 0x6c2d, 0x6c2e, 0x3749, 0x4a33, 0x6238, 0x774f, + 0x7750, 0x324d, 0x7751, 0x7753, 0x7752, 0x623b, 0x3c22, 0x623c, + 0x623d, 0x623e, 0x623f, 0x6240, 0x6241, 0x3739, 0x527b, 0x3d24, + 0x4a4e, 0x3125, 0x4b47, 0x6242, 0x367c, 0x4844, 0x6243, 0x3d48, + 0x317d, 0x6244, 0x3676, 0x6245, 0x4459, 0x6246, 0x4f5a, 0x395d, + 0x6247, 0x4021, 0x6248, 0x3276, 0x6249, 0x4173, 0x624a, 0x624b, + 0x4278, 0x624c, 0x624d, 0x624e, 0x4a57, 0x5838, 0x5965, 0x4f63, + 0x7025, 0x5c30, 0x426d, 0x5426, 0x4d54, 0x5131, 0x335b, 0x477d, + 0x3235, 0x423f, 0x6660, 0x4a3b, 0x6661, 0x6662, 0x3e54, 0x6663, + 0x5724, 0x4d55, 0x6665, 0x3c5d, 0x6664, 0x6666, 0x6667, 0x426e, + 0x3d3e, 0x6668, 0x4266, 0x3a27, 0x6669, 0x666a, 0x3352, 0x5169, + 0x3f25, 0x666b, 0x466f, 0x666c, 0x666d, 0x666e, 0x462d, 0x666f, + 0x4927, 0x6670, 0x6671, 0x6672, 0x6539, 0x6673, 0x6674, 0x4262, + 0x6675, 0x6676, 0x5668, 0x6677, 0x6678, 0x3947, 0x773b, 0x773a, + 0x773e, 0x773c, 0x3a21, 0x773f, 0x7740, 0x7742, 0x7741, 0x7744, + 0x7743, 0x7745, 0x7746, 0x7747, 0x4b68, 0x385f, 0x7754, 0x7755, + 0x7756, 0x7758, 0x775a, 0x7757, 0x775b, 0x7759, 0x5757, 0x775c, + 0x775d, 0x775e, 0x775f, 0x7760, 0x5b4b, 0x582a, 0x6577, 0x396d, + 0x3f7d, 0x3b6a, 0x7749, 0x4647, 0x7748, 0x774a, 0x774c, 0x774b, + 0x774d, 0x4e3a, 0x774e, 0x4427, 0x5363, 0x764f, 0x4233, 0x7650, + 0x7651, 0x7652, 0x7653, 0x7654, 0x7656, 0x312b, 0x7657, 0x7658, + 0x7659, 0x765a, 0x765b, 0x765c, 0x765d, 0x765e, 0x4f4a, 0x765f, + 0x7660, 0x7661, 0x7662, 0x7663, 0x7664, 0x4070, 0x7665, 0x7666, + 0x7667, 0x7668, 0x7669, 0x766a, 0x766b, 0x766c, 0x766d, 0x766e, + 0x766f, 0x7670, 0x7671, 0x7672, 0x7673, 0x7674, 0x3e28, 0x7675, + 0x7676, 0x7677, 0x7678, 0x487a, 0x7679, 0x767a, 0x767b, 0x767c, + 0x767d, 0x767e, 0x7721, 0x7722, 0x7723, 0x7724, 0x7725, 0x7726, + 0x7727, 0x7728, 0x316e, 0x7729, 0x772a, 0x772b, 0x772c, 0x772d, + 0x415b, 0x772e, 0x772f, 0x4471, 0x702f, 0x3c26, 0x7030, 0x4379, + 0x4538, 0x513b, 0x7031, 0x7032, 0x7033, 0x7034, 0x7035, 0x513c, + 0x516c, 0x7037, 0x7036, 0x5427, 0x4d52, 0x7038, 0x703a, 0x7039, + 0x703b, 0x703c, 0x386b, 0x703d, 0x3a68, 0x703e, 0x703f, 0x3e69, + 0x7040, 0x366c, 0x7041, 0x7042, 0x7043, 0x7044, 0x4835, 0x7045, + 0x7046, 0x7047, 0x4574, 0x7048, 0x7049, 0x704a, 0x773d, 0x704b, + 0x704c, 0x704d, 0x704e, 0x704f, 0x3a57, 0x7050, 0x7051, 0x7052, + 0x7053, 0x7054, 0x7055, 0x7056, 0x7058, 0x5325, 0x7057, 0x7059, + 0x753a, 0x4239, 0x7764, 0x7765, 0x7766, 0x7767, 0x7768, 0x4234, + 0x776a, 0x776b, 0x4273, 0x7470, 0x746f, 0x4269, 0x7761, 0x7762, + 0x3b46, 0x5964, 0x4a72, 0x4068, 0x7024, 0x3a5a, 0x472d, 0x442c, + 0x776c, 0x776d, 0x776e, 0x7770, 0x776f, 0x7771, 0x7774, 0x7773, + 0x7772, 0x7775, 0x7776, 0x6d69, 0x6d6a, 0x6d6b, 0x763c, 0x763d, + 0x763e, 0x3626, 0x583e, 0x3944, 0x583b, 0x5c31, 0x4a73, 0x7777, + 0x7778, 0x7779, 0x777b, 0x777a, 0x3147, 0x777c, 0x777d, 0x777e, + 0x466b, 0x6c34, 0x335d, 0x7633, 0x7634, 0x4164, 0x7635, 0x7636, + 0x7637, 0x7638, 0x7639, 0x763a, 0x4823, 0x763b, 0x417a, 0x3928, + 0x6d68, 0x396a, 0x595f, 0x2321, 0x2322, 0x2323, 0x2167, 0x2325, + 0x2326, 0x2327, 0x2328, 0x2329, 0x232a, 0x232b, 0x232c, 0x232d, + 0x232e, 0x232f, 0x2330, 0x2331, 0x2332, 0x2333, 0x2334, 0x2335, + 0x2336, 0x2337, 0x2338, 0x2339, 0x233a, 0x233b, 0x233c, 0x233d, + 0x233e, 0x233f, 0x2340, 0x2341, 0x2342, 0x2343, 0x2344, 0x2345, + 0x2346, 0x2347, 0x2348, 0x2349, 0x234a, 0x234b, 0x234c, 0x234d, + 0x234e, 0x234f, 0x2350, 0x2351, 0x2352, 0x2353, 0x2354, 0x2355, + 0x2356, 0x2357, 0x2358, 0x2359, 0x235a, 0x235b, 0x235c, 0x235d, + 0x235e, 0x235f, 0x2360, 0x2361, 0x2362, 0x2363, 0x2364, 0x2365, + 0x2366, 0x2367, 0x2368, 0x2369, 0x236a, 0x236b, 0x236c, 0x236d, + 0x236e, 0x236f, 0x2370, 0x2371, 0x2372, 0x2373, 0x2374, 0x2375, + 0x2376, 0x2377, 0x2378, 0x2379, 0x237a, 0x237b, 0x237c, 0x237d, + 0x212b, 0x2169, 0x216a, 0x237e, 0x2324, +}; + +static const Summary16 gb2312_uni2indx_page00[70] = { + /* 0x0000 */ + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0190 }, { 3, 0x0003 }, + { 5, 0x0000 }, { 5, 0x0080 }, { 6, 0x3703 }, { 13, 0x168c }, + /* 0x0100 */ + { 19, 0x0002 }, { 20, 0x0808 }, { 22, 0x0800 }, { 23, 0x0000 }, + { 23, 0x2000 }, { 24, 0x0000 }, { 24, 0x0800 }, { 25, 0x0000 }, + { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, + { 25, 0x4000 }, { 26, 0x1555 }, { 33, 0x0000 }, { 33, 0x0000 }, + /* 0x0200 */ + { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, + { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, + { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, + { 33, 0x0280 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, + /* 0x0300 */ + { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, + { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, + { 35, 0x0000 }, { 35, 0xfffe }, { 50, 0x03fb }, { 59, 0xfffe }, + { 74, 0x03fb }, { 83, 0x0000 }, { 83, 0x0000 }, { 83, 0x0000 }, + /* 0x0400 */ + { 83, 0x0002 }, { 84, 0xffff }, { 100, 0xffff }, { 116, 0xffff }, + { 132, 0xffff }, { 148, 0x0002 }, +}; +static const Summary16 gb2312_uni2indx_page20[101] = { + /* 0x2000 */ + { 149, 0x0000 }, { 149, 0x3360 }, { 155, 0x0040 }, { 156, 0x080d }, + { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, + { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, + { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, + /* 0x2100 */ + { 160, 0x0008 }, { 161, 0x0040 }, { 162, 0x0000 }, { 162, 0x0000 }, + { 162, 0x0000 }, { 162, 0x0000 }, { 162, 0x0fff }, { 174, 0x0000 }, + { 174, 0x0000 }, { 174, 0x000f }, { 178, 0x0000 }, { 178, 0x0000 }, + { 178, 0x0000 }, { 178, 0x0000 }, { 178, 0x0000 }, { 178, 0x0000 }, + /* 0x2200 */ + { 178, 0x8100 }, { 180, 0x6402 }, { 184, 0x4fa1 }, { 192, 0x20f0 }, + { 197, 0x1100 }, { 199, 0x0000 }, { 199, 0xc033 }, { 205, 0x0000 }, + { 205, 0x0000 }, { 205, 0x0200 }, { 206, 0x0020 }, { 207, 0x0000 }, + { 207, 0x0000 }, { 207, 0x0000 }, { 207, 0x0000 }, { 207, 0x0000 }, + /* 0x2300 */ + { 207, 0x0000 }, { 207, 0x0004 }, { 208, 0x0000 }, { 208, 0x0000 }, + { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, + { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, + { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, + /* 0x2400 */ + { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, + { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x03ff }, { 218, 0xfff0 }, + { 230, 0xffff }, { 246, 0x0fff }, { 258, 0x0000 }, { 258, 0x0000 }, + { 258, 0x0000 }, { 258, 0x0000 }, { 258, 0x0000 }, { 258, 0x0000 }, + /* 0x2500 */ + { 258, 0xffff }, { 274, 0xffff }, { 290, 0xffff }, { 306, 0xffff }, + { 322, 0x0fff }, { 334, 0x0000 }, { 334, 0x0000 }, { 334, 0x0000 }, + { 334, 0x0000 }, { 334, 0x0000 }, { 334, 0x0003 }, { 336, 0x000c }, + { 338, 0xc8c0 }, { 343, 0x0000 }, { 343, 0x0000 }, { 343, 0x0000 }, + /* 0x2600 */ + { 343, 0x0060 }, { 345, 0x0000 }, { 345, 0x0000 }, { 345, 0x0000 }, + { 345, 0x0005 }, +}; +static const Summary16 gb2312_uni2indx_page30[35] = { + /* 0x3000 */ + { 347, 0xff2f }, { 360, 0x00fb }, { 367, 0x0000 }, { 367, 0x0000 }, + { 367, 0xfffe }, { 382, 0xffff }, { 398, 0xffff }, { 414, 0xffff }, + { 430, 0xffff }, { 446, 0x000f }, { 450, 0xfffe }, { 465, 0xffff }, + { 481, 0xffff }, { 497, 0xffff }, { 513, 0xffff }, { 529, 0x087f }, + /* 0x3100 */ + { 537, 0xffe0 }, { 548, 0xffff }, { 564, 0x03ff }, { 574, 0x0000 }, + { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x0000 }, + { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x0000 }, + { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x0000 }, + /* 0x3200 */ + { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x03ff }, +}; +static const Summary16 gb2312_uni2indx_page4e[1263] = { + /* 0x4e00 */ + { 584, 0x7f8b }, { 595, 0x7f7b }, { 608, 0x3db4 }, { 617, 0xef55 }, + { 628, 0xfba8 }, { 638, 0xf35d }, { 649, 0x0243 }, { 653, 0x400b }, + { 657, 0xfb40 }, { 665, 0x8d3e }, { 674, 0x7bf7 }, { 687, 0x8c2c }, + { 693, 0x6eff }, { 706, 0xe3fa }, { 717, 0x1d3a }, { 725, 0xa8ed }, + /* 0x4f00 */ + { 734, 0xe602 }, { 740, 0xcf83 }, { 749, 0x8cf5 }, { 758, 0x3555 }, + { 766, 0xe048 }, { 771, 0xffab }, { 784, 0x92b9 }, { 792, 0xd859 }, + { 800, 0xab18 }, { 807, 0x2892 }, { 812, 0xd7e9 }, { 823, 0x8020 }, + { 825, 0xc438 }, { 831, 0xf583 }, { 840, 0xe74a }, { 849, 0x450a }, + /* 0x5000 */ + { 854, 0xb000 }, { 857, 0x9714 }, { 864, 0x7762 }, { 873, 0x5400 }, + { 876, 0xd188 }, { 882, 0x1420 }, { 885, 0x1020 }, { 887, 0xc8c0 }, + { 892, 0x2121 }, { 896, 0x0000 }, { 896, 0x13a8 }, { 902, 0x0c04 }, + { 905, 0x8000 }, { 906, 0x0440 }, { 908, 0x70c0 }, { 913, 0x0828 }, + /* 0x5100 */ + { 916, 0x08c0 }, { 919, 0x0004 }, { 920, 0x0002 }, { 921, 0x8000 }, + { 922, 0x2b7b }, { 932, 0x1472 }, { 938, 0x7924 }, { 945, 0x3bfb }, + { 957, 0x3327 }, { 965, 0x1ae4 }, { 972, 0x9835 }, { 979, 0x38ef }, + { 989, 0x9ad1 }, { 997, 0x2802 }, { 1000, 0xa813 }, { 1006, 0xbf69 }, + /* 0x5200 */ + { 1017, 0x65cf }, { 1027, 0x2fc6 }, { 1036, 0x6b11 }, { 1043, 0xafc9 }, + { 1053, 0x340f }, { 1060, 0x5053 }, { 1066, 0x86a2 }, { 1072, 0xa004 }, + { 1075, 0x0106 }, { 1078, 0xe809 }, { 1084, 0x3f0f }, { 1094, 0xc00e }, + { 1099, 0x0a88 }, { 1103, 0x8145 }, { 1108, 0x0010 }, { 1109, 0xc601 }, + /* 0x5300 */ + { 1114, 0xa161 }, { 1120, 0x26e1 }, { 1127, 0x444b }, { 1133, 0xce00 }, + { 1138, 0xc7aa }, { 1147, 0xd4ee }, { 1157, 0xcadf }, { 1168, 0x85bb }, + { 1177, 0x3a74 }, { 1185, 0xa520 }, { 1190, 0x436c }, { 1197, 0x8840 }, + { 1200, 0x3f06 }, { 1208, 0x8bd2 }, { 1216, 0xff79 }, { 1229, 0x3bef }, + /* 0x5400 */ + { 1241, 0xf75a }, { 1252, 0xe8ef }, { 1263, 0xfbcb }, { 1275, 0x5b36 }, + { 1284, 0x0d49 }, { 1290, 0x1bfd }, { 1301, 0x0154 }, { 1305, 0x39ee }, + { 1315, 0xd855 }, { 1323, 0x2e75 }, { 1332, 0xbfd8 }, { 1343, 0xa91a }, + { 1350, 0xf3d7 }, { 1362, 0xf6bf }, { 1375, 0x67e0 }, { 1383, 0xb40c }, + /* 0x5500 */ + { 1389, 0x82c2 }, { 1394, 0x0813 }, { 1398, 0xd49d }, { 1407, 0xd08b }, + { 1414, 0x065a }, { 1420, 0x1061 }, { 1424, 0x74f2 }, { 1433, 0x59e0 }, + { 1440, 0x8f9f }, { 1451, 0xb312 }, { 1458, 0x0080 }, { 1459, 0x6aaa }, + { 1467, 0x3230 }, { 1472, 0xb05e }, { 1480, 0x9d7a }, { 1490, 0x60ac }, + /* 0x5600 */ + { 1496, 0xd303 }, { 1503, 0xc900 }, { 1507, 0x3098 }, { 1512, 0x8a56 }, + { 1519, 0x7000 }, { 1522, 0x1390 }, { 1527, 0x1f14 }, { 1534, 0x1842 }, + { 1538, 0xc060 }, { 1542, 0x0008 }, { 1543, 0x8008 }, { 1545, 0x1080 }, + { 1547, 0x0400 }, { 1548, 0xec90 }, { 1555, 0x2817 }, { 1561, 0xe633 }, + /* 0x5700 */ + { 1570, 0x0758 }, { 1576, 0x9000 }, { 1578, 0xf708 }, { 1586, 0x4e09 }, + { 1592, 0xf485 }, { 1600, 0xfc83 }, { 1609, 0xaf53 }, { 1619, 0x18c8 }, + { 1624, 0x187c }, { 1631, 0x080c }, { 1634, 0x6adf }, { 1645, 0x0114 }, + { 1648, 0xc80c }, { 1653, 0xa734 }, { 1661, 0xa011 }, { 1665, 0x2710 }, + /* 0x5800 */ + { 1670, 0x28c5 }, { 1676, 0x4222 }, { 1680, 0x0413 }, { 1684, 0x0021 }, + { 1686, 0x3010 }, { 1689, 0x4112 }, { 1693, 0x1820 }, { 1696, 0x4000 }, + { 1697, 0x022b }, { 1702, 0xc60c }, { 1708, 0x0300 }, { 1710, 0x1000 }, + { 1711, 0x0022 }, { 1713, 0x0022 }, { 1715, 0x5810 }, { 1719, 0x0249 }, + /* 0x5900 */ + { 1723, 0xa094 }, { 1728, 0x9670 }, { 1735, 0xeeb0 }, { 1744, 0x1792 }, + { 1751, 0xcb96 }, { 1760, 0x05f2 }, { 1767, 0x0025 }, { 1770, 0x2358 }, + { 1776, 0x25de }, { 1785, 0x42cc }, { 1791, 0xcf38 }, { 1800, 0x4a04 }, + { 1804, 0x0c40 }, { 1807, 0x359f }, { 1817, 0x1128 }, { 1821, 0x8a00 }, + /* 0x5a00 */ + { 1824, 0x13fa }, { 1833, 0x910a }, { 1838, 0x0229 }, { 1842, 0x1056 }, + { 1847, 0x0641 }, { 1851, 0x0420 }, { 1853, 0x0484 }, { 1856, 0x84f0 }, + { 1862, 0x0000 }, { 1862, 0x0c04 }, { 1865, 0x0400 }, { 1866, 0x412c }, + { 1871, 0x1206 }, { 1875, 0x1154 }, { 1880, 0x0a4b }, { 1886, 0x0002 }, + /* 0x5b00 */ + { 1887, 0x0200 }, { 1888, 0x00c0 }, { 1890, 0x0000 }, { 1890, 0x0094 }, + { 1893, 0x0001 }, { 1894, 0xbfbb }, { 1907, 0x167c }, { 1915, 0x242b }, + { 1921, 0x9bbb }, { 1932, 0x7fa8 }, { 1942, 0x0c7f }, { 1951, 0xe379 }, + { 1961, 0x10f4 }, { 1967, 0xe00d }, { 1973, 0x4132 }, { 1978, 0x9f01 }, + /* 0x5c00 */ + { 1985, 0x8652 }, { 1991, 0x3572 }, { 1999, 0x10b4 }, { 2004, 0xff12 }, + { 2014, 0xcf27 }, { 2024, 0x4223 }, { 2029, 0xc06b }, { 2036, 0x8602 }, + { 2040, 0x3106 }, { 2045, 0x1fd3 }, { 2055, 0x3a0c }, { 2061, 0xa1aa }, + { 2068, 0x0812 }, { 2071, 0x0204 }, { 2073, 0x2572 }, { 2080, 0x0801 }, + /* 0x5d00 */ + { 2082, 0x40cc }, { 2087, 0x4850 }, { 2091, 0x62d0 }, { 2097, 0x6010 }, + { 2100, 0x1c80 }, { 2104, 0x2900 }, { 2107, 0x9a00 }, { 2111, 0x0010 }, + { 2112, 0x0004 }, { 2113, 0x2200 }, { 2115, 0x0000 }, { 2115, 0x0080 }, + { 2116, 0x2020 }, { 2118, 0x6800 }, { 2121, 0xcbe6 }, { 2131, 0x609e }, + /* 0x5e00 */ + { 2138, 0x916e }, { 2146, 0x3f73 }, { 2157, 0x60c0 }, { 2161, 0x3982 }, + { 2167, 0x1034 }, { 2171, 0x4830 }, { 2175, 0x0006 }, { 2177, 0xbd5c }, + { 2187, 0x8cd1 }, { 2194, 0xd6fb }, { 2206, 0x20e1 }, { 2211, 0x43e8 }, + { 2218, 0x0600 }, { 2220, 0x084e }, { 2225, 0x0500 }, { 2227, 0xc4d0 }, + /* 0x5f00 */ + { 2233, 0x8d1f }, { 2242, 0x89aa }, { 2249, 0xa6e1 }, { 2257, 0x1602 }, + { 2261, 0x0001 }, { 2262, 0x21ed }, { 2270, 0x3656 }, { 2278, 0x1a8b }, + { 2285, 0x1fb7 }, { 2296, 0x13a5 }, { 2303, 0x6502 }, { 2308, 0x30a0 }, + { 2312, 0xb278 }, { 2320, 0x23c7 }, { 2328, 0x6c93 }, { 2336, 0xe922 }, + /* 0x6000 */ + { 2343, 0xe47f }, { 2354, 0x3a74 }, { 2362, 0x8fe3 }, { 2372, 0x9820 }, + { 2376, 0x280e }, { 2381, 0x2625 }, { 2387, 0xbf9c }, { 2398, 0xbf49 }, + { 2408, 0x3218 }, { 2413, 0xac54 }, { 2420, 0xb949 }, { 2428, 0x1916 }, + { 2434, 0x0c60 }, { 2438, 0xb522 }, { 2445, 0xfbc1 }, { 2455, 0x0659 }, + /* 0x6100 */ + { 2461, 0xe343 }, { 2469, 0x8420 }, { 2472, 0x08d9 }, { 2478, 0x8000 }, + { 2479, 0x5500 }, { 2483, 0x2022 }, { 2486, 0x0184 }, { 2489, 0x00a1 }, + { 2492, 0x4800 }, { 2494, 0x2010 }, { 2496, 0x1380 }, { 2500, 0x4080 }, + { 2502, 0x0d04 }, { 2506, 0x0016 }, { 2509, 0x0040 }, { 2510, 0x8020 }, + /* 0x6200 */ + { 2512, 0xfd40 }, { 2520, 0x8de7 }, { 2530, 0x5436 }, { 2537, 0xe098 }, + { 2543, 0x7b8b }, { 2553, 0x091e }, { 2559, 0xfec8 }, { 2569, 0xd249 }, + { 2576, 0x0611 }, { 2580, 0x8dee }, { 2590, 0x1937 }, { 2598, 0xba22 }, + { 2605, 0x77f4 }, { 2616, 0x9fdd }, { 2628, 0xf3ec }, { 2639, 0xf0da }, + /* 0x6300 */ + { 2648, 0x4386 }, { 2654, 0xec42 }, { 2661, 0x8d3f }, { 2671, 0x2604 }, + { 2675, 0xfa6c }, { 2685, 0xc021 }, { 2689, 0x628e }, { 2696, 0x0cc2 }, + { 2701, 0xd785 }, { 2710, 0x0145 }, { 2714, 0x77ad }, { 2725, 0x5599 }, + { 2733, 0xe250 }, { 2739, 0x4045 }, { 2743, 0x260b }, { 2749, 0xa154 }, + /* 0x6400 */ + { 2755, 0x9827 }, { 2762, 0x5819 }, { 2768, 0x3443 }, { 2774, 0xa410 }, + { 2778, 0x05f2 }, { 2785, 0x4114 }, { 2789, 0x2280 }, { 2792, 0x0700 }, + { 2795, 0x00b4 }, { 2799, 0x4266 }, { 2805, 0x7210 }, { 2810, 0x15a1 }, + { 2816, 0x6025 }, { 2821, 0x4185 }, { 2826, 0x0054 }, { 2829, 0x0000 }, + /* 0x6500 */ + { 2829, 0x0201 }, { 2831, 0x0104 }, { 2833, 0xc820 }, { 2837, 0xcb70 }, + { 2845, 0x9320 }, { 2850, 0x6a62 }, { 2857, 0x184c }, { 2862, 0x0095 }, + { 2866, 0x1880 }, { 2869, 0x9a8b }, { 2877, 0xaab2 }, { 2885, 0x3201 }, + { 2889, 0xd87a }, { 2898, 0x00c4 }, { 2901, 0xf3e5 }, { 2912, 0x04c3 }, + /* 0x6600 */ + { 2917, 0xd44d }, { 2925, 0xa238 }, { 2931, 0xa1a1 }, { 2937, 0x5072 }, + { 2943, 0x980a }, { 2948, 0x84fc }, { 2956, 0xc152 }, { 2962, 0x44d1 }, + { 2968, 0x1094 }, { 2972, 0x20c2 }, { 2976, 0x4180 }, { 2979, 0x4210 }, + { 2982, 0x0000 }, { 2982, 0x3a00 }, { 2986, 0x0240 }, { 2988, 0xd29d }, + /* 0x6700 */ + { 2997, 0x2f01 }, { 3003, 0xa8b1 }, { 3010, 0xbd40 }, { 3017, 0x2432 }, + { 3022, 0xd34d }, { 3031, 0xd04b }, { 3038, 0xa723 }, { 3046, 0xd0ad }, + { 3054, 0x0a92 }, { 3059, 0x75a1 }, { 3067, 0xadac }, { 3076, 0x01e9 }, + { 3082, 0x801a }, { 3086, 0x771f }, { 3097, 0x9225 }, { 3103, 0xa01b }, + /* 0x6800 */ + { 3109, 0xdfa1 }, { 3119, 0x20ca }, { 3124, 0x0602 }, { 3127, 0x738c }, + { 3135, 0x577f }, { 3147, 0x003b }, { 3152, 0x0bff }, { 3163, 0x00d0 }, + { 3166, 0x806a }, { 3171, 0x0088 }, { 3173, 0xa1c4 }, { 3179, 0x0029 }, + { 3182, 0x2a05 }, { 3187, 0x0524 }, { 3191, 0x4009 }, { 3194, 0x1623 }, + /* 0x6900 */ + { 3200, 0x6822 }, { 3205, 0x8005 }, { 3208, 0x2011 }, { 3211, 0xa211 }, + { 3216, 0x0004 }, { 3217, 0x6490 }, { 3222, 0x4849 }, { 3227, 0x1382 }, + { 3232, 0x23d5 }, { 3240, 0x1930 }, { 3245, 0x2980 }, { 3249, 0x0892 }, + { 3253, 0x5402 }, { 3257, 0x8811 }, { 3261, 0x2001 }, { 3263, 0xa004 }, + /* 0x6a00 */ + { 3266, 0x0400 }, { 3267, 0x8180 }, { 3270, 0x8502 }, { 3274, 0x6022 }, + { 3278, 0x0090 }, { 3280, 0x0b01 }, { 3284, 0x0022 }, { 3286, 0x1202 }, + { 3289, 0x4011 }, { 3292, 0x0083 }, { 3295, 0x1a01 }, { 3299, 0x0000 }, + { 3299, 0x0000 }, { 3299, 0x0000 }, { 3299, 0x0000 }, { 3299, 0x0000 }, + /* 0x6b00 */ + { 3299, 0x0000 }, { 3299, 0x0000 }, { 3299, 0x009f }, { 3305, 0x4684 }, + { 3310, 0x12c8 }, { 3315, 0x0200 }, { 3316, 0x04fc }, { 3323, 0x1a00 }, + { 3326, 0x2ede }, { 3336, 0x0c4c }, { 3341, 0x0402 }, { 3343, 0x80b8 }, + { 3348, 0xa826 }, { 3354, 0x0afc }, { 3362, 0x8c02 }, { 3366, 0x2228 }, + /* 0x6c00 */ + { 3370, 0xa0e0 }, { 3375, 0x8f7b }, { 3386, 0xc7d6 }, { 3396, 0x2135 }, + { 3402, 0x06c7 }, { 3409, 0xf8b1 }, { 3418, 0x0713 }, { 3424, 0x6255 }, + { 3431, 0x936e }, { 3440, 0x8a19 }, { 3446, 0x6efa }, { 3457, 0xfb0e }, + { 3467, 0x1630 }, { 3472, 0x48f9 }, { 3480, 0xcd2f }, { 3490, 0x7deb }, + /* 0x6d00 */ + { 3502, 0x5892 }, { 3508, 0x4e84 }, { 3514, 0x4ca0 }, { 3519, 0x7a2e }, + { 3528, 0xedea }, { 3539, 0x561e }, { 3547, 0xc649 }, { 3554, 0x1190 }, + { 3558, 0x5324 }, { 3564, 0xe83a }, { 3572, 0xcfdb }, { 3584, 0x8124 }, + { 3588, 0x18f1 }, { 3595, 0x6342 }, { 3601, 0x5853 }, { 3608, 0x1a8a }, + /* 0x6e00 */ + { 3614, 0x7420 }, { 3619, 0x24d3 }, { 3626, 0xaa3b }, { 3635, 0x0514 }, + { 3639, 0x6018 }, { 3643, 0x8958 }, { 3649, 0x4800 }, { 3651, 0xc000 }, + { 3653, 0x8268 }, { 3658, 0x9101 }, { 3662, 0x84a4 }, { 3667, 0x2cd6 }, + { 3675, 0x8886 }, { 3680, 0xc4ba }, { 3688, 0x0377 }, { 3696, 0x0210 }, + /* 0x6f00 */ + { 3698, 0x8244 }, { 3702, 0x0038 }, { 3705, 0xae11 }, { 3712, 0x404a }, + { 3716, 0x28c0 }, { 3720, 0x5100 }, { 3723, 0x6044 }, { 3727, 0x1514 }, + { 3732, 0x7310 }, { 3738, 0x1000 }, { 3739, 0x0082 }, { 3741, 0x0248 }, + { 3744, 0x0205 }, { 3747, 0x4006 }, { 3750, 0xc003 }, { 3754, 0x0000 }, + /* 0x7000 */ + { 3754, 0x0000 }, { 3754, 0x0c02 }, { 3757, 0x0008 }, { 3758, 0x0220 }, + { 3760, 0x9000 }, { 3762, 0x4000 }, { 3763, 0xb800 }, { 3767, 0xd161 }, + { 3774, 0x4621 }, { 3779, 0x3274 }, { 3786, 0xf800 }, { 3791, 0x3b8a }, + { 3799, 0x050f }, { 3805, 0x8b00 }, { 3809, 0xbbd0 }, { 3818, 0x2280 }, + /* 0x7100 */ + { 3821, 0x0600 }, { 3823, 0x0769 }, { 3830, 0x8040 }, { 3832, 0x0043 }, + { 3835, 0x5420 }, { 3839, 0x5000 }, { 3841, 0x41d0 }, { 3846, 0x250c }, + { 3851, 0x8410 }, { 3854, 0x8310 }, { 3858, 0x1101 }, { 3861, 0x0228 }, + { 3864, 0x4008 }, { 3866, 0x0030 }, { 3868, 0x40a1 }, { 3872, 0x0200 }, + /* 0x7200 */ + { 3873, 0x0040 }, { 3874, 0x2000 }, { 3875, 0x1500 }, { 3878, 0xabe3 }, + { 3888, 0x3180 }, { 3892, 0xaa44 }, { 3898, 0xc2c6 }, { 3905, 0xc624 }, + { 3911, 0xac13 }, { 3918, 0x8004 }, { 3920, 0xb000 }, { 3923, 0x03d1 }, + { 3929, 0x611e }, { 3936, 0x4285 }, { 3941, 0xf303 }, { 3949, 0x1d9f }, + /* 0x7300 */ + { 3959, 0x440a }, { 3963, 0x78e8 }, { 3971, 0x5e26 }, { 3979, 0xc392 }, + { 3986, 0x2000 }, { 3987, 0x0085 }, { 3990, 0xb001 }, { 3994, 0x4000 }, + { 3995, 0x4a90 }, { 4000, 0x8842 }, { 4004, 0xca04 }, { 4009, 0x0c8d }, + { 4015, 0xa705 }, { 4022, 0x4203 }, { 4026, 0x22a1 }, { 4031, 0x0004 }, + /* 0x7400 */ + { 4032, 0x8668 }, { 4038, 0x0c01 }, { 4041, 0x5564 }, { 4048, 0x1079 }, + { 4054, 0x0002 }, { 4055, 0xdea0 }, { 4063, 0x2000 }, { 4064, 0x40c1 }, + { 4068, 0x488b }, { 4074, 0x5001 }, { 4077, 0x0380 }, { 4080, 0x0400 }, + { 4081, 0x0000 }, { 4081, 0x5004 }, { 4084, 0xc05d }, { 4091, 0x80d0 }, + /* 0x7500 */ + { 4095, 0xa010 }, { 4098, 0x970a }, { 4105, 0xbb20 }, { 4112, 0x4daf }, + { 4122, 0xd921 }, { 4129, 0x1e10 }, { 4134, 0x0460 }, { 4137, 0x8314 }, + { 4142, 0x8848 }, { 4146, 0xa6d6 }, { 4155, 0xd83b }, { 4164, 0x733f }, + { 4175, 0x27bc }, { 4184, 0x4974 }, { 4191, 0x0ddc }, { 4199, 0x9213 }, + /* 0x7600 */ + { 4205, 0x142b }, { 4211, 0x8ba1 }, { 4218, 0x2e75 }, { 4227, 0xd139 }, + { 4235, 0x3009 }, { 4239, 0x5050 }, { 4243, 0x8808 }, { 4246, 0x6900 }, + { 4250, 0x49d4 }, { 4257, 0x024a }, { 4261, 0x4010 }, { 4263, 0x8016 }, + { 4267, 0xe564 }, { 4275, 0x89d7 }, { 4284, 0xc020 }, { 4287, 0x5316 }, + /* 0x7700 */ + { 4294, 0x2b92 }, { 4301, 0x8600 }, { 4304, 0xa345 }, { 4311, 0x15e0 }, + { 4317, 0x008b }, { 4321, 0x0c03 }, { 4325, 0x196e }, { 4333, 0xe200 }, + { 4337, 0x7031 }, { 4343, 0x8006 }, { 4346, 0x16a5 }, { 4353, 0xa829 }, + { 4359, 0x2000 }, { 4360, 0x1880 }, { 4363, 0x7aac }, { 4372, 0xe148 }, + /* 0x7800 */ + { 4378, 0x3207 }, { 4384, 0xb5d6 }, { 4394, 0x32e8 }, { 4401, 0x5f91 }, + { 4410, 0x50a1 }, { 4415, 0x20e5 }, { 4421, 0x7c00 }, { 4426, 0x1080 }, + { 4428, 0x7280 }, { 4433, 0x9d8a }, { 4441, 0x00aa }, { 4445, 0x421f }, + { 4452, 0x0e22 }, { 4457, 0x0231 }, { 4461, 0x1100 }, { 4463, 0x0494 }, + /* 0x7900 */ + { 4467, 0x0022 }, { 4469, 0x4008 }, { 4471, 0x0010 }, { 4472, 0x5c10 }, + { 4477, 0x0343 }, { 4482, 0xfcc8 }, { 4491, 0xa1a5 }, { 4498, 0x0580 }, + { 4501, 0x8433 }, { 4507, 0x0400 }, { 4508, 0x0080 }, { 4509, 0x6e08 }, + { 4515, 0x2a4b }, { 4522, 0x8126 }, { 4527, 0xaad8 }, { 4535, 0x2901 }, + /* 0x7a00 */ + { 4539, 0x684d }, { 4546, 0x4490 }, { 4550, 0x0009 }, { 4552, 0xba88 }, + { 4559, 0x0040 }, { 4560, 0x0082 }, { 4562, 0x0000 }, { 4562, 0x87d1 }, + { 4570, 0x215b }, { 4577, 0xb1e6 }, { 4586, 0x3161 }, { 4592, 0x8008 }, + { 4594, 0x0800 }, { 4595, 0xc240 }, { 4599, 0xa069 }, { 4605, 0xa600 }, + /* 0x7b00 */ + { 4609, 0x8d58 }, { 4616, 0x4a32 }, { 4622, 0x5d71 }, { 4631, 0x550a }, + { 4637, 0x9aa0 }, { 4643, 0x2d57 }, { 4652, 0x4005 }, { 4655, 0x4aa6 }, + { 4662, 0x2021 }, { 4665, 0x30b1 }, { 4671, 0x3fc6 }, { 4681, 0x0112 }, + { 4684, 0x10c2 }, { 4688, 0x260a }, { 4693, 0x4462 }, { 4698, 0x5082 }, + /* 0x7c00 */ + { 4702, 0x9880 }, { 4706, 0x8040 }, { 4708, 0x04c0 }, { 4711, 0x8100 }, + { 4713, 0x2003 }, { 4716, 0x0000 }, { 4716, 0x0000 }, { 4716, 0x3818 }, + { 4721, 0x0200 }, { 4722, 0xf1a6 }, { 4731, 0x4434 }, { 4736, 0x720e }, + { 4743, 0x35a2 }, { 4750, 0x92e0 }, { 4756, 0x8101 }, { 4759, 0x0900 }, + /* 0x7d00 */ + { 4761, 0x0400 }, { 4762, 0x0000 }, { 4762, 0x8885 }, { 4767, 0x0000 }, + { 4767, 0x0000 }, { 4767, 0x0000 }, { 4767, 0x4000 }, { 4768, 0x0080 }, + { 4769, 0x0000 }, { 4769, 0x0000 }, { 4769, 0x4040 }, { 4771, 0x0000 }, + { 4771, 0x0000 }, { 4771, 0x0000 }, { 4771, 0x0000 }, { 4771, 0x0000 }, + /* 0x7e00 */ + { 4771, 0x0000 }, { 4771, 0x0000 }, { 4771, 0x0000 }, { 4771, 0x0800 }, + { 4772, 0x0082 }, { 4774, 0x0000 }, { 4774, 0x0000 }, { 4774, 0x0000 }, + { 4774, 0x0004 }, { 4775, 0x8800 }, { 4777, 0xbfff }, { 4792, 0xe7ef }, + { 4805, 0xffff }, { 4821, 0xffbf }, { 4836, 0xefef }, { 4850, 0xfdff }, + /* 0x7f00 */ + { 4865, 0xfbff }, { 4880, 0xbffe }, { 4894, 0xffff }, { 4910, 0x057f }, + { 4919, 0x0034 }, { 4922, 0x85b3 }, { 4930, 0x4706 }, { 4936, 0x4216 }, + { 4941, 0x5402 }, { 4945, 0xe410 }, { 4950, 0x8092 }, { 4954, 0xb305 }, + { 4961, 0x5422 }, { 4966, 0x8130 }, { 4970, 0x4263 }, { 4976, 0x180b }, + /* 0x8000 */ + { 4981, 0x387b }, { 4990, 0x13f5 }, { 4999, 0x07e5 }, { 5007, 0xa9ea }, + { 5016, 0x3c4c }, { 5023, 0x0514 }, { 5027, 0x0600 }, { 5029, 0x8002 }, + { 5031, 0x1ad9 }, { 5039, 0xbd48 }, { 5047, 0xee37 }, { 5058, 0xf496 }, + { 5067, 0x705f }, { 5076, 0x7ec0 }, { 5084, 0xbfb2 }, { 5095, 0x355f }, + /* 0x8100 */ + { 5105, 0xe644 }, { 5112, 0x455f }, { 5121, 0x9000 }, { 5123, 0x4146 }, + { 5128, 0x1d40 }, { 5133, 0x063b }, { 5140, 0x62a1 }, { 5146, 0xfe13 }, + { 5156, 0x8505 }, { 5161, 0x3902 }, { 5166, 0x0548 }, { 5170, 0x0c08 }, + { 5173, 0x144f }, { 5180, 0x0000 }, { 5180, 0x3488 }, { 5185, 0x5818 }, + /* 0x8200 */ + { 5190, 0x3077 }, { 5198, 0xd815 }, { 5205, 0xbd0e }, { 5214, 0x4bfb }, + { 5225, 0x8a90 }, { 5230, 0x8500 }, { 5233, 0xc100 }, { 5236, 0xe61d }, + { 5245, 0xed14 }, { 5253, 0xb386 }, { 5261, 0xff72 }, { 5273, 0x639b }, + { 5282, 0xfd92 }, { 5292, 0xd9be }, { 5303, 0x887b }, { 5311, 0x0a92 }, + /* 0x8300 */ + { 5316, 0xd3fe }, { 5328, 0x1cb2 }, { 5335, 0xb980 }, { 5341, 0x177a }, + { 5350, 0x82c9 }, { 5356, 0xdc17 }, { 5365, 0xfffb }, { 5380, 0x3980 }, + { 5385, 0x4260 }, { 5389, 0x590c }, { 5395, 0x0f01 }, { 5400, 0x37df }, + { 5412, 0x94a3 }, { 5419, 0xb150 }, { 5425, 0x0623 }, { 5430, 0x2307 }, + /* 0x8400 */ + { 5436, 0xf85a }, { 5445, 0x3102 }, { 5449, 0x01f0 }, { 5454, 0x3102 }, + { 5458, 0x0040 }, { 5459, 0x1e82 }, { 5465, 0x3a0a }, { 5471, 0x056a }, + { 5477, 0x5b84 }, { 5484, 0x1280 }, { 5487, 0x8002 }, { 5489, 0xa714 }, + { 5496, 0x2612 }, { 5501, 0xa04b }, { 5507, 0x1069 }, { 5512, 0x9001 }, + /* 0x8500 */ + { 5515, 0x1000 }, { 5516, 0x848a }, { 5521, 0x1802 }, { 5524, 0x3f80 }, + { 5531, 0x0708 }, { 5535, 0x4240 }, { 5538, 0x0110 }, { 5540, 0x4e14 }, + { 5546, 0x80b0 }, { 5550, 0x1800 }, { 5552, 0xc510 }, { 5557, 0x0281 }, + { 5560, 0x8202 }, { 5563, 0x1029 }, { 5567, 0x0210 }, { 5569, 0x8800 }, + /* 0x8600 */ + { 5571, 0x0020 }, { 5572, 0x0042 }, { 5574, 0x0280 }, { 5576, 0x1100 }, + { 5578, 0xe000 }, { 5581, 0x4413 }, { 5586, 0x5804 }, { 5590, 0xfe02 }, + { 5598, 0x3c07 }, { 5605, 0x3028 }, { 5609, 0x9798 }, { 5617, 0x0473 }, + { 5623, 0xced1 }, { 5632, 0xcb13 }, { 5640, 0x6210 }, { 5644, 0x431f }, + /* 0x8700 */ + { 5652, 0x278d }, { 5660, 0x55ac }, { 5668, 0x422e }, { 5674, 0xc892 }, + { 5680, 0x5380 }, { 5685, 0x0288 }, { 5688, 0x4039 }, { 5693, 0x7851 }, + { 5700, 0x292c }, { 5706, 0x8088 }, { 5709, 0xb900 }, { 5714, 0x2428 }, + { 5718, 0x0c41 }, { 5722, 0x080e }, { 5726, 0x4421 }, { 5730, 0x4200 }, + /* 0x8800 */ + { 5732, 0x0408 }, { 5734, 0x0868 }, { 5738, 0x0006 }, { 5740, 0x1204 }, + { 5743, 0x3031 }, { 5748, 0x0290 }, { 5751, 0x5b3e }, { 5761, 0xe085 }, + { 5767, 0x2936 }, { 5774, 0x1044 }, { 5777, 0x2814 }, { 5781, 0x1082 }, + { 5784, 0x4266 }, { 5790, 0x8334 }, { 5796, 0x013c }, { 5801, 0x531b }, + /* 0x8900 */ + { 5809, 0x0404 }, { 5811, 0x0e0d }, { 5817, 0x0c22 }, { 5821, 0x0051 }, + { 5824, 0x0012 }, { 5826, 0xc000 }, { 5828, 0x0040 }, { 5829, 0x8800 }, + { 5831, 0x004a }, { 5834, 0x0000 }, { 5834, 0x0000 }, { 5834, 0x0000 }, + { 5834, 0xdff6 }, { 5847, 0x5447 }, { 5854, 0x8868 }, { 5859, 0x0008 }, + /* 0x8a00 */ + { 5860, 0x0081 }, { 5862, 0x0000 }, { 5862, 0x0000 }, { 5862, 0x4000 }, + { 5863, 0x0100 }, { 5864, 0x0000 }, { 5864, 0x0000 }, { 5864, 0x0200 }, + { 5865, 0x0600 }, { 5867, 0x0008 }, { 5868, 0x0000 }, { 5868, 0x0000 }, + { 5868, 0x0000 }, { 5868, 0x0000 }, { 5868, 0x0000 }, { 5868, 0x0000 }, + /* 0x8b00 */ + { 5868, 0x0080 }, { 5869, 0x0000 }, { 5869, 0x0040 }, { 5870, 0x0000 }, + { 5870, 0x0000 }, { 5870, 0x0000 }, { 5870, 0x1040 }, { 5872, 0x0000 }, + { 5872, 0x0000 }, { 5872, 0x0000 }, { 5872, 0xefff }, { 5887, 0xf7fd }, + { 5901, 0xff7f }, { 5916, 0xfffe }, { 5931, 0xfbff }, { 5946, 0xffff }, + /* 0x8c00 */ + { 5962, 0xfdff }, { 5977, 0xbfff }, { 5992, 0xffff }, { 6008, 0x00ff }, + { 6016, 0x12c2 }, { 6021, 0x0420 }, { 6023, 0x0c06 }, { 6027, 0x0708 }, + { 6031, 0x1624 }, { 6036, 0x0110 }, { 6038, 0x0000 }, { 6038, 0x0000 }, + { 6038, 0x0000 }, { 6038, 0x0000 }, { 6038, 0x0000 }, { 6038, 0x0000 }, + /* 0x8d00 */ + { 6038, 0x0000 }, { 6038, 0xe000 }, { 6041, 0xfffe }, { 6056, 0xffff }, + { 6072, 0xffff }, { 6088, 0x7f79 }, { 6100, 0x28df }, { 6109, 0x00f9 }, + { 6115, 0x0c32 }, { 6120, 0x8012 }, { 6123, 0x0008 }, { 6124, 0xd53a }, + { 6133, 0xd858 }, { 6140, 0xecc2 }, { 6148, 0x9d18 }, { 6155, 0x2fa8 }, + /* 0x8e00 */ + { 6163, 0x9620 }, { 6168, 0xe010 }, { 6172, 0xd60c }, { 6179, 0x2622 }, + { 6184, 0x0f97 }, { 6193, 0x0206 }, { 6196, 0xb240 }, { 6201, 0x9055 }, + { 6207, 0x80a2 }, { 6211, 0x5011 }, { 6215, 0x9800 }, { 6218, 0x0404 }, + { 6220, 0x4000 }, { 6221, 0x0000 }, { 6221, 0x0000 }, { 6221, 0x0000 }, + /* 0x8f00 */ + { 6221, 0x0000 }, { 6221, 0x0000 }, { 6221, 0x0000 }, { 6221, 0x0000 }, + { 6221, 0x0000 }, { 6221, 0x0000 }, { 6221, 0xfbc0 }, { 6230, 0xffff }, + { 6246, 0xeffe }, { 6260, 0xdffb }, { 6274, 0x0b08 }, { 6278, 0x6243 }, + { 6284, 0x41b6 }, { 6291, 0xfb3b }, { 6303, 0x6f74 }, { 6313, 0x2389 }, + /* 0x9000 */ + { 6319, 0xae7f }, { 6331, 0xecd7 }, { 6342, 0xe047 }, { 6349, 0x5960 }, + { 6355, 0xa096 }, { 6361, 0x098f }, { 6368, 0x612c }, { 6374, 0xa030 }, + { 6378, 0x090d }, { 6383, 0x2aaa }, { 6390, 0xd44e }, { 6398, 0x4f7b }, + { 6409, 0xc4b2 }, { 6416, 0x388b }, { 6423, 0xa9c6 }, { 6431, 0x6110 }, + /* 0x9100 */ + { 6435, 0x0014 }, { 6437, 0x4200 }, { 6439, 0x800c }, { 6442, 0x0202 }, + { 6444, 0xfe48 }, { 6453, 0x6485 }, { 6459, 0xd63e }, { 6469, 0xe3f7 }, + { 6481, 0x3aa0 }, { 6487, 0x0c07 }, { 6492, 0xe40c }, { 6498, 0x0430 }, + { 6501, 0xf680 }, { 6508, 0x1002 }, { 6510, 0x0000 }, { 6510, 0x0000 }, + /* 0x9200 */ + { 6510, 0x0000 }, { 6510, 0x0000 }, { 6510, 0x0000 }, { 6510, 0x0000 }, + { 6510, 0x0000 }, { 6510, 0x0000 }, { 6510, 0x0000 }, { 6510, 0x0010 }, + { 6511, 0x4000 }, { 6512, 0x0000 }, { 6512, 0x4000 }, { 6513, 0x0000 }, + { 6513, 0x0100 }, { 6514, 0x0000 }, { 6514, 0x0000 }, { 6514, 0x0000 }, + /* 0x9300 */ + { 6514, 0x0000 }, { 6514, 0x0000 }, { 6514, 0x0000 }, { 6514, 0x4000 }, + { 6515, 0x0000 }, { 6515, 0x0000 }, { 6515, 0x0400 }, { 6516, 0x0000 }, + { 6516, 0x8000 }, { 6517, 0x0000 }, { 6517, 0x0000 }, { 6517, 0x0000 }, + { 6517, 0x0400 }, { 6518, 0x0040 }, { 6519, 0x0000 }, { 6519, 0x0000 }, + /* 0x9400 */ + { 6519, 0x0000 }, { 6519, 0x0000 }, { 6519, 0x0000 }, { 6519, 0x4000 }, + { 6520, 0x0000 }, { 6520, 0x0000 }, { 6520, 0x0800 }, { 6521, 0x0000 }, + { 6521, 0xffe0 }, { 6532, 0xfebd }, { 6545, 0xffff }, { 6561, 0xffff }, + { 6577, 0x7f7f }, { 6591, 0xfbe7 }, { 6604, 0xffbf }, { 6619, 0xf7ff }, + /* 0x9500 */ + { 6634, 0xffff }, { 6650, 0xefff }, { 6665, 0xff7e }, { 6679, 0xdff7 }, + { 6693, 0xf6f7 }, { 6706, 0xfbdf }, { 6720, 0xbffe }, { 6734, 0x804f }, + { 6740, 0x0000 }, { 6740, 0x0000 }, { 6740, 0x0000 }, { 6740, 0x0000 }, + { 6740, 0x0000 }, { 6740, 0x0000 }, { 6740, 0xef00 }, { 6747, 0x7fff }, + /* 0x9600 */ + { 6762, 0xff7f }, { 6777, 0xb6f7 }, { 6789, 0x4406 }, { 6793, 0xb87e }, + { 6803, 0x3bf5 }, { 6814, 0x8831 }, { 6819, 0x1796 }, { 6827, 0x00f4 }, + { 6832, 0xa960 }, { 6838, 0x1391 }, { 6844, 0x0080 }, { 6845, 0x7249 }, + { 6852, 0xf2f3 }, { 6863, 0x0024 }, { 6865, 0x8701 }, { 6870, 0x42c8 }, + /* 0x9700 */ + { 6875, 0xe3d3 }, { 6885, 0x5048 }, { 6889, 0x2400 }, { 6891, 0x4305 }, + { 6896, 0x0000 }, { 6896, 0x4a4c }, { 6902, 0x0227 }, { 6907, 0x1058 }, + { 6911, 0x2820 }, { 6914, 0x0116 }, { 6918, 0xa809 }, { 6923, 0x0014 }, + { 6925, 0x0000 }, { 6925, 0x0000 }, { 6925, 0x3ec0 }, { 6932, 0x0068 }, + /* 0x9800 */ + { 6935, 0x0000 }, { 6935, 0x0000 }, { 6935, 0x0000 }, { 6935, 0x0000 }, + { 6935, 0x0000 }, { 6935, 0x0000 }, { 6935, 0x0000 }, { 6935, 0xffe0 }, + { 6946, 0xb7ff }, { 6960, 0xfddb }, { 6973, 0x00f7 }, { 6980, 0x0000 }, + { 6980, 0x4000 }, { 6981, 0xc72e }, { 6990, 0x0180 }, { 6992, 0x0000 }, + /* 0x9900 */ + { 6992, 0x2000 }, { 6993, 0x0001 }, { 6994, 0x4000 }, { 6995, 0x0000 }, + { 6995, 0x0000 }, { 6995, 0x0030 }, { 6997, 0xffa8 }, { 7008, 0xb4f7 }, + { 7019, 0xadf3 }, { 7030, 0x03ff }, { 7040, 0x0120 }, { 7042, 0x0000 }, + { 7042, 0x0000 }, { 7042, 0x0000 }, { 7042, 0x0000 }, { 7042, 0x0000 }, + /* 0x9a00 */ + { 7042, 0x0000 }, { 7042, 0x0000 }, { 7042, 0x0000 }, { 7042, 0x0000 }, + { 7042, 0x0000 }, { 7042, 0x0000 }, { 7042, 0xf000 }, { 7046, 0xfffb }, + { 7061, 0x9df7 }, { 7073, 0xfdcf }, { 7086, 0x01bf }, { 7094, 0x15c3 }, + { 7101, 0x1827 }, { 7107, 0x810a }, { 7111, 0xa842 }, { 7116, 0x0a00 }, + /* 0x9b00 */ + { 7118, 0x8108 }, { 7121, 0x8008 }, { 7123, 0x8008 }, { 7125, 0x1804 }, + { 7128, 0xa3be }, { 7138, 0x0012 }, { 7140, 0x0000 }, { 7140, 0x0000 }, + { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, + { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, + /* 0x9c00 */ + { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, + { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x9000 }, + { 7142, 0x69e6 }, { 7151, 0xdc37 }, { 7161, 0x6bff }, { 7174, 0x3dff }, + { 7187, 0xfcf8 }, { 7198, 0xf3f9 }, { 7210, 0x0004 }, +}; +static const Summary16 gb2312_uni2indx_page9e[27] = { + /* 0x9e00 */ + { 7211, 0x0000 }, { 7211, 0x8000 }, { 7212, 0xbf6f }, { 7225, 0xe7ee }, + { 7237, 0xdffe }, { 7251, 0x5da2 }, { 7259, 0x3fd8 }, { 7269, 0xc00b }, + { 7274, 0x0984 }, { 7278, 0xa00c }, { 7282, 0x0040 }, { 7283, 0x6910 }, + { 7288, 0xe210 }, { 7293, 0xb912 }, { 7300, 0x86a5 }, { 7307, 0x5a00 }, + /* 0x9f00 */ + { 7311, 0x6800 }, { 7314, 0x0289 }, { 7318, 0x9005 }, { 7322, 0x6a80 }, + { 7327, 0x0010 }, { 7328, 0x0003 }, { 7330, 0x0000 }, { 7330, 0x8000 }, + { 7331, 0x1ff9 }, { 7342, 0x8e00 }, { 7346, 0x0001 }, +}; +static const Summary16 gb2312_uni2indx_pageff[15] = { + /* 0xff00 */ + { 7347, 0xfffe }, { 7362, 0xffff }, { 7378, 0xffff }, { 7394, 0xffff }, + { 7410, 0xffff }, { 7426, 0x7fff }, { 7441, 0x0000 }, { 7441, 0x0000 }, + { 7441, 0x0000 }, { 7441, 0x0000 }, { 7441, 0x0000 }, { 7441, 0x0000 }, + { 7441, 0x0000 }, { 7441, 0x0000 }, { 7441, 0x002b }, +}; + +static int +gb2312_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (n >= 2) { + const Summary16 *summary = NULL; + if (wc >= 0x0000 && wc < 0x0460) + summary = &gb2312_uni2indx_page00[(wc>>4)]; + else if (wc >= 0x2000 && wc < 0x2650) + summary = &gb2312_uni2indx_page20[(wc>>4)-0x200]; + else if (wc >= 0x3000 && wc < 0x3230) + summary = &gb2312_uni2indx_page30[(wc>>4)-0x300]; + else if (wc >= 0x4e00 && wc < 0x9cf0) + summary = &gb2312_uni2indx_page4e[(wc>>4)-0x4e0]; + else if (wc >= 0x9e00 && wc < 0x9fb0) + summary = &gb2312_uni2indx_page9e[(wc>>4)-0x9e0]; + else if (wc >= 0xff00 && wc < 0xfff0) + summary = &gb2312_uni2indx_pageff[(wc>>4)-0xff0]; + if (summary) { + unsigned short used = summary->used; + unsigned int i = wc & 0x0f; + if (used & ((unsigned short) 1 << i)) { + unsigned short c; + /* Keep in `used' only the bits 0..i-1. */ + used &= ((unsigned short) 1 << i) - 1; + /* Add `summary->indx' and the number of bits set in `used'. */ + used = (used & 0x5555) + ((used & 0xaaaa) >> 1); + used = (used & 0x3333) + ((used & 0xcccc) >> 2); + used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); + used = (used & 0x00ff) + (used >> 8); + c = gb2312_2charset[summary->indx + used]; + r[0] = (c >> 8); r[1] = (c & 0xff); + return 2; + } + } + return RET_ILUNI; + } + return RET_TOOSMALL; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/gbk.h b/graf2d/win32gdk/gdk/src/iconv/gbk.h new file mode 100644 index 00000000000..b6ff526284e --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/gbk.h @@ -0,0 +1,169 @@ +/* + * Copyright (C) 1999-2001, 2005, 2008 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * GBK + */ + +/* + * GBK, as described in Ken Lunde's book, is an extension of GB 2312-1980 + * (shifted by adding 0x8080 to the range 0xA1A1..0xFEFE, as used in EUC-CN). + * It adds the following ranges: + * + * (part of GBK/1) 0xA2A1-0xA2AA Small Roman numerals + * GBK/3 0x{81-A0}{40-7E,80-FE} 6080 new characters, all in Unicode + * GBK/4 0x{AA-FE}{40-7E,80-A0} 8160 new characters, 8080 in Unicode + * GBK/5 0x{A8-A9}{40-7E,80-A0} 166 new characters, 153 in Unicode + * + * Furthermore, all four tables I have looked at + * - the CP936 table by Microsoft, found on ftp.unicode.org in 1999, + * - the GBK table by Sun, investigated on a Solaris 2.7 machine, + * - the GBK tables by CWEX, found in the Big5+ package, + * - the GB18030 standard (second printing), + * agree in the following extensions. (Ken Lunde must have overlooked these + * differences between GB2312 and GBK. Also, the CWEX tables have additional + * differences.) + * + * 1. Some characters in the GB2312 range are defined differently: + * + * code GB2312 GBK + * 0xA1A4 0x30FB # KATAKANA MIDDLE DOT 0x00B7 # MIDDLE DOT + * 0xA1AA 0x2015 # HORIZONTAL BAR 0x2014 # EM DASH + * + * 2. 19 characters added in the range 0xA6E0-0xA6F5. + * + * 3. 4 characters added in the range 0xA8BB-0xA8C0. + * + * CP936 as of 1999 was identical to GBK. However, since 1999, Microsoft has + * added new mappings to CP936... + */ + +#include "gbkext1.h" +#include "gbkext2.h" +#include "gbkext_inv.h" +#include "cp936ext.h" + +static int +gbk_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + + if (c >= 0x81 && c < 0xff) { + if (n < 2) + return RET_TOOFEW(0); + if (c >= 0xa1 && c <= 0xf7) { + unsigned char c2 = s[1]; + if (c == 0xa1) { + if (c2 == 0xa4) { + *pwc = 0x00b7; + return 2; + } + if (c2 == 0xaa) { + *pwc = 0x2014; + return 2; + } + } + if (c2 >= 0xa1 && c2 < 0xff) { + unsigned char buf[2]; + int ret; + buf[0] = c-0x80; buf[1] = c2-0x80; + ret = gb2312_mbtowc(conv,pwc,buf,2); + if (ret != RET_ILSEQ) + return ret; + buf[0] = c; buf[1] = c2; + ret = cp936ext_mbtowc(conv,pwc,buf,2); + if (ret != RET_ILSEQ) + return ret; + } + } + if (c >= 0x81 && c <= 0xa0) + return gbkext1_mbtowc(conv,pwc,s,2); + if (c >= 0xa8 && c <= 0xfe) + return gbkext2_mbtowc(conv,pwc,s,2); + if (c == 0xa2) { + unsigned char c2 = s[1]; + if (c2 >= 0xa1 && c2 <= 0xaa) { + *pwc = 0x2170+(c2-0xa1); + return 2; + } + } + } + return RET_ILSEQ; +} + +static int +gbk_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char buf[2]; + int ret; + + if (wc != 0x30fb && wc != 0x2015) { + ret = gb2312_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (n < 2) + return RET_TOOSMALL; + r[0] = buf[0]+0x80; + r[1] = buf[1]+0x80; + return 2; + } + } + ret = gbkext_inv_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (n < 2) + return RET_TOOSMALL; + r[0] = buf[0]; + r[1] = buf[1]; + return 2; + } + if (wc >= 0x2170 && wc <= 0x2179) { + if (n < 2) + return RET_TOOSMALL; + r[0] = 0xa2; + r[1] = 0xa1 + (wc-0x2170); + return 2; + } + ret = cp936ext_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (n < 2) + return RET_TOOSMALL; + r[0] = buf[0]; + r[1] = buf[1]; + return 2; + } + if (wc == 0x00b7) { + if (n < 2) + return RET_TOOSMALL; + r[0] = 0xa1; + r[1] = 0xa4; + return 2; + } + if (wc == 0x2014) { + if (n < 2) + return RET_TOOSMALL; + r[0] = 0xa1; + r[1] = 0xaa; + return 2; + } + + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/gbkext1.h b/graf2d/win32gdk/gdk/src/iconv/gbkext1.h new file mode 100644 index 00000000000..d244c7695e2 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/gbkext1.h @@ -0,0 +1,853 @@ +/* + * Copyright (C) 1999-2000 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * GBK/3 extensions + */ + +static const unsigned short gbkext1_2uni_page81[6080] = { + /* 0x81 */ + 0x4e02, 0x4e04, 0x4e05, 0x4e06, 0x4e0f, 0x4e12, 0x4e17, 0x4e1f, + 0x4e20, 0x4e21, 0x4e23, 0x4e26, 0x4e29, 0x4e2e, 0x4e2f, 0x4e31, + 0x4e33, 0x4e35, 0x4e37, 0x4e3c, 0x4e40, 0x4e41, 0x4e42, 0x4e44, + 0x4e46, 0x4e4a, 0x4e51, 0x4e55, 0x4e57, 0x4e5a, 0x4e5b, 0x4e62, + 0x4e63, 0x4e64, 0x4e65, 0x4e67, 0x4e68, 0x4e6a, 0x4e6b, 0x4e6c, + 0x4e6d, 0x4e6e, 0x4e6f, 0x4e72, 0x4e74, 0x4e75, 0x4e76, 0x4e77, + 0x4e78, 0x4e79, 0x4e7a, 0x4e7b, 0x4e7c, 0x4e7d, 0x4e7f, 0x4e80, + 0x4e81, 0x4e82, 0x4e83, 0x4e84, 0x4e85, 0x4e87, 0x4e8a, 0x4e90, + 0x4e96, 0x4e97, 0x4e99, 0x4e9c, 0x4e9d, 0x4e9e, 0x4ea3, 0x4eaa, + 0x4eaf, 0x4eb0, 0x4eb1, 0x4eb4, 0x4eb6, 0x4eb7, 0x4eb8, 0x4eb9, + 0x4ebc, 0x4ebd, 0x4ebe, 0x4ec8, 0x4ecc, 0x4ecf, 0x4ed0, 0x4ed2, + 0x4eda, 0x4edb, 0x4edc, 0x4ee0, 0x4ee2, 0x4ee6, 0x4ee7, 0x4ee9, + 0x4eed, 0x4eee, 0x4eef, 0x4ef1, 0x4ef4, 0x4ef8, 0x4ef9, 0x4efa, + 0x4efc, 0x4efe, 0x4f00, 0x4f02, 0x4f03, 0x4f04, 0x4f05, 0x4f06, + 0x4f07, 0x4f08, 0x4f0b, 0x4f0c, 0x4f12, 0x4f13, 0x4f14, 0x4f15, + 0x4f16, 0x4f1c, 0x4f1d, 0x4f21, 0x4f23, 0x4f28, 0x4f29, 0x4f2c, + 0x4f2d, 0x4f2e, 0x4f31, 0x4f33, 0x4f35, 0x4f37, 0x4f39, 0x4f3b, + 0x4f3e, 0x4f3f, 0x4f40, 0x4f41, 0x4f42, 0x4f44, 0x4f45, 0x4f47, + 0x4f48, 0x4f49, 0x4f4a, 0x4f4b, 0x4f4c, 0x4f52, 0x4f54, 0x4f56, + 0x4f61, 0x4f62, 0x4f66, 0x4f68, 0x4f6a, 0x4f6b, 0x4f6d, 0x4f6e, + 0x4f71, 0x4f72, 0x4f75, 0x4f77, 0x4f78, 0x4f79, 0x4f7a, 0x4f7d, + 0x4f80, 0x4f81, 0x4f82, 0x4f85, 0x4f86, 0x4f87, 0x4f8a, 0x4f8c, + 0x4f8e, 0x4f90, 0x4f92, 0x4f93, 0x4f95, 0x4f96, 0x4f98, 0x4f99, + 0x4f9a, 0x4f9c, 0x4f9e, 0x4f9f, 0x4fa1, 0x4fa2, + /* 0x82 */ + 0x4fa4, 0x4fab, 0x4fad, 0x4fb0, 0x4fb1, 0x4fb2, 0x4fb3, 0x4fb4, + 0x4fb6, 0x4fb7, 0x4fb8, 0x4fb9, 0x4fba, 0x4fbb, 0x4fbc, 0x4fbd, + 0x4fbe, 0x4fc0, 0x4fc1, 0x4fc2, 0x4fc6, 0x4fc7, 0x4fc8, 0x4fc9, + 0x4fcb, 0x4fcc, 0x4fcd, 0x4fd2, 0x4fd3, 0x4fd4, 0x4fd5, 0x4fd6, + 0x4fd9, 0x4fdb, 0x4fe0, 0x4fe2, 0x4fe4, 0x4fe5, 0x4fe7, 0x4feb, + 0x4fec, 0x4ff0, 0x4ff2, 0x4ff4, 0x4ff5, 0x4ff6, 0x4ff7, 0x4ff9, + 0x4ffb, 0x4ffc, 0x4ffd, 0x4fff, 0x5000, 0x5001, 0x5002, 0x5003, + 0x5004, 0x5005, 0x5006, 0x5007, 0x5008, 0x5009, 0x500a, 0x500b, + 0x500e, 0x5010, 0x5011, 0x5013, 0x5015, 0x5016, 0x5017, 0x501b, + 0x501d, 0x501e, 0x5020, 0x5022, 0x5023, 0x5024, 0x5027, 0x502b, + 0x502f, 0x5030, 0x5031, 0x5032, 0x5033, 0x5034, 0x5035, 0x5036, + 0x5037, 0x5038, 0x5039, 0x503b, 0x503d, 0x503f, 0x5040, 0x5041, + 0x5042, 0x5044, 0x5045, 0x5046, 0x5049, 0x504a, 0x504b, 0x504d, + 0x5050, 0x5051, 0x5052, 0x5053, 0x5054, 0x5056, 0x5057, 0x5058, + 0x5059, 0x505b, 0x505d, 0x505e, 0x505f, 0x5060, 0x5061, 0x5062, + 0x5063, 0x5064, 0x5066, 0x5067, 0x5068, 0x5069, 0x506a, 0x506b, + 0x506d, 0x506e, 0x506f, 0x5070, 0x5071, 0x5072, 0x5073, 0x5074, + 0x5075, 0x5078, 0x5079, 0x507a, 0x507c, 0x507d, 0x5081, 0x5082, + 0x5083, 0x5084, 0x5086, 0x5087, 0x5089, 0x508a, 0x508b, 0x508c, + 0x508e, 0x508f, 0x5090, 0x5091, 0x5092, 0x5093, 0x5094, 0x5095, + 0x5096, 0x5097, 0x5098, 0x5099, 0x509a, 0x509b, 0x509c, 0x509d, + 0x509e, 0x509f, 0x50a0, 0x50a1, 0x50a2, 0x50a4, 0x50a6, 0x50aa, + 0x50ab, 0x50ad, 0x50ae, 0x50af, 0x50b0, 0x50b1, 0x50b3, 0x50b4, + 0x50b5, 0x50b6, 0x50b7, 0x50b8, 0x50b9, 0x50bc, + /* 0x83 */ + 0x50bd, 0x50be, 0x50bf, 0x50c0, 0x50c1, 0x50c2, 0x50c3, 0x50c4, + 0x50c5, 0x50c6, 0x50c7, 0x50c8, 0x50c9, 0x50ca, 0x50cb, 0x50cc, + 0x50cd, 0x50ce, 0x50d0, 0x50d1, 0x50d2, 0x50d3, 0x50d4, 0x50d5, + 0x50d7, 0x50d8, 0x50d9, 0x50db, 0x50dc, 0x50dd, 0x50de, 0x50df, + 0x50e0, 0x50e1, 0x50e2, 0x50e3, 0x50e4, 0x50e5, 0x50e8, 0x50e9, + 0x50ea, 0x50eb, 0x50ef, 0x50f0, 0x50f1, 0x50f2, 0x50f4, 0x50f6, + 0x50f7, 0x50f8, 0x50f9, 0x50fa, 0x50fc, 0x50fd, 0x50fe, 0x50ff, + 0x5100, 0x5101, 0x5102, 0x5103, 0x5104, 0x5105, 0x5108, 0x5109, + 0x510a, 0x510c, 0x510d, 0x510e, 0x510f, 0x5110, 0x5111, 0x5113, + 0x5114, 0x5115, 0x5116, 0x5117, 0x5118, 0x5119, 0x511a, 0x511b, + 0x511c, 0x511d, 0x511e, 0x511f, 0x5120, 0x5122, 0x5123, 0x5124, + 0x5125, 0x5126, 0x5127, 0x5128, 0x5129, 0x512a, 0x512b, 0x512c, + 0x512d, 0x512e, 0x512f, 0x5130, 0x5131, 0x5132, 0x5133, 0x5134, + 0x5135, 0x5136, 0x5137, 0x5138, 0x5139, 0x513a, 0x513b, 0x513c, + 0x513d, 0x513e, 0x5142, 0x5147, 0x514a, 0x514c, 0x514e, 0x514f, + 0x5150, 0x5152, 0x5153, 0x5157, 0x5158, 0x5159, 0x515b, 0x515d, + 0x515e, 0x515f, 0x5160, 0x5161, 0x5163, 0x5164, 0x5166, 0x5167, + 0x5169, 0x516a, 0x516f, 0x5172, 0x517a, 0x517e, 0x517f, 0x5183, + 0x5184, 0x5186, 0x5187, 0x518a, 0x518b, 0x518e, 0x518f, 0x5190, + 0x5191, 0x5193, 0x5194, 0x5198, 0x519a, 0x519d, 0x519e, 0x519f, + 0x51a1, 0x51a3, 0x51a6, 0x51a7, 0x51a8, 0x51a9, 0x51aa, 0x51ad, + 0x51ae, 0x51b4, 0x51b8, 0x51b9, 0x51ba, 0x51be, 0x51bf, 0x51c1, + 0x51c2, 0x51c3, 0x51c5, 0x51c8, 0x51ca, 0x51cd, 0x51ce, 0x51d0, + 0x51d2, 0x51d3, 0x51d4, 0x51d5, 0x51d6, 0x51d7, + /* 0x84 */ + 0x51d8, 0x51d9, 0x51da, 0x51dc, 0x51de, 0x51df, 0x51e2, 0x51e3, + 0x51e5, 0x51e6, 0x51e7, 0x51e8, 0x51e9, 0x51ea, 0x51ec, 0x51ee, + 0x51f1, 0x51f2, 0x51f4, 0x51f7, 0x51fe, 0x5204, 0x5205, 0x5209, + 0x520b, 0x520c, 0x520f, 0x5210, 0x5213, 0x5214, 0x5215, 0x521c, + 0x521e, 0x521f, 0x5221, 0x5222, 0x5223, 0x5225, 0x5226, 0x5227, + 0x522a, 0x522c, 0x522f, 0x5231, 0x5232, 0x5234, 0x5235, 0x523c, + 0x523e, 0x5244, 0x5245, 0x5246, 0x5247, 0x5248, 0x5249, 0x524b, + 0x524e, 0x524f, 0x5252, 0x5253, 0x5255, 0x5257, 0x5258, 0x5259, + 0x525a, 0x525b, 0x525d, 0x525f, 0x5260, 0x5262, 0x5263, 0x5264, + 0x5266, 0x5268, 0x526b, 0x526c, 0x526d, 0x526e, 0x5270, 0x5271, + 0x5273, 0x5274, 0x5275, 0x5276, 0x5277, 0x5278, 0x5279, 0x527a, + 0x527b, 0x527c, 0x527e, 0x5280, 0x5283, 0x5284, 0x5285, 0x5286, + 0x5287, 0x5289, 0x528a, 0x528b, 0x528c, 0x528d, 0x528e, 0x528f, + 0x5291, 0x5292, 0x5294, 0x5295, 0x5296, 0x5297, 0x5298, 0x5299, + 0x529a, 0x529c, 0x52a4, 0x52a5, 0x52a6, 0x52a7, 0x52ae, 0x52af, + 0x52b0, 0x52b4, 0x52b5, 0x52b6, 0x52b7, 0x52b8, 0x52b9, 0x52ba, + 0x52bb, 0x52bc, 0x52bd, 0x52c0, 0x52c1, 0x52c2, 0x52c4, 0x52c5, + 0x52c6, 0x52c8, 0x52ca, 0x52cc, 0x52cd, 0x52ce, 0x52cf, 0x52d1, + 0x52d3, 0x52d4, 0x52d5, 0x52d7, 0x52d9, 0x52da, 0x52db, 0x52dc, + 0x52dd, 0x52de, 0x52e0, 0x52e1, 0x52e2, 0x52e3, 0x52e5, 0x52e6, + 0x52e7, 0x52e8, 0x52e9, 0x52ea, 0x52eb, 0x52ec, 0x52ed, 0x52ee, + 0x52ef, 0x52f1, 0x52f2, 0x52f3, 0x52f4, 0x52f5, 0x52f6, 0x52f7, + 0x52f8, 0x52fb, 0x52fc, 0x52fd, 0x5301, 0x5302, 0x5303, 0x5304, + 0x5307, 0x5309, 0x530a, 0x530b, 0x530c, 0x530e, + /* 0x85 */ + 0x5311, 0x5312, 0x5313, 0x5314, 0x5318, 0x531b, 0x531c, 0x531e, + 0x531f, 0x5322, 0x5324, 0x5325, 0x5327, 0x5328, 0x5329, 0x532b, + 0x532c, 0x532d, 0x532f, 0x5330, 0x5331, 0x5332, 0x5333, 0x5334, + 0x5335, 0x5336, 0x5337, 0x5338, 0x533c, 0x533d, 0x5340, 0x5342, + 0x5344, 0x5346, 0x534b, 0x534c, 0x534d, 0x5350, 0x5354, 0x5358, + 0x5359, 0x535b, 0x535d, 0x5365, 0x5368, 0x536a, 0x536c, 0x536d, + 0x5372, 0x5376, 0x5379, 0x537b, 0x537c, 0x537d, 0x537e, 0x5380, + 0x5381, 0x5383, 0x5387, 0x5388, 0x538a, 0x538e, 0x538f, 0x5390, + 0x5391, 0x5392, 0x5393, 0x5394, 0x5396, 0x5397, 0x5399, 0x539b, + 0x539c, 0x539e, 0x53a0, 0x53a1, 0x53a4, 0x53a7, 0x53aa, 0x53ab, + 0x53ac, 0x53ad, 0x53af, 0x53b0, 0x53b1, 0x53b2, 0x53b3, 0x53b4, + 0x53b5, 0x53b7, 0x53b8, 0x53b9, 0x53ba, 0x53bc, 0x53bd, 0x53be, + 0x53c0, 0x53c3, 0x53c4, 0x53c5, 0x53c6, 0x53c7, 0x53ce, 0x53cf, + 0x53d0, 0x53d2, 0x53d3, 0x53d5, 0x53da, 0x53dc, 0x53dd, 0x53de, + 0x53e1, 0x53e2, 0x53e7, 0x53f4, 0x53fa, 0x53fe, 0x53ff, 0x5400, + 0x5402, 0x5405, 0x5407, 0x540b, 0x5414, 0x5418, 0x5419, 0x541a, + 0x541c, 0x5422, 0x5424, 0x5425, 0x542a, 0x5430, 0x5433, 0x5436, + 0x5437, 0x543a, 0x543d, 0x543f, 0x5441, 0x5442, 0x5444, 0x5445, + 0x5447, 0x5449, 0x544c, 0x544d, 0x544e, 0x544f, 0x5451, 0x545a, + 0x545d, 0x545e, 0x545f, 0x5460, 0x5461, 0x5463, 0x5465, 0x5467, + 0x5469, 0x546a, 0x546b, 0x546c, 0x546d, 0x546e, 0x546f, 0x5470, + 0x5474, 0x5479, 0x547a, 0x547e, 0x547f, 0x5481, 0x5483, 0x5485, + 0x5487, 0x5488, 0x5489, 0x548a, 0x548d, 0x5491, 0x5493, 0x5497, + 0x5498, 0x549c, 0x549e, 0x549f, 0x54a0, 0x54a1, + /* 0x86 */ + 0x54a2, 0x54a5, 0x54ae, 0x54b0, 0x54b2, 0x54b5, 0x54b6, 0x54b7, + 0x54b9, 0x54ba, 0x54bc, 0x54be, 0x54c3, 0x54c5, 0x54ca, 0x54cb, + 0x54d6, 0x54d8, 0x54db, 0x54e0, 0x54e1, 0x54e2, 0x54e3, 0x54e4, + 0x54eb, 0x54ec, 0x54ef, 0x54f0, 0x54f1, 0x54f4, 0x54f5, 0x54f6, + 0x54f7, 0x54f8, 0x54f9, 0x54fb, 0x54fe, 0x5500, 0x5502, 0x5503, + 0x5504, 0x5505, 0x5508, 0x550a, 0x550b, 0x550c, 0x550d, 0x550e, + 0x5512, 0x5513, 0x5515, 0x5516, 0x5517, 0x5518, 0x5519, 0x551a, + 0x551c, 0x551d, 0x551e, 0x551f, 0x5521, 0x5525, 0x5526, 0x5528, + 0x5529, 0x552b, 0x552d, 0x5532, 0x5534, 0x5535, 0x5536, 0x5538, + 0x5539, 0x553a, 0x553b, 0x553d, 0x5540, 0x5542, 0x5545, 0x5547, + 0x5548, 0x554b, 0x554c, 0x554d, 0x554e, 0x554f, 0x5551, 0x5552, + 0x5553, 0x5554, 0x5557, 0x5558, 0x5559, 0x555a, 0x555b, 0x555d, + 0x555e, 0x555f, 0x5560, 0x5562, 0x5563, 0x5568, 0x5569, 0x556b, + 0x556f, 0x5570, 0x5571, 0x5572, 0x5573, 0x5574, 0x5579, 0x557a, + 0x557d, 0x557f, 0x5585, 0x5586, 0x558c, 0x558d, 0x558e, 0x5590, + 0x5592, 0x5593, 0x5595, 0x5596, 0x5597, 0x559a, 0x559b, 0x559e, + 0x55a0, 0x55a1, 0x55a2, 0x55a3, 0x55a4, 0x55a5, 0x55a6, 0x55a8, + 0x55a9, 0x55aa, 0x55ab, 0x55ac, 0x55ad, 0x55ae, 0x55af, 0x55b0, + 0x55b2, 0x55b4, 0x55b6, 0x55b8, 0x55ba, 0x55bc, 0x55bf, 0x55c0, + 0x55c1, 0x55c2, 0x55c3, 0x55c6, 0x55c7, 0x55c8, 0x55ca, 0x55cb, + 0x55ce, 0x55cf, 0x55d0, 0x55d5, 0x55d7, 0x55d8, 0x55d9, 0x55da, + 0x55db, 0x55de, 0x55e0, 0x55e2, 0x55e7, 0x55e9, 0x55ed, 0x55ee, + 0x55f0, 0x55f1, 0x55f4, 0x55f6, 0x55f8, 0x55f9, 0x55fa, 0x55fb, + 0x55fc, 0x55ff, 0x5602, 0x5603, 0x5604, 0x5605, + /* 0x87 */ + 0x5606, 0x5607, 0x560a, 0x560b, 0x560d, 0x5610, 0x5611, 0x5612, + 0x5613, 0x5614, 0x5615, 0x5616, 0x5617, 0x5619, 0x561a, 0x561c, + 0x561d, 0x5620, 0x5621, 0x5622, 0x5625, 0x5626, 0x5628, 0x5629, + 0x562a, 0x562b, 0x562e, 0x562f, 0x5630, 0x5633, 0x5635, 0x5637, + 0x5638, 0x563a, 0x563c, 0x563d, 0x563e, 0x5640, 0x5641, 0x5642, + 0x5643, 0x5644, 0x5645, 0x5646, 0x5647, 0x5648, 0x5649, 0x564a, + 0x564b, 0x564f, 0x5650, 0x5651, 0x5652, 0x5653, 0x5655, 0x5656, + 0x565a, 0x565b, 0x565d, 0x565e, 0x565f, 0x5660, 0x5661, 0x5663, + 0x5665, 0x5666, 0x5667, 0x566d, 0x566e, 0x566f, 0x5670, 0x5672, + 0x5673, 0x5674, 0x5675, 0x5677, 0x5678, 0x5679, 0x567a, 0x567d, + 0x567e, 0x567f, 0x5680, 0x5681, 0x5682, 0x5683, 0x5684, 0x5687, + 0x5688, 0x5689, 0x568a, 0x568b, 0x568c, 0x568d, 0x5690, 0x5691, + 0x5692, 0x5694, 0x5695, 0x5696, 0x5697, 0x5698, 0x5699, 0x569a, + 0x569b, 0x569c, 0x569d, 0x569e, 0x569f, 0x56a0, 0x56a1, 0x56a2, + 0x56a4, 0x56a5, 0x56a6, 0x56a7, 0x56a8, 0x56a9, 0x56aa, 0x56ab, + 0x56ac, 0x56ad, 0x56ae, 0x56b0, 0x56b1, 0x56b2, 0x56b3, 0x56b4, + 0x56b5, 0x56b6, 0x56b8, 0x56b9, 0x56ba, 0x56bb, 0x56bd, 0x56be, + 0x56bf, 0x56c0, 0x56c1, 0x56c2, 0x56c3, 0x56c4, 0x56c5, 0x56c6, + 0x56c7, 0x56c8, 0x56c9, 0x56cb, 0x56cc, 0x56cd, 0x56ce, 0x56cf, + 0x56d0, 0x56d1, 0x56d2, 0x56d3, 0x56d5, 0x56d6, 0x56d8, 0x56d9, + 0x56dc, 0x56e3, 0x56e5, 0x56e6, 0x56e7, 0x56e8, 0x56e9, 0x56ea, + 0x56ec, 0x56ee, 0x56ef, 0x56f2, 0x56f3, 0x56f6, 0x56f7, 0x56f8, + 0x56fb, 0x56fc, 0x5700, 0x5701, 0x5702, 0x5705, 0x5707, 0x570b, + 0x570c, 0x570d, 0x570e, 0x570f, 0x5710, 0x5711, + /* 0x88 */ + 0x5712, 0x5713, 0x5714, 0x5715, 0x5716, 0x5717, 0x5718, 0x5719, + 0x571a, 0x571b, 0x571d, 0x571e, 0x5720, 0x5721, 0x5722, 0x5724, + 0x5725, 0x5726, 0x5727, 0x572b, 0x5731, 0x5732, 0x5734, 0x5735, + 0x5736, 0x5737, 0x5738, 0x573c, 0x573d, 0x573f, 0x5741, 0x5743, + 0x5744, 0x5745, 0x5746, 0x5748, 0x5749, 0x574b, 0x5752, 0x5753, + 0x5754, 0x5755, 0x5756, 0x5758, 0x5759, 0x5762, 0x5763, 0x5765, + 0x5767, 0x576c, 0x576e, 0x5770, 0x5771, 0x5772, 0x5774, 0x5775, + 0x5778, 0x5779, 0x577a, 0x577d, 0x577e, 0x577f, 0x5780, 0x5781, + 0x5787, 0x5788, 0x5789, 0x578a, 0x578d, 0x578e, 0x578f, 0x5790, + 0x5791, 0x5794, 0x5795, 0x5796, 0x5797, 0x5798, 0x5799, 0x579a, + 0x579c, 0x579d, 0x579e, 0x579f, 0x57a5, 0x57a8, 0x57aa, 0x57ac, + 0x57af, 0x57b0, 0x57b1, 0x57b3, 0x57b5, 0x57b6, 0x57b7, 0x57b9, + 0x57ba, 0x57bb, 0x57bc, 0x57bd, 0x57be, 0x57bf, 0x57c0, 0x57c1, + 0x57c4, 0x57c5, 0x57c6, 0x57c7, 0x57c8, 0x57c9, 0x57ca, 0x57cc, + 0x57cd, 0x57d0, 0x57d1, 0x57d3, 0x57d6, 0x57d7, 0x57db, 0x57dc, + 0x57de, 0x57e1, 0x57e2, 0x57e3, 0x57e5, 0x57e6, 0x57e7, 0x57e8, + 0x57e9, 0x57ea, 0x57eb, 0x57ec, 0x57ee, 0x57f0, 0x57f1, 0x57f2, + 0x57f3, 0x57f5, 0x57f6, 0x57f7, 0x57fb, 0x57fc, 0x57fe, 0x57ff, + 0x5801, 0x5803, 0x5804, 0x5805, 0x5808, 0x5809, 0x580a, 0x580c, + 0x580e, 0x580f, 0x5810, 0x5812, 0x5813, 0x5814, 0x5816, 0x5817, + 0x5818, 0x581a, 0x581b, 0x581c, 0x581d, 0x581f, 0x5822, 0x5823, + 0x5825, 0x5826, 0x5827, 0x5828, 0x5829, 0x582b, 0x582c, 0x582d, + 0x582e, 0x582f, 0x5831, 0x5832, 0x5833, 0x5834, 0x5836, 0x5837, + 0x5838, 0x5839, 0x583a, 0x583b, 0x583c, 0x583d, + /* 0x89 */ + 0x583e, 0x583f, 0x5840, 0x5841, 0x5842, 0x5843, 0x5845, 0x5846, + 0x5847, 0x5848, 0x5849, 0x584a, 0x584b, 0x584e, 0x584f, 0x5850, + 0x5852, 0x5853, 0x5855, 0x5856, 0x5857, 0x5859, 0x585a, 0x585b, + 0x585c, 0x585d, 0x585f, 0x5860, 0x5861, 0x5862, 0x5863, 0x5864, + 0x5866, 0x5867, 0x5868, 0x5869, 0x586a, 0x586d, 0x586e, 0x586f, + 0x5870, 0x5871, 0x5872, 0x5873, 0x5874, 0x5875, 0x5876, 0x5877, + 0x5878, 0x5879, 0x587a, 0x587b, 0x587c, 0x587d, 0x587f, 0x5882, + 0x5884, 0x5886, 0x5887, 0x5888, 0x588a, 0x588b, 0x588c, 0x588d, + 0x588e, 0x588f, 0x5890, 0x5891, 0x5894, 0x5895, 0x5896, 0x5897, + 0x5898, 0x589b, 0x589c, 0x589d, 0x58a0, 0x58a1, 0x58a2, 0x58a3, + 0x58a4, 0x58a5, 0x58a6, 0x58a7, 0x58aa, 0x58ab, 0x58ac, 0x58ad, + 0x58ae, 0x58af, 0x58b0, 0x58b1, 0x58b2, 0x58b3, 0x58b4, 0x58b5, + 0x58b6, 0x58b7, 0x58b8, 0x58b9, 0x58ba, 0x58bb, 0x58bd, 0x58be, + 0x58bf, 0x58c0, 0x58c2, 0x58c3, 0x58c4, 0x58c6, 0x58c7, 0x58c8, + 0x58c9, 0x58ca, 0x58cb, 0x58cc, 0x58cd, 0x58ce, 0x58cf, 0x58d0, + 0x58d2, 0x58d3, 0x58d4, 0x58d6, 0x58d7, 0x58d8, 0x58d9, 0x58da, + 0x58db, 0x58dc, 0x58dd, 0x58de, 0x58df, 0x58e0, 0x58e1, 0x58e2, + 0x58e3, 0x58e5, 0x58e6, 0x58e7, 0x58e8, 0x58e9, 0x58ea, 0x58ed, + 0x58ef, 0x58f1, 0x58f2, 0x58f4, 0x58f5, 0x58f7, 0x58f8, 0x58fa, + 0x58fb, 0x58fc, 0x58fd, 0x58fe, 0x58ff, 0x5900, 0x5901, 0x5903, + 0x5905, 0x5906, 0x5908, 0x5909, 0x590a, 0x590b, 0x590c, 0x590e, + 0x5910, 0x5911, 0x5912, 0x5913, 0x5917, 0x5918, 0x591b, 0x591d, + 0x591e, 0x5920, 0x5921, 0x5922, 0x5923, 0x5926, 0x5928, 0x592c, + 0x5930, 0x5932, 0x5933, 0x5935, 0x5936, 0x593b, + /* 0x8a */ + 0x593d, 0x593e, 0x593f, 0x5940, 0x5943, 0x5945, 0x5946, 0x594a, + 0x594c, 0x594d, 0x5950, 0x5952, 0x5953, 0x5959, 0x595b, 0x595c, + 0x595d, 0x595e, 0x595f, 0x5961, 0x5963, 0x5964, 0x5966, 0x5967, + 0x5968, 0x5969, 0x596a, 0x596b, 0x596c, 0x596d, 0x596e, 0x596f, + 0x5970, 0x5971, 0x5972, 0x5975, 0x5977, 0x597a, 0x597b, 0x597c, + 0x597e, 0x597f, 0x5980, 0x5985, 0x5989, 0x598b, 0x598c, 0x598e, + 0x598f, 0x5990, 0x5991, 0x5994, 0x5995, 0x5998, 0x599a, 0x599b, + 0x599c, 0x599d, 0x599f, 0x59a0, 0x59a1, 0x59a2, 0x59a6, 0x59a7, + 0x59ac, 0x59ad, 0x59b0, 0x59b1, 0x59b3, 0x59b4, 0x59b5, 0x59b6, + 0x59b7, 0x59b8, 0x59ba, 0x59bc, 0x59bd, 0x59bf, 0x59c0, 0x59c1, + 0x59c2, 0x59c3, 0x59c4, 0x59c5, 0x59c7, 0x59c8, 0x59c9, 0x59cc, + 0x59cd, 0x59ce, 0x59cf, 0x59d5, 0x59d6, 0x59d9, 0x59db, 0x59de, + 0x59df, 0x59e0, 0x59e1, 0x59e2, 0x59e4, 0x59e6, 0x59e7, 0x59e9, + 0x59ea, 0x59eb, 0x59ed, 0x59ee, 0x59ef, 0x59f0, 0x59f1, 0x59f2, + 0x59f3, 0x59f4, 0x59f5, 0x59f6, 0x59f7, 0x59f8, 0x59fa, 0x59fc, + 0x59fd, 0x59fe, 0x5a00, 0x5a02, 0x5a0a, 0x5a0b, 0x5a0d, 0x5a0e, + 0x5a0f, 0x5a10, 0x5a12, 0x5a14, 0x5a15, 0x5a16, 0x5a17, 0x5a19, + 0x5a1a, 0x5a1b, 0x5a1d, 0x5a1e, 0x5a21, 0x5a22, 0x5a24, 0x5a26, + 0x5a27, 0x5a28, 0x5a2a, 0x5a2b, 0x5a2c, 0x5a2d, 0x5a2e, 0x5a2f, + 0x5a30, 0x5a33, 0x5a35, 0x5a37, 0x5a38, 0x5a39, 0x5a3a, 0x5a3b, + 0x5a3d, 0x5a3e, 0x5a3f, 0x5a41, 0x5a42, 0x5a43, 0x5a44, 0x5a45, + 0x5a47, 0x5a48, 0x5a4b, 0x5a4c, 0x5a4d, 0x5a4e, 0x5a4f, 0x5a50, + 0x5a51, 0x5a52, 0x5a53, 0x5a54, 0x5a56, 0x5a57, 0x5a58, 0x5a59, + 0x5a5b, 0x5a5c, 0x5a5d, 0x5a5e, 0x5a5f, 0x5a60, + /* 0x8b */ + 0x5a61, 0x5a63, 0x5a64, 0x5a65, 0x5a66, 0x5a68, 0x5a69, 0x5a6b, + 0x5a6c, 0x5a6d, 0x5a6e, 0x5a6f, 0x5a70, 0x5a71, 0x5a72, 0x5a73, + 0x5a78, 0x5a79, 0x5a7b, 0x5a7c, 0x5a7d, 0x5a7e, 0x5a80, 0x5a81, + 0x5a82, 0x5a83, 0x5a84, 0x5a85, 0x5a86, 0x5a87, 0x5a88, 0x5a89, + 0x5a8a, 0x5a8b, 0x5a8c, 0x5a8d, 0x5a8e, 0x5a8f, 0x5a90, 0x5a91, + 0x5a93, 0x5a94, 0x5a95, 0x5a96, 0x5a97, 0x5a98, 0x5a99, 0x5a9c, + 0x5a9d, 0x5a9e, 0x5a9f, 0x5aa0, 0x5aa1, 0x5aa2, 0x5aa3, 0x5aa4, + 0x5aa5, 0x5aa6, 0x5aa7, 0x5aa8, 0x5aa9, 0x5aab, 0x5aac, 0x5aad, + 0x5aae, 0x5aaf, 0x5ab0, 0x5ab1, 0x5ab4, 0x5ab6, 0x5ab7, 0x5ab9, + 0x5aba, 0x5abb, 0x5abc, 0x5abd, 0x5abf, 0x5ac0, 0x5ac3, 0x5ac4, + 0x5ac5, 0x5ac6, 0x5ac7, 0x5ac8, 0x5aca, 0x5acb, 0x5acd, 0x5ace, + 0x5acf, 0x5ad0, 0x5ad1, 0x5ad3, 0x5ad5, 0x5ad7, 0x5ad9, 0x5ada, + 0x5adb, 0x5add, 0x5ade, 0x5adf, 0x5ae2, 0x5ae4, 0x5ae5, 0x5ae7, + 0x5ae8, 0x5aea, 0x5aec, 0x5aed, 0x5aee, 0x5aef, 0x5af0, 0x5af2, + 0x5af3, 0x5af4, 0x5af5, 0x5af6, 0x5af7, 0x5af8, 0x5af9, 0x5afa, + 0x5afb, 0x5afc, 0x5afd, 0x5afe, 0x5aff, 0x5b00, 0x5b01, 0x5b02, + 0x5b03, 0x5b04, 0x5b05, 0x5b06, 0x5b07, 0x5b08, 0x5b0a, 0x5b0b, + 0x5b0c, 0x5b0d, 0x5b0e, 0x5b0f, 0x5b10, 0x5b11, 0x5b12, 0x5b13, + 0x5b14, 0x5b15, 0x5b18, 0x5b19, 0x5b1a, 0x5b1b, 0x5b1c, 0x5b1d, + 0x5b1e, 0x5b1f, 0x5b20, 0x5b21, 0x5b22, 0x5b23, 0x5b24, 0x5b25, + 0x5b26, 0x5b27, 0x5b28, 0x5b29, 0x5b2a, 0x5b2b, 0x5b2c, 0x5b2d, + 0x5b2e, 0x5b2f, 0x5b30, 0x5b31, 0x5b33, 0x5b35, 0x5b36, 0x5b38, + 0x5b39, 0x5b3a, 0x5b3b, 0x5b3c, 0x5b3d, 0x5b3e, 0x5b3f, 0x5b41, + 0x5b42, 0x5b43, 0x5b44, 0x5b45, 0x5b46, 0x5b47, + /* 0x8c */ + 0x5b48, 0x5b49, 0x5b4a, 0x5b4b, 0x5b4c, 0x5b4d, 0x5b4e, 0x5b4f, + 0x5b52, 0x5b56, 0x5b5e, 0x5b60, 0x5b61, 0x5b67, 0x5b68, 0x5b6b, + 0x5b6d, 0x5b6e, 0x5b6f, 0x5b72, 0x5b74, 0x5b76, 0x5b77, 0x5b78, + 0x5b79, 0x5b7b, 0x5b7c, 0x5b7e, 0x5b7f, 0x5b82, 0x5b86, 0x5b8a, + 0x5b8d, 0x5b8e, 0x5b90, 0x5b91, 0x5b92, 0x5b94, 0x5b96, 0x5b9f, + 0x5ba7, 0x5ba8, 0x5ba9, 0x5bac, 0x5bad, 0x5bae, 0x5baf, 0x5bb1, + 0x5bb2, 0x5bb7, 0x5bba, 0x5bbb, 0x5bbc, 0x5bc0, 0x5bc1, 0x5bc3, + 0x5bc8, 0x5bc9, 0x5bca, 0x5bcb, 0x5bcd, 0x5bce, 0x5bcf, 0x5bd1, + 0x5bd4, 0x5bd5, 0x5bd6, 0x5bd7, 0x5bd8, 0x5bd9, 0x5bda, 0x5bdb, + 0x5bdc, 0x5be0, 0x5be2, 0x5be3, 0x5be6, 0x5be7, 0x5be9, 0x5bea, + 0x5beb, 0x5bec, 0x5bed, 0x5bef, 0x5bf1, 0x5bf2, 0x5bf3, 0x5bf4, + 0x5bf5, 0x5bf6, 0x5bf7, 0x5bfd, 0x5bfe, 0x5c00, 0x5c02, 0x5c03, + 0x5c05, 0x5c07, 0x5c08, 0x5c0b, 0x5c0c, 0x5c0d, 0x5c0e, 0x5c10, + 0x5c12, 0x5c13, 0x5c17, 0x5c19, 0x5c1b, 0x5c1e, 0x5c1f, 0x5c20, + 0x5c21, 0x5c23, 0x5c26, 0x5c28, 0x5c29, 0x5c2a, 0x5c2b, 0x5c2d, + 0x5c2e, 0x5c2f, 0x5c30, 0x5c32, 0x5c33, 0x5c35, 0x5c36, 0x5c37, + 0x5c43, 0x5c44, 0x5c46, 0x5c47, 0x5c4c, 0x5c4d, 0x5c52, 0x5c53, + 0x5c54, 0x5c56, 0x5c57, 0x5c58, 0x5c5a, 0x5c5b, 0x5c5c, 0x5c5d, + 0x5c5f, 0x5c62, 0x5c64, 0x5c67, 0x5c68, 0x5c69, 0x5c6a, 0x5c6b, + 0x5c6c, 0x5c6d, 0x5c70, 0x5c72, 0x5c73, 0x5c74, 0x5c75, 0x5c76, + 0x5c77, 0x5c78, 0x5c7b, 0x5c7c, 0x5c7d, 0x5c7e, 0x5c80, 0x5c83, + 0x5c84, 0x5c85, 0x5c86, 0x5c87, 0x5c89, 0x5c8a, 0x5c8b, 0x5c8e, + 0x5c8f, 0x5c92, 0x5c93, 0x5c95, 0x5c9d, 0x5c9e, 0x5c9f, 0x5ca0, + 0x5ca1, 0x5ca4, 0x5ca5, 0x5ca6, 0x5ca7, 0x5ca8, + /* 0x8d */ + 0x5caa, 0x5cae, 0x5caf, 0x5cb0, 0x5cb2, 0x5cb4, 0x5cb6, 0x5cb9, + 0x5cba, 0x5cbb, 0x5cbc, 0x5cbe, 0x5cc0, 0x5cc2, 0x5cc3, 0x5cc5, + 0x5cc6, 0x5cc7, 0x5cc8, 0x5cc9, 0x5cca, 0x5ccc, 0x5ccd, 0x5cce, + 0x5ccf, 0x5cd0, 0x5cd1, 0x5cd3, 0x5cd4, 0x5cd5, 0x5cd6, 0x5cd7, + 0x5cd8, 0x5cda, 0x5cdb, 0x5cdc, 0x5cdd, 0x5cde, 0x5cdf, 0x5ce0, + 0x5ce2, 0x5ce3, 0x5ce7, 0x5ce9, 0x5ceb, 0x5cec, 0x5cee, 0x5cef, + 0x5cf1, 0x5cf2, 0x5cf3, 0x5cf4, 0x5cf5, 0x5cf6, 0x5cf7, 0x5cf8, + 0x5cf9, 0x5cfa, 0x5cfc, 0x5cfd, 0x5cfe, 0x5cff, 0x5d00, 0x5d01, + 0x5d04, 0x5d05, 0x5d08, 0x5d09, 0x5d0a, 0x5d0b, 0x5d0c, 0x5d0d, + 0x5d0f, 0x5d10, 0x5d11, 0x5d12, 0x5d13, 0x5d15, 0x5d17, 0x5d18, + 0x5d19, 0x5d1a, 0x5d1c, 0x5d1d, 0x5d1f, 0x5d20, 0x5d21, 0x5d22, + 0x5d23, 0x5d25, 0x5d28, 0x5d2a, 0x5d2b, 0x5d2c, 0x5d2f, 0x5d30, + 0x5d31, 0x5d32, 0x5d33, 0x5d35, 0x5d36, 0x5d37, 0x5d38, 0x5d39, + 0x5d3a, 0x5d3b, 0x5d3c, 0x5d3f, 0x5d40, 0x5d41, 0x5d42, 0x5d43, + 0x5d44, 0x5d45, 0x5d46, 0x5d48, 0x5d49, 0x5d4d, 0x5d4e, 0x5d4f, + 0x5d50, 0x5d51, 0x5d52, 0x5d53, 0x5d54, 0x5d55, 0x5d56, 0x5d57, + 0x5d59, 0x5d5a, 0x5d5c, 0x5d5e, 0x5d5f, 0x5d60, 0x5d61, 0x5d62, + 0x5d63, 0x5d64, 0x5d65, 0x5d66, 0x5d67, 0x5d68, 0x5d6a, 0x5d6d, + 0x5d6e, 0x5d70, 0x5d71, 0x5d72, 0x5d73, 0x5d75, 0x5d76, 0x5d77, + 0x5d78, 0x5d79, 0x5d7a, 0x5d7b, 0x5d7c, 0x5d7d, 0x5d7e, 0x5d7f, + 0x5d80, 0x5d81, 0x5d83, 0x5d84, 0x5d85, 0x5d86, 0x5d87, 0x5d88, + 0x5d89, 0x5d8a, 0x5d8b, 0x5d8c, 0x5d8d, 0x5d8e, 0x5d8f, 0x5d90, + 0x5d91, 0x5d92, 0x5d93, 0x5d94, 0x5d95, 0x5d96, 0x5d97, 0x5d98, + 0x5d9a, 0x5d9b, 0x5d9c, 0x5d9e, 0x5d9f, 0x5da0, + /* 0x8e */ + 0x5da1, 0x5da2, 0x5da3, 0x5da4, 0x5da5, 0x5da6, 0x5da7, 0x5da8, + 0x5da9, 0x5daa, 0x5dab, 0x5dac, 0x5dad, 0x5dae, 0x5daf, 0x5db0, + 0x5db1, 0x5db2, 0x5db3, 0x5db4, 0x5db5, 0x5db6, 0x5db8, 0x5db9, + 0x5dba, 0x5dbb, 0x5dbc, 0x5dbd, 0x5dbe, 0x5dbf, 0x5dc0, 0x5dc1, + 0x5dc2, 0x5dc3, 0x5dc4, 0x5dc6, 0x5dc7, 0x5dc8, 0x5dc9, 0x5dca, + 0x5dcb, 0x5dcc, 0x5dce, 0x5dcf, 0x5dd0, 0x5dd1, 0x5dd2, 0x5dd3, + 0x5dd4, 0x5dd5, 0x5dd6, 0x5dd7, 0x5dd8, 0x5dd9, 0x5dda, 0x5ddc, + 0x5ddf, 0x5de0, 0x5de3, 0x5de4, 0x5dea, 0x5dec, 0x5ded, 0x5df0, + 0x5df5, 0x5df6, 0x5df8, 0x5df9, 0x5dfa, 0x5dfb, 0x5dfc, 0x5dff, + 0x5e00, 0x5e04, 0x5e07, 0x5e09, 0x5e0a, 0x5e0b, 0x5e0d, 0x5e0e, + 0x5e12, 0x5e13, 0x5e17, 0x5e1e, 0x5e1f, 0x5e20, 0x5e21, 0x5e22, + 0x5e23, 0x5e24, 0x5e25, 0x5e28, 0x5e29, 0x5e2a, 0x5e2b, 0x5e2c, + 0x5e2f, 0x5e30, 0x5e32, 0x5e33, 0x5e34, 0x5e35, 0x5e36, 0x5e39, + 0x5e3a, 0x5e3e, 0x5e3f, 0x5e40, 0x5e41, 0x5e43, 0x5e46, 0x5e47, + 0x5e48, 0x5e49, 0x5e4a, 0x5e4b, 0x5e4d, 0x5e4e, 0x5e4f, 0x5e50, + 0x5e51, 0x5e52, 0x5e53, 0x5e56, 0x5e57, 0x5e58, 0x5e59, 0x5e5a, + 0x5e5c, 0x5e5d, 0x5e5f, 0x5e60, 0x5e63, 0x5e64, 0x5e65, 0x5e66, + 0x5e67, 0x5e68, 0x5e69, 0x5e6a, 0x5e6b, 0x5e6c, 0x5e6d, 0x5e6e, + 0x5e6f, 0x5e70, 0x5e71, 0x5e75, 0x5e77, 0x5e79, 0x5e7e, 0x5e81, + 0x5e82, 0x5e83, 0x5e85, 0x5e88, 0x5e89, 0x5e8c, 0x5e8d, 0x5e8e, + 0x5e92, 0x5e98, 0x5e9b, 0x5e9d, 0x5ea1, 0x5ea2, 0x5ea3, 0x5ea4, + 0x5ea8, 0x5ea9, 0x5eaa, 0x5eab, 0x5eac, 0x5eae, 0x5eaf, 0x5eb0, + 0x5eb1, 0x5eb2, 0x5eb4, 0x5eba, 0x5ebb, 0x5ebc, 0x5ebd, 0x5ebf, + 0x5ec0, 0x5ec1, 0x5ec2, 0x5ec3, 0x5ec4, 0x5ec5, + /* 0x8f */ + 0x5ec6, 0x5ec7, 0x5ec8, 0x5ecb, 0x5ecc, 0x5ecd, 0x5ece, 0x5ecf, + 0x5ed0, 0x5ed4, 0x5ed5, 0x5ed7, 0x5ed8, 0x5ed9, 0x5eda, 0x5edc, + 0x5edd, 0x5ede, 0x5edf, 0x5ee0, 0x5ee1, 0x5ee2, 0x5ee3, 0x5ee4, + 0x5ee5, 0x5ee6, 0x5ee7, 0x5ee9, 0x5eeb, 0x5eec, 0x5eed, 0x5eee, + 0x5eef, 0x5ef0, 0x5ef1, 0x5ef2, 0x5ef3, 0x5ef5, 0x5ef8, 0x5ef9, + 0x5efb, 0x5efc, 0x5efd, 0x5f05, 0x5f06, 0x5f07, 0x5f09, 0x5f0c, + 0x5f0d, 0x5f0e, 0x5f10, 0x5f12, 0x5f14, 0x5f16, 0x5f19, 0x5f1a, + 0x5f1c, 0x5f1d, 0x5f1e, 0x5f21, 0x5f22, 0x5f23, 0x5f24, 0x5f28, + 0x5f2b, 0x5f2c, 0x5f2e, 0x5f30, 0x5f32, 0x5f33, 0x5f34, 0x5f35, + 0x5f36, 0x5f37, 0x5f38, 0x5f3b, 0x5f3d, 0x5f3e, 0x5f3f, 0x5f41, + 0x5f42, 0x5f43, 0x5f44, 0x5f45, 0x5f46, 0x5f47, 0x5f48, 0x5f49, + 0x5f4a, 0x5f4b, 0x5f4c, 0x5f4d, 0x5f4e, 0x5f4f, 0x5f51, 0x5f54, + 0x5f59, 0x5f5a, 0x5f5b, 0x5f5c, 0x5f5e, 0x5f5f, 0x5f60, 0x5f63, + 0x5f65, 0x5f67, 0x5f68, 0x5f6b, 0x5f6e, 0x5f6f, 0x5f72, 0x5f74, + 0x5f75, 0x5f76, 0x5f78, 0x5f7a, 0x5f7d, 0x5f7e, 0x5f7f, 0x5f83, + 0x5f86, 0x5f8d, 0x5f8e, 0x5f8f, 0x5f91, 0x5f93, 0x5f94, 0x5f96, + 0x5f9a, 0x5f9b, 0x5f9d, 0x5f9e, 0x5f9f, 0x5fa0, 0x5fa2, 0x5fa3, + 0x5fa4, 0x5fa5, 0x5fa6, 0x5fa7, 0x5fa9, 0x5fab, 0x5fac, 0x5faf, + 0x5fb0, 0x5fb1, 0x5fb2, 0x5fb3, 0x5fb4, 0x5fb6, 0x5fb8, 0x5fb9, + 0x5fba, 0x5fbb, 0x5fbe, 0x5fbf, 0x5fc0, 0x5fc1, 0x5fc2, 0x5fc7, + 0x5fc8, 0x5fca, 0x5fcb, 0x5fce, 0x5fd3, 0x5fd4, 0x5fd5, 0x5fda, + 0x5fdb, 0x5fdc, 0x5fde, 0x5fdf, 0x5fe2, 0x5fe3, 0x5fe5, 0x5fe6, + 0x5fe8, 0x5fe9, 0x5fec, 0x5fef, 0x5ff0, 0x5ff2, 0x5ff3, 0x5ff4, + 0x5ff6, 0x5ff7, 0x5ff9, 0x5ffa, 0x5ffc, 0x6007, + /* 0x90 */ + 0x6008, 0x6009, 0x600b, 0x600c, 0x6010, 0x6011, 0x6013, 0x6017, + 0x6018, 0x601a, 0x601e, 0x601f, 0x6022, 0x6023, 0x6024, 0x602c, + 0x602d, 0x602e, 0x6030, 0x6031, 0x6032, 0x6033, 0x6034, 0x6036, + 0x6037, 0x6038, 0x6039, 0x603a, 0x603d, 0x603e, 0x6040, 0x6044, + 0x6045, 0x6046, 0x6047, 0x6048, 0x6049, 0x604a, 0x604c, 0x604e, + 0x604f, 0x6051, 0x6053, 0x6054, 0x6056, 0x6057, 0x6058, 0x605b, + 0x605c, 0x605e, 0x605f, 0x6060, 0x6061, 0x6065, 0x6066, 0x606e, + 0x6071, 0x6072, 0x6074, 0x6075, 0x6077, 0x607e, 0x6080, 0x6081, + 0x6082, 0x6085, 0x6086, 0x6087, 0x6088, 0x608a, 0x608b, 0x608e, + 0x608f, 0x6090, 0x6091, 0x6093, 0x6095, 0x6097, 0x6098, 0x6099, + 0x609c, 0x609e, 0x60a1, 0x60a2, 0x60a4, 0x60a5, 0x60a7, 0x60a9, + 0x60aa, 0x60ae, 0x60b0, 0x60b3, 0x60b5, 0x60b6, 0x60b7, 0x60b9, + 0x60ba, 0x60bd, 0x60be, 0x60bf, 0x60c0, 0x60c1, 0x60c2, 0x60c3, + 0x60c4, 0x60c7, 0x60c8, 0x60c9, 0x60cc, 0x60cd, 0x60ce, 0x60cf, + 0x60d0, 0x60d2, 0x60d3, 0x60d4, 0x60d6, 0x60d7, 0x60d9, 0x60db, + 0x60de, 0x60e1, 0x60e2, 0x60e3, 0x60e4, 0x60e5, 0x60ea, 0x60f1, + 0x60f2, 0x60f5, 0x60f7, 0x60f8, 0x60fb, 0x60fc, 0x60fd, 0x60fe, + 0x60ff, 0x6102, 0x6103, 0x6104, 0x6105, 0x6107, 0x610a, 0x610b, + 0x610c, 0x6110, 0x6111, 0x6112, 0x6113, 0x6114, 0x6116, 0x6117, + 0x6118, 0x6119, 0x611b, 0x611c, 0x611d, 0x611e, 0x6121, 0x6122, + 0x6125, 0x6128, 0x6129, 0x612a, 0x612c, 0x612d, 0x612e, 0x612f, + 0x6130, 0x6131, 0x6132, 0x6133, 0x6134, 0x6135, 0x6136, 0x6137, + 0x6138, 0x6139, 0x613a, 0x613b, 0x613c, 0x613d, 0x613e, 0x6140, + 0x6141, 0x6142, 0x6143, 0x6144, 0x6145, 0x6146, + /* 0x91 */ + 0x6147, 0x6149, 0x614b, 0x614d, 0x614f, 0x6150, 0x6152, 0x6153, + 0x6154, 0x6156, 0x6157, 0x6158, 0x6159, 0x615a, 0x615b, 0x615c, + 0x615e, 0x615f, 0x6160, 0x6161, 0x6163, 0x6164, 0x6165, 0x6166, + 0x6169, 0x616a, 0x616b, 0x616c, 0x616d, 0x616e, 0x616f, 0x6171, + 0x6172, 0x6173, 0x6174, 0x6176, 0x6178, 0x6179, 0x617a, 0x617b, + 0x617c, 0x617d, 0x617e, 0x617f, 0x6180, 0x6181, 0x6182, 0x6183, + 0x6184, 0x6185, 0x6186, 0x6187, 0x6188, 0x6189, 0x618a, 0x618c, + 0x618d, 0x618f, 0x6190, 0x6191, 0x6192, 0x6193, 0x6195, 0x6196, + 0x6197, 0x6198, 0x6199, 0x619a, 0x619b, 0x619c, 0x619e, 0x619f, + 0x61a0, 0x61a1, 0x61a2, 0x61a3, 0x61a4, 0x61a5, 0x61a6, 0x61aa, + 0x61ab, 0x61ad, 0x61ae, 0x61af, 0x61b0, 0x61b1, 0x61b2, 0x61b3, + 0x61b4, 0x61b5, 0x61b6, 0x61b8, 0x61b9, 0x61ba, 0x61bb, 0x61bc, + 0x61bd, 0x61bf, 0x61c0, 0x61c1, 0x61c3, 0x61c4, 0x61c5, 0x61c6, + 0x61c7, 0x61c9, 0x61cc, 0x61cd, 0x61ce, 0x61cf, 0x61d0, 0x61d3, + 0x61d5, 0x61d6, 0x61d7, 0x61d8, 0x61d9, 0x61da, 0x61db, 0x61dc, + 0x61dd, 0x61de, 0x61df, 0x61e0, 0x61e1, 0x61e2, 0x61e3, 0x61e4, + 0x61e5, 0x61e7, 0x61e8, 0x61e9, 0x61ea, 0x61eb, 0x61ec, 0x61ed, + 0x61ee, 0x61ef, 0x61f0, 0x61f1, 0x61f2, 0x61f3, 0x61f4, 0x61f6, + 0x61f7, 0x61f8, 0x61f9, 0x61fa, 0x61fb, 0x61fc, 0x61fd, 0x61fe, + 0x6200, 0x6201, 0x6202, 0x6203, 0x6204, 0x6205, 0x6207, 0x6209, + 0x6213, 0x6214, 0x6219, 0x621c, 0x621d, 0x621e, 0x6220, 0x6223, + 0x6226, 0x6227, 0x6228, 0x6229, 0x622b, 0x622d, 0x622f, 0x6230, + 0x6231, 0x6232, 0x6235, 0x6236, 0x6238, 0x6239, 0x623a, 0x623b, + 0x623c, 0x6242, 0x6244, 0x6245, 0x6246, 0x624a, + /* 0x92 */ + 0x624f, 0x6250, 0x6255, 0x6256, 0x6257, 0x6259, 0x625a, 0x625c, + 0x625d, 0x625e, 0x625f, 0x6260, 0x6261, 0x6262, 0x6264, 0x6265, + 0x6268, 0x6271, 0x6272, 0x6274, 0x6275, 0x6277, 0x6278, 0x627a, + 0x627b, 0x627d, 0x6281, 0x6282, 0x6283, 0x6285, 0x6286, 0x6287, + 0x6288, 0x628b, 0x628c, 0x628d, 0x628e, 0x628f, 0x6290, 0x6294, + 0x6299, 0x629c, 0x629d, 0x629e, 0x62a3, 0x62a6, 0x62a7, 0x62a9, + 0x62aa, 0x62ad, 0x62ae, 0x62af, 0x62b0, 0x62b2, 0x62b3, 0x62b4, + 0x62b6, 0x62b7, 0x62b8, 0x62ba, 0x62be, 0x62c0, 0x62c1, 0x62c3, + 0x62cb, 0x62cf, 0x62d1, 0x62d5, 0x62dd, 0x62de, 0x62e0, 0x62e1, + 0x62e4, 0x62ea, 0x62eb, 0x62f0, 0x62f2, 0x62f5, 0x62f8, 0x62f9, + 0x62fa, 0x62fb, 0x6300, 0x6303, 0x6304, 0x6305, 0x6306, 0x630a, + 0x630b, 0x630c, 0x630d, 0x630f, 0x6310, 0x6312, 0x6313, 0x6314, + 0x6315, 0x6317, 0x6318, 0x6319, 0x631c, 0x6326, 0x6327, 0x6329, + 0x632c, 0x632d, 0x632e, 0x6330, 0x6331, 0x6333, 0x6334, 0x6335, + 0x6336, 0x6337, 0x6338, 0x633b, 0x633c, 0x633e, 0x633f, 0x6340, + 0x6341, 0x6344, 0x6347, 0x6348, 0x634a, 0x6351, 0x6352, 0x6353, + 0x6354, 0x6356, 0x6357, 0x6358, 0x6359, 0x635a, 0x635b, 0x635c, + 0x635d, 0x6360, 0x6364, 0x6365, 0x6366, 0x6368, 0x636a, 0x636b, + 0x636c, 0x636f, 0x6370, 0x6372, 0x6373, 0x6374, 0x6375, 0x6378, + 0x6379, 0x637c, 0x637d, 0x637e, 0x637f, 0x6381, 0x6383, 0x6384, + 0x6385, 0x6386, 0x638b, 0x638d, 0x6391, 0x6393, 0x6394, 0x6395, + 0x6397, 0x6399, 0x639a, 0x639b, 0x639c, 0x639d, 0x639e, 0x639f, + 0x63a1, 0x63a4, 0x63a6, 0x63ab, 0x63af, 0x63b1, 0x63b2, 0x63b5, + 0x63b6, 0x63b9, 0x63bb, 0x63bd, 0x63bf, 0x63c0, + /* 0x93 */ + 0x63c1, 0x63c2, 0x63c3, 0x63c5, 0x63c7, 0x63c8, 0x63ca, 0x63cb, + 0x63cc, 0x63d1, 0x63d3, 0x63d4, 0x63d5, 0x63d7, 0x63d8, 0x63d9, + 0x63da, 0x63db, 0x63dc, 0x63dd, 0x63df, 0x63e2, 0x63e4, 0x63e5, + 0x63e6, 0x63e7, 0x63e8, 0x63eb, 0x63ec, 0x63ee, 0x63ef, 0x63f0, + 0x63f1, 0x63f3, 0x63f5, 0x63f7, 0x63f9, 0x63fa, 0x63fb, 0x63fc, + 0x63fe, 0x6403, 0x6404, 0x6406, 0x6407, 0x6408, 0x6409, 0x640a, + 0x640d, 0x640e, 0x6411, 0x6412, 0x6415, 0x6416, 0x6417, 0x6418, + 0x6419, 0x641a, 0x641d, 0x641f, 0x6422, 0x6423, 0x6424, 0x6425, + 0x6427, 0x6428, 0x6429, 0x642b, 0x642e, 0x642f, 0x6430, 0x6431, + 0x6432, 0x6433, 0x6435, 0x6436, 0x6437, 0x6438, 0x6439, 0x643b, + 0x643c, 0x643e, 0x6440, 0x6442, 0x6443, 0x6449, 0x644b, 0x644c, + 0x644d, 0x644e, 0x644f, 0x6450, 0x6451, 0x6453, 0x6455, 0x6456, + 0x6457, 0x6459, 0x645a, 0x645b, 0x645c, 0x645d, 0x645f, 0x6460, + 0x6461, 0x6462, 0x6463, 0x6464, 0x6465, 0x6466, 0x6468, 0x646a, + 0x646b, 0x646c, 0x646e, 0x646f, 0x6470, 0x6471, 0x6472, 0x6473, + 0x6474, 0x6475, 0x6476, 0x6477, 0x647b, 0x647c, 0x647d, 0x647e, + 0x647f, 0x6480, 0x6481, 0x6483, 0x6486, 0x6488, 0x6489, 0x648a, + 0x648b, 0x648c, 0x648d, 0x648e, 0x648f, 0x6490, 0x6493, 0x6494, + 0x6497, 0x6498, 0x649a, 0x649b, 0x649c, 0x649d, 0x649f, 0x64a0, + 0x64a1, 0x64a2, 0x64a3, 0x64a5, 0x64a6, 0x64a7, 0x64a8, 0x64aa, + 0x64ab, 0x64af, 0x64b1, 0x64b2, 0x64b3, 0x64b4, 0x64b6, 0x64b9, + 0x64bb, 0x64bd, 0x64be, 0x64bf, 0x64c1, 0x64c3, 0x64c4, 0x64c6, + 0x64c7, 0x64c8, 0x64c9, 0x64ca, 0x64cb, 0x64cc, 0x64cf, 0x64d1, + 0x64d3, 0x64d4, 0x64d5, 0x64d6, 0x64d9, 0x64da, + /* 0x94 */ + 0x64db, 0x64dc, 0x64dd, 0x64df, 0x64e0, 0x64e1, 0x64e3, 0x64e5, + 0x64e7, 0x64e8, 0x64e9, 0x64ea, 0x64eb, 0x64ec, 0x64ed, 0x64ee, + 0x64ef, 0x64f0, 0x64f1, 0x64f2, 0x64f3, 0x64f4, 0x64f5, 0x64f6, + 0x64f7, 0x64f8, 0x64f9, 0x64fa, 0x64fb, 0x64fc, 0x64fd, 0x64fe, + 0x64ff, 0x6501, 0x6502, 0x6503, 0x6504, 0x6505, 0x6506, 0x6507, + 0x6508, 0x650a, 0x650b, 0x650c, 0x650d, 0x650e, 0x650f, 0x6510, + 0x6511, 0x6513, 0x6514, 0x6515, 0x6516, 0x6517, 0x6519, 0x651a, + 0x651b, 0x651c, 0x651d, 0x651e, 0x651f, 0x6520, 0x6521, 0x6522, + 0x6523, 0x6524, 0x6526, 0x6527, 0x6528, 0x6529, 0x652a, 0x652c, + 0x652d, 0x6530, 0x6531, 0x6532, 0x6533, 0x6537, 0x653a, 0x653c, + 0x653d, 0x6540, 0x6541, 0x6542, 0x6543, 0x6544, 0x6546, 0x6547, + 0x654a, 0x654b, 0x654d, 0x654e, 0x6550, 0x6552, 0x6553, 0x6554, + 0x6557, 0x6558, 0x655a, 0x655c, 0x655f, 0x6560, 0x6561, 0x6564, + 0x6565, 0x6567, 0x6568, 0x6569, 0x656a, 0x656d, 0x656e, 0x656f, + 0x6571, 0x6573, 0x6575, 0x6576, 0x6578, 0x6579, 0x657a, 0x657b, + 0x657c, 0x657d, 0x657e, 0x657f, 0x6580, 0x6581, 0x6582, 0x6583, + 0x6584, 0x6585, 0x6586, 0x6588, 0x6589, 0x658a, 0x658d, 0x658e, + 0x658f, 0x6592, 0x6594, 0x6595, 0x6596, 0x6598, 0x659a, 0x659d, + 0x659e, 0x65a0, 0x65a2, 0x65a3, 0x65a6, 0x65a8, 0x65aa, 0x65ac, + 0x65ae, 0x65b1, 0x65b2, 0x65b3, 0x65b4, 0x65b5, 0x65b6, 0x65b7, + 0x65b8, 0x65ba, 0x65bb, 0x65be, 0x65bf, 0x65c0, 0x65c2, 0x65c7, + 0x65c8, 0x65c9, 0x65ca, 0x65cd, 0x65d0, 0x65d1, 0x65d3, 0x65d4, + 0x65d5, 0x65d8, 0x65d9, 0x65da, 0x65db, 0x65dc, 0x65dd, 0x65de, + 0x65df, 0x65e1, 0x65e3, 0x65e4, 0x65ea, 0x65eb, + /* 0x95 */ + 0x65f2, 0x65f3, 0x65f4, 0x65f5, 0x65f8, 0x65f9, 0x65fb, 0x65fc, + 0x65fd, 0x65fe, 0x65ff, 0x6601, 0x6604, 0x6605, 0x6607, 0x6608, + 0x6609, 0x660b, 0x660d, 0x6610, 0x6611, 0x6612, 0x6616, 0x6617, + 0x6618, 0x661a, 0x661b, 0x661c, 0x661e, 0x6621, 0x6622, 0x6623, + 0x6624, 0x6626, 0x6629, 0x662a, 0x662b, 0x662c, 0x662e, 0x6630, + 0x6632, 0x6633, 0x6637, 0x6638, 0x6639, 0x663a, 0x663b, 0x663d, + 0x663f, 0x6640, 0x6642, 0x6644, 0x6645, 0x6646, 0x6647, 0x6648, + 0x6649, 0x664a, 0x664d, 0x664e, 0x6650, 0x6651, 0x6658, 0x6659, + 0x665b, 0x665c, 0x665d, 0x665e, 0x6660, 0x6662, 0x6663, 0x6665, + 0x6667, 0x6669, 0x666a, 0x666b, 0x666c, 0x666d, 0x6671, 0x6672, + 0x6673, 0x6675, 0x6678, 0x6679, 0x667b, 0x667c, 0x667d, 0x667f, + 0x6680, 0x6681, 0x6683, 0x6685, 0x6686, 0x6688, 0x6689, 0x668a, + 0x668b, 0x668d, 0x668e, 0x668f, 0x6690, 0x6692, 0x6693, 0x6694, + 0x6695, 0x6698, 0x6699, 0x669a, 0x669b, 0x669c, 0x669e, 0x669f, + 0x66a0, 0x66a1, 0x66a2, 0x66a3, 0x66a4, 0x66a5, 0x66a6, 0x66a9, + 0x66aa, 0x66ab, 0x66ac, 0x66ad, 0x66af, 0x66b0, 0x66b1, 0x66b2, + 0x66b3, 0x66b5, 0x66b6, 0x66b7, 0x66b8, 0x66ba, 0x66bb, 0x66bc, + 0x66bd, 0x66bf, 0x66c0, 0x66c1, 0x66c2, 0x66c3, 0x66c4, 0x66c5, + 0x66c6, 0x66c7, 0x66c8, 0x66c9, 0x66ca, 0x66cb, 0x66cc, 0x66cd, + 0x66ce, 0x66cf, 0x66d0, 0x66d1, 0x66d2, 0x66d3, 0x66d4, 0x66d5, + 0x66d6, 0x66d7, 0x66d8, 0x66da, 0x66de, 0x66df, 0x66e0, 0x66e1, + 0x66e2, 0x66e3, 0x66e4, 0x66e5, 0x66e7, 0x66e8, 0x66ea, 0x66eb, + 0x66ec, 0x66ed, 0x66ee, 0x66ef, 0x66f1, 0x66f5, 0x66f6, 0x66f8, + 0x66fa, 0x66fb, 0x66fd, 0x6701, 0x6702, 0x6703, + /* 0x96 */ + 0x6704, 0x6705, 0x6706, 0x6707, 0x670c, 0x670e, 0x670f, 0x6711, + 0x6712, 0x6713, 0x6716, 0x6718, 0x6719, 0x671a, 0x671c, 0x671e, + 0x6720, 0x6721, 0x6722, 0x6723, 0x6724, 0x6725, 0x6727, 0x6729, + 0x672e, 0x6730, 0x6732, 0x6733, 0x6736, 0x6737, 0x6738, 0x6739, + 0x673b, 0x673c, 0x673e, 0x673f, 0x6741, 0x6744, 0x6745, 0x6747, + 0x674a, 0x674b, 0x674d, 0x6752, 0x6754, 0x6755, 0x6757, 0x6758, + 0x6759, 0x675a, 0x675b, 0x675d, 0x6762, 0x6763, 0x6764, 0x6766, + 0x6767, 0x676b, 0x676c, 0x676e, 0x6771, 0x6774, 0x6776, 0x6778, + 0x6779, 0x677a, 0x677b, 0x677d, 0x6780, 0x6782, 0x6783, 0x6785, + 0x6786, 0x6788, 0x678a, 0x678c, 0x678d, 0x678e, 0x678f, 0x6791, + 0x6792, 0x6793, 0x6794, 0x6796, 0x6799, 0x679b, 0x679f, 0x67a0, + 0x67a1, 0x67a4, 0x67a6, 0x67a9, 0x67ac, 0x67ae, 0x67b1, 0x67b2, + 0x67b4, 0x67b9, 0x67ba, 0x67bb, 0x67bc, 0x67bd, 0x67be, 0x67bf, + 0x67c0, 0x67c2, 0x67c5, 0x67c6, 0x67c7, 0x67c8, 0x67c9, 0x67ca, + 0x67cb, 0x67cc, 0x67cd, 0x67ce, 0x67d5, 0x67d6, 0x67d7, 0x67db, + 0x67df, 0x67e1, 0x67e3, 0x67e4, 0x67e6, 0x67e7, 0x67e8, 0x67ea, + 0x67eb, 0x67ed, 0x67ee, 0x67f2, 0x67f5, 0x67f6, 0x67f7, 0x67f8, + 0x67f9, 0x67fa, 0x67fb, 0x67fc, 0x67fe, 0x6801, 0x6802, 0x6803, + 0x6804, 0x6806, 0x680d, 0x6810, 0x6812, 0x6814, 0x6815, 0x6818, + 0x6819, 0x681a, 0x681b, 0x681c, 0x681e, 0x681f, 0x6820, 0x6822, + 0x6823, 0x6824, 0x6825, 0x6826, 0x6827, 0x6828, 0x682b, 0x682c, + 0x682d, 0x682e, 0x682f, 0x6830, 0x6831, 0x6834, 0x6835, 0x6836, + 0x683a, 0x683b, 0x683f, 0x6847, 0x684b, 0x684d, 0x684f, 0x6852, + 0x6856, 0x6857, 0x6858, 0x6859, 0x685a, 0x685b, + /* 0x97 */ + 0x685c, 0x685d, 0x685e, 0x685f, 0x686a, 0x686c, 0x686d, 0x686e, + 0x686f, 0x6870, 0x6871, 0x6872, 0x6873, 0x6875, 0x6878, 0x6879, + 0x687a, 0x687b, 0x687c, 0x687d, 0x687e, 0x687f, 0x6880, 0x6882, + 0x6884, 0x6887, 0x6888, 0x6889, 0x688a, 0x688b, 0x688c, 0x688d, + 0x688e, 0x6890, 0x6891, 0x6892, 0x6894, 0x6895, 0x6896, 0x6898, + 0x6899, 0x689a, 0x689b, 0x689c, 0x689d, 0x689e, 0x689f, 0x68a0, + 0x68a1, 0x68a3, 0x68a4, 0x68a5, 0x68a9, 0x68aa, 0x68ab, 0x68ac, + 0x68ae, 0x68b1, 0x68b2, 0x68b4, 0x68b6, 0x68b7, 0x68b8, 0x68b9, + 0x68ba, 0x68bb, 0x68bc, 0x68bd, 0x68be, 0x68bf, 0x68c1, 0x68c3, + 0x68c4, 0x68c5, 0x68c6, 0x68c7, 0x68c8, 0x68ca, 0x68cc, 0x68ce, + 0x68cf, 0x68d0, 0x68d1, 0x68d3, 0x68d4, 0x68d6, 0x68d7, 0x68d9, + 0x68db, 0x68dc, 0x68dd, 0x68de, 0x68df, 0x68e1, 0x68e2, 0x68e4, + 0x68e5, 0x68e6, 0x68e7, 0x68e8, 0x68e9, 0x68ea, 0x68eb, 0x68ec, + 0x68ed, 0x68ef, 0x68f2, 0x68f3, 0x68f4, 0x68f6, 0x68f7, 0x68f8, + 0x68fb, 0x68fd, 0x68fe, 0x68ff, 0x6900, 0x6902, 0x6903, 0x6904, + 0x6906, 0x6907, 0x6908, 0x6909, 0x690a, 0x690c, 0x690f, 0x6911, + 0x6913, 0x6914, 0x6915, 0x6916, 0x6917, 0x6918, 0x6919, 0x691a, + 0x691b, 0x691c, 0x691d, 0x691e, 0x6921, 0x6922, 0x6923, 0x6925, + 0x6926, 0x6927, 0x6928, 0x6929, 0x692a, 0x692b, 0x692c, 0x692e, + 0x692f, 0x6931, 0x6932, 0x6933, 0x6935, 0x6936, 0x6937, 0x6938, + 0x693a, 0x693b, 0x693c, 0x693e, 0x6940, 0x6941, 0x6943, 0x6944, + 0x6945, 0x6946, 0x6947, 0x6948, 0x6949, 0x694a, 0x694b, 0x694c, + 0x694d, 0x694e, 0x694f, 0x6950, 0x6951, 0x6952, 0x6953, 0x6955, + 0x6956, 0x6958, 0x6959, 0x695b, 0x695c, 0x695f, + /* 0x98 */ + 0x6961, 0x6962, 0x6964, 0x6965, 0x6967, 0x6968, 0x6969, 0x696a, + 0x696c, 0x696d, 0x696f, 0x6970, 0x6972, 0x6973, 0x6974, 0x6975, + 0x6976, 0x697a, 0x697b, 0x697d, 0x697e, 0x697f, 0x6981, 0x6983, + 0x6985, 0x698a, 0x698b, 0x698c, 0x698e, 0x698f, 0x6990, 0x6991, + 0x6992, 0x6993, 0x6996, 0x6997, 0x6999, 0x699a, 0x699d, 0x699e, + 0x699f, 0x69a0, 0x69a1, 0x69a2, 0x69a3, 0x69a4, 0x69a5, 0x69a6, + 0x69a9, 0x69aa, 0x69ac, 0x69ae, 0x69af, 0x69b0, 0x69b2, 0x69b3, + 0x69b5, 0x69b6, 0x69b8, 0x69b9, 0x69ba, 0x69bc, 0x69bd, 0x69be, + 0x69bf, 0x69c0, 0x69c2, 0x69c3, 0x69c4, 0x69c5, 0x69c6, 0x69c7, + 0x69c8, 0x69c9, 0x69cb, 0x69cd, 0x69cf, 0x69d1, 0x69d2, 0x69d3, + 0x69d5, 0x69d6, 0x69d7, 0x69d8, 0x69d9, 0x69da, 0x69dc, 0x69dd, + 0x69de, 0x69e1, 0x69e2, 0x69e3, 0x69e4, 0x69e5, 0x69e6, 0x69e7, + 0x69e8, 0x69e9, 0x69ea, 0x69eb, 0x69ec, 0x69ee, 0x69ef, 0x69f0, + 0x69f1, 0x69f3, 0x69f4, 0x69f5, 0x69f6, 0x69f7, 0x69f8, 0x69f9, + 0x69fa, 0x69fb, 0x69fc, 0x69fe, 0x6a00, 0x6a01, 0x6a02, 0x6a03, + 0x6a04, 0x6a05, 0x6a06, 0x6a07, 0x6a08, 0x6a09, 0x6a0b, 0x6a0c, + 0x6a0d, 0x6a0e, 0x6a0f, 0x6a10, 0x6a11, 0x6a12, 0x6a13, 0x6a14, + 0x6a15, 0x6a16, 0x6a19, 0x6a1a, 0x6a1b, 0x6a1c, 0x6a1d, 0x6a1e, + 0x6a20, 0x6a22, 0x6a23, 0x6a24, 0x6a25, 0x6a26, 0x6a27, 0x6a29, + 0x6a2b, 0x6a2c, 0x6a2d, 0x6a2e, 0x6a30, 0x6a32, 0x6a33, 0x6a34, + 0x6a36, 0x6a37, 0x6a38, 0x6a39, 0x6a3a, 0x6a3b, 0x6a3c, 0x6a3f, + 0x6a40, 0x6a41, 0x6a42, 0x6a43, 0x6a45, 0x6a46, 0x6a48, 0x6a49, + 0x6a4a, 0x6a4b, 0x6a4c, 0x6a4d, 0x6a4e, 0x6a4f, 0x6a51, 0x6a52, + 0x6a53, 0x6a54, 0x6a55, 0x6a56, 0x6a57, 0x6a5a, + /* 0x99 */ + 0x6a5c, 0x6a5d, 0x6a5e, 0x6a5f, 0x6a60, 0x6a62, 0x6a63, 0x6a64, + 0x6a66, 0x6a67, 0x6a68, 0x6a69, 0x6a6a, 0x6a6b, 0x6a6c, 0x6a6d, + 0x6a6e, 0x6a6f, 0x6a70, 0x6a72, 0x6a73, 0x6a74, 0x6a75, 0x6a76, + 0x6a77, 0x6a78, 0x6a7a, 0x6a7b, 0x6a7d, 0x6a7e, 0x6a7f, 0x6a81, + 0x6a82, 0x6a83, 0x6a85, 0x6a86, 0x6a87, 0x6a88, 0x6a89, 0x6a8a, + 0x6a8b, 0x6a8c, 0x6a8d, 0x6a8f, 0x6a92, 0x6a93, 0x6a94, 0x6a95, + 0x6a96, 0x6a98, 0x6a99, 0x6a9a, 0x6a9b, 0x6a9c, 0x6a9d, 0x6a9e, + 0x6a9f, 0x6aa1, 0x6aa2, 0x6aa3, 0x6aa4, 0x6aa5, 0x6aa6, 0x6aa7, + 0x6aa8, 0x6aaa, 0x6aad, 0x6aae, 0x6aaf, 0x6ab0, 0x6ab1, 0x6ab2, + 0x6ab3, 0x6ab4, 0x6ab5, 0x6ab6, 0x6ab7, 0x6ab8, 0x6ab9, 0x6aba, + 0x6abb, 0x6abc, 0x6abd, 0x6abe, 0x6abf, 0x6ac0, 0x6ac1, 0x6ac2, + 0x6ac3, 0x6ac4, 0x6ac5, 0x6ac6, 0x6ac7, 0x6ac8, 0x6ac9, 0x6aca, + 0x6acb, 0x6acc, 0x6acd, 0x6ace, 0x6acf, 0x6ad0, 0x6ad1, 0x6ad2, + 0x6ad3, 0x6ad4, 0x6ad5, 0x6ad6, 0x6ad7, 0x6ad8, 0x6ad9, 0x6ada, + 0x6adb, 0x6adc, 0x6add, 0x6ade, 0x6adf, 0x6ae0, 0x6ae1, 0x6ae2, + 0x6ae3, 0x6ae4, 0x6ae5, 0x6ae6, 0x6ae7, 0x6ae8, 0x6ae9, 0x6aea, + 0x6aeb, 0x6aec, 0x6aed, 0x6aee, 0x6aef, 0x6af0, 0x6af1, 0x6af2, + 0x6af3, 0x6af4, 0x6af5, 0x6af6, 0x6af7, 0x6af8, 0x6af9, 0x6afa, + 0x6afb, 0x6afc, 0x6afd, 0x6afe, 0x6aff, 0x6b00, 0x6b01, 0x6b02, + 0x6b03, 0x6b04, 0x6b05, 0x6b06, 0x6b07, 0x6b08, 0x6b09, 0x6b0a, + 0x6b0b, 0x6b0c, 0x6b0d, 0x6b0e, 0x6b0f, 0x6b10, 0x6b11, 0x6b12, + 0x6b13, 0x6b14, 0x6b15, 0x6b16, 0x6b17, 0x6b18, 0x6b19, 0x6b1a, + 0x6b1b, 0x6b1c, 0x6b1d, 0x6b1e, 0x6b1f, 0x6b25, 0x6b26, 0x6b28, + 0x6b29, 0x6b2a, 0x6b2b, 0x6b2c, 0x6b2d, 0x6b2e, + /* 0x9a */ + 0x6b2f, 0x6b30, 0x6b31, 0x6b33, 0x6b34, 0x6b35, 0x6b36, 0x6b38, + 0x6b3b, 0x6b3c, 0x6b3d, 0x6b3f, 0x6b40, 0x6b41, 0x6b42, 0x6b44, + 0x6b45, 0x6b48, 0x6b4a, 0x6b4b, 0x6b4d, 0x6b4e, 0x6b4f, 0x6b50, + 0x6b51, 0x6b52, 0x6b53, 0x6b54, 0x6b55, 0x6b56, 0x6b57, 0x6b58, + 0x6b5a, 0x6b5b, 0x6b5c, 0x6b5d, 0x6b5e, 0x6b5f, 0x6b60, 0x6b61, + 0x6b68, 0x6b69, 0x6b6b, 0x6b6c, 0x6b6d, 0x6b6e, 0x6b6f, 0x6b70, + 0x6b71, 0x6b72, 0x6b73, 0x6b74, 0x6b75, 0x6b76, 0x6b77, 0x6b78, + 0x6b7a, 0x6b7d, 0x6b7e, 0x6b7f, 0x6b80, 0x6b85, 0x6b88, 0x6b8c, + 0x6b8e, 0x6b8f, 0x6b90, 0x6b91, 0x6b94, 0x6b95, 0x6b97, 0x6b98, + 0x6b99, 0x6b9c, 0x6b9d, 0x6b9e, 0x6b9f, 0x6ba0, 0x6ba2, 0x6ba3, + 0x6ba4, 0x6ba5, 0x6ba6, 0x6ba7, 0x6ba8, 0x6ba9, 0x6bab, 0x6bac, + 0x6bad, 0x6bae, 0x6baf, 0x6bb0, 0x6bb1, 0x6bb2, 0x6bb6, 0x6bb8, + 0x6bb9, 0x6bba, 0x6bbb, 0x6bbc, 0x6bbd, 0x6bbe, 0x6bc0, 0x6bc3, + 0x6bc4, 0x6bc6, 0x6bc7, 0x6bc8, 0x6bc9, 0x6bca, 0x6bcc, 0x6bce, + 0x6bd0, 0x6bd1, 0x6bd8, 0x6bda, 0x6bdc, 0x6bdd, 0x6bde, 0x6bdf, + 0x6be0, 0x6be2, 0x6be3, 0x6be4, 0x6be5, 0x6be6, 0x6be7, 0x6be8, + 0x6be9, 0x6bec, 0x6bed, 0x6bee, 0x6bf0, 0x6bf1, 0x6bf2, 0x6bf4, + 0x6bf6, 0x6bf7, 0x6bf8, 0x6bfa, 0x6bfb, 0x6bfc, 0x6bfe, 0x6bff, + 0x6c00, 0x6c01, 0x6c02, 0x6c03, 0x6c04, 0x6c08, 0x6c09, 0x6c0a, + 0x6c0b, 0x6c0c, 0x6c0e, 0x6c12, 0x6c17, 0x6c1c, 0x6c1d, 0x6c1e, + 0x6c20, 0x6c23, 0x6c25, 0x6c2b, 0x6c2c, 0x6c2d, 0x6c31, 0x6c33, + 0x6c36, 0x6c37, 0x6c39, 0x6c3a, 0x6c3b, 0x6c3c, 0x6c3e, 0x6c3f, + 0x6c43, 0x6c44, 0x6c45, 0x6c48, 0x6c4b, 0x6c4c, 0x6c4d, 0x6c4e, + 0x6c4f, 0x6c51, 0x6c52, 0x6c53, 0x6c56, 0x6c58, + /* 0x9b */ + 0x6c59, 0x6c5a, 0x6c62, 0x6c63, 0x6c65, 0x6c66, 0x6c67, 0x6c6b, + 0x6c6c, 0x6c6d, 0x6c6e, 0x6c6f, 0x6c71, 0x6c73, 0x6c75, 0x6c77, + 0x6c78, 0x6c7a, 0x6c7b, 0x6c7c, 0x6c7f, 0x6c80, 0x6c84, 0x6c87, + 0x6c8a, 0x6c8b, 0x6c8d, 0x6c8e, 0x6c91, 0x6c92, 0x6c95, 0x6c96, + 0x6c97, 0x6c98, 0x6c9a, 0x6c9c, 0x6c9d, 0x6c9e, 0x6ca0, 0x6ca2, + 0x6ca8, 0x6cac, 0x6caf, 0x6cb0, 0x6cb4, 0x6cb5, 0x6cb6, 0x6cb7, + 0x6cba, 0x6cc0, 0x6cc1, 0x6cc2, 0x6cc3, 0x6cc6, 0x6cc7, 0x6cc8, + 0x6ccb, 0x6ccd, 0x6cce, 0x6ccf, 0x6cd1, 0x6cd2, 0x6cd8, 0x6cd9, + 0x6cda, 0x6cdc, 0x6cdd, 0x6cdf, 0x6ce4, 0x6ce6, 0x6ce7, 0x6ce9, + 0x6cec, 0x6ced, 0x6cf2, 0x6cf4, 0x6cf9, 0x6cff, 0x6d00, 0x6d02, + 0x6d03, 0x6d05, 0x6d06, 0x6d08, 0x6d09, 0x6d0a, 0x6d0d, 0x6d0f, + 0x6d10, 0x6d11, 0x6d13, 0x6d14, 0x6d15, 0x6d16, 0x6d18, 0x6d1c, + 0x6d1d, 0x6d1f, 0x6d20, 0x6d21, 0x6d22, 0x6d23, 0x6d24, 0x6d26, + 0x6d28, 0x6d29, 0x6d2c, 0x6d2d, 0x6d2f, 0x6d30, 0x6d34, 0x6d36, + 0x6d37, 0x6d38, 0x6d3a, 0x6d3f, 0x6d40, 0x6d42, 0x6d44, 0x6d49, + 0x6d4c, 0x6d50, 0x6d55, 0x6d56, 0x6d57, 0x6d58, 0x6d5b, 0x6d5d, + 0x6d5f, 0x6d61, 0x6d62, 0x6d64, 0x6d65, 0x6d67, 0x6d68, 0x6d6b, + 0x6d6c, 0x6d6d, 0x6d70, 0x6d71, 0x6d72, 0x6d73, 0x6d75, 0x6d76, + 0x6d79, 0x6d7a, 0x6d7b, 0x6d7d, 0x6d7e, 0x6d7f, 0x6d80, 0x6d81, + 0x6d83, 0x6d84, 0x6d86, 0x6d87, 0x6d8a, 0x6d8b, 0x6d8d, 0x6d8f, + 0x6d90, 0x6d92, 0x6d96, 0x6d97, 0x6d98, 0x6d99, 0x6d9a, 0x6d9c, + 0x6da2, 0x6da5, 0x6dac, 0x6dad, 0x6db0, 0x6db1, 0x6db3, 0x6db4, + 0x6db6, 0x6db7, 0x6db9, 0x6dba, 0x6dbb, 0x6dbc, 0x6dbd, 0x6dbe, + 0x6dc1, 0x6dc2, 0x6dc3, 0x6dc8, 0x6dc9, 0x6dca, + /* 0x9c */ + 0x6dcd, 0x6dce, 0x6dcf, 0x6dd0, 0x6dd2, 0x6dd3, 0x6dd4, 0x6dd5, + 0x6dd7, 0x6dda, 0x6ddb, 0x6ddc, 0x6ddf, 0x6de2, 0x6de3, 0x6de5, + 0x6de7, 0x6de8, 0x6de9, 0x6dea, 0x6ded, 0x6def, 0x6df0, 0x6df2, + 0x6df4, 0x6df5, 0x6df6, 0x6df8, 0x6dfa, 0x6dfd, 0x6dfe, 0x6dff, + 0x6e00, 0x6e01, 0x6e02, 0x6e03, 0x6e04, 0x6e06, 0x6e07, 0x6e08, + 0x6e09, 0x6e0b, 0x6e0f, 0x6e12, 0x6e13, 0x6e15, 0x6e18, 0x6e19, + 0x6e1b, 0x6e1c, 0x6e1e, 0x6e1f, 0x6e22, 0x6e26, 0x6e27, 0x6e28, + 0x6e2a, 0x6e2c, 0x6e2e, 0x6e30, 0x6e31, 0x6e33, 0x6e35, 0x6e36, + 0x6e37, 0x6e39, 0x6e3b, 0x6e3c, 0x6e3d, 0x6e3e, 0x6e3f, 0x6e40, + 0x6e41, 0x6e42, 0x6e45, 0x6e46, 0x6e47, 0x6e48, 0x6e49, 0x6e4a, + 0x6e4b, 0x6e4c, 0x6e4f, 0x6e50, 0x6e51, 0x6e52, 0x6e55, 0x6e57, + 0x6e59, 0x6e5a, 0x6e5c, 0x6e5d, 0x6e5e, 0x6e60, 0x6e61, 0x6e62, + 0x6e63, 0x6e64, 0x6e65, 0x6e66, 0x6e67, 0x6e68, 0x6e69, 0x6e6a, + 0x6e6c, 0x6e6d, 0x6e6f, 0x6e70, 0x6e71, 0x6e72, 0x6e73, 0x6e74, + 0x6e75, 0x6e76, 0x6e77, 0x6e78, 0x6e79, 0x6e7a, 0x6e7b, 0x6e7c, + 0x6e7d, 0x6e80, 0x6e81, 0x6e82, 0x6e84, 0x6e87, 0x6e88, 0x6e8a, + 0x6e8b, 0x6e8c, 0x6e8d, 0x6e8e, 0x6e91, 0x6e92, 0x6e93, 0x6e94, + 0x6e95, 0x6e96, 0x6e97, 0x6e99, 0x6e9a, 0x6e9b, 0x6e9d, 0x6e9e, + 0x6ea0, 0x6ea1, 0x6ea3, 0x6ea4, 0x6ea6, 0x6ea8, 0x6ea9, 0x6eab, + 0x6eac, 0x6ead, 0x6eae, 0x6eb0, 0x6eb3, 0x6eb5, 0x6eb8, 0x6eb9, + 0x6ebc, 0x6ebe, 0x6ebf, 0x6ec0, 0x6ec3, 0x6ec4, 0x6ec5, 0x6ec6, + 0x6ec8, 0x6ec9, 0x6eca, 0x6ecc, 0x6ecd, 0x6ece, 0x6ed0, 0x6ed2, + 0x6ed6, 0x6ed8, 0x6ed9, 0x6edb, 0x6edc, 0x6edd, 0x6ee3, 0x6ee7, + 0x6eea, 0x6eeb, 0x6eec, 0x6eed, 0x6eee, 0x6eef, + /* 0x9d */ + 0x6ef0, 0x6ef1, 0x6ef2, 0x6ef3, 0x6ef5, 0x6ef6, 0x6ef7, 0x6ef8, + 0x6efa, 0x6efb, 0x6efc, 0x6efd, 0x6efe, 0x6eff, 0x6f00, 0x6f01, + 0x6f03, 0x6f04, 0x6f05, 0x6f07, 0x6f08, 0x6f0a, 0x6f0b, 0x6f0c, + 0x6f0d, 0x6f0e, 0x6f10, 0x6f11, 0x6f12, 0x6f16, 0x6f17, 0x6f18, + 0x6f19, 0x6f1a, 0x6f1b, 0x6f1c, 0x6f1d, 0x6f1e, 0x6f1f, 0x6f21, + 0x6f22, 0x6f23, 0x6f25, 0x6f26, 0x6f27, 0x6f28, 0x6f2c, 0x6f2e, + 0x6f30, 0x6f32, 0x6f34, 0x6f35, 0x6f37, 0x6f38, 0x6f39, 0x6f3a, + 0x6f3b, 0x6f3c, 0x6f3d, 0x6f3f, 0x6f40, 0x6f41, 0x6f42, 0x6f43, + 0x6f44, 0x6f45, 0x6f48, 0x6f49, 0x6f4a, 0x6f4c, 0x6f4e, 0x6f4f, + 0x6f50, 0x6f51, 0x6f52, 0x6f53, 0x6f54, 0x6f55, 0x6f56, 0x6f57, + 0x6f59, 0x6f5a, 0x6f5b, 0x6f5d, 0x6f5f, 0x6f60, 0x6f61, 0x6f63, + 0x6f64, 0x6f65, 0x6f67, 0x6f68, 0x6f69, 0x6f6a, 0x6f6b, 0x6f6c, + 0x6f6f, 0x6f70, 0x6f71, 0x6f73, 0x6f75, 0x6f76, 0x6f77, 0x6f79, + 0x6f7b, 0x6f7d, 0x6f7e, 0x6f7f, 0x6f80, 0x6f81, 0x6f82, 0x6f83, + 0x6f85, 0x6f86, 0x6f87, 0x6f8a, 0x6f8b, 0x6f8f, 0x6f90, 0x6f91, + 0x6f92, 0x6f93, 0x6f94, 0x6f95, 0x6f96, 0x6f97, 0x6f98, 0x6f99, + 0x6f9a, 0x6f9b, 0x6f9d, 0x6f9e, 0x6f9f, 0x6fa0, 0x6fa2, 0x6fa3, + 0x6fa4, 0x6fa5, 0x6fa6, 0x6fa8, 0x6fa9, 0x6faa, 0x6fab, 0x6fac, + 0x6fad, 0x6fae, 0x6faf, 0x6fb0, 0x6fb1, 0x6fb2, 0x6fb4, 0x6fb5, + 0x6fb7, 0x6fb8, 0x6fba, 0x6fbb, 0x6fbc, 0x6fbd, 0x6fbe, 0x6fbf, + 0x6fc1, 0x6fc3, 0x6fc4, 0x6fc5, 0x6fc6, 0x6fc7, 0x6fc8, 0x6fca, + 0x6fcb, 0x6fcc, 0x6fcd, 0x6fce, 0x6fcf, 0x6fd0, 0x6fd3, 0x6fd4, + 0x6fd5, 0x6fd6, 0x6fd7, 0x6fd8, 0x6fd9, 0x6fda, 0x6fdb, 0x6fdc, + 0x6fdd, 0x6fdf, 0x6fe2, 0x6fe3, 0x6fe4, 0x6fe5, + /* 0x9e */ + 0x6fe6, 0x6fe7, 0x6fe8, 0x6fe9, 0x6fea, 0x6feb, 0x6fec, 0x6fed, + 0x6ff0, 0x6ff1, 0x6ff2, 0x6ff3, 0x6ff4, 0x6ff5, 0x6ff6, 0x6ff7, + 0x6ff8, 0x6ff9, 0x6ffa, 0x6ffb, 0x6ffc, 0x6ffd, 0x6ffe, 0x6fff, + 0x7000, 0x7001, 0x7002, 0x7003, 0x7004, 0x7005, 0x7006, 0x7007, + 0x7008, 0x7009, 0x700a, 0x700b, 0x700c, 0x700d, 0x700e, 0x700f, + 0x7010, 0x7012, 0x7013, 0x7014, 0x7015, 0x7016, 0x7017, 0x7018, + 0x7019, 0x701c, 0x701d, 0x701e, 0x701f, 0x7020, 0x7021, 0x7022, + 0x7024, 0x7025, 0x7026, 0x7027, 0x7028, 0x7029, 0x702a, 0x702b, + 0x702c, 0x702d, 0x702e, 0x702f, 0x7030, 0x7031, 0x7032, 0x7033, + 0x7034, 0x7036, 0x7037, 0x7038, 0x703a, 0x703b, 0x703c, 0x703d, + 0x703e, 0x703f, 0x7040, 0x7041, 0x7042, 0x7043, 0x7044, 0x7045, + 0x7046, 0x7047, 0x7048, 0x7049, 0x704a, 0x704b, 0x704d, 0x704e, + 0x7050, 0x7051, 0x7052, 0x7053, 0x7054, 0x7055, 0x7056, 0x7057, + 0x7058, 0x7059, 0x705a, 0x705b, 0x705c, 0x705d, 0x705f, 0x7060, + 0x7061, 0x7062, 0x7063, 0x7064, 0x7065, 0x7066, 0x7067, 0x7068, + 0x7069, 0x706a, 0x706e, 0x7071, 0x7072, 0x7073, 0x7074, 0x7077, + 0x7079, 0x707a, 0x707b, 0x707d, 0x7081, 0x7082, 0x7083, 0x7084, + 0x7086, 0x7087, 0x7088, 0x708b, 0x708c, 0x708d, 0x708f, 0x7090, + 0x7091, 0x7093, 0x7097, 0x7098, 0x709a, 0x709b, 0x709e, 0x709f, + 0x70a0, 0x70a1, 0x70a2, 0x70a3, 0x70a4, 0x70a5, 0x70a6, 0x70a7, + 0x70a8, 0x70a9, 0x70aa, 0x70b0, 0x70b2, 0x70b4, 0x70b5, 0x70b6, + 0x70ba, 0x70be, 0x70bf, 0x70c4, 0x70c5, 0x70c6, 0x70c7, 0x70c9, + 0x70cb, 0x70cc, 0x70cd, 0x70ce, 0x70cf, 0x70d0, 0x70d1, 0x70d2, + 0x70d3, 0x70d4, 0x70d5, 0x70d6, 0x70d7, 0x70da, + /* 0x9f */ + 0x70dc, 0x70dd, 0x70de, 0x70e0, 0x70e1, 0x70e2, 0x70e3, 0x70e5, + 0x70ea, 0x70ee, 0x70f0, 0x70f1, 0x70f2, 0x70f3, 0x70f4, 0x70f5, + 0x70f6, 0x70f8, 0x70fa, 0x70fb, 0x70fc, 0x70fe, 0x70ff, 0x7100, + 0x7101, 0x7102, 0x7103, 0x7104, 0x7105, 0x7106, 0x7107, 0x7108, + 0x710b, 0x710c, 0x710d, 0x710e, 0x710f, 0x7111, 0x7112, 0x7114, + 0x7117, 0x711b, 0x711c, 0x711d, 0x711e, 0x711f, 0x7120, 0x7121, + 0x7122, 0x7123, 0x7124, 0x7125, 0x7127, 0x7128, 0x7129, 0x712a, + 0x712b, 0x712c, 0x712d, 0x712e, 0x7132, 0x7133, 0x7134, 0x7135, + 0x7137, 0x7138, 0x7139, 0x713a, 0x713b, 0x713c, 0x713d, 0x713e, + 0x713f, 0x7140, 0x7141, 0x7142, 0x7143, 0x7144, 0x7146, 0x7147, + 0x7148, 0x7149, 0x714b, 0x714d, 0x714f, 0x7150, 0x7151, 0x7152, + 0x7153, 0x7154, 0x7155, 0x7156, 0x7157, 0x7158, 0x7159, 0x715a, + 0x715b, 0x715d, 0x715f, 0x7160, 0x7161, 0x7162, 0x7163, 0x7165, + 0x7169, 0x716a, 0x716b, 0x716c, 0x716d, 0x716f, 0x7170, 0x7171, + 0x7174, 0x7175, 0x7176, 0x7177, 0x7179, 0x717b, 0x717c, 0x717e, + 0x717f, 0x7180, 0x7181, 0x7182, 0x7183, 0x7185, 0x7186, 0x7187, + 0x7188, 0x7189, 0x718b, 0x718c, 0x718d, 0x718e, 0x7190, 0x7191, + 0x7192, 0x7193, 0x7195, 0x7196, 0x7197, 0x719a, 0x719b, 0x719c, + 0x719d, 0x719e, 0x71a1, 0x71a2, 0x71a3, 0x71a4, 0x71a5, 0x71a6, + 0x71a7, 0x71a9, 0x71aa, 0x71ab, 0x71ad, 0x71ae, 0x71af, 0x71b0, + 0x71b1, 0x71b2, 0x71b4, 0x71b6, 0x71b7, 0x71b8, 0x71ba, 0x71bb, + 0x71bc, 0x71bd, 0x71be, 0x71bf, 0x71c0, 0x71c1, 0x71c2, 0x71c4, + 0x71c5, 0x71c6, 0x71c7, 0x71c8, 0x71c9, 0x71ca, 0x71cb, 0x71cc, + 0x71cd, 0x71cf, 0x71d0, 0x71d1, 0x71d2, 0x71d3, + /* 0xa0 */ + 0x71d6, 0x71d7, 0x71d8, 0x71d9, 0x71da, 0x71db, 0x71dc, 0x71dd, + 0x71de, 0x71df, 0x71e1, 0x71e2, 0x71e3, 0x71e4, 0x71e6, 0x71e8, + 0x71e9, 0x71ea, 0x71eb, 0x71ec, 0x71ed, 0x71ef, 0x71f0, 0x71f1, + 0x71f2, 0x71f3, 0x71f4, 0x71f5, 0x71f6, 0x71f7, 0x71f8, 0x71fa, + 0x71fb, 0x71fc, 0x71fd, 0x71fe, 0x71ff, 0x7200, 0x7201, 0x7202, + 0x7203, 0x7204, 0x7205, 0x7207, 0x7208, 0x7209, 0x720a, 0x720b, + 0x720c, 0x720d, 0x720e, 0x720f, 0x7210, 0x7211, 0x7212, 0x7213, + 0x7214, 0x7215, 0x7216, 0x7217, 0x7218, 0x7219, 0x721a, 0x721b, + 0x721c, 0x721e, 0x721f, 0x7220, 0x7221, 0x7222, 0x7223, 0x7224, + 0x7225, 0x7226, 0x7227, 0x7229, 0x722b, 0x722d, 0x722e, 0x722f, + 0x7232, 0x7233, 0x7234, 0x723a, 0x723c, 0x723e, 0x7240, 0x7241, + 0x7242, 0x7243, 0x7244, 0x7245, 0x7246, 0x7249, 0x724a, 0x724b, + 0x724e, 0x724f, 0x7250, 0x7251, 0x7253, 0x7254, 0x7255, 0x7257, + 0x7258, 0x725a, 0x725c, 0x725e, 0x7260, 0x7263, 0x7264, 0x7265, + 0x7268, 0x726a, 0x726b, 0x726c, 0x726d, 0x7270, 0x7271, 0x7273, + 0x7274, 0x7276, 0x7277, 0x7278, 0x727b, 0x727c, 0x727d, 0x7282, + 0x7283, 0x7285, 0x7286, 0x7287, 0x7288, 0x7289, 0x728c, 0x728e, + 0x7290, 0x7291, 0x7293, 0x7294, 0x7295, 0x7296, 0x7297, 0x7298, + 0x7299, 0x729a, 0x729b, 0x729c, 0x729d, 0x729e, 0x72a0, 0x72a1, + 0x72a2, 0x72a3, 0x72a4, 0x72a5, 0x72a6, 0x72a7, 0x72a8, 0x72a9, + 0x72aa, 0x72ab, 0x72ae, 0x72b1, 0x72b2, 0x72b3, 0x72b5, 0x72ba, + 0x72bb, 0x72bc, 0x72bd, 0x72be, 0x72bf, 0x72c0, 0x72c5, 0x72c6, + 0x72c7, 0x72c9, 0x72ca, 0x72cb, 0x72cc, 0x72cf, 0x72d1, 0x72d3, + 0x72d4, 0x72d5, 0x72d6, 0x72d8, 0x72da, 0x72db, +}; + +static int +gbkext1_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 >= 0x81 && c1 <= 0xa0)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0x80 && c2 < 0xff)) { + unsigned int i = 190 * (c1 - 0x81) + (c2 - (c2 >= 0x80 ? 0x41 : 0x40)); + unsigned short wc = 0xfffd; + { + if (i < 6080) + wc = gbkext1_2uni_page81[i]; + } + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + diff --git a/graf2d/win32gdk/gdk/src/iconv/gbkext2.h b/graf2d/win32gdk/gdk/src/iconv/gbkext2.h new file mode 100644 index 00000000000..5a0dbdec57f --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/gbkext2.h @@ -0,0 +1,1174 @@ +/* + * Copyright (C) 1999-2000 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * GBK/4 and GBK/5 extensions + */ + +static const unsigned short gbkext2_2uni_pagea8[8272] = { + /* 0xa8 */ + 0x02ca, 0x02cb, 0x02d9, 0x2013, 0x2015, 0x2025, 0x2035, 0x2105, + 0x2109, 0x2196, 0x2197, 0x2198, 0x2199, 0x2215, 0x221f, 0x2223, + 0x2252, 0x2266, 0x2267, 0x22bf, 0x2550, 0x2551, 0x2552, 0x2553, + 0x2554, 0x2555, 0x2556, 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, + 0x255c, 0x255d, 0x255e, 0x255f, 0x2560, 0x2561, 0x2562, 0x2563, + 0x2564, 0x2565, 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, + 0x256c, 0x256d, 0x256e, 0x256f, 0x2570, 0x2571, 0x2572, 0x2573, + 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586, 0x2587, 0x2588, + 0x2589, 0x258a, 0x258b, 0x258c, 0x258d, 0x258e, 0x258f, 0x2593, + 0x2594, 0x2595, 0x25bc, 0x25bd, 0x25e2, 0x25e3, 0x25e4, 0x25e5, + 0x2609, 0x2295, 0x3012, 0x301d, 0x301e, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0xa9 */ + 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027, 0x3028, + 0x3029, 0x32a3, 0x338e, 0x338f, 0x339c, 0x339d, 0x339e, 0x33a1, + 0x33c4, 0x33ce, 0x33d1, 0x33d2, 0x33d5, 0xfe30, 0xffe2, 0xffe4, + 0xfffd, 0x2121, 0x3231, 0xfffd, 0x2010, 0xfffd, 0xfffd, 0xfffd, + 0x30fc, 0x309b, 0x309c, 0x30fd, 0x30fe, 0x3006, 0x309d, 0x309e, + 0xfe49, 0xfe4a, 0xfe4b, 0xfe4c, 0xfe4d, 0xfe4e, 0xfe4f, 0xfe50, + 0xfe51, 0xfe52, 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xfe59, 0xfe5a, + 0xfe5b, 0xfe5c, 0xfe5d, 0xfe5e, 0xfe5f, 0xfe60, 0xfe61, 0xfe62, + 0xfe63, 0xfe64, 0xfe65, 0xfe66, 0xfe68, 0xfe69, 0xfe6a, 0xfe6b, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x3007, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0xaa */ + 0x72dc, 0x72dd, 0x72df, 0x72e2, 0x72e3, 0x72e4, 0x72e5, 0x72e6, + 0x72e7, 0x72ea, 0x72eb, 0x72f5, 0x72f6, 0x72f9, 0x72fd, 0x72fe, + 0x72ff, 0x7300, 0x7302, 0x7304, 0x7305, 0x7306, 0x7307, 0x7308, + 0x7309, 0x730b, 0x730c, 0x730d, 0x730f, 0x7310, 0x7311, 0x7312, + 0x7314, 0x7318, 0x7319, 0x731a, 0x731f, 0x7320, 0x7323, 0x7324, + 0x7326, 0x7327, 0x7328, 0x732d, 0x732f, 0x7330, 0x7332, 0x7333, + 0x7335, 0x7336, 0x733a, 0x733b, 0x733c, 0x733d, 0x7340, 0x7341, + 0x7342, 0x7343, 0x7344, 0x7345, 0x7346, 0x7347, 0x7348, 0x7349, + 0x734a, 0x734b, 0x734c, 0x734e, 0x734f, 0x7351, 0x7353, 0x7354, + 0x7355, 0x7356, 0x7358, 0x7359, 0x735a, 0x735b, 0x735c, 0x735d, + 0x735e, 0x735f, 0x7361, 0x7362, 0x7363, 0x7364, 0x7365, 0x7366, + 0x7367, 0x7368, 0x7369, 0x736a, 0x736b, 0x736e, 0x7370, 0x7371, + /* 0xab */ + 0x7372, 0x7373, 0x7374, 0x7375, 0x7376, 0x7377, 0x7378, 0x7379, + 0x737a, 0x737b, 0x737c, 0x737d, 0x737f, 0x7380, 0x7381, 0x7382, + 0x7383, 0x7385, 0x7386, 0x7388, 0x738a, 0x738c, 0x738d, 0x738f, + 0x7390, 0x7392, 0x7393, 0x7394, 0x7395, 0x7397, 0x7398, 0x7399, + 0x739a, 0x739c, 0x739d, 0x739e, 0x73a0, 0x73a1, 0x73a3, 0x73a4, + 0x73a5, 0x73a6, 0x73a7, 0x73a8, 0x73aa, 0x73ac, 0x73ad, 0x73b1, + 0x73b4, 0x73b5, 0x73b6, 0x73b8, 0x73b9, 0x73bc, 0x73bd, 0x73be, + 0x73bf, 0x73c1, 0x73c3, 0x73c4, 0x73c5, 0x73c6, 0x73c7, 0x73cb, + 0x73cc, 0x73ce, 0x73d2, 0x73d3, 0x73d4, 0x73d5, 0x73d6, 0x73d7, + 0x73d8, 0x73da, 0x73db, 0x73dc, 0x73dd, 0x73df, 0x73e1, 0x73e2, + 0x73e3, 0x73e4, 0x73e6, 0x73e8, 0x73ea, 0x73eb, 0x73ec, 0x73ee, + 0x73ef, 0x73f0, 0x73f1, 0x73f3, 0x73f4, 0x73f5, 0x73f6, 0x73f7, + /* 0xac */ + 0x73f8, 0x73f9, 0x73fa, 0x73fb, 0x73fc, 0x73fd, 0x73fe, 0x73ff, + 0x7400, 0x7401, 0x7402, 0x7404, 0x7407, 0x7408, 0x740b, 0x740c, + 0x740d, 0x740e, 0x7411, 0x7412, 0x7413, 0x7414, 0x7415, 0x7416, + 0x7417, 0x7418, 0x7419, 0x741c, 0x741d, 0x741e, 0x741f, 0x7420, + 0x7421, 0x7423, 0x7424, 0x7427, 0x7429, 0x742b, 0x742d, 0x742f, + 0x7431, 0x7432, 0x7437, 0x7438, 0x7439, 0x743a, 0x743b, 0x743d, + 0x743e, 0x743f, 0x7440, 0x7442, 0x7443, 0x7444, 0x7445, 0x7446, + 0x7447, 0x7448, 0x7449, 0x744a, 0x744b, 0x744c, 0x744d, 0x744e, + 0x744f, 0x7450, 0x7451, 0x7452, 0x7453, 0x7454, 0x7456, 0x7458, + 0x745d, 0x7460, 0x7461, 0x7462, 0x7463, 0x7464, 0x7465, 0x7466, + 0x7467, 0x7468, 0x7469, 0x746a, 0x746b, 0x746c, 0x746e, 0x746f, + 0x7471, 0x7472, 0x7473, 0x7474, 0x7475, 0x7478, 0x7479, 0x747a, + /* 0xad */ + 0x747b, 0x747c, 0x747d, 0x747f, 0x7482, 0x7484, 0x7485, 0x7486, + 0x7488, 0x7489, 0x748a, 0x748c, 0x748d, 0x748f, 0x7491, 0x7492, + 0x7493, 0x7494, 0x7495, 0x7496, 0x7497, 0x7498, 0x7499, 0x749a, + 0x749b, 0x749d, 0x749f, 0x74a0, 0x74a1, 0x74a2, 0x74a3, 0x74a4, + 0x74a5, 0x74a6, 0x74aa, 0x74ab, 0x74ac, 0x74ad, 0x74ae, 0x74af, + 0x74b0, 0x74b1, 0x74b2, 0x74b3, 0x74b4, 0x74b5, 0x74b6, 0x74b7, + 0x74b8, 0x74b9, 0x74bb, 0x74bc, 0x74bd, 0x74be, 0x74bf, 0x74c0, + 0x74c1, 0x74c2, 0x74c3, 0x74c4, 0x74c5, 0x74c6, 0x74c7, 0x74c8, + 0x74c9, 0x74ca, 0x74cb, 0x74cc, 0x74cd, 0x74ce, 0x74cf, 0x74d0, + 0x74d1, 0x74d3, 0x74d4, 0x74d5, 0x74d6, 0x74d7, 0x74d8, 0x74d9, + 0x74da, 0x74db, 0x74dd, 0x74df, 0x74e1, 0x74e5, 0x74e7, 0x74e8, + 0x74e9, 0x74ea, 0x74eb, 0x74ec, 0x74ed, 0x74f0, 0x74f1, 0x74f2, + /* 0xae */ + 0x74f3, 0x74f5, 0x74f8, 0x74f9, 0x74fa, 0x74fb, 0x74fc, 0x74fd, + 0x74fe, 0x7500, 0x7501, 0x7502, 0x7503, 0x7505, 0x7506, 0x7507, + 0x7508, 0x7509, 0x750a, 0x750b, 0x750c, 0x750e, 0x7510, 0x7512, + 0x7514, 0x7515, 0x7516, 0x7517, 0x751b, 0x751d, 0x751e, 0x7520, + 0x7521, 0x7522, 0x7523, 0x7524, 0x7526, 0x7527, 0x752a, 0x752e, + 0x7534, 0x7536, 0x7539, 0x753c, 0x753d, 0x753f, 0x7541, 0x7542, + 0x7543, 0x7544, 0x7546, 0x7547, 0x7549, 0x754a, 0x754d, 0x7550, + 0x7551, 0x7552, 0x7553, 0x7555, 0x7556, 0x7557, 0x7558, 0x755d, + 0x755e, 0x755f, 0x7560, 0x7561, 0x7562, 0x7563, 0x7564, 0x7567, + 0x7568, 0x7569, 0x756b, 0x756c, 0x756d, 0x756e, 0x756f, 0x7570, + 0x7571, 0x7573, 0x7575, 0x7576, 0x7577, 0x757a, 0x757b, 0x757c, + 0x757d, 0x757e, 0x7580, 0x7581, 0x7582, 0x7584, 0x7585, 0x7587, + /* 0xaf */ + 0x7588, 0x7589, 0x758a, 0x758c, 0x758d, 0x758e, 0x7590, 0x7593, + 0x7595, 0x7598, 0x759b, 0x759c, 0x759e, 0x75a2, 0x75a6, 0x75a7, + 0x75a8, 0x75a9, 0x75aa, 0x75ad, 0x75b6, 0x75b7, 0x75ba, 0x75bb, + 0x75bf, 0x75c0, 0x75c1, 0x75c6, 0x75cb, 0x75cc, 0x75ce, 0x75cf, + 0x75d0, 0x75d1, 0x75d3, 0x75d7, 0x75d9, 0x75da, 0x75dc, 0x75dd, + 0x75df, 0x75e0, 0x75e1, 0x75e5, 0x75e9, 0x75ec, 0x75ed, 0x75ee, + 0x75ef, 0x75f2, 0x75f3, 0x75f5, 0x75f6, 0x75f7, 0x75f8, 0x75fa, + 0x75fb, 0x75fd, 0x75fe, 0x7602, 0x7604, 0x7606, 0x7607, 0x7608, + 0x7609, 0x760b, 0x760d, 0x760e, 0x760f, 0x7611, 0x7612, 0x7613, + 0x7614, 0x7616, 0x761a, 0x761c, 0x761d, 0x761e, 0x7621, 0x7623, + 0x7627, 0x7628, 0x762c, 0x762e, 0x762f, 0x7631, 0x7632, 0x7636, + 0x7637, 0x7639, 0x763a, 0x763b, 0x763d, 0x7641, 0x7642, 0x7644, + /* 0xb0 */ + 0x7645, 0x7646, 0x7647, 0x7648, 0x7649, 0x764a, 0x764b, 0x764e, + 0x764f, 0x7650, 0x7651, 0x7652, 0x7653, 0x7655, 0x7657, 0x7658, + 0x7659, 0x765a, 0x765b, 0x765d, 0x765f, 0x7660, 0x7661, 0x7662, + 0x7664, 0x7665, 0x7666, 0x7667, 0x7668, 0x7669, 0x766a, 0x766c, + 0x766d, 0x766e, 0x7670, 0x7671, 0x7672, 0x7673, 0x7674, 0x7675, + 0x7676, 0x7677, 0x7679, 0x767a, 0x767c, 0x767f, 0x7680, 0x7681, + 0x7683, 0x7685, 0x7689, 0x768a, 0x768c, 0x768d, 0x768f, 0x7690, + 0x7692, 0x7694, 0x7695, 0x7697, 0x7698, 0x769a, 0x769b, 0x769c, + 0x769d, 0x769e, 0x769f, 0x76a0, 0x76a1, 0x76a2, 0x76a3, 0x76a5, + 0x76a6, 0x76a7, 0x76a8, 0x76a9, 0x76aa, 0x76ab, 0x76ac, 0x76ad, + 0x76af, 0x76b0, 0x76b3, 0x76b5, 0x76b6, 0x76b7, 0x76b8, 0x76b9, + 0x76ba, 0x76bb, 0x76bc, 0x76bd, 0x76be, 0x76c0, 0x76c1, 0x76c3, + /* 0xb1 */ + 0x76c4, 0x76c7, 0x76c9, 0x76cb, 0x76cc, 0x76d3, 0x76d5, 0x76d9, + 0x76da, 0x76dc, 0x76dd, 0x76de, 0x76e0, 0x76e1, 0x76e2, 0x76e3, + 0x76e4, 0x76e6, 0x76e7, 0x76e8, 0x76e9, 0x76ea, 0x76eb, 0x76ec, + 0x76ed, 0x76f0, 0x76f3, 0x76f5, 0x76f6, 0x76f7, 0x76fa, 0x76fb, + 0x76fd, 0x76ff, 0x7700, 0x7702, 0x7703, 0x7705, 0x7706, 0x770a, + 0x770c, 0x770e, 0x770f, 0x7710, 0x7711, 0x7712, 0x7713, 0x7714, + 0x7715, 0x7716, 0x7717, 0x7718, 0x771b, 0x771c, 0x771d, 0x771e, + 0x7721, 0x7723, 0x7724, 0x7725, 0x7727, 0x772a, 0x772b, 0x772c, + 0x772e, 0x7730, 0x7731, 0x7732, 0x7733, 0x7734, 0x7739, 0x773b, + 0x773d, 0x773e, 0x773f, 0x7742, 0x7744, 0x7745, 0x7746, 0x7748, + 0x7749, 0x774a, 0x774b, 0x774c, 0x774d, 0x774e, 0x774f, 0x7752, + 0x7753, 0x7754, 0x7755, 0x7756, 0x7757, 0x7758, 0x7759, 0x775c, + /* 0xb2 */ + 0x775d, 0x775e, 0x775f, 0x7760, 0x7764, 0x7767, 0x7769, 0x776a, + 0x776d, 0x776e, 0x776f, 0x7770, 0x7771, 0x7772, 0x7773, 0x7774, + 0x7775, 0x7776, 0x7777, 0x7778, 0x777a, 0x777b, 0x777c, 0x7781, + 0x7782, 0x7783, 0x7786, 0x7787, 0x7788, 0x7789, 0x778a, 0x778b, + 0x778f, 0x7790, 0x7793, 0x7794, 0x7795, 0x7796, 0x7797, 0x7798, + 0x7799, 0x779a, 0x779b, 0x779c, 0x779d, 0x779e, 0x77a1, 0x77a3, + 0x77a4, 0x77a6, 0x77a8, 0x77ab, 0x77ad, 0x77ae, 0x77af, 0x77b1, + 0x77b2, 0x77b4, 0x77b6, 0x77b7, 0x77b8, 0x77b9, 0x77ba, 0x77bc, + 0x77be, 0x77c0, 0x77c1, 0x77c2, 0x77c3, 0x77c4, 0x77c5, 0x77c6, + 0x77c7, 0x77c8, 0x77c9, 0x77ca, 0x77cb, 0x77cc, 0x77ce, 0x77cf, + 0x77d0, 0x77d1, 0x77d2, 0x77d3, 0x77d4, 0x77d5, 0x77d6, 0x77d8, + 0x77d9, 0x77da, 0x77dd, 0x77de, 0x77df, 0x77e0, 0x77e1, 0x77e4, + /* 0xb3 */ + 0x77e6, 0x77e8, 0x77ea, 0x77ef, 0x77f0, 0x77f1, 0x77f2, 0x77f4, + 0x77f5, 0x77f7, 0x77f9, 0x77fa, 0x77fb, 0x77fc, 0x7803, 0x7804, + 0x7805, 0x7806, 0x7807, 0x7808, 0x780a, 0x780b, 0x780e, 0x780f, + 0x7810, 0x7813, 0x7815, 0x7819, 0x781b, 0x781e, 0x7820, 0x7821, + 0x7822, 0x7824, 0x7828, 0x782a, 0x782b, 0x782e, 0x782f, 0x7831, + 0x7832, 0x7833, 0x7835, 0x7836, 0x783d, 0x783f, 0x7841, 0x7842, + 0x7843, 0x7844, 0x7846, 0x7848, 0x7849, 0x784a, 0x784b, 0x784d, + 0x784f, 0x7851, 0x7853, 0x7854, 0x7858, 0x7859, 0x785a, 0x785b, + 0x785c, 0x785e, 0x785f, 0x7860, 0x7861, 0x7862, 0x7863, 0x7864, + 0x7865, 0x7866, 0x7867, 0x7868, 0x7869, 0x786f, 0x7870, 0x7871, + 0x7872, 0x7873, 0x7874, 0x7875, 0x7876, 0x7878, 0x7879, 0x787a, + 0x787b, 0x787d, 0x787e, 0x787f, 0x7880, 0x7881, 0x7882, 0x7883, + /* 0xb4 */ + 0x7884, 0x7885, 0x7886, 0x7888, 0x788a, 0x788b, 0x788f, 0x7890, + 0x7892, 0x7894, 0x7895, 0x7896, 0x7899, 0x789d, 0x789e, 0x78a0, + 0x78a2, 0x78a4, 0x78a6, 0x78a8, 0x78a9, 0x78aa, 0x78ab, 0x78ac, + 0x78ad, 0x78ae, 0x78af, 0x78b5, 0x78b6, 0x78b7, 0x78b8, 0x78ba, + 0x78bb, 0x78bc, 0x78bd, 0x78bf, 0x78c0, 0x78c2, 0x78c3, 0x78c4, + 0x78c6, 0x78c7, 0x78c8, 0x78cc, 0x78cd, 0x78ce, 0x78cf, 0x78d1, + 0x78d2, 0x78d3, 0x78d6, 0x78d7, 0x78d8, 0x78da, 0x78db, 0x78dc, + 0x78dd, 0x78de, 0x78df, 0x78e0, 0x78e1, 0x78e2, 0x78e3, 0x78e4, + 0x78e5, 0x78e6, 0x78e7, 0x78e9, 0x78ea, 0x78eb, 0x78ed, 0x78ee, + 0x78ef, 0x78f0, 0x78f1, 0x78f3, 0x78f5, 0x78f6, 0x78f8, 0x78f9, + 0x78fb, 0x78fc, 0x78fd, 0x78fe, 0x78ff, 0x7900, 0x7902, 0x7903, + 0x7904, 0x7906, 0x7907, 0x7908, 0x7909, 0x790a, 0x790b, 0x790c, + /* 0xb5 */ + 0x790d, 0x790e, 0x790f, 0x7910, 0x7911, 0x7912, 0x7914, 0x7915, + 0x7916, 0x7917, 0x7918, 0x7919, 0x791a, 0x791b, 0x791c, 0x791d, + 0x791f, 0x7920, 0x7921, 0x7922, 0x7923, 0x7925, 0x7926, 0x7927, + 0x7928, 0x7929, 0x792a, 0x792b, 0x792c, 0x792d, 0x792e, 0x792f, + 0x7930, 0x7931, 0x7932, 0x7933, 0x7935, 0x7936, 0x7937, 0x7938, + 0x7939, 0x793d, 0x793f, 0x7942, 0x7943, 0x7944, 0x7945, 0x7947, + 0x794a, 0x794b, 0x794c, 0x794d, 0x794e, 0x794f, 0x7950, 0x7951, + 0x7952, 0x7954, 0x7955, 0x7958, 0x7959, 0x7961, 0x7963, 0x7964, + 0x7966, 0x7969, 0x796a, 0x796b, 0x796c, 0x796e, 0x7970, 0x7971, + 0x7972, 0x7973, 0x7974, 0x7975, 0x7976, 0x7979, 0x797b, 0x797c, + 0x797d, 0x797e, 0x797f, 0x7982, 0x7983, 0x7986, 0x7987, 0x7988, + 0x7989, 0x798b, 0x798c, 0x798d, 0x798e, 0x7990, 0x7991, 0x7992, + /* 0xb6 */ + 0x7993, 0x7994, 0x7995, 0x7996, 0x7997, 0x7998, 0x7999, 0x799b, + 0x799c, 0x799d, 0x799e, 0x799f, 0x79a0, 0x79a1, 0x79a2, 0x79a3, + 0x79a4, 0x79a5, 0x79a6, 0x79a8, 0x79a9, 0x79aa, 0x79ab, 0x79ac, + 0x79ad, 0x79ae, 0x79af, 0x79b0, 0x79b1, 0x79b2, 0x79b4, 0x79b5, + 0x79b6, 0x79b7, 0x79b8, 0x79bc, 0x79bf, 0x79c2, 0x79c4, 0x79c5, + 0x79c7, 0x79c8, 0x79ca, 0x79cc, 0x79ce, 0x79cf, 0x79d0, 0x79d3, + 0x79d4, 0x79d6, 0x79d7, 0x79d9, 0x79da, 0x79db, 0x79dc, 0x79dd, + 0x79de, 0x79e0, 0x79e1, 0x79e2, 0x79e5, 0x79e8, 0x79ea, 0x79ec, + 0x79ee, 0x79f1, 0x79f2, 0x79f3, 0x79f4, 0x79f5, 0x79f6, 0x79f7, + 0x79f9, 0x79fa, 0x79fc, 0x79fe, 0x79ff, 0x7a01, 0x7a04, 0x7a05, + 0x7a07, 0x7a08, 0x7a09, 0x7a0a, 0x7a0c, 0x7a0f, 0x7a10, 0x7a11, + 0x7a12, 0x7a13, 0x7a15, 0x7a16, 0x7a18, 0x7a19, 0x7a1b, 0x7a1c, + /* 0xb7 */ + 0x7a1d, 0x7a1f, 0x7a21, 0x7a22, 0x7a24, 0x7a25, 0x7a26, 0x7a27, + 0x7a28, 0x7a29, 0x7a2a, 0x7a2b, 0x7a2c, 0x7a2d, 0x7a2e, 0x7a2f, + 0x7a30, 0x7a31, 0x7a32, 0x7a34, 0x7a35, 0x7a36, 0x7a38, 0x7a3a, + 0x7a3e, 0x7a40, 0x7a41, 0x7a42, 0x7a43, 0x7a44, 0x7a45, 0x7a47, + 0x7a48, 0x7a49, 0x7a4a, 0x7a4b, 0x7a4c, 0x7a4d, 0x7a4e, 0x7a4f, + 0x7a50, 0x7a52, 0x7a53, 0x7a54, 0x7a55, 0x7a56, 0x7a58, 0x7a59, + 0x7a5a, 0x7a5b, 0x7a5c, 0x7a5d, 0x7a5e, 0x7a5f, 0x7a60, 0x7a61, + 0x7a62, 0x7a63, 0x7a64, 0x7a65, 0x7a66, 0x7a67, 0x7a68, 0x7a69, + 0x7a6a, 0x7a6b, 0x7a6c, 0x7a6d, 0x7a6e, 0x7a6f, 0x7a71, 0x7a72, + 0x7a73, 0x7a75, 0x7a7b, 0x7a7c, 0x7a7d, 0x7a7e, 0x7a82, 0x7a85, + 0x7a87, 0x7a89, 0x7a8a, 0x7a8b, 0x7a8c, 0x7a8e, 0x7a8f, 0x7a90, + 0x7a93, 0x7a94, 0x7a99, 0x7a9a, 0x7a9b, 0x7a9e, 0x7aa1, 0x7aa2, + /* 0xb8 */ + 0x7aa3, 0x7aa4, 0x7aa7, 0x7aa9, 0x7aaa, 0x7aab, 0x7aae, 0x7aaf, + 0x7ab0, 0x7ab1, 0x7ab2, 0x7ab4, 0x7ab5, 0x7ab6, 0x7ab7, 0x7ab8, + 0x7ab9, 0x7aba, 0x7abb, 0x7abc, 0x7abd, 0x7abe, 0x7ac0, 0x7ac1, + 0x7ac2, 0x7ac3, 0x7ac4, 0x7ac5, 0x7ac6, 0x7ac7, 0x7ac8, 0x7ac9, + 0x7aca, 0x7acc, 0x7acd, 0x7ace, 0x7acf, 0x7ad0, 0x7ad1, 0x7ad2, + 0x7ad3, 0x7ad4, 0x7ad5, 0x7ad7, 0x7ad8, 0x7ada, 0x7adb, 0x7adc, + 0x7add, 0x7ae1, 0x7ae2, 0x7ae4, 0x7ae7, 0x7ae8, 0x7ae9, 0x7aea, + 0x7aeb, 0x7aec, 0x7aee, 0x7af0, 0x7af1, 0x7af2, 0x7af3, 0x7af4, + 0x7af5, 0x7af6, 0x7af7, 0x7af8, 0x7afb, 0x7afc, 0x7afe, 0x7b00, + 0x7b01, 0x7b02, 0x7b05, 0x7b07, 0x7b09, 0x7b0c, 0x7b0d, 0x7b0e, + 0x7b10, 0x7b12, 0x7b13, 0x7b16, 0x7b17, 0x7b18, 0x7b1a, 0x7b1c, + 0x7b1d, 0x7b1f, 0x7b21, 0x7b22, 0x7b23, 0x7b27, 0x7b29, 0x7b2d, + /* 0xb9 */ + 0x7b2f, 0x7b30, 0x7b32, 0x7b34, 0x7b35, 0x7b36, 0x7b37, 0x7b39, + 0x7b3b, 0x7b3d, 0x7b3f, 0x7b40, 0x7b41, 0x7b42, 0x7b43, 0x7b44, + 0x7b46, 0x7b48, 0x7b4a, 0x7b4d, 0x7b4e, 0x7b53, 0x7b55, 0x7b57, + 0x7b59, 0x7b5c, 0x7b5e, 0x7b5f, 0x7b61, 0x7b63, 0x7b64, 0x7b65, + 0x7b66, 0x7b67, 0x7b68, 0x7b69, 0x7b6a, 0x7b6b, 0x7b6c, 0x7b6d, + 0x7b6f, 0x7b70, 0x7b73, 0x7b74, 0x7b76, 0x7b78, 0x7b7a, 0x7b7c, + 0x7b7d, 0x7b7f, 0x7b81, 0x7b82, 0x7b83, 0x7b84, 0x7b86, 0x7b87, + 0x7b88, 0x7b89, 0x7b8a, 0x7b8b, 0x7b8c, 0x7b8e, 0x7b8f, 0x7b91, + 0x7b92, 0x7b93, 0x7b96, 0x7b98, 0x7b99, 0x7b9a, 0x7b9b, 0x7b9e, + 0x7b9f, 0x7ba0, 0x7ba3, 0x7ba4, 0x7ba5, 0x7bae, 0x7baf, 0x7bb0, + 0x7bb2, 0x7bb3, 0x7bb5, 0x7bb6, 0x7bb7, 0x7bb9, 0x7bba, 0x7bbb, + 0x7bbc, 0x7bbd, 0x7bbe, 0x7bbf, 0x7bc0, 0x7bc2, 0x7bc3, 0x7bc4, + /* 0xba */ + 0x7bc5, 0x7bc8, 0x7bc9, 0x7bca, 0x7bcb, 0x7bcd, 0x7bce, 0x7bcf, + 0x7bd0, 0x7bd2, 0x7bd4, 0x7bd5, 0x7bd6, 0x7bd7, 0x7bd8, 0x7bdb, + 0x7bdc, 0x7bde, 0x7bdf, 0x7be0, 0x7be2, 0x7be3, 0x7be4, 0x7be7, + 0x7be8, 0x7be9, 0x7beb, 0x7bec, 0x7bed, 0x7bef, 0x7bf0, 0x7bf2, + 0x7bf3, 0x7bf4, 0x7bf5, 0x7bf6, 0x7bf8, 0x7bf9, 0x7bfa, 0x7bfb, + 0x7bfd, 0x7bff, 0x7c00, 0x7c01, 0x7c02, 0x7c03, 0x7c04, 0x7c05, + 0x7c06, 0x7c08, 0x7c09, 0x7c0a, 0x7c0d, 0x7c0e, 0x7c10, 0x7c11, + 0x7c12, 0x7c13, 0x7c14, 0x7c15, 0x7c17, 0x7c18, 0x7c19, 0x7c1a, + 0x7c1b, 0x7c1c, 0x7c1d, 0x7c1e, 0x7c20, 0x7c21, 0x7c22, 0x7c23, + 0x7c24, 0x7c25, 0x7c28, 0x7c29, 0x7c2b, 0x7c2c, 0x7c2d, 0x7c2e, + 0x7c2f, 0x7c30, 0x7c31, 0x7c32, 0x7c33, 0x7c34, 0x7c35, 0x7c36, + 0x7c37, 0x7c39, 0x7c3a, 0x7c3b, 0x7c3c, 0x7c3d, 0x7c3e, 0x7c42, + /* 0xbb */ + 0x7c43, 0x7c44, 0x7c45, 0x7c46, 0x7c47, 0x7c48, 0x7c49, 0x7c4a, + 0x7c4b, 0x7c4c, 0x7c4e, 0x7c4f, 0x7c50, 0x7c51, 0x7c52, 0x7c53, + 0x7c54, 0x7c55, 0x7c56, 0x7c57, 0x7c58, 0x7c59, 0x7c5a, 0x7c5b, + 0x7c5c, 0x7c5d, 0x7c5e, 0x7c5f, 0x7c60, 0x7c61, 0x7c62, 0x7c63, + 0x7c64, 0x7c65, 0x7c66, 0x7c67, 0x7c68, 0x7c69, 0x7c6a, 0x7c6b, + 0x7c6c, 0x7c6d, 0x7c6e, 0x7c6f, 0x7c70, 0x7c71, 0x7c72, 0x7c75, + 0x7c76, 0x7c77, 0x7c78, 0x7c79, 0x7c7a, 0x7c7e, 0x7c7f, 0x7c80, + 0x7c81, 0x7c82, 0x7c83, 0x7c84, 0x7c85, 0x7c86, 0x7c87, 0x7c88, + 0x7c8a, 0x7c8b, 0x7c8c, 0x7c8d, 0x7c8e, 0x7c8f, 0x7c90, 0x7c93, + 0x7c94, 0x7c96, 0x7c99, 0x7c9a, 0x7c9b, 0x7ca0, 0x7ca1, 0x7ca3, + 0x7ca6, 0x7ca7, 0x7ca8, 0x7ca9, 0x7cab, 0x7cac, 0x7cad, 0x7caf, + 0x7cb0, 0x7cb4, 0x7cb5, 0x7cb6, 0x7cb7, 0x7cb8, 0x7cba, 0x7cbb, + /* 0xbc */ + 0x7cbf, 0x7cc0, 0x7cc2, 0x7cc3, 0x7cc4, 0x7cc6, 0x7cc9, 0x7ccb, + 0x7cce, 0x7ccf, 0x7cd0, 0x7cd1, 0x7cd2, 0x7cd3, 0x7cd4, 0x7cd8, + 0x7cda, 0x7cdb, 0x7cdd, 0x7cde, 0x7ce1, 0x7ce2, 0x7ce3, 0x7ce4, + 0x7ce5, 0x7ce6, 0x7ce7, 0x7ce9, 0x7cea, 0x7ceb, 0x7cec, 0x7ced, + 0x7cee, 0x7cf0, 0x7cf1, 0x7cf2, 0x7cf3, 0x7cf4, 0x7cf5, 0x7cf6, + 0x7cf7, 0x7cf9, 0x7cfa, 0x7cfc, 0x7cfd, 0x7cfe, 0x7cff, 0x7d00, + 0x7d01, 0x7d02, 0x7d03, 0x7d04, 0x7d05, 0x7d06, 0x7d07, 0x7d08, + 0x7d09, 0x7d0b, 0x7d0c, 0x7d0d, 0x7d0e, 0x7d0f, 0x7d10, 0x7d11, + 0x7d12, 0x7d13, 0x7d14, 0x7d15, 0x7d16, 0x7d17, 0x7d18, 0x7d19, + 0x7d1a, 0x7d1b, 0x7d1c, 0x7d1d, 0x7d1e, 0x7d1f, 0x7d21, 0x7d23, + 0x7d24, 0x7d25, 0x7d26, 0x7d28, 0x7d29, 0x7d2a, 0x7d2c, 0x7d2d, + 0x7d2e, 0x7d30, 0x7d31, 0x7d32, 0x7d33, 0x7d34, 0x7d35, 0x7d36, + /* 0xbd */ + 0x7d37, 0x7d38, 0x7d39, 0x7d3a, 0x7d3b, 0x7d3c, 0x7d3d, 0x7d3e, + 0x7d3f, 0x7d40, 0x7d41, 0x7d42, 0x7d43, 0x7d44, 0x7d45, 0x7d46, + 0x7d47, 0x7d48, 0x7d49, 0x7d4a, 0x7d4b, 0x7d4c, 0x7d4d, 0x7d4e, + 0x7d4f, 0x7d50, 0x7d51, 0x7d52, 0x7d53, 0x7d54, 0x7d55, 0x7d56, + 0x7d57, 0x7d58, 0x7d59, 0x7d5a, 0x7d5b, 0x7d5c, 0x7d5d, 0x7d5e, + 0x7d5f, 0x7d60, 0x7d61, 0x7d62, 0x7d63, 0x7d64, 0x7d65, 0x7d66, + 0x7d67, 0x7d68, 0x7d69, 0x7d6a, 0x7d6b, 0x7d6c, 0x7d6d, 0x7d6f, + 0x7d70, 0x7d71, 0x7d72, 0x7d73, 0x7d74, 0x7d75, 0x7d76, 0x7d78, + 0x7d79, 0x7d7a, 0x7d7b, 0x7d7c, 0x7d7d, 0x7d7e, 0x7d7f, 0x7d80, + 0x7d81, 0x7d82, 0x7d83, 0x7d84, 0x7d85, 0x7d86, 0x7d87, 0x7d88, + 0x7d89, 0x7d8a, 0x7d8b, 0x7d8c, 0x7d8d, 0x7d8e, 0x7d8f, 0x7d90, + 0x7d91, 0x7d92, 0x7d93, 0x7d94, 0x7d95, 0x7d96, 0x7d97, 0x7d98, + /* 0xbe */ + 0x7d99, 0x7d9a, 0x7d9b, 0x7d9c, 0x7d9d, 0x7d9e, 0x7d9f, 0x7da0, + 0x7da1, 0x7da2, 0x7da3, 0x7da4, 0x7da5, 0x7da7, 0x7da8, 0x7da9, + 0x7daa, 0x7dab, 0x7dac, 0x7dad, 0x7daf, 0x7db0, 0x7db1, 0x7db2, + 0x7db3, 0x7db4, 0x7db5, 0x7db6, 0x7db7, 0x7db8, 0x7db9, 0x7dba, + 0x7dbb, 0x7dbc, 0x7dbd, 0x7dbe, 0x7dbf, 0x7dc0, 0x7dc1, 0x7dc2, + 0x7dc3, 0x7dc4, 0x7dc5, 0x7dc6, 0x7dc7, 0x7dc8, 0x7dc9, 0x7dca, + 0x7dcb, 0x7dcc, 0x7dcd, 0x7dce, 0x7dcf, 0x7dd0, 0x7dd1, 0x7dd2, + 0x7dd3, 0x7dd4, 0x7dd5, 0x7dd6, 0x7dd7, 0x7dd8, 0x7dd9, 0x7dda, + 0x7ddb, 0x7ddc, 0x7ddd, 0x7dde, 0x7ddf, 0x7de0, 0x7de1, 0x7de2, + 0x7de3, 0x7de4, 0x7de5, 0x7de6, 0x7de7, 0x7de8, 0x7de9, 0x7dea, + 0x7deb, 0x7dec, 0x7ded, 0x7dee, 0x7def, 0x7df0, 0x7df1, 0x7df2, + 0x7df3, 0x7df4, 0x7df5, 0x7df6, 0x7df7, 0x7df8, 0x7df9, 0x7dfa, + /* 0xbf */ + 0x7dfb, 0x7dfc, 0x7dfd, 0x7dfe, 0x7dff, 0x7e00, 0x7e01, 0x7e02, + 0x7e03, 0x7e04, 0x7e05, 0x7e06, 0x7e07, 0x7e08, 0x7e09, 0x7e0a, + 0x7e0b, 0x7e0c, 0x7e0d, 0x7e0e, 0x7e0f, 0x7e10, 0x7e11, 0x7e12, + 0x7e13, 0x7e14, 0x7e15, 0x7e16, 0x7e17, 0x7e18, 0x7e19, 0x7e1a, + 0x7e1b, 0x7e1c, 0x7e1d, 0x7e1e, 0x7e1f, 0x7e20, 0x7e21, 0x7e22, + 0x7e23, 0x7e24, 0x7e25, 0x7e26, 0x7e27, 0x7e28, 0x7e29, 0x7e2a, + 0x7e2b, 0x7e2c, 0x7e2d, 0x7e2e, 0x7e2f, 0x7e30, 0x7e31, 0x7e32, + 0x7e33, 0x7e34, 0x7e35, 0x7e36, 0x7e37, 0x7e38, 0x7e39, 0x7e3a, + 0x7e3c, 0x7e3d, 0x7e3e, 0x7e3f, 0x7e40, 0x7e42, 0x7e43, 0x7e44, + 0x7e45, 0x7e46, 0x7e48, 0x7e49, 0x7e4a, 0x7e4b, 0x7e4c, 0x7e4d, + 0x7e4e, 0x7e4f, 0x7e50, 0x7e51, 0x7e52, 0x7e53, 0x7e54, 0x7e55, + 0x7e56, 0x7e57, 0x7e58, 0x7e59, 0x7e5a, 0x7e5b, 0x7e5c, 0x7e5d, + /* 0xc0 */ + 0x7e5e, 0x7e5f, 0x7e60, 0x7e61, 0x7e62, 0x7e63, 0x7e64, 0x7e65, + 0x7e66, 0x7e67, 0x7e68, 0x7e69, 0x7e6a, 0x7e6b, 0x7e6c, 0x7e6d, + 0x7e6e, 0x7e6f, 0x7e70, 0x7e71, 0x7e72, 0x7e73, 0x7e74, 0x7e75, + 0x7e76, 0x7e77, 0x7e78, 0x7e79, 0x7e7a, 0x7e7b, 0x7e7c, 0x7e7d, + 0x7e7e, 0x7e7f, 0x7e80, 0x7e81, 0x7e83, 0x7e84, 0x7e85, 0x7e86, + 0x7e87, 0x7e88, 0x7e89, 0x7e8a, 0x7e8b, 0x7e8c, 0x7e8d, 0x7e8e, + 0x7e8f, 0x7e90, 0x7e91, 0x7e92, 0x7e93, 0x7e94, 0x7e95, 0x7e96, + 0x7e97, 0x7e98, 0x7e99, 0x7e9a, 0x7e9c, 0x7e9d, 0x7e9e, 0x7eae, + 0x7eb4, 0x7ebb, 0x7ebc, 0x7ed6, 0x7ee4, 0x7eec, 0x7ef9, 0x7f0a, + 0x7f10, 0x7f1e, 0x7f37, 0x7f39, 0x7f3b, 0x7f3c, 0x7f3d, 0x7f3e, + 0x7f3f, 0x7f40, 0x7f41, 0x7f43, 0x7f46, 0x7f47, 0x7f48, 0x7f49, + 0x7f4a, 0x7f4b, 0x7f4c, 0x7f4d, 0x7f4e, 0x7f4f, 0x7f52, 0x7f53, + /* 0xc1 */ + 0x7f56, 0x7f59, 0x7f5b, 0x7f5c, 0x7f5d, 0x7f5e, 0x7f60, 0x7f63, + 0x7f64, 0x7f65, 0x7f66, 0x7f67, 0x7f6b, 0x7f6c, 0x7f6d, 0x7f6f, + 0x7f70, 0x7f73, 0x7f75, 0x7f76, 0x7f77, 0x7f78, 0x7f7a, 0x7f7b, + 0x7f7c, 0x7f7d, 0x7f7f, 0x7f80, 0x7f82, 0x7f83, 0x7f84, 0x7f85, + 0x7f86, 0x7f87, 0x7f88, 0x7f89, 0x7f8b, 0x7f8d, 0x7f8f, 0x7f90, + 0x7f91, 0x7f92, 0x7f93, 0x7f95, 0x7f96, 0x7f97, 0x7f98, 0x7f99, + 0x7f9b, 0x7f9c, 0x7fa0, 0x7fa2, 0x7fa3, 0x7fa5, 0x7fa6, 0x7fa8, + 0x7fa9, 0x7faa, 0x7fab, 0x7fac, 0x7fad, 0x7fae, 0x7fb1, 0x7fb3, + 0x7fb4, 0x7fb5, 0x7fb6, 0x7fb7, 0x7fba, 0x7fbb, 0x7fbe, 0x7fc0, + 0x7fc2, 0x7fc3, 0x7fc4, 0x7fc6, 0x7fc7, 0x7fc8, 0x7fc9, 0x7fcb, + 0x7fcd, 0x7fcf, 0x7fd0, 0x7fd1, 0x7fd2, 0x7fd3, 0x7fd6, 0x7fd7, + 0x7fd9, 0x7fda, 0x7fdb, 0x7fdc, 0x7fdd, 0x7fde, 0x7fe2, 0x7fe3, + /* 0xc2 */ + 0x7fe4, 0x7fe7, 0x7fe8, 0x7fea, 0x7feb, 0x7fec, 0x7fed, 0x7fef, + 0x7ff2, 0x7ff4, 0x7ff5, 0x7ff6, 0x7ff7, 0x7ff8, 0x7ff9, 0x7ffa, + 0x7ffd, 0x7ffe, 0x7fff, 0x8002, 0x8007, 0x8008, 0x8009, 0x800a, + 0x800e, 0x800f, 0x8011, 0x8013, 0x801a, 0x801b, 0x801d, 0x801e, + 0x801f, 0x8021, 0x8023, 0x8024, 0x802b, 0x802c, 0x802d, 0x802e, + 0x802f, 0x8030, 0x8032, 0x8034, 0x8039, 0x803a, 0x803c, 0x803e, + 0x8040, 0x8041, 0x8044, 0x8045, 0x8047, 0x8048, 0x8049, 0x804e, + 0x804f, 0x8050, 0x8051, 0x8053, 0x8055, 0x8056, 0x8057, 0x8059, + 0x805b, 0x805c, 0x805d, 0x805e, 0x805f, 0x8060, 0x8061, 0x8062, + 0x8063, 0x8064, 0x8065, 0x8066, 0x8067, 0x8068, 0x806b, 0x806c, + 0x806d, 0x806e, 0x806f, 0x8070, 0x8072, 0x8073, 0x8074, 0x8075, + 0x8076, 0x8077, 0x8078, 0x8079, 0x807a, 0x807b, 0x807c, 0x807d, + /* 0xc3 */ + 0x807e, 0x8081, 0x8082, 0x8085, 0x8088, 0x808a, 0x808d, 0x808e, + 0x808f, 0x8090, 0x8091, 0x8092, 0x8094, 0x8095, 0x8097, 0x8099, + 0x809e, 0x80a3, 0x80a6, 0x80a7, 0x80a8, 0x80ac, 0x80b0, 0x80b3, + 0x80b5, 0x80b6, 0x80b8, 0x80b9, 0x80bb, 0x80c5, 0x80c7, 0x80c8, + 0x80c9, 0x80ca, 0x80cb, 0x80cf, 0x80d0, 0x80d1, 0x80d2, 0x80d3, + 0x80d4, 0x80d5, 0x80d8, 0x80df, 0x80e0, 0x80e2, 0x80e3, 0x80e6, + 0x80ee, 0x80f5, 0x80f7, 0x80f9, 0x80fb, 0x80fe, 0x80ff, 0x8100, + 0x8101, 0x8103, 0x8104, 0x8105, 0x8107, 0x8108, 0x810b, 0x810c, + 0x8115, 0x8117, 0x8119, 0x811b, 0x811c, 0x811d, 0x811f, 0x8120, + 0x8121, 0x8122, 0x8123, 0x8124, 0x8125, 0x8126, 0x8127, 0x8128, + 0x8129, 0x812a, 0x812b, 0x812d, 0x812e, 0x8130, 0x8133, 0x8134, + 0x8135, 0x8137, 0x8139, 0x813a, 0x813b, 0x813c, 0x813d, 0x813f, + /* 0xc4 */ + 0x8140, 0x8141, 0x8142, 0x8143, 0x8144, 0x8145, 0x8147, 0x8149, + 0x814d, 0x814e, 0x814f, 0x8152, 0x8156, 0x8157, 0x8158, 0x815b, + 0x815c, 0x815d, 0x815e, 0x815f, 0x8161, 0x8162, 0x8163, 0x8164, + 0x8166, 0x8168, 0x816a, 0x816b, 0x816c, 0x816f, 0x8172, 0x8173, + 0x8175, 0x8176, 0x8177, 0x8178, 0x8181, 0x8183, 0x8184, 0x8185, + 0x8186, 0x8187, 0x8189, 0x818b, 0x818c, 0x818d, 0x818e, 0x8190, + 0x8192, 0x8193, 0x8194, 0x8195, 0x8196, 0x8197, 0x8199, 0x819a, + 0x819e, 0x819f, 0x81a0, 0x81a1, 0x81a2, 0x81a4, 0x81a5, 0x81a7, + 0x81a9, 0x81ab, 0x81ac, 0x81ad, 0x81ae, 0x81af, 0x81b0, 0x81b1, + 0x81b2, 0x81b4, 0x81b5, 0x81b6, 0x81b7, 0x81b8, 0x81b9, 0x81bc, + 0x81bd, 0x81be, 0x81bf, 0x81c4, 0x81c5, 0x81c7, 0x81c8, 0x81c9, + 0x81cb, 0x81cd, 0x81ce, 0x81cf, 0x81d0, 0x81d1, 0x81d2, 0x81d3, + /* 0xc5 */ + 0x81d4, 0x81d5, 0x81d6, 0x81d7, 0x81d8, 0x81d9, 0x81da, 0x81db, + 0x81dc, 0x81dd, 0x81de, 0x81df, 0x81e0, 0x81e1, 0x81e2, 0x81e4, + 0x81e5, 0x81e6, 0x81e8, 0x81e9, 0x81eb, 0x81ee, 0x81ef, 0x81f0, + 0x81f1, 0x81f2, 0x81f5, 0x81f6, 0x81f7, 0x81f8, 0x81f9, 0x81fa, + 0x81fd, 0x81ff, 0x8203, 0x8207, 0x8208, 0x8209, 0x820a, 0x820b, + 0x820e, 0x820f, 0x8211, 0x8213, 0x8215, 0x8216, 0x8217, 0x8218, + 0x8219, 0x821a, 0x821d, 0x8220, 0x8224, 0x8225, 0x8226, 0x8227, + 0x8229, 0x822e, 0x8232, 0x823a, 0x823c, 0x823d, 0x823f, 0x8240, + 0x8241, 0x8242, 0x8243, 0x8245, 0x8246, 0x8248, 0x824a, 0x824c, + 0x824d, 0x824e, 0x8250, 0x8251, 0x8252, 0x8253, 0x8254, 0x8255, + 0x8256, 0x8257, 0x8259, 0x825b, 0x825c, 0x825d, 0x825e, 0x8260, + 0x8261, 0x8262, 0x8263, 0x8264, 0x8265, 0x8266, 0x8267, 0x8269, + /* 0xc6 */ + 0x826a, 0x826b, 0x826c, 0x826d, 0x8271, 0x8275, 0x8276, 0x8277, + 0x8278, 0x827b, 0x827c, 0x8280, 0x8281, 0x8283, 0x8285, 0x8286, + 0x8287, 0x8289, 0x828c, 0x8290, 0x8293, 0x8294, 0x8295, 0x8296, + 0x829a, 0x829b, 0x829e, 0x82a0, 0x82a2, 0x82a3, 0x82a7, 0x82b2, + 0x82b5, 0x82b6, 0x82ba, 0x82bb, 0x82bc, 0x82bf, 0x82c0, 0x82c2, + 0x82c3, 0x82c5, 0x82c6, 0x82c9, 0x82d0, 0x82d6, 0x82d9, 0x82da, + 0x82dd, 0x82e2, 0x82e7, 0x82e8, 0x82e9, 0x82ea, 0x82ec, 0x82ed, + 0x82ee, 0x82f0, 0x82f2, 0x82f3, 0x82f5, 0x82f6, 0x82f8, 0x82fa, + 0x82fc, 0x82fd, 0x82fe, 0x82ff, 0x8300, 0x830a, 0x830b, 0x830d, + 0x8310, 0x8312, 0x8313, 0x8316, 0x8318, 0x8319, 0x831d, 0x831e, + 0x831f, 0x8320, 0x8321, 0x8322, 0x8323, 0x8324, 0x8325, 0x8326, + 0x8329, 0x832a, 0x832e, 0x8330, 0x8332, 0x8337, 0x833b, 0x833d, + /* 0xc7 */ + 0x833e, 0x833f, 0x8341, 0x8342, 0x8344, 0x8345, 0x8348, 0x834a, + 0x834b, 0x834c, 0x834d, 0x834e, 0x8353, 0x8355, 0x8356, 0x8357, + 0x8358, 0x8359, 0x835d, 0x8362, 0x8370, 0x8371, 0x8372, 0x8373, + 0x8374, 0x8375, 0x8376, 0x8379, 0x837a, 0x837e, 0x837f, 0x8380, + 0x8381, 0x8382, 0x8383, 0x8384, 0x8387, 0x8388, 0x838a, 0x838b, + 0x838c, 0x838d, 0x838f, 0x8390, 0x8391, 0x8394, 0x8395, 0x8396, + 0x8397, 0x8399, 0x839a, 0x839d, 0x839f, 0x83a1, 0x83a2, 0x83a3, + 0x83a4, 0x83a5, 0x83a6, 0x83a7, 0x83ac, 0x83ad, 0x83ae, 0x83af, + 0x83b5, 0x83bb, 0x83be, 0x83bf, 0x83c2, 0x83c3, 0x83c4, 0x83c6, + 0x83c8, 0x83c9, 0x83cb, 0x83cd, 0x83ce, 0x83d0, 0x83d1, 0x83d2, + 0x83d3, 0x83d5, 0x83d7, 0x83d9, 0x83da, 0x83db, 0x83de, 0x83e2, + 0x83e3, 0x83e4, 0x83e6, 0x83e7, 0x83e8, 0x83eb, 0x83ec, 0x83ed, + /* 0xc8 */ + 0x83ee, 0x83ef, 0x83f3, 0x83f4, 0x83f5, 0x83f6, 0x83f7, 0x83fa, + 0x83fb, 0x83fc, 0x83fe, 0x83ff, 0x8400, 0x8402, 0x8405, 0x8407, + 0x8408, 0x8409, 0x840a, 0x8410, 0x8412, 0x8413, 0x8414, 0x8415, + 0x8416, 0x8417, 0x8419, 0x841a, 0x841b, 0x841e, 0x841f, 0x8420, + 0x8421, 0x8422, 0x8423, 0x8429, 0x842a, 0x842b, 0x842c, 0x842d, + 0x842e, 0x842f, 0x8430, 0x8432, 0x8433, 0x8434, 0x8435, 0x8436, + 0x8437, 0x8439, 0x843a, 0x843b, 0x843e, 0x843f, 0x8440, 0x8441, + 0x8442, 0x8443, 0x8444, 0x8445, 0x8447, 0x8448, 0x8449, 0x844a, + 0x844b, 0x844c, 0x844d, 0x844e, 0x844f, 0x8450, 0x8452, 0x8453, + 0x8454, 0x8455, 0x8456, 0x8458, 0x845d, 0x845e, 0x845f, 0x8460, + 0x8462, 0x8464, 0x8465, 0x8466, 0x8467, 0x8468, 0x846a, 0x846e, + 0x846f, 0x8470, 0x8472, 0x8474, 0x8477, 0x8479, 0x847b, 0x847c, + /* 0xc9 */ + 0x847d, 0x847e, 0x847f, 0x8480, 0x8481, 0x8483, 0x8484, 0x8485, + 0x8486, 0x848a, 0x848d, 0x848f, 0x8490, 0x8491, 0x8492, 0x8493, + 0x8494, 0x8495, 0x8496, 0x8498, 0x849a, 0x849b, 0x849d, 0x849e, + 0x849f, 0x84a0, 0x84a2, 0x84a3, 0x84a4, 0x84a5, 0x84a6, 0x84a7, + 0x84a8, 0x84a9, 0x84aa, 0x84ab, 0x84ac, 0x84ad, 0x84ae, 0x84b0, + 0x84b1, 0x84b3, 0x84b5, 0x84b6, 0x84b7, 0x84bb, 0x84bc, 0x84be, + 0x84c0, 0x84c2, 0x84c3, 0x84c5, 0x84c6, 0x84c7, 0x84c8, 0x84cb, + 0x84cc, 0x84ce, 0x84cf, 0x84d2, 0x84d4, 0x84d5, 0x84d7, 0x84d8, + 0x84d9, 0x84da, 0x84db, 0x84dc, 0x84de, 0x84e1, 0x84e2, 0x84e4, + 0x84e7, 0x84e8, 0x84e9, 0x84ea, 0x84eb, 0x84ed, 0x84ee, 0x84ef, + 0x84f1, 0x84f2, 0x84f3, 0x84f4, 0x84f5, 0x84f6, 0x84f7, 0x84f8, + 0x84f9, 0x84fa, 0x84fb, 0x84fd, 0x84fe, 0x8500, 0x8501, 0x8502, + /* 0xca */ + 0x8503, 0x8504, 0x8505, 0x8506, 0x8507, 0x8508, 0x8509, 0x850a, + 0x850b, 0x850d, 0x850e, 0x850f, 0x8510, 0x8512, 0x8514, 0x8515, + 0x8516, 0x8518, 0x8519, 0x851b, 0x851c, 0x851d, 0x851e, 0x8520, + 0x8522, 0x8523, 0x8524, 0x8525, 0x8526, 0x8527, 0x8528, 0x8529, + 0x852a, 0x852d, 0x852e, 0x852f, 0x8530, 0x8531, 0x8532, 0x8533, + 0x8534, 0x8535, 0x8536, 0x853e, 0x853f, 0x8540, 0x8541, 0x8542, + 0x8544, 0x8545, 0x8546, 0x8547, 0x854b, 0x854c, 0x854d, 0x854e, + 0x854f, 0x8550, 0x8551, 0x8552, 0x8553, 0x8554, 0x8555, 0x8557, + 0x8558, 0x855a, 0x855b, 0x855c, 0x855d, 0x855f, 0x8560, 0x8561, + 0x8562, 0x8563, 0x8565, 0x8566, 0x8567, 0x8569, 0x856a, 0x856b, + 0x856c, 0x856d, 0x856e, 0x856f, 0x8570, 0x8571, 0x8573, 0x8575, + 0x8576, 0x8577, 0x8578, 0x857c, 0x857d, 0x857f, 0x8580, 0x8581, + /* 0xcb */ + 0x8582, 0x8583, 0x8586, 0x8588, 0x8589, 0x858a, 0x858b, 0x858c, + 0x858d, 0x858e, 0x8590, 0x8591, 0x8592, 0x8593, 0x8594, 0x8595, + 0x8596, 0x8597, 0x8598, 0x8599, 0x859a, 0x859d, 0x859e, 0x859f, + 0x85a0, 0x85a1, 0x85a2, 0x85a3, 0x85a5, 0x85a6, 0x85a7, 0x85a9, + 0x85ab, 0x85ac, 0x85ad, 0x85b1, 0x85b2, 0x85b3, 0x85b4, 0x85b5, + 0x85b6, 0x85b8, 0x85ba, 0x85bb, 0x85bc, 0x85bd, 0x85be, 0x85bf, + 0x85c0, 0x85c2, 0x85c3, 0x85c4, 0x85c5, 0x85c6, 0x85c7, 0x85c8, + 0x85ca, 0x85cb, 0x85cc, 0x85cd, 0x85ce, 0x85d1, 0x85d2, 0x85d4, + 0x85d6, 0x85d7, 0x85d8, 0x85d9, 0x85da, 0x85db, 0x85dd, 0x85de, + 0x85df, 0x85e0, 0x85e1, 0x85e2, 0x85e3, 0x85e5, 0x85e6, 0x85e7, + 0x85e8, 0x85ea, 0x85eb, 0x85ec, 0x85ed, 0x85ee, 0x85ef, 0x85f0, + 0x85f1, 0x85f2, 0x85f3, 0x85f4, 0x85f5, 0x85f6, 0x85f7, 0x85f8, + /* 0xcc */ + 0x85f9, 0x85fa, 0x85fc, 0x85fd, 0x85fe, 0x8600, 0x8601, 0x8602, + 0x8603, 0x8604, 0x8606, 0x8607, 0x8608, 0x8609, 0x860a, 0x860b, + 0x860c, 0x860d, 0x860e, 0x860f, 0x8610, 0x8612, 0x8613, 0x8614, + 0x8615, 0x8617, 0x8618, 0x8619, 0x861a, 0x861b, 0x861c, 0x861d, + 0x861e, 0x861f, 0x8620, 0x8621, 0x8622, 0x8623, 0x8624, 0x8625, + 0x8626, 0x8628, 0x862a, 0x862b, 0x862c, 0x862d, 0x862e, 0x862f, + 0x8630, 0x8631, 0x8632, 0x8633, 0x8634, 0x8635, 0x8636, 0x8637, + 0x8639, 0x863a, 0x863b, 0x863d, 0x863e, 0x863f, 0x8640, 0x8641, + 0x8642, 0x8643, 0x8644, 0x8645, 0x8646, 0x8647, 0x8648, 0x8649, + 0x864a, 0x864b, 0x864c, 0x8652, 0x8653, 0x8655, 0x8656, 0x8657, + 0x8658, 0x8659, 0x865b, 0x865c, 0x865d, 0x865f, 0x8660, 0x8661, + 0x8663, 0x8664, 0x8665, 0x8666, 0x8667, 0x8668, 0x8669, 0x866a, + /* 0xcd */ + 0x866d, 0x866f, 0x8670, 0x8672, 0x8673, 0x8674, 0x8675, 0x8676, + 0x8677, 0x8678, 0x8683, 0x8684, 0x8685, 0x8686, 0x8687, 0x8688, + 0x8689, 0x868e, 0x868f, 0x8690, 0x8691, 0x8692, 0x8694, 0x8696, + 0x8697, 0x8698, 0x8699, 0x869a, 0x869b, 0x869e, 0x869f, 0x86a0, + 0x86a1, 0x86a2, 0x86a5, 0x86a6, 0x86ab, 0x86ad, 0x86ae, 0x86b2, + 0x86b3, 0x86b7, 0x86b8, 0x86b9, 0x86bb, 0x86bc, 0x86bd, 0x86be, + 0x86bf, 0x86c1, 0x86c2, 0x86c3, 0x86c5, 0x86c8, 0x86cc, 0x86cd, + 0x86d2, 0x86d3, 0x86d5, 0x86d6, 0x86d7, 0x86da, 0x86dc, 0x86dd, + 0x86e0, 0x86e1, 0x86e2, 0x86e3, 0x86e5, 0x86e6, 0x86e7, 0x86e8, + 0x86ea, 0x86eb, 0x86ec, 0x86ef, 0x86f5, 0x86f6, 0x86f7, 0x86fa, + 0x86fb, 0x86fc, 0x86fd, 0x86ff, 0x8701, 0x8704, 0x8705, 0x8706, + 0x870b, 0x870c, 0x870e, 0x870f, 0x8710, 0x8711, 0x8714, 0x8716, + /* 0xce */ + 0x8719, 0x871b, 0x871d, 0x871f, 0x8720, 0x8724, 0x8726, 0x8727, + 0x8728, 0x872a, 0x872b, 0x872c, 0x872d, 0x872f, 0x8730, 0x8732, + 0x8733, 0x8735, 0x8736, 0x8738, 0x8739, 0x873a, 0x873c, 0x873d, + 0x8740, 0x8741, 0x8742, 0x8743, 0x8744, 0x8745, 0x8746, 0x874a, + 0x874b, 0x874d, 0x874f, 0x8750, 0x8751, 0x8752, 0x8754, 0x8755, + 0x8756, 0x8758, 0x875a, 0x875b, 0x875c, 0x875d, 0x875e, 0x875f, + 0x8761, 0x8762, 0x8766, 0x8767, 0x8768, 0x8769, 0x876a, 0x876b, + 0x876c, 0x876d, 0x876f, 0x8771, 0x8772, 0x8773, 0x8775, 0x8777, + 0x8778, 0x8779, 0x877a, 0x877f, 0x8780, 0x8781, 0x8784, 0x8786, + 0x8787, 0x8789, 0x878a, 0x878c, 0x878e, 0x878f, 0x8790, 0x8791, + 0x8792, 0x8794, 0x8795, 0x8796, 0x8798, 0x8799, 0x879a, 0x879b, + 0x879c, 0x879d, 0x879e, 0x87a0, 0x87a1, 0x87a2, 0x87a3, 0x87a4, + /* 0xcf */ + 0x87a5, 0x87a6, 0x87a7, 0x87a9, 0x87aa, 0x87ae, 0x87b0, 0x87b1, + 0x87b2, 0x87b4, 0x87b6, 0x87b7, 0x87b8, 0x87b9, 0x87bb, 0x87bc, + 0x87be, 0x87bf, 0x87c1, 0x87c2, 0x87c3, 0x87c4, 0x87c5, 0x87c7, + 0x87c8, 0x87c9, 0x87cc, 0x87cd, 0x87ce, 0x87cf, 0x87d0, 0x87d4, + 0x87d5, 0x87d6, 0x87d7, 0x87d8, 0x87d9, 0x87da, 0x87dc, 0x87dd, + 0x87de, 0x87df, 0x87e1, 0x87e2, 0x87e3, 0x87e4, 0x87e6, 0x87e7, + 0x87e8, 0x87e9, 0x87eb, 0x87ec, 0x87ed, 0x87ef, 0x87f0, 0x87f1, + 0x87f2, 0x87f3, 0x87f4, 0x87f5, 0x87f6, 0x87f7, 0x87f8, 0x87fa, + 0x87fb, 0x87fc, 0x87fd, 0x87ff, 0x8800, 0x8801, 0x8802, 0x8804, + 0x8805, 0x8806, 0x8807, 0x8808, 0x8809, 0x880b, 0x880c, 0x880d, + 0x880e, 0x880f, 0x8810, 0x8811, 0x8812, 0x8814, 0x8817, 0x8818, + 0x8819, 0x881a, 0x881c, 0x881d, 0x881e, 0x881f, 0x8820, 0x8823, + /* 0xd0 */ + 0x8824, 0x8825, 0x8826, 0x8827, 0x8828, 0x8829, 0x882a, 0x882b, + 0x882c, 0x882d, 0x882e, 0x882f, 0x8830, 0x8831, 0x8833, 0x8834, + 0x8835, 0x8836, 0x8837, 0x8838, 0x883a, 0x883b, 0x883d, 0x883e, + 0x883f, 0x8841, 0x8842, 0x8843, 0x8846, 0x8847, 0x8848, 0x8849, + 0x884a, 0x884b, 0x884e, 0x884f, 0x8850, 0x8851, 0x8852, 0x8853, + 0x8855, 0x8856, 0x8858, 0x885a, 0x885b, 0x885c, 0x885d, 0x885e, + 0x885f, 0x8860, 0x8866, 0x8867, 0x886a, 0x886d, 0x886f, 0x8871, + 0x8873, 0x8874, 0x8875, 0x8876, 0x8878, 0x8879, 0x887a, 0x887b, + 0x887c, 0x8880, 0x8883, 0x8886, 0x8887, 0x8889, 0x888a, 0x888c, + 0x888e, 0x888f, 0x8890, 0x8891, 0x8893, 0x8894, 0x8895, 0x8897, + 0x8898, 0x8899, 0x889a, 0x889b, 0x889d, 0x889e, 0x889f, 0x88a0, + 0x88a1, 0x88a3, 0x88a5, 0x88a6, 0x88a7, 0x88a8, 0x88a9, 0x88aa, + /* 0xd1 */ + 0x88ac, 0x88ae, 0x88af, 0x88b0, 0x88b2, 0x88b3, 0x88b4, 0x88b5, + 0x88b6, 0x88b8, 0x88b9, 0x88ba, 0x88bb, 0x88bd, 0x88be, 0x88bf, + 0x88c0, 0x88c3, 0x88c4, 0x88c7, 0x88c8, 0x88ca, 0x88cb, 0x88cc, + 0x88cd, 0x88cf, 0x88d0, 0x88d1, 0x88d3, 0x88d6, 0x88d7, 0x88da, + 0x88db, 0x88dc, 0x88dd, 0x88de, 0x88e0, 0x88e1, 0x88e6, 0x88e7, + 0x88e9, 0x88ea, 0x88eb, 0x88ec, 0x88ed, 0x88ee, 0x88ef, 0x88f2, + 0x88f5, 0x88f6, 0x88f7, 0x88fa, 0x88fb, 0x88fd, 0x88ff, 0x8900, + 0x8901, 0x8903, 0x8904, 0x8905, 0x8906, 0x8907, 0x8908, 0x8909, + 0x890b, 0x890c, 0x890d, 0x890e, 0x890f, 0x8911, 0x8914, 0x8915, + 0x8916, 0x8917, 0x8918, 0x891c, 0x891d, 0x891e, 0x891f, 0x8920, + 0x8922, 0x8923, 0x8924, 0x8926, 0x8927, 0x8928, 0x8929, 0x892c, + 0x892d, 0x892e, 0x892f, 0x8931, 0x8932, 0x8933, 0x8935, 0x8937, + /* 0xd2 */ + 0x8938, 0x8939, 0x893a, 0x893b, 0x893c, 0x893d, 0x893e, 0x893f, + 0x8940, 0x8942, 0x8943, 0x8945, 0x8946, 0x8947, 0x8948, 0x8949, + 0x894a, 0x894b, 0x894c, 0x894d, 0x894e, 0x894f, 0x8950, 0x8951, + 0x8952, 0x8953, 0x8954, 0x8955, 0x8956, 0x8957, 0x8958, 0x8959, + 0x895a, 0x895b, 0x895c, 0x895d, 0x8960, 0x8961, 0x8962, 0x8963, + 0x8964, 0x8965, 0x8967, 0x8968, 0x8969, 0x896a, 0x896b, 0x896c, + 0x896d, 0x896e, 0x896f, 0x8970, 0x8971, 0x8972, 0x8973, 0x8974, + 0x8975, 0x8976, 0x8977, 0x8978, 0x8979, 0x897a, 0x897c, 0x897d, + 0x897e, 0x8980, 0x8982, 0x8984, 0x8985, 0x8987, 0x8988, 0x8989, + 0x898a, 0x898b, 0x898c, 0x898d, 0x898e, 0x898f, 0x8990, 0x8991, + 0x8992, 0x8993, 0x8994, 0x8995, 0x8996, 0x8997, 0x8998, 0x8999, + 0x899a, 0x899b, 0x899c, 0x899d, 0x899e, 0x899f, 0x89a0, 0x89a1, + /* 0xd3 */ + 0x89a2, 0x89a3, 0x89a4, 0x89a5, 0x89a6, 0x89a7, 0x89a8, 0x89a9, + 0x89aa, 0x89ab, 0x89ac, 0x89ad, 0x89ae, 0x89af, 0x89b0, 0x89b1, + 0x89b2, 0x89b3, 0x89b4, 0x89b5, 0x89b6, 0x89b7, 0x89b8, 0x89b9, + 0x89ba, 0x89bb, 0x89bc, 0x89bd, 0x89be, 0x89bf, 0x89c0, 0x89c3, + 0x89cd, 0x89d3, 0x89d4, 0x89d5, 0x89d7, 0x89d8, 0x89d9, 0x89db, + 0x89dd, 0x89df, 0x89e0, 0x89e1, 0x89e2, 0x89e4, 0x89e7, 0x89e8, + 0x89e9, 0x89ea, 0x89ec, 0x89ed, 0x89ee, 0x89f0, 0x89f1, 0x89f2, + 0x89f4, 0x89f5, 0x89f6, 0x89f7, 0x89f8, 0x89f9, 0x89fa, 0x89fb, + 0x89fc, 0x89fd, 0x89fe, 0x89ff, 0x8a01, 0x8a02, 0x8a03, 0x8a04, + 0x8a05, 0x8a06, 0x8a08, 0x8a09, 0x8a0a, 0x8a0b, 0x8a0c, 0x8a0d, + 0x8a0e, 0x8a0f, 0x8a10, 0x8a11, 0x8a12, 0x8a13, 0x8a14, 0x8a15, + 0x8a16, 0x8a17, 0x8a18, 0x8a19, 0x8a1a, 0x8a1b, 0x8a1c, 0x8a1d, + /* 0xd4 */ + 0x8a1e, 0x8a1f, 0x8a20, 0x8a21, 0x8a22, 0x8a23, 0x8a24, 0x8a25, + 0x8a26, 0x8a27, 0x8a28, 0x8a29, 0x8a2a, 0x8a2b, 0x8a2c, 0x8a2d, + 0x8a2e, 0x8a2f, 0x8a30, 0x8a31, 0x8a32, 0x8a33, 0x8a34, 0x8a35, + 0x8a36, 0x8a37, 0x8a38, 0x8a39, 0x8a3a, 0x8a3b, 0x8a3c, 0x8a3d, + 0x8a3f, 0x8a40, 0x8a41, 0x8a42, 0x8a43, 0x8a44, 0x8a45, 0x8a46, + 0x8a47, 0x8a49, 0x8a4a, 0x8a4b, 0x8a4c, 0x8a4d, 0x8a4e, 0x8a4f, + 0x8a50, 0x8a51, 0x8a52, 0x8a53, 0x8a54, 0x8a55, 0x8a56, 0x8a57, + 0x8a58, 0x8a59, 0x8a5a, 0x8a5b, 0x8a5c, 0x8a5d, 0x8a5e, 0x8a5f, + 0x8a60, 0x8a61, 0x8a62, 0x8a63, 0x8a64, 0x8a65, 0x8a66, 0x8a67, + 0x8a68, 0x8a69, 0x8a6a, 0x8a6b, 0x8a6c, 0x8a6d, 0x8a6e, 0x8a6f, + 0x8a70, 0x8a71, 0x8a72, 0x8a73, 0x8a74, 0x8a75, 0x8a76, 0x8a77, + 0x8a78, 0x8a7a, 0x8a7b, 0x8a7c, 0x8a7d, 0x8a7e, 0x8a7f, 0x8a80, + /* 0xd5 */ + 0x8a81, 0x8a82, 0x8a83, 0x8a84, 0x8a85, 0x8a86, 0x8a87, 0x8a88, + 0x8a8b, 0x8a8c, 0x8a8d, 0x8a8e, 0x8a8f, 0x8a90, 0x8a91, 0x8a92, + 0x8a94, 0x8a95, 0x8a96, 0x8a97, 0x8a98, 0x8a99, 0x8a9a, 0x8a9b, + 0x8a9c, 0x8a9d, 0x8a9e, 0x8a9f, 0x8aa0, 0x8aa1, 0x8aa2, 0x8aa3, + 0x8aa4, 0x8aa5, 0x8aa6, 0x8aa7, 0x8aa8, 0x8aa9, 0x8aaa, 0x8aab, + 0x8aac, 0x8aad, 0x8aae, 0x8aaf, 0x8ab0, 0x8ab1, 0x8ab2, 0x8ab3, + 0x8ab4, 0x8ab5, 0x8ab6, 0x8ab7, 0x8ab8, 0x8ab9, 0x8aba, 0x8abb, + 0x8abc, 0x8abd, 0x8abe, 0x8abf, 0x8ac0, 0x8ac1, 0x8ac2, 0x8ac3, + 0x8ac4, 0x8ac5, 0x8ac6, 0x8ac7, 0x8ac8, 0x8ac9, 0x8aca, 0x8acb, + 0x8acc, 0x8acd, 0x8ace, 0x8acf, 0x8ad0, 0x8ad1, 0x8ad2, 0x8ad3, + 0x8ad4, 0x8ad5, 0x8ad6, 0x8ad7, 0x8ad8, 0x8ad9, 0x8ada, 0x8adb, + 0x8adc, 0x8add, 0x8ade, 0x8adf, 0x8ae0, 0x8ae1, 0x8ae2, 0x8ae3, + /* 0xd6 */ + 0x8ae4, 0x8ae5, 0x8ae6, 0x8ae7, 0x8ae8, 0x8ae9, 0x8aea, 0x8aeb, + 0x8aec, 0x8aed, 0x8aee, 0x8aef, 0x8af0, 0x8af1, 0x8af2, 0x8af3, + 0x8af4, 0x8af5, 0x8af6, 0x8af7, 0x8af8, 0x8af9, 0x8afa, 0x8afb, + 0x8afc, 0x8afd, 0x8afe, 0x8aff, 0x8b00, 0x8b01, 0x8b02, 0x8b03, + 0x8b04, 0x8b05, 0x8b06, 0x8b08, 0x8b09, 0x8b0a, 0x8b0b, 0x8b0c, + 0x8b0d, 0x8b0e, 0x8b0f, 0x8b10, 0x8b11, 0x8b12, 0x8b13, 0x8b14, + 0x8b15, 0x8b16, 0x8b17, 0x8b18, 0x8b19, 0x8b1a, 0x8b1b, 0x8b1c, + 0x8b1d, 0x8b1e, 0x8b1f, 0x8b20, 0x8b21, 0x8b22, 0x8b23, 0x8b24, + 0x8b25, 0x8b27, 0x8b28, 0x8b29, 0x8b2a, 0x8b2b, 0x8b2c, 0x8b2d, + 0x8b2e, 0x8b2f, 0x8b30, 0x8b31, 0x8b32, 0x8b33, 0x8b34, 0x8b35, + 0x8b36, 0x8b37, 0x8b38, 0x8b39, 0x8b3a, 0x8b3b, 0x8b3c, 0x8b3d, + 0x8b3e, 0x8b3f, 0x8b40, 0x8b41, 0x8b42, 0x8b43, 0x8b44, 0x8b45, + /* 0xd7 */ + 0x8b46, 0x8b47, 0x8b48, 0x8b49, 0x8b4a, 0x8b4b, 0x8b4c, 0x8b4d, + 0x8b4e, 0x8b4f, 0x8b50, 0x8b51, 0x8b52, 0x8b53, 0x8b54, 0x8b55, + 0x8b56, 0x8b57, 0x8b58, 0x8b59, 0x8b5a, 0x8b5b, 0x8b5c, 0x8b5d, + 0x8b5e, 0x8b5f, 0x8b60, 0x8b61, 0x8b62, 0x8b63, 0x8b64, 0x8b65, + 0x8b67, 0x8b68, 0x8b69, 0x8b6a, 0x8b6b, 0x8b6d, 0x8b6e, 0x8b6f, + 0x8b70, 0x8b71, 0x8b72, 0x8b73, 0x8b74, 0x8b75, 0x8b76, 0x8b77, + 0x8b78, 0x8b79, 0x8b7a, 0x8b7b, 0x8b7c, 0x8b7d, 0x8b7e, 0x8b7f, + 0x8b80, 0x8b81, 0x8b82, 0x8b83, 0x8b84, 0x8b85, 0x8b86, 0x8b87, + 0x8b88, 0x8b89, 0x8b8a, 0x8b8b, 0x8b8c, 0x8b8d, 0x8b8e, 0x8b8f, + 0x8b90, 0x8b91, 0x8b92, 0x8b93, 0x8b94, 0x8b95, 0x8b96, 0x8b97, + 0x8b98, 0x8b99, 0x8b9a, 0x8b9b, 0x8b9c, 0x8b9d, 0x8b9e, 0x8b9f, + 0x8bac, 0x8bb1, 0x8bbb, 0x8bc7, 0x8bd0, 0x8bea, 0x8c09, 0x8c1e, + /* 0xd8 */ + 0x8c38, 0x8c39, 0x8c3a, 0x8c3b, 0x8c3c, 0x8c3d, 0x8c3e, 0x8c3f, + 0x8c40, 0x8c42, 0x8c43, 0x8c44, 0x8c45, 0x8c48, 0x8c4a, 0x8c4b, + 0x8c4d, 0x8c4e, 0x8c4f, 0x8c50, 0x8c51, 0x8c52, 0x8c53, 0x8c54, + 0x8c56, 0x8c57, 0x8c58, 0x8c59, 0x8c5b, 0x8c5c, 0x8c5d, 0x8c5e, + 0x8c5f, 0x8c60, 0x8c63, 0x8c64, 0x8c65, 0x8c66, 0x8c67, 0x8c68, + 0x8c69, 0x8c6c, 0x8c6d, 0x8c6e, 0x8c6f, 0x8c70, 0x8c71, 0x8c72, + 0x8c74, 0x8c75, 0x8c76, 0x8c77, 0x8c7b, 0x8c7c, 0x8c7d, 0x8c7e, + 0x8c7f, 0x8c80, 0x8c81, 0x8c83, 0x8c84, 0x8c86, 0x8c87, 0x8c88, + 0x8c8b, 0x8c8d, 0x8c8e, 0x8c8f, 0x8c90, 0x8c91, 0x8c92, 0x8c93, + 0x8c95, 0x8c96, 0x8c97, 0x8c99, 0x8c9a, 0x8c9b, 0x8c9c, 0x8c9d, + 0x8c9e, 0x8c9f, 0x8ca0, 0x8ca1, 0x8ca2, 0x8ca3, 0x8ca4, 0x8ca5, + 0x8ca6, 0x8ca7, 0x8ca8, 0x8ca9, 0x8caa, 0x8cab, 0x8cac, 0x8cad, + /* 0xd9 */ + 0x8cae, 0x8caf, 0x8cb0, 0x8cb1, 0x8cb2, 0x8cb3, 0x8cb4, 0x8cb5, + 0x8cb6, 0x8cb7, 0x8cb8, 0x8cb9, 0x8cba, 0x8cbb, 0x8cbc, 0x8cbd, + 0x8cbe, 0x8cbf, 0x8cc0, 0x8cc1, 0x8cc2, 0x8cc3, 0x8cc4, 0x8cc5, + 0x8cc6, 0x8cc7, 0x8cc8, 0x8cc9, 0x8cca, 0x8ccb, 0x8ccc, 0x8ccd, + 0x8cce, 0x8ccf, 0x8cd0, 0x8cd1, 0x8cd2, 0x8cd3, 0x8cd4, 0x8cd5, + 0x8cd6, 0x8cd7, 0x8cd8, 0x8cd9, 0x8cda, 0x8cdb, 0x8cdc, 0x8cdd, + 0x8cde, 0x8cdf, 0x8ce0, 0x8ce1, 0x8ce2, 0x8ce3, 0x8ce4, 0x8ce5, + 0x8ce6, 0x8ce7, 0x8ce8, 0x8ce9, 0x8cea, 0x8ceb, 0x8cec, 0x8ced, + 0x8cee, 0x8cef, 0x8cf0, 0x8cf1, 0x8cf2, 0x8cf3, 0x8cf4, 0x8cf5, + 0x8cf6, 0x8cf7, 0x8cf8, 0x8cf9, 0x8cfa, 0x8cfb, 0x8cfc, 0x8cfd, + 0x8cfe, 0x8cff, 0x8d00, 0x8d01, 0x8d02, 0x8d03, 0x8d04, 0x8d05, + 0x8d06, 0x8d07, 0x8d08, 0x8d09, 0x8d0a, 0x8d0b, 0x8d0c, 0x8d0d, + /* 0xda */ + 0x8d0e, 0x8d0f, 0x8d10, 0x8d11, 0x8d12, 0x8d13, 0x8d14, 0x8d15, + 0x8d16, 0x8d17, 0x8d18, 0x8d19, 0x8d1a, 0x8d1b, 0x8d1c, 0x8d20, + 0x8d51, 0x8d52, 0x8d57, 0x8d5f, 0x8d65, 0x8d68, 0x8d69, 0x8d6a, + 0x8d6c, 0x8d6e, 0x8d6f, 0x8d71, 0x8d72, 0x8d78, 0x8d79, 0x8d7a, + 0x8d7b, 0x8d7c, 0x8d7d, 0x8d7e, 0x8d7f, 0x8d80, 0x8d82, 0x8d83, + 0x8d86, 0x8d87, 0x8d88, 0x8d89, 0x8d8c, 0x8d8d, 0x8d8e, 0x8d8f, + 0x8d90, 0x8d92, 0x8d93, 0x8d95, 0x8d96, 0x8d97, 0x8d98, 0x8d99, + 0x8d9a, 0x8d9b, 0x8d9c, 0x8d9d, 0x8d9e, 0x8da0, 0x8da1, 0x8da2, + 0x8da4, 0x8da5, 0x8da6, 0x8da7, 0x8da8, 0x8da9, 0x8daa, 0x8dab, + 0x8dac, 0x8dad, 0x8dae, 0x8daf, 0x8db0, 0x8db2, 0x8db6, 0x8db7, + 0x8db9, 0x8dbb, 0x8dbd, 0x8dc0, 0x8dc1, 0x8dc2, 0x8dc5, 0x8dc7, + 0x8dc8, 0x8dc9, 0x8dca, 0x8dcd, 0x8dd0, 0x8dd2, 0x8dd3, 0x8dd4, + /* 0xdb */ + 0x8dd5, 0x8dd8, 0x8dd9, 0x8ddc, 0x8de0, 0x8de1, 0x8de2, 0x8de5, + 0x8de6, 0x8de7, 0x8de9, 0x8ded, 0x8dee, 0x8df0, 0x8df1, 0x8df2, + 0x8df4, 0x8df6, 0x8dfc, 0x8dfe, 0x8dff, 0x8e00, 0x8e01, 0x8e02, + 0x8e03, 0x8e04, 0x8e06, 0x8e07, 0x8e08, 0x8e0b, 0x8e0d, 0x8e0e, + 0x8e10, 0x8e11, 0x8e12, 0x8e13, 0x8e15, 0x8e16, 0x8e17, 0x8e18, + 0x8e19, 0x8e1a, 0x8e1b, 0x8e1c, 0x8e20, 0x8e21, 0x8e24, 0x8e25, + 0x8e26, 0x8e27, 0x8e28, 0x8e2b, 0x8e2d, 0x8e30, 0x8e32, 0x8e33, + 0x8e34, 0x8e36, 0x8e37, 0x8e38, 0x8e3b, 0x8e3c, 0x8e3e, 0x8e3f, + 0x8e43, 0x8e45, 0x8e46, 0x8e4c, 0x8e4d, 0x8e4e, 0x8e4f, 0x8e50, + 0x8e53, 0x8e54, 0x8e55, 0x8e56, 0x8e57, 0x8e58, 0x8e5a, 0x8e5b, + 0x8e5c, 0x8e5d, 0x8e5e, 0x8e5f, 0x8e60, 0x8e61, 0x8e62, 0x8e63, + 0x8e64, 0x8e65, 0x8e67, 0x8e68, 0x8e6a, 0x8e6b, 0x8e6e, 0x8e71, + /* 0xdc */ + 0x8e73, 0x8e75, 0x8e77, 0x8e78, 0x8e79, 0x8e7a, 0x8e7b, 0x8e7d, + 0x8e7e, 0x8e80, 0x8e82, 0x8e83, 0x8e84, 0x8e86, 0x8e88, 0x8e89, + 0x8e8a, 0x8e8b, 0x8e8c, 0x8e8d, 0x8e8e, 0x8e91, 0x8e92, 0x8e93, + 0x8e95, 0x8e96, 0x8e97, 0x8e98, 0x8e99, 0x8e9a, 0x8e9b, 0x8e9d, + 0x8e9f, 0x8ea0, 0x8ea1, 0x8ea2, 0x8ea3, 0x8ea4, 0x8ea5, 0x8ea6, + 0x8ea7, 0x8ea8, 0x8ea9, 0x8eaa, 0x8ead, 0x8eae, 0x8eb0, 0x8eb1, + 0x8eb3, 0x8eb4, 0x8eb5, 0x8eb6, 0x8eb7, 0x8eb8, 0x8eb9, 0x8ebb, + 0x8ebc, 0x8ebd, 0x8ebe, 0x8ebf, 0x8ec0, 0x8ec1, 0x8ec2, 0x8ec3, + 0x8ec4, 0x8ec5, 0x8ec6, 0x8ec7, 0x8ec8, 0x8ec9, 0x8eca, 0x8ecb, + 0x8ecc, 0x8ecd, 0x8ecf, 0x8ed0, 0x8ed1, 0x8ed2, 0x8ed3, 0x8ed4, + 0x8ed5, 0x8ed6, 0x8ed7, 0x8ed8, 0x8ed9, 0x8eda, 0x8edb, 0x8edc, + 0x8edd, 0x8ede, 0x8edf, 0x8ee0, 0x8ee1, 0x8ee2, 0x8ee3, 0x8ee4, + /* 0xdd */ + 0x8ee5, 0x8ee6, 0x8ee7, 0x8ee8, 0x8ee9, 0x8eea, 0x8eeb, 0x8eec, + 0x8eed, 0x8eee, 0x8eef, 0x8ef0, 0x8ef1, 0x8ef2, 0x8ef3, 0x8ef4, + 0x8ef5, 0x8ef6, 0x8ef7, 0x8ef8, 0x8ef9, 0x8efa, 0x8efb, 0x8efc, + 0x8efd, 0x8efe, 0x8eff, 0x8f00, 0x8f01, 0x8f02, 0x8f03, 0x8f04, + 0x8f05, 0x8f06, 0x8f07, 0x8f08, 0x8f09, 0x8f0a, 0x8f0b, 0x8f0c, + 0x8f0d, 0x8f0e, 0x8f0f, 0x8f10, 0x8f11, 0x8f12, 0x8f13, 0x8f14, + 0x8f15, 0x8f16, 0x8f17, 0x8f18, 0x8f19, 0x8f1a, 0x8f1b, 0x8f1c, + 0x8f1d, 0x8f1e, 0x8f1f, 0x8f20, 0x8f21, 0x8f22, 0x8f23, 0x8f24, + 0x8f25, 0x8f26, 0x8f27, 0x8f28, 0x8f29, 0x8f2a, 0x8f2b, 0x8f2c, + 0x8f2d, 0x8f2e, 0x8f2f, 0x8f30, 0x8f31, 0x8f32, 0x8f33, 0x8f34, + 0x8f35, 0x8f36, 0x8f37, 0x8f38, 0x8f39, 0x8f3a, 0x8f3b, 0x8f3c, + 0x8f3d, 0x8f3e, 0x8f3f, 0x8f40, 0x8f41, 0x8f42, 0x8f43, 0x8f44, + /* 0xde */ + 0x8f45, 0x8f46, 0x8f47, 0x8f48, 0x8f49, 0x8f4a, 0x8f4b, 0x8f4c, + 0x8f4d, 0x8f4e, 0x8f4f, 0x8f50, 0x8f51, 0x8f52, 0x8f53, 0x8f54, + 0x8f55, 0x8f56, 0x8f57, 0x8f58, 0x8f59, 0x8f5a, 0x8f5b, 0x8f5c, + 0x8f5d, 0x8f5e, 0x8f5f, 0x8f60, 0x8f61, 0x8f62, 0x8f63, 0x8f64, + 0x8f65, 0x8f6a, 0x8f80, 0x8f8c, 0x8f92, 0x8f9d, 0x8fa0, 0x8fa1, + 0x8fa2, 0x8fa4, 0x8fa5, 0x8fa6, 0x8fa7, 0x8faa, 0x8fac, 0x8fad, + 0x8fae, 0x8faf, 0x8fb2, 0x8fb3, 0x8fb4, 0x8fb5, 0x8fb7, 0x8fb8, + 0x8fba, 0x8fbb, 0x8fbc, 0x8fbf, 0x8fc0, 0x8fc3, 0x8fc6, 0x8fc9, + 0x8fca, 0x8fcb, 0x8fcc, 0x8fcd, 0x8fcf, 0x8fd2, 0x8fd6, 0x8fd7, + 0x8fda, 0x8fe0, 0x8fe1, 0x8fe3, 0x8fe7, 0x8fec, 0x8fef, 0x8ff1, + 0x8ff2, 0x8ff4, 0x8ff5, 0x8ff6, 0x8ffa, 0x8ffb, 0x8ffc, 0x8ffe, + 0x8fff, 0x9007, 0x9008, 0x900c, 0x900e, 0x9013, 0x9015, 0x9018, + /* 0xdf */ + 0x9019, 0x901c, 0x9023, 0x9024, 0x9025, 0x9027, 0x9028, 0x9029, + 0x902a, 0x902b, 0x902c, 0x9030, 0x9031, 0x9032, 0x9033, 0x9034, + 0x9037, 0x9039, 0x903a, 0x903d, 0x903f, 0x9040, 0x9043, 0x9045, + 0x9046, 0x9048, 0x9049, 0x904a, 0x904b, 0x904c, 0x904e, 0x9054, + 0x9055, 0x9056, 0x9059, 0x905a, 0x905c, 0x905d, 0x905e, 0x905f, + 0x9060, 0x9061, 0x9064, 0x9066, 0x9067, 0x9069, 0x906a, 0x906b, + 0x906c, 0x906f, 0x9070, 0x9071, 0x9072, 0x9073, 0x9076, 0x9077, + 0x9078, 0x9079, 0x907a, 0x907b, 0x907c, 0x907e, 0x9081, 0x9084, + 0x9085, 0x9086, 0x9087, 0x9089, 0x908a, 0x908c, 0x908d, 0x908e, + 0x908f, 0x9090, 0x9092, 0x9094, 0x9096, 0x9098, 0x909a, 0x909c, + 0x909e, 0x909f, 0x90a0, 0x90a4, 0x90a5, 0x90a7, 0x90a8, 0x90a9, + 0x90ab, 0x90ad, 0x90b2, 0x90b7, 0x90bc, 0x90bd, 0x90bf, 0x90c0, + /* 0xe0 */ + 0x90c2, 0x90c3, 0x90c6, 0x90c8, 0x90c9, 0x90cb, 0x90cc, 0x90cd, + 0x90d2, 0x90d4, 0x90d5, 0x90d6, 0x90d8, 0x90d9, 0x90da, 0x90de, + 0x90df, 0x90e0, 0x90e3, 0x90e4, 0x90e5, 0x90e9, 0x90ea, 0x90ec, + 0x90ee, 0x90f0, 0x90f1, 0x90f2, 0x90f3, 0x90f5, 0x90f6, 0x90f7, + 0x90f9, 0x90fa, 0x90fb, 0x90fc, 0x90ff, 0x9100, 0x9101, 0x9103, + 0x9105, 0x9106, 0x9107, 0x9108, 0x9109, 0x910a, 0x910b, 0x910c, + 0x910d, 0x910e, 0x910f, 0x9110, 0x9111, 0x9112, 0x9113, 0x9114, + 0x9115, 0x9116, 0x9117, 0x9118, 0x911a, 0x911b, 0x911c, 0x911d, + 0x911f, 0x9120, 0x9121, 0x9124, 0x9125, 0x9126, 0x9127, 0x9128, + 0x9129, 0x912a, 0x912b, 0x912c, 0x912d, 0x912e, 0x9130, 0x9132, + 0x9133, 0x9134, 0x9135, 0x9136, 0x9137, 0x9138, 0x913a, 0x913b, + 0x913c, 0x913d, 0x913e, 0x913f, 0x9140, 0x9141, 0x9142, 0x9144, + /* 0xe1 */ + 0x9145, 0x9147, 0x9148, 0x9151, 0x9153, 0x9154, 0x9155, 0x9156, + 0x9158, 0x9159, 0x915b, 0x915c, 0x915f, 0x9160, 0x9166, 0x9167, + 0x9168, 0x916b, 0x916d, 0x9173, 0x917a, 0x917b, 0x917c, 0x9180, + 0x9181, 0x9182, 0x9183, 0x9184, 0x9186, 0x9188, 0x918a, 0x918e, + 0x918f, 0x9193, 0x9194, 0x9195, 0x9196, 0x9197, 0x9198, 0x9199, + 0x919c, 0x919d, 0x919e, 0x919f, 0x91a0, 0x91a1, 0x91a4, 0x91a5, + 0x91a6, 0x91a7, 0x91a8, 0x91a9, 0x91ab, 0x91ac, 0x91b0, 0x91b1, + 0x91b2, 0x91b3, 0x91b6, 0x91b7, 0x91b8, 0x91b9, 0x91bb, 0x91bc, + 0x91bd, 0x91be, 0x91bf, 0x91c0, 0x91c1, 0x91c2, 0x91c3, 0x91c4, + 0x91c5, 0x91c6, 0x91c8, 0x91cb, 0x91d0, 0x91d2, 0x91d3, 0x91d4, + 0x91d5, 0x91d6, 0x91d7, 0x91d8, 0x91d9, 0x91da, 0x91db, 0x91dd, + 0x91de, 0x91df, 0x91e0, 0x91e1, 0x91e2, 0x91e3, 0x91e4, 0x91e5, + /* 0xe2 */ + 0x91e6, 0x91e7, 0x91e8, 0x91e9, 0x91ea, 0x91eb, 0x91ec, 0x91ed, + 0x91ee, 0x91ef, 0x91f0, 0x91f1, 0x91f2, 0x91f3, 0x91f4, 0x91f5, + 0x91f6, 0x91f7, 0x91f8, 0x91f9, 0x91fa, 0x91fb, 0x91fc, 0x91fd, + 0x91fe, 0x91ff, 0x9200, 0x9201, 0x9202, 0x9203, 0x9204, 0x9205, + 0x9206, 0x9207, 0x9208, 0x9209, 0x920a, 0x920b, 0x920c, 0x920d, + 0x920e, 0x920f, 0x9210, 0x9211, 0x9212, 0x9213, 0x9214, 0x9215, + 0x9216, 0x9217, 0x9218, 0x9219, 0x921a, 0x921b, 0x921c, 0x921d, + 0x921e, 0x921f, 0x9220, 0x9221, 0x9222, 0x9223, 0x9224, 0x9225, + 0x9226, 0x9227, 0x9228, 0x9229, 0x922a, 0x922b, 0x922c, 0x922d, + 0x922e, 0x922f, 0x9230, 0x9231, 0x9232, 0x9233, 0x9234, 0x9235, + 0x9236, 0x9237, 0x9238, 0x9239, 0x923a, 0x923b, 0x923c, 0x923d, + 0x923e, 0x923f, 0x9240, 0x9241, 0x9242, 0x9243, 0x9244, 0x9245, + /* 0xe3 */ + 0x9246, 0x9247, 0x9248, 0x9249, 0x924a, 0x924b, 0x924c, 0x924d, + 0x924e, 0x924f, 0x9250, 0x9251, 0x9252, 0x9253, 0x9254, 0x9255, + 0x9256, 0x9257, 0x9258, 0x9259, 0x925a, 0x925b, 0x925c, 0x925d, + 0x925e, 0x925f, 0x9260, 0x9261, 0x9262, 0x9263, 0x9264, 0x9265, + 0x9266, 0x9267, 0x9268, 0x9269, 0x926a, 0x926b, 0x926c, 0x926d, + 0x926e, 0x926f, 0x9270, 0x9271, 0x9272, 0x9273, 0x9275, 0x9276, + 0x9277, 0x9278, 0x9279, 0x927a, 0x927b, 0x927c, 0x927d, 0x927e, + 0x927f, 0x9280, 0x9281, 0x9282, 0x9283, 0x9284, 0x9285, 0x9286, + 0x9287, 0x9288, 0x9289, 0x928a, 0x928b, 0x928c, 0x928d, 0x928f, + 0x9290, 0x9291, 0x9292, 0x9293, 0x9294, 0x9295, 0x9296, 0x9297, + 0x9298, 0x9299, 0x929a, 0x929b, 0x929c, 0x929d, 0x929e, 0x929f, + 0x92a0, 0x92a1, 0x92a2, 0x92a3, 0x92a4, 0x92a5, 0x92a6, 0x92a7, + /* 0xe4 */ + 0x92a8, 0x92a9, 0x92aa, 0x92ab, 0x92ac, 0x92ad, 0x92af, 0x92b0, + 0x92b1, 0x92b2, 0x92b3, 0x92b4, 0x92b5, 0x92b6, 0x92b7, 0x92b8, + 0x92b9, 0x92ba, 0x92bb, 0x92bc, 0x92bd, 0x92be, 0x92bf, 0x92c0, + 0x92c1, 0x92c2, 0x92c3, 0x92c4, 0x92c5, 0x92c6, 0x92c7, 0x92c9, + 0x92ca, 0x92cb, 0x92cc, 0x92cd, 0x92ce, 0x92cf, 0x92d0, 0x92d1, + 0x92d2, 0x92d3, 0x92d4, 0x92d5, 0x92d6, 0x92d7, 0x92d8, 0x92d9, + 0x92da, 0x92db, 0x92dc, 0x92dd, 0x92de, 0x92df, 0x92e0, 0x92e1, + 0x92e2, 0x92e3, 0x92e4, 0x92e5, 0x92e6, 0x92e7, 0x92e8, 0x92e9, + 0x92ea, 0x92eb, 0x92ec, 0x92ed, 0x92ee, 0x92ef, 0x92f0, 0x92f1, + 0x92f2, 0x92f3, 0x92f4, 0x92f5, 0x92f6, 0x92f7, 0x92f8, 0x92f9, + 0x92fa, 0x92fb, 0x92fc, 0x92fd, 0x92fe, 0x92ff, 0x9300, 0x9301, + 0x9302, 0x9303, 0x9304, 0x9305, 0x9306, 0x9307, 0x9308, 0x9309, + /* 0xe5 */ + 0x930a, 0x930b, 0x930c, 0x930d, 0x930e, 0x930f, 0x9310, 0x9311, + 0x9312, 0x9313, 0x9314, 0x9315, 0x9316, 0x9317, 0x9318, 0x9319, + 0x931a, 0x931b, 0x931c, 0x931d, 0x931e, 0x931f, 0x9320, 0x9321, + 0x9322, 0x9323, 0x9324, 0x9325, 0x9326, 0x9327, 0x9328, 0x9329, + 0x932a, 0x932b, 0x932c, 0x932d, 0x932e, 0x932f, 0x9330, 0x9331, + 0x9332, 0x9333, 0x9334, 0x9335, 0x9336, 0x9337, 0x9338, 0x9339, + 0x933a, 0x933b, 0x933c, 0x933d, 0x933f, 0x9340, 0x9341, 0x9342, + 0x9343, 0x9344, 0x9345, 0x9346, 0x9347, 0x9348, 0x9349, 0x934a, + 0x934b, 0x934c, 0x934d, 0x934e, 0x934f, 0x9350, 0x9351, 0x9352, + 0x9353, 0x9354, 0x9355, 0x9356, 0x9357, 0x9358, 0x9359, 0x935a, + 0x935b, 0x935c, 0x935d, 0x935e, 0x935f, 0x9360, 0x9361, 0x9362, + 0x9363, 0x9364, 0x9365, 0x9366, 0x9367, 0x9368, 0x9369, 0x936b, + /* 0xe6 */ + 0x936c, 0x936d, 0x936e, 0x936f, 0x9370, 0x9371, 0x9372, 0x9373, + 0x9374, 0x9375, 0x9376, 0x9377, 0x9378, 0x9379, 0x937a, 0x937b, + 0x937c, 0x937d, 0x937e, 0x937f, 0x9380, 0x9381, 0x9382, 0x9383, + 0x9384, 0x9385, 0x9386, 0x9387, 0x9388, 0x9389, 0x938a, 0x938b, + 0x938c, 0x938d, 0x938e, 0x9390, 0x9391, 0x9392, 0x9393, 0x9394, + 0x9395, 0x9396, 0x9397, 0x9398, 0x9399, 0x939a, 0x939b, 0x939c, + 0x939d, 0x939e, 0x939f, 0x93a0, 0x93a1, 0x93a2, 0x93a3, 0x93a4, + 0x93a5, 0x93a6, 0x93a7, 0x93a8, 0x93a9, 0x93aa, 0x93ab, 0x93ac, + 0x93ad, 0x93ae, 0x93af, 0x93b0, 0x93b1, 0x93b2, 0x93b3, 0x93b4, + 0x93b5, 0x93b6, 0x93b7, 0x93b8, 0x93b9, 0x93ba, 0x93bb, 0x93bc, + 0x93bd, 0x93be, 0x93bf, 0x93c0, 0x93c1, 0x93c2, 0x93c3, 0x93c4, + 0x93c5, 0x93c6, 0x93c7, 0x93c8, 0x93c9, 0x93cb, 0x93cc, 0x93cd, + /* 0xe7 */ + 0x93ce, 0x93cf, 0x93d0, 0x93d1, 0x93d2, 0x93d3, 0x93d4, 0x93d5, + 0x93d7, 0x93d8, 0x93d9, 0x93da, 0x93db, 0x93dc, 0x93dd, 0x93de, + 0x93df, 0x93e0, 0x93e1, 0x93e2, 0x93e3, 0x93e4, 0x93e5, 0x93e6, + 0x93e7, 0x93e8, 0x93e9, 0x93ea, 0x93eb, 0x93ec, 0x93ed, 0x93ee, + 0x93ef, 0x93f0, 0x93f1, 0x93f2, 0x93f3, 0x93f4, 0x93f5, 0x93f6, + 0x93f7, 0x93f8, 0x93f9, 0x93fa, 0x93fb, 0x93fc, 0x93fd, 0x93fe, + 0x93ff, 0x9400, 0x9401, 0x9402, 0x9403, 0x9404, 0x9405, 0x9406, + 0x9407, 0x9408, 0x9409, 0x940a, 0x940b, 0x940c, 0x940d, 0x940e, + 0x940f, 0x9410, 0x9411, 0x9412, 0x9413, 0x9414, 0x9415, 0x9416, + 0x9417, 0x9418, 0x9419, 0x941a, 0x941b, 0x941c, 0x941d, 0x941e, + 0x941f, 0x9420, 0x9421, 0x9422, 0x9423, 0x9424, 0x9425, 0x9426, + 0x9427, 0x9428, 0x9429, 0x942a, 0x942b, 0x942c, 0x942d, 0x942e, + /* 0xe8 */ + 0x942f, 0x9430, 0x9431, 0x9432, 0x9433, 0x9434, 0x9435, 0x9436, + 0x9437, 0x9438, 0x9439, 0x943a, 0x943b, 0x943c, 0x943d, 0x943f, + 0x9440, 0x9441, 0x9442, 0x9443, 0x9444, 0x9445, 0x9446, 0x9447, + 0x9448, 0x9449, 0x944a, 0x944b, 0x944c, 0x944d, 0x944e, 0x944f, + 0x9450, 0x9451, 0x9452, 0x9453, 0x9454, 0x9455, 0x9456, 0x9457, + 0x9458, 0x9459, 0x945a, 0x945b, 0x945c, 0x945d, 0x945e, 0x945f, + 0x9460, 0x9461, 0x9462, 0x9463, 0x9464, 0x9465, 0x9466, 0x9467, + 0x9468, 0x9469, 0x946a, 0x946c, 0x946d, 0x946e, 0x946f, 0x9470, + 0x9471, 0x9472, 0x9473, 0x9474, 0x9475, 0x9476, 0x9477, 0x9478, + 0x9479, 0x947a, 0x947b, 0x947c, 0x947d, 0x947e, 0x947f, 0x9480, + 0x9481, 0x9482, 0x9483, 0x9484, 0x9491, 0x9496, 0x9498, 0x94c7, + 0x94cf, 0x94d3, 0x94d4, 0x94da, 0x94e6, 0x94fb, 0x951c, 0x9520, + /* 0xe9 */ + 0x9527, 0x9533, 0x953d, 0x9543, 0x9548, 0x954b, 0x9555, 0x955a, + 0x9560, 0x956e, 0x9574, 0x9575, 0x9577, 0x9578, 0x9579, 0x957a, + 0x957b, 0x957c, 0x957d, 0x957e, 0x9580, 0x9581, 0x9582, 0x9583, + 0x9584, 0x9585, 0x9586, 0x9587, 0x9588, 0x9589, 0x958a, 0x958b, + 0x958c, 0x958d, 0x958e, 0x958f, 0x9590, 0x9591, 0x9592, 0x9593, + 0x9594, 0x9595, 0x9596, 0x9597, 0x9598, 0x9599, 0x959a, 0x959b, + 0x959c, 0x959d, 0x959e, 0x959f, 0x95a0, 0x95a1, 0x95a2, 0x95a3, + 0x95a4, 0x95a5, 0x95a6, 0x95a7, 0x95a8, 0x95a9, 0x95aa, 0x95ab, + 0x95ac, 0x95ad, 0x95ae, 0x95af, 0x95b0, 0x95b1, 0x95b2, 0x95b3, + 0x95b4, 0x95b5, 0x95b6, 0x95b7, 0x95b8, 0x95b9, 0x95ba, 0x95bb, + 0x95bc, 0x95bd, 0x95be, 0x95bf, 0x95c0, 0x95c1, 0x95c2, 0x95c3, + 0x95c4, 0x95c5, 0x95c6, 0x95c7, 0x95c8, 0x95c9, 0x95ca, 0x95cb, + /* 0xea */ + 0x95cc, 0x95cd, 0x95ce, 0x95cf, 0x95d0, 0x95d1, 0x95d2, 0x95d3, + 0x95d4, 0x95d5, 0x95d6, 0x95d7, 0x95d8, 0x95d9, 0x95da, 0x95db, + 0x95dc, 0x95dd, 0x95de, 0x95df, 0x95e0, 0x95e1, 0x95e2, 0x95e3, + 0x95e4, 0x95e5, 0x95e6, 0x95e7, 0x95ec, 0x95ff, 0x9607, 0x9613, + 0x9618, 0x961b, 0x961e, 0x9620, 0x9623, 0x9624, 0x9625, 0x9626, + 0x9627, 0x9628, 0x9629, 0x962b, 0x962c, 0x962d, 0x962f, 0x9630, + 0x9637, 0x9638, 0x9639, 0x963a, 0x963e, 0x9641, 0x9643, 0x964a, + 0x964e, 0x964f, 0x9651, 0x9652, 0x9653, 0x9656, 0x9657, 0x9658, + 0x9659, 0x965a, 0x965c, 0x965d, 0x965e, 0x9660, 0x9663, 0x9665, + 0x9666, 0x966b, 0x966d, 0x966e, 0x966f, 0x9670, 0x9671, 0x9673, + 0x9678, 0x9679, 0x967a, 0x967b, 0x967c, 0x967d, 0x967e, 0x967f, + 0x9680, 0x9681, 0x9682, 0x9683, 0x9684, 0x9687, 0x9689, 0x968a, + /* 0xeb */ + 0x968c, 0x968e, 0x9691, 0x9692, 0x9693, 0x9695, 0x9696, 0x969a, + 0x969b, 0x969d, 0x969e, 0x969f, 0x96a0, 0x96a1, 0x96a2, 0x96a3, + 0x96a4, 0x96a5, 0x96a6, 0x96a8, 0x96a9, 0x96aa, 0x96ab, 0x96ac, + 0x96ad, 0x96ae, 0x96af, 0x96b1, 0x96b2, 0x96b4, 0x96b5, 0x96b7, + 0x96b8, 0x96ba, 0x96bb, 0x96bf, 0x96c2, 0x96c3, 0x96c8, 0x96ca, + 0x96cb, 0x96d0, 0x96d1, 0x96d3, 0x96d4, 0x96d6, 0x96d7, 0x96d8, + 0x96d9, 0x96da, 0x96db, 0x96dc, 0x96dd, 0x96de, 0x96df, 0x96e1, + 0x96e2, 0x96e3, 0x96e4, 0x96e5, 0x96e6, 0x96e7, 0x96eb, 0x96ec, + 0x96ed, 0x96ee, 0x96f0, 0x96f1, 0x96f2, 0x96f4, 0x96f5, 0x96f8, + 0x96fa, 0x96fb, 0x96fc, 0x96fd, 0x96ff, 0x9702, 0x9703, 0x9705, + 0x970a, 0x970b, 0x970c, 0x9710, 0x9711, 0x9712, 0x9714, 0x9715, + 0x9717, 0x9718, 0x9719, 0x971a, 0x971b, 0x971d, 0x971f, 0x9720, + /* 0xec */ + 0x9721, 0x9722, 0x9723, 0x9724, 0x9725, 0x9726, 0x9727, 0x9728, + 0x9729, 0x972b, 0x972c, 0x972e, 0x972f, 0x9731, 0x9733, 0x9734, + 0x9735, 0x9736, 0x9737, 0x973a, 0x973b, 0x973c, 0x973d, 0x973f, + 0x9740, 0x9741, 0x9742, 0x9743, 0x9744, 0x9745, 0x9746, 0x9747, + 0x9748, 0x9749, 0x974a, 0x974b, 0x974c, 0x974d, 0x974e, 0x974f, + 0x9750, 0x9751, 0x9754, 0x9755, 0x9757, 0x9758, 0x975a, 0x975c, + 0x975d, 0x975f, 0x9763, 0x9764, 0x9766, 0x9767, 0x9768, 0x976a, + 0x976b, 0x976c, 0x976d, 0x976e, 0x976f, 0x9770, 0x9771, 0x9772, + 0x9775, 0x9777, 0x9778, 0x9779, 0x977a, 0x977b, 0x977d, 0x977e, + 0x977f, 0x9780, 0x9781, 0x9782, 0x9783, 0x9784, 0x9786, 0x9787, + 0x9788, 0x9789, 0x978a, 0x978c, 0x978e, 0x978f, 0x9790, 0x9793, + 0x9795, 0x9796, 0x9797, 0x9799, 0x979a, 0x979b, 0x979c, 0x979d, + /* 0xed */ + 0x979e, 0x979f, 0x97a1, 0x97a2, 0x97a4, 0x97a5, 0x97a6, 0x97a7, + 0x97a8, 0x97a9, 0x97aa, 0x97ac, 0x97ae, 0x97b0, 0x97b1, 0x97b3, + 0x97b5, 0x97b6, 0x97b7, 0x97b8, 0x97b9, 0x97ba, 0x97bb, 0x97bc, + 0x97bd, 0x97be, 0x97bf, 0x97c0, 0x97c1, 0x97c2, 0x97c3, 0x97c4, + 0x97c5, 0x97c6, 0x97c7, 0x97c8, 0x97c9, 0x97ca, 0x97cb, 0x97cc, + 0x97cd, 0x97ce, 0x97cf, 0x97d0, 0x97d1, 0x97d2, 0x97d3, 0x97d4, + 0x97d5, 0x97d6, 0x97d7, 0x97d8, 0x97d9, 0x97da, 0x97db, 0x97dc, + 0x97dd, 0x97de, 0x97df, 0x97e0, 0x97e1, 0x97e2, 0x97e3, 0x97e4, + 0x97e5, 0x97e8, 0x97ee, 0x97ef, 0x97f0, 0x97f1, 0x97f2, 0x97f4, + 0x97f7, 0x97f8, 0x97f9, 0x97fa, 0x97fb, 0x97fc, 0x97fd, 0x97fe, + 0x97ff, 0x9800, 0x9801, 0x9802, 0x9803, 0x9804, 0x9805, 0x9806, + 0x9807, 0x9808, 0x9809, 0x980a, 0x980b, 0x980c, 0x980d, 0x980e, + /* 0xee */ + 0x980f, 0x9810, 0x9811, 0x9812, 0x9813, 0x9814, 0x9815, 0x9816, + 0x9817, 0x9818, 0x9819, 0x981a, 0x981b, 0x981c, 0x981d, 0x981e, + 0x981f, 0x9820, 0x9821, 0x9822, 0x9823, 0x9824, 0x9825, 0x9826, + 0x9827, 0x9828, 0x9829, 0x982a, 0x982b, 0x982c, 0x982d, 0x982e, + 0x982f, 0x9830, 0x9831, 0x9832, 0x9833, 0x9834, 0x9835, 0x9836, + 0x9837, 0x9838, 0x9839, 0x983a, 0x983b, 0x983c, 0x983d, 0x983e, + 0x983f, 0x9840, 0x9841, 0x9842, 0x9843, 0x9844, 0x9845, 0x9846, + 0x9847, 0x9848, 0x9849, 0x984a, 0x984b, 0x984c, 0x984d, 0x984e, + 0x984f, 0x9850, 0x9851, 0x9852, 0x9853, 0x9854, 0x9855, 0x9856, + 0x9857, 0x9858, 0x9859, 0x985a, 0x985b, 0x985c, 0x985d, 0x985e, + 0x985f, 0x9860, 0x9861, 0x9862, 0x9863, 0x9864, 0x9865, 0x9866, + 0x9867, 0x9868, 0x9869, 0x986a, 0x986b, 0x986c, 0x986d, 0x986e, + /* 0xef */ + 0x986f, 0x9870, 0x9871, 0x9872, 0x9873, 0x9874, 0x988b, 0x988e, + 0x9892, 0x9895, 0x9899, 0x98a3, 0x98a8, 0x98a9, 0x98aa, 0x98ab, + 0x98ac, 0x98ad, 0x98ae, 0x98af, 0x98b0, 0x98b1, 0x98b2, 0x98b3, + 0x98b4, 0x98b5, 0x98b6, 0x98b7, 0x98b8, 0x98b9, 0x98ba, 0x98bb, + 0x98bc, 0x98bd, 0x98be, 0x98bf, 0x98c0, 0x98c1, 0x98c2, 0x98c3, + 0x98c4, 0x98c5, 0x98c6, 0x98c7, 0x98c8, 0x98c9, 0x98ca, 0x98cb, + 0x98cc, 0x98cd, 0x98cf, 0x98d0, 0x98d4, 0x98d6, 0x98d7, 0x98db, + 0x98dc, 0x98dd, 0x98e0, 0x98e1, 0x98e2, 0x98e3, 0x98e4, 0x98e5, + 0x98e6, 0x98e9, 0x98ea, 0x98eb, 0x98ec, 0x98ed, 0x98ee, 0x98ef, + 0x98f0, 0x98f1, 0x98f2, 0x98f3, 0x98f4, 0x98f5, 0x98f6, 0x98f7, + 0x98f8, 0x98f9, 0x98fa, 0x98fb, 0x98fc, 0x98fd, 0x98fe, 0x98ff, + 0x9900, 0x9901, 0x9902, 0x9903, 0x9904, 0x9905, 0x9906, 0x9907, + /* 0xf0 */ + 0x9908, 0x9909, 0x990a, 0x990b, 0x990c, 0x990e, 0x990f, 0x9911, + 0x9912, 0x9913, 0x9914, 0x9915, 0x9916, 0x9917, 0x9918, 0x9919, + 0x991a, 0x991b, 0x991c, 0x991d, 0x991e, 0x991f, 0x9920, 0x9921, + 0x9922, 0x9923, 0x9924, 0x9925, 0x9926, 0x9927, 0x9928, 0x9929, + 0x992a, 0x992b, 0x992c, 0x992d, 0x992f, 0x9930, 0x9931, 0x9932, + 0x9933, 0x9934, 0x9935, 0x9936, 0x9937, 0x9938, 0x9939, 0x993a, + 0x993b, 0x993c, 0x993d, 0x993e, 0x993f, 0x9940, 0x9941, 0x9942, + 0x9943, 0x9944, 0x9945, 0x9946, 0x9947, 0x9948, 0x9949, 0x994a, + 0x994b, 0x994c, 0x994d, 0x994e, 0x994f, 0x9950, 0x9951, 0x9952, + 0x9953, 0x9956, 0x9957, 0x9958, 0x9959, 0x995a, 0x995b, 0x995c, + 0x995d, 0x995e, 0x995f, 0x9960, 0x9961, 0x9962, 0x9964, 0x9966, + 0x9973, 0x9978, 0x9979, 0x997b, 0x997e, 0x9982, 0x9983, 0x9989, + /* 0xf1 */ + 0x998c, 0x998e, 0x999a, 0x999b, 0x999c, 0x999d, 0x999e, 0x999f, + 0x99a0, 0x99a1, 0x99a2, 0x99a3, 0x99a4, 0x99a6, 0x99a7, 0x99a9, + 0x99aa, 0x99ab, 0x99ac, 0x99ad, 0x99ae, 0x99af, 0x99b0, 0x99b1, + 0x99b2, 0x99b3, 0x99b4, 0x99b5, 0x99b6, 0x99b7, 0x99b8, 0x99b9, + 0x99ba, 0x99bb, 0x99bc, 0x99bd, 0x99be, 0x99bf, 0x99c0, 0x99c1, + 0x99c2, 0x99c3, 0x99c4, 0x99c5, 0x99c6, 0x99c7, 0x99c8, 0x99c9, + 0x99ca, 0x99cb, 0x99cc, 0x99cd, 0x99ce, 0x99cf, 0x99d0, 0x99d1, + 0x99d2, 0x99d3, 0x99d4, 0x99d5, 0x99d6, 0x99d7, 0x99d8, 0x99d9, + 0x99da, 0x99db, 0x99dc, 0x99dd, 0x99de, 0x99df, 0x99e0, 0x99e1, + 0x99e2, 0x99e3, 0x99e4, 0x99e5, 0x99e6, 0x99e7, 0x99e8, 0x99e9, + 0x99ea, 0x99eb, 0x99ec, 0x99ed, 0x99ee, 0x99ef, 0x99f0, 0x99f1, + 0x99f2, 0x99f3, 0x99f4, 0x99f5, 0x99f6, 0x99f7, 0x99f8, 0x99f9, + /* 0xf2 */ + 0x99fa, 0x99fb, 0x99fc, 0x99fd, 0x99fe, 0x99ff, 0x9a00, 0x9a01, + 0x9a02, 0x9a03, 0x9a04, 0x9a05, 0x9a06, 0x9a07, 0x9a08, 0x9a09, + 0x9a0a, 0x9a0b, 0x9a0c, 0x9a0d, 0x9a0e, 0x9a0f, 0x9a10, 0x9a11, + 0x9a12, 0x9a13, 0x9a14, 0x9a15, 0x9a16, 0x9a17, 0x9a18, 0x9a19, + 0x9a1a, 0x9a1b, 0x9a1c, 0x9a1d, 0x9a1e, 0x9a1f, 0x9a20, 0x9a21, + 0x9a22, 0x9a23, 0x9a24, 0x9a25, 0x9a26, 0x9a27, 0x9a28, 0x9a29, + 0x9a2a, 0x9a2b, 0x9a2c, 0x9a2d, 0x9a2e, 0x9a2f, 0x9a30, 0x9a31, + 0x9a32, 0x9a33, 0x9a34, 0x9a35, 0x9a36, 0x9a37, 0x9a38, 0x9a39, + 0x9a3a, 0x9a3b, 0x9a3c, 0x9a3d, 0x9a3e, 0x9a3f, 0x9a40, 0x9a41, + 0x9a42, 0x9a43, 0x9a44, 0x9a45, 0x9a46, 0x9a47, 0x9a48, 0x9a49, + 0x9a4a, 0x9a4b, 0x9a4c, 0x9a4d, 0x9a4e, 0x9a4f, 0x9a50, 0x9a51, + 0x9a52, 0x9a53, 0x9a54, 0x9a55, 0x9a56, 0x9a57, 0x9a58, 0x9a59, + /* 0xf3 */ + 0x9a5a, 0x9a5b, 0x9a5c, 0x9a5d, 0x9a5e, 0x9a5f, 0x9a60, 0x9a61, + 0x9a62, 0x9a63, 0x9a64, 0x9a65, 0x9a66, 0x9a67, 0x9a68, 0x9a69, + 0x9a6a, 0x9a6b, 0x9a72, 0x9a83, 0x9a89, 0x9a8d, 0x9a8e, 0x9a94, + 0x9a95, 0x9a99, 0x9aa6, 0x9aa9, 0x9aaa, 0x9aab, 0x9aac, 0x9aad, + 0x9aae, 0x9aaf, 0x9ab2, 0x9ab3, 0x9ab4, 0x9ab5, 0x9ab9, 0x9abb, + 0x9abd, 0x9abe, 0x9abf, 0x9ac3, 0x9ac4, 0x9ac6, 0x9ac7, 0x9ac8, + 0x9ac9, 0x9aca, 0x9acd, 0x9ace, 0x9acf, 0x9ad0, 0x9ad2, 0x9ad4, + 0x9ad5, 0x9ad6, 0x9ad7, 0x9ad9, 0x9ada, 0x9adb, 0x9adc, 0x9add, + 0x9ade, 0x9ae0, 0x9ae2, 0x9ae3, 0x9ae4, 0x9ae5, 0x9ae7, 0x9ae8, + 0x9ae9, 0x9aea, 0x9aec, 0x9aee, 0x9af0, 0x9af1, 0x9af2, 0x9af3, + 0x9af4, 0x9af5, 0x9af6, 0x9af7, 0x9af8, 0x9afa, 0x9afc, 0x9afd, + 0x9afe, 0x9aff, 0x9b00, 0x9b01, 0x9b02, 0x9b04, 0x9b05, 0x9b06, + /* 0xf4 */ + 0x9b07, 0x9b09, 0x9b0a, 0x9b0b, 0x9b0c, 0x9b0d, 0x9b0e, 0x9b10, + 0x9b11, 0x9b12, 0x9b14, 0x9b15, 0x9b16, 0x9b17, 0x9b18, 0x9b19, + 0x9b1a, 0x9b1b, 0x9b1c, 0x9b1d, 0x9b1e, 0x9b20, 0x9b21, 0x9b22, + 0x9b24, 0x9b25, 0x9b26, 0x9b27, 0x9b28, 0x9b29, 0x9b2a, 0x9b2b, + 0x9b2c, 0x9b2d, 0x9b2e, 0x9b30, 0x9b31, 0x9b33, 0x9b34, 0x9b35, + 0x9b36, 0x9b37, 0x9b38, 0x9b39, 0x9b3a, 0x9b3d, 0x9b3e, 0x9b3f, + 0x9b40, 0x9b46, 0x9b4a, 0x9b4b, 0x9b4c, 0x9b4e, 0x9b50, 0x9b52, + 0x9b53, 0x9b55, 0x9b56, 0x9b57, 0x9b58, 0x9b59, 0x9b5a, 0x9b5b, + 0x9b5c, 0x9b5d, 0x9b5e, 0x9b5f, 0x9b60, 0x9b61, 0x9b62, 0x9b63, + 0x9b64, 0x9b65, 0x9b66, 0x9b67, 0x9b68, 0x9b69, 0x9b6a, 0x9b6b, + 0x9b6c, 0x9b6d, 0x9b6e, 0x9b6f, 0x9b70, 0x9b71, 0x9b72, 0x9b73, + 0x9b74, 0x9b75, 0x9b76, 0x9b77, 0x9b78, 0x9b79, 0x9b7a, 0x9b7b, + /* 0xf5 */ + 0x9b7c, 0x9b7d, 0x9b7e, 0x9b7f, 0x9b80, 0x9b81, 0x9b82, 0x9b83, + 0x9b84, 0x9b85, 0x9b86, 0x9b87, 0x9b88, 0x9b89, 0x9b8a, 0x9b8b, + 0x9b8c, 0x9b8d, 0x9b8e, 0x9b8f, 0x9b90, 0x9b91, 0x9b92, 0x9b93, + 0x9b94, 0x9b95, 0x9b96, 0x9b97, 0x9b98, 0x9b99, 0x9b9a, 0x9b9b, + 0x9b9c, 0x9b9d, 0x9b9e, 0x9b9f, 0x9ba0, 0x9ba1, 0x9ba2, 0x9ba3, + 0x9ba4, 0x9ba5, 0x9ba6, 0x9ba7, 0x9ba8, 0x9ba9, 0x9baa, 0x9bab, + 0x9bac, 0x9bad, 0x9bae, 0x9baf, 0x9bb0, 0x9bb1, 0x9bb2, 0x9bb3, + 0x9bb4, 0x9bb5, 0x9bb6, 0x9bb7, 0x9bb8, 0x9bb9, 0x9bba, 0x9bbb, + 0x9bbc, 0x9bbd, 0x9bbe, 0x9bbf, 0x9bc0, 0x9bc1, 0x9bc2, 0x9bc3, + 0x9bc4, 0x9bc5, 0x9bc6, 0x9bc7, 0x9bc8, 0x9bc9, 0x9bca, 0x9bcb, + 0x9bcc, 0x9bcd, 0x9bce, 0x9bcf, 0x9bd0, 0x9bd1, 0x9bd2, 0x9bd3, + 0x9bd4, 0x9bd5, 0x9bd6, 0x9bd7, 0x9bd8, 0x9bd9, 0x9bda, 0x9bdb, + /* 0xf6 */ + 0x9bdc, 0x9bdd, 0x9bde, 0x9bdf, 0x9be0, 0x9be1, 0x9be2, 0x9be3, + 0x9be4, 0x9be5, 0x9be6, 0x9be7, 0x9be8, 0x9be9, 0x9bea, 0x9beb, + 0x9bec, 0x9bed, 0x9bee, 0x9bef, 0x9bf0, 0x9bf1, 0x9bf2, 0x9bf3, + 0x9bf4, 0x9bf5, 0x9bf6, 0x9bf7, 0x9bf8, 0x9bf9, 0x9bfa, 0x9bfb, + 0x9bfc, 0x9bfd, 0x9bfe, 0x9bff, 0x9c00, 0x9c01, 0x9c02, 0x9c03, + 0x9c04, 0x9c05, 0x9c06, 0x9c07, 0x9c08, 0x9c09, 0x9c0a, 0x9c0b, + 0x9c0c, 0x9c0d, 0x9c0e, 0x9c0f, 0x9c10, 0x9c11, 0x9c12, 0x9c13, + 0x9c14, 0x9c15, 0x9c16, 0x9c17, 0x9c18, 0x9c19, 0x9c1a, 0x9c1b, + 0x9c1c, 0x9c1d, 0x9c1e, 0x9c1f, 0x9c20, 0x9c21, 0x9c22, 0x9c23, + 0x9c24, 0x9c25, 0x9c26, 0x9c27, 0x9c28, 0x9c29, 0x9c2a, 0x9c2b, + 0x9c2c, 0x9c2d, 0x9c2e, 0x9c2f, 0x9c30, 0x9c31, 0x9c32, 0x9c33, + 0x9c34, 0x9c35, 0x9c36, 0x9c37, 0x9c38, 0x9c39, 0x9c3a, 0x9c3b, + /* 0xf7 */ + 0x9c3c, 0x9c3d, 0x9c3e, 0x9c3f, 0x9c40, 0x9c41, 0x9c42, 0x9c43, + 0x9c44, 0x9c45, 0x9c46, 0x9c47, 0x9c48, 0x9c49, 0x9c4a, 0x9c4b, + 0x9c4c, 0x9c4d, 0x9c4e, 0x9c4f, 0x9c50, 0x9c51, 0x9c52, 0x9c53, + 0x9c54, 0x9c55, 0x9c56, 0x9c57, 0x9c58, 0x9c59, 0x9c5a, 0x9c5b, + 0x9c5c, 0x9c5d, 0x9c5e, 0x9c5f, 0x9c60, 0x9c61, 0x9c62, 0x9c63, + 0x9c64, 0x9c65, 0x9c66, 0x9c67, 0x9c68, 0x9c69, 0x9c6a, 0x9c6b, + 0x9c6c, 0x9c6d, 0x9c6e, 0x9c6f, 0x9c70, 0x9c71, 0x9c72, 0x9c73, + 0x9c74, 0x9c75, 0x9c76, 0x9c77, 0x9c78, 0x9c79, 0x9c7a, 0x9c7b, + 0x9c7d, 0x9c7e, 0x9c80, 0x9c83, 0x9c84, 0x9c89, 0x9c8a, 0x9c8c, + 0x9c8f, 0x9c93, 0x9c96, 0x9c97, 0x9c98, 0x9c99, 0x9c9d, 0x9caa, + 0x9cac, 0x9caf, 0x9cb9, 0x9cbe, 0x9cbf, 0x9cc0, 0x9cc1, 0x9cc2, + 0x9cc8, 0x9cc9, 0x9cd1, 0x9cd2, 0x9cda, 0x9cdb, 0x9ce0, 0x9ce1, + /* 0xf8 */ + 0x9ce3, 0x9ce4, 0x9ce5, 0x9ce6, 0x9ce7, 0x9ce8, 0x9ce9, 0x9cea, + 0x9ceb, 0x9cec, 0x9ced, 0x9cee, 0x9cef, 0x9cf0, 0x9cf1, 0x9cf2, + 0x9cf3, 0x9cf4, 0x9cf5, 0x9cf6, 0x9cf7, 0x9cf8, 0x9cf9, 0x9cfa, + 0x9cfb, 0x9cfc, 0x9cfd, 0x9cfe, 0x9cff, 0x9d00, 0x9d01, 0x9d02, + 0x9d03, 0x9d04, 0x9d05, 0x9d06, 0x9d07, 0x9d08, 0x9d09, 0x9d0a, + 0x9d0b, 0x9d0c, 0x9d0d, 0x9d0e, 0x9d0f, 0x9d10, 0x9d11, 0x9d12, + 0x9d13, 0x9d14, 0x9d15, 0x9d16, 0x9d17, 0x9d18, 0x9d19, 0x9d1a, + 0x9d1b, 0x9d1c, 0x9d1d, 0x9d1e, 0x9d1f, 0x9d20, 0x9d21, 0x9d22, + 0x9d23, 0x9d24, 0x9d25, 0x9d26, 0x9d27, 0x9d28, 0x9d29, 0x9d2a, + 0x9d2b, 0x9d2c, 0x9d2d, 0x9d2e, 0x9d2f, 0x9d30, 0x9d31, 0x9d32, + 0x9d33, 0x9d34, 0x9d35, 0x9d36, 0x9d37, 0x9d38, 0x9d39, 0x9d3a, + 0x9d3b, 0x9d3c, 0x9d3d, 0x9d3e, 0x9d3f, 0x9d40, 0x9d41, 0x9d42, + /* 0xf9 */ + 0x9d43, 0x9d44, 0x9d45, 0x9d46, 0x9d47, 0x9d48, 0x9d49, 0x9d4a, + 0x9d4b, 0x9d4c, 0x9d4d, 0x9d4e, 0x9d4f, 0x9d50, 0x9d51, 0x9d52, + 0x9d53, 0x9d54, 0x9d55, 0x9d56, 0x9d57, 0x9d58, 0x9d59, 0x9d5a, + 0x9d5b, 0x9d5c, 0x9d5d, 0x9d5e, 0x9d5f, 0x9d60, 0x9d61, 0x9d62, + 0x9d63, 0x9d64, 0x9d65, 0x9d66, 0x9d67, 0x9d68, 0x9d69, 0x9d6a, + 0x9d6b, 0x9d6c, 0x9d6d, 0x9d6e, 0x9d6f, 0x9d70, 0x9d71, 0x9d72, + 0x9d73, 0x9d74, 0x9d75, 0x9d76, 0x9d77, 0x9d78, 0x9d79, 0x9d7a, + 0x9d7b, 0x9d7c, 0x9d7d, 0x9d7e, 0x9d7f, 0x9d80, 0x9d81, 0x9d82, + 0x9d83, 0x9d84, 0x9d85, 0x9d86, 0x9d87, 0x9d88, 0x9d89, 0x9d8a, + 0x9d8b, 0x9d8c, 0x9d8d, 0x9d8e, 0x9d8f, 0x9d90, 0x9d91, 0x9d92, + 0x9d93, 0x9d94, 0x9d95, 0x9d96, 0x9d97, 0x9d98, 0x9d99, 0x9d9a, + 0x9d9b, 0x9d9c, 0x9d9d, 0x9d9e, 0x9d9f, 0x9da0, 0x9da1, 0x9da2, + /* 0xfa */ + 0x9da3, 0x9da4, 0x9da5, 0x9da6, 0x9da7, 0x9da8, 0x9da9, 0x9daa, + 0x9dab, 0x9dac, 0x9dad, 0x9dae, 0x9daf, 0x9db0, 0x9db1, 0x9db2, + 0x9db3, 0x9db4, 0x9db5, 0x9db6, 0x9db7, 0x9db8, 0x9db9, 0x9dba, + 0x9dbb, 0x9dbc, 0x9dbd, 0x9dbe, 0x9dbf, 0x9dc0, 0x9dc1, 0x9dc2, + 0x9dc3, 0x9dc4, 0x9dc5, 0x9dc6, 0x9dc7, 0x9dc8, 0x9dc9, 0x9dca, + 0x9dcb, 0x9dcc, 0x9dcd, 0x9dce, 0x9dcf, 0x9dd0, 0x9dd1, 0x9dd2, + 0x9dd3, 0x9dd4, 0x9dd5, 0x9dd6, 0x9dd7, 0x9dd8, 0x9dd9, 0x9dda, + 0x9ddb, 0x9ddc, 0x9ddd, 0x9dde, 0x9ddf, 0x9de0, 0x9de1, 0x9de2, + 0x9de3, 0x9de4, 0x9de5, 0x9de6, 0x9de7, 0x9de8, 0x9de9, 0x9dea, + 0x9deb, 0x9dec, 0x9ded, 0x9dee, 0x9def, 0x9df0, 0x9df1, 0x9df2, + 0x9df3, 0x9df4, 0x9df5, 0x9df6, 0x9df7, 0x9df8, 0x9df9, 0x9dfa, + 0x9dfb, 0x9dfc, 0x9dfd, 0x9dfe, 0x9dff, 0x9e00, 0x9e01, 0x9e02, + /* 0xfb */ + 0x9e03, 0x9e04, 0x9e05, 0x9e06, 0x9e07, 0x9e08, 0x9e09, 0x9e0a, + 0x9e0b, 0x9e0c, 0x9e0d, 0x9e0e, 0x9e0f, 0x9e10, 0x9e11, 0x9e12, + 0x9e13, 0x9e14, 0x9e15, 0x9e16, 0x9e17, 0x9e18, 0x9e19, 0x9e1a, + 0x9e1b, 0x9e1c, 0x9e1d, 0x9e1e, 0x9e24, 0x9e27, 0x9e2e, 0x9e30, + 0x9e34, 0x9e3b, 0x9e3c, 0x9e40, 0x9e4d, 0x9e50, 0x9e52, 0x9e53, + 0x9e54, 0x9e56, 0x9e59, 0x9e5d, 0x9e5f, 0x9e60, 0x9e61, 0x9e62, + 0x9e65, 0x9e6e, 0x9e6f, 0x9e72, 0x9e74, 0x9e75, 0x9e76, 0x9e77, + 0x9e78, 0x9e79, 0x9e7a, 0x9e7b, 0x9e7c, 0x9e7d, 0x9e80, 0x9e81, + 0x9e83, 0x9e84, 0x9e85, 0x9e86, 0x9e89, 0x9e8a, 0x9e8c, 0x9e8d, + 0x9e8e, 0x9e8f, 0x9e90, 0x9e91, 0x9e94, 0x9e95, 0x9e96, 0x9e97, + 0x9e98, 0x9e99, 0x9e9a, 0x9e9b, 0x9e9c, 0x9e9e, 0x9ea0, 0x9ea1, + 0x9ea2, 0x9ea3, 0x9ea4, 0x9ea5, 0x9ea7, 0x9ea8, 0x9ea9, 0x9eaa, + /* 0xfc */ + 0x9eab, 0x9eac, 0x9ead, 0x9eae, 0x9eaf, 0x9eb0, 0x9eb1, 0x9eb2, + 0x9eb3, 0x9eb5, 0x9eb6, 0x9eb7, 0x9eb9, 0x9eba, 0x9ebc, 0x9ebf, + 0x9ec0, 0x9ec1, 0x9ec2, 0x9ec3, 0x9ec5, 0x9ec6, 0x9ec7, 0x9ec8, + 0x9eca, 0x9ecb, 0x9ecc, 0x9ed0, 0x9ed2, 0x9ed3, 0x9ed5, 0x9ed6, + 0x9ed7, 0x9ed9, 0x9eda, 0x9ede, 0x9ee1, 0x9ee3, 0x9ee4, 0x9ee6, + 0x9ee8, 0x9eeb, 0x9eec, 0x9eed, 0x9eee, 0x9ef0, 0x9ef1, 0x9ef2, + 0x9ef3, 0x9ef4, 0x9ef5, 0x9ef6, 0x9ef7, 0x9ef8, 0x9efa, 0x9efd, + 0x9eff, 0x9f00, 0x9f01, 0x9f02, 0x9f03, 0x9f04, 0x9f05, 0x9f06, + 0x9f07, 0x9f08, 0x9f09, 0x9f0a, 0x9f0c, 0x9f0f, 0x9f11, 0x9f12, + 0x9f14, 0x9f15, 0x9f16, 0x9f18, 0x9f1a, 0x9f1b, 0x9f1c, 0x9f1d, + 0x9f1e, 0x9f1f, 0x9f21, 0x9f23, 0x9f24, 0x9f25, 0x9f26, 0x9f27, + 0x9f28, 0x9f29, 0x9f2a, 0x9f2b, 0x9f2d, 0x9f2e, 0x9f30, 0x9f31, + /* 0xfd */ + 0x9f32, 0x9f33, 0x9f34, 0x9f35, 0x9f36, 0x9f38, 0x9f3a, 0x9f3c, + 0x9f3f, 0x9f40, 0x9f41, 0x9f42, 0x9f43, 0x9f45, 0x9f46, 0x9f47, + 0x9f48, 0x9f49, 0x9f4a, 0x9f4b, 0x9f4c, 0x9f4d, 0x9f4e, 0x9f4f, + 0x9f52, 0x9f53, 0x9f54, 0x9f55, 0x9f56, 0x9f57, 0x9f58, 0x9f59, + 0x9f5a, 0x9f5b, 0x9f5c, 0x9f5d, 0x9f5e, 0x9f5f, 0x9f60, 0x9f61, + 0x9f62, 0x9f63, 0x9f64, 0x9f65, 0x9f66, 0x9f67, 0x9f68, 0x9f69, + 0x9f6a, 0x9f6b, 0x9f6c, 0x9f6d, 0x9f6e, 0x9f6f, 0x9f70, 0x9f71, + 0x9f72, 0x9f73, 0x9f74, 0x9f75, 0x9f76, 0x9f77, 0x9f78, 0x9f79, + 0x9f7a, 0x9f7b, 0x9f7c, 0x9f7d, 0x9f7e, 0x9f81, 0x9f82, 0x9f8d, + 0x9f8e, 0x9f8f, 0x9f90, 0x9f91, 0x9f92, 0x9f93, 0x9f94, 0x9f95, + 0x9f96, 0x9f97, 0x9f98, 0x9f9c, 0x9f9d, 0x9f9e, 0x9fa1, 0x9fa2, + 0x9fa3, 0x9fa4, 0x9fa5, 0xf92c, 0xf979, 0xf995, 0xf9e7, 0xf9f1, + /* 0xfe */ + 0xfa0c, 0xfa0d, 0xfa0e, 0xfa0f, 0xfa11, 0xfa13, 0xfa14, 0xfa18, + 0xfa1f, 0xfa20, 0xfa21, 0xfa23, 0xfa24, 0xfa27, 0xfa28, 0xfa29, +}; + +static int +gbkext2_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 >= 0xa8 && c1 <= 0xfe)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0x80 && c2 < 0xa1)) { + unsigned int i = 96 * (c1 - 0x81) + (c2 - (c2 >= 0x80 ? 0x41 : 0x40)); + unsigned short wc = 0xfffd; + { + if (i < 12016) + wc = gbkext2_2uni_pagea8[i-3744]; + } + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + diff --git a/graf2d/win32gdk/gdk/src/iconv/gbkext_inv.h b/graf2d/win32gdk/gdk/src/iconv/gbkext_inv.h new file mode 100644 index 00000000000..45f57d9b762 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/gbkext_inv.h @@ -0,0 +1,2343 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * GBK extensions + */ + +static const unsigned short gbkext_inv_2charset[14313] = { + 0xa840, 0xa841, 0xa842, 0xa95c, 0xa843, 0xa844, 0xa845, 0xa846, + 0xa847, 0xa848, 0xa959, 0xa849, 0xa84a, 0xa84b, 0xa84c, 0xa84d, + 0xa84e, 0xa84f, 0xa850, 0xa851, 0xa852, 0xa892, 0xa853, 0xa854, + 0xa855, 0xa856, 0xa857, 0xa858, 0xa859, 0xa85a, 0xa85b, 0xa85c, + 0xa85d, 0xa85e, 0xa85f, 0xa860, 0xa861, 0xa862, 0xa863, 0xa864, + 0xa865, 0xa866, 0xa867, 0xa868, 0xa869, 0xa86a, 0xa86b, 0xa86c, + 0xa86d, 0xa86e, 0xa86f, 0xa870, 0xa871, 0xa872, 0xa873, 0xa874, + 0xa875, 0xa876, 0xa877, 0xa878, 0xa879, 0xa87a, 0xa87b, 0xa87c, + 0xa87d, 0xa87e, 0xa880, 0xa881, 0xa882, 0xa883, 0xa884, 0xa885, + 0xa886, 0xa887, 0xa888, 0xa889, 0xa88a, 0xa88b, 0xa88c, 0xa88d, + 0xa88e, 0xa88f, 0xa890, 0xa891, 0xa965, 0xa996, 0xa893, 0xa894, + 0xa895, 0xa940, 0xa941, 0xa942, 0xa943, 0xa944, 0xa945, 0xa946, + 0xa947, 0xa948, 0xa961, 0xa962, 0xa966, 0xa967, 0xa960, 0xa963, + 0xa964, 0xa95a, 0xa949, 0xa94a, 0xa94b, 0xa94c, 0xa94d, 0xa94e, + 0xa94f, 0xa950, 0xa951, 0xa952, 0xa953, 0xa954, 0x8140, 0x8141, + 0x8142, 0x8143, 0x8144, 0x8145, 0x8146, 0x8147, 0x8148, 0x8149, + 0x814a, 0x814b, 0x814c, 0x814d, 0x814e, 0x814f, 0x8150, 0x8151, + 0x8152, 0x8153, 0x8154, 0x8155, 0x8156, 0x8157, 0x8158, 0x8159, + 0x815a, 0x815b, 0x815c, 0x815d, 0x815e, 0x815f, 0x8160, 0x8161, + 0x8162, 0x8163, 0x8164, 0x8165, 0x8166, 0x8167, 0x8168, 0x8169, + 0x816a, 0x816b, 0x816c, 0x816d, 0x816e, 0x816f, 0x8170, 0x8171, + 0x8172, 0x8173, 0x8174, 0x8175, 0x8176, 0x8177, 0x8178, 0x8179, + 0x817a, 0x817b, 0x817c, 0x817d, 0x817e, 0x8180, 0x8181, 0x8182, + 0x8183, 0x8184, 0x8185, 0x8186, 0x8187, 0x8188, 0x8189, 0x818a, + 0x818b, 0x818c, 0x818d, 0x818e, 0x818f, 0x8190, 0x8191, 0x8192, + 0x8193, 0x8194, 0x8195, 0x8196, 0x8197, 0x8198, 0x8199, 0x819a, + 0x819b, 0x819c, 0x819d, 0x819e, 0x819f, 0x81a0, 0x81a1, 0x81a2, + 0x81a3, 0x81a4, 0x81a5, 0x81a6, 0x81a7, 0x81a8, 0x81a9, 0x81aa, + 0x81ab, 0x81ac, 0x81ad, 0x81ae, 0x81af, 0x81b0, 0x81b1, 0x81b2, + 0x81b3, 0x81b4, 0x81b5, 0x81b6, 0x81b7, 0x81b8, 0x81b9, 0x81ba, + 0x81bb, 0x81bc, 0x81bd, 0x81be, 0x81bf, 0x81c0, 0x81c1, 0x81c2, + 0x81c3, 0x81c4, 0x81c5, 0x81c6, 0x81c7, 0x81c8, 0x81c9, 0x81ca, + 0x81cb, 0x81cc, 0x81cd, 0x81ce, 0x81cf, 0x81d0, 0x81d1, 0x81d2, + 0x81d3, 0x81d4, 0x81d5, 0x81d6, 0x81d7, 0x81d8, 0x81d9, 0x81da, + 0x81db, 0x81dc, 0x81dd, 0x81de, 0x81df, 0x81e0, 0x81e1, 0x81e2, + 0x81e3, 0x81e4, 0x81e5, 0x81e6, 0x81e7, 0x81e8, 0x81e9, 0x81ea, + 0x81eb, 0x81ec, 0x81ed, 0x81ee, 0x81ef, 0x81f0, 0x81f1, 0x81f2, + 0x81f3, 0x81f4, 0x81f5, 0x81f6, 0x81f7, 0x81f8, 0x81f9, 0x81fa, + 0x81fb, 0x81fc, 0x81fd, 0x81fe, 0x8240, 0x8241, 0x8242, 0x8243, + 0x8244, 0x8245, 0x8246, 0x8247, 0x8248, 0x8249, 0x824a, 0x824b, + 0x824c, 0x824d, 0x824e, 0x824f, 0x8250, 0x8251, 0x8252, 0x8253, + 0x8254, 0x8255, 0x8256, 0x8257, 0x8258, 0x8259, 0x825a, 0x825b, + 0x825c, 0x825d, 0x825e, 0x825f, 0x8260, 0x8261, 0x8262, 0x8263, + 0x8264, 0x8265, 0x8266, 0x8267, 0x8268, 0x8269, 0x826a, 0x826b, + 0x826c, 0x826d, 0x826e, 0x826f, 0x8270, 0x8271, 0x8272, 0x8273, + 0x8274, 0x8275, 0x8276, 0x8277, 0x8278, 0x8279, 0x827a, 0x827b, + 0x827c, 0x827d, 0x827e, 0x8280, 0x8281, 0x8282, 0x8283, 0x8284, + 0x8285, 0x8286, 0x8287, 0x8288, 0x8289, 0x828a, 0x828b, 0x828c, + 0x828d, 0x828e, 0x828f, 0x8290, 0x8291, 0x8292, 0x8293, 0x8294, + 0x8295, 0x8296, 0x8297, 0x8298, 0x8299, 0x829a, 0x829b, 0x829c, + 0x829d, 0x829e, 0x829f, 0x82a0, 0x82a1, 0x82a2, 0x82a3, 0x82a4, + 0x82a5, 0x82a6, 0x82a7, 0x82a8, 0x82a9, 0x82aa, 0x82ab, 0x82ac, + 0x82ad, 0x82ae, 0x82af, 0x82b0, 0x82b1, 0x82b2, 0x82b3, 0x82b4, + 0x82b5, 0x82b6, 0x82b7, 0x82b8, 0x82b9, 0x82ba, 0x82bb, 0x82bc, + 0x82bd, 0x82be, 0x82bf, 0x82c0, 0x82c1, 0x82c2, 0x82c3, 0x82c4, + 0x82c5, 0x82c6, 0x82c7, 0x82c8, 0x82c9, 0x82ca, 0x82cb, 0x82cc, + 0x82cd, 0x82ce, 0x82cf, 0x82d0, 0x82d1, 0x82d2, 0x82d3, 0x82d4, + 0x82d5, 0x82d6, 0x82d7, 0x82d8, 0x82d9, 0x82da, 0x82db, 0x82dc, + 0x82dd, 0x82de, 0x82df, 0x82e0, 0x82e1, 0x82e2, 0x82e3, 0x82e4, + 0x82e5, 0x82e6, 0x82e7, 0x82e8, 0x82e9, 0x82ea, 0x82eb, 0x82ec, + 0x82ed, 0x82ee, 0x82ef, 0x82f0, 0x82f1, 0x82f2, 0x82f3, 0x82f4, + 0x82f5, 0x82f6, 0x82f7, 0x82f8, 0x82f9, 0x82fa, 0x82fb, 0x82fc, + 0x82fd, 0x82fe, 0x8340, 0x8341, 0x8342, 0x8343, 0x8344, 0x8345, + 0x8346, 0x8347, 0x8348, 0x8349, 0x834a, 0x834b, 0x834c, 0x834d, + 0x834e, 0x834f, 0x8350, 0x8351, 0x8352, 0x8353, 0x8354, 0x8355, + 0x8356, 0x8357, 0x8358, 0x8359, 0x835a, 0x835b, 0x835c, 0x835d, + 0x835e, 0x835f, 0x8360, 0x8361, 0x8362, 0x8363, 0x8364, 0x8365, + 0x8366, 0x8367, 0x8368, 0x8369, 0x836a, 0x836b, 0x836c, 0x836d, + 0x836e, 0x836f, 0x8370, 0x8371, 0x8372, 0x8373, 0x8374, 0x8375, + 0x8376, 0x8377, 0x8378, 0x8379, 0x837a, 0x837b, 0x837c, 0x837d, + 0x837e, 0x8380, 0x8381, 0x8382, 0x8383, 0x8384, 0x8385, 0x8386, + 0x8387, 0x8388, 0x8389, 0x838a, 0x838b, 0x838c, 0x838d, 0x838e, + 0x838f, 0x8390, 0x8391, 0x8392, 0x8393, 0x8394, 0x8395, 0x8396, + 0x8397, 0x8398, 0x8399, 0x839a, 0x839b, 0x839c, 0x839d, 0x839e, + 0x839f, 0x83a0, 0x83a1, 0x83a2, 0x83a3, 0x83a4, 0x83a5, 0x83a6, + 0x83a7, 0x83a8, 0x83a9, 0x83aa, 0x83ab, 0x83ac, 0x83ad, 0x83ae, + 0x83af, 0x83b0, 0x83b1, 0x83b2, 0x83b3, 0x83b4, 0x83b5, 0x83b6, + 0x83b7, 0x83b8, 0x83b9, 0x83ba, 0x83bb, 0x83bc, 0x83bd, 0x83be, + 0x83bf, 0x83c0, 0x83c1, 0x83c2, 0x83c3, 0x83c4, 0x83c5, 0x83c6, + 0x83c7, 0x83c8, 0x83c9, 0x83ca, 0x83cb, 0x83cc, 0x83cd, 0x83ce, + 0x83cf, 0x83d0, 0x83d1, 0x83d2, 0x83d3, 0x83d4, 0x83d5, 0x83d6, + 0x83d7, 0x83d8, 0x83d9, 0x83da, 0x83db, 0x83dc, 0x83dd, 0x83de, + 0x83df, 0x83e0, 0x83e1, 0x83e2, 0x83e3, 0x83e4, 0x83e5, 0x83e6, + 0x83e7, 0x83e8, 0x83e9, 0x83ea, 0x83eb, 0x83ec, 0x83ed, 0x83ee, + 0x83ef, 0x83f0, 0x83f1, 0x83f2, 0x83f3, 0x83f4, 0x83f5, 0x83f6, + 0x83f7, 0x83f8, 0x83f9, 0x83fa, 0x83fb, 0x83fc, 0x83fd, 0x83fe, + 0x8440, 0x8441, 0x8442, 0x8443, 0x8444, 0x8445, 0x8446, 0x8447, + 0x8448, 0x8449, 0x844a, 0x844b, 0x844c, 0x844d, 0x844e, 0x844f, + 0x8450, 0x8451, 0x8452, 0x8453, 0x8454, 0x8455, 0x8456, 0x8457, + 0x8458, 0x8459, 0x845a, 0x845b, 0x845c, 0x845d, 0x845e, 0x845f, + 0x8460, 0x8461, 0x8462, 0x8463, 0x8464, 0x8465, 0x8466, 0x8467, + 0x8468, 0x8469, 0x846a, 0x846b, 0x846c, 0x846d, 0x846e, 0x846f, + 0x8470, 0x8471, 0x8472, 0x8473, 0x8474, 0x8475, 0x8476, 0x8477, + 0x8478, 0x8479, 0x847a, 0x847b, 0x847c, 0x847d, 0x847e, 0x8480, + 0x8481, 0x8482, 0x8483, 0x8484, 0x8485, 0x8486, 0x8487, 0x8488, + 0x8489, 0x848a, 0x848b, 0x848c, 0x848d, 0x848e, 0x848f, 0x8490, + 0x8491, 0x8492, 0x8493, 0x8494, 0x8495, 0x8496, 0x8497, 0x8498, + 0x8499, 0x849a, 0x849b, 0x849c, 0x849d, 0x849e, 0x849f, 0x84a0, + 0x84a1, 0x84a2, 0x84a3, 0x84a4, 0x84a5, 0x84a6, 0x84a7, 0x84a8, + 0x84a9, 0x84aa, 0x84ab, 0x84ac, 0x84ad, 0x84ae, 0x84af, 0x84b0, + 0x84b1, 0x84b2, 0x84b3, 0x84b4, 0x84b5, 0x84b6, 0x84b7, 0x84b8, + 0x84b9, 0x84ba, 0x84bb, 0x84bc, 0x84bd, 0x84be, 0x84bf, 0x84c0, + 0x84c1, 0x84c2, 0x84c3, 0x84c4, 0x84c5, 0x84c6, 0x84c7, 0x84c8, + 0x84c9, 0x84ca, 0x84cb, 0x84cc, 0x84cd, 0x84ce, 0x84cf, 0x84d0, + 0x84d1, 0x84d2, 0x84d3, 0x84d4, 0x84d5, 0x84d6, 0x84d7, 0x84d8, + 0x84d9, 0x84da, 0x84db, 0x84dc, 0x84dd, 0x84de, 0x84df, 0x84e0, + 0x84e1, 0x84e2, 0x84e3, 0x84e4, 0x84e5, 0x84e6, 0x84e7, 0x84e8, + 0x84e9, 0x84ea, 0x84eb, 0x84ec, 0x84ed, 0x84ee, 0x84ef, 0x84f0, + 0x84f1, 0x84f2, 0x84f3, 0x84f4, 0x84f5, 0x84f6, 0x84f7, 0x84f8, + 0x84f9, 0x84fa, 0x84fb, 0x84fc, 0x84fd, 0x84fe, 0x8540, 0x8541, + 0x8542, 0x8543, 0x8544, 0x8545, 0x8546, 0x8547, 0x8548, 0x8549, + 0x854a, 0x854b, 0x854c, 0x854d, 0x854e, 0x854f, 0x8550, 0x8551, + 0x8552, 0x8553, 0x8554, 0x8555, 0x8556, 0x8557, 0x8558, 0x8559, + 0x855a, 0x855b, 0x855c, 0x855d, 0x855e, 0x855f, 0x8560, 0x8561, + 0x8562, 0x8563, 0x8564, 0x8565, 0x8566, 0x8567, 0x8568, 0x8569, + 0x856a, 0x856b, 0x856c, 0x856d, 0x856e, 0x856f, 0x8570, 0x8571, + 0x8572, 0x8573, 0x8574, 0x8575, 0x8576, 0x8577, 0x8578, 0x8579, + 0x857a, 0x857b, 0x857c, 0x857d, 0x857e, 0x8580, 0x8581, 0x8582, + 0x8583, 0x8584, 0x8585, 0x8586, 0x8587, 0x8588, 0x8589, 0x858a, + 0x858b, 0x858c, 0x858d, 0x858e, 0x858f, 0x8590, 0x8591, 0x8592, + 0x8593, 0x8594, 0x8595, 0x8596, 0x8597, 0x8598, 0x8599, 0x859a, + 0x859b, 0x859c, 0x859d, 0x859e, 0x859f, 0x85a0, 0x85a1, 0x85a2, + 0x85a3, 0x85a4, 0x85a5, 0x85a6, 0x85a7, 0x85a8, 0x85a9, 0x85aa, + 0x85ab, 0x85ac, 0x85ad, 0x85ae, 0x85af, 0x85b0, 0x85b1, 0x85b2, + 0x85b3, 0x85b4, 0x85b5, 0x85b6, 0x85b7, 0x85b8, 0x85b9, 0x85ba, + 0x85bb, 0x85bc, 0x85bd, 0x85be, 0x85bf, 0x85c0, 0x85c1, 0x85c2, + 0x85c3, 0x85c4, 0x85c5, 0x85c6, 0x85c7, 0x85c8, 0x85c9, 0x85ca, + 0x85cb, 0x85cc, 0x85cd, 0x85ce, 0x85cf, 0x85d0, 0x85d1, 0x85d2, + 0x85d3, 0x85d4, 0x85d5, 0x85d6, 0x85d7, 0x85d8, 0x85d9, 0x85da, + 0x85db, 0x85dc, 0x85dd, 0x85de, 0x85df, 0x85e0, 0x85e1, 0x85e2, + 0x85e3, 0x85e4, 0x85e5, 0x85e6, 0x85e7, 0x85e8, 0x85e9, 0x85ea, + 0x85eb, 0x85ec, 0x85ed, 0x85ee, 0x85ef, 0x85f0, 0x85f1, 0x85f2, + 0x85f3, 0x85f4, 0x85f5, 0x85f6, 0x85f7, 0x85f8, 0x85f9, 0x85fa, + 0x85fb, 0x85fc, 0x85fd, 0x85fe, 0x8640, 0x8641, 0x8642, 0x8643, + 0x8644, 0x8645, 0x8646, 0x8647, 0x8648, 0x8649, 0x864a, 0x864b, + 0x864c, 0x864d, 0x864e, 0x864f, 0x8650, 0x8651, 0x8652, 0x8653, + 0x8654, 0x8655, 0x8656, 0x8657, 0x8658, 0x8659, 0x865a, 0x865b, + 0x865c, 0x865d, 0x865e, 0x865f, 0x8660, 0x8661, 0x8662, 0x8663, + 0x8664, 0x8665, 0x8666, 0x8667, 0x8668, 0x8669, 0x866a, 0x866b, + 0x866c, 0x866d, 0x866e, 0x866f, 0x8670, 0x8671, 0x8672, 0x8673, + 0x8674, 0x8675, 0x8676, 0x8677, 0x8678, 0x8679, 0x867a, 0x867b, + 0x867c, 0x867d, 0x867e, 0x8680, 0x8681, 0x8682, 0x8683, 0x8684, + 0x8685, 0x8686, 0x8687, 0x8688, 0x8689, 0x868a, 0x868b, 0x868c, + 0x868d, 0x868e, 0x868f, 0x8690, 0x8691, 0x8692, 0x8693, 0x8694, + 0x8695, 0x8696, 0x8697, 0x8698, 0x8699, 0x869a, 0x869b, 0x869c, + 0x869d, 0x869e, 0x869f, 0x86a0, 0x86a1, 0x86a2, 0x86a3, 0x86a4, + 0x86a5, 0x86a6, 0x86a7, 0x86a8, 0x86a9, 0x86aa, 0x86ab, 0x86ac, + 0x86ad, 0x86ae, 0x86af, 0x86b0, 0x86b1, 0x86b2, 0x86b3, 0x86b4, + 0x86b5, 0x86b6, 0x86b7, 0x86b8, 0x86b9, 0x86ba, 0x86bb, 0x86bc, + 0x86bd, 0x86be, 0x86bf, 0x86c0, 0x86c1, 0x86c2, 0x86c3, 0x86c4, + 0x86c5, 0x86c6, 0x86c7, 0x86c8, 0x86c9, 0x86ca, 0x86cb, 0x86cc, + 0x86cd, 0x86ce, 0x86cf, 0x86d0, 0x86d1, 0x86d2, 0x86d3, 0x86d4, + 0x86d5, 0x86d6, 0x86d7, 0x86d8, 0x86d9, 0x86da, 0x86db, 0x86dc, + 0x86dd, 0x86de, 0x86df, 0x86e0, 0x86e1, 0x86e2, 0x86e3, 0x86e4, + 0x86e5, 0x86e6, 0x86e7, 0x86e8, 0x86e9, 0x86ea, 0x86eb, 0x86ec, + 0x86ed, 0x86ee, 0x86ef, 0x86f0, 0x86f1, 0x86f2, 0x86f3, 0x86f4, + 0x86f5, 0x86f6, 0x86f7, 0x86f8, 0x86f9, 0x86fa, 0x86fb, 0x86fc, + 0x86fd, 0x86fe, 0x8740, 0x8741, 0x8742, 0x8743, 0x8744, 0x8745, + 0x8746, 0x8747, 0x8748, 0x8749, 0x874a, 0x874b, 0x874c, 0x874d, + 0x874e, 0x874f, 0x8750, 0x8751, 0x8752, 0x8753, 0x8754, 0x8755, + 0x8756, 0x8757, 0x8758, 0x8759, 0x875a, 0x875b, 0x875c, 0x875d, + 0x875e, 0x875f, 0x8760, 0x8761, 0x8762, 0x8763, 0x8764, 0x8765, + 0x8766, 0x8767, 0x8768, 0x8769, 0x876a, 0x876b, 0x876c, 0x876d, + 0x876e, 0x876f, 0x8770, 0x8771, 0x8772, 0x8773, 0x8774, 0x8775, + 0x8776, 0x8777, 0x8778, 0x8779, 0x877a, 0x877b, 0x877c, 0x877d, + 0x877e, 0x8780, 0x8781, 0x8782, 0x8783, 0x8784, 0x8785, 0x8786, + 0x8787, 0x8788, 0x8789, 0x878a, 0x878b, 0x878c, 0x878d, 0x878e, + 0x878f, 0x8790, 0x8791, 0x8792, 0x8793, 0x8794, 0x8795, 0x8796, + 0x8797, 0x8798, 0x8799, 0x879a, 0x879b, 0x879c, 0x879d, 0x879e, + 0x879f, 0x87a0, 0x87a1, 0x87a2, 0x87a3, 0x87a4, 0x87a5, 0x87a6, + 0x87a7, 0x87a8, 0x87a9, 0x87aa, 0x87ab, 0x87ac, 0x87ad, 0x87ae, + 0x87af, 0x87b0, 0x87b1, 0x87b2, 0x87b3, 0x87b4, 0x87b5, 0x87b6, + 0x87b7, 0x87b8, 0x87b9, 0x87ba, 0x87bb, 0x87bc, 0x87bd, 0x87be, + 0x87bf, 0x87c0, 0x87c1, 0x87c2, 0x87c3, 0x87c4, 0x87c5, 0x87c6, + 0x87c7, 0x87c8, 0x87c9, 0x87ca, 0x87cb, 0x87cc, 0x87cd, 0x87ce, + 0x87cf, 0x87d0, 0x87d1, 0x87d2, 0x87d3, 0x87d4, 0x87d5, 0x87d6, + 0x87d7, 0x87d8, 0x87d9, 0x87da, 0x87db, 0x87dc, 0x87dd, 0x87de, + 0x87df, 0x87e0, 0x87e1, 0x87e2, 0x87e3, 0x87e4, 0x87e5, 0x87e6, + 0x87e7, 0x87e8, 0x87e9, 0x87ea, 0x87eb, 0x87ec, 0x87ed, 0x87ee, + 0x87ef, 0x87f0, 0x87f1, 0x87f2, 0x87f3, 0x87f4, 0x87f5, 0x87f6, + 0x87f7, 0x87f8, 0x87f9, 0x87fa, 0x87fb, 0x87fc, 0x87fd, 0x87fe, + 0x8840, 0x8841, 0x8842, 0x8843, 0x8844, 0x8845, 0x8846, 0x8847, + 0x8848, 0x8849, 0x884a, 0x884b, 0x884c, 0x884d, 0x884e, 0x884f, + 0x8850, 0x8851, 0x8852, 0x8853, 0x8854, 0x8855, 0x8856, 0x8857, + 0x8858, 0x8859, 0x885a, 0x885b, 0x885c, 0x885d, 0x885e, 0x885f, + 0x8860, 0x8861, 0x8862, 0x8863, 0x8864, 0x8865, 0x8866, 0x8867, + 0x8868, 0x8869, 0x886a, 0x886b, 0x886c, 0x886d, 0x886e, 0x886f, + 0x8870, 0x8871, 0x8872, 0x8873, 0x8874, 0x8875, 0x8876, 0x8877, + 0x8878, 0x8879, 0x887a, 0x887b, 0x887c, 0x887d, 0x887e, 0x8880, + 0x8881, 0x8882, 0x8883, 0x8884, 0x8885, 0x8886, 0x8887, 0x8888, + 0x8889, 0x888a, 0x888b, 0x888c, 0x888d, 0x888e, 0x888f, 0x8890, + 0x8891, 0x8892, 0x8893, 0x8894, 0x8895, 0x8896, 0x8897, 0x8898, + 0x8899, 0x889a, 0x889b, 0x889c, 0x889d, 0x889e, 0x889f, 0x88a0, + 0x88a1, 0x88a2, 0x88a3, 0x88a4, 0x88a5, 0x88a6, 0x88a7, 0x88a8, + 0x88a9, 0x88aa, 0x88ab, 0x88ac, 0x88ad, 0x88ae, 0x88af, 0x88b0, + 0x88b1, 0x88b2, 0x88b3, 0x88b4, 0x88b5, 0x88b6, 0x88b7, 0x88b8, + 0x88b9, 0x88ba, 0x88bb, 0x88bc, 0x88bd, 0x88be, 0x88bf, 0x88c0, + 0x88c1, 0x88c2, 0x88c3, 0x88c4, 0x88c5, 0x88c6, 0x88c7, 0x88c8, + 0x88c9, 0x88ca, 0x88cb, 0x88cc, 0x88cd, 0x88ce, 0x88cf, 0x88d0, + 0x88d1, 0x88d2, 0x88d3, 0x88d4, 0x88d5, 0x88d6, 0x88d7, 0x88d8, + 0x88d9, 0x88da, 0x88db, 0x88dc, 0x88dd, 0x88de, 0x88df, 0x88e0, + 0x88e1, 0x88e2, 0x88e3, 0x88e4, 0x88e5, 0x88e6, 0x88e7, 0x88e8, + 0x88e9, 0x88ea, 0x88eb, 0x88ec, 0x88ed, 0x88ee, 0x88ef, 0x88f0, + 0x88f1, 0x88f2, 0x88f3, 0x88f4, 0x88f5, 0x88f6, 0x88f7, 0x88f8, + 0x88f9, 0x88fa, 0x88fb, 0x88fc, 0x88fd, 0x88fe, 0x8940, 0x8941, + 0x8942, 0x8943, 0x8944, 0x8945, 0x8946, 0x8947, 0x8948, 0x8949, + 0x894a, 0x894b, 0x894c, 0x894d, 0x894e, 0x894f, 0x8950, 0x8951, + 0x8952, 0x8953, 0x8954, 0x8955, 0x8956, 0x8957, 0x8958, 0x8959, + 0x895a, 0x895b, 0x895c, 0x895d, 0x895e, 0x895f, 0x8960, 0x8961, + 0x8962, 0x8963, 0x8964, 0x8965, 0x8966, 0x8967, 0x8968, 0x8969, + 0x896a, 0x896b, 0x896c, 0x896d, 0x896e, 0x896f, 0x8970, 0x8971, + 0x8972, 0x8973, 0x8974, 0x8975, 0x8976, 0x8977, 0x8978, 0x8979, + 0x897a, 0x897b, 0x897c, 0x897d, 0x897e, 0x8980, 0x8981, 0x8982, + 0x8983, 0x8984, 0x8985, 0x8986, 0x8987, 0x8988, 0x8989, 0x898a, + 0x898b, 0x898c, 0x898d, 0x898e, 0x898f, 0x8990, 0x8991, 0x8992, + 0x8993, 0x8994, 0x8995, 0x8996, 0x8997, 0x8998, 0x8999, 0x899a, + 0x899b, 0x899c, 0x899d, 0x899e, 0x899f, 0x89a0, 0x89a1, 0x89a2, + 0x89a3, 0x89a4, 0x89a5, 0x89a6, 0x89a7, 0x89a8, 0x89a9, 0x89aa, + 0x89ab, 0x89ac, 0x89ad, 0x89ae, 0x89af, 0x89b0, 0x89b1, 0x89b2, + 0x89b3, 0x89b4, 0x89b5, 0x89b6, 0x89b7, 0x89b8, 0x89b9, 0x89ba, + 0x89bb, 0x89bc, 0x89bd, 0x89be, 0x89bf, 0x89c0, 0x89c1, 0x89c2, + 0x89c3, 0x89c4, 0x89c5, 0x89c6, 0x89c7, 0x89c8, 0x89c9, 0x89ca, + 0x89cb, 0x89cc, 0x89cd, 0x89ce, 0x89cf, 0x89d0, 0x89d1, 0x89d2, + 0x89d3, 0x89d4, 0x89d5, 0x89d6, 0x89d7, 0x89d8, 0x89d9, 0x89da, + 0x89db, 0x89dc, 0x89dd, 0x89de, 0x89df, 0x89e0, 0x89e1, 0x89e2, + 0x89e3, 0x89e4, 0x89e5, 0x89e6, 0x89e7, 0x89e8, 0x89e9, 0x89ea, + 0x89eb, 0x89ec, 0x89ed, 0x89ee, 0x89ef, 0x89f0, 0x89f1, 0x89f2, + 0x89f3, 0x89f4, 0x89f5, 0x89f6, 0x89f7, 0x89f8, 0x89f9, 0x89fa, + 0x89fb, 0x89fc, 0x89fd, 0x89fe, 0x8a40, 0x8a41, 0x8a42, 0x8a43, + 0x8a44, 0x8a45, 0x8a46, 0x8a47, 0x8a48, 0x8a49, 0x8a4a, 0x8a4b, + 0x8a4c, 0x8a4d, 0x8a4e, 0x8a4f, 0x8a50, 0x8a51, 0x8a52, 0x8a53, + 0x8a54, 0x8a55, 0x8a56, 0x8a57, 0x8a58, 0x8a59, 0x8a5a, 0x8a5b, + 0x8a5c, 0x8a5d, 0x8a5e, 0x8a5f, 0x8a60, 0x8a61, 0x8a62, 0x8a63, + 0x8a64, 0x8a65, 0x8a66, 0x8a67, 0x8a68, 0x8a69, 0x8a6a, 0x8a6b, + 0x8a6c, 0x8a6d, 0x8a6e, 0x8a6f, 0x8a70, 0x8a71, 0x8a72, 0x8a73, + 0x8a74, 0x8a75, 0x8a76, 0x8a77, 0x8a78, 0x8a79, 0x8a7a, 0x8a7b, + 0x8a7c, 0x8a7d, 0x8a7e, 0x8a80, 0x8a81, 0x8a82, 0x8a83, 0x8a84, + 0x8a85, 0x8a86, 0x8a87, 0x8a88, 0x8a89, 0x8a8a, 0x8a8b, 0x8a8c, + 0x8a8d, 0x8a8e, 0x8a8f, 0x8a90, 0x8a91, 0x8a92, 0x8a93, 0x8a94, + 0x8a95, 0x8a96, 0x8a97, 0x8a98, 0x8a99, 0x8a9a, 0x8a9b, 0x8a9c, + 0x8a9d, 0x8a9e, 0x8a9f, 0x8aa0, 0x8aa1, 0x8aa2, 0x8aa3, 0x8aa4, + 0x8aa5, 0x8aa6, 0x8aa7, 0x8aa8, 0x8aa9, 0x8aaa, 0x8aab, 0x8aac, + 0x8aad, 0x8aae, 0x8aaf, 0x8ab0, 0x8ab1, 0x8ab2, 0x8ab3, 0x8ab4, + 0x8ab5, 0x8ab6, 0x8ab7, 0x8ab8, 0x8ab9, 0x8aba, 0x8abb, 0x8abc, + 0x8abd, 0x8abe, 0x8abf, 0x8ac0, 0x8ac1, 0x8ac2, 0x8ac3, 0x8ac4, + 0x8ac5, 0x8ac6, 0x8ac7, 0x8ac8, 0x8ac9, 0x8aca, 0x8acb, 0x8acc, + 0x8acd, 0x8ace, 0x8acf, 0x8ad0, 0x8ad1, 0x8ad2, 0x8ad3, 0x8ad4, + 0x8ad5, 0x8ad6, 0x8ad7, 0x8ad8, 0x8ad9, 0x8ada, 0x8adb, 0x8adc, + 0x8add, 0x8ade, 0x8adf, 0x8ae0, 0x8ae1, 0x8ae2, 0x8ae3, 0x8ae4, + 0x8ae5, 0x8ae6, 0x8ae7, 0x8ae8, 0x8ae9, 0x8aea, 0x8aeb, 0x8aec, + 0x8aed, 0x8aee, 0x8aef, 0x8af0, 0x8af1, 0x8af2, 0x8af3, 0x8af4, + 0x8af5, 0x8af6, 0x8af7, 0x8af8, 0x8af9, 0x8afa, 0x8afb, 0x8afc, + 0x8afd, 0x8afe, 0x8b40, 0x8b41, 0x8b42, 0x8b43, 0x8b44, 0x8b45, + 0x8b46, 0x8b47, 0x8b48, 0x8b49, 0x8b4a, 0x8b4b, 0x8b4c, 0x8b4d, + 0x8b4e, 0x8b4f, 0x8b50, 0x8b51, 0x8b52, 0x8b53, 0x8b54, 0x8b55, + 0x8b56, 0x8b57, 0x8b58, 0x8b59, 0x8b5a, 0x8b5b, 0x8b5c, 0x8b5d, + 0x8b5e, 0x8b5f, 0x8b60, 0x8b61, 0x8b62, 0x8b63, 0x8b64, 0x8b65, + 0x8b66, 0x8b67, 0x8b68, 0x8b69, 0x8b6a, 0x8b6b, 0x8b6c, 0x8b6d, + 0x8b6e, 0x8b6f, 0x8b70, 0x8b71, 0x8b72, 0x8b73, 0x8b74, 0x8b75, + 0x8b76, 0x8b77, 0x8b78, 0x8b79, 0x8b7a, 0x8b7b, 0x8b7c, 0x8b7d, + 0x8b7e, 0x8b80, 0x8b81, 0x8b82, 0x8b83, 0x8b84, 0x8b85, 0x8b86, + 0x8b87, 0x8b88, 0x8b89, 0x8b8a, 0x8b8b, 0x8b8c, 0x8b8d, 0x8b8e, + 0x8b8f, 0x8b90, 0x8b91, 0x8b92, 0x8b93, 0x8b94, 0x8b95, 0x8b96, + 0x8b97, 0x8b98, 0x8b99, 0x8b9a, 0x8b9b, 0x8b9c, 0x8b9d, 0x8b9e, + 0x8b9f, 0x8ba0, 0x8ba1, 0x8ba2, 0x8ba3, 0x8ba4, 0x8ba5, 0x8ba6, + 0x8ba7, 0x8ba8, 0x8ba9, 0x8baa, 0x8bab, 0x8bac, 0x8bad, 0x8bae, + 0x8baf, 0x8bb0, 0x8bb1, 0x8bb2, 0x8bb3, 0x8bb4, 0x8bb5, 0x8bb6, + 0x8bb7, 0x8bb8, 0x8bb9, 0x8bba, 0x8bbb, 0x8bbc, 0x8bbd, 0x8bbe, + 0x8bbf, 0x8bc0, 0x8bc1, 0x8bc2, 0x8bc3, 0x8bc4, 0x8bc5, 0x8bc6, + 0x8bc7, 0x8bc8, 0x8bc9, 0x8bca, 0x8bcb, 0x8bcc, 0x8bcd, 0x8bce, + 0x8bcf, 0x8bd0, 0x8bd1, 0x8bd2, 0x8bd3, 0x8bd4, 0x8bd5, 0x8bd6, + 0x8bd7, 0x8bd8, 0x8bd9, 0x8bda, 0x8bdb, 0x8bdc, 0x8bdd, 0x8bde, + 0x8bdf, 0x8be0, 0x8be1, 0x8be2, 0x8be3, 0x8be4, 0x8be5, 0x8be6, + 0x8be7, 0x8be8, 0x8be9, 0x8bea, 0x8beb, 0x8bec, 0x8bed, 0x8bee, + 0x8bef, 0x8bf0, 0x8bf1, 0x8bf2, 0x8bf3, 0x8bf4, 0x8bf5, 0x8bf6, + 0x8bf7, 0x8bf8, 0x8bf9, 0x8bfa, 0x8bfb, 0x8bfc, 0x8bfd, 0x8bfe, + 0x8c40, 0x8c41, 0x8c42, 0x8c43, 0x8c44, 0x8c45, 0x8c46, 0x8c47, + 0x8c48, 0x8c49, 0x8c4a, 0x8c4b, 0x8c4c, 0x8c4d, 0x8c4e, 0x8c4f, + 0x8c50, 0x8c51, 0x8c52, 0x8c53, 0x8c54, 0x8c55, 0x8c56, 0x8c57, + 0x8c58, 0x8c59, 0x8c5a, 0x8c5b, 0x8c5c, 0x8c5d, 0x8c5e, 0x8c5f, + 0x8c60, 0x8c61, 0x8c62, 0x8c63, 0x8c64, 0x8c65, 0x8c66, 0x8c67, + 0x8c68, 0x8c69, 0x8c6a, 0x8c6b, 0x8c6c, 0x8c6d, 0x8c6e, 0x8c6f, + 0x8c70, 0x8c71, 0x8c72, 0x8c73, 0x8c74, 0x8c75, 0x8c76, 0x8c77, + 0x8c78, 0x8c79, 0x8c7a, 0x8c7b, 0x8c7c, 0x8c7d, 0x8c7e, 0x8c80, + 0x8c81, 0x8c82, 0x8c83, 0x8c84, 0x8c85, 0x8c86, 0x8c87, 0x8c88, + 0x8c89, 0x8c8a, 0x8c8b, 0x8c8c, 0x8c8d, 0x8c8e, 0x8c8f, 0x8c90, + 0x8c91, 0x8c92, 0x8c93, 0x8c94, 0x8c95, 0x8c96, 0x8c97, 0x8c98, + 0x8c99, 0x8c9a, 0x8c9b, 0x8c9c, 0x8c9d, 0x8c9e, 0x8c9f, 0x8ca0, + 0x8ca1, 0x8ca2, 0x8ca3, 0x8ca4, 0x8ca5, 0x8ca6, 0x8ca7, 0x8ca8, + 0x8ca9, 0x8caa, 0x8cab, 0x8cac, 0x8cad, 0x8cae, 0x8caf, 0x8cb0, + 0x8cb1, 0x8cb2, 0x8cb3, 0x8cb4, 0x8cb5, 0x8cb6, 0x8cb7, 0x8cb8, + 0x8cb9, 0x8cba, 0x8cbb, 0x8cbc, 0x8cbd, 0x8cbe, 0x8cbf, 0x8cc0, + 0x8cc1, 0x8cc2, 0x8cc3, 0x8cc4, 0x8cc5, 0x8cc6, 0x8cc7, 0x8cc8, + 0x8cc9, 0x8cca, 0x8ccb, 0x8ccc, 0x8ccd, 0x8cce, 0x8ccf, 0x8cd0, + 0x8cd1, 0x8cd2, 0x8cd3, 0x8cd4, 0x8cd5, 0x8cd6, 0x8cd7, 0x8cd8, + 0x8cd9, 0x8cda, 0x8cdb, 0x8cdc, 0x8cdd, 0x8cde, 0x8cdf, 0x8ce0, + 0x8ce1, 0x8ce2, 0x8ce3, 0x8ce4, 0x8ce5, 0x8ce6, 0x8ce7, 0x8ce8, + 0x8ce9, 0x8cea, 0x8ceb, 0x8cec, 0x8ced, 0x8cee, 0x8cef, 0x8cf0, + 0x8cf1, 0x8cf2, 0x8cf3, 0x8cf4, 0x8cf5, 0x8cf6, 0x8cf7, 0x8cf8, + 0x8cf9, 0x8cfa, 0x8cfb, 0x8cfc, 0x8cfd, 0x8cfe, 0x8d40, 0x8d41, + 0x8d42, 0x8d43, 0x8d44, 0x8d45, 0x8d46, 0x8d47, 0x8d48, 0x8d49, + 0x8d4a, 0x8d4b, 0x8d4c, 0x8d4d, 0x8d4e, 0x8d4f, 0x8d50, 0x8d51, + 0x8d52, 0x8d53, 0x8d54, 0x8d55, 0x8d56, 0x8d57, 0x8d58, 0x8d59, + 0x8d5a, 0x8d5b, 0x8d5c, 0x8d5d, 0x8d5e, 0x8d5f, 0x8d60, 0x8d61, + 0x8d62, 0x8d63, 0x8d64, 0x8d65, 0x8d66, 0x8d67, 0x8d68, 0x8d69, + 0x8d6a, 0x8d6b, 0x8d6c, 0x8d6d, 0x8d6e, 0x8d6f, 0x8d70, 0x8d71, + 0x8d72, 0x8d73, 0x8d74, 0x8d75, 0x8d76, 0x8d77, 0x8d78, 0x8d79, + 0x8d7a, 0x8d7b, 0x8d7c, 0x8d7d, 0x8d7e, 0x8d80, 0x8d81, 0x8d82, + 0x8d83, 0x8d84, 0x8d85, 0x8d86, 0x8d87, 0x8d88, 0x8d89, 0x8d8a, + 0x8d8b, 0x8d8c, 0x8d8d, 0x8d8e, 0x8d8f, 0x8d90, 0x8d91, 0x8d92, + 0x8d93, 0x8d94, 0x8d95, 0x8d96, 0x8d97, 0x8d98, 0x8d99, 0x8d9a, + 0x8d9b, 0x8d9c, 0x8d9d, 0x8d9e, 0x8d9f, 0x8da0, 0x8da1, 0x8da2, + 0x8da3, 0x8da4, 0x8da5, 0x8da6, 0x8da7, 0x8da8, 0x8da9, 0x8daa, + 0x8dab, 0x8dac, 0x8dad, 0x8dae, 0x8daf, 0x8db0, 0x8db1, 0x8db2, + 0x8db3, 0x8db4, 0x8db5, 0x8db6, 0x8db7, 0x8db8, 0x8db9, 0x8dba, + 0x8dbb, 0x8dbc, 0x8dbd, 0x8dbe, 0x8dbf, 0x8dc0, 0x8dc1, 0x8dc2, + 0x8dc3, 0x8dc4, 0x8dc5, 0x8dc6, 0x8dc7, 0x8dc8, 0x8dc9, 0x8dca, + 0x8dcb, 0x8dcc, 0x8dcd, 0x8dce, 0x8dcf, 0x8dd0, 0x8dd1, 0x8dd2, + 0x8dd3, 0x8dd4, 0x8dd5, 0x8dd6, 0x8dd7, 0x8dd8, 0x8dd9, 0x8dda, + 0x8ddb, 0x8ddc, 0x8ddd, 0x8dde, 0x8ddf, 0x8de0, 0x8de1, 0x8de2, + 0x8de3, 0x8de4, 0x8de5, 0x8de6, 0x8de7, 0x8de8, 0x8de9, 0x8dea, + 0x8deb, 0x8dec, 0x8ded, 0x8dee, 0x8def, 0x8df0, 0x8df1, 0x8df2, + 0x8df3, 0x8df4, 0x8df5, 0x8df6, 0x8df7, 0x8df8, 0x8df9, 0x8dfa, + 0x8dfb, 0x8dfc, 0x8dfd, 0x8dfe, 0x8e40, 0x8e41, 0x8e42, 0x8e43, + 0x8e44, 0x8e45, 0x8e46, 0x8e47, 0x8e48, 0x8e49, 0x8e4a, 0x8e4b, + 0x8e4c, 0x8e4d, 0x8e4e, 0x8e4f, 0x8e50, 0x8e51, 0x8e52, 0x8e53, + 0x8e54, 0x8e55, 0x8e56, 0x8e57, 0x8e58, 0x8e59, 0x8e5a, 0x8e5b, + 0x8e5c, 0x8e5d, 0x8e5e, 0x8e5f, 0x8e60, 0x8e61, 0x8e62, 0x8e63, + 0x8e64, 0x8e65, 0x8e66, 0x8e67, 0x8e68, 0x8e69, 0x8e6a, 0x8e6b, + 0x8e6c, 0x8e6d, 0x8e6e, 0x8e6f, 0x8e70, 0x8e71, 0x8e72, 0x8e73, + 0x8e74, 0x8e75, 0x8e76, 0x8e77, 0x8e78, 0x8e79, 0x8e7a, 0x8e7b, + 0x8e7c, 0x8e7d, 0x8e7e, 0x8e80, 0x8e81, 0x8e82, 0x8e83, 0x8e84, + 0x8e85, 0x8e86, 0x8e87, 0x8e88, 0x8e89, 0x8e8a, 0x8e8b, 0x8e8c, + 0x8e8d, 0x8e8e, 0x8e8f, 0x8e90, 0x8e91, 0x8e92, 0x8e93, 0x8e94, + 0x8e95, 0x8e96, 0x8e97, 0x8e98, 0x8e99, 0x8e9a, 0x8e9b, 0x8e9c, + 0x8e9d, 0x8e9e, 0x8e9f, 0x8ea0, 0x8ea1, 0x8ea2, 0x8ea3, 0x8ea4, + 0x8ea5, 0x8ea6, 0x8ea7, 0x8ea8, 0x8ea9, 0x8eaa, 0x8eab, 0x8eac, + 0x8ead, 0x8eae, 0x8eaf, 0x8eb0, 0x8eb1, 0x8eb2, 0x8eb3, 0x8eb4, + 0x8eb5, 0x8eb6, 0x8eb7, 0x8eb8, 0x8eb9, 0x8eba, 0x8ebb, 0x8ebc, + 0x8ebd, 0x8ebe, 0x8ebf, 0x8ec0, 0x8ec1, 0x8ec2, 0x8ec3, 0x8ec4, + 0x8ec5, 0x8ec6, 0x8ec7, 0x8ec8, 0x8ec9, 0x8eca, 0x8ecb, 0x8ecc, + 0x8ecd, 0x8ece, 0x8ecf, 0x8ed0, 0x8ed1, 0x8ed2, 0x8ed3, 0x8ed4, + 0x8ed5, 0x8ed6, 0x8ed7, 0x8ed8, 0x8ed9, 0x8eda, 0x8edb, 0x8edc, + 0x8edd, 0x8ede, 0x8edf, 0x8ee0, 0x8ee1, 0x8ee2, 0x8ee3, 0x8ee4, + 0x8ee5, 0x8ee6, 0x8ee7, 0x8ee8, 0x8ee9, 0x8eea, 0x8eeb, 0x8eec, + 0x8eed, 0x8eee, 0x8eef, 0x8ef0, 0x8ef1, 0x8ef2, 0x8ef3, 0x8ef4, + 0x8ef5, 0x8ef6, 0x8ef7, 0x8ef8, 0x8ef9, 0x8efa, 0x8efb, 0x8efc, + 0x8efd, 0x8efe, 0x8f40, 0x8f41, 0x8f42, 0x8f43, 0x8f44, 0x8f45, + 0x8f46, 0x8f47, 0x8f48, 0x8f49, 0x8f4a, 0x8f4b, 0x8f4c, 0x8f4d, + 0x8f4e, 0x8f4f, 0x8f50, 0x8f51, 0x8f52, 0x8f53, 0x8f54, 0x8f55, + 0x8f56, 0x8f57, 0x8f58, 0x8f59, 0x8f5a, 0x8f5b, 0x8f5c, 0x8f5d, + 0x8f5e, 0x8f5f, 0x8f60, 0x8f61, 0x8f62, 0x8f63, 0x8f64, 0x8f65, + 0x8f66, 0x8f67, 0x8f68, 0x8f69, 0x8f6a, 0x8f6b, 0x8f6c, 0x8f6d, + 0x8f6e, 0x8f6f, 0x8f70, 0x8f71, 0x8f72, 0x8f73, 0x8f74, 0x8f75, + 0x8f76, 0x8f77, 0x8f78, 0x8f79, 0x8f7a, 0x8f7b, 0x8f7c, 0x8f7d, + 0x8f7e, 0x8f80, 0x8f81, 0x8f82, 0x8f83, 0x8f84, 0x8f85, 0x8f86, + 0x8f87, 0x8f88, 0x8f89, 0x8f8a, 0x8f8b, 0x8f8c, 0x8f8d, 0x8f8e, + 0x8f8f, 0x8f90, 0x8f91, 0x8f92, 0x8f93, 0x8f94, 0x8f95, 0x8f96, + 0x8f97, 0x8f98, 0x8f99, 0x8f9a, 0x8f9b, 0x8f9c, 0x8f9d, 0x8f9e, + 0x8f9f, 0x8fa0, 0x8fa1, 0x8fa2, 0x8fa3, 0x8fa4, 0x8fa5, 0x8fa6, + 0x8fa7, 0x8fa8, 0x8fa9, 0x8faa, 0x8fab, 0x8fac, 0x8fad, 0x8fae, + 0x8faf, 0x8fb0, 0x8fb1, 0x8fb2, 0x8fb3, 0x8fb4, 0x8fb5, 0x8fb6, + 0x8fb7, 0x8fb8, 0x8fb9, 0x8fba, 0x8fbb, 0x8fbc, 0x8fbd, 0x8fbe, + 0x8fbf, 0x8fc0, 0x8fc1, 0x8fc2, 0x8fc3, 0x8fc4, 0x8fc5, 0x8fc6, + 0x8fc7, 0x8fc8, 0x8fc9, 0x8fca, 0x8fcb, 0x8fcc, 0x8fcd, 0x8fce, + 0x8fcf, 0x8fd0, 0x8fd1, 0x8fd2, 0x8fd3, 0x8fd4, 0x8fd5, 0x8fd6, + 0x8fd7, 0x8fd8, 0x8fd9, 0x8fda, 0x8fdb, 0x8fdc, 0x8fdd, 0x8fde, + 0x8fdf, 0x8fe0, 0x8fe1, 0x8fe2, 0x8fe3, 0x8fe4, 0x8fe5, 0x8fe6, + 0x8fe7, 0x8fe8, 0x8fe9, 0x8fea, 0x8feb, 0x8fec, 0x8fed, 0x8fee, + 0x8fef, 0x8ff0, 0x8ff1, 0x8ff2, 0x8ff3, 0x8ff4, 0x8ff5, 0x8ff6, + 0x8ff7, 0x8ff8, 0x8ff9, 0x8ffa, 0x8ffb, 0x8ffc, 0x8ffd, 0x8ffe, + 0x9040, 0x9041, 0x9042, 0x9043, 0x9044, 0x9045, 0x9046, 0x9047, + 0x9048, 0x9049, 0x904a, 0x904b, 0x904c, 0x904d, 0x904e, 0x904f, + 0x9050, 0x9051, 0x9052, 0x9053, 0x9054, 0x9055, 0x9056, 0x9057, + 0x9058, 0x9059, 0x905a, 0x905b, 0x905c, 0x905d, 0x905e, 0x905f, + 0x9060, 0x9061, 0x9062, 0x9063, 0x9064, 0x9065, 0x9066, 0x9067, + 0x9068, 0x9069, 0x906a, 0x906b, 0x906c, 0x906d, 0x906e, 0x906f, + 0x9070, 0x9071, 0x9072, 0x9073, 0x9074, 0x9075, 0x9076, 0x9077, + 0x9078, 0x9079, 0x907a, 0x907b, 0x907c, 0x907d, 0x907e, 0x9080, + 0x9081, 0x9082, 0x9083, 0x9084, 0x9085, 0x9086, 0x9087, 0x9088, + 0x9089, 0x908a, 0x908b, 0x908c, 0x908d, 0x908e, 0x908f, 0x9090, + 0x9091, 0x9092, 0x9093, 0x9094, 0x9095, 0x9096, 0x9097, 0x9098, + 0x9099, 0x909a, 0x909b, 0x909c, 0x909d, 0x909e, 0x909f, 0x90a0, + 0x90a1, 0x90a2, 0x90a3, 0x90a4, 0x90a5, 0x90a6, 0x90a7, 0x90a8, + 0x90a9, 0x90aa, 0x90ab, 0x90ac, 0x90ad, 0x90ae, 0x90af, 0x90b0, + 0x90b1, 0x90b2, 0x90b3, 0x90b4, 0x90b5, 0x90b6, 0x90b7, 0x90b8, + 0x90b9, 0x90ba, 0x90bb, 0x90bc, 0x90bd, 0x90be, 0x90bf, 0x90c0, + 0x90c1, 0x90c2, 0x90c3, 0x90c4, 0x90c5, 0x90c6, 0x90c7, 0x90c8, + 0x90c9, 0x90ca, 0x90cb, 0x90cc, 0x90cd, 0x90ce, 0x90cf, 0x90d0, + 0x90d1, 0x90d2, 0x90d3, 0x90d4, 0x90d5, 0x90d6, 0x90d7, 0x90d8, + 0x90d9, 0x90da, 0x90db, 0x90dc, 0x90dd, 0x90de, 0x90df, 0x90e0, + 0x90e1, 0x90e2, 0x90e3, 0x90e4, 0x90e5, 0x90e6, 0x90e7, 0x90e8, + 0x90e9, 0x90ea, 0x90eb, 0x90ec, 0x90ed, 0x90ee, 0x90ef, 0x90f0, + 0x90f1, 0x90f2, 0x90f3, 0x90f4, 0x90f5, 0x90f6, 0x90f7, 0x90f8, + 0x90f9, 0x90fa, 0x90fb, 0x90fc, 0x90fd, 0x90fe, 0x9140, 0x9141, + 0x9142, 0x9143, 0x9144, 0x9145, 0x9146, 0x9147, 0x9148, 0x9149, + 0x914a, 0x914b, 0x914c, 0x914d, 0x914e, 0x914f, 0x9150, 0x9151, + 0x9152, 0x9153, 0x9154, 0x9155, 0x9156, 0x9157, 0x9158, 0x9159, + 0x915a, 0x915b, 0x915c, 0x915d, 0x915e, 0x915f, 0x9160, 0x9161, + 0x9162, 0x9163, 0x9164, 0x9165, 0x9166, 0x9167, 0x9168, 0x9169, + 0x916a, 0x916b, 0x916c, 0x916d, 0x916e, 0x916f, 0x9170, 0x9171, + 0x9172, 0x9173, 0x9174, 0x9175, 0x9176, 0x9177, 0x9178, 0x9179, + 0x917a, 0x917b, 0x917c, 0x917d, 0x917e, 0x9180, 0x9181, 0x9182, + 0x9183, 0x9184, 0x9185, 0x9186, 0x9187, 0x9188, 0x9189, 0x918a, + 0x918b, 0x918c, 0x918d, 0x918e, 0x918f, 0x9190, 0x9191, 0x9192, + 0x9193, 0x9194, 0x9195, 0x9196, 0x9197, 0x9198, 0x9199, 0x919a, + 0x919b, 0x919c, 0x919d, 0x919e, 0x919f, 0x91a0, 0x91a1, 0x91a2, + 0x91a3, 0x91a4, 0x91a5, 0x91a6, 0x91a7, 0x91a8, 0x91a9, 0x91aa, + 0x91ab, 0x91ac, 0x91ad, 0x91ae, 0x91af, 0x91b0, 0x91b1, 0x91b2, + 0x91b3, 0x91b4, 0x91b5, 0x91b6, 0x91b7, 0x91b8, 0x91b9, 0x91ba, + 0x91bb, 0x91bc, 0x91bd, 0x91be, 0x91bf, 0x91c0, 0x91c1, 0x91c2, + 0x91c3, 0x91c4, 0x91c5, 0x91c6, 0x91c7, 0x91c8, 0x91c9, 0x91ca, + 0x91cb, 0x91cc, 0x91cd, 0x91ce, 0x91cf, 0x91d0, 0x91d1, 0x91d2, + 0x91d3, 0x91d4, 0x91d5, 0x91d6, 0x91d7, 0x91d8, 0x91d9, 0x91da, + 0x91db, 0x91dc, 0x91dd, 0x91de, 0x91df, 0x91e0, 0x91e1, 0x91e2, + 0x91e3, 0x91e4, 0x91e5, 0x91e6, 0x91e7, 0x91e8, 0x91e9, 0x91ea, + 0x91eb, 0x91ec, 0x91ed, 0x91ee, 0x91ef, 0x91f0, 0x91f1, 0x91f2, + 0x91f3, 0x91f4, 0x91f5, 0x91f6, 0x91f7, 0x91f8, 0x91f9, 0x91fa, + 0x91fb, 0x91fc, 0x91fd, 0x91fe, 0x9240, 0x9241, 0x9242, 0x9243, + 0x9244, 0x9245, 0x9246, 0x9247, 0x9248, 0x9249, 0x924a, 0x924b, + 0x924c, 0x924d, 0x924e, 0x924f, 0x9250, 0x9251, 0x9252, 0x9253, + 0x9254, 0x9255, 0x9256, 0x9257, 0x9258, 0x9259, 0x925a, 0x925b, + 0x925c, 0x925d, 0x925e, 0x925f, 0x9260, 0x9261, 0x9262, 0x9263, + 0x9264, 0x9265, 0x9266, 0x9267, 0x9268, 0x9269, 0x926a, 0x926b, + 0x926c, 0x926d, 0x926e, 0x926f, 0x9270, 0x9271, 0x9272, 0x9273, + 0x9274, 0x9275, 0x9276, 0x9277, 0x9278, 0x9279, 0x927a, 0x927b, + 0x927c, 0x927d, 0x927e, 0x9280, 0x9281, 0x9282, 0x9283, 0x9284, + 0x9285, 0x9286, 0x9287, 0x9288, 0x9289, 0x928a, 0x928b, 0x928c, + 0x928d, 0x928e, 0x928f, 0x9290, 0x9291, 0x9292, 0x9293, 0x9294, + 0x9295, 0x9296, 0x9297, 0x9298, 0x9299, 0x929a, 0x929b, 0x929c, + 0x929d, 0x929e, 0x929f, 0x92a0, 0x92a1, 0x92a2, 0x92a3, 0x92a4, + 0x92a5, 0x92a6, 0x92a7, 0x92a8, 0x92a9, 0x92aa, 0x92ab, 0x92ac, + 0x92ad, 0x92ae, 0x92af, 0x92b0, 0x92b1, 0x92b2, 0x92b3, 0x92b4, + 0x92b5, 0x92b6, 0x92b7, 0x92b8, 0x92b9, 0x92ba, 0x92bb, 0x92bc, + 0x92bd, 0x92be, 0x92bf, 0x92c0, 0x92c1, 0x92c2, 0x92c3, 0x92c4, + 0x92c5, 0x92c6, 0x92c7, 0x92c8, 0x92c9, 0x92ca, 0x92cb, 0x92cc, + 0x92cd, 0x92ce, 0x92cf, 0x92d0, 0x92d1, 0x92d2, 0x92d3, 0x92d4, + 0x92d5, 0x92d6, 0x92d7, 0x92d8, 0x92d9, 0x92da, 0x92db, 0x92dc, + 0x92dd, 0x92de, 0x92df, 0x92e0, 0x92e1, 0x92e2, 0x92e3, 0x92e4, + 0x92e5, 0x92e6, 0x92e7, 0x92e8, 0x92e9, 0x92ea, 0x92eb, 0x92ec, + 0x92ed, 0x92ee, 0x92ef, 0x92f0, 0x92f1, 0x92f2, 0x92f3, 0x92f4, + 0x92f5, 0x92f6, 0x92f7, 0x92f8, 0x92f9, 0x92fa, 0x92fb, 0x92fc, + 0x92fd, 0x92fe, 0x9340, 0x9341, 0x9342, 0x9343, 0x9344, 0x9345, + 0x9346, 0x9347, 0x9348, 0x9349, 0x934a, 0x934b, 0x934c, 0x934d, + 0x934e, 0x934f, 0x9350, 0x9351, 0x9352, 0x9353, 0x9354, 0x9355, + 0x9356, 0x9357, 0x9358, 0x9359, 0x935a, 0x935b, 0x935c, 0x935d, + 0x935e, 0x935f, 0x9360, 0x9361, 0x9362, 0x9363, 0x9364, 0x9365, + 0x9366, 0x9367, 0x9368, 0x9369, 0x936a, 0x936b, 0x936c, 0x936d, + 0x936e, 0x936f, 0x9370, 0x9371, 0x9372, 0x9373, 0x9374, 0x9375, + 0x9376, 0x9377, 0x9378, 0x9379, 0x937a, 0x937b, 0x937c, 0x937d, + 0x937e, 0x9380, 0x9381, 0x9382, 0x9383, 0x9384, 0x9385, 0x9386, + 0x9387, 0x9388, 0x9389, 0x938a, 0x938b, 0x938c, 0x938d, 0x938e, + 0x938f, 0x9390, 0x9391, 0x9392, 0x9393, 0x9394, 0x9395, 0x9396, + 0x9397, 0x9398, 0x9399, 0x939a, 0x939b, 0x939c, 0x939d, 0x939e, + 0x939f, 0x93a0, 0x93a1, 0x93a2, 0x93a3, 0x93a4, 0x93a5, 0x93a6, + 0x93a7, 0x93a8, 0x93a9, 0x93aa, 0x93ab, 0x93ac, 0x93ad, 0x93ae, + 0x93af, 0x93b0, 0x93b1, 0x93b2, 0x93b3, 0x93b4, 0x93b5, 0x93b6, + 0x93b7, 0x93b8, 0x93b9, 0x93ba, 0x93bb, 0x93bc, 0x93bd, 0x93be, + 0x93bf, 0x93c0, 0x93c1, 0x93c2, 0x93c3, 0x93c4, 0x93c5, 0x93c6, + 0x93c7, 0x93c8, 0x93c9, 0x93ca, 0x93cb, 0x93cc, 0x93cd, 0x93ce, + 0x93cf, 0x93d0, 0x93d1, 0x93d2, 0x93d3, 0x93d4, 0x93d5, 0x93d6, + 0x93d7, 0x93d8, 0x93d9, 0x93da, 0x93db, 0x93dc, 0x93dd, 0x93de, + 0x93df, 0x93e0, 0x93e1, 0x93e2, 0x93e3, 0x93e4, 0x93e5, 0x93e6, + 0x93e7, 0x93e8, 0x93e9, 0x93ea, 0x93eb, 0x93ec, 0x93ed, 0x93ee, + 0x93ef, 0x93f0, 0x93f1, 0x93f2, 0x93f3, 0x93f4, 0x93f5, 0x93f6, + 0x93f7, 0x93f8, 0x93f9, 0x93fa, 0x93fb, 0x93fc, 0x93fd, 0x93fe, + 0x9440, 0x9441, 0x9442, 0x9443, 0x9444, 0x9445, 0x9446, 0x9447, + 0x9448, 0x9449, 0x944a, 0x944b, 0x944c, 0x944d, 0x944e, 0x944f, + 0x9450, 0x9451, 0x9452, 0x9453, 0x9454, 0x9455, 0x9456, 0x9457, + 0x9458, 0x9459, 0x945a, 0x945b, 0x945c, 0x945d, 0x945e, 0x945f, + 0x9460, 0x9461, 0x9462, 0x9463, 0x9464, 0x9465, 0x9466, 0x9467, + 0x9468, 0x9469, 0x946a, 0x946b, 0x946c, 0x946d, 0x946e, 0x946f, + 0x9470, 0x9471, 0x9472, 0x9473, 0x9474, 0x9475, 0x9476, 0x9477, + 0x9478, 0x9479, 0x947a, 0x947b, 0x947c, 0x947d, 0x947e, 0x9480, + 0x9481, 0x9482, 0x9483, 0x9484, 0x9485, 0x9486, 0x9487, 0x9488, + 0x9489, 0x948a, 0x948b, 0x948c, 0x948d, 0x948e, 0x948f, 0x9490, + 0x9491, 0x9492, 0x9493, 0x9494, 0x9495, 0x9496, 0x9497, 0x9498, + 0x9499, 0x949a, 0x949b, 0x949c, 0x949d, 0x949e, 0x949f, 0x94a0, + 0x94a1, 0x94a2, 0x94a3, 0x94a4, 0x94a5, 0x94a6, 0x94a7, 0x94a8, + 0x94a9, 0x94aa, 0x94ab, 0x94ac, 0x94ad, 0x94ae, 0x94af, 0x94b0, + 0x94b1, 0x94b2, 0x94b3, 0x94b4, 0x94b5, 0x94b6, 0x94b7, 0x94b8, + 0x94b9, 0x94ba, 0x94bb, 0x94bc, 0x94bd, 0x94be, 0x94bf, 0x94c0, + 0x94c1, 0x94c2, 0x94c3, 0x94c4, 0x94c5, 0x94c6, 0x94c7, 0x94c8, + 0x94c9, 0x94ca, 0x94cb, 0x94cc, 0x94cd, 0x94ce, 0x94cf, 0x94d0, + 0x94d1, 0x94d2, 0x94d3, 0x94d4, 0x94d5, 0x94d6, 0x94d7, 0x94d8, + 0x94d9, 0x94da, 0x94db, 0x94dc, 0x94dd, 0x94de, 0x94df, 0x94e0, + 0x94e1, 0x94e2, 0x94e3, 0x94e4, 0x94e5, 0x94e6, 0x94e7, 0x94e8, + 0x94e9, 0x94ea, 0x94eb, 0x94ec, 0x94ed, 0x94ee, 0x94ef, 0x94f0, + 0x94f1, 0x94f2, 0x94f3, 0x94f4, 0x94f5, 0x94f6, 0x94f7, 0x94f8, + 0x94f9, 0x94fa, 0x94fb, 0x94fc, 0x94fd, 0x94fe, 0x9540, 0x9541, + 0x9542, 0x9543, 0x9544, 0x9545, 0x9546, 0x9547, 0x9548, 0x9549, + 0x954a, 0x954b, 0x954c, 0x954d, 0x954e, 0x954f, 0x9550, 0x9551, + 0x9552, 0x9553, 0x9554, 0x9555, 0x9556, 0x9557, 0x9558, 0x9559, + 0x955a, 0x955b, 0x955c, 0x955d, 0x955e, 0x955f, 0x9560, 0x9561, + 0x9562, 0x9563, 0x9564, 0x9565, 0x9566, 0x9567, 0x9568, 0x9569, + 0x956a, 0x956b, 0x956c, 0x956d, 0x956e, 0x956f, 0x9570, 0x9571, + 0x9572, 0x9573, 0x9574, 0x9575, 0x9576, 0x9577, 0x9578, 0x9579, + 0x957a, 0x957b, 0x957c, 0x957d, 0x957e, 0x9580, 0x9581, 0x9582, + 0x9583, 0x9584, 0x9585, 0x9586, 0x9587, 0x9588, 0x9589, 0x958a, + 0x958b, 0x958c, 0x958d, 0x958e, 0x958f, 0x9590, 0x9591, 0x9592, + 0x9593, 0x9594, 0x9595, 0x9596, 0x9597, 0x9598, 0x9599, 0x959a, + 0x959b, 0x959c, 0x959d, 0x959e, 0x959f, 0x95a0, 0x95a1, 0x95a2, + 0x95a3, 0x95a4, 0x95a5, 0x95a6, 0x95a7, 0x95a8, 0x95a9, 0x95aa, + 0x95ab, 0x95ac, 0x95ad, 0x95ae, 0x95af, 0x95b0, 0x95b1, 0x95b2, + 0x95b3, 0x95b4, 0x95b5, 0x95b6, 0x95b7, 0x95b8, 0x95b9, 0x95ba, + 0x95bb, 0x95bc, 0x95bd, 0x95be, 0x95bf, 0x95c0, 0x95c1, 0x95c2, + 0x95c3, 0x95c4, 0x95c5, 0x95c6, 0x95c7, 0x95c8, 0x95c9, 0x95ca, + 0x95cb, 0x95cc, 0x95cd, 0x95ce, 0x95cf, 0x95d0, 0x95d1, 0x95d2, + 0x95d3, 0x95d4, 0x95d5, 0x95d6, 0x95d7, 0x95d8, 0x95d9, 0x95da, + 0x95db, 0x95dc, 0x95dd, 0x95de, 0x95df, 0x95e0, 0x95e1, 0x95e2, + 0x95e3, 0x95e4, 0x95e5, 0x95e6, 0x95e7, 0x95e8, 0x95e9, 0x95ea, + 0x95eb, 0x95ec, 0x95ed, 0x95ee, 0x95ef, 0x95f0, 0x95f1, 0x95f2, + 0x95f3, 0x95f4, 0x95f5, 0x95f6, 0x95f7, 0x95f8, 0x95f9, 0x95fa, + 0x95fb, 0x95fc, 0x95fd, 0x95fe, 0x9640, 0x9641, 0x9642, 0x9643, + 0x9644, 0x9645, 0x9646, 0x9647, 0x9648, 0x9649, 0x964a, 0x964b, + 0x964c, 0x964d, 0x964e, 0x964f, 0x9650, 0x9651, 0x9652, 0x9653, + 0x9654, 0x9655, 0x9656, 0x9657, 0x9658, 0x9659, 0x965a, 0x965b, + 0x965c, 0x965d, 0x965e, 0x965f, 0x9660, 0x9661, 0x9662, 0x9663, + 0x9664, 0x9665, 0x9666, 0x9667, 0x9668, 0x9669, 0x966a, 0x966b, + 0x966c, 0x966d, 0x966e, 0x966f, 0x9670, 0x9671, 0x9672, 0x9673, + 0x9674, 0x9675, 0x9676, 0x9677, 0x9678, 0x9679, 0x967a, 0x967b, + 0x967c, 0x967d, 0x967e, 0x9680, 0x9681, 0x9682, 0x9683, 0x9684, + 0x9685, 0x9686, 0x9687, 0x9688, 0x9689, 0x968a, 0x968b, 0x968c, + 0x968d, 0x968e, 0x968f, 0x9690, 0x9691, 0x9692, 0x9693, 0x9694, + 0x9695, 0x9696, 0x9697, 0x9698, 0x9699, 0x969a, 0x969b, 0x969c, + 0x969d, 0x969e, 0x969f, 0x96a0, 0x96a1, 0x96a2, 0x96a3, 0x96a4, + 0x96a5, 0x96a6, 0x96a7, 0x96a8, 0x96a9, 0x96aa, 0x96ab, 0x96ac, + 0x96ad, 0x96ae, 0x96af, 0x96b0, 0x96b1, 0x96b2, 0x96b3, 0x96b4, + 0x96b5, 0x96b6, 0x96b7, 0x96b8, 0x96b9, 0x96ba, 0x96bb, 0x96bc, + 0x96bd, 0x96be, 0x96bf, 0x96c0, 0x96c1, 0x96c2, 0x96c3, 0x96c4, + 0x96c5, 0x96c6, 0x96c7, 0x96c8, 0x96c9, 0x96ca, 0x96cb, 0x96cc, + 0x96cd, 0x96ce, 0x96cf, 0x96d0, 0x96d1, 0x96d2, 0x96d3, 0x96d4, + 0x96d5, 0x96d6, 0x96d7, 0x96d8, 0x96d9, 0x96da, 0x96db, 0x96dc, + 0x96dd, 0x96de, 0x96df, 0x96e0, 0x96e1, 0x96e2, 0x96e3, 0x96e4, + 0x96e5, 0x96e6, 0x96e7, 0x96e8, 0x96e9, 0x96ea, 0x96eb, 0x96ec, + 0x96ed, 0x96ee, 0x96ef, 0x96f0, 0x96f1, 0x96f2, 0x96f3, 0x96f4, + 0x96f5, 0x96f6, 0x96f7, 0x96f8, 0x96f9, 0x96fa, 0x96fb, 0x96fc, + 0x96fd, 0x96fe, 0x9740, 0x9741, 0x9742, 0x9743, 0x9744, 0x9745, + 0x9746, 0x9747, 0x9748, 0x9749, 0x974a, 0x974b, 0x974c, 0x974d, + 0x974e, 0x974f, 0x9750, 0x9751, 0x9752, 0x9753, 0x9754, 0x9755, + 0x9756, 0x9757, 0x9758, 0x9759, 0x975a, 0x975b, 0x975c, 0x975d, + 0x975e, 0x975f, 0x9760, 0x9761, 0x9762, 0x9763, 0x9764, 0x9765, + 0x9766, 0x9767, 0x9768, 0x9769, 0x976a, 0x976b, 0x976c, 0x976d, + 0x976e, 0x976f, 0x9770, 0x9771, 0x9772, 0x9773, 0x9774, 0x9775, + 0x9776, 0x9777, 0x9778, 0x9779, 0x977a, 0x977b, 0x977c, 0x977d, + 0x977e, 0x9780, 0x9781, 0x9782, 0x9783, 0x9784, 0x9785, 0x9786, + 0x9787, 0x9788, 0x9789, 0x978a, 0x978b, 0x978c, 0x978d, 0x978e, + 0x978f, 0x9790, 0x9791, 0x9792, 0x9793, 0x9794, 0x9795, 0x9796, + 0x9797, 0x9798, 0x9799, 0x979a, 0x979b, 0x979c, 0x979d, 0x979e, + 0x979f, 0x97a0, 0x97a1, 0x97a2, 0x97a3, 0x97a4, 0x97a5, 0x97a6, + 0x97a7, 0x97a8, 0x97a9, 0x97aa, 0x97ab, 0x97ac, 0x97ad, 0x97ae, + 0x97af, 0x97b0, 0x97b1, 0x97b2, 0x97b3, 0x97b4, 0x97b5, 0x97b6, + 0x97b7, 0x97b8, 0x97b9, 0x97ba, 0x97bb, 0x97bc, 0x97bd, 0x97be, + 0x97bf, 0x97c0, 0x97c1, 0x97c2, 0x97c3, 0x97c4, 0x97c5, 0x97c6, + 0x97c7, 0x97c8, 0x97c9, 0x97ca, 0x97cb, 0x97cc, 0x97cd, 0x97ce, + 0x97cf, 0x97d0, 0x97d1, 0x97d2, 0x97d3, 0x97d4, 0x97d5, 0x97d6, + 0x97d7, 0x97d8, 0x97d9, 0x97da, 0x97db, 0x97dc, 0x97dd, 0x97de, + 0x97df, 0x97e0, 0x97e1, 0x97e2, 0x97e3, 0x97e4, 0x97e5, 0x97e6, + 0x97e7, 0x97e8, 0x97e9, 0x97ea, 0x97eb, 0x97ec, 0x97ed, 0x97ee, + 0x97ef, 0x97f0, 0x97f1, 0x97f2, 0x97f3, 0x97f4, 0x97f5, 0x97f6, + 0x97f7, 0x97f8, 0x97f9, 0x97fa, 0x97fb, 0x97fc, 0x97fd, 0x97fe, + 0x9840, 0x9841, 0x9842, 0x9843, 0x9844, 0x9845, 0x9846, 0x9847, + 0x9848, 0x9849, 0x984a, 0x984b, 0x984c, 0x984d, 0x984e, 0x984f, + 0x9850, 0x9851, 0x9852, 0x9853, 0x9854, 0x9855, 0x9856, 0x9857, + 0x9858, 0x9859, 0x985a, 0x985b, 0x985c, 0x985d, 0x985e, 0x985f, + 0x9860, 0x9861, 0x9862, 0x9863, 0x9864, 0x9865, 0x9866, 0x9867, + 0x9868, 0x9869, 0x986a, 0x986b, 0x986c, 0x986d, 0x986e, 0x986f, + 0x9870, 0x9871, 0x9872, 0x9873, 0x9874, 0x9875, 0x9876, 0x9877, + 0x9878, 0x9879, 0x987a, 0x987b, 0x987c, 0x987d, 0x987e, 0x9880, + 0x9881, 0x9882, 0x9883, 0x9884, 0x9885, 0x9886, 0x9887, 0x9888, + 0x9889, 0x988a, 0x988b, 0x988c, 0x988d, 0x988e, 0x988f, 0x9890, + 0x9891, 0x9892, 0x9893, 0x9894, 0x9895, 0x9896, 0x9897, 0x9898, + 0x9899, 0x989a, 0x989b, 0x989c, 0x989d, 0x989e, 0x989f, 0x98a0, + 0x98a1, 0x98a2, 0x98a3, 0x98a4, 0x98a5, 0x98a6, 0x98a7, 0x98a8, + 0x98a9, 0x98aa, 0x98ab, 0x98ac, 0x98ad, 0x98ae, 0x98af, 0x98b0, + 0x98b1, 0x98b2, 0x98b3, 0x98b4, 0x98b5, 0x98b6, 0x98b7, 0x98b8, + 0x98b9, 0x98ba, 0x98bb, 0x98bc, 0x98bd, 0x98be, 0x98bf, 0x98c0, + 0x98c1, 0x98c2, 0x98c3, 0x98c4, 0x98c5, 0x98c6, 0x98c7, 0x98c8, + 0x98c9, 0x98ca, 0x98cb, 0x98cc, 0x98cd, 0x98ce, 0x98cf, 0x98d0, + 0x98d1, 0x98d2, 0x98d3, 0x98d4, 0x98d5, 0x98d6, 0x98d7, 0x98d8, + 0x98d9, 0x98da, 0x98db, 0x98dc, 0x98dd, 0x98de, 0x98df, 0x98e0, + 0x98e1, 0x98e2, 0x98e3, 0x98e4, 0x98e5, 0x98e6, 0x98e7, 0x98e8, + 0x98e9, 0x98ea, 0x98eb, 0x98ec, 0x98ed, 0x98ee, 0x98ef, 0x98f0, + 0x98f1, 0x98f2, 0x98f3, 0x98f4, 0x98f5, 0x98f6, 0x98f7, 0x98f8, + 0x98f9, 0x98fa, 0x98fb, 0x98fc, 0x98fd, 0x98fe, 0x9940, 0x9941, + 0x9942, 0x9943, 0x9944, 0x9945, 0x9946, 0x9947, 0x9948, 0x9949, + 0x994a, 0x994b, 0x994c, 0x994d, 0x994e, 0x994f, 0x9950, 0x9951, + 0x9952, 0x9953, 0x9954, 0x9955, 0x9956, 0x9957, 0x9958, 0x9959, + 0x995a, 0x995b, 0x995c, 0x995d, 0x995e, 0x995f, 0x9960, 0x9961, + 0x9962, 0x9963, 0x9964, 0x9965, 0x9966, 0x9967, 0x9968, 0x9969, + 0x996a, 0x996b, 0x996c, 0x996d, 0x996e, 0x996f, 0x9970, 0x9971, + 0x9972, 0x9973, 0x9974, 0x9975, 0x9976, 0x9977, 0x9978, 0x9979, + 0x997a, 0x997b, 0x997c, 0x997d, 0x997e, 0x9980, 0x9981, 0x9982, + 0x9983, 0x9984, 0x9985, 0x9986, 0x9987, 0x9988, 0x9989, 0x998a, + 0x998b, 0x998c, 0x998d, 0x998e, 0x998f, 0x9990, 0x9991, 0x9992, + 0x9993, 0x9994, 0x9995, 0x9996, 0x9997, 0x9998, 0x9999, 0x999a, + 0x999b, 0x999c, 0x999d, 0x999e, 0x999f, 0x99a0, 0x99a1, 0x99a2, + 0x99a3, 0x99a4, 0x99a5, 0x99a6, 0x99a7, 0x99a8, 0x99a9, 0x99aa, + 0x99ab, 0x99ac, 0x99ad, 0x99ae, 0x99af, 0x99b0, 0x99b1, 0x99b2, + 0x99b3, 0x99b4, 0x99b5, 0x99b6, 0x99b7, 0x99b8, 0x99b9, 0x99ba, + 0x99bb, 0x99bc, 0x99bd, 0x99be, 0x99bf, 0x99c0, 0x99c1, 0x99c2, + 0x99c3, 0x99c4, 0x99c5, 0x99c6, 0x99c7, 0x99c8, 0x99c9, 0x99ca, + 0x99cb, 0x99cc, 0x99cd, 0x99ce, 0x99cf, 0x99d0, 0x99d1, 0x99d2, + 0x99d3, 0x99d4, 0x99d5, 0x99d6, 0x99d7, 0x99d8, 0x99d9, 0x99da, + 0x99db, 0x99dc, 0x99dd, 0x99de, 0x99df, 0x99e0, 0x99e1, 0x99e2, + 0x99e3, 0x99e4, 0x99e5, 0x99e6, 0x99e7, 0x99e8, 0x99e9, 0x99ea, + 0x99eb, 0x99ec, 0x99ed, 0x99ee, 0x99ef, 0x99f0, 0x99f1, 0x99f2, + 0x99f3, 0x99f4, 0x99f5, 0x99f6, 0x99f7, 0x99f8, 0x99f9, 0x99fa, + 0x99fb, 0x99fc, 0x99fd, 0x99fe, 0x9a40, 0x9a41, 0x9a42, 0x9a43, + 0x9a44, 0x9a45, 0x9a46, 0x9a47, 0x9a48, 0x9a49, 0x9a4a, 0x9a4b, + 0x9a4c, 0x9a4d, 0x9a4e, 0x9a4f, 0x9a50, 0x9a51, 0x9a52, 0x9a53, + 0x9a54, 0x9a55, 0x9a56, 0x9a57, 0x9a58, 0x9a59, 0x9a5a, 0x9a5b, + 0x9a5c, 0x9a5d, 0x9a5e, 0x9a5f, 0x9a60, 0x9a61, 0x9a62, 0x9a63, + 0x9a64, 0x9a65, 0x9a66, 0x9a67, 0x9a68, 0x9a69, 0x9a6a, 0x9a6b, + 0x9a6c, 0x9a6d, 0x9a6e, 0x9a6f, 0x9a70, 0x9a71, 0x9a72, 0x9a73, + 0x9a74, 0x9a75, 0x9a76, 0x9a77, 0x9a78, 0x9a79, 0x9a7a, 0x9a7b, + 0x9a7c, 0x9a7d, 0x9a7e, 0x9a80, 0x9a81, 0x9a82, 0x9a83, 0x9a84, + 0x9a85, 0x9a86, 0x9a87, 0x9a88, 0x9a89, 0x9a8a, 0x9a8b, 0x9a8c, + 0x9a8d, 0x9a8e, 0x9a8f, 0x9a90, 0x9a91, 0x9a92, 0x9a93, 0x9a94, + 0x9a95, 0x9a96, 0x9a97, 0x9a98, 0x9a99, 0x9a9a, 0x9a9b, 0x9a9c, + 0x9a9d, 0x9a9e, 0x9a9f, 0x9aa0, 0x9aa1, 0x9aa2, 0x9aa3, 0x9aa4, + 0x9aa5, 0x9aa6, 0x9aa7, 0x9aa8, 0x9aa9, 0x9aaa, 0x9aab, 0x9aac, + 0x9aad, 0x9aae, 0x9aaf, 0x9ab0, 0x9ab1, 0x9ab2, 0x9ab3, 0x9ab4, + 0x9ab5, 0x9ab6, 0x9ab7, 0x9ab8, 0x9ab9, 0x9aba, 0x9abb, 0x9abc, + 0x9abd, 0x9abe, 0x9abf, 0x9ac0, 0x9ac1, 0x9ac2, 0x9ac3, 0x9ac4, + 0x9ac5, 0x9ac6, 0x9ac7, 0x9ac8, 0x9ac9, 0x9aca, 0x9acb, 0x9acc, + 0x9acd, 0x9ace, 0x9acf, 0x9ad0, 0x9ad1, 0x9ad2, 0x9ad3, 0x9ad4, + 0x9ad5, 0x9ad6, 0x9ad7, 0x9ad8, 0x9ad9, 0x9ada, 0x9adb, 0x9adc, + 0x9add, 0x9ade, 0x9adf, 0x9ae0, 0x9ae1, 0x9ae2, 0x9ae3, 0x9ae4, + 0x9ae5, 0x9ae6, 0x9ae7, 0x9ae8, 0x9ae9, 0x9aea, 0x9aeb, 0x9aec, + 0x9aed, 0x9aee, 0x9aef, 0x9af0, 0x9af1, 0x9af2, 0x9af3, 0x9af4, + 0x9af5, 0x9af6, 0x9af7, 0x9af8, 0x9af9, 0x9afa, 0x9afb, 0x9afc, + 0x9afd, 0x9afe, 0x9b40, 0x9b41, 0x9b42, 0x9b43, 0x9b44, 0x9b45, + 0x9b46, 0x9b47, 0x9b48, 0x9b49, 0x9b4a, 0x9b4b, 0x9b4c, 0x9b4d, + 0x9b4e, 0x9b4f, 0x9b50, 0x9b51, 0x9b52, 0x9b53, 0x9b54, 0x9b55, + 0x9b56, 0x9b57, 0x9b58, 0x9b59, 0x9b5a, 0x9b5b, 0x9b5c, 0x9b5d, + 0x9b5e, 0x9b5f, 0x9b60, 0x9b61, 0x9b62, 0x9b63, 0x9b64, 0x9b65, + 0x9b66, 0x9b67, 0x9b68, 0x9b69, 0x9b6a, 0x9b6b, 0x9b6c, 0x9b6d, + 0x9b6e, 0x9b6f, 0x9b70, 0x9b71, 0x9b72, 0x9b73, 0x9b74, 0x9b75, + 0x9b76, 0x9b77, 0x9b78, 0x9b79, 0x9b7a, 0x9b7b, 0x9b7c, 0x9b7d, + 0x9b7e, 0x9b80, 0x9b81, 0x9b82, 0x9b83, 0x9b84, 0x9b85, 0x9b86, + 0x9b87, 0x9b88, 0x9b89, 0x9b8a, 0x9b8b, 0x9b8c, 0x9b8d, 0x9b8e, + 0x9b8f, 0x9b90, 0x9b91, 0x9b92, 0x9b93, 0x9b94, 0x9b95, 0x9b96, + 0x9b97, 0x9b98, 0x9b99, 0x9b9a, 0x9b9b, 0x9b9c, 0x9b9d, 0x9b9e, + 0x9b9f, 0x9ba0, 0x9ba1, 0x9ba2, 0x9ba3, 0x9ba4, 0x9ba5, 0x9ba6, + 0x9ba7, 0x9ba8, 0x9ba9, 0x9baa, 0x9bab, 0x9bac, 0x9bad, 0x9bae, + 0x9baf, 0x9bb0, 0x9bb1, 0x9bb2, 0x9bb3, 0x9bb4, 0x9bb5, 0x9bb6, + 0x9bb7, 0x9bb8, 0x9bb9, 0x9bba, 0x9bbb, 0x9bbc, 0x9bbd, 0x9bbe, + 0x9bbf, 0x9bc0, 0x9bc1, 0x9bc2, 0x9bc3, 0x9bc4, 0x9bc5, 0x9bc6, + 0x9bc7, 0x9bc8, 0x9bc9, 0x9bca, 0x9bcb, 0x9bcc, 0x9bcd, 0x9bce, + 0x9bcf, 0x9bd0, 0x9bd1, 0x9bd2, 0x9bd3, 0x9bd4, 0x9bd5, 0x9bd6, + 0x9bd7, 0x9bd8, 0x9bd9, 0x9bda, 0x9bdb, 0x9bdc, 0x9bdd, 0x9bde, + 0x9bdf, 0x9be0, 0x9be1, 0x9be2, 0x9be3, 0x9be4, 0x9be5, 0x9be6, + 0x9be7, 0x9be8, 0x9be9, 0x9bea, 0x9beb, 0x9bec, 0x9bed, 0x9bee, + 0x9bef, 0x9bf0, 0x9bf1, 0x9bf2, 0x9bf3, 0x9bf4, 0x9bf5, 0x9bf6, + 0x9bf7, 0x9bf8, 0x9bf9, 0x9bfa, 0x9bfb, 0x9bfc, 0x9bfd, 0x9bfe, + 0x9c40, 0x9c41, 0x9c42, 0x9c43, 0x9c44, 0x9c45, 0x9c46, 0x9c47, + 0x9c48, 0x9c49, 0x9c4a, 0x9c4b, 0x9c4c, 0x9c4d, 0x9c4e, 0x9c4f, + 0x9c50, 0x9c51, 0x9c52, 0x9c53, 0x9c54, 0x9c55, 0x9c56, 0x9c57, + 0x9c58, 0x9c59, 0x9c5a, 0x9c5b, 0x9c5c, 0x9c5d, 0x9c5e, 0x9c5f, + 0x9c60, 0x9c61, 0x9c62, 0x9c63, 0x9c64, 0x9c65, 0x9c66, 0x9c67, + 0x9c68, 0x9c69, 0x9c6a, 0x9c6b, 0x9c6c, 0x9c6d, 0x9c6e, 0x9c6f, + 0x9c70, 0x9c71, 0x9c72, 0x9c73, 0x9c74, 0x9c75, 0x9c76, 0x9c77, + 0x9c78, 0x9c79, 0x9c7a, 0x9c7b, 0x9c7c, 0x9c7d, 0x9c7e, 0x9c80, + 0x9c81, 0x9c82, 0x9c83, 0x9c84, 0x9c85, 0x9c86, 0x9c87, 0x9c88, + 0x9c89, 0x9c8a, 0x9c8b, 0x9c8c, 0x9c8d, 0x9c8e, 0x9c8f, 0x9c90, + 0x9c91, 0x9c92, 0x9c93, 0x9c94, 0x9c95, 0x9c96, 0x9c97, 0x9c98, + 0x9c99, 0x9c9a, 0x9c9b, 0x9c9c, 0x9c9d, 0x9c9e, 0x9c9f, 0x9ca0, + 0x9ca1, 0x9ca2, 0x9ca3, 0x9ca4, 0x9ca5, 0x9ca6, 0x9ca7, 0x9ca8, + 0x9ca9, 0x9caa, 0x9cab, 0x9cac, 0x9cad, 0x9cae, 0x9caf, 0x9cb0, + 0x9cb1, 0x9cb2, 0x9cb3, 0x9cb4, 0x9cb5, 0x9cb6, 0x9cb7, 0x9cb8, + 0x9cb9, 0x9cba, 0x9cbb, 0x9cbc, 0x9cbd, 0x9cbe, 0x9cbf, 0x9cc0, + 0x9cc1, 0x9cc2, 0x9cc3, 0x9cc4, 0x9cc5, 0x9cc6, 0x9cc7, 0x9cc8, + 0x9cc9, 0x9cca, 0x9ccb, 0x9ccc, 0x9ccd, 0x9cce, 0x9ccf, 0x9cd0, + 0x9cd1, 0x9cd2, 0x9cd3, 0x9cd4, 0x9cd5, 0x9cd6, 0x9cd7, 0x9cd8, + 0x9cd9, 0x9cda, 0x9cdb, 0x9cdc, 0x9cdd, 0x9cde, 0x9cdf, 0x9ce0, + 0x9ce1, 0x9ce2, 0x9ce3, 0x9ce4, 0x9ce5, 0x9ce6, 0x9ce7, 0x9ce8, + 0x9ce9, 0x9cea, 0x9ceb, 0x9cec, 0x9ced, 0x9cee, 0x9cef, 0x9cf0, + 0x9cf1, 0x9cf2, 0x9cf3, 0x9cf4, 0x9cf5, 0x9cf6, 0x9cf7, 0x9cf8, + 0x9cf9, 0x9cfa, 0x9cfb, 0x9cfc, 0x9cfd, 0x9cfe, 0x9d40, 0x9d41, + 0x9d42, 0x9d43, 0x9d44, 0x9d45, 0x9d46, 0x9d47, 0x9d48, 0x9d49, + 0x9d4a, 0x9d4b, 0x9d4c, 0x9d4d, 0x9d4e, 0x9d4f, 0x9d50, 0x9d51, + 0x9d52, 0x9d53, 0x9d54, 0x9d55, 0x9d56, 0x9d57, 0x9d58, 0x9d59, + 0x9d5a, 0x9d5b, 0x9d5c, 0x9d5d, 0x9d5e, 0x9d5f, 0x9d60, 0x9d61, + 0x9d62, 0x9d63, 0x9d64, 0x9d65, 0x9d66, 0x9d67, 0x9d68, 0x9d69, + 0x9d6a, 0x9d6b, 0x9d6c, 0x9d6d, 0x9d6e, 0x9d6f, 0x9d70, 0x9d71, + 0x9d72, 0x9d73, 0x9d74, 0x9d75, 0x9d76, 0x9d77, 0x9d78, 0x9d79, + 0x9d7a, 0x9d7b, 0x9d7c, 0x9d7d, 0x9d7e, 0x9d80, 0x9d81, 0x9d82, + 0x9d83, 0x9d84, 0x9d85, 0x9d86, 0x9d87, 0x9d88, 0x9d89, 0x9d8a, + 0x9d8b, 0x9d8c, 0x9d8d, 0x9d8e, 0x9d8f, 0x9d90, 0x9d91, 0x9d92, + 0x9d93, 0x9d94, 0x9d95, 0x9d96, 0x9d97, 0x9d98, 0x9d99, 0x9d9a, + 0x9d9b, 0x9d9c, 0x9d9d, 0x9d9e, 0x9d9f, 0x9da0, 0x9da1, 0x9da2, + 0x9da3, 0x9da4, 0x9da5, 0x9da6, 0x9da7, 0x9da8, 0x9da9, 0x9daa, + 0x9dab, 0x9dac, 0x9dad, 0x9dae, 0x9daf, 0x9db0, 0x9db1, 0x9db2, + 0x9db3, 0x9db4, 0x9db5, 0x9db6, 0x9db7, 0x9db8, 0x9db9, 0x9dba, + 0x9dbb, 0x9dbc, 0x9dbd, 0x9dbe, 0x9dbf, 0x9dc0, 0x9dc1, 0x9dc2, + 0x9dc3, 0x9dc4, 0x9dc5, 0x9dc6, 0x9dc7, 0x9dc8, 0x9dc9, 0x9dca, + 0x9dcb, 0x9dcc, 0x9dcd, 0x9dce, 0x9dcf, 0x9dd0, 0x9dd1, 0x9dd2, + 0x9dd3, 0x9dd4, 0x9dd5, 0x9dd6, 0x9dd7, 0x9dd8, 0x9dd9, 0x9dda, + 0x9ddb, 0x9ddc, 0x9ddd, 0x9dde, 0x9ddf, 0x9de0, 0x9de1, 0x9de2, + 0x9de3, 0x9de4, 0x9de5, 0x9de6, 0x9de7, 0x9de8, 0x9de9, 0x9dea, + 0x9deb, 0x9dec, 0x9ded, 0x9dee, 0x9def, 0x9df0, 0x9df1, 0x9df2, + 0x9df3, 0x9df4, 0x9df5, 0x9df6, 0x9df7, 0x9df8, 0x9df9, 0x9dfa, + 0x9dfb, 0x9dfc, 0x9dfd, 0x9dfe, 0x9e40, 0x9e41, 0x9e42, 0x9e43, + 0x9e44, 0x9e45, 0x9e46, 0x9e47, 0x9e48, 0x9e49, 0x9e4a, 0x9e4b, + 0x9e4c, 0x9e4d, 0x9e4e, 0x9e4f, 0x9e50, 0x9e51, 0x9e52, 0x9e53, + 0x9e54, 0x9e55, 0x9e56, 0x9e57, 0x9e58, 0x9e59, 0x9e5a, 0x9e5b, + 0x9e5c, 0x9e5d, 0x9e5e, 0x9e5f, 0x9e60, 0x9e61, 0x9e62, 0x9e63, + 0x9e64, 0x9e65, 0x9e66, 0x9e67, 0x9e68, 0x9e69, 0x9e6a, 0x9e6b, + 0x9e6c, 0x9e6d, 0x9e6e, 0x9e6f, 0x9e70, 0x9e71, 0x9e72, 0x9e73, + 0x9e74, 0x9e75, 0x9e76, 0x9e77, 0x9e78, 0x9e79, 0x9e7a, 0x9e7b, + 0x9e7c, 0x9e7d, 0x9e7e, 0x9e80, 0x9e81, 0x9e82, 0x9e83, 0x9e84, + 0x9e85, 0x9e86, 0x9e87, 0x9e88, 0x9e89, 0x9e8a, 0x9e8b, 0x9e8c, + 0x9e8d, 0x9e8e, 0x9e8f, 0x9e90, 0x9e91, 0x9e92, 0x9e93, 0x9e94, + 0x9e95, 0x9e96, 0x9e97, 0x9e98, 0x9e99, 0x9e9a, 0x9e9b, 0x9e9c, + 0x9e9d, 0x9e9e, 0x9e9f, 0x9ea0, 0x9ea1, 0x9ea2, 0x9ea3, 0x9ea4, + 0x9ea5, 0x9ea6, 0x9ea7, 0x9ea8, 0x9ea9, 0x9eaa, 0x9eab, 0x9eac, + 0x9ead, 0x9eae, 0x9eaf, 0x9eb0, 0x9eb1, 0x9eb2, 0x9eb3, 0x9eb4, + 0x9eb5, 0x9eb6, 0x9eb7, 0x9eb8, 0x9eb9, 0x9eba, 0x9ebb, 0x9ebc, + 0x9ebd, 0x9ebe, 0x9ebf, 0x9ec0, 0x9ec1, 0x9ec2, 0x9ec3, 0x9ec4, + 0x9ec5, 0x9ec6, 0x9ec7, 0x9ec8, 0x9ec9, 0x9eca, 0x9ecb, 0x9ecc, + 0x9ecd, 0x9ece, 0x9ecf, 0x9ed0, 0x9ed1, 0x9ed2, 0x9ed3, 0x9ed4, + 0x9ed5, 0x9ed6, 0x9ed7, 0x9ed8, 0x9ed9, 0x9eda, 0x9edb, 0x9edc, + 0x9edd, 0x9ede, 0x9edf, 0x9ee0, 0x9ee1, 0x9ee2, 0x9ee3, 0x9ee4, + 0x9ee5, 0x9ee6, 0x9ee7, 0x9ee8, 0x9ee9, 0x9eea, 0x9eeb, 0x9eec, + 0x9eed, 0x9eee, 0x9eef, 0x9ef0, 0x9ef1, 0x9ef2, 0x9ef3, 0x9ef4, + 0x9ef5, 0x9ef6, 0x9ef7, 0x9ef8, 0x9ef9, 0x9efa, 0x9efb, 0x9efc, + 0x9efd, 0x9efe, 0x9f40, 0x9f41, 0x9f42, 0x9f43, 0x9f44, 0x9f45, + 0x9f46, 0x9f47, 0x9f48, 0x9f49, 0x9f4a, 0x9f4b, 0x9f4c, 0x9f4d, + 0x9f4e, 0x9f4f, 0x9f50, 0x9f51, 0x9f52, 0x9f53, 0x9f54, 0x9f55, + 0x9f56, 0x9f57, 0x9f58, 0x9f59, 0x9f5a, 0x9f5b, 0x9f5c, 0x9f5d, + 0x9f5e, 0x9f5f, 0x9f60, 0x9f61, 0x9f62, 0x9f63, 0x9f64, 0x9f65, + 0x9f66, 0x9f67, 0x9f68, 0x9f69, 0x9f6a, 0x9f6b, 0x9f6c, 0x9f6d, + 0x9f6e, 0x9f6f, 0x9f70, 0x9f71, 0x9f72, 0x9f73, 0x9f74, 0x9f75, + 0x9f76, 0x9f77, 0x9f78, 0x9f79, 0x9f7a, 0x9f7b, 0x9f7c, 0x9f7d, + 0x9f7e, 0x9f80, 0x9f81, 0x9f82, 0x9f83, 0x9f84, 0x9f85, 0x9f86, + 0x9f87, 0x9f88, 0x9f89, 0x9f8a, 0x9f8b, 0x9f8c, 0x9f8d, 0x9f8e, + 0x9f8f, 0x9f90, 0x9f91, 0x9f92, 0x9f93, 0x9f94, 0x9f95, 0x9f96, + 0x9f97, 0x9f98, 0x9f99, 0x9f9a, 0x9f9b, 0x9f9c, 0x9f9d, 0x9f9e, + 0x9f9f, 0x9fa0, 0x9fa1, 0x9fa2, 0x9fa3, 0x9fa4, 0x9fa5, 0x9fa6, + 0x9fa7, 0x9fa8, 0x9fa9, 0x9faa, 0x9fab, 0x9fac, 0x9fad, 0x9fae, + 0x9faf, 0x9fb0, 0x9fb1, 0x9fb2, 0x9fb3, 0x9fb4, 0x9fb5, 0x9fb6, + 0x9fb7, 0x9fb8, 0x9fb9, 0x9fba, 0x9fbb, 0x9fbc, 0x9fbd, 0x9fbe, + 0x9fbf, 0x9fc0, 0x9fc1, 0x9fc2, 0x9fc3, 0x9fc4, 0x9fc5, 0x9fc6, + 0x9fc7, 0x9fc8, 0x9fc9, 0x9fca, 0x9fcb, 0x9fcc, 0x9fcd, 0x9fce, + 0x9fcf, 0x9fd0, 0x9fd1, 0x9fd2, 0x9fd3, 0x9fd4, 0x9fd5, 0x9fd6, + 0x9fd7, 0x9fd8, 0x9fd9, 0x9fda, 0x9fdb, 0x9fdc, 0x9fdd, 0x9fde, + 0x9fdf, 0x9fe0, 0x9fe1, 0x9fe2, 0x9fe3, 0x9fe4, 0x9fe5, 0x9fe6, + 0x9fe7, 0x9fe8, 0x9fe9, 0x9fea, 0x9feb, 0x9fec, 0x9fed, 0x9fee, + 0x9fef, 0x9ff0, 0x9ff1, 0x9ff2, 0x9ff3, 0x9ff4, 0x9ff5, 0x9ff6, + 0x9ff7, 0x9ff8, 0x9ff9, 0x9ffa, 0x9ffb, 0x9ffc, 0x9ffd, 0x9ffe, + 0xa040, 0xa041, 0xa042, 0xa043, 0xa044, 0xa045, 0xa046, 0xa047, + 0xa048, 0xa049, 0xa04a, 0xa04b, 0xa04c, 0xa04d, 0xa04e, 0xa04f, + 0xa050, 0xa051, 0xa052, 0xa053, 0xa054, 0xa055, 0xa056, 0xa057, + 0xa058, 0xa059, 0xa05a, 0xa05b, 0xa05c, 0xa05d, 0xa05e, 0xa05f, + 0xa060, 0xa061, 0xa062, 0xa063, 0xa064, 0xa065, 0xa066, 0xa067, + 0xa068, 0xa069, 0xa06a, 0xa06b, 0xa06c, 0xa06d, 0xa06e, 0xa06f, + 0xa070, 0xa071, 0xa072, 0xa073, 0xa074, 0xa075, 0xa076, 0xa077, + 0xa078, 0xa079, 0xa07a, 0xa07b, 0xa07c, 0xa07d, 0xa07e, 0xa080, + 0xa081, 0xa082, 0xa083, 0xa084, 0xa085, 0xa086, 0xa087, 0xa088, + 0xa089, 0xa08a, 0xa08b, 0xa08c, 0xa08d, 0xa08e, 0xa08f, 0xa090, + 0xa091, 0xa092, 0xa093, 0xa094, 0xa095, 0xa096, 0xa097, 0xa098, + 0xa099, 0xa09a, 0xa09b, 0xa09c, 0xa09d, 0xa09e, 0xa09f, 0xa0a0, + 0xa0a1, 0xa0a2, 0xa0a3, 0xa0a4, 0xa0a5, 0xa0a6, 0xa0a7, 0xa0a8, + 0xa0a9, 0xa0aa, 0xa0ab, 0xa0ac, 0xa0ad, 0xa0ae, 0xa0af, 0xa0b0, + 0xa0b1, 0xa0b2, 0xa0b3, 0xa0b4, 0xa0b5, 0xa0b6, 0xa0b7, 0xa0b8, + 0xa0b9, 0xa0ba, 0xa0bb, 0xa0bc, 0xa0bd, 0xa0be, 0xa0bf, 0xa0c0, + 0xa0c1, 0xa0c2, 0xa0c3, 0xa0c4, 0xa0c5, 0xa0c6, 0xa0c7, 0xa0c8, + 0xa0c9, 0xa0ca, 0xa0cb, 0xa0cc, 0xa0cd, 0xa0ce, 0xa0cf, 0xa0d0, + 0xa0d1, 0xa0d2, 0xa0d3, 0xa0d4, 0xa0d5, 0xa0d6, 0xa0d7, 0xa0d8, + 0xa0d9, 0xa0da, 0xa0db, 0xa0dc, 0xa0dd, 0xa0de, 0xa0df, 0xa0e0, + 0xa0e1, 0xa0e2, 0xa0e3, 0xa0e4, 0xa0e5, 0xa0e6, 0xa0e7, 0xa0e8, + 0xa0e9, 0xa0ea, 0xa0eb, 0xa0ec, 0xa0ed, 0xa0ee, 0xa0ef, 0xa0f0, + 0xa0f1, 0xa0f2, 0xa0f3, 0xa0f4, 0xa0f5, 0xa0f6, 0xa0f7, 0xa0f8, + 0xa0f9, 0xa0fa, 0xa0fb, 0xa0fc, 0xa0fd, 0xa0fe, 0xaa40, 0xaa41, + 0xaa42, 0xaa43, 0xaa44, 0xaa45, 0xaa46, 0xaa47, 0xaa48, 0xaa49, + 0xaa4a, 0xaa4b, 0xaa4c, 0xaa4d, 0xaa4e, 0xaa4f, 0xaa50, 0xaa51, + 0xaa52, 0xaa53, 0xaa54, 0xaa55, 0xaa56, 0xaa57, 0xaa58, 0xaa59, + 0xaa5a, 0xaa5b, 0xaa5c, 0xaa5d, 0xaa5e, 0xaa5f, 0xaa60, 0xaa61, + 0xaa62, 0xaa63, 0xaa64, 0xaa65, 0xaa66, 0xaa67, 0xaa68, 0xaa69, + 0xaa6a, 0xaa6b, 0xaa6c, 0xaa6d, 0xaa6e, 0xaa6f, 0xaa70, 0xaa71, + 0xaa72, 0xaa73, 0xaa74, 0xaa75, 0xaa76, 0xaa77, 0xaa78, 0xaa79, + 0xaa7a, 0xaa7b, 0xaa7c, 0xaa7d, 0xaa7e, 0xaa80, 0xaa81, 0xaa82, + 0xaa83, 0xaa84, 0xaa85, 0xaa86, 0xaa87, 0xaa88, 0xaa89, 0xaa8a, + 0xaa8b, 0xaa8c, 0xaa8d, 0xaa8e, 0xaa8f, 0xaa90, 0xaa91, 0xaa92, + 0xaa93, 0xaa94, 0xaa95, 0xaa96, 0xaa97, 0xaa98, 0xaa99, 0xaa9a, + 0xaa9b, 0xaa9c, 0xaa9d, 0xaa9e, 0xaa9f, 0xaaa0, 0xab40, 0xab41, + 0xab42, 0xab43, 0xab44, 0xab45, 0xab46, 0xab47, 0xab48, 0xab49, + 0xab4a, 0xab4b, 0xab4c, 0xab4d, 0xab4e, 0xab4f, 0xab50, 0xab51, + 0xab52, 0xab53, 0xab54, 0xab55, 0xab56, 0xab57, 0xab58, 0xab59, + 0xab5a, 0xab5b, 0xab5c, 0xab5d, 0xab5e, 0xab5f, 0xab60, 0xab61, + 0xab62, 0xab63, 0xab64, 0xab65, 0xab66, 0xab67, 0xab68, 0xab69, + 0xab6a, 0xab6b, 0xab6c, 0xab6d, 0xab6e, 0xab6f, 0xab70, 0xab71, + 0xab72, 0xab73, 0xab74, 0xab75, 0xab76, 0xab77, 0xab78, 0xab79, + 0xab7a, 0xab7b, 0xab7c, 0xab7d, 0xab7e, 0xab80, 0xab81, 0xab82, + 0xab83, 0xab84, 0xab85, 0xab86, 0xab87, 0xab88, 0xab89, 0xab8a, + 0xab8b, 0xab8c, 0xab8d, 0xab8e, 0xab8f, 0xab90, 0xab91, 0xab92, + 0xab93, 0xab94, 0xab95, 0xab96, 0xab97, 0xab98, 0xab99, 0xab9a, + 0xab9b, 0xab9c, 0xab9d, 0xab9e, 0xab9f, 0xaba0, 0xac40, 0xac41, + 0xac42, 0xac43, 0xac44, 0xac45, 0xac46, 0xac47, 0xac48, 0xac49, + 0xac4a, 0xac4b, 0xac4c, 0xac4d, 0xac4e, 0xac4f, 0xac50, 0xac51, + 0xac52, 0xac53, 0xac54, 0xac55, 0xac56, 0xac57, 0xac58, 0xac59, + 0xac5a, 0xac5b, 0xac5c, 0xac5d, 0xac5e, 0xac5f, 0xac60, 0xac61, + 0xac62, 0xac63, 0xac64, 0xac65, 0xac66, 0xac67, 0xac68, 0xac69, + 0xac6a, 0xac6b, 0xac6c, 0xac6d, 0xac6e, 0xac6f, 0xac70, 0xac71, + 0xac72, 0xac73, 0xac74, 0xac75, 0xac76, 0xac77, 0xac78, 0xac79, + 0xac7a, 0xac7b, 0xac7c, 0xac7d, 0xac7e, 0xac80, 0xac81, 0xac82, + 0xac83, 0xac84, 0xac85, 0xac86, 0xac87, 0xac88, 0xac89, 0xac8a, + 0xac8b, 0xac8c, 0xac8d, 0xac8e, 0xac8f, 0xac90, 0xac91, 0xac92, + 0xac93, 0xac94, 0xac95, 0xac96, 0xac97, 0xac98, 0xac99, 0xac9a, + 0xac9b, 0xac9c, 0xac9d, 0xac9e, 0xac9f, 0xaca0, 0xad40, 0xad41, + 0xad42, 0xad43, 0xad44, 0xad45, 0xad46, 0xad47, 0xad48, 0xad49, + 0xad4a, 0xad4b, 0xad4c, 0xad4d, 0xad4e, 0xad4f, 0xad50, 0xad51, + 0xad52, 0xad53, 0xad54, 0xad55, 0xad56, 0xad57, 0xad58, 0xad59, + 0xad5a, 0xad5b, 0xad5c, 0xad5d, 0xad5e, 0xad5f, 0xad60, 0xad61, + 0xad62, 0xad63, 0xad64, 0xad65, 0xad66, 0xad67, 0xad68, 0xad69, + 0xad6a, 0xad6b, 0xad6c, 0xad6d, 0xad6e, 0xad6f, 0xad70, 0xad71, + 0xad72, 0xad73, 0xad74, 0xad75, 0xad76, 0xad77, 0xad78, 0xad79, + 0xad7a, 0xad7b, 0xad7c, 0xad7d, 0xad7e, 0xad80, 0xad81, 0xad82, + 0xad83, 0xad84, 0xad85, 0xad86, 0xad87, 0xad88, 0xad89, 0xad8a, + 0xad8b, 0xad8c, 0xad8d, 0xad8e, 0xad8f, 0xad90, 0xad91, 0xad92, + 0xad93, 0xad94, 0xad95, 0xad96, 0xad97, 0xad98, 0xad99, 0xad9a, + 0xad9b, 0xad9c, 0xad9d, 0xad9e, 0xad9f, 0xada0, 0xae40, 0xae41, + 0xae42, 0xae43, 0xae44, 0xae45, 0xae46, 0xae47, 0xae48, 0xae49, + 0xae4a, 0xae4b, 0xae4c, 0xae4d, 0xae4e, 0xae4f, 0xae50, 0xae51, + 0xae52, 0xae53, 0xae54, 0xae55, 0xae56, 0xae57, 0xae58, 0xae59, + 0xae5a, 0xae5b, 0xae5c, 0xae5d, 0xae5e, 0xae5f, 0xae60, 0xae61, + 0xae62, 0xae63, 0xae64, 0xae65, 0xae66, 0xae67, 0xae68, 0xae69, + 0xae6a, 0xae6b, 0xae6c, 0xae6d, 0xae6e, 0xae6f, 0xae70, 0xae71, + 0xae72, 0xae73, 0xae74, 0xae75, 0xae76, 0xae77, 0xae78, 0xae79, + 0xae7a, 0xae7b, 0xae7c, 0xae7d, 0xae7e, 0xae80, 0xae81, 0xae82, + 0xae83, 0xae84, 0xae85, 0xae86, 0xae87, 0xae88, 0xae89, 0xae8a, + 0xae8b, 0xae8c, 0xae8d, 0xae8e, 0xae8f, 0xae90, 0xae91, 0xae92, + 0xae93, 0xae94, 0xae95, 0xae96, 0xae97, 0xae98, 0xae99, 0xae9a, + 0xae9b, 0xae9c, 0xae9d, 0xae9e, 0xae9f, 0xaea0, 0xaf40, 0xaf41, + 0xaf42, 0xaf43, 0xaf44, 0xaf45, 0xaf46, 0xaf47, 0xaf48, 0xaf49, + 0xaf4a, 0xaf4b, 0xaf4c, 0xaf4d, 0xaf4e, 0xaf4f, 0xaf50, 0xaf51, + 0xaf52, 0xaf53, 0xaf54, 0xaf55, 0xaf56, 0xaf57, 0xaf58, 0xaf59, + 0xaf5a, 0xaf5b, 0xaf5c, 0xaf5d, 0xaf5e, 0xaf5f, 0xaf60, 0xaf61, + 0xaf62, 0xaf63, 0xaf64, 0xaf65, 0xaf66, 0xaf67, 0xaf68, 0xaf69, + 0xaf6a, 0xaf6b, 0xaf6c, 0xaf6d, 0xaf6e, 0xaf6f, 0xaf70, 0xaf71, + 0xaf72, 0xaf73, 0xaf74, 0xaf75, 0xaf76, 0xaf77, 0xaf78, 0xaf79, + 0xaf7a, 0xaf7b, 0xaf7c, 0xaf7d, 0xaf7e, 0xaf80, 0xaf81, 0xaf82, + 0xaf83, 0xaf84, 0xaf85, 0xaf86, 0xaf87, 0xaf88, 0xaf89, 0xaf8a, + 0xaf8b, 0xaf8c, 0xaf8d, 0xaf8e, 0xaf8f, 0xaf90, 0xaf91, 0xaf92, + 0xaf93, 0xaf94, 0xaf95, 0xaf96, 0xaf97, 0xaf98, 0xaf99, 0xaf9a, + 0xaf9b, 0xaf9c, 0xaf9d, 0xaf9e, 0xaf9f, 0xafa0, 0xb040, 0xb041, + 0xb042, 0xb043, 0xb044, 0xb045, 0xb046, 0xb047, 0xb048, 0xb049, + 0xb04a, 0xb04b, 0xb04c, 0xb04d, 0xb04e, 0xb04f, 0xb050, 0xb051, + 0xb052, 0xb053, 0xb054, 0xb055, 0xb056, 0xb057, 0xb058, 0xb059, + 0xb05a, 0xb05b, 0xb05c, 0xb05d, 0xb05e, 0xb05f, 0xb060, 0xb061, + 0xb062, 0xb063, 0xb064, 0xb065, 0xb066, 0xb067, 0xb068, 0xb069, + 0xb06a, 0xb06b, 0xb06c, 0xb06d, 0xb06e, 0xb06f, 0xb070, 0xb071, + 0xb072, 0xb073, 0xb074, 0xb075, 0xb076, 0xb077, 0xb078, 0xb079, + 0xb07a, 0xb07b, 0xb07c, 0xb07d, 0xb07e, 0xb080, 0xb081, 0xb082, + 0xb083, 0xb084, 0xb085, 0xb086, 0xb087, 0xb088, 0xb089, 0xb08a, + 0xb08b, 0xb08c, 0xb08d, 0xb08e, 0xb08f, 0xb090, 0xb091, 0xb092, + 0xb093, 0xb094, 0xb095, 0xb096, 0xb097, 0xb098, 0xb099, 0xb09a, + 0xb09b, 0xb09c, 0xb09d, 0xb09e, 0xb09f, 0xb0a0, 0xb140, 0xb141, + 0xb142, 0xb143, 0xb144, 0xb145, 0xb146, 0xb147, 0xb148, 0xb149, + 0xb14a, 0xb14b, 0xb14c, 0xb14d, 0xb14e, 0xb14f, 0xb150, 0xb151, + 0xb152, 0xb153, 0xb154, 0xb155, 0xb156, 0xb157, 0xb158, 0xb159, + 0xb15a, 0xb15b, 0xb15c, 0xb15d, 0xb15e, 0xb15f, 0xb160, 0xb161, + 0xb162, 0xb163, 0xb164, 0xb165, 0xb166, 0xb167, 0xb168, 0xb169, + 0xb16a, 0xb16b, 0xb16c, 0xb16d, 0xb16e, 0xb16f, 0xb170, 0xb171, + 0xb172, 0xb173, 0xb174, 0xb175, 0xb176, 0xb177, 0xb178, 0xb179, + 0xb17a, 0xb17b, 0xb17c, 0xb17d, 0xb17e, 0xb180, 0xb181, 0xb182, + 0xb183, 0xb184, 0xb185, 0xb186, 0xb187, 0xb188, 0xb189, 0xb18a, + 0xb18b, 0xb18c, 0xb18d, 0xb18e, 0xb18f, 0xb190, 0xb191, 0xb192, + 0xb193, 0xb194, 0xb195, 0xb196, 0xb197, 0xb198, 0xb199, 0xb19a, + 0xb19b, 0xb19c, 0xb19d, 0xb19e, 0xb19f, 0xb1a0, 0xb240, 0xb241, + 0xb242, 0xb243, 0xb244, 0xb245, 0xb246, 0xb247, 0xb248, 0xb249, + 0xb24a, 0xb24b, 0xb24c, 0xb24d, 0xb24e, 0xb24f, 0xb250, 0xb251, + 0xb252, 0xb253, 0xb254, 0xb255, 0xb256, 0xb257, 0xb258, 0xb259, + 0xb25a, 0xb25b, 0xb25c, 0xb25d, 0xb25e, 0xb25f, 0xb260, 0xb261, + 0xb262, 0xb263, 0xb264, 0xb265, 0xb266, 0xb267, 0xb268, 0xb269, + 0xb26a, 0xb26b, 0xb26c, 0xb26d, 0xb26e, 0xb26f, 0xb270, 0xb271, + 0xb272, 0xb273, 0xb274, 0xb275, 0xb276, 0xb277, 0xb278, 0xb279, + 0xb27a, 0xb27b, 0xb27c, 0xb27d, 0xb27e, 0xb280, 0xb281, 0xb282, + 0xb283, 0xb284, 0xb285, 0xb286, 0xb287, 0xb288, 0xb289, 0xb28a, + 0xb28b, 0xb28c, 0xb28d, 0xb28e, 0xb28f, 0xb290, 0xb291, 0xb292, + 0xb293, 0xb294, 0xb295, 0xb296, 0xb297, 0xb298, 0xb299, 0xb29a, + 0xb29b, 0xb29c, 0xb29d, 0xb29e, 0xb29f, 0xb2a0, 0xb340, 0xb341, + 0xb342, 0xb343, 0xb344, 0xb345, 0xb346, 0xb347, 0xb348, 0xb349, + 0xb34a, 0xb34b, 0xb34c, 0xb34d, 0xb34e, 0xb34f, 0xb350, 0xb351, + 0xb352, 0xb353, 0xb354, 0xb355, 0xb356, 0xb357, 0xb358, 0xb359, + 0xb35a, 0xb35b, 0xb35c, 0xb35d, 0xb35e, 0xb35f, 0xb360, 0xb361, + 0xb362, 0xb363, 0xb364, 0xb365, 0xb366, 0xb367, 0xb368, 0xb369, + 0xb36a, 0xb36b, 0xb36c, 0xb36d, 0xb36e, 0xb36f, 0xb370, 0xb371, + 0xb372, 0xb373, 0xb374, 0xb375, 0xb376, 0xb377, 0xb378, 0xb379, + 0xb37a, 0xb37b, 0xb37c, 0xb37d, 0xb37e, 0xb380, 0xb381, 0xb382, + 0xb383, 0xb384, 0xb385, 0xb386, 0xb387, 0xb388, 0xb389, 0xb38a, + 0xb38b, 0xb38c, 0xb38d, 0xb38e, 0xb38f, 0xb390, 0xb391, 0xb392, + 0xb393, 0xb394, 0xb395, 0xb396, 0xb397, 0xb398, 0xb399, 0xb39a, + 0xb39b, 0xb39c, 0xb39d, 0xb39e, 0xb39f, 0xb3a0, 0xb440, 0xb441, + 0xb442, 0xb443, 0xb444, 0xb445, 0xb446, 0xb447, 0xb448, 0xb449, + 0xb44a, 0xb44b, 0xb44c, 0xb44d, 0xb44e, 0xb44f, 0xb450, 0xb451, + 0xb452, 0xb453, 0xb454, 0xb455, 0xb456, 0xb457, 0xb458, 0xb459, + 0xb45a, 0xb45b, 0xb45c, 0xb45d, 0xb45e, 0xb45f, 0xb460, 0xb461, + 0xb462, 0xb463, 0xb464, 0xb465, 0xb466, 0xb467, 0xb468, 0xb469, + 0xb46a, 0xb46b, 0xb46c, 0xb46d, 0xb46e, 0xb46f, 0xb470, 0xb471, + 0xb472, 0xb473, 0xb474, 0xb475, 0xb476, 0xb477, 0xb478, 0xb479, + 0xb47a, 0xb47b, 0xb47c, 0xb47d, 0xb47e, 0xb480, 0xb481, 0xb482, + 0xb483, 0xb484, 0xb485, 0xb486, 0xb487, 0xb488, 0xb489, 0xb48a, + 0xb48b, 0xb48c, 0xb48d, 0xb48e, 0xb48f, 0xb490, 0xb491, 0xb492, + 0xb493, 0xb494, 0xb495, 0xb496, 0xb497, 0xb498, 0xb499, 0xb49a, + 0xb49b, 0xb49c, 0xb49d, 0xb49e, 0xb49f, 0xb4a0, 0xb540, 0xb541, + 0xb542, 0xb543, 0xb544, 0xb545, 0xb546, 0xb547, 0xb548, 0xb549, + 0xb54a, 0xb54b, 0xb54c, 0xb54d, 0xb54e, 0xb54f, 0xb550, 0xb551, + 0xb552, 0xb553, 0xb554, 0xb555, 0xb556, 0xb557, 0xb558, 0xb559, + 0xb55a, 0xb55b, 0xb55c, 0xb55d, 0xb55e, 0xb55f, 0xb560, 0xb561, + 0xb562, 0xb563, 0xb564, 0xb565, 0xb566, 0xb567, 0xb568, 0xb569, + 0xb56a, 0xb56b, 0xb56c, 0xb56d, 0xb56e, 0xb56f, 0xb570, 0xb571, + 0xb572, 0xb573, 0xb574, 0xb575, 0xb576, 0xb577, 0xb578, 0xb579, + 0xb57a, 0xb57b, 0xb57c, 0xb57d, 0xb57e, 0xb580, 0xb581, 0xb582, + 0xb583, 0xb584, 0xb585, 0xb586, 0xb587, 0xb588, 0xb589, 0xb58a, + 0xb58b, 0xb58c, 0xb58d, 0xb58e, 0xb58f, 0xb590, 0xb591, 0xb592, + 0xb593, 0xb594, 0xb595, 0xb596, 0xb597, 0xb598, 0xb599, 0xb59a, + 0xb59b, 0xb59c, 0xb59d, 0xb59e, 0xb59f, 0xb5a0, 0xb640, 0xb641, + 0xb642, 0xb643, 0xb644, 0xb645, 0xb646, 0xb647, 0xb648, 0xb649, + 0xb64a, 0xb64b, 0xb64c, 0xb64d, 0xb64e, 0xb64f, 0xb650, 0xb651, + 0xb652, 0xb653, 0xb654, 0xb655, 0xb656, 0xb657, 0xb658, 0xb659, + 0xb65a, 0xb65b, 0xb65c, 0xb65d, 0xb65e, 0xb65f, 0xb660, 0xb661, + 0xb662, 0xb663, 0xb664, 0xb665, 0xb666, 0xb667, 0xb668, 0xb669, + 0xb66a, 0xb66b, 0xb66c, 0xb66d, 0xb66e, 0xb66f, 0xb670, 0xb671, + 0xb672, 0xb673, 0xb674, 0xb675, 0xb676, 0xb677, 0xb678, 0xb679, + 0xb67a, 0xb67b, 0xb67c, 0xb67d, 0xb67e, 0xb680, 0xb681, 0xb682, + 0xb683, 0xb684, 0xb685, 0xb686, 0xb687, 0xb688, 0xb689, 0xb68a, + 0xb68b, 0xb68c, 0xb68d, 0xb68e, 0xb68f, 0xb690, 0xb691, 0xb692, + 0xb693, 0xb694, 0xb695, 0xb696, 0xb697, 0xb698, 0xb699, 0xb69a, + 0xb69b, 0xb69c, 0xb69d, 0xb69e, 0xb69f, 0xb6a0, 0xb740, 0xb741, + 0xb742, 0xb743, 0xb744, 0xb745, 0xb746, 0xb747, 0xb748, 0xb749, + 0xb74a, 0xb74b, 0xb74c, 0xb74d, 0xb74e, 0xb74f, 0xb750, 0xb751, + 0xb752, 0xb753, 0xb754, 0xb755, 0xb756, 0xb757, 0xb758, 0xb759, + 0xb75a, 0xb75b, 0xb75c, 0xb75d, 0xb75e, 0xb75f, 0xb760, 0xb761, + 0xb762, 0xb763, 0xb764, 0xb765, 0xb766, 0xb767, 0xb768, 0xb769, + 0xb76a, 0xb76b, 0xb76c, 0xb76d, 0xb76e, 0xb76f, 0xb770, 0xb771, + 0xb772, 0xb773, 0xb774, 0xb775, 0xb776, 0xb777, 0xb778, 0xb779, + 0xb77a, 0xb77b, 0xb77c, 0xb77d, 0xb77e, 0xb780, 0xb781, 0xb782, + 0xb783, 0xb784, 0xb785, 0xb786, 0xb787, 0xb788, 0xb789, 0xb78a, + 0xb78b, 0xb78c, 0xb78d, 0xb78e, 0xb78f, 0xb790, 0xb791, 0xb792, + 0xb793, 0xb794, 0xb795, 0xb796, 0xb797, 0xb798, 0xb799, 0xb79a, + 0xb79b, 0xb79c, 0xb79d, 0xb79e, 0xb79f, 0xb7a0, 0xb840, 0xb841, + 0xb842, 0xb843, 0xb844, 0xb845, 0xb846, 0xb847, 0xb848, 0xb849, + 0xb84a, 0xb84b, 0xb84c, 0xb84d, 0xb84e, 0xb84f, 0xb850, 0xb851, + 0xb852, 0xb853, 0xb854, 0xb855, 0xb856, 0xb857, 0xb858, 0xb859, + 0xb85a, 0xb85b, 0xb85c, 0xb85d, 0xb85e, 0xb85f, 0xb860, 0xb861, + 0xb862, 0xb863, 0xb864, 0xb865, 0xb866, 0xb867, 0xb868, 0xb869, + 0xb86a, 0xb86b, 0xb86c, 0xb86d, 0xb86e, 0xb86f, 0xb870, 0xb871, + 0xb872, 0xb873, 0xb874, 0xb875, 0xb876, 0xb877, 0xb878, 0xb879, + 0xb87a, 0xb87b, 0xb87c, 0xb87d, 0xb87e, 0xb880, 0xb881, 0xb882, + 0xb883, 0xb884, 0xb885, 0xb886, 0xb887, 0xb888, 0xb889, 0xb88a, + 0xb88b, 0xb88c, 0xb88d, 0xb88e, 0xb88f, 0xb890, 0xb891, 0xb892, + 0xb893, 0xb894, 0xb895, 0xb896, 0xb897, 0xb898, 0xb899, 0xb89a, + 0xb89b, 0xb89c, 0xb89d, 0xb89e, 0xb89f, 0xb8a0, 0xb940, 0xb941, + 0xb942, 0xb943, 0xb944, 0xb945, 0xb946, 0xb947, 0xb948, 0xb949, + 0xb94a, 0xb94b, 0xb94c, 0xb94d, 0xb94e, 0xb94f, 0xb950, 0xb951, + 0xb952, 0xb953, 0xb954, 0xb955, 0xb956, 0xb957, 0xb958, 0xb959, + 0xb95a, 0xb95b, 0xb95c, 0xb95d, 0xb95e, 0xb95f, 0xb960, 0xb961, + 0xb962, 0xb963, 0xb964, 0xb965, 0xb966, 0xb967, 0xb968, 0xb969, + 0xb96a, 0xb96b, 0xb96c, 0xb96d, 0xb96e, 0xb96f, 0xb970, 0xb971, + 0xb972, 0xb973, 0xb974, 0xb975, 0xb976, 0xb977, 0xb978, 0xb979, + 0xb97a, 0xb97b, 0xb97c, 0xb97d, 0xb97e, 0xb980, 0xb981, 0xb982, + 0xb983, 0xb984, 0xb985, 0xb986, 0xb987, 0xb988, 0xb989, 0xb98a, + 0xb98b, 0xb98c, 0xb98d, 0xb98e, 0xb98f, 0xb990, 0xb991, 0xb992, + 0xb993, 0xb994, 0xb995, 0xb996, 0xb997, 0xb998, 0xb999, 0xb99a, + 0xb99b, 0xb99c, 0xb99d, 0xb99e, 0xb99f, 0xb9a0, 0xba40, 0xba41, + 0xba42, 0xba43, 0xba44, 0xba45, 0xba46, 0xba47, 0xba48, 0xba49, + 0xba4a, 0xba4b, 0xba4c, 0xba4d, 0xba4e, 0xba4f, 0xba50, 0xba51, + 0xba52, 0xba53, 0xba54, 0xba55, 0xba56, 0xba57, 0xba58, 0xba59, + 0xba5a, 0xba5b, 0xba5c, 0xba5d, 0xba5e, 0xba5f, 0xba60, 0xba61, + 0xba62, 0xba63, 0xba64, 0xba65, 0xba66, 0xba67, 0xba68, 0xba69, + 0xba6a, 0xba6b, 0xba6c, 0xba6d, 0xba6e, 0xba6f, 0xba70, 0xba71, + 0xba72, 0xba73, 0xba74, 0xba75, 0xba76, 0xba77, 0xba78, 0xba79, + 0xba7a, 0xba7b, 0xba7c, 0xba7d, 0xba7e, 0xba80, 0xba81, 0xba82, + 0xba83, 0xba84, 0xba85, 0xba86, 0xba87, 0xba88, 0xba89, 0xba8a, + 0xba8b, 0xba8c, 0xba8d, 0xba8e, 0xba8f, 0xba90, 0xba91, 0xba92, + 0xba93, 0xba94, 0xba95, 0xba96, 0xba97, 0xba98, 0xba99, 0xba9a, + 0xba9b, 0xba9c, 0xba9d, 0xba9e, 0xba9f, 0xbaa0, 0xbb40, 0xbb41, + 0xbb42, 0xbb43, 0xbb44, 0xbb45, 0xbb46, 0xbb47, 0xbb48, 0xbb49, + 0xbb4a, 0xbb4b, 0xbb4c, 0xbb4d, 0xbb4e, 0xbb4f, 0xbb50, 0xbb51, + 0xbb52, 0xbb53, 0xbb54, 0xbb55, 0xbb56, 0xbb57, 0xbb58, 0xbb59, + 0xbb5a, 0xbb5b, 0xbb5c, 0xbb5d, 0xbb5e, 0xbb5f, 0xbb60, 0xbb61, + 0xbb62, 0xbb63, 0xbb64, 0xbb65, 0xbb66, 0xbb67, 0xbb68, 0xbb69, + 0xbb6a, 0xbb6b, 0xbb6c, 0xbb6d, 0xbb6e, 0xbb6f, 0xbb70, 0xbb71, + 0xbb72, 0xbb73, 0xbb74, 0xbb75, 0xbb76, 0xbb77, 0xbb78, 0xbb79, + 0xbb7a, 0xbb7b, 0xbb7c, 0xbb7d, 0xbb7e, 0xbb80, 0xbb81, 0xbb82, + 0xbb83, 0xbb84, 0xbb85, 0xbb86, 0xbb87, 0xbb88, 0xbb89, 0xbb8a, + 0xbb8b, 0xbb8c, 0xbb8d, 0xbb8e, 0xbb8f, 0xbb90, 0xbb91, 0xbb92, + 0xbb93, 0xbb94, 0xbb95, 0xbb96, 0xbb97, 0xbb98, 0xbb99, 0xbb9a, + 0xbb9b, 0xbb9c, 0xbb9d, 0xbb9e, 0xbb9f, 0xbba0, 0xbc40, 0xbc41, + 0xbc42, 0xbc43, 0xbc44, 0xbc45, 0xbc46, 0xbc47, 0xbc48, 0xbc49, + 0xbc4a, 0xbc4b, 0xbc4c, 0xbc4d, 0xbc4e, 0xbc4f, 0xbc50, 0xbc51, + 0xbc52, 0xbc53, 0xbc54, 0xbc55, 0xbc56, 0xbc57, 0xbc58, 0xbc59, + 0xbc5a, 0xbc5b, 0xbc5c, 0xbc5d, 0xbc5e, 0xbc5f, 0xbc60, 0xbc61, + 0xbc62, 0xbc63, 0xbc64, 0xbc65, 0xbc66, 0xbc67, 0xbc68, 0xbc69, + 0xbc6a, 0xbc6b, 0xbc6c, 0xbc6d, 0xbc6e, 0xbc6f, 0xbc70, 0xbc71, + 0xbc72, 0xbc73, 0xbc74, 0xbc75, 0xbc76, 0xbc77, 0xbc78, 0xbc79, + 0xbc7a, 0xbc7b, 0xbc7c, 0xbc7d, 0xbc7e, 0xbc80, 0xbc81, 0xbc82, + 0xbc83, 0xbc84, 0xbc85, 0xbc86, 0xbc87, 0xbc88, 0xbc89, 0xbc8a, + 0xbc8b, 0xbc8c, 0xbc8d, 0xbc8e, 0xbc8f, 0xbc90, 0xbc91, 0xbc92, + 0xbc93, 0xbc94, 0xbc95, 0xbc96, 0xbc97, 0xbc98, 0xbc99, 0xbc9a, + 0xbc9b, 0xbc9c, 0xbc9d, 0xbc9e, 0xbc9f, 0xbca0, 0xbd40, 0xbd41, + 0xbd42, 0xbd43, 0xbd44, 0xbd45, 0xbd46, 0xbd47, 0xbd48, 0xbd49, + 0xbd4a, 0xbd4b, 0xbd4c, 0xbd4d, 0xbd4e, 0xbd4f, 0xbd50, 0xbd51, + 0xbd52, 0xbd53, 0xbd54, 0xbd55, 0xbd56, 0xbd57, 0xbd58, 0xbd59, + 0xbd5a, 0xbd5b, 0xbd5c, 0xbd5d, 0xbd5e, 0xbd5f, 0xbd60, 0xbd61, + 0xbd62, 0xbd63, 0xbd64, 0xbd65, 0xbd66, 0xbd67, 0xbd68, 0xbd69, + 0xbd6a, 0xbd6b, 0xbd6c, 0xbd6d, 0xbd6e, 0xbd6f, 0xbd70, 0xbd71, + 0xbd72, 0xbd73, 0xbd74, 0xbd75, 0xbd76, 0xbd77, 0xbd78, 0xbd79, + 0xbd7a, 0xbd7b, 0xbd7c, 0xbd7d, 0xbd7e, 0xbd80, 0xbd81, 0xbd82, + 0xbd83, 0xbd84, 0xbd85, 0xbd86, 0xbd87, 0xbd88, 0xbd89, 0xbd8a, + 0xbd8b, 0xbd8c, 0xbd8d, 0xbd8e, 0xbd8f, 0xbd90, 0xbd91, 0xbd92, + 0xbd93, 0xbd94, 0xbd95, 0xbd96, 0xbd97, 0xbd98, 0xbd99, 0xbd9a, + 0xbd9b, 0xbd9c, 0xbd9d, 0xbd9e, 0xbd9f, 0xbda0, 0xbe40, 0xbe41, + 0xbe42, 0xbe43, 0xbe44, 0xbe45, 0xbe46, 0xbe47, 0xbe48, 0xbe49, + 0xbe4a, 0xbe4b, 0xbe4c, 0xbe4d, 0xbe4e, 0xbe4f, 0xbe50, 0xbe51, + 0xbe52, 0xbe53, 0xbe54, 0xbe55, 0xbe56, 0xbe57, 0xbe58, 0xbe59, + 0xbe5a, 0xbe5b, 0xbe5c, 0xbe5d, 0xbe5e, 0xbe5f, 0xbe60, 0xbe61, + 0xbe62, 0xbe63, 0xbe64, 0xbe65, 0xbe66, 0xbe67, 0xbe68, 0xbe69, + 0xbe6a, 0xbe6b, 0xbe6c, 0xbe6d, 0xbe6e, 0xbe6f, 0xbe70, 0xbe71, + 0xbe72, 0xbe73, 0xbe74, 0xbe75, 0xbe76, 0xbe77, 0xbe78, 0xbe79, + 0xbe7a, 0xbe7b, 0xbe7c, 0xbe7d, 0xbe7e, 0xbe80, 0xbe81, 0xbe82, + 0xbe83, 0xbe84, 0xbe85, 0xbe86, 0xbe87, 0xbe88, 0xbe89, 0xbe8a, + 0xbe8b, 0xbe8c, 0xbe8d, 0xbe8e, 0xbe8f, 0xbe90, 0xbe91, 0xbe92, + 0xbe93, 0xbe94, 0xbe95, 0xbe96, 0xbe97, 0xbe98, 0xbe99, 0xbe9a, + 0xbe9b, 0xbe9c, 0xbe9d, 0xbe9e, 0xbe9f, 0xbea0, 0xbf40, 0xbf41, + 0xbf42, 0xbf43, 0xbf44, 0xbf45, 0xbf46, 0xbf47, 0xbf48, 0xbf49, + 0xbf4a, 0xbf4b, 0xbf4c, 0xbf4d, 0xbf4e, 0xbf4f, 0xbf50, 0xbf51, + 0xbf52, 0xbf53, 0xbf54, 0xbf55, 0xbf56, 0xbf57, 0xbf58, 0xbf59, + 0xbf5a, 0xbf5b, 0xbf5c, 0xbf5d, 0xbf5e, 0xbf5f, 0xbf60, 0xbf61, + 0xbf62, 0xbf63, 0xbf64, 0xbf65, 0xbf66, 0xbf67, 0xbf68, 0xbf69, + 0xbf6a, 0xbf6b, 0xbf6c, 0xbf6d, 0xbf6e, 0xbf6f, 0xbf70, 0xbf71, + 0xbf72, 0xbf73, 0xbf74, 0xbf75, 0xbf76, 0xbf77, 0xbf78, 0xbf79, + 0xbf7a, 0xbf7b, 0xbf7c, 0xbf7d, 0xbf7e, 0xbf80, 0xbf81, 0xbf82, + 0xbf83, 0xbf84, 0xbf85, 0xbf86, 0xbf87, 0xbf88, 0xbf89, 0xbf8a, + 0xbf8b, 0xbf8c, 0xbf8d, 0xbf8e, 0xbf8f, 0xbf90, 0xbf91, 0xbf92, + 0xbf93, 0xbf94, 0xbf95, 0xbf96, 0xbf97, 0xbf98, 0xbf99, 0xbf9a, + 0xbf9b, 0xbf9c, 0xbf9d, 0xbf9e, 0xbf9f, 0xbfa0, 0xc040, 0xc041, + 0xc042, 0xc043, 0xc044, 0xc045, 0xc046, 0xc047, 0xc048, 0xc049, + 0xc04a, 0xc04b, 0xc04c, 0xc04d, 0xc04e, 0xc04f, 0xc050, 0xc051, + 0xc052, 0xc053, 0xc054, 0xc055, 0xc056, 0xc057, 0xc058, 0xc059, + 0xc05a, 0xc05b, 0xc05c, 0xc05d, 0xc05e, 0xc05f, 0xc060, 0xc061, + 0xc062, 0xc063, 0xc064, 0xc065, 0xc066, 0xc067, 0xc068, 0xc069, + 0xc06a, 0xc06b, 0xc06c, 0xc06d, 0xc06e, 0xc06f, 0xc070, 0xc071, + 0xc072, 0xc073, 0xc074, 0xc075, 0xc076, 0xc077, 0xc078, 0xc079, + 0xc07a, 0xc07b, 0xc07c, 0xc07d, 0xc07e, 0xc080, 0xc081, 0xc082, + 0xc083, 0xc084, 0xc085, 0xc086, 0xc087, 0xc088, 0xc089, 0xc08a, + 0xc08b, 0xc08c, 0xc08d, 0xc08e, 0xc08f, 0xc090, 0xc091, 0xc092, + 0xc093, 0xc094, 0xc095, 0xc096, 0xc097, 0xc098, 0xc099, 0xc09a, + 0xc09b, 0xc09c, 0xc09d, 0xc09e, 0xc09f, 0xc0a0, 0xc140, 0xc141, + 0xc142, 0xc143, 0xc144, 0xc145, 0xc146, 0xc147, 0xc148, 0xc149, + 0xc14a, 0xc14b, 0xc14c, 0xc14d, 0xc14e, 0xc14f, 0xc150, 0xc151, + 0xc152, 0xc153, 0xc154, 0xc155, 0xc156, 0xc157, 0xc158, 0xc159, + 0xc15a, 0xc15b, 0xc15c, 0xc15d, 0xc15e, 0xc15f, 0xc160, 0xc161, + 0xc162, 0xc163, 0xc164, 0xc165, 0xc166, 0xc167, 0xc168, 0xc169, + 0xc16a, 0xc16b, 0xc16c, 0xc16d, 0xc16e, 0xc16f, 0xc170, 0xc171, + 0xc172, 0xc173, 0xc174, 0xc175, 0xc176, 0xc177, 0xc178, 0xc179, + 0xc17a, 0xc17b, 0xc17c, 0xc17d, 0xc17e, 0xc180, 0xc181, 0xc182, + 0xc183, 0xc184, 0xc185, 0xc186, 0xc187, 0xc188, 0xc189, 0xc18a, + 0xc18b, 0xc18c, 0xc18d, 0xc18e, 0xc18f, 0xc190, 0xc191, 0xc192, + 0xc193, 0xc194, 0xc195, 0xc196, 0xc197, 0xc198, 0xc199, 0xc19a, + 0xc19b, 0xc19c, 0xc19d, 0xc19e, 0xc19f, 0xc1a0, 0xc240, 0xc241, + 0xc242, 0xc243, 0xc244, 0xc245, 0xc246, 0xc247, 0xc248, 0xc249, + 0xc24a, 0xc24b, 0xc24c, 0xc24d, 0xc24e, 0xc24f, 0xc250, 0xc251, + 0xc252, 0xc253, 0xc254, 0xc255, 0xc256, 0xc257, 0xc258, 0xc259, + 0xc25a, 0xc25b, 0xc25c, 0xc25d, 0xc25e, 0xc25f, 0xc260, 0xc261, + 0xc262, 0xc263, 0xc264, 0xc265, 0xc266, 0xc267, 0xc268, 0xc269, + 0xc26a, 0xc26b, 0xc26c, 0xc26d, 0xc26e, 0xc26f, 0xc270, 0xc271, + 0xc272, 0xc273, 0xc274, 0xc275, 0xc276, 0xc277, 0xc278, 0xc279, + 0xc27a, 0xc27b, 0xc27c, 0xc27d, 0xc27e, 0xc280, 0xc281, 0xc282, + 0xc283, 0xc284, 0xc285, 0xc286, 0xc287, 0xc288, 0xc289, 0xc28a, + 0xc28b, 0xc28c, 0xc28d, 0xc28e, 0xc28f, 0xc290, 0xc291, 0xc292, + 0xc293, 0xc294, 0xc295, 0xc296, 0xc297, 0xc298, 0xc299, 0xc29a, + 0xc29b, 0xc29c, 0xc29d, 0xc29e, 0xc29f, 0xc2a0, 0xc340, 0xc341, + 0xc342, 0xc343, 0xc344, 0xc345, 0xc346, 0xc347, 0xc348, 0xc349, + 0xc34a, 0xc34b, 0xc34c, 0xc34d, 0xc34e, 0xc34f, 0xc350, 0xc351, + 0xc352, 0xc353, 0xc354, 0xc355, 0xc356, 0xc357, 0xc358, 0xc359, + 0xc35a, 0xc35b, 0xc35c, 0xc35d, 0xc35e, 0xc35f, 0xc360, 0xc361, + 0xc362, 0xc363, 0xc364, 0xc365, 0xc366, 0xc367, 0xc368, 0xc369, + 0xc36a, 0xc36b, 0xc36c, 0xc36d, 0xc36e, 0xc36f, 0xc370, 0xc371, + 0xc372, 0xc373, 0xc374, 0xc375, 0xc376, 0xc377, 0xc378, 0xc379, + 0xc37a, 0xc37b, 0xc37c, 0xc37d, 0xc37e, 0xc380, 0xc381, 0xc382, + 0xc383, 0xc384, 0xc385, 0xc386, 0xc387, 0xc388, 0xc389, 0xc38a, + 0xc38b, 0xc38c, 0xc38d, 0xc38e, 0xc38f, 0xc390, 0xc391, 0xc392, + 0xc393, 0xc394, 0xc395, 0xc396, 0xc397, 0xc398, 0xc399, 0xc39a, + 0xc39b, 0xc39c, 0xc39d, 0xc39e, 0xc39f, 0xc3a0, 0xc440, 0xc441, + 0xc442, 0xc443, 0xc444, 0xc445, 0xc446, 0xc447, 0xc448, 0xc449, + 0xc44a, 0xc44b, 0xc44c, 0xc44d, 0xc44e, 0xc44f, 0xc450, 0xc451, + 0xc452, 0xc453, 0xc454, 0xc455, 0xc456, 0xc457, 0xc458, 0xc459, + 0xc45a, 0xc45b, 0xc45c, 0xc45d, 0xc45e, 0xc45f, 0xc460, 0xc461, + 0xc462, 0xc463, 0xc464, 0xc465, 0xc466, 0xc467, 0xc468, 0xc469, + 0xc46a, 0xc46b, 0xc46c, 0xc46d, 0xc46e, 0xc46f, 0xc470, 0xc471, + 0xc472, 0xc473, 0xc474, 0xc475, 0xc476, 0xc477, 0xc478, 0xc479, + 0xc47a, 0xc47b, 0xc47c, 0xc47d, 0xc47e, 0xc480, 0xc481, 0xc482, + 0xc483, 0xc484, 0xc485, 0xc486, 0xc487, 0xc488, 0xc489, 0xc48a, + 0xc48b, 0xc48c, 0xc48d, 0xc48e, 0xc48f, 0xc490, 0xc491, 0xc492, + 0xc493, 0xc494, 0xc495, 0xc496, 0xc497, 0xc498, 0xc499, 0xc49a, + 0xc49b, 0xc49c, 0xc49d, 0xc49e, 0xc49f, 0xc4a0, 0xc540, 0xc541, + 0xc542, 0xc543, 0xc544, 0xc545, 0xc546, 0xc547, 0xc548, 0xc549, + 0xc54a, 0xc54b, 0xc54c, 0xc54d, 0xc54e, 0xc54f, 0xc550, 0xc551, + 0xc552, 0xc553, 0xc554, 0xc555, 0xc556, 0xc557, 0xc558, 0xc559, + 0xc55a, 0xc55b, 0xc55c, 0xc55d, 0xc55e, 0xc55f, 0xc560, 0xc561, + 0xc562, 0xc563, 0xc564, 0xc565, 0xc566, 0xc567, 0xc568, 0xc569, + 0xc56a, 0xc56b, 0xc56c, 0xc56d, 0xc56e, 0xc56f, 0xc570, 0xc571, + 0xc572, 0xc573, 0xc574, 0xc575, 0xc576, 0xc577, 0xc578, 0xc579, + 0xc57a, 0xc57b, 0xc57c, 0xc57d, 0xc57e, 0xc580, 0xc581, 0xc582, + 0xc583, 0xc584, 0xc585, 0xc586, 0xc587, 0xc588, 0xc589, 0xc58a, + 0xc58b, 0xc58c, 0xc58d, 0xc58e, 0xc58f, 0xc590, 0xc591, 0xc592, + 0xc593, 0xc594, 0xc595, 0xc596, 0xc597, 0xc598, 0xc599, 0xc59a, + 0xc59b, 0xc59c, 0xc59d, 0xc59e, 0xc59f, 0xc5a0, 0xc640, 0xc641, + 0xc642, 0xc643, 0xc644, 0xc645, 0xc646, 0xc647, 0xc648, 0xc649, + 0xc64a, 0xc64b, 0xc64c, 0xc64d, 0xc64e, 0xc64f, 0xc650, 0xc651, + 0xc652, 0xc653, 0xc654, 0xc655, 0xc656, 0xc657, 0xc658, 0xc659, + 0xc65a, 0xc65b, 0xc65c, 0xc65d, 0xc65e, 0xc65f, 0xc660, 0xc661, + 0xc662, 0xc663, 0xc664, 0xc665, 0xc666, 0xc667, 0xc668, 0xc669, + 0xc66a, 0xc66b, 0xc66c, 0xc66d, 0xc66e, 0xc66f, 0xc670, 0xc671, + 0xc672, 0xc673, 0xc674, 0xc675, 0xc676, 0xc677, 0xc678, 0xc679, + 0xc67a, 0xc67b, 0xc67c, 0xc67d, 0xc67e, 0xc680, 0xc681, 0xc682, + 0xc683, 0xc684, 0xc685, 0xc686, 0xc687, 0xc688, 0xc689, 0xc68a, + 0xc68b, 0xc68c, 0xc68d, 0xc68e, 0xc68f, 0xc690, 0xc691, 0xc692, + 0xc693, 0xc694, 0xc695, 0xc696, 0xc697, 0xc698, 0xc699, 0xc69a, + 0xc69b, 0xc69c, 0xc69d, 0xc69e, 0xc69f, 0xc6a0, 0xc740, 0xc741, + 0xc742, 0xc743, 0xc744, 0xc745, 0xc746, 0xc747, 0xc748, 0xc749, + 0xc74a, 0xc74b, 0xc74c, 0xc74d, 0xc74e, 0xc74f, 0xc750, 0xc751, + 0xc752, 0xc753, 0xc754, 0xc755, 0xc756, 0xc757, 0xc758, 0xc759, + 0xc75a, 0xc75b, 0xc75c, 0xc75d, 0xc75e, 0xc75f, 0xc760, 0xc761, + 0xc762, 0xc763, 0xc764, 0xc765, 0xc766, 0xc767, 0xc768, 0xc769, + 0xc76a, 0xc76b, 0xc76c, 0xc76d, 0xc76e, 0xc76f, 0xc770, 0xc771, + 0xc772, 0xc773, 0xc774, 0xc775, 0xc776, 0xc777, 0xc778, 0xc779, + 0xc77a, 0xc77b, 0xc77c, 0xc77d, 0xc77e, 0xc780, 0xc781, 0xc782, + 0xc783, 0xc784, 0xc785, 0xc786, 0xc787, 0xc788, 0xc789, 0xc78a, + 0xc78b, 0xc78c, 0xc78d, 0xc78e, 0xc78f, 0xc790, 0xc791, 0xc792, + 0xc793, 0xc794, 0xc795, 0xc796, 0xc797, 0xc798, 0xc799, 0xc79a, + 0xc79b, 0xc79c, 0xc79d, 0xc79e, 0xc79f, 0xc7a0, 0xc840, 0xc841, + 0xc842, 0xc843, 0xc844, 0xc845, 0xc846, 0xc847, 0xc848, 0xc849, + 0xc84a, 0xc84b, 0xc84c, 0xc84d, 0xc84e, 0xc84f, 0xc850, 0xc851, + 0xc852, 0xc853, 0xc854, 0xc855, 0xc856, 0xc857, 0xc858, 0xc859, + 0xc85a, 0xc85b, 0xc85c, 0xc85d, 0xc85e, 0xc85f, 0xc860, 0xc861, + 0xc862, 0xc863, 0xc864, 0xc865, 0xc866, 0xc867, 0xc868, 0xc869, + 0xc86a, 0xc86b, 0xc86c, 0xc86d, 0xc86e, 0xc86f, 0xc870, 0xc871, + 0xc872, 0xc873, 0xc874, 0xc875, 0xc876, 0xc877, 0xc878, 0xc879, + 0xc87a, 0xc87b, 0xc87c, 0xc87d, 0xc87e, 0xc880, 0xc881, 0xc882, + 0xc883, 0xc884, 0xc885, 0xc886, 0xc887, 0xc888, 0xc889, 0xc88a, + 0xc88b, 0xc88c, 0xc88d, 0xc88e, 0xc88f, 0xc890, 0xc891, 0xc892, + 0xc893, 0xc894, 0xc895, 0xc896, 0xc897, 0xc898, 0xc899, 0xc89a, + 0xc89b, 0xc89c, 0xc89d, 0xc89e, 0xc89f, 0xc8a0, 0xc940, 0xc941, + 0xc942, 0xc943, 0xc944, 0xc945, 0xc946, 0xc947, 0xc948, 0xc949, + 0xc94a, 0xc94b, 0xc94c, 0xc94d, 0xc94e, 0xc94f, 0xc950, 0xc951, + 0xc952, 0xc953, 0xc954, 0xc955, 0xc956, 0xc957, 0xc958, 0xc959, + 0xc95a, 0xc95b, 0xc95c, 0xc95d, 0xc95e, 0xc95f, 0xc960, 0xc961, + 0xc962, 0xc963, 0xc964, 0xc965, 0xc966, 0xc967, 0xc968, 0xc969, + 0xc96a, 0xc96b, 0xc96c, 0xc96d, 0xc96e, 0xc96f, 0xc970, 0xc971, + 0xc972, 0xc973, 0xc974, 0xc975, 0xc976, 0xc977, 0xc978, 0xc979, + 0xc97a, 0xc97b, 0xc97c, 0xc97d, 0xc97e, 0xc980, 0xc981, 0xc982, + 0xc983, 0xc984, 0xc985, 0xc986, 0xc987, 0xc988, 0xc989, 0xc98a, + 0xc98b, 0xc98c, 0xc98d, 0xc98e, 0xc98f, 0xc990, 0xc991, 0xc992, + 0xc993, 0xc994, 0xc995, 0xc996, 0xc997, 0xc998, 0xc999, 0xc99a, + 0xc99b, 0xc99c, 0xc99d, 0xc99e, 0xc99f, 0xc9a0, 0xca40, 0xca41, + 0xca42, 0xca43, 0xca44, 0xca45, 0xca46, 0xca47, 0xca48, 0xca49, + 0xca4a, 0xca4b, 0xca4c, 0xca4d, 0xca4e, 0xca4f, 0xca50, 0xca51, + 0xca52, 0xca53, 0xca54, 0xca55, 0xca56, 0xca57, 0xca58, 0xca59, + 0xca5a, 0xca5b, 0xca5c, 0xca5d, 0xca5e, 0xca5f, 0xca60, 0xca61, + 0xca62, 0xca63, 0xca64, 0xca65, 0xca66, 0xca67, 0xca68, 0xca69, + 0xca6a, 0xca6b, 0xca6c, 0xca6d, 0xca6e, 0xca6f, 0xca70, 0xca71, + 0xca72, 0xca73, 0xca74, 0xca75, 0xca76, 0xca77, 0xca78, 0xca79, + 0xca7a, 0xca7b, 0xca7c, 0xca7d, 0xca7e, 0xca80, 0xca81, 0xca82, + 0xca83, 0xca84, 0xca85, 0xca86, 0xca87, 0xca88, 0xca89, 0xca8a, + 0xca8b, 0xca8c, 0xca8d, 0xca8e, 0xca8f, 0xca90, 0xca91, 0xca92, + 0xca93, 0xca94, 0xca95, 0xca96, 0xca97, 0xca98, 0xca99, 0xca9a, + 0xca9b, 0xca9c, 0xca9d, 0xca9e, 0xca9f, 0xcaa0, 0xcb40, 0xcb41, + 0xcb42, 0xcb43, 0xcb44, 0xcb45, 0xcb46, 0xcb47, 0xcb48, 0xcb49, + 0xcb4a, 0xcb4b, 0xcb4c, 0xcb4d, 0xcb4e, 0xcb4f, 0xcb50, 0xcb51, + 0xcb52, 0xcb53, 0xcb54, 0xcb55, 0xcb56, 0xcb57, 0xcb58, 0xcb59, + 0xcb5a, 0xcb5b, 0xcb5c, 0xcb5d, 0xcb5e, 0xcb5f, 0xcb60, 0xcb61, + 0xcb62, 0xcb63, 0xcb64, 0xcb65, 0xcb66, 0xcb67, 0xcb68, 0xcb69, + 0xcb6a, 0xcb6b, 0xcb6c, 0xcb6d, 0xcb6e, 0xcb6f, 0xcb70, 0xcb71, + 0xcb72, 0xcb73, 0xcb74, 0xcb75, 0xcb76, 0xcb77, 0xcb78, 0xcb79, + 0xcb7a, 0xcb7b, 0xcb7c, 0xcb7d, 0xcb7e, 0xcb80, 0xcb81, 0xcb82, + 0xcb83, 0xcb84, 0xcb85, 0xcb86, 0xcb87, 0xcb88, 0xcb89, 0xcb8a, + 0xcb8b, 0xcb8c, 0xcb8d, 0xcb8e, 0xcb8f, 0xcb90, 0xcb91, 0xcb92, + 0xcb93, 0xcb94, 0xcb95, 0xcb96, 0xcb97, 0xcb98, 0xcb99, 0xcb9a, + 0xcb9b, 0xcb9c, 0xcb9d, 0xcb9e, 0xcb9f, 0xcba0, 0xcc40, 0xcc41, + 0xcc42, 0xcc43, 0xcc44, 0xcc45, 0xcc46, 0xcc47, 0xcc48, 0xcc49, + 0xcc4a, 0xcc4b, 0xcc4c, 0xcc4d, 0xcc4e, 0xcc4f, 0xcc50, 0xcc51, + 0xcc52, 0xcc53, 0xcc54, 0xcc55, 0xcc56, 0xcc57, 0xcc58, 0xcc59, + 0xcc5a, 0xcc5b, 0xcc5c, 0xcc5d, 0xcc5e, 0xcc5f, 0xcc60, 0xcc61, + 0xcc62, 0xcc63, 0xcc64, 0xcc65, 0xcc66, 0xcc67, 0xcc68, 0xcc69, + 0xcc6a, 0xcc6b, 0xcc6c, 0xcc6d, 0xcc6e, 0xcc6f, 0xcc70, 0xcc71, + 0xcc72, 0xcc73, 0xcc74, 0xcc75, 0xcc76, 0xcc77, 0xcc78, 0xcc79, + 0xcc7a, 0xcc7b, 0xcc7c, 0xcc7d, 0xcc7e, 0xcc80, 0xcc81, 0xcc82, + 0xcc83, 0xcc84, 0xcc85, 0xcc86, 0xcc87, 0xcc88, 0xcc89, 0xcc8a, + 0xcc8b, 0xcc8c, 0xcc8d, 0xcc8e, 0xcc8f, 0xcc90, 0xcc91, 0xcc92, + 0xcc93, 0xcc94, 0xcc95, 0xcc96, 0xcc97, 0xcc98, 0xcc99, 0xcc9a, + 0xcc9b, 0xcc9c, 0xcc9d, 0xcc9e, 0xcc9f, 0xcca0, 0xcd40, 0xcd41, + 0xcd42, 0xcd43, 0xcd44, 0xcd45, 0xcd46, 0xcd47, 0xcd48, 0xcd49, + 0xcd4a, 0xcd4b, 0xcd4c, 0xcd4d, 0xcd4e, 0xcd4f, 0xcd50, 0xcd51, + 0xcd52, 0xcd53, 0xcd54, 0xcd55, 0xcd56, 0xcd57, 0xcd58, 0xcd59, + 0xcd5a, 0xcd5b, 0xcd5c, 0xcd5d, 0xcd5e, 0xcd5f, 0xcd60, 0xcd61, + 0xcd62, 0xcd63, 0xcd64, 0xcd65, 0xcd66, 0xcd67, 0xcd68, 0xcd69, + 0xcd6a, 0xcd6b, 0xcd6c, 0xcd6d, 0xcd6e, 0xcd6f, 0xcd70, 0xcd71, + 0xcd72, 0xcd73, 0xcd74, 0xcd75, 0xcd76, 0xcd77, 0xcd78, 0xcd79, + 0xcd7a, 0xcd7b, 0xcd7c, 0xcd7d, 0xcd7e, 0xcd80, 0xcd81, 0xcd82, + 0xcd83, 0xcd84, 0xcd85, 0xcd86, 0xcd87, 0xcd88, 0xcd89, 0xcd8a, + 0xcd8b, 0xcd8c, 0xcd8d, 0xcd8e, 0xcd8f, 0xcd90, 0xcd91, 0xcd92, + 0xcd93, 0xcd94, 0xcd95, 0xcd96, 0xcd97, 0xcd98, 0xcd99, 0xcd9a, + 0xcd9b, 0xcd9c, 0xcd9d, 0xcd9e, 0xcd9f, 0xcda0, 0xce40, 0xce41, + 0xce42, 0xce43, 0xce44, 0xce45, 0xce46, 0xce47, 0xce48, 0xce49, + 0xce4a, 0xce4b, 0xce4c, 0xce4d, 0xce4e, 0xce4f, 0xce50, 0xce51, + 0xce52, 0xce53, 0xce54, 0xce55, 0xce56, 0xce57, 0xce58, 0xce59, + 0xce5a, 0xce5b, 0xce5c, 0xce5d, 0xce5e, 0xce5f, 0xce60, 0xce61, + 0xce62, 0xce63, 0xce64, 0xce65, 0xce66, 0xce67, 0xce68, 0xce69, + 0xce6a, 0xce6b, 0xce6c, 0xce6d, 0xce6e, 0xce6f, 0xce70, 0xce71, + 0xce72, 0xce73, 0xce74, 0xce75, 0xce76, 0xce77, 0xce78, 0xce79, + 0xce7a, 0xce7b, 0xce7c, 0xce7d, 0xce7e, 0xce80, 0xce81, 0xce82, + 0xce83, 0xce84, 0xce85, 0xce86, 0xce87, 0xce88, 0xce89, 0xce8a, + 0xce8b, 0xce8c, 0xce8d, 0xce8e, 0xce8f, 0xce90, 0xce91, 0xce92, + 0xce93, 0xce94, 0xce95, 0xce96, 0xce97, 0xce98, 0xce99, 0xce9a, + 0xce9b, 0xce9c, 0xce9d, 0xce9e, 0xce9f, 0xcea0, 0xcf40, 0xcf41, + 0xcf42, 0xcf43, 0xcf44, 0xcf45, 0xcf46, 0xcf47, 0xcf48, 0xcf49, + 0xcf4a, 0xcf4b, 0xcf4c, 0xcf4d, 0xcf4e, 0xcf4f, 0xcf50, 0xcf51, + 0xcf52, 0xcf53, 0xcf54, 0xcf55, 0xcf56, 0xcf57, 0xcf58, 0xcf59, + 0xcf5a, 0xcf5b, 0xcf5c, 0xcf5d, 0xcf5e, 0xcf5f, 0xcf60, 0xcf61, + 0xcf62, 0xcf63, 0xcf64, 0xcf65, 0xcf66, 0xcf67, 0xcf68, 0xcf69, + 0xcf6a, 0xcf6b, 0xcf6c, 0xcf6d, 0xcf6e, 0xcf6f, 0xcf70, 0xcf71, + 0xcf72, 0xcf73, 0xcf74, 0xcf75, 0xcf76, 0xcf77, 0xcf78, 0xcf79, + 0xcf7a, 0xcf7b, 0xcf7c, 0xcf7d, 0xcf7e, 0xcf80, 0xcf81, 0xcf82, + 0xcf83, 0xcf84, 0xcf85, 0xcf86, 0xcf87, 0xcf88, 0xcf89, 0xcf8a, + 0xcf8b, 0xcf8c, 0xcf8d, 0xcf8e, 0xcf8f, 0xcf90, 0xcf91, 0xcf92, + 0xcf93, 0xcf94, 0xcf95, 0xcf96, 0xcf97, 0xcf98, 0xcf99, 0xcf9a, + 0xcf9b, 0xcf9c, 0xcf9d, 0xcf9e, 0xcf9f, 0xcfa0, 0xd040, 0xd041, + 0xd042, 0xd043, 0xd044, 0xd045, 0xd046, 0xd047, 0xd048, 0xd049, + 0xd04a, 0xd04b, 0xd04c, 0xd04d, 0xd04e, 0xd04f, 0xd050, 0xd051, + 0xd052, 0xd053, 0xd054, 0xd055, 0xd056, 0xd057, 0xd058, 0xd059, + 0xd05a, 0xd05b, 0xd05c, 0xd05d, 0xd05e, 0xd05f, 0xd060, 0xd061, + 0xd062, 0xd063, 0xd064, 0xd065, 0xd066, 0xd067, 0xd068, 0xd069, + 0xd06a, 0xd06b, 0xd06c, 0xd06d, 0xd06e, 0xd06f, 0xd070, 0xd071, + 0xd072, 0xd073, 0xd074, 0xd075, 0xd076, 0xd077, 0xd078, 0xd079, + 0xd07a, 0xd07b, 0xd07c, 0xd07d, 0xd07e, 0xd080, 0xd081, 0xd082, + 0xd083, 0xd084, 0xd085, 0xd086, 0xd087, 0xd088, 0xd089, 0xd08a, + 0xd08b, 0xd08c, 0xd08d, 0xd08e, 0xd08f, 0xd090, 0xd091, 0xd092, + 0xd093, 0xd094, 0xd095, 0xd096, 0xd097, 0xd098, 0xd099, 0xd09a, + 0xd09b, 0xd09c, 0xd09d, 0xd09e, 0xd09f, 0xd0a0, 0xd140, 0xd141, + 0xd142, 0xd143, 0xd144, 0xd145, 0xd146, 0xd147, 0xd148, 0xd149, + 0xd14a, 0xd14b, 0xd14c, 0xd14d, 0xd14e, 0xd14f, 0xd150, 0xd151, + 0xd152, 0xd153, 0xd154, 0xd155, 0xd156, 0xd157, 0xd158, 0xd159, + 0xd15a, 0xd15b, 0xd15c, 0xd15d, 0xd15e, 0xd15f, 0xd160, 0xd161, + 0xd162, 0xd163, 0xd164, 0xd165, 0xd166, 0xd167, 0xd168, 0xd169, + 0xd16a, 0xd16b, 0xd16c, 0xd16d, 0xd16e, 0xd16f, 0xd170, 0xd171, + 0xd172, 0xd173, 0xd174, 0xd175, 0xd176, 0xd177, 0xd178, 0xd179, + 0xd17a, 0xd17b, 0xd17c, 0xd17d, 0xd17e, 0xd180, 0xd181, 0xd182, + 0xd183, 0xd184, 0xd185, 0xd186, 0xd187, 0xd188, 0xd189, 0xd18a, + 0xd18b, 0xd18c, 0xd18d, 0xd18e, 0xd18f, 0xd190, 0xd191, 0xd192, + 0xd193, 0xd194, 0xd195, 0xd196, 0xd197, 0xd198, 0xd199, 0xd19a, + 0xd19b, 0xd19c, 0xd19d, 0xd19e, 0xd19f, 0xd1a0, 0xd240, 0xd241, + 0xd242, 0xd243, 0xd244, 0xd245, 0xd246, 0xd247, 0xd248, 0xd249, + 0xd24a, 0xd24b, 0xd24c, 0xd24d, 0xd24e, 0xd24f, 0xd250, 0xd251, + 0xd252, 0xd253, 0xd254, 0xd255, 0xd256, 0xd257, 0xd258, 0xd259, + 0xd25a, 0xd25b, 0xd25c, 0xd25d, 0xd25e, 0xd25f, 0xd260, 0xd261, + 0xd262, 0xd263, 0xd264, 0xd265, 0xd266, 0xd267, 0xd268, 0xd269, + 0xd26a, 0xd26b, 0xd26c, 0xd26d, 0xd26e, 0xd26f, 0xd270, 0xd271, + 0xd272, 0xd273, 0xd274, 0xd275, 0xd276, 0xd277, 0xd278, 0xd279, + 0xd27a, 0xd27b, 0xd27c, 0xd27d, 0xd27e, 0xd280, 0xd281, 0xd282, + 0xd283, 0xd284, 0xd285, 0xd286, 0xd287, 0xd288, 0xd289, 0xd28a, + 0xd28b, 0xd28c, 0xd28d, 0xd28e, 0xd28f, 0xd290, 0xd291, 0xd292, + 0xd293, 0xd294, 0xd295, 0xd296, 0xd297, 0xd298, 0xd299, 0xd29a, + 0xd29b, 0xd29c, 0xd29d, 0xd29e, 0xd29f, 0xd2a0, 0xd340, 0xd341, + 0xd342, 0xd343, 0xd344, 0xd345, 0xd346, 0xd347, 0xd348, 0xd349, + 0xd34a, 0xd34b, 0xd34c, 0xd34d, 0xd34e, 0xd34f, 0xd350, 0xd351, + 0xd352, 0xd353, 0xd354, 0xd355, 0xd356, 0xd357, 0xd358, 0xd359, + 0xd35a, 0xd35b, 0xd35c, 0xd35d, 0xd35e, 0xd35f, 0xd360, 0xd361, + 0xd362, 0xd363, 0xd364, 0xd365, 0xd366, 0xd367, 0xd368, 0xd369, + 0xd36a, 0xd36b, 0xd36c, 0xd36d, 0xd36e, 0xd36f, 0xd370, 0xd371, + 0xd372, 0xd373, 0xd374, 0xd375, 0xd376, 0xd377, 0xd378, 0xd379, + 0xd37a, 0xd37b, 0xd37c, 0xd37d, 0xd37e, 0xd380, 0xd381, 0xd382, + 0xd383, 0xd384, 0xd385, 0xd386, 0xd387, 0xd388, 0xd389, 0xd38a, + 0xd38b, 0xd38c, 0xd38d, 0xd38e, 0xd38f, 0xd390, 0xd391, 0xd392, + 0xd393, 0xd394, 0xd395, 0xd396, 0xd397, 0xd398, 0xd399, 0xd39a, + 0xd39b, 0xd39c, 0xd39d, 0xd39e, 0xd39f, 0xd3a0, 0xd440, 0xd441, + 0xd442, 0xd443, 0xd444, 0xd445, 0xd446, 0xd447, 0xd448, 0xd449, + 0xd44a, 0xd44b, 0xd44c, 0xd44d, 0xd44e, 0xd44f, 0xd450, 0xd451, + 0xd452, 0xd453, 0xd454, 0xd455, 0xd456, 0xd457, 0xd458, 0xd459, + 0xd45a, 0xd45b, 0xd45c, 0xd45d, 0xd45e, 0xd45f, 0xd460, 0xd461, + 0xd462, 0xd463, 0xd464, 0xd465, 0xd466, 0xd467, 0xd468, 0xd469, + 0xd46a, 0xd46b, 0xd46c, 0xd46d, 0xd46e, 0xd46f, 0xd470, 0xd471, + 0xd472, 0xd473, 0xd474, 0xd475, 0xd476, 0xd477, 0xd478, 0xd479, + 0xd47a, 0xd47b, 0xd47c, 0xd47d, 0xd47e, 0xd480, 0xd481, 0xd482, + 0xd483, 0xd484, 0xd485, 0xd486, 0xd487, 0xd488, 0xd489, 0xd48a, + 0xd48b, 0xd48c, 0xd48d, 0xd48e, 0xd48f, 0xd490, 0xd491, 0xd492, + 0xd493, 0xd494, 0xd495, 0xd496, 0xd497, 0xd498, 0xd499, 0xd49a, + 0xd49b, 0xd49c, 0xd49d, 0xd49e, 0xd49f, 0xd4a0, 0xd540, 0xd541, + 0xd542, 0xd543, 0xd544, 0xd545, 0xd546, 0xd547, 0xd548, 0xd549, + 0xd54a, 0xd54b, 0xd54c, 0xd54d, 0xd54e, 0xd54f, 0xd550, 0xd551, + 0xd552, 0xd553, 0xd554, 0xd555, 0xd556, 0xd557, 0xd558, 0xd559, + 0xd55a, 0xd55b, 0xd55c, 0xd55d, 0xd55e, 0xd55f, 0xd560, 0xd561, + 0xd562, 0xd563, 0xd564, 0xd565, 0xd566, 0xd567, 0xd568, 0xd569, + 0xd56a, 0xd56b, 0xd56c, 0xd56d, 0xd56e, 0xd56f, 0xd570, 0xd571, + 0xd572, 0xd573, 0xd574, 0xd575, 0xd576, 0xd577, 0xd578, 0xd579, + 0xd57a, 0xd57b, 0xd57c, 0xd57d, 0xd57e, 0xd580, 0xd581, 0xd582, + 0xd583, 0xd584, 0xd585, 0xd586, 0xd587, 0xd588, 0xd589, 0xd58a, + 0xd58b, 0xd58c, 0xd58d, 0xd58e, 0xd58f, 0xd590, 0xd591, 0xd592, + 0xd593, 0xd594, 0xd595, 0xd596, 0xd597, 0xd598, 0xd599, 0xd59a, + 0xd59b, 0xd59c, 0xd59d, 0xd59e, 0xd59f, 0xd5a0, 0xd640, 0xd641, + 0xd642, 0xd643, 0xd644, 0xd645, 0xd646, 0xd647, 0xd648, 0xd649, + 0xd64a, 0xd64b, 0xd64c, 0xd64d, 0xd64e, 0xd64f, 0xd650, 0xd651, + 0xd652, 0xd653, 0xd654, 0xd655, 0xd656, 0xd657, 0xd658, 0xd659, + 0xd65a, 0xd65b, 0xd65c, 0xd65d, 0xd65e, 0xd65f, 0xd660, 0xd661, + 0xd662, 0xd663, 0xd664, 0xd665, 0xd666, 0xd667, 0xd668, 0xd669, + 0xd66a, 0xd66b, 0xd66c, 0xd66d, 0xd66e, 0xd66f, 0xd670, 0xd671, + 0xd672, 0xd673, 0xd674, 0xd675, 0xd676, 0xd677, 0xd678, 0xd679, + 0xd67a, 0xd67b, 0xd67c, 0xd67d, 0xd67e, 0xd680, 0xd681, 0xd682, + 0xd683, 0xd684, 0xd685, 0xd686, 0xd687, 0xd688, 0xd689, 0xd68a, + 0xd68b, 0xd68c, 0xd68d, 0xd68e, 0xd68f, 0xd690, 0xd691, 0xd692, + 0xd693, 0xd694, 0xd695, 0xd696, 0xd697, 0xd698, 0xd699, 0xd69a, + 0xd69b, 0xd69c, 0xd69d, 0xd69e, 0xd69f, 0xd6a0, 0xd740, 0xd741, + 0xd742, 0xd743, 0xd744, 0xd745, 0xd746, 0xd747, 0xd748, 0xd749, + 0xd74a, 0xd74b, 0xd74c, 0xd74d, 0xd74e, 0xd74f, 0xd750, 0xd751, + 0xd752, 0xd753, 0xd754, 0xd755, 0xd756, 0xd757, 0xd758, 0xd759, + 0xd75a, 0xd75b, 0xd75c, 0xd75d, 0xd75e, 0xd75f, 0xd760, 0xd761, + 0xd762, 0xd763, 0xd764, 0xd765, 0xd766, 0xd767, 0xd768, 0xd769, + 0xd76a, 0xd76b, 0xd76c, 0xd76d, 0xd76e, 0xd76f, 0xd770, 0xd771, + 0xd772, 0xd773, 0xd774, 0xd775, 0xd776, 0xd777, 0xd778, 0xd779, + 0xd77a, 0xd77b, 0xd77c, 0xd77d, 0xd77e, 0xd780, 0xd781, 0xd782, + 0xd783, 0xd784, 0xd785, 0xd786, 0xd787, 0xd788, 0xd789, 0xd78a, + 0xd78b, 0xd78c, 0xd78d, 0xd78e, 0xd78f, 0xd790, 0xd791, 0xd792, + 0xd793, 0xd794, 0xd795, 0xd796, 0xd797, 0xd798, 0xd799, 0xd79a, + 0xd79b, 0xd79c, 0xd79d, 0xd79e, 0xd79f, 0xd7a0, 0xd840, 0xd841, + 0xd842, 0xd843, 0xd844, 0xd845, 0xd846, 0xd847, 0xd848, 0xd849, + 0xd84a, 0xd84b, 0xd84c, 0xd84d, 0xd84e, 0xd84f, 0xd850, 0xd851, + 0xd852, 0xd853, 0xd854, 0xd855, 0xd856, 0xd857, 0xd858, 0xd859, + 0xd85a, 0xd85b, 0xd85c, 0xd85d, 0xd85e, 0xd85f, 0xd860, 0xd861, + 0xd862, 0xd863, 0xd864, 0xd865, 0xd866, 0xd867, 0xd868, 0xd869, + 0xd86a, 0xd86b, 0xd86c, 0xd86d, 0xd86e, 0xd86f, 0xd870, 0xd871, + 0xd872, 0xd873, 0xd874, 0xd875, 0xd876, 0xd877, 0xd878, 0xd879, + 0xd87a, 0xd87b, 0xd87c, 0xd87d, 0xd87e, 0xd880, 0xd881, 0xd882, + 0xd883, 0xd884, 0xd885, 0xd886, 0xd887, 0xd888, 0xd889, 0xd88a, + 0xd88b, 0xd88c, 0xd88d, 0xd88e, 0xd88f, 0xd890, 0xd891, 0xd892, + 0xd893, 0xd894, 0xd895, 0xd896, 0xd897, 0xd898, 0xd899, 0xd89a, + 0xd89b, 0xd89c, 0xd89d, 0xd89e, 0xd89f, 0xd8a0, 0xd940, 0xd941, + 0xd942, 0xd943, 0xd944, 0xd945, 0xd946, 0xd947, 0xd948, 0xd949, + 0xd94a, 0xd94b, 0xd94c, 0xd94d, 0xd94e, 0xd94f, 0xd950, 0xd951, + 0xd952, 0xd953, 0xd954, 0xd955, 0xd956, 0xd957, 0xd958, 0xd959, + 0xd95a, 0xd95b, 0xd95c, 0xd95d, 0xd95e, 0xd95f, 0xd960, 0xd961, + 0xd962, 0xd963, 0xd964, 0xd965, 0xd966, 0xd967, 0xd968, 0xd969, + 0xd96a, 0xd96b, 0xd96c, 0xd96d, 0xd96e, 0xd96f, 0xd970, 0xd971, + 0xd972, 0xd973, 0xd974, 0xd975, 0xd976, 0xd977, 0xd978, 0xd979, + 0xd97a, 0xd97b, 0xd97c, 0xd97d, 0xd97e, 0xd980, 0xd981, 0xd982, + 0xd983, 0xd984, 0xd985, 0xd986, 0xd987, 0xd988, 0xd989, 0xd98a, + 0xd98b, 0xd98c, 0xd98d, 0xd98e, 0xd98f, 0xd990, 0xd991, 0xd992, + 0xd993, 0xd994, 0xd995, 0xd996, 0xd997, 0xd998, 0xd999, 0xd99a, + 0xd99b, 0xd99c, 0xd99d, 0xd99e, 0xd99f, 0xd9a0, 0xda40, 0xda41, + 0xda42, 0xda43, 0xda44, 0xda45, 0xda46, 0xda47, 0xda48, 0xda49, + 0xda4a, 0xda4b, 0xda4c, 0xda4d, 0xda4e, 0xda4f, 0xda50, 0xda51, + 0xda52, 0xda53, 0xda54, 0xda55, 0xda56, 0xda57, 0xda58, 0xda59, + 0xda5a, 0xda5b, 0xda5c, 0xda5d, 0xda5e, 0xda5f, 0xda60, 0xda61, + 0xda62, 0xda63, 0xda64, 0xda65, 0xda66, 0xda67, 0xda68, 0xda69, + 0xda6a, 0xda6b, 0xda6c, 0xda6d, 0xda6e, 0xda6f, 0xda70, 0xda71, + 0xda72, 0xda73, 0xda74, 0xda75, 0xda76, 0xda77, 0xda78, 0xda79, + 0xda7a, 0xda7b, 0xda7c, 0xda7d, 0xda7e, 0xda80, 0xda81, 0xda82, + 0xda83, 0xda84, 0xda85, 0xda86, 0xda87, 0xda88, 0xda89, 0xda8a, + 0xda8b, 0xda8c, 0xda8d, 0xda8e, 0xda8f, 0xda90, 0xda91, 0xda92, + 0xda93, 0xda94, 0xda95, 0xda96, 0xda97, 0xda98, 0xda99, 0xda9a, + 0xda9b, 0xda9c, 0xda9d, 0xda9e, 0xda9f, 0xdaa0, 0xdb40, 0xdb41, + 0xdb42, 0xdb43, 0xdb44, 0xdb45, 0xdb46, 0xdb47, 0xdb48, 0xdb49, + 0xdb4a, 0xdb4b, 0xdb4c, 0xdb4d, 0xdb4e, 0xdb4f, 0xdb50, 0xdb51, + 0xdb52, 0xdb53, 0xdb54, 0xdb55, 0xdb56, 0xdb57, 0xdb58, 0xdb59, + 0xdb5a, 0xdb5b, 0xdb5c, 0xdb5d, 0xdb5e, 0xdb5f, 0xdb60, 0xdb61, + 0xdb62, 0xdb63, 0xdb64, 0xdb65, 0xdb66, 0xdb67, 0xdb68, 0xdb69, + 0xdb6a, 0xdb6b, 0xdb6c, 0xdb6d, 0xdb6e, 0xdb6f, 0xdb70, 0xdb71, + 0xdb72, 0xdb73, 0xdb74, 0xdb75, 0xdb76, 0xdb77, 0xdb78, 0xdb79, + 0xdb7a, 0xdb7b, 0xdb7c, 0xdb7d, 0xdb7e, 0xdb80, 0xdb81, 0xdb82, + 0xdb83, 0xdb84, 0xdb85, 0xdb86, 0xdb87, 0xdb88, 0xdb89, 0xdb8a, + 0xdb8b, 0xdb8c, 0xdb8d, 0xdb8e, 0xdb8f, 0xdb90, 0xdb91, 0xdb92, + 0xdb93, 0xdb94, 0xdb95, 0xdb96, 0xdb97, 0xdb98, 0xdb99, 0xdb9a, + 0xdb9b, 0xdb9c, 0xdb9d, 0xdb9e, 0xdb9f, 0xdba0, 0xdc40, 0xdc41, + 0xdc42, 0xdc43, 0xdc44, 0xdc45, 0xdc46, 0xdc47, 0xdc48, 0xdc49, + 0xdc4a, 0xdc4b, 0xdc4c, 0xdc4d, 0xdc4e, 0xdc4f, 0xdc50, 0xdc51, + 0xdc52, 0xdc53, 0xdc54, 0xdc55, 0xdc56, 0xdc57, 0xdc58, 0xdc59, + 0xdc5a, 0xdc5b, 0xdc5c, 0xdc5d, 0xdc5e, 0xdc5f, 0xdc60, 0xdc61, + 0xdc62, 0xdc63, 0xdc64, 0xdc65, 0xdc66, 0xdc67, 0xdc68, 0xdc69, + 0xdc6a, 0xdc6b, 0xdc6c, 0xdc6d, 0xdc6e, 0xdc6f, 0xdc70, 0xdc71, + 0xdc72, 0xdc73, 0xdc74, 0xdc75, 0xdc76, 0xdc77, 0xdc78, 0xdc79, + 0xdc7a, 0xdc7b, 0xdc7c, 0xdc7d, 0xdc7e, 0xdc80, 0xdc81, 0xdc82, + 0xdc83, 0xdc84, 0xdc85, 0xdc86, 0xdc87, 0xdc88, 0xdc89, 0xdc8a, + 0xdc8b, 0xdc8c, 0xdc8d, 0xdc8e, 0xdc8f, 0xdc90, 0xdc91, 0xdc92, + 0xdc93, 0xdc94, 0xdc95, 0xdc96, 0xdc97, 0xdc98, 0xdc99, 0xdc9a, + 0xdc9b, 0xdc9c, 0xdc9d, 0xdc9e, 0xdc9f, 0xdca0, 0xdd40, 0xdd41, + 0xdd42, 0xdd43, 0xdd44, 0xdd45, 0xdd46, 0xdd47, 0xdd48, 0xdd49, + 0xdd4a, 0xdd4b, 0xdd4c, 0xdd4d, 0xdd4e, 0xdd4f, 0xdd50, 0xdd51, + 0xdd52, 0xdd53, 0xdd54, 0xdd55, 0xdd56, 0xdd57, 0xdd58, 0xdd59, + 0xdd5a, 0xdd5b, 0xdd5c, 0xdd5d, 0xdd5e, 0xdd5f, 0xdd60, 0xdd61, + 0xdd62, 0xdd63, 0xdd64, 0xdd65, 0xdd66, 0xdd67, 0xdd68, 0xdd69, + 0xdd6a, 0xdd6b, 0xdd6c, 0xdd6d, 0xdd6e, 0xdd6f, 0xdd70, 0xdd71, + 0xdd72, 0xdd73, 0xdd74, 0xdd75, 0xdd76, 0xdd77, 0xdd78, 0xdd79, + 0xdd7a, 0xdd7b, 0xdd7c, 0xdd7d, 0xdd7e, 0xdd80, 0xdd81, 0xdd82, + 0xdd83, 0xdd84, 0xdd85, 0xdd86, 0xdd87, 0xdd88, 0xdd89, 0xdd8a, + 0xdd8b, 0xdd8c, 0xdd8d, 0xdd8e, 0xdd8f, 0xdd90, 0xdd91, 0xdd92, + 0xdd93, 0xdd94, 0xdd95, 0xdd96, 0xdd97, 0xdd98, 0xdd99, 0xdd9a, + 0xdd9b, 0xdd9c, 0xdd9d, 0xdd9e, 0xdd9f, 0xdda0, 0xde40, 0xde41, + 0xde42, 0xde43, 0xde44, 0xde45, 0xde46, 0xde47, 0xde48, 0xde49, + 0xde4a, 0xde4b, 0xde4c, 0xde4d, 0xde4e, 0xde4f, 0xde50, 0xde51, + 0xde52, 0xde53, 0xde54, 0xde55, 0xde56, 0xde57, 0xde58, 0xde59, + 0xde5a, 0xde5b, 0xde5c, 0xde5d, 0xde5e, 0xde5f, 0xde60, 0xde61, + 0xde62, 0xde63, 0xde64, 0xde65, 0xde66, 0xde67, 0xde68, 0xde69, + 0xde6a, 0xde6b, 0xde6c, 0xde6d, 0xde6e, 0xde6f, 0xde70, 0xde71, + 0xde72, 0xde73, 0xde74, 0xde75, 0xde76, 0xde77, 0xde78, 0xde79, + 0xde7a, 0xde7b, 0xde7c, 0xde7d, 0xde7e, 0xde80, 0xde81, 0xde82, + 0xde83, 0xde84, 0xde85, 0xde86, 0xde87, 0xde88, 0xde89, 0xde8a, + 0xde8b, 0xde8c, 0xde8d, 0xde8e, 0xde8f, 0xde90, 0xde91, 0xde92, + 0xde93, 0xde94, 0xde95, 0xde96, 0xde97, 0xde98, 0xde99, 0xde9a, + 0xde9b, 0xde9c, 0xde9d, 0xde9e, 0xde9f, 0xdea0, 0xdf40, 0xdf41, + 0xdf42, 0xdf43, 0xdf44, 0xdf45, 0xdf46, 0xdf47, 0xdf48, 0xdf49, + 0xdf4a, 0xdf4b, 0xdf4c, 0xdf4d, 0xdf4e, 0xdf4f, 0xdf50, 0xdf51, + 0xdf52, 0xdf53, 0xdf54, 0xdf55, 0xdf56, 0xdf57, 0xdf58, 0xdf59, + 0xdf5a, 0xdf5b, 0xdf5c, 0xdf5d, 0xdf5e, 0xdf5f, 0xdf60, 0xdf61, + 0xdf62, 0xdf63, 0xdf64, 0xdf65, 0xdf66, 0xdf67, 0xdf68, 0xdf69, + 0xdf6a, 0xdf6b, 0xdf6c, 0xdf6d, 0xdf6e, 0xdf6f, 0xdf70, 0xdf71, + 0xdf72, 0xdf73, 0xdf74, 0xdf75, 0xdf76, 0xdf77, 0xdf78, 0xdf79, + 0xdf7a, 0xdf7b, 0xdf7c, 0xdf7d, 0xdf7e, 0xdf80, 0xdf81, 0xdf82, + 0xdf83, 0xdf84, 0xdf85, 0xdf86, 0xdf87, 0xdf88, 0xdf89, 0xdf8a, + 0xdf8b, 0xdf8c, 0xdf8d, 0xdf8e, 0xdf8f, 0xdf90, 0xdf91, 0xdf92, + 0xdf93, 0xdf94, 0xdf95, 0xdf96, 0xdf97, 0xdf98, 0xdf99, 0xdf9a, + 0xdf9b, 0xdf9c, 0xdf9d, 0xdf9e, 0xdf9f, 0xdfa0, 0xe040, 0xe041, + 0xe042, 0xe043, 0xe044, 0xe045, 0xe046, 0xe047, 0xe048, 0xe049, + 0xe04a, 0xe04b, 0xe04c, 0xe04d, 0xe04e, 0xe04f, 0xe050, 0xe051, + 0xe052, 0xe053, 0xe054, 0xe055, 0xe056, 0xe057, 0xe058, 0xe059, + 0xe05a, 0xe05b, 0xe05c, 0xe05d, 0xe05e, 0xe05f, 0xe060, 0xe061, + 0xe062, 0xe063, 0xe064, 0xe065, 0xe066, 0xe067, 0xe068, 0xe069, + 0xe06a, 0xe06b, 0xe06c, 0xe06d, 0xe06e, 0xe06f, 0xe070, 0xe071, + 0xe072, 0xe073, 0xe074, 0xe075, 0xe076, 0xe077, 0xe078, 0xe079, + 0xe07a, 0xe07b, 0xe07c, 0xe07d, 0xe07e, 0xe080, 0xe081, 0xe082, + 0xe083, 0xe084, 0xe085, 0xe086, 0xe087, 0xe088, 0xe089, 0xe08a, + 0xe08b, 0xe08c, 0xe08d, 0xe08e, 0xe08f, 0xe090, 0xe091, 0xe092, + 0xe093, 0xe094, 0xe095, 0xe096, 0xe097, 0xe098, 0xe099, 0xe09a, + 0xe09b, 0xe09c, 0xe09d, 0xe09e, 0xe09f, 0xe0a0, 0xe140, 0xe141, + 0xe142, 0xe143, 0xe144, 0xe145, 0xe146, 0xe147, 0xe148, 0xe149, + 0xe14a, 0xe14b, 0xe14c, 0xe14d, 0xe14e, 0xe14f, 0xe150, 0xe151, + 0xe152, 0xe153, 0xe154, 0xe155, 0xe156, 0xe157, 0xe158, 0xe159, + 0xe15a, 0xe15b, 0xe15c, 0xe15d, 0xe15e, 0xe15f, 0xe160, 0xe161, + 0xe162, 0xe163, 0xe164, 0xe165, 0xe166, 0xe167, 0xe168, 0xe169, + 0xe16a, 0xe16b, 0xe16c, 0xe16d, 0xe16e, 0xe16f, 0xe170, 0xe171, + 0xe172, 0xe173, 0xe174, 0xe175, 0xe176, 0xe177, 0xe178, 0xe179, + 0xe17a, 0xe17b, 0xe17c, 0xe17d, 0xe17e, 0xe180, 0xe181, 0xe182, + 0xe183, 0xe184, 0xe185, 0xe186, 0xe187, 0xe188, 0xe189, 0xe18a, + 0xe18b, 0xe18c, 0xe18d, 0xe18e, 0xe18f, 0xe190, 0xe191, 0xe192, + 0xe193, 0xe194, 0xe195, 0xe196, 0xe197, 0xe198, 0xe199, 0xe19a, + 0xe19b, 0xe19c, 0xe19d, 0xe19e, 0xe19f, 0xe1a0, 0xe240, 0xe241, + 0xe242, 0xe243, 0xe244, 0xe245, 0xe246, 0xe247, 0xe248, 0xe249, + 0xe24a, 0xe24b, 0xe24c, 0xe24d, 0xe24e, 0xe24f, 0xe250, 0xe251, + 0xe252, 0xe253, 0xe254, 0xe255, 0xe256, 0xe257, 0xe258, 0xe259, + 0xe25a, 0xe25b, 0xe25c, 0xe25d, 0xe25e, 0xe25f, 0xe260, 0xe261, + 0xe262, 0xe263, 0xe264, 0xe265, 0xe266, 0xe267, 0xe268, 0xe269, + 0xe26a, 0xe26b, 0xe26c, 0xe26d, 0xe26e, 0xe26f, 0xe270, 0xe271, + 0xe272, 0xe273, 0xe274, 0xe275, 0xe276, 0xe277, 0xe278, 0xe279, + 0xe27a, 0xe27b, 0xe27c, 0xe27d, 0xe27e, 0xe280, 0xe281, 0xe282, + 0xe283, 0xe284, 0xe285, 0xe286, 0xe287, 0xe288, 0xe289, 0xe28a, + 0xe28b, 0xe28c, 0xe28d, 0xe28e, 0xe28f, 0xe290, 0xe291, 0xe292, + 0xe293, 0xe294, 0xe295, 0xe296, 0xe297, 0xe298, 0xe299, 0xe29a, + 0xe29b, 0xe29c, 0xe29d, 0xe29e, 0xe29f, 0xe2a0, 0xe340, 0xe341, + 0xe342, 0xe343, 0xe344, 0xe345, 0xe346, 0xe347, 0xe348, 0xe349, + 0xe34a, 0xe34b, 0xe34c, 0xe34d, 0xe34e, 0xe34f, 0xe350, 0xe351, + 0xe352, 0xe353, 0xe354, 0xe355, 0xe356, 0xe357, 0xe358, 0xe359, + 0xe35a, 0xe35b, 0xe35c, 0xe35d, 0xe35e, 0xe35f, 0xe360, 0xe361, + 0xe362, 0xe363, 0xe364, 0xe365, 0xe366, 0xe367, 0xe368, 0xe369, + 0xe36a, 0xe36b, 0xe36c, 0xe36d, 0xe36e, 0xe36f, 0xe370, 0xe371, + 0xe372, 0xe373, 0xe374, 0xe375, 0xe376, 0xe377, 0xe378, 0xe379, + 0xe37a, 0xe37b, 0xe37c, 0xe37d, 0xe37e, 0xe380, 0xe381, 0xe382, + 0xe383, 0xe384, 0xe385, 0xe386, 0xe387, 0xe388, 0xe389, 0xe38a, + 0xe38b, 0xe38c, 0xe38d, 0xe38e, 0xe38f, 0xe390, 0xe391, 0xe392, + 0xe393, 0xe394, 0xe395, 0xe396, 0xe397, 0xe398, 0xe399, 0xe39a, + 0xe39b, 0xe39c, 0xe39d, 0xe39e, 0xe39f, 0xe3a0, 0xe440, 0xe441, + 0xe442, 0xe443, 0xe444, 0xe445, 0xe446, 0xe447, 0xe448, 0xe449, + 0xe44a, 0xe44b, 0xe44c, 0xe44d, 0xe44e, 0xe44f, 0xe450, 0xe451, + 0xe452, 0xe453, 0xe454, 0xe455, 0xe456, 0xe457, 0xe458, 0xe459, + 0xe45a, 0xe45b, 0xe45c, 0xe45d, 0xe45e, 0xe45f, 0xe460, 0xe461, + 0xe462, 0xe463, 0xe464, 0xe465, 0xe466, 0xe467, 0xe468, 0xe469, + 0xe46a, 0xe46b, 0xe46c, 0xe46d, 0xe46e, 0xe46f, 0xe470, 0xe471, + 0xe472, 0xe473, 0xe474, 0xe475, 0xe476, 0xe477, 0xe478, 0xe479, + 0xe47a, 0xe47b, 0xe47c, 0xe47d, 0xe47e, 0xe480, 0xe481, 0xe482, + 0xe483, 0xe484, 0xe485, 0xe486, 0xe487, 0xe488, 0xe489, 0xe48a, + 0xe48b, 0xe48c, 0xe48d, 0xe48e, 0xe48f, 0xe490, 0xe491, 0xe492, + 0xe493, 0xe494, 0xe495, 0xe496, 0xe497, 0xe498, 0xe499, 0xe49a, + 0xe49b, 0xe49c, 0xe49d, 0xe49e, 0xe49f, 0xe4a0, 0xe540, 0xe541, + 0xe542, 0xe543, 0xe544, 0xe545, 0xe546, 0xe547, 0xe548, 0xe549, + 0xe54a, 0xe54b, 0xe54c, 0xe54d, 0xe54e, 0xe54f, 0xe550, 0xe551, + 0xe552, 0xe553, 0xe554, 0xe555, 0xe556, 0xe557, 0xe558, 0xe559, + 0xe55a, 0xe55b, 0xe55c, 0xe55d, 0xe55e, 0xe55f, 0xe560, 0xe561, + 0xe562, 0xe563, 0xe564, 0xe565, 0xe566, 0xe567, 0xe568, 0xe569, + 0xe56a, 0xe56b, 0xe56c, 0xe56d, 0xe56e, 0xe56f, 0xe570, 0xe571, + 0xe572, 0xe573, 0xe574, 0xe575, 0xe576, 0xe577, 0xe578, 0xe579, + 0xe57a, 0xe57b, 0xe57c, 0xe57d, 0xe57e, 0xe580, 0xe581, 0xe582, + 0xe583, 0xe584, 0xe585, 0xe586, 0xe587, 0xe588, 0xe589, 0xe58a, + 0xe58b, 0xe58c, 0xe58d, 0xe58e, 0xe58f, 0xe590, 0xe591, 0xe592, + 0xe593, 0xe594, 0xe595, 0xe596, 0xe597, 0xe598, 0xe599, 0xe59a, + 0xe59b, 0xe59c, 0xe59d, 0xe59e, 0xe59f, 0xe5a0, 0xe640, 0xe641, + 0xe642, 0xe643, 0xe644, 0xe645, 0xe646, 0xe647, 0xe648, 0xe649, + 0xe64a, 0xe64b, 0xe64c, 0xe64d, 0xe64e, 0xe64f, 0xe650, 0xe651, + 0xe652, 0xe653, 0xe654, 0xe655, 0xe656, 0xe657, 0xe658, 0xe659, + 0xe65a, 0xe65b, 0xe65c, 0xe65d, 0xe65e, 0xe65f, 0xe660, 0xe661, + 0xe662, 0xe663, 0xe664, 0xe665, 0xe666, 0xe667, 0xe668, 0xe669, + 0xe66a, 0xe66b, 0xe66c, 0xe66d, 0xe66e, 0xe66f, 0xe670, 0xe671, + 0xe672, 0xe673, 0xe674, 0xe675, 0xe676, 0xe677, 0xe678, 0xe679, + 0xe67a, 0xe67b, 0xe67c, 0xe67d, 0xe67e, 0xe680, 0xe681, 0xe682, + 0xe683, 0xe684, 0xe685, 0xe686, 0xe687, 0xe688, 0xe689, 0xe68a, + 0xe68b, 0xe68c, 0xe68d, 0xe68e, 0xe68f, 0xe690, 0xe691, 0xe692, + 0xe693, 0xe694, 0xe695, 0xe696, 0xe697, 0xe698, 0xe699, 0xe69a, + 0xe69b, 0xe69c, 0xe69d, 0xe69e, 0xe69f, 0xe6a0, 0xe740, 0xe741, + 0xe742, 0xe743, 0xe744, 0xe745, 0xe746, 0xe747, 0xe748, 0xe749, + 0xe74a, 0xe74b, 0xe74c, 0xe74d, 0xe74e, 0xe74f, 0xe750, 0xe751, + 0xe752, 0xe753, 0xe754, 0xe755, 0xe756, 0xe757, 0xe758, 0xe759, + 0xe75a, 0xe75b, 0xe75c, 0xe75d, 0xe75e, 0xe75f, 0xe760, 0xe761, + 0xe762, 0xe763, 0xe764, 0xe765, 0xe766, 0xe767, 0xe768, 0xe769, + 0xe76a, 0xe76b, 0xe76c, 0xe76d, 0xe76e, 0xe76f, 0xe770, 0xe771, + 0xe772, 0xe773, 0xe774, 0xe775, 0xe776, 0xe777, 0xe778, 0xe779, + 0xe77a, 0xe77b, 0xe77c, 0xe77d, 0xe77e, 0xe780, 0xe781, 0xe782, + 0xe783, 0xe784, 0xe785, 0xe786, 0xe787, 0xe788, 0xe789, 0xe78a, + 0xe78b, 0xe78c, 0xe78d, 0xe78e, 0xe78f, 0xe790, 0xe791, 0xe792, + 0xe793, 0xe794, 0xe795, 0xe796, 0xe797, 0xe798, 0xe799, 0xe79a, + 0xe79b, 0xe79c, 0xe79d, 0xe79e, 0xe79f, 0xe7a0, 0xe840, 0xe841, + 0xe842, 0xe843, 0xe844, 0xe845, 0xe846, 0xe847, 0xe848, 0xe849, + 0xe84a, 0xe84b, 0xe84c, 0xe84d, 0xe84e, 0xe84f, 0xe850, 0xe851, + 0xe852, 0xe853, 0xe854, 0xe855, 0xe856, 0xe857, 0xe858, 0xe859, + 0xe85a, 0xe85b, 0xe85c, 0xe85d, 0xe85e, 0xe85f, 0xe860, 0xe861, + 0xe862, 0xe863, 0xe864, 0xe865, 0xe866, 0xe867, 0xe868, 0xe869, + 0xe86a, 0xe86b, 0xe86c, 0xe86d, 0xe86e, 0xe86f, 0xe870, 0xe871, + 0xe872, 0xe873, 0xe874, 0xe875, 0xe876, 0xe877, 0xe878, 0xe879, + 0xe87a, 0xe87b, 0xe87c, 0xe87d, 0xe87e, 0xe880, 0xe881, 0xe882, + 0xe883, 0xe884, 0xe885, 0xe886, 0xe887, 0xe888, 0xe889, 0xe88a, + 0xe88b, 0xe88c, 0xe88d, 0xe88e, 0xe88f, 0xe890, 0xe891, 0xe892, + 0xe893, 0xe894, 0xe895, 0xe896, 0xe897, 0xe898, 0xe899, 0xe89a, + 0xe89b, 0xe89c, 0xe89d, 0xe89e, 0xe89f, 0xe8a0, 0xe940, 0xe941, + 0xe942, 0xe943, 0xe944, 0xe945, 0xe946, 0xe947, 0xe948, 0xe949, + 0xe94a, 0xe94b, 0xe94c, 0xe94d, 0xe94e, 0xe94f, 0xe950, 0xe951, + 0xe952, 0xe953, 0xe954, 0xe955, 0xe956, 0xe957, 0xe958, 0xe959, + 0xe95a, 0xe95b, 0xe95c, 0xe95d, 0xe95e, 0xe95f, 0xe960, 0xe961, + 0xe962, 0xe963, 0xe964, 0xe965, 0xe966, 0xe967, 0xe968, 0xe969, + 0xe96a, 0xe96b, 0xe96c, 0xe96d, 0xe96e, 0xe96f, 0xe970, 0xe971, + 0xe972, 0xe973, 0xe974, 0xe975, 0xe976, 0xe977, 0xe978, 0xe979, + 0xe97a, 0xe97b, 0xe97c, 0xe97d, 0xe97e, 0xe980, 0xe981, 0xe982, + 0xe983, 0xe984, 0xe985, 0xe986, 0xe987, 0xe988, 0xe989, 0xe98a, + 0xe98b, 0xe98c, 0xe98d, 0xe98e, 0xe98f, 0xe990, 0xe991, 0xe992, + 0xe993, 0xe994, 0xe995, 0xe996, 0xe997, 0xe998, 0xe999, 0xe99a, + 0xe99b, 0xe99c, 0xe99d, 0xe99e, 0xe99f, 0xe9a0, 0xea40, 0xea41, + 0xea42, 0xea43, 0xea44, 0xea45, 0xea46, 0xea47, 0xea48, 0xea49, + 0xea4a, 0xea4b, 0xea4c, 0xea4d, 0xea4e, 0xea4f, 0xea50, 0xea51, + 0xea52, 0xea53, 0xea54, 0xea55, 0xea56, 0xea57, 0xea58, 0xea59, + 0xea5a, 0xea5b, 0xea5c, 0xea5d, 0xea5e, 0xea5f, 0xea60, 0xea61, + 0xea62, 0xea63, 0xea64, 0xea65, 0xea66, 0xea67, 0xea68, 0xea69, + 0xea6a, 0xea6b, 0xea6c, 0xea6d, 0xea6e, 0xea6f, 0xea70, 0xea71, + 0xea72, 0xea73, 0xea74, 0xea75, 0xea76, 0xea77, 0xea78, 0xea79, + 0xea7a, 0xea7b, 0xea7c, 0xea7d, 0xea7e, 0xea80, 0xea81, 0xea82, + 0xea83, 0xea84, 0xea85, 0xea86, 0xea87, 0xea88, 0xea89, 0xea8a, + 0xea8b, 0xea8c, 0xea8d, 0xea8e, 0xea8f, 0xea90, 0xea91, 0xea92, + 0xea93, 0xea94, 0xea95, 0xea96, 0xea97, 0xea98, 0xea99, 0xea9a, + 0xea9b, 0xea9c, 0xea9d, 0xea9e, 0xea9f, 0xeaa0, 0xeb40, 0xeb41, + 0xeb42, 0xeb43, 0xeb44, 0xeb45, 0xeb46, 0xeb47, 0xeb48, 0xeb49, + 0xeb4a, 0xeb4b, 0xeb4c, 0xeb4d, 0xeb4e, 0xeb4f, 0xeb50, 0xeb51, + 0xeb52, 0xeb53, 0xeb54, 0xeb55, 0xeb56, 0xeb57, 0xeb58, 0xeb59, + 0xeb5a, 0xeb5b, 0xeb5c, 0xeb5d, 0xeb5e, 0xeb5f, 0xeb60, 0xeb61, + 0xeb62, 0xeb63, 0xeb64, 0xeb65, 0xeb66, 0xeb67, 0xeb68, 0xeb69, + 0xeb6a, 0xeb6b, 0xeb6c, 0xeb6d, 0xeb6e, 0xeb6f, 0xeb70, 0xeb71, + 0xeb72, 0xeb73, 0xeb74, 0xeb75, 0xeb76, 0xeb77, 0xeb78, 0xeb79, + 0xeb7a, 0xeb7b, 0xeb7c, 0xeb7d, 0xeb7e, 0xeb80, 0xeb81, 0xeb82, + 0xeb83, 0xeb84, 0xeb85, 0xeb86, 0xeb87, 0xeb88, 0xeb89, 0xeb8a, + 0xeb8b, 0xeb8c, 0xeb8d, 0xeb8e, 0xeb8f, 0xeb90, 0xeb91, 0xeb92, + 0xeb93, 0xeb94, 0xeb95, 0xeb96, 0xeb97, 0xeb98, 0xeb99, 0xeb9a, + 0xeb9b, 0xeb9c, 0xeb9d, 0xeb9e, 0xeb9f, 0xeba0, 0xec40, 0xec41, + 0xec42, 0xec43, 0xec44, 0xec45, 0xec46, 0xec47, 0xec48, 0xec49, + 0xec4a, 0xec4b, 0xec4c, 0xec4d, 0xec4e, 0xec4f, 0xec50, 0xec51, + 0xec52, 0xec53, 0xec54, 0xec55, 0xec56, 0xec57, 0xec58, 0xec59, + 0xec5a, 0xec5b, 0xec5c, 0xec5d, 0xec5e, 0xec5f, 0xec60, 0xec61, + 0xec62, 0xec63, 0xec64, 0xec65, 0xec66, 0xec67, 0xec68, 0xec69, + 0xec6a, 0xec6b, 0xec6c, 0xec6d, 0xec6e, 0xec6f, 0xec70, 0xec71, + 0xec72, 0xec73, 0xec74, 0xec75, 0xec76, 0xec77, 0xec78, 0xec79, + 0xec7a, 0xec7b, 0xec7c, 0xec7d, 0xec7e, 0xec80, 0xec81, 0xec82, + 0xec83, 0xec84, 0xec85, 0xec86, 0xec87, 0xec88, 0xec89, 0xec8a, + 0xec8b, 0xec8c, 0xec8d, 0xec8e, 0xec8f, 0xec90, 0xec91, 0xec92, + 0xec93, 0xec94, 0xec95, 0xec96, 0xec97, 0xec98, 0xec99, 0xec9a, + 0xec9b, 0xec9c, 0xec9d, 0xec9e, 0xec9f, 0xeca0, 0xed40, 0xed41, + 0xed42, 0xed43, 0xed44, 0xed45, 0xed46, 0xed47, 0xed48, 0xed49, + 0xed4a, 0xed4b, 0xed4c, 0xed4d, 0xed4e, 0xed4f, 0xed50, 0xed51, + 0xed52, 0xed53, 0xed54, 0xed55, 0xed56, 0xed57, 0xed58, 0xed59, + 0xed5a, 0xed5b, 0xed5c, 0xed5d, 0xed5e, 0xed5f, 0xed60, 0xed61, + 0xed62, 0xed63, 0xed64, 0xed65, 0xed66, 0xed67, 0xed68, 0xed69, + 0xed6a, 0xed6b, 0xed6c, 0xed6d, 0xed6e, 0xed6f, 0xed70, 0xed71, + 0xed72, 0xed73, 0xed74, 0xed75, 0xed76, 0xed77, 0xed78, 0xed79, + 0xed7a, 0xed7b, 0xed7c, 0xed7d, 0xed7e, 0xed80, 0xed81, 0xed82, + 0xed83, 0xed84, 0xed85, 0xed86, 0xed87, 0xed88, 0xed89, 0xed8a, + 0xed8b, 0xed8c, 0xed8d, 0xed8e, 0xed8f, 0xed90, 0xed91, 0xed92, + 0xed93, 0xed94, 0xed95, 0xed96, 0xed97, 0xed98, 0xed99, 0xed9a, + 0xed9b, 0xed9c, 0xed9d, 0xed9e, 0xed9f, 0xeda0, 0xee40, 0xee41, + 0xee42, 0xee43, 0xee44, 0xee45, 0xee46, 0xee47, 0xee48, 0xee49, + 0xee4a, 0xee4b, 0xee4c, 0xee4d, 0xee4e, 0xee4f, 0xee50, 0xee51, + 0xee52, 0xee53, 0xee54, 0xee55, 0xee56, 0xee57, 0xee58, 0xee59, + 0xee5a, 0xee5b, 0xee5c, 0xee5d, 0xee5e, 0xee5f, 0xee60, 0xee61, + 0xee62, 0xee63, 0xee64, 0xee65, 0xee66, 0xee67, 0xee68, 0xee69, + 0xee6a, 0xee6b, 0xee6c, 0xee6d, 0xee6e, 0xee6f, 0xee70, 0xee71, + 0xee72, 0xee73, 0xee74, 0xee75, 0xee76, 0xee77, 0xee78, 0xee79, + 0xee7a, 0xee7b, 0xee7c, 0xee7d, 0xee7e, 0xee80, 0xee81, 0xee82, + 0xee83, 0xee84, 0xee85, 0xee86, 0xee87, 0xee88, 0xee89, 0xee8a, + 0xee8b, 0xee8c, 0xee8d, 0xee8e, 0xee8f, 0xee90, 0xee91, 0xee92, + 0xee93, 0xee94, 0xee95, 0xee96, 0xee97, 0xee98, 0xee99, 0xee9a, + 0xee9b, 0xee9c, 0xee9d, 0xee9e, 0xee9f, 0xeea0, 0xef40, 0xef41, + 0xef42, 0xef43, 0xef44, 0xef45, 0xef46, 0xef47, 0xef48, 0xef49, + 0xef4a, 0xef4b, 0xef4c, 0xef4d, 0xef4e, 0xef4f, 0xef50, 0xef51, + 0xef52, 0xef53, 0xef54, 0xef55, 0xef56, 0xef57, 0xef58, 0xef59, + 0xef5a, 0xef5b, 0xef5c, 0xef5d, 0xef5e, 0xef5f, 0xef60, 0xef61, + 0xef62, 0xef63, 0xef64, 0xef65, 0xef66, 0xef67, 0xef68, 0xef69, + 0xef6a, 0xef6b, 0xef6c, 0xef6d, 0xef6e, 0xef6f, 0xef70, 0xef71, + 0xef72, 0xef73, 0xef74, 0xef75, 0xef76, 0xef77, 0xef78, 0xef79, + 0xef7a, 0xef7b, 0xef7c, 0xef7d, 0xef7e, 0xef80, 0xef81, 0xef82, + 0xef83, 0xef84, 0xef85, 0xef86, 0xef87, 0xef88, 0xef89, 0xef8a, + 0xef8b, 0xef8c, 0xef8d, 0xef8e, 0xef8f, 0xef90, 0xef91, 0xef92, + 0xef93, 0xef94, 0xef95, 0xef96, 0xef97, 0xef98, 0xef99, 0xef9a, + 0xef9b, 0xef9c, 0xef9d, 0xef9e, 0xef9f, 0xefa0, 0xf040, 0xf041, + 0xf042, 0xf043, 0xf044, 0xf045, 0xf046, 0xf047, 0xf048, 0xf049, + 0xf04a, 0xf04b, 0xf04c, 0xf04d, 0xf04e, 0xf04f, 0xf050, 0xf051, + 0xf052, 0xf053, 0xf054, 0xf055, 0xf056, 0xf057, 0xf058, 0xf059, + 0xf05a, 0xf05b, 0xf05c, 0xf05d, 0xf05e, 0xf05f, 0xf060, 0xf061, + 0xf062, 0xf063, 0xf064, 0xf065, 0xf066, 0xf067, 0xf068, 0xf069, + 0xf06a, 0xf06b, 0xf06c, 0xf06d, 0xf06e, 0xf06f, 0xf070, 0xf071, + 0xf072, 0xf073, 0xf074, 0xf075, 0xf076, 0xf077, 0xf078, 0xf079, + 0xf07a, 0xf07b, 0xf07c, 0xf07d, 0xf07e, 0xf080, 0xf081, 0xf082, + 0xf083, 0xf084, 0xf085, 0xf086, 0xf087, 0xf088, 0xf089, 0xf08a, + 0xf08b, 0xf08c, 0xf08d, 0xf08e, 0xf08f, 0xf090, 0xf091, 0xf092, + 0xf093, 0xf094, 0xf095, 0xf096, 0xf097, 0xf098, 0xf099, 0xf09a, + 0xf09b, 0xf09c, 0xf09d, 0xf09e, 0xf09f, 0xf0a0, 0xf140, 0xf141, + 0xf142, 0xf143, 0xf144, 0xf145, 0xf146, 0xf147, 0xf148, 0xf149, + 0xf14a, 0xf14b, 0xf14c, 0xf14d, 0xf14e, 0xf14f, 0xf150, 0xf151, + 0xf152, 0xf153, 0xf154, 0xf155, 0xf156, 0xf157, 0xf158, 0xf159, + 0xf15a, 0xf15b, 0xf15c, 0xf15d, 0xf15e, 0xf15f, 0xf160, 0xf161, + 0xf162, 0xf163, 0xf164, 0xf165, 0xf166, 0xf167, 0xf168, 0xf169, + 0xf16a, 0xf16b, 0xf16c, 0xf16d, 0xf16e, 0xf16f, 0xf170, 0xf171, + 0xf172, 0xf173, 0xf174, 0xf175, 0xf176, 0xf177, 0xf178, 0xf179, + 0xf17a, 0xf17b, 0xf17c, 0xf17d, 0xf17e, 0xf180, 0xf181, 0xf182, + 0xf183, 0xf184, 0xf185, 0xf186, 0xf187, 0xf188, 0xf189, 0xf18a, + 0xf18b, 0xf18c, 0xf18d, 0xf18e, 0xf18f, 0xf190, 0xf191, 0xf192, + 0xf193, 0xf194, 0xf195, 0xf196, 0xf197, 0xf198, 0xf199, 0xf19a, + 0xf19b, 0xf19c, 0xf19d, 0xf19e, 0xf19f, 0xf1a0, 0xf240, 0xf241, + 0xf242, 0xf243, 0xf244, 0xf245, 0xf246, 0xf247, 0xf248, 0xf249, + 0xf24a, 0xf24b, 0xf24c, 0xf24d, 0xf24e, 0xf24f, 0xf250, 0xf251, + 0xf252, 0xf253, 0xf254, 0xf255, 0xf256, 0xf257, 0xf258, 0xf259, + 0xf25a, 0xf25b, 0xf25c, 0xf25d, 0xf25e, 0xf25f, 0xf260, 0xf261, + 0xf262, 0xf263, 0xf264, 0xf265, 0xf266, 0xf267, 0xf268, 0xf269, + 0xf26a, 0xf26b, 0xf26c, 0xf26d, 0xf26e, 0xf26f, 0xf270, 0xf271, + 0xf272, 0xf273, 0xf274, 0xf275, 0xf276, 0xf277, 0xf278, 0xf279, + 0xf27a, 0xf27b, 0xf27c, 0xf27d, 0xf27e, 0xf280, 0xf281, 0xf282, + 0xf283, 0xf284, 0xf285, 0xf286, 0xf287, 0xf288, 0xf289, 0xf28a, + 0xf28b, 0xf28c, 0xf28d, 0xf28e, 0xf28f, 0xf290, 0xf291, 0xf292, + 0xf293, 0xf294, 0xf295, 0xf296, 0xf297, 0xf298, 0xf299, 0xf29a, + 0xf29b, 0xf29c, 0xf29d, 0xf29e, 0xf29f, 0xf2a0, 0xf340, 0xf341, + 0xf342, 0xf343, 0xf344, 0xf345, 0xf346, 0xf347, 0xf348, 0xf349, + 0xf34a, 0xf34b, 0xf34c, 0xf34d, 0xf34e, 0xf34f, 0xf350, 0xf351, + 0xf352, 0xf353, 0xf354, 0xf355, 0xf356, 0xf357, 0xf358, 0xf359, + 0xf35a, 0xf35b, 0xf35c, 0xf35d, 0xf35e, 0xf35f, 0xf360, 0xf361, + 0xf362, 0xf363, 0xf364, 0xf365, 0xf366, 0xf367, 0xf368, 0xf369, + 0xf36a, 0xf36b, 0xf36c, 0xf36d, 0xf36e, 0xf36f, 0xf370, 0xf371, + 0xf372, 0xf373, 0xf374, 0xf375, 0xf376, 0xf377, 0xf378, 0xf379, + 0xf37a, 0xf37b, 0xf37c, 0xf37d, 0xf37e, 0xf380, 0xf381, 0xf382, + 0xf383, 0xf384, 0xf385, 0xf386, 0xf387, 0xf388, 0xf389, 0xf38a, + 0xf38b, 0xf38c, 0xf38d, 0xf38e, 0xf38f, 0xf390, 0xf391, 0xf392, + 0xf393, 0xf394, 0xf395, 0xf396, 0xf397, 0xf398, 0xf399, 0xf39a, + 0xf39b, 0xf39c, 0xf39d, 0xf39e, 0xf39f, 0xf3a0, 0xf440, 0xf441, + 0xf442, 0xf443, 0xf444, 0xf445, 0xf446, 0xf447, 0xf448, 0xf449, + 0xf44a, 0xf44b, 0xf44c, 0xf44d, 0xf44e, 0xf44f, 0xf450, 0xf451, + 0xf452, 0xf453, 0xf454, 0xf455, 0xf456, 0xf457, 0xf458, 0xf459, + 0xf45a, 0xf45b, 0xf45c, 0xf45d, 0xf45e, 0xf45f, 0xf460, 0xf461, + 0xf462, 0xf463, 0xf464, 0xf465, 0xf466, 0xf467, 0xf468, 0xf469, + 0xf46a, 0xf46b, 0xf46c, 0xf46d, 0xf46e, 0xf46f, 0xf470, 0xf471, + 0xf472, 0xf473, 0xf474, 0xf475, 0xf476, 0xf477, 0xf478, 0xf479, + 0xf47a, 0xf47b, 0xf47c, 0xf47d, 0xf47e, 0xf480, 0xf481, 0xf482, + 0xf483, 0xf484, 0xf485, 0xf486, 0xf487, 0xf488, 0xf489, 0xf48a, + 0xf48b, 0xf48c, 0xf48d, 0xf48e, 0xf48f, 0xf490, 0xf491, 0xf492, + 0xf493, 0xf494, 0xf495, 0xf496, 0xf497, 0xf498, 0xf499, 0xf49a, + 0xf49b, 0xf49c, 0xf49d, 0xf49e, 0xf49f, 0xf4a0, 0xf540, 0xf541, + 0xf542, 0xf543, 0xf544, 0xf545, 0xf546, 0xf547, 0xf548, 0xf549, + 0xf54a, 0xf54b, 0xf54c, 0xf54d, 0xf54e, 0xf54f, 0xf550, 0xf551, + 0xf552, 0xf553, 0xf554, 0xf555, 0xf556, 0xf557, 0xf558, 0xf559, + 0xf55a, 0xf55b, 0xf55c, 0xf55d, 0xf55e, 0xf55f, 0xf560, 0xf561, + 0xf562, 0xf563, 0xf564, 0xf565, 0xf566, 0xf567, 0xf568, 0xf569, + 0xf56a, 0xf56b, 0xf56c, 0xf56d, 0xf56e, 0xf56f, 0xf570, 0xf571, + 0xf572, 0xf573, 0xf574, 0xf575, 0xf576, 0xf577, 0xf578, 0xf579, + 0xf57a, 0xf57b, 0xf57c, 0xf57d, 0xf57e, 0xf580, 0xf581, 0xf582, + 0xf583, 0xf584, 0xf585, 0xf586, 0xf587, 0xf588, 0xf589, 0xf58a, + 0xf58b, 0xf58c, 0xf58d, 0xf58e, 0xf58f, 0xf590, 0xf591, 0xf592, + 0xf593, 0xf594, 0xf595, 0xf596, 0xf597, 0xf598, 0xf599, 0xf59a, + 0xf59b, 0xf59c, 0xf59d, 0xf59e, 0xf59f, 0xf5a0, 0xf640, 0xf641, + 0xf642, 0xf643, 0xf644, 0xf645, 0xf646, 0xf647, 0xf648, 0xf649, + 0xf64a, 0xf64b, 0xf64c, 0xf64d, 0xf64e, 0xf64f, 0xf650, 0xf651, + 0xf652, 0xf653, 0xf654, 0xf655, 0xf656, 0xf657, 0xf658, 0xf659, + 0xf65a, 0xf65b, 0xf65c, 0xf65d, 0xf65e, 0xf65f, 0xf660, 0xf661, + 0xf662, 0xf663, 0xf664, 0xf665, 0xf666, 0xf667, 0xf668, 0xf669, + 0xf66a, 0xf66b, 0xf66c, 0xf66d, 0xf66e, 0xf66f, 0xf670, 0xf671, + 0xf672, 0xf673, 0xf674, 0xf675, 0xf676, 0xf677, 0xf678, 0xf679, + 0xf67a, 0xf67b, 0xf67c, 0xf67d, 0xf67e, 0xf680, 0xf681, 0xf682, + 0xf683, 0xf684, 0xf685, 0xf686, 0xf687, 0xf688, 0xf689, 0xf68a, + 0xf68b, 0xf68c, 0xf68d, 0xf68e, 0xf68f, 0xf690, 0xf691, 0xf692, + 0xf693, 0xf694, 0xf695, 0xf696, 0xf697, 0xf698, 0xf699, 0xf69a, + 0xf69b, 0xf69c, 0xf69d, 0xf69e, 0xf69f, 0xf6a0, 0xf740, 0xf741, + 0xf742, 0xf743, 0xf744, 0xf745, 0xf746, 0xf747, 0xf748, 0xf749, + 0xf74a, 0xf74b, 0xf74c, 0xf74d, 0xf74e, 0xf74f, 0xf750, 0xf751, + 0xf752, 0xf753, 0xf754, 0xf755, 0xf756, 0xf757, 0xf758, 0xf759, + 0xf75a, 0xf75b, 0xf75c, 0xf75d, 0xf75e, 0xf75f, 0xf760, 0xf761, + 0xf762, 0xf763, 0xf764, 0xf765, 0xf766, 0xf767, 0xf768, 0xf769, + 0xf76a, 0xf76b, 0xf76c, 0xf76d, 0xf76e, 0xf76f, 0xf770, 0xf771, + 0xf772, 0xf773, 0xf774, 0xf775, 0xf776, 0xf777, 0xf778, 0xf779, + 0xf77a, 0xf77b, 0xf77c, 0xf77d, 0xf77e, 0xf780, 0xf781, 0xf782, + 0xf783, 0xf784, 0xf785, 0xf786, 0xf787, 0xf788, 0xf789, 0xf78a, + 0xf78b, 0xf78c, 0xf78d, 0xf78e, 0xf78f, 0xf790, 0xf791, 0xf792, + 0xf793, 0xf794, 0xf795, 0xf796, 0xf797, 0xf798, 0xf799, 0xf79a, + 0xf79b, 0xf79c, 0xf79d, 0xf79e, 0xf79f, 0xf7a0, 0xf840, 0xf841, + 0xf842, 0xf843, 0xf844, 0xf845, 0xf846, 0xf847, 0xf848, 0xf849, + 0xf84a, 0xf84b, 0xf84c, 0xf84d, 0xf84e, 0xf84f, 0xf850, 0xf851, + 0xf852, 0xf853, 0xf854, 0xf855, 0xf856, 0xf857, 0xf858, 0xf859, + 0xf85a, 0xf85b, 0xf85c, 0xf85d, 0xf85e, 0xf85f, 0xf860, 0xf861, + 0xf862, 0xf863, 0xf864, 0xf865, 0xf866, 0xf867, 0xf868, 0xf869, + 0xf86a, 0xf86b, 0xf86c, 0xf86d, 0xf86e, 0xf86f, 0xf870, 0xf871, + 0xf872, 0xf873, 0xf874, 0xf875, 0xf876, 0xf877, 0xf878, 0xf879, + 0xf87a, 0xf87b, 0xf87c, 0xf87d, 0xf87e, 0xf880, 0xf881, 0xf882, + 0xf883, 0xf884, 0xf885, 0xf886, 0xf887, 0xf888, 0xf889, 0xf88a, + 0xf88b, 0xf88c, 0xf88d, 0xf88e, 0xf88f, 0xf890, 0xf891, 0xf892, + 0xf893, 0xf894, 0xf895, 0xf896, 0xf897, 0xf898, 0xf899, 0xf89a, + 0xf89b, 0xf89c, 0xf89d, 0xf89e, 0xf89f, 0xf8a0, 0xf940, 0xf941, + 0xf942, 0xf943, 0xf944, 0xf945, 0xf946, 0xf947, 0xf948, 0xf949, + 0xf94a, 0xf94b, 0xf94c, 0xf94d, 0xf94e, 0xf94f, 0xf950, 0xf951, + 0xf952, 0xf953, 0xf954, 0xf955, 0xf956, 0xf957, 0xf958, 0xf959, + 0xf95a, 0xf95b, 0xf95c, 0xf95d, 0xf95e, 0xf95f, 0xf960, 0xf961, + 0xf962, 0xf963, 0xf964, 0xf965, 0xf966, 0xf967, 0xf968, 0xf969, + 0xf96a, 0xf96b, 0xf96c, 0xf96d, 0xf96e, 0xf96f, 0xf970, 0xf971, + 0xf972, 0xf973, 0xf974, 0xf975, 0xf976, 0xf977, 0xf978, 0xf979, + 0xf97a, 0xf97b, 0xf97c, 0xf97d, 0xf97e, 0xf980, 0xf981, 0xf982, + 0xf983, 0xf984, 0xf985, 0xf986, 0xf987, 0xf988, 0xf989, 0xf98a, + 0xf98b, 0xf98c, 0xf98d, 0xf98e, 0xf98f, 0xf990, 0xf991, 0xf992, + 0xf993, 0xf994, 0xf995, 0xf996, 0xf997, 0xf998, 0xf999, 0xf99a, + 0xf99b, 0xf99c, 0xf99d, 0xf99e, 0xf99f, 0xf9a0, 0xfa40, 0xfa41, + 0xfa42, 0xfa43, 0xfa44, 0xfa45, 0xfa46, 0xfa47, 0xfa48, 0xfa49, + 0xfa4a, 0xfa4b, 0xfa4c, 0xfa4d, 0xfa4e, 0xfa4f, 0xfa50, 0xfa51, + 0xfa52, 0xfa53, 0xfa54, 0xfa55, 0xfa56, 0xfa57, 0xfa58, 0xfa59, + 0xfa5a, 0xfa5b, 0xfa5c, 0xfa5d, 0xfa5e, 0xfa5f, 0xfa60, 0xfa61, + 0xfa62, 0xfa63, 0xfa64, 0xfa65, 0xfa66, 0xfa67, 0xfa68, 0xfa69, + 0xfa6a, 0xfa6b, 0xfa6c, 0xfa6d, 0xfa6e, 0xfa6f, 0xfa70, 0xfa71, + 0xfa72, 0xfa73, 0xfa74, 0xfa75, 0xfa76, 0xfa77, 0xfa78, 0xfa79, + 0xfa7a, 0xfa7b, 0xfa7c, 0xfa7d, 0xfa7e, 0xfa80, 0xfa81, 0xfa82, + 0xfa83, 0xfa84, 0xfa85, 0xfa86, 0xfa87, 0xfa88, 0xfa89, 0xfa8a, + 0xfa8b, 0xfa8c, 0xfa8d, 0xfa8e, 0xfa8f, 0xfa90, 0xfa91, 0xfa92, + 0xfa93, 0xfa94, 0xfa95, 0xfa96, 0xfa97, 0xfa98, 0xfa99, 0xfa9a, + 0xfa9b, 0xfa9c, 0xfa9d, 0xfa9e, 0xfa9f, 0xfaa0, 0xfb40, 0xfb41, + 0xfb42, 0xfb43, 0xfb44, 0xfb45, 0xfb46, 0xfb47, 0xfb48, 0xfb49, + 0xfb4a, 0xfb4b, 0xfb4c, 0xfb4d, 0xfb4e, 0xfb4f, 0xfb50, 0xfb51, + 0xfb52, 0xfb53, 0xfb54, 0xfb55, 0xfb56, 0xfb57, 0xfb58, 0xfb59, + 0xfb5a, 0xfb5b, 0xfb5c, 0xfb5d, 0xfb5e, 0xfb5f, 0xfb60, 0xfb61, + 0xfb62, 0xfb63, 0xfb64, 0xfb65, 0xfb66, 0xfb67, 0xfb68, 0xfb69, + 0xfb6a, 0xfb6b, 0xfb6c, 0xfb6d, 0xfb6e, 0xfb6f, 0xfb70, 0xfb71, + 0xfb72, 0xfb73, 0xfb74, 0xfb75, 0xfb76, 0xfb77, 0xfb78, 0xfb79, + 0xfb7a, 0xfb7b, 0xfb7c, 0xfb7d, 0xfb7e, 0xfb80, 0xfb81, 0xfb82, + 0xfb83, 0xfb84, 0xfb85, 0xfb86, 0xfb87, 0xfb88, 0xfb89, 0xfb8a, + 0xfb8b, 0xfb8c, 0xfb8d, 0xfb8e, 0xfb8f, 0xfb90, 0xfb91, 0xfb92, + 0xfb93, 0xfb94, 0xfb95, 0xfb96, 0xfb97, 0xfb98, 0xfb99, 0xfb9a, + 0xfb9b, 0xfb9c, 0xfb9d, 0xfb9e, 0xfb9f, 0xfba0, 0xfc40, 0xfc41, + 0xfc42, 0xfc43, 0xfc44, 0xfc45, 0xfc46, 0xfc47, 0xfc48, 0xfc49, + 0xfc4a, 0xfc4b, 0xfc4c, 0xfc4d, 0xfc4e, 0xfc4f, 0xfc50, 0xfc51, + 0xfc52, 0xfc53, 0xfc54, 0xfc55, 0xfc56, 0xfc57, 0xfc58, 0xfc59, + 0xfc5a, 0xfc5b, 0xfc5c, 0xfc5d, 0xfc5e, 0xfc5f, 0xfc60, 0xfc61, + 0xfc62, 0xfc63, 0xfc64, 0xfc65, 0xfc66, 0xfc67, 0xfc68, 0xfc69, + 0xfc6a, 0xfc6b, 0xfc6c, 0xfc6d, 0xfc6e, 0xfc6f, 0xfc70, 0xfc71, + 0xfc72, 0xfc73, 0xfc74, 0xfc75, 0xfc76, 0xfc77, 0xfc78, 0xfc79, + 0xfc7a, 0xfc7b, 0xfc7c, 0xfc7d, 0xfc7e, 0xfc80, 0xfc81, 0xfc82, + 0xfc83, 0xfc84, 0xfc85, 0xfc86, 0xfc87, 0xfc88, 0xfc89, 0xfc8a, + 0xfc8b, 0xfc8c, 0xfc8d, 0xfc8e, 0xfc8f, 0xfc90, 0xfc91, 0xfc92, + 0xfc93, 0xfc94, 0xfc95, 0xfc96, 0xfc97, 0xfc98, 0xfc99, 0xfc9a, + 0xfc9b, 0xfc9c, 0xfc9d, 0xfc9e, 0xfc9f, 0xfca0, 0xfd40, 0xfd41, + 0xfd42, 0xfd43, 0xfd44, 0xfd45, 0xfd46, 0xfd47, 0xfd48, 0xfd49, + 0xfd4a, 0xfd4b, 0xfd4c, 0xfd4d, 0xfd4e, 0xfd4f, 0xfd50, 0xfd51, + 0xfd52, 0xfd53, 0xfd54, 0xfd55, 0xfd56, 0xfd57, 0xfd58, 0xfd59, + 0xfd5a, 0xfd5b, 0xfd5c, 0xfd5d, 0xfd5e, 0xfd5f, 0xfd60, 0xfd61, + 0xfd62, 0xfd63, 0xfd64, 0xfd65, 0xfd66, 0xfd67, 0xfd68, 0xfd69, + 0xfd6a, 0xfd6b, 0xfd6c, 0xfd6d, 0xfd6e, 0xfd6f, 0xfd70, 0xfd71, + 0xfd72, 0xfd73, 0xfd74, 0xfd75, 0xfd76, 0xfd77, 0xfd78, 0xfd79, + 0xfd7a, 0xfd7b, 0xfd7c, 0xfd7d, 0xfd7e, 0xfd80, 0xfd81, 0xfd82, + 0xfd83, 0xfd84, 0xfd85, 0xfd86, 0xfd87, 0xfd88, 0xfd89, 0xfd8a, + 0xfd8b, 0xfd8c, 0xfd8d, 0xfd8e, 0xfd8f, 0xfd90, 0xfd91, 0xfd92, + 0xfd93, 0xfd94, 0xfd95, 0xfd96, 0xfd97, 0xfd98, 0xfd99, 0xfd9a, + 0xfd9b, 0xfd9c, 0xfd9d, 0xfd9e, 0xfd9f, 0xfda0, 0xfe40, 0xfe41, + 0xfe42, 0xfe43, 0xfe44, 0xfe45, 0xfe46, 0xfe47, 0xfe48, 0xfe49, + 0xfe4a, 0xfe4b, 0xfe4c, 0xfe4d, 0xfe4e, 0xfe4f, 0xa955, 0xa968, + 0xa969, 0xa96a, 0xa96b, 0xa96c, 0xa96d, 0xa96e, 0xa96f, 0xa970, + 0xa971, 0xa972, 0xa973, 0xa974, 0xa975, 0xa976, 0xa977, 0xa978, + 0xa979, 0xa97a, 0xa97b, 0xa97c, 0xa97d, 0xa97e, 0xa980, 0xa981, + 0xa982, 0xa983, 0xa984, 0xa985, 0xa986, 0xa987, 0xa988, 0xa956, + 0xa957, +}; + +static const Summary16 gbkext_inv_uni2indx_page02[14] = { + /* 0x0200 */ + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0c00 }, { 2, 0x0200 }, +}; +static const Summary16 gbkext_inv_uni2indx_page20[44] = { + /* 0x2000 */ + { 3, 0x0000 }, { 3, 0x0029 }, { 6, 0x0020 }, { 7, 0x0020 }, + { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, + { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, + { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, + /* 0x2100 */ + { 8, 0x0220 }, { 10, 0x0000 }, { 10, 0x0002 }, { 11, 0x0000 }, + { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, + { 11, 0x0000 }, { 11, 0x03c0 }, { 15, 0x0000 }, { 15, 0x0000 }, + { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0000 }, + /* 0x2200 */ + { 15, 0x0000 }, { 15, 0x8020 }, { 17, 0x0008 }, { 18, 0x0000 }, + { 18, 0x0000 }, { 18, 0x0004 }, { 19, 0x00c0 }, { 21, 0x0000 }, + { 21, 0x0000 }, { 21, 0x0020 }, { 22, 0x0000 }, { 22, 0x8000 }, +}; +static const Summary16 gbkext_inv_uni2indx_page25[17] = { + /* 0x2500 */ + { 23, 0x0000 }, { 23, 0x0000 }, { 23, 0x0000 }, { 23, 0x0000 }, + { 23, 0x0000 }, { 23, 0xffff }, { 39, 0xffff }, { 55, 0x000f }, + { 59, 0xfffe }, { 74, 0x0038 }, { 77, 0x0000 }, { 77, 0x3000 }, + { 79, 0x0000 }, { 79, 0x0000 }, { 79, 0x003c }, { 83, 0x0000 }, + /* 0x2600 */ + { 83, 0x0200 }, +}; +static const Summary16 gbkext_inv_uni2indx_page30[16] = { + /* 0x3000 */ + { 84, 0x00c0 }, { 86, 0x6004 }, { 89, 0x03fe }, { 98, 0x0000 }, + { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0000 }, + { 98, 0x0000 }, { 98, 0x7800 }, { 102, 0x0000 }, { 102, 0x0000 }, + { 102, 0x0000 }, { 102, 0x0000 }, { 102, 0x0000 }, { 102, 0x7000 }, +}; +static const Summary16 gbkext_inv_uni2indx_page32[30] = { + /* 0x3200 */ + { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0002 }, + { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x0000 }, + { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x0008 }, { 107, 0x0000 }, + { 107, 0x0000 }, { 107, 0x0000 }, { 107, 0x0000 }, { 107, 0x0000 }, + /* 0x3300 */ + { 107, 0x0000 }, { 107, 0x0000 }, { 107, 0x0000 }, { 107, 0x0000 }, + { 107, 0x0000 }, { 107, 0x0000 }, { 107, 0x0000 }, { 107, 0x0000 }, + { 107, 0xc000 }, { 109, 0x7000 }, { 112, 0x0002 }, { 113, 0x0000 }, + { 113, 0x4010 }, { 115, 0x0026 }, +}; +static const Summary16 gbkext_inv_uni2indx_page4e[1307] = { + /* 0x4e00 */ + { 118, 0x8074 }, { 123, 0x8084 }, { 126, 0xc24b }, { 133, 0x10aa }, + { 138, 0x0457 }, { 144, 0x0ca2 }, { 149, 0xfdbc }, { 161, 0xbff4 }, + { 173, 0x04bf }, { 181, 0x72c1 }, { 188, 0x8408 }, { 191, 0x73d3 }, + { 201, 0x9100 }, { 204, 0x1c05 }, { 209, 0xe2c5 }, { 217, 0x5712 }, + /* 0x4f00 */ + { 224, 0x19fd }, { 234, 0x307c }, { 241, 0x730a }, { 248, 0xcaaa }, + { 256, 0x1fb7 }, { 267, 0x0054 }, { 270, 0x6d46 }, { 278, 0x27a6 }, + { 286, 0x54e7 }, { 295, 0xd76d }, { 306, 0x2816 }, { 311, 0x7fdf }, + { 325, 0x3bc7 }, { 335, 0x0a7c }, { 342, 0x18b5 }, { 349, 0xbaf5 }, + /* 0x5000 */ + { 360, 0x4fff }, { 373, 0x68eb }, { 382, 0x889d }, { 389, 0xabff }, + { 402, 0x2e77 }, { 412, 0xebdf }, { 425, 0xefdf }, { 439, 0x373f }, + { 450, 0xdede }, { 462, 0xffff }, { 478, 0xec57 }, { 488, 0xf3fb }, + { 501, 0x7fff }, { 516, 0xfbbf }, { 530, 0x8f3f }, { 541, 0xf7d7 }, + /* 0x5100 */ + { 554, 0xf73f }, { 567, 0xfffb }, { 582, 0xfffd }, { 597, 0x7fff }, + { 612, 0xd484 }, { 618, 0xeb8d }, { 628, 0x86db }, { 637, 0xc404 }, + { 641, 0xccd8 }, { 649, 0xe51b }, { 658, 0x67ca }, { 667, 0xc710 }, + { 673, 0x652e }, { 681, 0xd7fd }, { 694, 0x57ec }, { 704, 0x4096 }, + /* 0x5200 */ + { 709, 0x9a30 }, { 715, 0xd039 }, { 722, 0x94ee }, { 731, 0x5036 }, + { 737, 0xcbf0 }, { 746, 0xafac }, { 756, 0x795d }, { 766, 0x5ffb }, + { 779, 0xfef9 }, { 792, 0x17f6 }, { 802, 0xc0f0 }, { 808, 0x3ff1 }, + { 819, 0xf577 }, { 831, 0x7eba }, { 842, 0xffef }, { 857, 0x39fe }, + /* 0x5300 */ + { 868, 0x5e9e }, { 878, 0xd91e }, { 887, 0xbbb4 }, { 897, 0x31ff }, + { 908, 0x3855 }, { 915, 0x2b11 }, { 921, 0x3520 }, { 926, 0x7a44 }, + { 933, 0xc58b }, { 941, 0x5adf }, { 952, 0xbc93 }, { 961, 0x77bf }, + { 974, 0xc0f9 }, { 982, 0x742d }, { 990, 0x0086 }, { 993, 0xc410 }, + /* 0x5400 */ + { 997, 0x08a5 }, { 1002, 0x1710 }, { 1007, 0x0434 }, { 1011, 0xa4c9 }, + { 1018, 0xf2b6 }, { 1028, 0xe402 }, { 1033, 0xfeab }, { 1045, 0xc611 }, + { 1051, 0x27aa }, { 1059, 0xd18a }, { 1066, 0x4027 }, { 1071, 0x56e5 }, + { 1080, 0x0c28 }, { 1084, 0x0940 }, { 1087, 0x981f }, { 1095, 0x4bf3 }, + /* 0x5500 */ + { 1105, 0x7d3d }, { 1116, 0xf7ec }, { 1128, 0x2b62 }, { 1135, 0x2f74 }, + { 1144, 0xf9a5 }, { 1154, 0xef9e }, { 1166, 0x8b0d }, { 1173, 0xa61f }, + { 1182, 0x7060 }, { 1187, 0x4ced }, { 1196, 0xff7f }, { 1211, 0x9555 }, + { 1219, 0xcdcf }, { 1230, 0x4fa1 }, { 1238, 0x6285 }, { 1244, 0x9f53 }, + /* 0x5600 */ + { 1254, 0x2cfc }, { 1263, 0x36ff }, { 1275, 0xcf67 }, { 1286, 0x75a9 }, + { 1295, 0x8fff }, { 1308, 0xec6f }, { 1319, 0xe0eb }, { 1328, 0xe7bd }, + { 1340, 0x3f9f }, { 1352, 0xfff7 }, { 1367, 0x7ff7 }, { 1381, 0xef7f }, + { 1395, 0xfbff }, { 1410, 0x136f }, { 1419, 0xd7e8 }, { 1429, 0x19cc }, + /* 0x5700 */ + { 1436, 0xf8a7 }, { 1446, 0x6fff }, { 1460, 0x08f7 }, { 1468, 0xb1f6 }, + { 1478, 0x0b7a }, { 1486, 0x037c }, { 1493, 0x50ac }, { 1499, 0xe737 }, + { 1510, 0xe783 }, { 1519, 0xf7f3 }, { 1532, 0x9520 }, { 1537, 0xfeeb }, + { 1550, 0x37f3 }, { 1561, 0x58cb }, { 1569, 0x5fee }, { 1581, 0xd8ef }, + /* 0x5800 */ + { 1592, 0xd73a }, { 1602, 0xbddd }, { 1614, 0xfbec }, { 1626, 0xffde }, + { 1640, 0xcfef }, { 1653, 0xbeed }, { 1665, 0xe7df }, { 1678, 0xbfff }, + { 1693, 0xfdd4 }, { 1704, 0x39f3 }, { 1714, 0xfcff }, { 1728, 0xefff }, + { 1743, 0xffdd }, { 1757, 0xffdd }, { 1771, 0xa7ef }, { 1783, 0xfdb6 }, + /* 0x5900 */ + { 1795, 0x5f6b }, { 1806, 0x698f }, { 1815, 0x114f }, { 1822, 0xe86d }, + { 1831, 0x3469 }, { 1838, 0xfa0d }, { 1847, 0xffda }, { 1860, 0xdca7 }, + { 1870, 0xda21 }, { 1877, 0xbd33 }, { 1887, 0x30c7 }, { 1894, 0xb5fb }, + { 1906, 0xf3bf }, { 1919, 0xca60 }, { 1925, 0xeed7 }, { 1937, 0x75ff }, + /* 0x5a00 */ + { 1950, 0xec05 }, { 1957, 0x6ef5 }, { 1968, 0xfdd6 }, { 1980, 0xefa9 }, + { 1991, 0xf9be }, { 2003, 0xfbdf }, { 2017, 0xfb7b }, { 2030, 0x7b0f }, + { 2040, 0xffff }, { 2056, 0xf3fb }, { 2069, 0xfbff }, { 2084, 0xbed3 }, + { 2095, 0xedf9 }, { 2107, 0xeeab }, { 2118, 0xf5b4 }, { 2128, 0xfffd }, + /* 0x5b00 */ + { 2143, 0xfdff }, { 2158, 0xff3f }, { 2172, 0xffff }, { 2188, 0xff6b }, + { 2201, 0xfffe }, { 2216, 0x4044 }, { 2219, 0xe983 }, { 2227, 0xdbd4 }, + { 2237, 0x6444 }, { 2242, 0x8057 }, { 2248, 0xf380 }, { 2255, 0x1c86 }, + { 2261, 0xef0b }, { 2271, 0x1ff2 }, { 2281, 0xbecd }, { 2292, 0x60fe }, + /* 0x5c00 */ + { 2301, 0x79ad }, { 2311, 0xca8d }, { 2319, 0xef4b }, { 2330, 0x00ed }, + { 2336, 0x30d8 }, { 2342, 0xbddc }, { 2353, 0x3f94 }, { 2362, 0x79fd }, + { 2374, 0xcef9 }, { 2385, 0xe02c }, { 2391, 0xc5f3 }, { 2401, 0x5e55 }, + { 2410, 0xf7ed }, { 2423, 0xfdfb }, { 2437, 0xda8d }, { 2446, 0xf7fe }, + /* 0x5d00 */ + { 2460, 0xbf33 }, { 2471, 0xb7af }, { 2483, 0x9d2f }, { 2493, 0x9fef }, + { 2506, 0xe37f }, { 2518, 0xd6ff }, { 2531, 0x65ff }, { 2543, 0xffef }, + { 2558, 0xfffb }, { 2573, 0xddff }, { 2587, 0xffff }, { 2603, 0xff7f }, + { 2618, 0xdfdf }, { 2632, 0x97ff }, { 2645, 0x3419 }, { 2651, 0x9f61 }, + /* 0x5e00 */ + { 2660, 0x6e91 }, { 2668, 0xc08c }, { 2673, 0x9f3f }, { 2685, 0xc67d }, + { 2695, 0xefcb }, { 2707, 0xb7cf }, { 2719, 0xfff9 }, { 2733, 0x42a3 }, + { 2739, 0x732e }, { 2748, 0x2904 }, { 2752, 0xdf1e }, { 2763, 0xbc17 }, + { 2772, 0xf9ff }, { 2786, 0xf7b1 }, { 2797, 0xfaff }, { 2811, 0x3b2f }, + /* 0x5f00 */ + { 2821, 0x72e0 }, { 2828, 0x7655 }, { 2837, 0x591e }, { 2845, 0xe9fd }, + { 2857, 0xfffe }, { 2872, 0xde12 }, { 2880, 0xc9a9 }, { 2888, 0xe574 }, + { 2897, 0xe048 }, { 2902, 0xec5a }, { 2911, 0x9afd }, { 2922, 0xcf5f }, + { 2934, 0x4d87 }, { 2942, 0xdc38 }, { 2950, 0x936c }, { 2958, 0x16dd }, + /* 0x6000 */ + { 2967, 0x1b80 }, { 2972, 0xc58b }, { 2980, 0x701c }, { 2986, 0x67df }, + { 2998, 0xd7f1 }, { 3009, 0xd9da }, { 3019, 0x4063 }, { 3024, 0x40b6 }, + { 3030, 0xcde7 }, { 3041, 0x53ab }, { 3050, 0x46b6 }, { 3058, 0xe6e9 }, + { 3068, 0xf39f }, { 3080, 0x4add }, { 3089, 0x043e }, { 3095, 0xf9a6 }, + /* 0x6100 */ + { 3105, 0x1cbc }, { 3113, 0x7bdf }, { 3126, 0xf726 }, { 3136, 0x7fff }, + { 3151, 0xaaff }, { 3163, 0xdfdd }, { 3176, 0xfe7b }, { 3189, 0xff5e }, + { 3202, 0xb7ff }, { 3216, 0xdfef }, { 3230, 0xec7f }, { 3242, 0xbf7f }, + { 3256, 0xf2fb }, { 3268, 0xffe9 }, { 3281, 0xffbf }, { 3296, 0x7fdf }, + /* 0x6200 */ + { 3310, 0x02bf }, { 3318, 0x7218 }, { 3324, 0xabc9 }, { 3333, 0x1f67 }, + { 3343, 0x8474 }, { 3349, 0xf6e1 }, { 3359, 0x0137 }, { 3365, 0x2db6 }, + { 3374, 0xf9ee }, { 3386, 0x7211 }, { 3392, 0xe6c8 }, { 3400, 0x45dd }, + { 3409, 0x880b }, { 3414, 0x6022 }, { 3418, 0x0c13 }, { 3423, 0x0f25 }, + /* 0x6300 */ + { 3430, 0xbc79 }, { 3440, 0x13bd }, { 3449, 0x72c0 }, { 3455, 0xd9fb }, + { 3467, 0x0593 }, { 3473, 0x3fde }, { 3485, 0x9d71 }, { 3494, 0xf33d }, + { 3505, 0x287a }, { 3512, 0xfeba }, { 3524, 0x8852 }, { 3529, 0xaa66 }, + { 3537, 0x1daf }, { 3547, 0xbfba }, { 3559, 0xd9f4 }, { 3569, 0x5eab }, + /* 0x6400 */ + { 3579, 0x67d8 }, { 3588, 0xa7e6 }, { 3598, 0xcbbc }, { 3608, 0x5bef }, + { 3620, 0xfa0d }, { 3629, 0xbeeb }, { 3641, 0xdd7f }, { 3654, 0xf8ff }, + { 3667, 0xff4b }, { 3679, 0xbd99 }, { 3689, 0x8def }, { 3700, 0xea5e }, + { 3710, 0x9fda }, { 3721, 0xbe7a }, { 3732, 0xffab }, { 3745, 0xffff }, + /* 0x6500 */ + { 3761, 0xfdfe }, { 3775, 0xfefb }, { 3789, 0x37df }, { 3801, 0x348f }, + { 3809, 0x6cdf }, { 3820, 0x959d }, { 3829, 0xe7b3 }, { 3840, 0xff6a }, + { 3852, 0xe77f }, { 3865, 0x6574 }, { 3873, 0x554d }, { 3881, 0xcdfe }, + { 3893, 0x2785 }, { 3900, 0xff3b }, { 3913, 0x0c1a }, { 3918, 0xfb3c }, + /* 0x6600 */ + { 3929, 0x2bb2 }, { 3937, 0x5dc7 }, { 3947, 0x5e5e }, { 3957, 0xaf8d }, + { 3967, 0x67f5 }, { 3978, 0x7b03 }, { 3986, 0x3ead }, { 3996, 0xbb2e }, + { 4006, 0xef6b }, { 4018, 0xdf3d }, { 4030, 0xbe7f }, { 4043, 0xbdef }, + { 4056, 0xffff }, { 4072, 0xc5ff }, { 4084, 0xfdbf }, { 4098, 0x2d62 }, + /* 0x6700 */ + { 4105, 0xd0fe }, { 4115, 0x574e }, { 4124, 0x42bf }, { 4133, 0xdbcd }, + { 4144, 0x2cb2 }, { 4151, 0x2fb4 }, { 4160, 0x58dc }, { 4168, 0x2f52 }, + { 4176, 0xf56d }, { 4187, 0x8a5e }, { 4195, 0x5253 }, { 4202, 0xfe16 }, + { 4212, 0x7fe5 }, { 4224, 0x88e0 }, { 4229, 0x6dda }, { 4239, 0x5fe4 }, + /* 0x6800 */ + { 4249, 0x205e }, { 4255, 0xdf35 }, { 4266, 0xf9fd }, { 4279, 0x8c73 }, + { 4287, 0xa880 }, { 4291, 0xffc4 }, { 4302, 0xf400 }, { 4307, 0xff2f }, + { 4320, 0x7f95 }, { 4331, 0xff77 }, { 4345, 0x5e3b }, { 4355, 0xffd6 }, + { 4368, 0xd5fa }, { 4379, 0xfadb }, { 4391, 0xbff6 }, { 4404, 0xe9dc }, + /* 0x6900 */ + { 4414, 0x97dd }, { 4425, 0x7ffa }, { 4438, 0xdfee }, { 4451, 0x5dee }, + { 4462, 0xfffb }, { 4477, 0x9b6f }, { 4488, 0xb7b6 }, { 4499, 0xec7d }, + { 4510, 0xdc2a }, { 4518, 0xe6cf }, { 4529, 0xd67f }, { 4541, 0xf76d }, + { 4553, 0xabfd }, { 4565, 0x77ee }, { 4577, 0xdffe }, { 4591, 0x5ffb }, + /* 0x6a00 */ + { 4604, 0xfbff }, { 4619, 0x7e7f }, { 4632, 0x7afd }, { 4644, 0x9fdd }, + { 4656, 0xff6f }, { 4670, 0xf4fe }, { 4682, 0xffdd }, { 4696, 0xedfd }, + { 4709, 0xbfee }, { 4722, 0xff7c }, { 4735, 0xe5fe }, { 4747, 0xffff }, + { 4763, 0xffff }, { 4779, 0xffff }, { 4795, 0xffff }, { 4811, 0xffff }, + /* 0x6b00 */ + { 4827, 0xffff }, { 4843, 0xffff }, { 4859, 0xff60 }, { 4869, 0xb97b }, + { 4880, 0xed37 }, { 4891, 0xfdff }, { 4906, 0xfb03 }, { 4915, 0xe5ff }, + { 4928, 0xd121 }, { 4934, 0xf3b3 }, { 4945, 0xfbfd }, { 4959, 0x7f47 }, + { 4970, 0x57d9 }, { 4980, 0xf503 }, { 4988, 0x73fd }, { 5000, 0xddd7 }, + /* 0x6c00 */ + { 5012, 0x5f1f }, { 5023, 0x7084 }, { 5028, 0x3829 }, { 5034, 0xdeca }, + { 5044, 0xf938 }, { 5053, 0x074e }, { 5060, 0xf8ec }, { 5070, 0x9daa }, + { 5079, 0x6c91 }, { 5086, 0x75e6 }, { 5096, 0x9105 }, { 5101, 0x04f1 }, + { 5107, 0xe9cf }, { 5118, 0xb706 }, { 5126, 0x32d0 }, { 5132, 0x8214 }, + /* 0x6d00 */ + { 5136, 0xa76d }, { 5146, 0xb17b }, { 5156, 0xb35f }, { 5167, 0x85d1 }, + { 5174, 0x1215 }, { 5179, 0xa9e1 }, { 5187, 0x39b6 }, { 5196, 0xee6f }, + { 5208, 0xacdb }, { 5218, 0x17c5 }, { 5226, 0x3024 }, { 5230, 0x7edb }, + { 5242, 0xe70e }, { 5251, 0x9cbd }, { 5261, 0xa7ac }, { 5270, 0xe575 }, + /* 0x6e00 */ + { 5280, 0x8bdf }, { 5291, 0xdb2c }, { 5300, 0x55c4 }, { 5307, 0xfaeb }, + { 5319, 0x9fe7 }, { 5331, 0x76a7 }, { 5341, 0xb7ff }, { 5355, 0x3fff }, + { 5369, 0x7d97 }, { 5380, 0x6efe }, { 5392, 0x7b5b }, { 5403, 0xd329 }, + { 5411, 0x7779 }, { 5422, 0x3b45 }, { 5430, 0xfc88 }, { 5438, 0xfdef }, + /* 0x6f00 */ + { 5452, 0x7dbb }, { 5464, 0xffc7 }, { 5477, 0x51ee }, { 5486, 0xbfb5 }, + { 5498, 0xd73f }, { 5510, 0xaeff }, { 5523, 0x9fbb }, { 5535, 0xeaeb }, + { 5546, 0x8cef }, { 5556, 0xefff }, { 5571, 0xff7d }, { 5585, 0xfdb7 }, + { 5598, 0xfdfa }, { 5611, 0xbff9 }, { 5624, 0x3ffc }, { 5636, 0xffff }, + /* 0x7000 */ + { 5652, 0xffff }, { 5668, 0xf3fd }, { 5681, 0xfff7 }, { 5696, 0xfddf }, + { 5710, 0x6fff }, { 5724, 0xbfff }, { 5739, 0x47ff }, { 5751, 0x2e9e }, + { 5760, 0xb9de }, { 5771, 0xcd8b }, { 5780, 0x07ff }, { 5791, 0xc475 }, + { 5799, 0xfaf0 }, { 5809, 0x74ff }, { 5821, 0x442f }, { 5828, 0xdd7f }, + /* 0x7100 */ + { 5841, 0xf9ff }, { 5855, 0xf896 }, { 5864, 0x7fbf }, { 5878, 0xffbc }, + { 5891, 0xabdf }, { 5903, 0xafff }, { 5917, 0xbe2f }, { 5928, 0xdaf3 }, + { 5939, 0x7bef }, { 5952, 0x7cef }, { 5964, 0xeefe }, { 5977, 0xfdd7 }, + { 5990, 0xbff7 }, { 6004, 0xffcf }, { 6018, 0xbf5e }, { 6030, 0xfdff }, + /* 0x7200 */ + { 6045, 0xffbf }, { 6060, 0xdfff }, { 6075, 0xeaff }, { 6088, 0x541c }, + { 6094, 0xce7f }, { 6106, 0x55bb }, { 6116, 0x3d39 }, { 6125, 0x39db }, + { 6135, 0x53ec }, { 6144, 0x7ffb }, { 6158, 0x4fff }, { 6171, 0xfc2e }, + { 6181, 0x9ee1 }, { 6190, 0xbd7a }, { 6201, 0x0cfc }, { 6209, 0xe260 }, + /* 0x7300 */ + { 6215, 0xbbf5 }, { 6227, 0x8717 }, { 6235, 0xa1d9 }, { 6243, 0x3c6d }, + { 6252, 0xdfff }, { 6267, 0xff7a }, { 6280, 0x4ffe }, { 6292, 0xbfff }, + { 6307, 0xb56f }, { 6318, 0x77bd }, { 6330, 0x35fb }, { 6341, 0xf372 }, + { 6351, 0x58fa }, { 6360, 0xbdfc }, { 6372, 0xdd5e }, { 6383, 0xfffb }, + /* 0x7400 */ + { 6398, 0x7997 }, { 6408, 0xf3fe }, { 6421, 0xaa9b }, { 6430, 0xef86 }, + { 6440, 0xfffd }, { 6455, 0x215f }, { 6463, 0xdfff }, { 6478, 0xbf3e }, + { 6490, 0xb774 }, { 6500, 0xaffe }, { 6513, 0xfc7f }, { 6526, 0xfbff }, + { 6541, 0xffff }, { 6557, 0xaffb }, { 6570, 0x3fa2 }, { 6579, 0x7f2f }, + /* 0x7500 */ + { 6591, 0x5fef }, { 6604, 0x68f5 }, { 6613, 0x44df }, { 6622, 0xb250 }, + { 6628, 0x26de }, { 6637, 0xe1ef }, { 6648, 0xfb9f }, { 6661, 0x7ceb }, + { 6672, 0x77b7 }, { 6684, 0x5929 }, { 6691, 0x27c4 }, { 6698, 0x8cc0 }, + { 6703, 0xd843 }, { 6710, 0xb68b }, { 6719, 0xf223 }, { 6727, 0x6dec }, + /* 0x7600 */ + { 6737, 0xebd4 }, { 6747, 0x745e }, { 6756, 0xd18a }, { 6763, 0x2ec6 }, + { 6771, 0xcff6 }, { 6783, 0xafaf }, { 6795, 0x77f7 }, { 6808, 0x96ff }, + { 6820, 0xb62b }, { 6829, 0xfdb5 }, { 6841, 0xbfef }, { 6855, 0x7fe9 }, + { 6867, 0x1a9b }, { 6875, 0x7628 }, { 6882, 0x3fdf }, { 6895, 0xace9 }, + /* 0x7700 */ + { 6904, 0xd46d }, { 6913, 0x79ff }, { 6926, 0x5cba }, { 6935, 0xea1f }, + { 6945, 0xff74 }, { 6957, 0xf3fc }, { 6969, 0xe691 }, { 6977, 0x1dff }, + { 6989, 0x8fce }, { 6999, 0x7ff9 }, { 7012, 0xe95a }, { 7021, 0x57d6 }, + { 7031, 0xdfff }, { 7046, 0xe77f }, { 7059, 0x8553 }, { 7066, 0x1eb7 }, + /* 0x7800 */ + { 7076, 0xcdf8 }, { 7086, 0x4a29 }, { 7092, 0xcd17 }, { 7101, 0xa06e }, + { 7108, 0xaf5e }, { 7119, 0xdf1a }, { 7129, 0x83ff }, { 7140, 0xef7f }, + { 7154, 0x8d7f }, { 7165, 0x6275 }, { 7173, 0xff55 }, { 7185, 0xbde0 }, + { 7194, 0xf1dd }, { 7205, 0xfdce }, { 7217, 0xeeff }, { 7231, 0xfb6b }, + /* 0x7900 */ + { 7243, 0xffdd }, { 7257, 0xbff7 }, { 7271, 0xffef }, { 7286, 0xa3ef }, + { 7297, 0xfcbc }, { 7308, 0x0337 }, { 7315, 0x5e5a }, { 7324, 0xfa7f }, + { 7337, 0x7bcc }, { 7347, 0xfbff }, { 7362, 0xff7f }, { 7377, 0x91f7 }, + { 7387, 0xd5b4 }, { 7396, 0x7ed9 }, { 7407, 0x5527 }, { 7415, 0xd6fe }, + /* 0x7a00 */ + { 7427, 0x97b2 }, { 7436, 0xbb6f }, { 7448, 0xfff6 }, { 7462, 0x4577 }, + { 7471, 0xffbf }, { 7486, 0xff7d }, { 7500, 0xffff }, { 7516, 0x782e }, + { 7524, 0xdea4 }, { 7533, 0x4e19 }, { 7540, 0xce9e }, { 7550, 0x7ff7 }, + { 7564, 0xf7ff }, { 7579, 0x3dbf }, { 7591, 0x5f96 }, { 7601, 0x59ff }, + /* 0x7b00 */ + { 7613, 0x72a7 }, { 7622, 0xb5cd }, { 7632, 0xa28e }, { 7639, 0xaaf5 }, + { 7649, 0x655f }, { 7659, 0xd2a8 }, { 7666, 0xbffa }, { 7679, 0xb559 }, + { 7688, 0xdfde }, { 7701, 0xcf4e }, { 7711, 0xc039 }, { 7717, 0xfeed }, + { 7730, 0xef3d }, { 7742, 0xd9f5 }, { 7753, 0xbb9d }, { 7764, 0xaf7d }, + /* 0x7c00 */ + { 7776, 0x677f }, { 7788, 0x7fbf }, { 7802, 0xfb3f }, { 7815, 0x7eff }, + { 7829, 0xdffc }, { 7842, 0xffff }, { 7858, 0xffff }, { 7874, 0xc7e7 }, + { 7885, 0xfdff }, { 7900, 0x0e59 }, { 7907, 0xbbcb }, { 7918, 0x8df1 }, + { 7927, 0xca5d }, { 7936, 0x6d1f }, { 7946, 0x7efe }, { 7959, 0xf6ff }, + /* 0x7d00 */ + { 7973, 0xfbff }, { 7988, 0xffff }, { 8004, 0x777a }, { 8015, 0xffff }, + { 8031, 0xffff }, { 8047, 0xffff }, { 8063, 0xbfff }, { 8078, 0xff7f }, + { 8093, 0xffff }, { 8109, 0xffff }, { 8125, 0xbfbf }, { 8139, 0xffff }, + { 8155, 0xffff }, { 8171, 0xffff }, { 8187, 0xffff }, { 8203, 0xffff }, + /* 0x7e00 */ + { 8219, 0xffff }, { 8235, 0xffff }, { 8251, 0xffff }, { 8267, 0xf7ff }, + { 8282, 0xff7d }, { 8296, 0xffff }, { 8312, 0xffff }, { 8328, 0xffff }, + { 8344, 0xfffb }, { 8359, 0x77ff }, { 8373, 0x4000 }, { 8374, 0x1810 }, + { 8377, 0x0000 }, { 8377, 0x0040 }, { 8378, 0x1010 }, { 8380, 0x0200 }, + /* 0x7f00 */ + { 8381, 0x0400 }, { 8382, 0x4001 }, { 8384, 0x0000 }, { 8384, 0xfa80 }, + { 8391, 0xffcb }, { 8404, 0x7a4c }, { 8412, 0xb8f9 }, { 8422, 0xbde9 }, + { 8433, 0xabfd }, { 8445, 0x1bef }, { 8456, 0x7f6d }, { 8468, 0x4cfa }, + { 8477, 0xabdd }, { 8488, 0x7ecf }, { 8500, 0xbd9c }, { 8510, 0xe7f4 }, + /* 0x8000 */ + { 8521, 0xc784 }, { 8528, 0xec0a }, { 8535, 0xf81a }, { 8543, 0x5615 }, + { 8550, 0xc3b3 }, { 8559, 0xfaeb }, { 8571, 0xf9ff }, { 8585, 0x7ffd }, + { 8599, 0xe526 }, { 8607, 0x42b7 }, { 8615, 0x11c8 }, { 8620, 0x0b69 }, + { 8627, 0x8fa0 }, { 8634, 0x813f }, { 8642, 0x404d }, { 8647, 0xcaa0 }, + /* 0x8100 */ + { 8653, 0x19bb }, { 8662, 0xbaa0 }, { 8669, 0x6fff }, { 8683, 0xbeb9 }, + { 8694, 0xe2bf }, { 8705, 0xf9c4 }, { 8714, 0x9d5e }, { 8724, 0x01ec }, + { 8730, 0x7afa }, { 8741, 0xc6fd }, { 8752, 0xfab7 }, { 8764, 0xf3f7 }, + { 8777, 0xebb0 }, { 8786, 0xffff }, { 8802, 0xcb77 }, { 8813, 0xa7e7 }, + /* 0x8200 */ + { 8824, 0xcf88 }, { 8832, 0x27ea }, { 8841, 0x42f1 }, { 8848, 0xb404 }, + { 8853, 0x756f }, { 8864, 0x7aff }, { 8877, 0x3eff }, { 8890, 0x19e2 }, + { 8897, 0x12eb }, { 8905, 0x4c79 }, { 8913, 0x008d }, { 8917, 0x9c64 }, + { 8924, 0x026d }, { 8930, 0x2641 }, { 8935, 0x7784 }, { 8943, 0xf56d }, + /* 0x8300 */ + { 8954, 0x2c01 }, { 8958, 0xe34d }, { 8967, 0x467f }, { 8977, 0xe885 }, + { 8984, 0x7d36 }, { 8994, 0x23e8 }, { 9001, 0x0004 }, { 9002, 0xc67f }, + { 9013, 0xbd9f }, { 9025, 0xa6f3 }, { 9035, 0xf0fe }, { 9046, 0xc820 }, + { 9050, 0x6b5c }, { 9059, 0x4eaf }, { 9069, 0xf9dc }, { 9080, 0xdcf8 }, + /* 0x8400 */ + { 9090, 0x07a5 }, { 9097, 0xcefd }, { 9109, 0xfe0f }, { 9120, 0xcefd }, + { 9132, 0xffbf }, { 9147, 0xe17d }, { 9157, 0xc5f5 }, { 9167, 0xfa95 }, + { 9177, 0xa47b }, { 9186, 0xed7f }, { 9199, 0x7ffd }, { 9213, 0x58eb }, + { 9222, 0xd9ed }, { 9233, 0x5fb4 }, { 9243, 0xef96 }, { 9254, 0x6ffe }, + /* 0x8500 */ + { 9267, 0xefff }, { 9282, 0x7b75 }, { 9293, 0xe7fd }, { 9306, 0xc07f }, + { 9315, 0xf8f7 }, { 9327, 0xbdbf }, { 9340, 0xfeef }, { 9354, 0xb1eb }, + { 9364, 0x7f4f }, { 9376, 0xe7ff }, { 9390, 0x3aef }, { 9401, 0xfd7e }, + { 9414, 0x7dfd }, { 9427, 0xefd6 }, { 9439, 0xfdef }, { 9453, 0x77ff }, + /* 0x8600 */ + { 9467, 0xffdf }, { 9482, 0xffbd }, { 9496, 0xfd7f }, { 9510, 0xeeff }, + { 9524, 0x1fff }, { 9537, 0xbbec }, { 9548, 0xa7fb }, { 9560, 0x01fd }, + { 9568, 0xc3f8 }, { 9577, 0xcfd7 }, { 9589, 0x6867 }, { 9597, 0xfb8c }, + { 9607, 0x312e }, { 9614, 0x34ec }, { 9622, 0x9def }, { 9634, 0xbce0 }, + /* 0x8700 */ + { 9642, 0xd872 }, { 9650, 0xaa53 }, { 9658, 0xbdd1 }, { 9668, 0x376d }, + { 9678, 0xac7f }, { 9689, 0xfd77 }, { 9702, 0xbfc6 }, { 9713, 0x87ae }, + { 9722, 0xd6d3 }, { 9732, 0x7f77 }, { 9745, 0x46ff }, { 9756, 0xdbd7 }, + { 9768, 0xf3be }, { 9780, 0xf7f1 }, { 9792, 0xbbde }, { 9804, 0xbdff }, + /* 0x8800 */ + { 9818, 0xfbf7 }, { 9832, 0xf797 }, { 9844, 0xfff9 }, { 9858, 0xedfb }, + { 9871, 0xcfce }, { 9882, 0xfd6f }, { 9895, 0xa4c1 }, { 9901, 0x1f7a }, + { 9911, 0xd6c9 }, { 9920, 0xefbb }, { 9933, 0xd7eb }, { 9945, 0xef7d }, + { 9958, 0xbd99 }, { 9968, 0x7ccb }, { 9978, 0xfec3 }, { 9989, 0xace4 }, + /* 0x8900 */ + { 9997, 0xfbfb }, { 10011, 0xf1f2 }, { 10021, 0xf3dd }, { 10033, 0xffae }, + { 10046, 0xffed }, { 10060, 0x3fff }, { 10074, 0xffbf }, { 10089, 0x77ff }, + { 10103, 0xffb5 }, { 10116, 0xffff }, { 10132, 0xffff }, { 10148, 0xffff }, + { 10164, 0x2009 }, { 10167, 0xabb8 }, { 10176, 0x7797 }, { 10187, 0xfff7 }, + /* 0x8a00 */ + { 10202, 0xff7e }, { 10216, 0xffff }, { 10232, 0xffff }, { 10248, 0xbfff }, + { 10263, 0xfeff }, { 10278, 0xffff }, { 10294, 0xffff }, { 10310, 0xfdff }, + { 10325, 0xf9ff }, { 10339, 0xfff7 }, { 10354, 0xffff }, { 10370, 0xffff }, + { 10386, 0xffff }, { 10402, 0xffff }, { 10418, 0xffff }, { 10434, 0xffff }, + /* 0x8b00 */ + { 10450, 0xff7f }, { 10465, 0xffff }, { 10481, 0xffbf }, { 10496, 0xffff }, + { 10512, 0xffff }, { 10528, 0xffff }, { 10544, 0xefbf }, { 10558, 0xffff }, + { 10574, 0xffff }, { 10590, 0xffff }, { 10606, 0x1000 }, { 10607, 0x0802 }, + { 10609, 0x0080 }, { 10610, 0x0001 }, { 10611, 0x0400 }, { 10612, 0x0000 }, + /* 0x8c00 */ + { 10612, 0x0200 }, { 10613, 0x4000 }, { 10614, 0x0000 }, { 10614, 0xff00 }, + { 10622, 0xed3d }, { 10633, 0xfbdf }, { 10647, 0xf3f9 }, { 10659, 0xf8f7 }, + { 10671, 0xe9db }, { 10682, 0xfeef }, { 10696, 0xffff }, { 10712, 0xffff }, + { 10728, 0xffff }, { 10744, 0xffff }, { 10760, 0xffff }, { 10776, 0xffff }, + /* 0x8d00 */ + { 10792, 0xffff }, { 10808, 0x1fff }, { 10821, 0x0001 }, { 10822, 0x0000 }, + { 10822, 0x0000 }, { 10822, 0x8086 }, { 10826, 0xd720 }, { 10833, 0xff06 }, + { 10843, 0xf3cd }, { 10854, 0x7fed }, { 10867, 0xfff7 }, { 10882, 0x2ac5 }, + { 10889, 0x27a7 }, { 10898, 0x133d }, { 10906, 0x62e7 }, { 10915, 0xd057 }, + /* 0x8e00 */ + { 10923, 0x69df }, { 10934, 0x1fef }, { 10946, 0x29f3 }, { 10955, 0xd9dd }, + { 10966, 0xf068 }, { 10973, 0xfdf9 }, { 10986, 0x4dbf }, { 10997, 0x6faa }, + { 11007, 0x7f5d }, { 11019, 0xafee }, { 11031, 0x67ff }, { 11044, 0xfbfb }, + { 11058, 0xbfff }, { 11073, 0xffff }, { 11089, 0xffff }, { 11105, 0xffff }, + /* 0x8f00 */ + { 11121, 0xffff }, { 11137, 0xffff }, { 11153, 0xffff }, { 11169, 0xffff }, + { 11185, 0xffff }, { 11201, 0xffff }, { 11217, 0x043f }, { 11224, 0x0000 }, + { 11224, 0x1001 }, { 11226, 0x2004 }, { 11228, 0xf4f7 }, { 11240, 0x9dbc }, + { 11250, 0xbe49 }, { 11259, 0x04c4 }, { 11263, 0x908b }, { 11269, 0xdc76 }, + /* 0x9000 */ + { 11279, 0x5180 }, { 11283, 0x1328 }, { 11288, 0x1fb8 }, { 11297, 0xa69f }, + { 11307, 0x5f69 }, { 11317, 0xf670 }, { 11326, 0x9ed3 }, { 11336, 0x5fcf }, + { 11348, 0xf6f2 }, { 11359, 0xd555 }, { 11368, 0x2bb1 }, { 11376, 0xb084 }, + { 11381, 0x3b4d }, { 11390, 0xc774 }, { 11399, 0x5639 }, { 11407, 0x9eef }, + /* 0x9100 */ + { 11419, 0xffeb }, { 11433, 0xbdff }, { 11447, 0x7ff3 }, { 11460, 0xfdfd }, + { 11474, 0x01b7 }, { 11481, 0x9b7a }, { 11491, 0x29c1 }, { 11497, 0x1c08 }, + { 11501, 0xc55f }, { 11511, 0xf3f8 }, { 11522, 0x1bf3 }, { 11532, 0xfbcf }, + { 11545, 0x097f }, { 11554, 0xeffd }, { 11568, 0xffff }, { 11584, 0xffff }, + /* 0x9200 */ + { 11600, 0xffff }, { 11616, 0xffff }, { 11632, 0xffff }, { 11648, 0xffff }, + { 11664, 0xffff }, { 11680, 0xffff }, { 11696, 0xffff }, { 11712, 0xffef }, + { 11727, 0xbfff }, { 11742, 0xffff }, { 11758, 0xbfff }, { 11773, 0xffff }, + { 11789, 0xfeff }, { 11804, 0xffff }, { 11820, 0xffff }, { 11836, 0xffff }, + /* 0x9300 */ + { 11852, 0xffff }, { 11868, 0xffff }, { 11884, 0xffff }, { 11900, 0xbfff }, + { 11915, 0xffff }, { 11931, 0xffff }, { 11947, 0xfbff }, { 11962, 0xffff }, + { 11978, 0x7fff }, { 11993, 0xffff }, { 12009, 0xffff }, { 12025, 0xffff }, + { 12041, 0xfbff }, { 12056, 0xffbf }, { 12071, 0xffff }, { 12087, 0xffff }, + /* 0x9400 */ + { 12103, 0xffff }, { 12119, 0xffff }, { 12135, 0xffff }, { 12151, 0xbfff }, + { 12166, 0xffff }, { 12182, 0xffff }, { 12198, 0xf7ff }, { 12213, 0xffff }, + { 12229, 0x001f }, { 12234, 0x0142 }, { 12237, 0x0000 }, { 12237, 0x0000 }, + { 12237, 0x8080 }, { 12239, 0x0418 }, { 12242, 0x0040 }, { 12243, 0x0800 }, + /* 0x9500 */ + { 12244, 0x0000 }, { 12244, 0x1000 }, { 12245, 0x0081 }, { 12247, 0x2008 }, + { 12249, 0x0908 }, { 12252, 0x0420 }, { 12254, 0x4001 }, { 12256, 0x7fb0 }, + { 12266, 0xffff }, { 12282, 0xffff }, { 12298, 0xffff }, { 12314, 0xffff }, + { 12330, 0xffff }, { 12346, 0xffff }, { 12362, 0x10ff }, { 12371, 0x8000 }, + /* 0x9600 */ + { 12372, 0x0080 }, { 12373, 0x4908 }, { 12377, 0xbbf9 }, { 12389, 0x4781 }, + { 12395, 0xc40a }, { 12400, 0x77ce }, { 12411, 0xe869 }, { 12419, 0xff0b }, + { 12430, 0x569f }, { 12440, 0xec6e }, { 12450, 0xff7f }, { 12465, 0x8db6 }, + { 12474, 0x0d0c }, { 12479, 0xffdb }, { 12493, 0x78fe }, { 12504, 0xbd37 }, + /* 0x9700 */ + { 12515, 0x1c2c }, { 12521, 0xafb7 }, { 12533, 0xdbff }, { 12547, 0xbcfa }, + { 12558, 0xffff }, { 12574, 0xb5b3 }, { 12584, 0xfdd8 }, { 12595, 0xefa7 }, + { 12607, 0xd7df }, { 12620, 0xfee9 }, { 12632, 0x57f6 }, { 12643, 0xffeb }, + { 12657, 0xffff }, { 12673, 0xffff }, { 12689, 0xc13f }, { 12698, 0xff97 }, + /* 0x9800 */ + { 12711, 0xffff }, { 12727, 0xffff }, { 12743, 0xffff }, { 12759, 0xffff }, + { 12775, 0xffff }, { 12791, 0xffff }, { 12807, 0xffff }, { 12823, 0x001f }, + { 12828, 0x4800 }, { 12830, 0x0224 }, { 12833, 0xff08 }, { 12842, 0xffff }, + { 12858, 0xbfff }, { 12873, 0x38d1 }, { 12880, 0xfe7f }, { 12894, 0xffff }, + /* 0x9900 */ + { 12910, 0xdfff }, { 12925, 0xfffe }, { 12940, 0xbfff }, { 12955, 0xffff }, + { 12971, 0xffff }, { 12987, 0xffcf }, { 13001, 0x0057 }, { 13006, 0x4b08 }, + { 13011, 0x520c }, { 13016, 0xfc00 }, { 13022, 0xfedf }, { 13036, 0xffff }, + { 13052, 0xffff }, { 13068, 0xffff }, { 13084, 0xffff }, { 13100, 0xffff }, + /* 0x9a00 */ + { 13116, 0xffff }, { 13132, 0xffff }, { 13148, 0xffff }, { 13164, 0xffff }, + { 13180, 0xffff }, { 13196, 0xffff }, { 13212, 0x0fff }, { 13224, 0x0004 }, + { 13225, 0x6208 }, { 13229, 0x0230 }, { 13232, 0xfe40 }, { 13240, 0xea3c }, + { 13249, 0xe7d8 }, { 13259, 0x7ef5 }, { 13271, 0x57bd }, { 13282, 0xf5ff }, + /* 0x9b00 */ + { 13296, 0x7ef7 }, { 13309, 0x7ff7 }, { 13323, 0x7ff7 }, { 13337, 0xe7fb }, + { 13350, 0x5c41 }, { 13356, 0xffed }, { 13370, 0xffff }, { 13386, 0xffff }, + { 13402, 0xffff }, { 13418, 0xffff }, { 13434, 0xffff }, { 13450, 0xffff }, + { 13466, 0xffff }, { 13482, 0xffff }, { 13498, 0xffff }, { 13514, 0xffff }, + /* 0x9c00 */ + { 13530, 0xffff }, { 13546, 0xffff }, { 13562, 0xffff }, { 13578, 0xffff }, + { 13594, 0xffff }, { 13610, 0xffff }, { 13626, 0xffff }, { 13642, 0x6fff }, + { 13656, 0x9619 }, { 13663, 0x23c8 }, { 13669, 0x9400 }, { 13672, 0xc200 }, + { 13675, 0x0307 }, { 13680, 0x0c06 }, { 13684, 0xfffb }, { 13699, 0xffff }, + /* 0x9d00 */ + { 13715, 0xffff }, { 13731, 0xffff }, { 13747, 0xffff }, { 13763, 0xffff }, + { 13779, 0xffff }, { 13795, 0xffff }, { 13811, 0xffff }, { 13827, 0xffff }, + { 13843, 0xffff }, { 13859, 0xffff }, { 13875, 0xffff }, { 13891, 0xffff }, + { 13907, 0xffff }, { 13923, 0xffff }, { 13939, 0xffff }, { 13955, 0xffff }, + /* 0x9e00 */ + { 13971, 0xffff }, { 13987, 0x7fff }, { 14002, 0x4090 }, { 14005, 0x1811 }, + { 14009, 0x2001 }, { 14011, 0xa25d }, { 14019, 0xc027 }, { 14025, 0x3ff4 }, + { 14036, 0xf67b }, { 14048, 0x5ff3 }, { 14060, 0xffbf }, { 14075, 0x96ef }, + { 14086, 0x1def }, { 14097, 0x46ed }, { 14106, 0x795a }, { 14115, 0xa5ff }, + /* 0x9f00 */ + { 14127, 0x97ff }, { 14140, 0xfd76 }, { 14152, 0x6ffa }, { 14164, 0x957f }, + { 14175, 0xffef }, { 14190, 0xfffc }, { 14204, 0xffff }, { 14220, 0x7fff }, + { 14235, 0xe006 }, { 14240, 0x71ff }, { 14252, 0x003e }, +}; +static const Summary16 gbkext_inv_uni2indx_pagef9[19] = { + /* 0xf900 */ + { 14257, 0x0000 }, { 14257, 0x0000 }, { 14257, 0x1000 }, { 14258, 0x0000 }, + { 14258, 0x0000 }, { 14258, 0x0000 }, { 14258, 0x0000 }, { 14258, 0x0200 }, + { 14259, 0x0000 }, { 14259, 0x0020 }, { 14260, 0x0000 }, { 14260, 0x0000 }, + { 14260, 0x0000 }, { 14260, 0x0000 }, { 14260, 0x0080 }, { 14261, 0x0002 }, + /* 0xfa00 */ + { 14262, 0xf000 }, { 14266, 0x811a }, { 14271, 0x039b }, +}; +static const Summary16 gbkext_inv_uni2indx_pagefe[31] = { + /* 0xfe00 */ + { 14278, 0x0000 }, { 14278, 0x0000 }, { 14278, 0x0000 }, { 14278, 0x0001 }, + { 14279, 0xfe00 }, { 14286, 0xfef7 }, { 14300, 0x0f7f }, { 14311, 0x0000 }, + { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, + { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, + /* 0xff00 */ + { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, + { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, + { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, + { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0014 }, +}; + +static int +gbkext_inv_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (n >= 2) { + const Summary16 *summary = NULL; + if (wc >= 0x0200 && wc < 0x02e0) + summary = &gbkext_inv_uni2indx_page02[(wc>>4)-0x020]; + else if (wc >= 0x2000 && wc < 0x22c0) + summary = &gbkext_inv_uni2indx_page20[(wc>>4)-0x200]; + else if (wc >= 0x2500 && wc < 0x2610) + summary = &gbkext_inv_uni2indx_page25[(wc>>4)-0x250]; + else if (wc >= 0x3000 && wc < 0x3100) + summary = &gbkext_inv_uni2indx_page30[(wc>>4)-0x300]; + else if (wc >= 0x3200 && wc < 0x33e0) + summary = &gbkext_inv_uni2indx_page32[(wc>>4)-0x320]; + else if (wc >= 0x4e00 && wc < 0x9fb0) + summary = &gbkext_inv_uni2indx_page4e[(wc>>4)-0x4e0]; + else if (wc >= 0xf900 && wc < 0xfa30) + summary = &gbkext_inv_uni2indx_pagef9[(wc>>4)-0xf90]; + else if (wc >= 0xfe00 && wc < 0xfff0) + summary = &gbkext_inv_uni2indx_pagefe[(wc>>4)-0xfe0]; + if (summary) { + unsigned short used = summary->used; + unsigned int i = wc & 0x0f; + if (used & ((unsigned short) 1 << i)) { + unsigned short c; + /* Keep in `used' only the bits 0..i-1. */ + used &= ((unsigned short) 1 << i) - 1; + /* Add `summary->indx' and the number of bits set in `used'. */ + used = (used & 0x5555) + ((used & 0xaaaa) >> 1); + used = (used & 0x3333) + ((used & 0xcccc) >> 2); + used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); + used = (used & 0x00ff) + (used >> 8); + c = gbkext_inv_2charset[summary->indx + used]; + r[0] = (c >> 8); r[1] = (c & 0xff); + return 2; + } + } + return RET_ILUNI; + } + return RET_TOOSMALL; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/georgian_academy.h b/graf2d/win32gdk/gdk/src/iconv/georgian_academy.h new file mode 100644 index 00000000000..ddbe57806d1 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/georgian_academy.h @@ -0,0 +1,106 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * GEORGIAN-ACADEMY + */ + +static const unsigned short georgian_academy_2uni[32] = { + /* 0x80 */ + 0x0080, 0x0081, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, + 0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0x008d, 0x008e, 0x008f, + /* 0x90 */ + 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, + 0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0x009d, 0x009e, 0x0178, +}; + +static int +georgian_academy_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c >= 0x80 && c < 0xa0) + *pwc = (ucs4_t) georgian_academy_2uni[c-0x80]; + else if (c >= 0xc0 && c < 0xe7) + *pwc = (ucs4_t) c + 0x1010; + else + *pwc = (ucs4_t) c; + return 1; +} + +static const unsigned char georgian_academy_page00[32] = { + 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, 0x8e, 0x8f, /* 0x88-0x8f */ + 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9e, 0x00, /* 0x98-0x9f */ +}; +static const unsigned char georgian_academy_page01[72] = { + 0x00, 0x00, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x8a, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ +}; +static const unsigned char georgian_academy_page02[32] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ +}; +static const unsigned char georgian_academy_page20[48] = { + 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ + 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ +}; + +static int +georgian_academy_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x0080 && wc < 0x00a0) + c = georgian_academy_page00[wc-0x0080]; + else if ((wc >= 0x00a0 && wc < 0x00c0) || (wc >= 0x00e7 && wc < 0x0100)) + c = wc; + else if (wc >= 0x0150 && wc < 0x0198) + c = georgian_academy_page01[wc-0x0150]; + else if (wc >= 0x02c0 && wc < 0x02e0) + c = georgian_academy_page02[wc-0x02c0]; + else if (wc >= 0x10d0 && wc < 0x10f7) + c = wc-0x1010; + else if (wc >= 0x2010 && wc < 0x2040) + c = georgian_academy_page20[wc-0x2010]; + else if (wc == 0x2122) + c = 0x99; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/georgian_ps.h b/graf2d/win32gdk/gdk/src/iconv/georgian_ps.h new file mode 100644 index 00000000000..e23dbae1cd0 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/georgian_ps.h @@ -0,0 +1,123 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * GEORGIAN-PS + */ + +static const unsigned short georgian_ps_2uni_1[32] = { + /* 0x80 */ + 0x0080, 0x0081, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, + 0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0x008d, 0x008e, 0x008f, + /* 0x90 */ + 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, + 0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0x009d, 0x009e, 0x0178, +}; +static const unsigned short georgian_ps_2uni_2[39] = { + /* 0xc0 */ + 0x10d0, 0x10d1, 0x10d2, 0x10d3, 0x10d4, 0x10d5, 0x10d6, 0x10f1, + 0x10d7, 0x10d8, 0x10d9, 0x10da, 0x10db, 0x10dc, 0x10f2, 0x10dd, + /* 0xd0 */ + 0x10de, 0x10df, 0x10e0, 0x10e1, 0x10e2, 0x10f3, 0x10e3, 0x10e4, + 0x10e5, 0x10e6, 0x10e7, 0x10e8, 0x10e9, 0x10ea, 0x10eb, 0x10ec, + /* 0xe0 */ + 0x10ed, 0x10ee, 0x10f4, 0x10ef, 0x10f0, 0x10f5, +}; + +static int +georgian_ps_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c >= 0x80 && c < 0xa0) + *pwc = (ucs4_t) georgian_ps_2uni_1[c-0x80]; + else if (c >= 0xc0 && c < 0xe6) + *pwc = (ucs4_t) georgian_ps_2uni_2[c-0xc0]; + else + *pwc = (ucs4_t) c; + return 1; +} + +static const unsigned char georgian_ps_page00[32] = { + 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, 0x8e, 0x8f, /* 0x88-0x8f */ + 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9e, 0x00, /* 0x98-0x9f */ +}; +static const unsigned char georgian_ps_page01[72] = { + 0x00, 0x00, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x8a, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ +}; +static const unsigned char georgian_ps_page02[32] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ +}; +static const unsigned char georgian_ps_page10[40] = { + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc8, /* 0xd0-0xd7 */ + 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xcf, 0xd0, 0xd1, /* 0xd8-0xdf */ + 0xd2, 0xd3, 0xd4, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, /* 0xe0-0xe7 */ + 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe3, /* 0xe8-0xef */ + 0xe4, 0xc7, 0xce, 0xd5, 0xe2, 0xe5, 0x00, 0x00, /* 0xf0-0xf7 */ +}; +static const unsigned char georgian_ps_page20[48] = { + 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ + 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ +}; + +static int +georgian_ps_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x0080 && wc < 0x00a0) + c = georgian_ps_page00[wc-0x0080]; + else if ((wc >= 0x00a0 && wc < 0x00c0) || (wc >= 0x00e6 && wc < 0x0100)) + c = wc; + else if (wc >= 0x0150 && wc < 0x0198) + c = georgian_ps_page01[wc-0x0150]; + else if (wc >= 0x02c0 && wc < 0x02e0) + c = georgian_ps_page02[wc-0x02c0]; + else if (wc >= 0x10d0 && wc < 0x10f8) + c = georgian_ps_page10[wc-0x10d0]; + else if (wc >= 0x2010 && wc < 0x2040) + c = georgian_ps_page20[wc-0x2010]; + else if (wc == 0x2122) + c = 0x99; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/hkscs1999.h b/graf2d/win32gdk/gdk/src/iconv/hkscs1999.h new file mode 100644 index 00000000000..37327633968 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/hkscs1999.h @@ -0,0 +1,3005 @@ +/* + * Copyright (C) 1999-2006 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * HKSCS:1999 + */ + +static const unsigned short hkscs1999_2uni_page88[627] = { + /* 0x88 */ + 0x06c0, 0x06c1, 0x06c2, 0x06c3, 0x06c4, 0x720c, 0x06c5, 0x71d1, + 0x71cd, 0x06c6, 0x06c7, 0x71cb, 0x8c68, 0x06c8, 0x71ca, 0x06c9, + 0x06ca, 0x06cb, 0x06cc, 0x720e, 0x06cd, 0x06ce, 0x0080, 0x0041, + 0x010d, 0x0040, 0x0092, 0x0049, 0x009a, 0x0048, 0x00cc, 0x0053, + 0x0111, 0x0052, 0x70fd, 0x02be, 0x70fd, 0x02c0, 0x004a, 0x0081, + 0x0061, 0x010e, 0x0060, 0x0151, 0x0093, 0x0069, 0x009b, 0x0068, + 0x00ab, 0x006d, 0x0110, 0x006c, 0x00cd, 0x0073, 0x0112, 0x0072, + 0x00eb, 0x007a, 0x0114, 0x0079, 0x0116, 0x0118, 0x011a, 0x011c, + 0x007c, 0x70fd, 0x02bf, 0x70fd, 0x02c1, 0x006a, 0x0161, 0x041a, + 0x041b, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + /* 0x89 */ + 0xf029, 0x8005, 0x70fd, 0x374a, 0x70fd, 0x70fd, 0x207d, 0x40dd, + 0x6dce, 0x62df, 0x70fd, 0x70fd, 0xd275, 0x36d1, 0x215a, 0x2168, + 0x21e8, 0x2396, 0x23b4, 0x23dc, 0x2424, 0x24e1, 0x24e8, 0x257b, + 0x258e, 0x2611, 0x2618, 0x2922, 0x2b30, 0x2b44, 0x2b47, 0x2b72, + 0x2b74, 0x2da6, 0x2dde, 0x2ddf, 0x2eda, 0x30c6, 0x327b, 0x37c9, + 0x3a3e, 0x3a44, 0x3aa5, 0x3f8e, 0x42bc, 0x4735, 0x50a4, 0x50ac, + 0x50ba, 0x50c7, 0x50cf, 0x50df, 0x5106, 0x5137, 0x547a, 0x54cf, + 0x556f, 0x5b46, 0x5d3e, 0x5d62, 0x60a6, 0x60a7, 0x60ae, 0x4611, + 0x4efc, 0x4fcd, 0x3b86, 0x4cc9, 0x2467, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x628c, 0x4ab8, 0x625e, 0x52bc, 0x70fd, 0x5e4b, 0x52f6, + 0x78e7, 0x70fd, 0x70fd, 0x529f, 0x6f47, 0x1f8d, 0x6e49, 0x6e8c, + 0x1efe, 0xebb6, 0xcd4e, 0x6e8a, 0xee73, 0x0901, 0x70fd, 0x409a, + 0x543e, 0x4719, 0x70fd, 0x1c11, 0x6b6c, 0x6b8f, 0x7019, 0x4b87, + 0xdcac, 0x8a8a, 0x7650, 0x9526, 0x2064, 0x20c1, 0x20c0, 0x20c7, + 0x20ff, 0x212b, 0x2177, 0x078c, 0x21fd, 0x1148, 0x2243, 0x22c8, + 0x07bd, 0x07d3, 0x07e5, 0x23c6, 0x2b45, 0x241b, 0x243c, 0x2445, + 0x20c9, 0x24b9, 0x24d0, 0x2567, 0x0907, 0x25e9, 0x0891, 0x25f0, + 0x0893, 0x2602, 0x2663, 0x08ad, 0x08b2, 0x09c1, 0x26d3, 0x26e3, + 0x26f4, 0x26f9, 0x2710, 0x272f, 0x2758, 0x2763, 0x2768, 0x08d8, + 0x277f, 0x08e5, 0x08ff, 0x2817, 0x0905, + /* 0x8a */ + 0xd784, 0x2765, 0x70fd, 0x7b02, 0x7bd5, 0xb42b, 0x27d0, 0x96c6, + 0x0d2c, 0x7401, 0x5f86, 0xb138, 0xe665, 0x1353, 0xd97e, 0x497a, + 0x9638, 0x0d74, 0x1ad5, 0xda1d, 0xc7b2, 0xb16a, 0x371d, 0x7c3c, + 0x7e74, 0x7b95, 0x7fb4, 0x36cd, 0x5fbe, 0x7d56, 0x7acb, 0x7e24, + 0x96a9, 0xdad6, 0xaa13, 0x70fd, 0x7c06, 0xe9cd, 0xd9a9, 0x1af4, + 0xb227, 0x96c2, 0x6bb2, 0x0da7, 0xe6f4, 0x12ed, 0x0846, 0xb587, + 0xe754, 0xd3c8, 0x9744, 0x6dee, 0x6915, 0x70fd, 0x16d9, 0xbfe5, + 0x36f4, 0x2723, 0x974c, 0x95ca, 0x7f37, 0x0d3b, 0x7f2f, 0xc49a, + 0xc4d6, 0xd4a0, 0x372a, 0xb392, 0x7b03, 0x5fa8, 0x8de1, 0xe14c, + 0x7731, 0x70fd, 0x1b0b, 0x7269, 0x12fa, 0x2ab3, 0x978d, 0x70fd, + 0xaac8, 0x75bc, 0xbfd7, 0x7e0c, 0x7c56, 0x27b9, 0x13bb, 0x16ba, + 0x70fd, 0x1d74, 0x94e6, 0x7f5d, 0x53aa, 0x69f5, 0x7c5c, 0x35b9, + 0x0d3e, 0x9275, 0x5f00, 0x28e1, 0x36bc, 0x1143, 0x70fd, 0xf101, + 0x7cc9, 0x950f, 0x96c9, 0x70fd, 0x7f88, 0xa142, 0x0cd2, 0x0d46, + 0xdb1b, 0x08b8, 0xbdc9, 0x8d07, 0x2892, 0x7df1, 0x96b2, 0xe720, + 0x07fc, 0x3e7d, 0xb1bb, 0x70fd, 0x70fd, 0xd0f4, 0x988b, 0x8e48, + 0xf15b, 0xe24d, 0x7d3a, 0x7af4, 0xc5dc, 0x5193, 0x7f8f, 0x9303, + 0x9439, 0x093b, 0xb4a3, 0x7d4c, 0x7e4d, 0x7d6a, 0x1293, 0x7df0, + 0x7c07, 0x800f, 0x7d0c, 0x70fd, 0x7d6b, 0x7a69, 0x7c08, 0x7f80, + 0x7ffd, 0x12f9, 0x9196, 0x3672, 0x7e6d, + /* 0x8b */ + 0x9d34, 0xd1b9, 0x95ce, 0x7c3e, 0x7c3f, 0x9651, 0x9655, 0x0d58, + 0x7d58, 0x7f87, 0x7dee, 0xf132, 0xc890, 0xe252, 0xe2d9, 0xe24a, + 0x66aa, 0x270c, 0x54c4, 0x27f9, 0x70fd, 0xec83, 0x6d26, 0x6bb6, + 0xd29e, 0x97ee, 0x4340, 0x536d, 0x52ec, 0x2e5c, 0xc3b2, 0x5334, + 0x0ad7, 0x259f, 0xd97d, 0x62b6, 0x7dba, 0x7ccf, 0x7d37, 0x7dbb, + 0x091d, 0xb16b, 0x0949, 0x7b96, 0x28ef, 0x92b5, 0x7f89, 0x7cd0, + 0x7d38, 0x7f38, 0x8008, 0xda87, 0x8315, 0x7d39, 0xb1d0, 0x97a4, + 0x2c94, 0x7edd, 0x7ede, 0x7fb5, 0x7fb6, 0x29dc, 0x7cd1, 0xd214, + 0xdb4d, 0x7e75, 0x7d3b, 0xb47e, 0x0a43, 0x7e76, 0x8040, 0xb598, + 0xefbd, 0xae5a, 0x867a, 0xa6b7, 0xdafc, 0x2ad9, 0x24a8, 0x095a, + 0xb8bd, 0x4db2, 0x2da8, 0x1b00, 0x1dec, 0x6fa7, 0x1ce7, 0x6d1f, + 0x6c8d, 0xbb74, 0x9abd, 0x283b, 0x0932, 0x28c9, 0x2068, 0x2b42, + 0x8901, 0xf238, 0x6851, 0x7186, 0x209b, 0x20fb, 0x087e, 0x2e63, + 0x3191, 0x3204, 0x0c3a, 0x348c, 0x3775, 0x3dba, 0x3e75, 0x3e7a, + 0x426c, 0x442b, 0x206c, 0x44ad, 0xad69, 0x5152, 0x4b3b, 0x4ef9, + 0x5153, 0xc12a, 0x0801, 0x70fd, 0xc1cb, 0x5202, 0x5280, 0xc412, + 0xc711, 0x259d, 0x59e4, 0x5b41, 0xd3b2, 0x5d20, 0x5e5d, 0x6585, + 0x6678, 0x667f, 0x66e8, 0xe30f, 0x68e6, 0x6975, 0x69ce, 0x69de, + 0x6a63, 0xe790, 0x6d7c, 0x6e9f, 0x6f44, 0x3daf, 0x7047, 0x2077, + 0x7187, 0x671d, 0x3477, 0x65a2, +}; +static const unsigned short hkscs1999_2uni_page8d[3140] = { + /* 0x8d */ + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x2f7e, 0x2f88, 0x2f96, 0x10fc, 0x0b4f, 0x2fe4, 0x2ff9, 0x0b60, + 0x0b78, 0x3082, 0x30fd, 0x3165, 0x31c3, 0x0c48, 0x0c54, 0x0c7f, + 0x0c8d, 0x3317, 0x337d, 0x2f25, 0x0cc9, 0x33f7, 0x33f9, 0x340f, + 0x0cf8, 0x346c, 0x34d0, 0x3525, 0x3558, 0x0d38, 0x28f1, 0x0d43, + 0x3622, 0x363b, 0x3647, 0x369a, 0x0d8b, 0x3700, 0x2f55, 0x2861, + 0x701f, 0x0dd7, 0x37c6, 0x0dfd, 0x383f, 0x3893, 0x0e32, 0x38d2, + 0x0e62, 0x3956, 0x0e82, 0x39e4, 0x3a40, 0x0e98, 0x3a8a, 0x3ac4, + 0x0eb2, 0x0eb1, 0x0ebb, 0x3b49, 0x3b83, 0x445c, 0x3ba4, 0x3bdf, + 0x3bc5, 0x0efc, 0x3c16, 0x0f1d, 0x3ca5, 0x3cb4, 0x3cb1, 0x3cc2, + 0x0f2c, 0x3cd9, 0x0f32, 0x3ceb, 0x3cf5, 0x3d14, 0x3d36, 0x3dc1, + 0x3e01, 0x3e2a, 0x3eb5, 0x3eea, 0x0fcb, 0x3f42, 0x3f46, 0x3f66, + 0x3fc1, 0x0fef, 0x3fe4, 0x3ff1, 0x4015, 0x4018, 0x4029, 0x4086, + 0xdfc0, 0x40bb, 0x40e2, 0x40da, 0x6fff, 0x40e8, 0x40e9, 0x4124, + 0x4134, 0x1046, 0xa481, 0x4181, 0x41be, 0x106a, 0x1075, 0x43b7, + 0x2ed9, 0x108a, 0x422c, 0x1091, 0x4250, 0x4254, 0x426f, 0x427f, + 0x4289, 0x73e5, 0x16c1, 0x0931, 0x7d98, + /* 0x8e */ + 0xa417, 0x29fe, 0xcc13, 0x433e, 0xb920, 0x098e, 0x3be2, 0xe1e9, + 0x2db4, 0x4c49, 0xb9a1, 0xe659, 0x4c65, 0x4c7d, 0xba6c, 0x4cbb, + 0x4cb0, 0x4cc2, 0x4cc3, 0x43d1, 0xc30d, 0x14ca, 0x4cda, 0x4cdd, + 0x4cea, 0x14ef, 0x26f2, 0xbc01, 0x4d0b, 0x4d55, 0x4d29, 0xb5ce, + 0xbcfe, 0x4da2, 0x4d6f, 0x559c, 0xbbb4, 0xc9bf, 0x4dd0, 0x5621, + 0x4d92, 0x70fd, 0xbd20, 0x10ad, 0xbc65, 0x5692, 0x4dfa, 0x70fd, + 0x4e35, 0xbcc1, 0x4e44, 0x4e83, 0xad02, 0x4ea6, 0x38bd, 0xaab8, + 0x4ec9, 0x4ec7, 0x4ee6, 0x4e74, 0x4ef3, 0x4ef5, 0x70fd, 0x5067, + 0x181d, 0xcb84, 0x4f5d, 0xcc16, 0x468d, 0x4f89, 0x4fab, 0x4335, + 0x4fb3, 0x70fd, 0xa597, 0xbf69, 0x4fe4, 0x1013, 0x4ff5, 0x8639, + 0x4fe5, 0xdbed, 0x70fd, 0xc021, 0xc05a, 0x506e, 0x5092, 0x162b, + 0x656c, 0x5027, 0x5140, 0x5141, 0x5147, 0x4b36, 0xc150, 0x6ae1, + 0x5197, 0xc1d1, 0x51a3, 0x84a1, 0x7168, 0x185c, 0xa066, 0x1803, + 0xdbba, 0x51fa, 0xc309, 0x70fd, 0x5208, 0x521d, 0x70fd, 0x522f, + 0xedc7, 0xca03, 0x523b, 0x523c, 0x5261, 0x9214, 0x1c89, 0xc426, + 0xa363, 0xc4a8, 0x3965, 0x52a7, 0xe048, 0x5307, 0x531a, 0x2af0, + 0x91f6, 0x3ebf, 0xc318, 0xb2f8, 0x3727, 0x834a, 0x5418, 0x869e, + 0x3c93, 0xaee5, 0xaf15, 0x177a, 0x5429, 0x7a0d, 0xc812, 0xa2fe, + 0x2239, 0x83bd, 0x56e2, 0x5562, 0xc84a, 0xae27, 0x9e30, 0x85b3, + 0xa378, 0x54aa, 0x3b5b, 0xf2d4, 0x14db, + /* 0x8f */ + 0x574b, 0x54d0, 0x551a, 0x7cd6, 0x85f4, 0x0a01, 0x9afd, 0x9e5a, + 0x547b, 0x54e2, 0x5518, 0xa3cb, 0xcae3, 0xc845, 0xc8d7, 0x9ece, + 0x10bf, 0x551d, 0x282c, 0x5585, 0x180b, 0xcae5, 0x55ac, 0x70fd, + 0x55d3, 0x07be, 0xcc14, 0x3c97, 0x575a, 0x07d6, 0xcb82, 0x98ef, + 0x5658, 0xbbe4, 0x5671, 0x10d3, 0x17e4, 0x3ce7, 0x564a, 0xa275, + 0x4b58, 0x70fd, 0xc8d6, 0xcbb7, 0xcb83, 0x56de, 0x70fd, 0x5591, + 0x17a0, 0x5693, 0x56e4, 0xbc91, 0x1540, 0xbcc0, 0x1843, 0x5734, + 0x2d32, 0xcbd9, 0x1827, 0x5773, 0x1816, 0x39ff, 0x57d6, 0xdde5, + 0xddfb, 0x5781, 0xcdc8, 0x57c2, 0x8402, 0xce0d, 0xf2f2, 0x186a, + 0x57e8, 0x0988, 0x86e2, 0x2637, 0xcfda, 0x583e, 0x58f1, 0xee38, + 0x596e, 0x9627, 0x5931, 0x595a, 0x598f, 0x28a1, 0x582c, 0x3a96, + 0x190f, 0x59c5, 0x59c6, 0xd160, 0xa339, 0xd164, 0x59de, 0x5a1c, + 0x195b, 0x5a34, 0x5a35, 0x3601, 0x5a45, 0x4977, 0xd24f, 0x5b07, + 0x5b0a, 0x70fd, 0x70fd, 0x5b27, 0x5b3c, 0xe025, 0x5b67, 0xd424, + 0xd5bd, 0x5c1c, 0x4993, 0x62fe, 0x5c10, 0xd559, 0x4ce9, 0xd63a, + 0xa4cf, 0x1a13, 0xd638, 0x437c, 0x5c8c, 0x5c9f, 0xb630, 0xb6e5, + 0x5cbf, 0x5ccc, 0x5ccd, 0x5c29, 0xaefa, 0x5d10, 0x5d1b, 0x5c2f, + 0x851f, 0x1915, 0x59cf, 0x5ddb, 0xd754, 0xd78f, 0xf314, 0x0a65, + 0xd753, 0x5e16, 0xd798, 0xd7bd, 0x5e52, 0x5e43, 0x8750, 0x5e1b, + 0x425c, 0x5e51, 0xb089, 0x11d0, 0x70fd, + /* 0x90 */ + 0x5ee9, 0xd8c2, 0x7ed4, 0xae0a, 0x0ebc, 0xda7c, 0xce4c, 0x4ce7, + 0x5fed, 0x5ff6, 0x6003, 0x63d4, 0x6059, 0x606d, 0xdbe5, 0xdc52, + 0x60e5, 0x6403, 0xef9f, 0x7950, 0x60f3, 0x1c2a, 0xdfde, 0xdd3d, + 0xa33b, 0x3138, 0x9be2, 0x6139, 0xed94, 0xde3c, 0xdd01, 0x8ee5, + 0x0cc0, 0xcc17, 0x6177, 0xdd3c, 0xd5be, 0x61a1, 0xdd6c, 0xddcb, + 0x61e8, 0xde93, 0x6204, 0xde66, 0x61ee, 0x70fd, 0x6267, 0x0e30, + 0x62a9, 0x62c4, 0x4eac, 0xdf33, 0x8b09, 0x630e, 0x3edf, 0x6341, + 0x6362, 0xb739, 0x70fd, 0xe0c6, 0xa25b, 0xe10c, 0xb75b, 0x7bf1, + 0x642c, 0x646b, 0xe0e1, 0xe1eb, 0x428f, 0x2d03, 0xe0e2, 0xe0e5, + 0x1c65, 0x6344, 0xe1ec, 0xe239, 0xe1ff, 0x6473, 0x655b, 0x5ffc, + 0x6685, 0x66a6, 0x6526, 0x66a0, 0x41f6, 0x15b9, 0x917a, 0xde58, + 0x813c, 0xa3ae, 0x1cdf, 0x3e5c, 0x677b, 0x6796, 0x146c, 0x67a3, + 0xcc15, 0x341a, 0x67b6, 0x4af5, 0xe0e0, 0x67bd, 0x260c, 0x1ca1, + 0xc9f8, 0x7334, 0xc290, 0xe46f, 0xe4a5, 0xaf51, 0x8755, 0x9c8a, + 0x6831, 0x5802, 0x6836, 0x1d0f, 0x183d, 0x1885, 0xaf69, 0x4275, + 0x2d81, 0x681b, 0x70fd, 0xe595, 0x6857, 0x2d8a, 0xe5ab, 0x685f, + 0x6525, 0x2310, 0x9a37, 0x9a3c, 0x6889, 0x689f, 0x68b1, 0x68be, + 0x68c0, 0x68d2, 0x68e0, 0xb66c, 0x68ee, 0x461c, 0xe5f3, 0x70fd, + 0x68f5, 0xe5dd, 0xd47a, 0x1d91, 0x6934, 0x6933, 0x694b, 0x6966, + 0x0e4e, 0xceb5, 0x1051, 0x76b0, 0xa69c, + /* 0x91 */ + 0xb886, 0x69ca, 0x69b7, 0x69c8, 0x69c7, 0x1dbf, 0xca67, 0x8513, + 0x27f0, 0x69e1, 0x69e6, 0x69ec, 0x6478, 0x6a39, 0xaea9, 0x1e32, + 0xe7d7, 0xe885, 0x6af5, 0x6b0c, 0x6b3b, 0x6b10, 0x6b58, 0xb8a5, + 0x0a04, 0xe471, 0xea55, 0x6be0, 0x6be2, 0xea05, 0x6bf4, 0x1ece, + 0x6c14, 0x6c2d, 0xddc0, 0x2274, 0x6c34, 0xc768, 0x0c03, 0x99fd, + 0x6c50, 0x6c40, 0xeafe, 0x2c85, 0x86a3, 0x6c8e, 0xa78b, 0x6d02, + 0x6cff, 0x6d0c, 0xec28, 0x6e54, 0xed37, 0xeed2, 0xeeeb, 0xee21, + 0xee63, 0xef1f, 0x6dfe, 0x6e03, 0xee74, 0x6e8e, 0x3ac8, 0x6e44, + 0x8d9b, 0xeed3, 0xef60, 0x877b, 0xef73, 0x6db9, 0xedf9, 0xefb4, + 0x6f10, 0x6f15, 0x6f1e, 0x6f22, 0x1ff4, 0x6f2a, 0x6f2f, 0xa8a4, + 0x6f41, 0x0ea0, 0x0d25, 0x101d, 0x2172, 0x0afe, 0xe22b, 0x6f82, + 0x6f88, 0x1e56, 0x6524, 0xcae2, 0x6f97, 0x70fd, 0x6fb9, 0x28df, + 0x28ca, 0x6fc5, 0x6ab8, 0xe44b, 0x68f2, 0x567f, 0x6fe2, 0x6fe9, + 0x4cdc, 0x700e, 0x4416, 0x1e7e, 0xadf5, 0xae3b, 0x4377, 0xae78, + 0xa888, 0xaed1, 0x459e, 0xe1da, 0x873a, 0x4b9f, 0xdf7e, 0xe336, + 0x6469, 0x64f3, 0xe044, 0x63ec, 0x6481, 0x64cb, 0xdf6c, 0xa9f9, + 0x4417, 0x11eb, 0x4972, 0x4c43, 0x42d0, 0xa9b3, 0xa938, 0x437e, + 0x862f, 0x42a3, 0x86fe, 0x9e99, 0x11c7, 0x86c5, 0xb62f, 0x8638, + 0x0a62, 0x853b, 0x8679, 0x0a21, 0x85b4, 0x8711, 0xbecb, 0x0a63, + 0x8500, 0x299b, 0xaea5, 0x82be, 0x8168, + /* 0x92 */ + 0x8286, 0x8376, 0x5703, 0x9fa6, 0x70fd, 0x5655, 0xae14, 0xcea5, + 0xa3b1, 0xb6dc, 0xa43b, 0xcd92, 0x17f4, 0x9fee, 0xe91d, 0xcc66, + 0x3a39, 0x0a73, 0x0f55, 0x10e7, 0x2aac, 0x8762, 0x3a50, 0x1357, + 0xa03f, 0xa621, 0xa5cb, 0xa64f, 0xc961, 0x270b, 0x28de, 0xc471, + 0x28d2, 0x7e9f, 0x7a68, 0x7ccd, 0x64c6, 0xe113, 0x649c, 0x2138, + 0x236b, 0x0b59, 0xa976, 0x20fc, 0x7525, 0x743f, 0x218b, 0x21ca, + 0xb7d1, 0x2ca8, 0x726b, 0x748b, 0x0cd9, 0x73ca, 0x74d4, 0x0775, + 0x2169, 0x7380, 0xe3b3, 0x7335, 0x5c5a, 0x72cc, 0x20d8, 0x230d, + 0x234d, 0x21e2, 0x2143, 0xae8e, 0xa3ca, 0x2182, 0x226e, 0x22ac, + 0x22c1, 0x220c, 0x2225, 0x2298, 0x233c, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x4076, 0x9e95, 0xa3b9, 0xa3ff, 0x3fb2, 0x86c4, 0xa3c9, + 0x23e8, 0x2403, 0x7660, 0x17dd, 0x7563, 0x7552, 0x7551, 0x5eba, + 0xe09c, 0x770e, 0x2499, 0x24e4, 0x77f3, 0x2521, 0x70fd, 0x197a, + 0x438c, 0xa8cc, 0x7ae0, 0xae2c, 0x7fa4, 0x3c11, 0x7cdd, 0x70fd, + 0x11de, 0x4699, 0x4614, 0x4656, 0x4598, 0x1e4e, 0xaf3c, 0xa5cd, + 0x2610, 0x08c4, 0x440f, 0xa609, 0x27f4, 0x7405, 0x270d, 0x7a86, + 0x295d, 0x635d, 0x67f4, 0x6466, 0x2a1d, 0x29cd, 0x29bf, 0x097e, + 0x2b0b, 0x2cd9, 0xe046, 0x853a, 0x85af, 0x8550, 0x2c6c, 0x2bf8, + 0x638f, 0x2cbe, 0x2d0f, 0x2c52, 0xba06, 0x8833, 0x86a1, 0xa7d5, + 0x0a35, 0x3f45, 0x4643, 0x2c61, 0xbe03, + /* 0x93 */ + 0x2cc1, 0xe1d7, 0x74d3, 0x64e0, 0x468c, 0x81c3, 0x4305, 0x1c72, + 0x6508, 0xdffb, 0x64bd, 0x0ae0, 0x2e5e, 0x2ede, 0x309e, 0x3088, + 0x87d6, 0x87bc, 0xa1ee, 0x310d, 0x2d8f, 0x8743, 0x8744, 0x0a41, + 0x86e0, 0x0a1d, 0x853e, 0x0a13, 0x532a, 0xe047, 0x8a7a, 0x9db2, + 0xdfa8, 0x314c, 0x314e, 0x8767, 0x85eb, 0x2cab, 0x857b, 0x2d84, + 0x57d4, 0xd17d, 0x59e0, 0x32be, 0x9360, 0x912b, 0x321b, 0x11b8, + 0x90ef, 0x90fe, 0xe448, 0xccb3, 0x3400, 0x713e, 0x7146, 0x911b, + 0x33d9, 0x33d8, 0x32b5, 0x969b, 0x9707, 0xabd4, 0xe50d, 0x36b1, + 0xab65, 0x95aa, 0x0d69, 0x9562, 0x9d90, 0xe86a, 0x9878, 0x3577, + 0xf09b, 0x36f6, 0x3571, 0x3611, 0xae63, 0x9767, 0x34e4, 0x96a1, + 0x367b, 0x37ab, 0x3bb2, 0x0f34, 0x9a0e, 0x9c2d, 0xae09, 0x9c2b, + 0x274d, 0x9c60, 0x8719, 0xe5ff, 0x390e, 0x9c09, 0x9b33, 0x0e20, + 0x1490, 0xb704, 0xe122, 0xb70f, 0x853c, 0xb6db, 0xb625, 0x4aee, + 0x9a83, 0x866a, 0x9bb4, 0x07a4, 0x9b8f, 0x9b02, 0xa809, 0x38ce, + 0xca64, 0x38ab, 0x1e53, 0x3870, 0xd370, 0x8aab, 0x38a3, 0x9c52, + 0x9c61, 0x385e, 0xb972, 0x0c11, 0xa13a, 0xa0bc, 0x0ed9, 0xa0a2, + 0x9d3e, 0x46d0, 0x0ed6, 0x39cf, 0xab2a, 0x3af6, 0x3a5e, 0x0f04, + 0x3cfe, 0x0ba3, 0xa0d5, 0xa9c7, 0x3c73, 0x3c92, 0x3d09, 0x3d45, + 0x8752, 0x3751, 0x3ad8, 0x3c8c, 0x0f17, 0x3cba, 0x3d97, 0xa500, + 0xa25a, 0x64a0, 0x63f2, 0xe1ea, 0xe0cb, + /* 0x94 */ + 0x6389, 0xd8de, 0xdfdc, 0x6567, 0x3fe5, 0x410b, 0xae6c, 0x70fd, + 0xa4bf, 0x108f, 0x4004, 0xa57c, 0x2c7d, 0x400a, 0x2a87, 0x3f64, + 0x4a42, 0x433b, 0xa85a, 0xa7b6, 0x42f1, 0x4450, 0x4487, 0x4494, + 0xac4f, 0xac25, 0x23b9, 0xaf24, 0x766b, 0x467a, 0xa438, 0x9f5f, + 0xaeca, 0xad97, 0xbf21, 0x1206, 0x11b1, 0xaf5f, 0xe223, 0xa475, + 0x32e7, 0x11f3, 0x46cc, 0x463c, 0x6487, 0x4637, 0x179f, 0xcb2a, + 0x1851, 0x4783, 0x1263, 0xb099, 0xb0c6, 0x1258, 0x4755, 0x4873, + 0xf0c6, 0x0e59, 0x4668, 0xe0cc, 0xae2b, 0xae0e, 0x0e3b, 0x10cd, + 0xaece, 0x11ff, 0xae45, 0xad73, 0x62fa, 0x2972, 0x6442, 0xe0e3, + 0x86a4, 0x231f, 0xb4e1, 0xb4a7, 0x4978, 0x9bb2, 0x490e, 0x490f, + 0x497b, 0xab97, 0xa081, 0x0d9e, 0xad70, 0x4638, 0x469b, 0x11bf, + 0xaf3a, 0xaf47, 0x13c8, 0xaf16, 0xc0ae, 0x6407, 0xb701, 0x4a1e, + 0x4a8d, 0x4a88, 0x4ad2, 0x45d0, 0x4b59, 0xd281, 0xb863, 0x140e, + 0x70fd, 0x5696, 0x4ba5, 0x3c6d, 0xa43a, 0x4c3a, 0x4bf4, 0x146e, + 0x8526, 0x1432, 0x6335, 0x4bf1, 0x7c0c, 0xae0c, 0x7359, 0xa33a, + 0x85ae, 0x08d7, 0x27ab, 0x08b0, 0x09ea, 0x7294, 0x7acd, 0x4ce2, + 0x2c99, 0x91f5, 0xbaef, 0xbadc, 0x2c4d, 0x731b, 0x4af0, 0x2c6a, + 0xbbc6, 0x4cfe, 0x14f9, 0x4e5d, 0x4e6d, 0x1511, 0xbbb3, 0xbe3c, + 0xbe26, 0x4ecd, 0xae79, 0x85f0, 0x4e8e, 0x4e7c, 0x4eae, 0x3cf2, + 0x4fdc, 0x5007, 0x4fd3, 0x514e, 0xc121, + /* 0x95 */ + 0xc05c, 0xd648, 0x4f97, 0xbe02, 0x156a, 0xc8b5, 0x7856, 0x3a16, + 0x714e, 0x9ecf, 0x2a04, 0xc292, 0xc278, 0xade2, 0x51dd, 0x4d27, + 0x77ac, 0xbb29, 0xbd43, 0x4d0c, 0xbd8e, 0x6ae6, 0x5805, 0x6b63, + 0x3c5c, 0x9d7f, 0x0d22, 0xae77, 0xc3ed, 0x6b1f, 0xc3e0, 0x5680, + 0xce67, 0xca11, 0x17ea, 0x5337, 0x1702, 0x52c6, 0x5309, 0x5342, + 0xc574, 0x69c3, 0xc802, 0x5462, 0x5465, 0xc811, 0x5653, 0xcae7, + 0x57d0, 0xcf1b, 0x2cc6, 0x147f, 0x8680, 0x2d6b, 0x86e1, 0x2d24, + 0x8718, 0x5860, 0xf2fc, 0xa30f, 0x59ad, 0xd022, 0x2c42, 0x59ee, + 0x2185, 0x5a07, 0x5a3f, 0x5a66, 0x5ae5, 0x5acd, 0xb803, 0x5ad4, + 0xd2c5, 0xd2c4, 0xe1f5, 0xe1d9, 0xe19c, 0xdff9, 0x11ad, 0x56a3, + 0x19f5, 0x19cf, 0x0b32, 0x5bbd, 0x5b9c, 0xe608, 0x318d, 0x632b, + 0xa7c4, 0x3814, 0x4329, 0x42c4, 0x8685, 0x6ded, 0x5ddf, 0x5e29, + 0xd7dc, 0x2bda, 0x49c3, 0x2c30, 0x166e, 0x0a14, 0x5f6a, 0x5fe7, + 0xb009, 0x6070, 0x608a, 0x15f4, 0x3e98, 0x41bb, 0x8ee1, 0x1b9b, + 0x4179, 0x408b, 0x861a, 0x6ce9, 0x09f5, 0xadaf, 0x61fb, 0x70fd, + 0x27b1, 0x1c06, 0x62bb, 0x6504, 0xe04b, 0x1362, 0xe0fc, 0x6527, + 0xe21d, 0xe23b, 0x56e5, 0x5bab, 0x6699, 0x66a7, 0x6697, 0x6696, + 0xe2b4, 0x4645, 0x11c2, 0xad7f, 0xaec2, 0xa92a, 0x11e7, 0x9ba5, + 0x678f, 0xe3e7, 0xe366, 0xe365, 0x11cc, 0xae6d, 0xaef8, 0xa52e, + 0x4612, 0x466b, 0x11fc, 0x6841, 0xe470, + /* 0x96 */ + 0x3a87, 0x1d1d, 0xe453, 0xb91f, 0x70fd, 0x6468, 0xdf89, 0xe226, + 0xe12f, 0xc23e, 0x63ba, 0x2d51, 0x5ce9, 0x1c3c, 0x45f9, 0xa75b, + 0x689b, 0x6871, 0x6a38, 0x7de6, 0x3001, 0xe1c5, 0xaf32, 0x691f, + 0xe65a, 0x63f6, 0xe6d7, 0x62e5, 0x17c0, 0xe150, 0xaee7, 0xe164, + 0x69dc, 0xe045, 0x1200, 0x632a, 0x1c25, 0x5614, 0x6a3b, 0x6a4d, + 0xd606, 0x10fd, 0x6a9b, 0x1e2f, 0x6aaa, 0x6b5c, 0xe165, 0xb988, + 0x3ccf, 0x6b21, 0x2d3e, 0x6b2f, 0xe871, 0x1e50, 0xe8c8, 0x6abc, + 0x1e7d, 0x1e57, 0x647d, 0x2ab2, 0x81c2, 0x2a62, 0xae38, 0x83a8, + 0x4a44, 0x921f, 0xa338, 0x3b05, 0x107d, 0x6558, 0x0c67, 0x3390, + 0x9281, 0x946b, 0x3347, 0x6d4f, 0x6d53, 0x6d7b, 0x6d35, 0x6d10, + 0x6c7f, 0x6ccf, 0xebed, 0x6c9f, 0xef35, 0xee3e, 0x6da1, 0x1f6e, + 0xa644, 0x6e98, 0x1f70, 0x6d8c, 0xeef4, 0xee2d, 0xee33, 0xe8af, + 0x6e25, 0x56bd, 0xcb52, 0xcd1f, 0xc8c2, 0x57bc, 0x1833, 0xcae4, + 0xcbc4, 0xcb30, 0x5620, 0x57ae, 0xcb40, 0xa0d7, 0xbfa4, 0x4be2, + 0x9e9c, 0x9f40, 0x1c2d, 0xae5e, 0x1062, 0x64db, 0x63be, 0x6448, + 0x737f, 0x4ab9, 0x6377, 0x654d, 0x2224, 0x0780, 0x61a4, 0xb6dd, + 0x4a3d, 0x4a54, 0x4ab6, 0x4a4b, 0x8597, 0x9b49, 0xadc1, 0x09da, + 0x21b2, 0x41da, 0x41d9, 0x70fd, 0x421e, 0x2654, 0xa6f5, 0x29fb, + 0x2b33, 0x29ca, 0x6d96, 0x2a17, 0x4334, 0x07ef, 0xa6ec, 0x43eb, + 0xc980, 0xb2d7, 0x70fd, 0x85f5, 0xe049, + /* 0x97 */ + 0x334c, 0x2d0e, 0x2c4b, 0x15bc, 0xa9c8, 0x0a6c, 0x1e3b, 0xdffc, + 0x64bb, 0x64b8, 0x8716, 0x7ddd, 0x5672, 0xca00, 0x82d3, 0xa83a, + 0x9626, 0xa901, 0x2bd4, 0xa337, 0xc501, 0x4fa8, 0xc05b, 0xbfe4, + 0xae39, 0xae0b, 0xdffa, 0x63e5, 0x45e2, 0x11e9, 0x46b4, 0xe163, + 0x86df, 0x11e1, 0xaf33, 0x3d18, 0x45f3, 0x45fb, 0x11d6, 0xaebe, + 0xaf14, 0x8619, 0xaee6, 0x7467, 0x82e4, 0xae65, 0x4648, 0xad96, + 0x42a5, 0xadf6, 0x6384, 0x45e6, 0x645f, 0x75be, 0x6431, 0xe0ce, + 0xe016, 0x6486, 0xe1e7, 0xb755, 0x1c35, 0xe082, 0x436b, 0xadc3, + 0x7bbf, 0x28e4, 0x769a, 0x7aab, 0x7b78, 0x2742, 0x4bc4, 0x863a, + 0x4ffe, 0x8502, 0xaed0, 0x8692, 0x182e, 0x6501, 0x0a4a, 0xe0c0, + 0xae2d, 0x2bf0, 0x86ff, 0x86c3, 0xd084, 0x2ce1, 0x0a22, 0xa2db, + 0x09f0, 0x635f, 0x2cb9, 0xe081, 0x86a2, 0x6474, 0x0fcd, 0x79b4, + 0x1d56, 0x0cca, 0x2334, 0x1069, 0x104c, 0x825c, 0x4375, 0x15fb, + 0xda98, 0x400f, 0xe4a4, 0x17eb, 0x3f97, 0xd80f, 0x4267, 0x3eef, + 0x0fd6, 0xa52d, 0xa3ad, 0x4002, 0x410c, 0x106f, 0x74b5, 0x4751, + 0x09fc, 0x0808, 0x1980, 0x11da, 0x1b71, 0x2c04, 0x636e, 0x1c3e, + 0x6081, 0xe21c, 0xc900, 0x2a52, 0x2a08, 0x0a16, 0x8312, 0x42fe, + 0xa8a2, 0xaef1, 0x9963, 0x8170, 0x8f3d, 0x3af9, 0x3ba7, 0x8258, + 0x9de5, 0xd6b4, 0x9fdf, 0xe083, 0xa0d6, 0x9d3a, 0xb05f, 0x3c5a, + 0x9fad, 0xc9f7, 0x563e, 0x17df, 0x17ce, + /* 0x98 */ + 0xca66, 0xca91, 0xc9c2, 0xcd1e, 0x4117, 0xce49, 0x553d, 0x857a, + 0x55ed, 0xc9c0, 0xcd93, 0x861b, 0x2bc9, 0x2cc2, 0x85f3, 0x2ca1, + 0x2cb1, 0x8745, 0xa73c, 0x0a6d, 0x2c2f, 0x857c, 0x0a07, 0x438e, + 0x6490, 0x38da, 0xa7e5, 0x2cae, 0x2c6b, 0xa7d3, 0x3c6b, 0xa439, + 0xd276, 0xa99b, 0xa80a, 0x431d, 0xa799, 0xdfe1, 0x21f0, 0xca68, + 0x2f02, 0xaa0e, 0xd80d, 0xa8fd, 0x3c4c, 0xa796, 0x81c4, 0x42a6, + 0x4333, 0xa929, 0x10a5, 0x3f1f, 0xf1e5, 0xaecf, 0x5065, 0x2c2b, + 0x2f6f, 0x10f3, 0x319c, 0xaedd, 0x861f, 0x4fa4, 0x5626, 0x26c5, + 0xa1fa, 0x9c80, 0x72d4, 0x29be, 0x7815, 0x7699, 0x12e5, 0x8c1e, + 0xefb6, 0x4203, 0xe51b, 0x2fb0, 0x458f, 0x4ed3, 0xe059, 0xe5e0, + 0x2208, 0x51e7, 0x44cd, 0x4510, 0xd5f4, 0x4538, 0x4539, 0xb876, + 0x4541, 0x4548, 0x11a9, 0xd618, 0x61ac, 0x43f5, 0xad72, 0x45e1, + 0x53f6, 0x11ca, 0x490c, 0x11d1, 0x3ee2, 0x293d, 0x4619, 0x461e, + 0x461f, 0x11e2, 0x11f0, 0x11f4, 0x11fa, 0x46d3, 0x120e, 0x1253, + 0x4742, 0x476d, 0x4772, 0x478d, 0x127c, 0x47c8, 0x47dc, 0x12c0, + 0x484d, 0x12d7, 0x4874, 0x12dc, 0x487a, 0xb29c, 0x4388, 0x2863, + 0x5b00, 0x2aa9, 0x131d, 0x4943, 0x1339, 0x39a1, 0x1345, 0x091b, + 0x4998, 0x136a, 0x136f, 0x2e9e, 0x49be, 0x49cb, 0x2b32, 0x4a18, + 0x42b9, 0x4a1c, 0x13a8, 0x4a39, 0x4a47, 0x4a51, 0x4a66, 0x5648, + 0xb6b5, 0x4b33, 0x3a43, 0x4b32, 0x1403, + /* 0x99 */ + 0x1409, 0x4b91, 0x4b99, 0x60fb, 0x4c06, 0x60fc, 0x1467, 0x4c91, + 0x14b2, 0x4cbc, 0x5479, 0x14c4, 0x4ccf, 0x4cdb, 0x14cf, 0x2061, + 0x4d62, 0x4d6c, 0x4d7b, 0x4e12, 0x4e1b, 0x1560, 0x157a, 0x4e7b, + 0x4e9c, 0x158c, 0x4eb8, 0x1594, 0x4eed, 0x60d3, 0x42c0, 0x7b8f, + 0x4fcf, 0x4fd4, 0x4fd0, 0x4ffd, 0x51ae, 0x51b4, 0x449f, 0x1697, + 0x5220, 0x5225, 0x4d39, 0x522e, 0x5231, 0x5254, 0x10cc, 0x29f4, + 0x42a0, 0x52b7, 0x52e9, 0x16ed, 0x530c, 0x452a, 0x530e, 0x5312, + 0x4760, 0x5314, 0x1701, 0x0e79, 0x5356, 0x5359, 0x535a, 0x1713, + 0x2a7a, 0x537c, 0x5384, 0x1725, 0x5393, 0x172d, 0x53a5, 0x2a2f, + 0x53c1, 0x53e4, 0x5454, 0x178f, 0x54a6, 0x5476, 0x54ca, 0x54d8, + 0x54ff, 0x17b0, 0x5557, 0x6769, 0x3bca, 0x5605, 0x42f5, 0x5664, + 0x3323, 0x5688, 0x1804, 0x56be, 0x56e1, 0x56f8, 0x5710, 0x5738, + 0x5752, 0x183b, 0x576f, 0x5770, 0x57a0, 0x1877, 0x5832, 0x5852, + 0x5872, 0x58af, 0x6745, 0x590b, 0x1906, 0x1917, 0x5a2e, 0x5a7f, + 0x5aa4, 0x5ac7, 0x5b11, 0xd467, 0x5ba9, 0x5bb8, 0x5c14, 0x5c34, + 0x5d91, 0x5e14, 0x5e32, 0x5e5c, 0x1a98, 0x2a9f, 0x5f03, 0x1aed, + 0x212e, 0x5f7a, 0x2818, 0x2994, 0x5fb1, 0x2835, 0x5ff0, 0x1b37, + 0x600e, 0x6022, 0x6024, 0x602d, 0x6032, 0x60f7, 0x6101, 0x610a, + 0x610c, 0x6173, 0x6ac4, 0x1bad, 0x69e0, 0x6313, 0x1c1e, 0x6328, + 0x6358, 0x636b, 0x63b1, 0x63ae, 0x63bf, + /* 0x9a */ + 0x63e3, 0x63eb, 0x63f3, 0x63f4, 0x63fd, 0x6443, 0x6484, 0x64ad, + 0x1c45, 0x1c51, 0x6f3f, 0x6517, 0x2541, 0x651d, 0x652d, 0x653e, + 0x1c6a, 0x6554, 0x6579, 0x662d, 0x66a2, 0x1ca7, 0x66f4, 0x6733, + 0x1ce5, 0x39e0, 0x1d24, 0x6840, 0x1d35, 0x68b2, 0x68c2, 0x2894, + 0x1da4, 0x3328, 0x69b9, 0x1dd9, 0x69f1, 0x2a84, 0x6a0e, 0x6a19, + 0x23f4, 0x6a1c, 0x6a37, 0x6a42, 0x6a5d, 0x6a62, 0x1e30, 0x6ac5, + 0x1e5d, 0x6b3c, 0x6c0f, 0x4c83, 0x6c69, 0x6c81, 0x6cdd, 0x6cf1, + 0x6cf4, 0x1f2d, 0x6d20, 0x0aaf, 0x8902, 0x6dc9, 0x6d3a, 0x6f7e, + 0x2890, 0x6e13, 0x6e3d, 0x6e40, 0x6e7c, 0x65f6, 0x60f6, 0x6efb, + 0x6f2c, 0x6f31, 0x6f3d, 0x6f46, 0x65dc, 0x6f62, 0x6f71, 0x6f78, + 0x4cc8, 0x6fc4, 0x7194, 0x7377, 0x7460, 0x3b5a, 0x65c3, 0x2bec, + 0x7597, 0x2a80, 0x65c1, 0x0af9, 0x7655, 0x7695, 0x76f6, 0x84fa, + 0x2997, 0x4373, 0x79c2, 0x79cd, 0x7a7f, 0x26aa, 0xf1fb, 0x7a8b, + 0x26de, 0x7abb, 0x7afb, 0x7b13, 0x7b25, 0x7b3c, 0x3327, 0x7b4d, + 0x28ba, 0x7b75, 0x7b9d, 0x7bad, 0x7c2f, 0x7c72, 0x7c88, 0x3b95, + 0x6d2f, 0x5925, 0x7cc4, 0x7cce, 0x7d97, 0x7e50, 0x7ded, 0x7d33, + 0x2e60, 0x7e7c, 0x304b, 0x7f1c, 0x7f0f, 0x7f36, 0x395e, 0x7f3b, + 0x7f48, 0x7f56, 0x0987, 0x7f7f, 0x7f93, 0x7fef, 0x7ffb, 0x25a4, + 0x56ad, 0x81a3, 0x8235, 0x81f6, 0x5d01, 0x83f7, 0x8459, 0x8603, + 0x8607, 0x20b8, 0x42bb, 0x866d, 0x87aa, + /* 0x9b */ + 0x886d, 0x8885, 0x896a, 0x89b0, 0x89ec, 0x8b48, 0x3503, 0x8b55, + 0x8b95, 0x4398, 0x3a95, 0x8c85, 0x3c29, 0x0a08, 0x8ebc, 0x8f57, + 0x8f7a, 0x922a, 0x9371, 0x944f, 0x54fd, 0x9467, 0x9493, 0x9515, + 0x5b25, 0x9528, 0x60e0, 0x954e, 0x68b8, 0x957f, 0x6947, 0x6bbd, + 0x964c, 0x70fd, 0x9688, 0x96b7, 0xbbe8, 0x9708, 0x9712, 0x97b7, + 0x9795, 0x9842, 0x9934, 0x994c, 0x99b3, 0x99e6, 0x9c9f, 0x9d1e, + 0x31f1, 0x3888, 0x38ff, 0xd579, 0x9e67, 0x9ef3, 0x70fd, 0xae3a, + 0x70fd, 0x9f1a, 0xa016, 0x70fd, 0x7406, 0x2af5, 0x394e, 0x3b58, + 0xa1a7, 0xd1d7, 0xbf22, 0xa391, 0xa3f9, 0xd17e, 0x8cda, 0x1bd0, + 0x1d78, 0xa659, 0xe09a, 0xa82e, 0xa84d, 0xa57b, 0xa874, 0xa8d6, + 0xaec5, 0x764a, 0x2412, 0x7691, 0x2bdf, 0x8b28, 0x0efe, 0xa2bf, + 0xa944, 0xaa16, 0x29c8, 0xab74, 0x0cdb, 0xac2f, 0xdda8, 0xe949, + 0x0aa2, 0x8e03, 0x5cde, 0xe14e, 0x70fd, 0xacd2, 0xad7b, 0xae95, + 0x4409, 0xaf40, 0x7b38, 0x2ba5, 0xb225, 0xb2c6, 0x7779, 0x601a, + 0xb36c, 0x24cf, 0x297f, 0x4371, 0xb559, 0xb619, 0xa48a, 0xaf27, + 0x27fc, 0xb646, 0xb66e, 0xc892, 0x70fd, 0x07b3, 0xb6bf, 0xd1b2, + 0xb6de, 0x1a18, 0xb6e2, 0xb6e6, 0xb907, 0xadbf, 0xb95d, 0x22a6, + 0x083b, 0x9d0c, 0x70fd, 0xb9c3, 0x1a7c, 0xdf48, 0xbaee, 0xbb89, + 0xbc06, 0x8a50, 0x29e1, 0x4351, 0x70fd, 0xc002, 0xd6d2, 0x6196, + 0xc0b2, 0xb2da, 0x5ce2, 0xc282, 0xc2ca, + /* 0x9c */ + 0x2f9b, 0xc937, 0x70fd, 0xc304, 0x875c, 0x5c6a, 0xae76, 0xc308, + 0xa52f, 0xc352, 0x1e80, 0xc3ff, 0xc475, 0x921b, 0x6565, 0xb921, + 0x33d5, 0x2c67, 0xf28d, 0x70fd, 0x28f9, 0xaa61, 0xc4bc, 0x20aa, + 0xadb4, 0x6756, 0x3fcf, 0xc9fd, 0x0958, 0x5af7, 0xc559, 0xc62e, + 0xc291, 0xc61e, 0x70fd, 0xc687, 0x4d42, 0xe480, 0x7911, 0xc6e6, + 0x70fd, 0xc6f9, 0x4c45, 0x70fd, 0xc7ba, 0x6b26, 0xc7ed, 0x099f, + 0xc2e9, 0x7121, 0x4b83, 0xc7f4, 0xc89b, 0x2f6c, 0x9e19, 0x70fd, + 0xc8dd, 0x19d0, 0xc9e4, 0x473b, 0x59e5, 0xcaee, 0x2af6, 0x0a5c, + 0x90cd, 0xcd8b, 0xcecd, 0x0f94, 0xcf40, 0xcf45, 0x6381, 0x8dba, + 0xcf4b, 0x6430, 0xcfa6, 0xae50, 0x3e79, 0x659f, 0xd050, 0x7db8, + 0x59a7, 0x5a75, 0x9426, 0xdcb3, 0x85f1, 0x40b8, 0xaeaa, 0x8660, + 0x0ce4, 0x09f9, 0x70fd, 0x70fd, 0x183f, 0x38f6, 0xeaad, 0xe824, + 0x5ac3, 0xd30c, 0xd358, 0x2916, 0x13df, 0x844a, 0x0ce1, 0xa02f, + 0xd9a8, 0x8285, 0x43ad, 0x5566, 0xd4dd, 0xe568, 0x70fd, 0x1f77, + 0xcdef, 0xdfab, 0xd4fd, 0xd50a, 0xd60b, 0xd766, 0xa6ba, 0x4d43, + 0x4b7e, 0xd8c9, 0x41b5, 0xefdf, 0x3c43, 0xdb98, 0x25e2, 0xcb47, + 0x64bf, 0x3a76, 0x685d, 0xda2f, 0xd8e3, 0xc775, 0x82ad, 0x9baf, + 0xd908, 0x2fc5, 0xe230, 0xd943, 0x2955, 0x6923, 0xdf49, 0x2feb, + 0xae08, 0x37fe, 0x3c15, 0x2612, 0xaf25, 0xa4c1, 0x0f51, 0x3976, + 0xd950, 0xd9b4, 0xd9ee, 0x8c21, 0xda0f, + /* 0x9d */ + 0xda49, 0xda6f, 0xda9a, 0xdb86, 0xdbaf, 0xdc0a, 0x090a, 0xdca8, + 0xde2a, 0x1bfa, 0x3626, 0xdf56, 0x4a08, 0x6355, 0xdfb8, 0x16f2, + 0xdfe7, 0x16df, 0xdfe8, 0xe146, 0xe1d4, 0x2c38, 0xe209, 0x70fd, + 0xe405, 0xe4ac, 0x70fd, 0xe4d0, 0xe4fc, 0x10f7, 0xe51e, 0xaf4a, + 0x6110, 0x448f, 0x28cb, 0xe667, 0xe6e9, 0xe6b0, 0xe6b8, 0xe732, + 0xe851, 0xe8c9, 0xe8ea, 0xe943, 0xe9a8, 0xea0e, 0xeb1a, 0xeb5b, + 0x509f, 0xecb8, 0xece3, 0x1f64, 0x6647, 0xef93, 0x43a2, 0xefff, + 0x2011, 0x6152, 0xf0cb, 0x201c, 0x7b5c, 0x60fe, 0x2801, 0x60fa, + 0x8ff0, 0x60f9, 0xaf13, 0x1809, 0x507f, 0x4156, 0x3cf1, 0x212a, + 0x0824, 0xe12c, 0xd39d, 0x0a7a, 0x5fc0, 0x8635, 0xd8e4, 0xe16c, + 0xe199, 0xd53e, 0xc46f, 0x10eb, 0xd1d5, 0xa277, 0xb7b5, 0xba16, + 0x20da, 0xbe01, 0xc118, 0x28ff, 0x7d2d, 0x5f4e, 0x2dad, 0xa3c8, + 0xb05e, 0x361e, 0x70fd, 0x8636, 0x86bb, 0x3770, 0x286d, 0xbc4a, + 0x265a, 0xb5d1, 0x10c6, 0xeb58, 0x1f3d, 0x2862, 0x285e, 0x5149, + 0xbe58, 0x2bb5, 0xa2c0, 0x58f0, 0x205c, 0x7eaa, 0x7c09, 0x9fba, + 0x5317, 0x6dde, 0x5e58, 0x483b, 0x6d45, 0x484e, 0x49b9, 0x6445, + 0x2672, 0x5348, 0x54f7, 0x2865, 0x5332, 0x5618, 0x52bd, 0x282a, + 0x4b62, 0x2883, 0x2656, 0x7d5d, 0x090e, 0x2845, 0x2831, 0x3931, + 0xdb62, 0x096d, 0x4734, 0x2830, 0x27fa, 0x26d7, 0x27b2, 0x7b01, + 0x7b56, 0x3110, 0xb448, 0x7d36, 0x9662, + /* 0x9e */ + 0x7d62, 0x6f2b, 0x4f5a, 0x281e, 0x7f35, 0x34dd, 0x686d, 0x26d4, + 0x5e0d, 0x43f6, 0x6276, 0x363c, 0x35f9, 0x363e, 0x27a9, 0x9583, + 0x6d72, 0x98b3, 0x23da, 0x081f, 0x7c67, 0x23e7, 0x268d, 0x275e, + 0x2753, 0x4866, 0x5f6d, 0xc64a, 0x47b1, 0x52b6, 0x5984, 0x5906, + 0x5a47, 0x53b6, 0x561c, 0x7f81, 0x17ec, 0x4504, 0xac06, 0x2dd0, + 0x550b, 0xc653, 0x28bb, 0x91f4, 0xd72f, 0xa6e3, 0xd773, 0xcc10, + 0xcf76, 0x6270, 0x8099, 0x6308, 0xa2bc, 0xf1a9, 0x7d6c, 0x7db9, + 0x4466, 0x89e2, 0x1a4e, 0xb302, 0xd8b9, 0x7eab, 0x13fa, 0x6d5d, + 0x375f, 0x97a0, 0x1bf3, 0xaca0, 0xeb3c, 0x7eac, 0x7cca, 0x70fd, + 0xd123, 0x7ead, 0x70fd, 0xbf88, 0x8047, 0x43a3, 0x508e, 0x6dd0, + 0x205a, 0x2044, 0x08b7, 0x2d4d, 0x3ef2, 0x25a7, 0x09ec, 0x0d1c, + 0x25bd, 0x09e5, 0xab18, 0x2ada, 0xafae, 0x542d, 0x268b, 0x29ea, + 0xbad5, 0x78b9, 0x70fd, 0x0d92, 0x8fa5, 0x4574, 0xec6c, 0x1fc9, + 0x6ced, 0xa2be, 0xecf0, 0x1f1b, 0xb2e9, 0xe69e, 0xed5e, 0x565c, + 0xa336, 0xcf72, 0xc573, 0xa020, 0x356e, 0x4f25, 0xa437, 0xa3ac, + 0x0d6a, 0x6148, 0x250c, 0x1174, 0x09ba, 0x18e9, 0x754e, 0x4840, + 0x2d30, 0x7d76, 0x4a7a, 0xd86e, 0x2ae7, 0x13bf, 0x28bc, 0x6c8b, + 0x2fb4, 0x4854, 0xf074, 0x6f05, 0x1fa1, 0x70fd, 0x0b3b, 0x3359, + 0x9a5a, 0xa932, 0x70fd, 0x289d, 0x8169, 0x29e7, 0xade3, 0xebc6, + 0x2474, 0xcdee, 0x08ed, 0x70fd, 0x6dfc, + /* 0x9f */ + 0x4e56, 0x6c39, 0x2a1e, 0x85ac, 0x2e93, 0x3713, 0xe650, 0xc1b5, + 0xcea4, 0x586d, 0x7be8, 0xca62, 0xaf62, 0x7c31, 0x70fd, 0x243e, + 0x8b8f, 0x2fce, 0x6803, 0x8a91, 0x6f01, 0x618c, 0x4d1f, 0x6c02, + 0x2f11, 0x4da3, 0x34a8, 0x3575, 0x6bff, 0x4dcf, 0x6c2a, 0x4e7e, + 0x70fd, 0x4e42, 0x4e86, 0x6d15, 0x4dfc, 0x6c09, 0x70fd, 0x6d1b, + 0xadbe, 0x6fda, 0x27b3, 0x2e03, 0x223d, 0x6f18, 0x2232, 0x24a0, + 0x1106, 0x2511, 0x29a7, 0x2296, 0x2bf7, 0x3052, 0x68c8, 0x6e2b, + 0x609c, 0x26a9, 0x68b4, 0x6a40, 0x68ba, 0x256c, 0x3370, 0x3b6c, + 0x261a, 0x6d0a, 0x6d82, 0x1efb, 0x6741, 0x3bc0, 0x22e6, 0x4746, + 0x85ad, 0x6ada, 0x24b3, 0x70fd, 0x6259, 0x6781, 0x625c, 0x70fd, + 0x6251, 0xe397, 0x35bf, 0xca63, 0x3d0a, 0x2851, 0x628e, 0x477a, + 0x34c5, 0x74bc, 0x454f, 0x4e70, 0xbc21, 0xa2bd, 0x70fd, 0xad99, + 0x48d6, 0x6c9d, 0x206a, 0x7b94, 0x55be, 0x59c2, 0x70fd, 0x2e8a, + 0x3c00, 0x70fd, 0x29ba, 0x245f, 0x3035, 0x210e, 0x3e71, 0x72b2, + 0x2179, 0x26dc, 0x271a, 0x24da, 0x5ec2, 0x093e, 0x70fd, 0x0933, + 0x70fd, 0x3d92, 0x627c, 0x7025, 0x6c97, 0x692e, 0x69b4, 0x6bba, + 0x6f28, 0x6f04, 0x437a, 0x4d14, 0x70fd, 0x3e3a, 0x5998, 0x5178, + 0x70fd, 0x2860, 0xf14a, 0x5fb7, 0x6fd3, 0x70fd, 0x5f14, 0x5f8f, + 0x6e9c, 0x5f41, 0x34c2, 0xdbfd, 0x5f68, 0x5fb5, 0x4cd3, 0xaef7, + 0x4c3e, 0x4ad8, 0x3f2a, 0x5be7, 0x4807, + /* 0xa0 */ + 0xe05a, 0x6fa6, 0x3f0e, 0x5956, 0x47c3, 0xefb2, 0x4a53, 0xf200, + 0x5e4c, 0x44e2, 0x4571, 0x5cad, 0x4502, 0x46f1, 0x5e2b, 0xaf3b, + 0x57ef, 0x31fa, 0x5a20, 0x17b7, 0x70fd, 0x867b, 0xcb45, 0x70fd, + 0x5bfe, 0x905b, 0x70fd, 0x333d, 0x4867, 0x6bd7, 0x6dc4, 0x646e, + 0x6c8f, 0x5975, 0x70fd, 0x70fd, 0x5e37, 0x452c, 0x6821, 0x6cb0, + 0x0916, 0x44b2, 0x1ec7, 0x4e51, 0x6a4a, 0xc059, 0x3399, 0x1ec4, + 0x6f16, 0x33bd, 0x70fd, 0x299f, 0x33af, 0x34e6, 0x3479, 0x70fd, + 0x0d9c, 0x3422, 0x25ea, 0x9d35, 0x35a4, 0x3a42, 0x0912, 0x2f97, + 0xe1c2, 0x611a, 0xe339, 0x70fd, 0x2319, 0x8a06, 0x4b06, 0x2572, + 0x6738, 0x7dfb, 0x1365, 0x70fd, 0x49fe, 0x70fd, 0x4ec2, 0xbe9a, + 0x4eda, 0x4c2d, 0x5266, 0x5263, 0x4f4d, 0x4705, 0x46f2, 0x5b14, + 0x541a, 0x394c, 0x5262, 0xd086, 0x525b, 0x46f0, 0x5303, 0x4924, + 0x5b09, 0xc58c, 0x4753, 0xcc11, 0x5929, 0x594e, 0x53c8, 0x590c, + 0x5bc9, 0x5ded, 0x5cc3, 0x492b, 0x46f8, 0x56da, 0x0975, 0x3bf2, + 0x5ee6, 0x70fd, 0x5b29, 0x70fd, 0x3ff9, 0x5941, 0xa551, 0x46e7, + 0x10db, 0x4376, 0x32e4, 0x33dc, 0x0fd1, 0x70fd, 0x32b7, 0x70fd, + 0x5171, 0xe12d, 0x70fd, 0x3329, 0x1e3e, 0x2460, 0x0f58, 0xa287, + 0xbe57, 0xd1d6, 0xb6b1, 0x8784, 0x81be, 0xe883, 0xcb1c, 0xcded, + 0x2f01, 0xc0ad, 0xe00f, 0x9f77, 0x71ee, 0xc606, 0xb24e, 0x1862, + 0x2d5f, 0xc1cc, 0x6fd0, 0x6f26, 0xc12b, +}; +static const unsigned short hkscs1999_2uni_pagec6[471] = { + /* 0xc6 */ + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x0460, + 0x0461, 0x0462, 0x0463, 0x0464, 0x0465, 0x0466, 0x0467, 0x0468, + 0x0469, 0x0474, 0x0475, 0x0476, 0x0477, 0x0478, 0x0479, 0x047a, + 0x047b, 0x047c, 0x047d, 0x0370, 0x0371, 0x0372, 0x0373, 0x0374, + 0x0375, 0x0376, 0x0377, 0x0378, 0x0379, 0x2076, 0x207f, 0x20c5, + 0x20e0, 0x23c2, 0x23d6, 0x23eb, 0x2539, 0x2578, 0x25a9, 0x25f6, + 0x2b4a, 0x2dc0, 0x301b, 0x05b3, 0x30bf, 0x70fd, 0x3190, 0x31a1, + 0x3774, 0x70fd, 0x4792, 0x70fd, 0x60f5, 0x70fd, 0x0028, 0x01c6, + 0x06bd, 0x06be, 0x065d, 0x065e, 0x70fd, 0x70fd, 0x05c5, 0x05c6, + 0x05c7, 0x06bc, 0x70bb, 0x70bd, 0x04fd, 0x0601, 0x0602, 0x0603, + 0x0604, 0x0605, 0x0606, 0x0607, 0x0608, 0x0609, 0x060a, 0x060b, + 0x060c, 0x060d, 0x060e, 0x060f, 0x0610, 0x0611, 0x0612, 0x0613, + 0x0614, 0x0615, 0x0616, 0x0617, 0x0618, + /* 0xc7 */ + 0x0619, 0x061a, 0x061b, 0x061c, 0x061d, 0x061e, 0x061f, 0x0620, + 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, 0x0628, + 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, 0x0630, + 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, 0x0638, + 0x0639, 0x063a, 0x063b, 0x063c, 0x063d, 0x063e, 0x063f, 0x0640, + 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, 0x0648, + 0x0649, 0x064a, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f, 0x0650, + 0x0651, 0x0652, 0x0653, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, + 0x0666, 0x0667, 0x0668, 0x0669, 0x066a, 0x066b, 0x066c, 0x066d, + 0x066e, 0x066f, 0x0670, 0x0671, 0x0672, 0x0673, 0x0674, 0x0675, + 0x0676, 0x0677, 0x0678, 0x0679, 0x067a, 0x067b, 0x067c, 0x067d, + 0x067e, 0x067f, 0x0680, 0x0681, 0x0682, 0x0683, 0x0684, 0x0685, + 0x0686, 0x0687, 0x0688, 0x0689, 0x068a, 0x068b, 0x068c, 0x068d, + 0x068e, 0x068f, 0x0690, 0x0691, 0x0692, 0x0693, 0x0694, 0x0695, + 0x0696, 0x0697, 0x0698, 0x0699, 0x069a, 0x069b, 0x069c, 0x069d, + 0x069e, 0x069f, 0x06a0, 0x06a1, 0x06a2, 0x06a3, 0x06a4, 0x06a5, + 0x06a6, 0x06a7, 0x06a8, 0x06a9, 0x06aa, 0x06ab, 0x06ac, 0x06ad, + 0x06ae, 0x06af, 0x06b0, 0x06b1, 0x06b2, 0x06b3, 0x06b4, 0x06b5, + 0x06b6, 0x0210, 0x0211, 0x0212, 0x0213, 0x0214, 0x0215, 0x0201, + 0x0216, 0x0217, 0x0218, 0x0219, 0x021a, + /* 0xc8 */ + 0x021b, 0x021c, 0x021d, 0x021e, 0x021f, 0x0220, 0x0221, 0x0222, + 0x0223, 0x0224, 0x0225, 0x0226, 0x0227, 0x0228, 0x0229, 0x022a, + 0x022b, 0x022c, 0x022d, 0x022e, 0x022f, 0x0230, 0x0231, 0x0232, + 0x0233, 0x0234, 0x0235, 0x0251, 0x0236, 0x0237, 0x0238, 0x0239, + 0x023a, 0x023b, 0x023c, 0x023d, 0x023e, 0x023f, 0x0240, 0x0241, + 0x0242, 0x0243, 0x0244, 0x0245, 0x0246, 0x0247, 0x0248, 0x0249, + 0x024a, 0x024b, 0x024c, 0x024d, 0x024e, 0x024f, 0x03e7, 0x03b8, + 0x03b9, 0x06cf, 0x71cc, 0x209a, 0x718a, 0x2442, 0x1791, 0x7030, + 0x23c8, 0x7031, 0xd187, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70e2, 0x70e4, 0x7087, 0x7082, 0x0731, + 0x0316, 0x0321, 0x065b, 0x065c, 0x0500, 0x0504, 0x0506, 0x0507, + 0x0508, 0x050a, 0x050c, 0x050d, 0x0515, 0x051c, 0x051d, 0x0525, + 0x0527, 0x052a, 0x052c, 0x052e, 0x0536, 0x053c, 0x053e, 0x0546, + 0x054a, 0x054c, 0x054d, 0x054f, 0x0556, 0x0557, 0x055e, 0x0563, + 0x70fd, 0x70fd, 0x70fd, 0x0183, 0x0150, 0x015b, 0x0154, 0x0175, + 0x00d3, 0x0078, 0x00cb, 0x018a, 0x016a, +}; +static const unsigned short hkscs1999_2uni_pagef9[942] = { + /* 0xf9 */ + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, + 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x4a81, 0x63b9, 0x5a4f, 0x2afb, + 0x3292, 0x4ea7, 0x2d3a, 0x0494, 0x04a6, 0x0497, 0x04a0, 0x04ac, + 0x04a3, 0x049a, 0x04a9, 0x049d, 0x0492, 0x04a4, 0x0495, 0x049e, + 0x04aa, 0x04a1, 0x0498, 0x04a7, 0x049b, 0x0493, 0x04a5, 0x0496, + 0x049f, 0x04ab, 0x04a2, 0x0499, 0x04a8, 0x049c, 0x0491, 0x0490, + 0x04ad, 0x04ae, 0x04b0, 0x04af, 0x70ed, + /* 0xfa */ + 0x75c7, 0x63db, 0x765f, 0xa505, 0x574c, 0x15b5, 0x45ef, 0x23f5, + 0x0989, 0xadc2, 0xdfe4, 0x6444, 0x881b, 0x54ee, 0xa288, 0x4a3c, + 0x3984, 0x351f, 0xadb3, 0xdfaa, 0x7360, 0xc8f3, 0x81c5, 0x21eb, + 0x902d, 0x2248, 0xca69, 0xd584, 0x9f00, 0xaf31, 0x9053, 0x70fd, + 0x743e, 0x31e4, 0x7440, 0x7407, 0x40db, 0x74df, 0x70fd, 0x2341, + 0x07ba, 0x234e, 0x696c, 0x0a83, 0x5616, 0xae24, 0x7547, 0x23a0, + 0x9cf4, 0x23aa, 0x7abf, 0x8d3c, 0x73a5, 0x9070, 0x760e, 0x9bb3, + 0x87c3, 0x2dc2, 0x58fd, 0x7633, 0xa259, 0x23f2, 0x23f8, 0x6db4, + 0x2409, 0x240f, 0x2411, 0x0fdc, 0x2413, 0xaf26, 0x23f3, 0x2422, + 0x2582, 0x242d, 0x55cd, 0x3b7e, 0xa02d, 0x31bb, 0x244b, 0x2466, + 0x247c, 0x24f5, 0x2497, 0x24d4, 0x24f9, 0x2505, 0x4e15, 0x5742, + 0x2520, 0x57cd, 0xc853, 0x70fd, 0xe0de, 0x2789, 0x40d9, 0xa4c0, + 0x7894, 0xa52c, 0x2573, 0x70fd, 0x7aa2, 0x3f0b, 0x8566, 0x3a5b, + 0x45d5, 0x328a, 0x11aa, 0x0c0c, 0x8528, 0x43dd, 0x17a2, 0x25ad, + 0x25b4, 0xde2b, 0x25be, 0x70fd, 0x8416, 0x8453, 0x49e6, 0x25d3, + 0xe09b, 0x25e0, 0x25eb, 0x25ee, 0x45a7, 0xb8f2, 0x1259, 0x459c, + 0x2601, 0x2605, 0x3e89, 0x2089, 0x2a3e, 0x2619, 0x0deb, 0x7a4f, + 0x2620, 0xa52b, 0x97a3, 0x2636, 0x7b37, 0x2653, 0x4279, 0x276b, + 0x3897, 0x3f9b, 0x26ad, 0xc893, 0x7c34, 0x279d, 0x26cf, 0x26e4, + 0x1aa6, 0x854d, 0x7d9d, 0x10b4, 0x7c0d, + /* 0xfb */ + 0xdfbc, 0x9198, 0x2787, 0x1fad, 0x266f, 0x4617, 0x27c6, 0x27e9, + 0x70fd, 0x8717, 0xa57a, 0x1852, 0xa975, 0x38f3, 0x7f74, 0x2877, + 0x390d, 0x9c0a, 0x38e4, 0x38ed, 0x288d, 0x288f, 0x4af1, 0x2931, + 0x6887, 0x263e, 0x2940, 0x292f, 0x292d, 0xe166, 0x0963, 0x810f, + 0x2986, 0xa6e5, 0x3eae, 0x428b, 0x2982, 0x09f1, 0xc9be, 0x2a26, + 0x82d6, 0x2a43, 0x8314, 0xa8a3, 0x2a66, 0xaff5, 0x2a9c, 0x2aea, + 0x08a1, 0x2b20, 0x2b1c, 0x80fc, 0x2b3b, 0x2e3f, 0x2983, 0xee90, + 0xa7b8, 0x64d3, 0x08e1, 0x2b5f, 0x3ae6, 0x0a03, 0x4059, 0x847e, + 0x2c64, 0x2793, 0x84d2, 0x5705, 0x2c09, 0x7c0e, 0xc9c1, 0xca6a, + 0x861c, 0x2c19, 0x863b, 0x85f2, 0xcae6, 0x3fb1, 0x8668, 0x8515, + 0x2c39, 0xcb85, 0x2ceb, 0x2ca3, 0x0a26, 0xae29, 0x70fd, 0x0a48, + 0x2cd6, 0x4665, 0x2d13, 0xcce1, 0x9094, 0x1085, 0x8751, 0x0a72, + 0x84f8, 0x30c3, 0x2510, 0x2db6, 0x37c8, 0x2dbc, 0xd50e, 0x1304, + 0x1b5d, 0x72c4, 0x2e15, 0x33a0, 0x8874, 0xba8c, 0x7625, 0x2e33, + 0x2ddd, 0x1fd0, 0x2e45, 0x88c4, 0x2e53, 0x45ce, 0x2e54, 0x89e5, + 0xc868, 0x2e89, 0x1bdd, 0x2ec5, 0x2f29, 0x2f2f, 0x2fcb, 0x8ab9, + 0x8af7, 0x2f50, 0x2f58, 0x2f86, 0x8b24, 0x2efa, 0x3017, 0x54fc, + 0x0b6d, 0xad81, 0x8c89, 0x8db3, 0x5487, 0x0b76, 0x0f02, 0x306e, + 0x3cca, 0x70fd, 0x30ba, 0xa9fc, 0x7b93, 0x25e6, 0x20f7, 0x70fd, + 0x25e8, 0x85b1, 0x3049, 0x3134, 0xdcc2, + /* 0xfc */ + 0x3139, 0x313b, 0x0be0, 0x313c, 0x3a7e, 0x651b, 0x314d, 0x7281, + 0xf254, 0x0e1e, 0x1bae, 0x81fa, 0x317a, 0xc648, 0x8f50, 0x70fd, + 0x8fb1, 0x31a3, 0x68bd, 0xcbae, 0x31b2, 0x6440, 0xe036, 0x31e7, + 0x2ff6, 0x105f, 0xb510, 0x8bea, 0xce38, 0x9168, 0x62d6, 0x735e, + 0xe029, 0x3271, 0x38c5, 0x86b7, 0x0ca3, 0x10c7, 0x0979, 0x29d0, + 0x92b4, 0x4b71, 0x1140, 0x32de, 0x70fd, 0x32f3, 0xae02, 0xae0f, + 0xd553, 0x46a4, 0x2321, 0x2ce0, 0x33a4, 0x5624, 0x3382, 0xf266, + 0xcc12, 0x33c1, 0x2434, 0x76d6, 0x33c7, 0x2dea, 0xa4f7, 0x935f, + 0x3413, 0xe19d, 0xe8dd, 0x3410, 0x0c72, 0x9480, 0x93c1, 0x3263, + 0x339c, 0x375e, 0x35cb, 0x7218, 0x3505, 0x85b0, 0x3515, 0x980d, + 0x35ac, 0xae5f, 0x0d57, 0x3678, 0x3638, 0x824e, 0x863c, 0x70fd, + 0x418a, 0x9836, 0x6914, 0xa5cc, 0xb89d, 0x3721, 0x3725, 0x657b, + 0x0da6, 0x367a, 0x0d97, 0x378d, 0x4116, 0xaea8, 0xaea3, 0x37c5, + 0x37ad, 0x379f, 0x99fe, 0x37f5, 0xadc0, 0x1df7, 0x3811, 0x13d8, + 0x8669, 0x3820, 0x3823, 0x321f, 0x9d40, 0x3858, 0x9b77, 0x9b78, + 0x3884, 0x9b24, 0x9b25, 0x388b, 0x7d35, 0x38a7, 0xb4a6, 0x38b3, + 0x70fd, 0x8afd, 0x9bb1, 0xddb4, 0x9b48, 0xb5d3, 0x49c5, 0x93f7, + 0x6aa4, 0x3942, 0xa8dc, 0xaea1, 0x0e6b, 0x3c3a, 0xa0c2, 0x70fd, + 0x39a7, 0x39a2, 0xa70d, 0xe4ad, 0x3a17, 0x17e9, 0x3a62, 0x4050, + 0x633c, 0x3a41, 0x9d26, 0xcae0, 0x3a9d, + /* 0xfd */ + 0x9daf, 0x3c21, 0x3c4b, 0xe0df, 0x3bb3, 0x3b03, 0x9ecd, 0x3b41, + 0x3b40, 0x1032, 0x0d41, 0x9f3c, 0x0ec0, 0x39ec, 0x3ba1, 0xe04a, + 0x15fc, 0x3b76, 0x3bd8, 0x0ee1, 0x7489, 0x5563, 0x22d0, 0x3c39, + 0x9f59, 0x8d6a, 0x3c85, 0xa003, 0x3cdd, 0x0f33, 0x39f1, 0x3d08, + 0xe55c, 0x0f4d, 0x3d5d, 0x7863, 0x331e, 0x3d75, 0x3db4, 0x92cd, + 0x40b5, 0xa1db, 0x7475, 0x8798, 0x0a80, 0x2661, 0xa21a, 0x3e21, + 0xa43c, 0x3e1c, 0x3e77, 0x8fcb, 0xad71, 0xc891, 0x3e9a, 0x5426, + 0x3eb9, 0xa33c, 0x17c5, 0xa33d, 0xa6e4, 0xad8c, 0xad80, 0xa289, + 0x0a25, 0x0feb, 0x7bf2, 0x6c83, 0x9b79, 0x8fd1, 0x518f, 0x3a77, + 0xca65, 0xcae1, 0xcb2b, 0x3fd6, 0x3f9c, 0x407c, 0x4104, 0xadff, + 0xa5c5, 0xcbb2, 0x5733, 0xccb4, 0x2407, 0x70fd, 0x70fd, 0x562e, + 0xe121, 0x70fd, 0xa3af, 0x4653, 0xa4c2, 0x4bcc, 0x404f, 0x2cd1, + 0x99cb, 0x41f8, 0x0a4d, 0x419d, 0xa3b0, 0x40fa, 0x8357, 0xa57d, + 0x1855, 0x64f0, 0x4144, 0x415c, 0x104e, 0x4174, 0xe530, 0x103b, + 0x419f, 0xa684, 0x41d3, 0xa5d1, 0xa695, 0xa579, 0xa530, 0xa4f4, + 0xa67f, 0x241f, 0xa696, 0xa697, 0xa680, 0xc0dd, 0x424b, 0x427e, + 0x42a7, 0x4281, 0x42cc, 0x42d5, 0x42d6, 0x42df, 0x1404, 0x10e8, + 0x43b4, 0x4396, 0xa7b7, 0x432b, 0x4345, 0x2cc8, 0x434a, 0x70fd, + 0x2edc, 0xa8a5, 0x434f, 0x6462, 0xa801, 0x432c, 0xa99a, 0xaea7, + 0xaea2, 0x43ba, 0xe1e8, 0x42bd, 0x440e, + /* 0xfe */ + 0x6542, 0x4415, 0x2b51, 0x6543, 0x4424, 0x6441, 0xb785, 0x442e, + 0x4440, 0xadf4, 0x3afd, 0x4455, 0x4457, 0x1155, 0x99c4, 0x3a4d, + 0x413d, 0x4482, 0x70fd, 0x452b, 0xace3, 0xdeeb, 0x1bed, 0xdec4, + 0x4528, 0x452e, 0x45cf, 0x45aa, 0x7afa, 0xc7ee, 0x45c9, 0x4649, + 0xa722, 0x8527, 0xaea4, 0x3863, 0x0a05, 0xae37, 0xae0d, 0xae7b, + 0x45f7, 0x4615, 0x3b43, 0xaea6, 0x4639, 0x7643, 0x11d7, 0x70fd, + 0x93ad, 0x4660, 0xe3b2, 0x4647, 0x45e4, 0x4676, 0x55b9, 0x466c, + 0x0a70, 0x4674, 0x64f1, 0x3c6c, 0x4682, 0x1c53, 0xaf0c, 0xa69f, + 0xaef9, 0xe18f, 0x2d86, 0xe203, 0x86de, 0x46c8, 0x87c8, 0x470e, + 0x70fd, 0x471e, 0xe3d9, 0x888b, 0x2e17, 0xe3ac, 0x6485, 0x474d, + 0x474a, 0x4767, 0x476e, 0xb2c2, 0x1204, 0xb0d3, 0x478e, 0x465d, + 0x479e, 0x47b4, 0x4802, 0x482c, 0x4851, 0x484f, 0x486f, 0x4876, + 0xc275, 0x4890, 0x53ef, 0x0b38, 0xc6d1, 0xc6ce, 0x48a1, 0x48a5, + 0x48b7, 0x48cc, 0xccdf, 0x5662, 0xb3dd, 0xb47d, 0x8adc, 0x491e, + 0x4926, 0x4940, 0x36ef, 0xb4e0, 0x4958, 0x9c2c, 0x49af, 0xdf64, + 0xdf68, 0x8501, 0x49f4, 0x70fd, 0x8236, 0xae92, 0x3b0a, 0x4aaf, + 0x4ac7, 0x4ad3, 0x67a5, 0x4b2e, 0xb760, 0x4ad7, 0x4b34, 0x4ab1, + 0xd18c, 0x60f8, 0x5a04, 0xe12b, 0xbfc3, 0x911c, 0x4b86, 0x5a80, + 0x3b42, 0x4b80, 0xb957, 0x4b9d, 0xd639, 0x4b3c, 0x4ba9, 0x402a, + 0xce66, 0x11a8, 0x4bc6, 0xe4cd, 0x4bd4, +}; + +static const ucs4_t hkscs1999_2uni_upages[973] = { + 0x00080, 0x000c0, 0x00100, 0x00140, 0x001c0, 0x00240, 0x00280, 0x002c0, + 0x00400, 0x00440, 0x01e80, 0x01ec0, 0x02100, 0x02140, 0x02180, 0x021c0, + 0x023c0, 0x02440, 0x02540, 0x02700, 0x02e80, 0x02ec0, 0x02f00, 0x03000, + 0x03040, 0x03080, 0x030c0, 0x031c0, 0x03200, 0x03400, 0x03440, 0x03480, + 0x034c0, 0x03500, 0x03540, 0x03580, 0x035c0, 0x03600, 0x03640, 0x03680, + 0x036c0, 0x03700, 0x03740, 0x03780, 0x037c0, 0x03800, 0x03840, 0x03880, + 0x038c0, 0x03900, 0x03940, 0x03980, 0x039c0, 0x03a00, 0x03a40, 0x03a80, + 0x03ac0, 0x03b00, 0x03b40, 0x03b80, 0x03bc0, 0x03c00, 0x03c40, 0x03cc0, + 0x03d00, 0x03d40, 0x03d80, 0x03dc0, 0x03e00, 0x03e40, 0x03e80, 0x03ec0, + 0x03f00, 0x03f40, 0x03f80, 0x03fc0, 0x04000, 0x04040, 0x04080, 0x040c0, + 0x04100, 0x04140, 0x04180, 0x041c0, 0x04200, 0x04240, 0x04280, 0x042c0, + 0x04300, 0x04340, 0x04380, 0x043c0, 0x04400, 0x04440, 0x04480, 0x044c0, + 0x04500, 0x04540, 0x04580, 0x045c0, 0x04600, 0x04640, 0x04680, 0x046c0, + 0x04700, 0x04740, 0x04780, 0x047c0, 0x04800, 0x04840, 0x04880, 0x048c0, + 0x04900, 0x04940, 0x04980, 0x049c0, 0x04a00, 0x04a80, 0x04ac0, 0x04b00, + 0x04b40, 0x04b80, 0x04bc0, 0x04c00, 0x04c40, 0x04c80, 0x04cc0, 0x04d00, + 0x04d80, 0x04e00, 0x04e40, 0x04e80, 0x04ec0, 0x04f00, 0x04f40, 0x04f80, + 0x04fc0, 0x05000, 0x05040, 0x05080, 0x050c0, 0x05100, 0x05140, 0x05180, + 0x051c0, 0x05200, 0x05240, 0x05280, 0x052c0, 0x05300, 0x05340, 0x05380, + 0x053c0, 0x05400, 0x05440, 0x05480, 0x054c0, 0x05500, 0x05540, 0x05580, + 0x055c0, 0x05600, 0x05640, 0x05680, 0x056c0, 0x05700, 0x05740, 0x05780, + 0x057c0, 0x05800, 0x05840, 0x05880, 0x058c0, 0x05900, 0x05940, 0x05980, + 0x059c0, 0x05a00, 0x05a40, 0x05a80, 0x05ac0, 0x05b00, 0x05b40, 0x05b80, + 0x05bc0, 0x05c00, 0x05c40, 0x05c80, 0x05cc0, 0x05d00, 0x05d40, 0x05d80, + 0x05dc0, 0x05e00, 0x05e40, 0x05e80, 0x05ec0, 0x05f00, 0x05f40, 0x05f80, + 0x05fc0, 0x06000, 0x06040, 0x06080, 0x060c0, 0x06100, 0x06140, 0x06180, + 0x061c0, 0x06200, 0x06240, 0x06280, 0x062c0, 0x06300, 0x06340, 0x06380, + 0x063c0, 0x06400, 0x06440, 0x06480, 0x064c0, 0x06500, 0x06540, 0x06580, + 0x065c0, 0x06600, 0x06640, 0x06680, 0x066c0, 0x06700, 0x06740, 0x06780, + 0x067c0, 0x06800, 0x06840, 0x06880, 0x068c0, 0x06900, 0x06940, 0x06980, + 0x069c0, 0x06a00, 0x06a40, 0x06a80, 0x06ac0, 0x06b00, 0x06b40, 0x06b80, + 0x06bc0, 0x06c00, 0x06c40, 0x06c80, 0x06cc0, 0x06d00, 0x06d40, 0x06d80, + 0x06e00, 0x06e40, 0x06e80, 0x06ec0, 0x06f00, 0x06f40, 0x06f80, 0x06fc0, + 0x07000, 0x07040, 0x07080, 0x070c0, 0x07100, 0x07140, 0x07180, 0x071c0, + 0x07200, 0x07240, 0x07280, 0x072c0, 0x07300, 0x07340, 0x07380, 0x073c0, + 0x07400, 0x07440, 0x07480, 0x074c0, 0x07500, 0x07540, 0x07580, 0x075c0, + 0x07600, 0x07640, 0x07680, 0x076c0, 0x07700, 0x07740, 0x07780, 0x077c0, + 0x07800, 0x07840, 0x07880, 0x078c0, 0x07900, 0x07940, 0x07980, 0x079c0, + 0x07a00, 0x07a40, 0x07a80, 0x07ac0, 0x07b00, 0x07b40, 0x07b80, 0x07bc0, + 0x07c00, 0x07c40, 0x07c80, 0x07cc0, 0x07d00, 0x07d40, 0x07d80, 0x07dc0, + 0x07e00, 0x07e40, 0x07e80, 0x07ec0, 0x07f00, 0x07f40, 0x07f80, 0x07fc0, + 0x08000, 0x08040, 0x08080, 0x080c0, 0x08100, 0x08140, 0x08180, 0x081c0, + 0x08200, 0x08240, 0x08280, 0x082c0, 0x08300, 0x08340, 0x08380, 0x083c0, + 0x08400, 0x08440, 0x08480, 0x084c0, 0x08500, 0x08540, 0x085c0, 0x08600, + 0x08640, 0x08680, 0x086c0, 0x08740, 0x08780, 0x087c0, 0x08800, 0x08840, + 0x08880, 0x088c0, 0x08900, 0x08940, 0x08980, 0x089c0, 0x08a00, 0x08a40, + 0x08a80, 0x08ac0, 0x08b00, 0x08b40, 0x08b80, 0x08bc0, 0x08c40, 0x08c80, + 0x08cc0, 0x08d00, 0x08d40, 0x08d80, 0x08dc0, 0x08e00, 0x08e40, 0x08e80, + 0x08ec0, 0x08f00, 0x08f40, 0x08f80, 0x08fc0, 0x09000, 0x09040, 0x09080, + 0x090c0, 0x09140, 0x09180, 0x091c0, 0x09200, 0x09240, 0x09280, 0x092c0, + 0x09300, 0x09340, 0x09380, 0x093c0, 0x09400, 0x09440, 0x09480, 0x094c0, + 0x09500, 0x09540, 0x09580, 0x095c0, 0x09600, 0x09640, 0x09680, 0x096c0, + 0x09700, 0x09740, 0x09780, 0x097c0, 0x09800, 0x09840, 0x09880, 0x098c0, + 0x09900, 0x09940, 0x09980, 0x099c0, 0x09a00, 0x09a40, 0x09a80, 0x09ac0, + 0x09b00, 0x09b40, 0x09b80, 0x09bc0, 0x09c00, 0x09c40, 0x09d00, 0x09d40, + 0x09d80, 0x09dc0, 0x09e00, 0x09e40, 0x09e80, 0x09ec0, 0x09f00, 0x09f40, + 0x09f80, 0x0f900, 0x0ff00, 0x0ffc0, 0x20000, 0x20040, 0x20080, 0x200c0, + 0x20100, 0x20180, 0x201c0, 0x20200, 0x20240, 0x20280, 0x202c0, 0x20300, + 0x20340, 0x20380, 0x203c0, 0x20400, 0x20440, 0x20480, 0x204c0, 0x20540, + 0x20580, 0x205c0, 0x20600, 0x20640, 0x20700, 0x20740, 0x20800, 0x20840, + 0x208c0, 0x20900, 0x20940, 0x209c0, 0x20a00, 0x20a40, 0x20a80, 0x20ac0, + 0x20b00, 0x20b80, 0x20bc0, 0x20c00, 0x20c40, 0x20c80, 0x20cc0, 0x20d00, + 0x20d40, 0x20d80, 0x20dc0, 0x20e00, 0x20e40, 0x20e80, 0x20ec0, 0x20f00, + 0x20f40, 0x20f80, 0x20fc0, 0x21000, 0x21040, 0x21080, 0x210c0, 0x21100, + 0x21140, 0x21180, 0x211c0, 0x21200, 0x21240, 0x21280, 0x212c0, 0x21300, + 0x21340, 0x21380, 0x213c0, 0x21400, 0x21440, 0x21480, 0x214c0, 0x21540, + 0x21580, 0x21600, 0x21640, 0x21680, 0x216c0, 0x21700, 0x21740, 0x21780, + 0x217c0, 0x21800, 0x21840, 0x21880, 0x218c0, 0x21900, 0x21940, 0x21980, + 0x219c0, 0x21a00, 0x21a40, 0x21b40, 0x21bc0, 0x21c00, 0x21c40, 0x21c80, + 0x21d40, 0x21d80, 0x21dc0, 0x21e00, 0x21e80, 0x21ec0, 0x21f00, 0x21f40, + 0x21f80, 0x21fc0, 0x22040, 0x22080, 0x220c0, 0x22100, 0x22140, 0x22180, + 0x221c0, 0x22200, 0x22240, 0x22300, 0x22380, 0x223c0, 0x22440, 0x22480, + 0x224c0, 0x22500, 0x22540, 0x22580, 0x22600, 0x22640, 0x22680, 0x226c0, + 0x22700, 0x22740, 0x22780, 0x227c0, 0x22800, 0x22840, 0x22880, 0x228c0, + 0x22900, 0x22940, 0x22980, 0x22a40, 0x22ac0, 0x22b00, 0x22b40, 0x22bc0, + 0x22c00, 0x22c40, 0x22c80, 0x22cc0, 0x22d00, 0x22d40, 0x22d80, 0x22dc0, + 0x22e00, 0x22e40, 0x22e80, 0x22ec0, 0x22f40, 0x22fc0, 0x23000, 0x23040, + 0x23080, 0x230c0, 0x23100, 0x23140, 0x23180, 0x231c0, 0x23200, 0x23240, + 0x23280, 0x232c0, 0x23300, 0x23380, 0x233c0, 0x23400, 0x23440, 0x234c0, + 0x23500, 0x23540, 0x23580, 0x235c0, 0x23600, 0x23640, 0x23680, 0x236c0, + 0x23700, 0x23740, 0x23780, 0x237c0, 0x23800, 0x239c0, 0x23a80, 0x23ac0, + 0x23b40, 0x23c80, 0x23cc0, 0x23d40, 0x23d80, 0x23dc0, 0x23e00, 0x23e80, + 0x23ec0, 0x23f00, 0x23f40, 0x23f80, 0x23fc0, 0x24000, 0x24040, 0x24080, + 0x240c0, 0x24100, 0x24140, 0x24180, 0x241c0, 0x24200, 0x24240, 0x24280, + 0x242c0, 0x24300, 0x24340, 0x24380, 0x243c0, 0x24400, 0x24440, 0x24480, + 0x244c0, 0x24500, 0x24540, 0x245c0, 0x24600, 0x24640, 0x24680, 0x246c0, + 0x24700, 0x24780, 0x247c0, 0x24800, 0x24880, 0x248c0, 0x24900, 0x24940, + 0x24980, 0x249c0, 0x24a00, 0x24a40, 0x24a80, 0x24ac0, 0x24b40, 0x24bc0, + 0x24c00, 0x24c80, 0x24cc0, 0x24d00, 0x24d80, 0x24dc0, 0x24e00, 0x24e40, + 0x24e80, 0x24f00, 0x24f40, 0x24f80, 0x24fc0, 0x25000, 0x25040, 0x25080, + 0x25100, 0x25140, 0x251c0, 0x25200, 0x25240, 0x25280, 0x252c0, 0x25300, + 0x25400, 0x25440, 0x25500, 0x25540, 0x25580, 0x255c0, 0x25600, 0x25640, + 0x25680, 0x256c0, 0x25700, 0x25740, 0x257c0, 0x25840, 0x258c0, 0x25900, + 0x25940, 0x25980, 0x259c0, 0x25a80, 0x25ac0, 0x25b40, 0x25b80, 0x25bc0, + 0x25c00, 0x25c40, 0x25c80, 0x25cc0, 0x25d00, 0x25d40, 0x25e00, 0x25e40, + 0x25e80, 0x25ec0, 0x25f00, 0x25f40, 0x25fc0, 0x26000, 0x26040, 0x26080, + 0x26100, 0x26140, 0x26180, 0x261c0, 0x26240, 0x262c0, 0x26300, 0x26340, + 0x26380, 0x263c0, 0x26400, 0x26440, 0x26480, 0x26500, 0x26540, 0x26580, + 0x26600, 0x26680, 0x266c0, 0x26700, 0x26740, 0x26780, 0x267c0, 0x26800, + 0x26840, 0x26880, 0x268c0, 0x26900, 0x26940, 0x26980, 0x269c0, 0x26a00, + 0x26a40, 0x26b00, 0x26b40, 0x26b80, 0x26bc0, 0x26c00, 0x26c40, 0x26c80, + 0x26cc0, 0x26d00, 0x26d40, 0x26d80, 0x26dc0, 0x26e00, 0x26e40, 0x26e80, + 0x26ec0, 0x26f00, 0x26f40, 0x26f80, 0x26fc0, 0x27000, 0x27040, 0x27080, + 0x270c0, 0x27100, 0x27140, 0x271c0, 0x27200, 0x27280, 0x272c0, 0x27380, + 0x27400, 0x27440, 0x27480, 0x27540, 0x27580, 0x275c0, 0x27600, 0x27640, + 0x27680, 0x27700, 0x27740, 0x27780, 0x277c0, 0x27840, 0x27880, 0x278c0, + 0x27900, 0x27940, 0x27980, 0x279c0, 0x27a00, 0x27a40, 0x27a80, 0x27ac0, + 0x27b00, 0x27b40, 0x27bc0, 0x27c00, 0x27d00, 0x27d40, 0x27d80, 0x27dc0, + 0x27e40, 0x27f00, 0x27fc0, 0x28000, 0x28040, 0x28080, 0x280c0, 0x28100, + 0x28140, 0x28180, 0x28200, 0x28240, 0x28280, 0x282c0, 0x28300, 0x28340, + 0x28380, 0x28400, 0x28440, 0x28480, 0x28500, 0x28540, 0x285c0, 0x28600, + 0x28680, 0x286c0, 0x28700, 0x28800, 0x28900, 0x28940, 0x28980, 0x289c0, + 0x28a00, 0x28a40, 0x28a80, 0x28ac0, 0x28b00, 0x28b40, 0x28b80, 0x28bc0, + 0x28c00, 0x28cc0, 0x28d00, 0x28d80, 0x28e00, 0x28e40, 0x28e80, 0x28ec0, + 0x28fc0, 0x29080, 0x290c0, 0x29100, 0x29140, 0x29180, 0x291c0, 0x29400, + 0x29440, 0x294c0, 0x29580, 0x295c0, 0x29700, 0x297c0, 0x29800, 0x29840, + 0x29880, 0x298c0, 0x29900, 0x29940, 0x29980, 0x299c0, 0x29a00, 0x29a40, + 0x29b00, 0x29bc0, 0x29c80, 0x29d00, 0x29d40, 0x29d80, 0x29dc0, 0x29e00, + 0x29e40, 0x29e80, 0x29ec0, 0x29f00, 0x29f80, 0x29fc0, 0x2a000, 0x2a080, + 0x2a0c0, 0x2a100, 0x2a140, 0x2a180, 0x2a1c0, 0x2a200, 0x2a280, 0x2a2c0, + 0x2a380, 0x2a400, 0x2a440, 0x2a5c0, 0x2a600, 0x2a640, 0x2a680, 0x2f800, + 0x2f840, 0x2f880, 0x2f8c0, 0x2f980, 0x2f9c0, +}; + +static int +hkscs1999_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 >= 0x88 && c1 <= 0x8b) || (c1 >= 0x8d && c1 <= 0xa0) || (c1 >= 0xc6 && c1 <= 0xc8) || (c1 >= 0xf9 && c1 <= 0xfe)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) { + unsigned int i = 157 * (c1 - 0x80) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40)); + ucs4_t wc = 0xfffd; + unsigned short swc; + if (i < 2041) { + if (i < 1883) + swc = hkscs1999_2uni_page88[i-1256], + wc = hkscs1999_2uni_upages[swc>>6] | (swc & 0x3f); + } else if (i < 10990) { + if (i < 5181) + swc = hkscs1999_2uni_page8d[i-2041], + wc = hkscs1999_2uni_upages[swc>>6] | (swc & 0x3f); + } else if (i < 18997) { + if (i < 11461) + swc = hkscs1999_2uni_pagec6[i-10990], + wc = hkscs1999_2uni_upages[swc>>6] | (swc & 0x3f); + } else { + if (i < 19939) + swc = hkscs1999_2uni_pagef9[i-18997], + wc = hkscs1999_2uni_upages[swc>>6] | (swc & 0x3f); + } + if (wc != 0xfffd) { + *pwc = wc; + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + +static const unsigned short hkscs1999_2charset[4698] = { + 0xc6d8, 0x8859, 0x8857, 0x885d, 0x885b, 0x8866, 0x8861, 0x885f, + 0x886a, 0x8868, 0x886f, 0x886d, 0x88a7, 0x8873, 0x8871, 0x8877, + 0x8875, 0xc8fb, 0x887b, 0x8879, 0x88a2, 0x8856, 0x8867, 0x885a, + 0x886c, 0x885c, 0x886e, 0x8870, 0xc8fc, 0x885e, 0x8874, 0xc8fa, + 0x8878, 0x8858, 0x8869, 0x8872, 0x8860, 0x8876, 0x887a, 0x887c, + 0x887d, 0x887e, 0x88a1, 0xc8f6, 0x886b, 0xc8f8, 0xc8f7, 0x88a8, + 0xc8fe, 0xc8f9, 0xc8f5, 0xc8fd, 0xc6d9, 0xc7f9, 0xc7f3, 0xc7f4, + 0xc7f5, 0xc7f6, 0xc7f7, 0xc7f8, 0xc7fa, 0xc7fb, 0xc7fc, 0xc7fd, + 0xc7fe, 0xc840, 0xc841, 0xc842, 0xc843, 0xc844, 0xc845, 0xc846, + 0xc847, 0xc848, 0xc849, 0xc84a, 0xc84b, 0xc84c, 0xc84d, 0xc84e, + 0xc84f, 0xc850, 0xc851, 0xc852, 0xc853, 0xc854, 0xc855, 0xc856, + 0xc857, 0xc858, 0xc859, 0xc85a, 0xc85c, 0xc85d, 0xc85e, 0xc85f, + 0xc860, 0xc861, 0xc862, 0xc863, 0xc864, 0xc865, 0xc866, 0xc867, + 0xc868, 0xc869, 0xc86a, 0xc86b, 0xc86c, 0xc86d, 0xc86e, 0xc86f, + 0xc870, 0xc871, 0xc872, 0xc873, 0xc874, 0xc875, 0xc85b, 0x8863, + 0x88a4, 0x8865, 0x88a6, 0xc8d2, 0xc8d3, 0xc6b5, 0xc6b6, 0xc6b7, + 0xc6b8, 0xc6b9, 0xc6ba, 0xc6bb, 0xc6bc, 0xc6bd, 0xc6be, 0xc877, + 0xc878, 0xc876, 0x88a9, 0x88aa, 0xc6a1, 0xc6a2, 0xc6a3, 0xc6a4, + 0xc6a5, 0xc6a6, 0xc6a7, 0xc6a8, 0xc6a9, 0xc6aa, 0xc6ab, 0xc6ac, + 0xc6ad, 0xc6ae, 0xc6af, 0xc6b0, 0xc6b1, 0xc6b2, 0xc6b3, 0xc6b4, + 0xf9f9, 0xf9f8, 0xf9e6, 0xf9ef, 0xf9dd, 0xf9e8, 0xf9f1, 0xf9df, + 0xf9ec, 0xf9f5, 0xf9e3, 0xf9ee, 0xf9f7, 0xf9e5, 0xf9e9, 0xf9f2, + 0xf9e0, 0xf9eb, 0xf9f4, 0xf9e2, 0xf9e7, 0xf9f0, 0xf9de, 0xf9ed, + 0xf9f6, 0xf9e4, 0xf9ea, 0xf9f3, 0xf9e1, 0xf9fa, 0xf9fb, 0xf9fd, + 0xf9fc, 0xc6e6, 0xc8d6, 0xc8d7, 0xc8d8, 0xc8d9, 0xc8da, 0xc8db, + 0xc8dc, 0xc8dd, 0xc8de, 0xc8df, 0xc8e0, 0xc8e1, 0xc8e2, 0xc8e3, + 0xc8e4, 0xc8e5, 0xc8e6, 0xc8e7, 0xc8e8, 0xc8e9, 0xc8ea, 0xc8eb, + 0xc8ec, 0xc8ed, 0xc8ee, 0xc8ef, 0xc8f0, 0xc8f1, 0xc6cd, 0xc6e0, + 0xc6e1, 0xc6e2, 0xc6e7, 0xc6e8, 0xc6e9, 0xc6ea, 0xc6eb, 0xc6ec, + 0xc6ed, 0xc6ee, 0xc6ef, 0xc6f0, 0xc6f1, 0xc6f2, 0xc6f3, 0xc6f4, + 0xc6f5, 0xc6f6, 0xc6f7, 0xc6f8, 0xc6f9, 0xc6fa, 0xc6fb, 0xc6fc, + 0xc6fd, 0xc6fe, 0xc740, 0xc741, 0xc742, 0xc743, 0xc744, 0xc745, + 0xc746, 0xc747, 0xc748, 0xc749, 0xc74a, 0xc74b, 0xc74c, 0xc74d, + 0xc74e, 0xc74f, 0xc750, 0xc751, 0xc752, 0xc753, 0xc754, 0xc755, + 0xc756, 0xc757, 0xc758, 0xc759, 0xc75a, 0xc75b, 0xc75c, 0xc75d, + 0xc75e, 0xc75f, 0xc760, 0xc761, 0xc762, 0xc763, 0xc764, 0xc765, + 0xc766, 0xc767, 0xc768, 0xc769, 0xc76a, 0xc76b, 0xc76c, 0xc76d, + 0xc76e, 0xc76f, 0xc770, 0xc771, 0xc772, 0xc773, 0xc774, 0xc775, + 0xc776, 0xc777, 0xc778, 0xc779, 0xc77a, 0xc8d4, 0xc8d5, 0xc6dc, + 0xc6dd, 0xc77b, 0xc77c, 0xc77d, 0xc77e, 0xc7a1, 0xc7a2, 0xc7a3, + 0xc7a4, 0xc7a5, 0xc7a6, 0xc7a7, 0xc7a8, 0xc7a9, 0xc7aa, 0xc7ab, + 0xc7ac, 0xc7ad, 0xc7ae, 0xc7af, 0xc7b0, 0xc7b1, 0xc7b2, 0xc7b3, + 0xc7b4, 0xc7b5, 0xc7b6, 0xc7b7, 0xc7b8, 0xc7b9, 0xc7ba, 0xc7bb, + 0xc7bc, 0xc7bd, 0xc7be, 0xc7bf, 0xc7c0, 0xc7c1, 0xc7c2, 0xc7c3, + 0xc7c4, 0xc7c5, 0xc7c6, 0xc7c7, 0xc7c8, 0xc7c9, 0xc7ca, 0xc7cb, + 0xc7cc, 0xc7cd, 0xc7ce, 0xc7cf, 0xc7d0, 0xc7d1, 0xc7d2, 0xc7d3, + 0xc7d4, 0xc7d5, 0xc7d6, 0xc7d7, 0xc7d8, 0xc7d9, 0xc7da, 0xc7db, + 0xc7dc, 0xc7dd, 0xc7de, 0xc7df, 0xc7e0, 0xc7e1, 0xc7e2, 0xc7e3, + 0xc7e4, 0xc7e5, 0xc7e6, 0xc7e7, 0xc7e8, 0xc7e9, 0xc7ea, 0xc7eb, + 0xc7ec, 0xc7ed, 0xc7ee, 0xc7ef, 0xc7f0, 0xc7f1, 0xc7f2, 0xc6e3, + 0xc6da, 0xc6db, 0x8840, 0x8841, 0x8842, 0x8843, 0x8844, 0x8846, + 0x8849, 0x884a, 0x884d, 0x884f, 0x8850, 0x8851, 0x8852, 0x8854, + 0x8855, 0xc879, 0xc8d1, 0x9277, 0x96df, 0x89d5, 0x93cd, 0x9bdf, + 0xfa68, 0x89da, 0x8f59, 0x89db, 0x8f5d, 0x89dc, 0x96f7, 0x8ada, + 0x8bdc, 0x97db, 0x9e53, 0x9daa, 0x9bea, 0x8a6e, 0x8bc8, 0x89e8, + 0x89ea, 0xfb70, 0x89ed, 0x94dd, 0x89ee, 0x9eb4, 0x8ad3, 0x92db, + 0x94db, 0x89f9, 0xfb7a, 0x89fb, 0x9efc, 0x89fc, 0x89bf, 0x89fe, + 0x89e6, 0x9d46, 0x9dee, 0xa07e, 0xa068, 0x98e9, 0x8b68, 0x8dfd, + 0x8bbe, 0x9fd9, 0x8aeb, 0x9fd7, 0x8b6a, 0x9c5c, 0x8bb1, 0xfb5e, + 0x9df3, 0xa0d0, 0xfc66, 0x92e9, 0x9aec, 0x8fab, 0xfa48, 0x8e45, + 0x9c6f, 0x9ede, 0x89ef, 0x96e9, 0x9ebb, 0x94de, 0x9eb8, 0x97ba, + 0xfb65, 0x95d6, 0x9cbb, 0x97da, 0x8f45, 0xfb7d, 0x9158, 0xfe64, + 0x9856, 0x9b4d, 0x935b, 0x95c7, 0x97e7, 0x9359, 0x91f5, 0x97b8, + 0xfda2, 0xfbb6, 0x92fa, 0x9357, 0x8ba6, 0xfbb9, 0x97b0, 0xfdc4, + 0x9ca1, 0x91f2, 0x91f9, 0x8ff1, 0x9745, 0x9853, 0xfe78, 0xfbc1, + 0x9251, 0x9dad, 0xfd6c, 0xfa6b, 0x9bc2, 0x9a7b, 0x8b60, 0x934b, + 0x9abd, 0x91b7, 0x95b4, 0xfec5, 0x9ef0, 0x8d64, 0x9269, 0x8d67, + 0xfbea, 0xfbef, 0x8d68, 0x93eb, 0xfc42, 0x9166, 0xfacd, 0x93dd, + 0x8bcc, 0x8d6d, 0x8d6e, 0x96a8, 0xfca6, 0x8d6f, 0x8d70, 0xfc64, + 0x9060, 0x8d74, 0x97c3, 0x8ad0, 0x9274, 0x9bbe, 0x9cc8, 0x9cba, + 0x8d78, 0x9eb9, 0x955a, 0x91b4, 0x8a48, 0x8d7d, 0x8a7d, 0x8ac2, + 0xfd4a, 0x8da1, 0x8ad1, 0xfcb4, 0x8b47, 0x93a4, 0x9eda, 0x8a51, + 0x8da6, 0x9ec5, 0xfcc4, 0xa078, 0x94b5, 0xfcc2, 0x8a6b, 0x8dab, + 0xfae8, 0x8dad, 0xfc49, 0x93c1, 0x906f, 0x8db0, 0x947e, 0x90fa, + 0x9479, 0x8db2, 0xfcee, 0x997b, 0x8db4, 0x8db7, 0x91b3, 0x8dbb, + 0x8dba, 0x8dbc, 0x9044, 0xfd4c, 0x93e4, 0x93e0, 0xfd53, 0x8dc3, + 0x9bb8, 0xfbf0, 0x93e9, 0x93f6, 0x8dc5, 0x8dca, 0x8dcc, 0xfd5d, + 0x93b5, 0xfd61, 0x9cf8, 0x9252, 0xa0e8, 0x9ca5, 0x8dd6, 0x97c0, + 0xa0de, 0x97d2, 0xfaa5, 0xfda3, 0x8ddb, 0x8eaf, 0x91b5, 0xfd49, + 0xfdd1, 0x8deb, 0x97c6, 0xfdce, 0x90fc, 0xfc59, 0x96d6, 0x97c5, + 0x8def, 0x97d7, 0x8df0, 0x96a6, 0xfbbf, 0x8df3, 0x9449, 0x8df5, + 0x9872, 0x8e6b, 0xfafd, 0x8f50, 0x9dcc, 0xfc65, 0x996e, 0x94a1, + 0x8f63, 0xa0da, 0x9253, 0xfde9, 0x9db5, 0x9879, 0x9d5d, 0x8d63, + 0x9669, 0x9f70, 0xfc6a, 0x8ac7, 0x89d7, 0xfe4d, 0x9edd, 0xfefb, + 0x98bc, 0xfacc, 0x95b0, 0x9464, 0x936f, 0x94b9, 0x95ec, 0x91ee, + 0x98c3, 0x95f6, 0x8ffd, 0x98c5, 0x9766, 0xfe6e, 0x97dd, 0x92d2, + 0x9761, 0x98cb, 0x95f0, 0x975d, 0x91e3, 0x98cc, 0x9469, 0x98cd, + 0x98ce, 0x95fc, 0x94a3, 0x9662, 0xfeb6, 0x9463, 0x98d0, 0x98d1, + 0x9475, 0xfae0, 0x9472, 0x98d6, 0x8af0, 0x98d9, 0x98db, 0x98dd, + 0x98a8, 0x8a6d, 0x8afb, 0x8aae, 0xfbc9, 0x98e4, 0x98e6, 0x98e8, + 0x8a4d, 0x9257, 0x95df, 0xa0ac, 0x98eb, 0x98ec, 0x98f4, 0x8ab8, + 0x9ee7, 0x94bc, 0xfcd1, 0x9cc6, 0x9e7e, 0x98fe, 0xfde8, 0x9940, + 0x94c9, 0x94d3, 0x9946, 0x90c0, 0x94d1, 0x9573, 0x93c2, 0x9948, + 0x994b, 0x8e55, 0x994e, 0x8efe, 0x8e59, 0x94ec, 0x94ef, 0x8f74, + 0x9955, 0x9544, 0x9956, 0x9959, 0x995b, 0xfa45, 0x90b7, 0x9743, + 0x95cd, 0x97c9, 0xfd50, 0x8eb9, 0x95c6, 0x9967, 0x8ab9, 0x8dfc, + 0x8a76, 0x9d51, 0x9973, 0x9d4f, 0x997a, 0x9564, 0x99a1, 0x99a5, + 0x99a7, 0x8eed, 0x99ad, 0xc87e, 0x946e, 0x8f70, 0xfad0, 0x99b3, + 0xa053, 0x965c, 0xfd7a, 0x97fe, 0x92bd, 0x97fd, 0x8f64, 0xfcf7, + 0x9562, 0x97cd, 0x9e64, 0x924c, 0x8ec9, 0x99bc, 0x9da5, 0x8f54, + 0x8f7c, 0x8ea2, 0x8f7a, 0x97ae, 0x96c8, 0x99c3, 0x90d6, 0x9cbe, + 0x8f76, 0x9470, 0xfb4b, 0xfdca, 0x8ec7, 0xa0f9, 0x8fa9, 0x99c7, + 0x90d7, 0x9edf, 0x99ce, 0x8fba, 0x8feb, 0x99cf, 0x8fc2, 0x92c9, + 0x97dc, 0x95b3, 0x9c79, 0x95b2, 0x8fdb, 0x9be3, 0x9e7a, 0x9bee, + 0x99de, 0xfafa, 0x8a52, 0x99e1, 0x8a67, 0x8bb5, 0x8aac, 0x99e9, + 0xfbca, 0x97de, 0x95d1, 0x99f5, 0xfc4a, 0x9ba9, 0xfbdc, 0xfe56, + 0x9ea4, 0x9d49, 0x95db, 0x89c5, 0x99f8, 0x9664, 0x9055, 0x96d4, + 0x977c, 0x964d, 0x97e1, 0x9a48, 0x9a49, 0xfe7d, 0x90aa, 0x9a50, + 0x9347, 0x8ed8, 0x90c9, 0x9a55, 0x90bc, 0x9a58, 0x8bb8, 0x90d5, + 0x9641, 0x9a5a, 0x9a5c, 0x97c2, 0x8abb, 0x9baa, 0x90f5, 0x9a60, + 0x9145, 0x9a63, 0x8bb6, 0xfccf, 0x966b, 0x9a6e, 0x914f, 0x9746, + 0xa0e6, 0x92d7, 0x9675, 0x93d4, 0x91bb, 0x9679, 0x9a70, 0x9678, + 0x91cd, 0x9c4a, 0xa06f, 0xa06a, 0x915f, 0x9fa5, 0x89ba, 0x9ecd, + 0x9a79, 0x9dce, 0x9d73, 0x96b9, 0x96bc, 0x9cd1, 0x89b7, 0x9eee, + 0xfb43, 0x9ec9, 0xfbd3, 0x91ae, 0x9d78, 0x9d7b, 0x9eb3, 0x9eb2, + 0x9dd6, 0x994f, 0x89ce, 0x8bc0, 0x9fc4, 0x8bd4, 0xc6bf, 0x8bf9, + 0x8946, 0xc6c0, 0xfae5, 0xc87b, 0x8bc6, 0x9c57, 0x9afb, 0x89d0, + 0x89cf, 0xc6c1, 0x89d1, 0x89e2, 0x927e, 0x9dba, 0xc6c2, 0xfbf8, + 0x8bc7, 0x926b, 0x89d2, 0x9fcf, 0x9da9, 0x89d3, 0x99e2, 0x9267, + 0x92a4, 0x894e, 0x894f, 0x9278, 0x91b6, 0x89d4, 0x9fd2, 0x92a7, + 0x95a2, 0x926e, 0x96ea, 0x926f, 0x92a3, 0x8950, 0xfa57, 0x9866, + 0x89d6, 0x98b2, 0x92ab, 0x96de, 0x92ac, 0x9f6e, 0x8ef2, 0x9f6c, + 0x89d8, 0xfa59, 0x92a8, 0x9163, 0x9f73, 0x92ad, 0x9be9, 0x92a9, + 0x92aa, 0x89d9, 0xfd56, 0x9fa8, 0x92a1, 0x90e3, 0xa0a6, 0x94ab, + 0xfc72, 0x97c4, 0x92ae, 0xfa67, 0x92a2, 0xfa69, 0x9268, 0x8951, + 0xfa6f, 0xfa71, 0x8952, 0x945a, 0xc6c3, 0x89dd, 0xc8a2, 0xc6c4, + 0x9e52, 0x8953, 0x9e55, 0x92ba, 0xc6c5, 0xfa7d, 0xfaa8, 0x9a68, + 0xfa47, 0xfa7e, 0x92bb, 0xfdb6, 0xfaa2, 0xfaa3, 0xfaa4, 0x9bb4, + 0xfaa6, 0x89df, 0xfddb, 0xfaa9, 0x8954, 0xfaab, 0xfc7a, 0x89e0, + 0x9f4f, 0xc87d, 0x89e1, 0xfab0, 0x9fcd, 0xa0e7, 0xfab1, 0x89a6, + 0x9efa, 0xfab2, 0xfab4, 0x92c4, 0x9f6f, 0x8bb0, 0x9fac, 0x89e3, + 0x9bd3, 0x89e4, 0xfab5, 0x9fd5, 0x8955, 0x92c5, 0x8956, 0xfab3, + 0xfab6, 0xfab7, 0x9edc, 0xfbc4, 0x9f71, 0xfaba, 0x92c7, 0xc6c6, + 0x9a4c, 0x89e5, 0x9f7d, 0xa0a9, 0xfac4, 0xc6c7, 0x8957, 0xfaaa, + 0x8958, 0x8be3, 0x8b61, 0x9af1, 0x9eb7, 0xc6c8, 0xfad1, 0xfad2, + 0x9eba, 0xfad4, 0xfad9, 0xfadb, 0x9ce0, 0xfbf7, 0xfbfa, 0x89e7, + 0xa07a, 0xfadc, 0xfadd, 0x89e9, 0xc6c9, 0xfae2, 0x89eb, 0xfae3, + 0x90c8, 0x92da, 0x8959, 0x9cf5, 0x895a, 0xfae7, 0x9fa2, 0xfaea, + 0xfaed, 0x8fad, 0xfb59, 0xfaef, 0x96ef, 0x9dec, 0x9dca, 0xfd6d, + 0x89ec, 0xfb44, 0x9de2, 0x9ec0, 0x9e56, 0x9f79, 0x9ac7, 0xfaf4, + 0x98a1, 0xfaf8, 0x89f0, 0x9e47, 0x9df7, 0x9fd3, 0x9aca, 0x89f1, + 0xfaf9, 0x8e5a, 0x89f2, 0x89f3, 0x925d, 0x8b51, 0x92e0, 0x89f4, + 0x9fd4, 0x8a79, 0x89f5, 0x97a7, 0x93ba, 0x9e58, 0x89f6, 0x9e57, + 0x89f7, 0x8a41, 0x89f8, 0xfaf1, 0x89fa, 0xfb42, 0xfabf, 0xfba3, + 0xfaf7, 0x9e4e, 0x94dc, 0x95da, 0x9df8, 0x9f6a, 0x8ab7, 0xfb46, + 0x8a46, 0xfb47, 0x9148, 0x92de, 0x8b53, 0x9df6, 0x9bda, 0x9d7e, + 0x89fd, 0x99e4, 0x9e43, 0x9de9, 0x8f52, 0x9df5, 0x9df0, 0x99e7, + 0x8bbd, 0x9def, 0x9fb7, 0x9dd0, 0x9feb, 0x8da9, 0x9dcf, 0x98e1, + 0x9de5, 0x9dc8, 0xfb4f, 0x9deb, 0xfb54, 0xfb55, 0x9aa2, 0x8ad6, + 0x9a5f, 0x9ef5, 0x8fb7, 0x9ad2, 0x9e6a, 0x9ee8, 0x8bbf, 0x91c2, + 0x9d62, 0x9260, 0x925e, 0x91c1, 0x8ac5, 0x97a3, 0x8b6c, 0x8d7e, + 0x9c54, 0x9dbd, 0x9cc5, 0x895b, 0xfb5c, 0xfb5b, 0xfb57, 0x98c7, + 0xfb5a, 0x9cee, 0x92e2, 0x94a7, 0x9bd4, 0xfb64, 0xfb76, 0xfb60, + 0x99e5, 0x9ac2, 0x91fb, 0xa073, 0x9f72, 0x9fcc, 0x98a5, 0x92e8, + 0x9bbc, 0x96f3, 0x92e7, 0xfc67, 0x8b7d, 0x9bf4, 0x9ef7, 0x9ec1, + 0x996f, 0x96f1, 0x8e41, 0x954a, 0x97e6, 0x96f5, 0x92e6, 0x9f42, + 0xfb67, 0x99a9, 0xfae6, 0xfb69, 0x97e5, 0x967d, 0xfb6c, 0x99a2, + 0x9abb, 0x9a65, 0x944e, 0xfb6e, 0x99df, 0x98e3, 0x9254, 0x967b, + 0x8aaf, 0x8baf, 0x9ebd, 0x9ee6, 0xfb6f, 0x8ee1, 0x9b7d, 0x9c7e, + 0xf9d9, 0x92ea, 0xfb72, 0xfb71, 0x895c, 0x98f0, 0x96f2, 0xfb74, + 0x8bc1, 0x895d, 0x89de, 0x895e, 0xc6ca, 0xfe42, 0xfb7b, 0x895f, + 0x8960, 0x9bcd, 0x9dd3, 0x984c, 0x9752, 0x95c3, 0x9bb6, 0x9ab9, + 0x97b3, 0x9f74, 0x92f1, 0x97df, 0xfba6, 0xfbab, 0x9877, 0x9854, + 0x95c5, 0x9d55, 0xfbb2, 0x957e, 0x9742, 0x94e6, 0x92f5, 0x92fd, + 0xfba2, 0x9c51, 0x94e9, 0x985c, 0x92f0, 0x944c, 0x916b, 0x8b78, + 0x94e2, 0x984f, 0xfbb5, 0x9271, 0x9365, 0x985b, 0x9850, 0x97bc, + 0x92f3, 0x9340, 0x984d, 0x9572, 0xfdef, 0xfdc1, 0xfbba, 0x92eb, + 0xfc73, 0x97b7, 0xfbb4, 0x90a7, 0x9741, 0x92f4, 0xfbbc, 0x9577, + 0x9ee2, 0x8f78, 0xf9dc, 0x9672, 0x9eb5, 0x964b, 0xa0fa, 0x9575, + 0x90da, 0x9367, 0xfea4, 0x90df, 0x9354, 0x8961, 0x8bb4, 0x9dc0, + 0x8e48, 0xfbc5, 0xfbc7, 0xc6cb, 0xfa79, 0x9e67, 0xfbd2, 0x8962, + 0x8963, 0xfc7d, 0x9f6b, 0xfbcc, 0xfeae, 0xfbd1, 0xfb75, 0xfbd4, + 0xfbd6, 0xfbd8, 0x8b5d, 0x934c, 0x9ae2, 0x8bc9, 0xfbdb, 0x9fc9, + 0x9f44, 0x98ed, 0xfbdd, 0x8df2, 0x8964, 0xfdf2, 0x934d, 0xfbe7, + 0xa0f2, 0x9868, 0x9f58, 0x8d73, 0xfbde, 0xfbdf, 0xfbe3, 0x8da8, + 0xfbe4, 0x9c75, 0x9878, 0x8d60, 0xfbe5, 0x8d61, 0x8d62, 0xa0a1, + 0x9c40, 0x98ad, 0x9eea, 0x9ceb, 0xfbe0, 0x9f51, 0x8d65, 0x9cf1, + 0xfc58, 0x8d66, 0x9654, 0xfbe8, 0xc6cc, 0x9fce, 0xfbfc, 0x9ae4, + 0x9f75, 0xfbf1, 0x8d69, 0x934f, 0x934e, 0xfbf4, 0xc6ce, 0xfbc3, + 0x8965, 0x8d6a, 0x9353, 0x9dfb, 0xfbfd, 0x9059, 0xfc40, 0xfc41, + 0xfc43, 0x9361, 0xfc46, 0x9362, 0x8d6b, 0xfc4c, 0x95b8, 0xc6d0, + 0x8bca, 0x987a, 0xc6d1, 0xfc51, 0xfc54, 0xfaaf, 0x8d6c, 0xfa61, + 0xfc57, 0x9b70, 0xa051, 0x8bcb, 0x936e, 0xfcd5, 0xfca9, 0xfc61, + 0x8966, 0xfacb, 0xf9da, 0x937a, 0xa0e0, 0x936b, 0xfc6b, 0xa0dc, + 0x9468, 0xfc6d, 0x8d71, 0xfd64, 0x99ba, 0x9ad0, 0x9a61, 0xa0e5, + 0xa05b, 0x96ac, 0x9740, 0x9ef1, 0x9f7e, 0x8d72, 0xfc76, 0x96a9, + 0xa06e, 0xfcaa, 0xfbcd, 0xfc74, 0xa074, 0xa071, 0xfc79, 0xfc7c, + 0x9c50, 0x9379, 0x9378, 0xa0dd, 0x8d75, 0x8d76, 0x9374, 0x8d77, + 0xfca5, 0xfca2, 0x90c3, 0xa079, 0x8d79, 0x8bfc, 0xa076, 0x8bcd, + 0x9f5a, 0x9ff4, 0x9fba, 0x8d7a, 0x9e45, 0x93b0, 0xa075, 0x9b46, + 0xfcae, 0xfcb0, 0xfa51, 0x8d7b, 0x8d7c, 0x9ed6, 0x93ac, 0x9f5b, + 0x93a9, 0xa07c, 0xfcb2, 0x8ac1, 0x9fb4, 0xfcac, 0x9e4c, 0x8fc5, + 0x93ad, 0x9dc3, 0x8da2, 0x9d4a, 0xfcb6, 0x8da3, 0x9e4b, 0x9e4d, + 0x8da4, 0x8afd, 0xfcb5, 0xfcc3, 0x93b2, 0x8da5, 0x93a1, 0x8ac6, + 0x8a5b, 0x894d, 0xfed4, 0x8a78, 0x93ab, 0x8da7, 0x9f45, 0x8a56, + 0xfcbf, 0xfcc0, 0x8ee6, 0x8aa4, 0x8943, 0x93f3, 0xfcab, 0x9ea2, + 0x9dc7, 0xc6d2, 0x8bce, 0xfcc5, 0xfccb, 0x93b3, 0xfcca, 0xfcc9, + 0x8dac, 0xfbc6, 0x8967, 0xfccd, 0x9cf3, 0xfcd0, 0x95bb, 0xfcd3, + 0xfcd4, 0x8dae, 0xfcd7, 0x93db, 0xfe63, 0x93d5, 0xfcda, 0x9b71, + 0xfcdd, 0x8daf, 0xfaf2, 0x93d8, 0xfcdf, 0x93d3, 0xfce1, 0x8e76, + 0xfc62, 0x93d1, 0x8db1, 0x9859, 0xfb52, 0xfb53, 0xfb4d, 0x9cbf, + 0x9b72, 0xfb50, 0x93be, 0x9df1, 0xfceb, 0xa0bb, 0x9b7e, 0x8db3, + 0x9ae8, 0x8edc, 0x9cf9, 0xfa50, 0x98e7, 0xfcf3, 0xfcf2, 0x93e5, + 0x9a59, 0x8db5, 0xfd4d, 0xfd5e, 0x8f7d, 0x9547, 0xfcf6, 0x9250, + 0x8968, 0x8db6, 0xfcfb, 0xa07d, 0x98fc, 0x8969, 0xfe4f, 0x9256, + 0xfac9, 0x93e8, 0xfcf8, 0x9ce3, 0xfda9, 0xfc44, 0x9640, 0x8db8, + 0x9b4a, 0x8fb9, 0xfcfe, 0x896a, 0x8db9, 0x917e, 0x93f4, 0xfb7c, + 0x93e7, 0x97ef, 0xfe4a, 0xfd45, 0x96a5, 0xfee0, 0xfd48, 0xfd47, + 0xfef2, 0xfe6a, 0x8dbd, 0x9ba1, 0x9ab7, 0x8efc, 0x9fa1, 0xfd51, + 0xfaad, 0x8dbe, 0x89a4, 0x9ad9, 0xfd4e, 0x8dc0, 0x97f0, 0x93b4, + 0xfd44, 0x9fa7, 0x8dc2, 0x99b6, 0xfd52, 0x8dc1, 0x8e46, 0xa0d1, + 0x9fca, 0x92cf, 0x9cf4, 0x8dc4, 0xfd41, 0x9b4c, 0xfd57, 0xfcef, + 0x9cde, 0xfd42, 0x986c, 0x97f9, 0x9558, 0x985e, 0xfe7b, 0x94cd, + 0x93ee, 0xfd5a, 0x93f5, 0x93ef, 0x8eea, 0x8f5b, 0x8dc6, 0x8dc8, + 0x8dc7, 0x93f7, 0x8dc9, 0xfbf2, 0x9670, 0x8dcb, 0xfd5c, 0x8f65, + 0x8dcd, 0x9da8, 0x94f9, 0x8dce, 0x93ea, 0xfd5f, 0x93f0, 0x9fb6, + 0x8dcf, 0x9763, 0x8dd0, 0x93f1, 0xfd62, 0xfd65, 0x9fdb, 0x93f8, + 0x8bf7, 0xfd66, 0x8bcf, 0x8dd1, 0x8dd2, 0xfd71, 0xfd6f, 0x8dd3, + 0x9fe7, 0x90bd, 0x9fd0, 0x8bd0, 0xfd72, 0x9cae, 0x8bd1, 0x8adb, + 0xfae4, 0x95ce, 0xfd76, 0xfb62, 0x8dd4, 0xfd78, 0x8ee3, 0x9076, + 0x98c6, 0x8dd5, 0x97d1, 0x9eb6, 0xfac7, 0xa042, 0x9873, 0x9ffc, + 0x8dd7, 0x92fb, 0x8dd8, 0x944f, 0x8dd9, 0x896b, 0x97ce, 0xfaf3, + 0xfdae, 0xfbaf, 0x92b7, 0x8dda, 0x9c5a, 0xfdad, 0x8ddc, 0x9444, + 0x8ddd, 0xa0d6, 0x97d5, 0x944a, 0x944d, 0x97cb, 0x8dde, 0x8ddf, + 0x8de0, 0xfef9, 0xfdc0, 0xfcf9, 0xfb7e, 0x92b3, 0xfdaf, 0x8de1, + 0x95d3, 0x89c1, 0xfd68, 0x9cb7, 0x8de3, 0xfac0, 0x8de5, 0xfa64, + 0x8947, 0x8de4, 0x8de7, 0x8de8, 0xfdc7, 0xfdb0, 0x9445, 0x97d6, + 0xfcc6, 0x9844, 0x8de9, 0x8dea, 0xfe50, 0xfdcc, 0x9da7, 0xfdcd, + 0xfdcf, 0x95d2, 0x8ded, 0xfcba, 0xfdc5, 0xfdd2, 0x9cdc, 0x95cf, + 0x8dee, 0xfdd4, 0x96ec, 0x96eb, 0x90b6, 0xfdc3, 0x98ab, 0x96ee, + 0x8df4, 0xfde0, 0x8df6, 0x8df7, 0x8ffa, 0x97d0, 0x8bd2, 0x8df8, + 0x90d9, 0xfaf0, 0xfde1, 0x8df9, 0xfde3, 0x8dfa, 0xfb63, 0x90a6, + 0x9970, 0x91eb, 0x9770, 0x986f, 0xfde2, 0x98f2, 0x9afc, 0x896c, + 0xfdfd, 0x995e, 0x95bd, 0xfde4, 0x91e6, 0xfde5, 0xfde6, 0xfde7, + 0x9454, 0x99b8, 0x97e9, 0x9346, 0x9863, 0x95bc, 0xfded, 0xfdf7, + 0x9870, 0x96f6, 0x8ea9, 0x9451, 0x8e43, 0x8b5a, 0xfdee, 0xfdf0, + 0xfdf4, 0x9bf5, 0x977e, 0x9bd5, 0x9ac3, 0x97c8, 0xa0db, 0x91d0, + 0x9fe4, 0x8fdd, 0x91e9, 0x98e0, 0x92ca, 0x9857, 0xfdeb, 0x9b49, + 0x9d76, 0x9eaf, 0x9ccc, 0xfdea, 0x8df1, 0xfdfb, 0x8e53, 0xfacf, + 0x96f9, 0x98bf, 0x9e49, 0x9bca, 0xfdfe, 0x92dc, 0xfe41, 0x91cc, + 0x91e2, 0xfe44, 0x8bd3, 0xfe47, 0xfe48, 0x9455, 0xfe4b, 0xfe4c, + 0x8dbf, 0x9e78, 0xfe51, 0x9456, 0x9d61, 0x9457, 0x9966, 0x8bd5, + 0xa069, 0x98b4, 0xa049, 0xa04c, 0x9e65, 0x98b5, 0xfe58, 0x9975, + 0xfe53, 0xa065, 0xfe59, 0x98b7, 0x98b8, 0x98ba, 0x98bb, 0x9fbc, + 0xa04a, 0x9ec7, 0x98ae, 0x92d6, 0xfae1, 0x91d4, 0xfade, 0xfe5b, + 0xfe5e, 0xfbd7, 0xfe5a, 0x94c5, 0xfaca, 0x98c1, 0x975c, 0xfe74, + 0x9773, 0xfa46, 0x9764, 0xfe68, 0x964e, 0x9765, 0x89a1, 0x95fa, + 0x92d4, 0xfe69, 0xfb45, 0x98c8, 0x90ef, 0x98c9, 0x98ca, 0x946d, + 0x94b7, 0xfe6c, 0x946b, 0x92fc, 0x95eb, 0xfe73, 0x976e, 0xfe5f, + 0xfdbd, 0x92d5, 0xfeb9, 0xfe71, 0xfbbb, 0x947a, 0x95fb, 0xfe77, + 0xfe79, 0xfe75, 0x945d, 0xfe7c, 0x9344, 0x8ea6, 0x92d3, 0x94b8, + 0xfc71, 0x975e, 0xfea7, 0x946a, 0x93e3, 0x98cf, 0xa0d9, 0xa0bf, + 0xa04d, 0xa0b8, 0xa0ce, 0xa0b7, 0xfea9, 0x89c3, 0xfeab, 0x9df4, + 0x896d, 0x9c7b, 0x98d2, 0x9fa9, 0xfeb2, 0xfeb1, 0x97d9, 0xa0c4, + 0x9476, 0x9978, 0xfeb3, 0x98d3, 0xfeb4, 0x98d4, 0x9fb9, 0x9471, + 0x98d5, 0xfeb8, 0xc6d4, 0xfeba, 0x9e5c, 0xfebb, 0xa044, 0x98d7, + 0x98d8, 0xfebc, 0x9ffe, 0xfebd, 0x9ddd, 0x9ee1, 0x98da, 0x9ddf, + 0xfebf, 0xfebe, 0x9eeb, 0x9e59, 0xa05c, 0xfec0, 0x9477, 0x98dc, + 0xfec1, 0x98de, 0xfec3, 0xfec8, 0xfec9, 0xfeca, 0xfecb, 0x9fc2, + 0x98c4, 0x94b0, 0x94b1, 0xfed1, 0xa0c1, 0xfed2, 0xa0cd, 0xfed3, + 0x98e5, 0xfed6, 0x91e4, 0x8fc7, 0x94ae, 0x8a4f, 0x94b2, 0x8fd4, + 0x98ea, 0xfed8, 0x9de0, 0x98ee, 0x95c4, 0xfce8, 0x98ef, 0xfad8, + 0xfedc, 0xa0ae, 0x9d4c, 0x98f1, 0x98f3, 0x94c1, 0x98f5, 0xfa4f, + 0x96e2, 0x9450, 0x96a2, 0x98f6, 0x96e5, 0x98f7, 0xa046, 0x96e3, + 0x98f8, 0x9ee4, 0xf9d6, 0x94c3, 0x94c2, 0xfee1, 0xfee9, 0x96e4, + 0x89ac, 0x96db, 0xfee2, 0x94c4, 0xfee3, 0xfee7, 0x9ffb, 0x93c9, + 0x94e8, 0xfb56, 0x90c5, 0xa0a8, 0xfee5, 0x98fd, 0x98fb, 0xfee8, + 0x8ebf, 0x8bd8, 0xfef7, 0x8f68, 0x94c6, 0x9dea, 0xfc69, 0x9cda, + 0xfef3, 0x9c72, 0xfef0, 0x89c9, 0x9941, 0x9942, 0xfef5, 0x91d7, + 0x94cc, 0xfef8, 0x97a8, 0xfefc, 0xfdbf, 0xfefe, 0x96d1, 0x94d5, + 0x94d0, 0x9944, 0xa0b3, 0x94cf, 0x9ffa, 0x91e5, 0x9c6a, 0x8e49, + 0x8e4c, 0x8e4d, 0x9a73, 0x9947, 0x8e50, 0x8e4f, 0x9949, 0x8e51, + 0x8e52, 0x9ab2, 0x89a5, 0x994c, 0x9ff8, 0x8e56, 0x994d, 0x91ca, + 0x8e57, 0x94e1, 0x9047, 0x8fd8, 0x8e58, 0x94eb, 0x8e5c, 0x9553, + 0x9fe5, 0x9f56, 0x954f, 0x8e5e, 0x996a, 0x9c64, 0x9cd9, 0x8e5d, + 0x9950, 0x9951, 0x8e62, 0x9952, 0x8e68, 0x8e61, 0x9f59, 0x8bb3, + 0x9f5d, 0x8e66, 0x8e6e, 0x9f64, 0x9953, 0xfab8, 0x9954, 0x8e70, + 0x9f61, 0x8e72, 0xa06b, 0x9f40, 0x94ed, 0x94ee, 0x9fbd, 0x8e7b, + 0x9957, 0x94f7, 0x9f5f, 0x8e73, 0x9f62, 0x94f6, 0x9958, 0x8e75, + 0xf9db, 0x9072, 0x94f8, 0x995a, 0xa0b0, 0x8e79, 0x8e78, 0x94f3, + 0x98af, 0xa0b2, 0x8e7a, 0x995c, 0x8e7c, 0x8e7d, 0x8bd9, 0x89a2, + 0x9ed7, 0xa0b6, 0x9e42, 0x8ea4, 0x8ea7, 0x9542, 0x987d, 0x9755, + 0x8ea8, 0x8eaa, 0x89a3, 0x9960, 0x9962, 0x94fc, 0x9961, 0x94fa, + 0x8eae, 0x8eb2, 0x8eb0, 0x9963, 0x97aa, 0x94fb, 0x8ebb, 0x9876, + 0x8ea1, 0x8eb7, 0x9da6, 0x9eb0, 0x8eb8, 0x9d70, 0x896e, 0x896f, + 0x8970, 0x8971, 0x8972, 0x8973, 0x8974, 0x8975, 0x8ebc, 0x8ebd, + 0x8ebe, 0x9dd1, 0x94fd, 0x8bd7, 0x8bda, 0xa0e2, 0x9fe9, 0xfda8, + 0x8ae7, 0x8ec2, 0x8ec4, 0x9964, 0x9965, 0x954e, 0x98b3, 0x8ecb, + 0x8bdf, 0x8ece, 0x8ecf, 0x9968, 0x9969, 0x996b, 0x8ed1, 0x996c, + 0x8ed4, 0x8ed5, 0x996d, 0xa0be, 0x8ed6, 0xa0bc, 0xa0b5, 0xa0b4, + 0x8be0, 0x89b5, 0x8edd, 0x9e5d, 0x9971, 0x89ae, 0x9de8, 0x9565, + 0x9972, 0x8b5c, 0x89b1, 0xa0c0, 0x8edf, 0x9566, 0x9974, 0x9976, + 0x9977, 0x9979, 0x9dda, 0x8ee0, 0x935c, 0x9de6, 0x8b5f, 0x9563, + 0x9567, 0x9de3, 0x997c, 0x997d, 0x997e, 0x8b5b, 0x99a3, 0x99a4, + 0x99a6, 0x99a8, 0x8abe, 0x9e61, 0x99aa, 0xa0c8, 0x99ab, 0xfec4, + 0x98c2, 0x8ee8, 0xa0ba, 0xfd77, 0x8eee, 0x9ebf, 0x89c2, 0x99ac, + 0x956b, 0x956c, 0x99af, 0x994a, 0x8976, 0x8f48, 0xfbee, 0x99ae, + 0x8efb, 0x8b52, 0x99b0, 0x8977, 0x8f41, 0x99b1, 0x8f49, 0xfa4d, + 0x9de4, 0xfbe9, 0x9b54, 0x99b2, 0x9e68, 0x8f4a, 0x8f42, 0x8f51, + 0x9846, 0x99b4, 0x8ef5, 0xfd55, 0x9ccd, 0x8978, 0x8f53, 0x8f6f, + 0x8e63, 0x8f56, 0xfe76, 0x9fc6, 0xfaac, 0x8f58, 0x9848, 0x99b7, + 0x9665, 0xfa6c, 0x9de7, 0x9e62, 0x96cc, 0x8e67, 0xfc75, 0x987e, + 0xfdb9, 0x97fc, 0x98f9, 0x8f66, 0x956e, 0x9245, 0x8f60, 0x9ed1, + 0xfecd, 0x99b9, 0x8f62, 0x974c, 0x91c7, 0x955f, 0x99bb, 0x8e6d, + 0x8f71, 0x94cb, 0x95b1, 0x9af2, 0x96c3, 0x99bd, 0xa0cf, 0x8f6d, + 0x99be, 0x8ef4, 0x8f72, 0x95e4, 0x99bf, 0x9242, 0xfba5, 0x99c0, + 0xfdb4, 0x8f77, 0x99c1, 0xfab9, 0x8f40, 0xfa44, 0x99c2, 0x8f5c, + 0x99c4, 0x99c5, 0x8f7b, 0x8fa3, 0x99c6, 0x96cd, 0x96c7, 0x8fa5, + 0xfabb, 0x9570, 0x9368, 0x8f7e, 0x8faa, 0xa050, 0x90d3, 0x9556, + 0x8fb8, 0x99c8, 0x8faf, 0x99c9, 0x9579, 0x9f49, 0x99ca, 0x99cb, + 0x9dd5, 0x8fb0, 0xfa7a, 0x9e5f, 0x99cd, 0xa0c9, 0x9adb, 0xa0c6, + 0x8fb4, 0xa0d7, 0xa0c7, 0xa043, 0x8fb5, 0x8fb2, 0xa061, 0x9e5e, + 0x8fb6, 0x9fe8, 0x9cb2, 0x957c, 0x9fc7, 0x8fbb, 0x8fbc, 0x8fec, + 0x8fc0, 0x936a, 0x8be4, 0x9c7c, 0x95a1, 0xfeec, 0x95a3, 0x8fc1, + 0xa052, 0x99d0, 0x8fc3, 0x8fc4, 0x95a4, 0x8fc6, 0x9e60, 0xf9d8, + 0x95a5, 0x9cb3, 0x99d1, 0xfef1, 0x99d2, 0x9cc2, 0x99d3, 0x95a7, + 0x95a9, 0x95a6, 0x9c5d, 0x98e2, 0x8fc9, 0xa0c2, 0x8fca, 0x99d4, + 0xa0b9, 0x9b58, 0x8fcd, 0xa0d4, 0x8fce, 0x8be5, 0x8979, 0x8fd0, + 0x95b6, 0x99d6, 0x95e5, 0x99d7, 0x95b5, 0xa0ca, 0x9ffd, 0xa058, + 0x8fd6, 0x99d8, 0x8fd3, 0x8fe5, 0x8fe9, 0x99d9, 0x927c, 0x9c45, + 0x8fde, 0x8fdf, 0xa04b, 0x8fe2, 0xa0cc, 0x8fe3, 0x8fe4, 0x9bc4, + 0x9bfc, 0x964c, 0x9af6, 0x8fe7, 0x8fe8, 0x8be7, 0x897a, 0x897b, + 0x99da, 0x8fed, 0x95c0, 0xa0cb, 0x9e48, 0x99db, 0x8ff3, 0x8ff9, + 0x95c1, 0xa04e, 0x99dc, 0xa064, 0x8ff7, 0x89b0, 0xa048, 0x8ffb, + 0x8ff6, 0x9ddc, 0x99dd, 0x8be8, 0x92c1, 0x9fd6, 0xa0d2, 0x9040, + 0x8ac4, 0x99e0, 0x9ff0, 0x9ff3, 0x9dbf, 0x9ff6, 0x95c8, 0x9e5a, + 0x99e3, 0x8a4a, 0x9ff1, 0x8aa7, 0x99e6, 0x9ff7, 0x9fed, 0x8a5c, + 0x9dae, 0x95c9, 0x9048, 0x99e8, 0x9049, 0x90b1, 0x904a, 0x99ea, + 0x9bd1, 0x99eb, 0x99ec, 0x99ed, 0x99ee, 0x904c, 0x904d, 0x95cb, + 0x97e2, 0x95cc, 0x9f78, 0x897c, 0x897d, 0x897e, 0x995d, 0x9b5a, + 0x9050, 0x9054, 0xc6d6, 0x9aa8, 0x99ef, 0xfeeb, 0x9da3, 0x9da1, + 0x9943, 0x9945, 0x9d7d, 0x99f0, 0x99f1, 0x99f2, 0x9d60, 0xa0a3, + 0x905b, 0x9edb, 0x9d79, 0x99f3, 0x9062, 0x9f55, 0x9bf9, 0x9065, + 0x96e0, 0x98be, 0x9068, 0x906c, 0x95d8, 0x906a, 0x9fb2, 0x9fae, + 0x9fb0, 0x89ad, 0x906e, 0x9e71, 0x9e4a, 0x9fdc, 0x89ab, 0x9fb8, + 0x9070, 0x8b63, 0x95dc, 0x9071, 0xfc5e, 0x8949, 0x965b, 0x94a6, + 0x8fd5, 0x9e73, 0x9075, 0x99f7, 0x99f9, 0x9663, 0x95b9, 0x94d4, + 0xfcfa, 0x9077, 0x90ab, 0x9d4d, 0x99fa, 0x92e3, 0x97bb, 0x9078, + 0x99fb, 0x97e0, 0x96dc, 0x9ca8, 0x9772, 0x9440, 0x92f2, 0x99fd, + 0x99fc, 0xf9d7, 0x964a, 0x96d8, 0x99fe, 0x904b, 0xfa41, 0x9a40, + 0x975b, 0x9a41, 0x91dd, 0x93fc, 0x9a42, 0x9a43, 0x9659, 0x9a44, + 0x9051, 0x94bf, 0x90a2, 0x9cab, 0x9776, 0xfc55, 0xfe45, 0x94a8, + 0x9a45, 0xfa4b, 0x9de1, 0x96d9, 0x9774, 0xfdf5, 0x92e5, 0x9645, + 0x91da, 0x90a3, 0xa05f, 0x90af, 0x97bf, 0x914c, 0x967a, 0x91de, + 0x9a46, 0xfeb0, 0x9779, 0x946c, 0x9858, 0x9266, 0x93fb, 0x9a47, + 0x9749, 0x9748, 0x934a, 0x9ce2, 0x9264, 0x91df, 0xfb79, 0x96d7, + 0x9343, 0xfdcb, 0xfe7a, 0x91db, 0x97af, 0x95dd, 0x9348, 0x9a4b, + 0xfc45, 0x9a4d, 0x91bc, 0x90e2, 0x90b4, 0x95e1, 0x9a4e, 0x9a4f, + 0xfe40, 0xfe43, 0x96dd, 0x9a51, 0x96a7, 0x90b0, 0x9c4e, 0x9443, + 0x8eba, 0x9a52, 0xfcc1, 0x8be9, 0x9caf, 0x8bfd, 0x9abc, 0x9ab8, + 0x9aae, 0x9aa7, 0x9a53, 0x9d74, 0x8bea, 0x8beb, 0x90b2, 0x95e9, + 0x95e8, 0x95e6, 0x90b5, 0x9a54, 0x90b3, 0x95e7, 0x8b50, 0x8bec, + 0x9a56, 0x8bfb, 0x9a57, 0xa0aa, 0x9fa6, 0x99cc, 0x9c59, 0x99b5, + 0x90be, 0x9faf, 0x95f2, 0x90bf, 0x90c1, 0xfee4, 0x90c4, 0x90c7, + 0x92e4, 0x9f52, 0x90db, 0xa066, 0x90d2, 0x90d4, 0x9a5b, 0x95fd, + 0x8bc4, 0x90de, 0x9ce4, 0x90e1, 0x9e46, 0x9651, 0xfb58, 0x90e6, + 0x9650, 0x90e7, 0x90e8, 0x9a5d, 0x9f7a, 0x9b5c, 0x9f7c, 0xfc52, + 0x90e9, 0x90ea, 0x9a5e, 0x9f76, 0x90eb, 0x90ec, 0x8bee, 0x90ee, + 0x91c6, 0x90f2, 0xfcbc, 0x8a74, 0x9657, 0x9cef, 0x9fdf, 0x90f7, + 0x90f6, 0x9b5e, 0x90f8, 0x90f9, 0xfa6a, 0x8bef, 0x9fe0, 0x9142, + 0x9a62, 0x9569, 0x9144, 0x9143, 0x9141, 0x8bf0, 0x9660, 0x8bf1, + 0x99f6, 0x9149, 0x914a, 0x914b, 0x9a64, 0x8abf, 0x9a66, 0x9a67, + 0x9a69, 0x9a6a, 0x9652, 0x914d, 0x9666, 0x9f7b, 0x9a6b, 0xa06c, + 0x9667, 0x9a6c, 0x9a6d, 0x8bf2, 0x966a, 0xfcea, 0x966c, 0x91c4, + 0x9677, 0x99f4, 0x9a6f, 0x9fab, 0x8ec1, 0x9555, 0x9152, 0x9153, + 0x9155, 0x955d, 0x9671, 0x9c6d, 0x9673, 0x9154, 0x9a71, 0x9156, + 0x966d, 0x9557, 0x89c6, 0x89c7, 0x8a6a, 0x8b57, 0x9fe1, 0x9b5f, + 0xa05d, 0x915b, 0x915c, 0x915e, 0x9f5c, 0x9f57, 0x9f65, 0x9a72, + 0x9160, 0x9f5e, 0x9161, 0x9164, 0x9f41, 0x9169, 0x9168, 0x9a74, + 0x96b2, 0x9a75, 0xfda5, 0x9ee9, 0x8bba, 0x916d, 0xa060, 0x9fde, + 0x9fc3, 0x96b5, 0xa067, 0x96b3, 0x9a76, 0x95d5, 0x9eca, 0x9a77, + 0x9a78, 0x9170, 0x916f, 0x9fa3, 0x9171, 0x96b1, 0x9f63, 0x9f67, + 0x8bb9, 0x9a7a, 0x8b56, 0x9ada, 0x96b0, 0x9a7e, 0x9dde, 0x96ad, + 0x96ae, 0x9ea1, 0x9e50, 0x96af, 0x8bf4, 0x9fa4, 0x96bd, 0x96f4, + 0x96b8, 0xfaa1, 0x91a7, 0xa05e, 0x9a7d, 0x8948, 0x9eb1, 0x9ddb, + 0x95bf, 0x8a73, 0x9efe, 0x917a, 0x917b, 0x9aa3, 0x96c2, 0x9f77, + 0x9aa4, 0x9aa5, 0x91a1, 0x89b8, 0x9173, 0x9aa6, 0x89bd, 0x89b9, + 0x917d, 0x96bb, 0x9ff2, 0x8bf5, 0x9aa9, 0x9f54, 0x9fe3, 0x9eed, + 0x91aa, 0x91ab, 0xa070, 0x9f6d, 0x91ac, 0x91ad, 0xa0fd, 0x9fe2, + 0x91af, 0x9e41, 0x9aaa, 0x91b0, 0x9aab, 0x9aac, 0x9a4a, 0x91b2, + 0x8bf6, 0x9aad, 0x89b6, 0x9aaf, 0x9ab0, 0x9ab1, 0x9aa1, 0x91b9, + 0x91ba, 0x91be, 0xa041, 0x8bb7, 0x91c0, 0x9ab3, 0x91c3, 0xa0fc, + 0x9fee, 0x9f69, 0x91c8, 0x91c9, 0x8de6, 0x91cb, 0x89c8, 0x8daa, + 0x9fdd, 0xc8a1, 0xc8a3, 0x8bf8, 0xc8d0, 0xc8cf, 0xc6e4, 0xc6e5, + 0xc8cd, 0xc8ce, 0xf9fe, 0x9c71, 0x9375, 0x9376, 0x9548, 0x8ec6, + 0x8bc5, 0x8bfa, 0xc87c, 0x9ab4, 0x884e, 0x884b, 0xc87a, 0x8848, + 0x8847, 0xa0f6, 0x8845, 0x8853, 0xfcad, 0x8aad, 0x9272, 0xfc47, + 0x94df, 0x9fd1, 0xfbcb, 0x927d, 0x98a4, 0x94e7, 0x90cb, 0x927b, + 0x94d8, 0xfc5f, 0xfa54, 0x9ab5, 0x96da, 0x9279, 0xfa74, 0x9275, + 0x8dfb, 0x8a49, 0x92df, 0x9b7c, 0xfa63, 0xfa60, 0x926d, 0xfa62, + 0x9ab6, 0x976b, 0xfd6a, 0xfd54, 0x9273, 0x97d8, 0x9fbb, 0x9342, + 0x9276, 0xfa65, 0x926c, 0xfa6e, 0x9ee0, 0x92c0, 0x92bf, 0x92be, + 0x9aba, 0x8ab3, 0x9775, 0xfa40, 0xfa76, 0xfbd0, 0xfa7b, 0xfe6d, + 0x9bb3, 0x89cc, 0x9abe, 0xfa42, 0x92bc, 0x945c, 0x9bb5, 0x9abf, + 0x98a7, 0x97a4, 0x90fd, 0xfc7b, 0x9ac0, 0x92c3, 0x8aaa, 0x9bd0, + 0x9550, 0x92c6, 0x98a6, 0x9546, 0xfd63, 0xfac2, 0x9ec3, 0x89b2, + 0x9c66, 0x9053, 0x97c1, 0x9ac4, 0x9ac5, 0x8eef, 0xfae9, 0x9262, + 0x8af7, 0x9ac6, 0x92e1, 0x9ac9, 0xfac6, 0x97a5, 0x9acb, 0xfa72, + 0x8a5e, 0x94e0, 0x92cc, 0x8ae5, 0xfe5c, 0x9acc, 0x9df9, 0x8a43, + 0x8aa6, 0x9acd, 0x9ace, 0xfaee, 0x9bcc, 0x9acf, 0x9ad1, 0x9dfa, + 0x9d7c, 0x9ad3, 0x97a6, 0x995f, 0xfbf6, 0x9fc5, 0x8a59, 0x8b6b, + 0x9ad4, 0x9ad5, 0x97a2, 0x8a44, 0x9f4a, 0x90a1, 0xfda4, 0x8a64, + 0x8af2, 0x8af8, 0x9dd8, 0x94d6, 0xfafe, 0xfba7, 0x9ad6, 0x9f4d, + 0xfaf6, 0x8a57, 0x8b43, 0x8b44, 0x8ab6, 0x8ac0, 0x9e54, 0x9ad7, + 0x9ad8, 0x9adc, 0x8aca, 0x9ea8, 0x9263, 0x9add, 0x8b65, 0x8b6f, + 0x8b7e, 0x8f43, 0x92d0, 0x8af4, 0x9dbe, 0x9ae1, 0xfcde, 0x9dfd, + 0x8b66, 0x8b70, 0x8b75, 0x8ae4, 0x8ba4, 0x8aed, 0x8a5d, 0x8b48, + 0x9ded, 0x9e40, 0x8aef, 0x8af6, 0x9e76, 0x9ee3, 0x9ade, 0x8dfe, + 0xfafc, 0x9cb1, 0x9e77, 0x8b64, 0x8b67, 0x974b, 0x9653, 0x9ae0, + 0x8b4a, 0x8af1, 0x8ad7, 0xa0ab, 0x8ab5, 0x8a5f, 0x8aee, 0x9adf, + 0x8afe, 0x8a58, 0x8ba3, 0x8ba7, 0x9ae3, 0x9261, 0x9dd7, 0x9e7d, + 0x9ea7, 0x9eab, 0x9042, 0x8b79, 0x8b7a, 0x9ae6, 0x9ae5, 0x8a7e, + 0x9e44, 0x9ae7, 0x8a7c, 0x8b71, 0x9ae9, 0x9aea, 0x9aeb, 0x8abd, + 0xfb4e, 0x9aed, 0x8af9, 0x9e63, 0x8b49, 0x8ace, 0x8b6e, 0x8ae8, + 0x9aee, 0x92ce, 0x8a5a, 0x8b7b, 0x8b7c, 0x9aef, 0x9af0, 0x8afa, + 0x8941, 0x8b72, 0x8af3, 0x8ba8, 0x9eae, 0x9e72, 0xfb73, 0xfb5f, + 0x90ba, 0x91fe, 0x9ef6, 0x97ed, 0x9af3, 0xa0ee, 0x967c, 0x9345, + 0x986e, 0xfa56, 0x9af5, 0xfc4b, 0x9af4, 0xfede, 0xfcb7, 0x97f1, + 0x97c7, 0x9ccb, 0x9240, 0x9ce8, 0x91fd, 0x974e, 0xfb68, 0x976c, + 0x97e8, 0xfb6a, 0x8b74, 0x8ee7, 0xfdc8, 0x9241, 0x96a1, 0x8ef3, + 0x9af7, 0x8fa6, 0xfad6, 0x9cc7, 0xfad7, 0x9af8, 0xfba1, 0x8ec5, + 0xfba4, 0xfbc2, 0x9ac1, 0x91fa, 0xfedb, 0x97ab, 0x9147, 0xfbb1, + 0x8fea, 0x94d2, 0xfe61, 0xface, 0x92ed, 0x91f3, 0x93c6, 0x935a, + 0xfafb, 0x92ef, 0xfac8, 0x9847, 0x9366, 0x9855, 0x96e6, 0x9f43, + 0x9faa, 0x94da, 0x92ee, 0xfcaf, 0xfbfb, 0x8ef9, 0x91f6, 0x9364, + 0x94f5, 0x9cb6, 0xfbad, 0x984e, 0x8f44, 0x96fd, 0x9af9, 0x9afa, + 0x9769, 0x95d4, 0x984b, 0xfbaa, 0x987c, 0x91ea, 0x9daf, 0x9dc5, + 0x91f1, 0x8eb1, 0x97a9, 0xfbac, 0xfcb8, 0x9cb9, 0xfbb0, 0xfcd2, + 0x93cb, 0x9afd, 0x91f4, 0x8bac, 0xa055, 0x9574, 0x95be, 0x97ad, + 0x8ee9, 0x92f8, 0x97be, 0x916c, 0x94aa, 0xfc63, 0x9dc6, 0x97b5, + 0x92b8, 0x91ef, 0xfea6, 0x9760, 0x9358, 0x9576, 0x8fac, 0x91ec, + 0x97b4, 0x91f7, 0x974a, 0xfb49, 0x9578, 0x93bc, 0x91d6, 0x9355, + 0x9356, 0x9851, 0x8ff8, 0xfbc0, 0x93f2, 0x90d0, 0x9c44, 0x9255, + 0x9363, 0x91a5, 0xa0ed, 0xfd6b, 0x9afe, 0x9351, 0xfa78, 0xfea8, + 0x9350, 0xfa4c, 0x92f7, 0x9b40, 0xfbce, 0x9b41, 0xfead, 0xfbd5, + 0x8bc2, 0x9a7c, 0x9b42, 0x9b43, 0x9e79, 0xfbd9, 0x9b44, 0xa0a7, + 0x9bf3, 0x935e, 0x89cb, 0x9f53, 0x93d7, 0xfbe1, 0xfed0, 0xfbe2, + 0xfce3, 0x9074, 0xfbe6, 0x9bb7, 0x9b45, 0x9b47, 0x9f50, 0x9b48, + 0xfc5b, 0x98a9, 0x9cfd, 0x884c, 0x9b4b, 0xfbec, 0x9ba8, 0x8ad5, + 0xfa73, 0xfd59, 0x91a2, 0xfbed, 0x9ca9, 0x8aa8, 0x9bc3, 0x8ae1, + 0x9b4e, 0x95d0, 0x905f, 0x97ee, 0xfc4e, 0x9b4f, 0x9b50, 0x9ec6, + 0xfc50, 0xfd73, 0xfda7, 0x9da2, 0xfa58, 0xfa5e, 0xa059, 0xfa75, + 0xfbbe, 0x9ca2, 0x9370, 0x9371, 0x9377, 0xfeef, 0x936d, 0xfc5d, + 0x90b8, 0x8afc, 0xfb41, 0x9e6b, 0x94e3, 0x8ee2, 0x8ed7, 0x9c4d, + 0x96a3, 0x9b51, 0x8ac3, 0x96aa, 0xfc68, 0x8b6d, 0xfd67, 0x8ae9, + 0xfca1, 0x936c, 0x9b52, 0xfe70, 0xfca8, 0xfce9, 0x9cb4, 0x8aea, + 0x9b53, 0x9b55, 0x96ab, 0xfca7, 0x9b56, 0x8abc, 0x8acb, 0x9b57, + 0x89cd, 0x9b59, 0x9b5b, 0x93a5, 0x9b5d, 0x9e4f, 0x93a3, 0x8a7b, + 0x8b42, 0x9750, 0x8fb3, 0x8a50, 0x9b60, 0x8b45, 0x8b46, 0x9dfe, + 0x9b62, 0x937b, 0x93b1, 0x8a60, 0x8ad8, 0x9b63, 0x8a69, 0x8a47, + 0x8acc, 0x937c, 0x9b65, 0x9b66, 0x8a72, 0x8a7a, 0x93af, 0x8ab0, + 0x9b68, 0x9ea3, 0xfaec, 0x8b77, 0x9b67, 0x8b59, 0xfcb1, 0xfcbb, + 0x9b69, 0x93a8, 0x8ae0, 0x9e51, 0x8f5f, 0x9b6a, 0x9b6b, 0x97ec, + 0x9b6c, 0xfe4e, 0xfdc2, 0x9b6d, 0x9167, 0xfccc, 0x93b6, 0x90e4, + 0x90e5, 0x9ef2, 0x93ca, 0x8bbc, 0x8f46, 0x93cf, 0xfcdb, 0xfcdc, + 0x93c0, 0xfce6, 0x96e7, 0xfcd8, 0xfcd9, 0xfda6, 0x93ce, 0x95f1, + 0x9ce9, 0xfce4, 0x94af, 0xfa77, 0x93cc, 0x905a, 0x93bf, 0xfb51, + 0x93b9, 0xfed7, 0x93b7, 0x93d9, 0x93bb, 0x93da, 0x98a3, 0x90d1, + 0x9b6e, 0xfa70, 0x9beb, 0x9b6f, 0xfcfc, 0x8b40, 0xa07b, 0x97f7, + 0x93e2, 0xfcd6, 0x9559, 0x93a6, 0xfd40, 0x935f, 0x97f2, 0x9c76, + 0x8ef8, 0x8f47, 0x9b74, 0x92b4, 0x91ed, 0x96d2, 0xfd46, 0x8f4f, + 0x9549, 0x9b75, 0xfa5c, 0x9b79, 0xfd4b, 0x96d3, 0xfd58, 0x945f, + 0xa0f5, 0x9243, 0x97fa, 0x9dd9, 0x97f4, 0x924d, 0xfd5b, 0x9b7a, + 0x9ed5, 0xfaae, 0x9cc9, 0x9258, 0x8ec8, 0x94b4, 0x93e1, 0x93df, + 0xfcf0, 0x93ec, 0x97f6, 0x96cf, 0x93de, 0x8acf, 0x9ba2, 0xfd69, + 0x9352, 0x98a2, 0xfd6e, 0xfa7c, 0x93fa, 0x907c, 0x8f67, 0x9db7, + 0xa0e9, 0xfa4e, 0xfda1, 0x9e74, 0x9fbf, 0x9ecb, 0x9bb9, 0x9dd4, + 0x97b9, 0x8ef1, 0x957b, 0x9ed2, 0x9753, 0x96a4, 0x8fbe, 0x94d9, + 0x9058, 0xfd79, 0xfd7b, 0x8eda, 0x8efa, 0x9ba5, 0x9ed9, 0x97d4, + 0x90bb, 0xfdbc, 0xfdc6, 0x9248, 0x92b5, 0x9dc1, 0x92b9, 0x92a6, + 0x8f4b, 0x9ba6, 0x92b6, 0x8e40, 0x9ed8, 0x945e, 0x985f, 0x94ce, + 0x924a, 0xfd70, 0x9467, 0x8dec, 0x9bd8, 0x9448, 0xfac1, 0x9cf7, + 0xfdbe, 0x8fda, 0xfdd9, 0xfc7e, 0x93f9, 0xfa43, 0xfaeb, 0xfac3, + 0x97d3, 0x95f9, 0x9c48, 0xfdd8, 0xa0d8, 0xfdd7, 0xfb4a, 0x9baf, + 0x944b, 0xfdc9, 0x8eac, 0xfdb2, 0x925a, 0xfcbd, 0x92d9, 0xfdd5, + 0x92dd, 0x9259, 0x96ba, 0x925b, 0x9bab, 0xfdda, 0xfdde, 0xfdd3, + 0xfdd6, 0xfddc, 0xfddd, 0x90fe, 0xfea1, 0x8bad, 0x9cd8, 0x9e6d, + 0xfd7c, 0xfb61, 0x96f8, 0x96f0, 0xfcf4, 0xfe60, 0x9852, 0x964f, + 0x916e, 0x986d, 0x9864, 0x9453, 0xfdec, 0xfb78, 0x95ba, 0x985d, + 0x92f9, 0x985a, 0xfdf6, 0x93d0, 0x9862, 0x9bad, 0x974f, 0x9bae, + 0x9452, 0x9bb0, 0x91d2, 0x97ea, 0xfb6b, 0x91b1, 0xfdf3, 0x92cb, + 0x9bb1, 0xfcec, 0x986b, 0x9751, 0x9871, 0x95ef, 0x9ef3, 0x91e8, + 0x9bba, 0xfb4c, 0x926a, 0xfdf8, 0x9861, 0x91e7, 0x93ed, 0x9744, + 0x91e1, 0xfbf5, 0x9869, 0x8a62, 0x9bbb, 0x9c55, 0x8e77, 0x8ab2, + 0x9ebc, 0x93e6, 0x93a2, 0x9bbd, 0x94b3, 0x937d, 0x9e66, 0x9459, + 0x9bbf, 0x9458, 0x9ea5, 0x9bc7, 0xfe54, 0x8e74, 0x8bd6, 0x94b6, + 0xfd74, 0x98c0, 0x94a5, 0x9bc8, 0x95ed, 0xfd7e, 0xfbeb, 0xfd7d, + 0x976f, 0x9461, 0x9fc1, 0x95d7, 0xfa52, 0x9c58, 0x9f68, 0x9be7, + 0xfcce, 0x96e8, 0xfa49, 0x97a1, 0x954d, 0x9ef8, 0xfe49, 0x91ce, + 0x9771, 0xfdb1, 0xfc6e, 0x9cf2, 0x93b8, 0x9043, 0x9759, 0x94d7, + 0xfe66, 0x947d, 0xfc6f, 0x9246, 0xfa6d, 0x8ef7, 0xfbb7, 0x947c, + 0x92cd, 0x97b2, 0xfe65, 0x967e, 0x9758, 0x9b77, 0x91cf, 0x94a4, + 0x9cad, 0x8bab, 0x96d5, 0xfcb3, 0x93ae, 0x976d, 0x9446, 0x95f7, + 0x9c46, 0x955b, 0x91d1, 0x94f4, 0xfe67, 0x92a5, 0xfedf, 0x9bc9, + 0xfced, 0xfdfa, 0xfcc8, 0xfe62, 0x91fc, 0xfe6b, 0xfdf9, 0xfcc7, + 0x914e, 0x9cb8, 0x9767, 0x95ee, 0x9bb2, 0x9460, 0x94a2, 0x9875, + 0x97ac, 0x91d3, 0x987b, 0x8eeb, 0x976a, 0x965e, 0x97eb, 0x9ff9, + 0x95f8, 0xfea2, 0x8fe6, 0xfe7e, 0x9da4, 0x9768, 0x8eec, 0x94bd, + 0x945b, 0x9cf6, 0xfaa7, 0x9bd9, 0xfa5d, 0x9656, 0x9762, 0x94ba, + 0xa04f, 0x92d8, 0x9bcb, 0x94bb, 0x9d5f, 0x90cf, 0x9465, 0x9f4c, + 0x90d8, 0x9ebe, 0xfb6d, 0x95ca, 0x9dc2, 0x97f8, 0x8ffc, 0x9473, + 0x9474, 0xfeb7, 0x8a4b, 0x8a55, 0x8b69, 0x8adc, 0x8b76, 0x9bce, + 0x8a68, 0xa0f8, 0x98df, 0xfeb5, 0x9bcf, 0x96fb, 0x9bfb, 0x9ece, + 0x8ee5, 0x9e7b, 0x9bd2, 0x8aa5, 0xfece, 0x8a45, 0x9dfc, 0xfecf, + 0x8ba5, 0x8aec, 0xfce0, 0x94ad, 0xfed5, 0x94ac, 0xfc5a, 0x9bd6, + 0x8a6f, 0x8ba9, 0x8e5f, 0x9dcb, 0xfce7, 0x9bd7, 0x93c8, 0x91f0, + 0x8fe0, 0x9bdb, 0x90ed, 0x9bdc, 0xa0ec, 0x98fa, 0x9be0, 0x93c7, + 0x9249, 0x96e1, 0x9be2, 0x9be4, 0x8fe1, 0x9be5, 0x94c0, 0x93c3, + 0x93c5, 0x9079, 0x977b, 0x907e, 0xfee6, 0xfe46, 0x9db8, 0x9270, + 0x95a8, 0x94c8, 0x98b9, 0x9140, 0xfcbe, 0x9157, 0x8bb2, 0xfadf, + 0x9be6, 0x9643, 0x8e44, 0x9c4f, 0xfef4, 0x9be8, 0x93dc, 0x966f, + 0x8e4a, 0x9bed, 0x92f6, 0x9db9, 0x8e4e, 0xfbcf, 0x9ec2, 0x94e5, + 0x9bf0, 0x94e4, 0x9551, 0x8bbb, 0x9bf1, 0x94f0, 0x8e64, 0x94ea, + 0x8f61, 0x9b64, 0x8e5b, 0x9bf2, 0x9fbe, 0x9dc9, 0x8e6c, 0x8f73, + 0x8f75, 0x8e71, 0x8e60, 0x8e6a, 0x9552, 0x9554, 0x8ad4, 0x9dbb, + 0x9543, 0x92fe, 0x94f2, 0x94f1, 0xa0ea, 0x9dd2, 0xa0b1, 0x91f8, + 0x9462, 0x9ba4, 0x8ead, 0x9ead, 0x96d0, 0xfeee, 0x8ab4, 0x9757, + 0x8a77, 0x9bf7, 0x8eb5, 0xa06d, 0x8eb6, 0x9756, 0x9540, 0xa0f3, + 0x94be, 0x9bfa, 0xfddf, 0x9dbc, 0x94fe, 0x8bdb, 0xa0fe, 0x8ec0, + 0x9f47, 0x8bde, 0xa0fb, 0x8ec3, 0x9649, 0xfec2, 0x954c, 0x9bfd, + 0x90cc, 0x9c60, 0x954b, 0x9bfe, 0x9c70, 0x9c43, 0x9c47, 0x8ecc, + 0x8e54, 0x8ee4, 0x9c49, 0x8b5e, 0x955e, 0x955c, 0x9c4b, 0x8be1, + 0x8ed9, 0x9db4, 0x925f, 0x9c4c, 0x8aa1, 0x8edb, 0x9c56, 0x8aa2, + 0x9754, 0x9c5e, 0x9ed4, 0x9568, 0xa0c3, 0x8ae6, 0xa0f7, 0x9c61, + 0x9c5f, 0xfc4d, 0x9e5b, 0x9e69, 0x9c63, 0xfec7, 0xfec6, 0x9c67, + 0x9c69, 0x8be2, 0x9165, 0x9ce7, 0x8a54, 0x9c6c, 0x9c6e, 0xfe5d, + 0x9c73, 0x956a, 0x956d, 0x8ef0, 0x8f4d, 0x8ef6, 0xfabc, 0xfbda, + 0x8b4c, 0xfd75, 0x9bdd, 0xfaf5, 0x9c74, 0x9545, 0x96c6, 0x8f6a, + 0x8f4e, 0x9c78, 0xfa55, 0x97e4, 0x9c41, 0x925c, 0x96fa, 0xfb66, + 0x8e65, 0x9849, 0xfba8, 0x9842, 0x9c7a, 0x97fb, 0x90ca, 0x9c5b, + 0x974d, 0x8ed3, 0x9561, 0x9f4b, 0x9fb5, 0x93d2, 0xfdaa, 0x9840, + 0x9146, 0x9867, 0xfa5a, 0xfba9, 0x9841, 0xfcfd, 0xfdab, 0x91bd, + 0x8f4c, 0x96c9, 0x8f55, 0xfbae, 0x956f, 0x9c7d, 0xa0f0, 0x946f, + 0xfdac, 0x96cb, 0x96ce, 0xa056, 0x9ce1, 0x96c4, 0x8f5e, 0x8f6c, + 0x8ea3, 0xfbb3, 0xfc53, 0xfdb3, 0x8f6b, 0x96ca, 0x8f79, 0x9e6f, + 0xa0c5, 0xfc78, 0x8e42, 0x8f5a, 0x90c2, 0x8ea5, 0x9061, 0x924f, + 0x9373, 0xfdb5, 0xfecc, 0xfbbd, 0x9843, 0x96c5, 0x89bc, 0x9ca3, + 0x924b, 0x984a, 0x8fa4, 0xa0f1, 0x9efb, 0x9cd2, 0x8fa7, 0xfc5c, + 0x9845, 0x9046, 0xfefa, 0x9560, 0x9f48, 0x9247, 0x90fb, 0x9ca4, + 0x9571, 0x9ca6, 0x9ca7, 0x9caa, 0x9ed3, 0x9e70, 0x9cac, 0x8fae, + 0x957d, 0x9cb0, 0x97b6, 0xa0bd, 0x8adf, 0x9eaa, 0x8fbd, 0x8fbf, + 0x9369, 0x9ba7, 0xc8a4, 0xfeea, 0x9be1, 0x8b41, 0x9db6, 0xa0eb, + 0x9ba3, 0x8ba1, 0x8fc8, 0x894c, 0x9860, 0x94c7, 0x8b58, 0x95ab, + 0x95aa, 0x9cc3, 0x9cc4, 0x93d6, 0x9dac, 0x8be6, 0x8a71, 0x8fd1, + 0x99d5, 0x90f4, 0x8aa3, 0x9cce, 0x9cd4, 0x9cd5, 0xfbc8, 0x9db3, + 0xfc70, 0x8fd7, 0x9b73, 0xfa5b, 0x8fd2, 0x9064, 0x98b6, 0x9668, + 0x9cd6, 0x98bd, 0x8fdc, 0xfef6, 0x8fd9, 0x9541, 0x97f3, 0x9bf8, + 0x9e6c, 0x8ff2, 0x8fee, 0x9cd7, 0x9e6e, 0x8a40, 0x8fef, 0x8ff4, + 0x8ff5, 0x95c2, 0x986a, 0x97cf, 0x9ee5, 0x9e7c, 0x9041, 0x9cdb, + 0x9441, 0x9ce6, 0x9db0, 0x9cea, 0x9ced, 0x9cfa, 0x8b62, 0x8a4e, + 0x9cca, 0x8a66, 0x9cfb, 0x9cfc, 0x9cfe, 0x8a53, 0x9ce5, 0x9d40, + 0x9d41, 0x9045, 0x8b73, 0x97ca, 0x9d42, 0x8a61, 0x8bae, 0x8ad2, + 0x8ba2, 0x9df2, 0x9d43, 0x9cdf, 0x9d44, 0x8eca, 0x904e, 0x8eb3, + 0x9ff5, 0x9d45, 0x904f, 0x9d47, 0x89ca, 0x9cb5, 0xfbfe, 0x905e, + 0x9063, 0x9057, 0x9066, 0x9bc0, 0xfce5, 0x9162, 0x9067, 0x8fa1, + 0x8fa2, 0x9d48, 0xfad3, 0x905d, 0x90b9, 0x906b, 0x9069, 0xfe57, + 0xfe55, 0x9073, 0x9bef, 0x9cf0, 0x9d4b, 0xfed9, 0xfeda, 0x91e0, + 0x91d8, 0x9646, 0x9360, 0xfa53, 0x9cd3, 0x9d4e, 0xfb40, 0x8de2, + 0x9442, 0x9056, 0x9865, 0xfa4a, 0x9d50, 0x9d52, 0x95af, 0x975a, + 0x9349, 0x9747, 0xa0f4, 0x9778, 0x8fcf, 0xfc60, 0xfc56, 0x91dc, + 0x9661, 0x92ec, 0x935d, 0x8ede, 0x96fe, 0xfd4f, 0x95de, 0x98b0, + 0xa040, 0x97bd, 0x977d, 0x97f5, 0x9bac, 0xfada, 0x92c2, 0x97b1, + 0x907b, 0x93fe, 0x947b, 0x9777, 0xfabe, 0xfd43, 0x90c6, 0x90a4, + 0x90a8, 0x94a9, 0x90a9, 0x95e0, 0x907d, 0x9265, 0xfdba, 0x93c4, + 0xfeed, 0x9dab, 0xa0e3, 0x9648, 0x9d53, 0x8aa9, 0x9bc5, 0x965d, + 0x975f, 0x965f, 0x966e, 0xfb5d, 0x9db1, 0xfea3, 0x9db2, 0x95ae, + 0xfca3, 0xa0a2, 0x9655, 0x9d54, 0x9341, 0x95ad, 0x91d5, 0x977a, + 0xfdfc, 0x8e47, 0x93fd, 0x90a5, 0x90ac, 0x95ac, 0x90ae, 0xfea5, + 0x9d56, 0x97e3, 0x95e2, 0x9466, 0x9647, 0x91b8, 0x9cec, 0x90ad, + 0x95e3, 0x8b4f, 0x8ae3, 0x8b4d, 0x95ea, 0x8b4e, 0x8bed, 0x91d9, + 0xa0a4, 0x95f5, 0x95f4, 0x9fb3, 0xfeaf, 0xfe72, 0x927a, 0xfeac, + 0x95f3, 0x9d58, 0x9372, 0x91c5, 0x9642, 0x90cd, 0x95fe, 0x9159, + 0x9c65, 0x97cc, 0x90ce, 0x9d59, 0xfcf5, 0xfefd, 0x9d5b, 0x9d5c, + 0x937e, 0x98ac, 0x9d5e, 0xfdd0, 0xfd60, 0x9ccf, 0x90dd, 0x90e0, + 0x90f3, 0x98b1, 0x90f0, 0x93bd, 0x95b7, 0x9f46, 0x8e4b, 0x9658, + 0x8a4c, 0x9d63, 0x9ecf, 0x9d65, 0x9d66, 0x965a, 0x9d64, 0x8a6c, + 0x8ad9, 0x9d67, 0x8a70, 0x8bf3, 0x9150, 0x9cc1, 0x9d68, 0x93a7, + 0x9674, 0xa0ef, 0x9151, 0x96c1, 0x9676, 0x9d69, 0xfca4, 0x9d6a, + 0x924e, 0x9d6b, 0x9bc1, 0x9d6c, 0x8a65, 0x915d, 0x9d6d, 0x915a, + 0x9cc0, 0x916a, 0x9d6e, 0x9ea6, 0x9dcd, 0x9d6f, 0x89bb, 0x9ef9, + 0x96b4, 0x9172, 0x9ec8, 0x8b55, 0x9d71, 0x9d72, 0x9ecc, 0x9174, + 0x9ed0, 0x905c, 0x8ed2, 0x91a8, 0x9177, 0x96bf, 0x96c0, 0x8fb1, + 0x96b7, 0x9178, 0x89be, 0x917c, 0xfb77, 0x9175, 0x91a3, 0x9176, + 0x96be, 0x9179, 0x96b6, 0x91a4, 0x91a6, 0x9d75, 0x9052, 0xa045, + 0x91a9, 0x98aa, 0x8baa, 0x9cdd, 0x9d77, 0x8940, 0x9eec, 0x93aa, + 0x9478, 0x9d7a, 0x8ac9, 0x8b4b, 0x9fec, 0x8ae2, 0x9e75, 0x9874, + 0x9ac8, 0xa047, 0x8bc3, 0xfc48, 0xfc77, 0x9c52, 0x8efd, 0x8fa8, + 0x957a, 0x8ff0, +}; + +static const Summary16 hkscs1999_uni2indx_page00[45] = { + /* 0x0000 */ + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0100 }, { 1, 0x0000 }, + { 1, 0x0703 }, { 6, 0x000c }, { 8, 0x3703 }, { 15, 0x170c }, + /* 0x0100 */ + { 21, 0x0003 }, { 23, 0x0c0c }, { 27, 0x0800 }, { 28, 0x0000 }, + { 28, 0x3800 }, { 31, 0x0008 }, { 32, 0x0800 }, { 33, 0x0000 }, + { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, + { 33, 0x6000 }, { 35, 0x1557 }, { 43, 0x0000 }, { 43, 0x0000 }, + /* 0x0200 */ + { 43, 0x0000 }, { 43, 0x0000 }, { 43, 0x0000 }, { 43, 0x0000 }, + { 43, 0x0000 }, { 43, 0x0813 }, { 47, 0x0402 }, { 49, 0x0020 }, + { 50, 0x0408 }, { 52, 0x0000 }, { 52, 0x0000 }, { 52, 0x0000 }, + { 52, 0x0040 }, +}; +static const Summary16 hkscs1999_uni2indx_page04[6] = { + /* 0x0400 */ + { 53, 0x0002 }, { 54, 0xffff }, { 70, 0xffff }, { 86, 0xffff }, + { 102, 0xffff }, { 118, 0x0002 }, +}; +static const Summary16 hkscs1999_uni2indx_page1e[13] = { + /* 0x1e00 */ + { 119, 0x0000 }, { 119, 0x0000 }, { 119, 0x0000 }, { 119, 0x0000 }, + { 119, 0x0000 }, { 119, 0x0000 }, { 119, 0x0000 }, { 119, 0x0000 }, + { 119, 0x0000 }, { 119, 0x0000 }, { 119, 0x0000 }, { 119, 0xc000 }, + { 121, 0x0003 }, +}; +static const Summary16 hkscs1999_uni2indx_page21[15] = { + /* 0x2100 */ + { 123, 0x0000 }, { 123, 0x0040 }, { 124, 0x0002 }, { 125, 0x0000 }, + { 125, 0x0000 }, { 125, 0x0000 }, { 125, 0x0000 }, { 125, 0x03ff }, + { 135, 0x0000 }, { 135, 0x0000 }, { 135, 0x0000 }, { 135, 0x0300 }, + { 137, 0x0000 }, { 137, 0x0000 }, { 137, 0x0080 }, +}; +static const Summary16 hkscs1999_uni2indx_page23[40] = { + /* 0x2300 */ + { 138, 0x0000 }, { 138, 0x0000 }, { 138, 0x0000 }, { 138, 0x0000 }, + { 138, 0x0000 }, { 138, 0x0000 }, { 138, 0x0000 }, { 138, 0x0000 }, + { 138, 0x0000 }, { 138, 0x0000 }, { 138, 0x0000 }, { 138, 0x0000 }, + { 138, 0x0000 }, { 138, 0x0c00 }, { 140, 0x0000 }, { 140, 0x0000 }, + /* 0x2400 */ + { 140, 0x0000 }, { 140, 0x0000 }, { 140, 0x0000 }, { 140, 0x0000 }, + { 140, 0x0000 }, { 140, 0x0000 }, { 140, 0x03ff }, { 150, 0x3ff0 }, + { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, + { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, + /* 0x2500 */ + { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, + { 160, 0x0000 }, { 160, 0xffff }, { 176, 0xffff }, { 192, 0x0001 }, +}; +static const Summary16 hkscs1999_uni2indx_page27[4] = { + /* 0x2700 */ + { 193, 0x0000 }, { 193, 0x0000 }, { 193, 0x0000 }, { 193, 0x2000 }, +}; +static const Summary16 hkscs1999_uni2indx_page2e[68] = { + /* 0x2e00 */ + { 194, 0x0000 }, { 194, 0x0000 }, { 194, 0x0000 }, { 194, 0x0000 }, + { 194, 0x0000 }, { 194, 0x0000 }, { 194, 0x0000 }, { 194, 0x0000 }, + { 194, 0x35d1 }, { 202, 0x3020 }, { 205, 0x54a0 }, { 210, 0x5040 }, + { 213, 0xb440 }, { 218, 0x40c0 }, { 221, 0x0008 }, { 222, 0x0000 }, + /* 0x2f00 */ + { 222, 0x0000 }, { 222, 0x0000 }, { 222, 0x0000 }, { 222, 0x0008 }, + { 223, 0x0000 }, { 223, 0x0000 }, { 223, 0x0000 }, { 223, 0x0000 }, + { 223, 0x0000 }, { 223, 0x0000 }, { 223, 0x0000 }, { 223, 0x0000 }, + { 223, 0x0000 }, { 223, 0x0000 }, { 223, 0x0000 }, { 223, 0x0000 }, + /* 0x3000 */ + { 223, 0x00e0 }, { 226, 0x0000 }, { 226, 0x0000 }, { 226, 0x0000 }, + { 226, 0xfffe }, { 241, 0xffff }, { 257, 0xffff }, { 273, 0xffff }, + { 289, 0xffff }, { 305, 0x780f }, { 313, 0xfffe }, { 328, 0xffff }, + { 344, 0xffff }, { 360, 0xffff }, { 376, 0xffff }, { 392, 0x707f }, + /* 0x3100 */ + { 402, 0x0000 }, { 402, 0x0000 }, { 402, 0x0000 }, { 402, 0x0000 }, + { 402, 0x0000 }, { 402, 0x0000 }, { 402, 0x0000 }, { 402, 0x0000 }, + { 402, 0x0000 }, { 402, 0x0000 }, { 402, 0x0000 }, { 402, 0x0000 }, + { 402, 0xffff }, { 418, 0x0000 }, { 418, 0x0000 }, { 418, 0x0000 }, + /* 0x3200 */ + { 418, 0x0000 }, { 418, 0x0000 }, { 418, 0x0000 }, { 418, 0x0002 }, +}; +static const Summary16 hkscs1999_uni2indx_page34[1724] = { + /* 0x3400 */ + { 419, 0x0000 }, { 419, 0x0000 }, { 419, 0x0000 }, { 419, 0x0020 }, + { 420, 0x1001 }, { 422, 0x0000 }, { 422, 0x0010 }, { 423, 0x6408 }, + { 427, 0x0000 }, { 427, 0x0048 }, { 429, 0x8020 }, { 431, 0x1000 }, + { 432, 0x0102 }, { 434, 0x8000 }, { 435, 0x0010 }, { 436, 0x0800 }, + /* 0x3500 */ + { 437, 0x0040 }, { 438, 0x0000 }, { 438, 0x0000 }, { 438, 0x4000 }, + { 439, 0x0000 }, { 439, 0x000a }, { 441, 0x2002 }, { 443, 0x0185 }, + { 447, 0x0010 }, { 448, 0x0180 }, { 450, 0x2022 }, { 453, 0x8000 }, + { 454, 0x44a2 }, { 459, 0x2844 }, { 463, 0x0000 }, { 463, 0x480e }, + /* 0x3600 */ + { 468, 0x0200 }, { 469, 0x0500 }, { 471, 0x2008 }, { 473, 0x4220 }, + { 476, 0x4380 }, { 480, 0x8000 }, { 481, 0x0000 }, { 481, 0x0400 }, + { 482, 0x0002 }, { 483, 0x0400 }, { 484, 0x1420 }, { 487, 0x1223 }, + { 492, 0x01ba }, { 498, 0x2058 }, { 502, 0x0066 }, { 506, 0x0020 }, + /* 0x3700 */ + { 507, 0x250a }, { 512, 0x1000 }, { 513, 0x302c }, { 518, 0x040d }, + { 522, 0x0009 }, { 524, 0x0000 }, { 524, 0x8004 }, { 526, 0x0000 }, + { 526, 0x0000 }, { 526, 0x0080 }, { 527, 0x0001 }, { 528, 0x4200 }, + { 530, 0x0000 }, { 530, 0x0000 }, { 530, 0x0000 }, { 530, 0x0904 }, + /* 0x3800 */ + { 533, 0x8000 }, { 534, 0x0200 }, { 535, 0x2001 }, { 537, 0x0140 }, + { 539, 0x0000 }, { 539, 0x0000 }, { 539, 0x0008 }, { 540, 0x0000 }, + { 540, 0x0000 }, { 540, 0x0000 }, { 540, 0x0001 }, { 541, 0x0000 }, + { 541, 0x1008 }, { 543, 0x0002 }, { 544, 0x0000 }, { 544, 0x0400 }, + /* 0x3900 */ + { 545, 0x0100 }, { 546, 0x0010 }, { 547, 0x0080 }, { 548, 0x8004 }, + { 550, 0x2000 }, { 551, 0x0000 }, { 551, 0x0008 }, { 552, 0x0000 }, + { 552, 0x0601 }, { 555, 0x0a04 }, { 558, 0x0012 }, { 560, 0x0100 }, + { 561, 0x0000 }, { 561, 0x1000 }, { 562, 0x1024 }, { 565, 0x4900 }, + /* 0x3a00 */ + { 568, 0x004a }, { 571, 0x0180 }, { 573, 0x0600 }, { 575, 0x0010 }, + { 576, 0x0800 }, { 577, 0x5084 }, { 581, 0x00c0 }, { 583, 0x0000 }, + { 583, 0x0000 }, { 583, 0x0080 }, { 584, 0x0800 }, { 585, 0x2000 }, + { 586, 0x0000 }, { 586, 0x4000 }, { 587, 0x0001 }, { 588, 0x0805 }, + /* 0x3b00 */ + { 591, 0x4000 }, { 592, 0x0200 }, { 593, 0x0804 }, { 595, 0x0200 }, + { 596, 0x0004 }, { 597, 0x0100 }, { 598, 0x0001 }, { 599, 0x1806 }, + { 603, 0x0001 }, { 604, 0x0240 }, { 606, 0x0002 }, { 607, 0x5000 }, + { 609, 0x0014 }, { 611, 0x2080 }, { 613, 0x1000 }, { 614, 0x001c }, + /* 0x3c00 */ + { 617, 0x2000 }, { 618, 0x0122 }, { 621, 0x0000 }, { 621, 0x0000 }, + { 621, 0x0000 }, { 621, 0x0010 }, { 622, 0x0000 }, { 622, 0x0000 }, + { 622, 0x0000 }, { 622, 0x0000 }, { 622, 0x0000 }, { 622, 0x0000 }, + { 622, 0x2800 }, { 624, 0x1042 }, { 627, 0x8800 }, { 629, 0x0000 }, + /* 0x3d00 */ + { 629, 0x0000 }, { 629, 0x2008 }, { 631, 0x0000 }, { 631, 0x0804 }, + { 633, 0x5040 }, { 636, 0x8002 }, { 638, 0x8604 }, { 642, 0x2020 }, + { 644, 0x8420 }, { 647, 0x0002 }, { 648, 0x2020 }, { 650, 0x8010 }, + { 652, 0x30c0 }, { 656, 0x0808 }, { 658, 0x0980 }, { 661, 0x3088 }, + /* 0x3e00 */ + { 665, 0x0040 }, { 666, 0x0000 }, { 666, 0x0000 }, { 666, 0x0000 }, + { 666, 0x0109 }, { 669, 0x0020 }, { 670, 0x0000 }, { 670, 0x0010 }, + { 671, 0x0000 }, { 671, 0x0000 }, { 671, 0x2700 }, { 675, 0x8102 }, + { 678, 0x1484 }, { 682, 0x44c3 }, { 688, 0x0a86 }, { 693, 0x9419 }, + /* 0x3f00 */ + { 699, 0x4051 }, { 703, 0x0000 }, { 703, 0x0000 }, { 703, 0x0000 }, + { 703, 0x0000 }, { 703, 0x0308 }, { 706, 0x0008 }, { 707, 0x1000 }, + { 708, 0x0000 }, { 708, 0x0008 }, { 709, 0x0000 }, { 709, 0x0000 }, + { 709, 0x0001 }, { 710, 0x1080 }, { 712, 0x2020 }, { 714, 0x0600 }, + /* 0x4000 */ + { 716, 0x0010 }, { 717, 0x2000 }, { 718, 0x0000 }, { 718, 0x0200 }, + { 719, 0x0020 }, { 720, 0x0088 }, { 722, 0x8424 }, { 726, 0x0000 }, + { 726, 0x0000 }, { 726, 0x0000 }, { 726, 0x0100 }, { 727, 0x8800 }, + { 729, 0x0100 }, { 730, 0x8100 }, { 732, 0x0000 }, { 732, 0x0400 }, + /* 0x4100 */ + { 733, 0x4218 }, { 737, 0x0000 }, { 737, 0x0000 }, { 737, 0x0004 }, + { 738, 0x0000 }, { 738, 0x0000 }, { 738, 0x5080 }, { 741, 0x8000 }, + { 742, 0x0000 }, { 742, 0x0001 }, { 743, 0x0000 }, { 743, 0x0004 }, + { 744, 0x8410 }, { 747, 0x0800 }, { 748, 0x8000 }, { 749, 0x0200 }, + /* 0x4200 */ + { 750, 0x0000 }, { 750, 0x0002 }, { 751, 0x0000 }, { 751, 0x0000 }, + { 751, 0x0001 }, { 752, 0x0000 }, { 752, 0x0401 }, { 754, 0x0400 }, + { 755, 0x1000 }, { 756, 0x0010 }, { 757, 0x0000 }, { 757, 0x1220 }, + { 760, 0x0000 }, { 760, 0x0000 }, { 760, 0x0000 }, { 760, 0x1810 }, + /* 0x4300 */ + { 763, 0x0000 }, { 763, 0x0000 }, { 763, 0x0800 }, { 764, 0x0000 }, + { 764, 0x0000 }, { 764, 0x0000 }, { 764, 0x4000 }, { 765, 0x0000 }, + { 765, 0x0000 }, { 765, 0x0080 }, { 766, 0x0000 }, { 766, 0x0400 }, + { 767, 0x0002 }, { 768, 0x8200 }, { 770, 0x2000 }, { 771, 0x0004 }, + /* 0x4400 */ + { 772, 0x0006 }, { 774, 0x0008 }, { 775, 0x2020 }, { 777, 0x0000 }, + { 777, 0x0000 }, { 777, 0x0000 }, { 777, 0x0000 }, { 777, 0x0400 }, + { 778, 0x8000 }, { 779, 0x8002 }, { 781, 0x0005 }, { 783, 0x0081 }, + { 785, 0x4021 }, { 788, 0xa000 }, { 790, 0x1e10 }, { 795, 0x0010 }, + /* 0x4500 */ + { 796, 0x0a18 }, { 800, 0x2040 }, { 802, 0x4080 }, { 804, 0xa808 }, + { 808, 0x0008 }, { 809, 0x1026 }, { 813, 0x0404 }, { 815, 0x0080 }, + { 816, 0x0020 }, { 817, 0x0000 }, { 817, 0x0000 }, { 817, 0x0000 }, + { 817, 0x0000 }, { 817, 0x0000 }, { 817, 0x0200 }, { 818, 0x0000 }, + /* 0x4600 */ + { 818, 0x8040 }, { 820, 0x00a0 }, { 822, 0x0000 }, { 822, 0x0000 }, + { 822, 0x0000 }, { 822, 0x0800 }, { 823, 0x0000 }, { 823, 0x0400 }, + { 824, 0x0001 }, { 825, 0x0000 }, { 825, 0x0000 }, { 825, 0x0000 }, + { 825, 0x8000 }, { 826, 0x0001 }, { 827, 0x0000 }, { 827, 0x0020 }, + /* 0x4700 */ + { 828, 0x0000 }, { 828, 0x0108 }, { 830, 0x0000 }, { 830, 0x0000 }, + { 830, 0x4000 }, { 831, 0x0000 }, { 831, 0x0000 }, { 831, 0x1000 }, + { 832, 0x0000 }, { 832, 0x0100 }, { 833, 0x0040 }, { 834, 0x0000 }, + { 834, 0x0000 }, { 834, 0x0020 }, { 835, 0x2000 }, { 836, 0x0010 }, + /* 0x4800 */ + { 837, 0x0801 }, { 839, 0x0000 }, { 839, 0x0000 }, { 839, 0x0080 }, + { 840, 0x0000 }, { 840, 0x2000 }, { 841, 0x0000 }, { 841, 0x0002 }, + { 842, 0x0000 }, { 842, 0x0800 }, { 843, 0x6000 }, { 845, 0x0000 }, + { 845, 0x0000 }, { 845, 0x2001 }, { 847, 0x2000 }, { 848, 0x0408 }, + /* 0x4900 */ + { 850, 0x0040 }, { 851, 0x4002 }, { 853, 0x2420 }, { 856, 0x5020 }, + { 859, 0x0020 }, { 860, 0x000a }, { 862, 0x0420 }, { 864, 0x0004 }, + { 865, 0x0200 }, { 866, 0x0000 }, { 866, 0x0082 }, { 868, 0x0000 }, + { 868, 0x0000 }, { 868, 0x8000 }, { 869, 0x00a0 }, { 871, 0x0000 }, + /* 0x4a00 */ + { 871, 0x8000 }, { 872, 0x2000 }, { 873, 0x0010 }, { 874, 0x0020 }, + { 875, 0x0000 }, { 875, 0x0000 }, { 875, 0x0000 }, { 875, 0x0000 }, + { 875, 0x0000 }, { 875, 0x0040 }, { 876, 0x0000 }, { 876, 0x0110 }, + { 878, 0x0000 }, { 878, 0x0002 }, { 879, 0x0010 }, { 880, 0x8000 }, + /* 0x4b00 */ + { 881, 0x0000 }, { 881, 0x0200 }, { 882, 0x1000 }, { 883, 0x0080 }, + { 884, 0x0000 }, { 884, 0x0000 }, { 884, 0x8000 }, { 885, 0x4805 }, + { 889, 0x4000 }, { 890, 0x20c9 }, { 895, 0x0000 }, { 895, 0x6000 }, + { 897, 0x0001 }, { 898, 0x0000 }, { 898, 0x0000 }, { 898, 0x0000 }, + /* 0x4c00 */ + { 898, 0x4090 }, { 901, 0x0000 }, { 901, 0x0000 }, { 901, 0x4800 }, + { 903, 0x0000 }, { 903, 0x0800 }, { 904, 0x2000 }, { 905, 0x2000 }, + { 906, 0x0000 }, { 906, 0x0000 }, { 906, 0x4010 }, { 908, 0x0081 }, + { 910, 0x2000 }, { 911, 0x0000 }, { 911, 0x2002 }, { 913, 0x0000 }, + /* 0x4d00 */ + { 913, 0x0200 }, { 914, 0x0001 }, { 915, 0x0000 }, { 915, 0x0010 }, + { 916, 0x0000 }, { 916, 0x0000 }, { 916, 0x0000 }, { 916, 0x0000 }, + { 916, 0x0000 }, { 916, 0x1002 }, { 918, 0x0000 }, { 918, 0x0000 }, + { 918, 0x0000 }, { 918, 0x0000 }, { 918, 0x0000 }, { 918, 0x0000 }, + /* 0x4e00 */ + { 918, 0x0010 }, { 919, 0x1400 }, { 921, 0x1512 }, { 926, 0xa0c0 }, + { 930, 0x0200 }, { 931, 0x0c00 }, { 933, 0x0400 }, { 934, 0x0100 }, + { 935, 0x02a3 }, { 940, 0x0500 }, { 942, 0x0001 }, { 943, 0x9880 }, + { 947, 0x4000 }, { 948, 0x0000 }, { 948, 0x4c00 }, { 951, 0x0100 }, + /* 0x4f00 */ + { 952, 0x0008 }, { 953, 0x0400 }, { 954, 0x0300 }, { 956, 0x0284 }, + { 959, 0x0824 }, { 962, 0x0000 }, { 962, 0x0000 }, { 962, 0x0004 }, + { 963, 0x0400 }, { 964, 0x0000 }, { 964, 0x0904 }, { 967, 0x2001 }, + { 969, 0x1100 }, { 971, 0x0000 }, { 971, 0x0030 }, { 973, 0x2204 }, + /* 0x5000 */ + { 976, 0x0108 }, { 978, 0x0000 }, { 978, 0x4000 }, { 979, 0x0010 }, + { 980, 0x0000 }, { 980, 0x0140 }, { 982, 0x1040 }, { 984, 0x0000 }, + { 984, 0x0102 }, { 986, 0x0001 }, { 987, 0x0040 }, { 988, 0x0000 }, + { 988, 0x2000 }, { 989, 0x8201 }, { 992, 0x0002 }, { 993, 0x1010 }, + /* 0x5100 */ + { 995, 0x6002 }, { 998, 0x0000 }, { 998, 0x0800 }, { 999, 0x0000 }, + { 999, 0x0000 }, { 999, 0x0040 }, { 1000, 0x0401 }, { 1002, 0x0210 }, + { 1004, 0x0144 }, { 1007, 0x1440 }, { 1010, 0x0980 }, { 1013, 0x013c }, + { 1018, 0x8288 }, { 1022, 0x880e }, { 1027, 0x2014 }, { 1030, 0x5010 }, + /* 0x5200 */ + { 1033, 0x0824 }, { 1036, 0x8000 }, { 1037, 0x00c1 }, { 1040, 0x1010 }, + { 1042, 0x0000 }, { 1042, 0x0280 }, { 1044, 0x0101 }, { 1046, 0x0208 }, + { 1048, 0x8000 }, { 1049, 0x0411 }, { 1052, 0x0112 }, { 1055, 0x0220 }, + { 1057, 0x1020 }, { 1059, 0x0003 }, { 1061, 0x0003 }, { 1063, 0x0200 }, + /* 0x5300 */ + { 1064, 0x0002 }, { 1065, 0x0000 }, { 1065, 0x1080 }, { 1067, 0x090c }, + { 1071, 0x4004 }, { 1073, 0xa000 }, { 1075, 0x2290 }, { 1079, 0x6010 }, + { 1082, 0x0000 }, { 1082, 0x0008 }, { 1083, 0x4f45 }, { 1091, 0x0041 }, + { 1093, 0x1026 }, { 1097, 0x0707 }, { 1103, 0x0001 }, { 1104, 0x40c0 }, + /* 0x5400 */ + { 1107, 0x0000 }, { 1107, 0x0458 }, { 1111, 0x800a }, { 1114, 0x0004 }, + { 1115, 0x2800 }, { 1117, 0x0000 }, { 1117, 0x2600 }, { 1120, 0x0000 }, + { 1120, 0x8020 }, { 1122, 0x5098 }, { 1127, 0x0018 }, { 1129, 0x0214 }, + { 1132, 0x3800 }, { 1135, 0x0401 }, { 1137, 0x8008 }, { 1139, 0x0000 }, + /* 0x5500 */ + { 1139, 0x2004 }, { 1141, 0x4108 }, { 1144, 0x0928 }, { 1148, 0x8000 }, + { 1149, 0x0280 }, { 1151, 0x2008 }, { 1153, 0x0a00 }, { 1155, 0x020e }, + { 1159, 0x0040 }, { 1160, 0x0001 }, { 1161, 0x0200 }, { 1162, 0x1611 }, + { 1167, 0x0002 }, { 1168, 0x4180 }, { 1171, 0x1400 }, { 1173, 0x0823 }, + /* 0x5600 */ + { 1177, 0x0020 }, { 1178, 0x4002 }, { 1180, 0x202f }, { 1186, 0x0080 }, + { 1187, 0xa008 }, { 1190, 0x2015 }, { 1194, 0x0002 }, { 1195, 0x1c00 }, + { 1198, 0x0e00 }, { 1201, 0xc004 }, { 1204, 0x8012 }, { 1207, 0x8202 }, + { 1210, 0x0000 }, { 1210, 0x0040 }, { 1211, 0xa004 }, { 1214, 0x2002 }, + /* 0x5700 */ + { 1216, 0x0001 }, { 1217, 0x2020 }, { 1219, 0x0000 }, { 1219, 0x8004 }, + { 1221, 0x004c }, { 1224, 0x8890 }, { 1228, 0x0080 }, { 1229, 0xc400 }, + { 1232, 0x2500 }, { 1235, 0x1001 }, { 1237, 0x0482 }, { 1240, 0x4810 }, + { 1243, 0x0110 }, { 1245, 0x6080 }, { 1248, 0x8040 }, { 1250, 0x4000 }, + /* 0x5800 */ + { 1251, 0x0008 }, { 1252, 0x0004 }, { 1253, 0x0044 }, { 1255, 0x0400 }, + { 1256, 0x0091 }, { 1259, 0x9000 }, { 1261, 0x1200 }, { 1263, 0x000c }, + { 1265, 0x0000 }, { 1265, 0x0600 }, { 1267, 0x0480 }, { 1269, 0x0861 }, + { 1273, 0x0800 }, { 1274, 0x1000 }, { 1275, 0x0001 }, { 1276, 0x080d }, + /* 0x5900 */ + { 1280, 0x04b4 }, { 1285, 0x8002 }, { 1287, 0x0000 }, { 1287, 0x0014 }, + { 1289, 0x0000 }, { 1289, 0x0000 }, { 1289, 0x0020 }, { 1290, 0x0020 }, + { 1291, 0x0200 }, { 1292, 0x8410 }, { 1295, 0x1000 }, { 1296, 0x0181 }, + { 1299, 0x0210 }, { 1301, 0x0200 }, { 1302, 0x8800 }, { 1304, 0x0301 }, + /* 0x5a00 */ + { 1307, 0x2804 }, { 1310, 0x0004 }, { 1311, 0x1c92 }, { 1317, 0x2000 }, + { 1318, 0x0020 }, { 1319, 0x0210 }, { 1321, 0x490a }, { 1326, 0x4202 }, + { 1329, 0x0146 }, { 1333, 0x0242 }, { 1336, 0x0803 }, { 1339, 0x0000 }, + { 1339, 0xc008 }, { 1342, 0x0008 }, { 1343, 0x0010 }, { 1344, 0x4405 }, + /* 0x5b00 */ + { 1348, 0x2000 }, { 1349, 0x8002 }, { 1351, 0x0800 }, { 1352, 0x0000 }, + { 1352, 0x8452 }, { 1357, 0x0000 }, { 1357, 0x2140 }, { 1360, 0x1050 }, + { 1363, 0x0005 }, { 1365, 0xe001 }, { 1369, 0x0400 }, { 1370, 0x0000 }, + { 1370, 0x0008 }, { 1371, 0x00a0 }, { 1373, 0x0000 }, { 1373, 0x8008 }, + /* 0x5c00 */ + { 1375, 0x0020 }, { 1376, 0x5018 }, { 1380, 0x0009 }, { 1382, 0x0000 }, + { 1382, 0x0600 }, { 1384, 0x4008 }, { 1386, 0x0000 }, { 1386, 0x0000 }, + { 1386, 0x0020 }, { 1387, 0x5600 }, { 1391, 0x0000 }, { 1391, 0x0400 }, + { 1392, 0x0006 }, { 1394, 0x0002 }, { 1395, 0x8220 }, { 1398, 0x0000 }, + /* 0x5d00 */ + { 1398, 0x0000 }, { 1398, 0x0121 }, { 1401, 0x9000 }, { 1403, 0x4000 }, + { 1404, 0x0140 }, { 1406, 0x08c0 }, { 1409, 0x0000 }, { 1409, 0x0011 }, + { 1411, 0x4820 }, { 1414, 0x0000 }, { 1414, 0x0810 }, { 1416, 0x0240 }, + { 1418, 0x0002 }, { 1419, 0x0880 }, { 1421, 0x0000 }, { 1421, 0x0020 }, + /* 0x5e00 */ + { 1422, 0x0a00 }, { 1424, 0x0004 }, { 1425, 0x4000 }, { 1426, 0x0000 }, + { 1426, 0x0104 }, { 1428, 0x4000 }, { 1429, 0x0000 }, { 1429, 0x8400 }, + { 1431, 0x0048 }, { 1433, 0x0000 }, { 1433, 0x0000 }, { 1433, 0x2000 }, + { 1434, 0x2000 }, { 1435, 0x0001 }, { 1436, 0x0000 }, { 1436, 0x1b10 }, + /* 0x5f00 */ + { 1441, 0x7000 }, { 1444, 0x0000 }, { 1444, 0x0020 }, { 1445, 0x0400 }, + { 1446, 0x2000 }, { 1447, 0x1003 }, { 1450, 0x000a }, { 1452, 0x0804 }, + { 1454, 0x0008 }, { 1455, 0x0000 }, { 1455, 0x0090 }, { 1457, 0x0402 }, + { 1459, 0x0010 }, { 1460, 0x8800 }, { 1462, 0x0000 }, { 1462, 0x0000 }, + /* 0x6000 */ + { 1462, 0x0000 }, { 1462, 0x0000 }, { 1462, 0x0008 }, { 1463, 0x0802 }, + { 1465, 0x0400 }, { 1466, 0x0004 }, { 1467, 0x0000 }, { 1467, 0x40a0 }, + { 1470, 0x0000 }, { 1470, 0x4000 }, { 1471, 0x0090 }, { 1473, 0x0008 }, + { 1474, 0x0000 }, { 1474, 0x4080 }, { 1476, 0x0388 }, { 1480, 0x2000 }, + /* 0x6100 */ + { 1481, 0x1080 }, { 1483, 0x0200 }, { 1484, 0x0000 }, { 1484, 0x2001 }, + { 1486, 0x0004 }, { 1487, 0x1201 }, { 1490, 0x8011 }, { 1493, 0x2000 }, + { 1494, 0x0082 }, { 1496, 0x1320 }, { 1500, 0x0000 }, { 1500, 0x0280 }, + { 1502, 0x8001 }, { 1504, 0x0409 }, { 1507, 0x0004 }, { 1508, 0x0000 }, + /* 0x6200 */ + { 1508, 0x0000 }, { 1508, 0x0000 }, { 1508, 0x1000 }, { 1509, 0x0280 }, + { 1511, 0x1000 }, { 1512, 0x0000 }, { 1512, 0x0100 }, { 1513, 0x0000 }, + { 1513, 0x0024 }, { 1515, 0x2001 }, { 1517, 0x0050 }, { 1519, 0x0000 }, + { 1519, 0x0028 }, { 1521, 0x8020 }, { 1523, 0x0020 }, { 1524, 0x0000 }, + /* 0x6300 */ + { 1524, 0x0000 }, { 1524, 0x0100 }, { 1525, 0x4000 }, { 1526, 0x00a2 }, + { 1529, 0x0000 }, { 1529, 0x0000 }, { 1529, 0x1010 }, { 1531, 0x8200 }, + { 1533, 0x0800 }, { 1534, 0x0000 }, { 1534, 0x0000 }, { 1534, 0x0200 }, + { 1535, 0x0002 }, { 1536, 0x4002 }, { 1538, 0x0044 }, { 1540, 0x5900 }, + /* 0x6400 */ + { 1544, 0x0080 }, { 1545, 0x0000 }, { 1545, 0x0000 }, { 1545, 0x0d04 }, + { 1549, 0x0000 }, { 1549, 0x0400 }, { 1550, 0x0000 }, { 1550, 0x1002 }, + { 1552, 0x2000 }, { 1553, 0x0002 }, { 1554, 0x8000 }, { 1555, 0x0050 }, + { 1557, 0x0001 }, { 1558, 0x2008 }, { 1560, 0x04a2 }, { 1564, 0x0000 }, + /* 0x6500 */ + { 1564, 0x0400 }, { 1565, 0xc002 }, { 1568, 0x0000 }, { 1568, 0x0031 }, + { 1571, 0x2000 }, { 1572, 0x8000 }, { 1573, 0x2800 }, { 1575, 0x0000 }, + { 1575, 0x0360 }, { 1579, 0x0000 }, { 1579, 0x0000 }, { 1579, 0x4020 }, + { 1581, 0x0000 }, { 1581, 0x0012 }, { 1583, 0x0009 }, { 1585, 0x8000 }, + /* 0x6600 */ + { 1586, 0x0000 }, { 1586, 0x4100 }, { 1588, 0x0008 }, { 1589, 0x0001 }, + { 1590, 0x0910 }, { 1593, 0x0088 }, { 1595, 0x0888 }, { 1598, 0x2008 }, + { 1600, 0x4020 }, { 1602, 0x0404 }, { 1604, 0x2010 }, { 1606, 0x8048 }, + { 1609, 0x6000 }, { 1611, 0x0000 }, { 1611, 0x0000 }, { 1611, 0x0002 }, + /* 0x6700 */ + { 1612, 0x5004 }, { 1615, 0x4040 }, { 1617, 0x0020 }, { 1618, 0x0040 }, + { 1619, 0x0010 }, { 1620, 0x0000 }, { 1620, 0x0086 }, { 1623, 0x0000 }, + { 1623, 0x8000 }, { 1624, 0x0000 }, { 1624, 0x1011 }, { 1627, 0x8002 }, + { 1629, 0x0000 }, { 1629, 0x00c0 }, { 1631, 0x0000 }, { 1631, 0x4200 }, + /* 0x6800 */ + { 1633, 0x201f }, { 1639, 0x4801 }, { 1642, 0x0004 }, { 1643, 0x40c0 }, + { 1646, 0x0480 }, { 1648, 0x2060 }, { 1651, 0x0020 }, { 1652, 0x0000 }, + { 1652, 0x0110 }, { 1654, 0x0100 }, { 1655, 0x0040 }, { 1656, 0x2240 }, + { 1659, 0x0428 }, { 1662, 0x0000 }, { 1662, 0x0000 }, { 1662, 0x0000 }, + /* 0x6900 */ + { 1662, 0x020f }, { 1667, 0x0d00 }, { 1670, 0x1000 }, { 1671, 0x4040 }, + { 1673, 0x0048 }, { 1675, 0x0020 }, { 1676, 0x0092 }, { 1679, 0x000c }, + { 1681, 0x0421 }, { 1684, 0x8100 }, { 1686, 0x0004 }, { 1687, 0x0004 }, + { 1688, 0x0001 }, { 1689, 0x0062 }, { 1692, 0x0202 }, { 1694, 0x0600 }, + /* 0x6a00 */ + { 1696, 0x1808 }, { 1699, 0x1400 }, { 1701, 0x3800 }, { 1704, 0x0008 }, + { 1705, 0x1020 }, { 1707, 0x008c }, { 1710, 0x0020 }, { 1711, 0x0412 }, + { 1714, 0x8404 }, { 1717, 0x2200 }, { 1719, 0x0880 }, { 1721, 0x4026 }, + { 1725, 0x0700 }, { 1728, 0x0110 }, { 1730, 0x0000 }, { 1730, 0x0040 }, + /* 0x6b00 */ + { 1731, 0x0020 }, { 1732, 0x2000 }, { 1733, 0x0000 }, { 1733, 0x0020 }, + { 1734, 0x0000 }, { 1734, 0x0084 }, { 1736, 0x8000 }, { 1737, 0x0410 }, + { 1739, 0x0002 }, { 1740, 0x0000 }, { 1740, 0x0000 }, { 1740, 0x0000 }, + { 1740, 0x0002 }, { 1741, 0x1000 }, { 1742, 0x0402 }, { 1744, 0x0400 }, + /* 0x6c00 */ + { 1745, 0x0000 }, { 1745, 0x1000 }, { 1746, 0x0000 }, { 1746, 0x26a2 }, + { 1752, 0x0200 }, { 1753, 0x0500 }, { 1755, 0x4000 }, { 1756, 0x8220 }, + { 1759, 0x0000 }, { 1759, 0x8000 }, { 1760, 0x8404 }, { 1763, 0x0004 }, + { 1764, 0x4800 }, { 1766, 0x8000 }, { 1767, 0x0400 }, { 1768, 0x0000 }, + /* 0x6d00 */ + { 1768, 0x0064 }, { 1771, 0x0000 }, { 1771, 0x0050 }, { 1773, 0x0000 }, + { 1773, 0x4000 }, { 1774, 0x1880 }, { 1777, 0x0000 }, { 1777, 0x0006 }, + { 1779, 0x8002 }, { 1781, 0x0040 }, { 1782, 0x0030 }, { 1784, 0x0202 }, + { 1786, 0x0000 }, { 1786, 0x0000 }, { 1786, 0x0000 }, { 1786, 0x0000 }, + /* 0x6e00 */ + { 1786, 0x8414 }, { 1790, 0x0120 }, { 1792, 0x0600 }, { 1794, 0x0000 }, + { 1794, 0x8000 }, { 1795, 0x0201 }, { 1797, 0x0000 }, { 1797, 0x1040 }, + { 1799, 0x0840 }, { 1801, 0x0400 }, { 1802, 0x0000 }, { 1802, 0x0920 }, + { 1805, 0x0000 }, { 1805, 0x2e00 }, { 1809, 0x0304 }, { 1812, 0x0400 }, + /* 0x6f00 */ + { 1813, 0x1810 }, { 1816, 0x00c0 }, { 1818, 0x0010 }, { 1819, 0x2010 }, + { 1821, 0x0010 }, { 1822, 0x1040 }, { 1824, 0x0000 }, { 1824, 0x0210 }, + { 1826, 0x0402 }, { 1828, 0xa000 }, { 1830, 0x0000 }, { 1830, 0x4820 }, + { 1833, 0x0000 }, { 1833, 0x0608 }, { 1836, 0x0000 }, { 1836, 0x0140 }, + /* 0x7000 */ + { 1838, 0x0008 }, { 1839, 0x4000 }, { 1840, 0x1000 }, { 1841, 0x0000 }, + { 1841, 0x0800 }, { 1842, 0x1011 }, { 1845, 0x9080 }, { 1848, 0xc220 }, + { 1852, 0x8a02 }, { 1856, 0x0000 }, { 1856, 0x00e9 }, { 1861, 0x3a00 }, + { 1865, 0x1011 }, { 1868, 0x8061 }, { 1872, 0x0000 }, { 1872, 0x4022 }, + /* 0x7100 */ + { 1875, 0x0020 }, { 1876, 0x2000 }, { 1877, 0x1a00 }, { 1880, 0x4838 }, + { 1885, 0x8421 }, { 1889, 0x0002 }, { 1890, 0x0800 }, { 1891, 0x54ea }, + { 1899, 0x5100 }, { 1902, 0x0140 }, { 1904, 0x200c }, { 1907, 0x0490 }, + { 1910, 0x0000 }, { 1910, 0x2002 }, { 1912, 0x0800 }, { 1913, 0x0060 }, + /* 0x7200 */ + { 1915, 0xc200 }, { 1918, 0x00e0 }, { 1921, 0x4810 }, { 1924, 0x0000 }, + { 1924, 0x0001 }, { 1925, 0x10a1 }, { 1929, 0x0040 }, { 1930, 0x0000 }, + { 1930, 0x8084 }, { 1933, 0x8010 }, { 1935, 0x2000 }, { 1936, 0x0004 }, + { 1937, 0x2000 }, { 1938, 0x0000 }, { 1938, 0x0004 }, { 1939, 0x0000 }, + /* 0x7300 */ + { 1939, 0x0014 }, { 1941, 0x0001 }, { 1942, 0x5d00 }, { 1947, 0x0300 }, + { 1949, 0x8102 }, { 1952, 0x0000 }, { 1952, 0x0000 }, { 1952, 0x0012 }, + { 1954, 0x8000 }, { 1955, 0x5100 }, { 1958, 0x0480 }, { 1960, 0x0000 }, + { 1960, 0xc200 }, { 1963, 0x0021 }, { 1965, 0x8056 }, { 1970, 0x0a88 }, + /* 0x7400 */ + { 1974, 0x0000 }, { 1974, 0xd2b6 }, { 1983, 0x0000 }, { 1983, 0x1380 }, + { 1987, 0x03a8 }, { 1992, 0x2048 }, { 1995, 0x1921 }, { 2000, 0x0450 }, + { 2003, 0x3004 }, { 2006, 0x0a00 }, { 2008, 0x0010 }, { 2009, 0x0010 }, + { 2010, 0x1100 }, { 2012, 0x0009 }, { 2014, 0x0080 }, { 2015, 0x0107 }, + /* 0x7500 */ + { 2019, 0x4020 }, { 2021, 0x4200 }, { 2023, 0x0000 }, { 2023, 0x0830 }, + { 2026, 0x2444 }, { 2030, 0x002a }, { 2033, 0x6081 }, { 2037, 0x0404 }, + { 2039, 0x6008 }, { 2042, 0x4004 }, { 2044, 0x0000 }, { 2044, 0x0012 }, + { 2046, 0x0108 }, { 2048, 0x1000 }, { 2049, 0x0000 }, { 2049, 0x0000 }, + /* 0x7600 */ + { 2049, 0x0084 }, { 2051, 0x0000 }, { 2051, 0x1000 }, { 2052, 0x0800 }, + { 2053, 0xe001 }, { 2057, 0x0012 }, { 2059, 0x80c0 }, { 2062, 0x0458 }, + { 2066, 0x0000 }, { 2066, 0x0001 }, { 2067, 0x0022 }, { 2069, 0x0080 }, + { 2070, 0x1000 }, { 2071, 0x0040 }, { 2072, 0x0000 }, { 2072, 0x0000 }, + /* 0x7700 */ + { 2072, 0xd000 }, { 2075, 0x4000 }, { 2076, 0x0850 }, { 2079, 0x0000 }, + { 2079, 0x0009 }, { 2081, 0x0100 }, { 2082, 0x0000 }, { 2082, 0x0d84 }, + { 2087, 0x0000 }, { 2087, 0x0108 }, { 2089, 0x8000 }, { 2090, 0x4200 }, + { 2092, 0x0828 }, { 2095, 0x0000 }, { 2095, 0x0040 }, { 2096, 0x4010 }, + /* 0x7800 */ + { 2098, 0x0100 }, { 2099, 0x5100 }, { 2102, 0x0000 }, { 2102, 0x3200 }, + { 2105, 0x0894 }, { 2109, 0x001a }, { 2112, 0x0040 }, { 2113, 0x0400 }, + { 2114, 0x2102 }, { 2117, 0x0000 }, { 2117, 0x8000 }, { 2118, 0x0342 }, + { 2122, 0x0080 }, { 2123, 0x018c }, { 2127, 0x4000 }, { 2128, 0x0023 }, + /* 0x7900 */ + { 2131, 0x0040 }, { 2132, 0x0000 }, { 2132, 0x4000 }, { 2133, 0x185c }, + { 2139, 0x0000 }, { 2139, 0x0300 }, { 2141, 0x0004 }, { 2142, 0x4002 }, + { 2144, 0x00c9 }, { 2148, 0xa202 }, { 2152, 0x0220 }, { 2154, 0x0000 }, + { 2154, 0x1050 }, { 2157, 0x0010 }, { 2158, 0x0004 }, { 2159, 0x0012 }, + /* 0x7a00 */ + { 2161, 0x0040 }, { 2162, 0x0000 }, { 2162, 0x2000 }, { 2163, 0x4400 }, + { 2165, 0x0228 }, { 2168, 0x0000 }, { 2168, 0x0020 }, { 2169, 0x2000 }, + { 2170, 0x0008 }, { 2171, 0x0002 }, { 2172, 0x0000 }, { 2172, 0x1801 }, + { 2175, 0x830c }, { 2180, 0x3c08 }, { 2185, 0x0684 }, { 2189, 0x4000 }, + /* 0x7b00 */ + { 2190, 0x1800 }, { 2192, 0x8010 }, { 2194, 0x0280 }, { 2196, 0x0200 }, + { 2197, 0x000c }, { 2199, 0x0020 }, { 2200, 0x9004 }, { 2203, 0x0800 }, + { 2204, 0x0000 }, { 2204, 0x0004 }, { 2205, 0x000c }, { 2207, 0x0004 }, + { 2208, 0x8000 }, { 2209, 0x0001 }, { 2210, 0x0000 }, { 2210, 0x1400 }, + /* 0x7c00 */ + { 2212, 0x0000 }, { 2212, 0x0824 }, { 2215, 0x0000 }, { 2215, 0x0020 }, + { 2216, 0x0014 }, { 2218, 0x2042 }, { 2221, 0x2000 }, { 2222, 0x5811 }, + { 2227, 0x4048 }, { 2230, 0x1000 }, { 2231, 0x50c0 }, { 2235, 0x0100 }, + { 2236, 0x2284 }, { 2240, 0x0408 }, { 2242, 0x2040 }, { 2244, 0x1228 }, + /* 0x7d00 */ + { 2248, 0x0000 }, { 2248, 0x0000 }, { 2248, 0x0020 }, { 2249, 0x0000 }, + { 2249, 0x2000 }, { 2250, 0x2400 }, { 2252, 0x0000 }, { 2252, 0x0000 }, + { 2252, 0x0200 }, { 2253, 0x0080 }, { 2254, 0x0910 }, { 2257, 0x0008 }, + { 2258, 0xa000 }, { 2260, 0x1019 }, { 2264, 0x0030 }, { 2266, 0x6020 }, + /* 0x7e00 */ + { 2269, 0x0080 }, { 2270, 0x0000 }, { 2270, 0x0080 }, { 2271, 0x0000 }, + { 2271, 0x0000 }, { 2271, 0x0000 }, { 2271, 0x40a0 }, { 2274, 0x8000 }, + { 2275, 0x4000 }, { 2276, 0x8004 }, { 2278, 0x1010 }, { 2280, 0x0400 }, + { 2281, 0x8080 }, { 2283, 0x8000 }, { 2284, 0x0000 }, { 2284, 0x0000 }, + /* 0x7f00 */ + { 2284, 0x0040 }, { 2285, 0x0000 }, { 2285, 0x0000 }, { 2285, 0x0080 }, + { 2286, 0x4283 }, { 2291, 0x000c }, { 2293, 0x0000 }, { 2293, 0x0102 }, + { 2295, 0x8000 }, { 2296, 0x0088 }, { 2298, 0x4008 }, { 2300, 0x0010 }, + { 2301, 0x0000 }, { 2301, 0x2000 }, { 2302, 0x0080 }, { 2303, 0x0400 }, + /* 0x8000 */ + { 2304, 0x0104 }, { 2306, 0x2000 }, { 2307, 0xc021 }, { 2311, 0x1802 }, + { 2314, 0x0000 }, { 2314, 0x0810 }, { 2316, 0x004e }, { 2320, 0x0000 }, + { 2320, 0x0001 }, { 2321, 0x8000 }, { 2322, 0x0080 }, { 2323, 0x30c0 }, + { 2327, 0x0040 }, { 2328, 0x0000 }, { 2328, 0x1200 }, { 2330, 0x0040 }, + /* 0x8100 */ + { 2331, 0x5288 }, { 2336, 0x0494 }, { 2340, 0x0400 }, { 2341, 0x0094 }, + { 2344, 0x0104 }, { 2346, 0x0640 }, { 2349, 0x2000 }, { 2350, 0x1000 }, + { 2351, 0x0010 }, { 2352, 0x0008 }, { 2353, 0x0420 }, { 2355, 0x0040 }, + { 2356, 0x0102 }, { 2358, 0x0000 }, { 2358, 0x8010 }, { 2360, 0x0040 }, + /* 0x8200 */ + { 2361, 0x0000 }, { 2361, 0x0500 }, { 2363, 0x2240 }, { 2366, 0x4000 }, + { 2367, 0x0000 }, { 2367, 0x0010 }, { 2368, 0x0024 }, { 2370, 0x0e40 }, + { 2374, 0x0080 }, { 2375, 0x0000 }, { 2375, 0x0440 }, { 2377, 0x0000 }, + { 2377, 0x8410 }, { 2380, 0x0101 }, { 2382, 0x4004 }, { 2384, 0xb080 }, + /* 0x8300 */ + { 2388, 0x0800 }, { 2389, 0x2500 }, { 2392, 0x0000 }, { 2392, 0x2000 }, + { 2393, 0x0000 }, { 2393, 0x0080 }, { 2394, 0x804c }, { 2398, 0x0000 }, + { 2398, 0x0020 }, { 2399, 0x1002 }, { 2401, 0x1000 }, { 2402, 0x4200 }, + { 2404, 0x2000 }, { 2405, 0x0008 }, { 2406, 0x2000 }, { 2407, 0x0000 }, + /* 0x8400 */ + { 2407, 0x0020 }, { 2408, 0x1150 }, { 2412, 0x4053 }, { 2417, 0x4000 }, + { 2418, 0x0500 }, { 2420, 0x1128 }, { 2424, 0x0014 }, { 2426, 0x8006 }, + { 2429, 0x0101 }, { 2431, 0x004c }, { 2434, 0x2008 }, { 2436, 0x6000 }, + { 2438, 0x0000 }, { 2438, 0x4400 }, { 2440, 0x0036 }, { 2444, 0x0100 }, + /* 0x8500 */ + { 2445, 0x0028 }, { 2447, 0x0001 }, { 2448, 0x0000 }, { 2448, 0x0118 }, + { 2451, 0x1804 }, { 2454, 0x0404 }, { 2456, 0x8000 }, { 2457, 0x0009 }, + { 2459, 0x0000 }, { 2459, 0x0000 }, { 2459, 0x0000 }, { 2459, 0x0000 }, + { 2459, 0x0002 }, { 2460, 0x0000 }, { 2460, 0x4001 }, { 2462, 0x1000 }, + /* 0x8600 */ + { 2463, 0x2004 }, { 2465, 0x0051 }, { 2468, 0x8100 }, { 2470, 0x0000 }, + { 2470, 0x0024 }, { 2472, 0x0000 }, { 2472, 0x1000 }, { 2473, 0x4004 }, + { 2475, 0x0000 }, { 2475, 0x0004 }, { 2476, 0x2001 }, { 2478, 0x0004 }, + { 2479, 0x0000 }, { 2479, 0x0000 }, { 2479, 0x8000 }, { 2480, 0x0000 }, + /* 0x8700 */ + { 2480, 0x0000 }, { 2480, 0x0000 }, { 2480, 0x0000 }, { 2480, 0x0000 }, + { 2480, 0x0000 }, { 2480, 0x0000 }, { 2480, 0x0000 }, { 2480, 0x2003 }, + { 2483, 0x1840 }, { 2486, 0x0000 }, { 2486, 0x0220 }, { 2488, 0x0002 }, + { 2489, 0x4002 }, { 2491, 0x0440 }, { 2493, 0x4000 }, { 2494, 0x0020 }, + /* 0x8800 */ + { 2495, 0x8010 }, { 2497, 0x0100 }, { 2498, 0x2080 }, { 2500, 0x0000 }, + { 2500, 0x8064 }, { 2504, 0x4000 }, { 2505, 0x4031 }, { 2509, 0x0000 }, + { 2509, 0x0090 }, { 2511, 0x1000 }, { 2512, 0x4001 }, { 2514, 0x8030 }, + { 2517, 0x80a0 }, { 2520, 0x0000 }, { 2520, 0x0040 }, { 2521, 0x8020 }, + /* 0x8900 */ + { 2523, 0x0001 }, { 2524, 0x0000 }, { 2524, 0x0010 }, { 2525, 0x0000 }, + { 2525, 0x2088 }, { 2528, 0x0010 }, { 2529, 0x0020 }, { 2530, 0x0080 }, + { 2531, 0x0681 }, { 2535, 0x0012 }, { 2537, 0x02a0 }, { 2540, 0x1000 }, + { 2541, 0x0042 }, { 2543, 0x0000 }, { 2543, 0x0080 }, { 2544, 0x0000 }, + /* 0x8a00 */ + { 2544, 0x0000 }, { 2544, 0x1000 }, { 2545, 0x0a00 }, { 2547, 0x2100 }, + { 2549, 0x0200 }, { 2550, 0x0000 }, { 2550, 0x0080 }, { 2551, 0x4000 }, + { 2552, 0x0000 }, { 2552, 0x1011 }, { 2555, 0x8200 }, { 2557, 0x0010 }, + { 2558, 0x0000 }, { 2558, 0x0400 }, { 2559, 0x0400 }, { 2560, 0x0000 }, + /* 0x8b00 */ + { 2560, 0x1000 }, { 2561, 0x8000 }, { 2562, 0x2000 }, { 2563, 0x8000 }, + { 2564, 0x3008 }, { 2567, 0x4000 }, { 2568, 0x0204 }, { 2570, 0x0000 }, + { 2570, 0x0002 }, { 2571, 0x0801 }, { 2573, 0x0001 }, { 2574, 0x4000 }, + { 2575, 0x0000 }, { 2575, 0x0000 }, { 2575, 0x0004 }, { 2576, 0x0000 }, + /* 0x8c00 */ + { 2576, 0x0000 }, { 2576, 0x0000 }, { 2576, 0x0000 }, { 2576, 0x0000 }, + { 2576, 0x0000 }, { 2576, 0x0002 }, { 2577, 0x0000 }, { 2577, 0x0000 }, + { 2577, 0x0000 }, { 2577, 0x8800 }, { 2579, 0x2000 }, { 2580, 0x0000 }, + { 2580, 0x2000 }, { 2581, 0x0850 }, { 2584, 0x0a00 }, { 2586, 0x0084 }, + /* 0x8d00 */ + { 2588, 0x1808 }, { 2591, 0x3106 }, { 2596, 0x0000 }, { 2596, 0x0000 }, + { 2596, 0x0000 }, { 2596, 0x0000 }, { 2596, 0x0000 }, { 2596, 0x0400 }, + { 2597, 0x0004 }, { 2598, 0x0000 }, { 2598, 0x0240 }, { 2600, 0x0000 }, + { 2600, 0x0009 }, { 2602, 0x0010 }, { 2603, 0x0000 }, { 2603, 0x0000 }, + /* 0x8e00 */ + { 2603, 0x4002 }, { 2605, 0x0000 }, { 2605, 0x2500 }, { 2608, 0x0400 }, + { 2609, 0x8040 }, { 2611, 0x0000 }, { 2611, 0x0100 }, { 2612, 0x40a2 }, + { 2616, 0x0001 }, { 2617, 0x0000 }, { 2617, 0x2080 }, { 2619, 0x1041 }, + { 2622, 0x4008 }, { 2624, 0x0400 }, { 2625, 0x2014 }, { 2628, 0x0004 }, + /* 0x8f00 */ + { 2629, 0x0000 }, { 2629, 0x0200 }, { 2630, 0x2000 }, { 2631, 0x0001 }, + { 2632, 0x0402 }, { 2634, 0x1000 }, { 2635, 0x40c0 }, { 2638, 0x0000 }, + { 2638, 0x0000 }, { 2638, 0x0008 }, { 2639, 0x0021 }, { 2641, 0x5fe8 }, + { 2651, 0x1402 }, { 2654, 0x0401 }, { 2656, 0x0000 }, { 2656, 0x0200 }, + /* 0x9000 */ + { 2657, 0x0100 }, { 2658, 0x0004 }, { 2659, 0x0000 }, { 2659, 0x0088 }, + { 2661, 0x1000 }, { 2662, 0x0040 }, { 2663, 0x1012 }, { 2666, 0x0000 }, + { 2666, 0x0000 }, { 2666, 0x0000 }, { 2666, 0x4100 }, { 2668, 0x0800 }, + { 2669, 0x0010 }, { 2670, 0x0000 }, { 2670, 0x0000 }, { 2670, 0x0000 }, + /* 0x9100 */ + { 2670, 0x0000 }, { 2670, 0x0000 }, { 2670, 0x0000 }, { 2670, 0x0000 }, + { 2670, 0x0000 }, { 2670, 0x5202 }, { 2674, 0x0080 }, { 2675, 0x1041 }, + { 2678, 0x5000 }, { 2680, 0x0000 }, { 2680, 0x0200 }, { 2681, 0x0840 }, + { 2683, 0x0010 }, { 2684, 0x8040 }, { 2686, 0x0020 }, { 2687, 0x4400 }, + /* 0x9200 */ + { 2689, 0x4100 }, { 2691, 0x0008 }, { 2692, 0x0d00 }, { 2695, 0x1020 }, + { 2697, 0x0012 }, { 2699, 0xa120 }, { 2703, 0x4804 }, { 2706, 0x0080 }, + { 2707, 0x8212 }, { 2711, 0x0000 }, { 2711, 0x4000 }, { 2712, 0xc602 }, + { 2717, 0x0000 }, { 2717, 0x0810 }, { 2719, 0x1828 }, { 2723, 0x205c }, + /* 0x9300 */ + { 2728, 0x0088 }, { 2730, 0x0000 }, { 2730, 0x1000 }, { 2731, 0x0003 }, + { 2733, 0x013f }, { 2740, 0x8000 }, { 2741, 0x4b44 }, { 2747, 0x2118 }, + { 2751, 0x00f2 }, { 2756, 0x1001 }, { 2758, 0x2001 }, { 2760, 0xa900 }, + { 2764, 0x0840 }, { 2766, 0x0808 }, { 2768, 0x0001 }, { 2769, 0x000b }, + /* 0x9400 */ + { 2772, 0x0112 }, { 2775, 0x2880 }, { 2778, 0x20f0 }, { 2783, 0x4000 }, + { 2784, 0x200c }, { 2787, 0x0910 }, { 2790, 0x10a0 }, { 2793, 0x0a00 }, + { 2795, 0x0020 }, { 2796, 0x8000 }, { 2797, 0x0004 }, { 2798, 0x0000 }, + { 2798, 0x000a }, { 2800, 0x1000 }, { 2801, 0x0000 }, { 2801, 0x0040 }, + /* 0x9500 */ + { 2802, 0x0000 }, { 2802, 0x0000 }, { 2802, 0x2000 }, { 2803, 0x0000 }, + { 2803, 0x0080 }, { 2804, 0x0000 }, { 2804, 0x0000 }, { 2804, 0x8100 }, + { 2806, 0x0020 }, { 2807, 0x02c0 }, { 2810, 0x04c5 }, { 2815, 0x0000 }, + { 2815, 0x0000 }, { 2815, 0x0000 }, { 2815, 0x0100 }, { 2816, 0x0010 }, + /* 0x9600 */ + { 2817, 0x0000 }, { 2817, 0x2000 }, { 2818, 0x0000 }, { 2818, 0x0108 }, + { 2820, 0x0022 }, { 2822, 0x0040 }, { 2823, 0x0200 }, { 2824, 0x0800 }, + { 2825, 0x8002 }, { 2827, 0x0040 }, { 2828, 0x0028 }, { 2830, 0x2040 }, + { 2832, 0x0000 }, { 2832, 0x0000 }, { 2832, 0x0000 }, { 2832, 0x0010 }, + /* 0x9700 */ + { 2833, 0x0008 }, { 2834, 0x0800 }, { 2835, 0x0002 }, { 2836, 0x0042 }, + { 2838, 0x0003 }, { 2840, 0xa082 }, { 2844, 0x2000 }, { 2845, 0x0002 }, + { 2846, 0x0280 }, { 2848, 0x8800 }, { 2850, 0x0000 }, { 2850, 0x6516 }, + { 2857, 0x0105 }, { 2860, 0x0004 }, { 2861, 0x4041 }, { 2864, 0x0024 }, + /* 0x9800 */ + { 2866, 0x0000 }, { 2866, 0x8030 }, { 2869, 0x4008 }, { 2871, 0x0018 }, + { 2873, 0x0880 }, { 2875, 0x0000 }, { 2875, 0x1040 }, { 2877, 0x0020 }, + { 2878, 0x0000 }, { 2878, 0x0000 }, { 2878, 0x0000 }, { 2878, 0x0290 }, + { 2881, 0x4588 }, { 2886, 0x5000 }, { 2888, 0x1043 }, { 2892, 0x0022 }, + /* 0x9900 */ + { 2894, 0x4000 }, { 2895, 0x1200 }, { 2897, 0x0000 }, { 2897, 0x0b80 }, + { 2901, 0x2405 }, { 2905, 0x2000 }, { 2906, 0x000c }, { 2908, 0x0000 }, + { 2908, 0x0000 }, { 2908, 0x0800 }, { 2909, 0x0410 }, { 2911, 0x1100 }, + { 2913, 0x0030 }, { 2915, 0x0400 }, { 2916, 0x0042 }, { 2918, 0x0020 }, + /* 0x9a00 */ + { 2919, 0x1000 }, { 2920, 0x8001 }, { 2922, 0x8042 }, { 2925, 0x1800 }, + { 2927, 0x0000 }, { 2927, 0x1100 }, { 2929, 0x1008 }, { 2931, 0x0000 }, + { 2931, 0x8000 }, { 2932, 0x0000 }, { 2932, 0x0000 }, { 2932, 0x2444 }, + { 2936, 0x0000 }, { 2936, 0x0080 }, { 2937, 0x0005 }, { 2939, 0x8010 }, + /* 0x9b00 */ + { 2941, 0x8204 }, { 2944, 0x0010 }, { 2945, 0x2400 }, { 2947, 0x0210 }, + { 2949, 0x0001 }, { 2950, 0x0001 }, { 2951, 0x0200 }, { 2952, 0x8000 }, + { 2953, 0xe80a }, { 2959, 0xa080 }, { 2962, 0x0000 }, { 2962, 0x0001 }, + { 2963, 0x8000 }, { 2964, 0x2000 }, { 2965, 0x2200 }, { 2967, 0x8012 }, + /* 0x9c00 */ + { 2970, 0x1404 }, { 2973, 0x8821 }, { 2977, 0x8041 }, { 2980, 0x0420 }, + { 2982, 0x8020 }, { 2984, 0x2008 }, { 2986, 0x0000 }, { 2986, 0x1804 }, + { 2989, 0x0000 }, { 2989, 0x0000 }, { 2989, 0x0000 }, { 2989, 0x0000 }, + { 2989, 0x0000 }, { 2989, 0x0000 }, { 2989, 0x0000 }, { 2989, 0x0000 }, + /* 0x9d00 */ + { 2989, 0x1004 }, { 2991, 0x0040 }, { 2992, 0x0002 }, { 2993, 0x0210 }, + { 2995, 0x4210 }, { 2998, 0x4001 }, { 3000, 0x6000 }, { 3002, 0x5000 }, + { 3004, 0x0008 }, { 3005, 0x0008 }, { 3006, 0x0820 }, { 3008, 0x2000 }, + { 3009, 0x0211 }, { 3012, 0x0010 }, { 3013, 0x0000 }, { 3013, 0x1000 }, + /* 0x9e00 */ + { 3014, 0x5400 }, { 3017, 0x9100 }, { 3020, 0x0000 }, { 3020, 0x0000 }, + { 3020, 0x0000 }, { 3020, 0x0000 }, { 3020, 0x0000 }, { 3020, 0x0800 }, + { 3021, 0x0032 }, { 3024, 0x4161 }, { 3029, 0x9d44 }, { 3036, 0xa002 }, + { 3039, 0x00d2 }, { 3043, 0x0000 }, { 3043, 0x0004 }, { 3044, 0x4102 }, + /* 0x9f00 */ + { 3047, 0x0104 }, { 3049, 0x0080 }, { 3050, 0x00c0 }, { 3052, 0x0200 }, + { 3053, 0x0030 }, { 3055, 0x0409 }, { 3058, 0x0204 }, { 3060, 0x8000 }, + { 3061, 0x4000 }, { 3062, 0x8200 }, { 3064, 0x0020 }, { 3065, 0x0003 }, +}; +static const Summary16 hkscs1999_uni2indx_pagef9[1] = { + /* 0xf900 */ + { 3067, 0x0080 }, +}; +static const Summary16 hkscs1999_uni2indx_pageff[15] = { + /* 0xff00 */ + { 3068, 0x0084 }, { 3070, 0x0000 }, { 3070, 0x0000 }, { 3070, 0x2800 }, + { 3072, 0x0000 }, { 3072, 0x0000 }, { 3072, 0x0000 }, { 3072, 0x0000 }, + { 3072, 0x0000 }, { 3072, 0x0000 }, { 3072, 0x0000 }, { 3072, 0x0000 }, + { 3072, 0x0000 }, { 3072, 0x0000 }, { 3072, 0x2014 }, +}; +static const Summary16 hkscs1999_uni2indx_page200[2335] = { + /* 0x20000 */ + { 3075, 0x0000 }, { 3075, 0x0000 }, { 3075, 0x0002 }, { 3076, 0x4000 }, + { 3077, 0x4040 }, { 3079, 0x0000 }, { 3079, 0x0100 }, { 3080, 0x0000 }, + { 3080, 0x04c0 }, { 3083, 0x0010 }, { 3084, 0x0000 }, { 3084, 0x0000 }, + { 3084, 0x3c00 }, { 3088, 0x0002 }, { 3089, 0x4000 }, { 3090, 0x0000 }, + /* 0x20100 */ + { 3090, 0x5000 }, { 3092, 0x0100 }, { 3093, 0x0000 }, { 3093, 0x0000 }, + { 3093, 0x0000 }, { 3093, 0x0000 }, { 3093, 0x0000 }, { 3093, 0x0000 }, + { 3093, 0x0000 }, { 3093, 0x0000 }, { 3093, 0x0a00 }, { 3095, 0x0000 }, + { 3095, 0x0002 }, { 3096, 0x0010 }, { 3097, 0x0000 }, { 3097, 0x0004 }, + /* 0x20200 */ + { 3098, 0x1010 }, { 3100, 0x0010 }, { 3101, 0x0000 }, { 3101, 0x0000 }, + { 3101, 0x0000 }, { 3101, 0x0800 }, { 3102, 0x0000 }, { 3102, 0x0030 }, + { 3104, 0x0000 }, { 3104, 0x4200 }, { 3106, 0x0001 }, { 3107, 0x8080 }, + { 3109, 0x0001 }, { 3110, 0x0000 }, { 3110, 0x0020 }, { 3111, 0x0000 }, + /* 0x20300 */ + { 3111, 0x0400 }, { 3112, 0x0000 }, { 3112, 0x0020 }, { 3113, 0x0000 }, + { 3113, 0x00e2 }, { 3117, 0x0000 }, { 3117, 0x0000 }, { 3117, 0xc000 }, + { 3119, 0x0001 }, { 3120, 0x0000 }, { 3120, 0x0081 }, { 3122, 0x0020 }, + { 3123, 0x0a00 }, { 3125, 0x0000 }, { 3125, 0x0000 }, { 3125, 0x1020 }, + /* 0x20400 */ + { 3127, 0x0000 }, { 3127, 0x8018 }, { 3130, 0x0000 }, { 3130, 0x0000 }, + { 3130, 0x0000 }, { 3130, 0x0000 }, { 3130, 0x0020 }, { 3131, 0x0000 }, + { 3131, 0x4080 }, { 3133, 0x0006 }, { 3135, 0x0008 }, { 3136, 0x0000 }, + { 3136, 0x0000 }, { 3136, 0x0080 }, { 3137, 0x0000 }, { 3137, 0x5000 }, + /* 0x20500 */ + { 3139, 0x0000 }, { 3139, 0x0000 }, { 3139, 0x0000 }, { 3139, 0x0000 }, + { 3139, 0x0080 }, { 3140, 0x0000 }, { 3140, 0x0000 }, { 3140, 0x0000 }, + { 3140, 0x4000 }, { 3141, 0x0000 }, { 3141, 0x0020 }, { 3142, 0x0008 }, + { 3143, 0x0408 }, { 3145, 0x8021 }, { 3148, 0x0801 }, { 3150, 0x0000 }, + /* 0x20600 */ + { 3150, 0x0000 }, { 3150, 0x0622 }, { 3154, 0x0000 }, { 3154, 0x0001 }, + { 3155, 0x0000 }, { 3155, 0x0040 }, { 3156, 0x0000 }, { 3156, 0x0040 }, + { 3157, 0x0000 }, { 3157, 0x0000 }, { 3157, 0x0000 }, { 3157, 0x0000 }, + { 3157, 0x0000 }, { 3157, 0x0000 }, { 3157, 0x0000 }, { 3157, 0x0000 }, + /* 0x20700 */ + { 3157, 0x4000 }, { 3158, 0x0000 }, { 3158, 0x0000 }, { 3158, 0x0002 }, + { 3159, 0x0000 }, { 3159, 0x0000 }, { 3159, 0x0000 }, { 3159, 0x0200 }, + { 3160, 0x0000 }, { 3160, 0x0000 }, { 3160, 0x0000 }, { 3160, 0x0000 }, + { 3160, 0x0000 }, { 3160, 0x0000 }, { 3160, 0x0000 }, { 3160, 0x0000 }, + /* 0x20800 */ + { 3160, 0x0000 }, { 3160, 0x0000 }, { 3160, 0x1000 }, { 3161, 0x0000 }, + { 3161, 0x0000 }, { 3161, 0x0000 }, { 3161, 0x0000 }, { 3161, 0x0008 }, + { 3162, 0x0000 }, { 3162, 0x0000 }, { 3162, 0x0000 }, { 3162, 0x0000 }, + { 3162, 0x0000 }, { 3162, 0x0020 }, { 3163, 0x0000 }, { 3163, 0x0000 }, + /* 0x20900 */ + { 3163, 0x0000 }, { 3163, 0x0040 }, { 3164, 0x0008 }, { 3165, 0x0000 }, + { 3165, 0x0000 }, { 3165, 0x0010 }, { 3166, 0x0000 }, { 3166, 0x0200 }, + { 3167, 0x0000 }, { 3167, 0x0000 }, { 3167, 0x0000 }, { 3167, 0x0000 }, + { 3167, 0x0000 }, { 3167, 0x0000 }, { 3167, 0x0080 }, { 3168, 0x0000 }, + /* 0x20a00 */ + { 3168, 0x0000 }, { 3168, 0x0002 }, { 3169, 0x0000 }, { 3169, 0x0000 }, + { 3169, 0x0000 }, { 3169, 0x0001 }, { 3170, 0x0000 }, { 3170, 0x0000 }, + { 3170, 0x0000 }, { 3170, 0x0000 }, { 3170, 0x0000 }, { 3170, 0x0010 }, + { 3171, 0x2004 }, { 3173, 0x0000 }, { 3173, 0x0000 }, { 3173, 0x0000 }, + /* 0x20b00 */ + { 3173, 0x2000 }, { 3174, 0x0000 }, { 3174, 0x0000 }, { 3174, 0x0000 }, + { 3174, 0x0000 }, { 3174, 0x0000 }, { 3174, 0x0000 }, { 3174, 0x0000 }, + { 3174, 0x8000 }, { 3175, 0x0000 }, { 3175, 0x0300 }, { 3177, 0x8000 }, + { 3178, 0x0840 }, { 3180, 0x0000 }, { 3180, 0x0804 }, { 3182, 0x8800 }, + /* 0x20c00 */ + { 3184, 0x2800 }, { 3186, 0x0000 }, { 3186, 0x0001 }, { 3187, 0x0c10 }, + { 3190, 0x000e }, { 3193, 0x0008 }, { 3194, 0x0020 }, { 3195, 0x1180 }, + { 3198, 0x2000 }, { 3199, 0x1040 }, { 3201, 0x0000 }, { 3201, 0x0120 }, + { 3203, 0x8000 }, { 3204, 0x2078 }, { 3209, 0x2000 }, { 3210, 0x8000 }, + /* 0x20d00 */ + { 3211, 0x0000 }, { 3211, 0x0020 }, { 3212, 0x0100 }, { 3213, 0x0006 }, + { 3215, 0x73c0 }, { 3222, 0x0000 }, { 3222, 0x8000 }, { 3223, 0xd012 }, + { 3228, 0x0000 }, { 3228, 0x1040 }, { 3230, 0x0080 }, { 3231, 0x0004 }, + { 3232, 0x0100 }, { 3233, 0x0000 }, { 3233, 0x0000 }, { 3233, 0x0000 }, + /* 0x20e00 */ + { 3233, 0xe610 }, { 3239, 0x2043 }, { 3243, 0x0000 }, { 3243, 0x0000 }, + { 3243, 0x1000 }, { 3244, 0x0000 }, { 3244, 0x2000 }, { 3245, 0x0fe8 }, + { 3253, 0x1000 }, { 3254, 0x2140 }, { 3257, 0x1c04 }, { 3261, 0x0040 }, + { 3262, 0x0000 }, { 3262, 0x2180 }, { 3265, 0x0000 }, { 3265, 0x0f00 }, + /* 0x20f00 */ + { 3269, 0x0000 }, { 3269, 0x2000 }, { 3270, 0x6040 }, { 3273, 0x0803 }, + { 3276, 0x1000 }, { 3277, 0x0000 }, { 3277, 0x0010 }, { 3278, 0x0000 }, + { 3278, 0x2000 }, { 3279, 0x0001 }, { 3280, 0x2000 }, { 3281, 0x1070 }, + { 3285, 0x0000 }, { 3285, 0x8000 }, { 3286, 0x3c00 }, { 3290, 0x0000 }, + /* 0x21000 */ + { 3290, 0x0000 }, { 3290, 0x6010 }, { 3293, 0x0000 }, { 3293, 0x0000 }, + { 3293, 0x8000 }, { 3294, 0x1000 }, { 3295, 0x8000 }, { 3296, 0x09e0 }, + { 3301, 0x0100 }, { 3302, 0x2040 }, { 3304, 0x0000 }, { 3304, 0x8010 }, + { 3306, 0x8383 }, { 3312, 0x0008 }, { 3313, 0x0010 }, { 3314, 0x0070 }, + /* 0x21100 */ + { 3317, 0x0000 }, { 3317, 0x0000 }, { 3317, 0x8000 }, { 3318, 0x2800 }, + { 3320, 0x8120 }, { 3323, 0x0000 }, { 3323, 0x0000 }, { 3323, 0x0000 }, + { 3323, 0x0081 }, { 3325, 0x0000 }, { 3325, 0x0000 }, { 3325, 0x0000 }, + { 3325, 0x0000 }, { 3325, 0x0200 }, { 3326, 0x0000 }, { 3326, 0x0000 }, + /* 0x21200 */ + { 3326, 0x0000 }, { 3326, 0x0000 }, { 3326, 0x0000 }, { 3326, 0x1000 }, + { 3327, 0x8000 }, { 3328, 0x0000 }, { 3328, 0x0000 }, { 3328, 0x1000 }, + { 3329, 0x0000 }, { 3329, 0x0000 }, { 3329, 0x0300 }, { 3331, 0x0001 }, + { 3332, 0x0000 }, { 3332, 0x0000 }, { 3332, 0x0008 }, { 3333, 0x4000 }, + /* 0x21300 */ + { 3334, 0x003c }, { 3338, 0x0000 }, { 3338, 0x0000 }, { 3338, 0x0440 }, + { 3340, 0x0000 }, { 3340, 0x0000 }, { 3340, 0x0000 }, { 3340, 0x0060 }, + { 3342, 0x4000 }, { 3343, 0x1100 }, { 3345, 0x0000 }, { 3345, 0x0000 }, + { 3345, 0x0060 }, { 3347, 0x0000 }, { 3347, 0x2000 }, { 3348, 0x4000 }, + /* 0x21400 */ + { 3349, 0x0000 }, { 3349, 0x0048 }, { 3351, 0x0010 }, { 3352, 0x0000 }, + { 3352, 0x0000 }, { 3352, 0x0034 }, { 3355, 0x0000 }, { 3355, 0x0000 }, + { 3355, 0x0400 }, { 3356, 0x0080 }, { 3357, 0x0000 }, { 3357, 0x0040 }, + { 3358, 0x0000 }, { 3358, 0x0000 }, { 3358, 0x0100 }, { 3359, 0x2000 }, + /* 0x21500 */ + { 3360, 0x0000 }, { 3360, 0x0000 }, { 3360, 0x0000 }, { 3360, 0x0000 }, + { 3360, 0x0000 }, { 3360, 0x0000 }, { 3360, 0x0000 }, { 3360, 0x0080 }, + { 3361, 0x0004 }, { 3362, 0x0040 }, { 3363, 0x0000 }, { 3363, 0x0000 }, + { 3363, 0x0000 }, { 3363, 0x0000 }, { 3363, 0x0000 }, { 3363, 0x0000 }, + /* 0x21600 */ + { 3363, 0x0400 }, { 3364, 0x0208 }, { 3366, 0x0000 }, { 3366, 0x4000 }, + { 3367, 0x0000 }, { 3367, 0x0000 }, { 3367, 0x0002 }, { 3368, 0x0000 }, + { 3368, 0x0000 }, { 3368, 0x0004 }, { 3369, 0x0000 }, { 3369, 0x0500 }, + { 3371, 0x0007 }, { 3374, 0x8028 }, { 3377, 0x01c0 }, { 3380, 0x5c00 }, + /* 0x21700 */ + { 3384, 0x2000 }, { 3385, 0x0001 }, { 3386, 0x0040 }, { 3387, 0x1c00 }, + { 3390, 0x0000 }, { 3390, 0x0080 }, { 3391, 0xf000 }, { 3395, 0x001b }, + { 3399, 0x0000 }, { 3399, 0x0000 }, { 3399, 0x0800 }, { 3400, 0x003f }, + { 3406, 0x0088 }, { 3408, 0x9e00 }, { 3413, 0x8000 }, { 3414, 0x1f60 }, + /* 0x21800 */ + { 3421, 0x0000 }, { 3421, 0x0000 }, { 3421, 0x2701 }, { 3426, 0x0e00 }, + { 3429, 0x0021 }, { 3431, 0x4004 }, { 3433, 0x001e }, { 3437, 0x0880 }, + { 3439, 0x0038 }, { 3442, 0xc000 }, { 3444, 0x0007 }, { 3447, 0xc000 }, + { 3449, 0x0000 }, { 3449, 0x03c2 }, { 3454, 0x0000 }, { 3454, 0x0400 }, + /* 0x21900 */ + { 3455, 0x0038 }, { 3458, 0x1027 }, { 3463, 0x0084 }, { 3465, 0x0800 }, + { 3466, 0x0010 }, { 3467, 0x0100 }, { 3468, 0x0400 }, { 3469, 0x1000 }, + { 3470, 0x0108 }, { 3472, 0x0040 }, { 3473, 0x0000 }, { 3473, 0x0000 }, + { 3473, 0x0000 }, { 3473, 0x0800 }, { 3474, 0x0000 }, { 3474, 0x0008 }, + /* 0x21a00 */ + { 3475, 0x0000 }, { 3475, 0x0000 }, { 3475, 0x2000 }, { 3476, 0x0010 }, + { 3477, 0x0820 }, { 3479, 0x0000 }, { 3479, 0x0000 }, { 3479, 0x0000 }, + { 3479, 0x0000 }, { 3479, 0x0000 }, { 3479, 0x0000 }, { 3479, 0x0000 }, + { 3479, 0x0000 }, { 3479, 0x0000 }, { 3479, 0x0000 }, { 3479, 0x0000 }, + /* 0x21b00 */ + { 3479, 0x0000 }, { 3479, 0x0000 }, { 3479, 0x0000 }, { 3479, 0x0000 }, + { 3479, 0x0010 }, { 3480, 0x0000 }, { 3480, 0x0000 }, { 3480, 0x0000 }, + { 3480, 0x0000 }, { 3480, 0x0000 }, { 3480, 0x0000 }, { 3480, 0x0000 }, + { 3480, 0x0006 }, { 3482, 0x0000 }, { 3482, 0x0000 }, { 3482, 0x0000 }, + /* 0x21c00 */ + { 3482, 0x0000 }, { 3482, 0x0000 }, { 3482, 0x0400 }, { 3483, 0x0000 }, + { 3483, 0x0000 }, { 3483, 0x0000 }, { 3483, 0x0000 }, { 3483, 0x0001 }, + { 3484, 0x0000 }, { 3484, 0x0000 }, { 3484, 0x1024 }, { 3487, 0x0000 }, + { 3487, 0x0000 }, { 3487, 0x0000 }, { 3487, 0x0000 }, { 3487, 0x0000 }, + /* 0x21d00 */ + { 3487, 0x0000 }, { 3487, 0x0000 }, { 3487, 0x0000 }, { 3487, 0x0000 }, + { 3487, 0x0040 }, { 3488, 0x0000 }, { 3488, 0x0000 }, { 3488, 0x0000 }, + { 3488, 0x0000 }, { 3488, 0x0001 }, { 3489, 0x0000 }, { 3489, 0x0400 }, + { 3490, 0x0400 }, { 3491, 0x0002 }, { 3492, 0x0800 }, { 3493, 0x0200 }, + /* 0x21e00 */ + { 3494, 0x0000 }, { 3494, 0x1000 }, { 3495, 0x0000 }, { 3495, 0x2080 }, + { 3497, 0x0000 }, { 3497, 0x0000 }, { 3497, 0x0000 }, { 3497, 0x0000 }, + { 3497, 0x0200 }, { 3498, 0x0000 }, { 3498, 0x0110 }, { 3500, 0x0000 }, + { 3500, 0x0100 }, { 3501, 0x0020 }, { 3502, 0x0000 }, { 3502, 0x0000 }, + /* 0x21f00 */ + { 3502, 0x8000 }, { 3503, 0x0020 }, { 3504, 0x0000 }, { 3504, 0x0000 }, + { 3504, 0x0000 }, { 3504, 0x0000 }, { 3504, 0x0400 }, { 3505, 0x0000 }, + { 3505, 0x0000 }, { 3505, 0x4000 }, { 3506, 0x0002 }, { 3507, 0x0000 }, + { 3507, 0x0000 }, { 3507, 0x0000 }, { 3507, 0x0100 }, { 3508, 0x0000 }, + /* 0x22000 */ + { 3508, 0x0000 }, { 3508, 0x0000 }, { 3508, 0x0000 }, { 3508, 0x0000 }, + { 3508, 0x0220 }, { 3510, 0x0000 }, { 3510, 0x0000 }, { 3510, 0x0000 }, + { 3510, 0x0000 }, { 3510, 0x0400 }, { 3511, 0x0000 }, { 3511, 0x0000 }, + { 3511, 0x0080 }, { 3512, 0x0000 }, { 3512, 0x0000 }, { 3512, 0x1000 }, + /* 0x22100 */ + { 3513, 0x0000 }, { 3513, 0x0000 }, { 3513, 0x0400 }, { 3514, 0x0000 }, + { 3514, 0x0000 }, { 3514, 0x0800 }, { 3515, 0x0000 }, { 3515, 0x0408 }, + { 3517, 0x0000 }, { 3517, 0x0000 }, { 3517, 0x0002 }, { 3518, 0x0000 }, + { 3518, 0x0008 }, { 3519, 0x0000 }, { 3519, 0x0000 }, { 3519, 0x0000 }, + /* 0x22200 */ + { 3519, 0x0100 }, { 3520, 0x0000 }, { 3520, 0x0000 }, { 3520, 0x0000 }, + { 3520, 0x0000 }, { 3520, 0x0000 }, { 3520, 0x0000 }, { 3520, 0x1000 }, + { 3521, 0x0000 }, { 3521, 0x0000 }, { 3521, 0x0000 }, { 3521, 0x0000 }, + { 3521, 0x0000 }, { 3521, 0x0000 }, { 3521, 0x0000 }, { 3521, 0x0000 }, + /* 0x22300 */ + { 3521, 0x0000 }, { 3521, 0x0000 }, { 3521, 0x0022 }, { 3523, 0x0000 }, + { 3523, 0x0000 }, { 3523, 0x0000 }, { 3523, 0x0000 }, { 3523, 0x0000 }, + { 3523, 0x0000 }, { 3523, 0x0000 }, { 3523, 0x0000 }, { 3523, 0x2000 }, + { 3524, 0x0000 }, { 3524, 0x0081 }, { 3526, 0x0000 }, { 3526, 0x0400 }, + /* 0x22400 */ + { 3527, 0x0000 }, { 3527, 0x0000 }, { 3527, 0x0000 }, { 3527, 0x0000 }, + { 3527, 0x0000 }, { 3527, 0x0000 }, { 3527, 0x0020 }, { 3528, 0x0002 }, + { 3529, 0x0800 }, { 3530, 0x0002 }, { 3531, 0x0000 }, { 3531, 0x0001 }, + { 3532, 0x0000 }, { 3532, 0x0000 }, { 3532, 0x2000 }, { 3533, 0x0000 }, + /* 0x22500 */ + { 3533, 0x0000 }, { 3533, 0x0808 }, { 3535, 0x0000 }, { 3535, 0x0001 }, + { 3536, 0x0000 }, { 3536, 0x0010 }, { 3537, 0x0000 }, { 3537, 0x0000 }, + { 3537, 0x2000 }, { 3538, 0x0000 }, { 3538, 0x8000 }, { 3539, 0x4000 }, + { 3540, 0x0000 }, { 3540, 0x0000 }, { 3540, 0x0000 }, { 3540, 0x0000 }, + /* 0x22600 */ + { 3540, 0x0000 }, { 3540, 0x1800 }, { 3542, 0x0800 }, { 3543, 0x0000 }, + { 3543, 0x0000 }, { 3543, 0x0000 }, { 3543, 0x0100 }, { 3544, 0x0400 }, + { 3545, 0x0000 }, { 3545, 0x0140 }, { 3547, 0x0000 }, { 3547, 0x0000 }, + { 3547, 0x0000 }, { 3547, 0x0000 }, { 3547, 0x0000 }, { 3547, 0x0070 }, + /* 0x22700 */ + { 3550, 0x0000 }, { 3550, 0x8810 }, { 3553, 0x0400 }, { 3554, 0x0000 }, + { 3554, 0x0000 }, { 3554, 0x0000 }, { 3554, 0x0000 }, { 3554, 0x0020 }, + { 3555, 0x0002 }, { 3556, 0x0000 }, { 3556, 0x0000 }, { 3556, 0x0030 }, + { 3558, 0x2000 }, { 3559, 0x0000 }, { 3559, 0x0000 }, { 3559, 0x0000 }, + /* 0x22800 */ + { 3559, 0x0008 }, { 3560, 0x0000 }, { 3560, 0x0000 }, { 3560, 0x0000 }, + { 3560, 0x0000 }, { 3560, 0x8000 }, { 3561, 0x0001 }, { 3562, 0x0002 }, + { 3563, 0x0000 }, { 3563, 0x0000 }, { 3563, 0x2000 }, { 3564, 0x0000 }, + { 3564, 0x0002 }, { 3565, 0x0000 }, { 3565, 0x0000 }, { 3565, 0x0080 }, + /* 0x22900 */ + { 3566, 0x0000 }, { 3566, 0x0000 }, { 3566, 0x0040 }, { 3567, 0x0200 }, + { 3568, 0x8000 }, { 3569, 0x0000 }, { 3569, 0x0880 }, { 3571, 0x0000 }, + { 3571, 0x0001 }, { 3572, 0x0008 }, { 3573, 0x0000 }, { 3573, 0x0000 }, + { 3573, 0x0000 }, { 3573, 0x0000 }, { 3573, 0x0000 }, { 3573, 0x0000 }, + /* 0x22a00 */ + { 3573, 0x0000 }, { 3573, 0x0000 }, { 3573, 0x0000 }, { 3573, 0x0000 }, + { 3573, 0x0000 }, { 3573, 0x0000 }, { 3573, 0x0040 }, { 3574, 0x0000 }, + { 3574, 0x0000 }, { 3574, 0x0000 }, { 3574, 0x0000 }, { 3574, 0x0000 }, + { 3574, 0x8000 }, { 3575, 0x0020 }, { 3576, 0x0140 }, { 3578, 0x0000 }, + /* 0x22b00 */ + { 3578, 0x4000 }, { 3579, 0x0000 }, { 3579, 0x0004 }, { 3580, 0x8000 }, + { 3581, 0x0008 }, { 3582, 0x0000 }, { 3582, 0x0400 }, { 3583, 0x0000 }, + { 3583, 0x0000 }, { 3583, 0x0000 }, { 3583, 0x0000 }, { 3583, 0x0000 }, + { 3583, 0x4400 }, { 3585, 0x0000 }, { 3585, 0x0000 }, { 3585, 0x0000 }, + /* 0x22c00 */ + { 3585, 0x0000 }, { 3585, 0x0000 }, { 3585, 0x00c0 }, { 3587, 0x0100 }, + { 3588, 0x1000 }, { 3589, 0x0022 }, { 3591, 0x0004 }, { 3592, 0x0000 }, + { 3592, 0x0100 }, { 3593, 0x0800 }, { 3594, 0x0202 }, { 3596, 0x0084 }, + { 3598, 0x0244 }, { 3601, 0x0000 }, { 3601, 0x0000 }, { 3601, 0x0000 }, + /* 0x22d00 */ + { 3601, 0x0180 }, { 3603, 0x0004 }, { 3604, 0x0000 }, { 3604, 0x0000 }, + { 3604, 0x1010 }, { 3606, 0x0000 }, { 3606, 0x0080 }, { 3607, 0x0000 }, + { 3607, 0x2000 }, { 3608, 0x0020 }, { 3609, 0x0019 }, { 3612, 0x0080 }, + { 3613, 0x0000 }, { 3613, 0x0000 }, { 3613, 0x4000 }, { 3614, 0x0000 }, + /* 0x22e00 */ + { 3614, 0x2000 }, { 3615, 0x0000 }, { 3615, 0x0000 }, { 3615, 0x0040 }, + { 3616, 0x0004 }, { 3617, 0x0000 }, { 3617, 0x0000 }, { 3617, 0x0100 }, + { 3618, 0x0800 }, { 3619, 0x0000 }, { 3619, 0x0000 }, { 3619, 0x0008 }, + { 3620, 0x0000 }, { 3620, 0x0000 }, { 3620, 0x8000 }, { 3621, 0x0000 }, + /* 0x22f00 */ + { 3621, 0x0000 }, { 3621, 0x0000 }, { 3621, 0x0000 }, { 3621, 0x0000 }, + { 3621, 0x0000 }, { 3621, 0x0000 }, { 3621, 0x0000 }, { 3621, 0x0010 }, + { 3622, 0x0000 }, { 3622, 0x0000 }, { 3622, 0x0000 }, { 3622, 0x0000 }, + { 3622, 0x1000 }, { 3623, 0x0000 }, { 3623, 0x0008 }, { 3624, 0x0000 }, + /* 0x23000 */ + { 3624, 0x0000 }, { 3624, 0x0000 }, { 3624, 0x0000 }, { 3624, 0x0008 }, + { 3625, 0x0810 }, { 3627, 0x0000 }, { 3627, 0x0040 }, { 3628, 0x6000 }, + { 3630, 0x4000 }, { 3631, 0x0000 }, { 3631, 0x0000 }, { 3631, 0x1080 }, + { 3633, 0x0000 }, { 3633, 0x0400 }, { 3634, 0x0000 }, { 3634, 0x0000 }, + /* 0x23100 */ + { 3634, 0x0008 }, { 3635, 0x0000 }, { 3635, 0x0000 }, { 3635, 0x2000 }, + { 3636, 0x0000 }, { 3636, 0x0000 }, { 3636, 0x0000 }, { 3636, 0x2000 }, + { 3637, 0x0004 }, { 3638, 0x0000 }, { 3638, 0x0030 }, { 3640, 0x0008 }, + { 3641, 0x0300 }, { 3643, 0x0000 }, { 3643, 0x0000 }, { 3643, 0x0380 }, + /* 0x23200 */ + { 3646, 0x8000 }, { 3647, 0x0000 }, { 3647, 0x8020 }, { 3649, 0x001e }, + { 3653, 0x0000 }, { 3653, 0x0000 }, { 3653, 0x0004 }, { 3654, 0x0000 }, + { 3654, 0x0600 }, { 3656, 0x0000 }, { 3656, 0x3800 }, { 3659, 0x0000 }, + { 3659, 0x0000 }, { 3659, 0x0004 }, { 3660, 0x0003 }, { 3662, 0x0000 }, + /* 0x23300 */ + { 3662, 0x0401 }, { 3664, 0x8000 }, { 3665, 0x0000 }, { 3665, 0x0000 }, + { 3665, 0x0000 }, { 3665, 0x0000 }, { 3665, 0x0000 }, { 3665, 0x0000 }, + { 3665, 0x0000 }, { 3665, 0x0000 }, { 3665, 0x0000 }, { 3665, 0x0010 }, + { 3666, 0x1000 }, { 3667, 0x4000 }, { 3668, 0x0040 }, { 3669, 0x4430 }, + /* 0x23400 */ + { 3673, 0x0001 }, { 3674, 0x0000 }, { 3674, 0x0000 }, { 3674, 0x8000 }, + { 3675, 0x0000 }, { 3675, 0x0001 }, { 3676, 0x8000 }, { 3677, 0x0004 }, + { 3678, 0x0000 }, { 3678, 0x0000 }, { 3678, 0x0000 }, { 3678, 0x0000 }, + { 3678, 0x0000 }, { 3678, 0x0000 }, { 3678, 0x0020 }, { 3679, 0x0000 }, + /* 0x23500 */ + { 3679, 0x0000 }, { 3679, 0x0200 }, { 3680, 0x0000 }, { 3680, 0x0001 }, + { 3681, 0x0000 }, { 3681, 0x0400 }, { 3682, 0x0080 }, { 3683, 0x0000 }, + { 3683, 0x0000 }, { 3683, 0x1220 }, { 3686, 0x0000 }, { 3686, 0x0000 }, + { 3686, 0xe000 }, { 3689, 0x0000 }, { 3689, 0x0000 }, { 3689, 0x0008 }, + /* 0x23600 */ + { 3690, 0x0001 }, { 3691, 0x0400 }, { 3692, 0x0000 }, { 3692, 0x1000 }, + { 3693, 0x0001 }, { 3694, 0x8200 }, { 3696, 0x0000 }, { 3696, 0x0080 }, + { 3697, 0x0000 }, { 3697, 0x0000 }, { 3697, 0x2040 }, { 3699, 0x0400 }, + { 3700, 0x0000 }, { 3700, 0x8000 }, { 3701, 0x4000 }, { 3702, 0x0000 }, + /* 0x23700 */ + { 3702, 0x0008 }, { 3703, 0x0040 }, { 3704, 0xa001 }, { 3707, 0x8000 }, + { 3708, 0x0000 }, { 3708, 0x0000 }, { 3708, 0x0040 }, { 3709, 0x0000 }, + { 3709, 0x0002 }, { 3710, 0x0000 }, { 3710, 0x0004 }, { 3711, 0x1000 }, + { 3712, 0x0004 }, { 3713, 0x00e0 }, { 3716, 0x0000 }, { 3716, 0x0000 }, + /* 0x23800 */ + { 3716, 0x0000 }, { 3716, 0x0000 }, { 3716, 0x0000 }, { 3716, 0x0400 }, + { 3717, 0x0000 }, { 3717, 0x0000 }, { 3717, 0x0000 }, { 3717, 0x0000 }, + { 3717, 0x0000 }, { 3717, 0x0000 }, { 3717, 0x0000 }, { 3717, 0x0000 }, + { 3717, 0x0000 }, { 3717, 0x0000 }, { 3717, 0x0000 }, { 3717, 0x0000 }, + /* 0x23900 */ + { 3717, 0x0000 }, { 3717, 0x0000 }, { 3717, 0x0000 }, { 3717, 0x0000 }, + { 3717, 0x0000 }, { 3717, 0x0000 }, { 3717, 0x0000 }, { 3717, 0x0000 }, + { 3717, 0x0000 }, { 3717, 0x0000 }, { 3717, 0x0000 }, { 3717, 0x0000 }, + { 3717, 0x0004 }, { 3718, 0x0000 }, { 3718, 0x0000 }, { 3718, 0x0000 }, + /* 0x23a00 */ + { 3718, 0x0000 }, { 3718, 0x0000 }, { 3718, 0x0000 }, { 3718, 0x0000 }, + { 3718, 0x0000 }, { 3718, 0x0000 }, { 3718, 0x0000 }, { 3718, 0x0000 }, + { 3718, 0x0000 }, { 3718, 0x0000 }, { 3718, 0x0080 }, { 3719, 0x0000 }, + { 3719, 0x0000 }, { 3719, 0x0800 }, { 3720, 0x4000 }, { 3721, 0x0400 }, + /* 0x23b00 */ + { 3722, 0x0000 }, { 3722, 0x0000 }, { 3722, 0x0000 }, { 3722, 0x0000 }, + { 3722, 0x0000 }, { 3722, 0x0400 }, { 3723, 0x0000 }, { 3723, 0x0000 }, + { 3723, 0x0000 }, { 3723, 0x0000 }, { 3723, 0x0000 }, { 3723, 0x0000 }, + { 3723, 0x0000 }, { 3723, 0x0000 }, { 3723, 0x0000 }, { 3723, 0x0000 }, + /* 0x23c00 */ + { 3723, 0x0000 }, { 3723, 0x0000 }, { 3723, 0x0000 }, { 3723, 0x0000 }, + { 3723, 0x0000 }, { 3723, 0x0000 }, { 3723, 0x0000 }, { 3723, 0x0000 }, + { 3723, 0x0000 }, { 3723, 0x0e00 }, { 3726, 0x0000 }, { 3726, 0x00a0 }, + { 3728, 0x0380 }, { 3731, 0x0000 }, { 3731, 0x0000 }, { 3731, 0xf000 }, + /* 0x23d00 */ + { 3735, 0x0000 }, { 3735, 0x0000 }, { 3735, 0x0000 }, { 3735, 0x0000 }, + { 3735, 0x0001 }, { 3736, 0x0800 }, { 3737, 0x0000 }, { 3737, 0x4000 }, + { 3738, 0x8000 }, { 3739, 0x0000 }, { 3739, 0x0000 }, { 3739, 0x3fc0 }, + { 3747, 0x0000 }, { 3747, 0x0000 }, { 3747, 0x0008 }, { 3748, 0x0100 }, + /* 0x23e00 */ + { 3749, 0x0000 }, { 3749, 0x0002 }, { 3750, 0xf000 }, { 3754, 0x0203 }, + { 3757, 0x0000 }, { 3757, 0x0000 }, { 3757, 0x0000 }, { 3757, 0x0000 }, + { 3757, 0x0f00 }, { 3761, 0x0000 }, { 3761, 0x0000 }, { 3761, 0x8200 }, + { 3763, 0x0000 }, { 3763, 0x0080 }, { 3764, 0x0000 }, { 3764, 0x1f80 }, + /* 0x23f00 */ + { 3770, 0x0000 }, { 3770, 0x0000 }, { 3770, 0x0000 }, { 3770, 0x0020 }, + { 3771, 0x0402 }, { 3773, 0x0000 }, { 3773, 0x0000 }, { 3773, 0x8000 }, + { 3774, 0x8007 }, { 3778, 0x0000 }, { 3778, 0x0000 }, { 3778, 0x0090 }, + { 3780, 0x0021 }, { 3782, 0x0000 }, { 3782, 0xf800 }, { 3787, 0x0001 }, + /* 0x24000 */ + { 3788, 0x0000 }, { 3788, 0x0002 }, { 3789, 0x0000 }, { 3789, 0x3e00 }, + { 3794, 0x0000 }, { 3794, 0x0080 }, { 3795, 0x0000 }, { 3795, 0x0000 }, + { 3795, 0x3820 }, { 3799, 0x0002 }, { 3800, 0x0000 }, { 3800, 0x0000 }, + { 3800, 0x0200 }, { 3801, 0x0000 }, { 3801, 0x0002 }, { 3802, 0x0000 }, + /* 0x24100 */ + { 3802, 0x8010 }, { 3804, 0x0200 }, { 3805, 0x0000 }, { 3805, 0x8000 }, + { 3806, 0x0011 }, { 3808, 0x90e0 }, { 3813, 0x0000 }, { 3813, 0x0480 }, + { 3815, 0x0000 }, { 3815, 0x0000 }, { 3815, 0x1038 }, { 3819, 0x0020 }, + { 3820, 0x2000 }, { 3821, 0x0000 }, { 3821, 0x0004 }, { 3822, 0x1000 }, + /* 0x24200 */ + { 3823, 0x0000 }, { 3823, 0x0800 }, { 3824, 0x0000 }, { 3824, 0x0000 }, + { 3824, 0x0800 }, { 3825, 0x0240 }, { 3827, 0x0000 }, { 3827, 0x01c0 }, + { 3830, 0x0010 }, { 3831, 0x0028 }, { 3833, 0x0020 }, { 3834, 0x0000 }, + { 3834, 0x0602 }, { 3837, 0x0000 }, { 3837, 0x4000 }, { 3838, 0x0400 }, + /* 0x24300 */ + { 3839, 0x2000 }, { 3840, 0x0400 }, { 3841, 0x0000 }, { 3841, 0x0010 }, + { 3842, 0x0100 }, { 3843, 0x0000 }, { 3843, 0x003c }, { 3847, 0x0000 }, + { 3847, 0x1000 }, { 3848, 0x1040 }, { 3850, 0x0000 }, { 3850, 0x2000 }, + { 3851, 0x0002 }, { 3852, 0x0000 }, { 3852, 0x0600 }, { 3854, 0x0104 }, + /* 0x24400 */ + { 3856, 0x0010 }, { 3857, 0x0000 }, { 3857, 0x0000 }, { 3857, 0x0060 }, + { 3859, 0x0000 }, { 3859, 0x0c00 }, { 3861, 0x0000 }, { 3861, 0x0008 }, + { 3862, 0x0180 }, { 3864, 0x0000 }, { 3864, 0x0000 }, { 3864, 0x1200 }, + { 3866, 0x4000 }, { 3867, 0x0048 }, { 3869, 0x0000 }, { 3869, 0x0000 }, + /* 0x24500 */ + { 3869, 0x0000 }, { 3869, 0x0000 }, { 3869, 0x0002 }, { 3870, 0x0000 }, + { 3870, 0x0000 }, { 3870, 0x0000 }, { 3870, 0x0000 }, { 3870, 0x0100 }, + { 3871, 0x0000 }, { 3871, 0x0000 }, { 3871, 0x0000 }, { 3871, 0x0000 }, + { 3871, 0x0100 }, { 3872, 0x0000 }, { 3872, 0x0000 }, { 3872, 0x0000 }, + /* 0x24600 */ + { 3872, 0x0000 }, { 3872, 0x0100 }, { 3873, 0x0400 }, { 3874, 0x0000 }, + { 3874, 0x0000 }, { 3874, 0x0000 }, { 3874, 0x0020 }, { 3875, 0x0010 }, + { 3876, 0x0000 }, { 3876, 0x0080 }, { 3877, 0x0000 }, { 3877, 0x0000 }, + { 3877, 0x0000 }, { 3877, 0x0010 }, { 3878, 0x0000 }, { 3878, 0x0000 }, + /* 0x24700 */ + { 3878, 0x0040 }, { 3879, 0x0000 }, { 3879, 0x8020 }, { 3881, 0x0000 }, + { 3881, 0x0000 }, { 3881, 0x0000 }, { 3881, 0x0000 }, { 3881, 0x0000 }, + { 3881, 0x8000 }, { 3882, 0x0000 }, { 3882, 0x0000 }, { 3882, 0x0000 }, + { 3882, 0x0000 }, { 3882, 0x0000 }, { 3882, 0x0001 }, { 3883, 0x0000 }, + /* 0x24800 */ + { 3883, 0x0000 }, { 3883, 0x0004 }, { 3884, 0x0008 }, { 3885, 0x0000 }, + { 3885, 0x0000 }, { 3885, 0x0000 }, { 3885, 0x0000 }, { 3885, 0x0000 }, + { 3885, 0x0004 }, { 3886, 0x0000 }, { 3886, 0x0000 }, { 3886, 0x0000 }, + { 3886, 0x0000 }, { 3886, 0x0000 }, { 3886, 0x0200 }, { 3887, 0x880f }, + /* 0x24900 */ + { 3893, 0x1003 }, { 3896, 0x02c0 }, { 3899, 0x8000 }, { 3900, 0xc018 }, + { 3904, 0x000f }, { 3908, 0x0000 }, { 3908, 0x000c }, { 3910, 0x8070 }, + { 3914, 0xff04 }, { 3923, 0x0010 }, { 3924, 0x3a90 }, { 3930, 0x0f80 }, + { 3935, 0x0020 }, { 3936, 0xc401 }, { 3940, 0x3028 }, { 3944, 0x0bc0 }, + /* 0x24a00 */ + { 3949, 0x4000 }, { 3950, 0x0024 }, { 3952, 0x07fe }, { 3962, 0x4000 }, + { 3963, 0xc424 }, { 3968, 0x2003 }, { 3971, 0x00e0 }, { 3974, 0x0782 }, + { 3979, 0x1000 }, { 3980, 0x0078 }, { 3984, 0x00f0 }, { 3988, 0x1c0e }, + { 3994, 0x0481 }, { 3997, 0x8002 }, { 3999, 0x0204 }, { 4001, 0x0000 }, + /* 0x24b00 */ + { 4001, 0x0000 }, { 4001, 0x0000 }, { 4001, 0x0000 }, { 4001, 0x0000 }, + { 4001, 0x0000 }, { 4001, 0x0000 }, { 4001, 0x4000 }, { 4002, 0x0000 }, + { 4002, 0x0000 }, { 4002, 0x0000 }, { 4002, 0x0000 }, { 4002, 0x0000 }, + { 4002, 0x0000 }, { 4002, 0x0000 }, { 4002, 0x0000 }, { 4002, 0x0020 }, + /* 0x24c00 */ + { 4003, 0x0200 }, { 4004, 0x0000 }, { 4004, 0x0000 }, { 4004, 0x0000 }, + { 4004, 0x0000 }, { 4004, 0x0000 }, { 4004, 0x0000 }, { 4004, 0x0000 }, + { 4004, 0x0000 }, { 4004, 0xc000 }, { 4006, 0x0000 }, { 4006, 0x0000 }, + { 4006, 0x0200 }, { 4007, 0x0200 }, { 4008, 0x0000 }, { 4008, 0x0000 }, + /* 0x24d00 */ + { 4008, 0x0040 }, { 4009, 0x0008 }, { 4010, 0x0000 }, { 4010, 0x0000 }, + { 4010, 0x0000 }, { 4010, 0x0000 }, { 4010, 0x0000 }, { 4010, 0x0000 }, + { 4010, 0x0000 }, { 4010, 0x0000 }, { 4010, 0x0000 }, { 4010, 0x0100 }, + { 4011, 0x0000 }, { 4011, 0x0000 }, { 4011, 0x0c00 }, { 4013, 0x0000 }, + /* 0x24e00 */ + { 4013, 0x0000 }, { 4013, 0x0000 }, { 4013, 0x0000 }, { 4013, 0x0800 }, + { 4014, 0x0000 }, { 4014, 0x0001 }, { 4015, 0x0000 }, { 4015, 0x0000 }, + { 4015, 0x0000 }, { 4015, 0x0000 }, { 4015, 0x00a0 }, { 4017, 0x0000 }, + { 4017, 0x0000 }, { 4017, 0x0000 }, { 4017, 0x0000 }, { 4017, 0x0000 }, + /* 0x24f00 */ + { 4017, 0x4000 }, { 4018, 0x0000 }, { 4018, 0x0000 }, { 4018, 0x0000 }, + { 4018, 0x0000 }, { 4018, 0x1000 }, { 4019, 0x0000 }, { 4019, 0x0000 }, + { 4019, 0x0044 }, { 4021, 0x0480 }, { 4023, 0x0200 }, { 4024, 0x0100 }, + { 4025, 0x0004 }, { 4026, 0x0000 }, { 4026, 0x0000 }, { 4026, 0x0000 }, + /* 0x25000 */ + { 4026, 0x0000 }, { 4026, 0x0000 }, { 4026, 0x1000 }, { 4027, 0x0000 }, + { 4027, 0x0000 }, { 4027, 0x0004 }, { 4028, 0x0000 }, { 4028, 0x0000 }, + { 4028, 0x0000 }, { 4028, 0x2000 }, { 4029, 0x0000 }, { 4029, 0x0000 }, + { 4029, 0x0000 }, { 4029, 0x0000 }, { 4029, 0x0000 }, { 4029, 0x0000 }, + /* 0x25100 */ + { 4029, 0x0000 }, { 4029, 0x0000 }, { 4029, 0x0800 }, { 4030, 0x0000 }, + { 4030, 0x0100 }, { 4031, 0x0000 }, { 4031, 0x0000 }, { 4031, 0x6000 }, + { 4033, 0x0000 }, { 4033, 0x0000 }, { 4033, 0x0000 }, { 4033, 0x0000 }, + { 4033, 0x0000 }, { 4033, 0x0000 }, { 4033, 0x00c8 }, { 4036, 0x0000 }, + /* 0x25200 */ + { 4036, 0x0000 }, { 4036, 0x0000 }, { 4036, 0x0003 }, { 4038, 0x0000 }, + { 4038, 0x0000 }, { 4038, 0x0001 }, { 4039, 0x0000 }, { 4039, 0x0000 }, + { 4039, 0x0000 }, { 4039, 0x0200 }, { 4040, 0x0000 }, { 4040, 0x0000 }, + { 4040, 0x0080 }, { 4041, 0x0100 }, { 4042, 0x0000 }, { 4042, 0x0000 }, + /* 0x25300 */ + { 4042, 0x4000 }, { 4043, 0x000a }, { 4045, 0x0000 }, { 4045, 0x0000 }, + { 4045, 0x0000 }, { 4045, 0x0000 }, { 4045, 0x0000 }, { 4045, 0x0000 }, + { 4045, 0x0000 }, { 4045, 0x0000 }, { 4045, 0x0000 }, { 4045, 0x0000 }, + { 4045, 0x0000 }, { 4045, 0x0000 }, { 4045, 0x0000 }, { 4045, 0x0000 }, + /* 0x25400 */ + { 4045, 0x0000 }, { 4045, 0x0200 }, { 4046, 0x8020 }, { 4048, 0x0001 }, + { 4049, 0x0040 }, { 4050, 0x0000 }, { 4050, 0x5000 }, { 4052, 0x0000 }, + { 4052, 0x0000 }, { 4052, 0x0000 }, { 4052, 0x0000 }, { 4052, 0x0000 }, + { 4052, 0x0000 }, { 4052, 0x0000 }, { 4052, 0x0000 }, { 4052, 0x0000 }, + /* 0x25500 */ + { 4052, 0x0000 }, { 4052, 0x0000 }, { 4052, 0x0000 }, { 4052, 0x8022 }, + { 4055, 0x0000 }, { 4055, 0x7800 }, { 4059, 0x0064 }, { 4062, 0x0000 }, + { 4062, 0x8012 }, { 4065, 0x0000 }, { 4065, 0x0000 }, { 4065, 0x0200 }, + { 4066, 0x0000 }, { 4066, 0x0820 }, { 4068, 0x0001 }, { 4069, 0x0000 }, + /* 0x25600 */ + { 4069, 0x0020 }, { 4070, 0x0000 }, { 4070, 0x0000 }, { 4070, 0x0020 }, + { 4071, 0x0000 }, { 4071, 0x0002 }, { 4072, 0x0000 }, { 4072, 0x0000 }, + { 4072, 0x0008 }, { 4073, 0x0000 }, { 4073, 0x0000 }, { 4073, 0x0000 }, + { 4073, 0x0000 }, { 4073, 0x0000 }, { 4073, 0x0008 }, { 4074, 0x0040 }, + /* 0x25700 */ + { 4075, 0x0040 }, { 4076, 0x2000 }, { 4077, 0x0020 }, { 4078, 0x2000 }, + { 4079, 0x0000 }, { 4079, 0x0000 }, { 4079, 0x0000 }, { 4079, 0x0004 }, + { 4080, 0x0000 }, { 4080, 0x0000 }, { 4080, 0x0000 }, { 4080, 0x0000 }, + { 4080, 0x0080 }, { 4081, 0x8000 }, { 4082, 0x0003 }, { 4084, 0x0000 }, + /* 0x25800 */ + { 4084, 0x0000 }, { 4084, 0x0000 }, { 4084, 0x0000 }, { 4084, 0x0000 }, + { 4084, 0x0000 }, { 4084, 0x2080 }, { 4086, 0x0000 }, { 4086, 0x0004 }, + { 4087, 0x0000 }, { 4087, 0x0000 }, { 4087, 0x0000 }, { 4087, 0x0000 }, + { 4087, 0x0100 }, { 4088, 0x0000 }, { 4088, 0x0002 }, { 4089, 0x0000 }, + /* 0x25900 */ + { 4089, 0x0008 }, { 4090, 0x0000 }, { 4090, 0x0000 }, { 4090, 0x0000 }, + { 4090, 0x0040 }, { 4091, 0x0040 }, { 4092, 0x0000 }, { 4092, 0x0000 }, + { 4092, 0x0000 }, { 4092, 0x0000 }, { 4092, 0x1000 }, { 4093, 0x0000 }, + { 4093, 0x1000 }, { 4094, 0x0000 }, { 4094, 0x0000 }, { 4094, 0x0000 }, + /* 0x25a00 */ + { 4094, 0x0000 }, { 4094, 0x0000 }, { 4094, 0x0000 }, { 4094, 0x0000 }, + { 4094, 0x0000 }, { 4094, 0x0000 }, { 4094, 0x0000 }, { 4094, 0x0000 }, + { 4094, 0x0000 }, { 4094, 0x1020 }, { 4096, 0xc000 }, { 4098, 0x0000 }, + { 4098, 0x0000 }, { 4098, 0x0000 }, { 4098, 0x0200 }, { 4099, 0x0000 }, + /* 0x25b00 */ + { 4099, 0x0000 }, { 4099, 0x0000 }, { 4099, 0x0000 }, { 4099, 0x0000 }, + { 4099, 0x0000 }, { 4099, 0x0000 }, { 4099, 0x0000 }, { 4099, 0x0010 }, + { 4100, 0x0200 }, { 4101, 0x0000 }, { 4101, 0x0000 }, { 4101, 0x0018 }, + { 4103, 0x0040 }, { 4104, 0x0000 }, { 4104, 0x0110 }, { 4106, 0x0000 }, + /* 0x25c00 */ + { 4106, 0x0042 }, { 4108, 0x0000 }, { 4108, 0x0002 }, { 4109, 0x0000 }, + { 4109, 0x0400 }, { 4110, 0x0000 }, { 4110, 0x0020 }, { 4111, 0x0000 }, + { 4111, 0x0000 }, { 4111, 0x0002 }, { 4112, 0x0000 }, { 4112, 0x0000 }, + { 4112, 0x0003 }, { 4114, 0x0000 }, { 4114, 0x0000 }, { 4114, 0x4000 }, + /* 0x25d00 */ + { 4115, 0x0000 }, { 4115, 0x0000 }, { 4115, 0x0001 }, { 4116, 0x0000 }, + { 4116, 0x0008 }, { 4117, 0x0000 }, { 4117, 0x0000 }, { 4117, 0x0000 }, + { 4117, 0x0000 }, { 4117, 0x0000 }, { 4117, 0x0000 }, { 4117, 0x0000 }, + { 4117, 0x0000 }, { 4117, 0x0000 }, { 4117, 0x0000 }, { 4117, 0x0000 }, + /* 0x25e00 */ + { 4117, 0x4000 }, { 4118, 0x0000 }, { 4118, 0x0000 }, { 4118, 0x0000 }, + { 4118, 0x0200 }, { 4119, 0x0000 }, { 4119, 0x0000 }, { 4119, 0x0000 }, + { 4119, 0x000e }, { 4122, 0x0000 }, { 4122, 0x0040 }, { 4123, 0x1000 }, + { 4124, 0x0000 }, { 4124, 0x0180 }, { 4126, 0x0000 }, { 4126, 0x0000 }, + /* 0x25f00 */ + { 4126, 0x0000 }, { 4126, 0x0400 }, { 4127, 0x0000 }, { 4127, 0x0000 }, + { 4127, 0x0800 }, { 4128, 0x0000 }, { 4128, 0x0000 }, { 4128, 0x0000 }, + { 4128, 0x0000 }, { 4128, 0x0000 }, { 4128, 0x0000 }, { 4128, 0x0000 }, + { 4128, 0x0000 }, { 4128, 0x0000 }, { 4128, 0x0006 }, { 4130, 0x0000 }, + /* 0x26000 */ + { 4130, 0x0000 }, { 4130, 0x0000 }, { 4130, 0x0200 }, { 4131, 0x0000 }, + { 4131, 0x0100 }, { 4132, 0x0000 }, { 4132, 0x0010 }, { 4133, 0x0000 }, + { 4133, 0x0008 }, { 4134, 0x0080 }, { 4135, 0x0030 }, { 4137, 0x0000 }, + { 4137, 0x0000 }, { 4137, 0x0000 }, { 4137, 0x0000 }, { 4137, 0x0000 }, + /* 0x26100 */ + { 4137, 0x0004 }, { 4138, 0x0000 }, { 4138, 0x0002 }, { 4139, 0x0000 }, + { 4139, 0x0000 }, { 4139, 0x1e00 }, { 4143, 0x0000 }, { 4143, 0x0000 }, + { 4143, 0x0000 }, { 4143, 0x0000 }, { 4143, 0x6000 }, { 4145, 0x0004 }, + { 4146, 0x0000 }, { 4146, 0x2000 }, { 4147, 0x0000 }, { 4147, 0x0000 }, + /* 0x26200 */ + { 4147, 0x0000 }, { 4147, 0x0000 }, { 4147, 0x0000 }, { 4147, 0x0000 }, + { 4147, 0x0000 }, { 4147, 0x0100 }, { 4148, 0x0c02 }, { 4151, 0x0000 }, + { 4151, 0x0000 }, { 4151, 0x0000 }, { 4151, 0x0000 }, { 4151, 0x0000 }, + { 4151, 0x0000 }, { 4151, 0x0001 }, { 4152, 0x0000 }, { 4152, 0x0000 }, + /* 0x26300 */ + { 4152, 0x0000 }, { 4152, 0x0000 }, { 4152, 0x0000 }, { 4152, 0x0020 }, + { 4153, 0x1800 }, { 4155, 0x0002 }, { 4156, 0x0000 }, { 4156, 0x0000 }, + { 4156, 0x0000 }, { 4156, 0x0000 }, { 4156, 0x0000 }, { 4156, 0x4000 }, + { 4157, 0x0000 }, { 4157, 0x0000 }, { 4157, 0x0000 }, { 4157, 0x0120 }, + /* 0x26400 */ + { 4159, 0x0004 }, { 4160, 0x0007 }, { 4163, 0x0000 }, { 4163, 0x0000 }, + { 4163, 0x0400 }, { 4164, 0x0000 }, { 4164, 0x0200 }, { 4165, 0x0000 }, + { 4165, 0x2310 }, { 4169, 0x0100 }, { 4170, 0x0000 }, { 4170, 0x0000 }, + { 4170, 0x0000 }, { 4170, 0x0000 }, { 4170, 0x0000 }, { 4170, 0x0000 }, + /* 0x26500 */ + { 4170, 0x0000 }, { 4170, 0x0004 }, { 4171, 0x0000 }, { 4171, 0x0000 }, + { 4171, 0x0000 }, { 4171, 0x0000 }, { 4171, 0x0000 }, { 4171, 0x0004 }, + { 4172, 0x0000 }, { 4172, 0x0000 }, { 4172, 0x2001 }, { 4174, 0x8000 }, + { 4175, 0x0000 }, { 4175, 0x0000 }, { 4175, 0x0000 }, { 4175, 0x0000 }, + /* 0x26600 */ + { 4175, 0x0000 }, { 4175, 0x0004 }, { 4176, 0x0040 }, { 4177, 0x0000 }, + { 4177, 0x0000 }, { 4177, 0x0000 }, { 4177, 0x0000 }, { 4177, 0x0000 }, + { 4177, 0x0000 }, { 4177, 0x0000 }, { 4177, 0x8000 }, { 4178, 0x0022 }, + { 4180, 0x0000 }, { 4180, 0x0400 }, { 4181, 0x0100 }, { 4182, 0x1000 }, + /* 0x26700 */ + { 4183, 0x0000 }, { 4183, 0x0040 }, { 4184, 0x0000 }, { 4184, 0x0000 }, + { 4184, 0x0002 }, { 4185, 0x0000 }, { 4185, 0x0000 }, { 4185, 0x0000 }, + { 4185, 0x0000 }, { 4185, 0x0200 }, { 4186, 0x0000 }, { 4186, 0x0018 }, + { 4188, 0x1000 }, { 4189, 0x0000 }, { 4189, 0x0000 }, { 4189, 0x0000 }, + /* 0x26800 */ + { 4189, 0x0000 }, { 4189, 0x1000 }, { 4190, 0x0000 }, { 4190, 0x0000 }, + { 4190, 0x0040 }, { 4191, 0x4000 }, { 4192, 0x4000 }, { 4193, 0x0000 }, + { 4193, 0x0500 }, { 4195, 0x0008 }, { 4196, 0x0000 }, { 4196, 0x0000 }, + { 4196, 0x0080 }, { 4197, 0x0000 }, { 4197, 0x0000 }, { 4197, 0x0000 }, + /* 0x26900 */ + { 4197, 0x4000 }, { 4198, 0x0002 }, { 4199, 0x0040 }, { 4200, 0x0200 }, + { 4201, 0x0000 }, { 4201, 0x0002 }, { 4202, 0x0000 }, { 4202, 0x0000 }, + { 4202, 0x0000 }, { 4202, 0x0000 }, { 4202, 0x0100 }, { 4203, 0x0020 }, + { 4204, 0x0000 }, { 4204, 0x0000 }, { 4204, 0x0000 }, { 4204, 0x0404 }, + /* 0x26a00 */ + { 4206, 0x0000 }, { 4206, 0x0000 }, { 4206, 0x6000 }, { 4208, 0x0010 }, + { 4209, 0x0004 }, { 4210, 0x0006 }, { 4212, 0x0000 }, { 4212, 0x0000 }, + { 4212, 0x0000 }, { 4212, 0x0000 }, { 4212, 0x0000 }, { 4212, 0x0000 }, + { 4212, 0x0000 }, { 4212, 0x0000 }, { 4212, 0x0000 }, { 4212, 0x0000 }, + /* 0x26b00 */ + { 4212, 0x0420 }, { 4214, 0x0008 }, { 4215, 0x0100 }, { 4216, 0x0000 }, + { 4216, 0x0000 }, { 4216, 0x080f }, { 4221, 0x0000 }, { 4221, 0x0020 }, + { 4222, 0x0004 }, { 4223, 0x20c0 }, { 4226, 0x0000 }, { 4226, 0x0008 }, + { 4227, 0x0001 }, { 4228, 0x0000 }, { 4228, 0x0000 }, { 4228, 0x0080 }, + /* 0x26c00 */ + { 4229, 0x0000 }, { 4229, 0x0000 }, { 4229, 0x0002 }, { 4230, 0x0000 }, + { 4230, 0x0001 }, { 4231, 0x0000 }, { 4231, 0x0000 }, { 4231, 0xc000 }, + { 4233, 0x0007 }, { 4236, 0x0000 }, { 4236, 0x0010 }, { 4237, 0x2180 }, + { 4240, 0x0009 }, { 4242, 0x0002 }, { 4243, 0x0000 }, { 4243, 0x0000 }, + /* 0x26d00 */ + { 4243, 0x0000 }, { 4243, 0x0000 }, { 4243, 0x07fc }, { 4252, 0x0000 }, + { 4252, 0x0000 }, { 4252, 0x0002 }, { 4253, 0x0000 }, { 4253, 0x0000 }, + { 4253, 0x0000 }, { 4253, 0x0000 }, { 4253, 0x40ff }, { 4262, 0x0000 }, + { 4262, 0x0000 }, { 4262, 0x1000 }, { 4263, 0x0c00 }, { 4265, 0x0001 }, + /* 0x26e00 */ + { 4266, 0x00a1 }, { 4269, 0x0004 }, { 4270, 0x0000 }, { 4270, 0x0000 }, + { 4270, 0x003c }, { 4274, 0x0000 }, { 4274, 0x4000 }, { 4275, 0x0084 }, + { 4277, 0x0010 }, { 4278, 0x0200 }, { 4279, 0x0000 }, { 4279, 0x0000 }, + { 4279, 0x0000 }, { 4279, 0x00ff }, { 4287, 0x0000 }, { 4287, 0x0000 }, + /* 0x26f00 */ + { 4287, 0x0000 }, { 4287, 0x0000 }, { 4287, 0x0040 }, { 4288, 0x0000 }, + { 4288, 0x0000 }, { 4288, 0x0000 }, { 4288, 0x0000 }, { 4288, 0x0018 }, + { 4290, 0x0000 }, { 4290, 0x8000 }, { 4291, 0x0002 }, { 4292, 0x0000 }, + { 4292, 0x0000 }, { 4292, 0xc000 }, { 4294, 0x0000 }, { 4294, 0x0000 }, + /* 0x27000 */ + { 4294, 0x4000 }, { 4295, 0x0000 }, { 4295, 0x0000 }, { 4295, 0x0000 }, + { 4295, 0x0800 }, { 4296, 0x000c }, { 4298, 0x0000 }, { 4298, 0x0000 }, + { 4298, 0x0100 }, { 4299, 0x0000 }, { 4299, 0xe000 }, { 4302, 0x0000 }, + { 4302, 0x2000 }, { 4303, 0x0000 }, { 4303, 0x0000 }, { 4303, 0x0100 }, + /* 0x27100 */ + { 4304, 0x1200 }, { 4306, 0x0000 }, { 4306, 0x00c0 }, { 4308, 0x0000 }, + { 4308, 0x0000 }, { 4308, 0x0000 }, { 4308, 0x0030 }, { 4310, 0x0020 }, + { 4311, 0x0000 }, { 4311, 0x0000 }, { 4311, 0x0000 }, { 4311, 0x0000 }, + { 4311, 0x2000 }, { 4312, 0x0000 }, { 4312, 0x0000 }, { 4312, 0x0000 }, + /* 0x27200 */ + { 4312, 0x0000 }, { 4312, 0x0800 }, { 4313, 0x0000 }, { 4313, 0x0000 }, + { 4313, 0x0000 }, { 4313, 0x0000 }, { 4313, 0x0000 }, { 4313, 0x0000 }, + { 4313, 0x0821 }, { 4316, 0x0000 }, { 4316, 0x0000 }, { 4316, 0x0044 }, + { 4318, 0x0000 }, { 4318, 0x0000 }, { 4318, 0x0040 }, { 4319, 0x0000 }, + /* 0x27300 */ + { 4319, 0x0000 }, { 4319, 0x0000 }, { 4319, 0x0000 }, { 4319, 0x0000 }, + { 4319, 0x0000 }, { 4319, 0x0000 }, { 4319, 0x0000 }, { 4319, 0x0000 }, + { 4319, 0x0000 }, { 4319, 0x0400 }, { 4320, 0x0000 }, { 4320, 0x0000 }, + { 4320, 0x0000 }, { 4320, 0x0000 }, { 4320, 0x0000 }, { 4320, 0x0000 }, + /* 0x27400 */ + { 4320, 0x0000 }, { 4320, 0x0000 }, { 4320, 0x0004 }, { 4321, 0x0000 }, + { 4321, 0x0000 }, { 4321, 0x0001 }, { 4322, 0x0000 }, { 4322, 0x0000 }, + { 4322, 0x0050 }, { 4324, 0x0000 }, { 4324, 0x0000 }, { 4324, 0x0000 }, + { 4324, 0x0000 }, { 4324, 0x0000 }, { 4324, 0x0000 }, { 4324, 0x0000 }, + /* 0x27500 */ + { 4324, 0x0000 }, { 4324, 0x0000 }, { 4324, 0x0000 }, { 4324, 0x0000 }, + { 4324, 0x0000 }, { 4324, 0x0000 }, { 4324, 0x0000 }, { 4324, 0x0010 }, + { 4325, 0x0000 }, { 4325, 0x0000 }, { 4325, 0x0008 }, { 4326, 0x0000 }, + { 4326, 0x0000 }, { 4326, 0x0000 }, { 4326, 0x0011 }, { 4328, 0x6000 }, + /* 0x27600 */ + { 4330, 0x1080 }, { 4332, 0x0000 }, { 4332, 0x0000 }, { 4332, 0x0204 }, + { 4334, 0x0000 }, { 4334, 0x00e0 }, { 4337, 0x0000 }, { 4337, 0x0000 }, + { 4337, 0x0000 }, { 4337, 0x0010 }, { 4338, 0x0000 }, { 4338, 0x0000 }, + { 4338, 0x0000 }, { 4338, 0x0000 }, { 4338, 0x0000 }, { 4338, 0x0000 }, + /* 0x27700 */ + { 4338, 0x8000 }, { 4339, 0x0000 }, { 4339, 0x0000 }, { 4339, 0x0060 }, + { 4341, 0x0002 }, { 4342, 0x4000 }, { 4343, 0x0000 }, { 4343, 0x0000 }, + { 4343, 0x0030 }, { 4345, 0x0000 }, { 4345, 0x0000 }, { 4345, 0x0000 }, + { 4345, 0x1000 }, { 4346, 0x0000 }, { 4346, 0x0000 }, { 4346, 0x0000 }, + /* 0x27800 */ + { 4346, 0x0000 }, { 4346, 0x0000 }, { 4346, 0x0000 }, { 4346, 0x0000 }, + { 4346, 0x0000 }, { 4346, 0x0100 }, { 4347, 0x0000 }, { 4347, 0x0001 }, + { 4348, 0x0000 }, { 4348, 0x2000 }, { 4349, 0x0000 }, { 4349, 0x0004 }, + { 4350, 0x0100 }, { 4351, 0x0000 }, { 4351, 0x0000 }, { 4351, 0x0000 }, + /* 0x27900 */ + { 4351, 0x0000 }, { 4351, 0x0000 }, { 4351, 0x0010 }, { 4352, 0x0000 }, + { 4352, 0x0000 }, { 4352, 0x0000 }, { 4352, 0x0080 }, { 4353, 0x0400 }, + { 4354, 0x0000 }, { 4354, 0x0000 }, { 4354, 0x0001 }, { 4355, 0x0000 }, + { 4355, 0x0000 }, { 4355, 0x2000 }, { 4356, 0x0000 }, { 4356, 0x2000 }, + /* 0x27a00 */ + { 4357, 0x4400 }, { 4359, 0x0000 }, { 4359, 0x0000 }, { 4359, 0x4000 }, + { 4360, 0x0000 }, { 4360, 0x0208 }, { 4362, 0x0000 }, { 4362, 0x0200 }, + { 4363, 0x0010 }, { 4364, 0x0000 }, { 4364, 0x0000 }, { 4364, 0x6000 }, + { 4366, 0x0000 }, { 4366, 0x0000 }, { 4366, 0x0000 }, { 4366, 0x0010 }, + /* 0x27b00 */ + { 4367, 0x0840 }, { 4369, 0x0100 }, { 4370, 0x0000 }, { 4370, 0x0700 }, + { 4373, 0x0100 }, { 4374, 0x0000 }, { 4374, 0x0000 }, { 4374, 0x0000 }, + { 4374, 0x0000 }, { 4374, 0x0000 }, { 4374, 0x0000 }, { 4374, 0x0000 }, + { 4374, 0x0000 }, { 4374, 0x0000 }, { 4374, 0x0000 }, { 4374, 0x0010 }, + /* 0x27c00 */ + { 4375, 0x0000 }, { 4375, 0x0004 }, { 4376, 0x0000 }, { 4376, 0x0000 }, + { 4376, 0x0000 }, { 4376, 0x0000 }, { 4376, 0x0000 }, { 4376, 0x0000 }, + { 4376, 0x0000 }, { 4376, 0x0000 }, { 4376, 0x0000 }, { 4376, 0x0000 }, + { 4376, 0x0000 }, { 4376, 0x0000 }, { 4376, 0x0000 }, { 4376, 0x0000 }, + /* 0x27d00 */ + { 4376, 0x0000 }, { 4376, 0x0000 }, { 4376, 0x8000 }, { 4377, 0x0000 }, + { 4377, 0x0000 }, { 4377, 0x0018 }, { 4379, 0x0040 }, { 4380, 0x0008 }, + { 4381, 0x8010 }, { 4383, 0x0100 }, { 4384, 0x0000 }, { 4384, 0x2000 }, + { 4385, 0x0000 }, { 4385, 0x1000 }, { 4386, 0x0000 }, { 4386, 0x0000 }, + /* 0x27e00 */ + { 4386, 0x0000 }, { 4386, 0x0000 }, { 4386, 0x0000 }, { 4386, 0x0000 }, + { 4386, 0xa000 }, { 4388, 0x0000 }, { 4388, 0x0000 }, { 4388, 0x0000 }, + { 4388, 0x0000 }, { 4388, 0x0000 }, { 4388, 0x0000 }, { 4388, 0x0000 }, + { 4388, 0x0000 }, { 4388, 0x0000 }, { 4388, 0x0000 }, { 4388, 0x0000 }, + /* 0x27f00 */ + { 4388, 0x0000 }, { 4388, 0x0000 }, { 4388, 0x4000 }, { 4389, 0x0000 }, + { 4389, 0x0000 }, { 4389, 0x0000 }, { 4389, 0x0000 }, { 4389, 0x0000 }, + { 4389, 0x0000 }, { 4389, 0x0000 }, { 4389, 0x0000 }, { 4389, 0x0000 }, + { 4389, 0x0000 }, { 4389, 0x0000 }, { 4389, 0x0000 }, { 4389, 0x0200 }, + /* 0x28000 */ + { 4390, 0x0204 }, { 4392, 0x4000 }, { 4393, 0x0018 }, { 4395, 0x0000 }, + { 4395, 0x0100 }, { 4396, 0x0000 }, { 4396, 0x0000 }, { 4396, 0x0000 }, + { 4396, 0x0008 }, { 4397, 0x0001 }, { 4398, 0x0000 }, { 4398, 0x6000 }, + { 4400, 0x0000 }, { 4400, 0x0000 }, { 4400, 0x0300 }, { 4402, 0x0010 }, + /* 0x28100 */ + { 4403, 0x0000 }, { 4403, 0x0000 }, { 4403, 0x4000 }, { 4404, 0x0000 }, + { 4404, 0x8000 }, { 4405, 0x2000 }, { 4406, 0x8000 }, { 4407, 0x0000 }, + { 4407, 0x0200 }, { 4408, 0x0000 }, { 4408, 0x8000 }, { 4409, 0x1000 }, + { 4410, 0x0000 }, { 4410, 0x0000 }, { 4410, 0x0000 }, { 4410, 0x0000 }, + /* 0x28200 */ + { 4410, 0x0080 }, { 4411, 0x0500 }, { 4413, 0x0000 }, { 4413, 0x0000 }, + { 4413, 0x0000 }, { 4413, 0x0040 }, { 4414, 0x0000 }, { 4414, 0x1000 }, + { 4415, 0x0000 }, { 4415, 0x0800 }, { 4416, 0x0000 }, { 4416, 0x0000 }, + { 4416, 0x2000 }, { 4417, 0x0000 }, { 4417, 0x0004 }, { 4418, 0x0000 }, + /* 0x28300 */ + { 4418, 0x0040 }, { 4419, 0x0100 }, { 4420, 0x8000 }, { 4421, 0x0400 }, + { 4422, 0x0000 }, { 4422, 0x0000 }, { 4422, 0x2020 }, { 4424, 0x2000 }, + { 4425, 0x0400 }, { 4426, 0x0000 }, { 4426, 0x0000 }, { 4426, 0x0000 }, + { 4426, 0x0000 }, { 4426, 0x0000 }, { 4426, 0x0000 }, { 4426, 0x0000 }, + /* 0x28400 */ + { 4426, 0x0000 }, { 4426, 0x0004 }, { 4427, 0x0000 }, { 4427, 0x0000 }, + { 4427, 0x0000 }, { 4427, 0x0000 }, { 4427, 0x1100 }, { 4429, 0x0008 }, + { 4430, 0x0004 }, { 4431, 0x0000 }, { 4431, 0x0000 }, { 4431, 0x0000 }, + { 4431, 0x0000 }, { 4431, 0x0000 }, { 4431, 0x0000 }, { 4431, 0x0000 }, + /* 0x28500 */ + { 4431, 0x0002 }, { 4432, 0x0000 }, { 4432, 0x0000 }, { 4432, 0x3000 }, + { 4434, 0x0000 }, { 4434, 0x0000 }, { 4434, 0x1000 }, { 4435, 0x0000 }, + { 4435, 0x0000 }, { 4435, 0x0000 }, { 4435, 0x0000 }, { 4435, 0x0000 }, + { 4435, 0x0000 }, { 4435, 0x0000 }, { 4435, 0x0100 }, { 4436, 0x0010 }, + /* 0x28600 */ + { 4437, 0x0801 }, { 4439, 0x0000 }, { 4439, 0x0020 }, { 4440, 0x0800 }, + { 4441, 0x0000 }, { 4441, 0x0000 }, { 4441, 0x0000 }, { 4441, 0x0000 }, + { 4441, 0x0000 }, { 4441, 0x0000 }, { 4441, 0x0c00 }, { 4443, 0x1000 }, + { 4444, 0x0000 }, { 4444, 0x0100 }, { 4445, 0x0040 }, { 4446, 0x0000 }, + /* 0x28700 */ + { 4446, 0x0000 }, { 4446, 0x0008 }, { 4447, 0x0000 }, { 4447, 0x0000 }, + { 4447, 0x0000 }, { 4447, 0x0000 }, { 4447, 0x0000 }, { 4447, 0x0000 }, + { 4447, 0x0000 }, { 4447, 0x0000 }, { 4447, 0x0000 }, { 4447, 0x0000 }, + { 4447, 0x0000 }, { 4447, 0x0000 }, { 4447, 0x0000 }, { 4447, 0x0000 }, + /* 0x28800 */ + { 4447, 0x0010 }, { 4448, 0x0000 }, { 4448, 0x0800 }, { 4449, 0x0000 }, + { 4449, 0x0000 }, { 4449, 0x0000 }, { 4449, 0x0000 }, { 4449, 0x0000 }, + { 4449, 0x0000 }, { 4449, 0x0000 }, { 4449, 0x0000 }, { 4449, 0x0000 }, + { 4449, 0x0000 }, { 4449, 0x0000 }, { 4449, 0x0000 }, { 4449, 0x0000 }, + /* 0x28900 */ + { 4449, 0x0000 }, { 4449, 0x0000 }, { 4449, 0x0000 }, { 4449, 0x0008 }, + { 4450, 0x0300 }, { 4452, 0x0040 }, { 4453, 0x1110 }, { 4456, 0x4000 }, + { 4457, 0x0200 }, { 4458, 0x0000 }, { 4458, 0x0d00 }, { 4461, 0x1100 }, + { 4463, 0x0001 }, { 4464, 0x5000 }, { 4466, 0x0192 }, { 4470, 0x1e00 }, + /* 0x28a00 */ + { 4474, 0x8000 }, { 4475, 0x0040 }, { 4476, 0x0220 }, { 4478, 0x0040 }, + { 4479, 0x0ff0 }, { 4487, 0x0600 }, { 4489, 0x0000 }, { 4489, 0x0000 }, + { 4489, 0x000e }, { 4492, 0x1c00 }, { 4495, 0x0000 }, { 4495, 0x0000 }, + { 4495, 0x5841 }, { 4500, 0xc000 }, { 4502, 0x002f }, { 4507, 0x1000 }, + /* 0x28b00 */ + { 4508, 0x1000 }, { 4509, 0x0008 }, { 4510, 0xb806 }, { 4516, 0x0000 }, + { 4516, 0x5040 }, { 4519, 0x0001 }, { 4520, 0x1078 }, { 4525, 0x0000 }, + { 4525, 0x8000 }, { 4526, 0x3200 }, { 4529, 0x0000 }, { 4529, 0x0000 }, + { 4529, 0x0024 }, { 4531, 0x0690 }, { 4535, 0x1f80 }, { 4541, 0x8020 }, + /* 0x28c00 */ + { 4543, 0x0208 }, { 4545, 0x3000 }, { 4547, 0x0848 }, { 4550, 0x0a01 }, + { 4553, 0x0000 }, { 4553, 0x0000 }, { 4553, 0x0000 }, { 4553, 0x0000 }, + { 4553, 0x0000 }, { 4553, 0x0000 }, { 4553, 0x0000 }, { 4553, 0x0000 }, + { 4553, 0x2400 }, { 4555, 0x0004 }, { 4556, 0x0000 }, { 4556, 0x0000 }, + /* 0x28d00 */ + { 4556, 0x0000 }, { 4556, 0x0000 }, { 4556, 0x0000 }, { 4556, 0x0010 }, + { 4557, 0x0000 }, { 4557, 0x0000 }, { 4557, 0x0000 }, { 4557, 0x0000 }, + { 4557, 0x0000 }, { 4557, 0x0200 }, { 4558, 0x0000 }, { 4558, 0x0000 }, + { 4558, 0x0000 }, { 4558, 0x0000 }, { 4558, 0x0000 }, { 4558, 0x0000 }, + /* 0x28e00 */ + { 4558, 0x8000 }, { 4559, 0x0000 }, { 4559, 0x0000 }, { 4559, 0x0240 }, + { 4561, 0x0000 }, { 4561, 0x0000 }, { 4561, 0x0060 }, { 4563, 0x0000 }, + { 4563, 0x0000 }, { 4563, 0x0080 }, { 4564, 0x1000 }, { 4565, 0x000c }, + { 4567, 0x0000 }, { 4567, 0x0200 }, { 4568, 0x0080 }, { 4569, 0x0000 }, + /* 0x28f00 */ + { 4569, 0x0000 }, { 4569, 0x0000 }, { 4569, 0x0000 }, { 4569, 0x0000 }, + { 4569, 0x0000 }, { 4569, 0x0000 }, { 4569, 0x0000 }, { 4569, 0x0000 }, + { 4569, 0x0000 }, { 4569, 0x0000 }, { 4569, 0x0000 }, { 4569, 0x0000 }, + { 4569, 0x0020 }, { 4570, 0x0000 }, { 4570, 0x0000 }, { 4570, 0x0000 }, + /* 0x29000 */ + { 4570, 0x0000 }, { 4570, 0x0000 }, { 4570, 0x0000 }, { 4570, 0x0000 }, + { 4570, 0x0000 }, { 4570, 0x0000 }, { 4570, 0x0000 }, { 4570, 0x0000 }, + { 4570, 0x0900 }, { 4572, 0x0008 }, { 4573, 0x8000 }, { 4574, 0x0003 }, + { 4576, 0x0001 }, { 4577, 0x0000 }, { 4577, 0x3030 }, { 4581, 0x0000 }, + /* 0x29100 */ + { 4581, 0x2000 }, { 4582, 0x0001 }, { 4583, 0x0000 }, { 4583, 0x1000 }, + { 4584, 0x2000 }, { 4585, 0x4800 }, { 4587, 0x0000 }, { 4587, 0x0001 }, + { 4588, 0x0000 }, { 4588, 0x1000 }, { 4589, 0x0100 }, { 4590, 0x0000 }, + { 4590, 0x0000 }, { 4590, 0x0020 }, { 4591, 0x0800 }, +}; +static const Summary16 hkscs1999_uni2indx_page294[32] = { + /* 0x29400 */ + { 4592, 0x0000 }, { 4592, 0x2000 }, { 4593, 0x0001 }, { 4594, 0x8008 }, + { 4596, 0x0100 }, { 4597, 0x0000 }, { 4597, 0x0000 }, { 4597, 0x0000 }, + { 4597, 0x0000 }, { 4597, 0x0000 }, { 4597, 0x0000 }, { 4597, 0x0000 }, + { 4597, 0x0000 }, { 4597, 0x0601 }, { 4600, 0x00a0 }, { 4602, 0x0000 }, + /* 0x29500 */ + { 4602, 0x0000 }, { 4602, 0x0000 }, { 4602, 0x0000 }, { 4602, 0x0000 }, + { 4602, 0x0000 }, { 4602, 0x0000 }, { 4602, 0x0000 }, { 4602, 0x0000 }, + { 4602, 0x0000 }, { 4602, 0x4000 }, { 4603, 0x0000 }, { 4603, 0x0101 }, + { 4605, 0x0000 }, { 4605, 0x0080 }, { 4606, 0x0200 }, { 4607, 0x0010 }, +}; +static const Summary16 hkscs1999_uni2indx_page297[251] = { + /* 0x29700 */ + { 4608, 0x0000 }, { 4608, 0x0000 }, { 4608, 0x0001 }, { 4609, 0x0004 }, + { 4610, 0x0000 }, { 4610, 0x0000 }, { 4610, 0x0000 }, { 4610, 0x0000 }, + { 4610, 0x0000 }, { 4610, 0x0000 }, { 4610, 0x0000 }, { 4610, 0x0000 }, + { 4610, 0x0000 }, { 4610, 0x0010 }, { 4611, 0x0000 }, { 4611, 0x0000 }, + /* 0x29800 */ + { 4611, 0x0000 }, { 4611, 0x0001 }, { 4612, 0x0000 }, { 4612, 0x0000 }, + { 4612, 0x0000 }, { 4612, 0x0080 }, { 4613, 0x0000 }, { 4613, 0x0000 }, + { 4613, 0x0000 }, { 4613, 0x0000 }, { 4613, 0x0010 }, { 4614, 0x0000 }, + { 4614, 0x0000 }, { 4614, 0x0002 }, { 4615, 0x0400 }, { 4616, 0x0002 }, + /* 0x29900 */ + { 4617, 0x0028 }, { 4619, 0x0000 }, { 4619, 0x8000 }, { 4620, 0x0000 }, + { 4620, 0x0300 }, { 4622, 0x2000 }, { 4623, 0x0400 }, { 4624, 0x0000 }, + { 4624, 0x0000 }, { 4624, 0x2000 }, { 4625, 0x0000 }, { 4625, 0x0000 }, + { 4625, 0x0208 }, { 4627, 0x0000 }, { 4627, 0x0000 }, { 4627, 0x0000 }, + /* 0x29a00 */ + { 4627, 0x0000 }, { 4627, 0x0000 }, { 4627, 0x0100 }, { 4628, 0x0000 }, + { 4628, 0x2000 }, { 4629, 0x0000 }, { 4629, 0x0000 }, { 4629, 0x0000 }, + { 4629, 0x0000 }, { 4629, 0x0000 }, { 4629, 0x0000 }, { 4629, 0x0000 }, + { 4629, 0x0000 }, { 4629, 0x0000 }, { 4629, 0x0000 }, { 4629, 0x0000 }, + /* 0x29b00 */ + { 4629, 0x4020 }, { 4631, 0x0000 }, { 4631, 0x0000 }, { 4631, 0x0000 }, + { 4631, 0x0000 }, { 4631, 0x0000 }, { 4631, 0x0000 }, { 4631, 0x0000 }, + { 4631, 0x0000 }, { 4631, 0x0000 }, { 4631, 0x0000 }, { 4631, 0x0000 }, + { 4631, 0x0000 }, { 4631, 0x0020 }, { 4632, 0x0000 }, { 4632, 0x0000 }, + /* 0x29c00 */ + { 4632, 0x0000 }, { 4632, 0x0000 }, { 4632, 0x0000 }, { 4632, 0x0000 }, + { 4632, 0x0000 }, { 4632, 0x0000 }, { 4632, 0x0000 }, { 4632, 0x0000 }, + { 4632, 0x0000 }, { 4632, 0x0000 }, { 4632, 0x2000 }, { 4633, 0x0000 }, + { 4633, 0x0000 }, { 4633, 0x0000 }, { 4633, 0x0000 }, { 4633, 0x0000 }, + /* 0x29d00 */ + { 4633, 0x0000 }, { 4633, 0x0000 }, { 4633, 0x0000 }, { 4633, 0x4000 }, + { 4634, 0x0000 }, { 4634, 0x0400 }, { 4635, 0x0000 }, { 4635, 0x1000 }, + { 4636, 0x0000 }, { 4636, 0x0900 }, { 4638, 0x0000 }, { 4638, 0x0000 }, + { 4638, 0x0000 }, { 4638, 0x0000 }, { 4638, 0x0000 }, { 4638, 0x0040 }, + /* 0x29e00 */ + { 4639, 0x0040 }, { 4640, 0x0000 }, { 4640, 0x2000 }, { 4641, 0x0000 }, + { 4641, 0x0000 }, { 4641, 0x0000 }, { 4641, 0x0100 }, { 4642, 0x0000 }, + { 4642, 0x0000 }, { 4642, 0x0000 }, { 4642, 0x1000 }, { 4643, 0x0000 }, + { 4643, 0x0008 }, { 4644, 0x0000 }, { 4644, 0x0000 }, { 4644, 0x0100 }, + /* 0x29f00 */ + { 4645, 0x0000 }, { 4645, 0x0000 }, { 4645, 0x0008 }, { 4646, 0x0001 }, + { 4647, 0x0000 }, { 4647, 0x0000 }, { 4647, 0x0000 }, { 4647, 0x0000 }, + { 4647, 0x0000 }, { 4647, 0x0000 }, { 4647, 0x0000 }, { 4647, 0x0080 }, + { 4648, 0x0000 }, { 4648, 0x4000 }, { 4649, 0x0000 }, { 4649, 0x0000 }, + /* 0x2a000 */ + { 4649, 0x0000 }, { 4649, 0x0010 }, { 4650, 0x0000 }, { 4650, 0x0000 }, + { 4650, 0x0000 }, { 4650, 0x0000 }, { 4650, 0x0000 }, { 4650, 0x0000 }, + { 4650, 0x0080 }, { 4651, 0x0000 }, { 4651, 0x0000 }, { 4651, 0x0200 }, + { 4652, 0x0000 }, { 4652, 0x0000 }, { 4652, 0x2002 }, { 4654, 0x4108 }, + /* 0x2a100 */ + { 4657, 0x0000 }, { 4657, 0x0000 }, { 4657, 0x0008 }, { 4658, 0x0018 }, + { 4660, 0x0000 }, { 4660, 0x0001 }, { 4661, 0x0000 }, { 4661, 0x0000 }, + { 4661, 0x0000 }, { 4661, 0x000c }, { 4663, 0x0800 }, { 4664, 0x0010 }, + { 4665, 0x0000 }, { 4665, 0x8000 }, { 4666, 0x0000 }, { 4666, 0x0020 }, + /* 0x2a200 */ + { 4667, 0x0000 }, { 4667, 0x0000 }, { 4667, 0x0001 }, { 4668, 0x0008 }, + { 4669, 0x0000 }, { 4669, 0x0000 }, { 4669, 0x0000 }, { 4669, 0x0000 }, + { 4669, 0x0000 }, { 4669, 0x8008 }, { 4671, 0x0000 }, { 4671, 0x2054 }, + { 4675, 0x0000 }, { 4675, 0x8000 }, { 4676, 0x0000 }, { 4676, 0x8000 }, + /* 0x2a300 */ + { 4677, 0x0000 }, { 4677, 0x0000 }, { 4677, 0x0000 }, { 4677, 0x0000 }, + { 4677, 0x0000 }, { 4677, 0x0000 }, { 4677, 0x0000 }, { 4677, 0x0000 }, + { 4677, 0x0000 }, { 4677, 0x0000 }, { 4677, 0x0200 }, { 4678, 0x0000 }, + { 4678, 0x0000 }, { 4678, 0x0000 }, { 4678, 0x0000 }, { 4678, 0x0000 }, + /* 0x2a400 */ + { 4678, 0x0000 }, { 4678, 0x0000 }, { 4678, 0x0000 }, { 4678, 0x0010 }, + { 4679, 0x0000 }, { 4679, 0x0800 }, { 4680, 0x0000 }, { 4680, 0x0000 }, + { 4680, 0x0000 }, { 4680, 0x0000 }, { 4680, 0x0000 }, { 4680, 0x0000 }, + { 4680, 0x0000 }, { 4680, 0x0000 }, { 4680, 0x0000 }, { 4680, 0x0000 }, + /* 0x2a500 */ + { 4680, 0x0000 }, { 4680, 0x0000 }, { 4680, 0x0000 }, { 4680, 0x0000 }, + { 4680, 0x0000 }, { 4680, 0x0000 }, { 4680, 0x0000 }, { 4680, 0x0000 }, + { 4680, 0x0000 }, { 4680, 0x0000 }, { 4680, 0x0000 }, { 4680, 0x0000 }, + { 4680, 0x0840 }, { 4682, 0x0000 }, { 4682, 0x0000 }, { 4682, 0x0000 }, + /* 0x2a600 */ + { 4682, 0x0002 }, { 4683, 0x0000 }, { 4683, 0x0000 }, { 4683, 0x0004 }, + { 4684, 0x0400 }, { 4685, 0x0800 }, { 4686, 0x0000 }, { 4686, 0x0000 }, + { 4686, 0x0000 }, { 4686, 0x0000 }, { 4686, 0x0200 }, +}; +static const Summary16 hkscs1999_uni2indx_page2f8[30] = { + /* 0x2f800 */ + { 4687, 0x0000 }, { 4687, 0x0000 }, { 4687, 0x0020 }, { 4688, 0x0800 }, + { 4689, 0x0001 }, { 4690, 0x0000 }, { 4690, 0x0000 }, { 4690, 0x0100 }, + { 4691, 0x0000 }, { 4691, 0x0010 }, { 4692, 0x0040 }, { 4693, 0x0000 }, + { 4693, 0x2000 }, { 4694, 0x0000 }, { 4694, 0x0000 }, { 4694, 0x0000 }, + /* 0x2f900 */ + { 4694, 0x0000 }, { 4694, 0x0000 }, { 4694, 0x0000 }, { 4694, 0x0000 }, + { 4694, 0x0000 }, { 4694, 0x0000 }, { 4694, 0x0000 }, { 4694, 0x0000 }, + { 4694, 0x0000 }, { 4694, 0x0010 }, { 4695, 0x0000 }, { 4695, 0x1004 }, + { 4697, 0x0000 }, { 4697, 0x0010 }, +}; + +static int +hkscs1999_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (n >= 2) { + const Summary16 *summary = NULL; + if (wc >= 0x0000 && wc < 0x02d0) + summary = &hkscs1999_uni2indx_page00[(wc>>4)]; + else if (wc >= 0x0400 && wc < 0x0460) + summary = &hkscs1999_uni2indx_page04[(wc>>4)-0x040]; + else if (wc >= 0x1e00 && wc < 0x1ed0) + summary = &hkscs1999_uni2indx_page1e[(wc>>4)-0x1e0]; + else if (wc >= 0x2100 && wc < 0x21f0) + summary = &hkscs1999_uni2indx_page21[(wc>>4)-0x210]; + else if (wc >= 0x2300 && wc < 0x2580) + summary = &hkscs1999_uni2indx_page23[(wc>>4)-0x230]; + else if (wc >= 0x2700 && wc < 0x2740) + summary = &hkscs1999_uni2indx_page27[(wc>>4)-0x270]; + else if (wc >= 0x2e00 && wc < 0x3240) + summary = &hkscs1999_uni2indx_page2e[(wc>>4)-0x2e0]; + else if (wc >= 0x3400 && wc < 0x9fc0) + summary = &hkscs1999_uni2indx_page34[(wc>>4)-0x340]; + else if (wc >= 0xf900 && wc < 0xf910) + summary = &hkscs1999_uni2indx_pagef9[(wc>>4)-0xf90]; + else if (wc >= 0xff00 && wc < 0xfff0) + summary = &hkscs1999_uni2indx_pageff[(wc>>4)-0xff0]; + else if (wc >= 0x20000 && wc < 0x291f0) + summary = &hkscs1999_uni2indx_page200[(wc>>4)-0x2000]; + else if (wc >= 0x29400 && wc < 0x29600) + summary = &hkscs1999_uni2indx_page294[(wc>>4)-0x2940]; + else if (wc >= 0x29700 && wc < 0x2a6b0) + summary = &hkscs1999_uni2indx_page297[(wc>>4)-0x2970]; + else if (wc >= 0x2f800 && wc < 0x2f9e0) + summary = &hkscs1999_uni2indx_page2f8[(wc>>4)-0x2f80]; + if (summary) { + unsigned short used = summary->used; + unsigned int i = wc & 0x0f; + if (used & ((unsigned short) 1 << i)) { + unsigned short c; + /* Keep in `used' only the bits 0..i-1. */ + used &= ((unsigned short) 1 << i) - 1; + /* Add `summary->indx' and the number of bits set in `used'. */ + used = (used & 0x5555) + ((used & 0xaaaa) >> 1); + used = (used & 0x3333) + ((used & 0xcccc) >> 2); + used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); + used = (used & 0x00ff) + (used >> 8); + c = hkscs1999_2charset[summary->indx + used]; + r[0] = (c >> 8); r[1] = (c & 0xff); + return 2; + } + } + return RET_ILUNI; + } + return RET_TOOSMALL; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/hkscs2001.h b/graf2d/win32gdk/gdk/src/iconv/hkscs2001.h new file mode 100644 index 00000000000..66642cf9cc6 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/hkscs2001.h @@ -0,0 +1,683 @@ +/* + * Copyright (C) 1999-2006 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * HKSCS:2001 + */ + +static const unsigned short hkscs2001_2uni_page8c[123] = { + /* 0x8c */ + 0x0a3b, 0x1cfe, 0x5273, 0x37a6, 0x02c9, 0x2d8f, 0x414e, 0x1d77, + 0x12f5, 0x0620, 0x45cd, 0x0059, 0x4830, 0x1622, 0x4f32, 0x30a7, + 0x31f6, 0x1e91, 0x1819, 0x20ba, 0x3e81, 0x5307, 0x018b, 0x3a80, + 0x0610, 0x24e4, 0x2102, 0x0bae, 0x4d0f, 0x0409, 0x1a63, 0x54ba, + 0x0523, 0x2c0f, 0x38fd, 0x252a, 0x5147, 0x4fea, 0x3455, 0x1d4d, + 0x0c24, 0x3c7e, 0x33f4, 0x22d9, 0x4ee3, 0x37a7, 0x23dd, 0x08a3, + 0x09f0, 0x0abc, 0x082f, 0x0917, 0x37a8, 0x0d34, 0x288b, 0x0f92, + 0x0fd0, 0x3bb6, 0x1492, 0x1499, 0x15c2, 0x3d12, 0x178b, 0x3ff9, + 0x1919, 0x1a43, 0x4063, 0x1bff, 0x38fd, 0x1f00, 0x4205, 0x208c, + 0x03db, 0x4413, 0x1115, 0x21b9, 0x2e83, 0x47a4, 0x4695, 0x2593, + 0x26ec, 0x27c3, 0x296c, 0x2af8, 0x2b97, 0x37a9, 0x2d90, 0x37aa, + 0x2fb9, 0x37ab, 0x30cf, 0x2b5f, 0x36e0, 0x3221, 0x37ac, 0x50b9, + 0x393f, 0x0471, 0x05a2, 0x101a, 0x38fd, 0x38fd, 0x38fd, 0x3568, + 0x186b, 0x0576, 0x0e3d, 0x38fd, 0x2bd6, 0x437b, 0x2abf, 0x4c0d, + 0x0781, 0x4a74, 0x137b, 0x4915, 0x4bbe, 0x37ad, 0x37ae, 0x1196, + 0x37af, 0x38fd, 0x295b, +}; + +static const ucs4_t hkscs2001_2uni_upages[85] = { + 0x03500, 0x03c00, 0x03d00, 0x03e00, 0x04000, 0x04200, 0x04b00, 0x04c00, + 0x04e00, 0x04f00, 0x05000, 0x05100, 0x05300, 0x05400, 0x05700, 0x05800, + 0x05a00, 0x05b00, 0x05c00, 0x05d00, 0x05e00, 0x05f00, 0x06100, 0x06500, + 0x06700, 0x06900, 0x06a00, 0x06c00, 0x06d00, 0x07000, 0x07100, 0x07200, + 0x07300, 0x07400, 0x07600, 0x07700, 0x07800, 0x07a00, 0x07b00, 0x07c00, + 0x07d00, 0x07e00, 0x08200, 0x08500, 0x08600, 0x08800, 0x08b00, 0x08e00, + 0x08f00, 0x09100, 0x09200, 0x09300, 0x09700, 0x09800, 0x09900, 0x09f00, + 0x0ff00, 0x21400, 0x21900, 0x21d00, 0x22000, 0x22700, 0x23200, 0x23300, + 0x23c00, 0x24100, 0x24500, 0x24900, 0x24a00, 0x25100, 0x25600, 0x25c00, + 0x25d00, 0x26b00, 0x26d00, 0x26f00, 0x27100, 0x28700, 0x28900, 0x28a00, + 0x28d00, 0x29900, 0x29c00, 0x2a100, 0x2a200, +}; + +static int +hkscs2001_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 == 0x8c)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) { + unsigned int i = 157 * (c1 - 0x80) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40)); + ucs4_t wc = 0xfffd; + unsigned short swc; + { + if (i < 2007) + swc = hkscs2001_2uni_page8c[i-1884], + wc = hkscs2001_2uni_upages[swc>>8] | (swc & 0xff); + } + if (wc != 0xfffd) { + *pwc = wc; + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + +static const unsigned short hkscs2001_2charset[116] = { + 0x8c4b, 0x8c56, 0x8c44, 0x8caa, 0x8c5d, 0x8cc3, 0x8c60, 0x8ccb, + 0x8cc4, 0x8c58, 0x8c49, 0x8cd2, 0x8c72, 0x8c6f, 0x8c73, 0x8c70, + 0x8c40, 0x8c71, 0x8c5b, 0x8c68, 0x8c75, 0x8ccc, 0x8c77, 0x8c78, + 0x8cc5, 0x8cac, 0x8cd9, 0x8c48, 0x8cd4, 0x8c7a, 0x8c7b, 0x8c7c, + 0x8c4d, 0x8c7e, 0x8c52, 0x8cca, 0x8ca2, 0x8ca3, 0x8c5e, 0x8ca5, + 0x8c41, 0x8c67, 0x8c47, 0x8c51, 0x8ca7, 0x8ca9, 0x8c53, 0x8c5a, + 0x8cad, 0x8c6b, 0x8c6e, 0x8c59, 0x8c63, 0x8cb1, 0x8cb2, 0x8cb3, + 0x8c76, 0x8cdc, 0x8cb4, 0x8cd0, 0x8cb5, 0x8cbd, 0x8cb6, 0x8cce, + 0x8c61, 0x8c45, 0x8cb8, 0x8cae, 0x8cba, 0x8c4f, 0x8cbc, 0x8c50, + 0x8cbf, 0x8c6a, 0x8c66, 0x8cc9, 0x8cbe, 0x8c43, 0x8c6d, 0x8c74, + 0x8cb7, 0x8cb9, 0x8cbb, 0x8cc0, 0x8cd7, 0x8cd8, 0x8cda, 0x8cc2, + 0x8c57, 0x8c79, 0x8c69, 0x8c7d, 0x8c54, 0x8ca1, 0x8ca4, 0x8c46, + 0x8ca8, 0x8ccf, 0x8cab, 0x8c4a, 0x8cb0, 0x8caf, 0x8c4c, 0x8cd5, + 0x8cd3, 0x8cd6, 0x8cd1, 0x8c5c, 0x8c6c, 0x8c4e, 0x8c65, 0x8cc1, + 0x8c64, 0x8c42, 0x8c55, 0x8c5f, +}; + +static const Summary16 hkscs2001_uni2indx_page35[6] = { + /* 0x3500 */ + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0000 }, { 0, 0x0200 }, +}; +static const Summary16 hkscs2001_uni2indx_page3c[46] = { + /* 0x3c00 */ + { 1, 0x0000 }, { 1, 0x0000 }, { 1, 0x0000 }, { 1, 0x0000 }, + { 1, 0x0000 }, { 1, 0x0000 }, { 1, 0x0000 }, { 1, 0x0000 }, + { 1, 0x0800 }, { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, + { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, + /* 0x3d00 */ + { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, + { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, + { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, + { 2, 0x0200 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, + /* 0x3e00 */ + { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, + { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, + { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, + { 3, 0x0000 }, { 3, 0x0800 }, +}; +static const Summary16 hkscs2001_uni2indx_page40[8] = { + /* 0x4000 */ + { 4, 0x0200 }, { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x0000 }, + { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x0002 }, +}; +static const Summary16 hkscs2001_uni2indx_page42[11] = { + /* 0x4200 */ + { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0008 }, { 7, 0x0000 }, + { 7, 0x0000 }, { 7, 0x0000 }, { 7, 0x0000 }, { 7, 0x0040 }, + { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0004 }, +}; +static const Summary16 hkscs2001_uni2indx_page4b[25] = { + /* 0x4b00 */ + { 9, 0x0000 }, { 9, 0x0001 }, { 10, 0x0001 }, { 11, 0x0000 }, + { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, + { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, + { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, + /* 0x4c00 */ + { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, + { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, + { 11, 0x0002 }, +}; +static const Summary16 hkscs2001_uni2indx_page4e[59] = { + /* 0x4e00 */ + { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x8000 }, { 13, 0x0000 }, + { 13, 0x0000 }, { 13, 0x0000 }, { 13, 0x0000 }, { 13, 0x0000 }, + { 13, 0x0000 }, { 13, 0x0000 }, { 13, 0x0008 }, { 14, 0x0000 }, + { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, + /* 0x4f00 */ + { 14, 0x0000 }, { 14, 0x0080 }, { 15, 0x0000 }, { 15, 0x0000 }, + { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0000 }, + { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0000 }, + { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0001 }, + /* 0x5000 */ + { 16, 0x0000 }, { 16, 0x0000 }, { 16, 0x0000 }, { 16, 0x0800 }, + { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0000 }, + { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x1000 }, + { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 }, + /* 0x5100 */ + { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 }, + { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 }, + { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x4000 }, +}; +static const Summary16 hkscs2001_uni2indx_page53[20] = { + /* 0x5300 */ + { 19, 0x0000 }, { 19, 0x0000 }, { 19, 0x0010 }, { 20, 0x0000 }, + { 20, 0x0000 }, { 20, 0x0000 }, { 20, 0x0000 }, { 20, 0x0000 }, + { 20, 0x0000 }, { 20, 0x0000 }, { 20, 0x0000 }, { 20, 0x0000 }, + { 20, 0x0000 }, { 20, 0x0000 }, { 20, 0x0000 }, { 20, 0x0000 }, + /* 0x5400 */ + { 20, 0x0000 }, { 20, 0x0000 }, { 20, 0x0000 }, { 20, 0x0010 }, +}; +static const Summary16 hkscs2001_uni2indx_page57[30] = { + /* 0x5700 */ + { 21, 0x0000 }, { 21, 0x0000 }, { 21, 0x0000 }, { 21, 0x2000 }, + { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, + { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, + { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, + /* 0x5800 */ + { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, + { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, + { 22, 0x0000 }, { 22, 0x0004 }, { 23, 0x0000 }, { 23, 0x0000 }, + { 23, 0x0000 }, { 23, 0x0001 }, +}; +static const Summary16 hkscs2001_uni2indx_page5a[93] = { + /* 0x5a00 */ + { 24, 0x0000 }, { 24, 0x0400 }, { 25, 0x0000 }, { 25, 0x0000 }, + { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, + { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, + { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, + /* 0x5b00 */ + { 25, 0x0000 }, { 25, 0x0020 }, { 26, 0x0000 }, { 26, 0x0000 }, + { 26, 0x0000 }, { 26, 0x0000 }, { 26, 0x0000 }, { 26, 0x0000 }, + { 26, 0x0000 }, { 26, 0x0040 }, { 27, 0x0000 }, { 27, 0x0000 }, + { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x0000 }, + /* 0x5c00 */ + { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x0000 }, + { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x0000 }, + { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x0000 }, + { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x0020 }, + /* 0x5d00 */ + { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, + { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0800 }, + { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0000 }, + { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0000 }, + /* 0x5e00 */ + { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0000 }, + { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0000 }, + { 29, 0x0000 }, { 29, 0x0204 }, { 31, 0x0000 }, { 31, 0x0000 }, + { 31, 0x0000 }, { 31, 0x0000 }, { 31, 0x0000 }, { 31, 0x0000 }, + /* 0x5f00 */ + { 31, 0x0000 }, { 31, 0x0000 }, { 31, 0x0000 }, { 31, 0x0000 }, + { 31, 0x0000 }, { 31, 0x0000 }, { 31, 0x0000 }, { 31, 0x0000 }, + { 31, 0x0000 }, { 31, 0x0000 }, { 31, 0x0000 }, { 31, 0x0000 }, + { 31, 0x0004 }, +}; +static const Summary16 hkscs2001_uni2indx_page61[3] = { + /* 0x6100 */ + { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0004 }, +}; +static const Summary16 hkscs2001_uni2indx_page65[9] = { + /* 0x6500 */ + { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, + { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, + { 33, 0x0800 }, +}; +static const Summary16 hkscs2001_uni2indx_page67[7] = { + /* 0x6700 */ + { 34, 0x0000 }, { 34, 0x0200 }, { 35, 0x0000 }, { 35, 0x0000 }, + { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0800 }, +}; +static const Summary16 hkscs2001_uni2indx_page69[23] = { + /* 0x6900 */ + { 36, 0x0000 }, { 36, 0x0200 }, { 37, 0x0000 }, { 37, 0x0000 }, + { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, + { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, + { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, + /* 0x6a00 */ + { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, + { 37, 0x0008 }, { 38, 0x0000 }, { 38, 0x0008 }, +}; +static const Summary16 hkscs2001_uni2indx_page6c[32] = { + /* 0x6c00 */ + { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, + { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, + { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, + { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x8000 }, + /* 0x6d00 */ + { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, + { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, + { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, + { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x4000 }, +}; +static const Summary16 hkscs2001_uni2indx_page70[76] = { + /* 0x7000 */ + { 41, 0x0000 }, { 41, 0x0000 }, { 41, 0x0000 }, { 41, 0x0000 }, + { 41, 0x2000 }, { 42, 0x0000 }, { 42, 0x0000 }, { 42, 0x0080 }, + { 43, 0x0000 }, { 43, 0x0000 }, { 43, 0x0000 }, { 43, 0x0000 }, + { 43, 0x0000 }, { 43, 0x0000 }, { 43, 0x0000 }, { 43, 0x0000 }, + /* 0x7100 */ + { 43, 0x0000 }, { 43, 0x0000 }, { 43, 0x0000 }, { 43, 0x0000 }, + { 43, 0x0000 }, { 43, 0x0000 }, { 43, 0x0000 }, { 43, 0x0000 }, + { 43, 0x0000 }, { 43, 0x0002 }, { 44, 0x0000 }, { 44, 0x0000 }, + { 44, 0x0000 }, { 44, 0x0000 }, { 44, 0x0000 }, { 44, 0x0000 }, + /* 0x7200 */ + { 44, 0x0001 }, { 45, 0x0000 }, { 45, 0x0000 }, { 45, 0x0000 }, + { 45, 0x0000 }, { 45, 0x0000 }, { 45, 0x0000 }, { 45, 0x0000 }, + { 45, 0x0000 }, { 45, 0x0000 }, { 45, 0x0000 }, { 45, 0x0000 }, + { 45, 0x0000 }, { 45, 0x0000 }, { 45, 0x0000 }, { 45, 0x0000 }, + /* 0x7300 */ + { 45, 0x0000 }, { 45, 0x0000 }, { 45, 0x0000 }, { 45, 0x0000 }, + { 45, 0x0000 }, { 45, 0x0000 }, { 45, 0x0000 }, { 45, 0x0000 }, + { 45, 0x1000 }, { 46, 0x0000 }, { 46, 0x0000 }, { 46, 0x0400 }, + { 47, 0x0000 }, { 47, 0x0000 }, { 47, 0x0000 }, { 47, 0x0000 }, + /* 0x7400 */ + { 47, 0x0004 }, { 48, 0x0000 }, { 48, 0x0000 }, { 48, 0x0000 }, + { 48, 0x0000 }, { 48, 0x0000 }, { 48, 0x0000 }, { 48, 0x0000 }, + { 48, 0x0000 }, { 48, 0x0000 }, { 48, 0x0000 }, { 48, 0x0200 }, +}; +static const Summary16 hkscs2001_uni2indx_page76[47] = { + /* 0x7600 */ + { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 }, + { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 }, + { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 }, + { 49, 0x0000 }, { 49, 0x0200 }, { 50, 0x0000 }, { 50, 0x0000 }, + /* 0x7700 */ + { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, + { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, + { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, + { 50, 0x0000 }, { 50, 0x2000 }, { 51, 0x0000 }, { 51, 0x0000 }, + /* 0x7800 */ + { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0000 }, + { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0000 }, + { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0000 }, + { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0010 }, +}; +static const Summary16 hkscs2001_uni2indx_page7a[71] = { + /* 0x7a00 */ + { 52, 0x0000 }, { 52, 0x0000 }, { 52, 0x0400 }, { 53, 0x0000 }, + { 53, 0x0000 }, { 53, 0x0000 }, { 53, 0x0000 }, { 53, 0x0000 }, + { 53, 0x0000 }, { 53, 0x0008 }, { 54, 0x0000 }, { 54, 0x0000 }, + { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, + /* 0x7b00 */ + { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, + { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, + { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, + { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x1000 }, { 55, 0x0000 }, + /* 0x7c00 */ + { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, + { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, + { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, + { 55, 0x0008 }, { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 }, + /* 0x7d00 */ + { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 }, + { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 }, + { 56, 0x0800 }, { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, + { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, + /* 0x7e00 */ + { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, + { 57, 0x0000 }, { 57, 0x0800 }, { 58, 0x1000 }, +}; +static const Summary16 hkscs2001_uni2indx_page82[16] = { + /* 0x8200 */ + { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0000 }, + { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0000 }, + { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x8000 }, + { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x0100 }, +}; +static const Summary16 hkscs2001_uni2indx_page85[17] = { + /* 0x8500 */ + { 61, 0x0000 }, { 61, 0x0000 }, { 61, 0x0000 }, { 61, 0x0000 }, + { 61, 0x0000 }, { 61, 0x8000 }, { 62, 0x0000 }, { 62, 0x0000 }, + { 62, 0x0000 }, { 62, 0x0080 }, { 63, 0x0000 }, { 63, 0x0000 }, + { 63, 0x0000 }, { 63, 0x0040 }, { 64, 0x0000 }, { 64, 0x0000 }, + /* 0x8600 */ + { 64, 0x8000 }, +}; +static const Summary16 hkscs2001_uni2indx_page88[10] = { + /* 0x8800 */ + { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0000 }, + { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0000 }, + { 65, 0x8000 }, { 66, 0x0001 }, +}; +static const Summary16 hkscs2001_uni2indx_page8b[9] = { + /* 0x8b00 */ + { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 }, + { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 }, + { 67, 0x0008 }, +}; +static const Summary16 hkscs2001_uni2indx_page8e[29] = { + /* 0x8e00 */ + { 68, 0x0000 }, { 68, 0x0000 }, { 68, 0x0000 }, { 68, 0x0000 }, + { 68, 0x0000 }, { 68, 0x0000 }, { 68, 0x0000 }, { 68, 0x0000 }, + { 68, 0x0000 }, { 68, 0x0000 }, { 68, 0x0000 }, { 68, 0x0200 }, + { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0000 }, + /* 0x8f00 */ + { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0000 }, + { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0000 }, + { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0080 }, { 70, 0x0000 }, + { 70, 0x8000 }, +}; +static const Summary16 hkscs2001_uni2indx_page91[48] = { + /* 0x9100 */ + { 71, 0x0000 }, { 71, 0x0000 }, { 71, 0x0000 }, { 71, 0x0000 }, + { 71, 0x0000 }, { 71, 0x0000 }, { 71, 0x0000 }, { 71, 0x0000 }, + { 71, 0x0000 }, { 71, 0x0000 }, { 71, 0x0000 }, { 71, 0x0000 }, + { 71, 0x0000 }, { 71, 0x0000 }, { 71, 0x0000 }, { 71, 0x0040 }, + /* 0x9200 */ + { 72, 0x0000 }, { 72, 0x0000 }, { 72, 0x0002 }, { 73, 0x0000 }, + { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, + { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, + { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, + /* 0x9300 */ + { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, + { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, + { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, + { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0010 }, +}; +static const Summary16 hkscs2001_uni2indx_page97[47] = { + /* 0x9700 */ + { 74, 0x0000 }, { 74, 0x0000 }, { 74, 0x0000 }, { 74, 0x0000 }, + { 74, 0x0000 }, { 74, 0x0020 }, { 75, 0x0000 }, { 75, 0x0000 }, + { 75, 0x0000 }, { 75, 0x0000 }, { 75, 0x0000 }, { 75, 0x0000 }, + { 75, 0x0000 }, { 75, 0x0000 }, { 75, 0x0000 }, { 75, 0x0000 }, + /* 0x9800 */ + { 75, 0x0000 }, { 75, 0x0000 }, { 75, 0x0000 }, { 75, 0x0000 }, + { 75, 0x0000 }, { 75, 0x0000 }, { 75, 0x0100 }, { 76, 0x0000 }, + { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, + { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, + /* 0x9900 */ + { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, + { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, + { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, + { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0001 }, +}; +static const Summary16 hkscs2001_uni2indx_page9f[11] = { + /* 0x9f00 */ + { 77, 0x0000 }, { 77, 0x0000 }, { 77, 0x0000 }, { 77, 0x0000 }, + { 77, 0x0000 }, { 77, 0x0000 }, { 77, 0x0000 }, { 77, 0x0000 }, + { 77, 0x0000 }, { 77, 0x0000 }, { 77, 0xffc0 }, +}; +static const Summary16 hkscs2001_uni2indx_page214[4] = { + /* 0x21400 */ + { 87, 0x0000 }, { 87, 0x0000 }, { 87, 0x0000 }, { 87, 0x8000 }, +}; +static const Summary16 hkscs2001_uni2indx_page219[9] = { + /* 0x21900 */ + { 88, 0x0000 }, { 88, 0x0000 }, { 88, 0x0000 }, { 88, 0x0000 }, + { 88, 0x0000 }, { 88, 0x0000 }, { 88, 0x0000 }, { 88, 0x0000 }, + { 88, 0x0001 }, +}; +static const Summary16 hkscs2001_uni2indx_page21d[12] = { + /* 0x21d00 */ + { 89, 0x0000 }, { 89, 0x0000 }, { 89, 0x0000 }, { 89, 0x0000 }, + { 89, 0x0000 }, { 89, 0x0000 }, { 89, 0x0000 }, { 89, 0x0000 }, + { 89, 0x0000 }, { 89, 0x0000 }, { 89, 0x0000 }, { 89, 0x0040 }, +}; +static const Summary16 hkscs2001_uni2indx_page220[8] = { + /* 0x22000 */ + { 90, 0x0000 }, { 90, 0x0000 }, { 90, 0x0000 }, { 90, 0x0000 }, + { 90, 0x0000 }, { 90, 0x0000 }, { 90, 0x0000 }, { 90, 0x4000 }, +}; +static const Summary16 hkscs2001_uni2indx_page227[2] = { + /* 0x22700 */ + { 91, 0x0000 }, { 91, 0x0004 }, +}; +static const Summary16 hkscs2001_uni2indx_page232[32] = { + /* 0x23200 */ + { 92, 0x0000 }, { 92, 0x0000 }, { 92, 0x0000 }, { 92, 0x0000 }, + { 92, 0x0000 }, { 92, 0x0000 }, { 92, 0x0000 }, { 92, 0x0000 }, + { 92, 0x0002 }, { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, + { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, + /* 0x23300 */ + { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, + { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, + { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, + { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0200 }, +}; +static const Summary16 hkscs2001_uni2indx_page23c[7] = { + /* 0x23c00 */ + { 94, 0x0000 }, { 94, 0x0000 }, { 94, 0x0000 }, { 94, 0x0000 }, + { 94, 0x0000 }, { 94, 0x0000 }, { 94, 0x0008 }, +}; +static const Summary16 hkscs2001_uni2indx_page241[5] = { + /* 0x24100 */ + { 95, 0x0000 }, { 95, 0x0000 }, { 95, 0x0000 }, { 95, 0x0000 }, + { 95, 0x4000 }, +}; +static const Summary16 hkscs2001_uni2indx_page245[1] = { + /* 0x24500 */ + { 96, 0x0020 }, +}; +static const Summary16 hkscs2001_uni2indx_page249[18] = { + /* 0x24900 */ + { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, + { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0800 }, + { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0000 }, + { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0000 }, + /* 0x24a00 */ + { 98, 0x0000 }, { 98, 0x0008 }, +}; +static const Summary16 hkscs2001_uni2indx_page251[13] = { + /* 0x25100 */ + { 99, 0x0000 }, { 99, 0x0000 }, { 99, 0x0000 }, { 99, 0x0000 }, + { 99, 0x0000 }, { 99, 0x0000 }, { 99, 0x0000 }, { 99, 0x0000 }, + { 99, 0x0000 }, { 99, 0x0000 }, { 99, 0x0000 }, { 99, 0x0000 }, + { 99, 0x2000 }, +}; +static const Summary16 hkscs2001_uni2indx_page256[10] = { + /* 0x25600 */ + { 100, 0x0000 }, { 100, 0x0000 }, { 100, 0x0000 }, { 100, 0x0000 }, + { 100, 0x0000 }, { 100, 0x0000 }, { 100, 0x0000 }, { 100, 0x0000 }, + { 100, 0x0000 }, { 100, 0x0020 }, +}; +static const Summary16 hkscs2001_uni2indx_page25c[20] = { + /* 0x25c00 */ + { 101, 0x0000 }, { 101, 0x0000 }, { 101, 0x0000 }, { 101, 0x0000 }, + { 101, 0x0000 }, { 101, 0x0000 }, { 101, 0x0000 }, { 101, 0x0000 }, + { 101, 0x0000 }, { 101, 0x0000 }, { 101, 0x0010 }, { 102, 0x0000 }, + { 102, 0x0000 }, { 102, 0x0000 }, { 102, 0x0000 }, { 102, 0x0000 }, + /* 0x25d00 */ + { 102, 0x0000 }, { 102, 0x0000 }, { 102, 0x0000 }, { 102, 0x0001 }, +}; +static const Summary16 hkscs2001_uni2indx_page26b[2] = { + /* 0x26b00 */ + { 103, 0x0000 }, { 103, 0x0020 }, +}; +static const Summary16 hkscs2001_uni2indx_page26d[8] = { + /* 0x26d00 */ + { 104, 0x0000 }, { 104, 0x0000 }, { 104, 0x0000 }, { 104, 0x0000 }, + { 104, 0x0000 }, { 104, 0x0000 }, { 104, 0x0000 }, { 104, 0x0010 }, +}; +static const Summary16 hkscs2001_uni2indx_page26f[12] = { + /* 0x26f00 */ + { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0000 }, + { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0000 }, + { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x4000 }, +}; +static const Summary16 hkscs2001_uni2indx_page271[1] = { + /* 0x27100 */ + { 106, 0x2000 }, +}; +static const Summary16 hkscs2001_uni2indx_page287[1] = { + /* 0x28700 */ + { 107, 0x8000 }, +}; +static const Summary16 hkscs2001_uni2indx_page289[31] = { + /* 0x28900 */ + { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0000 }, + { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0000 }, + { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0000 }, + { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0008 }, { 109, 0x0000 }, + /* 0x28a00 */ + { 109, 0x0000 }, { 109, 0x0000 }, { 109, 0x0000 }, { 109, 0x0004 }, + { 110, 0x0000 }, { 110, 0x0000 }, { 110, 0x0000 }, { 110, 0x0000 }, + { 110, 0x0000 }, { 110, 0x0000 }, { 110, 0x0000 }, { 110, 0x0000 }, + { 110, 0x0000 }, { 110, 0x0000 }, { 110, 0x0400 }, +}; +static const Summary16 hkscs2001_uni2indx_page28d[12] = { + /* 0x28d00 */ + { 111, 0x0000 }, { 111, 0x0000 }, { 111, 0x0000 }, { 111, 0x0000 }, + { 111, 0x0000 }, { 111, 0x0000 }, { 111, 0x0000 }, { 111, 0x0000 }, + { 111, 0x0000 }, { 111, 0x0000 }, { 111, 0x0000 }, { 111, 0x0200 }, +}; +static const Summary16 hkscs2001_uni2indx_page299[5] = { + /* 0x29900 */ + { 112, 0x0000 }, { 112, 0x0000 }, { 112, 0x0000 }, { 112, 0x0000 }, + { 112, 0x0080 }, +}; +static const Summary16 hkscs2001_uni2indx_page29c[8] = { + /* 0x29c00 */ + { 113, 0x0000 }, { 113, 0x0000 }, { 113, 0x0000 }, { 113, 0x0000 }, + { 113, 0x0000 }, { 113, 0x0000 }, { 113, 0x0000 }, { 113, 0x0008 }, +}; +static const Summary16 hkscs2001_uni2indx_page2a1[28] = { + /* 0x2a100 */ + { 114, 0x0080 }, { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, + { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, + { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, + { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, + /* 0x2a200 */ + { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, + { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, + { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0400 }, +}; + +static int +hkscs2001_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (n >= 2) { + const Summary16 *summary = NULL; + if (wc < 0x9f00) { + if (wc < 0x6900) { + if (wc >= 0x3500 && wc < 0x3560) + summary = &hkscs2001_uni2indx_page35[(wc>>4)-0x350]; + else if (wc >= 0x3c00 && wc < 0x3ee0) + summary = &hkscs2001_uni2indx_page3c[(wc>>4)-0x3c0]; + else if (wc >= 0x4000 && wc < 0x4080) + summary = &hkscs2001_uni2indx_page40[(wc>>4)-0x400]; + else if (wc >= 0x4200 && wc < 0x42b0) + summary = &hkscs2001_uni2indx_page42[(wc>>4)-0x420]; + else if (wc >= 0x4b00 && wc < 0x4c90) + summary = &hkscs2001_uni2indx_page4b[(wc>>4)-0x4b0]; + else if (wc >= 0x4e00 && wc < 0x51b0) + summary = &hkscs2001_uni2indx_page4e[(wc>>4)-0x4e0]; + else if (wc >= 0x5300 && wc < 0x5440) + summary = &hkscs2001_uni2indx_page53[(wc>>4)-0x530]; + else if (wc >= 0x5700 && wc < 0x58e0) + summary = &hkscs2001_uni2indx_page57[(wc>>4)-0x570]; + else if (wc >= 0x5a00 && wc < 0x5fd0) + summary = &hkscs2001_uni2indx_page5a[(wc>>4)-0x5a0]; + else if (wc >= 0x6100 && wc < 0x6130) + summary = &hkscs2001_uni2indx_page61[(wc>>4)-0x610]; + else if (wc >= 0x6500 && wc < 0x6590) + summary = &hkscs2001_uni2indx_page65[(wc>>4)-0x650]; + else if (wc >= 0x6700 && wc < 0x6770) + summary = &hkscs2001_uni2indx_page67[(wc>>4)-0x670]; + } else { + if (wc >= 0x6900 && wc < 0x6a70) + summary = &hkscs2001_uni2indx_page69[(wc>>4)-0x690]; + else if (wc >= 0x6c00 && wc < 0x6e00) + summary = &hkscs2001_uni2indx_page6c[(wc>>4)-0x6c0]; + else if (wc >= 0x7000 && wc < 0x74c0) + summary = &hkscs2001_uni2indx_page70[(wc>>4)-0x700]; + else if (wc >= 0x7600 && wc < 0x78f0) + summary = &hkscs2001_uni2indx_page76[(wc>>4)-0x760]; + else if (wc >= 0x7a00 && wc < 0x7e70) + summary = &hkscs2001_uni2indx_page7a[(wc>>4)-0x7a0]; + else if (wc >= 0x8200 && wc < 0x8300) + summary = &hkscs2001_uni2indx_page82[(wc>>4)-0x820]; + else if (wc >= 0x8500 && wc < 0x8610) + summary = &hkscs2001_uni2indx_page85[(wc>>4)-0x850]; + else if (wc >= 0x8800 && wc < 0x88a0) + summary = &hkscs2001_uni2indx_page88[(wc>>4)-0x880]; + else if (wc >= 0x8b00 && wc < 0x8b90) + summary = &hkscs2001_uni2indx_page8b[(wc>>4)-0x8b0]; + else if (wc >= 0x8e00 && wc < 0x8fd0) + summary = &hkscs2001_uni2indx_page8e[(wc>>4)-0x8e0]; + else if (wc >= 0x9100 && wc < 0x9400) + summary = &hkscs2001_uni2indx_page91[(wc>>4)-0x910]; + else if (wc >= 0x9700 && wc < 0x99f0) + summary = &hkscs2001_uni2indx_page97[(wc>>4)-0x970]; + } + } else { + if (wc < 0x25600) { + if (wc >= 0x9f00 && wc < 0x9fb0) + summary = &hkscs2001_uni2indx_page9f[(wc>>4)-0x9f0]; + else if (wc >= 0x21400 && wc < 0x21440) + summary = &hkscs2001_uni2indx_page214[(wc>>4)-0x2140]; + else if (wc >= 0x21900 && wc < 0x21990) + summary = &hkscs2001_uni2indx_page219[(wc>>4)-0x2190]; + else if (wc >= 0x21d00 && wc < 0x21dc0) + summary = &hkscs2001_uni2indx_page21d[(wc>>4)-0x21d0]; + else if (wc >= 0x22000 && wc < 0x22080) + summary = &hkscs2001_uni2indx_page220[(wc>>4)-0x2200]; + else if (wc >= 0x22700 && wc < 0x22720) + summary = &hkscs2001_uni2indx_page227[(wc>>4)-0x2270]; + else if (wc >= 0x23200 && wc < 0x23400) + summary = &hkscs2001_uni2indx_page232[(wc>>4)-0x2320]; + else if (wc >= 0x23c00 && wc < 0x23c70) + summary = &hkscs2001_uni2indx_page23c[(wc>>4)-0x23c0]; + else if (wc >= 0x24100 && wc < 0x24150) + summary = &hkscs2001_uni2indx_page241[(wc>>4)-0x2410]; + else if (wc >= 0x24500 && wc < 0x24510) + summary = &hkscs2001_uni2indx_page245[(wc>>4)-0x2450]; + else if (wc >= 0x24900 && wc < 0x24a20) + summary = &hkscs2001_uni2indx_page249[(wc>>4)-0x2490]; + else if (wc >= 0x25100 && wc < 0x251d0) + summary = &hkscs2001_uni2indx_page251[(wc>>4)-0x2510]; + } else { + if (wc >= 0x25600 && wc < 0x256a0) + summary = &hkscs2001_uni2indx_page256[(wc>>4)-0x2560]; + else if (wc >= 0x25c00 && wc < 0x25d40) + summary = &hkscs2001_uni2indx_page25c[(wc>>4)-0x25c0]; + else if (wc >= 0x26b00 && wc < 0x26b20) + summary = &hkscs2001_uni2indx_page26b[(wc>>4)-0x26b0]; + else if (wc >= 0x26d00 && wc < 0x26d80) + summary = &hkscs2001_uni2indx_page26d[(wc>>4)-0x26d0]; + else if (wc >= 0x26f00 && wc < 0x26fc0) + summary = &hkscs2001_uni2indx_page26f[(wc>>4)-0x26f0]; + else if (wc >= 0x27100 && wc < 0x27110) + summary = &hkscs2001_uni2indx_page271[(wc>>4)-0x2710]; + else if (wc >= 0x28700 && wc < 0x28710) + summary = &hkscs2001_uni2indx_page287[(wc>>4)-0x2870]; + else if (wc >= 0x28900 && wc < 0x28af0) + summary = &hkscs2001_uni2indx_page289[(wc>>4)-0x2890]; + else if (wc >= 0x28d00 && wc < 0x28dc0) + summary = &hkscs2001_uni2indx_page28d[(wc>>4)-0x28d0]; + else if (wc >= 0x29900 && wc < 0x29950) + summary = &hkscs2001_uni2indx_page299[(wc>>4)-0x2990]; + else if (wc >= 0x29c00 && wc < 0x29c80) + summary = &hkscs2001_uni2indx_page29c[(wc>>4)-0x29c0]; + else if (wc >= 0x2a100 && wc < 0x2a2c0) + summary = &hkscs2001_uni2indx_page2a1[(wc>>4)-0x2a10]; + } + } + if (summary) { + unsigned short used = summary->used; + unsigned int i = wc & 0x0f; + if (used & ((unsigned short) 1 << i)) { + unsigned short c; + /* Keep in `used' only the bits 0..i-1. */ + used &= ((unsigned short) 1 << i) - 1; + /* Add `summary->indx' and the number of bits set in `used'. */ + used = (used & 0x5555) + ((used & 0xaaaa) >> 1); + used = (used & 0x3333) + ((used & 0xcccc) >> 2); + used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); + used = (used & 0x00ff) + (used >> 8); + c = hkscs2001_2charset[summary->indx + used]; + r[0] = (c >> 8); r[1] = (c & 0xff); + return 2; + } + } + return RET_ILUNI; + } + return RET_TOOSMALL; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/hkscs2004.h b/graf2d/win32gdk/gdk/src/iconv/hkscs2004.h new file mode 100644 index 00000000000..d5ab99748ca --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/hkscs2004.h @@ -0,0 +1,679 @@ +/* + * Copyright (C) 1999-2006 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * HKSCS:2004 + */ + +static const unsigned short hkscs2004_2uni_page87[58] = { + /* 0x87 */ + 0x0af0, 0x1032, 0x0d03, 0x0ca6, 0x0c78, 0x4167, 0x1177, 0x0cb3, + 0x44b1, 0x10e2, 0x44c5, 0x0595, 0x0e36, 0x0e44, 0x1047, 0x1040, + 0x39bf, 0x3417, 0x4252, 0x3f8b, 0x40d2, 0x1057, 0x4d51, 0x0e4f, + 0x0cda, 0x1085, 0x446c, 0x1107, 0x0fa4, 0x0da1, 0x3d23, 0x1e25, + 0x3c54, 0x2d63, 0x3606, 0x3761, 0x1a4d, 0x13fb, 0x28fd, 0x2195, + 0x141d, 0x47b9, 0x06f4, 0x2534, 0x43ef, 0x16db, 0x2e5e, 0x15a4, + 0x0125, 0x4bb0, 0x15d1, 0x16b7, 0x17fc, 0x1b6e, 0x2393, 0x4a45, + 0x1f61, 0x1f9d, +}; +static const unsigned short hkscs2004_2uni_page8c[189] = { + /* 0x8c */ + 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, + 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, + 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, + 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, + 0x28fd, 0x28fd, 0x2b6f, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, + 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, + 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, + 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, + 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, + 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, + 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, + 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, + 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, + 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, + 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, + 0x28fd, 0x1ae7, 0x28fd, 0x1c57, 0x20ca, 0x0688, 0x0bc3, 0x3256, + 0x3196, 0x0a9a, 0x0c36, 0x28fd, 0x17d5, 0x351a, 0x24f9, 0x1778, + 0x0612, 0x3351, 0x1878, 0x27b2, 0x1d57, 0x0c58, 0x38ec, 0x2f23, + 0x1077, 0x0478, 0x004a, 0x29a4, 0x3e41, 0x24cc, 0x12b4, 0x2a39, + 0x14bf, 0x226c, 0x2656, 0x49fa, 0x193b, + /* 0x8d */ + 0x2c9f, 0x28fd, 0x30c1, 0x466d, 0x0902, 0x0dbb, 0x4879, 0x0707, + 0x27b3, 0x4cb5, 0x08f8, 0x02d6, 0x0df7, 0x3e46, 0x097c, 0x45b2, + 0x42ff, 0x0c6d, 0x03d4, 0x3b9a, 0x0c61, 0x0c1b, 0x1189, 0x107b, + 0x1176, 0x0cea, 0x07c8, 0x3a0f, 0x0161, 0x0bde, 0x0bbd, 0x09ed, +}; + +static const ucs4_t hkscs2004_2uni_upages[78] = { + 0x03400, 0x03600, 0x03700, 0x03800, 0x03900, 0x03b00, 0x03d00, 0x03f00, + 0x04000, 0x04100, 0x04300, 0x04400, 0x04500, 0x04600, 0x04700, 0x04a00, + 0x04c00, 0x04d00, 0x04f00, 0x05600, 0x05900, 0x05a00, 0x05b00, 0x05c00, + 0x05d00, 0x05f00, 0x06600, 0x06700, 0x06e00, 0x07100, 0x07200, 0x07400, + 0x07900, 0x07d00, 0x08100, 0x08500, 0x08a00, 0x09700, 0x09800, 0x09f00, + 0x0ff00, 0x20100, 0x20200, 0x20a00, 0x20b00, 0x21a00, 0x21d00, 0x21e00, + 0x22100, 0x22700, 0x23200, 0x23500, 0x23600, 0x23b00, 0x23e00, 0x23f00, + 0x24000, 0x24200, 0x24b00, 0x25400, 0x25a00, 0x26b00, 0x26c00, 0x26e00, + 0x27000, 0x27200, 0x27300, 0x27b00, 0x27c00, 0x28600, 0x28900, 0x28b00, + 0x29000, 0x29800, 0x29900, 0x29e00, 0x2a100, 0x2a300, +}; + +static int +hkscs2004_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 == 0x87) || (c1 >= 0x8c && c1 <= 0x8d)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) { + unsigned int i = 157 * (c1 - 0x80) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40)); + ucs4_t wc = 0xfffd; + unsigned short swc; + if (i < 1884) { + if (i < 1157) + swc = hkscs2004_2uni_page87[i-1099], + wc = hkscs2004_2uni_upages[swc>>8] | (swc & 0xff); + } else { + if (i < 2073) + swc = hkscs2004_2uni_page8c[i-1884], + wc = hkscs2004_2uni_upages[swc>>8] | (swc & 0xff); + } + if (wc != 0xfffd) { + *pwc = wc; + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + +static const unsigned short hkscs2004_2charset[123] = { + 0x8cf4, 0x8770, 0x8d5c, 0x8d4b, 0x8d52, 0x8cf3, 0x874b, 0x8cea, + 0x8cdf, 0x876a, 0x8d47, 0x8d5a, 0x8d4a, 0x8d44, 0x8d4e, 0x8d5f, + 0x8ce3, 0x8740, 0x8d5e, 0x8ce0, 0x8d5d, 0x8d55, 0x8ce4, 0x8cef, + 0x8d54, 0x8d51, 0x8744, 0x8743, 0x8747, 0x8758, 0x8d59, 0x8742, + 0x875d, 0x8d45, 0x8d4c, 0x874c, 0x874d, 0x8757, 0x875c, 0x8741, + 0x874f, 0x874e, 0x8755, 0x8cf2, 0x8d57, 0x8759, 0x8749, 0x875b, + 0x8d58, 0x8746, 0x8d56, 0x8cf8, 0x8765, 0x8768, 0x8cfa, 0x876f, + 0x8772, 0x8773, 0x876d, 0x8ce9, 0x8ce6, 0x8774, 0x8cec, 0x8cfe, + 0x8764, 0x8cdb, 0x8775, 0x8cdd, 0x8cee, 0x875f, 0x8778, 0x8779, + 0x8cde, 0x8767, 0x8cfb, 0x8776, 0x8cf7, 0x8ce8, 0x876b, 0x8cfc, + 0x8ced, 0x8d48, 0x8cf5, 0x8cf9, 0x8c62, 0x8d40, 0x8761, 0x876e, + 0x8cf1, 0x8d42, 0x8ce2, 0x8ce1, 0x8ceb, 0x8751, 0x8ce7, 0x8762, + 0x8763, 0x8cf0, 0x8750, 0x8d5b, 0x8d53, 0x8760, 0x875e, 0x8cf6, + 0x8d4d, 0x8753, 0x8754, 0x8745, 0x8752, 0x8d50, 0x876c, 0x875a, + 0x8748, 0x874a, 0x8d4f, 0x8d43, 0x8769, 0x8d46, 0x8cfd, 0x8777, + 0x8771, 0x8d49, 0x8756, +}; + +static const Summary16 hkscs2004_uni2indx_page34[5] = { + /* 0x3400 */ + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0400 }, +}; +static const Summary16 hkscs2004_uni2indx_page36[56] = { + /* 0x3600 */ + { 1, 0x0000 }, { 1, 0x0000 }, { 1, 0x0020 }, { 2, 0x0000 }, + { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0002 }, { 3, 0x0000 }, + { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, + { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, + /* 0x3700 */ + { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, + { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, + { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, + { 3, 0x0000 }, { 3, 0x0040 }, { 4, 0x0000 }, { 4, 0x0000 }, + /* 0x3800 */ + { 4, 0x0000 }, { 4, 0x0000 }, { 4, 0x0000 }, { 4, 0x0000 }, + { 4, 0x0000 }, { 4, 0x0000 }, { 4, 0x0000 }, { 4, 0x0000 }, + { 4, 0x0000 }, { 4, 0x0000 }, { 4, 0x0000 }, { 4, 0x0000 }, + { 4, 0x0000 }, { 4, 0x0010 }, { 5, 0x0000 }, { 5, 0x0000 }, + /* 0x3900 */ + { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x0000 }, + { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x0100 }, +}; +static const Summary16 hkscs2004_uni2indx_page3b[10] = { + /* 0x3b00 */ + { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0000 }, + { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0000 }, + { 6, 0x0000 }, { 6, 0x0020 }, +}; +static const Summary16 hkscs2004_uni2indx_page3d[16] = { + /* 0x3d00 */ + { 7, 0x0000 }, { 7, 0x0004 }, { 8, 0x0000 }, { 8, 0x0000 }, + { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, + { 8, 0x0100 }, { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 }, + { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0010 }, +}; +static const Summary16 hkscs2004_uni2indx_page3f[47] = { + /* 0x3f00 */ + { 10, 0x0080 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, + { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, + { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, + { 11, 0x0100 }, { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0000 }, + /* 0x4000 */ + { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0000 }, + { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0000 }, + { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0000 }, + { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0100 }, + /* 0x4100 */ + { 13, 0x0004 }, { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, + { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x1000 }, + { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0000 }, + { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x2000 }, +}; +static const Summary16 hkscs2004_uni2indx_page43[69] = { + /* 0x4300 */ + { 16, 0x0000 }, { 16, 0x0000 }, { 16, 0x0000 }, { 16, 0x0000 }, + { 16, 0x0000 }, { 16, 0x0000 }, { 16, 0x0000 }, { 16, 0x0000 }, + { 16, 0x0000 }, { 16, 0x0400 }, { 17, 0x0000 }, { 17, 0x0000 }, + { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0001 }, + /* 0x4400 */ + { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 }, + { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 }, + { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x2000 }, + { 19, 0x0008 }, { 20, 0x4000 }, { 21, 0x0000 }, { 21, 0x0000 }, + /* 0x4500 */ + { 21, 0x0000 }, { 21, 0x0800 }, { 22, 0x0000 }, { 22, 0x0040 }, + { 23, 0x0000 }, { 23, 0x0100 }, { 24, 0x2002 }, { 26, 0x0100 }, + { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x0040 }, { 28, 0x0008 }, + { 29, 0x0000 }, { 29, 0x0400 }, { 30, 0x0400 }, { 31, 0x0000 }, + /* 0x4600 */ + { 31, 0x0008 }, { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 }, + { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 }, + { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0002 }, { 33, 0x0800 }, + { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0080 }, + /* 0x4700 */ + { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0040 }, + { 36, 0x8010 }, +}; +static const Summary16 hkscs2004_uni2indx_page4a[11] = { + /* 0x4a00 */ + { 38, 0x0000 }, { 38, 0x0000 }, { 38, 0x0000 }, { 38, 0x0000 }, + { 38, 0x0000 }, { 38, 0x0000 }, { 38, 0x0000 }, { 38, 0x0000 }, + { 38, 0x0000 }, { 38, 0x0000 }, { 38, 0x0010 }, +}; +static const Summary16 hkscs2004_uni2indx_page4c[25] = { + /* 0x4c00 */ + { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0004 }, + { 40, 0x0081 }, { 42, 0x0080 }, { 43, 0x0000 }, { 43, 0x0880 }, + { 45, 0x0020 }, { 46, 0x0000 }, { 46, 0x0000 }, { 46, 0x0000 }, + { 46, 0x0000 }, { 46, 0x0000 }, { 46, 0x0004 }, { 47, 0x0000 }, + /* 0x4d00 */ + { 47, 0x0080 }, { 48, 0x0000 }, { 48, 0x0000 }, { 48, 0x0000 }, + { 48, 0x0000 }, { 48, 0x0000 }, { 48, 0x0000 }, { 48, 0x00c0 }, + { 50, 0x0200 }, +}; +static const Summary16 hkscs2004_uni2indx_page4f[12] = { + /* 0x4f00 */ + { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0000 }, + { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0000 }, + { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0010 }, +}; +static const Summary16 hkscs2004_uni2indx_page56[16] = { + /* 0x5600 */ + { 52, 0x0000 }, { 52, 0x0000 }, { 52, 0x0000 }, { 52, 0x0000 }, + { 52, 0x0000 }, { 52, 0x0000 }, { 52, 0x0000 }, { 52, 0x0000 }, + { 52, 0x0000 }, { 52, 0x0000 }, { 52, 0x0000 }, { 52, 0x0000 }, + { 52, 0x0000 }, { 52, 0x0000 }, { 52, 0x0000 }, { 52, 0x0800 }, +}; +static const Summary16 hkscs2004_uni2indx_page59[72] = { + /* 0x5900 */ + { 53, 0x0000 }, { 53, 0x2000 }, { 54, 0x0000 }, { 54, 0x0000 }, + { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, + { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x8000 }, + { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, + /* 0x5a00 */ + { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, + { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, + { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0010 }, { 56, 0x0000 }, + { 56, 0x0000 }, { 56, 0x0002 }, { 57, 0x0000 }, { 57, 0x0000 }, + /* 0x5b00 */ + { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, + { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, + { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0080 }, + { 58, 0x0000 }, { 58, 0x0800 }, { 59, 0x0000 }, { 59, 0x0000 }, + /* 0x5c00 */ + { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0000 }, + { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0100 }, + { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x0000 }, + { 60, 0x0000 }, { 60, 0x0020 }, { 61, 0x0000 }, { 61, 0x1000 }, + /* 0x5d00 */ + { 62, 0x0000 }, { 62, 0x0000 }, { 62, 0x0000 }, { 62, 0x0000 }, + { 62, 0x0000 }, { 62, 0x0000 }, { 62, 0x0000 }, { 62, 0x0100 }, +}; +static const Summary16 hkscs2004_uni2indx_page5f[4] = { + /* 0x5f00 */ + { 63, 0x0000 }, { 63, 0x0000 }, { 63, 0x0000 }, { 63, 0x0800 }, +}; +static const Summary16 hkscs2004_uni2indx_page66[23] = { + /* 0x6600 */ + { 64, 0x0000 }, { 64, 0x0000 }, { 64, 0x0000 }, { 64, 0x0000 }, + { 64, 0x2000 }, { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0000 }, + { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0000 }, + { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0080 }, { 66, 0x0000 }, + /* 0x6700 */ + { 66, 0x0000 }, { 66, 0x0000 }, { 66, 0x0000 }, { 66, 0x0000 }, + { 66, 0x0000 }, { 66, 0x0000 }, { 66, 0x4000 }, +}; +static const Summary16 hkscs2004_uni2indx_page6e[6] = { + /* 0x6e00 */ + { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 }, + { 67, 0x0000 }, { 67, 0x0080 }, +}; +static const Summary16 hkscs2004_uni2indx_page71[19] = { + /* 0x7100 */ + { 68, 0x0000 }, { 68, 0x0000 }, { 68, 0x0000 }, { 68, 0x0000 }, + { 68, 0x0000 }, { 68, 0x0080 }, { 69, 0x0000 }, { 69, 0x0000 }, + { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0000 }, + { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0000 }, + /* 0x7200 */ + { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0020 }, +}; +static const Summary16 hkscs2004_uni2indx_page74[10] = { + /* 0x7400 */ + { 70, 0x0000 }, { 70, 0x0000 }, { 70, 0x0000 }, { 70, 0x0000 }, + { 70, 0x0000 }, { 70, 0x0000 }, { 70, 0x0002 }, { 71, 0x0000 }, + { 71, 0x0000 }, { 71, 0x2000 }, +}; +static const Summary16 hkscs2004_uni2indx_page79[13] = { + /* 0x7900 */ + { 72, 0x0000 }, { 72, 0x0000 }, { 72, 0x0000 }, { 72, 0x0000 }, + { 72, 0x0000 }, { 72, 0x0000 }, { 72, 0x0000 }, { 72, 0x0000 }, + { 72, 0x0000 }, { 72, 0x0000 }, { 72, 0x0000 }, { 72, 0x0000 }, + { 72, 0x0400 }, +}; +static const Summary16 hkscs2004_uni2indx_page7d[10] = { + /* 0x7d00 */ + { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, + { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, + { 73, 0x0000 }, { 73, 0x0020 }, +}; +static const Summary16 hkscs2004_uni2indx_page81[7] = { + /* 0x8100 */ + { 74, 0x0000 }, { 74, 0x0000 }, { 74, 0x0000 }, { 74, 0x0000 }, + { 74, 0x0000 }, { 74, 0x0000 }, { 74, 0x1000 }, +}; +static const Summary16 hkscs2004_uni2indx_page85[10] = { + /* 0x8500 */ + { 75, 0x0000 }, { 75, 0x0000 }, { 75, 0x0000 }, { 75, 0x0000 }, + { 75, 0x0000 }, { 75, 0x0000 }, { 75, 0x0000 }, { 75, 0x0000 }, + { 75, 0x0000 }, { 75, 0x0008 }, +}; +static const Summary16 hkscs2004_uni2indx_page8a[16] = { + /* 0x8a00 */ + { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, + { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, + { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, + { 76, 0x1000 }, { 77, 0x0000 }, { 77, 0x0000 }, { 77, 0x0200 }, +}; +static const Summary16 hkscs2004_uni2indx_page97[22] = { + /* 0x9700 */ + { 78, 0x0000 }, { 78, 0x0000 }, { 78, 0x0000 }, { 78, 0x0010 }, + { 79, 0x0000 }, { 79, 0x0000 }, { 79, 0x0000 }, { 79, 0x0000 }, + { 79, 0x0000 }, { 79, 0x0000 }, { 79, 0x0000 }, { 79, 0x0000 }, + { 79, 0x0000 }, { 79, 0x0000 }, { 79, 0x0000 }, { 79, 0x0000 }, + /* 0x9800 */ + { 79, 0x0000 }, { 79, 0x0000 }, { 79, 0x0000 }, { 79, 0x0000 }, + { 79, 0x0000 }, { 79, 0x0040 }, +}; +static const Summary16 hkscs2004_uni2indx_page9f[12] = { + /* 0x9f00 */ + { 80, 0x0000 }, { 80, 0x0000 }, { 80, 0x0000 }, { 80, 0x0000 }, + { 80, 0x0000 }, { 80, 0x0000 }, { 80, 0x0000 }, { 80, 0x0000 }, + { 80, 0x0000 }, { 80, 0x0000 }, { 80, 0x0000 }, { 80, 0x000c }, +}; +static const Summary16 hkscs2004_uni2indx_page201[20] = { + /* 0x20100 */ + { 82, 0x0000 }, { 82, 0x0000 }, { 82, 0x0000 }, { 82, 0x0000 }, + { 82, 0x0000 }, { 82, 0x0000 }, { 82, 0x0000 }, { 82, 0x0000 }, + { 82, 0x0000 }, { 82, 0x0000 }, { 82, 0x0010 }, { 83, 0x0000 }, + { 83, 0x0000 }, { 83, 0x0000 }, { 83, 0x0000 }, { 83, 0x0000 }, + /* 0x20200 */ + { 83, 0x0000 }, { 83, 0x0000 }, { 83, 0x0000 }, { 83, 0x0200 }, +}; +static const Summary16 hkscs2004_uni2indx_page20a[26] = { + /* 0x20a00 */ + { 84, 0x0000 }, { 84, 0x0000 }, { 84, 0x0000 }, { 84, 0x0000 }, + { 84, 0x0000 }, { 84, 0x0000 }, { 84, 0x8000 }, { 85, 0x0000 }, + { 85, 0x0000 }, { 85, 0x0000 }, { 85, 0x0000 }, { 85, 0x0000 }, + { 85, 0x0000 }, { 85, 0x0000 }, { 85, 0x0000 }, { 85, 0x0000 }, + /* 0x20b00 */ + { 85, 0x0000 }, { 85, 0x0000 }, { 85, 0x0000 }, { 85, 0x0000 }, + { 85, 0x0000 }, { 85, 0x0000 }, { 85, 0x0000 }, { 85, 0x0000 }, + { 85, 0x0000 }, { 85, 0x8000 }, +}; +static const Summary16 hkscs2004_uni2indx_page21a[7] = { + /* 0x21a00 */ + { 86, 0x0000 }, { 86, 0x0000 }, { 86, 0x0000 }, { 86, 0x0000 }, + { 86, 0x0000 }, { 86, 0x0000 }, { 86, 0x0008 }, +}; +static const Summary16 hkscs2004_uni2indx_page21d[19] = { + /* 0x21d00 */ + { 87, 0x0000 }, { 87, 0x0000 }, { 87, 0x0000 }, { 87, 0x0000 }, + { 87, 0x0000 }, { 87, 0x4000 }, { 88, 0x0000 }, { 88, 0x0000 }, + { 88, 0x0000 }, { 88, 0x0000 }, { 88, 0x0000 }, { 88, 0x0000 }, + { 88, 0x0000 }, { 88, 0x0000 }, { 88, 0x0000 }, { 88, 0x0000 }, + /* 0x21e00 */ + { 88, 0x0000 }, { 88, 0x0000 }, { 88, 0x0008 }, +}; +static const Summary16 hkscs2004_uni2indx_page221[13] = { + /* 0x22100 */ + { 89, 0x0000 }, { 89, 0x0000 }, { 89, 0x0000 }, { 89, 0x0000 }, + { 89, 0x0000 }, { 89, 0x0000 }, { 89, 0x0000 }, { 89, 0x0000 }, + { 89, 0x0000 }, { 89, 0x0000 }, { 89, 0x0000 }, { 89, 0x0000 }, + { 89, 0x0002 }, +}; +static const Summary16 hkscs2004_uni2indx_page227[10] = { + /* 0x22700 */ + { 90, 0x0000 }, { 90, 0x0000 }, { 90, 0x0000 }, { 90, 0x0000 }, + { 90, 0x0000 }, { 90, 0x0000 }, { 90, 0x0000 }, { 90, 0x0000 }, + { 90, 0x0000 }, { 90, 0x0040 }, +}; +static const Summary16 hkscs2004_uni2indx_page232[6] = { + /* 0x23200 */ + { 91, 0x0000 }, { 91, 0x0000 }, { 91, 0x0000 }, { 91, 0x0000 }, + { 91, 0x0000 }, { 91, 0x0040 }, +}; +static const Summary16 hkscs2004_uni2indx_page235[18] = { + /* 0x23500 */ + { 92, 0x0000 }, { 92, 0x0000 }, { 92, 0x0000 }, { 92, 0x0000 }, + { 92, 0x0000 }, { 92, 0x0002 }, { 93, 0x0000 }, { 93, 0x0000 }, + { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, + { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, + /* 0x23600 */ + { 93, 0x0000 }, { 93, 0x0080 }, +}; +static const Summary16 hkscs2004_uni2indx_page23b[2] = { + /* 0x23b00 */ + { 94, 0x0000 }, { 94, 0x0400 }, +}; +static const Summary16 hkscs2004_uni2indx_page23e[47] = { + /* 0x23e00 */ + { 95, 0x0040 }, { 96, 0x0000 }, { 96, 0x0000 }, { 96, 0x0000 }, + { 96, 0x0000 }, { 96, 0x0000 }, { 96, 0x0000 }, { 96, 0x0000 }, + { 96, 0x0000 }, { 96, 0x0000 }, { 96, 0x0000 }, { 96, 0x0000 }, + { 96, 0x0000 }, { 96, 0x0000 }, { 96, 0x0000 }, { 96, 0x0000 }, + /* 0x23f00 */ + { 96, 0x0000 }, { 96, 0x0000 }, { 96, 0x0000 }, { 96, 0x0000 }, + { 96, 0x0000 }, { 96, 0x0000 }, { 96, 0x0002 }, { 97, 0x0000 }, + { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, + { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, + /* 0x24000 */ + { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, + { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, + { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, + { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x1000 }, +}; +static const Summary16 hkscs2004_uni2indx_page242[12] = { + /* 0x24200 */ + { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0000 }, + { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0000 }, + { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x8000 }, +}; +static const Summary16 hkscs2004_uni2indx_page24b[1] = { + /* 0x24b00 */ + { 99, 0x8000 }, +}; +static const Summary16 hkscs2004_uni2indx_page254[10] = { + /* 0x25400 */ + { 100, 0x0000 }, { 100, 0x0000 }, { 100, 0x0000 }, { 100, 0x0000 }, + { 100, 0x0000 }, { 100, 0x0000 }, { 100, 0x0000 }, { 100, 0x0000 }, + { 100, 0x0000 }, { 100, 0x0400 }, +}; +static const Summary16 hkscs2004_uni2indx_page25a[6] = { + /* 0x25a00 */ + { 101, 0x0000 }, { 101, 0x0000 }, { 101, 0x0000 }, { 101, 0x0000 }, + { 101, 0x0000 }, { 101, 0x0010 }, +}; +static const Summary16 hkscs2004_uni2indx_page26b[21] = { + /* 0x26b00 */ + { 102, 0x0000 }, { 102, 0x0000 }, { 102, 0x0008 }, { 103, 0x0000 }, + { 103, 0x0000 }, { 103, 0x0000 }, { 103, 0x0000 }, { 103, 0x0000 }, + { 103, 0x0000 }, { 103, 0x0000 }, { 103, 0x0000 }, { 103, 0x0000 }, + { 103, 0x0000 }, { 103, 0x0000 }, { 103, 0x0000 }, { 103, 0x0000 }, + /* 0x26c00 */ + { 103, 0x0000 }, { 103, 0x0000 }, { 103, 0x0000 }, { 103, 0x0000 }, + { 103, 0x0042 }, +}; +static const Summary16 hkscs2004_uni2indx_page26e[9] = { + /* 0x26e00 */ + { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0000 }, + { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0000 }, + { 105, 0x0800 }, +}; +static const Summary16 hkscs2004_uni2indx_page270[14] = { + /* 0x27000 */ + { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x0000 }, + { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x0000 }, + { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x0000 }, + { 106, 0x0000 }, { 106, 0x0004 }, +}; +static const Summary16 hkscs2004_uni2indx_page272[32] = { + /* 0x27200 */ + { 107, 0x0000 }, { 107, 0x0000 }, { 107, 0x0000 }, { 107, 0x0000 }, + { 107, 0x0000 }, { 107, 0x0000 }, { 107, 0x0080 }, { 108, 0x0000 }, + { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0000 }, + { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0000 }, + /* 0x27300 */ + { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0000 }, + { 108, 0x0000 }, { 108, 0x0004 }, { 109, 0x0000 }, { 109, 0x0000 }, + { 109, 0x0000 }, { 109, 0x0000 }, { 109, 0x0000 }, { 109, 0x0000 }, + { 109, 0x0000 }, { 109, 0x0000 }, { 109, 0x0000 }, { 109, 0x8000 }, +}; +static const Summary16 hkscs2004_uni2indx_page27b[29] = { + /* 0x27b00 */ + { 110, 0x0000 }, { 110, 0x0000 }, { 110, 0x0000 }, { 110, 0x0000 }, + { 110, 0x0000 }, { 110, 0x0000 }, { 110, 0x0000 }, { 110, 0x0000 }, + { 110, 0x0000 }, { 110, 0x0000 }, { 110, 0x0000 }, { 110, 0x0000 }, + { 110, 0x0000 }, { 110, 0x0000 }, { 110, 0x8000 }, { 111, 0x0000 }, + /* 0x27c00 */ + { 111, 0x0000 }, { 111, 0x0000 }, { 111, 0x0000 }, { 111, 0x0000 }, + { 111, 0x0000 }, { 111, 0x0000 }, { 111, 0x1000 }, { 112, 0x0000 }, + { 112, 0x0000 }, { 112, 0x0000 }, { 112, 0x0000 }, { 112, 0x0002 }, + { 113, 0x0020 }, +}; +static const Summary16 hkscs2004_uni2indx_page286[12] = { + /* 0x28600 */ + { 114, 0x0000 }, { 114, 0x0000 }, { 114, 0x0000 }, { 114, 0x0000 }, + { 114, 0x0000 }, { 114, 0x0000 }, { 114, 0x0000 }, { 114, 0x0000 }, + { 114, 0x0000 }, { 114, 0x0000 }, { 114, 0x0000 }, { 114, 0x0004 }, +}; +static const Summary16 hkscs2004_uni2indx_page289[7] = { + /* 0x28900 */ + { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, + { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x2000 }, +}; +static const Summary16 hkscs2004_uni2indx_page28b[12] = { + /* 0x28b00 */ + { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0000 }, + { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0000 }, + { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0200 }, +}; +static const Summary16 hkscs2004_uni2indx_page290[8] = { + /* 0x29000 */ + { 117, 0x0000 }, { 117, 0x0000 }, { 117, 0x0000 }, { 117, 0x0000 }, + { 117, 0x0000 }, { 117, 0x0000 }, { 117, 0x0000 }, { 117, 0x0200 }, +}; +static const Summary16 hkscs2004_uni2indx_page298[21] = { + /* 0x29800 */ + { 118, 0x0000 }, { 118, 0x0000 }, { 118, 0x0000 }, { 118, 0x0000 }, + { 118, 0x0000 }, { 118, 0x0000 }, { 118, 0x0000 }, { 118, 0x0000 }, + { 118, 0x0000 }, { 118, 0x0000 }, { 118, 0x0000 }, { 118, 0x0000 }, + { 118, 0x0000 }, { 118, 0x0000 }, { 118, 0x0000 }, { 118, 0x0400 }, + /* 0x29900 */ + { 119, 0x0000 }, { 119, 0x0000 }, { 119, 0x0000 }, { 119, 0x0000 }, + { 119, 0x0020 }, +}; +static const Summary16 hkscs2004_uni2indx_page29e[12] = { + /* 0x29e00 */ + { 120, 0x0000 }, { 120, 0x0000 }, { 120, 0x0000 }, { 120, 0x0000 }, + { 120, 0x0000 }, { 120, 0x0000 }, { 120, 0x0000 }, { 120, 0x0000 }, + { 120, 0x0000 }, { 120, 0x0000 }, { 120, 0x0000 }, { 120, 0x0001 }, +}; +static const Summary16 hkscs2004_uni2indx_page2a1[12] = { + /* 0x2a100 */ + { 121, 0x0000 }, { 121, 0x0000 }, { 121, 0x0000 }, { 121, 0x0000 }, + { 121, 0x0000 }, { 121, 0x0000 }, { 121, 0x0000 }, { 121, 0x0000 }, + { 121, 0x0000 }, { 121, 0x0000 }, { 121, 0x0000 }, { 121, 0x0020 }, +}; +static const Summary16 hkscs2004_uni2indx_page2a3[6] = { + /* 0x2a300 */ + { 122, 0x0000 }, { 122, 0x0000 }, { 122, 0x0000 }, { 122, 0x0000 }, + { 122, 0x0000 }, { 122, 0x0002 }, +}; + +static int +hkscs2004_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (n >= 2) { + const Summary16 *summary = NULL; + if (wc < 0x21a00) { + if (wc < 0x6e00) { + if (wc >= 0x3400 && wc < 0x3450) + summary = &hkscs2004_uni2indx_page34[(wc>>4)-0x340]; + else if (wc >= 0x3600 && wc < 0x3980) + summary = &hkscs2004_uni2indx_page36[(wc>>4)-0x360]; + else if (wc >= 0x3b00 && wc < 0x3ba0) + summary = &hkscs2004_uni2indx_page3b[(wc>>4)-0x3b0]; + else if (wc >= 0x3d00 && wc < 0x3e00) + summary = &hkscs2004_uni2indx_page3d[(wc>>4)-0x3d0]; + else if (wc >= 0x3f00 && wc < 0x41f0) + summary = &hkscs2004_uni2indx_page3f[(wc>>4)-0x3f0]; + else if (wc >= 0x4300 && wc < 0x4750) + summary = &hkscs2004_uni2indx_page43[(wc>>4)-0x430]; + else if (wc >= 0x4a00 && wc < 0x4ab0) + summary = &hkscs2004_uni2indx_page4a[(wc>>4)-0x4a0]; + else if (wc >= 0x4c00 && wc < 0x4d90) + summary = &hkscs2004_uni2indx_page4c[(wc>>4)-0x4c0]; + else if (wc >= 0x4f00 && wc < 0x4fc0) + summary = &hkscs2004_uni2indx_page4f[(wc>>4)-0x4f0]; + else if (wc >= 0x5600 && wc < 0x5700) + summary = &hkscs2004_uni2indx_page56[(wc>>4)-0x560]; + else if (wc >= 0x5900 && wc < 0x5d80) + summary = &hkscs2004_uni2indx_page59[(wc>>4)-0x590]; + else if (wc >= 0x5f00 && wc < 0x5f40) + summary = &hkscs2004_uni2indx_page5f[(wc>>4)-0x5f0]; + else if (wc >= 0x6600 && wc < 0x6770) + summary = &hkscs2004_uni2indx_page66[(wc>>4)-0x660]; + } else { + if (wc >= 0x6e00 && wc < 0x6e60) + summary = &hkscs2004_uni2indx_page6e[(wc>>4)-0x6e0]; + else if (wc >= 0x7100 && wc < 0x7230) + summary = &hkscs2004_uni2indx_page71[(wc>>4)-0x710]; + else if (wc >= 0x7400 && wc < 0x74a0) + summary = &hkscs2004_uni2indx_page74[(wc>>4)-0x740]; + else if (wc >= 0x7900 && wc < 0x79d0) + summary = &hkscs2004_uni2indx_page79[(wc>>4)-0x790]; + else if (wc >= 0x7d00 && wc < 0x7da0) + summary = &hkscs2004_uni2indx_page7d[(wc>>4)-0x7d0]; + else if (wc >= 0x8100 && wc < 0x8170) + summary = &hkscs2004_uni2indx_page81[(wc>>4)-0x810]; + else if (wc >= 0x8500 && wc < 0x85a0) + summary = &hkscs2004_uni2indx_page85[(wc>>4)-0x850]; + else if (wc >= 0x8a00 && wc < 0x8b00) + summary = &hkscs2004_uni2indx_page8a[(wc>>4)-0x8a0]; + else if (wc >= 0x9700 && wc < 0x9860) + summary = &hkscs2004_uni2indx_page97[(wc>>4)-0x970]; + else if (wc >= 0x9f00 && wc < 0x9fc0) + summary = &hkscs2004_uni2indx_page9f[(wc>>4)-0x9f0]; + else if (wc >= 0x20100 && wc < 0x20240) + summary = &hkscs2004_uni2indx_page201[(wc>>4)-0x2010]; + else if (wc >= 0x20a00 && wc < 0x20ba0) + summary = &hkscs2004_uni2indx_page20a[(wc>>4)-0x20a0]; + } + } else { + if (wc < 0x26b00) { + if (wc >= 0x21a00 && wc < 0x21a70) + summary = &hkscs2004_uni2indx_page21a[(wc>>4)-0x21a0]; + else if (wc >= 0x21d00 && wc < 0x21e30) + summary = &hkscs2004_uni2indx_page21d[(wc>>4)-0x21d0]; + else if (wc >= 0x22100 && wc < 0x221d0) + summary = &hkscs2004_uni2indx_page221[(wc>>4)-0x2210]; + else if (wc >= 0x22700 && wc < 0x227a0) + summary = &hkscs2004_uni2indx_page227[(wc>>4)-0x2270]; + else if (wc >= 0x23200 && wc < 0x23260) + summary = &hkscs2004_uni2indx_page232[(wc>>4)-0x2320]; + else if (wc >= 0x23500 && wc < 0x23620) + summary = &hkscs2004_uni2indx_page235[(wc>>4)-0x2350]; + else if (wc >= 0x23b00 && wc < 0x23b20) + summary = &hkscs2004_uni2indx_page23b[(wc>>4)-0x23b0]; + else if (wc >= 0x23e00 && wc < 0x240f0) + summary = &hkscs2004_uni2indx_page23e[(wc>>4)-0x23e0]; + else if (wc >= 0x24200 && wc < 0x242c0) + summary = &hkscs2004_uni2indx_page242[(wc>>4)-0x2420]; + else if (wc >= 0x24b00 && wc < 0x24b10) + summary = &hkscs2004_uni2indx_page24b[(wc>>4)-0x24b0]; + else if (wc >= 0x25400 && wc < 0x254a0) + summary = &hkscs2004_uni2indx_page254[(wc>>4)-0x2540]; + else if (wc >= 0x25a00 && wc < 0x25a60) + summary = &hkscs2004_uni2indx_page25a[(wc>>4)-0x25a0]; + } else { + if (wc >= 0x26b00 && wc < 0x26c50) + summary = &hkscs2004_uni2indx_page26b[(wc>>4)-0x26b0]; + else if (wc >= 0x26e00 && wc < 0x26e90) + summary = &hkscs2004_uni2indx_page26e[(wc>>4)-0x26e0]; + else if (wc >= 0x27000 && wc < 0x270e0) + summary = &hkscs2004_uni2indx_page270[(wc>>4)-0x2700]; + else if (wc >= 0x27200 && wc < 0x27400) + summary = &hkscs2004_uni2indx_page272[(wc>>4)-0x2720]; + else if (wc >= 0x27b00 && wc < 0x27cd0) + summary = &hkscs2004_uni2indx_page27b[(wc>>4)-0x27b0]; + else if (wc >= 0x28600 && wc < 0x286c0) + summary = &hkscs2004_uni2indx_page286[(wc>>4)-0x2860]; + else if (wc >= 0x28900 && wc < 0x28970) + summary = &hkscs2004_uni2indx_page289[(wc>>4)-0x2890]; + else if (wc >= 0x28b00 && wc < 0x28bc0) + summary = &hkscs2004_uni2indx_page28b[(wc>>4)-0x28b0]; + else if (wc >= 0x29000 && wc < 0x29080) + summary = &hkscs2004_uni2indx_page290[(wc>>4)-0x2900]; + else if (wc >= 0x29800 && wc < 0x29950) + summary = &hkscs2004_uni2indx_page298[(wc>>4)-0x2980]; + else if (wc >= 0x29e00 && wc < 0x29ec0) + summary = &hkscs2004_uni2indx_page29e[(wc>>4)-0x29e0]; + else if (wc >= 0x2a100 && wc < 0x2a1c0) + summary = &hkscs2004_uni2indx_page2a1[(wc>>4)-0x2a10]; + else if (wc >= 0x2a300 && wc < 0x2a360) + summary = &hkscs2004_uni2indx_page2a3[(wc>>4)-0x2a30]; + } + } + if (summary) { + unsigned short used = summary->used; + unsigned int i = wc & 0x0f; + if (used & ((unsigned short) 1 << i)) { + unsigned short c; + /* Keep in `used' only the bits 0..i-1. */ + used &= ((unsigned short) 1 << i) - 1; + /* Add `summary->indx' and the number of bits set in `used'. */ + used = (used & 0x5555) + ((used & 0xaaaa) >> 1); + used = (used & 0x3333) + ((used & 0xcccc) >> 2); + used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); + used = (used & 0x00ff) + (used >> 8); + c = hkscs2004_2charset[summary->indx + used]; + r[0] = (c >> 8); r[1] = (c & 0xff); + return 2; + } + } + return RET_ILUNI; + } + return RET_TOOSMALL; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/hp_roman8.h b/graf2d/win32gdk/gdk/src/iconv/hp_roman8.h new file mode 100644 index 00000000000..da776ed0871 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/hp_roman8.h @@ -0,0 +1,119 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * HP-ROMAN8 + */ + +static const unsigned short hp_roman8_2uni[96] = { + /* 0xa0 */ + 0x00a0, 0x00c0, 0x00c2, 0x00c8, 0x00ca, 0x00cb, 0x00ce, 0x00cf, + 0x00b4, 0x02cb, 0x02c6, 0x00a8, 0x02dc, 0x00d9, 0x00db, 0x20a4, + /* 0xb0 */ + 0x00af, 0x00dd, 0x00fd, 0x00b0, 0x00c7, 0x00e7, 0x00d1, 0x00f1, + 0x00a1, 0x00bf, 0x00a4, 0x00a3, 0x00a5, 0x00a7, 0x0192, 0x00a2, + /* 0xc0 */ + 0x00e2, 0x00ea, 0x00f4, 0x00fb, 0x00e1, 0x00e9, 0x00f3, 0x00fa, + 0x00e0, 0x00e8, 0x00f2, 0x00f9, 0x00e4, 0x00eb, 0x00f6, 0x00fc, + /* 0xd0 */ + 0x00c5, 0x00ee, 0x00d8, 0x00c6, 0x00e5, 0x00ed, 0x00f8, 0x00e6, + 0x00c4, 0x00ec, 0x00d6, 0x00dc, 0x00c9, 0x00ef, 0x00df, 0x00d4, + /* 0xe0 */ + 0x00c1, 0x00c3, 0x00e3, 0x00d0, 0x00f0, 0x00cd, 0x00cc, 0x00d3, + 0x00d2, 0x00d5, 0x00f5, 0x0160, 0x0161, 0x00da, 0x0178, 0x00ff, + /* 0xf0 */ + 0x00de, 0x00fe, 0x00b7, 0x00b5, 0x00b6, 0x00be, 0x2014, 0x00bc, + 0x00bd, 0x00aa, 0x00ba, 0x00ab, 0x25a0, 0x00bb, 0x00b1, 0xfffd, +}; + +static int +hp_roman8_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0xa0) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = hp_roman8_2uni[c-0xa0]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char hp_roman8_page00[96] = { + 0xa0, 0xb8, 0xbf, 0xbb, 0xba, 0xbc, 0x00, 0xbd, /* 0xa0-0xa7 */ + 0xab, 0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0xb0, /* 0xa8-0xaf */ + 0xb3, 0xfe, 0x00, 0x00, 0xa8, 0xf3, 0xf4, 0xf2, /* 0xb0-0xb7 */ + 0x00, 0x00, 0xfa, 0xfd, 0xf7, 0xf8, 0xf5, 0xb9, /* 0xb8-0xbf */ + 0xa1, 0xe0, 0xa2, 0xe1, 0xd8, 0xd0, 0xd3, 0xb4, /* 0xc0-0xc7 */ + 0xa3, 0xdc, 0xa4, 0xa5, 0xe6, 0xe5, 0xa6, 0xa7, /* 0xc8-0xcf */ + 0xe3, 0xb6, 0xe8, 0xe7, 0xdf, 0xe9, 0xda, 0x00, /* 0xd0-0xd7 */ + 0xd2, 0xad, 0xed, 0xae, 0xdb, 0xb1, 0xf0, 0xde, /* 0xd8-0xdf */ + 0xc8, 0xc4, 0xc0, 0xe2, 0xcc, 0xd4, 0xd7, 0xb5, /* 0xe0-0xe7 */ + 0xc9, 0xc5, 0xc1, 0xcd, 0xd9, 0xd5, 0xd1, 0xdd, /* 0xe8-0xef */ + 0xe4, 0xb7, 0xca, 0xc6, 0xc2, 0xea, 0xce, 0x00, /* 0xf0-0xf7 */ + 0xd6, 0xcb, 0xc7, 0xc3, 0xcf, 0xb2, 0xf1, 0xef, /* 0xf8-0xff */ +}; +static const unsigned char hp_roman8_page01[56] = { + 0xeb, 0xec, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0xee, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ +}; +static const unsigned char hp_roman8_page02[32] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ +}; + +static int +hp_roman8_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x00a0) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0100) + c = hp_roman8_page00[wc-0x00a0]; + else if (wc >= 0x0160 && wc < 0x0198) + c = hp_roman8_page01[wc-0x0160]; + else if (wc >= 0x02c0 && wc < 0x02e0) + c = hp_roman8_page02[wc-0x02c0]; + else if (wc == 0x2014) + c = 0xf6; + else if (wc == 0x20a4) + c = 0xaf; + else if (wc == 0x25a0) + c = 0xfc; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/hz.h b/graf2d/win32gdk/gdk/src/iconv/hz.h new file mode 100644 index 00000000000..db0b4b11dc7 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/hz.h @@ -0,0 +1,163 @@ +/* + * Copyright (C) 1999-2001, 2008 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * HZ + */ + +/* Specification: RFC 1842, RFC 1843 */ + +/* + * The state is 1 in GB mode, 0 in ASCII mode. + */ + +static int +hz_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + state_t state = conv->istate; + unsigned int count = 0; + unsigned char c; + for (;;) { + c = *s; + if (c == '~') { + if (n < count+2) + goto none; + c = s[1]; + if (state == 0) { + if (c == '~') { + *pwc = (ucs4_t) '~'; + conv->istate = state; + return count+2; + } + if (c == '{') { + state = 1; + s += 2; count += 2; + if (n < count+1) + goto none; + continue; + } + if (c == '\n') { + s += 2; count += 2; + if (n < count+1) + goto none; + continue; + } + } else { + if (c == '}') { + state = 0; + s += 2; count += 2; + if (n < count+1) + goto none; + continue; + } + } + goto ilseq; + } + break; + } + if (state == 0) { + *pwc = (ucs4_t) c; + conv->istate = state; + return count+1; + } else { + int ret; + if (n < count+2) + goto none; + ret = gb2312_mbtowc(conv,pwc,s,2); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 2) abort(); + conv->istate = state; + return count+2; + } + +none: + conv->istate = state; + return RET_TOOFEW(count); + +ilseq: + conv->istate = state; + return RET_SHIFT_ILSEQ(count); +} + +static int +hz_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + state_t state = conv->ostate; + unsigned char buf[2]; + int ret; + + /* Code set 0 (ASCII or GB 1988-89) */ + ret = ascii_wctomb(conv,buf,wc,1); + if (ret != RET_ILUNI) { + if (ret != 1) abort(); + if (buf[0] < 0x80) { + int count = (state ? 3 : 1); + if (n < count) + return RET_TOOSMALL; + if (state) { + r[0] = '~'; + r[1] = '}'; + r += 2; + state = 0; + } + r[0] = buf[0]; + conv->ostate = state; + return count; + } + } + + /* Code set 1 (GB 2312-1980) */ + ret = gb2312_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (buf[0] < 0x80 && buf[1] < 0x80) { + int count = (state ? 2 : 4); + if (n < count) + return RET_TOOSMALL; + if (!state) { + r[0] = '~'; + r[1] = '{'; + r += 2; + state = 1; + } + r[0] = buf[0]; + r[1] = buf[1]; + conv->ostate = state; + return count; + } + } + + return RET_ILUNI; +} + +static int +hz_reset (conv_t conv, unsigned char *r, int n) +{ + state_t state = conv->ostate; + if (state) { + if (n < 2) + return RET_TOOSMALL; + r[0] = '~'; + r[1] = '}'; + /* conv->ostate = 0; will be done by the caller */ + return 2; + } else + return 0; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/iconv.c b/graf2d/win32gdk/gdk/src/iconv/iconv.c new file mode 100644 index 00000000000..a7f7aef7480 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iconv.c @@ -0,0 +1,592 @@ +/* + * Copyright (C) 1999-2008 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <iconv.h> + +#include <stdlib.h> +#include <string.h> +#include "config.h" +#include "localcharset.h" + +#if ENABLE_EXTRA +/* + * Consider all system dependent encodings, for any system, + * and the extra encodings. + */ +#define USE_AIX +#define USE_OSF1 +#define USE_DOS +#define USE_EXTRA +#else +/* + * Consider those system dependent encodings that are needed for the + * current system. + */ +#ifdef _AIX +#define USE_AIX +#endif +#if defined(__osf__) || defined(VMS) +#define USE_OSF1 +#endif +#if defined(__DJGPP__) || (defined(_WIN32) && (defined(_MSC_VER) || defined(__MINGW32__))) +#define USE_DOS +#endif +#endif + +/* + * Data type for general conversion loop. + */ +struct loop_funcs { + size_t (*loop_convert) (iconv_t icd, + const char* * inbuf, size_t *inbytesleft, + char* * outbuf, size_t *outbytesleft); + size_t (*loop_reset) (iconv_t icd, + char* * outbuf, size_t *outbytesleft); +}; + +/* + * Converters. + */ +#include "converters.h" + +/* + * Transliteration tables. + */ +#include "cjk_variants.h" +#include "translit.h" + +/* + * Table of all supported encodings. + */ +struct encoding { + struct mbtowc_funcs ifuncs; /* conversion multibyte -> unicode */ + struct wctomb_funcs ofuncs; /* conversion unicode -> multibyte */ + int oflags; /* flags for unicode -> multibyte conversion */ +}; +#define DEFALIAS(xxx_alias,xxx) /* nothing */ +enum { +#define DEFENCODING(xxx_names,xxx,xxx_ifuncs1,xxx_ifuncs2,xxx_ofuncs1,xxx_ofuncs2) \ + ei_##xxx , +#include "encodings.def" +#ifdef USE_AIX +# include "encodings_aix.def" +#endif +#ifdef USE_OSF1 +# include "encodings_osf1.def" +#endif +#ifdef USE_DOS +# include "encodings_dos.def" +#endif +#ifdef USE_EXTRA +# include "encodings_extra.def" +#endif +#include "encodings_local.def" +#undef DEFENCODING +ei_for_broken_compilers_that_dont_like_trailing_commas +}; +#include "flags.h" +static struct encoding const all_encodings[] = { +#define DEFENCODING(xxx_names,xxx,xxx_ifuncs1,xxx_ifuncs2,xxx_ofuncs1,xxx_ofuncs2) \ + { xxx_ifuncs1,xxx_ifuncs2, xxx_ofuncs1,xxx_ofuncs2, ei_##xxx##_oflags }, +#include "encodings.def" +#ifdef USE_AIX +# include "encodings_aix.def" +#endif +#ifdef USE_OSF1 +# include "encodings_osf1.def" +#endif +#ifdef USE_DOS +# include "encodings_dos.def" +#endif +#ifdef USE_EXTRA +# include "encodings_extra.def" +#endif +#undef DEFENCODING +#define DEFENCODING(xxx_names,xxx,xxx_ifuncs1,xxx_ifuncs2,xxx_ofuncs1,xxx_ofuncs2) \ + { xxx_ifuncs1,xxx_ifuncs2, xxx_ofuncs1,xxx_ofuncs2, 0 }, +#include "encodings_local.def" +#undef DEFENCODING +}; +#undef DEFALIAS + +/* + * Conversion loops. + */ +#include "loops.h" + +/* + * Alias lookup function. + * Defines + * struct alias { int name; unsigned int encoding_index; }; + * const struct alias * aliases_lookup (const char *str, unsigned int len); + * #define MAX_WORD_LENGTH ... + */ +#if defined _AIX +# include "aliases_sysaix.h" +#elif defined hpux || defined __hpux +# include "aliases_syshpux.h" +#elif defined __osf__ +# include "aliases_sysosf1.h" +#elif defined __sun +# include "aliases_syssolaris.h" +#else +# include "aliases.h" +#endif + +/* + * System dependent alias lookup function. + * Defines + * const struct alias * aliases2_lookup (const char *str); + */ +#if defined(USE_AIX) || defined(USE_OSF1) || defined(USE_DOS) || defined(USE_EXTRA) /* || ... */ +struct stringpool2_t { +#define S(tag,name,encoding_index) char stringpool_##tag[sizeof(name)]; +#include "aliases2.h" +#undef S +}; +static const struct stringpool2_t stringpool2_contents = { +#define S(tag,name,encoding_index) name, +#include "aliases2.h" +#undef S +}; +#define stringpool2 ((const char *) &stringpool2_contents) +static const struct alias sysdep_aliases[] = { +#define S(tag,name,encoding_index) { (int)(long)&((struct stringpool2_t *)0)->stringpool_##tag, encoding_index }, +#include "aliases2.h" +#undef S +}; +#ifdef __GNUC__ +__inline +#endif +const struct alias * +aliases2_lookup (register const char *str) +{ + const struct alias * ptr; + unsigned int count; + for (ptr = sysdep_aliases, count = sizeof(sysdep_aliases)/sizeof(sysdep_aliases[0]); count > 0; ptr++, count--) + if (!strcmp(str, stringpool2 + ptr->name)) + return ptr; + return NULL; +} +#else +#define aliases2_lookup(str) NULL +#define stringpool2 NULL +#endif + +#if 0 +/* Like !strcasecmp, except that the both strings can be assumed to be ASCII + and the first string can be assumed to be in uppercase. */ +static int strequal (const char* str1, const char* str2) +{ + unsigned char c1; + unsigned char c2; + for (;;) { + c1 = * (unsigned char *) str1++; + c2 = * (unsigned char *) str2++; + if (c1 == 0) + break; + if (c2 >= 'a' && c2 <= 'z') + c2 -= 'a'-'A'; + if (c1 != c2) + break; + } + return (c1 == c2); +} +#endif + +iconv_t iconv_open (const char* tocode, const char* fromcode) +{ + struct conv_struct * cd; + unsigned int from_index; + int from_wchar; + unsigned int to_index; + int to_wchar; + int transliterate; + int discard_ilseq; + +#include "iconv_open1.h" + + cd = (struct conv_struct *) malloc(from_wchar != to_wchar + ? sizeof(struct wchar_conv_struct) + : sizeof(struct conv_struct)); + if (cd == NULL) { + errno = ENOMEM; + return (iconv_t)(-1); + } + +#include "iconv_open2.h" + + return (iconv_t)cd; +invalid: + errno = EINVAL; + return (iconv_t)(-1); +} + +size_t iconv (iconv_t icd, + const char* * inbuf, size_t *inbytesleft, + char* * outbuf, size_t *outbytesleft) +{ + conv_t cd = (conv_t) icd; + if (inbuf == NULL || *inbuf == NULL) + return cd->lfuncs.loop_reset(icd,outbuf,outbytesleft); + else + return cd->lfuncs.loop_convert(icd, + (const char* *)inbuf,inbytesleft, + outbuf,outbytesleft); +} + +int iconv_close (iconv_t icd) +{ + conv_t cd = (conv_t) icd; + free(cd); + return 0; +} + +#ifndef LIBICONV_PLUG + +/* + * Verify that a 'struct conv_struct' and a 'struct wchar_conv_struct' each + * fit in an iconv_allocation_t. + * If this verification fails, iconv_allocation_t must be made larger and + * the major version in LIBICONV_VERSION_INFO must be bumped. + * Currently 'struct conv_struct' has 21 integer/pointer fields, and + * 'struct wchar_conv_struct' additionally has an 'mbstate_t' field. + */ +typedef int verify_size_1[2 * (sizeof (struct conv_struct) <= sizeof (iconv_allocation_t)) - 1]; +typedef int verify_size_2[2 * (sizeof (struct wchar_conv_struct) <= sizeof (iconv_allocation_t)) - 1]; + +int iconv_open_into (const char* tocode, const char* fromcode, + iconv_allocation_t* resultp) +{ + struct conv_struct * cd; + unsigned int from_index; + int from_wchar; + unsigned int to_index; + int to_wchar; + int transliterate; + int discard_ilseq; + +#include "iconv_open1.h" + + cd = (struct conv_struct *) resultp; + +#include "iconv_open2.h" + + return 0; +invalid: + errno = EINVAL; + return -1; +} + +int iconvctl (iconv_t icd, int request, void* argument) +{ + conv_t cd = (conv_t) icd; + switch (request) { + case ICONV_TRIVIALP: + *(int *)argument = + ((cd->lfuncs.loop_convert == unicode_loop_convert + && cd->iindex == cd->oindex) + || cd->lfuncs.loop_convert == wchar_id_loop_convert + ? 1 : 0); + return 0; + case ICONV_GET_TRANSLITERATE: + *(int *)argument = cd->transliterate; + return 0; + case ICONV_SET_TRANSLITERATE: + cd->transliterate = (*(const int *)argument ? 1 : 0); + return 0; + case ICONV_GET_DISCARD_ILSEQ: + *(int *)argument = cd->discard_ilseq; + return 0; + case ICONV_SET_DISCARD_ILSEQ: + cd->discard_ilseq = (*(const int *)argument ? 1 : 0); + return 0; + case ICONV_SET_HOOKS: + if (argument != NULL) { + cd->hooks = *(const struct iconv_hooks *)argument; + } else { + cd->hooks.uc_hook = NULL; + cd->hooks.wc_hook = NULL; + cd->hooks.data = NULL; + } + return 0; + case ICONV_SET_FALLBACKS: + if (argument != NULL) { + cd->fallbacks = *(const struct iconv_fallbacks *)argument; + } else { + cd->fallbacks.mb_to_uc_fallback = NULL; + cd->fallbacks.uc_to_mb_fallback = NULL; + cd->fallbacks.mb_to_wc_fallback = NULL; + cd->fallbacks.wc_to_mb_fallback = NULL; + cd->fallbacks.data = NULL; + } + return 0; + default: + errno = EINVAL; + return -1; + } +} + +/* An alias after its name has been converted from 'int' to 'const char*'. */ +struct nalias { const char* name; unsigned int encoding_index; }; + +static int compare_by_index (const void * arg1, const void * arg2) +{ + const struct nalias * alias1 = (const struct nalias *) arg1; + const struct nalias * alias2 = (const struct nalias *) arg2; + return (int)alias1->encoding_index - (int)alias2->encoding_index; +} + +static int compare_by_name (const void * arg1, const void * arg2) +{ + const char * name1 = *(const char **)arg1; + const char * name2 = *(const char **)arg2; + /* Compare alphabetically, but put "CS" names at the end. */ + int sign = strcmp(name1,name2); + if (sign != 0) { + sign = ((name1[0]=='C' && name1[1]=='S') - (name2[0]=='C' && name2[1]=='S')) + * 4 + (sign >= 0 ? 1 : -1); + } + return sign; +} + +void iconvlist (int (*do_one) (unsigned int namescount, + const char * const * names, + void* data), + void* data) +{ +#define aliascount1 sizeof(aliases)/sizeof(aliases[0]) +#ifndef aliases2_lookup +#define aliascount2 sizeof(sysdep_aliases)/sizeof(sysdep_aliases[0]) +#else +#define aliascount2 0 +#endif +#define aliascount (aliascount1+aliascount2) + struct nalias aliasbuf[aliascount]; + const char * namesbuf[aliascount]; + size_t num_aliases; + { + /* Put all existing aliases into a buffer. */ + size_t i; + size_t j; + j = 0; + for (i = 0; i < aliascount1; i++) { + const struct alias * p = &aliases[i]; + if (p->name >= 0 + && p->encoding_index != ei_local_char + && p->encoding_index != ei_local_wchar_t) { + aliasbuf[j].name = stringpool + p->name; + aliasbuf[j].encoding_index = p->encoding_index; + j++; + } + } +#ifndef aliases2_lookup + for (i = 0; i < aliascount2; i++) { + aliasbuf[j].name = stringpool2 + sysdep_aliases[i].name; + aliasbuf[j].encoding_index = sysdep_aliases[i].encoding_index; + j++; + } +#endif + num_aliases = j; + } + /* Sort by encoding_index. */ + if (num_aliases > 1) + qsort(aliasbuf, num_aliases, sizeof(struct nalias), compare_by_index); + { + /* Process all aliases with the same encoding_index together. */ + size_t j; + j = 0; + while (j < num_aliases) { + unsigned int ei = aliasbuf[j].encoding_index; + size_t i = 0; + do + namesbuf[i++] = aliasbuf[j++].name; + while (j < num_aliases && aliasbuf[j].encoding_index == ei); + if (i > 1) + qsort((void *) namesbuf, i, sizeof(const char *), compare_by_name); + /* Call the callback. */ + if (do_one(i,namesbuf,data)) + break; + } + } +#undef aliascount +#undef aliascount2 +#undef aliascount1 +} + +/* + * Table of canonical names of encodings. + * Instead of strings, it contains offsets into stringpool and stringpool2. + */ +static const unsigned short all_canonical[] = { +#if defined _AIX +# include "canonical_sysaix.h" +#elif defined hpux || defined __hpux +# include "canonical_syshpux.h" +#elif defined __osf__ +# include "canonical_sysosf1.h" +#elif defined __sun +# include "canonical_syssolaris.h" +#else +# include "canonical.h" +#endif +#ifdef USE_AIX +# if defined _AIX +# include "canonical_aix_sysaix.h" +# else +# include "canonical_aix.h" +# endif +#endif +#ifdef USE_OSF1 +# if defined __osf__ +# include "canonical_osf1_sysosf1.h" +# else +# include "canonical_osf1.h" +# endif +#endif +#ifdef USE_DOS +# include "canonical_dos.h" +#endif +#ifdef USE_EXTRA +# include "canonical_extra.h" +#endif +#if defined _AIX +# include "canonical_local_sysaix.h" +#elif defined hpux || defined __hpux +# include "canonical_local_syshpux.h" +#elif defined __osf__ +# include "canonical_local_sysosf1.h" +#elif defined __sun +# include "canonical_local_syssolaris.h" +#else +# include "canonical_local.h" +#endif +}; + +const char * iconv_canonicalize (const char * name) +{ + const char* code; + char buf[MAX_WORD_LENGTH+10+1]; + const char* cp; + char* bp; + const struct alias * ap; + unsigned int count; + unsigned int index; + const char* pool; + + /* Before calling aliases_lookup, convert the input string to upper case, + * and check whether it's entirely ASCII (we call gperf with option "-7" + * to achieve a smaller table) and non-empty. If it's not entirely ASCII, + * or if it's too long, it is not a valid encoding name. + */ + for (code = name;;) { + /* Search code in the table. */ + for (cp = code, bp = buf, count = MAX_WORD_LENGTH+10+1; ; cp++, bp++) { + unsigned char c = * (unsigned char *) cp; + if (c >= 0x80) + goto invalid; + if (c >= 'a' && c <= 'z') + c -= 'a'-'A'; + *bp = c; + if (c == '\0') + break; + if (--count == 0) + goto invalid; + } + for (;;) { + if (bp-buf >= 10 && memcmp(bp-10,"//TRANSLIT",10)==0) { + bp -= 10; + *bp = '\0'; + continue; + } + if (bp-buf >= 8 && memcmp(bp-8,"//IGNORE",8)==0) { + bp -= 8; + *bp = '\0'; + continue; + } + break; + } + if (buf[0] == '\0') { + code = locale_charset(); + /* Avoid an endless loop that could occur when using an older version + of localcharset.c. */ + if (code[0] == '\0') + goto invalid; + continue; + } + pool = stringpool; + ap = aliases_lookup(buf,bp-buf); + if (ap == NULL) { + pool = stringpool2; + ap = aliases2_lookup(buf); + if (ap == NULL) + goto invalid; + } + if (ap->encoding_index == ei_local_char) { + code = locale_charset(); + /* Avoid an endless loop that could occur when using an older version + of localcharset.c. */ + if (code[0] == '\0') + goto invalid; + continue; + } + if (ap->encoding_index == ei_local_wchar_t) { + /* On systems which define __STDC_ISO_10646__, wchar_t is Unicode. + This is also the case on native Woe32 systems. */ +#if __STDC_ISO_10646__ || ((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) + if (sizeof(wchar_t) == 4) { + index = ei_ucs4internal; + break; + } + if (sizeof(wchar_t) == 2) { + index = ei_ucs2internal; + break; + } + if (sizeof(wchar_t) == 1) { + index = ei_iso8859_1; + break; + } +#endif + } + index = ap->encoding_index; + break; + } + return all_canonical[index] + pool; + invalid: + return name; +} + +int _libiconv_version = _LIBICONV_VERSION; + +#if defined __FreeBSD__ && !defined __gnu_freebsd__ +/* GNU libiconv is the native FreeBSD iconv implementation since 2002. + It wants to define the symbols 'iconv_open', 'iconv', 'iconv_close'. */ +#define strong_alias(name, aliasname) _strong_alias(name, aliasname) +#define _strong_alias(name, aliasname) \ + extern __typeof (name) aliasname __attribute__ ((alias (#name))); +#undef iconv_open +#undef iconv +#undef iconv_close +strong_alias (libiconv_open, iconv_open) +strong_alias (libiconv, iconv) +strong_alias (libiconv_close, iconv_close) +#endif + +#endif diff --git a/graf2d/win32gdk/gdk/src/iconv/iconv.h b/graf2d/win32gdk/gdk/src/iconv/iconv.h new file mode 100644 index 00000000000..ef3e3e9c1e1 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iconv.h @@ -0,0 +1,242 @@ +/* Copyright (C) 1999-2003, 2005-2006, 2008-2009 Free Software Foundation, Inc. + This file is part of the GNU LIBICONV Library. + + The GNU LIBICONV Library is free software; you can redistribute it + and/or modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + The GNU LIBICONV Library is distributed in the hope that it will be + useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU LIBICONV Library; see the file COPYING.LIB. + If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* When installed, this file is called "iconv.h". */ + +#ifndef _LIBICONV_H +#define _LIBICONV_H + +#define _LIBICONV_VERSION 0x010D /* version number: (major<<8) + minor */ + +#if BUILDING_LIBICONV +#define LIBICONV_DLL_EXPORTED __declspec(dllexport) +#elif USING_STATIC_LIBICONV +#define LIBICONV_DLL_EXPORTED +#else +#define LIBICONV_DLL_EXPORTED __declspec(dllimport) +#endif +extern LIBICONV_DLL_EXPORTED int _libiconv_version; /* Likewise */ + +/* We would like to #include any system header file which could define + iconv_t, 1. in order to eliminate the risk that the user gets compilation + errors because some other system header file includes /usr/include/iconv.h + which defines iconv_t or declares iconv after this file, 2. when compiling + for LIBICONV_PLUG, we need the proper iconv_t type in order to produce + binary compatible code. + But gcc's #include_next is not portable. Thus, once libiconv's iconv.h + has been installed in /usr/local/include, there is no way any more to + include the original /usr/include/iconv.h. We simply have to get away + without it. + Ad 1. The risk that a system header file does + #include "iconv.h" or #include_next "iconv.h" + is small. They all do #include <iconv.h>. + Ad 2. The iconv_t type is a pointer type in all cases I have seen. (It + has to be a scalar type because (iconv_t)(-1) is a possible return value + from iconv_open().) */ + +/* Define iconv_t ourselves. */ +#undef iconv_t +#define iconv_t libiconv_t +typedef void* iconv_t; + +/* Get size_t declaration. + Get wchar_t declaration if it exists. */ +#include <stddef.h> + +/* Get errno declaration and values. */ +#include <errno.h> +/* Some systems, like SunOS 4, don't have EILSEQ. Some systems, like BSD/OS, + have EILSEQ in a different header. On these systems, define EILSEQ + ourselves. */ +#ifndef EILSEQ +#define EILSEQ @EILSEQ@ +#endif + + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Allocates descriptor for code conversion from encoding ‘fromcode’ to + encoding ‘tocode’. */ +#ifndef LIBICONV_PLUG +#define iconv_open libiconv_open +#endif +extern LIBICONV_DLL_EXPORTED iconv_t iconv_open (const char* tocode, const char* fromcode); + +/* Converts, using conversion descriptor ‘cd’, at most ‘*inbytesleft’ bytes + starting at ‘*inbuf’, writing at most ‘*outbytesleft’ bytes starting at + ‘*outbuf’. + Decrements ‘*inbytesleft’ and increments ‘*inbuf’ by the same amount. + Decrements ‘*outbytesleft’ and increments ‘*outbuf’ by the same amount. */ +#ifndef LIBICONV_PLUG +#define iconv libiconv +#endif +extern LIBICONV_DLL_EXPORTED size_t iconv (iconv_t cd, const char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft); + +/* Frees resources allocated for conversion descriptor ‘cd’. */ +#ifndef LIBICONV_PLUG +#define iconv_close libiconv_close +#endif +extern LIBICONV_DLL_EXPORTED int iconv_close (iconv_t cd); + + +#ifndef LIBICONV_PLUG + +/* Nonstandard extensions. */ + +#if USE_MBSTATE_T +#if BROKEN_WCHAR_H +/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before + <wchar.h>. + BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be + included before <wchar.h>. */ +#include <stddef.h> +#include <stdio.h> +#include <time.h> +#endif +#include <wchar.h> +#endif + +/* A type that holds all memory needed by a conversion descriptor. + A pointer to such an object can be used as an iconv_t. */ +typedef struct { + void* dummy1[28]; +#if USE_MBSTATE_T + mbstate_t dummy2; +#endif +} iconv_allocation_t; + +/* Allocates descriptor for code conversion from encoding ‘fromcode’ to + encoding ‘tocode’ into preallocated memory. Returns an error indicator + (0 or -1 with errno set). */ +#define iconv_open_into libiconv_open_into +extern LIBICONV_DLL_EXPORTED int iconv_open_into (const char* tocode, const char* fromcode, + iconv_allocation_t* resultp); + +/* Control of attributes. */ +#define iconvctl libiconvctl +extern LIBICONV_DLL_EXPORTED int iconvctl (iconv_t cd, int request, void* argument); + +/* Hook performed after every successful conversion of a Unicode character. */ +typedef void (*iconv_unicode_char_hook) (unsigned int uc, void* data); +/* Hook performed after every successful conversion of a wide character. */ +typedef void (*iconv_wide_char_hook) (wchar_t wc, void* data); +/* Set of hooks. */ +struct iconv_hooks { + iconv_unicode_char_hook uc_hook; + iconv_wide_char_hook wc_hook; + void* data; +}; + +/* Fallback function. Invoked when a small number of bytes could not be + converted to a Unicode character. This function should process all + bytes from inbuf and may produce replacement Unicode characters by calling + the write_replacement callback repeatedly. */ +typedef void (*iconv_unicode_mb_to_uc_fallback) + (const char* inbuf, size_t inbufsize, + void (*write_replacement) (const unsigned int *buf, size_t buflen, + void* callback_arg), + void* callback_arg, + void* data); +/* Fallback function. Invoked when a Unicode character could not be converted + to the target encoding. This function should process the character and + may produce replacement bytes (in the target encoding) by calling the + write_replacement callback repeatedly. */ +typedef void (*iconv_unicode_uc_to_mb_fallback) + (unsigned int code, + void (*write_replacement) (const char *buf, size_t buflen, + void* callback_arg), + void* callback_arg, + void* data); +#if HAVE_WCHAR_T +/* Fallback function. Invoked when a number of bytes could not be converted to + a wide character. This function should process all bytes from inbuf and may + produce replacement wide characters by calling the write_replacement + callback repeatedly. */ +typedef void (*iconv_wchar_mb_to_wc_fallback) + (const char* inbuf, size_t inbufsize, + void (*write_replacement) (const wchar_t *buf, size_t buflen, + void* callback_arg), + void* callback_arg, + void* data); +/* Fallback function. Invoked when a wide character could not be converted to + the target encoding. This function should process the character and may + produce replacement bytes (in the target encoding) by calling the + write_replacement callback repeatedly. */ +typedef void (*iconv_wchar_wc_to_mb_fallback) + (wchar_t code, + void (*write_replacement) (const char *buf, size_t buflen, + void* callback_arg), + void* callback_arg, + void* data); +#else +/* If the wchar_t type does not exist, these two fallback functions are never + invoked. Their argument list therefore does not matter. */ +typedef void (*iconv_wchar_mb_to_wc_fallback) (); +typedef void (*iconv_wchar_wc_to_mb_fallback) (); +#endif +/* Set of fallbacks. */ +struct iconv_fallbacks { + iconv_unicode_mb_to_uc_fallback mb_to_uc_fallback; + iconv_unicode_uc_to_mb_fallback uc_to_mb_fallback; + iconv_wchar_mb_to_wc_fallback mb_to_wc_fallback; + iconv_wchar_wc_to_mb_fallback wc_to_mb_fallback; + void* data; +}; + +/* Requests for iconvctl. */ +#define ICONV_TRIVIALP 0 /* int *argument */ +#define ICONV_GET_TRANSLITERATE 1 /* int *argument */ +#define ICONV_SET_TRANSLITERATE 2 /* const int *argument */ +#define ICONV_GET_DISCARD_ILSEQ 3 /* int *argument */ +#define ICONV_SET_DISCARD_ILSEQ 4 /* const int *argument */ +#define ICONV_SET_HOOKS 5 /* const struct iconv_hooks *argument */ +#define ICONV_SET_FALLBACKS 6 /* const struct iconv_fallbacks *argument */ + +/* Listing of locale independent encodings. */ +#define iconvlist libiconvlist +extern LIBICONV_DLL_EXPORTED void iconvlist (int (*do_one) (unsigned int namescount, + const char * const * names, + void* data), + void* data); + +/* Canonicalize an encoding name. + The result is either a canonical encoding name, or name itself. */ +extern LIBICONV_DLL_EXPORTED const char * iconv_canonicalize (const char * name); + +/* Support for relocatable packages. */ + +/* Sets the original and the current installation prefix of the package. + Relocation simply replaces a pathname starting with the original prefix + by the corresponding pathname with the current prefix instead. Both + prefixes should be directory names without trailing slash (i.e. use "" + instead of "/"). */ +extern LIBICONV_DLL_EXPORTED void libiconv_set_relocation_prefix (const char *orig_prefix, + const char *curr_prefix); + +#endif + + +#ifdef __cplusplus +} +#endif + + +#endif /* _LIBICONV_H */ diff --git a/graf2d/win32gdk/gdk/src/iconv/iconv_open1.h b/graf2d/win32gdk/gdk/src/iconv/iconv_open1.h new file mode 100644 index 00000000000..8a77014c3db --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iconv_open1.h @@ -0,0 +1,201 @@ +/* + * Copyright (C) 1999-2008 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* Part 1 of iconv_open. + Input: const char* tocode, const char* fromcode. + Output: + unsigned int from_index; + int from_wchar; + unsigned int to_index; + int to_wchar; + int transliterate; + int discard_ilseq; + Jumps to 'invalid' in case of errror. + */ +{ + char buf[MAX_WORD_LENGTH+10+1]; + const char* cp; + char* bp; + const struct alias * ap; + unsigned int count; + + transliterate = 0; + discard_ilseq = 0; + + /* Before calling aliases_lookup, convert the input string to upper case, + * and check whether it's entirely ASCII (we call gperf with option "-7" + * to achieve a smaller table) and non-empty. If it's not entirely ASCII, + * or if it's too long, it is not a valid encoding name. + */ + for (to_wchar = 0;;) { + /* Search tocode in the table. */ + for (cp = tocode, bp = buf, count = MAX_WORD_LENGTH+10+1; ; cp++, bp++) { + unsigned char c = * (unsigned char *) cp; + if (c >= 0x80) + goto invalid; + if (c >= 'a' && c <= 'z') + c -= 'a'-'A'; + *bp = c; + if (c == '\0') + break; + if (--count == 0) + goto invalid; + } + for (;;) { + if (bp-buf >= 10 && memcmp(bp-10,"//TRANSLIT",10)==0) { + bp -= 10; + *bp = '\0'; + transliterate = 1; + continue; + } + if (bp-buf >= 8 && memcmp(bp-8,"//IGNORE",8)==0) { + bp -= 8; + *bp = '\0'; + discard_ilseq = 1; + continue; + } + break; + } + if (buf[0] == '\0') { + tocode = locale_charset(); + /* Avoid an endless loop that could occur when using an older version + of localcharset.c. */ + if (tocode[0] == '\0') + goto invalid; + continue; + } + ap = aliases_lookup(buf,bp-buf); + if (ap == NULL) { + ap = aliases2_lookup(buf); + if (ap == NULL) + goto invalid; + } + if (ap->encoding_index == ei_local_char) { + tocode = locale_charset(); + /* Avoid an endless loop that could occur when using an older version + of localcharset.c. */ + if (tocode[0] == '\0') + goto invalid; + continue; + } + if (ap->encoding_index == ei_local_wchar_t) { + /* On systems which define __STDC_ISO_10646__, wchar_t is Unicode. + This is also the case on native Woe32 systems. */ +#if __STDC_ISO_10646__ || ((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) + if (sizeof(wchar_t) == 4) { + to_index = ei_ucs4internal; + break; + } + if (sizeof(wchar_t) == 2) { + to_index = ei_ucs2internal; + break; + } + if (sizeof(wchar_t) == 1) { + to_index = ei_iso8859_1; + break; + } +#endif +#if HAVE_MBRTOWC + to_wchar = 1; + tocode = locale_charset(); + continue; +#endif + goto invalid; + } + to_index = ap->encoding_index; + break; + } + for (from_wchar = 0;;) { + /* Search fromcode in the table. */ + for (cp = fromcode, bp = buf, count = MAX_WORD_LENGTH+10+1; ; cp++, bp++) { + unsigned char c = * (unsigned char *) cp; + if (c >= 0x80) + goto invalid; + if (c >= 'a' && c <= 'z') + c -= 'a'-'A'; + *bp = c; + if (c == '\0') + break; + if (--count == 0) + goto invalid; + } + for (;;) { + if (bp-buf >= 10 && memcmp(bp-10,"//TRANSLIT",10)==0) { + bp -= 10; + *bp = '\0'; + continue; + } + if (bp-buf >= 8 && memcmp(bp-8,"//IGNORE",8)==0) { + bp -= 8; + *bp = '\0'; + continue; + } + break; + } + if (buf[0] == '\0') { + fromcode = locale_charset(); + /* Avoid an endless loop that could occur when using an older version + of localcharset.c. */ + if (fromcode[0] == '\0') + goto invalid; + continue; + } + ap = aliases_lookup(buf,bp-buf); + if (ap == NULL) { + ap = aliases2_lookup(buf); + if (ap == NULL) + goto invalid; + } + if (ap->encoding_index == ei_local_char) { + fromcode = locale_charset(); + /* Avoid an endless loop that could occur when using an older version + of localcharset.c. */ + if (fromcode[0] == '\0') + goto invalid; + continue; + } + if (ap->encoding_index == ei_local_wchar_t) { + /* On systems which define __STDC_ISO_10646__, wchar_t is Unicode. + This is also the case on native Woe32 systems. */ +#if __STDC_ISO_10646__ || ((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) + if (sizeof(wchar_t) == 4) { + from_index = ei_ucs4internal; + break; + } + if (sizeof(wchar_t) == 2) { + from_index = ei_ucs2internal; + break; + } + if (sizeof(wchar_t) == 1) { + from_index = ei_iso8859_1; + break; + } +#endif +#if HAVE_WCRTOMB + from_wchar = 1; + fromcode = locale_charset(); + continue; +#endif + goto invalid; + } + from_index = ap->encoding_index; + break; + } +} diff --git a/graf2d/win32gdk/gdk/src/iconv/iconv_open2.h b/graf2d/win32gdk/gdk/src/iconv/iconv_open2.h new file mode 100644 index 00000000000..6d6296f05b3 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iconv_open2.h @@ -0,0 +1,89 @@ +/* + * Copyright (C) 1999-2009 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* Part 2 of iconv_open. + Input: + struct conv_struct * cd; + unsigned int from_index; + int from_wchar; + unsigned int to_index; + int to_wchar; + int transliterate; + int discard_ilseq; + Output: none. + Side effects: Fills cd. + */ + + cd->iindex = from_index; + cd->ifuncs = all_encodings[from_index].ifuncs; + cd->oindex = to_index; + cd->ofuncs = all_encodings[to_index].ofuncs; + cd->oflags = all_encodings[to_index].oflags; + /* Initialize the loop functions. */ +#if HAVE_MBRTOWC + if (to_wchar) { +#if HAVE_WCRTOMB + if (from_wchar) { + cd->lfuncs.loop_convert = wchar_id_loop_convert; + cd->lfuncs.loop_reset = wchar_id_loop_reset; + } else +#endif + { + cd->lfuncs.loop_convert = wchar_to_loop_convert; + cd->lfuncs.loop_reset = wchar_to_loop_reset; + } + } else +#endif + { +#if HAVE_WCRTOMB + if (from_wchar) { + cd->lfuncs.loop_convert = wchar_from_loop_convert; + cd->lfuncs.loop_reset = wchar_from_loop_reset; + } else +#endif + { + cd->lfuncs.loop_convert = unicode_loop_convert; + cd->lfuncs.loop_reset = unicode_loop_reset; + } + } + /* Initialize the states. */ + memset(&cd->istate,'\0',sizeof(state_t)); + memset(&cd->ostate,'\0',sizeof(state_t)); + /* Initialize the operation flags. */ + cd->transliterate = transliterate; + cd->discard_ilseq = discard_ilseq; + #ifndef LIBICONV_PLUG + cd->fallbacks.mb_to_uc_fallback = NULL; + cd->fallbacks.uc_to_mb_fallback = NULL; + cd->fallbacks.mb_to_wc_fallback = NULL; + cd->fallbacks.wc_to_mb_fallback = NULL; + cd->fallbacks.data = NULL; + cd->hooks.uc_hook = NULL; + cd->hooks.wc_hook = NULL; + cd->hooks.data = NULL; + #endif + /* Initialize additional fields. */ + if (from_wchar != to_wchar) { + struct wchar_conv_struct * wcd = (struct wchar_conv_struct *) cd; +#if HAVE_WCRTOMB || HAVE_MBRTOWC + memset(&wcd->state,'\0',sizeof(mbstate_t)); +#endif + } + /* Done. */ diff --git a/graf2d/win32gdk/gdk/src/iconv/iso2022_cn.h b/graf2d/win32gdk/gdk/src/iconv/iso2022_cn.h new file mode 100644 index 00000000000..d7e3e393a56 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iso2022_cn.h @@ -0,0 +1,324 @@ +/* + * Copyright (C) 1999-2001, 2008 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO-2022-CN + */ + +/* Specification: RFC 1922 */ + +#define ESC 0x1b +#define SO 0x0e +#define SI 0x0f + +/* + * The state is composed of one of the following values + */ +#define STATE_ASCII 0 +#define STATE_TWOBYTE 1 +/* + * and one of the following values, << 8 + */ +#define STATE2_NONE 0 +#define STATE2_DESIGNATED_GB2312 1 +#define STATE2_DESIGNATED_CNS11643_1 2 +/* + * and one of the following values, << 16 + */ +#define STATE3_NONE 0 +#define STATE3_DESIGNATED_CNS11643_2 1 + +#define SPLIT_STATE \ + unsigned int state1 = state & 0xff, state2 = (state >> 8) & 0xff, state3 = state >> 16 +#define COMBINE_STATE \ + state = (state3 << 16) | (state2 << 8) | state1 + +static int +iso2022_cn_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + state_t state = conv->istate; + SPLIT_STATE; + int count = 0; + unsigned char c; + for (;;) { + c = *s; + if (c == ESC) { + if (n < count+4) + goto none; + if (s[1] == '$') { + if (s[2] == ')') { + if (s[3] == 'A') { + state2 = STATE2_DESIGNATED_GB2312; + s += 4; count += 4; + if (n < count+1) + goto none; + continue; + } + if (s[3] == 'G') { + state2 = STATE2_DESIGNATED_CNS11643_1; + s += 4; count += 4; + if (n < count+1) + goto none; + continue; + } + } + if (s[2] == '*') { + if (s[3] == 'H') { + state3 = STATE3_DESIGNATED_CNS11643_2; + s += 4; count += 4; + if (n < count+1) + goto none; + continue; + } + } + } + if (s[1] == 'N') { + switch (state3) { + case STATE3_NONE: + goto ilseq; + case STATE3_DESIGNATED_CNS11643_2: + if (s[2] < 0x80 && s[3] < 0x80) { + int ret = cns11643_2_mbtowc(conv,pwc,s+2,2); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 2) abort(); + COMBINE_STATE; + conv->istate = state; + return count+4; + } else + goto ilseq; + default: abort(); + } + } + goto ilseq; + } + if (c == SO) { + if (state2 != STATE2_DESIGNATED_GB2312 && state2 != STATE2_DESIGNATED_CNS11643_1) + goto ilseq; + state1 = STATE_TWOBYTE; + s++; count++; + if (n < count+1) + goto none; + continue; + } + if (c == SI) { + state1 = STATE_ASCII; + s++; count++; + if (n < count+1) + goto none; + continue; + } + break; + } + switch (state1) { + case STATE_ASCII: + if (c < 0x80) { + int ret = ascii_mbtowc(conv,pwc,s,1); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 1) abort(); + if (*pwc == 0x000a || *pwc == 0x000d) { + state2 = STATE2_NONE; state3 = STATE3_NONE; + } + COMBINE_STATE; + conv->istate = state; + return count+1; + } else + goto ilseq; + case STATE_TWOBYTE: + if (n < count+2) + goto none; + if (s[0] < 0x80 && s[1] < 0x80) { + int ret; + switch (state2) { + case STATE2_NONE: + goto ilseq; + case STATE2_DESIGNATED_GB2312: + ret = gb2312_mbtowc(conv,pwc,s,2); break; + case STATE2_DESIGNATED_CNS11643_1: + ret = cns11643_1_mbtowc(conv,pwc,s,2); break; + default: abort(); + } + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 2) abort(); + COMBINE_STATE; + conv->istate = state; + return count+2; + } else + goto ilseq; + default: abort(); + } + +none: + COMBINE_STATE; + conv->istate = state; + return RET_TOOFEW(count); + +ilseq: + COMBINE_STATE; + conv->istate = state; + return RET_SHIFT_ILSEQ(count); +} + +static int +iso2022_cn_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + state_t state = conv->ostate; + SPLIT_STATE; + unsigned char buf[3]; + int ret; + + /* There is no need to handle Unicode 3.1 tag characters and to look for + "zh-CN" or "zh-TW" tags, because GB2312 and CNS11643 are disjoint. */ + + /* Try ASCII. */ + ret = ascii_wctomb(conv,buf,wc,1); + if (ret != RET_ILUNI) { + if (ret != 1) abort(); + if (buf[0] < 0x80) { + int count = (state1 == STATE_ASCII ? 1 : 2); + if (n < count) + return RET_TOOSMALL; + if (state1 != STATE_ASCII) { + r[0] = SI; + r += 1; + state1 = STATE_ASCII; + } + r[0] = buf[0]; + if (wc == 0x000a || wc == 0x000d) { + state2 = STATE2_NONE; state3 = STATE3_NONE; + } + COMBINE_STATE; + conv->ostate = state; + return count; + } + } + + /* Try GB 2312-1980. */ + ret = gb2312_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (buf[0] < 0x80 && buf[1] < 0x80) { + int count = (state2 == STATE2_DESIGNATED_GB2312 ? 0 : 4) + (state1 == STATE_TWOBYTE ? 0 : 1) + 2; + if (n < count) + return RET_TOOSMALL; + if (state2 != STATE2_DESIGNATED_GB2312) { + r[0] = ESC; + r[1] = '$'; + r[2] = ')'; + r[3] = 'A'; + r += 4; + state2 = STATE2_DESIGNATED_GB2312; + } + if (state1 != STATE_TWOBYTE) { + r[0] = SO; + r += 1; + state1 = STATE_TWOBYTE; + } + r[0] = buf[0]; + r[1] = buf[1]; + COMBINE_STATE; + conv->ostate = state; + return count; + } + } + + ret = cns11643_wctomb(conv,buf,wc,3); + if (ret != RET_ILUNI) { + if (ret != 3) abort(); + + /* Try CNS 11643-1992 Plane 1. */ + if (buf[0] == 1 && buf[1] < 0x80 && buf[2] < 0x80) { + int count = (state2 == STATE2_DESIGNATED_CNS11643_1 ? 0 : 4) + (state1 == STATE_TWOBYTE ? 0 : 1) + 2; + if (n < count) + return RET_TOOSMALL; + if (state2 != STATE2_DESIGNATED_CNS11643_1) { + r[0] = ESC; + r[1] = '$'; + r[2] = ')'; + r[3] = 'G'; + r += 4; + state2 = STATE2_DESIGNATED_CNS11643_1; + } + if (state1 != STATE_TWOBYTE) { + r[0] = SO; + r += 1; + state1 = STATE_TWOBYTE; + } + r[0] = buf[1]; + r[1] = buf[2]; + COMBINE_STATE; + conv->ostate = state; + return count; + } + + /* Try CNS 11643-1992 Plane 2. */ + if (buf[0] == 2 && buf[1] < 0x80 && buf[2] < 0x80) { + int count = (state3 == STATE3_DESIGNATED_CNS11643_2 ? 0 : 4) + 4; + if (n < count) + return RET_TOOSMALL; + if (state3 != STATE3_DESIGNATED_CNS11643_2) { + r[0] = ESC; + r[1] = '$'; + r[2] = '*'; + r[3] = 'H'; + r += 4; + state3 = STATE3_DESIGNATED_CNS11643_2; + } + r[0] = ESC; + r[1] = 'N'; + r[2] = buf[1]; + r[3] = buf[2]; + COMBINE_STATE; + conv->ostate = state; + return count; + } + } + + return RET_ILUNI; +} + +static int +iso2022_cn_reset (conv_t conv, unsigned char *r, int n) +{ + state_t state = conv->ostate; + SPLIT_STATE; + (void)state2; + (void)state3; + if (state1 != STATE_ASCII) { + if (n < 1) + return RET_TOOSMALL; + r[0] = SI; + /* conv->ostate = 0; will be done by the caller */ + return 1; + } else + return 0; +} + +#undef COMBINE_STATE +#undef SPLIT_STATE +#undef STATE3_DESIGNATED_CNS11643_2 +#undef STATE3_NONE +#undef STATE2_DESIGNATED_CNS11643_1 +#undef STATE2_DESIGNATED_GB2312 +#undef STATE2_NONE +#undef STATE_TWOBYTE +#undef STATE_ASCII diff --git a/graf2d/win32gdk/gdk/src/iconv/iso2022_cnext.h b/graf2d/win32gdk/gdk/src/iconv/iso2022_cnext.h new file mode 100644 index 00000000000..f8488709db0 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iso2022_cnext.h @@ -0,0 +1,590 @@ +/* + * Copyright (C) 1999-2001, 2008 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO-2022-CN-EXT + */ + +/* Specification: RFC 1922 */ + +#define ESC 0x1b +#define SO 0x0e +#define SI 0x0f + +/* + * The state is composed of one of the following values + */ +#define STATE_ASCII 0 +#define STATE_TWOBYTE 1 +/* + * and one of the following values, << 8 + */ +#define STATE2_NONE 0 +#define STATE2_DESIGNATED_GB2312 1 +#define STATE2_DESIGNATED_CNS11643_1 2 +#define STATE2_DESIGNATED_ISO_IR_165 3 +/* + * and one of the following values, << 16 + */ +#define STATE3_NONE 0 +#define STATE3_DESIGNATED_CNS11643_2 1 +/* + * and one of the following values, << 24 + */ +#define STATE4_NONE 0 +#define STATE4_DESIGNATED_CNS11643_3 1 +#define STATE4_DESIGNATED_CNS11643_4 2 +#define STATE4_DESIGNATED_CNS11643_5 3 +#define STATE4_DESIGNATED_CNS11643_6 4 +#define STATE4_DESIGNATED_CNS11643_7 5 + +#define SPLIT_STATE \ + unsigned int state1 = state & 0xff, state2 = (state >> 8) & 0xff, state3 = (state >> 16) & 0xff, state4 = state >> 24 +#define COMBINE_STATE \ + state = (state4 << 24) | (state3 << 16) | (state2 << 8) | state1 + +static int +iso2022_cn_ext_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + state_t state = conv->istate; + SPLIT_STATE; + int count = 0; + unsigned char c; + for (;;) { + c = *s; + if (c == ESC) { + if (n < count+4) + goto none; + if (s[1] == '$') { + if (s[2] == ')') { + if (s[3] == 'A') { + state2 = STATE2_DESIGNATED_GB2312; + s += 4; count += 4; + if (n < count+1) + goto none; + continue; + } + if (s[3] == 'G') { + state2 = STATE2_DESIGNATED_CNS11643_1; + s += 4; count += 4; + if (n < count+1) + goto none; + continue; + } + if (s[3] == 'E') { + state2 = STATE2_DESIGNATED_ISO_IR_165; + s += 4; count += 4; + if (n < count+1) + goto none; + continue; + } + } + if (s[2] == '*') { + if (s[3] == 'H') { + state3 = STATE3_DESIGNATED_CNS11643_2; + s += 4; count += 4; + if (n < count+1) + goto none; + continue; + } + } + if (s[2] == '+') { + if (s[3] == 'I') { + state4 = STATE4_DESIGNATED_CNS11643_3; + s += 4; count += 4; + if (n < count+1) + goto none; + continue; + } + if (s[3] == 'J') { + state4 = STATE4_DESIGNATED_CNS11643_4; + s += 4; count += 4; + if (n < count+1) + goto none; + continue; + } + if (s[3] == 'K') { + state4 = STATE4_DESIGNATED_CNS11643_5; + s += 4; count += 4; + if (n < count+1) + goto none; + continue; + } + if (s[3] == 'L') { + state4 = STATE4_DESIGNATED_CNS11643_6; + s += 4; count += 4; + if (n < count+1) + goto none; + continue; + } + if (s[3] == 'M') { + state4 = STATE4_DESIGNATED_CNS11643_7; + s += 4; count += 4; + if (n < count+1) + goto none; + continue; + } + } + } + if (s[1] == 'N') { + switch (state3) { + case STATE3_NONE: + goto ilseq; + case STATE3_DESIGNATED_CNS11643_2: + if (s[2] < 0x80 && s[3] < 0x80) { + int ret = cns11643_2_mbtowc(conv,pwc,s+2,2); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 2) abort(); + COMBINE_STATE; + conv->istate = state; + return count+4; + } else + goto ilseq; + default: abort(); + } + } + if (s[1] == 'O') { + switch (state4) { + case STATE4_NONE: + goto ilseq; + case STATE4_DESIGNATED_CNS11643_3: + if (s[2] < 0x80 && s[3] < 0x80) { + int ret = cns11643_3_mbtowc(conv,pwc,s+2,2); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 2) abort(); + COMBINE_STATE; + conv->istate = state; + return count+4; + } else + goto ilseq; + case STATE4_DESIGNATED_CNS11643_4: + if (s[2] < 0x80 && s[3] < 0x80) { + int ret = cns11643_4_mbtowc(conv,pwc,s+2,2); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 2) abort(); + COMBINE_STATE; + conv->istate = state; + return count+4; + } else + goto ilseq; + case STATE4_DESIGNATED_CNS11643_5: + if (s[2] < 0x80 && s[3] < 0x80) { + int ret = cns11643_5_mbtowc(conv,pwc,s+2,2); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 2) abort(); + COMBINE_STATE; + conv->istate = state; + return count+4; + } else + goto ilseq; + case STATE4_DESIGNATED_CNS11643_6: + if (s[2] < 0x80 && s[3] < 0x80) { + int ret = cns11643_6_mbtowc(conv,pwc,s+2,2); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 2) abort(); + COMBINE_STATE; + conv->istate = state; + return count+4; + } else + goto ilseq; + case STATE4_DESIGNATED_CNS11643_7: + if (s[2] < 0x80 && s[3] < 0x80) { + int ret = cns11643_7_mbtowc(conv,pwc,s+2,2); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 2) abort(); + COMBINE_STATE; + conv->istate = state; + return count+4; + } else + goto ilseq; + default: abort(); + } + } + goto ilseq; + } + if (c == SO) { + if (state2 != STATE2_DESIGNATED_GB2312 && state2 != STATE2_DESIGNATED_CNS11643_1 && state2 != STATE2_DESIGNATED_ISO_IR_165) + goto ilseq; + state1 = STATE_TWOBYTE; + s++; count++; + if (n < count+1) + goto none; + continue; + } + if (c == SI) { + state1 = STATE_ASCII; + s++; count++; + if (n < count+1) + goto none; + continue; + } + break; + } + switch (state1) { + case STATE_ASCII: + if (c < 0x80) { + int ret = ascii_mbtowc(conv,pwc,s,1); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 1) abort(); + if (*pwc == 0x000a || *pwc == 0x000d) { + state2 = STATE2_NONE; state3 = STATE3_NONE; state4 = STATE3_NONE; + } + COMBINE_STATE; + conv->istate = state; + return count+1; + } else + goto ilseq; + case STATE_TWOBYTE: + if (n < count+2) + goto none; + if (s[0] < 0x80 && s[1] < 0x80) { + int ret; + switch (state2) { + case STATE2_NONE: + goto ilseq; + case STATE2_DESIGNATED_GB2312: + ret = gb2312_mbtowc(conv,pwc,s,2); break; + case STATE2_DESIGNATED_CNS11643_1: + ret = cns11643_1_mbtowc(conv,pwc,s,2); break; + case STATE2_DESIGNATED_ISO_IR_165: + ret = isoir165_mbtowc(conv,pwc,s,2); break; + default: abort(); + } + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 2) abort(); + COMBINE_STATE; + conv->istate = state; + return count+2; + } else + goto ilseq; + default: abort(); + } + +none: + COMBINE_STATE; + conv->istate = state; + return RET_TOOFEW(count); + +ilseq: + COMBINE_STATE; + conv->istate = state; + return RET_SHIFT_ILSEQ(count); +} + +static int +iso2022_cn_ext_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + state_t state = conv->ostate; + SPLIT_STATE; + unsigned char buf[3]; + int ret; + + /* There is no need to handle Unicode 3.1 tag characters and to look for + "zh-CN" or "zh-TW" tags, because GB2312 and CNS11643 are disjoint. */ + + /* Try ASCII. */ + ret = ascii_wctomb(conv,buf,wc,1); + if (ret != RET_ILUNI) { + if (ret != 1) abort(); + if (buf[0] < 0x80) { + int count = (state1 == STATE_ASCII ? 1 : 2); + if (n < count) + return RET_TOOSMALL; + if (state1 != STATE_ASCII) { + r[0] = SI; + r += 1; + state1 = STATE_ASCII; + } + r[0] = buf[0]; + if (wc == 0x000a || wc == 0x000d) { + state2 = STATE2_NONE; state3 = STATE3_NONE; state4 = STATE3_NONE; + } + COMBINE_STATE; + conv->ostate = state; + return count; + } + } + + /* Try GB 2312-1980. */ + ret = gb2312_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (buf[0] < 0x80 && buf[1] < 0x80) { + int count = (state2 == STATE2_DESIGNATED_GB2312 ? 0 : 4) + (state1 == STATE_TWOBYTE ? 0 : 1) + 2; + if (n < count) + return RET_TOOSMALL; + if (state2 != STATE2_DESIGNATED_GB2312) { + r[0] = ESC; + r[1] = '$'; + r[2] = ')'; + r[3] = 'A'; + r += 4; + state2 = STATE2_DESIGNATED_GB2312; + } + if (state1 != STATE_TWOBYTE) { + r[0] = SO; + r += 1; + state1 = STATE_TWOBYTE; + } + r[0] = buf[0]; + r[1] = buf[1]; + COMBINE_STATE; + conv->ostate = state; + return count; + } + } + + ret = cns11643_wctomb(conv,buf,wc,3); + if (ret != RET_ILUNI) { + if (ret != 3) abort(); + + /* Try CNS 11643-1992 Plane 1. */ + if (buf[0] == 1 && buf[1] < 0x80 && buf[2] < 0x80) { + int count = (state2 == STATE2_DESIGNATED_CNS11643_1 ? 0 : 4) + (state1 == STATE_TWOBYTE ? 0 : 1) + 2; + if (n < count) + return RET_TOOSMALL; + if (state2 != STATE2_DESIGNATED_CNS11643_1) { + r[0] = ESC; + r[1] = '$'; + r[2] = ')'; + r[3] = 'G'; + r += 4; + state2 = STATE2_DESIGNATED_CNS11643_1; + } + if (state1 != STATE_TWOBYTE) { + r[0] = SO; + r += 1; + state1 = STATE_TWOBYTE; + } + r[0] = buf[1]; + r[1] = buf[2]; + COMBINE_STATE; + conv->ostate = state; + return count; + } + + /* Try CNS 11643-1992 Plane 2. */ + if (buf[0] == 2 && buf[1] < 0x80 && buf[2] < 0x80) { + int count = (state3 == STATE3_DESIGNATED_CNS11643_2 ? 0 : 4) + 4; + if (n < count) + return RET_TOOSMALL; + if (state3 != STATE3_DESIGNATED_CNS11643_2) { + r[0] = ESC; + r[1] = '$'; + r[2] = '*'; + r[3] = 'H'; + r += 4; + state3 = STATE3_DESIGNATED_CNS11643_2; + } + r[0] = ESC; + r[1] = 'N'; + r[2] = buf[1]; + r[3] = buf[2]; + COMBINE_STATE; + conv->ostate = state; + return count; + } + + /* Try CNS 11643-1992 Plane 3. */ + if (buf[0] == 3 && buf[1] < 0x80 && buf[2] < 0x80) { + int count = (state4 == STATE4_DESIGNATED_CNS11643_3 ? 0 : 4) + 4; + if (n < count) + return RET_TOOSMALL; + if (state4 != STATE4_DESIGNATED_CNS11643_3) { + r[0] = ESC; + r[1] = '$'; + r[2] = '+'; + r[3] = 'I'; + r += 4; + state4 = STATE4_DESIGNATED_CNS11643_3; + } + r[0] = ESC; + r[1] = 'O'; + r[2] = buf[1]; + r[3] = buf[2]; + COMBINE_STATE; + conv->ostate = state; + return count; + } + + /* Try CNS 11643-1992 Plane 4. */ + if (buf[0] == 4 && buf[1] < 0x80 && buf[2] < 0x80) { + int count = (state4 == STATE4_DESIGNATED_CNS11643_4 ? 0 : 4) + 4; + if (n < count) + return RET_TOOSMALL; + if (state4 != STATE4_DESIGNATED_CNS11643_4) { + r[0] = ESC; + r[1] = '$'; + r[2] = '+'; + r[3] = 'J'; + r += 4; + state4 = STATE4_DESIGNATED_CNS11643_4; + } + r[0] = ESC; + r[1] = 'O'; + r[2] = buf[1]; + r[3] = buf[2]; + COMBINE_STATE; + conv->ostate = state; + return count; + } + + /* Try CNS 11643-1992 Plane 5. */ + if (buf[0] == 5 && buf[1] < 0x80 && buf[2] < 0x80) { + int count = (state4 == STATE4_DESIGNATED_CNS11643_5 ? 0 : 4) + 4; + if (n < count) + return RET_TOOSMALL; + if (state4 != STATE4_DESIGNATED_CNS11643_5) { + r[0] = ESC; + r[1] = '$'; + r[2] = '+'; + r[3] = 'K'; + r += 4; + state4 = STATE4_DESIGNATED_CNS11643_5; + } + r[0] = ESC; + r[1] = 'O'; + r[2] = buf[1]; + r[3] = buf[2]; + COMBINE_STATE; + conv->ostate = state; + return count; + } + + /* Try CNS 11643-1992 Plane 6. */ + if (buf[0] == 6 && buf[1] < 0x80 && buf[2] < 0x80) { + int count = (state4 == STATE4_DESIGNATED_CNS11643_6 ? 0 : 4) + 4; + if (n < count) + return RET_TOOSMALL; + if (state4 != STATE4_DESIGNATED_CNS11643_6) { + r[0] = ESC; + r[1] = '$'; + r[2] = '+'; + r[3] = 'L'; + r += 4; + state4 = STATE4_DESIGNATED_CNS11643_6; + } + r[0] = ESC; + r[1] = 'O'; + r[2] = buf[1]; + r[3] = buf[2]; + COMBINE_STATE; + conv->ostate = state; + return count; + } + + /* Try CNS 11643-1992 Plane 7. */ + if (buf[0] == 7 && buf[1] < 0x80 && buf[2] < 0x80) { + int count = (state4 == STATE4_DESIGNATED_CNS11643_7 ? 0 : 4) + 4; + if (n < count) + return RET_TOOSMALL; + if (state4 != STATE4_DESIGNATED_CNS11643_7) { + r[0] = ESC; + r[1] = '$'; + r[2] = '+'; + r[3] = 'M'; + r += 4; + state4 = STATE4_DESIGNATED_CNS11643_7; + } + r[0] = ESC; + r[1] = 'O'; + r[2] = buf[1]; + r[3] = buf[2]; + COMBINE_STATE; + conv->ostate = state; + return count; + } + + } + + /* Try ISO-IR-165. */ + ret = isoir165_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (buf[0] < 0x80 && buf[1] < 0x80) { + int count = (state2 == STATE2_DESIGNATED_ISO_IR_165 ? 0 : 4) + (state1 == STATE_TWOBYTE ? 0 : 1) + 2; + if (n < count) + return RET_TOOSMALL; + if (state2 != STATE2_DESIGNATED_ISO_IR_165) { + r[0] = ESC; + r[1] = '$'; + r[2] = ')'; + r[3] = 'E'; + r += 4; + state2 = STATE2_DESIGNATED_ISO_IR_165; + } + if (state1 != STATE_TWOBYTE) { + r[0] = SO; + r += 1; + state1 = STATE_TWOBYTE; + } + r[0] = buf[0]; + r[1] = buf[1]; + COMBINE_STATE; + conv->ostate = state; + return count; + } + } + + return RET_ILUNI; +} + +static int +iso2022_cn_ext_reset (conv_t conv, unsigned char *r, int n) +{ + state_t state = conv->ostate; + SPLIT_STATE; + (void)state2; + (void)state3; + (void)state4; + if (state1 != STATE_ASCII) { + if (n < 1) + return RET_TOOSMALL; + r[0] = SI; + /* conv->ostate = 0; will be done by the caller */ + return 1; + } else + return 0; +} + +#undef COMBINE_STATE +#undef SPLIT_STATE +#undef STATE4_DESIGNATED_CNS11643_7 +#undef STATE4_DESIGNATED_CNS11643_6 +#undef STATE4_DESIGNATED_CNS11643_5 +#undef STATE4_DESIGNATED_CNS11643_4 +#undef STATE4_DESIGNATED_CNS11643_3 +#undef STATE4_NONE +#undef STATE3_DESIGNATED_CNS11643_2 +#undef STATE3_NONE +#undef STATE2_DESIGNATED_ISO_IR_165 +#undef STATE2_DESIGNATED_CNS11643_1 +#undef STATE2_DESIGNATED_GB2312 +#undef STATE2_NONE +#undef STATE_TWOBYTE +#undef STATE_ASCII diff --git a/graf2d/win32gdk/gdk/src/iconv/iso2022_jp.h b/graf2d/win32gdk/gdk/src/iconv/iso2022_jp.h new file mode 100644 index 00000000000..1c8abec1bb3 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iso2022_jp.h @@ -0,0 +1,216 @@ +/* + * Copyright (C) 1999-2001, 2008 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO-2022-JP + */ + +/* Specification: RFC 1468 */ + +#define ESC 0x1b + +/* + * The state can be one of the following values. + */ +#define STATE_ASCII 0 +#define STATE_JISX0201ROMAN 1 +#define STATE_JISX0208 2 + +static int +iso2022_jp_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + state_t state = conv->istate; + int count = 0; + unsigned char c; + for (;;) { + c = *s; + if (c == ESC) { + if (n < count+3) + goto none; + if (s[1] == '(') { + if (s[2] == 'B') { + state = STATE_ASCII; + s += 3; count += 3; + if (n < count+1) + goto none; + continue; + } + if (s[2] == 'J') { + state = STATE_JISX0201ROMAN; + s += 3; count += 3; + if (n < count+1) + goto none; + continue; + } + goto ilseq; + } + if (s[1] == '$') { + if (s[2] == '@' || s[2] == 'B') { + /* We don't distinguish JIS X 0208-1978 and JIS X 0208-1983. */ + state = STATE_JISX0208; + s += 3; count += 3; + if (n < count+1) + goto none; + continue; + } + goto ilseq; + } + goto ilseq; + } + break; + } + switch (state) { + case STATE_ASCII: + if (c < 0x80) { + int ret = ascii_mbtowc(conv,pwc,s,1); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 1) abort(); + conv->istate = state; + return count+1; + } else + goto ilseq; + case STATE_JISX0201ROMAN: + if (c < 0x80) { + int ret = jisx0201_mbtowc(conv,pwc,s,1); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 1) abort(); + conv->istate = state; + return count+1; + } else + goto ilseq; + case STATE_JISX0208: + if (n < count+2) + goto none; + if (s[0] < 0x80 && s[1] < 0x80) { + int ret = jisx0208_mbtowc(conv,pwc,s,2); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 2) abort(); + conv->istate = state; + return count+2; + } else + goto ilseq; + default: abort(); + } + +none: + conv->istate = state; + return RET_TOOFEW(count); + +ilseq: + conv->istate = state; + return RET_SHIFT_ILSEQ(count); +} + +static int +iso2022_jp_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + state_t state = conv->ostate; + unsigned char buf[2]; + int ret; + + /* Try ASCII. */ + ret = ascii_wctomb(conv,buf,wc,1); + if (ret != RET_ILUNI) { + if (ret != 1) abort(); + if (buf[0] < 0x80) { + int count = (state == STATE_ASCII ? 1 : 4); + if (n < count) + return RET_TOOSMALL; + if (state != STATE_ASCII) { + r[0] = ESC; + r[1] = '('; + r[2] = 'B'; + r += 3; + state = STATE_ASCII; + } + r[0] = buf[0]; + conv->ostate = state; + return count; + } + } + + /* Try JIS X 0201-1976 Roman. */ + ret = jisx0201_wctomb(conv,buf,wc,1); + if (ret != RET_ILUNI) { + if (ret != 1) abort(); + if (buf[0] < 0x80) { + int count = (state == STATE_JISX0201ROMAN ? 1 : 4); + if (n < count) + return RET_TOOSMALL; + if (state != STATE_JISX0201ROMAN) { + r[0] = ESC; + r[1] = '('; + r[2] = 'J'; + r += 3; + state = STATE_JISX0201ROMAN; + } + r[0] = buf[0]; + conv->ostate = state; + return count; + } + } + + /* Try JIS X 0208-1990 in place of JIS X 0208-1978 and JIS X 0208-1983. */ + ret = jisx0208_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (buf[0] < 0x80 && buf[1] < 0x80) { + int count = (state == STATE_JISX0208 ? 2 : 5); + if (n < count) + return RET_TOOSMALL; + if (state != STATE_JISX0208) { + r[0] = ESC; + r[1] = '$'; + r[2] = 'B'; + r += 3; + state = STATE_JISX0208; + } + r[0] = buf[0]; + r[1] = buf[1]; + conv->ostate = state; + return count; + } + } + + return RET_ILUNI; +} + +static int +iso2022_jp_reset (conv_t conv, unsigned char *r, int n) +{ + state_t state = conv->ostate; + if (state != STATE_ASCII) { + if (n < 3) + return RET_TOOSMALL; + r[0] = ESC; + r[1] = '('; + r[2] = 'B'; + /* conv->ostate = 0; will be done by the caller */ + return 3; + } else + return 0; +} + +#undef STATE_JISX0208 +#undef STATE_JISX0201ROMAN +#undef STATE_ASCII diff --git a/graf2d/win32gdk/gdk/src/iconv/iso2022_jp1.h b/graf2d/win32gdk/gdk/src/iconv/iso2022_jp1.h new file mode 100644 index 00000000000..c3094740f9a --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iso2022_jp1.h @@ -0,0 +1,264 @@ +/* + * Copyright (C) 1999-2001, 2008 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO-2022-JP-1 + */ + +/* Specification: RFC 2237 */ + +#define ESC 0x1b + +/* + * The state can be one of the following values. + */ +#define STATE_ASCII 0 +#define STATE_JISX0201ROMAN 1 +#define STATE_JISX0208 2 +#define STATE_JISX0212 3 + +static int +iso2022_jp1_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + state_t state = conv->istate; + int count = 0; + unsigned char c; + for (;;) { + c = *s; + if (c == ESC) { + if (n < count+3) + goto none; + if (s[1] == '(') { + if (s[2] == 'B') { + state = STATE_ASCII; + s += 3; count += 3; + if (n < count+1) + goto none; + continue; + } + if (s[2] == 'J') { + state = STATE_JISX0201ROMAN; + s += 3; count += 3; + if (n < count+1) + goto none; + continue; + } + goto ilseq; + } + if (s[1] == '$') { + if (s[2] == '@' || s[2] == 'B') { + /* We don't distinguish JIS X 0208-1978 and JIS X 0208-1983. */ + state = STATE_JISX0208; + s += 3; count += 3; + if (n < count+1) + goto none; + continue; + } + if (s[2] == '(') { + if (n < count+4) + goto none; + if (s[3] == 'D') { + state = STATE_JISX0212; + s += 4; count += 4; + if (n < count+1) + goto none; + continue; + } + } + goto ilseq; + } + goto ilseq; + } + break; + } + switch (state) { + case STATE_ASCII: + if (c < 0x80) { + int ret = ascii_mbtowc(conv,pwc,s,1); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 1) abort(); + conv->istate = state; + return count+1; + } else + goto ilseq; + case STATE_JISX0201ROMAN: + if (c < 0x80) { + int ret = jisx0201_mbtowc(conv,pwc,s,1); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 1) abort(); + conv->istate = state; + return count+1; + } else + goto ilseq; + case STATE_JISX0208: + if (n < count+2) + goto none; + if (s[0] < 0x80 && s[1] < 0x80) { + int ret = jisx0208_mbtowc(conv,pwc,s,2); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 2) abort(); + conv->istate = state; + return count+2; + } else + goto ilseq; + case STATE_JISX0212: + if (n < count+2) + goto none; + if (s[0] < 0x80 && s[1] < 0x80) { + int ret = jisx0212_mbtowc(conv,pwc,s,2); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 2) abort(); + conv->istate = state; + return count+2; + } else + goto ilseq; + default: abort(); + } + +none: + conv->istate = state; + return RET_TOOFEW(count); + +ilseq: + conv->istate = state; + return RET_SHIFT_ILSEQ(count); +} + +static int +iso2022_jp1_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + state_t state = conv->ostate; + unsigned char buf[2]; + int ret; + + /* Try ASCII. */ + ret = ascii_wctomb(conv,buf,wc,1); + if (ret != RET_ILUNI) { + if (ret != 1) abort(); + if (buf[0] < 0x80) { + int count = (state == STATE_ASCII ? 1 : 4); + if (n < count) + return RET_TOOSMALL; + if (state != STATE_ASCII) { + r[0] = ESC; + r[1] = '('; + r[2] = 'B'; + r += 3; + state = STATE_ASCII; + } + r[0] = buf[0]; + conv->ostate = state; + return count; + } + } + + /* Try JIS X 0201-1976 Roman. */ + ret = jisx0201_wctomb(conv,buf,wc,1); + if (ret != RET_ILUNI) { + if (ret != 1) abort(); + if (buf[0] < 0x80) { + int count = (state == STATE_JISX0201ROMAN ? 1 : 4); + if (n < count) + return RET_TOOSMALL; + if (state != STATE_JISX0201ROMAN) { + r[0] = ESC; + r[1] = '('; + r[2] = 'J'; + r += 3; + state = STATE_JISX0201ROMAN; + } + r[0] = buf[0]; + conv->ostate = state; + return count; + } + } + + /* Try JIS X 0208-1990 in place of JIS X 0208-1978 and JIS X 0208-1983. */ + ret = jisx0208_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (buf[0] < 0x80 && buf[1] < 0x80) { + int count = (state == STATE_JISX0208 ? 2 : 5); + if (n < count) + return RET_TOOSMALL; + if (state != STATE_JISX0208) { + r[0] = ESC; + r[1] = '$'; + r[2] = 'B'; + r += 3; + state = STATE_JISX0208; + } + r[0] = buf[0]; + r[1] = buf[1]; + conv->ostate = state; + return count; + } + } + + /* Try JIS X 0212-1990. */ + ret = jisx0212_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (buf[0] < 0x80 && buf[1] < 0x80) { + int count = (state == STATE_JISX0212 ? 2 : 6); + if (n < count) + return RET_TOOSMALL; + if (state != STATE_JISX0212) { + r[0] = ESC; + r[1] = '$'; + r[2] = '('; + r[3] = 'D'; + r += 4; + state = STATE_JISX0212; + } + r[0] = buf[0]; + r[1] = buf[1]; + conv->ostate = state; + return count; + } + } + + return RET_ILUNI; +} + +static int +iso2022_jp1_reset (conv_t conv, unsigned char *r, int n) +{ + state_t state = conv->ostate; + if (state != STATE_ASCII) { + if (n < 3) + return RET_TOOSMALL; + r[0] = ESC; + r[1] = '('; + r[2] = 'B'; + /* conv->ostate = 0; will be done by the caller */ + return 3; + } else + return 0; +} + +#undef STATE_JISX0212 +#undef STATE_JISX0208 +#undef STATE_JISX0201ROMAN +#undef STATE_ASCII diff --git a/graf2d/win32gdk/gdk/src/iconv/iso2022_jp2.h b/graf2d/win32gdk/gdk/src/iconv/iso2022_jp2.h new file mode 100644 index 00000000000..5e3ca41555a --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iso2022_jp2.h @@ -0,0 +1,693 @@ +/* + * Copyright (C) 1999-2001, 2008 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO-2022-JP-2 + */ + +/* Specification: RFC 1554 */ +/* ESC '(' 'I' for JISX0201 Katakana is an extension not found in RFC 1554 or + CJK.INF, but implemented in glibc-2.1 and qt-2.0. */ + +#define ESC 0x1b + +/* + * The state is composed of one of the following values + */ +#define STATE_ASCII 0 +#define STATE_JISX0201ROMAN 1 +#define STATE_JISX0201KATAKANA 2 +#define STATE_JISX0208 3 +#define STATE_JISX0212 4 +#define STATE_GB2312 5 +#define STATE_KSC5601 6 +/* + * and one of the following values, << 8 + */ +#define STATE_G2_NONE 0 +#define STATE_G2_ISO8859_1 1 +#define STATE_G2_ISO8859_7 2 + +#define SPLIT_STATE \ + unsigned int state1 = state & 0xff, state2 = state >> 8 +#define COMBINE_STATE \ + state = (state2 << 8) | state1 + +static int +iso2022_jp2_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + state_t state = conv->istate; + SPLIT_STATE; + int count = 0; + unsigned char c; + for (;;) { + c = *s; + if (c == ESC) { + if (n < count+3) + goto none; + if (s[1] == '(') { + if (s[2] == 'B') { + state1 = STATE_ASCII; + s += 3; count += 3; + if (n < count+1) + goto none; + continue; + } + if (s[2] == 'J') { + state1 = STATE_JISX0201ROMAN; + s += 3; count += 3; + if (n < count+1) + goto none; + continue; + } + if (s[2] == 'I') { + state1 = STATE_JISX0201KATAKANA; + s += 3; count += 3; + if (n < count+1) + goto none; + continue; + } + goto ilseq; + } + if (s[1] == '$') { + if (s[2] == '@' || s[2] == 'B') { + /* We don't distinguish JIS X 0208-1978 and JIS X 0208-1983. */ + state1 = STATE_JISX0208; + s += 3; count += 3; + if (n < count+1) + goto none; + continue; + } + if (s[2] == 'A') { + state1 = STATE_GB2312; + s += 3; count += 3; + if (n < count+1) + goto none; + continue; + } + if (s[2] == '(') { + if (n < count+4) + goto none; + if (s[3] == 'D') { + state1 = STATE_JISX0212; + s += 4; count += 4; + if (n < count+1) + goto none; + continue; + } + if (s[3] == 'C') { + state1 = STATE_KSC5601; + s += 4; count += 4; + if (n < count+1) + goto none; + continue; + } + goto ilseq; + } + goto ilseq; + } + if (s[1] == '.') { + if (n < count+3) + goto none; + if (s[2] == 'A') { + state2 = STATE_G2_ISO8859_1; + s += 3; count += 3; + if (n < count+1) + goto none; + continue; + } + if (s[2] == 'F') { + state2 = STATE_G2_ISO8859_7; + s += 3; count += 3; + if (n < count+1) + goto none; + continue; + } + goto ilseq; + } + if (s[1] == 'N') { + switch (state2) { + case STATE_G2_NONE: + goto ilseq; + case STATE_G2_ISO8859_1: + if (s[2] < 0x80) { + unsigned char buf = s[2]+0x80; + int ret = iso8859_1_mbtowc(conv,pwc,&buf,1); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 1) abort(); + COMBINE_STATE; + conv->istate = state; + return count+3; + } else + goto ilseq; + case STATE_G2_ISO8859_7: + if (s[2] < 0x80) { + unsigned char buf = s[2]+0x80; + int ret = iso8859_7_mbtowc(conv,pwc,&buf,1); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 1) abort(); + COMBINE_STATE; + conv->istate = state; + return count+3; + } else + goto ilseq; + default: abort(); + } + } + goto ilseq; + } + break; + } + switch (state1) { + case STATE_ASCII: + if (c < 0x80) { + int ret = ascii_mbtowc(conv,pwc,s,1); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 1) abort(); + if (*pwc == 0x000a || *pwc == 0x000d) + state2 = STATE_G2_NONE; + COMBINE_STATE; + conv->istate = state; + return count+1; + } else + goto ilseq; + case STATE_JISX0201ROMAN: + if (c < 0x80) { + int ret = jisx0201_mbtowc(conv,pwc,s,1); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 1) abort(); + if (*pwc == 0x000a || *pwc == 0x000d) + state2 = STATE_G2_NONE; + COMBINE_STATE; + conv->istate = state; + return count+1; + } else + goto ilseq; + case STATE_JISX0201KATAKANA: + if (c < 0x80) { + unsigned char buf = c+0x80; + int ret = jisx0201_mbtowc(conv,pwc,&buf,1); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 1) abort(); + COMBINE_STATE; + conv->istate = state; + return count+1; + } else + goto ilseq; + case STATE_JISX0208: + if (n < count+2) + goto none; + if (s[0] < 0x80 && s[1] < 0x80) { + int ret = jisx0208_mbtowc(conv,pwc,s,2); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 2) abort(); + COMBINE_STATE; + conv->istate = state; + return count+2; + } else + goto ilseq; + case STATE_JISX0212: + if (n < count+2) + goto none; + if (s[0] < 0x80 && s[1] < 0x80) { + int ret = jisx0212_mbtowc(conv,pwc,s,2); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 2) abort(); + COMBINE_STATE; + conv->istate = state; + return count+2; + } else + goto ilseq; + case STATE_GB2312: + if (n < count+2) + goto none; + if (s[0] < 0x80 && s[1] < 0x80) { + int ret = gb2312_mbtowc(conv,pwc,s,2); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 2) abort(); + COMBINE_STATE; + conv->istate = state; + return count+2; + } else + goto ilseq; + case STATE_KSC5601: + if (n < count+2) + goto none; + if (s[0] < 0x80 && s[1] < 0x80) { + int ret = ksc5601_mbtowc(conv,pwc,s,2); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 2) abort(); + COMBINE_STATE; + conv->istate = state; + return count+2; + } else + goto ilseq; + default: abort(); + } + +none: + COMBINE_STATE; + conv->istate = state; + return RET_TOOFEW(count); + +ilseq: + COMBINE_STATE; + conv->istate = state; + return RET_SHIFT_ILSEQ(count); +} + +#undef COMBINE_STATE +#undef SPLIT_STATE + +/* + * The state can also contain one of the following values, << 16. + * Values >= STATE_TAG_LANGUAGE are temporary tag parsing states. + */ +#define STATE_TAG_NONE 0 +#define STATE_TAG_LANGUAGE 4 +#define STATE_TAG_LANGUAGE_j 5 +#define STATE_TAG_LANGUAGE_ja 1 +#define STATE_TAG_LANGUAGE_k 6 +#define STATE_TAG_LANGUAGE_ko 2 +#define STATE_TAG_LANGUAGE_z 7 +#define STATE_TAG_LANGUAGE_zh 3 + +#define SPLIT_STATE \ + unsigned int state1 = state & 0xff, state2 = (state >> 8) & 0xff, state3 = state >> 16 +#define COMBINE_STATE \ + state = (state3 << 16) | (state2 << 8) | state1 + +static int +iso2022_jp2_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + state_t state = conv->ostate; + SPLIT_STATE; + unsigned char buf[2]; + int ret; + /* This defines the conversion preferences depending on the current + langauge tag. */ + enum conversion { none = 0, european, japanese, chinese, korean, other }; + static const unsigned int conversion_lists[STATE_TAG_LANGUAGE] = { + /* STATE_TAG_NONE */ + japanese + (european << 3) + (chinese << 6) + (korean << 9) + (other << 12), + /* STATE_TAG_LANGUAGE_ja */ + japanese + (european << 3) + (chinese << 6) + (korean << 9) + (other << 12), + /* STATE_TAG_LANGUAGE_ko */ + korean + (european << 3) + (japanese << 6) + (chinese << 9) + (other << 12), + /* STATE_TAG_LANGUAGE_zh */ + chinese + (european << 3) + (japanese << 6) + (korean << 9) + (other << 12) + }; + unsigned int conversion_list; + + /* Handle Unicode tag characters (range U+E0000..U+E007F). */ + if ((wc >> 7) == (0xe0000 >> 7)) { + char c = wc & 0x7f; + if (c >= 'A' && c <= 'Z') + c += 'a'-'A'; + switch (c) { + case 0x01: + state3 = STATE_TAG_LANGUAGE; + COMBINE_STATE; + conv->ostate = state; + return 0; + case 'j': + if (state3 == STATE_TAG_LANGUAGE) { + state3 = STATE_TAG_LANGUAGE_j; + COMBINE_STATE; + conv->ostate = state; + return 0; + } + break; + case 'a': + if (state3 == STATE_TAG_LANGUAGE_j) { + state3 = STATE_TAG_LANGUAGE_ja; + COMBINE_STATE; + conv->ostate = state; + return 0; + } + break; + case 'k': + if (state3 == STATE_TAG_LANGUAGE) { + state3 = STATE_TAG_LANGUAGE_k; + COMBINE_STATE; + conv->ostate = state; + return 0; + } + break; + case 'o': + if (state3 == STATE_TAG_LANGUAGE_k) { + state3 = STATE_TAG_LANGUAGE_ko; + COMBINE_STATE; + conv->ostate = state; + return 0; + } + break; + case 'z': + if (state3 == STATE_TAG_LANGUAGE) { + state3 = STATE_TAG_LANGUAGE_z; + COMBINE_STATE; + conv->ostate = state; + return 0; + } + break; + case 'h': + if (state3 == STATE_TAG_LANGUAGE_z) { + state3 = STATE_TAG_LANGUAGE_zh; + COMBINE_STATE; + conv->ostate = state; + return 0; + } + break; + case 0x7f: + state3 = STATE_TAG_NONE; + COMBINE_STATE; + conv->ostate = state; + return 0; + default: + break; + } + /* Other tag characters reset the tag parsing state or are ignored. */ + if (state3 >= STATE_TAG_LANGUAGE) + state3 = STATE_TAG_NONE; + COMBINE_STATE; + conv->ostate = state; + return 0; + } + if (state3 >= STATE_TAG_LANGUAGE) + state3 = STATE_TAG_NONE; + + /* Try ASCII. */ + ret = ascii_wctomb(conv,buf,wc,1); + if (ret != RET_ILUNI) { + if (ret != 1) abort(); + if (buf[0] < 0x80) { + int count = (state1 == STATE_ASCII ? 1 : 4); + if (n < count) + return RET_TOOSMALL; + if (state1 != STATE_ASCII) { + r[0] = ESC; + r[1] = '('; + r[2] = 'B'; + r += 3; + state1 = STATE_ASCII; + } + r[0] = buf[0]; + if (wc == 0x000a || wc == 0x000d) + state2 = STATE_G2_NONE; + COMBINE_STATE; + conv->ostate = state; + return count; + } + } + + conversion_list = conversion_lists[state3]; + + do { + switch (conversion_list & ((1 << 3) - 1)) { + + case european: + + /* Try ISO-8859-1. */ + ret = iso8859_1_wctomb(conv,buf,wc,1); + if (ret != RET_ILUNI) { + if (ret != 1) abort(); + if (buf[0] >= 0x80) { + int count = (state2 == STATE_G2_ISO8859_1 ? 3 : 6); + if (n < count) + return RET_TOOSMALL; + if (state2 != STATE_G2_ISO8859_1) { + r[0] = ESC; + r[1] = '.'; + r[2] = 'A'; + r += 3; + state2 = STATE_G2_ISO8859_1; + } + r[0] = ESC; + r[1] = 'N'; + r[2] = buf[0]-0x80; + COMBINE_STATE; + conv->ostate = state; + return count; + } + } + + /* Try ISO-8859-7. */ + ret = iso8859_7_wctomb(conv,buf,wc,1); + if (ret != RET_ILUNI) { + if (ret != 1) abort(); + if (buf[0] >= 0x80) { + int count = (state2 == STATE_G2_ISO8859_7 ? 3 : 6); + if (n < count) + return RET_TOOSMALL; + if (state2 != STATE_G2_ISO8859_7) { + r[0] = ESC; + r[1] = '.'; + r[2] = 'F'; + r += 3; + state2 = STATE_G2_ISO8859_7; + } + r[0] = ESC; + r[1] = 'N'; + r[2] = buf[0]-0x80; + COMBINE_STATE; + conv->ostate = state; + return count; + } + } + + break; + + case japanese: + + /* Try JIS X 0201-1976 Roman. */ + ret = jisx0201_wctomb(conv,buf,wc,1); + if (ret != RET_ILUNI) { + if (ret != 1) abort(); + if (buf[0] < 0x80) { + int count = (state1 == STATE_JISX0201ROMAN ? 1 : 4); + if (n < count) + return RET_TOOSMALL; + if (state1 != STATE_JISX0201ROMAN) { + r[0] = ESC; + r[1] = '('; + r[2] = 'J'; + r += 3; + state1 = STATE_JISX0201ROMAN; + } + r[0] = buf[0]; + if (wc == 0x000a || wc == 0x000d) + state2 = STATE_G2_NONE; + COMBINE_STATE; + conv->ostate = state; + return count; + } + } + + /* Try JIS X 0208-1990 in place of JIS X 0208-1978 and + JIS X 0208-1983. */ + ret = jisx0208_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (buf[0] < 0x80 && buf[1] < 0x80) { + int count = (state1 == STATE_JISX0208 ? 2 : 5); + if (n < count) + return RET_TOOSMALL; + if (state1 != STATE_JISX0208) { + r[0] = ESC; + r[1] = '$'; + r[2] = 'B'; + r += 3; + state1 = STATE_JISX0208; + } + r[0] = buf[0]; + r[1] = buf[1]; + COMBINE_STATE; + conv->ostate = state; + return count; + } + } + + /* Try JIS X 0212-1990. */ + ret = jisx0212_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (buf[0] < 0x80 && buf[1] < 0x80) { + int count = (state1 == STATE_JISX0212 ? 2 : 6); + if (n < count) + return RET_TOOSMALL; + if (state1 != STATE_JISX0212) { + r[0] = ESC; + r[1] = '$'; + r[2] = '('; + r[3] = 'D'; + r += 4; + state1 = STATE_JISX0212; + } + r[0] = buf[0]; + r[1] = buf[1]; + COMBINE_STATE; + conv->ostate = state; + return count; + } + } + + break; + + case chinese: + + /* Try GB 2312-1980. */ + ret = gb2312_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (buf[0] < 0x80 && buf[1] < 0x80) { + int count = (state1 == STATE_GB2312 ? 2 : 5); + if (n < count) + return RET_TOOSMALL; + if (state1 != STATE_GB2312) { + r[0] = ESC; + r[1] = '$'; + r[2] = 'A'; + r += 3; + state1 = STATE_GB2312; + } + r[0] = buf[0]; + r[1] = buf[1]; + COMBINE_STATE; + conv->ostate = state; + return count; + } + } + + break; + + case korean: + + /* Try KS C 5601-1992. */ + ret = ksc5601_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (buf[0] < 0x80 && buf[1] < 0x80) { + int count = (state1 == STATE_KSC5601 ? 2 : 6); + if (n < count) + return RET_TOOSMALL; + if (state1 != STATE_KSC5601) { + r[0] = ESC; + r[1] = '$'; + r[2] = '('; + r[3] = 'C'; + r += 4; + state1 = STATE_KSC5601; + } + r[0] = buf[0]; + r[1] = buf[1]; + COMBINE_STATE; + conv->ostate = state; + return count; + } + } + + break; + + case other: + + /* Try JIS X 0201-1976 Kana. This is not officially part of + ISO-2022-JP-2, according to RFC 1554. Therefore we try this + only after all other attempts. */ + ret = jisx0201_wctomb(conv,buf,wc,1); + if (ret != RET_ILUNI) { + if (ret != 1) abort(); + if (buf[0] >= 0x80) { + int count = (state1 == STATE_JISX0201KATAKANA ? 1 : 4); + if (n < count) + return RET_TOOSMALL; + if (state1 != STATE_JISX0201KATAKANA) { + r[0] = ESC; + r[1] = '('; + r[2] = 'I'; + r += 3; + state1 = STATE_JISX0201KATAKANA; + } + r[0] = buf[0]-0x80; + COMBINE_STATE; + conv->ostate = state; + return count; + } + } + + break; + + default: + abort(); + } + + conversion_list = conversion_list >> 3; + } while (conversion_list != 0); + + return RET_ILUNI; +} + +static int +iso2022_jp2_reset (conv_t conv, unsigned char *r, int n) +{ + state_t state = conv->ostate; + SPLIT_STATE; + (void)state2; + (void)state3; + if (state1 != STATE_ASCII) { + if (n < 3) + return RET_TOOSMALL; + r[0] = ESC; + r[1] = '('; + r[2] = 'B'; + /* conv->ostate = 0; will be done by the caller */ + return 3; + } else + return 0; +} + +#undef COMBINE_STATE +#undef SPLIT_STATE +#undef STATE_TAG_LANGUAGE_zh +#undef STATE_TAG_LANGUAGE_z +#undef STATE_TAG_LANGUAGE_ko +#undef STATE_TAG_LANGUAGE_k +#undef STATE_TAG_LANGUAGE_ja +#undef STATE_TAG_LANGUAGE_j +#undef STATE_TAG_LANGUAGE +#undef STATE_TAG_NONE +#undef STATE_G2_ISO8859_7 +#undef STATE_G2_ISO8859_1 +#undef STATE_G2_NONE +#undef STATE_KSC5601 +#undef STATE_GB2312 +#undef STATE_JISX0212 +#undef STATE_JISX0208 +#undef STATE_JISX0201KATAKANA +#undef STATE_JISX0201ROMAN +#undef STATE_ASCII diff --git a/graf2d/win32gdk/gdk/src/iconv/iso2022_jp3.h b/graf2d/win32gdk/gdk/src/iconv/iso2022_jp3.h new file mode 100644 index 00000000000..58cea1bb348 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iso2022_jp3.h @@ -0,0 +1,538 @@ +/* + * Copyright (C) 1999-2004, 2008 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO-2022-JP-3 + */ + +#include "jisx0213.h" + +#define ESC 0x1b + +/* + * The state is composed of one of the following values + */ +#define STATE_ASCII 0 /* Esc ( B */ +#define STATE_JISX0201ROMAN 1 /* Esc ( J */ +#define STATE_JISX0201KATAKANA 2 /* Esc ( I */ +#define STATE_JISX0208 3 /* Esc $ @ or Esc $ B */ +#define STATE_JISX02131 4 /* Esc $ ( O or Esc $ ( Q*/ +#define STATE_JISX02132 5 /* Esc $ ( P */ + +/* + * In the ISO-2022-JP-3 to UCS-4 direction, the state also holds the last + * character to be output, shifted by 3 bits. + */ + +static int +iso2022_jp3_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + ucs4_t last_wc = conv->istate >> 3; + if (last_wc) { + /* Output the buffered character. */ + conv->istate &= 7; + *pwc = last_wc; + return 0; /* Don't advance the input pointer. */ + } else { + state_t state = conv->istate; + int count = 0; + unsigned char c; + for (;;) { + c = *s; + if (c == ESC) { + if (n < count+3) + goto none; + if (s[1] == '(') { + if (s[2] == 'B') { + state = STATE_ASCII; + s += 3; count += 3; + if (n < count+1) + goto none; + continue; + } + if (s[2] == 'J') { + state = STATE_JISX0201ROMAN; + s += 3; count += 3; + if (n < count+1) + goto none; + continue; + } + if (s[2] == 'I') { + state = STATE_JISX0201KATAKANA; + s += 3; count += 3; + if (n < count+1) + goto none; + continue; + } + goto ilseq; + } + if (s[1] == '$') { + if (s[2] == '@' || s[2] == 'B') { + /* We don't distinguish JIS X 0208-1978 and JIS X 0208-1983. */ + state = STATE_JISX0208; + s += 3; count += 3; + if (n < count+1) + goto none; + continue; + } + if (s[2] == '(') { + if (n < count+4) + goto none; + if (s[3] == 'O' || s[3] == 'Q') { + state = STATE_JISX02131; + s += 4; count += 4; + if (n < count+1) + goto none; + continue; + } + if (s[3] == 'P') { + state = STATE_JISX02132; + s += 4; count += 4; + if (n < count+1) + goto none; + continue; + } + } + goto ilseq; + } + goto ilseq; + } + break; + } + switch (state) { + case STATE_ASCII: + if (c < 0x80) { + int ret = ascii_mbtowc(conv,pwc,s,1); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 1) abort(); + conv->istate = state; + return count+1; + } else + goto ilseq; + case STATE_JISX0201ROMAN: + if (c < 0x80) { + int ret = jisx0201_mbtowc(conv,pwc,s,1); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 1) abort(); + conv->istate = state; + return count+1; + } else + goto ilseq; + case STATE_JISX0201KATAKANA: + if (c < 0x80) { + unsigned char buf = c+0x80; + int ret = jisx0201_mbtowc(conv,pwc,&buf,1); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 1) abort(); + conv->istate = state; + return count+1; + } else + goto ilseq; + case STATE_JISX0208: + if (n < count+2) + goto none; + if (s[0] < 0x80 && s[1] < 0x80) { + int ret = jisx0208_mbtowc(conv,pwc,s,2); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 2) abort(); + conv->istate = state; + return count+2; + } else + goto ilseq; + case STATE_JISX02131: + case STATE_JISX02132: + if (n < count+2) + goto none; + if (s[0] < 0x80 && s[1] < 0x80) { + ucs4_t wc = jisx0213_to_ucs4(((state-STATE_JISX02131+1)<<8)+s[0],s[1]); + if (wc) { + if (wc < 0x80) { + /* It's a combining character. */ + ucs4_t wc1 = jisx0213_to_ucs_combining[wc - 1][0]; + ucs4_t wc2 = jisx0213_to_ucs_combining[wc - 1][1]; + /* We cannot output two Unicode characters at once. So, + output the first character and buffer the second one. */ + *pwc = wc1; + conv->istate = (wc2 << 3) | state; + } else { + *pwc = wc; + conv->istate = state; + } + return count+2; + } + } + goto ilseq; + default: abort(); + } + none: + conv->istate = state; + return RET_TOOFEW(count); + + ilseq: + conv->istate = state; + return RET_SHIFT_ILSEQ(count); + } +} + +static int +iso2022_jp3_flushwc (conv_t conv, ucs4_t *pwc) +{ + ucs4_t last_wc = conv->istate >> 3; + if (last_wc) { + /* Output the buffered character. */ + conv->istate &= 7; + *pwc = last_wc; + return 1; + } else + return 0; +} + +/* + * In the UCS-4 to ISO-2022-JP-3 direction, the state also holds the last two + * bytes to be output, shifted by 3 bits, and the STATE_xxxxx value that was + * effective before this buffered character, shifted by 19 bits. + */ + +/* Composition tables for each of the relevant combining characters. */ +static const struct { unsigned short base; unsigned short composed; } iso2022_jp3_comp_table_data[] = { +#define iso2022_jp3_comp_table02e5_idx 0 +#define iso2022_jp3_comp_table02e5_len 1 + { 0x2b64, 0x2b65 }, /* 0x12B65 = 0x12B64 U+02E5 */ +#define iso2022_jp3_comp_table02e9_idx (iso2022_jp3_comp_table02e5_idx+iso2022_jp3_comp_table02e5_len) +#define iso2022_jp3_comp_table02e9_len 1 + { 0x2b60, 0x2b66 }, /* 0x12B66 = 0x12B60 U+02E9 */ +#define iso2022_jp3_comp_table0300_idx (iso2022_jp3_comp_table02e9_idx+iso2022_jp3_comp_table02e9_len) +#define iso2022_jp3_comp_table0300_len 5 + { 0x295c, 0x2b44 }, /* 0x12B44 = 0x1295C U+0300 */ + { 0x2b38, 0x2b48 }, /* 0x12B48 = 0x12B38 U+0300 */ + { 0x2b37, 0x2b4a }, /* 0x12B4A = 0x12B37 U+0300 */ + { 0x2b30, 0x2b4c }, /* 0x12B4C = 0x12B30 U+0300 */ + { 0x2b43, 0x2b4e }, /* 0x12B4E = 0x12B43 U+0300 */ +#define iso2022_jp3_comp_table0301_idx (iso2022_jp3_comp_table0300_idx+iso2022_jp3_comp_table0300_len) +#define iso2022_jp3_comp_table0301_len 4 + { 0x2b38, 0x2b49 }, /* 0x12B49 = 0x12B38 U+0301 */ + { 0x2b37, 0x2b4b }, /* 0x12B4B = 0x12B37 U+0301 */ + { 0x2b30, 0x2b4d }, /* 0x12B4D = 0x12B30 U+0301 */ + { 0x2b43, 0x2b4f }, /* 0x12B4F = 0x12B43 U+0301 */ +#define iso2022_jp3_comp_table309a_idx (iso2022_jp3_comp_table0301_idx+iso2022_jp3_comp_table0301_len) +#define iso2022_jp3_comp_table309a_len 14 + { 0x242b, 0x2477 }, /* 0x12477 = 0x1242B U+309A */ + { 0x242d, 0x2478 }, /* 0x12478 = 0x1242D U+309A */ + { 0x242f, 0x2479 }, /* 0x12479 = 0x1242F U+309A */ + { 0x2431, 0x247a }, /* 0x1247A = 0x12431 U+309A */ + { 0x2433, 0x247b }, /* 0x1247B = 0x12433 U+309A */ + { 0x252b, 0x2577 }, /* 0x12577 = 0x1252B U+309A */ + { 0x252d, 0x2578 }, /* 0x12578 = 0x1252D U+309A */ + { 0x252f, 0x2579 }, /* 0x12579 = 0x1252F U+309A */ + { 0x2531, 0x257a }, /* 0x1257A = 0x12531 U+309A */ + { 0x2533, 0x257b }, /* 0x1257B = 0x12533 U+309A */ + { 0x253b, 0x257c }, /* 0x1257C = 0x1253B U+309A */ + { 0x2544, 0x257d }, /* 0x1257D = 0x12544 U+309A */ + { 0x2548, 0x257e }, /* 0x1257E = 0x12548 U+309A */ + { 0x2675, 0x2678 }, /* 0x12678 = 0x12675 U+309A */ +}; + +#define SPLIT_STATE \ + unsigned short lasttwo = state >> 3; state_t prevstate = state >> 19; state &= 7 +#define COMBINE_STATE \ + state |= (prevstate << 19) | (lasttwo << 3) +#define COMBINE_STATE_NO_LASTTWO \ + /* assume lasttwo == 0, then prevstate is ignored */ + +static int +iso2022_jp3_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + int count = 0; + unsigned char buf[2]; + unsigned short jch; + int ret; + state_t state = conv->ostate; + SPLIT_STATE; + + if (lasttwo) { + /* Attempt to combine the last character with this one. */ + unsigned int idx; + unsigned int len; + + if (wc == 0x02e5) + idx = iso2022_jp3_comp_table02e5_idx, + len = iso2022_jp3_comp_table02e5_len; + else if (wc == 0x02e9) + idx = iso2022_jp3_comp_table02e9_idx, + len = iso2022_jp3_comp_table02e9_len; + else if (wc == 0x0300) + idx = iso2022_jp3_comp_table0300_idx, + len = iso2022_jp3_comp_table0300_len; + else if (wc == 0x0301) + idx = iso2022_jp3_comp_table0301_idx, + len = iso2022_jp3_comp_table0301_len; + else if (wc == 0x309a) + idx = iso2022_jp3_comp_table309a_idx, + len = iso2022_jp3_comp_table309a_len; + else + goto not_combining; + + do + if (iso2022_jp3_comp_table_data[idx].base == lasttwo) + break; + while (++idx, --len > 0); + + if (len > 0) { + /* Output the combined character. */ + /* We know the combined character is in JISX0213 plane 1, but + the buffered character may have been in JISX0208 or in + JISX0213 plane 1. */ + count = (state != STATE_JISX02131 ? 4 : 0) + 2; + if (n < count) + return RET_TOOSMALL; + if (state != STATE_JISX02131) { + r[0] = ESC; + r[1] = '$'; + r[2] = '('; + r[3] = 'Q'; + r += 4; + state = STATE_JISX02131; + } + lasttwo = iso2022_jp3_comp_table_data[idx].composed; + r[0] = (lasttwo >> 8) & 0xff; + r[1] = lasttwo & 0xff; + COMBINE_STATE_NO_LASTTWO; + conv->ostate = state; + return count; + } + + not_combining: + /* Output the buffered character. */ + /* We know it is in JISX0208 or in JISX0213 plane 1. */ + count = (prevstate != state ? 3 : 0) + 2; + if (n < count) + return RET_TOOSMALL; + if (prevstate != state) { + if (state != STATE_JISX0208) abort(); + r[0] = ESC; + r[1] = '$'; + r[2] = 'B'; + r += 3; + } + r[0] = (lasttwo >> 8) & 0xff; + r[1] = lasttwo & 0xff; + r += 2; + } + + /* Try ASCII. */ + ret = ascii_wctomb(conv,buf,wc,1); + if (ret != RET_ILUNI) { + if (ret != 1) abort(); + if (buf[0] < 0x80) { + count += (state == STATE_ASCII ? 1 : 4); + if (n < count) + return RET_TOOSMALL; + if (state != STATE_ASCII) { + r[0] = ESC; + r[1] = '('; + r[2] = 'B'; + r += 3; + state = STATE_ASCII; + } + r[0] = buf[0]; + COMBINE_STATE_NO_LASTTWO; + conv->ostate = state; + return count; + } + } + + /* Try JIS X 0201-1976 Roman. */ + ret = jisx0201_wctomb(conv,buf,wc,1); + if (ret != RET_ILUNI) { + if (ret != 1) abort(); + if (buf[0] < 0x80) { + count += (state == STATE_JISX0201ROMAN ? 1 : 4); + if (n < count) + return RET_TOOSMALL; + if (state != STATE_JISX0201ROMAN) { + r[0] = ESC; + r[1] = '('; + r[2] = 'J'; + r += 3; + state = STATE_JISX0201ROMAN; + } + r[0] = buf[0]; + COMBINE_STATE_NO_LASTTWO; + conv->ostate = state; + return count; + } + } + + jch = ucs4_to_jisx0213(wc); + + /* Try JIS X 0208-1990 in place of JIS X 0208-1978 and JIS X 0208-1983. */ + ret = jisx0208_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (buf[0] < 0x80 && buf[1] < 0x80) { + if (jch & 0x0080) { + /* A possible match in comp_table_data. Buffer it. */ + prevstate = state; + lasttwo = jch & 0x7f7f; + state = STATE_JISX0208; + COMBINE_STATE; + conv->ostate = state; + return count; + } else { + count += (state == STATE_JISX0208 ? 2 : 5); + if (n < count) + return RET_TOOSMALL; + if (state != STATE_JISX0208) { + r[0] = ESC; + r[1] = '$'; + r[2] = 'B'; + r += 3; + state = STATE_JISX0208; + } + r[0] = buf[0]; + r[1] = buf[1]; + COMBINE_STATE_NO_LASTTWO; + conv->ostate = state; + return count; + } + } + } + + /* Try JISX 0213 plane 1 and JISX 0213 plane 2. */ + if (jch != 0) { + if (jch & 0x8000) { + /* JISX 0213 plane 2. */ + if (state != STATE_JISX02132) { + count += 4; + if (n < count) + return RET_TOOSMALL; + r[0] = ESC; + r[1] = '$'; + r[2] = '('; + r[3] = 'P'; + r += 4; + state = STATE_JISX02132; + } + } else { + /* JISX 0213 plane 1. */ + if (state != STATE_JISX02131) { + count += 4; + if (n < count) + return RET_TOOSMALL; + r[0] = ESC; + r[1] = '$'; + r[2] = '('; + r[3] = 'Q'; + r += 4; + state = STATE_JISX02131; + } + } + if (jch & 0x0080) { + /* A possible match in comp_table_data. We have to buffer it. */ + /* We know it's a JISX 0213 plane 1 character. */ + if (jch & 0x8000) abort(); + prevstate = state; + lasttwo = jch & 0x7f7f; + COMBINE_STATE; + conv->ostate = state; + return count; + } + count += 2; + if (n < count) + return RET_TOOSMALL; + r[0] = (jch >> 8) & 0x7f; + r[1] = jch & 0x7f; + COMBINE_STATE_NO_LASTTWO; + conv->ostate = state; + return count; + } + + /* Try JIS X 0201-1976 Katakana. This is not officially part of + ISO-2022-JP-3. Therefore we try it after all other attempts. */ + ret = jisx0201_wctomb(conv,buf,wc,1); + if (ret != RET_ILUNI) { + if (ret != 1) abort(); + if (buf[0] >= 0x80) { + count += (state == STATE_JISX0201KATAKANA ? 1 : 4); + if (n < count) + return RET_TOOSMALL; + if (state != STATE_JISX0201KATAKANA) { + r[0] = ESC; + r[1] = '('; + r[2] = 'I'; + r += 3; + state = STATE_JISX0201KATAKANA; + } + r[0] = buf[0]-0x80; + COMBINE_STATE_NO_LASTTWO; + conv->ostate = state; + return count; + } + } + + return RET_ILUNI; +} + +static int +iso2022_jp3_reset (conv_t conv, unsigned char *r, int n) +{ + state_t state = conv->ostate; + SPLIT_STATE; + { + int count = + (lasttwo ? (prevstate != state ? 3 : 0) + 2 : 0) + + (state != STATE_ASCII ? 3 : 0); + if (n < count) + return RET_TOOSMALL; + if (lasttwo) { + if (prevstate != state) { + if (state != STATE_JISX0208) abort(); + r[0] = ESC; + r[1] = '$'; + r[2] = 'B'; + r += 3; + } + r[0] = (lasttwo >> 8) & 0xff; + r[1] = lasttwo & 0xff; + r += 2; + } + if (state != STATE_ASCII) { + r[0] = ESC; + r[1] = '('; + r[2] = 'B'; + } + /* conv->ostate = 0; will be done by the caller */ + return count; + } +} + +#undef COMBINE_STATE_NO_LASTTWO +#undef COMBINE_STATE +#undef SPLIT_STATE +#undef STATE_JISX02132 +#undef STATE_JISX02131 +#undef STATE_JISX0208 +#undef STATE_JISX0201KATAKANA +#undef STATE_JISX0201ROMAN +#undef STATE_ASCII diff --git a/graf2d/win32gdk/gdk/src/iconv/iso2022_kr.h b/graf2d/win32gdk/gdk/src/iconv/iso2022_kr.h new file mode 100644 index 00000000000..8045d4e5e10 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iso2022_kr.h @@ -0,0 +1,222 @@ +/* + * Copyright (C) 1999-2001, 2008 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO-2022-KR + */ + +/* Specification: RFC 1557 */ + +/* Note: CJK.INF says the SO designator needs to appear only once at the + beginning of a text, but to decrease the risk of ambiguities, when + producing ISO-2022-KR, we repeat the designator in every line containing + SO characters. RFC 1557 does not mandate this. */ + +#define ESC 0x1b +#define SO 0x0e +#define SI 0x0f + +/* + * The state is composed of one of the following values + */ +#define STATE_ASCII 0 +#define STATE_TWOBYTE 1 +/* + * and one of the following values, << 8 + */ +#define STATE2_NONE 0 +#define STATE2_DESIGNATED_KSC5601 1 + +#define SPLIT_STATE \ + unsigned int state1 = state & 0xff, state2 = state >> 8 +#define COMBINE_STATE \ + state = (state2 << 8) | state1 + +static int +iso2022_kr_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + state_t state = conv->istate; + SPLIT_STATE; + int count = 0; + unsigned char c; + for (;;) { + c = *s; + if (c == ESC) { + if (n < count+4) + goto none; + if (s[1] == '$') { + if (s[2] == ')') { + if (s[3] == 'C') { + state2 = STATE2_DESIGNATED_KSC5601; + s += 4; count += 4; + if (n < count+1) + goto none; + continue; + } + } + } + goto ilseq; + } + if (c == SO) { + if (state2 != STATE2_DESIGNATED_KSC5601) + goto ilseq; + state1 = STATE_TWOBYTE; + s++; count++; + if (n < count+1) + goto none; + continue; + } + if (c == SI) { + state1 = STATE_ASCII; + s++; count++; + if (n < count+1) + goto none; + continue; + } + break; + } + switch (state1) { + case STATE_ASCII: + if (c < 0x80) { + int ret = ascii_mbtowc(conv,pwc,s,1); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 1) abort(); +#if 0 /* Accept ISO-2022-KR according to CJK.INF. */ + if (*pwc == 0x000a || *pwc == 0x000d) + state2 = STATE2_NONE; +#endif + COMBINE_STATE; + conv->istate = state; + return count+1; + } else + goto ilseq; + case STATE_TWOBYTE: + if (n < count+2) + goto none; + if (state2 != STATE2_DESIGNATED_KSC5601) abort(); + if (s[0] < 0x80 && s[1] < 0x80) { + int ret = ksc5601_mbtowc(conv,pwc,s,2); + if (ret == RET_ILSEQ) + goto ilseq; + if (ret != 2) abort(); + COMBINE_STATE; + conv->istate = state; + return count+2; + } else + goto ilseq; + default: abort(); + } + +none: + COMBINE_STATE; + conv->istate = state; + return RET_TOOFEW(count); + +ilseq: + COMBINE_STATE; + conv->istate = state; + return RET_SHIFT_ILSEQ(count); +} + +static int +iso2022_kr_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + state_t state = conv->ostate; + SPLIT_STATE; + unsigned char buf[2]; + int ret; + + /* Try ASCII. */ + ret = ascii_wctomb(conv,buf,wc,1); + if (ret != RET_ILUNI) { + if (ret != 1) abort(); + if (buf[0] < 0x80) { + int count = (state1 == STATE_ASCII ? 1 : 2); + if (n < count) + return RET_TOOSMALL; + if (state1 != STATE_ASCII) { + r[0] = SI; + r += 1; + state1 = STATE_ASCII; + } + r[0] = buf[0]; + if (wc == 0x000a || wc == 0x000d) + state2 = STATE2_NONE; + COMBINE_STATE; + conv->ostate = state; + return count; + } + } + + /* Try KS C 5601-1992. */ + ret = ksc5601_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (buf[0] < 0x80 && buf[1] < 0x80) { + int count = (state2 == STATE2_DESIGNATED_KSC5601 ? 0 : 4) + (state1 == STATE_TWOBYTE ? 0 : 1) + 2; + if (n < count) + return RET_TOOSMALL; + if (state2 != STATE2_DESIGNATED_KSC5601) { + r[0] = ESC; + r[1] = '$'; + r[2] = ')'; + r[3] = 'C'; + r += 4; + state2 = STATE2_DESIGNATED_KSC5601; + } + if (state1 != STATE_TWOBYTE) { + r[0] = SO; + r += 1; + state1 = STATE_TWOBYTE; + } + r[0] = buf[0]; + r[1] = buf[1]; + COMBINE_STATE; + conv->ostate = state; + return count; + } + } + + return RET_ILUNI; +} + +static int +iso2022_kr_reset (conv_t conv, unsigned char *r, int n) +{ + state_t state = conv->ostate; + SPLIT_STATE; + (void)state2; + if (state1 != STATE_ASCII) { + if (n < 1) + return RET_TOOSMALL; + r[0] = SI; + /* conv->ostate = 0; will be done by the caller */ + return 1; + } else + return 0; +} + +#undef COMBINE_STATE +#undef SPLIT_STATE +#undef STATE2_DESIGNATED_KSC5601 +#undef STATE2_NONE +#undef STATE_TWOBYTE +#undef STATE_ASCII diff --git a/graf2d/win32gdk/gdk/src/iconv/iso646_cn.h b/graf2d/win32gdk/gdk/src/iconv/iso646_cn.h new file mode 100644 index 00000000000..a571ce713ac --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iso646_cn.h @@ -0,0 +1,58 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO646-CN + * also known as GB_1988-80 + */ + +static int +iso646_cn_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + if (c == 0x24) + *pwc = (ucs4_t) 0x00a5; + else if (c == 0x7e) + *pwc = (ucs4_t) 0x203e; + else + *pwc = (ucs4_t) c; + return 1; + } + return RET_ILSEQ; +} + +static int +iso646_cn_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (wc < 0x0080 && !(wc == 0x0024 || wc == 0x007e)) { + *r = wc; + return 1; + } + if (wc == 0x00a5) { + *r = 0x24; + return 1; + } + if (wc == 0x203e) { + *r = 0x7e; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/iso646_jp.h b/graf2d/win32gdk/gdk/src/iconv/iso646_jp.h new file mode 100644 index 00000000000..7cc3abd040e --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iso646_jp.h @@ -0,0 +1,60 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO646-JP + * also known as JIS_C6220-1969-RO + */ + +/* This is the lower half of JIS_X0201. */ + +static int +iso646_jp_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + if (c == 0x5c) + *pwc = (ucs4_t) 0x00a5; + else if (c == 0x7e) + *pwc = (ucs4_t) 0x203e; + else + *pwc = (ucs4_t) c; + return 1; + } + return RET_ILSEQ; +} + +static int +iso646_jp_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (wc < 0x0080 && !(wc == 0x005c || wc == 0x007e)) { + *r = wc; + return 1; + } + if (wc == 0x00a5) { + *r = 0x5c; + return 1; + } + if (wc == 0x203e) { + *r = 0x7e; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/iso8859_1.h b/graf2d/win32gdk/gdk/src/iconv/iso8859_1.h new file mode 100644 index 00000000000..53469164b17 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iso8859_1.h @@ -0,0 +1,41 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO-8859-1 + */ + +static int +iso8859_1_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + *pwc = (ucs4_t) c; + return 1; +} + +static int +iso8859_1_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (wc < 0x0100) { + *r = wc; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/iso8859_10.h b/graf2d/win32gdk/gdk/src/iconv/iso8859_10.h new file mode 100644 index 00000000000..49b3f6ad3d5 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iso8859_10.h @@ -0,0 +1,106 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO-8859-10 + */ + +static const unsigned short iso8859_10_2uni[96] = { + /* 0xa0 */ + 0x00a0, 0x0104, 0x0112, 0x0122, 0x012a, 0x0128, 0x0136, 0x00a7, + 0x013b, 0x0110, 0x0160, 0x0166, 0x017d, 0x00ad, 0x016a, 0x014a, + /* 0xb0 */ + 0x00b0, 0x0105, 0x0113, 0x0123, 0x012b, 0x0129, 0x0137, 0x00b7, + 0x013c, 0x0111, 0x0161, 0x0167, 0x017e, 0x2015, 0x016b, 0x014b, + /* 0xc0 */ + 0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e, + 0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x00cf, + /* 0xd0 */ + 0x00d0, 0x0145, 0x014c, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x0168, + 0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, + /* 0xe0 */ + 0x0101, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x012f, + 0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x00ef, + /* 0xf0 */ + 0x00f0, 0x0146, 0x014d, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x0169, + 0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x0138, +}; + +static int +iso8859_10_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0xa0) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) iso8859_10_2uni[c-0xa0]; + return 1; +} + +static const unsigned char iso8859_10_page00[224] = { + 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */ + 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0x00, /* 0xc0-0xc7 */ + 0x00, 0xc9, 0x00, 0xcb, 0x00, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */ + 0xd0, 0x00, 0x00, 0xd3, 0xd4, 0xd5, 0xd6, 0x00, /* 0xd0-0xd7 */ + 0xd8, 0x00, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0xd8-0xdf */ + 0x00, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0x00, /* 0xe0-0xe7 */ + 0x00, 0xe9, 0x00, 0xeb, 0x00, 0xed, 0xee, 0xef, /* 0xe8-0xef */ + 0xf0, 0x00, 0x00, 0xf3, 0xf4, 0xf5, 0xf6, 0x00, /* 0xf0-0xf7 */ + 0xf8, 0x00, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x00, /* 0xf8-0xff */ + /* 0x0100 */ + 0xc0, 0xe0, 0x00, 0x00, 0xa1, 0xb1, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0x00, 0x00, /* 0x08-0x0f */ + 0xa9, 0xb9, 0xa2, 0xb2, 0x00, 0x00, 0xcc, 0xec, /* 0x10-0x17 */ + 0xca, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0xa3, 0xb3, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0xa5, 0xb5, 0xa4, 0xb4, 0x00, 0x00, 0xc7, 0xe7, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0xb6, /* 0x30-0x37 */ + 0xff, 0x00, 0x00, 0xa8, 0xb8, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0xf1, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0xaf, 0xbf, 0xd2, 0xf2, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0xaa, 0xba, 0x00, 0x00, 0x00, 0x00, 0xab, 0xbb, /* 0x60-0x67 */ + 0xd7, 0xf7, 0xae, 0xbe, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0xd9, 0xf9, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0xbc, 0x00, /* 0x78-0x7f */ +}; + +static int +iso8859_10_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x00a0) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0180) + c = iso8859_10_page00[wc-0x00a0]; + else if (wc == 0x2015) + c = 0xbd; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/iso8859_11.h b/graf2d/win32gdk/gdk/src/iconv/iso8859_11.h new file mode 100644 index 00000000000..ef8b1a66c55 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iso8859_11.h @@ -0,0 +1,52 @@ +/* + * Copyright (C) 1999-2004 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO-8859-11 + */ + +static int +iso8859_11_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0xa1) { + *pwc = (ucs4_t) c; + return 1; + } + else if (c <= 0xfb && !(c >= 0xdb && c <= 0xde)) { + *pwc = (ucs4_t) (c + 0x0d60); + return 1; + } + return RET_ILSEQ; +} + +static int +iso8859_11_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (wc < 0x00a1) { + *r = wc; + return 1; + } + else if (wc >= 0x0e01 && wc <= 0x0e5b && !(wc >= 0x0e3b && wc <= 0x0e3e)) { + *r = wc-0x0d60; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/iso8859_13.h b/graf2d/win32gdk/gdk/src/iconv/iso8859_13.h new file mode 100644 index 00000000000..2fadc7b8b41 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iso8859_13.h @@ -0,0 +1,109 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO-8859-13 + */ + +static const unsigned short iso8859_13_2uni[96] = { + /* 0xa0 */ + 0x00a0, 0x201d, 0x00a2, 0x00a3, 0x00a4, 0x201e, 0x00a6, 0x00a7, + 0x00d8, 0x00a9, 0x0156, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00c6, + /* 0xb0 */ + 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x201c, 0x00b5, 0x00b6, 0x00b7, + 0x00f8, 0x00b9, 0x0157, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00e6, + /* 0xc0 */ + 0x0104, 0x012e, 0x0100, 0x0106, 0x00c4, 0x00c5, 0x0118, 0x0112, + 0x010c, 0x00c9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012a, 0x013b, + /* 0xd0 */ + 0x0160, 0x0143, 0x0145, 0x00d3, 0x014c, 0x00d5, 0x00d6, 0x00d7, + 0x0172, 0x0141, 0x015a, 0x016a, 0x00dc, 0x017b, 0x017d, 0x00df, + /* 0xe0 */ + 0x0105, 0x012f, 0x0101, 0x0107, 0x00e4, 0x00e5, 0x0119, 0x0113, + 0x010d, 0x00e9, 0x017a, 0x0117, 0x0123, 0x0137, 0x012b, 0x013c, + /* 0xf0 */ + 0x0161, 0x0144, 0x0146, 0x00f3, 0x014d, 0x00f5, 0x00f6, 0x00f7, + 0x0173, 0x0142, 0x015b, 0x016b, 0x00fc, 0x017c, 0x017e, 0x2019, +}; + +static int +iso8859_13_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0xa0) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) iso8859_13_2uni[c-0xa0]; + return 1; +} + +static const unsigned char iso8859_13_page00[224] = { + 0xa0, 0x00, 0xa2, 0xa3, 0xa4, 0x00, 0xa6, 0xa7, /* 0xa0-0xa7 */ + 0x00, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0x00, /* 0xa8-0xaf */ + 0xb0, 0xb1, 0xb2, 0xb3, 0x00, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */ + 0x00, 0xb9, 0x00, 0xbb, 0xbc, 0xbd, 0xbe, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0xc4, 0xc5, 0xaf, 0x00, /* 0xc0-0xc7 */ + 0x00, 0xc9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0xd3, 0x00, 0xd5, 0xd6, 0xd7, /* 0xd0-0xd7 */ + 0xa8, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */ + 0x00, 0x00, 0x00, 0x00, 0xe4, 0xe5, 0xbf, 0x00, /* 0xe0-0xe7 */ + 0x00, 0xe9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0xf3, 0x00, 0xf5, 0xf6, 0xf7, /* 0xf0-0xf7 */ + 0xb8, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, /* 0xf8-0xff */ + /* 0x0100 */ + 0xc2, 0xe2, 0x00, 0x00, 0xc0, 0xe0, 0xc3, 0xe3, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0xc7, 0xe7, 0x00, 0x00, 0xcb, 0xeb, /* 0x10-0x17 */ + 0xc6, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0xcc, 0xec, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0xce, 0xee, 0x00, 0x00, 0xc1, 0xe1, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcd, 0xed, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0xcf, 0xef, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0xd9, 0xf9, 0xd1, 0xf1, 0xd2, 0xf2, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0xd4, 0xf4, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0xba, /* 0x50-0x57 */ + 0x00, 0x00, 0xda, 0xfa, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0xdb, 0xfb, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0xd8, 0xf8, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0xca, 0xea, 0xdd, 0xfd, 0xde, 0xfe, 0x00, /* 0x78-0x7f */ +}; +static const unsigned char iso8859_13_page20[8] = { + 0x00, 0xff, 0x00, 0x00, 0xb4, 0xa1, 0xa5, 0x00, /* 0x18-0x1f */ +}; + +static int +iso8859_13_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x00a0) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0180) + c = iso8859_13_page00[wc-0x00a0]; + else if (wc >= 0x2018 && wc < 0x2020) + c = iso8859_13_page20[wc-0x2018]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/iso8859_14.h b/graf2d/win32gdk/gdk/src/iconv/iso8859_14.h new file mode 100644 index 00000000000..01c9cdd9509 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iso8859_14.h @@ -0,0 +1,127 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO-8859-14 + */ + +static const unsigned short iso8859_14_2uni[96] = { + /* 0xa0 */ + 0x00a0, 0x1e02, 0x1e03, 0x00a3, 0x010a, 0x010b, 0x1e0a, 0x00a7, + 0x1e80, 0x00a9, 0x1e82, 0x1e0b, 0x1ef2, 0x00ad, 0x00ae, 0x0178, + /* 0xb0 */ + 0x1e1e, 0x1e1f, 0x0120, 0x0121, 0x1e40, 0x1e41, 0x00b6, 0x1e56, + 0x1e81, 0x1e57, 0x1e83, 0x1e60, 0x1ef3, 0x1e84, 0x1e85, 0x1e61, + /* 0xc0 */ + 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, + 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, + /* 0xd0 */ + 0x0174, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x1e6a, + 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x0176, 0x00df, + /* 0xe0 */ + 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, + 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, + /* 0xf0 */ + 0x0175, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x1e6b, + 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x0177, 0x00ff, +}; + +static int +iso8859_14_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c >= 0xa0) + *pwc = (ucs4_t) iso8859_14_2uni[c-0xa0]; + else + *pwc = (ucs4_t) c; + return 1; +} + +static const unsigned char iso8859_14_page00[96] = { + 0xa0, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */ + 0x00, 0xa9, 0x00, 0x00, 0x00, 0xad, 0xae, 0x00, /* 0xa8-0xaf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0xc0-0xc7 */ + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */ + 0x00, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0x00, /* 0xd0-0xd7 */ + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0x00, 0xdf, /* 0xd8-0xdf */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xe0-0xe7 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xe8-0xef */ + 0x00, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0x00, /* 0xf0-0xf7 */ + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0x00, 0xff, /* 0xf8-0xff */ +}; +static const unsigned char iso8859_14_page01_0[32] = { + 0x00, 0x00, 0xa4, 0xa5, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0xb2, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ +}; +static const unsigned char iso8859_14_page01_1[16] = { + 0x00, 0x00, 0x00, 0x00, 0xd0, 0xf0, 0xde, 0xfe, /* 0x70-0x77 */ + 0xaf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ +}; +static const unsigned char iso8859_14_page1e_0[136] = { + 0x00, 0x00, 0xa1, 0xa2, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0xa6, 0xab, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0xb1, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0xb4, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0xb9, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0xbb, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0xd7, 0xf7, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0xa8, 0xb8, 0xaa, 0xba, 0xbd, 0xbe, 0x00, 0x00, /* 0x80-0x87 */ +}; +static const unsigned char iso8859_14_page1e_1[8] = { + 0x00, 0x00, 0xac, 0xbc, 0x00, 0x00, 0x00, 0x00, /* 0xf0-0xf7 */ +}; + +static int +iso8859_14_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x00a0) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0100) + c = iso8859_14_page00[wc-0x00a0]; + else if (wc >= 0x0108 && wc < 0x0128) + c = iso8859_14_page01_0[wc-0x0108]; + else if (wc >= 0x0170 && wc < 0x0180) + c = iso8859_14_page01_1[wc-0x0170]; + else if (wc >= 0x1e00 && wc < 0x1e88) + c = iso8859_14_page1e_0[wc-0x1e00]; + else if (wc >= 0x1ef0 && wc < 0x1ef8) + c = iso8859_14_page1e_1[wc-0x1ef0]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/iso8859_15.h b/graf2d/win32gdk/gdk/src/iconv/iso8859_15.h new file mode 100644 index 00000000000..24de90d7d31 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iso8859_15.h @@ -0,0 +1,81 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO-8859-15 + */ + +static const unsigned short iso8859_15_2uni[32] = { + /* 0xa0 */ + 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x20ac, 0x00a5, 0x0160, 0x00a7, + 0x0161, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, + /* 0xb0 */ + 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x017d, 0x00b5, 0x00b6, 0x00b7, + 0x017e, 0x00b9, 0x00ba, 0x00bb, 0x0152, 0x0153, 0x0178, 0x00bf, +}; + +static int +iso8859_15_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c >= 0xa0 && c < 0xc0) + *pwc = (ucs4_t) iso8859_15_2uni[c-0xa0]; + else + *pwc = (ucs4_t) c; + return 1; +} + +static const unsigned char iso8859_15_page00[32] = { + 0xa0, 0xa1, 0xa2, 0xa3, 0x00, 0xa5, 0x00, 0xa7, /* 0xa0-0xa7 */ + 0x00, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0xa8-0xaf */ + 0xb0, 0xb1, 0xb2, 0xb3, 0x00, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */ + 0x00, 0xb9, 0xba, 0xbb, 0x00, 0x00, 0x00, 0xbf, /* 0xb8-0xbf */ +}; +static const unsigned char iso8859_15_page01[48] = { + 0x00, 0x00, 0xbc, 0xbd, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0xa6, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0xbe, 0x00, 0x00, 0x00, 0x00, 0xb4, 0xb8, 0x00, /* 0x78-0x7f */ +}; + +static int +iso8859_15_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x00a0) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00c0) + c = iso8859_15_page00[wc-0x00a0]; + else if (wc >= 0x00c0 && wc < 0x0100) + c = wc; + else if (wc >= 0x0150 && wc < 0x0180) + c = iso8859_15_page01[wc-0x0150]; + else if (wc == 0x20ac) + c = 0xa4; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/iso8859_16.h b/graf2d/win32gdk/gdk/src/iconv/iso8859_16.h new file mode 100644 index 00000000000..200471840f4 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iso8859_16.h @@ -0,0 +1,116 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO-8859-16 + */ + +static const unsigned short iso8859_16_2uni[96] = { + /* 0xa0 */ + 0x00a0, 0x0104, 0x0105, 0x0141, 0x20ac, 0x201e, 0x0160, 0x00a7, + 0x0161, 0x00a9, 0x0218, 0x00ab, 0x0179, 0x00ad, 0x017a, 0x017b, + /* 0xb0 */ + 0x00b0, 0x00b1, 0x010c, 0x0142, 0x017d, 0x201d, 0x00b6, 0x00b7, + 0x017e, 0x010d, 0x0219, 0x00bb, 0x0152, 0x0153, 0x0178, 0x017c, + /* 0xc0 */ + 0x00c0, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0106, 0x00c6, 0x00c7, + 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, + /* 0xd0 */ + 0x0110, 0x0143, 0x00d2, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x015a, + 0x0170, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0118, 0x021a, 0x00df, + /* 0xe0 */ + 0x00e0, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x0107, 0x00e6, 0x00e7, + 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, + /* 0xf0 */ + 0x0111, 0x0144, 0x00f2, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x015b, + 0x0171, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0119, 0x021b, 0x00ff, +}; + +static int +iso8859_16_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0xa0) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) iso8859_16_2uni[c-0xa0]; + return 1; +} + +static const unsigned char iso8859_16_page00[224] = { + 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */ + 0x00, 0xa9, 0x00, 0xab, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */ + 0xb0, 0xb1, 0x00, 0x00, 0x00, 0x00, 0xb6, 0xb7, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0xc0, 0xc1, 0xc2, 0x00, 0xc4, 0x00, 0xc6, 0xc7, /* 0xc0-0xc7 */ + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */ + 0x00, 0x00, 0xd2, 0xd3, 0xd4, 0x00, 0xd6, 0x00, /* 0xd0-0xd7 */ + 0x00, 0xd9, 0xda, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */ + 0xe0, 0xe1, 0xe2, 0x00, 0xe4, 0x00, 0xe6, 0xe7, /* 0xe0-0xe7 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xe8-0xef */ + 0x00, 0x00, 0xf2, 0xf3, 0xf4, 0x00, 0xf6, 0x00, /* 0xf0-0xf7 */ + 0x00, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0xff, /* 0xf8-0xff */ + /* 0x0100 */ + 0x00, 0x00, 0xc3, 0xe3, 0xa1, 0xa2, 0xc5, 0xe5, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xb2, 0xb9, 0x00, 0x00, /* 0x08-0x0f */ + 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xdd, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0xa3, 0xb3, 0xd1, 0xf1, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xd5, 0xf5, 0xbc, 0xbd, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0xd7, 0xf7, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0xa6, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0xd8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0xbe, 0xac, 0xae, 0xaf, 0xbf, 0xb4, 0xb8, 0x00, /* 0x78-0x7f */ +}; +static const unsigned char iso8859_16_page02[8] = { + 0xaa, 0xba, 0xde, 0xfe, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ +}; +static const unsigned char iso8859_16_page20[8] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0xa5, 0x00, /* 0x18-0x1f */ +}; + +static int +iso8859_16_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x00a0) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0180) + c = iso8859_16_page00[wc-0x00a0]; + else if (wc >= 0x0218 && wc < 0x0220) + c = iso8859_16_page02[wc-0x0218]; + else if (wc >= 0x2018 && wc < 0x2020) + c = iso8859_16_page20[wc-0x2018]; + else if (wc == 0x20ac) + c = 0xa4; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/iso8859_2.h b/graf2d/win32gdk/gdk/src/iconv/iso8859_2.h new file mode 100644 index 00000000000..9ad4d4aa5de --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iso8859_2.h @@ -0,0 +1,112 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO-8859-2 + */ + +static const unsigned short iso8859_2_2uni[96] = { + /* 0xa0 */ + 0x00a0, 0x0104, 0x02d8, 0x0141, 0x00a4, 0x013d, 0x015a, 0x00a7, + 0x00a8, 0x0160, 0x015e, 0x0164, 0x0179, 0x00ad, 0x017d, 0x017b, + /* 0xb0 */ + 0x00b0, 0x0105, 0x02db, 0x0142, 0x00b4, 0x013e, 0x015b, 0x02c7, + 0x00b8, 0x0161, 0x015f, 0x0165, 0x017a, 0x02dd, 0x017e, 0x017c, + /* 0xc0 */ + 0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7, + 0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e, + /* 0xd0 */ + 0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7, + 0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df, + /* 0xe0 */ + 0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7, + 0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f, + /* 0xf0 */ + 0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7, + 0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9, +}; + +static int +iso8859_2_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0xa0) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) iso8859_2_2uni[c-0xa0]; + return 1; +} + +static const unsigned char iso8859_2_page00[224] = { + 0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */ + 0xa8, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */ + 0xb0, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ + 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0xc1, 0xc2, 0x00, 0xc4, 0x00, 0x00, 0xc7, /* 0xc0-0xc7 */ + 0x00, 0xc9, 0x00, 0xcb, 0x00, 0xcd, 0xce, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0xd3, 0xd4, 0x00, 0xd6, 0xd7, /* 0xd0-0xd7 */ + 0x00, 0x00, 0xda, 0x00, 0xdc, 0xdd, 0x00, 0xdf, /* 0xd8-0xdf */ + 0x00, 0xe1, 0xe2, 0x00, 0xe4, 0x00, 0x00, 0xe7, /* 0xe0-0xe7 */ + 0x00, 0xe9, 0x00, 0xeb, 0x00, 0xed, 0xee, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0xf3, 0xf4, 0x00, 0xf6, 0xf7, /* 0xf0-0xf7 */ + 0x00, 0x00, 0xfa, 0x00, 0xfc, 0xfd, 0x00, 0x00, /* 0xf8-0xff */ + /* 0x0100 */ + 0x00, 0x00, 0xc3, 0xe3, 0xa1, 0xb1, 0xc6, 0xe6, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0xcf, 0xef, /* 0x08-0x0f */ + 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xca, 0xea, 0xcc, 0xec, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0xc5, 0xe5, 0x00, 0x00, 0xa5, 0xb5, 0x00, /* 0x38-0x3f */ + 0x00, 0xa3, 0xb3, 0xd1, 0xf1, 0x00, 0x00, 0xd2, /* 0x40-0x47 */ + 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xd5, 0xf5, 0x00, 0x00, 0xc0, 0xe0, 0x00, 0x00, /* 0x50-0x57 */ + 0xd8, 0xf8, 0xa6, 0xb6, 0x00, 0x00, 0xaa, 0xba, /* 0x58-0x5f */ + 0xa9, 0xb9, 0xde, 0xfe, 0xab, 0xbb, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xf9, /* 0x68-0x6f */ + 0xdb, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0xac, 0xbc, 0xaf, 0xbf, 0xae, 0xbe, 0x00, /* 0x78-0x7f */ +}; +static const unsigned char iso8859_2_page02[32] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0xa2, 0xff, 0x00, 0xb2, 0x00, 0xbd, 0x00, 0x00, /* 0xd8-0xdf */ +}; + +static int +iso8859_2_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x00a0) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0180) + c = iso8859_2_page00[wc-0x00a0]; + else if (wc >= 0x02c0 && wc < 0x02e0) + c = iso8859_2_page02[wc-0x02c0]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/iso8859_3.h b/graf2d/win32gdk/gdk/src/iconv/iso8859_3.h new file mode 100644 index 00000000000..308e0b0d649 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iso8859_3.h @@ -0,0 +1,118 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO-8859-3 + */ + +static const unsigned short iso8859_3_2uni[96] = { + /* 0xa0 */ + 0x00a0, 0x0126, 0x02d8, 0x00a3, 0x00a4, 0xfffd, 0x0124, 0x00a7, + 0x00a8, 0x0130, 0x015e, 0x011e, 0x0134, 0x00ad, 0xfffd, 0x017b, + /* 0xb0 */ + 0x00b0, 0x0127, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x0125, 0x00b7, + 0x00b8, 0x0131, 0x015f, 0x011f, 0x0135, 0x00bd, 0xfffd, 0x017c, + /* 0xc0 */ + 0x00c0, 0x00c1, 0x00c2, 0xfffd, 0x00c4, 0x010a, 0x0108, 0x00c7, + 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, + /* 0xd0 */ + 0xfffd, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x0120, 0x00d6, 0x00d7, + 0x011c, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x016c, 0x015c, 0x00df, + /* 0xe0 */ + 0x00e0, 0x00e1, 0x00e2, 0xfffd, 0x00e4, 0x010b, 0x0109, 0x00e7, + 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, + /* 0xf0 */ + 0xfffd, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x0121, 0x00f6, 0x00f7, + 0x011d, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x016d, 0x015d, 0x02d9, +}; + +static int +iso8859_3_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0xa0) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = iso8859_3_2uni[c-0xa0]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char iso8859_3_page00[96] = { + 0xa0, 0x00, 0x00, 0xa3, 0xa4, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */ + 0xa8, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */ + 0xb0, 0x00, 0xb2, 0xb3, 0xb4, 0xb5, 0x00, 0xb7, /* 0xb0-0xb7 */ + 0xb8, 0x00, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, /* 0xb8-0xbf */ + 0xc0, 0xc1, 0xc2, 0x00, 0xc4, 0x00, 0x00, 0xc7, /* 0xc0-0xc7 */ + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */ + 0x00, 0xd1, 0xd2, 0xd3, 0xd4, 0x00, 0xd6, 0xd7, /* 0xd0-0xd7 */ + 0x00, 0xd9, 0xda, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */ + 0xe0, 0xe1, 0xe2, 0x00, 0xe4, 0x00, 0x00, 0xe7, /* 0xe0-0xe7 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xe8-0xef */ + 0x00, 0xf1, 0xf2, 0xf3, 0xf4, 0x00, 0xf6, 0xf7, /* 0xf0-0xf7 */ + 0x00, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0x00, /* 0xf8-0xff */ +}; +static const unsigned char iso8859_3_page01[120] = { + 0xc6, 0xe6, 0xc5, 0xe5, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0xd8, 0xf8, 0xab, 0xbb, /* 0x18-0x1f */ + 0xd5, 0xf5, 0x00, 0x00, 0xa6, 0xb6, 0xa1, 0xb1, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0xa9, 0xb9, 0x00, 0x00, 0xac, 0xbc, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0xde, 0xfe, 0xaa, 0xba, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0xdd, 0xfd, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0xaf, 0xbf, 0x00, 0x00, 0x00, /* 0x78-0x7f */ +}; +static const unsigned char iso8859_3_page02[8] = { + 0xa2, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ +}; + +static int +iso8859_3_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x00a0) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0100) + c = iso8859_3_page00[wc-0x00a0]; + else if (wc >= 0x0108 && wc < 0x0180) + c = iso8859_3_page01[wc-0x0108]; + else if (wc >= 0x02d8 && wc < 0x02e0) + c = iso8859_3_page02[wc-0x02d8]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/iso8859_4.h b/graf2d/win32gdk/gdk/src/iconv/iso8859_4.h new file mode 100644 index 00000000000..51e17786563 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iso8859_4.h @@ -0,0 +1,112 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO-8859-4 + */ + +static const unsigned short iso8859_4_2uni[96] = { + /* 0xa0 */ + 0x00a0, 0x0104, 0x0138, 0x0156, 0x00a4, 0x0128, 0x013b, 0x00a7, + 0x00a8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00ad, 0x017d, 0x00af, + /* 0xb0 */ + 0x00b0, 0x0105, 0x02db, 0x0157, 0x00b4, 0x0129, 0x013c, 0x02c7, + 0x00b8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014a, 0x017e, 0x014b, + /* 0xc0 */ + 0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e, + 0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x012a, + /* 0xd0 */ + 0x0110, 0x0145, 0x014c, 0x0136, 0x00d4, 0x00d5, 0x00d6, 0x00d7, + 0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x0168, 0x016a, 0x00df, + /* 0xe0 */ + 0x0101, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x012f, + 0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x012b, + /* 0xf0 */ + 0x0111, 0x0146, 0x014d, 0x0137, 0x00f4, 0x00f5, 0x00f6, 0x00f7, + 0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x0169, 0x016b, 0x02d9, +}; + +static int +iso8859_4_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0xa0) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) iso8859_4_2uni[c-0xa0]; + return 1; +} + +static const unsigned char iso8859_4_page00[224] = { + 0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */ + 0xa8, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0xaf, /* 0xa8-0xaf */ + 0xb0, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ + 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0x00, /* 0xc0-0xc7 */ + 0x00, 0xc9, 0x00, 0xcb, 0x00, 0xcd, 0xce, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xd0-0xd7 */ + 0xd8, 0x00, 0xda, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */ + 0x00, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0x00, /* 0xe0-0xe7 */ + 0x00, 0xe9, 0x00, 0xeb, 0x00, 0xed, 0xee, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0x00, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xf0-0xf7 */ + 0xf8, 0x00, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0x00, /* 0xf8-0xff */ + /* 0x0100 */ + 0xc0, 0xe0, 0x00, 0x00, 0xa1, 0xb1, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0x00, 0x00, /* 0x08-0x0f */ + 0xd0, 0xf0, 0xaa, 0xba, 0x00, 0x00, 0xcc, 0xec, /* 0x10-0x17 */ + 0xca, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0xab, 0xbb, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0xa5, 0xb5, 0xcf, 0xef, 0x00, 0x00, 0xc7, 0xe7, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd3, 0xf3, /* 0x30-0x37 */ + 0xa2, 0x00, 0x00, 0xa6, 0xb6, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0xf1, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0xbd, 0xbf, 0xd2, 0xf2, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa3, 0xb3, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0xa9, 0xb9, 0x00, 0x00, 0x00, 0x00, 0xac, 0xbc, /* 0x60-0x67 */ + 0xdd, 0xfd, 0xde, 0xfe, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0xd9, 0xf9, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0xbe, 0x00, /* 0x78-0x7f */ +}; +static const unsigned char iso8859_4_page02[32] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0x00, 0xff, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ +}; + +static int +iso8859_4_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x00a0) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0180) + c = iso8859_4_page00[wc-0x00a0]; + else if (wc >= 0x02c0 && wc < 0x02e0) + c = iso8859_4_page02[wc-0x02c0]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/iso8859_5.h b/graf2d/win32gdk/gdk/src/iconv/iso8859_5.h new file mode 100644 index 00000000000..6b836055ac6 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iso8859_5.h @@ -0,0 +1,95 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO-8859-5 + */ + +static const unsigned short iso8859_5_2uni[96] = { + /* 0xa0 */ + 0x00a0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, + 0x0408, 0x0409, 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f, + /* 0xb0 */ + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, + 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, + /* 0xc0 */ + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, + 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, + /* 0xd0 */ + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, + 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, + /* 0xe0 */ + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, + 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, + /* 0xf0 */ + 0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, + 0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x00a7, 0x045e, 0x045f, +}; + +static int +iso8859_5_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0xa0) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) iso8859_5_2uni[c-0xa0]; + return 1; +} + +static const unsigned char iso8859_5_page00[16] = { + 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */ +}; +static const unsigned char iso8859_5_page04[96] = { + 0x00, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x00-0x07 */ + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0x00, 0xae, 0xaf, /* 0x08-0x0f */ + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x10-0x17 */ + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0x18-0x1f */ + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */ + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */ + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */ + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0x38-0x3f */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */ + 0x00, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x50-0x57 */ + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0xfe, 0xff, /* 0x58-0x5f */ +}; + +static int +iso8859_5_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x00a0) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00b0) + c = iso8859_5_page00[wc-0x00a0]; + else if (wc >= 0x0400 && wc < 0x0460) + c = iso8859_5_page04[wc-0x0400]; + else if (wc == 0x2116) + c = 0xf0; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/iso8859_6.h b/graf2d/win32gdk/gdk/src/iconv/iso8859_6.h new file mode 100644 index 00000000000..8d311994093 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iso8859_6.h @@ -0,0 +1,98 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO-8859-6 + */ + +static const unsigned short iso8859_6_2uni[96] = { + /* 0xa0 */ + 0x00a0, 0xfffd, 0xfffd, 0xfffd, 0x00a4, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x060c, 0x00ad, 0xfffd, 0xfffd, + /* 0xb0 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x061b, 0xfffd, 0xfffd, 0xfffd, 0x061f, + /* 0xc0 */ + 0xfffd, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, + 0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, + /* 0xd0 */ + 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, + 0x0638, 0x0639, 0x063a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0xe0 */ + 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, + 0x0648, 0x0649, 0x064a, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f, + /* 0xf0 */ + 0x0650, 0x0651, 0x0652, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, +}; + +static int +iso8859_6_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0xa0) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = iso8859_6_2uni[c-0xa0]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char iso8859_6_page00[16] = { + 0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */ +}; +static const unsigned char iso8859_6_page06[80] = { + 0x00, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xbf, /* 0x18-0x1f */ + 0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */ + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */ + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */ + 0xd8, 0xd9, 0xda, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */ + 0xf0, 0xf1, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ +}; + +static int +iso8859_6_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x00a0) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00b0) + c = iso8859_6_page00[wc-0x00a0]; + else if (wc >= 0x0608 && wc < 0x0658) + c = iso8859_6_page06[wc-0x0608]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/iso8859_7.h b/graf2d/win32gdk/gdk/src/iconv/iso8859_7.h new file mode 100644 index 00000000000..0825ef5cd9e --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iso8859_7.h @@ -0,0 +1,111 @@ +/* + * Copyright (C) 1999-2004 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO-8859-7 + */ + +static const unsigned short iso8859_7_2uni[96] = { + /* 0xa0 */ + 0x00a0, 0x2018, 0x2019, 0x00a3, 0x20ac, 0x20af, 0x00a6, 0x00a7, + 0x00a8, 0x00a9, 0x037a, 0x00ab, 0x00ac, 0x00ad, 0xfffd, 0x2015, + /* 0xb0 */ + 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0384, 0x0385, 0x0386, 0x00b7, + 0x0388, 0x0389, 0x038a, 0x00bb, 0x038c, 0x00bd, 0x038e, 0x038f, + /* 0xc0 */ + 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, + 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, + /* 0xd0 */ + 0x03a0, 0x03a1, 0xfffd, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, + 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af, + /* 0xe0 */ + 0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, + 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, + /* 0xf0 */ + 0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, + 0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0xfffd, +}; + +static int +iso8859_7_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0xa0) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = iso8859_7_2uni[c-0xa0]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char iso8859_7_page00[32] = { + 0xa0, 0x00, 0x00, 0xa3, 0x00, 0x00, 0xa6, 0xa7, /* 0xa0-0xa7 */ + 0xa8, 0xa9, 0x00, 0xab, 0xac, 0xad, 0x00, 0x00, /* 0xa8-0xaf */ + 0xb0, 0xb1, 0xb2, 0xb3, 0x00, 0x00, 0x00, 0xb7, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0xbb, 0x00, 0xbd, 0x00, 0x00, /* 0xb8-0xbf */ +}; +static const unsigned char iso8859_7_page03[88] = { + 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0xb4, 0xb5, 0xb6, 0x00, /* 0x80-0x87 */ + 0xb8, 0xb9, 0xba, 0x00, 0xbc, 0x00, 0xbe, 0xbf, /* 0x88-0x8f */ + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x90-0x97 */ + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x98-0x9f */ + 0xd0, 0xd1, 0x00, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xa0-0xa7 */ + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0xa8-0xaf */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xb0-0xb7 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xb8-0xbf */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xc0-0xc7 */ + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x00, /* 0xc8-0xcf */ +}; +static const unsigned char iso8859_7_page20[16] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, /* 0x10-0x17 */ + 0xa1, 0xa2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ +}; + +static int +iso8859_7_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x00a0) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00c0) + c = iso8859_7_page00[wc-0x00a0]; + else if (wc >= 0x0378 && wc < 0x03d0) + c = iso8859_7_page03[wc-0x0378]; + else if (wc >= 0x2010 && wc < 0x2020) + c = iso8859_7_page20[wc-0x2010]; + else if (wc == 0x20ac) + c = 0xa4; + else if (wc == 0x20af) + c = 0xa5; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/iso8859_8.h b/graf2d/win32gdk/gdk/src/iconv/iso8859_8.h new file mode 100644 index 00000000000..6184846ea13 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iso8859_8.h @@ -0,0 +1,107 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO-8859-8 + */ + +static const unsigned short iso8859_8_2uni[96] = { + /* 0xa0 */ + 0x00a0, 0xfffd, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, + 0x00a8, 0x00a9, 0x00d7, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, + /* 0xb0 */ + 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, + 0x00b8, 0x00b9, 0x00f7, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0xfffd, + /* 0xc0 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0xd0 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2017, + /* 0xe0 */ + 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, + 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, + /* 0xf0 */ + 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, + 0x05e8, 0x05e9, 0x05ea, 0xfffd, 0xfffd, 0x200e, 0x200f, 0xfffd, +}; + +static int +iso8859_8_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c >= 0xa0) { + unsigned short wc = iso8859_8_2uni[c-0xa0]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + else { + *pwc = (ucs4_t) c; + return 1; + } + return RET_ILSEQ; +} + +static const unsigned char iso8859_8_page00[88] = { + 0xa0, 0x00, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0xa0-0xa7 */ + 0xa8, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0xa8-0xaf */ + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */ + 0xb8, 0xb9, 0x00, 0xbb, 0xbc, 0xbd, 0xbe, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, /* 0xf0-0xf7 */ +}; +static const unsigned char iso8859_8_page05[32] = { + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xd0-0xd7 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xd8-0xdf */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xe0-0xe7 */ + 0xf8, 0xf9, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ +}; +static const unsigned char iso8859_8_page20[16] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0xfe, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, /* 0x10-0x17 */ +}; + +static int +iso8859_8_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x00a0) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00f8) + c = iso8859_8_page00[wc-0x00a0]; + else if (wc >= 0x05d0 && wc < 0x05f0) + c = iso8859_8_page05[wc-0x05d0]; + else if (wc >= 0x2008 && wc < 0x2018) + c = iso8859_8_page20[wc-0x2008]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/iso8859_9.h b/graf2d/win32gdk/gdk/src/iconv/iso8859_9.h new file mode 100644 index 00000000000..7dbd37d233c --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/iso8859_9.h @@ -0,0 +1,85 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO-8859-9 + */ + +static const unsigned short iso8859_9_2uni[48] = { + /* 0xd0 */ + 0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, + 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df, + /* 0xe0 */ + 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, + 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, + /* 0xf0 */ + 0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, + 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff, +}; + +static int +iso8859_9_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c >= 0xd0) + *pwc = (ucs4_t) iso8859_9_2uni[c-0xd0]; + else + *pwc = (ucs4_t) c; + return 1; +} + +static const unsigned char iso8859_9_page00[48] = { + 0x00, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xd0-0xd7 */ + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xe0-0xe7 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xe8-0xef */ + 0x00, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xf0-0xf7 */ + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0xff, /* 0xf8-0xff */ +}; +static const unsigned char iso8859_9_page01[72] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0xf0, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0xdd, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xfe, /* 0x58-0x5f */ +}; + +static int +iso8859_9_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x00d0) { + *r = wc; + return 1; + } + else if (wc >= 0x00d0 && wc < 0x0100) + c = iso8859_9_page00[wc-0x00d0]; + else if (wc >= 0x0118 && wc < 0x0160) + c = iso8859_9_page01[wc-0x0118]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/isoir165.h b/graf2d/win32gdk/gdk/src/iconv/isoir165.h new file mode 100644 index 00000000000..4d6e9ffa030 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/isoir165.h @@ -0,0 +1,159 @@ +/* + * Copyright (C) 1999-2001, 2005 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO-IR-165 + */ + +/* + * ISO-IR-165 is an extension of GB 2312, consisting of: + * 1. GB 6345.1-86 corrections: + * Two corrections to GB 2312, at 0x2367 and 0x6F71. + * 2. GB 6345.1-86 additions: + * - 6 new full-width pinyin characters in row 0x28. + * - ISO646-CN in row 0x2A. + * - 32 half-width pinyin characters in row 0x2B. + * 3. GB 8565.2-88 additions: + * - 50 characters in row 0x2D. + * - 92 characters in row 0x2E. + * - 93 characters in row 0x2F. + * - 470 characters in rows 0x7A-0x7E. + * 4. ISO-IR-165 additions: + * - 22 characters in row 0x26. + * - 94 characters in row 0x2C. + * - 44 new characters in row 0x2D. + * - 1 new character in row 0x2F. + * + * The conversion table was created from the following sources: + * Ad 1. The 0x2367 correction is already integrated in the unicode.org + * GB2312.TXT table. The 0x6F71 mapping is the same in the unicode.org + * GB2312.TXT and UNIHAN.TXT table and in Koichi Yasuoka's Uni2GB table, + * so we assume it's correct. + * The unicode.org UNIHAN.TXT table about GB 8565 is not usable: it has + * extraneous code points at rows 0x28, 0x2C, 0x2D. Note also that it does + * not list the 69 non-hanzi in row 0x2F. Moreover, it has the characters + * 0x2F7A-0x2F7D shifted down by one to 0x2F79-0x2F7C. + * Therefore we take the GB8565 and ISO-IR-165 data from Koichi Yasuoka's + * Uni2GB table. + * Ad 1. Yasuoka maps 0x2367 to U+0261 (small script g) and 0x2840 to U+FF47 + * (full-width small normal g). While coherent with ISO-IR's 165.pdf, + * this disagrees with Ken Lunde's book: He says that ISO-IR-165 + * includes the GB6345 correction, i.e. maps 0x2367 to U+FF47 or U+0067 + * and _not_ to U+0261 (small script g). + * To overcome the confusion, we just map both 0x2367 and 0x2840 to + * U+FF47. + * Ad 2. Row 0x28: Add a mapping from 0x283F to U+01F9. + * Row 0x2A: Mapping is well-known, also present in Koichi Yasuoka's + * table. + * Row 0x2B: Typed in by hand from appendix E in Ken Lunde's book. + * When converting from Unicode to ISO-IR-165, prefer the half-width + * range 0x2B{21..40} to the full-width range 0x28{21..40}. + * Ad 3. Rows 0x2D, 0x2E: Both Koichi Yasuoka's Uni2GB table and the UNIHAN.TXT + * data for GB 8565 agree here. + * Row 0x2F: Taken from Koichi Yasuoka's Uni2GB table. + * Rows 0x7A-0x7E: Koichi Yasuoka's Uni2GB table and the UNIHAN.TXT + * data for GB 8565 agree here mostly. Differences: + * 0x7C38 -> U+6F26 or U+527A ? We choose U+6F26. + * 0x7C5A -> U+7A40 or U+6996 ? We choose U+6996. + * Ad 4. Row 0x26: Mapping unknown. + * Rows 0x2C, 0x2D: Both Koichi Yasuoka's Uni2GB table and the UNIHAN.TXT + * data for GB 8565 (!) agree here. + * Row 0x2F: Taken from Koichi Yasuoka's Uni2GB table. + */ + +#include "isoir165ext.h" + +static int +isoir165_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + int ret; + + /* Map full-width pinyin (row 0x28) like half-width pinyin (row 0x2B). */ + if (s[0] == 0x28) { + if (n >= 2) { + unsigned char c2 = s[1]; + if (c2 >= 0x21 && c2 <= 0x40) { + unsigned char buf[2]; + buf[0] = 0x2b; + buf[1] = c2; + ret = isoir165ext_mbtowc(conv,pwc,buf,2); + if (ret != RET_ILSEQ) + return ret; + } + } + } + /* Try the GB2312 -> Unicode table. */ + ret = gb2312_mbtowc(conv,pwc,s,n); + if (ret != RET_ILSEQ) + return ret; + /* Row 0x2A is GB_1988-80. */ + if (s[0] == 0x2a) { + if (n >= 2) { + unsigned char c2 = s[1]; + if (c2 >= 0x21 && c2 < 0x7f) { + int ret = iso646_cn_mbtowc(conv,pwc,s+1,1); + if (ret != 1) abort(); + return 2; + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + /* Try the ISO-IR-165 extensions -> Unicode table. */ + ret = isoir165ext_mbtowc(conv,pwc,s,n); + return ret; +} + +static int +isoir165_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char buf[2]; + int ret; + + /* Try the Unicode -> GB2312 table. */ + ret = gb2312_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (!(buf[0] == 0x28 && buf[1] >= 0x21 && buf[1] <= 0x40)) { + if (n >= 2) { + r[0] = buf[0]; + r[1] = buf[1]; + return 2; + } + return RET_TOOSMALL; + } + } + /* Row 0x2A is GB_1988-80. */ + ret = iso646_cn_wctomb(conv,buf,wc,1); + if (ret != RET_ILUNI) { + if (ret != 1) abort(); + if (buf[0] >= 0x21 && buf[0] < 0x7f) { + if (n >= 2) { + r[0] = 0x2a; + r[1] = buf[0]; + return 2; + } + return RET_TOOSMALL; + } + } + /* Try the Unicode -> ISO-IR-165 extensions table. */ + ret = isoir165ext_wctomb(conv,r,wc,n); + return ret; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/isoir165ext.h b/graf2d/win32gdk/gdk/src/iconv/isoir165ext.h new file mode 100644 index 00000000000..0bc811ac301 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/isoir165ext.h @@ -0,0 +1,800 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * ISO-IR-165 extensions + */ + +static const unsigned short isoir165ext_2uni_page2b[470] = { + /* 0x2b */ + 0x1fb1, 0x03ac, 0x1fb0, 0x1f70, 0x0113, 0x00e9, 0x011b, 0x00e8, + 0x012b, 0x00ed, 0x01d0, 0x00ec, 0x014d, 0x00f3, 0x01d2, 0x00f2, + 0x016b, 0x00fa, 0x01d4, 0x00f9, 0x01d6, 0x01d8, 0x01da, 0x01dc, + 0x00fc, 0x00ea, 0x03b1, 0x1e3f, 0x0144, 0x0148, 0x01f9, 0xff47, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x2c */ + 0x53be, 0x4eb8, 0x4f3e, 0x501e, 0x50c7, 0x9118, 0x6c98, 0x6cdc, + 0x6cc3, 0x6e5d, 0x6ea6, 0x6eeb, 0x6fa5, 0x6165, 0x5ea4, 0x9618, + 0x5848, 0x8453, 0x7cf5, 0x5f07, 0x6294, 0x647d, 0x725a, 0x5574, + 0x55a4, 0x5640, 0x5684, 0x5d1f, 0x72c9, 0x998c, 0x59de, 0x59fd, + 0x5a5e, 0x7ebb, 0x7ee4, 0x7ef9, 0x9a99, 0x71cf, 0x6245, 0x624a, + 0x797c, 0x739a, 0x742b, 0x7488, 0x74aa, 0x74d8, 0x6767, 0x6ab5, + 0x71ca, 0x6ba3, 0x8f80, 0x8f92, 0x8d5f, 0x9b36, 0x72a8, 0x87a3, + 0x8152, 0x6b38, 0x98d0, 0x8897, 0x88af, 0x8955, 0x770a, 0x94da, + 0x955a, 0x9560, 0x9e24, 0x9e40, 0x9e50, 0x9e5d, 0x9e60, 0x870e, + 0x7b5c, 0x7fd9, 0x7fef, 0x7e44, 0x8e45, 0x8e36, 0x8e62, 0x8e5c, + 0x9778, 0x9b46, 0x9f2b, 0x9f41, 0x7526, 0x4e26, 0x8bac, 0x8129, + 0x5091, 0x50cd, 0x52b9, 0x89d4, 0x5557, 0x94c7, + /* 0x2d */ + 0x9496, 0x9498, 0x94cf, 0x94d3, 0x94d4, 0x94e6, 0x9533, 0x951c, + 0x9520, 0x9527, 0x953d, 0x9543, 0x956e, 0x9574, 0x9c80, 0x9c84, + 0x9c8a, 0x9c93, 0x9c96, 0x9c97, 0x9c98, 0x9c99, 0x9cbf, 0x9cc0, + 0x9cc1, 0x9cd2, 0x9cdb, 0x9ce0, 0x9ce3, 0x9770, 0x977a, 0x97a1, + 0x97ae, 0x97a8, 0x9964, 0x9966, 0x9978, 0x9979, 0x997b, 0x997e, + 0x9982, 0x9983, 0x998e, 0x9b10, 0x9b18, 0x65a2, 0x9e80, 0x911c, + 0x9e91, 0x9f12, 0x52f3, 0x6c96, 0x6d44, 0x6e1b, 0x6e67, 0x6f82, + 0x6fec, 0x60ae, 0x5ec8, 0x8ffa, 0x577f, 0x5586, 0x849e, 0x8460, + 0x5c05, 0x5e0b, 0x5d11, 0x5d19, 0x5dd6, 0x59b3, 0x5aae, 0x9a94, + 0x658f, 0x709e, 0x7551, 0x71ff, 0x691d, 0x6a11, 0x68bf, 0x6607, + 0x668e, 0x6673, 0x6c25, 0x7652, 0x778b, 0x76ea, 0x9895, 0x8780, + 0x882d, 0x7b87, 0x7c50, 0x8ead, 0x9575, 0x65c2, + /* 0x2e */ + 0x5390, 0x79b8, 0x4f15, 0x4f21, 0x4f3b, 0x4fa2, 0x50a4, 0x5092, + 0x530a, 0x51c3, 0x51a8, 0x8d20, 0x5787, 0x579a, 0x5795, 0x57eb, + 0x585d, 0x585a, 0x5871, 0x5895, 0x5c30, 0x5f0c, 0x5f0d, 0x5f0e, + 0x5c72, 0x5cc7, 0x5fac, 0x5f68, 0x5f5f, 0x5a12, 0x5a65, 0x5a84, + 0x5ac4, 0x7394, 0x73ea, 0x73ee, 0x7437, 0x7415, 0x7454, 0x6799, + 0x686c, 0x68f8, 0x69fe, 0x72e2, 0x6667, 0x8d52, 0x89c3, 0x89cd, + 0x6427, 0x6477, 0x6c1d, 0x813f, 0x6b54, 0x98d6, 0x707a, 0x70f1, + 0x7120, 0x6153, 0x6c87, 0x6dad, 0x6e81, 0x6eb5, 0x6f94, 0x6f9b, + 0x793d, 0x794e, 0x7806, 0x7859, 0x7894, 0x78dc, 0x7903, 0x7a16, + 0x7a5e, 0x75e0, 0x7adc, 0x7676, 0x9892, 0x7bf2, 0x7c30, 0x7c5d, + 0x9c9d, 0x7cac, 0x8278, 0x83d1, 0x84ea, 0x7fc0, 0x7f1e, 0x8e21, + 0x8e53, 0x9754, 0x9f0c, 0x94fb, 0xfffd, 0xfffd, + /* 0x2f */ + 0x32c0, 0x32c1, 0x32c2, 0x32c3, 0x32c4, 0x32c5, 0x32c6, 0x32c7, + 0x32c8, 0x32c9, 0x32ca, 0x32cb, 0x33e0, 0x33e1, 0x33e2, 0x33e3, + 0x33e4, 0x33e5, 0x33e6, 0x33e7, 0x33e8, 0x33e9, 0x33ea, 0x33eb, + 0x33ec, 0x33ed, 0x33ee, 0x33ef, 0x33f0, 0x33f1, 0x33f2, 0x33f3, + 0x33f4, 0x33f5, 0x33f6, 0x33f7, 0x33f8, 0x33f9, 0x33fa, 0x33fb, + 0x33fc, 0x33fd, 0x33fe, 0x3358, 0x3359, 0x335a, 0x335b, 0x335c, + 0x335d, 0x335e, 0x335f, 0x3360, 0x3361, 0x3362, 0x3363, 0x3364, + 0x3365, 0x3366, 0x3367, 0x3368, 0x3369, 0x336a, 0x336b, 0x336c, + 0x336d, 0x336e, 0x336f, 0x3370, 0x3037, 0x90a8, 0x965e, 0x5842, + 0x5803, 0x6c3e, 0x6d29, 0x6ee7, 0x8534, 0x84c6, 0x633c, 0x5d05, + 0x7f10, 0x7eec, 0x7287, 0x712e, 0x8218, 0x8216, 0x756c, 0x75f3, + 0x9b25, 0x8980, 0x7ca6, 0x4e85, 0x5570, 0x91c6, +}; +static const unsigned short isoir165ext_2uni_page7a[470] = { + /* 0x7a */ + 0x4e0f, 0x673f, 0x4e42, 0x752a, 0x592c, 0x9ee1, 0x8652, 0x531c, + 0x5187, 0x518f, 0x50f0, 0x4f0b, 0x4f23, 0x4f03, 0x4f61, 0x4f7a, + 0x4f6b, 0x4feb, 0x4ff5, 0x5034, 0x5022, 0x4ff6, 0x5072, 0x4eb6, + 0x51ae, 0x5910, 0x6bda, 0x522c, 0x5232, 0x4fb4, 0x5298, 0x52bb, + 0x52bc, 0x52cd, 0x52da, 0x52f7, 0x53c6, 0x53c7, 0x5770, 0x576c, + 0x57b1, 0x579f, 0x579e, 0x57be, 0x57cc, 0x580e, 0x580c, 0x57f5, + 0x5809, 0x583c, 0x5843, 0x5845, 0x5846, 0x583d, 0x5853, 0x5888, + 0x5884, 0x58f8, 0x56ad, 0x5940, 0x5953, 0x596d, 0x5c2a, 0x54a5, + 0x551d, 0x5536, 0x556f, 0x554d, 0x569a, 0x569c, 0x56f7, 0x5710, + 0x5719, 0x5e17, 0x5e21, 0x5e28, 0x5e6a, 0x5c74, 0x5c7c, 0x5ca8, + 0x5c9e, 0x5cc3, 0x5cd3, 0x5ce3, 0x5ce7, 0x5cff, 0x5d04, 0x5d00, + 0x5d1a, 0x5d0c, 0x5d4e, 0x5d5a, 0x5d85, 0x5d93, + /* 0x7b */ + 0x5d92, 0x5dc2, 0x5dc9, 0x8852, 0x5faf, 0x5906, 0x65a8, 0x7241, + 0x7242, 0x5ebc, 0x5ecb, 0x95ec, 0x95ff, 0x8a1a, 0x9607, 0x9613, + 0x961b, 0x5bac, 0x5ba7, 0x5c5d, 0x5f22, 0x59ee, 0x5a7c, 0x5a96, + 0x5a73, 0x5a9e, 0x5aad, 0x5ada, 0x5aea, 0x5b1b, 0x5b56, 0x9a72, + 0x9a83, 0x9a89, 0x9a8d, 0x9a8e, 0x9a95, 0x9aa6, 0x7395, 0x7399, + 0x73a0, 0x73b1, 0x73a5, 0x73a6, 0x73d6, 0x73f0, 0x73fd, 0x73e3, + 0x7424, 0x740e, 0x7407, 0x73f6, 0x73fa, 0x7432, 0x742f, 0x7444, + 0x7442, 0x7471, 0x7478, 0x7462, 0x7486, 0x749f, 0x74a0, 0x7498, + 0x74b2, 0x97e8, 0x6745, 0x679f, 0x677b, 0x67c8, 0x67ee, 0x684b, + 0x68a0, 0x6812, 0x681f, 0x686a, 0x68bc, 0x68fb, 0x686f, 0x68b1, + 0x68c1, 0x68eb, 0x6913, 0x68d1, 0x6911, 0x68d3, 0x68ec, 0x692b, + 0x68e8, 0x69be, 0x6969, 0x6940, 0x696f, 0x695f, + /* 0x7c */ + 0x6962, 0x6935, 0x6959, 0x69bc, 0x69c5, 0x69da, 0x69dc, 0x6a0b, + 0x69e5, 0x6a66, 0x6a96, 0x6ab4, 0x72dd, 0x5cf1, 0x7314, 0x733a, + 0x6b95, 0x5f67, 0x80fe, 0x74fb, 0x7503, 0x655c, 0x6569, 0x6f26, + 0x65f8, 0x65fb, 0x6609, 0x663d, 0x6662, 0x665e, 0x666c, 0x668d, + 0x668b, 0x8d51, 0x8d57, 0x7263, 0x7277, 0x63b1, 0x6261, 0x6260, + 0x6283, 0x62e4, 0x62c3, 0x631c, 0x6326, 0x63af, 0x63fe, 0x6422, + 0x6412, 0x64ed, 0x6713, 0x6718, 0x8158, 0x81d1, 0x98cf, 0x98d4, + 0x98d7, 0x6996, 0x7098, 0x70dc, 0x70fa, 0x710c, 0x711c, 0x71cb, + 0x721f, 0x70dd, 0x659d, 0x6246, 0x6017, 0x60c7, 0x60d3, 0x60b0, + 0x60d9, 0x6114, 0x6c3f, 0x6c67, 0x6c84, 0x6c9a, 0x6c6d, 0x6ca8, + 0x6cc6, 0x6cb5, 0x6d49, 0x6d38, 0x6d11, 0x6d3a, 0x6d28, 0x6d50, + 0x6d34, 0x6d55, 0x6d61, 0x6da2, 0x6d65, 0x6d5b, + /* 0x7d */ + 0x6d64, 0x6db4, 0x6e9a, 0x6e5c, 0x6e72, 0x6ea0, 0x6e87, 0x6e8e, + 0x6ec9, 0x6ec3, 0x6f37, 0x6ed8, 0x6eea, 0x6f56, 0x6f75, 0x6f5f, + 0x6fb4, 0x6fbc, 0x7014, 0x700d, 0x700c, 0x703c, 0x7943, 0x7947, + 0x794a, 0x7950, 0x7972, 0x7998, 0x79a0, 0x79a4, 0x77fc, 0x77fb, + 0x7822, 0x7820, 0x7841, 0x785a, 0x7875, 0x78b6, 0x78e1, 0x7933, + 0x8a5f, 0x76fb, 0x771b, 0x772c, 0x7786, 0x77ab, 0x77ad, 0x7564, + 0x756f, 0x6983, 0x7f7d, 0x76dd, 0x76e6, 0x76ec, 0x7521, 0x79fe, + 0x7a44, 0x767f, 0x769e, 0x9e27, 0x9e2e, 0x9e30, 0x9e34, 0x9e4d, + 0x9e52, 0x9e53, 0x9e54, 0x9e56, 0x9e59, 0x9e61, 0x9e62, 0x9e65, + 0x9e6f, 0x9e74, 0x75a2, 0x7604, 0x7608, 0x761d, 0x7ad1, 0x7a85, + 0x7a8e, 0x7aa3, 0x7ab8, 0x7abe, 0x77de, 0x8030, 0x988b, 0x988e, + 0x9899, 0x98a3, 0x8683, 0x8705, 0x8758, 0x87cf, + /* 0x7e */ + 0x87e2, 0x880b, 0x80d4, 0x7f4d, 0x7b4a, 0x7b4e, 0x7b7f, 0x7b93, + 0x7bef, 0x7c09, 0x7bf0, 0x7c15, 0x7c03, 0x7c20, 0x823a, 0x8886, + 0x88aa, 0x88c0, 0x88c8, 0x8926, 0x8976, 0x7f91, 0x8283, 0x82bc, + 0x82a7, 0x8313, 0x82fe, 0x8300, 0x835d, 0x8345, 0x8344, 0x831d, + 0x83a6, 0x8399, 0x83fe, 0x841a, 0x83fc, 0x8429, 0x8439, 0x84a8, + 0x84cf, 0x849f, 0x84c2, 0x84f7, 0x8570, 0x85b3, 0x85a2, 0x96d8, + 0x85b8, 0x85e0, 0x7fda, 0x7eae, 0x7eb4, 0x7ebc, 0x7ed6, 0x7f0a, + 0x5b43, 0x8d6a, 0x5245, 0x8c68, 0x8c6e, 0x8c6d, 0x8e16, 0x8e26, + 0x8e27, 0x8e50, 0x9098, 0x90a0, 0x90bd, 0x90c8, 0x90c3, 0x90da, + 0x90ff, 0x911a, 0x910c, 0x9120, 0x9142, 0x8fb5, 0x90e4, 0x8c86, + 0x89f1, 0x8bb1, 0x8bbb, 0x8bc7, 0x8bea, 0x8c09, 0x8c1e, 0x9702, + 0x68d0, 0x7306, 0x9f81, 0x9f82, 0x92c6, 0x9491, +}; + +static int +isoir165ext_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 >= 0x2b && c1 <= 0x2f) || (c1 >= 0x7a && c1 <= 0x7e)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if (c2 >= 0x21 && c2 < 0x7f) { + unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); + unsigned short wc = 0xfffd; + if (i < 8366) { + if (i < 1410) + wc = isoir165ext_2uni_page2b[i-940]; + } else { + if (i < 8836) + wc = isoir165ext_2uni_page7a[i-8366]; + } + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + +static const unsigned short isoir165ext_2charset[876] = { + 0x2b28, 0x2b26, 0x2b3a, 0x2b2c, 0x2b2a, 0x2b30, 0x2b2e, 0x2b34, + 0x2b32, 0x2b39, 0x2b25, 0x2b27, 0x2b29, 0x2b3d, 0x2b3e, 0x2b2d, + 0x2b31, 0x2b2b, 0x2b2f, 0x2b33, 0x2b35, 0x2b36, 0x2b37, 0x2b38, + 0x2b3f, 0x2b22, 0x2b3b, 0x2b3c, 0x2b24, 0x2b23, 0x2b21, 0x2f65, + 0x2f21, 0x2f22, 0x2f23, 0x2f24, 0x2f25, 0x2f26, 0x2f27, 0x2f28, + 0x2f29, 0x2f2a, 0x2f2b, 0x2f2c, 0x2f4c, 0x2f4d, 0x2f4e, 0x2f4f, + 0x2f50, 0x2f51, 0x2f52, 0x2f53, 0x2f54, 0x2f55, 0x2f56, 0x2f57, + 0x2f58, 0x2f59, 0x2f5a, 0x2f5b, 0x2f5c, 0x2f5d, 0x2f5e, 0x2f5f, + 0x2f60, 0x2f61, 0x2f62, 0x2f63, 0x2f64, 0x2f2d, 0x2f2e, 0x2f2f, + 0x2f30, 0x2f31, 0x2f32, 0x2f33, 0x2f34, 0x2f35, 0x2f36, 0x2f37, + 0x2f38, 0x2f39, 0x2f3a, 0x2f3b, 0x2f3c, 0x2f3d, 0x2f3e, 0x2f3f, + 0x2f40, 0x2f41, 0x2f42, 0x2f43, 0x2f44, 0x2f45, 0x2f46, 0x2f47, + 0x2f48, 0x2f49, 0x2f4a, 0x2f4b, 0x7a21, 0x2c76, 0x7a23, 0x2f7c, + 0x7a38, 0x2c22, 0x7a2e, 0x7a2c, 0x2e23, 0x2e24, 0x7a2d, 0x2e25, + 0x2c23, 0x7a2f, 0x7a31, 0x7a30, 0x2e26, 0x7a3e, 0x7a32, 0x7a33, + 0x7a36, 0x2c24, 0x7a35, 0x7a34, 0x7a37, 0x2c79, 0x2e28, 0x2e27, + 0x2c25, 0x2c7a, 0x7a2b, 0x7a29, 0x7a2a, 0x2e2b, 0x7a39, 0x2e2a, + 0x7a3c, 0x7a3d, 0x7e5b, 0x7a3f, 0x2c7b, 0x7a40, 0x7a41, 0x7a42, + 0x7a43, 0x2d53, 0x7a44, 0x2e29, 0x7a28, 0x2e21, 0x2c21, 0x7a45, + 0x7a46, 0x7a60, 0x7a61, 0x7a62, 0x7a64, 0x2c7d, 0x7a63, 0x2f7d, + 0x2c38, 0x2d5e, 0x2c39, 0x2c3a, 0x2c3b, 0x7a65, 0x7a66, 0x7a5b, + 0x7a67, 0x7a68, 0x7a69, 0x7a48, 0x7a47, 0x2d5d, 0x2e2d, 0x2e2f, + 0x2e2e, 0x7a4b, 0x7a4a, 0x7a49, 0x7a4c, 0x7a4d, 0x2e30, 0x7a50, + 0x2f69, 0x7a51, 0x7a4f, 0x7a4e, 0x7a52, 0x7a56, 0x2f68, 0x7a53, + 0x7a54, 0x7a55, 0x2c31, 0x7a57, 0x2e32, 0x2e31, 0x2e33, 0x7a59, + 0x7a58, 0x2e34, 0x7a5a, 0x7b26, 0x7a3a, 0x7a25, 0x7a5c, 0x7a5d, + 0x7a5e, 0x2d66, 0x2c3f, 0x7b36, 0x2c40, 0x2e3e, 0x2c41, 0x2e3f, + 0x7b39, 0x7b37, 0x2e40, 0x7b38, 0x7b3a, 0x7b3b, 0x2d67, 0x2e41, + 0x7b3c, 0x7b3d, 0x7b3e, 0x7e59, 0x7b3f, 0x7b33, 0x7b32, 0x2d61, + 0x7a5f, 0x2e35, 0x7b34, 0x2e39, 0x7a6e, 0x7a6f, 0x7a71, 0x7a70, + 0x7a72, 0x2e3a, 0x7a73, 0x7a74, 0x7a75, 0x7c2e, 0x7a76, 0x7a78, + 0x7a77, 0x2f70, 0x7a7a, 0x2d63, 0x2d64, 0x7a79, 0x2c3c, 0x7a7b, + 0x7a7c, 0x7a7d, 0x7b21, 0x7a7e, 0x7b22, 0x7b23, 0x2d65, 0x2d62, + 0x7a6a, 0x7a6b, 0x7a6c, 0x7a6d, 0x2c2f, 0x7b2a, 0x2d5b, 0x7b2b, + 0x2c34, 0x2e36, 0x2e37, 0x2e38, 0x7b35, 0x2e3d, 0x7c32, 0x2e3c, + 0x2e3b, 0x7b25, 0x7c65, 0x2d5a, 0x7c68, 0x7c66, 0x7c67, 0x7c69, + 0x7c6a, 0x2e5a, 0x2c2e, 0x2c47, 0x7c64, 0x2c48, 0x7c48, 0x7c47, + 0x7c49, 0x2c35, 0x7c4b, 0x7c4a, 0x7c4c, 0x7c4d, 0x2f6f, 0x7c4e, + 0x7c46, 0x7c4f, 0x7c51, 0x7c50, 0x2e51, 0x2e52, 0x2c36, 0x7c52, + 0x7c36, 0x7c37, 0x2d69, 0x7c63, 0x2d4e, 0x7b27, 0x2d7e, 0x7c39, + 0x7c3a, 0x2d70, 0x7c3b, 0x7c3c, 0x7c3e, 0x7c3d, 0x2e4d, 0x7c3f, + 0x2d72, 0x7c41, 0x7c40, 0x2d71, 0x7c53, 0x7c54, 0x7a22, 0x7b63, + 0x2c4f, 0x7b65, 0x2e48, 0x7b64, 0x7b66, 0x7b67, 0x7b6a, 0x7b6b, + 0x7b68, 0x7b6c, 0x2e49, 0x7b6f, 0x7b69, 0x7b70, 0x7b6d, 0x2d6f, + 0x7b71, 0x7e79, 0x7b74, 0x7b76, 0x7b79, 0x7b72, 0x7b77, 0x2e4a, + 0x7b6e, 0x7b75, 0x7b73, 0x2d6d, 0x7b78, 0x7c22, 0x7b7c, 0x7c23, + 0x7b7e, 0x7c21, 0x7b7b, 0x7b7d, 0x7d52, 0x7c5a, 0x7c24, 0x7b7a, + 0x7c25, 0x7c26, 0x7c27, 0x7c29, 0x2e4b, 0x7c28, 0x2d6e, 0x7c2a, + 0x7c2b, 0x7c2c, 0x2c50, 0x2c5a, 0x2e55, 0x7c31, 0x2c52, 0x7a3b, + 0x2e53, 0x2d73, 0x2f6a, 0x7c6b, 0x7c6c, 0x7c6f, 0x7c6d, 0x2e5b, + 0x2d54, 0x2c27, 0x7c6e, 0x7c70, 0x7c72, 0x2c29, 0x7c71, 0x2c28, + 0x7c75, 0x7c77, 0x2f6b, 0x7c79, 0x7c74, 0x7c76, 0x2d55, 0x7c73, + 0x7c78, 0x7c7a, 0x7c7e, 0x7c7b, 0x7d21, 0x7c7d, 0x7c7c, 0x2e5c, + 0x7d22, 0x2d56, 0x7d24, 0x2c2a, 0x2d57, 0x7d25, 0x2e5d, 0x7d27, + 0x7d28, 0x7d23, 0x7d26, 0x2c2b, 0x2e5e, 0x7d2a, 0x7d29, 0x7d2c, + 0x2f6c, 0x7d2d, 0x2c2c, 0x7c38, 0x7d2b, 0x7d2e, 0x7d30, 0x7d2f, + 0x2d58, 0x2e5f, 0x2e60, 0x2c2d, 0x7d31, 0x7d32, 0x2d59, 0x7d35, + 0x7d34, 0x7d33, 0x7d36, 0x2e57, 0x7c5b, 0x2d6a, 0x7c5c, 0x7c62, + 0x2e58, 0x7c5d, 0x7c5e, 0x7c5f, 0x2e59, 0x2f74, 0x2c51, 0x7c60, + 0x2c46, 0x2d6c, 0x7c61, 0x7b28, 0x7b29, 0x2c37, 0x7c44, 0x7c45, + 0x2f73, 0x2c57, 0x2c3d, 0x7c2d, 0x2e4c, 0x7e7a, 0x7c2f, 0x7c30, + 0x2e42, 0x7b47, 0x7b48, 0x2c4a, 0x7b49, 0x7b4b, 0x7b4c, 0x7b4a, + 0x7b4d, 0x7b50, 0x2e43, 0x2e44, 0x7b4e, 0x7b54, 0x7b55, 0x7b4f, + 0x7b53, 0x7b52, 0x2e46, 0x7b51, 0x2c4b, 0x7b57, 0x7b56, 0x2e45, + 0x7b59, 0x7b58, 0x2e47, 0x7b5c, 0x7b5a, 0x7b5b, 0x7b5d, 0x2c4c, + 0x7b60, 0x7b5e, 0x7b5f, 0x2c4d, 0x7b61, 0x2c4e, 0x7c34, 0x7c35, + 0x7d57, 0x2c75, 0x7a24, 0x2d6b, 0x7d50, 0x2f77, 0x7d51, 0x7d6b, + 0x2e6a, 0x2f78, 0x7d6c, 0x7d6d, 0x7d6e, 0x2d74, 0x2e6c, 0x7d5a, + 0x7d5b, 0x7d54, 0x7d55, 0x2d76, 0x7d56, 0x7d4a, 0x2c5f, 0x7d4b, + 0x7d4c, 0x7d4d, 0x2d75, 0x7d4e, 0x7d4f, 0x7d75, 0x7d40, 0x7d3f, + 0x2e63, 0x7d42, 0x7d41, 0x7d43, 0x2e64, 0x7d44, 0x7d45, 0x2e65, + 0x7d46, 0x2e66, 0x7d47, 0x2e67, 0x7d48, 0x2e61, 0x7d37, 0x7d38, + 0x7d39, 0x2e62, 0x7d3a, 0x7d3b, 0x2c49, 0x7d3c, 0x7d3d, 0x7d3e, + 0x2e22, 0x7d58, 0x2e68, 0x7d59, 0x2e69, 0x7d70, 0x7d71, 0x7d72, + 0x7d73, 0x7d74, 0x7d6f, 0x2e6b, 0x7e25, 0x7e26, 0x2c69, 0x7e27, + 0x2d7a, 0x7e28, 0x7e29, 0x7e2b, 0x2e6e, 0x7e2d, 0x7e2a, 0x7e2c, + 0x7e2e, 0x2e6f, 0x2d7b, 0x2e70, 0x2f7b, 0x2e72, 0x2c33, 0x2c6c, + 0x7e54, 0x7e55, 0x2c42, 0x7e56, 0x7e57, 0x2c43, 0x2f72, 0x2c44, + 0x7e58, 0x2f71, 0x2e77, 0x7e24, 0x7d53, 0x7e36, 0x2e76, 0x2c6a, + 0x7e53, 0x2c6b, 0x7d76, 0x7e23, 0x7c33, 0x2c78, 0x2e54, 0x2c59, + 0x7c55, 0x7c56, 0x2f76, 0x2f75, 0x7e2f, 0x2e73, 0x7e37, 0x7e39, + 0x7e38, 0x7e3b, 0x7e3c, 0x7e3a, 0x7e40, 0x7e3f, 0x7e3e, 0x7e3d, + 0x7e42, 0x7e41, 0x2e74, 0x7e45, 0x7e43, 0x7e44, 0x7e46, 0x7e47, + 0x2c32, 0x2d60, 0x2d5f, 0x7e4a, 0x7e48, 0x7e4b, 0x2f6e, 0x7e49, + 0x2e75, 0x7e4c, 0x2f6d, 0x7e4d, 0x7e4f, 0x7e4e, 0x7e51, 0x7e52, + 0x7a27, 0x7d7b, 0x7d7c, 0x2c68, 0x7d7d, 0x2d78, 0x2c58, 0x7d7e, + 0x7e21, 0x7e22, 0x2d79, 0x7b24, 0x7e30, 0x2c5c, 0x7e31, 0x2c5d, + 0x7e32, 0x7e33, 0x7e34, 0x2c5e, 0x7e35, 0x2f7a, 0x2e4f, 0x2e50, + 0x2c7c, 0x7e71, 0x7b2e, 0x7d49, 0x2c77, 0x7e72, 0x7e73, 0x7e74, + 0x7e75, 0x7e76, 0x7e77, 0x7e5c, 0x7e5e, 0x7e5d, 0x7e70, 0x2e2c, + 0x7c42, 0x2e4e, 0x7c43, 0x2c55, 0x7e5a, 0x7e5f, 0x2e78, 0x7e60, + 0x7e61, 0x2c6e, 0x2c6d, 0x7e62, 0x2e79, 0x2c70, 0x2c6f, 0x2d7c, + 0x2c53, 0x2c54, 0x7e6e, 0x2d5c, 0x7e63, 0x7e64, 0x2f66, 0x7e65, + 0x7e67, 0x7e66, 0x7e68, 0x7e6f, 0x7e69, 0x7e6b, 0x2c26, 0x7e6a, + 0x2d50, 0x7e6c, 0x7e6d, 0x2f7e, 0x7e7d, 0x7e7e, 0x2d21, 0x2d22, + 0x2c7e, 0x2d23, 0x2d24, 0x2d25, 0x2c60, 0x2d26, 0x2e7c, 0x2d28, + 0x2d29, 0x2d2a, 0x2d27, 0x2d2b, 0x2d2c, 0x2c61, 0x2c62, 0x2d2d, + 0x2d2e, 0x2d7d, 0x7b2c, 0x7b2d, 0x7b2f, 0x7b30, 0x2c30, 0x7b31, + 0x2f67, 0x7e50, 0x7e78, 0x2e7a, 0x2d3e, 0x2c71, 0x2d3f, 0x2d40, + 0x2d42, 0x2d41, 0x7b62, 0x7d77, 0x7d78, 0x2e6d, 0x2d77, 0x7d79, + 0x7d7a, 0x7c57, 0x2c5b, 0x7c58, 0x2e56, 0x7c59, 0x2d43, 0x2d44, + 0x2d45, 0x2d46, 0x2d47, 0x2d48, 0x2d49, 0x2d4a, 0x2c3e, 0x2d4b, + 0x7b40, 0x7b41, 0x7b42, 0x7b43, 0x7b44, 0x2d68, 0x7b45, 0x2c45, + 0x7b46, 0x2d4c, 0x2d4d, 0x2f79, 0x2c56, 0x2c72, 0x2d2f, 0x2d30, + 0x2d31, 0x2d32, 0x2d33, 0x2d34, 0x2d35, 0x2d36, 0x2e71, 0x2d37, + 0x2d38, 0x2d39, 0x2d3a, 0x2d3b, 0x2d3c, 0x2d3d, 0x2c63, 0x7d5c, + 0x7d5d, 0x7d5e, 0x7d5f, 0x2c64, 0x7d60, 0x2c65, 0x7d61, 0x7d62, + 0x7d63, 0x7d64, 0x7d65, 0x2c66, 0x2c67, 0x7d66, 0x7d67, 0x7d68, + 0x7d69, 0x7d6a, 0x2d4f, 0x2d51, 0x7a26, 0x2e7b, 0x2d52, 0x2c73, + 0x2c74, 0x7e7b, 0x7e7c, 0x2b40, +}; + +static const Summary16 isoir165ext_uni2indx_page00[32] = { + /* 0x0000 */ + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x3700 }, { 5, 0x160c }, + /* 0x0100 */ + { 10, 0x0000 }, { 10, 0x0808 }, { 12, 0x0800 }, { 13, 0x0000 }, + { 13, 0x2110 }, { 16, 0x0000 }, { 16, 0x0800 }, { 17, 0x0000 }, + { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0000 }, + { 17, 0x0000 }, { 17, 0x1555 }, { 24, 0x0000 }, { 24, 0x0200 }, +}; +static const Summary16 isoir165ext_uni2indx_page03[12] = { + /* 0x0300 */ + { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, + { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, + { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x1000 }, { 26, 0x0002 }, +}; +static const Summary16 isoir165ext_uni2indx_page1e[28] = { + /* 0x1e00 */ + { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x8000 }, + { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, + { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, + { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, + /* 0x1f00 */ + { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, + { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0001 }, + { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0003 }, +}; +static const Summary16 isoir165ext_uni2indx_page30[4] = { + /* 0x3000 */ + { 31, 0x0000 }, { 31, 0x0000 }, { 31, 0x0000 }, { 31, 0x0080 }, +}; +static const Summary16 isoir165ext_uni2indx_page32[32] = { + /* 0x3200 */ + { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 }, + { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 }, + { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 }, + { 32, 0x0fff }, { 44, 0x0000 }, { 44, 0x0000 }, { 44, 0x0000 }, + /* 0x3300 */ + { 44, 0x0000 }, { 44, 0x0000 }, { 44, 0x0000 }, { 44, 0x0000 }, + { 44, 0x0000 }, { 44, 0xff00 }, { 52, 0xffff }, { 68, 0x0001 }, + { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0000 }, + { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0xffff }, { 85, 0x7fff }, +}; +static const Summary16 isoir165ext_uni2indx_page4e[752] = { + /* 0x4e00 */ + { 100, 0x8000 }, { 101, 0x0000 }, { 101, 0x0040 }, { 102, 0x0000 }, + { 102, 0x0004 }, { 103, 0x0000 }, { 103, 0x0000 }, { 103, 0x0000 }, + { 103, 0x0020 }, { 104, 0x0000 }, { 104, 0x0000 }, { 104, 0x0140 }, + { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x0000 }, + /* 0x4f00 */ + { 106, 0x0808 }, { 108, 0x0020 }, { 109, 0x000a }, { 111, 0x4800 }, + { 113, 0x0000 }, { 113, 0x0000 }, { 113, 0x0802 }, { 115, 0x0400 }, + { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0004 }, { 117, 0x0010 }, + { 118, 0x0000 }, { 118, 0x0000 }, { 118, 0x0800 }, { 119, 0x0060 }, + /* 0x5000 */ + { 121, 0x0000 }, { 121, 0x4000 }, { 122, 0x0004 }, { 123, 0x0010 }, + { 124, 0x0000 }, { 124, 0x0000 }, { 124, 0x0000 }, { 124, 0x0004 }, + { 125, 0x0000 }, { 125, 0x0006 }, { 127, 0x0010 }, { 128, 0x0000 }, + { 128, 0x2080 }, { 130, 0x0000 }, { 130, 0x0000 }, { 130, 0x0001 }, + /* 0x5100 */ + { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 }, + { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 }, + { 131, 0x8080 }, { 133, 0x0000 }, { 133, 0x4100 }, { 135, 0x0000 }, + { 135, 0x0008 }, { 136, 0x0000 }, { 136, 0x0000 }, { 136, 0x0000 }, + /* 0x5200 */ + { 136, 0x0000 }, { 136, 0x0000 }, { 136, 0x1000 }, { 137, 0x0004 }, + { 138, 0x0020 }, { 139, 0x0000 }, { 139, 0x0000 }, { 139, 0x0000 }, + { 139, 0x0000 }, { 139, 0x0100 }, { 140, 0x0000 }, { 140, 0x1a00 }, + { 143, 0x2000 }, { 144, 0x0400 }, { 145, 0x0000 }, { 145, 0x0088 }, + /* 0x5300 */ + { 147, 0x0400 }, { 148, 0x1000 }, { 149, 0x0000 }, { 149, 0x0000 }, + { 149, 0x0000 }, { 149, 0x0000 }, { 149, 0x0000 }, { 149, 0x0000 }, + { 149, 0x0000 }, { 149, 0x0001 }, { 150, 0x0000 }, { 150, 0x4000 }, + { 151, 0x00c0 }, { 153, 0x0000 }, { 153, 0x0000 }, { 153, 0x0000 }, + /* 0x5400 */ + { 153, 0x0000 }, { 153, 0x0000 }, { 153, 0x0000 }, { 153, 0x0000 }, + { 153, 0x0000 }, { 153, 0x0000 }, { 153, 0x0000 }, { 153, 0x0000 }, + { 153, 0x0000 }, { 153, 0x0000 }, { 153, 0x0020 }, { 154, 0x0000 }, + { 154, 0x0000 }, { 154, 0x0000 }, { 154, 0x0000 }, { 154, 0x0000 }, + /* 0x5500 */ + { 154, 0x0000 }, { 154, 0x2000 }, { 155, 0x0000 }, { 155, 0x0040 }, + { 156, 0x2000 }, { 157, 0x0080 }, { 158, 0x8000 }, { 159, 0x0011 }, + { 161, 0x0040 }, { 162, 0x0000 }, { 162, 0x0010 }, { 163, 0x0000 }, + { 163, 0x0000 }, { 163, 0x0000 }, { 163, 0x0000 }, { 163, 0x0000 }, + /* 0x5600 */ + { 163, 0x0000 }, { 163, 0x0000 }, { 163, 0x0000 }, { 163, 0x0000 }, + { 163, 0x0001 }, { 164, 0x0000 }, { 164, 0x0000 }, { 164, 0x0000 }, + { 164, 0x0010 }, { 165, 0x1400 }, { 167, 0x2000 }, { 168, 0x0000 }, + { 168, 0x0000 }, { 168, 0x0000 }, { 168, 0x0000 }, { 168, 0x0080 }, + /* 0x5700 */ + { 169, 0x0000 }, { 169, 0x0201 }, { 171, 0x0000 }, { 171, 0x0000 }, + { 171, 0x0000 }, { 171, 0x0000 }, { 171, 0x1000 }, { 172, 0x8001 }, + { 174, 0x0080 }, { 175, 0xc420 }, { 179, 0x0000 }, { 179, 0x4002 }, + { 181, 0x1000 }, { 182, 0x0000 }, { 182, 0x0800 }, { 183, 0x0020 }, + /* 0x5800 */ + { 184, 0x5208 }, { 188, 0x0000 }, { 188, 0x0000 }, { 188, 0x3000 }, + { 190, 0x016c }, { 195, 0x2408 }, { 198, 0x0000 }, { 198, 0x0002 }, + { 199, 0x0110 }, { 201, 0x0020 }, { 202, 0x0000 }, { 202, 0x0000 }, + { 202, 0x0000 }, { 202, 0x0000 }, { 202, 0x0000 }, { 202, 0x0100 }, + /* 0x5900 */ + { 203, 0x0040 }, { 204, 0x0001 }, { 205, 0x1000 }, { 206, 0x0000 }, + { 206, 0x0001 }, { 207, 0x0008 }, { 208, 0x2000 }, { 209, 0x0000 }, + { 209, 0x0000 }, { 209, 0x0000 }, { 209, 0x0000 }, { 209, 0x0008 }, + { 210, 0x0000 }, { 210, 0x4000 }, { 211, 0x4000 }, { 212, 0x2000 }, + /* 0x5a00 */ + { 213, 0x0000 }, { 213, 0x0004 }, { 214, 0x0000 }, { 214, 0x0000 }, + { 214, 0x0000 }, { 214, 0x4000 }, { 215, 0x0020 }, { 216, 0x1008 }, + { 218, 0x0010 }, { 219, 0x4040 }, { 221, 0x6000 }, { 223, 0x0000 }, + { 223, 0x0010 }, { 224, 0x0400 }, { 225, 0x0400 }, { 226, 0x0000 }, + /* 0x5b00 */ + { 226, 0x0000 }, { 226, 0x0800 }, { 227, 0x0000 }, { 227, 0x0000 }, + { 227, 0x0008 }, { 228, 0x0040 }, { 229, 0x0000 }, { 229, 0x0000 }, + { 229, 0x0000 }, { 229, 0x0000 }, { 229, 0x1080 }, { 231, 0x0000 }, + { 231, 0x0000 }, { 231, 0x0000 }, { 231, 0x0000 }, { 231, 0x0000 }, + /* 0x5c00 */ + { 231, 0x0020 }, { 232, 0x0000 }, { 232, 0x0400 }, { 233, 0x0001 }, + { 234, 0x0000 }, { 234, 0x2000 }, { 235, 0x0000 }, { 235, 0x1014 }, + { 238, 0x0000 }, { 238, 0x4000 }, { 239, 0x0100 }, { 240, 0x0000 }, + { 240, 0x0088 }, { 242, 0x0008 }, { 243, 0x0088 }, { 245, 0x8002 }, + /* 0x5d00 */ + { 247, 0x1031 }, { 251, 0x8602 }, { 255, 0x0000 }, { 255, 0x0000 }, + { 255, 0x4000 }, { 256, 0x0400 }, { 257, 0x0000 }, { 257, 0x0000 }, + { 257, 0x0020 }, { 258, 0x000c }, { 260, 0x0000 }, { 260, 0x0000 }, + { 260, 0x0204 }, { 262, 0x0040 }, { 263, 0x0000 }, { 263, 0x0000 }, + /* 0x5e00 */ + { 263, 0x0800 }, { 264, 0x0080 }, { 265, 0x0102 }, { 267, 0x0000 }, + { 267, 0x0000 }, { 267, 0x0000 }, { 267, 0x0400 }, { 268, 0x0000 }, + { 268, 0x0000 }, { 268, 0x0000 }, { 268, 0x0010 }, { 269, 0x1000 }, + { 270, 0x0900 }, { 272, 0x0000 }, { 272, 0x0000 }, { 272, 0x0000 }, + /* 0x5f00 */ + { 272, 0x7080 }, { 276, 0x0000 }, { 276, 0x0004 }, { 277, 0x0000 }, + { 277, 0x0000 }, { 277, 0x8000 }, { 278, 0x0180 }, { 280, 0x0000 }, + { 280, 0x0000 }, { 280, 0x0000 }, { 280, 0x9000 }, { 282, 0x0000 }, + { 282, 0x0000 }, { 282, 0x0000 }, { 282, 0x0000 }, { 282, 0x0000 }, + /* 0x6000 */ + { 282, 0x0000 }, { 282, 0x0080 }, { 283, 0x0000 }, { 283, 0x0000 }, + { 283, 0x0000 }, { 283, 0x0000 }, { 283, 0x0000 }, { 283, 0x0000 }, + { 283, 0x0000 }, { 283, 0x0000 }, { 283, 0x4000 }, { 284, 0x0001 }, + { 285, 0x0080 }, { 286, 0x0208 }, { 288, 0x0000 }, { 288, 0x0000 }, + /* 0x6100 */ + { 288, 0x0000 }, { 288, 0x0010 }, { 289, 0x0000 }, { 289, 0x0000 }, + { 289, 0x0000 }, { 289, 0x0008 }, { 290, 0x0020 }, { 291, 0x0000 }, + { 291, 0x0000 }, { 291, 0x0000 }, { 291, 0x0000 }, { 291, 0x0000 }, + { 291, 0x0000 }, { 291, 0x0000 }, { 291, 0x0000 }, { 291, 0x0000 }, + /* 0x6200 */ + { 291, 0x0000 }, { 291, 0x0000 }, { 291, 0x0000 }, { 291, 0x0000 }, + { 291, 0x0460 }, { 294, 0x0000 }, { 294, 0x0003 }, { 296, 0x0000 }, + { 296, 0x0008 }, { 297, 0x0010 }, { 298, 0x0000 }, { 298, 0x0000 }, + { 298, 0x0008 }, { 299, 0x0000 }, { 299, 0x0010 }, { 300, 0x0000 }, + /* 0x6300 */ + { 300, 0x0000 }, { 300, 0x1000 }, { 301, 0x0040 }, { 302, 0x1000 }, + { 303, 0x0000 }, { 303, 0x0000 }, { 303, 0x0000 }, { 303, 0x0000 }, + { 303, 0x0000 }, { 303, 0x0000 }, { 303, 0x8000 }, { 304, 0x0002 }, + { 305, 0x0000 }, { 305, 0x0000 }, { 305, 0x0000 }, { 305, 0x4000 }, + /* 0x6400 */ + { 306, 0x0000 }, { 306, 0x0004 }, { 307, 0x0084 }, { 309, 0x0000 }, + { 309, 0x0000 }, { 309, 0x0000 }, { 309, 0x0000 }, { 309, 0x2080 }, + { 311, 0x0000 }, { 311, 0x0000 }, { 311, 0x0000 }, { 311, 0x0000 }, + { 311, 0x0000 }, { 311, 0x0000 }, { 311, 0x2000 }, { 312, 0x0000 }, + /* 0x6500 */ + { 312, 0x0000 }, { 312, 0x0000 }, { 312, 0x0000 }, { 312, 0x0000 }, + { 312, 0x0000 }, { 312, 0x1000 }, { 313, 0x0200 }, { 314, 0x0000 }, + { 314, 0x8000 }, { 315, 0x2000 }, { 316, 0x0104 }, { 318, 0x0000 }, + { 318, 0x0004 }, { 319, 0x0000 }, { 319, 0x0000 }, { 319, 0x0900 }, + /* 0x6600 */ + { 321, 0x0280 }, { 323, 0x0000 }, { 323, 0x0000 }, { 323, 0x2000 }, + { 324, 0x0000 }, { 324, 0x4000 }, { 325, 0x1084 }, { 328, 0x0008 }, + { 329, 0x6800 }, { 332, 0x0000 }, { 332, 0x0000 }, { 332, 0x0000 }, + { 332, 0x0000 }, { 332, 0x0000 }, { 332, 0x0000 }, { 332, 0x0000 }, + /* 0x6700 */ + { 332, 0x0000 }, { 332, 0x0108 }, { 334, 0x0000 }, { 334, 0x8000 }, + { 335, 0x0020 }, { 336, 0x0000 }, { 336, 0x0080 }, { 337, 0x0800 }, + { 338, 0x0000 }, { 338, 0x8200 }, { 340, 0x0000 }, { 340, 0x0000 }, + { 340, 0x0100 }, { 341, 0x0000 }, { 341, 0x4000 }, { 342, 0x0000 }, + /* 0x6800 */ + { 342, 0x0000 }, { 342, 0x8004 }, { 344, 0x0000 }, { 344, 0x0000 }, + { 344, 0x0800 }, { 345, 0x0000 }, { 345, 0x9400 }, { 348, 0x0000 }, + { 348, 0x0000 }, { 348, 0x0000 }, { 348, 0x0001 }, { 349, 0x9002 }, + { 352, 0x0002 }, { 353, 0x000b }, { 356, 0x1900 }, { 359, 0x0900 }, + /* 0x6900 */ + { 361, 0x0000 }, { 361, 0x200a }, { 364, 0x0800 }, { 365, 0x0020 }, + { 366, 0x0001 }, { 367, 0x8200 }, { 369, 0x8204 }, { 372, 0x0000 }, + { 372, 0x0008 }, { 373, 0x0040 }, { 374, 0x0000 }, { 374, 0x5000 }, + { 376, 0x0020 }, { 377, 0x1400 }, { 379, 0x0020 }, { 380, 0x4000 }, + /* 0x6a00 */ + { 381, 0x0800 }, { 382, 0x0002 }, { 383, 0x0000 }, { 383, 0x0000 }, + { 383, 0x0000 }, { 383, 0x0000 }, { 383, 0x0040 }, { 384, 0x0000 }, + { 384, 0x0000 }, { 384, 0x0040 }, { 385, 0x0000 }, { 385, 0x0030 }, + { 387, 0x0000 }, { 387, 0x0000 }, { 387, 0x0000 }, { 387, 0x0000 }, + /* 0x6b00 */ + { 387, 0x0000 }, { 387, 0x0000 }, { 387, 0x0000 }, { 387, 0x0100 }, + { 388, 0x0000 }, { 388, 0x0010 }, { 389, 0x0000 }, { 389, 0x0000 }, + { 389, 0x0000 }, { 389, 0x0020 }, { 390, 0x0008 }, { 391, 0x0000 }, + { 391, 0x0000 }, { 391, 0x0400 }, { 392, 0x0000 }, { 392, 0x0000 }, + /* 0x6c00 */ + { 392, 0x0000 }, { 392, 0x2000 }, { 393, 0x0020 }, { 394, 0xc000 }, + { 396, 0x0000 }, { 396, 0x0000 }, { 396, 0x2080 }, { 398, 0x0000 }, + { 398, 0x0090 }, { 400, 0x0540 }, { 403, 0x0100 }, { 404, 0x0020 }, + { 405, 0x0048 }, { 407, 0x1000 }, { 408, 0x0000 }, { 408, 0x0000 }, + /* 0x6d00 */ + { 408, 0x0000 }, { 408, 0x0002 }, { 409, 0x0300 }, { 411, 0x0510 }, + { 414, 0x0210 }, { 416, 0x0821 }, { 419, 0x0032 }, { 422, 0x0000 }, + { 422, 0x0000 }, { 422, 0x0000 }, { 422, 0x2004 }, { 424, 0x0010 }, + { 425, 0x0000 }, { 425, 0x0000 }, { 425, 0x0000 }, { 425, 0x0000 }, + /* 0x6e00 */ + { 425, 0x0000 }, { 425, 0x0800 }, { 426, 0x0000 }, { 426, 0x0000 }, + { 426, 0x0000 }, { 426, 0x3000 }, { 428, 0x0080 }, { 429, 0x0004 }, + { 430, 0x4082 }, { 433, 0x0400 }, { 434, 0x0041 }, { 436, 0x0020 }, + { 437, 0x0208 }, { 439, 0x0100 }, { 440, 0x0c80 }, { 443, 0x0000 }, + /* 0x6f00 */ + { 443, 0x0000 }, { 443, 0x0000 }, { 443, 0x0040 }, { 444, 0x0080 }, + { 445, 0x0000 }, { 445, 0x8040 }, { 447, 0x0000 }, { 447, 0x0020 }, + { 448, 0x0004 }, { 449, 0x0810 }, { 451, 0x0020 }, { 452, 0x1010 }, + { 454, 0x0000 }, { 454, 0x0000 }, { 454, 0x1000 }, { 455, 0x0000 }, + /* 0x7000 */ + { 455, 0x3000 }, { 457, 0x0010 }, { 458, 0x0000 }, { 458, 0x1000 }, + { 459, 0x0000 }, { 459, 0x0000 }, { 459, 0x0000 }, { 459, 0x0400 }, + { 460, 0x0000 }, { 460, 0x4100 }, { 462, 0x0000 }, { 462, 0x0000 }, + { 462, 0x0000 }, { 462, 0x3000 }, { 464, 0x0000 }, { 464, 0x0402 }, + /* 0x7100 */ + { 466, 0x1000 }, { 467, 0x1000 }, { 468, 0x4001 }, { 470, 0x0000 }, + { 470, 0x0000 }, { 470, 0x0000 }, { 470, 0x0000 }, { 470, 0x0000 }, + { 470, 0x0000 }, { 470, 0x0000 }, { 470, 0x0000 }, { 470, 0x0000 }, + { 470, 0x8c00 }, { 473, 0x0000 }, { 473, 0x0000 }, { 473, 0x8000 }, + /* 0x7200 */ + { 474, 0x0000 }, { 474, 0x8000 }, { 475, 0x0000 }, { 475, 0x0000 }, + { 475, 0x0006 }, { 477, 0x0400 }, { 478, 0x0008 }, { 479, 0x0080 }, + { 480, 0x0080 }, { 481, 0x0000 }, { 481, 0x0100 }, { 482, 0x0000 }, + { 482, 0x0200 }, { 483, 0x2000 }, { 484, 0x0004 }, { 485, 0x0000 }, + /* 0x7300 */ + { 485, 0x0040 }, { 486, 0x0010 }, { 487, 0x0000 }, { 487, 0x0400 }, + { 488, 0x0000 }, { 488, 0x0000 }, { 488, 0x0000 }, { 488, 0x0000 }, + { 488, 0x0000 }, { 488, 0x0630 }, { 492, 0x0061 }, { 495, 0x0002 }, + { 496, 0x0000 }, { 496, 0x0040 }, { 497, 0x4408 }, { 500, 0x2441 }, + /* 0x7400 */ + { 504, 0x4080 }, { 506, 0x0020 }, { 507, 0x8810 }, { 510, 0x0084 }, + { 512, 0x0014 }, { 514, 0x0010 }, { 515, 0x0004 }, { 516, 0x0102 }, + { 518, 0x0140 }, { 520, 0x8100 }, { 522, 0x0401 }, { 524, 0x0004 }, + { 525, 0x0000 }, { 525, 0x0100 }, { 526, 0x0000 }, { 526, 0x0800 }, + /* 0x7500 */ + { 527, 0x0008 }, { 528, 0x0000 }, { 528, 0x0442 }, { 531, 0x0000 }, + { 531, 0x0000 }, { 531, 0x0002 }, { 532, 0x9010 }, { 535, 0x0000 }, + { 535, 0x0000 }, { 535, 0x0000 }, { 535, 0x0004 }, { 536, 0x0000 }, + { 536, 0x0000 }, { 536, 0x0000 }, { 536, 0x0001 }, { 537, 0x0008 }, + /* 0x7600 */ + { 538, 0x0110 }, { 540, 0x2000 }, { 541, 0x0000 }, { 541, 0x0000 }, + { 541, 0x0000 }, { 541, 0x0004 }, { 542, 0x0000 }, { 542, 0x8040 }, + { 544, 0x0000 }, { 544, 0x4000 }, { 545, 0x0000 }, { 545, 0x0000 }, + { 545, 0x0000 }, { 545, 0x2000 }, { 546, 0x1440 }, { 549, 0x0800 }, + /* 0x7700 */ + { 550, 0x0400 }, { 551, 0x0800 }, { 552, 0x1000 }, { 553, 0x0000 }, + { 553, 0x0000 }, { 553, 0x0000 }, { 553, 0x0000 }, { 553, 0x0000 }, + { 553, 0x0840 }, { 555, 0x0000 }, { 555, 0x2800 }, { 557, 0x0000 }, + { 557, 0x0000 }, { 557, 0x4000 }, { 558, 0x0000 }, { 558, 0x1800 }, + /* 0x7800 */ + { 560, 0x0040 }, { 561, 0x0000 }, { 561, 0x0005 }, { 563, 0x0000 }, + { 563, 0x0002 }, { 564, 0x0600 }, { 566, 0x0000 }, { 566, 0x0020 }, + { 567, 0x0000 }, { 567, 0x0010 }, { 568, 0x0000 }, { 568, 0x0040 }, + { 569, 0x0000 }, { 569, 0x1000 }, { 570, 0x0002 }, { 571, 0x0000 }, + /* 0x7900 */ + { 571, 0x0008 }, { 572, 0x0000 }, { 572, 0x0000 }, { 572, 0x2008 }, + { 574, 0x4488 }, { 578, 0x0001 }, { 579, 0x0000 }, { 579, 0x1004 }, + { 581, 0x0000 }, { 581, 0x0100 }, { 582, 0x0011 }, { 584, 0x0100 }, + { 585, 0x0000 }, { 585, 0x0000 }, { 585, 0x0000 }, { 585, 0x4000 }, + /* 0x7a00 */ + { 586, 0x0000 }, { 586, 0x0040 }, { 587, 0x0000 }, { 587, 0x0000 }, + { 587, 0x0010 }, { 588, 0x4000 }, { 589, 0x0000 }, { 589, 0x0000 }, + { 589, 0x4020 }, { 591, 0x0000 }, { 591, 0x0008 }, { 592, 0x4100 }, + { 594, 0x0000 }, { 594, 0x1002 }, { 596, 0x0000 }, { 596, 0x0000 }, + /* 0x7b00 */ + { 596, 0x0000 }, { 596, 0x0000 }, { 596, 0x0000 }, { 596, 0x0000 }, + { 596, 0x4400 }, { 598, 0x1000 }, { 599, 0x0000 }, { 599, 0x8000 }, + { 600, 0x0080 }, { 601, 0x0008 }, { 602, 0x0000 }, { 602, 0x0000 }, + { 602, 0x0000 }, { 602, 0x0000 }, { 602, 0x8000 }, { 603, 0x0005 }, + /* 0x7c00 */ + { 605, 0x0208 }, { 607, 0x0020 }, { 608, 0x0001 }, { 609, 0x0001 }, + { 610, 0x0000 }, { 610, 0x2001 }, { 612, 0x0000 }, { 612, 0x0000 }, + { 612, 0x0000 }, { 612, 0x0000 }, { 612, 0x1040 }, { 614, 0x0000 }, + { 614, 0x0000 }, { 614, 0x0000 }, { 614, 0x0000 }, { 614, 0x0020 }, +}; +static const Summary16 isoir165ext_uni2indx_page7e[333] = { + /* 0x7e00 */ + { 615, 0x0000 }, { 615, 0x0000 }, { 615, 0x0000 }, { 615, 0x0000 }, + { 615, 0x0010 }, { 616, 0x0000 }, { 616, 0x0000 }, { 616, 0x0000 }, + { 616, 0x0000 }, { 616, 0x0000 }, { 616, 0x4000 }, { 617, 0x1810 }, + { 620, 0x0000 }, { 620, 0x0040 }, { 621, 0x1010 }, { 623, 0x0200 }, + /* 0x7f00 */ + { 624, 0x0400 }, { 625, 0x4001 }, { 627, 0x0000 }, { 627, 0x0000 }, + { 627, 0x2000 }, { 628, 0x0000 }, { 628, 0x0000 }, { 628, 0x2000 }, + { 629, 0x0000 }, { 629, 0x0002 }, { 630, 0x0000 }, { 630, 0x0000 }, + { 630, 0x0001 }, { 631, 0x0600 }, { 633, 0x8000 }, { 634, 0x0000 }, + /* 0x8000 */ + { 634, 0x0000 }, { 634, 0x0000 }, { 634, 0x0000 }, { 634, 0x0001 }, + { 635, 0x0000 }, { 635, 0x0000 }, { 635, 0x0000 }, { 635, 0x0000 }, + { 635, 0x0000 }, { 635, 0x0000 }, { 635, 0x0000 }, { 635, 0x0000 }, + { 635, 0x0000 }, { 635, 0x0010 }, { 636, 0x0000 }, { 636, 0x4000 }, + /* 0x8100 */ + { 637, 0x0000 }, { 637, 0x0000 }, { 637, 0x0200 }, { 638, 0x8000 }, + { 639, 0x0000 }, { 639, 0x0104 }, { 641, 0x0000 }, { 641, 0x0000 }, + { 641, 0x0000 }, { 641, 0x0000 }, { 641, 0x0000 }, { 641, 0x0000 }, + { 641, 0x0000 }, { 641, 0x0002 }, { 642, 0x0000 }, { 642, 0x0000 }, + /* 0x8200 */ + { 642, 0x0000 }, { 642, 0x0140 }, { 644, 0x0000 }, { 644, 0x0400 }, + { 645, 0x0000 }, { 645, 0x0000 }, { 645, 0x0000 }, { 645, 0x0100 }, + { 646, 0x0008 }, { 647, 0x0000 }, { 647, 0x0080 }, { 648, 0x1000 }, + { 649, 0x0000 }, { 649, 0x0000 }, { 649, 0x0000 }, { 649, 0x4000 }, + /* 0x8300 */ + { 650, 0x0001 }, { 651, 0x2008 }, { 653, 0x0000 }, { 653, 0x0000 }, + { 653, 0x0030 }, { 655, 0x2000 }, { 656, 0x0000 }, { 656, 0x0000 }, + { 656, 0x0000 }, { 656, 0x0200 }, { 657, 0x0040 }, { 658, 0x0000 }, + { 658, 0x0000 }, { 658, 0x0002 }, { 659, 0x0000 }, { 659, 0x5000 }, + /* 0x8400 */ + { 661, 0x0000 }, { 661, 0x0400 }, { 662, 0x0200 }, { 663, 0x0200 }, + { 664, 0x0000 }, { 664, 0x0008 }, { 665, 0x0001 }, { 666, 0x0000 }, + { 666, 0x0000 }, { 666, 0xc000 }, { 668, 0x0100 }, { 669, 0x0000 }, + { 669, 0x8044 }, { 672, 0x0000 }, { 672, 0x0400 }, { 673, 0x0080 }, + /* 0x8500 */ + { 674, 0x0000 }, { 674, 0x0000 }, { 674, 0x0000 }, { 674, 0x0010 }, + { 675, 0x0000 }, { 675, 0x0000 }, { 675, 0x0000 }, { 675, 0x0001 }, + { 676, 0x0000 }, { 676, 0x0000 }, { 676, 0x0004 }, { 677, 0x0108 }, + { 679, 0x0000 }, { 679, 0x0000 }, { 679, 0x0001 }, { 680, 0x0000 }, + /* 0x8600 */ + { 680, 0x0000 }, { 680, 0x0000 }, { 680, 0x0000 }, { 680, 0x0000 }, + { 680, 0x0000 }, { 680, 0x0004 }, { 681, 0x0000 }, { 681, 0x0000 }, + { 681, 0x0008 }, { 682, 0x0000 }, { 682, 0x0000 }, { 682, 0x0000 }, + { 682, 0x0000 }, { 682, 0x0000 }, { 682, 0x0000 }, { 682, 0x0000 }, + /* 0x8700 */ + { 682, 0x4020 }, { 684, 0x0000 }, { 684, 0x0000 }, { 684, 0x0000 }, + { 684, 0x0000 }, { 684, 0x0100 }, { 685, 0x0000 }, { 685, 0x0000 }, + { 685, 0x0001 }, { 686, 0x0000 }, { 686, 0x0008 }, { 687, 0x0000 }, + { 687, 0x8000 }, { 688, 0x0000 }, { 688, 0x0004 }, { 689, 0x0000 }, + /* 0x8800 */ + { 689, 0x0800 }, { 690, 0x0000 }, { 690, 0x2000 }, { 691, 0x0000 }, + { 691, 0x0000 }, { 691, 0x0004 }, { 692, 0x0000 }, { 692, 0x0000 }, + { 692, 0x0040 }, { 693, 0x0080 }, { 694, 0x8400 }, { 696, 0x0000 }, + { 696, 0x0101 }, { 698, 0x0000 }, { 698, 0x0000 }, { 698, 0x0000 }, + /* 0x8900 */ + { 698, 0x0000 }, { 698, 0x0000 }, { 698, 0x0040 }, { 699, 0x0000 }, + { 699, 0x0000 }, { 699, 0x0020 }, { 700, 0x0000 }, { 700, 0x0040 }, + { 701, 0x0001 }, { 702, 0x0000 }, { 702, 0x0000 }, { 702, 0x0000 }, + { 702, 0x2008 }, { 704, 0x0010 }, { 705, 0x0000 }, { 705, 0x0002 }, + /* 0x8a00 */ + { 706, 0x0000 }, { 706, 0x0400 }, { 707, 0x0000 }, { 707, 0x0000 }, + { 707, 0x0000 }, { 707, 0x8000 }, { 708, 0x0000 }, { 708, 0x0000 }, + { 708, 0x0000 }, { 708, 0x0000 }, { 708, 0x0000 }, { 708, 0x0000 }, + { 708, 0x0000 }, { 708, 0x0000 }, { 708, 0x0000 }, { 708, 0x0000 }, + /* 0x8b00 */ + { 708, 0x0000 }, { 708, 0x0000 }, { 708, 0x0000 }, { 708, 0x0000 }, + { 708, 0x0000 }, { 708, 0x0000 }, { 708, 0x0000 }, { 708, 0x0000 }, + { 708, 0x0000 }, { 708, 0x0000 }, { 708, 0x1000 }, { 709, 0x0802 }, + { 711, 0x0080 }, { 712, 0x0000 }, { 712, 0x0400 }, { 713, 0x0000 }, + /* 0x8c00 */ + { 713, 0x0200 }, { 714, 0x4000 }, { 715, 0x0000 }, { 715, 0x0000 }, + { 715, 0x0000 }, { 715, 0x0000 }, { 715, 0x6100 }, { 718, 0x0000 }, + { 718, 0x0040 }, { 719, 0x0000 }, { 719, 0x0000 }, { 719, 0x0000 }, + { 719, 0x0000 }, { 719, 0x0000 }, { 719, 0x0000 }, { 719, 0x0000 }, + /* 0x8d00 */ + { 719, 0x0000 }, { 719, 0x0000 }, { 719, 0x0001 }, { 720, 0x0000 }, + { 720, 0x0000 }, { 720, 0x8086 }, { 724, 0x0400 }, { 725, 0x0000 }, + { 725, 0x0000 }, { 725, 0x0000 }, { 725, 0x0000 }, { 725, 0x0000 }, + { 725, 0x0000 }, { 725, 0x0000 }, { 725, 0x0000 }, { 725, 0x0000 }, + /* 0x8e00 */ + { 725, 0x0000 }, { 725, 0x0040 }, { 726, 0x00c2 }, { 729, 0x0040 }, + { 730, 0x0020 }, { 731, 0x1009 }, { 734, 0x0004 }, { 735, 0x0000 }, + { 735, 0x0000 }, { 735, 0x0000 }, { 735, 0x2000 }, { 736, 0x0000 }, + { 736, 0x0000 }, { 736, 0x0000 }, { 736, 0x0000 }, { 736, 0x0000 }, + /* 0x8f00 */ + { 736, 0x0000 }, { 736, 0x0000 }, { 736, 0x0000 }, { 736, 0x0000 }, + { 736, 0x0000 }, { 736, 0x0000 }, { 736, 0x0000 }, { 736, 0x0000 }, + { 736, 0x0001 }, { 737, 0x0004 }, { 738, 0x0000 }, { 738, 0x0020 }, + { 739, 0x0000 }, { 739, 0x0000 }, { 739, 0x0000 }, { 739, 0x0400 }, + /* 0x9000 */ + { 740, 0x0000 }, { 740, 0x0000 }, { 740, 0x0000 }, { 740, 0x0000 }, + { 740, 0x0000 }, { 740, 0x0000 }, { 740, 0x0000 }, { 740, 0x0000 }, + { 740, 0x0000 }, { 740, 0x0100 }, { 741, 0x0101 }, { 743, 0x2000 }, + { 744, 0x0108 }, { 746, 0x0400 }, { 747, 0x0010 }, { 748, 0x8000 }, + /* 0x9100 */ + { 749, 0x1000 }, { 750, 0x1500 }, { 753, 0x0001 }, { 754, 0x0000 }, + { 754, 0x0004 }, { 755, 0x0000 }, { 755, 0x0000 }, { 755, 0x0000 }, + { 755, 0x0000 }, { 755, 0x0000 }, { 755, 0x0000 }, { 755, 0x0000 }, + { 755, 0x0040 }, { 756, 0x0000 }, { 756, 0x0000 }, { 756, 0x0000 }, + /* 0x9200 */ + { 756, 0x0000 }, { 756, 0x0000 }, { 756, 0x0000 }, { 756, 0x0000 }, + { 756, 0x0000 }, { 756, 0x0000 }, { 756, 0x0000 }, { 756, 0x0000 }, + { 756, 0x0000 }, { 756, 0x0000 }, { 756, 0x0000 }, { 756, 0x0000 }, + { 756, 0x0040 }, +}; +static const Summary16 isoir165ext_uni2indx_page94[143] = { + /* 0x9400 */ + { 757, 0x0000 }, { 757, 0x0000 }, { 757, 0x0000 }, { 757, 0x0000 }, + { 757, 0x0000 }, { 757, 0x0000 }, { 757, 0x0000 }, { 757, 0x0000 }, + { 757, 0x0000 }, { 757, 0x0142 }, { 760, 0x0000 }, { 760, 0x0000 }, + { 760, 0x8080 }, { 762, 0x0418 }, { 765, 0x0040 }, { 766, 0x0800 }, + /* 0x9500 */ + { 767, 0x0000 }, { 767, 0x1000 }, { 768, 0x0081 }, { 770, 0x2008 }, + { 772, 0x0008 }, { 773, 0x0400 }, { 774, 0x4001 }, { 776, 0x0030 }, + { 778, 0x0000 }, { 778, 0x0000 }, { 778, 0x0000 }, { 778, 0x0000 }, + { 778, 0x0000 }, { 778, 0x0000 }, { 778, 0x1000 }, { 779, 0x8000 }, + /* 0x9600 */ + { 780, 0x0080 }, { 781, 0x0908 }, { 784, 0x0000 }, { 784, 0x0000 }, + { 784, 0x0000 }, { 784, 0x4000 }, { 785, 0x0000 }, { 785, 0x0000 }, + { 785, 0x0000 }, { 785, 0x0000 }, { 785, 0x0000 }, { 785, 0x0000 }, + { 785, 0x0000 }, { 785, 0x0100 }, { 786, 0x0000 }, { 786, 0x0000 }, + /* 0x9700 */ + { 786, 0x0004 }, { 787, 0x0000 }, { 787, 0x0000 }, { 787, 0x0000 }, + { 787, 0x0000 }, { 787, 0x0010 }, { 788, 0x0000 }, { 788, 0x0501 }, + { 791, 0x0000 }, { 791, 0x0000 }, { 791, 0x4102 }, { 794, 0x0000 }, + { 794, 0x0000 }, { 794, 0x0000 }, { 794, 0x0100 }, { 795, 0x0000 }, + /* 0x9800 */ + { 795, 0x0000 }, { 795, 0x0000 }, { 795, 0x0000 }, { 795, 0x0000 }, + { 795, 0x0000 }, { 795, 0x0000 }, { 795, 0x0000 }, { 795, 0x0000 }, + { 795, 0x4800 }, { 797, 0x0224 }, { 800, 0x0008 }, { 801, 0x0000 }, + { 801, 0x8000 }, { 802, 0x00d1 }, { 806, 0x0000 }, { 806, 0x0000 }, + /* 0x9900 */ + { 806, 0x0000 }, { 806, 0x0000 }, { 806, 0x0000 }, { 806, 0x0000 }, + { 806, 0x0000 }, { 806, 0x0000 }, { 806, 0x0050 }, { 808, 0x4b00 }, + { 812, 0x500c }, { 816, 0x0000 }, { 816, 0x0000 }, { 816, 0x0000 }, + { 816, 0x0000 }, { 816, 0x0000 }, { 816, 0x0000 }, { 816, 0x0000 }, + /* 0x9a00 */ + { 816, 0x0000 }, { 816, 0x0000 }, { 816, 0x0000 }, { 816, 0x0000 }, + { 816, 0x0000 }, { 816, 0x0000 }, { 816, 0x0000 }, { 816, 0x0004 }, + { 817, 0x6208 }, { 821, 0x0230 }, { 824, 0x0040 }, { 825, 0x0000 }, + { 825, 0x0000 }, { 825, 0x0000 }, { 825, 0x0000 }, { 825, 0x0000 }, + /* 0x9b00 */ + { 825, 0x0000 }, { 825, 0x0101 }, { 827, 0x0020 }, { 828, 0x0040 }, + { 829, 0x0040 }, { 830, 0x0000 }, { 830, 0x0000 }, { 830, 0x0000 }, + { 830, 0x0000 }, { 830, 0x0000 }, { 830, 0x0000 }, { 830, 0x0000 }, + { 830, 0x0000 }, { 830, 0x0000 }, { 830, 0x0000 }, { 830, 0x0000 }, + /* 0x9c00 */ + { 830, 0x0000 }, { 830, 0x0000 }, { 830, 0x0000 }, { 830, 0x0000 }, + { 830, 0x0000 }, { 830, 0x0000 }, { 830, 0x0000 }, { 830, 0x0000 }, + { 830, 0x0411 }, { 833, 0x23c8 }, { 839, 0x0000 }, { 839, 0x8000 }, + { 840, 0x0003 }, { 842, 0x0804 }, { 844, 0x0009 }, +}; +static const Summary16 isoir165ext_uni2indx_page9e[25] = { + /* 0x9e00 */ + { 846, 0x0000 }, { 846, 0x0000 }, { 846, 0x4090 }, { 849, 0x0011 }, + { 851, 0x2001 }, { 853, 0x225d }, { 860, 0x8027 }, { 865, 0x0010 }, + { 866, 0x0001 }, { 867, 0x0002 }, { 868, 0x0000 }, { 868, 0x0000 }, + { 868, 0x0000 }, { 868, 0x0000 }, { 868, 0x0002 }, { 869, 0x0000 }, + /* 0x9f00 */ + { 869, 0x1000 }, { 870, 0x0004 }, { 871, 0x0800 }, { 872, 0x0000 }, + { 872, 0x0002 }, { 873, 0x0000 }, { 873, 0x0000 }, { 873, 0x0000 }, + { 873, 0x0006 }, +}; +static const Summary16 isoir165ext_uni2indx_pageff[5] = { + /* 0xff00 */ + { 875, 0x0000 }, { 875, 0x0000 }, { 875, 0x0000 }, { 875, 0x0000 }, + { 875, 0x0080 }, +}; + +static int +isoir165ext_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (n >= 2) { + const Summary16 *summary = NULL; + if (wc >= 0x0000 && wc < 0x0200) + summary = &isoir165ext_uni2indx_page00[(wc>>4)]; + else if (wc >= 0x0300 && wc < 0x03c0) + summary = &isoir165ext_uni2indx_page03[(wc>>4)-0x030]; + else if (wc >= 0x1e00 && wc < 0x1fc0) + summary = &isoir165ext_uni2indx_page1e[(wc>>4)-0x1e0]; + else if (wc >= 0x3000 && wc < 0x3040) + summary = &isoir165ext_uni2indx_page30[(wc>>4)-0x300]; + else if (wc >= 0x3200 && wc < 0x3400) + summary = &isoir165ext_uni2indx_page32[(wc>>4)-0x320]; + else if (wc >= 0x4e00 && wc < 0x7d00) + summary = &isoir165ext_uni2indx_page4e[(wc>>4)-0x4e0]; + else if (wc >= 0x7e00 && wc < 0x92d0) + summary = &isoir165ext_uni2indx_page7e[(wc>>4)-0x7e0]; + else if (wc >= 0x9400 && wc < 0x9cf0) + summary = &isoir165ext_uni2indx_page94[(wc>>4)-0x940]; + else if (wc >= 0x9e00 && wc < 0x9f90) + summary = &isoir165ext_uni2indx_page9e[(wc>>4)-0x9e0]; + else if (wc >= 0xff00 && wc < 0xff50) + summary = &isoir165ext_uni2indx_pageff[(wc>>4)-0xff0]; + if (summary) { + unsigned short used = summary->used; + unsigned int i = wc & 0x0f; + if (used & ((unsigned short) 1 << i)) { + unsigned short c; + /* Keep in `used' only the bits 0..i-1. */ + used &= ((unsigned short) 1 << i) - 1; + /* Add `summary->indx' and the number of bits set in `used'. */ + used = (used & 0x5555) + ((used & 0xaaaa) >> 1); + used = (used & 0x3333) + ((used & 0xcccc) >> 2); + used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); + used = (used & 0x00ff) + (used >> 8); + c = isoir165ext_2charset[summary->indx + used]; + r[0] = (c >> 8); r[1] = (c & 0xff); + return 2; + } + } + return RET_ILUNI; + } + return RET_TOOSMALL; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/java.h b/graf2d/win32gdk/gdk/src/iconv/java.h new file mode 100644 index 00000000000..4d4485f54f1 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/java.h @@ -0,0 +1,137 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * JAVA + * This is ISO 8859-1 with \uXXXX escape sequences, denoting Unicode BMP + * characters. Consecutive pairs of \uXXXX escape sequences in the surrogate + * range, as in UTF-16, denote Unicode characters outside the BMP. + */ + +static int +java_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c; + ucs4_t wc, wc2; + int i; + + c = s[0]; + if (c != '\\') { + *pwc = c; + return 1; + } + if (n < 2) + return RET_TOOFEW(0); + if (s[1] != 'u') + goto simply_backslash; + wc = 0; + for (i = 2; i < 6; i++) { + if (n <= i) + return RET_TOOFEW(0); + c = s[i]; + if (c >= '0' && c <= '9') + c -= '0'; + else if (c >= 'A' && c <= 'Z') + c -= 'A'-10; + else if (c >= 'a' && c <= 'z') + c -= 'a'-10; + else + goto simply_backslash; + wc |= (ucs4_t) c << (4 * (5-i)); + } + if (!(wc >= 0xd800 && wc < 0xe000)) { + *pwc = wc; + return 6; + } + if (wc >= 0xdc00) + goto simply_backslash; + if (n < 7) + return RET_TOOFEW(0); + if (s[6] != '\\') + goto simply_backslash; + if (n < 8) + return RET_TOOFEW(0); + if (s[7] != 'u') + goto simply_backslash; + wc2 = 0; + for (i = 8; i < 12; i++) { + if (n <= i) + return RET_TOOFEW(0); + c = s[i]; + if (c >= '0' && c <= '9') + c -= '0'; + else if (c >= 'A' && c <= 'Z') + c -= 'A'-10; + else if (c >= 'a' && c <= 'z') + c -= 'a'-10; + else + goto simply_backslash; + wc2 |= (ucs4_t) c << (4 * (11-i)); + } + if (!(wc2 >= 0xdc00 && wc2 < 0xe000)) + goto simply_backslash; + *pwc = 0x10000 + ((wc - 0xd800) << 10) + (wc2 - 0xdc00); + return 12; +simply_backslash: + *pwc = '\\'; + return 1; +} + +static int +java_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (wc < 0x80) { + *r = wc; + return 1; + } else if (wc < 0x10000) { + if (n >= 6) { + unsigned int i; + r[0] = '\\'; + r[1] = 'u'; + i = (wc >> 12) & 0x0f; r[2] = (i < 10 ? '0'+i : 'a'-10+i); + i = (wc >> 8) & 0x0f; r[3] = (i < 10 ? '0'+i : 'a'-10+i); + i = (wc >> 4) & 0x0f; r[4] = (i < 10 ? '0'+i : 'a'-10+i); + i = wc & 0x0f; r[5] = (i < 10 ? '0'+i : 'a'-10+i); + return 6; + } else + return RET_TOOSMALL; + } else if (wc < 0x110000) { + if (n >= 12) { + ucs4_t wc1 = 0xd800 + ((wc - 0x10000) >> 10); + ucs4_t wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff); + unsigned int i; + r[0] = '\\'; + r[1] = 'u'; + i = (wc1 >> 12) & 0x0f; r[2] = (i < 10 ? '0'+i : 'a'-10+i); + i = (wc1 >> 8) & 0x0f; r[3] = (i < 10 ? '0'+i : 'a'-10+i); + i = (wc1 >> 4) & 0x0f; r[4] = (i < 10 ? '0'+i : 'a'-10+i); + i = wc1 & 0x0f; r[5] = (i < 10 ? '0'+i : 'a'-10+i); + r[6] = '\\'; + r[7] = 'u'; + i = (wc2 >> 12) & 0x0f; r[8] = (i < 10 ? '0'+i : 'a'-10+i); + i = (wc2 >> 8) & 0x0f; r[9] = (i < 10 ? '0'+i : 'a'-10+i); + i = (wc2 >> 4) & 0x0f; r[10] = (i < 10 ? '0'+i : 'a'-10+i); + i = wc2 & 0x0f; r[11] = (i < 10 ? '0'+i : 'a'-10+i); + return 12; + } else + return RET_TOOSMALL; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/jisx0201.h b/graf2d/win32gdk/gdk/src/iconv/jisx0201.h new file mode 100644 index 00000000000..d58c1d59569 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/jisx0201.h @@ -0,0 +1,66 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * JISX0201.1976-0 + */ + +static int +jisx0201_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + if (c == 0x5c) + *pwc = (ucs4_t) 0x00a5; + else if (c == 0x7e) + *pwc = (ucs4_t) 0x203e; + else + *pwc = (ucs4_t) c; + return 1; + } else { + if (c >= 0xa1 && c < 0xe0) { + *pwc = (ucs4_t) c + 0xfec0; + return 1; + } + } + return RET_ILSEQ; +} + +static int +jisx0201_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (wc < 0x0080 && !(wc == 0x005c || wc == 0x007e)) { + *r = wc; + return 1; + } + if (wc == 0x00a5) { + *r = 0x5c; + return 1; + } + if (wc == 0x203e) { + *r = 0x7e; + return 1; + } + if (wc >= 0xff61 && wc < 0xffa0) { + *r = wc - 0xfec0; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/jisx0208.h b/graf2d/win32gdk/gdk/src/iconv/jisx0208.h new file mode 100644 index 00000000000..755b8ba6a5c --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/jisx0208.h @@ -0,0 +1,2415 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * JISX0208.1990-0 + */ + +static const unsigned short jisx0208_2uni_page21[690] = { + /* 0x21 */ + 0x3000, 0x3001, 0x3002, 0xff0c, 0xff0e, 0x30fb, 0xff1a, 0xff1b, + 0xff1f, 0xff01, 0x309b, 0x309c, 0x00b4, 0xff40, 0x00a8, 0xff3e, + 0xffe3, 0xff3f, 0x30fd, 0x30fe, 0x309d, 0x309e, 0x3003, 0x4edd, + 0x3005, 0x3006, 0x3007, 0x30fc, 0x2015, 0x2010, 0xff0f, 0xff3c, + 0x301c, 0x2016, 0xff5c, 0x2026, 0x2025, 0x2018, 0x2019, 0x201c, + 0x201d, 0xff08, 0xff09, 0x3014, 0x3015, 0xff3b, 0xff3d, 0xff5b, + 0xff5d, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c, 0x300d, 0x300e, + 0x300f, 0x3010, 0x3011, 0xff0b, 0x2212, 0x00b1, 0x00d7, 0x00f7, + 0xff1d, 0x2260, 0xff1c, 0xff1e, 0x2266, 0x2267, 0x221e, 0x2234, + 0x2642, 0x2640, 0x00b0, 0x2032, 0x2033, 0x2103, 0xffe5, 0xff04, + 0x00a2, 0x00a3, 0xff05, 0xff03, 0xff06, 0xff0a, 0xff20, 0x00a7, + 0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7, + /* 0x22 */ + 0x25c6, 0x25a1, 0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, 0x203b, + 0x3012, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x2208, 0x220b, 0x2286, 0x2287, 0x2282, 0x2283, 0x222a, + 0x2229, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x2227, 0x2228, 0x00ac, 0x21d2, 0x21d4, 0x2200, 0x2203, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0x2220, 0x22a5, 0x2312, 0x2202, 0x2207, + 0x2261, 0x2252, 0x226a, 0x226b, 0x221a, 0x223d, 0x221d, 0x2235, + 0x222b, 0x222c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x212b, 0x2030, 0x266f, 0x266d, 0x266a, 0x2020, 0x2021, + 0x00b6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x25ef, + /* 0x23 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xff10, + 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, + 0xff19, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28, + 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30, + 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38, + 0xff39, 0xff3a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, + 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50, + 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58, + 0xff59, 0xff5a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x24 */ + 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, + 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, + 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, + 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060, + 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, + 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070, + 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078, + 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080, + 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088, + 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090, + 0x3091, 0x3092, 0x3093, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x25 */ + 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8, + 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0, + 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8, + 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0, + 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8, + 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0, + 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8, + 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0, + 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8, + 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0, + 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x26 */ + 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, + 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, + 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, + 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, + 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x27 */ + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416, + 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, + 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, + 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, + 0x042f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436, + 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, + 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, + 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, + 0x044f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x28 */ + 0x2500, 0x2502, 0x250c, 0x2510, 0x2518, 0x2514, 0x251c, 0x252c, + 0x2524, 0x2534, 0x253c, 0x2501, 0x2503, 0x250f, 0x2513, 0x251b, + 0x2517, 0x2523, 0x2533, 0x252b, 0x253b, 0x254b, 0x2520, 0x252f, + 0x2528, 0x2537, 0x253f, 0x251d, 0x2530, 0x2525, 0x2538, 0x2542, +}; +static const unsigned short jisx0208_2uni_page30[6398] = { + /* 0x30 */ + 0x4e9c, 0x5516, 0x5a03, 0x963f, 0x54c0, 0x611b, 0x6328, 0x59f6, + 0x9022, 0x8475, 0x831c, 0x7a50, 0x60aa, 0x63e1, 0x6e25, 0x65ed, + 0x8466, 0x82a6, 0x9bf5, 0x6893, 0x5727, 0x65a1, 0x6271, 0x5b9b, + 0x59d0, 0x867b, 0x98f4, 0x7d62, 0x7dbe, 0x9b8e, 0x6216, 0x7c9f, + 0x88b7, 0x5b89, 0x5eb5, 0x6309, 0x6697, 0x6848, 0x95c7, 0x978d, + 0x674f, 0x4ee5, 0x4f0a, 0x4f4d, 0x4f9d, 0x5049, 0x56f2, 0x5937, + 0x59d4, 0x5a01, 0x5c09, 0x60df, 0x610f, 0x6170, 0x6613, 0x6905, + 0x70ba, 0x754f, 0x7570, 0x79fb, 0x7dad, 0x7def, 0x80c3, 0x840e, + 0x8863, 0x8b02, 0x9055, 0x907a, 0x533b, 0x4e95, 0x4ea5, 0x57df, + 0x80b2, 0x90c1, 0x78ef, 0x4e00, 0x58f1, 0x6ea2, 0x9038, 0x7a32, + 0x8328, 0x828b, 0x9c2f, 0x5141, 0x5370, 0x54bd, 0x54e1, 0x56e0, + 0x59fb, 0x5f15, 0x98f2, 0x6deb, 0x80e4, 0x852d, + /* 0x31 */ + 0x9662, 0x9670, 0x96a0, 0x97fb, 0x540b, 0x53f3, 0x5b87, 0x70cf, + 0x7fbd, 0x8fc2, 0x96e8, 0x536f, 0x9d5c, 0x7aba, 0x4e11, 0x7893, + 0x81fc, 0x6e26, 0x5618, 0x5504, 0x6b1d, 0x851a, 0x9c3b, 0x59e5, + 0x53a9, 0x6d66, 0x74dc, 0x958f, 0x5642, 0x4e91, 0x904b, 0x96f2, + 0x834f, 0x990c, 0x53e1, 0x55b6, 0x5b30, 0x5f71, 0x6620, 0x66f3, + 0x6804, 0x6c38, 0x6cf3, 0x6d29, 0x745b, 0x76c8, 0x7a4e, 0x9834, + 0x82f1, 0x885b, 0x8a60, 0x92ed, 0x6db2, 0x75ab, 0x76ca, 0x99c5, + 0x60a6, 0x8b01, 0x8d8a, 0x95b2, 0x698e, 0x53ad, 0x5186, 0x5712, + 0x5830, 0x5944, 0x5bb4, 0x5ef6, 0x6028, 0x63a9, 0x63f4, 0x6cbf, + 0x6f14, 0x708e, 0x7114, 0x7159, 0x71d5, 0x733f, 0x7e01, 0x8276, + 0x82d1, 0x8597, 0x9060, 0x925b, 0x9d1b, 0x5869, 0x65bc, 0x6c5a, + 0x7525, 0x51f9, 0x592e, 0x5965, 0x5f80, 0x5fdc, + /* 0x32 */ + 0x62bc, 0x65fa, 0x6a2a, 0x6b27, 0x6bb4, 0x738b, 0x7fc1, 0x8956, + 0x9d2c, 0x9d0e, 0x9ec4, 0x5ca1, 0x6c96, 0x837b, 0x5104, 0x5c4b, + 0x61b6, 0x81c6, 0x6876, 0x7261, 0x4e59, 0x4ffa, 0x5378, 0x6069, + 0x6e29, 0x7a4f, 0x97f3, 0x4e0b, 0x5316, 0x4eee, 0x4f55, 0x4f3d, + 0x4fa1, 0x4f73, 0x52a0, 0x53ef, 0x5609, 0x590f, 0x5ac1, 0x5bb6, + 0x5be1, 0x79d1, 0x6687, 0x679c, 0x67b6, 0x6b4c, 0x6cb3, 0x706b, + 0x73c2, 0x798d, 0x79be, 0x7a3c, 0x7b87, 0x82b1, 0x82db, 0x8304, + 0x8377, 0x83ef, 0x83d3, 0x8766, 0x8ab2, 0x5629, 0x8ca8, 0x8fe6, + 0x904e, 0x971e, 0x868a, 0x4fc4, 0x5ce8, 0x6211, 0x7259, 0x753b, + 0x81e5, 0x82bd, 0x86fe, 0x8cc0, 0x96c5, 0x9913, 0x99d5, 0x4ecb, + 0x4f1a, 0x89e3, 0x56de, 0x584a, 0x58ca, 0x5efb, 0x5feb, 0x602a, + 0x6094, 0x6062, 0x61d0, 0x6212, 0x62d0, 0x6539, + /* 0x33 */ + 0x9b41, 0x6666, 0x68b0, 0x6d77, 0x7070, 0x754c, 0x7686, 0x7d75, + 0x82a5, 0x87f9, 0x958b, 0x968e, 0x8c9d, 0x51f1, 0x52be, 0x5916, + 0x54b3, 0x5bb3, 0x5d16, 0x6168, 0x6982, 0x6daf, 0x788d, 0x84cb, + 0x8857, 0x8a72, 0x93a7, 0x9ab8, 0x6d6c, 0x99a8, 0x86d9, 0x57a3, + 0x67ff, 0x86ce, 0x920e, 0x5283, 0x5687, 0x5404, 0x5ed3, 0x62e1, + 0x64b9, 0x683c, 0x6838, 0x6bbb, 0x7372, 0x78ba, 0x7a6b, 0x899a, + 0x89d2, 0x8d6b, 0x8f03, 0x90ed, 0x95a3, 0x9694, 0x9769, 0x5b66, + 0x5cb3, 0x697d, 0x984d, 0x984e, 0x639b, 0x7b20, 0x6a2b, 0x6a7f, + 0x68b6, 0x9c0d, 0x6f5f, 0x5272, 0x559d, 0x6070, 0x62ec, 0x6d3b, + 0x6e07, 0x6ed1, 0x845b, 0x8910, 0x8f44, 0x4e14, 0x9c39, 0x53f6, + 0x691b, 0x6a3a, 0x9784, 0x682a, 0x515c, 0x7ac3, 0x84b2, 0x91dc, + 0x938c, 0x565b, 0x9d28, 0x6822, 0x8305, 0x8431, + /* 0x34 */ + 0x7ca5, 0x5208, 0x82c5, 0x74e6, 0x4e7e, 0x4f83, 0x51a0, 0x5bd2, + 0x520a, 0x52d8, 0x52e7, 0x5dfb, 0x559a, 0x582a, 0x59e6, 0x5b8c, + 0x5b98, 0x5bdb, 0x5e72, 0x5e79, 0x60a3, 0x611f, 0x6163, 0x61be, + 0x63db, 0x6562, 0x67d1, 0x6853, 0x68fa, 0x6b3e, 0x6b53, 0x6c57, + 0x6f22, 0x6f97, 0x6f45, 0x74b0, 0x7518, 0x76e3, 0x770b, 0x7aff, + 0x7ba1, 0x7c21, 0x7de9, 0x7f36, 0x7ff0, 0x809d, 0x8266, 0x839e, + 0x89b3, 0x8acc, 0x8cab, 0x9084, 0x9451, 0x9593, 0x9591, 0x95a2, + 0x9665, 0x97d3, 0x9928, 0x8218, 0x4e38, 0x542b, 0x5cb8, 0x5dcc, + 0x73a9, 0x764c, 0x773c, 0x5ca9, 0x7feb, 0x8d0b, 0x96c1, 0x9811, + 0x9854, 0x9858, 0x4f01, 0x4f0e, 0x5371, 0x559c, 0x5668, 0x57fa, + 0x5947, 0x5b09, 0x5bc4, 0x5c90, 0x5e0c, 0x5e7e, 0x5fcc, 0x63ee, + 0x673a, 0x65d7, 0x65e2, 0x671f, 0x68cb, 0x68c4, + /* 0x35 */ + 0x6a5f, 0x5e30, 0x6bc5, 0x6c17, 0x6c7d, 0x757f, 0x7948, 0x5b63, + 0x7a00, 0x7d00, 0x5fbd, 0x898f, 0x8a18, 0x8cb4, 0x8d77, 0x8ecc, + 0x8f1d, 0x98e2, 0x9a0e, 0x9b3c, 0x4e80, 0x507d, 0x5100, 0x5993, + 0x5b9c, 0x622f, 0x6280, 0x64ec, 0x6b3a, 0x72a0, 0x7591, 0x7947, + 0x7fa9, 0x87fb, 0x8abc, 0x8b70, 0x63ac, 0x83ca, 0x97a0, 0x5409, + 0x5403, 0x55ab, 0x6854, 0x6a58, 0x8a70, 0x7827, 0x6775, 0x9ecd, + 0x5374, 0x5ba2, 0x811a, 0x8650, 0x9006, 0x4e18, 0x4e45, 0x4ec7, + 0x4f11, 0x53ca, 0x5438, 0x5bae, 0x5f13, 0x6025, 0x6551, 0x673d, + 0x6c42, 0x6c72, 0x6ce3, 0x7078, 0x7403, 0x7a76, 0x7aae, 0x7b08, + 0x7d1a, 0x7cfe, 0x7d66, 0x65e7, 0x725b, 0x53bb, 0x5c45, 0x5de8, + 0x62d2, 0x62e0, 0x6319, 0x6e20, 0x865a, 0x8a31, 0x8ddd, 0x92f8, + 0x6f01, 0x79a6, 0x9b5a, 0x4ea8, 0x4eab, 0x4eac, + /* 0x36 */ + 0x4f9b, 0x4fa0, 0x50d1, 0x5147, 0x7af6, 0x5171, 0x51f6, 0x5354, + 0x5321, 0x537f, 0x53eb, 0x55ac, 0x5883, 0x5ce1, 0x5f37, 0x5f4a, + 0x602f, 0x6050, 0x606d, 0x631f, 0x6559, 0x6a4b, 0x6cc1, 0x72c2, + 0x72ed, 0x77ef, 0x80f8, 0x8105, 0x8208, 0x854e, 0x90f7, 0x93e1, + 0x97ff, 0x9957, 0x9a5a, 0x4ef0, 0x51dd, 0x5c2d, 0x6681, 0x696d, + 0x5c40, 0x66f2, 0x6975, 0x7389, 0x6850, 0x7c81, 0x50c5, 0x52e4, + 0x5747, 0x5dfe, 0x9326, 0x65a4, 0x6b23, 0x6b3d, 0x7434, 0x7981, + 0x79bd, 0x7b4b, 0x7dca, 0x82b9, 0x83cc, 0x887f, 0x895f, 0x8b39, + 0x8fd1, 0x91d1, 0x541f, 0x9280, 0x4e5d, 0x5036, 0x53e5, 0x533a, + 0x72d7, 0x7396, 0x77e9, 0x82e6, 0x8eaf, 0x99c6, 0x99c8, 0x99d2, + 0x5177, 0x611a, 0x865e, 0x55b0, 0x7a7a, 0x5076, 0x5bd3, 0x9047, + 0x9685, 0x4e32, 0x6adb, 0x91e7, 0x5c51, 0x5c48, + /* 0x37 */ + 0x6398, 0x7a9f, 0x6c93, 0x9774, 0x8f61, 0x7aaa, 0x718a, 0x9688, + 0x7c82, 0x6817, 0x7e70, 0x6851, 0x936c, 0x52f2, 0x541b, 0x85ab, + 0x8a13, 0x7fa4, 0x8ecd, 0x90e1, 0x5366, 0x8888, 0x7941, 0x4fc2, + 0x50be, 0x5211, 0x5144, 0x5553, 0x572d, 0x73ea, 0x578b, 0x5951, + 0x5f62, 0x5f84, 0x6075, 0x6176, 0x6167, 0x61a9, 0x63b2, 0x643a, + 0x656c, 0x666f, 0x6842, 0x6e13, 0x7566, 0x7a3d, 0x7cfb, 0x7d4c, + 0x7d99, 0x7e4b, 0x7f6b, 0x830e, 0x834a, 0x86cd, 0x8a08, 0x8a63, + 0x8b66, 0x8efd, 0x981a, 0x9d8f, 0x82b8, 0x8fce, 0x9be8, 0x5287, + 0x621f, 0x6483, 0x6fc0, 0x9699, 0x6841, 0x5091, 0x6b20, 0x6c7a, + 0x6f54, 0x7a74, 0x7d50, 0x8840, 0x8a23, 0x6708, 0x4ef6, 0x5039, + 0x5026, 0x5065, 0x517c, 0x5238, 0x5263, 0x55a7, 0x570f, 0x5805, + 0x5acc, 0x5efa, 0x61b2, 0x61f8, 0x62f3, 0x6372, + /* 0x38 */ + 0x691c, 0x6a29, 0x727d, 0x72ac, 0x732e, 0x7814, 0x786f, 0x7d79, + 0x770c, 0x80a9, 0x898b, 0x8b19, 0x8ce2, 0x8ed2, 0x9063, 0x9375, + 0x967a, 0x9855, 0x9a13, 0x9e78, 0x5143, 0x539f, 0x53b3, 0x5e7b, + 0x5f26, 0x6e1b, 0x6e90, 0x7384, 0x73fe, 0x7d43, 0x8237, 0x8a00, + 0x8afa, 0x9650, 0x4e4e, 0x500b, 0x53e4, 0x547c, 0x56fa, 0x59d1, + 0x5b64, 0x5df1, 0x5eab, 0x5f27, 0x6238, 0x6545, 0x67af, 0x6e56, + 0x72d0, 0x7cca, 0x88b4, 0x80a1, 0x80e1, 0x83f0, 0x864e, 0x8a87, + 0x8de8, 0x9237, 0x96c7, 0x9867, 0x9f13, 0x4e94, 0x4e92, 0x4f0d, + 0x5348, 0x5449, 0x543e, 0x5a2f, 0x5f8c, 0x5fa1, 0x609f, 0x68a7, + 0x6a8e, 0x745a, 0x7881, 0x8a9e, 0x8aa4, 0x8b77, 0x9190, 0x4e5e, + 0x9bc9, 0x4ea4, 0x4f7c, 0x4faf, 0x5019, 0x5016, 0x5149, 0x516c, + 0x529f, 0x52b9, 0x52fe, 0x539a, 0x53e3, 0x5411, + /* 0x39 */ + 0x540e, 0x5589, 0x5751, 0x57a2, 0x597d, 0x5b54, 0x5b5d, 0x5b8f, + 0x5de5, 0x5de7, 0x5df7, 0x5e78, 0x5e83, 0x5e9a, 0x5eb7, 0x5f18, + 0x6052, 0x614c, 0x6297, 0x62d8, 0x63a7, 0x653b, 0x6602, 0x6643, + 0x66f4, 0x676d, 0x6821, 0x6897, 0x69cb, 0x6c5f, 0x6d2a, 0x6d69, + 0x6e2f, 0x6e9d, 0x7532, 0x7687, 0x786c, 0x7a3f, 0x7ce0, 0x7d05, + 0x7d18, 0x7d5e, 0x7db1, 0x8015, 0x8003, 0x80af, 0x80b1, 0x8154, + 0x818f, 0x822a, 0x8352, 0x884c, 0x8861, 0x8b1b, 0x8ca2, 0x8cfc, + 0x90ca, 0x9175, 0x9271, 0x783f, 0x92fc, 0x95a4, 0x964d, 0x9805, + 0x9999, 0x9ad8, 0x9d3b, 0x525b, 0x52ab, 0x53f7, 0x5408, 0x58d5, + 0x62f7, 0x6fe0, 0x8c6a, 0x8f5f, 0x9eb9, 0x514b, 0x523b, 0x544a, + 0x56fd, 0x7a40, 0x9177, 0x9d60, 0x9ed2, 0x7344, 0x6f09, 0x8170, + 0x7511, 0x5ffd, 0x60da, 0x9aa8, 0x72db, 0x8fbc, + /* 0x3a */ + 0x6b64, 0x9803, 0x4eca, 0x56f0, 0x5764, 0x58be, 0x5a5a, 0x6068, + 0x61c7, 0x660f, 0x6606, 0x6839, 0x68b1, 0x6df7, 0x75d5, 0x7d3a, + 0x826e, 0x9b42, 0x4e9b, 0x4f50, 0x53c9, 0x5506, 0x5d6f, 0x5de6, + 0x5dee, 0x67fb, 0x6c99, 0x7473, 0x7802, 0x8a50, 0x9396, 0x88df, + 0x5750, 0x5ea7, 0x632b, 0x50b5, 0x50ac, 0x518d, 0x6700, 0x54c9, + 0x585e, 0x59bb, 0x5bb0, 0x5f69, 0x624d, 0x63a1, 0x683d, 0x6b73, + 0x6e08, 0x707d, 0x91c7, 0x7280, 0x7815, 0x7826, 0x796d, 0x658e, + 0x7d30, 0x83dc, 0x88c1, 0x8f09, 0x969b, 0x5264, 0x5728, 0x6750, + 0x7f6a, 0x8ca1, 0x51b4, 0x5742, 0x962a, 0x583a, 0x698a, 0x80b4, + 0x54b2, 0x5d0e, 0x57fc, 0x7895, 0x9dfa, 0x4f5c, 0x524a, 0x548b, + 0x643e, 0x6628, 0x6714, 0x67f5, 0x7a84, 0x7b56, 0x7d22, 0x932f, + 0x685c, 0x9bad, 0x7b39, 0x5319, 0x518a, 0x5237, + /* 0x3b */ + 0x5bdf, 0x62f6, 0x64ae, 0x64e6, 0x672d, 0x6bba, 0x85a9, 0x96d1, + 0x7690, 0x9bd6, 0x634c, 0x9306, 0x9bab, 0x76bf, 0x6652, 0x4e09, + 0x5098, 0x53c2, 0x5c71, 0x60e8, 0x6492, 0x6563, 0x685f, 0x71e6, + 0x73ca, 0x7523, 0x7b97, 0x7e82, 0x8695, 0x8b83, 0x8cdb, 0x9178, + 0x9910, 0x65ac, 0x66ab, 0x6b8b, 0x4ed5, 0x4ed4, 0x4f3a, 0x4f7f, + 0x523a, 0x53f8, 0x53f2, 0x55e3, 0x56db, 0x58eb, 0x59cb, 0x59c9, + 0x59ff, 0x5b50, 0x5c4d, 0x5e02, 0x5e2b, 0x5fd7, 0x601d, 0x6307, + 0x652f, 0x5b5c, 0x65af, 0x65bd, 0x65e8, 0x679d, 0x6b62, 0x6b7b, + 0x6c0f, 0x7345, 0x7949, 0x79c1, 0x7cf8, 0x7d19, 0x7d2b, 0x80a2, + 0x8102, 0x81f3, 0x8996, 0x8a5e, 0x8a69, 0x8a66, 0x8a8c, 0x8aee, + 0x8cc7, 0x8cdc, 0x96cc, 0x98fc, 0x6b6f, 0x4e8b, 0x4f3c, 0x4f8d, + 0x5150, 0x5b57, 0x5bfa, 0x6148, 0x6301, 0x6642, + /* 0x3c */ + 0x6b21, 0x6ecb, 0x6cbb, 0x723e, 0x74bd, 0x75d4, 0x78c1, 0x793a, + 0x800c, 0x8033, 0x81ea, 0x8494, 0x8f9e, 0x6c50, 0x9e7f, 0x5f0f, + 0x8b58, 0x9d2b, 0x7afa, 0x8ef8, 0x5b8d, 0x96eb, 0x4e03, 0x53f1, + 0x57f7, 0x5931, 0x5ac9, 0x5ba4, 0x6089, 0x6e7f, 0x6f06, 0x75be, + 0x8cea, 0x5b9f, 0x8500, 0x7be0, 0x5072, 0x67f4, 0x829d, 0x5c61, + 0x854a, 0x7e1e, 0x820e, 0x5199, 0x5c04, 0x6368, 0x8d66, 0x659c, + 0x716e, 0x793e, 0x7d17, 0x8005, 0x8b1d, 0x8eca, 0x906e, 0x86c7, + 0x90aa, 0x501f, 0x52fa, 0x5c3a, 0x6753, 0x707c, 0x7235, 0x914c, + 0x91c8, 0x932b, 0x82e5, 0x5bc2, 0x5f31, 0x60f9, 0x4e3b, 0x53d6, + 0x5b88, 0x624b, 0x6731, 0x6b8a, 0x72e9, 0x73e0, 0x7a2e, 0x816b, + 0x8da3, 0x9152, 0x9996, 0x5112, 0x53d7, 0x546a, 0x5bff, 0x6388, + 0x6a39, 0x7dac, 0x9700, 0x56da, 0x53ce, 0x5468, + /* 0x3d */ + 0x5b97, 0x5c31, 0x5dde, 0x4fee, 0x6101, 0x62fe, 0x6d32, 0x79c0, + 0x79cb, 0x7d42, 0x7e4d, 0x7fd2, 0x81ed, 0x821f, 0x8490, 0x8846, + 0x8972, 0x8b90, 0x8e74, 0x8f2f, 0x9031, 0x914b, 0x916c, 0x96c6, + 0x919c, 0x4ec0, 0x4f4f, 0x5145, 0x5341, 0x5f93, 0x620e, 0x67d4, + 0x6c41, 0x6e0b, 0x7363, 0x7e26, 0x91cd, 0x9283, 0x53d4, 0x5919, + 0x5bbf, 0x6dd1, 0x795d, 0x7e2e, 0x7c9b, 0x587e, 0x719f, 0x51fa, + 0x8853, 0x8ff0, 0x4fca, 0x5cfb, 0x6625, 0x77ac, 0x7ae3, 0x821c, + 0x99ff, 0x51c6, 0x5faa, 0x65ec, 0x696f, 0x6b89, 0x6df3, 0x6e96, + 0x6f64, 0x76fe, 0x7d14, 0x5de1, 0x9075, 0x9187, 0x9806, 0x51e6, + 0x521d, 0x6240, 0x6691, 0x66d9, 0x6e1a, 0x5eb6, 0x7dd2, 0x7f72, + 0x66f8, 0x85af, 0x85f7, 0x8af8, 0x52a9, 0x53d9, 0x5973, 0x5e8f, + 0x5f90, 0x6055, 0x92e4, 0x9664, 0x50b7, 0x511f, + /* 0x3e */ + 0x52dd, 0x5320, 0x5347, 0x53ec, 0x54e8, 0x5546, 0x5531, 0x5617, + 0x5968, 0x59be, 0x5a3c, 0x5bb5, 0x5c06, 0x5c0f, 0x5c11, 0x5c1a, + 0x5e84, 0x5e8a, 0x5ee0, 0x5f70, 0x627f, 0x6284, 0x62db, 0x638c, + 0x6377, 0x6607, 0x660c, 0x662d, 0x6676, 0x677e, 0x68a2, 0x6a1f, + 0x6a35, 0x6cbc, 0x6d88, 0x6e09, 0x6e58, 0x713c, 0x7126, 0x7167, + 0x75c7, 0x7701, 0x785d, 0x7901, 0x7965, 0x79f0, 0x7ae0, 0x7b11, + 0x7ca7, 0x7d39, 0x8096, 0x83d6, 0x848b, 0x8549, 0x885d, 0x88f3, + 0x8a1f, 0x8a3c, 0x8a54, 0x8a73, 0x8c61, 0x8cde, 0x91a4, 0x9266, + 0x937e, 0x9418, 0x969c, 0x9798, 0x4e0a, 0x4e08, 0x4e1e, 0x4e57, + 0x5197, 0x5270, 0x57ce, 0x5834, 0x58cc, 0x5b22, 0x5e38, 0x60c5, + 0x64fe, 0x6761, 0x6756, 0x6d44, 0x72b6, 0x7573, 0x7a63, 0x84b8, + 0x8b72, 0x91b8, 0x9320, 0x5631, 0x57f4, 0x98fe, + /* 0x3f */ + 0x62ed, 0x690d, 0x6b96, 0x71ed, 0x7e54, 0x8077, 0x8272, 0x89e6, + 0x98df, 0x8755, 0x8fb1, 0x5c3b, 0x4f38, 0x4fe1, 0x4fb5, 0x5507, + 0x5a20, 0x5bdd, 0x5be9, 0x5fc3, 0x614e, 0x632f, 0x65b0, 0x664b, + 0x68ee, 0x699b, 0x6d78, 0x6df1, 0x7533, 0x75b9, 0x771f, 0x795e, + 0x79e6, 0x7d33, 0x81e3, 0x82af, 0x85aa, 0x89aa, 0x8a3a, 0x8eab, + 0x8f9b, 0x9032, 0x91dd, 0x9707, 0x4eba, 0x4ec1, 0x5203, 0x5875, + 0x58ec, 0x5c0b, 0x751a, 0x5c3d, 0x814e, 0x8a0a, 0x8fc5, 0x9663, + 0x976d, 0x7b25, 0x8acf, 0x9808, 0x9162, 0x56f3, 0x53a8, 0x9017, + 0x5439, 0x5782, 0x5e25, 0x63a8, 0x6c34, 0x708a, 0x7761, 0x7c8b, + 0x7fe0, 0x8870, 0x9042, 0x9154, 0x9310, 0x9318, 0x968f, 0x745e, + 0x9ac4, 0x5d07, 0x5d69, 0x6570, 0x67a2, 0x8da8, 0x96db, 0x636e, + 0x6749, 0x6919, 0x83c5, 0x9817, 0x96c0, 0x88fe, + /* 0x40 */ + 0x6f84, 0x647a, 0x5bf8, 0x4e16, 0x702c, 0x755d, 0x662f, 0x51c4, + 0x5236, 0x52e2, 0x59d3, 0x5f81, 0x6027, 0x6210, 0x653f, 0x6574, + 0x661f, 0x6674, 0x68f2, 0x6816, 0x6b63, 0x6e05, 0x7272, 0x751f, + 0x76db, 0x7cbe, 0x8056, 0x58f0, 0x88fd, 0x897f, 0x8aa0, 0x8a93, + 0x8acb, 0x901d, 0x9192, 0x9752, 0x9759, 0x6589, 0x7a0e, 0x8106, + 0x96bb, 0x5e2d, 0x60dc, 0x621a, 0x65a5, 0x6614, 0x6790, 0x77f3, + 0x7a4d, 0x7c4d, 0x7e3e, 0x810a, 0x8cac, 0x8d64, 0x8de1, 0x8e5f, + 0x78a9, 0x5207, 0x62d9, 0x63a5, 0x6442, 0x6298, 0x8a2d, 0x7a83, + 0x7bc0, 0x8aac, 0x96ea, 0x7d76, 0x820c, 0x8749, 0x4ed9, 0x5148, + 0x5343, 0x5360, 0x5ba3, 0x5c02, 0x5c16, 0x5ddd, 0x6226, 0x6247, + 0x64b0, 0x6813, 0x6834, 0x6cc9, 0x6d45, 0x6d17, 0x67d3, 0x6f5c, + 0x714e, 0x717d, 0x65cb, 0x7a7f, 0x7bad, 0x7dda, + /* 0x41 */ + 0x7e4a, 0x7fa8, 0x817a, 0x821b, 0x8239, 0x85a6, 0x8a6e, 0x8cce, + 0x8df5, 0x9078, 0x9077, 0x92ad, 0x9291, 0x9583, 0x9bae, 0x524d, + 0x5584, 0x6f38, 0x7136, 0x5168, 0x7985, 0x7e55, 0x81b3, 0x7cce, + 0x564c, 0x5851, 0x5ca8, 0x63aa, 0x66fe, 0x66fd, 0x695a, 0x72d9, + 0x758f, 0x758e, 0x790e, 0x7956, 0x79df, 0x7c97, 0x7d20, 0x7d44, + 0x8607, 0x8a34, 0x963b, 0x9061, 0x9f20, 0x50e7, 0x5275, 0x53cc, + 0x53e2, 0x5009, 0x55aa, 0x58ee, 0x594f, 0x723d, 0x5b8b, 0x5c64, + 0x531d, 0x60e3, 0x60f3, 0x635c, 0x6383, 0x633f, 0x63bb, 0x64cd, + 0x65e9, 0x66f9, 0x5de3, 0x69cd, 0x69fd, 0x6f15, 0x71e5, 0x4e89, + 0x75e9, 0x76f8, 0x7a93, 0x7cdf, 0x7dcf, 0x7d9c, 0x8061, 0x8349, + 0x8358, 0x846c, 0x84bc, 0x85fb, 0x88c5, 0x8d70, 0x9001, 0x906d, + 0x9397, 0x971c, 0x9a12, 0x50cf, 0x5897, 0x618e, + /* 0x42 */ + 0x81d3, 0x8535, 0x8d08, 0x9020, 0x4fc3, 0x5074, 0x5247, 0x5373, + 0x606f, 0x6349, 0x675f, 0x6e2c, 0x8db3, 0x901f, 0x4fd7, 0x5c5e, + 0x8cca, 0x65cf, 0x7d9a, 0x5352, 0x8896, 0x5176, 0x63c3, 0x5b58, + 0x5b6b, 0x5c0a, 0x640d, 0x6751, 0x905c, 0x4ed6, 0x591a, 0x592a, + 0x6c70, 0x8a51, 0x553e, 0x5815, 0x59a5, 0x60f0, 0x6253, 0x67c1, + 0x8235, 0x6955, 0x9640, 0x99c4, 0x9a28, 0x4f53, 0x5806, 0x5bfe, + 0x8010, 0x5cb1, 0x5e2f, 0x5f85, 0x6020, 0x614b, 0x6234, 0x66ff, + 0x6cf0, 0x6ede, 0x80ce, 0x817f, 0x82d4, 0x888b, 0x8cb8, 0x9000, + 0x902e, 0x968a, 0x9edb, 0x9bdb, 0x4ee3, 0x53f0, 0x5927, 0x7b2c, + 0x918d, 0x984c, 0x9df9, 0x6edd, 0x7027, 0x5353, 0x5544, 0x5b85, + 0x6258, 0x629e, 0x62d3, 0x6ca2, 0x6fef, 0x7422, 0x8a17, 0x9438, + 0x6fc1, 0x8afe, 0x8338, 0x51e7, 0x86f8, 0x53ea, + /* 0x43 */ + 0x53e9, 0x4f46, 0x9054, 0x8fb0, 0x596a, 0x8131, 0x5dfd, 0x7aea, + 0x8fbf, 0x68da, 0x8c37, 0x72f8, 0x9c48, 0x6a3d, 0x8ab0, 0x4e39, + 0x5358, 0x5606, 0x5766, 0x62c5, 0x63a2, 0x65e6, 0x6b4e, 0x6de1, + 0x6e5b, 0x70ad, 0x77ed, 0x7aef, 0x7baa, 0x7dbb, 0x803d, 0x80c6, + 0x86cb, 0x8a95, 0x935b, 0x56e3, 0x58c7, 0x5f3e, 0x65ad, 0x6696, + 0x6a80, 0x6bb5, 0x7537, 0x8ac7, 0x5024, 0x77e5, 0x5730, 0x5f1b, + 0x6065, 0x667a, 0x6c60, 0x75f4, 0x7a1a, 0x7f6e, 0x81f4, 0x8718, + 0x9045, 0x99b3, 0x7bc9, 0x755c, 0x7af9, 0x7b51, 0x84c4, 0x9010, + 0x79e9, 0x7a92, 0x8336, 0x5ae1, 0x7740, 0x4e2d, 0x4ef2, 0x5b99, + 0x5fe0, 0x62bd, 0x663c, 0x67f1, 0x6ce8, 0x866b, 0x8877, 0x8a3b, + 0x914e, 0x92f3, 0x99d0, 0x6a17, 0x7026, 0x732a, 0x82e7, 0x8457, + 0x8caf, 0x4e01, 0x5146, 0x51cb, 0x558b, 0x5bf5, + /* 0x44 */ + 0x5e16, 0x5e33, 0x5e81, 0x5f14, 0x5f35, 0x5f6b, 0x5fb4, 0x61f2, + 0x6311, 0x66a2, 0x671d, 0x6f6e, 0x7252, 0x753a, 0x773a, 0x8074, + 0x8139, 0x8178, 0x8776, 0x8abf, 0x8adc, 0x8d85, 0x8df3, 0x929a, + 0x9577, 0x9802, 0x9ce5, 0x52c5, 0x6357, 0x76f4, 0x6715, 0x6c88, + 0x73cd, 0x8cc3, 0x93ae, 0x9673, 0x6d25, 0x589c, 0x690e, 0x69cc, + 0x8ffd, 0x939a, 0x75db, 0x901a, 0x585a, 0x6802, 0x63b4, 0x69fb, + 0x4f43, 0x6f2c, 0x67d8, 0x8fbb, 0x8526, 0x7db4, 0x9354, 0x693f, + 0x6f70, 0x576a, 0x58f7, 0x5b2c, 0x7d2c, 0x722a, 0x540a, 0x91e3, + 0x9db4, 0x4ead, 0x4f4e, 0x505c, 0x5075, 0x5243, 0x8c9e, 0x5448, + 0x5824, 0x5b9a, 0x5e1d, 0x5e95, 0x5ead, 0x5ef7, 0x5f1f, 0x608c, + 0x62b5, 0x633a, 0x63d0, 0x68af, 0x6c40, 0x7887, 0x798e, 0x7a0b, + 0x7de0, 0x8247, 0x8a02, 0x8ae6, 0x8e44, 0x9013, + /* 0x45 */ + 0x90b8, 0x912d, 0x91d8, 0x9f0e, 0x6ce5, 0x6458, 0x64e2, 0x6575, + 0x6ef4, 0x7684, 0x7b1b, 0x9069, 0x93d1, 0x6eba, 0x54f2, 0x5fb9, + 0x64a4, 0x8f4d, 0x8fed, 0x9244, 0x5178, 0x586b, 0x5929, 0x5c55, + 0x5e97, 0x6dfb, 0x7e8f, 0x751c, 0x8cbc, 0x8ee2, 0x985b, 0x70b9, + 0x4f1d, 0x6bbf, 0x6fb1, 0x7530, 0x96fb, 0x514e, 0x5410, 0x5835, + 0x5857, 0x59ac, 0x5c60, 0x5f92, 0x6597, 0x675c, 0x6e21, 0x767b, + 0x83df, 0x8ced, 0x9014, 0x90fd, 0x934d, 0x7825, 0x783a, 0x52aa, + 0x5ea6, 0x571f, 0x5974, 0x6012, 0x5012, 0x515a, 0x51ac, 0x51cd, + 0x5200, 0x5510, 0x5854, 0x5858, 0x5957, 0x5b95, 0x5cf6, 0x5d8b, + 0x60bc, 0x6295, 0x642d, 0x6771, 0x6843, 0x68bc, 0x68df, 0x76d7, + 0x6dd8, 0x6e6f, 0x6d9b, 0x706f, 0x71c8, 0x5f53, 0x75d8, 0x7977, + 0x7b49, 0x7b54, 0x7b52, 0x7cd6, 0x7d71, 0x5230, + /* 0x46 */ + 0x8463, 0x8569, 0x85e4, 0x8a0e, 0x8b04, 0x8c46, 0x8e0f, 0x9003, + 0x900f, 0x9419, 0x9676, 0x982d, 0x9a30, 0x95d8, 0x50cd, 0x52d5, + 0x540c, 0x5802, 0x5c0e, 0x61a7, 0x649e, 0x6d1e, 0x77b3, 0x7ae5, + 0x80f4, 0x8404, 0x9053, 0x9285, 0x5ce0, 0x9d07, 0x533f, 0x5f97, + 0x5fb3, 0x6d9c, 0x7279, 0x7763, 0x79bf, 0x7be4, 0x6bd2, 0x72ec, + 0x8aad, 0x6803, 0x6a61, 0x51f8, 0x7a81, 0x6934, 0x5c4a, 0x9cf6, + 0x82eb, 0x5bc5, 0x9149, 0x701e, 0x5678, 0x5c6f, 0x60c7, 0x6566, + 0x6c8c, 0x8c5a, 0x9041, 0x9813, 0x5451, 0x66c7, 0x920d, 0x5948, + 0x90a3, 0x5185, 0x4e4d, 0x51ea, 0x8599, 0x8b0e, 0x7058, 0x637a, + 0x934b, 0x6962, 0x99b4, 0x7e04, 0x7577, 0x5357, 0x6960, 0x8edf, + 0x96e3, 0x6c5d, 0x4e8c, 0x5c3c, 0x5f10, 0x8fe9, 0x5302, 0x8cd1, + 0x8089, 0x8679, 0x5eff, 0x65e5, 0x4e73, 0x5165, + /* 0x47 */ + 0x5982, 0x5c3f, 0x97ee, 0x4efb, 0x598a, 0x5fcd, 0x8a8d, 0x6fe1, + 0x79b0, 0x7962, 0x5be7, 0x8471, 0x732b, 0x71b1, 0x5e74, 0x5ff5, + 0x637b, 0x649a, 0x71c3, 0x7c98, 0x4e43, 0x5efc, 0x4e4b, 0x57dc, + 0x56a2, 0x60a9, 0x6fc3, 0x7d0d, 0x80fd, 0x8133, 0x81bf, 0x8fb2, + 0x8997, 0x86a4, 0x5df4, 0x628a, 0x64ad, 0x8987, 0x6777, 0x6ce2, + 0x6d3e, 0x7436, 0x7834, 0x5a46, 0x7f75, 0x82ad, 0x99ac, 0x4ff3, + 0x5ec3, 0x62dd, 0x6392, 0x6557, 0x676f, 0x76c3, 0x724c, 0x80cc, + 0x80ba, 0x8f29, 0x914d, 0x500d, 0x57f9, 0x5a92, 0x6885, 0x6973, + 0x7164, 0x72fd, 0x8cb7, 0x58f2, 0x8ce0, 0x966a, 0x9019, 0x877f, + 0x79e4, 0x77e7, 0x8429, 0x4f2f, 0x5265, 0x535a, 0x62cd, 0x67cf, + 0x6cca, 0x767d, 0x7b94, 0x7c95, 0x8236, 0x8584, 0x8feb, 0x66dd, + 0x6f20, 0x7206, 0x7e1b, 0x83ab, 0x99c1, 0x9ea6, + /* 0x48 */ + 0x51fd, 0x7bb1, 0x7872, 0x7bb8, 0x8087, 0x7b48, 0x6ae8, 0x5e61, + 0x808c, 0x7551, 0x7560, 0x516b, 0x9262, 0x6e8c, 0x767a, 0x9197, + 0x9aea, 0x4f10, 0x7f70, 0x629c, 0x7b4f, 0x95a5, 0x9ce9, 0x567a, + 0x5859, 0x86e4, 0x96bc, 0x4f34, 0x5224, 0x534a, 0x53cd, 0x53db, + 0x5e06, 0x642c, 0x6591, 0x677f, 0x6c3e, 0x6c4e, 0x7248, 0x72af, + 0x73ed, 0x7554, 0x7e41, 0x822c, 0x85e9, 0x8ca9, 0x7bc4, 0x91c6, + 0x7169, 0x9812, 0x98ef, 0x633d, 0x6669, 0x756a, 0x76e4, 0x78d0, + 0x8543, 0x86ee, 0x532a, 0x5351, 0x5426, 0x5983, 0x5e87, 0x5f7c, + 0x60b2, 0x6249, 0x6279, 0x62ab, 0x6590, 0x6bd4, 0x6ccc, 0x75b2, + 0x76ae, 0x7891, 0x79d8, 0x7dcb, 0x7f77, 0x80a5, 0x88ab, 0x8ab9, + 0x8cbb, 0x907f, 0x975e, 0x98db, 0x6a0b, 0x7c38, 0x5099, 0x5c3e, + 0x5fae, 0x6787, 0x6bd8, 0x7435, 0x7709, 0x7f8e, + /* 0x49 */ + 0x9f3b, 0x67ca, 0x7a17, 0x5339, 0x758b, 0x9aed, 0x5f66, 0x819d, + 0x83f1, 0x8098, 0x5f3c, 0x5fc5, 0x7562, 0x7b46, 0x903c, 0x6867, + 0x59eb, 0x5a9b, 0x7d10, 0x767e, 0x8b2c, 0x4ff5, 0x5f6a, 0x6a19, + 0x6c37, 0x6f02, 0x74e2, 0x7968, 0x8868, 0x8a55, 0x8c79, 0x5edf, + 0x63cf, 0x75c5, 0x79d2, 0x82d7, 0x9328, 0x92f2, 0x849c, 0x86ed, + 0x9c2d, 0x54c1, 0x5f6c, 0x658c, 0x6d5c, 0x7015, 0x8ca7, 0x8cd3, + 0x983b, 0x654f, 0x74f6, 0x4e0d, 0x4ed8, 0x57e0, 0x592b, 0x5a66, + 0x5bcc, 0x51a8, 0x5e03, 0x5e9c, 0x6016, 0x6276, 0x6577, 0x65a7, + 0x666e, 0x6d6e, 0x7236, 0x7b26, 0x8150, 0x819a, 0x8299, 0x8b5c, + 0x8ca0, 0x8ce6, 0x8d74, 0x961c, 0x9644, 0x4fae, 0x64ab, 0x6b66, + 0x821e, 0x8461, 0x856a, 0x90e8, 0x5c01, 0x6953, 0x98a8, 0x847a, + 0x8557, 0x4f0f, 0x526f, 0x5fa9, 0x5e45, 0x670d, + /* 0x4a */ + 0x798f, 0x8179, 0x8907, 0x8986, 0x6df5, 0x5f17, 0x6255, 0x6cb8, + 0x4ecf, 0x7269, 0x9b92, 0x5206, 0x543b, 0x5674, 0x58b3, 0x61a4, + 0x626e, 0x711a, 0x596e, 0x7c89, 0x7cde, 0x7d1b, 0x96f0, 0x6587, + 0x805e, 0x4e19, 0x4f75, 0x5175, 0x5840, 0x5e63, 0x5e73, 0x5f0a, + 0x67c4, 0x4e26, 0x853d, 0x9589, 0x965b, 0x7c73, 0x9801, 0x50fb, + 0x58c1, 0x7656, 0x78a7, 0x5225, 0x77a5, 0x8511, 0x7b86, 0x504f, + 0x5909, 0x7247, 0x7bc7, 0x7de8, 0x8fba, 0x8fd4, 0x904d, 0x4fbf, + 0x52c9, 0x5a29, 0x5f01, 0x97ad, 0x4fdd, 0x8217, 0x92ea, 0x5703, + 0x6355, 0x6b69, 0x752b, 0x88dc, 0x8f14, 0x7a42, 0x52df, 0x5893, + 0x6155, 0x620a, 0x66ae, 0x6bcd, 0x7c3f, 0x83e9, 0x5023, 0x4ff8, + 0x5305, 0x5446, 0x5831, 0x5949, 0x5b9d, 0x5cf0, 0x5cef, 0x5d29, + 0x5e96, 0x62b1, 0x6367, 0x653e, 0x65b9, 0x670b, + /* 0x4b */ + 0x6cd5, 0x6ce1, 0x70f9, 0x7832, 0x7e2b, 0x80de, 0x82b3, 0x840c, + 0x84ec, 0x8702, 0x8912, 0x8a2a, 0x8c4a, 0x90a6, 0x92d2, 0x98fd, + 0x9cf3, 0x9d6c, 0x4e4f, 0x4ea1, 0x508d, 0x5256, 0x574a, 0x59a8, + 0x5e3d, 0x5fd8, 0x5fd9, 0x623f, 0x66b4, 0x671b, 0x67d0, 0x68d2, + 0x5192, 0x7d21, 0x80aa, 0x81a8, 0x8b00, 0x8c8c, 0x8cbf, 0x927e, + 0x9632, 0x5420, 0x982c, 0x5317, 0x50d5, 0x535c, 0x58a8, 0x64b2, + 0x6734, 0x7267, 0x7766, 0x7a46, 0x91e6, 0x52c3, 0x6ca1, 0x6b86, + 0x5800, 0x5e4c, 0x5954, 0x672c, 0x7ffb, 0x51e1, 0x76c6, 0x6469, + 0x78e8, 0x9b54, 0x9ebb, 0x57cb, 0x59b9, 0x6627, 0x679a, 0x6bce, + 0x54e9, 0x69d9, 0x5e55, 0x819c, 0x6795, 0x9baa, 0x67fe, 0x9c52, + 0x685d, 0x4ea6, 0x4fe3, 0x53c8, 0x62b9, 0x672b, 0x6cab, 0x8fc4, + 0x4fad, 0x7e6d, 0x9ebf, 0x4e07, 0x6162, 0x6e80, + /* 0x4c */ + 0x6f2b, 0x8513, 0x5473, 0x672a, 0x9b45, 0x5df3, 0x7b95, 0x5cac, + 0x5bc6, 0x871c, 0x6e4a, 0x84d1, 0x7a14, 0x8108, 0x5999, 0x7c8d, + 0x6c11, 0x7720, 0x52d9, 0x5922, 0x7121, 0x725f, 0x77db, 0x9727, + 0x9d61, 0x690b, 0x5a7f, 0x5a18, 0x51a5, 0x540d, 0x547d, 0x660e, + 0x76df, 0x8ff7, 0x9298, 0x9cf4, 0x59ea, 0x725d, 0x6ec5, 0x514d, + 0x68c9, 0x7dbf, 0x7dec, 0x9762, 0x9eba, 0x6478, 0x6a21, 0x8302, + 0x5984, 0x5b5f, 0x6bdb, 0x731b, 0x76f2, 0x7db2, 0x8017, 0x8499, + 0x5132, 0x6728, 0x9ed9, 0x76ee, 0x6762, 0x52ff, 0x9905, 0x5c24, + 0x623b, 0x7c7e, 0x8cb0, 0x554f, 0x60b6, 0x7d0b, 0x9580, 0x5301, + 0x4e5f, 0x51b6, 0x591c, 0x723a, 0x8036, 0x91ce, 0x5f25, 0x77e2, + 0x5384, 0x5f79, 0x7d04, 0x85ac, 0x8a33, 0x8e8d, 0x9756, 0x67f3, + 0x85ae, 0x9453, 0x6109, 0x6108, 0x6cb9, 0x7652, + /* 0x4d */ + 0x8aed, 0x8f38, 0x552f, 0x4f51, 0x512a, 0x52c7, 0x53cb, 0x5ba5, + 0x5e7d, 0x60a0, 0x6182, 0x63d6, 0x6709, 0x67da, 0x6e67, 0x6d8c, + 0x7336, 0x7337, 0x7531, 0x7950, 0x88d5, 0x8a98, 0x904a, 0x9091, + 0x90f5, 0x96c4, 0x878d, 0x5915, 0x4e88, 0x4f59, 0x4e0e, 0x8a89, + 0x8f3f, 0x9810, 0x50ad, 0x5e7c, 0x5996, 0x5bb9, 0x5eb8, 0x63da, + 0x63fa, 0x64c1, 0x66dc, 0x694a, 0x69d8, 0x6d0b, 0x6eb6, 0x7194, + 0x7528, 0x7aaf, 0x7f8a, 0x8000, 0x8449, 0x84c9, 0x8981, 0x8b21, + 0x8e0a, 0x9065, 0x967d, 0x990a, 0x617e, 0x6291, 0x6b32, 0x6c83, + 0x6d74, 0x7fcc, 0x7ffc, 0x6dc0, 0x7f85, 0x87ba, 0x88f8, 0x6765, + 0x83b1, 0x983c, 0x96f7, 0x6d1b, 0x7d61, 0x843d, 0x916a, 0x4e71, + 0x5375, 0x5d50, 0x6b04, 0x6feb, 0x85cd, 0x862d, 0x89a7, 0x5229, + 0x540f, 0x5c65, 0x674e, 0x68a8, 0x7406, 0x7483, + /* 0x4e */ + 0x75e2, 0x88cf, 0x88e1, 0x91cc, 0x96e2, 0x9678, 0x5f8b, 0x7387, + 0x7acb, 0x844e, 0x63a0, 0x7565, 0x5289, 0x6d41, 0x6e9c, 0x7409, + 0x7559, 0x786b, 0x7c92, 0x9686, 0x7adc, 0x9f8d, 0x4fb6, 0x616e, + 0x65c5, 0x865c, 0x4e86, 0x4eae, 0x50da, 0x4e21, 0x51cc, 0x5bee, + 0x6599, 0x6881, 0x6dbc, 0x731f, 0x7642, 0x77ad, 0x7a1c, 0x7ce7, + 0x826f, 0x8ad2, 0x907c, 0x91cf, 0x9675, 0x9818, 0x529b, 0x7dd1, + 0x502b, 0x5398, 0x6797, 0x6dcb, 0x71d0, 0x7433, 0x81e8, 0x8f2a, + 0x96a3, 0x9c57, 0x9e9f, 0x7460, 0x5841, 0x6d99, 0x7d2f, 0x985e, + 0x4ee4, 0x4f36, 0x4f8b, 0x51b7, 0x52b1, 0x5dba, 0x601c, 0x73b2, + 0x793c, 0x82d3, 0x9234, 0x96b7, 0x96f6, 0x970a, 0x9e97, 0x9f62, + 0x66a6, 0x6b74, 0x5217, 0x52a3, 0x70c8, 0x88c2, 0x5ec9, 0x604b, + 0x6190, 0x6f23, 0x7149, 0x7c3e, 0x7df4, 0x806f, + /* 0x4f */ + 0x84ee, 0x9023, 0x932c, 0x5442, 0x9b6f, 0x6ad3, 0x7089, 0x8cc2, + 0x8def, 0x9732, 0x52b4, 0x5a41, 0x5eca, 0x5f04, 0x6717, 0x697c, + 0x6994, 0x6d6a, 0x6f0f, 0x7262, 0x72fc, 0x7bed, 0x8001, 0x807e, + 0x874b, 0x90ce, 0x516d, 0x9e93, 0x7984, 0x808b, 0x9332, 0x8ad6, + 0x502d, 0x548c, 0x8a71, 0x6b6a, 0x8cc4, 0x8107, 0x60d1, 0x67a0, + 0x9df2, 0x4e99, 0x4e98, 0x9c10, 0x8a6b, 0x85c1, 0x8568, 0x6900, + 0x6e7e, 0x7897, 0x8155, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x50 */ + 0x5f0c, 0x4e10, 0x4e15, 0x4e2a, 0x4e31, 0x4e36, 0x4e3c, 0x4e3f, + 0x4e42, 0x4e56, 0x4e58, 0x4e82, 0x4e85, 0x8c6b, 0x4e8a, 0x8212, + 0x5f0d, 0x4e8e, 0x4e9e, 0x4e9f, 0x4ea0, 0x4ea2, 0x4eb0, 0x4eb3, + 0x4eb6, 0x4ece, 0x4ecd, 0x4ec4, 0x4ec6, 0x4ec2, 0x4ed7, 0x4ede, + 0x4eed, 0x4edf, 0x4ef7, 0x4f09, 0x4f5a, 0x4f30, 0x4f5b, 0x4f5d, + 0x4f57, 0x4f47, 0x4f76, 0x4f88, 0x4f8f, 0x4f98, 0x4f7b, 0x4f69, + 0x4f70, 0x4f91, 0x4f6f, 0x4f86, 0x4f96, 0x5118, 0x4fd4, 0x4fdf, + 0x4fce, 0x4fd8, 0x4fdb, 0x4fd1, 0x4fda, 0x4fd0, 0x4fe4, 0x4fe5, + 0x501a, 0x5028, 0x5014, 0x502a, 0x5025, 0x5005, 0x4f1c, 0x4ff6, + 0x5021, 0x5029, 0x502c, 0x4ffe, 0x4fef, 0x5011, 0x5006, 0x5043, + 0x5047, 0x6703, 0x5055, 0x5050, 0x5048, 0x505a, 0x5056, 0x506c, + 0x5078, 0x5080, 0x509a, 0x5085, 0x50b4, 0x50b2, + /* 0x51 */ + 0x50c9, 0x50ca, 0x50b3, 0x50c2, 0x50d6, 0x50de, 0x50e5, 0x50ed, + 0x50e3, 0x50ee, 0x50f9, 0x50f5, 0x5109, 0x5101, 0x5102, 0x5116, + 0x5115, 0x5114, 0x511a, 0x5121, 0x513a, 0x5137, 0x513c, 0x513b, + 0x513f, 0x5140, 0x5152, 0x514c, 0x5154, 0x5162, 0x7af8, 0x5169, + 0x516a, 0x516e, 0x5180, 0x5182, 0x56d8, 0x518c, 0x5189, 0x518f, + 0x5191, 0x5193, 0x5195, 0x5196, 0x51a4, 0x51a6, 0x51a2, 0x51a9, + 0x51aa, 0x51ab, 0x51b3, 0x51b1, 0x51b2, 0x51b0, 0x51b5, 0x51bd, + 0x51c5, 0x51c9, 0x51db, 0x51e0, 0x8655, 0x51e9, 0x51ed, 0x51f0, + 0x51f5, 0x51fe, 0x5204, 0x520b, 0x5214, 0x520e, 0x5227, 0x522a, + 0x522e, 0x5233, 0x5239, 0x524f, 0x5244, 0x524b, 0x524c, 0x525e, + 0x5254, 0x526a, 0x5274, 0x5269, 0x5273, 0x527f, 0x527d, 0x528d, + 0x5294, 0x5292, 0x5271, 0x5288, 0x5291, 0x8fa8, + /* 0x52 */ + 0x8fa7, 0x52ac, 0x52ad, 0x52bc, 0x52b5, 0x52c1, 0x52cd, 0x52d7, + 0x52de, 0x52e3, 0x52e6, 0x98ed, 0x52e0, 0x52f3, 0x52f5, 0x52f8, + 0x52f9, 0x5306, 0x5308, 0x7538, 0x530d, 0x5310, 0x530f, 0x5315, + 0x531a, 0x5323, 0x532f, 0x5331, 0x5333, 0x5338, 0x5340, 0x5346, + 0x5345, 0x4e17, 0x5349, 0x534d, 0x51d6, 0x535e, 0x5369, 0x536e, + 0x5918, 0x537b, 0x5377, 0x5382, 0x5396, 0x53a0, 0x53a6, 0x53a5, + 0x53ae, 0x53b0, 0x53b6, 0x53c3, 0x7c12, 0x96d9, 0x53df, 0x66fc, + 0x71ee, 0x53ee, 0x53e8, 0x53ed, 0x53fa, 0x5401, 0x543d, 0x5440, + 0x542c, 0x542d, 0x543c, 0x542e, 0x5436, 0x5429, 0x541d, 0x544e, + 0x548f, 0x5475, 0x548e, 0x545f, 0x5471, 0x5477, 0x5470, 0x5492, + 0x547b, 0x5480, 0x5476, 0x5484, 0x5490, 0x5486, 0x54c7, 0x54a2, + 0x54b8, 0x54a5, 0x54ac, 0x54c4, 0x54c8, 0x54a8, + /* 0x53 */ + 0x54ab, 0x54c2, 0x54a4, 0x54be, 0x54bc, 0x54d8, 0x54e5, 0x54e6, + 0x550f, 0x5514, 0x54fd, 0x54ee, 0x54ed, 0x54fa, 0x54e2, 0x5539, + 0x5540, 0x5563, 0x554c, 0x552e, 0x555c, 0x5545, 0x5556, 0x5557, + 0x5538, 0x5533, 0x555d, 0x5599, 0x5580, 0x54af, 0x558a, 0x559f, + 0x557b, 0x557e, 0x5598, 0x559e, 0x55ae, 0x557c, 0x5583, 0x55a9, + 0x5587, 0x55a8, 0x55da, 0x55c5, 0x55df, 0x55c4, 0x55dc, 0x55e4, + 0x55d4, 0x5614, 0x55f7, 0x5616, 0x55fe, 0x55fd, 0x561b, 0x55f9, + 0x564e, 0x5650, 0x71df, 0x5634, 0x5636, 0x5632, 0x5638, 0x566b, + 0x5664, 0x562f, 0x566c, 0x566a, 0x5686, 0x5680, 0x568a, 0x56a0, + 0x5694, 0x568f, 0x56a5, 0x56ae, 0x56b6, 0x56b4, 0x56c2, 0x56bc, + 0x56c1, 0x56c3, 0x56c0, 0x56c8, 0x56ce, 0x56d1, 0x56d3, 0x56d7, + 0x56ee, 0x56f9, 0x5700, 0x56ff, 0x5704, 0x5709, + /* 0x54 */ + 0x5708, 0x570b, 0x570d, 0x5713, 0x5718, 0x5716, 0x55c7, 0x571c, + 0x5726, 0x5737, 0x5738, 0x574e, 0x573b, 0x5740, 0x574f, 0x5769, + 0x57c0, 0x5788, 0x5761, 0x577f, 0x5789, 0x5793, 0x57a0, 0x57b3, + 0x57a4, 0x57aa, 0x57b0, 0x57c3, 0x57c6, 0x57d4, 0x57d2, 0x57d3, + 0x580a, 0x57d6, 0x57e3, 0x580b, 0x5819, 0x581d, 0x5872, 0x5821, + 0x5862, 0x584b, 0x5870, 0x6bc0, 0x5852, 0x583d, 0x5879, 0x5885, + 0x58b9, 0x589f, 0x58ab, 0x58ba, 0x58de, 0x58bb, 0x58b8, 0x58ae, + 0x58c5, 0x58d3, 0x58d1, 0x58d7, 0x58d9, 0x58d8, 0x58e5, 0x58dc, + 0x58e4, 0x58df, 0x58ef, 0x58fa, 0x58f9, 0x58fb, 0x58fc, 0x58fd, + 0x5902, 0x590a, 0x5910, 0x591b, 0x68a6, 0x5925, 0x592c, 0x592d, + 0x5932, 0x5938, 0x593e, 0x7ad2, 0x5955, 0x5950, 0x594e, 0x595a, + 0x5958, 0x5962, 0x5960, 0x5967, 0x596c, 0x5969, + /* 0x55 */ + 0x5978, 0x5981, 0x599d, 0x4f5e, 0x4fab, 0x59a3, 0x59b2, 0x59c6, + 0x59e8, 0x59dc, 0x598d, 0x59d9, 0x59da, 0x5a25, 0x5a1f, 0x5a11, + 0x5a1c, 0x5a09, 0x5a1a, 0x5a40, 0x5a6c, 0x5a49, 0x5a35, 0x5a36, + 0x5a62, 0x5a6a, 0x5a9a, 0x5abc, 0x5abe, 0x5acb, 0x5ac2, 0x5abd, + 0x5ae3, 0x5ad7, 0x5ae6, 0x5ae9, 0x5ad6, 0x5afa, 0x5afb, 0x5b0c, + 0x5b0b, 0x5b16, 0x5b32, 0x5ad0, 0x5b2a, 0x5b36, 0x5b3e, 0x5b43, + 0x5b45, 0x5b40, 0x5b51, 0x5b55, 0x5b5a, 0x5b5b, 0x5b65, 0x5b69, + 0x5b70, 0x5b73, 0x5b75, 0x5b78, 0x6588, 0x5b7a, 0x5b80, 0x5b83, + 0x5ba6, 0x5bb8, 0x5bc3, 0x5bc7, 0x5bc9, 0x5bd4, 0x5bd0, 0x5be4, + 0x5be6, 0x5be2, 0x5bde, 0x5be5, 0x5beb, 0x5bf0, 0x5bf6, 0x5bf3, + 0x5c05, 0x5c07, 0x5c08, 0x5c0d, 0x5c13, 0x5c20, 0x5c22, 0x5c28, + 0x5c38, 0x5c39, 0x5c41, 0x5c46, 0x5c4e, 0x5c53, + /* 0x56 */ + 0x5c50, 0x5c4f, 0x5b71, 0x5c6c, 0x5c6e, 0x4e62, 0x5c76, 0x5c79, + 0x5c8c, 0x5c91, 0x5c94, 0x599b, 0x5cab, 0x5cbb, 0x5cb6, 0x5cbc, + 0x5cb7, 0x5cc5, 0x5cbe, 0x5cc7, 0x5cd9, 0x5ce9, 0x5cfd, 0x5cfa, + 0x5ced, 0x5d8c, 0x5cea, 0x5d0b, 0x5d15, 0x5d17, 0x5d5c, 0x5d1f, + 0x5d1b, 0x5d11, 0x5d14, 0x5d22, 0x5d1a, 0x5d19, 0x5d18, 0x5d4c, + 0x5d52, 0x5d4e, 0x5d4b, 0x5d6c, 0x5d73, 0x5d76, 0x5d87, 0x5d84, + 0x5d82, 0x5da2, 0x5d9d, 0x5dac, 0x5dae, 0x5dbd, 0x5d90, 0x5db7, + 0x5dbc, 0x5dc9, 0x5dcd, 0x5dd3, 0x5dd2, 0x5dd6, 0x5ddb, 0x5deb, + 0x5df2, 0x5df5, 0x5e0b, 0x5e1a, 0x5e19, 0x5e11, 0x5e1b, 0x5e36, + 0x5e37, 0x5e44, 0x5e43, 0x5e40, 0x5e4e, 0x5e57, 0x5e54, 0x5e5f, + 0x5e62, 0x5e64, 0x5e47, 0x5e75, 0x5e76, 0x5e7a, 0x9ebc, 0x5e7f, + 0x5ea0, 0x5ec1, 0x5ec2, 0x5ec8, 0x5ed0, 0x5ecf, + /* 0x57 */ + 0x5ed6, 0x5ee3, 0x5edd, 0x5eda, 0x5edb, 0x5ee2, 0x5ee1, 0x5ee8, + 0x5ee9, 0x5eec, 0x5ef1, 0x5ef3, 0x5ef0, 0x5ef4, 0x5ef8, 0x5efe, + 0x5f03, 0x5f09, 0x5f5d, 0x5f5c, 0x5f0b, 0x5f11, 0x5f16, 0x5f29, + 0x5f2d, 0x5f38, 0x5f41, 0x5f48, 0x5f4c, 0x5f4e, 0x5f2f, 0x5f51, + 0x5f56, 0x5f57, 0x5f59, 0x5f61, 0x5f6d, 0x5f73, 0x5f77, 0x5f83, + 0x5f82, 0x5f7f, 0x5f8a, 0x5f88, 0x5f91, 0x5f87, 0x5f9e, 0x5f99, + 0x5f98, 0x5fa0, 0x5fa8, 0x5fad, 0x5fbc, 0x5fd6, 0x5ffb, 0x5fe4, + 0x5ff8, 0x5ff1, 0x5fdd, 0x60b3, 0x5fff, 0x6021, 0x6060, 0x6019, + 0x6010, 0x6029, 0x600e, 0x6031, 0x601b, 0x6015, 0x602b, 0x6026, + 0x600f, 0x603a, 0x605a, 0x6041, 0x606a, 0x6077, 0x605f, 0x604a, + 0x6046, 0x604d, 0x6063, 0x6043, 0x6064, 0x6042, 0x606c, 0x606b, + 0x6059, 0x6081, 0x608d, 0x60e7, 0x6083, 0x609a, + /* 0x58 */ + 0x6084, 0x609b, 0x6096, 0x6097, 0x6092, 0x60a7, 0x608b, 0x60e1, + 0x60b8, 0x60e0, 0x60d3, 0x60b4, 0x5ff0, 0x60bd, 0x60c6, 0x60b5, + 0x60d8, 0x614d, 0x6115, 0x6106, 0x60f6, 0x60f7, 0x6100, 0x60f4, + 0x60fa, 0x6103, 0x6121, 0x60fb, 0x60f1, 0x610d, 0x610e, 0x6147, + 0x613e, 0x6128, 0x6127, 0x614a, 0x613f, 0x613c, 0x612c, 0x6134, + 0x613d, 0x6142, 0x6144, 0x6173, 0x6177, 0x6158, 0x6159, 0x615a, + 0x616b, 0x6174, 0x616f, 0x6165, 0x6171, 0x615f, 0x615d, 0x6153, + 0x6175, 0x6199, 0x6196, 0x6187, 0x61ac, 0x6194, 0x619a, 0x618a, + 0x6191, 0x61ab, 0x61ae, 0x61cc, 0x61ca, 0x61c9, 0x61f7, 0x61c8, + 0x61c3, 0x61c6, 0x61ba, 0x61cb, 0x7f79, 0x61cd, 0x61e6, 0x61e3, + 0x61f6, 0x61fa, 0x61f4, 0x61ff, 0x61fd, 0x61fc, 0x61fe, 0x6200, + 0x6208, 0x6209, 0x620d, 0x620c, 0x6214, 0x621b, + /* 0x59 */ + 0x621e, 0x6221, 0x622a, 0x622e, 0x6230, 0x6232, 0x6233, 0x6241, + 0x624e, 0x625e, 0x6263, 0x625b, 0x6260, 0x6268, 0x627c, 0x6282, + 0x6289, 0x627e, 0x6292, 0x6293, 0x6296, 0x62d4, 0x6283, 0x6294, + 0x62d7, 0x62d1, 0x62bb, 0x62cf, 0x62ff, 0x62c6, 0x64d4, 0x62c8, + 0x62dc, 0x62cc, 0x62ca, 0x62c2, 0x62c7, 0x629b, 0x62c9, 0x630c, + 0x62ee, 0x62f1, 0x6327, 0x6302, 0x6308, 0x62ef, 0x62f5, 0x6350, + 0x633e, 0x634d, 0x641c, 0x634f, 0x6396, 0x638e, 0x6380, 0x63ab, + 0x6376, 0x63a3, 0x638f, 0x6389, 0x639f, 0x63b5, 0x636b, 0x6369, + 0x63be, 0x63e9, 0x63c0, 0x63c6, 0x63e3, 0x63c9, 0x63d2, 0x63f6, + 0x63c4, 0x6416, 0x6434, 0x6406, 0x6413, 0x6426, 0x6436, 0x651d, + 0x6417, 0x6428, 0x640f, 0x6467, 0x646f, 0x6476, 0x644e, 0x652a, + 0x6495, 0x6493, 0x64a5, 0x64a9, 0x6488, 0x64bc, + /* 0x5a */ + 0x64da, 0x64d2, 0x64c5, 0x64c7, 0x64bb, 0x64d8, 0x64c2, 0x64f1, + 0x64e7, 0x8209, 0x64e0, 0x64e1, 0x62ac, 0x64e3, 0x64ef, 0x652c, + 0x64f6, 0x64f4, 0x64f2, 0x64fa, 0x6500, 0x64fd, 0x6518, 0x651c, + 0x6505, 0x6524, 0x6523, 0x652b, 0x6534, 0x6535, 0x6537, 0x6536, + 0x6538, 0x754b, 0x6548, 0x6556, 0x6555, 0x654d, 0x6558, 0x655e, + 0x655d, 0x6572, 0x6578, 0x6582, 0x6583, 0x8b8a, 0x659b, 0x659f, + 0x65ab, 0x65b7, 0x65c3, 0x65c6, 0x65c1, 0x65c4, 0x65cc, 0x65d2, + 0x65db, 0x65d9, 0x65e0, 0x65e1, 0x65f1, 0x6772, 0x660a, 0x6603, + 0x65fb, 0x6773, 0x6635, 0x6636, 0x6634, 0x661c, 0x664f, 0x6644, + 0x6649, 0x6641, 0x665e, 0x665d, 0x6664, 0x6667, 0x6668, 0x665f, + 0x6662, 0x6670, 0x6683, 0x6688, 0x668e, 0x6689, 0x6684, 0x6698, + 0x669d, 0x66c1, 0x66b9, 0x66c9, 0x66be, 0x66bc, + /* 0x5b */ + 0x66c4, 0x66b8, 0x66d6, 0x66da, 0x66e0, 0x663f, 0x66e6, 0x66e9, + 0x66f0, 0x66f5, 0x66f7, 0x670f, 0x6716, 0x671e, 0x6726, 0x6727, + 0x9738, 0x672e, 0x673f, 0x6736, 0x6741, 0x6738, 0x6737, 0x6746, + 0x675e, 0x6760, 0x6759, 0x6763, 0x6764, 0x6789, 0x6770, 0x67a9, + 0x677c, 0x676a, 0x678c, 0x678b, 0x67a6, 0x67a1, 0x6785, 0x67b7, + 0x67ef, 0x67b4, 0x67ec, 0x67b3, 0x67e9, 0x67b8, 0x67e4, 0x67de, + 0x67dd, 0x67e2, 0x67ee, 0x67b9, 0x67ce, 0x67c6, 0x67e7, 0x6a9c, + 0x681e, 0x6846, 0x6829, 0x6840, 0x684d, 0x6832, 0x684e, 0x68b3, + 0x682b, 0x6859, 0x6863, 0x6877, 0x687f, 0x689f, 0x688f, 0x68ad, + 0x6894, 0x689d, 0x689b, 0x6883, 0x6aae, 0x68b9, 0x6874, 0x68b5, + 0x68a0, 0x68ba, 0x690f, 0x688d, 0x687e, 0x6901, 0x68ca, 0x6908, + 0x68d8, 0x6922, 0x6926, 0x68e1, 0x690c, 0x68cd, + /* 0x5c */ + 0x68d4, 0x68e7, 0x68d5, 0x6936, 0x6912, 0x6904, 0x68d7, 0x68e3, + 0x6925, 0x68f9, 0x68e0, 0x68ef, 0x6928, 0x692a, 0x691a, 0x6923, + 0x6921, 0x68c6, 0x6979, 0x6977, 0x695c, 0x6978, 0x696b, 0x6954, + 0x697e, 0x696e, 0x6939, 0x6974, 0x693d, 0x6959, 0x6930, 0x6961, + 0x695e, 0x695d, 0x6981, 0x696a, 0x69b2, 0x69ae, 0x69d0, 0x69bf, + 0x69c1, 0x69d3, 0x69be, 0x69ce, 0x5be8, 0x69ca, 0x69dd, 0x69bb, + 0x69c3, 0x69a7, 0x6a2e, 0x6991, 0x69a0, 0x699c, 0x6995, 0x69b4, + 0x69de, 0x69e8, 0x6a02, 0x6a1b, 0x69ff, 0x6b0a, 0x69f9, 0x69f2, + 0x69e7, 0x6a05, 0x69b1, 0x6a1e, 0x69ed, 0x6a14, 0x69eb, 0x6a0a, + 0x6a12, 0x6ac1, 0x6a23, 0x6a13, 0x6a44, 0x6a0c, 0x6a72, 0x6a36, + 0x6a78, 0x6a47, 0x6a62, 0x6a59, 0x6a66, 0x6a48, 0x6a38, 0x6a22, + 0x6a90, 0x6a8d, 0x6aa0, 0x6a84, 0x6aa2, 0x6aa3, + /* 0x5d */ + 0x6a97, 0x8617, 0x6abb, 0x6ac3, 0x6ac2, 0x6ab8, 0x6ab3, 0x6aac, + 0x6ade, 0x6ad1, 0x6adf, 0x6aaa, 0x6ada, 0x6aea, 0x6afb, 0x6b05, + 0x8616, 0x6afa, 0x6b12, 0x6b16, 0x9b31, 0x6b1f, 0x6b38, 0x6b37, + 0x76dc, 0x6b39, 0x98ee, 0x6b47, 0x6b43, 0x6b49, 0x6b50, 0x6b59, + 0x6b54, 0x6b5b, 0x6b5f, 0x6b61, 0x6b78, 0x6b79, 0x6b7f, 0x6b80, + 0x6b84, 0x6b83, 0x6b8d, 0x6b98, 0x6b95, 0x6b9e, 0x6ba4, 0x6baa, + 0x6bab, 0x6baf, 0x6bb2, 0x6bb1, 0x6bb3, 0x6bb7, 0x6bbc, 0x6bc6, + 0x6bcb, 0x6bd3, 0x6bdf, 0x6bec, 0x6beb, 0x6bf3, 0x6bef, 0x9ebe, + 0x6c08, 0x6c13, 0x6c14, 0x6c1b, 0x6c24, 0x6c23, 0x6c5e, 0x6c55, + 0x6c62, 0x6c6a, 0x6c82, 0x6c8d, 0x6c9a, 0x6c81, 0x6c9b, 0x6c7e, + 0x6c68, 0x6c73, 0x6c92, 0x6c90, 0x6cc4, 0x6cf1, 0x6cd3, 0x6cbd, + 0x6cd7, 0x6cc5, 0x6cdd, 0x6cae, 0x6cb1, 0x6cbe, + /* 0x5e */ + 0x6cba, 0x6cdb, 0x6cef, 0x6cd9, 0x6cea, 0x6d1f, 0x884d, 0x6d36, + 0x6d2b, 0x6d3d, 0x6d38, 0x6d19, 0x6d35, 0x6d33, 0x6d12, 0x6d0c, + 0x6d63, 0x6d93, 0x6d64, 0x6d5a, 0x6d79, 0x6d59, 0x6d8e, 0x6d95, + 0x6fe4, 0x6d85, 0x6df9, 0x6e15, 0x6e0a, 0x6db5, 0x6dc7, 0x6de6, + 0x6db8, 0x6dc6, 0x6dec, 0x6dde, 0x6dcc, 0x6de8, 0x6dd2, 0x6dc5, + 0x6dfa, 0x6dd9, 0x6de4, 0x6dd5, 0x6dea, 0x6dee, 0x6e2d, 0x6e6e, + 0x6e2e, 0x6e19, 0x6e72, 0x6e5f, 0x6e3e, 0x6e23, 0x6e6b, 0x6e2b, + 0x6e76, 0x6e4d, 0x6e1f, 0x6e43, 0x6e3a, 0x6e4e, 0x6e24, 0x6eff, + 0x6e1d, 0x6e38, 0x6e82, 0x6eaa, 0x6e98, 0x6ec9, 0x6eb7, 0x6ed3, + 0x6ebd, 0x6eaf, 0x6ec4, 0x6eb2, 0x6ed4, 0x6ed5, 0x6e8f, 0x6ea5, + 0x6ec2, 0x6e9f, 0x6f41, 0x6f11, 0x704c, 0x6eec, 0x6ef8, 0x6efe, + 0x6f3f, 0x6ef2, 0x6f31, 0x6eef, 0x6f32, 0x6ecc, + /* 0x5f */ + 0x6f3e, 0x6f13, 0x6ef7, 0x6f86, 0x6f7a, 0x6f78, 0x6f81, 0x6f80, + 0x6f6f, 0x6f5b, 0x6ff3, 0x6f6d, 0x6f82, 0x6f7c, 0x6f58, 0x6f8e, + 0x6f91, 0x6fc2, 0x6f66, 0x6fb3, 0x6fa3, 0x6fa1, 0x6fa4, 0x6fb9, + 0x6fc6, 0x6faa, 0x6fdf, 0x6fd5, 0x6fec, 0x6fd4, 0x6fd8, 0x6ff1, + 0x6fee, 0x6fdb, 0x7009, 0x700b, 0x6ffa, 0x7011, 0x7001, 0x700f, + 0x6ffe, 0x701b, 0x701a, 0x6f74, 0x701d, 0x7018, 0x701f, 0x7030, + 0x703e, 0x7032, 0x7051, 0x7063, 0x7099, 0x7092, 0x70af, 0x70f1, + 0x70ac, 0x70b8, 0x70b3, 0x70ae, 0x70df, 0x70cb, 0x70dd, 0x70d9, + 0x7109, 0x70fd, 0x711c, 0x7119, 0x7165, 0x7155, 0x7188, 0x7166, + 0x7162, 0x714c, 0x7156, 0x716c, 0x718f, 0x71fb, 0x7184, 0x7195, + 0x71a8, 0x71ac, 0x71d7, 0x71b9, 0x71be, 0x71d2, 0x71c9, 0x71d4, + 0x71ce, 0x71e0, 0x71ec, 0x71e7, 0x71f5, 0x71fc, + /* 0x60 */ + 0x71f9, 0x71ff, 0x720d, 0x7210, 0x721b, 0x7228, 0x722d, 0x722c, + 0x7230, 0x7232, 0x723b, 0x723c, 0x723f, 0x7240, 0x7246, 0x724b, + 0x7258, 0x7274, 0x727e, 0x7282, 0x7281, 0x7287, 0x7292, 0x7296, + 0x72a2, 0x72a7, 0x72b9, 0x72b2, 0x72c3, 0x72c6, 0x72c4, 0x72ce, + 0x72d2, 0x72e2, 0x72e0, 0x72e1, 0x72f9, 0x72f7, 0x500f, 0x7317, + 0x730a, 0x731c, 0x7316, 0x731d, 0x7334, 0x732f, 0x7329, 0x7325, + 0x733e, 0x734e, 0x734f, 0x9ed8, 0x7357, 0x736a, 0x7368, 0x7370, + 0x7378, 0x7375, 0x737b, 0x737a, 0x73c8, 0x73b3, 0x73ce, 0x73bb, + 0x73c0, 0x73e5, 0x73ee, 0x73de, 0x74a2, 0x7405, 0x746f, 0x7425, + 0x73f8, 0x7432, 0x743a, 0x7455, 0x743f, 0x745f, 0x7459, 0x7441, + 0x745c, 0x7469, 0x7470, 0x7463, 0x746a, 0x7476, 0x747e, 0x748b, + 0x749e, 0x74a7, 0x74ca, 0x74cf, 0x74d4, 0x73f1, + /* 0x61 */ + 0x74e0, 0x74e3, 0x74e7, 0x74e9, 0x74ee, 0x74f2, 0x74f0, 0x74f1, + 0x74f8, 0x74f7, 0x7504, 0x7503, 0x7505, 0x750c, 0x750e, 0x750d, + 0x7515, 0x7513, 0x751e, 0x7526, 0x752c, 0x753c, 0x7544, 0x754d, + 0x754a, 0x7549, 0x755b, 0x7546, 0x755a, 0x7569, 0x7564, 0x7567, + 0x756b, 0x756d, 0x7578, 0x7576, 0x7586, 0x7587, 0x7574, 0x758a, + 0x7589, 0x7582, 0x7594, 0x759a, 0x759d, 0x75a5, 0x75a3, 0x75c2, + 0x75b3, 0x75c3, 0x75b5, 0x75bd, 0x75b8, 0x75bc, 0x75b1, 0x75cd, + 0x75ca, 0x75d2, 0x75d9, 0x75e3, 0x75de, 0x75fe, 0x75ff, 0x75fc, + 0x7601, 0x75f0, 0x75fa, 0x75f2, 0x75f3, 0x760b, 0x760d, 0x7609, + 0x761f, 0x7627, 0x7620, 0x7621, 0x7622, 0x7624, 0x7634, 0x7630, + 0x763b, 0x7647, 0x7648, 0x7646, 0x765c, 0x7658, 0x7661, 0x7662, + 0x7668, 0x7669, 0x766a, 0x7667, 0x766c, 0x7670, + /* 0x62 */ + 0x7672, 0x7676, 0x7678, 0x767c, 0x7680, 0x7683, 0x7688, 0x768b, + 0x768e, 0x7696, 0x7693, 0x7699, 0x769a, 0x76b0, 0x76b4, 0x76b8, + 0x76b9, 0x76ba, 0x76c2, 0x76cd, 0x76d6, 0x76d2, 0x76de, 0x76e1, + 0x76e5, 0x76e7, 0x76ea, 0x862f, 0x76fb, 0x7708, 0x7707, 0x7704, + 0x7729, 0x7724, 0x771e, 0x7725, 0x7726, 0x771b, 0x7737, 0x7738, + 0x7747, 0x775a, 0x7768, 0x776b, 0x775b, 0x7765, 0x777f, 0x777e, + 0x7779, 0x778e, 0x778b, 0x7791, 0x77a0, 0x779e, 0x77b0, 0x77b6, + 0x77b9, 0x77bf, 0x77bc, 0x77bd, 0x77bb, 0x77c7, 0x77cd, 0x77d7, + 0x77da, 0x77dc, 0x77e3, 0x77ee, 0x77fc, 0x780c, 0x7812, 0x7926, + 0x7820, 0x792a, 0x7845, 0x788e, 0x7874, 0x7886, 0x787c, 0x789a, + 0x788c, 0x78a3, 0x78b5, 0x78aa, 0x78af, 0x78d1, 0x78c6, 0x78cb, + 0x78d4, 0x78be, 0x78bc, 0x78c5, 0x78ca, 0x78ec, + /* 0x63 */ + 0x78e7, 0x78da, 0x78fd, 0x78f4, 0x7907, 0x7912, 0x7911, 0x7919, + 0x792c, 0x792b, 0x7940, 0x7960, 0x7957, 0x795f, 0x795a, 0x7955, + 0x7953, 0x797a, 0x797f, 0x798a, 0x799d, 0x79a7, 0x9f4b, 0x79aa, + 0x79ae, 0x79b3, 0x79b9, 0x79ba, 0x79c9, 0x79d5, 0x79e7, 0x79ec, + 0x79e1, 0x79e3, 0x7a08, 0x7a0d, 0x7a18, 0x7a19, 0x7a20, 0x7a1f, + 0x7980, 0x7a31, 0x7a3b, 0x7a3e, 0x7a37, 0x7a43, 0x7a57, 0x7a49, + 0x7a61, 0x7a62, 0x7a69, 0x9f9d, 0x7a70, 0x7a79, 0x7a7d, 0x7a88, + 0x7a97, 0x7a95, 0x7a98, 0x7a96, 0x7aa9, 0x7ac8, 0x7ab0, 0x7ab6, + 0x7ac5, 0x7ac4, 0x7abf, 0x9083, 0x7ac7, 0x7aca, 0x7acd, 0x7acf, + 0x7ad5, 0x7ad3, 0x7ad9, 0x7ada, 0x7add, 0x7ae1, 0x7ae2, 0x7ae6, + 0x7aed, 0x7af0, 0x7b02, 0x7b0f, 0x7b0a, 0x7b06, 0x7b33, 0x7b18, + 0x7b19, 0x7b1e, 0x7b35, 0x7b28, 0x7b36, 0x7b50, + /* 0x64 */ + 0x7b7a, 0x7b04, 0x7b4d, 0x7b0b, 0x7b4c, 0x7b45, 0x7b75, 0x7b65, + 0x7b74, 0x7b67, 0x7b70, 0x7b71, 0x7b6c, 0x7b6e, 0x7b9d, 0x7b98, + 0x7b9f, 0x7b8d, 0x7b9c, 0x7b9a, 0x7b8b, 0x7b92, 0x7b8f, 0x7b5d, + 0x7b99, 0x7bcb, 0x7bc1, 0x7bcc, 0x7bcf, 0x7bb4, 0x7bc6, 0x7bdd, + 0x7be9, 0x7c11, 0x7c14, 0x7be6, 0x7be5, 0x7c60, 0x7c00, 0x7c07, + 0x7c13, 0x7bf3, 0x7bf7, 0x7c17, 0x7c0d, 0x7bf6, 0x7c23, 0x7c27, + 0x7c2a, 0x7c1f, 0x7c37, 0x7c2b, 0x7c3d, 0x7c4c, 0x7c43, 0x7c54, + 0x7c4f, 0x7c40, 0x7c50, 0x7c58, 0x7c5f, 0x7c64, 0x7c56, 0x7c65, + 0x7c6c, 0x7c75, 0x7c83, 0x7c90, 0x7ca4, 0x7cad, 0x7ca2, 0x7cab, + 0x7ca1, 0x7ca8, 0x7cb3, 0x7cb2, 0x7cb1, 0x7cae, 0x7cb9, 0x7cbd, + 0x7cc0, 0x7cc5, 0x7cc2, 0x7cd8, 0x7cd2, 0x7cdc, 0x7ce2, 0x9b3b, + 0x7cef, 0x7cf2, 0x7cf4, 0x7cf6, 0x7cfa, 0x7d06, + /* 0x65 */ + 0x7d02, 0x7d1c, 0x7d15, 0x7d0a, 0x7d45, 0x7d4b, 0x7d2e, 0x7d32, + 0x7d3f, 0x7d35, 0x7d46, 0x7d73, 0x7d56, 0x7d4e, 0x7d72, 0x7d68, + 0x7d6e, 0x7d4f, 0x7d63, 0x7d93, 0x7d89, 0x7d5b, 0x7d8f, 0x7d7d, + 0x7d9b, 0x7dba, 0x7dae, 0x7da3, 0x7db5, 0x7dc7, 0x7dbd, 0x7dab, + 0x7e3d, 0x7da2, 0x7daf, 0x7ddc, 0x7db8, 0x7d9f, 0x7db0, 0x7dd8, + 0x7ddd, 0x7de4, 0x7dde, 0x7dfb, 0x7df2, 0x7de1, 0x7e05, 0x7e0a, + 0x7e23, 0x7e21, 0x7e12, 0x7e31, 0x7e1f, 0x7e09, 0x7e0b, 0x7e22, + 0x7e46, 0x7e66, 0x7e3b, 0x7e35, 0x7e39, 0x7e43, 0x7e37, 0x7e32, + 0x7e3a, 0x7e67, 0x7e5d, 0x7e56, 0x7e5e, 0x7e59, 0x7e5a, 0x7e79, + 0x7e6a, 0x7e69, 0x7e7c, 0x7e7b, 0x7e83, 0x7dd5, 0x7e7d, 0x8fae, + 0x7e7f, 0x7e88, 0x7e89, 0x7e8c, 0x7e92, 0x7e90, 0x7e93, 0x7e94, + 0x7e96, 0x7e8e, 0x7e9b, 0x7e9c, 0x7f38, 0x7f3a, + /* 0x66 */ + 0x7f45, 0x7f4c, 0x7f4d, 0x7f4e, 0x7f50, 0x7f51, 0x7f55, 0x7f54, + 0x7f58, 0x7f5f, 0x7f60, 0x7f68, 0x7f69, 0x7f67, 0x7f78, 0x7f82, + 0x7f86, 0x7f83, 0x7f88, 0x7f87, 0x7f8c, 0x7f94, 0x7f9e, 0x7f9d, + 0x7f9a, 0x7fa3, 0x7faf, 0x7fb2, 0x7fb9, 0x7fae, 0x7fb6, 0x7fb8, + 0x8b71, 0x7fc5, 0x7fc6, 0x7fca, 0x7fd5, 0x7fd4, 0x7fe1, 0x7fe6, + 0x7fe9, 0x7ff3, 0x7ff9, 0x98dc, 0x8006, 0x8004, 0x800b, 0x8012, + 0x8018, 0x8019, 0x801c, 0x8021, 0x8028, 0x803f, 0x803b, 0x804a, + 0x8046, 0x8052, 0x8058, 0x805a, 0x805f, 0x8062, 0x8068, 0x8073, + 0x8072, 0x8070, 0x8076, 0x8079, 0x807d, 0x807f, 0x8084, 0x8086, + 0x8085, 0x809b, 0x8093, 0x809a, 0x80ad, 0x5190, 0x80ac, 0x80db, + 0x80e5, 0x80d9, 0x80dd, 0x80c4, 0x80da, 0x80d6, 0x8109, 0x80ef, + 0x80f1, 0x811b, 0x8129, 0x8123, 0x812f, 0x814b, + /* 0x67 */ + 0x968b, 0x8146, 0x813e, 0x8153, 0x8151, 0x80fc, 0x8171, 0x816e, + 0x8165, 0x8166, 0x8174, 0x8183, 0x8188, 0x818a, 0x8180, 0x8182, + 0x81a0, 0x8195, 0x81a4, 0x81a3, 0x815f, 0x8193, 0x81a9, 0x81b0, + 0x81b5, 0x81be, 0x81b8, 0x81bd, 0x81c0, 0x81c2, 0x81ba, 0x81c9, + 0x81cd, 0x81d1, 0x81d9, 0x81d8, 0x81c8, 0x81da, 0x81df, 0x81e0, + 0x81e7, 0x81fa, 0x81fb, 0x81fe, 0x8201, 0x8202, 0x8205, 0x8207, + 0x820a, 0x820d, 0x8210, 0x8216, 0x8229, 0x822b, 0x8238, 0x8233, + 0x8240, 0x8259, 0x8258, 0x825d, 0x825a, 0x825f, 0x8264, 0x8262, + 0x8268, 0x826a, 0x826b, 0x822e, 0x8271, 0x8277, 0x8278, 0x827e, + 0x828d, 0x8292, 0x82ab, 0x829f, 0x82bb, 0x82ac, 0x82e1, 0x82e3, + 0x82df, 0x82d2, 0x82f4, 0x82f3, 0x82fa, 0x8393, 0x8303, 0x82fb, + 0x82f9, 0x82de, 0x8306, 0x82dc, 0x8309, 0x82d9, + /* 0x68 */ + 0x8335, 0x8334, 0x8316, 0x8332, 0x8331, 0x8340, 0x8339, 0x8350, + 0x8345, 0x832f, 0x832b, 0x8317, 0x8318, 0x8385, 0x839a, 0x83aa, + 0x839f, 0x83a2, 0x8396, 0x8323, 0x838e, 0x8387, 0x838a, 0x837c, + 0x83b5, 0x8373, 0x8375, 0x83a0, 0x8389, 0x83a8, 0x83f4, 0x8413, + 0x83eb, 0x83ce, 0x83fd, 0x8403, 0x83d8, 0x840b, 0x83c1, 0x83f7, + 0x8407, 0x83e0, 0x83f2, 0x840d, 0x8422, 0x8420, 0x83bd, 0x8438, + 0x8506, 0x83fb, 0x846d, 0x842a, 0x843c, 0x855a, 0x8484, 0x8477, + 0x846b, 0x84ad, 0x846e, 0x8482, 0x8469, 0x8446, 0x842c, 0x846f, + 0x8479, 0x8435, 0x84ca, 0x8462, 0x84b9, 0x84bf, 0x849f, 0x84d9, + 0x84cd, 0x84bb, 0x84da, 0x84d0, 0x84c1, 0x84c6, 0x84d6, 0x84a1, + 0x8521, 0x84ff, 0x84f4, 0x8517, 0x8518, 0x852c, 0x851f, 0x8515, + 0x8514, 0x84fc, 0x8540, 0x8563, 0x8558, 0x8548, + /* 0x69 */ + 0x8541, 0x8602, 0x854b, 0x8555, 0x8580, 0x85a4, 0x8588, 0x8591, + 0x858a, 0x85a8, 0x856d, 0x8594, 0x859b, 0x85ea, 0x8587, 0x859c, + 0x8577, 0x857e, 0x8590, 0x85c9, 0x85ba, 0x85cf, 0x85b9, 0x85d0, + 0x85d5, 0x85dd, 0x85e5, 0x85dc, 0x85f9, 0x860a, 0x8613, 0x860b, + 0x85fe, 0x85fa, 0x8606, 0x8622, 0x861a, 0x8630, 0x863f, 0x864d, + 0x4e55, 0x8654, 0x865f, 0x8667, 0x8671, 0x8693, 0x86a3, 0x86a9, + 0x86aa, 0x868b, 0x868c, 0x86b6, 0x86af, 0x86c4, 0x86c6, 0x86b0, + 0x86c9, 0x8823, 0x86ab, 0x86d4, 0x86de, 0x86e9, 0x86ec, 0x86df, + 0x86db, 0x86ef, 0x8712, 0x8706, 0x8708, 0x8700, 0x8703, 0x86fb, + 0x8711, 0x8709, 0x870d, 0x86f9, 0x870a, 0x8734, 0x873f, 0x8737, + 0x873b, 0x8725, 0x8729, 0x871a, 0x8760, 0x875f, 0x8778, 0x874c, + 0x874e, 0x8774, 0x8757, 0x8768, 0x876e, 0x8759, + /* 0x6a */ + 0x8753, 0x8763, 0x876a, 0x8805, 0x87a2, 0x879f, 0x8782, 0x87af, + 0x87cb, 0x87bd, 0x87c0, 0x87d0, 0x96d6, 0x87ab, 0x87c4, 0x87b3, + 0x87c7, 0x87c6, 0x87bb, 0x87ef, 0x87f2, 0x87e0, 0x880f, 0x880d, + 0x87fe, 0x87f6, 0x87f7, 0x880e, 0x87d2, 0x8811, 0x8816, 0x8815, + 0x8822, 0x8821, 0x8831, 0x8836, 0x8839, 0x8827, 0x883b, 0x8844, + 0x8842, 0x8852, 0x8859, 0x885e, 0x8862, 0x886b, 0x8881, 0x887e, + 0x889e, 0x8875, 0x887d, 0x88b5, 0x8872, 0x8882, 0x8897, 0x8892, + 0x88ae, 0x8899, 0x88a2, 0x888d, 0x88a4, 0x88b0, 0x88bf, 0x88b1, + 0x88c3, 0x88c4, 0x88d4, 0x88d8, 0x88d9, 0x88dd, 0x88f9, 0x8902, + 0x88fc, 0x88f4, 0x88e8, 0x88f2, 0x8904, 0x890c, 0x890a, 0x8913, + 0x8943, 0x891e, 0x8925, 0x892a, 0x892b, 0x8941, 0x8944, 0x893b, + 0x8936, 0x8938, 0x894c, 0x891d, 0x8960, 0x895e, + /* 0x6b */ + 0x8966, 0x8964, 0x896d, 0x896a, 0x896f, 0x8974, 0x8977, 0x897e, + 0x8983, 0x8988, 0x898a, 0x8993, 0x8998, 0x89a1, 0x89a9, 0x89a6, + 0x89ac, 0x89af, 0x89b2, 0x89ba, 0x89bd, 0x89bf, 0x89c0, 0x89da, + 0x89dc, 0x89dd, 0x89e7, 0x89f4, 0x89f8, 0x8a03, 0x8a16, 0x8a10, + 0x8a0c, 0x8a1b, 0x8a1d, 0x8a25, 0x8a36, 0x8a41, 0x8a5b, 0x8a52, + 0x8a46, 0x8a48, 0x8a7c, 0x8a6d, 0x8a6c, 0x8a62, 0x8a85, 0x8a82, + 0x8a84, 0x8aa8, 0x8aa1, 0x8a91, 0x8aa5, 0x8aa6, 0x8a9a, 0x8aa3, + 0x8ac4, 0x8acd, 0x8ac2, 0x8ada, 0x8aeb, 0x8af3, 0x8ae7, 0x8ae4, + 0x8af1, 0x8b14, 0x8ae0, 0x8ae2, 0x8af7, 0x8ade, 0x8adb, 0x8b0c, + 0x8b07, 0x8b1a, 0x8ae1, 0x8b16, 0x8b10, 0x8b17, 0x8b20, 0x8b33, + 0x97ab, 0x8b26, 0x8b2b, 0x8b3e, 0x8b28, 0x8b41, 0x8b4c, 0x8b4f, + 0x8b4e, 0x8b49, 0x8b56, 0x8b5b, 0x8b5a, 0x8b6b, + /* 0x6c */ + 0x8b5f, 0x8b6c, 0x8b6f, 0x8b74, 0x8b7d, 0x8b80, 0x8b8c, 0x8b8e, + 0x8b92, 0x8b93, 0x8b96, 0x8b99, 0x8b9a, 0x8c3a, 0x8c41, 0x8c3f, + 0x8c48, 0x8c4c, 0x8c4e, 0x8c50, 0x8c55, 0x8c62, 0x8c6c, 0x8c78, + 0x8c7a, 0x8c82, 0x8c89, 0x8c85, 0x8c8a, 0x8c8d, 0x8c8e, 0x8c94, + 0x8c7c, 0x8c98, 0x621d, 0x8cad, 0x8caa, 0x8cbd, 0x8cb2, 0x8cb3, + 0x8cae, 0x8cb6, 0x8cc8, 0x8cc1, 0x8ce4, 0x8ce3, 0x8cda, 0x8cfd, + 0x8cfa, 0x8cfb, 0x8d04, 0x8d05, 0x8d0a, 0x8d07, 0x8d0f, 0x8d0d, + 0x8d10, 0x9f4e, 0x8d13, 0x8ccd, 0x8d14, 0x8d16, 0x8d67, 0x8d6d, + 0x8d71, 0x8d73, 0x8d81, 0x8d99, 0x8dc2, 0x8dbe, 0x8dba, 0x8dcf, + 0x8dda, 0x8dd6, 0x8dcc, 0x8ddb, 0x8dcb, 0x8dea, 0x8deb, 0x8ddf, + 0x8de3, 0x8dfc, 0x8e08, 0x8e09, 0x8dff, 0x8e1d, 0x8e1e, 0x8e10, + 0x8e1f, 0x8e42, 0x8e35, 0x8e30, 0x8e34, 0x8e4a, + /* 0x6d */ + 0x8e47, 0x8e49, 0x8e4c, 0x8e50, 0x8e48, 0x8e59, 0x8e64, 0x8e60, + 0x8e2a, 0x8e63, 0x8e55, 0x8e76, 0x8e72, 0x8e7c, 0x8e81, 0x8e87, + 0x8e85, 0x8e84, 0x8e8b, 0x8e8a, 0x8e93, 0x8e91, 0x8e94, 0x8e99, + 0x8eaa, 0x8ea1, 0x8eac, 0x8eb0, 0x8ec6, 0x8eb1, 0x8ebe, 0x8ec5, + 0x8ec8, 0x8ecb, 0x8edb, 0x8ee3, 0x8efc, 0x8efb, 0x8eeb, 0x8efe, + 0x8f0a, 0x8f05, 0x8f15, 0x8f12, 0x8f19, 0x8f13, 0x8f1c, 0x8f1f, + 0x8f1b, 0x8f0c, 0x8f26, 0x8f33, 0x8f3b, 0x8f39, 0x8f45, 0x8f42, + 0x8f3e, 0x8f4c, 0x8f49, 0x8f46, 0x8f4e, 0x8f57, 0x8f5c, 0x8f62, + 0x8f63, 0x8f64, 0x8f9c, 0x8f9f, 0x8fa3, 0x8fad, 0x8faf, 0x8fb7, + 0x8fda, 0x8fe5, 0x8fe2, 0x8fea, 0x8fef, 0x9087, 0x8ff4, 0x9005, + 0x8ff9, 0x8ffa, 0x9011, 0x9015, 0x9021, 0x900d, 0x901e, 0x9016, + 0x900b, 0x9027, 0x9036, 0x9035, 0x9039, 0x8ff8, + /* 0x6e */ + 0x904f, 0x9050, 0x9051, 0x9052, 0x900e, 0x9049, 0x903e, 0x9056, + 0x9058, 0x905e, 0x9068, 0x906f, 0x9076, 0x96a8, 0x9072, 0x9082, + 0x907d, 0x9081, 0x9080, 0x908a, 0x9089, 0x908f, 0x90a8, 0x90af, + 0x90b1, 0x90b5, 0x90e2, 0x90e4, 0x6248, 0x90db, 0x9102, 0x9112, + 0x9119, 0x9132, 0x9130, 0x914a, 0x9156, 0x9158, 0x9163, 0x9165, + 0x9169, 0x9173, 0x9172, 0x918b, 0x9189, 0x9182, 0x91a2, 0x91ab, + 0x91af, 0x91aa, 0x91b5, 0x91b4, 0x91ba, 0x91c0, 0x91c1, 0x91c9, + 0x91cb, 0x91d0, 0x91d6, 0x91df, 0x91e1, 0x91db, 0x91fc, 0x91f5, + 0x91f6, 0x921e, 0x91ff, 0x9214, 0x922c, 0x9215, 0x9211, 0x925e, + 0x9257, 0x9245, 0x9249, 0x9264, 0x9248, 0x9295, 0x923f, 0x924b, + 0x9250, 0x929c, 0x9296, 0x9293, 0x929b, 0x925a, 0x92cf, 0x92b9, + 0x92b7, 0x92e9, 0x930f, 0x92fa, 0x9344, 0x932e, + /* 0x6f */ + 0x9319, 0x9322, 0x931a, 0x9323, 0x933a, 0x9335, 0x933b, 0x935c, + 0x9360, 0x937c, 0x936e, 0x9356, 0x93b0, 0x93ac, 0x93ad, 0x9394, + 0x93b9, 0x93d6, 0x93d7, 0x93e8, 0x93e5, 0x93d8, 0x93c3, 0x93dd, + 0x93d0, 0x93c8, 0x93e4, 0x941a, 0x9414, 0x9413, 0x9403, 0x9407, + 0x9410, 0x9436, 0x942b, 0x9435, 0x9421, 0x943a, 0x9441, 0x9452, + 0x9444, 0x945b, 0x9460, 0x9462, 0x945e, 0x946a, 0x9229, 0x9470, + 0x9475, 0x9477, 0x947d, 0x945a, 0x947c, 0x947e, 0x9481, 0x947f, + 0x9582, 0x9587, 0x958a, 0x9594, 0x9596, 0x9598, 0x9599, 0x95a0, + 0x95a8, 0x95a7, 0x95ad, 0x95bc, 0x95bb, 0x95b9, 0x95be, 0x95ca, + 0x6ff6, 0x95c3, 0x95cd, 0x95cc, 0x95d5, 0x95d4, 0x95d6, 0x95dc, + 0x95e1, 0x95e5, 0x95e2, 0x9621, 0x9628, 0x962e, 0x962f, 0x9642, + 0x964c, 0x964f, 0x964b, 0x9677, 0x965c, 0x965e, + /* 0x70 */ + 0x965d, 0x965f, 0x9666, 0x9672, 0x966c, 0x968d, 0x9698, 0x9695, + 0x9697, 0x96aa, 0x96a7, 0x96b1, 0x96b2, 0x96b0, 0x96b4, 0x96b6, + 0x96b8, 0x96b9, 0x96ce, 0x96cb, 0x96c9, 0x96cd, 0x894d, 0x96dc, + 0x970d, 0x96d5, 0x96f9, 0x9704, 0x9706, 0x9708, 0x9713, 0x970e, + 0x9711, 0x970f, 0x9716, 0x9719, 0x9724, 0x972a, 0x9730, 0x9739, + 0x973d, 0x973e, 0x9744, 0x9746, 0x9748, 0x9742, 0x9749, 0x975c, + 0x9760, 0x9764, 0x9766, 0x9768, 0x52d2, 0x976b, 0x9771, 0x9779, + 0x9785, 0x977c, 0x9781, 0x977a, 0x9786, 0x978b, 0x978f, 0x9790, + 0x979c, 0x97a8, 0x97a6, 0x97a3, 0x97b3, 0x97b4, 0x97c3, 0x97c6, + 0x97c8, 0x97cb, 0x97dc, 0x97ed, 0x9f4f, 0x97f2, 0x7adf, 0x97f6, + 0x97f5, 0x980f, 0x980c, 0x9838, 0x9824, 0x9821, 0x9837, 0x983d, + 0x9846, 0x984f, 0x984b, 0x986b, 0x986f, 0x9870, + /* 0x71 */ + 0x9871, 0x9874, 0x9873, 0x98aa, 0x98af, 0x98b1, 0x98b6, 0x98c4, + 0x98c3, 0x98c6, 0x98e9, 0x98eb, 0x9903, 0x9909, 0x9912, 0x9914, + 0x9918, 0x9921, 0x991d, 0x991e, 0x9924, 0x9920, 0x992c, 0x992e, + 0x993d, 0x993e, 0x9942, 0x9949, 0x9945, 0x9950, 0x994b, 0x9951, + 0x9952, 0x994c, 0x9955, 0x9997, 0x9998, 0x99a5, 0x99ad, 0x99ae, + 0x99bc, 0x99df, 0x99db, 0x99dd, 0x99d8, 0x99d1, 0x99ed, 0x99ee, + 0x99f1, 0x99f2, 0x99fb, 0x99f8, 0x9a01, 0x9a0f, 0x9a05, 0x99e2, + 0x9a19, 0x9a2b, 0x9a37, 0x9a45, 0x9a42, 0x9a40, 0x9a43, 0x9a3e, + 0x9a55, 0x9a4d, 0x9a5b, 0x9a57, 0x9a5f, 0x9a62, 0x9a65, 0x9a64, + 0x9a69, 0x9a6b, 0x9a6a, 0x9aad, 0x9ab0, 0x9abc, 0x9ac0, 0x9acf, + 0x9ad1, 0x9ad3, 0x9ad4, 0x9ade, 0x9adf, 0x9ae2, 0x9ae3, 0x9ae6, + 0x9aef, 0x9aeb, 0x9aee, 0x9af4, 0x9af1, 0x9af7, + /* 0x72 */ + 0x9afb, 0x9b06, 0x9b18, 0x9b1a, 0x9b1f, 0x9b22, 0x9b23, 0x9b25, + 0x9b27, 0x9b28, 0x9b29, 0x9b2a, 0x9b2e, 0x9b2f, 0x9b32, 0x9b44, + 0x9b43, 0x9b4f, 0x9b4d, 0x9b4e, 0x9b51, 0x9b58, 0x9b74, 0x9b93, + 0x9b83, 0x9b91, 0x9b96, 0x9b97, 0x9b9f, 0x9ba0, 0x9ba8, 0x9bb4, + 0x9bc0, 0x9bca, 0x9bb9, 0x9bc6, 0x9bcf, 0x9bd1, 0x9bd2, 0x9be3, + 0x9be2, 0x9be4, 0x9bd4, 0x9be1, 0x9c3a, 0x9bf2, 0x9bf1, 0x9bf0, + 0x9c15, 0x9c14, 0x9c09, 0x9c13, 0x9c0c, 0x9c06, 0x9c08, 0x9c12, + 0x9c0a, 0x9c04, 0x9c2e, 0x9c1b, 0x9c25, 0x9c24, 0x9c21, 0x9c30, + 0x9c47, 0x9c32, 0x9c46, 0x9c3e, 0x9c5a, 0x9c60, 0x9c67, 0x9c76, + 0x9c78, 0x9ce7, 0x9cec, 0x9cf0, 0x9d09, 0x9d08, 0x9ceb, 0x9d03, + 0x9d06, 0x9d2a, 0x9d26, 0x9daf, 0x9d23, 0x9d1f, 0x9d44, 0x9d15, + 0x9d12, 0x9d41, 0x9d3f, 0x9d3e, 0x9d46, 0x9d48, + /* 0x73 */ + 0x9d5d, 0x9d5e, 0x9d64, 0x9d51, 0x9d50, 0x9d59, 0x9d72, 0x9d89, + 0x9d87, 0x9dab, 0x9d6f, 0x9d7a, 0x9d9a, 0x9da4, 0x9da9, 0x9db2, + 0x9dc4, 0x9dc1, 0x9dbb, 0x9db8, 0x9dba, 0x9dc6, 0x9dcf, 0x9dc2, + 0x9dd9, 0x9dd3, 0x9df8, 0x9de6, 0x9ded, 0x9def, 0x9dfd, 0x9e1a, + 0x9e1b, 0x9e1e, 0x9e75, 0x9e79, 0x9e7d, 0x9e81, 0x9e88, 0x9e8b, + 0x9e8c, 0x9e92, 0x9e95, 0x9e91, 0x9e9d, 0x9ea5, 0x9ea9, 0x9eb8, + 0x9eaa, 0x9ead, 0x9761, 0x9ecc, 0x9ece, 0x9ecf, 0x9ed0, 0x9ed4, + 0x9edc, 0x9ede, 0x9edd, 0x9ee0, 0x9ee5, 0x9ee8, 0x9eef, 0x9ef4, + 0x9ef6, 0x9ef7, 0x9ef9, 0x9efb, 0x9efc, 0x9efd, 0x9f07, 0x9f08, + 0x76b7, 0x9f15, 0x9f21, 0x9f2c, 0x9f3e, 0x9f4a, 0x9f52, 0x9f54, + 0x9f63, 0x9f5f, 0x9f60, 0x9f61, 0x9f66, 0x9f67, 0x9f6c, 0x9f6a, + 0x9f77, 0x9f72, 0x9f76, 0x9f95, 0x9f9c, 0x9fa0, + /* 0x74 */ + 0x582f, 0x69c7, 0x9059, 0x7464, 0x51dc, 0x7199, +}; + +static int +jisx0208_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 >= 0x21 && c1 <= 0x28) || (c1 >= 0x30 && c1 <= 0x74)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if (c2 >= 0x21 && c2 < 0x7f) { + unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); + unsigned short wc = 0xfffd; + if (i < 1410) { + if (i < 690) + wc = jisx0208_2uni_page21[i]; + } else { + if (i < 7808) + wc = jisx0208_2uni_page30[i-1410]; + } + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + +static const unsigned short jisx0208_2charset[6879] = { + 0x2171, 0x2172, 0x2178, 0x212f, 0x224c, 0x216b, 0x215e, 0x212d, + 0x2279, 0x215f, 0x2160, 0x2621, 0x2622, 0x2623, 0x2624, 0x2625, + 0x2626, 0x2627, 0x2628, 0x2629, 0x262a, 0x262b, 0x262c, 0x262d, + 0x262e, 0x262f, 0x2630, 0x2631, 0x2632, 0x2633, 0x2634, 0x2635, + 0x2636, 0x2637, 0x2638, 0x2641, 0x2642, 0x2643, 0x2644, 0x2645, + 0x2646, 0x2647, 0x2648, 0x2649, 0x264a, 0x264b, 0x264c, 0x264d, + 0x264e, 0x264f, 0x2650, 0x2651, 0x2652, 0x2653, 0x2654, 0x2655, + 0x2656, 0x2657, 0x2658, 0x2727, 0x2721, 0x2722, 0x2723, 0x2724, + 0x2725, 0x2726, 0x2728, 0x2729, 0x272a, 0x272b, 0x272c, 0x272d, + 0x272e, 0x272f, 0x2730, 0x2731, 0x2732, 0x2733, 0x2734, 0x2735, + 0x2736, 0x2737, 0x2738, 0x2739, 0x273a, 0x273b, 0x273c, 0x273d, + 0x273e, 0x273f, 0x2740, 0x2741, 0x2751, 0x2752, 0x2753, 0x2754, + 0x2755, 0x2756, 0x2758, 0x2759, 0x275a, 0x275b, 0x275c, 0x275d, + 0x275e, 0x275f, 0x2760, 0x2761, 0x2762, 0x2763, 0x2764, 0x2765, + 0x2766, 0x2767, 0x2768, 0x2769, 0x276a, 0x276b, 0x276c, 0x276d, + 0x276e, 0x276f, 0x2770, 0x2771, 0x2757, 0x213e, 0x213d, 0x2142, + 0x2146, 0x2147, 0x2148, 0x2149, 0x2277, 0x2278, 0x2145, 0x2144, + 0x2273, 0x216c, 0x216d, 0x2228, 0x216e, 0x2272, 0x222b, 0x222c, + 0x222a, 0x222d, 0x224d, 0x224e, 0x224f, 0x225f, 0x2250, 0x2260, + 0x223a, 0x223b, 0x215d, 0x2265, 0x2267, 0x2167, 0x225c, 0x224a, + 0x224b, 0x2241, 0x2240, 0x2269, 0x226a, 0x2168, 0x2268, 0x2266, + 0x2262, 0x2162, 0x2261, 0x2165, 0x2166, 0x2263, 0x2264, 0x223e, + 0x223f, 0x223c, 0x223d, 0x225d, 0x225e, 0x2821, 0x282c, 0x2822, + 0x282d, 0x2823, 0x282e, 0x2824, 0x282f, 0x2826, 0x2831, 0x2825, + 0x2830, 0x2827, 0x283c, 0x2837, 0x2832, 0x2829, 0x283e, 0x2839, + 0x2834, 0x2828, 0x2838, 0x283d, 0x2833, 0x282a, 0x283a, 0x283f, + 0x2835, 0x282b, 0x283b, 0x2840, 0x2836, 0x2223, 0x2222, 0x2225, + 0x2224, 0x2227, 0x2226, 0x2221, 0x217e, 0x217b, 0x217d, 0x217c, + 0x227e, 0x217a, 0x2179, 0x216a, 0x2169, 0x2276, 0x2275, 0x2274, + 0x2121, 0x2122, 0x2123, 0x2137, 0x2139, 0x213a, 0x213b, 0x2152, + 0x2153, 0x2154, 0x2155, 0x2156, 0x2157, 0x2158, 0x2159, 0x215a, + 0x215b, 0x2229, 0x222e, 0x214c, 0x214d, 0x2141, 0x2421, 0x2422, + 0x2423, 0x2424, 0x2425, 0x2426, 0x2427, 0x2428, 0x2429, 0x242a, + 0x242b, 0x242c, 0x242d, 0x242e, 0x242f, 0x2430, 0x2431, 0x2432, + 0x2433, 0x2434, 0x2435, 0x2436, 0x2437, 0x2438, 0x2439, 0x243a, + 0x243b, 0x243c, 0x243d, 0x243e, 0x243f, 0x2440, 0x2441, 0x2442, + 0x2443, 0x2444, 0x2445, 0x2446, 0x2447, 0x2448, 0x2449, 0x244a, + 0x244b, 0x244c, 0x244d, 0x244e, 0x244f, 0x2450, 0x2451, 0x2452, + 0x2453, 0x2454, 0x2455, 0x2456, 0x2457, 0x2458, 0x2459, 0x245a, + 0x245b, 0x245c, 0x245d, 0x245e, 0x245f, 0x2460, 0x2461, 0x2462, + 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 0x246a, + 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, 0x2470, 0x2471, 0x2472, + 0x2473, 0x212b, 0x212c, 0x2135, 0x2136, 0x2521, 0x2522, 0x2523, + 0x2524, 0x2525, 0x2526, 0x2527, 0x2528, 0x2529, 0x252a, 0x252b, + 0x252c, 0x252d, 0x252e, 0x252f, 0x2530, 0x2531, 0x2532, 0x2533, + 0x2534, 0x2535, 0x2536, 0x2537, 0x2538, 0x2539, 0x253a, 0x253b, + 0x253c, 0x253d, 0x253e, 0x253f, 0x2540, 0x2541, 0x2542, 0x2543, + 0x2544, 0x2545, 0x2546, 0x2547, 0x2548, 0x2549, 0x254a, 0x254b, + 0x254c, 0x254d, 0x254e, 0x254f, 0x2550, 0x2551, 0x2552, 0x2553, + 0x2554, 0x2555, 0x2556, 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, + 0x255c, 0x255d, 0x255e, 0x255f, 0x2560, 0x2561, 0x2562, 0x2563, + 0x2564, 0x2565, 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, + 0x256c, 0x256d, 0x256e, 0x256f, 0x2570, 0x2571, 0x2572, 0x2573, + 0x2574, 0x2575, 0x2576, 0x2126, 0x213c, 0x2133, 0x2134, 0x306c, + 0x437a, 0x3c37, 0x4b7c, 0x3e66, 0x3b30, 0x3e65, 0x323c, 0x4954, + 0x4d3f, 0x5022, 0x312f, 0x336e, 0x5023, 0x4024, 0x5242, 0x3556, + 0x4a3a, 0x3e67, 0x4e3e, 0x4a42, 0x5024, 0x4366, 0x5025, 0x367a, + 0x5026, 0x345d, 0x4330, 0x3c67, 0x5027, 0x5028, 0x5029, 0x4735, + 0x3557, 0x4737, 0x4663, 0x3843, 0x4b33, 0x6949, 0x502a, 0x3e68, + 0x502b, 0x3235, 0x3665, 0x3870, 0x4c69, 0x5626, 0x4d70, 0x467d, + 0x3425, 0x3535, 0x502c, 0x502d, 0x4e3b, 0x4d3d, 0x4168, 0x502f, + 0x3b76, 0x4673, 0x5032, 0x313e, 0x385f, 0x385e, 0x3066, 0x4f4b, + 0x4f4a, 0x3a33, 0x3021, 0x5033, 0x5034, 0x5035, 0x4b34, 0x5036, + 0x3872, 0x3067, 0x4b72, 0x357c, 0x357d, 0x357e, 0x4462, 0x4e3c, + 0x5037, 0x5038, 0x5039, 0x3f4d, 0x3d3a, 0x3f4e, 0x503e, 0x503c, + 0x503d, 0x3558, 0x3a23, 0x3270, 0x503b, 0x503a, 0x4a29, 0x3b46, + 0x3b45, 0x423e, 0x503f, 0x4955, 0x4067, 0x2138, 0x5040, 0x5042, + 0x4265, 0x4e61, 0x304a, 0x5041, 0x323e, 0x3644, 0x4367, 0x376f, + 0x5043, 0x4724, 0x346b, 0x5044, 0x304b, 0x3860, 0x346c, 0x497a, + 0x4832, 0x3559, 0x3271, 0x5067, 0x4541, 0x476c, 0x5046, 0x483c, + 0x4e62, 0x3f2d, 0x3b47, 0x3b77, 0x3240, 0x4451, 0x4322, 0x504a, + 0x304c, 0x4463, 0x3d3b, 0x3a34, 0x4d24, 0x424e, 0x323f, 0x5049, + 0x4d3e, 0x5045, 0x5047, 0x3a6e, 0x5048, 0x5524, 0x5050, 0x5053, + 0x5051, 0x3242, 0x4a3b, 0x504b, 0x504f, 0x3873, 0x3b48, 0x3426, + 0x5054, 0x504c, 0x4e63, 0x3b78, 0x504d, 0x5052, 0x5055, 0x504e, + 0x3621, 0x304d, 0x3622, 0x3241, 0x5525, 0x4b79, 0x496e, 0x3874, + 0x3f2f, 0x4e37, 0x4a58, 0x3738, 0x4225, 0x3264, 0x3d53, 0x5059, + 0x505e, 0x505c, 0x5057, 0x422f, 0x505a, 0x505d, 0x505b, 0x4a5d, + 0x5058, 0x3f2e, 0x4b73, 0x505f, 0x5060, 0x3d24, 0x506d, 0x4750, + 0x4936, 0x5068, 0x4a70, 0x3236, 0x506c, 0x5066, 0x506f, 0x4152, + 0x3844, 0x475c, 0x6047, 0x506e, 0x455d, 0x5063, 0x3876, 0x3875, + 0x5061, 0x3c5a, 0x5069, 0x4a6f, 0x434d, 0x5065, 0x3771, 0x5062, + 0x506a, 0x5064, 0x4e51, 0x506b, 0x4f41, 0x3666, 0x3770, 0x5070, + 0x5071, 0x5075, 0x304e, 0x4a50, 0x5074, 0x5073, 0x5077, 0x5076, + 0x4464, 0x3772, 0x5078, 0x3c45, 0x4226, 0x4465, 0x3676, 0x5079, + 0x3536, 0x507a, 0x507c, 0x4b35, 0x3766, 0x3b31, 0x4877, 0x507b, + 0x3a45, 0x4d43, 0x507e, 0x5123, 0x507d, 0x3a44, 0x3d7d, 0x3739, + 0x5124, 0x364f, 0x5121, 0x5122, 0x462f, 0x417c, 0x3623, 0x4b4d, + 0x5125, 0x4e3d, 0x5126, 0x5129, 0x5127, 0x414e, 0x5128, 0x512a, + 0x512c, 0x512b, 0x4a48, 0x3537, 0x512e, 0x512f, 0x322f, 0x512d, + 0x3c74, 0x5132, 0x5131, 0x5130, 0x5056, 0x5133, 0x3d7e, 0x5134, + 0x4d25, 0x4c59, 0x5136, 0x5135, 0x5138, 0x5137, 0x5139, 0x513a, + 0x3074, 0x3835, 0x373b, 0x3d3c, 0x437b, 0x3624, 0x4068, 0x3877, + 0x396e, 0x513c, 0x4c48, 0x4546, 0x3b79, 0x513b, 0x513d, 0x455e, + 0x3375, 0x513e, 0x467e, 0x4134, 0x5140, 0x5141, 0x482c, 0x3878, + 0x4f3b, 0x5142, 0x3626, 0x4a3c, 0x4236, 0x3671, 0x4535, 0x3773, + 0x5143, 0x5144, 0x4662, 0x315f, 0x5147, 0x3a7d, 0x5146, 0x3a46, + 0x5148, 0x666e, 0x5149, 0x4b41, 0x514a, 0x514b, 0x514c, 0x3e69, + 0x3c4c, 0x3427, 0x514f, 0x514d, 0x4c3d, 0x514e, 0x495a, 0x5150, + 0x5151, 0x5152, 0x455f, 0x5156, 0x5154, 0x5155, 0x5153, 0x3a63, + 0x5157, 0x4c6a, 0x4e64, 0x5158, 0x4028, 0x5159, 0x3d5a, 0x515a, + 0x437c, 0x4e3f, 0x4560, 0x5245, 0x515b, 0x7425, 0x3645, 0x515c, + 0x4b5e, 0x3d68, 0x427c, 0x515e, 0x4664, 0x515f, 0x5160, 0x332e, + 0x5161, 0x3627, 0x464c, 0x317a, 0x3d50, 0x4821, 0x5162, 0x4561, + 0x3f4f, 0x5163, 0x4a2c, 0x405a, 0x3422, 0x3429, 0x5164, 0x5166, + 0x373a, 0x5165, 0x4e73, 0x3d69, 0x483d, 0x4a4c, 0x5167, 0x4d78, + 0x5168, 0x5169, 0x457e, 0x516a, 0x4029, 0x3a7e, 0x3774, 0x516b, + 0x3b49, 0x396f, 0x4466, 0x516d, 0x4227, 0x3a6f, 0x516e, 0x516f, + 0x4130, 0x516c, 0x5171, 0x4b36, 0x3964, 0x5170, 0x3775, 0x3a5e, + 0x476d, 0x5174, 0x5172, 0x497b, 0x3e6a, 0x517b, 0x3364, 0x5175, + 0x5173, 0x414f, 0x5177, 0x5176, 0x3344, 0x3760, 0x517c, 0x4e2d, + 0x5178, 0x517d, 0x517a, 0x5179, 0x4e4f, 0x3879, 0x3243, 0x4e74, + 0x3d75, 0x4558, 0x3965, 0x5222, 0x5223, 0x4e65, 0x4f2b, 0x5225, + 0x387a, 0x5224, 0x332f, 0x5226, 0x4b56, 0x443c, 0x4d26, 0x4a59, + 0x5227, 0x7055, 0x4630, 0x5228, 0x342a, 0x4c33, 0x3e21, 0x5229, + 0x4a67, 0x522d, 0x402a, 0x522a, 0x3650, 0x522b, 0x342b, 0x372e, + 0x522e, 0x522f, 0x5230, 0x5231, 0x3c5b, 0x387b, 0x4c5e, 0x4c68, + 0x4677, 0x4a71, 0x5232, 0x5233, 0x5235, 0x5237, 0x5236, 0x5238, + 0x323d, 0x4b4c, 0x3a7c, 0x5239, 0x4159, 0x3e22, 0x3629, 0x523a, + 0x485b, 0x523b, 0x523c, 0x523d, 0x523e, 0x4924, 0x3668, 0x3065, + 0x463f, 0x523f, 0x3d3d, 0x4069, 0x5241, 0x5240, 0x3e23, 0x3861, + 0x5243, 0x483e, 0x5244, 0x485c, 0x4234, 0x426e, 0x3628, 0x466e, + 0x4331, 0x476e, 0x4b4e, 0x5246, 0x406a, 0x3735, 0x5247, 0x5248, + 0x312c, 0x3075, 0x346d, 0x4228, 0x3551, 0x4d71, 0x524b, 0x3237, + 0x524a, 0x362a, 0x524c, 0x4c71, 0x524d, 0x4e52, 0x387c, 0x3836, + 0x524e, 0x5250, 0x524f, 0x3f5f, 0x3139, 0x315e, 0x5251, 0x5252, + 0x3837, 0x5253, 0x356e, 0x3b32, 0x5254, 0x4b74, 0x3a35, 0x355a, + 0x4d27, 0x4150, 0x483f, 0x3c7d, 0x3d47, 0x3c68, 0x3c75, 0x3d76, + 0x4840, 0x5257, 0x3143, 0x4151, 0x387d, 0x3845, 0x3667, 0x525b, + 0x4321, 0x427e, 0x362b, 0x3e24, 0x525c, 0x525a, 0x3244, 0x4266, + 0x3c38, 0x3b4b, 0x3126, 0x3370, 0x3966, 0x3b4a, 0x525d, 0x525e, + 0x3549, 0x3346, 0x3967, 0x3548, 0x445f, 0x3125, 0x4631, 0x4c3e, + 0x3921, 0x4d79, 0x4547, 0x387e, 0x372f, 0x5267, 0x3663, 0x4b4a, + 0x485d, 0x5266, 0x345e, 0x5261, 0x5262, 0x5264, 0x5265, 0x355b, + 0x3f61, 0x4a2d, 0x5263, 0x525f, 0x3863, 0x5260, 0x4f24, 0x4a72, + 0x4468, 0x3862, 0x3970, 0x5268, 0x465d, 0x526c, 0x3c7e, 0x3c76, + 0x526f, 0x526d, 0x4c23, 0x526a, 0x5273, 0x526e, 0x5271, 0x3846, + 0x4c3f, 0x5272, 0x5274, 0x5276, 0x3a70, 0x4f42, 0x526b, 0x5269, + 0x5275, 0x5270, 0x5278, 0x5323, 0x527a, 0x527e, 0x5321, 0x527b, + 0x533e, 0x3a69, 0x3331, 0x5279, 0x5325, 0x3076, 0x5324, 0x3025, + 0x494a, 0x5322, 0x527c, 0x5277, 0x527d, 0x3a48, 0x5326, 0x3077, + 0x532f, 0x5327, 0x5328, 0x3e25, 0x4b69, 0x532d, 0x532c, 0x452f, + 0x532e, 0x532b, 0x3134, 0x3a36, 0x3f30, 0x5329, 0x4562, 0x532a, + 0x3022, 0x5334, 0x4d23, 0x3e27, 0x533a, 0x5339, 0x5330, 0x4243, + 0x5331, 0x426f, 0x5336, 0x3e26, 0x5333, 0x4c64, 0x373c, 0x5337, + 0x5338, 0x5335, 0x533b, 0x5332, 0x5341, 0x5346, 0x5342, 0x533d, + 0x5347, 0x4131, 0x5349, 0x3922, 0x533f, 0x437d, 0x5343, 0x533c, + 0x342d, 0x346e, 0x3365, 0x5344, 0x5340, 0x3776, 0x534a, 0x5348, + 0x4153, 0x354a, 0x362c, 0x5345, 0x3674, 0x3144, 0x534e, 0x534c, + 0x5427, 0x5351, 0x534b, 0x534f, 0x534d, 0x3b4c, 0x5350, 0x5353, + 0x5358, 0x5356, 0x5355, 0x4332, 0x3245, 0x5352, 0x5354, 0x3e28, + 0x3133, 0x5357, 0x325e, 0x5362, 0x3e7c, 0x535e, 0x535c, 0x535d, + 0x535f, 0x313d, 0x4139, 0x5359, 0x535a, 0x337a, 0x5361, 0x346f, + 0x5364, 0x5360, 0x5363, 0x4a2e, 0x4655, 0x4838, 0x5366, 0x5365, + 0x3345, 0x5367, 0x536a, 0x5369, 0x5368, 0x4739, 0x536b, 0x536c, + 0x536e, 0x536d, 0x5370, 0x5373, 0x5371, 0x536f, 0x5372, 0x5374, + 0x5375, 0x5376, 0x5377, 0x5378, 0x5145, 0x3c7c, 0x3b4d, 0x3273, + 0x3078, 0x4344, 0x5379, 0x3a24, 0x304f, 0x3f5e, 0x537a, 0x3847, + 0x3971, 0x537c, 0x537b, 0x4a60, 0x537d, 0x5421, 0x537e, 0x5422, + 0x5423, 0x3777, 0x3160, 0x5424, 0x5426, 0x5425, 0x5428, 0x455a, + 0x5429, 0x3035, 0x3a5f, 0x373d, 0x434f, 0x542a, 0x542b, 0x542d, + 0x542e, 0x3a64, 0x3651, 0x4b37, 0x542c, 0x542f, 0x3a41, 0x3923, + 0x5433, 0x3a25, 0x4333, 0x5430, 0x445a, 0x5434, 0x3f62, 0x5432, + 0x5435, 0x373f, 0x5436, 0x5437, 0x3924, 0x3340, 0x5439, 0x543a, + 0x543b, 0x5438, 0x5431, 0x543c, 0x543d, 0x4b64, 0x3e6b, 0x543f, + 0x5440, 0x543e, 0x5442, 0x4738, 0x3068, 0x4956, 0x5443, 0x3e7d, + 0x3c39, 0x475d, 0x3470, 0x3a6b, 0x4b59, 0x4632, 0x3778, 0x424f, + 0x5441, 0x5444, 0x4244, 0x5445, 0x5446, 0x5448, 0x4469, 0x342e, + 0x7421, 0x3161, 0x4a73, 0x3e6c, 0x4548, 0x3a66, 0x544e, 0x4a3d, + 0x4e5d, 0x3274, 0x544a, 0x413a, 0x544d, 0x4563, 0x4549, 0x4564, + 0x4839, 0x444d, 0x3a49, 0x5449, 0x3176, 0x4536, 0x544b, 0x5447, + 0x3f50, 0x544f, 0x3d4e, 0x362d, 0x5450, 0x4a68, 0x417d, 0x4446, + 0x5452, 0x4b4f, 0x5453, 0x5458, 0x4a2f, 0x5457, 0x5451, 0x5454, + 0x5456, 0x3a26, 0x4a49, 0x5459, 0x4345, 0x3275, 0x3e6d, 0x545b, + 0x545a, 0x3968, 0x545c, 0x545e, 0x545d, 0x5460, 0x5455, 0x5462, + 0x5461, 0x545f, 0x3b4e, 0x3f51, 0x4154, 0x5463, 0x403c, 0x306d, + 0x4764, 0x445b, 0x5465, 0x5464, 0x5466, 0x5467, 0x5468, 0x5469, + 0x4a51, 0x546a, 0x3246, 0x546b, 0x4d3c, 0x3330, 0x5249, 0x3d48, + 0x423f, 0x546c, 0x4c6b, 0x4c34, 0x546e, 0x4267, 0x4537, 0x4240, + 0x4957, 0x546f, 0x5470, 0x317b, 0x3c3a, 0x5471, 0x3050, 0x5472, + 0x5473, 0x3162, 0x3471, 0x4660, 0x4a74, 0x5477, 0x4155, 0x5476, + 0x3740, 0x4b5b, 0x5475, 0x4565, 0x5479, 0x5478, 0x547b, 0x547a, + 0x317c, 0x547c, 0x3e29, 0x547e, 0x4325, 0x547d, 0x4a33, 0x3d77, + 0x455b, 0x5521, 0x3925, 0x5522, 0x4721, 0x485e, 0x4c51, 0x4725, + 0x552b, 0x3538, 0x4d45, 0x4c2f, 0x562c, 0x5523, 0x5526, 0x4245, + 0x4b38, 0x454a, 0x5527, 0x4b65, 0x3a4a, 0x3e2a, 0x5528, 0x3b50, + 0x3b4f, 0x3039, 0x3848, 0x402b, 0x3051, 0x552c, 0x552d, 0x552a, + 0x3138, 0x342f, 0x5529, 0x4c45, 0x4931, 0x3028, 0x3079, 0x3b51, + 0x3052, 0x3023, 0x5532, 0x5530, 0x4c3c, 0x5533, 0x5531, 0x552f, + 0x3f31, 0x552e, 0x4a5a, 0x3864, 0x5537, 0x5538, 0x3e2b, 0x5534, + 0x4f2c, 0x474c, 0x5536, 0x3a27, 0x5539, 0x4958, 0x553a, 0x5535, + 0x4c3b, 0x475e, 0x553b, 0x4932, 0x553c, 0x5540, 0x553d, 0x3247, + 0x553f, 0x3c3b, 0x553e, 0x3779, 0x554c, 0x5545, 0x5542, 0x4364, + 0x5541, 0x5543, 0x5544, 0x5546, 0x5547, 0x3472, 0x5549, 0x5548, + 0x554a, 0x3e6e, 0x554d, 0x445c, 0x3145, 0x554b, 0x554e, 0x554f, + 0x5552, 0x5550, 0x5551, 0x3b52, 0x5553, 0x3926, 0x5554, 0x3b7a, + 0x4238, 0x5555, 0x5556, 0x3b5a, 0x3927, 0x4c52, 0x3528, 0x3849, + 0x5557, 0x3358, 0x5558, 0x4239, 0x5559, 0x5623, 0x555a, 0x555b, + 0x555c, 0x555e, 0x555f, 0x5560, 0x4270, 0x3127, 0x3c69, 0x3042, + 0x4157, 0x3430, 0x3c35, 0x3928, 0x4566, 0x3d21, 0x3431, 0x4368, + 0x446a, 0x3038, 0x3539, 0x4a75, 0x3c42, 0x3552, 0x406b, 0x3c3c, + 0x4d28, 0x5561, 0x355c, 0x3a4b, 0x3332, 0x3163, 0x3e2c, 0x3248, + 0x5562, 0x4d46, 0x3d49, 0x3c64, 0x5563, 0x3473, 0x4652, 0x4c29, + 0x5564, 0x5565, 0x4959, 0x5567, 0x3428, 0x3677, 0x5566, 0x3432, + 0x3f32, 0x556b, 0x3b21, 0x3249, 0x556a, 0x5568, 0x556c, 0x5569, + 0x472b, 0x5c4d, 0x3f33, 0x556d, 0x4e40, 0x556e, 0x5570, 0x437e, + 0x556f, 0x4023, 0x3b7b, 0x4250, 0x3c77, 0x4975, 0x406c, 0x3c4d, + 0x5571, 0x3e2d, 0x5572, 0x5573, 0x3053, 0x423a, 0x3f52, 0x5574, + 0x4633, 0x3e2e, 0x3e2f, 0x5575, 0x406d, 0x3e30, 0x5576, 0x5577, + 0x4c60, 0x5578, 0x3646, 0x3d22, 0x5579, 0x557a, 0x3c5c, 0x3f2c, + 0x4674, 0x3f54, 0x4878, 0x4722, 0x3649, 0x557b, 0x356f, 0x557c, + 0x367e, 0x464f, 0x3230, 0x3b53, 0x557d, 0x5622, 0x5621, 0x367d, + 0x557e, 0x4538, 0x4230, 0x454b, 0x3c48, 0x4158, 0x4d7a, 0x5624, + 0x5625, 0x4656, 0x3b33, 0x5627, 0x5628, 0x5629, 0x3474, 0x562a, + 0x562b, 0x322c, 0x413b, 0x3464, 0x562d, 0x4c28, 0x4252, 0x3359, + 0x562f, 0x5631, 0x345f, 0x562e, 0x5630, 0x5633, 0x5632, 0x5634, + 0x5635, 0x463d, 0x362e, 0x3265, 0x5636, 0x563b, 0x5639, 0x4a77, + 0x4a76, 0x4567, 0x5638, 0x3d54, 0x5637, 0x3f72, 0x563c, 0x3a6a, + 0x5642, 0x5643, 0x563d, 0x3333, 0x563e, 0x5647, 0x5646, 0x5645, + 0x5641, 0x5640, 0x5644, 0x4a78, 0x564b, 0x5648, 0x564a, 0x4d72, + 0x5649, 0x563f, 0x3f73, 0x564c, 0x3a37, 0x564d, 0x564e, 0x5651, + 0x5650, 0x564f, 0x4568, 0x563a, 0x5657, 0x5653, 0x5652, 0x5654, + 0x5655, 0x5658, 0x4e66, 0x5659, 0x5656, 0x565a, 0x3460, 0x565b, + 0x565d, 0x565c, 0x565e, 0x565f, 0x406e, 0x3d23, 0x3d64, 0x4163, + 0x3929, 0x3a38, 0x392a, 0x3570, 0x5660, 0x3a39, 0x384a, 0x5661, + 0x4c26, 0x4743, 0x5662, 0x392b, 0x342c, 0x4327, 0x3652, 0x3b54, + 0x495b, 0x4841, 0x5663, 0x3475, 0x5666, 0x4421, 0x5665, 0x5664, + 0x5667, 0x446b, 0x3f63, 0x3b55, 0x404a, 0x4253, 0x3522, 0x4422, + 0x5668, 0x5669, 0x3e6f, 0x4b39, 0x566c, 0x566b, 0x566a, 0x497d, + 0x5673, 0x4b5a, 0x566d, 0x566f, 0x4b6b, 0x566e, 0x5670, 0x4828, + 0x5671, 0x4a3e, 0x5672, 0x3433, 0x4a3f, 0x472f, 0x5674, 0x5675, + 0x392c, 0x3434, 0x5676, 0x3838, 0x4d44, 0x4d29, 0x3476, 0x5678, + 0x4423, 0x392d, 0x3e31, 0x485f, 0x3e32, 0x3d78, 0x446c, 0x4a79, + 0x4539, 0x392e, 0x495c, 0x5679, 0x4559, 0x3a42, 0x384b, 0x446d, + 0x3043, 0x3d6e, 0x392f, 0x4d47, 0x567a, 0x567b, 0x4751, 0x567c, + 0x4e77, 0x4f2d, 0x567e, 0x567d, 0x3347, 0x5721, 0x5724, 0x5725, + 0x5723, 0x4940, 0x3e33, 0x5727, 0x5726, 0x5722, 0x5728, 0x5729, + 0x572a, 0x572d, 0x572b, 0x572c, 0x572e, 0x3164, 0x446e, 0x572f, + 0x377a, 0x3276, 0x4736, 0x5730, 0x467b, 0x4a5b, 0x5731, 0x4f2e, + 0x5732, 0x4a40, 0x5735, 0x5021, 0x5031, 0x3c30, 0x4675, 0x5736, + 0x355d, 0x4424, 0x307a, 0x5737, 0x4a26, 0x3930, 0x4350, 0x446f, + 0x4c6f, 0x3839, 0x384c, 0x5738, 0x5739, 0x573f, 0x3c65, 0x4425, + 0x362f, 0x573a, 0x492b, 0x4346, 0x573b, 0x573c, 0x3630, 0x573d, + 0x573e, 0x5740, 0x4576, 0x5741, 0x5742, 0x5743, 0x5734, 0x5733, + 0x5744, 0x3741, 0x4927, 0x3a4c, 0x4937, 0x4426, 0x494b, 0x5745, + 0x3e34, 0x3146, 0x5746, 0x5747, 0x4c72, 0x4860, 0x574a, 0x317d, + 0x402c, 0x5749, 0x5748, 0x3742, 0x4254, 0x574e, 0x574c, 0x574b, + 0x4e27, 0x3865, 0x3d79, 0x574d, 0x454c, 0x3d3e, 0x4640, 0x5751, + 0x5750, 0x574f, 0x5752, 0x3866, 0x5753, 0x497c, 0x3d5b, 0x5754, + 0x4879, 0x4641, 0x4427, 0x4530, 0x5755, 0x352b, 0x3f34, 0x492c, + 0x3477, 0x4726, 0x5756, 0x3b56, 0x4b3a, 0x4b3b, 0x317e, 0x575b, + 0x4369, 0x5758, 0x3277, 0x582d, 0x575a, 0x4730, 0x5759, 0x5757, + 0x397a, 0x575d, 0x5763, 0x5769, 0x5761, 0x455c, 0x5766, 0x495d, + 0x5760, 0x5765, 0x4e67, 0x3b57, 0x4255, 0x575e, 0x355e, 0x5768, + 0x402d, 0x3165, 0x5762, 0x3278, 0x5767, 0x3631, 0x5764, 0x576a, + 0x576c, 0x5776, 0x5774, 0x5771, 0x5770, 0x4e78, 0x5772, 0x3632, + 0x3931, 0x3d7a, 0x5779, 0x576b, 0x576f, 0x575f, 0x327a, 0x5773, + 0x5775, 0x4351, 0x3a28, 0x3238, 0x576d, 0x5778, 0x5777, 0x3633, + 0x4229, 0x3366, 0x3743, 0x576e, 0x577a, 0x577d, 0x5821, 0x3c3d, + 0x5827, 0x4470, 0x577b, 0x5825, 0x3279, 0x5823, 0x5824, 0x577e, + 0x5822, 0x3867, 0x4d2a, 0x3435, 0x3159, 0x5826, 0x473a, 0x302d, + 0x4861, 0x575c, 0x582c, 0x5830, 0x4c65, 0x5829, 0x4569, 0x582e, + 0x3e70, 0x582f, 0x4657, 0x4f47, 0x582b, 0x5831, 0x397b, 0x404b, + 0x3054, 0x582a, 0x5828, 0x415a, 0x577c, 0x3b34, 0x4246, 0x583d, + 0x415b, 0x5838, 0x5835, 0x5836, 0x3c66, 0x5839, 0x583c, 0x5837, + 0x3d25, 0x583a, 0x5834, 0x4c7c, 0x4c7b, 0x583e, 0x583f, 0x3055, + 0x5833, 0x3672, 0x3026, 0x3436, 0x583b, 0x5843, 0x5842, 0x5847, + 0x5848, 0x5846, 0x5849, 0x5841, 0x5845, 0x584a, 0x584b, 0x5840, + 0x3b7c, 0x5844, 0x4256, 0x3932, 0x5832, 0x3f35, 0x5858, 0x4a69, + 0x584e, 0x584f, 0x5850, 0x5857, 0x5856, 0x4b7d, 0x3437, 0x5854, + 0x3745, 0x3334, 0x5851, 0x4e38, 0x5853, 0x3056, 0x5855, 0x584c, + 0x5852, 0x5859, 0x3744, 0x584d, 0x4d5d, 0x4d2b, 0x585c, 0x5860, + 0x417e, 0x4e79, 0x5861, 0x585e, 0x585b, 0x585a, 0x585f, 0x4a30, + 0x4634, 0x3746, 0x5862, 0x585d, 0x5863, 0x377b, 0x3231, 0x586b, + 0x3438, 0x5869, 0x586a, 0x3a29, 0x5868, 0x5866, 0x5865, 0x586c, + 0x5864, 0x586e, 0x327b, 0x5870, 0x586f, 0x4428, 0x5873, 0x5871, + 0x5867, 0x377c, 0x5872, 0x5876, 0x5875, 0x5877, 0x5874, 0x5878, + 0x5879, 0x587a, 0x4a6a, 0x587c, 0x587b, 0x3d3f, 0x402e, 0x3266, + 0x327c, 0x587d, 0x303f, 0x404c, 0x587e, 0x6c43, 0x5921, 0x3761, + 0x5922, 0x406f, 0x5923, 0x5924, 0x353a, 0x5925, 0x5926, 0x5927, + 0x4257, 0x384d, 0x4c61, 0x4b3c, 0x3d6a, 0x5928, 0x4070, 0x6e3d, + 0x4862, 0x3c6a, 0x3a4d, 0x5929, 0x4247, 0x4a27, 0x4271, 0x592c, + 0x592a, 0x592d, 0x592b, 0x592e, 0x4a31, 0x3037, 0x495e, 0x4863, + 0x592f, 0x5932, 0x3e35, 0x353b, 0x5930, 0x5937, 0x3e36, 0x5931, + 0x4744, 0x4d5e, 0x5933, 0x5934, 0x5938, 0x456a, 0x5935, 0x3933, + 0x405e, 0x5946, 0x4834, 0x4272, 0x4864, 0x5a2d, 0x4a7a, 0x4471, + 0x4b75, 0x593b, 0x3221, 0x436a, 0x5944, 0x4334, 0x593e, 0x5945, + 0x5940, 0x5947, 0x5943, 0x5942, 0x476f, 0x593c, 0x327d, 0x593a, + 0x3571, 0x4273, 0x5936, 0x5939, 0x3934, 0x405b, 0x3e37, 0x5941, + 0x4752, 0x3572, 0x3348, 0x3367, 0x3f21, 0x5949, 0x594e, 0x594a, + 0x377d, 0x594f, 0x3b22, 0x3969, 0x3d26, 0x593d, 0x3b7d, 0x594c, + 0x3b58, 0x594d, 0x3044, 0x5948, 0x4429, 0x3573, 0x3634, 0x594b, + 0x3027, 0x3a43, 0x3f36, 0x4472, 0x4854, 0x5951, 0x415e, 0x422a, + 0x3b2b, 0x5952, 0x5954, 0x5950, 0x4a61, 0x443d, 0x415c, 0x4a7b, + 0x3c4e, 0x5960, 0x595f, 0x3f78, 0x377e, 0x5959, 0x3e39, 0x4668, + 0x4731, 0x5957, 0x415d, 0x3c78, 0x595c, 0x3e38, 0x5956, 0x595b, + 0x4753, 0x5955, 0x3721, 0x335d, 0x595d, 0x4e2b, 0x3a4e, 0x4335, + 0x595a, 0x405c, 0x3935, 0x3f64, 0x3166, 0x413c, 0x5958, 0x3545, + 0x3747, 0x444f, 0x595e, 0x415f, 0x5961, 0x5963, 0x4237, 0x5969, + 0x5964, 0x5966, 0x4941, 0x4473, 0x5967, 0x4d2c, 0x4d48, 0x3439, + 0x302e, 0x5965, 0x5962, 0x3478, 0x3167, 0x5968, 0x4d49, 0x596c, + 0x423b, 0x5973, 0x596d, 0x596a, 0x5971, 0x5953, 0x596e, 0x5972, + 0x4842, 0x456b, 0x596b, 0x596f, 0x3748, 0x3a71, 0x405d, 0x5977, + 0x4526, 0x5974, 0x4b60, 0x5975, 0x5976, 0x4c4e, 0x4022, 0x3762, + 0x597d, 0x3b35, 0x597a, 0x5979, 0x4732, 0x4635, 0x4531, 0x597b, + 0x597c, 0x496f, 0x4745, 0x3b23, 0x4071, 0x4b50, 0x3349, 0x5a25, + 0x597e, 0x4d4a, 0x5a27, 0x5a23, 0x5a24, 0x4160, 0x5a22, 0x593f, + 0x5a26, 0x5a21, 0x5a2b, 0x5a2c, 0x4527, 0x5a2e, 0x3b24, 0x5a29, + 0x353c, 0x5a2f, 0x5a28, 0x5a33, 0x5a32, 0x5a31, 0x5a34, 0x5a36, + 0x3e71, 0x5a35, 0x5a39, 0x5a37, 0x5a38, 0x5970, 0x5a3b, 0x5a3a, + 0x5978, 0x5a3c, 0x5a30, 0x3b59, 0x5a3d, 0x5a3e, 0x5a40, 0x5a3f, + 0x5a41, 0x327e, 0x3936, 0x4a7c, 0x402f, 0x384e, 0x5a43, 0x5a46, + 0x4952, 0x355f, 0x5a45, 0x5a44, 0x4754, 0x5a47, 0x3635, 0x5a49, + 0x5a48, 0x343a, 0x3b36, 0x4658, 0x3749, 0x3f74, 0x5a4a, 0x4030, + 0x4528, 0x495f, 0x5a4b, 0x5a4c, 0x5a4d, 0x4a38, 0x555d, 0x4046, + 0x494c, 0x3a58, 0x4865, 0x4843, 0x454d, 0x4e41, 0x5a4f, 0x3c50, + 0x5a50, 0x3036, 0x3654, 0x404d, 0x4960, 0x5a51, 0x3b42, 0x4347, + 0x3b5b, 0x3f37, 0x5a52, 0x4a7d, 0x3177, 0x3b5c, 0x5a55, 0x5a53, + 0x5a56, 0x4e39, 0x5a54, 0x407b, 0x5a57, 0x4232, 0x5a58, 0x347a, + 0x5a5a, 0x5a59, 0x5a5b, 0x5a5c, 0x347b, 0x467c, 0x4336, 0x356c, + 0x3b5d, 0x4161, 0x3d5c, 0x3030, 0x5a5d, 0x3222, 0x5a61, 0x3937, + 0x5a60, 0x3a2b, 0x3e3a, 0x5a5f, 0x3e3b, 0x4c40, 0x3a2a, 0x3057, + 0x404e, 0x5a66, 0x4031, 0x3147, 0x3d55, 0x4b66, 0x3a72, 0x3e3c, + 0x4027, 0x5a65, 0x5a63, 0x5a64, 0x436b, 0x5b26, 0x5a6a, 0x3b7e, + 0x3938, 0x5a68, 0x5a69, 0x3f38, 0x5a67, 0x3b2f, 0x5a6c, 0x5a6b, + 0x5a70, 0x5a71, 0x5a6d, 0x3322, 0x5a6e, 0x5a6f, 0x4855, 0x4961, + 0x374a, 0x5a72, 0x4032, 0x3e3d, 0x4352, 0x3647, 0x5a73, 0x5a77, + 0x324b, 0x5a74, 0x5a76, 0x5a75, 0x3d6b, 0x4348, 0x3045, 0x5a78, + 0x5a79, 0x442a, 0x4e71, 0x3b43, 0x4a6b, 0x4b3d, 0x5b22, 0x5a7b, + 0x5a7e, 0x5a7d, 0x5a7a, 0x5b21, 0x465e, 0x5a7c, 0x5b23, 0x3d6c, + 0x5b24, 0x4d4b, 0x4778, 0x5b25, 0x5b27, 0x5b28, 0x5b29, 0x364a, + 0x3148, 0x3939, 0x5b2a, 0x5b2b, 0x3d71, 0x4162, 0x5258, 0x413e, + 0x413d, 0x4258, 0x3a47, 0x5072, 0x376e, 0x4d2d, 0x4a7e, 0x497e, + 0x5b2c, 0x3a73, 0x443f, 0x5b2d, 0x4f2f, 0x4b3e, 0x442b, 0x5b2e, + 0x347c, 0x5b2f, 0x5b30, 0x4c5a, 0x4c24, 0x4b76, 0x4b5c, 0x3b25, + 0x5b32, 0x3c6b, 0x4b51, 0x5b34, 0x5b37, 0x5b36, 0x3479, 0x3560, + 0x5b33, 0x5b35, 0x5b38, 0x3f79, 0x4d7b, 0x3049, 0x3a60, 0x423c, + 0x3c5d, 0x3e73, 0x5b3b, 0x454e, 0x5b39, 0x422b, 0x5b3a, 0x3e72, + 0x4c5d, 0x5b3c, 0x5b3d, 0x4d68, 0x5b42, 0x393a, 0x4755, 0x5b3f, + 0x456c, 0x5a5e, 0x5a62, 0x354f, 0x4747, 0x5b41, 0x3e3e, 0x4844, + 0x5b47, 0x487a, 0x5b3e, 0x5b44, 0x5b43, 0x404f, 0x4b6d, 0x4e53, + 0x4b67, 0x324c, 0x3b5e, 0x4f48, 0x5b46, 0x3f75, 0x5b45, 0x5b40, + 0x384f, 0x5b4c, 0x5b4a, 0x324d, 0x5b48, 0x5b4e, 0x5b54, 0x4248, + 0x4a41, 0x5b56, 0x4922, 0x5b55, 0x4770, 0x4b3f, 0x343b, 0x4077, + 0x3d40, 0x4453, 0x4d2e, 0x5b51, 0x5b50, 0x5b52, 0x5b4f, 0x5b57, + 0x5b4d, 0x5b4b, 0x5b53, 0x5b49, 0x436c, 0x4c78, 0x3c46, 0x3a74, + 0x3a3a, 0x4b6f, 0x3341, 0x444e, 0x464a, 0x3149, 0x4072, 0x4034, + 0x372a, 0x5b59, 0x393b, 0x337c, 0x5b5b, 0x3374, 0x5b61, 0x5b5e, + 0x4073, 0x334b, 0x3a2c, 0x334a, 0x3a4f, 0x5b5c, 0x3765, 0x374b, + 0x456d, 0x5b5a, 0x3046, 0x5b5d, 0x5b5f, 0x364d, 0x372c, 0x343c, + 0x354b, 0x5b62, 0x3a79, 0x4b71, 0x3b37, 0x5b63, 0x4930, 0x5b6f, + 0x3233, 0x5b64, 0x5b75, 0x5b65, 0x4e42, 0x5b6c, 0x475f, 0x5b74, + 0x5b67, 0x3034, 0x5b69, 0x393c, 0x5b6b, 0x5b6a, 0x5b66, 0x5b71, + 0x3e3f, 0x546d, 0x3868, 0x4d7c, 0x5b68, 0x4474, 0x3323, 0x3a2d, + 0x5b60, 0x5b70, 0x3361, 0x5b6e, 0x5b72, 0x456e, 0x347e, 0x5c32, + 0x4c49, 0x5b77, 0x347d, 0x5b7e, 0x4b40, 0x5c21, 0x5c23, 0x5c27, + 0x5b79, 0x432a, 0x456f, 0x5c2b, 0x5b7c, 0x5c28, 0x5c22, 0x3f39, + 0x5c2c, 0x4033, 0x5c2a, 0x343d, 0x4f50, 0x5b76, 0x5c26, 0x3058, + 0x5b78, 0x4c3a, 0x5b7d, 0x3f22, 0x4447, 0x5b73, 0x5c25, 0x3f7a, + 0x5c2f, 0x3371, 0x3821, 0x5c31, 0x5b7a, 0x5c30, 0x5c29, 0x5b7b, + 0x5c2d, 0x5c2e, 0x5c3f, 0x464e, 0x5c24, 0x5c3b, 0x5c3d, 0x4458, + 0x4d4c, 0x4976, 0x5c38, 0x424a, 0x5c3e, 0x413f, 0x5c35, 0x5c42, + 0x5c41, 0x466f, 0x5c40, 0x466a, 0x5c44, 0x5c37, 0x3648, 0x5c3a, + 0x3d5d, 0x4760, 0x5c3c, 0x364b, 0x5c34, 0x5c36, 0x5c33, 0x4f30, + 0x335a, 0x5c39, 0x5c43, 0x3335, 0x3a67, 0x315d, 0x5c54, 0x4f31, + 0x5c57, 0x3f3a, 0x5c56, 0x5c55, 0x5c52, 0x5c46, 0x5c63, 0x5c45, + 0x5c58, 0x5c50, 0x5c4b, 0x5c48, 0x5c49, 0x5c51, 0x7422, 0x5c4e, + 0x393d, 0x4448, 0x4164, 0x5c4c, 0x5c47, 0x5c4a, 0x4d4d, 0x4b6a, + 0x5c4f, 0x5c59, 0x5c61, 0x5c5a, 0x5c67, 0x5c65, 0x5c60, 0x5c5f, + 0x4450, 0x4165, 0x5c5d, 0x5c5b, 0x5c62, 0x5c68, 0x4875, 0x5c6e, + 0x5c69, 0x5c6c, 0x5c66, 0x4374, 0x4938, 0x5c5c, 0x5c64, 0x3e40, + 0x4c4f, 0x5c78, 0x5c6b, 0x3822, 0x3223, 0x335f, 0x5c53, 0x3e41, + 0x5c70, 0x5c77, 0x3c79, 0x3372, 0x432e, 0x5c6d, 0x5c72, 0x5c76, + 0x3636, 0x354c, 0x5c74, 0x3521, 0x464b, 0x5c73, 0x5c75, 0x5c6f, + 0x5c71, 0x3360, 0x4349, 0x5c7c, 0x5c7a, 0x3869, 0x5c79, 0x5d21, + 0x5b58, 0x5c7b, 0x5c7d, 0x5c7e, 0x5d2c, 0x5d28, 0x5b6d, 0x5d27, + 0x5d26, 0x5d23, 0x5c6a, 0x5d25, 0x5d24, 0x5d2a, 0x4f26, 0x5d2d, + 0x367b, 0x5d29, 0x5d2b, 0x4827, 0x5d2e, 0x5d32, 0x5d2f, 0x4d73, + 0x5d30, 0x5c5e, 0x5d33, 0x5d34, 0x3135, 0x5d36, 0x3767, 0x3c21, + 0x3655, 0x3224, 0x4d5f, 0x5d38, 0x5d37, 0x5d3a, 0x353d, 0x3656, + 0x343e, 0x5d3d, 0x5d3c, 0x5d3e, 0x324e, 0x4337, 0x5d3f, 0x343f, + 0x5d41, 0x5d40, 0x5d42, 0x5d43, 0x5d44, 0x3b5f, 0x4035, 0x3a21, + 0x4970, 0x4a62, 0x4f44, 0x3b75, 0x3a50, 0x4e72, 0x5d45, 0x5d46, + 0x3b60, 0x5d47, 0x5d48, 0x5d4a, 0x5d49, 0x4b58, 0x3d5e, 0x3c6c, + 0x3b44, 0x5d4b, 0x5d4d, 0x3f23, 0x5d4c, 0x5d4e, 0x5d4f, 0x5d50, + 0x5d51, 0x5d52, 0x5d54, 0x5d53, 0x5d55, 0x3225, 0x434a, 0x5d56, + 0x3b26, 0x334c, 0x5d57, 0x4542, 0x544c, 0x3523, 0x5d58, 0x5d59, + 0x4a6c, 0x4b68, 0x4647, 0x5d5a, 0x4866, 0x487b, 0x4c53, 0x5d5b, + 0x5d5d, 0x5d5c, 0x5d5f, 0x5d5e, 0x5d61, 0x3b61, 0x4c31, 0x5d62, + 0x5d63, 0x3524, 0x5d64, 0x5d66, 0x5d65, 0x3f65, 0x4939, 0x314a, + 0x4845, 0x4475, 0x3d41, 0x3561, 0x4846, 0x3c2e, 0x5d68, 0x3440, + 0x3178, 0x4672, 0x5d67, 0x393e, 0x4353, 0x5d69, 0x5d71, 0x5d6a, + 0x4241, 0x3562, 0x5d72, 0x3768, 0x3525, 0x5d70, 0x5d6e, 0x5d6b, + 0x4d60, 0x4440, 0x4659, 0x5d6c, 0x5d74, 0x5d73, 0x3723, 0x322d, + 0x3a3b, 0x5d6d, 0x5d6f, 0x4b57, 0x4274, 0x4b77, 0x5d7c, 0x5d7d, + 0x324f, 0x4a28, 0x4c7d, 0x5e21, 0x3c23, 0x3e42, 0x5d78, 0x5d7e, + 0x3168, 0x3637, 0x5d75, 0x5d7a, 0x4074, 0x4771, 0x4867, 0x5d77, + 0x4b21, 0x5d79, 0x5e24, 0x5e22, 0x5d7b, 0x4b22, 0x4748, 0x3563, + 0x4525, 0x436d, 0x5e25, 0x5e23, 0x4259, 0x5d76, 0x314b, 0x4d4e, + 0x5e30, 0x5e2f, 0x4076, 0x5e2c, 0x4d6c, 0x4636, 0x5e26, 0x4445, + 0x314c, 0x393f, 0x5e29, 0x3d27, 0x5e2e, 0x5e2d, 0x5e28, 0x5e2b, + 0x3368, 0x5e2a, 0x4749, 0x4e2e, 0x3e74, 0x4075, 0x5e36, 0x5e34, + 0x494d, 0x5e31, 0x5e33, 0x313a, 0x3940, 0x4f32, 0x333d, 0x4962, + 0x4d61, 0x3324, 0x3f3b, 0x5e35, 0x5e3a, 0x3e43, 0x4d30, 0x5e37, + 0x5e32, 0x5e38, 0x4e5e, 0x4573, 0x4642, 0x3336, 0x3155, 0x5e3e, + 0x5e41, 0x4e43, 0x4d64, 0x5e48, 0x5e42, 0x5e3f, 0x4e54, 0x5e45, + 0x3d4a, 0x5e47, 0x5e4c, 0x4571, 0x5e4a, 0x5e44, 0x4338, 0x5e4b, + 0x5e40, 0x5e46, 0x5e4d, 0x307c, 0x5e43, 0x5e4e, 0x3f3c, 0x3d5f, + 0x4a25, 0x3a2e, 0x5e3b, 0x5e49, 0x453a, 0x4036, 0x3369, 0x3a51, + 0x3e44, 0x5e3d, 0x3d42, 0x374c, 0x5e3c, 0x5e52, 0x3d6d, 0x383a, + 0x5e61, 0x5e5b, 0x3574, 0x454f, 0x5e56, 0x5e5f, 0x302f, 0x3132, + 0x3239, 0x5e58, 0x422c, 0x5e4f, 0x5e51, 0x3941, 0x5e62, 0x5e5d, + 0x5e55, 0x5e5c, 0x4c2b, 0x5e5a, 0x5e5e, 0x3850, 0x3e45, 0x4339, + 0x5e54, 0x4d2f, 0x5e57, 0x5e50, 0x4572, 0x5e53, 0x5e59, 0x4f51, + 0x3c3e, 0x4b7e, 0x5e63, 0x482e, 0x5e6f, 0x383b, 0x3d60, 0x5e65, + 0x4e2f, 0x3942, 0x5e72, 0x306e, 0x5e70, 0x5e64, 0x5e6a, 0x5e6c, + 0x4d4f, 0x5e67, 0x452e, 0x5e69, 0x5e71, 0x5e6b, 0x4c47, 0x5e66, + 0x3c22, 0x5e7e, 0x336a, 0x5e68, 0x5e6d, 0x5e6e, 0x426c, 0x425a, + 0x5e76, 0x5e7c, 0x5e7a, 0x4529, 0x5f23, 0x5e77, 0x5e78, 0x5e60, + 0x3579, 0x493a, 0x3c3f, 0x3977, 0x4f33, 0x5e74, 0x5f22, 0x3169, + 0x4166, 0x4779, 0x3441, 0x4e7a, 0x4c21, 0x4452, 0x5e7b, 0x5e7d, + 0x4132, 0x5f21, 0x5e79, 0x5e73, 0x3443, 0x3769, 0x5f2f, 0x5f2a, + 0x4078, 0x3363, 0x3d61, 0x5f33, 0x5f2c, 0x442c, 0x5f29, 0x4459, + 0x5f4c, 0x5f26, 0x5f25, 0x5f2e, 0x5f28, 0x5f27, 0x5f2d, 0x4021, + 0x5f24, 0x5f30, 0x5f31, 0x3442, 0x5f36, 0x5f35, 0x5f37, 0x5f3a, + 0x4543, 0x5f34, 0x5f38, 0x3763, 0x4279, 0x5f32, 0x473b, 0x5f39, + 0x5f3e, 0x5f3c, 0x5f3f, 0x5f42, 0x5f3b, 0x396a, 0x4728, 0x5e39, + 0x4d74, 0x5f3d, 0x5f41, 0x4275, 0x5f40, 0x5f2b, 0x6f69, 0x5f45, + 0x5f49, 0x5f47, 0x5f43, 0x5f44, 0x5f48, 0x5f46, 0x494e, 0x5f4e, + 0x5f4b, 0x5f4a, 0x5f4d, 0x4654, 0x5f4f, 0x4375, 0x426d, 0x4025, + 0x5f50, 0x5f52, 0x5f51, 0x5e75, 0x5f53, 0x4667, 0x5f54, 0x3250, + 0x4574, 0x3325, 0x3564, 0x3c5e, 0x3a52, 0x4f27, 0x3f66, 0x316a, + 0x5f56, 0x5f55, 0x5f59, 0x433a, 0x5f5c, 0x5f57, 0x5f5b, 0x5f5a, + 0x4540, 0x3059, 0x4e75, 0x5f5e, 0x3128, 0x5f60, 0x5f5f, 0x5f5d, + 0x5f58, 0x4b23, 0x5f62, 0x5f61, 0x316b, 0x5f64, 0x4a32, 0x5f63, + 0x4c35, 0x3e47, 0x4133, 0x3e46, 0x4e7b, 0x5f6a, 0x4079, 0x5f66, + 0x5f6b, 0x316c, 0x5f69, 0x4761, 0x5f65, 0x5f68, 0x3e48, 0x4851, + 0x5f6c, 0x3c51, 0x407a, 0x5f6f, 0x5f67, 0x3727, 0x5f6d, 0x4d50, + 0x5f70, 0x7426, 0x3d4f, 0x5f71, 0x5f72, 0x472e, 0x5f74, 0x5f75, + 0x4733, 0x4575, 0x5f77, 0x5f79, 0x4e55, 0x5f76, 0x5f78, 0x316d, + 0x5f73, 0x535b, 0x5f7a, 0x4167, 0x3b38, 0x5f7c, 0x5f7b, 0x3f24, + 0x5259, 0x5f7d, 0x6021, 0x5f6e, 0x5f7e, 0x6022, 0x477a, 0x6023, + 0x6024, 0x6025, 0x6026, 0x445e, 0x6028, 0x6027, 0x6029, 0x602a, + 0x3c5f, 0x4963, 0x4c6c, 0x602b, 0x602c, 0x4156, 0x3c24, 0x602d, + 0x602e, 0x602f, 0x4a52, 0x4847, 0x6030, 0x4757, 0x442d, 0x6031, + 0x3267, 0x356d, 0x4c46, 0x4c36, 0x3234, 0x4f34, 0x4b52, 0x4a2a, + 0x4037, 0x6032, 0x4643, 0x3823, 0x6033, 0x3a54, 0x6035, 0x6034, + 0x6036, 0x6037, 0x6038, 0x353e, 0x6039, 0x603a, 0x3824, 0x4848, + 0x603c, 0x3e75, 0x603b, 0x3638, 0x603d, 0x603f, 0x603e, 0x6040, + 0x3851, 0x6041, 0x3669, 0x4140, 0x397d, 0x6043, 0x6044, 0x6042, + 0x3c6d, 0x4648, 0x3639, 0x6046, 0x432c, 0x6045, 0x4f35, 0x4762, + 0x6049, 0x604b, 0x6048, 0x4c54, 0x604a, 0x604c, 0x4e44, 0x6050, + 0x604f, 0x4376, 0x472d, 0x3825, 0x604e, 0x604d, 0x4d31, 0x4d32, + 0x6051, 0x316e, 0x3976, 0x3b62, 0x6052, 0x6053, 0x6055, 0x3d43, + 0x6057, 0x6056, 0x6058, 0x334d, 0x605a, 0x6059, 0x605c, 0x605b, + 0x383c, 0x4e28, 0x364c, 0x3226, 0x366a, 0x3461, 0x4e68, 0x605e, + 0x6060, 0x6061, 0x3251, 0x605d, 0x3b39, 0x4441, 0x605f, 0x6064, + 0x3c6e, 0x6062, 0x373e, 0x4849, 0x6063, 0x607e, 0x6069, 0x383d, + 0x3565, 0x6066, 0x4d7d, 0x4e30, 0x4276, 0x6068, 0x606a, 0x4e56, + 0x3657, 0x487c, 0x474a, 0x606b, 0x606d, 0x6070, 0x606c, 0x606f, + 0x386a, 0x314d, 0x6071, 0x3f70, 0x606e, 0x4e5c, 0x6074, 0x7424, + 0x6072, 0x6075, 0x6067, 0x6073, 0x3a3c, 0x6076, 0x6077, 0x4d7e, + 0x6078, 0x6079, 0x6065, 0x607a, 0x3444, 0x3c25, 0x607b, 0x607c, + 0x607d, 0x313b, 0x6121, 0x493b, 0x6122, 0x3424, 0x6123, 0x6124, + 0x6125, 0x6127, 0x6128, 0x6126, 0x4953, 0x612a, 0x6129, 0x612c, + 0x612b, 0x612d, 0x612e, 0x6130, 0x612f, 0x3979, 0x6132, 0x6131, + 0x3445, 0x3f53, 0x453c, 0x6133, 0x4038, 0x3b3a, 0x3179, 0x6134, + 0x4d51, 0x4a63, 0x6135, 0x4544, 0x4d33, 0x3943, 0x3f3d, 0x434b, + 0x5234, 0x442e, 0x3268, 0x6136, 0x6137, 0x613c, 0x613a, 0x6139, + 0x5a42, 0x3326, 0x6138, 0x305a, 0x482a, 0x484a, 0x4e31, 0x613d, + 0x613b, 0x435c, 0x4026, 0x482b, 0x492d, 0x613f, 0x4e2c, 0x374d, + 0x6140, 0x613e, 0x4856, 0x6141, 0x6142, 0x305b, 0x3e76, 0x6147, + 0x6144, 0x466d, 0x6143, 0x3526, 0x614a, 0x6145, 0x6146, 0x6149, + 0x6148, 0x4925, 0x4142, 0x4141, 0x353f, 0x614b, 0x614c, 0x614d, + 0x614f, 0x614e, 0x3156, 0x6157, 0x4868, 0x6151, 0x6153, 0x6155, + 0x3f3e, 0x6156, 0x6154, 0x3c40, 0x6150, 0x6152, 0x4942, 0x3e49, + 0x6159, 0x6158, 0x615a, 0x3c26, 0x3a2f, 0x4577, 0x615b, 0x444b, + 0x615d, 0x4e21, 0x615c, 0x4169, 0x6162, 0x6164, 0x6165, 0x4354, + 0x6163, 0x6160, 0x615e, 0x615f, 0x6161, 0x6168, 0x6166, 0x6167, + 0x6169, 0x616b, 0x616c, 0x616d, 0x616e, 0x616a, 0x6170, 0x616f, + 0x6171, 0x4e45, 0x6174, 0x6172, 0x6173, 0x3462, 0x4c7e, 0x4a4a, + 0x6176, 0x6175, 0x6177, 0x6178, 0x617c, 0x6179, 0x617a, 0x617b, + 0x617d, 0x617e, 0x6221, 0x6222, 0x6223, 0x482f, 0x4550, 0x6224, + 0x4772, 0x4934, 0x6225, 0x6226, 0x452a, 0x3327, 0x3944, 0x6227, + 0x6228, 0x6229, 0x3b29, 0x622b, 0x622a, 0x622c, 0x622d, 0x4869, + 0x622e, 0x622f, 0x7369, 0x6230, 0x6231, 0x6232, 0x3b2e, 0x6233, + 0x4756, 0x4b5f, 0x314e, 0x3157, 0x6234, 0x6236, 0x6235, 0x4570, + 0x4039, 0x5d39, 0x6237, 0x4c41, 0x6238, 0x3446, 0x4857, 0x6239, + 0x623a, 0x623b, 0x4c5c, 0x4c55, 0x443e, 0x416a, 0x623d, 0x3d62, + 0x3e4a, 0x6240, 0x623f, 0x623e, 0x487d, 0x3447, 0x3829, 0x6246, + 0x6243, 0x3f3f, 0x4c32, 0x6242, 0x6244, 0x6245, 0x6241, 0x6247, + 0x6248, 0x442f, 0x3463, 0x4365, 0x6249, 0x624a, 0x624d, 0x3f67, + 0x4644, 0x624e, 0x4b53, 0x624b, 0x624c, 0x6251, 0x6250, 0x624f, + 0x6253, 0x6252, 0x6254, 0x6256, 0x6255, 0x4a4d, 0x3d56, 0x4e46, + 0x6257, 0x4637, 0x6258, 0x6259, 0x625d, 0x625b, 0x625c, 0x625a, + 0x625e, 0x625f, 0x6260, 0x6261, 0x4c37, 0x6262, 0x4c70, 0x6263, + 0x434e, 0x476a, 0x366b, 0x433b, 0x6264, 0x363a, 0x4050, 0x6265, + 0x3a3d, 0x6266, 0x6267, 0x3826, 0x3a55, 0x6269, 0x4556, 0x3a56, + 0x354e, 0x4b24, 0x474b, 0x4557, 0x395c, 0x626b, 0x3e4b, 0x4e32, + 0x3945, 0x3827, 0x4823, 0x626d, 0x626f, 0x386b, 0x626e, 0x4476, + 0x6271, 0x3337, 0x626c, 0x486a, 0x3130, 0x3a6c, 0x4f52, 0x6270, + 0x6272, 0x4a4b, 0x4059, 0x6274, 0x6275, 0x6273, 0x334e, 0x627b, + 0x627a, 0x3c27, 0x627c, 0x6277, 0x627d, 0x6278, 0x4858, 0x6276, + 0x6279, 0x6322, 0x6321, 0x4b61, 0x627e, 0x306b, 0x6324, 0x6323, + 0x3e4c, 0x6325, 0x4143, 0x6327, 0x6326, 0x6328, 0x6268, 0x626a, + 0x632a, 0x6329, 0x3c28, 0x4e69, 0x3c52, 0x632b, 0x3737, 0x3540, + 0x3527, 0x3b63, 0x4d34, 0x6331, 0x6330, 0x4144, 0x632d, 0x632f, + 0x3d4b, 0x3f40, 0x632e, 0x632c, 0x472a, 0x3e4d, 0x493c, 0x3a57, + 0x4578, 0x6332, 0x6333, 0x6349, 0x3658, 0x4f3d, 0x4135, 0x6334, + 0x3252, 0x4477, 0x4a21, 0x6335, 0x357a, 0x6336, 0x6338, 0x6339, + 0x4729, 0x633a, 0x633b, 0x633c, 0x3659, 0x3253, 0x4645, 0x3d28, + 0x3b64, 0x633d, 0x3d29, 0x324a, 0x4943, 0x633e, 0x486b, 0x4145, + 0x6341, 0x6342, 0x4769, 0x3f41, 0x633f, 0x4361, 0x6340, 0x3e4e, + 0x305c, 0x3529, 0x6343, 0x4478, 0x6344, 0x4047, 0x4c2d, 0x4923, + 0x6345, 0x6346, 0x4355, 0x4e47, 0x6348, 0x6347, 0x3c6f, 0x634a, + 0x3070, 0x634d, 0x634b, 0x3254, 0x374e, 0x634c, 0x3946, 0x3972, + 0x4a66, 0x634e, 0x4b54, 0x6350, 0x4051, 0x314f, 0x323a, 0x302c, + 0x634f, 0x6351, 0x6352, 0x3e77, 0x6353, 0x334f, 0x6355, 0x376a, + 0x3566, 0x6356, 0x3675, 0x6357, 0x407c, 0x464d, 0x4060, 0x3a75, + 0x6358, 0x4362, 0x416b, 0x635a, 0x635c, 0x6359, 0x635b, 0x3722, + 0x635d, 0x3726, 0x3567, 0x4d52, 0x635f, 0x6360, 0x312e, 0x6363, + 0x3376, 0x6362, 0x6361, 0x6365, 0x635e, 0x6366, 0x4e29, 0x6367, + 0x6368, 0x5474, 0x636a, 0x6369, 0x636b, 0x636c, 0x4e35, 0x636d, + 0x706f, 0x3e4f, 0x636e, 0x636f, 0x3d57, 0x4638, 0x6370, 0x4328, + 0x6371, 0x433c, 0x6372, 0x3625, 0x513f, 0x435d, 0x3c33, 0x3448, + 0x6373, 0x6422, 0x6376, 0x3568, 0x6375, 0x6424, 0x6374, 0x3e50, + 0x6378, 0x6379, 0x452b, 0x637a, 0x335e, 0x3f5a, 0x4964, 0x637c, + 0x4268, 0x6377, 0x637b, 0x637d, 0x3a7b, 0x6426, 0x492e, 0x4826, + 0x4579, 0x365a, 0x6425, 0x6423, 0x4835, 0x637e, 0x435e, 0x457b, + 0x457a, 0x3a76, 0x6438, 0x6428, 0x642a, 0x642d, 0x642e, 0x642b, + 0x642c, 0x6429, 0x6427, 0x6421, 0x4a4f, 0x3255, 0x6435, 0x6432, + 0x6437, 0x6436, 0x4773, 0x4c27, 0x3b3b, 0x6430, 0x6439, 0x6434, + 0x6433, 0x642f, 0x6431, 0x3449, 0x433d, 0x407d, 0x4822, 0x643e, + 0x4824, 0x4061, 0x643b, 0x484f, 0x643f, 0x4a53, 0x435b, 0x643a, + 0x643c, 0x643d, 0x6440, 0x3c44, 0x4646, 0x6445, 0x6444, 0x6441, + 0x4f36, 0x644a, 0x644e, 0x644b, 0x6447, 0x6448, 0x644d, 0x6442, + 0x5255, 0x6449, 0x6443, 0x644c, 0x6452, 0x344a, 0x644f, 0x6450, + 0x6451, 0x6454, 0x6453, 0x4876, 0x6455, 0x4e7c, 0x4a6d, 0x645a, + 0x6457, 0x6456, 0x4052, 0x6459, 0x645b, 0x6458, 0x645f, 0x645c, + 0x645d, 0x6446, 0x645e, 0x6460, 0x6461, 0x4a46, 0x6462, 0x4c62, + 0x364e, 0x3729, 0x6463, 0x4a34, 0x3f68, 0x4c30, 0x6464, 0x4e33, + 0x4774, 0x4146, 0x4734, 0x3d4d, 0x3040, 0x6469, 0x6467, 0x6465, + 0x3421, 0x3e51, 0x646a, 0x6468, 0x6466, 0x646e, 0x646d, 0x646c, + 0x646b, 0x646f, 0x6470, 0x403a, 0x6471, 0x6473, 0x6472, 0x3852, + 0x4138, 0x6475, 0x457c, 0x6474, 0x6476, 0x4a35, 0x416c, 0x3947, + 0x6477, 0x4e48, 0x6479, 0x647a, 0x647b, 0x647c, 0x3b65, 0x647d, + 0x374f, 0x356a, 0x352a, 0x6521, 0x4c73, 0x3948, 0x647e, 0x6524, + 0x4c66, 0x473c, 0x4933, 0x3d63, 0x6523, 0x3c53, 0x3949, 0x3b66, + 0x3569, 0x4a36, 0x6522, 0x4147, 0x4b42, 0x3a77, 0x3b67, 0x445d, + 0x6527, 0x4e5f, 0x3a59, 0x6528, 0x3f42, 0x652a, 0x3e52, 0x3a30, + 0x6529, 0x3d2a, 0x383e, 0x4148, 0x6525, 0x652b, 0x6526, 0x3750, + 0x652e, 0x6532, 0x376b, 0x652d, 0x6536, 0x394a, 0x4d6d, 0x303c, + 0x6533, 0x356b, 0x6530, 0x6531, 0x457d, 0x652f, 0x652c, 0x3328, + 0x4064, 0x3828, 0x6538, 0x6535, 0x6537, 0x6534, 0x3751, 0x4233, + 0x6539, 0x416e, 0x6546, 0x6542, 0x653c, 0x6540, 0x3c7a, 0x305d, + 0x653b, 0x6543, 0x6547, 0x394b, 0x4c56, 0x4456, 0x653d, 0x6545, + 0x653a, 0x433e, 0x653f, 0x303d, 0x4c4a, 0x653e, 0x365b, 0x486c, + 0x416d, 0x4e50, 0x3d6f, 0x656e, 0x6548, 0x407e, 0x6544, 0x6549, + 0x654b, 0x4479, 0x654e, 0x654a, 0x4a54, 0x344b, 0x4c4b, 0x305e, + 0x654d, 0x4e7d, 0x654c, 0x316f, 0x466c, 0x654f, 0x6556, 0x6550, + 0x6557, 0x6553, 0x477b, 0x3c4a, 0x6555, 0x6552, 0x6558, 0x6551, + 0x3d44, 0x4b25, 0x3d4c, 0x6554, 0x6560, 0x655c, 0x655f, 0x655d, + 0x6561, 0x655b, 0x6541, 0x4053, 0x484b, 0x655e, 0x6559, 0x4121, + 0x3752, 0x3d2b, 0x3f25, 0x4136, 0x6564, 0x6566, 0x6567, 0x6563, + 0x6565, 0x655a, 0x6562, 0x656a, 0x6569, 0x4b7a, 0x372b, 0x6568, + 0x656c, 0x656b, 0x656f, 0x6571, 0x3b3c, 0x656d, 0x6572, 0x6573, + 0x6574, 0x657a, 0x453b, 0x6576, 0x6575, 0x6577, 0x6578, 0x6579, + 0x657b, 0x657c, 0x344c, 0x657d, 0x657e, 0x6621, 0x6622, 0x6623, + 0x6624, 0x6625, 0x6626, 0x6628, 0x6627, 0x6629, 0x662a, 0x662b, + 0x662e, 0x662c, 0x662d, 0x3a61, 0x3753, 0x4356, 0x4833, 0x3d70, + 0x474d, 0x486d, 0x662f, 0x586d, 0x6630, 0x6632, 0x4d65, 0x6631, + 0x6634, 0x6633, 0x4d53, 0x6635, 0x487e, 0x6636, 0x6639, 0x6638, + 0x6637, 0x663a, 0x3732, 0x4122, 0x3541, 0x663e, 0x663b, 0x663c, + 0x663f, 0x6640, 0x663d, 0x3129, 0x3227, 0x6642, 0x6643, 0x6644, + 0x4d62, 0x3d2c, 0x6646, 0x6645, 0x3f69, 0x6647, 0x6648, 0x6649, + 0x3465, 0x344d, 0x664a, 0x664b, 0x4b5d, 0x4d63, 0x4d54, 0x4f37, + 0x394d, 0x664e, 0x3c54, 0x664d, 0x664f, 0x3c29, 0x4251, 0x6650, + 0x394c, 0x4c57, 0x6651, 0x6652, 0x6653, 0x6654, 0x6655, 0x3c2a, + 0x4c6d, 0x6657, 0x433f, 0x6656, 0x6659, 0x6658, 0x665a, 0x403b, + 0x665b, 0x665c, 0x4a39, 0x665d, 0x416f, 0x665e, 0x665f, 0x4e7e, + 0x6662, 0x6661, 0x6660, 0x4430, 0x6663, 0x3f26, 0x6664, 0x6665, + 0x4f38, 0x6666, 0x6667, 0x6669, 0x6668, 0x4825, 0x4679, 0x4f3e, + 0x4829, 0x666b, 0x3e53, 0x492a, 0x666c, 0x666a, 0x344e, 0x3854, + 0x3b68, 0x486e, 0x382a, 0x4b43, 0x666f, 0x666d, 0x394e, 0x394f, + 0x3069, 0x3a68, 0x4759, 0x305f, 0x6674, 0x4340, 0x4758, 0x425b, + 0x6676, 0x6672, 0x6675, 0x6670, 0x6673, 0x4b26, 0x3855, 0x307d, + 0x6671, 0x6678, 0x6679, 0x4639, 0x363b, 0x6726, 0x473d, 0x3b69, + 0x363c, 0x4048, 0x4f46, 0x4c2e, 0x6677, 0x4054, 0x3553, 0x667a, + 0x667c, 0x667b, 0x667d, 0x4326, 0x473e, 0x4431, 0x6723, 0x6722, + 0x667e, 0x3f55, 0x4965, 0x6725, 0x6724, 0x3950, 0x4f53, 0x6735, + 0x6729, 0x672a, 0x3c70, 0x6728, 0x3978, 0x6727, 0x672b, 0x4432, + 0x4a22, 0x4123, 0x425c, 0x672f, 0x6730, 0x672c, 0x672d, 0x672e, + 0x3951, 0x6736, 0x6732, 0x4966, 0x4b6c, 0x4928, 0x6731, 0x6734, + 0x6733, 0x4b44, 0x6737, 0x6738, 0x4137, 0x6739, 0x673b, 0x673f, + 0x673c, 0x673a, 0x473f, 0x673d, 0x673e, 0x3232, 0x6745, 0x6740, + 0x6741, 0x6742, 0x4221, 0x6744, 0x6743, 0x6746, 0x6747, 0x6748, + 0x3f43, 0x3269, 0x6749, 0x4e57, 0x3c2b, 0x3d2d, 0x3b6a, 0x4357, + 0x674a, 0x674b, 0x3131, 0x674c, 0x674d, 0x674e, 0x674f, 0x6750, + 0x363d, 0x5a2a, 0x6751, 0x4065, 0x6752, 0x3c4b, 0x6753, 0x5030, + 0x6754, 0x4a5e, 0x345c, 0x4124, 0x3d58, 0x4971, 0x3d2e, 0x6755, + 0x3952, 0x6756, 0x484c, 0x6764, 0x6758, 0x4249, 0x4775, 0x383f, + 0x6757, 0x4125, 0x6759, 0x447a, 0x675b, 0x675a, 0x675d, 0x675c, + 0x675e, 0x6760, 0x675f, 0x344f, 0x6761, 0x6762, 0x6763, 0x3a31, + 0x4e49, 0x6765, 0x3f27, 0x3170, 0x6766, 0x6767, 0x6768, 0x3072, + 0x6769, 0x676a, 0x4967, 0x3c47, 0x676c, 0x3329, 0x3032, 0x676b, + 0x676e, 0x474e, 0x3f44, 0x3256, 0x4b27, 0x375d, 0x365c, 0x676d, + 0x326a, 0x3423, 0x3171, 0x6772, 0x4e6a, 0x425d, 0x4944, 0x677e, + 0x3257, 0x677c, 0x677a, 0x6771, 0x676f, 0x6770, 0x3c63, 0x366c, + 0x4377, 0x4651, 0x3151, 0x6774, 0x6773, 0x6779, 0x6775, 0x6778, + 0x4c50, 0x6777, 0x3258, 0x337d, 0x677b, 0x677d, 0x3754, 0x6823, + 0x682c, 0x682d, 0x302b, 0x6834, 0x3071, 0x682b, 0x682a, 0x6825, + 0x6824, 0x6822, 0x6821, 0x4363, 0x427b, 0x6827, 0x6826, 0x6829, + 0x4170, 0x3755, 0x3141, 0x6828, 0x3953, 0x4171, 0x683a, 0x683b, + 0x3259, 0x322e, 0x6838, 0x682e, 0x6836, 0x683d, 0x6837, 0x6835, + 0x6776, 0x6833, 0x682f, 0x3450, 0x6831, 0x683c, 0x6832, 0x683e, + 0x6830, 0x477c, 0x4d69, 0x6839, 0x684f, 0x6847, 0x3f7b, 0x3546, + 0x365d, 0x6842, 0x325b, 0x3e54, 0x6845, 0x3a5a, 0x4551, 0x684a, + 0x4a6e, 0x6841, 0x325a, 0x3856, 0x4929, 0x684b, 0x683f, 0x6848, + 0x6852, 0x6843, 0x6844, 0x463a, 0x6849, 0x6846, 0x4b28, 0x684c, + 0x3060, 0x6840, 0x684e, 0x684d, 0x476b, 0x6854, 0x685f, 0x337e, + 0x6862, 0x6850, 0x6855, 0x4d6e, 0x685e, 0x4d55, 0x4e2a, 0x4378, + 0x336b, 0x4972, 0x6864, 0x4621, 0x3031, 0x685d, 0x6859, 0x4172, + 0x6853, 0x685b, 0x6860, 0x472c, 0x302a, 0x6858, 0x6861, 0x4978, + 0x685c, 0x6857, 0x3e55, 0x3d2f, 0x3c2c, 0x4c58, 0x4947, 0x6867, + 0x6870, 0x685a, 0x3377, 0x3e78, 0x6865, 0x686a, 0x4173, 0x6866, + 0x686d, 0x435f, 0x686e, 0x4d56, 0x6863, 0x3338, 0x6869, 0x686c, + 0x4c2c, 0x686f, 0x6868, 0x686b, 0x4b29, 0x4f21, 0x6873, 0x687a, + 0x6872, 0x3c43, 0x6851, 0x4a4e, 0x4c22, 0x6879, 0x6878, 0x6874, + 0x6875, 0x3136, 0x6877, 0x6871, 0x4455, 0x6876, 0x307e, 0x4222, + 0x4a43, 0x687b, 0x6921, 0x4859, 0x687e, 0x3e56, 0x3c49, 0x6923, + 0x363e, 0x6924, 0x4979, 0x687d, 0x6856, 0x687c, 0x4f4f, 0x4622, + 0x4973, 0x692b, 0x6931, 0x6932, 0x6925, 0x4776, 0x692f, 0x6927, + 0x6929, 0x6933, 0x6928, 0x692c, 0x3172, 0x4665, 0x692d, 0x6930, + 0x6926, 0x4126, 0x692a, 0x3b27, 0x3f45, 0x3730, 0x4c74, 0x4c79, + 0x3d72, 0x6937, 0x6935, 0x4f4e, 0x6934, 0x4d75, 0x6936, 0x6938, + 0x6939, 0x693c, 0x693a, 0x4623, 0x693b, 0x484d, 0x692e, 0x3d73, + 0x693d, 0x6942, 0x4174, 0x6941, 0x6922, 0x6943, 0x4149, 0x693e, + 0x6940, 0x693f, 0x5d31, 0x5d22, 0x6945, 0x6944, 0x4d76, 0x623c, + 0x6946, 0x6947, 0x6948, 0x3857, 0x3554, 0x694a, 0x515d, 0x3575, + 0x4e3a, 0x3673, 0x694b, 0x694c, 0x436e, 0x694d, 0x467a, 0x303a, + 0x3263, 0x6952, 0x6953, 0x694e, 0x3b3d, 0x694f, 0x4742, 0x6950, + 0x6951, 0x695b, 0x6955, 0x6958, 0x6954, 0x6956, 0x6957, 0x3c58, + 0x6959, 0x4341, 0x3756, 0x3342, 0x695c, 0x333f, 0x6961, 0x695d, + 0x6960, 0x483a, 0x695e, 0x695f, 0x4948, 0x485a, 0x6962, 0x427d, + 0x696c, 0x6968, 0x326b, 0x6966, 0x4b2a, 0x6967, 0x6964, 0x6965, + 0x696a, 0x696d, 0x696b, 0x6969, 0x6963, 0x4358, 0x6974, 0x4c2a, + 0x6972, 0x6973, 0x696e, 0x6970, 0x6971, 0x696f, 0x4066, 0x4f39, + 0x6978, 0x6979, 0x6a21, 0x3f2a, 0x697b, 0x697e, 0x6976, 0x6975, + 0x6a22, 0x325c, 0x697c, 0x6a23, 0x697d, 0x697a, 0x4433, 0x6977, + 0x4768, 0x6a27, 0x4d3b, 0x6a26, 0x6a25, 0x6a2e, 0x6a28, 0x6a30, + 0x4d66, 0x6a33, 0x6a2a, 0x6a2b, 0x6a2f, 0x6a32, 0x6a31, 0x6a29, + 0x6a2c, 0x6a3d, 0x6a36, 0x6a34, 0x6a35, 0x6a3a, 0x6a3b, 0x332a, + 0x3542, 0x6a39, 0x6a24, 0x6a38, 0x6a3c, 0x6a37, 0x6a3e, 0x6a40, + 0x6a3f, 0x6a42, 0x6a41, 0x695a, 0x6a46, 0x6a43, 0x6a44, 0x6a45, + 0x6a47, 0x376c, 0x6a49, 0x6a48, 0x3d30, 0x3954, 0x5e27, 0x6a4a, + 0x3d51, 0x3339, 0x6a4b, 0x3152, 0x3e57, 0x6a4c, 0x3955, 0x6a4d, + 0x3061, 0x493d, 0x6a4e, 0x3f6a, 0x6a55, 0x6a52, 0x436f, 0x6a53, + 0x6a50, 0x365e, 0x6a4f, 0x6a56, 0x3736, 0x425e, 0x6a5c, 0x6a58, + 0x4235, 0x6a57, 0x6a5a, 0x6a51, 0x6a5b, 0x6a5d, 0x486f, 0x6a59, + 0x6a5e, 0x6a60, 0x3853, 0x6a54, 0x3041, 0x6a5f, 0x3a5b, 0x4e76, + 0x6a61, 0x6a62, 0x4175, 0x4e22, 0x6a63, 0x4d35, 0x6a64, 0x6a65, + 0x4a64, 0x6a66, 0x3a40, 0x4e23, 0x6a6b, 0x6a6c, 0x3e58, 0x6a6a, + 0x4d67, 0x6a67, 0x6a69, 0x403d, 0x3f7e, 0x6a68, 0x6a6d, 0x4a23, + 0x6a6f, 0x6a6e, 0x336c, 0x4b2b, 0x6a70, 0x6a7c, 0x6a72, 0x6a73, + 0x6a74, 0x6a75, 0x6a79, 0x6a7a, 0x6a78, 0x6a76, 0x6a71, 0x6a77, + 0x6a7b, 0x7037, 0x3228, 0x6a7e, 0x365f, 0x6a7d, 0x6b22, 0x6b21, + 0x6b24, 0x6b23, 0x6b25, 0x3d31, 0x6b26, 0x6b27, 0x6b28, 0x403e, + 0x4d57, 0x6b29, 0x4a24, 0x4746, 0x6b2a, 0x6b2b, 0x382b, 0x352c, + 0x6b2c, 0x3b6b, 0x4741, 0x6b2d, 0x3350, 0x6b2e, 0x6b30, 0x4d77, + 0x6b2f, 0x3f46, 0x6b31, 0x6b32, 0x6b33, 0x3451, 0x6b34, 0x6b35, + 0x6b36, 0x6b37, 0x3351, 0x6b38, 0x6b39, 0x6b3a, 0x3272, 0x3f28, + 0x6b3b, 0x6b3c, 0x6b3d, 0x3840, 0x447b, 0x6b3e, 0x3757, 0x3f56, + 0x6b41, 0x4624, 0x6b40, 0x3731, 0x6b3f, 0x4277, 0x352d, 0x6b42, + 0x6b43, 0x3e59, 0x376d, 0x6b44, 0x4b2c, 0x405f, 0x3576, 0x4c75, + 0x414a, 0x6b45, 0x3f47, 0x4370, 0x3e5a, 0x6b46, 0x6b49, 0x6b4a, + 0x3a3e, 0x4242, 0x6b48, 0x3e5b, 0x493e, 0x6b47, 0x3b6c, 0x3153, + 0x6b4e, 0x3758, 0x3b6e, 0x3b6d, 0x4f4d, 0x6b4d, 0x6b4c, 0x4127, + 0x354d, 0x4f43, 0x333a, 0x3e5c, 0x6b4b, 0x6b50, 0x6b51, 0x6b4f, + 0x3858, 0x4d40, 0x3b6f, 0x4727, 0x6b54, 0x4040, 0x4342, 0x4d36, + 0x6b57, 0x386c, 0x403f, 0x6b53, 0x6b58, 0x386d, 0x6b55, 0x6b56, + 0x6b52, 0x4062, 0x4649, 0x432f, 0x325d, 0x4870, 0x3543, 0x4434, + 0x6b5b, 0x6b59, 0x434c, 0x4041, 0x3452, 0x6b5a, 0x3f5b, 0x4e4a, + 0x4f40, 0x6b5c, 0x6b67, 0x4435, 0x6b66, 0x6b63, 0x6b6b, 0x6b64, + 0x6b60, 0x447c, 0x6b5f, 0x6b5d, 0x4d21, 0x3b70, 0x6b61, 0x6b5e, + 0x6b65, 0x3d74, 0x3841, 0x427a, 0x4b45, 0x315a, 0x3062, 0x4625, + 0x6b69, 0x6b68, 0x4666, 0x6b6d, 0x6b62, 0x6b6c, 0x6b6e, 0x382c, + 0x6b6a, 0x3956, 0x3c55, 0x6b6f, 0x4d58, 0x6b72, 0x6b75, 0x6b73, + 0x4935, 0x6b70, 0x3660, 0x6b74, 0x6b76, 0x6b7a, 0x6b77, 0x6b79, + 0x6b78, 0x6b7b, 0x3c31, 0x6b7d, 0x6b7c, 0x4968, 0x6c21, 0x3759, + 0x6b7e, 0x6c22, 0x6c23, 0x3544, 0x6641, 0x3e79, 0x6c24, 0x386e, + 0x6c25, 0x6c26, 0x3b3e, 0x5a4e, 0x6c27, 0x6c28, 0x3d32, 0x6c29, + 0x6c2a, 0x6c2b, 0x6c2c, 0x6c2d, 0x432b, 0x6c2e, 0x6c30, 0x6c2f, + 0x4626, 0x6c31, 0x4b2d, 0x6c32, 0x6c33, 0x6c34, 0x6c35, 0x465a, + 0x3e5d, 0x6c36, 0x396b, 0x502e, 0x6c37, 0x6c38, 0x493f, 0x6c39, + 0x6c41, 0x6c3a, 0x6c3c, 0x6c3b, 0x6c3d, 0x4b46, 0x6c3e, 0x6c3f, + 0x6c40, 0x6c42, 0x332d, 0x4467, 0x4969, 0x3a62, 0x3957, 0x494f, + 0x325f, 0x484e, 0x6c45, 0x3453, 0x4055, 0x6c44, 0x6c49, 0x4379, + 0x4c63, 0x6c47, 0x6c48, 0x352e, 0x6c4a, 0x4763, 0x425f, 0x4871, + 0x453d, 0x6c46, 0x4b47, 0x326c, 0x6c4c, 0x4f28, 0x4442, 0x4f45, + 0x3b71, 0x6c4b, 0x4231, 0x6c5c, 0x4128, 0x4678, 0x4950, 0x6c4f, + 0x3b3f, 0x3b72, 0x3e5e, 0x4765, 0x382d, 0x6c4e, 0x6c4d, 0x496a, + 0x3c41, 0x4552, 0x6c51, 0x6c52, 0x3958, 0x6c50, 0x6c53, 0x6c54, + 0x6c56, 0x4223, 0x6c55, 0x3466, 0x6c58, 0x6c57, 0x6c59, 0x6c5b, + 0x6c5d, 0x6c5e, 0x4056, 0x3c4f, 0x6c5f, 0x3352, 0x6c60, 0x4176, + 0x6c61, 0x6c62, 0x496b, 0x352f, 0x6c63, 0x4436, 0x315b, 0x6c64, + 0x3c71, 0x3f76, 0x422d, 0x6c67, 0x6c66, 0x6c65, 0x6c6d, 0x6c6b, + 0x6c68, 0x6c6a, 0x6c69, 0x6c6c, 0x3577, 0x6c70, 0x4057, 0x6c71, + 0x3859, 0x6c6e, 0x6c6f, 0x4f29, 0x4437, 0x4129, 0x6c72, 0x6c75, + 0x6c73, 0x6c74, 0x4d59, 0x4627, 0x6c78, 0x6c76, 0x6c77, 0x6c79, + 0x6d29, 0x6c7c, 0x6c7d, 0x6c7b, 0x6c7a, 0x447d, 0x6d21, 0x6d25, + 0x6d22, 0x6c7e, 0x6d23, 0x6d24, 0x6d2b, 0x6d26, 0x4058, 0x6d28, + 0x6d2a, 0x6d27, 0x6d2d, 0x3d33, 0x6d2c, 0x6d2e, 0x6d2f, 0x6d32, + 0x6d31, 0x6d30, 0x6d34, 0x6d33, 0x4c76, 0x6d36, 0x6d35, 0x6d37, + 0x6d38, 0x6d3a, 0x6d39, 0x3f48, 0x6d3b, 0x366d, 0x6d3c, 0x6d3e, + 0x6d3f, 0x6d40, 0x6d3d, 0x6d41, 0x3c56, 0x6d42, 0x3530, 0x3733, + 0x382e, 0x6d43, 0x4670, 0x453e, 0x6d44, 0x6d47, 0x3c34, 0x6d46, + 0x6d45, 0x375a, 0x6d48, 0x3353, 0x6d4a, 0x3a5c, 0x6d49, 0x6d52, + 0x6d4c, 0x6d4e, 0x4a65, 0x6d4b, 0x6d4d, 0x6d51, 0x6d4f, 0x3531, + 0x6d50, 0x6d53, 0x475a, 0x4e58, 0x3d34, 0x6d54, 0x4d22, 0x6d56, + 0x6d55, 0x6d59, 0x4d41, 0x6d58, 0x336d, 0x6d57, 0x6d5c, 0x6d5b, + 0x6d5a, 0x4532, 0x6d5d, 0x6d5e, 0x6d5f, 0x396c, 0x3725, 0x6d60, + 0x6d61, 0x6d62, 0x3f49, 0x6d63, 0x3c2d, 0x6d64, 0x6d65, 0x5221, + 0x517e, 0x6d66, 0x6570, 0x6d67, 0x4324, 0x3f2b, 0x4740, 0x6d68, + 0x4a55, 0x4454, 0x397e, 0x4329, 0x312a, 0x4b78, 0x3f57, 0x375e, + 0x3661, 0x4a56, 0x6d69, 0x6d6b, 0x6d6a, 0x3260, 0x4676, 0x6d6c, + 0x4777, 0x4533, 0x6d6d, 0x3d52, 0x6d6f, 0x4c42, 0x6d7e, 0x6d71, + 0x6d72, 0x4449, 0x4260, 0x4177, 0x4628, 0x6d70, 0x3555, 0x6d79, + 0x6d76, 0x6e25, 0x4629, 0x4360, 0x6d73, 0x447e, 0x4553, 0x6d74, + 0x6d78, 0x3f60, 0x4767, 0x444c, 0x4042, 0x6d77, 0x422e, 0x4224, + 0x6d75, 0x3029, 0x4f22, 0x6d7a, 0x4261, 0x3d35, 0x3f4a, 0x6d7c, + 0x6d7b, 0x306f, 0x6d7d, 0x492f, 0x6e27, 0x465b, 0x3f6b, 0x4359, + 0x3678, 0x6e26, 0x4d37, 0x313f, 0x4a57, 0x3261, 0x6e21, 0x6e22, + 0x6e23, 0x6e24, 0x463b, 0x4323, 0x3063, 0x6e28, 0x6e29, 0x7423, + 0x423d, 0x6e2a, 0x3173, 0x414c, 0x382f, 0x4d5a, 0x6e2b, 0x452c, + 0x4178, 0x3c57, 0x6e2c, 0x6e2f, 0x3d65, 0x6e2d, 0x412b, 0x412a, + 0x3064, 0x4e4b, 0x6e31, 0x4872, 0x6e33, 0x6e32, 0x6e30, 0x6364, + 0x3454, 0x6d6e, 0x6e35, 0x6e34, 0x6e36, 0x4d38, 0x4661, 0x4b2e, + 0x6e37, 0x3c59, 0x6e38, 0x6e39, 0x6e3a, 0x4521, 0x306a, 0x3959, + 0x4f3a, 0x6e3e, 0x3734, 0x6e3b, 0x6e3c, 0x4974, 0x3354, 0x4d39, + 0x363f, 0x4554, 0x6e3f, 0x6e40, 0x6e41, 0x4522, 0x6e43, 0x6e42, + 0x4653, 0x6e44, 0x3d36, 0x3c60, 0x475b, 0x4371, 0x3c72, 0x3f6c, + 0x6e45, 0x6e46, 0x3f5d, 0x6e47, 0x6e48, 0x6e49, 0x4d6f, 0x3d37, + 0x6e4b, 0x6e4a, 0x395a, 0x3973, 0x3b40, 0x6e4e, 0x3d66, 0x6e4d, + 0x6e4c, 0x4269, 0x386f, 0x4043, 0x4830, 0x3d39, 0x6e4f, 0x3e5f, + 0x6e52, 0x6e50, 0x6e51, 0x6e54, 0x6e53, 0x3e7a, 0x6e55, 0x6e56, + 0x6e57, 0x4850, 0x3a53, 0x3c61, 0x6e58, 0x6e59, 0x4e24, 0x3d45, + 0x4c6e, 0x4e4c, 0x6e5a, 0x3662, 0x6e5b, 0x4523, 0x6e5e, 0x3378, + 0x3f4b, 0x6e5c, 0x6e5d, 0x4460, 0x4b55, 0x367c, 0x6e60, 0x6e61, + 0x6e5f, 0x6e63, 0x465f, 0x3343, 0x6e67, 0x6e64, 0x6e66, 0x6e62, + 0x6f4f, 0x6e65, 0x4e6b, 0x385a, 0x6e6f, 0x4534, 0x6e6a, 0x6e6d, + 0x6e6b, 0x6e70, 0x6e71, 0x6e69, 0x6e76, 0x3174, 0x6e68, 0x482d, + 0x6e6c, 0x3e60, 0x395b, 0x4b48, 0x3664, 0x3d46, 0x463c, 0x412d, + 0x6e74, 0x6e6e, 0x6e73, 0x4c43, 0x4438, 0x6e75, 0x6e72, 0x412c, + 0x6e79, 0x6e78, 0x6e77, 0x4b2f, 0x3d7b, 0x6e7a, 0x4a5f, 0x3154, + 0x4946, 0x4372, 0x3578, 0x6e7c, 0x395d, 0x3b2c, 0x6e7b, 0x3f6d, + 0x3f6e, 0x6f21, 0x6f23, 0x3e7b, 0x6f22, 0x6f24, 0x3653, 0x4945, + 0x3c62, 0x4f23, 0x6e7e, 0x3a78, 0x4f3f, 0x6f26, 0x6f25, 0x6f27, + 0x6e7d, 0x4669, 0x4555, 0x4457, 0x6f2c, 0x4343, 0x6f28, 0x6f29, + 0x372d, 0x6f2b, 0x3830, 0x6f2a, 0x3e61, 0x3379, 0x6f30, 0x3a3f, + 0x4179, 0x444a, 0x333b, 0x6f2e, 0x6f2f, 0x4443, 0x6f2d, 0x6f31, + 0x6f37, 0x6f3a, 0x6f39, 0x452d, 0x6f32, 0x6f33, 0x6f36, 0x6f38, + 0x3640, 0x6f3b, 0x6f35, 0x6f34, 0x6f3f, 0x6f40, 0x6f41, 0x6f3e, + 0x6f3d, 0x3e62, 0x462a, 0x6f3c, 0x6f45, 0x6f43, 0x6f44, 0x6f42, + 0x4278, 0x6f46, 0x6f47, 0x6f49, 0x3455, 0x6f48, 0x4c7a, 0x6f54, + 0x6f4a, 0x6f4d, 0x6f4b, 0x6f4c, 0x6f4e, 0x6f50, 0x6f51, 0x6f52, + 0x6f55, 0x6f53, 0x6f56, 0x6f58, 0x6f57, 0x4439, 0x4c67, 0x6f59, + 0x412e, 0x6f5a, 0x4a44, 0x6f5b, 0x332b, 0x313c, 0x3457, 0x3456, + 0x6f5c, 0x6f5d, 0x6f5e, 0x6f5f, 0x6f60, 0x3458, 0x3355, 0x395e, + 0x4836, 0x6f62, 0x6f61, 0x6f63, 0x315c, 0x6f66, 0x6f65, 0x6f64, + 0x6f67, 0x6f6a, 0x3047, 0x6f68, 0x6f6c, 0x6f6b, 0x6f6e, 0x6f6d, + 0x6f6f, 0x462e, 0x6f70, 0x6f71, 0x6f73, 0x6f72, 0x496c, 0x6f74, + 0x6f75, 0x3a65, 0x6f76, 0x6f77, 0x4b49, 0x414b, 0x3024, 0x424b, + 0x6f78, 0x496d, 0x6f7b, 0x6f79, 0x395f, 0x6f7a, 0x3842, 0x4a45, + 0x6f7d, 0x7021, 0x6f7e, 0x7022, 0x3121, 0x3f58, 0x3d7c, 0x3459, + 0x7023, 0x4766, 0x7025, 0x3122, 0x7024, 0x4444, 0x4e4d, 0x462b, + 0x6f7c, 0x4e26, 0x3831, 0x4d5b, 0x3679, 0x4e34, 0x3728, 0x4262, + 0x6721, 0x7026, 0x332c, 0x3f6f, 0x3356, 0x7028, 0x7029, 0x7027, + 0x3764, 0x3a5d, 0x3e63, 0x3123, 0x4e59, 0x702b, 0x6e2e, 0x702a, + 0x702e, 0x702c, 0x702d, 0x702f, 0x7030, 0x4e6c, 0x7031, 0x7032, + 0x4049, 0x483b, 0x3f7d, 0x3467, 0x4d3a, 0x326d, 0x3d38, 0x385b, + 0x7035, 0x7034, 0x3b73, 0x7036, 0x7033, 0x3b28, 0x703a, 0x6a2d, + 0x5256, 0x3f77, 0x7038, 0x4e25, 0x4671, 0x312b, 0x4063, 0x3c36, + 0x4a37, 0x3140, 0x4e6d, 0x4d6b, 0x703b, 0x4545, 0x3c7b, 0x703c, + 0x703d, 0x3f4c, 0x703e, 0x4e6e, 0x7039, 0x7040, 0x7042, 0x7041, + 0x703f, 0x7043, 0x7044, 0x417a, 0x3262, 0x7045, 0x4c38, 0x7046, + 0x7047, 0x4f2a, 0x5b31, 0x7048, 0x7049, 0x704a, 0x704e, 0x704b, + 0x704c, 0x704d, 0x704f, 0x4044, 0x4c77, 0x4045, 0x7050, 0x4873, + 0x7051, 0x7353, 0x4c4c, 0x7052, 0x7053, 0x7054, 0x3357, 0x7056, + 0x3f59, 0x7057, 0x3724, 0x7058, 0x705c, 0x705a, 0x705b, 0x3373, + 0x7059, 0x705d, 0x705e, 0x3048, 0x705f, 0x7060, 0x3e64, 0x7061, + 0x3547, 0x7064, 0x7063, 0x7062, 0x6b71, 0x4a5c, 0x7065, 0x7066, + 0x7067, 0x7068, 0x7069, 0x706a, 0x345a, 0x706b, 0x706c, 0x4723, + 0x706e, 0x323b, 0x7071, 0x7070, 0x3124, 0x3641, 0x4a47, 0x443a, + 0x3a22, 0x3960, 0x3d67, 0x3f5c, 0x7073, 0x7072, 0x4d42, 0x3468, + 0x4852, 0x465c, 0x3f7c, 0x4e4e, 0x375b, 0x7076, 0x7075, 0x4b4b, + 0x462c, 0x3150, 0x7077, 0x7074, 0x4951, 0x4d6a, 0x7078, 0x7079, + 0x707b, 0x426a, 0x335b, 0x335c, 0x707a, 0x3469, 0x3832, 0x346a, + 0x453f, 0x4e60, 0x385c, 0x707c, 0x707d, 0x707e, 0x7121, 0x7123, + 0x7122, 0x4977, 0x7124, 0x7125, 0x7126, 0x7127, 0x7129, 0x7128, + 0x712a, 0x4874, 0x664c, 0x3f29, 0x3532, 0x712b, 0x712c, 0x522c, + 0x5d3b, 0x4853, 0x307b, 0x303b, 0x3b74, 0x4b30, 0x3e7e, 0x712d, + 0x4c5f, 0x712e, 0x4d5c, 0x3142, 0x3b41, 0x712f, 0x326e, 0x7130, + 0x7131, 0x7133, 0x7134, 0x7136, 0x7132, 0x7135, 0x345b, 0x7137, + 0x7138, 0x7139, 0x713a, 0x713b, 0x713d, 0x713c, 0x713f, 0x7142, + 0x713e, 0x7140, 0x7141, 0x7143, 0x3642, 0x3c73, 0x7144, 0x7145, + 0x3961, 0x7146, 0x333e, 0x474f, 0x7147, 0x7148, 0x435a, 0x466b, + 0x7149, 0x477d, 0x424c, 0x3158, 0x366e, 0x366f, 0x4373, 0x714e, + 0x3670, 0x326f, 0x714d, 0x714b, 0x714c, 0x714a, 0x7158, 0x714f, + 0x7150, 0x7151, 0x7152, 0x7154, 0x7153, 0x3d59, 0x7155, 0x7157, + 0x3533, 0x7156, 0x417b, 0x3833, 0x7159, 0x424d, 0x715a, 0x462d, + 0x715b, 0x7160, 0x715e, 0x715d, 0x715f, 0x715c, 0x7162, 0x7161, + 0x7164, 0x3643, 0x7163, 0x7165, 0x7166, 0x7168, 0x7167, 0x7169, + 0x716b, 0x716a, 0x397c, 0x716c, 0x716d, 0x333c, 0x716e, 0x716f, + 0x3f71, 0x7170, 0x7171, 0x7172, 0x7173, 0x3962, 0x7174, 0x7175, + 0x7176, 0x7177, 0x7178, 0x4831, 0x717a, 0x4926, 0x717b, 0x7179, + 0x717d, 0x717c, 0x717e, 0x7221, 0x7222, 0x7223, 0x7224, 0x7225, + 0x7226, 0x7227, 0x7228, 0x7229, 0x722a, 0x722b, 0x722c, 0x722d, + 0x722e, 0x5d35, 0x722f, 0x6478, 0x3534, 0x3321, 0x3a32, 0x7231, + 0x7230, 0x4c25, 0x7233, 0x7234, 0x7232, 0x7235, 0x4b62, 0x7236, + 0x357b, 0x4f25, 0x7237, 0x7239, 0x303e, 0x723a, 0x4a2b, 0x7238, + 0x723b, 0x723c, 0x723d, 0x723e, 0x723f, 0x4b6e, 0x3b2d, 0x3a7a, + 0x412f, 0x7240, 0x7243, 0x7241, 0x7244, 0x3871, 0x7242, 0x7245, + 0x7246, 0x7247, 0x724b, 0x3b2a, 0x4264, 0x724c, 0x7249, 0x7248, + 0x724a, 0x375f, 0x7250, 0x724f, 0x724e, 0x3033, 0x725a, 0x7256, + 0x7257, 0x7253, 0x7259, 0x7255, 0x3362, 0x4f4c, 0x7258, 0x7254, + 0x7252, 0x7251, 0x725c, 0x725f, 0x725e, 0x725d, 0x4949, 0x725b, + 0x3073, 0x7260, 0x7262, 0x336f, 0x724d, 0x3137, 0x7264, 0x7263, + 0x7261, 0x432d, 0x4b70, 0x4e5a, 0x7265, 0x7266, 0x7267, 0x7268, + 0x7269, 0x443b, 0x726a, 0x4837, 0x726f, 0x726b, 0x726c, 0x4b31, + 0x4c44, 0x4650, 0x7270, 0x7271, 0x463e, 0x726e, 0x726d, 0x322a, + 0x7279, 0x7278, 0x3175, 0x7276, 0x7275, 0x7273, 0x337b, 0x7272, + 0x3c32, 0x3229, 0x3963, 0x727c, 0x727b, 0x727a, 0x7277, 0x727d, + 0x727e, 0x7325, 0x7324, 0x7326, 0x312d, 0x7321, 0x7322, 0x3974, + 0x4c39, 0x7323, 0x4b32, 0x732b, 0x7327, 0x732c, 0x7329, 0x7328, + 0x375c, 0x732d, 0x732e, 0x732f, 0x732a, 0x7274, 0x7330, 0x4461, + 0x7334, 0x7335, 0x7333, 0x7332, 0x7338, 0x7331, 0x7336, 0x7337, + 0x733a, 0x7339, 0x733c, 0x733d, 0x733e, 0x4f49, 0x733b, 0x426b, + 0x3a6d, 0x733f, 0x7340, 0x7341, 0x7342, 0x7343, 0x3834, 0x7344, + 0x7345, 0x3c2f, 0x7346, 0x7347, 0x7348, 0x7349, 0x734c, 0x734a, + 0x4f3c, 0x734b, 0x4e6f, 0x734d, 0x4e5b, 0x734e, 0x477e, 0x734f, + 0x7351, 0x7352, 0x7350, 0x396d, 0x4c4d, 0x4b63, 0x5677, 0x5d60, + 0x4b7b, 0x322b, 0x7354, 0x3550, 0x7355, 0x7356, 0x7357, 0x3975, + 0x7358, 0x6054, 0x4c5b, 0x4263, 0x7359, 0x735b, 0x735a, 0x735c, + 0x735d, 0x735e, 0x735f, 0x7360, 0x7361, 0x7362, 0x7363, 0x7364, + 0x7365, 0x7366, 0x7367, 0x7368, 0x4524, 0x385d, 0x736a, 0x414d, + 0x736b, 0x736c, 0x4921, 0x736d, 0x736e, 0x6337, 0x6c5a, 0x706d, + 0x736f, 0x7370, 0x7372, 0x7373, 0x7374, 0x4e70, 0x7371, 0x7375, + 0x7376, 0x7378, 0x7377, 0x737a, 0x737b, 0x7379, 0x4e36, 0x737c, + 0x737d, 0x6354, 0x737e, 0x212a, 0x2174, 0x2170, 0x2173, 0x2175, + 0x214a, 0x214b, 0x2176, 0x215c, 0x2124, 0x2125, 0x213f, 0x2330, + 0x2331, 0x2332, 0x2333, 0x2334, 0x2335, 0x2336, 0x2337, 0x2338, + 0x2339, 0x2127, 0x2128, 0x2163, 0x2161, 0x2164, 0x2129, 0x2177, + 0x2341, 0x2342, 0x2343, 0x2344, 0x2345, 0x2346, 0x2347, 0x2348, + 0x2349, 0x234a, 0x234b, 0x234c, 0x234d, 0x234e, 0x234f, 0x2350, + 0x2351, 0x2352, 0x2353, 0x2354, 0x2355, 0x2356, 0x2357, 0x2358, + 0x2359, 0x235a, 0x214e, 0x2140, 0x214f, 0x2130, 0x2132, 0x212e, + 0x2361, 0x2362, 0x2363, 0x2364, 0x2365, 0x2366, 0x2367, 0x2368, + 0x2369, 0x236a, 0x236b, 0x236c, 0x236d, 0x236e, 0x236f, 0x2370, + 0x2371, 0x2372, 0x2373, 0x2374, 0x2375, 0x2376, 0x2377, 0x2378, + 0x2379, 0x237a, 0x2150, 0x2143, 0x2151, 0x2131, 0x216f, +}; + +static const Summary16 jisx0208_uni2indx_page00[16] = { + /* 0x0000 */ + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x118c }, { 5, 0x0053 }, + { 9, 0x0000 }, { 9, 0x0080 }, { 10, 0x0000 }, { 10, 0x0080 }, +}; +static const Summary16 jisx0208_uni2indx_page03[22] = { + /* 0x0300 */ + { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, + { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, + { 11, 0x0000 }, { 11, 0xfffe }, { 26, 0x03fb }, { 35, 0xfffe }, + { 50, 0x03fb }, { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0000 }, + /* 0x0400 */ + { 59, 0x0002 }, { 60, 0xffff }, { 76, 0xffff }, { 92, 0xffff }, + { 108, 0xffff }, { 124, 0x0002 }, +}; +static const Summary16 jisx0208_uni2indx_page20[50] = { + /* 0x2000 */ + { 125, 0x0000 }, { 125, 0x3361 }, { 132, 0x0063 }, { 136, 0x080d }, + { 140, 0x0000 }, { 140, 0x0000 }, { 140, 0x0000 }, { 140, 0x0000 }, + { 140, 0x0000 }, { 140, 0x0000 }, { 140, 0x0000 }, { 140, 0x0000 }, + { 140, 0x0000 }, { 140, 0x0000 }, { 140, 0x0000 }, { 140, 0x0000 }, + /* 0x2100 */ + { 140, 0x0008 }, { 141, 0x0000 }, { 141, 0x0800 }, { 142, 0x0000 }, + { 142, 0x0000 }, { 142, 0x0000 }, { 142, 0x0000 }, { 142, 0x0000 }, + { 142, 0x0000 }, { 142, 0x000f }, { 146, 0x0000 }, { 146, 0x0000 }, + { 146, 0x0000 }, { 146, 0x0014 }, { 148, 0x0000 }, { 148, 0x0000 }, + /* 0x2200 */ + { 148, 0x098d }, { 154, 0x6404 }, { 158, 0x1f81 }, { 165, 0x2030 }, + { 168, 0x0000 }, { 168, 0x0004 }, { 169, 0x0cc3 }, { 175, 0x0000 }, + { 175, 0x00cc }, { 179, 0x0000 }, { 179, 0x0020 }, { 180, 0x0000 }, + { 180, 0x0000 }, { 180, 0x0000 }, { 180, 0x0000 }, { 180, 0x0000 }, + /* 0x2300 */ + { 180, 0x0000 }, { 180, 0x0004 }, +}; +static const Summary16 jisx0208_uni2indx_page25[23] = { + /* 0x2500 */ + { 181, 0x900f }, { 187, 0x3999 }, { 195, 0x9939 }, { 203, 0x9999 }, + { 211, 0x0804 }, { 213, 0x0000 }, { 213, 0x0000 }, { 213, 0x0000 }, + { 213, 0x0000 }, { 213, 0x0000 }, { 213, 0x0003 }, { 215, 0x300c }, + { 219, 0xc8c0 }, { 224, 0x0000 }, { 224, 0x8000 }, { 225, 0x0000 }, + /* 0x2600 */ + { 225, 0x0060 }, { 227, 0x0000 }, { 227, 0x0000 }, { 227, 0x0000 }, + { 227, 0x0005 }, { 229, 0x0000 }, { 229, 0xa400 }, +}; +static const Summary16 jisx0208_uni2indx_page30[16] = { + /* 0x3000 */ + { 232, 0xffef }, { 247, 0x103f }, { 254, 0x0000 }, { 254, 0x0000 }, + { 254, 0xfffe }, { 269, 0xffff }, { 285, 0xffff }, { 301, 0xffff }, + { 317, 0xffff }, { 333, 0x780f }, { 341, 0xfffe }, { 356, 0xffff }, + { 372, 0xffff }, { 388, 0xffff }, { 404, 0xffff }, { 420, 0x787f }, +}; +static const Summary16 jisx0208_uni2indx_page4e[1307] = { + /* 0x4e00 */ + { 431, 0x6f8b }, { 441, 0x43f3 }, { 450, 0x2442 }, { 454, 0x9b46 }, + { 462, 0xe82c }, { 469, 0xe3e0 }, { 477, 0x0004 }, { 478, 0x400a }, + { 481, 0x5f65 }, { 491, 0xdb36 }, { 501, 0x7977 }, { 512, 0x0449 }, + { 516, 0xecd7 }, { 527, 0xe3f0 }, { 536, 0x6038 }, { 541, 0x08c5 }, + /* 0x4f00 */ + { 546, 0xe602 }, { 552, 0x3403 }, { 557, 0x8000 }, { 558, 0x3551 }, + { 565, 0xe0c8 }, { 571, 0x7eab }, { 582, 0x8200 }, { 584, 0x9869 }, + { 591, 0xa948 }, { 597, 0x2942 }, { 602, 0xe803 }, { 608, 0x8060 }, + { 611, 0x441c }, { 616, 0xad93 }, { 625, 0xc03a }, { 631, 0x4568 }, + /* 0x5000 */ + { 637, 0xaa60 }, { 643, 0x8656 }, { 650, 0x3f7a }, { 661, 0x0240 }, + { 663, 0x8388 }, { 668, 0x1461 }, { 673, 0x1020 }, { 675, 0x2174 }, + { 681, 0x2021 }, { 684, 0x0702 }, { 688, 0x3000 }, { 690, 0x40bc }, + { 696, 0xa624 }, { 702, 0x4462 }, { 707, 0x60a8 }, { 712, 0x0a20 }, + /* 0x5100 */ + { 715, 0x0217 }, { 720, 0x8574 }, { 727, 0x0402 }, { 729, 0x9c84 }, + { 735, 0x7bfb }, { 748, 0x1415 }, { 753, 0x7f24 }, { 762, 0x11e2 }, + { 768, 0xb665 }, { 777, 0x02ef }, { 785, 0x1f75 }, { 795, 0x20ff }, + { 804, 0x3a70 }, { 811, 0x3840 }, { 815, 0x26c3 }, { 822, 0x6763 }, + /* 0x5200 */ + { 831, 0x4dd9 }, { 840, 0x2092 }, { 844, 0x46b0 }, { 850, 0x0fc9 }, + { 858, 0xbc98 }, { 866, 0x4850 }, { 870, 0x8638 }, { 876, 0xa03f }, + { 884, 0x2388 }, { 889, 0x8816 }, { 894, 0x3e09 }, { 901, 0x5232 }, + { 907, 0x22aa }, { 913, 0xe3a4 }, { 921, 0x00dd }, { 927, 0xc72c }, + /* 0x5300 */ + { 935, 0xa166 }, { 942, 0x26e1 }, { 949, 0x840b }, { 954, 0x8f0a }, + { 961, 0x27eb }, { 971, 0x559e }, { 980, 0xc241 }, { 985, 0x89bb }, + { 994, 0x0014 }, { 996, 0x8540 }, { 1000, 0x6361 }, { 1007, 0x0849 }, + { 1011, 0x7f0c }, { 1020, 0x8ad0 }, { 1026, 0xff3e }, { 1039, 0x05cf }, + /* 0x5400 */ + { 1047, 0xff1a }, { 1058, 0xa803 }, { 1063, 0x7a41 }, { 1070, 0x7b40 }, + { 1077, 0x4745 }, { 1084, 0x8002 }, { 1086, 0x0500 }, { 1088, 0x38eb }, + { 1097, 0xd851 }, { 1104, 0x0005 }, { 1106, 0x9934 }, { 1113, 0x710c }, + { 1119, 0x0397 }, { 1126, 0x0100 }, { 1127, 0x6366 }, { 1135, 0x2404 }, + /* 0x5500 */ + { 1138, 0x80d0 }, { 1142, 0x0051 }, { 1145, 0xc000 }, { 1147, 0x430a }, + { 1152, 0x9071 }, { 1158, 0x30c8 }, { 1163, 0x0008 }, { 1164, 0x5800 }, + { 1167, 0x0e99 }, { 1174, 0xf700 }, { 1181, 0x5f80 }, { 1188, 0x0041 }, + { 1190, 0x00b0 }, { 1193, 0x9410 }, { 1197, 0x0018 }, { 1199, 0x6280 }, + /* 0x5600 */ + { 1203, 0x0240 }, { 1205, 0x09d0 }, { 1210, 0x8200 }, { 1212, 0x0156 }, + { 1217, 0x5004 }, { 1220, 0x0801 }, { 1222, 0x1d10 }, { 1227, 0x0510 }, + { 1230, 0x84c1 }, { 1235, 0x0010 }, { 1236, 0x4025 }, { 1240, 0x1050 }, + { 1243, 0x410f }, { 1249, 0x4d8a }, { 1256, 0x4009 }, { 1259, 0xa60d }, + /* 0x5700 */ + { 1266, 0xab19 }, { 1274, 0x914c }, { 1280, 0x21c0 }, { 1284, 0x0981 }, + { 1288, 0xc485 }, { 1294, 0x0003 }, { 1296, 0x0652 }, { 1301, 0x8000 }, + { 1302, 0x0b04 }, { 1306, 0x0008 }, { 1307, 0x041d }, { 1312, 0x0009 }, + { 1314, 0x4849 }, { 1319, 0x905c }, { 1325, 0x0009 }, { 1327, 0x1690 }, + /* 0x5800 */ + { 1332, 0x0c65 }, { 1338, 0x2220 }, { 1341, 0x8412 }, { 1345, 0x2433 }, + { 1351, 0x0c03 }, { 1355, 0x4796 }, { 1363, 0x0a04 }, { 1366, 0x4225 }, + { 1371, 0x0028 }, { 1373, 0x9088 }, { 1377, 0x4900 }, { 1380, 0x4f08 }, + { 1386, 0x14a2 }, { 1391, 0xd3aa }, { 1400, 0xd830 }, { 1406, 0x3e87 }, + /* 0x5900 */ + { 1415, 0x8604 }, { 1419, 0x1f61 }, { 1427, 0x7ea4 }, { 1436, 0x4186 }, + { 1441, 0xc390 }, { 1447, 0x05b3 }, { 1454, 0x57a5 }, { 1463, 0x2118 }, + { 1467, 0x241e }, { 1473, 0x2a48 }, { 1478, 0x1128 }, { 1482, 0x4a04 }, + { 1486, 0x0a40 }, { 1489, 0x161b }, { 1496, 0x0d60 }, { 1501, 0x8840 }, + /* 0x5a00 */ + { 1504, 0x020a }, { 1507, 0x9502 }, { 1512, 0x8221 }, { 1516, 0x1060 }, + { 1519, 0x0243 }, { 1523, 0x0400 }, { 1524, 0x1444 }, { 1528, 0x8000 }, + { 1529, 0x0000 }, { 1529, 0x0c04 }, { 1532, 0x0000 }, { 1532, 0x7000 }, + { 1535, 0x1a06 }, { 1540, 0x00c1 }, { 1543, 0x024a }, { 1547, 0x0c00 }, + /* 0x5b00 */ + { 1549, 0x1a00 }, { 1552, 0x0040 }, { 1553, 0x1404 }, { 1556, 0x4045 }, + { 1560, 0x0029 }, { 1563, 0xbdb3 }, { 1574, 0x0a78 }, { 1580, 0x052b }, + { 1586, 0xbba9 }, { 1596, 0xbfa0 }, { 1605, 0x407c }, { 1611, 0x8379 }, + { 1619, 0x12fc }, { 1627, 0xe81d }, { 1635, 0x4bf6 }, { 1645, 0xc569 }, + /* 0x5c00 */ + { 1653, 0xeff6 }, { 1666, 0x044a }, { 1670, 0x2115 }, { 1675, 0xff02 }, + { 1684, 0xed63 }, { 1694, 0x402b }, { 1699, 0xd033 }, { 1706, 0x0242 }, + { 1709, 0x1000 }, { 1710, 0x0013 }, { 1713, 0x1b02 }, { 1718, 0x59ca }, + { 1726, 0x00a0 }, { 1728, 0x0200 }, { 1729, 0xa703 }, { 1736, 0x2c41 }, + /* 0x5d00 */ + { 1741, 0x4880 }, { 1744, 0x8ff2 }, { 1754, 0x0204 }, { 1756, 0x0000 }, + { 1756, 0x5800 }, { 1759, 0x1005 }, { 1762, 0x9200 }, { 1765, 0x0048 }, + { 1767, 0x1894 }, { 1772, 0x2001 }, { 1774, 0x5004 }, { 1777, 0x3480 }, + { 1781, 0x3200 }, { 1784, 0x684c }, { 1790, 0x49ea }, { 1798, 0x68be }, + /* 0x5e00 */ + { 1807, 0x184c }, { 1812, 0x2e42 }, { 1818, 0xa820 }, { 1822, 0x21c9 }, + { 1828, 0x50b9 }, { 1835, 0x80b0 }, { 1839, 0x001e }, { 1843, 0xff7c }, + { 1856, 0x849a }, { 1862, 0x14e0 }, { 1867, 0x28c1 }, { 1872, 0x01e0 }, + { 1876, 0x870e }, { 1883, 0xac49 }, { 1890, 0x130f }, { 1897, 0xdddb }, + /* 0x5f00 */ + { 1909, 0xbe1a }, { 1918, 0x89fb }, { 1928, 0xa2e0 }, { 1934, 0x51a2 }, + { 1940, 0x5502 }, { 1945, 0x32ca }, { 1952, 0x3e46 }, { 1960, 0x928b }, + { 1967, 0x1dbf }, { 1978, 0x438f }, { 1986, 0x6703 }, { 1993, 0x3218 }, + { 1998, 0x3028 }, { 2002, 0x33c0 }, { 2008, 0x0811 }, { 2011, 0xa923 }, + /* 0x6000 */ + { 2018, 0xc000 }, { 2020, 0x3a65 }, { 2028, 0x8fe3 }, { 2038, 0x0402 }, + { 2040, 0x2c4e }, { 2047, 0x8625 }, { 2053, 0xbf3d }, { 2065, 0x00a1 }, + { 2068, 0x3a1a }, { 2075, 0x8cd4 }, { 2082, 0x06c9 }, { 2088, 0x317c }, + { 2096, 0x00e0 }, { 2099, 0x950a }, { 2105, 0x018b }, { 2110, 0x0edb }, + /* 0x6100 */ + { 2119, 0xe34b }, { 2128, 0x8c20 }, { 2132, 0x1182 }, { 2136, 0xf010 }, + { 2141, 0x7d94 }, { 2150, 0xa728 }, { 2157, 0xc9ac }, { 2165, 0x40fb }, + { 2173, 0x4484 }, { 2177, 0x0653 }, { 2183, 0x5a90 }, { 2189, 0x4444 }, + { 2193, 0x3fc8 }, { 2202, 0x0001 }, { 2203, 0x0048 }, { 2205, 0xf5d4 }, + /* 0x6200 */ + { 2215, 0x7701 }, { 2222, 0xec57 }, { 2232, 0xc442 }, { 2237, 0x891d }, + { 2244, 0x6b83 }, { 2252, 0x4928 }, { 2257, 0x4109 }, { 2261, 0xd242 }, + { 2267, 0x061d }, { 2273, 0x59fe }, { 2284, 0x1800 }, { 2286, 0x3a22 }, + { 2292, 0xb7e4 }, { 2302, 0x3b9f }, { 2313, 0xf003 }, { 2319, 0xc0ea }, + /* 0x6300 */ + { 2326, 0x1386 }, { 2332, 0x8202 }, { 2335, 0x8980 }, { 2339, 0xe400 }, + { 2343, 0xb200 }, { 2347, 0x10a1 }, { 2351, 0x4b80 }, { 2356, 0x0cc4 }, + { 2361, 0xd309 }, { 2368, 0x8944 }, { 2373, 0x1faf }, { 2384, 0x4834 }, + { 2389, 0x8259 }, { 2395, 0x0c45 }, { 2400, 0x420a }, { 2404, 0x0450 }, + /* 0x6400 */ + { 2407, 0xa040 }, { 2410, 0x10c8 }, { 2414, 0x3140 }, { 2418, 0x4450 }, + { 2422, 0x4004 }, { 2424, 0x0100 }, { 2425, 0x8280 }, { 2428, 0x0540 }, + { 2431, 0x0108 }, { 2433, 0x442c }, { 2438, 0x6a30 }, { 2444, 0x1a05 }, + { 2449, 0x20a6 }, { 2454, 0x0514 }, { 2458, 0x90cf }, { 2466, 0x6456 }, + /* 0x6500 */ + { 2473, 0x0021 }, { 2475, 0x3100 }, { 2478, 0x9c18 }, { 2484, 0xcbf0 }, + { 2493, 0xa120 }, { 2497, 0x63e2 }, { 2505, 0x104c }, { 2509, 0x01b5 }, + { 2515, 0x538c }, { 2522, 0x9a83 }, { 2529, 0xb8b2 }, { 2537, 0x3281 }, + { 2542, 0x987a }, { 2550, 0x0a84 }, { 2554, 0x33e7 }, { 2564, 0x0c02 }, + /* 0x6600 */ + { 2567, 0xd4cc }, { 2575, 0x9018 }, { 2579, 0xa1a1 }, { 2585, 0x9070 }, + { 2590, 0x8a1e }, { 2597, 0xe004 }, { 2601, 0xc3d4 }, { 2609, 0x0451 }, + { 2613, 0x439a }, { 2620, 0x21c2 }, { 2625, 0x4844 }, { 2629, 0x5310 }, + { 2634, 0x0292 }, { 2638, 0x3640 }, { 2643, 0x0241 }, { 2646, 0xf3bd }, + /* 0x6700 */ + { 2658, 0xab09 }, { 2665, 0xe8f0 }, { 2673, 0x7dc0 }, { 2681, 0xa5d2 }, + { 2689, 0xc242 }, { 2694, 0xd24b }, { 2702, 0xa43f }, { 2711, 0xd0af }, + { 2720, 0x1aa0 }, { 2725, 0x34a1 }, { 2731, 0x8247 }, { 2737, 0x03d8 }, + { 2743, 0xc452 }, { 2749, 0x651b }, { 2757, 0xd294 }, { 2764, 0xc83a }, + /* 0x6800 */ + { 2771, 0x001c }, { 2774, 0x40c8 }, { 2778, 0x0e06 }, { 2783, 0x3314 }, + { 2789, 0x614f }, { 2797, 0xb21b }, { 2805, 0x0088 }, { 2807, 0xc0d0 }, + { 2812, 0xa02a }, { 2817, 0xa898 }, { 2823, 0xa1c5 }, { 2830, 0x166b }, + { 2838, 0x2e50 }, { 2844, 0x85b4 }, { 2851, 0xc08b }, { 2857, 0x0604 }, + /* 0x6900 */ + { 2860, 0xf933 }, { 2870, 0x1e04 }, { 2875, 0x056e }, { 2882, 0xa251 }, + { 2888, 0x0400 }, { 2889, 0x7638 }, { 2897, 0xec07 }, { 2905, 0x73b8 }, + { 2914, 0x4406 }, { 2918, 0x1832 }, { 2923, 0x4081 }, { 2926, 0xc816 }, + { 2932, 0x7c8a }, { 2940, 0x6309 }, { 2946, 0x2980 }, { 2950, 0xaa04 }, + /* 0x6a00 */ + { 2955, 0x1c24 }, { 2960, 0xca9c }, { 2968, 0x4e0e }, { 2975, 0x2760 }, + { 2981, 0x0990 }, { 2985, 0x8300 }, { 2988, 0x0046 }, { 2991, 0x8104 }, + { 2994, 0x6011 }, { 2998, 0x1081 }, { 3001, 0x540d }, { 3007, 0x0908 }, + { 3010, 0x000e }, { 3013, 0xcc0a }, { 3019, 0x0500 }, { 3021, 0x0c00 }, + /* 0x6b00 */ + { 3023, 0x0430 }, { 3026, 0xa044 }, { 3030, 0x008b }, { 3034, 0x6784 }, + { 3041, 0x5288 }, { 3046, 0x8a19 }, { 3052, 0x865e }, { 3060, 0x8b18 }, + { 3066, 0x2e59 }, { 3074, 0x4160 }, { 3078, 0x8c10 }, { 3082, 0x9cbe }, + { 3092, 0x6861 }, { 3098, 0x891c }, { 3104, 0x9800 }, { 3107, 0x0008 }, + /* 0x6c00 */ + { 3108, 0x8100 }, { 3110, 0x089a }, { 3115, 0x0018 }, { 3117, 0x4190 }, + { 3121, 0x4007 }, { 3125, 0xe4a1 }, { 3132, 0x0505 }, { 3136, 0x640d }, + { 3142, 0x310e }, { 3148, 0x0e4d }, { 3155, 0x4806 }, { 3159, 0xff0a }, + { 3169, 0x1632 }, { 3175, 0x2aa8 }, { 3181, 0x852e }, { 3188, 0x000b }, + /* 0x6d00 */ + { 3191, 0x1800 }, { 3193, 0xca84 }, { 3199, 0x0e20 }, { 3203, 0x696c }, + { 3211, 0x0032 }, { 3214, 0x1600 }, { 3217, 0x5658 }, { 3224, 0x0390 }, + { 3228, 0x5120 }, { 3232, 0x1a28 }, { 3237, 0x8000 }, { 3238, 0x1124 }, + { 3242, 0x18e1 }, { 3248, 0x4326 }, { 3254, 0x5d52 }, { 3262, 0x0eaa }, + /* 0x6e00 */ + { 3269, 0x0fa0 }, { 3275, 0xae28 }, { 3282, 0xfa7b }, { 3294, 0x4500 }, + { 3297, 0x6408 }, { 3301, 0x8940 }, { 3305, 0xc880 }, { 3309, 0xc044 }, + { 3313, 0x9005 }, { 3317, 0xb141 }, { 3323, 0x8424 }, { 3327, 0x24c4 }, + { 3332, 0x1a34 }, { 3338, 0x603a }, { 3344, 0x9000 }, { 3346, 0xc194 }, + /* 0x6f00 */ + { 3352, 0x8246 }, { 3357, 0x003a }, { 3361, 0x180d }, { 3366, 0xc106 }, + { 3371, 0x0022 }, { 3373, 0x9910 }, { 3378, 0xe050 }, { 3383, 0x1511 }, + { 3388, 0x4057 }, { 3394, 0x0082 }, { 3396, 0x041a }, { 3400, 0x020a }, + { 3403, 0x004f }, { 3408, 0x8930 }, { 3413, 0xd813 }, { 3420, 0x444a }, + /* 0x7000 */ + { 3425, 0x8a02 }, { 3429, 0xed22 }, { 3437, 0x10c0 }, { 3440, 0x4005 }, + { 3443, 0x1000 }, { 3444, 0x0102 }, { 3446, 0x8808 }, { 3449, 0x3101 }, + { 3453, 0x4600 }, { 3456, 0x0204 }, { 3458, 0xf000 }, { 3462, 0x0708 }, + { 3466, 0x8900 }, { 3469, 0xa200 }, { 3472, 0x0000 }, { 3472, 0x2202 }, + /* 0x7100 */ + { 3475, 0x0200 }, { 3476, 0x1610 }, { 3480, 0x0042 }, { 3482, 0x1040 }, + { 3484, 0x5200 }, { 3487, 0x0260 }, { 3490, 0x52f4 }, { 3498, 0x2000 }, + { 3499, 0x8510 }, { 3503, 0x8230 }, { 3507, 0x1100 }, { 3509, 0x4202 }, + { 3512, 0x4308 }, { 3516, 0x80b5 }, { 3522, 0x70e1 }, { 3529, 0x9a20 }, + /* 0x7200 */ + { 3534, 0x2040 }, { 3536, 0x0801 }, { 3538, 0x3500 }, { 3542, 0xfc65 }, + { 3552, 0x19c1 }, { 3558, 0xab04 }, { 3564, 0x0286 }, { 3568, 0x6214 }, + { 3573, 0x0087 }, { 3577, 0x0044 }, { 3579, 0x9085 }, { 3584, 0x0244 }, + { 3587, 0x405c }, { 3592, 0x0a85 }, { 3597, 0x3207 }, { 3603, 0x3380 }, + /* 0x7300 */ + { 3608, 0x0400 }, { 3609, 0xb8c0 }, { 3615, 0xce20 }, { 3621, 0xc0d0 }, + { 3626, 0xc030 }, { 3630, 0x0080 }, { 3631, 0x0508 }, { 3634, 0x0d25 }, + { 3640, 0x0a90 }, { 3644, 0x0040 }, { 3645, 0x0200 }, { 3646, 0x080c }, + { 3649, 0x6505 }, { 3655, 0x4000 }, { 3656, 0x6421 }, { 3661, 0x4102 }, + /* 0x7400 */ + { 3664, 0x0268 }, { 3668, 0x0000 }, { 3668, 0x0024 }, { 3670, 0x847c }, + { 3677, 0x0002 }, { 3678, 0xde20 }, { 3685, 0x8619 }, { 3691, 0x4049 }, + { 3695, 0x0808 }, { 3697, 0x4000 }, { 3698, 0x0084 }, { 3700, 0x2001 }, + { 3702, 0x8400 }, { 3704, 0x1010 }, { 3706, 0x42cd }, { 3713, 0x01c7 }, + /* 0x7500 */ + { 3719, 0x7038 }, { 3725, 0xd52a }, { 3733, 0x1968 }, { 3739, 0x1d8f }, + { 3748, 0xbe50 }, { 3756, 0x3e12 }, { 3763, 0x2ef5 }, { 3773, 0x81d9 }, + { 3780, 0xcec4 }, { 3788, 0x2412 }, { 3792, 0x0828 }, { 3795, 0x732e }, + { 3804, 0x24ac }, { 3810, 0x4b34 }, { 3817, 0x020c }, { 3820, 0xd41d }, + /* 0x7600 */ + { 3828, 0x2a02 }, { 3832, 0x8000 }, { 3833, 0x0097 }, { 3838, 0x0811 }, + { 3841, 0x11c4 }, { 3846, 0x1144 }, { 3850, 0x1786 }, { 3857, 0x7d45 }, + { 3866, 0x49d9 }, { 3874, 0x0649 }, { 3879, 0x4000 }, { 3880, 0x8791 }, + { 3887, 0x254c }, { 3893, 0xd8c4 }, { 3900, 0x44ba }, { 3907, 0x4914 }, + /* 0x7700 */ + { 3912, 0x1b92 }, { 3919, 0xc800 }, { 3922, 0x0271 }, { 3927, 0x1580 }, + { 3931, 0x0081 }, { 3933, 0x0c00 }, { 3935, 0x096a }, { 3941, 0xc200 }, + { 3944, 0x4800 }, { 3946, 0x4002 }, { 3948, 0x3021 }, { 3952, 0xba49 }, + { 3960, 0x2080 }, { 3962, 0x1c80 }, { 3966, 0xe2ac }, { 3974, 0x1008 }, + /* 0x7800 */ + { 3976, 0x1004 }, { 3978, 0x0034 }, { 3981, 0x00e1 }, { 3985, 0x8414 }, + { 3989, 0x0020 }, { 3990, 0x2000 }, { 3991, 0x9800 }, { 3994, 0x1014 }, + { 3997, 0x70c2 }, { 4003, 0x04aa }, { 4008, 0x8688 }, { 4013, 0x5420 }, + { 4017, 0x0c62 }, { 4022, 0x0413 }, { 4026, 0x9180 }, { 4030, 0x2010 }, + /* 0x7900 */ + { 4032, 0x4082 }, { 4035, 0x0206 }, { 4038, 0x1c40 }, { 4042, 0x5400 }, + { 4045, 0x0383 }, { 4050, 0xe4e9 }, { 4059, 0x2125 }, { 4064, 0x8480 }, + { 4067, 0xe433 }, { 4075, 0x2000 }, { 4076, 0x44c0 }, { 4080, 0xe609 }, + { 4087, 0x0a03 }, { 4091, 0x8126 }, { 4096, 0x12da }, { 4103, 0x0801 }, + /* 0x7a00 */ + { 4105, 0x6901 }, { 4110, 0x9790 }, { 4117, 0x4001 }, { 4119, 0xf886 }, + { 4127, 0xe24d }, { 4135, 0x0081 }, { 4137, 0x0a0e }, { 4142, 0xa651 }, + { 4149, 0x011a }, { 4153, 0x81ec }, { 4160, 0xc600 }, { 4164, 0x8441 }, + { 4168, 0xadb8 }, { 4177, 0xb62c }, { 4185, 0xa46f }, { 4194, 0x8741 }, + /* 0x7b00 */ + { 4200, 0x8d54 }, { 4207, 0x4b02 }, { 4212, 0x1161 }, { 4217, 0x0268 }, + { 4221, 0xbb60 }, { 4229, 0x2057 }, { 4235, 0x50a0 }, { 4239, 0x0433 }, + { 4244, 0xa8c0 }, { 4249, 0xb7b4 }, { 4259, 0x2402 }, { 4262, 0x0112 }, + { 4265, 0x9ad3 }, { 4274, 0x2000 }, { 4275, 0x2271 }, { 4281, 0x00c8 }, + /* 0x7c00 */ + { 4284, 0x2081 }, { 4287, 0x809e }, { 4293, 0x0c8a }, { 4298, 0xe180 }, + { 4303, 0xb009 }, { 4308, 0x8151 }, { 4313, 0x1031 }, { 4317, 0x4028 }, + { 4320, 0x2a0e }, { 4326, 0x89a5 }, { 4333, 0x69b6 }, { 4342, 0x620e }, + { 4348, 0x4425 }, { 4353, 0xd144 }, { 4359, 0x8085 }, { 4363, 0x4d54 }, + /* 0x7d00 */ + { 4370, 0x2c75 }, { 4378, 0x1fb1 }, { 4387, 0xd807 }, { 4394, 0x862d }, + { 4401, 0xd87c }, { 4410, 0x4841 }, { 4414, 0x414e }, { 4420, 0x226e }, + { 4427, 0x8200 }, { 4429, 0x9e08 }, { 4435, 0xf80c }, { 4442, 0xed37 }, + { 4453, 0x8c80 }, { 4457, 0x7526 }, { 4465, 0x9313 }, { 4472, 0x0814 }, + /* 0x7e00 */ + { 4475, 0x0e32 }, { 4481, 0xc804 }, { 4485, 0x484e }, { 4491, 0x6ea6 }, + { 4500, 0x2c4a }, { 4506, 0x6670 }, { 4513, 0x26c0 }, { 4518, 0xba01 }, + { 4524, 0xd30c }, { 4531, 0x185d }, { 4538, 0x0000 }, { 4538, 0x0000 }, + { 4538, 0x0000 }, { 4538, 0x0000 }, { 4538, 0x0000 }, { 4538, 0x0000 }, + /* 0x7f00 */ + { 4538, 0x0000 }, { 4538, 0x0000 }, { 4538, 0x0000 }, { 4538, 0x0540 }, + { 4541, 0x7020 }, { 4545, 0x8133 }, { 4551, 0x4f81 }, { 4558, 0x03a5 }, + { 4564, 0x55ec }, { 4573, 0x6410 }, { 4577, 0xc318 }, { 4583, 0x2344 }, + { 4588, 0x1462 }, { 4593, 0x0034 }, { 4596, 0x0a43 }, { 4601, 0x1a09 }, + /* 0x8000 */ + { 4606, 0x187b }, { 4614, 0x13a5 }, { 4621, 0x0102 }, { 4623, 0xa848 }, + { 4628, 0x0440 }, { 4630, 0xc544 }, { 4636, 0x8106 }, { 4640, 0xe2dd }, + { 4650, 0x1af0 }, { 4657, 0x2d48 }, { 4663, 0xb626 }, { 4671, 0x0416 }, + { 4675, 0x5058 }, { 4680, 0x6e40 }, { 4686, 0x8032 }, { 4690, 0x3112 }, + /* 0x8100 */ + { 4695, 0x07e4 }, { 4702, 0x0c00 }, { 4704, 0x8208 }, { 4707, 0x420a }, + { 4711, 0x4840 }, { 4714, 0x803b }, { 4720, 0x4860 }, { 4724, 0x8713 }, + { 4731, 0x850d }, { 4737, 0x3428 }, { 4742, 0x0319 }, { 4747, 0xe529 }, + { 4755, 0x2345 }, { 4761, 0x870a }, { 4767, 0x25a9 }, { 4774, 0x5c18 }, + /* 0x8200 */ + { 4780, 0x77a6 }, { 4790, 0xd9c5 }, { 4799, 0x5e00 }, { 4804, 0x03e8 }, + { 4810, 0x0081 }, { 4812, 0xa700 }, { 4817, 0xcd54 }, { 4825, 0x41c6 }, + { 4831, 0x2800 }, { 4833, 0xa204 }, { 4837, 0xb860 }, { 4843, 0x2b0a }, + { 4849, 0x0020 }, { 4850, 0xda9e }, { 4860, 0x08ea }, { 4866, 0x0e1a }, + /* 0x8300 */ + { 4872, 0x427c }, { 4879, 0x11c0 }, { 4883, 0x8908 }, { 4887, 0x0376 }, + { 4894, 0x8621 }, { 4899, 0x0105 }, { 4902, 0x0000 }, { 4902, 0x18a8 }, + { 4907, 0x46a0 }, { 4912, 0xc448 }, { 4917, 0x0d05 }, { 4922, 0x2022 }, + { 4925, 0x5422 }, { 4930, 0x9148 }, { 4935, 0x8a01 }, { 4939, 0x2897 }, + /* 0x8400 */ + { 4946, 0x7898 }, { 4953, 0x0008 }, { 4954, 0x1605 }, { 4959, 0x3122 }, + { 4964, 0x4240 }, { 4967, 0x0880 }, { 4969, 0xfa4e }, { 4979, 0x06a2 }, + { 4984, 0x0814 }, { 4987, 0x9211 }, { 4992, 0x2002 }, { 4994, 0x9b04 }, + { 5000, 0x2e52 }, { 5007, 0x0643 }, { 5012, 0x5000 }, { 5014, 0x9010 }, + /* 0x8500 */ + { 5017, 0x0041 }, { 5019, 0x85ba }, { 5027, 0x3042 }, { 5031, 0x2020 }, + { 5033, 0x4f0b }, { 5041, 0x05a0 }, { 5045, 0x2708 }, { 5050, 0x4080 }, + { 5052, 0x0591 }, { 5057, 0x1a93 }, { 5064, 0xdf50 }, { 5073, 0x0600 }, + { 5075, 0xa202 }, { 5079, 0x3021 }, { 5083, 0x0630 }, { 5087, 0x4e80 }, + /* 0x8600 */ + { 5092, 0x0cc4 }, { 5097, 0x04c8 }, { 5101, 0xa004 }, { 5104, 0x8001 }, + { 5106, 0x6000 }, { 5108, 0xd431 }, { 5115, 0x0880 }, { 5117, 0x0a02 }, + { 5120, 0x1c00 }, { 5123, 0x0028 }, { 5125, 0x8e18 }, { 5131, 0x0041 }, + { 5133, 0x6ad0 }, { 5140, 0xca10 }, { 5145, 0xf210 }, { 5151, 0x4b00 }, + /* 0x8700 */ + { 5155, 0x274d }, { 5163, 0x1506 }, { 5168, 0x0220 }, { 5170, 0x8890 }, + { 5174, 0x5a00 }, { 5178, 0x82a8 }, { 5183, 0x4549 }, { 5189, 0x8150 }, + { 5193, 0x2004 }, { 5195, 0x8000 }, { 5196, 0x8804 }, { 5199, 0x2c08 }, + { 5203, 0x08d1 }, { 5208, 0x0005 }, { 5210, 0x8001 }, { 5212, 0x4ac4 }, + /* 0x8800 */ + { 5218, 0xe020 }, { 5222, 0x0062 }, { 5225, 0x008e }, { 5229, 0x0a42 }, + { 5233, 0x3055 }, { 5239, 0x6a8c }, { 5246, 0x090e }, { 5251, 0xe0a5 }, + { 5258, 0x2906 }, { 5263, 0x42c4 }, { 5268, 0x4814 }, { 5272, 0x80b3 }, + { 5278, 0x803e }, { 5284, 0xb330 }, { 5291, 0x0102 }, { 5293, 0x731c }, + /* 0x8900 */ + { 5301, 0x1494 }, { 5306, 0x600d }, { 5311, 0x0c20 }, { 5314, 0x0940 }, + { 5317, 0x301a }, { 5322, 0xc040 }, { 5325, 0xa451 }, { 5331, 0xc094 }, + { 5336, 0x8dca }, { 5344, 0x05c8 }, { 5349, 0x96c2 }, { 5356, 0xa40c }, + { 5361, 0x0001 }, { 5362, 0x3404 }, { 5366, 0x00c8 }, { 5369, 0x0110 }, + /* 0x8a00 */ + { 5371, 0x550d }, { 5378, 0xa9c9 }, { 5386, 0x2428 }, { 5390, 0x1c5a }, + { 5397, 0x0142 }, { 5400, 0x4837 }, { 5407, 0x7a4d }, { 5416, 0x100f }, + { 5421, 0x32b4 }, { 5428, 0x452a }, { 5434, 0x317b }, { 5443, 0x9205 }, + { 5448, 0xb894 }, { 5455, 0x5c44 }, { 5461, 0x68d7 }, { 5470, 0x458a }, + /* 0x8b00 */ + { 5476, 0x5097 }, { 5483, 0x2ed1 }, { 5491, 0x1943 }, { 5497, 0x4208 }, + { 5500, 0xd202 }, { 5505, 0x9d40 }, { 5511, 0x9840 }, { 5515, 0x2097 }, + { 5521, 0x5409 }, { 5526, 0x064d }, { 5532, 0x0000 }, { 5532, 0x0000 }, + { 5532, 0x0000 }, { 5532, 0x0000 }, { 5532, 0x0000 }, { 5532, 0x0000 }, + /* 0x8c00 */ + { 5532, 0x0000 }, { 5532, 0x0000 }, { 5532, 0x0000 }, { 5532, 0x8480 }, + { 5535, 0x5542 }, { 5541, 0x0421 }, { 5544, 0x1c06 }, { 5549, 0x1700 }, + { 5553, 0x7624 }, { 5560, 0x6110 }, { 5564, 0xff87 }, { 5576, 0xb9dd }, + { 5587, 0x659f }, { 5597, 0x5c0a }, { 5603, 0x245d }, { 5610, 0x3c00 }, + /* 0x8d00 */ + { 5614, 0xadb0 }, { 5622, 0x0059 }, { 5626, 0x0000 }, { 5626, 0x0000 }, + { 5626, 0x0000 }, { 5626, 0x0000 }, { 5626, 0x28d0 }, { 5631, 0x009b }, + { 5636, 0x0422 }, { 5639, 0x0200 }, { 5640, 0x0108 }, { 5642, 0x4408 }, + { 5645, 0x9804 }, { 5649, 0xac40 }, { 5654, 0x8d0a }, { 5660, 0x9028 }, + /* 0x8e00 */ + { 5664, 0x8700 }, { 5668, 0xe001 }, { 5672, 0x0400 }, { 5673, 0x0031 }, + { 5676, 0x1794 }, { 5683, 0x8221 }, { 5687, 0x0019 }, { 5690, 0x1054 }, + { 5694, 0x2cb2 }, { 5701, 0x021a }, { 5705, 0x9c02 }, { 5710, 0x4003 }, + { 5713, 0x3d60 }, { 5720, 0x8804 }, { 5723, 0x080c }, { 5726, 0x7900 }, + /* 0x8f00 */ + { 5731, 0x1628 }, { 5736, 0xba3c }, { 5745, 0x8640 }, { 5749, 0xcb08 }, + { 5755, 0x7274 }, { 5763, 0x9080 }, { 5766, 0x001e }, { 5770, 0x0000 }, + { 5770, 0x0000 }, { 5770, 0xd800 }, { 5774, 0xe188 }, { 5780, 0x9c87 }, + { 5788, 0x4034 }, { 5792, 0x0412 }, { 5795, 0xae64 }, { 5803, 0x2791 }, + /* 0x9000 */ + { 5810, 0xe86b }, { 5819, 0xe6fb }, { 5831, 0x408f }, { 5837, 0x5366 }, + { 5845, 0xeea6 }, { 5855, 0x537f }, { 5866, 0xe32b }, { 5875, 0xb5e4 }, + { 5884, 0x869f }, { 5893, 0x0002 }, { 5894, 0x8548 }, { 5899, 0x0122 }, + { 5902, 0x4402 }, { 5905, 0x0800 }, { 5906, 0x2116 }, { 5911, 0x20a0 }, + /* 0x9100 */ + { 5914, 0x0004 }, { 5915, 0x0204 }, { 5917, 0x2000 }, { 5918, 0x0005 }, + { 5920, 0x7e00 }, { 5926, 0x0154 }, { 5930, 0x162c }, { 5936, 0x01ac }, + { 5941, 0x2a84 }, { 5946, 0x1085 }, { 5950, 0x8c14 }, { 5955, 0x0530 }, + { 5959, 0xfbc3 }, { 5970, 0xb943 }, { 5978, 0x00ca }, { 5982, 0x9060 }, + /* 0x9200 */ + { 5986, 0x6000 }, { 5988, 0x4032 }, { 5992, 0x1200 }, { 5994, 0x8090 }, + { 5997, 0x0b30 }, { 6002, 0x4c81 }, { 6007, 0x0054 }, { 6010, 0x4002 }, + { 6012, 0x0029 }, { 6015, 0x1d6a }, { 6023, 0x2000 }, { 6024, 0x0280 }, + { 6026, 0x8000 }, { 6027, 0x0004 }, { 6028, 0x2610 }, { 6032, 0x150c }, + /* 0x9300 */ + { 6037, 0x8040 }, { 6039, 0x0701 }, { 6043, 0xd94d }, { 6052, 0x0c24 }, + { 6056, 0x2810 }, { 6059, 0x1850 }, { 6063, 0x5001 }, { 6066, 0x5020 }, + { 6069, 0x1000 }, { 6070, 0x04d0 }, { 6074, 0x7080 }, { 6078, 0x0201 }, + { 6080, 0x0108 }, { 6082, 0x21c3 }, { 6088, 0x0132 }, { 6092, 0x0000 }, + /* 0x9400 */ + { 6092, 0x0088 }, { 6094, 0x0719 }, { 6100, 0x0802 }, { 6102, 0x0560 }, + { 6106, 0x0012 }, { 6108, 0x4c0e }, { 6114, 0x0405 }, { 6117, 0xf0a1 }, + { 6124, 0x0002 }, { 6125, 0x0000 }, { 6125, 0x0000 }, { 6125, 0x0000 }, + { 6125, 0x0000 }, { 6125, 0x0000 }, { 6125, 0x0000 }, { 6125, 0x0000 }, + /* 0x9500 */ + { 6125, 0x0000 }, { 6125, 0x0000 }, { 6125, 0x0000 }, { 6125, 0x0000 }, + { 6125, 0x0000 }, { 6125, 0x0000 }, { 6125, 0x0000 }, { 6125, 0x0080 }, + { 6126, 0x8e8d }, { 6134, 0x035a }, { 6140, 0x21bd }, { 6148, 0x5a04 }, + { 6153, 0x3488 }, { 6158, 0x1170 }, { 6163, 0x0026 }, { 6166, 0x0000 }, + /* 0x9600 */ + { 6166, 0x0000 }, { 6166, 0x1000 }, { 6167, 0xc502 }, { 6172, 0x8804 }, + { 6175, 0xb815 }, { 6182, 0xf801 }, { 6188, 0x147c }, { 6195, 0x25ed }, + { 6204, 0xed60 }, { 6212, 0x1bb0 }, { 6219, 0x0589 }, { 6224, 0x1bd7 }, + { 6234, 0x7af3 }, { 6245, 0x1a62 }, { 6251, 0x0d0c }, { 6256, 0x0ac5 }, + /* 0x9700 */ + { 6262, 0xe5d1 }, { 6271, 0x524a }, { 6277, 0x0490 }, { 6280, 0x6305 }, + { 6286, 0x0354 }, { 6291, 0x5244 }, { 6296, 0x2b57 }, { 6305, 0x1612 }, + { 6310, 0xa872 }, { 6317, 0x1101 }, { 6320, 0x2949 }, { 6326, 0x0018 }, + { 6328, 0x0948 }, { 6332, 0x1008 }, { 6334, 0x6000 }, { 6336, 0x886c }, + /* 0x9800 */ + { 6342, 0x916e }, { 6350, 0x058f }, { 6357, 0x3012 }, { 6361, 0x3990 }, + { 6367, 0xf840 }, { 6373, 0x4930 }, { 6378, 0x8880 }, { 6381, 0x001b }, + { 6385, 0x0000 }, { 6385, 0x0000 }, { 6385, 0x8500 }, { 6388, 0x0042 }, + { 6390, 0x0058 }, { 6393, 0x9800 }, { 6396, 0xea04 }, { 6402, 0x7014 }, + /* 0x9900 */ + { 6407, 0x1628 }, { 6412, 0x611d }, { 6419, 0x5113 }, { 6425, 0x6000 }, + { 6427, 0x1a24 }, { 6432, 0x00a7 }, { 6437, 0x0000 }, { 6437, 0x0000 }, + { 6437, 0x0000 }, { 6437, 0x03c0 }, { 6441, 0x7120 }, { 6446, 0x1018 }, + { 6449, 0x0172 }, { 6454, 0xa927 }, { 6462, 0x6004 }, { 6465, 0x8906 }, + /* 0x9a00 */ + { 6470, 0xc022 }, { 6474, 0x020c }, { 6477, 0x0900 }, { 6479, 0x4081 }, + { 6482, 0x202d }, { 6487, 0x8ca0 }, { 6492, 0x0e34 }, { 6498, 0x0000 }, + { 6498, 0x0000 }, { 6498, 0x0000 }, { 6498, 0x2100 }, { 6500, 0x1101 }, + { 6503, 0x8011 }, { 6506, 0xc11a }, { 6512, 0xec4c }, { 6520, 0x0892 }, + /* 0x9b00 */ + { 6524, 0x0040 }, { 6525, 0x8500 }, { 6528, 0xc7ac }, { 6537, 0x1806 }, + { 6541, 0xe03e }, { 6549, 0x0512 }, { 6553, 0x8000 }, { 6554, 0x0010 }, + { 6555, 0x4008 }, { 6557, 0x80ce }, { 6563, 0x6d01 }, { 6569, 0x0210 }, + { 6571, 0x8641 }, { 6576, 0x0856 }, { 6581, 0x011e }, { 6586, 0x0027 }, + /* 0x9c00 */ + { 6590, 0x3750 }, { 6597, 0x083d }, { 6603, 0xe032 }, { 6609, 0x4e05 }, + { 6615, 0x01c0 }, { 6618, 0x0484 }, { 6621, 0x0081 }, { 6623, 0x0140 }, + { 6625, 0x0000 }, { 6625, 0x0000 }, { 6625, 0x0000 }, { 6625, 0x0000 }, + { 6625, 0x0000 }, { 6625, 0x0000 }, { 6625, 0x1aa0 }, { 6630, 0x0059 }, + /* 0x9d00 */ + { 6634, 0x43c8 }, { 6640, 0x8824 }, { 6644, 0x1d48 }, { 6650, 0xc800 }, + { 6653, 0x0152 }, { 6657, 0x7203 }, { 6663, 0x9013 }, { 6668, 0x0404 }, + { 6670, 0x8280 }, { 6673, 0x0400 }, { 6674, 0x8a10 }, { 6678, 0x0d14 }, + { 6683, 0x8056 }, { 6688, 0x0208 }, { 6690, 0xa040 }, { 6693, 0x2704 }, + /* 0x9e00 */ + { 6698, 0x0000 }, { 6698, 0x4c00 }, { 6701, 0x0000 }, { 6701, 0x0000 }, + { 6701, 0x0000 }, { 6701, 0x0000 }, { 6701, 0x0000 }, { 6701, 0xa320 }, + { 6706, 0x1902 }, { 6710, 0xa0ae }, { 6717, 0x2660 }, { 6722, 0xdf00 }, + { 6729, 0xf010 }, { 6734, 0x7b15 }, { 6743, 0x8121 }, { 6747, 0x3ad0 }, + /* 0x9f00 */ + { 6754, 0x4180 }, { 6757, 0x0028 }, { 6759, 0x1003 }, { 6762, 0x4800 }, + { 6764, 0xcc00 }, { 6768, 0x8014 }, { 6771, 0x14cf }, { 6779, 0x00c4 }, + { 6782, 0x2000 }, { 6783, 0x3020 }, { 6786, 0x0001 }, +}; +static const Summary16 jisx0208_uni2indx_pageff[15] = { + /* 0xff00 */ + { 6787, 0xdf7a }, { 6799, 0xffff }, { 6815, 0xffff }, { 6831, 0xffff }, + { 6847, 0xffff }, { 6863, 0x3fff }, { 6877, 0x0000 }, { 6877, 0x0000 }, + { 6877, 0x0000 }, { 6877, 0x0000 }, { 6877, 0x0000 }, { 6877, 0x0000 }, + { 6877, 0x0000 }, { 6877, 0x0000 }, { 6877, 0x0028 }, +}; + +static int +jisx0208_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (n >= 2) { + const Summary16 *summary = NULL; + if (wc >= 0x0000 && wc < 0x0100) + summary = &jisx0208_uni2indx_page00[(wc>>4)]; + else if (wc >= 0x0300 && wc < 0x0460) + summary = &jisx0208_uni2indx_page03[(wc>>4)-0x030]; + else if (wc >= 0x2000 && wc < 0x2320) + summary = &jisx0208_uni2indx_page20[(wc>>4)-0x200]; + else if (wc >= 0x2500 && wc < 0x2670) + summary = &jisx0208_uni2indx_page25[(wc>>4)-0x250]; + else if (wc >= 0x3000 && wc < 0x3100) + summary = &jisx0208_uni2indx_page30[(wc>>4)-0x300]; + else if (wc >= 0x4e00 && wc < 0x9fb0) + summary = &jisx0208_uni2indx_page4e[(wc>>4)-0x4e0]; + else if (wc >= 0xff00 && wc < 0xfff0) + summary = &jisx0208_uni2indx_pageff[(wc>>4)-0xff0]; + if (summary) { + unsigned short used = summary->used; + unsigned int i = wc & 0x0f; + if (used & ((unsigned short) 1 << i)) { + unsigned short c; + /* Keep in `used' only the bits 0..i-1. */ + used &= ((unsigned short) 1 << i) - 1; + /* Add `summary->indx' and the number of bits set in `used'. */ + used = (used & 0x5555) + ((used & 0xaaaa) >> 1); + used = (used & 0x3333) + ((used & 0xcccc) >> 2); + used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); + used = (used & 0x00ff) + (used >> 8); + c = jisx0208_2charset[summary->indx + used]; + r[0] = (c >> 8); r[1] = (c & 0xff); + return 2; + } + } + return RET_ILUNI; + } + return RET_TOOSMALL; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/jisx0212.h b/graf2d/win32gdk/gdk/src/iconv/jisx0212.h new file mode 100644 index 00000000000..371dbb152cc --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/jisx0212.h @@ -0,0 +1,2189 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * JISX0212.1990-0 + */ + +static const unsigned short jisx0212_2uni_page22[81] = { + /* 0x22 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x02d8, 0x02c7, + 0x00b8, 0x02d9, 0x02dd, 0x00af, 0x02db, 0x02da, 0xff5e, 0x0384, + 0x0385, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x00a1, 0x00a6, 0x00bf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0x00ba, 0x00aa, 0x00a9, 0x00ae, 0x2122, 0x00a4, + 0x2116, +}; +static const unsigned short jisx0212_2uni_page26[188] = { + /* 0x26 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x0386, 0x0388, 0x0389, 0x038a, 0x03aa, 0xfffd, 0x038c, 0xfffd, + 0x038e, 0x03ab, 0xfffd, 0x038f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x03ac, 0x03ad, 0x03ae, 0x03af, 0x03ca, 0x0390, 0x03cc, 0x03c2, + 0x03cd, 0x03cb, 0x03b0, 0x03ce, 0xfffd, 0xfffd, + /* 0x27 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, 0x0408, + 0x0409, 0x040a, 0x040b, 0x040c, 0x040e, 0x040f, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, 0x0458, + 0x0459, 0x045a, 0x045b, 0x045c, 0x045e, 0x045f, +}; +static const unsigned short jisx0212_2uni_page29[275] = { + /* 0x29 */ + 0x00c6, 0x0110, 0xfffd, 0x0126, 0xfffd, 0x0132, 0xfffd, 0x0141, + 0x013f, 0xfffd, 0x014a, 0x00d8, 0x0152, 0xfffd, 0x0166, 0x00de, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x00e6, 0x0111, 0x00f0, 0x0127, 0x0131, 0x0133, 0x0138, 0x0142, + 0x0140, 0x0149, 0x014b, 0x00f8, 0x0153, 0x00df, 0x0167, 0x00fe, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x2a */ + 0x00c1, 0x00c0, 0x00c4, 0x00c2, 0x0102, 0x01cd, 0x0100, 0x0104, + 0x00c5, 0x00c3, 0x0106, 0x0108, 0x010c, 0x00c7, 0x010a, 0x010e, + 0x00c9, 0x00c8, 0x00cb, 0x00ca, 0x011a, 0x0116, 0x0112, 0x0118, + 0xfffd, 0x011c, 0x011e, 0x0122, 0x0120, 0x0124, 0x00cd, 0x00cc, + 0x00cf, 0x00ce, 0x01cf, 0x0130, 0x012a, 0x012e, 0x0128, 0x0134, + 0x0136, 0x0139, 0x013d, 0x013b, 0x0143, 0x0147, 0x0145, 0x00d1, + 0x00d3, 0x00d2, 0x00d6, 0x00d4, 0x01d1, 0x0150, 0x014c, 0x00d5, + 0x0154, 0x0158, 0x0156, 0x015a, 0x015c, 0x0160, 0x015e, 0x0164, + 0x0162, 0x00da, 0x00d9, 0x00dc, 0x00db, 0x016c, 0x01d3, 0x0170, + 0x016a, 0x0172, 0x016e, 0x0168, 0x01d7, 0x01db, 0x01d9, 0x01d5, + 0x0174, 0x00dd, 0x0178, 0x0176, 0x0179, 0x017d, 0x017b, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x2b */ + 0x00e1, 0x00e0, 0x00e4, 0x00e2, 0x0103, 0x01ce, 0x0101, 0x0105, + 0x00e5, 0x00e3, 0x0107, 0x0109, 0x010d, 0x00e7, 0x010b, 0x010f, + 0x00e9, 0x00e8, 0x00eb, 0x00ea, 0x011b, 0x0117, 0x0113, 0x0119, + 0x01f5, 0x011d, 0x011f, 0xfffd, 0x0121, 0x0125, 0x00ed, 0x00ec, + 0x00ef, 0x00ee, 0x01d0, 0xfffd, 0x012b, 0x012f, 0x0129, 0x0135, + 0x0137, 0x013a, 0x013e, 0x013c, 0x0144, 0x0148, 0x0146, 0x00f1, + 0x00f3, 0x00f2, 0x00f6, 0x00f4, 0x01d2, 0x0151, 0x014d, 0x00f5, + 0x0155, 0x0159, 0x0157, 0x015b, 0x015d, 0x0161, 0x015f, 0x0165, + 0x0163, 0x00fa, 0x00f9, 0x00fc, 0x00fb, 0x016d, 0x01d4, 0x0171, + 0x016b, 0x0173, 0x016f, 0x0169, 0x01d8, 0x01dc, 0x01da, 0x01d6, + 0x0175, 0x00fd, 0x00ff, 0x0177, 0x017a, 0x017e, 0x017c, +}; +static const unsigned short jisx0212_2uni_page30[5801] = { + /* 0x30 */ + 0x4e02, 0x4e04, 0x4e05, 0x4e0c, 0x4e12, 0x4e1f, 0x4e23, 0x4e24, + 0x4e28, 0x4e2b, 0x4e2e, 0x4e2f, 0x4e30, 0x4e35, 0x4e40, 0x4e41, + 0x4e44, 0x4e47, 0x4e51, 0x4e5a, 0x4e5c, 0x4e63, 0x4e68, 0x4e69, + 0x4e74, 0x4e75, 0x4e79, 0x4e7f, 0x4e8d, 0x4e96, 0x4e97, 0x4e9d, + 0x4eaf, 0x4eb9, 0x4ec3, 0x4ed0, 0x4eda, 0x4edb, 0x4ee0, 0x4ee1, + 0x4ee2, 0x4ee8, 0x4eef, 0x4ef1, 0x4ef3, 0x4ef5, 0x4efd, 0x4efe, + 0x4eff, 0x4f00, 0x4f02, 0x4f03, 0x4f08, 0x4f0b, 0x4f0c, 0x4f12, + 0x4f15, 0x4f16, 0x4f17, 0x4f19, 0x4f2e, 0x4f31, 0x4f60, 0x4f33, + 0x4f35, 0x4f37, 0x4f39, 0x4f3b, 0x4f3e, 0x4f40, 0x4f42, 0x4f48, + 0x4f49, 0x4f4b, 0x4f4c, 0x4f52, 0x4f54, 0x4f56, 0x4f58, 0x4f5f, + 0x4f63, 0x4f6a, 0x4f6c, 0x4f6e, 0x4f71, 0x4f77, 0x4f78, 0x4f79, + 0x4f7a, 0x4f7d, 0x4f7e, 0x4f81, 0x4f82, 0x4f84, + /* 0x31 */ + 0x4f85, 0x4f89, 0x4f8a, 0x4f8c, 0x4f8e, 0x4f90, 0x4f92, 0x4f93, + 0x4f94, 0x4f97, 0x4f99, 0x4f9a, 0x4f9e, 0x4f9f, 0x4fb2, 0x4fb7, + 0x4fb9, 0x4fbb, 0x4fbc, 0x4fbd, 0x4fbe, 0x4fc0, 0x4fc1, 0x4fc5, + 0x4fc6, 0x4fc8, 0x4fc9, 0x4fcb, 0x4fcc, 0x4fcd, 0x4fcf, 0x4fd2, + 0x4fdc, 0x4fe0, 0x4fe2, 0x4ff0, 0x4ff2, 0x4ffc, 0x4ffd, 0x4fff, + 0x5000, 0x5001, 0x5004, 0x5007, 0x500a, 0x500c, 0x500e, 0x5010, + 0x5013, 0x5017, 0x5018, 0x501b, 0x501c, 0x501d, 0x501e, 0x5022, + 0x5027, 0x502e, 0x5030, 0x5032, 0x5033, 0x5035, 0x5040, 0x5041, + 0x5042, 0x5045, 0x5046, 0x504a, 0x504c, 0x504e, 0x5051, 0x5052, + 0x5053, 0x5057, 0x5059, 0x505f, 0x5060, 0x5062, 0x5063, 0x5066, + 0x5067, 0x506a, 0x506d, 0x5070, 0x5071, 0x503b, 0x5081, 0x5083, + 0x5084, 0x5086, 0x508a, 0x508e, 0x508f, 0x5090, + /* 0x32 */ + 0x5092, 0x5093, 0x5094, 0x5096, 0x509b, 0x509c, 0x509e, 0x509f, + 0x50a0, 0x50a1, 0x50a2, 0x50aa, 0x50af, 0x50b0, 0x50b9, 0x50ba, + 0x50bd, 0x50c0, 0x50c3, 0x50c4, 0x50c7, 0x50cc, 0x50ce, 0x50d0, + 0x50d3, 0x50d4, 0x50d8, 0x50dc, 0x50dd, 0x50df, 0x50e2, 0x50e4, + 0x50e6, 0x50e8, 0x50e9, 0x50ef, 0x50f1, 0x50f6, 0x50fa, 0x50fe, + 0x5103, 0x5106, 0x5107, 0x5108, 0x510b, 0x510c, 0x510d, 0x510e, + 0x50f2, 0x5110, 0x5117, 0x5119, 0x511b, 0x511c, 0x511d, 0x511e, + 0x5123, 0x5127, 0x5128, 0x512c, 0x512d, 0x512f, 0x5131, 0x5133, + 0x5134, 0x5135, 0x5138, 0x5139, 0x5142, 0x514a, 0x514f, 0x5153, + 0x5155, 0x5157, 0x5158, 0x515f, 0x5164, 0x5166, 0x517e, 0x5183, + 0x5184, 0x518b, 0x518e, 0x5198, 0x519d, 0x51a1, 0x51a3, 0x51ad, + 0x51b8, 0x51ba, 0x51bc, 0x51be, 0x51bf, 0x51c2, + /* 0x33 */ + 0x51c8, 0x51cf, 0x51d1, 0x51d2, 0x51d3, 0x51d5, 0x51d8, 0x51de, + 0x51e2, 0x51e5, 0x51ee, 0x51f2, 0x51f3, 0x51f4, 0x51f7, 0x5201, + 0x5202, 0x5205, 0x5212, 0x5213, 0x5215, 0x5216, 0x5218, 0x5222, + 0x5228, 0x5231, 0x5232, 0x5235, 0x523c, 0x5245, 0x5249, 0x5255, + 0x5257, 0x5258, 0x525a, 0x525c, 0x525f, 0x5260, 0x5261, 0x5266, + 0x526e, 0x5277, 0x5278, 0x5279, 0x5280, 0x5282, 0x5285, 0x528a, + 0x528c, 0x5293, 0x5295, 0x5296, 0x5297, 0x5298, 0x529a, 0x529c, + 0x52a4, 0x52a5, 0x52a6, 0x52a7, 0x52af, 0x52b0, 0x52b6, 0x52b7, + 0x52b8, 0x52ba, 0x52bb, 0x52bd, 0x52c0, 0x52c4, 0x52c6, 0x52c8, + 0x52cc, 0x52cf, 0x52d1, 0x52d4, 0x52d6, 0x52db, 0x52dc, 0x52e1, + 0x52e5, 0x52e8, 0x52e9, 0x52ea, 0x52ec, 0x52f0, 0x52f1, 0x52f4, + 0x52f6, 0x52f7, 0x5300, 0x5303, 0x530a, 0x530b, + /* 0x34 */ + 0x530c, 0x5311, 0x5313, 0x5318, 0x531b, 0x531c, 0x531e, 0x531f, + 0x5325, 0x5327, 0x5328, 0x5329, 0x532b, 0x532c, 0x532d, 0x5330, + 0x5332, 0x5335, 0x533c, 0x533d, 0x533e, 0x5342, 0x534c, 0x534b, + 0x5359, 0x535b, 0x5361, 0x5363, 0x5365, 0x536c, 0x536d, 0x5372, + 0x5379, 0x537e, 0x5383, 0x5387, 0x5388, 0x538e, 0x5393, 0x5394, + 0x5399, 0x539d, 0x53a1, 0x53a4, 0x53aa, 0x53ab, 0x53af, 0x53b2, + 0x53b4, 0x53b5, 0x53b7, 0x53b8, 0x53ba, 0x53bd, 0x53c0, 0x53c5, + 0x53cf, 0x53d2, 0x53d3, 0x53d5, 0x53da, 0x53dd, 0x53de, 0x53e0, + 0x53e6, 0x53e7, 0x53f5, 0x5402, 0x5413, 0x541a, 0x5421, 0x5427, + 0x5428, 0x542a, 0x542f, 0x5431, 0x5434, 0x5435, 0x5443, 0x5444, + 0x5447, 0x544d, 0x544f, 0x545e, 0x5462, 0x5464, 0x5466, 0x5467, + 0x5469, 0x546b, 0x546d, 0x546e, 0x5474, 0x547f, + /* 0x35 */ + 0x5481, 0x5483, 0x5485, 0x5488, 0x5489, 0x548d, 0x5491, 0x5495, + 0x5496, 0x549c, 0x549f, 0x54a1, 0x54a6, 0x54a7, 0x54a9, 0x54aa, + 0x54ad, 0x54ae, 0x54b1, 0x54b7, 0x54b9, 0x54ba, 0x54bb, 0x54bf, + 0x54c6, 0x54ca, 0x54cd, 0x54ce, 0x54e0, 0x54ea, 0x54ec, 0x54ef, + 0x54f6, 0x54fc, 0x54fe, 0x54ff, 0x5500, 0x5501, 0x5505, 0x5508, + 0x5509, 0x550c, 0x550d, 0x550e, 0x5515, 0x552a, 0x552b, 0x5532, + 0x5535, 0x5536, 0x553b, 0x553c, 0x553d, 0x5541, 0x5547, 0x5549, + 0x554a, 0x554d, 0x5550, 0x5551, 0x5558, 0x555a, 0x555b, 0x555e, + 0x5560, 0x5561, 0x5564, 0x5566, 0x557f, 0x5581, 0x5582, 0x5586, + 0x5588, 0x558e, 0x558f, 0x5591, 0x5592, 0x5593, 0x5594, 0x5597, + 0x55a3, 0x55a4, 0x55ad, 0x55b2, 0x55bf, 0x55c1, 0x55c3, 0x55c6, + 0x55c9, 0x55cb, 0x55cc, 0x55ce, 0x55d1, 0x55d2, + /* 0x36 */ + 0x55d3, 0x55d7, 0x55d8, 0x55db, 0x55de, 0x55e2, 0x55e9, 0x55f6, + 0x55ff, 0x5605, 0x5608, 0x560a, 0x560d, 0x560e, 0x560f, 0x5610, + 0x5611, 0x5612, 0x5619, 0x562c, 0x5630, 0x5633, 0x5635, 0x5637, + 0x5639, 0x563b, 0x563c, 0x563d, 0x563f, 0x5640, 0x5641, 0x5643, + 0x5644, 0x5646, 0x5649, 0x564b, 0x564d, 0x564f, 0x5654, 0x565e, + 0x5660, 0x5661, 0x5662, 0x5663, 0x5666, 0x5669, 0x566d, 0x566f, + 0x5671, 0x5672, 0x5675, 0x5684, 0x5685, 0x5688, 0x568b, 0x568c, + 0x5695, 0x5699, 0x569a, 0x569d, 0x569e, 0x569f, 0x56a6, 0x56a7, + 0x56a8, 0x56a9, 0x56ab, 0x56ac, 0x56ad, 0x56b1, 0x56b3, 0x56b7, + 0x56be, 0x56c5, 0x56c9, 0x56ca, 0x56cb, 0x56cf, 0x56d0, 0x56cc, + 0x56cd, 0x56d9, 0x56dc, 0x56dd, 0x56df, 0x56e1, 0x56e4, 0x56e5, + 0x56e6, 0x56e7, 0x56e8, 0x56f1, 0x56eb, 0x56ed, + /* 0x37 */ + 0x56f6, 0x56f7, 0x5701, 0x5702, 0x5707, 0x570a, 0x570c, 0x5711, + 0x5715, 0x571a, 0x571b, 0x571d, 0x5720, 0x5722, 0x5723, 0x5724, + 0x5725, 0x5729, 0x572a, 0x572c, 0x572e, 0x572f, 0x5733, 0x5734, + 0x573d, 0x573e, 0x573f, 0x5745, 0x5746, 0x574c, 0x574d, 0x5752, + 0x5762, 0x5765, 0x5767, 0x5768, 0x576b, 0x576d, 0x576e, 0x576f, + 0x5770, 0x5771, 0x5773, 0x5774, 0x5775, 0x5777, 0x5779, 0x577a, + 0x577b, 0x577c, 0x577e, 0x5781, 0x5783, 0x578c, 0x5794, 0x5797, + 0x5799, 0x579a, 0x579c, 0x579d, 0x579e, 0x579f, 0x57a1, 0x5795, + 0x57a7, 0x57a8, 0x57a9, 0x57ac, 0x57b8, 0x57bd, 0x57c7, 0x57c8, + 0x57cc, 0x57cf, 0x57d5, 0x57dd, 0x57de, 0x57e4, 0x57e6, 0x57e7, + 0x57e9, 0x57ed, 0x57f0, 0x57f5, 0x57f6, 0x57f8, 0x57fd, 0x57fe, + 0x57ff, 0x5803, 0x5804, 0x5808, 0x5809, 0x57e1, + /* 0x38 */ + 0x580c, 0x580d, 0x581b, 0x581e, 0x581f, 0x5820, 0x5826, 0x5827, + 0x582d, 0x5832, 0x5839, 0x583f, 0x5849, 0x584c, 0x584d, 0x584f, + 0x5850, 0x5855, 0x585f, 0x5861, 0x5864, 0x5867, 0x5868, 0x5878, + 0x587c, 0x587f, 0x5880, 0x5881, 0x5887, 0x5888, 0x5889, 0x588a, + 0x588c, 0x588d, 0x588f, 0x5890, 0x5894, 0x5896, 0x589d, 0x58a0, + 0x58a1, 0x58a2, 0x58a6, 0x58a9, 0x58b1, 0x58b2, 0x58c4, 0x58bc, + 0x58c2, 0x58c8, 0x58cd, 0x58ce, 0x58d0, 0x58d2, 0x58d4, 0x58d6, + 0x58da, 0x58dd, 0x58e1, 0x58e2, 0x58e9, 0x58f3, 0x5905, 0x5906, + 0x590b, 0x590c, 0x5912, 0x5913, 0x5914, 0x8641, 0x591d, 0x5921, + 0x5923, 0x5924, 0x5928, 0x592f, 0x5930, 0x5933, 0x5935, 0x5936, + 0x593f, 0x5943, 0x5946, 0x5952, 0x5953, 0x5959, 0x595b, 0x595d, + 0x595e, 0x595f, 0x5961, 0x5963, 0x596b, 0x596d, + /* 0x39 */ + 0x596f, 0x5972, 0x5975, 0x5976, 0x5979, 0x597b, 0x597c, 0x598b, + 0x598c, 0x598e, 0x5992, 0x5995, 0x5997, 0x599f, 0x59a4, 0x59a7, + 0x59ad, 0x59ae, 0x59af, 0x59b0, 0x59b3, 0x59b7, 0x59ba, 0x59bc, + 0x59c1, 0x59c3, 0x59c4, 0x59c8, 0x59ca, 0x59cd, 0x59d2, 0x59dd, + 0x59de, 0x59df, 0x59e3, 0x59e4, 0x59e7, 0x59ee, 0x59ef, 0x59f1, + 0x59f2, 0x59f4, 0x59f7, 0x5a00, 0x5a04, 0x5a0c, 0x5a0d, 0x5a0e, + 0x5a12, 0x5a13, 0x5a1e, 0x5a23, 0x5a24, 0x5a27, 0x5a28, 0x5a2a, + 0x5a2d, 0x5a30, 0x5a44, 0x5a45, 0x5a47, 0x5a48, 0x5a4c, 0x5a50, + 0x5a55, 0x5a5e, 0x5a63, 0x5a65, 0x5a67, 0x5a6d, 0x5a77, 0x5a7a, + 0x5a7b, 0x5a7e, 0x5a8b, 0x5a90, 0x5a93, 0x5a96, 0x5a99, 0x5a9c, + 0x5a9e, 0x5a9f, 0x5aa0, 0x5aa2, 0x5aa7, 0x5aac, 0x5ab1, 0x5ab2, + 0x5ab3, 0x5ab5, 0x5ab8, 0x5aba, 0x5abb, 0x5abf, + /* 0x3a */ + 0x5ac4, 0x5ac6, 0x5ac8, 0x5acf, 0x5ada, 0x5adc, 0x5ae0, 0x5ae5, + 0x5aea, 0x5aee, 0x5af5, 0x5af6, 0x5afd, 0x5b00, 0x5b01, 0x5b08, + 0x5b17, 0x5b34, 0x5b19, 0x5b1b, 0x5b1d, 0x5b21, 0x5b25, 0x5b2d, + 0x5b38, 0x5b41, 0x5b4b, 0x5b4c, 0x5b52, 0x5b56, 0x5b5e, 0x5b68, + 0x5b6e, 0x5b6f, 0x5b7c, 0x5b7d, 0x5b7e, 0x5b7f, 0x5b81, 0x5b84, + 0x5b86, 0x5b8a, 0x5b8e, 0x5b90, 0x5b91, 0x5b93, 0x5b94, 0x5b96, + 0x5ba8, 0x5ba9, 0x5bac, 0x5bad, 0x5baf, 0x5bb1, 0x5bb2, 0x5bb7, + 0x5bba, 0x5bbc, 0x5bc0, 0x5bc1, 0x5bcd, 0x5bcf, 0x5bd6, 0x5bd7, + 0x5bd8, 0x5bd9, 0x5bda, 0x5be0, 0x5bef, 0x5bf1, 0x5bf4, 0x5bfd, + 0x5c0c, 0x5c17, 0x5c1e, 0x5c1f, 0x5c23, 0x5c26, 0x5c29, 0x5c2b, + 0x5c2c, 0x5c2e, 0x5c30, 0x5c32, 0x5c35, 0x5c36, 0x5c59, 0x5c5a, + 0x5c5c, 0x5c62, 0x5c63, 0x5c67, 0x5c68, 0x5c69, + /* 0x3b */ + 0x5c6d, 0x5c70, 0x5c74, 0x5c75, 0x5c7a, 0x5c7b, 0x5c7c, 0x5c7d, + 0x5c87, 0x5c88, 0x5c8a, 0x5c8f, 0x5c92, 0x5c9d, 0x5c9f, 0x5ca0, + 0x5ca2, 0x5ca3, 0x5ca6, 0x5caa, 0x5cb2, 0x5cb4, 0x5cb5, 0x5cba, + 0x5cc9, 0x5ccb, 0x5cd2, 0x5cdd, 0x5cd7, 0x5cee, 0x5cf1, 0x5cf2, + 0x5cf4, 0x5d01, 0x5d06, 0x5d0d, 0x5d12, 0x5d2b, 0x5d23, 0x5d24, + 0x5d26, 0x5d27, 0x5d31, 0x5d34, 0x5d39, 0x5d3d, 0x5d3f, 0x5d42, + 0x5d43, 0x5d46, 0x5d48, 0x5d55, 0x5d51, 0x5d59, 0x5d4a, 0x5d5f, + 0x5d60, 0x5d61, 0x5d62, 0x5d64, 0x5d6a, 0x5d6d, 0x5d70, 0x5d79, + 0x5d7a, 0x5d7e, 0x5d7f, 0x5d81, 0x5d83, 0x5d88, 0x5d8a, 0x5d92, + 0x5d93, 0x5d94, 0x5d95, 0x5d99, 0x5d9b, 0x5d9f, 0x5da0, 0x5da7, + 0x5dab, 0x5db0, 0x5db4, 0x5db8, 0x5db9, 0x5dc3, 0x5dc7, 0x5dcb, + 0x5dd0, 0x5dce, 0x5dd8, 0x5dd9, 0x5de0, 0x5de4, + /* 0x3c */ + 0x5de9, 0x5df8, 0x5df9, 0x5e00, 0x5e07, 0x5e0d, 0x5e12, 0x5e14, + 0x5e15, 0x5e18, 0x5e1f, 0x5e20, 0x5e2e, 0x5e28, 0x5e32, 0x5e35, + 0x5e3e, 0x5e4b, 0x5e50, 0x5e49, 0x5e51, 0x5e56, 0x5e58, 0x5e5b, + 0x5e5c, 0x5e5e, 0x5e68, 0x5e6a, 0x5e6b, 0x5e6c, 0x5e6d, 0x5e6e, + 0x5e70, 0x5e80, 0x5e8b, 0x5e8e, 0x5ea2, 0x5ea4, 0x5ea5, 0x5ea8, + 0x5eaa, 0x5eac, 0x5eb1, 0x5eb3, 0x5ebd, 0x5ebe, 0x5ebf, 0x5ec6, + 0x5ecc, 0x5ecb, 0x5ece, 0x5ed1, 0x5ed2, 0x5ed4, 0x5ed5, 0x5edc, + 0x5ede, 0x5ee5, 0x5eeb, 0x5f02, 0x5f06, 0x5f07, 0x5f08, 0x5f0e, + 0x5f19, 0x5f1c, 0x5f1d, 0x5f21, 0x5f22, 0x5f23, 0x5f24, 0x5f28, + 0x5f2b, 0x5f2c, 0x5f2e, 0x5f30, 0x5f34, 0x5f36, 0x5f3b, 0x5f3d, + 0x5f3f, 0x5f40, 0x5f44, 0x5f45, 0x5f47, 0x5f4d, 0x5f50, 0x5f54, + 0x5f58, 0x5f5b, 0x5f60, 0x5f63, 0x5f64, 0x5f67, + /* 0x3d */ + 0x5f6f, 0x5f72, 0x5f74, 0x5f75, 0x5f78, 0x5f7a, 0x5f7d, 0x5f7e, + 0x5f89, 0x5f8d, 0x5f8f, 0x5f96, 0x5f9c, 0x5f9d, 0x5fa2, 0x5fa7, + 0x5fab, 0x5fa4, 0x5fac, 0x5faf, 0x5fb0, 0x5fb1, 0x5fb8, 0x5fc4, + 0x5fc7, 0x5fc8, 0x5fc9, 0x5fcb, 0x5fd0, 0x5fd1, 0x5fd2, 0x5fd3, + 0x5fd4, 0x5fde, 0x5fe1, 0x5fe2, 0x5fe8, 0x5fe9, 0x5fea, 0x5fec, + 0x5fed, 0x5fee, 0x5fef, 0x5ff2, 0x5ff3, 0x5ff6, 0x5ffa, 0x5ffc, + 0x6007, 0x600a, 0x600d, 0x6013, 0x6014, 0x6017, 0x6018, 0x601a, + 0x601f, 0x6024, 0x602d, 0x6033, 0x6035, 0x6040, 0x6047, 0x6048, + 0x6049, 0x604c, 0x6051, 0x6054, 0x6056, 0x6057, 0x605d, 0x6061, + 0x6067, 0x6071, 0x607e, 0x607f, 0x6082, 0x6086, 0x6088, 0x608a, + 0x608e, 0x6091, 0x6093, 0x6095, 0x6098, 0x609d, 0x609e, 0x60a2, + 0x60a4, 0x60a5, 0x60a8, 0x60b0, 0x60b1, 0x60b7, + /* 0x3e */ + 0x60bb, 0x60be, 0x60c2, 0x60c4, 0x60c8, 0x60c9, 0x60ca, 0x60cb, + 0x60ce, 0x60cf, 0x60d4, 0x60d5, 0x60d9, 0x60db, 0x60dd, 0x60de, + 0x60e2, 0x60e5, 0x60f2, 0x60f5, 0x60f8, 0x60fc, 0x60fd, 0x6102, + 0x6107, 0x610a, 0x610c, 0x6110, 0x6111, 0x6112, 0x6113, 0x6114, + 0x6116, 0x6117, 0x6119, 0x611c, 0x611e, 0x6122, 0x612a, 0x612b, + 0x6130, 0x6131, 0x6135, 0x6136, 0x6137, 0x6139, 0x6141, 0x6145, + 0x6146, 0x6149, 0x615e, 0x6160, 0x616c, 0x6172, 0x6178, 0x617b, + 0x617c, 0x617f, 0x6180, 0x6181, 0x6183, 0x6184, 0x618b, 0x618d, + 0x6192, 0x6193, 0x6197, 0x6198, 0x619c, 0x619d, 0x619f, 0x61a0, + 0x61a5, 0x61a8, 0x61aa, 0x61ad, 0x61b8, 0x61b9, 0x61bc, 0x61c0, + 0x61c1, 0x61c2, 0x61ce, 0x61cf, 0x61d5, 0x61dc, 0x61dd, 0x61de, + 0x61df, 0x61e1, 0x61e2, 0x61e7, 0x61e9, 0x61e5, + /* 0x3f */ + 0x61ec, 0x61ed, 0x61ef, 0x6201, 0x6203, 0x6204, 0x6207, 0x6213, + 0x6215, 0x621c, 0x6220, 0x6222, 0x6223, 0x6227, 0x6229, 0x622b, + 0x6239, 0x623d, 0x6242, 0x6243, 0x6244, 0x6246, 0x624c, 0x6250, + 0x6251, 0x6252, 0x6254, 0x6256, 0x625a, 0x625c, 0x6264, 0x626d, + 0x626f, 0x6273, 0x627a, 0x627d, 0x628d, 0x628e, 0x628f, 0x6290, + 0x62a6, 0x62a8, 0x62b3, 0x62b6, 0x62b7, 0x62ba, 0x62be, 0x62bf, + 0x62c4, 0x62ce, 0x62d5, 0x62d6, 0x62da, 0x62ea, 0x62f2, 0x62f4, + 0x62fc, 0x62fd, 0x6303, 0x6304, 0x630a, 0x630b, 0x630d, 0x6310, + 0x6313, 0x6316, 0x6318, 0x6329, 0x632a, 0x632d, 0x6335, 0x6336, + 0x6339, 0x633c, 0x6341, 0x6342, 0x6343, 0x6344, 0x6346, 0x634a, + 0x634b, 0x634e, 0x6352, 0x6353, 0x6354, 0x6358, 0x635b, 0x6365, + 0x6366, 0x636c, 0x636d, 0x6371, 0x6374, 0x6375, + /* 0x40 */ + 0x6378, 0x637c, 0x637d, 0x637f, 0x6382, 0x6384, 0x6387, 0x638a, + 0x6390, 0x6394, 0x6395, 0x6399, 0x639a, 0x639e, 0x63a4, 0x63a6, + 0x63ad, 0x63ae, 0x63af, 0x63bd, 0x63c1, 0x63c5, 0x63c8, 0x63ce, + 0x63d1, 0x63d3, 0x63d4, 0x63d5, 0x63dc, 0x63e0, 0x63e5, 0x63ea, + 0x63ec, 0x63f2, 0x63f3, 0x63f5, 0x63f8, 0x63f9, 0x6409, 0x640a, + 0x6410, 0x6412, 0x6414, 0x6418, 0x641e, 0x6420, 0x6422, 0x6424, + 0x6425, 0x6429, 0x642a, 0x642f, 0x6430, 0x6435, 0x643d, 0x643f, + 0x644b, 0x644f, 0x6451, 0x6452, 0x6453, 0x6454, 0x645a, 0x645b, + 0x645c, 0x645d, 0x645f, 0x6460, 0x6461, 0x6463, 0x646d, 0x6473, + 0x6474, 0x647b, 0x647d, 0x6485, 0x6487, 0x648f, 0x6490, 0x6491, + 0x6498, 0x6499, 0x649b, 0x649d, 0x649f, 0x64a1, 0x64a3, 0x64a6, + 0x64a8, 0x64ac, 0x64b3, 0x64bd, 0x64be, 0x64bf, + /* 0x41 */ + 0x64c4, 0x64c9, 0x64ca, 0x64cb, 0x64cc, 0x64ce, 0x64d0, 0x64d1, + 0x64d5, 0x64d7, 0x64e4, 0x64e5, 0x64e9, 0x64ea, 0x64ed, 0x64f0, + 0x64f5, 0x64f7, 0x64fb, 0x64ff, 0x6501, 0x6504, 0x6508, 0x6509, + 0x650a, 0x650f, 0x6513, 0x6514, 0x6516, 0x6519, 0x651b, 0x651e, + 0x651f, 0x6522, 0x6526, 0x6529, 0x652e, 0x6531, 0x653a, 0x653c, + 0x653d, 0x6543, 0x6547, 0x6549, 0x6550, 0x6552, 0x6554, 0x655f, + 0x6560, 0x6567, 0x656b, 0x657a, 0x657d, 0x6581, 0x6585, 0x658a, + 0x6592, 0x6595, 0x6598, 0x659d, 0x65a0, 0x65a3, 0x65a6, 0x65ae, + 0x65b2, 0x65b3, 0x65b4, 0x65bf, 0x65c2, 0x65c8, 0x65c9, 0x65ce, + 0x65d0, 0x65d4, 0x65d6, 0x65d8, 0x65df, 0x65f0, 0x65f2, 0x65f4, + 0x65f5, 0x65f9, 0x65fe, 0x65ff, 0x6600, 0x6604, 0x6608, 0x6609, + 0x660d, 0x6611, 0x6612, 0x6615, 0x6616, 0x661d, + /* 0x42 */ + 0x661e, 0x6621, 0x6622, 0x6623, 0x6624, 0x6626, 0x6629, 0x662a, + 0x662b, 0x662c, 0x662e, 0x6630, 0x6631, 0x6633, 0x6639, 0x6637, + 0x6640, 0x6645, 0x6646, 0x664a, 0x664c, 0x6651, 0x664e, 0x6657, + 0x6658, 0x6659, 0x665b, 0x665c, 0x6660, 0x6661, 0x66fb, 0x666a, + 0x666b, 0x666c, 0x667e, 0x6673, 0x6675, 0x667f, 0x6677, 0x6678, + 0x6679, 0x667b, 0x6680, 0x667c, 0x668b, 0x668c, 0x668d, 0x6690, + 0x6692, 0x6699, 0x669a, 0x669b, 0x669c, 0x669f, 0x66a0, 0x66a4, + 0x66ad, 0x66b1, 0x66b2, 0x66b5, 0x66bb, 0x66bf, 0x66c0, 0x66c2, + 0x66c3, 0x66c8, 0x66cc, 0x66ce, 0x66cf, 0x66d4, 0x66db, 0x66df, + 0x66e8, 0x66eb, 0x66ec, 0x66ee, 0x66fa, 0x6705, 0x6707, 0x670e, + 0x6713, 0x6719, 0x671c, 0x6720, 0x6722, 0x6733, 0x673e, 0x6745, + 0x6747, 0x6748, 0x674c, 0x6754, 0x6755, 0x675d, + /* 0x43 */ + 0x6766, 0x676c, 0x676e, 0x6774, 0x6776, 0x677b, 0x6781, 0x6784, + 0x678e, 0x678f, 0x6791, 0x6793, 0x6796, 0x6798, 0x6799, 0x679b, + 0x67b0, 0x67b1, 0x67b2, 0x67b5, 0x67bb, 0x67bc, 0x67bd, 0x67f9, + 0x67c0, 0x67c2, 0x67c3, 0x67c5, 0x67c8, 0x67c9, 0x67d2, 0x67d7, + 0x67d9, 0x67dc, 0x67e1, 0x67e6, 0x67f0, 0x67f2, 0x67f6, 0x67f7, + 0x6852, 0x6814, 0x6819, 0x681d, 0x681f, 0x6828, 0x6827, 0x682c, + 0x682d, 0x682f, 0x6830, 0x6831, 0x6833, 0x683b, 0x683f, 0x6844, + 0x6845, 0x684a, 0x684c, 0x6855, 0x6857, 0x6858, 0x685b, 0x686b, + 0x686e, 0x686f, 0x6870, 0x6871, 0x6872, 0x6875, 0x6879, 0x687a, + 0x687b, 0x687c, 0x6882, 0x6884, 0x6886, 0x6888, 0x6896, 0x6898, + 0x689a, 0x689c, 0x68a1, 0x68a3, 0x68a5, 0x68a9, 0x68aa, 0x68ae, + 0x68b2, 0x68bb, 0x68c5, 0x68c8, 0x68cc, 0x68cf, + /* 0x44 */ + 0x68d0, 0x68d1, 0x68d3, 0x68d6, 0x68d9, 0x68dc, 0x68dd, 0x68e5, + 0x68e8, 0x68ea, 0x68eb, 0x68ec, 0x68ed, 0x68f0, 0x68f1, 0x68f5, + 0x68f6, 0x68fb, 0x68fc, 0x68fd, 0x6906, 0x6909, 0x690a, 0x6910, + 0x6911, 0x6913, 0x6916, 0x6917, 0x6931, 0x6933, 0x6935, 0x6938, + 0x693b, 0x6942, 0x6945, 0x6949, 0x694e, 0x6957, 0x695b, 0x6963, + 0x6964, 0x6965, 0x6966, 0x6968, 0x6969, 0x696c, 0x6970, 0x6971, + 0x6972, 0x697a, 0x697b, 0x697f, 0x6980, 0x698d, 0x6992, 0x6996, + 0x6998, 0x69a1, 0x69a5, 0x69a6, 0x69a8, 0x69ab, 0x69ad, 0x69af, + 0x69b7, 0x69b8, 0x69ba, 0x69bc, 0x69c5, 0x69c8, 0x69d1, 0x69d6, + 0x69d7, 0x69e2, 0x69e5, 0x69ee, 0x69ef, 0x69f1, 0x69f3, 0x69f5, + 0x69fe, 0x6a00, 0x6a01, 0x6a03, 0x6a0f, 0x6a11, 0x6a15, 0x6a1a, + 0x6a1d, 0x6a20, 0x6a24, 0x6a28, 0x6a30, 0x6a32, + /* 0x45 */ + 0x6a34, 0x6a37, 0x6a3b, 0x6a3e, 0x6a3f, 0x6a45, 0x6a46, 0x6a49, + 0x6a4a, 0x6a4e, 0x6a50, 0x6a51, 0x6a52, 0x6a55, 0x6a56, 0x6a5b, + 0x6a64, 0x6a67, 0x6a6a, 0x6a71, 0x6a73, 0x6a7e, 0x6a81, 0x6a83, + 0x6a86, 0x6a87, 0x6a89, 0x6a8b, 0x6a91, 0x6a9b, 0x6a9d, 0x6a9e, + 0x6a9f, 0x6aa5, 0x6aab, 0x6aaf, 0x6ab0, 0x6ab1, 0x6ab4, 0x6abd, + 0x6abe, 0x6abf, 0x6ac6, 0x6ac9, 0x6ac8, 0x6acc, 0x6ad0, 0x6ad4, + 0x6ad5, 0x6ad6, 0x6adc, 0x6add, 0x6ae4, 0x6ae7, 0x6aec, 0x6af0, + 0x6af1, 0x6af2, 0x6afc, 0x6afd, 0x6b02, 0x6b03, 0x6b06, 0x6b07, + 0x6b09, 0x6b0f, 0x6b10, 0x6b11, 0x6b17, 0x6b1b, 0x6b1e, 0x6b24, + 0x6b28, 0x6b2b, 0x6b2c, 0x6b2f, 0x6b35, 0x6b36, 0x6b3b, 0x6b3f, + 0x6b46, 0x6b4a, 0x6b4d, 0x6b52, 0x6b56, 0x6b58, 0x6b5d, 0x6b60, + 0x6b67, 0x6b6b, 0x6b6e, 0x6b70, 0x6b75, 0x6b7d, + /* 0x46 */ + 0x6b7e, 0x6b82, 0x6b85, 0x6b97, 0x6b9b, 0x6b9f, 0x6ba0, 0x6ba2, + 0x6ba3, 0x6ba8, 0x6ba9, 0x6bac, 0x6bad, 0x6bae, 0x6bb0, 0x6bb8, + 0x6bb9, 0x6bbd, 0x6bbe, 0x6bc3, 0x6bc4, 0x6bc9, 0x6bcc, 0x6bd6, + 0x6bda, 0x6be1, 0x6be3, 0x6be6, 0x6be7, 0x6bee, 0x6bf1, 0x6bf7, + 0x6bf9, 0x6bff, 0x6c02, 0x6c04, 0x6c05, 0x6c09, 0x6c0d, 0x6c0e, + 0x6c10, 0x6c12, 0x6c19, 0x6c1f, 0x6c26, 0x6c27, 0x6c28, 0x6c2c, + 0x6c2e, 0x6c33, 0x6c35, 0x6c36, 0x6c3a, 0x6c3b, 0x6c3f, 0x6c4a, + 0x6c4b, 0x6c4d, 0x6c4f, 0x6c52, 0x6c54, 0x6c59, 0x6c5b, 0x6c5c, + 0x6c6b, 0x6c6d, 0x6c6f, 0x6c74, 0x6c76, 0x6c78, 0x6c79, 0x6c7b, + 0x6c85, 0x6c86, 0x6c87, 0x6c89, 0x6c94, 0x6c95, 0x6c97, 0x6c98, + 0x6c9c, 0x6c9f, 0x6cb0, 0x6cb2, 0x6cb4, 0x6cc2, 0x6cc6, 0x6ccd, + 0x6ccf, 0x6cd0, 0x6cd1, 0x6cd2, 0x6cd4, 0x6cd6, + /* 0x47 */ + 0x6cda, 0x6cdc, 0x6ce0, 0x6ce7, 0x6ce9, 0x6ceb, 0x6cec, 0x6cee, + 0x6cf2, 0x6cf4, 0x6d04, 0x6d07, 0x6d0a, 0x6d0e, 0x6d0f, 0x6d11, + 0x6d13, 0x6d1a, 0x6d26, 0x6d27, 0x6d28, 0x6c67, 0x6d2e, 0x6d2f, + 0x6d31, 0x6d39, 0x6d3c, 0x6d3f, 0x6d57, 0x6d5e, 0x6d5f, 0x6d61, + 0x6d65, 0x6d67, 0x6d6f, 0x6d70, 0x6d7c, 0x6d82, 0x6d87, 0x6d91, + 0x6d92, 0x6d94, 0x6d96, 0x6d97, 0x6d98, 0x6daa, 0x6dac, 0x6db4, + 0x6db7, 0x6db9, 0x6dbd, 0x6dbf, 0x6dc4, 0x6dc8, 0x6dca, 0x6dce, + 0x6dcf, 0x6dd6, 0x6ddb, 0x6ddd, 0x6ddf, 0x6de0, 0x6de2, 0x6de5, + 0x6de9, 0x6def, 0x6df0, 0x6df4, 0x6df6, 0x6dfc, 0x6e00, 0x6e04, + 0x6e1e, 0x6e22, 0x6e27, 0x6e32, 0x6e36, 0x6e39, 0x6e3b, 0x6e3c, + 0x6e44, 0x6e45, 0x6e48, 0x6e49, 0x6e4b, 0x6e4f, 0x6e51, 0x6e52, + 0x6e53, 0x6e54, 0x6e57, 0x6e5c, 0x6e5d, 0x6e5e, + /* 0x48 */ + 0x6e62, 0x6e63, 0x6e68, 0x6e73, 0x6e7b, 0x6e7d, 0x6e8d, 0x6e93, + 0x6e99, 0x6ea0, 0x6ea7, 0x6ead, 0x6eae, 0x6eb1, 0x6eb3, 0x6ebb, + 0x6ebf, 0x6ec0, 0x6ec1, 0x6ec3, 0x6ec7, 0x6ec8, 0x6eca, 0x6ecd, + 0x6ece, 0x6ecf, 0x6eeb, 0x6eed, 0x6eee, 0x6ef9, 0x6efb, 0x6efd, + 0x6f04, 0x6f08, 0x6f0a, 0x6f0c, 0x6f0d, 0x6f16, 0x6f18, 0x6f1a, + 0x6f1b, 0x6f26, 0x6f29, 0x6f2a, 0x6f2f, 0x6f30, 0x6f33, 0x6f36, + 0x6f3b, 0x6f3c, 0x6f2d, 0x6f4f, 0x6f51, 0x6f52, 0x6f53, 0x6f57, + 0x6f59, 0x6f5a, 0x6f5d, 0x6f5e, 0x6f61, 0x6f62, 0x6f68, 0x6f6c, + 0x6f7d, 0x6f7e, 0x6f83, 0x6f87, 0x6f88, 0x6f8b, 0x6f8c, 0x6f8d, + 0x6f90, 0x6f92, 0x6f93, 0x6f94, 0x6f96, 0x6f9a, 0x6f9f, 0x6fa0, + 0x6fa5, 0x6fa6, 0x6fa7, 0x6fa8, 0x6fae, 0x6faf, 0x6fb0, 0x6fb5, + 0x6fb6, 0x6fbc, 0x6fc5, 0x6fc7, 0x6fc8, 0x6fca, + /* 0x49 */ + 0x6fda, 0x6fde, 0x6fe8, 0x6fe9, 0x6ff0, 0x6ff5, 0x6ff9, 0x6ffc, + 0x6ffd, 0x7000, 0x7005, 0x7006, 0x7007, 0x700d, 0x7017, 0x7020, + 0x7023, 0x702f, 0x7034, 0x7037, 0x7039, 0x703c, 0x7043, 0x7044, + 0x7048, 0x7049, 0x704a, 0x704b, 0x7054, 0x7055, 0x705d, 0x705e, + 0x704e, 0x7064, 0x7065, 0x706c, 0x706e, 0x7075, 0x7076, 0x707e, + 0x7081, 0x7085, 0x7086, 0x7094, 0x7095, 0x7096, 0x7097, 0x7098, + 0x709b, 0x70a4, 0x70ab, 0x70b0, 0x70b1, 0x70b4, 0x70b7, 0x70ca, + 0x70d1, 0x70d3, 0x70d4, 0x70d5, 0x70d6, 0x70d8, 0x70dc, 0x70e4, + 0x70fa, 0x7103, 0x7104, 0x7105, 0x7106, 0x7107, 0x710b, 0x710c, + 0x710f, 0x711e, 0x7120, 0x712b, 0x712d, 0x712f, 0x7130, 0x7131, + 0x7138, 0x7141, 0x7145, 0x7146, 0x7147, 0x714a, 0x714b, 0x7150, + 0x7152, 0x7157, 0x715a, 0x715c, 0x715e, 0x7160, + /* 0x4a */ + 0x7168, 0x7179, 0x7180, 0x7185, 0x7187, 0x718c, 0x7192, 0x719a, + 0x719b, 0x71a0, 0x71a2, 0x71af, 0x71b0, 0x71b2, 0x71b3, 0x71ba, + 0x71bf, 0x71c0, 0x71c1, 0x71c4, 0x71cb, 0x71cc, 0x71d3, 0x71d6, + 0x71d9, 0x71da, 0x71dc, 0x71f8, 0x71fe, 0x7200, 0x7207, 0x7208, + 0x7209, 0x7213, 0x7217, 0x721a, 0x721d, 0x721f, 0x7224, 0x722b, + 0x722f, 0x7234, 0x7238, 0x7239, 0x7241, 0x7242, 0x7243, 0x7245, + 0x724e, 0x724f, 0x7250, 0x7253, 0x7255, 0x7256, 0x725a, 0x725c, + 0x725e, 0x7260, 0x7263, 0x7268, 0x726b, 0x726e, 0x726f, 0x7271, + 0x7277, 0x7278, 0x727b, 0x727c, 0x727f, 0x7284, 0x7289, 0x728d, + 0x728e, 0x7293, 0x729b, 0x72a8, 0x72ad, 0x72ae, 0x72b1, 0x72b4, + 0x72be, 0x72c1, 0x72c7, 0x72c9, 0x72cc, 0x72d5, 0x72d6, 0x72d8, + 0x72df, 0x72e5, 0x72f3, 0x72f4, 0x72fa, 0x72fb, + /* 0x4b */ + 0x72fe, 0x7302, 0x7304, 0x7305, 0x7307, 0x730b, 0x730d, 0x7312, + 0x7313, 0x7318, 0x7319, 0x731e, 0x7322, 0x7324, 0x7327, 0x7328, + 0x732c, 0x7331, 0x7332, 0x7335, 0x733a, 0x733b, 0x733d, 0x7343, + 0x734d, 0x7350, 0x7352, 0x7356, 0x7358, 0x735d, 0x735e, 0x735f, + 0x7360, 0x7366, 0x7367, 0x7369, 0x736b, 0x736c, 0x736e, 0x736f, + 0x7371, 0x7377, 0x7379, 0x737c, 0x7380, 0x7381, 0x7383, 0x7385, + 0x7386, 0x738e, 0x7390, 0x7393, 0x7395, 0x7397, 0x7398, 0x739c, + 0x739e, 0x739f, 0x73a0, 0x73a2, 0x73a5, 0x73a6, 0x73aa, 0x73ab, + 0x73ad, 0x73b5, 0x73b7, 0x73b9, 0x73bc, 0x73bd, 0x73bf, 0x73c5, + 0x73c6, 0x73c9, 0x73cb, 0x73cc, 0x73cf, 0x73d2, 0x73d3, 0x73d6, + 0x73d9, 0x73dd, 0x73e1, 0x73e3, 0x73e6, 0x73e7, 0x73e9, 0x73f4, + 0x73f5, 0x73f7, 0x73f9, 0x73fa, 0x73fb, 0x73fd, + /* 0x4c */ + 0x73ff, 0x7400, 0x7401, 0x7404, 0x7407, 0x740a, 0x7411, 0x741a, + 0x741b, 0x7424, 0x7426, 0x7428, 0x7429, 0x742a, 0x742b, 0x742c, + 0x742d, 0x742e, 0x742f, 0x7430, 0x7431, 0x7439, 0x7440, 0x7443, + 0x7444, 0x7446, 0x7447, 0x744b, 0x744d, 0x7451, 0x7452, 0x7457, + 0x745d, 0x7462, 0x7466, 0x7467, 0x7468, 0x746b, 0x746d, 0x746e, + 0x7471, 0x7472, 0x7480, 0x7481, 0x7485, 0x7486, 0x7487, 0x7489, + 0x748f, 0x7490, 0x7491, 0x7492, 0x7498, 0x7499, 0x749a, 0x749c, + 0x749f, 0x74a0, 0x74a1, 0x74a3, 0x74a6, 0x74a8, 0x74a9, 0x74aa, + 0x74ab, 0x74ae, 0x74af, 0x74b1, 0x74b2, 0x74b5, 0x74b9, 0x74bb, + 0x74bf, 0x74c8, 0x74c9, 0x74cc, 0x74d0, 0x74d3, 0x74d8, 0x74da, + 0x74db, 0x74de, 0x74df, 0x74e4, 0x74e8, 0x74ea, 0x74eb, 0x74ef, + 0x74f4, 0x74fa, 0x74fb, 0x74fc, 0x74ff, 0x7506, + /* 0x4d */ + 0x7512, 0x7516, 0x7517, 0x7520, 0x7521, 0x7524, 0x7527, 0x7529, + 0x752a, 0x752f, 0x7536, 0x7539, 0x753d, 0x753e, 0x753f, 0x7540, + 0x7543, 0x7547, 0x7548, 0x754e, 0x7550, 0x7552, 0x7557, 0x755e, + 0x755f, 0x7561, 0x756f, 0x7571, 0x7579, 0x757a, 0x757b, 0x757c, + 0x757d, 0x757e, 0x7581, 0x7585, 0x7590, 0x7592, 0x7593, 0x7595, + 0x7599, 0x759c, 0x75a2, 0x75a4, 0x75b4, 0x75ba, 0x75bf, 0x75c0, + 0x75c1, 0x75c4, 0x75c6, 0x75cc, 0x75ce, 0x75cf, 0x75d7, 0x75dc, + 0x75df, 0x75e0, 0x75e1, 0x75e4, 0x75e7, 0x75ec, 0x75ee, 0x75ef, + 0x75f1, 0x75f9, 0x7600, 0x7602, 0x7603, 0x7604, 0x7607, 0x7608, + 0x760a, 0x760c, 0x760f, 0x7612, 0x7613, 0x7615, 0x7616, 0x7619, + 0x761b, 0x761c, 0x761d, 0x761e, 0x7623, 0x7625, 0x7626, 0x7629, + 0x762d, 0x7632, 0x7633, 0x7635, 0x7638, 0x7639, + /* 0x4e */ + 0x763a, 0x763c, 0x764a, 0x7640, 0x7641, 0x7643, 0x7644, 0x7645, + 0x7649, 0x764b, 0x7655, 0x7659, 0x765f, 0x7664, 0x7665, 0x766d, + 0x766e, 0x766f, 0x7671, 0x7674, 0x7681, 0x7685, 0x768c, 0x768d, + 0x7695, 0x769b, 0x769c, 0x769d, 0x769f, 0x76a0, 0x76a2, 0x76a3, + 0x76a4, 0x76a5, 0x76a6, 0x76a7, 0x76a8, 0x76aa, 0x76ad, 0x76bd, + 0x76c1, 0x76c5, 0x76c9, 0x76cb, 0x76cc, 0x76ce, 0x76d4, 0x76d9, + 0x76e0, 0x76e6, 0x76e8, 0x76ec, 0x76f0, 0x76f1, 0x76f6, 0x76f9, + 0x76fc, 0x7700, 0x7706, 0x770a, 0x770e, 0x7712, 0x7714, 0x7715, + 0x7717, 0x7719, 0x771a, 0x771c, 0x7722, 0x7728, 0x772d, 0x772e, + 0x772f, 0x7734, 0x7735, 0x7736, 0x7739, 0x773d, 0x773e, 0x7742, + 0x7745, 0x7746, 0x774a, 0x774d, 0x774e, 0x774f, 0x7752, 0x7756, + 0x7757, 0x775c, 0x775e, 0x775f, 0x7760, 0x7762, + /* 0x4f */ + 0x7764, 0x7767, 0x776a, 0x776c, 0x7770, 0x7772, 0x7773, 0x7774, + 0x777a, 0x777d, 0x7780, 0x7784, 0x778c, 0x778d, 0x7794, 0x7795, + 0x7796, 0x779a, 0x779f, 0x77a2, 0x77a7, 0x77aa, 0x77ae, 0x77af, + 0x77b1, 0x77b5, 0x77be, 0x77c3, 0x77c9, 0x77d1, 0x77d2, 0x77d5, + 0x77d9, 0x77de, 0x77df, 0x77e0, 0x77e4, 0x77e6, 0x77ea, 0x77ec, + 0x77f0, 0x77f1, 0x77f4, 0x77f8, 0x77fb, 0x7805, 0x7806, 0x7809, + 0x780d, 0x780e, 0x7811, 0x781d, 0x7821, 0x7822, 0x7823, 0x782d, + 0x782e, 0x7830, 0x7835, 0x7837, 0x7843, 0x7844, 0x7847, 0x7848, + 0x784c, 0x784e, 0x7852, 0x785c, 0x785e, 0x7860, 0x7861, 0x7863, + 0x7864, 0x7868, 0x786a, 0x786e, 0x787a, 0x787e, 0x788a, 0x788f, + 0x7894, 0x7898, 0x78a1, 0x789d, 0x789e, 0x789f, 0x78a4, 0x78a8, + 0x78ac, 0x78ad, 0x78b0, 0x78b1, 0x78b2, 0x78b3, + /* 0x50 */ + 0x78bb, 0x78bd, 0x78bf, 0x78c7, 0x78c8, 0x78c9, 0x78cc, 0x78ce, + 0x78d2, 0x78d3, 0x78d5, 0x78d6, 0x78e4, 0x78db, 0x78df, 0x78e0, + 0x78e1, 0x78e6, 0x78ea, 0x78f2, 0x78f3, 0x7900, 0x78f6, 0x78f7, + 0x78fa, 0x78fb, 0x78ff, 0x7906, 0x790c, 0x7910, 0x791a, 0x791c, + 0x791e, 0x791f, 0x7920, 0x7925, 0x7927, 0x7929, 0x792d, 0x7931, + 0x7934, 0x7935, 0x793b, 0x793d, 0x793f, 0x7944, 0x7945, 0x7946, + 0x794a, 0x794b, 0x794f, 0x7951, 0x7954, 0x7958, 0x795b, 0x795c, + 0x7967, 0x7969, 0x796b, 0x7972, 0x7979, 0x797b, 0x797c, 0x797e, + 0x798b, 0x798c, 0x7991, 0x7993, 0x7994, 0x7995, 0x7996, 0x7998, + 0x799b, 0x799c, 0x79a1, 0x79a8, 0x79a9, 0x79ab, 0x79af, 0x79b1, + 0x79b4, 0x79b8, 0x79bb, 0x79c2, 0x79c4, 0x79c7, 0x79c8, 0x79ca, + 0x79cf, 0x79d4, 0x79d6, 0x79da, 0x79dd, 0x79de, + /* 0x51 */ + 0x79e0, 0x79e2, 0x79e5, 0x79ea, 0x79eb, 0x79ed, 0x79f1, 0x79f8, + 0x79fc, 0x7a02, 0x7a03, 0x7a07, 0x7a09, 0x7a0a, 0x7a0c, 0x7a11, + 0x7a15, 0x7a1b, 0x7a1e, 0x7a21, 0x7a27, 0x7a2b, 0x7a2d, 0x7a2f, + 0x7a30, 0x7a34, 0x7a35, 0x7a38, 0x7a39, 0x7a3a, 0x7a44, 0x7a45, + 0x7a47, 0x7a48, 0x7a4c, 0x7a55, 0x7a56, 0x7a59, 0x7a5c, 0x7a5d, + 0x7a5f, 0x7a60, 0x7a65, 0x7a67, 0x7a6a, 0x7a6d, 0x7a75, 0x7a78, + 0x7a7e, 0x7a80, 0x7a82, 0x7a85, 0x7a86, 0x7a8a, 0x7a8b, 0x7a90, + 0x7a91, 0x7a94, 0x7a9e, 0x7aa0, 0x7aa3, 0x7aac, 0x7ab3, 0x7ab5, + 0x7ab9, 0x7abb, 0x7abc, 0x7ac6, 0x7ac9, 0x7acc, 0x7ace, 0x7ad1, + 0x7adb, 0x7ae8, 0x7ae9, 0x7aeb, 0x7aec, 0x7af1, 0x7af4, 0x7afb, + 0x7afd, 0x7afe, 0x7b07, 0x7b14, 0x7b1f, 0x7b23, 0x7b27, 0x7b29, + 0x7b2a, 0x7b2b, 0x7b2d, 0x7b2e, 0x7b2f, 0x7b30, + /* 0x52 */ + 0x7b31, 0x7b34, 0x7b3d, 0x7b3f, 0x7b40, 0x7b41, 0x7b47, 0x7b4e, + 0x7b55, 0x7b60, 0x7b64, 0x7b66, 0x7b69, 0x7b6a, 0x7b6d, 0x7b6f, + 0x7b72, 0x7b73, 0x7b77, 0x7b84, 0x7b89, 0x7b8e, 0x7b90, 0x7b91, + 0x7b96, 0x7b9b, 0x7b9e, 0x7ba0, 0x7ba5, 0x7bac, 0x7baf, 0x7bb0, + 0x7bb2, 0x7bb5, 0x7bb6, 0x7bba, 0x7bbb, 0x7bbc, 0x7bbd, 0x7bc2, + 0x7bc5, 0x7bc8, 0x7bca, 0x7bd4, 0x7bd6, 0x7bd7, 0x7bd9, 0x7bda, + 0x7bdb, 0x7be8, 0x7bea, 0x7bf2, 0x7bf4, 0x7bf5, 0x7bf8, 0x7bf9, + 0x7bfa, 0x7bfc, 0x7bfe, 0x7c01, 0x7c02, 0x7c03, 0x7c04, 0x7c06, + 0x7c09, 0x7c0b, 0x7c0c, 0x7c0e, 0x7c0f, 0x7c19, 0x7c1b, 0x7c20, + 0x7c25, 0x7c26, 0x7c28, 0x7c2c, 0x7c31, 0x7c33, 0x7c34, 0x7c36, + 0x7c39, 0x7c3a, 0x7c46, 0x7c4a, 0x7c55, 0x7c51, 0x7c52, 0x7c53, + 0x7c59, 0x7c5a, 0x7c5b, 0x7c5c, 0x7c5d, 0x7c5e, + /* 0x53 */ + 0x7c61, 0x7c63, 0x7c67, 0x7c69, 0x7c6d, 0x7c6e, 0x7c70, 0x7c72, + 0x7c79, 0x7c7c, 0x7c7d, 0x7c86, 0x7c87, 0x7c8f, 0x7c94, 0x7c9e, + 0x7ca0, 0x7ca6, 0x7cb0, 0x7cb6, 0x7cb7, 0x7cba, 0x7cbb, 0x7cbc, + 0x7cbf, 0x7cc4, 0x7cc7, 0x7cc8, 0x7cc9, 0x7ccd, 0x7ccf, 0x7cd3, + 0x7cd4, 0x7cd5, 0x7cd7, 0x7cd9, 0x7cda, 0x7cdd, 0x7ce6, 0x7ce9, + 0x7ceb, 0x7cf5, 0x7d03, 0x7d07, 0x7d08, 0x7d09, 0x7d0f, 0x7d11, + 0x7d12, 0x7d13, 0x7d16, 0x7d1d, 0x7d1e, 0x7d23, 0x7d26, 0x7d2a, + 0x7d2d, 0x7d31, 0x7d3c, 0x7d3d, 0x7d3e, 0x7d40, 0x7d41, 0x7d47, + 0x7d48, 0x7d4d, 0x7d51, 0x7d53, 0x7d57, 0x7d59, 0x7d5a, 0x7d5c, + 0x7d5d, 0x7d65, 0x7d67, 0x7d6a, 0x7d70, 0x7d78, 0x7d7a, 0x7d7b, + 0x7d7f, 0x7d81, 0x7d82, 0x7d83, 0x7d85, 0x7d86, 0x7d88, 0x7d8b, + 0x7d8c, 0x7d8d, 0x7d91, 0x7d96, 0x7d97, 0x7d9d, + /* 0x54 */ + 0x7d9e, 0x7da6, 0x7da7, 0x7daa, 0x7db3, 0x7db6, 0x7db7, 0x7db9, + 0x7dc2, 0x7dc3, 0x7dc4, 0x7dc5, 0x7dc6, 0x7dcc, 0x7dcd, 0x7dce, + 0x7dd7, 0x7dd9, 0x7e00, 0x7de2, 0x7de5, 0x7de6, 0x7dea, 0x7deb, + 0x7ded, 0x7df1, 0x7df5, 0x7df6, 0x7df9, 0x7dfa, 0x7e08, 0x7e10, + 0x7e11, 0x7e15, 0x7e17, 0x7e1c, 0x7e1d, 0x7e20, 0x7e27, 0x7e28, + 0x7e2c, 0x7e2d, 0x7e2f, 0x7e33, 0x7e36, 0x7e3f, 0x7e44, 0x7e45, + 0x7e47, 0x7e4e, 0x7e50, 0x7e52, 0x7e58, 0x7e5f, 0x7e61, 0x7e62, + 0x7e65, 0x7e6b, 0x7e6e, 0x7e6f, 0x7e73, 0x7e78, 0x7e7e, 0x7e81, + 0x7e86, 0x7e87, 0x7e8a, 0x7e8d, 0x7e91, 0x7e95, 0x7e98, 0x7e9a, + 0x7e9d, 0x7e9e, 0x7f3c, 0x7f3b, 0x7f3d, 0x7f3e, 0x7f3f, 0x7f43, + 0x7f44, 0x7f47, 0x7f4f, 0x7f52, 0x7f53, 0x7f5b, 0x7f5c, 0x7f5d, + 0x7f61, 0x7f63, 0x7f64, 0x7f65, 0x7f66, 0x7f6d, + /* 0x55 */ + 0x7f71, 0x7f7d, 0x7f7e, 0x7f7f, 0x7f80, 0x7f8b, 0x7f8d, 0x7f8f, + 0x7f90, 0x7f91, 0x7f96, 0x7f97, 0x7f9c, 0x7fa1, 0x7fa2, 0x7fa6, + 0x7faa, 0x7fad, 0x7fb4, 0x7fbc, 0x7fbf, 0x7fc0, 0x7fc3, 0x7fc8, + 0x7fce, 0x7fcf, 0x7fdb, 0x7fdf, 0x7fe3, 0x7fe5, 0x7fe8, 0x7fec, + 0x7fee, 0x7fef, 0x7ff2, 0x7ffa, 0x7ffd, 0x7ffe, 0x7fff, 0x8007, + 0x8008, 0x800a, 0x800d, 0x800e, 0x800f, 0x8011, 0x8013, 0x8014, + 0x8016, 0x801d, 0x801e, 0x801f, 0x8020, 0x8024, 0x8026, 0x802c, + 0x802e, 0x8030, 0x8034, 0x8035, 0x8037, 0x8039, 0x803a, 0x803c, + 0x803e, 0x8040, 0x8044, 0x8060, 0x8064, 0x8066, 0x806d, 0x8071, + 0x8075, 0x8081, 0x8088, 0x808e, 0x809c, 0x809e, 0x80a6, 0x80a7, + 0x80ab, 0x80b8, 0x80b9, 0x80c8, 0x80cd, 0x80cf, 0x80d2, 0x80d4, + 0x80d5, 0x80d7, 0x80d8, 0x80e0, 0x80ed, 0x80ee, + /* 0x56 */ + 0x80f0, 0x80f2, 0x80f3, 0x80f6, 0x80f9, 0x80fa, 0x80fe, 0x8103, + 0x810b, 0x8116, 0x8117, 0x8118, 0x811c, 0x811e, 0x8120, 0x8124, + 0x8127, 0x812c, 0x8130, 0x8135, 0x813a, 0x813c, 0x8145, 0x8147, + 0x814a, 0x814c, 0x8152, 0x8157, 0x8160, 0x8161, 0x8167, 0x8168, + 0x8169, 0x816d, 0x816f, 0x8177, 0x8181, 0x8190, 0x8184, 0x8185, + 0x8186, 0x818b, 0x818e, 0x8196, 0x8198, 0x819b, 0x819e, 0x81a2, + 0x81ae, 0x81b2, 0x81b4, 0x81bb, 0x81cb, 0x81c3, 0x81c5, 0x81ca, + 0x81ce, 0x81cf, 0x81d5, 0x81d7, 0x81db, 0x81dd, 0x81de, 0x81e1, + 0x81e4, 0x81eb, 0x81ec, 0x81f0, 0x81f1, 0x81f2, 0x81f5, 0x81f6, + 0x81f8, 0x81f9, 0x81fd, 0x81ff, 0x8200, 0x8203, 0x820f, 0x8213, + 0x8214, 0x8219, 0x821a, 0x821d, 0x8221, 0x8222, 0x8228, 0x8232, + 0x8234, 0x823a, 0x8243, 0x8244, 0x8245, 0x8246, + /* 0x57 */ + 0x824b, 0x824e, 0x824f, 0x8251, 0x8256, 0x825c, 0x8260, 0x8263, + 0x8267, 0x826d, 0x8274, 0x827b, 0x827d, 0x827f, 0x8280, 0x8281, + 0x8283, 0x8284, 0x8287, 0x8289, 0x828a, 0x828e, 0x8291, 0x8294, + 0x8296, 0x8298, 0x829a, 0x829b, 0x82a0, 0x82a1, 0x82a3, 0x82a4, + 0x82a7, 0x82a8, 0x82a9, 0x82aa, 0x82ae, 0x82b0, 0x82b2, 0x82b4, + 0x82b7, 0x82ba, 0x82bc, 0x82be, 0x82bf, 0x82c6, 0x82d0, 0x82d5, + 0x82da, 0x82e0, 0x82e2, 0x82e4, 0x82e8, 0x82ea, 0x82ed, 0x82ef, + 0x82f6, 0x82f7, 0x82fd, 0x82fe, 0x8300, 0x8301, 0x8307, 0x8308, + 0x830a, 0x830b, 0x8354, 0x831b, 0x831d, 0x831e, 0x831f, 0x8321, + 0x8322, 0x832c, 0x832d, 0x832e, 0x8330, 0x8333, 0x8337, 0x833a, + 0x833c, 0x833d, 0x8342, 0x8343, 0x8344, 0x8347, 0x834d, 0x834e, + 0x8351, 0x8355, 0x8356, 0x8357, 0x8370, 0x8378, + /* 0x58 */ + 0x837d, 0x837f, 0x8380, 0x8382, 0x8384, 0x8386, 0x838d, 0x8392, + 0x8394, 0x8395, 0x8398, 0x8399, 0x839b, 0x839c, 0x839d, 0x83a6, + 0x83a7, 0x83a9, 0x83ac, 0x83be, 0x83bf, 0x83c0, 0x83c7, 0x83c9, + 0x83cf, 0x83d0, 0x83d1, 0x83d4, 0x83dd, 0x8353, 0x83e8, 0x83ea, + 0x83f6, 0x83f8, 0x83f9, 0x83fc, 0x8401, 0x8406, 0x840a, 0x840f, + 0x8411, 0x8415, 0x8419, 0x83ad, 0x842f, 0x8439, 0x8445, 0x8447, + 0x8448, 0x844a, 0x844d, 0x844f, 0x8451, 0x8452, 0x8456, 0x8458, + 0x8459, 0x845a, 0x845c, 0x8460, 0x8464, 0x8465, 0x8467, 0x846a, + 0x8470, 0x8473, 0x8474, 0x8476, 0x8478, 0x847c, 0x847d, 0x8481, + 0x8485, 0x8492, 0x8493, 0x8495, 0x849e, 0x84a6, 0x84a8, 0x84a9, + 0x84aa, 0x84af, 0x84b1, 0x84b4, 0x84ba, 0x84bd, 0x84be, 0x84c0, + 0x84c2, 0x84c7, 0x84c8, 0x84cc, 0x84cf, 0x84d3, + /* 0x59 */ + 0x84dc, 0x84e7, 0x84ea, 0x84ef, 0x84f0, 0x84f1, 0x84f2, 0x84f7, + 0x8532, 0x84fa, 0x84fb, 0x84fd, 0x8502, 0x8503, 0x8507, 0x850c, + 0x850e, 0x8510, 0x851c, 0x851e, 0x8522, 0x8523, 0x8524, 0x8525, + 0x8527, 0x852a, 0x852b, 0x852f, 0x8533, 0x8534, 0x8536, 0x853f, + 0x8546, 0x854f, 0x8550, 0x8551, 0x8552, 0x8553, 0x8556, 0x8559, + 0x855c, 0x855d, 0x855e, 0x855f, 0x8560, 0x8561, 0x8562, 0x8564, + 0x856b, 0x856f, 0x8579, 0x857a, 0x857b, 0x857d, 0x857f, 0x8581, + 0x8585, 0x8586, 0x8589, 0x858b, 0x858c, 0x858f, 0x8593, 0x8598, + 0x859d, 0x859f, 0x85a0, 0x85a2, 0x85a5, 0x85a7, 0x85b4, 0x85b6, + 0x85b7, 0x85b8, 0x85bc, 0x85bd, 0x85be, 0x85bf, 0x85c2, 0x85c7, + 0x85ca, 0x85cb, 0x85ce, 0x85ad, 0x85d8, 0x85da, 0x85df, 0x85e0, + 0x85e6, 0x85e8, 0x85ed, 0x85f3, 0x85f6, 0x85fc, + /* 0x5a */ + 0x85ff, 0x8600, 0x8604, 0x8605, 0x860d, 0x860e, 0x8610, 0x8611, + 0x8612, 0x8618, 0x8619, 0x861b, 0x861e, 0x8621, 0x8627, 0x8629, + 0x8636, 0x8638, 0x863a, 0x863c, 0x863d, 0x8640, 0x8642, 0x8646, + 0x8652, 0x8653, 0x8656, 0x8657, 0x8658, 0x8659, 0x865d, 0x8660, + 0x8661, 0x8662, 0x8663, 0x8664, 0x8669, 0x866c, 0x866f, 0x8675, + 0x8676, 0x8677, 0x867a, 0x868d, 0x8691, 0x8696, 0x8698, 0x869a, + 0x869c, 0x86a1, 0x86a6, 0x86a7, 0x86a8, 0x86ad, 0x86b1, 0x86b3, + 0x86b4, 0x86b5, 0x86b7, 0x86b8, 0x86b9, 0x86bf, 0x86c0, 0x86c1, + 0x86c3, 0x86c5, 0x86d1, 0x86d2, 0x86d5, 0x86d7, 0x86da, 0x86dc, + 0x86e0, 0x86e3, 0x86e5, 0x86e7, 0x8688, 0x86fa, 0x86fc, 0x86fd, + 0x8704, 0x8705, 0x8707, 0x870b, 0x870e, 0x870f, 0x8710, 0x8713, + 0x8714, 0x8719, 0x871e, 0x871f, 0x8721, 0x8723, + /* 0x5b */ + 0x8728, 0x872e, 0x872f, 0x8731, 0x8732, 0x8739, 0x873a, 0x873c, + 0x873d, 0x873e, 0x8740, 0x8743, 0x8745, 0x874d, 0x8758, 0x875d, + 0x8761, 0x8764, 0x8765, 0x876f, 0x8771, 0x8772, 0x877b, 0x8783, + 0x8784, 0x8785, 0x8786, 0x8787, 0x8788, 0x8789, 0x878b, 0x878c, + 0x8790, 0x8793, 0x8795, 0x8797, 0x8798, 0x8799, 0x879e, 0x87a0, + 0x87a3, 0x87a7, 0x87ac, 0x87ad, 0x87ae, 0x87b1, 0x87b5, 0x87be, + 0x87bf, 0x87c1, 0x87c8, 0x87c9, 0x87ca, 0x87ce, 0x87d5, 0x87d6, + 0x87d9, 0x87da, 0x87dc, 0x87df, 0x87e2, 0x87e3, 0x87e4, 0x87ea, + 0x87eb, 0x87ed, 0x87f1, 0x87f3, 0x87f8, 0x87fa, 0x87ff, 0x8801, + 0x8803, 0x8806, 0x8809, 0x880a, 0x880b, 0x8810, 0x8819, 0x8812, + 0x8813, 0x8814, 0x8818, 0x881a, 0x881b, 0x881c, 0x881e, 0x881f, + 0x8828, 0x882d, 0x882e, 0x8830, 0x8832, 0x8835, + /* 0x5c */ + 0x883a, 0x883c, 0x8841, 0x8843, 0x8845, 0x8848, 0x8849, 0x884a, + 0x884b, 0x884e, 0x8851, 0x8855, 0x8856, 0x8858, 0x885a, 0x885c, + 0x885f, 0x8860, 0x8864, 0x8869, 0x8871, 0x8879, 0x887b, 0x8880, + 0x8898, 0x889a, 0x889b, 0x889c, 0x889f, 0x88a0, 0x88a8, 0x88aa, + 0x88ba, 0x88bd, 0x88be, 0x88c0, 0x88ca, 0x88cb, 0x88cc, 0x88cd, + 0x88ce, 0x88d1, 0x88d2, 0x88d3, 0x88db, 0x88de, 0x88e7, 0x88ef, + 0x88f0, 0x88f1, 0x88f5, 0x88f7, 0x8901, 0x8906, 0x890d, 0x890e, + 0x890f, 0x8915, 0x8916, 0x8918, 0x8919, 0x891a, 0x891c, 0x8920, + 0x8926, 0x8927, 0x8928, 0x8930, 0x8931, 0x8932, 0x8935, 0x8939, + 0x893a, 0x893e, 0x8940, 0x8942, 0x8945, 0x8946, 0x8949, 0x894f, + 0x8952, 0x8957, 0x895a, 0x895b, 0x895c, 0x8961, 0x8962, 0x8963, + 0x896b, 0x896e, 0x8970, 0x8973, 0x8975, 0x897a, + /* 0x5d */ + 0x897b, 0x897c, 0x897d, 0x8989, 0x898d, 0x8990, 0x8994, 0x8995, + 0x899b, 0x899c, 0x899f, 0x89a0, 0x89a5, 0x89b0, 0x89b4, 0x89b5, + 0x89b6, 0x89b7, 0x89bc, 0x89d4, 0x89d5, 0x89d6, 0x89d7, 0x89d8, + 0x89e5, 0x89e9, 0x89eb, 0x89ed, 0x89f1, 0x89f3, 0x89f6, 0x89f9, + 0x89fd, 0x89ff, 0x8a04, 0x8a05, 0x8a07, 0x8a0f, 0x8a11, 0x8a12, + 0x8a14, 0x8a15, 0x8a1e, 0x8a20, 0x8a22, 0x8a24, 0x8a26, 0x8a2b, + 0x8a2c, 0x8a2f, 0x8a35, 0x8a37, 0x8a3d, 0x8a3e, 0x8a40, 0x8a43, + 0x8a45, 0x8a47, 0x8a49, 0x8a4d, 0x8a4e, 0x8a53, 0x8a56, 0x8a57, + 0x8a58, 0x8a5c, 0x8a5d, 0x8a61, 0x8a65, 0x8a67, 0x8a75, 0x8a76, + 0x8a77, 0x8a79, 0x8a7a, 0x8a7b, 0x8a7e, 0x8a7f, 0x8a80, 0x8a83, + 0x8a86, 0x8a8b, 0x8a8f, 0x8a90, 0x8a92, 0x8a96, 0x8a97, 0x8a99, + 0x8a9f, 0x8aa7, 0x8aa9, 0x8aae, 0x8aaf, 0x8ab3, + /* 0x5e */ + 0x8ab6, 0x8ab7, 0x8abb, 0x8abe, 0x8ac3, 0x8ac6, 0x8ac8, 0x8ac9, + 0x8aca, 0x8ad1, 0x8ad3, 0x8ad4, 0x8ad5, 0x8ad7, 0x8add, 0x8adf, + 0x8aec, 0x8af0, 0x8af4, 0x8af5, 0x8af6, 0x8afc, 0x8aff, 0x8b05, + 0x8b06, 0x8b0b, 0x8b11, 0x8b1c, 0x8b1e, 0x8b1f, 0x8b0a, 0x8b2d, + 0x8b30, 0x8b37, 0x8b3c, 0x8b42, 0x8b43, 0x8b44, 0x8b45, 0x8b46, + 0x8b48, 0x8b52, 0x8b53, 0x8b54, 0x8b59, 0x8b4d, 0x8b5e, 0x8b63, + 0x8b6d, 0x8b76, 0x8b78, 0x8b79, 0x8b7c, 0x8b7e, 0x8b81, 0x8b84, + 0x8b85, 0x8b8b, 0x8b8d, 0x8b8f, 0x8b94, 0x8b95, 0x8b9c, 0x8b9e, + 0x8b9f, 0x8c38, 0x8c39, 0x8c3d, 0x8c3e, 0x8c45, 0x8c47, 0x8c49, + 0x8c4b, 0x8c4f, 0x8c51, 0x8c53, 0x8c54, 0x8c57, 0x8c58, 0x8c5b, + 0x8c5d, 0x8c59, 0x8c63, 0x8c64, 0x8c66, 0x8c68, 0x8c69, 0x8c6d, + 0x8c73, 0x8c75, 0x8c76, 0x8c7b, 0x8c7e, 0x8c86, + /* 0x5f */ + 0x8c87, 0x8c8b, 0x8c90, 0x8c92, 0x8c93, 0x8c99, 0x8c9b, 0x8c9c, + 0x8ca4, 0x8cb9, 0x8cba, 0x8cc5, 0x8cc6, 0x8cc9, 0x8ccb, 0x8ccf, + 0x8cd6, 0x8cd5, 0x8cd9, 0x8cdd, 0x8ce1, 0x8ce8, 0x8cec, 0x8cef, + 0x8cf0, 0x8cf2, 0x8cf5, 0x8cf7, 0x8cf8, 0x8cfe, 0x8cff, 0x8d01, + 0x8d03, 0x8d09, 0x8d12, 0x8d17, 0x8d1b, 0x8d65, 0x8d69, 0x8d6c, + 0x8d6e, 0x8d7f, 0x8d82, 0x8d84, 0x8d88, 0x8d8d, 0x8d90, 0x8d91, + 0x8d95, 0x8d9e, 0x8d9f, 0x8da0, 0x8da6, 0x8dab, 0x8dac, 0x8daf, + 0x8db2, 0x8db5, 0x8db7, 0x8db9, 0x8dbb, 0x8dc0, 0x8dc5, 0x8dc6, + 0x8dc7, 0x8dc8, 0x8dca, 0x8dce, 0x8dd1, 0x8dd4, 0x8dd5, 0x8dd7, + 0x8dd9, 0x8de4, 0x8de5, 0x8de7, 0x8dec, 0x8df0, 0x8dbc, 0x8df1, + 0x8df2, 0x8df4, 0x8dfd, 0x8e01, 0x8e04, 0x8e05, 0x8e06, 0x8e0b, + 0x8e11, 0x8e14, 0x8e16, 0x8e20, 0x8e21, 0x8e22, + /* 0x60 */ + 0x8e23, 0x8e26, 0x8e27, 0x8e31, 0x8e33, 0x8e36, 0x8e37, 0x8e38, + 0x8e39, 0x8e3d, 0x8e40, 0x8e41, 0x8e4b, 0x8e4d, 0x8e4e, 0x8e4f, + 0x8e54, 0x8e5b, 0x8e5c, 0x8e5d, 0x8e5e, 0x8e61, 0x8e62, 0x8e69, + 0x8e6c, 0x8e6d, 0x8e6f, 0x8e70, 0x8e71, 0x8e79, 0x8e7a, 0x8e7b, + 0x8e82, 0x8e83, 0x8e89, 0x8e90, 0x8e92, 0x8e95, 0x8e9a, 0x8e9b, + 0x8e9d, 0x8e9e, 0x8ea2, 0x8ea7, 0x8ea9, 0x8ead, 0x8eae, 0x8eb3, + 0x8eb5, 0x8eba, 0x8ebb, 0x8ec0, 0x8ec1, 0x8ec3, 0x8ec4, 0x8ec7, + 0x8ecf, 0x8ed1, 0x8ed4, 0x8edc, 0x8ee8, 0x8eee, 0x8ef0, 0x8ef1, + 0x8ef7, 0x8ef9, 0x8efa, 0x8eed, 0x8f00, 0x8f02, 0x8f07, 0x8f08, + 0x8f0f, 0x8f10, 0x8f16, 0x8f17, 0x8f18, 0x8f1e, 0x8f20, 0x8f21, + 0x8f23, 0x8f25, 0x8f27, 0x8f28, 0x8f2c, 0x8f2d, 0x8f2e, 0x8f34, + 0x8f35, 0x8f36, 0x8f37, 0x8f3a, 0x8f40, 0x8f41, + /* 0x61 */ + 0x8f43, 0x8f47, 0x8f4f, 0x8f51, 0x8f52, 0x8f53, 0x8f54, 0x8f55, + 0x8f58, 0x8f5d, 0x8f5e, 0x8f65, 0x8f9d, 0x8fa0, 0x8fa1, 0x8fa4, + 0x8fa5, 0x8fa6, 0x8fb5, 0x8fb6, 0x8fb8, 0x8fbe, 0x8fc0, 0x8fc1, + 0x8fc6, 0x8fca, 0x8fcb, 0x8fcd, 0x8fd0, 0x8fd2, 0x8fd3, 0x8fd5, + 0x8fe0, 0x8fe3, 0x8fe4, 0x8fe8, 0x8fee, 0x8ff1, 0x8ff5, 0x8ff6, + 0x8ffb, 0x8ffe, 0x9002, 0x9004, 0x9008, 0x900c, 0x9018, 0x901b, + 0x9028, 0x9029, 0x902f, 0x902a, 0x902c, 0x902d, 0x9033, 0x9034, + 0x9037, 0x903f, 0x9043, 0x9044, 0x904c, 0x905b, 0x905d, 0x9062, + 0x9066, 0x9067, 0x906c, 0x9070, 0x9074, 0x9079, 0x9085, 0x9088, + 0x908b, 0x908c, 0x908e, 0x9090, 0x9095, 0x9097, 0x9098, 0x9099, + 0x909b, 0x90a0, 0x90a1, 0x90a2, 0x90a5, 0x90b0, 0x90b2, 0x90b3, + 0x90b4, 0x90b6, 0x90bd, 0x90cc, 0x90be, 0x90c3, + /* 0x62 */ + 0x90c4, 0x90c5, 0x90c7, 0x90c8, 0x90d5, 0x90d7, 0x90d8, 0x90d9, + 0x90dc, 0x90dd, 0x90df, 0x90e5, 0x90d2, 0x90f6, 0x90eb, 0x90ef, + 0x90f0, 0x90f4, 0x90fe, 0x90ff, 0x9100, 0x9104, 0x9105, 0x9106, + 0x9108, 0x910d, 0x9110, 0x9114, 0x9116, 0x9117, 0x9118, 0x911a, + 0x911c, 0x911e, 0x9120, 0x9125, 0x9122, 0x9123, 0x9127, 0x9129, + 0x912e, 0x912f, 0x9131, 0x9134, 0x9136, 0x9137, 0x9139, 0x913a, + 0x913c, 0x913d, 0x9143, 0x9147, 0x9148, 0x914f, 0x9153, 0x9157, + 0x9159, 0x915a, 0x915b, 0x9161, 0x9164, 0x9167, 0x916d, 0x9174, + 0x9179, 0x917a, 0x917b, 0x9181, 0x9183, 0x9185, 0x9186, 0x918a, + 0x918e, 0x9191, 0x9193, 0x9194, 0x9195, 0x9198, 0x919e, 0x91a1, + 0x91a6, 0x91a8, 0x91ac, 0x91ad, 0x91ae, 0x91b0, 0x91b1, 0x91b2, + 0x91b3, 0x91b6, 0x91bb, 0x91bc, 0x91bd, 0x91bf, + /* 0x63 */ + 0x91c2, 0x91c3, 0x91c5, 0x91d3, 0x91d4, 0x91d7, 0x91d9, 0x91da, + 0x91de, 0x91e4, 0x91e5, 0x91e9, 0x91ea, 0x91ec, 0x91ed, 0x91ee, + 0x91ef, 0x91f0, 0x91f1, 0x91f7, 0x91f9, 0x91fb, 0x91fd, 0x9200, + 0x9201, 0x9204, 0x9205, 0x9206, 0x9207, 0x9209, 0x920a, 0x920c, + 0x9210, 0x9212, 0x9213, 0x9216, 0x9218, 0x921c, 0x921d, 0x9223, + 0x9224, 0x9225, 0x9226, 0x9228, 0x922e, 0x922f, 0x9230, 0x9233, + 0x9235, 0x9236, 0x9238, 0x9239, 0x923a, 0x923c, 0x923e, 0x9240, + 0x9242, 0x9243, 0x9246, 0x9247, 0x924a, 0x924d, 0x924e, 0x924f, + 0x9251, 0x9258, 0x9259, 0x925c, 0x925d, 0x9260, 0x9261, 0x9265, + 0x9267, 0x9268, 0x9269, 0x926e, 0x926f, 0x9270, 0x9275, 0x9276, + 0x9277, 0x9278, 0x9279, 0x927b, 0x927c, 0x927d, 0x927f, 0x9288, + 0x9289, 0x928a, 0x928d, 0x928e, 0x9292, 0x9297, + /* 0x64 */ + 0x9299, 0x929f, 0x92a0, 0x92a4, 0x92a5, 0x92a7, 0x92a8, 0x92ab, + 0x92af, 0x92b2, 0x92b6, 0x92b8, 0x92ba, 0x92bb, 0x92bc, 0x92bd, + 0x92bf, 0x92c0, 0x92c1, 0x92c2, 0x92c3, 0x92c5, 0x92c6, 0x92c7, + 0x92c8, 0x92cb, 0x92cc, 0x92cd, 0x92ce, 0x92d0, 0x92d3, 0x92d5, + 0x92d7, 0x92d8, 0x92d9, 0x92dc, 0x92dd, 0x92df, 0x92e0, 0x92e1, + 0x92e3, 0x92e5, 0x92e7, 0x92e8, 0x92ec, 0x92ee, 0x92f0, 0x92f9, + 0x92fb, 0x92ff, 0x9300, 0x9302, 0x9308, 0x930d, 0x9311, 0x9314, + 0x9315, 0x931c, 0x931d, 0x931e, 0x931f, 0x9321, 0x9324, 0x9325, + 0x9327, 0x9329, 0x932a, 0x9333, 0x9334, 0x9336, 0x9337, 0x9347, + 0x9348, 0x9349, 0x9350, 0x9351, 0x9352, 0x9355, 0x9357, 0x9358, + 0x935a, 0x935e, 0x9364, 0x9365, 0x9367, 0x9369, 0x936a, 0x936d, + 0x936f, 0x9370, 0x9371, 0x9373, 0x9374, 0x9376, + /* 0x65 */ + 0x937a, 0x937d, 0x937f, 0x9380, 0x9381, 0x9382, 0x9388, 0x938a, + 0x938b, 0x938d, 0x938f, 0x9392, 0x9395, 0x9398, 0x939b, 0x939e, + 0x93a1, 0x93a3, 0x93a4, 0x93a6, 0x93a8, 0x93ab, 0x93b4, 0x93b5, + 0x93b6, 0x93ba, 0x93a9, 0x93c1, 0x93c4, 0x93c5, 0x93c6, 0x93c7, + 0x93c9, 0x93ca, 0x93cb, 0x93cc, 0x93cd, 0x93d3, 0x93d9, 0x93dc, + 0x93de, 0x93df, 0x93e2, 0x93e6, 0x93e7, 0x93f9, 0x93f7, 0x93f8, + 0x93fa, 0x93fb, 0x93fd, 0x9401, 0x9402, 0x9404, 0x9408, 0x9409, + 0x940d, 0x940e, 0x940f, 0x9415, 0x9416, 0x9417, 0x941f, 0x942e, + 0x942f, 0x9431, 0x9432, 0x9433, 0x9434, 0x943b, 0x943f, 0x943d, + 0x9443, 0x9445, 0x9448, 0x944a, 0x944c, 0x9455, 0x9459, 0x945c, + 0x945f, 0x9461, 0x9463, 0x9468, 0x946b, 0x946d, 0x946e, 0x946f, + 0x9471, 0x9472, 0x9484, 0x9483, 0x9578, 0x9579, + /* 0x66 */ + 0x957e, 0x9584, 0x9588, 0x958c, 0x958d, 0x958e, 0x959d, 0x959e, + 0x959f, 0x95a1, 0x95a6, 0x95a9, 0x95ab, 0x95ac, 0x95b4, 0x95b6, + 0x95ba, 0x95bd, 0x95bf, 0x95c6, 0x95c8, 0x95c9, 0x95cb, 0x95d0, + 0x95d1, 0x95d2, 0x95d3, 0x95d9, 0x95da, 0x95dd, 0x95de, 0x95df, + 0x95e0, 0x95e4, 0x95e6, 0x961d, 0x961e, 0x9622, 0x9624, 0x9625, + 0x9626, 0x962c, 0x9631, 0x9633, 0x9637, 0x9638, 0x9639, 0x963a, + 0x963c, 0x963d, 0x9641, 0x9652, 0x9654, 0x9656, 0x9657, 0x9658, + 0x9661, 0x966e, 0x9674, 0x967b, 0x967c, 0x967e, 0x967f, 0x9681, + 0x9682, 0x9683, 0x9684, 0x9689, 0x9691, 0x9696, 0x969a, 0x969d, + 0x969f, 0x96a4, 0x96a5, 0x96a6, 0x96a9, 0x96ae, 0x96af, 0x96b3, + 0x96ba, 0x96ca, 0x96d2, 0x5db2, 0x96d8, 0x96da, 0x96dd, 0x96de, + 0x96df, 0x96e9, 0x96ef, 0x96f1, 0x96fa, 0x9702, + /* 0x67 */ + 0x9703, 0x9705, 0x9709, 0x971a, 0x971b, 0x971d, 0x9721, 0x9722, + 0x9723, 0x9728, 0x9731, 0x9733, 0x9741, 0x9743, 0x974a, 0x974e, + 0x974f, 0x9755, 0x9757, 0x9758, 0x975a, 0x975b, 0x9763, 0x9767, + 0x976a, 0x976e, 0x9773, 0x9776, 0x9777, 0x9778, 0x977b, 0x977d, + 0x977f, 0x9780, 0x9789, 0x9795, 0x9796, 0x9797, 0x9799, 0x979a, + 0x979e, 0x979f, 0x97a2, 0x97ac, 0x97ae, 0x97b1, 0x97b2, 0x97b5, + 0x97b6, 0x97b8, 0x97b9, 0x97ba, 0x97bc, 0x97be, 0x97bf, 0x97c1, + 0x97c4, 0x97c5, 0x97c7, 0x97c9, 0x97ca, 0x97cc, 0x97cd, 0x97ce, + 0x97d0, 0x97d1, 0x97d4, 0x97d7, 0x97d8, 0x97d9, 0x97dd, 0x97de, + 0x97e0, 0x97db, 0x97e1, 0x97e4, 0x97ef, 0x97f1, 0x97f4, 0x97f7, + 0x97f8, 0x97fa, 0x9807, 0x980a, 0x9819, 0x980d, 0x980e, 0x9814, + 0x9816, 0x981c, 0x981e, 0x9820, 0x9823, 0x9826, + /* 0x68 */ + 0x982b, 0x982e, 0x982f, 0x9830, 0x9832, 0x9833, 0x9835, 0x9825, + 0x983e, 0x9844, 0x9847, 0x984a, 0x9851, 0x9852, 0x9853, 0x9856, + 0x9857, 0x9859, 0x985a, 0x9862, 0x9863, 0x9865, 0x9866, 0x986a, + 0x986c, 0x98ab, 0x98ad, 0x98ae, 0x98b0, 0x98b4, 0x98b7, 0x98b8, + 0x98ba, 0x98bb, 0x98bf, 0x98c2, 0x98c5, 0x98c8, 0x98cc, 0x98e1, + 0x98e3, 0x98e5, 0x98e6, 0x98e7, 0x98ea, 0x98f3, 0x98f6, 0x9902, + 0x9907, 0x9908, 0x9911, 0x9915, 0x9916, 0x9917, 0x991a, 0x991b, + 0x991c, 0x991f, 0x9922, 0x9926, 0x9927, 0x992b, 0x9931, 0x9932, + 0x9933, 0x9934, 0x9935, 0x9939, 0x993a, 0x993b, 0x993c, 0x9940, + 0x9941, 0x9946, 0x9947, 0x9948, 0x994d, 0x994e, 0x9954, 0x9958, + 0x9959, 0x995b, 0x995c, 0x995e, 0x995f, 0x9960, 0x999b, 0x999d, + 0x999f, 0x99a6, 0x99b0, 0x99b1, 0x99b2, 0x99b5, + /* 0x69 */ + 0x99b9, 0x99ba, 0x99bd, 0x99bf, 0x99c3, 0x99c9, 0x99d3, 0x99d4, + 0x99d9, 0x99da, 0x99dc, 0x99de, 0x99e7, 0x99ea, 0x99eb, 0x99ec, + 0x99f0, 0x99f4, 0x99f5, 0x99f9, 0x99fd, 0x99fe, 0x9a02, 0x9a03, + 0x9a04, 0x9a0b, 0x9a0c, 0x9a10, 0x9a11, 0x9a16, 0x9a1e, 0x9a20, + 0x9a22, 0x9a23, 0x9a24, 0x9a27, 0x9a2d, 0x9a2e, 0x9a33, 0x9a35, + 0x9a36, 0x9a38, 0x9a47, 0x9a41, 0x9a44, 0x9a4a, 0x9a4b, 0x9a4c, + 0x9a4e, 0x9a51, 0x9a54, 0x9a56, 0x9a5d, 0x9aaa, 0x9aac, 0x9aae, + 0x9aaf, 0x9ab2, 0x9ab4, 0x9ab5, 0x9ab6, 0x9ab9, 0x9abb, 0x9abe, + 0x9abf, 0x9ac1, 0x9ac3, 0x9ac6, 0x9ac8, 0x9ace, 0x9ad0, 0x9ad2, + 0x9ad5, 0x9ad6, 0x9ad7, 0x9adb, 0x9adc, 0x9ae0, 0x9ae4, 0x9ae5, + 0x9ae7, 0x9ae9, 0x9aec, 0x9af2, 0x9af3, 0x9af5, 0x9af9, 0x9afa, + 0x9afd, 0x9aff, 0x9b00, 0x9b01, 0x9b02, 0x9b03, + /* 0x6a */ + 0x9b04, 0x9b05, 0x9b08, 0x9b09, 0x9b0b, 0x9b0c, 0x9b0d, 0x9b0e, + 0x9b10, 0x9b12, 0x9b16, 0x9b19, 0x9b1b, 0x9b1c, 0x9b20, 0x9b26, + 0x9b2b, 0x9b2d, 0x9b33, 0x9b34, 0x9b35, 0x9b37, 0x9b39, 0x9b3a, + 0x9b3d, 0x9b48, 0x9b4b, 0x9b4c, 0x9b55, 0x9b56, 0x9b57, 0x9b5b, + 0x9b5e, 0x9b61, 0x9b63, 0x9b65, 0x9b66, 0x9b68, 0x9b6a, 0x9b6b, + 0x9b6c, 0x9b6d, 0x9b6e, 0x9b73, 0x9b75, 0x9b77, 0x9b78, 0x9b79, + 0x9b7f, 0x9b80, 0x9b84, 0x9b85, 0x9b86, 0x9b87, 0x9b89, 0x9b8a, + 0x9b8b, 0x9b8d, 0x9b8f, 0x9b90, 0x9b94, 0x9b9a, 0x9b9d, 0x9b9e, + 0x9ba6, 0x9ba7, 0x9ba9, 0x9bac, 0x9bb0, 0x9bb1, 0x9bb2, 0x9bb7, + 0x9bb8, 0x9bbb, 0x9bbc, 0x9bbe, 0x9bbf, 0x9bc1, 0x9bc7, 0x9bc8, + 0x9bce, 0x9bd0, 0x9bd7, 0x9bd8, 0x9bdd, 0x9bdf, 0x9be5, 0x9be7, + 0x9bea, 0x9beb, 0x9bef, 0x9bf3, 0x9bf7, 0x9bf8, + /* 0x6b */ + 0x9bf9, 0x9bfa, 0x9bfd, 0x9bff, 0x9c00, 0x9c02, 0x9c0b, 0x9c0f, + 0x9c11, 0x9c16, 0x9c18, 0x9c19, 0x9c1a, 0x9c1c, 0x9c1e, 0x9c22, + 0x9c23, 0x9c26, 0x9c27, 0x9c28, 0x9c29, 0x9c2a, 0x9c31, 0x9c35, + 0x9c36, 0x9c37, 0x9c3d, 0x9c41, 0x9c43, 0x9c44, 0x9c45, 0x9c49, + 0x9c4a, 0x9c4e, 0x9c4f, 0x9c50, 0x9c53, 0x9c54, 0x9c56, 0x9c58, + 0x9c5b, 0x9c5d, 0x9c5e, 0x9c5f, 0x9c63, 0x9c69, 0x9c6a, 0x9c5c, + 0x9c6b, 0x9c68, 0x9c6e, 0x9c70, 0x9c72, 0x9c75, 0x9c77, 0x9c7b, + 0x9ce6, 0x9cf2, 0x9cf7, 0x9cf9, 0x9d0b, 0x9d02, 0x9d11, 0x9d17, + 0x9d18, 0x9d1c, 0x9d1d, 0x9d1e, 0x9d2f, 0x9d30, 0x9d32, 0x9d33, + 0x9d34, 0x9d3a, 0x9d3c, 0x9d45, 0x9d3d, 0x9d42, 0x9d43, 0x9d47, + 0x9d4a, 0x9d53, 0x9d54, 0x9d5f, 0x9d63, 0x9d62, 0x9d65, 0x9d69, + 0x9d6a, 0x9d6b, 0x9d70, 0x9d76, 0x9d77, 0x9d7b, + /* 0x6c */ + 0x9d7c, 0x9d7e, 0x9d83, 0x9d84, 0x9d86, 0x9d8a, 0x9d8d, 0x9d8e, + 0x9d92, 0x9d93, 0x9d95, 0x9d96, 0x9d97, 0x9d98, 0x9da1, 0x9daa, + 0x9dac, 0x9dae, 0x9db1, 0x9db5, 0x9db9, 0x9dbc, 0x9dbf, 0x9dc3, + 0x9dc7, 0x9dc9, 0x9dca, 0x9dd4, 0x9dd5, 0x9dd6, 0x9dd7, 0x9dda, + 0x9dde, 0x9ddf, 0x9de0, 0x9de5, 0x9de7, 0x9de9, 0x9deb, 0x9dee, + 0x9df0, 0x9df3, 0x9df4, 0x9dfe, 0x9e0a, 0x9e02, 0x9e07, 0x9e0e, + 0x9e10, 0x9e11, 0x9e12, 0x9e15, 0x9e16, 0x9e19, 0x9e1c, 0x9e1d, + 0x9e7a, 0x9e7b, 0x9e7c, 0x9e80, 0x9e82, 0x9e83, 0x9e84, 0x9e85, + 0x9e87, 0x9e8e, 0x9e8f, 0x9e96, 0x9e98, 0x9e9b, 0x9e9e, 0x9ea4, + 0x9ea8, 0x9eac, 0x9eae, 0x9eaf, 0x9eb0, 0x9eb3, 0x9eb4, 0x9eb5, + 0x9ec6, 0x9ec8, 0x9ecb, 0x9ed5, 0x9edf, 0x9ee4, 0x9ee7, 0x9eec, + 0x9eed, 0x9eee, 0x9ef0, 0x9ef1, 0x9ef2, 0x9ef5, + /* 0x6d */ + 0x9ef8, 0x9eff, 0x9f02, 0x9f03, 0x9f09, 0x9f0f, 0x9f10, 0x9f11, + 0x9f12, 0x9f14, 0x9f16, 0x9f17, 0x9f19, 0x9f1a, 0x9f1b, 0x9f1f, + 0x9f22, 0x9f26, 0x9f2a, 0x9f2b, 0x9f2f, 0x9f31, 0x9f32, 0x9f34, + 0x9f37, 0x9f39, 0x9f3a, 0x9f3c, 0x9f3d, 0x9f3f, 0x9f41, 0x9f43, + 0x9f44, 0x9f45, 0x9f46, 0x9f47, 0x9f53, 0x9f55, 0x9f56, 0x9f57, + 0x9f58, 0x9f5a, 0x9f5d, 0x9f5e, 0x9f68, 0x9f69, 0x9f6d, 0x9f6e, + 0x9f6f, 0x9f70, 0x9f71, 0x9f73, 0x9f75, 0x9f7a, 0x9f7d, 0x9f8f, + 0x9f90, 0x9f91, 0x9f92, 0x9f94, 0x9f96, 0x9f97, 0x9f9e, 0x9fa1, + 0x9fa2, 0x9fa3, 0x9fa5, +}; + +static int +jisx0212_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 == 0x22) || (c1 >= 0x26 && c1 <= 0x27) || (c1 >= 0x29 && c1 <= 0x2b) || (c1 >= 0x30 && c1 <= 0x6d)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if (c2 >= 0x21 && c2 < 0x7f) { + unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); + unsigned short wc = 0xfffd; + if (i < 470) { + if (i < 175) + wc = jisx0212_2uni_page22[i-94]; + } else if (i < 752) { + if (i < 658) + wc = jisx0212_2uni_page26[i-470]; + } else if (i < 1410) { + if (i < 1027) + wc = jisx0212_2uni_page29[i-752]; + } else { + if (i < 7211) + wc = jisx0212_2uni_page30[i-1410]; + } + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + +static const unsigned short jisx0212_2charset[6067] = { + 0x2242, 0x2270, 0x2243, 0x226d, 0x226c, 0x226e, 0x2234, 0x2231, + 0x226b, 0x2244, 0x2a22, 0x2a21, 0x2a24, 0x2a2a, 0x2a23, 0x2a29, + 0x2921, 0x2a2e, 0x2a32, 0x2a31, 0x2a34, 0x2a33, 0x2a40, 0x2a3f, + 0x2a42, 0x2a41, 0x2a50, 0x2a52, 0x2a51, 0x2a54, 0x2a58, 0x2a53, + 0x292c, 0x2a63, 0x2a62, 0x2a65, 0x2a64, 0x2a72, 0x2930, 0x294e, + 0x2b22, 0x2b21, 0x2b24, 0x2b2a, 0x2b23, 0x2b29, 0x2941, 0x2b2e, + 0x2b32, 0x2b31, 0x2b34, 0x2b33, 0x2b40, 0x2b3f, 0x2b42, 0x2b41, + 0x2943, 0x2b50, 0x2b52, 0x2b51, 0x2b54, 0x2b58, 0x2b53, 0x294c, + 0x2b63, 0x2b62, 0x2b65, 0x2b64, 0x2b72, 0x2950, 0x2b73, 0x2a27, + 0x2b27, 0x2a25, 0x2b25, 0x2a28, 0x2b28, 0x2a2b, 0x2b2b, 0x2a2c, + 0x2b2c, 0x2a2f, 0x2b2f, 0x2a2d, 0x2b2d, 0x2a30, 0x2b30, 0x2922, + 0x2942, 0x2a37, 0x2b37, 0x2a36, 0x2b36, 0x2a38, 0x2b38, 0x2a35, + 0x2b35, 0x2a3a, 0x2b3a, 0x2a3b, 0x2b3b, 0x2a3d, 0x2b3d, 0x2a3c, + 0x2a3e, 0x2b3e, 0x2924, 0x2944, 0x2a47, 0x2b47, 0x2a45, 0x2b45, + 0x2a46, 0x2b46, 0x2a44, 0x2945, 0x2926, 0x2946, 0x2a48, 0x2b48, + 0x2a49, 0x2b49, 0x2947, 0x2a4a, 0x2b4a, 0x2a4c, 0x2b4c, 0x2a4b, + 0x2b4b, 0x2929, 0x2949, 0x2928, 0x2948, 0x2a4d, 0x2b4d, 0x2a4f, + 0x2b4f, 0x2a4e, 0x2b4e, 0x294a, 0x292b, 0x294b, 0x2a57, 0x2b57, + 0x2a56, 0x2b56, 0x292d, 0x294d, 0x2a59, 0x2b59, 0x2a5b, 0x2b5b, + 0x2a5a, 0x2b5a, 0x2a5c, 0x2b5c, 0x2a5d, 0x2b5d, 0x2a5f, 0x2b5f, + 0x2a5e, 0x2b5e, 0x2a61, 0x2b61, 0x2a60, 0x2b60, 0x292f, 0x294f, + 0x2a6c, 0x2b6c, 0x2a69, 0x2b69, 0x2a66, 0x2b66, 0x2a6b, 0x2b6b, + 0x2a68, 0x2b68, 0x2a6a, 0x2b6a, 0x2a71, 0x2b71, 0x2a74, 0x2b74, + 0x2a73, 0x2a75, 0x2b75, 0x2a77, 0x2b77, 0x2a76, 0x2b76, 0x2a26, + 0x2b26, 0x2a43, 0x2b43, 0x2a55, 0x2b55, 0x2a67, 0x2b67, 0x2a70, + 0x2b70, 0x2a6d, 0x2b6d, 0x2a6f, 0x2b6f, 0x2a6e, 0x2b6e, 0x2b39, + 0x2230, 0x222f, 0x2232, 0x2236, 0x2235, 0x2233, 0x2238, 0x2239, + 0x2661, 0x2662, 0x2663, 0x2664, 0x2667, 0x2669, 0x266c, 0x2676, + 0x2665, 0x266a, 0x2671, 0x2672, 0x2673, 0x2674, 0x267b, 0x2678, + 0x2675, 0x267a, 0x2677, 0x2679, 0x267c, 0x2742, 0x2743, 0x2744, + 0x2745, 0x2746, 0x2747, 0x2748, 0x2749, 0x274a, 0x274b, 0x274c, + 0x274d, 0x274e, 0x2772, 0x2773, 0x2774, 0x2775, 0x2776, 0x2777, + 0x2778, 0x2779, 0x277a, 0x277b, 0x277c, 0x277d, 0x277e, 0x2271, + 0x226f, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027, + 0x3028, 0x3029, 0x302a, 0x302b, 0x302c, 0x302d, 0x302e, 0x302f, + 0x3030, 0x3031, 0x3032, 0x3033, 0x3034, 0x3035, 0x3036, 0x3037, + 0x3038, 0x3039, 0x303a, 0x303b, 0x303c, 0x303d, 0x303e, 0x303f, + 0x3040, 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, + 0x3048, 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, + 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, + 0x3058, 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x3060, + 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, + 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070, + 0x305f, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, + 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x3121, + 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, 0x3127, 0x3128, 0x3129, + 0x312a, 0x312b, 0x312c, 0x312d, 0x312e, 0x312f, 0x3130, 0x3131, + 0x3132, 0x3133, 0x3134, 0x3135, 0x3136, 0x3137, 0x3138, 0x3139, + 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, 0x3140, 0x3141, + 0x3142, 0x3143, 0x3144, 0x3145, 0x3146, 0x3147, 0x3148, 0x3149, + 0x314a, 0x314b, 0x314c, 0x314d, 0x314e, 0x314f, 0x3150, 0x3151, + 0x3152, 0x3153, 0x3154, 0x3155, 0x3156, 0x3157, 0x3158, 0x3159, + 0x315a, 0x315b, 0x315c, 0x315d, 0x315e, 0x3176, 0x315f, 0x3160, + 0x3161, 0x3162, 0x3163, 0x3164, 0x3165, 0x3166, 0x3167, 0x3168, + 0x3169, 0x316a, 0x316b, 0x316c, 0x316d, 0x316e, 0x316f, 0x3170, + 0x3171, 0x3172, 0x3173, 0x3174, 0x3175, 0x3177, 0x3178, 0x3179, + 0x317a, 0x317b, 0x317c, 0x317d, 0x317e, 0x3221, 0x3222, 0x3223, + 0x3224, 0x3225, 0x3226, 0x3227, 0x3228, 0x3229, 0x322a, 0x322b, + 0x322c, 0x322d, 0x322e, 0x322f, 0x3230, 0x3231, 0x3232, 0x3233, + 0x3234, 0x3235, 0x3236, 0x3237, 0x3238, 0x3239, 0x323a, 0x323b, + 0x323c, 0x323d, 0x323e, 0x323f, 0x3240, 0x3241, 0x3242, 0x3243, + 0x3244, 0x3245, 0x3251, 0x3246, 0x3247, 0x3248, 0x3249, 0x324a, + 0x324b, 0x324c, 0x324d, 0x324e, 0x324f, 0x3250, 0x3252, 0x3253, + 0x3254, 0x3255, 0x3256, 0x3257, 0x3258, 0x3259, 0x325a, 0x325b, + 0x325c, 0x325d, 0x325e, 0x325f, 0x3260, 0x3261, 0x3262, 0x3263, + 0x3264, 0x3265, 0x3266, 0x3267, 0x3268, 0x3269, 0x326a, 0x326b, + 0x326c, 0x326d, 0x326e, 0x326f, 0x3270, 0x3271, 0x3272, 0x3273, + 0x3274, 0x3275, 0x3276, 0x3277, 0x3278, 0x3279, 0x327a, 0x327b, + 0x327c, 0x327d, 0x327e, 0x3321, 0x3322, 0x3323, 0x3324, 0x3325, + 0x3326, 0x3327, 0x3328, 0x3329, 0x332a, 0x332b, 0x332c, 0x332d, + 0x332e, 0x332f, 0x3330, 0x3331, 0x3332, 0x3333, 0x3334, 0x3335, + 0x3336, 0x3337, 0x3338, 0x3339, 0x333a, 0x333b, 0x333c, 0x333d, + 0x333e, 0x333f, 0x3340, 0x3341, 0x3342, 0x3343, 0x3344, 0x3345, + 0x3346, 0x3347, 0x3348, 0x3349, 0x334a, 0x334b, 0x334c, 0x334d, + 0x334e, 0x334f, 0x3350, 0x3351, 0x3352, 0x3353, 0x3354, 0x3355, + 0x3356, 0x3357, 0x3358, 0x3359, 0x335a, 0x335b, 0x335c, 0x335d, + 0x335e, 0x335f, 0x3360, 0x3361, 0x3362, 0x3363, 0x3364, 0x3365, + 0x3366, 0x3367, 0x3368, 0x3369, 0x336a, 0x336b, 0x336c, 0x336d, + 0x336e, 0x336f, 0x3370, 0x3371, 0x3372, 0x3373, 0x3374, 0x3375, + 0x3376, 0x3377, 0x3378, 0x3379, 0x337a, 0x337b, 0x337c, 0x337d, + 0x337e, 0x3421, 0x3422, 0x3423, 0x3424, 0x3425, 0x3426, 0x3427, + 0x3428, 0x3429, 0x342a, 0x342b, 0x342c, 0x342d, 0x342e, 0x342f, + 0x3430, 0x3431, 0x3432, 0x3433, 0x3434, 0x3435, 0x3436, 0x3438, + 0x3437, 0x3439, 0x343a, 0x343b, 0x343c, 0x343d, 0x343e, 0x343f, + 0x3440, 0x3441, 0x3442, 0x3443, 0x3444, 0x3445, 0x3446, 0x3447, + 0x3448, 0x3449, 0x344a, 0x344b, 0x344c, 0x344d, 0x344e, 0x344f, + 0x3450, 0x3451, 0x3452, 0x3453, 0x3454, 0x3455, 0x3456, 0x3457, + 0x3458, 0x3459, 0x345a, 0x345b, 0x345c, 0x345d, 0x345e, 0x345f, + 0x3460, 0x3461, 0x3462, 0x3463, 0x3464, 0x3465, 0x3466, 0x3467, + 0x3468, 0x3469, 0x346a, 0x346b, 0x346c, 0x346d, 0x346e, 0x346f, + 0x3470, 0x3471, 0x3472, 0x3473, 0x3474, 0x3475, 0x3476, 0x3477, + 0x3478, 0x3479, 0x347a, 0x347b, 0x347c, 0x347d, 0x347e, 0x3521, + 0x3522, 0x3523, 0x3524, 0x3525, 0x3526, 0x3527, 0x3528, 0x3529, + 0x352a, 0x352b, 0x352c, 0x352d, 0x352e, 0x352f, 0x3530, 0x3531, + 0x3532, 0x3533, 0x3534, 0x3535, 0x3536, 0x3537, 0x3538, 0x3539, + 0x353a, 0x353b, 0x353c, 0x353d, 0x353e, 0x353f, 0x3540, 0x3541, + 0x3542, 0x3543, 0x3544, 0x3545, 0x3546, 0x3547, 0x3548, 0x3549, + 0x354a, 0x354b, 0x354c, 0x354d, 0x354e, 0x354f, 0x3550, 0x3551, + 0x3552, 0x3553, 0x3554, 0x3555, 0x3556, 0x3557, 0x3558, 0x3559, + 0x355a, 0x355b, 0x355c, 0x355d, 0x355e, 0x355f, 0x3560, 0x3561, + 0x3562, 0x3563, 0x3564, 0x3565, 0x3566, 0x3567, 0x3568, 0x3569, + 0x356a, 0x356b, 0x356c, 0x356d, 0x356e, 0x356f, 0x3570, 0x3571, + 0x3572, 0x3573, 0x3574, 0x3575, 0x3576, 0x3577, 0x3578, 0x3579, + 0x357a, 0x357b, 0x357c, 0x357d, 0x357e, 0x3621, 0x3622, 0x3623, + 0x3624, 0x3625, 0x3626, 0x3627, 0x3628, 0x3629, 0x362a, 0x362b, + 0x362c, 0x362d, 0x362e, 0x362f, 0x3630, 0x3631, 0x3632, 0x3633, + 0x3634, 0x3635, 0x3636, 0x3637, 0x3638, 0x3639, 0x363a, 0x363b, + 0x363c, 0x363d, 0x363e, 0x363f, 0x3640, 0x3641, 0x3642, 0x3643, + 0x3644, 0x3645, 0x3646, 0x3647, 0x3648, 0x3649, 0x364a, 0x364b, + 0x364c, 0x364d, 0x364e, 0x364f, 0x3650, 0x3651, 0x3652, 0x3653, + 0x3654, 0x3655, 0x3656, 0x3657, 0x3658, 0x3659, 0x365a, 0x365b, + 0x365c, 0x365d, 0x365e, 0x365f, 0x3660, 0x3661, 0x3662, 0x3663, + 0x3664, 0x3665, 0x3666, 0x3667, 0x3668, 0x3669, 0x366a, 0x366b, + 0x366c, 0x366d, 0x3670, 0x3671, 0x366e, 0x366f, 0x3672, 0x3673, + 0x3674, 0x3675, 0x3676, 0x3677, 0x3678, 0x3679, 0x367a, 0x367b, + 0x367d, 0x367e, 0x367c, 0x3721, 0x3722, 0x3723, 0x3724, 0x3725, + 0x3726, 0x3727, 0x3728, 0x3729, 0x372a, 0x372b, 0x372c, 0x372d, + 0x372e, 0x372f, 0x3730, 0x3731, 0x3732, 0x3733, 0x3734, 0x3735, + 0x3736, 0x3737, 0x3738, 0x3739, 0x373a, 0x373b, 0x373c, 0x373d, + 0x373e, 0x373f, 0x3740, 0x3741, 0x3742, 0x3743, 0x3744, 0x3745, + 0x3746, 0x3747, 0x3748, 0x3749, 0x374a, 0x374b, 0x374c, 0x374d, + 0x374e, 0x374f, 0x3750, 0x3751, 0x3752, 0x3753, 0x3754, 0x3755, + 0x3756, 0x3757, 0x3760, 0x3758, 0x3759, 0x375a, 0x375b, 0x375c, + 0x375d, 0x375e, 0x375f, 0x3761, 0x3762, 0x3763, 0x3764, 0x3765, + 0x3766, 0x3767, 0x3768, 0x3769, 0x376a, 0x376b, 0x376c, 0x376d, + 0x377e, 0x376e, 0x376f, 0x3770, 0x3771, 0x3772, 0x3773, 0x3774, + 0x3775, 0x3776, 0x3777, 0x3778, 0x3779, 0x377a, 0x377b, 0x377c, + 0x377d, 0x3821, 0x3822, 0x3823, 0x3824, 0x3825, 0x3826, 0x3827, + 0x3828, 0x3829, 0x382a, 0x382b, 0x382c, 0x382d, 0x382e, 0x382f, + 0x3830, 0x3831, 0x3832, 0x3833, 0x3834, 0x3835, 0x3836, 0x3837, + 0x3838, 0x3839, 0x383a, 0x383b, 0x383c, 0x383d, 0x383e, 0x383f, + 0x3840, 0x3841, 0x3842, 0x3843, 0x3844, 0x3845, 0x3846, 0x3847, + 0x3848, 0x3849, 0x384a, 0x384b, 0x384c, 0x384d, 0x384e, 0x3850, + 0x3851, 0x384f, 0x3852, 0x3853, 0x3854, 0x3855, 0x3856, 0x3857, + 0x3858, 0x3859, 0x385a, 0x385b, 0x385c, 0x385d, 0x385e, 0x385f, + 0x3860, 0x3861, 0x3862, 0x3863, 0x3864, 0x3865, 0x3867, 0x3868, + 0x3869, 0x386a, 0x386b, 0x386c, 0x386d, 0x386e, 0x386f, 0x3870, + 0x3871, 0x3872, 0x3873, 0x3874, 0x3875, 0x3876, 0x3877, 0x3878, + 0x3879, 0x387a, 0x387b, 0x387c, 0x387d, 0x387e, 0x3921, 0x3922, + 0x3923, 0x3924, 0x3925, 0x3926, 0x3927, 0x3928, 0x3929, 0x392a, + 0x392b, 0x392c, 0x392d, 0x392e, 0x392f, 0x3930, 0x3931, 0x3932, + 0x3933, 0x3934, 0x3935, 0x3936, 0x3937, 0x3938, 0x3939, 0x393a, + 0x393b, 0x393c, 0x393d, 0x393e, 0x393f, 0x3940, 0x3941, 0x3942, + 0x3943, 0x3944, 0x3945, 0x3946, 0x3947, 0x3948, 0x3949, 0x394a, + 0x394b, 0x394c, 0x394d, 0x394e, 0x394f, 0x3950, 0x3951, 0x3952, + 0x3953, 0x3954, 0x3955, 0x3956, 0x3957, 0x3958, 0x3959, 0x395a, + 0x395b, 0x395c, 0x395d, 0x395e, 0x395f, 0x3960, 0x3961, 0x3962, + 0x3963, 0x3964, 0x3965, 0x3966, 0x3967, 0x3968, 0x3969, 0x396a, + 0x396b, 0x396c, 0x396d, 0x396e, 0x396f, 0x3970, 0x3971, 0x3972, + 0x3973, 0x3974, 0x3975, 0x3976, 0x3977, 0x3978, 0x3979, 0x397a, + 0x397b, 0x397c, 0x397d, 0x397e, 0x3a21, 0x3a22, 0x3a23, 0x3a24, + 0x3a25, 0x3a26, 0x3a27, 0x3a28, 0x3a29, 0x3a2a, 0x3a2b, 0x3a2c, + 0x3a2d, 0x3a2e, 0x3a2f, 0x3a30, 0x3a31, 0x3a33, 0x3a34, 0x3a35, + 0x3a36, 0x3a37, 0x3a38, 0x3a32, 0x3a39, 0x3a3a, 0x3a3b, 0x3a3c, + 0x3a3d, 0x3a3e, 0x3a3f, 0x3a40, 0x3a41, 0x3a42, 0x3a43, 0x3a44, + 0x3a45, 0x3a46, 0x3a47, 0x3a48, 0x3a49, 0x3a4a, 0x3a4b, 0x3a4c, + 0x3a4d, 0x3a4e, 0x3a4f, 0x3a50, 0x3a51, 0x3a52, 0x3a53, 0x3a54, + 0x3a55, 0x3a56, 0x3a57, 0x3a58, 0x3a59, 0x3a5a, 0x3a5b, 0x3a5c, + 0x3a5d, 0x3a5e, 0x3a5f, 0x3a60, 0x3a61, 0x3a62, 0x3a63, 0x3a64, + 0x3a65, 0x3a66, 0x3a67, 0x3a68, 0x3a69, 0x3a6a, 0x3a6b, 0x3a6c, + 0x3a6d, 0x3a6e, 0x3a6f, 0x3a70, 0x3a71, 0x3a72, 0x3a73, 0x3a74, + 0x3a75, 0x3a76, 0x3a77, 0x3a78, 0x3a79, 0x3a7a, 0x3a7b, 0x3a7c, + 0x3a7d, 0x3a7e, 0x3b21, 0x3b22, 0x3b23, 0x3b24, 0x3b25, 0x3b26, + 0x3b27, 0x3b28, 0x3b29, 0x3b2a, 0x3b2b, 0x3b2c, 0x3b2d, 0x3b2e, + 0x3b2f, 0x3b30, 0x3b31, 0x3b32, 0x3b33, 0x3b34, 0x3b35, 0x3b36, + 0x3b37, 0x3b38, 0x3b39, 0x3b3a, 0x3b3b, 0x3b3d, 0x3b3c, 0x3b3e, + 0x3b3f, 0x3b40, 0x3b41, 0x3b42, 0x3b43, 0x3b44, 0x3b45, 0x3b47, + 0x3b48, 0x3b49, 0x3b4a, 0x3b46, 0x3b4b, 0x3b4c, 0x3b4d, 0x3b4e, + 0x3b4f, 0x3b50, 0x3b51, 0x3b52, 0x3b53, 0x3b57, 0x3b55, 0x3b54, + 0x3b56, 0x3b58, 0x3b59, 0x3b5a, 0x3b5b, 0x3b5c, 0x3b5d, 0x3b5e, + 0x3b5f, 0x3b60, 0x3b61, 0x3b62, 0x3b63, 0x3b64, 0x3b65, 0x3b66, + 0x3b67, 0x3b68, 0x3b69, 0x3b6a, 0x3b6b, 0x3b6c, 0x3b6d, 0x3b6e, + 0x3b6f, 0x3b70, 0x3b71, 0x3b72, 0x6674, 0x3b73, 0x3b74, 0x3b75, + 0x3b76, 0x3b77, 0x3b78, 0x3b7a, 0x3b79, 0x3b7b, 0x3b7c, 0x3b7d, + 0x3b7e, 0x3c21, 0x3c22, 0x3c23, 0x3c24, 0x3c25, 0x3c26, 0x3c27, + 0x3c28, 0x3c29, 0x3c2a, 0x3c2b, 0x3c2c, 0x3c2e, 0x3c2d, 0x3c2f, + 0x3c30, 0x3c31, 0x3c34, 0x3c32, 0x3c33, 0x3c35, 0x3c36, 0x3c37, + 0x3c38, 0x3c39, 0x3c3a, 0x3c3b, 0x3c3c, 0x3c3d, 0x3c3e, 0x3c3f, + 0x3c40, 0x3c41, 0x3c42, 0x3c43, 0x3c44, 0x3c45, 0x3c46, 0x3c47, + 0x3c48, 0x3c49, 0x3c4a, 0x3c4b, 0x3c4c, 0x3c4d, 0x3c4e, 0x3c4f, + 0x3c50, 0x3c52, 0x3c51, 0x3c53, 0x3c54, 0x3c55, 0x3c56, 0x3c57, + 0x3c58, 0x3c59, 0x3c5a, 0x3c5b, 0x3c5c, 0x3c5d, 0x3c5e, 0x3c5f, + 0x3c60, 0x3c61, 0x3c62, 0x3c63, 0x3c64, 0x3c65, 0x3c66, 0x3c67, + 0x3c68, 0x3c69, 0x3c6a, 0x3c6b, 0x3c6c, 0x3c6d, 0x3c6e, 0x3c6f, + 0x3c70, 0x3c71, 0x3c72, 0x3c73, 0x3c74, 0x3c75, 0x3c76, 0x3c77, + 0x3c78, 0x3c79, 0x3c7a, 0x3c7b, 0x3c7c, 0x3c7d, 0x3c7e, 0x3d21, + 0x3d22, 0x3d23, 0x3d24, 0x3d25, 0x3d26, 0x3d27, 0x3d28, 0x3d29, + 0x3d2a, 0x3d2b, 0x3d2c, 0x3d2d, 0x3d2e, 0x3d2f, 0x3d32, 0x3d30, + 0x3d31, 0x3d33, 0x3d34, 0x3d35, 0x3d36, 0x3d37, 0x3d38, 0x3d39, + 0x3d3a, 0x3d3b, 0x3d3c, 0x3d3d, 0x3d3e, 0x3d3f, 0x3d40, 0x3d41, + 0x3d42, 0x3d43, 0x3d44, 0x3d45, 0x3d46, 0x3d47, 0x3d48, 0x3d49, + 0x3d4a, 0x3d4b, 0x3d4c, 0x3d4d, 0x3d4e, 0x3d4f, 0x3d50, 0x3d51, + 0x3d52, 0x3d53, 0x3d54, 0x3d55, 0x3d56, 0x3d57, 0x3d58, 0x3d59, + 0x3d5a, 0x3d5b, 0x3d5c, 0x3d5d, 0x3d5e, 0x3d5f, 0x3d60, 0x3d61, + 0x3d62, 0x3d63, 0x3d64, 0x3d65, 0x3d66, 0x3d67, 0x3d68, 0x3d69, + 0x3d6a, 0x3d6b, 0x3d6c, 0x3d6d, 0x3d6e, 0x3d6f, 0x3d70, 0x3d71, + 0x3d72, 0x3d73, 0x3d74, 0x3d75, 0x3d76, 0x3d77, 0x3d78, 0x3d79, + 0x3d7a, 0x3d7b, 0x3d7c, 0x3d7d, 0x3d7e, 0x3e21, 0x3e22, 0x3e23, + 0x3e24, 0x3e25, 0x3e26, 0x3e27, 0x3e28, 0x3e29, 0x3e2a, 0x3e2b, + 0x3e2c, 0x3e2d, 0x3e2e, 0x3e2f, 0x3e30, 0x3e31, 0x3e32, 0x3e33, + 0x3e34, 0x3e35, 0x3e36, 0x3e37, 0x3e38, 0x3e39, 0x3e3a, 0x3e3b, + 0x3e3c, 0x3e3d, 0x3e3e, 0x3e3f, 0x3e40, 0x3e41, 0x3e42, 0x3e43, + 0x3e44, 0x3e45, 0x3e46, 0x3e47, 0x3e48, 0x3e49, 0x3e4a, 0x3e4b, + 0x3e4c, 0x3e4d, 0x3e4e, 0x3e4f, 0x3e50, 0x3e51, 0x3e52, 0x3e53, + 0x3e54, 0x3e55, 0x3e56, 0x3e57, 0x3e58, 0x3e59, 0x3e5a, 0x3e5b, + 0x3e5c, 0x3e5d, 0x3e5e, 0x3e5f, 0x3e60, 0x3e61, 0x3e62, 0x3e63, + 0x3e64, 0x3e65, 0x3e66, 0x3e67, 0x3e68, 0x3e69, 0x3e6a, 0x3e6b, + 0x3e6c, 0x3e6d, 0x3e6e, 0x3e6f, 0x3e70, 0x3e71, 0x3e72, 0x3e73, + 0x3e74, 0x3e75, 0x3e76, 0x3e77, 0x3e78, 0x3e79, 0x3e7a, 0x3e7b, + 0x3e7e, 0x3e7c, 0x3e7d, 0x3f21, 0x3f22, 0x3f23, 0x3f24, 0x3f25, + 0x3f26, 0x3f27, 0x3f28, 0x3f29, 0x3f2a, 0x3f2b, 0x3f2c, 0x3f2d, + 0x3f2e, 0x3f2f, 0x3f30, 0x3f31, 0x3f32, 0x3f33, 0x3f34, 0x3f35, + 0x3f36, 0x3f37, 0x3f38, 0x3f39, 0x3f3a, 0x3f3b, 0x3f3c, 0x3f3d, + 0x3f3e, 0x3f3f, 0x3f40, 0x3f41, 0x3f42, 0x3f43, 0x3f44, 0x3f45, + 0x3f46, 0x3f47, 0x3f48, 0x3f49, 0x3f4a, 0x3f4b, 0x3f4c, 0x3f4d, + 0x3f4e, 0x3f4f, 0x3f50, 0x3f51, 0x3f52, 0x3f53, 0x3f54, 0x3f55, + 0x3f56, 0x3f57, 0x3f58, 0x3f59, 0x3f5a, 0x3f5b, 0x3f5c, 0x3f5d, + 0x3f5e, 0x3f5f, 0x3f60, 0x3f61, 0x3f62, 0x3f63, 0x3f64, 0x3f65, + 0x3f66, 0x3f67, 0x3f68, 0x3f69, 0x3f6a, 0x3f6b, 0x3f6c, 0x3f6d, + 0x3f6e, 0x3f6f, 0x3f70, 0x3f71, 0x3f72, 0x3f73, 0x3f74, 0x3f75, + 0x3f76, 0x3f77, 0x3f78, 0x3f79, 0x3f7a, 0x3f7b, 0x3f7c, 0x3f7d, + 0x3f7e, 0x4021, 0x4022, 0x4023, 0x4024, 0x4025, 0x4026, 0x4027, + 0x4028, 0x4029, 0x402a, 0x402b, 0x402c, 0x402d, 0x402e, 0x402f, + 0x4030, 0x4031, 0x4032, 0x4033, 0x4034, 0x4035, 0x4036, 0x4037, + 0x4038, 0x4039, 0x403a, 0x403b, 0x403c, 0x403d, 0x403e, 0x403f, + 0x4040, 0x4041, 0x4042, 0x4043, 0x4044, 0x4045, 0x4046, 0x4047, + 0x4048, 0x4049, 0x404a, 0x404b, 0x404c, 0x404d, 0x404e, 0x404f, + 0x4050, 0x4051, 0x4052, 0x4053, 0x4054, 0x4055, 0x4056, 0x4057, + 0x4058, 0x4059, 0x405a, 0x405b, 0x405c, 0x405d, 0x405e, 0x405f, + 0x4060, 0x4061, 0x4062, 0x4063, 0x4064, 0x4065, 0x4066, 0x4067, + 0x4068, 0x4069, 0x406a, 0x406b, 0x406c, 0x406d, 0x406e, 0x406f, + 0x4070, 0x4071, 0x4072, 0x4073, 0x4074, 0x4075, 0x4076, 0x4077, + 0x4078, 0x4079, 0x407a, 0x407b, 0x407c, 0x407d, 0x407e, 0x4121, + 0x4122, 0x4123, 0x4124, 0x4125, 0x4126, 0x4127, 0x4128, 0x4129, + 0x412a, 0x412b, 0x412c, 0x412d, 0x412e, 0x412f, 0x4130, 0x4131, + 0x4132, 0x4133, 0x4134, 0x4135, 0x4136, 0x4137, 0x4138, 0x4139, + 0x413a, 0x413b, 0x413c, 0x413d, 0x413e, 0x413f, 0x4140, 0x4141, + 0x4142, 0x4143, 0x4144, 0x4145, 0x4146, 0x4147, 0x4148, 0x4149, + 0x414a, 0x414b, 0x414c, 0x414d, 0x414e, 0x414f, 0x4150, 0x4151, + 0x4152, 0x4153, 0x4154, 0x4155, 0x4156, 0x4157, 0x4158, 0x4159, + 0x415a, 0x415b, 0x415c, 0x415d, 0x415e, 0x415f, 0x4160, 0x4161, + 0x4162, 0x4163, 0x4164, 0x4165, 0x4166, 0x4167, 0x4168, 0x4169, + 0x416a, 0x416b, 0x416c, 0x416d, 0x416e, 0x416f, 0x4170, 0x4171, + 0x4172, 0x4173, 0x4174, 0x4175, 0x4176, 0x4177, 0x4178, 0x4179, + 0x417a, 0x417b, 0x417c, 0x417d, 0x417e, 0x4221, 0x4222, 0x4223, + 0x4224, 0x4225, 0x4226, 0x4227, 0x4228, 0x4229, 0x422a, 0x422b, + 0x422c, 0x422d, 0x422e, 0x4230, 0x422f, 0x4231, 0x4232, 0x4233, + 0x4234, 0x4235, 0x4237, 0x4236, 0x4238, 0x4239, 0x423a, 0x423b, + 0x423c, 0x423d, 0x423e, 0x4240, 0x4241, 0x4242, 0x4244, 0x4245, + 0x4247, 0x4248, 0x4249, 0x424a, 0x424c, 0x4243, 0x4246, 0x424b, + 0x424d, 0x424e, 0x424f, 0x4250, 0x4251, 0x4252, 0x4253, 0x4254, + 0x4255, 0x4256, 0x4257, 0x4258, 0x4259, 0x425a, 0x425b, 0x425c, + 0x425d, 0x425e, 0x425f, 0x4260, 0x4261, 0x4262, 0x4263, 0x4264, + 0x4265, 0x4266, 0x4267, 0x4268, 0x4269, 0x426a, 0x426b, 0x426c, + 0x426d, 0x423f, 0x426e, 0x426f, 0x4270, 0x4271, 0x4272, 0x4273, + 0x4274, 0x4275, 0x4276, 0x4277, 0x4278, 0x4279, 0x427a, 0x427b, + 0x427c, 0x427d, 0x427e, 0x4321, 0x4322, 0x4323, 0x4324, 0x4325, + 0x4326, 0x4327, 0x4328, 0x4329, 0x432a, 0x432b, 0x432c, 0x432d, + 0x432e, 0x432f, 0x4330, 0x4331, 0x4332, 0x4333, 0x4334, 0x4335, + 0x4336, 0x4337, 0x4339, 0x433a, 0x433b, 0x433c, 0x433d, 0x433e, + 0x433f, 0x4340, 0x4341, 0x4342, 0x4343, 0x4344, 0x4345, 0x4346, + 0x4347, 0x4348, 0x4338, 0x434a, 0x434b, 0x434c, 0x434d, 0x434f, + 0x434e, 0x4350, 0x4351, 0x4352, 0x4353, 0x4354, 0x4355, 0x4356, + 0x4357, 0x4358, 0x4359, 0x435a, 0x435b, 0x4349, 0x435c, 0x435d, + 0x435e, 0x435f, 0x4360, 0x4361, 0x4362, 0x4363, 0x4364, 0x4365, + 0x4366, 0x4367, 0x4368, 0x4369, 0x436a, 0x436b, 0x436c, 0x436d, + 0x436e, 0x436f, 0x4370, 0x4371, 0x4372, 0x4373, 0x4374, 0x4375, + 0x4376, 0x4377, 0x4378, 0x4379, 0x437a, 0x437b, 0x437c, 0x437d, + 0x437e, 0x4421, 0x4422, 0x4423, 0x4424, 0x4425, 0x4426, 0x4427, + 0x4428, 0x4429, 0x442a, 0x442b, 0x442c, 0x442d, 0x442e, 0x442f, + 0x4430, 0x4431, 0x4432, 0x4433, 0x4434, 0x4435, 0x4436, 0x4437, + 0x4438, 0x4439, 0x443a, 0x443b, 0x443c, 0x443d, 0x443e, 0x443f, + 0x4440, 0x4441, 0x4442, 0x4443, 0x4444, 0x4445, 0x4446, 0x4447, + 0x4448, 0x4449, 0x444a, 0x444b, 0x444c, 0x444d, 0x444e, 0x444f, + 0x4450, 0x4451, 0x4452, 0x4453, 0x4454, 0x4455, 0x4456, 0x4457, + 0x4458, 0x4459, 0x445a, 0x445b, 0x445c, 0x445d, 0x445e, 0x445f, + 0x4460, 0x4461, 0x4462, 0x4463, 0x4464, 0x4465, 0x4466, 0x4467, + 0x4468, 0x4469, 0x446a, 0x446b, 0x446c, 0x446d, 0x446e, 0x446f, + 0x4470, 0x4471, 0x4472, 0x4473, 0x4474, 0x4475, 0x4476, 0x4477, + 0x4478, 0x4479, 0x447a, 0x447b, 0x447c, 0x447d, 0x447e, 0x4521, + 0x4522, 0x4523, 0x4524, 0x4525, 0x4526, 0x4527, 0x4528, 0x4529, + 0x452a, 0x452b, 0x452c, 0x452d, 0x452e, 0x452f, 0x4530, 0x4531, + 0x4532, 0x4533, 0x4534, 0x4535, 0x4536, 0x4537, 0x4538, 0x4539, + 0x453a, 0x453b, 0x453c, 0x453d, 0x453e, 0x453f, 0x4540, 0x4541, + 0x4542, 0x4543, 0x4544, 0x4545, 0x4546, 0x4547, 0x4548, 0x4549, + 0x454a, 0x454b, 0x454d, 0x454c, 0x454e, 0x454f, 0x4550, 0x4551, + 0x4552, 0x4553, 0x4554, 0x4555, 0x4556, 0x4557, 0x4558, 0x4559, + 0x455a, 0x455b, 0x455c, 0x455d, 0x455e, 0x455f, 0x4560, 0x4561, + 0x4562, 0x4563, 0x4564, 0x4565, 0x4566, 0x4567, 0x4568, 0x4569, + 0x456a, 0x456b, 0x456c, 0x456d, 0x456e, 0x456f, 0x4570, 0x4571, + 0x4572, 0x4573, 0x4574, 0x4575, 0x4576, 0x4577, 0x4578, 0x4579, + 0x457a, 0x457b, 0x457c, 0x457d, 0x457e, 0x4621, 0x4622, 0x4623, + 0x4624, 0x4625, 0x4626, 0x4627, 0x4628, 0x4629, 0x462a, 0x462b, + 0x462c, 0x462d, 0x462e, 0x462f, 0x4630, 0x4631, 0x4632, 0x4633, + 0x4634, 0x4635, 0x4636, 0x4637, 0x4638, 0x4639, 0x463a, 0x463b, + 0x463c, 0x463d, 0x463e, 0x463f, 0x4640, 0x4641, 0x4642, 0x4643, + 0x4644, 0x4645, 0x4646, 0x4647, 0x4648, 0x4649, 0x464a, 0x464b, + 0x464c, 0x464d, 0x464e, 0x464f, 0x4650, 0x4651, 0x4652, 0x4653, + 0x4654, 0x4655, 0x4656, 0x4657, 0x4658, 0x4659, 0x465a, 0x465b, + 0x465c, 0x465d, 0x465e, 0x465f, 0x4660, 0x4736, 0x4661, 0x4662, + 0x4663, 0x4664, 0x4665, 0x4666, 0x4667, 0x4668, 0x4669, 0x466a, + 0x466b, 0x466c, 0x466d, 0x466e, 0x466f, 0x4670, 0x4671, 0x4672, + 0x4673, 0x4674, 0x4675, 0x4676, 0x4677, 0x4678, 0x4679, 0x467a, + 0x467b, 0x467c, 0x467d, 0x467e, 0x4721, 0x4722, 0x4723, 0x4724, + 0x4725, 0x4726, 0x4727, 0x4728, 0x4729, 0x472a, 0x472b, 0x472c, + 0x472d, 0x472e, 0x472f, 0x4730, 0x4731, 0x4732, 0x4733, 0x4734, + 0x4735, 0x4737, 0x4738, 0x4739, 0x473a, 0x473b, 0x473c, 0x473d, + 0x473e, 0x473f, 0x4740, 0x4741, 0x4742, 0x4743, 0x4744, 0x4745, + 0x4746, 0x4747, 0x4748, 0x4749, 0x474a, 0x474b, 0x474c, 0x474d, + 0x474e, 0x474f, 0x4750, 0x4751, 0x4752, 0x4753, 0x4754, 0x4755, + 0x4756, 0x4757, 0x4758, 0x4759, 0x475a, 0x475b, 0x475c, 0x475d, + 0x475e, 0x475f, 0x4760, 0x4761, 0x4762, 0x4763, 0x4764, 0x4765, + 0x4766, 0x4767, 0x4768, 0x4769, 0x476a, 0x476b, 0x476c, 0x476d, + 0x476e, 0x476f, 0x4770, 0x4771, 0x4772, 0x4773, 0x4774, 0x4775, + 0x4776, 0x4777, 0x4778, 0x4779, 0x477a, 0x477b, 0x477c, 0x477d, + 0x477e, 0x4821, 0x4822, 0x4823, 0x4824, 0x4825, 0x4826, 0x4827, + 0x4828, 0x4829, 0x482a, 0x482b, 0x482c, 0x482d, 0x482e, 0x482f, + 0x4830, 0x4831, 0x4832, 0x4833, 0x4834, 0x4835, 0x4836, 0x4837, + 0x4838, 0x4839, 0x483a, 0x483b, 0x483c, 0x483d, 0x483e, 0x483f, + 0x4840, 0x4841, 0x4842, 0x4843, 0x4844, 0x4845, 0x4846, 0x4847, + 0x4848, 0x4849, 0x484a, 0x484b, 0x484c, 0x4853, 0x484d, 0x484e, + 0x484f, 0x4850, 0x4851, 0x4852, 0x4854, 0x4855, 0x4856, 0x4857, + 0x4858, 0x4859, 0x485a, 0x485b, 0x485c, 0x485d, 0x485e, 0x485f, + 0x4860, 0x4861, 0x4862, 0x4863, 0x4864, 0x4865, 0x4866, 0x4867, + 0x4868, 0x4869, 0x486a, 0x486b, 0x486c, 0x486d, 0x486e, 0x486f, + 0x4870, 0x4871, 0x4872, 0x4873, 0x4874, 0x4875, 0x4876, 0x4877, + 0x4878, 0x4879, 0x487a, 0x487b, 0x487c, 0x487d, 0x487e, 0x4921, + 0x4922, 0x4923, 0x4924, 0x4925, 0x4926, 0x4927, 0x4928, 0x4929, + 0x492a, 0x492b, 0x492c, 0x492d, 0x492e, 0x492f, 0x4930, 0x4931, + 0x4932, 0x4933, 0x4934, 0x4935, 0x4936, 0x4937, 0x4938, 0x4939, + 0x493a, 0x493b, 0x493c, 0x4941, 0x493d, 0x493e, 0x493f, 0x4940, + 0x4942, 0x4943, 0x4944, 0x4945, 0x4946, 0x4947, 0x4948, 0x4949, + 0x494a, 0x494b, 0x494c, 0x494d, 0x494e, 0x494f, 0x4950, 0x4951, + 0x4952, 0x4953, 0x4954, 0x4955, 0x4956, 0x4957, 0x4958, 0x4959, + 0x495a, 0x495b, 0x495c, 0x495d, 0x495e, 0x495f, 0x4960, 0x4961, + 0x4962, 0x4963, 0x4964, 0x4965, 0x4966, 0x4967, 0x4968, 0x4969, + 0x496a, 0x496b, 0x496c, 0x496d, 0x496e, 0x496f, 0x4970, 0x4971, + 0x4972, 0x4973, 0x4974, 0x4975, 0x4976, 0x4977, 0x4978, 0x4979, + 0x497a, 0x497b, 0x497c, 0x497d, 0x497e, 0x4a21, 0x4a22, 0x4a23, + 0x4a24, 0x4a25, 0x4a26, 0x4a27, 0x4a28, 0x4a29, 0x4a2a, 0x4a2b, + 0x4a2c, 0x4a2d, 0x4a2e, 0x4a2f, 0x4a30, 0x4a31, 0x4a32, 0x4a33, + 0x4a34, 0x4a35, 0x4a36, 0x4a37, 0x4a38, 0x4a39, 0x4a3a, 0x4a3b, + 0x4a3c, 0x4a3d, 0x4a3e, 0x4a3f, 0x4a40, 0x4a41, 0x4a42, 0x4a43, + 0x4a44, 0x4a45, 0x4a46, 0x4a47, 0x4a48, 0x4a49, 0x4a4a, 0x4a4b, + 0x4a4c, 0x4a4d, 0x4a4e, 0x4a4f, 0x4a50, 0x4a51, 0x4a52, 0x4a53, + 0x4a54, 0x4a55, 0x4a56, 0x4a57, 0x4a58, 0x4a59, 0x4a5a, 0x4a5b, + 0x4a5c, 0x4a5d, 0x4a5e, 0x4a5f, 0x4a60, 0x4a61, 0x4a62, 0x4a63, + 0x4a64, 0x4a65, 0x4a66, 0x4a67, 0x4a68, 0x4a69, 0x4a6a, 0x4a6b, + 0x4a6c, 0x4a6d, 0x4a6e, 0x4a6f, 0x4a70, 0x4a71, 0x4a72, 0x4a73, + 0x4a74, 0x4a75, 0x4a76, 0x4a77, 0x4a78, 0x4a79, 0x4a7a, 0x4a7b, + 0x4a7c, 0x4a7d, 0x4a7e, 0x4b21, 0x4b22, 0x4b23, 0x4b24, 0x4b25, + 0x4b26, 0x4b27, 0x4b28, 0x4b29, 0x4b2a, 0x4b2b, 0x4b2c, 0x4b2d, + 0x4b2e, 0x4b2f, 0x4b30, 0x4b31, 0x4b32, 0x4b33, 0x4b34, 0x4b35, + 0x4b36, 0x4b37, 0x4b38, 0x4b39, 0x4b3a, 0x4b3b, 0x4b3c, 0x4b3d, + 0x4b3e, 0x4b3f, 0x4b40, 0x4b41, 0x4b42, 0x4b43, 0x4b44, 0x4b45, + 0x4b46, 0x4b47, 0x4b48, 0x4b49, 0x4b4a, 0x4b4b, 0x4b4c, 0x4b4d, + 0x4b4e, 0x4b4f, 0x4b50, 0x4b51, 0x4b52, 0x4b53, 0x4b54, 0x4b55, + 0x4b56, 0x4b57, 0x4b58, 0x4b59, 0x4b5a, 0x4b5b, 0x4b5c, 0x4b5d, + 0x4b5e, 0x4b5f, 0x4b60, 0x4b61, 0x4b62, 0x4b63, 0x4b64, 0x4b65, + 0x4b66, 0x4b67, 0x4b68, 0x4b69, 0x4b6a, 0x4b6b, 0x4b6c, 0x4b6d, + 0x4b6e, 0x4b6f, 0x4b70, 0x4b71, 0x4b72, 0x4b73, 0x4b74, 0x4b75, + 0x4b76, 0x4b77, 0x4b78, 0x4b79, 0x4b7a, 0x4b7b, 0x4b7c, 0x4b7d, + 0x4b7e, 0x4c21, 0x4c22, 0x4c23, 0x4c24, 0x4c25, 0x4c26, 0x4c27, + 0x4c28, 0x4c29, 0x4c2a, 0x4c2b, 0x4c2c, 0x4c2d, 0x4c2e, 0x4c2f, + 0x4c30, 0x4c31, 0x4c32, 0x4c33, 0x4c34, 0x4c35, 0x4c36, 0x4c37, + 0x4c38, 0x4c39, 0x4c3a, 0x4c3b, 0x4c3c, 0x4c3d, 0x4c3e, 0x4c3f, + 0x4c40, 0x4c41, 0x4c42, 0x4c43, 0x4c44, 0x4c45, 0x4c46, 0x4c47, + 0x4c48, 0x4c49, 0x4c4a, 0x4c4b, 0x4c4c, 0x4c4d, 0x4c4e, 0x4c4f, + 0x4c50, 0x4c51, 0x4c52, 0x4c53, 0x4c54, 0x4c55, 0x4c56, 0x4c57, + 0x4c58, 0x4c59, 0x4c5a, 0x4c5b, 0x4c5c, 0x4c5d, 0x4c5e, 0x4c5f, + 0x4c60, 0x4c61, 0x4c62, 0x4c63, 0x4c64, 0x4c65, 0x4c66, 0x4c67, + 0x4c68, 0x4c69, 0x4c6a, 0x4c6b, 0x4c6c, 0x4c6d, 0x4c6e, 0x4c6f, + 0x4c70, 0x4c71, 0x4c72, 0x4c73, 0x4c74, 0x4c75, 0x4c76, 0x4c77, + 0x4c78, 0x4c79, 0x4c7a, 0x4c7b, 0x4c7c, 0x4c7d, 0x4c7e, 0x4d21, + 0x4d22, 0x4d23, 0x4d24, 0x4d25, 0x4d26, 0x4d27, 0x4d28, 0x4d29, + 0x4d2a, 0x4d2b, 0x4d2c, 0x4d2d, 0x4d2e, 0x4d2f, 0x4d30, 0x4d31, + 0x4d32, 0x4d33, 0x4d34, 0x4d35, 0x4d36, 0x4d37, 0x4d38, 0x4d39, + 0x4d3a, 0x4d3b, 0x4d3c, 0x4d3d, 0x4d3e, 0x4d3f, 0x4d40, 0x4d41, + 0x4d42, 0x4d43, 0x4d44, 0x4d45, 0x4d46, 0x4d47, 0x4d48, 0x4d49, + 0x4d4a, 0x4d4b, 0x4d4c, 0x4d4d, 0x4d4e, 0x4d4f, 0x4d50, 0x4d51, + 0x4d52, 0x4d53, 0x4d54, 0x4d55, 0x4d56, 0x4d57, 0x4d58, 0x4d59, + 0x4d5a, 0x4d5b, 0x4d5c, 0x4d5d, 0x4d5e, 0x4d5f, 0x4d60, 0x4d61, + 0x4d62, 0x4d63, 0x4d64, 0x4d65, 0x4d66, 0x4d67, 0x4d68, 0x4d69, + 0x4d6a, 0x4d6b, 0x4d6c, 0x4d6d, 0x4d6e, 0x4d6f, 0x4d70, 0x4d71, + 0x4d72, 0x4d73, 0x4d74, 0x4d75, 0x4d76, 0x4d77, 0x4d78, 0x4d79, + 0x4d7a, 0x4d7b, 0x4d7c, 0x4d7d, 0x4d7e, 0x4e21, 0x4e22, 0x4e24, + 0x4e25, 0x4e26, 0x4e27, 0x4e28, 0x4e29, 0x4e23, 0x4e2a, 0x4e2b, + 0x4e2c, 0x4e2d, 0x4e2e, 0x4e2f, 0x4e30, 0x4e31, 0x4e32, 0x4e33, + 0x4e34, 0x4e35, 0x4e36, 0x4e37, 0x4e38, 0x4e39, 0x4e3a, 0x4e3b, + 0x4e3c, 0x4e3d, 0x4e3e, 0x4e3f, 0x4e40, 0x4e41, 0x4e42, 0x4e43, + 0x4e44, 0x4e45, 0x4e46, 0x4e47, 0x4e48, 0x4e49, 0x4e4a, 0x4e4b, + 0x4e4c, 0x4e4d, 0x4e4e, 0x4e4f, 0x4e50, 0x4e51, 0x4e52, 0x4e53, + 0x4e54, 0x4e55, 0x4e56, 0x4e57, 0x4e58, 0x4e59, 0x4e5a, 0x4e5b, + 0x4e5c, 0x4e5d, 0x4e5e, 0x4e5f, 0x4e60, 0x4e61, 0x4e62, 0x4e63, + 0x4e64, 0x4e65, 0x4e66, 0x4e67, 0x4e68, 0x4e69, 0x4e6a, 0x4e6b, + 0x4e6c, 0x4e6d, 0x4e6e, 0x4e6f, 0x4e70, 0x4e71, 0x4e72, 0x4e73, + 0x4e74, 0x4e75, 0x4e76, 0x4e77, 0x4e78, 0x4e79, 0x4e7a, 0x4e7b, + 0x4e7c, 0x4e7d, 0x4e7e, 0x4f21, 0x4f22, 0x4f23, 0x4f24, 0x4f25, + 0x4f26, 0x4f27, 0x4f28, 0x4f29, 0x4f2a, 0x4f2b, 0x4f2c, 0x4f2d, + 0x4f2e, 0x4f2f, 0x4f30, 0x4f31, 0x4f32, 0x4f33, 0x4f34, 0x4f35, + 0x4f36, 0x4f37, 0x4f38, 0x4f39, 0x4f3a, 0x4f3b, 0x4f3c, 0x4f3d, + 0x4f3e, 0x4f3f, 0x4f40, 0x4f41, 0x4f42, 0x4f43, 0x4f44, 0x4f45, + 0x4f46, 0x4f47, 0x4f48, 0x4f49, 0x4f4a, 0x4f4b, 0x4f4c, 0x4f4d, + 0x4f4e, 0x4f4f, 0x4f50, 0x4f51, 0x4f52, 0x4f53, 0x4f54, 0x4f55, + 0x4f56, 0x4f57, 0x4f58, 0x4f59, 0x4f5a, 0x4f5b, 0x4f5c, 0x4f5d, + 0x4f5e, 0x4f5f, 0x4f60, 0x4f61, 0x4f62, 0x4f63, 0x4f64, 0x4f65, + 0x4f66, 0x4f67, 0x4f68, 0x4f69, 0x4f6a, 0x4f6b, 0x4f6c, 0x4f6d, + 0x4f6e, 0x4f6f, 0x4f70, 0x4f71, 0x4f72, 0x4f74, 0x4f75, 0x4f76, + 0x4f73, 0x4f77, 0x4f78, 0x4f79, 0x4f7a, 0x4f7b, 0x4f7c, 0x4f7d, + 0x4f7e, 0x5021, 0x5022, 0x5023, 0x5024, 0x5025, 0x5026, 0x5027, + 0x5028, 0x5029, 0x502a, 0x502b, 0x502c, 0x502e, 0x502f, 0x5030, + 0x5031, 0x502d, 0x5032, 0x5033, 0x5034, 0x5035, 0x5037, 0x5038, + 0x5039, 0x503a, 0x503b, 0x5036, 0x503c, 0x503d, 0x503e, 0x503f, + 0x5040, 0x5041, 0x5042, 0x5043, 0x5044, 0x5045, 0x5046, 0x5047, + 0x5048, 0x5049, 0x504a, 0x504b, 0x504c, 0x504d, 0x504e, 0x504f, + 0x5050, 0x5051, 0x5052, 0x5053, 0x5054, 0x5055, 0x5056, 0x5057, + 0x5058, 0x5059, 0x505a, 0x505b, 0x505c, 0x505d, 0x505e, 0x505f, + 0x5060, 0x5061, 0x5062, 0x5063, 0x5064, 0x5065, 0x5066, 0x5067, + 0x5068, 0x5069, 0x506a, 0x506b, 0x506c, 0x506d, 0x506e, 0x506f, + 0x5070, 0x5071, 0x5072, 0x5073, 0x5074, 0x5075, 0x5076, 0x5077, + 0x5078, 0x5079, 0x507a, 0x507b, 0x507c, 0x507d, 0x507e, 0x5121, + 0x5122, 0x5123, 0x5124, 0x5125, 0x5126, 0x5127, 0x5128, 0x5129, + 0x512a, 0x512b, 0x512c, 0x512d, 0x512e, 0x512f, 0x5130, 0x5131, + 0x5132, 0x5133, 0x5134, 0x5135, 0x5136, 0x5137, 0x5138, 0x5139, + 0x513a, 0x513b, 0x513c, 0x513d, 0x513e, 0x513f, 0x5140, 0x5141, + 0x5142, 0x5143, 0x5144, 0x5145, 0x5146, 0x5147, 0x5148, 0x5149, + 0x514a, 0x514b, 0x514c, 0x514d, 0x514e, 0x514f, 0x5150, 0x5151, + 0x5152, 0x5153, 0x5154, 0x5155, 0x5156, 0x5157, 0x5158, 0x5159, + 0x515a, 0x515b, 0x515c, 0x515d, 0x515e, 0x515f, 0x5160, 0x5161, + 0x5162, 0x5163, 0x5164, 0x5165, 0x5166, 0x5167, 0x5168, 0x5169, + 0x516a, 0x516b, 0x516c, 0x516d, 0x516e, 0x516f, 0x5170, 0x5171, + 0x5172, 0x5173, 0x5174, 0x5175, 0x5176, 0x5177, 0x5178, 0x5179, + 0x517a, 0x517b, 0x517c, 0x517d, 0x517e, 0x5221, 0x5222, 0x5223, + 0x5224, 0x5225, 0x5226, 0x5227, 0x5228, 0x5229, 0x522a, 0x522b, + 0x522c, 0x522d, 0x522e, 0x522f, 0x5230, 0x5231, 0x5232, 0x5233, + 0x5234, 0x5235, 0x5236, 0x5237, 0x5238, 0x5239, 0x523a, 0x523b, + 0x523c, 0x523d, 0x523e, 0x523f, 0x5240, 0x5241, 0x5242, 0x5243, + 0x5244, 0x5245, 0x5246, 0x5247, 0x5248, 0x5249, 0x524a, 0x524b, + 0x524c, 0x524d, 0x524e, 0x524f, 0x5250, 0x5251, 0x5252, 0x5253, + 0x5254, 0x5255, 0x5256, 0x5257, 0x5258, 0x5259, 0x525a, 0x525b, + 0x525c, 0x525d, 0x525e, 0x525f, 0x5260, 0x5261, 0x5262, 0x5263, + 0x5264, 0x5265, 0x5266, 0x5267, 0x5268, 0x5269, 0x526a, 0x526b, + 0x526c, 0x526d, 0x526e, 0x526f, 0x5270, 0x5271, 0x5272, 0x5273, + 0x5274, 0x5276, 0x5277, 0x5278, 0x5275, 0x5279, 0x527a, 0x527b, + 0x527c, 0x527d, 0x527e, 0x5321, 0x5322, 0x5323, 0x5324, 0x5325, + 0x5326, 0x5327, 0x5328, 0x5329, 0x532a, 0x532b, 0x532c, 0x532d, + 0x532e, 0x532f, 0x5330, 0x5331, 0x5332, 0x5333, 0x5334, 0x5335, + 0x5336, 0x5337, 0x5338, 0x5339, 0x533a, 0x533b, 0x533c, 0x533d, + 0x533e, 0x533f, 0x5340, 0x5341, 0x5342, 0x5343, 0x5344, 0x5345, + 0x5346, 0x5347, 0x5348, 0x5349, 0x534a, 0x534b, 0x534c, 0x534d, + 0x534e, 0x534f, 0x5350, 0x5351, 0x5352, 0x5353, 0x5354, 0x5355, + 0x5356, 0x5357, 0x5358, 0x5359, 0x535a, 0x535b, 0x535c, 0x535d, + 0x535e, 0x535f, 0x5360, 0x5361, 0x5362, 0x5363, 0x5364, 0x5365, + 0x5366, 0x5367, 0x5368, 0x5369, 0x536a, 0x536b, 0x536c, 0x536d, + 0x536e, 0x536f, 0x5370, 0x5371, 0x5372, 0x5373, 0x5374, 0x5375, + 0x5376, 0x5377, 0x5378, 0x5379, 0x537a, 0x537b, 0x537c, 0x537d, + 0x537e, 0x5421, 0x5422, 0x5423, 0x5424, 0x5425, 0x5426, 0x5427, + 0x5428, 0x5429, 0x542a, 0x542b, 0x542c, 0x542d, 0x542e, 0x542f, + 0x5430, 0x5431, 0x5432, 0x5434, 0x5435, 0x5436, 0x5437, 0x5438, + 0x5439, 0x543a, 0x543b, 0x543c, 0x543d, 0x543e, 0x5433, 0x543f, + 0x5440, 0x5441, 0x5442, 0x5443, 0x5444, 0x5445, 0x5446, 0x5447, + 0x5448, 0x5449, 0x544a, 0x544b, 0x544c, 0x544d, 0x544e, 0x544f, + 0x5450, 0x5451, 0x5452, 0x5453, 0x5454, 0x5455, 0x5456, 0x5457, + 0x5458, 0x5459, 0x545a, 0x545b, 0x545c, 0x545d, 0x545e, 0x545f, + 0x5460, 0x5461, 0x5462, 0x5463, 0x5464, 0x5465, 0x5466, 0x5467, + 0x5468, 0x5469, 0x546a, 0x546c, 0x546b, 0x546d, 0x546e, 0x546f, + 0x5470, 0x5471, 0x5472, 0x5473, 0x5474, 0x5475, 0x5476, 0x5477, + 0x5478, 0x5479, 0x547a, 0x547b, 0x547c, 0x547d, 0x547e, 0x5521, + 0x5522, 0x5523, 0x5524, 0x5525, 0x5526, 0x5527, 0x5528, 0x5529, + 0x552a, 0x552b, 0x552c, 0x552d, 0x552e, 0x552f, 0x5530, 0x5531, + 0x5532, 0x5533, 0x5534, 0x5535, 0x5536, 0x5537, 0x5538, 0x5539, + 0x553a, 0x553b, 0x553c, 0x553d, 0x553e, 0x553f, 0x5540, 0x5541, + 0x5542, 0x5543, 0x5544, 0x5545, 0x5546, 0x5547, 0x5548, 0x5549, + 0x554a, 0x554b, 0x554c, 0x554d, 0x554e, 0x554f, 0x5550, 0x5551, + 0x5552, 0x5553, 0x5554, 0x5555, 0x5556, 0x5557, 0x5558, 0x5559, + 0x555a, 0x555b, 0x555c, 0x555d, 0x555e, 0x555f, 0x5560, 0x5561, + 0x5562, 0x5563, 0x5564, 0x5565, 0x5566, 0x5567, 0x5568, 0x5569, + 0x556a, 0x556b, 0x556c, 0x556d, 0x556e, 0x556f, 0x5570, 0x5571, + 0x5572, 0x5573, 0x5574, 0x5575, 0x5576, 0x5577, 0x5578, 0x5579, + 0x557a, 0x557b, 0x557c, 0x557d, 0x557e, 0x5621, 0x5622, 0x5623, + 0x5624, 0x5625, 0x5626, 0x5627, 0x5628, 0x5629, 0x562a, 0x562b, + 0x562c, 0x562d, 0x562e, 0x562f, 0x5630, 0x5631, 0x5632, 0x5633, + 0x5634, 0x5635, 0x5636, 0x5637, 0x5638, 0x5639, 0x563a, 0x563b, + 0x563c, 0x563d, 0x563e, 0x563f, 0x5640, 0x5641, 0x5642, 0x5643, + 0x5644, 0x5645, 0x5647, 0x5648, 0x5649, 0x564a, 0x564b, 0x5646, + 0x564c, 0x564d, 0x564e, 0x564f, 0x5650, 0x5651, 0x5652, 0x5653, + 0x5654, 0x5656, 0x5657, 0x5658, 0x5655, 0x5659, 0x565a, 0x565b, + 0x565c, 0x565d, 0x565e, 0x565f, 0x5660, 0x5661, 0x5662, 0x5663, + 0x5664, 0x5665, 0x5666, 0x5667, 0x5668, 0x5669, 0x566a, 0x566b, + 0x566c, 0x566d, 0x566e, 0x566f, 0x5670, 0x5671, 0x5672, 0x5673, + 0x5674, 0x5675, 0x5676, 0x5677, 0x5678, 0x5679, 0x567a, 0x567b, + 0x567c, 0x567d, 0x567e, 0x5721, 0x5722, 0x5723, 0x5724, 0x5725, + 0x5726, 0x5727, 0x5728, 0x5729, 0x572a, 0x572b, 0x572c, 0x572d, + 0x572e, 0x572f, 0x5730, 0x5731, 0x5732, 0x5733, 0x5734, 0x5735, + 0x5736, 0x5737, 0x5738, 0x5739, 0x573a, 0x573b, 0x573c, 0x573d, + 0x573e, 0x573f, 0x5740, 0x5741, 0x5742, 0x5743, 0x5744, 0x5745, + 0x5746, 0x5747, 0x5748, 0x5749, 0x574a, 0x574b, 0x574c, 0x574d, + 0x574e, 0x574f, 0x5750, 0x5751, 0x5752, 0x5753, 0x5754, 0x5755, + 0x5756, 0x5757, 0x5758, 0x5759, 0x575a, 0x575b, 0x575c, 0x575d, + 0x575e, 0x575f, 0x5760, 0x5761, 0x5762, 0x5764, 0x5765, 0x5766, + 0x5767, 0x5768, 0x5769, 0x576a, 0x576b, 0x576c, 0x576d, 0x576e, + 0x576f, 0x5770, 0x5771, 0x5772, 0x5773, 0x5774, 0x5775, 0x5776, + 0x5777, 0x5778, 0x5779, 0x583e, 0x5763, 0x577a, 0x577b, 0x577c, + 0x577d, 0x577e, 0x5821, 0x5822, 0x5823, 0x5824, 0x5825, 0x5826, + 0x5827, 0x5828, 0x5829, 0x582a, 0x582b, 0x582c, 0x582d, 0x582e, + 0x582f, 0x5830, 0x5831, 0x5832, 0x5833, 0x584c, 0x5834, 0x5835, + 0x5836, 0x5837, 0x5838, 0x5839, 0x583a, 0x583b, 0x583c, 0x583d, + 0x583f, 0x5840, 0x5841, 0x5842, 0x5843, 0x5844, 0x5845, 0x5846, + 0x5847, 0x5848, 0x5849, 0x584a, 0x584b, 0x584d, 0x584e, 0x584f, + 0x5850, 0x5851, 0x5852, 0x5853, 0x5854, 0x5855, 0x5856, 0x5857, + 0x5858, 0x5859, 0x585a, 0x585b, 0x585c, 0x585d, 0x585e, 0x585f, + 0x5860, 0x5861, 0x5862, 0x5863, 0x5864, 0x5865, 0x5866, 0x5867, + 0x5868, 0x5869, 0x586a, 0x586b, 0x586c, 0x586d, 0x586e, 0x586f, + 0x5870, 0x5871, 0x5872, 0x5873, 0x5874, 0x5875, 0x5876, 0x5877, + 0x5878, 0x5879, 0x587a, 0x587b, 0x587c, 0x587d, 0x587e, 0x5921, + 0x5922, 0x5923, 0x5924, 0x5925, 0x5926, 0x5927, 0x5928, 0x592a, + 0x592b, 0x592c, 0x592d, 0x592e, 0x592f, 0x5930, 0x5931, 0x5932, + 0x5933, 0x5934, 0x5935, 0x5936, 0x5937, 0x5938, 0x5939, 0x593a, + 0x593b, 0x593c, 0x5929, 0x593d, 0x593e, 0x593f, 0x5940, 0x5941, + 0x5942, 0x5943, 0x5944, 0x5945, 0x5946, 0x5947, 0x5948, 0x5949, + 0x594a, 0x594b, 0x594c, 0x594d, 0x594e, 0x594f, 0x5950, 0x5951, + 0x5952, 0x5953, 0x5954, 0x5955, 0x5956, 0x5957, 0x5958, 0x5959, + 0x595a, 0x595b, 0x595c, 0x595d, 0x595e, 0x595f, 0x5960, 0x5961, + 0x5962, 0x5963, 0x5964, 0x5965, 0x5966, 0x5974, 0x5967, 0x5968, + 0x5969, 0x596a, 0x596b, 0x596c, 0x596d, 0x596e, 0x596f, 0x5970, + 0x5971, 0x5972, 0x5973, 0x5975, 0x5976, 0x5977, 0x5978, 0x5979, + 0x597a, 0x597b, 0x597c, 0x597d, 0x597e, 0x5a21, 0x5a22, 0x5a23, + 0x5a24, 0x5a25, 0x5a26, 0x5a27, 0x5a28, 0x5a29, 0x5a2a, 0x5a2b, + 0x5a2c, 0x5a2d, 0x5a2e, 0x5a2f, 0x5a30, 0x5a31, 0x5a32, 0x5a33, + 0x5a34, 0x5a35, 0x5a36, 0x3866, 0x5a37, 0x5a38, 0x5a39, 0x5a3a, + 0x5a3b, 0x5a3c, 0x5a3d, 0x5a3e, 0x5a3f, 0x5a40, 0x5a41, 0x5a42, + 0x5a43, 0x5a44, 0x5a45, 0x5a46, 0x5a47, 0x5a48, 0x5a49, 0x5a4a, + 0x5a4b, 0x5a6d, 0x5a4c, 0x5a4d, 0x5a4e, 0x5a4f, 0x5a50, 0x5a51, + 0x5a52, 0x5a53, 0x5a54, 0x5a55, 0x5a56, 0x5a57, 0x5a58, 0x5a59, + 0x5a5a, 0x5a5b, 0x5a5c, 0x5a5d, 0x5a5e, 0x5a5f, 0x5a60, 0x5a61, + 0x5a62, 0x5a63, 0x5a64, 0x5a65, 0x5a66, 0x5a67, 0x5a68, 0x5a69, + 0x5a6a, 0x5a6b, 0x5a6c, 0x5a6e, 0x5a6f, 0x5a70, 0x5a71, 0x5a72, + 0x5a73, 0x5a74, 0x5a75, 0x5a76, 0x5a77, 0x5a78, 0x5a79, 0x5a7a, + 0x5a7b, 0x5a7c, 0x5a7d, 0x5a7e, 0x5b21, 0x5b22, 0x5b23, 0x5b24, + 0x5b25, 0x5b26, 0x5b27, 0x5b28, 0x5b29, 0x5b2a, 0x5b2b, 0x5b2c, + 0x5b2d, 0x5b2e, 0x5b2f, 0x5b30, 0x5b31, 0x5b32, 0x5b33, 0x5b34, + 0x5b35, 0x5b36, 0x5b37, 0x5b38, 0x5b39, 0x5b3a, 0x5b3b, 0x5b3c, + 0x5b3d, 0x5b3e, 0x5b3f, 0x5b40, 0x5b41, 0x5b42, 0x5b43, 0x5b44, + 0x5b45, 0x5b46, 0x5b47, 0x5b48, 0x5b49, 0x5b4a, 0x5b4b, 0x5b4c, + 0x5b4d, 0x5b4e, 0x5b4f, 0x5b50, 0x5b51, 0x5b52, 0x5b53, 0x5b54, + 0x5b55, 0x5b56, 0x5b57, 0x5b58, 0x5b59, 0x5b5a, 0x5b5b, 0x5b5c, + 0x5b5d, 0x5b5e, 0x5b5f, 0x5b60, 0x5b61, 0x5b62, 0x5b63, 0x5b64, + 0x5b65, 0x5b66, 0x5b67, 0x5b68, 0x5b69, 0x5b6a, 0x5b6b, 0x5b6c, + 0x5b6d, 0x5b6e, 0x5b70, 0x5b71, 0x5b72, 0x5b73, 0x5b6f, 0x5b74, + 0x5b75, 0x5b76, 0x5b77, 0x5b78, 0x5b79, 0x5b7a, 0x5b7b, 0x5b7c, + 0x5b7d, 0x5b7e, 0x5c21, 0x5c22, 0x5c23, 0x5c24, 0x5c25, 0x5c26, + 0x5c27, 0x5c28, 0x5c29, 0x5c2a, 0x5c2b, 0x5c2c, 0x5c2d, 0x5c2e, + 0x5c2f, 0x5c30, 0x5c31, 0x5c32, 0x5c33, 0x5c34, 0x5c35, 0x5c36, + 0x5c37, 0x5c38, 0x5c39, 0x5c3a, 0x5c3b, 0x5c3c, 0x5c3d, 0x5c3e, + 0x5c3f, 0x5c40, 0x5c41, 0x5c42, 0x5c43, 0x5c44, 0x5c45, 0x5c46, + 0x5c47, 0x5c48, 0x5c49, 0x5c4a, 0x5c4b, 0x5c4c, 0x5c4d, 0x5c4e, + 0x5c4f, 0x5c50, 0x5c51, 0x5c52, 0x5c53, 0x5c54, 0x5c55, 0x5c56, + 0x5c57, 0x5c58, 0x5c59, 0x5c5a, 0x5c5b, 0x5c5c, 0x5c5d, 0x5c5e, + 0x5c5f, 0x5c60, 0x5c61, 0x5c62, 0x5c63, 0x5c64, 0x5c65, 0x5c66, + 0x5c67, 0x5c68, 0x5c69, 0x5c6a, 0x5c6b, 0x5c6c, 0x5c6d, 0x5c6e, + 0x5c6f, 0x5c70, 0x5c71, 0x5c72, 0x5c73, 0x5c74, 0x5c75, 0x5c76, + 0x5c77, 0x5c78, 0x5c79, 0x5c7a, 0x5c7b, 0x5c7c, 0x5c7d, 0x5c7e, + 0x5d21, 0x5d22, 0x5d23, 0x5d24, 0x5d25, 0x5d26, 0x5d27, 0x5d28, + 0x5d29, 0x5d2a, 0x5d2b, 0x5d2c, 0x5d2d, 0x5d2e, 0x5d2f, 0x5d30, + 0x5d31, 0x5d32, 0x5d33, 0x5d34, 0x5d35, 0x5d36, 0x5d37, 0x5d38, + 0x5d39, 0x5d3a, 0x5d3b, 0x5d3c, 0x5d3d, 0x5d3e, 0x5d3f, 0x5d40, + 0x5d41, 0x5d42, 0x5d43, 0x5d44, 0x5d45, 0x5d46, 0x5d47, 0x5d48, + 0x5d49, 0x5d4a, 0x5d4b, 0x5d4c, 0x5d4d, 0x5d4e, 0x5d4f, 0x5d50, + 0x5d51, 0x5d52, 0x5d53, 0x5d54, 0x5d55, 0x5d56, 0x5d57, 0x5d58, + 0x5d59, 0x5d5a, 0x5d5b, 0x5d5c, 0x5d5d, 0x5d5e, 0x5d5f, 0x5d60, + 0x5d61, 0x5d62, 0x5d63, 0x5d64, 0x5d65, 0x5d66, 0x5d67, 0x5d68, + 0x5d69, 0x5d6a, 0x5d6b, 0x5d6c, 0x5d6d, 0x5d6e, 0x5d6f, 0x5d70, + 0x5d71, 0x5d72, 0x5d73, 0x5d74, 0x5d75, 0x5d76, 0x5d77, 0x5d78, + 0x5d79, 0x5d7a, 0x5d7b, 0x5d7c, 0x5d7d, 0x5d7e, 0x5e21, 0x5e22, + 0x5e23, 0x5e24, 0x5e25, 0x5e26, 0x5e27, 0x5e28, 0x5e29, 0x5e2a, + 0x5e2b, 0x5e2c, 0x5e2d, 0x5e2e, 0x5e2f, 0x5e30, 0x5e31, 0x5e32, + 0x5e33, 0x5e34, 0x5e35, 0x5e36, 0x5e37, 0x5e38, 0x5e39, 0x5e3f, + 0x5e3a, 0x5e3b, 0x5e3c, 0x5e3d, 0x5e3e, 0x5e40, 0x5e41, 0x5e42, + 0x5e43, 0x5e44, 0x5e45, 0x5e46, 0x5e47, 0x5e48, 0x5e49, 0x5e4e, + 0x5e4a, 0x5e4b, 0x5e4c, 0x5e4d, 0x5e4f, 0x5e50, 0x5e51, 0x5e52, + 0x5e53, 0x5e54, 0x5e55, 0x5e56, 0x5e57, 0x5e58, 0x5e59, 0x5e5a, + 0x5e5b, 0x5e5c, 0x5e5d, 0x5e5e, 0x5e5f, 0x5e60, 0x5e61, 0x5e62, + 0x5e63, 0x5e64, 0x5e65, 0x5e66, 0x5e67, 0x5e68, 0x5e69, 0x5e6a, + 0x5e6b, 0x5e6c, 0x5e6d, 0x5e6e, 0x5e6f, 0x5e72, 0x5e70, 0x5e71, + 0x5e73, 0x5e74, 0x5e75, 0x5e76, 0x5e77, 0x5e78, 0x5e79, 0x5e7a, + 0x5e7b, 0x5e7c, 0x5e7d, 0x5e7e, 0x5f21, 0x5f22, 0x5f23, 0x5f24, + 0x5f25, 0x5f26, 0x5f27, 0x5f28, 0x5f29, 0x5f2a, 0x5f2b, 0x5f2c, + 0x5f2d, 0x5f2e, 0x5f2f, 0x5f30, 0x5f32, 0x5f31, 0x5f33, 0x5f34, + 0x5f35, 0x5f36, 0x5f37, 0x5f38, 0x5f39, 0x5f3a, 0x5f3b, 0x5f3c, + 0x5f3d, 0x5f3e, 0x5f3f, 0x5f40, 0x5f41, 0x5f42, 0x5f43, 0x5f44, + 0x5f45, 0x5f46, 0x5f47, 0x5f48, 0x5f49, 0x5f4a, 0x5f4b, 0x5f4c, + 0x5f4d, 0x5f4e, 0x5f4f, 0x5f50, 0x5f51, 0x5f52, 0x5f53, 0x5f54, + 0x5f55, 0x5f56, 0x5f57, 0x5f58, 0x5f59, 0x5f5a, 0x5f5b, 0x5f5c, + 0x5f5d, 0x5f6f, 0x5f5e, 0x5f5f, 0x5f60, 0x5f61, 0x5f62, 0x5f63, + 0x5f64, 0x5f65, 0x5f66, 0x5f67, 0x5f68, 0x5f69, 0x5f6a, 0x5f6b, + 0x5f6c, 0x5f6d, 0x5f6e, 0x5f70, 0x5f71, 0x5f72, 0x5f73, 0x5f74, + 0x5f75, 0x5f76, 0x5f77, 0x5f78, 0x5f79, 0x5f7a, 0x5f7b, 0x5f7c, + 0x5f7d, 0x5f7e, 0x6021, 0x6022, 0x6023, 0x6024, 0x6025, 0x6026, + 0x6027, 0x6028, 0x6029, 0x602a, 0x602b, 0x602c, 0x602d, 0x602e, + 0x602f, 0x6030, 0x6031, 0x6032, 0x6033, 0x6034, 0x6035, 0x6036, + 0x6037, 0x6038, 0x6039, 0x603a, 0x603b, 0x603c, 0x603d, 0x603e, + 0x603f, 0x6040, 0x6041, 0x6042, 0x6043, 0x6044, 0x6045, 0x6046, + 0x6047, 0x6048, 0x6049, 0x604a, 0x604b, 0x604c, 0x604d, 0x604e, + 0x604f, 0x6050, 0x6051, 0x6052, 0x6053, 0x6054, 0x6055, 0x6056, + 0x6057, 0x6058, 0x6059, 0x605a, 0x605b, 0x605c, 0x605d, 0x6064, + 0x605e, 0x605f, 0x6060, 0x6061, 0x6062, 0x6063, 0x6065, 0x6066, + 0x6067, 0x6068, 0x6069, 0x606a, 0x606b, 0x606c, 0x606d, 0x606e, + 0x606f, 0x6070, 0x6071, 0x6072, 0x6073, 0x6074, 0x6075, 0x6076, + 0x6077, 0x6078, 0x6079, 0x607a, 0x607b, 0x607c, 0x607d, 0x607e, + 0x6121, 0x6122, 0x6123, 0x6124, 0x6125, 0x6126, 0x6127, 0x6128, + 0x6129, 0x612a, 0x612b, 0x612c, 0x612d, 0x612e, 0x612f, 0x6130, + 0x6131, 0x6132, 0x6133, 0x6134, 0x6135, 0x6136, 0x6137, 0x6138, + 0x6139, 0x613a, 0x613b, 0x613c, 0x613d, 0x613e, 0x613f, 0x6140, + 0x6141, 0x6142, 0x6143, 0x6144, 0x6145, 0x6146, 0x6147, 0x6148, + 0x6149, 0x614a, 0x614b, 0x614c, 0x614d, 0x614e, 0x614f, 0x6150, + 0x6151, 0x6152, 0x6154, 0x6155, 0x6156, 0x6153, 0x6157, 0x6158, + 0x6159, 0x615a, 0x615b, 0x615c, 0x615d, 0x615e, 0x615f, 0x6160, + 0x6161, 0x6162, 0x6163, 0x6164, 0x6165, 0x6166, 0x6167, 0x6168, + 0x6169, 0x616a, 0x616b, 0x616c, 0x616d, 0x616e, 0x616f, 0x6170, + 0x6171, 0x6172, 0x6173, 0x6174, 0x6175, 0x6176, 0x6177, 0x6178, + 0x6179, 0x617a, 0x617b, 0x617d, 0x617e, 0x6221, 0x6222, 0x6223, + 0x6224, 0x617c, 0x622d, 0x6225, 0x6226, 0x6227, 0x6228, 0x6229, + 0x622a, 0x622b, 0x622c, 0x622f, 0x6230, 0x6231, 0x6232, 0x622e, + 0x6233, 0x6234, 0x6235, 0x6236, 0x6237, 0x6238, 0x6239, 0x623a, + 0x623b, 0x623c, 0x623d, 0x623e, 0x623f, 0x6240, 0x6241, 0x6242, + 0x6243, 0x6245, 0x6246, 0x6244, 0x6247, 0x6248, 0x6249, 0x624a, + 0x624b, 0x624c, 0x624d, 0x624e, 0x624f, 0x6250, 0x6251, 0x6252, + 0x6253, 0x6254, 0x6255, 0x6256, 0x6257, 0x6258, 0x6259, 0x625a, + 0x625b, 0x625c, 0x625d, 0x625e, 0x625f, 0x6260, 0x6261, 0x6262, + 0x6263, 0x6264, 0x6265, 0x6266, 0x6267, 0x6268, 0x6269, 0x626a, + 0x626b, 0x626c, 0x626d, 0x626e, 0x626f, 0x6270, 0x6271, 0x6272, + 0x6273, 0x6274, 0x6275, 0x6276, 0x6277, 0x6278, 0x6279, 0x627a, + 0x627b, 0x627c, 0x627d, 0x627e, 0x6321, 0x6322, 0x6323, 0x6324, + 0x6325, 0x6326, 0x6327, 0x6328, 0x6329, 0x632a, 0x632b, 0x632c, + 0x632d, 0x632e, 0x632f, 0x6330, 0x6331, 0x6332, 0x6333, 0x6334, + 0x6335, 0x6336, 0x6337, 0x6338, 0x6339, 0x633a, 0x633b, 0x633c, + 0x633d, 0x633e, 0x633f, 0x6340, 0x6341, 0x6342, 0x6343, 0x6344, + 0x6345, 0x6346, 0x6347, 0x6348, 0x6349, 0x634a, 0x634b, 0x634c, + 0x634d, 0x634e, 0x634f, 0x6350, 0x6351, 0x6352, 0x6353, 0x6354, + 0x6355, 0x6356, 0x6357, 0x6358, 0x6359, 0x635a, 0x635b, 0x635c, + 0x635d, 0x635e, 0x635f, 0x6360, 0x6361, 0x6362, 0x6363, 0x6364, + 0x6365, 0x6366, 0x6367, 0x6368, 0x6369, 0x636a, 0x636b, 0x636c, + 0x636d, 0x636e, 0x636f, 0x6370, 0x6371, 0x6372, 0x6373, 0x6374, + 0x6375, 0x6376, 0x6377, 0x6378, 0x6379, 0x637a, 0x637b, 0x637c, + 0x637d, 0x637e, 0x6421, 0x6422, 0x6423, 0x6424, 0x6425, 0x6426, + 0x6427, 0x6428, 0x6429, 0x642a, 0x642b, 0x642c, 0x642d, 0x642e, + 0x642f, 0x6430, 0x6431, 0x6432, 0x6433, 0x6434, 0x6435, 0x6436, + 0x6437, 0x6438, 0x6439, 0x643a, 0x643b, 0x643c, 0x643d, 0x643e, + 0x643f, 0x6440, 0x6441, 0x6442, 0x6443, 0x6444, 0x6445, 0x6446, + 0x6447, 0x6448, 0x6449, 0x644a, 0x644b, 0x644c, 0x644d, 0x644e, + 0x644f, 0x6450, 0x6451, 0x6452, 0x6453, 0x6454, 0x6455, 0x6456, + 0x6457, 0x6458, 0x6459, 0x645a, 0x645b, 0x645c, 0x645d, 0x645e, + 0x645f, 0x6460, 0x6461, 0x6462, 0x6463, 0x6464, 0x6465, 0x6466, + 0x6467, 0x6468, 0x6469, 0x646a, 0x646b, 0x646c, 0x646d, 0x646e, + 0x646f, 0x6470, 0x6471, 0x6472, 0x6473, 0x6474, 0x6475, 0x6476, + 0x6477, 0x6478, 0x6479, 0x647a, 0x647b, 0x647c, 0x647d, 0x647e, + 0x6521, 0x6522, 0x6523, 0x6524, 0x6525, 0x6526, 0x6527, 0x6528, + 0x6529, 0x652a, 0x652b, 0x652c, 0x652d, 0x652e, 0x652f, 0x6530, + 0x6531, 0x6532, 0x6533, 0x6534, 0x6535, 0x653b, 0x6536, 0x6537, + 0x6538, 0x6539, 0x653a, 0x653c, 0x653d, 0x653e, 0x653f, 0x6540, + 0x6541, 0x6542, 0x6543, 0x6544, 0x6545, 0x6546, 0x6547, 0x6548, + 0x6549, 0x654a, 0x654b, 0x654c, 0x654d, 0x654f, 0x6550, 0x654e, + 0x6551, 0x6552, 0x6553, 0x6554, 0x6555, 0x6556, 0x6557, 0x6558, + 0x6559, 0x655a, 0x655b, 0x655c, 0x655d, 0x655e, 0x655f, 0x6560, + 0x6561, 0x6562, 0x6563, 0x6564, 0x6565, 0x6566, 0x6568, 0x6567, + 0x6569, 0x656a, 0x656b, 0x656c, 0x656d, 0x656e, 0x656f, 0x6570, + 0x6571, 0x6572, 0x6573, 0x6574, 0x6575, 0x6576, 0x6577, 0x6578, + 0x6579, 0x657a, 0x657c, 0x657b, 0x657d, 0x657e, 0x6621, 0x6622, + 0x6623, 0x6624, 0x6625, 0x6626, 0x6627, 0x6628, 0x6629, 0x662a, + 0x662b, 0x662c, 0x662d, 0x662e, 0x662f, 0x6630, 0x6631, 0x6632, + 0x6633, 0x6634, 0x6635, 0x6636, 0x6637, 0x6638, 0x6639, 0x663a, + 0x663b, 0x663c, 0x663d, 0x663e, 0x663f, 0x6640, 0x6641, 0x6642, + 0x6643, 0x6644, 0x6645, 0x6646, 0x6647, 0x6648, 0x6649, 0x664a, + 0x664b, 0x664c, 0x664d, 0x664e, 0x664f, 0x6650, 0x6651, 0x6652, + 0x6653, 0x6654, 0x6655, 0x6656, 0x6657, 0x6658, 0x6659, 0x665a, + 0x665b, 0x665c, 0x665d, 0x665e, 0x665f, 0x6660, 0x6661, 0x6662, + 0x6663, 0x6664, 0x6665, 0x6666, 0x6667, 0x6668, 0x6669, 0x666a, + 0x666b, 0x666c, 0x666d, 0x666e, 0x666f, 0x6670, 0x6671, 0x6672, + 0x6673, 0x6675, 0x6676, 0x6677, 0x6678, 0x6679, 0x667a, 0x667b, + 0x667c, 0x667d, 0x667e, 0x6721, 0x6722, 0x6723, 0x6724, 0x6725, + 0x6726, 0x6727, 0x6728, 0x6729, 0x672a, 0x672b, 0x672c, 0x672d, + 0x672e, 0x672f, 0x6730, 0x6731, 0x6732, 0x6733, 0x6734, 0x6735, + 0x6736, 0x6737, 0x6738, 0x6739, 0x673a, 0x673b, 0x673c, 0x673d, + 0x673e, 0x673f, 0x6740, 0x6741, 0x6742, 0x6743, 0x6744, 0x6745, + 0x6746, 0x6747, 0x6748, 0x6749, 0x674a, 0x674b, 0x674c, 0x674d, + 0x674e, 0x674f, 0x6750, 0x6751, 0x6752, 0x6753, 0x6754, 0x6755, + 0x6756, 0x6757, 0x6758, 0x6759, 0x675a, 0x675b, 0x675c, 0x675d, + 0x675e, 0x675f, 0x6760, 0x6761, 0x6762, 0x6763, 0x6764, 0x6765, + 0x6766, 0x676a, 0x6767, 0x6768, 0x6769, 0x676b, 0x676c, 0x676d, + 0x676e, 0x676f, 0x6770, 0x6771, 0x6772, 0x6773, 0x6774, 0x6776, + 0x6777, 0x6778, 0x6779, 0x6775, 0x677a, 0x677b, 0x677c, 0x677d, + 0x6828, 0x677e, 0x6821, 0x6822, 0x6823, 0x6824, 0x6825, 0x6826, + 0x6827, 0x6829, 0x682a, 0x682b, 0x682c, 0x682d, 0x682e, 0x682f, + 0x6830, 0x6831, 0x6832, 0x6833, 0x6834, 0x6835, 0x6836, 0x6837, + 0x6838, 0x6839, 0x683a, 0x683b, 0x683c, 0x683d, 0x683e, 0x683f, + 0x6840, 0x6841, 0x6842, 0x6843, 0x6844, 0x6845, 0x6846, 0x6847, + 0x6848, 0x6849, 0x684a, 0x684b, 0x684c, 0x684d, 0x684e, 0x684f, + 0x6850, 0x6851, 0x6852, 0x6853, 0x6854, 0x6855, 0x6856, 0x6857, + 0x6858, 0x6859, 0x685a, 0x685b, 0x685c, 0x685d, 0x685e, 0x685f, + 0x6860, 0x6861, 0x6862, 0x6863, 0x6864, 0x6865, 0x6866, 0x6867, + 0x6868, 0x6869, 0x686a, 0x686b, 0x686c, 0x686d, 0x686e, 0x686f, + 0x6870, 0x6871, 0x6872, 0x6873, 0x6874, 0x6875, 0x6876, 0x6877, + 0x6878, 0x6879, 0x687a, 0x687b, 0x687c, 0x687d, 0x687e, 0x6921, + 0x6922, 0x6923, 0x6924, 0x6925, 0x6926, 0x6927, 0x6928, 0x6929, + 0x692a, 0x692b, 0x692c, 0x692d, 0x692e, 0x692f, 0x6930, 0x6931, + 0x6932, 0x6933, 0x6934, 0x6935, 0x6936, 0x6937, 0x6938, 0x6939, + 0x693a, 0x693b, 0x693c, 0x693d, 0x693e, 0x693f, 0x6940, 0x6941, + 0x6942, 0x6943, 0x6944, 0x6945, 0x6946, 0x6947, 0x6948, 0x6949, + 0x694a, 0x694c, 0x694d, 0x694b, 0x694e, 0x694f, 0x6950, 0x6951, + 0x6952, 0x6953, 0x6954, 0x6955, 0x6956, 0x6957, 0x6958, 0x6959, + 0x695a, 0x695b, 0x695c, 0x695d, 0x695e, 0x695f, 0x6960, 0x6961, + 0x6962, 0x6963, 0x6964, 0x6965, 0x6966, 0x6967, 0x6968, 0x6969, + 0x696a, 0x696b, 0x696c, 0x696d, 0x696e, 0x696f, 0x6970, 0x6971, + 0x6972, 0x6973, 0x6974, 0x6975, 0x6976, 0x6977, 0x6978, 0x6979, + 0x697a, 0x697b, 0x697c, 0x697d, 0x697e, 0x6a21, 0x6a22, 0x6a23, + 0x6a24, 0x6a25, 0x6a26, 0x6a27, 0x6a28, 0x6a29, 0x6a2a, 0x6a2b, + 0x6a2c, 0x6a2d, 0x6a2e, 0x6a2f, 0x6a30, 0x6a31, 0x6a32, 0x6a33, + 0x6a34, 0x6a35, 0x6a36, 0x6a37, 0x6a38, 0x6a39, 0x6a3a, 0x6a3b, + 0x6a3c, 0x6a3d, 0x6a3e, 0x6a3f, 0x6a40, 0x6a41, 0x6a42, 0x6a43, + 0x6a44, 0x6a45, 0x6a46, 0x6a47, 0x6a48, 0x6a49, 0x6a4a, 0x6a4b, + 0x6a4c, 0x6a4d, 0x6a4e, 0x6a4f, 0x6a50, 0x6a51, 0x6a52, 0x6a53, + 0x6a54, 0x6a55, 0x6a56, 0x6a57, 0x6a58, 0x6a59, 0x6a5a, 0x6a5b, + 0x6a5c, 0x6a5d, 0x6a5e, 0x6a5f, 0x6a60, 0x6a61, 0x6a62, 0x6a63, + 0x6a64, 0x6a65, 0x6a66, 0x6a67, 0x6a68, 0x6a69, 0x6a6a, 0x6a6b, + 0x6a6c, 0x6a6d, 0x6a6e, 0x6a6f, 0x6a70, 0x6a71, 0x6a72, 0x6a73, + 0x6a74, 0x6a75, 0x6a76, 0x6a77, 0x6a78, 0x6a79, 0x6a7a, 0x6a7b, + 0x6a7c, 0x6a7d, 0x6a7e, 0x6b21, 0x6b22, 0x6b23, 0x6b24, 0x6b25, + 0x6b26, 0x6b27, 0x6b28, 0x6b29, 0x6b2a, 0x6b2b, 0x6b2c, 0x6b2d, + 0x6b2e, 0x6b2f, 0x6b30, 0x6b31, 0x6b32, 0x6b33, 0x6b34, 0x6b35, + 0x6b36, 0x6b37, 0x6b38, 0x6b39, 0x6b3a, 0x6b3b, 0x6b3c, 0x6b3d, + 0x6b3e, 0x6b3f, 0x6b40, 0x6b41, 0x6b42, 0x6b43, 0x6b44, 0x6b45, + 0x6b46, 0x6b47, 0x6b48, 0x6b49, 0x6b50, 0x6b4a, 0x6b4b, 0x6b4c, + 0x6b4d, 0x6b52, 0x6b4e, 0x6b4f, 0x6b51, 0x6b53, 0x6b54, 0x6b55, + 0x6b56, 0x6b57, 0x6b58, 0x6b59, 0x6b5a, 0x6b5b, 0x6b5c, 0x6b5e, + 0x6b5d, 0x6b5f, 0x6b60, 0x6b61, 0x6b62, 0x6b63, 0x6b64, 0x6b65, + 0x6b66, 0x6b67, 0x6b68, 0x6b69, 0x6b6a, 0x6b6b, 0x6b6d, 0x6b6e, + 0x6b6f, 0x6b6c, 0x6b70, 0x6b71, 0x6b72, 0x6b73, 0x6b74, 0x6b76, + 0x6b75, 0x6b77, 0x6b78, 0x6b79, 0x6b7a, 0x6b7b, 0x6b7c, 0x6b7d, + 0x6b7e, 0x6c21, 0x6c22, 0x6c23, 0x6c24, 0x6c25, 0x6c26, 0x6c27, + 0x6c28, 0x6c29, 0x6c2a, 0x6c2b, 0x6c2c, 0x6c2d, 0x6c2e, 0x6c2f, + 0x6c30, 0x6c31, 0x6c32, 0x6c33, 0x6c34, 0x6c35, 0x6c36, 0x6c37, + 0x6c38, 0x6c39, 0x6c3a, 0x6c3b, 0x6c3c, 0x6c3d, 0x6c3e, 0x6c3f, + 0x6c40, 0x6c41, 0x6c42, 0x6c43, 0x6c44, 0x6c45, 0x6c46, 0x6c47, + 0x6c48, 0x6c49, 0x6c4a, 0x6c4b, 0x6c4c, 0x6c4e, 0x6c4f, 0x6c4d, + 0x6c50, 0x6c51, 0x6c52, 0x6c53, 0x6c54, 0x6c55, 0x6c56, 0x6c57, + 0x6c58, 0x6c59, 0x6c5a, 0x6c5b, 0x6c5c, 0x6c5d, 0x6c5e, 0x6c5f, + 0x6c60, 0x6c61, 0x6c62, 0x6c63, 0x6c64, 0x6c65, 0x6c66, 0x6c67, + 0x6c68, 0x6c69, 0x6c6a, 0x6c6b, 0x6c6c, 0x6c6d, 0x6c6e, 0x6c6f, + 0x6c70, 0x6c71, 0x6c72, 0x6c73, 0x6c74, 0x6c75, 0x6c76, 0x6c77, + 0x6c78, 0x6c79, 0x6c7a, 0x6c7b, 0x6c7c, 0x6c7d, 0x6c7e, 0x6d21, + 0x6d22, 0x6d23, 0x6d24, 0x6d25, 0x6d26, 0x6d27, 0x6d28, 0x6d29, + 0x6d2a, 0x6d2b, 0x6d2c, 0x6d2d, 0x6d2e, 0x6d2f, 0x6d30, 0x6d31, + 0x6d32, 0x6d33, 0x6d34, 0x6d35, 0x6d36, 0x6d37, 0x6d38, 0x6d39, + 0x6d3a, 0x6d3b, 0x6d3c, 0x6d3d, 0x6d3e, 0x6d3f, 0x6d40, 0x6d41, + 0x6d42, 0x6d43, 0x6d44, 0x6d45, 0x6d46, 0x6d47, 0x6d48, 0x6d49, + 0x6d4a, 0x6d4b, 0x6d4c, 0x6d4d, 0x6d4e, 0x6d4f, 0x6d50, 0x6d51, + 0x6d52, 0x6d53, 0x6d54, 0x6d55, 0x6d56, 0x6d57, 0x6d58, 0x6d59, + 0x6d5a, 0x6d5b, 0x6d5c, 0x6d5d, 0x6d5e, 0x6d5f, 0x6d60, 0x6d61, + 0x6d62, 0x6d63, 0x2237, +}; + +static const Summary16 jisx0212_uni2indx_page00[70] = { + /* 0x0000 */ + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0xc652 }, { 7, 0x8500 }, + { 10, 0xffff }, { 26, 0xff7e }, { 40, 0xffff }, { 56, 0xff7f }, + /* 0x0100 */ + { 71, 0xffff }, { 87, 0xffcf }, { 101, 0xcff7 }, { 114, 0xffff }, + { 130, 0x3fff }, { 144, 0xffff }, { 160, 0xffff }, { 176, 0x7fff }, + { 191, 0x0000 }, { 191, 0x0000 }, { 191, 0x0000 }, { 191, 0x0000 }, + { 191, 0xe000 }, { 194, 0x1fff }, { 207, 0x0000 }, { 207, 0x0020 }, + /* 0x0200 */ + { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, + { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, + { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, + { 208, 0x0080 }, { 209, 0x2f00 }, { 214, 0x0000 }, { 214, 0x0000 }, + /* 0x0300 */ + { 214, 0x0000 }, { 214, 0x0000 }, { 214, 0x0000 }, { 214, 0x0000 }, + { 214, 0x0000 }, { 214, 0x0000 }, { 214, 0x0000 }, { 214, 0x0000 }, + { 214, 0xd770 }, { 223, 0x0001 }, { 224, 0xfc00 }, { 230, 0x0001 }, + { 231, 0x7c04 }, { 237, 0x0000 }, { 237, 0x0000 }, { 237, 0x0000 }, + /* 0x0400 */ + { 237, 0xdffc }, { 250, 0x0000 }, { 250, 0x0000 }, { 250, 0x0000 }, + { 250, 0x0000 }, { 250, 0xdffc }, +}; +static const Summary16 jisx0212_uni2indx_page21[3] = { + /* 0x2100 */ + { 263, 0x0000 }, { 263, 0x0040 }, { 264, 0x0004 }, +}; +static const Summary16 jisx0212_uni2indx_page4e[1307] = { + /* 0x4e00 */ + { 265, 0x1034 }, { 269, 0x8004 }, { 271, 0xc918 }, { 277, 0x0021 }, + { 279, 0x0093 }, { 283, 0x1402 }, { 286, 0x0308 }, { 289, 0x8230 }, + { 293, 0x2000 }, { 294, 0x20c0 }, { 297, 0x8000 }, { 298, 0x0200 }, + { 299, 0x0008 }, { 300, 0x0c01 }, { 303, 0x8107 }, { 308, 0xe02a }, + /* 0x4f00 */ + { 314, 0x190d }, { 320, 0x02e4 }, { 325, 0x4000 }, { 326, 0x4aaa }, + { 333, 0x1b05 }, { 339, 0x8154 }, { 344, 0x5409 }, { 349, 0x6782 }, + { 356, 0x5636 }, { 364, 0xc69d }, { 373, 0x0000 }, { 373, 0x7a84 }, + { 380, 0xbb63 }, { 390, 0x1004 }, { 392, 0x0005 }, { 394, 0xb005 }, + /* 0x5000 */ + { 399, 0x5493 }, { 406, 0x7989 }, { 414, 0x4084 }, { 417, 0x082d }, + { 422, 0x5467 }, { 430, 0x828e }, { 436, 0x24cd }, { 443, 0x0003 }, + { 445, 0xc45a }, { 452, 0xd85d }, { 461, 0x8407 }, { 466, 0x2601 }, + { 470, 0x5099 }, { 476, 0xb119 }, { 483, 0x8354 }, { 489, 0x4446 }, + /* 0x5100 */ + { 494, 0x79c8 }, { 502, 0x7a81 }, { 509, 0xb188 }, { 515, 0x033a }, + { 521, 0x8404 }, { 524, 0x81a8 }, { 529, 0x0050 }, { 531, 0x4000 }, + { 532, 0x4818 }, { 536, 0x2100 }, { 538, 0x200a }, { 541, 0xd500 }, + { 546, 0x8104 }, { 549, 0x412e }, { 555, 0x4024 }, { 558, 0x009c }, + /* 0x5200 */ + { 562, 0x0026 }, { 565, 0x016c }, { 570, 0x0104 }, { 572, 0x1026 }, + { 576, 0x0220 }, { 578, 0x95a0 }, { 584, 0x4043 }, { 588, 0x0380 }, + { 591, 0x1425 }, { 596, 0x15e8 }, { 603, 0x80f0 }, { 608, 0x2dc1 }, + { 615, 0x9151 }, { 621, 0x1852 }, { 626, 0x1722 }, { 632, 0x00d3 }, + /* 0x5300 */ + { 637, 0x1c09 }, { 642, 0xd90a }, { 649, 0x3ba0 }, { 656, 0x7025 }, + { 662, 0x1804 }, { 665, 0x0a00 }, { 667, 0x302a }, { 672, 0x4204 }, + { 675, 0x4188 }, { 679, 0x2218 }, { 683, 0x8c12 }, { 688, 0x25b4 }, + { 695, 0x8021 }, { 698, 0x642c }, { 704, 0x00c1 }, { 707, 0x0020 }, + /* 0x5400 */ + { 708, 0x0004 }, { 709, 0x0408 }, { 711, 0x8582 }, { 716, 0x0032 }, + { 719, 0xa098 }, { 724, 0x4000 }, { 725, 0x6ad4 }, { 733, 0x8010 }, + { 735, 0x232a }, { 741, 0x9062 }, { 746, 0x66c2 }, { 753, 0x8e82 }, + { 759, 0x6440 }, { 763, 0x0000 }, { 763, 0x9401 }, { 767, 0xd040 }, + /* 0x5500 */ + { 771, 0x7323 }, { 779, 0x0020 }, { 780, 0x0c00 }, { 782, 0x3864 }, + { 788, 0x2682 }, { 793, 0x4d03 }, { 799, 0x0053 }, { 803, 0x8000 }, + { 804, 0xc146 }, { 810, 0x009e }, { 815, 0x2018 }, { 818, 0x8004 }, + { 820, 0x5a4a }, { 827, 0x498e }, { 834, 0x0204 }, { 836, 0x8040 }, + /* 0x5600 */ + { 838, 0xe520 }, { 844, 0x0207 }, { 848, 0x1000 }, { 849, 0xbaa9 }, + { 858, 0xaa5b }, { 867, 0x4010 }, { 869, 0xa24f }, { 877, 0x0026 }, + { 880, 0x1930 }, { 885, 0xe620 }, { 891, 0x3bc0 }, { 898, 0x408a }, + { 902, 0xbe20 }, { 909, 0xb201 }, { 914, 0x29f2 }, { 922, 0x00c2 }, + /* 0x5700 */ + { 925, 0x1486 }, { 930, 0x2c22 }, { 935, 0xd63d }, { 945, 0xe018 }, + { 950, 0x3060 }, { 954, 0x0004 }, { 955, 0xe9a4 }, { 963, 0x5ebb }, + { 974, 0x100a }, { 977, 0xf6b0 }, { 986, 0x1382 }, { 991, 0x2100 }, + { 993, 0x9180 }, { 997, 0x6020 }, { 1000, 0x22d2 }, { 1006, 0xe161 }, + /* 0x5800 */ + { 1013, 0x3318 }, { 1019, 0xc800 }, { 1022, 0x20c1 }, { 1026, 0x8204 }, + { 1029, 0xb200 }, { 1033, 0x8021 }, { 1036, 0x0192 }, { 1040, 0x9100 }, + { 1043, 0xb783 }, { 1052, 0x2051 }, { 1056, 0x0247 }, { 1061, 0x1006 }, + { 1064, 0x6114 }, { 1069, 0x2455 }, { 1075, 0x0206 }, { 1078, 0x0008 }, + /* 0x5900 */ + { 1079, 0x1860 }, { 1083, 0x201c }, { 1087, 0x811a }, { 1092, 0x8069 }, + { 1097, 0x0048 }, { 1099, 0xea0c }, { 1106, 0xa80a }, { 1111, 0x1a64 }, + { 1117, 0x5800 }, { 1120, 0x80a4 }, { 1124, 0xe090 }, { 1129, 0x1489 }, + { 1134, 0x251a }, { 1140, 0xe004 }, { 1144, 0xc098 }, { 1149, 0x0096 }, + /* 0x5a00 */ + { 1153, 0x7011 }, { 1158, 0x400c }, { 1161, 0x2598 }, { 1167, 0x0001 }, + { 1168, 0x11b0 }, { 1173, 0x4021 }, { 1176, 0x20a8 }, { 1180, 0x4c80 }, + { 1184, 0x0800 }, { 1185, 0xd249 }, { 1192, 0x1085 }, { 1196, 0x8d2e }, + { 1204, 0x8150 }, { 1208, 0x1400 }, { 1210, 0x4421 }, { 1214, 0x2060 }, + /* 0x5b00 */ + { 1217, 0x0103 }, { 1220, 0x2a80 }, { 1224, 0x2022 }, { 1227, 0x0110 }, + { 1229, 0x1802 }, { 1232, 0x4044 }, { 1235, 0xc100 }, { 1238, 0xf000 }, + { 1242, 0x4452 }, { 1247, 0x005b }, { 1252, 0xb300 }, { 1257, 0x1486 }, + { 1262, 0xa003 }, { 1266, 0x07c0 }, { 1271, 0x8001 }, { 1273, 0x2012 }, + /* 0x5c00 */ + { 1276, 0x1000 }, { 1277, 0xc080 }, { 1280, 0x5a48 }, { 1286, 0x0065 }, + { 1290, 0x0000 }, { 1290, 0x1600 }, { 1293, 0x238c }, { 1299, 0x3c31 }, + { 1306, 0x8580 }, { 1310, 0xa004 }, { 1313, 0x044d }, { 1318, 0x0434 }, + { 1322, 0x0a00 }, { 1324, 0x2084 }, { 1327, 0x4000 }, { 1328, 0x0016 }, + /* 0x5d00 */ + { 1331, 0x2042 }, { 1334, 0x0004 }, { 1335, 0x08d8 }, { 1340, 0xa212 }, + { 1345, 0x054c }, { 1350, 0x8222 }, { 1354, 0x2417 }, { 1360, 0xc601 }, + { 1365, 0x050a }, { 1369, 0x8a3c }, { 1376, 0x0881 }, { 1379, 0x0315 }, + { 1384, 0x4888 }, { 1388, 0x0301 }, { 1391, 0x0211 }, { 1394, 0x0300 }, + /* 0x5e00 */ + { 1396, 0x2081 }, { 1399, 0x8134 }, { 1404, 0x4101 }, { 1407, 0x4024 }, + { 1410, 0x0a00 }, { 1412, 0x5943 }, { 1419, 0x7d00 }, { 1425, 0x0001 }, + { 1426, 0x4801 }, { 1429, 0x0000 }, { 1429, 0x1534 }, { 1435, 0xe00a }, + { 1440, 0x5840 }, { 1444, 0x5036 }, { 1450, 0x0820 }, { 1452, 0x0000 }, + /* 0x5f00 */ + { 1452, 0x41c4 }, { 1457, 0x3200 }, { 1460, 0x591e }, { 1468, 0xa851 }, + { 1474, 0x20b1 }, { 1479, 0x0911 }, { 1483, 0x8099 }, { 1488, 0x6534 }, + { 1495, 0xa200 }, { 1498, 0x3040 }, { 1501, 0x9894 }, { 1507, 0x0103 }, + { 1510, 0x0b90 }, { 1515, 0x401f }, { 1521, 0xf706 }, { 1530, 0x144c }, + /* 0x6000 */ + { 1535, 0x2480 }, { 1538, 0x8598 }, { 1544, 0x2010 }, { 1546, 0x0028 }, + { 1548, 0x1381 }, { 1553, 0x20d2 }, { 1558, 0x0082 }, { 1560, 0xc002 }, + { 1563, 0x4544 }, { 1568, 0x612a }, { 1574, 0x0134 }, { 1578, 0x4883 }, + { 1583, 0xcf14 }, { 1591, 0x6a30 }, { 1597, 0x0024 }, { 1599, 0x3124 }, + /* 0x6100 */ + { 1604, 0x1484 }, { 1608, 0x52df }, { 1618, 0x0c04 }, { 1621, 0x02e3 }, + { 1627, 0x0262 }, { 1631, 0x4000 }, { 1632, 0x1001 }, { 1634, 0x9904 }, + { 1639, 0x281b }, { 1645, 0xb18c }, { 1652, 0x2521 }, { 1657, 0x1300 }, + { 1660, 0xc007 }, { 1665, 0xf020 }, { 1670, 0xb2a6 }, { 1678, 0x0000 }, + /* 0x6200 */ + { 1678, 0x009a }, { 1682, 0x1028 }, { 1685, 0x0a8d }, { 1691, 0x2200 }, + { 1693, 0x105c }, { 1698, 0x1457 }, { 1705, 0xa010 }, { 1708, 0x2408 }, + { 1711, 0xe000 }, { 1714, 0x0001 }, { 1715, 0x0140 }, { 1717, 0xc4c8 }, + { 1723, 0x4010 }, { 1725, 0x0460 }, { 1728, 0x0400 }, { 1729, 0x3014 }, + /* 0x6300 */ + { 1733, 0x2c18 }, { 1738, 0x0149 }, { 1742, 0x2600 }, { 1745, 0x1260 }, + { 1749, 0x4c5e }, { 1757, 0x091c }, { 1762, 0x3060 }, { 1766, 0xb132 }, + { 1773, 0x0494 }, { 1777, 0x4631 }, { 1783, 0xe050 }, { 1788, 0x2000 }, + { 1789, 0x4122 }, { 1793, 0x103a }, { 1798, 0x1421 }, { 1802, 0x032c }, + /* 0x6400 */ + { 1807, 0x0600 }, { 1809, 0x4115 }, { 1814, 0x8635 }, { 1821, 0xa021 }, + { 1825, 0x8800 }, { 1827, 0xbc1e }, { 1836, 0x200b }, { 1840, 0x2818 }, + { 1844, 0x80a0 }, { 1847, 0xab03 }, { 1854, 0x114a }, { 1859, 0xe008 }, + { 1863, 0x5e10 }, { 1869, 0x00a3 }, { 1873, 0x2630 }, { 1878, 0x88a1 }, + /* 0x6500 */ + { 1883, 0x8712 }, { 1889, 0xca58 }, { 1896, 0x4244 }, { 1900, 0x3402 }, + { 1904, 0x0288 }, { 1907, 0x8015 }, { 1911, 0x0881 }, { 1914, 0x2400 }, + { 1916, 0x0422 }, { 1919, 0x2124 }, { 1923, 0x4049 }, { 1927, 0x801c }, + { 1931, 0x4304 }, { 1935, 0x8151 }, { 1940, 0x0000 }, { 1940, 0xc235 }, + /* 0x6600 */ + { 1947, 0x2311 }, { 1952, 0x6066 }, { 1958, 0x5e5e }, { 1968, 0x028b }, + { 1973, 0x5461 }, { 1979, 0x1b82 }, { 1985, 0x1c03 }, { 1990, 0xdba8 }, + { 1999, 0x3801 }, { 2003, 0x9e05 }, { 2010, 0x2011 }, { 2013, 0x8826 }, + { 2018, 0xd10d }, { 2025, 0x8810 }, { 2028, 0x5900 }, { 2032, 0x0c00 }, + /* 0x6700 */ + { 2034, 0x40a0 }, { 2037, 0x1208 }, { 2040, 0x0005 }, { 2042, 0x4008 }, + { 2044, 0x11a0 }, { 2048, 0x2030 }, { 2051, 0x5040 }, { 2054, 0x0850 }, + { 2057, 0xc012 }, { 2061, 0x0b4a }, { 2067, 0x0000 }, { 2067, 0x3827 }, + { 2074, 0x032d }, { 2080, 0x1284 }, { 2084, 0x0042 }, { 2086, 0x02c5 }, + /* 0x6800 */ + { 2091, 0x0000 }, { 2091, 0xa210 }, { 2095, 0xb180 }, { 2100, 0x880b }, + { 2105, 0x1430 }, { 2109, 0x09a4 }, { 2114, 0xc800 }, { 2117, 0x1e27 }, + { 2125, 0x0154 }, { 2129, 0x1540 }, { 2133, 0x462a }, { 2139, 0x0804 }, + { 2141, 0x9120 }, { 2145, 0x324b }, { 2152, 0x3d20 }, { 2158, 0x3863 }, + /* 0x6900 */ + { 2165, 0x0640 }, { 2168, 0x00cb }, { 2173, 0x0000 }, { 2173, 0x092a }, + { 2178, 0x4224 }, { 2182, 0x0880 }, { 2184, 0x1378 }, { 2191, 0x8c07 }, + { 2197, 0x2001 }, { 2199, 0x0144 }, { 2202, 0xa962 }, { 2209, 0x1580 }, + { 2213, 0x0120 }, { 2215, 0x00c2 }, { 2218, 0xc024 }, { 2222, 0x402a }, + /* 0x6a00 */ + { 2226, 0x800b }, { 2230, 0x2422 }, { 2234, 0x0111 }, { 2237, 0xc895 }, + { 2244, 0x4660 }, { 2249, 0x0867 }, { 2255, 0x0490 }, { 2258, 0x400a }, + { 2261, 0x0aca }, { 2267, 0xe802 }, { 2272, 0x8820 }, { 2275, 0xe013 }, + { 2281, 0x1340 }, { 2285, 0x3071 }, { 2291, 0x1090 }, { 2294, 0x3007 }, + /* 0x6b00 */ + { 2299, 0x82cc }, { 2305, 0x4883 }, { 2310, 0x9910 }, { 2315, 0x8860 }, + { 2319, 0x2440 }, { 2322, 0x2144 }, { 2326, 0x4881 }, { 2330, 0x6021 }, + { 2334, 0x0024 }, { 2336, 0x8880 }, { 2339, 0x730d }, { 2347, 0x6301 }, + { 2352, 0x1218 }, { 2356, 0x0440 }, { 2358, 0x40ca }, { 2363, 0x8282 }, + /* 0x6c00 */ + { 2367, 0x6234 }, { 2373, 0x8205 }, { 2377, 0x51c0 }, { 2382, 0x8c68 }, + { 2388, 0xac00 }, { 2392, 0x1a14 }, { 2397, 0xa880 }, { 2401, 0x0b50 }, + { 2406, 0x02e0 }, { 2410, 0x91b0 }, { 2416, 0x0000 }, { 2416, 0x0015 }, + { 2419, 0xa044 }, { 2423, 0x1457 }, { 2430, 0x5a81 }, { 2436, 0x0014 }, + /* 0x6d00 */ + { 2438, 0xc490 }, { 2443, 0x040a }, { 2446, 0xc1c0 }, { 2451, 0x9202 }, + { 2455, 0x0000 }, { 2455, 0xc080 }, { 2458, 0x80a2 }, { 2462, 0x1001 }, + { 2464, 0x0084 }, { 2466, 0x01d6 }, { 2472, 0x1400 }, { 2474, 0xa290 }, + { 2479, 0xc510 }, { 2484, 0xa840 }, { 2488, 0x8225 }, { 2493, 0x1051 }, + /* 0x6e00 */ + { 2497, 0x0011 }, { 2499, 0x4000 }, { 2500, 0x0084 }, { 2502, 0x1a44 }, + { 2507, 0x8b30 }, { 2513, 0x709e }, { 2521, 0x010c }, { 2524, 0x2808 }, + { 2527, 0x2000 }, { 2528, 0x0208 }, { 2530, 0x6081 }, { 2534, 0x880a }, + { 2538, 0xe58b }, { 2547, 0x0000 }, { 2547, 0x6800 }, { 2550, 0x2a00 }, + /* 0x6f00 */ + { 2553, 0x3510 }, { 2558, 0x0d40 }, { 2562, 0xa640 }, { 2567, 0x1849 }, + { 2572, 0x8000 }, { 2573, 0x668e }, { 2581, 0x1106 }, { 2585, 0x6000 }, + { 2587, 0x3988 }, { 2593, 0x845d }, { 2600, 0xc1e1 }, { 2607, 0x1061 }, + { 2611, 0x05a0 }, { 2615, 0x4400 }, { 2617, 0x0300 }, { 2619, 0x3221 }, + /* 0x7000 */ + { 2624, 0x20e1 }, { 2629, 0x0080 }, { 2630, 0x8009 }, { 2633, 0x1290 }, + { 2637, 0x4f18 }, { 2644, 0x6030 }, { 2648, 0x5030 }, { 2652, 0x4060 }, + { 2655, 0x0062 }, { 2658, 0x09f0 }, { 2664, 0x0810 }, { 2666, 0x0093 }, + { 2670, 0x0400 }, { 2671, 0x117a }, { 2678, 0x0010 }, { 2679, 0x0400 }, + /* 0x7100 */ + { 2680, 0x98f8 }, { 2688, 0x4000 }, { 2689, 0xa801 }, { 2693, 0x0103 }, + { 2696, 0x0ce2 }, { 2702, 0x5485 }, { 2708, 0x0101 }, { 2710, 0x0200 }, + { 2711, 0x10a1 }, { 2715, 0x0c04 }, { 2718, 0x8005 }, { 2721, 0x840d }, + { 2726, 0x1813 }, { 2731, 0x1648 }, { 2736, 0x0000 }, { 2736, 0x4100 }, + /* 0x7200 */ + { 2738, 0x0381 }, { 2742, 0xa488 }, { 2747, 0x8810 }, { 2750, 0x0310 }, + { 2753, 0xc02e }, { 2759, 0x5469 }, { 2766, 0xc909 }, { 2772, 0x9982 }, + { 2778, 0x6210 }, { 2782, 0x0808 }, { 2784, 0x6100 }, { 2787, 0x4012 }, + { 2790, 0x1282 }, { 2794, 0x8160 }, { 2798, 0x0020 }, { 2799, 0x4c18 }, + /* 0x7300 */ + { 2804, 0x28b4 }, { 2810, 0x430c }, { 2815, 0x1194 }, { 2820, 0x2c26 }, + { 2826, 0x2008 }, { 2828, 0xe145 }, { 2835, 0xdac1 }, { 2843, 0x1282 }, + { 2847, 0x406b }, { 2853, 0xd1a9 }, { 2861, 0x2c65 }, { 2868, 0xb2a0 }, + { 2874, 0x9a60 }, { 2880, 0x224c }, { 2885, 0x02ca }, { 2890, 0xaeb0 }, + /* 0x7400 */ + { 2898, 0x0493 }, { 2903, 0x0c02 }, { 2906, 0xff50 }, { 2916, 0x0203 }, + { 2919, 0x28d9 }, { 2926, 0x2086 }, { 2930, 0x69c4 }, { 2937, 0x0006 }, + { 2939, 0x82e3 }, { 2946, 0x9707 }, { 2954, 0xcf4b }, { 2964, 0x8a26 }, + { 2970, 0x1300 }, { 2973, 0xcd09 }, { 2980, 0x8d10 }, { 2985, 0x9c10 }, + /* 0x7500 */ + { 2990, 0x0040 }, { 2991, 0x00c4 }, { 2994, 0x8693 }, { 3001, 0xe240 }, + { 3006, 0x4189 }, { 3011, 0xc085 }, { 3016, 0x8002 }, { 3018, 0x7e02 }, + { 3025, 0x0022 }, { 3027, 0x122d }, { 3033, 0x0014 }, { 3035, 0x8410 }, + { 3038, 0xd053 }, { 3045, 0x9080 }, { 3048, 0xd093 }, { 3055, 0x0202 }, + /* 0x7600 */ + { 3057, 0x959d }, { 3066, 0x7a6c }, { 3075, 0x2268 }, { 3080, 0x172c }, + { 3087, 0x0e3b }, { 3095, 0x8220 }, { 3098, 0xe030 }, { 3103, 0x0012 }, + { 3105, 0x3022 }, { 3109, 0xb820 }, { 3114, 0x25fd }, { 3124, 0x2000 }, + { 3125, 0x5a22 }, { 3131, 0x0210 }, { 3133, 0x1141 }, { 3137, 0x1243 }, + /* 0x7700 */ + { 3142, 0x4441 }, { 3146, 0x16b4 }, { 3153, 0xe104 }, { 3158, 0x6270 }, + { 3164, 0xe464 }, { 3171, 0xd0c4 }, { 3177, 0x1495 }, { 3183, 0x241d }, + { 3189, 0x3011 }, { 3193, 0x8470 }, { 3198, 0xc484 }, { 3203, 0x4022 }, + { 3206, 0x0208 }, { 3208, 0xc226 }, { 3214, 0x1451 }, { 3219, 0x0913 }, + /* 0x7800 */ + { 3224, 0x6260 }, { 3229, 0x2002 }, { 3231, 0x600e }, { 3236, 0x00a1 }, + { 3239, 0x5198 }, { 3245, 0x5004 }, { 3248, 0x451b }, { 3255, 0x4400 }, + { 3257, 0x8400 }, { 3259, 0xe110 }, { 3264, 0x3112 }, { 3269, 0xa80f }, + { 3276, 0x5380 }, { 3281, 0x886c }, { 3287, 0x0453 }, { 3292, 0x8ccc }, + /* 0x7900 */ + { 3299, 0x1041 }, { 3302, 0xd401 }, { 3307, 0x22a1 }, { 3312, 0xa832 }, + { 3318, 0x8c70 }, { 3324, 0x1912 }, { 3329, 0x0a80 }, { 3332, 0x5a04 }, + { 3337, 0x1800 }, { 3339, 0x197a }, { 3347, 0x8b02 }, { 3352, 0x0912 }, + { 3356, 0x8594 }, { 3362, 0x6450 }, { 3367, 0x2c25 }, { 3373, 0x1102 }, + /* 0x7a00 */ + { 3376, 0x168c }, { 3382, 0x4822 }, { 3386, 0xa882 }, { 3391, 0x0731 }, + { 3397, 0x11b0 }, { 3402, 0xb260 }, { 3408, 0x24a1 }, { 3413, 0x4120 }, + { 3416, 0x0c65 }, { 3422, 0x4013 }, { 3426, 0x1009 }, { 3429, 0x1a28 }, + { 3434, 0x5240 }, { 3438, 0x0802 }, { 3440, 0x1b00 }, { 3444, 0x6812 }, + /* 0x7b00 */ + { 3449, 0x0080 }, { 3450, 0x8010 }, { 3452, 0xee88 }, { 3460, 0xa013 }, + { 3465, 0x4083 }, { 3469, 0x0020 }, { 3470, 0xa651 }, { 3477, 0x008c }, + { 3480, 0x4210 }, { 3483, 0x4843 }, { 3488, 0x9021 }, { 3492, 0x3c65 }, + { 3500, 0x0524 }, { 3504, 0x0ed0 }, { 3510, 0x0500 }, { 3512, 0x5734 }, + /* 0x7c00 */ + { 3520, 0xda5e }, { 3530, 0x0a00 }, { 3532, 0x1161 }, { 3537, 0x065a }, + { 3543, 0x0440 }, { 3545, 0x7e2e }, { 3555, 0x628a }, { 3561, 0x3205 }, + { 3566, 0x80c0 }, { 3569, 0x4010 }, { 3571, 0x0041 }, { 3573, 0x9cc1 }, + { 3580, 0xa390 }, { 3586, 0x26b8 }, { 3593, 0x0a40 }, { 3596, 0x0020 }, + /* 0x7d00 */ + { 3597, 0x8388 }, { 3602, 0x604e }, { 3608, 0x2448 }, { 3612, 0x7002 }, + { 3616, 0x2183 }, { 3621, 0x368a }, { 3628, 0x04a0 }, { 3631, 0x8d01 }, + { 3636, 0x396e }, { 3645, 0x60c2 }, { 3650, 0x04c0 }, { 3653, 0x02c8 }, + { 3657, 0x707c }, { 3665, 0x0280 }, { 3667, 0x2c64 }, { 3673, 0x0662 }, + /* 0x7e00 */ + { 3678, 0x0101 }, { 3680, 0x30a3 }, { 3686, 0xb181 }, { 3692, 0x8048 }, + { 3695, 0x40b0 }, { 3699, 0x8105 }, { 3703, 0xc826 }, { 3709, 0x4108 }, + { 3712, 0x24c2 }, { 3717, 0x6522 }, { 3723, 0x0000 }, { 3723, 0x0000 }, + { 3723, 0x0000 }, { 3723, 0x0000 }, { 3723, 0x0000 }, { 3723, 0x0000 }, + /* 0x7f00 */ + { 3723, 0x0000 }, { 3723, 0x0000 }, { 3723, 0x0000 }, { 3723, 0xf800 }, + { 3728, 0x8098 }, { 3732, 0x380c }, { 3737, 0x207a }, { 3743, 0xe002 }, + { 3747, 0xa801 }, { 3751, 0x10c3 }, { 3756, 0x2446 }, { 3761, 0x9010 }, + { 3764, 0xc109 }, { 3769, 0x8800 }, { 3771, 0xd128 }, { 3777, 0xe404 }, + /* 0x8000 */ + { 3782, 0xe580 }, { 3788, 0xe05a }, { 3795, 0x5051 }, { 3800, 0x56b1 }, + { 3808, 0x0011 }, { 3810, 0x0000 }, { 3810, 0x2051 }, { 3814, 0x0022 }, + { 3816, 0x4102 }, { 3819, 0x5000 }, { 3821, 0x08c0 }, { 3824, 0x0300 }, + { 3826, 0xa100 }, { 3829, 0x01b4 }, { 3834, 0x6001 }, { 3837, 0x464d }, + /* 0x8100 */ + { 3844, 0x0808 }, { 3846, 0x51c0 }, { 3851, 0x1091 }, { 3855, 0x1421 }, + { 3859, 0x14a0 }, { 3863, 0x0084 }, { 3865, 0xa383 }, { 3872, 0x0080 }, + { 3873, 0x4872 }, { 3879, 0x4941 }, { 3884, 0x4004 }, { 3886, 0x0814 }, + { 3889, 0xcc28 }, { 3895, 0x68a0 }, { 3900, 0x1812 }, { 3904, 0xa367 }, + /* 0x8200 */ + { 3913, 0x8009 }, { 3916, 0x2618 }, { 3921, 0x0106 }, { 3924, 0x0414 }, + { 3927, 0xc878 }, { 3934, 0x1042 }, { 3937, 0x2089 }, { 3941, 0xa810 }, + { 3945, 0x469b }, { 3953, 0x0d52 }, { 3959, 0x479b }, { 3968, 0xd495 }, + { 3976, 0x0040 }, { 3977, 0x0421 }, { 3980, 0xa515 }, { 3987, 0x60c0 }, + /* 0x8300 */ + { 3991, 0x0d83 }, { 3997, 0xe800 }, { 4001, 0x7006 }, { 4006, 0x3489 }, + { 4012, 0x609c }, { 4018, 0x00fa }, { 4024, 0x0000 }, { 4024, 0xa101 }, + { 4028, 0x2055 }, { 4033, 0x3b34 }, { 4041, 0x32c0 }, { 4046, 0xc000 }, + { 4048, 0x8281 }, { 4052, 0x2013 }, { 4056, 0x0500 }, { 4058, 0x1340 }, + /* 0x8400 */ + { 4062, 0x8442 }, { 4066, 0x0222 }, { 4069, 0x8000 }, { 4070, 0x0200 }, + { 4071, 0xa5a0 }, { 4077, 0x1746 }, { 4084, 0x04b1 }, { 4089, 0x3159 }, + { 4096, 0x0022 }, { 4098, 0x402c }, { 4102, 0x8740 }, { 4107, 0x6412 }, + { 4112, 0x9185 }, { 4118, 0x1008 }, { 4120, 0x8480 }, { 4123, 0x2c87 }, + /* 0x8500 */ + { 4130, 0x508c }, { 4135, 0x5001 }, { 4138, 0x8cbc }, { 4146, 0x805c }, + { 4151, 0x8040 }, { 4153, 0xf24f }, { 4163, 0x8817 }, { 4169, 0xae00 }, + { 4174, 0x9a62 }, { 4181, 0xa108 }, { 4185, 0x20a5 }, { 4190, 0xf1d0 }, + { 4198, 0x4c84 }, { 4203, 0x8500 }, { 4206, 0x2141 }, { 4210, 0x9048 }, + /* 0x8600 */ + { 4214, 0x6031 }, { 4219, 0x4b07 }, { 4226, 0x0282 }, { 4229, 0x3540 }, + { 4234, 0x0047 }, { 4238, 0x23cc }, { 4245, 0x921f }, { 4253, 0x04e0 }, + { 4257, 0x2100 }, { 4259, 0x1542 }, { 4264, 0x21c2 }, { 4269, 0x83ba }, + { 4277, 0x002b }, { 4281, 0x14a6 }, { 4287, 0x00a9 }, { 4291, 0x3400 }, + /* 0x8700 */ + { 4294, 0xc8b0 }, { 4300, 0xc219 }, { 4306, 0xc10a }, { 4311, 0x7606 }, + { 4318, 0x2029 }, { 4322, 0x2100 }, { 4324, 0x8032 }, { 4328, 0x0806 }, + { 4331, 0x1bf8 }, { 4340, 0x43a9 }, { 4347, 0x7089 }, { 4353, 0xc022 }, + { 4357, 0x4702 }, { 4362, 0x9660 }, { 4368, 0x2c1c }, { 4374, 0x850a }, + /* 0x8800 */ + { 4379, 0x0e4a }, { 4385, 0xdf1d }, { 4396, 0x6100 }, { 4399, 0x1425 }, + { 4404, 0x4f2a }, { 4412, 0x9562 }, { 4419, 0x0211 }, { 4422, 0x0a02 }, + { 4425, 0x0001 }, { 4426, 0x9d00 }, { 4431, 0x0501 }, { 4434, 0x6400 }, + { 4437, 0x7c01 }, { 4443, 0x480e }, { 4448, 0x8080 }, { 4450, 0x00a3 }, + /* 0x8900 */ + { 4454, 0xe042 }, { 4459, 0x1760 }, { 4465, 0x01c1 }, { 4469, 0x4627 }, + { 4476, 0x8265 }, { 4482, 0x1c84 }, { 4487, 0x480e }, { 4492, 0x3c29 }, + { 4499, 0x2200 }, { 4501, 0x9831 }, { 4507, 0x0021 }, { 4509, 0x10f1 }, + { 4515, 0x0000 }, { 4515, 0x01f0 }, { 4520, 0x2a20 }, { 4524, 0xa24a }, + /* 0x8a00 */ + { 4530, 0x80b0 }, { 4534, 0x4036 }, { 4539, 0x9855 }, { 4546, 0x60a0 }, + { 4550, 0x62a9 }, { 4557, 0x31c8 }, { 4563, 0x00a2 }, { 4566, 0xcee0 }, + { 4574, 0x8849 }, { 4579, 0x82c5 }, { 4585, 0xc280 }, { 4589, 0x48c8 }, + { 4594, 0x0748 }, { 4599, 0xa0ba }, { 4606, 0x1000 }, { 4607, 0x9071 }, + /* 0x8b00 */ + { 4613, 0x0c60 }, { 4617, 0xd002 }, { 4621, 0x2000 }, { 4622, 0x1081 }, + { 4625, 0x217c }, { 4632, 0x421c }, { 4637, 0x2008 }, { 4639, 0x5340 }, + { 4644, 0xa832 }, { 4650, 0xd030 }, { 4655, 0x0000 }, { 4655, 0x0000 }, + { 4655, 0x0000 }, { 4655, 0x0000 }, { 4655, 0x0000 }, { 4655, 0x0000 }, + /* 0x8c00 */ + { 4655, 0x0000 }, { 4655, 0x0000 }, { 4655, 0x0000 }, { 4655, 0x6300 }, + { 4659, 0x8aa0 }, { 4664, 0x2b9a }, { 4672, 0x2358 }, { 4678, 0x4868 }, + { 4683, 0x08c0 }, { 4686, 0x1a0d }, { 4692, 0x0010 }, { 4693, 0x0600 }, + { 4695, 0x8a60 }, { 4700, 0x2260 }, { 4704, 0x9102 }, { 4708, 0xc1a5 }, + /* 0x8d00 */ + { 4715, 0x020a }, { 4718, 0x0884 }, { 4721, 0x0000 }, { 4721, 0x0000 }, + { 4721, 0x0000 }, { 4721, 0x0000 }, { 4721, 0x5220 }, { 4725, 0x8000 }, + { 4726, 0x2114 }, { 4730, 0xc023 }, { 4735, 0x9841 }, { 4740, 0x1aa4 }, + { 4746, 0x45e1 }, { 4753, 0x02b2 }, { 4758, 0x10b0 }, { 4762, 0x2017 }, + /* 0x8e00 */ + { 4767, 0x0872 }, { 4772, 0x0052 }, { 4775, 0x00cf }, { 4781, 0x23ca }, + { 4788, 0xe803 }, { 4794, 0x7810 }, { 4799, 0xb206 }, { 4805, 0x0e03 }, + { 4810, 0x020c }, { 4813, 0x6c25 }, { 4820, 0x6284 }, { 4825, 0x0c28 }, + { 4829, 0x809b }, { 4835, 0x1012 }, { 4838, 0x6100 }, { 4841, 0x0683 }, + /* 0x8f00 */ + { 4846, 0x8185 }, { 4851, 0x41c1 }, { 4856, 0x71ab }, { 4865, 0x04f0 }, + { 4870, 0x808b }, { 4875, 0x613e }, { 4883, 0x0020 }, { 4884, 0x0000 }, + { 4884, 0x0000 }, { 4884, 0x2000 }, { 4885, 0x0073 }, { 4890, 0x4160 }, + { 4894, 0x2c43 }, { 4900, 0x002d }, { 4904, 0x4119 }, { 4909, 0x4862 }, + /* 0x9000 */ + { 4914, 0x1114 }, { 4918, 0x0900 }, { 4920, 0xb700 }, { 4926, 0x8098 }, + { 4930, 0x1018 }, { 4933, 0x2800 }, { 4935, 0x10c4 }, { 4939, 0x0211 }, + { 4942, 0x5920 }, { 4947, 0x0ba1 }, { 4953, 0x0027 }, { 4957, 0x605d }, + { 4964, 0x11b8 }, { 4970, 0xb3a4 }, { 4978, 0x8820 }, { 4981, 0xc051 }, + /* 0x9100 */ + { 4986, 0x2171 }, { 4992, 0x55d1 }, { 5000, 0xc2ad }, { 5008, 0x36d2 }, + { 5016, 0x8188 }, { 5020, 0x0e88 }, { 5025, 0x2092 }, { 5029, 0x0e10 }, + { 5033, 0x446a }, { 5039, 0x413a }, { 5045, 0x7142 }, { 5051, 0xb84f }, + { 5060, 0x002c }, { 5063, 0x4698 }, { 5069, 0xf630 }, { 5077, 0x2a83 }, + /* 0x9200 */ + { 5083, 0x16f3 }, { 5092, 0x314d }, { 5099, 0xc178 }, { 5106, 0x5769 }, + { 5115, 0xe4cd }, { 5124, 0x3302 }, { 5129, 0xc3a3 }, { 5137, 0xbbe1 }, + { 5147, 0x6700 }, { 5152, 0x8284 }, { 5156, 0x89b1 }, { 5163, 0xbd44 }, + { 5171, 0x79ef }, { 5183, 0xb3a9 }, { 5192, 0x51ab }, { 5200, 0x8a01 }, + /* 0x9300 */ + { 5204, 0x2105 }, { 5208, 0xf032 }, { 5215, 0x06b2 }, { 5221, 0x00d8 }, + { 5225, 0x0380 }, { 5228, 0x45a7 }, { 5236, 0xa6b0 }, { 5243, 0xa45b }, + { 5251, 0xad07 }, { 5259, 0x4924 }, { 5264, 0x0b5a }, { 5271, 0x0470 }, + { 5275, 0x3ef2 }, { 5285, 0xd208 }, { 5290, 0x00c4 }, { 5293, 0x2f80 }, + /* 0x9400 */ + { 5299, 0xe316 }, { 5307, 0x80e0 }, { 5311, 0xc000 }, { 5313, 0xa81e }, + { 5320, 0x1528 }, { 5325, 0x9220 }, { 5329, 0xe90a }, { 5336, 0x0006 }, + { 5338, 0x0018 }, { 5340, 0x0000 }, { 5340, 0x0000 }, { 5340, 0x0000 }, + { 5340, 0x0000 }, { 5340, 0x0000 }, { 5340, 0x0000 }, { 5340, 0x0000 }, + /* 0x9500 */ + { 5340, 0x0000 }, { 5340, 0x0000 }, { 5340, 0x0000 }, { 5340, 0x0000 }, + { 5340, 0x0000 }, { 5340, 0x0000 }, { 5340, 0x0000 }, { 5340, 0x4300 }, + { 5343, 0x7110 }, { 5348, 0xe000 }, { 5351, 0x1a42 }, { 5356, 0xa450 }, + { 5361, 0x0b40 }, { 5365, 0xe60f }, { 5374, 0x0051 }, { 5377, 0x0000 }, + /* 0x9600 */ + { 5377, 0x0000 }, { 5377, 0x6000 }, { 5379, 0x1074 }, { 5384, 0x378a }, + { 5392, 0x0002 }, { 5393, 0x01d4 }, { 5398, 0x4002 }, { 5400, 0xd810 }, + { 5405, 0x021e }, { 5410, 0xa442 }, { 5415, 0xc270 }, { 5421, 0x0408 }, + { 5423, 0x0400 }, { 5424, 0xe504 }, { 5430, 0x8200 }, { 5432, 0x0402 }, + /* 0x9700 */ + { 5434, 0x022c }, { 5438, 0x2c00 }, { 5441, 0x010e }, { 5445, 0x000a }, + { 5447, 0xc40a }, { 5452, 0x0da0 }, { 5457, 0x4488 }, { 5461, 0xa9c8 }, + { 5468, 0x0201 }, { 5470, 0xc6e0 }, { 5477, 0x5004 }, { 5480, 0xd766 }, + { 5490, 0x76b2 }, { 5499, 0x6b93 }, { 5508, 0x8013 }, { 5512, 0x0592 }, + /* 0x9800 */ + { 5517, 0x6480 }, { 5521, 0x5250 }, { 5526, 0xc869 }, { 5533, 0x402d }, + { 5538, 0x0490 }, { 5541, 0x06ce }, { 5548, 0x146c }, { 5554, 0x0000 }, + { 5554, 0x0000 }, { 5554, 0x0000 }, { 5554, 0x6800 }, { 5557, 0x8d91 }, + { 5564, 0x1124 }, { 5568, 0x0000 }, { 5568, 0x04ea }, { 5574, 0x0048 }, + /* 0x9900 */ + { 5576, 0x0184 }, { 5579, 0x9ce2 }, { 5587, 0x08c4 }, { 5591, 0x1e3e }, + { 5600, 0x61c3 }, { 5607, 0xdb10 }, { 5614, 0x0001 }, { 5615, 0x0000 }, + { 5615, 0x0000 }, { 5615, 0xa800 }, { 5618, 0x0040 }, { 5619, 0xa627 }, + { 5627, 0x0208 }, { 5629, 0x5618 }, { 5635, 0x1c80 }, { 5639, 0x6231 }, + /* 0x9a00 */ + { 5645, 0x181c }, { 5650, 0x4043 }, { 5654, 0x609d }, { 5661, 0x0168 }, + { 5665, 0x5c92 }, { 5672, 0x2052 }, { 5676, 0x0000 }, { 5676, 0x0000 }, + { 5676, 0x0000 }, { 5676, 0x0000 }, { 5676, 0xd400 }, { 5680, 0xca74 }, + { 5688, 0x414a }, { 5693, 0x18e5 }, { 5700, 0x12b1 }, { 5706, 0xa62c }, + /* 0x9b00 */ + { 5713, 0x7b3f }, { 5725, 0x1a45 }, { 5731, 0x2841 }, { 5735, 0x26b8 }, + { 5742, 0x1900 }, { 5745, 0x48e0 }, { 5750, 0x7d6a }, { 5760, 0x83a8 }, + { 5766, 0xaef1 }, { 5776, 0x6411 }, { 5781, 0x12c0 }, { 5785, 0xd987 }, + { 5794, 0x4182 }, { 5798, 0xa181 }, { 5803, 0x8ca0 }, { 5808, 0xa788 }, + /* 0x9c00 */ + { 5815, 0x8805 }, { 5819, 0x5742 }, { 5826, 0x07cc }, { 5833, 0x20e2 }, + { 5838, 0xc63a }, { 5846, 0xf959 }, { 5856, 0x4f08 }, { 5862, 0x08a5 }, + { 5867, 0x0000 }, { 5867, 0x0000 }, { 5867, 0x0000 }, { 5867, 0x0000 }, + { 5867, 0x0000 }, { 5867, 0x0000 }, { 5867, 0x0040 }, { 5868, 0x0284 }, + /* 0x9d00 */ + { 5871, 0x0804 }, { 5873, 0x7182 }, { 5879, 0x8000 }, { 5880, 0x341d }, + { 5887, 0x04ac }, { 5892, 0x8018 }, { 5895, 0x0e2c }, { 5901, 0x58c1 }, + { 5907, 0x6458 }, { 5913, 0x01ec }, { 5919, 0x5402 }, { 5923, 0x9222 }, + { 5928, 0x0688 }, { 5932, 0xc4f0 }, { 5939, 0x4aa1 }, { 5945, 0x4019 }, + /* 0x9e00 */ + { 5949, 0x4484 }, { 5953, 0x3267 }, { 5961, 0x0000 }, { 5961, 0x0000 }, + { 5961, 0x0000 }, { 5961, 0x0000 }, { 5961, 0x0000 }, { 5961, 0x1c00 }, + { 5964, 0xc0bd }, { 5972, 0x4940 }, { 5976, 0xd110 }, { 5981, 0x0039 }, + { 5985, 0x0940 }, { 5988, 0x8020 }, { 5990, 0x7090 }, { 5995, 0x8127 }, + /* 0x9f00 */ + { 6001, 0x820c }, { 6005, 0x8ed7 }, { 6015, 0x8c44 }, { 6020, 0xb696 }, + { 6029, 0x00fa }, { 6035, 0x65e8 }, { 6043, 0xe300 }, { 6048, 0x242b }, + { 6054, 0x8000 }, { 6055, 0x40d7 }, { 6062, 0x002e }, +}; +static const Summary16 jisx0212_uni2indx_pageff[6] = { + /* 0xff00 */ + { 6066, 0x0000 }, { 6066, 0x0000 }, { 6066, 0x0000 }, { 6066, 0x0000 }, + { 6066, 0x0000 }, { 6066, 0x4000 }, +}; + +static int +jisx0212_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (n >= 2) { + const Summary16 *summary = NULL; + if (wc >= 0x0000 && wc < 0x0460) + summary = &jisx0212_uni2indx_page00[(wc>>4)]; + else if (wc >= 0x2100 && wc < 0x2130) + summary = &jisx0212_uni2indx_page21[(wc>>4)-0x210]; + else if (wc >= 0x4e00 && wc < 0x9fb0) + summary = &jisx0212_uni2indx_page4e[(wc>>4)-0x4e0]; + else if (wc >= 0xff00 && wc < 0xff60) + summary = &jisx0212_uni2indx_pageff[(wc>>4)-0xff0]; + if (summary) { + unsigned short used = summary->used; + unsigned int i = wc & 0x0f; + if (used & ((unsigned short) 1 << i)) { + unsigned short c; + /* Keep in `used' only the bits 0..i-1. */ + used &= ((unsigned short) 1 << i) - 1; + /* Add `summary->indx' and the number of bits set in `used'. */ + used = (used & 0x5555) + ((used & 0xaaaa) >> 1); + used = (used & 0x3333) + ((used & 0xcccc) >> 2); + used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); + used = (used & 0x00ff) + (used >> 8); + c = jisx0212_2charset[summary->indx + used]; + r[0] = (c >> 8); r[1] = (c & 0xff); + return 2; + } + } + return RET_ILUNI; + } + return RET_TOOSMALL; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/jisx0213.h b/graf2d/win32gdk/gdk/src/iconv/jisx0213.h new file mode 100644 index 00000000000..98468c46449 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/jisx0213.h @@ -0,0 +1,5924 @@ +/* + * Copyright (C) 1999-2004 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * JISX0213:2000 + */ + +#ifndef _JISX0213_H +#define _JISX0213_H + +/* JISX0213 plane 1 (= ISO-IR-233) characters are in the range + 0x{21..7E}{21..7E}. + JISX0213 plane 2 (= ISO-IR-229) characters are in the range + 0x{21,23..25,28,2C..2F,6E..7E}{21..7E}. + Together this makes 120 rows of 94 characters. +*/ + +static const unsigned short jisx0213_to_ucs_combining[][2] = { + { 0x304b, 0x309a }, + { 0x304d, 0x309a }, + { 0x304f, 0x309a }, + { 0x3051, 0x309a }, + { 0x3053, 0x309a }, + { 0x30ab, 0x309a }, + { 0x30ad, 0x309a }, + { 0x30af, 0x309a }, + { 0x30b1, 0x309a }, + { 0x30b3, 0x309a }, + { 0x30bb, 0x309a }, + { 0x30c4, 0x309a }, + { 0x30c8, 0x309a }, + { 0x31f7, 0x309a }, + { 0x00e6, 0x0300 }, + { 0x0254, 0x0300 }, + { 0x0254, 0x0301 }, + { 0x028c, 0x0300 }, + { 0x028c, 0x0301 }, + { 0x0259, 0x0300 }, + { 0x0259, 0x0301 }, + { 0x025a, 0x0300 }, + { 0x025a, 0x0301 }, + { 0x02e9, 0x02e5 }, + { 0x02e5, 0x02e9 }, +}; + +static const unsigned short jisx0213_to_ucs_main[120 * 94] = { + /* 0x12121..0x1217E */ + 0x1000, 0x1001, 0x1002, 0x830c, 0x830e, 0x10fb, 0x831a, 0x831b, + 0x831f, 0x8301, 0x109b, 0x109c, 0x00b4, 0x8340, 0x00a8, 0x833e, + 0x83e3, 0x833f, 0x10fd, 0x10fe, 0x109d, 0x109e, 0x1003, 0x2edd, + 0x1005, 0x1006, 0x1007, 0x10fc, 0x0714, 0x0710, 0x830f, 0x833c, + 0x101c, 0x0716, 0x835c, 0x0726, 0x0725, 0x0718, 0x0719, 0x071c, + 0x071d, 0x8308, 0x8309, 0x1014, 0x1015, 0x833b, 0x833d, 0x835b, + 0x835d, 0x1008, 0x1009, 0x100a, 0x100b, 0x100c, 0x100d, 0x100e, + 0x100f, 0x1010, 0x1011, 0x830b, 0x0912, 0x00b1, 0x00d7, 0x00f7, + 0x831d, 0x0960, 0x831c, 0x831e, 0x0966, 0x0967, 0x091e, 0x0934, + 0x0d42, 0x0d40, 0x00b0, 0x0732, 0x0733, 0x0803, 0x83e5, 0x8304, + 0x00a2, 0x00a3, 0x8305, 0x8303, 0x8306, 0x830a, 0x8320, 0x00a7, + 0x0d06, 0x0d05, 0x0ccb, 0x0ccf, 0x0cce, 0x0cc7, + /* 0x12221..0x1227E */ + 0x0cc6, 0x0ca1, 0x0ca0, 0x0cb3, 0x0cb2, 0x0cbd, 0x0cbc, 0x073b, + 0x1012, 0x0892, 0x0890, 0x0891, 0x0893, 0x1013, 0x8307, 0x8302, + 0x830d, 0x835e, 0x1033, 0x1034, 0x1035, 0x103b, 0x103c, 0x10ff, + 0x109f, 0x0908, 0x090b, 0x0986, 0x0987, 0x0982, 0x0983, 0x092a, + 0x0929, 0x0984, 0x0985, 0x098a, 0x098b, 0x0909, 0x0905, 0x0a05, + 0x0a06, 0x0927, 0x0928, 0x00ac, 0x08d2, 0x08d4, 0x0900, 0x0903, + 0x0995, 0x0996, 0x0997, 0x0925, 0x0926, 0x835f, 0x8360, 0x1018, + 0x1019, 0x1016, 0x1017, 0x0920, 0x09a5, 0x0a12, 0x0902, 0x0907, + 0x0961, 0x0952, 0x096a, 0x096b, 0x091a, 0x093d, 0x091d, 0x0935, + 0x092b, 0x092c, 0x0962, 0x0943, 0x0945, 0x0948, 0x0976, 0x0977, + 0x0894, 0x082b, 0x0730, 0x0d6f, 0x0d6d, 0x0d6a, 0x0720, 0x0721, + 0x00b6, 0x0d6e, 0x0d6b, 0x0d6c, 0x0d69, 0x0cef, + /* 0x12321..0x1237E */ + 0x0cb7, 0x0cb6, 0x0cc1, 0x0cc0, 0x0897, 0x0898, 0x0896, 0x0899, + 0x08c4, 0x08e8, 0x08e6, 0x08e7, 0x08e9, 0x0f34, 0x0f35, 0x8310, + 0x8311, 0x8312, 0x8313, 0x8314, 0x8315, 0x8316, 0x8317, 0x8318, + 0x8319, 0x0fbf, 0x0cc9, 0x103d, 0x8246, 0x8245, 0x0ce6, 0x0722, + 0x8321, 0x8322, 0x8323, 0x8324, 0x8325, 0x8326, 0x8327, 0x8328, + 0x8329, 0x832a, 0x832b, 0x832c, 0x832d, 0x832e, 0x832f, 0x8330, + 0x8331, 0x8332, 0x8333, 0x8334, 0x8335, 0x8336, 0x8337, 0x8338, + 0x8339, 0x833a, 0x0913, 0x0835, 0x080f, 0x13cb, 0x0813, 0x0827, + 0x8341, 0x8342, 0x8343, 0x8344, 0x8345, 0x8346, 0x8347, 0x8348, + 0x8349, 0x834a, 0x834b, 0x834c, 0x834d, 0x834e, 0x834f, 0x8350, + 0x8351, 0x8352, 0x8353, 0x8354, 0x8355, 0x8356, 0x8357, 0x8358, + 0x8359, 0x835a, 0x10a0, 0x0713, 0x0ffa, 0x0ffb, + /* 0x12421..0x1247E */ + 0x1041, 0x1042, 0x1043, 0x1044, 0x1045, 0x1046, 0x1047, 0x1048, + 0x1049, 0x104a, 0x104b, 0x104c, 0x104d, 0x104e, 0x104f, 0x1050, + 0x1051, 0x1052, 0x1053, 0x1054, 0x1055, 0x1056, 0x1057, 0x1058, + 0x1059, 0x105a, 0x105b, 0x105c, 0x105d, 0x105e, 0x105f, 0x1060, + 0x1061, 0x1062, 0x1063, 0x1064, 0x1065, 0x1066, 0x1067, 0x1068, + 0x1069, 0x106a, 0x106b, 0x106c, 0x106d, 0x106e, 0x106f, 0x1070, + 0x1071, 0x1072, 0x1073, 0x1074, 0x1075, 0x1076, 0x1077, 0x1078, + 0x1079, 0x107a, 0x107b, 0x107c, 0x107d, 0x107e, 0x107f, 0x1080, + 0x1081, 0x1082, 0x1083, 0x1084, 0x1085, 0x1086, 0x1087, 0x1088, + 0x1089, 0x108a, 0x108b, 0x108c, 0x108d, 0x108e, 0x108f, 0x1090, + 0x1091, 0x1092, 0x1093, 0x1094, 0x1095, 0x1096, 0x0001, 0x0002, + 0x0003, 0x0004, 0x0005, 0x0000, 0x0000, 0x0000, + /* 0x12521..0x1257E */ + 0x10a1, 0x10a2, 0x10a3, 0x10a4, 0x10a5, 0x10a6, 0x10a7, 0x10a8, + 0x10a9, 0x10aa, 0x10ab, 0x10ac, 0x10ad, 0x10ae, 0x10af, 0x10b0, + 0x10b1, 0x10b2, 0x10b3, 0x10b4, 0x10b5, 0x10b6, 0x10b7, 0x10b8, + 0x10b9, 0x10ba, 0x10bb, 0x10bc, 0x10bd, 0x10be, 0x10bf, 0x10c0, + 0x10c1, 0x10c2, 0x10c3, 0x10c4, 0x10c5, 0x10c6, 0x10c7, 0x10c8, + 0x10c9, 0x10ca, 0x10cb, 0x10cc, 0x10cd, 0x10ce, 0x10cf, 0x10d0, + 0x10d1, 0x10d2, 0x10d3, 0x10d4, 0x10d5, 0x10d6, 0x10d7, 0x10d8, + 0x10d9, 0x10da, 0x10db, 0x10dc, 0x10dd, 0x10de, 0x10df, 0x10e0, + 0x10e1, 0x10e2, 0x10e3, 0x10e4, 0x10e5, 0x10e6, 0x10e7, 0x10e8, + 0x10e9, 0x10ea, 0x10eb, 0x10ec, 0x10ed, 0x10ee, 0x10ef, 0x10f0, + 0x10f1, 0x10f2, 0x10f3, 0x10f4, 0x10f5, 0x10f6, 0x0006, 0x0007, + 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, + /* 0x12621..0x1267E */ + 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, + 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, + 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, + 0x0d64, 0x0d60, 0x0d62, 0x0d66, 0x0d61, 0x0d65, 0x0d67, 0x0d63, + 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, + 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, + 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, + 0x03c2, 0x0bf5, 0x0bf6, 0x0bf7, 0x0bf8, 0x0bf9, 0x0bfa, 0x0bfb, + 0x0bfc, 0x0bfd, 0x0bfe, 0x0d16, 0x0d17, 0x1020, 0x0d0e, 0x0d00, + 0x0d01, 0x0d02, 0x0d03, 0x0d68, 0x0cb1, 0x11f0, 0x11f1, 0x11f2, + 0x11f3, 0x11f4, 0x11f5, 0x11f6, 0x11f7, 0x11f8, 0x11f9, 0x000e, + 0x11fa, 0x11fb, 0x11fc, 0x11fd, 0x11fe, 0x11ff, + /* 0x12721..0x1277E */ + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416, + 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, + 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, + 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, + 0x042f, 0x0abe, 0x0abf, 0x0ac0, 0x0ac1, 0x0ac2, 0x0ac3, 0x0ac4, + 0x0ac5, 0x0ac6, 0x0ac7, 0x0ac8, 0x0ac9, 0x0aca, 0x0acb, 0x0acc, + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436, + 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, + 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, + 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, + 0x044f, 0x10f7, 0x10f8, 0x10f9, 0x10fa, 0x09da, 0x09db, 0x0853, + 0x0854, 0x0855, 0x0e13, 0x0a18, 0x0b23, 0x0ace, + /* 0x12821..0x1287E */ + 0x0c00, 0x0c02, 0x0c0c, 0x0c10, 0x0c18, 0x0c14, 0x0c1c, 0x0c2c, + 0x0c24, 0x0c34, 0x0c3c, 0x0c01, 0x0c03, 0x0c0f, 0x0c13, 0x0c1b, + 0x0c17, 0x0c23, 0x0c33, 0x0c2b, 0x0c3b, 0x0c4b, 0x0c20, 0x0c2f, + 0x0c28, 0x0c37, 0x0c3f, 0x0c1d, 0x0c30, 0x0c25, 0x0c38, 0x0c42, + 0x1251, 0x1252, 0x1253, 0x1254, 0x1255, 0x1256, 0x1257, 0x1258, + 0x1259, 0x125a, 0x125b, 0x125c, 0x125d, 0x125e, 0x125f, 0x12b1, + 0x12b2, 0x12b3, 0x12b4, 0x12b5, 0x12b6, 0x12b7, 0x12b8, 0x12b9, + 0x12ba, 0x12bb, 0x12bc, 0x12bd, 0x12be, 0x12bf, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0cd0, 0x0cd1, + 0x0cd2, 0x0cd3, 0x073c, 0x0747, 0x0748, 0x0749, 0x01cd, 0x01ce, + 0x01d0, 0x053e, 0x053f, 0x01f8, 0x01f9, 0x01d1, 0x01d2, 0x01d4, + 0x01d6, 0x01d8, 0x01da, 0x01dc, 0x0000, 0x0000, + /* 0x12921..0x1297E */ + 0x07ac, 0x00a0, 0x00a1, 0x00a4, 0x00a6, 0x00a9, 0x00aa, 0x00ab, + 0x00ad, 0x00ae, 0x00af, 0x00b2, 0x00b3, 0x00b7, 0x00b8, 0x00b9, + 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, 0x00c0, 0x00c1, + 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, + 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, + 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d8, 0x00d9, 0x00da, + 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, 0x00e0, 0x00e1, 0x00e2, + 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, + 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f2, + 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f8, 0x00f9, 0x00fa, 0x00fb, + 0x00fc, 0x00fd, 0x00fe, 0x00ff, 0x0100, 0x012a, 0x016a, 0x0112, + 0x014c, 0x0101, 0x012b, 0x016b, 0x0113, 0x014d, + /* 0x12A21..0x12A7E */ + 0x0104, 0x02d8, 0x0141, 0x013d, 0x015a, 0x0160, 0x015e, 0x0164, + 0x0179, 0x017d, 0x017b, 0x0105, 0x02db, 0x0142, 0x013e, 0x015b, + 0x02c7, 0x0161, 0x015f, 0x0165, 0x017a, 0x02dd, 0x017e, 0x017c, + 0x0154, 0x0102, 0x0139, 0x0106, 0x010c, 0x0118, 0x011a, 0x010e, + 0x0143, 0x0147, 0x0150, 0x0158, 0x016e, 0x0170, 0x0162, 0x0155, + 0x0103, 0x013a, 0x0107, 0x010d, 0x0119, 0x011b, 0x010f, 0x0111, + 0x0144, 0x0148, 0x0151, 0x0159, 0x016f, 0x0171, 0x0163, 0x02d9, + 0x0108, 0x011c, 0x0124, 0x0134, 0x015c, 0x016c, 0x0109, 0x011d, + 0x0125, 0x0135, 0x015d, 0x016d, 0x0271, 0x028b, 0x027e, 0x0283, + 0x0292, 0x026c, 0x026e, 0x0279, 0x0288, 0x0256, 0x0273, 0x027d, + 0x0282, 0x0290, 0x027b, 0x026d, 0x025f, 0x0272, 0x029d, 0x028e, + 0x0261, 0x014b, 0x0270, 0x0281, 0x0127, 0x0295, + /* 0x12B21..0x12B7E */ + 0x0294, 0x0266, 0x0298, 0x01c2, 0x0253, 0x0257, 0x0284, 0x0260, + 0x0193, 0x0153, 0x0152, 0x0268, 0x0289, 0x0258, 0x0275, 0x0259, + 0x025c, 0x025e, 0x0250, 0x026f, 0x028a, 0x0264, 0x028c, 0x0254, + 0x0251, 0x0252, 0x028d, 0x0265, 0x02a2, 0x02a1, 0x0255, 0x0291, + 0x027a, 0x0267, 0x025a, 0x000f, 0x01fd, 0x0670, 0x0671, 0x0010, + 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0672, + 0x0673, 0x0361, 0x02c8, 0x02cc, 0x02d0, 0x02d1, 0x0306, 0x073f, + 0x030b, 0x0301, 0x0304, 0x0300, 0x030f, 0x030c, 0x0302, 0x02e5, + 0x02e6, 0x02e7, 0x02e8, 0x02e9, 0x0018, 0x0019, 0x0325, 0x032c, + 0x0339, 0x031c, 0x031f, 0x0320, 0x0308, 0x033d, 0x0329, 0x032f, + 0x02de, 0x0324, 0x0330, 0x033c, 0x0334, 0x031d, 0x031e, 0x0318, + 0x0319, 0x032a, 0x033a, 0x033b, 0x0303, 0x031a, + /* 0x12C21..0x12C7E */ + 0x0e76, 0x0e77, 0x0e78, 0x0e79, 0x0e7a, 0x0e7b, 0x0e7c, 0x0e7d, + 0x0e7e, 0x0e7f, 0x0beb, 0x0bec, 0x0bed, 0x0bee, 0x0bef, 0x0bf0, + 0x0bf1, 0x0bf2, 0x0bf3, 0x0bf4, 0x0870, 0x0871, 0x0872, 0x0873, + 0x0874, 0x0875, 0x0876, 0x0877, 0x0878, 0x0879, 0x087a, 0x087b, + 0x0bd0, 0x0bd1, 0x0bd2, 0x0bd3, 0x0bd4, 0x0bd5, 0x0bd6, 0x0bd7, + 0x0bd8, 0x0bd9, 0x0bda, 0x0bdb, 0x0bdc, 0x0bdd, 0x0bde, 0x0bdf, + 0x0be0, 0x0be1, 0x0be2, 0x0be3, 0x0be4, 0x0be5, 0x0be6, 0x0be7, + 0x0be8, 0x0be9, 0x12d0, 0x12d1, 0x12d2, 0x12d3, 0x12d4, 0x12d5, + 0x12d6, 0x12d7, 0x12d8, 0x12d9, 0x12da, 0x12db, 0x12dc, 0x12dd, + 0x12de, 0x12df, 0x12e0, 0x12e1, 0x12e2, 0x12e3, 0x12fa, 0x12e9, + 0x12e5, 0x12ed, 0x12ec, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0751, 0x0742, + /* 0x12D21..0x12D7E */ + 0x0b60, 0x0b61, 0x0b62, 0x0b63, 0x0b64, 0x0b65, 0x0b66, 0x0b67, + 0x0b68, 0x0b69, 0x0b6a, 0x0b6b, 0x0b6c, 0x0b6d, 0x0b6e, 0x0b6f, + 0x0b70, 0x0b71, 0x0b72, 0x0b73, 0x0860, 0x0861, 0x0862, 0x0863, + 0x0864, 0x0865, 0x0866, 0x0867, 0x0868, 0x0869, 0x086a, 0x1349, + 0x1314, 0x1322, 0x134d, 0x1318, 0x1327, 0x1303, 0x1336, 0x1351, + 0x1357, 0x130d, 0x1326, 0x1323, 0x132b, 0x134a, 0x133b, 0x139c, + 0x139d, 0x139e, 0x138e, 0x138f, 0x13c4, 0x13a1, 0x086b, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x137b, 0x101d, + 0x101f, 0x0816, 0x13cd, 0x0821, 0x12a4, 0x12a5, 0x12a6, 0x12a7, + 0x12a8, 0x1231, 0x1232, 0x1239, 0x137e, 0x137d, 0x137c, 0x0000, + 0x0000, 0x0000, 0x092e, 0x0000, 0x0000, 0x0000, 0x0000, 0x091f, + 0x09bf, 0x0000, 0x0000, 0x0000, 0x0e56, 0x0d1e, + /* 0x12E21..0x12E7E */ + 0x2ff1, 0x840b, 0x1402, 0x2e28, 0x2e2f, 0x2e30, 0x2e8d, 0x2ee1, + 0x2efd, 0x2eff, 0x2f03, 0x2f0b, 0x2f60, 0x2f48, 0x2f49, 0x2f56, + 0x2f5f, 0x2f6a, 0x2f6c, 0x2f7e, 0x2f8a, 0x2f94, 0x2f97, 0x8130, + 0x2fc9, 0x2fe0, 0x3001, 0x3002, 0x300e, 0x3018, 0x3027, 0x302e, + 0x3040, 0x303b, 0x3041, 0x3094, 0x30cc, 0x30f2, 0x30d0, 0x30e6, + 0x8131, 0x3106, 0x3103, 0x310b, 0x311e, 0x3135, 0x314a, 0x8132, + 0x3155, 0x3157, 0x14b5, 0x319d, 0x31c3, 0x31ca, 0x31de, 0x31e2, + 0x31ee, 0x3201, 0x14db, 0x3213, 0x3215, 0x3249, 0x3257, 0x3261, + 0x3293, 0x32c8, 0x8133, 0x32cc, 0x32d0, 0x32d6, 0x32db, 0x8134, + 0x32f0, 0x32fb, 0x3300, 0x3307, 0x331c, 0x8135, 0x3361, 0x3363, + 0x337d, 0x3393, 0x339d, 0x33b2, 0x3412, 0x3427, 0x344d, 0x349c, + 0x346b, 0x3474, 0x347f, 0x3488, 0x3496, 0x34a1, + /* 0x12F21..0x12F7E */ + 0x34a9, 0x34c6, 0x34ff, 0x350e, 0x352b, 0x3535, 0x3550, 0x355e, + 0x3581, 0x3586, 0x358e, 0x8136, 0x35ad, 0x35ce, 0x8137, 0x3608, + 0x360e, 0x363b, 0x3649, 0x3676, 0x3666, 0x8138, 0x366f, 0x3671, + 0x3672, 0x3699, 0x369e, 0x36a9, 0x36ac, 0x36b3, 0x36c9, 0x36ca, + 0x370a, 0x923d, 0x3721, 0x372f, 0x3733, 0x3734, 0x3770, 0x3777, + 0x377c, 0x379c, 0x810f, 0x931b, 0x37b8, 0x37c7, 0x37c8, 0x37cf, + 0x37e4, 0x37ed, 0x37f5, 0x37f6, 0x37ff, 0x3809, 0x8110, 0x3861, + 0x3864, 0x8139, 0x387c, 0x3889, 0x389e, 0x813a, 0x38a9, 0x946e, + 0x38d2, 0x38ce, 0x38d4, 0x38da, 0x38e0, 0x38e9, 0x390c, 0x6641, + 0x395d, 0x396d, 0x398b, 0x3992, 0x39a4, 0x39c3, 0x39d2, 0x39dd, + 0x3a13, 0x3a23, 0x3a67, 0x3a6d, 0x3a77, 0x3a7e, 0x3a84, 0x3a9e, + 0x3aa7, 0x3ac4, 0x98bd, 0x3b19, 0x3b25, 0x325d, + /* 0x13021..0x1307E */ + 0x2e9c, 0x3516, 0x3a03, 0x763f, 0x34c0, 0x411b, 0x4328, 0x39f6, + 0x7022, 0x6475, 0x631c, 0x5a50, 0x40aa, 0x43e1, 0x4e25, 0x45ed, + 0x6466, 0x62a6, 0x7bf5, 0x4893, 0x3727, 0x45a1, 0x4271, 0x3b9b, + 0x39d0, 0x667b, 0x78f4, 0x5d62, 0x5dbe, 0x7b8e, 0x4216, 0x5c9f, + 0x68b7, 0x3b89, 0x3eb5, 0x4309, 0x4697, 0x4848, 0x75c7, 0x778d, + 0x474f, 0x2ee5, 0x2f0a, 0x2f4d, 0x2f9d, 0x3049, 0x36f2, 0x3937, + 0x39d4, 0x3a01, 0x3c09, 0x40df, 0x410f, 0x4170, 0x4613, 0x4905, + 0x50ba, 0x554f, 0x5570, 0x59fb, 0x5dad, 0x5def, 0x60c3, 0x640e, + 0x6863, 0x6b02, 0x7055, 0x707a, 0x333b, 0x2e95, 0x2ea5, 0x37df, + 0x60b2, 0x70c1, 0x58ef, 0x2e00, 0x38f1, 0x4ea2, 0x7038, 0x5a32, + 0x6328, 0x628b, 0x7c2f, 0x3141, 0x3370, 0x34bd, 0x34e1, 0x36e0, + 0x39fb, 0x3f15, 0x78f2, 0x4deb, 0x60e4, 0x652d, + /* 0x13121..0x1317E */ + 0x7662, 0x7670, 0x76a0, 0x77fb, 0x340b, 0x33f3, 0x3b87, 0x50cf, + 0x5fbd, 0x6fc2, 0x76e8, 0x336f, 0x7d5c, 0x5aba, 0x2e11, 0x5893, + 0x61fc, 0x4e26, 0x3618, 0x3504, 0x4b1d, 0x651a, 0x7c3b, 0x39e5, + 0x33a9, 0x4d66, 0x54dc, 0x758f, 0x3642, 0x2e91, 0x704b, 0x76f2, + 0x634f, 0x790c, 0x33e1, 0x35b6, 0x3b30, 0x3f71, 0x4620, 0x46f3, + 0x4804, 0x4c38, 0x4cf3, 0x4d29, 0x545b, 0x56c8, 0x5a4e, 0x7834, + 0x62f1, 0x685b, 0x6a60, 0x72ed, 0x4db2, 0x55ab, 0x56ca, 0x79c5, + 0x40a6, 0x6b01, 0x6d8a, 0x75b2, 0x498e, 0x33ad, 0x3186, 0x3712, + 0x3830, 0x3944, 0x3bb4, 0x3ef6, 0x4028, 0x43a9, 0x43f4, 0x4cbf, + 0x4f14, 0x508e, 0x5114, 0x5159, 0x51d5, 0x533f, 0x5e01, 0x6276, + 0x62d1, 0x6597, 0x7060, 0x725b, 0x7d1b, 0x3869, 0x45bc, 0x4c5a, + 0x5525, 0x31f9, 0x392e, 0x3965, 0x3f80, 0x3fdc, + /* 0x13221..0x1327E */ + 0x42bc, 0x45fa, 0x4a2a, 0x4b27, 0x4bb4, 0x538b, 0x5fc1, 0x6956, + 0x7d2c, 0x7d0e, 0x7ec4, 0x3ca1, 0x4c96, 0x637b, 0x3104, 0x3c4b, + 0x41b6, 0x61c6, 0x4876, 0x5261, 0x2e59, 0x2ffa, 0x3378, 0x4069, + 0x4e29, 0x5a4f, 0x77f3, 0x2e0b, 0x3316, 0x2eee, 0x2f55, 0x2f3d, + 0x2fa1, 0x2f73, 0x32a0, 0x33ef, 0x3609, 0x390f, 0x3ac1, 0x3bb6, + 0x3be1, 0x59d1, 0x4687, 0x479c, 0x47b6, 0x4b4c, 0x4cb3, 0x506b, + 0x53c2, 0x598d, 0x59be, 0x5a3c, 0x5b87, 0x62b1, 0x62db, 0x6304, + 0x6377, 0x63ef, 0x63d3, 0x6766, 0x6ab2, 0x3629, 0x6ca8, 0x6fe6, + 0x704e, 0x771e, 0x668a, 0x2fc4, 0x3ce8, 0x4211, 0x5259, 0x553b, + 0x61e5, 0x62bd, 0x66fe, 0x6cc0, 0x76c5, 0x7913, 0x79d5, 0x2ecb, + 0x2f1a, 0x69e3, 0x36de, 0x384a, 0x38ca, 0x3efb, 0x3feb, 0x402a, + 0x4094, 0x4062, 0x41d0, 0x4212, 0x42d0, 0x4539, + /* 0x13321..0x1337E */ + 0x7b41, 0x4666, 0x48b0, 0x4d77, 0x5070, 0x554c, 0x5686, 0x5d75, + 0x62a5, 0x67f9, 0x758b, 0x768e, 0x6c9d, 0x31f1, 0x32be, 0x3916, + 0x34b3, 0x3bb3, 0x3d16, 0x4168, 0x4982, 0x4daf, 0x588d, 0x64cb, + 0x6857, 0x6a72, 0x73a7, 0x7ab8, 0x4d6c, 0x79a8, 0x66d9, 0x37a3, + 0x47ff, 0x66ce, 0x720e, 0x3283, 0x3687, 0x3404, 0x3ed3, 0x42e1, + 0x44b9, 0x483c, 0x4838, 0x4bbb, 0x5372, 0x58ba, 0x5a6b, 0x699a, + 0x69d2, 0x6d6b, 0x6f03, 0x70ed, 0x75a3, 0x7694, 0x7769, 0x3b66, + 0x3cb3, 0x497d, 0x784d, 0x784e, 0x439b, 0x5b20, 0x4a2b, 0x4a7f, + 0x48b6, 0x7c0d, 0x4f5f, 0x3272, 0x359d, 0x4070, 0x42ec, 0x4d3b, + 0x4e07, 0x4ed1, 0x645b, 0x6910, 0x6f44, 0x2e14, 0x7c39, 0x33f6, + 0x491b, 0x4a3a, 0x7784, 0x482a, 0x315c, 0x5ac3, 0x64b2, 0x71dc, + 0x738c, 0x365b, 0x7d28, 0x4822, 0x6305, 0x6431, + /* 0x13421..0x1347E */ + 0x5ca5, 0x3208, 0x62c5, 0x54e6, 0x2e7e, 0x2f83, 0x31a0, 0x3bd2, + 0x320a, 0x32d8, 0x32e7, 0x3dfb, 0x359a, 0x382a, 0x39e6, 0x3b8c, + 0x3b98, 0x3bdb, 0x3e72, 0x3e79, 0x40a3, 0x411f, 0x4163, 0x41be, + 0x43db, 0x4562, 0x47d1, 0x4853, 0x48fa, 0x4b3e, 0x4b53, 0x4c57, + 0x4f22, 0x4f97, 0x4f45, 0x54b0, 0x5518, 0x56e3, 0x570b, 0x5aff, + 0x5ba1, 0x5c21, 0x5de9, 0x5f36, 0x5ff0, 0x609d, 0x6266, 0x639e, + 0x69b3, 0x6acc, 0x6cab, 0x7084, 0x7451, 0x7593, 0x7591, 0x75a2, + 0x7665, 0x77d3, 0x7928, 0x6218, 0x2e38, 0x342b, 0x3cb8, 0x3dcc, + 0x53a9, 0x564c, 0x573c, 0x3ca9, 0x5feb, 0x6d0b, 0x76c1, 0x7811, + 0x7854, 0x7858, 0x2f01, 0x2f0e, 0x3371, 0x359c, 0x3668, 0x37fa, + 0x3947, 0x3b09, 0x3bc4, 0x3c90, 0x3e0c, 0x3e7e, 0x3fcc, 0x43ee, + 0x473a, 0x45d7, 0x45e2, 0x471f, 0x48cb, 0x48c4, + /* 0x13521..0x1357E */ + 0x4a5f, 0x3e30, 0x4bc5, 0x4c17, 0x4c7d, 0x557f, 0x5948, 0x3b63, + 0x5a00, 0x5d00, 0x3fbd, 0x698f, 0x6a18, 0x6cb4, 0x6d77, 0x6ecc, + 0x6f1d, 0x78e2, 0x7a0e, 0x7b3c, 0x2e80, 0x307d, 0x3100, 0x3993, + 0x3b9c, 0x422f, 0x4280, 0x44ec, 0x4b3a, 0x52a0, 0x5591, 0x5947, + 0x5fa9, 0x67fb, 0x6abc, 0x6b70, 0x43ac, 0x63ca, 0x77a0, 0x3409, + 0x3403, 0x35ab, 0x4854, 0x4a58, 0x6a70, 0x5827, 0x4775, 0x7ecd, + 0x3374, 0x3ba2, 0x611a, 0x6650, 0x7006, 0x2e18, 0x2e45, 0x2ec7, + 0x2f11, 0x33ca, 0x3438, 0x3bae, 0x3f13, 0x4025, 0x4551, 0x473d, + 0x4c42, 0x4c72, 0x4ce3, 0x5078, 0x5403, 0x5a76, 0x5aae, 0x5b08, + 0x5d1a, 0x5cfe, 0x5d66, 0x45e7, 0x525b, 0x33bb, 0x3c45, 0x3de8, + 0x42d2, 0x42e0, 0x4319, 0x4e20, 0x665a, 0x6a31, 0x6ddd, 0x72f8, + 0x4f01, 0x59a6, 0x7b5a, 0x2ea8, 0x2eab, 0x2eac, + /* 0x13621..0x1367E */ + 0x2f9b, 0x2fa0, 0x30d1, 0x3147, 0x5af6, 0x3171, 0x31f6, 0x3354, + 0x3321, 0x337f, 0x33eb, 0x35ac, 0x3883, 0x3ce1, 0x3f37, 0x3f4a, + 0x402f, 0x4050, 0x406d, 0x431f, 0x4559, 0x4a4b, 0x4cc1, 0x52c2, + 0x52ed, 0x57ef, 0x60f8, 0x6105, 0x6208, 0x654e, 0x70f7, 0x73e1, + 0x77ff, 0x7957, 0x7a5a, 0x2ef0, 0x31dd, 0x3c2d, 0x4681, 0x496d, + 0x3c40, 0x46f2, 0x4975, 0x5389, 0x4850, 0x5c81, 0x30c5, 0x32e4, + 0x3747, 0x3dfe, 0x7326, 0x45a4, 0x4b23, 0x4b3d, 0x5434, 0x5981, + 0x59bd, 0x5b4b, 0x5dca, 0x62b9, 0x63cc, 0x687f, 0x695f, 0x6b39, + 0x6fd1, 0x71d1, 0x341f, 0x7280, 0x2e5d, 0x3036, 0x33e5, 0x333a, + 0x52d7, 0x5396, 0x57e9, 0x62e6, 0x6eaf, 0x79c6, 0x79c8, 0x79d2, + 0x3177, 0x411a, 0x665e, 0x35b0, 0x5a7a, 0x3076, 0x3bd3, 0x7047, + 0x7685, 0x2e32, 0x4adb, 0x71e7, 0x3c51, 0x3c48, + /* 0x13721..0x1377E */ + 0x4398, 0x5a9f, 0x4c93, 0x7774, 0x6f61, 0x5aaa, 0x518a, 0x7688, + 0x5c82, 0x4817, 0x5e70, 0x4851, 0x736c, 0x32f2, 0x341b, 0x65ab, + 0x6a13, 0x5fa4, 0x6ecd, 0x70e1, 0x3366, 0x6888, 0x5941, 0x2fc2, + 0x30be, 0x3211, 0x3144, 0x3553, 0x372d, 0x53ea, 0x378b, 0x3951, + 0x3f62, 0x3f84, 0x4075, 0x4176, 0x4167, 0x41a9, 0x43b2, 0x443a, + 0x456c, 0x466f, 0x4842, 0x4e13, 0x5566, 0x5a3d, 0x5cfb, 0x5d4c, + 0x5d99, 0x5e4b, 0x5f6b, 0x630e, 0x634a, 0x66cd, 0x6a08, 0x6a63, + 0x6b66, 0x6efd, 0x781a, 0x7d8f, 0x62b8, 0x6fce, 0x7be8, 0x3287, + 0x421f, 0x4483, 0x4fc0, 0x7699, 0x4841, 0x3091, 0x4b20, 0x4c7a, + 0x4f54, 0x5a74, 0x5d50, 0x6840, 0x6a23, 0x4708, 0x2ef6, 0x3039, + 0x3026, 0x3065, 0x317c, 0x3238, 0x3263, 0x35a7, 0x370f, 0x3805, + 0x3acc, 0x3efa, 0x41b2, 0x41f8, 0x42f3, 0x4372, + /* 0x13821..0x1387E */ + 0x491c, 0x4a29, 0x527d, 0x52ac, 0x532e, 0x5814, 0x586f, 0x5d79, + 0x570c, 0x60a9, 0x698b, 0x6b19, 0x6ce2, 0x6ed2, 0x7063, 0x7375, + 0x767a, 0x7855, 0x7a13, 0x7e78, 0x3143, 0x339f, 0x33b3, 0x3e7b, + 0x3f26, 0x4e1b, 0x4e90, 0x5384, 0x53fe, 0x5d43, 0x6237, 0x6a00, + 0x6afa, 0x7650, 0x2e4e, 0x300b, 0x33e4, 0x347c, 0x36fa, 0x39d1, + 0x3b64, 0x3df1, 0x3eab, 0x3f27, 0x4238, 0x4545, 0x47af, 0x4e56, + 0x52d0, 0x5cca, 0x68b4, 0x60a1, 0x60e1, 0x63f0, 0x664e, 0x6a87, + 0x6de8, 0x7237, 0x76c7, 0x7867, 0x7f13, 0x2e94, 0x2e92, 0x2f0d, + 0x3348, 0x3449, 0x343e, 0x3a2f, 0x3f8c, 0x3fa1, 0x409f, 0x48a7, + 0x4a8e, 0x545a, 0x5881, 0x6a9e, 0x6aa4, 0x6b77, 0x7190, 0x2e5e, + 0x7bc9, 0x2ea4, 0x2f7c, 0x2faf, 0x3019, 0x3016, 0x3149, 0x316c, + 0x329f, 0x32b9, 0x32fe, 0x339a, 0x33e3, 0x3411, + /* 0x13921..0x1397E */ + 0x340e, 0x3589, 0x3751, 0x37a2, 0x397d, 0x3b54, 0x3b5d, 0x3b8f, + 0x3de5, 0x3de7, 0x3df7, 0x3e78, 0x3e83, 0x3e9a, 0x3eb7, 0x3f18, + 0x4052, 0x414c, 0x4297, 0x42d8, 0x43a7, 0x453b, 0x4602, 0x4643, + 0x46f4, 0x476d, 0x4821, 0x4897, 0x49cb, 0x4c5f, 0x4d2a, 0x4d69, + 0x4e2f, 0x4e9d, 0x5532, 0x5687, 0x586c, 0x5a3f, 0x5ce0, 0x5d05, + 0x5d18, 0x5d5e, 0x5db1, 0x6015, 0x6003, 0x60af, 0x60b1, 0x6154, + 0x618f, 0x622a, 0x6352, 0x684c, 0x6861, 0x6b1b, 0x6ca2, 0x6cfc, + 0x70ca, 0x7175, 0x7271, 0x583f, 0x72fc, 0x75a4, 0x764d, 0x7805, + 0x7999, 0x7ad8, 0x7d3b, 0x325b, 0x32ab, 0x33f7, 0x3408, 0x38d5, + 0x42f7, 0x4fe0, 0x6c6a, 0x6f5f, 0x7eb9, 0x314b, 0x323b, 0x344a, + 0x36fd, 0x5a40, 0x7177, 0x7d60, 0x7ed2, 0x5344, 0x4f09, 0x6170, + 0x5511, 0x3ffd, 0x40da, 0x7aa8, 0x52db, 0x6fbc, + /* 0x13A21..0x13A7E */ + 0x4b64, 0x7803, 0x2eca, 0x36f0, 0x3764, 0x38be, 0x3a5a, 0x4068, + 0x41c7, 0x460f, 0x4606, 0x4839, 0x48b1, 0x4df7, 0x55d5, 0x5d3a, + 0x626e, 0x7b42, 0x2e9b, 0x2f50, 0x33c9, 0x3506, 0x3d6f, 0x3de6, + 0x3dee, 0x47fb, 0x4c99, 0x5473, 0x5802, 0x6a50, 0x7396, 0x68df, + 0x3750, 0x3ea7, 0x432b, 0x30b5, 0x30ac, 0x318d, 0x4700, 0x34c9, + 0x385e, 0x39bb, 0x3bb0, 0x3f69, 0x424d, 0x43a1, 0x483d, 0x4b73, + 0x4e08, 0x507d, 0x71c7, 0x5280, 0x5815, 0x5826, 0x596d, 0x458e, + 0x5d30, 0x63dc, 0x68c1, 0x6f09, 0x769b, 0x3264, 0x3728, 0x4750, + 0x5f6a, 0x6ca1, 0x31b4, 0x3742, 0x762a, 0x383a, 0x498a, 0x60b4, + 0x34b2, 0x3d0e, 0x37fc, 0x5895, 0x7dfa, 0x2f5c, 0x324a, 0x348b, + 0x443e, 0x4628, 0x4714, 0x47f5, 0x5a84, 0x5b56, 0x5d22, 0x732f, + 0x485c, 0x7bad, 0x5b39, 0x3319, 0x318a, 0x3237, + /* 0x13B21..0x13B7E */ + 0x3bdf, 0x42f6, 0x44ae, 0x44e6, 0x472d, 0x4bba, 0x65a9, 0x76d1, + 0x5690, 0x7bd6, 0x434c, 0x7306, 0x7bab, 0x56bf, 0x4652, 0x2e09, + 0x3098, 0x33c2, 0x3c71, 0x40e8, 0x4492, 0x4563, 0x485f, 0x51e6, + 0x53ca, 0x5523, 0x5b97, 0x5e82, 0x6695, 0x6b83, 0x6cdb, 0x7178, + 0x7910, 0x45ac, 0x46ab, 0x4b8b, 0x2ed5, 0x2ed4, 0x2f3a, 0x2f7f, + 0x323a, 0x33f8, 0x33f2, 0x35e3, 0x36db, 0x38eb, 0x39cb, 0x39c9, + 0x39ff, 0x3b50, 0x3c4d, 0x3e02, 0x3e2b, 0x3fd7, 0x401d, 0x4307, + 0x452f, 0x3b5c, 0x45af, 0x45bd, 0x45e8, 0x479d, 0x4b62, 0x4b7b, + 0x4c0f, 0x5345, 0x5949, 0x59c1, 0x5cf8, 0x5d19, 0x5d2b, 0x60a2, + 0x6102, 0x61f3, 0x6996, 0x6a5e, 0x6a69, 0x6a66, 0x6a8c, 0x6aee, + 0x6cc7, 0x6cdc, 0x76cc, 0x78fc, 0x4b6f, 0x2e8b, 0x2f3c, 0x2f8d, + 0x3150, 0x3b57, 0x3bfa, 0x4148, 0x4301, 0x4642, + /* 0x13C21..0x13C7E */ + 0x4b21, 0x4ecb, 0x4cbb, 0x523e, 0x54bd, 0x55d4, 0x58c1, 0x593a, + 0x600c, 0x6033, 0x61ea, 0x6494, 0x6f9e, 0x4c50, 0x7e7f, 0x3f0f, + 0x6b58, 0x7d2b, 0x5afa, 0x6ef8, 0x3b8d, 0x76eb, 0x2e03, 0x33f1, + 0x37f7, 0x3931, 0x3ac9, 0x3ba4, 0x4089, 0x4e7f, 0x4f06, 0x55be, + 0x6cea, 0x3b9f, 0x6500, 0x5be0, 0x3072, 0x47f4, 0x629d, 0x3c61, + 0x654a, 0x5e1e, 0x620e, 0x3199, 0x3c04, 0x4368, 0x6d66, 0x459c, + 0x516e, 0x593e, 0x5d17, 0x6005, 0x6b1d, 0x6eca, 0x706e, 0x66c7, + 0x70aa, 0x301f, 0x32fa, 0x3c3a, 0x4753, 0x507c, 0x5235, 0x714c, + 0x71c8, 0x732b, 0x62e5, 0x3bc2, 0x3f31, 0x40f9, 0x2e3b, 0x33d6, + 0x3b88, 0x424b, 0x4731, 0x4b8a, 0x52e9, 0x53e0, 0x5a2e, 0x616b, + 0x6da3, 0x7152, 0x7996, 0x3112, 0x33d7, 0x346a, 0x3bff, 0x4388, + 0x4a39, 0x5dac, 0x7700, 0x36da, 0x33ce, 0x3468, + /* 0x13D21..0x13D7E */ + 0x3b97, 0x3c31, 0x3dde, 0x2fee, 0x4101, 0x42fe, 0x4d32, 0x59c0, + 0x59cb, 0x5d42, 0x5e4d, 0x5fd2, 0x61ed, 0x621f, 0x6490, 0x6846, + 0x6972, 0x6b90, 0x6e74, 0x6f2f, 0x7031, 0x714b, 0x716c, 0x76c6, + 0x719c, 0x2ec0, 0x2f4f, 0x3145, 0x3341, 0x3f93, 0x420e, 0x47d4, + 0x4c41, 0x4e0b, 0x5363, 0x5e26, 0x71cd, 0x7283, 0x33d4, 0x3919, + 0x3bbf, 0x4dd1, 0x595d, 0x5e2e, 0x5c9b, 0x387e, 0x519f, 0x31fa, + 0x6853, 0x6ff0, 0x2fca, 0x3cfb, 0x4625, 0x57ac, 0x5ae3, 0x621c, + 0x79ff, 0x31c6, 0x3faa, 0x45ec, 0x496f, 0x4b89, 0x4df3, 0x4e96, + 0x4f64, 0x56fe, 0x5d14, 0x3de1, 0x7075, 0x7187, 0x7806, 0x31e6, + 0x321d, 0x4240, 0x4691, 0x46d9, 0x4e1a, 0x3eb6, 0x5dd2, 0x5f72, + 0x46f8, 0x65af, 0x65f7, 0x6af8, 0x32a9, 0x33d9, 0x3973, 0x3e8f, + 0x3f90, 0x4055, 0x72e4, 0x7664, 0x30b7, 0x311f, + /* 0x13E21..0x13E7E */ + 0x32dd, 0x3320, 0x3347, 0x33ec, 0x34e8, 0x3546, 0x3531, 0x3617, + 0x3968, 0x39be, 0x3a3c, 0x3bb5, 0x3c06, 0x3c0f, 0x3c11, 0x3c1a, + 0x3e84, 0x3e8a, 0x3ee0, 0x3f70, 0x427f, 0x4284, 0x42db, 0x438c, + 0x4377, 0x4607, 0x460c, 0x462d, 0x4676, 0x477e, 0x48a2, 0x4a1f, + 0x4a35, 0x4cbc, 0x4d88, 0x4e09, 0x4e58, 0x513c, 0x5126, 0x5167, + 0x55c7, 0x5701, 0x585d, 0x5901, 0x5965, 0x59f0, 0x5ae0, 0x5b11, + 0x5ca7, 0x5d39, 0x6096, 0x63d6, 0x648b, 0x6549, 0x685d, 0x68f3, + 0x6a1f, 0x6a3c, 0x6a54, 0x6a73, 0x6c61, 0x6cde, 0x71a4, 0x7266, + 0x737e, 0x7418, 0x769c, 0x7798, 0x2e0a, 0x2e08, 0x2e1e, 0x2e57, + 0x3197, 0x3270, 0x37ce, 0x3834, 0x38cc, 0x3b22, 0x3e38, 0x40c5, + 0x44fe, 0x4761, 0x4756, 0x4d44, 0x52b6, 0x5573, 0x5a63, 0x64b8, + 0x6b72, 0x71b8, 0x7320, 0x3631, 0x37f4, 0x78fe, + /* 0x13F21..0x13F7E */ + 0x42ed, 0x490d, 0x4b96, 0x51ed, 0x5e54, 0x6077, 0x6272, 0x69e6, + 0x78df, 0x6755, 0x6fb1, 0x3c3b, 0x2f38, 0x2fe1, 0x2fb5, 0x3507, + 0x3a20, 0x3bdd, 0x3be9, 0x3fc3, 0x414e, 0x432f, 0x45b0, 0x464b, + 0x48ee, 0x499b, 0x4d78, 0x4df1, 0x5533, 0x55b9, 0x571f, 0x595e, + 0x59e6, 0x5d33, 0x61e3, 0x62af, 0x65aa, 0x69aa, 0x6a3a, 0x6eab, + 0x6f9b, 0x7032, 0x71dd, 0x7707, 0x2eba, 0x2ec1, 0x3203, 0x3875, + 0x38ec, 0x3c0b, 0x551a, 0x3c3d, 0x614e, 0x6a0a, 0x6fc5, 0x7663, + 0x776d, 0x5b25, 0x6acf, 0x7808, 0x7162, 0x36f3, 0x33a8, 0x7017, + 0x3439, 0x3782, 0x3e25, 0x43a8, 0x4c34, 0x508a, 0x5761, 0x5c8b, + 0x5fe0, 0x6870, 0x7042, 0x7154, 0x7310, 0x7318, 0x768f, 0x545e, + 0x7ac4, 0x3d07, 0x3d69, 0x4570, 0x47a2, 0x6da8, 0x76db, 0x436e, + 0x4749, 0x4919, 0x63c5, 0x7817, 0x76c0, 0x68fe, + /* 0x14021..0x1407E */ + 0x4f84, 0x447a, 0x3bf8, 0x2e16, 0x502c, 0x555d, 0x462f, 0x31c4, + 0x3236, 0x32e2, 0x39d3, 0x3f81, 0x4027, 0x4210, 0x453f, 0x4574, + 0x461f, 0x4674, 0x48f2, 0x4816, 0x4b63, 0x4e05, 0x5272, 0x551f, + 0x56db, 0x5cbe, 0x6056, 0x38f0, 0x68fd, 0x697f, 0x6aa0, 0x6a93, + 0x6acb, 0x701d, 0x7192, 0x7752, 0x7759, 0x4589, 0x5a0e, 0x6106, + 0x76bb, 0x3e2d, 0x40dc, 0x421a, 0x45a5, 0x4614, 0x4790, 0x57f3, + 0x5a4d, 0x5c4d, 0x5e3e, 0x610a, 0x6cac, 0x6d64, 0x6de1, 0x6e5f, + 0x58a9, 0x3207, 0x42d9, 0x43a5, 0x4442, 0x4298, 0x6a2d, 0x5a83, + 0x5bc0, 0x6aac, 0x76ea, 0x5d76, 0x620c, 0x6749, 0x2ed9, 0x3148, + 0x3343, 0x3360, 0x3ba3, 0x3c02, 0x3c16, 0x3ddd, 0x4226, 0x4247, + 0x44b0, 0x4813, 0x4834, 0x4cc9, 0x4d45, 0x4d17, 0x47d3, 0x4f5c, + 0x514e, 0x517d, 0x45cb, 0x5a7f, 0x5bad, 0x5dda, + /* 0x14121..0x1417E */ + 0x5e4a, 0x5fa8, 0x617a, 0x621b, 0x6239, 0x65a6, 0x6a6e, 0x6cce, + 0x6df5, 0x7078, 0x7077, 0x72ad, 0x7291, 0x7583, 0x7bae, 0x324d, + 0x3584, 0x4f38, 0x5136, 0x3168, 0x5985, 0x5e55, 0x61b3, 0x5cce, + 0x364c, 0x3851, 0x3ca8, 0x43aa, 0x46fe, 0x46fd, 0x495a, 0x52d9, + 0x558f, 0x558e, 0x590e, 0x5956, 0x59df, 0x5c97, 0x5d20, 0x5d44, + 0x6607, 0x6a34, 0x763b, 0x7061, 0x7f20, 0x30e7, 0x3275, 0x33cc, + 0x33e2, 0x3009, 0x35aa, 0x38ee, 0x394f, 0x523d, 0x3b8b, 0x3c64, + 0x331d, 0x40e3, 0x40f3, 0x435c, 0x4383, 0x433f, 0x43bb, 0x44cd, + 0x45e9, 0x46f9, 0x3de3, 0x49cd, 0x49fd, 0x4f15, 0x51e5, 0x2e89, + 0x55e9, 0x56f8, 0x5a93, 0x5cdf, 0x5dcf, 0x5d9c, 0x6061, 0x6349, + 0x6358, 0x646c, 0x64bc, 0x65fb, 0x68c5, 0x6d70, 0x7001, 0x706d, + 0x7397, 0x771c, 0x7a12, 0x30cf, 0x3897, 0x418e, + /* 0x14221..0x1427E */ + 0x61d3, 0x6535, 0x6d08, 0x7020, 0x2fc3, 0x3074, 0x3247, 0x3373, + 0x406f, 0x4349, 0x475f, 0x4e2c, 0x6db3, 0x701f, 0x2fd7, 0x3c5e, + 0x6cca, 0x45cf, 0x5d9a, 0x3352, 0x6896, 0x3176, 0x43c3, 0x3b58, + 0x3b6b, 0x3c0a, 0x440d, 0x4751, 0x705c, 0x2ed6, 0x391a, 0x392a, + 0x4c70, 0x6a51, 0x353e, 0x3815, 0x39a5, 0x40f0, 0x4253, 0x47c1, + 0x6235, 0x4955, 0x7640, 0x79c4, 0x7a28, 0x2f53, 0x3806, 0x3bfe, + 0x6010, 0x3cb1, 0x3e2f, 0x3f85, 0x4020, 0x414b, 0x4234, 0x46ff, + 0x4cf0, 0x4ede, 0x60ce, 0x617f, 0x62d4, 0x688b, 0x6cb8, 0x7000, + 0x702e, 0x768a, 0x7edb, 0x7bdb, 0x2ee3, 0x33f0, 0x3927, 0x5b2c, + 0x718d, 0x784c, 0x7df9, 0x4edd, 0x5027, 0x3353, 0x3544, 0x3b85, + 0x4258, 0x429e, 0x42d3, 0x4ca2, 0x4fef, 0x5422, 0x6a17, 0x7438, + 0x4fc1, 0x6afe, 0x6338, 0x31e7, 0x66f8, 0x33ea, + /* 0x14321..0x1437E */ + 0x33e9, 0x2f46, 0x7054, 0x6fb0, 0x396a, 0x6131, 0x3dfd, 0x5aea, + 0x6fbf, 0x48da, 0x6c37, 0x52f8, 0x7c48, 0x4a3d, 0x6ab0, 0x2e39, + 0x3358, 0x3606, 0x3766, 0x42c5, 0x43a2, 0x45e6, 0x4b4e, 0x4de1, + 0x4e5b, 0x50ad, 0x57ed, 0x5aef, 0x5baa, 0x5dbb, 0x603d, 0x60c6, + 0x66cb, 0x6a95, 0x735b, 0x36e3, 0x38c7, 0x3f3e, 0x45ad, 0x4696, + 0x4a80, 0x4bb5, 0x5537, 0x6ac7, 0x3024, 0x57e5, 0x3730, 0x3f1b, + 0x4065, 0x467a, 0x4c60, 0x55f4, 0x5a1a, 0x5f6e, 0x61f4, 0x6718, + 0x7045, 0x79b3, 0x5bc9, 0x555c, 0x5af9, 0x5b51, 0x64c4, 0x7010, + 0x59e9, 0x5a92, 0x6336, 0x3ae1, 0x5740, 0x2e2d, 0x2ef2, 0x3b99, + 0x3fe0, 0x42bd, 0x463c, 0x47f1, 0x4ce8, 0x666b, 0x6877, 0x6a3b, + 0x714e, 0x72f3, 0x79d0, 0x4a17, 0x5026, 0x532a, 0x62e7, 0x6457, + 0x6caf, 0x2e01, 0x3146, 0x31cb, 0x358b, 0x3bf5, + /* 0x14421..0x1447E */ + 0x3e16, 0x3e33, 0x3e81, 0x3f14, 0x3f35, 0x3f6b, 0x3fb4, 0x41f2, + 0x4311, 0x46a2, 0x471d, 0x4f6e, 0x5252, 0x553a, 0x573a, 0x6074, + 0x6139, 0x6178, 0x6776, 0x6abf, 0x6adc, 0x6d85, 0x6df3, 0x729a, + 0x7577, 0x7802, 0x7ce5, 0x32c5, 0x4357, 0x56f4, 0x4715, 0x4c88, + 0x53cd, 0x6cc3, 0x73ae, 0x7673, 0x4d25, 0x389c, 0x490e, 0x49cc, + 0x6ffd, 0x739a, 0x55db, 0x701a, 0x385a, 0x4802, 0x43b4, 0x49fb, + 0x2f43, 0x4f2c, 0x47d8, 0x6fbb, 0x6526, 0x5db4, 0x7354, 0x493f, + 0x4f70, 0x376a, 0x38f7, 0x3b2c, 0x5d2c, 0x522a, 0x340a, 0x71e3, + 0x7db4, 0x2ead, 0x2f4e, 0x305c, 0x3075, 0x3243, 0x6c9e, 0x3448, + 0x3824, 0x3b9a, 0x3e1d, 0x3e95, 0x3ead, 0x3ef7, 0x3f1f, 0x408c, + 0x42b5, 0x433a, 0x43d0, 0x48af, 0x4c40, 0x5887, 0x598e, 0x5a0b, + 0x5de0, 0x6247, 0x6a02, 0x6ae6, 0x6e44, 0x7013, + /* 0x14521..0x1457E */ + 0x70b8, 0x712d, 0x71d8, 0x7f0e, 0x4ce5, 0x4458, 0x44e2, 0x4575, + 0x4ef4, 0x5684, 0x5b1b, 0x7069, 0x73d1, 0x4eba, 0x34f2, 0x3fb9, + 0x44a4, 0x6f4d, 0x6fed, 0x7244, 0x3178, 0x386b, 0x3929, 0x3c55, + 0x3e97, 0x4dfb, 0x5e8f, 0x551c, 0x6cbc, 0x6ee2, 0x785b, 0x50b9, + 0x2f1d, 0x4bbf, 0x4fb1, 0x5530, 0x76fb, 0x314e, 0x3410, 0x3835, + 0x3857, 0x39ac, 0x3c60, 0x3f92, 0x4597, 0x475c, 0x4e21, 0x567b, + 0x63df, 0x6ced, 0x7014, 0x70fd, 0x734d, 0x5825, 0x583a, 0x32aa, + 0x3ea6, 0x371f, 0x3974, 0x4012, 0x3012, 0x315a, 0x31ac, 0x31cd, + 0x3200, 0x3510, 0x3854, 0x3858, 0x3957, 0x3b95, 0x3cf6, 0x3d8b, + 0x40bc, 0x4295, 0x442d, 0x4771, 0x4843, 0x48bc, 0x48df, 0x56d7, + 0x4dd8, 0x4e6f, 0x4d9b, 0x506f, 0x51c8, 0x3f53, 0x55d8, 0x5977, + 0x5b49, 0x5b54, 0x5b52, 0x5cd6, 0x5d71, 0x3230, + /* 0x14621..0x1467E */ + 0x6463, 0x6569, 0x65e4, 0x6a0e, 0x6b04, 0x6c46, 0x6e0f, 0x7003, + 0x700f, 0x7419, 0x7676, 0x782d, 0x7a30, 0x75d8, 0x30cd, 0x32d5, + 0x340c, 0x3802, 0x3c0e, 0x41a7, 0x449e, 0x4d1e, 0x57b3, 0x5ae5, + 0x60f4, 0x6404, 0x7053, 0x7285, 0x3ce0, 0x7d07, 0x333f, 0x3f97, + 0x3fb3, 0x4d9c, 0x5279, 0x5763, 0x59bf, 0x5be4, 0x4bd2, 0x52ec, + 0x6aad, 0x4803, 0x4a61, 0x31f8, 0x5a81, 0x4934, 0x3c4a, 0x7cf6, + 0x62eb, 0x3bc5, 0x7149, 0x501e, 0x3678, 0x3c6f, 0x40c7, 0x4566, + 0x4c8c, 0x6c5a, 0x7041, 0x7813, 0x3451, 0x46c7, 0x720d, 0x3948, + 0x70a3, 0x3185, 0x2e4d, 0x31ea, 0x6599, 0x6b0e, 0x5058, 0x437a, + 0x734b, 0x4962, 0x79b4, 0x5e04, 0x5577, 0x3357, 0x4960, 0x6edf, + 0x76e3, 0x4c5d, 0x2e8c, 0x3c3c, 0x3f10, 0x6fe9, 0x3302, 0x6cd1, + 0x6089, 0x6679, 0x3eff, 0x45e5, 0x2e73, 0x3165, + /* 0x14721..0x1477E */ + 0x3982, 0x3c3f, 0x77ee, 0x2efb, 0x398a, 0x3fcd, 0x6a8d, 0x4fe1, + 0x59b0, 0x5962, 0x3be7, 0x6471, 0x532b, 0x51b1, 0x3e74, 0x3ff5, + 0x437b, 0x449a, 0x51c3, 0x5c98, 0x2e43, 0x3efc, 0x2e4b, 0x37dc, + 0x36a2, 0x40a9, 0x4fc3, 0x5d0d, 0x60fd, 0x6133, 0x61bf, 0x6fb2, + 0x6997, 0x66a4, 0x3df4, 0x428a, 0x44ad, 0x6987, 0x4777, 0x4ce2, + 0x4d3e, 0x5436, 0x5834, 0x3a46, 0x5f75, 0x62ad, 0x79ac, 0x2ff3, + 0x3ec3, 0x42dd, 0x4392, 0x4557, 0x476f, 0x56c3, 0x524c, 0x60cc, + 0x60ba, 0x6f29, 0x714d, 0x300d, 0x37f9, 0x3a92, 0x4885, 0x4973, + 0x5164, 0x52fd, 0x6cb7, 0x38f2, 0x6ce0, 0x766a, 0x7019, 0x677f, + 0x59e4, 0x57e7, 0x6429, 0x2f2f, 0x3265, 0x335a, 0x42cd, 0x47cf, + 0x4cca, 0x567d, 0x5b94, 0x5c95, 0x6236, 0x6584, 0x6feb, 0x46dd, + 0x4f20, 0x5206, 0x5e1b, 0x63ab, 0x79c1, 0x7ea6, + /* 0x14821..0x1487E */ + 0x31fd, 0x5bb1, 0x5872, 0x5bb8, 0x6087, 0x5b48, 0x4ae8, 0x3e61, + 0x608c, 0x5551, 0x5560, 0x316b, 0x7262, 0x4e8c, 0x567a, 0x7197, + 0x7aea, 0x2f10, 0x5f70, 0x429c, 0x5b4f, 0x75a5, 0x7ce9, 0x367a, + 0x3859, 0x66e4, 0x76bc, 0x2f34, 0x3224, 0x334a, 0x33cd, 0x33db, + 0x3e06, 0x442c, 0x4591, 0x477f, 0x4c3e, 0x4c4e, 0x5248, 0x52af, + 0x53ed, 0x5554, 0x5e41, 0x622c, 0x65e9, 0x6ca9, 0x5bc4, 0x71c6, + 0x5169, 0x7812, 0x78ef, 0x433d, 0x4669, 0x556a, 0x56e4, 0x58d0, + 0x6543, 0x66ee, 0x332a, 0x3351, 0x3426, 0x3983, 0x3e87, 0x3f7c, + 0x40b2, 0x4249, 0x4279, 0x42ab, 0x4590, 0x4bd4, 0x4ccc, 0x55b2, + 0x56ae, 0x5891, 0x59d8, 0x5dcb, 0x5f77, 0x60a5, 0x68ab, 0x6ab9, + 0x6cbb, 0x707f, 0x775e, 0x78db, 0x4a0b, 0x5c38, 0x3099, 0x3c3e, + 0x3fae, 0x4787, 0x4bd8, 0x5435, 0x5709, 0x5f8e, + /* 0x14921..0x1497E */ + 0x7f3b, 0x47ca, 0x5a17, 0x3339, 0x558b, 0x7aed, 0x3f66, 0x619d, + 0x63f1, 0x6098, 0x3f3c, 0x3fc5, 0x5562, 0x5b46, 0x703c, 0x4867, + 0x39eb, 0x3a9b, 0x5d10, 0x567e, 0x6b2c, 0x2ff5, 0x3f6a, 0x4a19, + 0x4c37, 0x4f02, 0x54e2, 0x5968, 0x6868, 0x6a55, 0x6c79, 0x3edf, + 0x43cf, 0x55c5, 0x59d2, 0x62d7, 0x7328, 0x72f2, 0x649c, 0x66ed, + 0x7c2d, 0x34c1, 0x3f6c, 0x458c, 0x4d5c, 0x5015, 0x6ca7, 0x6cd3, + 0x783b, 0x454f, 0x54f6, 0x2e0d, 0x2ed8, 0x37e0, 0x392b, 0x3a66, + 0x3bcc, 0x31a8, 0x3e03, 0x3e9c, 0x4016, 0x4276, 0x4577, 0x45a7, + 0x466e, 0x4d6e, 0x5236, 0x5b26, 0x6150, 0x619a, 0x6299, 0x6b5c, + 0x6ca0, 0x6ce6, 0x6d74, 0x761c, 0x7644, 0x2fae, 0x44ab, 0x4b66, + 0x621e, 0x6461, 0x656a, 0x70e8, 0x3c01, 0x4953, 0x78a8, 0x647a, + 0x6557, 0x2f0f, 0x326f, 0x3fa9, 0x3e45, 0x470d, + /* 0x14A21..0x14A7E */ + 0x598f, 0x6179, 0x6907, 0x6986, 0x4df5, 0x3f17, 0x4255, 0x4cb8, + 0x2ecf, 0x5269, 0x7b92, 0x3206, 0x343b, 0x3674, 0x38b3, 0x41a4, + 0x426e, 0x511a, 0x396e, 0x5c89, 0x5cde, 0x5d1b, 0x76f0, 0x4587, + 0x605e, 0x2e19, 0x2f75, 0x3175, 0x3840, 0x3e63, 0x3e73, 0x3f0a, + 0x47c4, 0x2e26, 0x653d, 0x7589, 0x765b, 0x5c73, 0x7801, 0x30fb, + 0x38c1, 0x5656, 0x58a7, 0x3225, 0x57a5, 0x6511, 0x5b86, 0x304f, + 0x3909, 0x5247, 0x5bc7, 0x5de8, 0x6fba, 0x6fd4, 0x704d, 0x2fbf, + 0x32c9, 0x3a29, 0x3f01, 0x77ad, 0x2fdd, 0x6217, 0x72ea, 0x3703, + 0x4355, 0x4b69, 0x552b, 0x68dc, 0x6f14, 0x5a42, 0x32df, 0x3893, + 0x4155, 0x420a, 0x46ae, 0x4bcd, 0x5c3f, 0x63e9, 0x3023, 0x2ff8, + 0x3305, 0x3446, 0x3831, 0x3949, 0x3b9d, 0x3cf0, 0x3cef, 0x3d29, + 0x3e96, 0x42b1, 0x4367, 0x453e, 0x45b9, 0x470b, + /* 0x14B21..0x14B7E */ + 0x4cd5, 0x4ce1, 0x50f9, 0x5832, 0x5e2b, 0x60de, 0x62b3, 0x640c, + 0x64ec, 0x6702, 0x6912, 0x6a2a, 0x6c4a, 0x70a6, 0x72d2, 0x78fd, + 0x7cf3, 0x7d6c, 0x2e4f, 0x2ea1, 0x308d, 0x3256, 0x374a, 0x39a8, + 0x3e3d, 0x3fd8, 0x3fd9, 0x423f, 0x46b4, 0x471b, 0x47d0, 0x48d2, + 0x3192, 0x5d21, 0x60aa, 0x61a8, 0x6b00, 0x6c8c, 0x6cbf, 0x727e, + 0x7632, 0x3420, 0x782c, 0x3317, 0x30d5, 0x335c, 0x38a8, 0x44b2, + 0x4734, 0x5267, 0x5766, 0x5a46, 0x71e6, 0x32c3, 0x4ca1, 0x4b86, + 0x3800, 0x3e4c, 0x3954, 0x472c, 0x5ffb, 0x31e1, 0x56c6, 0x4469, + 0x58e8, 0x7b54, 0x7ebb, 0x37cb, 0x39b9, 0x4627, 0x479a, 0x4bce, + 0x34e9, 0x49d9, 0x3e55, 0x619c, 0x4795, 0x7baa, 0x47fe, 0x7c52, + 0x485d, 0x2ea6, 0x2fe3, 0x33c8, 0x42b9, 0x472b, 0x4cab, 0x6fc4, + 0x2fad, 0x5e6d, 0x7ebf, 0x2e07, 0x4162, 0x4e80, + /* 0x14C21..0x14C7E */ + 0x4f2b, 0x6513, 0x3473, 0x472a, 0x7b45, 0x3df3, 0x5b95, 0x3cac, + 0x3bc6, 0x671c, 0x4e4a, 0x64d1, 0x5a14, 0x6108, 0x3999, 0x5c8d, + 0x4c11, 0x5720, 0x32d9, 0x3922, 0x5121, 0x525f, 0x57db, 0x7727, + 0x7d61, 0x490b, 0x3a7f, 0x3a18, 0x31a5, 0x340d, 0x347d, 0x460e, + 0x56df, 0x6ff7, 0x7298, 0x7cf4, 0x39ea, 0x525d, 0x4ec5, 0x314d, + 0x48c9, 0x5dbf, 0x5dec, 0x7762, 0x7eba, 0x4478, 0x4a21, 0x6302, + 0x3984, 0x3b5f, 0x4bdb, 0x531b, 0x56f2, 0x5db2, 0x6017, 0x6499, + 0x3132, 0x4728, 0x7ed9, 0x56ee, 0x4762, 0x32ff, 0x7905, 0x3c24, + 0x423b, 0x5c7e, 0x6cb0, 0x354f, 0x40b6, 0x5d0b, 0x7580, 0x3301, + 0x2e5f, 0x31b6, 0x391c, 0x523a, 0x6036, 0x71ce, 0x3f25, 0x57e2, + 0x3384, 0x3f79, 0x5d04, 0x65ac, 0x6a33, 0x6e8d, 0x7756, 0x47f3, + 0x65ae, 0x7453, 0x4109, 0x4108, 0x4cb9, 0x5652, + /* 0x14D21..0x14D7E */ + 0x6aed, 0x6f38, 0x352f, 0x2f51, 0x312a, 0x32c7, 0x33cb, 0x3ba5, + 0x3e7d, 0x40a0, 0x4182, 0x43d6, 0x4709, 0x47da, 0x4e67, 0x4d8c, + 0x5336, 0x5337, 0x5531, 0x5950, 0x68d5, 0x6a98, 0x704a, 0x7091, + 0x70f5, 0x76c4, 0x678d, 0x3915, 0x2e88, 0x2f59, 0x2e0e, 0x6a89, + 0x6f3f, 0x7810, 0x30ad, 0x3e7c, 0x3996, 0x3bb9, 0x3eb8, 0x43da, + 0x43fa, 0x44c1, 0x46dc, 0x494a, 0x49d8, 0x4d0b, 0x4eb6, 0x5194, + 0x5528, 0x5aaf, 0x5f8a, 0x6000, 0x6449, 0x64c9, 0x6981, 0x6b21, + 0x6e0a, 0x7065, 0x767d, 0x790a, 0x417e, 0x4291, 0x4b32, 0x4c83, + 0x4d74, 0x5fcc, 0x5ffc, 0x4dc0, 0x5f85, 0x67ba, 0x68f8, 0x4765, + 0x63b1, 0x783c, 0x76f7, 0x4d1b, 0x5d61, 0x643d, 0x716a, 0x2e71, + 0x3375, 0x3d50, 0x4b04, 0x4feb, 0x65cd, 0x662d, 0x69a7, 0x3229, + 0x340f, 0x3c65, 0x474e, 0x48a8, 0x5406, 0x5483, + /* 0x14E21..0x14E7E */ + 0x55e2, 0x68cf, 0x68e1, 0x71cc, 0x76e2, 0x7678, 0x3f8b, 0x5387, + 0x5acb, 0x644e, 0x43a0, 0x5565, 0x3289, 0x4d41, 0x4e9c, 0x5409, + 0x5559, 0x586b, 0x5c92, 0x7686, 0x5adc, 0x7f8d, 0x2fb6, 0x416e, + 0x45c5, 0x665c, 0x2e86, 0x2eae, 0x30da, 0x2e21, 0x31cc, 0x3bee, + 0x4599, 0x4881, 0x4dbc, 0x531f, 0x5642, 0x57ad, 0x5a1c, 0x5ce7, + 0x626f, 0x6ad2, 0x707c, 0x71cf, 0x7675, 0x7818, 0x329b, 0x5dd1, + 0x302b, 0x3398, 0x4797, 0x4dcb, 0x51d0, 0x5433, 0x61e8, 0x6f2a, + 0x76a3, 0x7c57, 0x7e9f, 0x5460, 0x3841, 0x4d99, 0x5d2f, 0x785e, + 0x2ee4, 0x2f36, 0x2f8b, 0x31b7, 0x32b1, 0x3dba, 0x401c, 0x53b2, + 0x593c, 0x62d3, 0x7234, 0x76b7, 0x76f6, 0x770a, 0x7e97, 0x7f62, + 0x46a6, 0x4b74, 0x3217, 0x32a3, 0x50c8, 0x68c2, 0x3ec9, 0x404b, + 0x4190, 0x4f23, 0x5149, 0x5c3e, 0x5df4, 0x606f, + /* 0x14F21..0x14F7E */ + 0x64ee, 0x7023, 0x732c, 0x3442, 0x7b6f, 0x4ad3, 0x5089, 0x6cc2, + 0x6def, 0x7732, 0x32b4, 0x3a41, 0x3eca, 0x3f04, 0x4717, 0x497c, + 0x4994, 0x4d6a, 0x4f0f, 0x5262, 0x52fc, 0x5bed, 0x6001, 0x607e, + 0x674b, 0x70ce, 0x316d, 0x7e93, 0x5984, 0x608b, 0x7332, 0x6ad6, + 0x302d, 0x348c, 0x6a71, 0x4b6a, 0x6cc4, 0x6107, 0x40d1, 0x47a0, + 0x7df2, 0x2e99, 0x2e98, 0x7c10, 0x6a6b, 0x65c1, 0x6568, 0x4900, + 0x4e7e, 0x5897, 0x6155, 0x8e9f, 0x3b41, 0x3b56, 0x3b7d, 0x3b93, + 0x3bd8, 0x3bec, 0x3c12, 0x3c1e, 0x3c23, 0x3c2b, 0x178d, 0x3c62, + 0x813b, 0x813c, 0x96b4, 0x3c7a, 0x3c8f, 0x3c9f, 0x3ca3, 0x3caa, + 0x3cba, 0x3ccb, 0x3cd0, 0x3cd2, 0x3cf4, 0x9c34, 0x17e2, 0x3d0d, + 0x3d27, 0x8111, 0x3d46, 0x3d47, 0x3d53, 0x3d4a, 0x3d6d, 0x3d81, + 0x3da0, 0x3da4, 0x3da7, 0x3db8, 0x3dcb, 0x341e, + /* 0x15021..0x1507E */ + 0x3f0c, 0x2e10, 0x2e15, 0x2e2a, 0x2e31, 0x2e36, 0x2e3c, 0x2e3f, + 0x2e42, 0x2e56, 0x2e58, 0x2e82, 0x2e85, 0x6c6b, 0x2e8a, 0x6212, + 0x3f0d, 0x2e8e, 0x2e9e, 0x2e9f, 0x2ea0, 0x2ea2, 0x2eb0, 0x2eb3, + 0x2eb6, 0x2ece, 0x2ecd, 0x2ec4, 0x2ec6, 0x2ec2, 0x2ed7, 0x2ede, + 0x2eed, 0x2edf, 0x2ef7, 0x2f09, 0x2f5a, 0x2f30, 0x2f5b, 0x2f5d, + 0x2f57, 0x2f47, 0x2f76, 0x2f88, 0x2f8f, 0x2f98, 0x2f7b, 0x2f69, + 0x2f70, 0x2f91, 0x2f6f, 0x2f86, 0x2f96, 0x3118, 0x2fd4, 0x2fdf, + 0x2fce, 0x2fd8, 0x2fdb, 0x2fd1, 0x2fda, 0x2fd0, 0x2fe4, 0x2fe5, + 0x301a, 0x3028, 0x3014, 0x302a, 0x3025, 0x3005, 0x2f1c, 0x2ff6, + 0x3021, 0x3029, 0x302c, 0x2ffe, 0x2fef, 0x3011, 0x3006, 0x3043, + 0x3047, 0x4703, 0x3055, 0x3050, 0x3048, 0x305a, 0x3056, 0x306c, + 0x3078, 0x3080, 0x309a, 0x3085, 0x30b4, 0x30b2, + /* 0x15121..0x1517E */ + 0x30c9, 0x30ca, 0x30b3, 0x30c2, 0x30d6, 0x30de, 0x30e5, 0x30ed, + 0x30e3, 0x30ee, 0x30f9, 0x30f5, 0x3109, 0x3101, 0x3102, 0x3116, + 0x3115, 0x3114, 0x311a, 0x3121, 0x313a, 0x3137, 0x313c, 0x313b, + 0x313f, 0x3140, 0x3152, 0x314c, 0x3154, 0x3162, 0x5af8, 0x3169, + 0x316a, 0x316e, 0x3180, 0x3182, 0x36d8, 0x318c, 0x3189, 0x318f, + 0x3191, 0x3193, 0x3195, 0x3196, 0x31a4, 0x31a6, 0x31a2, 0x31a9, + 0x31aa, 0x31ab, 0x31b3, 0x31b1, 0x31b2, 0x31b0, 0x31b5, 0x31bd, + 0x31c5, 0x31c9, 0x31db, 0x31e0, 0x6655, 0x31e9, 0x31ed, 0x31f0, + 0x31f5, 0x31fe, 0x3204, 0x320b, 0x3214, 0x320e, 0x3227, 0x322a, + 0x322e, 0x3233, 0x3239, 0x324f, 0x3244, 0x324b, 0x324c, 0x325e, + 0x3254, 0x326a, 0x3274, 0x3269, 0x3273, 0x327f, 0x327d, 0x328d, + 0x3294, 0x3292, 0x3271, 0x3288, 0x3291, 0x6fa8, + /* 0x15221..0x1527E */ + 0x6fa7, 0x32ac, 0x32ad, 0x32bc, 0x32b5, 0x32c1, 0x32cd, 0x32d7, + 0x32de, 0x32e3, 0x32e6, 0x78ed, 0x32e0, 0x32f3, 0x32f5, 0x32f8, + 0x32f9, 0x3306, 0x3308, 0x5538, 0x330d, 0x3310, 0x330f, 0x3315, + 0x331a, 0x3323, 0x332f, 0x3331, 0x3333, 0x3338, 0x3340, 0x3346, + 0x3345, 0x2e17, 0x3349, 0x334d, 0x31d6, 0x335e, 0x3369, 0x336e, + 0x3918, 0x337b, 0x3377, 0x3382, 0x3396, 0x33a0, 0x33a6, 0x33a5, + 0x33ae, 0x33b0, 0x33b6, 0x33c3, 0x5c12, 0x76d9, 0x33df, 0x46fc, + 0x51ee, 0x33ee, 0x33e8, 0x33ed, 0x33fa, 0x3401, 0x343d, 0x3440, + 0x342c, 0x342d, 0x343c, 0x342e, 0x3436, 0x3429, 0x341d, 0x344e, + 0x348f, 0x3475, 0x348e, 0x345f, 0x3471, 0x3477, 0x3470, 0x3492, + 0x347b, 0x3480, 0x3476, 0x3484, 0x3490, 0x3486, 0x34c7, 0x34a2, + 0x34b8, 0x34a5, 0x34ac, 0x34c4, 0x34c8, 0x34a8, + /* 0x15321..0x1537E */ + 0x34ab, 0x34c2, 0x34a4, 0x34be, 0x34bc, 0x34d8, 0x34e5, 0x34e6, + 0x350f, 0x3514, 0x34fd, 0x34ee, 0x34ed, 0x34fa, 0x34e2, 0x3539, + 0x3540, 0x3563, 0x354c, 0x352e, 0x355c, 0x3545, 0x3556, 0x3557, + 0x3538, 0x3533, 0x355d, 0x3599, 0x3580, 0x34af, 0x358a, 0x359f, + 0x357b, 0x357e, 0x3598, 0x359e, 0x35ae, 0x357c, 0x3583, 0x35a9, + 0x3587, 0x35a8, 0x35da, 0x35c5, 0x35df, 0x35c4, 0x35dc, 0x35e4, + 0x35d4, 0x3614, 0x35f7, 0x3616, 0x35fe, 0x35fd, 0x361b, 0x35f9, + 0x364e, 0x3650, 0x51df, 0x3634, 0x3636, 0x3632, 0x3638, 0x366b, + 0x3664, 0x362f, 0x366c, 0x366a, 0x3686, 0x3680, 0x368a, 0x36a0, + 0x3694, 0x368f, 0x36a5, 0x36ae, 0x36b6, 0x36b4, 0x36c2, 0x36bc, + 0x36c1, 0x36c3, 0x36c0, 0x36c8, 0x36ce, 0x36d1, 0x36d3, 0x36d7, + 0x36ee, 0x36f9, 0x3700, 0x36ff, 0x3704, 0x3709, + /* 0x15421..0x1547E */ + 0x3708, 0x370b, 0x370d, 0x3713, 0x3718, 0x3716, 0x35c7, 0x371c, + 0x3726, 0x3737, 0x3738, 0x374e, 0x373b, 0x3740, 0x374f, 0x3769, + 0x37c0, 0x3788, 0x3761, 0x377f, 0x3789, 0x3793, 0x37a0, 0x37b3, + 0x37a4, 0x37aa, 0x37b0, 0x37c3, 0x37c6, 0x37d4, 0x37d2, 0x37d3, + 0x380a, 0x37d6, 0x37e3, 0x380b, 0x3819, 0x381d, 0x3872, 0x3821, + 0x3862, 0x384b, 0x3870, 0x4bc0, 0x3852, 0x383d, 0x3879, 0x3885, + 0x38b9, 0x389f, 0x38ab, 0x38ba, 0x38de, 0x38bb, 0x38b8, 0x38ae, + 0x38c5, 0x38d3, 0x38d1, 0x38d7, 0x38d9, 0x38d8, 0x38e5, 0x38dc, + 0x38e4, 0x38df, 0x38ef, 0x38fa, 0x38f9, 0x38fb, 0x38fc, 0x38fd, + 0x3902, 0x390a, 0x3910, 0x391b, 0x48a6, 0x3925, 0x392c, 0x392d, + 0x3932, 0x3938, 0x393e, 0x5ad2, 0x3955, 0x3950, 0x394e, 0x395a, + 0x3958, 0x3962, 0x3960, 0x3967, 0x396c, 0x3969, + /* 0x15521..0x1557E */ + 0x3978, 0x3981, 0x399d, 0x2f5e, 0x2fab, 0x39a3, 0x39b2, 0x39c6, + 0x39e8, 0x39dc, 0x398d, 0x39d9, 0x39da, 0x3a25, 0x3a1f, 0x3a11, + 0x3a1c, 0x3a09, 0x3a1a, 0x3a40, 0x3a6c, 0x3a49, 0x3a35, 0x3a36, + 0x3a62, 0x3a6a, 0x3a9a, 0x3abc, 0x3abe, 0x3acb, 0x3ac2, 0x3abd, + 0x3ae3, 0x3ad7, 0x3ae6, 0x3ae9, 0x3ad6, 0x3afa, 0x3afb, 0x3b0c, + 0x3b0b, 0x3b16, 0x3b32, 0x3ad0, 0x3b2a, 0x3b36, 0x3b3e, 0x3b43, + 0x3b45, 0x3b40, 0x3b51, 0x3b55, 0x3b5a, 0x3b5b, 0x3b65, 0x3b69, + 0x3b70, 0x3b73, 0x3b75, 0x3b78, 0x4588, 0x3b7a, 0x3b80, 0x3b83, + 0x3ba6, 0x3bb8, 0x3bc3, 0x3bc7, 0x3bc9, 0x3bd4, 0x3bd0, 0x3be4, + 0x3be6, 0x3be2, 0x3bde, 0x3be5, 0x3beb, 0x3bf0, 0x3bf6, 0x3bf3, + 0x3c05, 0x3c07, 0x3c08, 0x3c0d, 0x3c13, 0x3c20, 0x3c22, 0x3c28, + 0x3c38, 0x3c39, 0x3c41, 0x3c46, 0x3c4e, 0x3c53, + /* 0x15621..0x1567E */ + 0x3c50, 0x3c4f, 0x3b71, 0x3c6c, 0x3c6e, 0x2e62, 0x3c76, 0x3c79, + 0x3c8c, 0x3c91, 0x3c94, 0x399b, 0x3cab, 0x3cbb, 0x3cb6, 0x3cbc, + 0x3cb7, 0x3cc5, 0x3cbe, 0x3cc7, 0x3cd9, 0x3ce9, 0x3cfd, 0x3cfa, + 0x3ced, 0x3d8c, 0x3cea, 0x3d0b, 0x3d15, 0x3d17, 0x3d5c, 0x3d1f, + 0x3d1b, 0x3d11, 0x3d14, 0x3d22, 0x3d1a, 0x3d19, 0x3d18, 0x3d4c, + 0x3d52, 0x3d4e, 0x3d4b, 0x3d6c, 0x3d73, 0x3d76, 0x3d87, 0x3d84, + 0x3d82, 0x3da2, 0x3d9d, 0x3dac, 0x3dae, 0x3dbd, 0x3d90, 0x3db7, + 0x3dbc, 0x3dc9, 0x3dcd, 0x3dd3, 0x3dd2, 0x3dd6, 0x3ddb, 0x3deb, + 0x3df2, 0x3df5, 0x3e0b, 0x3e1a, 0x3e19, 0x3e11, 0x3e1b, 0x3e36, + 0x3e37, 0x3e44, 0x3e43, 0x3e40, 0x3e4e, 0x3e57, 0x3e54, 0x3e5f, + 0x3e62, 0x3e64, 0x3e47, 0x3e75, 0x3e76, 0x3e7a, 0x7ebc, 0x3e7f, + 0x3ea0, 0x3ec1, 0x3ec2, 0x3ec8, 0x3ed0, 0x3ecf, + /* 0x15721..0x1577E */ + 0x3ed6, 0x3ee3, 0x3edd, 0x3eda, 0x3edb, 0x3ee2, 0x3ee1, 0x3ee8, + 0x3ee9, 0x3eec, 0x3ef1, 0x3ef3, 0x3ef0, 0x3ef4, 0x3ef8, 0x3efe, + 0x3f03, 0x3f09, 0x3f5d, 0x3f5c, 0x3f0b, 0x3f11, 0x3f16, 0x3f29, + 0x3f2d, 0x3f38, 0x3f41, 0x3f48, 0x3f4c, 0x3f4e, 0x3f2f, 0x3f51, + 0x3f56, 0x3f57, 0x3f59, 0x3f61, 0x3f6d, 0x3f73, 0x3f77, 0x3f83, + 0x3f82, 0x3f7f, 0x3f8a, 0x3f88, 0x3f91, 0x3f87, 0x3f9e, 0x3f99, + 0x3f98, 0x3fa0, 0x3fa8, 0x3fad, 0x3fbc, 0x3fd6, 0x3ffb, 0x3fe4, + 0x3ff8, 0x3ff1, 0x3fdd, 0x40b3, 0x3fff, 0x4021, 0x4060, 0x4019, + 0x4010, 0x4029, 0x400e, 0x4031, 0x401b, 0x4015, 0x402b, 0x4026, + 0x400f, 0x403a, 0x405a, 0x4041, 0x406a, 0x4077, 0x405f, 0x404a, + 0x4046, 0x404d, 0x4063, 0x4043, 0x4064, 0x4042, 0x406c, 0x406b, + 0x4059, 0x4081, 0x408d, 0x40e7, 0x4083, 0x409a, + /* 0x15821..0x1587E */ + 0x4084, 0x409b, 0x4096, 0x4097, 0x4092, 0x40a7, 0x408b, 0x40e1, + 0x40b8, 0x40e0, 0x40d3, 0x40b4, 0x3ff0, 0x40bd, 0x40c6, 0x40b5, + 0x40d8, 0x414d, 0x4115, 0x4106, 0x40f6, 0x40f7, 0x4100, 0x40f4, + 0x40fa, 0x4103, 0x4121, 0x40fb, 0x40f1, 0x410d, 0x410e, 0x4147, + 0x413e, 0x4128, 0x4127, 0x414a, 0x413f, 0x413c, 0x412c, 0x4134, + 0x413d, 0x4142, 0x4144, 0x4173, 0x4177, 0x4158, 0x4159, 0x415a, + 0x416b, 0x4174, 0x416f, 0x4165, 0x4171, 0x415f, 0x415d, 0x4153, + 0x4175, 0x4199, 0x4196, 0x4187, 0x41ac, 0x4194, 0x419a, 0x418a, + 0x4191, 0x41ab, 0x41ae, 0x41cc, 0x41ca, 0x41c9, 0x41f7, 0x41c8, + 0x41c3, 0x41c6, 0x41ba, 0x41cb, 0x5f79, 0x41cd, 0x41e6, 0x41e3, + 0x41f6, 0x41fa, 0x41f4, 0x41ff, 0x41fd, 0x41fc, 0x41fe, 0x4200, + 0x4208, 0x4209, 0x420d, 0x420c, 0x4214, 0x421b, + /* 0x15921..0x1597E */ + 0x421e, 0x4221, 0x422a, 0x422e, 0x4230, 0x4232, 0x4233, 0x4241, + 0x424e, 0x425e, 0x4263, 0x425b, 0x4260, 0x4268, 0x427c, 0x4282, + 0x4289, 0x427e, 0x4292, 0x4293, 0x4296, 0x42d4, 0x4283, 0x4294, + 0x42d7, 0x42d1, 0x42bb, 0x42cf, 0x42ff, 0x42c6, 0x44d4, 0x42c8, + 0x42dc, 0x42cc, 0x42ca, 0x42c2, 0x42c7, 0x429b, 0x42c9, 0x430c, + 0x42ee, 0x42f1, 0x4327, 0x4302, 0x4308, 0x42ef, 0x42f5, 0x4350, + 0x433e, 0x434d, 0x441c, 0x434f, 0x4396, 0x438e, 0x4380, 0x43ab, + 0x4376, 0x43a3, 0x438f, 0x4389, 0x439f, 0x43b5, 0x436b, 0x4369, + 0x43be, 0x43e9, 0x43c0, 0x43c6, 0x43e3, 0x43c9, 0x43d2, 0x43f6, + 0x43c4, 0x4416, 0x4434, 0x4406, 0x4413, 0x4426, 0x4436, 0x451d, + 0x4417, 0x4428, 0x440f, 0x4467, 0x446f, 0x4476, 0x444e, 0x452a, + 0x4495, 0x4493, 0x44a5, 0x44a9, 0x4488, 0x44bc, + /* 0x15A21..0x15A7E */ + 0x44da, 0x44d2, 0x44c5, 0x44c7, 0x44bb, 0x44d8, 0x44c2, 0x44f1, + 0x44e7, 0x6209, 0x44e0, 0x44e1, 0x42ac, 0x44e3, 0x44ef, 0x452c, + 0x44f6, 0x44f4, 0x44f2, 0x44fa, 0x4500, 0x44fd, 0x4518, 0x451c, + 0x4505, 0x4524, 0x4523, 0x452b, 0x4534, 0x4535, 0x4537, 0x4536, + 0x4538, 0x554b, 0x4548, 0x4556, 0x4555, 0x454d, 0x4558, 0x455e, + 0x455d, 0x4572, 0x4578, 0x4582, 0x4583, 0x6b8a, 0x459b, 0x459f, + 0x45ab, 0x45b7, 0x45c3, 0x45c6, 0x45c1, 0x45c4, 0x45cc, 0x45d2, + 0x45db, 0x45d9, 0x45e0, 0x45e1, 0x45f1, 0x4772, 0x460a, 0x4603, + 0x45fb, 0x4773, 0x4635, 0x4636, 0x4634, 0x461c, 0x464f, 0x4644, + 0x4649, 0x4641, 0x465e, 0x465d, 0x4664, 0x4667, 0x4668, 0x465f, + 0x4662, 0x4670, 0x4683, 0x4688, 0x468e, 0x4689, 0x4684, 0x4698, + 0x469d, 0x46c1, 0x46b9, 0x46c9, 0x46be, 0x46bc, + /* 0x15B21..0x15B7E */ + 0x46c4, 0x46b8, 0x46d6, 0x46da, 0x46e0, 0x463f, 0x46e6, 0x46e9, + 0x46f0, 0x46f5, 0x46f7, 0x470f, 0x4716, 0x471e, 0x4726, 0x4727, + 0x7738, 0x472e, 0x473f, 0x4736, 0x4741, 0x4738, 0x4737, 0x4746, + 0x475e, 0x4760, 0x4759, 0x4763, 0x4764, 0x4789, 0x4770, 0x47a9, + 0x477c, 0x476a, 0x478c, 0x478b, 0x47a6, 0x47a1, 0x4785, 0x47b7, + 0x47ef, 0x47b4, 0x47ec, 0x47b3, 0x47e9, 0x47b8, 0x47e4, 0x47de, + 0x47dd, 0x47e2, 0x47ee, 0x47b9, 0x47ce, 0x47c6, 0x47e7, 0x4a9c, + 0x481e, 0x4846, 0x4829, 0x4840, 0x484d, 0x4832, 0x484e, 0x48b3, + 0x482b, 0x4859, 0x4863, 0x4877, 0x487f, 0x489f, 0x488f, 0x48ad, + 0x4894, 0x489d, 0x489b, 0x4883, 0x4aae, 0x48b9, 0x4874, 0x48b5, + 0x48a0, 0x48ba, 0x490f, 0x488d, 0x487e, 0x4901, 0x48ca, 0x4908, + 0x48d8, 0x4922, 0x4926, 0x48e1, 0x490c, 0x48cd, + /* 0x15C21..0x15C7E */ + 0x48d4, 0x48e7, 0x48d5, 0x4936, 0x4912, 0x4904, 0x48d7, 0x48e3, + 0x4925, 0x48f9, 0x48e0, 0x48ef, 0x4928, 0x492a, 0x491a, 0x4923, + 0x4921, 0x48c6, 0x4979, 0x4977, 0x495c, 0x4978, 0x496b, 0x4954, + 0x497e, 0x496e, 0x4939, 0x4974, 0x493d, 0x4959, 0x4930, 0x4961, + 0x495e, 0x495d, 0x4981, 0x496a, 0x49b2, 0x49ae, 0x49d0, 0x49bf, + 0x49c1, 0x49d3, 0x49be, 0x49ce, 0x3be8, 0x49ca, 0x49dd, 0x49bb, + 0x49c3, 0x49a7, 0x4a2e, 0x4991, 0x49a0, 0x499c, 0x4995, 0x49b4, + 0x49de, 0x49e8, 0x4a02, 0x4a1b, 0x49ff, 0x4b0a, 0x49f9, 0x49f2, + 0x49e7, 0x4a05, 0x49b1, 0x4a1e, 0x49ed, 0x4a14, 0x49eb, 0x4a0a, + 0x4a12, 0x4ac1, 0x4a23, 0x4a13, 0x4a44, 0x4a0c, 0x4a72, 0x4a36, + 0x4a78, 0x4a47, 0x4a62, 0x4a59, 0x4a66, 0x4a48, 0x4a38, 0x4a22, + 0x4a90, 0x4a8d, 0x4aa0, 0x4a84, 0x4aa2, 0x4aa3, + /* 0x15D21..0x15D7E */ + 0x4a97, 0x6617, 0x4abb, 0x4ac3, 0x4ac2, 0x4ab8, 0x4ab3, 0x4aac, + 0x4ade, 0x4ad1, 0x4adf, 0x4aaa, 0x4ada, 0x4aea, 0x4afb, 0x4b05, + 0x6616, 0x4afa, 0x4b12, 0x4b16, 0x7b31, 0x4b1f, 0x4b38, 0x4b37, + 0x56dc, 0x4b39, 0x78ee, 0x4b47, 0x4b43, 0x4b49, 0x4b50, 0x4b59, + 0x4b54, 0x4b5b, 0x4b5f, 0x4b61, 0x4b78, 0x4b79, 0x4b7f, 0x4b80, + 0x4b84, 0x4b83, 0x4b8d, 0x4b98, 0x4b95, 0x4b9e, 0x4ba4, 0x4baa, + 0x4bab, 0x4baf, 0x4bb2, 0x4bb1, 0x4bb3, 0x4bb7, 0x4bbc, 0x4bc6, + 0x4bcb, 0x4bd3, 0x4bdf, 0x4bec, 0x4beb, 0x4bf3, 0x4bef, 0x7ebe, + 0x4c08, 0x4c13, 0x4c14, 0x4c1b, 0x4c24, 0x4c23, 0x4c5e, 0x4c55, + 0x4c62, 0x4c6a, 0x4c82, 0x4c8d, 0x4c9a, 0x4c81, 0x4c9b, 0x4c7e, + 0x4c68, 0x4c73, 0x4c92, 0x4c90, 0x4cc4, 0x4cf1, 0x4cd3, 0x4cbd, + 0x4cd7, 0x4cc5, 0x4cdd, 0x4cae, 0x4cb1, 0x4cbe, + /* 0x15E21..0x15E7E */ + 0x4cba, 0x4cdb, 0x4cef, 0x4cd9, 0x4cea, 0x4d1f, 0x684d, 0x4d36, + 0x4d2b, 0x4d3d, 0x4d38, 0x4d19, 0x4d35, 0x4d33, 0x4d12, 0x4d0c, + 0x4d63, 0x4d93, 0x4d64, 0x4d5a, 0x4d79, 0x4d59, 0x4d8e, 0x4d95, + 0x4fe4, 0x4d85, 0x4df9, 0x4e15, 0x4e0a, 0x4db5, 0x4dc7, 0x4de6, + 0x4db8, 0x4dc6, 0x4dec, 0x4dde, 0x4dcc, 0x4de8, 0x4dd2, 0x4dc5, + 0x4dfa, 0x4dd9, 0x4de4, 0x4dd5, 0x4dea, 0x4dee, 0x4e2d, 0x4e6e, + 0x4e2e, 0x4e19, 0x4e72, 0x4e5f, 0x4e3e, 0x4e23, 0x4e6b, 0x4e2b, + 0x4e76, 0x4e4d, 0x4e1f, 0x4e43, 0x4e3a, 0x4e4e, 0x4e24, 0x4eff, + 0x4e1d, 0x4e38, 0x4e82, 0x4eaa, 0x4e98, 0x4ec9, 0x4eb7, 0x4ed3, + 0x4ebd, 0x4eaf, 0x4ec4, 0x4eb2, 0x4ed4, 0x4ed5, 0x4e8f, 0x4ea5, + 0x4ec2, 0x4e9f, 0x4f41, 0x4f11, 0x504c, 0x4eec, 0x4ef8, 0x4efe, + 0x4f3f, 0x4ef2, 0x4f31, 0x4eef, 0x4f32, 0x4ecc, + /* 0x15F21..0x15F7E */ + 0x4f3e, 0x4f13, 0x4ef7, 0x4f86, 0x4f7a, 0x4f78, 0x4f81, 0x4f80, + 0x4f6f, 0x4f5b, 0x4ff3, 0x4f6d, 0x4f82, 0x4f7c, 0x4f58, 0x4f8e, + 0x4f91, 0x4fc2, 0x4f66, 0x4fb3, 0x4fa3, 0x4fa1, 0x4fa4, 0x4fb9, + 0x4fc6, 0x4faa, 0x4fdf, 0x4fd5, 0x4fec, 0x4fd4, 0x4fd8, 0x4ff1, + 0x4fee, 0x4fdb, 0x5009, 0x500b, 0x4ffa, 0x5011, 0x5001, 0x500f, + 0x4ffe, 0x501b, 0x501a, 0x4f74, 0x501d, 0x5018, 0x501f, 0x5030, + 0x503e, 0x5032, 0x5051, 0x5063, 0x5099, 0x5092, 0x50af, 0x50f1, + 0x50ac, 0x50b8, 0x50b3, 0x50ae, 0x50df, 0x50cb, 0x50dd, 0x50d9, + 0x5109, 0x50fd, 0x511c, 0x5119, 0x5165, 0x5155, 0x5188, 0x5166, + 0x5162, 0x514c, 0x5156, 0x516c, 0x518f, 0x51fb, 0x5184, 0x5195, + 0x51a8, 0x51ac, 0x51d7, 0x51b9, 0x51be, 0x51d2, 0x51c9, 0x51d4, + 0x51ce, 0x51e0, 0x51ec, 0x51e7, 0x51f5, 0x51fc, + /* 0x16021..0x1607E */ + 0x51f9, 0x51ff, 0x520d, 0x5210, 0x521b, 0x5228, 0x522d, 0x522c, + 0x5230, 0x5232, 0x523b, 0x523c, 0x523f, 0x5240, 0x5246, 0x524b, + 0x5258, 0x5274, 0x527e, 0x5282, 0x5281, 0x5287, 0x5292, 0x5296, + 0x52a2, 0x52a7, 0x52b9, 0x52b2, 0x52c3, 0x52c6, 0x52c4, 0x52ce, + 0x52d2, 0x52e2, 0x52e0, 0x52e1, 0x52f9, 0x52f7, 0x300f, 0x5317, + 0x530a, 0x531c, 0x5316, 0x531d, 0x5334, 0x532f, 0x5329, 0x5325, + 0x533e, 0x534e, 0x534f, 0x7ed8, 0x5357, 0x536a, 0x5368, 0x5370, + 0x5378, 0x5375, 0x537b, 0x537a, 0x53c8, 0x53b3, 0x53ce, 0x53bb, + 0x53c0, 0x53e5, 0x53ee, 0x53de, 0x54a2, 0x5405, 0x546f, 0x5425, + 0x53f8, 0x5432, 0x543a, 0x5455, 0x543f, 0x545f, 0x5459, 0x5441, + 0x545c, 0x5469, 0x5470, 0x5463, 0x546a, 0x5476, 0x547e, 0x548b, + 0x549e, 0x54a7, 0x54ca, 0x54cf, 0x54d4, 0x53f1, + /* 0x16121..0x1617E */ + 0x54e0, 0x54e3, 0x54e7, 0x54e9, 0x54ee, 0x54f2, 0x54f0, 0x54f1, + 0x54f8, 0x54f7, 0x5504, 0x5503, 0x5505, 0x550c, 0x550e, 0x550d, + 0x5515, 0x5513, 0x551e, 0x5526, 0x552c, 0x553c, 0x5544, 0x554d, + 0x554a, 0x5549, 0x555b, 0x5546, 0x555a, 0x5569, 0x5564, 0x5567, + 0x556b, 0x556d, 0x5578, 0x5576, 0x5586, 0x5587, 0x5574, 0x558a, + 0x5589, 0x5582, 0x5594, 0x559a, 0x559d, 0x55a5, 0x55a3, 0x55c2, + 0x55b3, 0x55c3, 0x55b5, 0x55bd, 0x55b8, 0x55bc, 0x55b1, 0x55cd, + 0x55ca, 0x55d2, 0x55d9, 0x55e3, 0x55de, 0x55fe, 0x55ff, 0x55fc, + 0x5601, 0x55f0, 0x55fa, 0x55f2, 0x55f3, 0x560b, 0x560d, 0x5609, + 0x561f, 0x5627, 0x5620, 0x5621, 0x5622, 0x5624, 0x5634, 0x5630, + 0x563b, 0x5647, 0x5648, 0x5646, 0x565c, 0x5658, 0x5661, 0x5662, + 0x5668, 0x5669, 0x566a, 0x5667, 0x566c, 0x5670, + /* 0x16221..0x1627E */ + 0x5672, 0x5676, 0x5678, 0x567c, 0x5680, 0x5683, 0x5688, 0x568b, + 0x568e, 0x5696, 0x5693, 0x5699, 0x569a, 0x56b0, 0x56b4, 0x56b8, + 0x56b9, 0x56ba, 0x56c2, 0x56cd, 0x56d6, 0x56d2, 0x56de, 0x56e1, + 0x56e5, 0x56e7, 0x56ea, 0x662f, 0x56fb, 0x5708, 0x5707, 0x5704, + 0x5729, 0x5724, 0x571e, 0x5725, 0x5726, 0x571b, 0x5737, 0x5738, + 0x5747, 0x575a, 0x5768, 0x576b, 0x575b, 0x5765, 0x577f, 0x577e, + 0x5779, 0x578e, 0x578b, 0x5791, 0x57a0, 0x579e, 0x57b0, 0x57b6, + 0x57b9, 0x57bf, 0x57bc, 0x57bd, 0x57bb, 0x57c7, 0x57cd, 0x57d7, + 0x57da, 0x57dc, 0x57e3, 0x57ee, 0x57fc, 0x580c, 0x5812, 0x5926, + 0x5820, 0x592a, 0x5845, 0x588e, 0x5874, 0x5886, 0x587c, 0x589a, + 0x588c, 0x58a3, 0x58b5, 0x58aa, 0x58af, 0x58d1, 0x58c6, 0x58cb, + 0x58d4, 0x58be, 0x58bc, 0x58c5, 0x58ca, 0x58ec, + /* 0x16321..0x1637E */ + 0x58e7, 0x58da, 0x58fd, 0x58f4, 0x5907, 0x5912, 0x5911, 0x5919, + 0x592c, 0x592b, 0x5940, 0x5960, 0x5957, 0x595f, 0x595a, 0x5955, + 0x5953, 0x597a, 0x597f, 0x598a, 0x599d, 0x59a7, 0x7f4b, 0x59aa, + 0x59ae, 0x59b3, 0x59b9, 0x59ba, 0x59c9, 0x59d5, 0x59e7, 0x59ec, + 0x59e1, 0x59e3, 0x5a08, 0x5a0d, 0x5a18, 0x5a19, 0x5a20, 0x5a1f, + 0x5980, 0x5a31, 0x5a3b, 0x5a3e, 0x5a37, 0x5a43, 0x5a57, 0x5a49, + 0x5a61, 0x5a62, 0x5a69, 0x7f9d, 0x5a70, 0x5a79, 0x5a7d, 0x5a88, + 0x5a97, 0x5a95, 0x5a98, 0x5a96, 0x5aa9, 0x5ac8, 0x5ab0, 0x5ab6, + 0x5ac5, 0x5ac4, 0x5abf, 0x7083, 0x5ac7, 0x5aca, 0x5acd, 0x5acf, + 0x5ad5, 0x5ad3, 0x5ad9, 0x5ada, 0x5add, 0x5ae1, 0x5ae2, 0x5ae6, + 0x5aed, 0x5af0, 0x5b02, 0x5b0f, 0x5b0a, 0x5b06, 0x5b33, 0x5b18, + 0x5b19, 0x5b1e, 0x5b35, 0x5b28, 0x5b36, 0x5b50, + /* 0x16421..0x1647E */ + 0x5b7a, 0x5b04, 0x5b4d, 0x5b0b, 0x5b4c, 0x5b45, 0x5b75, 0x5b65, + 0x5b74, 0x5b67, 0x5b70, 0x5b71, 0x5b6c, 0x5b6e, 0x5b9d, 0x5b98, + 0x5b9f, 0x5b8d, 0x5b9c, 0x5b9a, 0x5b8b, 0x5b92, 0x5b8f, 0x5b5d, + 0x5b99, 0x5bcb, 0x5bc1, 0x5bcc, 0x5bcf, 0x5bb4, 0x5bc6, 0x5bdd, + 0x5be9, 0x5c11, 0x5c14, 0x5be6, 0x5be5, 0x5c60, 0x5c00, 0x5c07, + 0x5c13, 0x5bf3, 0x5bf7, 0x5c17, 0x5c0d, 0x5bf6, 0x5c23, 0x5c27, + 0x5c2a, 0x5c1f, 0x5c37, 0x5c2b, 0x5c3d, 0x5c4c, 0x5c43, 0x5c54, + 0x5c4f, 0x5c40, 0x5c50, 0x5c58, 0x5c5f, 0x5c64, 0x5c56, 0x5c65, + 0x5c6c, 0x5c75, 0x5c83, 0x5c90, 0x5ca4, 0x5cad, 0x5ca2, 0x5cab, + 0x5ca1, 0x5ca8, 0x5cb3, 0x5cb2, 0x5cb1, 0x5cae, 0x5cb9, 0x5cbd, + 0x5cc0, 0x5cc5, 0x5cc2, 0x5cd8, 0x5cd2, 0x5cdc, 0x5ce2, 0x7b3b, + 0x5cef, 0x5cf2, 0x5cf4, 0x5cf6, 0x5cfa, 0x5d06, + /* 0x16521..0x1657E */ + 0x5d02, 0x5d1c, 0x5d15, 0x5d0a, 0x5d45, 0x5d4b, 0x5d2e, 0x5d32, + 0x5d3f, 0x5d35, 0x5d46, 0x5d73, 0x5d56, 0x5d4e, 0x5d72, 0x5d68, + 0x5d6e, 0x5d4f, 0x5d63, 0x5d93, 0x5d89, 0x5d5b, 0x5d8f, 0x5d7d, + 0x5d9b, 0x5dba, 0x5dae, 0x5da3, 0x5db5, 0x5dc7, 0x5dbd, 0x5dab, + 0x5e3d, 0x5da2, 0x5daf, 0x5ddc, 0x5db8, 0x5d9f, 0x5db0, 0x5dd8, + 0x5ddd, 0x5de4, 0x5dde, 0x5dfb, 0x5df2, 0x5de1, 0x5e05, 0x5e0a, + 0x5e23, 0x5e21, 0x5e12, 0x5e31, 0x5e1f, 0x5e09, 0x5e0b, 0x5e22, + 0x5e46, 0x5e66, 0x5e3b, 0x5e35, 0x5e39, 0x5e43, 0x5e37, 0x5e32, + 0x5e3a, 0x5e67, 0x5e5d, 0x5e56, 0x5e5e, 0x5e59, 0x5e5a, 0x5e79, + 0x5e6a, 0x5e69, 0x5e7c, 0x5e7b, 0x5e83, 0x5dd5, 0x5e7d, 0x6fae, + 0x5e7f, 0x5e88, 0x5e89, 0x5e8c, 0x5e92, 0x5e90, 0x5e93, 0x5e94, + 0x5e96, 0x5e8e, 0x5e9b, 0x5e9c, 0x5f38, 0x5f3a, + /* 0x16621..0x1667E */ + 0x5f45, 0x5f4c, 0x5f4d, 0x5f4e, 0x5f50, 0x5f51, 0x5f55, 0x5f54, + 0x5f58, 0x5f5f, 0x5f60, 0x5f68, 0x5f69, 0x5f67, 0x5f78, 0x5f82, + 0x5f86, 0x5f83, 0x5f88, 0x5f87, 0x5f8c, 0x5f94, 0x5f9e, 0x5f9d, + 0x5f9a, 0x5fa3, 0x5faf, 0x5fb2, 0x5fb9, 0x5fae, 0x5fb6, 0x5fb8, + 0x6b71, 0x5fc5, 0x5fc6, 0x5fca, 0x5fd5, 0x5fd4, 0x5fe1, 0x5fe6, + 0x5fe9, 0x5ff3, 0x5ff9, 0x78dc, 0x6006, 0x6004, 0x600b, 0x6012, + 0x6018, 0x6019, 0x601c, 0x6021, 0x6028, 0x603f, 0x603b, 0x604a, + 0x6046, 0x6052, 0x6058, 0x605a, 0x605f, 0x6062, 0x6068, 0x6073, + 0x6072, 0x6070, 0x6076, 0x6079, 0x607d, 0x607f, 0x6084, 0x6086, + 0x6085, 0x609b, 0x6093, 0x609a, 0x60ad, 0x3190, 0x60ac, 0x60db, + 0x60e5, 0x60d9, 0x60dd, 0x60c4, 0x60da, 0x60d6, 0x6109, 0x60ef, + 0x60f1, 0x611b, 0x6129, 0x6123, 0x612f, 0x614b, + /* 0x16721..0x1677E */ + 0x768b, 0x6146, 0x613e, 0x6153, 0x6151, 0x60fc, 0x6171, 0x616e, + 0x6165, 0x6166, 0x6174, 0x6183, 0x6188, 0x618a, 0x6180, 0x6182, + 0x61a0, 0x6195, 0x61a4, 0x61a3, 0x615f, 0x6193, 0x61a9, 0x61b0, + 0x61b5, 0x61be, 0x61b8, 0x61bd, 0x61c0, 0x61c2, 0x61ba, 0x61c9, + 0x61cd, 0x61d1, 0x61d9, 0x61d8, 0x61c8, 0x61da, 0x61df, 0x61e0, + 0x61e7, 0x61fa, 0x61fb, 0x61fe, 0x6201, 0x6202, 0x6205, 0x6207, + 0x620a, 0x620d, 0x6210, 0x6216, 0x6229, 0x622b, 0x6238, 0x6233, + 0x6240, 0x6259, 0x6258, 0x625d, 0x625a, 0x625f, 0x6264, 0x6262, + 0x6268, 0x626a, 0x626b, 0x622e, 0x6271, 0x6277, 0x6278, 0x627e, + 0x628d, 0x6292, 0x62ab, 0x629f, 0x62bb, 0x62ac, 0x62e1, 0x62e3, + 0x62df, 0x62d2, 0x62f4, 0x62f3, 0x62fa, 0x6393, 0x6303, 0x62fb, + 0x62f9, 0x62de, 0x6306, 0x62dc, 0x6309, 0x62d9, + /* 0x16821..0x1687E */ + 0x6335, 0x6334, 0x6316, 0x6332, 0x6331, 0x6340, 0x6339, 0x6350, + 0x6345, 0x632f, 0x632b, 0x6317, 0x6318, 0x6385, 0x639a, 0x63aa, + 0x639f, 0x63a2, 0x6396, 0x6323, 0x638e, 0x6387, 0x638a, 0x637c, + 0x63b5, 0x6373, 0x6375, 0x63a0, 0x6389, 0x63a8, 0x63f4, 0x6413, + 0x63eb, 0x63ce, 0x63fd, 0x6403, 0x63d8, 0x640b, 0x63c1, 0x63f7, + 0x6407, 0x63e0, 0x63f2, 0x640d, 0x6422, 0x6420, 0x63bd, 0x6438, + 0x6506, 0x63fb, 0x646d, 0x642a, 0x643c, 0x655a, 0x6484, 0x6477, + 0x646b, 0x64ad, 0x646e, 0x6482, 0x6469, 0x6446, 0x642c, 0x646f, + 0x6479, 0x6435, 0x64ca, 0x6462, 0x64b9, 0x64bf, 0x649f, 0x64d9, + 0x64cd, 0x64bb, 0x64da, 0x64d0, 0x64c1, 0x64c6, 0x64d6, 0x64a1, + 0x6521, 0x64ff, 0x64f4, 0x6517, 0x6518, 0x652c, 0x651f, 0x6515, + 0x6514, 0x64fc, 0x6540, 0x6563, 0x6558, 0x6548, + /* 0x16921..0x1697E */ + 0x6541, 0x6602, 0x654b, 0x6555, 0x6580, 0x65a4, 0x6588, 0x6591, + 0x658a, 0x65a8, 0x656d, 0x6594, 0x659b, 0x65ea, 0x6587, 0x659c, + 0x6577, 0x657e, 0x6590, 0x65c9, 0x65ba, 0x65cf, 0x65b9, 0x65d0, + 0x65d5, 0x65dd, 0x65e5, 0x65dc, 0x65f9, 0x660a, 0x6613, 0x660b, + 0x65fe, 0x65fa, 0x6606, 0x6622, 0x661a, 0x6630, 0x663f, 0x664d, + 0x2e55, 0x6654, 0x665f, 0x6667, 0x6671, 0x6693, 0x66a3, 0x66a9, + 0x66aa, 0x668b, 0x668c, 0x66b6, 0x66af, 0x66c4, 0x66c6, 0x66b0, + 0x66c9, 0x6823, 0x66ab, 0x66d4, 0x66de, 0x66e9, 0x66ec, 0x66df, + 0x66db, 0x66ef, 0x6712, 0x6706, 0x6708, 0x6700, 0x6703, 0x66fb, + 0x6711, 0x6709, 0x670d, 0x66f9, 0x670a, 0x6734, 0x673f, 0x6737, + 0x673b, 0x6725, 0x6729, 0x671a, 0x6760, 0x675f, 0x6778, 0x674c, + 0x674e, 0x6774, 0x6757, 0x6768, 0x676e, 0x6759, + /* 0x16A21..0x16A7E */ + 0x6753, 0x6763, 0x676a, 0x6805, 0x67a2, 0x679f, 0x6782, 0x67af, + 0x67cb, 0x67bd, 0x67c0, 0x67d0, 0x76d6, 0x67ab, 0x67c4, 0x67b3, + 0x67c7, 0x67c6, 0x67bb, 0x67ef, 0x67f2, 0x67e0, 0x680f, 0x680d, + 0x67fe, 0x67f6, 0x67f7, 0x680e, 0x67d2, 0x6811, 0x6816, 0x6815, + 0x6822, 0x6821, 0x6831, 0x6836, 0x6839, 0x6827, 0x683b, 0x6844, + 0x6842, 0x6852, 0x6859, 0x685e, 0x6862, 0x686b, 0x6881, 0x687e, + 0x689e, 0x6875, 0x687d, 0x68b5, 0x6872, 0x6882, 0x6897, 0x6892, + 0x68ae, 0x6899, 0x68a2, 0x688d, 0x68a4, 0x68b0, 0x68bf, 0x68b1, + 0x68c3, 0x68c4, 0x68d4, 0x68d8, 0x68d9, 0x68dd, 0x68f9, 0x6902, + 0x68fc, 0x68f4, 0x68e8, 0x68f2, 0x6904, 0x690c, 0x690a, 0x6913, + 0x6943, 0x691e, 0x6925, 0x692a, 0x692b, 0x6941, 0x6944, 0x693b, + 0x6936, 0x6938, 0x694c, 0x691d, 0x6960, 0x695e, + /* 0x16B21..0x16B7E */ + 0x6966, 0x6964, 0x696d, 0x696a, 0x696f, 0x6974, 0x6977, 0x697e, + 0x6983, 0x6988, 0x698a, 0x6993, 0x6998, 0x69a1, 0x69a9, 0x69a6, + 0x69ac, 0x69af, 0x69b2, 0x69ba, 0x69bd, 0x69bf, 0x69c0, 0x69da, + 0x69dc, 0x69dd, 0x69e7, 0x69f4, 0x69f8, 0x6a03, 0x6a16, 0x6a10, + 0x6a0c, 0x6a1b, 0x6a1d, 0x6a25, 0x6a36, 0x6a41, 0x6a5b, 0x6a52, + 0x6a46, 0x6a48, 0x6a7c, 0x6a6d, 0x6a6c, 0x6a62, 0x6a85, 0x6a82, + 0x6a84, 0x6aa8, 0x6aa1, 0x6a91, 0x6aa5, 0x6aa6, 0x6a9a, 0x6aa3, + 0x6ac4, 0x6acd, 0x6ac2, 0x6ada, 0x6aeb, 0x6af3, 0x6ae7, 0x6ae4, + 0x6af1, 0x6b14, 0x6ae0, 0x6ae2, 0x6af7, 0x6ade, 0x6adb, 0x6b0c, + 0x6b07, 0x6b1a, 0x6ae1, 0x6b16, 0x6b10, 0x6b17, 0x6b20, 0x6b33, + 0x77ab, 0x6b26, 0x6b2b, 0x6b3e, 0x6b28, 0x6b41, 0x6b4c, 0x6b4f, + 0x6b4e, 0x6b49, 0x6b56, 0x6b5b, 0x6b5a, 0x6b6b, + /* 0x16C21..0x16C7E */ + 0x6b5f, 0x6b6c, 0x6b6f, 0x6b74, 0x6b7d, 0x6b80, 0x6b8c, 0x6b8e, + 0x6b92, 0x6b93, 0x6b96, 0x6b99, 0x6b9a, 0x6c3a, 0x6c41, 0x6c3f, + 0x6c48, 0x6c4c, 0x6c4e, 0x6c50, 0x6c55, 0x6c62, 0x6c6c, 0x6c78, + 0x6c7a, 0x6c82, 0x6c89, 0x6c85, 0x6c8a, 0x6c8d, 0x6c8e, 0x6c94, + 0x6c7c, 0x6c98, 0x421d, 0x6cad, 0x6caa, 0x6cbd, 0x6cb2, 0x6cb3, + 0x6cae, 0x6cb6, 0x6cc8, 0x6cc1, 0x6ce4, 0x6ce3, 0x6cda, 0x6cfd, + 0x6cfa, 0x6cfb, 0x6d04, 0x6d05, 0x6d0a, 0x6d07, 0x6d0f, 0x6d0d, + 0x6d10, 0x7f4e, 0x6d13, 0x6ccd, 0x6d14, 0x6d16, 0x6d67, 0x6d6d, + 0x6d71, 0x6d73, 0x6d81, 0x6d99, 0x6dc2, 0x6dbe, 0x6dba, 0x6dcf, + 0x6dda, 0x6dd6, 0x6dcc, 0x6ddb, 0x6dcb, 0x6dea, 0x6deb, 0x6ddf, + 0x6de3, 0x6dfc, 0x6e08, 0x6e09, 0x6dff, 0x6e1d, 0x6e1e, 0x6e10, + 0x6e1f, 0x6e42, 0x6e35, 0x6e30, 0x6e34, 0x6e4a, + /* 0x16D21..0x16D7E */ + 0x6e47, 0x6e49, 0x6e4c, 0x6e50, 0x6e48, 0x6e59, 0x6e64, 0x6e60, + 0x6e2a, 0x6e63, 0x6e55, 0x6e76, 0x6e72, 0x6e7c, 0x6e81, 0x6e87, + 0x6e85, 0x6e84, 0x6e8b, 0x6e8a, 0x6e93, 0x6e91, 0x6e94, 0x6e99, + 0x6eaa, 0x6ea1, 0x6eac, 0x6eb0, 0x6ec6, 0x6eb1, 0x6ebe, 0x6ec5, + 0x6ec8, 0x6ecb, 0x6edb, 0x6ee3, 0x6efc, 0x6efb, 0x6eeb, 0x6efe, + 0x6f0a, 0x6f05, 0x6f15, 0x6f12, 0x6f19, 0x6f13, 0x6f1c, 0x6f1f, + 0x6f1b, 0x6f0c, 0x6f26, 0x6f33, 0x6f3b, 0x6f39, 0x6f45, 0x6f42, + 0x6f3e, 0x6f4c, 0x6f49, 0x6f46, 0x6f4e, 0x6f57, 0x6f5c, 0x6f62, + 0x6f63, 0x6f64, 0x6f9c, 0x6f9f, 0x6fa3, 0x6fad, 0x6faf, 0x6fb7, + 0x6fda, 0x6fe5, 0x6fe2, 0x6fea, 0x6fef, 0x7087, 0x6ff4, 0x7005, + 0x6ff9, 0x6ffa, 0x7011, 0x7015, 0x7021, 0x700d, 0x701e, 0x7016, + 0x700b, 0x7027, 0x7036, 0x7035, 0x7039, 0x6ff8, + /* 0x16E21..0x16E7E */ + 0x704f, 0x7050, 0x7051, 0x7052, 0x700e, 0x7049, 0x703e, 0x7056, + 0x7058, 0x705e, 0x7068, 0x706f, 0x7076, 0x76a8, 0x7072, 0x7082, + 0x707d, 0x7081, 0x7080, 0x708a, 0x7089, 0x708f, 0x70a8, 0x70af, + 0x70b1, 0x70b5, 0x70e2, 0x70e4, 0x4248, 0x70db, 0x7102, 0x7112, + 0x7119, 0x7132, 0x7130, 0x714a, 0x7156, 0x7158, 0x7163, 0x7165, + 0x7169, 0x7173, 0x7172, 0x718b, 0x7189, 0x7182, 0x71a2, 0x71ab, + 0x71af, 0x71aa, 0x71b5, 0x71b4, 0x71ba, 0x71c0, 0x71c1, 0x71c9, + 0x71cb, 0x71d0, 0x71d6, 0x71df, 0x71e1, 0x71db, 0x71fc, 0x71f5, + 0x71f6, 0x721e, 0x71ff, 0x7214, 0x722c, 0x7215, 0x7211, 0x725e, + 0x7257, 0x7245, 0x7249, 0x7264, 0x7248, 0x7295, 0x723f, 0x724b, + 0x7250, 0x729c, 0x7296, 0x7293, 0x729b, 0x725a, 0x72cf, 0x72b9, + 0x72b7, 0x72e9, 0x730f, 0x72fa, 0x7344, 0x732e, + /* 0x16F21..0x16F7E */ + 0x7319, 0x7322, 0x731a, 0x7323, 0x733a, 0x7335, 0x733b, 0x735c, + 0x7360, 0x737c, 0x736e, 0x7356, 0x73b0, 0x73ac, 0x73ad, 0x7394, + 0x73b9, 0x73d6, 0x73d7, 0x73e8, 0x73e5, 0x73d8, 0x73c3, 0x73dd, + 0x73d0, 0x73c8, 0x73e4, 0x741a, 0x7414, 0x7413, 0x7403, 0x7407, + 0x7410, 0x7436, 0x742b, 0x7435, 0x7421, 0x743a, 0x7441, 0x7452, + 0x7444, 0x745b, 0x7460, 0x7462, 0x745e, 0x746a, 0x7229, 0x7470, + 0x7475, 0x7477, 0x747d, 0x745a, 0x747c, 0x747e, 0x7481, 0x747f, + 0x7582, 0x7587, 0x758a, 0x7594, 0x7596, 0x7598, 0x7599, 0x75a0, + 0x75a8, 0x75a7, 0x75ad, 0x75bc, 0x75bb, 0x75b9, 0x75be, 0x75ca, + 0x4ff6, 0x75c3, 0x75cd, 0x75cc, 0x75d5, 0x75d4, 0x75d6, 0x75dc, + 0x75e1, 0x75e5, 0x75e2, 0x7621, 0x7628, 0x762e, 0x762f, 0x7642, + 0x764c, 0x764f, 0x764b, 0x7677, 0x765c, 0x765e, + /* 0x17021..0x1707E */ + 0x765d, 0x765f, 0x7666, 0x7672, 0x766c, 0x768d, 0x7698, 0x7695, + 0x7697, 0x76aa, 0x76a7, 0x76b1, 0x76b2, 0x76b0, 0x76b4, 0x76b6, + 0x76b8, 0x76b9, 0x76ce, 0x76cb, 0x76c9, 0x76cd, 0x694d, 0x76dc, + 0x770d, 0x76d5, 0x76f9, 0x7704, 0x7706, 0x7708, 0x7713, 0x770e, + 0x7711, 0x770f, 0x7716, 0x7719, 0x7724, 0x772a, 0x7730, 0x7739, + 0x773d, 0x773e, 0x7744, 0x7746, 0x7748, 0x7742, 0x7749, 0x775c, + 0x7760, 0x7764, 0x7766, 0x7768, 0x32d2, 0x776b, 0x7771, 0x7779, + 0x7785, 0x777c, 0x7781, 0x777a, 0x7786, 0x778b, 0x778f, 0x7790, + 0x779c, 0x77a8, 0x77a6, 0x77a3, 0x77b3, 0x77b4, 0x77c3, 0x77c6, + 0x77c8, 0x77cb, 0x77dc, 0x77ed, 0x7f4f, 0x77f2, 0x5adf, 0x77f6, + 0x77f5, 0x780f, 0x780c, 0x7838, 0x7824, 0x7821, 0x7837, 0x783d, + 0x7846, 0x784f, 0x784b, 0x786b, 0x786f, 0x7870, + /* 0x17121..0x1717E */ + 0x7871, 0x7874, 0x7873, 0x78aa, 0x78af, 0x78b1, 0x78b6, 0x78c4, + 0x78c3, 0x78c6, 0x78e9, 0x78eb, 0x7903, 0x7909, 0x7912, 0x7914, + 0x7918, 0x7921, 0x791d, 0x791e, 0x7924, 0x7920, 0x792c, 0x792e, + 0x793d, 0x793e, 0x7942, 0x7949, 0x7945, 0x7950, 0x794b, 0x7951, + 0x7952, 0x794c, 0x7955, 0x7997, 0x7998, 0x79a5, 0x79ad, 0x79ae, + 0x79bc, 0x79df, 0x79db, 0x79dd, 0x79d8, 0x79d1, 0x79ed, 0x79ee, + 0x79f1, 0x79f2, 0x79fb, 0x79f8, 0x7a01, 0x7a0f, 0x7a05, 0x79e2, + 0x7a19, 0x7a2b, 0x7a37, 0x7a45, 0x7a42, 0x7a40, 0x7a43, 0x7a3e, + 0x7a55, 0x7a4d, 0x7a5b, 0x7a57, 0x7a5f, 0x7a62, 0x7a65, 0x7a64, + 0x7a69, 0x7a6b, 0x7a6a, 0x7aad, 0x7ab0, 0x7abc, 0x7ac0, 0x7acf, + 0x7ad1, 0x7ad3, 0x7ad4, 0x7ade, 0x7adf, 0x7ae2, 0x7ae3, 0x7ae6, + 0x7aef, 0x7aeb, 0x7aee, 0x7af4, 0x7af1, 0x7af7, + /* 0x17221..0x1727E */ + 0x7afb, 0x7b06, 0x7b18, 0x7b1a, 0x7b1f, 0x7b22, 0x7b23, 0x7b25, + 0x7b27, 0x7b28, 0x7b29, 0x7b2a, 0x7b2e, 0x7b2f, 0x7b32, 0x7b44, + 0x7b43, 0x7b4f, 0x7b4d, 0x7b4e, 0x7b51, 0x7b58, 0x7b74, 0x7b93, + 0x7b83, 0x7b91, 0x7b96, 0x7b97, 0x7b9f, 0x7ba0, 0x7ba8, 0x7bb4, + 0x7bc0, 0x7bca, 0x7bb9, 0x7bc6, 0x7bcf, 0x7bd1, 0x7bd2, 0x7be3, + 0x7be2, 0x7be4, 0x7bd4, 0x7be1, 0x7c3a, 0x7bf2, 0x7bf1, 0x7bf0, + 0x7c15, 0x7c14, 0x7c09, 0x7c13, 0x7c0c, 0x7c06, 0x7c08, 0x7c12, + 0x7c0a, 0x7c04, 0x7c2e, 0x7c1b, 0x7c25, 0x7c24, 0x7c21, 0x7c30, + 0x7c47, 0x7c32, 0x7c46, 0x7c3e, 0x7c5a, 0x7c60, 0x7c67, 0x7c76, + 0x7c78, 0x7ce7, 0x7cec, 0x7cf0, 0x7d09, 0x7d08, 0x7ceb, 0x7d03, + 0x7d06, 0x7d2a, 0x7d26, 0x7daf, 0x7d23, 0x7d1f, 0x7d44, 0x7d15, + 0x7d12, 0x7d41, 0x7d3f, 0x7d3e, 0x7d46, 0x7d48, + /* 0x17321..0x1737E */ + 0x7d5d, 0x7d5e, 0x7d64, 0x7d51, 0x7d50, 0x7d59, 0x7d72, 0x7d89, + 0x7d87, 0x7dab, 0x7d6f, 0x7d7a, 0x7d9a, 0x7da4, 0x7da9, 0x7db2, + 0x7dc4, 0x7dc1, 0x7dbb, 0x7db8, 0x7dba, 0x7dc6, 0x7dcf, 0x7dc2, + 0x7dd9, 0x7dd3, 0x7df8, 0x7de6, 0x7ded, 0x7def, 0x7dfd, 0x7e1a, + 0x7e1b, 0x7e1e, 0x7e75, 0x7e79, 0x7e7d, 0x7e81, 0x7e88, 0x7e8b, + 0x7e8c, 0x7e92, 0x7e95, 0x7e91, 0x7e9d, 0x7ea5, 0x7ea9, 0x7eb8, + 0x7eaa, 0x7ead, 0x7761, 0x7ecc, 0x7ece, 0x7ecf, 0x7ed0, 0x7ed4, + 0x7edc, 0x7ede, 0x7edd, 0x7ee0, 0x7ee5, 0x7ee8, 0x7eef, 0x7ef4, + 0x7ef6, 0x7ef7, 0x7ef9, 0x7efb, 0x7efc, 0x7efd, 0x7f07, 0x7f08, + 0x56b7, 0x7f15, 0x7f21, 0x7f2c, 0x7f3e, 0x7f4a, 0x7f52, 0x7f54, + 0x7f63, 0x7f5f, 0x7f60, 0x7f61, 0x7f66, 0x7f67, 0x7f6c, 0x7f6a, + 0x7f77, 0x7f72, 0x7f76, 0x7f95, 0x7f9c, 0x7fa0, + /* 0x17421..0x1747E */ + 0x382f, 0x49c7, 0x7059, 0x5464, 0x31dc, 0x5199, 0x3653, 0x3de2, + 0x3e14, 0x3e18, 0x3e58, 0x3e5e, 0x3ebe, 0x8028, 0x3ecb, 0x3ef9, + 0x3f00, 0x3f02, 0x3f07, 0x3f1d, 0x3f23, 0x3f34, 0x3f36, 0x3f3d, + 0x3f40, 0x3f45, 0x3f54, 0x3f58, 0x3f64, 0x3f67, 0x3f7d, 0x3f89, + 0x3f9c, 0x3fa7, 0x3faf, 0x3fb5, 0x3fb7, 0x3fc9, 0x3fde, 0x3fe1, + 0x3fe9, 0x400d, 0x4014, 0x4018, 0x4033, 0x4035, 0x4047, 0x813d, + 0x409d, 0x409e, 0x40cb, 0x40d4, 0x40d5, 0x40dd, 0x40f8, 0x411c, + 0x412b, 0x4130, 0x4137, 0x813e, 0x418d, 0x813f, 0x41bc, 0x41b9, + 0x8140, 0x4222, 0x423e, 0x4243, 0x4256, 0x425a, 0x426f, 0x4285, + 0x42c4, 0x42d6, 0x42fc, 0x430a, 0x4318, 0x4339, 0x4343, 0x4365, + 0x437c, 0x43e5, 0x43ed, 0x43f5, 0x4410, 0x4414, 0x4422, 0x4479, + 0x4451, 0x4460, 0x446d, 0x44ce, 0x44be, 0x44bf, + /* 0x17521..0x1757E */ + 0x44c4, 0x44ca, 0x44d0, 0x44f7, 0x44fb, 0x4522, 0x4529, 0x8141, + 0x4567, 0x459d, 0x8142, 0x4600, 0x4609, 0x4615, 0x461e, 0x463a, + 0x4622, 0x4624, 0x462b, 0x4630, 0x4631, 0x4633, 0x46fb, 0x4648, + 0x464c, 0xa8c4, 0x4659, 0x465a, 0x4661, 0x4665, 0x4673, 0x4677, + 0x4678, 0x468d, 0x8143, 0x46a0, 0x46b2, 0x46bb, 0x46c6, 0x46c8, + 0x1b22, 0x46db, 0x46e8, 0x46fa, 0x4713, 0x8029, 0x4733, 0x4766, + 0x4747, 0x4748, 0x477b, 0x4781, 0x4793, 0x4798, 0x479b, 0x47bb, + 0x47f9, 0x47c0, 0x47d7, 0x47fc, 0x4801, 0x4852, 0x481d, 0x482c, + 0x4831, 0x485b, 0x4872, 0x4875, 0x8144, 0x48a3, 0x48a5, 0x48b2, + 0x48c8, 0x48d0, 0x48e8, 0x48ed, 0x48f0, 0x48f1, 0x48fc, 0x490a, + 0x4949, 0xabc4, 0x4935, 0x4942, 0x4957, 0x4963, 0x4964, 0x4968, + 0x4980, 0x8114, 0x49a5, 0x49ad, 0x49cf, 0x1bb6, + /* 0x17621..0x1767E */ + 0x1bc3, 0x49e2, 0x49e9, 0x49ea, 0x49f5, 0x49f6, 0x4a0f, 0x4a15, + 0xad3f, 0x4a3b, 0x4a3e, 0x4a45, 0x4a50, 0x4a56, 0x4a5b, 0x4a6b, + 0x4a73, 0xad63, 0x4a89, 0x4a94, 0x4a9d, 0x4a9e, 0x4aa5, 0x4ae4, + 0x4ae7, 0x1c0f, 0x801d, 0x4b1b, 0x4b1e, 0x4b2c, 0x4b35, 0x4b46, + 0x4b56, 0x4b60, 0x4b65, 0x4b67, 0x4b77, 0x4b82, 0x4ba9, 0x4bad, + 0x8070, 0x4bcf, 0x4bd6, 0x4bd7, 0x4bff, 0x4c05, 0x4c10, 0x4c33, + 0x4c59, 0x4c5c, 0x4caa, 0x4c74, 0x4c76, 0x4c85, 0x4c86, 0x4c98, + 0x4c9c, 0x4cfb, 0x4cc6, 0x4cd4, 0x4ce0, 0x4ceb, 0x4cee, 0xb0fe, + 0x4d04, 0x4d0e, 0x4d2e, 0x4d31, 0x4d39, 0x4d3f, 0x4d58, 0x4d65, + 0x8145, 0x4d82, 0x4d87, 0x4d89, 0x4d94, 0x4daa, 0x4dac, 0x4dbf, + 0x4dc4, 0x4dd6, 0x4dda, 0x4ddb, 0x4ddd, 0x4dfc, 0x8146, 0x4e34, + 0x4e44, 0x4e5c, 0x4e5e, 0x4eab, 0x4eb1, 0x4ec1, + /* 0x17721..0x1777E */ + 0x4ec7, 0x4ece, 0x4f10, 0x4f1a, 0x8147, 0x4f2a, 0x4f2f, 0x4f33, + 0x4f51, 0x4f59, 0x4f5e, 0x4f61, 0x4f62, 0x4f7e, 0x4f88, 0x4f8c, + 0x4f8d, 0x4f94, 0x4fa0, 0x4fa7, 0x4fb6, 0x4fbc, 0x4fc7, 0x4fca, + 0x4ff9, 0x4ff0, 0x4ff5, 0x5005, 0x5006, 0x5028, 0x504a, 0x505d, + 0x505e, 0x504e, 0x5064, 0x5075, 0x5085, 0x50a4, 0x50ab, 0x50b7, + 0x50d4, 0x50d8, 0x50e4, 0x510f, 0x512b, 0x511e, 0x5120, 0x512e, + 0x5130, 0x5146, 0x5147, 0x5151, 0x8148, 0x5152, 0x515c, 0x5160, + 0x5168, 0x8115, 0x5185, 0x5187, 0x5192, 0x51c1, 0x51ba, 0x51c4, + 0x51fe, 0x5200, 0x5215, 0x5255, 0x5256, 0x1e3f, 0x528d, 0x529b, + 0x52be, 0x52c0, 0x52fb, 0xb7f1, 0x5327, 0x5328, 0x8116, 0x5350, + 0x5366, 0x537c, 0x5395, 0x539f, 0x53a0, 0x53a2, 0x53a6, 0x53ab, + 0x53c9, 0x53cf, 0x53d6, 0x53d9, 0x53e3, 0x53e9, + /* 0x17821..0x1787E */ + 0x5407, 0x540a, 0x541a, 0x541b, 0x814a, 0x5426, 0x5428, 0x542a, + 0x542b, 0x542c, 0x542e, 0x542f, 0x5430, 0x5444, 0x5446, 0x5447, + 0x544b, 0x5457, 0x5462, 0x546b, 0x546d, 0x5486, 0x5487, 0x5489, + 0x5498, 0x549c, 0x549f, 0x54a3, 0x5490, 0x54a6, 0x54a8, 0x54a9, + 0x54b5, 0x54bf, 0x54c8, 0x54c9, 0x54da, 0x54ff, 0x5501, 0x5517, + 0x552f, 0x556f, 0x5579, 0x5592, 0x1f72, 0x55ce, 0x55e4, 0x5600, + 0x5602, 0x5608, 0x5615, 0x5616, 0x5619, 0x561e, 0x562d, 0x5635, + 0x5643, 0x564b, 0x5664, 0x5665, 0x566d, 0x566f, 0x5671, 0x5681, + 0x569b, 0x569d, 0x569e, 0x56a6, 0x56aa, 0x56b6, 0x56c5, 0x56cc, + 0x56ce, 0x56d4, 0x56e6, 0x56f1, 0x56fc, 0x570a, 0x5719, 0x5734, + 0x5736, 0x5746, 0x574d, 0x574e, 0x575c, 0x575f, 0x5762, 0x577a, + 0x5780, 0x5794, 0x57aa, 0x57e0, 0x582d, 0xc18e, + /* 0x17921..0x1797E */ + 0x5843, 0x584e, 0x584f, 0x5851, 0x5868, 0x586e, 0x814b, 0x58b0, + 0xc20e, 0x58ad, 0x58e4, 0x58f2, 0x5900, 0x58f7, 0x591c, 0x592e, + 0x5931, 0x5934, 0x814c, 0x814d, 0x5945, 0x5946, 0x814e, 0x814f, + 0x8150, 0x595c, 0x8151, 0x8119, 0x811a, 0x5979, 0x8152, 0x8153, + 0x811b, 0x5998, 0x59b1, 0x59b8, 0x59c8, 0x59ca, 0xc371, 0x59d4, + 0x59de, 0x59eb, 0x59ed, 0x5a03, 0x8154, 0x5a39, 0x5a5d, 0x5a6d, + 0x8155, 0x5a85, 0x5aa0, 0xc4c4, 0x5ab3, 0x5abb, 0x5ace, 0x5aeb, + 0x5afd, 0x5b12, 0x5b2d, 0x5b3b, 0x5b47, 0x5b4e, 0x5b60, 0x5b6d, + 0x5b6f, 0x5b72, 0x5b9e, 0x8156, 0x5bd7, 0x5bd9, 0x5c01, 0x5c31, + 0x5c1e, 0x5c20, 0x5c33, 0x5c36, 0x2264, 0xc7a1, 0x5c59, 0x5c6d, + 0x5c79, 0x5c8f, 0x5c94, 0x5ca0, 0x5cbc, 0x5cd5, 0x5cd9, 0x5cdd, + 0x5d07, 0x5d08, 0x5d13, 0x5d1d, 0x5d23, 0x5d31, + /* 0x17A21..0x17A7E */ + 0x5d41, 0x5d48, 0x5d53, 0x5d5c, 0x5d7a, 0x5d83, 0x5d8b, 0x5da0, + 0x5da6, 0x5dc2, 0x5dcc, 0x5dd6, 0x5de3, 0x8157, 0x5e28, 0x5e08, + 0x5e11, 0x5e15, 0x8159, 0x5e47, 0x5e52, 0x5e61, 0x5e8a, 0x5e8d, + 0x5f47, 0x815a, 0x5f91, 0x5f97, 0x5fbf, 0x5fce, 0x5fdb, 0x5fdf, + 0x5fec, 0x5fee, 0x5ffa, 0x815b, 0x6014, 0x6026, 0x6035, 0x6037, + 0x603c, 0x60ca, 0x60d7, 0x60e0, 0x60f3, 0x6118, 0x614a, 0x6160, + 0x6167, 0x6168, 0x616d, 0x61bb, 0x61ca, 0x61cf, 0x61d7, 0x815c, + 0x2453, 0x245b, 0x6260, 0x6274, 0xd2ff, 0x628e, 0x62a1, 0x62a3, + 0x62a4, 0x62a9, 0x62ae, 0x62b7, 0x62be, 0x62bf, 0x62c6, 0x62d5, + 0x62fd, 0x62fe, 0x6300, 0x6301, 0x6362, 0x6322, 0x632d, 0x633a, + 0x6343, 0x6347, 0x6351, 0x6355, 0x637d, 0x6386, 0x6392, 0x6398, + 0x63a7, 0x63a9, 0x63bf, 0x63c0, 0x63c7, 0x63cf, + /* 0x17B21..0x17B7E */ + 0x63d1, 0x63e1, 0x63ea, 0x6401, 0x6406, 0x640a, 0x815f, 0x6448, + 0x645f, 0x6470, 0x6473, 0x6485, 0x649e, 0x64af, 0x64b4, 0x64ba, + 0x64c0, 0x64c2, 0xd440, 0x6532, 0x651e, 0x6523, 0x652f, 0x6559, + 0x6564, 0x811f, 0x65ad, 0x657a, 0x658c, 0x658f, 0x65a2, 0x65b0, + 0x65cb, 0x65ce, 0x65ed, 0x6612, 0x65ff, 0x6604, 0x6605, 0x6610, + 0xd674, 0x6618, 0x6629, 0x6638, 0x6657, 0x665b, 0x8036, 0x6662, + 0x259d, 0x666c, 0x6675, 0x6698, 0x66b8, 0x66fa, 0x66fc, 0x66fd, + 0x670b, 0x6771, 0x6787, 0x6788, 0x67ac, 0x67ad, 0x67b5, 0x25ea, + 0x67d6, 0x67ec, 0x6806, 0x680a, 0x6810, 0x6814, 0x681f, 0x6898, + 0x68aa, 0x68ca, 0x68ce, 0xd884, 0x68f5, 0x691c, 0x8160, 0x6918, + 0x6919, 0x691a, 0x6927, 0x6930, 0x6932, 0x6939, 0x6940, 0x6994, + 0x8161, 0x69d4, 0x69e5, 0x69f6, 0x6a12, 0x6a15, + /* 0x17C21..0x17C7E */ + 0x6a22, 0x6a37, 0x6a47, 0x6a4e, 0x6a5d, 0x6a61, 0x6a75, 0x6a79, + 0x6aa7, 0x6ad0, 0x6adf, 0x6af4, 0x6af6, 0x8122, 0x8162, 0x8163, + 0x6b46, 0x6b54, 0x6b59, 0x6b69, 0x6b9d, 0x6c49, 0x6c68, 0x8164, + 0x6ce1, 0x6cf4, 0x6cf8, 0x6cfe, 0x8165, 0x6d12, 0x6d1b, 0x6daf, + 0x6dce, 0x6dd1, 0x6dd7, 0x6e20, 0x6e23, 0x6e3d, 0x6e70, 0x6e7b, + 0xe177, 0x6ec0, 0x2844, 0x6efa, 0x6f1e, 0x6f2d, 0x6f36, 0x6f54, + 0xe24d, 0x6fa6, 0x6fb5, 0x6fe4, 0x6fe8, 0x6fee, 0x7008, 0x702d, + 0x8167, 0x7088, 0x7095, 0x7097, 0x7099, 0x709b, 0x70a2, 0x70b3, + 0x70be, 0x70c4, 0x70c5, 0x70c7, 0x70d7, 0x70dd, 0x70de, 0x70ef, + 0x70f4, 0x8126, 0x7114, 0x7115, 0x7116, 0x7122, 0x7123, 0x7127, + 0x712f, 0x7131, 0x7134, 0x713d, 0x7148, 0x715b, 0x7183, 0x719e, + 0x71ac, 0x71b1, 0x71bc, 0x71d7, 0x71fb, 0x71e4, + /* 0x17D21..0x17D7E */ + 0x71e5, 0x71ed, 0x71f1, 0x7207, 0x7210, 0x7238, 0x7239, 0x723a, + 0x723c, 0x7240, 0x7243, 0x724f, 0x7278, 0x7288, 0x72c2, 0x72cb, + 0x72cc, 0x72d3, 0x72e0, 0x72ff, 0x7304, 0x731f, 0x7321, 0x7325, + 0x7348, 0x7349, 0x734a, 0x7364, 0x7365, 0x736a, 0x7370, 0x739b, + 0x73a3, 0x73ba, 0x73c6, 0x73de, 0x73df, 0x7404, 0x73fd, 0x7433, + 0x744a, 0x7463, 0x746b, 0x7471, 0x7472, 0x758e, 0x759f, 0x75a6, + 0x75a9, 0x75ac, 0x75b6, 0x75bd, 0x75cb, 0x75d0, 0x75d3, 0x29b0, + 0x75da, 0x75de, 0x7658, 0x7684, 0x80dc, 0x769d, 0x76a4, 0x76a5, + 0x76d2, 0x76de, 0x8168, 0x76e9, 0x76ef, 0x7733, 0x773b, 0x774d, + 0x774e, 0x774f, 0x775a, 0x776e, 0x7773, 0x7795, 0x77ae, 0x77ba, + 0x77c1, 0x77c9, 0x77de, 0x77db, 0x77f4, 0x8169, 0x780a, 0x781e, + 0x782b, 0x7830, 0x816a, 0x7852, 0x7853, 0x7856, + /* 0x17E21..0x17E7E */ + 0x7857, 0x7859, 0x785a, 0x80d0, 0x7865, 0x786c, 0x78ba, 0x78c8, + 0x78e7, 0x7958, 0x799e, 0x7a02, 0x7a03, 0x7a24, 0x7a2d, 0x7a2e, + 0x7a38, 0x7a4a, 0x7a4e, 0x7a52, 0x7ab6, 0x7ac1, 0x7ac3, 0x7ace, + 0x7ad6, 0x7af9, 0x7b02, 0x7b08, 0x7b20, 0x2c17, 0x7b2d, 0x7b5e, + 0x7b79, 0x7b66, 0x7b72, 0x7b75, 0x7b84, 0x7b8a, 0x7b8f, 0x7b9e, + 0x7ba7, 0x7bc1, 0x7bce, 0x7be5, 0x7bf8, 0x7bfd, 0x7c00, 0x7c23, + 0x7c41, 0x7c4f, 0x7c50, 0x7c53, 0x7c63, 0x7c65, 0x7c77, 0x7d1d, + 0x7d1e, 0x7d43, 0x7d47, 0x7d52, 0x7d63, 0x7d70, 0x7d7c, 0x7d8a, + 0x7d96, 0x7dc0, 0x7dac, 0x7dbc, 0x7dd7, 0xf690, 0x7de7, 0x7e07, + 0x7e15, 0x7e7c, 0x7e9e, 0x7ea4, 0x7eac, 0x7eaf, 0x7eb4, 0x7eb5, + 0x7ec3, 0x7ed1, 0x7f10, 0x7f39, 0x7f57, 0x7f90, 0x7f94, 0x7f97, + 0x7fa2, 0x39f8, 0x3c5b, 0x3e77, 0x5626, 0x5e6b, + /* 0x22121..0x2217E */ + 0x8489, 0x2e02, 0x2e0f, 0x2e12, 0x2e29, 0x2e2b, 0x2e2e, 0x2e40, + 0x2e47, 0x2e48, 0x84a2, 0x2e51, 0x1406, 0x84a4, 0x2e5a, 0x2e69, + 0x2e9d, 0x142c, 0x142e, 0x2eb9, 0x2ebb, 0x8522, 0x2ebc, 0x2ec3, + 0x2ec8, 0x2ed0, 0x2eeb, 0x2eda, 0x2ef1, 0x2ef5, 0x2f00, 0x2f16, + 0x2f64, 0x2f37, 0x2f3e, 0x2f54, 0x2f58, 0x8593, 0x2f77, 0x2f78, + 0x2f7a, 0x2f7d, 0x2f82, 0x2f85, 0x2f92, 0x2f9a, 0x2fe6, 0x2fb2, + 0x2fbe, 0x2fc5, 0x2fcb, 0x2fcf, 0x2fd2, 0x146a, 0x2ff2, 0x3000, + 0x3010, 0x3013, 0x301c, 0x301e, 0x3022, 0x1468, 0x3042, 0x3046, + 0x304e, 0x3053, 0x3057, 0x3063, 0x3066, 0x306a, 0x3070, 0x30a3, + 0x3088, 0x3092, 0x3093, 0x3095, 0x3096, 0x309c, 0x30aa, 0x862b, + 0x30b1, 0x30ba, 0x30bb, 0x30c4, 0x30c7, 0x30f3, 0x8681, 0x30ce, + 0x8671, 0x30d4, 0x30d9, 0x30e1, 0x30e9, 0x1492, + /* 0x22321..0x2237E */ + 0x3108, 0x86f9, 0x3117, 0x311b, 0x874a, 0x3160, 0x8809, 0x3173, + 0x3183, 0x318b, 0x14bc, 0x3198, 0x31a3, 0x31ad, 0x14c7, 0x31bc, + 0x88d6, 0x8928, 0x31f3, 0x31f4, 0x3202, 0x3212, 0x3216, 0x8a4f, + 0x3255, 0x325c, 0x326c, 0x3277, 0x3284, 0x3282, 0x8b07, 0x3298, + 0x8b3a, 0x32a4, 0x32a6, 0x32af, 0x32ba, 0x32bb, 0x32ca, 0x151f, + 0x32d1, 0x8bb9, 0x32f7, 0x330a, 0x330b, 0x3324, 0x3335, 0x333e, + 0x3342, 0x8c7c, 0x8c9d, 0x3367, 0x336c, 0x337a, 0x33a4, 0x33b4, + 0x8dd3, 0x33b7, 0x33c0, 0x8e1d, 0x155d, 0x155e, 0x33d5, 0x33da, + 0x1563, 0x33f4, 0x33f5, 0x3455, 0x3424, 0x3428, 0x156e, 0x3443, + 0x3462, 0x3466, 0x346c, 0x348a, 0x348d, 0x3495, 0x34a0, 0x34a6, + 0x34ad, 0x34ae, 0x34b7, 0x34ba, 0x34bf, 0x34c3, 0x8f45, 0x34ec, + 0x34ef, 0x34f1, 0x34f3, 0x3500, 0x3501, 0x3509, + /* 0x22421..0x2247E */ + 0x353c, 0x3541, 0x15a6, 0x3547, 0x354a, 0x15a8, 0x3560, 0x3561, + 0x3564, 0x8fe1, 0x357d, 0x3582, 0x3588, 0x3591, 0x15c5, 0x35d2, + 0x9095, 0x906d, 0x35bf, 0x35c9, 0x35cc, 0x35d1, 0x35dd, 0x15da, + 0x35e2, 0x9064, 0x35e9, 0x3628, 0x915f, 0x3607, 0x3610, 0x3630, + 0x3637, 0x15f4, 0x363d, 0x363f, 0x3640, 0x3647, 0x365e, 0x3660, + 0x366d, 0x1605, 0x3688, 0x368c, 0x3695, 0x369a, 0x369d, 0x36a8, + 0x36ad, 0x36b2, 0x36c5, 0x36cd, 0x36df, 0x36e8, 0x36f6, 0x36f7, + 0x9201, 0x3715, 0x3723, 0x9255, 0x3729, 0x927b, 0x3745, 0x3746, + 0x374c, 0x374d, 0x9274, 0x3768, 0x376f, 0x3773, 0x3774, 0x3775, + 0x377b, 0x92e4, 0x92d7, 0x37ac, 0x379a, 0x379d, 0x379e, 0x37a8, + 0x37d7, 0x92fd, 0x37cc, 0x9336, 0x9344, 0x37de, 0x37e6, 0x37f0, + 0x164a, 0x37f8, 0x37fb, 0x37fd, 0x3804, 0x381e, + /* 0x22521..0x2257E */ + 0x3820, 0x3827, 0x3832, 0x3839, 0x93c4, 0x3849, 0x384c, 0x3867, + 0x388a, 0x388b, 0x388d, 0x388f, 0x3890, 0x3894, 0x389d, 0x38aa, + 0x38b1, 0x946d, 0x38c3, 0x38cd, 0x38e2, 0x38f3, 0x38f4, 0x3905, + 0x3906, 0x390b, 0x390d, 0x3914, 0x3924, 0x95d7, 0x1691, 0x393d, + 0x1699, 0x3946, 0x1696, 0xd329, 0x395b, 0x395f, 0x9647, 0x3975, + 0x3976, 0x397c, 0x399f, 0x39ae, 0x39bc, 0x39c8, 0x39cd, 0x39de, + 0x39e3, 0x39e4, 0x39e7, 0x39ee, 0x9706, 0x9742, 0x16cf, 0x3a0c, + 0x3a0d, 0x3a17, 0x3a27, 0x3a2d, 0x3a55, 0x3a65, 0x3a7a, 0x3a8b, + 0x3a9c, 0x3a9f, 0x3aa0, 0x3aa2, 0x3ab1, 0x3ab3, 0x3ab5, 0x3aba, + 0x3abf, 0x3ada, 0x3adc, 0x3ae0, 0x3ae5, 0x3af0, 0x3aee, 0x3af5, + 0x3b00, 0x3b08, 0x3b17, 0x3b34, 0x3b2d, 0x3b4c, 0x3b52, 0x3b68, + 0x3b6f, 0x3b7c, 0x3b7f, 0x3b81, 0x3b84, 0x99c3, + /* 0x22821..0x2287E */ + 0x3b96, 0x3bac, 0x1761, 0x3bc0, 0x1762, 0x3bce, 0x3bd6, 0x176c, + 0x176b, 0x3bf1, 0x3bfd, 0x1775, 0x3c03, 0x3c29, 0x3c30, 0x9a56, + 0x3c5f, 0x3c63, 0x3c67, 0x3c68, 0x3c69, 0x3c70, 0x9b2d, 0x9b45, + 0x3c7c, 0x9b78, 0x9b62, 0x3c88, 0x3c8a, 0x17c1, 0x9ba1, 0x9b9c, + 0x3ca0, 0x3ca2, 0x3ca6, 0x3ca7, 0x9b92, 0x3cad, 0x3cb5, 0x9bb7, + 0x3cc9, 0x9be0, 0x9c33, 0x3d06, 0x3d10, 0x3d2b, 0x3d1d, 0x3d20, + 0x3d24, 0x3d26, 0x3d31, 0x3d39, 0x3d42, 0x17e8, 0x3d61, 0x3d6a, + 0x17f4, 0x3d70, 0x9d1e, 0x17fd, 0x3d88, 0x1800, 0x3d92, 0x3d94, + 0x3d97, 0x3d99, 0x3db0, 0x3db2, 0x3db4, 0x9d76, 0x3db9, 0x3dd1, + 0x3dd7, 0x3dd8, 0x3de0, 0x9dfa, 0x3de4, 0x3de9, 0x182f, 0x3e00, + 0x1836, 0x3e12, 0x3e15, 0x1840, 0x3e1f, 0x3e2e, 0x3e3e, 0x3e49, + 0x185c, 0x3e56, 0x1861, 0x3e6b, 0x3e6c, 0x3e6d, + /* 0x22C21..0x22C7E */ + 0x3e6e, 0x9e7b, 0x3ea5, 0x3eaa, 0x3eac, 0x3eb9, 0x3ebf, 0x3ec6, + 0x3ed2, 0x3ed9, 0xa01e, 0x3efd, 0x3f08, 0x3f0e, 0x3f1c, 0xa0ad, + 0x3f1e, 0x3f47, 0x3f63, 0x3f72, 0x3f7e, 0x3f8f, 0x3fa2, 0x3fa4, + 0x3fb8, 0x3fc4, 0x18fa, 0x3fc7, 0x3fcb, 0x3fd2, 0x3fd3, 0x3fd4, + 0x3fe2, 0x3fee, 0x3fef, 0x3ff3, 0x3ffc, 0x1917, 0x4017, 0x4022, + 0x4024, 0x191a, 0x404c, 0x407f, 0x408a, 0x4095, 0x40a8, 0xa1f3, + 0x40b0, 0x40b1, 0x40be, 0x40c8, 0x40d9, 0x40db, 0x40ee, 0x40f2, + 0x40f5, 0x4110, 0x4112, 0x4113, 0x4119, 0x411e, 0x413a, 0x196f, + 0x4141, 0x4146, 0x4160, 0x417c, 0xa25b, 0x4192, 0x4193, 0x4197, + 0x4198, 0x41a5, 0x41a8, 0x41ad, 0xa2ab, 0x41d5, 0x41dd, 0x41df, + 0x41f5, 0xa38f, 0x4215, 0x4223, 0x4229, 0x4246, 0x424c, 0x4251, + 0x4252, 0x4261, 0x4264, 0x427b, 0x426d, 0x4273, + /* 0x22D21..0x22D7E */ + 0x4299, 0x42a6, 0x42d5, 0xa4b8, 0x42fd, 0x4303, 0x430d, 0x4310, + 0xa54f, 0xa550, 0x4332, 0x4335, 0x433b, 0x433c, 0x4341, 0x4344, + 0x434e, 0xa546, 0x4359, 0xa61d, 0xa5a6, 0x436c, 0x4384, 0x4399, + 0xa624, 0x4394, 0x43bd, 0x43f7, 0x43d4, 0x43d5, 0x43dc, 0x43e0, + 0x43eb, 0x43ec, 0x43f2, 0x4409, 0x441e, 0x4425, 0x4429, 0x442f, + 0x445a, 0x445b, 0x445d, 0x4473, 0x447d, 0x4487, 0x4491, 0x449d, + 0x449f, 0x44cb, 0x44cc, 0x44d5, 0x44d7, 0xa7e1, 0x44e4, 0x44e5, + 0x44ff, 0x4504, 0x1a6e, 0x450f, 0x4514, 0x4516, 0x1a73, 0x451e, + 0x4532, 0x4544, 0x4554, 0x456b, 0x457a, 0x4581, 0x4584, 0x4585, + 0x458a, 0x45b2, 0x45b5, 0x45b8, 0x45bf, 0x45c2, 0x45c9, 0x45d4, + 0x1ad6, 0x45f2, 0x45f9, 0x45fc, 0x4604, 0x4608, 0x4621, 0x462a, + 0x4645, 0x4651, 0x464e, 0x1aea, 0xa8c3, 0x4657, + /* 0x22E21..0x22E7E */ + 0x465b, 0x4663, 0xa8f5, 0xa8b6, 0x466a, 0x466b, 0x466c, 0x466d, + 0x467b, 0x4680, 0x4690, 0x4692, 0x4699, 0x1b0e, 0x46ad, 0x46b1, + 0x46b5, 0x1b1a, 0x46bf, 0x1b1c, 0x46ec, 0x1ad7, 0x4701, 0x4705, + 0x4712, 0xa972, 0x4719, 0xa9d3, 0xa9d2, 0x474c, 0x474d, 0x4754, + 0x475d, 0xa9d0, 0xa9e4, 0xa9d5, 0x4774, 0x4776, 0xa9da, 0x4792, + 0xa9df, 0x6363, 0x4810, 0x47b0, 0x47b2, 0x47c3, 0x47c8, 0x47d2, + 0x47d9, 0x47db, 0x47f0, 0x47f7, 0xaa4a, 0xaa51, 0xaa4b, 0x4818, + 0x481f, 0x482d, 0xaa65, 0x4833, 0x483b, 0x483e, 0x4844, 0x4845, + 0x4849, 0x484c, 0x4855, 0x4857, 0x1b77, 0x486b, 0x486e, 0x487a, + 0x487c, 0x4882, 0x4890, 0x4896, 0x1b6d, 0x4898, 0x4899, 0x489a, + 0x489c, 0x48aa, 0x48ab, 0x48b4, 0x48bb, 0x48fb, 0xaae4, 0xab5a, + 0x8113, 0x48c3, 0x48c5, 0x48cc, 0x48cf, 0x48d6, + /* 0x22F21..0x22F7E */ + 0x48d9, 0x48e4, 0x48e5, 0x48ec, 0x48f7, 0x4903, 0x4907, 0x1b87, + 0x1b88, 0xab94, 0x493b, 0x1b8d, 0x4946, 0x4969, 0x496c, 0x4972, + 0x497a, 0x497f, 0x4992, 0x1ba4, 0x4996, 0x4998, 0x49a6, 0x49b0, + 0x49b7, 0x49ba, 0x49bc, 0x49c0, 0x49d1, 0x49d6, 0xac39, 0xac47, + 0x4a30, 0xac38, 0xac3a, 0x49e3, 0x49ee, 0x49ef, 0x49f3, 0x1bcd, + 0x49f4, 0x49fe, 0x4a11, 0x4a1a, 0x4a1d, 0xad1c, 0x4a32, 0x4a33, + 0x4a34, 0x4a3f, 0x4a46, 0x4a49, 0x4a7a, 0x4a4e, 0x4a52, 0x4a64, + 0xad0c, 0x4a7e, 0x4a83, 0x4a8b, 0x1bf0, 0x4a91, 0x4a9f, 0x4aa1, + 0xad64, 0x4aab, 0x4abd, 0x4ac6, 0x4ad4, 0x4ad0, 0x4adc, 0x4add, + 0xadff, 0xade7, 0x4aec, 0x4af1, 0x4af2, 0x4af3, 0x4afd, 0xae24, + 0x4b0b, 0x4b0f, 0x4b10, 0x4b11, 0xae3d, 0x4b17, 0x1c26, 0x4b2f, + 0x4b4a, 0x4b58, 0x4b6c, 0x4b75, 0x4b7a, 0x4b81, + /* 0x26E21..0x26E7E */ + 0x4b9b, 0x4bae, 0xaf98, 0x4bbd, 0x4bbe, 0x4bc7, 0x4bc8, 0x4bc9, + 0x4bda, 0x4be6, 0x4be7, 0x4bee, 0x4bf1, 0x4c02, 0x4c0a, 0x4c0e, + 0x4c35, 0x4c36, 0x4c3a, 0xb07f, 0x4c3f, 0x4c4d, 0x4c5b, 0x4c6d, + 0x4c84, 0x4c89, 0x1cc3, 0x4c94, 0x4c95, 0x4c97, 0x4cad, 0x4cc2, + 0x4cd0, 0x1cd2, 0x4cd6, 0x4cda, 0x4cdc, 0x4ce9, 0x4cec, 0x4ced, + 0xb100, 0x4d00, 0x4d0a, 0x4d24, 0x4d26, 0x4d27, 0x4c67, 0x4d2f, + 0x4d3c, 0x4d5b, 0x4d5e, 0x4d60, 0x4d70, 0x4d80, 0x4d81, 0x4d8a, + 0x4d8d, 0x4d91, 0x4d98, 0xb140, 0x4e17, 0xb1fa, 0xb1f9, 0xb1d3, + 0x4dab, 0x4dae, 0x4db4, 0x4dc2, 0x4d34, 0x4dc8, 0x4dce, 0x4dcf, + 0x4dd0, 0x4ddf, 0x4de9, 0x4df6, 0x4e36, 0x4e1e, 0x4e22, 0x4e27, + 0x1d11, 0x4e32, 0x4e3c, 0x4e48, 0x4e49, 0x4e4b, 0x4e4c, 0x4e4f, + 0x4e51, 0x4e53, 0x4e54, 0x4e57, 0x4e63, 0x1d1e, + /* 0x26F21..0x26F7E */ + 0x4e93, 0x4ea7, 0x4eb4, 0x4ebf, 0x4ec3, 0x4eca, 0x4ed9, 0x4f35, + 0x4eeb, 0x4ef9, 0x4efb, 0x4f0a, 0x4f0c, 0x4f18, 0x4f25, 0x4f36, + 0x4f3c, 0xb27e, 0x4f52, 0x4f57, 0x4f5a, 0x4f60, 0x4f68, 0x4f98, + 0x4f7d, 0x4f90, 0x4f96, 0x4fbe, 0x4f9f, 0x4fa5, 0x4faf, 0x1d64, + 0x4fb5, 0x4fc8, 0x4fc9, 0x4fda, 0x4fde, 0x4fe9, 0xb396, 0x4ffc, + 0x5000, 0x5007, 0x500a, 0x5023, 0xb403, 0x5039, 0x503a, 0x503c, + 0x5043, 0x5047, 0x504b, 0x1d9a, 0x5054, 0x5065, 0x5069, 0x506c, + 0x506e, 0x5076, 0x507e, 0x5081, 0x5086, 0x5095, 0x5097, 0x50bb, + 0xb4c6, 0x509f, 0x50b1, 0xb4fe, 0x50ec, 0x50ca, 0x50d1, 0x50d3, + 0x50dc, 0x5103, 0x5104, 0x5106, 0x5107, 0x5108, 0x510c, 0x1dc0, + 0x512f, 0x5131, 0x5150, 0x514a, 0x5153, 0x515e, 0x1dd4, 0x5196, + 0x5180, 0x519b, 0x51a0, 0x51a2, 0x51ae, 0x51af, + /* 0x27021..0x2707E */ + 0x51b3, 0xb5bc, 0x51cb, 0x51d3, 0x51d9, 0x51dc, 0x5207, 0x1e05, + 0x8149, 0x522b, 0x5234, 0x5238, 0x5239, 0x2e2c, 0x5242, 0x5253, + 0x5257, 0x5263, 0xb629, 0x526e, 0x526f, 0x5278, 0x527f, 0x528e, + 0xb6a5, 0x52ad, 0x52ae, 0x52b0, 0x52b1, 0x52c1, 0x1e60, 0x52cc, + 0x1e66, 0x1e68, 0x52f3, 0x52fa, 0x5307, 0x5312, 0x5318, 0x5319, + 0x1e83, 0x5339, 0x532c, 0x5331, 0x5333, 0x533d, 0x5352, 0x1e94, + 0x536b, 0x536c, 0xb896, 0x536e, 0x536f, 0x5371, 0x5377, 0x5381, + 0x5385, 0x538a, 0x5394, 0x5398, 0x539c, 0x539e, 0x53a5, 0x53a8, + 0x53b5, 0x53b7, 0x53b9, 0x53bc, 0x53bf, 0x53c5, 0x53cb, 0x53e1, + 0x53e7, 0x53f9, 0x5413, 0x53fa, 0x5401, 0x5424, 0x5431, 0x5439, + 0x5453, 0x5440, 0x5443, 0x544d, 0x5452, 0x545d, 0x5471, 0x5481, + 0x5485, 0x5488, 0xb94d, 0x5492, 0x5497, 0x5499, + /* 0x27121..0x2717E */ + 0x54a0, 0x54a1, 0x54a5, 0x54aa, 0x54ab, 0x54b9, 0x54bb, 0x54ba, + 0x54d6, 0x54d8, 0x54de, 0x54ef, 0x54eb, 0xba56, 0x54fa, 0xba6f, + 0x5520, 0x5524, 0x552a, 0x1f57, 0xbb16, 0x553d, 0x553e, 0x5540, + 0x5548, 0x554e, 0x5550, 0x5552, 0x556c, 0x5572, 0x5571, 0x557a, + 0x557d, 0x557e, 0x5581, 0xbc14, 0x558c, 0x1f75, 0x55a2, 0x1f77, + 0x55b0, 0x55b7, 0x55bf, 0x55c0, 0x55c6, 0x55cf, 0x55d3, 0x55dd, + 0x55df, 0x55e0, 0x55e7, 0x55ec, 0x55ee, 0x55f1, 0x55f9, 0x5603, + 0x5618, 0x5607, 0x560f, 0x1fae, 0xbd0e, 0x5613, 0x561b, 0x561c, + 0xbd37, 0x5625, 0x5628, 0x563c, 0x5633, 0xbd6a, 0x1fc9, 0x5641, + 0xbd8b, 0x5649, 0x5655, 0x1fd7, 0x566e, 0x5695, 0x569c, 0x56a1, + 0x56a0, 0x56a7, 0x56a8, 0x56af, 0xbe4a, 0x56c9, 0xbe55, 0x56e8, + 0x56ec, 0xbf22, 0x5717, 0x571a, 0x572d, 0x5735, + /* 0x27221..0x2727E */ + 0xbfa9, 0x2039, 0xbfe5, 0xbfcd, 0x5758, 0x5760, 0x576a, 0xc01e, + 0x5772, 0x577c, 0x577d, 0xc04c, 0x2058, 0x579a, 0x579f, 0x57a2, + 0x57a4, 0x57a9, 0x57de, 0x57df, 0x57e4, 0x57e6, 0x57ea, 0x57ec, + 0x2093, 0x57f0, 0x57f4, 0x57fb, 0xc12e, 0x5805, 0x5806, 0x5809, + 0x580d, 0x5819, 0x5821, 0x582c, 0x5847, 0x5864, 0x586a, 0xc1d9, + 0x588a, 0x5894, 0x58a4, 0x589d, 0x589e, 0x589f, 0x58bb, 0x58c8, + 0x58cc, 0x58ce, 0x58d5, 0x58e0, 0x58e1, 0x58e6, 0x58f9, 0x58fa, + 0x58fb, 0x58fe, 0xc2a7, 0x5910, 0x591b, 0x5930, 0x5925, 0x593b, + 0x594a, 0x5958, 0x595b, 0x2105, 0x5967, 0x5972, 0x5994, 0x5995, + 0x5996, 0x599b, 0x59a1, 0x59a9, 0x59b4, 0x59bb, 0x59c2, 0x59c7, + 0x59cc, 0x59cd, 0x59d6, 0x2148, 0xc3a9, 0xc3b4, 0x214f, 0x5a0a, + 0x5a11, 0x5a15, 0x5a1b, 0x5a1e, 0x2163, 0x5a2d, + /* 0x27321..0x2737E */ + 0x5a38, 0x5a47, 0x5a4c, 0x5a56, 0x5a59, 0x5a5c, 0x5a5f, 0x5a60, + 0x5a67, 0x5a6a, 0x5a75, 0x5a78, 0x5a82, 0x5a8a, 0x5a90, 0x5aa3, + 0x5aac, 0xc4d4, 0x21b4, 0x5ab9, 0x5abc, 0x5abe, 0x21bf, 0x5acc, + 0x5ad1, 0x5ae7, 0x5ae8, 0x5af4, 0xc5e4, 0xc5e3, 0x5b07, 0xc5f1, + 0x5b3d, 0x5b27, 0x5b2a, 0x5b2e, 0x5b2f, 0x5b31, 0x21e6, 0x21f3, + 0x5b7f, 0x5b41, 0x21ee, 0x5b55, 0x5b79, 0x5b64, 0x5b66, 0x5b69, + 0x5b73, 0xc632, 0x2207, 0x5b90, 0x5b91, 0x5b9b, 0x220e, 0x5baf, + 0x5bb5, 0x5bbc, 0x5bc5, 0x5bca, 0xc6cb, 0xc6e4, 0x5bd4, 0x5bd6, + 0x5bda, 0x5bea, 0x5bf0, 0x5c03, 0x5c0b, 0x5c0e, 0x5c0f, 0x5c26, + 0x5c45, 0x5c4a, 0x5c51, 0x5c57, 0x5c5e, 0x5c61, 0x5c69, 0x5c6e, + 0x5c6f, 0x5c70, 0xc82e, 0xc856, 0xc865, 0x5ca6, 0xc862, 0x5cb6, + 0x5cb7, 0x5cbf, 0xc8d8, 0x5cc4, 0xc8c2, 0x5cc8, + /* 0x27421..0x2747E */ + 0x5ccd, 0xc8e8, 0x5cd7, 0xc923, 0x5ce6, 0x5ceb, 0xc95c, 0x5cf5, + 0x5d03, 0x5d09, 0x22c6, 0x5d12, 0x5d1e, 0xc9e0, 0xc9d4, 0x5d3d, + 0x5d3e, 0x5d40, 0x5d47, 0xca0c, 0xc9fb, 0x22d6, 0x5d59, 0x5d5a, + 0x5d6a, 0x5d70, 0x22dd, 0x5d7f, 0xca17, 0x5d86, 0x5d88, 0x5d8c, + 0x5d97, 0xca60, 0x5d9d, 0x5da7, 0x5daa, 0x5db6, 0x5db7, 0x5dc0, + 0x5dd7, 0x5dd9, 0x5de6, 0x5df1, 0x5df9, 0x2302, 0xcaed, 0x8158, + 0x5e10, 0x5e17, 0x5e1d, 0x5e20, 0x5e27, 0x5e2c, 0x5e45, 0x5e73, + 0x5e75, 0x5e7e, 0x5e86, 0x5e87, 0x232b, 0x5e91, 0x5e98, 0x5e9a, + 0x2343, 0x5f3c, 0x5f3b, 0x5f3e, 0x5f43, 0x5f44, 0x5f4f, 0x14c1, + 0xcb70, 0x5f52, 0xcb86, 0x5f61, 0x5f63, 0x5f64, 0x5f6d, 0x5f7d, + 0x5f7e, 0xcc4c, 0x5f90, 0x317b, 0xb10e, 0x5f96, 0x5f9c, 0x5fad, + 0xcd02, 0x5fc3, 0x5fcf, 0x5fe3, 0x5fe5, 0x5fef, + /* 0x27521..0x2757E */ + 0x5ff2, 0x6002, 0x600a, 0x6008, 0x600e, 0x6011, 0x6016, 0x6024, + 0x602c, 0x6030, 0x6043, 0x6066, 0x6071, 0x6075, 0x607b, 0x6099, + 0x609c, 0x60a4, 0x60a7, 0x60b8, 0xce7e, 0x60c5, 0x60d5, 0x60d8, + 0x60e6, 0xceb0, 0x610d, 0x60f5, 0x60fb, 0x23ee, 0x6135, 0x6116, + 0x611e, 0x23f0, 0x6124, 0x6127, 0x612c, 0xcf1d, 0x613d, 0x2408, + 0x6169, 0x2417, 0x6181, 0x241c, 0x6184, 0x6185, 0x2422, 0x6198, + 0x61b2, 0x61c1, 0x61c3, 0x61d6, 0x61db, 0xd0dd, 0x61e4, 0xd0ea, + 0x61ec, 0xd151, 0x61fd, 0x61ff, 0xd16f, 0x6204, 0xd1dd, 0x6219, + 0x6221, 0x6222, 0xd21e, 0x6232, 0x6234, 0x623c, 0x6246, 0x6249, + 0x6245, 0xd258, 0x624b, 0x2476, 0x624f, 0x247a, 0x6257, 0xd28c, + 0x625c, 0x6263, 0xd2b7, 0x815d, 0x815e, 0x6279, 0x2491, 0x627d, + 0x627f, 0x6283, 0x628a, 0x6293, 0x62a7, 0x62a8, + /* 0x27621..0x2767E */ + 0x62b2, 0x62b4, 0x62ba, 0x62bc, 0x62e2, 0x62e8, 0x62f7, 0x6307, + 0x6308, 0x630c, 0x6354, 0x631b, 0x631d, 0x6330, 0x633c, 0x6344, + 0x6357, 0x24be, 0x637f, 0x24d4, 0x24b3, 0x638d, 0x6394, 0x6395, + 0x639b, 0x639d, 0x63c9, 0x63d0, 0x63d4, 0x63dd, 0x63e5, 0x63f9, + 0x640f, 0x6411, 0x6415, 0xd373, 0x6417, 0x6439, 0x644a, 0x644f, + 0x6451, 0x6452, 0x6459, 0x645a, 0x645c, 0xd3dd, 0x6465, 0x6476, + 0x6478, 0x647c, 0x6481, 0x250d, 0x64dc, 0x6497, 0x64a6, 0x64be, + 0x2508, 0x64ce, 0x64cf, 0x64d3, 0xd465, 0x64e7, 0x64ea, 0x64ef, + 0x64f0, 0x64f1, 0x64fa, 0x64fd, 0x650c, 0x651b, 0x6524, 0x6525, + 0x652b, 0x6534, 0x654f, 0x656f, 0x2525, 0x2543, 0x653e, 0x6551, + 0x6553, 0x655e, 0x6561, 0x6562, 0xd594, 0x657b, 0x657d, 0x657f, + 0x6581, 0x6586, 0x6593, 0x659d, 0x659f, 0xd5f8, + /* 0x27721..0x2777E */ + 0xd5f6, 0xd5f7, 0x65b7, 0x65bc, 0x65c7, 0x65ca, 0x65d8, 0x65d9, + 0x65df, 0x65e1, 0x65e6, 0x65f6, 0x6600, 0x6611, 0x661e, 0x6621, + 0x6624, 0x6627, 0xd68d, 0x6639, 0x663c, 0xd6b9, 0x6640, 0x8120, + 0x6653, 0x6656, 0x666f, 0x6677, 0x667a, 0x6687, 0x6689, 0x668d, + 0x6691, 0x669c, 0x669d, 0x66a8, 0x8121, 0x66b1, 0x66b3, 0x66c1, + 0x66c3, 0x66d1, 0x66d5, 0x66d7, 0x66e3, 0x66e6, 0x25b8, 0x6705, + 0x6707, 0x670e, 0x6710, 0x6713, 0x6719, 0x671f, 0x6721, 0x6723, + 0x6731, 0x673a, 0x673e, 0x6740, 0x6743, 0x6751, 0x6758, 0x6764, + 0x6765, 0x6772, 0x677c, 0xd75b, 0xd75a, 0x67a7, 0x6789, 0x678b, + 0x6793, 0x67a0, 0xd77e, 0x25e5, 0x67be, 0xd790, 0x67c1, 0x67ce, + 0x67f5, 0x67df, 0xd7c9, 0x67e3, 0x67e5, 0x67e6, 0x67ea, 0x67eb, + 0x67ed, 0x6801, 0x6803, 0x680b, 0x6813, 0x6828, + /* 0x27821..0x2787E */ + 0x682e, 0x6832, 0x683c, 0x260f, 0x684a, 0x6858, 0x685f, 0x6864, + 0xd815, 0xd814, 0x6869, 0xd831, 0x686f, 0x68a0, 0x68bc, 0x68bd, + 0x68be, 0x68c0, 0x68d2, 0xd893, 0x68d1, 0x68d3, 0x68db, 0x68f0, + 0x68f1, 0x2641, 0x6901, 0xd90e, 0x6937, 0xd923, 0x6942, 0x6945, + 0x6949, 0xd952, 0x2665, 0x6962, 0x6980, 0x6989, 0x6990, 0x699f, + 0x69b0, 0x69b7, 0x69d6, 0x69d8, 0x69eb, 0x26a1, 0x69f1, 0x69f3, + 0x69fd, 0x69ff, 0x26af, 0x6a11, 0x6a14, 0xda85, 0x6a21, 0x6a35, + 0x6a3e, 0x6a45, 0x6a4d, 0x6a58, 0x6aae, 0x6a90, 0x6ab7, 0x6abe, + 0x6ad7, 0x6afc, 0xdb84, 0x6b0a, 0x6b05, 0x6b0d, 0x6b1c, 0x6b1f, + 0x6b2d, 0x6b43, 0x270c, 0x6b51, 0x6b5e, 0x6b76, 0x6b7f, 0x6b81, + 0x6b8b, 0x6b94, 0x6b95, 0x6b9c, 0x6b9e, 0x6c39, 0xdcb3, 0x6c3d, + 0xdcbe, 0xdcc7, 0x6c45, 0x6c47, 0x6c4f, 0x6c54, + /* 0x27921..0x2797E */ + 0x6c57, 0x6c69, 0x6c6d, 0x6c73, 0xddb8, 0x6c93, 0x6c92, 0x6c99, + 0x2764, 0x6c9b, 0x6ca4, 0x6cd6, 0x6cd5, 0x6cd9, 0xde20, 0x6cf0, + 0x6cf1, 0xde90, 0x6d09, 0x6d0e, 0x6d6c, 0x6d84, 0x6d95, 0x6da6, + 0xdfb7, 0x6dc6, 0x6dc8, 0x6dd9, 0x6dec, 0x6e0c, 0x27fd, 0x6dfd, + 0x6e06, 0xe08a, 0x6e14, 0x6e16, 0x6e21, 0x6e22, 0x6e27, 0xe0bb, + 0x2816, 0x6e36, 0x6e39, 0x6e4b, 0x6e54, 0x6e62, 0x6e6c, 0x6e6d, + 0x6e6f, 0x6e98, 0x6e9e, 0x6eae, 0x6eb3, 0x6eb5, 0x6eb6, 0x6ebb, + 0xe182, 0x6ed1, 0x6ed4, 0x284e, 0x6ef9, 0xe1f3, 0x6f00, 0x6f08, + 0x6f17, 0x6f2b, 0x6f40, 0x6f4a, 0x6f58, 0xe28c, 0x6fa4, 0x6fb4, + 0x8166, 0x6fb6, 0xe2d5, 0x6fc1, 0x6fc6, 0x8124, 0x6fca, 0x6fcd, + 0x6fd3, 0x6fd5, 0x6fe0, 0x6ff1, 0x6ff5, 0x6ffb, 0x7002, 0x700c, + 0x7037, 0xe36b, 0x7043, 0x7044, 0x705d, 0xe3c8, + /* 0x27A21..0x27A7E */ + 0xe3c9, 0x7085, 0x708c, 0x7090, 0x761d, 0x70a1, 0x28b5, 0x70b0, + 0x70b6, 0x70c3, 0x70c8, 0xe4d7, 0x70dc, 0x70df, 0xe4fa, 0x70f6, + 0x70f2, 0x7100, 0x70eb, 0x70fe, 0x70ff, 0x7104, 0x7106, 0x7118, + 0x711c, 0x711e, 0x7137, 0x7139, 0x713a, 0x7146, 0x7147, 0x7157, + 0x7159, 0x7161, 0x7164, 0x7174, 0x7179, 0x7185, 0x718e, 0x71a8, + 0x71ae, 0x71b3, 0x71b6, 0x71c3, 0x71c4, 0x71da, 0xe549, 0xe546, + 0x71ec, 0x71ee, 0x7201, 0x720a, 0x7216, 0x7217, 0xe56b, 0x7233, + 0x7242, 0x7247, 0x724a, 0x724e, 0x7251, 0x7256, 0x7259, 0x7260, + 0x7261, 0x7265, 0x7267, 0x7268, 0xe587, 0xe588, 0x727c, 0x727d, + 0x727f, 0x7289, 0x728d, 0x7297, 0x7299, 0x729f, 0x72a7, 0x72ab, + 0xe5ba, 0xe5bb, 0x72b2, 0x72bf, 0x72c0, 0x72c6, 0x72ce, 0x72d0, + 0x72d7, 0x72d9, 0x72e5, 0x72e7, 0x7311, 0xe61e, + /* 0x27B21..0x27B7E */ + 0xe629, 0x72f7, 0x72f9, 0x72fb, 0x7302, 0x730d, 0x7315, 0x731d, + 0x731e, 0x7327, 0x7329, 0xe671, 0xe643, 0x7347, 0x7351, 0x7357, + 0x735a, 0x736b, 0x7371, 0x7373, 0x73a1, 0xe699, 0xe6cd, 0x7388, + 0x738b, 0x738f, 0x739e, 0x73f5, 0xe6e4, 0xe6dd, 0x73f1, 0x73c1, + 0x73c7, 0x73dc, 0x73e2, 0x73e7, 0x7409, 0x740f, 0x7416, 0x7417, + 0x73fb, 0x7432, 0x7434, 0x743b, 0x7445, 0xe7c1, 0xe7ef, 0x746d, + 0x746f, 0x7578, 0x7579, 0x7586, 0x758c, 0x758d, 0xe810, 0x75ab, + 0x75b4, 0xe871, 0x75c8, 0xe8fb, 0xe91f, 0x762c, 0x7633, 0x7634, + 0xe936, 0x763c, 0x7641, 0x7661, 0xe989, 0x7682, 0xe9eb, 0x769a, + 0xea32, 0x29e7, 0x76a9, 0x76af, 0x76b3, 0x76ba, 0x76bd, 0x29fa, + 0xeaf8, 0x76d8, 0x76da, 0x76dd, 0x2a04, 0x7714, 0x7723, 0x2a29, + 0x7736, 0x7741, 0x7747, 0x7755, 0x7757, 0x775b, + /* 0x27C21..0x27C7E */ + 0x776a, 0xeba0, 0xebb1, 0x7796, 0x779a, 0x779e, 0x77a2, 0x77b1, + 0x77b2, 0x77be, 0x77cc, 0x77d1, 0x77d4, 0x77d8, 0x77d9, 0x77e1, + 0x77f1, 0x7804, 0x780d, 0x780e, 0x7814, 0x7816, 0x2abc, 0xec90, + 0x7823, 0x7832, 0x7833, 0x7825, 0x7847, 0x7866, 0x78ab, 0x78ad, + 0x78b0, 0xedcf, 0x78b7, 0x78b8, 0x78bb, 0x78bc, 0x78bf, 0x78c2, + 0x78c7, 0x78cb, 0x78e0, 0xee7f, 0x78e1, 0x78e3, 0x78e5, 0x78ea, + 0x78f0, 0x78f1, 0x78f3, 0x7908, 0x2b3b, 0xeef0, 0x7916, 0x7917, + 0xef19, 0x791a, 0x791b, 0x791c, 0xef50, 0x7931, 0x7932, 0x7933, + 0x793a, 0x793b, 0x793c, 0x7940, 0x7941, 0x7946, 0x794d, 0x794e, + 0x795c, 0x795f, 0x7960, 0x79a3, 0x79a6, 0x79b9, 0x79bd, 0x79bf, + 0x79c3, 0x79c9, 0x79d4, 0x79d9, 0x79de, 0xf0c6, 0x79f0, 0x79f9, + 0x79fc, 0x7a0a, 0x7a11, 0x7a16, 0x7a1a, 0x7a20, + /* 0x27D21..0x27D7E */ + 0x7a31, 0x7a36, 0x7a44, 0x7a4c, 0x7a58, 0x2bc2, 0x7aaf, 0x2bca, + 0x7ab7, 0x2bd2, 0x7ab9, 0xf172, 0x7ac6, 0x7ad0, 0x7ad2, 0x7ad5, + 0x2be8, 0x7adc, 0x7ae0, 0x7ae5, 0x7ae9, 0x7b03, 0x7b0c, 0x7b10, + 0x7b12, 0x7b16, 0x7b1c, 0x7b2b, 0x7b33, 0x7b3d, 0x2c20, 0x7b4b, + 0x7b63, 0x7b65, 0x7b6b, 0x7b6c, 0x7b73, 0x7b76, 0x7b77, 0x7ba6, + 0x7bac, 0x7bb1, 0xf2db, 0xf33d, 0x7bb2, 0x7bb8, 0x7bbe, 0x7bc7, + 0x7bf3, 0x7bd8, 0x7bdd, 0x7be7, 0x7bea, 0x7beb, 0x7bef, 0x7bee, + 0xf315, 0x7bfa, 0xf38a, 0x7bf7, 0xf349, 0x7c16, 0x7c18, 0x7c19, + 0x7c1a, 0x7c1d, 0x7c22, 0x7c27, 0x7c29, 0x7c2a, 0xf3c4, 0x7c31, + 0x7c36, 0x7c37, 0x7c45, 0x7c5c, 0xf3e9, 0x7c49, 0x7c4a, 0xf3db, + 0x7c54, 0x7c58, 0x7c5b, 0x7c5d, 0x7c5f, 0x7c69, 0x7c6a, 0x7c6b, + 0x7c6d, 0x7c6e, 0x7c70, 0x7c72, 0x7c75, 0x7c7a, + /* 0x27E21..0x27E7E */ + 0x7ce6, 0x7cf2, 0x7d0b, 0x7d02, 0xf4ce, 0x7d11, 0x7d17, 0x7d18, + 0xf52f, 0x2cc4, 0xf51a, 0x7d32, 0x2cd1, 0x7d42, 0x7d4a, 0x7d5f, + 0x7d62, 0xf5f9, 0x7d69, 0x7d6b, 0xf582, 0x7d73, 0x7d76, 0x7d77, + 0x7d7e, 0x7d84, 0x7d8d, 0x7d99, 0x7da1, 0x7dbf, 0x7db5, 0x7db9, + 0x7dbd, 0x7dc3, 0x7dc7, 0x7dc9, 0x7dd6, 0x7dda, 0x7ddf, 0x7de0, + 0x7de3, 0x7df4, 0x2d07, 0x7e0a, 0x7e02, 0x7e0d, 0x7e19, 0x7e1c, + 0x7e1d, 0x7e7b, 0x9f18, 0x7e80, 0x7e85, 0x7e9b, 0x7ea8, 0xf70c, + 0x7ebd, 0xf7b7, 0x7edf, 0x7ee7, 0x7eee, 0x7eff, 0x7f02, 0x2d77, + 0x7f03, 0x7f17, 0x7f19, 0x7f2f, 0x7f37, 0x7f3a, 0x7f3d, 0x7f41, + 0x7f45, 0x7f46, 0x7f53, 0x7f55, 0x7f58, 0xf8f1, 0x7f5d, 0xf902, + 0x7f69, 0xf91a, 0x7f6d, 0x7f70, 0x7f75, 0xf9b2, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, +}; + +static const ucs4_t jisx0213_to_ucs_pagestart[] = { + 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x1e00, 0x1f00, 0x2000, + 0x2100, 0x2200, 0x2300, 0x2400, 0x2500, 0x2600, 0x2700, 0x2900, + 0x3000, 0x3100, 0x3200, 0x3300, 0x3400, 0x3500, 0x3600, 0x3700, + 0x3800, 0x3900, 0x3a00, 0x3b00, 0x3c00, 0x3d00, 0x3e00, 0x3f00, + 0x4000, 0x4100, 0x4200, 0x4300, 0x4400, 0x4500, 0x4600, 0x4700, + 0x4800, 0x4900, 0x4a00, 0x4b00, 0x4c00, 0x4d00, 0x4e00, 0x4f00, + 0x5000, 0x5100, 0x5200, 0x5300, 0x5400, 0x5500, 0x5600, 0x5700, + 0x5800, 0x5900, 0x5a00, 0x5b00, 0x5c00, 0x5d00, 0x5e00, 0x5f00, + 0x6000, 0x6100, 0x6200, 0x6300, 0x6400, 0x6500, 0x6600, 0x6700, + 0x6800, 0x6900, 0x6a00, 0x6b00, 0x6c00, 0x6d00, 0x6e00, 0x6f00, + 0x7000, 0x7100, 0x7200, 0x7300, 0x7400, 0x7500, 0x7600, 0x7700, + 0x7800, 0x7900, 0x7a00, 0x7b00, 0x7c00, 0x7d00, 0x7e00, 0x7f00, + 0x8000, 0x8100, 0x8200, 0x8300, 0x8400, 0x8500, 0x8600, 0x8700, + 0x8800, 0x8900, 0x8a00, 0x8b00, 0x8c00, 0x8d00, 0x8e00, 0x8f00, + 0x9000, 0x9100, 0x9200, 0x9300, 0x9400, 0x9500, 0x9600, 0x9700, + 0x9800, 0x9900, 0x9a00, 0x9b00, 0x9c00, 0x9d00, 0x9e00, 0x9f00, + 0xf900, 0xfa00, 0xfe00, 0xff00, 0x20000, 0x20180, 0x20300, 0x20400, + 0x20500, 0x20600, 0x20700, 0x20800, 0x20900, 0x20a00, 0x20b00, 0x20d00, + 0x20e00, 0x20f00, 0x21200, 0x21300, 0x21400, 0x21500, 0x21600, 0x21700, + 0x21800, 0x21900, 0x21c00, 0x21d00, 0x21e00, 0x21f00, 0x22100, 0x22200, + 0x22300, 0x22600, 0x22800, 0x22900, 0x22a00, 0x22b00, 0x22c00, 0x22d00, + 0x23100, 0x23300, 0x23400, 0x23500, 0x23600, 0x23700, 0x23800, 0x23a00, + 0x23c00, 0x23d00, 0x23f00, 0x24000, 0x24100, 0x24300, 0x24600, 0x24700, + 0x24800, 0x24a00, 0x24b00, 0x24c00, 0x24d00, 0x24e00, 0x25000, 0x25100, + 0x25200, 0x25400, 0x25500, 0x25700, 0x25900, 0x25a00, 0x25b80, 0x25d00, + 0x25e00, 0x25f00, 0x26000, 0x26200, 0x26300, 0x26400, 0x26600, 0x26700, + 0x26800, 0x26900, 0x26a00, 0x26c00, 0x26e00, 0x26f00, 0x27080, 0x27380, + 0x27600, 0x27700, 0x27900, 0x27a00, 0x27b00, 0x27c00, 0x27d80, 0x27f00, + 0x28000, 0x28200, 0x28380, 0x28500, 0x28600, 0x28900, 0x28a00, 0x28b00, + 0x28d00, 0x28e00, 0x28f00, 0x29200, 0x29400, 0x29500, 0x29600, 0x29700, + 0x29800, 0x29a00, 0x29d00, 0x29e00, 0x29f00, 0x2a000, 0x2a100, 0x2a380, + 0x2a500, 0x2a600, +}; + +static const short jisx0213_from_ucs_level1[2715] = { + -1, -1, 0, 1, 2, 3, 4, 5, + -1, 6, 7, 8, 9, 10, 11, 12, + 13, 14, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 15, -1, -1, -1, -1, 16, -1, -1, + 17, 18, 19, -1, 20, 21, 22, 23, + 24, 25, 26, 27, 28, -1, 29, 30, + 31, 32, -1, 33, 34, 35, 36, 37, + 38, 39, -1, -1, 40, 41, -1, -1, + -1, -1, -1, -1, 42, -1, 43, 44, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 45, 46, 47, 48, -1, -1, -1, 49, + 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, -1, 70, 71, 72, + 73, 74, -1, 75, 76, 77, -1, -1, + -1, 78, -1, 79, 80, 81, 82, 83, + 84, -1, -1, 85, 86, 87, 88, 89, + 90, 91, 92, -1, -1, 93, 94, 95, + 96, 97, 98, -1, 99, 100, 101, 102, + 103, 104, -1, 105, 106, 107, -1, 108, + 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, -1, 120, 121, -1, 122, + 123, 124, 125, -1, -1, -1, 126, 127, + 128, -1, 129, -1, 130, -1, -1, 131, + 132, -1, -1, 133, 134, 135, -1, -1, + 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, -1, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, -1, + 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, -1, -1, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, -1, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 458, 459, -1, 460, + 461, 462, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 463, -1, -1, 464, 465, -1, 466, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 467, -1, 468, -1, -1, -1, 469, -1, + 470, -1, -1, -1, 471, 472, 473, 474, + -1, 475, -1, -1, 476, -1, -1, 477, + 478, -1, -1, -1, -1, 479, -1, -1, + 480, -1, 481, -1, -1, 482, 483, -1, + -1, -1, -1, 484, 485, -1, 486, -1, + -1, -1, -1, -1, -1, 487, -1, 488, + -1, 489, 490, -1, -1, 491, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 492, 493, -1, 494, 495, 496, -1, 497, + -1, 498, -1, -1, -1, -1, -1, 499, + -1, 500, 501, -1, 502, 503, -1, -1, + -1, -1, 504, -1, -1, -1, -1, 505, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, 506, -1, -1, 507, 508, 509, 510, + 511, -1, -1, -1, 512, 513, -1, 514, + -1, -1, -1, -1, -1, 515, -1, -1, + 516, -1, -1, -1, 517, -1, 518, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 519, -1, -1, -1, -1, + -1, 520, 521, -1, -1, -1, 522, -1, + -1, -1, 523, -1, -1, 524, 525, -1, + 526, -1, -1, -1, -1, -1, -1, 527, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 528, 529, + -1, -1, -1, -1, -1, 530, -1, 531, + -1, 532, -1, 533, -1, 534, 535, 536, + 537, 538, -1, -1, 539, 540, -1, 541, + 542, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 543, -1, -1, -1, -1, -1, + -1, 544, -1, 545, 546, 547, -1, 548, + -1, -1, -1, -1, -1, 549, -1, -1, + -1, -1, 550, -1, 551, -1, -1, 552, + -1, -1, -1, -1, -1, -1, 553, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 554, -1, 555, -1, -1, -1, -1, 556, + -1, -1, 557, -1, -1, -1, -1, -1, + -1, 558, -1, -1, -1, 559, -1, -1, + 560, -1, -1, -1, 561, -1, -1, -1, + 562, 563, 564, -1, -1, -1, -1, -1, + -1, 565, -1, -1, 566, -1, 567, 568, + 569, 570, -1, -1, -1, -1, -1, -1, + 571, -1, 572, 573, 574, -1, 575, -1, + -1, -1, -1, -1, -1, 576, 577, -1, + -1, -1, -1, -1, -1, -1, -1, 578, + -1, -1, -1, 579, -1, -1, 580, -1, + -1, 581, -1, -1, -1, -1, 582, -1, + 583, 584, -1, 585, 586, 587, -1, 588, + 589, 590, -1, 591, -1, -1, -1, -1, + -1, 592, 593, -1, -1, 594, -1, -1, + 595, -1, -1, -1, -1, -1, -1, -1, + -1, 596, 597, -1, 598, -1, -1, -1, + -1, -1, -1, 599, -1, 600, -1, 601, + 602, 603, 604, 605, -1, -1, -1, -1, + 606, 607, -1, 608, -1, -1, -1, -1, + -1, 609, -1, -1, -1, -1, 610, 611, + -1, -1, -1, 612, 613, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 614, + 615, 616, -1, -1, -1, -1, -1, -1, + 617, -1, 618, -1, 619, 620, -1, -1, + -1, -1, -1, -1, -1, -1, 621, -1, + -1, -1, 622, -1, -1, -1, 623, 624, + -1, -1, 625, -1, -1, -1, 626, -1, + 627, -1, -1, -1, -1, -1, 628, -1, + -1, -1, 629, -1, -1, -1, -1, -1, + -1, 630, 631, 632, -1, -1, -1, 633, + 634, 635, -1, -1, -1, 636, -1, 637, + -1, -1, -1, 638, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 639, 640, -1, + 641, 642, 643, 644, -1, -1, -1, 645, + -1, -1, -1, -1, 646, 647, -1, 648, + 649, -1, 650, 651, 652, -1, -1, 653, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 654, -1, -1, -1, -1, -1, + -1, -1, 655, -1, -1, -1, -1, 656, + -1, 657, -1, 658, 659, 660, -1, -1, + -1, -1, -1, 661, -1, -1, -1, -1, + -1, 662, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 663, + 664, 665, 666, 667, -1, -1, -1, 668, + 669, -1, 670, 671, -1, -1, 672, -1, + -1, -1, -1, -1, -1, -1, 673, -1, + 674, -1, -1, -1, -1, -1, -1, 675, + 676, -1, 677, +}; + +static const unsigned short jisx0213_from_ucs_level2_data[] = { + /* 0x0080 */ + 0x2922, 0x2923, 0x2171, 0x2172, 0x2924, 0x2925, 0x2178, 0x212f, + 0x2926, 0x2927, 0x2928, 0x224c, 0x2929, 0x292a, 0x292b, 0x216b, + 0x215e, 0x292c, 0x292d, 0x212d, 0x2279, 0x292e, 0x292f, 0x2930, + 0x2931, 0x2932, 0x2933, 0x2934, 0x2935, 0x2936, + /* 0x00C0 */ + 0x2937, 0x2938, 0x2939, 0x293a, 0x293b, 0x293c, 0x293d, 0x293e, + 0x293f, 0x2940, 0x2941, 0x2942, 0x2943, 0x2944, 0x2945, 0x2946, + 0x2947, 0x2948, 0x2949, 0x294a, 0x294b, 0x294c, 0x294d, 0x215f, + 0x294e, 0x294f, 0x2950, 0x2951, 0x2952, 0x2953, 0x2954, 0x2955, + 0x2956, 0x2957, 0x2958, 0x2959, 0x295a, 0x295b, 0x29dc, 0x295d, + 0x295e, 0x295f, 0x2960, 0x2961, 0x2962, 0x2963, 0x2964, 0x2965, + 0x2966, 0x2967, 0x2968, 0x2969, 0x296a, 0x296b, 0x296c, 0x2160, + 0x296d, 0x296e, 0x296f, 0x2970, 0x2971, 0x2972, 0x2973, 0x2974, + /* 0x0100 */ + 0x2975, 0x297a, 0x2a3a, 0x2a49, 0x2a21, 0x2a2c, 0x2a3c, 0x2a4b, + 0x2a59, 0x2a5f, 0x2a3d, 0x2a4c, 0x2a40, 0x2a4f, 0x2a50, 0x2978, + 0x297d, 0x2a3e, 0x2a4d, 0x2a3f, 0x2a4e, 0x2a5a, 0x2a60, 0x2a5b, + 0x2a61, 0x2a7d, 0x2976, 0x297b, 0x2a5c, 0x2a62, 0x2a3b, 0x2a4a, + 0x2a24, 0x2a2f, + /* 0x0140 */ + 0x2a23, 0x2a2e, 0x2a41, 0x2a51, 0x2a42, 0x2a52, 0x2a7a, 0x2979, + 0x297e, 0x2a43, 0x2a53, 0x2b2b, 0x2b2a, 0x2a39, 0x2a48, 0x2a44, + 0x2a54, 0x2a25, 0x2a30, 0x2a5d, 0x2a63, 0x2a27, 0x2a33, 0x2a26, + 0x2a32, 0x2a47, 0x2a57, 0x2a28, 0x2a34, 0x2977, 0x297c, 0x2a5e, + 0x2a64, 0x2a45, 0x2a55, 0x2a46, 0x2a56, 0x2a29, 0x2a35, 0x2a2b, + 0x2a38, 0x2a2a, 0x2a37, + /* 0x0180 */ + 0x2b29, + /* 0x01C0 */ + 0x2b24, 0x286f, 0x2870, 0x2871, 0x2876, 0x2877, 0x2878, 0x2879, + 0x287a, 0x287b, 0x287c, 0x2874, 0x2875, 0x2b45, + /* 0x0240 */ + 0x2b33, 0x2b39, 0x2b3a, 0x2b25, 0x2bb8, 0x2b3f, 0x2a6e, 0x2b26, + 0x2b2e, 0x2bb0, 0x2bc3, 0x2b31, 0x2b32, 0x2a75, 0x2b28, 0x2a79, + 0x2b36, 0x2b3c, 0x2b22, 0x2b42, 0x2b2c, 0x2a6a, 0x2a74, 0x2a6b, + 0x2b34, 0x2a7b, 0x2a65, 0x2a76, 0x2a6f, 0x2b2f, 0x2a6c, 0x2b41, + 0x2a73, 0x2a70, 0x2a67, + /* 0x0280 */ + 0x2a7c, 0x2a71, 0x2a68, 0x2b27, 0x2a6d, 0x2b2d, 0x2b35, 0x2a66, + 0x2bb7, 0x2b3b, 0x2a78, 0x2a72, 0x2b40, 0x2a69, 0x2b21, 0x2a7e, + 0x2b23, 0x2a77, 0x2b3e, 0x2b3d, + /* 0x02C0 */ + 0x2a31, 0x2b53, 0x2b54, 0x2b55, 0x2b56, 0x2a22, 0x2a58, 0x2a2d, + 0x2a36, 0x2b71, 0x2be0, 0x2b61, 0x2b62, 0x2b63, 0x2be4, + /* 0x0300 */ + 0x2b5c, 0x2b5a, 0x2b5f, 0x2b7d, 0x2b5b, 0x2b57, 0x2b6d, 0x2b59, + 0x2b5e, 0x2b5d, 0x2b78, 0x2b79, 0x2b7e, 0x2b6a, 0x2b76, 0x2b77, + 0x2b6b, 0x2b6c, 0x2b72, 0x2b67, 0x2b6f, 0x2b7a, 0x2b68, 0x2b70, + 0x2b73, 0x2b75, 0x2b69, 0x2b7b, 0x2b7c, 0x2b74, 0x2b6e, + /* 0x0340 */ + 0x2b52, + /* 0x0380 */ + 0x2621, 0x2622, 0x2623, 0x2624, 0x2625, 0x2626, 0x2627, 0x2628, + 0x2629, 0x262a, 0x262b, 0x262c, 0x262d, 0x262e, 0x262f, 0x2630, + 0x2631, 0x2632, 0x2633, 0x2634, 0x2635, 0x2636, 0x2637, 0x2638, + 0x2641, 0x2642, 0x2643, 0x2644, 0x2645, 0x2646, 0x2647, 0x2648, + 0x2649, 0x264a, 0x264b, 0x264c, 0x264d, 0x264e, 0x264f, + /* 0x03C0 */ + 0x2650, 0x2651, 0x2659, 0x2652, 0x2653, 0x2654, 0x2655, 0x2656, + 0x2657, 0x2658, + /* 0x0400 */ + 0x2727, 0x2721, 0x2722, 0x2723, 0x2724, 0x2725, 0x2726, 0x2728, + 0x2729, 0x272a, 0x272b, 0x272c, 0x272d, 0x272e, 0x272f, 0x2730, + 0x2731, 0x2732, 0x2733, 0x2734, 0x2735, 0x2736, 0x2737, 0x2738, + 0x2739, 0x273a, 0x273b, 0x273c, 0x273d, 0x273e, 0x273f, 0x2740, + 0x2741, 0x2751, 0x2752, 0x2753, 0x2754, 0x2755, 0x2756, 0x2758, + 0x2759, 0x275a, 0x275b, 0x275c, 0x275d, 0x275e, 0x275f, 0x2760, + 0x2761, + /* 0x0440 */ + 0x2762, 0x2763, 0x2764, 0x2765, 0x2766, 0x2767, 0x2768, 0x2769, + 0x276a, 0x276b, 0x276c, 0x276d, 0x276e, 0x276f, 0x2770, 0x2771, + 0x2757, + /* 0x1E00 */ + 0x2872, 0x2873, + /* 0x1F40 */ + 0x2b46, 0x2b47, 0x2b50, 0x2b51, + /* 0x2000 */ + 0x213e, 0x237c, 0x213d, 0x2142, 0x2146, 0x2147, 0x2148, 0x2149, + 0x2277, 0x2278, 0x2340, 0x2145, 0x2144, 0x2273, 0x216c, 0x216d, + 0x2228, 0x286b, 0x2b58, + /* 0x2040 */ + 0x2c7e, 0x286c, 0x286d, 0x286e, 0x2c7d, + /* 0x2080 */ + 0x2921, + /* 0x2100 */ + 0x216e, 0x235d, 0x235f, 0x2d62, 0x2d64, 0x2360, 0x2272, 0x235c, + /* 0x2140 */ + 0x2778, 0x2779, 0x277a, 0x2d35, 0x2d36, 0x2d37, 0x2d38, 0x2d39, + 0x2d3a, 0x2d3b, 0x2d3c, 0x2d3d, 0x2d3e, 0x2d3f, 0x2d57, 0x2c35, + 0x2c36, 0x2c37, 0x2c38, 0x2c39, 0x2c3a, 0x2c3b, 0x2c3c, 0x2c3d, + 0x2c3e, 0x2c3f, 0x2c40, + /* 0x2180 */ + 0x222b, 0x222c, 0x222a, 0x222d, 0x2271, 0x2327, 0x2325, 0x2326, + 0x2328, + /* 0x21C0 */ + 0x2329, 0x224d, 0x224e, 0x232b, 0x232c, 0x232a, 0x232d, + /* 0x2200 */ + 0x224f, 0x225f, 0x2250, 0x2247, 0x2260, 0x223a, 0x2246, 0x223b, + 0x215d, 0x235b, 0x2265, 0x2267, 0x2167, 0x2d78, 0x225c, 0x2254, + 0x2255, 0x224a, 0x224b, 0x2241, 0x2240, 0x2269, 0x226a, 0x2d73, + 0x2168, 0x2268, 0x2266, + /* 0x2240 */ + 0x226c, 0x226d, 0x226e, 0x2262, 0x2162, 0x2261, 0x226b, 0x2165, + 0x2166, 0x2263, 0x2264, 0x226f, 0x2270, + /* 0x2280 */ + 0x223e, 0x223f, 0x2242, 0x2243, 0x223c, 0x223d, 0x2244, 0x2245, + 0x2251, 0x2252, 0x2253, 0x225d, 0x2d79, + /* 0x22C0 */ + 0x2776, 0x2777, + /* 0x2300 */ + 0x2248, 0x2249, 0x225e, 0x277c, + /* 0x2380 */ + 0x2742, 0x2743, + /* 0x23C0 */ + 0x2744, 0x2745, 0x2746, 0x2747, 0x2748, 0x2749, 0x274a, 0x274b, + 0x274c, 0x274d, 0x274e, 0x274f, 0x2750, 0x277e, + /* 0x2400 */ + 0x277d, + /* 0x2440 */ + 0x2d21, 0x2d22, 0x2d23, 0x2d24, 0x2d25, 0x2d26, 0x2d27, 0x2d28, + 0x2d29, 0x2d2a, 0x2d2b, 0x2d2c, 0x2d2d, 0x2d2e, 0x2d2f, 0x2d30, + 0x2d31, 0x2d32, 0x2d33, 0x2d34, + /* 0x24C0 */ + 0x2c41, 0x2c42, 0x2c43, 0x2c44, 0x2c45, 0x2c46, 0x2c47, 0x2c48, + 0x2c49, 0x2c4a, 0x2c4b, 0x2c4c, 0x2c4d, 0x2c4e, 0x2c4f, 0x2c50, + 0x2c51, 0x2c52, 0x2c53, 0x2c54, 0x2c55, 0x2c56, 0x2c57, 0x2c58, + 0x2c59, 0x2c5a, 0x2c2b, 0x2c2c, 0x2c2d, 0x2c2e, 0x2c2f, 0x2c30, + 0x2c31, 0x2c32, 0x2c33, 0x2c34, 0x265a, 0x265b, 0x265c, 0x265d, + 0x265e, 0x265f, 0x2660, 0x2661, 0x2662, 0x2663, + /* 0x2500 */ + 0x2821, 0x282c, 0x2822, 0x282d, 0x2823, 0x282e, 0x2824, 0x282f, + 0x2826, 0x2831, 0x2825, 0x2830, 0x2827, 0x283c, 0x2837, 0x2832, + 0x2829, 0x283e, 0x2839, 0x2834, 0x2828, 0x2838, 0x283d, 0x2833, + 0x282a, 0x283a, 0x283f, 0x2835, 0x282b, 0x283b, + /* 0x2540 */ + 0x2840, 0x2836, + /* 0x2580 */ + 0x2223, 0x2222, 0x266d, 0x2225, 0x2224, 0x2322, 0x2321, 0x2227, + 0x2226, + /* 0x25C0 */ + 0x2324, 0x2323, 0x2221, 0x217e, 0x233b, 0x217b, 0x217d, 0x217c, + 0x2867, 0x2868, 0x2869, 0x286a, 0x233f, 0x227e, + /* 0x2600 */ + 0x2668, 0x2669, 0x266a, 0x266b, 0x217a, 0x2179, 0x2667, 0x2664, + 0x2665, 0x2d7e, + /* 0x2640 */ + 0x216a, 0x2169, 0x263a, 0x263d, 0x263b, 0x2640, 0x2639, 0x263e, + 0x263c, 0x263f, 0x266c, 0x227d, 0x2276, 0x227b, 0x227c, 0x2275, + 0x227a, 0x2274, + /* 0x2700 */ + 0x277b, + /* 0x2740 */ + 0x2d7d, 0x2c21, 0x2c22, 0x2c23, 0x2c24, 0x2c25, 0x2c26, 0x2c27, + 0x2c28, 0x2c29, 0x2c2a, + /* 0x2900 */ + 0x232e, 0x232f, + /* 0x2980 */ + 0x233a, + /* 0x29C0 */ + 0x237d, 0x237e, + /* 0x3000 */ + 0x2121, 0x2122, 0x2123, 0x2137, 0x2139, 0x213a, 0x213b, 0x2152, + 0x2153, 0x2154, 0x2155, 0x2156, 0x2157, 0x2158, 0x2159, 0x215a, + 0x215b, 0x2229, 0x222e, 0x214c, 0x214d, 0x225a, 0x225b, 0x2258, + 0x2259, 0x2141, 0x2d60, 0x2d61, 0x2666, 0x2233, 0x2234, 0x2235, + 0x2236, 0x2237, 0x233c, + /* 0x3040 */ + 0x2421, 0x2422, 0x2423, 0x2424, 0x2425, 0x2426, 0x2427, 0x2428, + 0x2429, 0x242a, 0x24ab, 0x242c, 0x24ad, 0x242e, 0x24af, 0x2430, + 0x24b1, 0x2432, 0x24b3, 0x2434, 0x2435, 0x2436, 0x2437, 0x2438, + 0x2439, 0x243a, 0x243b, 0x243c, 0x243d, 0x243e, 0x243f, 0x2440, + 0x2441, 0x2442, 0x2443, 0x2444, 0x2445, 0x2446, 0x2447, 0x2448, + 0x2449, 0x244a, 0x244b, 0x244c, 0x244d, 0x244e, 0x244f, 0x2450, + 0x2451, 0x2452, 0x2453, 0x2454, 0x2455, 0x2456, 0x2457, 0x2458, + 0x2459, 0x245a, 0x245b, 0x245c, 0x245d, 0x245e, 0x245f, + /* 0x3080 */ + 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, + 0x2468, 0x2469, 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, + 0x2470, 0x2471, 0x2472, 0x2473, 0x2474, 0x2475, 0x2476, 0x212b, + 0x212c, 0x2135, 0x2136, 0x2239, 0x237b, 0x2521, 0x2522, 0x2523, + 0x2524, 0x2525, 0x2526, 0x2527, 0x2528, 0x2529, 0x252a, 0x25ab, + 0x252c, 0x25ad, 0x252e, 0x25af, 0x2530, 0x25b1, 0x2532, 0x25b3, + 0x2534, 0x2535, 0x2536, 0x2537, 0x2538, 0x2539, 0x253a, 0x25bb, + 0x253c, 0x253d, 0x253e, 0x253f, + /* 0x30C0 */ + 0x2540, 0x2541, 0x2542, 0x2543, 0x25c4, 0x2545, 0x2546, 0x2547, + 0x25c8, 0x2549, 0x254a, 0x254b, 0x254c, 0x254d, 0x254e, 0x254f, + 0x2550, 0x2551, 0x2552, 0x2553, 0x2554, 0x2555, 0x2556, 0x2557, + 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e, 0x255f, + 0x2560, 0x2561, 0x2562, 0x2563, 0x2564, 0x2565, 0x2566, 0x2567, + 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x256d, 0x256e, 0x256f, + 0x2570, 0x2571, 0x2572, 0x2573, 0x2574, 0x2575, 0x2576, 0x2772, + 0x2773, 0x2774, 0x2775, 0x2126, 0x213c, 0x2133, 0x2134, 0x2238, + /* 0x31C0 */ + 0x266e, 0x266f, 0x2670, 0x2671, 0x2672, 0x2673, 0x2674, 0x26f5, + 0x2676, 0x2677, 0x2679, 0x267a, 0x267b, 0x267c, 0x267d, 0x267e, + /* 0x3200 */ + 0x2d6a, 0x2d6b, 0x2d6c, + /* 0x3240 */ + 0x2841, 0x2842, 0x2843, 0x2844, 0x2845, 0x2846, 0x2847, 0x2848, + 0x2849, 0x284a, 0x284b, 0x284c, 0x284d, 0x284e, 0x284f, + /* 0x3280 */ + 0x2d65, 0x2d66, 0x2d67, 0x2d68, 0x2d69, 0x2850, 0x2851, 0x2852, + 0x2853, 0x2854, 0x2855, 0x2856, 0x2857, 0x2858, 0x2859, 0x285a, + 0x285b, 0x285c, 0x285d, 0x285e, + /* 0x32C0 */ + 0x2c5b, 0x2c5c, 0x2c5d, 0x2c5e, 0x2c5f, 0x2c60, 0x2c61, 0x2c62, + 0x2c63, 0x2c64, 0x2c65, 0x2c66, 0x2c67, 0x2c68, 0x2c69, 0x2c6a, + 0x2c6b, 0x2c6c, 0x2c6d, 0x2c6e, 0x2c71, 0x2c70, 0x2c73, 0x2c72, + 0x2c6f, + /* 0x3300 */ + 0x2d46, 0x2d4a, 0x2d41, 0x2d44, 0x2d42, 0x2d4c, 0x2d4b, 0x2d45, + 0x2d4d, 0x2d47, 0x2d4f, + /* 0x3340 */ + 0x2d40, 0x2d4e, 0x2d43, 0x2d48, 0x2d49, 0x2d5f, 0x2d6f, 0x2d6e, + 0x2d6d, + /* 0x3380 */ + 0x2d53, 0x2d54, 0x2d50, 0x2d51, 0x2d52, 0x2d56, + /* 0x33C0 */ + 0x2d55, 0x235e, 0x2d63, + /* 0x3400 */ + 0x2e23, 0xa12d, 0xa132, 0xa133, + /* 0x3440 */ + 0xa15e, 0xa156, + /* 0x3480 */ + 0xa17e, 0x2e53, 0xa32b, + /* 0x34C0 */ + 0xf468, 0xa32f, 0x2e5b, + /* 0x3500 */ + 0xa348, + /* 0x3540 */ + 0xa35d, 0xa35e, 0xa361, 0xa367, + /* 0x3580 */ + 0xa423, 0xa426, + /* 0x35C0 */ + 0xa42f, 0xa438, 0xa442, + /* 0x3600 */ + 0xa44a, + /* 0x3640 */ + 0xa479, + /* 0x3680 */ + 0xa53f, 0xa543, 0xa541, + /* 0x36C0 */ + 0xa557, + /* 0x3740 */ + 0xa823, 0xa825, 0xa829, 0xa828, 0xa82c, + /* 0x3780 */ + 0x4f5f, + /* 0x37C0 */ + 0xa83e, 0x4f6f, 0xa856, 0xa859, 0xa85c, + /* 0x3800 */ + 0xa85e, 0xa86f, 0xa871, + /* 0x3840 */ + 0xa874, 0xa879, 0xa87b, + /* 0x38C0 */ + 0xac3b, + /* 0x3900 */ + 0xac46, 0xac4a, + /* 0x3940 */ + 0xac60, + /* 0x3A40 */ + 0xad5b, 0xad5f, + /* 0x3AC0 */ + 0xad71, 0xae36, 0xad7c, + /* 0x3B00 */ + 0xae2e, 0xae32, 0xae34, 0x7549, + /* 0x3B40 */ + 0xae6d, 0xae65, + /* 0x3B80 */ + 0xaf28, 0xaf29, 0xaf2c, 0xaf34, 0x757e, + /* 0x3BC0 */ + 0x7621, 0xaf48, 0xaf5d, + /* 0x3C00 */ + 0x763a, 0xaf77, + /* 0x3CC0 */ + 0xee3b, 0xee42, + /* 0x3D00 */ + 0xee71, 0xee7e, + /* 0x3D40 */ + 0xef40, + /* 0x3D80 */ + 0xef54, + /* 0x3DC0 */ + 0xef70, 0xef77, + /* 0x3E00 */ + 0xf028, 0x7766, + /* 0x3E40 */ + 0xf03f, 0xf041, 0xf042, + /* 0x3E80 */ + 0xf049, 0xf050, + /* 0x3F40 */ + 0xf134, 0x784d, 0xf146, 0xf148, + /* 0x3F80 */ + 0xf15c, + /* 0x3FC0 */ + 0xf167, 0xf16c, + /* 0x4000 */ + 0xf222, + /* 0x4040 */ + 0xf22d, + /* 0x4080 */ + 0xf239, + /* 0x4100 */ + 0xf264, + /* 0x4140 */ + 0xf274, 0xf277, 0xf27d, + /* 0x4180 */ + 0xf333, 0xf337, + /* 0x41C0 */ + 0xf347, 0xf34b, 0xf348, + /* 0x4200 */ + 0xf353, 0xf357, + /* 0x4240 */ + 0x796d, + /* 0x42C0 */ + 0xf42b, 0xf436, 0xf43b, + /* 0x4300 */ + 0xf44e, 0xf45d, + /* 0x4340 */ + 0xf461, + /* 0x43C0 */ + 0xf53e, 0xf542, + /* 0x4400 */ + 0xf548, 0xf54a, 0xf54c, 0xf54f, + /* 0x4440 */ + 0x7a59, 0x7a5a, 0xf56c, 0xf56e, + /* 0x4480 */ + 0xf577, 0xf635, 0xf632, + /* 0x44C0 */ + 0xf634, + /* 0x4500 */ + 0xf659, 0xf654, 0xf66d, + /* 0x4540 */ + 0xf66e, + /* 0x4580 */ + 0x7b51, 0xf74f, + /* 0x45C0 */ + 0xf76c, 0x7b60, + /* 0x4600 */ + 0xf824, + /* 0x4640 */ + 0xf83a, 0xf843, + /* 0x4680 */ + 0xf84e, 0xf853, + /* 0x4700 */ + 0xf86b, + /* 0x4740 */ + 0xf929, + /* 0x47C0 */ + 0xf93f, + /* 0x4800 */ + 0xf949, + /* 0x4840 */ + 0x7c4b, 0xf95c, + /* 0x4880 */ + 0xfa27, + /* 0x4980 */ + 0x7d58, + /* 0x49C0 */ + 0xfb6a, 0xfb70, + /* 0x4A00 */ + 0xfb75, 0xfb78, + /* 0x4A80 */ + 0xfc37, + /* 0x4B00 */ + 0xfc55, + /* 0x4BC0 */ + 0xfd26, 0xfd28, 0xfd2a, 0xfd31, + /* 0x4C00 */ + 0x7e3e, 0xfd3f, + /* 0x4CC0 */ + 0xfe2a, 0xfe2d, + /* 0x4D00 */ + 0xfe4b, + /* 0x4D40 */ + 0xfe60, + /* 0x4E00 */ + 0x306c, 0x437a, 0xa122, 0x3c37, 0x4b7c, 0x3e66, 0x3b30, 0x3e65, + 0x323c, 0x4954, 0x4d3f, 0xa123, 0x5022, 0x312f, 0xa124, 0x336e, + 0x5023, 0x4024, 0x5242, 0x3556, 0x4a3a, 0x3e67, 0x4e3e, 0x4a42, + 0x2e24, 0xa125, 0x5024, 0xa126, 0xf02e, 0x4366, 0xa127, 0x2e25, + 0x2e26, 0x5025, 0x367a, 0x5026, 0x345d, 0x4330, 0x3c67, 0x5027, + 0x5028, + /* 0x4E40 */ + 0xa128, 0x5029, 0x4735, 0x3557, 0xa129, 0xa12a, 0x4737, 0x4663, + 0x3843, 0x4b33, 0xa12c, 0x6949, 0x502a, 0x3e68, 0x502b, 0x3235, + 0xa12f, 0x3665, 0x3870, 0x4c69, 0x5626, 0xa130, 0x4d70, 0x467d, + 0x3425, + /* 0x4E80 */ + 0x3535, 0x502c, 0x502d, 0x4e3b, 0x4d3d, 0x4168, 0x502f, 0x3b76, + 0x4673, 0x2e27, 0x5032, 0x313e, 0x385f, 0x385e, 0x3066, 0x4f4b, + 0x4f4a, 0x3a33, 0x3021, 0xa131, 0x5033, 0x5034, 0x5035, 0x4b34, + 0x5036, 0x3872, 0x3067, 0x4b72, 0x357c, 0x357d, 0x357e, 0x4462, + 0x4e3c, 0x5037, 0x5038, 0x5039, 0xa134, 0x3f4d, 0xa135, 0xa137, + /* 0x4EC0 */ + 0x3d3a, 0x3f4e, 0x503e, 0xa138, 0x503c, 0x503d, 0x3558, 0xa139, + 0x3a23, 0x3270, 0x503b, 0x503a, 0x4a29, 0xa13a, 0x3b46, 0x3b45, + 0x423e, 0x503f, 0x4955, 0x4067, 0xa13c, 0x2138, 0x5040, 0x5042, + 0x2e28, 0x4265, 0x4e61, 0x304a, 0xa13b, 0x5041, 0x323e, 0x3644, + 0xa13d, 0x4367, 0xa13e, 0x376f, 0x5043, 0x4724, 0x2e29, 0x2e2a, + /* 0x4F00 */ + 0xa13f, 0x346b, 0x2e2b, 0x5044, 0x304b, 0x2e2c, 0x3860, 0x346c, + 0x497a, 0x4832, 0x3559, 0xa140, 0x3271, 0x5067, 0x4541, 0x476c, + 0x5046, 0x483c, 0x4e62, 0xa142, 0x3f2d, 0x3b47, 0x3b77, 0x3240, + 0xa143, + /* 0x4F40 */ + 0x4451, 0x4322, 0x504a, 0x2e2e, 0x2e2f, 0x304c, 0x4463, 0x3d3b, + 0x3a34, 0x4d24, 0x424e, 0xa144, 0x323f, 0x2e30, 0x5049, 0xa145, + 0x4d3e, 0x5045, 0x5047, 0x3a6e, 0x5048, 0x5524, 0x2e31, 0x2e2d, + 0xa141, 0x5050, 0x2e32, 0x2e33, 0x5053, 0x5051, 0x3242, 0x4a3b, + 0x504b, 0xa147, 0xa148, 0xa149, 0x504f, 0x3873, 0xa14a, 0x2e34, + 0x3b48, + /* 0x4F80 */ + 0xa14b, 0x3426, 0xa14c, 0x5054, 0x504c, 0x2e35, 0x4e63, 0x3b78, + 0x504d, 0x5052, 0xa14d, 0x2e36, 0x5055, 0x2e37, 0x504e, 0xa14e, + 0x3621, 0x304d, 0x3622, 0x3241, 0x5525, 0x4b79, 0x496e, 0x3874, + 0xa150, 0x3f2f, 0x4e37, 0xa151, 0x4a58, + /* 0x4FC0 */ + 0x3738, 0x4225, 0x3264, 0xa152, 0x2e39, 0x3d53, 0xa153, 0x5059, + 0xa154, 0x505e, 0x505c, 0xa155, 0x5057, 0x422f, 0x505a, 0x505d, + 0x505b, 0x4a5d, 0x5058, 0x2e3a, 0x3f2e, 0x4b73, 0x505f, 0x5060, + 0xa14f, 0x3d24, 0x506d, 0x2e21, 0xa157, 0x4750, 0x4936, 0x5068, + 0x4a70, 0x3236, 0x506c, + /* 0x5000 */ + 0xa158, 0x2e3b, 0x2e3c, 0x5066, 0x506f, 0x4152, 0x3844, 0x475c, + 0x2e3d, 0x6047, 0xa159, 0x506e, 0x455d, 0xa15a, 0x5063, 0x3876, + 0x2e3e, 0x3875, 0x5061, 0xa15b, 0xa15c, 0x3c5a, 0x5069, 0xa15d, + 0x4a6f, 0x434d, 0x5065, 0x3771, 0x2e3f, 0x5062, 0x506a, 0x5064, + 0x4e51, 0x506b, 0x4f41, 0x2e40, 0x3666, 0x3770, 0x2e42, + /* 0x5040 */ + 0x2e41, 0x2e43, 0xa15f, 0x5070, 0xa160, 0x5071, 0x5075, 0x304e, + 0xa161, 0x4a50, 0x5074, 0xa162, 0x5073, 0x5077, 0xa163, 0x5076, + 0x4464, 0xa164, 0x3772, 0xa165, 0xa166, 0x5078, 0xa167, 0x3c45, + 0x4226, 0x4465, 0x3676, 0x5079, 0x3536, + /* 0x5080 */ + 0x507a, 0x507c, 0xa169, 0x4b35, 0x3766, 0xa16a, 0xa16b, 0x2e44, + 0xa16c, 0xa16d, 0x3b31, 0x4877, 0x507b, 0xa16e, 0xa168, 0xa16f, + 0x3a45, 0x4d43, 0xa171, 0x507e, 0x5123, 0x507d, 0x3a44, 0x3d7d, + 0xa172, 0xa173, 0x3739, + /* 0x50C0 */ + 0x5124, 0xa174, 0x364f, 0xa175, 0x5121, 0x5122, 0x2e45, 0x462f, + 0xa178, 0x417c, 0x2e47, 0x3623, 0xa17a, 0x4b4d, 0x5125, 0xa17b, + 0x4e3d, 0x5126, 0xa17c, 0x5129, 0x5127, 0x2e48, 0x414e, 0xa17d, + 0x5128, 0x512a, 0x2e46, 0xa176, 0x512c, 0x512b, 0x4a48, + /* 0x5100 */ + 0x3537, 0x512e, 0x512f, 0x2e4b, 0x322f, 0x2e4a, 0xa321, 0x512d, + 0x2e4c, 0x3c74, 0x5132, 0x5131, 0x5130, 0xa323, 0x5056, 0x5133, + 0xa324, 0x2e4d, 0x3d7e, 0x5134, 0x4d25, 0x4c59, 0x2e4e, 0x5136, + 0x5135, 0x5138, 0x5137, 0x5139, + /* 0x5140 */ + 0x513a, 0x3074, 0x3835, 0x373b, 0x3d3c, 0x437b, 0x3624, 0x4068, + 0x3877, 0x2e4f, 0x396e, 0x513c, 0x4c48, 0x4546, 0x3b79, 0x513b, + 0x513d, 0x2e51, 0x2e52, 0x455e, 0x3375, 0xa326, 0x513e, 0x467e, + 0x4134, 0x5140, 0x5141, 0x482c, 0x3878, 0x4f3b, 0x5142, 0x3626, + 0xa328, 0x4a3c, 0x4236, 0x3671, 0x4535, 0xf474, 0x3773, + /* 0x5180 */ + 0x5143, 0x5144, 0xa329, 0x4662, 0x315f, 0x5147, 0x3a7d, 0xa32a, + 0x5146, 0x3a46, 0x5148, 0x666e, 0x5149, 0x4b41, 0x514a, 0x514b, + 0x514c, 0x3e69, 0xa32c, 0x3c4c, 0x2e54, 0x3427, 0x514f, 0xa32d, + 0x514d, 0x4c3d, 0x514e, 0x495a, 0x5150, 0x5151, 0x5152, 0x455f, + 0xa32e, 0x5156, 0x5154, 0x5155, 0x5153, 0x3a63, 0x5157, 0x4c6a, + 0x4e64, 0xa330, 0x5158, + /* 0x51C0 */ + 0x2e55, 0x4028, 0x5159, 0x3d5a, 0x515a, 0x2e56, 0x437c, 0x4e3f, + 0x4560, 0x5245, 0x515b, 0x7425, 0x3645, 0x2e57, 0x515c, 0x4b5e, + 0x2e58, 0x3d68, 0x427c, 0x515e, 0x4664, 0x515f, 0x2e59, 0x5160, + 0x332e, 0xa333, 0xa334, 0x5161, 0x3627, 0x464c, 0x317a, 0x3d50, + 0x4821, 0x5162, + /* 0x5200 */ + 0x4561, 0x2e5a, 0xa335, 0x3f4f, 0x5163, 0x4a2c, 0x405a, 0x3422, + 0x3429, 0x5164, 0x5166, 0x373a, 0xa336, 0x2e5c, 0x5165, 0x2e5d, + 0xa337, 0x4e73, 0x3d69, 0x483d, 0x4a4c, 0x5167, 0x4d78, 0x5168, + 0x5169, 0x457e, 0x516a, 0x4029, 0x3a7e, 0x3774, 0x516b, 0x3b49, + 0x396f, + /* 0x5240 */ + 0x4466, 0x516d, 0x4227, 0x2e5e, 0x3a6f, 0x516e, 0x516f, 0x4130, + 0x516c, 0x5171, 0xa339, 0x4b36, 0x2e5f, 0x3964, 0xa33a, 0x2f7e, + 0x5170, 0x2e60, 0x3775, 0x3a5e, 0x476d, 0x5174, 0x5172, 0xa33b, + 0x497b, 0x3e6a, 0x517b, 0x3364, 0x5175, 0x5173, 0x414f, 0xa33c, + 0x5177, 0x5176, + /* 0x5280 */ + 0xa33e, 0x3344, 0xa33d, 0x3760, 0x517c, 0x4e2d, 0x5178, 0x517d, + 0x517a, 0x2e61, 0x5179, 0xa340, 0x4e4f, 0x3879, 0x3243, 0x4e74, + 0xa342, 0xa343, 0x3d75, 0x4558, 0x3965, 0x5222, 0x5223, 0xa344, + 0x4e65, 0x4f2b, 0x5225, 0x387a, 0xa345, 0xa346, 0x5224, 0x332f, + /* 0x52C0 */ + 0x5226, 0x4b56, 0x443c, 0x4d26, 0x2e62, 0x4a59, 0xa347, 0x2e64, + 0x5227, 0x2e65, 0xa349, 0x7055, 0x4630, 0x2e66, 0x5228, 0x342a, + 0x4c33, 0x2e67, 0x3e21, 0x5229, 0x4a67, 0x522d, 0x402a, 0x522a, + 0x3650, 0x522b, 0x342b, 0x2e69, 0x372e, 0x522e, 0x522f, 0xa34b, + 0x5230, 0x5231, 0x3c5b, 0x2e6a, 0x387b, 0x4c5e, + /* 0x5300 */ + 0x2e6b, 0x4c68, 0x4677, 0x4a71, 0x5232, 0x2e6c, 0x5233, 0xa34c, + 0xa34d, 0x5235, 0x5237, 0x5236, 0x5238, 0x323d, 0x4b4c, 0x3a7c, + 0x5239, 0x2e6d, 0x4159, 0x3e22, 0x3629, 0x523a, 0xa34e, 0x485b, + 0x523b, 0x523c, 0x523d, 0xa34f, 0x523e, 0x4924, 0x3668, 0x3065, + 0xa350, 0x463f, + /* 0x5340 */ + 0x523f, 0x3d3d, 0xa351, 0x4069, 0x5241, 0x5240, 0x3e23, 0x3861, + 0x5243, 0x483e, 0x5244, 0x485c, 0x4234, 0x426e, 0x3628, 0x466e, + 0x4331, 0x476e, 0x4b4e, 0x5246, 0x406a, 0x2e6f, 0x2e70, 0x3735, + 0xa354, 0x5247, 0xa355, 0x5248, 0x312c, 0x3075, 0x346d, 0x4228, + 0x3551, 0x4d71, 0x524b, 0x3237, 0xa356, 0x524a, 0x2e71, 0x362a, + /* 0x5380 */ + 0x524c, 0x4c71, 0x2e72, 0x524d, 0x4e52, 0x387c, 0x2e73, 0x3836, + 0x524e, 0xa357, 0x5250, 0x524f, 0x3f5f, 0x3139, 0x315e, 0x5251, + 0x5252, 0x2e74, 0x3837, 0xa358, 0x5253, 0xa35a, 0x356e, + /* 0x53C0 */ + 0xa35b, 0x3b32, 0x5254, 0x4b74, 0x3a35, 0x355a, 0x4d27, 0x4150, + 0x483f, 0x3c7d, 0x3d47, 0xa35f, 0x3c68, 0x3c75, 0x3d76, 0xa360, + 0x4840, 0x5257, 0x3143, 0x4151, 0x387d, 0x3845, 0x3667, 0x525b, + 0x4321, 0x427e, 0x362b, 0x3e24, 0x525c, 0x525a, 0x3244, 0x4266, + 0x3c38, 0x3b4b, 0x3126, 0xa362, 0xa363, 0x3370, 0x3966, 0x3b4a, + 0x525d, + /* 0x5400 */ + 0x525e, 0x3549, 0x3346, 0x3967, 0x3548, 0x445f, 0x3125, 0x4631, + 0x4c3e, 0x3921, 0x4d79, 0x4547, 0x387e, 0x2e75, 0x372f, 0x5267, + 0x4f7e, 0x3663, 0x4b4a, 0xa365, 0x485d, 0x2e76, 0xa366, 0x5266, + 0x345e, 0x5261, 0x5262, 0x5264, 0x5265, 0x355b, 0x3f61, 0x4a2d, + 0x5263, 0x525f, 0x3863, + /* 0x5440 */ + 0x5260, 0x4f24, 0xa368, 0x4a72, 0x4468, 0x3862, 0x3970, 0x2e77, + 0x5268, 0x465d, 0xa364, 0x526c, 0xa369, 0xa36a, 0x3c7e, 0x3c76, + 0x2e79, 0xa36b, 0x526f, 0x526d, 0x4c23, 0x2e7a, 0x526a, 0x5273, + 0x526e, 0x5271, 0x3846, 0x4c3f, 0x2e7b, + /* 0x5480 */ + 0x5272, 0x5274, 0x5276, 0x2e7c, 0xa36c, 0x3a70, 0x4f42, 0xa36d, + 0x526b, 0x5269, 0x5275, 0x5270, 0xa36e, 0x2e7d, 0x2e78, 0xa36f, + 0x2e7e, 0x5278, 0x5323, 0x527a, 0xa370, 0x527e, 0x2f21, 0x5321, + 0x527b, 0xa371, 0xa372, 0x533e, 0x3a69, 0x3331, 0xa373, 0x5279, + 0xa374, 0x5325, 0x3076, 0x5324, 0xa375, + /* 0x54C0 */ + 0x3025, 0x494a, 0x5322, 0xa376, 0x527c, 0x2f22, 0x5277, 0x527d, + 0x3a48, 0x5326, 0x3077, 0x532f, 0x5327, 0x5328, 0x3e25, 0x4b69, + 0xa378, 0x532d, 0x532c, 0xa379, 0xa37a, 0x452f, 0xa37b, 0x532e, + 0x532b, 0x2f23, + /* 0x5500 */ + 0xa37c, 0xa37d, 0x3134, 0x3a36, 0x3f30, 0xa37e, 0x2f24, 0x5329, + 0x4562, 0x532a, 0x3022, 0x2f25, 0x5334, 0x4d23, 0x3e27, 0x533a, + 0x2f26, 0x5339, 0x5330, 0xa421, 0x4243, + /* 0x5540 */ + 0x5331, 0xa422, 0x426f, 0x5336, 0x3e26, 0xa424, 0xa425, 0x5333, + 0x4c64, 0x2f27, 0x373c, 0x5337, 0x5338, 0x5335, 0x533b, 0x2f28, + 0xa427, 0xa428, 0x5332, 0xa429, 0x5341, 0x5346, 0xa42b, 0x5342, + /* 0x5580 */ + 0x533d, 0x2f29, 0xa42c, 0x5347, 0x4131, 0x2f2a, 0x5349, 0xa42d, + 0x3922, 0x533f, 0x437d, 0x2f2b, 0xa42e, 0x5343, 0x533c, 0x342d, + 0x346e, 0x3365, 0x5344, 0x5340, 0x3776, 0x534a, 0x5348, 0x4153, + 0x354a, 0x362c, 0x2f2d, 0x5345, 0x3674, 0x3144, 0xa433, + /* 0x55C0 */ + 0x534e, 0x534c, 0x5427, 0xa434, 0xa435, 0x2f2e, 0xa436, 0xa430, + 0x5351, 0x534b, 0x534f, 0xa437, 0x534d, 0xa439, 0x3b4c, 0x5350, + 0xa43b, 0x5353, 0x5358, 0x5356, 0x5355, + /* 0x5600 */ + 0x4332, 0xa43e, 0x2f30, 0x3245, 0x2f31, 0xa43f, 0x5352, 0x5354, + 0x3e28, 0x3133, 0x5357, 0xa43c, 0x325e, 0x5362, 0xa440, 0x3e7c, + 0x535e, 0x535c, 0x535d, 0xa441, 0x535f, 0x2f32, 0xa443, 0xa444, + /* 0x5640 */ + 0xa445, 0x313d, 0xa446, 0x2f33, 0x4139, 0x5359, 0x535a, 0x7427, + 0x337a, 0xa447, 0xa448, 0x5361, 0x2f35, 0x346f, 0x5364, 0x5360, + 0x5363, 0xa449, 0x2f37, 0x2f38, 0x2f39, 0x4a2e, 0x2f34, 0x4655, + 0x4838, + /* 0x5680 */ + 0x5366, 0x5365, 0x3345, 0xa44b, 0x5367, 0xa44c, 0x536a, 0x5369, + 0xa44d, 0x2f3a, 0xa44e, 0xa44f, 0x2f3b, 0x5368, 0x4739, 0x536b, + 0xa450, 0x2f3c, 0x2f3d, 0xa451, 0x536c, 0xa452, 0x2f3e, 0x536e, + 0x536d, 0x5370, + /* 0x56C0 */ + 0x5373, 0x5371, 0x536f, 0x5372, 0xa453, 0x5374, 0x2f3f, 0x2f40, + 0xa454, 0x5375, 0x5376, 0x5377, 0x5378, 0x5145, 0x3c7c, 0x3b4d, + 0x3273, 0xa455, 0x3078, 0x4344, 0xa456, 0x5379, 0x3a24, 0x304f, + 0x3f5e, 0xa457, 0xa458, 0x537a, 0x3847, 0x3971, 0x537c, + /* 0x5700 */ + 0x537b, 0x4a60, 0x537d, 0x5421, 0x537e, 0x2f41, 0x5422, 0x5423, + 0x3777, 0x3160, 0x5424, 0xa45a, 0x5426, 0x5425, 0x5428, 0x455a, + 0x2f43, 0xa45b, 0x5429, 0x3035, 0x3a5f, 0xa45d, 0x373d, 0x2f44, + 0x434f, 0x2f45, 0x2f46, 0x542a, 0x542b, 0x542d, + /* 0x5740 */ + 0x542e, 0x3a64, 0xa45f, 0xa460, 0x3651, 0x4b37, 0xa461, 0xa462, + 0x542c, 0x542f, 0x3a41, 0x3923, 0x5433, 0x3a25, 0x4333, 0xa464, + 0x5430, 0x445a, 0xa465, 0x2f47, 0xa466, 0xa467, 0xa468, 0x2f48, + 0xa469, 0x2f49, 0x5434, + /* 0x5780 */ + 0x3f62, 0x5432, 0x5435, 0x373f, 0x5436, 0xa46d, 0x2f4a, 0xa46e, + 0xa46f, 0x5437, 0x3924, 0x3340, 0x5439, 0xa470, 0x543a, 0xa46c, + 0x543b, 0x5438, 0x2f4d, + /* 0x57C0 */ + 0x5431, 0x543c, 0x543d, 0x2f4e, 0x2f4f, 0x4b64, 0xa473, 0x3e6b, + 0x2f50, 0x543f, 0x5440, 0x543e, 0x5442, 0xa471, 0x4738, 0xa476, + 0x3068, 0x4956, 0x5443, 0x2f51, 0xa477, 0x2f52, 0xa478, 0x3e7d, + 0x2f53, 0x2f54, 0x3c39, 0xa47a, 0x475d, 0x3470, 0xa47b, 0x3a6b, + 0xa47c, 0x2f55, + /* 0x5800 */ + 0x4b59, 0x4632, 0xa47d, 0x3778, 0x424f, 0x2f56, 0x5441, 0x5444, + 0x4244, 0x5445, 0x5446, 0xa47e, 0xa521, 0x5448, 0x4469, 0xa522, + 0x342e, 0x7421, 0x3161, 0x4a73, 0xa523, 0x3e6c, 0x4548, 0xa524, + 0x3a66, 0x544e, + /* 0x5840 */ + 0x4a3d, 0x4e5d, 0xa526, 0x3274, 0x544a, 0xa527, 0x413a, 0x544d, + 0x4563, 0x4549, 0x4564, 0x4839, 0x444d, 0x3a49, 0x2f58, 0x5449, + 0x2f59, 0xa528, 0x3176, 0x4536, 0x544b, 0x5447, 0x3f50, 0x544f, + 0x2f5b, 0x3d4e, + /* 0x5880 */ + 0x362d, 0x5450, 0x2f5c, 0xa529, 0xa52a, 0xa52b, 0xa52c, 0xa52d, + 0x4a68, 0xa52e, 0x417d, 0x4446, 0xa52f, 0x2f5d, 0x5452, 0x4b4f, + 0x2f5f, 0xa530, 0x5453, 0x5458, 0xa531, 0x4a2f, 0x5457, 0x5451, + 0x5454, 0x5456, 0x3a26, + /* 0x58C0 */ + 0x4a49, 0xa533, 0x5459, 0x4345, 0x3275, 0x3e6d, 0xa534, 0x2f62, + 0x545b, 0x2f61, 0x545a, 0x2f63, 0x3968, 0x545c, 0x545e, 0x545d, + 0x2f64, 0x5460, 0x5455, 0x5462, 0x2f65, 0xa535, 0x5461, 0x545f, + 0x2f66, 0x3b4e, 0x3f51, 0x4154, 0x5463, 0x403c, 0x306d, 0x4764, + 0xa536, 0xa537, 0x445b, 0x5465, 0x5464, 0x5466, 0x5467, 0x5468, + /* 0x5900 */ + 0x5469, 0xa538, 0xa539, 0x4a51, 0x546a, 0xa53a, 0x2f67, 0xa53b, + 0x3246, 0x546b, 0xa53c, 0x4d3c, 0x3330, 0x5249, 0x3d48, 0x423f, + 0x546c, 0x4c6b, 0x4c34, 0xa53d, 0x546e, 0x4267, 0x4537, 0x4240, + 0x4957, 0x546f, 0x5470, 0x317b, 0x3c3a, 0x5471, 0x3050, 0x5472, + 0xa540, 0x5473, + /* 0x5940 */ + 0x3162, 0xa542, 0x3471, 0x4660, 0x4a74, 0x5477, 0x4155, 0x5476, + 0x3740, 0x4b5b, 0x5475, 0x4565, 0x5479, 0x5478, 0xa545, 0x2f69, + 0xa546, 0x547b, 0x547a, 0x317c, 0x547c, 0x3e29, 0x547e, 0x4325, + 0x547d, 0x2f6a, 0x4a33, 0x3d77, 0x455b, 0xa548, 0xa549, 0x5521, + 0xa54a, 0x3925, + /* 0x5980 */ + 0x5522, 0x4721, 0x485e, 0x4c51, 0x4725, 0x2f6b, 0x552b, 0x2f6c, + 0x3538, 0x4d45, 0x4c2f, 0x562c, 0x5523, 0xa54b, 0x5526, 0x2f6d, + 0x4245, 0x4b38, 0x454a, 0xa54c, 0x5527, 0x4b65, 0x3a4a, 0xa54d, + 0x3e2a, + /* 0x59C0 */ + 0x2f6e, 0x5528, 0xa54e, 0x3b50, 0x3b4f, 0xa54f, 0x3039, 0x3848, + 0x2f6f, 0x402b, 0x3051, 0x552c, 0x552d, 0x552a, 0x2f70, 0xa550, + 0xa551, 0xa552, 0x3138, 0x342f, 0xa553, 0x5529, 0x4c45, 0x4931, + 0xa554, 0x3028, 0x7e7a, 0x3079, 0x3b51, + /* 0x5A00 */ + 0x3052, 0x3023, 0x5532, 0xa558, 0xa559, 0x5530, 0x2f71, 0xa55a, + 0x4c3c, 0x5533, 0x5531, 0x552f, 0x3f31, 0x2f72, 0x552e, 0xa55b, + 0x4a5a, 0xa55c, 0x3864, 0x5537, 0x5538, 0x3e2b, + /* 0x5A40 */ + 0x5534, 0x4f2c, 0x474c, 0x5536, 0xa55d, 0x3a27, 0x5539, 0xa55e, + 0x4958, 0x2f73, 0x553a, 0x5535, 0x2f74, 0x2f75, 0xa55f, 0x2f76, + 0x4c3b, + /* 0x5A80 */ + 0x2f77, 0xa560, 0x475e, 0x553b, 0x4932, 0xa561, 0x2f78, 0xa562, + 0xa563, 0xa564, 0x2f79, 0xa565, 0xa566, 0xa567, 0xa568, 0x553c, + 0x5540, 0x553d, 0xa569, + /* 0x5AC0 */ + 0x3247, 0x553f, 0x2f7a, 0x3c3b, 0x553e, 0x3779, 0x554c, 0x5545, + 0x5542, 0xa56a, 0xa56b, 0xa56c, 0x4364, 0x5541, 0xa56d, 0x5543, + 0x5544, 0xa56f, 0xa56e, 0xa570, 0x5546, 0x5547, + /* 0x5B00 */ + 0xa571, 0xa572, 0x3472, 0x5549, 0x5548, 0x554a, 0xa573, 0x2f7c, + 0x3e6e, 0x2f7d, 0x554d, 0x445c, 0xa575, 0x3145, 0x554b, 0xa574, + 0x554e, 0x554f, + /* 0x5B40 */ + 0x5552, 0x4f55, 0x5550, 0x5551, 0xa576, 0x3b52, 0x5553, 0xa577, + 0x3926, 0x5554, 0x4f56, 0x3b7a, 0x4238, 0x5555, 0x5556, 0x3b5a, + 0x3927, 0x4c52, 0x3528, 0x3849, 0x5557, 0x3358, 0xa578, 0x5558, + 0x4239, 0xa579, 0x5559, 0x5623, 0x555a, 0x555b, 0x555c, 0x555e, + 0xa57a, 0x4f57, 0xa57b, + /* 0x5B80 */ + 0x555f, 0xa57c, 0x5560, 0xa57d, 0x4270, 0x3127, 0x3c69, 0x3042, + 0x4157, 0x3430, 0x3c35, 0x3928, 0x4f58, 0x4566, 0xa821, 0x3d21, + 0x3431, 0x4368, 0x446a, 0x3038, 0x3539, 0x4a75, 0x3c42, 0x3552, + 0x406b, 0x3c3c, 0x4d28, 0x5561, 0xa822, 0x355c, 0x3a4b, 0x3332, + 0x3163, 0x3e2c, 0x3248, 0x5562, 0x4d46, 0x3d49, + /* 0x5BC0 */ + 0xa824, 0x3c64, 0x5563, 0x3473, 0x4652, 0x4c29, 0x5564, 0x5565, + 0x4959, 0xa826, 0x5567, 0x3428, 0x3677, 0x5566, 0xa827, 0x4f59, + 0x3432, 0x3f32, 0x556b, 0x3b21, 0x3249, 0x556a, 0x5568, 0x556c, + 0x5569, 0x472b, 0x5c4d, 0x3f33, 0x556d, 0x4f5a, 0x4e40, 0x556e, + 0xa82a, 0x5570, 0x437e, 0x556f, 0x4023, 0x3b7b, 0xa82b, 0x4250, + 0x3c77, + /* 0x5C00 */ + 0x4975, 0x406c, 0xa82d, 0x3c4d, 0x5571, 0x3e2d, 0x5572, 0x5573, + 0x3053, 0x423a, 0x3f52, 0x5574, 0x4633, 0x3e2e, 0x3e2f, 0x4f5b, + 0x5575, 0x406d, 0x3e30, 0x4f5c, 0x5576, 0x5577, 0x4f5d, 0x4c60, + 0x5578, 0xa82e, 0x4f5e, 0x3646, 0xa82f, 0x3d22, 0x5579, 0x557a, + 0x3c5c, 0x3f2c, 0x4674, 0x3f54, 0x4878, 0x4722, + /* 0x5C40 */ + 0x3649, 0x557b, 0x356f, 0x557c, 0x367e, 0x464f, 0x3230, 0x3b53, + 0x557d, 0x5622, 0x5621, 0x367d, 0x557e, 0x4538, 0x7e7b, 0x4230, + 0xa831, 0x454b, 0x3c48, 0x4f60, 0xa832, 0x4158, 0x4d7a, 0xa833, + 0xa834, 0xa835, 0x5624, 0x5625, 0x4656, 0xa836, 0x3b33, 0x5627, + 0x5628, 0x4f64, 0xa839, + /* 0x5C80 */ + 0xa83c, 0xa83d, 0x5629, 0x4f65, 0x3474, 0x562a, 0x562b, 0x4f66, + 0xa841, 0x322c, 0xa842, 0x4f67, 0xa843, 0xa844, 0x413b, 0x3464, + 0x4f68, 0x562d, 0x4c28, 0xa846, 0x4252, 0x3359, 0xa847, 0x562f, + 0x5631, 0x345f, 0x4f69, 0x562e, 0x5630, 0x5633, + /* 0x5CC0 */ + 0x5632, 0x5634, 0xa849, 0x4f6a, 0x4f6b, 0x4f6c, 0x5635, 0x463d, + 0x362e, 0x3265, 0x5636, 0x563b, 0x5639, 0x4a77, 0x4a76, 0x4f6d, + 0x4567, 0x5638, 0x3d54, 0x5637, + /* 0x5D00 */ + 0xa84c, 0x3f72, 0x563c, 0x4f70, 0x3a6a, 0xa84d, 0x5642, 0x5643, + 0x563d, 0x3333, 0x563e, 0x5647, 0x5646, 0x5645, 0x5641, 0xa84f, + 0x5640, 0xa850, 0x5644, 0xa851, 0xa852, 0x4f71, 0x4a78, 0xa84e, + 0xa853, 0xa854, + /* 0x5D40 */ + 0xa855, 0x4f73, 0x4f74, 0x4f76, 0x564b, 0x5648, 0x564a, 0x4d72, + 0x5649, 0x4f75, 0x563f, 0xa857, 0x3f73, 0xa858, 0x564c, 0x4f77, + 0x3a37, 0xa85a, 0x564d, 0x564e, + /* 0x5D80 */ + 0x4f78, 0x5651, 0x5650, 0x564f, 0xa85d, 0x4568, 0x563a, 0x5657, + 0xa85f, 0xa860, 0xa861, 0xa862, 0x5653, 0x4f79, 0x5652, 0x4f7a, + 0x4f7b, 0x5654, 0x5655, 0xa863, 0xa864, 0xa865, 0x5658, 0x4f7c, + 0xa867, 0x4e66, 0x5659, 0x5656, + /* 0x5DC0 */ + 0x565a, 0x4f7d, 0x3460, 0x565b, 0xa868, 0x565d, 0x565c, 0x565e, + 0xa869, 0xa86a, 0x565f, 0x406e, 0x3d23, 0xa86b, 0x3d64, 0x7428, + 0x4163, 0xa86d, 0x3929, 0x3a38, 0x392a, 0x3570, 0xa86e, 0x5660, + 0x3a39, 0x384a, 0x5661, 0x4c26, 0x4743, 0x5662, 0x392b, 0x342c, + 0x4327, 0x3652, + /* 0x5E00 */ + 0xa870, 0x3b54, 0x495b, 0x4841, 0x5663, 0x3475, 0x5666, 0xa872, + 0x7429, 0xa873, 0x4421, 0x742a, 0x5665, 0x5664, 0x5667, 0x446b, + 0xa875, 0x3f63, 0x3b55, 0x404a, 0xa876, 0x4253, 0x3522, 0x4422, + 0x5668, 0x5669, 0x3e6f, 0x4b39, 0xa877, + /* 0x5E40 */ + 0x566c, 0x566b, 0x566a, 0x497d, 0x5673, 0xa878, 0x4b5a, 0x566d, + 0x566f, 0x4b6b, 0xa87a, 0x566e, 0x742b, 0x742c, 0x5670, 0x4828, + 0x5671, 0x4a3e, 0x5672, 0xa87c, 0xa87d, 0xa87e, 0xac21, 0x3433, + 0x4a3f, 0x472f, 0x5674, 0x5675, 0x7e7c, 0x392c, 0x3434, 0x5676, + 0x3838, 0x4d44, 0x4d29, 0x3476, 0x5678, + /* 0x5E80 */ + 0x4423, 0x392d, 0x3e31, 0x485f, 0x3e32, 0x3d78, 0x446c, 0x4a79, + 0x4539, 0x392e, 0x495c, 0x5679, 0xac23, 0x4559, 0x3a42, 0xac24, + 0x384b, 0xac25, 0x446d, 0x3043, 0x3d6e, 0x392f, 0x4d47, 0xac26, + 0x742d, 0xac27, + /* 0x5EC0 */ + 0x567a, 0x567b, 0x4751, 0xac28, 0x567c, 0x4e77, 0x4f2d, 0x742f, + 0x567e, 0x567d, 0xac29, 0x3347, 0x5721, 0xac2a, 0x5724, 0x5725, + 0x5723, 0x4940, 0x3e33, 0x5727, 0x5726, 0x5722, 0x5728, 0x5729, + 0x572a, 0x572d, 0x572b, 0x572c, 0x572e, 0x3164, 0x446e, 0x572f, + 0x7430, 0x377a, 0x3276, 0x4736, 0xac2c, 0x5730, 0x467b, + /* 0x5F00 */ + 0x7431, 0x4a5b, 0x7432, 0x5731, 0x4f2e, 0x7433, 0xac2d, 0x5732, + 0x4a40, 0x5735, 0x5021, 0x5031, 0xac2e, 0x3c30, 0x4675, 0x5736, + 0x355d, 0x4424, 0x307a, 0x5737, 0x4a26, 0x3930, 0x4350, 0xac2f, + 0x7434, 0xac31, 0x446f, 0x7435, 0x4c6f, 0x3839, 0x384c, 0x5738, + 0x5739, 0x573f, 0x3c65, 0x7436, 0x4425, 0x7437, 0x362f, 0x573a, + 0x492b, 0x7438, 0x4346, + /* 0x5F40 */ + 0x7439, 0x573b, 0x743a, 0xac32, 0x573c, 0x3630, 0x573d, 0x573e, + 0x5740, 0x4576, 0x743b, 0x5741, 0x5742, 0x743c, 0x5743, 0x5734, + 0x5733, 0x5744, 0x3741, 0xac33, 0x743d, 0x4927, 0x743e, 0x3a4c, + 0x4937, 0x4426, 0x494b, 0x5745, 0x3e34, 0x3146, 0xac34, 0x5746, + 0x5747, 0x4c72, 0x4860, 0x743f, 0xac35, 0x574a, + /* 0x5F80 */ + 0x317d, 0x402c, 0x5749, 0x5748, 0x3742, 0x4254, 0x574e, 0x574c, + 0x7440, 0x574b, 0x4e27, 0x3865, 0xac36, 0x3d79, 0x574d, 0x454c, + 0x3d3e, 0x4640, 0x5751, 0x5750, 0x7441, 0x574f, 0x5752, 0x3866, + 0xac37, 0xac38, 0x7442, 0x5753, 0x497c, 0x3d5b, 0x5754, 0x4879, + 0x7443, 0x4641, 0x4427, 0x7444, 0x7445, 0xac39, 0x4530, 0x5755, + 0x352b, + /* 0x5FC0 */ + 0x3f34, 0xac3a, 0x492c, 0xac3c, 0x7446, 0xac3d, 0x3477, 0x4726, + 0xac3e, 0xac3f, 0xac40, 0x5756, 0x3b56, 0x4b3a, 0x4b3b, 0x317e, + 0x575b, 0x7447, 0x4369, 0x7448, 0xac41, 0x5758, 0x7449, 0x3277, + 0xac42, 0xac43, 0x582d, 0x575a, 0xac44, 0x4730, 0x5759, 0x5757, + 0xac45, 0x397a, 0x575d, + /* 0x6000 */ + 0x744a, 0x5763, 0x5769, 0x5761, 0x455c, 0x744b, 0x5766, 0x495d, + 0xac47, 0x744c, 0x5760, 0x5765, 0x4e67, 0x3b57, 0x4255, 0x575e, + 0xac48, 0xac49, 0x355e, 0x5768, 0x402d, 0x3165, 0x5762, 0x3278, + 0x5767, 0x3631, 0x5764, 0x744d, 0x744e, 0x576a, + /* 0x6040 */ + 0x576c, 0x5776, 0x5774, 0x5771, 0x744f, 0x5770, 0x4e78, 0xac4b, + 0x5772, 0x3632, 0x3931, 0x3d7a, 0x5779, 0x576b, 0x576f, 0x575f, + 0x327a, 0x5773, 0x5775, 0x4351, 0x3a28, 0x3238, 0x576d, 0x5778, + 0x5777, 0x3633, 0x4229, 0x3366, 0x3743, 0x576e, 0xac4c, + /* 0x6080 */ + 0x577a, 0x577d, 0x5821, 0x3c3d, 0xac4d, 0x5827, 0x4470, 0x577b, + 0x5825, 0x3279, 0xac4e, 0x5823, 0x5824, 0x577e, 0x5822, 0x7451, + 0x7452, 0x3867, 0x4d2a, 0x3435, 0x3159, 0x5826, 0xac4f, 0x473a, + 0x302d, 0xac51, 0xac52, 0x4861, 0x575c, 0x582c, 0x5830, 0x4c65, + 0x5829, 0x4569, 0x582e, 0xac53, + /* 0x60C0 */ + 0x3e70, 0x582f, 0x4657, 0xac54, 0x7453, 0x4f47, 0x582b, 0x7454, + 0x7455, 0x5831, 0xac55, 0x397b, 0xac56, 0x404b, 0x7456, 0x3054, + 0x582a, 0x5828, 0x415a, 0x577c, 0x3b34, 0xac57, 0x4246, 0x583d, + 0xac58, 0x415b, 0x5838, 0xac59, 0x5835, 0x5836, 0x7457, 0x3c66, + 0x5839, 0x583c, + /* 0x6100 */ + 0x5837, 0x3d25, 0x583a, 0x5834, 0x4c7c, 0x4c7b, 0x583e, 0x583f, + 0x3055, 0xac5a, 0xac5b, 0xac5c, 0x5833, 0xac5d, 0x3672, 0x3026, + 0x7458, 0xac5e, 0x3436, 0x583b, 0x5843, 0x5842, 0x7459, 0x5847, + 0x745a, 0x5848, 0x745b, 0xac5f, 0x5846, 0x5849, 0x5841, 0x5845, + /* 0x6140 */ + 0xac61, 0x584a, 0x584b, 0xac62, 0x5840, 0x3b7c, 0x5844, 0x4256, + 0x3932, 0x5832, 0x3f35, 0x5858, 0x4a69, 0x584e, 0x584f, 0x5850, + 0x5857, 0x5856, 0xac63, 0x4b7d, 0x3437, 0x5854, 0x3745, 0x3334, + 0x5851, 0x4e38, 0x5853, 0x3056, 0x5855, 0x584c, 0x5852, 0x5859, + 0x3744, 0x584d, 0xac64, 0x4d5d, + /* 0x6180 */ + 0x4d2b, 0x585c, 0x5860, 0x745d, 0x417e, 0x4e79, 0x5861, 0xac66, + 0xac67, 0x585e, 0x585b, 0xac68, 0xac69, 0x585a, 0x585f, 0x4a30, + 0xac6a, 0x4634, 0xac6b, 0x3746, 0x5862, 0x585d, 0xac6c, 0x5863, + 0x377b, 0x3231, 0x7460, 0x586b, 0x745f, 0x3438, + /* 0x61C0 */ + 0x5869, 0x586a, 0x3a29, 0x5868, 0x5866, 0x5865, 0x586c, 0x5864, + 0x586e, 0x327b, 0xac6e, 0xac6f, 0xac70, 0x5870, 0x586f, 0x4428, + 0x5873, 0xac71, 0x5871, 0x5867, 0x377c, 0x5872, 0x5876, 0x5875, + 0x5877, 0x5874, + /* 0x6200 */ + 0x5878, 0x5879, 0x587a, 0x4a6a, 0x587c, 0x587b, 0x3d3f, 0x402e, + 0x3266, 0x327c, 0x587d, 0xac73, 0x303f, 0x404c, 0x587e, 0x6c43, + 0x5921, 0x3761, 0x5922, 0x7462, 0xac74, 0x406f, 0xac75, 0x5923, + 0x5924, 0x353a, 0x5925, 0x5926, 0x5927, 0x4257, 0x384d, 0x4c61, + 0x7463, 0x4b3c, + /* 0x6240 */ + 0x3d6a, 0x5928, 0x7464, 0xac76, 0x4070, 0x6e3d, 0x4862, 0x3c6a, + 0xac77, 0x3a4d, 0x5929, 0xac78, 0xac79, 0x4247, 0x4a27, 0x7465, + 0x4271, 0x7466, 0x592c, 0x592a, 0x592d, 0xac7a, 0x592b, 0xac7b, + 0x592e, 0xac7d, 0x4a31, 0x7467, 0x3037, 0xac7e, 0x495e, 0x4863, + 0xac7c, 0x592f, 0x5932, 0x3e35, + /* 0x6280 */ + 0x353b, 0x5930, 0x5937, 0x3e36, 0x7468, 0x5931, 0x4744, 0x4d5e, + 0x5933, 0x5934, 0x5938, 0x456a, 0x5935, 0x3933, 0x405e, 0xad21, + 0x5946, 0x4834, 0x4272, 0xad22, 0x4864, 0x5a2d, 0x4a7a, 0x4471, + 0x4b75, 0x593b, 0x3221, 0x436a, + /* 0x62C0 */ + 0x5944, 0x7469, 0x4334, 0x593e, 0x5945, 0x5940, 0x5947, 0x5943, + 0x5942, 0x476f, 0x593c, 0x327d, 0x593a, 0x3571, 0x4273, 0x5936, + 0xad23, 0x746a, 0x5939, 0x3934, 0x405b, 0x3e37, 0x5941, 0x4752, + 0x3572, 0x3348, 0x3367, 0x3f21, 0x5949, 0x594e, 0x594a, 0x377d, + 0x594f, 0x3b22, 0x3969, 0x746b, 0xad25, 0x3d26, 0x593d, + /* 0x6300 */ + 0x3b7d, 0x594c, 0xad26, 0x3b58, 0x594d, 0x3044, 0x746c, 0x5948, + 0xad27, 0xad28, 0x4429, 0x746d, 0x3573, 0x3634, 0x594b, 0x3027, + 0x3a43, 0x3f36, 0xad2b, 0xad2c, 0x746e, 0x4472, 0xad2d, 0xad2e, + 0x4854, 0x5951, 0x415e, + /* 0x6340 */ + 0xad2f, 0x746f, 0xad30, 0x422a, 0x3b2b, 0x5952, 0xad31, 0x5954, + 0x5950, 0x4a61, 0x443d, 0xad33, 0x415c, 0x7470, 0x4a7b, 0x3c4e, + 0x5960, 0x595f, 0xad36, 0x3f78, 0x377e, 0x5959, 0x3e39, 0x4668, + 0x4731, 0x7471, + /* 0x6380 */ + 0x5957, 0x415d, 0xad37, 0x3c78, 0x595c, 0x3e38, 0x5956, 0x595b, + 0x4753, 0xad3a, 0x5955, 0x3721, 0xad38, 0x335d, 0x595d, 0x4e2b, + 0x3a4e, 0x4335, 0x595a, 0x405c, 0x3935, 0x3f64, 0x3166, 0x413c, + 0x5958, 0x3545, 0x3747, 0x444f, 0x595e, 0x415f, 0xad3b, 0x5961, + /* 0x63C0 */ + 0x5963, 0x4237, 0x5969, 0x5964, 0x5966, 0x4941, 0x4473, 0x5967, + 0xad3d, 0xad3e, 0x4d2c, 0x4d48, 0x3439, 0xad3f, 0xad40, 0x302e, + 0x5965, 0x7472, 0x5962, 0xad41, 0xad42, 0x7473, 0x3478, 0xad43, + 0x3167, 0x7474, 0x5968, 0xad3c, 0x4d49, + /* 0x6400 */ + 0x596c, 0xad44, 0x423b, 0x5973, 0x7475, 0x596d, 0x7476, 0x596a, + 0x5971, 0x5953, 0xad45, 0x7477, 0xad46, 0x596e, 0x5972, 0xad47, + 0x4842, 0x456b, 0xad48, 0x596b, 0x596f, 0x3748, 0x3a71, + /* 0x6440 */ + 0x405d, 0x5977, 0x7479, 0x4526, 0xad49, 0xad4a, 0xad4b, 0x747a, + 0x5974, 0x4b60, 0x747b, 0x5975, 0xad4c, 0x5976, 0x4c4e, 0x7478, + 0x4022, 0xad4d, + /* 0x6480 */ + 0x3762, 0xad4e, 0x597d, 0xad4f, 0x3b35, 0x597a, 0x5979, 0x4732, + 0xad50, 0x4635, 0xad51, 0x4531, 0x597b, 0x597c, 0x496f, 0x4745, + 0x3b23, 0x4071, 0x4b50, 0x3349, 0x5a25, 0x597e, 0x747d, 0x747e, + /* 0x64C0 */ + 0x4d4a, 0x5a27, 0x7521, 0x5a23, 0x5a24, 0x7522, 0xad52, 0xad53, + 0x4160, 0x747c, 0x7523, 0x5a22, 0x593f, 0xad54, 0xad55, 0x5a26, + 0x5a21, 0x5a2b, 0x5a2c, 0x4527, 0x5a2e, 0xad57, 0xad58, 0x3b24, + 0x5a29, 0x353c, 0x5a2f, 0x5a28, 0x5a33, 0x5a32, 0x5a31, 0x7524, + 0x5a34, 0x7525, 0x5a36, 0x3e71, 0xad59, + /* 0x6500 */ + 0x5a35, 0xad5a, 0x5a39, 0xad5c, 0xad5d, 0xad5e, 0x5a37, 0x5a38, + 0x5970, 0xad60, 0x7526, 0x5a3b, 0x5a3a, 0x7527, 0x5978, 0x5a3c, + 0x5a30, 0x3b59, 0xad61, 0x5a3d, 0x5a3e, 0x5a40, 0x5a3f, 0x5a41, + 0x327e, 0x3936, 0x4a7c, 0x402f, + /* 0x6540 */ + 0xad62, 0x384e, 0x5a43, 0x5a46, 0x4952, 0x355f, 0xad63, 0x5a45, + 0x5a44, 0x4754, 0x5a47, 0x3635, 0x5a49, 0x5a48, 0x343a, 0x3b36, + 0x4658, 0x7529, 0xad64, 0x3749, 0x3f74, 0x5a4a, 0x4030, 0x4528, + 0x495f, 0x5a4b, 0xad65, + /* 0x6580 */ + 0xad66, 0x5a4c, 0x5a4d, 0xad67, 0xad68, 0x4a38, 0x555d, 0x4046, + 0xad69, 0x494c, 0x3a58, 0x4865, 0x4843, 0x454d, 0x4e41, 0x5a4f, + 0x3c50, 0x752a, 0x5a50, 0x3036, 0x3654, 0x404d, 0x4960, 0x5a51, + 0x3b42, 0x4347, 0x3b5b, 0x3f37, 0xad6a, 0xad6b, 0x5a52, 0xad6c, + 0x4a7d, 0x3177, 0x3b5c, 0xad6d, + /* 0x65C0 */ + 0x5a55, 0xad6e, 0x5a53, 0x5a56, 0x4e39, 0x5a54, 0xad6f, 0x407b, + 0x5a57, 0x4232, 0x5a58, 0xad70, 0x347a, 0x5a5a, 0x5a59, 0x5a5b, + 0x5a5c, 0x347b, 0x467c, 0x4336, 0x356c, 0x3b5d, 0x4161, 0x3d5c, + 0x3030, 0x5a5d, 0xad72, 0xad73, 0x3222, 0x5a61, 0xad74, + /* 0x6600 */ + 0x752c, 0x3937, 0x5a60, 0xad75, 0x3a2b, 0x3e3a, 0xad76, 0x752d, + 0x5a5f, 0x3e3b, 0x4c40, 0x3a2a, 0x3057, 0x404e, 0x752e, 0x5a66, + 0x752f, 0x4031, 0x3147, 0xad77, 0x7531, 0x7532, 0x3d55, 0x4b66, + 0x3a72, 0xad78, 0x7533, 0x3e3c, 0x4027, 0x7534, 0x7535, 0x7536, + 0x5a65, 0x5a63, 0x5a64, 0x7530, 0x436b, 0x5b26, + /* 0x6640 */ + 0x5a6a, 0x3b7e, 0x3938, 0x5a68, 0xad79, 0x7538, 0x5a69, 0x3f38, + 0x7539, 0xad7b, 0x5a67, 0xad7a, 0x3b2f, 0xad7e, 0x753b, 0x753c, + 0xae21, 0x5a6c, 0x5a6b, 0x5a70, 0x753d, 0x5a71, 0xae22, 0x5a6d, + 0x753e, 0x3322, 0x5a6e, 0x5a6f, 0x4855, 0xae25, 0xae26, 0xae27, + 0xae28, 0x4961, 0x374a, 0x5a72, 0x753f, 0x4032, 0x3e3d, 0x7540, + 0x7541, 0x4352, 0xae29, + /* 0x6680 */ + 0xae2a, 0x3647, 0x5a73, 0x5a77, 0x324b, 0x5a74, 0x5a76, 0x7542, + 0x5a75, 0xae2b, 0x3d6b, 0xae2c, 0x4348, 0x3045, 0x5a78, 0xae2d, + 0x5a79, 0x7544, 0x442a, 0x4e71, 0x3b43, 0xae2f, 0x4a6b, 0xae30, + 0x7545, 0x4b3d, 0xae31, 0x5b22, 0x5a7b, 0x7546, 0x5a7e, 0x5a7d, + 0xae33, + /* 0x66C0 */ + 0x5a7a, 0x5b21, 0x7547, 0x465e, 0x7548, 0x5a7c, 0x5b23, 0x3d6c, + 0x5b24, 0x754a, 0x4d4b, 0x4778, 0x5b25, 0x5b27, 0x754b, 0x5b28, + 0xae35, 0x5b29, 0x364a, 0x3148, 0x3939, 0x5b2a, 0x5b2b, 0x3d71, + 0x4162, 0x754c, 0x7537, 0x5258, 0x413e, 0x413d, 0x4258, + /* 0x6700 */ + 0x3a47, 0xae37, 0x5072, 0xae38, 0x376e, 0x4d2d, 0x4a7e, 0x497e, + 0x5b2c, 0xae39, 0x754d, 0x3a73, 0x443f, 0x5b2d, 0x4f2f, 0xae3b, + 0x4b3e, 0x442b, 0x5b2e, 0x347c, 0x5b2f, 0x5b30, 0x4c5a, 0x4c24, + 0x4b76, 0x4b5c, 0x3b25, 0x5b32, 0x3c6b, 0x754f, 0x4b51, 0x5b34, + 0x5b37, 0x5b36, 0x3479, 0x3560, 0x5b33, + /* 0x6740 */ + 0x5b35, 0x5b38, 0x7551, 0x7552, 0x3f79, 0xae3e, 0xae3f, 0x4d7b, + 0x3049, 0x3a60, 0x423c, 0x3c5d, 0xae40, 0x3e73, 0x5b3b, 0x454e, + 0xae41, 0x5b39, 0x422b, 0x5b3a, 0x3e72, 0x4c5d, 0x5b3c, 0x5b3d, + 0x4d68, 0x7550, 0x5b42, 0x393a, 0x4755, 0x5b3f, 0x456c, 0x5a5e, + 0x5a62, 0xae45, 0x354f, 0xae46, 0x4747, 0x7553, 0x5b41, 0x3e3e, + 0x4844, + /* 0x6780 */ + 0x7554, 0x5b47, 0x487a, 0x5b3e, 0x5b44, 0x5b43, 0x404f, 0xae48, + 0x7555, 0x4b6d, 0x4e53, 0x7556, 0x4b67, 0x7557, 0x324c, 0x3b5e, + 0x4f48, 0x5b46, 0x3f75, 0x5b45, 0x5b40, 0x384f, 0xae4c, 0xae4d, + 0x5b4c, 0x5b4a, 0x324d, 0x5b48, 0x5b4e, 0x5b54, 0x7558, + /* 0x67C0 */ + 0x755a, 0x4248, 0xae4e, 0x4a41, 0x5b56, 0xae4f, 0x4922, 0x5b55, + 0x4770, 0x4b3f, 0x343b, 0xae50, 0x4077, 0x3d40, 0x755b, 0x4453, + 0xae51, 0x4d2e, 0xae52, 0x5b51, 0x5b50, 0x5b52, 0x5b4f, 0x5b57, + 0x5b4d, 0x5b4b, 0x5b53, 0x5b49, 0xae53, 0x436c, 0x4c78, 0x3c46, + 0x3a74, 0xae54, 0x7559, 0x3a3a, 0x755c, 0x4b6f, 0x3341, + /* 0x6800 */ + 0x755d, 0x444e, 0x464a, 0x3149, 0xae4b, 0x4072, 0x4034, 0x372a, + 0xae58, 0x755f, 0x5b59, 0xae59, 0x393b, 0x337c, 0x5b5b, 0x3374, + 0x5b61, 0x7560, 0xae5a, 0x7561, 0x5b5e, 0xae5c, 0x4073, 0x334b, + 0x3a2c, 0xae5d, 0x334a, 0x3a4f, 0xae5e, + /* 0x6840 */ + 0x5b5c, 0x3765, 0x374b, 0x456d, 0xae5f, 0xae60, 0x5b5a, 0x3046, + 0xae61, 0xae62, 0x5b5d, 0x5b5f, 0x364d, 0x372c, 0x755e, 0x343c, + 0x354b, 0xae63, 0xae64, 0x5b62, 0x7562, 0x3a79, 0x4b71, 0x3b37, + 0x5b63, 0x4930, 0xae66, 0xae67, 0x7563, 0x5b6f, 0x7564, 0x3233, + 0x5b64, 0xae68, 0xae69, 0x5b75, 0x5b65, + /* 0x6880 */ + 0x4e42, 0xae6a, 0x5b6c, 0x475f, 0x5b74, 0x5b67, 0xae6b, 0x3034, + 0x5b69, 0xae6c, 0x393c, 0xae6e, 0xae6f, 0xae70, 0x5b6b, 0xae71, + 0x5b6a, 0x5b66, 0x5b71, 0x3e3f, 0x7566, 0x7567, 0x546d, 0x3868, + 0x4d7c, 0xae72, 0xae73, 0x5b68, 0x4474, 0x3323, 0x3a2d, 0x7568, + 0x5b60, 0xae74, 0x5b70, 0x3361, 0x5b6e, 0x5b72, 0xae75, 0x456e, + /* 0x68C0 */ + 0xae7a, 0x347e, 0xae7b, 0x5c32, 0x7569, 0x4c49, 0x5b77, 0x347d, + 0xae7c, 0x5b7e, 0xae7d, 0x756a, 0x4b40, 0x5c21, 0x5c23, 0xae7e, + 0x5c27, 0x5b79, 0xaf21, 0x432a, 0x456f, 0x5c2b, 0x5b7c, 0x5c28, + 0xaf22, 0xaf23, 0x5c22, 0x756b, 0xaf24, 0x756c, 0x3f39, 0x5c2c, + 0x756d, 0x756e, 0x4033, 0xaf25, 0x5c2a, 0x343d, 0xae76, 0x756f, + /* 0x6900 */ + 0x4f50, 0x5b76, 0xaf26, 0x5c26, 0x3058, 0xaf27, 0x5b78, 0x7570, + 0x4c3a, 0x5b7d, 0x3f22, 0x4447, 0x5b73, 0x5c25, 0x3f7a, 0x5c2f, + 0x3371, 0x3821, 0x5c31, 0x5b7a, 0x5c30, 0x5c29, 0x5b7b, 0x5c2d, + 0x5c2e, 0x5c3f, 0x464e, 0x7573, 0x5c24, 0x5c3b, 0xaf2b, 0x5c3d, + 0x4458, + /* 0x6940 */ + 0x7574, 0xaf2d, 0x7571, 0x4d4c, 0x4976, 0x5c38, 0x424a, 0x7575, + 0x5c3e, 0x413f, 0x5c35, 0x5c42, 0x5c41, 0x466f, 0x5c40, 0x466a, + 0x7576, 0x7577, 0x7578, 0xaf2e, 0x5c44, 0x5c37, 0xaf2f, 0x3648, + 0x5c3a, 0x3d5d, 0xaf30, 0x4760, 0x5c3c, 0x364b, 0x5c34, 0x5c36, + 0x5c33, 0xaf31, 0x4f30, 0x335a, 0x5c39, 0xaf32, + /* 0x6980 */ + 0x7579, 0x5c43, 0x3335, 0x3a67, 0x315d, 0x5c54, 0xaf33, 0x4f31, + 0x5c57, 0xaf35, 0xaf36, 0x3f3a, 0x5c56, 0x5c55, 0x757b, 0xaf37, + 0x5c52, 0x757c, 0x5c46, 0xaf38, 0x5c63, 0x5c45, 0x5c58, 0xaf39, + 0xaf3a, 0x5c50, 0xaf3b, 0x5c4b, 0x5c48, + /* 0x69C0 */ + 0xaf3c, 0x5c49, 0x5c51, 0x7422, 0x5c4e, 0x393d, 0x4448, 0x4164, + 0x5c4c, 0x757d, 0x5c47, 0xaf3d, 0x5c4a, 0xaf3e, 0x4d4d, 0x4b6a, + 0x5c4f, 0x5c59, 0x7622, 0xaf44, 0x5c61, 0x5c5a, 0x7623, 0x7624, + 0x5c67, 0x5c65, 0xaf45, 0xaf46, 0x5c60, 0xaf47, 0xaf49, 0x7625, + 0x7626, 0x5c5f, 0x4450, 0x4165, 0xaf4a, 0x5c5d, + /* 0x6A00 */ + 0x5c5b, 0x5c62, 0x5c68, 0x4875, 0x5c6e, 0x7627, 0xaf4b, 0x5c69, + 0x5c6c, 0x5c66, 0x7628, 0x4374, 0x4938, 0xaf4c, 0x5c5c, 0xaf4d, + 0x5c64, 0x3e40, 0x4c4f, 0x5c78, 0x5c6b, 0x3822, 0x3223, 0x335f, + 0x5c53, 0xaf41, 0xaf4f, 0xaf50, 0xaf51, 0x3e41, 0x5c70, 0x5c77, + 0x3c79, 0x3372, 0x762a, 0x432e, 0x762b, 0xaf52, + /* 0x6A40 */ + 0x5c6d, 0x762c, 0xaf53, 0x5c72, 0x5c76, 0xaf54, 0x3636, 0xaf56, + 0x762d, 0xaf57, 0x762e, 0x354c, 0x5c74, 0x762f, 0x3521, 0x464b, + 0x5c73, 0xaf58, 0x5c75, 0x7630, 0x5c6f, 0x7631, 0x5c71, 0xaf55, + 0xaf5a, 0x3360, + /* 0x6A80 */ + 0x4349, 0xaf5b, 0x5c7c, 0x7633, 0xaf5c, 0x5c7a, 0x3869, 0x5c79, + 0xaf5e, 0x7634, 0x5d21, 0x5b58, 0x7635, 0x7636, 0xaf5f, 0x5c7b, + 0xaf60, 0x5c7d, 0x5c7e, 0x7637, 0x5d2c, 0xaf62, 0x5d28, 0x5b6d, + 0x5d27, 0x5d26, 0x5d23, 0xaf63, + /* 0x6AC0 */ + 0x5c6a, 0x5d25, 0x5d24, 0xaf64, 0xaf66, 0x5d2a, 0x4f26, 0xaf65, + 0x5d2d, 0x367b, 0xaf67, 0xaf68, 0x5d29, 0x5d2b, 0x7638, 0x7639, + 0x4827, 0x5d2e, 0xaf6b, 0xaf6c, 0xaf6d, 0xaf6e, 0x5d32, 0x5d2f, + 0xaf6f, + /* 0x6B00 */ + 0x4d73, 0x5d30, 0x5c5e, 0xaf71, 0xaf72, 0xaf73, 0xaf74, 0x5d33, + 0x5d34, 0xaf76, 0x763c, 0x3135, 0x763d, 0x5d36, 0x3767, 0x3c21, + 0x3655, 0x3224, 0x763e, 0xaf78, 0x4d5f, 0x763f, 0x5d38, 0x5d37, + 0x5d3a, 0x353d, 0x3656, 0x343e, + /* 0x6B40 */ + 0x5d3d, 0x7640, 0x5d3c, 0x5d3e, 0xaf79, 0x324e, 0x4337, 0x5d3f, + 0x343f, 0x5d41, 0x7641, 0xaf7a, 0x5d40, 0x5d42, 0x5d43, 0x7642, + 0x5d44, 0x3b5f, 0x4035, 0x3a21, 0x7643, 0x4970, 0x7644, 0x4a62, + 0x4f44, 0xaf7b, 0x3b75, 0x3a50, 0x4e72, 0xaf7c, 0x7645, 0x5d45, + 0x5d46, 0xaf7d, 0x3b60, 0x5d47, + /* 0x6B80 */ + 0x5d48, 0xaf7e, 0x7646, 0x5d4a, 0x5d49, 0x4b58, 0x3d5e, 0x3c6c, + 0x3b44, 0x5d4b, 0x5d4d, 0x3f23, 0x5d4c, 0xee21, 0x5d4e, 0x5d4f, + 0x7647, 0x5d50, 0x5d51, 0x7648, 0xee22, 0x5d52, 0x5d54, 0x5d53, + 0x5d55, 0x3225, 0x434a, 0x5d56, 0x3b26, 0x334c, 0x5d57, 0xee24, + 0xee25, 0x4542, + /* 0x6BC0 */ + 0x544c, 0x3523, 0x5d58, 0xee26, 0xee27, 0xee28, 0x5d59, 0x4a6c, + 0x4b68, 0x764a, 0x4647, 0x5d5a, 0x4866, 0x764b, 0x764c, 0x487b, + 0xee29, 0x4c53, 0x5d5b, 0xee2a, 0xee2b, 0x5d5d, 0x5d5c, 0xee2c, + 0x5d5f, 0xee2d, 0x5d5e, 0x764d, + /* 0x6C00 */ + 0xee2e, 0x764e, 0x5d61, 0xee2f, 0xee30, 0x3b61, 0x764f, 0x4c31, + 0x5d62, 0x5d63, 0x3524, 0x5d64, 0x5d66, 0x5d65, 0x7650, 0x3f65, + 0xee31, 0xee32, 0x4939, 0x314a, 0xee33, 0x4845, 0xee35, + /* 0x6C40 */ + 0x4475, 0x3d41, 0x3561, 0xee36, 0x4846, 0x3c2e, 0x5d68, 0x3440, + 0x7651, 0x3178, 0xee37, 0x7652, 0x4672, 0x5d67, 0x393e, 0x4353, + 0x5d69, 0xee4f, 0x5d71, 0x5d6a, 0xee38, 0x4241, 0x3562, 0x5d72, + 0x7654, 0x7655, 0x3768, 0x3525, 0x5d70, + /* 0x6C80 */ + 0x5d6e, 0x5d6b, 0x4d60, 0xee39, 0x7656, 0x7657, 0x4440, 0xee3a, + 0x4659, 0x5d6c, 0x5d74, 0x5d73, 0x3723, 0xee3c, 0xee3d, 0x322d, + 0xee3e, 0x7658, 0x3a3b, 0x5d6d, 0x5d6f, 0x7659, 0x4b57, 0x4274, + 0x7653, 0x4b77, 0xee3f, 0x5d7c, 0x5d7d, 0x324f, 0x4a28, 0x4c7d, + 0x5e21, 0x3c23, 0x3e42, 0x5d78, 0x5d7e, 0x3168, + /* 0x6CC0 */ + 0x3637, 0xee40, 0x5d75, 0x5d7a, 0x765b, 0x4074, 0x4771, 0x4867, + 0xee41, 0x5d77, 0x765c, 0x4b21, 0xee43, 0x5d79, 0x5e24, 0xee44, + 0x5e22, 0xee45, 0x5d7b, 0x765d, 0x4b22, 0x4748, 0x3563, 0x4525, + 0x436d, 0xee46, 0x5e25, 0x765e, 0xee47, 0xee48, 0x765f, 0x5e23, + 0x4259, 0x5d76, 0x314b, 0x765a, + /* 0x6D00 */ + 0xee4a, 0x7661, 0xee4b, 0x4d4e, 0x5e30, 0x7662, 0x5e2f, 0x4076, + 0x5e2c, 0x4d6c, 0x4636, 0x5e26, 0xee4c, 0x4445, 0xee4d, 0xee4e, + 0x314c, 0x393f, 0x5e29, 0x7663, 0xee50, 0x7664, 0x3d27, 0x5e2e, + 0xee65, 0x5e2d, 0x5e28, 0x5e2b, 0x7665, 0x3368, 0xee51, 0x5e2a, + 0x4749, 0x7666, + /* 0x6D40 */ + 0x4e2e, 0x3e74, 0x4075, 0x7667, 0x5e36, 0x5e34, 0xee52, 0x494d, + 0xee53, 0xee54, 0x5e31, 0x5e33, 0x7668, 0x313a, 0x3940, 0x4f32, + 0x333d, 0x4962, 0xee55, 0x4d61, 0x3324, 0x3f3b, 0x5e35, + /* 0x6D80 */ + 0xee56, 0xee57, 0x766a, 0x5e3a, 0x766b, 0x3e43, 0x766c, 0xee58, + 0x4d30, 0xee59, 0x5e37, 0xee5a, 0x5e32, 0x766d, 0x5e38, 0xee5b, + 0x4e5e, 0x4573, 0x4642, 0x766e, 0xee61, 0x766f, 0xee62, 0x3336, + 0x3155, 0xee63, 0x5e3e, 0x5e41, 0x4e43, 0x7670, + /* 0x6DC0 */ + 0x4d64, 0xee64, 0x7671, 0x5e48, 0x5e42, 0x5e3f, 0xee66, 0x4e54, + 0x5e45, 0xee67, 0xee68, 0xee69, 0x3d4a, 0x5e47, 0x5e4c, 0x7672, + 0x4571, 0x5e4a, 0x7673, 0x7674, 0x7675, 0x5e44, 0xee6a, 0x4338, + 0x5e4b, 0x5e40, 0x5e46, 0xee6b, 0x5e4d, 0x307c, 0x5e43, 0x5e4e, + 0x3f3c, 0x3d5f, 0x4a25, 0xee6c, 0x3a2e, 0x5e3b, 0x5e49, 0x453a, + 0x7676, + /* 0x6E00 */ + 0x4036, 0x3369, 0x3a51, 0x3e44, 0x5e3d, 0x3d42, 0x374c, 0x5e3c, + 0xee5d, 0x5e52, 0x3d6d, 0x383a, 0x5e61, 0xee6e, 0x5e5b, 0x3574, + 0x454f, 0xee6f, 0x5e56, 0x5e5f, 0x302f, 0x3132, 0xee70, 0x3239, + 0x5e58, 0x422c, 0x5e4f, 0x5e51, 0x3941, 0xee72, 0x7678, 0xee6d, + 0x5e62, 0x5e5d, 0xee73, 0x5e55, + /* 0x6E40 */ + 0x5e5c, 0x7679, 0xee74, 0xee75, 0x4c2b, 0xee76, 0xee77, 0x5e5a, + 0x5e5e, 0xee78, 0xee79, 0xee7a, 0xee7b, 0x3850, 0xee7c, 0x3e45, + 0x4339, 0x767a, 0x767b, 0x5e54, 0xee7d, 0x4d2f, 0x5e57, 0x5e50, + 0x4572, 0x5e53, 0x5e59, 0x4f51, 0x3c3e, + /* 0x6E80 */ + 0x4b7e, 0x5e63, 0x482e, 0x5e6f, 0x383b, 0xef21, 0x3d60, 0x5e65, + 0x4e2f, 0x3942, 0x5e72, 0x306e, 0x5e70, 0xef22, 0x5e64, 0x767c, + 0x5e6a, 0x767d, 0x5e6c, 0xef23, 0x4d4f, 0x5e67, 0x452e, 0x5e69, + 0xef24, + /* 0x6EC0 */ + 0x767e, 0x5e71, 0xef25, 0x5e6b, 0x4c47, 0x7721, 0x5e66, 0xef26, + 0x3c22, 0x5e7e, 0x7722, 0x336a, 0x5e68, 0x5e6d, 0x5e6e, 0xef27, + 0x426c, 0x425a, 0xef29, 0x5e76, 0x5e7c, 0x5e7a, 0x4529, 0x5f23, + 0x5e77, 0xef2a, 0xef2b, 0x5e78, 0x5e60, + /* 0x6F00 */ + 0x3579, 0x493a, 0x3c3f, 0x3977, 0xef2c, 0xef2d, 0x4f33, 0x7723, + 0x5e74, 0x5f22, 0x3169, 0x4166, 0xef2e, 0x7724, 0x4779, 0x3441, + 0x4e7a, 0xef2f, 0x7726, 0x4c21, 0x4452, 0x7727, 0x5e7b, 0x5e7d, + 0x7728, 0xef28, 0xef30, 0x4132, 0xef31, 0x5f21, 0x5e79, + /* 0x6F40 */ + 0x5e73, 0x3443, 0x7729, 0xef33, 0x3769, 0xef34, 0x5f2f, 0x772a, + 0xef35, 0x5f2a, 0x4078, 0x772b, 0x3363, 0xef36, 0x772c, 0x772d, + 0x3d61, 0x5f33, 0xef37, 0x5f2c, 0x442c, 0x5f29, 0x4459, 0x5f4c, + 0x5f26, 0x5f25, 0x5f2e, 0xef39, 0x772e, + /* 0x6F80 */ + 0x5f28, 0x5f27, 0x5f2d, 0x4021, 0x5f24, 0x772f, 0x7730, 0x7731, + 0x5f30, 0xef3a, 0x5f31, 0x7732, 0xef3b, 0x3442, 0xef38, 0xef3d, + 0x7733, 0x5f36, 0x5f35, 0x5f37, 0xef3e, 0x7734, 0x5f3a, 0xef3f, + 0x4543, 0x5f34, 0xef41, 0x7735, 0x5f38, 0x7736, 0xef3c, + /* 0x6FC0 */ + 0x3763, 0x4279, 0x5f32, 0x473b, 0x5f39, 0x7737, 0xef42, 0xef43, + 0x7738, 0x5f3e, 0x5f3c, 0x5f3f, 0xef44, 0x5f42, 0xef45, 0x5f3b, + 0x396a, 0x4728, 0x5e39, 0xef46, 0x4d74, 0x5f3d, 0x5f41, 0x4275, + 0x773a, 0x5f40, 0x5f2b, 0x773b, 0x6f69, 0x7739, 0x5f45, 0xef48, + 0x5f49, + /* 0x7000 */ + 0xef49, 0x5f47, 0x773c, 0x773d, 0xef4a, 0x5f43, 0xef4b, 0x5f44, + 0x5f48, 0x5f46, 0x494e, 0x5f4e, 0x5f4b, 0x5f4a, 0x5f4d, 0x4654, + 0x5f4f, 0xef4c, 0x4375, 0x426d, 0x773e, 0x4025, 0x5f50, 0x5f52, + 0xef4e, 0xef4f, 0xef50, 0x5f51, + /* 0x7040 */ + 0xef51, 0xef52, 0x773f, 0xef53, 0x5e75, 0x7742, 0x5f53, 0xef55, + 0x4667, 0x7740, 0x7741, 0x5f54, 0x7743, 0xef56, 0xef57, 0x3250, + 0xef58, 0xef59, 0x4574, 0x3325, 0x7744, 0xef5a, 0x3564, 0x3c5e, + 0x3a52, 0xef5b, + /* 0x7080 */ + 0xef5c, 0x7745, 0xef5d, 0x4f27, 0x3f66, 0x316a, 0x5f56, 0xef5e, + 0xef5f, 0x5f55, 0xef62, 0x7746, 0x7747, 0x5f59, 0x433a, 0x5f5c, + 0x5f57, 0xef63, 0x5f5b, 0x7748, 0x5f5a, 0x4540, 0x3059, 0xef60, + /* 0x70C0 */ + 0x4e75, 0xef66, 0x5f5e, 0x3128, 0xef67, 0xef68, 0x7749, 0x774a, + 0x5f60, 0xef69, 0x5f5f, 0x5f5d, 0x774b, 0xef65, 0x5f58, 0x4b23, + 0x5f62, + /* 0x7100 */ + 0xef6a, 0xef6b, 0xef6c, 0xef6d, 0xef6e, 0x5f61, 0xef6f, 0x774c, + 0x316b, 0x5f64, 0x4a32, 0x5f63, 0x774e, 0x774f, 0x4c35, 0x3e47, + 0x774d, 0x7750, 0xef71, 0x7751, 0xef72, 0x4133, 0x3e46, + /* 0x7140 */ + 0x7752, 0x7753, 0x4e7b, 0xef74, 0x5f6a, 0x4079, 0xef73, 0x7754, + 0x7756, 0xef75, 0x5f66, 0x5f6b, 0x316c, 0x7757, 0xef76, 0x7758, + 0x5f69, 0x4761, 0x5f65, 0x5f68, 0x3e48, 0x7759, 0x4851, 0x5f6c, + 0x3c51, 0x407a, + /* 0x7180 */ + 0xef79, 0x5f6f, 0x775b, 0x775c, 0x5f67, 0x3727, 0x5f6d, 0x775d, + 0x4d50, 0x5f70, 0xef78, 0x7426, 0xef7a, 0x3d4f, 0xef7b, 0xef7c, + 0x5f71, 0x5f72, 0xef7d, 0xef7e, 0x472e, 0xf021, 0x5f74, 0x775f, + 0x5f75, + /* 0x71C0 */ + 0x775e, 0x4733, 0x7760, 0x4575, 0x5f77, 0xf023, 0x5f79, 0x4e55, + 0x5f76, 0xf024, 0x5f78, 0x316d, 0x5f73, 0xf025, 0xf026, 0x535b, + 0x5f7a, 0x4167, 0x3b38, 0x5f7c, 0x5f7b, 0x3f24, 0x5259, 0x5f7d, + 0x6021, 0x5f6e, 0x5f7e, 0x7761, 0x6022, + /* 0x7200 */ + 0x7762, 0x477a, 0xf027, 0x6023, 0x6024, 0x7763, 0x6025, 0x6026, + 0x445e, 0xf02a, 0x6028, 0x6027, 0x6029, 0x602a, 0xf02b, 0x3c5f, + 0x4963, 0xf02c, 0xf02d, 0x4c6c, 0x602b, 0x602c, 0x4156, 0x3c24, + 0x602d, + /* 0x7240 */ + 0x602e, 0xf02f, 0x602f, 0x4a52, 0x4847, 0x6030, 0x4757, 0x442d, + 0xf030, 0x7764, 0x7765, 0xf031, 0x6031, 0x3267, 0x356d, 0x4c46, + 0x4c36, 0x3234, 0x4f34, 0xf032, 0x4b52, 0x4a2a, 0xf034, 0xf035, + 0x4037, 0x6032, 0xf036, 0x4643, 0x3823, 0x6033, 0xf037, + /* 0x7280 */ + 0x3a54, 0x6035, 0x6034, 0x6036, 0x7767, 0xf038, 0x6037, 0x6038, + 0x7768, 0x353e, 0x6039, 0x603a, 0x3824, 0xf03a, 0xf03b, 0x4848, + 0xf03c, 0xf03d, 0x603c, 0x3e75, 0x603b, 0x7769, + /* 0x72C0 */ + 0x776a, 0xf03e, 0x3638, 0x603d, 0x603f, 0x603e, 0xf040, 0x6040, + 0x3851, 0x6041, 0x3669, 0x4140, 0x397d, 0x6043, 0x6044, 0x6042, + 0x3c6d, 0x4648, 0x3639, 0xf043, 0x6046, 0x432c, 0x6045, 0xf044, + 0x776b, 0x4f35, 0x4762, + /* 0x7300 */ + 0xf045, 0x6049, 0xf046, 0x604b, 0x6048, 0xf047, 0xf048, 0x4c54, + 0x604a, 0x604c, 0x4e44, 0x6050, 0x776d, 0x776e, 0x604f, 0x4376, + 0x472d, 0xf04b, 0x3825, 0x604e, 0xf04c, 0xf04d, 0x604d, 0x4d31, + 0x4d32, 0xf04a, 0xf04e, 0x6051, 0x316e, + /* 0x7340 */ + 0x3976, 0x3b62, 0x6052, 0x6053, 0x7770, 0xf04f, 0x6055, 0x3d43, + 0x7771, 0x6057, 0x6056, 0xf051, 0xf052, 0xf054, 0xf055, 0x6058, + 0xf056, 0x334d, 0x605a, 0xf057, 0x6059, 0x605c, 0x605b, 0x7772, + /* 0x7380 */ + 0xf058, 0x383c, 0xf059, 0x4e28, 0x364c, 0xf05a, 0x3226, 0xf05b, + 0x7773, 0x366a, 0xf05c, 0xf05d, 0xf05e, 0x7774, 0x7775, 0x7776, + 0xf05f, 0x7777, 0xf060, 0x3461, 0x7778, 0x4e68, 0x605e, 0xf061, + 0xf062, 0xf063, 0x6060, 0xf064, 0xf065, + /* 0x73C0 */ + 0x6061, 0x3251, 0xf066, 0x605d, 0x7779, 0x3b39, 0xf067, 0x4441, + 0x605f, 0x777a, 0x777b, 0x777c, 0x6064, 0x3c6e, 0xf068, 0x777d, + 0x6062, 0xf069, 0x777e, 0x373e, 0x4849, 0x6063, 0x607e, 0x6069, + 0xf06a, 0xf06c, 0x383d, + /* 0x7400 */ + 0xf06d, 0x3565, 0x6066, 0x4d7d, 0x7821, 0x4e30, 0x7822, 0xf06b, + 0x7823, 0x7824, 0x4276, 0xf06e, 0x6068, 0x7826, 0x7827, 0x7828, + 0x7829, 0x782a, 0x782b, 0x782c, 0x782d, 0xf06f, 0x606a, 0x4e56, + 0x3657, 0x487c, 0x474a, 0xf070, 0x606b, 0x606d, + /* 0x7440 */ + 0xf072, 0x6070, 0xf073, 0x782e, 0x782f, 0x7830, 0x7831, 0xf074, + 0xf075, 0xf071, 0x606c, 0x7832, 0x606f, 0x386a, 0x314d, 0x6071, + 0xf076, 0x3f70, 0x606e, 0x4e5c, 0x7833, 0x6074, 0x7424, 0x6072, + 0x6075, 0x7834, 0x7835, 0x6067, 0x6073, 0xf077, 0x3a3c, 0x6076, + 0x6077, + /* 0x7480 */ + 0xf078, 0x4d7e, 0xf079, 0x7836, 0x7837, 0xf07a, 0x7838, 0x6078, + 0x783d, 0xf07c, 0xf07d, 0x7839, 0xf07e, 0x783a, 0x6079, 0x783b, + 0xf121, 0xf122, 0x6065, 0x783c, 0xf123, 0x783e, 0x607a, 0x783f, + 0x7840, 0xf124, 0xf125, 0x3444, 0x7841, 0xf126, 0xf128, 0xf127, + 0x3c25, 0x7842, + /* 0x74C0 */ + 0x7843, 0x7844, 0x607b, 0x607c, 0x607d, 0xf129, 0xf12a, 0x7845, + 0x313b, 0xf12b, 0x6121, 0x493b, 0x6122, 0x3424, 0x6123, 0x6124, + 0xf12d, 0x6125, 0xf12c, 0x6127, 0x6128, 0x6126, 0x4953, 0x612a, + 0x6129, 0xf12f, 0x7846, + /* 0x7500 */ + 0x7847, 0x612c, 0x612b, 0x612d, 0x612e, 0x6130, 0x612f, 0x3979, + 0x6132, 0x6131, 0x7848, 0x3445, 0x3f53, 0x453c, 0x6133, 0x4038, + 0xf131, 0x3b3a, 0xf132, 0x3179, 0x6134, 0x4d51, 0xf133, 0x4a63, + 0x6135, 0x7849, 0x4544, 0x4d33, 0x3943, 0x3f3d, 0x434b, 0x5234, + 0x442e, 0x3268, 0x6136, 0xf136, 0xf137, + /* 0x7540 */ + 0xf138, 0x6137, 0x613c, 0xf139, 0x613a, 0x6139, 0x5a42, 0x3326, + 0x6138, 0xf13a, 0x305a, 0xf13b, 0x482a, 0xf13c, 0x484a, 0x4e31, + 0x613d, 0x613b, 0x435c, 0x4026, 0x482b, 0x492d, 0x613f, 0x4e2c, + 0x374d, 0x6140, 0x613e, 0x4856, 0x6141, 0xf13d, 0x6142, 0x784a, + 0x305b, 0xf13f, 0xf13e, 0x3e76, 0x6147, 0x6144, 0x466d, 0x6143, + 0x784b, 0xf140, 0xf141, 0xf142, 0x3526, + /* 0x7580 */ + 0xf143, 0x614a, 0x6145, 0x6146, 0x6149, 0x6148, 0x4925, 0xf145, + 0x4142, 0x4141, 0x353f, 0x784c, 0x614b, 0x614c, 0x614d, 0xf147, + 0x614f, 0x614e, 0x3156, 0xf149, 0x6157, 0x4868, 0x6151, 0x6153, + 0xf14a, 0x6155, 0x3f3e, 0x6156, 0x6154, 0x3c40, 0xf14b, + /* 0x75C0 */ + 0xf14c, 0x6150, 0x6152, 0x4942, 0xf14d, 0x3e49, 0x6159, 0x6158, + 0x784e, 0xf14e, 0x615a, 0xf14f, 0x3c26, 0x3a2f, 0x4577, 0x615b, + 0x444b, 0xf150, 0x615d, 0xf151, 0xf152, 0x4e21, 0x615c, 0x784f, + 0xf153, 0x4169, 0xf154, 0xf155, 0x6162, 0xf156, 0x6164, 0x6165, + 0x4354, 0xf157, 0x6163, 0x6160, 0x615e, 0x615f, + /* 0x7600 */ + 0x7850, 0x6161, 0x7851, 0xf158, 0xf15a, 0x7852, 0x6168, 0x6166, + 0x6167, 0xf15b, 0xf15e, 0x7853, 0x7854, 0xf159, 0x7855, 0xf15f, + 0xf160, 0x7856, 0x6169, 0x616b, 0x616c, 0x616d, 0x616e, 0xf162, + 0x7e7d, 0x616a, 0xf163, 0x7857, 0x6170, 0xf165, 0x616f, 0x7858, + 0x6171, 0xf164, + /* 0x7640 */ + 0xf168, 0x4e45, 0x7859, 0x6174, 0x6172, 0x6173, 0xf16a, 0x785a, + 0x3462, 0x4c7e, 0xf16b, 0x4a4a, 0x6176, 0x6175, 0x6177, 0x6178, + 0x785b, 0x785c, 0x617c, 0x6179, 0x617a, 0x617b, 0x617d, 0x785d, + 0xf16d, 0x785e, 0x617e, 0x785f, 0x6221, 0x6222, 0x6223, 0x482f, + 0x4550, 0x6224, 0x4772, 0x4934, + /* 0x7680 */ + 0x6225, 0x7860, 0x6226, 0x452a, 0x3327, 0x3944, 0x6227, 0x6228, + 0x6229, 0x3b29, 0x622b, 0xf16e, 0x622a, 0x622c, 0x622d, 0x7861, + 0xf16f, 0x7862, 0x7863, 0xf171, 0xf170, 0x7864, 0xf172, 0xf173, + 0x7865, 0x4869, 0xf174, 0x622e, 0x622f, 0x7866, 0x7369, 0x6230, + 0x6231, 0x6232, 0x3b2e, + /* 0x76C0 */ + 0x6233, 0x4756, 0x7867, 0x4b5f, 0x314e, 0xf176, 0x3157, 0x7868, + 0x6234, 0x7869, 0x6236, 0x786a, 0x6235, 0x4570, 0x4039, 0x5d39, + 0x6237, 0x4c41, 0x6238, 0x3446, 0x4857, 0x6239, 0x786b, 0x623a, + 0xf178, 0x623b, 0xf179, 0x4c5c, 0x786c, 0x4c55, 0x443e, 0x416a, + 0x623d, 0x786d, 0x3d62, + /* 0x7700 */ + 0x3e4a, 0x6240, 0x623f, 0x623e, 0x487d, 0x786e, 0x3447, 0x3829, + 0xf17b, 0x786f, 0xf17c, 0x6246, 0x6243, 0x3f3f, 0x4c32, 0x6242, + 0x6244, 0x6245, 0x6241, 0xf17d, 0x7870, 0xf17e, 0x7871, 0x6247, + 0x6248, 0x442f, 0x3463, + /* 0x7740 */ + 0x4365, 0x7872, 0x6249, 0x7873, 0x7874, 0xf225, 0x624a, 0x624d, + 0x7875, 0x7876, 0xf226, 0x3f67, 0x7877, 0x4644, 0x624e, 0x4b53, + 0x624b, 0xf227, 0x624c, 0xf229, 0x6251, 0x7878, 0xf22a, 0xf22b, + 0x6250, 0x624f, + /* 0x7780 */ + 0x7879, 0x6253, 0x6252, 0x6254, 0x787a, 0xf22e, 0x6256, 0xf22f, + 0x6255, 0xf230, 0xf231, 0x4a4d, 0xf232, 0x787b, 0x3d56, 0x4e46, + 0x6257, 0x4637, 0x6258, 0x6259, 0x625d, 0x625b, 0x625c, 0x625a, + /* 0x77C0 */ + 0x625e, 0x625f, 0x6260, 0x6261, 0x4c37, 0x6262, 0xf233, 0xf234, + 0x787c, 0x4c70, 0x6263, 0xf235, 0x434e, 0xf236, 0x476a, 0x366b, + 0xf237, 0xf238, 0x433b, 0x6264, 0x363a, 0xf23a, 0x4050, 0xf23b, + 0xf23c, 0x6265, + /* 0x7800 */ + 0x3a3d, 0xf23e, 0xf23f, 0xf240, 0x6266, 0xf241, 0x6267, 0x3826, + 0x3a55, 0xf242, 0x6269, 0xf243, 0x4556, 0x3a56, 0x354e, 0xf244, + 0x787d, 0x4b24, 0x474b, 0x4557, 0x395c, + /* 0x7840 */ + 0x7921, 0x626b, 0xf245, 0x7922, 0x7923, 0x7924, 0x3e4b, 0xf246, + 0x7925, 0xf247, 0x4e32, 0x3945, 0x7926, 0x3827, 0x4823, 0x626d, + 0x626f, + /* 0x7880 */ + 0x386b, 0x626e, 0x4476, 0xf249, 0x6271, 0x3337, 0x626c, 0x486a, + 0x3130, 0xf24a, 0x3a6c, 0x4f52, 0x6270, 0xf24c, 0xf24d, 0xf24e, + 0x6272, 0xf24b, 0x4a4b, 0x4059, 0x6274, 0x792a, 0x6275, 0x7928, + 0x6273, 0x334e, 0xf24f, 0x627b, 0x627a, + /* 0x78C0 */ + 0x3c27, 0x627c, 0x6277, 0xf250, 0x627d, 0x6278, 0xf251, 0xf252, + 0x4858, 0x6276, 0x6279, 0xf253, 0x6322, 0xf254, 0xf255, 0x792b, + 0xf256, 0x6321, 0x4b61, 0x627e, 0x306b, 0x792c, 0x6324, 0x792e, + 0xf257, 0xf258, 0xf259, 0x6323, 0xf25a, + /* 0x7900 */ + 0x792d, 0x3e4c, 0x6325, 0x4143, 0xf25c, 0x6327, 0x6326, 0x6328, + 0xf25d, 0x792f, 0xf25f, 0x6268, 0x626a, 0x632a, 0x6329, 0x7930, + 0xf25e, 0x7931, 0x7932, 0x3c28, 0xf260, 0x4e69, 0x3c52, + /* 0x7940 */ + 0x632b, 0x3737, 0x7935, 0x7936, 0x3540, 0x3527, 0x3b63, 0xf261, + 0x4d34, 0x6331, 0x6330, 0x4144, 0x632d, 0xf262, 0x632f, 0xf263, + 0x793a, 0x3d4b, 0x3f40, 0x632e, 0x632c, 0x472a, 0x3e4d, 0xf265, + 0x493c, 0x3a57, 0xf266, 0x4578, 0x793e, 0x6332, 0x6333, + /* 0x7980 */ + 0x6349, 0x3658, 0x4f3d, 0x4135, 0x6334, 0x3252, 0x4477, 0x4a21, + 0xf267, 0xf268, 0xf269, 0x7942, 0xf26a, 0x6335, 0xf26b, 0x357a, + 0x6336, 0xf26c, 0x6338, 0x6339, 0x4729, 0x7943, 0x633a, 0xf26d, + 0x7944, 0x633b, 0x633c, 0xf26e, 0x3659, 0x3253, 0x4645, + /* 0x79C0 */ + 0x3d28, 0x3b64, 0xf26f, 0xf270, 0x7945, 0x633d, 0x7946, 0x3d29, + 0xf271, 0xf272, 0x324a, 0x4943, 0x7948, 0x633e, 0xf273, 0x486b, + 0x7949, 0x4145, 0x6341, 0x6342, 0x4769, 0x3f41, 0x633f, 0x4361, + 0x794a, 0x6340, 0x794b, 0x3e4e, 0x305c, + /* 0x7A00 */ + 0x3529, 0x794c, 0x6343, 0xf278, 0x4478, 0x6344, 0x4047, 0xf279, + 0x4c2d, 0xf27a, 0x4923, 0x6345, 0x6346, 0x4355, 0xf27b, 0x4e47, + 0xf27c, 0x6348, 0x6347, 0xf27e, 0x3c6f, 0x634a, 0x3070, 0x634d, + 0xf321, 0x794e, 0x634b, 0x3254, 0x374e, 0x634c, 0x3946, + /* 0x7A40 */ + 0x3972, 0x4a66, 0x634e, 0x4b54, 0xf322, 0x6350, 0xf323, 0x4051, + 0x314f, 0x323a, 0x302c, 0xf324, 0x634f, 0xf325, 0xf326, 0x794f, + 0xf327, 0xf328, 0x6351, 0x6352, 0x3e77, 0xf329, 0x6353, 0xf32a, + 0x334f, 0x7950, 0x6355, 0x376a, 0xf32b, 0x3566, 0xf32c, 0x6356, + 0x3675, 0x6357, 0x407c, + /* 0x7A80 */ + 0x464d, 0xf32d, 0x4060, 0x3a75, 0x7952, 0x6358, 0xf32e, 0xf32f, + 0x4362, 0x416b, 0x635a, 0x635c, 0x6359, 0x635b, 0x3722, 0x7953, + 0xf330, 0x635d, 0x3726, 0xf331, 0x3567, 0x4d52, 0x635f, 0x7955, + 0x6360, 0xf334, 0x312e, 0x7956, 0xf335, 0xf336, 0x6363, + /* 0x7AC0 */ + 0x3376, 0x6362, 0x6361, 0x6365, 0x635e, 0x6366, 0x4e29, 0xf338, + 0x6367, 0x7957, 0x6368, 0xf339, 0x5474, 0x636a, 0x6369, 0x636b, + 0x636c, 0x4e35, 0x636d, 0x706f, 0x3e4f, 0x636e, 0x636f, 0x3d57, + 0x4638, 0x6370, 0xf33a, 0xf33b, 0x4328, 0x7958, 0x6371, 0x433c, + 0x6372, 0xf33c, 0x3625, 0x513f, 0x435d, 0x3c33, 0x7959, 0x3448, + /* 0x7B00 */ + 0x6373, 0x6422, 0x6376, 0xf33f, 0x3568, 0x6375, 0x6424, 0x6374, + 0x3e50, 0x795a, 0x6378, 0x6379, 0x452b, 0x637a, 0x335e, 0x3f5a, + 0x4964, 0xf342, 0x637c, 0xf343, 0x4268, 0x795b, 0xf344, 0xf345, + 0xf346, 0x6377, 0x637b, 0x637d, 0x3a7b, 0x795c, 0xf341, + /* 0x7B40 */ + 0xf34a, 0x6426, 0x492e, 0x795d, 0x4826, 0x4579, 0x365a, 0x6425, + 0x6423, 0x795e, 0x4835, 0x637e, 0x435e, 0x457b, 0x457a, 0xf34c, + 0x3a76, 0x6438, 0x795f, 0xf34e, 0x6428, 0xf34f, 0x642a, 0xf350, + 0x642d, 0x7960, 0x642e, 0x7961, 0x642b, 0x642c, 0x7962, 0xf351, + 0x6429, 0x6427, 0xf34d, 0x6421, 0xf349, + /* 0x7B80 */ + 0x4a4f, 0x3255, 0x6435, 0x6432, 0x6437, 0xf354, 0xf355, 0x6436, + 0x4773, 0x4c27, 0x3b3b, 0x6430, 0x6439, 0x6434, 0xf356, 0x6433, + 0x642f, 0x7963, 0x6431, 0x3449, 0x433d, 0x407d, 0xf358, 0x4822, + 0x643e, 0xf359, 0x4824, 0xf35a, + /* 0x7BC0 */ + 0x4061, 0x643b, 0x484f, 0xf35b, 0x643f, 0x4a53, 0x435b, 0xf35c, + 0x643a, 0x643c, 0x643d, 0xf35f, 0xf360, 0x7965, 0x7966, 0xf361, + 0x6440, 0x3c44, 0x4646, 0x6445, 0x6444, 0x6441, 0xf362, 0x4f36, + 0xf363, 0x644a, 0x644e, 0x644b, + /* 0x7C00 */ + 0x6447, 0x7967, 0xf364, 0x6448, 0xf365, 0x644d, 0xf366, 0xf367, + 0x6442, 0x5255, 0x6449, 0x6443, 0x644c, 0x7969, 0x6452, 0x796a, + 0x344a, 0x644f, 0xf368, 0x6450, 0x6451, 0x6454, 0x7968, 0x796b, + 0x796c, 0x6453, 0x4876, 0x6455, 0x4e7c, 0x4a6d, + /* 0x7C40 */ + 0x645a, 0x6457, 0xf369, 0xf36a, 0x6456, 0x4052, 0x6459, 0x645b, + 0xf36b, 0x6458, 0x645f, 0xf36c, 0x645c, 0x796f, 0xf36d, 0x645d, + 0x6446, 0xf36e, 0x645e, 0x6460, 0xf36f, 0x6461, 0x7970, 0xf370, + 0xf371, 0xf372, 0x4a46, 0x6462, 0x7971, 0x4c62, + /* 0x7C80 */ + 0x364e, 0x3729, 0x6463, 0x4a34, 0x3f68, 0x4c30, 0x7972, 0x6464, + 0x4e33, 0x7973, 0x4774, 0x4146, 0x4734, 0x3d4d, 0x3040, 0x7974, + 0x6469, 0x6467, 0x6465, 0x3421, 0xf376, 0x3e51, 0x646a, 0x6468, + 0x6466, 0x646e, 0x646d, 0x646c, 0x646b, 0xf378, 0xf379, 0x646f, + 0x7975, 0x6470, 0x403a, 0xf37a, + /* 0x7CC0 */ + 0x6471, 0x6473, 0xf37c, 0x6472, 0xf37e, 0x3852, 0xf421, 0x4138, + 0x6475, 0x7976, 0x457c, 0xf423, 0x6474, 0x7977, 0x6476, 0x7978, + 0x4a35, 0x416c, 0x3947, 0x6477, 0xf425, 0x4e48, 0xf426, 0x6479, + 0x647a, 0x647b, 0xf428, 0x647c, 0x3b65, 0x647d, 0x374f, 0x356a, + /* 0x7D00 */ + 0x352a, 0x6521, 0xf429, 0x4c73, 0x3948, 0x647e, 0x7979, 0x797a, + 0xf42a, 0x6524, 0x4c66, 0x473c, 0x4933, 0xf42c, 0x797b, 0x3d63, + 0x6523, 0x3c53, 0x3949, 0x3b66, 0x3569, 0x4a36, 0x6522, 0x797c, + 0xf42d, 0x4147, 0x4b42, 0x3a77, 0x797d, 0x3b67, 0x445d, 0x6527, + 0x4e5f, 0x3a59, 0x797e, 0x6528, 0x3f42, 0x652a, 0x3e52, 0x3a30, + 0xf430, 0xf431, 0x6529, + /* 0x7D40 */ + 0xf432, 0x7a21, 0x3d2a, 0x383e, 0x4148, 0x6525, 0x652b, 0xf433, + 0x7a22, 0x6526, 0x3750, 0x652e, 0x6532, 0x376b, 0x7a23, 0x652d, + 0xf437, 0xf438, 0x6536, 0x7a24, 0x394a, 0x4d6d, 0x303c, 0x6533, + 0x356b, 0x6530, 0xf439, 0x6531, 0xf43a, 0x457d, 0x652f, 0x652c, + 0x3328, 0x4064, 0x3828, 0x7a25, 0x6538, 0xf43c, + /* 0x7D80 */ + 0x7a26, 0xf43e, 0xf43f, 0x6535, 0x7a27, 0xf440, 0x6537, 0x6534, + 0xf441, 0x3751, 0x4233, 0x6539, 0x416e, 0xf443, 0x6546, 0x7a28, + 0x6542, 0x653c, 0x7a29, 0xf444, 0xf445, 0x6540, 0x3c7a, 0x305d, + 0x653b, 0x6543, 0x6547, 0x394b, 0x4c56, 0x4456, 0x653d, 0xf446, + 0xf447, 0x6545, 0x653a, 0x433e, 0x653f, 0x303d, 0x4c4a, + /* 0x7DC0 */ + 0xf448, 0x7a2a, 0x653e, 0x365b, 0x486c, 0x7a2b, 0x416d, 0x4e50, + 0x3d6f, 0x656e, 0x7a2c, 0xf449, 0x6548, 0xf44a, 0x407e, 0x6544, + 0x6549, 0x654b, 0x4479, 0x654e, 0x7a2d, 0x654a, 0xf44b, 0x4a54, + 0x344b, 0x4c4b, 0x305e, 0xf44c, 0x654d, 0x4e7d, 0xf44d, 0x654c, + /* 0x7E00 */ + 0x316f, 0x466c, 0x654f, 0x7a30, 0x6556, 0x6550, 0x6557, 0xf451, + 0x7a31, 0x6553, 0x7a32, 0xf452, 0x477b, 0xf453, 0x3c4a, 0x6555, + 0xf454, 0x6552, 0x6558, 0x6551, 0x3d44, 0xf455, 0x7a2f, 0x4b25, + 0xf456, 0x3d4c, 0x6554, 0x6560, 0x655c, 0x655f, 0x655d, 0x6561, + 0x655b, 0x6541, 0x4053, + /* 0x7E40 */ + 0x484b, 0x655e, 0xf457, 0x6559, 0x7a34, 0x4121, 0x3752, 0x3d2b, + 0x7a35, 0x3f25, 0x4136, 0x6564, 0x6566, 0x6567, 0x6563, 0x6565, + 0x7a36, 0x655a, 0x6562, 0x656a, 0x6569, 0x7e7e, 0x4b7a, 0x372b, + 0xf458, 0xf459, 0x6568, 0x656c, 0x656b, 0x656f, 0xf45a, 0x6571, + /* 0x7E80 */ + 0x3b3c, 0x656d, 0xf45b, 0xf45c, 0x6572, 0x6573, 0x7a37, 0x6574, + 0x7a38, 0x657a, 0x453b, 0x6576, 0xf45e, 0x6575, 0x6577, 0x6578, + 0x6579, 0xf45f, 0xf460, 0x657b, 0x657c, + /* 0x7F00 */ + 0x344c, 0x657d, 0x657e, 0xf463, 0xf462, 0xf464, + /* 0x7F40 */ + 0xf465, 0xf466, 0x6621, 0x7a39, 0x6622, 0x6623, 0x6624, 0xf467, + 0x6625, 0x6626, 0xf46a, 0x6628, 0x6627, 0x6629, 0x662a, 0x662b, + 0xf46c, 0xf46d, 0xf46e, 0x662e, 0x662c, 0x662d, 0x3a61, 0x3753, + 0xf46f, 0x4356, 0x4833, 0x3d70, 0x474d, 0x486d, 0x662f, 0x586d, + 0xf470, 0xf471, + /* 0x7F80 */ + 0x6630, 0x6632, 0x4d65, 0x6631, 0x6634, 0x6633, 0x4d53, 0x6635, + 0x487e, 0xf473, 0x7a3b, 0x6636, 0xf476, 0x7a3c, 0x6639, 0xf477, + 0x6638, 0x6637, 0x663a, 0x3732, 0x4122, 0x3541, 0xf478, 0x663e, + 0x663b, 0x663c, 0x663f, 0x6640, 0x663d, 0x3129, 0x7a3d, + /* 0x7FC0 */ + 0x3227, 0xf47a, 0x6642, 0x6643, 0x6644, 0x4d62, 0x7a3e, 0xf47b, + 0x3d2c, 0x6646, 0x6645, 0x7a3f, 0x7a40, 0x3f69, 0x6647, 0xf47c, + 0xf47d, 0x6648, 0x6649, 0x3465, 0x7a41, 0x7a42, 0xf47e, 0x344d, + 0xf521, 0x664a, 0x664b, 0x7a43, 0x4b5d, 0x4d63, + /* 0x8000 */ + 0x4d54, 0x4f37, 0xf522, 0x394d, 0x664e, 0x3c54, 0x664d, 0xf524, + 0xf523, 0x664f, 0x3c29, 0xf525, 0x4251, 0xf526, 0x6650, 0x7a45, + 0x394c, 0xf527, 0x4c57, 0x6651, 0x6652, 0x6653, 0x6654, 0xf528, + 0x7a46, 0x6655, 0xf529, 0xf52a, 0x3c2a, 0x7a47, 0x4c6d, 0x7a48, + 0x6657, 0x7a49, 0x433f, 0x6656, + /* 0x8040 */ + 0xf52b, 0x6659, 0x6658, 0x665a, 0x403b, 0x665b, 0x665c, 0x4a39, + 0x665d, 0x416f, 0x665e, 0xf52c, 0x665f, 0x4e7e, 0x6662, 0xf52d, + 0x6661, 0x6660, 0x4430, 0xf52e, 0x6663, 0x3f26, 0x6664, 0xf52f, + 0x6665, 0x4f38, 0x6666, + /* 0x8080 */ + 0x6667, 0x6669, 0x6668, 0x4825, 0x4679, 0x4f3e, 0x4829, 0x666b, + 0x3e53, 0x492a, 0xf530, 0x666c, 0x666a, 0xf531, 0x344e, 0x3854, + 0x3b68, 0xf532, 0x486e, 0xf533, 0x382a, 0x4b43, 0x666f, 0x666d, + 0x394e, 0x394f, 0x3069, 0x3a68, 0xf534, 0x4759, + /* 0x80C0 */ + 0x305f, 0x6674, 0xf536, 0x4340, 0x7a4a, 0x4758, 0x425b, 0xf537, + 0x6676, 0x7a4b, 0xf538, 0x6672, 0x6675, 0x6670, 0x6673, 0x4b26, + 0x7a4c, 0x3855, 0x307d, 0x6671, 0xf539, 0x6678, 0x6679, 0x7a4d, + 0x4639, 0xf53c, 0x363b, 0xf53d, 0x6726, 0x473d, + /* 0x8100 */ + 0x3b69, 0x363c, 0x4048, 0x4f46, 0x4c2e, 0x6677, 0x4054, 0xf53b, + 0xf540, 0x7a4e, 0x3553, 0x667a, 0xf541, 0x667c, 0xf543, 0xf544, + 0x667b, 0xf545, 0x667d, 0x4326, 0x473e, 0xf53f, 0x4431, 0xf547, + 0x6723, + /* 0x8140 */ + 0x6722, 0x7a4f, 0x667e, 0x3f55, 0x4965, 0x6725, 0x6724, 0x3950, + 0x4f53, 0x6735, 0x7a50, 0x6729, 0x672a, 0x7a51, 0x7a52, 0xf549, + 0x3c70, 0x7a53, 0x6728, 0x3978, 0x6727, 0x672b, 0x4432, 0x4a22, + 0x4123, 0x425c, + /* 0x8180 */ + 0x672f, 0xf54b, 0x6730, 0x672c, 0xf54d, 0xf54e, 0x672d, 0x672e, + 0x3951, 0x6736, 0x6732, 0xf550, 0x4966, 0x4b6c, 0x4928, 0x6731, + 0x6734, 0x6733, 0x4b44, 0x6737, 0x6738, 0xf551, 0x4137, 0x6739, + 0x673b, 0x673f, 0x7a54, 0x673c, 0x673a, 0x473f, + /* 0x81C0 */ + 0x673d, 0xf552, 0x673e, 0xf553, 0x3232, 0x6745, 0x6740, 0x7a55, + 0x6741, 0x7a56, 0x6742, 0x4221, 0xf554, 0x7a57, 0x6744, 0x6743, + 0x6746, 0xf555, 0x6747, 0x6748, 0x3f43, 0xf557, 0x3269, 0x6749, + 0x4e57, 0x3c2b, 0xf559, 0x3d2d, 0x3b6a, 0x4357, 0x674a, 0x674b, + 0x3131, 0xf55b, 0x674c, 0xf55c, + /* 0x8200 */ + 0x674d, 0x674e, 0xf55e, 0x674f, 0x6750, 0x363d, 0x5a2a, 0x6751, + 0x4065, 0x6752, 0x3c4b, 0x6753, 0x5030, 0x6754, 0x4a5e, 0x345c, + 0xf560, 0x4124, 0x3d58, 0x4971, 0x3d2e, 0xf561, 0xf562, 0x6755, + 0x3952, 0x6756, 0x484c, 0x6764, 0xf564, 0x6758, 0xf565, 0x4249, + 0x4775, 0x383f, 0x6757, 0x4125, 0xf566, + /* 0x8240 */ + 0x6759, 0xf569, 0xf567, 0x447a, 0xf568, 0xf56b, 0xf56d, 0xf56f, + 0x675b, 0x675a, 0x675d, 0xf571, 0x675c, 0x675e, 0x7a5b, 0x6760, + 0xf572, 0x675f, 0x344f, 0x6761, 0x6762, 0x6763, 0x3a31, 0x4e49, + 0x6765, 0x3f27, 0x7a5c, 0x3170, 0x6766, 0x6767, 0xf576, 0xf578, + 0x6768, 0xf579, + /* 0x8280 */ + 0xf57a, 0xf57b, 0x3072, 0x6769, 0x7a5e, 0x676a, 0xf57c, 0x4967, + 0x3c47, 0x676c, 0x7a5f, 0x7a60, 0x7a61, 0x3329, 0x3032, 0xf57d, + 0xf57e, 0x7a62, 0x676b, 0x676e, 0x474e, 0x7a63, 0x3f44, 0x3256, + 0xf621, 0x4b27, 0xf622, 0x7a64, 0x375d, 0x365c, 0xf623, 0x676d, + 0xf624, 0x326a, 0x7a65, 0x7a66, + /* 0x82C0 */ + 0x3423, 0x7a67, 0x3171, 0x6772, 0x4e6a, 0x425d, 0x7a68, 0x4944, + 0x677e, 0x3257, 0x677c, 0x677a, 0x6771, 0x676f, 0xf625, 0x6770, + 0x3c63, 0x366c, 0x4377, 0xf626, 0x4651, 0x3151, 0x6774, 0x6773, + 0xf627, 0x6779, 0x6775, 0x6778, 0x7a69, 0x7a6a, + /* 0x8300 */ + 0x7a6b, 0x7a6c, 0x4c50, 0x6777, 0x3258, 0x337d, 0x677b, 0xf628, + 0xf629, 0x677d, 0xf62a, 0x3754, 0x6823, 0x682c, 0x682d, 0xf62c, + 0x302b, 0xf62d, 0x7a6e, 0x6834, 0x3071, 0x682b, 0x7a6f, 0x682a, + 0xf62e, 0x6825, 0x6824, 0x6822, 0x6821, 0x4363, 0x427b, 0x6827, + 0x7a70, 0xf62f, + /* 0x8340 */ + 0x6826, 0x7a71, 0xf630, 0x6829, 0x7a72, 0x4170, 0x3755, 0x3141, + 0x6828, 0x7a73, 0x3953, 0xf62b, 0x7a74, 0xf631, 0x4171, 0x7a6d, + 0xae4a, 0x683a, 0x683b, 0x3259, 0x322e, 0x6838, 0x7a75, 0xf633, + /* 0x8380 */ + 0x682e, 0x7a76, 0x6836, 0x683d, 0x6837, 0xf636, 0x6835, 0x7a77, + 0x6776, 0xf637, 0xf638, 0x6833, 0x7a78, 0x682f, 0xf639, 0xf63a, + 0x3450, 0x6831, 0x683c, 0x6832, 0x7a79, 0x683e, 0x7a7a, 0x6830, + 0x477c, 0x4d69, 0x6839, 0x684f, 0x7a7b, + /* 0x83C0 */ + 0x7a7c, 0x6847, 0x3f7b, 0x7a7d, 0xf63b, 0x3546, 0x365d, 0x6842, + 0x7a7e, 0xf63c, 0x7b21, 0x325b, 0xf63d, 0x3e54, 0x6845, 0x3a5a, + 0xf63e, 0x4551, 0x684a, 0x7b22, 0xf63f, 0x4a6e, 0x7b23, 0x6841, + 0x325a, 0x3856, 0x4929, 0x684b, 0x683f, 0x6848, 0xf640, 0x6852, + 0x6843, + /* 0x8400 */ + 0x7b24, 0x6844, 0x463a, 0x7b25, 0x6849, 0x7b26, 0x6846, 0x4b28, + 0x684c, 0x3060, 0xf641, 0xf642, 0x6840, 0xf643, 0xf645, 0x684e, + 0x684d, 0x476b, 0x6854, 0x685f, 0x337e, 0x6862, 0x6850, 0xf646, + 0x6855, 0x4d6e, + /* 0x8440 */ + 0x685e, 0x7b28, 0x4d55, 0xf647, 0x4e2a, 0xf648, 0xf649, 0xf64a, + 0x4378, 0xf64b, 0xf64c, 0x336b, 0xf64d, 0x7b29, 0x4972, 0x6864, + 0x4621, 0xf64f, 0x3031, 0x685d, 0x6859, 0x4172, 0x6853, 0x685b, + 0x6860, 0x7b2a, 0x472c, 0x7b2b, 0x302a, 0xf650, 0x6858, 0xf651, + 0x6861, 0x4978, 0xf652, + /* 0x8480 */ + 0xf653, 0x685c, 0x6857, 0x7b2c, 0x3e55, 0x3d2f, 0x3c2c, 0xf656, + 0x4c58, 0x4947, 0x7b2d, 0x6867, 0x6870, 0xf657, 0x685a, 0x7b2e, + 0x3377, 0x7b2f, 0x3e78, 0x6865, 0x7b30, 0x686a, 0x4173, 0xf658, + 0x6866, + /* 0x84C0 */ + 0x7b31, 0x686d, 0x7b32, 0x435f, 0x686e, 0x4d56, 0x6863, 0x3338, + 0x6869, 0xf65a, 0xf65b, 0x686c, 0x4c2c, 0xf65c, 0x686f, 0x6868, + 0x686b, 0xf655, 0xf65e, 0xf65f, 0x4b29, 0x4f21, 0xf660, 0xf661, + 0xf662, 0x6873, 0xf663, 0x687a, 0xf664, 0x6872, + /* 0x8500 */ + 0x3c43, 0x6851, 0xf665, 0x4a4e, 0x4c22, 0x6879, 0x6878, 0x6874, + 0x6875, 0x3136, 0xf666, 0x7b35, 0x6877, 0x6871, 0x7b36, 0xf667, + 0xf668, 0x4455, 0xf669, 0x6876, 0x307e, 0x7b37, 0x7b34, 0xf66a, + 0x4222, 0x4a43, 0xf66f, + /* 0x8540 */ + 0x687b, 0x6921, 0x4859, 0x687e, 0x3e56, 0x3c49, 0x6923, 0x363e, + 0xf66b, 0xf670, 0xf671, 0x6924, 0x4979, 0x687d, 0x7b38, 0x6856, + 0xf672, 0xf673, 0xf674, 0x687c, 0x7b39, 0x4f4f, 0x4622, 0x4973, + 0x692b, 0xf66c, 0x6931, 0x7b3c, 0xf676, 0xf677, 0x6932, 0xf678, + /* 0x8580 */ + 0x6925, 0xf679, 0x4776, 0xf67a, 0x692f, 0x6927, 0x6929, 0x7b3d, + 0x7b3e, 0x6933, 0x6928, 0xf67b, 0x692c, 0x3172, 0x4665, 0x692d, + 0x6930, 0xf67c, 0xf67d, 0x7b3f, 0x6926, 0x4126, 0x692a, 0x3b27, + 0x3f45, 0x3730, 0x4c74, 0x7b3b, 0x4c79, 0x3d72, 0x7b40, 0xf723, + 0x6937, 0x6935, 0xf724, + /* 0x85C0 */ + 0x4f4e, 0xf725, 0x6934, 0xf726, 0x7b41, 0x4d75, 0x7b42, 0x6936, + 0x6938, 0x6939, 0xf727, 0xf728, 0x693c, 0x693a, 0xf729, 0xf72a, + 0x4623, 0x693b, 0xf72b, 0x484d, 0x692e, 0x7b43, 0xf72c, 0x3d73, + 0x693d, 0x6942, 0x4174, 0x6941, 0x7b45, + /* 0x8600 */ + 0xf72d, 0x6922, 0x7b46, 0x7b47, 0x6943, 0x4149, 0x693e, 0x6940, + 0x7b48, 0xf72e, 0x7b44, 0x693f, 0x5d31, 0x5d22, 0x7b4a, 0x6945, + 0xf72f, 0xf730, 0x6944, 0xf731, 0xf732, 0x7b4b, 0x4d76, 0x623c, + 0x6946, 0x7b4c, 0xf734, 0xf735, 0x6947, + /* 0x8640 */ + 0xf737, 0x2f68, 0x6948, 0x3857, 0x3554, 0xf739, 0x694a, 0x515d, + 0xf73a, 0x7b4d, 0x3575, 0x7b4e, 0x4e3a, 0x3673, 0x694b, 0x7b50, + 0x694c, 0x436e, 0x7b52, 0xf73b, 0x694d, 0x7b53, 0xf73c, 0x467a, + 0xf73d, 0x303a, + /* 0x8680 */ + 0xf73e, 0xf73f, 0x3263, 0x6952, 0x6953, 0xf740, 0xf741, 0x694e, + 0x3b3d, 0x7b54, 0xf742, 0xf743, 0x694f, 0x4742, 0xf744, 0x6950, + 0x6951, 0x695b, 0x6955, 0x6958, 0xf746, 0xf747, 0x6954, 0x7b55, + /* 0x86C0 */ + 0xf748, 0xf749, 0x6956, 0x6957, 0x3c58, 0x6959, 0x4341, 0x3756, + 0x3342, 0xf74a, 0x695c, 0xf74b, 0xf74c, 0x333f, 0x6961, 0x695d, + 0x6960, 0xf74d, 0x483a, 0xf74e, 0x695e, 0x695f, 0x4948, 0x485a, + 0x6962, 0x427d, 0x696c, 0x7b56, 0x6968, 0x7b57, 0x7b58, 0x326b, + /* 0x8700 */ + 0x6966, 0x4b2a, 0x6967, 0xf750, 0x6964, 0xf751, 0x6965, 0x696a, + 0x696d, 0x7b59, 0x696b, 0xf752, 0xf753, 0x6969, 0x6963, 0xf754, + 0x4358, 0xf755, 0x6974, 0x4c2a, 0xf756, 0xf757, 0xf758, 0x6972, + 0x6973, 0xf759, 0x696e, 0x6970, 0xf75a, 0x6971, 0xf75b, 0x696f, + /* 0x8740 */ + 0xf75c, 0xf75d, 0x4066, 0x4f39, 0x6978, 0x6979, 0xf75e, 0x6a21, + 0x3f2a, 0x697b, 0xf75f, 0x697e, 0x6976, 0x6975, 0x6a22, 0xf760, + 0xf761, 0x325c, 0x697c, 0x6a23, 0x697d, 0x7b5a, 0xf762, 0x697a, + 0x4433, 0x6977, 0xf763, 0x4768, + /* 0x8780 */ + 0x6a27, 0x7b5b, 0x7b5c, 0xf767, 0xf768, 0x4d3b, 0xf769, 0x6a26, + 0xf76a, 0x6a25, 0xf766, 0x6a2e, 0x7b5d, 0x7b5e, 0x6a28, 0x6a30, + 0x7b5f, 0x4d66, 0x6a33, 0x6a2a, 0xf76d, + /* 0x87C0 */ + 0x6a2b, 0xf76f, 0x6a2f, 0x6a32, 0x6a31, 0x6a29, 0xf770, 0x6a2c, + 0x6a3d, 0x7b61, 0xf772, 0x6a36, 0xf774, 0xf775, 0xf776, 0xf777, + 0xf778, 0x7b62, 0xf779, 0x6a34, 0x6a35, 0xf771, 0x6a3a, 0x6a3b, + 0x332a, 0x3542, 0x6a39, + /* 0x8800 */ + 0xf77a, 0xf77b, 0x6a24, 0x7b63, 0x7b64, 0xf77c, 0x6a38, 0x6a3c, + 0x6a37, 0x7b65, 0x6a3e, 0xf77d, 0x7b66, 0x6a40, 0x6a3f, 0x7b67, + 0x6a42, 0x6a41, 0x695a, 0x6a46, 0xf77e, 0xf821, 0x6a43, 0xf822, + 0x6a44, 0x6a45, 0x6a47, 0xf823, + /* 0x8840 */ + 0x376c, 0x6a49, 0x6a48, 0x3d30, 0xf825, 0x3954, 0x5e27, 0x6a4a, + 0x3d51, 0x3339, 0xf826, 0x6a4b, 0x3152, 0x3e57, 0x6a4c, 0xf827, + 0x3955, 0x6a4d, 0x3061, 0xf828, 0x493d, 0xf82b, 0x6a4e, 0xf82d, + 0x3f6a, 0x6a55, 0x6a52, 0x436f, 0x6a53, 0x6a50, 0x365e, + /* 0x8880 */ + 0x6a4f, 0x6a56, 0x3736, 0x425e, 0x6a5c, 0x6a58, 0x4235, 0x6a57, + 0x7b68, 0x6a5a, 0x6a51, 0xf82e, 0x6a5b, 0x6a5d, 0x7b69, 0x486f, + 0x6a59, 0x6a5e, 0x6a60, 0x3853, 0x6a54, 0x3041, 0xf82f, 0xf830, + 0xf831, 0x6a5f, + /* 0x88C0 */ + 0xf832, 0x3a5b, 0x4e76, 0x6a61, 0x6a62, 0x4175, 0x7b6a, 0x7b6b, + 0x4e22, 0xf835, 0xf833, 0xf836, 0x6a63, 0x4d35, 0x6a64, 0x6a65, + 0xf837, 0x4a64, 0x6a66, 0x3a40, 0x4e23, 0x6a6b, 0xf838, 0xf839, + 0x6a6c, 0x3e58, 0x6a6a, 0x7b6d, 0x4d67, 0x6a67, 0x6a69, 0x403d, + 0x3f7e, + /* 0x8900 */ + 0xf83b, 0x6a68, 0x6a6d, 0x4a23, 0x6a6f, 0x6a6e, 0x336c, 0x4b2b, + 0x6a70, 0x7b70, 0x7b71, 0x7b72, 0x7b6e, 0x6a7c, 0x6a72, 0x6a73, + 0x7b73, 0x6a74, 0x6a75, 0x7b74, 0x7b75, 0x6a79, 0xf83d, 0x6a7a, + 0x7b76, 0x6a78, + /* 0x8940 */ + 0x7b77, 0x6a76, 0xf83f, 0x6a71, 0x6a77, 0xf840, 0xf841, 0x6a7b, + 0x7037, 0x3228, 0x6a7e, 0x365f, 0x6a7d, 0xf844, 0x6b22, 0x6b21, + 0x6b24, 0x6b23, 0x6b25, 0x3d31, 0x6b26, 0x6b27, 0x6b28, 0x403e, + /* 0x8980 */ + 0xf845, 0x4d57, 0x6b29, 0x4a24, 0x4746, 0x6b2a, 0xf846, 0x6b2b, + 0x382b, 0x352c, 0xf847, 0x6b2c, 0x7b78, 0x3b6b, 0x4741, 0x6b2d, + 0x3350, 0xf848, 0x6b2e, 0x6b30, 0x4d77, 0x6b2f, 0x3f46, 0x6b31, + 0x6b32, 0xf849, 0x6b33, 0x3451, 0xf84a, 0x6b34, 0x6b35, 0x6b36, + /* 0x89C0 */ + 0x6b37, 0x3351, 0x7b7a, 0xf84b, 0xf84c, 0x6b38, 0x6b39, 0x6b3a, + 0x3272, 0x7b7b, 0x3f28, 0x6b3b, 0xf84d, 0xf84f, 0xf850, 0x6b3c, + 0x7b7c, 0x6b3d, 0xf851, 0xf852, + /* 0x8A00 */ + 0x3840, 0x447b, 0x6b3e, 0x3757, 0x3f56, 0x6b41, 0x4624, 0x6b40, + 0xf854, 0x7b7d, 0x3731, 0xf855, 0x7b7e, 0x6b3f, 0x4277, 0x352d, + 0x6b42, 0x6b43, 0x3e59, 0xf857, 0x7c21, 0x376d, 0x6b44, 0x4b2c, + 0x405f, 0x3576, 0x4c75, 0x414a, 0xf858, 0x6b45, 0x7c22, 0x3f47, + 0x4370, 0x3e5a, 0xf859, + /* 0x8A40 */ + 0x6b46, 0xf85a, 0x6b49, 0x7c23, 0x6b4a, 0xf85b, 0x7c24, 0x3a3e, + 0x4242, 0x6b48, 0x3e5b, 0x493e, 0xf85c, 0x6b47, 0x7c25, 0x3b6c, + 0x3153, 0x7c26, 0x6b4e, 0x3758, 0x3b6e, 0x3b6d, 0x4f4d, 0x6b4d, + 0x6b4c, 0x4127, 0x354d, 0x4f43, 0x333a, 0x3e5c, 0x7c27, 0x7c28, + 0x6b4b, + /* 0x8A80 */ + 0x6b50, 0x6b51, 0x6b4f, 0x3858, 0x4d40, 0x3b6f, 0x4727, 0xf85e, + 0x6b54, 0x4040, 0x4342, 0x4d36, 0x6b57, 0x386c, 0x403f, 0x6b53, + 0x6b58, 0x386d, 0x6b55, 0x6b56, 0x7c29, 0x6b52, 0x4062, 0x4649, + 0xf85d, 0x432f, 0x325d, 0xf85f, 0x4870, 0x3543, 0xf860, 0x4434, + /* 0x8AC0 */ + 0x6b5b, 0x6b59, 0x434c, 0x4041, 0x3452, 0x6b5a, 0x3f5b, 0x7c2a, + 0x4e4a, 0x4f40, 0xf861, 0x6b5c, 0x6b67, 0x4435, 0x6b66, 0x7c2b, + 0x6b63, 0x6b6b, 0x6b64, 0x6b60, 0x447c, 0x6b5f, 0x6b5d, 0x4d21, + 0x3b70, 0x6b61, 0x6b5e, 0x7c2c, 0x7c2d, 0x6b65, 0x3d74, 0x3841, + 0xf862, 0x427a, + /* 0x8B00 */ + 0x4b45, 0x315a, 0x3062, 0x4625, 0xf865, 0x6b69, 0xf864, 0x6b68, + 0xf866, 0x4666, 0x6b6d, 0x6b62, 0x6b6c, 0x6b6e, 0x382c, 0x6b6a, + 0x3956, 0xf867, 0x3c55, 0xf868, 0x6b6f, 0x4d58, 0x6b72, 0x6b75, + 0x6b73, 0x4935, 0xf869, 0x6b70, 0x3660, 0x6b74, + /* 0x8B40 */ + 0x6b76, 0xf86a, 0x7c31, 0x6b7a, 0x6b77, 0x6b79, 0x6b78, 0xf86c, + 0x7c32, 0x6b7b, 0x3c31, 0x7c33, 0x6b7d, 0x6b7c, 0x4968, 0xf86d, + 0x6c21, 0x3759, 0x7c34, 0x6b7e, 0x6c22, 0x6c23, 0x3544, 0x6641, + 0x3e79, 0x6c24, 0xf86e, 0x386e, 0x6c25, 0xf86f, + /* 0x8B80 */ + 0x6c26, 0xf870, 0x3b3e, 0x5a4e, 0xf871, 0x6c27, 0x6c28, 0x3d32, + 0x6c29, 0x6c2a, 0xf872, 0xf873, 0x6c2b, 0x6c2c, 0x6c2d, 0xf874, + 0x7c35, 0xf875, + /* 0x8C00 */ + 0x432b, 0xf876, 0x6c2e, 0xf878, 0x6c30, + /* 0x8C40 */ + 0x6c2f, 0xf87b, 0x4626, 0xf87c, 0x6c31, 0x7c36, 0x4b2d, 0x6c32, + 0x6c33, 0xf87d, 0x6c34, 0xf87e, 0x6c35, 0xf921, 0x465a, 0x3e5d, + 0x6c36, 0x7c37, 0xf922, 0x396b, 0x502e, 0x6c37, 0xf923, 0xf924, + 0x6c38, 0x493f, 0x6c39, 0x6c41, + /* 0x8C80 */ + 0x6c3a, 0x6c3c, 0x6c3b, 0x6c3d, 0x4b46, 0x6c3e, 0x6c3f, 0xf927, + 0xf926, 0x6c40, 0x6c42, 0xf928, 0xf92a, 0x332d, 0x4467, 0x4969, + 0x3a62, 0x3957, 0xf92b, 0x494f, 0x325f, 0x484e, 0x6c45, 0x3453, + 0x4055, 0x6c44, 0x6c49, 0x4379, 0x4c63, 0x6c47, 0x6c48, 0x352e, + 0x6c4a, 0x4763, 0x425f, 0x4871, 0x453d, 0x6c46, 0x4b47, + /* 0x8CC0 */ + 0x326c, 0x6c4c, 0x4f28, 0x4442, 0x4f45, 0x3b71, 0x6c4b, 0x4231, + 0x6c5c, 0x4128, 0x4678, 0x4950, 0xf92d, 0xf92c, 0xf92e, 0x6c4f, + 0x3b3f, 0x3b72, 0x3e5e, 0x4765, 0x7c39, 0x382d, 0x6c4e, 0x6c4d, + 0x496a, 0x3c41, 0x4552, 0xf930, 0xf931, 0x7c3a, 0x7c3b, 0x6c51, + 0x6c52, 0x3958, 0x6c50, 0x7c3c, + /* 0x8D00 */ + 0x6c53, 0x6c54, 0x6c56, 0x4223, 0xf933, 0x6c55, 0x3466, 0x6c58, + 0xf934, 0x6c57, 0x6c59, 0x7c3e, 0x6c5b, 0x6c5d, 0x6c5e, 0x7c3f, + /* 0x8D40 */ + 0x4056, 0x3c4f, 0x6c5f, 0x3352, 0xf935, 0x6c60, 0x4176, 0x6c61, + 0x6c62, 0x496b, 0x352f, + /* 0x8D80 */ + 0x6c63, 0xf936, 0x4436, 0x315b, 0xf937, 0x6c64, 0x3c71, 0xf938, + 0x3f76, 0x7c40, 0x422d, 0x6c67, 0x6c66, + /* 0x8DC0 */ + 0x6c65, 0xf93a, 0xf93b, 0x6c6d, 0x6c6b, 0x7c41, 0x6c68, 0x7c42, + 0x6c6a, 0x7c43, 0xf93c, 0x6c69, 0x6c6c, 0x3577, 0x6c70, 0x4057, + 0x6c71, 0x3859, 0x6c6e, 0x6c6f, 0xf93d, 0x4f29, 0x4437, 0x4129, + 0x6c72, 0xf940, 0x6c75, + /* 0x8E00 */ + 0xf941, 0x6c73, 0x6c74, 0x4d59, 0xf93e, 0x4627, 0x6c78, 0xf943, + 0xf944, 0x6c76, 0x6c77, 0x6c79, 0x7c44, 0xf945, 0xf946, 0x7c45, + 0xf947, 0x6d29, 0x6c7c, 0x6c7d, 0x6c7b, 0xf94a, 0xf94b, 0x7c46, + /* 0x8E40 */ + 0x6c7a, 0x447d, 0x6d21, 0x6d25, 0x6d22, 0x6c7e, 0xf94c, 0x6d23, + 0x6d24, 0xf94d, 0x6d2b, 0x6d26, 0x4058, 0x6d28, 0xf94e, 0x6d2a, + 0x6d27, 0xf94f, 0xf950, 0xf951, 0x7c47, 0x6d2d, 0x3d33, 0x6d2c, + 0x7c48, 0x6d2e, + /* 0x8E80 */ + 0x6d2f, 0x6d32, 0x6d31, 0x6d30, 0x6d34, 0x6d33, 0x4c76, 0x6d36, + 0x6d35, 0x6d37, 0xf952, 0x6d38, 0xf953, 0x6d3a, 0x6d39, 0x3f48, + 0x6d3b, 0xf954, 0x366d, 0x6d3c, 0x6d3e, 0xf955, 0xf956, 0xf957, + 0xf958, 0x6d3f, + /* 0x8EC0 */ + 0x7c4a, 0x6d40, 0x6d3d, 0x6d41, 0x3c56, 0x6d42, 0x3530, 0x3733, + 0xf95a, 0x382e, 0xf95b, 0x6d43, 0x4670, 0x453e, 0x6d44, 0x6d47, + 0x3c34, 0xf95d, 0x7c4c, 0x6d46, 0x6d45, 0x375a, 0x6d48, + /* 0x8F00 */ + 0xf95f, 0x3353, 0x6d4a, 0xf960, 0x3a5c, 0x6d49, 0x6d52, 0x6d4c, + 0x6d4e, 0x4a65, 0x6d4b, 0xf961, 0x6d4d, 0x6d51, 0x6d4f, 0x3531, + 0x7c4d, 0x6d50, 0x6d53, 0x475a, 0x4e58, 0xf962, 0x7c4e, 0x3d34, + 0x6d54, 0x7c4f, 0x4d22, 0x6d56, 0x6d55, 0x6d59, 0x4d41, + /* 0x8F40 */ + 0xf963, 0x6d58, 0x336d, 0x6d57, 0x6d5c, 0x6d5b, 0xf964, 0x6d5a, + 0x4532, 0x6d5d, 0x7c50, 0x6d5e, 0xf965, 0x6d5f, 0x396c, 0x3725, + 0x6d60, 0x6d61, 0x6d62, + /* 0x8F80 */ + 0x3f49, 0x6d63, 0x3c2d, 0x6d64, 0x6d65, 0xf967, 0x7c52, 0x5221, + 0x517e, 0x6d66, 0x6570, 0x6d67, 0x4324, 0x3f2b, 0x4740, 0xf968, + 0x7c53, 0xf96a, 0x6d68, 0x4a55, 0x4454, 0x397e, 0x4329, + /* 0x8FC0 */ + 0xf96c, 0x312a, 0x4b78, 0x3f57, 0xf96d, 0xf96f, 0xf970, 0x375e, + 0x3661, 0xf971, 0x4a56, 0xf972, 0x6d69, 0xf973, 0x6d6b, 0x7c54, + 0x6d6a, 0x3260, 0x7c55, 0x4676, 0x6d6c, 0x4777, 0x4533, 0x7c56, + 0x6d6d, 0x3d52, 0xf974, 0x6d6f, 0xf975, 0x4c42, 0x6d7e, 0x6d71, + 0x6d72, 0xf976, 0x4449, + /* 0x9000 */ + 0x4260, 0x4177, 0xf977, 0x4628, 0x6d70, 0x3555, 0x7c57, 0x6d79, + 0xf978, 0x6d76, 0x6e25, 0x4629, 0x4360, 0x6d73, 0x447e, 0x4553, + 0x6d74, 0x6d78, 0x3f60, 0x4767, 0x444c, 0x4042, 0x6d77, 0x422e, + 0x4224, 0x6d75, 0x3029, 0x4f22, 0x6d7a, 0x7c58, 0x4261, 0x3d35, + 0x3f4a, 0x6d7c, 0x6d7b, 0xf979, 0x306f, 0x6d7d, 0x492f, 0x6e27, + /* 0x9040 */ + 0x465b, 0x3f6b, 0xf97b, 0xf97c, 0x4359, 0x3678, 0x6e26, 0x4d37, + 0x313f, 0x4a57, 0x3261, 0x6e21, 0x6e22, 0x6e23, 0x6e24, 0x463b, + 0x4323, 0x3063, 0x6e28, 0x6e29, 0x7423, 0x423d, 0xf97d, 0x6e2a, + 0x3173, 0x414c, 0x382f, 0x4d5a, 0x6e2b, 0x452c, 0x4178, 0x3c57, + 0x6e2c, 0x6e2f, 0x3d65, 0x6e2d, 0x412b, 0x412a, 0x3064, 0x4e4b, + 0x6e31, 0x4872, + /* 0x9080 */ + 0x6e33, 0x6e32, 0x6e30, 0x6364, 0x3454, 0xfa22, 0x6d6e, 0x7c5a, + 0x6e35, 0x6e34, 0xfa23, 0x6e36, 0xfa24, 0x4d38, 0x7c5b, 0x7c5c, + 0x7c5d, 0x7c5e, 0xfa26, 0x7c5f, 0x4661, 0x4b2e, 0x6e37, 0x3c59, + 0x6e38, 0xfa28, 0x6e39, 0x7c60, 0x6e3a, 0xfa29, 0x4521, 0x7c61, + /* 0x90C0 */ + 0x306a, 0xfa2a, 0x7c62, 0x7c63, 0x7c64, 0xfa2b, 0x3959, 0x4f3a, + 0x7c65, 0x6e3e, 0xfa2d, 0x7c66, 0x7c67, 0xfa2e, 0x3734, 0x6e3b, + 0x6e3c, 0x4974, 0xfa33, 0x3354, 0x7c68, 0xfa31, 0x7c69, 0x4d39, + 0xfa30, 0x363f, 0x4554, 0xfa34, 0xfa35, + /* 0x9100 */ + 0xfa32, 0x6e3f, 0xfa36, 0xfa37, 0x6e40, 0x7c6b, 0x7c6c, 0x7c6d, + 0xfa38, 0x6e41, 0xfa39, 0xfa3a, 0x7c6e, 0x7c6f, 0x7c70, 0x4522, + 0x7c71, 0x6e43, 0x7c72, 0x6e42, 0x7c73, 0xfa3b, 0xfa3c, 0xfa3d, + 0x7c74, + /* 0x9140 */ + 0xfa3e, 0xfa3f, 0x7c75, 0x4653, 0x6e44, 0x3d36, 0x3c60, 0x475b, + 0x4371, 0x3c72, 0x3f6c, 0x6e45, 0xfa40, 0x6e46, 0xfa41, 0x7c76, + 0xfa42, 0x3f5d, 0x6e47, 0xfa43, 0x6e48, 0x6e49, 0x4d6f, 0x3d37, + 0x6e4b, 0x6e4a, 0xfa44, 0x395a, 0x3973, 0x3b40, 0xfa45, + /* 0x9180 */ + 0x6e4e, 0x7c77, 0xfa46, 0x3d66, 0x6e4d, 0x6e4c, 0x4269, 0xfa47, + 0x386f, 0x4043, 0x4830, 0x3d39, 0x7c78, 0x6e4f, 0x3e5f, 0xfa48, + 0x6e52, 0x6e50, 0x7c79, 0xfa49, 0x6e51, 0x7c7a, 0xfa4a, 0x6e54, + 0x6e53, 0xfa4b, 0x3e7a, 0x6e55, 0x7c7b, + /* 0x91C0 */ + 0x6e56, 0x6e57, 0xfa4c, 0xfa4d, 0x4850, 0x3a53, 0x3c61, 0x6e58, + 0x6e59, 0x4e24, 0x3d45, 0x4c6e, 0x4e4c, 0x6e5a, 0x3662, 0x6e5b, + 0x7c7c, 0x4523, 0xfa4e, 0x6e5e, 0x3378, 0x3f4b, 0x6e5c, 0x6e5d, + 0x4460, 0x7c7e, 0x7d21, 0x4b55, 0x367c, 0xfa51, 0x7d22, 0xfa52, + 0x7d23, 0x6e60, 0x6e61, 0x7c7d, 0x6e5f, 0x6e63, + /* 0x9200 */ + 0xfa53, 0x7d24, 0xfa54, 0x465f, 0x3343, 0x7d25, 0x6e67, 0x6e64, + 0x6e66, 0xfa55, 0xfa56, 0x6e62, 0x6f4f, 0x6e65, 0xfa58, 0x4e6b, + 0x385a, 0x7d26, 0x7d27, 0x7d28, 0x7d29, 0x6e6f, + /* 0x9240 */ + 0x7d2a, 0xfa59, 0x7d2b, 0x4534, 0x6e6a, 0xfa5a, 0x6e6d, 0x6e6b, + 0xfa5b, 0x6e70, 0xfa5c, 0x7d2c, 0x6e71, 0xfa5d, 0xfa5e, 0x6e69, + 0xfa5f, 0x6e76, 0x3174, 0x6e68, 0xfa60, 0xfa61, 0x482d, 0x6e6c, + 0xfa62, 0x3e60, 0xfa63, 0xfa64, 0x395b, 0x7d2d, 0xfa67, 0xfa68, + 0x4b48, 0xfa69, + /* 0x9280 */ + 0x3664, 0x3d46, 0x463c, 0x7d2e, 0xfa6a, 0xfa6b, 0x412d, 0x6e74, + 0x6e6e, 0x6e73, 0xfa6c, 0x4c43, 0xfa6d, 0x4438, 0x6e75, 0x6e72, + 0xfa6e, 0xfa6f, 0xfa70, 0x412c, 0xfa73, 0x6e79, 0x6e78, 0xfa74, + /* 0x92C0 */ + 0xfa75, 0x7d2f, 0xfa76, 0x7d30, 0x7d31, 0xfa77, 0x6e77, 0xfa78, + 0x4b2f, 0x7d32, 0xfa79, 0xfa7a, 0x7d33, 0x3d7b, 0xfa7b, 0xfa7c, + 0x6e7a, 0x4a5f, 0x3154, 0x4946, 0x4372, 0xfb22, 0x3578, 0xfb23, + 0x6e7c, 0xfb24, 0x395d, 0x7d34, + /* 0x9300 */ + 0xfb25, 0x7d35, 0x3b2c, 0xfb26, 0x6e7b, 0x3f6d, 0xfa7d, 0xfb27, + 0x3f6e, 0x6f21, 0x6f23, 0xfb28, 0xfb29, 0x7d36, 0x3e7b, 0x7d37, + 0x6f22, 0x6f24, 0x7d38, 0x3653, 0xfb2a, 0x4945, 0xfb2b, 0x3c62, + 0x4f23, 0x6e7e, 0x3a78, 0x4f3f, 0x6f26, 0x6f25, 0x6f27, + /* 0x9340 */ + 0x6e7d, 0xfb2e, 0x7d39, 0x7d3a, 0x7d3b, 0x4669, 0x4555, 0xfb2f, + 0x4457, 0x6f2c, 0xfb30, 0xfb31, 0x4343, 0x6f28, 0x6f29, 0x7d3c, + 0x7d3d, 0x7d3e, 0xfb32, 0x372d, 0x6f2b, 0x7d3f, 0xfb33, 0xfb34, + 0x3830, 0x6f2a, 0x3e61, + /* 0x9380 */ + 0xfb38, 0xfb39, 0x3379, 0xfb3a, 0x6f30, 0x3a3f, 0x4179, 0x444a, + 0x7d40, 0xfb3b, 0xfb35, 0x7d41, 0x333b, 0x6f2e, 0x6f2f, 0x4443, + 0x6f2d, 0x6f31, 0x7d42, + /* 0x93C0 */ + 0xfb40, 0x6f37, 0x7d43, 0xfb41, 0x6f3a, 0x6f39, 0x452d, 0x6f32, + 0x6f33, 0x6f36, 0xfb42, 0x6f38, 0x7d44, 0x7d45, 0x3640, 0xfb43, + 0x6f3b, 0x6f35, 0xfb44, 0x6f34, 0xfb3f, 0xfb3c, 0xfb49, 0x7d47, + /* 0x9400 */ + 0x6f3f, 0x7d46, 0x6f40, 0xfb45, 0xfb46, 0x6f41, 0x6f3e, 0x6f3d, + 0xfb47, 0xfb48, 0x3e62, 0x462a, 0x6f3c, 0x6f45, 0x6f43, 0xfb4a, + 0x7d48, 0xfb4b, 0x6f44, 0x6f42, 0x4278, 0x6f46, 0xfb4c, + /* 0x9440 */ + 0x6f47, 0x6f49, 0xfb4d, 0x7d49, 0x3455, 0x6f48, 0x4c7a, 0x6f54, + 0x6f4a, 0x6f4d, 0x6f4b, 0x6f4c, 0x7d4a, 0x6f4e, 0x7d4b, 0xfb50, + 0xfb51, 0x6f50, 0x7d4c, 0x7d4d, 0x6f51, 0x6f52, 0x6f55, 0x6f53, + 0x6f56, 0x6f58, + /* 0x9480 */ + 0x6f57, + /* 0x9540 */ + 0x4439, 0xfb52, 0xfb53, + /* 0x9580 */ + 0x4c67, 0x6f59, 0x412e, 0xfb54, 0x6f5a, 0x4a44, 0x6f5b, 0x332b, + 0xfb55, 0xfb56, 0x7d4e, 0x313c, 0x3457, 0x3456, 0x6f5c, 0x6f5d, + 0x6f5e, 0x6f5f, 0x7d4f, 0x6f60, 0x3458, 0x3355, 0x395e, 0x4836, + 0x7d50, 0x6f62, 0x6f61, 0x7d51, 0xfb58, 0x7d52, 0x6f63, 0x315c, + 0xfb59, 0x7d53, 0x6f66, 0x6f65, 0x6f64, 0x7d54, 0x6f67, + /* 0x95C0 */ + 0x6f6a, 0x3047, 0xfb5b, 0x6f68, 0x7d55, 0x6f6c, 0x6f6b, 0x7d56, + 0x7d57, 0x6f6e, 0x6f6d, 0x6f6f, 0x462e, 0x7d59, 0x6f70, 0x7d5a, + 0x6f71, 0x6f73, 0x6f72, + /* 0x9600 */ + 0x496c, 0xfa25, 0x6f74, 0x6f75, 0x3a65, 0xfb5e, 0x6f76, 0x6f77, + 0x4b49, 0xfb5f, 0xfb60, 0x414b, 0xfb62, 0x3024, + /* 0x9640 */ + 0x424b, 0xfb63, 0x6f78, 0x496d, 0x6f7b, 0x6f79, 0x395f, 0x6f7a, + 0x3842, 0x7d5b, 0x4a45, 0x6f7d, 0x7021, 0x6f7e, 0x7022, 0xfb64, + 0x3121, 0x3f58, 0x3d7c, 0x3459, 0x7023, 0x4766, 0x7025, 0x3122, + 0x7024, 0x4444, 0x4e4d, 0x462b, 0x6f7c, 0x4e26, 0x3831, 0x4d5b, + /* 0x9680 */ + 0xfb66, 0x7d5c, 0x3679, 0x4e34, 0x3728, 0x4262, 0x6721, 0x7026, + 0x332c, 0x3f6f, 0x3356, 0x7028, 0x7029, 0x7027, 0x3764, 0xfb68, + 0x3a5d, 0x3e63, 0x7d5e, 0x3123, 0x4e59, 0x7d5f, 0x7d60, 0x702b, + 0x6e2e, 0xfb6b, 0x702a, 0xfb6c, 0x702e, 0x702c, 0x702d, 0xfb6d, + 0x702f, 0x7030, 0x4e6c, 0x7031, 0x7032, 0xfb6e, 0x4049, 0x483b, + 0xfb6f, + /* 0x96C0 */ + 0x3f7d, 0x3467, 0x4d3a, 0x326d, 0x3d38, 0x385b, 0x7035, 0x7034, + 0x3b73, 0x7036, 0x7033, 0x3b28, 0x7d61, 0x703a, 0x6a2d, 0xfb72, + 0x5256, 0xfb73, 0x3f77, 0x7038, 0xfb74, 0x7d62, 0x4e25, 0x4671, + 0x312b, 0x7d64, 0x4063, 0x3c36, 0x7d65, 0x4a37, 0x3140, 0x4e6d, + 0x4d6b, 0x703b, 0x4545, + /* 0x9700 */ + 0x3c7b, 0x703c, 0x703d, 0x3f4c, 0x703e, 0x4e6e, 0x7039, 0x7040, + 0x7042, 0x7041, 0x703f, 0xfb76, 0x7043, 0x7044, 0x417a, 0x3262, + 0xfb77, 0x7045, 0x4c38, 0x7046, 0x7047, 0x4f2a, 0x7d66, 0xfb79, + 0x5b31, 0x7048, 0x7d67, 0x7049, 0x704a, + /* 0x9740 */ + 0xfb7a, 0x704e, 0x704b, 0x704c, 0xfb7b, 0x704d, 0x704f, 0x7d68, + 0x7d69, 0x7d6a, 0x4044, 0xfb7c, 0x4c77, 0xfb7d, 0x4045, 0x7d6b, + 0xfb7e, 0x7050, 0x4873, 0x7051, 0x7353, 0x4c4c, 0x7052, 0x7053, + 0x7054, 0x3357, 0xfc21, 0x7056, 0x3f59, 0x7d6c, 0x7057, 0x7d6d, + 0x3724, 0x7058, 0x705c, 0x705a, + /* 0x9780 */ + 0x705b, 0x3373, 0x7059, 0x705d, 0x705e, 0x3048, 0x705f, 0x7060, + 0x7d6e, 0xfc24, 0x3e64, 0xfc25, 0x7061, 0xfc26, 0x3547, 0xfc27, + 0x7064, 0x7063, 0x7062, 0x6b71, 0x4a5c, 0x7d6f, 0xfc28, 0xfc29, + 0x7065, 0x7066, 0x7d70, 0xfc2a, + /* 0x97C0 */ + 0x7d71, 0x7067, 0x7068, 0x7069, 0x7d72, 0x706a, 0xfc2b, 0xfc2c, + 0x345a, 0xfc2d, 0xfc2e, 0xfc2f, 0x7d74, 0x706b, 0x7d73, 0xfc30, + 0x706c, 0x4723, 0xfc31, 0x706e, 0x323b, 0x7d75, 0x7071, 0x7070, + 0x3124, 0x3641, + /* 0x9800 */ + 0x4a47, 0x443a, 0x3a22, 0xfc32, 0x3960, 0x3d67, 0x3f5c, 0x7d77, + 0x7073, 0xfc33, 0xfc34, 0x7072, 0x4d42, 0x3468, 0x4852, 0x465c, + 0xfc35, 0xfc36, 0x3f7c, 0x4e4e, 0x375b, 0x7d78, 0x7076, 0xfc39, + 0x7075, 0xfc3c, 0x7d79, 0x4b4b, 0x462c, 0x7d7a, 0xfc3a, 0xfc3b, + 0x3150, 0x7077, 0x7074, 0x4951, 0x4d6a, 0x7078, + /* 0x9840 */ + 0x7079, 0xfc3d, 0x707b, 0x426a, 0x335b, 0x335c, 0x707a, 0x7d7c, + 0x7d7d, 0x3469, 0x3832, 0x7d7e, 0x7e21, 0x346a, 0x7e22, 0x7e23, + 0x453f, 0x4e60, 0x7e25, 0xfc3e, 0x385c, 0x707c, 0x7e26, 0x707d, + 0x707e, 0x7121, 0x7123, 0x7122, + /* 0x9880 */ + 0x4977, 0x7124, 0xfc3f, 0xfc40, 0x7125, 0xfc41, 0x7126, 0x7127, + 0xfc43, 0xfc44, 0x7e27, 0xfc45, 0xfc46, 0xfc47, + /* 0x98C0 */ + 0xfc48, 0x7129, 0x7128, 0x712a, 0xfc49, 0x7e28, 0xfc4a, 0x4874, + 0x664c, 0x3f29, 0xfc4b, 0xfc4d, 0x3532, 0xfc4e, 0xfc4f, 0x7e29, + 0x712b, 0xfc50, 0x712c, 0x522c, 0x5d3b, 0x4853, 0xfc51, 0xfc52, + 0x307b, 0xfc53, 0x303b, 0x3b74, 0x4b30, 0x3e7e, + /* 0x9900 */ + 0x712d, 0x4c5f, 0xfc54, 0x712e, 0x4d5c, 0x3142, 0x3b41, 0x712f, + 0x326e, 0x7130, 0xfc57, 0xfc58, 0x7131, 0xfc5a, 0xfc5b, 0xfc5c, + 0x7133, 0x7134, 0x7136, 0x7132, 0x7135, 0x345b, 0x7137, 0x7138, + 0xfc5e, 0xfc5f, 0xfc60, 0xfc61, 0xfc62, 0xfc63, 0x7139, 0x713a, + /* 0x9940 */ + 0xfc64, 0xfc65, 0x713b, 0x713d, 0xfc66, 0x713c, 0x713f, 0x7142, + 0xfc67, 0xfc68, 0x713e, 0x7140, 0x7141, 0x7143, 0x3642, 0x7e2a, + 0xfc69, 0xfc6a, 0xfc6b, + /* 0x9980 */ + 0x3c73, 0x7144, 0x7145, 0x3961, 0x7e2b, 0xfc6c, 0x7146, 0xfc6d, + 0x333e, 0x474f, 0x7147, 0x7148, 0x435a, 0x466b, 0xfc6e, 0x7149, + 0xfc6f, 0xfc70, + /* 0x99C0 */ + 0x477d, 0xfc71, 0x424c, 0x3158, 0x366e, 0x366f, 0xfc72, 0x4373, + 0x714e, 0x3670, 0xfc73, 0x326f, 0x714d, 0xfc74, 0x714b, 0x714c, + 0xfc75, 0x714a, 0x7158, 0x714f, 0x7150, 0xfc77, 0x7151, 0x7152, + 0x7154, 0xfc78, 0x7153, 0xfc79, 0x3d59, + /* 0x9A00 */ + 0x7155, 0x7e2c, 0x7e2d, 0x7157, 0xfc7a, 0x3533, 0x7156, 0xfc7b, + 0x417b, 0x3833, 0xfc7c, 0x7159, 0xfc7d, 0xfc7e, 0x7e2e, 0x424d, + 0x715a, 0x7e2f, 0x7e30, 0x462d, 0xfd21, 0xfd22, 0x715b, 0x7e31, + 0x7160, + /* 0x9A40 */ + 0x715e, 0x715d, 0x715f, 0xfd23, 0x715c, 0x7e32, 0xfd24, 0x7162, + 0x7e33, 0x7e34, 0x7161, 0x7164, 0xfd25, 0x3643, 0x7163, 0x7165, + 0x7166, 0x7168, 0x7167, 0x7169, 0x716b, 0x716a, + /* 0x9A80 */ + 0x397c, 0x716c, 0xfd27, 0x716d, 0x7e35, 0xfd29, 0x333c, 0xfd2b, + 0x716e, + /* 0x9AC0 */ + 0x716f, 0x7e36, 0x7e37, 0x3f71, 0xfd2d, 0x7e38, 0x7170, 0xfd2e, + 0x7171, 0xfd2f, 0x7172, 0x7173, 0xfd30, 0x7e39, 0x3962, 0xfd32, + 0x7174, 0x7175, 0xfd33, 0x7176, 0x7177, 0xfd34, 0x7178, 0xfd35, + 0x4831, 0x717a, 0x4926, 0x717b, 0x7179, 0x717d, 0x717c, 0x717e, + 0x7e3a, 0x7221, + /* 0x9B00 */ + 0x7e3b, 0xfd36, 0x7222, 0x7e3c, 0xfd37, 0xfd38, 0xfd39, 0xfd3a, + 0x7223, 0x7224, 0xfd3b, 0x7225, 0x7e3d, 0x7226, 0x7227, 0x7228, + 0x7229, 0x722a, 0x722b, 0x722c, 0xfd3c, 0x7e3f, 0x722d, 0x722e, + 0x5d35, 0x722f, 0xfd3d, 0x6478, 0x3534, 0xfd3e, + /* 0x9B40 */ + 0x3321, 0x3a32, 0x7231, 0x7230, 0x4c25, 0xfd40, 0x7233, 0x7234, + 0x7232, 0x7235, 0x4b62, 0x7236, 0x357b, 0x7e40, 0xfd41, 0xfd42, + 0x7e42, 0xfd43, 0xfd44, 0x4f25, 0x7e43, 0xfd45, 0x7237, 0x7e44, + 0xfd46, 0xfd47, 0x7e41, + /* 0x9B80 */ + 0x7239, 0x7e45, 0x7e46, 0x303e, 0x7e47, 0x723a, 0x4a2b, 0x7238, + 0x723b, 0x723c, 0x7e48, 0x723d, 0x723e, 0xfd48, 0x7e49, 0x723f, + 0x4b6e, 0x3b2d, 0xfd49, 0x3a7a, 0x412f, 0xfd4a, 0xfd4d, 0x7240, + 0xfd4e, 0x7243, 0xfd4f, + /* 0x9BC0 */ + 0x7241, 0x7e4a, 0x7244, 0xfd50, 0x3871, 0x7242, 0x7e4b, 0x7245, + 0x7246, 0x7247, 0x724b, 0x3b2a, 0xfd52, 0x4264, 0xfd53, 0x724c, + 0x7249, 0x7248, 0x724a, 0x7e4c, 0xfd54, 0x375f, 0xfd55, 0xfd56, + 0xfd58, 0xfd57, 0x7250, 0x724f, 0x724e, 0xfd51, 0x3033, 0xfd5c, + 0x7e4d, 0xfd5a, 0x7e4e, + /* 0x9C00 */ + 0x7e4f, 0x725a, 0x7256, 0x7257, 0x7253, 0x7259, 0x7255, 0x3362, + 0x4f4c, 0x7258, 0x7254, 0x7252, 0x7251, 0xfd5e, 0xfd5f, 0xfd60, + 0xfd61, 0x725c, 0xfd62, 0x725f, 0xfd63, 0x7e50, 0x725e, 0x725d, + 0xfd64, 0xfd65, 0xfd66, 0x4949, 0x725b, 0x3073, 0x7260, 0xfd68, + 0x7262, 0xfd69, 0xfd6a, 0x336f, 0x724d, 0x3137, 0x7264, + /* 0x9C40 */ + 0x7e51, 0xfd6b, 0x7263, 0x7261, 0x432d, 0xfd6e, 0xfd6f, 0x7e52, + 0x7e53, 0x4b70, 0x7e54, 0xfd71, 0x4e5a, 0xfd72, 0x7265, 0xfd73, + 0xfd6c, 0xfd74, 0xfd75, 0x7266, 0x7e55, 0x7e56, 0x7267, 0xfd76, + 0xfd77, 0xfd78, 0xfd79, 0xfd7a, 0xfd7b, 0xfd7c, 0xfd7d, 0x7268, + 0x7e57, 0x7269, 0xfd7e, + /* 0x9CC0 */ + 0x443b, 0xfe21, 0x726a, 0x4837, 0x726f, 0x726b, 0x726c, 0xfe22, + 0x4b31, 0x4c44, 0x4650, + /* 0x9D00 */ + 0xfe24, 0x7270, 0x7271, 0x463e, 0x726e, 0x726d, 0xfe23, 0x322a, + 0xfe26, 0x7279, 0x7278, 0xfe27, 0xfe28, 0x3175, 0x7e58, 0x7e59, + 0x7276, 0x7275, 0x7273, 0x337b, 0x7272, 0x3c32, 0x3229, 0xfe2c, + 0x3963, 0x727c, 0x727b, + /* 0x9D40 */ + 0x727a, 0xfe2e, 0x7e5a, 0x7277, 0x727d, 0x7e5b, 0x727e, 0xfe2f, + 0x7325, 0x7324, 0x7e5c, 0x7326, 0x312d, 0x7321, 0x7322, 0xfe30, + 0x3974, 0x4c39, 0xfe31, 0x7e5d, 0x7323, 0xfe33, 0xfe34, 0x4b32, + 0x732b, 0x7e5e, 0x7327, 0xfe36, 0xfe37, 0xfe38, 0x732c, 0x7e5f, + 0xfe39, + /* 0x9D80 */ + 0xfe3a, 0x7329, 0x7328, 0x7e60, 0xfe3b, 0x375c, 0x7e61, 0xfe3c, + 0x732d, 0xfe3d, 0x732e, 0x732f, 0x732a, 0x7e63, 0x7274, 0x7330, + 0x4461, 0xfe3f, 0x7334, 0xfe40, 0x7335, 0x7333, 0x7e64, 0xfe41, + 0xfe3e, + /* 0x9DC0 */ + 0x7e62, 0x7332, 0x7338, 0xfe42, 0x7331, 0x7336, 0xfe43, 0xfe44, + 0x7337, 0x733a, 0xfe45, 0x7e65, 0x7339, 0xfe46, 0xfe47, 0xfe48, + 0xfe49, 0x733c, 0x7e67, 0x733d, 0x733e, 0x4f49, 0xfe4a, 0x733b, + 0x426b, 0x3a6d, 0x733f, + /* 0x9E00 */ + 0xfe4d, 0x7e68, 0xfe4c, 0xfe4e, 0x7e69, 0xfe4f, 0x7340, 0x7341, + 0xfe50, 0xfe51, 0x7342, + /* 0x9E40 */ + 0x7343, 0x3834, 0x7344, 0xfe52, 0x7e6a, 0x7345, 0x3c2f, + /* 0x9E80 */ + 0xfe54, 0x7346, 0xfe55, 0x7347, 0x7348, 0x7349, 0x734c, 0x734a, + 0x4f3c, 0x734b, 0x4e6f, 0xfe56, 0x734d, 0x7e6b, 0x4e5b, 0x7e6c, + 0x734e, 0x477e, 0xfe57, 0x734f, 0x7351, 0x7e6d, 0x7352, 0x7e6e, + 0x7e6f, 0x7e70, 0x7350, 0x396d, 0x4c4d, 0x4b63, 0x5677, 0xfe59, + 0x5d60, 0x4b7b, + /* 0x9EC0 */ + 0x7e71, 0x322b, 0x7354, 0x3550, 0x7355, 0x7356, 0x7357, 0x7e72, + 0x3975, 0x7358, 0x6054, 0x4c5b, 0x4263, 0x7359, 0x735b, 0x735a, + 0xfe5b, 0x735c, 0x735d, 0xfe5c, 0x735e, 0xfe5d, 0x735f, 0x7360, + 0x7361, 0x7362, 0x7363, 0x7364, 0x7365, 0x7366, 0xfe5e, + /* 0x9F00 */ + 0xfe5f, 0xfe61, 0x7367, 0x7368, 0x4524, 0x7e73, 0x385d, 0x736a, + 0xfe62, 0xfe63, 0x414d, 0x736b, 0x736c, 0xfe64, 0xfe65, 0x7e74, + 0xfe66, 0x4921, 0xfe67, 0x736d, + /* 0x9F40 */ + 0xfe68, 0xfe69, 0xfe6a, 0x736e, 0x6337, 0x6c5a, 0x706d, 0x736f, + 0xfe6b, 0x7370, 0xfe6c, 0x7e75, 0xfe6d, 0xfe6f, 0x7372, 0x7373, + 0x7374, 0x4e70, 0x7371, 0x7375, 0x7376, 0xfe71, 0x7378, 0x7377, + 0xfe73, 0xfe74, 0x737a, 0xfe75, 0x737b, 0x7379, + /* 0x9F80 */ + 0x4e36, 0x7e76, 0x7e77, 0x737c, 0x7e78, 0x737d, 0x6354, 0x737e, + 0x7e79, + /* 0xF900 */ + 0x763b, 0x742e, 0x754e, 0x7b4f, + /* 0xF940 */ + 0x7649, + /* 0xF9C0 */ + 0x7e24, 0x7d5d, + /* 0xFA00 */ + 0x2f4b, 0x2f57, 0x4f72, 0xae79, 0x757a, 0x775a, 0x776f, 0x793c, + 0x793d, 0x7941, 0x7b3a, 0xf738, 0xf745, 0x7c2e, 0xf96e, 0x7c6a, + 0x2e38, 0x2e49, 0x2e50, 0x2e63, 0x2e68, 0x2e6e, 0x2f2c, 0x2f2f, + 0x2f36, 0x2f5a, 0x2f5e, 0x4f61, 0x4f62, 0x7450, 0x745c, 0x745e, + /* 0xFA40 */ + 0x7461, 0x7528, 0x752b, 0x7543, 0x7565, 0x7669, 0x7677, 0x7725, + 0x7755, 0xf029, 0x7825, 0x7927, 0x7933, 0x7934, 0x7937, 0x7938, + 0x7939, 0x793b, 0x793f, 0x7940, 0x794d, 0x7951, 0x7964, 0x7a2e, + 0xf450, 0x7a33, 0x7a3a, 0x7a44, 0x7a58, 0xf574, 0xf575, 0x7b27, + 0x7b6f, 0x7b79, 0x7c2f, 0x7c30, 0x7c38, 0x7c3d, 0xf969, 0x7c59, + 0x7d63, 0x7d76, 0x7d7b, + /* 0xFE40 */ + 0x233e, 0x233d, + /* 0xFF00 */ + 0x212a, 0x2230, 0x2174, 0x2170, 0x2173, 0x2175, 0x222f, 0x214a, + 0x214b, 0x2176, 0x215c, 0x2124, 0x2231, 0x2125, 0x213f, 0x2330, + 0x2331, 0x2332, 0x2333, 0x2334, 0x2335, 0x2336, 0x2337, 0x2338, + 0x2339, 0x2127, 0x2128, 0x2163, 0x2161, 0x2164, 0x2129, 0x2177, + 0x2341, 0x2342, 0x2343, 0x2344, 0x2345, 0x2346, 0x2347, 0x2348, + 0x2349, 0x234a, 0x234b, 0x234c, 0x234d, 0x234e, 0x234f, 0x2350, + 0x2351, 0x2352, 0x2353, 0x2354, 0x2355, 0x2356, 0x2357, 0x2358, + 0x2359, 0x235a, 0x214e, 0x2140, 0x214f, 0x2130, 0x2132, + /* 0xFF40 */ + 0x212e, 0x2361, 0x2362, 0x2363, 0x2364, 0x2365, 0x2366, 0x2367, + 0x2368, 0x2369, 0x236a, 0x236b, 0x236c, 0x236d, 0x236e, 0x236f, + 0x2370, 0x2371, 0x2372, 0x2373, 0x2374, 0x2375, 0x2376, 0x2377, + 0x2378, 0x2379, 0x237a, 0x2150, 0x2143, 0x2151, 0x2232, 0x2256, + 0x2257, + /* 0xFFC0 */ + 0x2131, 0x216f, + /* 0x20000 */ + 0x2e22, + /* 0x20080 */ + 0xa121, 0xa12b, 0xa12e, + /* 0x20180 */ + 0xa136, + /* 0x20200 */ + 0xa146, + /* 0x20300 */ + 0xa170, + /* 0x20340 */ + 0xa179, + /* 0x20380 */ + 0xa177, + /* 0x203C0 */ + 0xa322, + /* 0x20440 */ + 0xa325, + /* 0x20500 */ + 0xa327, + /* 0x205C0 */ + 0xa331, + /* 0x20600 */ + 0xa332, + /* 0x20740 */ + 0xa338, + /* 0x20800 */ + 0xa33f, 0xa341, + /* 0x20880 */ + 0xa34a, + /* 0x20940 */ + 0xa352, + /* 0x20980 */ + 0xa353, + /* 0x20AC0 */ + 0xa359, + /* 0x20B00 */ + 0xa35c, + /* 0x20B80 */ + 0x4f54, + /* 0x20D40 */ + 0xa377, + /* 0x20DC0 */ + 0xa42a, + /* 0x20E40 */ + 0xa43a, 0xa432, + /* 0x20E80 */ + 0xa431, + /* 0x20F40 */ + 0xa43d, + /* 0x21200 */ + 0xa459, 0x2f42, + /* 0x21240 */ + 0xa45c, 0xa463, 0xa45e, + /* 0x212C0 */ + 0xa46b, 0xa46a, 0xa472, + /* 0x21300 */ + 0x2f4c, 0xa474, + /* 0x21340 */ + 0xa475, + /* 0x213C0 */ + 0xa525, + /* 0x21440 */ + 0xa532, 0x2f60, + /* 0x215C0 */ + 0xa53e, + /* 0x21640 */ + 0xa547, + /* 0x21680 */ + 0x4f63, + /* 0x21700 */ + 0xa555, + /* 0x21740 */ + 0xa556, + /* 0x21880 */ + 0x2f7b, + /* 0x219C0 */ + 0xa57e, + /* 0x21C40 */ + 0xa830, + /* 0x21D00 */ + 0xa837, + /* 0x21D40 */ + 0xa838, 0xa83b, 0xa83a, + /* 0x21D80 */ + 0xa845, 0xa840, 0xa83f, 0xa848, + /* 0x21DC0 */ + 0xa84a, + /* 0x21E00 */ + 0xa84b, 0x4f6e, + /* 0x21F00 */ + 0xa85b, + /* 0x21F40 */ + 0xa866, + /* 0x21FC0 */ + 0xa86c, + /* 0x22140 */ + 0xac22, + /* 0x22200 */ + 0xfe53, + /* 0x22300 */ + 0xac2b, + /* 0x22380 */ + 0xac30, + /* 0x226C0 */ + 0xac50, + /* 0x22840 */ + 0xac65, + /* 0x22880 */ + 0xac6d, + /* 0x22980 */ + 0xac72, + /* 0x22A80 */ + 0xad24, + /* 0x22B40 */ + 0xad32, 0xad29, 0xad2a, + /* 0x22B80 */ + 0xad35, + /* 0x22C00 */ + 0xad34, 0xad39, + /* 0x22DC0 */ + 0xad56, + /* 0x23180 */ + 0xae24, + /* 0x231C0 */ + 0xad7d, 0x753a, 0xae23, + /* 0x23340 */ + 0xae3a, + /* 0x233C0 */ + 0xae42, 0xae3d, 0xae3c, 0xae44, 0xae47, 0xae49, 0xae43, + /* 0x23440 */ + 0xae55, 0xae57, 0xae56, 0xae5b, + /* 0x234C0 */ + 0xae77, + /* 0x23540 */ + 0xae78, + /* 0x23580 */ + 0xaf2a, + /* 0x235C0 */ + 0x7572, + /* 0x23600 */ + 0xaf42, 0xaf3f, 0xaf43, + /* 0x23640 */ + 0xaf40, + /* 0x23700 */ + 0xaf59, 0xaf4e, 0x7629, + /* 0x23740 */ + 0x7632, 0xaf61, + /* 0x237C0 */ + 0xaf6a, 0xaf69, + /* 0x23800 */ + 0xaf70, 0xaf75, + /* 0x23A80 */ + 0xee23, + /* 0x23C40 */ + 0xee34, + /* 0x23CC0 */ + 0x7660, + /* 0x23D00 */ + 0xee49, 0xf475, + /* 0x23D40 */ + 0xee5c, + /* 0x23DC0 */ + 0xee60, 0xee5f, 0xee5e, + /* 0x23F40 */ + 0xef32, + /* 0x24080 */ + 0xef47, + /* 0x24100 */ + 0xef4d, + /* 0x241C0 */ + 0xef61, 0xef64, + /* 0x24380 */ + 0xf022, + /* 0x24600 */ + 0xf033, + /* 0x24680 */ + 0xf039, + /* 0x247C0 */ + 0x776c, + /* 0x24880 */ + 0xf053, + /* 0x24A40 */ + 0xf07b, + /* 0x24B40 */ + 0xf12e, 0xf130, + /* 0x24C00 */ + 0xf135, + /* 0x24D00 */ + 0xf144, + /* 0x24E00 */ + 0xf15d, 0xf161, + /* 0x24E40 */ + 0xf166, + /* 0x24E80 */ + 0xf169, + /* 0x25040 */ + 0xf175, 0xf177, + /* 0x25100 */ + 0xf17a, + /* 0x25180 */ + 0xf221, + /* 0x251C0 */ + 0xf224, 0xf223, + /* 0x25200 */ + 0xf228, + /* 0x25240 */ + 0xf22c, + /* 0x25400 */ + 0xf23d, + /* 0x25480 */ + 0x787e, + /* 0x254C0 */ + 0xf248, + /* 0x25500 */ + 0x7929, + /* 0x25580 */ + 0xf25b, + /* 0x25740 */ + 0x7947, + /* 0x25780 */ + 0xf275, 0xf276, + /* 0x259C0 */ + 0x7954, 0xf332, + /* 0x25AC0 */ + 0xf33e, 0xf33d, 0xf340, + /* 0x25B80 */ + 0xf352, + /* 0x25C40 */ + 0xf35d, 0xf35e, + /* 0x25D80 */ + 0x796e, + /* 0x25E00 */ + 0xf373, + /* 0x25E40 */ + 0xf374, 0xf377, 0xf375, + /* 0x25EC0 */ + 0xf37d, 0xf37b, 0xf422, + /* 0x25F00 */ + 0xf424, + /* 0x25F40 */ + 0xf427, + /* 0x25FC0 */ + 0xf42f, 0xf42e, 0xf435, + /* 0x26000 */ + 0xf434, 0xf43d, + /* 0x26040 */ + 0xf442, + /* 0x260C0 */ + 0xf44f, + /* 0x26240 */ + 0xf469, + /* 0x26280 */ + 0xf46b, + /* 0x26340 */ + 0xf472, + /* 0x26400 */ + 0xf479, + /* 0x26640 */ + 0xf535, + /* 0x26680 */ + 0xf53a, + /* 0x26700 */ + 0xf546, + /* 0x268C0 */ + 0xf556, 0xf558, + /* 0x26940 */ + 0xf55a, 0xf55d, + /* 0x269C0 */ + 0xf55f, + /* 0x26A00 */ + 0xf563, + /* 0x26A40 */ + 0xf56a, + /* 0x26A80 */ + 0xf570, 0xf573, + /* 0x26AC0 */ + 0x7a5d, + /* 0x26C00 */ + 0xa544, + /* 0x26C40 */ + 0xf644, + /* 0x26CC0 */ + 0xf64e, + /* 0x26E40 */ + 0x7b33, 0xf65d, + /* 0x26F80 */ + 0xf675, + /* 0x26FC0 */ + 0xf721, 0xf722, 0xf67e, + /* 0x270C0 */ + 0x7b49, + /* 0x27100 */ + 0xf733, 0xf736, + /* 0x273C0 */ + 0xf765, 0xf764, 0xf76b, + /* 0x27400 */ + 0xf76e, + /* 0x27440 */ + 0xf773, + /* 0x27600 */ + 0xf82a, 0xf829, 0xf82c, + /* 0x27680 */ + 0x7b6c, 0xf834, + /* 0x27700 */ + 0xf83c, 0xf83e, + /* 0x27740 */ + 0xf842, + /* 0x27980 */ + 0xf856, + /* 0x27A80 */ + 0xf863, + /* 0x27B80 */ + 0xf877, 0xf879, + /* 0x27BC0 */ + 0xf87a, + /* 0x27C80 */ + 0xf925, + /* 0x27D80 */ + 0xf92f, + /* 0x27E00 */ + 0xf932, + /* 0x27F80 */ + 0xf939, + /* 0x28080 */ + 0xf942, 0xf948, + /* 0x28240 */ + 0x7c49, + /* 0x28280 */ + 0xf959, + /* 0x282C0 */ + 0xf95e, + /* 0x283C0 */ + 0x7c51, + /* 0x28400 */ + 0xf966, + /* 0x28440 */ + 0xf96b, + /* 0x28540 */ + 0xf97a, + /* 0x285C0 */ + 0xf97e, 0xfa21, + /* 0x286C0 */ + 0xfa2c, 0xfa2f, + /* 0x28940 */ + 0xfa50, 0xfa4f, 0xfa57, + /* 0x28980 */ + 0xfa65, 0xfa66, 0xfa71, 0xfa72, + /* 0x28A00 */ + 0xfa7e, 0xfb21, + /* 0x28A40 */ + 0xfb2d, 0xfb2c, + /* 0x28A80 */ + 0xfb36, + /* 0x28AC0 */ + 0xfb37, 0xfb3e, 0xfb3d, + /* 0x28BC0 */ + 0xfb4e, 0xfb4f, + /* 0x28D00 */ + 0xfb57, + /* 0x28D40 */ + 0xfb5a, + /* 0x28DC0 */ + 0xfb5c, + /* 0x28E00 */ + 0xfb5d, 0xfb61, + /* 0x28E80 */ + 0xfb65, + /* 0x28EC0 */ + 0xfb67, + /* 0x28F00 */ + 0xfb69, + /* 0x28FC0 */ + 0xfb71, + /* 0x29280 */ + 0xfc22, 0xfc23, + /* 0x29480 */ + 0xfc38, + /* 0x295C0 */ + 0xfc42, + /* 0x29640 */ + 0xfc4c, + /* 0x296C0 */ + 0xfc56, + /* 0x29700 */ + 0xfc59, + /* 0x29740 */ + 0xfc5d, + /* 0x298C0 */ + 0xfc76, + /* 0x29A40 */ + 0xfd2c, + /* 0x29DC0 */ + 0xfd4b, + /* 0x29E00 */ + 0xfd59, 0xfd4c, + /* 0x29E40 */ + 0xfd5d, + /* 0x29E80 */ + 0xfd5b, + /* 0x29EC0 */ + 0xfd67, 0xfd70, 0xfd6d, + /* 0x29FC0 */ + 0xfe25, + /* 0x2A000 */ + 0xfe2b, 0xfe29, + /* 0x2A080 */ + 0xfe35, + /* 0x2A0C0 */ + 0xfe32, + /* 0x2A180 */ + 0x7e66, + /* 0x2A380 */ + 0xfe58, + /* 0x2A400 */ + 0xfe5a, + /* 0x2A5C0 */ + 0xfe6e, + /* 0x2A600 */ + 0xfe70, 0xfe72, + /* 0x2A680 */ + 0xfe76, +}; + +static const Summary16 jisx0213_from_ucs_level2_2indx[] = { + /* 0x0080 */ + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0xffdf }, { 15, 0xffdf }, + /* 0x00C0 */ + { 30, 0xffff }, { 46, 0xffff }, { 62, 0xffff }, { 78, 0xffff }, + /* 0x0100 */ + { 94, 0xf3ff }, { 108, 0x3f0e }, { 117, 0x0cb0 }, { 122, 0x6630 }, + /* 0x0140 */ + { 128, 0x399e }, { 137, 0xff3f }, { 151, 0xfc3f }, { 163, 0x7e03 }, + /* 0x0180 */ + { 171, 0x0000 }, { 171, 0x0008 }, { 172, 0x0000 }, { 172, 0x0000 }, + /* 0x01C0 */ + { 172, 0x6004 }, { 175, 0x1557 }, { 183, 0x0000 }, { 183, 0x2300 }, + /* 0x0240 */ + { 186, 0x0000 }, { 186, 0xd7ff }, { 200, 0xf1f3 }, { 211, 0x6e2f }, + /* 0x0280 */ + { 221, 0x7f1e }, { 232, 0x2137 }, { 239, 0x0006 }, { 241, 0x0000 }, + /* 0x02C0 */ + { 241, 0x1180 }, { 244, 0x6b03 }, { 251, 0x03e0 }, { 256, 0x0000 }, + /* 0x0300 */ + { 256, 0x995f }, { 266, 0xf700 }, { 273, 0x9631 }, { 280, 0x3e11 }, + /* 0x0340 */ + { 287, 0x0000 }, { 287, 0x0000 }, { 287, 0x0002 }, { 288, 0x0000 }, + /* 0x0380 */ + { 288, 0x0000 }, { 288, 0xfffe }, { 303, 0x03fb }, { 312, 0xfffe }, + /* 0x03C0 */ + { 327, 0x03ff }, { 337, 0x0000 }, { 337, 0x0000 }, { 337, 0x0000 }, + /* 0x0400 */ + { 337, 0x0002 }, { 338, 0xffff }, { 354, 0xffff }, { 370, 0xffff }, + /* 0x0440 */ + { 386, 0xffff }, { 402, 0x0002 }, { 403, 0x0000 }, { 403, 0x0000 }, + /* 0x1E00 */ + { 403, 0x0000 }, { 403, 0x0000 }, { 403, 0x0000 }, { 403, 0xc000 }, + /* 0x1F40 */ + { 405, 0x0000 }, { 405, 0x0000 }, { 405, 0x0000 }, { 405, 0x000f }, + /* 0x2000 */ + { 409, 0x0000 }, { 409, 0x3359 }, { 417, 0x0067 }, { 422, 0x980d }, + /* 0x2040 */ + { 428, 0x0384 }, { 432, 0x0002 }, { 433, 0x0000 }, { 433, 0x0000 }, + /* 0x2080 */ + { 433, 0x0000 }, { 433, 0x0000 }, { 433, 0x1000 }, { 434, 0x0000 }, + /* 0x2100 */ + { 434, 0x8008 }, { 436, 0x0048 }, { 438, 0x0882 }, { 441, 0x0020 }, + /* 0x2140 */ + { 442, 0x0000 }, { 442, 0x0038 }, { 445, 0x0fff }, { 457, 0x0fff }, + /* 0x2180 */ + { 469, 0x0000 }, { 469, 0x03df }, { 478, 0x0000 }, { 478, 0x0000 }, + /* 0x21C0 */ + { 478, 0x0010 }, { 479, 0x0014 }, { 481, 0x03c0 }, { 485, 0x0000 }, + /* 0x2200 */ + { 485, 0x0bad }, { 493, 0xe40c }, { 499, 0x5fe1 }, { 509, 0x2030 }, + /* 0x2240 */ + { 512, 0x0128 }, { 515, 0x0004 }, { 516, 0x0cc7 }, { 523, 0x00c0 }, + /* 0x2280 */ + { 525, 0x0cfc }, { 533, 0x00e0 }, { 536, 0x0020 }, { 537, 0x8000 }, + /* 0x22C0 */ + { 538, 0x0000 }, { 538, 0x0c00 }, { 540, 0x0000 }, { 540, 0x0000 }, + /* 0x2300 */ + { 540, 0x0060 }, { 542, 0x0104 }, { 544, 0x0000 }, { 544, 0x0000 }, + /* 0x2380 */ + { 544, 0x0000 }, { 544, 0x0000 }, { 544, 0x0000 }, { 544, 0xc000 }, + /* 0x23C0 */ + { 546, 0x5fff }, { 560, 0x0000 }, { 560, 0x0000 }, { 560, 0x0000 }, + /* 0x2400 */ + { 560, 0x0000 }, { 560, 0x0000 }, { 560, 0x0008 }, { 561, 0x0000 }, + /* 0x2440 */ + { 561, 0x0000 }, { 561, 0x0000 }, { 561, 0xffff }, { 577, 0x000f }, + /* 0x24C0 */ + { 581, 0x0000 }, { 581, 0xffff }, { 597, 0xfbff }, { 612, 0x7fff }, + /* 0x2500 */ + { 627, 0x900f }, { 633, 0x3999 }, { 641, 0x9939 }, { 649, 0x9999 }, + /* 0x2540 */ + { 657, 0x0804 }, { 659, 0x0000 }, { 659, 0x0000 }, { 659, 0x0000 }, + /* 0x2580 */ + { 659, 0x0000 }, { 659, 0x0000 }, { 659, 0x0003 }, { 661, 0x30ce }, + /* 0x25C0 */ + { 668, 0xcac3 }, { 676, 0x000f }, { 680, 0x8040 }, { 682, 0x0000 }, + /* 0x2600 */ + { 682, 0x406f }, { 689, 0x40c0 }, { 692, 0x0000 }, { 692, 0x0000 }, + /* 0x2640 */ + { 692, 0x0005 }, { 694, 0x0000 }, { 694, 0xffff }, { 710, 0x0000 }, + /* 0x2700 */ + { 710, 0x0000 }, { 710, 0x0008 }, { 711, 0x0000 }, { 711, 0x0000 }, + /* 0x2740 */ + { 711, 0x0000 }, { 711, 0x0040 }, { 712, 0x0000 }, { 712, 0xffc0 }, + /* 0x2900 */ + { 722, 0x0000 }, { 722, 0x0000 }, { 722, 0x0000 }, { 722, 0x0030 }, + /* 0x2980 */ + { 724, 0x0000 }, { 724, 0x0000 }, { 724, 0x0000 }, { 724, 0x8000 }, + /* 0x29C0 */ + { 725, 0x0000 }, { 725, 0x0000 }, { 725, 0x0000 }, { 725, 0x0c00 }, + /* 0x3000 */ + { 727, 0xffef }, { 742, 0xb3ff }, { 755, 0x0001 }, { 756, 0x3838 }, + /* 0x3040 */ + { 762, 0xfffe }, { 777, 0xffff }, { 793, 0xffff }, { 809, 0xffff }, + /* 0x3080 */ + { 825, 0xffff }, { 841, 0xf87f }, { 853, 0xffff }, { 869, 0xffff }, + /* 0x30C0 */ + { 885, 0xffff }, { 901, 0xffff }, { 917, 0xffff }, { 933, 0xffff }, + /* 0x31C0 */ + { 949, 0x0000 }, { 949, 0x0000 }, { 949, 0x0000 }, { 949, 0xffff }, + /* 0x3200 */ + { 965, 0x0000 }, { 965, 0x0000 }, { 965, 0x0000 }, { 965, 0x0206 }, + /* 0x3240 */ + { 968, 0x0000 }, { 968, 0xfffe }, { 983, 0x0000 }, { 983, 0x0000 }, + /* 0x3280 */ + { 983, 0x0000 }, { 983, 0x0000 }, { 983, 0x01f0 }, { 988, 0xfffe }, + /* 0x32C0 */ + { 1003, 0x0000 }, { 1003, 0xffff }, { 1019, 0x322f }, { 1027, 0x0400 }, + /* 0x3300 */ + { 1028, 0x2008 }, { 1030, 0x0110 }, { 1032, 0x08cc }, { 1037, 0x0840 }, + /* 0x3340 */ + { 1039, 0x2600 }, { 1042, 0x0082 }, { 1044, 0x0000 }, { 1044, 0x7800 }, + /* 0x3380 */ + { 1048, 0xc000 }, { 1050, 0x7000 }, { 1053, 0x0002 }, { 1054, 0x0000 }, + /* 0x33C0 */ + { 1054, 0x2810 }, { 1057, 0x0000 }, { 1057, 0x0000 }, { 1057, 0x0000 }, + /* 0x3400 */ + { 1057, 0x0044 }, { 1059, 0x0000 }, { 1059, 0x5000 }, { 1061, 0x0000 }, + /* 0x3440 */ + { 1061, 0x0000 }, { 1061, 0x0000 }, { 1061, 0x0500 }, { 1063, 0x0000 }, + /* 0x3480 */ + { 1063, 0x0000 }, { 1063, 0x0004 }, { 1064, 0x0000 }, { 1064, 0x1020 }, + /* 0x34C0 */ + { 1066, 0x0082 }, { 1068, 0x0800 }, { 1069, 0x0000 }, { 1069, 0x0000 }, + /* 0x3500 */ + { 1069, 0x0000 }, { 1069, 0x8000 }, { 1070, 0x0000 }, { 1070, 0x0000 }, + /* 0x3540 */ + { 1070, 0x0000 }, { 1070, 0x6000 }, { 1072, 0x4008 }, { 1074, 0x0000 }, + /* 0x3580 */ + { 1074, 0x0000 }, { 1074, 0x0000 }, { 1074, 0x0140 }, { 1076, 0x0000 }, + /* 0x35C0 */ + { 1076, 0x0020 }, { 1077, 0x0400 }, { 1078, 0x0000 }, { 1078, 0x0010 }, + /* 0x3600 */ + { 1079, 0x0020 }, { 1080, 0x0000 }, { 1080, 0x0000 }, { 1080, 0x0000 }, + /* 0x3640 */ + { 1080, 0x0400 }, { 1081, 0x0000 }, { 1081, 0x0000 }, { 1081, 0x0000 }, + /* 0x3680 */ + { 1081, 0x0000 }, { 1081, 0x0242 }, { 1084, 0x0000 }, { 1084, 0x0000 }, + /* 0x36C0 */ + { 1084, 0x8000 }, { 1085, 0x0000 }, { 1085, 0x0000 }, { 1085, 0x0000 }, + /* 0x3740 */ + { 1085, 0x0000 }, { 1085, 0x0000 }, { 1085, 0x1806 }, { 1089, 0x0020 }, + /* 0x3780 */ + { 1090, 0x2000 }, { 1091, 0x0000 }, { 1091, 0x0000 }, { 1091, 0x0000 }, + /* 0x37C0 */ + { 1091, 0x0002 }, { 1092, 0x0000 }, { 1092, 0x0104 }, { 1094, 0x2010 }, + /* 0x3800 */ + { 1096, 0x0001 }, { 1097, 0x0000 }, { 1097, 0x8000 }, { 1098, 0x0040 }, + /* 0x3840 */ + { 1099, 0x0001 }, { 1100, 0x1000 }, { 1101, 0x0002 }, { 1102, 0x0000 }, + /* 0x38C0 */ + { 1102, 0x0000 }, { 1102, 0x0000 }, { 1102, 0x0000 }, { 1102, 0x0400 }, + /* 0x3900 */ + { 1103, 0x0000 }, { 1103, 0x0480 }, { 1105, 0x0000 }, { 1105, 0x0000 }, + /* 0x3940 */ + { 1105, 0x0000 }, { 1105, 0x0000 }, { 1105, 0x8000 }, { 1106, 0x0000 }, + /* 0x3A40 */ + { 1106, 0x0000 }, { 1106, 0x0000 }, { 1106, 0x4000 }, { 1107, 0x0008 }, + /* 0x3AC0 */ + { 1108, 0x0000 }, { 1108, 0x00c0 }, { 1110, 0x0400 }, { 1111, 0x0000 }, + /* 0x3B00 */ + { 1111, 0x4000 }, { 1112, 0x1400 }, { 1114, 0x0004 }, { 1115, 0x0000 }, + /* 0x3B40 */ + { 1115, 0x0000 }, { 1115, 0x0000 }, { 1115, 0x2000 }, { 1116, 0x0080 }, + /* 0x3B80 */ + { 1117, 0x2180 }, { 1120, 0x0000 }, { 1120, 0x0010 }, { 1121, 0x0040 }, + /* 0x3BC0 */ + { 1122, 0x2008 }, { 1124, 0x0000 }, { 1124, 0x0000 }, { 1124, 0x0001 }, + /* 0x3C00 */ + { 1125, 0x8000 }, { 1126, 0x0000 }, { 1126, 0x0040 }, { 1127, 0x0000 }, + /* 0x3CC0 */ + { 1127, 0x0008 }, { 1128, 0x0004 }, { 1129, 0x0000 }, { 1129, 0x0000 }, + /* 0x3D00 */ + { 1129, 0x0000 }, { 1129, 0x4002 }, { 1131, 0x0000 }, { 1131, 0x0000 }, + /* 0x3D40 */ + { 1131, 0x0000 }, { 1131, 0x0000 }, { 1131, 0x0010 }, { 1132, 0x0000 }, + /* 0x3D80 */ + { 1132, 0x0000 }, { 1132, 0x0400 }, { 1133, 0x0000 }, { 1133, 0x0000 }, + /* 0x3DC0 */ + { 1133, 0x0001 }, { 1134, 0x0010 }, { 1135, 0x0000 }, { 1135, 0x0000 }, + /* 0x3E00 */ + { 1135, 0x0020 }, { 1136, 0x0000 }, { 1136, 0x0000 }, { 1136, 0x8000 }, + /* 0x3E40 */ + { 1137, 0x0000 }, { 1137, 0x0000 }, { 1137, 0x0141 }, { 1140, 0x0000 }, + /* 0x3E80 */ + { 1140, 0x0008 }, { 1141, 0x0010 }, { 1142, 0x0000 }, { 1142, 0x0000 }, + /* 0x3F40 */ + { 1142, 0x0000 }, { 1142, 0x0080 }, { 1143, 0x0000 }, { 1143, 0x00a4 }, + /* 0x3F80 */ + { 1146, 0x0000 }, { 1146, 0x0000 }, { 1146, 0x4000 }, { 1147, 0x0000 }, + /* 0x3FC0 */ + { 1147, 0x0200 }, { 1148, 0x0080 }, { 1149, 0x0000 }, { 1149, 0x0000 }, + /* 0x4000 */ + { 1149, 0x0000 }, { 1149, 0x0000 }, { 1149, 0x0000 }, { 1149, 0x0200 }, + /* 0x4040 */ + { 1150, 0x0000 }, { 1150, 0x0100 }, { 1151, 0x0000 }, { 1151, 0x0000 }, + /* 0x4080 */ + { 1151, 0x0000 }, { 1151, 0x0008 }, { 1152, 0x0000 }, { 1152, 0x0000 }, + /* 0x4100 */ + { 1152, 0x0020 }, { 1153, 0x0000 }, { 1153, 0x0000 }, { 1153, 0x0000 }, + /* 0x4140 */ + { 1153, 0x8100 }, { 1155, 0x0000 }, { 1155, 0x0008 }, { 1156, 0x0000 }, + /* 0x4180 */ + { 1156, 0x0000 }, { 1156, 0x0000 }, { 1156, 0x0000 }, { 1156, 0x8010 }, + /* 0x41C0 */ + { 1158, 0x0000 }, { 1158, 0x0000 }, { 1158, 0x4040 }, { 1160, 0x0008 }, + /* 0x4200 */ + { 1161, 0x4080 }, { 1163, 0x0000 }, { 1163, 0x0000 }, { 1163, 0x0000 }, + /* 0x4240 */ + { 1163, 0x0000 }, { 1163, 0x0000 }, { 1163, 0x0010 }, { 1164, 0x0000 }, + /* 0x42C0 */ + { 1164, 0x0040 }, { 1165, 0x2040 }, { 1167, 0x0000 }, { 1167, 0x0000 }, + /* 0x4300 */ + { 1167, 0x0004 }, { 1168, 0x0000 }, { 1168, 0x0800 }, { 1169, 0x0000 }, + /* 0x4340 */ + { 1169, 0x0008 }, { 1170, 0x0000 }, { 1170, 0x0000 }, { 1170, 0x0000 }, + /* 0x43C0 */ + { 1170, 0x0000 }, { 1170, 0x0000 }, { 1170, 0x4000 }, { 1171, 0x0001 }, + /* 0x4400 */ + { 1172, 0x0100 }, { 1173, 0x1080 }, { 1175, 0x0004 }, { 1176, 0x0000 }, + /* 0x4440 */ + { 1176, 0x0000 }, { 1176, 0x0808 }, { 1178, 0x0000 }, { 1178, 0x0440 }, + /* 0x4480 */ + { 1180, 0x0000 }, { 1180, 0x0002 }, { 1181, 0x0000 }, { 1181, 0x4008 }, + /* 0x44C0 */ + { 1183, 0x0000 }, { 1183, 0x0010 }, { 1184, 0x0000 }, { 1184, 0x0000 }, + /* 0x4500 */ + { 1184, 0x2100 }, { 1186, 0x0000 }, { 1186, 0x0020 }, { 1187, 0x0000 }, + /* 0x4540 */ + { 1187, 0x0008 }, { 1188, 0x0000 }, { 1188, 0x0000 }, { 1188, 0x0000 }, + /* 0x4580 */ + { 1188, 0x0000 }, { 1188, 0x2000 }, { 1189, 0x0000 }, { 1189, 0x0100 }, + /* 0x45C0 */ + { 1190, 0x0000 }, { 1190, 0x0000 }, { 1190, 0x0420 }, { 1192, 0x0000 }, + /* 0x4600 */ + { 1192, 0x8000 }, { 1193, 0x0000 }, { 1193, 0x0000 }, { 1193, 0x0000 }, + /* 0x4640 */ + { 1193, 0x0002 }, { 1194, 0x0000 }, { 1194, 0x0020 }, { 1195, 0x0000 }, + /* 0x4680 */ + { 1195, 0x0000 }, { 1195, 0x0000 }, { 1195, 0x8002 }, { 1197, 0x0000 }, + /* 0x4700 */ + { 1197, 0x1000 }, { 1198, 0x0000 }, { 1198, 0x0000 }, { 1198, 0x0000 }, + /* 0x4740 */ + { 1198, 0x0000 }, { 1198, 0x0000 }, { 1198, 0x0010 }, { 1199, 0x0000 }, + /* 0x47C0 */ + { 1199, 0x0000 }, { 1199, 0x0000 }, { 1199, 0x0000 }, { 1199, 0x2000 }, + /* 0x4800 */ + { 1200, 0x0000 }, { 1200, 0x0040 }, { 1201, 0x0000 }, { 1201, 0x0000 }, + /* 0x4840 */ + { 1201, 0x4010 }, { 1203, 0x0000 }, { 1203, 0x0000 }, { 1203, 0x0000 }, + /* 0x4880 */ + { 1203, 0x0000 }, { 1203, 0x0000 }, { 1203, 0x0000 }, { 1203, 0x0020 }, + /* 0x4980 */ + { 1204, 0x0000 }, { 1204, 0x0000 }, { 1204, 0x0000 }, { 1204, 0x0001 }, + /* 0x49C0 */ + { 1205, 0x0000 }, { 1205, 0x0000 }, { 1205, 0x0080 }, { 1206, 0x0400 }, + /* 0x4A00 */ + { 1207, 0x0010 }, { 1208, 0x0000 }, { 1208, 0x0200 }, { 1209, 0x0000 }, + /* 0x4A80 */ + { 1209, 0x0000 }, { 1209, 0x0000 }, { 1209, 0x0000 }, { 1209, 0x1000 }, + /* 0x4B00 */ + { 1210, 0x0000 }, { 1210, 0x0000 }, { 1210, 0x0000 }, { 1210, 0x0800 }, + /* 0x4BC0 */ + { 1211, 0x0404 }, { 1213, 0x0004 }, { 1214, 0x0100 }, { 1215, 0x0000 }, + /* 0x4C00 */ + { 1215, 0x0000 }, { 1215, 0x0080 }, { 1216, 0x0001 }, { 1217, 0x0000 }, + /* 0x4CC0 */ + { 1217, 0x0010 }, { 1218, 0x0002 }, { 1219, 0x0000 }, { 1219, 0x0000 }, + /* 0x4D00 */ + { 1219, 0x0080 }, { 1220, 0x0000 }, { 1220, 0x0000 }, { 1220, 0x0000 }, + /* 0x4D40 */ + { 1220, 0x0000 }, { 1220, 0x0000 }, { 1220, 0x0000 }, { 1220, 0x0080 }, + /* 0x4E00 */ + { 1221, 0xef8f }, { 1233, 0x43f7 }, { 1243, 0xff42 }, { 1253, 0x9b47 }, + /* 0x4E40 */ + { 1262, 0xe9ad }, { 1272, 0xe7e2 }, { 1282, 0x0204 }, { 1284, 0x400a }, + /* 0x4E80 */ + { 1287, 0x7f65 }, { 1298, 0xfb36 }, { 1309, 0x7977 }, { 1320, 0x1e49 }, + /* 0x4EC0 */ + { 1327, 0xeddf }, { 1340, 0xe7f1 }, { 1351, 0x683a }, { 1358, 0xa8e7 }, + /* 0x4F00 */ + { 1367, 0xee0b }, { 1376, 0x3443 }, { 1382, 0x8000 }, { 1383, 0x75d1 }, + /* 0x4F40 */ + { 1392, 0xe3c8 }, { 1400, 0xfffb }, { 1415, 0x9611 }, { 1421, 0xfde9 }, + /* 0x4F80 */ + { 1433, 0xad6c }, { 1442, 0x2dd6 }, { 1451, 0xe803 }, { 1457, 0xc064 }, + /* 0x4FC0 */ + { 1462, 0xce3c }, { 1471, 0xad97 }, { 1481, 0xc07b }, { 1489, 0x456e }, + /* 0x5000 */ + { 1497, 0xea67 }, { 1507, 0xd75f }, { 1519, 0x7ffe }, { 1533, 0x0a40 }, + /* 0x5040 */ + { 1536, 0xc3cf }, { 1546, 0x14e9 }, { 1553, 0x1468 }, { 1558, 0x2175 }, + /* 0x5080 */ + { 1565, 0x2121 }, { 1569, 0x177e }, { 1579, 0x3408 }, { 1583, 0x4cbe }, + /* 0x50C0 */ + { 1592, 0xf6b4 }, { 1602, 0x4673 }, { 1610, 0x62ea }, { 1618, 0x0a2c }, + /* 0x5100 */ + { 1623, 0x0b5f }, { 1632, 0xcdf4 }, { 1642, 0x0402 }, { 1644, 0x9ca4 }, + /* 0x5140 */ + { 1651, 0x7ffb }, { 1665, 0x14b5 }, { 1672, 0x7f25 }, { 1682, 0x19ea }, + /* 0x5180 */ + { 1690, 0xbe6d }, { 1701, 0x23ef }, { 1711, 0x3f7d }, { 1723, 0x30ff }, + /* 0x51C0 */ + { 1733, 0x3e78 }, { 1742, 0x7840 }, { 1747, 0x66c7 }, { 1756, 0x677b }, + /* 0x5200 */ + { 1767, 0x4ddf }, { 1778, 0x20fe }, { 1786, 0x46b0 }, { 1792, 0x0fc9 }, + /* 0x5240 */ + { 1800, 0xbe98 }, { 1809, 0x78f0 }, { 1817, 0x963a }, { 1825, 0xa0bf }, + /* 0x5280 */ + { 1834, 0x239c }, { 1841, 0x891e }, { 1848, 0xbe59 }, { 1858, 0x5e32 }, + /* 0x52C0 */ + { 1866, 0x37aa }, { 1875, 0xebe7 }, { 1887, 0x00dd }, { 1893, 0xcfad }, + /* 0x5300 */ + { 1904, 0xade7 }, { 1915, 0x36e1 }, { 1923, 0x841b }, { 1929, 0xcf2a }, + /* 0x5340 */ + { 1938, 0x27ef }, { 1949, 0x559e }, { 1958, 0xd2cb }, { 1967, 0xadbb }, + /* 0x5380 */ + { 1978, 0x0014 }, { 1980, 0xa548 }, { 1986, 0x6371 }, { 1994, 0x08dd }, + /* 0x53C0 */ + { 2001, 0x7f0d }, { 2011, 0x8ef0 }, { 2019, 0xff3e }, { 2032, 0x05ff }, + /* 0x5400 */ + { 2042, 0xff1a }, { 2053, 0xe807 }, { 2060, 0x7bd1 }, { 2070, 0x7b40 }, + /* 0x5440 */ + { 2077, 0x674d }, { 2086, 0x8022 }, { 2089, 0x1d44 }, { 2095, 0xb8fb }, + /* 0x5480 */ + { 2106, 0xfd51 }, { 2116, 0x1065 }, { 2121, 0xfb77 }, { 2134, 0xf58c }, + /* 0x54C0 */ + { 2143, 0x03df }, { 2152, 0x0100 }, { 2153, 0xf366 }, { 2163, 0xa40e }, + /* 0x5500 */ + { 2169, 0xc2d3 }, { 2177, 0x0051 }, { 2180, 0xc800 }, { 2183, 0x532a }, + /* 0x5540 */ + { 2190, 0x94f3 }, { 2199, 0x70c9 }, { 2206, 0x001b }, { 2210, 0x7800 }, + /* 0x5580 */ + { 2214, 0x4fdf }, { 2226, 0xf702 }, { 2234, 0x7f80 }, { 2242, 0x8041 }, + /* 0x55C0 */ + { 2245, 0x52b0 }, { 2251, 0xb416 }, { 2258, 0x021c }, { 2262, 0x6280 }, + /* 0x5600 */ + { 2266, 0x43c0 }, { 2271, 0x09d1 }, { 2277, 0x8300 }, { 2280, 0xa9d7 }, + /* 0x5640 */ + { 2290, 0x5285 }, { 2296, 0x4809 }, { 2300, 0xbd51 }, { 2309, 0x0556 }, + /* 0x5680 */ + { 2315, 0x95c1 }, { 2322, 0x6630 }, { 2328, 0x7325 }, { 2336, 0x105c }, + /* 0x56C0 */ + { 2341, 0x672f }, { 2351, 0xcd8a }, { 2359, 0x4109 }, { 2363, 0xa6cd }, + /* 0x5700 */ + { 2372, 0xaf19 }, { 2381, 0x916c }, { 2388, 0xa3ca }, { 2396, 0x0999 }, + /* 0x5740 */ + { 2402, 0xf4e5 }, { 2412, 0x0003 }, { 2414, 0x8752 }, { 2421, 0x98b9 }, + /* 0x5780 */ + { 2429, 0x0b04 }, { 2433, 0x7408 }, { 2438, 0x151d }, { 2445, 0x0109 }, + /* 0x57C0 */ + { 2448, 0xd9c9 }, { 2457, 0xd0dc }, { 2465, 0x2059 }, { 2470, 0xbff1 }, + /* 0x5800 */ + { 2482, 0x0e75 }, { 2490, 0x6220 }, { 2494, 0x8493 }, { 2500, 0x2637 }, + /* 0x5840 */ + { 2508, 0x1e03 }, { 2514, 0x4796 }, { 2522, 0x0a96 }, { 2528, 0x5225 }, + /* 0x5880 */ + { 2534, 0xae28 }, { 2541, 0xf099 }, { 2549, 0x4f00 }, { 2554, 0x4f0a }, + /* 0x58C0 */ + { 2561, 0x74aa }, { 2569, 0xd7be }, { 2581, 0xda35 }, { 2590, 0x3e9f }, + /* 0x5900 */ + { 2601, 0xbe64 }, { 2610, 0x1f71 }, { 2619, 0x7eb4 }, { 2629, 0x6186 }, + /* 0x5940 */ + { 2635, 0xc3d0 }, { 2642, 0xadb3 }, { 2652, 0x77a5 }, { 2662, 0x3178 }, + /* 0x5980 */ + { 2669, 0x2c1e }, { 2676, 0xaa4c }, { 2683, 0x5138 }, { 2689, 0x5a04 }, + /* 0x59C0 */ + { 2694, 0x2b48 }, { 2700, 0x761f }, { 2710, 0x4df8 }, { 2719, 0x8940 }, + /* 0x5A00 */ + { 2723, 0x320a }, { 2728, 0x958a }, { 2735, 0xa2a9 }, { 2742, 0x1060 }, + /* 0x5A40 */ + { 2745, 0x0243 }, { 2749, 0x0420 }, { 2751, 0x34e4 }, { 2758, 0xc480 }, + /* 0x5A80 */ + { 2762, 0x0810 }, { 2764, 0xdc04 }, { 2770, 0x0085 }, { 2773, 0xf42a }, + /* 0x5AC0 */ + { 2781, 0x1a16 }, { 2787, 0x14c1 }, { 2792, 0x426b }, { 2799, 0x0c21 }, + /* 0x5B00 */ + { 2803, 0x1b01 }, { 2808, 0x02c0 }, { 2811, 0x3424 }, { 2816, 0x4055 }, + /* 0x5B40 */ + { 2821, 0x102b }, { 2826, 0xbdf7 }, { 2839, 0x8b78 }, { 2847, 0xb52b }, + /* 0x5B80 */ + { 2856, 0xbbbb }, { 2868, 0xbfe8 }, { 2879, 0x507c }, { 2886, 0x8379 }, + /* 0x5BC0 */ + { 2894, 0x52fd }, { 2904, 0xe95d }, { 2914, 0x5bf6 }, { 2925, 0xe56b }, + /* 0x5C00 */ + { 2935, 0xeffe }, { 2949, 0x444e }, { 2955, 0x2b1d }, { 2963, 0xff03 }, + /* 0x5C40 */ + { 2973, 0xed63 }, { 2983, 0xc82b }, { 2990, 0xd3bf }, { 3002, 0x1643 }, + /* 0x5C80 */ + { 3008, 0x9500 }, { 3012, 0x8013 }, { 3016, 0x3fcf }, { 3028, 0x5dea }, + /* 0x5CC0 */ + { 3038, 0x0aa0 }, { 3042, 0x0205 }, { 3045, 0xa703 }, { 3052, 0x2c51 }, + /* 0x5D00 */ + { 3058, 0x68c0 }, { 3063, 0xaff3 }, { 3075, 0x0ad5 }, { 3082, 0x0202 }, + /* 0x5D40 */ + { 3084, 0x5cc4 }, { 3091, 0x100d }, { 3095, 0xb602 }, { 3101, 0x0049 }, + /* 0x5D80 */ + { 3104, 0x1996 }, { 3111, 0x2295 }, { 3117, 0x5095 }, { 3123, 0x3795 }, + /* 0x5DC0 */ + { 3132, 0x3a00 }, { 3136, 0x69ce }, { 3145, 0x4bff }, { 3157, 0x68be }, + /* 0x5E00 */ + { 3166, 0x184d }, { 3172, 0xaf76 }, { 3183, 0xe820 }, { 3188, 0x61c9 }, + /* 0x5E40 */ + { 3195, 0x52b9 }, { 3203, 0xc1f0 }, { 3210, 0x781e }, { 3218, 0xfffc }, + /* 0x5E80 */ + { 3232, 0x849a }, { 3238, 0x14e0 }, { 3243, 0x3ce1 }, { 3251, 0xc3e0 }, + /* 0x5EC0 */ + { 3258, 0x8f4e }, { 3267, 0xae4d }, { 3276, 0x130f }, { 3283, 0xffdb }, + /* 0x5F00 */ + { 3297, 0xff9f }, { 3311, 0xf9fb }, { 3324, 0xa2e8 }, { 3331, 0x71f2 }, + /* 0x5F40 */ + { 3340, 0x55a3 }, { 3348, 0x33da }, { 3357, 0x3ede }, { 3368, 0xf28f }, + /* 0x5F80 */ + { 3378, 0x9fbf }, { 3391, 0x538f }, { 3400, 0xe797 }, { 3411, 0x33b8 }, + /* 0x5FC0 */ + { 3419, 0x3ab8 }, { 3427, 0x73dc }, { 3437, 0xca17 }, { 3445, 0xb92b }, + /* 0x6000 */ + { 3454, 0xe000 }, { 3457, 0x3bf5 }, { 3468, 0x8ff7 }, { 3480, 0x042a }, + /* 0x6040 */ + { 3484, 0x3cce }, { 3493, 0x8625 }, { 3499, 0xbf3d }, { 3511, 0x80a1 }, + /* 0x6080 */ + { 3515, 0x3e1a }, { 3523, 0xecf4 }, { 3533, 0x07c9 }, { 3540, 0x717f }, + /* 0x60C0 */ + { 3551, 0x09e0 }, { 3556, 0xbf3a }, { 3567, 0x418b }, { 3573, 0x0fff }, + /* 0x6100 */ + { 3585, 0xe34b }, { 3594, 0xde2d }, { 3604, 0x1982 }, { 3609, 0xf491 }, + /* 0x6140 */ + { 3617, 0x7dd6 }, { 3628, 0xa728 }, { 3635, 0xc9ad }, { 3644, 0x50fb }, + /* 0x6180 */ + { 3653, 0x6484 }, { 3658, 0x07df }, { 3668, 0x7bb0 }, { 3677, 0x5644 }, + /* 0x61C0 */ + { 3683, 0x3fc8 }, { 3692, 0xa021 }, { 3696, 0x0048 }, { 3698, 0xf5f4 }, + /* 0x6200 */ + { 3709, 0x7701 }, { 3716, 0xec77 }, { 3727, 0xc64e }, { 3735, 0xc91d }, + /* 0x6240 */ + { 3743, 0x7bcb }, { 3754, 0x4d6e }, { 3763, 0xe11b }, { 3771, 0xda4a }, + /* 0x6280 */ + { 3779, 0x063d }, { 3786, 0x5bfe }, { 3798, 0x1840 }, { 3801, 0x3a22 }, + /* 0x62C0 */ + { 3807, 0xb7f4 }, { 3818, 0x3bff }, { 3831, 0xf003 }, { 3837, 0xf0ea }, + /* 0x6300 */ + { 3846, 0x378e }, { 3855, 0x8303 }, { 3860, 0x8980 }, { 3864, 0xfe24 }, + /* 0x6340 */ + { 3873, 0xf21a }, { 3881, 0x12a1 }, { 3886, 0x5ba0 }, { 3893, 0x1cc4 }, + /* 0x6380 */ + { 3899, 0xd319 }, { 3907, 0x8b54 }, { 3914, 0x1faf }, { 3925, 0x6834 }, + /* 0x63C0 */ + { 3931, 0x8259 }, { 3937, 0x1c75 }, { 3945, 0x7a2b }, { 3954, 0x04f4 }, + /* 0x6400 */ + { 3960, 0xa240 }, { 3964, 0x50d9 }, { 3971, 0xb364 }, { 3979, 0x4450 }, + /* 0x6440 */ + { 3983, 0x4004 }, { 3985, 0x2d02 }, { 3990, 0xa281 }, { 3995, 0x2748 }, + /* 0x6480 */ + { 4001, 0x0188 }, { 4004, 0xe42e }, { 4012, 0x6a30 }, { 4018, 0xda05 }, + /* 0x64C0 */ + { 4025, 0x7cb6 }, { 4035, 0x05b5 }, { 4042, 0x90ff }, { 4052, 0xecd6 }, + /* 0x6500 */ + { 4062, 0x8031 }, { 4066, 0x7150 }, { 4072, 0x9e1c }, { 4080, 0xcbf4 }, + /* 0x6540 */ + { 4090, 0xa130 }, { 4095, 0x63f2 }, { 4104, 0x18cc }, { 4110, 0x05b5 }, + /* 0x6580 */ + { 4117, 0x57be }, { 4128, 0xba83 }, { 4136, 0xb8b2 }, { 4144, 0xb3a5 }, + /* 0x65C0 */ + { 4153, 0x9a7e }, { 4163, 0x0a94 }, { 4168, 0x33e7 }, { 4178, 0x1e06 }, + /* 0x6600 */ + { 4184, 0xd7dd }, { 4196, 0xd038 }, { 4202, 0xadb7 }, { 4213, 0x947b }, + /* 0x6640 */ + { 4222, 0xdb3e }, { 4233, 0xee86 }, { 4242, 0xfffe }, { 4257, 0x0dd9 }, + /* 0x6680 */ + { 4265, 0x639b }, { 4274, 0x23c7 }, { 4282, 0x6845 }, { 4288, 0xdb36 }, + /* 0x66C0 */ + { 4298, 0x03d2 }, { 4304, 0x3e40 }, { 4310, 0x1341 }, { 4315, 0xffbd }, + /* 0x6700 */ + { 4329, 0xab2b }, { 4338, 0xeafc }, { 4349, 0x7dc0 }, { 4357, 0xa5da }, + /* 0x6740 */ + { 4366, 0xf3c2 }, { 4375, 0xf25b }, { 4385, 0xa47f }, { 4395, 0xd8ff }, + /* 0x6780 */ + { 4407, 0x1aa2 }, { 4413, 0x3dad }, { 4423, 0x8247 }, { 4429, 0x0bdd }, + /* 0x67C0 */ + { 4438, 0xc55b }, { 4447, 0x6f9f }, { 4459, 0xd294 }, { 4466, 0xdabb }, + /* 0x6800 */ + { 4477, 0x001e }, { 4481, 0xe1c9 }, { 4489, 0x3e06 }, { 4496, 0x7b1e }, + /* 0x6840 */ + { 4506, 0x737f }, { 4518, 0xbabf }, { 4530, 0x4888 }, { 4534, 0xd4f4 }, + /* 0x6880 */ + { 4543, 0xa02e }, { 4549, 0xbfd9 }, { 4561, 0xaded }, { 4572, 0x1e7f }, + /* 0x68C0 */ + { 4583, 0xbf78 }, { 4594, 0x87f5 }, { 4604, 0xf1bb }, { 4615, 0x1e87 }, + /* 0x6900 */ + { 4623, 0xfdbb }, { 4636, 0x1e04 }, { 4641, 0x056e }, { 4648, 0xaa71 }, + /* 0x6940 */ + { 4656, 0x0644 }, { 4660, 0x76b8 }, { 4669, 0xff1f }, { 4682, 0xf7bc }, + /* 0x6980 */ + { 4694, 0x4407 }, { 4699, 0x1976 }, { 4707, 0x60e1 }, { 4713, 0xdc97 }, + /* 0x69C0 */ + { 4723, 0xfc8b }, { 4733, 0x634b }, { 4741, 0xef8c }, { 4751, 0xea7c }, + /* 0x6A00 */ + { 4761, 0x9c24 }, { 4767, 0xeebe }, { 4779, 0x4e0e }, { 4786, 0xef7d }, + /* 0x6A40 */ + { 4799, 0x4bf0 }, { 4807, 0x8b45 }, { 4814, 0x0856 }, { 4819, 0xc50c }, + /* 0x6A80 */ + { 4825, 0x6a19 }, { 4832, 0xf093 }, { 4840, 0x5c2f }, { 4849, 0x2908 }, + /* 0x6AC0 */ + { 4853, 0x004e }, { 4857, 0xfc1b }, { 4867, 0x1590 }, { 4872, 0x2c0e }, + /* 0x6B00 */ + { 4878, 0x8c30 }, { 4883, 0xe8c7 }, { 4892, 0x908b }, { 4898, 0x67a4 }, + /* 0x6B40 */ + { 4906, 0x56c8 }, { 4913, 0x8b59 }, { 4921, 0x96ff }, { 4933, 0x8fb8 }, + /* 0x6B80 */ + { 4942, 0x2e5f }, { 4952, 0x4960 }, { 4957, 0xee10 }, { 4964, 0xfcbe }, + /* 0x6BC0 */ + { 4976, 0xebe1 }, { 4986, 0x8ddc }, { 4995, 0xd8c0 }, { 5001, 0x800a }, + /* 0x6C00 */ + { 5004, 0xc524 }, { 5010, 0x089b }, { 5016, 0x0018 }, { 5018, 0xc5f8 }, + /* 0x6C40 */ + { 5027, 0x6007 }, { 5032, 0xfea1 }, { 5042, 0x2585 }, { 5048, 0x645d }, + /* 0x6C80 */ + { 5056, 0x337e }, { 5066, 0x1ffd }, { 5078, 0x6c06 }, { 5084, 0xff0a }, + /* 0x6CC0 */ + { 5094, 0x1676 }, { 5102, 0x3ef9 }, { 5113, 0xff2f }, { 5126, 0x080b }, + /* 0x6D00 */ + { 5130, 0x5c11 }, { 5136, 0xca84 }, { 5142, 0xcef0 }, { 5151, 0xfb7e }, + /* 0x6D40 */ + { 5164, 0x0032 }, { 5167, 0x5f00 }, { 5173, 0x5679 }, { 5182, 0x0391 }, + /* 0x6D80 */ + { 5187, 0x77a7 }, { 5198, 0x1b3a }, { 5206, 0xdc00 }, { 5211, 0x9134 }, + /* 0x6DC0 */ + { 5217, 0xd9f5 }, { 5228, 0xef67 }, { 5240, 0x5f52 }, { 5249, 0x1eea }, + /* 0x6E00 */ + { 5258, 0x0fa0 }, { 5264, 0xeea8 }, { 5273, 0xfaff }, { 5287, 0x5554 }, + /* 0x6E40 */ + { 5294, 0xff18 }, { 5304, 0xd9da }, { 5314, 0xc888 }, { 5319, 0xc044 }, + /* 0x6E80 */ + { 5323, 0x9005 }, { 5327, 0xb149 }, { 5334, 0x8ca4 }, { 5340, 0xa4d6 }, + /* 0x6EC0 */ + { 5348, 0x5ebe }, { 5359, 0x623a }, { 5366, 0x9800 }, { 5369, 0xcb94 }, + /* 0x6F00 */ + { 5377, 0x9646 }, { 5384, 0x053b }, { 5391, 0x9c2d }, { 5399, 0xd16e }, + /* 0x6F40 */ + { 5408, 0x0022 }, { 5410, 0xdf96 }, { 5421, 0xe157 }, { 5430, 0x7511 }, + /* 0x6F80 */ + { 5437, 0x7157 }, { 5446, 0x81d3 }, { 5453, 0x84bb }, { 5461, 0x526a }, + /* 0x6FC0 */ + { 5468, 0x07cf }, { 5477, 0xcd30 }, { 5484, 0xda13 }, { 5492, 0x566b }, + /* 0x7000 */ + { 5501, 0x8ee3 }, { 5510, 0xed22 }, { 5518, 0x11c8 }, { 5523, 0x5605 }, + /* 0x7040 */ + { 5529, 0x5c88 }, { 5535, 0x6112 }, { 5540, 0xda38 }, { 5548, 0x7161 }, + /* 0x7080 */ + { 5555, 0x4662 }, { 5561, 0x82a4 }, { 5566, 0xf810 }, { 5572, 0x0f8a }, + /* 0x70C0 */ + { 5579, 0x8d00 }, { 5583, 0xb31a }, { 5591, 0x1010 }, { 5593, 0x2202 }, + /* 0x7100 */ + { 5596, 0x93d8 }, { 5604, 0x5610 }, { 5609, 0xc843 }, { 5615, 0x1043 }, + /* 0x7140 */ + { 5619, 0x56c0 }, { 5625, 0x526f }, { 5634, 0x53f5 }, { 5644, 0x2000 }, + /* 0x7180 */ + { 5645, 0x85b1 }, { 5652, 0x8a74 }, { 5659, 0xd105 }, { 5665, 0x460a }, + /* 0x71C0 */ + { 5670, 0x4b1a }, { 5677, 0x92bd }, { 5686, 0x70e1 }, { 5693, 0xda20 }, + /* 0x7200 */ + { 5699, 0x20c1 }, { 5703, 0x0821 }, { 5706, 0x3d00 }, { 5711, 0xff75 }, + /* 0x7240 */ + { 5724, 0x19c5 }, { 5731, 0xabec }, { 5741, 0xc28e }, { 5748, 0xe314 }, + /* 0x7280 */ + { 5755, 0x6087 }, { 5761, 0x0844 }, { 5764, 0xf085 }, { 5771, 0x4247 }, + /* 0x72C0 */ + { 5777, 0x505f }, { 5785, 0x0a85 }, { 5790, 0x3207 }, { 5796, 0x3f88 }, + /* 0x7300 */ + { 5804, 0x0480 }, { 5806, 0xbbc4 }, { 5815, 0xdfa0 }, { 5824, 0xe2da }, + /* 0x7340 */ + { 5833, 0xc030 }, { 5837, 0x0085 }, { 5840, 0xdd48 }, { 5848, 0x1da7 }, + /* 0x7380 */ + { 5857, 0x0eb2 }, { 5864, 0xd170 }, { 5871, 0x0b65 }, { 5878, 0x9aac }, + /* 0x73C0 */ + { 5886, 0xef25 }, { 5896, 0x4240 }, { 5899, 0x66ab }, { 5908, 0x4702 }, + /* 0x7400 */ + { 5913, 0x06ea }, { 5920, 0x0c08 }, { 5923, 0xdd74 }, { 5933, 0x867f }, + /* 0x7440 */ + { 5943, 0x28db }, { 5951, 0xfeac }, { 5962, 0xae1d }, { 5971, 0x404b }, + /* 0x7480 */ + { 5976, 0x0bea }, { 5984, 0xd385 }, { 5992, 0x0fef }, { 6003, 0xae21 }, + /* 0x74C0 */ + { 6010, 0x8700 }, { 6014, 0x5550 }, { 6020, 0xcacd }, { 6029, 0x85c7 }, + /* 0x7500 */ + { 6037, 0x703a }, { 6044, 0xd5aa }, { 6053, 0x9d79 }, { 6063, 0x7d8f }, + /* 0x7540 */ + { 6074, 0xff51 }, { 6085, 0x3e17 }, { 6094, 0xbef5 }, { 6106, 0xe7df }, + /* 0x7580 */ + { 6119, 0xdec6 }, { 6129, 0x2416 }, { 6134, 0x082c }, { 6138, 0xf3af }, + /* 0x75C0 */ + { 6150, 0xe4ed }, { 6160, 0xeb3c }, { 6170, 0x529d }, { 6178, 0xd61f }, + /* 0x7600 */ + { 6188, 0xab8f }, { 6198, 0xdb68 }, { 6207, 0x21f7 }, { 6216, 0x1839 }, + /* 0x7640 */ + { 6222, 0x1bce }, { 6231, 0x1164 }, { 6236, 0xf7b6 }, { 6248, 0x7d47 }, + /* 0x7680 */ + { 6258, 0x49db }, { 6267, 0x7e69 }, { 6277, 0xc5c3 }, { 6285, 0x87d1 }, + /* 0x76C0 */ + { 6293, 0x776c }, { 6303, 0xd8d4 }, { 6311, 0x55fa }, { 6321, 0x5916 }, + /* 0x7700 */ + { 6328, 0x1f92 }, { 6336, 0xce80 }, { 6342, 0x2271 }, { 6348, 0x15f0 }, + /* 0x7740 */ + { 6355, 0x60c1 }, { 6360, 0x9d00 }, { 6365, 0x0d6f }, { 6374, 0xf604 }, + /* 0x7780 */ + { 6381, 0x4801 }, { 6384, 0xc412 }, { 6389, 0x3635 }, { 6397, 0xba49 }, + /* 0x77C0 */ + { 6405, 0x2080 }, { 6407, 0xdc80 }, { 6413, 0xf6fd }, { 6426, 0x1819 }, + /* 0x7800 */ + { 6431, 0x3264 }, { 6437, 0x0234 }, { 6441, 0x30e3 }, { 6448, 0x8414 }, + /* 0x7840 */ + { 6452, 0xc0a8 }, { 6457, 0x2002 }, { 6459, 0xdd10 }, { 6466, 0x1014 }, + /* 0x7880 */ + { 6469, 0x74c2 }, { 6476, 0xe4ba }, { 6485, 0xa698 }, { 6492, 0x5c21 }, + /* 0x78C0 */ + { 6498, 0x5d62 }, { 6506, 0x0433 }, { 6511, 0x91d3 }, { 6519, 0x6e94 }, + /* 0x7900 */ + { 6527, 0x4083 }, { 6531, 0x1a07 }, { 6537, 0x5c60 }, { 6543, 0x5c13 }, + /* 0x7940 */ + { 6550, 0x07e3 }, { 6558, 0xfde9 }, { 6570, 0x21a5 }, { 6576, 0x8684 }, + /* 0x7980 */ + { 6581, 0xe433 }, { 6589, 0x2970 }, { 6595, 0x46c2 }, { 6601, 0xef1b }, + /* 0x79C0 */ + { 6612, 0x3f87 }, { 6622, 0xc176 }, { 6630, 0x3ada }, { 6639, 0x0801 }, + /* 0x7A00 */ + { 6641, 0x6d09 }, { 6648, 0xdfb2 }, { 6659, 0x6001 }, { 6662, 0xfb86 }, + /* 0x7A40 */ + { 6672, 0xf2cd }, { 6682, 0xb2c1 }, { 6689, 0x2e8f }, { 6698, 0xa771 }, + /* 0x7A80 */ + { 6707, 0x053e }, { 6714, 0x81ed }, { 6722, 0xd609 }, { 6729, 0xde49 }, + /* 0x7AC0 */ + { 6738, 0xfdb8 }, { 6749, 0xb62e }, { 6758, 0xadef }, { 6770, 0xa751 }, + /* 0x7B00 */ + { 6778, 0x8dd4 }, { 6786, 0x4b06 }, { 6792, 0xf5e1 }, { 6802, 0x2a6a }, + /* 0x7B40 */ + { 6809, 0xfbe2 }, { 6820, 0x2077 }, { 6827, 0xf2f1 }, { 6837, 0x863f }, + /* 0x7B80 */ + { 6846, 0xa8c0 }, { 6851, 0xffb7 }, { 6865, 0xa402 }, { 6869, 0x1132 }, + /* 0x7BC0 */ + { 6874, 0x9ef3 }, { 6885, 0x26d0 }, { 6891, 0x2671 }, { 6898, 0x00c9 }, + /* 0x7C00 */ + { 6902, 0xe88b }, { 6910, 0xc09e }, { 6917, 0x0ccb }, { 6924, 0xe1ca }, + /* 0x7C40 */ + { 6932, 0xb429 }, { 6939, 0xc3d3 }, { 6948, 0xf233 }, { 6957, 0x4229 }, + /* 0x7C80 */ + { 6962, 0xaa0e }, { 6969, 0x89b5 }, { 6977, 0x69f7 }, { 6988, 0xf2ce }, + /* 0x7CC0 */ + { 6998, 0x6535 }, { 7006, 0xf3e4 }, { 7016, 0x88c5 }, { 7022, 0x4d74 }, + /* 0x7D00 */ + { 7030, 0x2ffd }, { 7042, 0x7fbd }, { 7055, 0xd80f }, { 7063, 0xe62f }, + /* 0x7D40 */ + { 7073, 0xd9ff }, { 7086, 0x5e49 }, { 7094, 0x454e }, { 7101, 0xa66f }, + /* 0x7D80 */ + { 7111, 0x9b48 }, { 7118, 0xbe88 }, { 7126, 0xfccd }, { 7137, 0xedf7 }, + /* 0x7DC0 */ + { 7150, 0x9c85 }, { 7157, 0x77e6 }, { 7168, 0x935b }, { 7177, 0x0a16 }, + /* 0x7E00 */ + { 7182, 0x0f32 }, { 7189, 0xe8a7 }, { 7198, 0x59cf }, { 7208, 0x6ea6 }, + /* 0x7E40 */ + { 7217, 0x2cea }, { 7225, 0x6674 }, { 7233, 0x2ec2 }, { 7240, 0xfa29 }, + /* 0x7E80 */ + { 7249, 0xf7cc }, { 7260, 0x1d5f }, { 7270, 0x0000 }, { 7270, 0x0000 }, + /* 0x7F00 */ + { 7270, 0x0000 }, { 7270, 0x0000 }, { 7270, 0x0000 }, { 7270, 0x5d40 }, + /* 0x7F40 */ + { 7276, 0xf0b8 }, { 7284, 0x8137 }, { 7291, 0x6f9b }, { 7302, 0x63a5 }, + /* 0x7F80 */ + { 7310, 0x55ec }, { 7319, 0x74d3 }, { 7328, 0xe318 }, { 7335, 0xa344 }, + /* 0x7FC0 */ + { 7341, 0xd46a }, { 7349, 0x8834 }, { 7354, 0xda6b }, { 7364, 0x1e0d }, + /* 0x8000 */ + { 7371, 0x5d7f }, { 7383, 0x13f7 }, { 7393, 0x1152 }, { 7398, 0xb8e9 }, + /* 0x8040 */ + { 7407, 0x0448 }, { 7410, 0xc544 }, { 7416, 0x8146 }, { 7421, 0xeaff }, + /* 0x8080 */ + { 7434, 0x1af0 }, { 7441, 0x3f48 }, { 7449, 0xb6b6 }, { 7459, 0x0516 }, + /* 0x80C0 */ + { 7464, 0x5478 }, { 7471, 0x6fe0 }, { 7480, 0x8073 }, { 7486, 0x393a }, + /* 0x8100 */ + { 7494, 0x27e4 }, { 7502, 0x4d40 }, { 7507, 0x9298 }, { 7513, 0x622a }, + /* 0x8140 */ + { 7519, 0x4c40 }, { 7523, 0x803b }, { 7529, 0x6be1 }, { 7538, 0x8713 }, + /* 0x8180 */ + { 7545, 0x853f }, { 7554, 0x3528 }, { 7560, 0x0319 }, { 7565, 0xed2d }, + /* 0x81C0 */ + { 7575, 0xa74f }, { 7585, 0x8fca }, { 7594, 0x35b9 }, { 7603, 0xfc18 }, + /* 0x8200 */ + { 7611, 0x77b6 }, { 7622, 0xdbc5 }, { 7632, 0x5e06 }, { 7639, 0x13fc }, + /* 0x8240 */ + { 7648, 0x8ae1 }, { 7655, 0xb780 }, { 7662, 0xcd5d }, { 7672, 0xe3d6 }, + /* 0x8280 */ + { 7682, 0x6c08 }, { 7687, 0xa20c }, { 7692, 0xfbfa }, { 7705, 0xff9e }, + /* 0x82C0 */ + { 7718, 0x0060 }, { 7720, 0xdabe }, { 7731, 0x09ee }, { 7739, 0x6e9a }, + /* 0x8300 */ + { 7748, 0x53ff }, { 7760, 0x39c0 }, { 7766, 0xa90c }, { 7772, 0x1777 }, + /* 0x8340 */ + { 7782, 0x86b9 }, { 7790, 0x01b7 }, { 7797, 0x000c }, { 7799, 0xb8a8 }, + /* 0x8380 */ + { 7806, 0x66e0 }, { 7813, 0xed7c }, { 7824, 0x0f85 }, { 7831, 0xa022 }, + /* 0x83C0 */ + { 7835, 0xd6a3 }, { 7844, 0xb15b }, { 7853, 0x8e23 }, { 7860, 0x2a97 }, + /* 0x8400 */ + { 7868, 0xfcda }, { 7879, 0x00aa }, { 7883, 0x1605 }, { 7888, 0x3322 }, + /* 0x8440 */ + { 7894, 0xc740 }, { 7900, 0x9e86 }, { 7908, 0xfa6e }, { 7919, 0x17eb }, + /* 0x8480 */ + { 7929, 0x0836 }, { 7934, 0xd291 }, { 7941, 0xa042 }, { 7945, 0xdf14 }, + /* 0x84C0 */ + { 7954, 0xee57 }, { 7965, 0x164b }, { 7972, 0xd480 }, { 7977, 0xb413 }, + /* 0x8500 */ + { 7984, 0x1041 }, { 7987, 0xcdba }, { 7997, 0xb87a }, { 8006, 0x6034 }, + /* 0x8540 */ + { 8011, 0xcf0b }, { 8020, 0x47aa }, { 8028, 0xa71e }, { 8037, 0xec80 }, + /* 0x8580 */ + { 8043, 0x95d3 }, { 8052, 0xba9b }, { 8062, 0xff54 }, { 8073, 0x1681 }, + /* 0x85C0 */ + { 8078, 0xee82 }, { 8086, 0xb321 }, { 8093, 0x2672 }, { 8100, 0xcec0 }, + /* 0x8600 */ + { 8107, 0x0cf5 }, { 8115, 0x45cf }, { 8124, 0xa296 }, { 8131, 0x9301 }, + /* 0x8640 */ + { 8136, 0x6003 }, { 8140, 0xdcf9 }, { 8151, 0x9884 }, { 8156, 0x0ea2 }, + /* 0x8680 */ + { 8162, 0x3e80 }, { 8168, 0x312a }, { 8174, 0x8f18 }, { 8181, 0x014b }, + /* 0x86C0 */ + { 8186, 0x6ada }, { 8195, 0xcab2 }, { 8203, 0xf258 }, { 8211, 0x7f00 }, + /* 0x8700 */ + { 8218, 0x6fed }, { 8230, 0x970f }, { 8239, 0x022a }, { 8243, 0xcc92 }, + /* 0x8740 */ + { 8250, 0x5a09 }, { 8256, 0x83aa }, { 8263, 0x4579 }, { 8271, 0x9156 }, + /* 0x8780 */ + { 8278, 0x2b84 }, { 8284, 0x8008 }, { 8286, 0xb885 }, { 8293, 0x6c28 }, + /* 0x87C0 */ + { 8299, 0x48d3 }, { 8306, 0x8045 }, { 8310, 0xbc69 }, { 8319, 0x4ae4 }, + /* 0x8800 */ + { 8326, 0xec6a }, { 8335, 0x807b }, { 8342, 0x418e }, { 8348, 0x1a46 }, + /* 0x8840 */ + { 8354, 0x3455 }, { 8361, 0xeb8c }, { 8370, 0x8b1e }, { 8378, 0xe0a5 }, + /* 0x8880 */ + { 8385, 0x2906 }, { 8390, 0x43c4 }, { 8396, 0x4c15 }, { 8402, 0xf0b3 }, + /* 0x88C0 */ + { 8411, 0xc43f }, { 8420, 0xbb3e }, { 8431, 0x0102 }, { 8433, 0x733f }, + /* 0x8900 */ + { 8444, 0x1496 }, { 8450, 0x770d }, { 8459, 0x0ca0 }, { 8463, 0x0bc5 }, + /* 0x8940 */ + { 8470, 0x323f }, { 8479, 0xc040 }, { 8482, 0xa455 }, { 8489, 0xc094 }, + /* 0x8980 */ + { 8494, 0x8fcb }, { 8504, 0x85d9 }, { 8512, 0x96c2 }, { 8519, 0xa48d }, + /* 0x89C0 */ + { 8526, 0x0001 }, { 8527, 0x3554 }, { 8534, 0x08e8 }, { 8539, 0xa15a }, + /* 0x8A00 */ + { 8546, 0x550d }, { 8553, 0xa9ff }, { 8565, 0x242e }, { 8571, 0x5cfa }, + /* 0x8A40 */ + { 8581, 0x61e2 }, { 8588, 0x6937 }, { 8597, 0x7a4f }, { 8607, 0x122f }, + /* 0x8A80 */ + { 8614, 0x32b4 }, { 8621, 0x452b }, { 8628, 0x71fb }, { 8639, 0xd285 }, + /* 0x8AC0 */ + { 8646, 0xb894 }, { 8653, 0xdcc5 }, { 8662, 0x68d7 }, { 8671, 0x55da }, + /* 0x8B00 */ + { 8680, 0x74b7 }, { 8690, 0xbed1 }, { 8700, 0x3943 }, { 8707, 0x4208 }, + /* 0x8B40 */ + { 8710, 0xd24a }, { 8717, 0xdf52 }, { 8727, 0x9a40 }, { 8732, 0xa0d7 }, + /* 0x8B80 */ + { 8740, 0x5c0b }, { 8747, 0x767d }, { 8758, 0x0000 }, { 8758, 0x0000 }, + /* 0x8C00 */ + { 8758, 0x0000 }, { 8758, 0x0000 }, { 8758, 0x0000 }, { 8758, 0xa680 }, + /* 0x8C40 */ + { 8763, 0xd7e2 }, { 8773, 0x04b1 }, { 8778, 0x3f06 }, { 8786, 0x1708 }, + /* 0x8C80 */ + { 8791, 0x7624 }, { 8798, 0x6b1c }, { 8806, 0xff97 }, { 8819, 0xb9dd }, + /* 0x8CC0 */ + { 8830, 0x659f }, { 8840, 0x5e6a }, { 8849, 0x245f }, { 8857, 0x7d13 }, + /* 0x8D00 */ + { 8866, 0xefb0 }, { 8876, 0x085d }, { 8882, 0x0000 }, { 8882, 0x0000 }, + /* 0x8D40 */ + { 8882, 0x0000 }, { 8882, 0x0000 }, { 8882, 0x38d0 }, { 8888, 0x009b }, + /* 0x8D80 */ + { 8893, 0x0432 }, { 8897, 0x0220 }, { 8899, 0x8148 }, { 8903, 0x4408 }, + /* 0x8DC0 */ + { 8906, 0xd944 }, { 8913, 0xaec2 }, { 8921, 0x9d0a }, { 8928, 0xb028 }, + /* 0x8E00 */ + { 8933, 0x9740 }, { 8939, 0xe051 }, { 8945, 0x048f }, { 8951, 0x2271 }, + /* 0x8E40 */ + { 8957, 0x1f94 }, { 8965, 0x8231 }, { 8970, 0xb01d }, { 8977, 0x1855 }, + /* 0x8E80 */ + { 8983, 0x2cb2 }, { 8990, 0x431a }, { 8996, 0xdc02 }, { 9002, 0x486b }, + /* 0x8EC0 */ + { 9009, 0x3d61 }, { 9017, 0x8816 }, { 9022, 0x080c }, { 9025, 0x7f00 }, + /* 0x8F00 */ + { 9032, 0x1729 }, { 9039, 0xfabc }, { 9050, 0xae40 }, { 9056, 0xcb48 }, + /* 0x8F40 */ + { 9063, 0x7675 }, { 9073, 0x9190 }, { 9078, 0x001e }, { 9082, 0x0000 }, + /* 0x8F80 */ + { 9082, 0x0000 }, { 9082, 0xd800 }, { 9086, 0xe1d8 }, { 9094, 0x9cf7 }, + /* 0x8FC0 */ + { 9105, 0x6476 }, { 9113, 0x043a }, { 9118, 0xef75 }, { 9130, 0x2fb3 }, + /* 0x9000 */ + { 9140, 0xf96f }, { 9152, 0xe6fb }, { 9164, 0x608f }, { 9171, 0x53e6 }, + /* 0x9040 */ + { 9180, 0xeebe }, { 9192, 0x737f }, { 9204, 0xe32b }, { 9213, 0xb5e4 }, + /* 0x9080 */ + { 9222, 0x97bf }, { 9234, 0x0aa3 }, { 9240, 0x854e }, { 9247, 0x416b }, + /* 0x90C0 */ + { 9254, 0x45ba }, { 9262, 0xf880 }, { 9268, 0xa916 }, { 9275, 0xe0f4 }, + /* 0x9100 */ + { 9283, 0x0055 }, { 9287, 0x5374 }, { 9295, 0xa08c }, { 9300, 0x2697 }, + /* 0x9140 */ + { 9308, 0x7fc0 }, { 9317, 0x0bd4 }, { 9324, 0x163e }, { 9332, 0x03bc }, + /* 0x9180 */ + { 9339, 0x6aac }, { 9347, 0x5085 }, { 9352, 0xdd14 }, { 9360, 0x157a }, + /* 0x91C0 */ + { 9368, 0xfbdb }, { 9381, 0xbdc3 }, { 9391, 0x70fa }, { 9400, 0x9862 }, + /* 0x9200 */ + { 9406, 0x6482 }, { 9411, 0x40f3 }, { 9418, 0x1200 }, { 9420, 0x9798 }, + /* 0x9240 */ + { 9428, 0xcfbd }, { 9440, 0x4ec3 }, { 9448, 0x01f7 }, { 9456, 0xf102 }, + /* 0x9280 */ + { 9462, 0x2329 }, { 9468, 0x9fea }, { 9479, 0x2880 }, { 9482, 0x8284 }, + /* 0x92C0 */ + { 9486, 0xd845 }, { 9493, 0x028d }, { 9498, 0x26b1 }, { 9505, 0x9f8c }, + /* 0x9300 */ + { 9514, 0xa054 }, { 9519, 0xe723 }, { 9528, 0xdbef }, { 9541, 0x0c24 }, + /* 0x9340 */ + { 9545, 0x2f90 }, { 9552, 0x1cd2 }, { 9559, 0x5c31 }, { 9566, 0x502b }, + /* 0x9380 */ + { 9572, 0x9900 }, { 9576, 0x4cd0 }, { 9582, 0x708a }, { 9588, 0x0601 }, + /* 0x93C0 */ + { 9591, 0x01ca }, { 9596, 0xf1c3 }, { 9605, 0x01b6 }, { 9611, 0x2822 }, + /* 0x9400 */ + { 9615, 0x8298 }, { 9620, 0x07d9 }, { 9628, 0x0802 }, { 9630, 0x0d7c }, + /* 0x9440 */ + { 9638, 0x0432 }, { 9642, 0x4c0e }, { 9648, 0xac0d }, { 9655, 0xf0a7 }, + /* 0x9480 */ + { 9664, 0x0002 }, { 9665, 0x0000 }, { 9665, 0x0000 }, { 9665, 0x0000 }, + /* 0x9540 */ + { 9665, 0x0000 }, { 9665, 0x0000 }, { 9665, 0x0000 }, { 9665, 0x0380 }, + /* 0x9580 */ + { 9668, 0xfecd }, { 9680, 0x835a }, { 9687, 0x3bfd }, { 9699, 0x7a54 }, + /* 0x95C0 */ + { 9707, 0x3d88 }, { 9714, 0x5579 }, { 9723, 0x0026 }, { 9726, 0x0000 }, + /* 0x9600 */ + { 9726, 0x0000 }, { 9726, 0x3000 }, { 9728, 0xd502 }, { 9734, 0x981c }, + /* 0x9640 */ + { 9740, 0xb817 }, { 9748, 0xf901 }, { 9755, 0x147e }, { 9763, 0x25ed }, + /* 0x9680 */ + { 9772, 0xed74 }, { 9782, 0x3fb0 }, { 9791, 0x87b9 }, { 9800, 0x3fdf }, + /* 0x96C0 */ + { 9813, 0x7af3 }, { 9824, 0x7f66 }, { 9835, 0x8f0c }, { 9842, 0x0ac5 }, + /* 0x9700 */ + { 9848, 0xe5d1 }, { 9857, 0x525a }, { 9864, 0x0498 }, { 9868, 0x6b4d }, + /* 0x9740 */ + { 9877, 0xe3d6 }, { 9887, 0x5ee4 }, { 9896, 0x6f57 }, { 9907, 0x161a }, + /* 0x9780 */ + { 9913, 0xa872 }, { 9920, 0x5561 }, { 9927, 0x694d }, { 9935, 0x441e }, + /* 0x97C0 */ + { 9941, 0x1b4a }, { 9948, 0x5b1a }, { 9956, 0x6002 }, { 9959, 0x887e }, + /* 0x9800 */ + { 9967, 0xf57e }, { 9979, 0x45df }, { 9989, 0x383a }, { 9996, 0x399d }, + /* 0x9840 */ + { 10005, 0xf8c0 }, { 10012, 0x4ffc }, { 10023, 0x98e0 }, { 10029, 0x001b }, + /* 0x9880 */ + { 10033, 0x0000 }, { 10033, 0x0000 }, { 10033, 0xad00 }, { 10038, 0x9dc3 }, + /* 0x98C0 */ + { 10047, 0x09dc }, { 10054, 0x9800 }, { 10057, 0xeeaf }, { 10069, 0x701f }, + /* 0x9900 */ + { 10077, 0x1728 }, { 10083, 0x7ddd }, { 10095, 0x5113 }, { 10101, 0x7c0e }, + /* 0x9940 */ + { 10109, 0x7a67 }, { 10119, 0x91a7 }, { 10127, 0x0001 }, { 10128, 0x0000 }, + /* 0x9980 */ + { 10128, 0x0000 }, { 10128, 0x43c0 }, { 10133, 0x7168 }, { 10140, 0xb218 }, + /* 0x99C0 */ + { 10146, 0x037a }, { 10153, 0xeb37 }, { 10164, 0x6004 }, { 10167, 0x9b07 }, + /* 0x9A00 */ + { 10175, 0xc42e }, { 10182, 0x064e }, { 10188, 0x6911 }, { 10194, 0x41c3 }, + /* 0x9A40 */ + { 10200, 0x743d }, { 10209, 0x8da4 }, { 10216, 0x0e34 }, { 10222, 0x0000 }, + /* 0x9A80 */ + { 10222, 0x0000 }, { 10222, 0x0000 }, { 10222, 0xa100 }, { 10225, 0x13c1 }, + /* 0x9AC0 */ + { 10231, 0xc05b }, { 10238, 0xd17f }, { 10249, 0xee6d }, { 10260, 0x0a92 }, + /* 0x9B00 */ + { 10265, 0x114c }, { 10270, 0x9545 }, { 10277, 0xefad }, { 10289, 0x380e }, + /* 0x9B40 */ + { 10295, 0xe83e }, { 10304, 0x4512 }, { 10309, 0x9868 }, { 10315, 0x02fc }, + /* 0x9B80 */ + { 10322, 0xc418 }, { 10327, 0xc0ce }, { 10334, 0x7dc1 }, { 10343, 0x4316 }, + /* 0x9BC0 */ + { 10349, 0xc6c3 }, { 10357, 0x2956 }, { 10364, 0xcdbe }, { 10375, 0x25af }, + /* 0x9C00 */ + { 10384, 0x3751 }, { 10392, 0x2f7d }, { 10403, 0xe6be }, { 10414, 0x4ec7 }, + /* 0x9C40 */ + { 10423, 0x87e2 }, { 10431, 0xbd9d }, { 10442, 0x6ea9 }, { 10451, 0x05e5 }, + /* 0x9CC0 */ + { 10458, 0x0000 }, { 10458, 0x0000 }, { 10458, 0x1ae0 }, { 10464, 0x005d }, + /* 0x9D00 */ + { 10469, 0x4bcc }, { 10477, 0xe9a6 }, { 10486, 0x1d48 }, { 10492, 0xc804 }, + /* 0x9D40 */ + { 10496, 0x05de }, { 10504, 0xf207 }, { 10512, 0x9a1f }, { 10521, 0x54cd }, + /* 0x9D80 */ + { 10529, 0xa690 }, { 10535, 0x0640 }, { 10538, 0x9a12 }, { 10544, 0xbf34 }, + /* 0x9DC0 */ + { 10554, 0x82df }, { 10563, 0x86c8 }, { 10569, 0xa0c9 }, { 10575, 0x2714 }, + /* 0x9E00 */ + { 10581, 0x2484 }, { 10585, 0x7e20 }, { 10592, 0x0000 }, { 10592, 0x0000 }, + /* 0x9E40 */ + { 10592, 0x0000 }, { 10592, 0x0000 }, { 10592, 0x0000 }, { 10592, 0xbb20 }, + /* 0x9E80 */ + { 10599, 0x1923 }, { 10605, 0xe8ae }, { 10614, 0xb770 }, { 10623, 0xff30 }, + /* 0x9EC0 */ + { 10633, 0xf018 }, { 10639, 0xfb17 }, { 10650, 0xc1a1 }, { 10656, 0xbad0 }, + /* 0x9F00 */ + { 10664, 0x418c }, { 10669, 0x02a9 }, { 10674, 0x9003 }, { 10678, 0x6e80 }, + /* 0x9F40 */ + { 10684, 0xcc62 }, { 10691, 0xa1bc }, { 10699, 0x36cf }, { 10709, 0x00e5 }, + /* 0x9F80 */ + { 10714, 0x2000 }, { 10715, 0x30b1 }, { 10721, 0x0005 }, { 10723, 0x0000 }, + /* 0xF900 */ + { 10723, 0x0000 }, { 10723, 0x2000 }, { 10724, 0x0300 }, { 10726, 0x0040 }, + /* 0xF940 */ + { 10727, 0x0000 }, { 10727, 0x0000 }, { 10727, 0x0000 }, { 10727, 0x0001 }, + /* 0xF9C0 */ + { 10728, 0x0000 }, { 10728, 0x1001 }, { 10730, 0x0000 }, { 10730, 0x0000 }, + /* 0xFA00 */ + { 10730, 0x8000 }, { 10731, 0x8e7b }, { 10741, 0x0057 }, { 10746, 0xffff }, + /* 0xFA40 */ + { 10762, 0xffff }, { 10778, 0xffff }, { 10794, 0x07ff }, { 10805, 0x0000 }, + /* 0xFE40 */ + { 10805, 0x0060 }, { 10807, 0x0000 }, { 10807, 0x0000 }, { 10807, 0x0000 }, + /* 0xFF00 */ + { 10807, 0xfffe }, { 10822, 0xffff }, { 10838, 0xffff }, { 10854, 0xffff }, + /* 0xFF40 */ + { 10870, 0xffff }, { 10886, 0xffff }, { 10902, 0x0001 }, { 10903, 0x0000 }, + /* 0xFFC0 */ + { 10903, 0x0000 }, { 10903, 0x0000 }, { 10903, 0x0028 }, { 10905, 0x0000 }, + /* 0x20000 */ + { 10905, 0x0800 }, { 10906, 0x0000 }, { 10906, 0x0000 }, { 10906, 0x0000 }, + /* 0x20080 */ + { 10906, 0x0200 }, { 10907, 0x0000 }, { 10907, 0x0014 }, { 10909, 0x0000 }, + /* 0x20180 */ + { 10909, 0x0000 }, { 10909, 0x0000 }, { 10909, 0x0004 }, { 10910, 0x0000 }, + /* 0x20200 */ + { 10910, 0x0000 }, { 10910, 0x0008 }, { 10911, 0x0000 }, { 10911, 0x0000 }, + /* 0x20300 */ + { 10911, 0x0000 }, { 10911, 0x0000 }, { 10911, 0x0800 }, { 10912, 0x0000 }, + /* 0x20340 */ + { 10912, 0x0000 }, { 10912, 0x0000 }, { 10912, 0x0000 }, { 10912, 0x0002 }, + /* 0x20380 */ + { 10913, 0x0002 }, { 10914, 0x0000 }, { 10914, 0x0000 }, { 10914, 0x0000 }, + /* 0x203C0 */ + { 10914, 0x0000 }, { 10914, 0x0000 }, { 10914, 0x0000 }, { 10914, 0x0200 }, + /* 0x20440 */ + { 10915, 0x0400 }, { 10916, 0x0000 }, { 10916, 0x0000 }, { 10916, 0x0000 }, + /* 0x20500 */ + { 10916, 0x0200 }, { 10917, 0x0000 }, { 10917, 0x0000 }, { 10917, 0x0000 }, + /* 0x205C0 */ + { 10917, 0x0000 }, { 10917, 0x0040 }, { 10918, 0x0000 }, { 10918, 0x0000 }, + /* 0x20600 */ + { 10918, 0x0000 }, { 10918, 0x0000 }, { 10918, 0x0100 }, { 10919, 0x0000 }, + /* 0x20740 */ + { 10919, 0x8000 }, { 10920, 0x0000 }, { 10920, 0x0000 }, { 10920, 0x0000 }, + /* 0x20800 */ + { 10920, 0x0080 }, { 10921, 0x0000 }, { 10921, 0x0000 }, { 10921, 0x0400 }, + /* 0x20880 */ + { 10922, 0x0000 }, { 10922, 0x0000 }, { 10922, 0x0000 }, { 10922, 0x0200 }, + /* 0x20940 */ + { 10923, 0x0000 }, { 10923, 0x0000 }, { 10923, 0x0000 }, { 10923, 0x1000 }, + /* 0x20980 */ + { 10924, 0x0000 }, { 10924, 0x2000 }, { 10925, 0x0000 }, { 10925, 0x0000 }, + /* 0x20AC0 */ + { 10925, 0x0000 }, { 10925, 0x0008 }, { 10926, 0x0000 }, { 10926, 0x0000 }, + /* 0x20B00 */ + { 10926, 0x0000 }, { 10926, 0x2000 }, { 10927, 0x0000 }, { 10927, 0x0000 }, + /* 0x20B80 */ + { 10927, 0x0000 }, { 10927, 0x8000 }, { 10928, 0x0000 }, { 10928, 0x0000 }, + /* 0x20D40 */ + { 10928, 0x0020 }, { 10929, 0x0000 }, { 10929, 0x0000 }, { 10929, 0x0000 }, + /* 0x20DC0 */ + { 10929, 0x0000 }, { 10929, 0x0000 }, { 10929, 0x0002 }, { 10930, 0x0000 }, + /* 0x20E40 */ + { 10930, 0x0000 }, { 10930, 0x0000 }, { 10930, 0x2010 }, { 10932, 0x0000 }, + /* 0x20E80 */ + { 10932, 0x0000 }, { 10932, 0x0020 }, { 10933, 0x0000 }, { 10933, 0x0000 }, + /* 0x20F40 */ + { 10933, 0x0000 }, { 10933, 0x8000 }, { 10934, 0x0000 }, { 10934, 0x0000 }, + /* 0x21200 */ + { 10934, 0x0002 }, { 10935, 0x0000 }, { 10935, 0x0000 }, { 10935, 0x2000 }, + /* 0x21240 */ + { 10936, 0x0000 }, { 10936, 0x0020 }, { 10937, 0x0000 }, { 10937, 0x0810 }, + /* 0x212C0 */ + { 10939, 0x0000 }, { 10939, 0x0080 }, { 10940, 0x0010 }, { 10941, 0x2000 }, + /* 0x21300 */ + { 10942, 0x0000 }, { 10942, 0x0800 }, { 10943, 0x0000 }, { 10943, 0x0040 }, + /* 0x21340 */ + { 10944, 0x0010 }, { 10945, 0x0000 }, { 10945, 0x0000 }, { 10945, 0x0000 }, + /* 0x213C0 */ + { 10945, 0x0010 }, { 10946, 0x0000 }, { 10946, 0x0000 }, { 10946, 0x0000 }, + /* 0x21440 */ + { 10946, 0x0000 }, { 10946, 0x0000 }, { 10946, 0x6000 }, { 10948, 0x0000 }, + /* 0x215C0 */ + { 10948, 0x0000 }, { 10948, 0x0080 }, { 10949, 0x0000 }, { 10949, 0x0000 }, + /* 0x21640 */ + { 10949, 0x0080 }, { 10950, 0x0000 }, { 10950, 0x0000 }, { 10950, 0x0000 }, + /* 0x21680 */ + { 10950, 0x0000 }, { 10950, 0x0000 }, { 10950, 0x0000 }, { 10950, 0x0010 }, + /* 0x21700 */ + { 10951, 0x0040 }, { 10952, 0x0000 }, { 10952, 0x0000 }, { 10952, 0x0000 }, + /* 0x21740 */ + { 10952, 0x0004 }, { 10953, 0x0000 }, { 10953, 0x0000 }, { 10953, 0x0000 }, + /* 0x21880 */ + { 10953, 0x0000 }, { 10953, 0x0000 }, { 10953, 0x0000 }, { 10953, 0x2000 }, + /* 0x219C0 */ + { 10954, 0x0008 }, { 10955, 0x0000 }, { 10955, 0x0000 }, { 10955, 0x0000 }, + /* 0x21C40 */ + { 10955, 0x0000 }, { 10955, 0x0040 }, { 10956, 0x0000 }, { 10956, 0x0000 }, + /* 0x21D00 */ + { 10956, 0x0000 }, { 10956, 0x0000 }, { 10956, 0x2000 }, { 10957, 0x0000 }, + /* 0x21D40 */ + { 10957, 0x0020 }, { 10958, 0x0000 }, { 10958, 0x0004 }, { 10959, 0x0100 }, + /* 0x21D80 */ + { 10960, 0x0000 }, { 10960, 0x1004 }, { 10962, 0x0002 }, { 10963, 0x0080 }, + /* 0x21DC0 */ + { 10964, 0x0000 }, { 10964, 0x0000 }, { 10964, 0x0001 }, { 10965, 0x0000 }, + /* 0x21E00 */ + { 10965, 0x0000 }, { 10965, 0x0000 }, { 10965, 0x0000 }, { 10965, 0x0018 }, + /* 0x21F00 */ + { 10967, 0x0000 }, { 10967, 0x4000 }, { 10968, 0x0000 }, { 10968, 0x0000 }, + /* 0x21F40 */ + { 10968, 0x0000 }, { 10968, 0x0000 }, { 10968, 0x0000 }, { 10968, 0x0040 }, + /* 0x21FC0 */ + { 10969, 0x0000 }, { 10969, 0x0000 }, { 10969, 0x0000 }, { 10969, 0x0400 }, + /* 0x22140 */ + { 10970, 0x0000 }, { 10970, 0x0000 }, { 10970, 0x0000 }, { 10970, 0x0800 }, + /* 0x22200 */ + { 10971, 0x0000 }, { 10971, 0x0100 }, { 10972, 0x0000 }, { 10972, 0x0000 }, + /* 0x22300 */ + { 10972, 0x0000 }, { 10972, 0x4000 }, { 10973, 0x0000 }, { 10973, 0x0000 }, + /* 0x22380 */ + { 10973, 0x0000 }, { 10973, 0x0000 }, { 10973, 0x2000 }, { 10974, 0x0000 }, + /* 0x226C0 */ + { 10974, 0x0000 }, { 10974, 0x0000 }, { 10974, 0x0000 }, { 10974, 0x0008 }, + /* 0x22840 */ + { 10975, 0x0000 }, { 10975, 0x0800 }, { 10976, 0x0000 }, { 10976, 0x0000 }, + /* 0x22880 */ + { 10976, 0x0000 }, { 10976, 0x0000 }, { 10976, 0x0800 }, { 10977, 0x0000 }, + /* 0x22980 */ + { 10977, 0x8000 }, { 10978, 0x0000 }, { 10978, 0x0000 }, { 10978, 0x0000 }, + /* 0x22A80 */ + { 10978, 0x0000 }, { 10978, 0x0000 }, { 10978, 0x0000 }, { 10978, 0x0100 }, + /* 0x22B40 */ + { 10979, 0x8040 }, { 10981, 0x0001 }, { 10982, 0x0000 }, { 10982, 0x0000 }, + /* 0x22B80 */ + { 10982, 0x0000 }, { 10982, 0x0000 }, { 10982, 0x0040 }, { 10983, 0x0000 }, + /* 0x22C00 */ + { 10983, 0x0000 }, { 10983, 0x2000 }, { 10984, 0x0010 }, { 10985, 0x0000 }, + /* 0x22DC0 */ + { 10985, 0x0000 }, { 10985, 0x0000 }, { 10985, 0x0002 }, { 10986, 0x0000 }, + /* 0x23180 */ + { 10986, 0x0000 }, { 10986, 0x0000 }, { 10986, 0x0000 }, { 10986, 0x0040 }, + /* 0x231C0 */ + { 10987, 0x0018 }, { 10989, 0x0000 }, { 10989, 0x0000 }, { 10989, 0x0020 }, + /* 0x23340 */ + { 10990, 0x0000 }, { 10990, 0x0000 }, { 10990, 0x0000 }, { 10990, 0x0004 }, + /* 0x233C0 */ + { 10991, 0x0000 }, { 10991, 0x842d }, { 10997, 0x0010 }, { 10998, 0x0000 }, + /* 0x23440 */ + { 10998, 0x0c00 }, { 11000, 0x0002 }, { 11001, 0x0020 }, { 11002, 0x0000 }, + /* 0x234C0 */ + { 11002, 0x0000 }, { 11002, 0x0000 }, { 11002, 0x0010 }, { 11003, 0x0000 }, + /* 0x23540 */ + { 11003, 0x0000 }, { 11003, 0x0400 }, { 11004, 0x0000 }, { 11004, 0x0000 }, + /* 0x23580 */ + { 11004, 0x0000 }, { 11004, 0x0010 }, { 11005, 0x0000 }, { 11005, 0x0000 }, + /* 0x235C0 */ + { 11005, 0x0010 }, { 11006, 0x0000 }, { 11006, 0x0000 }, { 11006, 0x0000 }, + /* 0x23600 */ + { 11006, 0x0000 }, { 11006, 0x0000 }, { 11006, 0x0000 }, { 11006, 0x0700 }, + /* 0x23640 */ + { 11009, 0x0080 }, { 11010, 0x0000 }, { 11010, 0x0000 }, { 11010, 0x0000 }, + /* 0x23700 */ + { 11010, 0x1000 }, { 11011, 0x1000 }, { 11012, 0x0000 }, { 11012, 0x8000 }, + /* 0x23740 */ + { 11013, 0x0000 }, { 11013, 0x0000 }, { 11013, 0x0018 }, { 11015, 0x0000 }, + /* 0x237C0 */ + { 11015, 0x0000 }, { 11015, 0x0000 }, { 11015, 0x0080 }, { 11016, 0x8000 }, + /* 0x23800 */ + { 11017, 0x0000 }, { 11017, 0x0000 }, { 11017, 0x0010 }, { 11018, 0x2000 }, + /* 0x23A80 */ + { 11019, 0x0000 }, { 11019, 0x0100 }, { 11020, 0x0000 }, { 11020, 0x0000 }, + /* 0x23C40 */ + { 11020, 0x0000 }, { 11020, 0x0000 }, { 11020, 0x0000 }, { 11020, 0x8000 }, + /* 0x23CC0 */ + { 11021, 0x0000 }, { 11021, 0x0000 }, { 11021, 0x0000 }, { 11021, 0x4000 }, + /* 0x23D00 */ + { 11022, 0x4001 }, { 11024, 0x0000 }, { 11024, 0x0000 }, { 11024, 0x0000 }, + /* 0x23D40 */ + { 11024, 0x0001 }, { 11025, 0x0000 }, { 11025, 0x0000 }, { 11025, 0x0000 }, + /* 0x23DC0 */ + { 11025, 0x0000 }, { 11025, 0x0008 }, { 11026, 0x0000 }, { 11026, 0x0600 }, + /* 0x23F40 */ + { 11028, 0x0000 }, { 11028, 0x0000 }, { 11028, 0x0000 }, { 11028, 0x4000 }, + /* 0x24080 */ + { 11029, 0x0000 }, { 11029, 0x0040 }, { 11030, 0x0000 }, { 11030, 0x0000 }, + /* 0x24100 */ + { 11030, 0x0008 }, { 11031, 0x0000 }, { 11031, 0x0000 }, { 11031, 0x0000 }, + /* 0x241C0 */ + { 11031, 0x0040 }, { 11032, 0x0000 }, { 11032, 0x0000 }, { 11032, 0x4000 }, + /* 0x24380 */ + { 11033, 0x0000 }, { 11033, 0x0000 }, { 11033, 0x0000 }, { 11033, 0x1000 }, + /* 0x24600 */ + { 11034, 0x0000 }, { 11034, 0x0000 }, { 11034, 0x0200 }, { 11035, 0x0000 }, + /* 0x24680 */ + { 11035, 0x0000 }, { 11035, 0x0000 }, { 11035, 0x0020 }, { 11036, 0x0000 }, + /* 0x247C0 */ + { 11036, 0x0000 }, { 11036, 0x0000 }, { 11036, 0x0000 }, { 11036, 0x0002 }, + /* 0x24880 */ + { 11037, 0x0000 }, { 11037, 0x0040 }, { 11038, 0x0000 }, { 11038, 0x0000 }, + /* 0x24A40 */ + { 11038, 0x2000 }, { 11039, 0x0000 }, { 11039, 0x0000 }, { 11039, 0x0000 }, + /* 0x24B40 */ + { 11039, 0x0000 }, { 11039, 0x0040 }, { 11040, 0x8000 }, { 11041, 0x0000 }, + /* 0x24C00 */ + { 11041, 0x0000 }, { 11041, 0x0040 }, { 11042, 0x0000 }, { 11042, 0x0000 }, + /* 0x24D00 */ + { 11042, 0x0000 }, { 11042, 0x0010 }, { 11043, 0x0000 }, { 11043, 0x0000 }, + /* 0x24E00 */ + { 11043, 0x4000 }, { 11044, 0x0000 }, { 11044, 0x0000 }, { 11044, 0x0080 }, + /* 0x24E40 */ + { 11045, 0x0000 }, { 11045, 0x0000 }, { 11045, 0x0400 }, { 11046, 0x0000 }, + /* 0x24E80 */ + { 11046, 0x0800 }, { 11047, 0x0000 }, { 11047, 0x0000 }, { 11047, 0x0000 }, + /* 0x25040 */ + { 11047, 0x0400 }, { 11048, 0x0020 }, { 11049, 0x0000 }, { 11049, 0x0000 }, + /* 0x25100 */ + { 11049, 0x0000 }, { 11049, 0x0000 }, { 11049, 0x0004 }, { 11050, 0x0000 }, + /* 0x25180 */ + { 11050, 0x0000 }, { 11050, 0x0000 }, { 11050, 0x0200 }, { 11051, 0x0000 }, + /* 0x251C0 */ + { 11051, 0x2000 }, { 11052, 0x0000 }, { 11052, 0x0020 }, { 11053, 0x0000 }, + /* 0x25200 */ + { 11053, 0x0000 }, { 11053, 0x4000 }, { 11054, 0x0000 }, { 11054, 0x0000 }, + /* 0x25240 */ + { 11054, 0x1000 }, { 11055, 0x0000 }, { 11055, 0x0000 }, { 11055, 0x0000 }, + /* 0x25400 */ + { 11055, 0x0000 }, { 11055, 0x0000 }, { 11055, 0x4000 }, { 11056, 0x0000 }, + /* 0x25480 */ + { 11056, 0x4000 }, { 11057, 0x0000 }, { 11057, 0x0000 }, { 11057, 0x0000 }, + /* 0x254C0 */ + { 11057, 0x0000 }, { 11057, 0x0200 }, { 11058, 0x0000 }, { 11058, 0x0000 }, + /* 0x25500 */ + { 11058, 0x4000 }, { 11059, 0x0000 }, { 11059, 0x0000 }, { 11059, 0x0000 }, + /* 0x25580 */ + { 11059, 0x0000 }, { 11059, 0x0000 }, { 11059, 0x0080 }, { 11060, 0x0000 }, + /* 0x25740 */ + { 11060, 0x0000 }, { 11060, 0x0000 }, { 11060, 0x0000 }, { 11060, 0x0002 }, + /* 0x25780 */ + { 11061, 0x0000 }, { 11061, 0x0000 }, { 11061, 0x0200 }, { 11062, 0x0010 }, + /* 0x259C0 */ + { 11063, 0x0010 }, { 11064, 0x0010 }, { 11065, 0x0000 }, { 11065, 0x0000 }, + /* 0x25AC0 */ + { 11065, 0x0000 }, { 11065, 0x0000 }, { 11065, 0x0018 }, { 11067, 0x0002 }, + /* 0x25B80 */ + { 11068, 0x0000 }, { 11068, 0x0000 }, { 11068, 0x0000 }, { 11068, 0x0004 }, + /* 0x25C40 */ + { 11069, 0x0800 }, { 11070, 0x0000 }, { 11070, 0x0010 }, { 11071, 0x0000 }, + /* 0x25D80 */ + { 11071, 0x0000 }, { 11071, 0x0000 }, { 11071, 0x0002 }, { 11072, 0x0000 }, + /* 0x25E00 */ + { 11072, 0x0000 }, { 11072, 0x0000 }, { 11072, 0x4000 }, { 11073, 0x0000 }, + /* 0x25E40 */ + { 11073, 0x0000 }, { 11073, 0x0040 }, { 11074, 0x0024 }, { 11076, 0x0000 }, + /* 0x25EC0 */ + { 11076, 0x0004 }, { 11077, 0x0100 }, { 11078, 0x0100 }, { 11079, 0x0000 }, + /* 0x25F00 */ + { 11079, 0x0000 }, { 11079, 0x0000 }, { 11079, 0x0008 }, { 11080, 0x0000 }, + /* 0x25F40 */ + { 11080, 0x0000 }, { 11080, 0x1000 }, { 11081, 0x0000 }, { 11081, 0x0000 }, + /* 0x25FC0 */ + { 11081, 0x0000 }, { 11081, 0x0010 }, { 11082, 0x0001 }, { 11083, 0x0800 }, + /* 0x26000 */ + { 11084, 0x1000 }, { 11085, 0x0080 }, { 11086, 0x0000 }, { 11086, 0x0000 }, + /* 0x26040 */ + { 11086, 0x0000 }, { 11086, 0x0000 }, { 11086, 0x0001 }, { 11087, 0x0000 }, + /* 0x260C0 */ + { 11087, 0x0000 }, { 11087, 0x0000 }, { 11087, 0x2000 }, { 11088, 0x0000 }, + /* 0x26240 */ + { 11088, 0x0000 }, { 11088, 0x0000 }, { 11088, 0x0000 }, { 11088, 0x0001 }, + /* 0x26280 */ + { 11089, 0x0040 }, { 11090, 0x0000 }, { 11090, 0x0000 }, { 11090, 0x0000 }, + /* 0x26340 */ + { 11090, 0x1000 }, { 11091, 0x0000 }, { 11091, 0x0000 }, { 11091, 0x0000 }, + /* 0x26400 */ + { 11091, 0x0004 }, { 11092, 0x0000 }, { 11092, 0x0000 }, { 11092, 0x0000 }, + /* 0x26640 */ + { 11092, 0x0000 }, { 11092, 0x0000 }, { 11092, 0x0000 }, { 11092, 0x4000 }, + /* 0x26680 */ + { 11093, 0x0000 }, { 11093, 0x0000 }, { 11093, 0x0000 }, { 11093, 0x0001 }, + /* 0x26700 */ + { 11094, 0x0000 }, { 11094, 0x2000 }, { 11095, 0x0000 }, { 11095, 0x0000 }, + /* 0x268C0 */ + { 11095, 0x0000 }, { 11095, 0x2000 }, { 11096, 0x0400 }, { 11097, 0x0000 }, + /* 0x26940 */ + { 11097, 0x0000 }, { 11097, 0x0002 }, { 11098, 0x8000 }, { 11099, 0x0000 }, + /* 0x269C0 */ + { 11099, 0x0000 }, { 11099, 0x2000 }, { 11100, 0x0000 }, { 11100, 0x0000 }, + /* 0x26A00 */ + { 11100, 0x0000 }, { 11100, 0x4000 }, { 11101, 0x0000 }, { 11101, 0x0000 }, + /* 0x26A40 */ + { 11101, 0x0000 }, { 11101, 0x0100 }, { 11102, 0x0000 }, { 11102, 0x0000 }, + /* 0x26A80 */ + { 11102, 0x1000 }, { 11103, 0x0000 }, { 11103, 0x0000 }, { 11103, 0x0080 }, + /* 0x26AC0 */ + { 11104, 0x0000 }, { 11104, 0x0000 }, { 11104, 0x0000 }, { 11104, 0x8000 }, + /* 0x26C00 */ + { 11105, 0x0000 }, { 11105, 0x0000 }, { 11105, 0x0200 }, { 11106, 0x0000 }, + /* 0x26C40 */ + { 11106, 0x0000 }, { 11106, 0x0000 }, { 11106, 0x0000 }, { 11106, 0x0008 }, + /* 0x26CC0 */ + { 11107, 0x0000 }, { 11107, 0x2000 }, { 11108, 0x0000 }, { 11108, 0x0000 }, + /* 0x26E40 */ + { 11108, 0x0001 }, { 11109, 0x0000 }, { 11109, 0x0020 }, { 11110, 0x0000 }, + /* 0x26F80 */ + { 11110, 0x0000 }, { 11110, 0x0010 }, { 11111, 0x0000 }, { 11111, 0x0000 }, + /* 0x26FC0 */ + { 11111, 0x0000 }, { 11111, 0x0000 }, { 11111, 0x0000 }, { 11111, 0x01c0 }, + /* 0x270C0 */ + { 11114, 0x0000 }, { 11114, 0x0000 }, { 11114, 0x0000 }, { 11114, 0x0010 }, + /* 0x27100 */ + { 11115, 0x2000 }, { 11116, 0x0000 }, { 11116, 0x0000 }, { 11116, 0x0200 }, + /* 0x273C0 */ + { 11117, 0x0000 }, { 11117, 0x0c00 }, { 11119, 0x0000 }, { 11119, 0x4000 }, + /* 0x27400 */ + { 11120, 0x0000 }, { 11120, 0x0001 }, { 11121, 0x0000 }, { 11121, 0x0000 }, + /* 0x27440 */ + { 11121, 0x0200 }, { 11122, 0x0000 }, { 11122, 0x0000 }, { 11122, 0x0000 }, + /* 0x27600 */ + { 11122, 0x0000 }, { 11122, 0x0030 }, { 11124, 0x0000 }, { 11124, 0x0002 }, + /* 0x27680 */ + { 11125, 0x0010 }, { 11126, 0x0008 }, { 11127, 0x0000 }, { 11127, 0x0000 }, + /* 0x27700 */ + { 11127, 0x4000 }, { 11128, 0x0000 }, { 11128, 0x0008 }, { 11129, 0x0000 }, + /* 0x27740 */ + { 11129, 0x0000 }, { 11129, 0x0004 }, { 11130, 0x0000 }, { 11130, 0x0000 }, + /* 0x27980 */ + { 11130, 0x0020 }, { 11131, 0x0000 }, { 11131, 0x0000 }, { 11131, 0x0000 }, + /* 0x27A80 */ + { 11131, 0x0010 }, { 11132, 0x0000 }, { 11132, 0x0000 }, { 11132, 0x0000 }, + /* 0x27B80 */ + { 11132, 0x0000 }, { 11132, 0x0000 }, { 11132, 0x0000 }, { 11132, 0x4008 }, + /* 0x27BC0 */ + { 11134, 0x0080 }, { 11135, 0x0000 }, { 11135, 0x0000 }, { 11135, 0x0000 }, + /* 0x27C80 */ + { 11135, 0x0000 }, { 11135, 0x0000 }, { 11135, 0x0000 }, { 11135, 0x0100 }, + /* 0x27D80 */ + { 11136, 0x0000 }, { 11136, 0x0000 }, { 11136, 0x0001 }, { 11137, 0x0000 }, + /* 0x27E00 */ + { 11137, 0x0000 }, { 11137, 0x0001 }, { 11138, 0x0000 }, { 11138, 0x0000 }, + /* 0x27F80 */ + { 11138, 0x0000 }, { 11138, 0x0000 }, { 11138, 0x0000 }, { 11138, 0x0080 }, + /* 0x28080 */ + { 11139, 0x0400 }, { 11140, 0x0000 }, { 11140, 0x0000 }, { 11140, 0x0800 }, + /* 0x28240 */ + { 11141, 0x0000 }, { 11141, 0x0000 }, { 11141, 0x0000 }, { 11141, 0x0080 }, + /* 0x28280 */ + { 11142, 0x0004 }, { 11143, 0x0000 }, { 11143, 0x0000 }, { 11143, 0x0000 }, + /* 0x282C0 */ + { 11143, 0x0000 }, { 11143, 0x0000 }, { 11143, 0x0000 }, { 11143, 0x0008 }, + /* 0x283C0 */ + { 11144, 0x2000 }, { 11145, 0x0000 }, { 11145, 0x0000 }, { 11145, 0x0000 }, + /* 0x28400 */ + { 11145, 0x1000 }, { 11146, 0x0000 }, { 11146, 0x0000 }, { 11146, 0x0000 }, + /* 0x28440 */ + { 11146, 0x0000 }, { 11146, 0x0020 }, { 11147, 0x0000 }, { 11147, 0x0000 }, + /* 0x28540 */ + { 11147, 0x0000 }, { 11147, 0x0000 }, { 11147, 0x0800 }, { 11148, 0x0000 }, + /* 0x285C0 */ + { 11148, 0x0300 }, { 11150, 0x0000 }, { 11150, 0x0000 }, { 11150, 0x0000 }, + /* 0x286C0 */ + { 11150, 0x0000 }, { 11150, 0x0080 }, { 11151, 0x0000 }, { 11151, 0x0400 }, + /* 0x28940 */ + { 11152, 0x0240 }, { 11154, 0x0000 }, { 11154, 0x0800 }, { 11155, 0x0000 }, + /* 0x28980 */ + { 11155, 0x0180 }, { 11157, 0x0000 }, { 11157, 0x0000 }, { 11157, 0x0c00 }, + /* 0x28A00 */ + { 11159, 0x0000 }, { 11159, 0x4000 }, { 11160, 0x0200 }, { 11161, 0x0000 }, + /* 0x28A40 */ + { 11161, 0x0008 }, { 11162, 0x0000 }, { 11162, 0x0000 }, { 11162, 0x0002 }, + /* 0x28A80 */ + { 11163, 0x0000 }, { 11163, 0x0200 }, { 11164, 0x0000 }, { 11164, 0x0000 }, + /* 0x28AC0 */ + { 11164, 0x2000 }, { 11165, 0x2000 }, { 11166, 0x0010 }, { 11167, 0x0000 }, + /* 0x28BC0 */ + { 11167, 0x0002 }, { 11168, 0x0000 }, { 11168, 0x8000 }, { 11169, 0x0000 }, + /* 0x28D00 */ + { 11169, 0x0000 }, { 11169, 0x0001 }, { 11170, 0x0000 }, { 11170, 0x0000 }, + /* 0x28D40 */ + { 11170, 0x0000 }, { 11170, 0x0000 }, { 11170, 0x0000 }, { 11170, 0x0002 }, + /* 0x28DC0 */ + { 11171, 0x0000 }, { 11171, 0x0000 }, { 11171, 0x0000 }, { 11171, 0x0800 }, + /* 0x28E00 */ + { 11172, 0x0000 }, { 11172, 0x8000 }, { 11173, 0x0000 }, { 11173, 0x0040 }, + /* 0x28E80 */ + { 11174, 0x0200 }, { 11175, 0x0000 }, { 11175, 0x0000 }, { 11175, 0x0000 }, + /* 0x28EC0 */ + { 11175, 0x0000 }, { 11175, 0x0000 }, { 11175, 0x0800 }, { 11176, 0x0000 }, + /* 0x28F00 */ + { 11176, 0x0000 }, { 11176, 0x0000 }, { 11176, 0x0000 }, { 11176, 0x0004 }, + /* 0x28FC0 */ + { 11177, 0x0000 }, { 11177, 0x0000 }, { 11177, 0x0000 }, { 11177, 0x0100 }, + /* 0x29280 */ + { 11178, 0x0000 }, { 11178, 0x0000 }, { 11178, 0x0001 }, { 11179, 0x0002 }, + /* 0x29480 */ + { 11180, 0x0000 }, { 11180, 0x0001 }, { 11181, 0x0000 }, { 11181, 0x0000 }, + /* 0x295C0 */ + { 11181, 0x8000 }, { 11182, 0x0000 }, { 11182, 0x0000 }, { 11182, 0x0000 }, + /* 0x29640 */ + { 11182, 0x0000 }, { 11182, 0x0000 }, { 11182, 0x0000 }, { 11182, 0x8000 }, + /* 0x296C0 */ + { 11183, 0x0000 }, { 11183, 0x0000 }, { 11183, 0x0000 }, { 11183, 0x0001 }, + /* 0x29700 */ + { 11184, 0x0000 }, { 11184, 0x0200 }, { 11185, 0x0000 }, { 11185, 0x0000 }, + /* 0x29740 */ + { 11185, 0x0000 }, { 11185, 0x0001 }, { 11186, 0x0000 }, { 11186, 0x0000 }, + /* 0x298C0 */ + { 11186, 0x0040 }, { 11187, 0x0000 }, { 11187, 0x0000 }, { 11187, 0x0000 }, + /* 0x29A40 */ + { 11187, 0x0000 }, { 11187, 0x0000 }, { 11187, 0x0000 }, { 11187, 0x0004 }, + /* 0x29DC0 */ + { 11188, 0x0000 }, { 11188, 0x0800 }, { 11189, 0x0000 }, { 11189, 0x0000 }, + /* 0x29E00 */ + { 11189, 0x0000 }, { 11189, 0x0020 }, { 11190, 0x0000 }, { 11190, 0x2000 }, + /* 0x29E40 */ + { 11191, 0x0200 }, { 11192, 0x0000 }, { 11192, 0x0000 }, { 11192, 0x0000 }, + /* 0x29E80 */ + { 11192, 0x0400 }, { 11193, 0x0000 }, { 11193, 0x0000 }, { 11193, 0x0000 }, + /* 0x29EC0 */ + { 11193, 0x0010 }, { 11194, 0x0800 }, { 11195, 0x0200 }, { 11196, 0x0000 }, + /* 0x29FC0 */ + { 11196, 0x4000 }, { 11197, 0x0000 }, { 11197, 0x0000 }, { 11197, 0x0000 }, + /* 0x2A000 */ + { 11197, 0x0000 }, { 11197, 0x0400 }, { 11198, 0x8000 }, { 11199, 0x0000 }, + /* 0x2A080 */ + { 11199, 0x0004 }, { 11200, 0x0000 }, { 11200, 0x0000 }, { 11200, 0x0000 }, + /* 0x2A0C0 */ + { 11200, 0x0000 }, { 11200, 0x0000 }, { 11200, 0x0000 }, { 11200, 0x0200 }, + /* 0x2A180 */ + { 11201, 0x0000 }, { 11201, 0x0001 }, { 11202, 0x0000 }, { 11202, 0x0000 }, + /* 0x2A380 */ + { 11202, 0x1000 }, { 11203, 0x0000 }, { 11203, 0x0000 }, { 11203, 0x0000 }, + /* 0x2A400 */ + { 11203, 0x0000 }, { 11203, 0x0000 }, { 11203, 0x0000 }, { 11203, 0x0080 }, + /* 0x2A5C0 */ + { 11204, 0x0000 }, { 11204, 0x0000 }, { 11204, 0x0000 }, { 11204, 0x0002 }, + /* 0x2A600 */ + { 11205, 0x0004 }, { 11206, 0x0400 }, { 11207, 0x0000 }, { 11207, 0x0000 }, + /* 0x2A680 */ + { 11207, 0x0000 }, { 11207, 0x0000 }, { 11207, 0x0000 }, { 11207, 0x0004 }, +}; + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static ucs4_t jisx0213_to_ucs4 (unsigned int row, unsigned int col) +{ + ucs4_t val; + + if (row >= 0x121 && row <= 0x17e) + row -= 289; + else if (row == 0x221) + row -= 451; + else if (row >= 0x223 && row <= 0x225) + row -= 452; + else if (row == 0x228) + row -= 454; + else if (row >= 0x22c && row <= 0x22f) + row -= 457; + else if (row >= 0x26e && row <= 0x27e) + row -= 519; + else + return 0x0000; + + if (col >= 0x21 && col <= 0x7e) + col -= 0x21; + else + return 0x0000; + + val = jisx0213_to_ucs_main[row * 94 + col]; + val = jisx0213_to_ucs_pagestart[val >> 8] + (val & 0xff); + if (val == 0xfffd) + val = 0x0000; + return val; +} + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static unsigned short ucs4_to_jisx0213 (ucs4_t ucs) +{ + if (ucs < (sizeof(jisx0213_from_ucs_level1)/sizeof(jisx0213_from_ucs_level1[0])) << 6) { + int index1 = jisx0213_from_ucs_level1[ucs >> 6]; + if (index1 >= 0) { + const Summary16 *summary = &jisx0213_from_ucs_level2_2indx[((index1 << 6) + (ucs & 0x3f)) >> 4]; + unsigned short used = summary->used; + unsigned int i = ucs & 0x0f; + if (used & ((unsigned short) 1 << i)) { + /* Keep in `used' only the bits 0..i-1. */ + used &= ((unsigned short) 1 << i) - 1; + /* Add `summary->indx' and the number of bits set in `used'. */ + used = (used & 0x5555) + ((used & 0xaaaa) >> 1); + used = (used & 0x3333) + ((used & 0xcccc) >> 2); + used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); + used = (used & 0x00ff) + (used >> 8); + return jisx0213_from_ucs_level2_data[summary->indx + used]; + }; + }; + } + return 0x0000; +} + +#endif /* _JISX0213_H */ diff --git a/graf2d/win32gdk/gdk/src/iconv/johab.h b/graf2d/win32gdk/gdk/src/iconv/johab.h new file mode 100644 index 00000000000..fb2c17f59e2 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/johab.h @@ -0,0 +1,139 @@ +/* + * Copyright (C) 1999-2001, 2007 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * JOHAB + */ + +/* + Conversion between JOHAB codes (s1,s2) and KSX1001 codes (c1,c2): + Example. (s1,s2) = 0xD931, (c1,c2) = 0x2121. + (s1,s2) = 0xDEF1, (c1,c2) = 0x2C71. + (s1,s2) = 0xE031, (c1,c2) = 0x4A21. + (s1,s2) = 0xF9FE, (c1,c2) = 0x7D7E. + 0xD9 <= s1 <= 0xDE || 0xE0 <= s1 <= 0xF9, + 0x31 <= s2 <= 0x7E || 0x91 <= s2 <= 0xFE, + 0x21 <= c1 <= 0x2C || 0x4A <= c1 <= 0x7D, + 0x21 <= c2 <= 0x7E. + Invariant: + 94*(s1 < 0xE0 ? 2*s1-0x1B2 : 2*s1-0x197) + (s2 < 0x91 ? s2-0x31 : s2-0x43) + = 94*(c1-0x21)+(c2-0x21) + Conversion (s1,s2) -> (c1,c2): + t1 := (s1 < 0xE0 ? 2*s1-0x1B2 : 2*s1-0x197) + t2 := (s2 < 0x91 ? s2-0x31 : s2-0x43) + c1 := t1 + (t2 < 0x5E ? 0 : 1) + 0x21 + c2 := (t2 < 0x5E ? t2 : t2-0x5E) + 0x21 + Conversion (c1,c2) -> (s1,s2): + t := (c1 < 0x4A ? (c1-0x21+0x1B2) : (c1-0x21+0x197)) + s1 := t >> 1 + t2 := (t & 1) * 0x5E + (c2 - 0x21) + s2 := (t2 < 0x4E ? t2+0x31 : t2+0x43) + */ + +static int +johab_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + if (c == 0x5c) + *pwc = (ucs4_t) 0x20a9; + else + *pwc = (ucs4_t) c; + return 1; + } else if (c < 0xd8) { + return johab_hangul_mbtowc(conv,pwc,s,n); + } else { + unsigned char s1, s2; + s1 = c; + if ((s1 >= 0xd9 && s1 <= 0xde) || (s1 >= 0xe0 && s1 <= 0xf9)) { + if (n < 2) + return RET_TOOFEW(0); + s2 = s[1]; + if ((s2 >= 0x31 && s2 <= 0x7e) || (s2 >= 0x91 && s2 <= 0xfe)) { + /* In KSC 5601, now KS X 1001, the region s1 = 0xDA, 0xA1 <= s2 <= 0xD3 + contains the 51 Jamo (Hangul letters). But in the Johab encoding, + they have been moved to the Hangul section, see + johab_hangul_page31. */ + if (!(s1 == 0xda && (s2 >= 0xa1 && s2 <= 0xd3))) { + unsigned char t1 = (s1 < 0xe0 ? 2*(s1-0xd9) : 2*s1-0x197); + unsigned char t2 = (s2 < 0x91 ? s2-0x31 : s2-0x43); + unsigned char buf[2]; + buf[0] = t1 + (t2 < 0x5e ? 0 : 1) + 0x21; + buf[1] = (t2 < 0x5e ? t2 : t2-0x5e) + 0x21; + return ksc5601_mbtowc(conv,pwc,buf,2); + } + } + } + return RET_ILSEQ; + } +} + +static int +johab_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char buf[2]; + int ret; + + /* Try ASCII variation. */ + if (wc < 0x0080 && wc != 0x005c) { + *r = wc; + return 1; + } + if (wc == 0x20a9) { + *r = 0x5c; + return 1; + } + + /* Try JOHAB Hangul table before KSC5601 table, because the KSC5601 table + contains some (2350 out of 11172) Hangul syllables (rows 0x30XX..0x48XX), + and we want the search to return the JOHAB Hangul table entry. */ + + /* Try JOHAB Hangul. */ + ret = johab_hangul_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + if (ret != 2) abort(); + if (n < 2) + return RET_TOOSMALL; + r[0] = buf[0]; + r[1] = buf[1]; + return 2; + } + + /* Try KSC5601, now KS X 1001. */ + ret = ksc5601_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + unsigned char c1, c2; + if (ret != 2) abort(); + if (n < 2) + return RET_TOOSMALL; + c1 = buf[0]; + c2 = buf[1]; + if (((c1 >= 0x21 && c1 <= 0x2c) || (c1 >= 0x4a && c1 <= 0x7d)) + && (c2 >= 0x21 && c2 <= 0x7e)) { + unsigned int t = (c1 < 0x4A ? (c1-0x21+0x1B2) : (c1-0x21+0x197)); + unsigned char t2 = ((t & 1) ? 0x5e : 0) + (c2 - 0x21); + r[0] = t >> 1; + r[1] = (t2 < 0x4e ? t2+0x31 : t2+0x43); + return 2; + } + } + + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/johab_hangul.h b/graf2d/win32gdk/gdk/src/iconv/johab_hangul.h new file mode 100644 index 00000000000..68368dff1e7 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/johab_hangul.h @@ -0,0 +1,262 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * JOHAB Hangul + * + * Ken Lunde writes in his "CJKV Information Processing" book, p. 114: + * "Hangul can be composed of two or three jamo (some jamo are considered + * compound). Johab uses 19 initial jamo (consonants), 21 medial jamo (vowels) + * and 27 final jamo (consonants; 28 when you include the "fill" character + * for Hangul containing only two jamo). Multiplying these numbers results in + * 11172." + * + * Structure of the Johab encoding (see p. 181-184): + * bit 15 = 1 + * bit 14..10 = initial jamo, only 19+1 out of 32 possible values are used + * bit 9..5 = medial jamo, only 21+1 out of 32 possible values are used + * bit 4..0 = final jamo, only 27+1 out of 32 possible values are used + * + * Structure of the Unicode encoding: + * grep '^0x\([8-C]...\|D[0-7]..\)' unicode.org-mappings/EASTASIA/KSC/JOHAB.TXT + * You see that all characters there are marked "HANGUL LETTER" or "HANGUL + * SYLLABLE". If you eliminate the "HANGUL LETTER"s, the table is sorted + * in ascending order according to Johab encoding and according to the Unicode + * encoding. Now look a little more carefully, and you see that the following + * formula holds: + * unicode == 0xAC00 + * + 21 * 28 * (jamo_initial_index[(johab >> 10) & 31] - 1) + * + 28 * (jamo_medial_index[(johab >> 5) & 31] - 1) + * + jamo_final_index[johab & 31] + * where the index tables are defined as below. + */ + +/* Tables mapping 5-bit groups to jamo letters. */ +/* Note that Jamo XX = UHC 0xA4A0+XX = Unicode 0x3130+XX */ +#define NONE 0xfd +#define FILL 0xff +static const unsigned char jamo_initial[32] = { + NONE, FILL, 0x01, 0x02, 0x04, 0x07, 0x08, 0x09, + 0x11, 0x12, 0x13, 0x15, 0x16, 0x17, 0x18, 0x19, + 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, NONE, NONE, NONE, + NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, +}; +static const unsigned char jamo_medial[32] = { + NONE, NONE, FILL, 0x1f, 0x20, 0x21, 0x22, 0x23, + NONE, NONE, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, + NONE, NONE, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + NONE, NONE, 0x30, 0x31, 0x32, 0x33, NONE, NONE, +}; +static const unsigned char jamo_final[32] = { + NONE, FILL, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, + 0x07, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, NONE, 0x12, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, NONE, NONE, +}; +/* Same as jamo_final, except that it excludes characters already + contained in jamo_initial. 11 characters instead of 27. */ +static const unsigned char jamo_final_notinitial[32] = { + NONE, NONE, NONE, NONE, 0x03, NONE, 0x05, 0x06, + NONE, NONE, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, NONE, NONE, NONE, 0x14, NONE, NONE, NONE, + NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, +}; + +/* Tables mapping 5-bit groups to packed indices. */ +#define none -1 +#define fill 0 +static const signed char jamo_initial_index[32] = { + none, fill, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, + 0x0f, 0x10, 0x11, 0x12, 0x13, none, none, none, + none, none, none, none, none, none, none, none, +}; +static const signed char jamo_medial_index[32] = { + none, none, fill, 0x01, 0x02, 0x03, 0x04, 0x05, + none, none, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, + none, none, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, + none, none, 0x12, 0x13, 0x14, 0x15, none, none, +}; +static const signed char jamo_final_index[32] = { + none, fill, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, + 0x0f, 0x10, none, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, none, none, +}; + +static int +johab_hangul_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 >= 0x84 && c1 <= 0xd3)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if ((c2 >= 0x41 && c2 < 0x7f) || (c2 >= 0x81 && c2 < 0xff)) { + unsigned int johab = (c1 << 8) | c2; + unsigned int bitspart1 = (johab >> 10) & 31; + unsigned int bitspart2 = (johab >> 5) & 31; + unsigned int bitspart3 = johab & 31; + int index1 = jamo_initial_index[bitspart1]; + int index2 = jamo_medial_index[bitspart2]; + int index3 = jamo_final_index[bitspart3]; + /* Exclude "none" values. */ + if (index1 >= 0 && index2 >= 0 && index3 >= 0) { + /* Deal with "fill" values in initial or medial position. */ + if (index1 == fill) { + if (index2 == fill) { + unsigned char jamo3 = jamo_final_notinitial[bitspart3]; + if (jamo3 != NONE) { + *pwc = (ucs4_t) 0x3130 + jamo3; + return 2; + } + } else if (index3 == fill) { + unsigned char jamo2 = jamo_medial[bitspart2]; + if (jamo2 != NONE && jamo2 != FILL) { + *pwc = (ucs4_t) 0x3130 + jamo2; + return 2; + } + } + /* Syllables composed only of medial and final don't exist. */ + } else if (index2 == fill) { + if (index3 == fill) { + unsigned char jamo1 = jamo_initial[bitspart1]; + if (jamo1 != NONE && jamo1 != FILL) { + *pwc = (ucs4_t) 0x3130 + jamo1; + return 2; + } + } + /* Syllables composed only of initial and final don't exist. */ + } else { + /* index1 and index2 are not fill, but index3 may be fill. */ + /* Nothing more to exclude. All 11172 code points are valid. */ + *pwc = 0xac00 + ((index1 - 1) * 21 + (index2 - 1)) * 28 + index3; + return 2; + } + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + +/* 51 Jamo: 19 initial, 21 medial, 11 final not initial. */ +static const unsigned short johab_hangul_page31[51] = { + 0x8841, 0x8c41, 0x8444, 0x9041, 0x8446, 0x8447, 0x9441, /*0x30-0x37*/ + 0x9841, 0x9c41, 0x844a, 0x844b, 0x844c, 0x844d, 0x844e, 0x844f, /*0x38-0x3f*/ + 0x8450, 0xa041, 0xa441, 0xa841, 0x8454, 0xac41, 0xb041, 0xb441, /*0x40-0x47*/ + 0xb841, 0xbc41, 0xc041, 0xc441, 0xc841, 0xcc41, 0xd041, 0x8461, /*0x48-0x4f*/ + 0x8481, 0x84a1, 0x84c1, 0x84e1, 0x8541, 0x8561, 0x8581, 0x85a1, /*0x50-0x57*/ + 0x85c1, 0x85e1, 0x8641, 0x8661, 0x8681, 0x86a1, 0x86c1, 0x86e1, /*0x58-0x5f*/ + 0x8741, 0x8761, 0x8781, 0x87a1, /*0x60-0x67*/ +}; + +/* Tables mapping packed indices to 5-bit groups. */ +/* index1+1 = jamo_initial_index[bitspart1] <==> + bitspart1 = jamo_initial_index_inverse[index1] */ +static const char jamo_initial_index_inverse[19] = { + 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, +}; +/* index2+1 = jamo_medial_index[bitspart2] <==> + bitspart2 = jamo_medial_index_inverse[index2] */ +static const char jamo_medial_index_inverse[21] = { + 0x03, 0x04, 0x05, 0x06, 0x07, + 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x1a, 0x1b, 0x1c, 0x1d, +}; +/* index3 = jamo_final_index[bitspart3] <==> + bitspart3 = jamo_final_index_inverse[index3] */ +static const char jamo_final_index_inverse[28] = { + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, +}; + +static int +johab_hangul_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (n >= 2) { + if (wc >= 0x3131 && wc < 0x3164) { + unsigned short c = johab_hangul_page31[wc-0x3131]; + r[0] = (c >> 8); r[1] = (c & 0xff); + return 2; + } else if (wc >= 0xac00 && wc < 0xd7a4) { + unsigned int index1; + unsigned int index2; + unsigned int index3; + unsigned short c; + unsigned int tmp = wc - 0xac00; + index3 = tmp % 28; tmp = tmp / 28; + index2 = tmp % 21; tmp = tmp / 21; + index1 = tmp; + c = (((((1 << 5) + | jamo_initial_index_inverse[index1]) << 5) + | jamo_medial_index_inverse[index2]) << 5) + | jamo_final_index_inverse[index3]; + r[0] = (c >> 8); r[1] = (c & 0xff); + return 2; + } + return RET_ILUNI; + } + return RET_TOOSMALL; +} + +/* + * Decomposition of JOHAB Hangul in one to three Johab Jamo elements. + */ + +/* Decompose wc into r[0..2], and return the number of resulting Jamo elements. + Return RET_ILUNI if decomposition is not possible. */ + +static int johab_hangul_decompose (conv_t conv, ucs4_t* r, ucs4_t wc) +{ + unsigned char buf[2]; + int ret = johab_hangul_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + unsigned int hangul = (buf[0] << 8) | buf[1]; + unsigned char jamo1 = jamo_initial[(hangul >> 10) & 31]; + unsigned char jamo2 = jamo_medial[(hangul >> 5) & 31]; + unsigned char jamo3 = jamo_final[hangul & 31]; + if ((hangul >> 15) != 1) abort(); + if (jamo1 != NONE && jamo2 != NONE && jamo3 != NONE) { + /* They are not all three == FILL because that would correspond to + johab = 0x8441, which doesn't exist. */ + ucs4_t* p = r; + if (jamo1 != FILL) + *p++ = 0x3130 + jamo1; + if (jamo2 != FILL) + *p++ = 0x3130 + jamo2; + if (jamo3 != FILL) + *p++ = 0x3130 + jamo3; + return p-r; + } + } + return RET_ILUNI; +} + +#undef fill +#undef none +#undef FILL +#undef NONE diff --git a/graf2d/win32gdk/gdk/src/iconv/koi8_r.h b/graf2d/win32gdk/gdk/src/iconv/koi8_r.h new file mode 100644 index 00000000000..3e435368f19 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/koi8_r.h @@ -0,0 +1,153 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * KOI8-R + */ + +/* Specification: RFC 1489 */ + +static const unsigned short koi8_r_2uni[128] = { + /* 0x80 */ + 0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524, + 0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590, + /* 0x90 */ + 0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248, + 0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7, + /* 0xa0 */ + 0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556, + 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e, + /* 0xb0 */ + 0x255f, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565, + 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x00a9, + /* 0xc0 */ + 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, + 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, + /* 0xd0 */ + 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, + 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, + /* 0xe0 */ + 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, + 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, + /* 0xf0 */ + 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, + 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a, +}; + +static int +koi8_r_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) koi8_r_2uni[c-0x80]; + return 1; +} + +static const unsigned char koi8_r_page00[88] = { + 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0x9c, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x00, 0x9e, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, /* 0xf0-0xf7 */ +}; +static const unsigned char koi8_r_page04[88] = { + 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa, /* 0x10-0x17 */ + 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, /* 0x18-0x1f */ + 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe, /* 0x20-0x27 */ + 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1, /* 0x28-0x2f */ + 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda, /* 0x30-0x37 */ + 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, /* 0x38-0x3f */ + 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde, /* 0x40-0x47 */ + 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1, /* 0x48-0x4f */ + 0x00, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ +}; +static const unsigned char koi8_r_page22[80] = { + 0x00, 0x95, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x98, 0x99, 0x00, 0x00, /* 0x60-0x67 */ +}; +static const unsigned char koi8_r_page23[8] = { + 0x93, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ +}; +static const unsigned char koi8_r_page25[168] = { + 0x80, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x83, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x85, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xa0, 0xa1, 0xa2, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, /* 0x50-0x57 */ + 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, /* 0x58-0x5f */ + 0xb1, 0xb2, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, /* 0x60-0x67 */ + 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x8b, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x8d, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x8f, 0x90, 0x91, 0x92, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ +}; + +static int +koi8_r_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00f8) + c = koi8_r_page00[wc-0x00a0]; + else if (wc >= 0x0400 && wc < 0x0458) + c = koi8_r_page04[wc-0x0400]; + else if (wc >= 0x2218 && wc < 0x2268) + c = koi8_r_page22[wc-0x2218]; + else if (wc >= 0x2320 && wc < 0x2328) + c = koi8_r_page23[wc-0x2320]; + else if (wc >= 0x2500 && wc < 0x25a8) + c = koi8_r_page25[wc-0x2500]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/koi8_ru.h b/graf2d/win32gdk/gdk/src/iconv/koi8_ru.h new file mode 100644 index 00000000000..e43ae720322 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/koi8_ru.h @@ -0,0 +1,159 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * KOI8-RU + */ + +static const unsigned short koi8_ru_2uni[128] = { + /* 0x80 */ + 0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524, + 0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590, + /* 0x90 */ + 0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248, + 0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7, + /* 0xa0 */ + 0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457, + 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x0491, 0x045e, 0x255e, + /* 0xb0 */ + 0x255f, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407, + 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x0490, 0x040e, 0x00a9, + /* 0xc0 */ + 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, + 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, + /* 0xd0 */ + 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, + 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, + /* 0xe0 */ + 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, + 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, + /* 0xf0 */ + 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, + 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a, +}; + +static int +koi8_ru_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) koi8_ru_2uni[c-0x80]; + return 1; +} + +static const unsigned char koi8_ru_page00[88] = { + 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0x9c, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x00, 0x9e, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, /* 0xf0-0xf7 */ +}; +static const unsigned char koi8_ru_page04[152] = { + 0x00, 0xb3, 0x00, 0x00, 0xb4, 0x00, 0xb6, 0xb7, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x00, /* 0x08-0x0f */ + 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa, /* 0x10-0x17 */ + 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, /* 0x18-0x1f */ + 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe, /* 0x20-0x27 */ + 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1, /* 0x28-0x2f */ + 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda, /* 0x30-0x37 */ + 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, /* 0x38-0x3f */ + 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde, /* 0x40-0x47 */ + 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1, /* 0x48-0x4f */ + 0x00, 0xa3, 0x00, 0x00, 0xa4, 0x00, 0xa6, 0xa7, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0xbd, 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ +}; +static const unsigned char koi8_ru_page22[80] = { + 0x00, 0x95, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x98, 0x99, 0x00, 0x00, /* 0x60-0x67 */ +}; +static const unsigned char koi8_ru_page23[8] = { + 0x93, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ +}; +static const unsigned char koi8_ru_page25[168] = { + 0x80, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x83, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x85, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xa0, 0xa1, 0xa2, 0x00, 0xa5, 0x00, 0x00, 0xa8, /* 0x50-0x57 */ + 0xa9, 0xaa, 0xab, 0xac, 0x00, 0x00, 0xaf, 0xb0, /* 0x58-0x5f */ + 0xb1, 0xb2, 0x00, 0xb5, 0x00, 0x00, 0xb8, 0xb9, /* 0x60-0x67 */ + 0xba, 0xbb, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x8b, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x8d, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x8f, 0x90, 0x91, 0x92, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ +}; + +static int +koi8_ru_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00f8) + c = koi8_ru_page00[wc-0x00a0]; + else if (wc >= 0x0400 && wc < 0x0498) + c = koi8_ru_page04[wc-0x0400]; + else if (wc >= 0x2218 && wc < 0x2268) + c = koi8_ru_page22[wc-0x2218]; + else if (wc >= 0x2320 && wc < 0x2328) + c = koi8_ru_page23[wc-0x2320]; + else if (wc >= 0x2500 && wc < 0x25a8) + c = koi8_ru_page25[wc-0x2500]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/koi8_t.h b/graf2d/win32gdk/gdk/src/iconv/koi8_t.h new file mode 100644 index 00000000000..0f7a5685294 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/koi8_t.h @@ -0,0 +1,143 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * KOI8-T + */ + +static const unsigned short koi8_t_2uni[128] = { + /* 0x80 */ + 0x049b, 0x0493, 0x201a, 0x0492, 0x201e, 0x2026, 0x2020, 0x2021, + 0xfffd, 0x2030, 0x04b3, 0x2039, 0x04b2, 0x04b7, 0x04b6, 0xfffd, + /* 0x90 */ + 0x049a, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, + 0xfffd, 0x2122, 0xfffd, 0x203a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0xa0 */ + 0xfffd, 0x04ef, 0x04ee, 0x0451, 0x00a4, 0x04e3, 0x00a6, 0x00a7, + 0xfffd, 0xfffd, 0xfffd, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0xfffd, + /* 0xb0 */ + 0x00b0, 0x00b1, 0x00b2, 0x0401, 0xfffd, 0x04e2, 0x00b6, 0x00b7, + 0xfffd, 0x2116, 0xfffd, 0x00bb, 0xfffd, 0xfffd, 0xfffd, 0x00a9, + /* 0xc0 */ + 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, + 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, + /* 0xd0 */ + 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, + 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, + /* 0xe0 */ + 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, + 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, + /* 0xf0 */ + 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, + 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a, +}; + +static int +koi8_t_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = koi8_t_2uni[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char koi8_t_page00[32] = { + 0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, 0xa6, 0xa7, /* 0xa0-0xa7 */ + 0x00, 0xbf, 0x00, 0xab, 0xac, 0xad, 0xae, 0x00, /* 0xa8-0xaf */ + 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0xb6, 0xb7, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ +}; +static const unsigned char koi8_t_page04[240] = { + 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa, /* 0x10-0x17 */ + 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, /* 0x18-0x1f */ + 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe, /* 0x20-0x27 */ + 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1, /* 0x28-0x2f */ + 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda, /* 0x30-0x37 */ + 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, /* 0x38-0x3f */ + 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde, /* 0x40-0x47 */ + 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1, /* 0x48-0x4f */ + 0x00, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0x83, 0x81, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0x00, 0x00, 0x8c, 0x8a, 0x00, 0x00, 0x8e, 0x8d, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ + 0x00, 0x00, 0xb5, 0xa5, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa2, 0xa1, /* 0xe8-0xef */ +}; +static const unsigned char koi8_t_page20[48] = { + 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ + 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ +}; +static const unsigned char koi8_t_page21[24] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb9, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ +}; + +static int +koi8_t_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00c0) + c = koi8_t_page00[wc-0x00a0]; + else if (wc >= 0x0400 && wc < 0x04f0) + c = koi8_t_page04[wc-0x0400]; + else if (wc >= 0x2010 && wc < 0x2040) + c = koi8_t_page20[wc-0x2010]; + else if (wc >= 0x2110 && wc < 0x2128) + c = koi8_t_page21[wc-0x2110]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/koi8_u.h b/graf2d/win32gdk/gdk/src/iconv/koi8_u.h new file mode 100644 index 00000000000..0637d5854f4 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/koi8_u.h @@ -0,0 +1,161 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * KOI8-U + */ + +/* Specification: RFC 2319 */ + +static const unsigned short koi8_u_2uni[128] = { + /* 0x80 */ + 0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524, + 0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590, + /* 0x90 */ + 0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248, + 0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7, + /* 0xa0 */ + 0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457, + 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x0491, 0x255d, 0x255e, + /* 0xb0 */ + 0x255f, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407, + 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x0490, 0x256c, 0x00a9, + /* 0xc0 */ + 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, + 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, + /* 0xd0 */ + 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, + 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, + /* 0xe0 */ + 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, + 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, + /* 0xf0 */ + 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, + 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a, +}; + +static int +koi8_u_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) koi8_u_2uni[c-0x80]; + return 1; +} + +static const unsigned char koi8_u_page00[88] = { + 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0x9c, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x00, 0x9e, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, /* 0xf0-0xf7 */ +}; +static const unsigned char koi8_u_page04[152] = { + 0x00, 0xb3, 0x00, 0x00, 0xb4, 0x00, 0xb6, 0xb7, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa, /* 0x10-0x17 */ + 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, /* 0x18-0x1f */ + 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe, /* 0x20-0x27 */ + 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1, /* 0x28-0x2f */ + 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda, /* 0x30-0x37 */ + 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, /* 0x38-0x3f */ + 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde, /* 0x40-0x47 */ + 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1, /* 0x48-0x4f */ + 0x00, 0xa3, 0x00, 0x00, 0xa4, 0x00, 0xa6, 0xa7, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0xbd, 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ +}; +static const unsigned char koi8_u_page22[80] = { + 0x00, 0x95, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x98, 0x99, 0x00, 0x00, /* 0x60-0x67 */ +}; +static const unsigned char koi8_u_page23[8] = { + 0x93, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ +}; +static const unsigned char koi8_u_page25[168] = { + 0x80, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x83, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x85, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0xa0, 0xa1, 0xa2, 0x00, 0xa5, 0x00, 0x00, 0xa8, /* 0x50-0x57 */ + 0xa9, 0xaa, 0xab, 0xac, 0x00, 0xae, 0xaf, 0xb0, /* 0x58-0x5f */ + 0xb1, 0xb2, 0x00, 0xb5, 0x00, 0x00, 0xb8, 0xb9, /* 0x60-0x67 */ + 0xba, 0xbb, 0xbc, 0x00, 0xbe, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x8b, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x8d, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x8f, 0x90, 0x91, 0x92, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ +}; + +static int +koi8_u_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00f8) + c = koi8_u_page00[wc-0x00a0]; + else if (wc >= 0x0400 && wc < 0x0498) + c = koi8_u_page04[wc-0x0400]; + else if (wc >= 0x2218 && wc < 0x2268) + c = koi8_u_page22[wc-0x2218]; + else if (wc >= 0x2320 && wc < 0x2328) + c = koi8_u_page23[wc-0x2320]; + else if (wc >= 0x2500 && wc < 0x25a8) + c = koi8_u_page25[wc-0x2500]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/ksc5601.h b/graf2d/win32gdk/gdk/src/iconv/ksc5601.h new file mode 100644 index 00000000000..fd166232176 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/ksc5601.h @@ -0,0 +1,3022 @@ +/* + * Copyright (C) 1999-2007 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * KSC5601.1987-0, now KS X 1001:2002 + */ + +static const unsigned short ksc5601_2uni_page21[1115] = { + /* 0x21 */ + 0x3000, 0x3001, 0x3002, 0x00b7, 0x2025, 0x2026, 0x00a8, 0x3003, + 0x00ad, 0x2015, 0x2225, 0xff3c, 0x223c, 0x2018, 0x2019, 0x201c, + 0x201d, 0x3014, 0x3015, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c, + 0x300d, 0x300e, 0x300f, 0x3010, 0x3011, 0x00b1, 0x00d7, 0x00f7, + 0x2260, 0x2264, 0x2265, 0x221e, 0x2234, 0x00b0, 0x2032, 0x2033, + 0x2103, 0x212b, 0xffe0, 0xffe1, 0xffe5, 0x2642, 0x2640, 0x2220, + 0x22a5, 0x2312, 0x2202, 0x2207, 0x2261, 0x2252, 0x00a7, 0x203b, + 0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7, 0x25c6, 0x25a1, + 0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, 0x2192, 0x2190, 0x2191, + 0x2193, 0x2194, 0x3013, 0x226a, 0x226b, 0x221a, 0x223d, 0x221d, + 0x2235, 0x222b, 0x222c, 0x2208, 0x220b, 0x2286, 0x2287, 0x2282, + 0x2283, 0x222a, 0x2229, 0x2227, 0x2228, 0xffe2, + /* 0x22 */ + 0x21d2, 0x21d4, 0x2200, 0x2203, 0x00b4, 0xff5e, 0x02c7, 0x02d8, + 0x02dd, 0x02da, 0x02d9, 0x00b8, 0x02db, 0x00a1, 0x00bf, 0x02d0, + 0x222e, 0x2211, 0x220f, 0x00a4, 0x2109, 0x2030, 0x25c1, 0x25c0, + 0x25b7, 0x25b6, 0x2664, 0x2660, 0x2661, 0x2665, 0x2667, 0x2663, + 0x2299, 0x25c8, 0x25a3, 0x25d0, 0x25d1, 0x2592, 0x25a4, 0x25a5, + 0x25a8, 0x25a7, 0x25a6, 0x25a9, 0x2668, 0x260f, 0x260e, 0x261c, + 0x261e, 0x00b6, 0x2020, 0x2021, 0x2195, 0x2197, 0x2199, 0x2196, + 0x2198, 0x266d, 0x2669, 0x266a, 0x266c, 0x327f, 0x321c, 0x2116, + 0x33c7, 0x2122, 0x33c2, 0x33d8, 0x2121, 0x20ac, 0x00ae, 0x327e, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x23 */ + 0xff01, 0xff02, 0xff03, 0xff04, 0xff05, 0xff06, 0xff07, 0xff08, + 0xff09, 0xff0a, 0xff0b, 0xff0c, 0xff0d, 0xff0e, 0xff0f, 0xff10, + 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, + 0xff19, 0xff1a, 0xff1b, 0xff1c, 0xff1d, 0xff1e, 0xff1f, 0xff20, + 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28, + 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30, + 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38, + 0xff39, 0xff3a, 0xff3b, 0xffe6, 0xff3d, 0xff3e, 0xff3f, 0xff40, + 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, + 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50, + 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58, + 0xff59, 0xff5a, 0xff5b, 0xff5c, 0xff5d, 0xffe3, + /* 0x24 */ + 0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3136, 0x3137, 0x3138, + 0x3139, 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, 0x3140, + 0x3141, 0x3142, 0x3143, 0x3144, 0x3145, 0x3146, 0x3147, 0x3148, + 0x3149, 0x314a, 0x314b, 0x314c, 0x314d, 0x314e, 0x314f, 0x3150, + 0x3151, 0x3152, 0x3153, 0x3154, 0x3155, 0x3156, 0x3157, 0x3158, + 0x3159, 0x315a, 0x315b, 0x315c, 0x315d, 0x315e, 0x315f, 0x3160, + 0x3161, 0x3162, 0x3163, 0x3164, 0x3165, 0x3166, 0x3167, 0x3168, + 0x3169, 0x316a, 0x316b, 0x316c, 0x316d, 0x316e, 0x316f, 0x3170, + 0x3171, 0x3172, 0x3173, 0x3174, 0x3175, 0x3176, 0x3177, 0x3178, + 0x3179, 0x317a, 0x317b, 0x317c, 0x317d, 0x317e, 0x317f, 0x3180, + 0x3181, 0x3182, 0x3183, 0x3184, 0x3185, 0x3186, 0x3187, 0x3188, + 0x3189, 0x318a, 0x318b, 0x318c, 0x318d, 0x318e, + /* 0x25 */ + 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, + 0x2178, 0x2179, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2160, + 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, + 0x2169, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, + 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, + 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, + 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, + 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x26 */ + 0x2500, 0x2502, 0x250c, 0x2510, 0x2518, 0x2514, 0x251c, 0x252c, + 0x2524, 0x2534, 0x253c, 0x2501, 0x2503, 0x250f, 0x2513, 0x251b, + 0x2517, 0x2523, 0x2533, 0x252b, 0x253b, 0x254b, 0x2520, 0x252f, + 0x2528, 0x2537, 0x253f, 0x251d, 0x2530, 0x2525, 0x2538, 0x2542, + 0x2512, 0x2511, 0x251a, 0x2519, 0x2516, 0x2515, 0x250e, 0x250d, + 0x251e, 0x251f, 0x2521, 0x2522, 0x2526, 0x2527, 0x2529, 0x252a, + 0x252d, 0x252e, 0x2531, 0x2532, 0x2535, 0x2536, 0x2539, 0x253a, + 0x253d, 0x253e, 0x2540, 0x2541, 0x2543, 0x2544, 0x2545, 0x2546, + 0x2547, 0x2548, 0x2549, 0x254a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x27 */ + 0x3395, 0x3396, 0x3397, 0x2113, 0x3398, 0x33c4, 0x33a3, 0x33a4, + 0x33a5, 0x33a6, 0x3399, 0x339a, 0x339b, 0x339c, 0x339d, 0x339e, + 0x339f, 0x33a0, 0x33a1, 0x33a2, 0x33ca, 0x338d, 0x338e, 0x338f, + 0x33cf, 0x3388, 0x3389, 0x33c8, 0x33a7, 0x33a8, 0x33b0, 0x33b1, + 0x33b2, 0x33b3, 0x33b4, 0x33b5, 0x33b6, 0x33b7, 0x33b8, 0x33b9, + 0x3380, 0x3381, 0x3382, 0x3383, 0x3384, 0x33ba, 0x33bb, 0x33bc, + 0x33bd, 0x33be, 0x33bf, 0x3390, 0x3391, 0x3392, 0x3393, 0x3394, + 0x2126, 0x33c0, 0x33c1, 0x338a, 0x338b, 0x338c, 0x33d6, 0x33c5, + 0x33ad, 0x33ae, 0x33af, 0x33db, 0x33a9, 0x33aa, 0x33ab, 0x33ac, + 0x33dd, 0x33d0, 0x33d3, 0x33c3, 0x33c9, 0x33dc, 0x33c6, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x28 */ + 0x00c6, 0x00d0, 0x00aa, 0x0126, 0xfffd, 0x0132, 0xfffd, 0x013f, + 0x0141, 0x00d8, 0x0152, 0x00ba, 0x00de, 0x0166, 0x014a, 0xfffd, + 0x3260, 0x3261, 0x3262, 0x3263, 0x3264, 0x3265, 0x3266, 0x3267, + 0x3268, 0x3269, 0x326a, 0x326b, 0x326c, 0x326d, 0x326e, 0x326f, + 0x3270, 0x3271, 0x3272, 0x3273, 0x3274, 0x3275, 0x3276, 0x3277, + 0x3278, 0x3279, 0x327a, 0x327b, 0x24d0, 0x24d1, 0x24d2, 0x24d3, + 0x24d4, 0x24d5, 0x24d6, 0x24d7, 0x24d8, 0x24d9, 0x24da, 0x24db, + 0x24dc, 0x24dd, 0x24de, 0x24df, 0x24e0, 0x24e1, 0x24e2, 0x24e3, + 0x24e4, 0x24e5, 0x24e6, 0x24e7, 0x24e8, 0x24e9, 0x2460, 0x2461, + 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, + 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x00bd, 0x2153, 0x2154, + 0x00bc, 0x00be, 0x215b, 0x215c, 0x215d, 0x215e, + /* 0x29 */ + 0x00e6, 0x0111, 0x00f0, 0x0127, 0x0131, 0x0133, 0x0138, 0x0140, + 0x0142, 0x00f8, 0x0153, 0x00df, 0x00fe, 0x0167, 0x014b, 0x0149, + 0x3200, 0x3201, 0x3202, 0x3203, 0x3204, 0x3205, 0x3206, 0x3207, + 0x3208, 0x3209, 0x320a, 0x320b, 0x320c, 0x320d, 0x320e, 0x320f, + 0x3210, 0x3211, 0x3212, 0x3213, 0x3214, 0x3215, 0x3216, 0x3217, + 0x3218, 0x3219, 0x321a, 0x321b, 0x249c, 0x249d, 0x249e, 0x249f, + 0x24a0, 0x24a1, 0x24a2, 0x24a3, 0x24a4, 0x24a5, 0x24a6, 0x24a7, + 0x24a8, 0x24a9, 0x24aa, 0x24ab, 0x24ac, 0x24ad, 0x24ae, 0x24af, + 0x24b0, 0x24b1, 0x24b2, 0x24b3, 0x24b4, 0x24b5, 0x2474, 0x2475, + 0x2476, 0x2477, 0x2478, 0x2479, 0x247a, 0x247b, 0x247c, 0x247d, + 0x247e, 0x247f, 0x2480, 0x2481, 0x2482, 0x00b9, 0x00b2, 0x00b3, + 0x2074, 0x207f, 0x2081, 0x2082, 0x2083, 0x2084, + /* 0x2a */ + 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, + 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, + 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, + 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060, + 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, + 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070, + 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078, + 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080, + 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088, + 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090, + 0x3091, 0x3092, 0x3093, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x2b */ + 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8, + 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0, + 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8, + 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0, + 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8, + 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0, + 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8, + 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0, + 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8, + 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0, + 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0x2c */ + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416, + 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, + 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, + 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, + 0x042f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436, + 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, + 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, + 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, + 0x044f, +}; +static const unsigned short ksc5601_2uni_page30[2350] = { + /* 0x30 */ + 0xac00, 0xac01, 0xac04, 0xac07, 0xac08, 0xac09, 0xac0a, 0xac10, + 0xac11, 0xac12, 0xac13, 0xac14, 0xac15, 0xac16, 0xac17, 0xac19, + 0xac1a, 0xac1b, 0xac1c, 0xac1d, 0xac20, 0xac24, 0xac2c, 0xac2d, + 0xac2f, 0xac30, 0xac31, 0xac38, 0xac39, 0xac3c, 0xac40, 0xac4b, + 0xac4d, 0xac54, 0xac58, 0xac5c, 0xac70, 0xac71, 0xac74, 0xac77, + 0xac78, 0xac7a, 0xac80, 0xac81, 0xac83, 0xac84, 0xac85, 0xac86, + 0xac89, 0xac8a, 0xac8b, 0xac8c, 0xac90, 0xac94, 0xac9c, 0xac9d, + 0xac9f, 0xaca0, 0xaca1, 0xaca8, 0xaca9, 0xacaa, 0xacac, 0xacaf, + 0xacb0, 0xacb8, 0xacb9, 0xacbb, 0xacbc, 0xacbd, 0xacc1, 0xacc4, + 0xacc8, 0xaccc, 0xacd5, 0xacd7, 0xace0, 0xace1, 0xace4, 0xace7, + 0xace8, 0xacea, 0xacec, 0xacef, 0xacf0, 0xacf1, 0xacf3, 0xacf5, + 0xacf6, 0xacfc, 0xacfd, 0xad00, 0xad04, 0xad06, + /* 0x31 */ + 0xad0c, 0xad0d, 0xad0f, 0xad11, 0xad18, 0xad1c, 0xad20, 0xad29, + 0xad2c, 0xad2d, 0xad34, 0xad35, 0xad38, 0xad3c, 0xad44, 0xad45, + 0xad47, 0xad49, 0xad50, 0xad54, 0xad58, 0xad61, 0xad63, 0xad6c, + 0xad6d, 0xad70, 0xad73, 0xad74, 0xad75, 0xad76, 0xad7b, 0xad7c, + 0xad7d, 0xad7f, 0xad81, 0xad82, 0xad88, 0xad89, 0xad8c, 0xad90, + 0xad9c, 0xad9d, 0xada4, 0xadb7, 0xadc0, 0xadc1, 0xadc4, 0xadc8, + 0xadd0, 0xadd1, 0xadd3, 0xaddc, 0xade0, 0xade4, 0xadf8, 0xadf9, + 0xadfc, 0xadff, 0xae00, 0xae01, 0xae08, 0xae09, 0xae0b, 0xae0d, + 0xae14, 0xae30, 0xae31, 0xae34, 0xae37, 0xae38, 0xae3a, 0xae40, + 0xae41, 0xae43, 0xae45, 0xae46, 0xae4a, 0xae4c, 0xae4d, 0xae4e, + 0xae50, 0xae54, 0xae56, 0xae5c, 0xae5d, 0xae5f, 0xae60, 0xae61, + 0xae65, 0xae68, 0xae69, 0xae6c, 0xae70, 0xae78, + /* 0x32 */ + 0xae79, 0xae7b, 0xae7c, 0xae7d, 0xae84, 0xae85, 0xae8c, 0xaebc, + 0xaebd, 0xaebe, 0xaec0, 0xaec4, 0xaecc, 0xaecd, 0xaecf, 0xaed0, + 0xaed1, 0xaed8, 0xaed9, 0xaedc, 0xaee8, 0xaeeb, 0xaeed, 0xaef4, + 0xaef8, 0xaefc, 0xaf07, 0xaf08, 0xaf0d, 0xaf10, 0xaf2c, 0xaf2d, + 0xaf30, 0xaf32, 0xaf34, 0xaf3c, 0xaf3d, 0xaf3f, 0xaf41, 0xaf42, + 0xaf43, 0xaf48, 0xaf49, 0xaf50, 0xaf5c, 0xaf5d, 0xaf64, 0xaf65, + 0xaf79, 0xaf80, 0xaf84, 0xaf88, 0xaf90, 0xaf91, 0xaf95, 0xaf9c, + 0xafb8, 0xafb9, 0xafbc, 0xafc0, 0xafc7, 0xafc8, 0xafc9, 0xafcb, + 0xafcd, 0xafce, 0xafd4, 0xafdc, 0xafe8, 0xafe9, 0xaff0, 0xaff1, + 0xaff4, 0xaff8, 0xb000, 0xb001, 0xb004, 0xb00c, 0xb010, 0xb014, + 0xb01c, 0xb01d, 0xb028, 0xb044, 0xb045, 0xb048, 0xb04a, 0xb04c, + 0xb04e, 0xb053, 0xb054, 0xb055, 0xb057, 0xb059, + /* 0x33 */ + 0xb05d, 0xb07c, 0xb07d, 0xb080, 0xb084, 0xb08c, 0xb08d, 0xb08f, + 0xb091, 0xb098, 0xb099, 0xb09a, 0xb09c, 0xb09f, 0xb0a0, 0xb0a1, + 0xb0a2, 0xb0a8, 0xb0a9, 0xb0ab, 0xb0ac, 0xb0ad, 0xb0ae, 0xb0af, + 0xb0b1, 0xb0b3, 0xb0b4, 0xb0b5, 0xb0b8, 0xb0bc, 0xb0c4, 0xb0c5, + 0xb0c7, 0xb0c8, 0xb0c9, 0xb0d0, 0xb0d1, 0xb0d4, 0xb0d8, 0xb0e0, + 0xb0e5, 0xb108, 0xb109, 0xb10b, 0xb10c, 0xb110, 0xb112, 0xb113, + 0xb118, 0xb119, 0xb11b, 0xb11c, 0xb11d, 0xb123, 0xb124, 0xb125, + 0xb128, 0xb12c, 0xb134, 0xb135, 0xb137, 0xb138, 0xb139, 0xb140, + 0xb141, 0xb144, 0xb148, 0xb150, 0xb151, 0xb154, 0xb155, 0xb158, + 0xb15c, 0xb160, 0xb178, 0xb179, 0xb17c, 0xb180, 0xb182, 0xb188, + 0xb189, 0xb18b, 0xb18d, 0xb192, 0xb193, 0xb194, 0xb198, 0xb19c, + 0xb1a8, 0xb1cc, 0xb1d0, 0xb1d4, 0xb1dc, 0xb1dd, + /* 0x34 */ + 0xb1df, 0xb1e8, 0xb1e9, 0xb1ec, 0xb1f0, 0xb1f9, 0xb1fb, 0xb1fd, + 0xb204, 0xb205, 0xb208, 0xb20b, 0xb20c, 0xb214, 0xb215, 0xb217, + 0xb219, 0xb220, 0xb234, 0xb23c, 0xb258, 0xb25c, 0xb260, 0xb268, + 0xb269, 0xb274, 0xb275, 0xb27c, 0xb284, 0xb285, 0xb289, 0xb290, + 0xb291, 0xb294, 0xb298, 0xb299, 0xb29a, 0xb2a0, 0xb2a1, 0xb2a3, + 0xb2a5, 0xb2a6, 0xb2aa, 0xb2ac, 0xb2b0, 0xb2b4, 0xb2c8, 0xb2c9, + 0xb2cc, 0xb2d0, 0xb2d2, 0xb2d8, 0xb2d9, 0xb2db, 0xb2dd, 0xb2e2, + 0xb2e4, 0xb2e5, 0xb2e6, 0xb2e8, 0xb2eb, 0xb2ec, 0xb2ed, 0xb2ee, + 0xb2ef, 0xb2f3, 0xb2f4, 0xb2f5, 0xb2f7, 0xb2f8, 0xb2f9, 0xb2fa, + 0xb2fb, 0xb2ff, 0xb300, 0xb301, 0xb304, 0xb308, 0xb310, 0xb311, + 0xb313, 0xb314, 0xb315, 0xb31c, 0xb354, 0xb355, 0xb356, 0xb358, + 0xb35b, 0xb35c, 0xb35e, 0xb35f, 0xb364, 0xb365, + /* 0x35 */ + 0xb367, 0xb369, 0xb36b, 0xb36e, 0xb370, 0xb371, 0xb374, 0xb378, + 0xb380, 0xb381, 0xb383, 0xb384, 0xb385, 0xb38c, 0xb390, 0xb394, + 0xb3a0, 0xb3a1, 0xb3a8, 0xb3ac, 0xb3c4, 0xb3c5, 0xb3c8, 0xb3cb, + 0xb3cc, 0xb3ce, 0xb3d0, 0xb3d4, 0xb3d5, 0xb3d7, 0xb3d9, 0xb3db, + 0xb3dd, 0xb3e0, 0xb3e4, 0xb3e8, 0xb3fc, 0xb410, 0xb418, 0xb41c, + 0xb420, 0xb428, 0xb429, 0xb42b, 0xb434, 0xb450, 0xb451, 0xb454, + 0xb458, 0xb460, 0xb461, 0xb463, 0xb465, 0xb46c, 0xb480, 0xb488, + 0xb49d, 0xb4a4, 0xb4a8, 0xb4ac, 0xb4b5, 0xb4b7, 0xb4b9, 0xb4c0, + 0xb4c4, 0xb4c8, 0xb4d0, 0xb4d5, 0xb4dc, 0xb4dd, 0xb4e0, 0xb4e3, + 0xb4e4, 0xb4e6, 0xb4ec, 0xb4ed, 0xb4ef, 0xb4f1, 0xb4f8, 0xb514, + 0xb515, 0xb518, 0xb51b, 0xb51c, 0xb524, 0xb525, 0xb527, 0xb528, + 0xb529, 0xb52a, 0xb530, 0xb531, 0xb534, 0xb538, + /* 0x36 */ + 0xb540, 0xb541, 0xb543, 0xb544, 0xb545, 0xb54b, 0xb54c, 0xb54d, + 0xb550, 0xb554, 0xb55c, 0xb55d, 0xb55f, 0xb560, 0xb561, 0xb5a0, + 0xb5a1, 0xb5a4, 0xb5a8, 0xb5aa, 0xb5ab, 0xb5b0, 0xb5b1, 0xb5b3, + 0xb5b4, 0xb5b5, 0xb5bb, 0xb5bc, 0xb5bd, 0xb5c0, 0xb5c4, 0xb5cc, + 0xb5cd, 0xb5cf, 0xb5d0, 0xb5d1, 0xb5d8, 0xb5ec, 0xb610, 0xb611, + 0xb614, 0xb618, 0xb625, 0xb62c, 0xb634, 0xb648, 0xb664, 0xb668, + 0xb69c, 0xb69d, 0xb6a0, 0xb6a4, 0xb6ab, 0xb6ac, 0xb6b1, 0xb6d4, + 0xb6f0, 0xb6f4, 0xb6f8, 0xb700, 0xb701, 0xb705, 0xb728, 0xb729, + 0xb72c, 0xb72f, 0xb730, 0xb738, 0xb739, 0xb73b, 0xb744, 0xb748, + 0xb74c, 0xb754, 0xb755, 0xb760, 0xb764, 0xb768, 0xb770, 0xb771, + 0xb773, 0xb775, 0xb77c, 0xb77d, 0xb780, 0xb784, 0xb78c, 0xb78d, + 0xb78f, 0xb790, 0xb791, 0xb792, 0xb796, 0xb797, + /* 0x37 */ + 0xb798, 0xb799, 0xb79c, 0xb7a0, 0xb7a8, 0xb7a9, 0xb7ab, 0xb7ac, + 0xb7ad, 0xb7b4, 0xb7b5, 0xb7b8, 0xb7c7, 0xb7c9, 0xb7ec, 0xb7ed, + 0xb7f0, 0xb7f4, 0xb7fc, 0xb7fd, 0xb7ff, 0xb800, 0xb801, 0xb807, + 0xb808, 0xb809, 0xb80c, 0xb810, 0xb818, 0xb819, 0xb81b, 0xb81d, + 0xb824, 0xb825, 0xb828, 0xb82c, 0xb834, 0xb835, 0xb837, 0xb838, + 0xb839, 0xb840, 0xb844, 0xb851, 0xb853, 0xb85c, 0xb85d, 0xb860, + 0xb864, 0xb86c, 0xb86d, 0xb86f, 0xb871, 0xb878, 0xb87c, 0xb88d, + 0xb8a8, 0xb8b0, 0xb8b4, 0xb8b8, 0xb8c0, 0xb8c1, 0xb8c3, 0xb8c5, + 0xb8cc, 0xb8d0, 0xb8d4, 0xb8dd, 0xb8df, 0xb8e1, 0xb8e8, 0xb8e9, + 0xb8ec, 0xb8f0, 0xb8f8, 0xb8f9, 0xb8fb, 0xb8fd, 0xb904, 0xb918, + 0xb920, 0xb93c, 0xb93d, 0xb940, 0xb944, 0xb94c, 0xb94f, 0xb951, + 0xb958, 0xb959, 0xb95c, 0xb960, 0xb968, 0xb969, + /* 0x38 */ + 0xb96b, 0xb96d, 0xb974, 0xb975, 0xb978, 0xb97c, 0xb984, 0xb985, + 0xb987, 0xb989, 0xb98a, 0xb98d, 0xb98e, 0xb9ac, 0xb9ad, 0xb9b0, + 0xb9b4, 0xb9bc, 0xb9bd, 0xb9bf, 0xb9c1, 0xb9c8, 0xb9c9, 0xb9cc, + 0xb9ce, 0xb9cf, 0xb9d0, 0xb9d1, 0xb9d2, 0xb9d8, 0xb9d9, 0xb9db, + 0xb9dd, 0xb9de, 0xb9e1, 0xb9e3, 0xb9e4, 0xb9e5, 0xb9e8, 0xb9ec, + 0xb9f4, 0xb9f5, 0xb9f7, 0xb9f8, 0xb9f9, 0xb9fa, 0xba00, 0xba01, + 0xba08, 0xba15, 0xba38, 0xba39, 0xba3c, 0xba40, 0xba42, 0xba48, + 0xba49, 0xba4b, 0xba4d, 0xba4e, 0xba53, 0xba54, 0xba55, 0xba58, + 0xba5c, 0xba64, 0xba65, 0xba67, 0xba68, 0xba69, 0xba70, 0xba71, + 0xba74, 0xba78, 0xba83, 0xba84, 0xba85, 0xba87, 0xba8c, 0xbaa8, + 0xbaa9, 0xbaab, 0xbaac, 0xbab0, 0xbab2, 0xbab8, 0xbab9, 0xbabb, + 0xbabd, 0xbac4, 0xbac8, 0xbad8, 0xbad9, 0xbafc, + /* 0x39 */ + 0xbb00, 0xbb04, 0xbb0d, 0xbb0f, 0xbb11, 0xbb18, 0xbb1c, 0xbb20, + 0xbb29, 0xbb2b, 0xbb34, 0xbb35, 0xbb36, 0xbb38, 0xbb3b, 0xbb3c, + 0xbb3d, 0xbb3e, 0xbb44, 0xbb45, 0xbb47, 0xbb49, 0xbb4d, 0xbb4f, + 0xbb50, 0xbb54, 0xbb58, 0xbb61, 0xbb63, 0xbb6c, 0xbb88, 0xbb8c, + 0xbb90, 0xbba4, 0xbba8, 0xbbac, 0xbbb4, 0xbbb7, 0xbbc0, 0xbbc4, + 0xbbc8, 0xbbd0, 0xbbd3, 0xbbf8, 0xbbf9, 0xbbfc, 0xbbff, 0xbc00, + 0xbc02, 0xbc08, 0xbc09, 0xbc0b, 0xbc0c, 0xbc0d, 0xbc0f, 0xbc11, + 0xbc14, 0xbc15, 0xbc16, 0xbc17, 0xbc18, 0xbc1b, 0xbc1c, 0xbc1d, + 0xbc1e, 0xbc1f, 0xbc24, 0xbc25, 0xbc27, 0xbc29, 0xbc2d, 0xbc30, + 0xbc31, 0xbc34, 0xbc38, 0xbc40, 0xbc41, 0xbc43, 0xbc44, 0xbc45, + 0xbc49, 0xbc4c, 0xbc4d, 0xbc50, 0xbc5d, 0xbc84, 0xbc85, 0xbc88, + 0xbc8b, 0xbc8c, 0xbc8e, 0xbc94, 0xbc95, 0xbc97, + /* 0x3a */ + 0xbc99, 0xbc9a, 0xbca0, 0xbca1, 0xbca4, 0xbca7, 0xbca8, 0xbcb0, + 0xbcb1, 0xbcb3, 0xbcb4, 0xbcb5, 0xbcbc, 0xbcbd, 0xbcc0, 0xbcc4, + 0xbccd, 0xbccf, 0xbcd0, 0xbcd1, 0xbcd5, 0xbcd8, 0xbcdc, 0xbcf4, + 0xbcf5, 0xbcf6, 0xbcf8, 0xbcfc, 0xbd04, 0xbd05, 0xbd07, 0xbd09, + 0xbd10, 0xbd14, 0xbd24, 0xbd2c, 0xbd40, 0xbd48, 0xbd49, 0xbd4c, + 0xbd50, 0xbd58, 0xbd59, 0xbd64, 0xbd68, 0xbd80, 0xbd81, 0xbd84, + 0xbd87, 0xbd88, 0xbd89, 0xbd8a, 0xbd90, 0xbd91, 0xbd93, 0xbd95, + 0xbd99, 0xbd9a, 0xbd9c, 0xbda4, 0xbdb0, 0xbdb8, 0xbdd4, 0xbdd5, + 0xbdd8, 0xbddc, 0xbde9, 0xbdf0, 0xbdf4, 0xbdf8, 0xbe00, 0xbe03, + 0xbe05, 0xbe0c, 0xbe0d, 0xbe10, 0xbe14, 0xbe1c, 0xbe1d, 0xbe1f, + 0xbe44, 0xbe45, 0xbe48, 0xbe4c, 0xbe4e, 0xbe54, 0xbe55, 0xbe57, + 0xbe59, 0xbe5a, 0xbe5b, 0xbe60, 0xbe61, 0xbe64, + /* 0x3b */ + 0xbe68, 0xbe6a, 0xbe70, 0xbe71, 0xbe73, 0xbe74, 0xbe75, 0xbe7b, + 0xbe7c, 0xbe7d, 0xbe80, 0xbe84, 0xbe8c, 0xbe8d, 0xbe8f, 0xbe90, + 0xbe91, 0xbe98, 0xbe99, 0xbea8, 0xbed0, 0xbed1, 0xbed4, 0xbed7, + 0xbed8, 0xbee0, 0xbee3, 0xbee4, 0xbee5, 0xbeec, 0xbf01, 0xbf08, + 0xbf09, 0xbf18, 0xbf19, 0xbf1b, 0xbf1c, 0xbf1d, 0xbf40, 0xbf41, + 0xbf44, 0xbf48, 0xbf50, 0xbf51, 0xbf55, 0xbf94, 0xbfb0, 0xbfc5, + 0xbfcc, 0xbfcd, 0xbfd0, 0xbfd4, 0xbfdc, 0xbfdf, 0xbfe1, 0xc03c, + 0xc051, 0xc058, 0xc05c, 0xc060, 0xc068, 0xc069, 0xc090, 0xc091, + 0xc094, 0xc098, 0xc0a0, 0xc0a1, 0xc0a3, 0xc0a5, 0xc0ac, 0xc0ad, + 0xc0af, 0xc0b0, 0xc0b3, 0xc0b4, 0xc0b5, 0xc0b6, 0xc0bc, 0xc0bd, + 0xc0bf, 0xc0c0, 0xc0c1, 0xc0c5, 0xc0c8, 0xc0c9, 0xc0cc, 0xc0d0, + 0xc0d8, 0xc0d9, 0xc0db, 0xc0dc, 0xc0dd, 0xc0e4, + /* 0x3c */ + 0xc0e5, 0xc0e8, 0xc0ec, 0xc0f4, 0xc0f5, 0xc0f7, 0xc0f9, 0xc100, + 0xc104, 0xc108, 0xc110, 0xc115, 0xc11c, 0xc11d, 0xc11e, 0xc11f, + 0xc120, 0xc123, 0xc124, 0xc126, 0xc127, 0xc12c, 0xc12d, 0xc12f, + 0xc130, 0xc131, 0xc136, 0xc138, 0xc139, 0xc13c, 0xc140, 0xc148, + 0xc149, 0xc14b, 0xc14c, 0xc14d, 0xc154, 0xc155, 0xc158, 0xc15c, + 0xc164, 0xc165, 0xc167, 0xc168, 0xc169, 0xc170, 0xc174, 0xc178, + 0xc185, 0xc18c, 0xc18d, 0xc18e, 0xc190, 0xc194, 0xc196, 0xc19c, + 0xc19d, 0xc19f, 0xc1a1, 0xc1a5, 0xc1a8, 0xc1a9, 0xc1ac, 0xc1b0, + 0xc1bd, 0xc1c4, 0xc1c8, 0xc1cc, 0xc1d4, 0xc1d7, 0xc1d8, 0xc1e0, + 0xc1e4, 0xc1e8, 0xc1f0, 0xc1f1, 0xc1f3, 0xc1fc, 0xc1fd, 0xc200, + 0xc204, 0xc20c, 0xc20d, 0xc20f, 0xc211, 0xc218, 0xc219, 0xc21c, + 0xc21f, 0xc220, 0xc228, 0xc229, 0xc22b, 0xc22d, + /* 0x3d */ + 0xc22f, 0xc231, 0xc232, 0xc234, 0xc248, 0xc250, 0xc251, 0xc254, + 0xc258, 0xc260, 0xc265, 0xc26c, 0xc26d, 0xc270, 0xc274, 0xc27c, + 0xc27d, 0xc27f, 0xc281, 0xc288, 0xc289, 0xc290, 0xc298, 0xc29b, + 0xc29d, 0xc2a4, 0xc2a5, 0xc2a8, 0xc2ac, 0xc2ad, 0xc2b4, 0xc2b5, + 0xc2b7, 0xc2b9, 0xc2dc, 0xc2dd, 0xc2e0, 0xc2e3, 0xc2e4, 0xc2eb, + 0xc2ec, 0xc2ed, 0xc2ef, 0xc2f1, 0xc2f6, 0xc2f8, 0xc2f9, 0xc2fb, + 0xc2fc, 0xc300, 0xc308, 0xc309, 0xc30c, 0xc30d, 0xc313, 0xc314, + 0xc315, 0xc318, 0xc31c, 0xc324, 0xc325, 0xc328, 0xc329, 0xc345, + 0xc368, 0xc369, 0xc36c, 0xc370, 0xc372, 0xc378, 0xc379, 0xc37c, + 0xc37d, 0xc384, 0xc388, 0xc38c, 0xc3c0, 0xc3d8, 0xc3d9, 0xc3dc, + 0xc3df, 0xc3e0, 0xc3e2, 0xc3e8, 0xc3e9, 0xc3ed, 0xc3f4, 0xc3f5, + 0xc3f8, 0xc408, 0xc410, 0xc424, 0xc42c, 0xc430, + /* 0x3e */ + 0xc434, 0xc43c, 0xc43d, 0xc448, 0xc464, 0xc465, 0xc468, 0xc46c, + 0xc474, 0xc475, 0xc479, 0xc480, 0xc494, 0xc49c, 0xc4b8, 0xc4bc, + 0xc4e9, 0xc4f0, 0xc4f1, 0xc4f4, 0xc4f8, 0xc4fa, 0xc4ff, 0xc500, + 0xc501, 0xc50c, 0xc510, 0xc514, 0xc51c, 0xc528, 0xc529, 0xc52c, + 0xc530, 0xc538, 0xc539, 0xc53b, 0xc53d, 0xc544, 0xc545, 0xc548, + 0xc549, 0xc54a, 0xc54c, 0xc54d, 0xc54e, 0xc553, 0xc554, 0xc555, + 0xc557, 0xc558, 0xc559, 0xc55d, 0xc55e, 0xc560, 0xc561, 0xc564, + 0xc568, 0xc570, 0xc571, 0xc573, 0xc574, 0xc575, 0xc57c, 0xc57d, + 0xc580, 0xc584, 0xc587, 0xc58c, 0xc58d, 0xc58f, 0xc591, 0xc595, + 0xc597, 0xc598, 0xc59c, 0xc5a0, 0xc5a9, 0xc5b4, 0xc5b5, 0xc5b8, + 0xc5b9, 0xc5bb, 0xc5bc, 0xc5bd, 0xc5be, 0xc5c4, 0xc5c5, 0xc5c6, + 0xc5c7, 0xc5c8, 0xc5c9, 0xc5ca, 0xc5cc, 0xc5ce, + /* 0x3f */ + 0xc5d0, 0xc5d1, 0xc5d4, 0xc5d8, 0xc5e0, 0xc5e1, 0xc5e3, 0xc5e5, + 0xc5ec, 0xc5ed, 0xc5ee, 0xc5f0, 0xc5f4, 0xc5f6, 0xc5f7, 0xc5fc, + 0xc5fd, 0xc5fe, 0xc5ff, 0xc600, 0xc601, 0xc605, 0xc606, 0xc607, + 0xc608, 0xc60c, 0xc610, 0xc618, 0xc619, 0xc61b, 0xc61c, 0xc624, + 0xc625, 0xc628, 0xc62c, 0xc62d, 0xc62e, 0xc630, 0xc633, 0xc634, + 0xc635, 0xc637, 0xc639, 0xc63b, 0xc640, 0xc641, 0xc644, 0xc648, + 0xc650, 0xc651, 0xc653, 0xc654, 0xc655, 0xc65c, 0xc65d, 0xc660, + 0xc66c, 0xc66f, 0xc671, 0xc678, 0xc679, 0xc67c, 0xc680, 0xc688, + 0xc689, 0xc68b, 0xc68d, 0xc694, 0xc695, 0xc698, 0xc69c, 0xc6a4, + 0xc6a5, 0xc6a7, 0xc6a9, 0xc6b0, 0xc6b1, 0xc6b4, 0xc6b8, 0xc6b9, + 0xc6ba, 0xc6c0, 0xc6c1, 0xc6c3, 0xc6c5, 0xc6cc, 0xc6cd, 0xc6d0, + 0xc6d4, 0xc6dc, 0xc6dd, 0xc6e0, 0xc6e1, 0xc6e8, + /* 0x40 */ + 0xc6e9, 0xc6ec, 0xc6f0, 0xc6f8, 0xc6f9, 0xc6fd, 0xc704, 0xc705, + 0xc708, 0xc70c, 0xc714, 0xc715, 0xc717, 0xc719, 0xc720, 0xc721, + 0xc724, 0xc728, 0xc730, 0xc731, 0xc733, 0xc735, 0xc737, 0xc73c, + 0xc73d, 0xc740, 0xc744, 0xc74a, 0xc74c, 0xc74d, 0xc74f, 0xc751, + 0xc752, 0xc753, 0xc754, 0xc755, 0xc756, 0xc757, 0xc758, 0xc75c, + 0xc760, 0xc768, 0xc76b, 0xc774, 0xc775, 0xc778, 0xc77c, 0xc77d, + 0xc77e, 0xc783, 0xc784, 0xc785, 0xc787, 0xc788, 0xc789, 0xc78a, + 0xc78e, 0xc790, 0xc791, 0xc794, 0xc796, 0xc797, 0xc798, 0xc79a, + 0xc7a0, 0xc7a1, 0xc7a3, 0xc7a4, 0xc7a5, 0xc7a6, 0xc7ac, 0xc7ad, + 0xc7b0, 0xc7b4, 0xc7bc, 0xc7bd, 0xc7bf, 0xc7c0, 0xc7c1, 0xc7c8, + 0xc7c9, 0xc7cc, 0xc7ce, 0xc7d0, 0xc7d8, 0xc7dd, 0xc7e4, 0xc7e8, + 0xc7ec, 0xc800, 0xc801, 0xc804, 0xc808, 0xc80a, + /* 0x41 */ + 0xc810, 0xc811, 0xc813, 0xc815, 0xc816, 0xc81c, 0xc81d, 0xc820, + 0xc824, 0xc82c, 0xc82d, 0xc82f, 0xc831, 0xc838, 0xc83c, 0xc840, + 0xc848, 0xc849, 0xc84c, 0xc84d, 0xc854, 0xc870, 0xc871, 0xc874, + 0xc878, 0xc87a, 0xc880, 0xc881, 0xc883, 0xc885, 0xc886, 0xc887, + 0xc88b, 0xc88c, 0xc88d, 0xc894, 0xc89d, 0xc89f, 0xc8a1, 0xc8a8, + 0xc8bc, 0xc8bd, 0xc8c4, 0xc8c8, 0xc8cc, 0xc8d4, 0xc8d5, 0xc8d7, + 0xc8d9, 0xc8e0, 0xc8e1, 0xc8e4, 0xc8f5, 0xc8fc, 0xc8fd, 0xc900, + 0xc904, 0xc905, 0xc906, 0xc90c, 0xc90d, 0xc90f, 0xc911, 0xc918, + 0xc92c, 0xc934, 0xc950, 0xc951, 0xc954, 0xc958, 0xc960, 0xc961, + 0xc963, 0xc96c, 0xc970, 0xc974, 0xc97c, 0xc988, 0xc989, 0xc98c, + 0xc990, 0xc998, 0xc999, 0xc99b, 0xc99d, 0xc9c0, 0xc9c1, 0xc9c4, + 0xc9c7, 0xc9c8, 0xc9ca, 0xc9d0, 0xc9d1, 0xc9d3, + /* 0x42 */ + 0xc9d5, 0xc9d6, 0xc9d9, 0xc9da, 0xc9dc, 0xc9dd, 0xc9e0, 0xc9e2, + 0xc9e4, 0xc9e7, 0xc9ec, 0xc9ed, 0xc9ef, 0xc9f0, 0xc9f1, 0xc9f8, + 0xc9f9, 0xc9fc, 0xca00, 0xca08, 0xca09, 0xca0b, 0xca0c, 0xca0d, + 0xca14, 0xca18, 0xca29, 0xca4c, 0xca4d, 0xca50, 0xca54, 0xca5c, + 0xca5d, 0xca5f, 0xca60, 0xca61, 0xca68, 0xca7d, 0xca84, 0xca98, + 0xcabc, 0xcabd, 0xcac0, 0xcac4, 0xcacc, 0xcacd, 0xcacf, 0xcad1, + 0xcad3, 0xcad8, 0xcad9, 0xcae0, 0xcaec, 0xcaf4, 0xcb08, 0xcb10, + 0xcb14, 0xcb18, 0xcb20, 0xcb21, 0xcb41, 0xcb48, 0xcb49, 0xcb4c, + 0xcb50, 0xcb58, 0xcb59, 0xcb5d, 0xcb64, 0xcb78, 0xcb79, 0xcb9c, + 0xcbb8, 0xcbd4, 0xcbe4, 0xcbe7, 0xcbe9, 0xcc0c, 0xcc0d, 0xcc10, + 0xcc14, 0xcc1c, 0xcc1d, 0xcc21, 0xcc22, 0xcc27, 0xcc28, 0xcc29, + 0xcc2c, 0xcc2e, 0xcc30, 0xcc38, 0xcc39, 0xcc3b, + /* 0x43 */ + 0xcc3c, 0xcc3d, 0xcc3e, 0xcc44, 0xcc45, 0xcc48, 0xcc4c, 0xcc54, + 0xcc55, 0xcc57, 0xcc58, 0xcc59, 0xcc60, 0xcc64, 0xcc66, 0xcc68, + 0xcc70, 0xcc75, 0xcc98, 0xcc99, 0xcc9c, 0xcca0, 0xcca8, 0xcca9, + 0xccab, 0xccac, 0xccad, 0xccb4, 0xccb5, 0xccb8, 0xccbc, 0xccc4, + 0xccc5, 0xccc7, 0xccc9, 0xccd0, 0xccd4, 0xcce4, 0xccec, 0xccf0, + 0xcd01, 0xcd08, 0xcd09, 0xcd0c, 0xcd10, 0xcd18, 0xcd19, 0xcd1b, + 0xcd1d, 0xcd24, 0xcd28, 0xcd2c, 0xcd39, 0xcd5c, 0xcd60, 0xcd64, + 0xcd6c, 0xcd6d, 0xcd6f, 0xcd71, 0xcd78, 0xcd88, 0xcd94, 0xcd95, + 0xcd98, 0xcd9c, 0xcda4, 0xcda5, 0xcda7, 0xcda9, 0xcdb0, 0xcdc4, + 0xcdcc, 0xcdd0, 0xcde8, 0xcdec, 0xcdf0, 0xcdf8, 0xcdf9, 0xcdfb, + 0xcdfd, 0xce04, 0xce08, 0xce0c, 0xce14, 0xce19, 0xce20, 0xce21, + 0xce24, 0xce28, 0xce30, 0xce31, 0xce33, 0xce35, + /* 0x44 */ + 0xce58, 0xce59, 0xce5c, 0xce5f, 0xce60, 0xce61, 0xce68, 0xce69, + 0xce6b, 0xce6d, 0xce74, 0xce75, 0xce78, 0xce7c, 0xce84, 0xce85, + 0xce87, 0xce89, 0xce90, 0xce91, 0xce94, 0xce98, 0xcea0, 0xcea1, + 0xcea3, 0xcea4, 0xcea5, 0xceac, 0xcead, 0xcec1, 0xcee4, 0xcee5, + 0xcee8, 0xceeb, 0xceec, 0xcef4, 0xcef5, 0xcef7, 0xcef8, 0xcef9, + 0xcf00, 0xcf01, 0xcf04, 0xcf08, 0xcf10, 0xcf11, 0xcf13, 0xcf15, + 0xcf1c, 0xcf20, 0xcf24, 0xcf2c, 0xcf2d, 0xcf2f, 0xcf30, 0xcf31, + 0xcf38, 0xcf54, 0xcf55, 0xcf58, 0xcf5c, 0xcf64, 0xcf65, 0xcf67, + 0xcf69, 0xcf70, 0xcf71, 0xcf74, 0xcf78, 0xcf80, 0xcf85, 0xcf8c, + 0xcfa1, 0xcfa8, 0xcfb0, 0xcfc4, 0xcfe0, 0xcfe1, 0xcfe4, 0xcfe8, + 0xcff0, 0xcff1, 0xcff3, 0xcff5, 0xcffc, 0xd000, 0xd004, 0xd011, + 0xd018, 0xd02d, 0xd034, 0xd035, 0xd038, 0xd03c, + /* 0x45 */ + 0xd044, 0xd045, 0xd047, 0xd049, 0xd050, 0xd054, 0xd058, 0xd060, + 0xd06c, 0xd06d, 0xd070, 0xd074, 0xd07c, 0xd07d, 0xd081, 0xd0a4, + 0xd0a5, 0xd0a8, 0xd0ac, 0xd0b4, 0xd0b5, 0xd0b7, 0xd0b9, 0xd0c0, + 0xd0c1, 0xd0c4, 0xd0c8, 0xd0c9, 0xd0d0, 0xd0d1, 0xd0d3, 0xd0d4, + 0xd0d5, 0xd0dc, 0xd0dd, 0xd0e0, 0xd0e4, 0xd0ec, 0xd0ed, 0xd0ef, + 0xd0f0, 0xd0f1, 0xd0f8, 0xd10d, 0xd130, 0xd131, 0xd134, 0xd138, + 0xd13a, 0xd140, 0xd141, 0xd143, 0xd144, 0xd145, 0xd14c, 0xd14d, + 0xd150, 0xd154, 0xd15c, 0xd15d, 0xd15f, 0xd161, 0xd168, 0xd16c, + 0xd17c, 0xd184, 0xd188, 0xd1a0, 0xd1a1, 0xd1a4, 0xd1a8, 0xd1b0, + 0xd1b1, 0xd1b3, 0xd1b5, 0xd1ba, 0xd1bc, 0xd1c0, 0xd1d8, 0xd1f4, + 0xd1f8, 0xd207, 0xd209, 0xd210, 0xd22c, 0xd22d, 0xd230, 0xd234, + 0xd23c, 0xd23d, 0xd23f, 0xd241, 0xd248, 0xd25c, + /* 0x46 */ + 0xd264, 0xd280, 0xd281, 0xd284, 0xd288, 0xd290, 0xd291, 0xd295, + 0xd29c, 0xd2a0, 0xd2a4, 0xd2ac, 0xd2b1, 0xd2b8, 0xd2b9, 0xd2bc, + 0xd2bf, 0xd2c0, 0xd2c2, 0xd2c8, 0xd2c9, 0xd2cb, 0xd2d4, 0xd2d8, + 0xd2dc, 0xd2e4, 0xd2e5, 0xd2f0, 0xd2f1, 0xd2f4, 0xd2f8, 0xd300, + 0xd301, 0xd303, 0xd305, 0xd30c, 0xd30d, 0xd30e, 0xd310, 0xd314, + 0xd316, 0xd31c, 0xd31d, 0xd31f, 0xd320, 0xd321, 0xd325, 0xd328, + 0xd329, 0xd32c, 0xd330, 0xd338, 0xd339, 0xd33b, 0xd33c, 0xd33d, + 0xd344, 0xd345, 0xd37c, 0xd37d, 0xd380, 0xd384, 0xd38c, 0xd38d, + 0xd38f, 0xd390, 0xd391, 0xd398, 0xd399, 0xd39c, 0xd3a0, 0xd3a8, + 0xd3a9, 0xd3ab, 0xd3ad, 0xd3b4, 0xd3b8, 0xd3bc, 0xd3c4, 0xd3c5, + 0xd3c8, 0xd3c9, 0xd3d0, 0xd3d8, 0xd3e1, 0xd3e3, 0xd3ec, 0xd3ed, + 0xd3f0, 0xd3f4, 0xd3fc, 0xd3fd, 0xd3ff, 0xd401, + /* 0x47 */ + 0xd408, 0xd41d, 0xd440, 0xd444, 0xd45c, 0xd460, 0xd464, 0xd46d, + 0xd46f, 0xd478, 0xd479, 0xd47c, 0xd47f, 0xd480, 0xd482, 0xd488, + 0xd489, 0xd48b, 0xd48d, 0xd494, 0xd4a9, 0xd4cc, 0xd4d0, 0xd4d4, + 0xd4dc, 0xd4df, 0xd4e8, 0xd4ec, 0xd4f0, 0xd4f8, 0xd4fb, 0xd4fd, + 0xd504, 0xd508, 0xd50c, 0xd514, 0xd515, 0xd517, 0xd53c, 0xd53d, + 0xd540, 0xd544, 0xd54c, 0xd54d, 0xd54f, 0xd551, 0xd558, 0xd559, + 0xd55c, 0xd560, 0xd565, 0xd568, 0xd569, 0xd56b, 0xd56d, 0xd574, + 0xd575, 0xd578, 0xd57c, 0xd584, 0xd585, 0xd587, 0xd588, 0xd589, + 0xd590, 0xd5a5, 0xd5c8, 0xd5c9, 0xd5cc, 0xd5d0, 0xd5d2, 0xd5d8, + 0xd5d9, 0xd5db, 0xd5dd, 0xd5e4, 0xd5e5, 0xd5e8, 0xd5ec, 0xd5f4, + 0xd5f5, 0xd5f7, 0xd5f9, 0xd600, 0xd601, 0xd604, 0xd608, 0xd610, + 0xd611, 0xd613, 0xd614, 0xd615, 0xd61c, 0xd620, + /* 0x48 */ + 0xd624, 0xd62d, 0xd638, 0xd639, 0xd63c, 0xd640, 0xd645, 0xd648, + 0xd649, 0xd64b, 0xd64d, 0xd651, 0xd654, 0xd655, 0xd658, 0xd65c, + 0xd667, 0xd669, 0xd670, 0xd671, 0xd674, 0xd683, 0xd685, 0xd68c, + 0xd68d, 0xd690, 0xd694, 0xd69d, 0xd69f, 0xd6a1, 0xd6a8, 0xd6ac, + 0xd6b0, 0xd6b9, 0xd6bb, 0xd6c4, 0xd6c5, 0xd6c8, 0xd6cc, 0xd6d1, + 0xd6d4, 0xd6d7, 0xd6d9, 0xd6e0, 0xd6e4, 0xd6e8, 0xd6f0, 0xd6f5, + 0xd6fc, 0xd6fd, 0xd700, 0xd704, 0xd711, 0xd718, 0xd719, 0xd71c, + 0xd720, 0xd728, 0xd729, 0xd72b, 0xd72d, 0xd734, 0xd735, 0xd738, + 0xd73c, 0xd744, 0xd747, 0xd749, 0xd750, 0xd751, 0xd754, 0xd756, + 0xd757, 0xd758, 0xd759, 0xd760, 0xd761, 0xd763, 0xd765, 0xd769, + 0xd76c, 0xd770, 0xd774, 0xd77c, 0xd77d, 0xd781, 0xd788, 0xd789, + 0xd78c, 0xd790, 0xd798, 0xd799, 0xd79b, 0xd79d, +}; +static const unsigned short ksc5601_2uni_page4a[4888] = { + /* 0x4a */ + 0x4f3d, 0x4f73, 0x5047, 0x50f9, 0x52a0, 0x53ef, 0x5475, 0x54e5, + 0x5609, 0x5ac1, 0x5bb6, 0x6687, 0x67b6, 0x67b7, 0x67ef, 0x6b4c, + 0x73c2, 0x75c2, 0x7a3c, 0x82db, 0x8304, 0x8857, 0x8888, 0x8a36, + 0x8cc8, 0x8dcf, 0x8efb, 0x8fe6, 0x99d5, 0x523b, 0x5374, 0x5404, + 0x606a, 0x6164, 0x6bbc, 0x73cf, 0x811a, 0x89ba, 0x89d2, 0x95a3, + 0x4f83, 0x520a, 0x58be, 0x5978, 0x59e6, 0x5e72, 0x5e79, 0x61c7, + 0x63c0, 0x6746, 0x67ec, 0x687f, 0x6f97, 0x764e, 0x770b, 0x78f5, + 0x7a08, 0x7aff, 0x7c21, 0x809d, 0x826e, 0x8271, 0x8aeb, 0x9593, + 0x4e6b, 0x559d, 0x66f7, 0x6e34, 0x78a3, 0x7aed, 0x845b, 0x8910, + 0x874e, 0x97a8, 0x52d8, 0x574e, 0x582a, 0x5d4c, 0x611f, 0x61be, + 0x6221, 0x6562, 0x67d1, 0x6a44, 0x6e1b, 0x7518, 0x75b3, 0x76e3, + 0x77b0, 0x7d3a, 0x90af, 0x9451, 0x9452, 0x9f95, + /* 0x4b */ + 0x5323, 0x5cac, 0x7532, 0x80db, 0x9240, 0x9598, 0x525b, 0x5808, + 0x59dc, 0x5ca1, 0x5d17, 0x5eb7, 0x5f3a, 0x5f4a, 0x6177, 0x6c5f, + 0x757a, 0x7586, 0x7ce0, 0x7d73, 0x7db1, 0x7f8c, 0x8154, 0x8221, + 0x8591, 0x8941, 0x8b1b, 0x92fc, 0x964d, 0x9c47, 0x4ecb, 0x4ef7, + 0x500b, 0x51f1, 0x584f, 0x6137, 0x613e, 0x6168, 0x6539, 0x69ea, + 0x6f11, 0x75a5, 0x7686, 0x76d6, 0x7b87, 0x82a5, 0x84cb, 0xf900, + 0x93a7, 0x958b, 0x5580, 0x5ba2, 0x5751, 0xf901, 0x7cb3, 0x7fb9, + 0x91b5, 0x5028, 0x53bb, 0x5c45, 0x5de8, 0x62d2, 0x636e, 0x64da, + 0x64e7, 0x6e20, 0x70ac, 0x795b, 0x8ddd, 0x8e1e, 0xf902, 0x907d, + 0x9245, 0x92f8, 0x4e7e, 0x4ef6, 0x5065, 0x5dfe, 0x5efa, 0x6106, + 0x6957, 0x8171, 0x8654, 0x8e47, 0x9375, 0x9a2b, 0x4e5e, 0x5091, + 0x6770, 0x6840, 0x5109, 0x528d, 0x5292, 0x6aa2, + /* 0x4c */ + 0x77bc, 0x9210, 0x9ed4, 0x52ab, 0x602f, 0x8ff2, 0x5048, 0x61a9, + 0x63ed, 0x64ca, 0x683c, 0x6a84, 0x6fc0, 0x8188, 0x89a1, 0x9694, + 0x5805, 0x727d, 0x72ac, 0x7504, 0x7d79, 0x7e6d, 0x80a9, 0x898b, + 0x8b74, 0x9063, 0x9d51, 0x6289, 0x6c7a, 0x6f54, 0x7d50, 0x7f3a, + 0x8a23, 0x517c, 0x614a, 0x7b9d, 0x8b19, 0x9257, 0x938c, 0x4eac, + 0x4fd3, 0x501e, 0x50be, 0x5106, 0x52c1, 0x52cd, 0x537f, 0x5770, + 0x5883, 0x5e9a, 0x5f91, 0x6176, 0x61ac, 0x64ce, 0x656c, 0x666f, + 0x66bb, 0x66f4, 0x6897, 0x6d87, 0x7085, 0x70f1, 0x749f, 0x74a5, + 0x74ca, 0x75d9, 0x786c, 0x78ec, 0x7adf, 0x7af6, 0x7d45, 0x7d93, + 0x8015, 0x803f, 0x811b, 0x8396, 0x8b66, 0x8f15, 0x9015, 0x93e1, + 0x9803, 0x9838, 0x9a5a, 0x9be8, 0x4fc2, 0x5553, 0x583a, 0x5951, + 0x5b63, 0x5c46, 0x60b8, 0x6212, 0x6842, 0x68b0, + /* 0x4d */ + 0x68e8, 0x6eaa, 0x754c, 0x7678, 0x78ce, 0x7a3d, 0x7cfb, 0x7e6b, + 0x7e7c, 0x8a08, 0x8aa1, 0x8c3f, 0x968e, 0x9dc4, 0x53e4, 0x53e9, + 0x544a, 0x5471, 0x56fa, 0x59d1, 0x5b64, 0x5c3b, 0x5eab, 0x62f7, + 0x6537, 0x6545, 0x6572, 0x66a0, 0x67af, 0x69c1, 0x6cbd, 0x75fc, + 0x7690, 0x777e, 0x7a3f, 0x7f94, 0x8003, 0x80a1, 0x818f, 0x82e6, + 0x82fd, 0x83f0, 0x85c1, 0x8831, 0x88b4, 0x8aa5, 0xf903, 0x8f9c, + 0x932e, 0x96c7, 0x9867, 0x9ad8, 0x9f13, 0x54ed, 0x659b, 0x66f2, + 0x688f, 0x7a40, 0x8c37, 0x9d60, 0x56f0, 0x5764, 0x5d11, 0x6606, + 0x68b1, 0x68cd, 0x6efe, 0x7428, 0x889e, 0x9be4, 0x6c68, 0xf904, + 0x9aa8, 0x4f9b, 0x516c, 0x5171, 0x529f, 0x5b54, 0x5de5, 0x6050, + 0x606d, 0x62f1, 0x63a7, 0x653b, 0x73d9, 0x7a7a, 0x86a3, 0x8ca2, + 0x978f, 0x4e32, 0x5be1, 0x6208, 0x679c, 0x74dc, + /* 0x4e */ + 0x79d1, 0x83d3, 0x8a87, 0x8ab2, 0x8de8, 0x904e, 0x934b, 0x9846, + 0x5ed3, 0x69e8, 0x85ff, 0x90ed, 0xf905, 0x51a0, 0x5b98, 0x5bec, + 0x6163, 0x68fa, 0x6b3e, 0x704c, 0x742f, 0x74d8, 0x7ba1, 0x7f50, + 0x83c5, 0x89c0, 0x8cab, 0x95dc, 0x9928, 0x522e, 0x605d, 0x62ec, + 0x9002, 0x4f8a, 0x5149, 0x5321, 0x58d9, 0x5ee3, 0x66e0, 0x6d38, + 0x709a, 0x72c2, 0x73d6, 0x7b50, 0x80f1, 0x945b, 0x5366, 0x639b, + 0x7f6b, 0x4e56, 0x5080, 0x584a, 0x58de, 0x602a, 0x6127, 0x62d0, + 0x69d0, 0x9b41, 0x5b8f, 0x7d18, 0x80b1, 0x8f5f, 0x4ea4, 0x50d1, + 0x54ac, 0x55ac, 0x5b0c, 0x5da0, 0x5de7, 0x652a, 0x654e, 0x6821, + 0x6a4b, 0x72e1, 0x768e, 0x77ef, 0x7d5e, 0x7ff9, 0x81a0, 0x854e, + 0x86df, 0x8f03, 0x8f4e, 0x90ca, 0x9903, 0x9a55, 0x9bab, 0x4e18, + 0x4e45, 0x4e5d, 0x4ec7, 0x4ff1, 0x5177, 0x52fe, + /* 0x4f */ + 0x5340, 0x53e3, 0x53e5, 0x548e, 0x5614, 0x5775, 0x57a2, 0x5bc7, + 0x5d87, 0x5ed0, 0x61fc, 0x62d8, 0x6551, 0x67b8, 0x67e9, 0x69cb, + 0x6b50, 0x6bc6, 0x6bec, 0x6c42, 0x6e9d, 0x7078, 0x72d7, 0x7396, + 0x7403, 0x77bf, 0x77e9, 0x7a76, 0x7d7f, 0x8009, 0x81fc, 0x8205, + 0x820a, 0x82df, 0x8862, 0x8b33, 0x8cfc, 0x8ec0, 0x9011, 0x90b1, + 0x9264, 0x92b6, 0x99d2, 0x9a45, 0x9ce9, 0x9dd7, 0x9f9c, 0x570b, + 0x5c40, 0x83ca, 0x97a0, 0x97ab, 0x9eb4, 0x541b, 0x7a98, 0x7fa4, + 0x88d9, 0x8ecd, 0x90e1, 0x5800, 0x5c48, 0x6398, 0x7a9f, 0x5bae, + 0x5f13, 0x7a79, 0x7aae, 0x828e, 0x8eac, 0x5026, 0x5238, 0x52f8, + 0x5377, 0x5708, 0x62f3, 0x6372, 0x6b0a, 0x6dc3, 0x7737, 0x53a5, + 0x7357, 0x8568, 0x8e76, 0x95d5, 0x673a, 0x6ac3, 0x6f70, 0x8a6d, + 0x8ecc, 0x994b, 0xf906, 0x6677, 0x6b78, 0x8cb4, + /* 0x50 */ + 0x9b3c, 0xf907, 0x53eb, 0x572d, 0x594e, 0x63c6, 0x69fb, 0x73ea, + 0x7845, 0x7aba, 0x7ac5, 0x7cfe, 0x8475, 0x898f, 0x8d73, 0x9035, + 0x95a8, 0x52fb, 0x5747, 0x7547, 0x7b60, 0x83cc, 0x921e, 0xf908, + 0x6a58, 0x514b, 0x524b, 0x5287, 0x621f, 0x68d8, 0x6975, 0x9699, + 0x50c5, 0x52a4, 0x52e4, 0x61c3, 0x65a4, 0x6839, 0x69ff, 0x747e, + 0x7b4b, 0x82b9, 0x83eb, 0x89b2, 0x8b39, 0x8fd1, 0x9949, 0xf909, + 0x4eca, 0x5997, 0x64d2, 0x6611, 0x6a8e, 0x7434, 0x7981, 0x79bd, + 0x82a9, 0x887e, 0x887f, 0x895f, 0xf90a, 0x9326, 0x4f0b, 0x53ca, + 0x6025, 0x6271, 0x6c72, 0x7d1a, 0x7d66, 0x4e98, 0x5162, 0x77dc, + 0x80af, 0x4f01, 0x4f0e, 0x5176, 0x5180, 0x55dc, 0x5668, 0x573b, + 0x57fa, 0x57fc, 0x5914, 0x5947, 0x5993, 0x5bc4, 0x5c90, 0x5d0e, + 0x5df1, 0x5e7e, 0x5fcc, 0x6280, 0x65d7, 0x65e3, + /* 0x51 */ + 0x671e, 0x671f, 0x675e, 0x68cb, 0x68c4, 0x6a5f, 0x6b3a, 0x6c23, + 0x6c7d, 0x6c82, 0x6dc7, 0x7398, 0x7426, 0x742a, 0x7482, 0x74a3, + 0x7578, 0x757f, 0x7881, 0x78ef, 0x7941, 0x7947, 0x7948, 0x797a, + 0x7b95, 0x7d00, 0x7dba, 0x7f88, 0x8006, 0x802d, 0x808c, 0x8a18, + 0x8b4f, 0x8c48, 0x8d77, 0x9321, 0x9324, 0x98e2, 0x9951, 0x9a0e, + 0x9a0f, 0x9a65, 0x9e92, 0x7dca, 0x4f76, 0x5409, 0x62ee, 0x6854, + 0x91d1, 0x55ab, 0x513a, 0xf90b, 0xf90c, 0x5a1c, 0x61e6, 0xf90d, + 0x62cf, 0x62ff, 0xf90e, 0xf90f, 0xf910, 0xf911, 0xf912, 0xf913, + 0x90a3, 0xf914, 0xf915, 0xf916, 0xf917, 0xf918, 0x8afe, 0xf919, + 0xf91a, 0xf91b, 0xf91c, 0x6696, 0xf91d, 0x7156, 0xf91e, 0xf91f, + 0x96e3, 0xf920, 0x634f, 0x637a, 0x5357, 0xf921, 0x678f, 0x6960, + 0x6e73, 0xf922, 0x7537, 0xf923, 0xf924, 0xf925, + /* 0x52 */ + 0x7d0d, 0xf926, 0xf927, 0x8872, 0x56ca, 0x5a18, 0xf928, 0xf929, + 0xf92a, 0xf92b, 0xf92c, 0x4e43, 0xf92d, 0x5167, 0x5948, 0x67f0, + 0x8010, 0xf92e, 0x5973, 0x5e74, 0x649a, 0x79ca, 0x5ff5, 0x606c, + 0x62c8, 0x637b, 0x5be7, 0x5bd7, 0x52aa, 0xf92f, 0x5974, 0x5f29, + 0x6012, 0xf930, 0xf931, 0xf932, 0x7459, 0xf933, 0xf934, 0xf935, + 0xf936, 0xf937, 0xf938, 0x99d1, 0xf939, 0xf93a, 0xf93b, 0xf93c, + 0xf93d, 0xf93e, 0xf93f, 0xf940, 0xf941, 0xf942, 0xf943, 0x6fc3, + 0xf944, 0xf945, 0x81bf, 0x8fb2, 0x60f1, 0xf946, 0xf947, 0x8166, + 0xf948, 0xf949, 0x5c3f, 0xf94a, 0xf94b, 0xf94c, 0xf94d, 0xf94e, + 0xf94f, 0xf950, 0xf951, 0x5ae9, 0x8a25, 0x677b, 0x7d10, 0xf952, + 0xf953, 0xf954, 0xf955, 0xf956, 0xf957, 0x80fd, 0xf958, 0xf959, + 0x5c3c, 0x6ce5, 0x533f, 0x6eba, 0x591a, 0x8336, + /* 0x53 */ + 0x4e39, 0x4eb6, 0x4f46, 0x55ae, 0x5718, 0x58c7, 0x5f56, 0x65b7, + 0x65e6, 0x6a80, 0x6bb5, 0x6e4d, 0x77ed, 0x7aef, 0x7c1e, 0x7dde, + 0x86cb, 0x8892, 0x9132, 0x935b, 0x64bb, 0x6fbe, 0x737a, 0x75b8, + 0x9054, 0x5556, 0x574d, 0x61ba, 0x64d4, 0x66c7, 0x6de1, 0x6e5b, + 0x6f6d, 0x6fb9, 0x75f0, 0x8043, 0x81bd, 0x8541, 0x8983, 0x8ac7, + 0x8b5a, 0x931f, 0x6c93, 0x7553, 0x7b54, 0x8e0f, 0x905d, 0x5510, + 0x5802, 0x5858, 0x5e62, 0x6207, 0x649e, 0x68e0, 0x7576, 0x7cd6, + 0x87b3, 0x9ee8, 0x4ee3, 0x5788, 0x576e, 0x5927, 0x5c0d, 0x5cb1, + 0x5e36, 0x5f85, 0x6234, 0x64e1, 0x73b3, 0x81fa, 0x888b, 0x8cb8, + 0x968a, 0x9edb, 0x5b85, 0x5fb7, 0x60b3, 0x5012, 0x5200, 0x5230, + 0x5716, 0x5835, 0x5857, 0x5c0e, 0x5c60, 0x5cf6, 0x5d8b, 0x5ea6, + 0x5f92, 0x60bc, 0x6311, 0x6389, 0x6417, 0x6843, + /* 0x54 */ + 0x68f9, 0x6ac2, 0x6dd8, 0x6e21, 0x6ed4, 0x6fe4, 0x71fe, 0x76dc, + 0x7779, 0x79b1, 0x7a3b, 0x8404, 0x89a9, 0x8ced, 0x8df3, 0x8e48, + 0x9003, 0x9014, 0x9053, 0x90fd, 0x934d, 0x9676, 0x97dc, 0x6bd2, + 0x7006, 0x7258, 0x72a2, 0x7368, 0x7763, 0x79bf, 0x7be4, 0x7e9b, + 0x8b80, 0x58a9, 0x60c7, 0x6566, 0x65fd, 0x66be, 0x6c8c, 0x711e, + 0x71c9, 0x8c5a, 0x9813, 0x4e6d, 0x7a81, 0x4edd, 0x51ac, 0x51cd, + 0x52d5, 0x540c, 0x61a7, 0x6771, 0x6850, 0x68df, 0x6d1e, 0x6f7c, + 0x75bc, 0x77b3, 0x7ae5, 0x80f4, 0x8463, 0x9285, 0x515c, 0x6597, + 0x675c, 0x6793, 0x75d8, 0x7ac7, 0x8373, 0xf95a, 0x8c46, 0x9017, + 0x982d, 0x5c6f, 0x81c0, 0x829a, 0x9041, 0x906f, 0x920d, 0x5f97, + 0x5d9d, 0x6a59, 0x71c8, 0x767b, 0x7b49, 0x85e4, 0x8b04, 0x9127, + 0x9a30, 0x5587, 0x61f6, 0xf95b, 0x7669, 0x7f85, + /* 0x55 */ + 0x863f, 0x87ba, 0x88f8, 0x908f, 0xf95c, 0x6d1b, 0x70d9, 0x73de, + 0x7d61, 0x843d, 0xf95d, 0x916a, 0x99f1, 0xf95e, 0x4e82, 0x5375, + 0x6b04, 0x6b12, 0x703e, 0x721b, 0x862d, 0x9e1e, 0x524c, 0x8fa3, + 0x5d50, 0x64e5, 0x652c, 0x6b16, 0x6feb, 0x7c43, 0x7e9c, 0x85cd, + 0x8964, 0x89bd, 0x62c9, 0x81d8, 0x881f, 0x5eca, 0x6717, 0x6d6a, + 0x72fc, 0x7405, 0x746f, 0x8782, 0x90de, 0x4f86, 0x5d0d, 0x5fa0, + 0x840a, 0x51b7, 0x63a0, 0x7565, 0x4eae, 0x5006, 0x5169, 0x51c9, + 0x6881, 0x6a11, 0x7cae, 0x7cb1, 0x7ce7, 0x826f, 0x8ad2, 0x8f1b, + 0x91cf, 0x4fb6, 0x5137, 0x52f5, 0x5442, 0x5eec, 0x616e, 0x623e, + 0x65c5, 0x6ada, 0x6ffe, 0x792a, 0x85dc, 0x8823, 0x95ad, 0x9a62, + 0x9a6a, 0x9e97, 0x9ece, 0x529b, 0x66c6, 0x6b77, 0x701d, 0x792b, + 0x8f62, 0x9742, 0x6190, 0x6200, 0x6523, 0x6f23, + /* 0x56 */ + 0x7149, 0x7489, 0x7df4, 0x806f, 0x84ee, 0x8f26, 0x9023, 0x934a, + 0x51bd, 0x5217, 0x52a3, 0x6d0c, 0x70c8, 0x88c2, 0x5ec9, 0x6582, + 0x6bae, 0x6fc2, 0x7c3e, 0x7375, 0x4ee4, 0x4f36, 0x56f9, 0xf95f, + 0x5cba, 0x5dba, 0x601c, 0x73b2, 0x7b2d, 0x7f9a, 0x7fce, 0x8046, + 0x901e, 0x9234, 0x96f6, 0x9748, 0x9818, 0x9f61, 0x4f8b, 0x6fa7, + 0x79ae, 0x91b4, 0x96b7, 0x52de, 0xf960, 0x6488, 0x64c4, 0x6ad3, + 0x6f5e, 0x7018, 0x7210, 0x76e7, 0x8001, 0x8606, 0x865c, 0x8def, + 0x8f05, 0x9732, 0x9b6f, 0x9dfa, 0x9e75, 0x788c, 0x797f, 0x7da0, + 0x83c9, 0x9304, 0x9e7f, 0x9e93, 0x8ad6, 0x58df, 0x5f04, 0x6727, + 0x7027, 0x74cf, 0x7c60, 0x807e, 0x5121, 0x7028, 0x7262, 0x78ca, + 0x8cc2, 0x8cda, 0x8cf4, 0x96f7, 0x4e86, 0x50da, 0x5bee, 0x5ed6, + 0x6599, 0x71ce, 0x7642, 0x77ad, 0x804a, 0x84fc, + /* 0x57 */ + 0x907c, 0x9b27, 0x9f8d, 0x58d8, 0x5a41, 0x5c62, 0x6a13, 0x6dda, + 0x6f0f, 0x763b, 0x7d2f, 0x7e37, 0x851e, 0x8938, 0x93e4, 0x964b, + 0x5289, 0x65d2, 0x67f3, 0x69b4, 0x6d41, 0x6e9c, 0x700f, 0x7409, + 0x7460, 0x7559, 0x7624, 0x786b, 0x8b2c, 0x985e, 0x516d, 0x622e, + 0x9678, 0x4f96, 0x502b, 0x5d19, 0x6dea, 0x7db8, 0x8f2a, 0x5f8b, + 0x6144, 0x6817, 0xf961, 0x9686, 0x52d2, 0x808b, 0x51dc, 0x51cc, + 0x695e, 0x7a1c, 0x7dbe, 0x83f1, 0x9675, 0x4fda, 0x5229, 0x5398, + 0x540f, 0x550e, 0x5c65, 0x60a7, 0x674e, 0x68a8, 0x6d6c, 0x7281, + 0x72f8, 0x7406, 0x7483, 0xf962, 0x75e2, 0x7c6c, 0x7f79, 0x7fb8, + 0x8389, 0x88cf, 0x88e1, 0x91cc, 0x91d0, 0x96e2, 0x9bc9, 0x541d, + 0x6f7e, 0x71d0, 0x7498, 0x85fa, 0x8eaa, 0x96a3, 0x9c57, 0x9e9f, + 0x6797, 0x6dcb, 0x7433, 0x81e8, 0x9716, 0x782c, + /* 0x58 */ + 0x7acb, 0x7b20, 0x7c92, 0x6469, 0x746a, 0x75f2, 0x78bc, 0x78e8, + 0x99ac, 0x9b54, 0x9ebb, 0x5bde, 0x5e55, 0x6f20, 0x819c, 0x83ab, + 0x9088, 0x4e07, 0x534d, 0x5a29, 0x5dd2, 0x5f4e, 0x6162, 0x633d, + 0x6669, 0x66fc, 0x6eff, 0x6f2b, 0x7063, 0x779e, 0x842c, 0x8513, + 0x883b, 0x8f13, 0x9945, 0x9c3b, 0x551c, 0x62b9, 0x672b, 0x6cab, + 0x8309, 0x896a, 0x977a, 0x4ea1, 0x5984, 0x5fd8, 0x5fd9, 0x671b, + 0x7db2, 0x7f54, 0x8292, 0x832b, 0x83bd, 0x8f1e, 0x9099, 0x57cb, + 0x59b9, 0x5a92, 0x5bd0, 0x6627, 0x679a, 0x6885, 0x6bcf, 0x7164, + 0x7f75, 0x8cb7, 0x8ce3, 0x9081, 0x9b45, 0x8108, 0x8c8a, 0x964c, + 0x9a40, 0x9ea5, 0x5b5f, 0x6c13, 0x731b, 0x76f2, 0x76df, 0x840c, + 0x51aa, 0x8993, 0x514d, 0x5195, 0x52c9, 0x68c9, 0x6c94, 0x7704, + 0x7720, 0x7dbf, 0x7dec, 0x9762, 0x9eb5, 0x6ec5, + /* 0x59 */ + 0x8511, 0x51a5, 0x540d, 0x547d, 0x660e, 0x669d, 0x6927, 0x6e9f, + 0x76bf, 0x7791, 0x8317, 0x84c2, 0x879f, 0x9169, 0x9298, 0x9cf4, + 0x8882, 0x4fae, 0x5192, 0x52df, 0x59c6, 0x5e3d, 0x6155, 0x6478, + 0x6479, 0x66ae, 0x67d0, 0x6a21, 0x6bcd, 0x6bdb, 0x725f, 0x7261, + 0x7441, 0x7738, 0x77db, 0x8017, 0x82bc, 0x8305, 0x8b00, 0x8b28, + 0x8c8c, 0x6728, 0x6c90, 0x7267, 0x76ee, 0x7766, 0x7a46, 0x9da9, + 0x6b7f, 0x6c92, 0x5922, 0x6726, 0x8499, 0x536f, 0x5893, 0x5999, + 0x5edf, 0x63cf, 0x6634, 0x6773, 0x6e3a, 0x732b, 0x7ad7, 0x82d7, + 0x9328, 0x52d9, 0x5deb, 0x61ae, 0x61cb, 0x620a, 0x62c7, 0x64ab, + 0x65e0, 0x6959, 0x6b66, 0x6bcb, 0x7121, 0x73f7, 0x755d, 0x7e46, + 0x821e, 0x8302, 0x856a, 0x8aa3, 0x8cbf, 0x9727, 0x9d61, 0x58a8, + 0x9ed8, 0x5011, 0x520e, 0x543b, 0x554f, 0x6587, + /* 0x5a */ + 0x6c76, 0x7d0a, 0x7d0b, 0x805e, 0x868a, 0x9580, 0x96ef, 0x52ff, + 0x6c95, 0x7269, 0x5473, 0x5a9a, 0x5c3e, 0x5d4b, 0x5f4c, 0x5fae, + 0x672a, 0x68b6, 0x6963, 0x6e3c, 0x6e44, 0x7709, 0x7c73, 0x7f8e, + 0x8587, 0x8b0e, 0x8ff7, 0x9761, 0x9ef4, 0x5cb7, 0x60b6, 0x610d, + 0x61ab, 0x654f, 0x65fb, 0x65fc, 0x6c11, 0x6cef, 0x739f, 0x73c9, + 0x7de1, 0x9594, 0x5bc6, 0x871c, 0x8b10, 0x525d, 0x535a, 0x62cd, + 0x640f, 0x64b2, 0x6734, 0x6a38, 0x6cca, 0x73c0, 0x749e, 0x7b94, + 0x7c95, 0x7e1b, 0x818a, 0x8236, 0x8584, 0x8feb, 0x96f9, 0x99c1, + 0x4f34, 0x534a, 0x53cd, 0x53db, 0x62cc, 0x642c, 0x6500, 0x6591, + 0x69c3, 0x6cee, 0x6f58, 0x73ed, 0x7554, 0x7622, 0x76e4, 0x76fc, + 0x78d0, 0x78fb, 0x792c, 0x7d46, 0x822c, 0x87e0, 0x8fd4, 0x9812, + 0x98ef, 0x52c3, 0x62d4, 0x64a5, 0x6e24, 0x6f51, + /* 0x5b */ + 0x767c, 0x8dcb, 0x91b1, 0x9262, 0x9aee, 0x9b43, 0x5023, 0x508d, + 0x574a, 0x59a8, 0x5c28, 0x5e47, 0x5f77, 0x623f, 0x653e, 0x65b9, + 0x65c1, 0x6609, 0x678b, 0x699c, 0x6ec2, 0x78c5, 0x7d21, 0x80aa, + 0x8180, 0x822b, 0x82b3, 0x84a1, 0x868c, 0x8a2a, 0x8b17, 0x90a6, + 0x9632, 0x9f90, 0x500d, 0x4ff3, 0xf963, 0x57f9, 0x5f98, 0x62dc, + 0x6392, 0x676f, 0x6e43, 0x7119, 0x76c3, 0x80cc, 0x80da, 0x88f4, + 0x88f5, 0x8919, 0x8ce0, 0x8f29, 0x914d, 0x966a, 0x4f2f, 0x4f70, + 0x5e1b, 0x67cf, 0x6822, 0x767d, 0x767e, 0x9b44, 0x5e61, 0x6a0a, + 0x7169, 0x71d4, 0x756a, 0xf964, 0x7e41, 0x8543, 0x85e9, 0x98dc, + 0x4f10, 0x7b4f, 0x7f70, 0x95a5, 0x51e1, 0x5e06, 0x68b5, 0x6c3e, + 0x6c4e, 0x6cdb, 0x72af, 0x7bc4, 0x8303, 0x6cd5, 0x743a, 0x50fb, + 0x5288, 0x58c1, 0x64d8, 0x6a97, 0x74a7, 0x7656, + /* 0x5c */ + 0x78a7, 0x8617, 0x95e2, 0x9739, 0xf965, 0x535e, 0x5f01, 0x8b8a, + 0x8fa8, 0x8faf, 0x908a, 0x5225, 0x77a5, 0x9c49, 0x9f08, 0x4e19, + 0x5002, 0x5175, 0x5c5b, 0x5e77, 0x661e, 0x663a, 0x67c4, 0x68c5, + 0x70b3, 0x7501, 0x75c5, 0x79c9, 0x7add, 0x8f27, 0x9920, 0x9a08, + 0x4fdd, 0x5821, 0x5831, 0x5bf6, 0x666e, 0x6b65, 0x6d11, 0x6e7a, + 0x6f7d, 0x73e4, 0x752b, 0x83e9, 0x88dc, 0x8913, 0x8b5c, 0x8f14, + 0x4f0f, 0x50d5, 0x5310, 0x535c, 0x5b93, 0x5fa9, 0x670d, 0x798f, + 0x8179, 0x832f, 0x8514, 0x8907, 0x8986, 0x8f39, 0x8f3b, 0x99a5, + 0x9c12, 0x672c, 0x4e76, 0x4ff8, 0x5949, 0x5c01, 0x5cef, 0x5cf0, + 0x6367, 0x68d2, 0x70fd, 0x71a2, 0x742b, 0x7e2b, 0x84ec, 0x8702, + 0x9022, 0x92d2, 0x9cf3, 0x4e0d, 0x4ed8, 0x4fef, 0x5085, 0x5256, + 0x526f, 0x5426, 0x5490, 0x57e0, 0x592b, 0x5a66, + /* 0x5d */ + 0x5b5a, 0x5b75, 0x5bcc, 0x5e9c, 0xf966, 0x6276, 0x6577, 0x65a7, + 0x6d6e, 0x6ea5, 0x7236, 0x7b26, 0x7c3f, 0x7f36, 0x8150, 0x8151, + 0x819a, 0x8240, 0x8299, 0x83a9, 0x8a03, 0x8ca0, 0x8ce6, 0x8cfb, + 0x8d74, 0x8dba, 0x90e8, 0x91dc, 0x961c, 0x9644, 0x99d9, 0x9ce7, + 0x5317, 0x5206, 0x5429, 0x5674, 0x58b3, 0x5954, 0x596e, 0x5fff, + 0x61a4, 0x626e, 0x6610, 0x6c7e, 0x711a, 0x76c6, 0x7c89, 0x7cde, + 0x7d1b, 0x82ac, 0x8cc1, 0x96f0, 0xf967, 0x4f5b, 0x5f17, 0x5f7f, + 0x62c2, 0x5d29, 0x670b, 0x68da, 0x787c, 0x7e43, 0x9d6c, 0x4e15, + 0x5099, 0x5315, 0x532a, 0x5351, 0x5983, 0x5a62, 0x5e87, 0x60b2, + 0x618a, 0x6249, 0x6279, 0x6590, 0x6787, 0x69a7, 0x6bd4, 0x6bd6, + 0x6bd7, 0x6bd8, 0x6cb8, 0xf968, 0x7435, 0x75fa, 0x7812, 0x7891, + 0x79d5, 0x79d8, 0x7c83, 0x7dcb, 0x7fe1, 0x80a5, + /* 0x5e */ + 0x813e, 0x81c2, 0x83f2, 0x871a, 0x88e8, 0x8ab9, 0x8b6c, 0x8cbb, + 0x9119, 0x975e, 0x98db, 0x9f3b, 0x56ac, 0x5b2a, 0x5f6c, 0x658c, + 0x6ab3, 0x6baf, 0x6d5c, 0x6ff1, 0x7015, 0x725d, 0x73ad, 0x8ca7, + 0x8cd3, 0x983b, 0x6191, 0x6c37, 0x8058, 0x9a01, 0x4e4d, 0x4e8b, + 0x4e9b, 0x4ed5, 0x4f3a, 0x4f3c, 0x4f7f, 0x4fdf, 0x50ff, 0x53f2, + 0x53f8, 0x5506, 0x55e3, 0x56db, 0x58eb, 0x5962, 0x5a11, 0x5beb, + 0x5bfa, 0x5c04, 0x5df3, 0x5e2b, 0x5f99, 0x601d, 0x6368, 0x659c, + 0x65af, 0x67f6, 0x67fb, 0x68ad, 0x6b7b, 0x6c99, 0x6cd7, 0x6e23, + 0x7009, 0x7345, 0x7802, 0x793e, 0x7940, 0x7960, 0x79c1, 0x7be9, + 0x7d17, 0x7d72, 0x8086, 0x820d, 0x838e, 0x84d1, 0x86c7, 0x88df, + 0x8a50, 0x8a5e, 0x8b1d, 0x8cdc, 0x8d66, 0x8fad, 0x90aa, 0x98fc, + 0x99df, 0x9e9d, 0x524a, 0xf969, 0x6714, 0xf96a, + /* 0x5f */ + 0x5098, 0x522a, 0x5c71, 0x6563, 0x6c55, 0x73ca, 0x7523, 0x759d, + 0x7b97, 0x849c, 0x9178, 0x9730, 0x4e77, 0x6492, 0x6bba, 0x715e, + 0x85a9, 0x4e09, 0xf96b, 0x6749, 0x68ee, 0x6e17, 0x829f, 0x8518, + 0x886b, 0x63f7, 0x6f81, 0x9212, 0x98af, 0x4e0a, 0x50b7, 0x50cf, + 0x511f, 0x5546, 0x55aa, 0x5617, 0x5b40, 0x5c19, 0x5ce0, 0x5e38, + 0x5e8a, 0x5ea0, 0x5ec2, 0x60f3, 0x6851, 0x6a61, 0x6e58, 0x723d, + 0x7240, 0x72c0, 0x76f8, 0x7965, 0x7bb1, 0x7fd4, 0x88f3, 0x89f4, + 0x8a73, 0x8c61, 0x8cde, 0x971c, 0x585e, 0x74bd, 0x8cfd, 0x55c7, + 0xf96c, 0x7a61, 0x7d22, 0x8272, 0x7272, 0x751f, 0x7525, 0xf96d, + 0x7b19, 0x5885, 0x58fb, 0x5dbc, 0x5e8f, 0x5eb6, 0x5f90, 0x6055, + 0x6292, 0x637f, 0x654d, 0x6691, 0x66d9, 0x66f8, 0x6816, 0x68f2, + 0x7280, 0x745e, 0x7b6e, 0x7d6e, 0x7dd6, 0x7f72, + /* 0x60 */ + 0x80e5, 0x8212, 0x85af, 0x897f, 0x8a93, 0x901d, 0x92e4, 0x9ecd, + 0x9f20, 0x5915, 0x596d, 0x5e2d, 0x60dc, 0x6614, 0x6673, 0x6790, + 0x6c50, 0x6dc5, 0x6f5f, 0x77f3, 0x78a9, 0x84c6, 0x91cb, 0x932b, + 0x4ed9, 0x50ca, 0x5148, 0x5584, 0x5b0b, 0x5ba3, 0x6247, 0x657e, + 0x65cb, 0x6e32, 0x717d, 0x7401, 0x7444, 0x7487, 0x74bf, 0x766c, + 0x79aa, 0x7dda, 0x7e55, 0x7fa8, 0x817a, 0x81b3, 0x8239, 0x861a, + 0x87ec, 0x8a75, 0x8de3, 0x9078, 0x9291, 0x9425, 0x994d, 0x9bae, + 0x5368, 0x5c51, 0x6954, 0x6cc4, 0x6d29, 0x6e2b, 0x820c, 0x859b, + 0x893b, 0x8a2d, 0x8aaa, 0x96ea, 0x9f67, 0x5261, 0x66b9, 0x6bb2, + 0x7e96, 0x87fe, 0x8d0d, 0x9583, 0x965d, 0x651d, 0x6d89, 0x71ee, + 0xf96e, 0x57ce, 0x59d3, 0x5bac, 0x6027, 0x60fa, 0x6210, 0x661f, + 0x665f, 0x7329, 0x73f9, 0x76db, 0x7701, 0x7b6c, + /* 0x61 */ + 0x8056, 0x8072, 0x8165, 0x8aa0, 0x9192, 0x4e16, 0x52e2, 0x6b72, + 0x6d17, 0x7a05, 0x7b39, 0x7d30, 0xf96f, 0x8cb0, 0x53ec, 0x562f, + 0x5851, 0x5bb5, 0x5c0f, 0x5c11, 0x5de2, 0x6240, 0x6383, 0x6414, + 0x662d, 0x68b3, 0x6cbc, 0x6d88, 0x6eaf, 0x701f, 0x70a4, 0x71d2, + 0x7526, 0x758f, 0x758e, 0x7619, 0x7b11, 0x7be0, 0x7c2b, 0x7d20, + 0x7d39, 0x852c, 0x856d, 0x8607, 0x8a34, 0x900d, 0x9061, 0x90b5, + 0x92b7, 0x97f6, 0x9a37, 0x4fd7, 0x5c6c, 0x675f, 0x6d91, 0x7c9f, + 0x7e8c, 0x8b16, 0x8d16, 0x901f, 0x5b6b, 0x5dfd, 0x640d, 0x84c0, + 0x905c, 0x98e1, 0x7387, 0x5b8b, 0x609a, 0x677e, 0x6dde, 0x8a1f, + 0x8aa6, 0x9001, 0x980c, 0x5237, 0xf970, 0x7051, 0x788e, 0x9396, + 0x8870, 0x91d7, 0x4fee, 0x53d7, 0x55fd, 0x56da, 0x5782, 0x58fd, + 0x5ac2, 0x5b88, 0x5cab, 0x5cc0, 0x5e25, 0x6101, + /* 0x62 */ + 0x620d, 0x624b, 0x6388, 0x641c, 0x6536, 0x6578, 0x6a39, 0x6b8a, + 0x6c34, 0x6d19, 0x6f31, 0x71e7, 0x72e9, 0x7378, 0x7407, 0x74b2, + 0x7626, 0x7761, 0x79c0, 0x7a57, 0x7aea, 0x7cb9, 0x7d8f, 0x7dac, + 0x7e61, 0x7f9e, 0x8129, 0x8331, 0x8490, 0x84da, 0x85ea, 0x8896, + 0x8ab0, 0x8b90, 0x8f38, 0x9042, 0x9083, 0x916c, 0x9296, 0x92b9, + 0x968b, 0x96a7, 0x96a8, 0x96d6, 0x9700, 0x9808, 0x9996, 0x9ad3, + 0x9b1a, 0x53d4, 0x587e, 0x5919, 0x5b70, 0x5bbf, 0x6dd1, 0x6f5a, + 0x719f, 0x7421, 0x74b9, 0x8085, 0x83fd, 0x5de1, 0x5f87, 0x5faa, + 0x6042, 0x65ec, 0x6812, 0x696f, 0x6a53, 0x6b89, 0x6d35, 0x6df3, + 0x73e3, 0x76fe, 0x77ac, 0x7b4d, 0x7d14, 0x8123, 0x821c, 0x8340, + 0x84f4, 0x8563, 0x8a62, 0x8ac4, 0x9187, 0x931e, 0x9806, 0x99b4, + 0x620c, 0x8853, 0x8ff0, 0x9265, 0x5d07, 0x5d27, + /* 0x63 */ + 0x5d69, 0x745f, 0x819d, 0x8768, 0x6fd5, 0x62fe, 0x7fd2, 0x8936, + 0x8972, 0x4e1e, 0x4e58, 0x50e7, 0x52dd, 0x5347, 0x627f, 0x6607, + 0x7e69, 0x8805, 0x965e, 0x4f8d, 0x5319, 0x5636, 0x59cb, 0x5aa4, + 0x5c38, 0x5c4e, 0x5c4d, 0x5e02, 0x5f11, 0x6043, 0x65bd, 0x662f, + 0x6642, 0x67be, 0x67f4, 0x731c, 0x77e2, 0x793a, 0x7fc5, 0x8494, + 0x84cd, 0x8996, 0x8a66, 0x8a69, 0x8ae1, 0x8c55, 0x8c7a, 0x57f4, + 0x5bd4, 0x5f0f, 0x606f, 0x62ed, 0x690d, 0x6b96, 0x6e5c, 0x7184, + 0x7bd2, 0x8755, 0x8b58, 0x8efe, 0x98df, 0x98fe, 0x4f38, 0x4f81, + 0x4fe1, 0x547b, 0x5a20, 0x5bb8, 0x613c, 0x65b0, 0x6668, 0x71fc, + 0x7533, 0x795e, 0x7d33, 0x814e, 0x81e3, 0x8398, 0x85aa, 0x85ce, + 0x8703, 0x8a0a, 0x8eab, 0x8f9b, 0xf971, 0x8fc5, 0x5931, 0x5ba4, + 0x5be6, 0x6089, 0x5be9, 0x5c0b, 0x5fc3, 0x6c81, + /* 0x64 */ + 0xf972, 0x6df1, 0x700b, 0x751a, 0x82af, 0x8af6, 0x4ec0, 0x5341, + 0xf973, 0x96d9, 0x6c0f, 0x4e9e, 0x4fc4, 0x5152, 0x555e, 0x5a25, + 0x5ce8, 0x6211, 0x7259, 0x82bd, 0x83aa, 0x86fe, 0x8859, 0x8a1d, + 0x963f, 0x96c5, 0x9913, 0x9d09, 0x9d5d, 0x580a, 0x5cb3, 0x5dbd, + 0x5e44, 0x60e1, 0x6115, 0x63e1, 0x6a02, 0x6e25, 0x9102, 0x9354, + 0x984e, 0x9c10, 0x9f77, 0x5b89, 0x5cb8, 0x6309, 0x664f, 0x6848, + 0x773c, 0x96c1, 0x978d, 0x9854, 0x9b9f, 0x65a1, 0x8b01, 0x8ecb, + 0x95bc, 0x5535, 0x5ca9, 0x5dd6, 0x5eb5, 0x6697, 0x764c, 0x83f4, + 0x95c7, 0x58d3, 0x62bc, 0x72ce, 0x9d28, 0x4ef0, 0x592e, 0x600f, + 0x663b, 0x6b83, 0x79e7, 0x9d26, 0x5393, 0x54c0, 0x57c3, 0x5d16, + 0x611b, 0x66d6, 0x6daf, 0x788d, 0x827e, 0x9698, 0x9744, 0x5384, + 0x627c, 0x6396, 0x6db2, 0x7e0a, 0x814b, 0x984d, + /* 0x65 */ + 0x6afb, 0x7f4c, 0x9daf, 0x9e1a, 0x4e5f, 0x503b, 0x51b6, 0x591c, + 0x60f9, 0x63f6, 0x6930, 0x723a, 0x8036, 0xf974, 0x91ce, 0x5f31, + 0xf975, 0xf976, 0x7d04, 0x82e5, 0x846f, 0x84bb, 0x85e5, 0x8e8d, + 0xf977, 0x4f6f, 0xf978, 0xf979, 0x58e4, 0x5b43, 0x6059, 0x63da, + 0x6518, 0x656d, 0x6698, 0xf97a, 0x694a, 0x6a23, 0x6d0b, 0x7001, + 0x716c, 0x75d2, 0x760d, 0x79b3, 0x7a70, 0xf97b, 0x7f8a, 0xf97c, + 0x8944, 0xf97d, 0x8b93, 0x91c0, 0x967d, 0xf97e, 0x990a, 0x5704, + 0x5fa1, 0x65bc, 0x6f01, 0x7600, 0x79a6, 0x8a9e, 0x99ad, 0x9b5a, + 0x9f6c, 0x5104, 0x61b6, 0x6291, 0x6a8d, 0x81c6, 0x5043, 0x5830, + 0x5f66, 0x7109, 0x8a00, 0x8afa, 0x5b7c, 0x8616, 0x4ffa, 0x513c, + 0x56b4, 0x5944, 0x63a9, 0x6df9, 0x5daa, 0x696d, 0x5186, 0x4e88, + 0x4f59, 0xf97f, 0xf980, 0xf981, 0x5982, 0xf982, + /* 0x66 */ + 0xf983, 0x6b5f, 0x6c5d, 0xf984, 0x74b5, 0x7916, 0xf985, 0x8207, + 0x8245, 0x8339, 0x8f3f, 0x8f5d, 0xf986, 0x9918, 0xf987, 0xf988, + 0xf989, 0x4ea6, 0xf98a, 0x57df, 0x5f79, 0x6613, 0xf98b, 0xf98c, + 0x75ab, 0x7e79, 0x8b6f, 0xf98d, 0x9006, 0x9a5b, 0x56a5, 0x5827, + 0x59f8, 0x5a1f, 0x5bb4, 0xf98e, 0x5ef6, 0xf98f, 0xf990, 0x6350, + 0x633b, 0xf991, 0x693d, 0x6c87, 0x6cbf, 0x6d8e, 0x6d93, 0x6df5, + 0x6f14, 0xf992, 0x70df, 0x7136, 0x7159, 0xf993, 0x71c3, 0x71d5, + 0xf994, 0x784f, 0x786f, 0xf995, 0x7b75, 0x7de3, 0xf996, 0x7e2f, + 0xf997, 0x884d, 0x8edf, 0xf998, 0xf999, 0xf99a, 0x925b, 0xf99b, + 0x9cf6, 0xf99c, 0xf99d, 0xf99e, 0x6085, 0x6d85, 0xf99f, 0x71b1, + 0xf9a0, 0xf9a1, 0x95b1, 0x53ad, 0xf9a2, 0xf9a3, 0xf9a4, 0x67d3, + 0xf9a5, 0x708e, 0x7130, 0x7430, 0x8276, 0x82d2, + /* 0x67 */ + 0xf9a6, 0x95bb, 0x9ae5, 0x9e7d, 0x66c4, 0xf9a7, 0x71c1, 0x8449, + 0xf9a8, 0xf9a9, 0x584b, 0xf9aa, 0xf9ab, 0x5db8, 0x5f71, 0xf9ac, + 0x6620, 0x668e, 0x6979, 0x69ae, 0x6c38, 0x6cf3, 0x6e36, 0x6f41, + 0x6fda, 0x701b, 0x702f, 0x7150, 0x71df, 0x7370, 0xf9ad, 0x745b, + 0xf9ae, 0x74d4, 0x76c8, 0x7a4e, 0x7e93, 0xf9af, 0xf9b0, 0x82f1, + 0x8a60, 0x8fce, 0xf9b1, 0x9348, 0xf9b2, 0x9719, 0xf9b3, 0xf9b4, + 0x4e42, 0x502a, 0xf9b5, 0x5208, 0x53e1, 0x66f3, 0x6c6d, 0x6fca, + 0x730a, 0x777f, 0x7a62, 0x82ae, 0x85dd, 0x8602, 0xf9b6, 0x88d4, + 0x8a63, 0x8b7d, 0x8c6b, 0xf9b7, 0x92b3, 0xf9b8, 0x9713, 0x9810, + 0x4e94, 0x4f0d, 0x4fc9, 0x50b2, 0x5348, 0x543e, 0x5433, 0x55da, + 0x5862, 0x58ba, 0x5967, 0x5a1b, 0x5be4, 0x609f, 0xf9b9, 0x61ca, + 0x6556, 0x65ff, 0x6664, 0x68a7, 0x6c5a, 0x6fb3, + /* 0x68 */ + 0x70cf, 0x71ac, 0x7352, 0x7b7d, 0x8708, 0x8aa4, 0x9c32, 0x9f07, + 0x5c4b, 0x6c83, 0x7344, 0x7389, 0x923a, 0x6eab, 0x7465, 0x761f, + 0x7a69, 0x7e15, 0x860a, 0x5140, 0x58c5, 0x64c1, 0x74ee, 0x7515, + 0x7670, 0x7fc1, 0x9095, 0x96cd, 0x9954, 0x6e26, 0x74e6, 0x7aa9, + 0x7aaa, 0x81e5, 0x86d9, 0x8778, 0x8a1b, 0x5a49, 0x5b8c, 0x5b9b, + 0x68a1, 0x6900, 0x6d63, 0x73a9, 0x7413, 0x742c, 0x7897, 0x7de9, + 0x7feb, 0x8118, 0x8155, 0x839e, 0x8c4c, 0x962e, 0x9811, 0x66f0, + 0x5f80, 0x65fa, 0x6789, 0x6c6a, 0x738b, 0x502d, 0x5a03, 0x6b6a, + 0x77ee, 0x5916, 0x5d6c, 0x5dcd, 0x7325, 0x754f, 0xf9ba, 0xf9bb, + 0x50e5, 0x51f9, 0x582f, 0x592d, 0x5996, 0x59da, 0x5be5, 0xf9bc, + 0xf9bd, 0x5da2, 0x62d7, 0x6416, 0x6493, 0x64fe, 0xf9be, 0x66dc, + 0xf9bf, 0x6a48, 0xf9c0, 0x71ff, 0x7464, 0xf9c1, + /* 0x69 */ + 0x7a88, 0x7aaf, 0x7e47, 0x7e5e, 0x8000, 0x8170, 0xf9c2, 0x87ef, + 0x8981, 0x8b20, 0x9059, 0xf9c3, 0x9080, 0x9952, 0x617e, 0x6b32, + 0x6d74, 0x7e1f, 0x8925, 0x8fb1, 0x4fd1, 0x50ad, 0x5197, 0x52c7, + 0x57c7, 0x5889, 0x5bb9, 0x5eb8, 0x6142, 0x6995, 0x6d8c, 0x6e67, + 0x6eb6, 0x7194, 0x7462, 0x7528, 0x752c, 0x8073, 0x8338, 0x84c9, + 0x8e0a, 0x9394, 0x93de, 0xf9c4, 0x4e8e, 0x4f51, 0x5076, 0x512a, + 0x53c8, 0x53cb, 0x53f3, 0x5b87, 0x5bd3, 0x5c24, 0x611a, 0x6182, + 0x65f4, 0x725b, 0x7397, 0x7440, 0x76c2, 0x7950, 0x7991, 0x79b9, + 0x7d06, 0x7fbd, 0x828b, 0x85d5, 0x865e, 0x8fc2, 0x9047, 0x90f5, + 0x91ea, 0x9685, 0x96e8, 0x96e9, 0x52d6, 0x5f67, 0x65ed, 0x6631, + 0x682f, 0x715c, 0x7a36, 0x90c1, 0x980a, 0x4e91, 0xf9c5, 0x6a52, + 0x6b9e, 0x6f90, 0x7189, 0x8018, 0x82b8, 0x8553, + /* 0x6a */ + 0x904b, 0x9695, 0x96f2, 0x97fb, 0x851a, 0x9b31, 0x4e90, 0x718a, + 0x96c4, 0x5143, 0x539f, 0x54e1, 0x5713, 0x5712, 0x57a3, 0x5a9b, + 0x5ac4, 0x5bc3, 0x6028, 0x613f, 0x63f4, 0x6c85, 0x6d39, 0x6e72, + 0x6e90, 0x7230, 0x733f, 0x7457, 0x82d1, 0x8881, 0x8f45, 0x9060, + 0xf9c6, 0x9662, 0x9858, 0x9d1b, 0x6708, 0x8d8a, 0x925e, 0x4f4d, + 0x5049, 0x50de, 0x5371, 0x570d, 0x59d4, 0x5a01, 0x5c09, 0x6170, + 0x6690, 0x6e2d, 0x7232, 0x744b, 0x7def, 0x80c3, 0x840e, 0x8466, + 0x853f, 0x875f, 0x885b, 0x8918, 0x8b02, 0x9055, 0x97cb, 0x9b4f, + 0x4e73, 0x4f91, 0x5112, 0x516a, 0xf9c7, 0x552f, 0x55a9, 0x5b7a, + 0x5ba5, 0x5e7c, 0x5e7d, 0x5ebe, 0x60a0, 0x60df, 0x6108, 0x6109, + 0x63c4, 0x6538, 0x6709, 0xf9c8, 0x67d4, 0x67da, 0xf9c9, 0x6961, + 0x6962, 0x6cb9, 0x6d27, 0xf9ca, 0x6e38, 0xf9cb, + /* 0x6b */ + 0x6fe1, 0x7336, 0x7337, 0xf9cc, 0x745c, 0x7531, 0xf9cd, 0x7652, + 0xf9ce, 0xf9cf, 0x7dad, 0x81fe, 0x8438, 0x88d5, 0x8a98, 0x8adb, + 0x8aed, 0x8e30, 0x8e42, 0x904a, 0x903e, 0x907a, 0x9149, 0x91c9, + 0x936e, 0xf9d0, 0xf9d1, 0x5809, 0xf9d2, 0x6bd3, 0x8089, 0x80b2, + 0xf9d3, 0xf9d4, 0x5141, 0x596b, 0x5c39, 0xf9d5, 0xf9d6, 0x6f64, + 0x73a7, 0x80e4, 0x8d07, 0xf9d7, 0x9217, 0x958f, 0xf9d8, 0xf9d9, + 0xf9da, 0xf9db, 0x807f, 0x620e, 0x701c, 0x7d68, 0x878d, 0xf9dc, + 0x57a0, 0x6069, 0x6147, 0x6bb7, 0x8abe, 0x9280, 0x96b1, 0x4e59, + 0x541f, 0x6deb, 0x852d, 0x9670, 0x97f3, 0x98ee, 0x63d6, 0x6ce3, + 0x9091, 0x51dd, 0x61c9, 0x81ba, 0x9df9, 0x4f9d, 0x501a, 0x5100, + 0x5b9c, 0x610f, 0x61ff, 0x64ec, 0x6905, 0x6bc5, 0x7591, 0x77e3, + 0x7fa9, 0x8264, 0x858f, 0x87fb, 0x8863, 0x8abc, + /* 0x6c */ + 0x8b70, 0x91ab, 0x4e8c, 0x4ee5, 0x4f0a, 0xf9dd, 0xf9de, 0x5937, + 0x59e8, 0xf9df, 0x5df2, 0x5f1b, 0x5f5b, 0x6021, 0xf9e0, 0xf9e1, + 0xf9e2, 0xf9e3, 0x723e, 0x73e5, 0xf9e4, 0x7570, 0x75cd, 0xf9e5, + 0x79fb, 0xf9e6, 0x800c, 0x8033, 0x8084, 0x82e1, 0x8351, 0xf9e7, + 0xf9e8, 0x8cbd, 0x8cb3, 0x9087, 0xf9e9, 0xf9ea, 0x98f4, 0x990c, + 0xf9eb, 0xf9ec, 0x7037, 0x76ca, 0x7fca, 0x7fcc, 0x7ffc, 0x8b1a, + 0x4eba, 0x4ec1, 0x5203, 0x5370, 0xf9ed, 0x54bd, 0x56e0, 0x59fb, + 0x5bc5, 0x5f15, 0x5fcd, 0x6e6e, 0xf9ee, 0xf9ef, 0x7d6a, 0x8335, + 0xf9f0, 0x8693, 0x8a8d, 0xf9f1, 0x976d, 0x9777, 0xf9f2, 0xf9f3, + 0x4e00, 0x4f5a, 0x4f7e, 0x58f9, 0x65e5, 0x6ea2, 0x9038, 0x93b0, + 0x99b9, 0x4efb, 0x58ec, 0x598a, 0x59d9, 0x6041, 0xf9f4, 0xf9f5, + 0x7a14, 0xf9f6, 0x834f, 0x8cc3, 0x5165, 0x5344, + /* 0x6d */ + 0xf9f7, 0xf9f8, 0xf9f9, 0x4ecd, 0x5269, 0x5b55, 0x82bf, 0x4ed4, + 0x523a, 0x54a8, 0x59c9, 0x59ff, 0x5b50, 0x5b57, 0x5b5c, 0x6063, + 0x6148, 0x6ecb, 0x7099, 0x716e, 0x7386, 0x74f7, 0x75b5, 0x78c1, + 0x7d2b, 0x8005, 0x81ea, 0x8328, 0x8517, 0x85c9, 0x8aee, 0x8cc7, + 0x96cc, 0x4f5c, 0x52fa, 0x56bc, 0x65ab, 0x6628, 0x707c, 0x70b8, + 0x7235, 0x7dbd, 0x828d, 0x914c, 0x96c0, 0x9d72, 0x5b71, 0x68e7, + 0x6b98, 0x6f7a, 0x76de, 0x5c91, 0x66ab, 0x6f5b, 0x7bb4, 0x7c2a, + 0x8836, 0x96dc, 0x4e08, 0x4ed7, 0x5320, 0x5834, 0x58bb, 0x58ef, + 0x596c, 0x5c07, 0x5e33, 0x5e84, 0x5f35, 0x638c, 0x66b2, 0x6756, + 0x6a1f, 0x6aa3, 0x6b0c, 0x6f3f, 0x7246, 0xf9fa, 0x7350, 0x748b, + 0x7ae0, 0x7ca7, 0x8178, 0x81df, 0x81e7, 0x838a, 0x846c, 0x8523, + 0x8594, 0x85cf, 0x88dd, 0x8d13, 0x91ac, 0x9577, + /* 0x6e */ + 0x969c, 0x518d, 0x54c9, 0x5728, 0x5bb0, 0x624d, 0x6750, 0x683d, + 0x6893, 0x6e3d, 0x6ed3, 0x707d, 0x7e21, 0x88c1, 0x8ca1, 0x8f09, + 0x9f4b, 0x9f4e, 0x722d, 0x7b8f, 0x8acd, 0x931a, 0x4f47, 0x4f4e, + 0x5132, 0x5480, 0x59d0, 0x5e95, 0x62b5, 0x6775, 0x696e, 0x6a17, + 0x6cae, 0x6e1a, 0x72d9, 0x732a, 0x75bd, 0x7bb8, 0x7d35, 0x82e7, + 0x83f9, 0x8457, 0x85f7, 0x8a5b, 0x8caf, 0x8e87, 0x9019, 0x90b8, + 0x96ce, 0x9f5f, 0x52e3, 0x540a, 0x5ae1, 0x5bc2, 0x6458, 0x6575, + 0x6ef4, 0x72c4, 0xf9fb, 0x7684, 0x7a4d, 0x7b1b, 0x7c4d, 0x7e3e, + 0x7fdf, 0x837b, 0x8b2b, 0x8cca, 0x8d64, 0x8de1, 0x8e5f, 0x8fea, + 0x8ff9, 0x9069, 0x93d1, 0x4f43, 0x4f7a, 0x50b3, 0x5168, 0x5178, + 0x524d, 0x526a, 0x5861, 0x587c, 0x5960, 0x5c08, 0x5c55, 0x5edb, + 0x609b, 0x6230, 0x6813, 0x6bbf, 0x6c08, 0x6fb1, + /* 0x6f */ + 0x714e, 0x7420, 0x7530, 0x7538, 0x7551, 0x7672, 0x7b4c, 0x7b8b, + 0x7bad, 0x7bc6, 0x7e8f, 0x8a6e, 0x8f3e, 0x8f49, 0x923f, 0x9293, + 0x9322, 0x942b, 0x96fb, 0x985a, 0x986b, 0x991e, 0x5207, 0x622a, + 0x6298, 0x6d59, 0x7664, 0x7aca, 0x7bc0, 0x7d76, 0x5360, 0x5cbe, + 0x5e97, 0x6f38, 0x70b9, 0x7c98, 0x9711, 0x9b8e, 0x9ede, 0x63a5, + 0x647a, 0x8776, 0x4e01, 0x4e95, 0x4ead, 0x505c, 0x5075, 0x5448, + 0x59c3, 0x5b9a, 0x5e40, 0x5ead, 0x5ef7, 0x5f81, 0x60c5, 0x633a, + 0x653f, 0x6574, 0x65cc, 0x6676, 0x6678, 0x67fe, 0x6968, 0x6a89, + 0x6b63, 0x6c40, 0x6dc0, 0x6de8, 0x6e1f, 0x6e5e, 0x701e, 0x70a1, + 0x738e, 0x73fd, 0x753a, 0x775b, 0x7887, 0x798e, 0x7a0b, 0x7a7d, + 0x7cbe, 0x7d8e, 0x8247, 0x8a02, 0x8aea, 0x8c9e, 0x912d, 0x914a, + 0x91d8, 0x9266, 0x92cc, 0x9320, 0x9706, 0x9756, + /* 0x70 */ + 0x975c, 0x9802, 0x9f0e, 0x5236, 0x5291, 0x557c, 0x5824, 0x5e1d, + 0x5f1f, 0x608c, 0x63d0, 0x68af, 0x6fdf, 0x796d, 0x7b2c, 0x81cd, + 0x85ba, 0x88fd, 0x8af8, 0x8e44, 0x918d, 0x9664, 0x969b, 0x973d, + 0x984c, 0x9f4a, 0x4fce, 0x5146, 0x51cb, 0x52a9, 0x5632, 0x5f14, + 0x5f6b, 0x63aa, 0x64cd, 0x65e9, 0x6641, 0x66fa, 0x66f9, 0x671d, + 0x689d, 0x68d7, 0x69fd, 0x6f15, 0x6f6e, 0x7167, 0x71e5, 0x722a, + 0x74aa, 0x773a, 0x7956, 0x795a, 0x79df, 0x7a20, 0x7a95, 0x7c97, + 0x7cdf, 0x7d44, 0x7e70, 0x8087, 0x85fb, 0x86a4, 0x8a54, 0x8abf, + 0x8d99, 0x8e81, 0x9020, 0x906d, 0x91e3, 0x963b, 0x96d5, 0x9ce5, + 0x65cf, 0x7c07, 0x8db3, 0x93c3, 0x5b58, 0x5c0a, 0x5352, 0x62d9, + 0x731d, 0x5027, 0x5b97, 0x5f9e, 0x60b0, 0x616b, 0x68d5, 0x6dd9, + 0x742e, 0x7a2e, 0x7d42, 0x7d9c, 0x7e31, 0x816b, + /* 0x71 */ + 0x8e2a, 0x8e35, 0x937e, 0x9418, 0x4f50, 0x5750, 0x5de6, 0x5ea7, + 0x632b, 0x7f6a, 0x4e3b, 0x4f4f, 0x4f8f, 0x505a, 0x59dd, 0x80c4, + 0x546a, 0x5468, 0x55fe, 0x594f, 0x5b99, 0x5dde, 0x5eda, 0x665d, + 0x6731, 0x67f1, 0x682a, 0x6ce8, 0x6d32, 0x6e4a, 0x6f8d, 0x70b7, + 0x73e0, 0x7587, 0x7c4c, 0x7d02, 0x7d2c, 0x7da2, 0x821f, 0x86db, + 0x8a3b, 0x8a85, 0x8d70, 0x8e8a, 0x8f33, 0x9031, 0x914e, 0x9152, + 0x9444, 0x99d0, 0x7af9, 0x7ca5, 0x4fca, 0x5101, 0x51c6, 0x57c8, + 0x5bef, 0x5cfb, 0x6659, 0x6a3d, 0x6d5a, 0x6e96, 0x6fec, 0x710c, + 0x756f, 0x7ae3, 0x8822, 0x9021, 0x9075, 0x96cb, 0x99ff, 0x8301, + 0x4e2d, 0x4ef2, 0x8846, 0x91cd, 0x537d, 0x6adb, 0x696b, 0x6c41, + 0x847a, 0x589e, 0x618e, 0x66fe, 0x62ef, 0x70dd, 0x7511, 0x75c7, + 0x7e52, 0x84b8, 0x8b49, 0x8d08, 0x4e4b, 0x53ea, + /* 0x72 */ + 0x54ab, 0x5730, 0x5740, 0x5fd7, 0x6301, 0x6307, 0x646f, 0x652f, + 0x65e8, 0x667a, 0x679d, 0x67b3, 0x6b62, 0x6c60, 0x6c9a, 0x6f2c, + 0x77e5, 0x7825, 0x7949, 0x7957, 0x7d19, 0x80a2, 0x8102, 0x81f3, + 0x829d, 0x82b7, 0x8718, 0x8a8c, 0xf9fc, 0x8d04, 0x8dbe, 0x9072, + 0x76f4, 0x7a19, 0x7a37, 0x7e54, 0x8077, 0x5507, 0x55d4, 0x5875, + 0x632f, 0x6422, 0x6649, 0x664b, 0x686d, 0x699b, 0x6b84, 0x6d25, + 0x6eb1, 0x73cd, 0x7468, 0x74a1, 0x755b, 0x75b9, 0x76e1, 0x771e, + 0x778b, 0x79e6, 0x7e09, 0x7e1d, 0x81fb, 0x852f, 0x8897, 0x8a3a, + 0x8cd1, 0x8eeb, 0x8fb0, 0x9032, 0x93ad, 0x9663, 0x9673, 0x9707, + 0x4f84, 0x53f1, 0x59ea, 0x5ac9, 0x5e19, 0x684e, 0x74c6, 0x75be, + 0x79e9, 0x7a92, 0x81a3, 0x86ed, 0x8cea, 0x8dcc, 0x8fed, 0x659f, + 0x6715, 0xf9fd, 0x57f7, 0x6f57, 0x7ddd, 0x8f2f, + /* 0x73 */ + 0x93f6, 0x96c6, 0x5fb5, 0x61f2, 0x6f84, 0x4e14, 0x4f98, 0x501f, + 0x53c9, 0x55df, 0x5d6f, 0x5dee, 0x6b21, 0x6b64, 0x78cb, 0x7b9a, + 0xf9fe, 0x8e49, 0x8eca, 0x906e, 0x6349, 0x643e, 0x7740, 0x7a84, + 0x932f, 0x947f, 0x9f6a, 0x64b0, 0x6faf, 0x71e6, 0x74a8, 0x74da, + 0x7ac4, 0x7c12, 0x7e82, 0x7cb2, 0x7e98, 0x8b9a, 0x8d0a, 0x947d, + 0x9910, 0x994c, 0x5239, 0x5bdf, 0x64e6, 0x672d, 0x7d2e, 0x50ed, + 0x53c3, 0x5879, 0x6158, 0x6159, 0x61fa, 0x65ac, 0x7ad9, 0x8b92, + 0x8b96, 0x5009, 0x5021, 0x5275, 0x5531, 0x5a3c, 0x5ee0, 0x5f70, + 0x6134, 0x655e, 0x660c, 0x6636, 0x66a2, 0x69cd, 0x6ec4, 0x6f32, + 0x7316, 0x7621, 0x7a93, 0x8139, 0x8259, 0x83d6, 0x84bc, 0x50b5, + 0x57f0, 0x5bc0, 0x5be8, 0x5f69, 0x63a1, 0x7826, 0x7db5, 0x83dc, + 0x8521, 0x91c7, 0x91f5, 0x518a, 0x67f5, 0x7b56, + /* 0x74 */ + 0x8cac, 0x51c4, 0x59bb, 0x60bd, 0x8655, 0x501c, 0xf9ff, 0x5254, + 0x5c3a, 0x617d, 0x621a, 0x62d3, 0x64f2, 0x65a5, 0x6ecc, 0x7620, + 0x810a, 0x8e60, 0x965f, 0x96bb, 0x4edf, 0x5343, 0x5598, 0x5929, + 0x5ddd, 0x64c5, 0x6cc9, 0x6dfa, 0x7394, 0x7a7f, 0x821b, 0x85a6, + 0x8ce4, 0x8e10, 0x9077, 0x91e7, 0x95e1, 0x9621, 0x97c6, 0x51f8, + 0x54f2, 0x5586, 0x5fb9, 0x64a4, 0x6f88, 0x7db4, 0x8f1f, 0x8f4d, + 0x9435, 0x50c9, 0x5c16, 0x6cbe, 0x6dfb, 0x751b, 0x77bb, 0x7c3d, + 0x7c64, 0x8a79, 0x8ac2, 0x581e, 0x59be, 0x5e16, 0x6377, 0x7252, + 0x758a, 0x776b, 0x8adc, 0x8cbc, 0x8f12, 0x5ef3, 0x6674, 0x6df8, + 0x807d, 0x83c1, 0x8acb, 0x9751, 0x9bd6, 0xfa00, 0x5243, 0x66ff, + 0x6d95, 0x6eef, 0x7de0, 0x8ae6, 0x902e, 0x905e, 0x9ad4, 0x521d, + 0x527f, 0x54e8, 0x6194, 0x6284, 0x62db, 0x68a2, + /* 0x75 */ + 0x6912, 0x695a, 0x6a35, 0x7092, 0x7126, 0x785d, 0x7901, 0x790e, + 0x79d2, 0x7a0d, 0x8096, 0x8278, 0x82d5, 0x8349, 0x8549, 0x8c82, + 0x8d85, 0x9162, 0x918b, 0x91ae, 0x4fc3, 0x56d1, 0x71ed, 0x77d7, + 0x8700, 0x89f8, 0x5bf8, 0x5fd6, 0x6751, 0x90a8, 0x53e2, 0x585a, + 0x5bf5, 0x60a4, 0x6181, 0x6460, 0x7e3d, 0x8070, 0x8525, 0x9283, + 0x64ae, 0x50ac, 0x5d14, 0x6700, 0x589c, 0x62bd, 0x63a8, 0x690e, + 0x6978, 0x6a1e, 0x6e6b, 0x76ba, 0x79cb, 0x82bb, 0x8429, 0x8acf, + 0x8da8, 0x8ffd, 0x9112, 0x914b, 0x919c, 0x9310, 0x9318, 0x939a, + 0x96db, 0x9a36, 0x9c0d, 0x4e11, 0x755c, 0x795d, 0x7afa, 0x7b51, + 0x7bc9, 0x7e2e, 0x84c4, 0x8e59, 0x8e74, 0x8ef8, 0x9010, 0x6625, + 0x693f, 0x7443, 0x51fa, 0x672e, 0x9edc, 0x5145, 0x5fe0, 0x6c96, + 0x87f2, 0x885d, 0x8877, 0x60b4, 0x81b5, 0x8403, + /* 0x76 */ + 0x8d05, 0x53d6, 0x5439, 0x5634, 0x5a36, 0x5c31, 0x708a, 0x7fe0, + 0x805a, 0x8106, 0x81ed, 0x8da3, 0x9189, 0x9a5f, 0x9df2, 0x5074, + 0x4ec4, 0x53a0, 0x60fb, 0x6e2c, 0x5c64, 0x4f88, 0x5024, 0x55e4, + 0x5cd9, 0x5e5f, 0x6065, 0x6894, 0x6cbb, 0x6dc4, 0x71be, 0x75d4, + 0x75f4, 0x7661, 0x7a1a, 0x7a49, 0x7dc7, 0x7dfb, 0x7f6e, 0x81f4, + 0x86a9, 0x8f1c, 0x96c9, 0x99b3, 0x9f52, 0x5247, 0x52c5, 0x98ed, + 0x89aa, 0x4e03, 0x67d2, 0x6f06, 0x4fb5, 0x5be2, 0x6795, 0x6c88, + 0x6d78, 0x741b, 0x7827, 0x91dd, 0x937c, 0x87c4, 0x79e4, 0x7a31, + 0x5feb, 0x4ed6, 0x54a4, 0x553e, 0x58ae, 0x59a5, 0x60f0, 0x6253, + 0x62d6, 0x6736, 0x6955, 0x8235, 0x9640, 0x99b1, 0x99dd, 0x502c, + 0x5353, 0x5544, 0x577c, 0xfa01, 0x6258, 0xfa02, 0x64e2, 0x666b, + 0x67dd, 0x6fc1, 0x6fef, 0x7422, 0x7438, 0x8a17, + /* 0x77 */ + 0x9438, 0x5451, 0x5606, 0x5766, 0x5f48, 0x619a, 0x6b4e, 0x7058, + 0x70ad, 0x7dbb, 0x8a95, 0x596a, 0x812b, 0x63a2, 0x7708, 0x803d, + 0x8caa, 0x5854, 0x642d, 0x69bb, 0x5b95, 0x5e11, 0x6e6f, 0xfa03, + 0x8569, 0x514c, 0x53f0, 0x592a, 0x6020, 0x614b, 0x6b86, 0x6c70, + 0x6cf0, 0x7b1e, 0x80ce, 0x82d4, 0x8dc6, 0x90b0, 0x98b1, 0xfa04, + 0x64c7, 0x6fa4, 0x6491, 0x6504, 0x514e, 0x5410, 0x571f, 0x8a0e, + 0x615f, 0x6876, 0xfa05, 0x75db, 0x7b52, 0x7d71, 0x901a, 0x5806, + 0x69cc, 0x817f, 0x892a, 0x9000, 0x9839, 0x5078, 0x5957, 0x59ac, + 0x6295, 0x900f, 0x9b2a, 0x615d, 0x7279, 0x95d6, 0x5761, 0x5a46, + 0x5df4, 0x628a, 0x64ad, 0x64fa, 0x6777, 0x6ce2, 0x6d3e, 0x722c, + 0x7436, 0x7834, 0x7f77, 0x82ad, 0x8ddb, 0x9817, 0x5224, 0x5742, + 0x677f, 0x7248, 0x74e3, 0x8ca9, 0x8fa6, 0x9211, + /* 0x78 */ + 0x962a, 0x516b, 0x53ed, 0x634c, 0x4f69, 0x5504, 0x6096, 0x6557, + 0x6c9b, 0x6d7f, 0x724c, 0x72fd, 0x7a17, 0x8987, 0x8c9d, 0x5f6d, + 0x6f8e, 0x70f9, 0x81a8, 0x610e, 0x4fbf, 0x504f, 0x6241, 0x7247, + 0x7bc7, 0x7de8, 0x7fe9, 0x904d, 0x97ad, 0x9a19, 0x8cb6, 0x576a, + 0x5e73, 0x67b0, 0x840d, 0x8a55, 0x5420, 0x5b16, 0x5e63, 0x5ee2, + 0x5f0a, 0x6583, 0x80ba, 0x853d, 0x9589, 0x965b, 0x4f48, 0x5305, + 0x530d, 0x530f, 0x5486, 0x54fa, 0x5703, 0x5e03, 0x6016, 0x629b, + 0x62b1, 0x6355, 0xfa06, 0x6ce1, 0x6d66, 0x75b1, 0x7832, 0x80de, + 0x812f, 0x82de, 0x8461, 0x84b2, 0x888d, 0x8912, 0x900b, 0x92ea, + 0x98fd, 0x9b91, 0x5e45, 0x66b4, 0x66dd, 0x7011, 0x7206, 0xfa07, + 0x4ff5, 0x527d, 0x5f6a, 0x6153, 0x6753, 0x6a19, 0x6f02, 0x74e2, + 0x7968, 0x8868, 0x8c79, 0x98c7, 0x98c4, 0x9a43, + /* 0x79 */ + 0x54c1, 0x7a1f, 0x6953, 0x8af7, 0x8c4a, 0x98a8, 0x99ae, 0x5f7c, + 0x62ab, 0x75b2, 0x76ae, 0x88ab, 0x907f, 0x9642, 0x5339, 0x5f3c, + 0x5fc5, 0x6ccc, 0x73cc, 0x7562, 0x758b, 0x7b46, 0x82fe, 0x999d, + 0x4e4f, 0x903c, 0x4e0b, 0x4f55, 0x53a6, 0x590f, 0x5ec8, 0x6630, + 0x6cb3, 0x7455, 0x8377, 0x8766, 0x8cc0, 0x9050, 0x971e, 0x9c15, + 0x58d1, 0x5b78, 0x8650, 0x8b14, 0x9db4, 0x5bd2, 0x6068, 0x608d, + 0x65f1, 0x6c57, 0x6f22, 0x6fa3, 0x701a, 0x7f55, 0x7ff0, 0x9591, + 0x9592, 0x9650, 0x97d3, 0x5272, 0x8f44, 0x51fd, 0x542b, 0x54b8, + 0x5563, 0x558a, 0x6abb, 0x6db5, 0x7dd8, 0x8266, 0x929c, 0x9677, + 0x9e79, 0x5408, 0x54c8, 0x76d2, 0x86e4, 0x95a4, 0x95d4, 0x965c, + 0x4ea2, 0x4f09, 0x59ee, 0x5ae6, 0x5df7, 0x6052, 0x6297, 0x676d, + 0x6841, 0x6c86, 0x6e2f, 0x7f38, 0x809b, 0x822a, + /* 0x7a */ + 0xfa08, 0xfa09, 0x9805, 0x4ea5, 0x5055, 0x54b3, 0x5793, 0x595a, + 0x5b69, 0x5bb3, 0x61c8, 0x6977, 0x6d77, 0x7023, 0x87f9, 0x89e3, + 0x8a72, 0x8ae7, 0x9082, 0x99ed, 0x9ab8, 0x52be, 0x6838, 0x5016, + 0x5e78, 0x674f, 0x8347, 0x884c, 0x4eab, 0x5411, 0x56ae, 0x73e6, + 0x9115, 0x97ff, 0x9909, 0x9957, 0x9999, 0x5653, 0x589f, 0x865b, + 0x8a31, 0x61b2, 0x6af6, 0x737b, 0x8ed2, 0x6b47, 0x96aa, 0x9a57, + 0x5955, 0x7200, 0x8d6b, 0x9769, 0x4fd4, 0x5cf4, 0x5f26, 0x61f8, + 0x665b, 0x6ceb, 0x70ab, 0x7384, 0x73b9, 0x73fe, 0x7729, 0x774d, + 0x7d43, 0x7d62, 0x7e23, 0x8237, 0x8852, 0xfa0a, 0x8ce2, 0x9249, + 0x986f, 0x5b51, 0x7a74, 0x8840, 0x9801, 0x5acc, 0x4fe0, 0x5354, + 0x593e, 0x5cfd, 0x633e, 0x6d79, 0x72f9, 0x8105, 0x8107, 0x83a2, + 0x92cf, 0x9830, 0x4ea8, 0x5144, 0x5211, 0x578b, + /* 0x7b */ + 0x5f62, 0x6cc2, 0x6ece, 0x7005, 0x7050, 0x70af, 0x7192, 0x73e9, + 0x7469, 0x834a, 0x87a2, 0x8861, 0x9008, 0x90a2, 0x93a3, 0x99a8, + 0x516e, 0x5f57, 0x60e0, 0x6167, 0x66b3, 0x8559, 0x8e4a, 0x91af, + 0x978b, 0x4e4e, 0x4e92, 0x547c, 0x58d5, 0x58fa, 0x597d, 0x5cb5, + 0x5f27, 0x6236, 0x6248, 0x660a, 0x6667, 0x6beb, 0x6d69, 0x6dcf, + 0x6e56, 0x6ef8, 0x6f94, 0x6fe0, 0x6fe9, 0x705d, 0x72d0, 0x7425, + 0x745a, 0x74e0, 0x7693, 0x795c, 0x7cca, 0x7e1e, 0x80e1, 0x82a6, + 0x846b, 0x84bf, 0x864e, 0x865f, 0x8774, 0x8b77, 0x8c6a, 0x93ac, + 0x9800, 0x9865, 0x60d1, 0x6216, 0x9177, 0x5a5a, 0x660f, 0x6df7, + 0x6e3e, 0x743f, 0x9b42, 0x5ffd, 0x60da, 0x7b0f, 0x54c4, 0x5f18, + 0x6c5e, 0x6cd3, 0x6d2a, 0x70d8, 0x7d05, 0x8679, 0x8a0c, 0x9d3b, + 0x5316, 0x548c, 0x5b05, 0x6a3a, 0x706b, 0x7575, + /* 0x7c */ + 0x798d, 0x79be, 0x82b1, 0x83ef, 0x8a71, 0x8b41, 0x8ca8, 0x9774, + 0xfa0b, 0x64f4, 0x652b, 0x78ba, 0x78bb, 0x7a6b, 0x4e38, 0x559a, + 0x5950, 0x5ba6, 0x5e7b, 0x60a3, 0x63db, 0x6b61, 0x6665, 0x6853, + 0x6e19, 0x7165, 0x74b0, 0x7d08, 0x9084, 0x9a69, 0x9c25, 0x6d3b, + 0x6ed1, 0x733e, 0x8c41, 0x95ca, 0x51f0, 0x5e4c, 0x5fa8, 0x604d, + 0x60f6, 0x6130, 0x614c, 0x6643, 0x6644, 0x69a5, 0x6cc1, 0x6e5f, + 0x6ec9, 0x6f62, 0x714c, 0x749c, 0x7687, 0x7bc1, 0x7c27, 0x8352, + 0x8757, 0x9051, 0x968d, 0x9ec3, 0x532f, 0x56de, 0x5efb, 0x5f8a, + 0x6062, 0x6094, 0x61f7, 0x6666, 0x6703, 0x6a9c, 0x6dee, 0x6fae, + 0x7070, 0x736a, 0x7e6a, 0x81be, 0x8334, 0x86d4, 0x8aa8, 0x8cc4, + 0x5283, 0x7372, 0x5b96, 0x6a6b, 0x9404, 0x54ee, 0x5686, 0x5b5d, + 0x6548, 0x6585, 0x66c9, 0x689f, 0x6d8d, 0x6dc6, + /* 0x7d */ + 0x723b, 0x80b4, 0x9175, 0x9a4d, 0x4faf, 0x5019, 0x539a, 0x540e, + 0x543c, 0x5589, 0x55c5, 0x5e3f, 0x5f8c, 0x673d, 0x7166, 0x73dd, + 0x9005, 0x52db, 0x52f3, 0x5864, 0x58ce, 0x7104, 0x718f, 0x71fb, + 0x85b0, 0x8a13, 0x6688, 0x85a8, 0x55a7, 0x6684, 0x714a, 0x8431, + 0x5349, 0x5599, 0x6bc1, 0x5f59, 0x5fbd, 0x63ee, 0x6689, 0x7147, + 0x8af1, 0x8f1d, 0x9ebe, 0x4f11, 0x643a, 0x70cb, 0x7566, 0x8667, + 0x6064, 0x8b4e, 0x9df8, 0x5147, 0x51f6, 0x5308, 0x6d36, 0x80f8, + 0x9ed1, 0x6615, 0x6b23, 0x7098, 0x75d5, 0x5403, 0x5c79, 0x7d07, + 0x8a16, 0x6b20, 0x6b3d, 0x6b46, 0x5438, 0x6070, 0x6d3d, 0x7fd5, + 0x8208, 0x50d6, 0x51de, 0x559c, 0x566b, 0x56cd, 0x59ec, 0x5b09, + 0x5e0c, 0x6199, 0x6198, 0x6231, 0x665e, 0x66e6, 0x7199, 0x71b9, + 0x71ba, 0x72a7, 0x79a7, 0x7a00, 0x7fb2, 0x8a70, +}; + +static int +ksc5601_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 >= 0x21 && c1 <= 0x2c) || (c1 >= 0x30 && c1 <= 0x48) || (c1 >= 0x4a && c1 <= 0x7d)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if (c2 >= 0x21 && c2 < 0x7f) { + unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); + unsigned short wc = 0xfffd; + if (i < 1410) { + if (i < 1115) + wc = ksc5601_2uni_page21[i]; + } else if (i < 3854) { + if (i < 3760) + wc = ksc5601_2uni_page30[i-1410]; + } else { + if (i < 8742) + wc = ksc5601_2uni_page4a[i-3854]; + } + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + +static const unsigned short ksc5601_2charset[8227] = { + 0x222e, 0x2234, 0x2157, 0x2127, 0x2823, 0x2129, 0x2267, 0x2146, + 0x213e, 0x2977, 0x2978, 0x2225, 0x2252, 0x2124, 0x222c, 0x2976, + 0x282c, 0x2879, 0x2876, 0x287a, 0x222f, 0x2821, 0x2822, 0x213f, + 0x282a, 0x282d, 0x292c, 0x2921, 0x2923, 0x2140, 0x292a, 0x292d, + 0x2922, 0x2824, 0x2924, 0x2925, 0x2826, 0x2926, 0x2927, 0x2828, + 0x2928, 0x2829, 0x2929, 0x2930, 0x282f, 0x292f, 0x282b, 0x292b, + 0x282e, 0x292e, 0x2227, 0x2230, 0x2228, 0x222b, 0x222a, 0x222d, + 0x2229, 0x2541, 0x2542, 0x2543, 0x2544, 0x2545, 0x2546, 0x2547, + 0x2548, 0x2549, 0x254a, 0x254b, 0x254c, 0x254d, 0x254e, 0x254f, + 0x2550, 0x2551, 0x2552, 0x2553, 0x2554, 0x2555, 0x2556, 0x2557, + 0x2558, 0x2561, 0x2562, 0x2563, 0x2564, 0x2565, 0x2566, 0x2567, + 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x256d, 0x256e, 0x256f, + 0x2570, 0x2571, 0x2572, 0x2573, 0x2574, 0x2575, 0x2576, 0x2577, + 0x2578, 0x2c27, 0x2c21, 0x2c22, 0x2c23, 0x2c24, 0x2c25, 0x2c26, + 0x2c28, 0x2c29, 0x2c2a, 0x2c2b, 0x2c2c, 0x2c2d, 0x2c2e, 0x2c2f, + 0x2c30, 0x2c31, 0x2c32, 0x2c33, 0x2c34, 0x2c35, 0x2c36, 0x2c37, + 0x2c38, 0x2c39, 0x2c3a, 0x2c3b, 0x2c3c, 0x2c3d, 0x2c3e, 0x2c3f, + 0x2c40, 0x2c41, 0x2c51, 0x2c52, 0x2c53, 0x2c54, 0x2c55, 0x2c56, + 0x2c58, 0x2c59, 0x2c5a, 0x2c5b, 0x2c5c, 0x2c5d, 0x2c5e, 0x2c5f, + 0x2c60, 0x2c61, 0x2c62, 0x2c63, 0x2c64, 0x2c65, 0x2c66, 0x2c67, + 0x2c68, 0x2c69, 0x2c6a, 0x2c6b, 0x2c6c, 0x2c6d, 0x2c6e, 0x2c6f, + 0x2c70, 0x2c71, 0x2c57, 0x212a, 0x212e, 0x212f, 0x2130, 0x2131, + 0x2253, 0x2254, 0x2125, 0x2126, 0x2236, 0x2147, 0x2148, 0x2158, + 0x2979, 0x297a, 0x297b, 0x297c, 0x297d, 0x297e, 0x2266, 0x2149, + 0x2235, 0x2724, 0x2260, 0x2265, 0x2262, 0x2759, 0x214a, 0x2877, + 0x2878, 0x287b, 0x287c, 0x287d, 0x287e, 0x2530, 0x2531, 0x2532, + 0x2533, 0x2534, 0x2535, 0x2536, 0x2537, 0x2538, 0x2539, 0x2521, + 0x2522, 0x2523, 0x2524, 0x2525, 0x2526, 0x2527, 0x2528, 0x2529, + 0x252a, 0x2167, 0x2168, 0x2166, 0x2169, 0x216a, 0x2255, 0x2258, + 0x2256, 0x2259, 0x2257, 0x2221, 0x2222, 0x2223, 0x2153, 0x2224, + 0x2154, 0x2174, 0x2175, 0x2233, 0x2232, 0x216e, 0x2170, 0x2144, + 0x2150, 0x212b, 0x217c, 0x217d, 0x217b, 0x217a, 0x2172, 0x2173, + 0x2231, 0x2145, 0x2171, 0x212d, 0x216f, 0x2156, 0x2141, 0x2155, + 0x2142, 0x2143, 0x216c, 0x216d, 0x2178, 0x2179, 0x2176, 0x2177, + 0x2241, 0x2151, 0x2152, 0x2867, 0x2868, 0x2869, 0x286a, 0x286b, + 0x286c, 0x286d, 0x286e, 0x286f, 0x2870, 0x2871, 0x2872, 0x2873, + 0x2874, 0x2875, 0x2967, 0x2968, 0x2969, 0x296a, 0x296b, 0x296c, + 0x296d, 0x296e, 0x296f, 0x2970, 0x2971, 0x2972, 0x2973, 0x2974, + 0x2975, 0x294d, 0x294e, 0x294f, 0x2950, 0x2951, 0x2952, 0x2953, + 0x2954, 0x2955, 0x2956, 0x2957, 0x2958, 0x2959, 0x295a, 0x295b, + 0x295c, 0x295d, 0x295e, 0x295f, 0x2960, 0x2961, 0x2962, 0x2963, + 0x2964, 0x2965, 0x2966, 0x284d, 0x284e, 0x284f, 0x2850, 0x2851, + 0x2852, 0x2853, 0x2854, 0x2855, 0x2856, 0x2857, 0x2858, 0x2859, + 0x285a, 0x285b, 0x285c, 0x285d, 0x285e, 0x285f, 0x2860, 0x2861, + 0x2862, 0x2863, 0x2864, 0x2865, 0x2866, 0x2621, 0x262c, 0x2622, + 0x262d, 0x2623, 0x2648, 0x2647, 0x262e, 0x2624, 0x2642, 0x2641, + 0x262f, 0x2626, 0x2646, 0x2645, 0x2631, 0x2625, 0x2644, 0x2643, + 0x2630, 0x2627, 0x263c, 0x2649, 0x264a, 0x2637, 0x264b, 0x264c, + 0x2632, 0x2629, 0x263e, 0x264d, 0x264e, 0x2639, 0x264f, 0x2650, + 0x2634, 0x2628, 0x2651, 0x2652, 0x2638, 0x263d, 0x2653, 0x2654, + 0x2633, 0x262a, 0x2655, 0x2656, 0x263a, 0x263f, 0x2657, 0x2658, + 0x2635, 0x262b, 0x2659, 0x265a, 0x263b, 0x265b, 0x265c, 0x2640, + 0x265d, 0x265e, 0x265f, 0x2660, 0x2661, 0x2662, 0x2663, 0x2664, + 0x2636, 0x2246, 0x2161, 0x2160, 0x2243, 0x2247, 0x2248, 0x224b, + 0x224a, 0x2249, 0x224c, 0x2163, 0x2162, 0x223a, 0x2239, 0x2165, + 0x2164, 0x2238, 0x2237, 0x215f, 0x215e, 0x2242, 0x215b, 0x215d, + 0x215c, 0x2244, 0x2245, 0x215a, 0x2159, 0x224f, 0x224e, 0x2250, + 0x2251, 0x214f, 0x214e, 0x223c, 0x223d, 0x2240, 0x223b, 0x223e, + 0x223f, 0x224d, 0x225b, 0x225c, 0x225d, 0x225a, 0x2121, 0x2122, + 0x2123, 0x2128, 0x2134, 0x2135, 0x2136, 0x2137, 0x2138, 0x2139, + 0x213a, 0x213b, 0x213c, 0x213d, 0x216b, 0x2132, 0x2133, 0x2a21, + 0x2a22, 0x2a23, 0x2a24, 0x2a25, 0x2a26, 0x2a27, 0x2a28, 0x2a29, + 0x2a2a, 0x2a2b, 0x2a2c, 0x2a2d, 0x2a2e, 0x2a2f, 0x2a30, 0x2a31, + 0x2a32, 0x2a33, 0x2a34, 0x2a35, 0x2a36, 0x2a37, 0x2a38, 0x2a39, + 0x2a3a, 0x2a3b, 0x2a3c, 0x2a3d, 0x2a3e, 0x2a3f, 0x2a40, 0x2a41, + 0x2a42, 0x2a43, 0x2a44, 0x2a45, 0x2a46, 0x2a47, 0x2a48, 0x2a49, + 0x2a4a, 0x2a4b, 0x2a4c, 0x2a4d, 0x2a4e, 0x2a4f, 0x2a50, 0x2a51, + 0x2a52, 0x2a53, 0x2a54, 0x2a55, 0x2a56, 0x2a57, 0x2a58, 0x2a59, + 0x2a5a, 0x2a5b, 0x2a5c, 0x2a5d, 0x2a5e, 0x2a5f, 0x2a60, 0x2a61, + 0x2a62, 0x2a63, 0x2a64, 0x2a65, 0x2a66, 0x2a67, 0x2a68, 0x2a69, + 0x2a6a, 0x2a6b, 0x2a6c, 0x2a6d, 0x2a6e, 0x2a6f, 0x2a70, 0x2a71, + 0x2a72, 0x2a73, 0x2b21, 0x2b22, 0x2b23, 0x2b24, 0x2b25, 0x2b26, + 0x2b27, 0x2b28, 0x2b29, 0x2b2a, 0x2b2b, 0x2b2c, 0x2b2d, 0x2b2e, + 0x2b2f, 0x2b30, 0x2b31, 0x2b32, 0x2b33, 0x2b34, 0x2b35, 0x2b36, + 0x2b37, 0x2b38, 0x2b39, 0x2b3a, 0x2b3b, 0x2b3c, 0x2b3d, 0x2b3e, + 0x2b3f, 0x2b40, 0x2b41, 0x2b42, 0x2b43, 0x2b44, 0x2b45, 0x2b46, + 0x2b47, 0x2b48, 0x2b49, 0x2b4a, 0x2b4b, 0x2b4c, 0x2b4d, 0x2b4e, + 0x2b4f, 0x2b50, 0x2b51, 0x2b52, 0x2b53, 0x2b54, 0x2b55, 0x2b56, + 0x2b57, 0x2b58, 0x2b59, 0x2b5a, 0x2b5b, 0x2b5c, 0x2b5d, 0x2b5e, + 0x2b5f, 0x2b60, 0x2b61, 0x2b62, 0x2b63, 0x2b64, 0x2b65, 0x2b66, + 0x2b67, 0x2b68, 0x2b69, 0x2b6a, 0x2b6b, 0x2b6c, 0x2b6d, 0x2b6e, + 0x2b6f, 0x2b70, 0x2b71, 0x2b72, 0x2b73, 0x2b74, 0x2b75, 0x2b76, + 0x2421, 0x2422, 0x2423, 0x2424, 0x2425, 0x2426, 0x2427, 0x2428, + 0x2429, 0x242a, 0x242b, 0x242c, 0x242d, 0x242e, 0x242f, 0x2430, + 0x2431, 0x2432, 0x2433, 0x2434, 0x2435, 0x2436, 0x2437, 0x2438, + 0x2439, 0x243a, 0x243b, 0x243c, 0x243d, 0x243e, 0x243f, 0x2440, + 0x2441, 0x2442, 0x2443, 0x2444, 0x2445, 0x2446, 0x2447, 0x2448, + 0x2449, 0x244a, 0x244b, 0x244c, 0x244d, 0x244e, 0x244f, 0x2450, + 0x2451, 0x2452, 0x2453, 0x2454, 0x2455, 0x2456, 0x2457, 0x2458, + 0x2459, 0x245a, 0x245b, 0x245c, 0x245d, 0x245e, 0x245f, 0x2460, + 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, + 0x2469, 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, 0x2470, + 0x2471, 0x2472, 0x2473, 0x2474, 0x2475, 0x2476, 0x2477, 0x2478, + 0x2479, 0x247a, 0x247b, 0x247c, 0x247d, 0x247e, 0x2931, 0x2932, + 0x2933, 0x2934, 0x2935, 0x2936, 0x2937, 0x2938, 0x2939, 0x293a, + 0x293b, 0x293c, 0x293d, 0x293e, 0x293f, 0x2940, 0x2941, 0x2942, + 0x2943, 0x2944, 0x2945, 0x2946, 0x2947, 0x2948, 0x2949, 0x294a, + 0x294b, 0x294c, 0x225f, 0x2831, 0x2832, 0x2833, 0x2834, 0x2835, + 0x2836, 0x2837, 0x2838, 0x2839, 0x283a, 0x283b, 0x283c, 0x283d, + 0x283e, 0x283f, 0x2840, 0x2841, 0x2842, 0x2843, 0x2844, 0x2845, + 0x2846, 0x2847, 0x2848, 0x2849, 0x284a, 0x284b, 0x284c, 0x2268, + 0x225e, 0x2749, 0x274a, 0x274b, 0x274c, 0x274d, 0x273a, 0x273b, + 0x275c, 0x275d, 0x275e, 0x2736, 0x2737, 0x2738, 0x2754, 0x2755, + 0x2756, 0x2757, 0x2758, 0x2721, 0x2722, 0x2723, 0x2725, 0x272b, + 0x272c, 0x272d, 0x272e, 0x272f, 0x2730, 0x2731, 0x2732, 0x2733, + 0x2734, 0x2727, 0x2728, 0x2729, 0x272a, 0x273d, 0x273e, 0x2765, + 0x2766, 0x2767, 0x2768, 0x2761, 0x2762, 0x2763, 0x273f, 0x2740, + 0x2741, 0x2742, 0x2743, 0x2744, 0x2745, 0x2746, 0x2747, 0x2748, + 0x274e, 0x274f, 0x2750, 0x2751, 0x2752, 0x2753, 0x275a, 0x275b, + 0x2263, 0x276c, 0x2726, 0x2760, 0x276f, 0x2261, 0x273c, 0x276d, + 0x2735, 0x2739, 0x276a, 0x276b, 0x275f, 0x2264, 0x2764, 0x276e, + 0x2769, 0x6c69, 0x6f4b, 0x7652, 0x5832, 0x6d5b, 0x5f32, 0x5f3e, + 0x793b, 0x5c74, 0x7564, 0x7326, 0x5d60, 0x6126, 0x4e78, 0x5c30, + 0x632a, 0x7169, 0x4d7a, 0x7c2f, 0x5321, 0x712b, 0x6751, 0x522c, + 0x4e79, 0x717d, 0x5e3f, 0x7b3a, 0x7939, 0x4e52, 0x632b, 0x6b60, + 0x4e7a, 0x4b77, 0x6525, 0x4a61, 0x544c, 0x6a61, 0x5c63, 0x5f2d, + 0x4b6b, 0x552f, 0x5675, 0x6578, 0x5e40, 0x6c23, 0x694d, 0x6a27, + 0x6976, 0x7b3b, 0x6769, 0x6f4c, 0x5066, 0x5e41, 0x642c, 0x584c, + 0x7971, 0x4e5f, 0x7a24, 0x6632, 0x7a7b, 0x7a3d, 0x4c48, 0x6f4d, + 0x5555, 0x5322, 0x6c51, 0x6427, 0x6c52, 0x7631, 0x4e7b, 0x5051, + 0x4b3f, 0x6d24, 0x6d28, 0x5e42, 0x7662, 0x6d5c, 0x5c75, 0x6039, + 0x544e, 0x7435, 0x535b, 0x5635, 0x6c24, 0x6466, 0x716a, 0x4b6c, + 0x4b40, 0x6c72, 0x506a, 0x7972, 0x6c25, 0x505f, 0x676a, 0x506b, + 0x5c51, 0x5b69, 0x7d4c, 0x5b57, 0x5a61, 0x5636, 0x635f, 0x5e43, + 0x5e44, 0x4a21, 0x6e6c, 0x5323, 0x6e37, 0x784f, 0x6a48, 0x6e38, + 0x712c, 0x7125, 0x694e, 0x793c, 0x6579, 0x6c6a, 0x5d56, 0x6d42, + 0x7825, 0x653a, 0x5b58, 0x4a22, 0x514d, 0x6e6d, 0x6c6b, 0x5e45, + 0x6360, 0x4a49, 0x7269, 0x554e, 0x7636, 0x4e42, 0x5647, 0x6334, + 0x712d, 0x6a62, 0x5742, 0x7327, 0x4d6a, 0x6b6e, 0x5932, 0x7d25, + 0x7655, 0x5562, 0x7835, 0x4c75, 0x7535, 0x642d, 0x676b, 0x7155, + 0x703b, 0x6935, 0x4c49, 0x7a55, 0x6154, 0x5756, 0x5c41, 0x5e46, + 0x7a6f, 0x6361, 0x6173, 0x5c76, 0x4e7c, 0x5b44, 0x7871, 0x5c64, + 0x656f, 0x5c31, 0x5556, 0x735a, 0x4b41, 0x5b43, 0x597a, 0x536e, + 0x7a38, 0x7d26, 0x6b6f, 0x7426, 0x4c4a, 0x7328, 0x735b, 0x5b27, + 0x7637, 0x4f66, 0x7072, 0x4b5a, 0x6752, 0x5743, 0x7670, 0x685e, + 0x6526, 0x6567, 0x4a23, 0x4c27, 0x6a49, 0x7836, 0x7a25, 0x712e, + 0x6f4e, 0x4b6d, 0x7630, 0x6f4f, 0x694f, 0x775e, 0x4e53, 0x5c77, + 0x5b28, 0x4b78, 0x5f21, 0x5d61, 0x754a, 0x6936, 0x676c, 0x6e6e, + 0x7370, 0x5f3f, 0x4c4b, 0x5041, 0x7452, 0x603a, 0x5f40, 0x4e60, + 0x5c52, 0x7d6a, 0x5676, 0x6a4a, 0x6869, 0x632c, 0x7350, 0x4a24, + 0x5b78, 0x5e47, 0x6b70, 0x7156, 0x6562, 0x4c4c, 0x4b7b, 0x6a63, + 0x5f41, 0x566d, 0x6950, 0x6e39, 0x5563, 0x5153, 0x6570, 0x6834, + 0x6b43, 0x6a2a, 0x7a7c, 0x7576, 0x703c, 0x7d54, 0x603b, 0x4e43, + 0x503a, 0x773a, 0x5873, 0x774d, 0x642e, 0x545f, 0x5067, 0x6c7d, + 0x522e, 0x6e6f, 0x5557, 0x6a64, 0x7822, 0x4d6b, 0x573f, 0x7b31, + 0x4d6c, 0x5c32, 0x506c, 0x4e7d, 0x6e70, 0x4c42, 0x506d, 0x6577, + 0x737c, 0x6e22, 0x5933, 0x5874, 0x6937, 0x4e2e, 0x5922, 0x5871, + 0x544f, 0x6527, 0x5552, 0x5629, 0x7422, 0x7157, 0x5558, 0x703d, + 0x5750, 0x5450, 0x574f, 0x6b6a, 0x7d6b, 0x5b6d, 0x7c45, 0x4b42, + 0x7d55, 0x7448, 0x686a, 0x7573, 0x795e, 0x536f, 0x6c53, 0x5d42, + 0x6f37, 0x6754, 0x4a4a, 0x597b, 0x7a7d, 0x562a, 0x7478, 0x7777, + 0x5c2c, 0x5757, 0x5f22, 0x4e3e, 0x5370, 0x7024, 0x616c, 0x4f67, + 0x734b, 0x6d29, 0x4a3e, 0x746f, 0x764e, 0x5e7b, 0x503b, 0x5537, + 0x6e71, 0x7428, 0x5c78, 0x4b27, 0x5a4e, 0x6066, 0x6d25, 0x6e72, + 0x5c79, 0x795c, 0x735c, 0x7872, 0x7479, 0x7c71, 0x503c, 0x5b79, + 0x5731, 0x4b7c, 0x7025, 0x4b7d, 0x5574, 0x4d6d, 0x4a25, 0x562b, + 0x5042, 0x703e, 0x523d, 0x4c24, 0x7a36, 0x4c4d, 0x5a7a, 0x764f, + 0x6938, 0x5875, 0x4c4e, 0x574d, 0x5451, 0x696d, 0x4a6b, 0x5962, + 0x7d32, 0x632d, 0x564c, 0x5934, 0x6127, 0x6e53, 0x5043, 0x7d33, + 0x5564, 0x4f68, 0x6d43, 0x5032, 0x4e7e, 0x5a28, 0x7850, 0x7d56, + 0x7851, 0x7852, 0x5c53, 0x5d62, 0x7b79, 0x5d41, 0x6335, 0x6d5d, + 0x4e44, 0x4b21, 0x5d63, 0x7c5d, 0x792f, 0x527b, 0x4f21, 0x6428, + 0x7436, 0x6c7e, 0x632e, 0x676d, 0x7d41, 0x5a62, 0x5833, 0x5d64, + 0x706f, 0x7671, 0x7a70, 0x5175, 0x5a4f, 0x5c54, 0x5c26, 0x6f3f, + 0x4e4f, 0x6059, 0x5956, 0x6c54, 0x6a4b, 0x4a3f, 0x5530, 0x4f69, + 0x716d, 0x4c4f, 0x6478, 0x646d, 0x5758, 0x7d27, 0x6a2b, 0x7632, + 0x4f70, 0x793d, 0x6674, 0x4b5b, 0x7351, 0x6951, 0x7329, 0x5060, + 0x6952, 0x5a63, 0x6252, 0x7622, 0x6174, 0x5a64, 0x6755, 0x753f, + 0x4f22, 0x4d2f, 0x4f23, 0x4d30, 0x717e, 0x5023, 0x612f, 0x7823, + 0x4a26, 0x773b, 0x726a, 0x5e48, 0x6953, 0x5e49, 0x7d5e, 0x4a40, + 0x796a, 0x514e, 0x6e54, 0x5452, 0x5923, 0x7d28, 0x5759, 0x774e, + 0x7a3e, 0x4f56, 0x5770, 0x6b61, 0x7845, 0x5c7a, 0x5d43, 0x795f, + 0x676f, 0x7d65, 0x7623, 0x597c, 0x7d29, 0x676e, 0x5565, 0x6f50, + 0x4d31, 0x7722, 0x7132, 0x7131, 0x4d32, 0x5a2b, 0x4a27, 0x6362, + 0x7b3c, 0x5924, 0x6e3a, 0x7853, 0x7b7a, 0x4f24, 0x5c7b, 0x7663, + 0x6d2a, 0x7221, 0x4e61, 0x7a26, 0x7960, 0x6c56, 0x646e, 0x7921, + 0x7b6f, 0x796b, 0x6e23, 0x6a2c, 0x4a28, 0x747a, 0x4d56, 0x7c76, + 0x7449, 0x7854, 0x7826, 0x5e4a, 0x7246, 0x575a, 0x5350, 0x5845, + 0x6a66, 0x735d, 0x645a, 0x7664, 0x7672, 0x5f42, 0x597d, 0x4c76, + 0x533a, 0x642f, 0x7961, 0x7026, 0x4b53, 0x603c, 0x744a, 0x547a, + 0x7d2a, 0x7962, 0x7437, 0x7d42, 0x7c30, 0x7d6c, 0x4a62, 0x7d3d, + 0x6a67, 0x5f43, 0x5152, 0x4e62, 0x5324, 0x7d2b, 0x5f60, 0x7247, + 0x6770, 0x506e, 0x732a, 0x5e4b, 0x7638, 0x6175, 0x7133, 0x7723, + 0x4a29, 0x4f25, 0x5f44, 0x6130, 0x703f, 0x7624, 0x6336, 0x7a46, + 0x506f, 0x7d6d, 0x5d44, 0x7c77, 0x663f, 0x5e2d, 0x7a3f, 0x6571, + 0x6d44, 0x5225, 0x7d6e, 0x7536, 0x6176, 0x5e4c, 0x7c5e, 0x6c57, + 0x4d5d, 0x5637, 0x4d33, 0x7855, 0x6558, 0x4f6a, 0x4f50, 0x6a4c, + 0x6a2e, 0x6a2d, 0x5371, 0x5325, 0x774f, 0x6e24, 0x5024, 0x7222, + 0x5070, 0x7223, 0x7778, 0x5033, 0x5b29, 0x533b, 0x4a6c, 0x7126, + 0x4b55, 0x7767, 0x4d5e, 0x7724, 0x7840, 0x535d, 0x4c50, 0x4f26, + 0x7673, 0x6177, 0x535c, 0x7a7e, 0x7a27, 0x6b59, 0x4f27, 0x6a2f, + 0x646f, 0x6939, 0x7158, 0x5858, 0x6072, 0x6634, 0x5c7c, 0x7371, + 0x6350, 0x727b, 0x5b46, 0x5071, 0x5072, 0x4f5c, 0x5351, 0x4c31, + 0x7758, 0x4b28, 0x6b3c, 0x643e, 0x745c, 0x5c42, 0x7027, 0x6640, + 0x4a6d, 0x686b, 0x6568, 0x5c43, 0x6d5e, 0x5372, 0x4c77, 0x4e54, + 0x672b, 0x4b43, 0x6131, 0x7732, 0x5373, 0x5352, 0x7540, 0x5f5d, + 0x6e73, 0x6771, 0x7d34, 0x7248, 0x7352, 0x6e74, 0x6253, 0x4c51, + 0x5f6a, 0x693a, 0x5957, 0x754d, 0x7172, 0x7a47, 0x5978, 0x5442, + 0x7665, 0x5d45, 0x6772, 0x6d5f, 0x4a4b, 0x5b7a, 0x6835, 0x5326, + 0x7d35, 0x7949, 0x6462, 0x7b3d, 0x5724, 0x4e45, 0x4e55, 0x5666, + 0x653d, 0x5e4d, 0x6c73, 0x6d60, 0x6c6c, 0x7b3e, 0x5f6b, 0x6178, + 0x793e, 0x5073, 0x602a, 0x6862, 0x6254, 0x527d, 0x6528, 0x5953, + 0x535e, 0x7438, 0x773c, 0x5c7d, 0x686c, 0x6467, 0x6377, 0x6c28, + 0x7a71, 0x6572, 0x5074, 0x522f, 0x5c65, 0x5025, 0x7134, 0x7c31, + 0x4c78, 0x5d46, 0x7a51, 0x775f, 0x7a28, 0x6e75, 0x5e4e, 0x6773, + 0x772c, 0x6b44, 0x6d61, 0x602b, 0x5d47, 0x5233, 0x523f, 0x4a4c, + 0x7b3f, 0x657d, 0x5d65, 0x584d, 0x6c74, 0x5075, 0x686d, 0x5052, + 0x5958, 0x7666, 0x5b2a, 0x7760, 0x5859, 0x7423, 0x745d, 0x6f51, + 0x5935, 0x6d2b, 0x6337, 0x6e3b, 0x4d34, 0x6073, 0x6a4d, 0x6c75, + 0x686e, 0x4b29, 0x712f, 0x4a4d, 0x6c29, 0x726b, 0x7d6f, 0x7973, + 0x6641, 0x6c58, 0x6d2c, 0x6a4e, 0x685f, 0x5e4f, 0x5226, 0x6774, + 0x5156, 0x6642, 0x6363, 0x6430, 0x5834, 0x7625, 0x735e, 0x5725, + 0x7768, 0x6846, 0x7b66, 0x5d66, 0x5c7e, 0x585a, 0x5a2c, 0x6a30, + 0x6338, 0x4a2a, 0x6179, 0x6a31, 0x726c, 0x7a6e, 0x6e55, 0x7974, + 0x526c, 0x7b7b, 0x7d70, 0x603d, 0x4e63, 0x7846, 0x5e2e, 0x5f45, + 0x653e, 0x6d2d, 0x7a6a, 0x4d6e, 0x6d26, 0x6d2e, 0x706d, 0x5d21, + 0x6d2f, 0x7c78, 0x586b, 0x4c79, 0x4d35, 0x7a29, 0x615d, 0x6255, + 0x6d4f, 0x5d22, 0x794a, 0x6a68, 0x656d, 0x536b, 0x6954, 0x617a, + 0x644c, 0x6164, 0x6847, 0x4e5b, 0x5c55, 0x7735, 0x7c73, 0x7073, + 0x4e2f, 0x7135, 0x6f52, 0x6848, 0x6b71, 0x4b54, 0x603e, 0x6378, + 0x6a69, 0x7c32, 0x6074, 0x4f60, 0x6e25, 0x7a2a, 0x6643, 0x6132, + 0x4a2b, 0x6364, 0x693b, 0x6256, 0x7372, 0x6e56, 0x6a32, 0x5076, + 0x6c59, 0x5a4b, 0x4f28, 0x5d23, 0x585b, 0x794e, 0x6955, 0x6351, + 0x523c, 0x582c, 0x734c, 0x4d7b, 0x7656, 0x6775, 0x686f, 0x6379, + 0x523b, 0x7373, 0x637b, 0x5e50, 0x4e30, 0x5677, 0x7159, 0x7541, + 0x5c44, 0x753b, 0x5e51, 0x5c66, 0x5e52, 0x6d62, 0x6e76, 0x6a4f, + 0x706e, 0x637c, 0x535f, 0x5374, 0x6133, 0x6134, 0x7453, 0x5f46, + 0x6956, 0x5b2b, 0x7626, 0x6339, 0x6b45, 0x7429, 0x4d36, 0x5279, + 0x5a2d, 0x5263, 0x4f51, 0x4b5c, 0x4c7a, 0x4f5d, 0x6829, 0x633b, + 0x633a, 0x605a, 0x6e77, 0x5c33, 0x5375, 0x5726, 0x7635, 0x575b, + 0x6155, 0x546a, 0x5f23, 0x7d5f, 0x5077, 0x6d54, 0x4b2a, 0x645b, + 0x617b, 0x4b22, 0x5360, 0x643f, 0x7b40, 0x5a3e, 0x644d, 0x5639, + 0x6f40, 0x617c, 0x7639, 0x5f47, 0x6431, 0x5c67, 0x5c68, 0x7a56, + 0x5376, 0x715a, 0x7a72, 0x627d, 0x554f, 0x5078, 0x4d5f, 0x754b, + 0x6470, 0x4b2b, 0x5744, 0x627e, 0x5d5a, 0x5a2e, 0x4a6e, 0x5539, + 0x6321, 0x6863, 0x732b, 0x4f29, 0x5377, 0x5471, 0x4e64, 0x6872, + 0x6575, 0x672e, 0x563a, 0x5f6c, 0x6440, 0x6864, 0x5835, 0x645c, + 0x7439, 0x7136, 0x625e, 0x6135, 0x4d6f, 0x7127, 0x4e65, 0x4b5d, + 0x5963, 0x732c, 0x5079, 0x6c2b, 0x5e53, 0x7769, 0x7975, 0x615e, + 0x4b6e, 0x633c, 0x7856, 0x5b6e, 0x7d71, 0x7736, 0x745e, 0x726d, + 0x5b59, 0x7028, 0x617d, 0x5e54, 0x602c, 0x6d63, 0x5361, 0x5f48, + 0x5936, 0x7d2c, 0x6f53, 0x6441, 0x786b, 0x5b2c, 0x7c46, 0x582d, + 0x763a, 0x5b5f, 0x5353, 0x7847, 0x4a4e, 0x7841, 0x5234, 0x5c34, + 0x7a39, 0x4a4f, 0x7c33, 0x6a6a, 0x6a6b, 0x507a, 0x6d64, 0x5d67, + 0x5f49, 0x5f6d, 0x6e3c, 0x6f41, 0x4c52, 0x5d24, 0x5f4a, 0x5378, + 0x7128, 0x4d37, 0x6f54, 0x645d, 0x5f6e, 0x4b2c, 0x693c, 0x6a6c, + 0x5f4b, 0x793f, 0x562f, 0x5546, 0x4f2a, 0x4e29, 0x5678, 0x7137, + 0x6e78, 0x5959, 0x735f, 0x7848, 0x4e46, 0x5566, 0x7466, 0x6645, + 0x6f55, 0x4b6f, 0x7c5f, 0x5c27, 0x5667, 0x7849, 0x6352, 0x633d, + 0x4f61, 0x7040, 0x6c5a, 0x5d57, 0x7b70, 0x6c2c, 0x7029, 0x7a57, + 0x7b41, 0x5240, 0x6530, 0x6d65, 0x4b2d, 0x7930, 0x7725, 0x4b2e, + 0x5a2f, 0x5836, 0x5327, 0x7b32, 0x7d44, 0x6c2d, 0x7b21, 0x6569, + 0x696e, 0x7374, 0x7873, 0x7041, 0x5e2f, 0x7830, 0x7360, 0x672f, + 0x5b2d, 0x6635, 0x7928, 0x5d58, 0x6859, 0x6f56, 0x5362, 0x625f, + 0x7c60, 0x5748, 0x7d2d, 0x5f6f, 0x4c53, 0x5379, 0x5470, 0x5b47, + 0x5e55, 0x7074, 0x5550, 0x6559, 0x7c47, 0x5c56, 0x6260, 0x5a30, + 0x7323, 0x536c, 0x744b, 0x7d45, 0x637d, 0x7931, 0x507b, 0x6c5b, + 0x753c, 0x7224, 0x584e, 0x584f, 0x7577, 0x7661, 0x5237, 0x7b6c, + 0x5d48, 0x6468, 0x5241, 0x7857, 0x563b, 0x5e56, 0x773d, 0x6c2e, + 0x5061, 0x6075, 0x6a33, 0x4e56, 0x4c25, 0x6c76, 0x6261, 0x633e, + 0x7c48, 0x4d70, 0x7976, 0x5f70, 0x653f, 0x4e3f, 0x7c61, 0x6d30, + 0x7d51, 0x763b, 0x794f, 0x6b5a, 0x4a41, 0x5238, 0x4d71, 0x6353, + 0x7d66, 0x666d, 0x637a, 0x702a, 0x7950, 0x7c62, 0x7827, 0x6165, + 0x6e79, 0x6776, 0x6a6d, 0x7c34, 0x7542, 0x575c, 0x7075, 0x5d68, + 0x536d, 0x757c, 0x5a3f, 0x4c7b, 0x537a, 0x7424, 0x6f57, 0x5443, + 0x7b63, 0x7b6d, 0x602d, 0x6a6e, 0x7b33, 0x6442, 0x7667, 0x525d, + 0x5f4c, 0x7c49, 0x6529, 0x6076, 0x7633, 0x617e, 0x4b70, 0x6a6f, + 0x6a70, 0x5a40, 0x7834, 0x6b72, 0x6443, 0x6957, 0x6471, 0x4a6f, + 0x4e57, 0x7c4a, 0x7361, 0x4b44, 0x6365, 0x4b45, 0x6a34, 0x693d, + 0x5749, 0x6b5b, 0x6d31, 0x4c43, 0x773e, 0x7c4b, 0x7874, 0x5937, + 0x7353, 0x7354, 0x7764, 0x7751, 0x5837, 0x4e31, 0x4a42, 0x7b34, + 0x4b46, 0x7076, 0x5567, 0x6a50, 0x4c54, 0x4b2f, 0x742a, 0x692f, + 0x7543, 0x6958, 0x5d69, 0x7173, 0x557b, 0x5e3b, 0x747b, 0x7d73, + 0x7d72, 0x7726, 0x5d49, 0x5453, 0x4c28, 0x5a41, 0x4c55, 0x5964, + 0x7a4a, 0x6563, 0x533c, 0x4a70, 0x5044, 0x4a50, 0x7a2b, 0x6b6b, + 0x6778, 0x5965, 0x5157, 0x7324, 0x547b, 0x7c63, 0x7a58, 0x7355, + 0x4f2b, 0x6b73, 0x557c, 0x5354, 0x4d7c, 0x5966, 0x6279, 0x6221, + 0x6b54, 0x6077, 0x6432, 0x4c7c, 0x7b64, 0x742b, 0x503d, 0x4a71, + 0x6f38, 0x5740, 0x6e7a, 0x7d74, 0x5363, 0x7b42, 0x5568, 0x5b2e, + 0x6136, 0x7837, 0x603f, 0x7b43, 0x5d6a, 0x6222, 0x6e26, 0x7668, + 0x7675, 0x5d4a, 0x5062, 0x5d26, 0x5d6b, 0x6479, 0x632f, 0x507c, + 0x747c, 0x4c3c, 0x776a, 0x6564, 0x5f71, 0x7761, 0x7977, 0x6f39, + 0x7858, 0x7929, 0x7859, 0x6e3d, 0x5846, 0x6463, 0x754e, 0x5d59, + 0x5967, 0x5239, 0x5543, 0x5a65, 0x5a50, 0x5159, 0x4e58, 0x4b5e, + 0x742c, 0x5a7b, 0x7669, 0x6873, 0x4f2c, 0x7070, 0x747d, 0x5b48, + 0x4e40, 0x6354, 0x514f, 0x7175, 0x4d72, 0x4f6b, 0x4d38, 0x6326, + 0x515a, 0x7225, 0x7226, 0x644e, 0x537b, 0x7129, 0x7249, 0x6f58, + 0x6649, 0x5838, 0x7a73, 0x7335, 0x7824, 0x5173, 0x6648, 0x785a, + 0x5c69, 0x5e57, 0x4b5f, 0x4f6c, 0x745f, 0x5174, 0x523a, 0x5f72, + 0x6137, 0x6223, 0x537c, 0x6d66, 0x5b49, 0x647a, 0x4f5e, 0x4e50, + 0x5553, 0x7375, 0x772e, 0x6f48, 0x4d73, 0x754f, 0x6573, 0x7042, + 0x4a51, 0x6a71, 0x5026, 0x595a, 0x702b, 0x6b67, 0x6540, 0x7c35, + 0x6444, 0x4c29, 0x7d46, 0x6a35, 0x652a, 0x5f3a, 0x615f, 0x5a51, + 0x6138, 0x6874, 0x537d, 0x6224, 0x724a, 0x5a66, 0x7733, 0x7d4d, + 0x7336, 0x6e57, 0x7544, 0x5824, 0x7227, 0x5938, 0x5939, 0x6f49, + 0x564e, 0x774b, 0x5f2e, 0x6875, 0x5235, 0x5355, 0x744c, 0x5a7c, + 0x5968, 0x776b, 0x7549, 0x733c, 0x5a52, 0x5335, 0x6836, 0x564f, + 0x743a, 0x7749, 0x4c2a, 0x7043, 0x4c56, 0x5053, 0x533d, 0x5b7b, + 0x4b60, 0x5364, 0x7677, 0x553a, 0x734d, 0x4b61, 0x6b74, 0x742d, + 0x7c2a, 0x776c, 0x6876, 0x5a67, 0x774c, 0x6541, 0x606e, 0x557d, + 0x4e66, 0x7c2b, 0x553b, 0x7228, 0x6225, 0x4d39, 0x6a72, 0x4b47, + 0x4d74, 0x5b2f, 0x6f59, 0x4d3a, 0x7c79, 0x5f73, 0x4e67, 0x5a42, + 0x4f2d, 0x6779, 0x7828, 0x7362, 0x4a72, 0x5f24, 0x5444, 0x4c57, + 0x6542, 0x4d3b, 0x6f5a, 0x6e58, 0x5d27, 0x6226, 0x6040, 0x5630, + 0x784a, 0x7c7a, 0x597e, 0x5e30, 0x5d6c, 0x5a68, 0x5460, 0x5679, + 0x4d57, 0x5e58, 0x7278, 0x6456, 0x5045, 0x742e, 0x5d28, 0x6d45, + 0x7356, 0x5e59, 0x6366, 0x5328, 0x5b30, 0x655a, 0x633f, 0x5b31, + 0x5569, 0x6041, 0x6f5b, 0x7069, 0x5732, 0x507d, 0x5969, 0x507e, + 0x6c6d, 0x5329, 0x7229, 0x7044, 0x6262, 0x696f, 0x7951, 0x6959, + 0x685a, 0x5a43, 0x5a44, 0x5445, 0x677a, 0x4d60, 0x6330, 0x5b32, + 0x7b44, 0x7363, 0x5925, 0x7b67, 0x5d4b, 0x5054, 0x6636, 0x602e, + 0x7d5a, 0x5c35, 0x6078, 0x6731, 0x7570, 0x585c, 0x6d46, 0x6139, + 0x6340, 0x7940, 0x6970, 0x595b, 0x7364, 0x5c36, 0x6469, 0x7045, + 0x6341, 0x7c4c, 0x7c4d, 0x724b, 0x724c, 0x644f, 0x715b, 0x7a59, + 0x7138, 0x7d75, 0x6079, 0x677b, 0x7c37, 0x7c64, 0x7b45, 0x6367, + 0x5839, 0x7678, 0x5c45, 0x4c58, 0x602f, 0x7467, 0x6f5c, 0x4f7c, + 0x6f5d, 0x722a, 0x7d3e, 0x4a2c, 0x7d3b, 0x7d47, 0x6732, 0x6a51, + 0x5f74, 0x516c, 0x645e, 0x6543, 0x5926, 0x4d3c, 0x7365, 0x6d55, + 0x593a, 0x6d67, 0x7b35, 0x786c, 0x6067, 0x4c59, 0x5446, 0x6725, + 0x5575, 0x533e, 0x7c7b, 0x6472, 0x5f75, 0x6878, 0x786d, 0x4e47, + 0x7d76, 0x6858, 0x4d58, 0x6756, 0x4c5a, 0x4a63, 0x5f76, 0x7047, + 0x7046, 0x583a, 0x7174, 0x7470, 0x754c, 0x7c65, 0x6a45, 0x6a73, + 0x5d5b, 0x5c57, 0x5e7d, 0x7279, 0x5547, 0x5850, 0x7048, 0x5121, + 0x5122, 0x5954, 0x5668, 0x594a, 0x5a31, 0x5847, 0x5c62, 0x734e, + 0x7574, 0x7139, 0x5a53, 0x766a, 0x4f75, 0x7d2e, 0x4a52, 0x5f34, + 0x575d, 0x7a3a, 0x6e27, 0x753d, 0x7875, 0x6d68, 0x5461, 0x5123, + 0x6156, 0x7978, 0x5b4a, 0x4b79, 0x5454, 0x595c, 0x6e3e, 0x776d, + 0x526e, 0x6166, 0x7779, 0x5d6d, 0x685b, 0x5b33, 0x5177, 0x6030, + 0x5462, 0x7657, 0x5779, 0x585d, 0x4d7d, 0x722b, 0x4d3d, 0x7842, + 0x722c, 0x4a2d, 0x4a2e, 0x4f2e, 0x6342, 0x5c37, 0x5b5a, 0x593b, + 0x4a73, 0x7653, 0x6678, 0x6a75, 0x6a76, 0x7679, 0x4f2f, 0x4a53, + 0x4a2f, 0x5230, 0x713a, 0x5733, 0x6343, 0x737d, 0x5e5a, 0x5e5b, + 0x6f5e, 0x6263, 0x6e7b, 0x5f77, 0x574a, 0x4e68, 0x5b5b, 0x713b, + 0x6971, 0x7a37, 0x5046, 0x4c2b, 0x6e28, 0x4b7a, 0x7979, 0x4c7d, + 0x537e, 0x6450, 0x726e, 0x5455, 0x5f4d, 0x7c38, 0x5150, 0x724d, + 0x7752, 0x4a54, 0x5559, 0x585e, 0x4d59, 0x6e29, 0x763c, 0x4c5b, + 0x7049, 0x7c7c, 0x6849, 0x747e, 0x677c, 0x575e, 0x5e5c, 0x702c, + 0x4c7e, 0x4d61, 0x613a, 0x5b6f, 0x5a32, 0x5125, 0x5c38, 0x5876, + 0x5124, 0x4d62, 0x5c6a, 0x7077, 0x704a, 0x503e, 0x5d5c, 0x5456, + 0x5356, 0x6d50, 0x4d21, 0x5f35, 0x5f78, 0x5421, 0x4e32, 0x684a, + 0x6b75, 0x6355, 0x7550, 0x7521, 0x5927, 0x652b, 0x664b, 0x7571, + 0x6545, 0x7923, 0x605b, 0x766b, 0x4b71, 0x596a, 0x7522, 0x5751, + 0x5178, 0x6a78, 0x6a79, 0x5a33, 0x6f5f, 0x716f, 0x6576, 0x6e3f, + 0x6264, 0x503f, 0x7a2c, 0x7551, 0x6733, 0x693e, 0x724e, 0x5b34, + 0x7c4e, 0x5d6e, 0x6734, 0x5734, 0x7734, 0x4d3e, 0x5a69, 0x4f30, + 0x7759, 0x7366, 0x4e59, 0x4e2a, 0x4b48, 0x5027, 0x704b, 0x5047, + 0x6445, 0x5b60, 0x555a, 0x5727, 0x6e40, 0x7876, 0x7552, 0x6d69, + 0x593c, 0x6546, 0x7523, 0x5a54, 0x6227, 0x7b7c, 0x715c, 0x4a74, + 0x687a, 0x4e69, 0x6978, 0x6265, 0x5039, 0x5472, 0x5126, 0x5f4e, + 0x7c74, 0x532a, 0x4c2c, 0x6f60, 0x6565, 0x5055, 0x5b7c, 0x7c66, + 0x4b7e, 0x6d6a, 0x5e31, 0x7963, 0x5422, 0x4f76, 0x5650, 0x556a, + 0x716e, 0x7a4b, 0x6521, 0x5531, 0x4f6d, 0x6d6b, 0x5532, 0x553c, + 0x7d62, 0x732d, 0x7d5b, 0x6930, 0x5127, 0x7d63, 0x4e33, 0x7d64, + 0x7a4e, 0x4a30, 0x7727, 0x4f31, 0x6622, 0x7c36, 0x722d, 0x6f61, + 0x732e, 0x5c46, 0x596b, 0x6860, 0x6128, 0x5576, 0x4f7d, 0x5e5d, + 0x5951, 0x646a, 0x724f, 0x773f, 0x6266, 0x6228, 0x6356, 0x6d51, + 0x6979, 0x5631, 0x5e32, 0x6068, 0x532b, 0x6b5c, 0x5f2f, 0x4a43, + 0x6e7c, 0x7d43, 0x6b76, 0x4f32, 0x596c, 0x593d, 0x585f, 0x5438, + 0x6b3e, 0x5d6f, 0x5d70, 0x5d71, 0x5d72, 0x593e, 0x7b46, 0x4f33, + 0x6e7d, 0x642b, 0x5a45, 0x586c, 0x5128, 0x6229, 0x5e3c, 0x6735, + 0x5b70, 0x6f62, 0x7170, 0x4f34, 0x5b71, 0x6031, 0x5f25, 0x7952, + 0x677d, 0x6623, 0x7b71, 0x4b30, 0x722e, 0x4d67, 0x685c, 0x6757, + 0x7740, 0x5063, 0x5a21, 0x4c3d, 0x5129, 0x5d4c, 0x637e, 0x512a, + 0x682a, 0x6a36, 0x797a, 0x664c, 0x7658, 0x5447, 0x594b, 0x5952, + 0x534b, 0x5877, 0x5a29, 0x7578, 0x5e5e, 0x722f, 0x7829, 0x5848, + 0x6e41, 0x7941, 0x5d73, 0x6a7a, 0x763d, 0x613b, 0x4d3f, 0x7454, + 0x664d, 0x7c4f, 0x7b22, 0x605c, 0x743b, 0x5a55, 0x7932, 0x7b72, + 0x5b76, 0x5e5f, 0x5b72, 0x785c, 0x776e, 0x6b68, 0x527a, 0x713c, + 0x7a5a, 0x5a6a, 0x5a46, 0x7741, 0x6736, 0x6547, 0x562c, 0x5c47, + 0x6129, 0x622a, 0x5526, 0x5457, 0x7250, 0x6a7b, 0x605d, 0x7b73, + 0x713d, 0x6267, 0x7d57, 0x4e48, 0x6a37, 0x7c40, 0x7d67, 0x776f, + 0x5735, 0x6f3a, 0x715d, 0x5e33, 0x684b, 0x785d, 0x7b47, 0x5548, + 0x575f, 0x5d29, 0x6931, 0x7a2d, 0x7659, 0x7a74, 0x782a, 0x666e, + 0x4c5c, 0x613c, 0x606f, 0x693f, 0x7c7d, 0x664e, 0x6157, 0x664f, + 0x7471, 0x6473, 0x647b, 0x7964, 0x6f63, 0x4f6e, 0x763e, 0x6032, + 0x7c7e, 0x512b, 0x577a, 0x7b48, 0x6257, 0x5423, 0x7078, 0x5728, + 0x6167, 0x533f, 0x6f64, 0x5745, 0x6b62, 0x7c67, 0x6422, 0x6268, + 0x6650, 0x7b68, 0x7468, 0x6574, 0x743c, 0x7455, 0x5f36, 0x7c39, + 0x6e42, 0x4a75, 0x6f65, 0x4b62, 0x5424, 0x5e60, 0x5a7d, 0x6446, + 0x683e, 0x605e, 0x7634, 0x6a52, 0x797b, 0x6042, 0x4a64, 0x6737, + 0x6a7d, 0x595d, 0x5a34, 0x6e2a, 0x7b69, 0x5b4b, 0x5a35, 0x713e, + 0x532c, 0x7b49, 0x5f4f, 0x5340, 0x6357, 0x6f66, 0x7c50, 0x6940, + 0x7553, 0x6c5c, 0x7737, 0x6a38, 0x5179, 0x5c48, 0x6a39, 0x715e, + 0x5736, 0x4f35, 0x5928, 0x6c6e, 0x5d2a, 0x4d22, 0x682e, 0x613d, + 0x7251, 0x6941, 0x527c, 0x5b35, 0x7367, 0x587e, 0x7c51, 0x6d32, + 0x742f, 0x7b23, 0x7c41, 0x6e2b, 0x5425, 0x7472, 0x6e59, 0x7b4a, + 0x4d63, 0x583b, 0x655b, 0x7877, 0x7654, 0x5729, 0x4b49, 0x6651, + 0x704c, 0x582e, 0x7953, 0x557e, 0x583c, 0x7230, 0x622b, 0x7368, + 0x6f42, 0x6d6c, 0x6738, 0x5a7e, 0x4c3e, 0x727c, 0x5a6b, 0x6258, + 0x6d56, 0x5651, 0x6033, 0x7c52, 0x6b48, 0x5341, 0x704d, 0x4f77, + 0x6d52, 0x5458, 0x5c49, 0x5771, 0x5f3b, 0x7325, 0x744d, 0x713f, + 0x7831, 0x697a, 0x7b4b, 0x4a55, 0x7954, 0x774a, 0x5648, 0x7c68, + 0x733d, 0x6e7e, 0x677e, 0x5342, 0x5336, 0x4c2d, 0x767a, 0x5632, + 0x5258, 0x6758, 0x6325, 0x6739, 0x702d, 0x7b4c, 0x6b21, 0x5426, + 0x7b4d, 0x553d, 0x715f, 0x767b, 0x5e34, 0x556b, 0x6548, 0x7b24, + 0x5439, 0x5e61, 0x6423, 0x5737, 0x786e, 0x5e35, 0x5652, 0x7955, + 0x673a, 0x6b55, 0x5577, 0x6f67, 0x613e, 0x7a2e, 0x5669, 0x566e, + 0x673b, 0x6c4b, 0x5533, 0x4e34, 0x7b25, 0x616e, 0x7728, 0x7b4e, + 0x583d, 0x7b7d, 0x7c69, 0x4f36, 0x6d47, 0x6e2c, 0x4c5d, 0x7627, + 0x667a, 0x7524, 0x7d5c, 0x6d33, 0x4e49, 0x6f68, 0x613f, 0x7a5b, + 0x4b63, 0x7729, 0x7b26, 0x5c39, 0x7140, 0x6d48, 0x6f43, 0x562d, + 0x7d4e, 0x6821, 0x7b74, 0x5527, 0x7176, 0x6653, 0x4c5e, 0x7832, + 0x5c6b, 0x7d36, 0x656a, 0x7160, 0x5b4c, 0x5d4d, 0x5448, 0x596d, + 0x7525, 0x667b, 0x6654, 0x7d48, 0x5621, 0x7d3f, 0x7c53, 0x6f21, + 0x673c, 0x516e, 0x6655, 0x6972, 0x5f30, 0x5860, 0x7c3a, 0x7d2f, + 0x704e, 0x5b61, 0x6549, 0x6d34, 0x6043, 0x6358, 0x697b, 0x6a28, + 0x7d37, 0x7b27, 0x6942, 0x7d77, 0x6259, 0x5c6c, 0x6822, 0x6670, + 0x7d78, 0x7d79, 0x763f, 0x6727, 0x6657, 0x5473, 0x5449, 0x567a, + 0x5772, 0x6140, 0x5b62, 0x6658, 0x673d, 0x704f, 0x733e, 0x622c, + 0x7537, 0x6070, 0x7d38, 0x6368, 0x5427, 0x687c, 0x7a52, 0x786f, + 0x5653, 0x5534, 0x7050, 0x7770, 0x6e33, 0x6a3a, 0x6a53, 0x6d49, + 0x5d2b, 0x652c, 0x7d21, 0x5f50, 0x6c33, 0x5f51, 0x6d6d, 0x7838, + 0x777a, 0x782b, 0x7460, 0x543a, 0x6433, 0x695a, 0x5e36, 0x593f, + 0x5940, 0x566f, 0x594c, 0x5a2a, 0x5f65, 0x7765, 0x4c32, 0x5f79, + 0x5760, 0x543b, 0x7d7a, 0x4c33, 0x5b73, 0x5f52, 0x4e4a, 0x6e5a, + 0x6464, 0x7b4f, 0x4f37, 0x6e43, 0x4e6a, 0x622d, 0x5761, 0x7a75, + 0x5549, 0x782c, 0x6759, 0x7369, 0x586d, 0x6344, 0x7071, 0x6865, + 0x607a, 0x6e44, 0x595e, 0x6b22, 0x6b23, 0x7c42, 0x6a3b, 0x682b, + 0x5e62, 0x6d6f, 0x6823, 0x4f71, 0x543c, 0x7c6a, 0x673e, 0x7c72, + 0x5634, 0x622e, 0x5337, 0x7a4c, 0x7a5c, 0x6d35, 0x6163, 0x682c, + 0x685d, 0x6f69, 0x743d, 0x4f38, 0x695b, 0x512c, 0x5a47, 0x6b49, + 0x684c, 0x5e37, 0x563c, 0x5365, 0x7a5d, 0x5a56, 0x4a31, 0x5a48, + 0x5f26, 0x7933, 0x7252, 0x4a44, 0x4e4b, 0x4d75, 0x7d30, 0x5528, + 0x7141, 0x6269, 0x5c4a, 0x6c34, 0x7a40, 0x7b28, 0x5028, 0x5a6c, + 0x596e, 0x607b, 0x6f6a, 0x7a5e, 0x6044, 0x4f39, 0x554a, 0x5762, + 0x622f, 0x5738, 0x684d, 0x765a, 0x6f22, 0x625a, 0x767c, 0x7b50, + 0x512d, 0x4d64, 0x512e, 0x5c6d, 0x684e, 0x7079, 0x4e35, 0x667c, + 0x577b, 0x5056, 0x5d75, 0x7771, 0x767d, 0x5b77, 0x7b6a, 0x695c, + 0x5941, 0x7572, 0x6045, 0x6a54, 0x7942, 0x6a3c, 0x5245, 0x7b51, + 0x6740, 0x6b25, 0x5f7a, 0x6322, 0x5739, 0x6943, 0x687d, 0x682f, + 0x7253, 0x7b29, 0x5825, 0x554b, 0x5048, 0x512f, 0x5763, 0x6046, + 0x5622, 0x6d70, 0x5773, 0x7c54, 0x5a57, 0x4c5f, 0x7254, 0x5130, + 0x4c60, 0x5b7d, 0x733f, 0x7051, 0x7c3b, 0x6230, 0x6625, 0x625b, + 0x5f5e, 0x6047, 0x726f, 0x4c61, 0x566a, 0x6742, 0x4e36, 0x7340, + 0x4d7e, 0x7b52, 0x7878, 0x777b, 0x683f, 0x6837, 0x6d36, 0x5c3a, + 0x4c34, 0x7177, 0x6838, 0x4a76, 0x6424, 0x7456, 0x5f66, 0x5f27, + 0x5f67, 0x6141, 0x6944, 0x5c4b, 0x6945, 0x6f23, 0x6b26, 0x4b23, + 0x6369, 0x517b, 0x6f24, 0x6f6b, 0x5034, 0x4d23, 0x6866, 0x6f25, + 0x534c, 0x5a6d, 0x573a, 0x7255, 0x7565, 0x596f, 0x7934, 0x5554, + 0x7d4f, 0x5b63, 0x7161, 0x6c36, 0x7b7e, 0x5357, 0x5131, 0x4b31, + 0x5132, 0x4b32, 0x7142, 0x7461, 0x7935, 0x6143, 0x6142, 0x6b77, + 0x5f28, 0x4b4a, 0x6639, 0x785e, 0x792a, 0x4a77, 0x6d37, 0x5338, + 0x7256, 0x5459, 0x6e45, 0x7270, 0x4a32, 0x5c3b, 0x7178, 0x6c37, + 0x654a, 0x7640, 0x7d5d, 0x5463, 0x4c62, 0x7754, 0x5765, 0x5343, + 0x5826, 0x7641, 0x5d76, 0x4d40, 0x655c, 0x654b, 0x6144, 0x6830, + 0x7430, 0x736a, 0x5a6e, 0x573b, 0x6231, 0x572a, 0x567b, 0x645f, + 0x4a56, 0x6b28, 0x5b7e, 0x7642, 0x6f3b, 0x547d, 0x6048, 0x6839, + 0x6f26, 0x4d24, 0x5474, 0x5b21, 0x5b5c, 0x5b5d, 0x6e5c, 0x4b4b, + 0x7c55, 0x4e6b, 0x4d41, 0x7b53, 0x792b, 0x7554, 0x5929, 0x695d, + 0x5b4d, 0x5d4e, 0x6743, 0x6c4c, 0x796c, 0x4b4c, 0x607c, 0x5428, + 0x6d53, 0x586f, 0x7257, 0x4a78, 0x5a6f, 0x5654, 0x594d, 0x586e, + 0x7241, 0x5f53, 0x5a70, 0x626a, 0x607d, 0x5878, 0x772f, 0x5a36, + 0x4a57, 0x7258, 0x5879, 0x7a5f, 0x4f6f, 0x5942, 0x7052, 0x6451, + 0x7337, 0x7a60, 0x6f6c, 0x6232, 0x543d, 0x594e, 0x7462, 0x5429, + 0x4d42, 0x675a, 0x7259, 0x592a, 0x583e, 0x5c2d, 0x626b, 0x567c, + 0x4a79, 0x545a, 0x7457, 0x4c21, 0x4f3a, 0x7538, 0x5943, 0x5068, + 0x6345, 0x6b78, 0x7231, 0x4f3b, 0x532d, 0x6861, 0x4e6c, 0x6034, + 0x5e63, 0x5d77, 0x7232, 0x7376, 0x765b, 0x577e, 0x785f, 0x7772, + 0x5029, 0x665a, 0x7526, 0x573c, 0x4c63, 0x665b, 0x5d5d, 0x5133, + 0x6f6d, 0x565e, 0x6474, 0x616f, 0x5d78, 0x684f, 0x4a65, 0x5c21, + 0x6035, 0x7c2c, 0x7c2d, 0x5827, 0x6d38, 0x5b36, 0x5670, 0x732f, + 0x4d25, 0x5a71, 0x5828, 0x4c64, 0x5134, 0x4a58, 0x5a72, 0x7527, + 0x7528, 0x6626, 0x556c, 0x5578, 0x5a73, 0x6346, 0x5e64, 0x5e65, + 0x5135, 0x5136, 0x5137, 0x7233, 0x695e, 0x7053, 0x7234, 0x7054, + 0x4b64, 0x7b54, 0x7566, 0x636a, 0x5e66, 0x5f54, 0x7879, 0x702e, + 0x5138, 0x565f, 0x5057, 0x7c21, 0x6f6e, 0x5c58, 0x695f, 0x655d, + 0x7d7b, 0x6049, 0x5649, 0x542a, 0x654c, 0x6960, 0x5058, 0x7c22, + 0x543e, 0x6233, 0x5e67, 0x5c3c, 0x5236, 0x7555, 0x4e21, 0x7529, + 0x5d79, 0x5d7a, 0x7055, 0x765f, 0x725a, 0x646b, 0x7271, 0x6c39, + 0x7d7c, 0x612a, 0x4a59, 0x6f6f, 0x752a, 0x6c79, 0x782d, 0x7242, + 0x7643, 0x5752, 0x7922, 0x7056, 0x707a, 0x7660, 0x6973, 0x7243, + 0x542b, 0x4a33, 0x4d26, 0x4d43, 0x4d5a, 0x594f, 0x7644, 0x6e5d, + 0x6744, 0x6234, 0x5f62, 0x675b, 0x6831, 0x7c2e, 0x654d, 0x7a6b, + 0x4f3c, 0x4f62, 0x4d76, 0x6f70, 0x743e, 0x544d, 0x7338, 0x6921, + 0x7272, 0x736b, 0x7057, 0x4f57, 0x4f5f, 0x6840, 0x6841, 0x4f63, + 0x6922, 0x502a, 0x7341, 0x502b, 0x5464, 0x6f3c, 0x5821, 0x595f, + 0x7357, 0x5c3d, 0x4c65, 0x6d71, 0x7162, 0x545b, 0x6235, 0x4a66, + 0x532e, 0x4c66, 0x7153, 0x7567, 0x4a5a, 0x7b6e, 0x6145, 0x5f69, + 0x6e5e, 0x7742, 0x5822, 0x5d2c, 0x702f, 0x563d, 0x612b, 0x7936, + 0x5475, 0x5049, 0x6f27, 0x626c, 0x5b6a, 0x4e4c, 0x7568, 0x7755, + 0x534d, 0x737e, 0x5035, 0x607e, 0x5f7b, 0x665d, 0x6824, 0x4b4d, + 0x6f28, 0x6e34, 0x5a58, 0x5139, 0x5f29, 0x7330, 0x4c44, 0x4e37, + 0x6f29, 0x5f55, 0x6d57, 0x6e46, 0x6f3d, 0x7c56, 0x5b74, 0x6f2a, + 0x7839, 0x7569, 0x6359, 0x6146, 0x543f, 0x5e68, 0x706a, 0x7342, + 0x532f, 0x4a5b, 0x7c57, 0x6d58, 0x6147, 0x7458, 0x5633, 0x5d2d, + 0x553e, 0x7143, 0x6e5f, 0x566b, 0x7459, 0x5766, 0x5a37, 0x5d7b, + 0x5d4f, 0x5823, 0x5a59, 0x7058, 0x6f44, 0x6158, 0x7154, 0x6d72, + 0x555b, 0x555c, 0x7344, 0x4b57, 0x6236, 0x6f71, 0x7b55, 0x5358, + 0x5d50, 0x7059, 0x4b33, 0x555d, 0x4d27, 0x502c, 0x513a, 0x7144, + 0x6533, 0x7b75, 0x6961, 0x7d60, 0x7c3c, 0x5a22, 0x5a23, 0x5221, + 0x526f, 0x626d, 0x5e69, 0x4e5c, 0x7235, 0x5064, 0x5d51, 0x6148, + 0x5b37, 0x5f63, 0x6d39, 0x7145, 0x734f, 0x572b, 0x612c, 0x636b, + 0x6e47, 0x6149, 0x4a7a, 0x707b, 0x7a61, 0x705a, 0x4c67, 0x5a74, + 0x4c3f, 0x4e6d, 0x5529, 0x7a62, 0x5065, 0x6b56, 0x6c5f, 0x5f7c, + 0x7756, 0x5e6a, 0x4b34, 0x6f3e, 0x4c35, 0x4f3d, 0x6f72, 0x6237, + 0x4c68, 0x707c, 0x5660, 0x7146, 0x6238, 0x6b2b, 0x4b35, 0x5851, + 0x744e, 0x7377, 0x5746, 0x513b, 0x772a, 0x6d4a, 0x5753, 0x587a, + 0x7645, 0x514c, 0x5d7c, 0x5f7d, 0x7965, 0x604a, 0x727d, 0x5330, + 0x7473, 0x5a49, 0x665e, 0x783a, 0x6850, 0x587b, 0x6a55, 0x5623, + 0x7646, 0x725b, 0x647c, 0x6832, 0x5a5a, 0x725c, 0x7b56, 0x6932, + 0x6e2d, 0x7a63, 0x5c6e, 0x756a, 0x6660, 0x707d, 0x572c, 0x7545, + 0x6e60, 0x5b65, 0x5d5e, 0x5970, 0x6923, 0x7179, 0x7244, 0x604b, + 0x6924, 0x6239, 0x6331, 0x7c6b, 0x4d28, 0x4c36, 0x705b, 0x663a, + 0x4d29, 0x7343, 0x6159, 0x6f2b, 0x6745, 0x6069, 0x7345, 0x5440, + 0x553f, 0x5d2e, 0x797c, 0x4c40, 0x6522, 0x4e38, 0x5852, 0x7956, + 0x712a, 0x4e51, 0x7647, 0x5b6b, 0x5f7e, 0x5861, 0x7773, 0x5767, + 0x547e, 0x513c, 0x654f, 0x4b36, 0x5a38, 0x4d44, 0x563e, 0x623a, + 0x4f58, 0x604c, 0x6b79, 0x7d7d, 0x5768, 0x4b58, 0x6962, 0x683a, + 0x6347, 0x6c4d, 0x6c4e, 0x563f, 0x6327, 0x5f56, 0x7d68, 0x6e61, + 0x7628, 0x5d7d, 0x783b, 0x6851, 0x7957, 0x4e6e, 0x6c4f, 0x6925, + 0x5655, 0x4d45, 0x6d3a, 0x513d, 0x4f3e, 0x6c3b, 0x5231, 0x4c69, + 0x5944, 0x697c, 0x513e, 0x6c3c, 0x652d, 0x7730, 0x4c6a, 0x5344, + 0x5640, 0x567d, 0x6121, 0x5e3d, 0x7629, 0x5a24, 0x5624, 0x7546, + 0x6122, 0x6946, 0x7245, 0x7469, 0x566c, 0x6b53, 0x6c3d, 0x625c, + 0x5e6b, 0x705c, 0x6b3f, 0x574e, 0x513f, 0x752b, 0x797d, 0x4a5c, + 0x4d46, 0x7236, 0x5d7e, 0x4c37, 0x5b38, 0x5069, 0x4e5d, 0x6b40, + 0x7d22, 0x784b, 0x6a56, 0x7130, 0x5b4e, 0x7743, 0x5b4f, 0x4b24, + 0x7860, 0x7b57, 0x6b4a, 0x6021, 0x4e4d, 0x545c, 0x7d58, 0x5276, + 0x7237, 0x7a76, 0x762a, 0x7a77, 0x5866, 0x7431, 0x6852, 0x4a45, + 0x4c6b, 0x626e, 0x623b, 0x772d, 0x7861, 0x736c, 0x5e21, 0x647d, + 0x636c, 0x5d2f, 0x5d30, 0x4b37, 0x6853, 0x6123, 0x5260, 0x707e, + 0x6926, 0x4b72, 0x6d73, 0x5c59, 0x604d, 0x775a, 0x5b39, 0x4c2e, + 0x5a5b, 0x4d47, 0x5d31, 0x582f, 0x6323, 0x4e6f, 0x7273, 0x7833, + 0x604e, 0x757d, 0x6b6c, 0x5345, 0x7c6c, 0x525b, 0x546b, 0x5e22, + 0x6566, 0x7030, 0x5544, 0x6d74, 0x636d, 0x6842, 0x6d75, 0x577c, + 0x6d3b, 0x762b, 0x7238, 0x7648, 0x5366, 0x725d, 0x4f3f, 0x6b2c, + 0x4f40, 0x6628, 0x7d69, 0x4f41, 0x605f, 0x5e6c, 0x6022, 0x743f, + 0x626f, 0x5971, 0x7147, 0x4b38, 0x797e, 0x5b3a, 0x5a75, 0x766c, + 0x5a5c, 0x7a64, 0x604f, 0x5d32, 0x6629, 0x6f73, 0x736d, 0x6b7a, + 0x7966, 0x4a5d, 0x555e, 0x4a5e, 0x5f64, 0x667d, 0x752c, 0x6475, + 0x6963, 0x6d4b, 0x4f64, 0x5853, 0x5d33, 0x546c, 0x7239, 0x5f37, + 0x4b4e, 0x7b58, 0x5059, 0x5d52, 0x7774, 0x675c, 0x6425, 0x7c23, + 0x5b3b, 0x723a, 0x697d, 0x504a, 0x7556, 0x5945, 0x6434, 0x6d27, + 0x6a3d, 0x667e, 0x7744, 0x752d, 0x5960, 0x4a34, 0x7862, 0x4f42, + 0x6c3e, 0x6534, 0x4d48, 0x6e48, 0x6748, 0x4d49, 0x7937, 0x7168, + 0x5972, 0x5b75, 0x4a35, 0x5946, 0x5849, 0x592b, 0x6d3c, 0x5854, + 0x5c5a, 0x623c, 0x7c6d, 0x6c60, 0x527e, 0x6947, 0x662a, 0x6270, + 0x7a3b, 0x752e, 0x7b2a, 0x6c7b, 0x6c3f, 0x7c58, 0x5465, 0x7943, + 0x6e62, 0x5769, 0x6d76, 0x5e6d, 0x4c6c, 0x636e, 0x6854, 0x7a78, + 0x5d34, 0x6435, 0x5830, 0x5855, 0x746a, 0x4e39, 0x5661, 0x4f52, + 0x5036, 0x4e22, 0x736e, 0x7378, 0x5c4c, 0x504b, 0x7c24, 0x4d4a, + 0x5754, 0x5e23, 0x6460, 0x6e49, 0x625d, 0x757e, 0x542c, 0x5551, + 0x5870, 0x7843, 0x6a57, 0x7557, 0x583f, 0x7d40, 0x6b2d, 0x552a, + 0x6728, 0x6e4a, 0x4a67, 0x7863, 0x545d, 0x6a58, 0x7b59, 0x6d77, + 0x6535, 0x502d, 0x7171, 0x623d, 0x6348, 0x5955, 0x5f2a, 0x5b3c, + 0x7864, 0x717a, 0x6536, 0x736f, 0x7b5a, 0x6160, 0x592c, 0x756b, + 0x6036, 0x6948, 0x4b4f, 0x6349, 0x5e6e, 0x623e, 0x5c6f, 0x5625, + 0x6271, 0x567e, 0x5921, 0x5840, 0x5c5b, 0x6d3d, 0x5f38, 0x6a25, + 0x572d, 0x7379, 0x6d78, 0x7547, 0x614a, 0x6b63, 0x725e, 0x784c, + 0x6a59, 0x5346, 0x5b66, 0x752f, 0x4e70, 0x697e, 0x7b36, 0x6272, + 0x4f72, 0x7739, 0x5973, 0x614b, 0x5a5d, 0x5a39, 0x6b7b, 0x4b39, + 0x6d79, 0x6060, 0x7440, 0x7d3c, 0x5f31, 0x636f, 0x6023, 0x7d39, + 0x7031, 0x4d4b, 0x6d3e, 0x5540, 0x6370, 0x6d7a, 0x6964, 0x556d, + 0x675d, 0x5476, 0x6537, 0x5b67, 0x623f, 0x6e4b, 0x5774, 0x705d, + 0x4e2b, 0x675e, 0x5656, 0x614c, 0x6833, 0x656e, 0x5c22, 0x6050, + 0x5535, 0x5521, 0x7b5b, 0x794b, 0x4b73, 0x7425, 0x7a48, 0x5657, + 0x6965, 0x7b5c, 0x7d50, 0x7b76, 0x5a25, 0x5b3d, 0x6c62, 0x4d77, + 0x705e, 0x7649, 0x5e6f, 0x5331, 0x7c6e, 0x6843, 0x7148, 0x4e71, + 0x796d, 0x7274, 0x6436, 0x7539, 0x5c70, 0x6371, 0x6825, 0x723b, + 0x5e24, 0x5a4c, 0x4a69, 0x635a, 0x7c59, 0x6a5a, 0x7944, 0x6324, + 0x7b5d, 0x6f4a, 0x6844, 0x554c, 0x6b57, 0x592d, 0x7b2b, 0x5359, + 0x5522, 0x765e, 0x5a76, 0x6051, 0x6928, 0x7579, 0x7a2f, 0x6b7c, + 0x606a, 0x6332, 0x5545, 0x7163, 0x556e, 0x4d4c, 0x6d59, 0x5841, + 0x7a6c, 0x716b, 0x7a3c, 0x6662, 0x7a65, 0x627a, 0x4a36, 0x6437, + 0x6a5b, 0x757a, 0x7b2c, 0x4f43, 0x6b7d, 0x787a, 0x5f39, 0x6171, + 0x5224, 0x757b, 0x505a, 0x505b, 0x6a3e, 0x5931, 0x4a37, 0x5367, + 0x7865, 0x5332, 0x6240, 0x725f, 0x4d65, 0x792c, 0x4d4d, 0x6e2e, + 0x562e, 0x576a, 0x6760, 0x6b2e, 0x4f59, 0x5c4d, 0x6d7b, 0x5e70, + 0x576b, 0x5e25, 0x5f57, 0x5b50, 0x5b51, 0x5523, 0x7032, 0x5c5c, + 0x4a68, 0x7866, 0x5c4e, 0x6a5c, 0x5b52, 0x6933, 0x775b, 0x6328, + 0x572e, 0x6061, 0x4b3a, 0x6551, 0x505c, 0x5541, 0x584a, 0x6329, + 0x6024, 0x6929, 0x5347, 0x5c5d, 0x782e, 0x4c38, 0x502e, 0x5872, + 0x634a, 0x4c2f, 0x542d, 0x7651, 0x504c, 0x4a46, 0x5542, 0x4e3a, + 0x4a47, 0x7a30, 0x5f58, 0x753a, 0x656b, 0x6f74, 0x5d35, 0x4d2a, + 0x6372, 0x7b77, 0x7750, 0x7d3a, 0x7d61, 0x767e, 0x5140, 0x6845, + 0x6438, 0x6168, 0x4c41, 0x526d, 0x5b3e, 0x6062, 0x7a49, 0x614d, + 0x4a38, 0x7260, 0x7149, 0x5e71, 0x705f, 0x7844, 0x6e4c, 0x5e72, + 0x6749, 0x6273, 0x6761, 0x634b, 0x634c, 0x4f78, 0x6f2c, 0x7d7e, + 0x7c25, 0x7a31, 0x5f59, 0x6052, 0x745a, 0x714a, 0x4e23, 0x723c, + 0x6c63, 0x6025, 0x772b, 0x6b2f, 0x655e, 0x6124, 0x4d2b, 0x5974, + 0x6826, 0x4d4e, 0x6169, 0x7c6f, 0x6063, 0x6241, 0x4e24, 0x5e26, + 0x6b7e, 0x6b5d, 0x7060, 0x745b, 0x6274, 0x5348, 0x746b, 0x6e35, + 0x7558, 0x555f, 0x5665, 0x6b30, 0x7463, 0x634d, 0x7474, 0x7a32, + 0x6f75, 0x4a5f, 0x6b31, 0x6d3f, 0x7d49, 0x6426, 0x7924, 0x7033, + 0x656c, 0x5167, 0x5947, 0x6457, 0x6a5d, 0x5477, 0x5a3a, 0x5a4d, + 0x794c, 0x615a, 0x5b3f, 0x4c45, 0x6c50, 0x4b3b, 0x5e73, 0x692a, + 0x5948, 0x6e63, 0x573d, 0x4f44, 0x504d, 0x7c26, 0x717b, 0x7d52, + 0x5141, 0x635b, 0x5349, 0x5c4f, 0x4c6d, 0x5e27, 0x663b, 0x6c21, + 0x4c39, 0x7b5e, 0x6762, 0x5441, 0x5c28, 0x6242, 0x7358, 0x6553, + 0x7359, 0x7346, 0x4d5b, 0x4d2c, 0x7c43, 0x5467, 0x5142, 0x7925, + 0x6855, 0x634e, 0x544a, 0x5f5a, 0x7b5f, 0x6763, 0x787b, 0x634f, + 0x7530, 0x5867, 0x5949, 0x782f, 0x6f76, 0x5d36, 0x6e2f, 0x4d78, + 0x5e38, 0x7c27, 0x777c, 0x7731, 0x4e3b, 0x7421, 0x6e4d, 0x612e, + 0x6c43, 0x4f7e, 0x783f, 0x5862, 0x5368, 0x5e28, 0x7464, 0x6c42, + 0x5975, 0x7945, 0x5d53, 0x5671, 0x6c7c, 0x7c70, 0x6d40, 0x4a39, + 0x6e64, 0x7261, 0x5e39, 0x5672, 0x5e74, 0x5f5b, 0x5b53, 0x7a67, + 0x5863, 0x7441, 0x5d37, 0x7275, 0x542e, 0x5673, 0x5d38, 0x4f45, + 0x5f5f, 0x723e, 0x7621, 0x6b4b, 0x717c, 0x7347, 0x606b, 0x6d7c, + 0x615b, 0x6e65, 0x5e75, 0x7a53, 0x714b, 0x502f, 0x5d39, 0x5143, + 0x7531, 0x6a46, 0x7061, 0x762c, 0x7559, 0x706b, 0x5d3a, 0x723f, + 0x7745, 0x5b22, 0x7276, 0x4a3a, 0x7775, 0x4b65, 0x6e66, 0x6053, + 0x4e25, 0x5658, 0x542f, 0x6949, 0x534e, 0x7442, 0x4b66, 0x7121, + 0x6b32, 0x7122, 0x6b33, 0x7034, 0x4b74, 0x5430, 0x7332, 0x7b37, + 0x756c, 0x6e67, 0x7432, 0x756d, 0x4f73, 0x7062, 0x6e4e, 0x714c, + 0x6538, 0x5775, 0x6373, 0x4f65, 0x4f46, 0x7333, 0x6458, 0x4f79, + 0x4f5a, 0x7a4d, 0x6663, 0x7262, 0x756e, 0x4a3b, 0x635c, 0x4e72, + 0x5659, 0x6e30, 0x7465, 0x5842, 0x5c50, 0x4c6e, 0x5560, 0x764a, + 0x7d4a, 0x5856, 0x744f, 0x5626, 0x5c3e, 0x5b54, 0x5747, 0x727e, + 0x714d, 0x6243, 0x5c5e, 0x5c5f, 0x6f2d, 0x662b, 0x795d, 0x6a3f, + 0x6f2e, 0x7450, 0x4e73, 0x662c, 0x4e5e, 0x5579, 0x6374, 0x4d50, + 0x5538, 0x777d, 0x5c29, 0x5e76, 0x5c2a, 0x7263, 0x6934, 0x525c, + 0x6966, 0x6376, 0x674a, 0x504e, 0x5a77, 0x4a3c, 0x6e68, 0x5a5e, + 0x7277, 0x627b, 0x4c26, 0x5a3b, 0x6e69, 0x755a, 0x775c, 0x616a, + 0x4e41, 0x5431, 0x7d31, 0x663d, 0x7b2d, 0x7867, 0x614e, 0x7762, + 0x756f, 0x4f47, 0x5432, 0x4c6f, 0x5468, 0x6e4f, 0x7757, 0x6026, + 0x5641, 0x615c, 0x7063, 0x7164, 0x5c71, 0x5627, 0x7475, 0x714e, + 0x7264, 0x5030, 0x6c6f, 0x793a, 0x6b35, 0x546d, 0x6244, 0x6967, + 0x6b34, 0x6a21, 0x783c, 0x4e26, 0x7946, 0x7c5a, 0x5433, 0x5339, + 0x6a5e, 0x692b, 0x6161, 0x534f, 0x7476, 0x6a40, 0x614f, 0x4c3a, + 0x6e6a, 0x7064, 0x7334, 0x546e, 0x7240, 0x7165, 0x7443, 0x6054, + 0x6b36, 0x5721, 0x4b68, 0x792d, 0x692d, 0x5864, 0x7a33, 0x6245, + 0x7c3d, 0x6c44, 0x5831, 0x5c2b, 0x5524, 0x6b69, 0x683b, 0x5857, + 0x7b2e, 0x5161, 0x5b40, 0x753e, 0x5e77, 0x4a7b, 0x7746, 0x4f48, + 0x6150, 0x6e50, 0x6974, 0x4e74, 0x554d, 0x4f5b, 0x5d3b, 0x4e2c, + 0x6968, 0x5434, 0x6447, 0x755b, 0x7a41, 0x5e29, 0x5478, 0x6f77, + 0x5333, 0x6b37, 0x6f78, 0x755c, 0x6d4c, 0x5b55, 0x714f, 0x7150, + 0x7532, 0x592e, 0x552c, 0x6246, 0x7d23, 0x7b65, 0x5f2b, 0x6275, + 0x762d, 0x7533, 0x7035, 0x6125, 0x755d, 0x6c22, 0x6d7d, 0x7534, + 0x7b38, 0x5b23, 0x564a, 0x4b59, 0x6554, 0x737a, 0x6b38, 0x6037, + 0x576c, 0x716c, 0x652f, 0x5561, 0x576d, 0x5151, 0x6172, 0x6f79, + 0x5d3c, 0x765c, 0x7065, 0x7444, 0x6969, 0x737b, 0x546f, 0x4c22, + 0x777e, 0x5f3c, 0x6b4d, 0x5037, 0x5642, 0x682d, 0x6f2f, 0x4b25, + 0x4b69, 0x7a68, 0x4c46, 0x6667, 0x6a47, 0x5b24, 0x4f49, 0x627c, + 0x6f7a, 0x6b5e, 0x7548, 0x545e, 0x6055, 0x6f30, 0x6247, 0x592f, + 0x7967, 0x6765, 0x4f4a, 0x6151, 0x6248, 0x6f7b, 0x7a79, 0x5c72, + 0x6027, 0x7868, 0x4b6a, 0x4b3c, 0x5662, 0x755e, 0x755f, 0x6e36, + 0x6276, 0x534a, 0x6f7c, 0x5144, 0x6f31, 0x5145, 0x505e, 0x5961, + 0x6038, 0x4d51, 0x7339, 0x674c, 0x5628, 0x4e27, 0x5435, 0x6448, + 0x5334, 0x6b39, 0x4b75, 0x765d, 0x7123, 0x4c47, 0x694a, 0x6170, + 0x7560, 0x7b2f, 0x4b51, 0x7b60, 0x7265, 0x6c70, 0x706c, 0x6e6b, + 0x694b, 0x4c70, 0x572f, 0x7321, 0x7c75, 0x7124, 0x6056, 0x6f32, + 0x7451, 0x7721, 0x7151, 0x4a7c, 0x4a7d, 0x4e4e, 0x7348, 0x733a, + 0x6d7e, 0x5a26, 0x606c, 0x784d, 0x4b52, 0x6b4e, 0x7958, 0x7959, + 0x4a60, 0x5a4a, 0x4b26, 0x4a48, 0x796e, 0x5b6c, 0x5031, 0x556f, + 0x6673, 0x6722, 0x6459, 0x6461, 0x7c44, 0x796f, 0x4f74, 0x7766, + 0x4e3c, 0x7445, 0x5c23, 0x5d3d, 0x7446, 0x7821, 0x6856, 0x5b41, + 0x7066, 0x6439, 0x766d, 0x792e, 0x5d3e, 0x5730, 0x5868, 0x4b3d, + 0x795a, 0x784e, 0x7970, 0x606d, 0x6333, 0x7433, 0x6a42, 0x7266, + 0x7036, 0x5b56, 0x6b64, 0x7267, 0x5755, 0x5436, 0x7968, 0x5741, + 0x6555, 0x696a, 0x574c, 0x5369, 0x6249, 0x7c5b, 0x4d2d, 0x4c30, + 0x6a22, 0x6476, 0x5040, 0x7037, 0x6e21, 0x5776, 0x624a, 0x624b, + 0x7a4f, 0x6b5f, 0x564b, 0x7434, 0x6d4d, 0x6452, 0x6a29, 0x643a, + 0x7322, 0x4d52, 0x764b, 0x7166, 0x6d41, 0x683c, 0x6e51, 0x7067, + 0x624c, 0x642a, 0x7561, 0x6d5a, 0x576e, 0x5171, 0x696b, 0x696c, + 0x6064, 0x5a27, 0x5d54, 0x6a23, 0x5643, 0x5674, 0x5a5f, 0x6f33, + 0x624d, 0x6f7d, 0x7268, 0x6f45, 0x6767, 0x577d, 0x674e, 0x5f5c, + 0x7947, 0x5976, 0x5f2c, 0x565a, 0x5c24, 0x7038, 0x557a, 0x6477, + 0x5644, 0x746c, 0x6f7e, 0x7021, 0x5e2a, 0x5a3c, 0x587c, 0x7a54, + 0x6c65, 0x7c28, 0x6c66, 0x584b, 0x7b39, 0x6453, 0x4d79, 0x4f53, + 0x4a6a, 0x4f54, 0x783d, 0x7447, 0x6a5f, 0x795b, 0x5437, 0x6b65, + 0x6152, 0x6a24, 0x7a42, 0x7b61, 0x7a6d, 0x7022, 0x4c71, 0x7a23, + 0x6277, 0x624e, 0x6975, 0x616b, 0x6768, 0x6857, 0x5a78, 0x544b, + 0x7776, 0x5645, 0x5469, 0x7a7a, 0x4c72, 0x775d, 0x5e3a, 0x4e28, + 0x7039, 0x647e, 0x6449, 0x6454, 0x6a43, 0x6f34, 0x573e, 0x7b62, + 0x4d53, 0x6f35, 0x7a69, 0x7926, 0x5f3d, 0x7747, 0x787d, 0x787c, + 0x5e2b, 0x5b68, 0x635d, 0x6162, 0x5146, 0x7650, 0x6b66, 0x5a79, + 0x6c47, 0x5e78, 0x7869, 0x635e, 0x4e75, 0x7a43, 0x6557, 0x6c48, + 0x7349, 0x643b, 0x662e, 0x6f36, 0x5c3f, 0x4e3d, 0x5843, 0x504f, + 0x4f7a, 0x734a, 0x6057, 0x5147, 0x692e, 0x683d, 0x7a44, 0x624f, + 0x7a45, 0x7938, 0x5c60, 0x7b30, 0x5829, 0x655f, 0x7927, 0x766e, + 0x764c, 0x6278, 0x6c71, 0x5a60, 0x7152, 0x524c, 0x4f4b, 0x4a3d, + 0x5d3f, 0x766f, 0x5e79, 0x7a34, 0x552d, 0x7167, 0x5e3e, 0x5c40, + 0x5148, 0x5149, 0x783e, 0x4b76, 0x5479, 0x7562, 0x6153, 0x5869, + 0x787e, 0x4f4c, 0x7d24, 0x4e76, 0x7a50, 0x4c73, 0x663e, 0x762e, + 0x5570, 0x514a, 0x7c3e, 0x5571, 0x4d69, 0x7a35, 0x6250, 0x7477, + 0x4d54, 0x6723, 0x5b25, 0x6251, 0x5722, 0x7763, 0x6a26, 0x5021, + 0x4e5a, 0x7b6b, 0x5b26, 0x5b5e, 0x5865, 0x6a60, 0x582a, 0x6560, + 0x565b, 0x6f46, 0x786a, 0x6455, 0x4e77, 0x6058, 0x576f, 0x746d, + 0x4d66, 0x4c74, 0x7563, 0x644a, 0x5c61, 0x7948, 0x7c3f, 0x6827, + 0x5844, 0x4b3e, 0x5c2e, 0x5777, 0x7068, 0x5d40, 0x4f4d, 0x5c73, + 0x5930, 0x6669, 0x643c, 0x6a44, 0x646c, 0x6465, 0x7b78, 0x4c3b, + 0x643d, 0x4d5c, 0x5977, 0x5d5f, 0x6d4e, 0x5950, 0x6523, 0x794d, + 0x4d2e, 0x4f4e, 0x762f, 0x7d53, 0x6b6d, 0x565c, 0x6524, 0x5536, + 0x565d, 0x7969, 0x6724, 0x5663, 0x514b, 0x5664, 0x5572, 0x5e7a, + 0x5778, 0x586a, 0x4f55, 0x587d, 0x582b, 0x7d4b, 0x7c5c, 0x6028, + 0x5573, 0x7d59, 0x4c23, 0x5979, 0x536a, 0x7575, 0x6f47, 0x535a, + 0x5a3d, 0x6828, 0x5c2f, 0x7023, 0x4d55, 0x6029, 0x5e2c, 0x703a, + 0x6e31, 0x6e32, 0x764d, 0x6e52, 0x5646, 0x6065, 0x733b, 0x6561, + 0x644b, 0x5723, 0x5b42, 0x4a7e, 0x4f4f, 0x3021, 0x3022, 0x3023, + 0x3024, 0x3025, 0x3026, 0x3027, 0x3028, 0x3029, 0x302a, 0x302b, + 0x302c, 0x302d, 0x302e, 0x302f, 0x3030, 0x3031, 0x3032, 0x3033, + 0x3034, 0x3035, 0x3036, 0x3037, 0x3038, 0x3039, 0x303a, 0x303b, + 0x303c, 0x303d, 0x303e, 0x303f, 0x3040, 0x3041, 0x3042, 0x3043, + 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, 0x304a, 0x304b, + 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, 0x3051, 0x3052, 0x3053, + 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059, 0x305a, 0x305b, + 0x305c, 0x305d, 0x305e, 0x305f, 0x3060, 0x3061, 0x3062, 0x3063, + 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 0x306a, 0x306b, + 0x306c, 0x306d, 0x306e, 0x306f, 0x3070, 0x3071, 0x3072, 0x3073, + 0x3074, 0x3075, 0x3076, 0x3077, 0x3078, 0x3079, 0x307a, 0x307b, + 0x307c, 0x307d, 0x307e, 0x3121, 0x3122, 0x3123, 0x3124, 0x3125, + 0x3126, 0x3127, 0x3128, 0x3129, 0x312a, 0x312b, 0x312c, 0x312d, + 0x312e, 0x312f, 0x3130, 0x3131, 0x3132, 0x3133, 0x3134, 0x3135, + 0x3136, 0x3137, 0x3138, 0x3139, 0x313a, 0x313b, 0x313c, 0x313d, + 0x313e, 0x313f, 0x3140, 0x3141, 0x3142, 0x3143, 0x3144, 0x3145, + 0x3146, 0x3147, 0x3148, 0x3149, 0x314a, 0x314b, 0x314c, 0x314d, + 0x314e, 0x314f, 0x3150, 0x3151, 0x3152, 0x3153, 0x3154, 0x3155, + 0x3156, 0x3157, 0x3158, 0x3159, 0x315a, 0x315b, 0x315c, 0x315d, + 0x315e, 0x315f, 0x3160, 0x3161, 0x3162, 0x3163, 0x3164, 0x3165, + 0x3166, 0x3167, 0x3168, 0x3169, 0x316a, 0x316b, 0x316c, 0x316d, + 0x316e, 0x316f, 0x3170, 0x3171, 0x3172, 0x3173, 0x3174, 0x3175, + 0x3176, 0x3177, 0x3178, 0x3179, 0x317a, 0x317b, 0x317c, 0x317d, + 0x317e, 0x3221, 0x3222, 0x3223, 0x3224, 0x3225, 0x3226, 0x3227, + 0x3228, 0x3229, 0x322a, 0x322b, 0x322c, 0x322d, 0x322e, 0x322f, + 0x3230, 0x3231, 0x3232, 0x3233, 0x3234, 0x3235, 0x3236, 0x3237, + 0x3238, 0x3239, 0x323a, 0x323b, 0x323c, 0x323d, 0x323e, 0x323f, + 0x3240, 0x3241, 0x3242, 0x3243, 0x3244, 0x3245, 0x3246, 0x3247, + 0x3248, 0x3249, 0x324a, 0x324b, 0x324c, 0x324d, 0x324e, 0x324f, + 0x3250, 0x3251, 0x3252, 0x3253, 0x3254, 0x3255, 0x3256, 0x3257, + 0x3258, 0x3259, 0x325a, 0x325b, 0x325c, 0x325d, 0x325e, 0x325f, + 0x3260, 0x3261, 0x3262, 0x3263, 0x3264, 0x3265, 0x3266, 0x3267, + 0x3268, 0x3269, 0x326a, 0x326b, 0x326c, 0x326d, 0x326e, 0x326f, + 0x3270, 0x3271, 0x3272, 0x3273, 0x3274, 0x3275, 0x3276, 0x3277, + 0x3278, 0x3279, 0x327a, 0x327b, 0x327c, 0x327d, 0x327e, 0x3321, + 0x3322, 0x3323, 0x3324, 0x3325, 0x3326, 0x3327, 0x3328, 0x3329, + 0x332a, 0x332b, 0x332c, 0x332d, 0x332e, 0x332f, 0x3330, 0x3331, + 0x3332, 0x3333, 0x3334, 0x3335, 0x3336, 0x3337, 0x3338, 0x3339, + 0x333a, 0x333b, 0x333c, 0x333d, 0x333e, 0x333f, 0x3340, 0x3341, + 0x3342, 0x3343, 0x3344, 0x3345, 0x3346, 0x3347, 0x3348, 0x3349, + 0x334a, 0x334b, 0x334c, 0x334d, 0x334e, 0x334f, 0x3350, 0x3351, + 0x3352, 0x3353, 0x3354, 0x3355, 0x3356, 0x3357, 0x3358, 0x3359, + 0x335a, 0x335b, 0x335c, 0x335d, 0x335e, 0x335f, 0x3360, 0x3361, + 0x3362, 0x3363, 0x3364, 0x3365, 0x3366, 0x3367, 0x3368, 0x3369, + 0x336a, 0x336b, 0x336c, 0x336d, 0x336e, 0x336f, 0x3370, 0x3371, + 0x3372, 0x3373, 0x3374, 0x3375, 0x3376, 0x3377, 0x3378, 0x3379, + 0x337a, 0x337b, 0x337c, 0x337d, 0x337e, 0x3421, 0x3422, 0x3423, + 0x3424, 0x3425, 0x3426, 0x3427, 0x3428, 0x3429, 0x342a, 0x342b, + 0x342c, 0x342d, 0x342e, 0x342f, 0x3430, 0x3431, 0x3432, 0x3433, + 0x3434, 0x3435, 0x3436, 0x3437, 0x3438, 0x3439, 0x343a, 0x343b, + 0x343c, 0x343d, 0x343e, 0x343f, 0x3440, 0x3441, 0x3442, 0x3443, + 0x3444, 0x3445, 0x3446, 0x3447, 0x3448, 0x3449, 0x344a, 0x344b, + 0x344c, 0x344d, 0x344e, 0x344f, 0x3450, 0x3451, 0x3452, 0x3453, + 0x3454, 0x3455, 0x3456, 0x3457, 0x3458, 0x3459, 0x345a, 0x345b, + 0x345c, 0x345d, 0x345e, 0x345f, 0x3460, 0x3461, 0x3462, 0x3463, + 0x3464, 0x3465, 0x3466, 0x3467, 0x3468, 0x3469, 0x346a, 0x346b, + 0x346c, 0x346d, 0x346e, 0x346f, 0x3470, 0x3471, 0x3472, 0x3473, + 0x3474, 0x3475, 0x3476, 0x3477, 0x3478, 0x3479, 0x347a, 0x347b, + 0x347c, 0x347d, 0x347e, 0x3521, 0x3522, 0x3523, 0x3524, 0x3525, + 0x3526, 0x3527, 0x3528, 0x3529, 0x352a, 0x352b, 0x352c, 0x352d, + 0x352e, 0x352f, 0x3530, 0x3531, 0x3532, 0x3533, 0x3534, 0x3535, + 0x3536, 0x3537, 0x3538, 0x3539, 0x353a, 0x353b, 0x353c, 0x353d, + 0x353e, 0x353f, 0x3540, 0x3541, 0x3542, 0x3543, 0x3544, 0x3545, + 0x3546, 0x3547, 0x3548, 0x3549, 0x354a, 0x354b, 0x354c, 0x354d, + 0x354e, 0x354f, 0x3550, 0x3551, 0x3552, 0x3553, 0x3554, 0x3555, + 0x3556, 0x3557, 0x3558, 0x3559, 0x355a, 0x355b, 0x355c, 0x355d, + 0x355e, 0x355f, 0x3560, 0x3561, 0x3562, 0x3563, 0x3564, 0x3565, + 0x3566, 0x3567, 0x3568, 0x3569, 0x356a, 0x356b, 0x356c, 0x356d, + 0x356e, 0x356f, 0x3570, 0x3571, 0x3572, 0x3573, 0x3574, 0x3575, + 0x3576, 0x3577, 0x3578, 0x3579, 0x357a, 0x357b, 0x357c, 0x357d, + 0x357e, 0x3621, 0x3622, 0x3623, 0x3624, 0x3625, 0x3626, 0x3627, + 0x3628, 0x3629, 0x362a, 0x362b, 0x362c, 0x362d, 0x362e, 0x362f, + 0x3630, 0x3631, 0x3632, 0x3633, 0x3634, 0x3635, 0x3636, 0x3637, + 0x3638, 0x3639, 0x363a, 0x363b, 0x363c, 0x363d, 0x363e, 0x363f, + 0x3640, 0x3641, 0x3642, 0x3643, 0x3644, 0x3645, 0x3646, 0x3647, + 0x3648, 0x3649, 0x364a, 0x364b, 0x364c, 0x364d, 0x364e, 0x364f, + 0x3650, 0x3651, 0x3652, 0x3653, 0x3654, 0x3655, 0x3656, 0x3657, + 0x3658, 0x3659, 0x365a, 0x365b, 0x365c, 0x365d, 0x365e, 0x365f, + 0x3660, 0x3661, 0x3662, 0x3663, 0x3664, 0x3665, 0x3666, 0x3667, + 0x3668, 0x3669, 0x366a, 0x366b, 0x366c, 0x366d, 0x366e, 0x366f, + 0x3670, 0x3671, 0x3672, 0x3673, 0x3674, 0x3675, 0x3676, 0x3677, + 0x3678, 0x3679, 0x367a, 0x367b, 0x367c, 0x367d, 0x367e, 0x3721, + 0x3722, 0x3723, 0x3724, 0x3725, 0x3726, 0x3727, 0x3728, 0x3729, + 0x372a, 0x372b, 0x372c, 0x372d, 0x372e, 0x372f, 0x3730, 0x3731, + 0x3732, 0x3733, 0x3734, 0x3735, 0x3736, 0x3737, 0x3738, 0x3739, + 0x373a, 0x373b, 0x373c, 0x373d, 0x373e, 0x373f, 0x3740, 0x3741, + 0x3742, 0x3743, 0x3744, 0x3745, 0x3746, 0x3747, 0x3748, 0x3749, + 0x374a, 0x374b, 0x374c, 0x374d, 0x374e, 0x374f, 0x3750, 0x3751, + 0x3752, 0x3753, 0x3754, 0x3755, 0x3756, 0x3757, 0x3758, 0x3759, + 0x375a, 0x375b, 0x375c, 0x375d, 0x375e, 0x375f, 0x3760, 0x3761, + 0x3762, 0x3763, 0x3764, 0x3765, 0x3766, 0x3767, 0x3768, 0x3769, + 0x376a, 0x376b, 0x376c, 0x376d, 0x376e, 0x376f, 0x3770, 0x3771, + 0x3772, 0x3773, 0x3774, 0x3775, 0x3776, 0x3777, 0x3778, 0x3779, + 0x377a, 0x377b, 0x377c, 0x377d, 0x377e, 0x3821, 0x3822, 0x3823, + 0x3824, 0x3825, 0x3826, 0x3827, 0x3828, 0x3829, 0x382a, 0x382b, + 0x382c, 0x382d, 0x382e, 0x382f, 0x3830, 0x3831, 0x3832, 0x3833, + 0x3834, 0x3835, 0x3836, 0x3837, 0x3838, 0x3839, 0x383a, 0x383b, + 0x383c, 0x383d, 0x383e, 0x383f, 0x3840, 0x3841, 0x3842, 0x3843, + 0x3844, 0x3845, 0x3846, 0x3847, 0x3848, 0x3849, 0x384a, 0x384b, + 0x384c, 0x384d, 0x384e, 0x384f, 0x3850, 0x3851, 0x3852, 0x3853, + 0x3854, 0x3855, 0x3856, 0x3857, 0x3858, 0x3859, 0x385a, 0x385b, + 0x385c, 0x385d, 0x385e, 0x385f, 0x3860, 0x3861, 0x3862, 0x3863, + 0x3864, 0x3865, 0x3866, 0x3867, 0x3868, 0x3869, 0x386a, 0x386b, + 0x386c, 0x386d, 0x386e, 0x386f, 0x3870, 0x3871, 0x3872, 0x3873, + 0x3874, 0x3875, 0x3876, 0x3877, 0x3878, 0x3879, 0x387a, 0x387b, + 0x387c, 0x387d, 0x387e, 0x3921, 0x3922, 0x3923, 0x3924, 0x3925, + 0x3926, 0x3927, 0x3928, 0x3929, 0x392a, 0x392b, 0x392c, 0x392d, + 0x392e, 0x392f, 0x3930, 0x3931, 0x3932, 0x3933, 0x3934, 0x3935, + 0x3936, 0x3937, 0x3938, 0x3939, 0x393a, 0x393b, 0x393c, 0x393d, + 0x393e, 0x393f, 0x3940, 0x3941, 0x3942, 0x3943, 0x3944, 0x3945, + 0x3946, 0x3947, 0x3948, 0x3949, 0x394a, 0x394b, 0x394c, 0x394d, + 0x394e, 0x394f, 0x3950, 0x3951, 0x3952, 0x3953, 0x3954, 0x3955, + 0x3956, 0x3957, 0x3958, 0x3959, 0x395a, 0x395b, 0x395c, 0x395d, + 0x395e, 0x395f, 0x3960, 0x3961, 0x3962, 0x3963, 0x3964, 0x3965, + 0x3966, 0x3967, 0x3968, 0x3969, 0x396a, 0x396b, 0x396c, 0x396d, + 0x396e, 0x396f, 0x3970, 0x3971, 0x3972, 0x3973, 0x3974, 0x3975, + 0x3976, 0x3977, 0x3978, 0x3979, 0x397a, 0x397b, 0x397c, 0x397d, + 0x397e, 0x3a21, 0x3a22, 0x3a23, 0x3a24, 0x3a25, 0x3a26, 0x3a27, + 0x3a28, 0x3a29, 0x3a2a, 0x3a2b, 0x3a2c, 0x3a2d, 0x3a2e, 0x3a2f, + 0x3a30, 0x3a31, 0x3a32, 0x3a33, 0x3a34, 0x3a35, 0x3a36, 0x3a37, + 0x3a38, 0x3a39, 0x3a3a, 0x3a3b, 0x3a3c, 0x3a3d, 0x3a3e, 0x3a3f, + 0x3a40, 0x3a41, 0x3a42, 0x3a43, 0x3a44, 0x3a45, 0x3a46, 0x3a47, + 0x3a48, 0x3a49, 0x3a4a, 0x3a4b, 0x3a4c, 0x3a4d, 0x3a4e, 0x3a4f, + 0x3a50, 0x3a51, 0x3a52, 0x3a53, 0x3a54, 0x3a55, 0x3a56, 0x3a57, + 0x3a58, 0x3a59, 0x3a5a, 0x3a5b, 0x3a5c, 0x3a5d, 0x3a5e, 0x3a5f, + 0x3a60, 0x3a61, 0x3a62, 0x3a63, 0x3a64, 0x3a65, 0x3a66, 0x3a67, + 0x3a68, 0x3a69, 0x3a6a, 0x3a6b, 0x3a6c, 0x3a6d, 0x3a6e, 0x3a6f, + 0x3a70, 0x3a71, 0x3a72, 0x3a73, 0x3a74, 0x3a75, 0x3a76, 0x3a77, + 0x3a78, 0x3a79, 0x3a7a, 0x3a7b, 0x3a7c, 0x3a7d, 0x3a7e, 0x3b21, + 0x3b22, 0x3b23, 0x3b24, 0x3b25, 0x3b26, 0x3b27, 0x3b28, 0x3b29, + 0x3b2a, 0x3b2b, 0x3b2c, 0x3b2d, 0x3b2e, 0x3b2f, 0x3b30, 0x3b31, + 0x3b32, 0x3b33, 0x3b34, 0x3b35, 0x3b36, 0x3b37, 0x3b38, 0x3b39, + 0x3b3a, 0x3b3b, 0x3b3c, 0x3b3d, 0x3b3e, 0x3b3f, 0x3b40, 0x3b41, + 0x3b42, 0x3b43, 0x3b44, 0x3b45, 0x3b46, 0x3b47, 0x3b48, 0x3b49, + 0x3b4a, 0x3b4b, 0x3b4c, 0x3b4d, 0x3b4e, 0x3b4f, 0x3b50, 0x3b51, + 0x3b52, 0x3b53, 0x3b54, 0x3b55, 0x3b56, 0x3b57, 0x3b58, 0x3b59, + 0x3b5a, 0x3b5b, 0x3b5c, 0x3b5d, 0x3b5e, 0x3b5f, 0x3b60, 0x3b61, + 0x3b62, 0x3b63, 0x3b64, 0x3b65, 0x3b66, 0x3b67, 0x3b68, 0x3b69, + 0x3b6a, 0x3b6b, 0x3b6c, 0x3b6d, 0x3b6e, 0x3b6f, 0x3b70, 0x3b71, + 0x3b72, 0x3b73, 0x3b74, 0x3b75, 0x3b76, 0x3b77, 0x3b78, 0x3b79, + 0x3b7a, 0x3b7b, 0x3b7c, 0x3b7d, 0x3b7e, 0x3c21, 0x3c22, 0x3c23, + 0x3c24, 0x3c25, 0x3c26, 0x3c27, 0x3c28, 0x3c29, 0x3c2a, 0x3c2b, + 0x3c2c, 0x3c2d, 0x3c2e, 0x3c2f, 0x3c30, 0x3c31, 0x3c32, 0x3c33, + 0x3c34, 0x3c35, 0x3c36, 0x3c37, 0x3c38, 0x3c39, 0x3c3a, 0x3c3b, + 0x3c3c, 0x3c3d, 0x3c3e, 0x3c3f, 0x3c40, 0x3c41, 0x3c42, 0x3c43, + 0x3c44, 0x3c45, 0x3c46, 0x3c47, 0x3c48, 0x3c49, 0x3c4a, 0x3c4b, + 0x3c4c, 0x3c4d, 0x3c4e, 0x3c4f, 0x3c50, 0x3c51, 0x3c52, 0x3c53, + 0x3c54, 0x3c55, 0x3c56, 0x3c57, 0x3c58, 0x3c59, 0x3c5a, 0x3c5b, + 0x3c5c, 0x3c5d, 0x3c5e, 0x3c5f, 0x3c60, 0x3c61, 0x3c62, 0x3c63, + 0x3c64, 0x3c65, 0x3c66, 0x3c67, 0x3c68, 0x3c69, 0x3c6a, 0x3c6b, + 0x3c6c, 0x3c6d, 0x3c6e, 0x3c6f, 0x3c70, 0x3c71, 0x3c72, 0x3c73, + 0x3c74, 0x3c75, 0x3c76, 0x3c77, 0x3c78, 0x3c79, 0x3c7a, 0x3c7b, + 0x3c7c, 0x3c7d, 0x3c7e, 0x3d21, 0x3d22, 0x3d23, 0x3d24, 0x3d25, + 0x3d26, 0x3d27, 0x3d28, 0x3d29, 0x3d2a, 0x3d2b, 0x3d2c, 0x3d2d, + 0x3d2e, 0x3d2f, 0x3d30, 0x3d31, 0x3d32, 0x3d33, 0x3d34, 0x3d35, + 0x3d36, 0x3d37, 0x3d38, 0x3d39, 0x3d3a, 0x3d3b, 0x3d3c, 0x3d3d, + 0x3d3e, 0x3d3f, 0x3d40, 0x3d41, 0x3d42, 0x3d43, 0x3d44, 0x3d45, + 0x3d46, 0x3d47, 0x3d48, 0x3d49, 0x3d4a, 0x3d4b, 0x3d4c, 0x3d4d, + 0x3d4e, 0x3d4f, 0x3d50, 0x3d51, 0x3d52, 0x3d53, 0x3d54, 0x3d55, + 0x3d56, 0x3d57, 0x3d58, 0x3d59, 0x3d5a, 0x3d5b, 0x3d5c, 0x3d5d, + 0x3d5e, 0x3d5f, 0x3d60, 0x3d61, 0x3d62, 0x3d63, 0x3d64, 0x3d65, + 0x3d66, 0x3d67, 0x3d68, 0x3d69, 0x3d6a, 0x3d6b, 0x3d6c, 0x3d6d, + 0x3d6e, 0x3d6f, 0x3d70, 0x3d71, 0x3d72, 0x3d73, 0x3d74, 0x3d75, + 0x3d76, 0x3d77, 0x3d78, 0x3d79, 0x3d7a, 0x3d7b, 0x3d7c, 0x3d7d, + 0x3d7e, 0x3e21, 0x3e22, 0x3e23, 0x3e24, 0x3e25, 0x3e26, 0x3e27, + 0x3e28, 0x3e29, 0x3e2a, 0x3e2b, 0x3e2c, 0x3e2d, 0x3e2e, 0x3e2f, + 0x3e30, 0x3e31, 0x3e32, 0x3e33, 0x3e34, 0x3e35, 0x3e36, 0x3e37, + 0x3e38, 0x3e39, 0x3e3a, 0x3e3b, 0x3e3c, 0x3e3d, 0x3e3e, 0x3e3f, + 0x3e40, 0x3e41, 0x3e42, 0x3e43, 0x3e44, 0x3e45, 0x3e46, 0x3e47, + 0x3e48, 0x3e49, 0x3e4a, 0x3e4b, 0x3e4c, 0x3e4d, 0x3e4e, 0x3e4f, + 0x3e50, 0x3e51, 0x3e52, 0x3e53, 0x3e54, 0x3e55, 0x3e56, 0x3e57, + 0x3e58, 0x3e59, 0x3e5a, 0x3e5b, 0x3e5c, 0x3e5d, 0x3e5e, 0x3e5f, + 0x3e60, 0x3e61, 0x3e62, 0x3e63, 0x3e64, 0x3e65, 0x3e66, 0x3e67, + 0x3e68, 0x3e69, 0x3e6a, 0x3e6b, 0x3e6c, 0x3e6d, 0x3e6e, 0x3e6f, + 0x3e70, 0x3e71, 0x3e72, 0x3e73, 0x3e74, 0x3e75, 0x3e76, 0x3e77, + 0x3e78, 0x3e79, 0x3e7a, 0x3e7b, 0x3e7c, 0x3e7d, 0x3e7e, 0x3f21, + 0x3f22, 0x3f23, 0x3f24, 0x3f25, 0x3f26, 0x3f27, 0x3f28, 0x3f29, + 0x3f2a, 0x3f2b, 0x3f2c, 0x3f2d, 0x3f2e, 0x3f2f, 0x3f30, 0x3f31, + 0x3f32, 0x3f33, 0x3f34, 0x3f35, 0x3f36, 0x3f37, 0x3f38, 0x3f39, + 0x3f3a, 0x3f3b, 0x3f3c, 0x3f3d, 0x3f3e, 0x3f3f, 0x3f40, 0x3f41, + 0x3f42, 0x3f43, 0x3f44, 0x3f45, 0x3f46, 0x3f47, 0x3f48, 0x3f49, + 0x3f4a, 0x3f4b, 0x3f4c, 0x3f4d, 0x3f4e, 0x3f4f, 0x3f50, 0x3f51, + 0x3f52, 0x3f53, 0x3f54, 0x3f55, 0x3f56, 0x3f57, 0x3f58, 0x3f59, + 0x3f5a, 0x3f5b, 0x3f5c, 0x3f5d, 0x3f5e, 0x3f5f, 0x3f60, 0x3f61, + 0x3f62, 0x3f63, 0x3f64, 0x3f65, 0x3f66, 0x3f67, 0x3f68, 0x3f69, + 0x3f6a, 0x3f6b, 0x3f6c, 0x3f6d, 0x3f6e, 0x3f6f, 0x3f70, 0x3f71, + 0x3f72, 0x3f73, 0x3f74, 0x3f75, 0x3f76, 0x3f77, 0x3f78, 0x3f79, + 0x3f7a, 0x3f7b, 0x3f7c, 0x3f7d, 0x3f7e, 0x4021, 0x4022, 0x4023, + 0x4024, 0x4025, 0x4026, 0x4027, 0x4028, 0x4029, 0x402a, 0x402b, + 0x402c, 0x402d, 0x402e, 0x402f, 0x4030, 0x4031, 0x4032, 0x4033, + 0x4034, 0x4035, 0x4036, 0x4037, 0x4038, 0x4039, 0x403a, 0x403b, + 0x403c, 0x403d, 0x403e, 0x403f, 0x4040, 0x4041, 0x4042, 0x4043, + 0x4044, 0x4045, 0x4046, 0x4047, 0x4048, 0x4049, 0x404a, 0x404b, + 0x404c, 0x404d, 0x404e, 0x404f, 0x4050, 0x4051, 0x4052, 0x4053, + 0x4054, 0x4055, 0x4056, 0x4057, 0x4058, 0x4059, 0x405a, 0x405b, + 0x405c, 0x405d, 0x405e, 0x405f, 0x4060, 0x4061, 0x4062, 0x4063, + 0x4064, 0x4065, 0x4066, 0x4067, 0x4068, 0x4069, 0x406a, 0x406b, + 0x406c, 0x406d, 0x406e, 0x406f, 0x4070, 0x4071, 0x4072, 0x4073, + 0x4074, 0x4075, 0x4076, 0x4077, 0x4078, 0x4079, 0x407a, 0x407b, + 0x407c, 0x407d, 0x407e, 0x4121, 0x4122, 0x4123, 0x4124, 0x4125, + 0x4126, 0x4127, 0x4128, 0x4129, 0x412a, 0x412b, 0x412c, 0x412d, + 0x412e, 0x412f, 0x4130, 0x4131, 0x4132, 0x4133, 0x4134, 0x4135, + 0x4136, 0x4137, 0x4138, 0x4139, 0x413a, 0x413b, 0x413c, 0x413d, + 0x413e, 0x413f, 0x4140, 0x4141, 0x4142, 0x4143, 0x4144, 0x4145, + 0x4146, 0x4147, 0x4148, 0x4149, 0x414a, 0x414b, 0x414c, 0x414d, + 0x414e, 0x414f, 0x4150, 0x4151, 0x4152, 0x4153, 0x4154, 0x4155, + 0x4156, 0x4157, 0x4158, 0x4159, 0x415a, 0x415b, 0x415c, 0x415d, + 0x415e, 0x415f, 0x4160, 0x4161, 0x4162, 0x4163, 0x4164, 0x4165, + 0x4166, 0x4167, 0x4168, 0x4169, 0x416a, 0x416b, 0x416c, 0x416d, + 0x416e, 0x416f, 0x4170, 0x4171, 0x4172, 0x4173, 0x4174, 0x4175, + 0x4176, 0x4177, 0x4178, 0x4179, 0x417a, 0x417b, 0x417c, 0x417d, + 0x417e, 0x4221, 0x4222, 0x4223, 0x4224, 0x4225, 0x4226, 0x4227, + 0x4228, 0x4229, 0x422a, 0x422b, 0x422c, 0x422d, 0x422e, 0x422f, + 0x4230, 0x4231, 0x4232, 0x4233, 0x4234, 0x4235, 0x4236, 0x4237, + 0x4238, 0x4239, 0x423a, 0x423b, 0x423c, 0x423d, 0x423e, 0x423f, + 0x4240, 0x4241, 0x4242, 0x4243, 0x4244, 0x4245, 0x4246, 0x4247, + 0x4248, 0x4249, 0x424a, 0x424b, 0x424c, 0x424d, 0x424e, 0x424f, + 0x4250, 0x4251, 0x4252, 0x4253, 0x4254, 0x4255, 0x4256, 0x4257, + 0x4258, 0x4259, 0x425a, 0x425b, 0x425c, 0x425d, 0x425e, 0x425f, + 0x4260, 0x4261, 0x4262, 0x4263, 0x4264, 0x4265, 0x4266, 0x4267, + 0x4268, 0x4269, 0x426a, 0x426b, 0x426c, 0x426d, 0x426e, 0x426f, + 0x4270, 0x4271, 0x4272, 0x4273, 0x4274, 0x4275, 0x4276, 0x4277, + 0x4278, 0x4279, 0x427a, 0x427b, 0x427c, 0x427d, 0x427e, 0x4321, + 0x4322, 0x4323, 0x4324, 0x4325, 0x4326, 0x4327, 0x4328, 0x4329, + 0x432a, 0x432b, 0x432c, 0x432d, 0x432e, 0x432f, 0x4330, 0x4331, + 0x4332, 0x4333, 0x4334, 0x4335, 0x4336, 0x4337, 0x4338, 0x4339, + 0x433a, 0x433b, 0x433c, 0x433d, 0x433e, 0x433f, 0x4340, 0x4341, + 0x4342, 0x4343, 0x4344, 0x4345, 0x4346, 0x4347, 0x4348, 0x4349, + 0x434a, 0x434b, 0x434c, 0x434d, 0x434e, 0x434f, 0x4350, 0x4351, + 0x4352, 0x4353, 0x4354, 0x4355, 0x4356, 0x4357, 0x4358, 0x4359, + 0x435a, 0x435b, 0x435c, 0x435d, 0x435e, 0x435f, 0x4360, 0x4361, + 0x4362, 0x4363, 0x4364, 0x4365, 0x4366, 0x4367, 0x4368, 0x4369, + 0x436a, 0x436b, 0x436c, 0x436d, 0x436e, 0x436f, 0x4370, 0x4371, + 0x4372, 0x4373, 0x4374, 0x4375, 0x4376, 0x4377, 0x4378, 0x4379, + 0x437a, 0x437b, 0x437c, 0x437d, 0x437e, 0x4421, 0x4422, 0x4423, + 0x4424, 0x4425, 0x4426, 0x4427, 0x4428, 0x4429, 0x442a, 0x442b, + 0x442c, 0x442d, 0x442e, 0x442f, 0x4430, 0x4431, 0x4432, 0x4433, + 0x4434, 0x4435, 0x4436, 0x4437, 0x4438, 0x4439, 0x443a, 0x443b, + 0x443c, 0x443d, 0x443e, 0x443f, 0x4440, 0x4441, 0x4442, 0x4443, + 0x4444, 0x4445, 0x4446, 0x4447, 0x4448, 0x4449, 0x444a, 0x444b, + 0x444c, 0x444d, 0x444e, 0x444f, 0x4450, 0x4451, 0x4452, 0x4453, + 0x4454, 0x4455, 0x4456, 0x4457, 0x4458, 0x4459, 0x445a, 0x445b, + 0x445c, 0x445d, 0x445e, 0x445f, 0x4460, 0x4461, 0x4462, 0x4463, + 0x4464, 0x4465, 0x4466, 0x4467, 0x4468, 0x4469, 0x446a, 0x446b, + 0x446c, 0x446d, 0x446e, 0x446f, 0x4470, 0x4471, 0x4472, 0x4473, + 0x4474, 0x4475, 0x4476, 0x4477, 0x4478, 0x4479, 0x447a, 0x447b, + 0x447c, 0x447d, 0x447e, 0x4521, 0x4522, 0x4523, 0x4524, 0x4525, + 0x4526, 0x4527, 0x4528, 0x4529, 0x452a, 0x452b, 0x452c, 0x452d, + 0x452e, 0x452f, 0x4530, 0x4531, 0x4532, 0x4533, 0x4534, 0x4535, + 0x4536, 0x4537, 0x4538, 0x4539, 0x453a, 0x453b, 0x453c, 0x453d, + 0x453e, 0x453f, 0x4540, 0x4541, 0x4542, 0x4543, 0x4544, 0x4545, + 0x4546, 0x4547, 0x4548, 0x4549, 0x454a, 0x454b, 0x454c, 0x454d, + 0x454e, 0x454f, 0x4550, 0x4551, 0x4552, 0x4553, 0x4554, 0x4555, + 0x4556, 0x4557, 0x4558, 0x4559, 0x455a, 0x455b, 0x455c, 0x455d, + 0x455e, 0x455f, 0x4560, 0x4561, 0x4562, 0x4563, 0x4564, 0x4565, + 0x4566, 0x4567, 0x4568, 0x4569, 0x456a, 0x456b, 0x456c, 0x456d, + 0x456e, 0x456f, 0x4570, 0x4571, 0x4572, 0x4573, 0x4574, 0x4575, + 0x4576, 0x4577, 0x4578, 0x4579, 0x457a, 0x457b, 0x457c, 0x457d, + 0x457e, 0x4621, 0x4622, 0x4623, 0x4624, 0x4625, 0x4626, 0x4627, + 0x4628, 0x4629, 0x462a, 0x462b, 0x462c, 0x462d, 0x462e, 0x462f, + 0x4630, 0x4631, 0x4632, 0x4633, 0x4634, 0x4635, 0x4636, 0x4637, + 0x4638, 0x4639, 0x463a, 0x463b, 0x463c, 0x463d, 0x463e, 0x463f, + 0x4640, 0x4641, 0x4642, 0x4643, 0x4644, 0x4645, 0x4646, 0x4647, + 0x4648, 0x4649, 0x464a, 0x464b, 0x464c, 0x464d, 0x464e, 0x464f, + 0x4650, 0x4651, 0x4652, 0x4653, 0x4654, 0x4655, 0x4656, 0x4657, + 0x4658, 0x4659, 0x465a, 0x465b, 0x465c, 0x465d, 0x465e, 0x465f, + 0x4660, 0x4661, 0x4662, 0x4663, 0x4664, 0x4665, 0x4666, 0x4667, + 0x4668, 0x4669, 0x466a, 0x466b, 0x466c, 0x466d, 0x466e, 0x466f, + 0x4670, 0x4671, 0x4672, 0x4673, 0x4674, 0x4675, 0x4676, 0x4677, + 0x4678, 0x4679, 0x467a, 0x467b, 0x467c, 0x467d, 0x467e, 0x4721, + 0x4722, 0x4723, 0x4724, 0x4725, 0x4726, 0x4727, 0x4728, 0x4729, + 0x472a, 0x472b, 0x472c, 0x472d, 0x472e, 0x472f, 0x4730, 0x4731, + 0x4732, 0x4733, 0x4734, 0x4735, 0x4736, 0x4737, 0x4738, 0x4739, + 0x473a, 0x473b, 0x473c, 0x473d, 0x473e, 0x473f, 0x4740, 0x4741, + 0x4742, 0x4743, 0x4744, 0x4745, 0x4746, 0x4747, 0x4748, 0x4749, + 0x474a, 0x474b, 0x474c, 0x474d, 0x474e, 0x474f, 0x4750, 0x4751, + 0x4752, 0x4753, 0x4754, 0x4755, 0x4756, 0x4757, 0x4758, 0x4759, + 0x475a, 0x475b, 0x475c, 0x475d, 0x475e, 0x475f, 0x4760, 0x4761, + 0x4762, 0x4763, 0x4764, 0x4765, 0x4766, 0x4767, 0x4768, 0x4769, + 0x476a, 0x476b, 0x476c, 0x476d, 0x476e, 0x476f, 0x4770, 0x4771, + 0x4772, 0x4773, 0x4774, 0x4775, 0x4776, 0x4777, 0x4778, 0x4779, + 0x477a, 0x477b, 0x477c, 0x477d, 0x477e, 0x4821, 0x4822, 0x4823, + 0x4824, 0x4825, 0x4826, 0x4827, 0x4828, 0x4829, 0x482a, 0x482b, + 0x482c, 0x482d, 0x482e, 0x482f, 0x4830, 0x4831, 0x4832, 0x4833, + 0x4834, 0x4835, 0x4836, 0x4837, 0x4838, 0x4839, 0x483a, 0x483b, + 0x483c, 0x483d, 0x483e, 0x483f, 0x4840, 0x4841, 0x4842, 0x4843, + 0x4844, 0x4845, 0x4846, 0x4847, 0x4848, 0x4849, 0x484a, 0x484b, + 0x484c, 0x484d, 0x484e, 0x484f, 0x4850, 0x4851, 0x4852, 0x4853, + 0x4854, 0x4855, 0x4856, 0x4857, 0x4858, 0x4859, 0x485a, 0x485b, + 0x485c, 0x485d, 0x485e, 0x485f, 0x4860, 0x4861, 0x4862, 0x4863, + 0x4864, 0x4865, 0x4866, 0x4867, 0x4868, 0x4869, 0x486a, 0x486b, + 0x486c, 0x486d, 0x486e, 0x486f, 0x4870, 0x4871, 0x4872, 0x4873, + 0x4874, 0x4875, 0x4876, 0x4877, 0x4878, 0x4879, 0x487a, 0x487b, + 0x487c, 0x487d, 0x487e, 0x4b50, 0x4b56, 0x4b67, 0x4d4f, 0x4d68, + 0x4e2d, 0x4f7b, 0x5022, 0x5038, 0x5050, 0x505d, 0x5154, 0x5155, + 0x5158, 0x515b, 0x515c, 0x515d, 0x515e, 0x515f, 0x5160, 0x5162, + 0x5163, 0x5164, 0x5165, 0x5166, 0x5168, 0x5169, 0x516a, 0x516b, + 0x516d, 0x516f, 0x5170, 0x5172, 0x5176, 0x517a, 0x517c, 0x517d, + 0x517e, 0x5222, 0x5223, 0x5227, 0x5228, 0x5229, 0x522a, 0x522b, + 0x522d, 0x5232, 0x523e, 0x5242, 0x5243, 0x5244, 0x5246, 0x5247, + 0x5248, 0x5249, 0x524a, 0x524b, 0x524d, 0x524e, 0x524f, 0x5250, + 0x5251, 0x5252, 0x5253, 0x5254, 0x5255, 0x5256, 0x5257, 0x5259, + 0x525a, 0x525e, 0x525f, 0x5261, 0x5262, 0x5264, 0x5265, 0x5266, + 0x5267, 0x5268, 0x5269, 0x526a, 0x526b, 0x5270, 0x5271, 0x5272, + 0x5273, 0x5274, 0x5275, 0x5277, 0x5278, 0x5466, 0x547c, 0x5525, + 0x552b, 0x552e, 0x5638, 0x564d, 0x574b, 0x5764, 0x5b45, 0x5b64, + 0x5c25, 0x5d25, 0x5d55, 0x5d74, 0x5e7c, 0x5e7e, 0x5f33, 0x5f61, + 0x5f68, 0x6071, 0x612d, 0x616d, 0x6375, 0x6421, 0x6429, 0x652e, + 0x6531, 0x6532, 0x6539, 0x653b, 0x653c, 0x6544, 0x654e, 0x6550, + 0x6552, 0x6556, 0x657a, 0x657b, 0x657c, 0x657e, 0x6621, 0x6624, + 0x6627, 0x662d, 0x662f, 0x6630, 0x6631, 0x6633, 0x6637, 0x6638, + 0x663c, 0x6644, 0x6646, 0x6647, 0x664a, 0x6652, 0x6656, 0x6659, + 0x665c, 0x665f, 0x6661, 0x6664, 0x6665, 0x6666, 0x6668, 0x666a, + 0x666b, 0x666c, 0x666f, 0x6671, 0x6672, 0x6675, 0x6676, 0x6677, + 0x6679, 0x6721, 0x6726, 0x6729, 0x672a, 0x672c, 0x672d, 0x6730, + 0x673f, 0x6741, 0x6746, 0x6747, 0x674b, 0x674d, 0x674f, 0x6750, + 0x6753, 0x675f, 0x6764, 0x6766, 0x6777, 0x6867, 0x6868, 0x6870, + 0x6871, 0x6877, 0x6879, 0x687b, 0x687e, 0x6927, 0x692c, 0x694c, + 0x6977, 0x6a41, 0x6a65, 0x6a74, 0x6a77, 0x6a7c, 0x6a7e, 0x6b24, + 0x6b27, 0x6b29, 0x6b2a, 0x6b3a, 0x6b3b, 0x6b3d, 0x6b41, 0x6b42, + 0x6b46, 0x6b47, 0x6b4c, 0x6b4f, 0x6b50, 0x6b51, 0x6b52, 0x6b58, + 0x6c26, 0x6c27, 0x6c2a, 0x6c2f, 0x6c30, 0x6c31, 0x6c32, 0x6c35, + 0x6c38, 0x6c3a, 0x6c40, 0x6c41, 0x6c45, 0x6c46, 0x6c49, 0x6c4a, + 0x6c55, 0x6c5d, 0x6c5e, 0x6c61, 0x6c64, 0x6c67, 0x6c68, 0x6c77, + 0x6c78, 0x6c7a, 0x6d21, 0x6d22, 0x6d23, 0x6d6e, 0x6e5b, 0x723d, + 0x727a, 0x7331, 0x7427, 0x746e, 0x7674, 0x7676, 0x7738, 0x7748, + 0x7753, 0x785b, 0x7870, 0x7a21, 0x7a22, 0x7a66, 0x7c29, 0x2321, + 0x2322, 0x2323, 0x2324, 0x2325, 0x2326, 0x2327, 0x2328, 0x2329, + 0x232a, 0x232b, 0x232c, 0x232d, 0x232e, 0x232f, 0x2330, 0x2331, + 0x2332, 0x2333, 0x2334, 0x2335, 0x2336, 0x2337, 0x2338, 0x2339, + 0x233a, 0x233b, 0x233c, 0x233d, 0x233e, 0x233f, 0x2340, 0x2341, + 0x2342, 0x2343, 0x2344, 0x2345, 0x2346, 0x2347, 0x2348, 0x2349, + 0x234a, 0x234b, 0x234c, 0x234d, 0x234e, 0x234f, 0x2350, 0x2351, + 0x2352, 0x2353, 0x2354, 0x2355, 0x2356, 0x2357, 0x2358, 0x2359, + 0x235a, 0x235b, 0x212c, 0x235d, 0x235e, 0x235f, 0x2360, 0x2361, + 0x2362, 0x2363, 0x2364, 0x2365, 0x2366, 0x2367, 0x2368, 0x2369, + 0x236a, 0x236b, 0x236c, 0x236d, 0x236e, 0x236f, 0x2370, 0x2371, + 0x2372, 0x2373, 0x2374, 0x2375, 0x2376, 0x2377, 0x2378, 0x2379, + 0x237a, 0x237b, 0x237c, 0x237d, 0x2226, 0x214b, 0x214c, 0x217e, + 0x237e, 0x214d, 0x235c, +}; + +static const Summary16 ksc5601_uni2indx_page00[70] = { + /* 0x0000 */ + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x6592 }, { 7, 0xf7df }, + { 21, 0x0040 }, { 22, 0xc181 }, { 27, 0x0040 }, { 28, 0x4181 }, + /* 0x0100 */ + { 32, 0x0000 }, { 32, 0x0002 }, { 33, 0x00c0 }, { 35, 0x810e }, + { 40, 0x0e07 }, { 46, 0x000c }, { 48, 0x00c0 }, { 50, 0x0000 }, + { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, + { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, + /* 0x0200 */ + { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, + { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, + { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, + { 50, 0x0080 }, { 51, 0x2f01 }, { 57, 0x0000 }, { 57, 0x0000 }, + /* 0x0300 */ + { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, + { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, + { 57, 0x0000 }, { 57, 0xfffe }, { 72, 0x03fb }, { 81, 0xfffe }, + { 96, 0x03fb }, { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0000 }, + /* 0x0400 */ + { 105, 0x0002 }, { 106, 0xffff }, { 122, 0xffff }, { 138, 0xffff }, + { 154, 0xffff }, { 170, 0x0002 }, +}; +static const Summary16 ksc5601_uni2indx_page20[103] = { + /* 0x2000 */ + { 171, 0x0000 }, { 171, 0x3320 }, { 176, 0x0063 }, { 180, 0x080d }, + { 184, 0x0000 }, { 184, 0x0000 }, { 184, 0x0000 }, { 184, 0x8010 }, + { 186, 0x001e }, { 190, 0x0000 }, { 190, 0x1000 }, { 191, 0x0000 }, + { 191, 0x0000 }, { 191, 0x0000 }, { 191, 0x0000 }, { 191, 0x0000 }, + /* 0x2100 */ + { 191, 0x0208 }, { 193, 0x0048 }, { 195, 0x0846 }, { 199, 0x0000 }, + { 199, 0x0000 }, { 199, 0x7818 }, { 205, 0x03ff }, { 215, 0x03ff }, + { 225, 0x0000 }, { 225, 0x03ff }, { 235, 0x0000 }, { 235, 0x0000 }, + { 235, 0x0000 }, { 235, 0x0014 }, { 237, 0x0000 }, { 237, 0x0000 }, + /* 0x2200 */ + { 237, 0x898d }, { 244, 0x6402 }, { 248, 0x5fa1 }, { 257, 0x3030 }, + { 261, 0x0000 }, { 261, 0x0004 }, { 262, 0x0c33 }, { 268, 0x0000 }, + { 268, 0x00cc }, { 272, 0x0200 }, { 273, 0x0020 }, { 274, 0x0000 }, + { 274, 0x0000 }, { 274, 0x0000 }, { 274, 0x0000 }, { 274, 0x0000 }, + /* 0x2300 */ + { 274, 0x0000 }, { 274, 0x0004 }, { 275, 0x0000 }, { 275, 0x0000 }, + { 275, 0x0000 }, { 275, 0x0000 }, { 275, 0x0000 }, { 275, 0x0000 }, + { 275, 0x0000 }, { 275, 0x0000 }, { 275, 0x0000 }, { 275, 0x0000 }, + { 275, 0x0000 }, { 275, 0x0000 }, { 275, 0x0000 }, { 275, 0x0000 }, + /* 0x2400 */ + { 275, 0x0000 }, { 275, 0x0000 }, { 275, 0x0000 }, { 275, 0x0000 }, + { 275, 0x0000 }, { 275, 0x0000 }, { 275, 0x7fff }, { 290, 0xfff0 }, + { 302, 0x0007 }, { 305, 0xf000 }, { 309, 0xffff }, { 325, 0x003f }, + { 331, 0x0000 }, { 331, 0xffff }, { 347, 0x03ff }, { 357, 0x0000 }, + /* 0x2500 */ + { 357, 0xf00f }, { 365, 0xffff }, { 381, 0xffff }, { 397, 0xffff }, + { 413, 0x0fff }, { 425, 0x0000 }, { 425, 0x0000 }, { 425, 0x0000 }, + { 425, 0x0000 }, { 425, 0x0004 }, { 426, 0x03fb }, { 435, 0x30cc }, + { 441, 0xc9c3 }, { 449, 0x0003 }, { 451, 0x0000 }, { 451, 0x0000 }, + /* 0x2600 */ + { 451, 0xc060 }, { 455, 0x5000 }, { 457, 0x0000 }, { 457, 0x0000 }, + { 457, 0x0005 }, { 459, 0x0000 }, { 459, 0x37bb }, +}; +static const Summary16 ksc5601_uni2indx_page30[62] = { + /* 0x3000 */ + { 470, 0xff0f }, { 482, 0x003b }, { 487, 0x0000 }, { 487, 0x0000 }, + { 487, 0xfffe }, { 502, 0xffff }, { 518, 0xffff }, { 534, 0xffff }, + { 550, 0xffff }, { 566, 0x000f }, { 570, 0xfffe }, { 585, 0xffff }, + { 601, 0xffff }, { 617, 0xffff }, { 633, 0xffff }, { 649, 0x007f }, + /* 0x3100 */ + { 656, 0x0000 }, { 656, 0x0000 }, { 656, 0x0000 }, { 656, 0xfffe }, + { 671, 0xffff }, { 687, 0xffff }, { 703, 0xffff }, { 719, 0xffff }, + { 735, 0x7fff }, { 750, 0x0000 }, { 750, 0x0000 }, { 750, 0x0000 }, + { 750, 0x0000 }, { 750, 0x0000 }, { 750, 0x0000 }, { 750, 0x0000 }, + /* 0x3200 */ + { 750, 0xffff }, { 766, 0x1fff }, { 779, 0x0000 }, { 779, 0x0000 }, + { 779, 0x0000 }, { 779, 0x0000 }, { 779, 0xffff }, { 795, 0xcfff }, + { 809, 0x0000 }, { 809, 0x0000 }, { 809, 0x0000 }, { 809, 0x0000 }, + { 809, 0x0000 }, { 809, 0x0000 }, { 809, 0x0000 }, { 809, 0x0000 }, + /* 0x3300 */ + { 809, 0x0000 }, { 809, 0x0000 }, { 809, 0x0000 }, { 809, 0x0000 }, + { 809, 0x0000 }, { 809, 0x0000 }, { 809, 0x0000 }, { 809, 0x0000 }, + { 809, 0xff1f }, { 822, 0xffff }, { 838, 0xffff }, { 854, 0xffff }, + { 870, 0x87ff }, { 882, 0x3949 }, +}; +static const Summary16 ksc5601_uni2indx_page4e[1306] = { + /* 0x4e00 */ + { 889, 0x2f8b }, { 898, 0x4372 }, { 905, 0x2000 }, { 906, 0x0b04 }, + { 910, 0xe82c }, { 917, 0xe340 }, { 923, 0x2800 }, { 925, 0x40c8 }, + { 929, 0x5944 }, { 935, 0x4937 }, { 943, 0x7976 }, { 953, 0x0440 }, + { 955, 0x2c93 }, { 962, 0xa3f0 }, { 970, 0x0038 }, { 973, 0x08c5 }, + /* 0x4f00 */ + { 978, 0xee02 }, { 985, 0x0003 }, { 987, 0x8000 }, { 988, 0x3550 }, + { 994, 0xe1c8 }, { 1001, 0x1e23 }, { 1008, 0x8200 }, { 1010, 0xc449 }, + { 1016, 0xad5a }, { 1025, 0x2942 }, { 1030, 0xc000 }, { 1032, 0x8060 }, + { 1035, 0x461c }, { 1041, 0xa49a }, { 1048, 0xc003 }, { 1052, 0x052a }, + /* 0x5000 */ + { 1057, 0x2a44 }, { 1062, 0xd646 }, { 1070, 0x3dda }, { 1080, 0x0800 }, + { 1081, 0x8388 }, { 1086, 0x1420 }, { 1089, 0x0020 }, { 1090, 0x0170 }, + { 1094, 0x2021 }, { 1097, 0x0302 }, { 1100, 0x3000 }, { 1102, 0x40ac }, + { 1107, 0x8620 }, { 1111, 0x4462 }, { 1116, 0x20a0 }, { 1119, 0x8a00 }, + /* 0x5100 */ + { 1122, 0x0253 }, { 1127, 0x8004 }, { 1129, 0x0402 }, { 1131, 0x1484 }, + { 1135, 0x7bfb }, { 1148, 0x1004 }, { 1150, 0x7fa4 }, { 1160, 0x11e2 }, + { 1166, 0x2441 }, { 1170, 0x00a4 }, { 1173, 0x1421 }, { 1177, 0x20c0 }, + { 1180, 0x3a50 }, { 1186, 0x7000 }, { 1189, 0x0002 }, { 1190, 0x2743 }, + /* 0x5200 */ + { 1197, 0x45c9 }, { 1204, 0x2082 }, { 1207, 0x4630 }, { 1212, 0x0fc1 }, + { 1219, 0x3c88 }, { 1225, 0x2850 }, { 1229, 0x8602 }, { 1233, 0xa024 }, + { 1237, 0x2388 }, { 1242, 0x8806 }, { 1246, 0x0e19 }, { 1252, 0x4000 }, + { 1253, 0x22aa }, { 1259, 0xeb64 }, { 1268, 0x001c }, { 1271, 0xcd28 }, + /* 0x5300 */ + { 1278, 0xa120 }, { 1282, 0x02e1 }, { 1287, 0x840b }, { 1292, 0x8200 }, + { 1294, 0x279b }, { 1303, 0x549e }, { 1311, 0x8141 }, { 1315, 0xa0b3 }, + { 1322, 0x0010 }, { 1323, 0x8508 }, { 1327, 0x2061 }, { 1331, 0x0800 }, + { 1332, 0x2f08 }, { 1338, 0x08d0 }, { 1342, 0xbe3e }, { 1353, 0x010f }, + /* 0x5400 */ + { 1358, 0xf718 }, { 1367, 0xa803 }, { 1372, 0x0a41 }, { 1376, 0x5b08 }, + { 1382, 0x0504 }, { 1385, 0x0002 }, { 1386, 0x0500 }, { 1388, 0x382a }, + { 1394, 0x5041 }, { 1398, 0x0001 }, { 1399, 0x1910 }, { 1403, 0x2108 }, + { 1406, 0x0313 }, { 1411, 0x0000 }, { 1411, 0x6122 }, { 1416, 0x0404 }, + /* 0x5500 */ + { 1418, 0x40d0 }, { 1422, 0x1001 }, { 1424, 0x8000 }, { 1425, 0x4022 }, + { 1428, 0x8050 }, { 1431, 0x4048 }, { 1434, 0x0008 }, { 1435, 0x1000 }, + { 1436, 0x06d1 }, { 1442, 0x3700 }, { 1447, 0x5e80 }, { 1453, 0x0000 }, + { 1453, 0x00a0 }, { 1455, 0x9410 }, { 1459, 0x0018 }, { 1461, 0x6000 }, + /* 0x5600 */ + { 1463, 0x0240 }, { 1465, 0x0090 }, { 1467, 0x8000 }, { 1468, 0x0054 }, + { 1471, 0x0000 }, { 1471, 0x0008 }, { 1472, 0x0900 }, { 1474, 0x0010 }, + { 1475, 0x0040 }, { 1476, 0x0000 }, { 1476, 0x5020 }, { 1479, 0x1010 }, + { 1481, 0x2400 }, { 1483, 0x4c02 }, { 1487, 0x0001 }, { 1488, 0x0601 }, + /* 0x5700 */ + { 1491, 0x2918 }, { 1496, 0x814c }, { 1501, 0x2100 }, { 1503, 0x0801 }, + { 1505, 0x6485 }, { 1511, 0x0003 }, { 1513, 0x4452 }, { 1518, 0x1021 }, + { 1521, 0x0904 }, { 1524, 0x0008 }, { 1525, 0x000d }, { 1528, 0x0000 }, + { 1528, 0x4988 }, { 1533, 0x8000 }, { 1534, 0x0001 }, { 1535, 0x1691 }, + /* 0x5800 */ + { 1541, 0x0765 }, { 1548, 0x4000 }, { 1549, 0x8492 }, { 1554, 0x0433 }, + { 1559, 0x8c00 }, { 1562, 0x4592 }, { 1568, 0x0016 }, { 1571, 0x5220 }, + { 1575, 0x0228 }, { 1578, 0xd008 }, { 1582, 0x4300 }, { 1585, 0x4c08 }, + { 1589, 0x40a2 }, { 1593, 0xc32a }, { 1600, 0x9810 }, { 1604, 0x2e00 }, + /* 0x5900 */ + { 1608, 0x8000 }, { 1609, 0x1670 }, { 1615, 0x6e84 }, { 1622, 0x4082 }, + { 1625, 0xc390 }, { 1631, 0x04b3 }, { 1637, 0x7c85 }, { 1645, 0x2118 }, + { 1649, 0x041c }, { 1653, 0x02c8 }, { 1657, 0x1120 }, { 1660, 0x4a00 }, + { 1663, 0x0a48 }, { 1667, 0x361b }, { 1675, 0x5540 }, { 1680, 0x8900 }, + /* 0x5a00 */ + { 1683, 0x000a }, { 1685, 0x9902 }, { 1690, 0x0221 }, { 1693, 0x1040 }, + { 1695, 0x0242 }, { 1698, 0x0400 }, { 1699, 0x0044 }, { 1701, 0x0000 }, + { 1701, 0x0000 }, { 1701, 0x0c04 }, { 1704, 0x0010 }, { 1705, 0x0000 }, + { 1705, 0x1216 }, { 1710, 0x0000 }, { 1710, 0x0242 }, { 1713, 0x0000 }, + /* 0x5b00 */ + { 1713, 0x1a20 }, { 1717, 0x0040 }, { 1718, 0x0400 }, { 1719, 0x0000 }, + { 1719, 0x0009 }, { 1721, 0xb5b3 }, { 1731, 0x0a18 }, { 1735, 0x1523 }, + { 1741, 0x9ba0 }, { 1748, 0x1fe8 }, { 1757, 0x507c }, { 1764, 0x8379 }, + { 1772, 0x10fd }, { 1780, 0xc09d }, { 1787, 0xdbf6 }, { 1799, 0x0560 }, + /* 0x5c00 */ + { 1803, 0xef92 }, { 1813, 0x0242 }, { 1816, 0x0110 }, { 1818, 0xdf02 }, + { 1826, 0x6961 }, { 1833, 0x0822 }, { 1836, 0x9035 }, { 1842, 0x0202 }, + { 1844, 0x0000 }, { 1844, 0x0003 }, { 1846, 0x1a02 }, { 1850, 0x45aa }, + { 1857, 0x0001 }, { 1858, 0x0200 }, { 1859, 0x8101 }, { 1862, 0x2851 }, + /* 0x5d00 */ + { 1867, 0x6080 }, { 1870, 0x02d2 }, { 1875, 0x0280 }, { 1877, 0x0000 }, + { 1877, 0x1800 }, { 1879, 0x0001 }, { 1880, 0x9200 }, { 1883, 0x0000 }, + { 1883, 0x0880 }, { 1885, 0x2000 }, { 1886, 0x0405 }, { 1889, 0x3500 }, + { 1893, 0x2000 }, { 1894, 0x6044 }, { 1898, 0x49e6 }, { 1906, 0x609e }, + /* 0x5e00 */ + { 1913, 0x104c }, { 1917, 0x2a42 }, { 1922, 0x2820 }, { 1925, 0xa148 }, + { 1930, 0x10b1 }, { 1935, 0x8020 }, { 1937, 0x000e }, { 1940, 0x7b9c }, + { 1950, 0x8490 }, { 1954, 0x14a0 }, { 1958, 0x28c1 }, { 1963, 0x41e0 }, + { 1968, 0x0704 }, { 1972, 0x8c49 }, { 1978, 0x100d }, { 1982, 0x0cc8 }, + /* 0x5f00 */ + { 1987, 0x8412 }, { 1991, 0x89ba }, { 1999, 0x02c0 }, { 2002, 0x1422 }, + { 2006, 0x5500 }, { 2010, 0x0ac0 }, { 2014, 0x3ec4 }, { 2022, 0x9283 }, + { 2028, 0x1ca3 }, { 2035, 0x4387 }, { 2042, 0x4703 }, { 2048, 0x22a0 }, + { 2052, 0x3028 }, { 2056, 0x03c0 }, { 2060, 0x0801 }, { 2062, 0xa020 }, + /* 0x6000 */ + { 2065, 0x8000 }, { 2066, 0x3044 }, { 2070, 0x85a3 }, { 2077, 0x0000 }, + { 2077, 0x200e }, { 2081, 0x2225 }, { 2086, 0xb73c }, { 2096, 0x0001 }, + { 2097, 0x3220 }, { 2101, 0x8c50 }, { 2106, 0x0099 }, { 2110, 0x315d }, + { 2118, 0x00a0 }, { 2120, 0x9402 }, { 2124, 0x0003 }, { 2126, 0x0e4b }, + /* 0x6100 */ + { 2133, 0xe342 }, { 2140, 0x8c20 }, { 2144, 0x0080 }, { 2145, 0xd091 }, + { 2151, 0x1d94 }, { 2158, 0xa328 }, { 2164, 0x499c }, { 2171, 0x60c1 }, + { 2176, 0x4406 }, { 2180, 0x0713 }, { 2186, 0x5a90 }, { 2192, 0x4444 }, + { 2196, 0x0f88 }, { 2202, 0x0000 }, { 2202, 0x0040 }, { 2203, 0x95c4 }, + /* 0x6200 */ + { 2210, 0x7581 }, { 2217, 0x8447 }, { 2223, 0x4402 }, { 2226, 0xc053 }, + { 2232, 0x2b83 }, { 2239, 0x0108 }, { 2241, 0x4000 }, { 2242, 0x9242 }, + { 2247, 0x0611 }, { 2251, 0x09a6 }, { 2257, 0x0800 }, { 2258, 0x3222 }, + { 2263, 0xb384 }, { 2270, 0x1bdd }, { 2280, 0xf000 }, { 2284, 0xc08a }, + /* 0x6300 */ + { 2289, 0x0282 }, { 2292, 0x0002 }, { 2293, 0x8800 }, { 2295, 0x6c00 }, + { 2299, 0x9200 }, { 2302, 0x0021 }, { 2304, 0x4180 }, { 2307, 0x8c84 }, + { 2312, 0x1308 }, { 2316, 0x0944 }, { 2320, 0x07a7 }, { 2328, 0x0000 }, + { 2328, 0x8051 }, { 2332, 0x0c41 }, { 2336, 0x6002 }, { 2339, 0x00d0 }, + /* 0x6400 */ + { 2342, 0xa000 }, { 2344, 0x10d0 }, { 2348, 0x3004 }, { 2351, 0x4400 }, + { 2353, 0x0000 }, { 2353, 0x0100 }, { 2354, 0x8201 }, { 2357, 0x0700 }, + { 2360, 0x0100 }, { 2361, 0x440e }, { 2366, 0x6830 }, { 2371, 0x0805 }, + { 2374, 0x64b2 }, { 2381, 0x0514 }, { 2385, 0x10e6 }, { 2391, 0x4414 }, + /* 0x6500 */ + { 2395, 0x0011 }, { 2397, 0x2100 }, { 2399, 0x9c08 }, { 2404, 0xcbc0 }, + { 2411, 0xe120 }, { 2416, 0x40c2 }, { 2420, 0x304c }, { 2425, 0x41b4 }, + { 2431, 0x10ac }, { 2436, 0x9a83 }, { 2443, 0x98b2 }, { 2450, 0x3281 }, + { 2455, 0x9822 }, { 2460, 0x0084 }, { 2462, 0x3369 }, { 2470, 0xbc12 }, + /* 0x6600 */ + { 2477, 0xd6c0 }, { 2484, 0xc03b }, { 2491, 0xa1a1 }, { 2497, 0x0c53 }, + { 2503, 0x8a1e }, { 2510, 0xea00 }, { 2515, 0xcbf0 }, { 2524, 0x05d8 }, + { 2530, 0x4390 }, { 2535, 0x21c3 }, { 2541, 0x4805 }, { 2545, 0x4a1c }, + { 2551, 0x02d0 }, { 2555, 0x3240 }, { 2559, 0x0041 }, { 2561, 0xd79d }, + /* 0x6700 */ + { 2572, 0x2b09 }, { 2578, 0xe8b0 }, { 2585, 0x7dc0 }, { 2593, 0x2452 }, + { 2598, 0xc240 }, { 2602, 0xd04b }, { 2609, 0xa000 }, { 2611, 0xc8ab }, + { 2619, 0x8a80 }, { 2623, 0x34a9 }, { 2630, 0x8000 }, { 2631, 0x41c9 }, + { 2637, 0x8010 }, { 2639, 0x241f }, { 2646, 0x9200 }, { 2649, 0x487b }, + /* 0x6800 */ + { 2657, 0x0000 }, { 2657, 0x00cc }, { 2661, 0x8406 }, { 2665, 0x3300 }, + { 2669, 0x410f }, { 2675, 0x001b }, { 2679, 0x2000 }, { 2680, 0x8040 }, + { 2682, 0x8022 }, { 2685, 0xa098 }, { 2690, 0xa186 }, { 2696, 0x006b }, + { 2701, 0x2a30 }, { 2706, 0x85a4 }, { 2712, 0x4181 }, { 2716, 0x0604 }, + /* 0x6900 */ + { 2719, 0x6021 }, { 2723, 0x0004 }, { 2724, 0x0080 }, { 2725, 0xa001 }, + { 2728, 0x0400 }, { 2729, 0x46b8 }, { 2736, 0xe90f }, { 2745, 0x03a0 }, + { 2749, 0x0000 }, { 2749, 0x1820 }, { 2752, 0x40a0 }, { 2755, 0x0810 }, + { 2757, 0x380a }, { 2762, 0x0001 }, { 2763, 0x0500 }, { 2765, 0xa800 }, + /* 0x6a00 */ + { 2768, 0x0404 }, { 2770, 0xc28a }, { 2776, 0x000a }, { 2778, 0x2720 }, + { 2783, 0x0910 }, { 2786, 0x830c }, { 2791, 0x0802 }, { 2793, 0x0000 }, + { 2793, 0x6211 }, { 2798, 0x1080 }, { 2800, 0x000c }, { 2802, 0x0808 }, + { 2804, 0x000c }, { 2806, 0x0c08 }, { 2809, 0x0000 }, { 2809, 0x0840 }, + /* 0x6b00 */ + { 2811, 0x1410 }, { 2814, 0x0044 }, { 2816, 0x000b }, { 2819, 0x6404 }, + { 2823, 0x50c0 }, { 2827, 0x8001 }, { 2829, 0x047e }, { 2836, 0x8984 }, + { 2841, 0x0658 }, { 2846, 0x4140 }, { 2849, 0xc000 }, { 2851, 0x94a4 }, + { 2857, 0xa862 }, { 2863, 0x09dc }, { 2870, 0x1800 }, { 2872, 0x0000 }, + /* 0x6c00 */ + { 2872, 0x8100 }, { 2874, 0x000a }, { 2876, 0x0008 }, { 2877, 0x4190 }, + { 2881, 0x4007 }, { 2885, 0xe4a1 }, { 2892, 0x2501 }, { 2896, 0x6445 }, + { 2902, 0x11ee }, { 2910, 0x0e7d }, { 2919, 0x4800 }, { 2921, 0xfb08 }, + { 2929, 0x1616 }, { 2935, 0x08a8 }, { 2939, 0xc92e }, { 2947, 0x0009 }, + /* 0x6d00 */ + { 2949, 0x1800 }, { 2951, 0x4a82 }, { 2956, 0x06a0 }, { 2960, 0x6b64 }, + { 2968, 0x0002 }, { 2969, 0x1600 }, { 2972, 0x5648 }, { 2978, 0x8390 }, + { 2983, 0x73a0 }, { 2990, 0x002a }, { 2993, 0x8000 }, { 2994, 0x0024 }, + { 2996, 0x88f9 }, { 3004, 0x4702 }, { 3009, 0x4d02 }, { 3014, 0x0faa }, + /* 0x6e00 */ + { 3022, 0x0000 }, { 3022, 0x8e80 }, { 3027, 0xb87b }, { 3037, 0x7554 }, + { 3045, 0x2418 }, { 3049, 0xd940 }, { 3055, 0xc880 }, { 3059, 0x040c }, + { 3062, 0x0000 }, { 3062, 0xb041 }, { 3067, 0x8c24 }, { 3072, 0x0442 }, + { 3075, 0x5a34 }, { 3082, 0x001a }, { 3085, 0x8000 }, { 3086, 0xc110 }, + /* 0x6f00 */ + { 3090, 0x8046 }, { 3094, 0x0032 }, { 3097, 0x180d }, { 3102, 0x8106 }, + { 3106, 0x0002 }, { 3107, 0xcd92 }, { 3115, 0x6014 }, { 3119, 0x7401 }, + { 3124, 0x6112 }, { 3129, 0x0091 }, { 3132, 0xc098 }, { 3137, 0x420a }, + { 3141, 0x040f }, { 3146, 0x8420 }, { 3149, 0x9a13 }, { 3156, 0x4002 }, + /* 0x7000 */ + { 3158, 0x8a62 }, { 3164, 0xfd22 }, { 3173, 0x8188 }, { 3177, 0x4080 }, + { 3179, 0x1000 }, { 3180, 0x2103 }, { 3184, 0x0808 }, { 3186, 0x3101 }, + { 3190, 0x4420 }, { 3193, 0x0704 }, { 3197, 0xb812 }, { 3203, 0x0388 }, + { 3207, 0x8900 }, { 3210, 0xa300 }, { 3214, 0x0000 }, { 3214, 0x2202 }, + /* 0x7100 */ + { 3217, 0x1210 }, { 3220, 0x4600 }, { 3223, 0x0042 }, { 3225, 0x0041 }, + { 3227, 0x5680 }, { 3232, 0x5241 }, { 3237, 0x52f0 }, { 3244, 0x2000 }, + { 3245, 0x8610 }, { 3249, 0x8214 }, { 3253, 0x1004 }, { 3255, 0x4602 }, + { 3259, 0x430a }, { 3264, 0x8035 }, { 3269, 0x60e0 }, { 3274, 0xd800 }, + /* 0x7200 */ + { 3278, 0x0041 }, { 3280, 0x0801 }, { 3282, 0x3400 }, { 3285, 0x6c65 }, + { 3293, 0x11c1 }, { 3298, 0xab04 }, { 3304, 0x0286 }, { 3308, 0x2204 }, + { 3311, 0x0003 }, { 3313, 0x0000 }, { 3313, 0x9084 }, { 3317, 0x0000 }, + { 3317, 0x4015 }, { 3321, 0x0281 }, { 3324, 0x0202 }, { 3326, 0x3300 }, + /* 0x7300 */ + { 3330, 0x0400 }, { 3331, 0x3840 }, { 3335, 0x0e20 }, { 3339, 0xc0c0 }, + { 3343, 0x0030 }, { 3345, 0x0085 }, { 3348, 0x0500 }, { 3350, 0x0d25 }, + { 3356, 0x4ad0 }, { 3362, 0x81d0 }, { 3367, 0x2280 }, { 3370, 0x020c }, + { 3373, 0xb605 }, { 3380, 0x6240 }, { 3384, 0x2679 }, { 3392, 0x6280 }, + /* 0x7400 */ + { 3396, 0x02ea }, { 3402, 0x0808 }, { 3404, 0xdd67 }, { 3415, 0x8579 }, + { 3423, 0x081b }, { 3428, 0xdea0 }, { 3436, 0x8735 }, { 3444, 0x4000 }, + { 3445, 0x0a8c }, { 3450, 0xd100 }, { 3454, 0x05aa }, { 3460, 0xa225 }, + { 3466, 0x8440 }, { 3469, 0x1510 }, { 3473, 0x404d }, { 3478, 0x0080 }, + /* 0x7500 */ + { 3479, 0x0012 }, { 3481, 0x8d22 }, { 3487, 0x1968 }, { 3493, 0x058f }, + { 3500, 0x9080 }, { 3503, 0x3a1a }, { 3510, 0x8464 }, { 3515, 0x8561 }, + { 3521, 0xccc0 }, { 3527, 0x2002 }, { 3529, 0x0820 }, { 3531, 0x732e }, + { 3540, 0x20a4 }, { 3544, 0x0b34 }, { 3550, 0x0004 }, { 3551, 0x1415 }, + /* 0x7600 */ + { 3556, 0x2001 }, { 3558, 0x8200 }, { 3560, 0x0057 }, { 3565, 0x0800 }, + { 3566, 0x5004 }, { 3569, 0x0044 }, { 3571, 0x1212 }, { 3575, 0x7905 }, + { 3582, 0x40d0 }, { 3586, 0x0009 }, { 3588, 0x4000 }, { 3589, 0x8400 }, + { 3591, 0x054c }, { 3596, 0xd844 }, { 3602, 0x409a }, { 3607, 0x5114 }, + /* 0x7700 */ + { 3612, 0x0b12 }, { 3617, 0x4000 }, { 3618, 0x0201 }, { 3620, 0x1580 }, + { 3624, 0x2001 }, { 3626, 0x0800 }, { 3627, 0x084a }, { 3631, 0xc200 }, + { 3634, 0x0800 }, { 3635, 0x4002 }, { 3637, 0x3020 }, { 3640, 0x9809 }, + { 3645, 0x0000 }, { 3645, 0x1880 }, { 3648, 0xe22c }, { 3655, 0x0008 }, + /* 0x7800 */ + { 3656, 0x0004 }, { 3657, 0x0004 }, { 3658, 0x10e0 }, { 3662, 0x0014 }, + { 3664, 0x8020 }, { 3666, 0x2000 }, { 3667, 0x9800 }, { 3670, 0x1000 }, + { 3671, 0x7082 }, { 3676, 0x0082 }, { 3678, 0x0288 }, { 3681, 0x1c00 }, + { 3684, 0x4c22 }, { 3689, 0x0001 }, { 3690, 0x9100 }, { 3693, 0x0820 }, + /* 0x7900 */ + { 3695, 0x4002 }, { 3697, 0x0040 }, { 3698, 0x1c00 }, { 3701, 0x4400 }, + { 3703, 0x0383 }, { 3708, 0x7cc1 }, { 3716, 0x2121 }, { 3720, 0x8400 }, + { 3722, 0xe002 }, { 3726, 0x0002 }, { 3727, 0x44c0 }, { 3731, 0xe20a }, + { 3737, 0x0e03 }, { 3742, 0x8126 }, { 3747, 0x02d0 }, { 3751, 0x0800 }, + /* 0x7a00 */ + { 3752, 0x2921 }, { 3757, 0x9690 }, { 3763, 0x4001 }, { 3765, 0xb8c2 }, + { 3772, 0x6241 }, { 3777, 0x0080 }, { 3778, 0x0a06 }, { 3782, 0xa651 }, + { 3789, 0x0112 }, { 3792, 0x812c }, { 3797, 0xc600 }, { 3801, 0x0400 }, + { 3802, 0x0cb0 }, { 3807, 0xa280 }, { 3811, 0xa429 }, { 3817, 0x8640 }, + /* 0x7b00 */ + { 3821, 0x8000 }, { 3822, 0x4a02 }, { 3826, 0x3041 }, { 3830, 0x0200 }, + { 3831, 0xba40 }, { 3837, 0x0057 }, { 3842, 0x5001 }, { 3845, 0x2020 }, + { 3847, 0x8880 }, { 3850, 0x24b0 }, { 3855, 0x2002 }, { 3857, 0x0112 }, + { 3860, 0x02d3 }, { 3866, 0x0004 }, { 3867, 0x0211 }, { 3870, 0x0000 }, + /* 0x7c00 */ + { 3870, 0x0080 }, { 3871, 0x4004 }, { 3873, 0x0c82 }, { 3877, 0xe000 }, + { 3880, 0x3008 }, { 3883, 0x0000 }, { 3883, 0x1011 }, { 3886, 0x0008 }, + { 3887, 0x0208 }, { 3889, 0x81a4 }, { 3894, 0x40a0 }, { 3897, 0x420e }, + { 3902, 0x0400 }, { 3903, 0xc040 }, { 3906, 0x0081 }, { 3908, 0x4800 }, + /* 0x7d00 */ + { 3910, 0x2df5 }, { 3920, 0x0f91 }, { 3927, 0xd807 }, { 3934, 0x0629 }, + { 3939, 0x007c }, { 3944, 0x4001 }, { 3946, 0x4546 }, { 3952, 0x824e }, + { 3958, 0xc000 }, { 3960, 0x1008 }, { 3962, 0x3005 }, { 3966, 0xed36 }, + { 3976, 0x0c80 }, { 3979, 0x6540 }, { 3984, 0x930b }, { 3991, 0x0810 }, + /* 0x7e00 */ + { 3993, 0x0600 }, { 3995, 0xe820 }, { 4000, 0xc80a }, { 4005, 0x6082 }, + { 4009, 0x00ca }, { 4013, 0x4034 }, { 4017, 0x2e02 }, { 4022, 0x1201 }, + { 4025, 0x9004 }, { 4028, 0x1948 }, { 4033, 0x0000 }, { 4033, 0x0000 }, + { 4033, 0x0000 }, { 4033, 0x0000 }, { 4033, 0x0000 }, { 4033, 0x0000 }, + /* 0x7f00 */ + { 4033, 0x0000 }, { 4033, 0x0000 }, { 4033, 0x0000 }, { 4033, 0x0540 }, + { 4036, 0x1000 }, { 4037, 0x0031 }, { 4040, 0x4c00 }, { 4043, 0x02a5 }, + { 4048, 0x5520 }, { 4053, 0x4410 }, { 4056, 0x0310 }, { 4059, 0x2304 }, + { 4063, 0x5422 }, { 4068, 0x8034 }, { 4072, 0x0a03 }, { 4076, 0x1201 }, + /* 0x8000 */ + { 4079, 0x126b }, { 4086, 0x01a1 }, { 4090, 0x2000 }, { 4091, 0xa048 }, + { 4095, 0x0448 }, { 4098, 0x4540 }, { 4102, 0x8000 }, { 4103, 0xe08d }, + { 4110, 0x1af0 }, { 4117, 0x2840 }, { 4120, 0x8626 }, { 4126, 0x0416 }, + { 4130, 0x5018 }, { 4134, 0x4c00 }, { 4137, 0x0032 }, { 4140, 0x2112 }, + /* 0x8100 */ + { 4144, 0x05e4 }, { 4150, 0x0d00 }, { 4153, 0x8a08 }, { 4157, 0x4200 }, + { 4159, 0x4800 }, { 4161, 0x0033 }, { 4165, 0x0860 }, { 4168, 0x8703 }, + { 4174, 0x8501 }, { 4178, 0x3400 }, { 4181, 0x0109 }, { 4184, 0xe428 }, + { 4190, 0x2045 }, { 4194, 0x8100 }, { 4196, 0x25a8 }, { 4202, 0x5c18 }, + /* 0x8200 */ + { 4208, 0x35a0 }, { 4214, 0xd804 }, { 4219, 0x1c02 }, { 4223, 0x02e0 }, + { 4227, 0x00a1 }, { 4230, 0x0200 }, { 4231, 0xc050 }, { 4235, 0x4146 }, + { 4240, 0x6800 }, { 4243, 0xa604 }, { 4248, 0xf260 }, { 4255, 0xbb8a }, + { 4264, 0x0000 }, { 4264, 0xc8b6 }, { 4272, 0x00e2 }, { 4276, 0x6002 }, + /* 0x8300 */ + { 4279, 0x023e }, { 4285, 0x0080 }, { 4286, 0x8900 }, { 4289, 0x0372 }, + { 4295, 0x8681 }, { 4300, 0x0006 }, { 4302, 0x0000 }, { 4302, 0x0888 }, + { 4305, 0x4600 }, { 4308, 0x4140 }, { 4311, 0x0e04 }, { 4315, 0x2000 }, + { 4316, 0x1622 }, { 4321, 0x1048 }, { 4324, 0x8a00 }, { 4327, 0x2217 }, + /* 0x8400 */ + { 4333, 0x7418 }, { 4339, 0x0000 }, { 4339, 0x1200 }, { 4341, 0x2102 }, + { 4344, 0x0200 }, { 4345, 0x0880 }, { 4347, 0x984a }, { 4353, 0x0420 }, + { 4355, 0x0000 }, { 4355, 0x1211 }, { 4359, 0x0002 }, { 4360, 0x9904 }, + { 4365, 0x2a55 }, { 4372, 0x0402 }, { 4374, 0x5000 }, { 4376, 0x1010 }, + /* 0x8500 */ + { 4378, 0x0000 }, { 4378, 0x459a }, { 4385, 0xb02a }, { 4391, 0xa000 }, + { 4393, 0x420a }, { 4397, 0x0208 }, { 4399, 0x2708 }, { 4404, 0x0000 }, + { 4404, 0x8090 }, { 4407, 0x0812 }, { 4410, 0x8740 }, { 4415, 0x0401 }, + { 4417, 0xe202 }, { 4422, 0x3020 }, { 4425, 0x0630 }, { 4429, 0x8c80 }, + /* 0x8600 */ + { 4433, 0x04c4 }, { 4437, 0x04c0 }, { 4440, 0x2000 }, { 4441, 0x8000 }, + { 4442, 0x4000 }, { 4443, 0xd831 }, { 4450, 0x0080 }, { 4451, 0x0200 }, + { 4452, 0x1400 }, { 4454, 0x0008 }, { 4455, 0x0218 }, { 4458, 0x0000 }, + { 4458, 0x0880 }, { 4460, 0x8a10 }, { 4464, 0x2010 }, { 4466, 0x4000 }, + /* 0x8700 */ + { 4467, 0x010d }, { 4471, 0x1500 }, { 4474, 0x0000 }, { 4474, 0x0000 }, + { 4474, 0x4000 }, { 4475, 0x80a0 }, { 4478, 0x0140 }, { 4480, 0x0150 }, + { 4483, 0x2004 }, { 4485, 0x8000 }, { 4486, 0x0004 }, { 4487, 0x0408 }, + { 4489, 0x0010 }, { 4490, 0x0000 }, { 4490, 0x9001 }, { 4493, 0x4a04 }, + /* 0x8800 */ + { 4497, 0x0020 }, { 4498, 0x8000 }, { 4499, 0x000c }, { 4501, 0x0842 }, + { 4504, 0x3041 }, { 4508, 0x2a8c }, { 4514, 0x090e }, { 4519, 0xc085 }, + { 4524, 0x2906 }, { 4529, 0x40c4 }, { 4533, 0x0800 }, { 4534, 0x0010 }, + { 4535, 0x8006 }, { 4538, 0xb230 }, { 4544, 0x0102 }, { 4546, 0x2138 }, + /* 0x8900 */ + { 4551, 0x0080 }, { 4552, 0x030d }, { 4557, 0x0420 }, { 4559, 0x0940 }, + { 4562, 0x0012 }, { 4564, 0x8000 }, { 4565, 0x0410 }, { 4567, 0x8004 }, + { 4569, 0x88ca }, { 4575, 0x0048 }, { 4577, 0x0602 }, { 4580, 0x2404 }, + { 4583, 0x0001 }, { 4584, 0x0004 }, { 4585, 0x0008 }, { 4586, 0x0110 }, + /* 0x8a00 */ + { 4588, 0x550d }, { 4595, 0xa9c8 }, { 4602, 0x2428 }, { 4606, 0x0c52 }, + { 4611, 0x0000 }, { 4611, 0x4831 }, { 4616, 0x624d }, { 4623, 0x022f }, + { 4629, 0x30a0 }, { 4633, 0x4128 }, { 4637, 0x057b }, { 4645, 0xd205 }, + { 4651, 0xa894 }, { 4657, 0x1844 }, { 4661, 0x6cc2 }, { 4668, 0x45c2 }, + /* 0x8b00 */ + { 4674, 0x4017 }, { 4679, 0x2ed1 }, { 4687, 0x1901 }, { 4691, 0x0208 }, + { 4693, 0xc202 }, { 4697, 0x1500 }, { 4700, 0x9040 }, { 4703, 0x2091 }, + { 4707, 0x0401 }, { 4709, 0x044d }, { 4714, 0x0000 }, { 4714, 0x0000 }, + { 4714, 0x0000 }, { 4714, 0x0000 }, { 4714, 0x0000 }, { 4714, 0x0000 }, + /* 0x8c00 */ + { 4714, 0x0000 }, { 4714, 0x0000 }, { 4714, 0x0000 }, { 4714, 0x8080 }, + { 4716, 0x1542 }, { 4721, 0x0420 }, { 4723, 0x0c02 }, { 4726, 0x0600 }, + { 4728, 0x1404 }, { 4731, 0x6000 }, { 4733, 0x9f87 }, { 4743, 0xb9d9 }, + { 4753, 0x059f }, { 4761, 0x540a }, { 4766, 0x245d }, { 4773, 0x3810 }, + /* 0x8d00 */ + { 4777, 0x25b0 }, { 4783, 0x0048 }, { 4785, 0x0000 }, { 4785, 0x0000 }, + { 4785, 0x0000 }, { 4785, 0x0000 }, { 4785, 0x0850 }, { 4788, 0x0099 }, + { 4792, 0x0420 }, { 4794, 0x0200 }, { 4795, 0x0108 }, { 4797, 0x4408 }, + { 4800, 0x9840 }, { 4804, 0x2800 }, { 4806, 0x810a }, { 4810, 0x0008 }, + /* 0x8e00 */ + { 4811, 0x8400 }, { 4813, 0x4001 }, { 4815, 0x0400 }, { 4816, 0x0021 }, + { 4818, 0x0794 }, { 4824, 0x8200 }, { 4826, 0x0001 }, { 4827, 0x0050 }, + { 4829, 0x2482 }, { 4833, 0x0000 }, { 4833, 0x1c00 }, { 4836, 0x0000 }, + { 4836, 0x3c01 }, { 4841, 0x8004 }, { 4843, 0x0800 }, { 4844, 0x4900 }, + /* 0x8f00 */ + { 4847, 0x0228 }, { 4850, 0xf83c }, { 4859, 0x86c0 }, { 4864, 0xcb08 }, + { 4870, 0x6230 }, { 4875, 0xa000 }, { 4877, 0x0004 }, { 4878, 0x0000 }, + { 4878, 0x0000 }, { 4878, 0x1800 }, { 4880, 0xa148 }, { 4885, 0x0007 }, + { 4888, 0x4024 }, { 4891, 0x0012 }, { 4893, 0x2c40 }, { 4897, 0x2285 }, + /* 0x9000 */ + { 4902, 0xa96f }, { 4912, 0xe6b3 }, { 4922, 0x400f }, { 4927, 0x5126 }, + { 4933, 0x6c86 }, { 4940, 0x723b }, { 4949, 0xe20b }, { 4956, 0xb5a4 }, + { 4964, 0x859f }, { 4973, 0x0222 }, { 4976, 0x854c }, { 4982, 0x0123 }, + { 4986, 0x0402 }, { 4988, 0x4000 }, { 4989, 0x2102 }, { 4992, 0x2020 }, + /* 0x9100 */ + { 4994, 0x0004 }, { 4995, 0x0224 }, { 4998, 0x2080 }, { 5000, 0x0004 }, + { 5001, 0x7e00 }, { 5007, 0x0004 }, { 5008, 0x1604 }, { 5012, 0x01a0 }, + { 5015, 0x2a80 }, { 5019, 0x1004 }, { 5021, 0xd800 }, { 5025, 0x0032 }, + { 5028, 0xfa81 }, { 5036, 0x3183 }, { 5042, 0x0488 }, { 5045, 0x0020 }, + /* 0x9200 */ + { 5046, 0x2000 }, { 5047, 0x4087 }, { 5052, 0x0000 }, { 5052, 0x8410 }, + { 5055, 0x0221 }, { 5058, 0x4880 }, { 5061, 0x0074 }, { 5065, 0x0000 }, + { 5065, 0x0029 }, { 5068, 0x114a }, { 5073, 0x0000 }, { 5073, 0x02c8 }, + { 5077, 0x9000 }, { 5079, 0x0004 }, { 5080, 0x0410 }, { 5082, 0x1100 }, + /* 0x9300 */ + { 5084, 0x0010 }, { 5085, 0xc501 }, { 5090, 0xc957 }, { 5099, 0x0000 }, + { 5099, 0x2d00 }, { 5103, 0x0810 }, { 5105, 0x4000 }, { 5106, 0x5020 }, + { 5109, 0x1000 }, { 5110, 0x0450 }, { 5113, 0x3088 }, { 5117, 0x0001 }, + { 5118, 0x0008 }, { 5119, 0x4002 }, { 5121, 0x0012 }, { 5123, 0x0040 }, + /* 0x9400 */ + { 5124, 0x0010 }, { 5125, 0x0100 }, { 5126, 0x0820 }, { 5128, 0x0120 }, + { 5130, 0x0010 }, { 5131, 0x0806 }, { 5134, 0x0000 }, { 5134, 0xa000 }, + { 5136, 0x0000 }, { 5136, 0x0000 }, { 5136, 0x0000 }, { 5136, 0x0000 }, + { 5136, 0x0000 }, { 5136, 0x0000 }, { 5136, 0x0000 }, { 5136, 0x0000 }, + /* 0x9500 */ + { 5136, 0x0000 }, { 5136, 0x0000 }, { 5136, 0x0000 }, { 5136, 0x0000 }, + { 5136, 0x0000 }, { 5136, 0x0000 }, { 5136, 0x0000 }, { 5136, 0x0080 }, + { 5137, 0x8a09 }, { 5142, 0x011e }, { 5147, 0x2138 }, { 5152, 0x1802 }, + { 5155, 0x0480 }, { 5157, 0x1070 }, { 5161, 0x0006 }, { 5163, 0x0000 }, + /* 0x9600 */ + { 5163, 0x0000 }, { 5163, 0x1000 }, { 5164, 0x4402 }, { 5167, 0x8804 }, + { 5170, 0x3815 }, { 5176, 0xf801 }, { 5182, 0x041c }, { 5186, 0x21e9 }, + { 5193, 0x6c60 }, { 5199, 0x1b30 }, { 5205, 0x0588 }, { 5209, 0x0882 }, + { 5212, 0x7af3 }, { 5223, 0x1a60 }, { 5228, 0x870c }, { 5234, 0x0ac5 }, + /* 0x9700 */ + { 5240, 0x00c1 }, { 5243, 0x524a }, { 5249, 0x0080 }, { 5250, 0x2205 }, + { 5254, 0x0114 }, { 5257, 0x5042 }, { 5261, 0x2206 }, { 5265, 0x0490 }, + { 5268, 0xa800 }, { 5271, 0x0000 }, { 5271, 0x2901 }, { 5275, 0x0000 }, + { 5275, 0x0840 }, { 5277, 0x1008 }, { 5279, 0x0000 }, { 5279, 0x8848 }, + /* 0x9800 */ + { 5283, 0x156f }, { 5292, 0x018f }, { 5298, 0x2000 }, { 5299, 0x0b01 }, + { 5303, 0x7040 }, { 5307, 0x4510 }, { 5311, 0x88a0 }, { 5315, 0x0000 }, + { 5315, 0x0000 }, { 5315, 0x0000 }, { 5315, 0x8100 }, { 5317, 0x0002 }, + { 5318, 0x0090 }, { 5320, 0x9800 }, { 5323, 0xe006 }, { 5328, 0x7010 }, + /* 0x9900 */ + { 5332, 0x1608 }, { 5336, 0x4109 }, { 5340, 0x0101 }, { 5342, 0x0000 }, + { 5342, 0x3a20 }, { 5347, 0x0096 }, { 5351, 0x0000 }, { 5351, 0x0000 }, + { 5351, 0x0000 }, { 5351, 0x2240 }, { 5354, 0x7120 }, { 5359, 0x021a }, + { 5363, 0x0002 }, { 5364, 0xa227 }, { 5371, 0x2000 }, { 5372, 0x8002 }, + /* 0x9a00 */ + { 5374, 0xc102 }, { 5378, 0x0200 }, { 5379, 0x0800 }, { 5380, 0x00c1 }, + { 5383, 0x2029 }, { 5387, 0x8ca0 }, { 5392, 0x0624 }, { 5396, 0x0000 }, + { 5396, 0x0000 }, { 5396, 0x0000 }, { 5396, 0x0100 }, { 5397, 0x0100 }, + { 5398, 0x0000 }, { 5398, 0x0118 }, { 5401, 0x4020 }, { 5403, 0x0000 }, + /* 0x9b00 */ + { 5403, 0x0000 }, { 5403, 0x0400 }, { 5404, 0x0480 }, { 5406, 0x1002 }, + { 5408, 0x803e }, { 5414, 0x0410 }, { 5416, 0x8000 }, { 5417, 0x0000 }, + { 5417, 0x4000 }, { 5418, 0x8002 }, { 5420, 0x4800 }, { 5422, 0x0000 }, + { 5422, 0x0200 }, { 5423, 0x0040 }, { 5424, 0x0110 }, { 5426, 0x0000 }, + /* 0x9c00 */ + { 5426, 0x2000 }, { 5427, 0x0025 }, { 5430, 0x0020 }, { 5431, 0x0804 }, + { 5433, 0x0280 }, { 5435, 0x0080 }, { 5436, 0x0000 }, { 5436, 0x0000 }, + { 5436, 0x0000 }, { 5436, 0x0000 }, { 5436, 0x0000 }, { 5436, 0x0000 }, + { 5436, 0x0000 }, { 5436, 0x0000 }, { 5436, 0x02a0 }, { 5439, 0x0058 }, + /* 0x9d00 */ + { 5442, 0x0200 }, { 5443, 0x0800 }, { 5444, 0x0140 }, { 5446, 0x0800 }, + { 5447, 0x0000 }, { 5447, 0x2002 }, { 5449, 0x1003 }, { 5452, 0x0004 }, + { 5453, 0x0000 }, { 5453, 0x0000 }, { 5453, 0x8200 }, { 5455, 0x0010 }, + { 5456, 0x0010 }, { 5457, 0x0080 }, { 5458, 0x0000 }, { 5458, 0x0704 }, + /* 0x9e00 */ + { 5462, 0x0000 }, { 5462, 0x4400 }, { 5464, 0x0000 }, { 5464, 0x0000 }, + { 5464, 0x0000 }, { 5464, 0x0000 }, { 5464, 0x0000 }, { 5464, 0xa220 }, + { 5468, 0x0000 }, { 5468, 0xa08c }, { 5473, 0x0020 }, { 5474, 0x4830 }, + { 5478, 0x6008 }, { 5481, 0x5912 }, { 5487, 0x0100 }, { 5488, 0x0010 }, + /* 0x9f00 */ + { 5489, 0x4180 }, { 5492, 0x0008 }, { 5493, 0x0001 }, { 5494, 0x0800 }, + { 5495, 0x4c00 }, { 5498, 0x8004 }, { 5500, 0x1482 }, { 5504, 0x0080 }, + { 5505, 0x2000 }, { 5506, 0x1021 }, +}; +static const Summary16 ksc5601_uni2indx_pageac[698] = { + /* 0xac00 */ + { 5509, 0x0793 }, { 5516, 0x3eff }, { 5529, 0xb011 }, { 5534, 0x1303 }, + { 5539, 0x2801 }, { 5542, 0x1110 }, { 5545, 0x0000 }, { 5545, 0x0593 }, + { 5551, 0x1e7b }, { 5561, 0xb011 }, { 5566, 0x9703 }, { 5573, 0x3b01 }, + { 5579, 0x1112 }, { 5583, 0x00a0 }, { 5585, 0x9593 }, { 5593, 0x306b }, + /* 0xad00 */ + { 5600, 0xb051 }, { 5606, 0x1102 }, { 5609, 0x3201 }, { 5613, 0x1130 }, + { 5617, 0x02b0 }, { 5621, 0x0111 }, { 5624, 0x300a }, { 5628, 0xb879 }, + { 5637, 0x1306 }, { 5642, 0x3001 }, { 5645, 0x0010 }, { 5646, 0x0080 }, + { 5647, 0x0113 }, { 5651, 0x100b }, { 5655, 0x0011 }, { 5657, 0x9300 }, + /* 0xae00 */ + { 5661, 0x2b03 }, { 5667, 0x0010 }, { 5668, 0x0000 }, { 5668, 0x0593 }, + { 5674, 0x746b }, { 5683, 0xb051 }, { 5689, 0x1323 }, { 5695, 0x3b01 }, + { 5701, 0x1030 }, { 5704, 0x0000 }, { 5704, 0x0000 }, { 5704, 0x7000 }, + { 5707, 0xb011 }, { 5712, 0x1303 }, { 5717, 0x2900 }, { 5720, 0x1110 }, + /* 0xaf00 */ + { 5723, 0x2180 }, { 5726, 0x0001 }, { 5727, 0x3000 }, { 5729, 0xb015 }, + { 5735, 0x030e }, { 5740, 0x3001 }, { 5743, 0x0030 }, { 5745, 0x0200 }, + { 5746, 0x0111 }, { 5749, 0x1023 }, { 5753, 0x0000 }, { 5753, 0x1300 }, + { 5756, 0x6b81 }, { 5763, 0x1010 }, { 5765, 0x0300 }, { 5767, 0x0113 }, + /* 0xb000 */ + { 5771, 0x1013 }, { 5775, 0x3011 }, { 5779, 0x0100 }, { 5780, 0x0000 }, + { 5780, 0x5530 }, { 5786, 0x22b8 }, { 5792, 0x0000 }, { 5792, 0x3000 }, + { 5794, 0xb011 }, { 5799, 0x9702 }, { 5805, 0xfb07 }, { 5815, 0x113a }, + { 5821, 0x03b0 }, { 5826, 0x0113 }, { 5830, 0x0021 }, { 5832, 0x0000 }, + /* 0xb100 */ + { 5832, 0x1b00 }, { 5836, 0x3b0d }, { 5844, 0x1138 }, { 5849, 0x03b0 }, + { 5854, 0x0113 }, { 5858, 0x1133 }, { 5864, 0x0001 }, { 5865, 0x1300 }, + { 5868, 0x2b05 }, { 5874, 0x111c }, { 5879, 0x0100 }, { 5880, 0x0000 }, + { 5880, 0x1000 }, { 5881, 0xb011 }, { 5886, 0x1300 }, { 5889, 0x2a01 }, + /* 0xb200 */ + { 5893, 0x1930 }, { 5898, 0x02b0 }, { 5902, 0x0001 }, { 5903, 0x1010 }, + { 5905, 0x0000 }, { 5905, 0x1100 }, { 5907, 0x0301 }, { 5910, 0x1030 }, + { 5913, 0x0230 }, { 5916, 0x0713 }, { 5922, 0x146b }, { 5929, 0x0011 }, + { 5931, 0x1300 }, { 5934, 0x2b05 }, { 5940, 0xf974 }, { 5950, 0x8fb8 }, + /* 0xb300 */ + { 5959, 0x0113 }, { 5963, 0x103b }, { 5969, 0x0000 }, { 5969, 0x0000 }, + { 5969, 0x0000 }, { 5969, 0xd970 }, { 5977, 0x4ab0 }, { 5983, 0x0113 }, + { 5987, 0x103b }, { 5993, 0x0011 }, { 5995, 0x1103 }, { 5999, 0x0000 }, + { 5999, 0x5930 }, { 6005, 0x2ab1 }, { 6012, 0x0111 }, { 6015, 0x1000 }, + /* 0xb400 */ + { 6016, 0x0000 }, { 6016, 0x1101 }, { 6019, 0x0b01 }, { 6023, 0x0010 }, + { 6024, 0x0000 }, { 6024, 0x0113 }, { 6028, 0x102b }, { 6033, 0x0000 }, + { 6033, 0x0101 }, { 6035, 0x2000 }, { 6036, 0x1110 }, { 6039, 0x02a0 }, + { 6042, 0x0111 }, { 6045, 0x3021 }, { 6049, 0xb059 }, { 6056, 0x0102 }, + /* 0xb500 */ + { 6058, 0x0000 }, { 6058, 0x1930 }, { 6063, 0x07b0 }, { 6069, 0x0113 }, + { 6073, 0x383b }, { 6081, 0xb011 }, { 6086, 0x0003 }, { 6088, 0x0000 }, + { 6088, 0x0000 }, { 6088, 0x0000 }, { 6088, 0x0d13 }, { 6094, 0x383b }, + { 6102, 0xb011 }, { 6107, 0x0103 }, { 6110, 0x1000 }, { 6111, 0x0000 }, + /* 0xb600 */ + { 6111, 0x0000 }, { 6111, 0x0113 }, { 6115, 0x1020 }, { 6117, 0x0010 }, + { 6118, 0x0100 }, { 6119, 0x0000 }, { 6119, 0x0110 }, { 6121, 0x0000 }, + { 6121, 0x0000 }, { 6121, 0x3000 }, { 6123, 0x1811 }, { 6127, 0x0002 }, + { 6128, 0x0000 }, { 6128, 0x0010 }, { 6129, 0x0000 }, { 6129, 0x0111 }, + /* 0xb700 */ + { 6132, 0x0023 }, { 6135, 0x0000 }, { 6135, 0x9300 }, { 6139, 0x0b01 }, + { 6143, 0x1110 }, { 6146, 0x0030 }, { 6148, 0x0111 }, { 6151, 0x302b }, + { 6157, 0xb011 }, { 6162, 0x13c7 }, { 6170, 0x3b01 }, { 6176, 0x0130 }, + { 6179, 0x0280 }, { 6181, 0x0000 }, { 6181, 0x3000 }, { 6183, 0xb011 }, + /* 0xb800 */ + { 6188, 0x1383 }, { 6194, 0x2b01 }, { 6199, 0x1130 }, { 6203, 0x03b0 }, + { 6208, 0x0011 }, { 6210, 0x300a }, { 6214, 0xb011 }, { 6219, 0x1102 }, + { 6222, 0x2000 }, { 6223, 0x0000 }, { 6223, 0x0100 }, { 6224, 0x0111 }, + { 6227, 0x102b }, { 6232, 0xa011 }, { 6236, 0x1302 }, { 6240, 0x2b01 }, + /* 0xb900 */ + { 6245, 0x0010 }, { 6246, 0x0100 }, { 6247, 0x0001 }, { 6248, 0x3000 }, + { 6250, 0x9011 }, { 6254, 0x1302 }, { 6258, 0x2b01 }, { 6263, 0x1130 }, + { 6267, 0x66b0 }, { 6274, 0x0000 }, { 6274, 0x3000 }, { 6276, 0xb011 }, + { 6281, 0xd302 }, { 6287, 0x6b07 }, { 6295, 0x113a }, { 6301, 0x07b0 }, + /* 0xba00 */ + { 6307, 0x0103 }, { 6310, 0x0020 }, { 6311, 0x0000 }, { 6311, 0x1300 }, + { 6314, 0x6b05 }, { 6321, 0x1138 }, { 6326, 0x03b0 }, { 6331, 0x0113 }, + { 6335, 0x10b8 }, { 6340, 0x0000 }, { 6340, 0x1b00 }, { 6344, 0x2b05 }, + { 6350, 0x0110 }, { 6352, 0x0300 }, { 6354, 0x0000 }, { 6354, 0x1000 }, + /* 0xbb00 */ + { 6355, 0xa011 }, { 6359, 0x1102 }, { 6362, 0x0a01 }, { 6365, 0x7970 }, + { 6373, 0xa2b0 }, { 6379, 0x0111 }, { 6382, 0x100a }, { 6385, 0x0000 }, + { 6385, 0x1100 }, { 6387, 0x0001 }, { 6388, 0x1110 }, { 6391, 0x0090 }, + { 6393, 0x0111 }, { 6396, 0x0009 }, { 6398, 0x0000 }, { 6398, 0x9300 }, + /* 0xbc00 */ + { 6402, 0xbb05 }, { 6410, 0xf9f2 }, { 6421, 0x22b0 }, { 6426, 0x0113 }, + { 6430, 0x323b }, { 6438, 0x2001 }, { 6440, 0x0000 }, { 6440, 0x0000 }, + { 6440, 0x5930 }, { 6446, 0x06b0 }, { 6451, 0x0193 }, { 6456, 0x303b }, + { 6463, 0xa011 }, { 6467, 0x1123 }, { 6472, 0x0000 }, { 6472, 0x1170 }, + /* 0xbd00 */ + { 6477, 0x02b0 }, { 6481, 0x0011 }, { 6483, 0x1010 }, { 6485, 0x0000 }, + { 6485, 0x1301 }, { 6489, 0x0301 }, { 6492, 0x0110 }, { 6494, 0x0000 }, + { 6494, 0x0793 }, { 6501, 0x162b }, { 6508, 0x0010 }, { 6509, 0x0101 }, + { 6511, 0x0000 }, { 6511, 0x1130 }, { 6515, 0x0200 }, { 6516, 0x0111 }, + /* 0xbe00 */ + { 6519, 0x3029 }, { 6524, 0xb011 }, { 6529, 0x0000 }, { 6529, 0x0000 }, + { 6529, 0x5130 }, { 6534, 0x0eb0 }, { 6540, 0x0513 }, { 6545, 0x383b }, + { 6553, 0xb011 }, { 6558, 0x0303 }, { 6562, 0x0100 }, { 6563, 0x0000 }, + { 6563, 0x0000 }, { 6563, 0x0193 }, { 6568, 0x1039 }, { 6573, 0x0000 }, + /* 0xbf00 */ + { 6573, 0x0302 }, { 6576, 0x3b00 }, { 6581, 0x0000 }, { 6581, 0x0000 }, + { 6581, 0x0113 }, { 6585, 0x0023 }, { 6588, 0x0000 }, { 6588, 0x0000 }, + { 6588, 0x0000 }, { 6588, 0x0010 }, { 6589, 0x0000 }, { 6589, 0x0001 }, + { 6590, 0x3020 }, { 6593, 0x9011 }, { 6597, 0x0002 }, { 6598, 0x0000 }, + /* 0xc000 */ + { 6598, 0x0000 }, { 6598, 0x0000 }, { 6598, 0x0000 }, { 6598, 0x1000 }, + { 6599, 0x0000 }, { 6599, 0x1102 }, { 6602, 0x0301 }, { 6605, 0x0000 }, + { 6605, 0x0000 }, { 6605, 0x0113 }, { 6609, 0xb02b }, { 6616, 0xb079 }, + { 6624, 0x1323 }, { 6630, 0x3b01 }, { 6636, 0x1130 }, { 6640, 0x02b0 }, + /* 0xc100 */ + { 6644, 0x0111 }, { 6647, 0xf021 }, { 6653, 0xb0d9 }, { 6661, 0x1343 }, + { 6667, 0x3b01 }, { 6673, 0x1130 }, { 6677, 0x03b0 }, { 6682, 0x0111 }, + { 6685, 0x7020 }, { 6689, 0xb051 }, { 6695, 0x1322 }, { 6700, 0x2001 }, + { 6702, 0x1110 }, { 6705, 0x0190 }, { 6708, 0x0111 }, { 6711, 0x300b }, + /* 0xc200 */ + { 6716, 0xb011 }, { 6721, 0x9302 }, { 6726, 0xab01 }, { 6732, 0x0016 }, + { 6735, 0x0100 }, { 6736, 0x0113 }, { 6740, 0x3021 }, { 6744, 0xb011 }, + { 6749, 0x0302 }, { 6752, 0x2901 }, { 6756, 0x3130 }, { 6761, 0x02b0 }, + { 6765, 0x0000 }, { 6765, 0x3000 }, { 6767, 0xb819 }, { 6774, 0x1b42 }, + /* 0xc300 */ + { 6780, 0x3301 }, { 6785, 0x1138 }, { 6790, 0x0330 }, { 6794, 0x0000 }, + { 6794, 0x0020 }, { 6795, 0x0000 }, { 6795, 0x1300 }, { 6798, 0x3305 }, + { 6804, 0x1110 }, { 6807, 0x0000 }, { 6807, 0x0000 }, { 6807, 0x0000 }, + { 6807, 0x0001 }, { 6808, 0x9300 }, { 6812, 0x2305 }, { 6817, 0x0130 }, + /* 0xc400 */ + { 6820, 0x0100 }, { 6821, 0x0001 }, { 6822, 0x1010 }, { 6824, 0x3011 }, + { 6828, 0x0100 }, { 6829, 0x0000 }, { 6829, 0x1130 }, { 6833, 0x0230 }, + { 6836, 0x0001 }, { 6837, 0x1010 }, { 6839, 0x0000 }, { 6839, 0x1100 }, + { 6841, 0x0000 }, { 6841, 0x0000 }, { 6841, 0x0200 }, { 6842, 0x8513 }, + /* 0xc500 */ + { 6848, 0x1003 }, { 6851, 0x1011 }, { 6854, 0x1300 }, { 6857, 0x2b01 }, + { 6862, 0x7730 }, { 6870, 0x63b8 }, { 6878, 0x0113 }, { 6882, 0x303b }, + { 6889, 0xb091 }, { 6895, 0x11a2 }, { 6900, 0x0201 }, { 6902, 0x7b30 }, + { 6910, 0x57f0 }, { 6919, 0x0113 }, { 6923, 0x702b }, { 6930, 0xf0d1 }, + /* 0xc600 */ + { 6938, 0x11e3 }, { 6945, 0x1b01 }, { 6950, 0x7130 }, { 6956, 0x0ab9 }, + { 6963, 0x0113 }, { 6967, 0x303b }, { 6974, 0x9001 }, { 6977, 0x1302 }, + { 6981, 0x2b01 }, { 6986, 0x1130 }, { 6990, 0x02b0 }, { 6994, 0x0713 }, + { 7000, 0x302b }, { 7006, 0x3011 }, { 7010, 0x1303 }, { 7015, 0x2301 }, + /* 0xc700 */ + { 7019, 0x1130 }, { 7023, 0x02b0 }, { 7027, 0x0113 }, { 7031, 0x30ab }, + { 7038, 0xb411 }, { 7044, 0x11fe }, { 7053, 0x0901 }, { 7056, 0x7130 }, + { 7062, 0x47b8 }, { 7070, 0x05d3 }, { 7077, 0x307b }, { 7085, 0xb011 }, + { 7090, 0x5303 }, { 7096, 0x2101 }, { 7099, 0x1110 }, { 7102, 0x0000 }, + /* 0xc800 */ + { 7102, 0x0513 }, { 7107, 0x306b }, { 7114, 0xb011 }, { 7119, 0x1102 }, + { 7122, 0x3301 }, { 7127, 0x0010 }, { 7128, 0x0000 }, { 7128, 0x0513 }, + { 7133, 0x38eb }, { 7142, 0xa010 }, { 7145, 0x0102 }, { 7147, 0x3000 }, + { 7149, 0x1110 }, { 7152, 0x02b0 }, { 7156, 0x0013 }, { 7159, 0x3020 }, + /* 0xc900 */ + { 7162, 0xb071 }, { 7169, 0x0102 }, { 7171, 0x1000 }, { 7172, 0x0010 }, + { 7173, 0x0000 }, { 7173, 0x0113 }, { 7177, 0x100b }, { 7181, 0x1011 }, + { 7184, 0x1300 }, { 7187, 0x2b01 }, { 7192, 0x0000 }, { 7192, 0x0000 }, + { 7192, 0x0593 }, { 7198, 0x366b }, { 7207, 0xb095 }, { 7214, 0x1303 }, + /* 0xca00 */ + { 7219, 0x3b01 }, { 7225, 0x0110 }, { 7227, 0x0200 }, { 7228, 0x0000 }, + { 7228, 0x3000 }, { 7230, 0xb011 }, { 7235, 0x0103 }, { 7238, 0x2000 }, + { 7239, 0x0010 }, { 7240, 0x0100 }, { 7241, 0x0000 }, { 7241, 0x3000 }, + { 7243, 0xb011 }, { 7248, 0x030a }, { 7252, 0x1001 }, { 7254, 0x0010 }, + /* 0xcb00 */ + { 7255, 0x0100 }, { 7256, 0x0111 }, { 7259, 0x0003 }, { 7261, 0x0000 }, + { 7261, 0x1302 }, { 7265, 0x2301 }, { 7269, 0x0010 }, { 7270, 0x0300 }, + { 7272, 0x0000 }, { 7272, 0x1000 }, { 7273, 0x0000 }, { 7273, 0x0100 }, + { 7274, 0x0000 }, { 7274, 0x0010 }, { 7275, 0x0290 }, { 7278, 0x0000 }, + /* 0xcc00 */ + { 7278, 0x3000 }, { 7280, 0x3011 }, { 7284, 0x5386 }, { 7291, 0x7b01 }, + { 7298, 0x1130 }, { 7302, 0x03b0 }, { 7307, 0x0151 }, { 7311, 0x0021 }, + { 7313, 0x0000 }, { 7313, 0x1300 }, { 7316, 0x3b01 }, { 7322, 0x1130 }, + { 7326, 0x02b0 }, { 7330, 0x0011 }, { 7332, 0x1010 }, { 7334, 0x0001 }, + /* 0xcd00 */ + { 7335, 0x1302 }, { 7339, 0x2b01 }, { 7344, 0x1110 }, { 7347, 0x0200 }, + { 7348, 0x0000 }, { 7348, 0x1000 }, { 7349, 0xb011 }, { 7354, 0x0102 }, + { 7356, 0x0100 }, { 7357, 0x1130 }, { 7361, 0x02b0 }, { 7365, 0x0001 }, + { 7366, 0x1010 }, { 7368, 0x0001 }, { 7369, 0x1100 }, { 7371, 0x2b01 }, + /* 0xce00 */ + { 7376, 0x1110 }, { 7379, 0x0210 }, { 7381, 0x0113 }, { 7385, 0x002b }, + { 7389, 0x0000 }, { 7389, 0x9300 }, { 7393, 0x2b03 }, { 7399, 0x1130 }, + { 7403, 0x02b0 }, { 7407, 0x0113 }, { 7411, 0x303b }, { 7418, 0x0000 }, + { 7418, 0x0002 }, { 7419, 0x0000 }, { 7419, 0x1930 }, { 7424, 0x03b0 }, + /* 0xcf00 */ + { 7429, 0x0113 }, { 7433, 0x102b }, { 7438, 0xb011 }, { 7443, 0x0103 }, + { 7446, 0x0000 }, { 7446, 0x1130 }, { 7450, 0x02b0 }, { 7454, 0x0113 }, + { 7458, 0x1021 }, { 7461, 0x0000 }, { 7461, 0x0102 }, { 7463, 0x0001 }, + { 7464, 0x0010 }, { 7465, 0x0000 }, { 7465, 0x0113 }, { 7469, 0x102b }, + /* 0xd000 */ + { 7474, 0x0011 }, { 7476, 0x0102 }, { 7478, 0x2000 }, { 7479, 0x1130 }, + { 7483, 0x02b0 }, { 7487, 0x0111 }, { 7490, 0x3001 }, { 7493, 0x3011 }, + { 7497, 0x0002 }, { 7498, 0x0000 }, { 7498, 0x1130 }, { 7502, 0x02b0 }, + { 7506, 0x0313 }, { 7511, 0x303b }, { 7518, 0xb011 }, { 7523, 0x0103 }, + /* 0xd100 */ + { 7526, 0x2000 }, { 7527, 0x0000 }, { 7527, 0x0000 }, { 7527, 0x0513 }, + { 7532, 0x303b }, { 7539, 0xb011 }, { 7544, 0x1102 }, { 7547, 0x1000 }, + { 7548, 0x0110 }, { 7550, 0x0000 }, { 7550, 0x0113 }, { 7554, 0x142b }, + { 7560, 0x0001 }, { 7561, 0x0100 }, { 7562, 0x0000 }, { 7562, 0x0110 }, + /* 0xd200 */ + { 7564, 0x0280 }, { 7566, 0x0001 }, { 7567, 0x3000 }, { 7569, 0xb011 }, + { 7574, 0x0102 }, { 7576, 0x1000 }, { 7577, 0x0010 }, { 7578, 0x0000 }, + { 7578, 0x0113 }, { 7582, 0x1023 }, { 7586, 0x1011 }, { 7589, 0x9302 }, + { 7594, 0x0b05 }, { 7599, 0x1110 }, { 7602, 0x0030 }, { 7604, 0x0113 }, + /* 0xd300 */ + { 7608, 0x702b }, { 7615, 0xb051 }, { 7621, 0x1323 }, { 7627, 0x3b01 }, + { 7633, 0x0030 }, { 7635, 0x0000 }, { 7635, 0x0000 }, { 7635, 0x3000 }, + { 7637, 0xb011 }, { 7642, 0x1303 }, { 7647, 0x2b01 }, { 7652, 0x1110 }, + { 7655, 0x0330 }, { 7659, 0x0101 }, { 7661, 0x300a }, { 7665, 0xb011 }, + /* 0xd400 */ + { 7670, 0x0102 }, { 7672, 0x2000 }, { 7673, 0x0000 }, { 7673, 0x0000 }, + { 7673, 0x0011 }, { 7675, 0x1000 }, { 7676, 0xa011 }, { 7680, 0x9300 }, + { 7684, 0x2b05 }, { 7690, 0x0010 }, { 7691, 0x0200 }, { 7692, 0x0000 }, + { 7692, 0x1000 }, { 7693, 0x9011 }, { 7697, 0x1100 }, { 7699, 0x2901 }, + /* 0xd500 */ + { 7703, 0x1110 }, { 7706, 0x00b0 }, { 7709, 0x0000 }, { 7709, 0x3000 }, + { 7711, 0xb011 }, { 7716, 0x1302 }, { 7720, 0x2b21 }, { 7726, 0x1130 }, + { 7730, 0x03b0 }, { 7735, 0x0001 }, { 7736, 0x0020 }, { 7737, 0x0000 }, + { 7737, 0x1300 }, { 7740, 0x2b05 }, { 7746, 0x1130 }, { 7750, 0x02b0 }, + /* 0xd600 */ + { 7754, 0x0113 }, { 7758, 0x103b }, { 7764, 0x2011 }, { 7767, 0x1300 }, + { 7770, 0x2b21 }, { 7776, 0x1132 }, { 7781, 0x0280 }, { 7783, 0x0013 }, + { 7786, 0x3028 }, { 7790, 0xa011 }, { 7794, 0x1102 }, { 7797, 0x0a01 }, + { 7800, 0x1130 }, { 7804, 0x0292 }, { 7808, 0x0111 }, { 7811, 0x3021 }, + /* 0xd700 */ + { 7815, 0x0011 }, { 7817, 0x1302 }, { 7821, 0x2b01 }, { 7826, 0x1130 }, + { 7830, 0x0290 }, { 7833, 0x03d3 }, { 7840, 0x122b }, { 7846, 0x3011 }, + { 7850, 0x1302 }, { 7854, 0x2b01 }, +}; +static const Summary16 ksc5601_uni2indx_pagef9[17] = { + /* 0xf900 */ + { 7859, 0xffff }, { 7875, 0xffff }, { 7891, 0xffff }, { 7907, 0xffff }, + { 7923, 0xffff }, { 7939, 0xffff }, { 7955, 0xffff }, { 7971, 0xffff }, + { 7987, 0xffff }, { 8003, 0xffff }, { 8019, 0xffff }, { 8035, 0xffff }, + { 8051, 0xffff }, { 8067, 0xffff }, { 8083, 0xffff }, { 8099, 0xffff }, + /* 0xfa00 */ + { 8115, 0x0fff }, +}; +static const Summary16 ksc5601_uni2indx_pageff[15] = { + /* 0xff00 */ + { 8127, 0xfffe }, { 8142, 0xffff }, { 8158, 0xffff }, { 8174, 0xffff }, + { 8190, 0xffff }, { 8206, 0x7fff }, { 8221, 0x0000 }, { 8221, 0x0000 }, + { 8221, 0x0000 }, { 8221, 0x0000 }, { 8221, 0x0000 }, { 8221, 0x0000 }, + { 8221, 0x0000 }, { 8221, 0x0000 }, { 8221, 0x006f }, +}; + +static int +ksc5601_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (n >= 2) { + const Summary16 *summary = NULL; + if (wc >= 0x0000 && wc < 0x0460) + summary = &ksc5601_uni2indx_page00[(wc>>4)]; + else if (wc >= 0x2000 && wc < 0x2670) + summary = &ksc5601_uni2indx_page20[(wc>>4)-0x200]; + else if (wc >= 0x3000 && wc < 0x33e0) + summary = &ksc5601_uni2indx_page30[(wc>>4)-0x300]; + else if (wc >= 0x4e00 && wc < 0x9fa0) + summary = &ksc5601_uni2indx_page4e[(wc>>4)-0x4e0]; + else if (wc >= 0xac00 && wc < 0xd7a0) + summary = &ksc5601_uni2indx_pageac[(wc>>4)-0xac0]; + else if (wc >= 0xf900 && wc < 0xfa10) + summary = &ksc5601_uni2indx_pagef9[(wc>>4)-0xf90]; + else if (wc >= 0xff00 && wc < 0xfff0) + summary = &ksc5601_uni2indx_pageff[(wc>>4)-0xff0]; + if (summary) { + unsigned short used = summary->used; + unsigned int i = wc & 0x0f; + if (used & ((unsigned short) 1 << i)) { + unsigned short c; + /* Keep in `used' only the bits 0..i-1. */ + used &= ((unsigned short) 1 << i) - 1; + /* Add `summary->indx' and the number of bits set in `used'. */ + used = (used & 0x5555) + ((used & 0xaaaa) >> 1); + used = (used & 0x3333) + ((used & 0xcccc) >> 2); + used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); + used = (used & 0x00ff) + (used >> 8); + c = ksc5601_2charset[summary->indx + used]; + r[0] = (c >> 8); r[1] = (c & 0xff); + return 2; + } + } + return RET_ILUNI; + } + return RET_TOOSMALL; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/libiconv.rc b/graf2d/win32gdk/gdk/src/iconv/libiconv.rc new file mode 100644 index 00000000000..effdb1eff2c --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/libiconv.rc @@ -0,0 +1,38 @@ +/* Resources for iconv.dll */ + +#include <winver.h> + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,14,0,0 + PRODUCTVERSION 1,14,0,0 + FILEFLAGSMASK 0x3fL /* VS_FFI_FILEFLAGSMASK */ +#ifdef _DEBUG + FILEFLAGS 0x1L /* VS_FF_DEBUG */ +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x10004L /* VOS_DOS_WINDOWS32 */ + FILETYPE 0x2L /* VFT_DLL */ + FILESUBTYPE 0x0L /* VFT2_UNKNOWN */ +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "04090000" /* Lang = US English, Charset = ASCII */ + BEGIN + VALUE "Comments", "This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA\0" + VALUE "CompanyName", "Free Software Foundation\0" + VALUE "FileDescription", "LGPLed libiconv for Windows NT/2000/XP/Vista and Windows 95/98/ME\0" + VALUE "FileVersion", PACKAGE_VERSION_STRING "\0" + VALUE "InternalName", "iconv.dll\0" + VALUE "LegalCopyright", "Copyright (C) 1999-2007\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "iconv.dll\0" + VALUE "ProductName", "libiconv: character set conversion library\0" + VALUE "ProductVersion", PACKAGE_VERSION_STRING "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 0 /* US English, ASCII */ + END +END diff --git a/graf2d/win32gdk/gdk/src/iconv/localcharset.c b/graf2d/win32gdk/gdk/src/iconv/localcharset.c new file mode 100644 index 00000000000..31b0e93a369 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/localcharset.c @@ -0,0 +1,502 @@ +/* Determine a canonical name for the current locale's character encoding. + + Copyright (C) 2000-2006, 2008-2009 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU Library General Public License as published + by the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. */ + +/* Written by Bruno Haible <bruno@clisp.org>. */ + +#include <config.h> + +/* Specification. */ +#include "localcharset.h" + +#include <stddef.h> +#include <stdio.h> +#include <string.h> +#include <stdlib.h> + +#if defined __APPLE__ && defined __MACH__ && HAVE_LANGINFO_CODESET +# define DARWIN7 /* Darwin 7 or newer, i.e. MacOS X 10.3 or newer */ +#endif + +#if defined _WIN32 || defined __WIN32__ +# define WIN32_NATIVE +#endif + +#if defined __EMX__ +/* Assume EMX program runs on OS/2, even if compiled under DOS. */ +# ifndef OS2 +# define OS2 +# endif +#endif + +#if !defined WIN32_NATIVE +# if HAVE_LANGINFO_CODESET +# include <langinfo.h> +# else +# if 0 /* see comment below */ +# include <locale.h> +# endif +# endif +# ifdef __CYGWIN__ +# define WIN32_LEAN_AND_MEAN +# include <windows.h> +# endif +#elif defined WIN32_NATIVE +# define WIN32_LEAN_AND_MEAN +# include <windows.h> +#endif +#if defined OS2 +# define INCL_DOS +# include <os2.h> +#endif + +#if ENABLE_RELOCATABLE +# include "relocatable.h" +#else +# define relocate(pathname) (pathname) +#endif + +#if NOT_FOR_MSVC +/* Get LIBDIR. */ +#ifndef LIBDIR +# include "configmake.h" +#endif +#endif + +#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ + /* Win32, Cygwin, OS/2, DOS */ +# define ISSLASH(C) ((C) == '/' || (C) == '\\') +#endif + +#ifndef DIRECTORY_SEPARATOR +# define DIRECTORY_SEPARATOR '/' +#endif + +#ifndef ISSLASH +# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR) +#endif + +#if HAVE_DECL_GETC_UNLOCKED +# undef getc +# define getc getc_unlocked +#endif + +/* The following static variable is declared 'volatile' to avoid a + possible multithread problem in the function get_charset_aliases. If we + are running in a threaded environment, and if two threads initialize + 'charset_aliases' simultaneously, both will produce the same value, + and everything will be ok if the two assignments to 'charset_aliases' + are atomic. But I don't know what will happen if the two assignments mix. */ +#if __STDC__ != 1 +# define volatile /* empty */ +#endif +/* Pointer to the contents of the charset.alias file, if it has already been + read, else NULL. Its format is: + ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */ +static const char * volatile charset_aliases; + +/* Return a pointer to the contents of the charset.alias file. */ +static const char * +get_charset_aliases (void) +{ + const char *cp; + + cp = charset_aliases; + if (cp == NULL) + { +#if !(defined DARWIN7 || defined VMS || defined WIN32_NATIVE || defined __CYGWIN__) + FILE *fp; + const char *dir; + const char *base = "charset.alias"; + char *file_name; + + /* Make it possible to override the charset.alias location. This is + necessary for running the testsuite before "make install". */ + dir = getenv ("CHARSETALIASDIR"); + if (dir == NULL || dir[0] == '\0') + dir = relocate (LIBDIR); + + /* Concatenate dir and base into freshly allocated file_name. */ + { + size_t dir_len = strlen (dir); + size_t base_len = strlen (base); + int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1])); + file_name = (char *) malloc (dir_len + add_slash + base_len + 1); + if (file_name != NULL) + { + memcpy (file_name, dir, dir_len); + if (add_slash) + file_name[dir_len] = DIRECTORY_SEPARATOR; + memcpy (file_name + dir_len + add_slash, base, base_len + 1); + } + } + + if (file_name == NULL || (fp = fopen (file_name, "r")) == NULL) + /* Out of memory or file not found, treat it as empty. */ + cp = ""; + else + { + /* Parse the file's contents. */ + char *res_ptr = NULL; + size_t res_size = 0; + + for (;;) + { + int c; + char buf1[50+1]; + char buf2[50+1]; + size_t l1, l2; + char *old_res_ptr; + + c = getc (fp); + if (c == EOF) + break; + if (c == '\n' || c == ' ' || c == '\t') + continue; + if (c == '#') + { + /* Skip comment, to end of line. */ + do + c = getc (fp); + while (!(c == EOF || c == '\n')); + if (c == EOF) + break; + continue; + } + ungetc (c, fp); + if (fscanf (fp, "%50s %50s", buf1, buf2) < 2) + break; + l1 = strlen (buf1); + l2 = strlen (buf2); + old_res_ptr = res_ptr; + if (res_size == 0) + { + res_size = l1 + 1 + l2 + 1; + res_ptr = (char *) malloc (res_size + 1); + } + else + { + res_size += l1 + 1 + l2 + 1; + res_ptr = (char *) realloc (res_ptr, res_size + 1); + } + if (res_ptr == NULL) + { + /* Out of memory. */ + res_size = 0; + if (old_res_ptr != NULL) + free (old_res_ptr); + break; + } + strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1); + strcpy (res_ptr + res_size - (l2 + 1), buf2); + } + fclose (fp); + if (res_size == 0) + cp = ""; + else + { + *(res_ptr + res_size) = '\0'; + cp = res_ptr; + } + } + + if (file_name != NULL) + free (file_name); + +#else + +# if defined DARWIN7 + /* To avoid the trouble of installing a file that is shared by many + GNU packages -- many packaging systems have problems with this --, + simply inline the aliases here. */ + cp = "ISO8859-1" "\0" "ISO-8859-1" "\0" + "ISO8859-2" "\0" "ISO-8859-2" "\0" + "ISO8859-4" "\0" "ISO-8859-4" "\0" + "ISO8859-5" "\0" "ISO-8859-5" "\0" + "ISO8859-7" "\0" "ISO-8859-7" "\0" + "ISO8859-9" "\0" "ISO-8859-9" "\0" + "ISO8859-13" "\0" "ISO-8859-13" "\0" + "ISO8859-15" "\0" "ISO-8859-15" "\0" + "KOI8-R" "\0" "KOI8-R" "\0" + "KOI8-U" "\0" "KOI8-U" "\0" + "CP866" "\0" "CP866" "\0" + "CP949" "\0" "CP949" "\0" + "CP1131" "\0" "CP1131" "\0" + "CP1251" "\0" "CP1251" "\0" + "eucCN" "\0" "GB2312" "\0" + "GB2312" "\0" "GB2312" "\0" + "eucJP" "\0" "EUC-JP" "\0" + "eucKR" "\0" "EUC-KR" "\0" + "Big5" "\0" "BIG5" "\0" + "Big5HKSCS" "\0" "BIG5-HKSCS" "\0" + "GBK" "\0" "GBK" "\0" + "GB18030" "\0" "GB18030" "\0" + "SJIS" "\0" "SHIFT_JIS" "\0" + "ARMSCII-8" "\0" "ARMSCII-8" "\0" + "PT154" "\0" "PT154" "\0" + /*"ISCII-DEV" "\0" "?" "\0"*/ + "*" "\0" "UTF-8" "\0"; +# endif + +# if defined VMS + /* To avoid the troubles of an extra file charset.alias_vms in the + sources of many GNU packages, simply inline the aliases here. */ + /* The list of encodings is taken from the OpenVMS 7.3-1 documentation + "Compaq C Run-Time Library Reference Manual for OpenVMS systems" + section 10.7 "Handling Different Character Sets". */ + cp = "ISO8859-1" "\0" "ISO-8859-1" "\0" + "ISO8859-2" "\0" "ISO-8859-2" "\0" + "ISO8859-5" "\0" "ISO-8859-5" "\0" + "ISO8859-7" "\0" "ISO-8859-7" "\0" + "ISO8859-8" "\0" "ISO-8859-8" "\0" + "ISO8859-9" "\0" "ISO-8859-9" "\0" + /* Japanese */ + "eucJP" "\0" "EUC-JP" "\0" + "SJIS" "\0" "SHIFT_JIS" "\0" + "DECKANJI" "\0" "DEC-KANJI" "\0" + "SDECKANJI" "\0" "EUC-JP" "\0" + /* Chinese */ + "eucTW" "\0" "EUC-TW" "\0" + "DECHANYU" "\0" "DEC-HANYU" "\0" + "DECHANZI" "\0" "GB2312" "\0" + /* Korean */ + "DECKOREAN" "\0" "EUC-KR" "\0"; +# endif + +# if defined WIN32_NATIVE || defined __CYGWIN__ + /* To avoid the troubles of installing a separate file in the same + directory as the DLL and of retrieving the DLL's directory at + runtime, simply inline the aliases here. */ + + cp = "CP936" "\0" "GBK" "\0" + "CP1361" "\0" "JOHAB" "\0" + "CP20127" "\0" "ASCII" "\0" + "CP20866" "\0" "KOI8-R" "\0" + "CP20936" "\0" "GB2312" "\0" + "CP21866" "\0" "KOI8-RU" "\0" + "CP28591" "\0" "ISO-8859-1" "\0" + "CP28592" "\0" "ISO-8859-2" "\0" + "CP28593" "\0" "ISO-8859-3" "\0" + "CP28594" "\0" "ISO-8859-4" "\0" + "CP28595" "\0" "ISO-8859-5" "\0" + "CP28596" "\0" "ISO-8859-6" "\0" + "CP28597" "\0" "ISO-8859-7" "\0" + "CP28598" "\0" "ISO-8859-8" "\0" + "CP28599" "\0" "ISO-8859-9" "\0" + "CP28605" "\0" "ISO-8859-15" "\0" + "CP38598" "\0" "ISO-8859-8" "\0" + "CP51932" "\0" "EUC-JP" "\0" + "CP51936" "\0" "GB2312" "\0" + "CP51949" "\0" "EUC-KR" "\0" + "CP51950" "\0" "EUC-TW" "\0" + "CP54936" "\0" "GB18030" "\0" + "CP65001" "\0" "UTF-8" "\0"; +# endif +#endif + + charset_aliases = cp; + } + + return cp; +} + +/* Determine the current locale's character encoding, and canonicalize it + into one of the canonical names listed in config.charset. + The result must not be freed; it is statically allocated. + If the canonical name cannot be determined, the result is a non-canonical + name. */ + +#ifdef STATIC +STATIC +#endif +const char * +locale_charset (void) +{ + const char *codeset; + const char *aliases; + +#if !(defined WIN32_NATIVE || defined OS2) + +# if HAVE_LANGINFO_CODESET + + /* Most systems support nl_langinfo (CODESET) nowadays. */ + codeset = nl_langinfo (CODESET); + +# ifdef __CYGWIN__ + /* Cygwin 2006 does not have locales. nl_langinfo (CODESET) always + returns "US-ASCII". As long as this is not fixed, return the suffix + of the locale name from the environment variables (if present) or + the codepage as a number. */ + if (codeset != NULL && strcmp (codeset, "US-ASCII") == 0) + { + const char *locale; + static char buf[2 + 10 + 1]; + + locale = getenv ("LC_ALL"); + if (locale == NULL || locale[0] == '\0') + { + locale = getenv ("LC_CTYPE"); + if (locale == NULL || locale[0] == '\0') + locale = getenv ("LANG"); + } + if (locale != NULL && locale[0] != '\0') + { + /* If the locale name contains an encoding after the dot, return + it. */ + const char *dot = strchr (locale, '.'); + + if (dot != NULL) + { + const char *modifier; + + dot++; + /* Look for the possible @... trailer and remove it, if any. */ + modifier = strchr (dot, '@'); + if (modifier == NULL) + return dot; + if (modifier - dot < sizeof (buf)) + { + memcpy (buf, dot, modifier - dot); + buf [modifier - dot] = '\0'; + return buf; + } + } + } + + /* Woe32 has a function returning the locale's codepage as a number. */ + sprintf (buf, "CP%u", GetACP ()); + codeset = buf; + } +# endif + +# else + + /* On old systems which lack it, use setlocale or getenv. */ + const char *locale = NULL; + + /* But most old systems don't have a complete set of locales. Some + (like SunOS 4 or DJGPP) have only the C locale. Therefore we don't + use setlocale here; it would return "C" when it doesn't support the + locale name the user has set. */ +# if 0 + locale = setlocale (LC_CTYPE, NULL); +# endif + if (locale == NULL || locale[0] == '\0') + { + locale = getenv ("LC_ALL"); + if (locale == NULL || locale[0] == '\0') + { + locale = getenv ("LC_CTYPE"); + if (locale == NULL || locale[0] == '\0') + locale = getenv ("LANG"); + } + } + + /* On some old systems, one used to set locale = "iso8859_1". On others, + you set it to "language_COUNTRY.charset". In any case, we resolve it + through the charset.alias file. */ + codeset = locale; + +# endif + +#elif defined WIN32_NATIVE + + static char buf[2 + 10 + 1]; + + /* Woe32 has a function returning the locale's codepage as a number. */ + sprintf (buf, "CP%u", GetACP ()); + codeset = buf; + +#elif defined OS2 + + const char *locale; + static char buf[2 + 10 + 1]; + ULONG cp[3]; + ULONG cplen; + + /* Allow user to override the codeset, as set in the operating system, + with standard language environment variables. */ + locale = getenv ("LC_ALL"); + if (locale == NULL || locale[0] == '\0') + { + locale = getenv ("LC_CTYPE"); + if (locale == NULL || locale[0] == '\0') + locale = getenv ("LANG"); + } + if (locale != NULL && locale[0] != '\0') + { + /* If the locale name contains an encoding after the dot, return it. */ + const char *dot = strchr (locale, '.'); + + if (dot != NULL) + { + const char *modifier; + + dot++; + /* Look for the possible @... trailer and remove it, if any. */ + modifier = strchr (dot, '@'); + if (modifier == NULL) + return dot; + if (modifier - dot < sizeof (buf)) + { + memcpy (buf, dot, modifier - dot); + buf [modifier - dot] = '\0'; + return buf; + } + } + + /* Resolve through the charset.alias file. */ + codeset = locale; + } + else + { + /* OS/2 has a function returning the locale's codepage as a number. */ + if (DosQueryCp (sizeof (cp), cp, &cplen)) + codeset = ""; + else + { + sprintf (buf, "CP%u", cp[0]); + codeset = buf; + } + } + +#endif + + if (codeset == NULL) + /* The canonical name cannot be determined. */ + codeset = ""; + + /* Resolve alias. */ + for (aliases = get_charset_aliases (); + *aliases != '\0'; + aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1) + if (strcmp (codeset, aliases) == 0 + || (aliases[0] == '*' && aliases[1] == '\0')) + { + codeset = aliases + strlen (aliases) + 1; + break; + } + + /* Don't return an empty string. GNU libc and GNU libiconv interpret + the empty string as denoting "the locale's character encoding", + thus GNU libiconv would call this function a second time. */ + if (codeset[0] == '\0') + codeset = "ASCII"; + + return codeset; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/localcharset.h b/graf2d/win32gdk/gdk/src/iconv/localcharset.h new file mode 100644 index 00000000000..32faedacdf4 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/localcharset.h @@ -0,0 +1,49 @@ +/* Determine a canonical name for the current locale's character encoding. + Copyright (C) 2000-2003 Free Software Foundation, Inc. + This file is part of the GNU CHARSET Library. + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU Library General Public License as published + by the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. */ + +#ifndef _LOCALCHARSET_H +#define _LOCALCHARSET_H + +#ifdef BUILDING_LIBCHARSET +#define LIBCHARSET_DLL_EXPORTED __declspec(dllexport) +#elif USING_STATIC_LIBICONV +#define LIBCHARSET_DLL_EXPORTED +#else +#define LIBCHARSET_DLL_EXPORTED __declspec(dllimport) +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Determine the current locale's character encoding, and canonicalize it + into one of the canonical names listed in config.charset. + The result must not be freed; it is statically allocated. + If the canonical name cannot be determined, the result is a non-canonical + name. */ +extern LIBCHARSET_DLL_EXPORTED const char * locale_charset (void); + + +#ifdef __cplusplus +} +#endif + + +#endif /* _LOCALCHARSET_H */ diff --git a/graf2d/win32gdk/gdk/src/iconv/loop_unicode.h b/graf2d/win32gdk/gdk/src/iconv/loop_unicode.h new file mode 100644 index 00000000000..1c787b5f7d5 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/loop_unicode.h @@ -0,0 +1,527 @@ +/* + * Copyright (C) 1999-2003, 2005-2006, 2008 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* This file defines the conversion loop via Unicode as a pivot encoding. */ + +/* Attempt to transliterate wc. Return code as in xxx_wctomb. */ +static int unicode_transliterate (conv_t cd, ucs4_t wc, + unsigned char* outptr, size_t outleft) +{ + if (cd->oflags & HAVE_HANGUL_JAMO) { + /* Decompose Hangul into Jamo. Use double-width Jamo (contained + in all Korean encodings and ISO-2022-JP-2), not half-width Jamo + (contained in Unicode only). */ + ucs4_t buf[3]; + int ret = johab_hangul_decompose(cd,buf,wc); + if (ret != RET_ILUNI) { + /* we know 1 <= ret <= 3 */ + state_t backup_state = cd->ostate; + unsigned char* backup_outptr = outptr; + size_t backup_outleft = outleft; + int i, sub_outcount; + for (i = 0; i < ret; i++) { + if (outleft == 0) { + sub_outcount = RET_TOOSMALL; + goto johab_hangul_failed; + } + sub_outcount = cd->ofuncs.xxx_wctomb(cd,outptr,buf[i],outleft); + if (sub_outcount <= RET_ILUNI) + goto johab_hangul_failed; + if (!(sub_outcount <= outleft)) abort(); + outptr += sub_outcount; outleft -= sub_outcount; + } + return outptr-backup_outptr; + johab_hangul_failed: + cd->ostate = backup_state; + outptr = backup_outptr; + outleft = backup_outleft; + if (sub_outcount != RET_ILUNI) + return RET_TOOSMALL; + } + } + { + /* Try to use a variant, but postfix it with + U+303E IDEOGRAPHIC VARIATION INDICATOR + (cf. Ken Lunde's "CJKV information processing", p. 188). */ + int indx = -1; + if (wc == 0x3006) + indx = 0; + else if (wc == 0x30f6) + indx = 1; + else if (wc >= 0x4e00 && wc < 0xa000) + indx = cjk_variants_indx[wc-0x4e00]; + if (indx >= 0) { + for (;; indx++) { + ucs4_t buf[2]; + unsigned short variant = cjk_variants[indx]; + unsigned short last = variant & 0x8000; + variant &= 0x7fff; + variant += 0x3000; + buf[0] = variant; buf[1] = 0x303e; + { + state_t backup_state = cd->ostate; + unsigned char* backup_outptr = outptr; + size_t backup_outleft = outleft; + int i, sub_outcount; + for (i = 0; i < 2; i++) { + if (outleft == 0) { + sub_outcount = RET_TOOSMALL; + goto variant_failed; + } + sub_outcount = cd->ofuncs.xxx_wctomb(cd,outptr,buf[i],outleft); + if (sub_outcount <= RET_ILUNI) + goto variant_failed; + if (!(sub_outcount <= outleft)) abort(); + outptr += sub_outcount; outleft -= sub_outcount; + } + return outptr-backup_outptr; + variant_failed: + cd->ostate = backup_state; + outptr = backup_outptr; + outleft = backup_outleft; + if (sub_outcount != RET_ILUNI) + return RET_TOOSMALL; + } + if (last) + break; + } + } + } + if (wc >= 0x2018 && wc <= 0x201a) { + /* Special case for quotation marks 0x2018, 0x2019, 0x201a */ + ucs4_t substitute = + (cd->oflags & HAVE_QUOTATION_MARKS + ? (wc == 0x201a ? 0x2018 : wc) + : (cd->oflags & HAVE_ACCENTS + ? (wc==0x2019 ? 0x00b4 : 0x0060) /* use accents */ + : 0x0027 /* use apostrophe */ + ) ); + int outcount = cd->ofuncs.xxx_wctomb(cd,outptr,substitute,outleft); + if (outcount != RET_ILUNI) + return outcount; + } + { + /* Use the transliteration table. */ + int indx = translit_index(wc); + if (indx >= 0) { + const unsigned int * cp = &translit_data[indx]; + unsigned int num = *cp++; + state_t backup_state = cd->ostate; + unsigned char* backup_outptr = outptr; + size_t backup_outleft = outleft; + unsigned int i; + int sub_outcount; + for (i = 0; i < num; i++) { + if (outleft == 0) { + sub_outcount = RET_TOOSMALL; + goto translit_failed; + } + sub_outcount = cd->ofuncs.xxx_wctomb(cd,outptr,cp[i],outleft); + if (sub_outcount == RET_ILUNI) + /* Recursive transliteration. */ + sub_outcount = unicode_transliterate(cd,cp[i],outptr,outleft); + if (sub_outcount <= RET_ILUNI) + goto translit_failed; + if (!(sub_outcount <= outleft)) abort(); + outptr += sub_outcount; outleft -= sub_outcount; + } + return outptr-backup_outptr; + translit_failed: + cd->ostate = backup_state; + outptr = backup_outptr; + outleft = backup_outleft; + if (sub_outcount != RET_ILUNI) + return RET_TOOSMALL; + } + } + return RET_ILUNI; +} + +#ifndef LIBICONV_PLUG + +struct uc_to_mb_fallback_locals { + unsigned char* l_outbuf; + size_t l_outbytesleft; + int l_errno; +}; + +static void uc_to_mb_write_replacement (const char *buf, size_t buflen, + void* callback_arg) +{ + struct uc_to_mb_fallback_locals * plocals = + (struct uc_to_mb_fallback_locals *) callback_arg; + /* Do nothing if already encountered an error in a previous call. */ + if (plocals->l_errno == 0) { + /* Attempt to copy the passed buffer to the output buffer. */ + if (plocals->l_outbytesleft < buflen) + plocals->l_errno = E2BIG; + else { + memcpy(plocals->l_outbuf, buf, buflen); + plocals->l_outbuf += buflen; + plocals->l_outbytesleft -= buflen; + } + } +} + +struct mb_to_uc_fallback_locals { + conv_t l_cd; + unsigned char* l_outbuf; + size_t l_outbytesleft; + int l_errno; +}; + +static void mb_to_uc_write_replacement (const unsigned int *buf, size_t buflen, + void* callback_arg) +{ + struct mb_to_uc_fallback_locals * plocals = + (struct mb_to_uc_fallback_locals *) callback_arg; + /* Do nothing if already encountered an error in a previous call. */ + if (plocals->l_errno == 0) { + /* Attempt to convert the passed buffer to the target encoding. */ + conv_t cd = plocals->l_cd; + unsigned char* outptr = plocals->l_outbuf; + size_t outleft = plocals->l_outbytesleft; + for (; buflen > 0; buf++, buflen--) { + ucs4_t wc = *buf; + int outcount; + if (outleft == 0) { + plocals->l_errno = E2BIG; + break; + } + outcount = cd->ofuncs.xxx_wctomb(cd,outptr,wc,outleft); + if (outcount != RET_ILUNI) + goto outcount_ok; + /* Handle Unicode tag characters (range U+E0000..U+E007F). */ + if ((wc >> 7) == (0xe0000 >> 7)) + goto outcount_zero; + /* Try transliteration. */ + if (cd->transliterate) { + outcount = unicode_transliterate(cd,wc,outptr,outleft); + if (outcount != RET_ILUNI) + goto outcount_ok; + } + if (cd->discard_ilseq) { + outcount = 0; + goto outcount_ok; + } + #ifndef LIBICONV_PLUG + else if (cd->fallbacks.uc_to_mb_fallback != NULL) { + struct uc_to_mb_fallback_locals locals; + locals.l_outbuf = outptr; + locals.l_outbytesleft = outleft; + locals.l_errno = 0; + cd->fallbacks.uc_to_mb_fallback(wc, + uc_to_mb_write_replacement, + &locals, + cd->fallbacks.data); + if (locals.l_errno != 0) { + plocals->l_errno = locals.l_errno; + break; + } + outptr = locals.l_outbuf; + outleft = locals.l_outbytesleft; + outcount = 0; + goto outcount_ok; + } + #endif + outcount = cd->ofuncs.xxx_wctomb(cd,outptr,0xFFFD,outleft); + if (outcount != RET_ILUNI) + goto outcount_ok; + plocals->l_errno = EILSEQ; + break; + outcount_ok: + if (outcount < 0) { + plocals->l_errno = E2BIG; + break; + } + #ifndef LIBICONV_PLUG + if (cd->hooks.uc_hook) + (*cd->hooks.uc_hook)(wc, cd->hooks.data); + #endif + if (!(outcount <= outleft)) abort(); + outptr += outcount; outleft -= outcount; + outcount_zero: ; + } + plocals->l_outbuf = outptr; + plocals->l_outbytesleft = outleft; + } +} + +#endif /* !LIBICONV_PLUG */ + +static size_t unicode_loop_convert (iconv_t icd, + const char* * inbuf, size_t *inbytesleft, + char* * outbuf, size_t *outbytesleft) +{ + conv_t cd = (conv_t) icd; + size_t result = 0; + const unsigned char* inptr = (const unsigned char*) *inbuf; + size_t inleft = *inbytesleft; + unsigned char* outptr = (unsigned char*) *outbuf; + size_t outleft = *outbytesleft; + while (inleft > 0) { + state_t last_istate = cd->istate; + ucs4_t wc; + int incount; + int outcount; + incount = cd->ifuncs.xxx_mbtowc(cd,&wc,inptr,inleft); + if (incount < 0) { + if ((unsigned int)(-1-incount) % 2 == (unsigned int)(-1-RET_ILSEQ) % 2) { + /* Case 1: invalid input, possibly after a shift sequence */ + incount = DECODE_SHIFT_ILSEQ(incount); + if (cd->discard_ilseq) { + switch (cd->iindex) { + case ei_ucs4: case ei_ucs4be: case ei_ucs4le: + case ei_utf32: case ei_utf32be: case ei_utf32le: + case ei_ucs4internal: case ei_ucs4swapped: + incount += 4; break; + case ei_ucs2: case ei_ucs2be: case ei_ucs2le: + case ei_utf16: case ei_utf16be: case ei_utf16le: + case ei_ucs2internal: case ei_ucs2swapped: + incount += 2; break; + default: + incount += 1; break; + } + goto outcount_zero; + } + #ifndef LIBICONV_PLUG + else if (cd->fallbacks.mb_to_uc_fallback != NULL) { + unsigned int incount2; + struct mb_to_uc_fallback_locals locals; + switch (cd->iindex) { + case ei_ucs4: case ei_ucs4be: case ei_ucs4le: + case ei_utf32: case ei_utf32be: case ei_utf32le: + case ei_ucs4internal: case ei_ucs4swapped: + incount2 = 4; break; + case ei_ucs2: case ei_ucs2be: case ei_ucs2le: + case ei_utf16: case ei_utf16be: case ei_utf16le: + case ei_ucs2internal: case ei_ucs2swapped: + incount2 = 2; break; + default: + incount2 = 1; break; + } + locals.l_cd = cd; + locals.l_outbuf = outptr; + locals.l_outbytesleft = outleft; + locals.l_errno = 0; + cd->fallbacks.mb_to_uc_fallback((const char*)inptr+incount, incount2, + mb_to_uc_write_replacement, + &locals, + cd->fallbacks.data); + if (locals.l_errno != 0) { + inptr += incount; inleft -= incount; + errno = locals.l_errno; + result = -1; + break; + } + incount += incount2; + outptr = locals.l_outbuf; + outleft = locals.l_outbytesleft; + result += 1; + goto outcount_zero; + } + #endif + inptr += incount; inleft -= incount; + errno = EILSEQ; + result = -1; + break; + } + if (incount == RET_TOOFEW(0)) { + /* Case 2: not enough bytes available to detect anything */ + errno = EINVAL; + result = -1; + break; + } + /* Case 3: k bytes read, but only a shift sequence */ + incount = DECODE_TOOFEW(incount); + } else { + /* Case 4: k bytes read, making up a wide character */ + if (outleft == 0) { + cd->istate = last_istate; + errno = E2BIG; + result = -1; + break; + } + outcount = cd->ofuncs.xxx_wctomb(cd,outptr,wc,outleft); + if (outcount != RET_ILUNI) + goto outcount_ok; + /* Handle Unicode tag characters (range U+E0000..U+E007F). */ + if ((wc >> 7) == (0xe0000 >> 7)) + goto outcount_zero; + /* Try transliteration. */ + result++; + if (cd->transliterate) { + outcount = unicode_transliterate(cd,wc,outptr,outleft); + if (outcount != RET_ILUNI) + goto outcount_ok; + } + if (cd->discard_ilseq) { + outcount = 0; + goto outcount_ok; + } + #ifndef LIBICONV_PLUG + else if (cd->fallbacks.uc_to_mb_fallback != NULL) { + struct uc_to_mb_fallback_locals locals; + locals.l_outbuf = outptr; + locals.l_outbytesleft = outleft; + locals.l_errno = 0; + cd->fallbacks.uc_to_mb_fallback(wc, + uc_to_mb_write_replacement, + &locals, + cd->fallbacks.data); + if (locals.l_errno != 0) { + cd->istate = last_istate; + errno = locals.l_errno; + return -1; + } + outptr = locals.l_outbuf; + outleft = locals.l_outbytesleft; + outcount = 0; + goto outcount_ok; + } + #endif + outcount = cd->ofuncs.xxx_wctomb(cd,outptr,0xFFFD,outleft); + if (outcount != RET_ILUNI) + goto outcount_ok; + cd->istate = last_istate; + errno = EILSEQ; + result = -1; + break; + outcount_ok: + if (outcount < 0) { + cd->istate = last_istate; + errno = E2BIG; + result = -1; + break; + } + #ifndef LIBICONV_PLUG + if (cd->hooks.uc_hook) + (*cd->hooks.uc_hook)(wc, cd->hooks.data); + #endif + if (!(outcount <= outleft)) abort(); + outptr += outcount; outleft -= outcount; + } + outcount_zero: + if (!(incount <= inleft)) abort(); + inptr += incount; inleft -= incount; + } + *inbuf = (const char*) inptr; + *inbytesleft = inleft; + *outbuf = (char*) outptr; + *outbytesleft = outleft; + return result; +} + +static size_t unicode_loop_reset (iconv_t icd, + char* * outbuf, size_t *outbytesleft) +{ + conv_t cd = (conv_t) icd; + if (outbuf == NULL || *outbuf == NULL) { + /* Reset the states. */ + memset(&cd->istate,'\0',sizeof(state_t)); + memset(&cd->ostate,'\0',sizeof(state_t)); + return 0; + } else { + size_t result = 0; + if (cd->ifuncs.xxx_flushwc) { + state_t last_istate = cd->istate; + ucs4_t wc; + if (cd->ifuncs.xxx_flushwc(cd, &wc)) { + unsigned char* outptr = (unsigned char*) *outbuf; + size_t outleft = *outbytesleft; + int outcount = cd->ofuncs.xxx_wctomb(cd,outptr,wc,outleft); + if (outcount != RET_ILUNI) + goto outcount_ok; + /* Handle Unicode tag characters (range U+E0000..U+E007F). */ + if ((wc >> 7) == (0xe0000 >> 7)) + goto outcount_zero; + /* Try transliteration. */ + result++; + if (cd->transliterate) { + outcount = unicode_transliterate(cd,wc,outptr,outleft); + if (outcount != RET_ILUNI) + goto outcount_ok; + } + if (cd->discard_ilseq) { + outcount = 0; + goto outcount_ok; + } + #ifndef LIBICONV_PLUG + else if (cd->fallbacks.uc_to_mb_fallback != NULL) { + struct uc_to_mb_fallback_locals locals; + locals.l_outbuf = outptr; + locals.l_outbytesleft = outleft; + locals.l_errno = 0; + cd->fallbacks.uc_to_mb_fallback(wc, + uc_to_mb_write_replacement, + &locals, + cd->fallbacks.data); + if (locals.l_errno != 0) { + cd->istate = last_istate; + errno = locals.l_errno; + return -1; + } + outptr = locals.l_outbuf; + outleft = locals.l_outbytesleft; + outcount = 0; + goto outcount_ok; + } + #endif + outcount = cd->ofuncs.xxx_wctomb(cd,outptr,0xFFFD,outleft); + if (outcount != RET_ILUNI) + goto outcount_ok; + cd->istate = last_istate; + errno = EILSEQ; + return -1; + outcount_ok: + if (outcount < 0) { + cd->istate = last_istate; + errno = E2BIG; + return -1; + } + #ifndef LIBICONV_PLUG + if (cd->hooks.uc_hook) + (*cd->hooks.uc_hook)(wc, cd->hooks.data); + #endif + if (!(outcount <= outleft)) abort(); + outptr += outcount; + outleft -= outcount; + outcount_zero: + *outbuf = (char*) outptr; + *outbytesleft = outleft; + } + } + if (cd->ofuncs.xxx_reset) { + unsigned char* outptr = (unsigned char*) *outbuf; + size_t outleft = *outbytesleft; + int outcount = cd->ofuncs.xxx_reset(cd,outptr,outleft); + if (outcount < 0) { + errno = E2BIG; + return -1; + } + if (!(outcount <= outleft)) abort(); + *outbuf = (char*) (outptr + outcount); + *outbytesleft = outleft - outcount; + } + memset(&cd->istate,'\0',sizeof(state_t)); + memset(&cd->ostate,'\0',sizeof(state_t)); + return result; + } +} diff --git a/graf2d/win32gdk/gdk/src/iconv/loop_wchar.h b/graf2d/win32gdk/gdk/src/iconv/loop_wchar.h new file mode 100644 index 00000000000..30d5dbd0764 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/loop_wchar.h @@ -0,0 +1,458 @@ +/* + * Copyright (C) 2000-2002, 2005-2006, 2008 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* This file defines three conversion loops: + - from wchar_t to anything else, + - from anything else to wchar_t, + - from wchar_t to wchar_t. + */ + +#if HAVE_WCRTOMB || HAVE_MBRTOWC +# include <wchar.h> +# define BUF_SIZE 64 /* assume MB_LEN_MAX <= 64 */ + /* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */ + extern size_t mbrtowc (); +# ifdef mbstate_t +# define mbrtowc(pwc, s, n, ps) (mbrtowc)(pwc, s, n, 0) +# define mbsinit(ps) 1 +# endif +# ifndef mbsinit +# if !HAVE_MBSINIT +# define mbsinit(ps) 1 +# endif +# endif +#endif + +/* + * The first two conversion loops have an extended conversion descriptor. + */ +struct wchar_conv_struct { + struct conv_struct parent; +#if HAVE_WCRTOMB || HAVE_MBRTOWC + mbstate_t state; +#endif +}; + + +#if HAVE_WCRTOMB + +/* From wchar_t to anything else. */ + +#ifndef LIBICONV_PLUG + +#if 0 + +struct wc_to_mb_fallback_locals { + struct wchar_conv_struct * l_wcd; + char* l_outbuf; + size_t l_outbytesleft; + int l_errno; +}; + +/* A callback that writes a string given in the locale encoding. */ +static void wc_to_mb_write_replacement (const char *buf, size_t buflen, + void* callback_arg) +{ + struct wc_to_mb_fallback_locals * plocals = + (struct wc_to_mb_fallback_locals *) callback_arg; + /* Do nothing if already encountered an error in a previous call. */ + if (plocals->l_errno == 0) { + /* Attempt to convert the passed buffer to the target encoding. + Here we don't support characters split across multiple calls. */ + const char* bufptr = buf; + size_t bufleft = buflen; + size_t res = unicode_loop_convert(&plocals->l_wcd->parent, + &bufptr,&bufleft, + &plocals->l_outbuf,&plocals->l_outbytesleft); + if (res == (size_t)(-1)) { + if (errno == EILSEQ || errno == EINVAL) + /* Invalid buf contents. */ + plocals->l_errno = EILSEQ; + else if (errno == E2BIG) + /* Output buffer too small. */ + plocals->l_errno = E2BIG; + else + abort(); + } else { + /* Successful conversion. */ + if (bufleft > 0) + abort(); + } + } +} + +#else + +struct wc_to_mb_fallback_locals { + char* l_outbuf; + size_t l_outbytesleft; + int l_errno; +}; + +/* A callback that writes a string given in the target encoding. */ +static void wc_to_mb_write_replacement (const char *buf, size_t buflen, + void* callback_arg) +{ + struct wc_to_mb_fallback_locals * plocals = + (struct wc_to_mb_fallback_locals *) callback_arg; + /* Do nothing if already encountered an error in a previous call. */ + if (plocals->l_errno == 0) { + /* Attempt to copy the passed buffer to the output buffer. */ + if (plocals->l_outbytesleft < buflen) + plocals->l_errno = E2BIG; + else { + memcpy(plocals->l_outbuf, buf, buflen); + plocals->l_outbuf += buflen; + plocals->l_outbytesleft -= buflen; + } + } +} + +#endif + +#endif /* !LIBICONV_PLUG */ + +static size_t wchar_from_loop_convert (iconv_t icd, + const char* * inbuf, size_t *inbytesleft, + char* * outbuf, size_t *outbytesleft) +{ + struct wchar_conv_struct * wcd = (struct wchar_conv_struct *) icd; + size_t result = 0; + while (*inbytesleft >= sizeof(wchar_t)) { + const wchar_t * inptr = (const wchar_t *) *inbuf; + size_t inleft = *inbytesleft; + char buf[BUF_SIZE]; + mbstate_t state = wcd->state; + size_t bufcount = 0; + while (inleft >= sizeof(wchar_t)) { + /* Convert one wchar_t to multibyte representation. */ + size_t count = wcrtomb(buf+bufcount,*inptr,&state); + if (count == (size_t)(-1)) { + /* Invalid input. */ + if (wcd->parent.discard_ilseq) { + count = 0; + } + #ifndef LIBICONV_PLUG + else if (wcd->parent.fallbacks.wc_to_mb_fallback != NULL) { + /* Drop the contents of buf[] accumulated so far, and instead + pass all queued wide characters to the fallback handler. */ + struct wc_to_mb_fallback_locals locals; + const wchar_t * fallback_inptr; + #if 0 + locals.l_wcd = wcd; + #endif + locals.l_outbuf = *outbuf; + locals.l_outbytesleft = *outbytesleft; + locals.l_errno = 0; + for (fallback_inptr = (const wchar_t *) *inbuf; + fallback_inptr <= inptr; + fallback_inptr++) + wcd->parent.fallbacks.wc_to_mb_fallback(*fallback_inptr, + wc_to_mb_write_replacement, + &locals, + wcd->parent.fallbacks.data); + if (locals.l_errno != 0) { + errno = locals.l_errno; + return -1; + } + wcd->state = state; + *inbuf = (const char *) (inptr + 1); + *inbytesleft = inleft - sizeof(wchar_t); + *outbuf = locals.l_outbuf; + *outbytesleft = locals.l_outbytesleft; + result += 1; + break; + } + #endif + else { + errno = EILSEQ; + return -1; + } + } + inptr++; + inleft -= sizeof(wchar_t); + bufcount += count; + if (count == 0) { + /* Continue, append next wchar_t. */ + } else { + /* Attempt to convert the accumulated multibyte representations + to the target encoding. */ + const char* bufptr = buf; + size_t bufleft = bufcount; + char* outptr = *outbuf; + size_t outleft = *outbytesleft; + size_t res = unicode_loop_convert(&wcd->parent, + &bufptr,&bufleft, + &outptr,&outleft); + if (res == (size_t)(-1)) { + if (errno == EILSEQ) + /* Invalid input. */ + return -1; + else if (errno == E2BIG) + /* Output buffer too small. */ + return -1; + else if (errno == EINVAL) { + /* Continue, append next wchar_t, but avoid buffer overrun. */ + if (bufcount + MB_CUR_MAX > BUF_SIZE) + abort(); + } else + abort(); + } else { + /* Successful conversion. */ + wcd->state = state; + *inbuf = (const char *) inptr; + *inbytesleft = inleft; + *outbuf = outptr; + *outbytesleft = outleft; + result += res; + break; + } + } + } + } + return result; +} + +static size_t wchar_from_loop_reset (iconv_t icd, + char* * outbuf, size_t *outbytesleft) +{ + struct wchar_conv_struct * wcd = (struct wchar_conv_struct *) icd; + if (outbuf == NULL || *outbuf == NULL) { + /* Reset the states. */ + memset(&wcd->state,'\0',sizeof(mbstate_t)); + return unicode_loop_reset(&wcd->parent,NULL,NULL); + } else { + if (!mbsinit(&wcd->state)) { + mbstate_t state = wcd->state; + char buf[BUF_SIZE]; + size_t bufcount = wcrtomb(buf,(wchar_t)0,&state); + if (bufcount == (size_t)(-1) || bufcount == 0 || buf[bufcount-1] != '\0') + abort(); + else { + const char* bufptr = buf; + size_t bufleft = bufcount-1; + char* outptr = *outbuf; + size_t outleft = *outbytesleft; + size_t res = unicode_loop_convert(&wcd->parent, + &bufptr,&bufleft, + &outptr,&outleft); + if (res == (size_t)(-1)) { + if (errno == E2BIG) + return -1; + else + abort(); + } else { + res = unicode_loop_reset(&wcd->parent,&outptr,&outleft); + if (res == (size_t)(-1)) + return res; + else { + /* Successful. */ + wcd->state = state; + *outbuf = outptr; + *outbytesleft = outleft; + return 0; + } + } + } + } else + return unicode_loop_reset(&wcd->parent,outbuf,outbytesleft); + } +} + +#endif + + +#if HAVE_MBRTOWC + +/* From anything else to wchar_t. */ + +#ifndef LIBICONV_PLUG + +struct mb_to_wc_fallback_locals { + char* l_outbuf; + size_t l_outbytesleft; + int l_errno; +}; + +static void mb_to_wc_write_replacement (const wchar_t *buf, size_t buflen, + void* callback_arg) +{ + struct mb_to_wc_fallback_locals * plocals = + (struct mb_to_wc_fallback_locals *) callback_arg; + /* Do nothing if already encountered an error in a previous call. */ + if (plocals->l_errno == 0) { + /* Attempt to copy the passed buffer to the output buffer. */ + if (plocals->l_outbytesleft < sizeof(wchar_t)*buflen) + plocals->l_errno = E2BIG; + else { + for (; buflen > 0; buf++, buflen--) { + *(wchar_t*) plocals->l_outbuf = *buf; + plocals->l_outbuf += sizeof(wchar_t); + plocals->l_outbytesleft -= sizeof(wchar_t); + } + } + } +} + +#endif /* !LIBICONV_PLUG */ + +static size_t wchar_to_loop_convert (iconv_t icd, + const char* * inbuf, size_t *inbytesleft, + char* * outbuf, size_t *outbytesleft) +{ + struct wchar_conv_struct * wcd = (struct wchar_conv_struct *) icd; + size_t result = 0; + while (*inbytesleft > 0) { + size_t incount; + for (incount = 1; incount <= *inbytesleft; incount++) { + char buf[BUF_SIZE]; + const char* inptr = *inbuf; + size_t inleft = incount; + char* bufptr = buf; + size_t bufleft = BUF_SIZE; + size_t res = unicode_loop_convert(&wcd->parent, + &inptr,&inleft, + &bufptr,&bufleft); + if (res == (size_t)(-1)) { + if (errno == EILSEQ) + /* Invalid input. */ + return -1; + else if (errno == EINVAL) { + /* Incomplete input. Next try with one more input byte. */ + } else + /* E2BIG shouldn't occur. */ + abort(); + } else { + /* Successful conversion. */ + size_t bufcount = bufptr-buf; /* = BUF_SIZE-bufleft */ + mbstate_t state = wcd->state; + wchar_t wc; + res = mbrtowc(&wc,buf,bufcount,&state); + if (res == (size_t)(-2)) { + /* Next try with one more input byte. */ + } else { + if (res == (size_t)(-1)) { + /* Invalid input. */ + if (wcd->parent.discard_ilseq) { + } + #ifndef LIBICONV_PLUG + else if (wcd->parent.fallbacks.mb_to_wc_fallback != NULL) { + /* Drop the contents of buf[] accumulated so far, and instead + pass all queued chars to the fallback handler. */ + struct mb_to_wc_fallback_locals locals; + locals.l_outbuf = *outbuf; + locals.l_outbytesleft = *outbytesleft; + locals.l_errno = 0; + wcd->parent.fallbacks.mb_to_wc_fallback(*inbuf, incount, + mb_to_wc_write_replacement, + &locals, + wcd->parent.fallbacks.data); + if (locals.l_errno != 0) { + errno = locals.l_errno; + return -1; + } + /* Restoring the state is not needed because it is the initial + state anyway: For all known locale encodings, the multibyte + to wchar_t conversion doesn't have shift state, and we have + excluded partial accumulated characters. */ + /* wcd->state = state; */ + *inbuf += incount; + *inbytesleft -= incount; + *outbuf = locals.l_outbuf; + *outbytesleft = locals.l_outbytesleft; + result += 1; + break; + } + #endif + else + return -1; + } else { + if (*outbytesleft < sizeof(wchar_t)) { + errno = E2BIG; + return -1; + } + *(wchar_t*) *outbuf = wc; + /* Restoring the state is not needed because it is the initial + state anyway: For all known locale encodings, the multibyte + to wchar_t conversion doesn't have shift state, and we have + excluded partial accumulated characters. */ + /* wcd->state = state; */ + *outbuf += sizeof(wchar_t); + *outbytesleft -= sizeof(wchar_t); + } + *inbuf += incount; + *inbytesleft -= incount; + result += res; + break; + } + } + } + } + return result; +} + +static size_t wchar_to_loop_reset (iconv_t icd, + char* * outbuf, size_t *outbytesleft) +{ + struct wchar_conv_struct * wcd = (struct wchar_conv_struct *) icd; + size_t res = unicode_loop_reset(&wcd->parent,outbuf,outbytesleft); + if (res == (size_t)(-1)) + return res; + memset(&wcd->state,0,sizeof(mbstate_t)); + return 0; +} + +#endif + + +/* From wchar_t to wchar_t. */ + +static size_t wchar_id_loop_convert (iconv_t icd, + const char* * inbuf, size_t *inbytesleft, + char* * outbuf, size_t *outbytesleft) +{ + struct conv_struct * cd = (struct conv_struct *) icd; + const wchar_t* inptr = (const wchar_t*) *inbuf; + size_t inleft = *inbytesleft / sizeof(wchar_t); + wchar_t* outptr = (wchar_t*) *outbuf; + size_t outleft = *outbytesleft / sizeof(wchar_t); + size_t count = (inleft <= outleft ? inleft : outleft); + if (count > 0) { + *inbytesleft -= count * sizeof(wchar_t); + *outbytesleft -= count * sizeof(wchar_t); + do { + wchar_t wc = *inptr++; + *outptr++ = wc; + #ifndef LIBICONV_PLUG + if (cd->hooks.wc_hook) + (*cd->hooks.wc_hook)(wc, cd->hooks.data); + #endif + } while (--count > 0); + *inbuf = (const char*) inptr; + *outbuf = (char*) outptr; + } + return 0; +} + +static size_t wchar_id_loop_reset (iconv_t icd, + char* * outbuf, size_t *outbytesleft) +{ + return 0; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/loops.h b/graf2d/win32gdk/gdk/src/iconv/loops.h new file mode 100644 index 00000000000..782cc0926d9 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/loops.h @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2000 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* This file defines all the loops. */ + +#include "loop_unicode.h" +#include "loop_wchar.h" + diff --git a/graf2d/win32gdk/gdk/src/iconv/mac_arabic.h b/graf2d/win32gdk/gdk/src/iconv/mac_arabic.h new file mode 100644 index 00000000000..9d05a1ab63b --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/mac_arabic.h @@ -0,0 +1,132 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * MacArabic + */ + +static const unsigned short mac_arabic_2uni[128] = { + /* 0x80 */ + 0x00c4, 0x00a0, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, + 0x00e0, 0x00e2, 0x00e4, 0x06ba, 0x00ab, 0x00e7, 0x00e9, 0x00e8, + /* 0x90 */ + 0x00ea, 0x00eb, 0x00ed, 0x2026, 0x00ee, 0x00ef, 0x00f1, 0x00f3, + 0x00bb, 0x00f4, 0x00f6, 0x00f7, 0x00fa, 0x00f9, 0x00fb, 0x00fc, + /* 0xa0 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x066a, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x060c, 0xfffd, 0xfffd, 0xfffd, + /* 0xb0 */ + 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, + 0x0668, 0x0669, 0xfffd, 0x061b, 0xfffd, 0xfffd, 0xfffd, 0x061f, + /* 0xc0 */ + 0x066d, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, + 0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, + /* 0xd0 */ + 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, + 0x0638, 0x0639, 0x063a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0xe0 */ + 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, + 0x0648, 0x0649, 0x064a, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f, + /* 0xf0 */ + 0x0650, 0x0651, 0x0652, 0x067e, 0x0679, 0x0686, 0x06d5, 0x06a4, + 0x06af, 0x0688, 0x0691, 0xfffd, 0xfffd, 0xfffd, 0x0698, 0x06d2, +}; + +static int +mac_arabic_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = mac_arabic_2uni[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char mac_arabic_page00[96] = { + 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x82, /* 0xc0-0xc7 */ + 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ + 0x88, 0x87, 0x89, 0x00, 0x8a, 0x00, 0x00, 0x8d, /* 0xe0-0xe7 */ + 0x8f, 0x8e, 0x90, 0x91, 0x00, 0x92, 0x94, 0x95, /* 0xe8-0xef */ + 0x00, 0x96, 0x00, 0x97, 0x99, 0x00, 0x9a, 0x9b, /* 0xf0-0xf7 */ + 0x00, 0x9d, 0x9c, 0x9e, 0x9f, 0x00, 0x00, 0x00, /* 0xf8-0xff */ +}; +static const unsigned char mac_arabic_page06[208] = { + 0x00, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xbf, /* 0x18-0x1f */ + 0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */ + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */ + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */ + 0xd8, 0xd9, 0xda, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */ + 0xf0, 0xf1, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x60-0x67 */ + 0xb8, 0xb9, 0xa5, 0x00, 0x00, 0xc0, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0xf4, 0x00, 0x00, 0x00, 0x00, 0xf3, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x00, /* 0x80-0x87 */ + 0xf9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0x00, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, /* 0xa8-0xaf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0xff, 0x00, 0x00, 0xf6, 0x00, 0x00, /* 0xd0-0xd7 */ +}; + +static int +mac_arabic_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0100) + c = mac_arabic_page00[wc-0x00a0]; + else if (wc >= 0x0608 && wc < 0x06d8) + c = mac_arabic_page06[wc-0x0608]; + else if (wc == 0x2026) + c = 0x93; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/mac_centraleurope.h b/graf2d/win32gdk/gdk/src/iconv/mac_centraleurope.h new file mode 100644 index 00000000000..be030cfc81d --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/mac_centraleurope.h @@ -0,0 +1,139 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * MacCentralEurope + */ + +static const unsigned short mac_centraleurope_2uni[128] = { + /* 0x80 */ + 0x00c4, 0x0100, 0x0101, 0x00c9, 0x0104, 0x00d6, 0x00dc, 0x00e1, + 0x0105, 0x010c, 0x00e4, 0x010d, 0x0106, 0x0107, 0x00e9, 0x0179, + /* 0x90 */ + 0x017a, 0x010e, 0x00ed, 0x010f, 0x0112, 0x0113, 0x0116, 0x00f3, + 0x0117, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x011a, 0x011b, 0x00fc, + /* 0xa0 */ + 0x2020, 0x00b0, 0x0118, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, + 0x00ae, 0x00a9, 0x2122, 0x0119, 0x00a8, 0x2260, 0x0123, 0x012e, + /* 0xb0 */ + 0x012f, 0x012a, 0x2264, 0x2265, 0x012b, 0x0136, 0x2202, 0x2211, + 0x0142, 0x013b, 0x013c, 0x013d, 0x013e, 0x0139, 0x013a, 0x0145, + /* 0xc0 */ + 0x0146, 0x0143, 0x00ac, 0x221a, 0x0144, 0x0147, 0x2206, 0x00ab, + 0x00bb, 0x2026, 0x00a0, 0x0148, 0x0150, 0x00d5, 0x0151, 0x014c, + /* 0xd0 */ + 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, + 0x014d, 0x0154, 0x0155, 0x0158, 0x2039, 0x203a, 0x0159, 0x0156, + /* 0xe0 */ + 0x0157, 0x0160, 0x201a, 0x201e, 0x0161, 0x015a, 0x015b, 0x00c1, + 0x0164, 0x0165, 0x00cd, 0x017d, 0x017e, 0x016a, 0x00d3, 0x00d4, + /* 0xf0 */ + 0x016b, 0x016e, 0x00da, 0x016f, 0x0170, 0x0171, 0x0172, 0x0173, + 0x00dd, 0x00fd, 0x0137, 0x017b, 0x0141, 0x017c, 0x0122, 0x02c7, +}; + +static int +mac_centraleurope_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) mac_centraleurope_2uni[c-0x80]; + return 1; +} + +static const unsigned char mac_centraleurope_page00[224] = { + 0xca, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0xa4, /* 0xa0-0xa7 */ + 0xac, 0xa9, 0x00, 0xc7, 0xc2, 0x00, 0xa8, 0x00, /* 0xa8-0xaf */ + 0xa1, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0xe7, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x83, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0xee, 0xef, 0xcd, 0x85, 0x00, /* 0xd0-0xd7 */ + 0x00, 0x00, 0xf2, 0x00, 0x86, 0xf8, 0x00, 0xa7, /* 0xd8-0xdf */ + 0x00, 0x87, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ + 0x00, 0x8e, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0x97, 0x99, 0x9b, 0x9a, 0xd6, /* 0xf0-0xf7 */ + 0x00, 0x00, 0x9c, 0x00, 0x9f, 0xf9, 0x00, 0x00, /* 0xf8-0xff */ + /* 0x0100 */ + 0x81, 0x82, 0x00, 0x00, 0x84, 0x88, 0x8c, 0x8d, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x89, 0x8b, 0x91, 0x93, /* 0x08-0x0f */ + 0x00, 0x00, 0x94, 0x95, 0x00, 0x00, 0x96, 0x98, /* 0x10-0x17 */ + 0xa2, 0xab, 0x9d, 0x9e, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0xfe, 0xae, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0xb1, 0xb4, 0x00, 0x00, 0xaf, 0xb0, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0xfa, /* 0x30-0x37 */ + 0x00, 0xbd, 0xbe, 0xb9, 0xba, 0xbb, 0xbc, 0x00, /* 0x38-0x3f */ + 0x00, 0xfc, 0xb8, 0xc1, 0xc4, 0xbf, 0xc0, 0xc5, /* 0x40-0x47 */ + 0xcb, 0x00, 0x00, 0x00, 0xcf, 0xd8, 0x00, 0x00, /* 0x48-0x4f */ + 0xcc, 0xce, 0x00, 0x00, 0xd9, 0xda, 0xdf, 0xe0, /* 0x50-0x57 */ + 0xdb, 0xde, 0xe5, 0xe6, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0xe1, 0xe4, 0x00, 0x00, 0xe8, 0xe9, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0xed, 0xf0, 0x00, 0x00, 0xf1, 0xf3, /* 0x68-0x6f */ + 0xf4, 0xf5, 0xf6, 0xf7, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x8f, 0x90, 0xfb, 0xfd, 0xeb, 0xec, 0x00, /* 0x78-0x7f */ +}; +static const unsigned char mac_centraleurope_page20[48] = { + 0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd4, 0xd5, 0xe2, 0x00, 0xd2, 0xd3, 0xe3, 0x00, /* 0x18-0x1f */ + 0xa0, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0xdc, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ +}; +static const unsigned char mac_centraleurope_page22[32] = { + 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xc6, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ +}; +static const unsigned char mac_centraleurope_page22_1[8] = { + 0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */ +}; + +static int +mac_centraleurope_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0180) + c = mac_centraleurope_page00[wc-0x00a0]; + else if (wc == 0x02c7) + c = 0xff; + else if (wc >= 0x2010 && wc < 0x2040) + c = mac_centraleurope_page20[wc-0x2010]; + else if (wc == 0x2122) + c = 0xaa; + else if (wc >= 0x2200 && wc < 0x2220) + c = mac_centraleurope_page22[wc-0x2200]; + else if (wc >= 0x2260 && wc < 0x2268) + c = mac_centraleurope_page22_1[wc-0x2260]; + else if (wc == 0x25ca) + c = 0xd7; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/mac_croatian.h b/graf2d/win32gdk/gdk/src/iconv/mac_croatian.h new file mode 100644 index 00000000000..582f3e05c00 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/mac_croatian.h @@ -0,0 +1,165 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * MacCroatian + */ + +static const unsigned short mac_croatian_2uni[128] = { + /* 0x80 */ + 0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, + 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, + /* 0x90 */ + 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, + 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, + /* 0xa0 */ + 0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, + 0x00ae, 0x0160, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x017d, 0x00d8, + /* 0xb0 */ + 0x221e, 0x00b1, 0x2264, 0x2265, 0x2206, 0x00b5, 0x2202, 0x2211, + 0x220f, 0x0161, 0x222b, 0x00aa, 0x00ba, 0x2126, 0x017e, 0x00f8, + /* 0xc0 */ + 0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x0106, 0x00ab, + 0x010c, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153, + /* 0xd0 */ + 0x0110, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, + 0xfffd, 0x00a9, 0x2044, 0x00a4, 0x2039, 0x203a, 0x00c6, 0x00bb, + /* 0xe0 */ + 0x2013, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x0107, 0x00c1, + 0x010d, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4, + /* 0xf0 */ + 0x0111, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0x02c6, 0x02dc, + 0x00af, 0x03c0, 0x00cb, 0x02da, 0x00b8, 0x00ca, 0x00e6, 0x02c7, +}; + +static int +mac_croatian_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = mac_croatian_2uni[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char mac_croatian_page00[248] = { + 0xca, 0xc1, 0xa2, 0xa3, 0xdb, 0x00, 0x00, 0xa4, /* 0xa0-0xa7 */ + 0xac, 0xd9, 0xbb, 0xc7, 0xc2, 0x00, 0xa8, 0xf8, /* 0xa8-0xaf */ + 0xa1, 0xb1, 0x00, 0x00, 0xab, 0xb5, 0xa6, 0xe1, /* 0xb0-0xb7 */ + 0xfc, 0x00, 0xbc, 0xdf, 0x00, 0x00, 0x00, 0xc0, /* 0xb8-0xbf */ + 0xcb, 0xe7, 0xe5, 0xcc, 0x80, 0x81, 0xde, 0x82, /* 0xc0-0xc7 */ + 0xe9, 0x83, 0xfd, 0xfa, 0xed, 0xea, 0xeb, 0xec, /* 0xc8-0xcf */ + 0x00, 0x84, 0xf1, 0xee, 0xef, 0xcd, 0x85, 0x00, /* 0xd0-0xd7 */ + 0xaf, 0xf4, 0xf2, 0xf3, 0x86, 0x00, 0x00, 0xa7, /* 0xd8-0xdf */ + 0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c, 0xfe, 0x8d, /* 0xe0-0xe7 */ + 0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0xe8-0xef */ + 0x00, 0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a, 0xd6, /* 0xf0-0xf7 */ + 0xbf, 0x9d, 0x9c, 0x9e, 0x9f, 0x00, 0x00, 0x00, /* 0xf8-0xff */ + /* 0x0100 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xe6, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0x00, 0x00, /* 0x08-0x0f */ + 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0xce, 0xcf, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0xa9, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0xbe, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ +}; +static const unsigned char mac_croatian_page02[32] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xff, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0x00, 0x00, 0xfb, 0x00, 0xf7, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ +}; +static const unsigned char mac_croatian_page20[56] = { + 0x00, 0x00, 0x00, 0xe0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd4, 0xd5, 0xe2, 0x00, 0xd2, 0xd3, 0xe3, 0x00, /* 0x18-0x1f */ + 0xa0, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0xdc, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x40-0x47 */ +}; +static const unsigned char mac_croatian_page21[8] = { + 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xbd, 0x00, /* 0x20-0x27 */ +}; +static const unsigned char mac_croatian_page22[104] = { + 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xb4, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, /* 0x08-0x0f */ + 0x00, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xb0, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */ +}; + +static int +mac_croatian_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0198) + c = mac_croatian_page00[wc-0x00a0]; + else if (wc >= 0x02c0 && wc < 0x02e0) + c = mac_croatian_page02[wc-0x02c0]; + else if (wc == 0x03c0) + c = 0xf9; + else if (wc >= 0x2010 && wc < 0x2048) + c = mac_croatian_page20[wc-0x2010]; + else if (wc >= 0x2120 && wc < 0x2128) + c = mac_croatian_page21[wc-0x2120]; + else if (wc >= 0x2200 && wc < 0x2268) + c = mac_croatian_page22[wc-0x2200]; + else if (wc == 0x25ca) + c = 0xd7; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/mac_cyrillic.h b/graf2d/win32gdk/gdk/src/iconv/mac_cyrillic.h new file mode 100644 index 00000000000..a5b5972f287 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/mac_cyrillic.h @@ -0,0 +1,136 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * MacCyrillic + */ + +static const unsigned short mac_cyrillic_2uni[128] = { + /* 0x80 */ + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, + 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, + /* 0x90 */ + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, + 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, + /* 0xa0 */ + 0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x0406, + 0x00ae, 0x00a9, 0x2122, 0x0402, 0x0452, 0x2260, 0x0403, 0x0453, + /* 0xb0 */ + 0x221e, 0x00b1, 0x2264, 0x2265, 0x0456, 0x00b5, 0x2202, 0x0408, + 0x0404, 0x0454, 0x0407, 0x0457, 0x0409, 0x0459, 0x040a, 0x045a, + /* 0xc0 */ + 0x0458, 0x0405, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, + 0x00bb, 0x2026, 0x00a0, 0x040b, 0x045b, 0x040c, 0x045c, 0x0455, + /* 0xd0 */ + 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x201e, + 0x040e, 0x045e, 0x040f, 0x045f, 0x2116, 0x0401, 0x0451, 0x044f, + /* 0xe0 */ + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, + 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, + /* 0xf0 */ + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, + 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x00a4, +}; + +static int +mac_cyrillic_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c >= 0x80) + *pwc = (ucs4_t) mac_cyrillic_2uni[c-0x80]; + else + *pwc = (ucs4_t) c; + return 1; +} + +static const unsigned char mac_cyrillic_page00[32] = { + 0xca, 0x00, 0xa2, 0xa3, 0xff, 0x00, 0x00, 0xa4, /* 0xa0-0xa7 */ + 0x00, 0xa9, 0x00, 0xc7, 0xc2, 0x00, 0xa8, 0x00, /* 0xa8-0xaf */ + 0xa1, 0xb1, 0x00, 0x00, 0x00, 0xb5, 0xa6, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ +}; +static const unsigned char mac_cyrillic_page04[96] = { + 0x00, 0xdd, 0xab, 0xae, 0xb8, 0xc1, 0xa7, 0xba, /* 0x00-0x07 */ + 0xb7, 0xbc, 0xbe, 0xcb, 0xcd, 0x00, 0xd8, 0xda, /* 0x08-0x0f */ + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x10-0x17 */ + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /* 0x18-0x1f */ + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x20-0x27 */ + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x28-0x2f */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x30-0x37 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x38-0x3f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x40-0x47 */ + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xdf, /* 0x48-0x4f */ + 0x00, 0xde, 0xac, 0xaf, 0xb9, 0xcf, 0xb4, 0xbb, /* 0x50-0x57 */ + 0xc0, 0xbd, 0xbf, 0xcc, 0xce, 0x00, 0xd9, 0xdb, /* 0x58-0x5f */ +}; +static const unsigned char mac_cyrillic_page20[24] = { + 0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd4, 0xd5, 0x00, 0x00, 0xd2, 0xd3, 0xd7, 0x00, /* 0x18-0x1f */ + 0xa0, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */ +}; +static const unsigned char mac_cyrillic_page21[24] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ +}; +static const unsigned char mac_cyrillic_page22[104] = { + 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xc6, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xb0, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */ +}; + +static int +mac_cyrillic_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00c0) + c = mac_cyrillic_page00[wc-0x00a0]; + else if (wc == 0x00f7) + c = 0xd6; + else if (wc == 0x0192) + c = 0xc4; + else if (wc >= 0x0400 && wc < 0x0460) + c = mac_cyrillic_page04[wc-0x0400]; + else if (wc >= 0x2010 && wc < 0x2028) + c = mac_cyrillic_page20[wc-0x2010]; + else if (wc >= 0x2110 && wc < 0x2128) + c = mac_cyrillic_page21[wc-0x2110]; + else if (wc >= 0x2200 && wc < 0x2268) + c = mac_cyrillic_page22[wc-0x2200]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/mac_greek.h b/graf2d/win32gdk/gdk/src/iconv/mac_greek.h new file mode 100644 index 00000000000..3cc4ac29f86 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/mac_greek.h @@ -0,0 +1,135 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * MacGreek + */ + +static const unsigned short mac_greek_2uni[128] = { + /* 0x80 */ + 0x00c4, 0x00b9, 0x00b2, 0x00c9, 0x00b3, 0x00d6, 0x00dc, 0x0385, + 0x00e0, 0x00e2, 0x00e4, 0x0384, 0x00a8, 0x00e7, 0x00e9, 0x00e8, + /* 0x90 */ + 0x00ea, 0x00eb, 0x00a3, 0x2122, 0x00ee, 0x00ef, 0x2022, 0x00bd, + 0x2030, 0x00f4, 0x00f6, 0x00a6, 0x00ad, 0x00f9, 0x00fb, 0x00fc, + /* 0xa0 */ + 0x2020, 0x0393, 0x0394, 0x0398, 0x039b, 0x039e, 0x03a0, 0x00df, + 0x00ae, 0x00a9, 0x03a3, 0x03aa, 0x00a7, 0x2260, 0x00b0, 0x0387, + /* 0xb0 */ + 0x0391, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x0392, 0x0395, 0x0396, + 0x0397, 0x0399, 0x039a, 0x039c, 0x03a6, 0x03ab, 0x03a8, 0x03a9, + /* 0xc0 */ + 0x03ac, 0x039d, 0x00ac, 0x039f, 0x03a1, 0x2248, 0x03a4, 0x00ab, + 0x00bb, 0x2026, 0x00a0, 0x03a5, 0x03a7, 0x0386, 0x0388, 0x0153, + /* 0xd0 */ + 0x2013, 0x2015, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x0389, + 0x038a, 0x038c, 0x038e, 0x03ad, 0x03ae, 0x03af, 0x03cc, 0x038f, + /* 0xe0 */ + 0x03cd, 0x03b1, 0x03b2, 0x03c8, 0x03b4, 0x03b5, 0x03c6, 0x03b3, + 0x03b7, 0x03b9, 0x03be, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03bf, + /* 0xf0 */ + 0x03c0, 0x03ce, 0x03c1, 0x03c3, 0x03c4, 0x03b8, 0x03c9, 0x03c2, + 0x03c7, 0x03c5, 0x03b6, 0x03ca, 0x03cb, 0x0390, 0x03b0, 0xfffd, +}; + +static int +mac_greek_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = mac_greek_2uni[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char mac_greek_page00[96] = { + 0xca, 0x00, 0x00, 0x92, 0x00, 0xb4, 0x9b, 0xac, /* 0xa0-0xa7 */ + 0x8c, 0xa9, 0x00, 0xc7, 0xc2, 0x9c, 0xa8, 0x00, /* 0xa8-0xaf */ + 0xae, 0xb1, 0x82, 0x84, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x81, 0x00, 0xc8, 0x00, 0x97, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0xa7, /* 0xd8-0xdf */ + 0x88, 0x00, 0x89, 0x00, 0x8a, 0x00, 0x00, 0x8d, /* 0xe0-0xe7 */ + 0x8f, 0x8e, 0x90, 0x91, 0x00, 0x00, 0x94, 0x95, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0x00, 0x99, 0x00, 0x9a, 0xd6, /* 0xf0-0xf7 */ + 0x00, 0x9d, 0x00, 0x9e, 0x9f, 0x00, 0x00, 0x00, /* 0xf8-0xff */ +}; +static const unsigned char mac_greek_page03[80] = { + 0x00, 0x00, 0x00, 0x00, 0x8b, 0x87, 0xcd, 0xaf, /* 0x80-0x87 */ + 0xce, 0xd7, 0xd8, 0x00, 0xd9, 0x00, 0xda, 0xdf, /* 0x88-0x8f */ + 0xfd, 0xb0, 0xb5, 0xa1, 0xa2, 0xb6, 0xb7, 0xb8, /* 0x90-0x97 */ + 0xa3, 0xb9, 0xba, 0xa4, 0xbb, 0xc1, 0xa5, 0xc3, /* 0x98-0x9f */ + 0xa6, 0xc4, 0x00, 0xaa, 0xc6, 0xcb, 0xbc, 0xcc, /* 0xa0-0xa7 */ + 0xbe, 0xbf, 0xab, 0xbd, 0xc0, 0xdb, 0xdc, 0xdd, /* 0xa8-0xaf */ + 0xfe, 0xe1, 0xe2, 0xe7, 0xe4, 0xe5, 0xfa, 0xe8, /* 0xb0-0xb7 */ + 0xf5, 0xe9, 0xeb, 0xec, 0xed, 0xee, 0xea, 0xef, /* 0xb8-0xbf */ + 0xf0, 0xf2, 0xf7, 0xf3, 0xf4, 0xf9, 0xe6, 0xf8, /* 0xc0-0xc7 */ + 0xe3, 0xf6, 0xfb, 0xfc, 0xde, 0xe0, 0xf1, 0x00, /* 0xc8-0xcf */ +}; +static const unsigned char mac_greek_page20[40] = { + 0x00, 0x00, 0x00, 0xd0, 0x00, 0xd1, 0x00, 0x00, /* 0x10-0x17 */ + 0xd4, 0xd5, 0x00, 0x00, 0xd2, 0xd3, 0x00, 0x00, /* 0x18-0x1f */ + 0xa0, 0x00, 0x96, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ +}; +static const unsigned char mac_greek_page22[32] = { + 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */ +}; + +static int +mac_greek_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0100) + c = mac_greek_page00[wc-0x00a0]; + else if (wc == 0x0153) + c = 0xcf; + else if (wc >= 0x0380 && wc < 0x03d0) + c = mac_greek_page03[wc-0x0380]; + else if (wc >= 0x2010 && wc < 0x2038) + c = mac_greek_page20[wc-0x2010]; + else if (wc == 0x2122) + c = 0x93; + else if (wc >= 0x2248 && wc < 0x2268) + c = mac_greek_page22[wc-0x2248]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/mac_hebrew.h b/graf2d/win32gdk/gdk/src/iconv/mac_hebrew.h new file mode 100644 index 00000000000..c7f97bb6b1d --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/mac_hebrew.h @@ -0,0 +1,132 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * MacHebrew + */ + +static const unsigned short mac_hebrew_2uni[128] = { + /* 0x80 */ + 0x00c4, 0xfb1f, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, + 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, + /* 0x90 */ + 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, + 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, + /* 0xa0 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x20aa, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0xb0 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, + /* 0xc0 */ + 0xfffd, 0x201e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x05bc, 0xfb4b, + 0xfb35, 0x2026, 0x00a0, 0x05b8, 0x05b7, 0x05b5, 0x05b6, 0x05b4, + /* 0xd0 */ + 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0xfb2a, 0xfb2b, + 0x05bf, 0x05b0, 0x05b2, 0x05b1, 0x05bb, 0x05b9, 0xfffd, 0x05b3, + /* 0xe0 */ + 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, + 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, + /* 0xf0 */ + 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, + 0x05e8, 0x05e9, 0x05ea, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, +}; + +static int +mac_hebrew_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else if (c >= 0x80) { + unsigned short wc = mac_hebrew_2uni[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char mac_hebrew_page00[96] = { + 0xca, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x82, /* 0xc0-0xc7 */ + 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ + 0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c, 0x00, 0x8d, /* 0xe0-0xe7 */ + 0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0xe8-0xef */ + 0x00, 0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a, 0x00, /* 0xf0-0xf7 */ + 0x00, 0x9d, 0x9c, 0x9e, 0x9f, 0x00, 0x00, 0x00, /* 0xf8-0xff */ +}; +static const unsigned char mac_hebrew_page05[64] = { + 0xd9, 0xdb, 0xda, 0xdf, 0xcf, 0xcd, 0xce, 0xcc, /* 0xb0-0xb7 */ + 0xcb, 0xdd, 0x00, 0xdc, 0xc6, 0x00, 0x00, 0xd8, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xd0-0xd7 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xd8-0xdf */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xe0-0xe7 */ + 0xf8, 0xf9, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ +}; +static const unsigned char mac_hebrew_page20[24] = { + 0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd4, 0xd5, 0x00, 0x00, 0xd2, 0xd3, 0xc1, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */ +}; +static const unsigned char mac_hebrew_pagefb[56] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0xd6, 0xd7, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ +}; + +static int +mac_hebrew_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0100) + c = mac_hebrew_page00[wc-0x00a0]; + else if (wc >= 0x05b0 && wc < 0x05f0) + c = mac_hebrew_page05[wc-0x05b0]; + else if (wc >= 0x2010 && wc < 0x2028) + c = mac_hebrew_page20[wc-0x2010]; + else if (wc == 0x20aa) + c = 0xa6; + else if (wc >= 0xfb18 && wc < 0xfb50) + c = mac_hebrew_pagefb[wc-0xfb18]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/mac_iceland.h b/graf2d/win32gdk/gdk/src/iconv/mac_iceland.h new file mode 100644 index 00000000000..b49f1642aff --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/mac_iceland.h @@ -0,0 +1,162 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * MacIceland + */ + +static const unsigned short mac_iceland_2uni[128] = { + /* 0x80 */ + 0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, + 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, + /* 0x90 */ + 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, + 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, + /* 0xa0 */ + 0x00dd, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, + 0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x00c6, 0x00d8, + /* 0xb0 */ + 0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211, + 0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x2126, 0x00e6, 0x00f8, + /* 0xc0 */ + 0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, + 0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153, + /* 0xd0 */ + 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, + 0x00ff, 0x0178, 0x2044, 0x00a4, 0x00d0, 0x00f0, 0x00de, 0x00fe, + /* 0xe0 */ + 0x00fd, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1, + 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4, + /* 0xf0 */ + 0xfffd, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0x02c6, 0x02dc, + 0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7, +}; + +static int +mac_iceland_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = mac_iceland_2uni[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char mac_iceland_page00[96] = { + 0xca, 0xc1, 0xa2, 0xa3, 0xdb, 0xb4, 0x00, 0xa4, /* 0xa0-0xa7 */ + 0xac, 0xa9, 0xbb, 0xc7, 0xc2, 0x00, 0xa8, 0xf8, /* 0xa8-0xaf */ + 0xa1, 0xb1, 0x00, 0x00, 0xab, 0xb5, 0xa6, 0xe1, /* 0xb0-0xb7 */ + 0xfc, 0x00, 0xbc, 0xc8, 0x00, 0x00, 0x00, 0xc0, /* 0xb8-0xbf */ + 0xcb, 0xe7, 0xe5, 0xcc, 0x80, 0x81, 0xae, 0x82, /* 0xc0-0xc7 */ + 0xe9, 0x83, 0xe6, 0xe8, 0xed, 0xea, 0xeb, 0xec, /* 0xc8-0xcf */ + 0xdc, 0x84, 0xf1, 0xee, 0xef, 0xcd, 0x85, 0x00, /* 0xd0-0xd7 */ + 0xaf, 0xf4, 0xf2, 0xf3, 0x86, 0xa0, 0xde, 0xa7, /* 0xd8-0xdf */ + 0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c, 0xbe, 0x8d, /* 0xe0-0xe7 */ + 0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0xe8-0xef */ + 0xdd, 0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a, 0xd6, /* 0xf0-0xf7 */ + 0xbf, 0x9d, 0x9c, 0x9e, 0x9f, 0xe0, 0xdf, 0xd8, /* 0xf8-0xff */ +}; +static const unsigned char mac_iceland_page01[104] = { + 0x00, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0xce, 0xcf, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0xd9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ +}; +static const unsigned char mac_iceland_page02[32] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xff, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0xf9, 0xfa, 0xfb, 0xfe, 0xf7, 0xfd, 0x00, 0x00, /* 0xd8-0xdf */ +}; +static const unsigned char mac_iceland_page20[56] = { + 0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd4, 0xd5, 0xe2, 0x00, 0xd2, 0xd3, 0xe3, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x40-0x47 */ +}; +static const unsigned char mac_iceland_page21[8] = { + 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xbd, 0x00, /* 0x20-0x27 */ +}; +static const unsigned char mac_iceland_page22[104] = { + 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xc6, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, /* 0x08-0x0f */ + 0x00, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xb0, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */ +}; + +static int +mac_iceland_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0100) + c = mac_iceland_page00[wc-0x00a0]; + else if (wc >= 0x0130 && wc < 0x0198) + c = mac_iceland_page01[wc-0x0130]; + else if (wc >= 0x02c0 && wc < 0x02e0) + c = mac_iceland_page02[wc-0x02c0]; + else if (wc == 0x03c0) + c = 0xb9; + else if (wc >= 0x2010 && wc < 0x2048) + c = mac_iceland_page20[wc-0x2010]; + else if (wc >= 0x2120 && wc < 0x2128) + c = mac_iceland_page21[wc-0x2120]; + else if (wc >= 0x2200 && wc < 0x2268) + c = mac_iceland_page22[wc-0x2200]; + else if (wc == 0x25ca) + c = 0xd7; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/mac_roman.h b/graf2d/win32gdk/gdk/src/iconv/mac_roman.h new file mode 100644 index 00000000000..7a6d51aa0bc --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/mac_roman.h @@ -0,0 +1,167 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * MacRoman + */ + +static const unsigned short mac_roman_2uni[128] = { + /* 0x80 */ + 0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, + 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, + /* 0x90 */ + 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, + 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, + /* 0xa0 */ + 0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, + 0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x00c6, 0x00d8, + /* 0xb0 */ + 0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211, + 0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x2126, 0x00e6, 0x00f8, + /* 0xc0 */ + 0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, + 0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153, + /* 0xd0 */ + 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, + 0x00ff, 0x0178, 0x2044, 0x00a4, 0x2039, 0x203a, 0xfb01, 0xfb02, + /* 0xe0 */ + 0x2021, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1, + 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4, + /* 0xf0 */ + 0xfffd, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0x02c6, 0x02dc, + 0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7, +}; + +static int +mac_roman_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = mac_roman_2uni[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char mac_roman_page00[96] = { + 0xca, 0xc1, 0xa2, 0xa3, 0xdb, 0xb4, 0x00, 0xa4, /* 0xa0-0xa7 */ + 0xac, 0xa9, 0xbb, 0xc7, 0xc2, 0x00, 0xa8, 0xf8, /* 0xa8-0xaf */ + 0xa1, 0xb1, 0x00, 0x00, 0xab, 0xb5, 0xa6, 0xe1, /* 0xb0-0xb7 */ + 0xfc, 0x00, 0xbc, 0xc8, 0x00, 0x00, 0x00, 0xc0, /* 0xb8-0xbf */ + 0xcb, 0xe7, 0xe5, 0xcc, 0x80, 0x81, 0xae, 0x82, /* 0xc0-0xc7 */ + 0xe9, 0x83, 0xe6, 0xe8, 0xed, 0xea, 0xeb, 0xec, /* 0xc8-0xcf */ + 0x00, 0x84, 0xf1, 0xee, 0xef, 0xcd, 0x85, 0x00, /* 0xd0-0xd7 */ + 0xaf, 0xf4, 0xf2, 0xf3, 0x86, 0x00, 0x00, 0xa7, /* 0xd8-0xdf */ + 0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c, 0xbe, 0x8d, /* 0xe0-0xe7 */ + 0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0xe8-0xef */ + 0x00, 0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a, 0xd6, /* 0xf0-0xf7 */ + 0xbf, 0x9d, 0x9c, 0x9e, 0x9f, 0x00, 0x00, 0xd8, /* 0xf8-0xff */ +}; +static const unsigned char mac_roman_page01[104] = { + 0x00, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0xce, 0xcf, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0xd9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ +}; +static const unsigned char mac_roman_page02[32] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xff, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0xf9, 0xfa, 0xfb, 0xfe, 0xf7, 0xfd, 0x00, 0x00, /* 0xd8-0xdf */ +}; +static const unsigned char mac_roman_page20[56] = { + 0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd4, 0xd5, 0xe2, 0x00, 0xd2, 0xd3, 0xe3, 0x00, /* 0x18-0x1f */ + 0xa0, 0xe0, 0xa5, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0xdc, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x40-0x47 */ +}; +static const unsigned char mac_roman_page21[8] = { + 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xbd, 0x00, /* 0x20-0x27 */ +}; +static const unsigned char mac_roman_page22[104] = { + 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xc6, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, /* 0x08-0x0f */ + 0x00, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xb0, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */ +}; +static const unsigned char mac_roman_pagefb[8] = { + 0x00, 0xde, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ +}; + +static int +mac_roman_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0100) + c = mac_roman_page00[wc-0x00a0]; + else if (wc >= 0x0130 && wc < 0x0198) + c = mac_roman_page01[wc-0x0130]; + else if (wc >= 0x02c0 && wc < 0x02e0) + c = mac_roman_page02[wc-0x02c0]; + else if (wc == 0x03c0) + c = 0xb9; + else if (wc >= 0x2010 && wc < 0x2048) + c = mac_roman_page20[wc-0x2010]; + else if (wc >= 0x2120 && wc < 0x2128) + c = mac_roman_page21[wc-0x2120]; + else if (wc >= 0x2200 && wc < 0x2268) + c = mac_roman_page22[wc-0x2200]; + else if (wc == 0x25ca) + c = 0xd7; + else if (wc >= 0xfb00 && wc < 0xfb08) + c = mac_roman_pagefb[wc-0xfb00]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/mac_romania.h b/graf2d/win32gdk/gdk/src/iconv/mac_romania.h new file mode 100644 index 00000000000..2d35562d897 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/mac_romania.h @@ -0,0 +1,165 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * MacRomania + */ + +static const unsigned short mac_romania_2uni[128] = { + /* 0x80 */ + 0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, + 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, + /* 0x90 */ + 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, + 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, + /* 0xa0 */ + 0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, + 0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x0102, 0x015e, + /* 0xb0 */ + 0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211, + 0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x2126, 0x0103, 0x015f, + /* 0xc0 */ + 0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, + 0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153, + /* 0xd0 */ + 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, + 0x00ff, 0x0178, 0x2044, 0x00a4, 0x2039, 0x203a, 0x0162, 0x0163, + /* 0xe0 */ + 0x2021, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1, + 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4, + /* 0xf0 */ + 0xfffd, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0x02c6, 0x02dc, + 0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7, +}; + +static int +mac_romania_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = mac_romania_2uni[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char mac_romania_page00[248] = { + 0xca, 0xc1, 0xa2, 0xa3, 0xdb, 0xb4, 0x00, 0xa4, /* 0xa0-0xa7 */ + 0xac, 0xa9, 0xbb, 0xc7, 0xc2, 0x00, 0xa8, 0xf8, /* 0xa8-0xaf */ + 0xa1, 0xb1, 0x00, 0x00, 0xab, 0xb5, 0xa6, 0xe1, /* 0xb0-0xb7 */ + 0xfc, 0x00, 0xbc, 0xc8, 0x00, 0x00, 0x00, 0xc0, /* 0xb8-0xbf */ + 0xcb, 0xe7, 0xe5, 0xcc, 0x80, 0x81, 0x00, 0x82, /* 0xc0-0xc7 */ + 0xe9, 0x83, 0xe6, 0xe8, 0xed, 0xea, 0xeb, 0xec, /* 0xc8-0xcf */ + 0x00, 0x84, 0xf1, 0xee, 0xef, 0xcd, 0x85, 0x00, /* 0xd0-0xd7 */ + 0x00, 0xf4, 0xf2, 0xf3, 0x86, 0x00, 0x00, 0xa7, /* 0xd8-0xdf */ + 0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c, 0x00, 0x8d, /* 0xe0-0xe7 */ + 0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0xe8-0xef */ + 0x00, 0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a, 0xd6, /* 0xf0-0xf7 */ + 0x00, 0x9d, 0x9c, 0x9e, 0x9f, 0x00, 0x00, 0xd8, /* 0xf8-0xff */ + /* 0x0100 */ + 0x00, 0x00, 0xae, 0xbe, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0xce, 0xcf, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0xbf, /* 0x58-0x5f */ + 0x00, 0x00, 0xde, 0xdf, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0xd9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ +}; +static const unsigned char mac_romania_page02[32] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xff, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0xf9, 0xfa, 0xfb, 0xfe, 0xf7, 0xfd, 0x00, 0x00, /* 0xd8-0xdf */ +}; +static const unsigned char mac_romania_page20[56] = { + 0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd4, 0xd5, 0xe2, 0x00, 0xd2, 0xd3, 0xe3, 0x00, /* 0x18-0x1f */ + 0xa0, 0xe0, 0xa5, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0xdc, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x40-0x47 */ +}; +static const unsigned char mac_romania_page21[8] = { + 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xbd, 0x00, /* 0x20-0x27 */ +}; +static const unsigned char mac_romania_page22[104] = { + 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xc6, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, /* 0x08-0x0f */ + 0x00, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xb0, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */ +}; + +static int +mac_romania_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0198) + c = mac_romania_page00[wc-0x00a0]; + else if (wc >= 0x02c0 && wc < 0x02e0) + c = mac_romania_page02[wc-0x02c0]; + else if (wc == 0x03c0) + c = 0xb9; + else if (wc >= 0x2010 && wc < 0x2048) + c = mac_romania_page20[wc-0x2010]; + else if (wc >= 0x2120 && wc < 0x2128) + c = mac_romania_page21[wc-0x2120]; + else if (wc >= 0x2200 && wc < 0x2268) + c = mac_romania_page22[wc-0x2200]; + else if (wc == 0x25ca) + c = 0xd7; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/mac_thai.h b/graf2d/win32gdk/gdk/src/iconv/mac_thai.h new file mode 100644 index 00000000000..74d15aaf7f5 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/mac_thai.h @@ -0,0 +1,128 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * MacThai + */ + +static const unsigned short mac_thai_2uni[128] = { + /* 0x80 */ + 0x00ab, 0x00bb, 0x2026, 0xf88c, 0xf88f, 0xf892, 0xf895, 0xf898, + 0xf88b, 0xf88e, 0xf891, 0xf894, 0xf897, 0x201c, 0x201d, 0xf899, + /* 0x90 */ + 0xfffd, 0x2022, 0xf884, 0xf889, 0xf885, 0xf886, 0xf887, 0xf888, + 0xf88a, 0xf88d, 0xf890, 0xf893, 0xf896, 0x2018, 0x2019, 0xfffd, + /* 0xa0 */ + 0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07, + 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f, + /* 0xb0 */ + 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17, + 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f, + /* 0xc0 */ + 0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, + 0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f, + /* 0xd0 */ + 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37, + 0x0e38, 0x0e39, 0x0e3a, 0xfeff, 0x200b, 0x2013, 0x2014, 0x0e3f, + /* 0xe0 */ + 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47, + 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x2122, 0x0e4f, + /* 0xf0 */ + 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, + 0x0e58, 0x0e59, 0x00ae, 0x00a9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, +}; + +static int +mac_thai_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = mac_thai_2uni[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char mac_thai_page00[32] = { + 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0xfb, 0x00, 0x80, 0x00, 0x00, 0xfa, 0x00, /* 0xa8-0xaf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ +}; +static const unsigned char mac_thai_page0e[96] = { + 0x00, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x00-0x07 */ + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0x08-0x0f */ + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x10-0x17 */ + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0x18-0x1f */ + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */ + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */ + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */ + 0xd8, 0xd9, 0xda, 0x00, 0x00, 0x00, 0x00, 0xdf, /* 0x38-0x3f */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0x00, 0xef, /* 0x48-0x4f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x50-0x57 */ + 0xf8, 0xf9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ +}; +static const unsigned char mac_thai_page20[32] = { + 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0xdd, 0xde, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x9d, 0x9e, 0x00, 0x00, 0x8d, 0x8e, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x82, 0x00, /* 0x20-0x27 */ +}; +static const unsigned char mac_thai_pagef8[32] = { + 0x00, 0x00, 0x00, 0x00, 0x92, 0x94, 0x95, 0x96, /* 0x80-0x87 */ + 0x97, 0x93, 0x98, 0x88, 0x83, 0x99, 0x89, 0x84, /* 0x88-0x8f */ + 0x9a, 0x8a, 0x85, 0x9b, 0x8b, 0x86, 0x9c, 0x8c, /* 0x90-0x97 */ + 0x87, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ +}; + +static int +mac_thai_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00c0) + c = mac_thai_page00[wc-0x00a0]; + else if (wc >= 0x0e00 && wc < 0x0e60) + c = mac_thai_page0e[wc-0x0e00]; + else if (wc >= 0x2008 && wc < 0x2028) + c = mac_thai_page20[wc-0x2008]; + else if (wc == 0x2122) + c = 0xee; + else if (wc >= 0xf880 && wc < 0xf8a0) + c = mac_thai_pagef8[wc-0xf880]; + else if (wc == 0xfeff) + c = 0xdb; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/mac_turkish.h b/graf2d/win32gdk/gdk/src/iconv/mac_turkish.h new file mode 100644 index 00000000000..94f7d376b93 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/mac_turkish.h @@ -0,0 +1,163 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * MacTurkish + */ + +static const unsigned short mac_turkish_2uni[128] = { + /* 0x80 */ + 0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, + 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, + /* 0x90 */ + 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, + 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, + /* 0xa0 */ + 0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, + 0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x00c6, 0x00d8, + /* 0xb0 */ + 0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211, + 0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x2126, 0x00e6, 0x00f8, + /* 0xc0 */ + 0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, + 0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153, + /* 0xd0 */ + 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, + 0x00ff, 0x0178, 0x011e, 0x011f, 0x0130, 0x0131, 0x015e, 0x015f, + /* 0xe0 */ + 0x2021, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1, + 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4, + /* 0xf0 */ + 0xfffd, 0x00d2, 0x00da, 0x00db, 0x00d9, 0xfffd, 0x02c6, 0x02dc, + 0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7, +}; + +static int +mac_turkish_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = mac_turkish_2uni[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char mac_turkish_page00[96] = { + 0xca, 0xc1, 0xa2, 0xa3, 0x00, 0xb4, 0x00, 0xa4, /* 0xa0-0xa7 */ + 0xac, 0xa9, 0xbb, 0xc7, 0xc2, 0x00, 0xa8, 0xf8, /* 0xa8-0xaf */ + 0xa1, 0xb1, 0x00, 0x00, 0xab, 0xb5, 0xa6, 0xe1, /* 0xb0-0xb7 */ + 0xfc, 0x00, 0xbc, 0xc8, 0x00, 0x00, 0x00, 0xc0, /* 0xb8-0xbf */ + 0xcb, 0xe7, 0xe5, 0xcc, 0x80, 0x81, 0xae, 0x82, /* 0xc0-0xc7 */ + 0xe9, 0x83, 0xe6, 0xe8, 0xed, 0xea, 0xeb, 0xec, /* 0xc8-0xcf */ + 0x00, 0x84, 0xf1, 0xee, 0xef, 0xcd, 0x85, 0x00, /* 0xd0-0xd7 */ + 0xaf, 0xf4, 0xf2, 0xf3, 0x86, 0x00, 0x00, 0xa7, /* 0xd8-0xdf */ + 0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c, 0xbe, 0x8d, /* 0xe0-0xe7 */ + 0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0xe8-0xef */ + 0x00, 0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a, 0xd6, /* 0xf0-0xf7 */ + 0xbf, 0x9d, 0x9c, 0x9e, 0x9f, 0x00, 0x00, 0xd8, /* 0xf8-0xff */ +}; +static const unsigned char mac_turkish_page01[128] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xda, 0xdb, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0xdc, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0xce, 0xcf, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xdf, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0xd9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ +}; +static const unsigned char mac_turkish_page02[32] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xff, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0xf9, 0xfa, 0xfb, 0xfe, 0xf7, 0xfd, 0x00, 0x00, /* 0xd8-0xdf */ +}; +static const unsigned char mac_turkish_page20[40] = { + 0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd4, 0xd5, 0xe2, 0x00, 0xd2, 0xd3, 0xe3, 0x00, /* 0x18-0x1f */ + 0xa0, 0xe0, 0xa5, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ +}; +static const unsigned char mac_turkish_page21[8] = { + 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xbd, 0x00, /* 0x20-0x27 */ +}; +static const unsigned char mac_turkish_page22[104] = { + 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xc6, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, /* 0x08-0x0f */ + 0x00, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xb0, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */ +}; + +static int +mac_turkish_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0100) + c = mac_turkish_page00[wc-0x00a0]; + else if (wc >= 0x0118 && wc < 0x0198) + c = mac_turkish_page01[wc-0x0118]; + else if (wc >= 0x02c0 && wc < 0x02e0) + c = mac_turkish_page02[wc-0x02c0]; + else if (wc == 0x03c0) + c = 0xb9; + else if (wc >= 0x2010 && wc < 0x2038) + c = mac_turkish_page20[wc-0x2010]; + else if (wc >= 0x2120 && wc < 0x2128) + c = mac_turkish_page21[wc-0x2120]; + else if (wc >= 0x2200 && wc < 0x2268) + c = mac_turkish_page22[wc-0x2200]; + else if (wc == 0x25ca) + c = 0xd7; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/mac_ukraine.h b/graf2d/win32gdk/gdk/src/iconv/mac_ukraine.h new file mode 100644 index 00000000000..8ea17b09c9a --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/mac_ukraine.h @@ -0,0 +1,143 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * MacUkraine + */ + +static const unsigned short mac_ukraine_2uni[128] = { + /* 0x80 */ + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, + 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, + /* 0x90 */ + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, + 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, + /* 0xa0 */ + 0x2020, 0x00b0, 0x0490, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x0406, + 0x00ae, 0x00a9, 0x2122, 0x0402, 0x0452, 0x2260, 0x0403, 0x0453, + /* 0xb0 */ + 0x221e, 0x00b1, 0x2264, 0x2265, 0x0456, 0x00b5, 0x0491, 0x0408, + 0x0404, 0x0454, 0x0407, 0x0457, 0x0409, 0x0459, 0x040a, 0x045a, + /* 0xc0 */ + 0x0458, 0x0405, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, + 0x00bb, 0x2026, 0x00a0, 0x040b, 0x045b, 0x040c, 0x045c, 0x0455, + /* 0xd0 */ + 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x201e, + 0x040e, 0x045e, 0x040f, 0x045f, 0x2116, 0x0401, 0x0451, 0x044f, + /* 0xe0 */ + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, + 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, + /* 0xf0 */ + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, + 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x00a4, +}; + +static int +mac_ukraine_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c >= 0x80) + *pwc = (ucs4_t) mac_ukraine_2uni[c-0x80]; + else + *pwc = (ucs4_t) c; + return 1; +} + +static const unsigned char mac_ukraine_page00[32] = { + 0xca, 0x00, 0x00, 0xa3, 0xff, 0x00, 0x00, 0xa4, /* 0xa0-0xa7 */ + 0x00, 0xa9, 0x00, 0xc7, 0xc2, 0x00, 0xa8, 0x00, /* 0xa8-0xaf */ + 0xa1, 0xb1, 0x00, 0x00, 0x00, 0xb5, 0xa6, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ +}; +static const unsigned char mac_ukraine_page04[152] = { + 0x00, 0xdd, 0xab, 0xae, 0xb8, 0xc1, 0xa7, 0xba, /* 0x00-0x07 */ + 0xb7, 0xbc, 0xbe, 0xcb, 0xcd, 0x00, 0xd8, 0xda, /* 0x08-0x0f */ + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x10-0x17 */ + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /* 0x18-0x1f */ + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x20-0x27 */ + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x28-0x2f */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x30-0x37 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x38-0x3f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x40-0x47 */ + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xdf, /* 0x48-0x4f */ + 0x00, 0xde, 0xac, 0xaf, 0xb9, 0xcf, 0xb4, 0xbb, /* 0x50-0x57 */ + 0xc0, 0xbd, 0xbf, 0xcc, 0xce, 0x00, 0xd9, 0xdb, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0xa2, 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ +}; +static const unsigned char mac_ukraine_page20[24] = { + 0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0xd4, 0xd5, 0x00, 0x00, 0xd2, 0xd3, 0xd7, 0x00, /* 0x18-0x1f */ + 0xa0, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */ +}; +static const unsigned char mac_ukraine_page21[24] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ +}; +static const unsigned char mac_ukraine_page22[104] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xb0, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */ +}; + +static int +mac_ukraine_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00c0) + c = mac_ukraine_page00[wc-0x00a0]; + else if (wc == 0x00f7) + c = 0xd6; + else if (wc == 0x0192) + c = 0xc4; + else if (wc >= 0x0400 && wc < 0x0498) + c = mac_ukraine_page04[wc-0x0400]; + else if (wc >= 0x2010 && wc < 0x2028) + c = mac_ukraine_page20[wc-0x2010]; + else if (wc >= 0x2110 && wc < 0x2128) + c = mac_ukraine_page21[wc-0x2110]; + else if (wc >= 0x2200 && wc < 0x2268) + c = mac_ukraine_page22[wc-0x2200]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/makefile.msc b/graf2d/win32gdk/gdk/src/iconv/makefile.msc new file mode 100644 index 00000000000..756ecf6d1c8 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/makefile.msc @@ -0,0 +1,83 @@ +## Makefile for building the iconv dlls with Microsoft C +## Use: nmake -f makefile.msc + +## +## Used a writeup on the web to guide me: +## +## http://www.codeproject.com/Articles/302012/How-to-Build-libiconv-with-Microsoft-Visual-Studio +## + +ICONV_VER=1.3 + +################################################################ +# Flags +# See if debug is defined + +!IFNDEF DEBUG +# Full optimization: +OPTIMIZE = -O2 -MD +!ELSE +# Debugging: +OPTIMIZE = -Z7 -MDd +LINKDEBUG = /debug +!ENDIF + +# The CC flags depend if NMCXXFLAGS was passed in. If so, it overrides everything. + +# cl -? describes the options +#CC = cl -G5 -GF $(OPTIMIZE) -W3 -nologo +!if "$(NMCXXFLAGS)" == "" +CC = cl -GR $(OPTIMIZE) -W3 -nologo +!else +CC = cl -nologo $(NMCXXFLAGS) +!endif + +LDFLAGS = /link $(LINKDEBUG) + +# Check if nmake version is 8.xx or 9.xx +!if ([nmake /? 2>&1 | findstr /c:"Version 8\." > nul ] == 0) || \ + ([nmake /? 2>&1 | findstr /c:"Version 9\." > nul ] == 0) +MT_DLL = mt -nologo -manifest $@.manifest -outputresource:$@;2 +CLEAN_MT = -@erase /q $@.manifest >nul 2>&1 +!else +MT_DLL = +CLEAN_MT = +!endif + +# +# Basic C++ flags +# + +CFLAGS = -I. -DBUILDING_LIBICONV -DBUILDING_LIBCHARSET +#-DG_ENABLE_DEBUG -DHAVE_CONFIG_H -DGDK_VERSION=\"$(GTK_VER)\" +###################### + +all : \ + iconv-$(GLIB_VER).dll + +iconv_OBJECTS = \ + relocatable.obj \ + localcharset.obj \ + iconv.obj \ + +################ glib + +iconv-$(GLIB_VER).dll : $(iconv_OBJECTS) + $(CC) $(CFLAGS) -LD -Feiconv-$(ICONV_VER).dll $(iconv_OBJECTS) $(LIBICONV_LIBS) $(INTL_LIBS) user32.lib advapi32.lib wsock32.lib $(LDFLAGS) + $(MT_DLL) + $(CLEAN_MT) + +.c.obj : + $(CC) $(CFLAGS) -c $< + +################ other stuff + +clean:: + -@erase /q *.dll >nul 2>&1 + -@erase /q *.obj >nul 2>&1 + -@erase /q *.lib >nul 2>&1 + -@erase /q *.err >nul 2>&1 + -@erase /q *.res >nul 2>&1 + -@erase /q *.exp >nul 2>&1 + -@erase /q *.pdb >nul 2>&1 + -@erase /q *.ilk >nul 2>&1 diff --git a/graf2d/win32gdk/gdk/src/iconv/mulelao.h b/graf2d/win32gdk/gdk/src/iconv/mulelao.h new file mode 100644 index 00000000000..abfb5cf0ee2 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/mulelao.h @@ -0,0 +1,96 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * MULELAO-1 + */ + +static const unsigned short mulelao_2uni[96] = { + /* 0xa0 */ + 0x00a0, 0x0e81, 0x0e82, 0xfffd, 0x0e84, 0xfffd, 0xfffd, 0x0e87, + 0x0e88, 0xfffd, 0x0e8a, 0xfffd, 0xfffd, 0x0e8d, 0xfffd, 0xfffd, + /* 0xb0 */ + 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0e94, 0x0e95, 0x0e96, 0x0e97, + 0xfffd, 0x0e99, 0x0e9a, 0x0e9b, 0x0e9c, 0x0e9d, 0x0e9e, 0x0e9f, + /* 0xc0 */ + 0xfffd, 0x0ea1, 0x0ea2, 0x0ea3, 0xfffd, 0x0ea5, 0xfffd, 0x0ea7, + 0xfffd, 0xfffd, 0x0eaa, 0x0eab, 0xfffd, 0x0ead, 0x0eae, 0x0eaf, + /* 0xd0 */ + 0x0eb0, 0x0eb1, 0x0eb2, 0x0eb3, 0x0eb4, 0x0eb5, 0x0eb6, 0x0eb7, + 0x0eb8, 0x0eb9, 0xfffd, 0x0ebb, 0x0ebc, 0x0ebd, 0xfffd, 0xfffd, + /* 0xe0 */ + 0x0ec0, 0x0ec1, 0x0ec2, 0x0ec3, 0x0ec4, 0xfffd, 0x0ec6, 0xfffd, + 0x0ec8, 0x0ec9, 0x0eca, 0x0ecb, 0x0ecc, 0x0ecd, 0xfffd, 0xfffd, + /* 0xf0 */ + 0x0ed0, 0x0ed1, 0x0ed2, 0x0ed3, 0x0ed4, 0x0ed5, 0x0ed6, 0x0ed7, + 0x0ed8, 0x0ed9, 0xfffd, 0xfffd, 0x0edc, 0x0edd, 0xfffd, 0xfffd, +}; + +static int +mulelao_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0xa0) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = mulelao_2uni[c-0xa0]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char mulelao_page0e[96] = { + 0x00, 0xa1, 0xa2, 0x00, 0xa4, 0x00, 0x00, 0xa7, /* 0x80-0x87 */ + 0xa8, 0x00, 0xaa, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0x00, 0x00, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x90-0x97 */ + 0x00, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0x98-0x9f */ + 0x00, 0xc1, 0xc2, 0xc3, 0x00, 0xc5, 0x00, 0xc7, /* 0xa0-0xa7 */ + 0x00, 0x00, 0xca, 0xcb, 0x00, 0xcd, 0xce, 0xcf, /* 0xa8-0xaf */ + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xb0-0xb7 */ + 0xd8, 0xd9, 0x00, 0xdb, 0xdc, 0xdd, 0x00, 0x00, /* 0xb8-0xbf */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0x00, 0xe6, 0x00, /* 0xc0-0xc7 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0x00, 0x00, /* 0xc8-0xcf */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xd0-0xd7 */ + 0xf8, 0xf9, 0x00, 0x00, 0xfc, 0xfd, 0x00, 0x00, /* 0xd8-0xdf */ +}; + +static int +mulelao_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x00a0) { + *r = wc; + return 1; + } + else if (wc == 0x00a0) + c = 0xa0; + else if (wc >= 0x0e80 && wc < 0x0ee0) + c = mulelao_page0e[wc-0x0e80]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/nextstep.h b/graf2d/win32gdk/gdk/src/iconv/nextstep.h new file mode 100644 index 00000000000..ffe41b91700 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/nextstep.h @@ -0,0 +1,141 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * NEXTSTEP + */ + +static const unsigned short nextstep_2uni[128] = { + /* 0x80 */ + 0x00a0, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c7, + 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, + /* 0x90 */ + 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d9, + 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00b5, 0x00d7, 0x00f7, + /* 0xa0 */ + 0x00a9, 0x00a1, 0x00a2, 0x00a3, 0x2044, 0x00a5, 0x0192, 0x00a7, + 0x00a4, 0x2019, 0x201c, 0x00ab, 0x2039, 0x203a, 0xfb01, 0xfb02, + /* 0xb0 */ + 0x00ae, 0x2013, 0x2020, 0x2021, 0x00b7, 0x00a6, 0x00b6, 0x2022, + 0x201a, 0x201e, 0x201d, 0x00bb, 0x2026, 0x2030, 0x00ac, 0x00bf, + /* 0xc0 */ + 0x00b9, 0x02cb, 0x00b4, 0x02c6, 0x02dc, 0x00af, 0x02d8, 0x02d9, + 0x00a8, 0x00b2, 0x02da, 0x00b8, 0x00b3, 0x02dd, 0x02db, 0x02c7, + /* 0xd0 */ + 0x2014, 0x00b1, 0x00bc, 0x00bd, 0x00be, 0x00e0, 0x00e1, 0x00e2, + 0x00e3, 0x00e4, 0x00e5, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, + /* 0xe0 */ + 0x00ec, 0x00c6, 0x00ed, 0x00aa, 0x00ee, 0x00ef, 0x00f0, 0x00f1, + 0x0141, 0x00d8, 0x0152, 0x00ba, 0x00f2, 0x00f3, 0x00f4, 0x00f5, + /* 0xf0 */ + 0x00f6, 0x00e6, 0x00f9, 0x00fa, 0x00fb, 0x0131, 0x00fc, 0x00fd, + 0x0142, 0x00f8, 0x0153, 0x00df, 0x00fe, 0x00ff, 0xfffd, 0xfffd, +}; + +static int +nextstep_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = nextstep_2uni[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char nextstep_page00[96] = { + 0x80, 0xa1, 0xa2, 0xa3, 0xa8, 0xa5, 0xb5, 0xa7, /* 0xa0-0xa7 */ + 0xc8, 0xa0, 0xe3, 0xab, 0xbe, 0x00, 0xb0, 0xc5, /* 0xa8-0xaf */ + 0x00, 0xd1, 0xc9, 0xcc, 0xc2, 0x9d, 0xb6, 0xb4, /* 0xb0-0xb7 */ + 0xcb, 0xc0, 0xeb, 0xbb, 0xd2, 0xd3, 0xd4, 0xbf, /* 0xb8-0xbf */ + 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0xe1, 0x87, /* 0xc0-0xc7 */ + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /* 0xc8-0xcf */ + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x9e, /* 0xd0-0xd7 */ + 0xe9, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0xfb, /* 0xd8-0xdf */ + 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xf1, 0xdb, /* 0xe0-0xe7 */ + 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe2, 0xe4, 0xe5, /* 0xe8-0xef */ + 0xe6, 0xe7, 0xec, 0xed, 0xee, 0xef, 0xf0, 0x9f, /* 0xf0-0xf7 */ + 0xf9, 0xf2, 0xf3, 0xf4, 0xf6, 0xf7, 0xfc, 0xfd, /* 0xf8-0xff */ +}; +static const unsigned char nextstep_page01[104] = { + 0x00, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0xe8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0xea, 0xfa, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ +}; +static const unsigned char nextstep_page02[32] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0xcf, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0xc6, 0xc7, 0xca, 0xce, 0xc4, 0xcd, 0x00, 0x00, /* 0xd8-0xdf */ +}; +static const unsigned char nextstep_page20[56] = { + 0x00, 0x00, 0x00, 0xb1, 0xd0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0xa9, 0xb8, 0x00, 0xaa, 0xba, 0xb9, 0x00, /* 0x18-0x1f */ + 0xb2, 0xb3, 0xb7, 0x00, 0x00, 0x00, 0xbc, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0xac, 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, /* 0x40-0x47 */ +}; +static const unsigned char nextstep_pagefb[8] = { + 0x00, 0xae, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ +}; + +static int +nextstep_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x0100) + c = nextstep_page00[wc-0x00a0]; + else if (wc >= 0x0130 && wc < 0x0198) + c = nextstep_page01[wc-0x0130]; + else if (wc >= 0x02c0 && wc < 0x02e0) + c = nextstep_page02[wc-0x02c0]; + else if (wc >= 0x2010 && wc < 0x2048) + c = nextstep_page20[wc-0x2010]; + else if (wc >= 0xfb00 && wc < 0xfb08) + c = nextstep_pagefb[wc-0xfb00]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/pt154.h b/graf2d/win32gdk/gdk/src/iconv/pt154.h new file mode 100644 index 00000000000..36a5d84fc24 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/pt154.h @@ -0,0 +1,118 @@ +/* + * Copyright (C) 1999-2005 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * PT154 + */ + +static const unsigned short pt154_2uni[64] = { + /* 0x80 */ + 0x0496, 0x0492, 0x04ee, 0x0493, 0x201e, 0x2026, 0x04b6, 0x04ae, + 0x04b2, 0x04af, 0x04a0, 0x04e2, 0x04a2, 0x049a, 0x04ba, 0x04b8, + /* 0x90 */ + 0x0497, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, + 0x04b3, 0x04b7, 0x04a1, 0x04e3, 0x04a3, 0x049b, 0x04bb, 0x04b9, + /* 0xa0 */ + 0x00a0, 0x040e, 0x045e, 0x0408, 0x04e8, 0x0498, 0x04b0, 0x00a7, + 0x0401, 0x00a9, 0x04d8, 0x00ab, 0x00ac, 0x04ef, 0x00ae, 0x049c, + /* 0xb0 */ + 0x00b0, 0x04b1, 0x0406, 0x0456, 0x0499, 0x04e9, 0x00b6, 0x00b7, + 0x0451, 0x2116, 0x04d9, 0x00bb, 0x0458, 0x04aa, 0x04ab, 0x049d, +}; + +static int +pt154_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) + *pwc = (ucs4_t) c; + else if (c >= 0xc0) + *pwc = (ucs4_t) c + 0x0350; + else + *pwc = (ucs4_t) pt154_2uni[c-0x80]; + return 1; +} + +static const unsigned char pt154_page00[32] = { + 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */ + 0x00, 0xa9, 0x00, 0xab, 0xac, 0x00, 0xae, 0x00, /* 0xa8-0xaf */ + 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0xb7, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ +}; +static const unsigned char pt154_page04[240] = { + 0x00, 0xa8, 0x00, 0x00, 0x00, 0x00, 0xb2, 0x00, /* 0x00-0x07 */ + 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, 0x00, /* 0x08-0x0f */ + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x10-0x17 */ + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x18-0x1f */ + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x20-0x27 */ + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0x28-0x2f */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x30-0x37 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x38-0x3f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x40-0x47 */ + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0x48-0x4f */ + 0x00, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xb3, 0x00, /* 0x50-0x57 */ + 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa2, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0x81, 0x83, 0x00, 0x00, 0x80, 0x90, /* 0x90-0x97 */ + 0xa5, 0xb4, 0x8d, 0x9d, 0xaf, 0xbf, 0x00, 0x00, /* 0x98-0x9f */ + 0x8a, 0x9a, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0xbd, 0xbe, 0x00, 0x00, 0x87, 0x89, /* 0xa8-0xaf */ + 0xa6, 0xb1, 0x88, 0x98, 0x00, 0x00, 0x86, 0x99, /* 0xb0-0xb7 */ + 0x8f, 0x9f, 0x8e, 0x9e, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0xaa, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ + 0x00, 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ + 0xa4, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x82, 0xad, /* 0xe8-0xef */ +}; +static const unsigned char pt154_page20[24] = { + 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x91, 0x92, 0x00, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ +}; + +static int +pt154_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00c0) + c = pt154_page00[wc-0x00a0]; + else if (wc >= 0x0400 && wc < 0x04f0) + c = pt154_page04[wc-0x0400]; + else if (wc >= 0x2010 && wc < 0x2028) + c = pt154_page20[wc-0x2010]; + else if (wc == 0x2116) + c = 0xb9; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/relocatable.c b/graf2d/win32gdk/gdk/src/iconv/relocatable.c new file mode 100644 index 00000000000..bfbaaaca22d --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/relocatable.c @@ -0,0 +1,493 @@ +/* Provide relocatable packages. + Copyright (C) 2003-2006, 2008 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2003. + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published + by the Free Software Foundation; either version 3, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU General Public + License along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. */ + + +/* Tell glibc's <stdio.h> to provide a prototype for getline(). + This must come before <config.h> because <config.h> may include + <features.h>, and once <features.h> has been included, it's too late. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif + +#include <config.h> + +/* Specification. */ +#include "relocatable.h" + +#if ENABLE_RELOCATABLE + +#include <stddef.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#ifdef NO_XMALLOC +# define xmalloc malloc +#else +# include "xalloc.h" +#endif + +#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ +# define WIN32_LEAN_AND_MEAN +# include <windows.h> +#endif + +#if DEPENDS_ON_LIBCHARSET +# include <libcharset.h> +#endif +#if DEPENDS_ON_LIBICONV && HAVE_ICONV +# include <iconv.h> +#endif +#if DEPENDS_ON_LIBINTL && ENABLE_NLS +# include <libintl.h> +#endif + +/* Faked cheap 'bool'. */ +#undef bool +#undef false +#undef true +#define bool int +#define false 0 +#define true 1 + +/* Pathname support. + ISSLASH(C) tests whether C is a directory separator character. + IS_PATH_WITH_DIR(P) tests whether P contains a directory specification. + */ +#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ + /* Win32, Cygwin, OS/2, DOS */ +# define ISSLASH(C) ((C) == '/' || (C) == '\\') +# define HAS_DEVICE(P) \ + ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \ + && (P)[1] == ':') +# define IS_PATH_WITH_DIR(P) \ + (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P)) +# define FILE_SYSTEM_PREFIX_LEN(P) (HAS_DEVICE (P) ? 2 : 0) +#else + /* Unix */ +# define ISSLASH(C) ((C) == '/') +# define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL) +# define FILE_SYSTEM_PREFIX_LEN(P) 0 +#endif + +/* Original installation prefix. */ +static char *orig_prefix; +static size_t orig_prefix_len; +/* Current installation prefix. */ +static char *curr_prefix; +static size_t curr_prefix_len; +/* These prefixes do not end in a slash. Anything that will be concatenated + to them must start with a slash. */ + +/* Sets the original and the current installation prefix of this module. + Relocation simply replaces a pathname starting with the original prefix + by the corresponding pathname with the current prefix instead. Both + prefixes should be directory names without trailing slash (i.e. use "" + instead of "/"). */ +static void +set_this_relocation_prefix (const char *orig_prefix_arg, + const char *curr_prefix_arg) +{ + if (orig_prefix_arg != NULL && curr_prefix_arg != NULL + /* Optimization: if orig_prefix and curr_prefix are equal, the + relocation is a nop. */ + && strcmp (orig_prefix_arg, curr_prefix_arg) != 0) + { + /* Duplicate the argument strings. */ + char *memory; + + orig_prefix_len = strlen (orig_prefix_arg); + curr_prefix_len = strlen (curr_prefix_arg); + memory = (char *) xmalloc (orig_prefix_len + 1 + curr_prefix_len + 1); +#ifdef NO_XMALLOC + if (memory != NULL) +#endif + { + memcpy (memory, orig_prefix_arg, orig_prefix_len + 1); + orig_prefix = memory; + memory += orig_prefix_len + 1; + memcpy (memory, curr_prefix_arg, curr_prefix_len + 1); + curr_prefix = memory; + return; + } + } + orig_prefix = NULL; + curr_prefix = NULL; + /* Don't worry about wasted memory here - this function is usually only + called once. */ +} + +/* Sets the original and the current installation prefix of the package. + Relocation simply replaces a pathname starting with the original prefix + by the corresponding pathname with the current prefix instead. Both + prefixes should be directory names without trailing slash (i.e. use "" + instead of "/"). */ +void +set_relocation_prefix (const char *orig_prefix_arg, const char *curr_prefix_arg) +{ + set_this_relocation_prefix (orig_prefix_arg, curr_prefix_arg); + + /* Now notify all dependent libraries. */ +#if DEPENDS_ON_LIBCHARSET + libcharset_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg); +#endif +#if DEPENDS_ON_LIBICONV && HAVE_ICONV && _LIBICONV_VERSION >= 0x0109 + libiconv_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg); +#endif +#if DEPENDS_ON_LIBINTL && ENABLE_NLS && defined libintl_set_relocation_prefix + libintl_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg); +#endif +} + +#if !defined IN_LIBRARY || (defined PIC && defined INSTALLDIR) + +/* Convenience function: + Computes the current installation prefix, based on the original + installation prefix, the original installation directory of a particular + file, and the current pathname of this file. + Returns it, freshly allocated. Returns NULL upon failure. */ +#ifdef IN_LIBRARY +#define compute_curr_prefix local_compute_curr_prefix +static +#endif +char * +compute_curr_prefix (const char *orig_installprefix, + const char *orig_installdir, + const char *curr_pathname) +{ + char *curr_installdir; + const char *rel_installdir; + + if (curr_pathname == NULL) + return NULL; + + /* Determine the relative installation directory, relative to the prefix. + This is simply the difference between orig_installprefix and + orig_installdir. */ + if (strncmp (orig_installprefix, orig_installdir, strlen (orig_installprefix)) + != 0) + /* Shouldn't happen - nothing should be installed outside $(prefix). */ + return NULL; + rel_installdir = orig_installdir + strlen (orig_installprefix); + + /* Determine the current installation directory. */ + { + const char *p_base = curr_pathname + FILE_SYSTEM_PREFIX_LEN (curr_pathname); + const char *p = curr_pathname + strlen (curr_pathname); + char *q; + + while (p > p_base) + { + p--; + if (ISSLASH (*p)) + break; + } + + q = (char *) xmalloc (p - curr_pathname + 1); +#ifdef NO_XMALLOC + if (q == NULL) + return NULL; +#endif + memcpy (q, curr_pathname, p - curr_pathname); + q[p - curr_pathname] = '\0'; + curr_installdir = q; + } + + /* Compute the current installation prefix by removing the trailing + rel_installdir from it. */ + { + const char *rp = rel_installdir + strlen (rel_installdir); + const char *cp = curr_installdir + strlen (curr_installdir); + const char *cp_base = + curr_installdir + FILE_SYSTEM_PREFIX_LEN (curr_installdir); + + while (rp > rel_installdir && cp > cp_base) + { + bool same = false; + const char *rpi = rp; + const char *cpi = cp; + + while (rpi > rel_installdir && cpi > cp_base) + { + rpi--; + cpi--; + if (ISSLASH (*rpi) || ISSLASH (*cpi)) + { + if (ISSLASH (*rpi) && ISSLASH (*cpi)) + same = true; + break; + } + /* Do case-insensitive comparison if the filesystem is always or + often case-insensitive. It's better to accept the comparison + if the difference is only in case, rather than to fail. */ +#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ + /* Win32, Cygwin, OS/2, DOS - case insignificant filesystem */ + if ((*rpi >= 'a' && *rpi <= 'z' ? *rpi - 'a' + 'A' : *rpi) + != (*cpi >= 'a' && *cpi <= 'z' ? *cpi - 'a' + 'A' : *cpi)) + break; +#else + if (*rpi != *cpi) + break; +#endif + } + if (!same) + break; + /* The last pathname component was the same. opi and cpi now point + to the slash before it. */ + rp = rpi; + cp = cpi; + } + + if (rp > rel_installdir) + { + /* Unexpected: The curr_installdir does not end with rel_installdir. */ + free (curr_installdir); + return NULL; + } + + { + size_t curr_prefix_len = cp - curr_installdir; + char *curr_prefix; + + curr_prefix = (char *) xmalloc (curr_prefix_len + 1); +#ifdef NO_XMALLOC + if (curr_prefix == NULL) + { + free (curr_installdir); + return NULL; + } +#endif + memcpy (curr_prefix, curr_installdir, curr_prefix_len); + curr_prefix[curr_prefix_len] = '\0'; + + free (curr_installdir); + + return curr_prefix; + } + } +} + +#endif /* !IN_LIBRARY || PIC */ + +#if defined PIC && defined INSTALLDIR + +/* Full pathname of shared library, or NULL. */ +static char *shared_library_fullname; + +#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ + +/* Determine the full pathname of the shared library when it is loaded. */ + +BOOL WINAPI +DllMain (HINSTANCE module_handle, DWORD event, LPVOID reserved) +{ + (void) reserved; + + if (event == DLL_PROCESS_ATTACH) + { + /* The DLL is being loaded into an application's address range. */ + static char location[MAX_PATH]; + + if (!GetModuleFileName (module_handle, location, sizeof (location))) + /* Shouldn't happen. */ + return FALSE; + + if (!IS_PATH_WITH_DIR (location)) + /* Shouldn't happen. */ + return FALSE; + + { +#if defined __CYGWIN__ + /* On Cygwin, we need to convert paths coming from Win32 system calls + to the Unix-like slashified notation. */ + static char location_as_posix_path[2 * MAX_PATH]; + /* There's no error return defined for cygwin_conv_to_posix_path. + See cygwin-api/func-cygwin-conv-to-posix-path.html. + Does it overflow the buffer of expected size MAX_PATH or does it + truncate the path? I don't know. Let's catch both. */ + cygwin_conv_to_posix_path (location, location_as_posix_path); + location_as_posix_path[MAX_PATH - 1] = '\0'; + if (strlen (location_as_posix_path) >= MAX_PATH - 1) + /* A sign of buffer overflow or path truncation. */ + return FALSE; + shared_library_fullname = strdup (location_as_posix_path); +#else + shared_library_fullname = strdup (location); +#endif + } + } + + return TRUE; +} + +#else /* Unix except Cygwin */ + +static void +find_shared_library_fullname () +{ +#if defined __linux__ && __GLIBC__ >= 2 + /* Linux has /proc/self/maps. glibc 2 has the getline() function. */ + FILE *fp; + + /* Open the current process' maps file. It describes one VMA per line. */ + fp = fopen ("/proc/self/maps", "r"); + if (fp) + { + unsigned long address = (unsigned long) &find_shared_library_fullname; + for (;;) + { + unsigned long start, end; + int c; + + if (fscanf (fp, "%lx-%lx", &start, &end) != 2) + break; + if (address >= start && address <= end - 1) + { + /* Found it. Now see if this line contains a filename. */ + while (c = getc (fp), c != EOF && c != '\n' && c != '/') + continue; + if (c == '/') + { + size_t size; + int len; + + ungetc (c, fp); + shared_library_fullname = NULL; size = 0; + len = getline (&shared_library_fullname, &size, fp); + if (len >= 0) + { + /* Success: filled shared_library_fullname. */ + if (len > 0 && shared_library_fullname[len - 1] == '\n') + shared_library_fullname[len - 1] = '\0'; + } + } + break; + } + while (c = getc (fp), c != EOF && c != '\n') + continue; + } + fclose (fp); + } +#endif +} + +#endif /* (WIN32 or Cygwin) / (Unix except Cygwin) */ + +/* Return the full pathname of the current shared library. + Return NULL if unknown. + Guaranteed to work only on Linux, Cygwin and Woe32. */ +static char * +get_shared_library_fullname () +{ +#if !(defined _WIN32 || defined __WIN32__ || defined __CYGWIN__) + static bool tried_find_shared_library_fullname; + if (!tried_find_shared_library_fullname) + { + find_shared_library_fullname (); + tried_find_shared_library_fullname = true; + } +#endif + return shared_library_fullname; +} + +#endif /* PIC */ + +/* Returns the pathname, relocated according to the current installation + directory. + The returned string is either PATHNAME unmodified or a freshly allocated + string that you can free with free() after casting it to 'char *'. */ +const char * +relocate (const char *pathname) +{ +#if defined PIC && defined INSTALLDIR + static int initialized; + + /* Initialization code for a shared library. */ + if (!initialized) + { + /* At this point, orig_prefix and curr_prefix likely have already been + set through the main program's set_program_name_and_installdir + function. This is sufficient in the case that the library has + initially been installed in the same orig_prefix. But we can do + better, to also cover the cases that 1. it has been installed + in a different prefix before being moved to orig_prefix and (later) + to curr_prefix, 2. unlike the program, it has not moved away from + orig_prefix. */ + const char *orig_installprefix = INSTALLPREFIX; + const char *orig_installdir = INSTALLDIR; + char *curr_prefix_better; + + curr_prefix_better = + compute_curr_prefix (orig_installprefix, orig_installdir, + get_shared_library_fullname ()); + + set_relocation_prefix (orig_installprefix, + curr_prefix_better != NULL + ? curr_prefix_better + : curr_prefix); + + if (curr_prefix_better != NULL) + free (curr_prefix_better); + + initialized = 1; + } +#endif + + /* Note: It is not necessary to perform case insensitive comparison here, + even for DOS-like filesystems, because the pathname argument was + typically created from the same Makefile variable as orig_prefix came + from. */ + if (orig_prefix != NULL && curr_prefix != NULL + && strncmp (pathname, orig_prefix, orig_prefix_len) == 0) + { + if (pathname[orig_prefix_len] == '\0') + { + /* pathname equals orig_prefix. */ + char *result = (char *) xmalloc (strlen (curr_prefix) + 1); + +#ifdef NO_XMALLOC + if (result != NULL) +#endif + { + strcpy (result, curr_prefix); + return result; + } + } + else if (ISSLASH (pathname[orig_prefix_len])) + { + /* pathname starts with orig_prefix. */ + const char *pathname_tail = &pathname[orig_prefix_len]; + char *result = + (char *) xmalloc (curr_prefix_len + strlen (pathname_tail) + 1); + +#ifdef NO_XMALLOC + if (result != NULL) +#endif + { + memcpy (result, curr_prefix, curr_prefix_len); + strcpy (result + curr_prefix_len, pathname_tail); + return result; + } + } + } + /* Nothing to relocate. */ + return pathname; +} + +#endif diff --git a/graf2d/win32gdk/gdk/src/iconv/relocatable.h b/graf2d/win32gdk/gdk/src/iconv/relocatable.h new file mode 100644 index 00000000000..9d975b9d88d --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/relocatable.h @@ -0,0 +1,83 @@ +/* Provide relocatable packages. + Copyright (C) 2003, 2005, 2008 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2003. + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published + by the Free Software Foundation; either version 3, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU General Public + License along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + USA. */ + +#ifndef _RELOCATABLE_H +#define _RELOCATABLE_H + +#ifdef __cplusplus +extern "C" { +#endif + + +/* This can be enabled through the configure --enable-relocatable option. */ +#if ENABLE_RELOCATABLE + +/* When building a DLL, we must export some functions. Note that because + this is a private .h file, we don't need to use __declspec(dllimport) + in any case. */ +#if HAVE_VISIBILITY && BUILDING_DLL +# define RELOCATABLE_DLL_EXPORTED __attribute__((__visibility__("default"))) +#elif defined _MSC_VER && BUILDING_DLL +# define RELOCATABLE_DLL_EXPORTED __declspec(dllexport) +#else +# define RELOCATABLE_DLL_EXPORTED +#endif + +/* Sets the original and the current installation prefix of the package. + Relocation simply replaces a pathname starting with the original prefix + by the corresponding pathname with the current prefix instead. Both + prefixes should be directory names without trailing slash (i.e. use "" + instead of "/"). */ +extern RELOCATABLE_DLL_EXPORTED void + set_relocation_prefix (const char *orig_prefix, + const char *curr_prefix); + +/* Returns the pathname, relocated according to the current installation + directory. + The returned string is either PATHNAME unmodified or a freshly allocated + string that you can free with free() after casting it to 'char *'. */ +extern const char * relocate (const char *pathname); + +/* Memory management: relocate() potentially allocates memory, because it has + to construct a fresh pathname. If this is a problem because your program + calls relocate() frequently, think about caching the result. Or free the + return value if it was different from the argument pathname. */ + +/* Convenience function: + Computes the current installation prefix, based on the original + installation prefix, the original installation directory of a particular + file, and the current pathname of this file. + Returns it, freshly allocated. Returns NULL upon failure. */ +extern char * compute_curr_prefix (const char *orig_installprefix, + const char *orig_installdir, + const char *curr_pathname); + +#else + +/* By default, we use the hardwired pathnames. */ +#define relocate(pathname) (pathname) + +#endif + + +#ifdef __cplusplus +} +#endif + +#endif /* _RELOCATABLE_H */ diff --git a/graf2d/win32gdk/gdk/src/iconv/riscos1.h b/graf2d/win32gdk/gdk/src/iconv/riscos1.h new file mode 100644 index 00000000000..2ebc7513419 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/riscos1.h @@ -0,0 +1,96 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * RISCOS-LATIN1 + */ + +static const unsigned short riscos1_2uni[32] = { + /* 0x80 */ + 0x221a, 0x0174, 0x0175, 0x0083, 0x2573, 0x0176, 0x0177, 0x0087, + 0x21e6, 0x21e8, 0x21e9, 0x21e7, 0x2026, 0x2122, 0x2030, 0x2022, + /* 0x90 */ + 0x2018, 0x2019, 0x2039, 0x203a, 0x201c, 0x201d, 0x201e, 0x2013, + 0x2014, 0x2212, 0x0152, 0x0153, 0x2020, 0x2021, 0xfb01, 0xfb02, +}; + +static int +riscos1_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c >= 0x80 && c < 0xa0) + *pwc = (ucs4_t) riscos1_2uni[c-0x80]; + else + *pwc = (ucs4_t) c; + return 1; +} + +static const unsigned char riscos1_page01[40] = { + 0x00, 0x00, 0x9a, 0x9b, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x81, 0x82, 0x85, 0x86, /* 0x70-0x77 */ +}; +static const unsigned char riscos1_page20[48] = { + 0x00, 0x00, 0x00, 0x97, 0x98, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x90, 0x91, 0x00, 0x00, 0x94, 0x95, 0x96, 0x00, /* 0x18-0x1f */ + 0x9c, 0x9d, 0x8f, 0x00, 0x00, 0x00, 0x8c, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x8e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x92, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ +}; +static const unsigned char riscos1_page21[16] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x8b, /* 0xe0-0xe7 */ + 0x89, 0x8a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ +}; +static const unsigned char riscos1_page22[16] = { + 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ +}; + +static int +riscos1_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080 || wc == 0x0083 || wc == 0x0087 || (wc >= 0x00a0 && wc < 0x0100)) { + *r = wc; + return 1; + } + else if (wc >= 0x0150 && wc < 0x0178) + c = riscos1_page01[wc-0x0150]; + else if (wc >= 0x2010 && wc < 0x2040) + c = riscos1_page20[wc-0x2010]; + else if (wc == 0x2122) + c = 0x8d; + else if (wc >= 0x21e0 && wc < 0x21f0) + c = riscos1_page21[wc-0x21e0]; + else if (wc >= 0x2210 && wc < 0x2220) + c = riscos1_page22[wc-0x2210]; + else if (wc == 0x2573) + c = 0x84; + else if (wc >= 0xfb01 && wc < 0xfb03) + c = wc-0xfa63; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/rk1048.h b/graf2d/win32gdk/gdk/src/iconv/rk1048.h new file mode 100644 index 00000000000..0e1fde89713 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/rk1048.h @@ -0,0 +1,145 @@ +/* + * Copyright (C) 1999-2007 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * RK1048 + */ + +static const unsigned short rk1048_2uni[128] = { + /* 0x80 */ + 0x0402, 0x0403, 0x201a, 0x0453, 0x201e, 0x2026, 0x2020, 0x2021, + 0x20ac, 0x2030, 0x0409, 0x2039, 0x040a, 0x049a, 0x04ba, 0x040f, + /* 0x90 */ + 0x0452, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, + 0xfffd, 0x2122, 0x0459, 0x203a, 0x045a, 0x049b, 0x04bb, 0x045f, + /* 0xa0 */ + 0x00a0, 0x04b0, 0x04b1, 0x04d8, 0x00a4, 0x04e8, 0x00a6, 0x00a7, + 0x0401, 0x00a9, 0x0492, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x04ae, + /* 0xb0 */ + 0x00b0, 0x00b1, 0x0406, 0x0456, 0x04e9, 0x00b5, 0x00b6, 0x00b7, + 0x0451, 0x2116, 0x0493, 0x00bb, 0x04d9, 0x04a2, 0x04a3, 0x04af, + /* 0xc0 */ + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, + 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, + /* 0xd0 */ + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, + 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, + /* 0xe0 */ + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, + 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, + /* 0xf0 */ + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, + 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, +}; + +static int +rk1048_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else { + unsigned short wc = rk1048_2uni[c-0x80]; + if (wc != 0xfffd) { + *pwc = (ucs4_t) wc; + return 1; + } + } + return RET_ILSEQ; +} + +static const unsigned char rk1048_page00[32] = { + 0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0xa6, 0xa7, /* 0xa0-0xa7 */ + 0x00, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0x00, /* 0xa8-0xaf */ + 0xb0, 0xb1, 0x00, 0x00, 0x00, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ +}; +static const unsigned char rk1048_page04[240] = { + 0x00, 0xa8, 0x80, 0x81, 0x00, 0x00, 0xb2, 0x00, /* 0x00-0x07 */ + 0x00, 0x8a, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x8f, /* 0x08-0x0f */ + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x10-0x17 */ + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x18-0x1f */ + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x20-0x27 */ + 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0x28-0x2f */ + 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x30-0x37 */ + 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x38-0x3f */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x40-0x47 */ + 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0x48-0x4f */ + 0x00, 0xb8, 0x90, 0x83, 0x00, 0x00, 0xb3, 0x00, /* 0x50-0x57 */ + 0x00, 0x9a, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x9f, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0xaa, 0xba, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x8d, 0x9d, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0x00, 0x00, 0xbd, 0xbe, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0xbf, /* 0xa8-0xaf */ + 0xa1, 0xa2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x8e, 0x9e, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ + 0xa3, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ + 0xa5, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ +}; +static const unsigned char rk1048_page20[48] = { + 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ + 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ +}; +static const unsigned char rk1048_page21[24] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb9, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ +}; + +static int +rk1048_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x00c0) + c = rk1048_page00[wc-0x00a0]; + else if (wc >= 0x0400 && wc < 0x04f0) + c = rk1048_page04[wc-0x0400]; + else if (wc >= 0x2010 && wc < 0x2040) + c = rk1048_page20[wc-0x2010]; + else if (wc == 0x20ac) + c = 0x88; + else if (wc >= 0x2110 && wc < 0x2128) + c = rk1048_page21[wc-0x2110]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/shift_jisx0213.h b/graf2d/win32gdk/gdk/src/iconv/shift_jisx0213.h new file mode 100644 index 00000000000..05f00b00b00 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/shift_jisx0213.h @@ -0,0 +1,310 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * SHIFT_JISX0213 + */ + +/* The structure of Shift_JISX0213 is as follows: + + 0x00..0x7F: ISO646-JP, an ASCII variant + + 0x{A1..DF}: JISX0201 Katakana. + + 0x{81..9F,E0..EF}{40..7E,80..FC}: JISX0213 plane 1. + + 0x{F0..FC}{40..7E,80..FC}: JISX0213 plane 2, with irregular row mapping. + + Note that some JISX0213 characters are not contained in Unicode 3.2 + and are therefore best represented as sequences of Unicode characters. +*/ + +#include "jisx0213.h" +#include "flushwc.h" + +static int +shift_jisx0213_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + ucs4_t last_wc = conv->istate; + if (last_wc) { + /* Output the buffered character. */ + conv->istate = 0; + *pwc = last_wc; + return 0; /* Don't advance the input pointer. */ + } else { + unsigned char c = *s; + if (c < 0x80) { + /* Plain ISO646-JP character. */ + if (c == 0x5c) + *pwc = (ucs4_t) 0x00a5; + else if (c == 0x7e) + *pwc = (ucs4_t) 0x203e; + else + *pwc = (ucs4_t) c; + return 1; + } else if (c >= 0xa1 && c <= 0xdf) { + *pwc = c + 0xfec0; + return 1; + } else { + if ((c >= 0x81 && c <= 0x9f) || (c >= 0xe0 && c <= 0xfc)) { + /* Two byte character. */ + if (n >= 2) { + unsigned char c2 = s[1]; + if ((c2 >= 0x40 && c2 <= 0x7e) || (c2 >= 0x80 && c2 <= 0xfc)) { + unsigned int c1; + ucs4_t wc; + /* Convert to row and column. */ + if (c < 0xe0) + c -= 0x81; + else + c -= 0xc1; + if (c2 < 0x80) + c2 -= 0x40; + else + c2 -= 0x41; + /* Now 0 <= c <= 0x3b, 0 <= c2 <= 0xbb. */ + c1 = 2 * c; + if (c2 >= 0x5e) + c2 -= 0x5e, c1++; + c2 += 0x21; + if (c1 >= 0x5e) { + /* Handling of JISX 0213 plane 2 rows. */ + if (c1 >= 0x67) + c1 += 230; + else if (c1 >= 0x63 || c1 == 0x5f) + c1 += 168; + else + c1 += 162; + } + wc = jisx0213_to_ucs4(0x121+c1,c2); + if (wc) { + if (wc < 0x80) { + /* It's a combining character. */ + ucs4_t wc1 = jisx0213_to_ucs_combining[wc - 1][0]; + ucs4_t wc2 = jisx0213_to_ucs_combining[wc - 1][1]; + /* We cannot output two Unicode characters at once. So, + output the first character and buffer the second one. */ + *pwc = wc1; + conv->istate = wc2; + } else + *pwc = wc; + return 2; + } + } + } else + return RET_TOOFEW(0); + } + return RET_ILSEQ; + } + } +} + +#define shift_jisx0213_flushwc normal_flushwc + +/* Composition tables for each of the relevant combining characters. */ +static const struct { unsigned short base; unsigned short composed; } shift_jisx0213_comp_table_data[] = { +#define shift_jisx0213_comp_table02e5_idx 0 +#define shift_jisx0213_comp_table02e5_len 1 + { 0x8684, 0x8685 }, /* 0x12B65 = 0x12B64 U+02E5 */ +#define shift_jisx0213_comp_table02e9_idx (shift_jisx0213_comp_table02e5_idx+shift_jisx0213_comp_table02e5_len) +#define shift_jisx0213_comp_table02e9_len 1 + { 0x8680, 0x8686 }, /* 0x12B66 = 0x12B60 U+02E9 */ +#define shift_jisx0213_comp_table0300_idx (shift_jisx0213_comp_table02e9_idx+shift_jisx0213_comp_table02e9_len) +#define shift_jisx0213_comp_table0300_len 5 + { 0x857b, 0x8663 }, /* 0x12B44 = 0x1295C U+0300 */ + { 0x8657, 0x8667 }, /* 0x12B48 = 0x12B38 U+0300 */ + { 0x8656, 0x8669 }, /* 0x12B4A = 0x12B37 U+0300 */ + { 0x864f, 0x866b }, /* 0x12B4C = 0x12B30 U+0300 */ + { 0x8662, 0x866d }, /* 0x12B4E = 0x12B43 U+0300 */ +#define shift_jisx0213_comp_table0301_idx (shift_jisx0213_comp_table0300_idx+shift_jisx0213_comp_table0300_len) +#define shift_jisx0213_comp_table0301_len 4 + { 0x8657, 0x8668 }, /* 0x12B49 = 0x12B38 U+0301 */ + { 0x8656, 0x866a }, /* 0x12B4B = 0x12B37 U+0301 */ + { 0x864f, 0x866c }, /* 0x12B4D = 0x12B30 U+0301 */ + { 0x8662, 0x866e }, /* 0x12B4F = 0x12B43 U+0301 */ +#define shift_jisx0213_comp_table309a_idx (shift_jisx0213_comp_table0301_idx+shift_jisx0213_comp_table0301_len) +#define shift_jisx0213_comp_table309a_len 14 + { 0x82a9, 0x82f5 }, /* 0x12477 = 0x1242B U+309A */ + { 0x82ab, 0x82f6 }, /* 0x12478 = 0x1242D U+309A */ + { 0x82ad, 0x82f7 }, /* 0x12479 = 0x1242F U+309A */ + { 0x82af, 0x82f8 }, /* 0x1247A = 0x12431 U+309A */ + { 0x82b1, 0x82f9 }, /* 0x1247B = 0x12433 U+309A */ + { 0x834a, 0x8397 }, /* 0x12577 = 0x1252B U+309A */ + { 0x834c, 0x8398 }, /* 0x12578 = 0x1252D U+309A */ + { 0x834e, 0x8399 }, /* 0x12579 = 0x1252F U+309A */ + { 0x8350, 0x839a }, /* 0x1257A = 0x12531 U+309A */ + { 0x8352, 0x839b }, /* 0x1257B = 0x12533 U+309A */ + { 0x835a, 0x839c }, /* 0x1257C = 0x1253B U+309A */ + { 0x8363, 0x839d }, /* 0x1257D = 0x12544 U+309A */ + { 0x8367, 0x839e }, /* 0x1257E = 0x12548 U+309A */ + { 0x83f3, 0x83f6 }, /* 0x12678 = 0x12675 U+309A */ +}; + +static int +shift_jisx0213_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + int count = 0; + unsigned short lasttwo = conv->ostate; + + if (lasttwo) { + /* Attempt to combine the last character with this one. */ + unsigned int idx; + unsigned int len; + + if (wc == 0x02e5) + idx = shift_jisx0213_comp_table02e5_idx, + len = shift_jisx0213_comp_table02e5_len; + else if (wc == 0x02e9) + idx = shift_jisx0213_comp_table02e9_idx, + len = shift_jisx0213_comp_table02e9_len; + else if (wc == 0x0300) + idx = shift_jisx0213_comp_table0300_idx, + len = shift_jisx0213_comp_table0300_len; + else if (wc == 0x0301) + idx = shift_jisx0213_comp_table0301_idx, + len = shift_jisx0213_comp_table0301_len; + else if (wc == 0x309a) + idx = shift_jisx0213_comp_table309a_idx, + len = shift_jisx0213_comp_table309a_len; + else + goto not_combining; + + do + if (shift_jisx0213_comp_table_data[idx].base == lasttwo) + break; + while (++idx, --len > 0); + + if (len > 0) { + /* Output the combined character. */ + if (n >= 2) { + lasttwo = shift_jisx0213_comp_table_data[idx].composed; + r[0] = (lasttwo >> 8) & 0xff; + r[1] = lasttwo & 0xff; + conv->ostate = 0; + return 2; + } else + return RET_TOOSMALL; + } + + not_combining: + /* Output the buffered character. */ + if (n < 2) + return RET_TOOSMALL; + r[0] = (lasttwo >> 8) & 0xff; + r[1] = lasttwo & 0xff; + r += 2; + count = 2; + } + + if (wc < 0x80 && wc != 0x5c && wc != 0x7e) { + /* Plain ISO646-JP character. */ + if (n > count) { + r[0] = (unsigned char) wc; + conv->ostate = 0; + return count+1; + } else + return RET_TOOSMALL; + } else if (wc == 0x00a5) { + if (n > count) { + r[0] = 0x5c; + conv->ostate = 0; + return count+1; + } else + return RET_TOOSMALL; + } else if (wc == 0x203e) { + if (n > count) { + r[0] = 0x7e; + conv->ostate = 0; + return count+1; + } else + return RET_TOOSMALL; + } else if (wc >= 0xff61 && wc <= 0xff9f) { + /* Half-width katakana. */ + if (n > count) { + r[0] = wc - 0xfec0; + conv->ostate = 0; + return count+1; + } else + return RET_TOOSMALL; + } else { + unsigned int s1, s2; + unsigned short jch = ucs4_to_jisx0213(wc); + if (jch != 0) { + /* Convert it to shifted representation. */ + s1 = jch >> 8; + s2 = jch & 0x7f; + s1 -= 0x21; + s2 -= 0x21; + if (s1 >= 0x5e) { + /* Handling of JISX 0213 plane 2 rows. */ + if (s1 >= 0xcd) /* rows 0x26E..0x27E */ + s1 -= 102; + else if (s1 >= 0x8b || s1 == 0x87) /* rows 0x228, 0x22C..0x22F */ + s1 -= 40; + else /* rows 0x221, 0x223..0x225 */ + s1 -= 34; + /* Now 0x5e <= s1 <= 0x77. */ + } + if (s1 & 1) + s2 += 0x5e; + s1 = s1 >> 1; + if (s1 < 0x1f) + s1 += 0x81; + else + s1 += 0xc1; + if (s2 < 0x3f) + s2 += 0x40; + else + s2 += 0x41; + if (jch & 0x0080) { + /* A possible match in comp_table_data. We have to buffer it. */ + /* We know it's a JISX 0213 plane 1 character. */ + if (jch & 0x8000) abort(); + conv->ostate = (s1 << 8) | s2; + return count+0; + } + /* Output the shifted representation. */ + if (n >= count+2) { + r[0] = s1; + r[1] = s2; + conv->ostate = 0; + return count+2; + } else + return RET_TOOSMALL; + } + return RET_ILUNI; + } +} + +static int +shift_jisx0213_reset (conv_t conv, unsigned char *r, int n) +{ + state_t lasttwo = conv->ostate; + + if (lasttwo) { + if (n < 2) + return RET_TOOSMALL; + r[0] = (lasttwo >> 8) & 0xff; + r[1] = lasttwo & 0xff; + /* conv->ostate = 0; will be done by the caller */ + return 2; + } else + return 0; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/sjis.h b/graf2d/win32gdk/gdk/src/iconv/sjis.h new file mode 100644 index 00000000000..8244e3a87c3 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/sjis.h @@ -0,0 +1,132 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * SHIFT_JIS + */ + +/* + Conversion between SJIS codes (s1,s2) and JISX0208 codes (c1,c2): + Example. (s1,s2) = 0x8140, (c1,c2) = 0x2121. + 0x81 <= s1 <= 0x9F || 0xE0 <= s1 <= 0xEA, + 0x40 <= s2 <= 0x7E || 0x80 <= s2 <= 0xFC, + 0x21 <= c1 <= 0x74, 0x21 <= c2 <= 0x7E. + Invariant: + 94*2*(s1 < 0xE0 ? s1-0x81 : s1-0xC1) + (s2 < 0x80 ? s2-0x40 : s2-0x41) + = 94*(c1-0x21)+(c2-0x21) + Conversion (s1,s2) -> (c1,c2): + t1 := (s1 < 0xE0 ? s1-0x81 : s1-0xC1) + t2 := (s2 < 0x80 ? s2-0x40 : s2-0x41) + c1 := 2*t1 + (t2 < 0x5E ? 0 : 1) + 0x21 + c2 := (t2 < 0x5E ? t2 : t2-0x5E) + 0x21 + Conversion (c1,c2) -> (s1,s2): + t1 := (c1 - 0x21) >> 1 + t2 := ((c1 - 0x21) & 1) * 0x5E + (c2 - 0x21) + s1 := (t1 < 0x1F ? t1+0x81 : t1+0xC1) + s2 := (t2 < 0x3F ? t2+0x40 : t2+0x41) + */ + +static int +sjis_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80 || (c >= 0xa1 && c <= 0xdf)) + return jisx0201_mbtowc(conv,pwc,s,n); + else { + unsigned char s1, s2; + s1 = c; + if ((s1 >= 0x81 && s1 <= 0x9f) || (s1 >= 0xe0 && s1 <= 0xea)) { + if (n < 2) + return RET_TOOFEW(0); + s2 = s[1]; + if ((s2 >= 0x40 && s2 <= 0x7e) || (s2 >= 0x80 && s2 <= 0xfc)) { + unsigned char t1 = (s1 < 0xe0 ? s1-0x81 : s1-0xc1); + unsigned char t2 = (s2 < 0x80 ? s2-0x40 : s2-0x41); + unsigned char buf[2]; + buf[0] = 2*t1 + (t2 < 0x5e ? 0 : 1) + 0x21; + buf[1] = (t2 < 0x5e ? t2 : t2-0x5e) + 0x21; + return jisx0208_mbtowc(conv,pwc,buf,2); + } + } else if (s1 >= 0xf0 && s1 <= 0xf9) { + /* User-defined range. See + * Ken Lunde's "CJKV Information Processing", table 4-66, p. 206. */ + if (n < 2) + return RET_TOOFEW(0); + s2 = s[1]; + if ((s2 >= 0x40 && s2 <= 0x7e) || (s2 >= 0x80 && s2 <= 0xfc)) { + *pwc = 0xe000 + 188*(s1 - 0xf0) + (s2 < 0x80 ? s2-0x40 : s2-0x41); + return 2; + } + } + return RET_ILSEQ; + } +} + +static int +sjis_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char buf[2]; + int ret; + + /* Try JIS X 0201-1976. */ + ret = jisx0201_wctomb(conv,buf,wc,1); + if (ret != RET_ILUNI) { + unsigned char c; + if (ret != 1) abort(); + c = buf[0]; + if (c < 0x80 || (c >= 0xa1 && c <= 0xdf)) { + r[0] = c; + return 1; + } + } + + /* Try JIS X 0208-1990. */ + ret = jisx0208_wctomb(conv,buf,wc,2); + if (ret != RET_ILUNI) { + unsigned char c1, c2; + if (ret != 2) abort(); + if (n < 2) + return RET_TOOSMALL; + c1 = buf[0]; + c2 = buf[1]; + if ((c1 >= 0x21 && c1 <= 0x74) && (c2 >= 0x21 && c2 <= 0x7e)) { + unsigned char t1 = (c1 - 0x21) >> 1; + unsigned char t2 = (((c1 - 0x21) & 1) ? 0x5e : 0) + (c2 - 0x21); + r[0] = (t1 < 0x1f ? t1+0x81 : t1+0xc1); + r[1] = (t2 < 0x3f ? t2+0x40 : t2+0x41); + return 2; + } + } + + /* User-defined range. See + * Ken Lunde's "CJKV Information Processing", table 4-66, p. 206. */ + if (wc >= 0xe000 && wc < 0xe758) { + unsigned char c1, c2; + if (n < 2) + return RET_TOOSMALL; + c1 = (unsigned int) (wc - 0xe000) / 188; + c2 = (unsigned int) (wc - 0xe000) % 188; + r[0] = c1+0xf0; + r[1] = (c2 < 0x3f ? c2+0x40 : c2+0x41); + return 2; + } + + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/tcvn.h b/graf2d/win32gdk/gdk/src/iconv/tcvn.h new file mode 100644 index 00000000000..abd5def22c5 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/tcvn.h @@ -0,0 +1,291 @@ +/* + * Copyright (C) 1999-2002, 2004 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * TCVN-5712 + */ + +#include "flushwc.h" +#include "vietcomb.h" + +static const unsigned char tcvn_comb_table[] = { + 0xb0, 0xb3, 0xb2, 0xb1, 0xb4, +}; + +/* The possible bases in viet_comp_table_data: + 0x0041..0x0045, 0x0047..0x0049, 0x004B..0x0050, 0x0052..0x0057, + 0x0059..0x005A, 0x0061..0x0065, 0x0067..0x0069, 0x006B..0x0070, + 0x0072..0x0077, 0x0079..0x007A, 0x00A5, 0x00C2, 0x00CA, 0x00D3..0x00D6, + 0x00DA, 0x00E2, 0x00EA, 0x00F3..0x00F6, 0x00FA, 0x0102..0x0103, + 0x0168..0x0169, 0x01A0..0x01A1, 0x01AF..0x01B0. */ +static const unsigned int tcvn_comp_bases[] = { + 0x06fdfbbe, 0x06fdfbbe, 0x00000000, 0x00000020, 0x04780404, 0x04780404, + 0x0000000c, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0x00018003 +}; + +static const unsigned short tcvn_2uni_1[24] = { + /* 0x00 */ + 0x0000, 0x00da, 0x1ee4, 0x0003, 0x1eea, 0x1eec, 0x1eee, 0x0007, + 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x1ee8, 0x1ef0, 0x1ef2, 0x1ef6, 0x1ef8, 0x00dd, 0x1ef4, +}; +static const unsigned short tcvn_2uni_2[128] = { + /* 0x80 */ + 0x00c0, 0x1ea2, 0x00c3, 0x00c1, 0x1ea0, 0x1eb6, 0x1eac, 0x00c8, + 0x1eba, 0x1ebc, 0x00c9, 0x1eb8, 0x1ec6, 0x00cc, 0x1ec8, 0x0128, + /* 0x90 */ + 0x00cd, 0x1eca, 0x00d2, 0x1ece, 0x00d5, 0x00d3, 0x1ecc, 0x1ed8, + 0x1edc, 0x1ede, 0x1ee0, 0x1eda, 0x1ee2, 0x00d9, 0x1ee6, 0x0168, + /* 0xa0 */ + 0x00a0, 0x0102, 0x00c2, 0x00ca, 0x00d4, 0x01a0, 0x01af, 0x0110, + 0x0103, 0x00e2, 0x00ea, 0x00f4, 0x01a1, 0x01b0, 0x0111, 0x1eb0, + /* 0xb0 */ + 0x0300, 0x0309, 0x0303, 0x0301, 0x0323, 0x00e0, 0x1ea3, 0x00e3, + 0x00e1, 0x1ea1, 0x1eb2, 0x1eb1, 0x1eb3, 0x1eb5, 0x1eaf, 0x1eb4, + /* 0xc0 */ + 0x1eae, 0x1ea6, 0x1ea8, 0x1eaa, 0x1ea4, 0x1ec0, 0x1eb7, 0x1ea7, + 0x1ea9, 0x1eab, 0x1ea5, 0x1ead, 0x00e8, 0x1ec2, 0x1ebb, 0x1ebd, + /* 0xd0 */ + 0x00e9, 0x1eb9, 0x1ec1, 0x1ec3, 0x1ec5, 0x1ebf, 0x1ec7, 0x00ec, + 0x1ec9, 0x1ec4, 0x1ebe, 0x1ed2, 0x0129, 0x00ed, 0x1ecb, 0x00f2, + /* 0xe0 */ + 0x1ed4, 0x1ecf, 0x00f5, 0x00f3, 0x1ecd, 0x1ed3, 0x1ed5, 0x1ed7, + 0x1ed1, 0x1ed9, 0x1edd, 0x1edf, 0x1ee1, 0x1edb, 0x1ee3, 0x00f9, + /* 0xf0 */ + 0x1ed6, 0x1ee7, 0x0169, 0x00fa, 0x1ee5, 0x1eeb, 0x1eed, 0x1eef, + 0x1ee9, 0x1ef1, 0x1ef3, 0x1ef7, 0x1ef9, 0x00fd, 0x1ef5, 0x1ed0, +}; + +/* In the TCVN to Unicode direction, the state contains a buffered + character, or 0 if none. */ + +static int +tcvn_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + unsigned short wc; + unsigned short last_wc; + if (c < 0x18) + wc = tcvn_2uni_1[c]; + else if (c < 0x80) + wc = c; + else + wc = tcvn_2uni_2[c-0x80]; + last_wc = conv->istate; + if (last_wc) { + if (wc >= 0x0300 && wc < 0x0340) { + /* See whether last_wc and wc can be combined. */ + unsigned int k; + unsigned int i1, i2; + switch (wc) { + case 0x0300: k = 0; break; + case 0x0301: k = 1; break; + case 0x0303: k = 2; break; + case 0x0309: k = 3; break; + case 0x0323: k = 4; break; + default: abort(); + } + i1 = viet_comp_table[k].idx; + i2 = i1 + viet_comp_table[k].len-1; + if (last_wc >= viet_comp_table_data[i1].base + && last_wc <= viet_comp_table_data[i2].base) { + unsigned int i; + for (;;) { + i = (i1+i2)>>1; + if (last_wc == viet_comp_table_data[i].base) + break; + if (last_wc < viet_comp_table_data[i].base) { + if (i1 == i) + goto not_combining; + i2 = i; + } else { + if (i1 != i) + i1 = i; + else { + i = i2; + if (last_wc == viet_comp_table_data[i].base) + break; + goto not_combining; + } + } + } + last_wc = viet_comp_table_data[i].composed; + /* Output the combined character. */ + conv->istate = 0; + *pwc = (ucs4_t) last_wc; + return 1; + } + } + not_combining: + /* Output the buffered character. */ + conv->istate = 0; + *pwc = (ucs4_t) last_wc; + return 0; /* Don't advance the input pointer. */ + } + if (wc >= 0x0041 && wc <= 0x01b0 + && ((tcvn_comp_bases[(wc - 0x0040) >> 5] >> (wc & 0x1f)) & 1)) { + /* wc is a possible match in viet_comp_table_data. Buffer it. */ + conv->istate = wc; + return RET_TOOFEW(1); + } else { + /* Output wc immediately. */ + *pwc = (ucs4_t) wc; + return 1; + } +} + +#define tcvn_flushwc normal_flushwc + +static const unsigned char tcvn_page00[96+184] = { + 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ + 0x80, 0x83, 0xa2, 0x82, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0x87, 0x8a, 0xa3, 0x00, 0x8d, 0x90, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x92, 0x95, 0xa4, 0x94, 0x00, 0x00, /* 0xd0-0xd7 */ + 0x00, 0x9d, 0x01, 0x00, 0x00, 0x16, 0x00, 0x00, /* 0xd8-0xdf */ + 0xb5, 0xb8, 0xa9, 0xb7, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ + 0xcc, 0xd0, 0xaa, 0x00, 0xd7, 0xdd, 0x00, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0xdf, 0xe3, 0xab, 0xe2, 0x00, 0x00, /* 0xf0-0xf7 */ + 0x00, 0xef, 0xf3, 0x00, 0x00, 0xfd, 0x00, 0x00, /* 0xf8-0xff */ + /* 0x0100 */ + 0x00, 0x00, 0xa1, 0xa8, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xa7, 0xae, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0x8f, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x9f, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0xa5, 0xac, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, /* 0xa8-0xaf */ + 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ +}; +static const unsigned char tcvn_page03[40] = { + 0xb0, 0xb3, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ +}; +static const unsigned char tcvn_page1e[96] = { + 0x84, 0xb9, 0x81, 0xb6, 0xc4, 0xca, 0xc1, 0xc7, /* 0xa0-0xa7 */ + 0xc2, 0xc8, 0xc3, 0xc9, 0x86, 0xcb, 0xc0, 0xbe, /* 0xa8-0xaf */ + 0xaf, 0xbb, 0xba, 0xbc, 0xbf, 0xbd, 0x85, 0xc6, /* 0xb0-0xb7 */ + 0x8b, 0xd1, 0x88, 0xce, 0x89, 0xcf, 0xda, 0xd5, /* 0xb8-0xbf */ + 0xc5, 0xd2, 0xcd, 0xd3, 0xd9, 0xd4, 0x8c, 0xd6, /* 0xc0-0xc7 */ + 0x8e, 0xd8, 0x91, 0xde, 0x96, 0xe4, 0x93, 0xe1, /* 0xc8-0xcf */ + 0xff, 0xe8, 0xdb, 0xe5, 0xe0, 0xe6, 0xf0, 0xe7, /* 0xd0-0xd7 */ + 0x97, 0xe9, 0x9b, 0xed, 0x98, 0xea, 0x99, 0xeb, /* 0xd8-0xdf */ + 0x9a, 0xec, 0x9c, 0xee, 0x02, 0xf4, 0x9e, 0xf1, /* 0xe0-0xe7 */ + 0x11, 0xf8, 0x04, 0xf5, 0x05, 0xf6, 0x06, 0xf7, /* 0xe8-0xef */ + 0x12, 0xf9, 0x13, 0xfa, 0x17, 0xfe, 0x14, 0xfb, /* 0xf0-0xf7 */ + 0x15, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ +}; + +static int +tcvn_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080 && (wc >= 0x0020 || (0x00fe0076 & (1 << wc)) == 0)) { + *r = wc; + return 1; + } + else if (wc >= 0x00a0 && wc < 0x01b8) + c = tcvn_page00[wc-0x00a0]; + else if (wc >= 0x0300 && wc < 0x0328) + c = tcvn_page03[wc-0x0300]; + else if (wc >= 0x0340 && wc < 0x0342) /* deprecated Vietnamese tone marks */ + c = tcvn_page03[wc-0x0340]; + else if (wc >= 0x1ea0 && wc < 0x1f00) + c = tcvn_page1e[wc-0x1ea0]; + if (c != 0) { + *r = c; + return 1; + } + /* Try compatibility or canonical decomposition. */ + { + /* Binary search through viet_decomp_table. */ + unsigned int i1 = 0; + unsigned int i2 = sizeof(viet_decomp_table)/sizeof(viet_decomp_table[0])-1; + if (wc >= viet_decomp_table[i1].composed + && wc <= viet_decomp_table[i2].composed) { + unsigned int i; + for (;;) { + /* Here i2 - i1 > 0. */ + i = (i1+i2)>>1; + if (wc == viet_decomp_table[i].composed) + break; + if (wc < viet_decomp_table[i].composed) { + if (i1 == i) + return RET_ILUNI; + /* Here i1 < i < i2. */ + i2 = i; + } else { + /* Here i1 <= i < i2. */ + if (i1 != i) + i1 = i; + else { + /* Here i2 - i1 = 1. */ + i = i2; + if (wc == viet_decomp_table[i].composed) + break; + else + return RET_ILUNI; + } + } + } + /* Found a compatibility or canonical decomposition. */ + wc = viet_decomp_table[i].base; + /* wc is one of 0x0020, 0x0041..0x005a, 0x0061..0x007a, 0x00a5, 0x00a8, + 0x00c2, 0x00c5..0x00c7, 0x00ca, 0x00cf, 0x00d3, 0x00d4, 0x00d6, + 0x00d8, 0x00da, 0x00dc, 0x00e2, 0x00e5..0x00e7, 0x00ea, 0x00ef, + 0x00f3, 0x00f4, 0x00f6, 0x00f8, 0x00fc, 0x0102, 0x0103, 0x01a0, + 0x01a1, 0x01af, 0x01b0. */ + if (wc < 0x0080) + c = wc; + else { + c = tcvn_page00[wc-0x00a0]; + if (c == 0) + return RET_ILUNI; + } + if (n < 2) + return RET_TOOSMALL; + r[0] = c; + r[1] = tcvn_comb_table[viet_decomp_table[i].comb1]; + return 2; + } + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/tds565.h b/graf2d/win32gdk/gdk/src/iconv/tds565.h new file mode 100644 index 00000000000..479513fedf9 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/tds565.h @@ -0,0 +1,107 @@ +/* + * Copyright (C) 1999-2002 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * TDS565 + */ + +static const unsigned short tds565_2uni[64] = { + /* 0x40 */ + 0x0040, 0x0041, 0x0042, 0x00c7, 0x0044, 0x0045, 0x00c4, 0x0046, + 0x0047, 0x0048, 0x0049, 0x004a, 0x017d, 0x004b, 0x004c, 0x004d, + /* 0x50 */ + 0x004e, 0x0147, 0x004f, 0x00d6, 0x0050, 0x0052, 0x0053, 0x015e, + 0x0054, 0x0055, 0x00dc, 0x0057, 0x0059, 0x00dd, 0x005a, 0x005f, + /* 0x60 */ + 0x2116, 0x0061, 0x0062, 0x00e7, 0x0064, 0x0065, 0x00e4, 0x0066, + 0x0067, 0x0068, 0x0069, 0x006a, 0x017e, 0x006b, 0x006c, 0x006d, + /* 0x70 */ + 0x006e, 0x0148, 0x006f, 0x00f6, 0x0070, 0x0072, 0x0073, 0x015f, + 0x0074, 0x0075, 0x00fc, 0x0077, 0x0079, 0x00fd, 0x007a, 0x007f, +}; + +static int +tds565_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x40) { + *pwc = (ucs4_t) c; + return 1; + } + else if (c < 0x80) { + *pwc = (ucs4_t) tds565_2uni[c-0x40]; + return 1; + } + return RET_ILSEQ; +} + +static const unsigned char tds565_page00[64] = { + 0x40, 0x41, 0x42, 0x00, 0x44, 0x45, 0x47, 0x48, /* 0x40-0x47 */ + 0x49, 0x4a, 0x4b, 0x4d, 0x4e, 0x4f, 0x50, 0x52, /* 0x48-0x4f */ + 0x54, 0x00, 0x55, 0x56, 0x58, 0x59, 0x00, 0x5b, /* 0x50-0x57 */ + 0x00, 0x5c, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x5f, /* 0x58-0x5f */ + 0x00, 0x61, 0x62, 0x00, 0x64, 0x65, 0x67, 0x68, /* 0x60-0x67 */ + 0x69, 0x6a, 0x6b, 0x6d, 0x6e, 0x6f, 0x70, 0x72, /* 0x68-0x6f */ + 0x74, 0x00, 0x75, 0x76, 0x78, 0x79, 0x00, 0x7b, /* 0x70-0x77 */ + 0x00, 0x7c, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7f, /* 0x78-0x7f */ +}; +static const unsigned char tds565_page00_1[64] = { + 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x43, /* 0xc0-0xc7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x00, /* 0xd0-0xd7 */ + 0x00, 0x00, 0x00, 0x00, 0x5a, 0x5d, 0x00, 0x00, /* 0xd8-0xdf */ + 0x00, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x63, /* 0xe0-0xe7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, /* 0xf0-0xf7 */ + 0x00, 0x00, 0x00, 0x00, 0x7a, 0x7d, 0x00, 0x00, /* 0xf8-0xff */ +}; +static const unsigned char tds565_page01[64] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, /* 0x40-0x47 */ + 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x77, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x6c, 0x00, /* 0x78-0x7f */ +}; + +static int +tds565_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0040) { + *r = wc; + return 1; + } + else if (wc >= 0x0040 && wc < 0x0080) + c = tds565_page00[wc-0x0040]; + else if (wc >= 0x00c0 && wc < 0x0100) + c = tds565_page00_1[wc-0x00c0]; + else if (wc >= 0x0140 && wc < 0x0180) + c = tds565_page01[wc-0x0140]; + else if (wc == 0x2116) + c = 0x60; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/tis620.h b/graf2d/win32gdk/gdk/src/iconv/tis620.h new file mode 100644 index 00000000000..125e6dc80e7 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/tis620.h @@ -0,0 +1,52 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * TIS620.2533-1 + */ + +static int +tis620_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x80) { + *pwc = (ucs4_t) c; + return 1; + } + else if (c >= 0xa1 && c <= 0xfb && !(c >= 0xdb && c <= 0xde)) { + *pwc = (ucs4_t) (c + 0x0d60); + return 1; + } + return RET_ILSEQ; +} + +static int +tis620_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (wc < 0x0080) { + *r = wc; + return 1; + } + else if (wc >= 0x0e01 && wc <= 0x0e5b && !(wc >= 0x0e3b && wc <= 0x0e3e)) { + *r = wc-0x0d60; + return 1; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/translit.def b/graf2d/win32gdk/gdk/src/iconv/translit.def new file mode 100644 index 00000000000..cbd329ee536 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/translit.def @@ -0,0 +1,3918 @@ +# Copyright (C) 1999-2003 Free Software Foundation, Inc. +# This file is part of the GNU LIBICONV Library. +# +# The GNU LIBICONV Library is free software; you can redistribute it +# and/or modify it under the terms of the GNU Library General Public +# License as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# The GNU LIBICONV Library is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public +# License along with the GNU LIBICONV Library; see the file COPYING.LIB. +# If not, write to the Free Software Foundation, Inc., 51 Franklin Street, +# Fifth Floor, Boston, MA 02110-1301, USA. +# +# +# Definition of transliteration from Unicode to poorer character sets. +# +# This covers all of Markus Kuhn's TARGET1. +# +# The second column gives the transliteration. It is enclosed between tabs! +# +00A0 # NO-BREAK SPACE +00A1 ! # INVERTED EXCLAMATION MARK +00A2 c # CENT SIGN +00A3 lb # POUND SIGN +00A4 # CURRENCY SIGN +00A5 yen # YEN SIGN +00A6 | # BROKEN BAR +00A7 SS # SECTION SIGN +00A8 " # DIAERESIS +00A9 (c) # COPYRIGHT SIGN +00AA a # FEMININE ORDINAL INDICATOR +00AB << # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +00AC not # NOT SIGN +00AD - # SOFT HYPHEN +00AE (R) # REGISTERED SIGN +00AF # MACRON +00B0 ^0 # DEGREE SIGN +00B1 +/- # PLUS-MINUS SIGN +00B2 ^2 # SUPERSCRIPT TWO +00B3 ^3 # SUPERSCRIPT THREE +00B4 ' # ACUTE ACCENT +00B5 u # MICRO SIGN +00B6 P # PILCROW SIGN +00B7 . # MIDDLE DOT +00B8 , # CEDILLA +00B9 ^1 # SUPERSCRIPT ONE +00BA o # MASCULINE ORDINAL INDICATOR +00BB >> # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +00BC 1⁄4 # VULGAR FRACTION ONE QUARTER +00BD 1⁄2 # VULGAR FRACTION ONE HALF +00BE 3⁄4 # VULGAR FRACTION THREE QUARTERS +00BF ? # INVERTED QUESTION MARK +00C0 `A # LATIN CAPITAL LETTER A WITH GRAVE +00C1 ´A # LATIN CAPITAL LETTER A WITH ACUTE +00C2 ^A # LATIN CAPITAL LETTER A WITH CIRCUMFLEX +00C3 ~A # LATIN CAPITAL LETTER A WITH TILDE +00C4 "A # LATIN CAPITAL LETTER A WITH DIAERESIS +00C5 A # LATIN CAPITAL LETTER A WITH RING ABOVE +00C6 AE # LATIN CAPITAL LETTER AE +00C7 C # LATIN CAPITAL LETTER C WITH CEDILLA +00C8 `E # LATIN CAPITAL LETTER E WITH GRAVE +00C9 ´E # LATIN CAPITAL LETTER E WITH ACUTE +00CA ^E # LATIN CAPITAL LETTER E WITH CIRCUMFLEX +00CB "E # LATIN CAPITAL LETTER E WITH DIAERESIS +00CC `I # LATIN CAPITAL LETTER I WITH GRAVE +00CD ´I # LATIN CAPITAL LETTER I WITH ACUTE +00CE ^I # LATIN CAPITAL LETTER I WITH CIRCUMFLEX +00CF "I # LATIN CAPITAL LETTER I WITH DIAERESIS +00D0 D # LATIN CAPITAL LETTER ETH +00D1 ~N # LATIN CAPITAL LETTER N WITH TILDE +00D2 `O # LATIN CAPITAL LETTER O WITH GRAVE +00D3 ´O # LATIN CAPITAL LETTER O WITH ACUTE +00D4 ^O # LATIN CAPITAL LETTER O WITH CIRCUMFLEX +00D5 ~O # LATIN CAPITAL LETTER O WITH TILDE +00D6 "O # LATIN CAPITAL LETTER O WITH DIAERESIS +00D7 x # MULTIPLICATION SIGN +00D8 O # LATIN CAPITAL LETTER O WITH STROKE +00D9 `U # LATIN CAPITAL LETTER U WITH GRAVE +00DA ´U # LATIN CAPITAL LETTER U WITH ACUTE +00DB ^U # LATIN CAPITAL LETTER U WITH CIRCUMFLEX +00DC "U # LATIN CAPITAL LETTER U WITH DIAERESIS +00DD ´Y # LATIN CAPITAL LETTER Y WITH ACUTE +00DE Th # LATIN CAPITAL LETTER THORN +00DF ss # LATIN SMALL LETTER SHARP S +00E0 `a # LATIN SMALL LETTER A WITH GRAVE +00E1 ´a # LATIN SMALL LETTER A WITH ACUTE +00E2 ^a # LATIN SMALL LETTER A WITH CIRCUMFLEX +00E3 ~a # LATIN SMALL LETTER A WITH TILDE +00E4 "a # LATIN SMALL LETTER A WITH DIAERESIS +00E5 a # LATIN SMALL LETTER A WITH RING ABOVE +00E6 ae # LATIN SMALL LETTER AE +00E7 c # LATIN SMALL LETTER C WITH CEDILLA +00E8 `e # LATIN SMALL LETTER E WITH GRAVE +00E9 ´e # LATIN SMALL LETTER E WITH ACUTE +00EA ^e # LATIN SMALL LETTER E WITH CIRCUMFLEX +00EB "e # LATIN SMALL LETTER E WITH DIAERESIS +00EC `i # LATIN SMALL LETTER I WITH GRAVE +00ED ´i # LATIN SMALL LETTER I WITH ACUTE +00EE ^i # LATIN SMALL LETTER I WITH CIRCUMFLEX +00EF "i # LATIN SMALL LETTER I WITH DIAERESIS +00F0 d # LATIN SMALL LETTER ETH +00F1 ~n # LATIN SMALL LETTER N WITH TILDE +00F2 `o # LATIN SMALL LETTER O WITH GRAVE +00F3 ´o # LATIN SMALL LETTER O WITH ACUTE +00F4 ^o # LATIN SMALL LETTER O WITH CIRCUMFLEX +00F5 ~o # LATIN SMALL LETTER O WITH TILDE +00F6 "o # LATIN SMALL LETTER O WITH DIAERESIS +00F7 : # DIVISION SIGN +00F8 o # LATIN SMALL LETTER O WITH STROKE +00F9 `u # LATIN SMALL LETTER U WITH GRAVE +00FA ´u # LATIN SMALL LETTER U WITH ACUTE +00FB ^u # LATIN SMALL LETTER U WITH CIRCUMFLEX +00FC "u # LATIN SMALL LETTER U WITH DIAERESIS +00FD ´y # LATIN SMALL LETTER Y WITH ACUTE +00FE th # LATIN SMALL LETTER THORN +00FF "y # LATIN SMALL LETTER Y WITH DIAERESIS +0100 A # LATIN CAPITAL LETTER A WITH MACRON +0101 a # LATIN SMALL LETTER A WITH MACRON +0102 A # LATIN CAPITAL LETTER A WITH BREVE +0103 a # LATIN SMALL LETTER A WITH BREVE +0104 A # LATIN CAPITAL LETTER A WITH OGONEK +0105 a # LATIN SMALL LETTER A WITH OGONEK +0106 ´C # LATIN CAPITAL LETTER C WITH ACUTE +0107 ´c # LATIN SMALL LETTER C WITH ACUTE +0108 ^C # LATIN CAPITAL LETTER C WITH CIRCUMFLEX +0109 ^c # LATIN SMALL LETTER C WITH CIRCUMFLEX +010A C # LATIN CAPITAL LETTER C WITH DOT ABOVE +010B c # LATIN SMALL LETTER C WITH DOT ABOVE +010C C # LATIN CAPITAL LETTER C WITH CARON +010D c # LATIN SMALL LETTER C WITH CARON +010E D # LATIN CAPITAL LETTER D WITH CARON +010F d # LATIN SMALL LETTER D WITH CARON +0110 D # LATIN CAPITAL LETTER D WITH STROKE +0111 d # LATIN SMALL LETTER D WITH STROKE +0112 E # LATIN CAPITAL LETTER E WITH MACRON +0113 e # LATIN SMALL LETTER E WITH MACRON +0114 E # LATIN CAPITAL LETTER E WITH BREVE +0115 e # LATIN SMALL LETTER E WITH BREVE +0116 E # LATIN CAPITAL LETTER E WITH DOT ABOVE +0117 e # LATIN SMALL LETTER E WITH DOT ABOVE +0118 E # LATIN CAPITAL LETTER E WITH OGONEK +0119 e # LATIN SMALL LETTER E WITH OGONEK +011A E # LATIN CAPITAL LETTER E WITH CARON +011B e # LATIN SMALL LETTER E WITH CARON +011C ^G # LATIN CAPITAL LETTER G WITH CIRCUMFLEX +011D ^g # LATIN SMALL LETTER G WITH CIRCUMFLEX +011E G # LATIN CAPITAL LETTER G WITH BREVE +011F g # LATIN SMALL LETTER G WITH BREVE +0120 G # LATIN CAPITAL LETTER G WITH DOT ABOVE +0121 g # LATIN SMALL LETTER G WITH DOT ABOVE +0122 G # LATIN CAPITAL LETTER G WITH CEDILLA +0123 g # LATIN SMALL LETTER G WITH CEDILLA +0124 ^H # LATIN CAPITAL LETTER H WITH CIRCUMFLEX +0125 ^h # LATIN SMALL LETTER H WITH CIRCUMFLEX +0126 H # LATIN CAPITAL LETTER H WITH STROKE +0127 h # LATIN SMALL LETTER H WITH STROKE +0128 ~I # LATIN CAPITAL LETTER I WITH TILDE +0129 ~i # LATIN SMALL LETTER I WITH TILDE +012A I # LATIN CAPITAL LETTER I WITH MACRON +012B i # LATIN SMALL LETTER I WITH MACRON +012C I # LATIN CAPITAL LETTER I WITH BREVE +012D i # LATIN SMALL LETTER I WITH BREVE +012E I # LATIN CAPITAL LETTER I WITH OGONEK +012F i # LATIN SMALL LETTER I WITH OGONEK +0130 I # LATIN CAPITAL LETTER I WITH DOT ABOVE +0131 i # LATIN SMALL LETTER DOTLESS I +0132 IJ # LATIN CAPITAL LIGATURE IJ +0133 ij # LATIN SMALL LIGATURE IJ +0134 ^J # LATIN CAPITAL LETTER J WITH CIRCUMFLEX +0135 ^j # LATIN SMALL LETTER J WITH CIRCUMFLEX +0136 K # LATIN CAPITAL LETTER K WITH CEDILLA +0137 k # LATIN SMALL LETTER K WITH CEDILLA +0138 # LATIN SMALL LETTER KRA +0139 L # LATIN CAPITAL LETTER L WITH ACUTE +013A l # LATIN SMALL LETTER L WITH ACUTE +013B L # LATIN CAPITAL LETTER L WITH CEDILLA +013C l # LATIN SMALL LETTER L WITH CEDILLA +013D L # LATIN CAPITAL LETTER L WITH CARON +013E l # LATIN SMALL LETTER L WITH CARON +013F L # LATIN CAPITAL LETTER L WITH MIDDLE DOT +0140 l # LATIN SMALL LETTER L WITH MIDDLE DOT +0141 L # LATIN CAPITAL LETTER L WITH STROKE +0142 l # LATIN SMALL LETTER L WITH STROKE +0143 ´N # LATIN CAPITAL LETTER N WITH ACUTE +0144 ´n # LATIN SMALL LETTER N WITH ACUTE +0145 N # LATIN CAPITAL LETTER N WITH CEDILLA +0146 n # LATIN SMALL LETTER N WITH CEDILLA +0147 N # LATIN CAPITAL LETTER N WITH CARON +0148 n # LATIN SMALL LETTER N WITH CARON +0149 'n # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE +014A # LATIN CAPITAL LETTER ENG +014B # LATIN SMALL LETTER ENG +014C O # LATIN CAPITAL LETTER O WITH MACRON +014D o # LATIN SMALL LETTER O WITH MACRON +014E O # LATIN CAPITAL LETTER O WITH BREVE +014F o # LATIN SMALL LETTER O WITH BREVE +0150 "O # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE +0151 "o # LATIN SMALL LETTER O WITH DOUBLE ACUTE +0152 OE # LATIN CAPITAL LIGATURE OE +0153 oe # LATIN SMALL LIGATURE OE +0154 ´R # LATIN CAPITAL LETTER R WITH ACUTE +0155 ´r # LATIN SMALL LETTER R WITH ACUTE +0156 R # LATIN CAPITAL LETTER R WITH CEDILLA +0157 r # LATIN SMALL LETTER R WITH CEDILLA +0158 R # LATIN CAPITAL LETTER R WITH CARON +0159 r # LATIN SMALL LETTER R WITH CARON +015A ´S # LATIN CAPITAL LETTER S WITH ACUTE +015B ´s # LATIN SMALL LETTER S WITH ACUTE +015C ^S # LATIN CAPITAL LETTER S WITH CIRCUMFLEX +015D ^s # LATIN SMALL LETTER S WITH CIRCUMFLEX +015E S # LATIN CAPITAL LETTER S WITH CEDILLA +015F s # LATIN SMALL LETTER S WITH CEDILLA +0160 S # LATIN CAPITAL LETTER S WITH CARON +0161 s # LATIN SMALL LETTER S WITH CARON +0162 T # LATIN CAPITAL LETTER T WITH CEDILLA +0163 t # LATIN SMALL LETTER T WITH CEDILLA +0164 T # LATIN CAPITAL LETTER T WITH CARON +0165 t # LATIN SMALL LETTER T WITH CARON +0166 T # LATIN CAPITAL LETTER T WITH STROKE +0167 t # LATIN SMALL LETTER T WITH STROKE +0168 ~U # LATIN CAPITAL LETTER U WITH TILDE +0169 ~u # LATIN SMALL LETTER U WITH TILDE +016A U # LATIN CAPITAL LETTER U WITH MACRON +016B u # LATIN SMALL LETTER U WITH MACRON +016C U # LATIN CAPITAL LETTER U WITH BREVE +016D u # LATIN SMALL LETTER U WITH BREVE +016E U # LATIN CAPITAL LETTER U WITH RING ABOVE +016F u # LATIN SMALL LETTER U WITH RING ABOVE +0170 "U # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE +0171 "u # LATIN SMALL LETTER U WITH DOUBLE ACUTE +0172 U # LATIN CAPITAL LETTER U WITH OGONEK +0173 u # LATIN SMALL LETTER U WITH OGONEK +0174 ^W # LATIN CAPITAL LETTER W WITH CIRCUMFLEX +0175 ^w # LATIN SMALL LETTER W WITH CIRCUMFLEX +0176 ^Y # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX +0177 ^y # LATIN SMALL LETTER Y WITH CIRCUMFLEX +0178 "Y # LATIN CAPITAL LETTER Y WITH DIAERESIS +0179 ´Z # LATIN CAPITAL LETTER Z WITH ACUTE +017A ´z # LATIN SMALL LETTER Z WITH ACUTE +017B Z # LATIN CAPITAL LETTER Z WITH DOT ABOVE +017C z # LATIN SMALL LETTER Z WITH DOT ABOVE +017D Z # LATIN CAPITAL LETTER Z WITH CARON +017E z # LATIN SMALL LETTER Z WITH CARON +017F s # LATIN SMALL LETTER LONG S +018F # LATIN CAPITAL LETTER SCHWA +0192 f # LATIN SMALL LETTER F WITH HOOK +01C4 DŽ # LATIN CAPITAL LETTER DZ WITH CARON +01C5 Dž # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON +01C6 dž # LATIN SMALL LETTER DZ WITH CARON +01C7 LJ # LATIN CAPITAL LETTER LJ +01C8 Lj # LATIN CAPITAL LETTER L WITH SMALL LETTER J +01C9 lj # LATIN SMALL LETTER LJ +01CA NJ # LATIN CAPITAL LETTER NJ +01CB Nj # LATIN CAPITAL LETTER N WITH SMALL LETTER J +01CC nj # LATIN SMALL LETTER NJ +01F1 DZ # LATIN CAPITAL LETTER DZ +01F2 Dz # LATIN CAPITAL LETTER D WITH SMALL LETTER Z +01F3 dz # LATIN SMALL LETTER DZ +0218 S # LATIN CAPITAL LETTER S WITH COMMA BELOW +0219 s # LATIN SMALL LETTER S WITH COMMA BELOW +021A T # LATIN CAPITAL LETTER T WITH COMMA BELOW +021B t # LATIN SMALL LETTER T WITH COMMA BELOW +0259 # LATIN SMALL LETTER SCHWA +02B9 ′ # MODIFIER LETTER PRIME +02BA ″ # MODIFIER LETTER DOUBLE PRIME +02BB ‘ # MODIFIER LETTER TURNED COMMA +02BC ’ # MODIFIER LETTER APOSTROPHE +02BD ‛ # MODIFIER LETTER REVERSED COMMA +02C6 ^ # MODIFIER LETTER CIRCUMFLEX ACCENT +02C7 # CARON +02C8 ' # MODIFIER LETTER VERTICAL LINE +02C9 ¯ # MODIFIER LETTER MACRON +02CA ´ # MODIFIER LETTER ACUTE ACCENT +02CB ` # MODIFIER LETTER GRAVE ACCENT +02CD _ # MODIFIER LETTER LOW MACRON +02D8 # BREVE +02D9 # DOT ABOVE +02DA # RING ABOVE +02DB # OGONEK +02DC ~ # SMALL TILDE +02DD " # DOUBLE ACUTE ACCENT +0374 # GREEK NUMERAL SIGN +0375 # GREEK LOWER NUMERAL SIGN +037A # GREEK YPOGEGRAMMENI +037E # GREEK QUESTION MARK +0384 # GREEK TONOS +0385 # GREEK DIALYTIKA TONOS +0386 # GREEK CAPITAL LETTER ALPHA WITH TONOS +0387 # GREEK ANO TELEIA +0388 # GREEK CAPITAL LETTER EPSILON WITH TONOS +0389 # GREEK CAPITAL LETTER ETA WITH TONOS +038A # GREEK CAPITAL LETTER IOTA WITH TONOS +038C # GREEK CAPITAL LETTER OMICRON WITH TONOS +038E # GREEK CAPITAL LETTER UPSILON WITH TONOS +038F # GREEK CAPITAL LETTER OMEGA WITH TONOS +0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS +0391 # GREEK CAPITAL LETTER ALPHA +0392 # GREEK CAPITAL LETTER BETA +0393 # GREEK CAPITAL LETTER GAMMA +0394 # GREEK CAPITAL LETTER DELTA +0395 # GREEK CAPITAL LETTER EPSILON +0396 # GREEK CAPITAL LETTER ZETA +0397 # GREEK CAPITAL LETTER ETA +0398 # GREEK CAPITAL LETTER THETA +0399 # GREEK CAPITAL LETTER IOTA +039A # GREEK CAPITAL LETTER KAPPA +039B # GREEK CAPITAL LETTER LAMDA +039C # GREEK CAPITAL LETTER MU +039D # GREEK CAPITAL LETTER NU +039E # GREEK CAPITAL LETTER XI +039F # GREEK CAPITAL LETTER OMICRON +03A0 # GREEK CAPITAL LETTER PI +03A1 # GREEK CAPITAL LETTER RHO +03A3 # GREEK CAPITAL LETTER SIGMA +03A4 # GREEK CAPITAL LETTER TAU +03A5 # GREEK CAPITAL LETTER UPSILON +03A6 # GREEK CAPITAL LETTER PHI +03A7 # GREEK CAPITAL LETTER CHI +03A8 # GREEK CAPITAL LETTER PSI +03A9 # GREEK CAPITAL LETTER OMEGA +03AA # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA +03AB # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA +03AC # GREEK SMALL LETTER ALPHA WITH TONOS +03AD # GREEK SMALL LETTER EPSILON WITH TONOS +03AE # GREEK SMALL LETTER ETA WITH TONOS +03AF # GREEK SMALL LETTER IOTA WITH TONOS +03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS +03B1 # GREEK SMALL LETTER ALPHA +03B2 # GREEK SMALL LETTER BETA +03B3 # GREEK SMALL LETTER GAMMA +03B4 # GREEK SMALL LETTER DELTA +03B5 # GREEK SMALL LETTER EPSILON +03B6 # GREEK SMALL LETTER ZETA +03B7 # GREEK SMALL LETTER ETA +03B8 # GREEK SMALL LETTER THETA +03B9 # GREEK SMALL LETTER IOTA +03BA # GREEK SMALL LETTER KAPPA +03BB # GREEK SMALL LETTER LAMDA +03BC # GREEK SMALL LETTER MU +03BD # GREEK SMALL LETTER NU +03BE # GREEK SMALL LETTER XI +03BF # GREEK SMALL LETTER OMICRON +03C0 # GREEK SMALL LETTER PI +03C1 # GREEK SMALL LETTER RHO +03C2 # GREEK SMALL LETTER FINAL SIGMA +03C3 # GREEK SMALL LETTER SIGMA +03C4 # GREEK SMALL LETTER TAU +03C5 # GREEK SMALL LETTER UPSILON +03C6 # GREEK SMALL LETTER PHI +03C7 # GREEK SMALL LETTER CHI +03C8 # GREEK SMALL LETTER PSI +03C9 # GREEK SMALL LETTER OMEGA +03CA # GREEK SMALL LETTER IOTA WITH DIALYTIKA +03CB # GREEK SMALL LETTER UPSILON WITH DIALYTIKA +03CC # GREEK SMALL LETTER OMICRON WITH TONOS +03CD # GREEK SMALL LETTER UPSILON WITH TONOS +03CE # GREEK SMALL LETTER OMEGA WITH TONOS +03D0 β # GREEK BETA SYMBOL +03D1 θ # GREEK THETA SYMBOL +03D2 Υ # GREEK UPSILON WITH HOOK SYMBOL +03D5 φ # GREEK PHI SYMBOL +03D6 π # GREEK PI SYMBOL +03F0 κ # GREEK KAPPA SYMBOL +03F1 ρ # GREEK RHO SYMBOL +03F2 ς # GREEK LUNATE SIGMA SYMBOL +03F4 Θ # GREEK CAPITAL THETA SYMBOL +03F5 ε # GREEK LUNATE EPSILON SYMBOL +03F9 Σ # GREEK CAPITAL LUNATE SIGMA SYMBOL +0401 # CYRILLIC CAPITAL LETTER IO +0402 # CYRILLIC CAPITAL LETTER DJE +0403 # CYRILLIC CAPITAL LETTER GJE +0404 # CYRILLIC CAPITAL LETTER UKRAINIAN IE +0405 # CYRILLIC CAPITAL LETTER DZE +0406 # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I +0407 # CYRILLIC CAPITAL LETTER YI +0408 # CYRILLIC CAPITAL LETTER JE +0409 # CYRILLIC CAPITAL LETTER LJE +040A # CYRILLIC CAPITAL LETTER NJE +040B # CYRILLIC CAPITAL LETTER TSHE +040C # CYRILLIC CAPITAL LETTER KJE +040E # CYRILLIC CAPITAL LETTER SHORT U +040F # CYRILLIC CAPITAL LETTER DZHE +0410 # CYRILLIC CAPITAL LETTER A +0411 # CYRILLIC CAPITAL LETTER BE +0412 # CYRILLIC CAPITAL LETTER VE +0413 # CYRILLIC CAPITAL LETTER GHE +0414 # CYRILLIC CAPITAL LETTER DE +0415 # CYRILLIC CAPITAL LETTER IE +0416 # CYRILLIC CAPITAL LETTER ZHE +0417 # CYRILLIC CAPITAL LETTER ZE +0418 # CYRILLIC CAPITAL LETTER I +0419 # CYRILLIC CAPITAL LETTER SHORT I +041A # CYRILLIC CAPITAL LETTER KA +041B # CYRILLIC CAPITAL LETTER EL +041C # CYRILLIC CAPITAL LETTER EM +041D # CYRILLIC CAPITAL LETTER EN +041E # CYRILLIC CAPITAL LETTER O +041F # CYRILLIC CAPITAL LETTER PE +0420 # CYRILLIC CAPITAL LETTER ER +0421 # CYRILLIC CAPITAL LETTER ES +0422 # CYRILLIC CAPITAL LETTER TE +0423 # CYRILLIC CAPITAL LETTER U +0424 # CYRILLIC CAPITAL LETTER EF +0425 # CYRILLIC CAPITAL LETTER HA +0426 # CYRILLIC CAPITAL LETTER TSE +0427 # CYRILLIC CAPITAL LETTER CHE +0428 # CYRILLIC CAPITAL LETTER SHA +0429 # CYRILLIC CAPITAL LETTER SHCHA +042A # CYRILLIC CAPITAL LETTER HARD SIGN +042B # CYRILLIC CAPITAL LETTER YERU +042C # CYRILLIC CAPITAL LETTER SOFT SIGN +042D # CYRILLIC CAPITAL LETTER E +042E # CYRILLIC CAPITAL LETTER YU +042F # CYRILLIC CAPITAL LETTER YA +0430 # CYRILLIC SMALL LETTER A +0431 # CYRILLIC SMALL LETTER BE +0432 # CYRILLIC SMALL LETTER VE +0433 # CYRILLIC SMALL LETTER GHE +0434 # CYRILLIC SMALL LETTER DE +0435 # CYRILLIC SMALL LETTER IE +0436 # CYRILLIC SMALL LETTER ZHE +0437 # CYRILLIC SMALL LETTER ZE +0438 # CYRILLIC SMALL LETTER I +0439 # CYRILLIC SMALL LETTER SHORT I +043A # CYRILLIC SMALL LETTER KA +043B # CYRILLIC SMALL LETTER EL +043C # CYRILLIC SMALL LETTER EM +043D # CYRILLIC SMALL LETTER EN +043E # CYRILLIC SMALL LETTER O +043F # CYRILLIC SMALL LETTER PE +0440 # CYRILLIC SMALL LETTER ER +0441 # CYRILLIC SMALL LETTER ES +0442 # CYRILLIC SMALL LETTER TE +0443 # CYRILLIC SMALL LETTER U +0444 # CYRILLIC SMALL LETTER EF +0445 # CYRILLIC SMALL LETTER HA +0446 # CYRILLIC SMALL LETTER TSE +0447 # CYRILLIC SMALL LETTER CHE +0448 # CYRILLIC SMALL LETTER SHA +0449 # CYRILLIC SMALL LETTER SHCHA +044A # CYRILLIC SMALL LETTER HARD SIGN +044B # CYRILLIC SMALL LETTER YERU +044C # CYRILLIC SMALL LETTER SOFT SIGN +044D # CYRILLIC SMALL LETTER E +044E # CYRILLIC SMALL LETTER YU +044F # CYRILLIC SMALL LETTER YA +0451 # CYRILLIC SMALL LETTER IO +0452 # CYRILLIC SMALL LETTER DJE +0453 # CYRILLIC SMALL LETTER GJE +0454 # CYRILLIC SMALL LETTER UKRAINIAN IE +0455 # CYRILLIC SMALL LETTER DZE +0456 # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I +0457 # CYRILLIC SMALL LETTER YI +0458 # CYRILLIC SMALL LETTER JE +0459 # CYRILLIC SMALL LETTER LJE +045A # CYRILLIC SMALL LETTER NJE +045B # CYRILLIC SMALL LETTER TSHE +045C # CYRILLIC SMALL LETTER KJE +045E # CYRILLIC SMALL LETTER SHORT U +045F # CYRILLIC SMALL LETTER DZHE +0490 # CYRILLIC CAPITAL LETTER GHE WITH UPTURN +0491 # CYRILLIC SMALL LETTER GHE WITH UPTURN +0587 եւ # ARMENIAN SMALL LIGATURE ECH YIWN +05D0 # HEBREW LETTER ALEF +05D1 # HEBREW LETTER BET +05D2 # HEBREW LETTER GIMEL +05D3 # HEBREW LETTER DALET +05D4 # HEBREW LETTER HE +05D5 # HEBREW LETTER VAV +05D6 # HEBREW LETTER ZAYIN +05D7 # HEBREW LETTER HET +05D8 # HEBREW LETTER TET +05D9 # HEBREW LETTER YOD +05DA # HEBREW LETTER FINAL KAF +05DB # HEBREW LETTER KAF +05DC # HEBREW LETTER LAMED +05DD # HEBREW LETTER FINAL MEM +05DE # HEBREW LETTER MEM +05DF # HEBREW LETTER FINAL NUN +05E0 # HEBREW LETTER NUN +05E1 # HEBREW LETTER SAMEKH +05E2 # HEBREW LETTER AYIN +05E3 # HEBREW LETTER FINAL PE +05E4 # HEBREW LETTER PE +05E5 # HEBREW LETTER FINAL TSADI +05E6 # HEBREW LETTER TSADI +05E7 # HEBREW LETTER QOF +05E8 # HEBREW LETTER RESH +05E9 # HEBREW LETTER SHIN +05EA # HEBREW LETTER TAV +05F0 וו # HEBREW LIGATURE YIDDISH DOUBLE VAV +05F1 וי # HEBREW LIGATURE YIDDISH VAV YOD +05F2 יי # HEBREW LIGATURE YIDDISH DOUBLE YOD +0675 اٴ # ARABIC LETTER HIGH HAMZA ALEF +0676 وٴ # ARABIC LETTER HIGH HAMZA WAW +0677 ۇٴ # ARABIC LETTER U WITH HAMZA ABOVE +0678 يٴ # ARABIC LETTER HIGH HAMZA YEH +0E33 ํา # THAI CHARACTER SARA AM +0EB3 ໍາ # LAO VOWEL SIGN AM +0EDC ຫນ # LAO HO NO +0EDD ຫມ # LAO HO MO +0F77 ྲཱྀ # TIBETAN VOWEL SIGN VOCALIC RR +0F79 ླཱྀ # TIBETAN VOWEL SIGN VOCALIC LL +1E02 B # LATIN CAPITAL LETTER B WITH DOT ABOVE +1E03 b # LATIN SMALL LETTER B WITH DOT ABOVE +1E0A D # LATIN CAPITAL LETTER D WITH DOT ABOVE +1E0B d # LATIN SMALL LETTER D WITH DOT ABOVE +1E1E F # LATIN CAPITAL LETTER F WITH DOT ABOVE +1E1F f # LATIN SMALL LETTER F WITH DOT ABOVE +1E40 M # LATIN CAPITAL LETTER M WITH DOT ABOVE +1E41 m # LATIN SMALL LETTER M WITH DOT ABOVE +1E56 P # LATIN CAPITAL LETTER P WITH DOT ABOVE +1E57 p # LATIN SMALL LETTER P WITH DOT ABOVE +1E60 S # LATIN CAPITAL LETTER S WITH DOT ABOVE +1E61 s # LATIN SMALL LETTER S WITH DOT ABOVE +1E6A T # LATIN CAPITAL LETTER T WITH DOT ABOVE +1E6B t # LATIN SMALL LETTER T WITH DOT ABOVE +1E80 `W # LATIN CAPITAL LETTER W WITH GRAVE +1E81 `w # LATIN SMALL LETTER W WITH GRAVE +1E82 ´W # LATIN CAPITAL LETTER W WITH ACUTE +1E83 ´w # LATIN SMALL LETTER W WITH ACUTE +1E84 "W # LATIN CAPITAL LETTER W WITH DIAERESIS +1E85 "w # LATIN SMALL LETTER W WITH DIAERESIS +1E9A aʾ # LATIN SMALL LETTER A WITH RIGHT HALF RING +1EF2 `Y # LATIN CAPITAL LETTER Y WITH GRAVE +1EF3 `y # LATIN SMALL LETTER Y WITH GRAVE +2002 # EN SPACE +2003 # EM SPACE +2004 # THREE-PER-EM SPACE +2005 # FOUR-PER-EM SPACE +2006 # SIX-PER-EM SPACE +2008 # PUNCTUATION SPACE +2009 # THIN SPACE +200A # HAIR SPACE +2010 - # HYPHEN +2011 - # NON-BREAKING HYPHEN +2012 - # FIGURE DASH +2013 - # EN DASH +2014 - # EM DASH +2015 - # HORIZONTAL BAR +2016 # DOUBLE VERTICAL LINE +2017 # DOUBLE LOW LINE +2018 ' # LEFT SINGLE QUOTATION MARK +2019 ' # RIGHT SINGLE QUOTATION MARK +201A , # SINGLE LOW-9 QUOTATION MARK +201B ' # SINGLE HIGH-REVERSED-9 QUOTATION MARK +201C " # LEFT DOUBLE QUOTATION MARK +201D " # RIGHT DOUBLE QUOTATION MARK +201E " # DOUBLE LOW-9 QUOTATION MARK +201F " # DOUBLE HIGH-REVERSED-9 QUOTATION MARK +2020 + # DAGGER +2021 # DOUBLE DAGGER +2022 o # BULLET +2024 . # ONE DOT LEADER +2025 .. # TWO DOT LEADER +2026 ... # HORIZONTAL ELLIPSIS +2030 o/oo # PER MILLE SIGN +2032 ´ # PRIME +2033 ´´ # DOUBLE PRIME +2034 ´´´ # TRIPLE PRIME +2036 ‵‵ # REVERSED DOUBLE PRIME +2037 ‵‵‵ # REVERSED TRIPLE PRIME +2039 < # SINGLE LEFT-POINTING ANGLE QUOTATION MARK +203A > # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK +203C !! # DOUBLE EXCLAMATION MARK +203E # OVERLINE +2044 / # FRACTION SLASH +2047 ?? # DOUBLE QUESTION MARK +2048 ?! # QUESTION EXCLAMATION MARK +2049 !? # EXCLAMATION QUESTION MARK +2057 ´´´´ # QUADRUPLE PRIME +20A8 Rs # RUPEE SIGN +20AB Đồng # DONG SIGN +20AC EUR # EURO SIGN +2100 a/c # ACCOUNT OF +2101 a/s # ADDRESSED TO THE SUBJECT +2102 C # DOUBLE-STRUCK CAPITAL C +2103 °C # DEGREE CELSIUS +2105 c/o # CARE OF +2106 c/u # CADA UNA +2107 Ɛ # EULER CONSTANT +2109 °F # DEGREE FAHRENHEIT +210A g # SCRIPT SMALL G +210B H # SCRIPT CAPITAL H +210C H # BLACK-LETTER CAPITAL H +210D H # DOUBLE-STRUCK CAPITAL H +210E h # PLANCK CONSTANT +210F ħ # PLANCK CONSTANT OVER TWO PI +2110 I # SCRIPT CAPITAL I +2111 I # BLACK-LETTER CAPITAL I +2112 L # SCRIPT CAPITAL L +2113 l # SCRIPT SMALL L +2115 N # DOUBLE-STRUCK CAPITAL N +2116 No # NUMERO SIGN +2119 P # DOUBLE-STRUCK CAPITAL P +211A Q # DOUBLE-STRUCK CAPITAL Q +211B R # SCRIPT CAPITAL R +211C R # BLACK-LETTER CAPITAL R +211D R # DOUBLE-STRUCK CAPITAL R +2121 TEL # TELEPHONE SIGN +2122 TM # TRADE MARK SIGN +2124 Z # DOUBLE-STRUCK CAPITAL Z +2126 Ohm # OHM SIGN +2128 Z # BLACK-LETTER CAPITAL Z +212C B # SCRIPT CAPITAL B +212D C # BLACK-LETTER CAPITAL C +212E e # ESTIMATED SYMBOL +212F e # SCRIPT SMALL E +2130 E # SCRIPT CAPITAL E +2131 F # SCRIPT CAPITAL F +2133 M # SCRIPT CAPITAL M +2134 o # SCRIPT SMALL O +2135 א # ALEF SYMBOL +2136 ב # BET SYMBOL +2137 ג # GIMEL SYMBOL +2138 ד # DALET SYMBOL +2139 i # INFORMATION SOURCE +213B FAX # FACSIMILE SIGN +213D γ # DOUBLE-STRUCK SMALL GAMMA +213E Γ # DOUBLE-STRUCK CAPITAL GAMMA +213F Π # DOUBLE-STRUCK CAPITAL PI +2140 ∑ # DOUBLE-STRUCK N-ARY SUMMATION +2145 D # DOUBLE-STRUCK ITALIC CAPITAL D +2146 d # DOUBLE-STRUCK ITALIC SMALL D +2147 e # DOUBLE-STRUCK ITALIC SMALL E +2148 i # DOUBLE-STRUCK ITALIC SMALL I +2149 j # DOUBLE-STRUCK ITALIC SMALL J +2153 1⁄3 # VULGAR FRACTION ONE THIRD +2154 2⁄3 # VULGAR FRACTION TWO THIRDS +2155 1⁄5 # VULGAR FRACTION ONE FIFTH +2156 2⁄5 # VULGAR FRACTION TWO FIFTHS +2157 3⁄5 # VULGAR FRACTION THREE FIFTHS +2158 4⁄5 # VULGAR FRACTION FOUR FIFTHS +2159 1⁄6 # VULGAR FRACTION ONE SIXTH +215A 5⁄6 # VULGAR FRACTION FIVE SIXTHS +215B 1⁄8 # VULGAR FRACTION ONE EIGHTH +215C 3⁄8 # VULGAR FRACTION THREE EIGHTHS +215D 5⁄8 # VULGAR FRACTION FIVE EIGHTHS +215E 7⁄8 # VULGAR FRACTION SEVEN EIGHTHS +215F 1⁄ # FRACTION NUMERATOR ONE +2160 I # ROMAN NUMERAL ONE +2161 II # ROMAN NUMERAL TWO +2162 III # ROMAN NUMERAL THREE +2163 IV # ROMAN NUMERAL FOUR +2164 V # ROMAN NUMERAL FIVE +2165 VI # ROMAN NUMERAL SIX +2166 VII # ROMAN NUMERAL SEVEN +2167 VIII # ROMAN NUMERAL EIGHT +2168 IX # ROMAN NUMERAL NINE +2169 X # ROMAN NUMERAL TEN +216A XI # ROMAN NUMERAL ELEVEN +216B XII # ROMAN NUMERAL TWELVE +216C L # ROMAN NUMERAL FIFTY +216D C # ROMAN NUMERAL ONE HUNDRED +216E D # ROMAN NUMERAL FIVE HUNDRED +216F M # ROMAN NUMERAL ONE THOUSAND +2170 i # SMALL ROMAN NUMERAL ONE +2171 ii # SMALL ROMAN NUMERAL TWO +2172 iii # SMALL ROMAN NUMERAL THREE +2173 iv # SMALL ROMAN NUMERAL FOUR +2174 v # SMALL ROMAN NUMERAL FIVE +2175 vi # SMALL ROMAN NUMERAL SIX +2176 vii # SMALL ROMAN NUMERAL SEVEN +2177 viii # SMALL ROMAN NUMERAL EIGHT +2178 ix # SMALL ROMAN NUMERAL NINE +2179 x # SMALL ROMAN NUMERAL TEN +217A xi # SMALL ROMAN NUMERAL ELEVEN +217B xii # SMALL ROMAN NUMERAL TWELVE +217C l # SMALL ROMAN NUMERAL FIFTY +217D c # SMALL ROMAN NUMERAL ONE HUNDRED +217E d # SMALL ROMAN NUMERAL FIVE HUNDRED +217F m # SMALL ROMAN NUMERAL ONE THOUSAND +2190 <- # LEFTWARDS ARROW +2191 ^ # UPWARDS ARROW +2192 -> # RIGHTWARDS ARROW +2193 V # DOWNWARDS ARROW +2194 <-> # LEFT RIGHT ARROW +21D0 <= # LEFTWARDS DOUBLE ARROW +21D2 => # RIGHTWARDS DOUBLE ARROW +21D4 <=> # LEFT RIGHT DOUBLE ARROW +2212 - # MINUS SIGN +2215 / # DIVISION SLASH +2216 \ # SET MINUS +2217 * # ASTERISK OPERATOR +2219 • # BULLET OPERATOR +2223 | # DIVIDES +222C ∫∫ # DOUBLE INTEGRAL +222D ∫∫∫ # TRIPLE INTEGRAL +222F ∮∮ # SURFACE INTEGRAL +2230 ∮∮∮ # VOLUME INTEGRAL +2236 : # RATIO +223C ~ # TILDE OPERATOR +2260 /= # NOT EQUAL TO +2264 <= # LESS-THAN OR EQUAL TO +2265 >= # GREATER-THAN OR EQUAL TO +226A << # MUCH LESS-THAN +226B >> # MUCH GREATER-THAN +22C5 · # DOT OPERATOR +22D8 <<< # VERY MUCH LESS-THAN +22D9 >>> # VERY MUCH GREATER-THAN +22EF ··· # MIDLINE HORIZONTAL ELLIPSIS +2400 [NUL] # SYMBOL FOR NULL +2401 [SOH] # SYMBOL FOR START OF HEADING +2402 [STX] # SYMBOL FOR START OF TEXT +2403 [ETX] # SYMBOL FOR END OF TEXT +2404 [EOT] # SYMBOL FOR END OF TRANSMISSION +2405 [ENQ] # SYMBOL FOR ENQUIRY +2406 [ACK] # SYMBOL FOR ACKNOWLEDGE +2407 [BEL] # SYMBOL FOR BELL +2408 [BS] # SYMBOL FOR BACKSPACE +2409 [HT] # SYMBOL FOR HORIZONTAL TABULATION +240A [LF] # SYMBOL FOR LINE FEED +240B [VT] # SYMBOL FOR VERTICAL TABULATION +240C [FF] # SYMBOL FOR FORM FEED +240D [CR] # SYMBOL FOR CARRIAGE RETURN +240E [SO] # SYMBOL FOR SHIFT OUT +240F [SI] # SYMBOL FOR SHIFT IN +2410 [DLE] # SYMBOL FOR DATA LINK ESCAPE +2411 [DC1] # SYMBOL FOR DEVICE CONTROL ONE +2412 [DC2] # SYMBOL FOR DEVICE CONTROL TWO +2413 [DC3] # SYMBOL FOR DEVICE CONTROL THREE +2414 [DC4] # SYMBOL FOR DEVICE CONTROL FOUR +2415 [NAK] # SYMBOL FOR NEGATIVE ACKNOWLEDGE +2416 [SYN] # SYMBOL FOR SYNCHRONOUS IDLE +2417 [ETB] # SYMBOL FOR END OF TRANSMISSION BLOCK +2418 [CAN] # SYMBOL FOR CANCEL +2419 [EM] # SYMBOL FOR END OF MEDIUM +241A [SUB] # SYMBOL FOR SUBSTITUTE +241B [ESC] # SYMBOL FOR ESCAPE +241C [FS] # SYMBOL FOR FILE SEPARATOR +241D [GS] # SYMBOL FOR GROUP SEPARATOR +241E [RS] # SYMBOL FOR RECORD SEPARATOR +241F [US] # SYMBOL FOR UNIT SEPARATOR +2420 [SP] # SYMBOL FOR SPACE +2421 [DEL] # SYMBOL FOR DELETE +2424 [NL] # SYMBOL FOR NEWLINE +2460 (1) # CIRCLED DIGIT ONE +2461 (2) # CIRCLED DIGIT TWO +2462 (3) # CIRCLED DIGIT THREE +2463 (4) # CIRCLED DIGIT FOUR +2464 (5) # CIRCLED DIGIT FIVE +2465 (6) # CIRCLED DIGIT SIX +2466 (7) # CIRCLED DIGIT SEVEN +2467 (8) # CIRCLED DIGIT EIGHT +2468 (9) # CIRCLED DIGIT NINE +2469 (10) # CIRCLED NUMBER TEN +246A (11) # CIRCLED NUMBER ELEVEN +246B (12) # CIRCLED NUMBER TWELVE +246C (13) # CIRCLED NUMBER THIRTEEN +246D (14) # CIRCLED NUMBER FOURTEEN +246E (15) # CIRCLED NUMBER FIFTEEN +246F (16) # CIRCLED NUMBER SIXTEEN +2470 (17) # CIRCLED NUMBER SEVENTEEN +2471 (18) # CIRCLED NUMBER EIGHTEEN +2472 (19) # CIRCLED NUMBER NINETEEN +2473 (20) # CIRCLED NUMBER TWENTY +2474 (1) # PARENTHESIZED DIGIT ONE +2475 (2) # PARENTHESIZED DIGIT TWO +2476 (3) # PARENTHESIZED DIGIT THREE +2477 (4) # PARENTHESIZED DIGIT FOUR +2478 (5) # PARENTHESIZED DIGIT FIVE +2479 (6) # PARENTHESIZED DIGIT SIX +247A (7) # PARENTHESIZED DIGIT SEVEN +247B (8) # PARENTHESIZED DIGIT EIGHT +247C (9) # PARENTHESIZED DIGIT NINE +247D (10) # PARENTHESIZED NUMBER TEN +247E (11) # PARENTHESIZED NUMBER ELEVEN +247F (12) # PARENTHESIZED NUMBER TWELVE +2480 (13) # PARENTHESIZED NUMBER THIRTEEN +2481 (14) # PARENTHESIZED NUMBER FOURTEEN +2482 (15) # PARENTHESIZED NUMBER FIFTEEN +2483 (16) # PARENTHESIZED NUMBER SIXTEEN +2484 (17) # PARENTHESIZED NUMBER SEVENTEEN +2485 (18) # PARENTHESIZED NUMBER EIGHTEEN +2486 (19) # PARENTHESIZED NUMBER NINETEEN +2487 (20) # PARENTHESIZED NUMBER TWENTY +2488 1. # DIGIT ONE FULL STOP +2489 2. # DIGIT TWO FULL STOP +248A 3. # DIGIT THREE FULL STOP +248B 4. # DIGIT FOUR FULL STOP +248C 5. # DIGIT FIVE FULL STOP +248D 6. # DIGIT SIX FULL STOP +248E 7. # DIGIT SEVEN FULL STOP +248F 8. # DIGIT EIGHT FULL STOP +2490 9. # DIGIT NINE FULL STOP +2491 10. # NUMBER TEN FULL STOP +2492 11. # NUMBER ELEVEN FULL STOP +2493 12. # NUMBER TWELVE FULL STOP +2494 13. # NUMBER THIRTEEN FULL STOP +2495 14. # NUMBER FOURTEEN FULL STOP +2496 15. # NUMBER FIFTEEN FULL STOP +2497 16. # NUMBER SIXTEEN FULL STOP +2498 17. # NUMBER SEVENTEEN FULL STOP +2499 18. # NUMBER EIGHTEEN FULL STOP +249A 19. # NUMBER NINETEEN FULL STOP +249B 20. # NUMBER TWENTY FULL STOP +249C (a) # PARENTHESIZED LATIN SMALL LETTER A +249D (b) # PARENTHESIZED LATIN SMALL LETTER B +249E (c) # PARENTHESIZED LATIN SMALL LETTER C +249F (d) # PARENTHESIZED LATIN SMALL LETTER D +24A0 (e) # PARENTHESIZED LATIN SMALL LETTER E +24A1 (f) # PARENTHESIZED LATIN SMALL LETTER F +24A2 (g) # PARENTHESIZED LATIN SMALL LETTER G +24A3 (h) # PARENTHESIZED LATIN SMALL LETTER H +24A4 (i) # PARENTHESIZED LATIN SMALL LETTER I +24A5 (j) # PARENTHESIZED LATIN SMALL LETTER J +24A6 (k) # PARENTHESIZED LATIN SMALL LETTER K +24A7 (l) # PARENTHESIZED LATIN SMALL LETTER L +24A8 (m) # PARENTHESIZED LATIN SMALL LETTER M +24A9 (n) # PARENTHESIZED LATIN SMALL LETTER N +24AA (o) # PARENTHESIZED LATIN SMALL LETTER O +24AB (p) # PARENTHESIZED LATIN SMALL LETTER P +24AC (q) # PARENTHESIZED LATIN SMALL LETTER Q +24AD (r) # PARENTHESIZED LATIN SMALL LETTER R +24AE (s) # PARENTHESIZED LATIN SMALL LETTER S +24AF (t) # PARENTHESIZED LATIN SMALL LETTER T +24B0 (u) # PARENTHESIZED LATIN SMALL LETTER U +24B1 (v) # PARENTHESIZED LATIN SMALL LETTER V +24B2 (w) # PARENTHESIZED LATIN SMALL LETTER W +24B3 (x) # PARENTHESIZED LATIN SMALL LETTER X +24B4 (y) # PARENTHESIZED LATIN SMALL LETTER Y +24B5 (z) # PARENTHESIZED LATIN SMALL LETTER Z +24B6 (A) # CIRCLED LATIN CAPITAL LETTER A +24B7 (B) # CIRCLED LATIN CAPITAL LETTER B +24B8 (C) # CIRCLED LATIN CAPITAL LETTER C +24B9 (D) # CIRCLED LATIN CAPITAL LETTER D +24BA (E) # CIRCLED LATIN CAPITAL LETTER E +24BB (F) # CIRCLED LATIN CAPITAL LETTER F +24BC (G) # CIRCLED LATIN CAPITAL LETTER G +24BD (H) # CIRCLED LATIN CAPITAL LETTER H +24BE (I) # CIRCLED LATIN CAPITAL LETTER I +24BF (J) # CIRCLED LATIN CAPITAL LETTER J +24C0 (K) # CIRCLED LATIN CAPITAL LETTER K +24C1 (L) # CIRCLED LATIN CAPITAL LETTER L +24C2 (M) # CIRCLED LATIN CAPITAL LETTER M +24C3 (N) # CIRCLED LATIN CAPITAL LETTER N +24C4 (O) # CIRCLED LATIN CAPITAL LETTER O +24C5 (P) # CIRCLED LATIN CAPITAL LETTER P +24C6 (Q) # CIRCLED LATIN CAPITAL LETTER Q +24C7 (R) # CIRCLED LATIN CAPITAL LETTER R +24C8 (S) # CIRCLED LATIN CAPITAL LETTER S +24C9 (T) # CIRCLED LATIN CAPITAL LETTER T +24CA (U) # CIRCLED LATIN CAPITAL LETTER U +24CB (V) # CIRCLED LATIN CAPITAL LETTER V +24CC (W) # CIRCLED LATIN CAPITAL LETTER W +24CD (X) # CIRCLED LATIN CAPITAL LETTER X +24CE (Y) # CIRCLED LATIN CAPITAL LETTER Y +24CF (Z) # CIRCLED LATIN CAPITAL LETTER Z +24D0 (a) # CIRCLED LATIN SMALL LETTER A +24D1 (b) # CIRCLED LATIN SMALL LETTER B +24D2 (c) # CIRCLED LATIN SMALL LETTER C +24D3 (d) # CIRCLED LATIN SMALL LETTER D +24D4 (e) # CIRCLED LATIN SMALL LETTER E +24D5 (f) # CIRCLED LATIN SMALL LETTER F +24D6 (g) # CIRCLED LATIN SMALL LETTER G +24D7 (h) # CIRCLED LATIN SMALL LETTER H +24D8 (i) # CIRCLED LATIN SMALL LETTER I +24D9 (j) # CIRCLED LATIN SMALL LETTER J +24DA (k) # CIRCLED LATIN SMALL LETTER K +24DB (l) # CIRCLED LATIN SMALL LETTER L +24DC (m) # CIRCLED LATIN SMALL LETTER M +24DD (n) # CIRCLED LATIN SMALL LETTER N +24DE (o) # CIRCLED LATIN SMALL LETTER O +24DF (p) # CIRCLED LATIN SMALL LETTER P +24E0 (q) # CIRCLED LATIN SMALL LETTER Q +24E1 (r) # CIRCLED LATIN SMALL LETTER R +24E2 (s) # CIRCLED LATIN SMALL LETTER S +24E3 (t) # CIRCLED LATIN SMALL LETTER T +24E4 (u) # CIRCLED LATIN SMALL LETTER U +24E5 (v) # CIRCLED LATIN SMALL LETTER V +24E6 (w) # CIRCLED LATIN SMALL LETTER W +24E7 (x) # CIRCLED LATIN SMALL LETTER X +24E8 (y) # CIRCLED LATIN SMALL LETTER Y +24E9 (z) # CIRCLED LATIN SMALL LETTER Z +24EA (0) # CIRCLED DIGIT ZERO +2500 - # BOX DRAWINGS LIGHT HORIZONTAL +2502 | # BOX DRAWINGS LIGHT VERTICAL +250C + # BOX DRAWINGS LIGHT DOWN AND RIGHT +2510 + # BOX DRAWINGS LIGHT DOWN AND LEFT +2514 + # BOX DRAWINGS LIGHT UP AND RIGHT +2518 + # BOX DRAWINGS LIGHT UP AND LEFT +251C + # BOX DRAWINGS LIGHT VERTICAL AND RIGHT +2524 + # BOX DRAWINGS LIGHT VERTICAL AND LEFT +252C + # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL +2534 + # BOX DRAWINGS LIGHT UP AND HORIZONTAL +253C + # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +2592 # MEDIUM SHADE +25AE # BLACK VERTICAL RECTANGLE +25C6 # BLACK DIAMOND +25E6 o # WHITE BULLET +266A # EIGHTH NOTE +2A0C ∫∫∫∫ # QUADRUPLE INTEGRAL OPERATOR +2A74 ::= # DOUBLE COLON EQUAL +2A75 == # TWO CONSECUTIVE EQUALS SIGNS +2A76 === # THREE CONSECUTIVE EQUALS SIGNS +2E9F 母 # CJK RADICAL MOTHER +2EF3 龟 # CJK RADICAL C-SIMPLIFIED TURTLE +2F00 一 # KANGXI RADICAL ONE +2F01 丨 # KANGXI RADICAL LINE +2F02 丶 # KANGXI RADICAL DOT +2F03 丿 # KANGXI RADICAL SLASH +2F04 乙 # KANGXI RADICAL SECOND +2F05 亅 # KANGXI RADICAL HOOK +2F06 二 # KANGXI RADICAL TWO +2F07 亠 # KANGXI RADICAL LID +2F08 人 # KANGXI RADICAL MAN +2F09 儿 # KANGXI RADICAL LEGS +2F0A 入 # KANGXI RADICAL ENTER +2F0B 八 # KANGXI RADICAL EIGHT +2F0C 冂 # KANGXI RADICAL DOWN BOX +2F0D 冖 # KANGXI RADICAL COVER +2F0E 冫 # KANGXI RADICAL ICE +2F0F 几 # KANGXI RADICAL TABLE +2F10 凵 # KANGXI RADICAL OPEN BOX +2F11 刀 # KANGXI RADICAL KNIFE +2F12 力 # KANGXI RADICAL POWER +2F13 勹 # KANGXI RADICAL WRAP +2F14 匕 # KANGXI RADICAL SPOON +2F15 匚 # KANGXI RADICAL RIGHT OPEN BOX +2F16 匸 # KANGXI RADICAL HIDING ENCLOSURE +2F17 十 # KANGXI RADICAL TEN +2F18 卜 # KANGXI RADICAL DIVINATION +2F19 卩 # KANGXI RADICAL SEAL +2F1A 厂 # KANGXI RADICAL CLIFF +2F1B 厶 # KANGXI RADICAL PRIVATE +2F1C 又 # KANGXI RADICAL AGAIN +2F1D 口 # KANGXI RADICAL MOUTH +2F1E 囗 # KANGXI RADICAL ENCLOSURE +2F1F 土 # KANGXI RADICAL EARTH +2F20 士 # KANGXI RADICAL SCHOLAR +2F21 夂 # KANGXI RADICAL GO +2F22 夊 # KANGXI RADICAL GO SLOWLY +2F23 夕 # KANGXI RADICAL EVENING +2F24 大 # KANGXI RADICAL BIG +2F25 女 # KANGXI RADICAL WOMAN +2F26 子 # KANGXI RADICAL CHILD +2F27 宀 # KANGXI RADICAL ROOF +2F28 寸 # KANGXI RADICAL INCH +2F29 小 # KANGXI RADICAL SMALL +2F2A 尢 # KANGXI RADICAL LAME +2F2B 尸 # KANGXI RADICAL CORPSE +2F2C 屮 # KANGXI RADICAL SPROUT +2F2D 山 # KANGXI RADICAL MOUNTAIN +2F2E 巛 # KANGXI RADICAL RIVER +2F2F 工 # KANGXI RADICAL WORK +2F30 己 # KANGXI RADICAL ONESELF +2F31 巾 # KANGXI RADICAL TURBAN +2F32 干 # KANGXI RADICAL DRY +2F33 幺 # KANGXI RADICAL SHORT THREAD +2F34 广 # KANGXI RADICAL DOTTED CLIFF +2F35 廴 # KANGXI RADICAL LONG STRIDE +2F36 廾 # KANGXI RADICAL TWO HANDS +2F37 弋 # KANGXI RADICAL SHOOT +2F38 弓 # KANGXI RADICAL BOW +2F39 彐 # KANGXI RADICAL SNOUT +2F3A 彡 # KANGXI RADICAL BRISTLE +2F3B 彳 # KANGXI RADICAL STEP +2F3C 心 # KANGXI RADICAL HEART +2F3D 戈 # KANGXI RADICAL HALBERD +2F3E 戶 # KANGXI RADICAL DOOR +2F3F 手 # KANGXI RADICAL HAND +2F40 支 # KANGXI RADICAL BRANCH +2F41 攴 # KANGXI RADICAL RAP +2F42 文 # KANGXI RADICAL SCRIPT +2F43 斗 # KANGXI RADICAL DIPPER +2F44 斤 # KANGXI RADICAL AXE +2F45 方 # KANGXI RADICAL SQUARE +2F46 无 # KANGXI RADICAL NOT +2F47 日 # KANGXI RADICAL SUN +2F48 曰 # KANGXI RADICAL SAY +2F49 月 # KANGXI RADICAL MOON +2F4A 木 # KANGXI RADICAL TREE +2F4B 欠 # KANGXI RADICAL LACK +2F4C 止 # KANGXI RADICAL STOP +2F4D 歹 # KANGXI RADICAL DEATH +2F4E 殳 # KANGXI RADICAL WEAPON +2F4F 毋 # KANGXI RADICAL DO NOT +2F50 比 # KANGXI RADICAL COMPARE +2F51 毛 # KANGXI RADICAL FUR +2F52 氏 # KANGXI RADICAL CLAN +2F53 气 # KANGXI RADICAL STEAM +2F54 水 # KANGXI RADICAL WATER +2F55 火 # KANGXI RADICAL FIRE +2F56 爪 # KANGXI RADICAL CLAW +2F57 父 # KANGXI RADICAL FATHER +2F58 爻 # KANGXI RADICAL DOUBLE X +2F59 爿 # KANGXI RADICAL HALF TREE TRUNK +2F5A 片 # KANGXI RADICAL SLICE +2F5B 牙 # KANGXI RADICAL FANG +2F5C 牛 # KANGXI RADICAL COW +2F5D 犬 # KANGXI RADICAL DOG +2F5E 玄 # KANGXI RADICAL PROFOUND +2F5F 玉 # KANGXI RADICAL JADE +2F60 瓜 # KANGXI RADICAL MELON +2F61 瓦 # KANGXI RADICAL TILE +2F62 甘 # KANGXI RADICAL SWEET +2F63 生 # KANGXI RADICAL LIFE +2F64 用 # KANGXI RADICAL USE +2F65 田 # KANGXI RADICAL FIELD +2F66 疋 # KANGXI RADICAL BOLT OF CLOTH +2F67 疒 # KANGXI RADICAL SICKNESS +2F68 癶 # KANGXI RADICAL DOTTED TENT +2F69 白 # KANGXI RADICAL WHITE +2F6A 皮 # KANGXI RADICAL SKIN +2F6B 皿 # KANGXI RADICAL DISH +2F6C 目 # KANGXI RADICAL EYE +2F6D 矛 # KANGXI RADICAL SPEAR +2F6E 矢 # KANGXI RADICAL ARROW +2F6F 石 # KANGXI RADICAL STONE +2F70 示 # KANGXI RADICAL SPIRIT +2F71 禸 # KANGXI RADICAL TRACK +2F72 禾 # KANGXI RADICAL GRAIN +2F73 穴 # KANGXI RADICAL CAVE +2F74 立 # KANGXI RADICAL STAND +2F75 竹 # KANGXI RADICAL BAMBOO +2F76 米 # KANGXI RADICAL RICE +2F77 糸 # KANGXI RADICAL SILK +2F78 缶 # KANGXI RADICAL JAR +2F79 网 # KANGXI RADICAL NET +2F7A 羊 # KANGXI RADICAL SHEEP +2F7B 羽 # KANGXI RADICAL FEATHER +2F7C 老 # KANGXI RADICAL OLD +2F7D 而 # KANGXI RADICAL AND +2F7E 耒 # KANGXI RADICAL PLOW +2F7F 耳 # KANGXI RADICAL EAR +2F80 聿 # KANGXI RADICAL BRUSH +2F81 肉 # KANGXI RADICAL MEAT +2F82 臣 # KANGXI RADICAL MINISTER +2F83 自 # KANGXI RADICAL SELF +2F84 至 # KANGXI RADICAL ARRIVE +2F85 臼 # KANGXI RADICAL MORTAR +2F86 舌 # KANGXI RADICAL TONGUE +2F87 舛 # KANGXI RADICAL OPPOSE +2F88 舟 # KANGXI RADICAL BOAT +2F89 艮 # KANGXI RADICAL STOPPING +2F8A 色 # KANGXI RADICAL COLOR +2F8B 艸 # KANGXI RADICAL GRASS +2F8C 虍 # KANGXI RADICAL TIGER +2F8D 虫 # KANGXI RADICAL INSECT +2F8E 血 # KANGXI RADICAL BLOOD +2F8F 行 # KANGXI RADICAL WALK ENCLOSURE +2F90 衣 # KANGXI RADICAL CLOTHES +2F91 襾 # KANGXI RADICAL WEST +2F92 見 # KANGXI RADICAL SEE +2F93 角 # KANGXI RADICAL HORN +2F94 言 # KANGXI RADICAL SPEECH +2F95 谷 # KANGXI RADICAL VALLEY +2F96 豆 # KANGXI RADICAL BEAN +2F97 豕 # KANGXI RADICAL PIG +2F98 豸 # KANGXI RADICAL BADGER +2F99 貝 # KANGXI RADICAL SHELL +2F9A 赤 # KANGXI RADICAL RED +2F9B 走 # KANGXI RADICAL RUN +2F9C 足 # KANGXI RADICAL FOOT +2F9D 身 # KANGXI RADICAL BODY +2F9E 車 # KANGXI RADICAL CART +2F9F 辛 # KANGXI RADICAL BITTER +2FA0 辰 # KANGXI RADICAL MORNING +2FA1 辵 # KANGXI RADICAL WALK +2FA2 邑 # KANGXI RADICAL CITY +2FA3 酉 # KANGXI RADICAL WINE +2FA4 釆 # KANGXI RADICAL DISTINGUISH +2FA5 里 # KANGXI RADICAL VILLAGE +2FA6 金 # KANGXI RADICAL GOLD +2FA7 長 # KANGXI RADICAL LONG +2FA8 門 # KANGXI RADICAL GATE +2FA9 阜 # KANGXI RADICAL MOUND +2FAA 隶 # KANGXI RADICAL SLAVE +2FAB 隹 # KANGXI RADICAL SHORT TAILED BIRD +2FAC 雨 # KANGXI RADICAL RAIN +2FAD 靑 # KANGXI RADICAL BLUE +2FAE 非 # KANGXI RADICAL WRONG +2FAF 面 # KANGXI RADICAL FACE +2FB0 革 # KANGXI RADICAL LEATHER +2FB1 韋 # KANGXI RADICAL TANNED LEATHER +2FB2 韭 # KANGXI RADICAL LEEK +2FB3 音 # KANGXI RADICAL SOUND +2FB4 頁 # KANGXI RADICAL LEAF +2FB5 風 # KANGXI RADICAL WIND +2FB6 飛 # KANGXI RADICAL FLY +2FB7 食 # KANGXI RADICAL EAT +2FB8 首 # KANGXI RADICAL HEAD +2FB9 香 # KANGXI RADICAL FRAGRANT +2FBA 馬 # KANGXI RADICAL HORSE +2FBB 骨 # KANGXI RADICAL BONE +2FBC 高 # KANGXI RADICAL TALL +2FBD 髟 # KANGXI RADICAL HAIR +2FBE 鬥 # KANGXI RADICAL FIGHT +2FBF 鬯 # KANGXI RADICAL SACRIFICIAL WINE +2FC0 鬲 # KANGXI RADICAL CAULDRON +2FC1 鬼 # KANGXI RADICAL GHOST +2FC2 魚 # KANGXI RADICAL FISH +2FC3 鳥 # KANGXI RADICAL BIRD +2FC4 鹵 # KANGXI RADICAL SALT +2FC5 鹿 # KANGXI RADICAL DEER +2FC6 麥 # KANGXI RADICAL WHEAT +2FC7 麻 # KANGXI RADICAL HEMP +2FC8 黃 # KANGXI RADICAL YELLOW +2FC9 黍 # KANGXI RADICAL MILLET +2FCA 黑 # KANGXI RADICAL BLACK +2FCB 黹 # KANGXI RADICAL EMBROIDERY +2FCC 黽 # KANGXI RADICAL FROG +2FCD 鼎 # KANGXI RADICAL TRIPOD +2FCE 鼓 # KANGXI RADICAL DRUM +2FCF 鼠 # KANGXI RADICAL RAT +2FD0 鼻 # KANGXI RADICAL NOSE +2FD1 齊 # KANGXI RADICAL EVEN +2FD2 齒 # KANGXI RADICAL TOOTH +2FD3 龍 # KANGXI RADICAL DRAGON +2FD4 龜 # KANGXI RADICAL TURTLE +2FD5 龠 # KANGXI RADICAL FLUTE +3000 # IDEOGRAPHIC SPACE +3036 〒 # CIRCLED POSTAL MARK +3038 十 # HANGZHOU NUMERAL TEN +3039 卄 # HANGZHOU NUMERAL TWENTY +303A 卅 # HANGZHOU NUMERAL THIRTY +3041 あ # HIRAGANA LETTER SMALL A +3043 い # HIRAGANA LETTER SMALL I +3045 う # HIRAGANA LETTER SMALL U +3047 え # HIRAGANA LETTER SMALL E +3049 お # HIRAGANA LETTER SMALL O +3063 つ # HIRAGANA LETTER SMALL TU +3083 や # HIRAGANA LETTER SMALL YA +3085 ゆ # HIRAGANA LETTER SMALL YU +3087 よ # HIRAGANA LETTER SMALL YO +308E わ # HIRAGANA LETTER SMALL WA +3095 か # HIRAGANA LETTER SMALL KA +3096 け # HIRAGANA LETTER SMALL KE +309B ゙ # KATAKANA-HIRAGANA VOICED SOUND MARK +309C ゚ # KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK +30A0 = # KATAKANA-HIRAGANA DOUBLE HYPHEN +30A1 ア # KATAKANA LETTER SMALL A +30A3 イ # KATAKANA LETTER SMALL I +30A5 ウ # KATAKANA LETTER SMALL U +30A7 エ # KATAKANA LETTER SMALL E +30A9 オ # KATAKANA LETTER SMALL O +30C3 ツ # KATAKANA LETTER SMALL TU +30E3 ヤ # KATAKANA LETTER SMALL YA +30E5 ユ # KATAKANA LETTER SMALL YU +30E7 ヨ # KATAKANA LETTER SMALL YO +30EE ワ # KATAKANA LETTER SMALL WA +30F5 カ # KATAKANA LETTER SMALL KA +30F6 ケ # KATAKANA LETTER SMALL KE +3131 ᄀ # HANGUL LETTER KIYEOK +3132 ᄁ # HANGUL LETTER SSANGKIYEOK +3133 ᆪ # HANGUL LETTER KIYEOK-SIOS +3134 ᄂ # HANGUL LETTER NIEUN +3135 ᆬ # HANGUL LETTER NIEUN-CIEUC +3136 ᆭ # HANGUL LETTER NIEUN-HIEUH +3137 ᄃ # HANGUL LETTER TIKEUT +3138 ᄄ # HANGUL LETTER SSANGTIKEUT +3139 ᄅ # HANGUL LETTER RIEUL +313A ᆰ # HANGUL LETTER RIEUL-KIYEOK +313B ᆱ # HANGUL LETTER RIEUL-MIEUM +313C ᆲ # HANGUL LETTER RIEUL-PIEUP +313D ᆳ # HANGUL LETTER RIEUL-SIOS +313E ᆴ # HANGUL LETTER RIEUL-THIEUTH +313F ᆵ # HANGUL LETTER RIEUL-PHIEUPH +3140 ᄚ # HANGUL LETTER RIEUL-HIEUH +3141 ᄆ # HANGUL LETTER MIEUM +3142 ᄇ # HANGUL LETTER PIEUP +3143 ᄈ # HANGUL LETTER SSANGPIEUP +3144 ᄡ # HANGUL LETTER PIEUP-SIOS +3145 ᄉ # HANGUL LETTER SIOS +3146 ᄊ # HANGUL LETTER SSANGSIOS +3147 ᄋ # HANGUL LETTER IEUNG +3148 ᄌ # HANGUL LETTER CIEUC +3149 ᄍ # HANGUL LETTER SSANGCIEUC +314A ᄎ # HANGUL LETTER CHIEUCH +314B ᄏ # HANGUL LETTER KHIEUKH +314C ᄐ # HANGUL LETTER THIEUTH +314D ᄑ # HANGUL LETTER PHIEUPH +314E ᄒ # HANGUL LETTER HIEUH +314F ᅡ # HANGUL LETTER A +3150 ᅢ # HANGUL LETTER AE +3151 ᅣ # HANGUL LETTER YA +3152 ᅤ # HANGUL LETTER YAE +3153 ᅥ # HANGUL LETTER EO +3154 ᅦ # HANGUL LETTER E +3155 ᅧ # HANGUL LETTER YEO +3156 ᅨ # HANGUL LETTER YE +3157 ᅩ # HANGUL LETTER O +3158 ᅪ # HANGUL LETTER WA +3159 ᅫ # HANGUL LETTER WAE +315A ᅬ # HANGUL LETTER OE +315B ᅭ # HANGUL LETTER YO +315C ᅮ # HANGUL LETTER U +315D ᅯ # HANGUL LETTER WEO +315E ᅰ # HANGUL LETTER WE +315F ᅱ # HANGUL LETTER WI +3160 ᅲ # HANGUL LETTER YU +3161 ᅳ # HANGUL LETTER EU +3162 ᅴ # HANGUL LETTER YI +3163 ᅵ # HANGUL LETTER I +3164 ᅠ # HANGUL FILLER +3165 ᄔ # HANGUL LETTER SSANGNIEUN +3166 ᄕ # HANGUL LETTER NIEUN-TIKEUT +3167 ᇇ # HANGUL LETTER NIEUN-SIOS +3168 ᇈ # HANGUL LETTER NIEUN-PANSIOS +3169 ᇌ # HANGUL LETTER RIEUL-KIYEOK-SIOS +316A ᇎ # HANGUL LETTER RIEUL-TIKEUT +316B ᇓ # HANGUL LETTER RIEUL-PIEUP-SIOS +316C ᇗ # HANGUL LETTER RIEUL-PANSIOS +316D ᇙ # HANGUL LETTER RIEUL-YEORINHIEUH +316E ᄜ # HANGUL LETTER MIEUM-PIEUP +316F ᇝ # HANGUL LETTER MIEUM-SIOS +3170 ᇟ # HANGUL LETTER MIEUM-PANSIOS +3171 ᄝ # HANGUL LETTER KAPYEOUNMIEUM +3172 ᄞ # HANGUL LETTER PIEUP-KIYEOK +3173 ᄠ # HANGUL LETTER PIEUP-TIKEUT +3174 ᄢ # HANGUL LETTER PIEUP-SIOS-KIYEOK +3175 ᄣ # HANGUL LETTER PIEUP-SIOS-TIKEUT +3176 ᄧ # HANGUL LETTER PIEUP-CIEUC +3177 ᄩ # HANGUL LETTER PIEUP-THIEUTH +3178 ᄫ # HANGUL LETTER KAPYEOUNPIEUP +3179 ᄬ # HANGUL LETTER KAPYEOUNSSANGPIEUP +317A ᄭ # HANGUL LETTER SIOS-KIYEOK +317B ᄮ # HANGUL LETTER SIOS-NIEUN +317C ᄯ # HANGUL LETTER SIOS-TIKEUT +317D ᄲ # HANGUL LETTER SIOS-PIEUP +317E ᄶ # HANGUL LETTER SIOS-CIEUC +317F ᅀ # HANGUL LETTER PANSIOS +3180 ᅇ # HANGUL LETTER SSANGIEUNG +3181 ᅌ # HANGUL LETTER YESIEUNG +3182 ᇱ # HANGUL LETTER YESIEUNG-SIOS +3183 ᇲ # HANGUL LETTER YESIEUNG-PANSIOS +3184 ᅗ # HANGUL LETTER KAPYEOUNPHIEUPH +3185 ᅘ # HANGUL LETTER SSANGHIEUH +3186 ᅙ # HANGUL LETTER YEORINHIEUH +3187 ᆄ # HANGUL LETTER YO-YA +3188 ᆅ # HANGUL LETTER YO-YAE +3189 ᆈ # HANGUL LETTER YO-I +318A ᆑ # HANGUL LETTER YU-YEO +318B ᆒ # HANGUL LETTER YU-YE +318C ᆔ # HANGUL LETTER YU-I +318D ᆞ # HANGUL LETTER ARAEA +318E ᆡ # HANGUL LETTER ARAEAE +31F0 ク # KATAKANA LETTER SMALL KU +31F1 シ # KATAKANA LETTER SMALL SI +31F2 ス # KATAKANA LETTER SMALL SU +31F3 ト # KATAKANA LETTER SMALL TO +31F4 ヌ # KATAKANA LETTER SMALL NU +31F5 ハ # KATAKANA LETTER SMALL HA +31F6 ヒ # KATAKANA LETTER SMALL HI +31F7 フ # KATAKANA LETTER SMALL HU +31F8 ヘ # KATAKANA LETTER SMALL HE +31F9 ホ # KATAKANA LETTER SMALL HO +31FA ム # KATAKANA LETTER SMALL MU +31FB ラ # KATAKANA LETTER SMALL RA +31FC リ # KATAKANA LETTER SMALL RI +31FD ル # KATAKANA LETTER SMALL RU +31FE レ # KATAKANA LETTER SMALL RE +31FF ロ # KATAKANA LETTER SMALL RO +3200 (ᄀ) # PARENTHESIZED HANGUL KIYEOK +3201 (ᄂ) # PARENTHESIZED HANGUL NIEUN +3202 (ᄃ) # PARENTHESIZED HANGUL TIKEUT +3203 (ᄅ) # PARENTHESIZED HANGUL RIEUL +3204 (ᄆ) # PARENTHESIZED HANGUL MIEUM +3205 (ᄇ) # PARENTHESIZED HANGUL PIEUP +3206 (ᄉ) # PARENTHESIZED HANGUL SIOS +3207 (ᄋ) # PARENTHESIZED HANGUL IEUNG +3208 (ᄌ) # PARENTHESIZED HANGUL CIEUC +3209 (ᄎ) # PARENTHESIZED HANGUL CHIEUCH +320A (ᄏ) # PARENTHESIZED HANGUL KHIEUKH +320B (ᄐ) # PARENTHESIZED HANGUL THIEUTH +320C (ᄑ) # PARENTHESIZED HANGUL PHIEUPH +320D (ᄒ) # PARENTHESIZED HANGUL HIEUH +320E (가) # PARENTHESIZED HANGUL KIYEOK A +320F (나) # PARENTHESIZED HANGUL NIEUN A +3210 (다) # PARENTHESIZED HANGUL TIKEUT A +3211 (라) # PARENTHESIZED HANGUL RIEUL A +3212 (마) # PARENTHESIZED HANGUL MIEUM A +3213 (바) # PARENTHESIZED HANGUL PIEUP A +3214 (사) # PARENTHESIZED HANGUL SIOS A +3215 (아) # PARENTHESIZED HANGUL IEUNG A +3216 (자) # PARENTHESIZED HANGUL CIEUC A +3217 (차) # PARENTHESIZED HANGUL CHIEUCH A +3218 (카) # PARENTHESIZED HANGUL KHIEUKH A +3219 (타) # PARENTHESIZED HANGUL THIEUTH A +321A (파) # PARENTHESIZED HANGUL PHIEUPH A +321B (하) # PARENTHESIZED HANGUL HIEUH A +321C (주) # PARENTHESIZED HANGUL CIEUC U +321D (오전) # PARENTHESIZED KOREAN CHARACTER OJEON +321E (오후) # PARENTHESIZED KOREAN CHARACTER O HU +3220 (一) # PARENTHESIZED IDEOGRAPH ONE +3221 (二) # PARENTHESIZED IDEOGRAPH TWO +3222 (三) # PARENTHESIZED IDEOGRAPH THREE +3223 (四) # PARENTHESIZED IDEOGRAPH FOUR +3224 (五) # PARENTHESIZED IDEOGRAPH FIVE +3225 (六) # PARENTHESIZED IDEOGRAPH SIX +3226 (七) # PARENTHESIZED IDEOGRAPH SEVEN +3227 (八) # PARENTHESIZED IDEOGRAPH EIGHT +3228 (九) # PARENTHESIZED IDEOGRAPH NINE +3229 (十) # PARENTHESIZED IDEOGRAPH TEN +322A (月) # PARENTHESIZED IDEOGRAPH MOON +322B (火) # PARENTHESIZED IDEOGRAPH FIRE +322C (水) # PARENTHESIZED IDEOGRAPH WATER +322D (木) # PARENTHESIZED IDEOGRAPH WOOD +322E (金) # PARENTHESIZED IDEOGRAPH METAL +322F (土) # PARENTHESIZED IDEOGRAPH EARTH +3230 (日) # PARENTHESIZED IDEOGRAPH SUN +3231 (株) # PARENTHESIZED IDEOGRAPH STOCK +3232 (有) # PARENTHESIZED IDEOGRAPH HAVE +3233 (社) # PARENTHESIZED IDEOGRAPH SOCIETY +3234 (名) # PARENTHESIZED IDEOGRAPH NAME +3235 (特) # PARENTHESIZED IDEOGRAPH SPECIAL +3236 (財) # PARENTHESIZED IDEOGRAPH FINANCIAL +3237 (祝) # PARENTHESIZED IDEOGRAPH CONGRATULATION +3238 (労) # PARENTHESIZED IDEOGRAPH LABOR +3239 (代) # PARENTHESIZED IDEOGRAPH REPRESENT +323A (呼) # PARENTHESIZED IDEOGRAPH CALL +323B (学) # PARENTHESIZED IDEOGRAPH STUDY +323C (監) # PARENTHESIZED IDEOGRAPH SUPERVISE +323D (企) # PARENTHESIZED IDEOGRAPH ENTERPRISE +323E (資) # PARENTHESIZED IDEOGRAPH RESOURCE +323F (協) # PARENTHESIZED IDEOGRAPH ALLIANCE +3240 (祭) # PARENTHESIZED IDEOGRAPH FESTIVAL +3241 (休) # PARENTHESIZED IDEOGRAPH REST +3242 (自) # PARENTHESIZED IDEOGRAPH SELF +3243 (至) # PARENTHESIZED IDEOGRAPH REACH +3250 PTE # PARTNERSHIP SIGN +3251 (21) # CIRCLED NUMBER TWENTY ONE +3252 (22) # CIRCLED NUMBER TWENTY TWO +3253 (23) # CIRCLED NUMBER TWENTY THREE +3254 (24) # CIRCLED NUMBER TWENTY FOUR +3255 (25) # CIRCLED NUMBER TWENTY FIVE +3256 (26) # CIRCLED NUMBER TWENTY SIX +3257 (27) # CIRCLED NUMBER TWENTY SEVEN +3258 (28) # CIRCLED NUMBER TWENTY EIGHT +3259 (29) # CIRCLED NUMBER TWENTY NINE +325A (30) # CIRCLED NUMBER THIRTY +325B (31) # CIRCLED NUMBER THIRTY ONE +325C (32) # CIRCLED NUMBER THIRTY TWO +325D (33) # CIRCLED NUMBER THIRTY THREE +325E (34) # CIRCLED NUMBER THIRTY FOUR +325F (35) # CIRCLED NUMBER THIRTY FIVE +3260 (ᄀ) # CIRCLED HANGUL KIYEOK +3261 (ᄂ) # CIRCLED HANGUL NIEUN +3262 (ᄃ) # CIRCLED HANGUL TIKEUT +3263 (ᄅ) # CIRCLED HANGUL RIEUL +3264 (ᄆ) # CIRCLED HANGUL MIEUM +3265 (ᄇ) # CIRCLED HANGUL PIEUP +3266 (ᄉ) # CIRCLED HANGUL SIOS +3267 (ᄋ) # CIRCLED HANGUL IEUNG +3268 (ᄌ) # CIRCLED HANGUL CIEUC +3269 (ᄎ) # CIRCLED HANGUL CHIEUCH +326A (ᄏ) # CIRCLED HANGUL KHIEUKH +326B (ᄐ) # CIRCLED HANGUL THIEUTH +326C (ᄑ) # CIRCLED HANGUL PHIEUPH +326D (ᄒ) # CIRCLED HANGUL HIEUH +326E (가) # CIRCLED HANGUL KIYEOK A +326F (나) # CIRCLED HANGUL NIEUN A +3270 (다) # CIRCLED HANGUL TIKEUT A +3271 (라) # CIRCLED HANGUL RIEUL A +3272 (마) # CIRCLED HANGUL MIEUM A +3273 (바) # CIRCLED HANGUL PIEUP A +3274 (사) # CIRCLED HANGUL SIOS A +3275 (아) # CIRCLED HANGUL IEUNG A +3276 (자) # CIRCLED HANGUL CIEUC A +3277 (차) # CIRCLED HANGUL CHIEUCH A +3278 (카) # CIRCLED HANGUL KHIEUKH A +3279 (타) # CIRCLED HANGUL THIEUTH A +327A (파) # CIRCLED HANGUL PHIEUPH A +327B (하) # CIRCLED HANGUL HIEUH A +327C (참고) # CIRCLED KOREAN CHARACTER CHAMKO +327D (주의) # CIRCLED KOREAN CHARACTER JUEUI +3280 (一) # CIRCLED IDEOGRAPH ONE +3281 (二) # CIRCLED IDEOGRAPH TWO +3282 (三) # CIRCLED IDEOGRAPH THREE +3283 (四) # CIRCLED IDEOGRAPH FOUR +3284 (五) # CIRCLED IDEOGRAPH FIVE +3285 (六) # CIRCLED IDEOGRAPH SIX +3286 (七) # CIRCLED IDEOGRAPH SEVEN +3287 (八) # CIRCLED IDEOGRAPH EIGHT +3288 (九) # CIRCLED IDEOGRAPH NINE +3289 (十) # CIRCLED IDEOGRAPH TEN +328A (月) # CIRCLED IDEOGRAPH MOON +328B (火) # CIRCLED IDEOGRAPH FIRE +328C (水) # CIRCLED IDEOGRAPH WATER +328D (木) # CIRCLED IDEOGRAPH WOOD +328E (金) # CIRCLED IDEOGRAPH METAL +328F (土) # CIRCLED IDEOGRAPH EARTH +3290 (日) # CIRCLED IDEOGRAPH SUN +3291 (株) # CIRCLED IDEOGRAPH STOCK +3292 (有) # CIRCLED IDEOGRAPH HAVE +3293 (社) # CIRCLED IDEOGRAPH SOCIETY +3294 (名) # CIRCLED IDEOGRAPH NAME +3295 (特) # CIRCLED IDEOGRAPH SPECIAL +3296 (財) # CIRCLED IDEOGRAPH FINANCIAL +3297 (祝) # CIRCLED IDEOGRAPH CONGRATULATION +3298 (労) # CIRCLED IDEOGRAPH LABOR +3299 (秘) # CIRCLED IDEOGRAPH SECRET +329A (男) # CIRCLED IDEOGRAPH MALE +329B (女) # CIRCLED IDEOGRAPH FEMALE +329C (適) # CIRCLED IDEOGRAPH SUITABLE +329D (優) # CIRCLED IDEOGRAPH EXCELLENT +329E (印) # CIRCLED IDEOGRAPH PRINT +329F (注) # CIRCLED IDEOGRAPH ATTENTION +32A0 (項) # CIRCLED IDEOGRAPH ITEM +32A1 (休) # CIRCLED IDEOGRAPH REST +32A2 (写) # CIRCLED IDEOGRAPH COPY +32A3 (正) # CIRCLED IDEOGRAPH CORRECT +32A4 (上) # CIRCLED IDEOGRAPH HIGH +32A5 (中) # CIRCLED IDEOGRAPH CENTRE +32A6 (下) # CIRCLED IDEOGRAPH LOW +32A7 (左) # CIRCLED IDEOGRAPH LEFT +32A8 (右) # CIRCLED IDEOGRAPH RIGHT +32A9 (医) # CIRCLED IDEOGRAPH MEDICINE +32AA (宗) # CIRCLED IDEOGRAPH RELIGION +32AB (学) # CIRCLED IDEOGRAPH STUDY +32AC (監) # CIRCLED IDEOGRAPH SUPERVISE +32AD (企) # CIRCLED IDEOGRAPH ENTERPRISE +32AE (資) # CIRCLED IDEOGRAPH RESOURCE +32AF (協) # CIRCLED IDEOGRAPH ALLIANCE +32B0 (夜) # CIRCLED IDEOGRAPH NIGHT +32B1 (36) # CIRCLED NUMBER THIRTY SIX +32B2 (37) # CIRCLED NUMBER THIRTY SEVEN +32B3 (38) # CIRCLED NUMBER THIRTY EIGHT +32B4 (39) # CIRCLED NUMBER THIRTY NINE +32B5 (40) # CIRCLED NUMBER FORTY +32B6 (41) # CIRCLED NUMBER FORTY ONE +32B7 (42) # CIRCLED NUMBER FORTY TWO +32B8 (43) # CIRCLED NUMBER FORTY THREE +32B9 (44) # CIRCLED NUMBER FORTY FOUR +32BA (45) # CIRCLED NUMBER FORTY FIVE +32BB (46) # CIRCLED NUMBER FORTY SIX +32BC (47) # CIRCLED NUMBER FORTY SEVEN +32BD (48) # CIRCLED NUMBER FORTY EIGHT +32BE (49) # CIRCLED NUMBER FORTY NINE +32BF (50) # CIRCLED NUMBER FIFTY +32C0 1月 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY +32C1 2月 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY +32C2 3月 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH +32C3 4月 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL +32C4 5月 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY +32C5 6月 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE +32C6 7月 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY +32C7 8月 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST +32C8 9月 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER +32C9 10月 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER +32CA 11月 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER +32CB 12月 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER +32CC Hg # SQUARE HG +32CD erg # SQUARE ERG +32CE eV # SQUARE EV +32CF LTD # LIMITED LIABILITY SIGN +32D0 (ア) # CIRCLED KATAKANA A +32D1 (イ) # CIRCLED KATAKANA I +32D2 (ウ) # CIRCLED KATAKANA U +32D3 (エ) # CIRCLED KATAKANA E +32D4 (オ) # CIRCLED KATAKANA O +32D5 (カ) # CIRCLED KATAKANA KA +32D6 (キ) # CIRCLED KATAKANA KI +32D7 (ク) # CIRCLED KATAKANA KU +32D8 (ケ) # CIRCLED KATAKANA KE +32D9 (コ) # CIRCLED KATAKANA KO +32DA (サ) # CIRCLED KATAKANA SA +32DB (シ) # CIRCLED KATAKANA SI +32DC (ス) # CIRCLED KATAKANA SU +32DD (セ) # CIRCLED KATAKANA SE +32DE (ソ) # CIRCLED KATAKANA SO +32DF (タ) # CIRCLED KATAKANA TA +32E0 (チ) # CIRCLED KATAKANA TI +32E1 (ツ) # CIRCLED KATAKANA TU +32E2 (テ) # CIRCLED KATAKANA TE +32E3 (ト) # CIRCLED KATAKANA TO +32E4 (ナ) # CIRCLED KATAKANA NA +32E5 (ニ) # CIRCLED KATAKANA NI +32E6 (ヌ) # CIRCLED KATAKANA NU +32E7 (ネ) # CIRCLED KATAKANA NE +32E8 (ノ) # CIRCLED KATAKANA NO +32E9 (ハ) # CIRCLED KATAKANA HA +32EA (ヒ) # CIRCLED KATAKANA HI +32EB (フ) # CIRCLED KATAKANA HU +32EC (ヘ) # CIRCLED KATAKANA HE +32ED (ホ) # CIRCLED KATAKANA HO +32EE (マ) # CIRCLED KATAKANA MA +32EF (ミ) # CIRCLED KATAKANA MI +32F0 (ム) # CIRCLED KATAKANA MU +32F1 (メ) # CIRCLED KATAKANA ME +32F2 (モ) # CIRCLED KATAKANA MO +32F3 (ヤ) # CIRCLED KATAKANA YA +32F4 (ユ) # CIRCLED KATAKANA YU +32F5 (ヨ) # CIRCLED KATAKANA YO +32F6 (ラ) # CIRCLED KATAKANA RA +32F7 (リ) # CIRCLED KATAKANA RI +32F8 (ル) # CIRCLED KATAKANA RU +32F9 (レ) # CIRCLED KATAKANA RE +32FA (ロ) # CIRCLED KATAKANA RO +32FB (ワ) # CIRCLED KATAKANA WA +32FC (ヰ) # CIRCLED KATAKANA WI +32FD (ヱ) # CIRCLED KATAKANA WE +32FE (ヲ) # CIRCLED KATAKANA WO +3300 アパート # SQUARE APAATO +3301 アルファ # SQUARE ARUHUA +3302 アンペア # SQUARE ANPEA +3303 アール # SQUARE AARU +3304 イニング # SQUARE ININGU +3305 インチ # SQUARE INTI +3306 ウォン # SQUARE UON +3307 エスクード # SQUARE ESUKUUDO +3308 エーカー # SQUARE EEKAA +3309 オンス # SQUARE ONSU +330A オーム # SQUARE OOMU +330B カイリ # SQUARE KAIRI +330C カラット # SQUARE KARATTO +330D カロリー # SQUARE KARORII +330E ガロン # SQUARE GARON +330F ガンマ # SQUARE GANMA +3310 ギガ # SQUARE GIGA +3311 ギニー # SQUARE GINII +3312 キュリー # SQUARE KYURII +3313 ギルダー # SQUARE GIRUDAA +3314 キロ # SQUARE KIRO +3315 キログラム # SQUARE KIROGURAMU +3316 キロメートル # SQUARE KIROMEETORU +3317 キロワット # SQUARE KIROWATTO +3318 グラム # SQUARE GURAMU +3319 グラムトン # SQUARE GURAMUTON +331A クルゼイロ # SQUARE KURUZEIRO +331B クローネ # SQUARE KUROONE +331C ケース # SQUARE KEESU +331D コルナ # SQUARE KORUNA +331E コーポ # SQUARE KOOPO +331F サイクル # SQUARE SAIKURU +3320 サンチーム # SQUARE SANTIIMU +3321 シリング # SQUARE SIRINGU +3322 センチ # SQUARE SENTI +3323 セント # SQUARE SENTO +3324 ダース # SQUARE DAASU +3325 デシ # SQUARE DESI +3326 ドル # SQUARE DORU +3327 トン # SQUARE TON +3328 ナノ # SQUARE NANO +3329 ノット # SQUARE NOTTO +332A ハイツ # SQUARE HAITU +332B パーセント # SQUARE PAASENTO +332C パーツ # SQUARE PAATU +332D バーレル # SQUARE BAARERU +332E ピアストル # SQUARE PIASUTORU +332F ピクル # SQUARE PIKURU +3330 ピコ # SQUARE PIKO +3331 ビル # SQUARE BIRU +3332 ファラッド # SQUARE HUARADDO +3333 フィート # SQUARE HUIITO +3334 ブッシェル # SQUARE BUSSYERU +3335 フラン # SQUARE HURAN +3336 ヘクタール # SQUARE HEKUTAARU +3337 ペソ # SQUARE PESO +3338 ペニヒ # SQUARE PENIHI +3339 ヘルツ # SQUARE HERUTU +333A ペンス # SQUARE PENSU +333B ページ # SQUARE PEEZI +333C ベータ # SQUARE BEETA +333D ポイント # SQUARE POINTO +333E ボルト # SQUARE BORUTO +333F ホン # SQUARE HON +3340 ポンド # SQUARE PONDO +3341 ホール # SQUARE HOORU +3342 ホーン # SQUARE HOON +3343 マイクロ # SQUARE MAIKURO +3344 マイル # SQUARE MAIRU +3345 マッハ # SQUARE MAHHA +3346 マルク # SQUARE MARUKU +3347 マンション # SQUARE MANSYON +3348 ミクロン # SQUARE MIKURON +3349 ミリ # SQUARE MIRI +334A ミリバール # SQUARE MIRIBAARU +334B メガ # SQUARE MEGA +334C メガトン # SQUARE MEGATON +334D メートル # SQUARE MEETORU +334E ヤード # SQUARE YAADO +334F ヤール # SQUARE YAARU +3350 ユアン # SQUARE YUAN +3351 リットル # SQUARE RITTORU +3352 リラ # SQUARE RIRA +3353 ルピー # SQUARE RUPII +3354 ルーブル # SQUARE RUUBURU +3355 レム # SQUARE REMU +3356 レントゲン # SQUARE RENTOGEN +3357 ワット # SQUARE WATTO +3358 0点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO +3359 1点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE +335A 2点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO +335B 3点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE +335C 4点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR +335D 5点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE +335E 6点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX +335F 7点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN +3360 8点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT +3361 9点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE +3362 10点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN +3363 11点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN +3364 12点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE +3365 13点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN +3366 14点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN +3367 15点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN +3368 16点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN +3369 17点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN +336A 18点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN +336B 19点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN +336C 20点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY +336D 21点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE +336E 22点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO +336F 23点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE +3370 24点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR +3371 hPa # SQUARE HPA +3372 da # SQUARE DA +3373 AU # SQUARE AU +3374 bar # SQUARE BAR +3375 oV # SQUARE OV +3376 pc # SQUARE PC +3377 dm # SQUARE DM +3378 dm^2 # SQUARE DM SQUARED +3379 dm^3 # SQUARE DM CUBED +337A IU # SQUARE IU +337B 平成 # SQUARE ERA NAME HEISEI +337C 昭和 # SQUARE ERA NAME SYOUWA +337D 大正 # SQUARE ERA NAME TAISYOU +337E 明治 # SQUARE ERA NAME MEIZI +337F 株式会社 # SQUARE CORPORATION +3380 pA # SQUARE PA AMPS +3381 nA # SQUARE NA +3382 μA # SQUARE MU A +3383 mA # SQUARE MA +3384 kA # SQUARE KA +3385 KB # SQUARE KB +3386 MB # SQUARE MB +3387 GB # SQUARE GB +3388 cal # SQUARE CAL +3389 kcal # SQUARE KCAL +338A pF # SQUARE PF +338B nF # SQUARE NF +338C μF # SQUARE MU F +338D μg # SQUARE MU G +338E mg # SQUARE MG +338F kg # SQUARE KG +3390 Hz # SQUARE HZ +3391 kHz # SQUARE KHZ +3392 MHz # SQUARE MHZ +3393 GHz # SQUARE GHZ +3394 THz # SQUARE THZ +3395 μl # SQUARE MU L +3396 ml # SQUARE ML +3397 dl # SQUARE DL +3398 kl # SQUARE KL +3399 fm # SQUARE FM +339A nm # SQUARE NM +339B μm # SQUARE MU M +339C mm # SQUARE MM +339D cm # SQUARE CM +339E km # SQUARE KM +339F mm^2 # SQUARE MM SQUARED +33A0 cm^2 # SQUARE CM SQUARED +33A1 m^2 # SQUARE M SQUARED +33A2 km^2 # SQUARE KM SQUARED +33A3 mm^3 # SQUARE MM CUBED +33A4 cm^3 # SQUARE CM CUBED +33A5 m^3 # SQUARE M CUBED +33A6 km^3 # SQUARE KM CUBED +33A7 m/s # SQUARE M OVER S +33A8 m/s^2 # SQUARE M OVER S SQUARED +33A9 Pa # SQUARE PA +33AA kPa # SQUARE KPA +33AB MPa # SQUARE MPA +33AC GPa # SQUARE GPA +33AD rad # SQUARE RAD +33AE rad/s # SQUARE RAD OVER S +33AF rad/s^2 # SQUARE RAD OVER S SQUARED +33B0 ps # SQUARE PS +33B1 ns # SQUARE NS +33B2 μs # SQUARE MU S +33B3 ms # SQUARE MS +33B4 pV # SQUARE PV +33B5 nV # SQUARE NV +33B6 μV # SQUARE MU V +33B7 mV # SQUARE MV +33B8 kV # SQUARE KV +33B9 MV # SQUARE MV MEGA +33BA pW # SQUARE PW +33BB nW # SQUARE NW +33BC μW # SQUARE MU W +33BD mW # SQUARE MW +33BE kW # SQUARE KW +33BF MW # SQUARE MW MEGA +33C0 kΩ # SQUARE K OHM +33C1 MΩ # SQUARE M OHM +33C2 a.m. # SQUARE AM +33C3 Bq # SQUARE BQ +33C4 cc # SQUARE CC +33C5 cd # SQUARE CD +33C6 C/kg # SQUARE C OVER KG +33C7 Co. # SQUARE CO +33C8 dB # SQUARE DB +33C9 Gy # SQUARE GY +33CA ha # SQUARE HA +33CB HP # SQUARE HP +33CC in # SQUARE IN +33CD KK # SQUARE KK +33CE KM # SQUARE KM CAPITAL +33CF kt # SQUARE KT +33D0 lm # SQUARE LM +33D1 ln # SQUARE LN +33D2 log # SQUARE LOG +33D3 lx # SQUARE LX +33D4 mb # SQUARE MB SMALL +33D5 mil # SQUARE MIL +33D6 mol # SQUARE MOL +33D7 PH # SQUARE PH +33D8 p.m. # SQUARE PM +33D9 PPM # SQUARE PPM +33DA PR # SQUARE PR +33DB sr # SQUARE SR +33DC Sv # SQUARE SV +33DD Wb # SQUARE WB +33DE V/m # SQUARE V OVER M +33DF A/m # SQUARE A OVER M +33FF gal # SQUARE GAL +33E0 1日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE +33E1 2日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO +33E2 3日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE +33E3 4日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR +33E4 5日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE +33E5 6日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX +33E6 7日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN +33E7 8日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT +33E8 9日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE +33E9 10日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN +33EA 11日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN +33EB 12日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE +33EC 13日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN +33ED 14日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN +33EE 15日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN +33EF 16日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN +33F0 17日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN +33F1 18日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN +33F2 19日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN +33F3 20日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY +33F4 21日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE +33F5 22日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO +33F6 23日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE +33F7 24日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR +33F8 25日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE +33F9 26日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX +33FA 27日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN +33FB 28日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT +33FC 29日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE +33FD 30日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY +33FE 31日 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE +F900 豈 # CJK COMPATIBILITY IDEOGRAPH-F900 +F901 更 # CJK COMPATIBILITY IDEOGRAPH-F901 +F902 車 # CJK COMPATIBILITY IDEOGRAPH-F902 +F903 賈 # CJK COMPATIBILITY IDEOGRAPH-F903 +F904 滑 # CJK COMPATIBILITY IDEOGRAPH-F904 +F905 串 # CJK COMPATIBILITY IDEOGRAPH-F905 +F906 句 # CJK COMPATIBILITY IDEOGRAPH-F906 +F907 龜 # CJK COMPATIBILITY IDEOGRAPH-F907 +F908 龜 # CJK COMPATIBILITY IDEOGRAPH-F908 +F909 契 # CJK COMPATIBILITY IDEOGRAPH-F909 +F90A 金 # CJK COMPATIBILITY IDEOGRAPH-F90A +F90B 喇 # CJK COMPATIBILITY IDEOGRAPH-F90B +F90C 奈 # CJK COMPATIBILITY IDEOGRAPH-F90C +F90D 懶 # CJK COMPATIBILITY IDEOGRAPH-F90D +F90E 癩 # CJK COMPATIBILITY IDEOGRAPH-F90E +F90F 羅 # CJK COMPATIBILITY IDEOGRAPH-F90F +F910 蘿 # CJK COMPATIBILITY IDEOGRAPH-F910 +F911 螺 # CJK COMPATIBILITY IDEOGRAPH-F911 +F912 裸 # CJK COMPATIBILITY IDEOGRAPH-F912 +F913 邏 # CJK COMPATIBILITY IDEOGRAPH-F913 +F914 樂 # CJK COMPATIBILITY IDEOGRAPH-F914 +F915 洛 # CJK COMPATIBILITY IDEOGRAPH-F915 +F916 烙 # CJK COMPATIBILITY IDEOGRAPH-F916 +F917 珞 # CJK COMPATIBILITY IDEOGRAPH-F917 +F918 落 # CJK COMPATIBILITY IDEOGRAPH-F918 +F919 酪 # CJK COMPATIBILITY IDEOGRAPH-F919 +F91A 駱 # CJK COMPATIBILITY IDEOGRAPH-F91A +F91B 亂 # CJK COMPATIBILITY IDEOGRAPH-F91B +F91C 卵 # CJK COMPATIBILITY IDEOGRAPH-F91C +F91D 欄 # CJK COMPATIBILITY IDEOGRAPH-F91D +F91E 爛 # CJK COMPATIBILITY IDEOGRAPH-F91E +F91F 蘭 # CJK COMPATIBILITY IDEOGRAPH-F91F +F920 鸞 # CJK COMPATIBILITY IDEOGRAPH-F920 +F921 嵐 # CJK COMPATIBILITY IDEOGRAPH-F921 +F922 濫 # CJK COMPATIBILITY IDEOGRAPH-F922 +F923 藍 # CJK COMPATIBILITY IDEOGRAPH-F923 +F924 襤 # CJK COMPATIBILITY IDEOGRAPH-F924 +F925 拉 # CJK COMPATIBILITY IDEOGRAPH-F925 +F926 臘 # CJK COMPATIBILITY IDEOGRAPH-F926 +F927 蠟 # CJK COMPATIBILITY IDEOGRAPH-F927 +F928 廊 # CJK COMPATIBILITY IDEOGRAPH-F928 +F929 朗 # CJK COMPATIBILITY IDEOGRAPH-F929 +F92A 浪 # CJK COMPATIBILITY IDEOGRAPH-F92A +F92B 狼 # CJK COMPATIBILITY IDEOGRAPH-F92B +F92C 郎 # CJK COMPATIBILITY IDEOGRAPH-F92C +F92D 來 # CJK COMPATIBILITY IDEOGRAPH-F92D +F92E 冷 # CJK COMPATIBILITY IDEOGRAPH-F92E +F92F 勞 # CJK COMPATIBILITY IDEOGRAPH-F92F +F930 擄 # CJK COMPATIBILITY IDEOGRAPH-F930 +F931 櫓 # CJK COMPATIBILITY IDEOGRAPH-F931 +F932 爐 # CJK COMPATIBILITY IDEOGRAPH-F932 +F933 盧 # CJK COMPATIBILITY IDEOGRAPH-F933 +F934 老 # CJK COMPATIBILITY IDEOGRAPH-F934 +F935 蘆 # CJK COMPATIBILITY IDEOGRAPH-F935 +F936 虜 # CJK COMPATIBILITY IDEOGRAPH-F936 +F937 路 # CJK COMPATIBILITY IDEOGRAPH-F937 +F938 露 # CJK COMPATIBILITY IDEOGRAPH-F938 +F939 魯 # CJK COMPATIBILITY IDEOGRAPH-F939 +F93A 鷺 # CJK COMPATIBILITY IDEOGRAPH-F93A +F93B 碌 # CJK COMPATIBILITY IDEOGRAPH-F93B +F93C 祿 # CJK COMPATIBILITY IDEOGRAPH-F93C +F93D 綠 # CJK COMPATIBILITY IDEOGRAPH-F93D +F93E 菉 # CJK COMPATIBILITY IDEOGRAPH-F93E +F93F 錄 # CJK COMPATIBILITY IDEOGRAPH-F93F +F940 鹿 # CJK COMPATIBILITY IDEOGRAPH-F940 +F941 論 # CJK COMPATIBILITY IDEOGRAPH-F941 +F942 壟 # CJK COMPATIBILITY IDEOGRAPH-F942 +F943 弄 # CJK COMPATIBILITY IDEOGRAPH-F943 +F944 籠 # CJK COMPATIBILITY IDEOGRAPH-F944 +F945 聾 # CJK COMPATIBILITY IDEOGRAPH-F945 +F946 牢 # CJK COMPATIBILITY IDEOGRAPH-F946 +F947 磊 # CJK COMPATIBILITY IDEOGRAPH-F947 +F948 賂 # CJK COMPATIBILITY IDEOGRAPH-F948 +F949 雷 # CJK COMPATIBILITY IDEOGRAPH-F949 +F94A 壘 # CJK COMPATIBILITY IDEOGRAPH-F94A +F94B 屢 # CJK COMPATIBILITY IDEOGRAPH-F94B +F94C 樓 # CJK COMPATIBILITY IDEOGRAPH-F94C +F94D 淚 # CJK COMPATIBILITY IDEOGRAPH-F94D +F94E 漏 # CJK COMPATIBILITY IDEOGRAPH-F94E +F94F 累 # CJK COMPATIBILITY IDEOGRAPH-F94F +F950 縷 # CJK COMPATIBILITY IDEOGRAPH-F950 +F951 陋 # CJK COMPATIBILITY IDEOGRAPH-F951 +F952 勒 # CJK COMPATIBILITY IDEOGRAPH-F952 +F953 肋 # CJK COMPATIBILITY IDEOGRAPH-F953 +F954 凜 # CJK COMPATIBILITY IDEOGRAPH-F954 +F955 凌 # CJK COMPATIBILITY IDEOGRAPH-F955 +F956 稜 # CJK COMPATIBILITY IDEOGRAPH-F956 +F957 綾 # CJK COMPATIBILITY IDEOGRAPH-F957 +F958 菱 # CJK COMPATIBILITY IDEOGRAPH-F958 +F959 陵 # CJK COMPATIBILITY IDEOGRAPH-F959 +F95A 讀 # CJK COMPATIBILITY IDEOGRAPH-F95A +F95B 拏 # CJK COMPATIBILITY IDEOGRAPH-F95B +F95C 樂 # CJK COMPATIBILITY IDEOGRAPH-F95C +F95D 諾 # CJK COMPATIBILITY IDEOGRAPH-F95D +F95E 丹 # CJK COMPATIBILITY IDEOGRAPH-F95E +F95F 寧 # CJK COMPATIBILITY IDEOGRAPH-F95F +F960 怒 # CJK COMPATIBILITY IDEOGRAPH-F960 +F961 率 # CJK COMPATIBILITY IDEOGRAPH-F961 +F962 異 # CJK COMPATIBILITY IDEOGRAPH-F962 +F963 北 # CJK COMPATIBILITY IDEOGRAPH-F963 +F964 磻 # CJK COMPATIBILITY IDEOGRAPH-F964 +F965 便 # CJK COMPATIBILITY IDEOGRAPH-F965 +F966 復 # CJK COMPATIBILITY IDEOGRAPH-F966 +F967 不 # CJK COMPATIBILITY IDEOGRAPH-F967 +F968 泌 # CJK COMPATIBILITY IDEOGRAPH-F968 +F969 數 # CJK COMPATIBILITY IDEOGRAPH-F969 +F96A 索 # CJK COMPATIBILITY IDEOGRAPH-F96A +F96B 參 # CJK COMPATIBILITY IDEOGRAPH-F96B +F96C 塞 # CJK COMPATIBILITY IDEOGRAPH-F96C +F96D 省 # CJK COMPATIBILITY IDEOGRAPH-F96D +F96E 葉 # CJK COMPATIBILITY IDEOGRAPH-F96E +F96F 說 # CJK COMPATIBILITY IDEOGRAPH-F96F +F970 殺 # CJK COMPATIBILITY IDEOGRAPH-F970 +F971 辰 # CJK COMPATIBILITY IDEOGRAPH-F971 +F972 沈 # CJK COMPATIBILITY IDEOGRAPH-F972 +F973 拾 # CJK COMPATIBILITY IDEOGRAPH-F973 +F974 若 # CJK COMPATIBILITY IDEOGRAPH-F974 +F975 掠 # CJK COMPATIBILITY IDEOGRAPH-F975 +F976 略 # CJK COMPATIBILITY IDEOGRAPH-F976 +F977 亮 # CJK COMPATIBILITY IDEOGRAPH-F977 +F978 兩 # CJK COMPATIBILITY IDEOGRAPH-F978 +F979 凉 # CJK COMPATIBILITY IDEOGRAPH-F979 +F97A 梁 # CJK COMPATIBILITY IDEOGRAPH-F97A +F97B 糧 # CJK COMPATIBILITY IDEOGRAPH-F97B +F97C 良 # CJK COMPATIBILITY IDEOGRAPH-F97C +F97D 諒 # CJK COMPATIBILITY IDEOGRAPH-F97D +F97E 量 # CJK COMPATIBILITY IDEOGRAPH-F97E +F97F 勵 # CJK COMPATIBILITY IDEOGRAPH-F97F +F980 呂 # CJK COMPATIBILITY IDEOGRAPH-F980 +F981 女 # CJK COMPATIBILITY IDEOGRAPH-F981 +F982 廬 # CJK COMPATIBILITY IDEOGRAPH-F982 +F983 旅 # CJK COMPATIBILITY IDEOGRAPH-F983 +F984 濾 # CJK COMPATIBILITY IDEOGRAPH-F984 +F985 礪 # CJK COMPATIBILITY IDEOGRAPH-F985 +F986 閭 # CJK COMPATIBILITY IDEOGRAPH-F986 +F987 驪 # CJK COMPATIBILITY IDEOGRAPH-F987 +F988 麗 # CJK COMPATIBILITY IDEOGRAPH-F988 +F989 黎 # CJK COMPATIBILITY IDEOGRAPH-F989 +F98A 力 # CJK COMPATIBILITY IDEOGRAPH-F98A +F98B 曆 # CJK COMPATIBILITY IDEOGRAPH-F98B +F98C 歷 # CJK COMPATIBILITY IDEOGRAPH-F98C +F98D 轢 # CJK COMPATIBILITY IDEOGRAPH-F98D +F98E 年 # CJK COMPATIBILITY IDEOGRAPH-F98E +F98F 憐 # CJK COMPATIBILITY IDEOGRAPH-F98F +F990 戀 # CJK COMPATIBILITY IDEOGRAPH-F990 +F991 撚 # CJK COMPATIBILITY IDEOGRAPH-F991 +F992 漣 # CJK COMPATIBILITY IDEOGRAPH-F992 +F993 煉 # CJK COMPATIBILITY IDEOGRAPH-F993 +F994 璉 # CJK COMPATIBILITY IDEOGRAPH-F994 +F995 秊 # CJK COMPATIBILITY IDEOGRAPH-F995 +F996 練 # CJK COMPATIBILITY IDEOGRAPH-F996 +F997 聯 # CJK COMPATIBILITY IDEOGRAPH-F997 +F998 輦 # CJK COMPATIBILITY IDEOGRAPH-F998 +F999 蓮 # CJK COMPATIBILITY IDEOGRAPH-F999 +F99A 連 # CJK COMPATIBILITY IDEOGRAPH-F99A +F99B 鍊 # CJK COMPATIBILITY IDEOGRAPH-F99B +F99C 列 # CJK COMPATIBILITY IDEOGRAPH-F99C +F99D 劣 # CJK COMPATIBILITY IDEOGRAPH-F99D +F99E 咽 # CJK COMPATIBILITY IDEOGRAPH-F99E +F99F 烈 # CJK COMPATIBILITY IDEOGRAPH-F99F +F9A0 裂 # CJK COMPATIBILITY IDEOGRAPH-F9A0 +F9A1 說 # CJK COMPATIBILITY IDEOGRAPH-F9A1 +F9A2 廉 # CJK COMPATIBILITY IDEOGRAPH-F9A2 +F9A3 念 # CJK COMPATIBILITY IDEOGRAPH-F9A3 +F9A4 捻 # CJK COMPATIBILITY IDEOGRAPH-F9A4 +F9A5 殮 # CJK COMPATIBILITY IDEOGRAPH-F9A5 +F9A6 簾 # CJK COMPATIBILITY IDEOGRAPH-F9A6 +F9A7 獵 # CJK COMPATIBILITY IDEOGRAPH-F9A7 +F9A8 令 # CJK COMPATIBILITY IDEOGRAPH-F9A8 +F9A9 囹 # CJK COMPATIBILITY IDEOGRAPH-F9A9 +F9AA 寧 # CJK COMPATIBILITY IDEOGRAPH-F9AA +F9AB 嶺 # CJK COMPATIBILITY IDEOGRAPH-F9AB +F9AC 怜 # CJK COMPATIBILITY IDEOGRAPH-F9AC +F9AD 玲 # CJK COMPATIBILITY IDEOGRAPH-F9AD +F9AE 瑩 # CJK COMPATIBILITY IDEOGRAPH-F9AE +F9AF 羚 # CJK COMPATIBILITY IDEOGRAPH-F9AF +F9B0 聆 # CJK COMPATIBILITY IDEOGRAPH-F9B0 +F9B1 鈴 # CJK COMPATIBILITY IDEOGRAPH-F9B1 +F9B2 零 # CJK COMPATIBILITY IDEOGRAPH-F9B2 +F9B3 靈 # CJK COMPATIBILITY IDEOGRAPH-F9B3 +F9B4 領 # CJK COMPATIBILITY IDEOGRAPH-F9B4 +F9B5 例 # CJK COMPATIBILITY IDEOGRAPH-F9B5 +F9B6 禮 # CJK COMPATIBILITY IDEOGRAPH-F9B6 +F9B7 醴 # CJK COMPATIBILITY IDEOGRAPH-F9B7 +F9B8 隸 # CJK COMPATIBILITY IDEOGRAPH-F9B8 +F9B9 惡 # CJK COMPATIBILITY IDEOGRAPH-F9B9 +F9BA 了 # CJK COMPATIBILITY IDEOGRAPH-F9BA +F9BB 僚 # CJK COMPATIBILITY IDEOGRAPH-F9BB +F9BC 寮 # CJK COMPATIBILITY IDEOGRAPH-F9BC +F9BD 尿 # CJK COMPATIBILITY IDEOGRAPH-F9BD +F9BE 料 # CJK COMPATIBILITY IDEOGRAPH-F9BE +F9BF 樂 # CJK COMPATIBILITY IDEOGRAPH-F9BF +F9C0 燎 # CJK COMPATIBILITY IDEOGRAPH-F9C0 +F9C1 療 # CJK COMPATIBILITY IDEOGRAPH-F9C1 +F9C2 蓼 # CJK COMPATIBILITY IDEOGRAPH-F9C2 +F9C3 遼 # CJK COMPATIBILITY IDEOGRAPH-F9C3 +F9C4 龍 # CJK COMPATIBILITY IDEOGRAPH-F9C4 +F9C5 暈 # CJK COMPATIBILITY IDEOGRAPH-F9C5 +F9C6 阮 # CJK COMPATIBILITY IDEOGRAPH-F9C6 +F9C7 劉 # CJK COMPATIBILITY IDEOGRAPH-F9C7 +F9C8 杻 # CJK COMPATIBILITY IDEOGRAPH-F9C8 +F9C9 柳 # CJK COMPATIBILITY IDEOGRAPH-F9C9 +F9CA 流 # CJK COMPATIBILITY IDEOGRAPH-F9CA +F9CB 溜 # CJK COMPATIBILITY IDEOGRAPH-F9CB +F9CC 琉 # CJK COMPATIBILITY IDEOGRAPH-F9CC +F9CD 留 # CJK COMPATIBILITY IDEOGRAPH-F9CD +F9CE 硫 # CJK COMPATIBILITY IDEOGRAPH-F9CE +F9CF 紐 # CJK COMPATIBILITY IDEOGRAPH-F9CF +F9D0 類 # CJK COMPATIBILITY IDEOGRAPH-F9D0 +F9D1 六 # CJK COMPATIBILITY IDEOGRAPH-F9D1 +F9D2 戮 # CJK COMPATIBILITY IDEOGRAPH-F9D2 +F9D3 陸 # CJK COMPATIBILITY IDEOGRAPH-F9D3 +F9D4 倫 # CJK COMPATIBILITY IDEOGRAPH-F9D4 +F9D5 崙 # CJK COMPATIBILITY IDEOGRAPH-F9D5 +F9D6 淪 # CJK COMPATIBILITY IDEOGRAPH-F9D6 +F9D7 輪 # CJK COMPATIBILITY IDEOGRAPH-F9D7 +F9D8 律 # CJK COMPATIBILITY IDEOGRAPH-F9D8 +F9D9 慄 # CJK COMPATIBILITY IDEOGRAPH-F9D9 +F9DA 栗 # CJK COMPATIBILITY IDEOGRAPH-F9DA +F9DB 率 # CJK COMPATIBILITY IDEOGRAPH-F9DB +F9DC 隆 # CJK COMPATIBILITY IDEOGRAPH-F9DC +F9DD 利 # CJK COMPATIBILITY IDEOGRAPH-F9DD +F9DE 吏 # CJK COMPATIBILITY IDEOGRAPH-F9DE +F9DF 履 # CJK COMPATIBILITY IDEOGRAPH-F9DF +F9E0 易 # CJK COMPATIBILITY IDEOGRAPH-F9E0 +F9E1 李 # CJK COMPATIBILITY IDEOGRAPH-F9E1 +F9E2 梨 # CJK COMPATIBILITY IDEOGRAPH-F9E2 +F9E3 泥 # CJK COMPATIBILITY IDEOGRAPH-F9E3 +F9E4 理 # CJK COMPATIBILITY IDEOGRAPH-F9E4 +F9E5 痢 # CJK COMPATIBILITY IDEOGRAPH-F9E5 +F9E6 罹 # CJK COMPATIBILITY IDEOGRAPH-F9E6 +F9E7 裏 # CJK COMPATIBILITY IDEOGRAPH-F9E7 +F9E8 裡 # CJK COMPATIBILITY IDEOGRAPH-F9E8 +F9E9 里 # CJK COMPATIBILITY IDEOGRAPH-F9E9 +F9EA 離 # CJK COMPATIBILITY IDEOGRAPH-F9EA +F9EB 匿 # CJK COMPATIBILITY IDEOGRAPH-F9EB +F9EC 溺 # CJK COMPATIBILITY IDEOGRAPH-F9EC +F9ED 吝 # CJK COMPATIBILITY IDEOGRAPH-F9ED +F9EE 燐 # CJK COMPATIBILITY IDEOGRAPH-F9EE +F9EF 璘 # CJK COMPATIBILITY IDEOGRAPH-F9EF +F9F0 藺 # CJK COMPATIBILITY IDEOGRAPH-F9F0 +F9F1 隣 # CJK COMPATIBILITY IDEOGRAPH-F9F1 +F9F2 鱗 # CJK COMPATIBILITY IDEOGRAPH-F9F2 +F9F3 麟 # CJK COMPATIBILITY IDEOGRAPH-F9F3 +F9F4 林 # CJK COMPATIBILITY IDEOGRAPH-F9F4 +F9F5 淋 # CJK COMPATIBILITY IDEOGRAPH-F9F5 +F9F6 臨 # CJK COMPATIBILITY IDEOGRAPH-F9F6 +F9F7 立 # CJK COMPATIBILITY IDEOGRAPH-F9F7 +F9F8 笠 # CJK COMPATIBILITY IDEOGRAPH-F9F8 +F9F9 粒 # CJK COMPATIBILITY IDEOGRAPH-F9F9 +F9FA 狀 # CJK COMPATIBILITY IDEOGRAPH-F9FA +F9FB 炙 # CJK COMPATIBILITY IDEOGRAPH-F9FB +F9FC 識 # CJK COMPATIBILITY IDEOGRAPH-F9FC +F9FD 什 # CJK COMPATIBILITY IDEOGRAPH-F9FD +F9FE 茶 # CJK COMPATIBILITY IDEOGRAPH-F9FE +F9FF 刺 # CJK COMPATIBILITY IDEOGRAPH-F9FF +FA00 切 # CJK COMPATIBILITY IDEOGRAPH-FA00 +FA01 度 # CJK COMPATIBILITY IDEOGRAPH-FA01 +FA02 拓 # CJK COMPATIBILITY IDEOGRAPH-FA02 +FA03 糖 # CJK COMPATIBILITY IDEOGRAPH-FA03 +FA04 宅 # CJK COMPATIBILITY IDEOGRAPH-FA04 +FA05 洞 # CJK COMPATIBILITY IDEOGRAPH-FA05 +FA06 暴 # CJK COMPATIBILITY IDEOGRAPH-FA06 +FA07 輻 # CJK COMPATIBILITY IDEOGRAPH-FA07 +FA08 行 # CJK COMPATIBILITY IDEOGRAPH-FA08 +FA09 降 # CJK COMPATIBILITY IDEOGRAPH-FA09 +FA0A 見 # CJK COMPATIBILITY IDEOGRAPH-FA0A +FA0B 廓 # CJK COMPATIBILITY IDEOGRAPH-FA0B +FA0C 兀 # CJK COMPATIBILITY IDEOGRAPH-FA0C +FA0D 嗀 # CJK COMPATIBILITY IDEOGRAPH-FA0D +FA10 塚 # CJK COMPATIBILITY IDEOGRAPH-FA10 +FA12 晴 # CJK COMPATIBILITY IDEOGRAPH-FA12 +FA15 凞 # CJK COMPATIBILITY IDEOGRAPH-FA15 +FA16 猪 # CJK COMPATIBILITY IDEOGRAPH-FA16 +FA17 益 # CJK COMPATIBILITY IDEOGRAPH-FA17 +FA18 礼 # CJK COMPATIBILITY IDEOGRAPH-FA18 +FA19 神 # CJK COMPATIBILITY IDEOGRAPH-FA19 +FA1A 祥 # CJK COMPATIBILITY IDEOGRAPH-FA1A +FA1B 福 # CJK COMPATIBILITY IDEOGRAPH-FA1B +FA1C 靖 # CJK COMPATIBILITY IDEOGRAPH-FA1C +FA1D 精 # CJK COMPATIBILITY IDEOGRAPH-FA1D +FA1E 羽 # CJK COMPATIBILITY IDEOGRAPH-FA1E +FA20 蘒 # CJK COMPATIBILITY IDEOGRAPH-FA20 +FA22 諸 # CJK COMPATIBILITY IDEOGRAPH-FA22 +FA25 逸 # CJK COMPATIBILITY IDEOGRAPH-FA25 +FA26 都 # CJK COMPATIBILITY IDEOGRAPH-FA26 +FA2A 飯 # CJK COMPATIBILITY IDEOGRAPH-FA2A +FA2B 飼 # CJK COMPATIBILITY IDEOGRAPH-FA2B +FA2C 館 # CJK COMPATIBILITY IDEOGRAPH-FA2C +FA2D 鶴 # CJK COMPATIBILITY IDEOGRAPH-FA2D +FA30 侮 # CJK COMPATIBILITY IDEOGRAPH-FA30 +FA31 僧 # CJK COMPATIBILITY IDEOGRAPH-FA31 +FA32 免 # CJK COMPATIBILITY IDEOGRAPH-FA32 +FA33 勉 # CJK COMPATIBILITY IDEOGRAPH-FA33 +FA34 勤 # CJK COMPATIBILITY IDEOGRAPH-FA34 +FA35 卑 # CJK COMPATIBILITY IDEOGRAPH-FA35 +FA36 喝 # CJK COMPATIBILITY IDEOGRAPH-FA36 +FA37 嘆 # CJK COMPATIBILITY IDEOGRAPH-FA37 +FA38 器 # CJK COMPATIBILITY IDEOGRAPH-FA38 +FA39 塀 # CJK COMPATIBILITY IDEOGRAPH-FA39 +FA3A 墨 # CJK COMPATIBILITY IDEOGRAPH-FA3A +FA3B 層 # CJK COMPATIBILITY IDEOGRAPH-FA3B +FA3C 屮 # CJK COMPATIBILITY IDEOGRAPH-FA3C +FA3D 悔 # CJK COMPATIBILITY IDEOGRAPH-FA3D +FA3E 慨 # CJK COMPATIBILITY IDEOGRAPH-FA3E +FA3F 憎 # CJK COMPATIBILITY IDEOGRAPH-FA3F +FA40 懲 # CJK COMPATIBILITY IDEOGRAPH-FA40 +FA41 敏 # CJK COMPATIBILITY IDEOGRAPH-FA41 +FA42 既 # CJK COMPATIBILITY IDEOGRAPH-FA42 +FA43 暑 # CJK COMPATIBILITY IDEOGRAPH-FA43 +FA44 梅 # CJK COMPATIBILITY IDEOGRAPH-FA44 +FA45 海 # CJK COMPATIBILITY IDEOGRAPH-FA45 +FA46 渚 # CJK COMPATIBILITY IDEOGRAPH-FA46 +FA47 漢 # CJK COMPATIBILITY IDEOGRAPH-FA47 +FA48 煮 # CJK COMPATIBILITY IDEOGRAPH-FA48 +FA49 爫 # CJK COMPATIBILITY IDEOGRAPH-FA49 +FA4A 琢 # CJK COMPATIBILITY IDEOGRAPH-FA4A +FA4B 碑 # CJK COMPATIBILITY IDEOGRAPH-FA4B +FA4C 社 # CJK COMPATIBILITY IDEOGRAPH-FA4C +FA4D 祉 # CJK COMPATIBILITY IDEOGRAPH-FA4D +FA4E 祈 # CJK COMPATIBILITY IDEOGRAPH-FA4E +FA4F 祐 # CJK COMPATIBILITY IDEOGRAPH-FA4F +FA50 祖 # CJK COMPATIBILITY IDEOGRAPH-FA50 +FA51 祝 # CJK COMPATIBILITY IDEOGRAPH-FA51 +FA52 禍 # CJK COMPATIBILITY IDEOGRAPH-FA52 +FA53 禎 # CJK COMPATIBILITY IDEOGRAPH-FA53 +FA54 穀 # CJK COMPATIBILITY IDEOGRAPH-FA54 +FA55 突 # CJK COMPATIBILITY IDEOGRAPH-FA55 +FA56 節 # CJK COMPATIBILITY IDEOGRAPH-FA56 +FA57 練 # CJK COMPATIBILITY IDEOGRAPH-FA57 +FA58 縉 # CJK COMPATIBILITY IDEOGRAPH-FA58 +FA59 繁 # CJK COMPATIBILITY IDEOGRAPH-FA59 +FA5A 署 # CJK COMPATIBILITY IDEOGRAPH-FA5A +FA5B 者 # CJK COMPATIBILITY IDEOGRAPH-FA5B +FA5C 臭 # CJK COMPATIBILITY IDEOGRAPH-FA5C +FA5D 艹 # CJK COMPATIBILITY IDEOGRAPH-FA5D +FA5E 艹 # CJK COMPATIBILITY IDEOGRAPH-FA5E +FA5F 著 # CJK COMPATIBILITY IDEOGRAPH-FA5F +FA60 褐 # CJK COMPATIBILITY IDEOGRAPH-FA60 +FA61 視 # CJK COMPATIBILITY IDEOGRAPH-FA61 +FA62 謁 # CJK COMPATIBILITY IDEOGRAPH-FA62 +FA63 謹 # CJK COMPATIBILITY IDEOGRAPH-FA63 +FA64 賓 # CJK COMPATIBILITY IDEOGRAPH-FA64 +FA65 贈 # CJK COMPATIBILITY IDEOGRAPH-FA65 +FA66 辶 # CJK COMPATIBILITY IDEOGRAPH-FA66 +FA67 逸 # CJK COMPATIBILITY IDEOGRAPH-FA67 +FA68 難 # CJK COMPATIBILITY IDEOGRAPH-FA68 +FA69 響 # CJK COMPATIBILITY IDEOGRAPH-FA69 +FA6A 頻 # CJK COMPATIBILITY IDEOGRAPH-FA6A +FB00 ff # LATIN SMALL LIGATURE FF +FB01 fi # LATIN SMALL LIGATURE FI +FB02 fl # LATIN SMALL LIGATURE FL +FB03 ffi # LATIN SMALL LIGATURE FFI +FB04 ffl # LATIN SMALL LIGATURE FFL +FB05 ſt # LATIN SMALL LIGATURE LONG S T +FB06 st # LATIN SMALL LIGATURE ST +FB13 մն # ARMENIAN SMALL LIGATURE MEN NOW +FB14 մե # ARMENIAN SMALL LIGATURE MEN ECH +FB15 մի # ARMENIAN SMALL LIGATURE MEN INI +FB16 վն # ARMENIAN SMALL LIGATURE VEW NOW +FB17 մխ # ARMENIAN SMALL LIGATURE MEN XEH +FB20 ע # HEBREW LETTER ALTERNATIVE AYIN +FB21 א # HEBREW LETTER WIDE ALEF +FB22 ד # HEBREW LETTER WIDE DALET +FB23 ה # HEBREW LETTER WIDE HE +FB24 כ # HEBREW LETTER WIDE KAF +FB25 ל # HEBREW LETTER WIDE LAMED +FB26 ם # HEBREW LETTER WIDE FINAL MEM +FB27 ר # HEBREW LETTER WIDE RESH +FB28 ת # HEBREW LETTER WIDE TAV +FB29 + # HEBREW LETTER ALTERNATIVE PLUS SIGN +FB4F אל # HEBREW LIGATURE ALEF LAMED +FE49 ‾ # DASHED OVERLINE +FE4A ‾ # CENTRELINE OVERLINE +FE4B ‾ # WAVY OVERLINE +FE4C ‾ # DOUBLE WAVY OVERLINE +FE4D _ # DASHED LOW LINE +FE4E _ # CENTRELINE LOW LINE +FE4F _ # WAVY LOW LINE +FE50 , # SMALL COMMA +FE51 、 # SMALL IDEOGRAPHIC COMMA +FE52 . # SMALL FULL STOP +FE54 ; # SMALL SEMICOLON +FE55 : # SMALL COLON +FE56 ? # SMALL QUESTION MARK +FE57 ! # SMALL EXCLAMATION MARK +FE58 — # SMALL EM DASH +FE59 ( # SMALL LEFT PARENTHESIS +FE5A ) # SMALL RIGHT PARENTHESIS +FE5B { # SMALL LEFT CURLY BRACKET +FE5C } # SMALL RIGHT CURLY BRACKET +FE5D 〔 # SMALL LEFT TORTOISE SHELL BRACKET +FE5E 〕 # SMALL RIGHT TORTOISE SHELL BRACKET +FE5F # # SMALL NUMBER SIGN +FE60 & # SMALL AMPERSAND +FE61 * # SMALL ASTERISK +FE62 + # SMALL PLUS SIGN +FE63 - # SMALL HYPHEN-MINUS +FE64 < # SMALL LESS-THAN SIGN +FE65 > # SMALL GREATER-THAN SIGN +FE66 = # SMALL EQUALS SIGN +FE68 \ # SMALL REVERSE SOLIDUS +FE69 $ # SMALL DOLLAR SIGN +FE6A % # SMALL PERCENT SIGN +FE6B @ # SMALL COMMERCIAL AT +FF01 ! # FULLWIDTH EXCLAMATION MARK +FF02 " # FULLWIDTH QUOTATION MARK +FF03 # # FULLWIDTH NUMBER SIGN +FF04 $ # FULLWIDTH DOLLAR SIGN +FF05 % # FULLWIDTH PERCENT SIGN +FF06 & # FULLWIDTH AMPERSAND +FF07 ' # FULLWIDTH APOSTROPHE +FF08 ( # FULLWIDTH LEFT PARENTHESIS +FF09 ) # FULLWIDTH RIGHT PARENTHESIS +FF0A * # FULLWIDTH ASTERISK +FF0B + # FULLWIDTH PLUS SIGN +FF0C , # FULLWIDTH COMMA +FF0D - # FULLWIDTH HYPHEN-MINUS +FF0E . # FULLWIDTH FULL STOP +FF0F / # FULLWIDTH SOLIDUS +FF10 0 # FULLWIDTH DIGIT ZERO +FF11 1 # FULLWIDTH DIGIT ONE +FF12 2 # FULLWIDTH DIGIT TWO +FF13 3 # FULLWIDTH DIGIT THREE +FF14 4 # FULLWIDTH DIGIT FOUR +FF15 5 # FULLWIDTH DIGIT FIVE +FF16 6 # FULLWIDTH DIGIT SIX +FF17 7 # FULLWIDTH DIGIT SEVEN +FF18 8 # FULLWIDTH DIGIT EIGHT +FF19 9 # FULLWIDTH DIGIT NINE +FF1A : # FULLWIDTH COLON +FF1B ; # FULLWIDTH SEMICOLON +FF1C < # FULLWIDTH LESS-THAN SIGN +FF1D = # FULLWIDTH EQUALS SIGN +FF1E > # FULLWIDTH GREATER-THAN SIGN +FF1F ? # FULLWIDTH QUESTION MARK +FF20 @ # FULLWIDTH COMMERCIAL AT +FF21 A # FULLWIDTH LATIN CAPITAL LETTER A +FF22 B # FULLWIDTH LATIN CAPITAL LETTER B +FF23 C # FULLWIDTH LATIN CAPITAL LETTER C +FF24 D # FULLWIDTH LATIN CAPITAL LETTER D +FF25 E # FULLWIDTH LATIN CAPITAL LETTER E +FF26 F # FULLWIDTH LATIN CAPITAL LETTER F +FF27 G # FULLWIDTH LATIN CAPITAL LETTER G +FF28 H # FULLWIDTH LATIN CAPITAL LETTER H +FF29 I # FULLWIDTH LATIN CAPITAL LETTER I +FF2A J # FULLWIDTH LATIN CAPITAL LETTER J +FF2B K # FULLWIDTH LATIN CAPITAL LETTER K +FF2C L # FULLWIDTH LATIN CAPITAL LETTER L +FF2D M # FULLWIDTH LATIN CAPITAL LETTER M +FF2E N # FULLWIDTH LATIN CAPITAL LETTER N +FF2F O # FULLWIDTH LATIN CAPITAL LETTER O +FF30 P # FULLWIDTH LATIN CAPITAL LETTER P +FF31 Q # FULLWIDTH LATIN CAPITAL LETTER Q +FF32 R # FULLWIDTH LATIN CAPITAL LETTER R +FF33 S # FULLWIDTH LATIN CAPITAL LETTER S +FF34 T # FULLWIDTH LATIN CAPITAL LETTER T +FF35 U # FULLWIDTH LATIN CAPITAL LETTER U +FF36 V # FULLWIDTH LATIN CAPITAL LETTER V +FF37 W # FULLWIDTH LATIN CAPITAL LETTER W +FF38 X # FULLWIDTH LATIN CAPITAL LETTER X +FF39 Y # FULLWIDTH LATIN CAPITAL LETTER Y +FF3A Z # FULLWIDTH LATIN CAPITAL LETTER Z +FF3B [ # FULLWIDTH LEFT SQUARE BRACKET +FF3C \ # FULLWIDTH REVERSE SOLIDUS +FF3D ] # FULLWIDTH RIGHT SQUARE BRACKET +FF3E ^ # FULLWIDTH CIRCUMFLEX ACCENT +FF3F _ # FULLWIDTH LOW LINE +FF40 ` # FULLWIDTH GRAVE ACCENT +FF41 a # FULLWIDTH LATIN SMALL LETTER A +FF42 b # FULLWIDTH LATIN SMALL LETTER B +FF43 c # FULLWIDTH LATIN SMALL LETTER C +FF44 d # FULLWIDTH LATIN SMALL LETTER D +FF45 e # FULLWIDTH LATIN SMALL LETTER E +FF46 f # FULLWIDTH LATIN SMALL LETTER F +FF47 g # FULLWIDTH LATIN SMALL LETTER G +FF48 h # FULLWIDTH LATIN SMALL LETTER H +FF49 i # FULLWIDTH LATIN SMALL LETTER I +FF4A j # FULLWIDTH LATIN SMALL LETTER J +FF4B k # FULLWIDTH LATIN SMALL LETTER K +FF4C l # FULLWIDTH LATIN SMALL LETTER L +FF4D m # FULLWIDTH LATIN SMALL LETTER M +FF4E n # FULLWIDTH LATIN SMALL LETTER N +FF4F o # FULLWIDTH LATIN SMALL LETTER O +FF50 p # FULLWIDTH LATIN SMALL LETTER P +FF51 q # FULLWIDTH LATIN SMALL LETTER Q +FF52 r # FULLWIDTH LATIN SMALL LETTER R +FF53 s # FULLWIDTH LATIN SMALL LETTER S +FF54 t # FULLWIDTH LATIN SMALL LETTER T +FF55 u # FULLWIDTH LATIN SMALL LETTER U +FF56 v # FULLWIDTH LATIN SMALL LETTER V +FF57 w # FULLWIDTH LATIN SMALL LETTER W +FF58 x # FULLWIDTH LATIN SMALL LETTER X +FF59 y # FULLWIDTH LATIN SMALL LETTER Y +FF5A z # FULLWIDTH LATIN SMALL LETTER Z +FF5B { # FULLWIDTH LEFT CURLY BRACKET +FF5C | # FULLWIDTH VERTICAL LINE +FF5D } # FULLWIDTH RIGHT CURLY BRACKET +FF5E ~ # FULLWIDTH TILDE +FF5F ⦅ # FULLWIDTH LEFT WHITE PARENTHESIS +FF60 ⦆ # FULLWIDTH RIGHT WHITE PARENTHESIS +FF61 。 # HALFWIDTH IDEOGRAPHIC FULL STOP +FF62 「 # HALFWIDTH LEFT CORNER BRACKET +FF63 」 # HALFWIDTH RIGHT CORNER BRACKET +FF64 、 # HALFWIDTH IDEOGRAPHIC COMMA +FF65 ・ # HALFWIDTH KATAKANA MIDDLE DOT +FF66 ヲ # HALFWIDTH KATAKANA LETTER WO +FF67 ァ # HALFWIDTH KATAKANA LETTER SMALL A +FF68 ィ # HALFWIDTH KATAKANA LETTER SMALL I +FF69 ゥ # HALFWIDTH KATAKANA LETTER SMALL U +FF6A ェ # HALFWIDTH KATAKANA LETTER SMALL E +FF6B ォ # HALFWIDTH KATAKANA LETTER SMALL O +FF6C ャ # HALFWIDTH KATAKANA LETTER SMALL YA +FF6D ュ # HALFWIDTH KATAKANA LETTER SMALL YU +FF6E ョ # HALFWIDTH KATAKANA LETTER SMALL YO +FF6F ッ # HALFWIDTH KATAKANA LETTER SMALL TU +FF70 ー # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK +FF71 ア # HALFWIDTH KATAKANA LETTER A +FF72 イ # HALFWIDTH KATAKANA LETTER I +FF73 ウ # HALFWIDTH KATAKANA LETTER U +FF74 エ # HALFWIDTH KATAKANA LETTER E +FF75 オ # HALFWIDTH KATAKANA LETTER O +FF76 カ # HALFWIDTH KATAKANA LETTER KA +FF77 キ # HALFWIDTH KATAKANA LETTER KI +FF78 ク # HALFWIDTH KATAKANA LETTER KU +FF79 ケ # HALFWIDTH KATAKANA LETTER KE +FF7A コ # HALFWIDTH KATAKANA LETTER KO +FF7B サ # HALFWIDTH KATAKANA LETTER SA +FF7C シ # HALFWIDTH KATAKANA LETTER SI +FF7D ス # HALFWIDTH KATAKANA LETTER SU +FF7E セ # HALFWIDTH KATAKANA LETTER SE +FF7F ソ # HALFWIDTH KATAKANA LETTER SO +FF80 タ # HALFWIDTH KATAKANA LETTER TA +FF81 チ # HALFWIDTH KATAKANA LETTER TI +FF82 ツ # HALFWIDTH KATAKANA LETTER TU +FF83 テ # HALFWIDTH KATAKANA LETTER TE +FF84 ト # HALFWIDTH KATAKANA LETTER TO +FF85 ナ # HALFWIDTH KATAKANA LETTER NA +FF86 ニ # HALFWIDTH KATAKANA LETTER NI +FF87 ヌ # HALFWIDTH KATAKANA LETTER NU +FF88 ネ # HALFWIDTH KATAKANA LETTER NE +FF89 ノ # HALFWIDTH KATAKANA LETTER NO +FF8A ハ # HALFWIDTH KATAKANA LETTER HA +FF8B ヒ # HALFWIDTH KATAKANA LETTER HI +FF8C フ # HALFWIDTH KATAKANA LETTER HU +FF8D ヘ # HALFWIDTH KATAKANA LETTER HE +FF8E ホ # HALFWIDTH KATAKANA LETTER HO +FF8F マ # HALFWIDTH KATAKANA LETTER MA +FF90 ミ # HALFWIDTH KATAKANA LETTER MI +FF91 ム # HALFWIDTH KATAKANA LETTER MU +FF92 メ # HALFWIDTH KATAKANA LETTER ME +FF93 モ # HALFWIDTH KATAKANA LETTER MO +FF94 ヤ # HALFWIDTH KATAKANA LETTER YA +FF95 ユ # HALFWIDTH KATAKANA LETTER YU +FF96 ヨ # HALFWIDTH KATAKANA LETTER YO +FF97 ラ # HALFWIDTH KATAKANA LETTER RA +FF98 リ # HALFWIDTH KATAKANA LETTER RI +FF99 ル # HALFWIDTH KATAKANA LETTER RU +FF9A レ # HALFWIDTH KATAKANA LETTER RE +FF9B ロ # HALFWIDTH KATAKANA LETTER RO +FF9C ワ # HALFWIDTH KATAKANA LETTER WA +FF9D ン # HALFWIDTH KATAKANA LETTER N +FF9E ゙ # HALFWIDTH KATAKANA VOICED SOUND MARK +FF9F ゚ # HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK +FFA0 ㅤ # HALFWIDTH HANGUL FILLER +FFA1 ㄱ # HALFWIDTH HANGUL LETTER KIYEOK +FFA2 ㄲ # HALFWIDTH HANGUL LETTER SSANGKIYEOK +FFA3 ㄳ # HALFWIDTH HANGUL LETTER KIYEOK-SIOS +FFA4 ㄴ # HALFWIDTH HANGUL LETTER NIEUN +FFA5 ㄵ # HALFWIDTH HANGUL LETTER NIEUN-CIEUC +FFA6 ㄶ # HALFWIDTH HANGUL LETTER NIEUN-HIEUH +FFA7 ㄷ # HALFWIDTH HANGUL LETTER TIKEUT +FFA8 ㄸ # HALFWIDTH HANGUL LETTER SSANGTIKEUT +FFA9 ㄹ # HALFWIDTH HANGUL LETTER RIEUL +FFAA ㄺ # HALFWIDTH HANGUL LETTER RIEUL-KIYEOK +FFAB ㄻ # HALFWIDTH HANGUL LETTER RIEUL-MIEUM +FFAC ㄼ # HALFWIDTH HANGUL LETTER RIEUL-PIEUP +FFAD ㄽ # HALFWIDTH HANGUL LETTER RIEUL-SIOS +FFAE ㄾ # HALFWIDTH HANGUL LETTER RIEUL-THIEUTH +FFAF ㄿ # HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH +FFB0 ㅀ # HALFWIDTH HANGUL LETTER RIEUL-HIEUH +FFB1 ㅁ # HALFWIDTH HANGUL LETTER MIEUM +FFB2 ㅂ # HALFWIDTH HANGUL LETTER PIEUP +FFB3 ㅃ # HALFWIDTH HANGUL LETTER SSANGPIEUP +FFB4 ㅄ # HALFWIDTH HANGUL LETTER PIEUP-SIOS +FFB5 ㅅ # HALFWIDTH HANGUL LETTER SIOS +FFB6 ㅆ # HALFWIDTH HANGUL LETTER SSANGSIOS +FFB7 ㅇ # HALFWIDTH HANGUL LETTER IEUNG +FFB8 ㅈ # HALFWIDTH HANGUL LETTER CIEUC +FFB9 ㅉ # HALFWIDTH HANGUL LETTER SSANGCIEUC +FFBA ㅊ # HALFWIDTH HANGUL LETTER CHIEUCH +FFBB ㅋ # HALFWIDTH HANGUL LETTER KHIEUKH +FFBC ㅌ # HALFWIDTH HANGUL LETTER THIEUTH +FFBD ㅍ # HALFWIDTH HANGUL LETTER PHIEUPH +FFBE ㅎ # HALFWIDTH HANGUL LETTER HIEUH +FFC2 ㅏ # HALFWIDTH HANGUL LETTER A +FFC3 ㅐ # HALFWIDTH HANGUL LETTER AE +FFC4 ㅑ # HALFWIDTH HANGUL LETTER YA +FFC5 ㅒ # HALFWIDTH HANGUL LETTER YAE +FFC6 ㅓ # HALFWIDTH HANGUL LETTER EO +FFC7 ㅔ # HALFWIDTH HANGUL LETTER E +FFCA ㅕ # HALFWIDTH HANGUL LETTER YEO +FFCB ㅖ # HALFWIDTH HANGUL LETTER YE +FFCC ㅗ # HALFWIDTH HANGUL LETTER O +FFCD ㅘ # HALFWIDTH HANGUL LETTER WA +FFCE ㅙ # HALFWIDTH HANGUL LETTER WAE +FFCF ㅚ # HALFWIDTH HANGUL LETTER OE +FFD2 ㅛ # HALFWIDTH HANGUL LETTER YO +FFD3 ㅜ # HALFWIDTH HANGUL LETTER U +FFD4 ㅝ # HALFWIDTH HANGUL LETTER WEO +FFD5 ㅞ # HALFWIDTH HANGUL LETTER WE +FFD6 ㅟ # HALFWIDTH HANGUL LETTER WI +FFD7 ㅠ # HALFWIDTH HANGUL LETTER YU +FFDA ㅡ # HALFWIDTH HANGUL LETTER EU +FFDB ㅢ # HALFWIDTH HANGUL LETTER YI +FFDC ㅣ # HALFWIDTH HANGUL LETTER I +FFE0 ¢ # FULLWIDTH CENT SIGN +FFE1 £ # FULLWIDTH POUND SIGN +FFE2 ¬ # FULLWIDTH NOT SIGN +FFE3 ¯ # FULLWIDTH MACRON +FFE4 ¦ # FULLWIDTH BROKEN BAR +FFE5 ¥ # FULLWIDTH YEN SIGN +FFE6 ₩ # FULLWIDTH WON SIGN +FFE8 │ # HALFWIDTH FORMS LIGHT VERTICAL +FFE9 ← # HALFWIDTH LEFTWARDS ARROW +FFEA ↑ # HALFWIDTH UPWARDS ARROW +FFEB → # HALFWIDTH RIGHTWARDS ARROW +FFEC ↓ # HALFWIDTH DOWNWARDS ARROW +FFED ■ # HALFWIDTH BLACK SQUARE +FFEE ○ # HALFWIDTH WHITE CIRCLE +1D400 A # MATHEMATICAL BOLD CAPITAL A +1D401 B # MATHEMATICAL BOLD CAPITAL B +1D402 C # MATHEMATICAL BOLD CAPITAL C +1D403 D # MATHEMATICAL BOLD CAPITAL D +1D404 E # MATHEMATICAL BOLD CAPITAL E +1D405 F # MATHEMATICAL BOLD CAPITAL F +1D406 G # MATHEMATICAL BOLD CAPITAL G +1D407 H # MATHEMATICAL BOLD CAPITAL H +1D408 I # MATHEMATICAL BOLD CAPITAL I +1D409 J # MATHEMATICAL BOLD CAPITAL J +1D40A K # MATHEMATICAL BOLD CAPITAL K +1D40B L # MATHEMATICAL BOLD CAPITAL L +1D40C M # MATHEMATICAL BOLD CAPITAL M +1D40D N # MATHEMATICAL BOLD CAPITAL N +1D40E O # MATHEMATICAL BOLD CAPITAL O +1D40F P # MATHEMATICAL BOLD CAPITAL P +1D410 Q # MATHEMATICAL BOLD CAPITAL Q +1D411 R # MATHEMATICAL BOLD CAPITAL R +1D412 S # MATHEMATICAL BOLD CAPITAL S +1D413 T # MATHEMATICAL BOLD CAPITAL T +1D414 U # MATHEMATICAL BOLD CAPITAL U +1D415 V # MATHEMATICAL BOLD CAPITAL V +1D416 W # MATHEMATICAL BOLD CAPITAL W +1D417 X # MATHEMATICAL BOLD CAPITAL X +1D418 Y # MATHEMATICAL BOLD CAPITAL Y +1D419 Z # MATHEMATICAL BOLD CAPITAL Z +1D41A a # MATHEMATICAL BOLD SMALL A +1D41B b # MATHEMATICAL BOLD SMALL B +1D41C c # MATHEMATICAL BOLD SMALL C +1D41D d # MATHEMATICAL BOLD SMALL D +1D41E e # MATHEMATICAL BOLD SMALL E +1D41F f # MATHEMATICAL BOLD SMALL F +1D420 g # MATHEMATICAL BOLD SMALL G +1D421 h # MATHEMATICAL BOLD SMALL H +1D422 i # MATHEMATICAL BOLD SMALL I +1D423 j # MATHEMATICAL BOLD SMALL J +1D424 k # MATHEMATICAL BOLD SMALL K +1D425 l # MATHEMATICAL BOLD SMALL L +1D426 m # MATHEMATICAL BOLD SMALL M +1D427 n # MATHEMATICAL BOLD SMALL N +1D428 o # MATHEMATICAL BOLD SMALL O +1D429 p # MATHEMATICAL BOLD SMALL P +1D42A q # MATHEMATICAL BOLD SMALL Q +1D42B r # MATHEMATICAL BOLD SMALL R +1D42C s # MATHEMATICAL BOLD SMALL S +1D42D t # MATHEMATICAL BOLD SMALL T +1D42E u # MATHEMATICAL BOLD SMALL U +1D42F v # MATHEMATICAL BOLD SMALL V +1D430 w # MATHEMATICAL BOLD SMALL W +1D431 x # MATHEMATICAL BOLD SMALL X +1D432 y # MATHEMATICAL BOLD SMALL Y +1D433 z # MATHEMATICAL BOLD SMALL Z +1D434 A # MATHEMATICAL ITALIC CAPITAL A +1D435 B # MATHEMATICAL ITALIC CAPITAL B +1D436 C # MATHEMATICAL ITALIC CAPITAL C +1D437 D # MATHEMATICAL ITALIC CAPITAL D +1D438 E # MATHEMATICAL ITALIC CAPITAL E +1D439 F # MATHEMATICAL ITALIC CAPITAL F +1D43A G # MATHEMATICAL ITALIC CAPITAL G +1D43B H # MATHEMATICAL ITALIC CAPITAL H +1D43C I # MATHEMATICAL ITALIC CAPITAL I +1D43D J # MATHEMATICAL ITALIC CAPITAL J +1D43E K # MATHEMATICAL ITALIC CAPITAL K +1D43F L # MATHEMATICAL ITALIC CAPITAL L +1D440 M # MATHEMATICAL ITALIC CAPITAL M +1D441 N # MATHEMATICAL ITALIC CAPITAL N +1D442 O # MATHEMATICAL ITALIC CAPITAL O +1D443 P # MATHEMATICAL ITALIC CAPITAL P +1D444 Q # MATHEMATICAL ITALIC CAPITAL Q +1D445 R # MATHEMATICAL ITALIC CAPITAL R +1D446 S # MATHEMATICAL ITALIC CAPITAL S +1D447 T # MATHEMATICAL ITALIC CAPITAL T +1D448 U # MATHEMATICAL ITALIC CAPITAL U +1D449 V # MATHEMATICAL ITALIC CAPITAL V +1D44A W # MATHEMATICAL ITALIC CAPITAL W +1D44B X # MATHEMATICAL ITALIC CAPITAL X +1D44C Y # MATHEMATICAL ITALIC CAPITAL Y +1D44D Z # MATHEMATICAL ITALIC CAPITAL Z +1D44E a # MATHEMATICAL ITALIC SMALL A +1D44F b # MATHEMATICAL ITALIC SMALL B +1D450 c # MATHEMATICAL ITALIC SMALL C +1D451 d # MATHEMATICAL ITALIC SMALL D +1D452 e # MATHEMATICAL ITALIC SMALL E +1D453 f # MATHEMATICAL ITALIC SMALL F +1D454 g # MATHEMATICAL ITALIC SMALL G +1D456 i # MATHEMATICAL ITALIC SMALL I +1D457 j # MATHEMATICAL ITALIC SMALL J +1D458 k # MATHEMATICAL ITALIC SMALL K +1D459 l # MATHEMATICAL ITALIC SMALL L +1D45A m # MATHEMATICAL ITALIC SMALL M +1D45B n # MATHEMATICAL ITALIC SMALL N +1D45C o # MATHEMATICAL ITALIC SMALL O +1D45D p # MATHEMATICAL ITALIC SMALL P +1D45E q # MATHEMATICAL ITALIC SMALL Q +1D45F r # MATHEMATICAL ITALIC SMALL R +1D460 s # MATHEMATICAL ITALIC SMALL S +1D461 t # MATHEMATICAL ITALIC SMALL T +1D462 u # MATHEMATICAL ITALIC SMALL U +1D463 v # MATHEMATICAL ITALIC SMALL V +1D464 w # MATHEMATICAL ITALIC SMALL W +1D465 x # MATHEMATICAL ITALIC SMALL X +1D466 y # MATHEMATICAL ITALIC SMALL Y +1D467 z # MATHEMATICAL ITALIC SMALL Z +1D468 A # MATHEMATICAL BOLD ITALIC CAPITAL A +1D469 B # MATHEMATICAL BOLD ITALIC CAPITAL B +1D46A C # MATHEMATICAL BOLD ITALIC CAPITAL C +1D46B D # MATHEMATICAL BOLD ITALIC CAPITAL D +1D46C E # MATHEMATICAL BOLD ITALIC CAPITAL E +1D46D F # MATHEMATICAL BOLD ITALIC CAPITAL F +1D46E G # MATHEMATICAL BOLD ITALIC CAPITAL G +1D46F H # MATHEMATICAL BOLD ITALIC CAPITAL H +1D470 I # MATHEMATICAL BOLD ITALIC CAPITAL I +1D471 J # MATHEMATICAL BOLD ITALIC CAPITAL J +1D472 K # MATHEMATICAL BOLD ITALIC CAPITAL K +1D473 L # MATHEMATICAL BOLD ITALIC CAPITAL L +1D474 M # MATHEMATICAL BOLD ITALIC CAPITAL M +1D475 N # MATHEMATICAL BOLD ITALIC CAPITAL N +1D476 O # MATHEMATICAL BOLD ITALIC CAPITAL O +1D477 P # MATHEMATICAL BOLD ITALIC CAPITAL P +1D478 Q # MATHEMATICAL BOLD ITALIC CAPITAL Q +1D479 R # MATHEMATICAL BOLD ITALIC CAPITAL R +1D47A S # MATHEMATICAL BOLD ITALIC CAPITAL S +1D47B T # MATHEMATICAL BOLD ITALIC CAPITAL T +1D47C U # MATHEMATICAL BOLD ITALIC CAPITAL U +1D47D V # MATHEMATICAL BOLD ITALIC CAPITAL V +1D47E W # MATHEMATICAL BOLD ITALIC CAPITAL W +1D47F X # MATHEMATICAL BOLD ITALIC CAPITAL X +1D480 Y # MATHEMATICAL BOLD ITALIC CAPITAL Y +1D481 Z # MATHEMATICAL BOLD ITALIC CAPITAL Z +1D482 a # MATHEMATICAL BOLD ITALIC SMALL A +1D483 b # MATHEMATICAL BOLD ITALIC SMALL B +1D484 c # MATHEMATICAL BOLD ITALIC SMALL C +1D485 d # MATHEMATICAL BOLD ITALIC SMALL D +1D486 e # MATHEMATICAL BOLD ITALIC SMALL E +1D487 f # MATHEMATICAL BOLD ITALIC SMALL F +1D488 g # MATHEMATICAL BOLD ITALIC SMALL G +1D489 h # MATHEMATICAL BOLD ITALIC SMALL H +1D48A i # MATHEMATICAL BOLD ITALIC SMALL I +1D48B j # MATHEMATICAL BOLD ITALIC SMALL J +1D48C k # MATHEMATICAL BOLD ITALIC SMALL K +1D48D l # MATHEMATICAL BOLD ITALIC SMALL L +1D48E m # MATHEMATICAL BOLD ITALIC SMALL M +1D48F n # MATHEMATICAL BOLD ITALIC SMALL N +1D490 o # MATHEMATICAL BOLD ITALIC SMALL O +1D491 p # MATHEMATICAL BOLD ITALIC SMALL P +1D492 q # MATHEMATICAL BOLD ITALIC SMALL Q +1D493 r # MATHEMATICAL BOLD ITALIC SMALL R +1D494 s # MATHEMATICAL BOLD ITALIC SMALL S +1D495 t # MATHEMATICAL BOLD ITALIC SMALL T +1D496 u # MATHEMATICAL BOLD ITALIC SMALL U +1D497 v # MATHEMATICAL BOLD ITALIC SMALL V +1D498 w # MATHEMATICAL BOLD ITALIC SMALL W +1D499 x # MATHEMATICAL BOLD ITALIC SMALL X +1D49A y # MATHEMATICAL BOLD ITALIC SMALL Y +1D49B z # MATHEMATICAL BOLD ITALIC SMALL Z +1D49C A # MATHEMATICAL SCRIPT CAPITAL A +1D49E C # MATHEMATICAL SCRIPT CAPITAL C +1D49F D # MATHEMATICAL SCRIPT CAPITAL D +1D4A2 G # MATHEMATICAL SCRIPT CAPITAL G +1D4A5 J # MATHEMATICAL SCRIPT CAPITAL J +1D4A6 K # MATHEMATICAL SCRIPT CAPITAL K +1D4A9 N # MATHEMATICAL SCRIPT CAPITAL N +1D4AA O # MATHEMATICAL SCRIPT CAPITAL O +1D4AB P # MATHEMATICAL SCRIPT CAPITAL P +1D4AC Q # MATHEMATICAL SCRIPT CAPITAL Q +1D4AE S # MATHEMATICAL SCRIPT CAPITAL S +1D4AF T # MATHEMATICAL SCRIPT CAPITAL T +1D4B0 U # MATHEMATICAL SCRIPT CAPITAL U +1D4B1 V # MATHEMATICAL SCRIPT CAPITAL V +1D4B2 W # MATHEMATICAL SCRIPT CAPITAL W +1D4B3 X # MATHEMATICAL SCRIPT CAPITAL X +1D4B4 Y # MATHEMATICAL SCRIPT CAPITAL Y +1D4B5 Z # MATHEMATICAL SCRIPT CAPITAL Z +1D4B6 a # MATHEMATICAL SCRIPT SMALL A +1D4B7 b # MATHEMATICAL SCRIPT SMALL B +1D4B8 c # MATHEMATICAL SCRIPT SMALL C +1D4B9 d # MATHEMATICAL SCRIPT SMALL D +1D4BB f # MATHEMATICAL SCRIPT SMALL F +1D4BD h # MATHEMATICAL SCRIPT SMALL H +1D4BE i # MATHEMATICAL SCRIPT SMALL I +1D4BF j # MATHEMATICAL SCRIPT SMALL J +1D4C0 k # MATHEMATICAL SCRIPT SMALL K +1D4C1 l # MATHEMATICAL SCRIPT SMALL L +1D4C2 m # MATHEMATICAL SCRIPT SMALL M +1D4C3 n # MATHEMATICAL SCRIPT SMALL N +1D4C5 p # MATHEMATICAL SCRIPT SMALL P +1D4C6 q # MATHEMATICAL SCRIPT SMALL Q +1D4C7 r # MATHEMATICAL SCRIPT SMALL R +1D4C8 s # MATHEMATICAL SCRIPT SMALL S +1D4C9 t # MATHEMATICAL SCRIPT SMALL T +1D4CA u # MATHEMATICAL SCRIPT SMALL U +1D4CB v # MATHEMATICAL SCRIPT SMALL V +1D4CC w # MATHEMATICAL SCRIPT SMALL W +1D4CD x # MATHEMATICAL SCRIPT SMALL X +1D4CE y # MATHEMATICAL SCRIPT SMALL Y +1D4CF z # MATHEMATICAL SCRIPT SMALL Z +1D4D0 A # MATHEMATICAL BOLD SCRIPT CAPITAL A +1D4D1 B # MATHEMATICAL BOLD SCRIPT CAPITAL B +1D4D2 C # MATHEMATICAL BOLD SCRIPT CAPITAL C +1D4D3 D # MATHEMATICAL BOLD SCRIPT CAPITAL D +1D4D4 E # MATHEMATICAL BOLD SCRIPT CAPITAL E +1D4D5 F # MATHEMATICAL BOLD SCRIPT CAPITAL F +1D4D6 G # MATHEMATICAL BOLD SCRIPT CAPITAL G +1D4D7 H # MATHEMATICAL BOLD SCRIPT CAPITAL H +1D4D8 I # MATHEMATICAL BOLD SCRIPT CAPITAL I +1D4D9 J # MATHEMATICAL BOLD SCRIPT CAPITAL J +1D4DA K # MATHEMATICAL BOLD SCRIPT CAPITAL K +1D4DB L # MATHEMATICAL BOLD SCRIPT CAPITAL L +1D4DC M # MATHEMATICAL BOLD SCRIPT CAPITAL M +1D4DD N # MATHEMATICAL BOLD SCRIPT CAPITAL N +1D4DE O # MATHEMATICAL BOLD SCRIPT CAPITAL O +1D4DF P # MATHEMATICAL BOLD SCRIPT CAPITAL P +1D4E0 Q # MATHEMATICAL BOLD SCRIPT CAPITAL Q +1D4E1 R # MATHEMATICAL BOLD SCRIPT CAPITAL R +1D4E2 S # MATHEMATICAL BOLD SCRIPT CAPITAL S +1D4E3 T # MATHEMATICAL BOLD SCRIPT CAPITAL T +1D4E4 U # MATHEMATICAL BOLD SCRIPT CAPITAL U +1D4E5 V # MATHEMATICAL BOLD SCRIPT CAPITAL V +1D4E6 W # MATHEMATICAL BOLD SCRIPT CAPITAL W +1D4E7 X # MATHEMATICAL BOLD SCRIPT CAPITAL X +1D4E8 Y # MATHEMATICAL BOLD SCRIPT CAPITAL Y +1D4E9 Z # MATHEMATICAL BOLD SCRIPT CAPITAL Z +1D4EA a # MATHEMATICAL BOLD SCRIPT SMALL A +1D4EB b # MATHEMATICAL BOLD SCRIPT SMALL B +1D4EC c # MATHEMATICAL BOLD SCRIPT SMALL C +1D4ED d # MATHEMATICAL BOLD SCRIPT SMALL D +1D4EE e # MATHEMATICAL BOLD SCRIPT SMALL E +1D4EF f # MATHEMATICAL BOLD SCRIPT SMALL F +1D4F0 g # MATHEMATICAL BOLD SCRIPT SMALL G +1D4F1 h # MATHEMATICAL BOLD SCRIPT SMALL H +1D4F2 i # MATHEMATICAL BOLD SCRIPT SMALL I +1D4F3 j # MATHEMATICAL BOLD SCRIPT SMALL J +1D4F4 k # MATHEMATICAL BOLD SCRIPT SMALL K +1D4F5 l # MATHEMATICAL BOLD SCRIPT SMALL L +1D4F6 m # MATHEMATICAL BOLD SCRIPT SMALL M +1D4F7 n # MATHEMATICAL BOLD SCRIPT SMALL N +1D4F8 o # MATHEMATICAL BOLD SCRIPT SMALL O +1D4F9 p # MATHEMATICAL BOLD SCRIPT SMALL P +1D4FA q # MATHEMATICAL BOLD SCRIPT SMALL Q +1D4FB r # MATHEMATICAL BOLD SCRIPT SMALL R +1D4FC s # MATHEMATICAL BOLD SCRIPT SMALL S +1D4FD t # MATHEMATICAL BOLD SCRIPT SMALL T +1D4FE u # MATHEMATICAL BOLD SCRIPT SMALL U +1D4FF v # MATHEMATICAL BOLD SCRIPT SMALL V +1D500 w # MATHEMATICAL BOLD SCRIPT SMALL W +1D501 x # MATHEMATICAL BOLD SCRIPT SMALL X +1D502 y # MATHEMATICAL BOLD SCRIPT SMALL Y +1D503 z # MATHEMATICAL BOLD SCRIPT SMALL Z +1D504 A # MATHEMATICAL FRAKTUR CAPITAL A +1D505 B # MATHEMATICAL FRAKTUR CAPITAL B +1D507 D # MATHEMATICAL FRAKTUR CAPITAL D +1D508 E # MATHEMATICAL FRAKTUR CAPITAL E +1D509 F # MATHEMATICAL FRAKTUR CAPITAL F +1D50A G # MATHEMATICAL FRAKTUR CAPITAL G +1D50D J # MATHEMATICAL FRAKTUR CAPITAL J +1D50E K # MATHEMATICAL FRAKTUR CAPITAL K +1D50F L # MATHEMATICAL FRAKTUR CAPITAL L +1D510 M # MATHEMATICAL FRAKTUR CAPITAL M +1D511 N # MATHEMATICAL FRAKTUR CAPITAL N +1D512 O # MATHEMATICAL FRAKTUR CAPITAL O +1D513 P # MATHEMATICAL FRAKTUR CAPITAL P +1D514 Q # MATHEMATICAL FRAKTUR CAPITAL Q +1D516 S # MATHEMATICAL FRAKTUR CAPITAL S +1D517 T # MATHEMATICAL FRAKTUR CAPITAL T +1D518 U # MATHEMATICAL FRAKTUR CAPITAL U +1D519 V # MATHEMATICAL FRAKTUR CAPITAL V +1D51A W # MATHEMATICAL FRAKTUR CAPITAL W +1D51B X # MATHEMATICAL FRAKTUR CAPITAL X +1D51C Y # MATHEMATICAL FRAKTUR CAPITAL Y +1D51E a # MATHEMATICAL FRAKTUR SMALL A +1D51F b # MATHEMATICAL FRAKTUR SMALL B +1D520 c # MATHEMATICAL FRAKTUR SMALL C +1D521 d # MATHEMATICAL FRAKTUR SMALL D +1D522 e # MATHEMATICAL FRAKTUR SMALL E +1D523 f # MATHEMATICAL FRAKTUR SMALL F +1D524 g # MATHEMATICAL FRAKTUR SMALL G +1D525 h # MATHEMATICAL FRAKTUR SMALL H +1D526 i # MATHEMATICAL FRAKTUR SMALL I +1D527 j # MATHEMATICAL FRAKTUR SMALL J +1D528 k # MATHEMATICAL FRAKTUR SMALL K +1D529 l # MATHEMATICAL FRAKTUR SMALL L +1D52A m # MATHEMATICAL FRAKTUR SMALL M +1D52B n # MATHEMATICAL FRAKTUR SMALL N +1D52C o # MATHEMATICAL FRAKTUR SMALL O +1D52D p # MATHEMATICAL FRAKTUR SMALL P +1D52E q # MATHEMATICAL FRAKTUR SMALL Q +1D52F r # MATHEMATICAL FRAKTUR SMALL R +1D530 s # MATHEMATICAL FRAKTUR SMALL S +1D531 t # MATHEMATICAL FRAKTUR SMALL T +1D532 u # MATHEMATICAL FRAKTUR SMALL U +1D533 v # MATHEMATICAL FRAKTUR SMALL V +1D534 w # MATHEMATICAL FRAKTUR SMALL W +1D535 x # MATHEMATICAL FRAKTUR SMALL X +1D536 y # MATHEMATICAL FRAKTUR SMALL Y +1D537 z # MATHEMATICAL FRAKTUR SMALL Z +1D538 A # MATHEMATICAL DOUBLE-STRUCK CAPITAL A +1D539 B # MATHEMATICAL DOUBLE-STRUCK CAPITAL B +1D53B D # MATHEMATICAL DOUBLE-STRUCK CAPITAL D +1D53C E # MATHEMATICAL DOUBLE-STRUCK CAPITAL E +1D53D F # MATHEMATICAL DOUBLE-STRUCK CAPITAL F +1D53E G # MATHEMATICAL DOUBLE-STRUCK CAPITAL G +1D540 I # MATHEMATICAL DOUBLE-STRUCK CAPITAL I +1D541 J # MATHEMATICAL DOUBLE-STRUCK CAPITAL J +1D542 K # MATHEMATICAL DOUBLE-STRUCK CAPITAL K +1D543 L # MATHEMATICAL DOUBLE-STRUCK CAPITAL L +1D544 M # MATHEMATICAL DOUBLE-STRUCK CAPITAL M +1D546 O # MATHEMATICAL DOUBLE-STRUCK CAPITAL O +1D54A S # MATHEMATICAL DOUBLE-STRUCK CAPITAL S +1D54B T # MATHEMATICAL DOUBLE-STRUCK CAPITAL T +1D54C U # MATHEMATICAL DOUBLE-STRUCK CAPITAL U +1D54D V # MATHEMATICAL DOUBLE-STRUCK CAPITAL V +1D54E W # MATHEMATICAL DOUBLE-STRUCK CAPITAL W +1D54F X # MATHEMATICAL DOUBLE-STRUCK CAPITAL X +1D550 Y # MATHEMATICAL DOUBLE-STRUCK CAPITAL Y +1D552 a # MATHEMATICAL DOUBLE-STRUCK SMALL A +1D553 b # MATHEMATICAL DOUBLE-STRUCK SMALL B +1D554 c # MATHEMATICAL DOUBLE-STRUCK SMALL C +1D555 d # MATHEMATICAL DOUBLE-STRUCK SMALL D +1D556 e # MATHEMATICAL DOUBLE-STRUCK SMALL E +1D557 f # MATHEMATICAL DOUBLE-STRUCK SMALL F +1D558 g # MATHEMATICAL DOUBLE-STRUCK SMALL G +1D559 h # MATHEMATICAL DOUBLE-STRUCK SMALL H +1D55A i # MATHEMATICAL DOUBLE-STRUCK SMALL I +1D55B j # MATHEMATICAL DOUBLE-STRUCK SMALL J +1D55C k # MATHEMATICAL DOUBLE-STRUCK SMALL K +1D55D l # MATHEMATICAL DOUBLE-STRUCK SMALL L +1D55E m # MATHEMATICAL DOUBLE-STRUCK SMALL M +1D55F n # MATHEMATICAL DOUBLE-STRUCK SMALL N +1D560 o # MATHEMATICAL DOUBLE-STRUCK SMALL O +1D561 p # MATHEMATICAL DOUBLE-STRUCK SMALL P +1D562 q # MATHEMATICAL DOUBLE-STRUCK SMALL Q +1D563 r # MATHEMATICAL DOUBLE-STRUCK SMALL R +1D564 s # MATHEMATICAL DOUBLE-STRUCK SMALL S +1D565 t # MATHEMATICAL DOUBLE-STRUCK SMALL T +1D566 u # MATHEMATICAL DOUBLE-STRUCK SMALL U +1D567 v # MATHEMATICAL DOUBLE-STRUCK SMALL V +1D568 w # MATHEMATICAL DOUBLE-STRUCK SMALL W +1D569 x # MATHEMATICAL DOUBLE-STRUCK SMALL X +1D56A y # MATHEMATICAL DOUBLE-STRUCK SMALL Y +1D56B z # MATHEMATICAL DOUBLE-STRUCK SMALL Z +1D56C A # MATHEMATICAL BOLD FRAKTUR CAPITAL A +1D56D B # MATHEMATICAL BOLD FRAKTUR CAPITAL B +1D56E C # MATHEMATICAL BOLD FRAKTUR CAPITAL C +1D56F D # MATHEMATICAL BOLD FRAKTUR CAPITAL D +1D570 E # MATHEMATICAL BOLD FRAKTUR CAPITAL E +1D571 F # MATHEMATICAL BOLD FRAKTUR CAPITAL F +1D572 G # MATHEMATICAL BOLD FRAKTUR CAPITAL G +1D573 H # MATHEMATICAL BOLD FRAKTUR CAPITAL H +1D574 I # MATHEMATICAL BOLD FRAKTUR CAPITAL I +1D575 J # MATHEMATICAL BOLD FRAKTUR CAPITAL J +1D576 K # MATHEMATICAL BOLD FRAKTUR CAPITAL K +1D577 L # MATHEMATICAL BOLD FRAKTUR CAPITAL L +1D578 M # MATHEMATICAL BOLD FRAKTUR CAPITAL M +1D579 N # MATHEMATICAL BOLD FRAKTUR CAPITAL N +1D57A O # MATHEMATICAL BOLD FRAKTUR CAPITAL O +1D57B P # MATHEMATICAL BOLD FRAKTUR CAPITAL P +1D57C Q # MATHEMATICAL BOLD FRAKTUR CAPITAL Q +1D57D R # MATHEMATICAL BOLD FRAKTUR CAPITAL R +1D57E S # MATHEMATICAL BOLD FRAKTUR CAPITAL S +1D57F T # MATHEMATICAL BOLD FRAKTUR CAPITAL T +1D580 U # MATHEMATICAL BOLD FRAKTUR CAPITAL U +1D581 V # MATHEMATICAL BOLD FRAKTUR CAPITAL V +1D582 W # MATHEMATICAL BOLD FRAKTUR CAPITAL W +1D583 X # MATHEMATICAL BOLD FRAKTUR CAPITAL X +1D584 Y # MATHEMATICAL BOLD FRAKTUR CAPITAL Y +1D585 Z # MATHEMATICAL BOLD FRAKTUR CAPITAL Z +1D586 a # MATHEMATICAL BOLD FRAKTUR SMALL A +1D587 b # MATHEMATICAL BOLD FRAKTUR SMALL B +1D588 c # MATHEMATICAL BOLD FRAKTUR SMALL C +1D589 d # MATHEMATICAL BOLD FRAKTUR SMALL D +1D58A e # MATHEMATICAL BOLD FRAKTUR SMALL E +1D58B f # MATHEMATICAL BOLD FRAKTUR SMALL F +1D58C g # MATHEMATICAL BOLD FRAKTUR SMALL G +1D58D h # MATHEMATICAL BOLD FRAKTUR SMALL H +1D58E i # MATHEMATICAL BOLD FRAKTUR SMALL I +1D58F j # MATHEMATICAL BOLD FRAKTUR SMALL J +1D590 k # MATHEMATICAL BOLD FRAKTUR SMALL K +1D591 l # MATHEMATICAL BOLD FRAKTUR SMALL L +1D592 m # MATHEMATICAL BOLD FRAKTUR SMALL M +1D593 n # MATHEMATICAL BOLD FRAKTUR SMALL N +1D594 o # MATHEMATICAL BOLD FRAKTUR SMALL O +1D595 p # MATHEMATICAL BOLD FRAKTUR SMALL P +1D596 q # MATHEMATICAL BOLD FRAKTUR SMALL Q +1D597 r # MATHEMATICAL BOLD FRAKTUR SMALL R +1D598 s # MATHEMATICAL BOLD FRAKTUR SMALL S +1D599 t # MATHEMATICAL BOLD FRAKTUR SMALL T +1D59A u # MATHEMATICAL BOLD FRAKTUR SMALL U +1D59B v # MATHEMATICAL BOLD FRAKTUR SMALL V +1D59C w # MATHEMATICAL BOLD FRAKTUR SMALL W +1D59D x # MATHEMATICAL BOLD FRAKTUR SMALL X +1D59E y # MATHEMATICAL BOLD FRAKTUR SMALL Y +1D59F z # MATHEMATICAL BOLD FRAKTUR SMALL Z +1D5A0 A # MATHEMATICAL SANS-SERIF CAPITAL A +1D5A1 B # MATHEMATICAL SANS-SERIF CAPITAL B +1D5A2 C # MATHEMATICAL SANS-SERIF CAPITAL C +1D5A3 D # MATHEMATICAL SANS-SERIF CAPITAL D +1D5A4 E # MATHEMATICAL SANS-SERIF CAPITAL E +1D5A5 F # MATHEMATICAL SANS-SERIF CAPITAL F +1D5A6 G # MATHEMATICAL SANS-SERIF CAPITAL G +1D5A7 H # MATHEMATICAL SANS-SERIF CAPITAL H +1D5A8 I # MATHEMATICAL SANS-SERIF CAPITAL I +1D5A9 J # MATHEMATICAL SANS-SERIF CAPITAL J +1D5AA K # MATHEMATICAL SANS-SERIF CAPITAL K +1D5AB L # MATHEMATICAL SANS-SERIF CAPITAL L +1D5AC M # MATHEMATICAL SANS-SERIF CAPITAL M +1D5AD N # MATHEMATICAL SANS-SERIF CAPITAL N +1D5AE O # MATHEMATICAL SANS-SERIF CAPITAL O +1D5AF P # MATHEMATICAL SANS-SERIF CAPITAL P +1D5B0 Q # MATHEMATICAL SANS-SERIF CAPITAL Q +1D5B1 R # MATHEMATICAL SANS-SERIF CAPITAL R +1D5B2 S # MATHEMATICAL SANS-SERIF CAPITAL S +1D5B3 T # MATHEMATICAL SANS-SERIF CAPITAL T +1D5B4 U # MATHEMATICAL SANS-SERIF CAPITAL U +1D5B5 V # MATHEMATICAL SANS-SERIF CAPITAL V +1D5B6 W # MATHEMATICAL SANS-SERIF CAPITAL W +1D5B7 X # MATHEMATICAL SANS-SERIF CAPITAL X +1D5B8 Y # MATHEMATICAL SANS-SERIF CAPITAL Y +1D5B9 Z # MATHEMATICAL SANS-SERIF CAPITAL Z +1D5BA a # MATHEMATICAL SANS-SERIF SMALL A +1D5BB b # MATHEMATICAL SANS-SERIF SMALL B +1D5BC c # MATHEMATICAL SANS-SERIF SMALL C +1D5BD d # MATHEMATICAL SANS-SERIF SMALL D +1D5BE e # MATHEMATICAL SANS-SERIF SMALL E +1D5BF f # MATHEMATICAL SANS-SERIF SMALL F +1D5C0 g # MATHEMATICAL SANS-SERIF SMALL G +1D5C1 h # MATHEMATICAL SANS-SERIF SMALL H +1D5C2 i # MATHEMATICAL SANS-SERIF SMALL I +1D5C3 j # MATHEMATICAL SANS-SERIF SMALL J +1D5C4 k # MATHEMATICAL SANS-SERIF SMALL K +1D5C5 l # MATHEMATICAL SANS-SERIF SMALL L +1D5C6 m # MATHEMATICAL SANS-SERIF SMALL M +1D5C7 n # MATHEMATICAL SANS-SERIF SMALL N +1D5C8 o # MATHEMATICAL SANS-SERIF SMALL O +1D5C9 p # MATHEMATICAL SANS-SERIF SMALL P +1D5CA q # MATHEMATICAL SANS-SERIF SMALL Q +1D5CB r # MATHEMATICAL SANS-SERIF SMALL R +1D5CC s # MATHEMATICAL SANS-SERIF SMALL S +1D5CD t # MATHEMATICAL SANS-SERIF SMALL T +1D5CE u # MATHEMATICAL SANS-SERIF SMALL U +1D5CF v # MATHEMATICAL SANS-SERIF SMALL V +1D5D0 w # MATHEMATICAL SANS-SERIF SMALL W +1D5D1 x # MATHEMATICAL SANS-SERIF SMALL X +1D5D2 y # MATHEMATICAL SANS-SERIF SMALL Y +1D5D3 z # MATHEMATICAL SANS-SERIF SMALL Z +1D5D4 A # MATHEMATICAL SANS-SERIF BOLD CAPITAL A +1D5D5 B # MATHEMATICAL SANS-SERIF BOLD CAPITAL B +1D5D6 C # MATHEMATICAL SANS-SERIF BOLD CAPITAL C +1D5D7 D # MATHEMATICAL SANS-SERIF BOLD CAPITAL D +1D5D8 E # MATHEMATICAL SANS-SERIF BOLD CAPITAL E +1D5D9 F # MATHEMATICAL SANS-SERIF BOLD CAPITAL F +1D5DA G # MATHEMATICAL SANS-SERIF BOLD CAPITAL G +1D5DB H # MATHEMATICAL SANS-SERIF BOLD CAPITAL H +1D5DC I # MATHEMATICAL SANS-SERIF BOLD CAPITAL I +1D5DD J # MATHEMATICAL SANS-SERIF BOLD CAPITAL J +1D5DE K # MATHEMATICAL SANS-SERIF BOLD CAPITAL K +1D5DF L # MATHEMATICAL SANS-SERIF BOLD CAPITAL L +1D5E0 M # MATHEMATICAL SANS-SERIF BOLD CAPITAL M +1D5E1 N # MATHEMATICAL SANS-SERIF BOLD CAPITAL N +1D5E2 O # MATHEMATICAL SANS-SERIF BOLD CAPITAL O +1D5E3 P # MATHEMATICAL SANS-SERIF BOLD CAPITAL P +1D5E4 Q # MATHEMATICAL SANS-SERIF BOLD CAPITAL Q +1D5E5 R # MATHEMATICAL SANS-SERIF BOLD CAPITAL R +1D5E6 S # MATHEMATICAL SANS-SERIF BOLD CAPITAL S +1D5E7 T # MATHEMATICAL SANS-SERIF BOLD CAPITAL T +1D5E8 U # MATHEMATICAL SANS-SERIF BOLD CAPITAL U +1D5E9 V # MATHEMATICAL SANS-SERIF BOLD CAPITAL V +1D5EA W # MATHEMATICAL SANS-SERIF BOLD CAPITAL W +1D5EB X # MATHEMATICAL SANS-SERIF BOLD CAPITAL X +1D5EC Y # MATHEMATICAL SANS-SERIF BOLD CAPITAL Y +1D5ED Z # MATHEMATICAL SANS-SERIF BOLD CAPITAL Z +1D5EE a # MATHEMATICAL SANS-SERIF BOLD SMALL A +1D5EF b # MATHEMATICAL SANS-SERIF BOLD SMALL B +1D5F0 c # MATHEMATICAL SANS-SERIF BOLD SMALL C +1D5F1 d # MATHEMATICAL SANS-SERIF BOLD SMALL D +1D5F2 e # MATHEMATICAL SANS-SERIF BOLD SMALL E +1D5F3 f # MATHEMATICAL SANS-SERIF BOLD SMALL F +1D5F4 g # MATHEMATICAL SANS-SERIF BOLD SMALL G +1D5F5 h # MATHEMATICAL SANS-SERIF BOLD SMALL H +1D5F6 i # MATHEMATICAL SANS-SERIF BOLD SMALL I +1D5F7 j # MATHEMATICAL SANS-SERIF BOLD SMALL J +1D5F8 k # MATHEMATICAL SANS-SERIF BOLD SMALL K +1D5F9 l # MATHEMATICAL SANS-SERIF BOLD SMALL L +1D5FA m # MATHEMATICAL SANS-SERIF BOLD SMALL M +1D5FB n # MATHEMATICAL SANS-SERIF BOLD SMALL N +1D5FC o # MATHEMATICAL SANS-SERIF BOLD SMALL O +1D5FD p # MATHEMATICAL SANS-SERIF BOLD SMALL P +1D5FE q # MATHEMATICAL SANS-SERIF BOLD SMALL Q +1D5FF r # MATHEMATICAL SANS-SERIF BOLD SMALL R +1D600 s # MATHEMATICAL SANS-SERIF BOLD SMALL S +1D601 t # MATHEMATICAL SANS-SERIF BOLD SMALL T +1D602 u # MATHEMATICAL SANS-SERIF BOLD SMALL U +1D603 v # MATHEMATICAL SANS-SERIF BOLD SMALL V +1D604 w # MATHEMATICAL SANS-SERIF BOLD SMALL W +1D605 x # MATHEMATICAL SANS-SERIF BOLD SMALL X +1D606 y # MATHEMATICAL SANS-SERIF BOLD SMALL Y +1D607 z # MATHEMATICAL SANS-SERIF BOLD SMALL Z +1D608 A # MATHEMATICAL SANS-SERIF ITALIC CAPITAL A +1D609 B # MATHEMATICAL SANS-SERIF ITALIC CAPITAL B +1D60A C # MATHEMATICAL SANS-SERIF ITALIC CAPITAL C +1D60B D # MATHEMATICAL SANS-SERIF ITALIC CAPITAL D +1D60C E # MATHEMATICAL SANS-SERIF ITALIC CAPITAL E +1D60D F # MATHEMATICAL SANS-SERIF ITALIC CAPITAL F +1D60E G # MATHEMATICAL SANS-SERIF ITALIC CAPITAL G +1D60F H # MATHEMATICAL SANS-SERIF ITALIC CAPITAL H +1D610 I # MATHEMATICAL SANS-SERIF ITALIC CAPITAL I +1D611 J # MATHEMATICAL SANS-SERIF ITALIC CAPITAL J +1D612 K # MATHEMATICAL SANS-SERIF ITALIC CAPITAL K +1D613 L # MATHEMATICAL SANS-SERIF ITALIC CAPITAL L +1D614 M # MATHEMATICAL SANS-SERIF ITALIC CAPITAL M +1D615 N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL N +1D616 O # MATHEMATICAL SANS-SERIF ITALIC CAPITAL O +1D617 P # MATHEMATICAL SANS-SERIF ITALIC CAPITAL P +1D618 Q # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q +1D619 R # MATHEMATICAL SANS-SERIF ITALIC CAPITAL R +1D61A S # MATHEMATICAL SANS-SERIF ITALIC CAPITAL S +1D61B T # MATHEMATICAL SANS-SERIF ITALIC CAPITAL T +1D61C U # MATHEMATICAL SANS-SERIF ITALIC CAPITAL U +1D61D V # MATHEMATICAL SANS-SERIF ITALIC CAPITAL V +1D61E W # MATHEMATICAL SANS-SERIF ITALIC CAPITAL W +1D61F X # MATHEMATICAL SANS-SERIF ITALIC CAPITAL X +1D620 Y # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y +1D621 Z # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z +1D622 a # MATHEMATICAL SANS-SERIF ITALIC SMALL A +1D623 b # MATHEMATICAL SANS-SERIF ITALIC SMALL B +1D624 c # MATHEMATICAL SANS-SERIF ITALIC SMALL C +1D625 d # MATHEMATICAL SANS-SERIF ITALIC SMALL D +1D626 e # MATHEMATICAL SANS-SERIF ITALIC SMALL E +1D627 f # MATHEMATICAL SANS-SERIF ITALIC SMALL F +1D628 g # MATHEMATICAL SANS-SERIF ITALIC SMALL G +1D629 h # MATHEMATICAL SANS-SERIF ITALIC SMALL H +1D62A i # MATHEMATICAL SANS-SERIF ITALIC SMALL I +1D62B j # MATHEMATICAL SANS-SERIF ITALIC SMALL J +1D62C k # MATHEMATICAL SANS-SERIF ITALIC SMALL K +1D62D l # MATHEMATICAL SANS-SERIF ITALIC SMALL L +1D62E m # MATHEMATICAL SANS-SERIF ITALIC SMALL M +1D62F n # MATHEMATICAL SANS-SERIF ITALIC SMALL N +1D630 o # MATHEMATICAL SANS-SERIF ITALIC SMALL O +1D631 p # MATHEMATICAL SANS-SERIF ITALIC SMALL P +1D632 q # MATHEMATICAL SANS-SERIF ITALIC SMALL Q +1D633 r # MATHEMATICAL SANS-SERIF ITALIC SMALL R +1D634 s # MATHEMATICAL SANS-SERIF ITALIC SMALL S +1D635 t # MATHEMATICAL SANS-SERIF ITALIC SMALL T +1D636 u # MATHEMATICAL SANS-SERIF ITALIC SMALL U +1D637 v # MATHEMATICAL SANS-SERIF ITALIC SMALL V +1D638 w # MATHEMATICAL SANS-SERIF ITALIC SMALL W +1D639 x # MATHEMATICAL SANS-SERIF ITALIC SMALL X +1D63A y # MATHEMATICAL SANS-SERIF ITALIC SMALL Y +1D63B z # MATHEMATICAL SANS-SERIF ITALIC SMALL Z +1D63C A # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A +1D63D B # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B +1D63E C # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C +1D63F D # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D +1D640 E # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E +1D641 F # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F +1D642 G # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G +1D643 H # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H +1D644 I # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I +1D645 J # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J +1D646 K # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K +1D647 L # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L +1D648 M # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M +1D649 N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N +1D64A O # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O +1D64B P # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P +1D64C Q # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q +1D64D R # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R +1D64E S # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S +1D64F T # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T +1D650 U # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U +1D651 V # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V +1D652 W # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W +1D653 X # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X +1D654 Y # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y +1D655 Z # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z +1D656 a # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A +1D657 b # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B +1D658 c # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C +1D659 d # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D +1D65A e # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E +1D65B f # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F +1D65C g # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G +1D65D h # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H +1D65E i # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I +1D65F j # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J +1D660 k # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K +1D661 l # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L +1D662 m # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M +1D663 n # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N +1D664 o # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O +1D665 p # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P +1D666 q # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q +1D667 r # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R +1D668 s # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S +1D669 t # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T +1D66A u # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U +1D66B v # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V +1D66C w # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W +1D66D x # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X +1D66E y # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y +1D66F z # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z +1D670 A # MATHEMATICAL MONOSPACE CAPITAL A +1D671 B # MATHEMATICAL MONOSPACE CAPITAL B +1D672 C # MATHEMATICAL MONOSPACE CAPITAL C +1D673 D # MATHEMATICAL MONOSPACE CAPITAL D +1D674 E # MATHEMATICAL MONOSPACE CAPITAL E +1D675 F # MATHEMATICAL MONOSPACE CAPITAL F +1D676 G # MATHEMATICAL MONOSPACE CAPITAL G +1D677 H # MATHEMATICAL MONOSPACE CAPITAL H +1D678 I # MATHEMATICAL MONOSPACE CAPITAL I +1D679 J # MATHEMATICAL MONOSPACE CAPITAL J +1D67A K # MATHEMATICAL MONOSPACE CAPITAL K +1D67B L # MATHEMATICAL MONOSPACE CAPITAL L +1D67C M # MATHEMATICAL MONOSPACE CAPITAL M +1D67D N # MATHEMATICAL MONOSPACE CAPITAL N +1D67E O # MATHEMATICAL MONOSPACE CAPITAL O +1D67F P # MATHEMATICAL MONOSPACE CAPITAL P +1D680 Q # MATHEMATICAL MONOSPACE CAPITAL Q +1D681 R # MATHEMATICAL MONOSPACE CAPITAL R +1D682 S # MATHEMATICAL MONOSPACE CAPITAL S +1D683 T # MATHEMATICAL MONOSPACE CAPITAL T +1D684 U # MATHEMATICAL MONOSPACE CAPITAL U +1D685 V # MATHEMATICAL MONOSPACE CAPITAL V +1D686 W # MATHEMATICAL MONOSPACE CAPITAL W +1D687 X # MATHEMATICAL MONOSPACE CAPITAL X +1D688 Y # MATHEMATICAL MONOSPACE CAPITAL Y +1D689 Z # MATHEMATICAL MONOSPACE CAPITAL Z +1D68A a # MATHEMATICAL MONOSPACE SMALL A +1D68B b # MATHEMATICAL MONOSPACE SMALL B +1D68C c # MATHEMATICAL MONOSPACE SMALL C +1D68D d # MATHEMATICAL MONOSPACE SMALL D +1D68E e # MATHEMATICAL MONOSPACE SMALL E +1D68F f # MATHEMATICAL MONOSPACE SMALL F +1D690 g # MATHEMATICAL MONOSPACE SMALL G +1D691 h # MATHEMATICAL MONOSPACE SMALL H +1D692 i # MATHEMATICAL MONOSPACE SMALL I +1D693 j # MATHEMATICAL MONOSPACE SMALL J +1D694 k # MATHEMATICAL MONOSPACE SMALL K +1D695 l # MATHEMATICAL MONOSPACE SMALL L +1D696 m # MATHEMATICAL MONOSPACE SMALL M +1D697 n # MATHEMATICAL MONOSPACE SMALL N +1D698 o # MATHEMATICAL MONOSPACE SMALL O +1D699 p # MATHEMATICAL MONOSPACE SMALL P +1D69A q # MATHEMATICAL MONOSPACE SMALL Q +1D69B r # MATHEMATICAL MONOSPACE SMALL R +1D69C s # MATHEMATICAL MONOSPACE SMALL S +1D69D t # MATHEMATICAL MONOSPACE SMALL T +1D69E u # MATHEMATICAL MONOSPACE SMALL U +1D69F v # MATHEMATICAL MONOSPACE SMALL V +1D6A0 w # MATHEMATICAL MONOSPACE SMALL W +1D6A1 x # MATHEMATICAL MONOSPACE SMALL X +1D6A2 y # MATHEMATICAL MONOSPACE SMALL Y +1D6A3 z # MATHEMATICAL MONOSPACE SMALL Z +1D6A8 Α # MATHEMATICAL BOLD CAPITAL ALPHA +1D6A9 Β # MATHEMATICAL BOLD CAPITAL BETA +1D6AA Γ # MATHEMATICAL BOLD CAPITAL GAMMA +1D6AB Δ # MATHEMATICAL BOLD CAPITAL DELTA +1D6AC Ε # MATHEMATICAL BOLD CAPITAL EPSILON +1D6AD Ζ # MATHEMATICAL BOLD CAPITAL ZETA +1D6AE Η # MATHEMATICAL BOLD CAPITAL ETA +1D6AF Θ # MATHEMATICAL BOLD CAPITAL THETA +1D6B0 Ι # MATHEMATICAL BOLD CAPITAL IOTA +1D6B1 Κ # MATHEMATICAL BOLD CAPITAL KAPPA +1D6B2 Λ # MATHEMATICAL BOLD CAPITAL LAMDA +1D6B3 Μ # MATHEMATICAL BOLD CAPITAL MU +1D6B4 Ν # MATHEMATICAL BOLD CAPITAL NU +1D6B5 Ξ # MATHEMATICAL BOLD CAPITAL XI +1D6B6 Ο # MATHEMATICAL BOLD CAPITAL OMICRON +1D6B7 Π # MATHEMATICAL BOLD CAPITAL PI +1D6B8 Ρ # MATHEMATICAL BOLD CAPITAL RHO +1D6B9 ϴ # MATHEMATICAL BOLD CAPITAL THETA SYMBOL +1D6BA Σ # MATHEMATICAL BOLD CAPITAL SIGMA +1D6BB Τ # MATHEMATICAL BOLD CAPITAL TAU +1D6BC Υ # MATHEMATICAL BOLD CAPITAL UPSILON +1D6BD Φ # MATHEMATICAL BOLD CAPITAL PHI +1D6BE Χ # MATHEMATICAL BOLD CAPITAL CHI +1D6BF Ψ # MATHEMATICAL BOLD CAPITAL PSI +1D6C0 Ω # MATHEMATICAL BOLD CAPITAL OMEGA +1D6C1 ∇ # MATHEMATICAL BOLD NABLA +1D6C2 α # MATHEMATICAL BOLD SMALL ALPHA +1D6C3 β # MATHEMATICAL BOLD SMALL BETA +1D6C4 γ # MATHEMATICAL BOLD SMALL GAMMA +1D6C5 δ # MATHEMATICAL BOLD SMALL DELTA +1D6C6 ε # MATHEMATICAL BOLD SMALL EPSILON +1D6C7 ζ # MATHEMATICAL BOLD SMALL ZETA +1D6C8 η # MATHEMATICAL BOLD SMALL ETA +1D6C9 θ # MATHEMATICAL BOLD SMALL THETA +1D6CA ι # MATHEMATICAL BOLD SMALL IOTA +1D6CB κ # MATHEMATICAL BOLD SMALL KAPPA +1D6CC λ # MATHEMATICAL BOLD SMALL LAMDA +1D6CD μ # MATHEMATICAL BOLD SMALL MU +1D6CE ν # MATHEMATICAL BOLD SMALL NU +1D6CF ξ # MATHEMATICAL BOLD SMALL XI +1D6D0 ο # MATHEMATICAL BOLD SMALL OMICRON +1D6D1 π # MATHEMATICAL BOLD SMALL PI +1D6D2 ρ # MATHEMATICAL BOLD SMALL RHO +1D6D3 ς # MATHEMATICAL BOLD SMALL FINAL SIGMA +1D6D4 σ # MATHEMATICAL BOLD SMALL SIGMA +1D6D5 τ # MATHEMATICAL BOLD SMALL TAU +1D6D6 υ # MATHEMATICAL BOLD SMALL UPSILON +1D6D7 φ # MATHEMATICAL BOLD SMALL PHI +1D6D8 χ # MATHEMATICAL BOLD SMALL CHI +1D6D9 ψ # MATHEMATICAL BOLD SMALL PSI +1D6DA ω # MATHEMATICAL BOLD SMALL OMEGA +1D6DB ∂ # MATHEMATICAL BOLD PARTIAL DIFFERENTIAL +1D6DC ϵ # MATHEMATICAL BOLD EPSILON SYMBOL +1D6DD ϑ # MATHEMATICAL BOLD THETA SYMBOL +1D6DE ϰ # MATHEMATICAL BOLD KAPPA SYMBOL +1D6DF ϕ # MATHEMATICAL BOLD PHI SYMBOL +1D6E0 ϱ # MATHEMATICAL BOLD RHO SYMBOL +1D6E1 ϖ # MATHEMATICAL BOLD PI SYMBOL +1D6E2 Α # MATHEMATICAL ITALIC CAPITAL ALPHA +1D6E3 Β # MATHEMATICAL ITALIC CAPITAL BETA +1D6E4 Γ # MATHEMATICAL ITALIC CAPITAL GAMMA +1D6E5 Δ # MATHEMATICAL ITALIC CAPITAL DELTA +1D6E6 Ε # MATHEMATICAL ITALIC CAPITAL EPSILON +1D6E7 Ζ # MATHEMATICAL ITALIC CAPITAL ZETA +1D6E8 Η # MATHEMATICAL ITALIC CAPITAL ETA +1D6E9 Θ # MATHEMATICAL ITALIC CAPITAL THETA +1D6EA Ι # MATHEMATICAL ITALIC CAPITAL IOTA +1D6EB Κ # MATHEMATICAL ITALIC CAPITAL KAPPA +1D6EC Λ # MATHEMATICAL ITALIC CAPITAL LAMDA +1D6ED Μ # MATHEMATICAL ITALIC CAPITAL MU +1D6EE Ν # MATHEMATICAL ITALIC CAPITAL NU +1D6EF Ξ # MATHEMATICAL ITALIC CAPITAL XI +1D6F0 Ο # MATHEMATICAL ITALIC CAPITAL OMICRON +1D6F1 Π # MATHEMATICAL ITALIC CAPITAL PI +1D6F2 Ρ # MATHEMATICAL ITALIC CAPITAL RHO +1D6F3 ϴ # MATHEMATICAL ITALIC CAPITAL THETA SYMBOL +1D6F4 Σ # MATHEMATICAL ITALIC CAPITAL SIGMA +1D6F5 Τ # MATHEMATICAL ITALIC CAPITAL TAU +1D6F6 Υ # MATHEMATICAL ITALIC CAPITAL UPSILON +1D6F7 Φ # MATHEMATICAL ITALIC CAPITAL PHI +1D6F8 Χ # MATHEMATICAL ITALIC CAPITAL CHI +1D6F9 Ψ # MATHEMATICAL ITALIC CAPITAL PSI +1D6FA Ω # MATHEMATICAL ITALIC CAPITAL OMEGA +1D6FB ∇ # MATHEMATICAL ITALIC NABLA +1D6FC α # MATHEMATICAL ITALIC SMALL ALPHA +1D6FD β # MATHEMATICAL ITALIC SMALL BETA +1D6FE γ # MATHEMATICAL ITALIC SMALL GAMMA +1D6FF δ # MATHEMATICAL ITALIC SMALL DELTA +1D700 ε # MATHEMATICAL ITALIC SMALL EPSILON +1D701 ζ # MATHEMATICAL ITALIC SMALL ZETA +1D702 η # MATHEMATICAL ITALIC SMALL ETA +1D703 θ # MATHEMATICAL ITALIC SMALL THETA +1D704 ι # MATHEMATICAL ITALIC SMALL IOTA +1D705 κ # MATHEMATICAL ITALIC SMALL KAPPA +1D706 λ # MATHEMATICAL ITALIC SMALL LAMDA +1D707 μ # MATHEMATICAL ITALIC SMALL MU +1D708 ν # MATHEMATICAL ITALIC SMALL NU +1D709 ξ # MATHEMATICAL ITALIC SMALL XI +1D70A ο # MATHEMATICAL ITALIC SMALL OMICRON +1D70B π # MATHEMATICAL ITALIC SMALL PI +1D70C ρ # MATHEMATICAL ITALIC SMALL RHO +1D70D ς # MATHEMATICAL ITALIC SMALL FINAL SIGMA +1D70E σ # MATHEMATICAL ITALIC SMALL SIGMA +1D70F τ # MATHEMATICAL ITALIC SMALL TAU +1D710 υ # MATHEMATICAL ITALIC SMALL UPSILON +1D711 φ # MATHEMATICAL ITALIC SMALL PHI +1D712 χ # MATHEMATICAL ITALIC SMALL CHI +1D713 ψ # MATHEMATICAL ITALIC SMALL PSI +1D714 ω # MATHEMATICAL ITALIC SMALL OMEGA +1D715 ∂ # MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL +1D716 ϵ # MATHEMATICAL ITALIC EPSILON SYMBOL +1D717 ϑ # MATHEMATICAL ITALIC THETA SYMBOL +1D718 ϰ # MATHEMATICAL ITALIC KAPPA SYMBOL +1D719 ϕ # MATHEMATICAL ITALIC PHI SYMBOL +1D71A ϱ # MATHEMATICAL ITALIC RHO SYMBOL +1D71B ϖ # MATHEMATICAL ITALIC PI SYMBOL +1D71C Α # MATHEMATICAL BOLD ITALIC CAPITAL ALPHA +1D71D Β # MATHEMATICAL BOLD ITALIC CAPITAL BETA +1D71E Γ # MATHEMATICAL BOLD ITALIC CAPITAL GAMMA +1D71F Δ # MATHEMATICAL BOLD ITALIC CAPITAL DELTA +1D720 Ε # MATHEMATICAL BOLD ITALIC CAPITAL EPSILON +1D721 Ζ # MATHEMATICAL BOLD ITALIC CAPITAL ZETA +1D722 Η # MATHEMATICAL BOLD ITALIC CAPITAL ETA +1D723 Θ # MATHEMATICAL BOLD ITALIC CAPITAL THETA +1D724 Ι # MATHEMATICAL BOLD ITALIC CAPITAL IOTA +1D725 Κ # MATHEMATICAL BOLD ITALIC CAPITAL KAPPA +1D726 Λ # MATHEMATICAL BOLD ITALIC CAPITAL LAMDA +1D727 Μ # MATHEMATICAL BOLD ITALIC CAPITAL MU +1D728 Ν # MATHEMATICAL BOLD ITALIC CAPITAL NU +1D729 Ξ # MATHEMATICAL BOLD ITALIC CAPITAL XI +1D72A Ο # MATHEMATICAL BOLD ITALIC CAPITAL OMICRON +1D72B Π # MATHEMATICAL BOLD ITALIC CAPITAL PI +1D72C Ρ # MATHEMATICAL BOLD ITALIC CAPITAL RHO +1D72D ϴ # MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL +1D72E Σ # MATHEMATICAL BOLD ITALIC CAPITAL SIGMA +1D72F Τ # MATHEMATICAL BOLD ITALIC CAPITAL TAU +1D730 Υ # MATHEMATICAL BOLD ITALIC CAPITAL UPSILON +1D731 Φ # MATHEMATICAL BOLD ITALIC CAPITAL PHI +1D732 Χ # MATHEMATICAL BOLD ITALIC CAPITAL CHI +1D733 Ψ # MATHEMATICAL BOLD ITALIC CAPITAL PSI +1D734 Ω # MATHEMATICAL BOLD ITALIC CAPITAL OMEGA +1D735 ∇ # MATHEMATICAL BOLD ITALIC NABLA +1D736 α # MATHEMATICAL BOLD ITALIC SMALL ALPHA +1D737 β # MATHEMATICAL BOLD ITALIC SMALL BETA +1D738 γ # MATHEMATICAL BOLD ITALIC SMALL GAMMA +1D739 δ # MATHEMATICAL BOLD ITALIC SMALL DELTA +1D73A ε # MATHEMATICAL BOLD ITALIC SMALL EPSILON +1D73B ζ # MATHEMATICAL BOLD ITALIC SMALL ZETA +1D73C η # MATHEMATICAL BOLD ITALIC SMALL ETA +1D73D θ # MATHEMATICAL BOLD ITALIC SMALL THETA +1D73E ι # MATHEMATICAL BOLD ITALIC SMALL IOTA +1D73F κ # MATHEMATICAL BOLD ITALIC SMALL KAPPA +1D740 λ # MATHEMATICAL BOLD ITALIC SMALL LAMDA +1D741 μ # MATHEMATICAL BOLD ITALIC SMALL MU +1D742 ν # MATHEMATICAL BOLD ITALIC SMALL NU +1D743 ξ # MATHEMATICAL BOLD ITALIC SMALL XI +1D744 ο # MATHEMATICAL BOLD ITALIC SMALL OMICRON +1D745 π # MATHEMATICAL BOLD ITALIC SMALL PI +1D746 ρ # MATHEMATICAL BOLD ITALIC SMALL RHO +1D747 ς # MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA +1D748 σ # MATHEMATICAL BOLD ITALIC SMALL SIGMA +1D749 τ # MATHEMATICAL BOLD ITALIC SMALL TAU +1D74A υ # MATHEMATICAL BOLD ITALIC SMALL UPSILON +1D74B φ # MATHEMATICAL BOLD ITALIC SMALL PHI +1D74C χ # MATHEMATICAL BOLD ITALIC SMALL CHI +1D74D ψ # MATHEMATICAL BOLD ITALIC SMALL PSI +1D74E ω # MATHEMATICAL BOLD ITALIC SMALL OMEGA +1D74F ∂ # MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL +1D750 ϵ # MATHEMATICAL BOLD ITALIC EPSILON SYMBOL +1D751 ϑ # MATHEMATICAL BOLD ITALIC THETA SYMBOL +1D752 ϰ # MATHEMATICAL BOLD ITALIC KAPPA SYMBOL +1D753 ϕ # MATHEMATICAL BOLD ITALIC PHI SYMBOL +1D754 ϱ # MATHEMATICAL BOLD ITALIC RHO SYMBOL +1D755 ϖ # MATHEMATICAL BOLD ITALIC PI SYMBOL +1D756 Α # MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA +1D757 Β # MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA +1D758 Γ # MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA +1D759 Δ # MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA +1D75A Ε # MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON +1D75B Ζ # MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA +1D75C Η # MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA +1D75D Θ # MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA +1D75E Ι # MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA +1D75F Κ # MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA +1D760 Λ # MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA +1D761 Μ # MATHEMATICAL SANS-SERIF BOLD CAPITAL MU +1D762 Ν # MATHEMATICAL SANS-SERIF BOLD CAPITAL NU +1D763 Ξ # MATHEMATICAL SANS-SERIF BOLD CAPITAL XI +1D764 Ο # MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON +1D765 Π # MATHEMATICAL SANS-SERIF BOLD CAPITAL PI +1D766 Ρ # MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO +1D767 ϴ # MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL +1D768 Σ # MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA +1D769 Τ # MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU +1D76A Υ # MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON +1D76B Φ # MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI +1D76C Χ # MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI +1D76D Ψ # MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI +1D76E Ω # MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA +1D76F ∇ # MATHEMATICAL SANS-SERIF BOLD NABLA +1D770 α # MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA +1D771 β # MATHEMATICAL SANS-SERIF BOLD SMALL BETA +1D772 γ # MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA +1D773 δ # MATHEMATICAL SANS-SERIF BOLD SMALL DELTA +1D774 ε # MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON +1D775 ζ # MATHEMATICAL SANS-SERIF BOLD SMALL ZETA +1D776 η # MATHEMATICAL SANS-SERIF BOLD SMALL ETA +1D777 θ # MATHEMATICAL SANS-SERIF BOLD SMALL THETA +1D778 ι # MATHEMATICAL SANS-SERIF BOLD SMALL IOTA +1D779 κ # MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA +1D77A λ # MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA +1D77B μ # MATHEMATICAL SANS-SERIF BOLD SMALL MU +1D77C ν # MATHEMATICAL SANS-SERIF BOLD SMALL NU +1D77D ξ # MATHEMATICAL SANS-SERIF BOLD SMALL XI +1D77E ο # MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON +1D77F π # MATHEMATICAL SANS-SERIF BOLD SMALL PI +1D780 ρ # MATHEMATICAL SANS-SERIF BOLD SMALL RHO +1D781 ς # MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA +1D782 σ # MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA +1D783 τ # MATHEMATICAL SANS-SERIF BOLD SMALL TAU +1D784 υ # MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON +1D785 φ # MATHEMATICAL SANS-SERIF BOLD SMALL PHI +1D786 χ # MATHEMATICAL SANS-SERIF BOLD SMALL CHI +1D787 ψ # MATHEMATICAL SANS-SERIF BOLD SMALL PSI +1D788 ω # MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA +1D789 ∂ # MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL +1D78A ϵ # MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL +1D78B ϑ # MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL +1D78C ϰ # MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL +1D78D ϕ # MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL +1D78E ϱ # MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL +1D78F ϖ # MATHEMATICAL SANS-SERIF BOLD PI SYMBOL +1D790 Α # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA +1D791 Β # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA +1D792 Γ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA +1D793 Δ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA +1D794 Ε # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON +1D795 Ζ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA +1D796 Η # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA +1D797 Θ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA +1D798 Ι # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA +1D799 Κ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA +1D79A Λ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA +1D79B Μ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU +1D79C Ν # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU +1D79D Ξ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI +1D79E Ο # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON +1D79F Π # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI +1D7A0 Ρ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO +1D7A1 ϴ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL +1D7A2 Σ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA +1D7A3 Τ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU +1D7A4 Υ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON +1D7A5 Φ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI +1D7A6 Χ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI +1D7A7 Ψ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI +1D7A8 Ω # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA +1D7A9 ∇ # MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA +1D7AA α # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA +1D7AB β # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA +1D7AC γ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA +1D7AD δ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA +1D7AE ε # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON +1D7AF ζ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA +1D7B0 η # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA +1D7B1 θ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA +1D7B2 ι # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA +1D7B3 κ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA +1D7B4 λ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA +1D7B5 μ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU +1D7B6 ν # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU +1D7B7 ξ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI +1D7B8 ο # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON +1D7B9 π # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI +1D7BA ρ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO +1D7BB ς # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA +1D7BC σ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA +1D7BD τ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU +1D7BE υ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON +1D7BF φ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI +1D7C0 χ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI +1D7C1 ψ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI +1D7C2 ω # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA +1D7C3 ∂ # MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL +1D7C4 ϵ # MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL +1D7C5 ϑ # MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL +1D7C6 ϰ # MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL +1D7C7 ϕ # MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL +1D7C8 ϱ # MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL +1D7C9 ϖ # MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL +1D7CE 0 # MATHEMATICAL BOLD DIGIT ZERO +1D7CF 1 # MATHEMATICAL BOLD DIGIT ONE +1D7D0 2 # MATHEMATICAL BOLD DIGIT TWO +1D7D1 3 # MATHEMATICAL BOLD DIGIT THREE +1D7D2 4 # MATHEMATICAL BOLD DIGIT FOUR +1D7D3 5 # MATHEMATICAL BOLD DIGIT FIVE +1D7D4 6 # MATHEMATICAL BOLD DIGIT SIX +1D7D5 7 # MATHEMATICAL BOLD DIGIT SEVEN +1D7D6 8 # MATHEMATICAL BOLD DIGIT EIGHT +1D7D7 9 # MATHEMATICAL BOLD DIGIT NINE +1D7D8 0 # MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO +1D7D9 1 # MATHEMATICAL DOUBLE-STRUCK DIGIT ONE +1D7DA 2 # MATHEMATICAL DOUBLE-STRUCK DIGIT TWO +1D7DB 3 # MATHEMATICAL DOUBLE-STRUCK DIGIT THREE +1D7DC 4 # MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR +1D7DD 5 # MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE +1D7DE 6 # MATHEMATICAL DOUBLE-STRUCK DIGIT SIX +1D7DF 7 # MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN +1D7E0 8 # MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT +1D7E1 9 # MATHEMATICAL DOUBLE-STRUCK DIGIT NINE +1D7E2 0 # MATHEMATICAL SANS-SERIF DIGIT ZERO +1D7E3 1 # MATHEMATICAL SANS-SERIF DIGIT ONE +1D7E4 2 # MATHEMATICAL SANS-SERIF DIGIT TWO +1D7E5 3 # MATHEMATICAL SANS-SERIF DIGIT THREE +1D7E6 4 # MATHEMATICAL SANS-SERIF DIGIT FOUR +1D7E7 5 # MATHEMATICAL SANS-SERIF DIGIT FIVE +1D7E8 6 # MATHEMATICAL SANS-SERIF DIGIT SIX +1D7E9 7 # MATHEMATICAL SANS-SERIF DIGIT SEVEN +1D7EA 8 # MATHEMATICAL SANS-SERIF DIGIT EIGHT +1D7EB 9 # MATHEMATICAL SANS-SERIF DIGIT NINE +1D7EC 0 # MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO +1D7ED 1 # MATHEMATICAL SANS-SERIF BOLD DIGIT ONE +1D7EE 2 # MATHEMATICAL SANS-SERIF BOLD DIGIT TWO +1D7EF 3 # MATHEMATICAL SANS-SERIF BOLD DIGIT THREE +1D7F0 4 # MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR +1D7F1 5 # MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE +1D7F2 6 # MATHEMATICAL SANS-SERIF BOLD DIGIT SIX +1D7F3 7 # MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN +1D7F4 8 # MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT +1D7F5 9 # MATHEMATICAL SANS-SERIF BOLD DIGIT NINE +1D7F6 0 # MATHEMATICAL MONOSPACE DIGIT ZERO +1D7F7 1 # MATHEMATICAL MONOSPACE DIGIT ONE +1D7F8 2 # MATHEMATICAL MONOSPACE DIGIT TWO +1D7F9 3 # MATHEMATICAL MONOSPACE DIGIT THREE +1D7FA 4 # MATHEMATICAL MONOSPACE DIGIT FOUR +1D7FB 5 # MATHEMATICAL MONOSPACE DIGIT FIVE +1D7FC 6 # MATHEMATICAL MONOSPACE DIGIT SIX +1D7FD 7 # MATHEMATICAL MONOSPACE DIGIT SEVEN +1D7FE 8 # MATHEMATICAL MONOSPACE DIGIT EIGHT +1D7FF 9 # MATHEMATICAL MONOSPACE DIGIT NINE +2F800 丽 # CJK COMPATIBILITY IDEOGRAPH-2F800 +2F801 丸 # CJK COMPATIBILITY IDEOGRAPH-2F801 +2F802 乁 # CJK COMPATIBILITY IDEOGRAPH-2F802 +2F803 𠄢 # CJK COMPATIBILITY IDEOGRAPH-2F803 +2F804 你 # CJK COMPATIBILITY IDEOGRAPH-2F804 +2F805 侮 # CJK COMPATIBILITY IDEOGRAPH-2F805 +2F806 侻 # CJK COMPATIBILITY IDEOGRAPH-2F806 +2F807 倂 # CJK COMPATIBILITY IDEOGRAPH-2F807 +2F808 偺 # CJK COMPATIBILITY IDEOGRAPH-2F808 +2F809 備 # CJK COMPATIBILITY IDEOGRAPH-2F809 +2F80A 僧 # CJK COMPATIBILITY IDEOGRAPH-2F80A +2F80B 像 # CJK COMPATIBILITY IDEOGRAPH-2F80B +2F80C 㒞 # CJK COMPATIBILITY IDEOGRAPH-2F80C +2F80D 𠘺 # CJK COMPATIBILITY IDEOGRAPH-2F80D +2F80E 免 # CJK COMPATIBILITY IDEOGRAPH-2F80E +2F80F 兔 # CJK COMPATIBILITY IDEOGRAPH-2F80F +2F810 兤 # CJK COMPATIBILITY IDEOGRAPH-2F810 +2F811 具 # CJK COMPATIBILITY IDEOGRAPH-2F811 +2F812 𠔜 # CJK COMPATIBILITY IDEOGRAPH-2F812 +2F813 㒹 # CJK COMPATIBILITY IDEOGRAPH-2F813 +2F814 內 # CJK COMPATIBILITY IDEOGRAPH-2F814 +2F815 再 # CJK COMPATIBILITY IDEOGRAPH-2F815 +2F816 𠕋 # CJK COMPATIBILITY IDEOGRAPH-2F816 +2F817 冗 # CJK COMPATIBILITY IDEOGRAPH-2F817 +2F818 冤 # CJK COMPATIBILITY IDEOGRAPH-2F818 +2F819 仌 # CJK COMPATIBILITY IDEOGRAPH-2F819 +2F81A 冬 # CJK COMPATIBILITY IDEOGRAPH-2F81A +2F81B 况 # CJK COMPATIBILITY IDEOGRAPH-2F81B +2F81C 𩇟 # CJK COMPATIBILITY IDEOGRAPH-2F81C +2F81D 凵 # CJK COMPATIBILITY IDEOGRAPH-2F81D +2F81E 刃 # CJK COMPATIBILITY IDEOGRAPH-2F81E +2F81F 㓟 # CJK COMPATIBILITY IDEOGRAPH-2F81F +2F820 刻 # CJK COMPATIBILITY IDEOGRAPH-2F820 +2F821 剆 # CJK COMPATIBILITY IDEOGRAPH-2F821 +2F822 割 # CJK COMPATIBILITY IDEOGRAPH-2F822 +2F823 剷 # CJK COMPATIBILITY IDEOGRAPH-2F823 +2F824 㔕 # CJK COMPATIBILITY IDEOGRAPH-2F824 +2F825 勇 # CJK COMPATIBILITY IDEOGRAPH-2F825 +2F826 勉 # CJK COMPATIBILITY IDEOGRAPH-2F826 +2F827 勤 # CJK COMPATIBILITY IDEOGRAPH-2F827 +2F828 勺 # CJK COMPATIBILITY IDEOGRAPH-2F828 +2F829 包 # CJK COMPATIBILITY IDEOGRAPH-2F829 +2F82A 匆 # CJK COMPATIBILITY IDEOGRAPH-2F82A +2F82B 北 # CJK COMPATIBILITY IDEOGRAPH-2F82B +2F82C 卉 # CJK COMPATIBILITY IDEOGRAPH-2F82C +2F82D 卑 # CJK COMPATIBILITY IDEOGRAPH-2F82D +2F82E 博 # CJK COMPATIBILITY IDEOGRAPH-2F82E +2F82F 即 # CJK COMPATIBILITY IDEOGRAPH-2F82F +2F830 卽 # CJK COMPATIBILITY IDEOGRAPH-2F830 +2F831 卿 # CJK COMPATIBILITY IDEOGRAPH-2F831 +2F832 卿 # CJK COMPATIBILITY IDEOGRAPH-2F832 +2F833 卿 # CJK COMPATIBILITY IDEOGRAPH-2F833 +2F834 𠨬 # CJK COMPATIBILITY IDEOGRAPH-2F834 +2F835 灰 # CJK COMPATIBILITY IDEOGRAPH-2F835 +2F836 及 # CJK COMPATIBILITY IDEOGRAPH-2F836 +2F837 叟 # CJK COMPATIBILITY IDEOGRAPH-2F837 +2F838 𠭣 # CJK COMPATIBILITY IDEOGRAPH-2F838 +2F839 叫 # CJK COMPATIBILITY IDEOGRAPH-2F839 +2F83A 叱 # CJK COMPATIBILITY IDEOGRAPH-2F83A +2F83B 吆 # CJK COMPATIBILITY IDEOGRAPH-2F83B +2F83C 咞 # CJK COMPATIBILITY IDEOGRAPH-2F83C +2F83D 吸 # CJK COMPATIBILITY IDEOGRAPH-2F83D +2F83E 呈 # CJK COMPATIBILITY IDEOGRAPH-2F83E +2F83F 周 # CJK COMPATIBILITY IDEOGRAPH-2F83F +2F840 咢 # CJK COMPATIBILITY IDEOGRAPH-2F840 +2F841 哶 # CJK COMPATIBILITY IDEOGRAPH-2F841 +2F842 唐 # CJK COMPATIBILITY IDEOGRAPH-2F842 +2F843 啓 # CJK COMPATIBILITY IDEOGRAPH-2F843 +2F844 啣 # CJK COMPATIBILITY IDEOGRAPH-2F844 +2F845 善 # CJK COMPATIBILITY IDEOGRAPH-2F845 +2F846 善 # CJK COMPATIBILITY IDEOGRAPH-2F846 +2F847 喙 # CJK COMPATIBILITY IDEOGRAPH-2F847 +2F848 喫 # CJK COMPATIBILITY IDEOGRAPH-2F848 +2F849 喳 # CJK COMPATIBILITY IDEOGRAPH-2F849 +2F84A 嗂 # CJK COMPATIBILITY IDEOGRAPH-2F84A +2F84B 圖 # CJK COMPATIBILITY IDEOGRAPH-2F84B +2F84C 嘆 # CJK COMPATIBILITY IDEOGRAPH-2F84C +2F84D 圗 # CJK COMPATIBILITY IDEOGRAPH-2F84D +2F84E 噑 # CJK COMPATIBILITY IDEOGRAPH-2F84E +2F84F 噴 # CJK COMPATIBILITY IDEOGRAPH-2F84F +2F850 切 # CJK COMPATIBILITY IDEOGRAPH-2F850 +2F851 壮 # CJK COMPATIBILITY IDEOGRAPH-2F851 +2F852 城 # CJK COMPATIBILITY IDEOGRAPH-2F852 +2F853 埴 # CJK COMPATIBILITY IDEOGRAPH-2F853 +2F854 堍 # CJK COMPATIBILITY IDEOGRAPH-2F854 +2F855 型 # CJK COMPATIBILITY IDEOGRAPH-2F855 +2F856 堲 # CJK COMPATIBILITY IDEOGRAPH-2F856 +2F857 報 # CJK COMPATIBILITY IDEOGRAPH-2F857 +2F858 墬 # CJK COMPATIBILITY IDEOGRAPH-2F858 +2F859 𡓤 # CJK COMPATIBILITY IDEOGRAPH-2F859 +2F85A 売 # CJK COMPATIBILITY IDEOGRAPH-2F85A +2F85B 壷 # CJK COMPATIBILITY IDEOGRAPH-2F85B +2F85C 夆 # CJK COMPATIBILITY IDEOGRAPH-2F85C +2F85D 多 # CJK COMPATIBILITY IDEOGRAPH-2F85D +2F85E 夢 # CJK COMPATIBILITY IDEOGRAPH-2F85E +2F85F 奢 # CJK COMPATIBILITY IDEOGRAPH-2F85F +2F860 𡚨 # CJK COMPATIBILITY IDEOGRAPH-2F860 +2F861 𡛪 # CJK COMPATIBILITY IDEOGRAPH-2F861 +2F862 姬 # CJK COMPATIBILITY IDEOGRAPH-2F862 +2F863 娛 # CJK COMPATIBILITY IDEOGRAPH-2F863 +2F864 娧 # CJK COMPATIBILITY IDEOGRAPH-2F864 +2F865 姘 # CJK COMPATIBILITY IDEOGRAPH-2F865 +2F866 婦 # CJK COMPATIBILITY IDEOGRAPH-2F866 +2F867 㛮 # CJK COMPATIBILITY IDEOGRAPH-2F867 +2F868 㛼 # CJK COMPATIBILITY IDEOGRAPH-2F868 +2F869 嬈 # CJK COMPATIBILITY IDEOGRAPH-2F869 +2F86A 嬾 # CJK COMPATIBILITY IDEOGRAPH-2F86A +2F86B 嬾 # CJK COMPATIBILITY IDEOGRAPH-2F86B +2F86C 𡧈 # CJK COMPATIBILITY IDEOGRAPH-2F86C +2F86D 寃 # CJK COMPATIBILITY IDEOGRAPH-2F86D +2F86E 寘 # CJK COMPATIBILITY IDEOGRAPH-2F86E +2F86F 寧 # CJK COMPATIBILITY IDEOGRAPH-2F86F +2F870 寳 # CJK COMPATIBILITY IDEOGRAPH-2F870 +2F871 𡬘 # CJK COMPATIBILITY IDEOGRAPH-2F871 +2F872 寿 # CJK COMPATIBILITY IDEOGRAPH-2F872 +2F873 将 # CJK COMPATIBILITY IDEOGRAPH-2F873 +2F874 当 # CJK COMPATIBILITY IDEOGRAPH-2F874 +2F875 尢 # CJK COMPATIBILITY IDEOGRAPH-2F875 +2F876 㞁 # CJK COMPATIBILITY IDEOGRAPH-2F876 +2F877 屠 # CJK COMPATIBILITY IDEOGRAPH-2F877 +2F878 屮 # CJK COMPATIBILITY IDEOGRAPH-2F878 +2F879 峀 # CJK COMPATIBILITY IDEOGRAPH-2F879 +2F87A 岍 # CJK COMPATIBILITY IDEOGRAPH-2F87A +2F87B 𡷤 # CJK COMPATIBILITY IDEOGRAPH-2F87B +2F87C 嵃 # CJK COMPATIBILITY IDEOGRAPH-2F87C +2F87D 𡷦 # CJK COMPATIBILITY IDEOGRAPH-2F87D +2F87E 嵮 # CJK COMPATIBILITY IDEOGRAPH-2F87E +2F87F 嵫 # CJK COMPATIBILITY IDEOGRAPH-2F87F +2F880 嵼 # CJK COMPATIBILITY IDEOGRAPH-2F880 +2F881 巡 # CJK COMPATIBILITY IDEOGRAPH-2F881 +2F882 巢 # CJK COMPATIBILITY IDEOGRAPH-2F882 +2F883 㠯 # CJK COMPATIBILITY IDEOGRAPH-2F883 +2F884 巽 # CJK COMPATIBILITY IDEOGRAPH-2F884 +2F885 帨 # CJK COMPATIBILITY IDEOGRAPH-2F885 +2F886 帽 # CJK COMPATIBILITY IDEOGRAPH-2F886 +2F887 幩 # CJK COMPATIBILITY IDEOGRAPH-2F887 +2F888 㡢 # CJK COMPATIBILITY IDEOGRAPH-2F888 +2F889 𢆃 # CJK COMPATIBILITY IDEOGRAPH-2F889 +2F88A 㡼 # CJK COMPATIBILITY IDEOGRAPH-2F88A +2F88B 庰 # CJK COMPATIBILITY IDEOGRAPH-2F88B +2F88C 庳 # CJK COMPATIBILITY IDEOGRAPH-2F88C +2F88D 庶 # CJK COMPATIBILITY IDEOGRAPH-2F88D +2F88E 廊 # CJK COMPATIBILITY IDEOGRAPH-2F88E +2F88F 𪎒 # CJK COMPATIBILITY IDEOGRAPH-2F88F +2F890 廾 # CJK COMPATIBILITY IDEOGRAPH-2F890 +2F891 𢌱 # CJK COMPATIBILITY IDEOGRAPH-2F891 +2F892 𢌱 # CJK COMPATIBILITY IDEOGRAPH-2F892 +2F893 舁 # CJK COMPATIBILITY IDEOGRAPH-2F893 +2F894 弢 # CJK COMPATIBILITY IDEOGRAPH-2F894 +2F895 弢 # CJK COMPATIBILITY IDEOGRAPH-2F895 +2F896 㣇 # CJK COMPATIBILITY IDEOGRAPH-2F896 +2F897 𣊸 # CJK COMPATIBILITY IDEOGRAPH-2F897 +2F898 𦇚 # CJK COMPATIBILITY IDEOGRAPH-2F898 +2F899 形 # CJK COMPATIBILITY IDEOGRAPH-2F899 +2F89A 彫 # CJK COMPATIBILITY IDEOGRAPH-2F89A +2F89B 㣣 # CJK COMPATIBILITY IDEOGRAPH-2F89B +2F89C 徚 # CJK COMPATIBILITY IDEOGRAPH-2F89C +2F89D 忍 # CJK COMPATIBILITY IDEOGRAPH-2F89D +2F89E 志 # CJK COMPATIBILITY IDEOGRAPH-2F89E +2F89F 忹 # CJK COMPATIBILITY IDEOGRAPH-2F89F +2F8A0 悁 # CJK COMPATIBILITY IDEOGRAPH-2F8A0 +2F8A1 㤺 # CJK COMPATIBILITY IDEOGRAPH-2F8A1 +2F8A2 㤜 # CJK COMPATIBILITY IDEOGRAPH-2F8A2 +2F8A3 悔 # CJK COMPATIBILITY IDEOGRAPH-2F8A3 +2F8A4 𢛔 # CJK COMPATIBILITY IDEOGRAPH-2F8A4 +2F8A5 惇 # CJK COMPATIBILITY IDEOGRAPH-2F8A5 +2F8A6 慈 # CJK COMPATIBILITY IDEOGRAPH-2F8A6 +2F8A7 慌 # CJK COMPATIBILITY IDEOGRAPH-2F8A7 +2F8A8 慎 # CJK COMPATIBILITY IDEOGRAPH-2F8A8 +2F8A9 慌 # CJK COMPATIBILITY IDEOGRAPH-2F8A9 +2F8AA 慺 # CJK COMPATIBILITY IDEOGRAPH-2F8AA +2F8AB 憎 # CJK COMPATIBILITY IDEOGRAPH-2F8AB +2F8AC 憲 # CJK COMPATIBILITY IDEOGRAPH-2F8AC +2F8AD 憤 # CJK COMPATIBILITY IDEOGRAPH-2F8AD +2F8AE 憯 # CJK COMPATIBILITY IDEOGRAPH-2F8AE +2F8AF 懞 # CJK COMPATIBILITY IDEOGRAPH-2F8AF +2F8B0 懲 # CJK COMPATIBILITY IDEOGRAPH-2F8B0 +2F8B1 懶 # CJK COMPATIBILITY IDEOGRAPH-2F8B1 +2F8B2 成 # CJK COMPATIBILITY IDEOGRAPH-2F8B2 +2F8B3 戛 # CJK COMPATIBILITY IDEOGRAPH-2F8B3 +2F8B4 扝 # CJK COMPATIBILITY IDEOGRAPH-2F8B4 +2F8B5 抱 # CJK COMPATIBILITY IDEOGRAPH-2F8B5 +2F8B6 拔 # CJK COMPATIBILITY IDEOGRAPH-2F8B6 +2F8B7 捐 # CJK COMPATIBILITY IDEOGRAPH-2F8B7 +2F8B8 𢬌 # CJK COMPATIBILITY IDEOGRAPH-2F8B8 +2F8B9 挽 # CJK COMPATIBILITY IDEOGRAPH-2F8B9 +2F8BA 拼 # CJK COMPATIBILITY IDEOGRAPH-2F8BA +2F8BB 捨 # CJK COMPATIBILITY IDEOGRAPH-2F8BB +2F8BC 掃 # CJK COMPATIBILITY IDEOGRAPH-2F8BC +2F8BD 揤 # CJK COMPATIBILITY IDEOGRAPH-2F8BD +2F8BE 𢯱 # CJK COMPATIBILITY IDEOGRAPH-2F8BE +2F8BF 搢 # CJK COMPATIBILITY IDEOGRAPH-2F8BF +2F8C0 揅 # CJK COMPATIBILITY IDEOGRAPH-2F8C0 +2F8C1 掩 # CJK COMPATIBILITY IDEOGRAPH-2F8C1 +2F8C2 㨮 # CJK COMPATIBILITY IDEOGRAPH-2F8C2 +2F8C3 摩 # CJK COMPATIBILITY IDEOGRAPH-2F8C3 +2F8C4 摾 # CJK COMPATIBILITY IDEOGRAPH-2F8C4 +2F8C5 撝 # CJK COMPATIBILITY IDEOGRAPH-2F8C5 +2F8C6 摷 # CJK COMPATIBILITY IDEOGRAPH-2F8C6 +2F8C7 㩬 # CJK COMPATIBILITY IDEOGRAPH-2F8C7 +2F8C8 敏 # CJK COMPATIBILITY IDEOGRAPH-2F8C8 +2F8C9 敬 # CJK COMPATIBILITY IDEOGRAPH-2F8C9 +2F8CA 𣀊 # CJK COMPATIBILITY IDEOGRAPH-2F8CA +2F8CB 旣 # CJK COMPATIBILITY IDEOGRAPH-2F8CB +2F8CC 書 # CJK COMPATIBILITY IDEOGRAPH-2F8CC +2F8CD 晉 # CJK COMPATIBILITY IDEOGRAPH-2F8CD +2F8CE 㬙 # CJK COMPATIBILITY IDEOGRAPH-2F8CE +2F8CF 暑 # CJK COMPATIBILITY IDEOGRAPH-2F8CF +2F8D0 㬈 # CJK COMPATIBILITY IDEOGRAPH-2F8D0 +2F8D1 㫤 # CJK COMPATIBILITY IDEOGRAPH-2F8D1 +2F8D2 冒 # CJK COMPATIBILITY IDEOGRAPH-2F8D2 +2F8D3 冕 # CJK COMPATIBILITY IDEOGRAPH-2F8D3 +2F8D4 最 # CJK COMPATIBILITY IDEOGRAPH-2F8D4 +2F8D5 暜 # CJK COMPATIBILITY IDEOGRAPH-2F8D5 +2F8D6 肭 # CJK COMPATIBILITY IDEOGRAPH-2F8D6 +2F8D7 䏙 # CJK COMPATIBILITY IDEOGRAPH-2F8D7 +2F8D8 朗 # CJK COMPATIBILITY IDEOGRAPH-2F8D8 +2F8D9 望 # CJK COMPATIBILITY IDEOGRAPH-2F8D9 +2F8DA 朡 # CJK COMPATIBILITY IDEOGRAPH-2F8DA +2F8DB 杞 # CJK COMPATIBILITY IDEOGRAPH-2F8DB +2F8DC 杓 # CJK COMPATIBILITY IDEOGRAPH-2F8DC +2F8DD 𣏃 # CJK COMPATIBILITY IDEOGRAPH-2F8DD +2F8DE 㭉 # CJK COMPATIBILITY IDEOGRAPH-2F8DE +2F8DF 柺 # CJK COMPATIBILITY IDEOGRAPH-2F8DF +2F8E0 枅 # CJK COMPATIBILITY IDEOGRAPH-2F8E0 +2F8E1 桒 # CJK COMPATIBILITY IDEOGRAPH-2F8E1 +2F8E2 梅 # CJK COMPATIBILITY IDEOGRAPH-2F8E2 +2F8E3 𣑭 # CJK COMPATIBILITY IDEOGRAPH-2F8E3 +2F8E4 梎 # CJK COMPATIBILITY IDEOGRAPH-2F8E4 +2F8E5 栟 # CJK COMPATIBILITY IDEOGRAPH-2F8E5 +2F8E6 椔 # CJK COMPATIBILITY IDEOGRAPH-2F8E6 +2F8E7 㮝 # CJK COMPATIBILITY IDEOGRAPH-2F8E7 +2F8E8 楂 # CJK COMPATIBILITY IDEOGRAPH-2F8E8 +2F8E9 榣 # CJK COMPATIBILITY IDEOGRAPH-2F8E9 +2F8EA 槪 # CJK COMPATIBILITY IDEOGRAPH-2F8EA +2F8EB 檨 # CJK COMPATIBILITY IDEOGRAPH-2F8EB +2F8EC 𣚣 # CJK COMPATIBILITY IDEOGRAPH-2F8EC +2F8ED 櫛 # CJK COMPATIBILITY IDEOGRAPH-2F8ED +2F8EE 㰘 # CJK COMPATIBILITY IDEOGRAPH-2F8EE +2F8EF 次 # CJK COMPATIBILITY IDEOGRAPH-2F8EF +2F8F0 𣢧 # CJK COMPATIBILITY IDEOGRAPH-2F8F0 +2F8F1 歔 # CJK COMPATIBILITY IDEOGRAPH-2F8F1 +2F8F2 㱎 # CJK COMPATIBILITY IDEOGRAPH-2F8F2 +2F8F3 歲 # CJK COMPATIBILITY IDEOGRAPH-2F8F3 +2F8F4 殟 # CJK COMPATIBILITY IDEOGRAPH-2F8F4 +2F8F5 殺 # CJK COMPATIBILITY IDEOGRAPH-2F8F5 +2F8F6 殻 # CJK COMPATIBILITY IDEOGRAPH-2F8F6 +2F8F7 𣪍 # CJK COMPATIBILITY IDEOGRAPH-2F8F7 +2F8F8 𡴋 # CJK COMPATIBILITY IDEOGRAPH-2F8F8 +2F8F9 𣫺 # CJK COMPATIBILITY IDEOGRAPH-2F8F9 +2F8FA 汎 # CJK COMPATIBILITY IDEOGRAPH-2F8FA +2F8FB 𣲼 # CJK COMPATIBILITY IDEOGRAPH-2F8FB +2F8FC 沿 # CJK COMPATIBILITY IDEOGRAPH-2F8FC +2F8FD 泍 # CJK COMPATIBILITY IDEOGRAPH-2F8FD +2F8FE 汧 # CJK COMPATIBILITY IDEOGRAPH-2F8FE +2F8FF 洖 # CJK COMPATIBILITY IDEOGRAPH-2F8FF +2F900 派 # CJK COMPATIBILITY IDEOGRAPH-2F900 +2F901 海 # CJK COMPATIBILITY IDEOGRAPH-2F901 +2F902 流 # CJK COMPATIBILITY IDEOGRAPH-2F902 +2F903 浩 # CJK COMPATIBILITY IDEOGRAPH-2F903 +2F904 浸 # CJK COMPATIBILITY IDEOGRAPH-2F904 +2F905 涅 # CJK COMPATIBILITY IDEOGRAPH-2F905 +2F906 𣴞 # CJK COMPATIBILITY IDEOGRAPH-2F906 +2F907 洴 # CJK COMPATIBILITY IDEOGRAPH-2F907 +2F908 港 # CJK COMPATIBILITY IDEOGRAPH-2F908 +2F909 湮 # CJK COMPATIBILITY IDEOGRAPH-2F909 +2F90A 㴳 # CJK COMPATIBILITY IDEOGRAPH-2F90A +2F90B 滋 # CJK COMPATIBILITY IDEOGRAPH-2F90B +2F90C 滇 # CJK COMPATIBILITY IDEOGRAPH-2F90C +2F90D 𣻑 # CJK COMPATIBILITY IDEOGRAPH-2F90D +2F90E 淹 # CJK COMPATIBILITY IDEOGRAPH-2F90E +2F90F 潮 # CJK COMPATIBILITY IDEOGRAPH-2F90F +2F910 𣽞 # CJK COMPATIBILITY IDEOGRAPH-2F910 +2F911 𣾎 # CJK COMPATIBILITY IDEOGRAPH-2F911 +2F912 濆 # CJK COMPATIBILITY IDEOGRAPH-2F912 +2F913 瀹 # CJK COMPATIBILITY IDEOGRAPH-2F913 +2F914 瀞 # CJK COMPATIBILITY IDEOGRAPH-2F914 +2F915 瀛 # CJK COMPATIBILITY IDEOGRAPH-2F915 +2F916 㶖 # CJK COMPATIBILITY IDEOGRAPH-2F916 +2F917 灊 # CJK COMPATIBILITY IDEOGRAPH-2F917 +2F918 災 # CJK COMPATIBILITY IDEOGRAPH-2F918 +2F919 灷 # CJK COMPATIBILITY IDEOGRAPH-2F919 +2F91A 炭 # CJK COMPATIBILITY IDEOGRAPH-2F91A +2F91B 𠔥 # CJK COMPATIBILITY IDEOGRAPH-2F91B +2F91C 煅 # CJK COMPATIBILITY IDEOGRAPH-2F91C +2F91D 𤉣 # CJK COMPATIBILITY IDEOGRAPH-2F91D +2F91E 熜 # CJK COMPATIBILITY IDEOGRAPH-2F91E +2F91F 𤎫 # CJK COMPATIBILITY IDEOGRAPH-2F91F +2F920 爨 # CJK COMPATIBILITY IDEOGRAPH-2F920 +2F921 爵 # CJK COMPATIBILITY IDEOGRAPH-2F921 +2F922 牐 # CJK COMPATIBILITY IDEOGRAPH-2F922 +2F923 𤘈 # CJK COMPATIBILITY IDEOGRAPH-2F923 +2F924 犀 # CJK COMPATIBILITY IDEOGRAPH-2F924 +2F925 犕 # CJK COMPATIBILITY IDEOGRAPH-2F925 +2F926 𤜵 # CJK COMPATIBILITY IDEOGRAPH-2F926 +2F927 𤠔 # CJK COMPATIBILITY IDEOGRAPH-2F927 +2F928 獺 # CJK COMPATIBILITY IDEOGRAPH-2F928 +2F929 王 # CJK COMPATIBILITY IDEOGRAPH-2F929 +2F92A 㺬 # CJK COMPATIBILITY IDEOGRAPH-2F92A +2F92B 玥 # CJK COMPATIBILITY IDEOGRAPH-2F92B +2F92C 㺸 # CJK COMPATIBILITY IDEOGRAPH-2F92C +2F92D 㺸 # CJK COMPATIBILITY IDEOGRAPH-2F92D +2F92E 瑇 # CJK COMPATIBILITY IDEOGRAPH-2F92E +2F92F 瑜 # CJK COMPATIBILITY IDEOGRAPH-2F92F +2F930 瑱 # CJK COMPATIBILITY IDEOGRAPH-2F930 +2F931 璅 # CJK COMPATIBILITY IDEOGRAPH-2F931 +2F932 瓊 # CJK COMPATIBILITY IDEOGRAPH-2F932 +2F933 㼛 # CJK COMPATIBILITY IDEOGRAPH-2F933 +2F934 甤 # CJK COMPATIBILITY IDEOGRAPH-2F934 +2F935 𤰶 # CJK COMPATIBILITY IDEOGRAPH-2F935 +2F936 甾 # CJK COMPATIBILITY IDEOGRAPH-2F936 +2F937 𤲒 # CJK COMPATIBILITY IDEOGRAPH-2F937 +2F938 異 # CJK COMPATIBILITY IDEOGRAPH-2F938 +2F939 𢆟 # CJK COMPATIBILITY IDEOGRAPH-2F939 +2F93A 瘐 # CJK COMPATIBILITY IDEOGRAPH-2F93A +2F93B 𤾡 # CJK COMPATIBILITY IDEOGRAPH-2F93B +2F93C 𤾸 # CJK COMPATIBILITY IDEOGRAPH-2F93C +2F93D 𥁄 # CJK COMPATIBILITY IDEOGRAPH-2F93D +2F93E 㿼 # CJK COMPATIBILITY IDEOGRAPH-2F93E +2F93F 䀈 # CJK COMPATIBILITY IDEOGRAPH-2F93F +2F940 直 # CJK COMPATIBILITY IDEOGRAPH-2F940 +2F941 𥃳 # CJK COMPATIBILITY IDEOGRAPH-2F941 +2F942 𥃲 # CJK COMPATIBILITY IDEOGRAPH-2F942 +2F943 𥄙 # CJK COMPATIBILITY IDEOGRAPH-2F943 +2F944 𥄳 # CJK COMPATIBILITY IDEOGRAPH-2F944 +2F945 眞 # CJK COMPATIBILITY IDEOGRAPH-2F945 +2F946 真 # CJK COMPATIBILITY IDEOGRAPH-2F946 +2F947 真 # CJK COMPATIBILITY IDEOGRAPH-2F947 +2F948 睊 # CJK COMPATIBILITY IDEOGRAPH-2F948 +2F949 䀹 # CJK COMPATIBILITY IDEOGRAPH-2F949 +2F94A 瞋 # CJK COMPATIBILITY IDEOGRAPH-2F94A +2F94B 䁆 # CJK COMPATIBILITY IDEOGRAPH-2F94B +2F94C 䂖 # CJK COMPATIBILITY IDEOGRAPH-2F94C +2F94D 𥐝 # CJK COMPATIBILITY IDEOGRAPH-2F94D +2F94E 硎 # CJK COMPATIBILITY IDEOGRAPH-2F94E +2F94F 碌 # CJK COMPATIBILITY IDEOGRAPH-2F94F +2F950 磌 # CJK COMPATIBILITY IDEOGRAPH-2F950 +2F951 䃣 # CJK COMPATIBILITY IDEOGRAPH-2F951 +2F952 𥘦 # CJK COMPATIBILITY IDEOGRAPH-2F952 +2F953 祖 # CJK COMPATIBILITY IDEOGRAPH-2F953 +2F954 𥚚 # CJK COMPATIBILITY IDEOGRAPH-2F954 +2F955 𥛅 # CJK COMPATIBILITY IDEOGRAPH-2F955 +2F956 福 # CJK COMPATIBILITY IDEOGRAPH-2F956 +2F957 秫 # CJK COMPATIBILITY IDEOGRAPH-2F957 +2F958 䄯 # CJK COMPATIBILITY IDEOGRAPH-2F958 +2F959 穀 # CJK COMPATIBILITY IDEOGRAPH-2F959 +2F95A 穊 # CJK COMPATIBILITY IDEOGRAPH-2F95A +2F95B 穏 # CJK COMPATIBILITY IDEOGRAPH-2F95B +2F95C 𥥼 # CJK COMPATIBILITY IDEOGRAPH-2F95C +2F95D 𥪧 # CJK COMPATIBILITY IDEOGRAPH-2F95D +2F95E 𥪧 # CJK COMPATIBILITY IDEOGRAPH-2F95E +2F95F 竮 # CJK COMPATIBILITY IDEOGRAPH-2F95F +2F960 䈂 # CJK COMPATIBILITY IDEOGRAPH-2F960 +2F961 𥮫 # CJK COMPATIBILITY IDEOGRAPH-2F961 +2F962 篆 # CJK COMPATIBILITY IDEOGRAPH-2F962 +2F963 築 # CJK COMPATIBILITY IDEOGRAPH-2F963 +2F964 䈧 # CJK COMPATIBILITY IDEOGRAPH-2F964 +2F965 𥲀 # CJK COMPATIBILITY IDEOGRAPH-2F965 +2F966 糒 # CJK COMPATIBILITY IDEOGRAPH-2F966 +2F967 䊠 # CJK COMPATIBILITY IDEOGRAPH-2F967 +2F968 糨 # CJK COMPATIBILITY IDEOGRAPH-2F968 +2F969 糣 # CJK COMPATIBILITY IDEOGRAPH-2F969 +2F96A 紀 # CJK COMPATIBILITY IDEOGRAPH-2F96A +2F96B 𥾆 # CJK COMPATIBILITY IDEOGRAPH-2F96B +2F96C 絣 # CJK COMPATIBILITY IDEOGRAPH-2F96C +2F96D 䌁 # CJK COMPATIBILITY IDEOGRAPH-2F96D +2F96E 緇 # CJK COMPATIBILITY IDEOGRAPH-2F96E +2F96F 縂 # CJK COMPATIBILITY IDEOGRAPH-2F96F +2F970 繅 # CJK COMPATIBILITY IDEOGRAPH-2F970 +2F971 䌴 # CJK COMPATIBILITY IDEOGRAPH-2F971 +2F972 𦈨 # CJK COMPATIBILITY IDEOGRAPH-2F972 +2F973 𦉇 # CJK COMPATIBILITY IDEOGRAPH-2F973 +2F974 䍙 # CJK COMPATIBILITY IDEOGRAPH-2F974 +2F975 𦋙 # CJK COMPATIBILITY IDEOGRAPH-2F975 +2F976 罺 # CJK COMPATIBILITY IDEOGRAPH-2F976 +2F977 𦌾 # CJK COMPATIBILITY IDEOGRAPH-2F977 +2F978 羕 # CJK COMPATIBILITY IDEOGRAPH-2F978 +2F979 翺 # CJK COMPATIBILITY IDEOGRAPH-2F979 +2F97A 者 # CJK COMPATIBILITY IDEOGRAPH-2F97A +2F97B 𦓚 # CJK COMPATIBILITY IDEOGRAPH-2F97B +2F97C 𦔣 # CJK COMPATIBILITY IDEOGRAPH-2F97C +2F97D 聠 # CJK COMPATIBILITY IDEOGRAPH-2F97D +2F97E 𦖨 # CJK COMPATIBILITY IDEOGRAPH-2F97E +2F97F 聰 # CJK COMPATIBILITY IDEOGRAPH-2F97F +2F980 𣍟 # CJK COMPATIBILITY IDEOGRAPH-2F980 +2F981 䏕 # CJK COMPATIBILITY IDEOGRAPH-2F981 +2F982 育 # CJK COMPATIBILITY IDEOGRAPH-2F982 +2F983 脃 # CJK COMPATIBILITY IDEOGRAPH-2F983 +2F984 䐋 # CJK COMPATIBILITY IDEOGRAPH-2F984 +2F985 脾 # CJK COMPATIBILITY IDEOGRAPH-2F985 +2F986 媵 # CJK COMPATIBILITY IDEOGRAPH-2F986 +2F987 𦞧 # CJK COMPATIBILITY IDEOGRAPH-2F987 +2F988 𦞵 # CJK COMPATIBILITY IDEOGRAPH-2F988 +2F989 𣎓 # CJK COMPATIBILITY IDEOGRAPH-2F989 +2F98A 𣎜 # CJK COMPATIBILITY IDEOGRAPH-2F98A +2F98B 舁 # CJK COMPATIBILITY IDEOGRAPH-2F98B +2F98C 舄 # CJK COMPATIBILITY IDEOGRAPH-2F98C +2F98D 辞 # CJK COMPATIBILITY IDEOGRAPH-2F98D +2F98E 䑫 # CJK COMPATIBILITY IDEOGRAPH-2F98E +2F98F 芑 # CJK COMPATIBILITY IDEOGRAPH-2F98F +2F990 芋 # CJK COMPATIBILITY IDEOGRAPH-2F990 +2F991 芝 # CJK COMPATIBILITY IDEOGRAPH-2F991 +2F992 劳 # CJK COMPATIBILITY IDEOGRAPH-2F992 +2F993 花 # CJK COMPATIBILITY IDEOGRAPH-2F993 +2F994 芳 # CJK COMPATIBILITY IDEOGRAPH-2F994 +2F995 芽 # CJK COMPATIBILITY IDEOGRAPH-2F995 +2F996 苦 # CJK COMPATIBILITY IDEOGRAPH-2F996 +2F997 𦬼 # CJK COMPATIBILITY IDEOGRAPH-2F997 +2F998 若 # CJK COMPATIBILITY IDEOGRAPH-2F998 +2F999 茝 # CJK COMPATIBILITY IDEOGRAPH-2F999 +2F99A 荣 # CJK COMPATIBILITY IDEOGRAPH-2F99A +2F99B 莭 # CJK COMPATIBILITY IDEOGRAPH-2F99B +2F99C 茣 # CJK COMPATIBILITY IDEOGRAPH-2F99C +2F99D 莽 # CJK COMPATIBILITY IDEOGRAPH-2F99D +2F99E 菧 # CJK COMPATIBILITY IDEOGRAPH-2F99E +2F99F 著 # CJK COMPATIBILITY IDEOGRAPH-2F99F +2F9A0 荓 # CJK COMPATIBILITY IDEOGRAPH-2F9A0 +2F9A1 菊 # CJK COMPATIBILITY IDEOGRAPH-2F9A1 +2F9A2 菌 # CJK COMPATIBILITY IDEOGRAPH-2F9A2 +2F9A3 菜 # CJK COMPATIBILITY IDEOGRAPH-2F9A3 +2F9A4 𦰶 # CJK COMPATIBILITY IDEOGRAPH-2F9A4 +2F9A5 𦵫 # CJK COMPATIBILITY IDEOGRAPH-2F9A5 +2F9A6 𦳕 # CJK COMPATIBILITY IDEOGRAPH-2F9A6 +2F9A7 䔫 # CJK COMPATIBILITY IDEOGRAPH-2F9A7 +2F9A8 蓱 # CJK COMPATIBILITY IDEOGRAPH-2F9A8 +2F9A9 蓳 # CJK COMPATIBILITY IDEOGRAPH-2F9A9 +2F9AA 蔖 # CJK COMPATIBILITY IDEOGRAPH-2F9AA +2F9AB 𧏊 # CJK COMPATIBILITY IDEOGRAPH-2F9AB +2F9AC 蕤 # CJK COMPATIBILITY IDEOGRAPH-2F9AC +2F9AD 𦼬 # CJK COMPATIBILITY IDEOGRAPH-2F9AD +2F9AE 䕝 # CJK COMPATIBILITY IDEOGRAPH-2F9AE +2F9AF 䕡 # CJK COMPATIBILITY IDEOGRAPH-2F9AF +2F9B0 𦾱 # CJK COMPATIBILITY IDEOGRAPH-2F9B0 +2F9B1 𧃒 # CJK COMPATIBILITY IDEOGRAPH-2F9B1 +2F9B2 䕫 # CJK COMPATIBILITY IDEOGRAPH-2F9B2 +2F9B3 虐 # CJK COMPATIBILITY IDEOGRAPH-2F9B3 +2F9B4 虜 # CJK COMPATIBILITY IDEOGRAPH-2F9B4 +2F9B5 虧 # CJK COMPATIBILITY IDEOGRAPH-2F9B5 +2F9B6 虩 # CJK COMPATIBILITY IDEOGRAPH-2F9B6 +2F9B7 蚩 # CJK COMPATIBILITY IDEOGRAPH-2F9B7 +2F9B8 蚈 # CJK COMPATIBILITY IDEOGRAPH-2F9B8 +2F9B9 蜎 # CJK COMPATIBILITY IDEOGRAPH-2F9B9 +2F9BA 蛢 # CJK COMPATIBILITY IDEOGRAPH-2F9BA +2F9BB 蝹 # CJK COMPATIBILITY IDEOGRAPH-2F9BB +2F9BC 蜨 # CJK COMPATIBILITY IDEOGRAPH-2F9BC +2F9BD 蝫 # CJK COMPATIBILITY IDEOGRAPH-2F9BD +2F9BE 螆 # CJK COMPATIBILITY IDEOGRAPH-2F9BE +2F9BF 䗗 # CJK COMPATIBILITY IDEOGRAPH-2F9BF +2F9C0 蟡 # CJK COMPATIBILITY IDEOGRAPH-2F9C0 +2F9C1 蠁 # CJK COMPATIBILITY IDEOGRAPH-2F9C1 +2F9C2 䗹 # CJK COMPATIBILITY IDEOGRAPH-2F9C2 +2F9C3 衠 # CJK COMPATIBILITY IDEOGRAPH-2F9C3 +2F9C4 衣 # CJK COMPATIBILITY IDEOGRAPH-2F9C4 +2F9C5 𧙧 # CJK COMPATIBILITY IDEOGRAPH-2F9C5 +2F9C6 裗 # CJK COMPATIBILITY IDEOGRAPH-2F9C6 +2F9C7 裞 # CJK COMPATIBILITY IDEOGRAPH-2F9C7 +2F9C8 䘵 # CJK COMPATIBILITY IDEOGRAPH-2F9C8 +2F9C9 裺 # CJK COMPATIBILITY IDEOGRAPH-2F9C9 +2F9CA 㒻 # CJK COMPATIBILITY IDEOGRAPH-2F9CA +2F9CB 𧢮 # CJK COMPATIBILITY IDEOGRAPH-2F9CB +2F9CC 𧥦 # CJK COMPATIBILITY IDEOGRAPH-2F9CC +2F9CD 䚾 # CJK COMPATIBILITY IDEOGRAPH-2F9CD +2F9CE 䛇 # CJK COMPATIBILITY IDEOGRAPH-2F9CE +2F9CF 誠 # CJK COMPATIBILITY IDEOGRAPH-2F9CF +2F9D0 諭 # CJK COMPATIBILITY IDEOGRAPH-2F9D0 +2F9D1 變 # CJK COMPATIBILITY IDEOGRAPH-2F9D1 +2F9D2 豕 # CJK COMPATIBILITY IDEOGRAPH-2F9D2 +2F9D3 𧲨 # CJK COMPATIBILITY IDEOGRAPH-2F9D3 +2F9D4 貫 # CJK COMPATIBILITY IDEOGRAPH-2F9D4 +2F9D5 賁 # CJK COMPATIBILITY IDEOGRAPH-2F9D5 +2F9D6 贛 # CJK COMPATIBILITY IDEOGRAPH-2F9D6 +2F9D7 起 # CJK COMPATIBILITY IDEOGRAPH-2F9D7 +2F9D8 𧼯 # CJK COMPATIBILITY IDEOGRAPH-2F9D8 +2F9D9 𠠄 # CJK COMPATIBILITY IDEOGRAPH-2F9D9 +2F9DA 跋 # CJK COMPATIBILITY IDEOGRAPH-2F9DA +2F9DB 趼 # CJK COMPATIBILITY IDEOGRAPH-2F9DB +2F9DC 跰 # CJK COMPATIBILITY IDEOGRAPH-2F9DC +2F9DD 𠣞 # CJK COMPATIBILITY IDEOGRAPH-2F9DD +2F9DE 軔 # CJK COMPATIBILITY IDEOGRAPH-2F9DE +2F9DF 輸 # CJK COMPATIBILITY IDEOGRAPH-2F9DF +2F9E0 𨗒 # CJK COMPATIBILITY IDEOGRAPH-2F9E0 +2F9E1 𨗭 # CJK COMPATIBILITY IDEOGRAPH-2F9E1 +2F9E2 邔 # CJK COMPATIBILITY IDEOGRAPH-2F9E2 +2F9E3 郱 # CJK COMPATIBILITY IDEOGRAPH-2F9E3 +2F9E4 鄑 # CJK COMPATIBILITY IDEOGRAPH-2F9E4 +2F9E5 𨜮 # CJK COMPATIBILITY IDEOGRAPH-2F9E5 +2F9E6 鄛 # CJK COMPATIBILITY IDEOGRAPH-2F9E6 +2F9E7 鈸 # CJK COMPATIBILITY IDEOGRAPH-2F9E7 +2F9E8 鋗 # CJK COMPATIBILITY IDEOGRAPH-2F9E8 +2F9E9 鋘 # CJK COMPATIBILITY IDEOGRAPH-2F9E9 +2F9EA 鉼 # CJK COMPATIBILITY IDEOGRAPH-2F9EA +2F9EB 鏹 # CJK COMPATIBILITY IDEOGRAPH-2F9EB +2F9EC 鐕 # CJK COMPATIBILITY IDEOGRAPH-2F9EC +2F9ED 𨯺 # CJK COMPATIBILITY IDEOGRAPH-2F9ED +2F9EE 開 # CJK COMPATIBILITY IDEOGRAPH-2F9EE +2F9EF 䦕 # CJK COMPATIBILITY IDEOGRAPH-2F9EF +2F9F0 閷 # CJK COMPATIBILITY IDEOGRAPH-2F9F0 +2F9F1 𨵷 # CJK COMPATIBILITY IDEOGRAPH-2F9F1 +2F9F2 䧦 # CJK COMPATIBILITY IDEOGRAPH-2F9F2 +2F9F3 雃 # CJK COMPATIBILITY IDEOGRAPH-2F9F3 +2F9F4 嶲 # CJK COMPATIBILITY IDEOGRAPH-2F9F4 +2F9F5 霣 # CJK COMPATIBILITY IDEOGRAPH-2F9F5 +2F9F6 𩅅 # CJK COMPATIBILITY IDEOGRAPH-2F9F6 +2F9F7 𩈚 # CJK COMPATIBILITY IDEOGRAPH-2F9F7 +2F9F8 䩮 # CJK COMPATIBILITY IDEOGRAPH-2F9F8 +2F9F9 䩶 # CJK COMPATIBILITY IDEOGRAPH-2F9F9 +2F9FA 韠 # CJK COMPATIBILITY IDEOGRAPH-2F9FA +2F9FB 𩐊 # CJK COMPATIBILITY IDEOGRAPH-2F9FB +2F9FC 䪲 # CJK COMPATIBILITY IDEOGRAPH-2F9FC +2F9FD 𩒖 # CJK COMPATIBILITY IDEOGRAPH-2F9FD +2F9FE 頋 # CJK COMPATIBILITY IDEOGRAPH-2F9FE +2F9FF 頋 # CJK COMPATIBILITY IDEOGRAPH-2F9FF +2FA00 頩 # CJK COMPATIBILITY IDEOGRAPH-2FA00 +2FA01 𩖶 # CJK COMPATIBILITY IDEOGRAPH-2FA01 +2FA02 飢 # CJK COMPATIBILITY IDEOGRAPH-2FA02 +2FA03 䬳 # CJK COMPATIBILITY IDEOGRAPH-2FA03 +2FA04 餩 # CJK COMPATIBILITY IDEOGRAPH-2FA04 +2FA05 馧 # CJK COMPATIBILITY IDEOGRAPH-2FA05 +2FA06 駂 # CJK COMPATIBILITY IDEOGRAPH-2FA06 +2FA07 駾 # CJK COMPATIBILITY IDEOGRAPH-2FA07 +2FA08 䯎 # CJK COMPATIBILITY IDEOGRAPH-2FA08 +2FA09 𩬰 # CJK COMPATIBILITY IDEOGRAPH-2FA09 +2FA0A 鬒 # CJK COMPATIBILITY IDEOGRAPH-2FA0A +2FA0B 鱀 # CJK COMPATIBILITY IDEOGRAPH-2FA0B +2FA0C 鳽 # CJK COMPATIBILITY IDEOGRAPH-2FA0C +2FA0D 䳎 # CJK COMPATIBILITY IDEOGRAPH-2FA0D +2FA0E 䳭 # CJK COMPATIBILITY IDEOGRAPH-2FA0E +2FA0F 鵧 # CJK COMPATIBILITY IDEOGRAPH-2FA0F +2FA10 𪃎 # CJK COMPATIBILITY IDEOGRAPH-2FA10 +2FA11 䳸 # CJK COMPATIBILITY IDEOGRAPH-2FA11 +2FA12 𪄅 # CJK COMPATIBILITY IDEOGRAPH-2FA12 +2FA13 𪈎 # CJK COMPATIBILITY IDEOGRAPH-2FA13 +2FA14 𪊑 # CJK COMPATIBILITY IDEOGRAPH-2FA14 +2FA15 麻 # CJK COMPATIBILITY IDEOGRAPH-2FA15 +2FA16 䵖 # CJK COMPATIBILITY IDEOGRAPH-2FA16 +2FA17 黹 # CJK COMPATIBILITY IDEOGRAPH-2FA17 +2FA18 黾 # CJK COMPATIBILITY IDEOGRAPH-2FA18 +2FA19 鼅 # CJK COMPATIBILITY IDEOGRAPH-2FA19 +2FA1A 鼏 # CJK COMPATIBILITY IDEOGRAPH-2FA1A +2FA1B 鼖 # CJK COMPATIBILITY IDEOGRAPH-2FA1B +2FA1C 鼻 # CJK COMPATIBILITY IDEOGRAPH-2FA1C +2FA1D 𪘀 # CJK COMPATIBILITY IDEOGRAPH-2FA1D diff --git a/graf2d/win32gdk/gdk/src/iconv/translit.h b/graf2d/win32gdk/gdk/src/iconv/translit.h new file mode 100644 index 00000000000..15aa4472641 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/translit.h @@ -0,0 +1,4411 @@ +/* + * Copyright (C) 1999-2003 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * Transliteration table + */ + +static const unsigned int translit_data[9116] = { + 1, ' ', + 1, '!', + 1, 'c', + 2, 'l', 'b', + 3, 'y', 'e', 'n', + 1, '|', + 2, 'S', 'S', + 1, '"', + 3, '(', 'c', ')', + 1, 'a', + 2, '<', '<', + 3, 'n', 'o', 't', + 1, '-', + 3, '(', 'R', ')', + 2, '^', '0', + 3, '+', '/', '-', + 2, '^', '2', + 2, '^', '3', + 1,'\'', + 1, 'u', + 1, 'P', + 1, '.', + 1, ',', + 2, '^', '1', + 1, 'o', + 2, '>', '>', + 5, ' ', '1',0x2044, '4', ' ', + 5, ' ', '1',0x2044, '2', ' ', + 5, ' ', '3',0x2044, '4', ' ', + 1, '?', + 2, '`', 'A', + 2,0xB4, 'A', + 2, '^', 'A', + 2, '~', 'A', + 2, '"', 'A', + 1, 'A', + 2, 'A', 'E', + 1, 'C', + 2, '`', 'E', + 2,0xB4, 'E', + 2, '^', 'E', + 2, '"', 'E', + 2, '`', 'I', + 2,0xB4, 'I', + 2, '^', 'I', + 2, '"', 'I', + 1, 'D', + 2, '~', 'N', + 2, '`', 'O', + 2,0xB4, 'O', + 2, '^', 'O', + 2, '~', 'O', + 2, '"', 'O', + 1, 'x', + 1, 'O', + 2, '`', 'U', + 2,0xB4, 'U', + 2, '^', 'U', + 2, '"', 'U', + 2,0xB4, 'Y', + 2, 'T', 'h', + 2, 's', 's', + 2, '`', 'a', + 2,0xB4, 'a', + 2, '^', 'a', + 2, '~', 'a', + 2, '"', 'a', + 1, 'a', + 2, 'a', 'e', + 1, 'c', + 2, '`', 'e', + 2,0xB4, 'e', + 2, '^', 'e', + 2, '"', 'e', + 2, '`', 'i', + 2,0xB4, 'i', + 2, '^', 'i', + 2, '"', 'i', + 1, 'd', + 2, '~', 'n', + 2, '`', 'o', + 2,0xB4, 'o', + 2, '^', 'o', + 2, '~', 'o', + 2, '"', 'o', + 1, ':', + 1, 'o', + 2, '`', 'u', + 2,0xB4, 'u', + 2, '^', 'u', + 2, '"', 'u', + 2,0xB4, 'y', + 2, 't', 'h', + 2, '"', 'y', + 1, 'A', + 1, 'a', + 1, 'A', + 1, 'a', + 1, 'A', + 1, 'a', + 2,0xB4, 'C', + 2,0xB4, 'c', + 2, '^', 'C', + 2, '^', 'c', + 1, 'C', + 1, 'c', + 1, 'C', + 1, 'c', + 1, 'D', + 1, 'd', + 1, 'D', + 1, 'd', + 1, 'E', + 1, 'e', + 1, 'E', + 1, 'e', + 1, 'E', + 1, 'e', + 1, 'E', + 1, 'e', + 1, 'E', + 1, 'e', + 2, '^', 'G', + 2, '^', 'g', + 1, 'G', + 1, 'g', + 1, 'G', + 1, 'g', + 1, 'G', + 1, 'g', + 2, '^', 'H', + 2, '^', 'h', + 1, 'H', + 1, 'h', + 2, '~', 'I', + 2, '~', 'i', + 1, 'I', + 1, 'i', + 1, 'I', + 1, 'i', + 1, 'I', + 1, 'i', + 1, 'I', + 1, 'i', + 2, 'I', 'J', + 2, 'i', 'j', + 2, '^', 'J', + 2, '^', 'j', + 1, 'K', + 1, 'k', + 1, 'L', + 1, 'l', + 1, 'L', + 1, 'l', + 1, 'L', + 1, 'l', + 1, 'L', + 1, 'l', + 1, 'L', + 1, 'l', + 2,0xB4, 'N', + 2,0xB4, 'n', + 1, 'N', + 1, 'n', + 1, 'N', + 1, 'n', + 2,'\'', 'n', + 1, 'O', + 1, 'o', + 1, 'O', + 1, 'o', + 2, '"', 'O', + 2, '"', 'o', + 2, 'O', 'E', + 2, 'o', 'e', + 2,0xB4, 'R', + 2,0xB4, 'r', + 1, 'R', + 1, 'r', + 1, 'R', + 1, 'r', + 2,0xB4, 'S', + 2,0xB4, 's', + 2, '^', 'S', + 2, '^', 's', + 1, 'S', + 1, 's', + 1, 'S', + 1, 's', + 1, 'T', + 1, 't', + 1, 'T', + 1, 't', + 1, 'T', + 1, 't', + 2, '~', 'U', + 2, '~', 'u', + 1, 'U', + 1, 'u', + 1, 'U', + 1, 'u', + 1, 'U', + 1, 'u', + 2, '"', 'U', + 2, '"', 'u', + 1, 'U', + 1, 'u', + 2, '^', 'W', + 2, '^', 'w', + 2, '^', 'Y', + 2, '^', 'y', + 2, '"', 'Y', + 2,0xB4, 'Z', + 2,0xB4, 'z', + 1, 'Z', + 1, 'z', + 1, 'Z', + 1, 'z', + 1, 's', + 1, 'f', + 2, 'D',0x017D, + 2, 'D',0x017E, + 2, 'd',0x017E, + 2, 'L', 'J', + 2, 'L', 'j', + 2, 'l', 'j', + 2, 'N', 'J', + 2, 'N', 'j', + 2, 'n', 'j', + 2, 'D', 'Z', + 2, 'D', 'z', + 2, 'd', 'z', + 1, 'S', + 1, 's', + 1, 'T', + 1, 't', + 1,0x2032, + 1,0x2033, + 1,0x2018, + 1,0x2019, + 1,0x201B, + 1, '^', + 1,'\'', + 1,0xAF, + 1,0xB4, + 1, '`', + 1, '_', + 1, '~', + 1, '"', + 1,0x03B2, + 1,0x03B8, + 1,0x03A5, + 1,0x03C6, + 1,0x03C0, + 1,0x03BA, + 1,0x03C1, + 1,0x03C2, + 1,0x0398, + 1,0x03B5, + 1,0x03A3, + 2,0x0565,0x0582, + 2,0x05D5,0x05D5, + 2,0x05D5,0x05D9, + 2,0x05D9,0x05D9, + 2,0x0627,0x0674, + 2,0x0648,0x0674, + 2,0x06C7,0x0674, + 2,0x064A,0x0674, + 2,0x0E4D,0x0E32, + 2,0x0ECD,0x0EB2, + 2,0x0EAB,0x0E99, + 2,0x0EAB,0x0EA1, + 2,0x0FB2,0x0F81, + 2,0x0FB3,0x0F81, + 1, 'B', + 1, 'b', + 1, 'D', + 1, 'd', + 1, 'F', + 1, 'f', + 1, 'M', + 1, 'm', + 1, 'P', + 1, 'p', + 1, 'S', + 1, 's', + 1, 'T', + 1, 't', + 2, '`', 'W', + 2, '`', 'w', + 2,0xB4, 'W', + 2,0xB4, 'w', + 2, '"', 'W', + 2, '"', 'w', + 2, 'a',0x02BE, + 2, '`', 'Y', + 2, '`', 'y', + 1, ' ', + 1, ' ', + 1, ' ', + 1, ' ', + 1, ' ', + 1, ' ', + 1, ' ', + 1, ' ', + 1, '-', + 1, '-', + 1, '-', + 1, '-', + 1, '-', + 1, '-', + 1,'\'', + 1,'\'', + 1, ',', + 1,'\'', + 1, '"', + 1, '"', + 1, '"', + 1, '"', + 1, '+', + 1, 'o', + 1, '.', + 2, '.', '.', + 3, '.', '.', '.', + 4, 'o', '/', 'o', 'o', + 1,0xB4, + 2,0xB4,0xB4, + 3,0xB4,0xB4,0xB4, + 2,0x2035,0x2035, + 3,0x2035,0x2035,0x2035, + 1, '<', + 1, '>', + 2, '!', '!', + 1, '/', + 2, '?', '?', + 2, '?', '!', + 2, '!', '?', + 4,0xB4,0xB4,0xB4,0xB4, + 2, 'R', 's', + 4,0x0110,0x1ED3, 'n', 'g', + 3, 'E', 'U', 'R', + 3, 'a', '/', 'c', + 3, 'a', '/', 's', + 1, 'C', + 2,0xB0, 'C', + 3, 'c', '/', 'o', + 3, 'c', '/', 'u', + 1,0x0190, + 2,0xB0, 'F', + 1, 'g', + 1, 'H', + 1, 'H', + 1, 'H', + 1, 'h', + 1,0x0127, + 1, 'I', + 1, 'I', + 1, 'L', + 1, 'l', + 1, 'N', + 2, 'N', 'o', + 1, 'P', + 1, 'Q', + 1, 'R', + 1, 'R', + 1, 'R', + 3, 'T', 'E', 'L', + 2, 'T', 'M', + 1, 'Z', + 3, 'O', 'h', 'm', + 1, 'Z', + 1, 'B', + 1, 'C', + 1, 'e', + 1, 'e', + 1, 'E', + 1, 'F', + 1, 'M', + 1, 'o', + 1,0x05D0, + 1,0x05D1, + 1,0x05D2, + 1,0x05D3, + 1, 'i', + 3, 'F', 'A', 'X', + 1,0x03B3, + 1,0x0393, + 1,0x03A0, + 1,0x2211, + 1, 'D', + 1, 'd', + 1, 'e', + 1, 'i', + 1, 'j', + 5, ' ', '1',0x2044, '3', ' ', + 5, ' ', '2',0x2044, '3', ' ', + 5, ' ', '1',0x2044, '5', ' ', + 5, ' ', '2',0x2044, '5', ' ', + 5, ' ', '3',0x2044, '5', ' ', + 5, ' ', '4',0x2044, '5', ' ', + 5, ' ', '1',0x2044, '6', ' ', + 5, ' ', '5',0x2044, '6', ' ', + 5, ' ', '1',0x2044, '8', ' ', + 5, ' ', '3',0x2044, '8', ' ', + 5, ' ', '5',0x2044, '8', ' ', + 5, ' ', '7',0x2044, '8', ' ', + 3, ' ', '1',0x2044, + 1, 'I', + 2, 'I', 'I', + 3, 'I', 'I', 'I', + 2, 'I', 'V', + 1, 'V', + 2, 'V', 'I', + 3, 'V', 'I', 'I', + 4, 'V', 'I', 'I', 'I', + 2, 'I', 'X', + 1, 'X', + 2, 'X', 'I', + 3, 'X', 'I', 'I', + 1, 'L', + 1, 'C', + 1, 'D', + 1, 'M', + 1, 'i', + 2, 'i', 'i', + 3, 'i', 'i', 'i', + 2, 'i', 'v', + 1, 'v', + 2, 'v', 'i', + 3, 'v', 'i', 'i', + 4, 'v', 'i', 'i', 'i', + 2, 'i', 'x', + 1, 'x', + 2, 'x', 'i', + 3, 'x', 'i', 'i', + 1, 'l', + 1, 'c', + 1, 'd', + 1, 'm', + 2, '<', '-', + 1, '^', + 2, '-', '>', + 1, 'V', + 3, '<', '-', '>', + 2, '<', '=', + 2, '=', '>', + 3, '<', '=', '>', + 1, '-', + 1, '/', + 1,'\\', + 1, '*', + 1,0x2022, + 1, '|', + 2,0x222B,0x222B, + 3,0x222B,0x222B,0x222B, + 2,0x222E,0x222E, + 3,0x222E,0x222E,0x222E, + 1, ':', + 1, '~', + 2, '/', '=', + 2, '<', '=', + 2, '>', '=', + 2, '<', '<', + 2, '>', '>', + 1,0xB7, + 3, '<', '<', '<', + 3, '>', '>', '>', + 3,0xB7,0xB7,0xB7, + 5, '[', 'N', 'U', 'L', ']', + 5, '[', 'S', 'O', 'H', ']', + 5, '[', 'S', 'T', 'X', ']', + 5, '[', 'E', 'T', 'X', ']', + 5, '[', 'E', 'O', 'T', ']', + 5, '[', 'E', 'N', 'Q', ']', + 5, '[', 'A', 'C', 'K', ']', + 5, '[', 'B', 'E', 'L', ']', + 4, '[', 'B', 'S', ']', + 4, '[', 'H', 'T', ']', + 4, '[', 'L', 'F', ']', + 4, '[', 'V', 'T', ']', + 4, '[', 'F', 'F', ']', + 4, '[', 'C', 'R', ']', + 4, '[', 'S', 'O', ']', + 4, '[', 'S', 'I', ']', + 5, '[', 'D', 'L', 'E', ']', + 5, '[', 'D', 'C', '1', ']', + 5, '[', 'D', 'C', '2', ']', + 5, '[', 'D', 'C', '3', ']', + 5, '[', 'D', 'C', '4', ']', + 5, '[', 'N', 'A', 'K', ']', + 5, '[', 'S', 'Y', 'N', ']', + 5, '[', 'E', 'T', 'B', ']', + 5, '[', 'C', 'A', 'N', ']', + 4, '[', 'E', 'M', ']', + 5, '[', 'S', 'U', 'B', ']', + 5, '[', 'E', 'S', 'C', ']', + 4, '[', 'F', 'S', ']', + 4, '[', 'G', 'S', ']', + 4, '[', 'R', 'S', ']', + 4, '[', 'U', 'S', ']', + 4, '[', 'S', 'P', ']', + 5, '[', 'D', 'E', 'L', ']', + 4, '[', 'N', 'L', ']', + 3, '(', '1', ')', + 3, '(', '2', ')', + 3, '(', '3', ')', + 3, '(', '4', ')', + 3, '(', '5', ')', + 3, '(', '6', ')', + 3, '(', '7', ')', + 3, '(', '8', ')', + 3, '(', '9', ')', + 4, '(', '1', '0', ')', + 4, '(', '1', '1', ')', + 4, '(', '1', '2', ')', + 4, '(', '1', '3', ')', + 4, '(', '1', '4', ')', + 4, '(', '1', '5', ')', + 4, '(', '1', '6', ')', + 4, '(', '1', '7', ')', + 4, '(', '1', '8', ')', + 4, '(', '1', '9', ')', + 4, '(', '2', '0', ')', + 3, '(', '1', ')', + 3, '(', '2', ')', + 3, '(', '3', ')', + 3, '(', '4', ')', + 3, '(', '5', ')', + 3, '(', '6', ')', + 3, '(', '7', ')', + 3, '(', '8', ')', + 3, '(', '9', ')', + 4, '(', '1', '0', ')', + 4, '(', '1', '1', ')', + 4, '(', '1', '2', ')', + 4, '(', '1', '3', ')', + 4, '(', '1', '4', ')', + 4, '(', '1', '5', ')', + 4, '(', '1', '6', ')', + 4, '(', '1', '7', ')', + 4, '(', '1', '8', ')', + 4, '(', '1', '9', ')', + 4, '(', '2', '0', ')', + 2, '1', '.', + 2, '2', '.', + 2, '3', '.', + 2, '4', '.', + 2, '5', '.', + 2, '6', '.', + 2, '7', '.', + 2, '8', '.', + 2, '9', '.', + 3, '1', '0', '.', + 3, '1', '1', '.', + 3, '1', '2', '.', + 3, '1', '3', '.', + 3, '1', '4', '.', + 3, '1', '5', '.', + 3, '1', '6', '.', + 3, '1', '7', '.', + 3, '1', '8', '.', + 3, '1', '9', '.', + 3, '2', '0', '.', + 3, '(', 'a', ')', + 3, '(', 'b', ')', + 3, '(', 'c', ')', + 3, '(', 'd', ')', + 3, '(', 'e', ')', + 3, '(', 'f', ')', + 3, '(', 'g', ')', + 3, '(', 'h', ')', + 3, '(', 'i', ')', + 3, '(', 'j', ')', + 3, '(', 'k', ')', + 3, '(', 'l', ')', + 3, '(', 'm', ')', + 3, '(', 'n', ')', + 3, '(', 'o', ')', + 3, '(', 'p', ')', + 3, '(', 'q', ')', + 3, '(', 'r', ')', + 3, '(', 's', ')', + 3, '(', 't', ')', + 3, '(', 'u', ')', + 3, '(', 'v', ')', + 3, '(', 'w', ')', + 3, '(', 'x', ')', + 3, '(', 'y', ')', + 3, '(', 'z', ')', + 3, '(', 'A', ')', + 3, '(', 'B', ')', + 3, '(', 'C', ')', + 3, '(', 'D', ')', + 3, '(', 'E', ')', + 3, '(', 'F', ')', + 3, '(', 'G', ')', + 3, '(', 'H', ')', + 3, '(', 'I', ')', + 3, '(', 'J', ')', + 3, '(', 'K', ')', + 3, '(', 'L', ')', + 3, '(', 'M', ')', + 3, '(', 'N', ')', + 3, '(', 'O', ')', + 3, '(', 'P', ')', + 3, '(', 'Q', ')', + 3, '(', 'R', ')', + 3, '(', 'S', ')', + 3, '(', 'T', ')', + 3, '(', 'U', ')', + 3, '(', 'V', ')', + 3, '(', 'W', ')', + 3, '(', 'X', ')', + 3, '(', 'Y', ')', + 3, '(', 'Z', ')', + 3, '(', 'a', ')', + 3, '(', 'b', ')', + 3, '(', 'c', ')', + 3, '(', 'd', ')', + 3, '(', 'e', ')', + 3, '(', 'f', ')', + 3, '(', 'g', ')', + 3, '(', 'h', ')', + 3, '(', 'i', ')', + 3, '(', 'j', ')', + 3, '(', 'k', ')', + 3, '(', 'l', ')', + 3, '(', 'm', ')', + 3, '(', 'n', ')', + 3, '(', 'o', ')', + 3, '(', 'p', ')', + 3, '(', 'q', ')', + 3, '(', 'r', ')', + 3, '(', 's', ')', + 3, '(', 't', ')', + 3, '(', 'u', ')', + 3, '(', 'v', ')', + 3, '(', 'w', ')', + 3, '(', 'x', ')', + 3, '(', 'y', ')', + 3, '(', 'z', ')', + 3, '(', '0', ')', + 1, '-', + 1, '|', + 1, '+', + 1, '+', + 1, '+', + 1, '+', + 1, '+', + 1, '+', + 1, '+', + 1, '+', + 1, '+', + 1, 'o', + 4,0x222B,0x222B,0x222B,0x222B, + 3, ':', ':', '=', + 2, '=', '=', + 3, '=', '=', '=', + 1,0x6BCD, + 1,0x9F9F, + 1,0x4E00, + 1,0x4E28, + 1,0x4E36, + 1,0x4E3F, + 1,0x4E59, + 1,0x4E85, + 1,0x4E8C, + 1,0x4EA0, + 1,0x4EBA, + 1,0x513F, + 1,0x5165, + 1,0x516B, + 1,0x5182, + 1,0x5196, + 1,0x51AB, + 1,0x51E0, + 1,0x51F5, + 1,0x5200, + 1,0x529B, + 1,0x52F9, + 1,0x5315, + 1,0x531A, + 1,0x5338, + 1,0x5341, + 1,0x535C, + 1,0x5369, + 1,0x5382, + 1,0x53B6, + 1,0x53C8, + 1,0x53E3, + 1,0x56D7, + 1,0x571F, + 1,0x58EB, + 1,0x5902, + 1,0x590A, + 1,0x5915, + 1,0x5927, + 1,0x5973, + 1,0x5B50, + 1,0x5B80, + 1,0x5BF8, + 1,0x5C0F, + 1,0x5C22, + 1,0x5C38, + 1,0x5C6E, + 1,0x5C71, + 1,0x5DDB, + 1,0x5DE5, + 1,0x5DF1, + 1,0x5DFE, + 1,0x5E72, + 1,0x5E7A, + 1,0x5E7F, + 1,0x5EF4, + 1,0x5EFE, + 1,0x5F0B, + 1,0x5F13, + 1,0x5F50, + 1,0x5F61, + 1,0x5F73, + 1,0x5FC3, + 1,0x6208, + 1,0x6236, + 1,0x624B, + 1,0x652F, + 1,0x6534, + 1,0x6587, + 1,0x6597, + 1,0x65A4, + 1,0x65B9, + 1,0x65E0, + 1,0x65E5, + 1,0x66F0, + 1,0x6708, + 1,0x6728, + 1,0x6B20, + 1,0x6B62, + 1,0x6B79, + 1,0x6BB3, + 1,0x6BCB, + 1,0x6BD4, + 1,0x6BDB, + 1,0x6C0F, + 1,0x6C14, + 1,0x6C34, + 1,0x706B, + 1,0x722A, + 1,0x7236, + 1,0x723B, + 1,0x723F, + 1,0x7247, + 1,0x7259, + 1,0x725B, + 1,0x72AC, + 1,0x7384, + 1,0x7389, + 1,0x74DC, + 1,0x74E6, + 1,0x7518, + 1,0x751F, + 1,0x7528, + 1,0x7530, + 1,0x758B, + 1,0x7592, + 1,0x7676, + 1,0x767D, + 1,0x76AE, + 1,0x76BF, + 1,0x76EE, + 1,0x77DB, + 1,0x77E2, + 1,0x77F3, + 1,0x793A, + 1,0x79B8, + 1,0x79BE, + 1,0x7A74, + 1,0x7ACB, + 1,0x7AF9, + 1,0x7C73, + 1,0x7CF8, + 1,0x7F36, + 1,0x7F51, + 1,0x7F8A, + 1,0x7FBD, + 1,0x8001, + 1,0x800C, + 1,0x8012, + 1,0x8033, + 1,0x807F, + 1,0x8089, + 1,0x81E3, + 1,0x81EA, + 1,0x81F3, + 1,0x81FC, + 1,0x820C, + 1,0x821B, + 1,0x821F, + 1,0x826E, + 1,0x8272, + 1,0x8278, + 1,0x864D, + 1,0x866B, + 1,0x8840, + 1,0x884C, + 1,0x8863, + 1,0x897E, + 1,0x898B, + 1,0x89D2, + 1,0x8A00, + 1,0x8C37, + 1,0x8C46, + 1,0x8C55, + 1,0x8C78, + 1,0x8C9D, + 1,0x8D64, + 1,0x8D70, + 1,0x8DB3, + 1,0x8EAB, + 1,0x8ECA, + 1,0x8F9B, + 1,0x8FB0, + 1,0x8FB5, + 1,0x9091, + 1,0x9149, + 1,0x91C6, + 1,0x91CC, + 1,0x91D1, + 1,0x9577, + 1,0x9580, + 1,0x961C, + 1,0x96B6, + 1,0x96B9, + 1,0x96E8, + 1,0x9751, + 1,0x975E, + 1,0x9762, + 1,0x9769, + 1,0x97CB, + 1,0x97ED, + 1,0x97F3, + 1,0x9801, + 1,0x98A8, + 1,0x98DB, + 1,0x98DF, + 1,0x9996, + 1,0x9999, + 1,0x99AC, + 1,0x9AA8, + 1,0x9AD8, + 1,0x9ADF, + 1,0x9B25, + 1,0x9B2F, + 1,0x9B32, + 1,0x9B3C, + 1,0x9B5A, + 1,0x9CE5, + 1,0x9E75, + 1,0x9E7F, + 1,0x9EA5, + 1,0x9EBB, + 1,0x9EC3, + 1,0x9ECD, + 1,0x9ED1, + 1,0x9EF9, + 1,0x9EFD, + 1,0x9F0E, + 1,0x9F13, + 1,0x9F20, + 1,0x9F3B, + 1,0x9F4A, + 1,0x9F52, + 1,0x9F8D, + 1,0x9F9C, + 1,0x9FA0, + 1, ' ', + 1,0x3012, + 1,0x5341, + 1,0x5344, + 1,0x5345, + 1,0x3042, + 1,0x3044, + 1,0x3046, + 1,0x3048, + 1,0x304A, + 1,0x3064, + 1,0x3084, + 1,0x3086, + 1,0x3088, + 1,0x308F, + 1,0x304B, + 1,0x3051, + 2, ' ',0x3099, + 2, ' ',0x309A, + 1, '=', + 1,0x30A2, + 1,0x30A4, + 1,0x30A6, + 1,0x30A8, + 1,0x30AA, + 1,0x30C4, + 1,0x30E4, + 1,0x30E6, + 1,0x30E8, + 1,0x30EF, + 1,0x30AB, + 1,0x30B1, + 1,0x1100, + 1,0x1101, + 1,0x11AA, + 1,0x1102, + 1,0x11AC, + 1,0x11AD, + 1,0x1103, + 1,0x1104, + 1,0x1105, + 1,0x11B0, + 1,0x11B1, + 1,0x11B2, + 1,0x11B3, + 1,0x11B4, + 1,0x11B5, + 1,0x111A, + 1,0x1106, + 1,0x1107, + 1,0x1108, + 1,0x1121, + 1,0x1109, + 1,0x110A, + 1,0x110B, + 1,0x110C, + 1,0x110D, + 1,0x110E, + 1,0x110F, + 1,0x1110, + 1,0x1111, + 1,0x1112, + 1,0x1161, + 1,0x1162, + 1,0x1163, + 1,0x1164, + 1,0x1165, + 1,0x1166, + 1,0x1167, + 1,0x1168, + 1,0x1169, + 1,0x116A, + 1,0x116B, + 1,0x116C, + 1,0x116D, + 1,0x116E, + 1,0x116F, + 1,0x1170, + 1,0x1171, + 1,0x1172, + 1,0x1173, + 1,0x1174, + 1,0x1175, + 1,0x1160, + 1,0x1114, + 1,0x1115, + 1,0x11C7, + 1,0x11C8, + 1,0x11CC, + 1,0x11CE, + 1,0x11D3, + 1,0x11D7, + 1,0x11D9, + 1,0x111C, + 1,0x11DD, + 1,0x11DF, + 1,0x111D, + 1,0x111E, + 1,0x1120, + 1,0x1122, + 1,0x1123, + 1,0x1127, + 1,0x1129, + 1,0x112B, + 1,0x112C, + 1,0x112D, + 1,0x112E, + 1,0x112F, + 1,0x1132, + 1,0x1136, + 1,0x1140, + 1,0x1147, + 1,0x114C, + 1,0x11F1, + 1,0x11F2, + 1,0x1157, + 1,0x1158, + 1,0x1159, + 1,0x1184, + 1,0x1185, + 1,0x1188, + 1,0x1191, + 1,0x1192, + 1,0x1194, + 1,0x119E, + 1,0x11A1, + 1,0x30AF, + 1,0x30B7, + 1,0x30B9, + 1,0x30C8, + 1,0x30CC, + 1,0x30CF, + 1,0x30D2, + 1,0x30D5, + 1,0x30D8, + 1,0x30DB, + 1,0x30E0, + 1,0x30E9, + 1,0x30EA, + 1,0x30EB, + 1,0x30EC, + 1,0x30ED, + 3, '(',0x1100, ')', + 3, '(',0x1102, ')', + 3, '(',0x1103, ')', + 3, '(',0x1105, ')', + 3, '(',0x1106, ')', + 3, '(',0x1107, ')', + 3, '(',0x1109, ')', + 3, '(',0x110B, ')', + 3, '(',0x110C, ')', + 3, '(',0x110E, ')', + 3, '(',0x110F, ')', + 3, '(',0x1110, ')', + 3, '(',0x1111, ')', + 3, '(',0x1112, ')', + 4, '(',0x1100,0x1161, ')', + 4, '(',0x1102,0x1161, ')', + 4, '(',0x1103,0x1161, ')', + 4, '(',0x1105,0x1161, ')', + 4, '(',0x1106,0x1161, ')', + 4, '(',0x1107,0x1161, ')', + 4, '(',0x1109,0x1161, ')', + 4, '(',0x110B,0x1161, ')', + 4, '(',0x110C,0x1161, ')', + 4, '(',0x110E,0x1161, ')', + 4, '(',0x110F,0x1161, ')', + 4, '(',0x1110,0x1161, ')', + 4, '(',0x1111,0x1161, ')', + 4, '(',0x1112,0x1161, ')', + 4, '(',0x110C,0x116E, ')', + 7, '(',0x110B,0x1169,0x110C,0x1165,0x11AB, ')', + 6, '(',0x110B,0x1169,0x1112,0x116E, ')', + 3, '(',0x4E00, ')', + 3, '(',0x4E8C, ')', + 3, '(',0x4E09, ')', + 3, '(',0x56DB, ')', + 3, '(',0x4E94, ')', + 3, '(',0x516D, ')', + 3, '(',0x4E03, ')', + 3, '(',0x516B, ')', + 3, '(',0x4E5D, ')', + 3, '(',0x5341, ')', + 3, '(',0x6708, ')', + 3, '(',0x706B, ')', + 3, '(',0x6C34, ')', + 3, '(',0x6728, ')', + 3, '(',0x91D1, ')', + 3, '(',0x571F, ')', + 3, '(',0x65E5, ')', + 3, '(',0x682A, ')', + 3, '(',0x6709, ')', + 3, '(',0x793E, ')', + 3, '(',0x540D, ')', + 3, '(',0x7279, ')', + 3, '(',0x8CA1, ')', + 3, '(',0x795D, ')', + 3, '(',0x52B4, ')', + 3, '(',0x4EE3, ')', + 3, '(',0x547C, ')', + 3, '(',0x5B66, ')', + 3, '(',0x76E3, ')', + 3, '(',0x4F01, ')', + 3, '(',0x8CC7, ')', + 3, '(',0x5354, ')', + 3, '(',0x796D, ')', + 3, '(',0x4F11, ')', + 3, '(',0x81EA, ')', + 3, '(',0x81F3, ')', + 3, 'P', 'T', 'E', + 4, '(', '2', '1', ')', + 4, '(', '2', '2', ')', + 4, '(', '2', '3', ')', + 4, '(', '2', '4', ')', + 4, '(', '2', '5', ')', + 4, '(', '2', '6', ')', + 4, '(', '2', '7', ')', + 4, '(', '2', '8', ')', + 4, '(', '2', '9', ')', + 4, '(', '3', '0', ')', + 4, '(', '3', '1', ')', + 4, '(', '3', '2', ')', + 4, '(', '3', '3', ')', + 4, '(', '3', '4', ')', + 4, '(', '3', '5', ')', + 3, '(',0x1100, ')', + 3, '(',0x1102, ')', + 3, '(',0x1103, ')', + 3, '(',0x1105, ')', + 3, '(',0x1106, ')', + 3, '(',0x1107, ')', + 3, '(',0x1109, ')', + 3, '(',0x110B, ')', + 3, '(',0x110C, ')', + 3, '(',0x110E, ')', + 3, '(',0x110F, ')', + 3, '(',0x1110, ')', + 3, '(',0x1111, ')', + 3, '(',0x1112, ')', + 4, '(',0x1100,0x1161, ')', + 4, '(',0x1102,0x1161, ')', + 4, '(',0x1103,0x1161, ')', + 4, '(',0x1105,0x1161, ')', + 4, '(',0x1106,0x1161, ')', + 4, '(',0x1107,0x1161, ')', + 4, '(',0x1109,0x1161, ')', + 4, '(',0x110B,0x1161, ')', + 4, '(',0x110C,0x1161, ')', + 4, '(',0x110E,0x1161, ')', + 4, '(',0x110F,0x1161, ')', + 4, '(',0x1110,0x1161, ')', + 4, '(',0x1111,0x1161, ')', + 4, '(',0x1112,0x1161, ')', + 7, '(',0x110E,0x1161,0x11B7,0x1100,0x1169, ')', + 6, '(',0x110C,0x116E,0x110B,0x1174, ')', + 3, '(',0x4E00, ')', + 3, '(',0x4E8C, ')', + 3, '(',0x4E09, ')', + 3, '(',0x56DB, ')', + 3, '(',0x4E94, ')', + 3, '(',0x516D, ')', + 3, '(',0x4E03, ')', + 3, '(',0x516B, ')', + 3, '(',0x4E5D, ')', + 3, '(',0x5341, ')', + 3, '(',0x6708, ')', + 3, '(',0x706B, ')', + 3, '(',0x6C34, ')', + 3, '(',0x6728, ')', + 3, '(',0x91D1, ')', + 3, '(',0x571F, ')', + 3, '(',0x65E5, ')', + 3, '(',0x682A, ')', + 3, '(',0x6709, ')', + 3, '(',0x793E, ')', + 3, '(',0x540D, ')', + 3, '(',0x7279, ')', + 3, '(',0x8CA1, ')', + 3, '(',0x795D, ')', + 3, '(',0x52B4, ')', + 3, '(',0x79D8, ')', + 3, '(',0x7537, ')', + 3, '(',0x5973, ')', + 3, '(',0x9069, ')', + 3, '(',0x512A, ')', + 3, '(',0x5370, ')', + 3, '(',0x6CE8, ')', + 3, '(',0x9805, ')', + 3, '(',0x4F11, ')', + 3, '(',0x5199, ')', + 3, '(',0x6B63, ')', + 3, '(',0x4E0A, ')', + 3, '(',0x4E2D, ')', + 3, '(',0x4E0B, ')', + 3, '(',0x5DE6, ')', + 3, '(',0x53F3, ')', + 3, '(',0x533B, ')', + 3, '(',0x5B97, ')', + 3, '(',0x5B66, ')', + 3, '(',0x76E3, ')', + 3, '(',0x4F01, ')', + 3, '(',0x8CC7, ')', + 3, '(',0x5354, ')', + 3, '(',0x591C, ')', + 4, '(', '3', '6', ')', + 4, '(', '3', '7', ')', + 4, '(', '3', '8', ')', + 4, '(', '3', '9', ')', + 4, '(', '4', '0', ')', + 4, '(', '4', '1', ')', + 4, '(', '4', '2', ')', + 4, '(', '4', '3', ')', + 4, '(', '4', '4', ')', + 4, '(', '4', '5', ')', + 4, '(', '4', '6', ')', + 4, '(', '4', '7', ')', + 4, '(', '4', '8', ')', + 4, '(', '4', '9', ')', + 4, '(', '5', '0', ')', + 2, '1',0x6708, + 2, '2',0x6708, + 2, '3',0x6708, + 2, '4',0x6708, + 2, '5',0x6708, + 2, '6',0x6708, + 2, '7',0x6708, + 2, '8',0x6708, + 2, '9',0x6708, + 3, '1', '0',0x6708, + 3, '1', '1',0x6708, + 3, '1', '2',0x6708, + 2, 'H', 'g', + 3, 'e', 'r', 'g', + 2, 'e', 'V', + 3, 'L', 'T', 'D', + 3, '(',0x30A2, ')', + 3, '(',0x30A4, ')', + 3, '(',0x30A6, ')', + 3, '(',0x30A8, ')', + 3, '(',0x30AA, ')', + 3, '(',0x30AB, ')', + 3, '(',0x30AD, ')', + 3, '(',0x30AF, ')', + 3, '(',0x30B1, ')', + 3, '(',0x30B3, ')', + 3, '(',0x30B5, ')', + 3, '(',0x30B7, ')', + 3, '(',0x30B9, ')', + 3, '(',0x30BB, ')', + 3, '(',0x30BD, ')', + 3, '(',0x30BF, ')', + 3, '(',0x30C1, ')', + 3, '(',0x30C4, ')', + 3, '(',0x30C6, ')', + 3, '(',0x30C8, ')', + 3, '(',0x30CA, ')', + 3, '(',0x30CB, ')', + 3, '(',0x30CC, ')', + 3, '(',0x30CD, ')', + 3, '(',0x30CE, ')', + 3, '(',0x30CF, ')', + 3, '(',0x30D2, ')', + 3, '(',0x30D5, ')', + 3, '(',0x30D8, ')', + 3, '(',0x30DB, ')', + 3, '(',0x30DE, ')', + 3, '(',0x30DF, ')', + 3, '(',0x30E0, ')', + 3, '(',0x30E1, ')', + 3, '(',0x30E2, ')', + 3, '(',0x30E4, ')', + 3, '(',0x30E6, ')', + 3, '(',0x30E8, ')', + 3, '(',0x30E9, ')', + 3, '(',0x30EA, ')', + 3, '(',0x30EB, ')', + 3, '(',0x30EC, ')', + 3, '(',0x30ED, ')', + 3, '(',0x30EF, ')', + 3, '(',0x30F0, ')', + 3, '(',0x30F1, ')', + 3, '(',0x30F2, ')', + 4,0x30A2,0x30D1,0x30FC,0x30C8, + 4,0x30A2,0x30EB,0x30D5,0x30A1, + 4,0x30A2,0x30F3,0x30DA,0x30A2, + 3,0x30A2,0x30FC,0x30EB, + 4,0x30A4,0x30CB,0x30F3,0x30B0, + 3,0x30A4,0x30F3,0x30C1, + 3,0x30A6,0x30A9,0x30F3, + 5,0x30A8,0x30B9,0x30AF,0x30FC,0x30C9, + 4,0x30A8,0x30FC,0x30AB,0x30FC, + 3,0x30AA,0x30F3,0x30B9, + 3,0x30AA,0x30FC,0x30E0, + 3,0x30AB,0x30A4,0x30EA, + 4,0x30AB,0x30E9,0x30C3,0x30C8, + 4,0x30AB,0x30ED,0x30EA,0x30FC, + 3,0x30AC,0x30ED,0x30F3, + 3,0x30AC,0x30F3,0x30DE, + 2,0x30AE,0x30AC, + 3,0x30AE,0x30CB,0x30FC, + 4,0x30AD,0x30E5,0x30EA,0x30FC, + 4,0x30AE,0x30EB,0x30C0,0x30FC, + 2,0x30AD,0x30ED, + 5,0x30AD,0x30ED,0x30B0,0x30E9,0x30E0, + 6,0x30AD,0x30ED,0x30E1,0x30FC,0x30C8,0x30EB, + 5,0x30AD,0x30ED,0x30EF,0x30C3,0x30C8, + 3,0x30B0,0x30E9,0x30E0, + 5,0x30B0,0x30E9,0x30E0,0x30C8,0x30F3, + 5,0x30AF,0x30EB,0x30BC,0x30A4,0x30ED, + 4,0x30AF,0x30ED,0x30FC,0x30CD, + 3,0x30B1,0x30FC,0x30B9, + 3,0x30B3,0x30EB,0x30CA, + 3,0x30B3,0x30FC,0x30DD, + 4,0x30B5,0x30A4,0x30AF,0x30EB, + 5,0x30B5,0x30F3,0x30C1,0x30FC,0x30E0, + 4,0x30B7,0x30EA,0x30F3,0x30B0, + 3,0x30BB,0x30F3,0x30C1, + 3,0x30BB,0x30F3,0x30C8, + 3,0x30C0,0x30FC,0x30B9, + 2,0x30C7,0x30B7, + 2,0x30C9,0x30EB, + 2,0x30C8,0x30F3, + 2,0x30CA,0x30CE, + 3,0x30CE,0x30C3,0x30C8, + 3,0x30CF,0x30A4,0x30C4, + 5,0x30D1,0x30FC,0x30BB,0x30F3,0x30C8, + 3,0x30D1,0x30FC,0x30C4, + 4,0x30D0,0x30FC,0x30EC,0x30EB, + 5,0x30D4,0x30A2,0x30B9,0x30C8,0x30EB, + 3,0x30D4,0x30AF,0x30EB, + 2,0x30D4,0x30B3, + 2,0x30D3,0x30EB, + 5,0x30D5,0x30A1,0x30E9,0x30C3,0x30C9, + 4,0x30D5,0x30A3,0x30FC,0x30C8, + 5,0x30D6,0x30C3,0x30B7,0x30A7,0x30EB, + 3,0x30D5,0x30E9,0x30F3, + 5,0x30D8,0x30AF,0x30BF,0x30FC,0x30EB, + 2,0x30DA,0x30BD, + 3,0x30DA,0x30CB,0x30D2, + 3,0x30D8,0x30EB,0x30C4, + 3,0x30DA,0x30F3,0x30B9, + 3,0x30DA,0x30FC,0x30B8, + 3,0x30D9,0x30FC,0x30BF, + 4,0x30DD,0x30A4,0x30F3,0x30C8, + 3,0x30DC,0x30EB,0x30C8, + 2,0x30DB,0x30F3, + 3,0x30DD,0x30F3,0x30C9, + 3,0x30DB,0x30FC,0x30EB, + 3,0x30DB,0x30FC,0x30F3, + 4,0x30DE,0x30A4,0x30AF,0x30ED, + 3,0x30DE,0x30A4,0x30EB, + 3,0x30DE,0x30C3,0x30CF, + 3,0x30DE,0x30EB,0x30AF, + 5,0x30DE,0x30F3,0x30B7,0x30E7,0x30F3, + 4,0x30DF,0x30AF,0x30ED,0x30F3, + 2,0x30DF,0x30EA, + 5,0x30DF,0x30EA,0x30D0,0x30FC,0x30EB, + 2,0x30E1,0x30AC, + 4,0x30E1,0x30AC,0x30C8,0x30F3, + 4,0x30E1,0x30FC,0x30C8,0x30EB, + 3,0x30E4,0x30FC,0x30C9, + 3,0x30E4,0x30FC,0x30EB, + 3,0x30E6,0x30A2,0x30F3, + 4,0x30EA,0x30C3,0x30C8,0x30EB, + 2,0x30EA,0x30E9, + 3,0x30EB,0x30D4,0x30FC, + 4,0x30EB,0x30FC,0x30D6,0x30EB, + 2,0x30EC,0x30E0, + 5,0x30EC,0x30F3,0x30C8,0x30B2,0x30F3, + 3,0x30EF,0x30C3,0x30C8, + 2, '0',0x70B9, + 2, '1',0x70B9, + 2, '2',0x70B9, + 2, '3',0x70B9, + 2, '4',0x70B9, + 2, '5',0x70B9, + 2, '6',0x70B9, + 2, '7',0x70B9, + 2, '8',0x70B9, + 2, '9',0x70B9, + 3, '1', '0',0x70B9, + 3, '1', '1',0x70B9, + 3, '1', '2',0x70B9, + 3, '1', '3',0x70B9, + 3, '1', '4',0x70B9, + 3, '1', '5',0x70B9, + 3, '1', '6',0x70B9, + 3, '1', '7',0x70B9, + 3, '1', '8',0x70B9, + 3, '1', '9',0x70B9, + 3, '2', '0',0x70B9, + 3, '2', '1',0x70B9, + 3, '2', '2',0x70B9, + 3, '2', '3',0x70B9, + 3, '2', '4',0x70B9, + 3, 'h', 'P', 'a', + 2, 'd', 'a', + 2, 'A', 'U', + 3, 'b', 'a', 'r', + 2, 'o', 'V', + 2, 'p', 'c', + 2, 'd', 'm', + 4, 'd', 'm', '^', '2', + 4, 'd', 'm', '^', '3', + 2, 'I', 'U', + 2,0x5E73,0x6210, + 2,0x662D,0x548C, + 2,0x5927,0x6B63, + 2,0x660E,0x6CBB, + 4,0x682A,0x5F0F,0x4F1A,0x793E, + 2, 'p', 'A', + 2, 'n', 'A', + 2,0x03BC, 'A', + 2, 'm', 'A', + 2, 'k', 'A', + 2, 'K', 'B', + 2, 'M', 'B', + 2, 'G', 'B', + 3, 'c', 'a', 'l', + 4, 'k', 'c', 'a', 'l', + 2, 'p', 'F', + 2, 'n', 'F', + 2,0x03BC, 'F', + 2,0x03BC, 'g', + 2, 'm', 'g', + 2, 'k', 'g', + 2, 'H', 'z', + 3, 'k', 'H', 'z', + 3, 'M', 'H', 'z', + 3, 'G', 'H', 'z', + 3, 'T', 'H', 'z', + 2,0x03BC, 'l', + 2, 'm', 'l', + 2, 'd', 'l', + 2, 'k', 'l', + 2, 'f', 'm', + 2, 'n', 'm', + 2,0x03BC, 'm', + 2, 'm', 'm', + 2, 'c', 'm', + 2, 'k', 'm', + 4, 'm', 'm', '^', '2', + 4, 'c', 'm', '^', '2', + 3, 'm', '^', '2', + 4, 'k', 'm', '^', '2', + 4, 'm', 'm', '^', '3', + 4, 'c', 'm', '^', '3', + 3, 'm', '^', '3', + 4, 'k', 'm', '^', '3', + 3, 'm', '/', 's', + 5, 'm', '/', 's', '^', '2', + 2, 'P', 'a', + 3, 'k', 'P', 'a', + 3, 'M', 'P', 'a', + 3, 'G', 'P', 'a', + 3, 'r', 'a', 'd', + 5, 'r', 'a', 'd', '/', 's', + 7, 'r', 'a', 'd', '/', 's', '^', '2', + 2, 'p', 's', + 2, 'n', 's', + 2,0x03BC, 's', + 2, 'm', 's', + 2, 'p', 'V', + 2, 'n', 'V', + 2,0x03BC, 'V', + 2, 'm', 'V', + 2, 'k', 'V', + 2, 'M', 'V', + 2, 'p', 'W', + 2, 'n', 'W', + 2,0x03BC, 'W', + 2, 'm', 'W', + 2, 'k', 'W', + 2, 'M', 'W', + 2, 'k',0x03A9, + 2, 'M',0x03A9, + 4, 'a', '.', 'm', '.', + 2, 'B', 'q', + 2, 'c', 'c', + 2, 'c', 'd', + 4, 'C', '/', 'k', 'g', + 3, 'C', 'o', '.', + 2, 'd', 'B', + 2, 'G', 'y', + 2, 'h', 'a', + 2, 'H', 'P', + 2, 'i', 'n', + 2, 'K', 'K', + 2, 'K', 'M', + 2, 'k', 't', + 2, 'l', 'm', + 2, 'l', 'n', + 3, 'l', 'o', 'g', + 2, 'l', 'x', + 2, 'm', 'b', + 3, 'm', 'i', 'l', + 3, 'm', 'o', 'l', + 2, 'P', 'H', + 4, 'p', '.', 'm', '.', + 3, 'P', 'P', 'M', + 2, 'P', 'R', + 2, 's', 'r', + 2, 'S', 'v', + 2, 'W', 'b', + 3, 'V', '/', 'm', + 3, 'A', '/', 'm', + 3, 'g', 'a', 'l', + 2, '1',0x65E5, + 2, '2',0x65E5, + 2, '3',0x65E5, + 2, '4',0x65E5, + 2, '5',0x65E5, + 2, '6',0x65E5, + 2, '7',0x65E5, + 2, '8',0x65E5, + 2, '9',0x65E5, + 3, '1', '0',0x65E5, + 3, '1', '1',0x65E5, + 3, '1', '2',0x65E5, + 3, '1', '3',0x65E5, + 3, '1', '4',0x65E5, + 3, '1', '5',0x65E5, + 3, '1', '6',0x65E5, + 3, '1', '7',0x65E5, + 3, '1', '8',0x65E5, + 3, '1', '9',0x65E5, + 3, '2', '0',0x65E5, + 3, '2', '1',0x65E5, + 3, '2', '2',0x65E5, + 3, '2', '3',0x65E5, + 3, '2', '4',0x65E5, + 3, '2', '5',0x65E5, + 3, '2', '6',0x65E5, + 3, '2', '7',0x65E5, + 3, '2', '8',0x65E5, + 3, '2', '9',0x65E5, + 3, '3', '0',0x65E5, + 3, '3', '1',0x65E5, + 1,0x8C48, + 1,0x66F4, + 1,0x8ECA, + 1,0x8CC8, + 1,0x6ED1, + 1,0x4E32, + 1,0x53E5, + 1,0x9F9C, + 1,0x9F9C, + 1,0x5951, + 1,0x91D1, + 1,0x5587, + 1,0x5948, + 1,0x61F6, + 1,0x7669, + 1,0x7F85, + 1,0x863F, + 1,0x87BA, + 1,0x88F8, + 1,0x908F, + 1,0x6A02, + 1,0x6D1B, + 1,0x70D9, + 1,0x73DE, + 1,0x843D, + 1,0x916A, + 1,0x99F1, + 1,0x4E82, + 1,0x5375, + 1,0x6B04, + 1,0x721B, + 1,0x862D, + 1,0x9E1E, + 1,0x5D50, + 1,0x6FEB, + 1,0x85CD, + 1,0x8964, + 1,0x62C9, + 1,0x81D8, + 1,0x881F, + 1,0x5ECA, + 1,0x6717, + 1,0x6D6A, + 1,0x72FC, + 1,0x90CE, + 1,0x4F86, + 1,0x51B7, + 1,0x52DE, + 1,0x64C4, + 1,0x6AD3, + 1,0x7210, + 1,0x76E7, + 1,0x8001, + 1,0x8606, + 1,0x865C, + 1,0x8DEF, + 1,0x9732, + 1,0x9B6F, + 1,0x9DFA, + 1,0x788C, + 1,0x797F, + 1,0x7DA0, + 1,0x83C9, + 1,0x9304, + 1,0x9E7F, + 1,0x8AD6, + 1,0x58DF, + 1,0x5F04, + 1,0x7C60, + 1,0x807E, + 1,0x7262, + 1,0x78CA, + 1,0x8CC2, + 1,0x96F7, + 1,0x58D8, + 1,0x5C62, + 1,0x6A13, + 1,0x6DDA, + 1,0x6F0F, + 1,0x7D2F, + 1,0x7E37, + 1,0x964B, + 1,0x52D2, + 1,0x808B, + 1,0x51DC, + 1,0x51CC, + 1,0x7A1C, + 1,0x7DBE, + 1,0x83F1, + 1,0x9675, + 1,0x8B80, + 1,0x62CF, + 1,0x6A02, + 1,0x8AFE, + 1,0x4E39, + 1,0x5BE7, + 1,0x6012, + 1,0x7387, + 1,0x7570, + 1,0x5317, + 1,0x78FB, + 1,0x4FBF, + 1,0x5FA9, + 1,0x4E0D, + 1,0x6CCC, + 1,0x6578, + 1,0x7D22, + 1,0x53C3, + 1,0x585E, + 1,0x7701, + 1,0x8449, + 1,0x8AAA, + 1,0x6BBA, + 1,0x8FB0, + 1,0x6C88, + 1,0x62FE, + 1,0x82E5, + 1,0x63A0, + 1,0x7565, + 1,0x4EAE, + 1,0x5169, + 1,0x51C9, + 1,0x6881, + 1,0x7CE7, + 1,0x826F, + 1,0x8AD2, + 1,0x91CF, + 1,0x52F5, + 1,0x5442, + 1,0x5973, + 1,0x5EEC, + 1,0x65C5, + 1,0x6FFE, + 1,0x792A, + 1,0x95AD, + 1,0x9A6A, + 1,0x9E97, + 1,0x9ECE, + 1,0x529B, + 1,0x66C6, + 1,0x6B77, + 1,0x8F62, + 1,0x5E74, + 1,0x6190, + 1,0x6200, + 1,0x649A, + 1,0x6F23, + 1,0x7149, + 1,0x7489, + 1,0x79CA, + 1,0x7DF4, + 1,0x806F, + 1,0x8F26, + 1,0x84EE, + 1,0x9023, + 1,0x934A, + 1,0x5217, + 1,0x52A3, + 1,0x54BD, + 1,0x70C8, + 1,0x88C2, + 1,0x8AAA, + 1,0x5EC9, + 1,0x5FF5, + 1,0x637B, + 1,0x6BAE, + 1,0x7C3E, + 1,0x7375, + 1,0x4EE4, + 1,0x56F9, + 1,0x5BE7, + 1,0x5DBA, + 1,0x601C, + 1,0x73B2, + 1,0x7469, + 1,0x7F9A, + 1,0x8046, + 1,0x9234, + 1,0x96F6, + 1,0x9748, + 1,0x9818, + 1,0x4F8B, + 1,0x79AE, + 1,0x91B4, + 1,0x96B8, + 1,0x60E1, + 1,0x4E86, + 1,0x50DA, + 1,0x5BEE, + 1,0x5C3F, + 1,0x6599, + 1,0x6A02, + 1,0x71CE, + 1,0x7642, + 1,0x84FC, + 1,0x907C, + 1,0x9F8D, + 1,0x6688, + 1,0x962E, + 1,0x5289, + 1,0x677B, + 1,0x67F3, + 1,0x6D41, + 1,0x6E9C, + 1,0x7409, + 1,0x7559, + 1,0x786B, + 1,0x7D10, + 1,0x985E, + 1,0x516D, + 1,0x622E, + 1,0x9678, + 1,0x502B, + 1,0x5D19, + 1,0x6DEA, + 1,0x8F2A, + 1,0x5F8B, + 1,0x6144, + 1,0x6817, + 1,0x7387, + 1,0x9686, + 1,0x5229, + 1,0x540F, + 1,0x5C65, + 1,0x6613, + 1,0x674E, + 1,0x68A8, + 1,0x6CE5, + 1,0x7406, + 1,0x75E2, + 1,0x7F79, + 1,0x88CF, + 1,0x88E1, + 1,0x91CC, + 1,0x96E2, + 1,0x533F, + 1,0x6EBA, + 1,0x541D, + 1,0x71D0, + 1,0x7498, + 1,0x85FA, + 1,0x96A3, + 1,0x9C57, + 1,0x9E9F, + 1,0x6797, + 1,0x6DCB, + 1,0x81E8, + 1,0x7ACB, + 1,0x7B20, + 1,0x7C92, + 1,0x72C0, + 1,0x7099, + 1,0x8B58, + 1,0x4EC0, + 1,0x8336, + 1,0x523A, + 1,0x5207, + 1,0x5EA6, + 1,0x62D3, + 1,0x7CD6, + 1,0x5B85, + 1,0x6D1E, + 1,0x66B4, + 1,0x8F3B, + 1,0x884C, + 1,0x964D, + 1,0x898B, + 1,0x5ED3, + 1,0x5140, + 1,0x55C0, + 1,0x585A, + 1,0x6674, + 1,0x51DE, + 1,0x732A, + 1,0x76CA, + 1,0x793C, + 1,0x795E, + 1,0x7965, + 1,0x798F, + 1,0x9756, + 1,0x7CBE, + 1,0x7FBD, + 1,0x8612, + 1,0x8AF8, + 1,0x9038, + 1,0x90FD, + 1,0x98EF, + 1,0x98FC, + 1,0x9928, + 1,0x9DB4, + 1,0x4FAE, + 1,0x50E7, + 1,0x514D, + 1,0x52C9, + 1,0x52E4, + 1,0x5351, + 1,0x559D, + 1,0x5606, + 1,0x5668, + 1,0x5840, + 1,0x58A8, + 1,0x5C64, + 1,0x5C6E, + 1,0x6094, + 1,0x6168, + 1,0x618E, + 1,0x61F2, + 1,0x654F, + 1,0x65E2, + 1,0x6691, + 1,0x6885, + 1,0x6D77, + 1,0x6E1A, + 1,0x6F22, + 1,0x716E, + 1,0x722B, + 1,0x7422, + 1,0x7891, + 1,0x793E, + 1,0x7949, + 1,0x7948, + 1,0x7950, + 1,0x7956, + 1,0x795D, + 1,0x798D, + 1,0x798E, + 1,0x7A40, + 1,0x7A81, + 1,0x7BC0, + 1,0x7DF4, + 1,0x7E09, + 1,0x7E41, + 1,0x7F72, + 1,0x8005, + 1,0x81ED, + 1,0x8279, + 1,0x8279, + 1,0x8457, + 1,0x8910, + 1,0x8996, + 1,0x8B01, + 1,0x8B39, + 1,0x8CD3, + 1,0x8D08, + 1,0x8FB6, + 1,0x9038, + 1,0x96E3, + 1,0x97FF, + 1,0x983B, + 2, 'f', 'f', + 2, 'f', 'i', + 2, 'f', 'l', + 3, 'f', 'f', 'i', + 3, 'f', 'f', 'l', + 2,0x017F, 't', + 2, 's', 't', + 2,0x0574,0x0576, + 2,0x0574,0x0565, + 2,0x0574,0x056B, + 2,0x057E,0x0576, + 2,0x0574,0x056D, + 1,0x05E2, + 1,0x05D0, + 1,0x05D3, + 1,0x05D4, + 1,0x05DB, + 1,0x05DC, + 1,0x05DD, + 1,0x05E8, + 1,0x05EA, + 1, '+', + 2,0x05D0,0x05DC, + 1,0x203E, + 1,0x203E, + 1,0x203E, + 1,0x203E, + 1, '_', + 1, '_', + 1, '_', + 1, ',', + 1,0x3001, + 1, '.', + 1, ';', + 1, ':', + 1, '?', + 1, '!', + 1,0x2014, + 1, '(', + 1, ')', + 1, '{', + 1, '}', + 1,0x3014, + 1,0x3015, + 1, '#', + 1, '&', + 1, '*', + 1, '+', + 1, '-', + 1, '<', + 1, '>', + 1, '=', + 1,'\\', + 1, '$', + 1, '%', + 1, '@', + 1, '!', + 1, '"', + 1, '#', + 1, '$', + 1, '%', + 1, '&', + 1,'\'', + 1, '(', + 1, ')', + 1, '*', + 1, '+', + 1, ',', + 1, '-', + 1, '.', + 1, '/', + 1, '0', + 1, '1', + 1, '2', + 1, '3', + 1, '4', + 1, '5', + 1, '6', + 1, '7', + 1, '8', + 1, '9', + 1, ':', + 1, ';', + 1, '<', + 1, '=', + 1, '>', + 1, '?', + 1, '@', + 1, 'A', + 1, 'B', + 1, 'C', + 1, 'D', + 1, 'E', + 1, 'F', + 1, 'G', + 1, 'H', + 1, 'I', + 1, 'J', + 1, 'K', + 1, 'L', + 1, 'M', + 1, 'N', + 1, 'O', + 1, 'P', + 1, 'Q', + 1, 'R', + 1, 'S', + 1, 'T', + 1, 'U', + 1, 'V', + 1, 'W', + 1, 'X', + 1, 'Y', + 1, 'Z', + 1, '[', + 1,'\\', + 1, ']', + 1, '^', + 1, '_', + 1, '`', + 1, 'a', + 1, 'b', + 1, 'c', + 1, 'd', + 1, 'e', + 1, 'f', + 1, 'g', + 1, 'h', + 1, 'i', + 1, 'j', + 1, 'k', + 1, 'l', + 1, 'm', + 1, 'n', + 1, 'o', + 1, 'p', + 1, 'q', + 1, 'r', + 1, 's', + 1, 't', + 1, 'u', + 1, 'v', + 1, 'w', + 1, 'x', + 1, 'y', + 1, 'z', + 1, '{', + 1, '|', + 1, '}', + 1, '~', + 1,0x2985, + 1,0x2986, + 1,0x3002, + 1,0x300C, + 1,0x300D, + 1,0x3001, + 1,0x30FB, + 1,0x30F2, + 1,0x30A1, + 1,0x30A3, + 1,0x30A5, + 1,0x30A7, + 1,0x30A9, + 1,0x30E3, + 1,0x30E5, + 1,0x30E7, + 1,0x30C3, + 1,0x30FC, + 1,0x30A2, + 1,0x30A4, + 1,0x30A6, + 1,0x30A8, + 1,0x30AA, + 1,0x30AB, + 1,0x30AD, + 1,0x30AF, + 1,0x30B1, + 1,0x30B3, + 1,0x30B5, + 1,0x30B7, + 1,0x30B9, + 1,0x30BB, + 1,0x30BD, + 1,0x30BF, + 1,0x30C1, + 1,0x30C4, + 1,0x30C6, + 1,0x30C8, + 1,0x30CA, + 1,0x30CB, + 1,0x30CC, + 1,0x30CD, + 1,0x30CE, + 1,0x30CF, + 1,0x30D2, + 1,0x30D5, + 1,0x30D8, + 1,0x30DB, + 1,0x30DE, + 1,0x30DF, + 1,0x30E0, + 1,0x30E1, + 1,0x30E2, + 1,0x30E4, + 1,0x30E6, + 1,0x30E8, + 1,0x30E9, + 1,0x30EA, + 1,0x30EB, + 1,0x30EC, + 1,0x30ED, + 1,0x30EF, + 1,0x30F3, + 1,0x3099, + 1,0x309A, + 1,0x3164, + 1,0x3131, + 1,0x3132, + 1,0x3133, + 1,0x3134, + 1,0x3135, + 1,0x3136, + 1,0x3137, + 1,0x3138, + 1,0x3139, + 1,0x313A, + 1,0x313B, + 1,0x313C, + 1,0x313D, + 1,0x313E, + 1,0x313F, + 1,0x3140, + 1,0x3141, + 1,0x3142, + 1,0x3143, + 1,0x3144, + 1,0x3145, + 1,0x3146, + 1,0x3147, + 1,0x3148, + 1,0x3149, + 1,0x314A, + 1,0x314B, + 1,0x314C, + 1,0x314D, + 1,0x314E, + 1,0x314F, + 1,0x3150, + 1,0x3151, + 1,0x3152, + 1,0x3153, + 1,0x3154, + 1,0x3155, + 1,0x3156, + 1,0x3157, + 1,0x3158, + 1,0x3159, + 1,0x315A, + 1,0x315B, + 1,0x315C, + 1,0x315D, + 1,0x315E, + 1,0x315F, + 1,0x3160, + 1,0x3161, + 1,0x3162, + 1,0x3163, + 1,0xA2, + 1,0xA3, + 1,0xAC, + 1,0xAF, + 1,0xA6, + 1,0xA5, + 1,0x20A9, + 1,0x2502, + 1,0x2190, + 1,0x2191, + 1,0x2192, + 1,0x2193, + 1,0x25A0, + 1,0x25CB, + 1, 'A', + 1, 'B', + 1, 'C', + 1, 'D', + 1, 'E', + 1, 'F', + 1, 'G', + 1, 'H', + 1, 'I', + 1, 'J', + 1, 'K', + 1, 'L', + 1, 'M', + 1, 'N', + 1, 'O', + 1, 'P', + 1, 'Q', + 1, 'R', + 1, 'S', + 1, 'T', + 1, 'U', + 1, 'V', + 1, 'W', + 1, 'X', + 1, 'Y', + 1, 'Z', + 1, 'a', + 1, 'b', + 1, 'c', + 1, 'd', + 1, 'e', + 1, 'f', + 1, 'g', + 1, 'h', + 1, 'i', + 1, 'j', + 1, 'k', + 1, 'l', + 1, 'm', + 1, 'n', + 1, 'o', + 1, 'p', + 1, 'q', + 1, 'r', + 1, 's', + 1, 't', + 1, 'u', + 1, 'v', + 1, 'w', + 1, 'x', + 1, 'y', + 1, 'z', + 1, 'A', + 1, 'B', + 1, 'C', + 1, 'D', + 1, 'E', + 1, 'F', + 1, 'G', + 1, 'H', + 1, 'I', + 1, 'J', + 1, 'K', + 1, 'L', + 1, 'M', + 1, 'N', + 1, 'O', + 1, 'P', + 1, 'Q', + 1, 'R', + 1, 'S', + 1, 'T', + 1, 'U', + 1, 'V', + 1, 'W', + 1, 'X', + 1, 'Y', + 1, 'Z', + 1, 'a', + 1, 'b', + 1, 'c', + 1, 'd', + 1, 'e', + 1, 'f', + 1, 'g', + 1, 'i', + 1, 'j', + 1, 'k', + 1, 'l', + 1, 'm', + 1, 'n', + 1, 'o', + 1, 'p', + 1, 'q', + 1, 'r', + 1, 's', + 1, 't', + 1, 'u', + 1, 'v', + 1, 'w', + 1, 'x', + 1, 'y', + 1, 'z', + 1, 'A', + 1, 'B', + 1, 'C', + 1, 'D', + 1, 'E', + 1, 'F', + 1, 'G', + 1, 'H', + 1, 'I', + 1, 'J', + 1, 'K', + 1, 'L', + 1, 'M', + 1, 'N', + 1, 'O', + 1, 'P', + 1, 'Q', + 1, 'R', + 1, 'S', + 1, 'T', + 1, 'U', + 1, 'V', + 1, 'W', + 1, 'X', + 1, 'Y', + 1, 'Z', + 1, 'a', + 1, 'b', + 1, 'c', + 1, 'd', + 1, 'e', + 1, 'f', + 1, 'g', + 1, 'h', + 1, 'i', + 1, 'j', + 1, 'k', + 1, 'l', + 1, 'm', + 1, 'n', + 1, 'o', + 1, 'p', + 1, 'q', + 1, 'r', + 1, 's', + 1, 't', + 1, 'u', + 1, 'v', + 1, 'w', + 1, 'x', + 1, 'y', + 1, 'z', + 1, 'A', + 1, 'C', + 1, 'D', + 1, 'G', + 1, 'J', + 1, 'K', + 1, 'N', + 1, 'O', + 1, 'P', + 1, 'Q', + 1, 'S', + 1, 'T', + 1, 'U', + 1, 'V', + 1, 'W', + 1, 'X', + 1, 'Y', + 1, 'Z', + 1, 'a', + 1, 'b', + 1, 'c', + 1, 'd', + 1, 'f', + 1, 'h', + 1, 'i', + 1, 'j', + 1, 'k', + 1, 'l', + 1, 'm', + 1, 'n', + 1, 'p', + 1, 'q', + 1, 'r', + 1, 's', + 1, 't', + 1, 'u', + 1, 'v', + 1, 'w', + 1, 'x', + 1, 'y', + 1, 'z', + 1, 'A', + 1, 'B', + 1, 'C', + 1, 'D', + 1, 'E', + 1, 'F', + 1, 'G', + 1, 'H', + 1, 'I', + 1, 'J', + 1, 'K', + 1, 'L', + 1, 'M', + 1, 'N', + 1, 'O', + 1, 'P', + 1, 'Q', + 1, 'R', + 1, 'S', + 1, 'T', + 1, 'U', + 1, 'V', + 1, 'W', + 1, 'X', + 1, 'Y', + 1, 'Z', + 1, 'a', + 1, 'b', + 1, 'c', + 1, 'd', + 1, 'e', + 1, 'f', + 1, 'g', + 1, 'h', + 1, 'i', + 1, 'j', + 1, 'k', + 1, 'l', + 1, 'm', + 1, 'n', + 1, 'o', + 1, 'p', + 1, 'q', + 1, 'r', + 1, 's', + 1, 't', + 1, 'u', + 1, 'v', + 1, 'w', + 1, 'x', + 1, 'y', + 1, 'z', + 1, 'A', + 1, 'B', + 1, 'D', + 1, 'E', + 1, 'F', + 1, 'G', + 1, 'J', + 1, 'K', + 1, 'L', + 1, 'M', + 1, 'N', + 1, 'O', + 1, 'P', + 1, 'Q', + 1, 'S', + 1, 'T', + 1, 'U', + 1, 'V', + 1, 'W', + 1, 'X', + 1, 'Y', + 1, 'a', + 1, 'b', + 1, 'c', + 1, 'd', + 1, 'e', + 1, 'f', + 1, 'g', + 1, 'h', + 1, 'i', + 1, 'j', + 1, 'k', + 1, 'l', + 1, 'm', + 1, 'n', + 1, 'o', + 1, 'p', + 1, 'q', + 1, 'r', + 1, 's', + 1, 't', + 1, 'u', + 1, 'v', + 1, 'w', + 1, 'x', + 1, 'y', + 1, 'z', + 1, 'A', + 1, 'B', + 1, 'D', + 1, 'E', + 1, 'F', + 1, 'G', + 1, 'I', + 1, 'J', + 1, 'K', + 1, 'L', + 1, 'M', + 1, 'O', + 1, 'S', + 1, 'T', + 1, 'U', + 1, 'V', + 1, 'W', + 1, 'X', + 1, 'Y', + 1, 'a', + 1, 'b', + 1, 'c', + 1, 'd', + 1, 'e', + 1, 'f', + 1, 'g', + 1, 'h', + 1, 'i', + 1, 'j', + 1, 'k', + 1, 'l', + 1, 'm', + 1, 'n', + 1, 'o', + 1, 'p', + 1, 'q', + 1, 'r', + 1, 's', + 1, 't', + 1, 'u', + 1, 'v', + 1, 'w', + 1, 'x', + 1, 'y', + 1, 'z', + 1, 'A', + 1, 'B', + 1, 'C', + 1, 'D', + 1, 'E', + 1, 'F', + 1, 'G', + 1, 'H', + 1, 'I', + 1, 'J', + 1, 'K', + 1, 'L', + 1, 'M', + 1, 'N', + 1, 'O', + 1, 'P', + 1, 'Q', + 1, 'R', + 1, 'S', + 1, 'T', + 1, 'U', + 1, 'V', + 1, 'W', + 1, 'X', + 1, 'Y', + 1, 'Z', + 1, 'a', + 1, 'b', + 1, 'c', + 1, 'd', + 1, 'e', + 1, 'f', + 1, 'g', + 1, 'h', + 1, 'i', + 1, 'j', + 1, 'k', + 1, 'l', + 1, 'm', + 1, 'n', + 1, 'o', + 1, 'p', + 1, 'q', + 1, 'r', + 1, 's', + 1, 't', + 1, 'u', + 1, 'v', + 1, 'w', + 1, 'x', + 1, 'y', + 1, 'z', + 1, 'A', + 1, 'B', + 1, 'C', + 1, 'D', + 1, 'E', + 1, 'F', + 1, 'G', + 1, 'H', + 1, 'I', + 1, 'J', + 1, 'K', + 1, 'L', + 1, 'M', + 1, 'N', + 1, 'O', + 1, 'P', + 1, 'Q', + 1, 'R', + 1, 'S', + 1, 'T', + 1, 'U', + 1, 'V', + 1, 'W', + 1, 'X', + 1, 'Y', + 1, 'Z', + 1, 'a', + 1, 'b', + 1, 'c', + 1, 'd', + 1, 'e', + 1, 'f', + 1, 'g', + 1, 'h', + 1, 'i', + 1, 'j', + 1, 'k', + 1, 'l', + 1, 'm', + 1, 'n', + 1, 'o', + 1, 'p', + 1, 'q', + 1, 'r', + 1, 's', + 1, 't', + 1, 'u', + 1, 'v', + 1, 'w', + 1, 'x', + 1, 'y', + 1, 'z', + 1, 'A', + 1, 'B', + 1, 'C', + 1, 'D', + 1, 'E', + 1, 'F', + 1, 'G', + 1, 'H', + 1, 'I', + 1, 'J', + 1, 'K', + 1, 'L', + 1, 'M', + 1, 'N', + 1, 'O', + 1, 'P', + 1, 'Q', + 1, 'R', + 1, 'S', + 1, 'T', + 1, 'U', + 1, 'V', + 1, 'W', + 1, 'X', + 1, 'Y', + 1, 'Z', + 1, 'a', + 1, 'b', + 1, 'c', + 1, 'd', + 1, 'e', + 1, 'f', + 1, 'g', + 1, 'h', + 1, 'i', + 1, 'j', + 1, 'k', + 1, 'l', + 1, 'm', + 1, 'n', + 1, 'o', + 1, 'p', + 1, 'q', + 1, 'r', + 1, 's', + 1, 't', + 1, 'u', + 1, 'v', + 1, 'w', + 1, 'x', + 1, 'y', + 1, 'z', + 1, 'A', + 1, 'B', + 1, 'C', + 1, 'D', + 1, 'E', + 1, 'F', + 1, 'G', + 1, 'H', + 1, 'I', + 1, 'J', + 1, 'K', + 1, 'L', + 1, 'M', + 1, 'N', + 1, 'O', + 1, 'P', + 1, 'Q', + 1, 'R', + 1, 'S', + 1, 'T', + 1, 'U', + 1, 'V', + 1, 'W', + 1, 'X', + 1, 'Y', + 1, 'Z', + 1, 'a', + 1, 'b', + 1, 'c', + 1, 'd', + 1, 'e', + 1, 'f', + 1, 'g', + 1, 'h', + 1, 'i', + 1, 'j', + 1, 'k', + 1, 'l', + 1, 'm', + 1, 'n', + 1, 'o', + 1, 'p', + 1, 'q', + 1, 'r', + 1, 's', + 1, 't', + 1, 'u', + 1, 'v', + 1, 'w', + 1, 'x', + 1, 'y', + 1, 'z', + 1, 'A', + 1, 'B', + 1, 'C', + 1, 'D', + 1, 'E', + 1, 'F', + 1, 'G', + 1, 'H', + 1, 'I', + 1, 'J', + 1, 'K', + 1, 'L', + 1, 'M', + 1, 'N', + 1, 'O', + 1, 'P', + 1, 'Q', + 1, 'R', + 1, 'S', + 1, 'T', + 1, 'U', + 1, 'V', + 1, 'W', + 1, 'X', + 1, 'Y', + 1, 'Z', + 1, 'a', + 1, 'b', + 1, 'c', + 1, 'd', + 1, 'e', + 1, 'f', + 1, 'g', + 1, 'h', + 1, 'i', + 1, 'j', + 1, 'k', + 1, 'l', + 1, 'm', + 1, 'n', + 1, 'o', + 1, 'p', + 1, 'q', + 1, 'r', + 1, 's', + 1, 't', + 1, 'u', + 1, 'v', + 1, 'w', + 1, 'x', + 1, 'y', + 1, 'z', + 1, 'A', + 1, 'B', + 1, 'C', + 1, 'D', + 1, 'E', + 1, 'F', + 1, 'G', + 1, 'H', + 1, 'I', + 1, 'J', + 1, 'K', + 1, 'L', + 1, 'M', + 1, 'N', + 1, 'O', + 1, 'P', + 1, 'Q', + 1, 'R', + 1, 'S', + 1, 'T', + 1, 'U', + 1, 'V', + 1, 'W', + 1, 'X', + 1, 'Y', + 1, 'Z', + 1, 'a', + 1, 'b', + 1, 'c', + 1, 'd', + 1, 'e', + 1, 'f', + 1, 'g', + 1, 'h', + 1, 'i', + 1, 'j', + 1, 'k', + 1, 'l', + 1, 'm', + 1, 'n', + 1, 'o', + 1, 'p', + 1, 'q', + 1, 'r', + 1, 's', + 1, 't', + 1, 'u', + 1, 'v', + 1, 'w', + 1, 'x', + 1, 'y', + 1, 'z', + 1,0x0391, + 1,0x0392, + 1,0x0393, + 1,0x0394, + 1,0x0395, + 1,0x0396, + 1,0x0397, + 1,0x0398, + 1,0x0399, + 1,0x039A, + 1,0x039B, + 1,0x039C, + 1,0x039D, + 1,0x039E, + 1,0x039F, + 1,0x03A0, + 1,0x03A1, + 1,0x03F4, + 1,0x03A3, + 1,0x03A4, + 1,0x03A5, + 1,0x03A6, + 1,0x03A7, + 1,0x03A8, + 1,0x03A9, + 1,0x2207, + 1,0x03B1, + 1,0x03B2, + 1,0x03B3, + 1,0x03B4, + 1,0x03B5, + 1,0x03B6, + 1,0x03B7, + 1,0x03B8, + 1,0x03B9, + 1,0x03BA, + 1,0x03BB, + 1,0x03BC, + 1,0x03BD, + 1,0x03BE, + 1,0x03BF, + 1,0x03C0, + 1,0x03C1, + 1,0x03C2, + 1,0x03C3, + 1,0x03C4, + 1,0x03C5, + 1,0x03C6, + 1,0x03C7, + 1,0x03C8, + 1,0x03C9, + 1,0x2202, + 1,0x03F5, + 1,0x03D1, + 1,0x03F0, + 1,0x03D5, + 1,0x03F1, + 1,0x03D6, + 1,0x0391, + 1,0x0392, + 1,0x0393, + 1,0x0394, + 1,0x0395, + 1,0x0396, + 1,0x0397, + 1,0x0398, + 1,0x0399, + 1,0x039A, + 1,0x039B, + 1,0x039C, + 1,0x039D, + 1,0x039E, + 1,0x039F, + 1,0x03A0, + 1,0x03A1, + 1,0x03F4, + 1,0x03A3, + 1,0x03A4, + 1,0x03A5, + 1,0x03A6, + 1,0x03A7, + 1,0x03A8, + 1,0x03A9, + 1,0x2207, + 1,0x03B1, + 1,0x03B2, + 1,0x03B3, + 1,0x03B4, + 1,0x03B5, + 1,0x03B6, + 1,0x03B7, + 1,0x03B8, + 1,0x03B9, + 1,0x03BA, + 1,0x03BB, + 1,0x03BC, + 1,0x03BD, + 1,0x03BE, + 1,0x03BF, + 1,0x03C0, + 1,0x03C1, + 1,0x03C2, + 1,0x03C3, + 1,0x03C4, + 1,0x03C5, + 1,0x03C6, + 1,0x03C7, + 1,0x03C8, + 1,0x03C9, + 1,0x2202, + 1,0x03F5, + 1,0x03D1, + 1,0x03F0, + 1,0x03D5, + 1,0x03F1, + 1,0x03D6, + 1,0x0391, + 1,0x0392, + 1,0x0393, + 1,0x0394, + 1,0x0395, + 1,0x0396, + 1,0x0397, + 1,0x0398, + 1,0x0399, + 1,0x039A, + 1,0x039B, + 1,0x039C, + 1,0x039D, + 1,0x039E, + 1,0x039F, + 1,0x03A0, + 1,0x03A1, + 1,0x03F4, + 1,0x03A3, + 1,0x03A4, + 1,0x03A5, + 1,0x03A6, + 1,0x03A7, + 1,0x03A8, + 1,0x03A9, + 1,0x2207, + 1,0x03B1, + 1,0x03B2, + 1,0x03B3, + 1,0x03B4, + 1,0x03B5, + 1,0x03B6, + 1,0x03B7, + 1,0x03B8, + 1,0x03B9, + 1,0x03BA, + 1,0x03BB, + 1,0x03BC, + 1,0x03BD, + 1,0x03BE, + 1,0x03BF, + 1,0x03C0, + 1,0x03C1, + 1,0x03C2, + 1,0x03C3, + 1,0x03C4, + 1,0x03C5, + 1,0x03C6, + 1,0x03C7, + 1,0x03C8, + 1,0x03C9, + 1,0x2202, + 1,0x03F5, + 1,0x03D1, + 1,0x03F0, + 1,0x03D5, + 1,0x03F1, + 1,0x03D6, + 1,0x0391, + 1,0x0392, + 1,0x0393, + 1,0x0394, + 1,0x0395, + 1,0x0396, + 1,0x0397, + 1,0x0398, + 1,0x0399, + 1,0x039A, + 1,0x039B, + 1,0x039C, + 1,0x039D, + 1,0x039E, + 1,0x039F, + 1,0x03A0, + 1,0x03A1, + 1,0x03F4, + 1,0x03A3, + 1,0x03A4, + 1,0x03A5, + 1,0x03A6, + 1,0x03A7, + 1,0x03A8, + 1,0x03A9, + 1,0x2207, + 1,0x03B1, + 1,0x03B2, + 1,0x03B3, + 1,0x03B4, + 1,0x03B5, + 1,0x03B6, + 1,0x03B7, + 1,0x03B8, + 1,0x03B9, + 1,0x03BA, + 1,0x03BB, + 1,0x03BC, + 1,0x03BD, + 1,0x03BE, + 1,0x03BF, + 1,0x03C0, + 1,0x03C1, + 1,0x03C2, + 1,0x03C3, + 1,0x03C4, + 1,0x03C5, + 1,0x03C6, + 1,0x03C7, + 1,0x03C8, + 1,0x03C9, + 1,0x2202, + 1,0x03F5, + 1,0x03D1, + 1,0x03F0, + 1,0x03D5, + 1,0x03F1, + 1,0x03D6, + 1,0x0391, + 1,0x0392, + 1,0x0393, + 1,0x0394, + 1,0x0395, + 1,0x0396, + 1,0x0397, + 1,0x0398, + 1,0x0399, + 1,0x039A, + 1,0x039B, + 1,0x039C, + 1,0x039D, + 1,0x039E, + 1,0x039F, + 1,0x03A0, + 1,0x03A1, + 1,0x03F4, + 1,0x03A3, + 1,0x03A4, + 1,0x03A5, + 1,0x03A6, + 1,0x03A7, + 1,0x03A8, + 1,0x03A9, + 1,0x2207, + 1,0x03B1, + 1,0x03B2, + 1,0x03B3, + 1,0x03B4, + 1,0x03B5, + 1,0x03B6, + 1,0x03B7, + 1,0x03B8, + 1,0x03B9, + 1,0x03BA, + 1,0x03BB, + 1,0x03BC, + 1,0x03BD, + 1,0x03BE, + 1,0x03BF, + 1,0x03C0, + 1,0x03C1, + 1,0x03C2, + 1,0x03C3, + 1,0x03C4, + 1,0x03C5, + 1,0x03C6, + 1,0x03C7, + 1,0x03C8, + 1,0x03C9, + 1,0x2202, + 1,0x03F5, + 1,0x03D1, + 1,0x03F0, + 1,0x03D5, + 1,0x03F1, + 1,0x03D6, + 1, '0', + 1, '1', + 1, '2', + 1, '3', + 1, '4', + 1, '5', + 1, '6', + 1, '7', + 1, '8', + 1, '9', + 1, '0', + 1, '1', + 1, '2', + 1, '3', + 1, '4', + 1, '5', + 1, '6', + 1, '7', + 1, '8', + 1, '9', + 1, '0', + 1, '1', + 1, '2', + 1, '3', + 1, '4', + 1, '5', + 1, '6', + 1, '7', + 1, '8', + 1, '9', + 1, '0', + 1, '1', + 1, '2', + 1, '3', + 1, '4', + 1, '5', + 1, '6', + 1, '7', + 1, '8', + 1, '9', + 1, '0', + 1, '1', + 1, '2', + 1, '3', + 1, '4', + 1, '5', + 1, '6', + 1, '7', + 1, '8', + 1, '9', + 1,0x4E3D, + 1,0x4E38, + 1,0x4E41, + 1,0x20122, + 1,0x4F60, + 1,0x4FAE, + 1,0x4FBB, + 1,0x5002, + 1,0x507A, + 1,0x5099, + 1,0x50E7, + 1,0x50CF, + 1,0x349E, + 1,0x2063A, + 1,0x514D, + 1,0x5154, + 1,0x5164, + 1,0x5177, + 1,0x2051C, + 1,0x34B9, + 1,0x5167, + 1,0x518D, + 1,0x2054B, + 1,0x5197, + 1,0x51A4, + 1,0x4ECC, + 1,0x51AC, + 1,0x51B5, + 1,0x291DF, + 1,0x51F5, + 1,0x5203, + 1,0x34DF, + 1,0x523B, + 1,0x5246, + 1,0x5272, + 1,0x5277, + 1,0x3515, + 1,0x52C7, + 1,0x52C9, + 1,0x52E4, + 1,0x52FA, + 1,0x5305, + 1,0x5306, + 1,0x5317, + 1,0x5349, + 1,0x5351, + 1,0x535A, + 1,0x5373, + 1,0x537D, + 1,0x537F, + 1,0x537F, + 1,0x537F, + 1,0x20A2C, + 1,0x7070, + 1,0x53CA, + 1,0x53DF, + 1,0x20B63, + 1,0x53EB, + 1,0x53F1, + 1,0x5406, + 1,0x549E, + 1,0x5438, + 1,0x5448, + 1,0x5468, + 1,0x54A2, + 1,0x54F6, + 1,0x5510, + 1,0x5553, + 1,0x5563, + 1,0x5584, + 1,0x5584, + 1,0x5599, + 1,0x55AB, + 1,0x55B3, + 1,0x55C2, + 1,0x5716, + 1,0x5606, + 1,0x5717, + 1,0x5651, + 1,0x5674, + 1,0x5207, + 1,0x58EE, + 1,0x57CE, + 1,0x57F4, + 1,0x580D, + 1,0x578B, + 1,0x5832, + 1,0x5831, + 1,0x58AC, + 1,0x214E4, + 1,0x58F2, + 1,0x58F7, + 1,0x5906, + 1,0x591A, + 1,0x5922, + 1,0x5962, + 1,0x216A8, + 1,0x216EA, + 1,0x59EC, + 1,0x5A1B, + 1,0x5A27, + 1,0x59D8, + 1,0x5A66, + 1,0x36EE, + 1,0x36FC, + 1,0x5B08, + 1,0x5B3E, + 1,0x5B3E, + 1,0x219C8, + 1,0x5BC3, + 1,0x5BD8, + 1,0x5BE7, + 1,0x5BF3, + 1,0x21B18, + 1,0x5BFF, + 1,0x5C06, + 1,0x5F53, + 1,0x5C22, + 1,0x3781, + 1,0x5C60, + 1,0x5C6E, + 1,0x5CC0, + 1,0x5C8D, + 1,0x21DE4, + 1,0x5D43, + 1,0x21DE6, + 1,0x5D6E, + 1,0x5D6B, + 1,0x5D7C, + 1,0x5DE1, + 1,0x5DE2, + 1,0x382F, + 1,0x5DFD, + 1,0x5E28, + 1,0x5E3D, + 1,0x5E69, + 1,0x3862, + 1,0x22183, + 1,0x387C, + 1,0x5EB0, + 1,0x5EB3, + 1,0x5EB6, + 1,0x5ECA, + 1,0x2A392, + 1,0x5EFE, + 1,0x22331, + 1,0x22331, + 1,0x8201, + 1,0x5F22, + 1,0x5F22, + 1,0x38C7, + 1,0x232B8, + 1,0x261DA, + 1,0x5F62, + 1,0x5F6B, + 1,0x38E3, + 1,0x5F9A, + 1,0x5FCD, + 1,0x5FD7, + 1,0x5FF9, + 1,0x6081, + 1,0x393A, + 1,0x391C, + 1,0x6094, + 1,0x226D4, + 1,0x60C7, + 1,0x6148, + 1,0x614C, + 1,0x614E, + 1,0x614C, + 1,0x617A, + 1,0x618E, + 1,0x61B2, + 1,0x61A4, + 1,0x61AF, + 1,0x61DE, + 1,0x61F2, + 1,0x61F6, + 1,0x6210, + 1,0x621B, + 1,0x625D, + 1,0x62B1, + 1,0x62D4, + 1,0x6350, + 1,0x22B0C, + 1,0x633D, + 1,0x62FC, + 1,0x6368, + 1,0x6383, + 1,0x63E4, + 1,0x22BF1, + 1,0x6422, + 1,0x63C5, + 1,0x63A9, + 1,0x3A2E, + 1,0x6469, + 1,0x647E, + 1,0x649D, + 1,0x6477, + 1,0x3A6C, + 1,0x654F, + 1,0x656C, + 1,0x2300A, + 1,0x65E3, + 1,0x66F8, + 1,0x6649, + 1,0x3B19, + 1,0x6691, + 1,0x3B08, + 1,0x3AE4, + 1,0x5192, + 1,0x5195, + 1,0x6700, + 1,0x669C, + 1,0x80AD, + 1,0x43D9, + 1,0x6717, + 1,0x671B, + 1,0x6721, + 1,0x675E, + 1,0x6753, + 1,0x233C3, + 1,0x3B49, + 1,0x67FA, + 1,0x6785, + 1,0x6852, + 1,0x6885, + 1,0x2346D, + 1,0x688E, + 1,0x681F, + 1,0x6914, + 1,0x3B9D, + 1,0x6942, + 1,0x69A3, + 1,0x69EA, + 1,0x6AA8, + 1,0x236A3, + 1,0x6ADB, + 1,0x3C18, + 1,0x6B21, + 1,0x238A7, + 1,0x6B54, + 1,0x3C4E, + 1,0x6B72, + 1,0x6B9F, + 1,0x6BBA, + 1,0x6BBB, + 1,0x23A8D, + 1,0x21D0B, + 1,0x23AFA, + 1,0x6C4E, + 1,0x23CBC, + 1,0x6CBF, + 1,0x6CCD, + 1,0x6C67, + 1,0x6D16, + 1,0x6D3E, + 1,0x6D77, + 1,0x6D41, + 1,0x6D69, + 1,0x6D78, + 1,0x6D85, + 1,0x23D1E, + 1,0x6D34, + 1,0x6E2F, + 1,0x6E6E, + 1,0x3D33, + 1,0x6ECB, + 1,0x6EC7, + 1,0x23ED1, + 1,0x6DF9, + 1,0x6F6E, + 1,0x23F5E, + 1,0x23F8E, + 1,0x6FC6, + 1,0x7039, + 1,0x701E, + 1,0x701B, + 1,0x3D96, + 1,0x704A, + 1,0x707D, + 1,0x7077, + 1,0x70AD, + 1,0x20525, + 1,0x7145, + 1,0x24263, + 1,0x719C, + 1,0x243AB, + 1,0x7228, + 1,0x7235, + 1,0x7250, + 1,0x24608, + 1,0x7280, + 1,0x7295, + 1,0x24735, + 1,0x24814, + 1,0x737A, + 1,0x738B, + 1,0x3EAC, + 1,0x73A5, + 1,0x3EB8, + 1,0x3EB8, + 1,0x7447, + 1,0x745C, + 1,0x7471, + 1,0x7485, + 1,0x74CA, + 1,0x3F1B, + 1,0x7524, + 1,0x24C36, + 1,0x753E, + 1,0x24C92, + 1,0x7570, + 1,0x2219F, + 1,0x7610, + 1,0x24FA1, + 1,0x24FB8, + 1,0x25044, + 1,0x3FFC, + 1,0x4008, + 1,0x76F4, + 1,0x250F3, + 1,0x250F2, + 1,0x25119, + 1,0x25133, + 1,0x771E, + 1,0x771F, + 1,0x771F, + 1,0x774A, + 1,0x4039, + 1,0x778B, + 1,0x4046, + 1,0x4096, + 1,0x2541D, + 1,0x784E, + 1,0x788C, + 1,0x78CC, + 1,0x40E3, + 1,0x25626, + 1,0x7956, + 1,0x2569A, + 1,0x256C5, + 1,0x798F, + 1,0x79EB, + 1,0x412F, + 1,0x7A40, + 1,0x7A4A, + 1,0x7A4F, + 1,0x2597C, + 1,0x25AA7, + 1,0x25AA7, + 1,0x7AEE, + 1,0x4202, + 1,0x25BAB, + 1,0x7BC6, + 1,0x7BC9, + 1,0x4227, + 1,0x25C80, + 1,0x7CD2, + 1,0x42A0, + 1,0x7CE8, + 1,0x7CE3, + 1,0x7D00, + 1,0x25F86, + 1,0x7D63, + 1,0x4301, + 1,0x7DC7, + 1,0x7E02, + 1,0x7E45, + 1,0x4334, + 1,0x26228, + 1,0x26247, + 1,0x4359, + 1,0x262D9, + 1,0x7F7A, + 1,0x2633E, + 1,0x7F95, + 1,0x7FFA, + 1,0x8005, + 1,0x264DA, + 1,0x26523, + 1,0x8060, + 1,0x265A8, + 1,0x8070, + 1,0x2335F, + 1,0x43D5, + 1,0x80B2, + 1,0x8103, + 1,0x440B, + 1,0x813E, + 1,0x5AB5, + 1,0x267A7, + 1,0x267B5, + 1,0x23393, + 1,0x2339C, + 1,0x8201, + 1,0x8204, + 1,0x8F9E, + 1,0x446B, + 1,0x8291, + 1,0x828B, + 1,0x829D, + 1,0x52B3, + 1,0x82B1, + 1,0x82B3, + 1,0x82BD, + 1,0x82E6, + 1,0x26B3C, + 1,0x82E5, + 1,0x831D, + 1,0x8363, + 1,0x83AD, + 1,0x8323, + 1,0x83BD, + 1,0x83E7, + 1,0x8457, + 1,0x8353, + 1,0x83CA, + 1,0x83CC, + 1,0x83DC, + 1,0x26C36, + 1,0x26D6B, + 1,0x26CD5, + 1,0x452B, + 1,0x84F1, + 1,0x84F3, + 1,0x8516, + 1,0x273CA, + 1,0x8564, + 1,0x26F2C, + 1,0x455D, + 1,0x4561, + 1,0x26FB1, + 1,0x270D2, + 1,0x456B, + 1,0x8650, + 1,0x865C, + 1,0x8667, + 1,0x8669, + 1,0x86A9, + 1,0x8688, + 1,0x870E, + 1,0x86E2, + 1,0x8779, + 1,0x8728, + 1,0x876B, + 1,0x8786, + 1,0x45D7, + 1,0x87E1, + 1,0x8801, + 1,0x45F9, + 1,0x8860, + 1,0x8863, + 1,0x27667, + 1,0x88D7, + 1,0x88DE, + 1,0x4635, + 1,0x88FA, + 1,0x34BB, + 1,0x278AE, + 1,0x27966, + 1,0x46BE, + 1,0x46C7, + 1,0x8AA0, + 1,0x8AED, + 1,0x8B8A, + 1,0x8C55, + 1,0x27CA8, + 1,0x8CAB, + 1,0x8CC1, + 1,0x8D1B, + 1,0x8D77, + 1,0x27F2F, + 1,0x20804, + 1,0x8DCB, + 1,0x8DBC, + 1,0x8DF0, + 1,0x208DE, + 1,0x8ED4, + 1,0x8F38, + 1,0x285D2, + 1,0x285ED, + 1,0x9094, + 1,0x90F1, + 1,0x9111, + 1,0x2872E, + 1,0x911B, + 1,0x9238, + 1,0x92D7, + 1,0x92D8, + 1,0x927C, + 1,0x93F9, + 1,0x9415, + 1,0x28BFA, + 1,0x958B, + 1,0x4995, + 1,0x95B7, + 1,0x28D77, + 1,0x49E6, + 1,0x96C3, + 1,0x5DB2, + 1,0x9723, + 1,0x29145, + 1,0x2921A, + 1,0x4A6E, + 1,0x4A76, + 1,0x97E0, + 1,0x2940A, + 1,0x4AB2, + 1,0x29496, + 1,0x980B, + 1,0x980B, + 1,0x9829, + 1,0x295B6, + 1,0x98E2, + 1,0x4B33, + 1,0x9929, + 1,0x99A7, + 1,0x99C2, + 1,0x99FE, + 1,0x4BCE, + 1,0x29B30, + 1,0x9B12, + 1,0x9C40, + 1,0x9CFD, + 1,0x4CCE, + 1,0x4CED, + 1,0x9D67, + 1,0x2A0CE, + 1,0x4CF8, + 1,0x2A105, + 1,0x2A20E, + 1,0x2A291, + 1,0x9EBB, + 1,0x4D56, + 1,0x9EF9, + 1,0x9EFE, + 1,0x9F05, + 1,0x9F0F, + 1,0x9F16, + 1,0x9F3B, + 1,0x2A600, +}; + +static const short translit_page00[344] = { + 0, 2, 4, 6, -1, 9, 13, 15, /* 0xa0-0xa7 */ + 18, 20, 24, 26, 29, 33, 35, -1, /* 0xa8-0xaf */ + 39, 42, 46, 49, 52, 54, 56, 58, /* 0xb0-0xb7 */ + 60, 62, 65, 67, 70, 76, 82, 88, /* 0xb8-0xbf */ + 90, 93, 96, 99, 102, 105, 107, 110, /* 0xc0-0xc7 */ + 112, 115, 118, 121, 124, 127, 130, 133, /* 0xc8-0xcf */ + 136, 138, 141, 144, 147, 150, 153, 156, /* 0xd0-0xd7 */ + 158, 160, 163, 166, 169, 172, 175, 178, /* 0xd8-0xdf */ + 181, 184, 187, 190, 193, 196, 198, 201, /* 0xe0-0xe7 */ + 203, 206, 209, 212, 215, 218, 221, 224, /* 0xe8-0xef */ + 227, 229, 232, 235, 238, 241, 244, 247, /* 0xf0-0xf7 */ + 249, 251, 254, 257, 260, 263, 266, 269, /* 0xf8-0xff */ + /* 0x0100 */ + 272, 274, 276, 278, 280, 282, 284, 287, /* 0x00-0x07 */ + 290, 293, 296, 298, 300, 302, 304, 306, /* 0x08-0x0f */ + 308, 310, 312, 314, 316, 318, 320, 322, /* 0x10-0x17 */ + 324, 326, 328, 330, 332, 335, 338, 340, /* 0x18-0x1f */ + 342, 344, 346, 348, 350, 353, 356, 358, /* 0x20-0x27 */ + 360, 363, 366, 368, 370, 372, 374, 376, /* 0x28-0x2f */ + 378, 380, 382, 385, 388, 391, 394, 396, /* 0x30-0x37 */ + -1, 398, 400, 402, 404, 406, 408, 410, /* 0x38-0x3f */ + 412, 414, 416, 418, 421, 424, 426, 428, /* 0x40-0x47 */ + 430, 432, -1, -1, 435, 437, 439, 441, /* 0x48-0x4f */ + 443, 446, 449, 452, 455, 458, 461, 463, /* 0x50-0x57 */ + 465, 467, 469, 472, 475, 478, 481, 483, /* 0x58-0x5f */ + 485, 487, 489, 491, 493, 495, 497, 499, /* 0x60-0x67 */ + 501, 504, 507, 509, 511, 513, 515, 517, /* 0x68-0x6f */ + 519, 522, 525, 527, 529, 532, 535, 538, /* 0x70-0x77 */ + 541, 544, 547, 550, 552, 554, 556, 558, /* 0x78-0x7f */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x80-0x87 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x88-0x8f */ + -1, -1, 560, -1, -1, -1, -1, -1, /* 0x90-0x97 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x98-0x9f */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xa0-0xa7 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xa8-0xaf */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb0-0xb7 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb8-0xbf */ + -1, -1, -1, -1, 562, 565, 568, 571, /* 0xc0-0xc7 */ + 574, 577, 580, 583, 586, -1, -1, -1, /* 0xc8-0xcf */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd0-0xd7 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd8-0xdf */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe0-0xe7 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe8-0xef */ + -1, 589, 592, 595, -1, -1, -1, -1, /* 0xf0-0xf7 */ +}; +static const short translit_page02[8] = { + 598, 600, 602, 604, -1, -1, -1, -1, /* 0x18-0x1f */ +}; +static const short translit_page02_1[40] = { + -1, 606, 608, 610, 612, 614, -1, -1, /* 0xb8-0xbf */ + -1, -1, -1, -1, -1, -1, 616, -1, /* 0xc0-0xc7 */ + 618, 620, 622, 624, -1, 626, -1, -1, /* 0xc8-0xcf */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd0-0xd7 */ + -1, -1, -1, -1, 628, 630, -1, -1, /* 0xd8-0xdf */ +}; +static const short translit_page03[48] = { + 632, 634, 636, -1, -1, 638, 640, -1, /* 0xd0-0xd7 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd8-0xdf */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe0-0xe7 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe8-0xef */ + 642, 644, 646, -1, 648, 650, -1, -1, /* 0xf0-0xf7 */ + -1, 652, -1, -1, -1, -1, -1, -1, /* 0xf8-0xff */ +}; +static const short translit_page05[8] = { + 657, 660, 663, -1, -1, -1, -1, -1, /* 0xf0-0xf7 */ +}; +static const short translit_page06[16] = { + -1, -1, -1, -1, -1, 666, 669, 672, /* 0x70-0x77 */ + 675, -1, -1, -1, -1, -1, -1, -1, /* 0x78-0x7f */ +}; +static const short translit_page0e[48] = { + -1, -1, -1, 681, -1, -1, -1, -1, /* 0xb0-0xb7 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb8-0xbf */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc0-0xc7 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc8-0xcf */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd0-0xd7 */ + -1, -1, -1, -1, 684, 687, -1, -1, /* 0xd8-0xdf */ +}; +static const short translit_page0f[16] = { + -1, -1, -1, -1, -1, -1, -1, 690, /* 0x70-0x77 */ + -1, 693, -1, -1, -1, -1, -1, -1, /* 0x78-0x7f */ +}; +static const short translit_page1e[160] = { + -1, -1, 696, 698, -1, -1, -1, -1, /* 0x00-0x07 */ + -1, -1, 700, 702, -1, -1, -1, -1, /* 0x08-0x0f */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x10-0x17 */ + -1, -1, -1, -1, -1, -1, 704, 706, /* 0x18-0x1f */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x20-0x27 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x28-0x2f */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x30-0x37 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x38-0x3f */ + 708, 710, -1, -1, -1, -1, -1, -1, /* 0x40-0x47 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */ + -1, -1, -1, -1, -1, -1, 712, 714, /* 0x50-0x57 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x58-0x5f */ + 716, 718, -1, -1, -1, -1, -1, -1, /* 0x60-0x67 */ + -1, -1, 720, 722, -1, -1, -1, -1, /* 0x68-0x6f */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x70-0x77 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x78-0x7f */ + 724, 727, 730, 733, 736, 739, -1, -1, /* 0x80-0x87 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x88-0x8f */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x90-0x97 */ + -1, -1, 742, -1, -1, -1, -1, -1, /* 0x98-0x9f */ +}; +static const short translit_page1e_2[8] = { + -1, -1, 745, 748, -1, -1, -1, -1, /* 0xf0-0xf7 */ +}; +static const short translit_page20[88] = { + -1, -1, 751, 753, 755, 757, 759, -1, /* 0x00-0x07 */ + 761, 763, 765, -1, -1, -1, -1, -1, /* 0x08-0x0f */ + 767, 769, 771, 773, 775, 777, -1, -1, /* 0x10-0x17 */ + 779, 781, 783, 785, 787, 789, 791, 793, /* 0x18-0x1f */ + 795, -1, 797, -1, 799, 801, 804, -1, /* 0x20-0x27 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x28-0x2f */ + 808, -1, 813, 815, 818, -1, 822, 825, /* 0x30-0x37 */ + -1, 829, 831, -1, 833, -1, -1, -1, /* 0x38-0x3f */ + -1, -1, -1, -1, 836, -1, -1, 838, /* 0x40-0x47 */ + 841, 844, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */ + -1, -1, -1, -1, -1, -1, -1, 847, /* 0x50-0x57 */ +}; +static const short translit_page20_3[8] = { + 852, -1, -1, 855, 860, -1, -1, -1, /* 0xa8-0xaf */ +}; +static const short translit_page21[216] = { + 864, 868, 872, 874, -1, 877, 881, 885, /* 0x00-0x07 */ + -1, 887, 890, 892, 894, 896, 898, 900, /* 0x08-0x0f */ + 902, 904, 906, 908, -1, 910, 912, -1, /* 0x10-0x17 */ + -1, 915, 917, 919, 921, 923, -1, -1, /* 0x18-0x1f */ + -1, 925, 929, -1, 932, -1, 934, -1, /* 0x20-0x27 */ + 938, -1, -1, -1, 940, 942, 944, 946, /* 0x28-0x2f */ + 948, 950, -1, 952, 954, 956, 958, 960, /* 0x30-0x37 */ + 962, 964, -1, 966, -1, 970, 972, 974, /* 0x38-0x3f */ + 976, -1, -1, -1, -1, 978, 980, 982, /* 0x40-0x47 */ + 984, 986, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */ + -1, -1, -1, 988, 994, 1000, 1006, 1012, /* 0x50-0x57 */ + 1018, 1024, 1030, 1036, 1042, 1048, 1054, 1060, /* 0x58-0x5f */ + 1064, 1066, 1069, 1073, 1076, 1078, 1081, 1085, /* 0x60-0x67 */ + 1090, 1093, 1095, 1098, 1102, 1104, 1106, 1108, /* 0x68-0x6f */ + 1110, 1112, 1115, 1119, 1122, 1124, 1127, 1131, /* 0x70-0x77 */ + 1136, 1139, 1141, 1144, 1148, 1150, 1152, 1154, /* 0x78-0x7f */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x80-0x87 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x88-0x8f */ + 1156, 1159, 1161, 1164, 1166, -1, -1, -1, /* 0x90-0x97 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x98-0x9f */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xa0-0xa7 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xa8-0xaf */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb0-0xb7 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb8-0xbf */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc0-0xc7 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc8-0xcf */ + 1170, -1, 1173, -1, 1176, -1, -1, -1, /* 0xd0-0xd7 */ +}; +static const short translit_page22[96] = { + -1, -1, 1180, -1, -1, 1182, 1184, 1186, /* 0x10-0x17 */ + -1, 1188, -1, -1, -1, -1, -1, -1, /* 0x18-0x1f */ + -1, -1, -1, 1190, -1, -1, -1, -1, /* 0x20-0x27 */ + -1, -1, -1, -1, 1192, 1195, -1, 1199, /* 0x28-0x2f */ + 1202, -1, -1, -1, -1, -1, 1206, -1, /* 0x30-0x37 */ + -1, -1, -1, -1, 1208, -1, -1, -1, /* 0x38-0x3f */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x40-0x47 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x50-0x57 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x58-0x5f */ + 1210, -1, -1, -1, 1213, 1216, -1, -1, /* 0x60-0x67 */ + -1, -1, 1219, 1222, -1, -1, -1, -1, /* 0x68-0x6f */ +}; +static const short translit_page22_4[48] = { + -1, -1, -1, -1, -1, 1225, -1, -1, /* 0xc0-0xc7 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc8-0xcf */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd0-0xd7 */ + 1227, 1231, -1, -1, -1, -1, -1, -1, /* 0xd8-0xdf */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe0-0xe7 */ + -1, -1, -1, -1, -1, -1, -1, 1235, /* 0xe8-0xef */ +}; +static const short translit_page24[240] = { + 1239, 1245, 1251, 1257, 1263, 1269, 1275, 1281, /* 0x00-0x07 */ + 1287, 1292, 1297, 1302, 1307, 1312, 1317, 1322, /* 0x08-0x0f */ + 1327, 1333, 1339, 1345, 1351, 1357, 1363, 1369, /* 0x10-0x17 */ + 1375, 1381, 1386, 1392, 1398, 1403, 1408, 1413, /* 0x18-0x1f */ + 1418, 1423, -1, -1, 1429, -1, -1, -1, /* 0x20-0x27 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x28-0x2f */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x30-0x37 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x38-0x3f */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x40-0x47 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x50-0x57 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x58-0x5f */ + 1434, 1438, 1442, 1446, 1450, 1454, 1458, 1462, /* 0x60-0x67 */ + 1466, 1470, 1475, 1480, 1485, 1490, 1495, 1500, /* 0x68-0x6f */ + 1505, 1510, 1515, 1520, 1525, 1529, 1533, 1537, /* 0x70-0x77 */ + 1541, 1545, 1549, 1553, 1557, 1561, 1566, 1571, /* 0x78-0x7f */ + 1576, 1581, 1586, 1591, 1596, 1601, 1606, 1611, /* 0x80-0x87 */ + 1616, 1619, 1622, 1625, 1628, 1631, 1634, 1637, /* 0x88-0x8f */ + 1640, 1643, 1647, 1651, 1655, 1659, 1663, 1667, /* 0x90-0x97 */ + 1671, 1675, 1679, 1683, 1687, 1691, 1695, 1699, /* 0x98-0x9f */ + 1703, 1707, 1711, 1715, 1719, 1723, 1727, 1731, /* 0xa0-0xa7 */ + 1735, 1739, 1743, 1747, 1751, 1755, 1759, 1763, /* 0xa8-0xaf */ + 1767, 1771, 1775, 1779, 1783, 1787, 1791, 1795, /* 0xb0-0xb7 */ + 1799, 1803, 1807, 1811, 1815, 1819, 1823, 1827, /* 0xb8-0xbf */ + 1831, 1835, 1839, 1843, 1847, 1851, 1855, 1859, /* 0xc0-0xc7 */ + 1863, 1867, 1871, 1875, 1879, 1883, 1887, 1891, /* 0xc8-0xcf */ + 1895, 1899, 1903, 1907, 1911, 1915, 1919, 1923, /* 0xd0-0xd7 */ + 1927, 1931, 1935, 1939, 1943, 1947, 1951, 1955, /* 0xd8-0xdf */ + 1959, 1963, 1967, 1971, 1975, 1979, 1983, 1987, /* 0xe0-0xe7 */ + 1991, 1995, 1999, -1, -1, -1, -1, -1, /* 0xe8-0xef */ +}; +static const short translit_page25[64] = { + 2003, -1, 2005, -1, -1, -1, -1, -1, /* 0x00-0x07 */ + -1, -1, -1, -1, 2007, -1, -1, -1, /* 0x08-0x0f */ + 2009, -1, -1, -1, 2011, -1, -1, -1, /* 0x10-0x17 */ + 2013, -1, -1, -1, 2015, -1, -1, -1, /* 0x18-0x1f */ + -1, -1, -1, -1, 2017, -1, -1, -1, /* 0x20-0x27 */ + -1, -1, -1, -1, 2019, -1, -1, -1, /* 0x28-0x2f */ + -1, -1, -1, -1, 2021, -1, -1, -1, /* 0x30-0x37 */ + -1, -1, -1, -1, 2023, -1, -1, -1, /* 0x38-0x3f */ +}; +static const short translit_page2a[8] = { + -1, -1, -1, -1, 2032, 2036, 2039, -1, /* 0x70-0x77 */ +}; +static const short translit_page2f[216] = { + 2047, 2049, 2051, 2053, 2055, 2057, 2059, 2061, /* 0x00-0x07 */ + 2063, 2065, 2067, 2069, 2071, 2073, 2075, 2077, /* 0x08-0x0f */ + 2079, 2081, 2083, 2085, 2087, 2089, 2091, 2093, /* 0x10-0x17 */ + 2095, 2097, 2099, 2101, 2103, 2105, 2107, 2109, /* 0x18-0x1f */ + 2111, 2113, 2115, 2117, 2119, 2121, 2123, 2125, /* 0x20-0x27 */ + 2127, 2129, 2131, 2133, 2135, 2137, 2139, 2141, /* 0x28-0x2f */ + 2143, 2145, 2147, 2149, 2151, 2153, 2155, 2157, /* 0x30-0x37 */ + 2159, 2161, 2163, 2165, 2167, 2169, 2171, 2173, /* 0x38-0x3f */ + 2175, 2177, 2179, 2181, 2183, 2185, 2187, 2189, /* 0x40-0x47 */ + 2191, 2193, 2195, 2197, 2199, 2201, 2203, 2205, /* 0x48-0x4f */ + 2207, 2209, 2211, 2213, 2215, 2217, 2219, 2221, /* 0x50-0x57 */ + 2223, 2225, 2227, 2229, 2231, 2233, 2235, 2237, /* 0x58-0x5f */ + 2239, 2241, 2243, 2245, 2247, 2249, 2251, 2253, /* 0x60-0x67 */ + 2255, 2257, 2259, 2261, 2263, 2265, 2267, 2269, /* 0x68-0x6f */ + 2271, 2273, 2275, 2277, 2279, 2281, 2283, 2285, /* 0x70-0x77 */ + 2287, 2289, 2291, 2293, 2295, 2297, 2299, 2301, /* 0x78-0x7f */ + 2303, 2305, 2307, 2309, 2311, 2313, 2315, 2317, /* 0x80-0x87 */ + 2319, 2321, 2323, 2325, 2327, 2329, 2331, 2333, /* 0x88-0x8f */ + 2335, 2337, 2339, 2341, 2343, 2345, 2347, 2349, /* 0x90-0x97 */ + 2351, 2353, 2355, 2357, 2359, 2361, 2363, 2365, /* 0x98-0x9f */ + 2367, 2369, 2371, 2373, 2375, 2377, 2379, 2381, /* 0xa0-0xa7 */ + 2383, 2385, 2387, 2389, 2391, 2393, 2395, 2397, /* 0xa8-0xaf */ + 2399, 2401, 2403, 2405, 2407, 2409, 2411, 2413, /* 0xb0-0xb7 */ + 2415, 2417, 2419, 2421, 2423, 2425, 2427, 2429, /* 0xb8-0xbf */ + 2431, 2433, 2435, 2437, 2439, 2441, 2443, 2445, /* 0xc0-0xc7 */ + 2447, 2449, 2451, 2453, 2455, 2457, 2459, 2461, /* 0xc8-0xcf */ + 2463, 2465, 2467, 2469, 2471, 2473, -1, -1, /* 0xd0-0xd7 */ +}; +static const short translit_page30[248] = { + 2475, -1, -1, -1, -1, -1, -1, -1, /* 0x00-0x07 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x08-0x0f */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x10-0x17 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x18-0x1f */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x20-0x27 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x28-0x2f */ + -1, -1, -1, -1, -1, -1, 2477, -1, /* 0x30-0x37 */ + 2479, 2481, 2483, -1, -1, -1, -1, -1, /* 0x38-0x3f */ + -1, 2485, -1, 2487, -1, 2489, -1, 2491, /* 0x40-0x47 */ + -1, 2493, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x50-0x57 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x58-0x5f */ + -1, -1, -1, 2495, -1, -1, -1, -1, /* 0x60-0x67 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x68-0x6f */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x70-0x77 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x78-0x7f */ + -1, -1, -1, 2497, -1, 2499, -1, 2501, /* 0x80-0x87 */ + -1, -1, -1, -1, -1, -1, 2503, -1, /* 0x88-0x8f */ + -1, -1, -1, -1, -1, 2505, 2507, -1, /* 0x90-0x97 */ + -1, -1, -1, 2509, 2512, -1, -1, -1, /* 0x98-0x9f */ + 2515, 2517, -1, 2519, -1, 2521, -1, 2523, /* 0xa0-0xa7 */ + -1, 2525, -1, -1, -1, -1, -1, -1, /* 0xa8-0xaf */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb0-0xb7 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb8-0xbf */ + -1, -1, -1, 2527, -1, -1, -1, -1, /* 0xc0-0xc7 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc8-0xcf */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd0-0xd7 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd8-0xdf */ + -1, -1, -1, 2529, -1, 2531, -1, 2533, /* 0xe0-0xe7 */ + -1, -1, -1, -1, -1, -1, 2535, -1, /* 0xe8-0xef */ + -1, -1, -1, -1, -1, 2537, 2539, -1, /* 0xf0-0xf7 */ +}; +static const short translit_page31[96] = { + -1, 2541, 2543, 2545, 2547, 2549, 2551, 2553, /* 0x30-0x37 */ + 2555, 2557, 2559, 2561, 2563, 2565, 2567, 2569, /* 0x38-0x3f */ + 2571, 2573, 2575, 2577, 2579, 2581, 2583, 2585, /* 0x40-0x47 */ + 2587, 2589, 2591, 2593, 2595, 2597, 2599, 2601, /* 0x48-0x4f */ + 2603, 2605, 2607, 2609, 2611, 2613, 2615, 2617, /* 0x50-0x57 */ + 2619, 2621, 2623, 2625, 2627, 2629, 2631, 2633, /* 0x58-0x5f */ + 2635, 2637, 2639, 2641, 2643, 2645, 2647, 2649, /* 0x60-0x67 */ + 2651, 2653, 2655, 2657, 2659, 2661, 2663, 2665, /* 0x68-0x6f */ + 2667, 2669, 2671, 2673, 2675, 2677, 2679, 2681, /* 0x70-0x77 */ + 2683, 2685, 2687, 2689, 2691, 2693, 2695, 2697, /* 0x78-0x7f */ + 2699, 2701, 2703, 2705, 2707, 2709, 2711, 2713, /* 0x80-0x87 */ + 2715, 2717, 2719, 2721, 2723, 2725, 2727, -1, /* 0x88-0x8f */ +}; +static const short translit_page31_5[528] = { + 2729, 2731, 2733, 2735, 2737, 2739, 2741, 2743, /* 0xf0-0xf7 */ + 2745, 2747, 2749, 2751, 2753, 2755, 2757, 2759, /* 0xf8-0xff */ + /* 0x3200 */ + 2761, 2765, 2769, 2773, 2777, 2781, 2785, 2789, /* 0x00-0x07 */ + 2793, 2797, 2801, 2805, 2809, 2813, 2817, 2822, /* 0x08-0x0f */ + 2827, 2832, 2837, 2842, 2847, 2852, 2857, 2862, /* 0x10-0x17 */ + 2867, 2872, 2877, 2882, 2887, 2892, 2900, -1, /* 0x18-0x1f */ + 2907, 2911, 2915, 2919, 2923, 2927, 2931, 2935, /* 0x20-0x27 */ + 2939, 2943, 2947, 2951, 2955, 2959, 2963, 2967, /* 0x28-0x2f */ + 2971, 2975, 2979, 2983, 2987, 2991, 2995, 2999, /* 0x30-0x37 */ + 3003, 3007, 3011, 3015, 3019, 3023, 3027, 3031, /* 0x38-0x3f */ + 3035, 3039, 3043, 3047, -1, -1, -1, -1, /* 0x40-0x47 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */ + 3051, 3055, 3060, 3065, 3070, 3075, 3080, 3085, /* 0x50-0x57 */ + 3090, 3095, 3100, 3105, 3110, 3115, 3120, 3125, /* 0x58-0x5f */ + 3130, 3134, 3138, 3142, 3146, 3150, 3154, 3158, /* 0x60-0x67 */ + 3162, 3166, 3170, 3174, 3178, 3182, 3186, 3191, /* 0x68-0x6f */ + 3196, 3201, 3206, 3211, 3216, 3221, 3226, 3231, /* 0x70-0x77 */ + 3236, 3241, 3246, 3251, 3256, 3264, -1, -1, /* 0x78-0x7f */ + 3271, 3275, 3279, 3283, 3287, 3291, 3295, 3299, /* 0x80-0x87 */ + 3303, 3307, 3311, 3315, 3319, 3323, 3327, 3331, /* 0x88-0x8f */ + 3335, 3339, 3343, 3347, 3351, 3355, 3359, 3363, /* 0x90-0x97 */ + 3367, 3371, 3375, 3379, 3383, 3387, 3391, 3395, /* 0x98-0x9f */ + 3399, 3403, 3407, 3411, 3415, 3419, 3423, 3427, /* 0xa0-0xa7 */ + 3431, 3435, 3439, 3443, 3447, 3451, 3455, 3459, /* 0xa8-0xaf */ + 3463, 3467, 3472, 3477, 3482, 3487, 3492, 3497, /* 0xb0-0xb7 */ + 3502, 3507, 3512, 3517, 3522, 3527, 3532, 3537, /* 0xb8-0xbf */ + 3542, 3545, 3548, 3551, 3554, 3557, 3560, 3563, /* 0xc0-0xc7 */ + 3566, 3569, 3573, 3577, 3581, 3584, 3588, 3591, /* 0xc8-0xcf */ + 3595, 3599, 3603, 3607, 3611, 3615, 3619, 3623, /* 0xd0-0xd7 */ + 3627, 3631, 3635, 3639, 3643, 3647, 3651, 3655, /* 0xd8-0xdf */ + 3659, 3663, 3667, 3671, 3675, 3679, 3683, 3687, /* 0xe0-0xe7 */ + 3691, 3695, 3699, 3703, 3707, 3711, 3715, 3719, /* 0xe8-0xef */ + 3723, 3727, 3731, 3735, 3739, 3743, 3747, 3751, /* 0xf0-0xf7 */ + 3755, 3759, 3763, 3767, 3771, 3775, 3779, -1, /* 0xf8-0xff */ + /* 0x3300 */ + 3783, 3788, 3793, 3798, 3802, 3807, 3811, 3815, /* 0x00-0x07 */ + 3821, 3826, 3830, 3834, 3838, 3843, 3848, 3852, /* 0x08-0x0f */ + 3856, 3859, 3863, 3868, 3873, 3876, 3882, 3889, /* 0x10-0x17 */ + 3895, 3899, 3905, 3911, 3916, 3920, 3924, 3928, /* 0x18-0x1f */ + 3933, 3939, 3944, 3948, 3952, 3956, 3959, 3962, /* 0x20-0x27 */ + 3965, 3968, 3972, 3976, 3982, 3986, 3991, 3997, /* 0x28-0x2f */ + 4001, 4004, 4007, 4013, 4018, 4024, 4028, 4034, /* 0x30-0x37 */ + 4037, 4041, 4045, 4049, 4053, 4057, 4062, 4066, /* 0x38-0x3f */ + 4069, 4073, 4077, 4081, 4086, 4090, 4094, 4098, /* 0x40-0x47 */ + 4104, 4109, 4112, 4118, 4121, 4126, 4131, 4135, /* 0x48-0x4f */ + 4139, 4143, 4148, 4151, 4155, 4160, 4163, 4169, /* 0x50-0x57 */ + 4173, 4176, 4179, 4182, 4185, 4188, 4191, 4194, /* 0x58-0x5f */ + 4197, 4200, 4203, 4207, 4211, 4215, 4219, 4223, /* 0x60-0x67 */ + 4227, 4231, 4235, 4239, 4243, 4247, 4251, 4255, /* 0x68-0x6f */ + 4259, 4263, 4267, 4270, 4273, 4277, 4280, 4283, /* 0x70-0x77 */ + 4286, 4291, 4296, 4299, 4302, 4305, 4308, 4311, /* 0x78-0x7f */ + 4316, 4319, 4322, 4325, 4328, 4331, 4334, 4337, /* 0x80-0x87 */ + 4340, 4344, 4349, 4352, 4355, 4358, 4361, 4364, /* 0x88-0x8f */ + 4367, 4370, 4374, 4378, 4382, 4386, 4389, 4392, /* 0x90-0x97 */ + 4395, 4398, 4401, 4404, 4407, 4410, 4413, 4416, /* 0x98-0x9f */ + 4421, 4426, 4430, 4435, 4440, 4445, 4449, 4454, /* 0xa0-0xa7 */ + 4458, 4464, 4467, 4471, 4475, 4479, 4483, 4489, /* 0xa8-0xaf */ + 4497, 4500, 4503, 4506, 4509, 4512, 4515, 4518, /* 0xb0-0xb7 */ + 4521, 4524, 4527, 4530, 4533, 4536, 4539, 4542, /* 0xb8-0xbf */ + 4545, 4548, 4551, 4556, 4559, 4562, 4565, 4570, /* 0xc0-0xc7 */ + 4574, 4577, 4580, 4583, 4586, 4589, 4592, 4595, /* 0xc8-0xcf */ + 4598, 4601, 4604, 4608, 4611, 4614, 4618, 4622, /* 0xd0-0xd7 */ + 4625, 4630, 4634, 4637, 4640, 4643, 4646, 4650, /* 0xd8-0xdf */ + 4658, 4661, 4664, 4667, 4670, 4673, 4676, 4679, /* 0xe0-0xe7 */ + 4682, 4685, 4689, 4693, 4697, 4701, 4705, 4709, /* 0xe8-0xef */ + 4713, 4717, 4721, 4725, 4729, 4733, 4737, 4741, /* 0xf0-0xf7 */ + 4745, 4749, 4753, 4757, 4761, 4765, 4769, 4654, /* 0xf8-0xff */ +}; +static const short translit_pagef9[368] = { + 4773, 4775, 4777, 4779, 4781, 4783, 4785, 4787, /* 0x00-0x07 */ + 4789, 4791, 4793, 4795, 4797, 4799, 4801, 4803, /* 0x08-0x0f */ + 4805, 4807, 4809, 4811, 4813, 4815, 4817, 4819, /* 0x10-0x17 */ + 4821, 4823, 4825, 4827, 4829, 4831, 4833, 4835, /* 0x18-0x1f */ + 4837, 4839, 4841, 4843, 4845, 4847, 4849, 4851, /* 0x20-0x27 */ + 4853, 4855, 4857, 4859, 4861, 4863, 4865, 4867, /* 0x28-0x2f */ + 4869, 4871, 4873, 4875, 4877, 4879, 4881, 4883, /* 0x30-0x37 */ + 4885, 4887, 4889, 4891, 4893, 4895, 4897, 4899, /* 0x38-0x3f */ + 4901, 4903, 4905, 4907, 4909, 4911, 4913, 4915, /* 0x40-0x47 */ + 4917, 4919, 4921, 4923, 4925, 4927, 4929, 4931, /* 0x48-0x4f */ + 4933, 4935, 4937, 4939, 4941, 4943, 4945, 4947, /* 0x50-0x57 */ + 4949, 4951, 4953, 4955, 4957, 4959, 4961, 4963, /* 0x58-0x5f */ + 4965, 4967, 4969, 4971, 4973, 4975, 4977, 4979, /* 0x60-0x67 */ + 4981, 4983, 4985, 4987, 4989, 4991, 4993, 4995, /* 0x68-0x6f */ + 4997, 4999, 5001, 5003, 5005, 5007, 5009, 5011, /* 0x70-0x77 */ + 5013, 5015, 5017, 5019, 5021, 5023, 5025, 5027, /* 0x78-0x7f */ + 5029, 5031, 5033, 5035, 5037, 5039, 5041, 5043, /* 0x80-0x87 */ + 5045, 5047, 5049, 5051, 5053, 5055, 5057, 5059, /* 0x88-0x8f */ + 5061, 5063, 5065, 5067, 5069, 5071, 5073, 5075, /* 0x90-0x97 */ + 5077, 5079, 5081, 5083, 5085, 5087, 5089, 5091, /* 0x98-0x9f */ + 5093, 5095, 5097, 5099, 5101, 5103, 5105, 5107, /* 0xa0-0xa7 */ + 5109, 5111, 5113, 5115, 5117, 5119, 5121, 5123, /* 0xa8-0xaf */ + 5125, 5127, 5129, 5131, 5133, 5135, 5137, 5139, /* 0xb0-0xb7 */ + 5141, 5143, 5145, 5147, 5149, 5151, 5153, 5155, /* 0xb8-0xbf */ + 5157, 5159, 5161, 5163, 5165, 5167, 5169, 5171, /* 0xc0-0xc7 */ + 5173, 5175, 5177, 5179, 5181, 5183, 5185, 5187, /* 0xc8-0xcf */ + 5189, 5191, 5193, 5195, 5197, 5199, 5201, 5203, /* 0xd0-0xd7 */ + 5205, 5207, 5209, 5211, 5213, 5215, 5217, 5219, /* 0xd8-0xdf */ + 5221, 5223, 5225, 5227, 5229, 5231, 5233, 5235, /* 0xe0-0xe7 */ + 5237, 5239, 5241, 5243, 5245, 5247, 5249, 5251, /* 0xe8-0xef */ + 5253, 5255, 5257, 5259, 5261, 5263, 5265, 5267, /* 0xf0-0xf7 */ + 5269, 5271, 5273, 5275, 5277, 5279, 5281, 5283, /* 0xf8-0xff */ + /* 0xfa00 */ + 5285, 5287, 5289, 5291, 5293, 5295, 5297, 5299, /* 0x00-0x07 */ + 5301, 5303, 5305, 5307, 5309, 5311, -1, -1, /* 0x08-0x0f */ + 5313, -1, 5315, -1, -1, 5317, 5319, 5321, /* 0x10-0x17 */ + 5323, 5325, 5327, 5329, 5331, 5333, 5335, -1, /* 0x18-0x1f */ + 5337, -1, 5339, -1, -1, 5341, 5343, -1, /* 0x20-0x27 */ + -1, -1, 5345, 5347, 5349, 5351, -1, -1, /* 0x28-0x2f */ + 5353, 5355, 5357, 5359, 5361, 5363, 5365, 5367, /* 0x30-0x37 */ + 5369, 5371, 5373, 5375, 5377, 5379, 5381, 5383, /* 0x38-0x3f */ + 5385, 5387, 5389, 5391, 5393, 5395, 5397, 5399, /* 0x40-0x47 */ + 5401, 5403, 5405, 5407, 5409, 5411, 5413, 5415, /* 0x48-0x4f */ + 5417, 5419, 5421, 5423, 5425, 5427, 5429, 5431, /* 0x50-0x57 */ + 5433, 5435, 5437, 5439, 5441, 5443, 5445, 5447, /* 0x58-0x5f */ + 5449, 5451, 5453, 5455, 5457, 5459, 5461, 5463, /* 0x60-0x67 */ + 5465, 5467, 5469, -1, -1, -1, -1, -1, /* 0x68-0x6f */ +}; +static const short translit_pagefb[80] = { + 5471, 5474, 5477, 5480, 5484, 5488, 5491, -1, /* 0x00-0x07 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x08-0x0f */ + -1, -1, -1, 5494, 5497, 5500, 5503, 5506, /* 0x10-0x17 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x18-0x1f */ + 5509, 5511, 5513, 5515, 5517, 5519, 5521, 5523, /* 0x20-0x27 */ + 5525, 5527, -1, -1, -1, -1, -1, -1, /* 0x28-0x2f */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x30-0x37 */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x38-0x3f */ + -1, -1, -1, -1, -1, -1, -1, -1, /* 0x40-0x47 */ + -1, -1, -1, -1, -1, -1, -1, 5529, /* 0x48-0x4f */ +}; +static const short translit_pagefe[40] = { + -1, 5532, 5534, 5536, 5538, 5540, 5542, 5544, /* 0x48-0x4f */ + 5546, 5548, 5550, -1, 5552, 5554, 5556, 5558, /* 0x50-0x57 */ + 5560, 5562, 5564, 5566, 5568, 5570, 5572, 5574, /* 0x58-0x5f */ + 5576, 5578, 5580, 5582, 5584, 5586, 5588, -1, /* 0x60-0x67 */ + 5590, 5592, 5594, 5596, -1, -1, -1, -1, /* 0x68-0x6f */ +}; +static const short translit_pageff[240] = { + -1, 5598, 5600, 5602, 5604, 5606, 5608, 5610, /* 0x00-0x07 */ + 5612, 5614, 5616, 5618, 5620, 5622, 5624, 5626, /* 0x08-0x0f */ + 5628, 5630, 5632, 5634, 5636, 5638, 5640, 5642, /* 0x10-0x17 */ + 5644, 5646, 5648, 5650, 5652, 5654, 5656, 5658, /* 0x18-0x1f */ + 5660, 5662, 5664, 5666, 5668, 5670, 5672, 5674, /* 0x20-0x27 */ + 5676, 5678, 5680, 5682, 5684, 5686, 5688, 5690, /* 0x28-0x2f */ + 5692, 5694, 5696, 5698, 5700, 5702, 5704, 5706, /* 0x30-0x37 */ + 5708, 5710, 5712, 5714, 5716, 5718, 5720, 5722, /* 0x38-0x3f */ + 5724, 5726, 5728, 5730, 5732, 5734, 5736, 5738, /* 0x40-0x47 */ + 5740, 5742, 5744, 5746, 5748, 5750, 5752, 5754, /* 0x48-0x4f */ + 5756, 5758, 5760, 5762, 5764, 5766, 5768, 5770, /* 0x50-0x57 */ + 5772, 5774, 5776, 5778, 5780, 5782, 5784, 5786, /* 0x58-0x5f */ + 5788, 5790, 5792, 5794, 5796, 5798, 5800, 5802, /* 0x60-0x67 */ + 5804, 5806, 5808, 5810, 5812, 5814, 5816, 5818, /* 0x68-0x6f */ + 5820, 5822, 5824, 5826, 5828, 5830, 5832, 5834, /* 0x70-0x77 */ + 5836, 5838, 5840, 5842, 5844, 5846, 5848, 5850, /* 0x78-0x7f */ + 5852, 5854, 5856, 5858, 5860, 5862, 5864, 5866, /* 0x80-0x87 */ + 5868, 5870, 5872, 5874, 5876, 5878, 5880, 5882, /* 0x88-0x8f */ + 5884, 5886, 5888, 5890, 5892, 5894, 5896, 5898, /* 0x90-0x97 */ + 5900, 5902, 5904, 5906, 5908, 5910, 5912, 5914, /* 0x98-0x9f */ + 5916, 5918, 5920, 5922, 5924, 5926, 5928, 5930, /* 0xa0-0xa7 */ + 5932, 5934, 5936, 5938, 5940, 5942, 5944, 5946, /* 0xa8-0xaf */ + 5948, 5950, 5952, 5954, 5956, 5958, 5960, 5962, /* 0xb0-0xb7 */ + 5964, 5966, 5968, 5970, 5972, 5974, 5976, -1, /* 0xb8-0xbf */ + -1, -1, 5978, 5980, 5982, 5984, 5986, 5988, /* 0xc0-0xc7 */ + -1, -1, 5990, 5992, 5994, 5996, 5998, 6000, /* 0xc8-0xcf */ + -1, -1, 6002, 6004, 6006, 6008, 6010, 6012, /* 0xd0-0xd7 */ + -1, -1, 6014, 6016, 6018, -1, -1, -1, /* 0xd8-0xdf */ + 6020, 6022, 6024, 6026, 6028, 6030, 6032, -1, /* 0xe0-0xe7 */ + 6034, 6036, 6038, 6040, 6042, 6044, 6046, -1, /* 0xe8-0xef */ +}; +static const short translit_page1d4[1024] = { + 6048, 6050, 6052, 6054, 6056, 6058, 6060, 6062, /* 0x00-0x07 */ + 6064, 6066, 6068, 6070, 6072, 6074, 6076, 6078, /* 0x08-0x0f */ + 6080, 6082, 6084, 6086, 6088, 6090, 6092, 6094, /* 0x10-0x17 */ + 6096, 6098, 6100, 6102, 6104, 6106, 6108, 6110, /* 0x18-0x1f */ + 6112, 6114, 6116, 6118, 6120, 6122, 6124, 6126, /* 0x20-0x27 */ + 6128, 6130, 6132, 6134, 6136, 6138, 6140, 6142, /* 0x28-0x2f */ + 6144, 6146, 6148, 6150, 6152, 6154, 6156, 6158, /* 0x30-0x37 */ + 6160, 6162, 6164, 6166, 6168, 6170, 6172, 6174, /* 0x38-0x3f */ + 6176, 6178, 6180, 6182, 6184, 6186, 6188, 6190, /* 0x40-0x47 */ + 6192, 6194, 6196, 6198, 6200, 6202, 6204, 6206, /* 0x48-0x4f */ + 6208, 6210, 6212, 6214, 6216, -1, 6218, 6220, /* 0x50-0x57 */ + 6222, 6224, 6226, 6228, 6230, 6232, 6234, 6236, /* 0x58-0x5f */ + 6238, 6240, 6242, 6244, 6246, 6248, 6250, 6252, /* 0x60-0x67 */ + 6254, 6256, 6258, 6260, 6262, 6264, 6266, 6268, /* 0x68-0x6f */ + 6270, 6272, 6274, 6276, 6278, 6280, 6282, 6284, /* 0x70-0x77 */ + 6286, 6288, 6290, 6292, 6294, 6296, 6298, 6300, /* 0x78-0x7f */ + 6302, 6304, 6306, 6308, 6310, 6312, 6314, 6316, /* 0x80-0x87 */ + 6318, 6320, 6322, 6324, 6326, 6328, 6330, 6332, /* 0x88-0x8f */ + 6334, 6336, 6338, 6340, 6342, 6344, 6346, 6348, /* 0x90-0x97 */ + 6350, 6352, 6354, 6356, 6358, -1, 6360, 6362, /* 0x98-0x9f */ + -1, -1, 6364, -1, -1, 6366, 6368, -1, /* 0xa0-0xa7 */ + -1, 6370, 6372, 6374, 6376, -1, 6378, 6380, /* 0xa8-0xaf */ + 6382, 6384, 6386, 6388, 6390, 6392, 6394, 6396, /* 0xb0-0xb7 */ + 6398, 6400, -1, 6402, -1, 6404, 6406, 6408, /* 0xb8-0xbf */ + 6410, 6412, 6414, 6416, -1, 6418, 6420, 6422, /* 0xc0-0xc7 */ + 6424, 6426, 6428, 6430, 6432, 6434, 6436, 6438, /* 0xc8-0xcf */ + 6440, 6442, 6444, 6446, 6448, 6450, 6452, 6454, /* 0xd0-0xd7 */ + 6456, 6458, 6460, 6462, 6464, 6466, 6468, 6470, /* 0xd8-0xdf */ + 6472, 6474, 6476, 6478, 6480, 6482, 6484, 6486, /* 0xe0-0xe7 */ + 6488, 6490, 6492, 6494, 6496, 6498, 6500, 6502, /* 0xe8-0xef */ + 6504, 6506, 6508, 6510, 6512, 6514, 6516, 6518, /* 0xf0-0xf7 */ + 6520, 6522, 6524, 6526, 6528, 6530, 6532, 6534, /* 0xf8-0xff */ + /* 0x1d500 */ + 6536, 6538, 6540, 6542, 6544, 6546, -1, 6548, /* 0x00-0x07 */ + 6550, 6552, 6554, -1, -1, 6556, 6558, 6560, /* 0x08-0x0f */ + 6562, 6564, 6566, 6568, 6570, -1, 6572, 6574, /* 0x10-0x17 */ + 6576, 6578, 6580, 6582, 6584, -1, 6586, 6588, /* 0x18-0x1f */ + 6590, 6592, 6594, 6596, 6598, 6600, 6602, 6604, /* 0x20-0x27 */ + 6606, 6608, 6610, 6612, 6614, 6616, 6618, 6620, /* 0x28-0x2f */ + 6622, 6624, 6626, 6628, 6630, 6632, 6634, 6636, /* 0x30-0x37 */ + 6638, 6640, -1, 6642, 6644, 6646, 6648, -1, /* 0x38-0x3f */ + 6650, 6652, 6654, 6656, 6658, -1, 6660, -1, /* 0x40-0x47 */ + -1, -1, 6662, 6664, 6666, 6668, 6670, 6672, /* 0x48-0x4f */ + 6674, -1, 6676, 6678, 6680, 6682, 6684, 6686, /* 0x50-0x57 */ + 6688, 6690, 6692, 6694, 6696, 6698, 6700, 6702, /* 0x58-0x5f */ + 6704, 6706, 6708, 6710, 6712, 6714, 6716, 6718, /* 0x60-0x67 */ + 6720, 6722, 6724, 6726, 6728, 6730, 6732, 6734, /* 0x68-0x6f */ + 6736, 6738, 6740, 6742, 6744, 6746, 6748, 6750, /* 0x70-0x77 */ + 6752, 6754, 6756, 6758, 6760, 6762, 6764, 6766, /* 0x78-0x7f */ + 6768, 6770, 6772, 6774, 6776, 6778, 6780, 6782, /* 0x80-0x87 */ + 6784, 6786, 6788, 6790, 6792, 6794, 6796, 6798, /* 0x88-0x8f */ + 6800, 6802, 6804, 6806, 6808, 6810, 6812, 6814, /* 0x90-0x97 */ + 6816, 6818, 6820, 6822, 6824, 6826, 6828, 6830, /* 0x98-0x9f */ + 6832, 6834, 6836, 6838, 6840, 6842, 6844, 6846, /* 0xa0-0xa7 */ + 6848, 6850, 6852, 6854, 6856, 6858, 6860, 6862, /* 0xa8-0xaf */ + 6864, 6866, 6868, 6870, 6872, 6874, 6876, 6878, /* 0xb0-0xb7 */ + 6880, 6882, 6884, 6886, 6888, 6890, 6892, 6894, /* 0xb8-0xbf */ + 6896, 6898, 6900, 6902, 6904, 6906, 6908, 6910, /* 0xc0-0xc7 */ + 6912, 6914, 6916, 6918, 6920, 6922, 6924, 6926, /* 0xc8-0xcf */ + 6928, 6930, 6932, 6934, 6936, 6938, 6940, 6942, /* 0xd0-0xd7 */ + 6944, 6946, 6948, 6950, 6952, 6954, 6956, 6958, /* 0xd8-0xdf */ + 6960, 6962, 6964, 6966, 6968, 6970, 6972, 6974, /* 0xe0-0xe7 */ + 6976, 6978, 6980, 6982, 6984, 6986, 6988, 6990, /* 0xe8-0xef */ + 6992, 6994, 6996, 6998, 7000, 7002, 7004, 7006, /* 0xf0-0xf7 */ + 7008, 7010, 7012, 7014, 7016, 7018, 7020, 7022, /* 0xf8-0xff */ + /* 0x1d600 */ + 7024, 7026, 7028, 7030, 7032, 7034, 7036, 7038, /* 0x00-0x07 */ + 7040, 7042, 7044, 7046, 7048, 7050, 7052, 7054, /* 0x08-0x0f */ + 7056, 7058, 7060, 7062, 7064, 7066, 7068, 7070, /* 0x10-0x17 */ + 7072, 7074, 7076, 7078, 7080, 7082, 7084, 7086, /* 0x18-0x1f */ + 7088, 7090, 7092, 7094, 7096, 7098, 7100, 7102, /* 0x20-0x27 */ + 7104, 7106, 7108, 7110, 7112, 7114, 7116, 7118, /* 0x28-0x2f */ + 7120, 7122, 7124, 7126, 7128, 7130, 7132, 7134, /* 0x30-0x37 */ + 7136, 7138, 7140, 7142, 7144, 7146, 7148, 7150, /* 0x38-0x3f */ + 7152, 7154, 7156, 7158, 7160, 7162, 7164, 7166, /* 0x40-0x47 */ + 7168, 7170, 7172, 7174, 7176, 7178, 7180, 7182, /* 0x48-0x4f */ + 7184, 7186, 7188, 7190, 7192, 7194, 7196, 7198, /* 0x50-0x57 */ + 7200, 7202, 7204, 7206, 7208, 7210, 7212, 7214, /* 0x58-0x5f */ + 7216, 7218, 7220, 7222, 7224, 7226, 7228, 7230, /* 0x60-0x67 */ + 7232, 7234, 7236, 7238, 7240, 7242, 7244, 7246, /* 0x68-0x6f */ + 7248, 7250, 7252, 7254, 7256, 7258, 7260, 7262, /* 0x70-0x77 */ + 7264, 7266, 7268, 7270, 7272, 7274, 7276, 7278, /* 0x78-0x7f */ + 7280, 7282, 7284, 7286, 7288, 7290, 7292, 7294, /* 0x80-0x87 */ + 7296, 7298, 7300, 7302, 7304, 7306, 7308, 7310, /* 0x88-0x8f */ + 7312, 7314, 7316, 7318, 7320, 7322, 7324, 7326, /* 0x90-0x97 */ + 7328, 7330, 7332, 7334, 7336, 7338, 7340, 7342, /* 0x98-0x9f */ + 7344, 7346, 7348, 7350, -1, -1, -1, -1, /* 0xa0-0xa7 */ + 7352, 7354, 7356, 7358, 7360, 7362, 7364, 7366, /* 0xa8-0xaf */ + 7368, 7370, 7372, 7374, 7376, 7378, 7380, 7382, /* 0xb0-0xb7 */ + 7384, 7386, 7388, 7390, 7392, 7394, 7396, 7398, /* 0xb8-0xbf */ + 7400, 7402, 7404, 7406, 7408, 7410, 7412, 7414, /* 0xc0-0xc7 */ + 7416, 7418, 7420, 7422, 7424, 7426, 7428, 7430, /* 0xc8-0xcf */ + 7432, 7434, 7436, 7438, 7440, 7442, 7444, 7446, /* 0xd0-0xd7 */ + 7448, 7450, 7452, 7454, 7456, 7458, 7460, 7462, /* 0xd8-0xdf */ + 7464, 7466, 7468, 7470, 7472, 7474, 7476, 7478, /* 0xe0-0xe7 */ + 7480, 7482, 7484, 7486, 7488, 7490, 7492, 7494, /* 0xe8-0xef */ + 7496, 7498, 7500, 7502, 7504, 7506, 7508, 7510, /* 0xf0-0xf7 */ + 7512, 7514, 7516, 7518, 7520, 7522, 7524, 7526, /* 0xf8-0xff */ + /* 0x1d700 */ + 7528, 7530, 7532, 7534, 7536, 7538, 7540, 7542, /* 0x00-0x07 */ + 7544, 7546, 7548, 7550, 7552, 7554, 7556, 7558, /* 0x08-0x0f */ + 7560, 7562, 7564, 7566, 7568, 7570, 7572, 7574, /* 0x10-0x17 */ + 7576, 7578, 7580, 7582, 7584, 7586, 7588, 7590, /* 0x18-0x1f */ + 7592, 7594, 7596, 7598, 7600, 7602, 7604, 7606, /* 0x20-0x27 */ + 7608, 7610, 7612, 7614, 7616, 7618, 7620, 7622, /* 0x28-0x2f */ + 7624, 7626, 7628, 7630, 7632, 7634, 7636, 7638, /* 0x30-0x37 */ + 7640, 7642, 7644, 7646, 7648, 7650, 7652, 7654, /* 0x38-0x3f */ + 7656, 7658, 7660, 7662, 7664, 7666, 7668, 7670, /* 0x40-0x47 */ + 7672, 7674, 7676, 7678, 7680, 7682, 7684, 7686, /* 0x48-0x4f */ + 7688, 7690, 7692, 7694, 7696, 7698, 7700, 7702, /* 0x50-0x57 */ + 7704, 7706, 7708, 7710, 7712, 7714, 7716, 7718, /* 0x58-0x5f */ + 7720, 7722, 7724, 7726, 7728, 7730, 7732, 7734, /* 0x60-0x67 */ + 7736, 7738, 7740, 7742, 7744, 7746, 7748, 7750, /* 0x68-0x6f */ + 7752, 7754, 7756, 7758, 7760, 7762, 7764, 7766, /* 0x70-0x77 */ + 7768, 7770, 7772, 7774, 7776, 7778, 7780, 7782, /* 0x78-0x7f */ + 7784, 7786, 7788, 7790, 7792, 7794, 7796, 7798, /* 0x80-0x87 */ + 7800, 7802, 7804, 7806, 7808, 7810, 7812, 7814, /* 0x88-0x8f */ + 7816, 7818, 7820, 7822, 7824, 7826, 7828, 7830, /* 0x90-0x97 */ + 7832, 7834, 7836, 7838, 7840, 7842, 7844, 7846, /* 0x98-0x9f */ + 7848, 7850, 7852, 7854, 7856, 7858, 7860, 7862, /* 0xa0-0xa7 */ + 7864, 7866, 7868, 7870, 7872, 7874, 7876, 7878, /* 0xa8-0xaf */ + 7880, 7882, 7884, 7886, 7888, 7890, 7892, 7894, /* 0xb0-0xb7 */ + 7896, 7898, 7900, 7902, 7904, 7906, 7908, 7910, /* 0xb8-0xbf */ + 7912, 7914, 7916, 7918, 7920, 7922, 7924, 7926, /* 0xc0-0xc7 */ + 7928, 7930, -1, -1, -1, -1, 7932, 7934, /* 0xc8-0xcf */ + 7936, 7938, 7940, 7942, 7944, 7946, 7948, 7950, /* 0xd0-0xd7 */ + 7952, 7954, 7956, 7958, 7960, 7962, 7964, 7966, /* 0xd8-0xdf */ + 7968, 7970, 7972, 7974, 7976, 7978, 7980, 7982, /* 0xe0-0xe7 */ + 7984, 7986, 7988, 7990, 7992, 7994, 7996, 7998, /* 0xe8-0xef */ + 8000, 8002, 8004, 8006, 8008, 8010, 8012, 8014, /* 0xf0-0xf7 */ + 8016, 8018, 8020, 8022, 8024, 8026, 8028, 8030, /* 0xf8-0xff */ +}; +static const short translit_page2f8[544] = { + 8032, 8034, 8036, 8038, 8040, 8042, 8044, 8046, /* 0x00-0x07 */ + 8048, 8050, 8052, 8054, 8056, 8058, 8060, 8062, /* 0x08-0x0f */ + 8064, 8066, 8068, 8070, 8072, 8074, 8076, 8078, /* 0x10-0x17 */ + 8080, 8082, 8084, 8086, 8088, 8090, 8092, 8094, /* 0x18-0x1f */ + 8096, 8098, 8100, 8102, 8104, 8106, 8108, 8110, /* 0x20-0x27 */ + 8112, 8114, 8116, 8118, 8120, 8122, 8124, 8126, /* 0x28-0x2f */ + 8128, 8130, 8132, 8134, 8136, 8138, 8140, 8142, /* 0x30-0x37 */ + 8144, 8146, 8148, 8150, 8152, 8154, 8156, 8158, /* 0x38-0x3f */ + 8160, 8162, 8164, 8166, 8168, 8170, 8172, 8174, /* 0x40-0x47 */ + 8176, 8178, 8180, 8182, 8184, 8186, 8188, 8190, /* 0x48-0x4f */ + 8192, 8194, 8196, 8198, 8200, 8202, 8204, 8206, /* 0x50-0x57 */ + 8208, 8210, 8212, 8214, 8216, 8218, 8220, 8222, /* 0x58-0x5f */ + 8224, 8226, 8228, 8230, 8232, 8234, 8236, 8238, /* 0x60-0x67 */ + 8240, 8242, 8244, 8246, 8248, 8250, 8252, 8254, /* 0x68-0x6f */ + 8256, 8258, 8260, 8262, 8264, 8266, 8268, 8270, /* 0x70-0x77 */ + 8272, 8274, 8276, 8278, 8280, 8282, 8284, 8286, /* 0x78-0x7f */ + 8288, 8290, 8292, 8294, 8296, 8298, 8300, 8302, /* 0x80-0x87 */ + 8304, 8306, 8308, 8310, 8312, 8314, 8316, 8318, /* 0x88-0x8f */ + 8320, 8322, 8324, 8326, 8328, 8330, 8332, 8334, /* 0x90-0x97 */ + 8336, 8338, 8340, 8342, 8344, 8346, 8348, 8350, /* 0x98-0x9f */ + 8352, 8354, 8356, 8358, 8360, 8362, 8364, 8366, /* 0xa0-0xa7 */ + 8368, 8370, 8372, 8374, 8376, 8378, 8380, 8382, /* 0xa8-0xaf */ + 8384, 8386, 8388, 8390, 8392, 8394, 8396, 8398, /* 0xb0-0xb7 */ + 8400, 8402, 8404, 8406, 8408, 8410, 8412, 8414, /* 0xb8-0xbf */ + 8416, 8418, 8420, 8422, 8424, 8426, 8428, 8430, /* 0xc0-0xc7 */ + 8432, 8434, 8436, 8438, 8440, 8442, 8444, 8446, /* 0xc8-0xcf */ + 8448, 8450, 8452, 8454, 8456, 8458, 8460, 8462, /* 0xd0-0xd7 */ + 8464, 8466, 8468, 8470, 8472, 8474, 8476, 8478, /* 0xd8-0xdf */ + 8480, 8482, 8484, 8486, 8488, 8490, 8492, 8494, /* 0xe0-0xe7 */ + 8496, 8498, 8500, 8502, 8504, 8506, 8508, 8510, /* 0xe8-0xef */ + 8512, 8514, 8516, 8518, 8520, 8522, 8524, 8526, /* 0xf0-0xf7 */ + 8528, 8530, 8532, 8534, 8536, 8538, 8540, 8542, /* 0xf8-0xff */ + /* 0x2f900 */ + 8544, 8546, 8548, 8550, 8552, 8554, 8556, 8558, /* 0x00-0x07 */ + 8560, 8562, 8564, 8566, 8568, 8570, 8572, 8574, /* 0x08-0x0f */ + 8576, 8578, 8580, 8582, 8584, 8586, 8588, 8590, /* 0x10-0x17 */ + 8592, 8594, 8596, 8598, 8600, 8602, 8604, 8606, /* 0x18-0x1f */ + 8608, 8610, 8612, 8614, 8616, 8618, 8620, 8622, /* 0x20-0x27 */ + 8624, 8626, 8628, 8630, 8632, 8634, 8636, 8638, /* 0x28-0x2f */ + 8640, 8642, 8644, 8646, 8648, 8650, 8652, 8654, /* 0x30-0x37 */ + 8656, 8658, 8660, 8662, 8664, 8666, 8668, 8670, /* 0x38-0x3f */ + 8672, 8674, 8676, 8678, 8680, 8682, 8684, 8686, /* 0x40-0x47 */ + 8688, 8690, 8692, 8694, 8696, 8698, 8700, 8702, /* 0x48-0x4f */ + 8704, 8706, 8708, 8710, 8712, 8714, 8716, 8718, /* 0x50-0x57 */ + 8720, 8722, 8724, 8726, 8728, 8730, 8732, 8734, /* 0x58-0x5f */ + 8736, 8738, 8740, 8742, 8744, 8746, 8748, 8750, /* 0x60-0x67 */ + 8752, 8754, 8756, 8758, 8760, 8762, 8764, 8766, /* 0x68-0x6f */ + 8768, 8770, 8772, 8774, 8776, 8778, 8780, 8782, /* 0x70-0x77 */ + 8784, 8786, 8788, 8790, 8792, 8794, 8796, 8798, /* 0x78-0x7f */ + 8800, 8802, 8804, 8806, 8808, 8810, 8812, 8814, /* 0x80-0x87 */ + 8816, 8818, 8820, 8822, 8824, 8826, 8828, 8830, /* 0x88-0x8f */ + 8832, 8834, 8836, 8838, 8840, 8842, 8844, 8846, /* 0x90-0x97 */ + 8848, 8850, 8852, 8854, 8856, 8858, 8860, 8862, /* 0x98-0x9f */ + 8864, 8866, 8868, 8870, 8872, 8874, 8876, 8878, /* 0xa0-0xa7 */ + 8880, 8882, 8884, 8886, 8888, 8890, 8892, 8894, /* 0xa8-0xaf */ + 8896, 8898, 8900, 8902, 8904, 8906, 8908, 8910, /* 0xb0-0xb7 */ + 8912, 8914, 8916, 8918, 8920, 8922, 8924, 8926, /* 0xb8-0xbf */ + 8928, 8930, 8932, 8934, 8936, 8938, 8940, 8942, /* 0xc0-0xc7 */ + 8944, 8946, 8948, 8950, 8952, 8954, 8956, 8958, /* 0xc8-0xcf */ + 8960, 8962, 8964, 8966, 8968, 8970, 8972, 8974, /* 0xd0-0xd7 */ + 8976, 8978, 8980, 8982, 8984, 8986, 8988, 8990, /* 0xd8-0xdf */ + 8992, 8994, 8996, 8998, 9000, 9002, 9004, 9006, /* 0xe0-0xe7 */ + 9008, 9010, 9012, 9014, 9016, 9018, 9020, 9022, /* 0xe8-0xef */ + 9024, 9026, 9028, 9030, 9032, 9034, 9036, 9038, /* 0xf0-0xf7 */ + 9040, 9042, 9044, 9046, 9048, 9050, 9052, 9054, /* 0xf8-0xff */ + /* 0x2fa00 */ + 9056, 9058, 9060, 9062, 9064, 9066, 9068, 9070, /* 0x00-0x07 */ + 9072, 9074, 9076, 9078, 9080, 9082, 9084, 9086, /* 0x08-0x0f */ + 9088, 9090, 9092, 9094, 9096, 9098, 9100, 9102, /* 0x10-0x17 */ + 9104, 9106, 9108, 9110, 9112, 9114, -1, -1, /* 0x18-0x1f */ +}; + +#define translit_index(wc) \ + (wc >= 0x00a0 && wc < 0x01f8 ? translit_page00[wc-0x00a0] : \ + wc >= 0x0218 && wc < 0x0220 ? translit_page02[wc-0x0218] : \ + wc >= 0x02b8 && wc < 0x02e0 ? translit_page02_1[wc-0x02b8] : \ + wc >= 0x03d0 && wc < 0x0400 ? translit_page03[wc-0x03d0] : \ + wc == 0x0587 ? 654 : \ + wc >= 0x05f0 && wc < 0x05f8 ? translit_page05[wc-0x05f0] : \ + wc >= 0x0670 && wc < 0x0680 ? translit_page06[wc-0x0670] : \ + wc == 0x0e33 ? 678 : \ + wc >= 0x0eb0 && wc < 0x0ee0 ? translit_page0e[wc-0x0eb0] : \ + wc >= 0x0f70 && wc < 0x0f80 ? translit_page0f[wc-0x0f70] : \ + wc >= 0x1e00 && wc < 0x1ea0 ? translit_page1e[wc-0x1e00] : \ + wc >= 0x1ef0 && wc < 0x1ef8 ? translit_page1e_2[wc-0x1ef0] : \ + wc >= 0x2000 && wc < 0x2058 ? translit_page20[wc-0x2000] : \ + wc >= 0x20a8 && wc < 0x20b0 ? translit_page20_3[wc-0x20a8] : \ + wc >= 0x2100 && wc < 0x21d8 ? translit_page21[wc-0x2100] : \ + wc >= 0x2210 && wc < 0x2270 ? translit_page22[wc-0x2210] : \ + wc >= 0x22c0 && wc < 0x22f0 ? translit_page22_4[wc-0x22c0] : \ + wc >= 0x2400 && wc < 0x24f0 ? translit_page24[wc-0x2400] : \ + wc >= 0x2500 && wc < 0x2540 ? translit_page25[wc-0x2500] : \ + wc == 0x25e6 ? 2025 : \ + wc == 0x2a0c ? 2027 : \ + wc >= 0x2a70 && wc < 0x2a78 ? translit_page2a[wc-0x2a70] : \ + wc == 0x2e9f ? 2043 : \ + wc == 0x2ef3 ? 2045 : \ + wc >= 0x2f00 && wc < 0x2fd8 ? translit_page2f[wc-0x2f00] : \ + wc >= 0x3000 && wc < 0x30f8 ? translit_page30[wc-0x3000] : \ + wc >= 0x3130 && wc < 0x3190 ? translit_page31[wc-0x3130] : \ + wc >= 0x31f0 && wc < 0x3400 ? translit_page31_5[wc-0x31f0] : \ + wc >= 0xf900 && wc < 0xfa70 ? translit_pagef9[wc-0xf900] : \ + wc >= 0xfb00 && wc < 0xfb50 ? translit_pagefb[wc-0xfb00] : \ + wc >= 0xfe48 && wc < 0xfe70 ? translit_pagefe[wc-0xfe48] : \ + wc >= 0xff00 && wc < 0xfff0 ? translit_pageff[wc-0xff00] : \ + wc >= 0x1d400 && wc < 0x1d800 ? translit_page1d4[wc-0x1d400] : \ + wc >= 0x2f800 && wc < 0x2fa20 ? translit_page2f8[wc-0x2f800] : \ + -1) diff --git a/graf2d/win32gdk/gdk/src/iconv/ucs2.h b/graf2d/win32gdk/gdk/src/iconv/ucs2.h new file mode 100644 index 00000000000..206b8ccaeae --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/ucs2.h @@ -0,0 +1,68 @@ +/* + * Copyright (C) 1999-2001, 2008 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * UCS-2 + */ + +/* Here we accept FFFE/FEFF marks as endianness indicators everywhere + in the stream, not just at the beginning. The default is big-endian. */ +/* The state is 0 if big-endian, 1 if little-endian. */ +static int +ucs2_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + state_t state = conv->istate; + int count = 0; + for (; n >= 2;) { + ucs4_t wc = (state ? s[0] + (s[1] << 8) : (s[0] << 8) + s[1]); + s += 2; n -= 2; count += 2; + if (wc == 0xfeff) { + } else if (wc == 0xfffe) { + state ^= 1; + } else if (wc >= 0xd800 && wc < 0xe000) { + conv->istate = state; + return RET_SHIFT_ILSEQ(count); + } else { + *pwc = wc; + conv->istate = state; + return count; + } + } + conv->istate = state; + return RET_TOOFEW(count); +} + +/* But we output UCS-2 in big-endian order, without byte-order mark. */ +/* RFC 2152 says: + "ISO/IEC 10646-1:1993(E) specifies that when characters the UCS-2 form are + serialized as octets, that the most significant octet appear first." */ +static int +ucs2_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (wc < 0x10000 && wc != 0xfffe && !(wc >= 0xd800 && wc < 0xe000)) { + if (n >= 2) { + r[0] = (unsigned char) (wc >> 8); + r[1] = (unsigned char) wc; + return 2; + } else + return RET_TOOSMALL; + } else + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/ucs2be.h b/graf2d/win32gdk/gdk/src/iconv/ucs2be.h new file mode 100644 index 00000000000..150c0a36ba4 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/ucs2be.h @@ -0,0 +1,51 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * UCS-2BE = UCS-2 big endian + */ + +static int +ucs2be_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + if (n >= 2) { + if (s[0] >= 0xd8 && s[0] < 0xe0) { + return RET_ILSEQ; + } else { + *pwc = (s[0] << 8) + s[1]; + return 2; + } + } + return RET_TOOFEW(0); +} + +static int +ucs2be_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (wc < 0x10000 && !(wc >= 0xd800 && wc < 0xe000)) { + if (n >= 2) { + r[0] = (unsigned char) (wc >> 8); + r[1] = (unsigned char) wc; + return 2; + } else + return RET_TOOSMALL; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/ucs2internal.h b/graf2d/win32gdk/gdk/src/iconv/ucs2internal.h new file mode 100644 index 00000000000..d482aeac40b --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/ucs2internal.h @@ -0,0 +1,51 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * UCS-2-INTERNAL = UCS-2 with machine dependent endianness and alignment + */ + +static int +ucs2internal_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + if (n >= 2) { + unsigned short x = *(const unsigned short *)s; + if (x >= 0xd800 && x < 0xe000) { + return RET_ILSEQ; + } else { + *pwc = x; + return 2; + } + } + return RET_TOOFEW(0); +} + +static int +ucs2internal_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (wc < 0x10000 && !(wc >= 0xd800 && wc < 0xe000)) { + if (n >= 2) { + *(unsigned short *)r = wc; + return 2; + } else + return RET_TOOSMALL; + } else + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/ucs2le.h b/graf2d/win32gdk/gdk/src/iconv/ucs2le.h new file mode 100644 index 00000000000..49018612b5d --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/ucs2le.h @@ -0,0 +1,51 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * UCS-2LE = UCS-2 little endian + */ + +static int +ucs2le_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + if (n >= 2) { + if (s[1] >= 0xd8 && s[1] < 0xe0) { + return RET_ILSEQ; + } else { + *pwc = s[0] + (s[1] << 8); + return 2; + } + } + return RET_TOOFEW(0); +} + +static int +ucs2le_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (wc < 0x10000 && !(wc >= 0xd800 && wc < 0xe000)) { + if (n >= 2) { + r[0] = (unsigned char) wc; + r[1] = (unsigned char) (wc >> 8); + return 2; + } else + return RET_TOOSMALL; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/ucs2swapped.h b/graf2d/win32gdk/gdk/src/iconv/ucs2swapped.h new file mode 100644 index 00000000000..f426f406f12 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/ucs2swapped.h @@ -0,0 +1,60 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * UCS-2-SWAPPED = UCS-2-INTERNAL with inverted endianness + */ + +static int +ucs2swapped_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + /* This function assumes that 'unsigned short' has exactly 16 bits. */ + if (sizeof(unsigned short) != 2) abort(); + + if (n >= 2) { + unsigned short x = *(const unsigned short *)s; + x = (x >> 8) | (x << 8); + if (x >= 0xd800 && x < 0xe000) { + return RET_ILSEQ; + } else { + *pwc = x; + return 2; + } + } + return RET_TOOFEW(0); +} + +static int +ucs2swapped_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + /* This function assumes that 'unsigned short' has exactly 16 bits. */ + if (sizeof(unsigned short) != 2) abort(); + + if (wc < 0x10000 && !(wc >= 0xd800 && wc < 0xe000)) { + if (n >= 2) { + unsigned short x = wc; + x = (x >> 8) | (x << 8); + *(unsigned short *)r = x; + return 2; + } else + return RET_TOOSMALL; + } else + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/ucs4.h b/graf2d/win32gdk/gdk/src/iconv/ucs4.h new file mode 100644 index 00000000000..00d08d2517a --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/ucs4.h @@ -0,0 +1,69 @@ +/* + * Copyright (C) 1999-2001, 2008 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * UCS-4 + */ + +/* Here we accept FFFE0000/0000FEFF marks as endianness indicators everywhere + in the stream, not just at the beginning. The default is big-endian. */ +/* The state is 0 if big-endian, 1 if little-endian. */ +static int +ucs4_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + state_t state = conv->istate; + int count = 0; + for (; n >= 4;) { + ucs4_t wc = (state + ? s[0] + (s[1] << 8) + (s[2] << 16) + (s[3] << 24) + : (s[0] << 24) + (s[1] << 16) + (s[2] << 8) + s[3]); + s += 4; n -= 4; count += 4; + if (wc == 0x0000feff) { + } else if (wc == 0xfffe0000u) { + state ^= 1; + } else if (wc <= 0x7fffffff) { + *pwc = wc; + conv->istate = state; + return count; + } else { + conv->istate = state; + return RET_SHIFT_ILSEQ(count); + } + } + conv->istate = state; + return RET_TOOFEW(count); +} + +/* But we output UCS-4 in big-endian order, without byte-order mark. */ +static int +ucs4_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (wc <= 0x7fffffff) { + if (n >= 4) { + r[0] = (unsigned char) (wc >> 24); + r[1] = (unsigned char) (wc >> 16); + r[2] = (unsigned char) (wc >> 8); + r[3] = (unsigned char) wc; + return 4; + } else + return RET_TOOSMALL; + } else + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/ucs4be.h b/graf2d/win32gdk/gdk/src/iconv/ucs4be.h new file mode 100644 index 00000000000..241bc158dcf --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/ucs4be.h @@ -0,0 +1,46 @@ +/* + * Copyright (C) 1999-2000 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * UCS-4BE = UCS-4 big endian + */ + +static int +ucs4be_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + if (n >= 4) { + *pwc = (s[0] << 24) + (s[1] << 16) + (s[2] << 8) + s[3]; + return 4; + } + return RET_TOOFEW(0); +} + +static int +ucs4be_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (n >= 4) { + r[0] = (unsigned char) (wc >> 24); + r[1] = (unsigned char) (wc >> 16); + r[2] = (unsigned char) (wc >> 8); + r[3] = (unsigned char) wc; + return 4; + } else + return RET_TOOSMALL; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/ucs4internal.h b/graf2d/win32gdk/gdk/src/iconv/ucs4internal.h new file mode 100644 index 00000000000..bd793a3f0af --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/ucs4internal.h @@ -0,0 +1,43 @@ +/* + * Copyright (C) 1999-2000 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * UCS-4-INTERNAL = UCS-4 with machine dependent endianness and alignment + */ + +static int +ucs4internal_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + if (n >= 4) { + *pwc = *(const unsigned int *)s; + return 4; + } + return RET_TOOFEW(0); +} + +static int +ucs4internal_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (n >= 4) { + *(unsigned int *)r = wc; + return 4; + } else + return RET_TOOSMALL; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/ucs4le.h b/graf2d/win32gdk/gdk/src/iconv/ucs4le.h new file mode 100644 index 00000000000..0c762fec59e --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/ucs4le.h @@ -0,0 +1,46 @@ +/* + * Copyright (C) 1999-2000 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * UCS-4LE = UCS-4 little endian + */ + +static int +ucs4le_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + if (n >= 4) { + *pwc = s[0] + (s[1] << 8) + (s[2] << 16) + (s[3] << 24); + return 4; + } + return RET_TOOFEW(0); +} + +static int +ucs4le_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (n >= 4) { + r[0] = (unsigned char) wc; + r[1] = (unsigned char) (wc >> 8); + r[2] = (unsigned char) (wc >> 16); + r[3] = (unsigned char) (wc >> 24); + return 4; + } else + return RET_TOOSMALL; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/ucs4swapped.h b/graf2d/win32gdk/gdk/src/iconv/ucs4swapped.h new file mode 100644 index 00000000000..6a292ecda69 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/ucs4swapped.h @@ -0,0 +1,53 @@ +/* + * Copyright (C) 1999-2000 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * UCS-4-SWAPPED = UCS-4-INTERNAL with inverted endianness + */ + +static int +ucs4swapped_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + /* This function assumes that 'unsigned int' has exactly 32 bits. */ + if (sizeof(unsigned int) != 4) abort(); + + if (n >= 4) { + unsigned int x = *(const unsigned int *)s; + x = (x >> 24) | ((x >> 8) & 0xff00) | ((x & 0xff00) << 8) | (x << 24); + *pwc = x; + return 4; + } + return RET_TOOFEW(0); +} + +static int +ucs4swapped_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + /* This function assumes that 'unsigned int' has exactly 32 bits. */ + if (sizeof(unsigned int) != 4) abort(); + + if (n >= 4) { + unsigned int x = wc; + x = (x >> 24) | ((x >> 8) & 0xff00) | ((x & 0xff00) << 8) | (x << 24); + *(unsigned int *)r = x; + return 4; + } else + return RET_TOOSMALL; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/uhc_1.h b/graf2d/win32gdk/gdk/src/iconv/uhc_1.h new file mode 100644 index 00000000000..7b0c725819f --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/uhc_1.h @@ -0,0 +1,1725 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * Unified Hangul Code part 1 + */ + +static const unsigned short uhc_1_2uni_main_page81[64] = { + 0xac02, 0xac8d, 0xad14, 0xad91, 0xadfa, 0xae7a, 0xaee6, 0xaf57, + 0xafbf, 0xb030, 0xb0a5, 0xb122, 0xb19e, 0xb207, 0xb26f, 0xb2f0, + 0xb366, 0xb3e1, 0xb445, 0xb4ad, 0xb51e, 0xb590, 0xb600, 0xb661, + 0xb6c3, 0xb723, 0xb79f, 0xb811, 0xb885, 0xb8f1, 0xb95a, 0xb9d4, + 0xba47, 0xbac2, 0xbb28, 0xbb9a, 0xbc03, 0xbc80, 0xbcfe, 0xbd67, + 0xbdd2, 0xbe3d, 0xbeb8, 0xbf23, 0xbf83, 0xbfe6, 0xc040, 0xc0a7, + 0xc132, 0xc1b1, 0xc224, 0xc297, 0xc310, 0xc37a, 0xc3db, 0xc446, + 0xc4aa, 0xc50f, 0xc596, 0xc626, 0xc6a8, 0xc726, 0xc7b8, 0xc832, +}; +static const unsigned char uhc_1_2uni_page81[5696] = { + /* 0x81 */ + 0x00, 0x01, 0x03, 0x04, 0x09, 0x0a, 0x0b, 0x0c, + 0x0d, 0x16, 0x1c, 0x1d, 0x1f, 0x20, 0x21, 0x23, + 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2c, 0x30, + 0x31, 0x32, 0x33, 0x34, 0x35, 0x38, 0x39, 0x3b, + 0x3c, 0x3d, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, + 0x45, 0x46, 0x47, 0x48, 0x4a, 0x4c, 0x4d, 0x4e, + 0x4f, 0x50, 0x51, 0x53, 0x54, 0x55, 0x57, 0x58, + 0x59, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, + 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, + 0x6a, 0x6b, 0x6c, 0x6d, 0x70, 0x71, 0x73, 0x74, + 0x77, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x80, 0x85, + 0x86, 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x08, + 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x11, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1e, 0x20, 0x21, + 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2d, + 0x31, 0x32, 0x33, 0x35, 0x36, 0x38, 0x39, 0x3a, + 0x3c, 0x3d, 0x3e, 0x40, 0x41, 0x42, 0x43, 0x44, + 0x45, 0x46, 0x47, 0x49, 0x4b, 0x4c, 0x4d, 0x4e, + 0x4f, 0x50, 0x51, 0x52, 0x55, 0x56, 0x58, 0x59, + 0x5c, 0x5e, 0x60, 0x61, 0x65, 0x67, 0x6a, 0x6b, + 0x6c, 0x6d, 0x6e, 0x71, 0x72, 0x74, 0x75, 0x76, + 0x78, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x81, 0x83, + 0x85, 0x86, + /* 0x82 */ + 0x00, 0x01, 0x02, 0x03, 0x05, 0x06, 0x07, 0x09, + 0x0a, 0x0b, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, + 0x13, 0x14, 0x16, 0x17, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x22, 0x23, 0x25, 0x26, 0x27, 0x29, + 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x32, 0x34, + 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3d, 0x3e, + 0x3f, 0x41, 0x42, 0x43, 0x45, 0x46, 0x47, 0x48, + 0x49, 0x4a, 0x4b, 0x4c, 0x4e, 0x50, 0x51, 0x52, + 0x53, 0x54, 0x55, 0x56, 0x57, 0x5a, 0x5b, 0x5d, + 0x5e, 0x63, 0x64, 0x65, 0x66, 0x6a, 0x6c, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x76, 0x77, 0x79, 0x7a, + 0x7b, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, + 0x07, 0x08, 0x09, 0x0a, 0x0d, 0x0e, 0x0f, 0x10, + 0x11, 0x12, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, + 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, + 0x22, 0x23, 0x24, 0x25, 0x27, 0x28, 0x29, 0x2a, + 0x2b, 0x2c, 0x2d, 0x2e, 0x31, 0x32, 0x34, 0x35, + 0x36, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, + 0x41, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, + 0x4a, 0x4c, 0x4d, 0x4e, 0x50, 0x51, 0x52, 0x54, + 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, + 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, + 0x65, 0x66, + /* 0x83 */ + 0x00, 0x01, 0x03, 0x04, 0x08, 0x09, 0x0a, 0x0b, + 0x0c, 0x0d, 0x10, 0x12, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, + 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, + 0x31, 0x32, 0x33, 0x34, 0x35, 0x38, 0x39, 0x3b, + 0x3c, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x48, + 0x4a, 0x4d, 0x4e, 0x4f, 0x51, 0x55, 0x57, 0x58, + 0x59, 0x5b, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x64, + 0x68, 0x69, 0x6a, 0x6c, 0x6d, 0x70, 0x71, 0x73, + 0x74, 0x75, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, + 0x7d, 0x00, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, + 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x13, 0x14, + 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, + 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, + 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, + 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, + 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, + 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x45, 0x47, 0x48, + 0x49, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, + 0x54, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x60, + 0x61, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, + 0x6a, 0x6b, + /* 0x84 */ + 0x00, 0x01, 0x03, 0x04, 0x06, 0x08, 0x09, 0x0a, + 0x0b, 0x0c, 0x0d, 0x0f, 0x10, 0x11, 0x13, 0x14, + 0x15, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x23, 0x24, 0x25, 0x26, 0x28, + 0x29, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, + 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, + 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, + 0x42, 0x43, 0x44, 0x45, 0x48, 0x49, 0x4b, 0x4d, + 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x58, + 0x5a, 0x5e, 0x5f, 0x60, 0x61, 0x64, 0x65, 0x66, + 0x67, 0x68, 0x69, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x00, 0x01, 0x02, 0x03, 0x04, 0x07, 0x08, + 0x09, 0x0a, 0x0b, 0x0c, 0x0f, 0x10, 0x11, 0x12, + 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, + 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x23, + 0x24, 0x25, 0x26, 0x27, 0x28, 0x2a, 0x2b, 0x2c, + 0x2e, 0x2f, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, + 0x37, 0x38, 0x3b, 0x3c, 0x3d, 0x3f, 0x40, 0x41, + 0x42, 0x43, 0x44, 0x46, 0x47, 0x48, 0x49, 0x4a, + 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, + 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, + 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x63, 0x64, + 0x66, 0x67, + /* 0x85 */ + 0x00, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0b, + 0x0d, 0x10, 0x11, 0x12, 0x13, 0x14, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1e, 0x1f, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, + 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x33, 0x34, + 0x36, 0x37, 0x38, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, + 0x3f, 0x40, 0x43, 0x44, 0x46, 0x47, 0x48, 0x49, + 0x4a, 0x4b, 0x4c, 0x4e, 0x4f, 0x50, 0x52, 0x53, + 0x54, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, + 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, + 0x67, 0x68, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, + 0x0f, 0x10, 0x11, 0x12, 0x13, 0x16, 0x17, 0x19, + 0x1b, 0x1d, 0x1f, 0x20, 0x21, 0x22, 0x26, 0x28, + 0x2a, 0x2b, 0x2c, 0x2e, 0x2f, 0x30, 0x31, 0x32, + 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, + 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, + 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, + 0x4b, 0x4e, 0x4f, 0x51, 0x52, 0x53, 0x55, 0x56, + 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5e, 0x60, 0x62, + 0x63, 0x64, 0x65, 0x66, 0x67, 0x6b, 0x6d, 0x6e, + 0x73, 0x74, + /* 0x86 */ + 0x00, 0x01, 0x02, 0x05, 0x0b, 0x0d, 0x11, 0x12, + 0x14, 0x15, 0x16, 0x18, 0x19, 0x1a, 0x1b, 0x1c, + 0x1d, 0x1e, 0x21, 0x25, 0x26, 0x27, 0x28, 0x29, + 0x2a, 0x2d, 0x2e, 0x30, 0x31, 0x32, 0x34, 0x35, + 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3c, 0x3d, 0x3e, + 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x65, 0x68, 0x69, 0x6a, 0x6c, + 0x6f, 0x70, 0x71, 0x72, 0x75, 0x79, 0x7a, 0x7b, + 0x7c, 0x00, 0x04, 0x05, 0x07, 0x08, 0x09, 0x0b, + 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x14, 0x18, + 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x20, 0x21, 0x23, + 0x24, 0x25, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, + 0x2d, 0x30, 0x31, 0x34, 0x35, 0x37, 0x38, 0x39, + 0x3b, 0x3c, 0x3d, 0x3f, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, + 0x54, 0x55, 0x58, 0x59, 0x5b, 0x5c, 0x5d, 0x5f, + 0x61, 0x62, 0x63, 0x64, 0x65, 0x68, 0x6a, 0x6c, + 0x6d, 0x6e, 0x6f, 0x73, 0x74, 0x75, 0x77, 0x78, + 0x79, 0x7b, + /* 0x87 */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, + 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, + 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2f, 0x30, 0x31, + 0x33, 0x34, 0x35, 0x37, 0x38, 0x39, 0x3a, 0x3b, + 0x3c, 0x3d, 0x40, 0x42, 0x43, 0x44, 0x45, 0x46, + 0x47, 0x48, 0x49, 0x4c, 0x4d, 0x4f, 0x50, 0x51, + 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, + 0x5c, 0x5e, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, + 0x68, 0x00, 0x02, 0x03, 0x06, 0x07, 0x08, 0x09, + 0x0a, 0x0b, 0x0c, 0x0f, 0x11, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, + 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, + 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x36, 0x37, 0x38, + 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, + 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, + 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, + 0x52, 0x53, 0x54, 0x56, 0x57, 0x58, 0x5a, 0x5b, + 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x63, 0x64, 0x65, + 0x66, 0x67, + /* 0x88 */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x07, 0x08, 0x09, + 0x0a, 0x0b, 0x0c, 0x0e, 0x0f, 0x10, 0x11, 0x12, + 0x13, 0x14, 0x17, 0x18, 0x19, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x23, 0x24, 0x26, 0x27, 0x28, + 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x33, 0x35, 0x38, + 0x39, 0x3a, 0x3c, 0x3e, 0x3f, 0x40, 0x42, 0x43, + 0x44, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, + 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, + 0x55, 0x56, 0x57, 0x58, 0x5b, 0x5c, 0x5e, 0x5f, + 0x60, 0x62, 0x64, 0x65, 0x66, 0x67, 0x68, 0x6b, + 0x6d, 0x6f, 0x70, 0x71, 0x72, 0x74, 0x78, 0x7a, + 0x7b, 0x00, 0x01, 0x02, 0x06, 0x0c, 0x0d, 0x0e, + 0x12, 0x13, 0x15, 0x16, 0x17, 0x19, 0x1a, 0x1b, + 0x1c, 0x1d, 0x1e, 0x1f, 0x22, 0x26, 0x27, 0x28, + 0x29, 0x2a, 0x2b, 0x2d, 0x2e, 0x2f, 0x30, 0x31, + 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, + 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, + 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, + 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, + 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, + 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, + 0x62, 0x63, 0x67, 0x69, 0x6a, 0x6d, 0x70, 0x71, + 0x72, 0x73, + /* 0x89 */ + 0x00, 0x02, 0x04, 0x06, 0x07, 0x09, 0x0c, 0x0d, + 0x0f, 0x10, 0x11, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1c, 0x20, 0x21, 0x22, 0x23, 0x24, + 0x25, 0x27, 0x28, 0x29, 0x2b, 0x2c, 0x2d, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, + 0x43, 0x44, 0x45, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, + 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, + 0x5c, 0x5d, 0x60, 0x61, 0x63, 0x64, 0x67, 0x69, + 0x6b, 0x6c, 0x6d, 0x70, 0x72, 0x74, 0x76, 0x78, + 0x79, 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x08, + 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, + 0x19, 0x1a, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, + 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, + 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x30, 0x31, 0x32, + 0x33, 0x34, 0x35, 0x36, 0x38, 0x39, 0x3a, 0x3c, + 0x3d, 0x3e, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, + 0x46, 0x49, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, + 0x51, 0x52, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, + 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, + 0x62, 0x63, + /* 0x8a */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0d, 0x0e, 0x10, 0x11, 0x12, + 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1d, + 0x1f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x28, + 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, + 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, + 0x39, 0x3a, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, + 0x42, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, + 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, + 0x53, 0x54, 0x55, 0x56, 0x57, 0x59, 0x5a, 0x5b, + 0x5c, 0x5d, 0x5e, 0x60, 0x61, 0x62, 0x64, 0x65, + 0x66, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, + 0x07, 0x09, 0x0b, 0x0d, 0x0e, 0x0f, 0x10, 0x11, + 0x12, 0x14, 0x15, 0x16, 0x18, 0x19, 0x1a, 0x1c, + 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x24, 0x25, + 0x26, 0x27, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, + 0x31, 0x32, 0x34, 0x35, 0x38, 0x3a, 0x3b, 0x3c, + 0x3d, 0x3e, 0x41, 0x43, 0x45, 0x46, 0x47, 0x48, + 0x49, 0x4a, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, + 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, + 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, + 0x62, 0x63, 0x64, 0x65, 0x66, 0x69, 0x6a, 0x6c, + 0x6d, 0x70, + /* 0x8b */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x0d, + 0x0e, 0x0f, 0x10, 0x11, 0x14, 0x15, 0x17, 0x18, + 0x19, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, + 0x24, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x30, 0x31, + 0x33, 0x34, 0x35, 0x37, 0x38, 0x39, 0x3a, 0x3b, + 0x3c, 0x3d, 0x40, 0x44, 0x45, 0x46, 0x47, 0x48, + 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, + 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, + 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, + 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, + 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, + 0x71, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, + 0x0f, 0x12, 0x13, 0x15, 0x16, 0x17, 0x19, 0x1c, + 0x1d, 0x1e, 0x1f, 0x22, 0x26, 0x27, 0x28, 0x29, + 0x2a, 0x2e, 0x2f, 0x31, 0x32, 0x33, 0x35, 0x36, + 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3e, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x49, 0x4a, 0x4b, 0x4c, + 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, + 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5d, + 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, + 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, + 0x6e, 0x6f, + /* 0x8c */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x12, 0x13, 0x15, 0x16, 0x17, 0x19, 0x1a, 0x1b, + 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, + 0x24, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x35, 0x36, + 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, + 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, + 0x47, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x08, + 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, + 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, + 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, + 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, + 0x39, 0x3a, 0x3d, 0x3e, 0x40, 0x41, 0x42, 0x44, + 0x45, 0x46, 0x47, 0x48, 0x49, 0x4c, 0x4d, 0x4e, + 0x4f, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, + /* 0x8d */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, + 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, + 0x29, 0x2a, 0x2b, 0x2c, 0x2e, 0x2f, 0x30, 0x32, + 0x33, 0x34, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, + 0x3c, 0x3f, 0x40, 0x41, 0x43, 0x44, 0x45, 0x46, + 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, + 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, + 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, + 0x5f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x07, 0x08, + 0x0a, 0x0b, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, + 0x14, 0x17, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, + 0x1f, 0x20, 0x22, 0x23, 0x24, 0x26, 0x27, 0x28, + 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x33, + 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, + 0x3c, 0x3e, 0x3f, 0x40, 0x42, 0x43, 0x44, 0x46, + 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4f, 0x51, + 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x5b, 0x5c, + 0x5e, 0x5f, 0x60, 0x62, 0x63, 0x64, 0x65, 0x66, + 0x67, 0x68, 0x6b, 0x70, 0x71, 0x72, 0x77, 0x78, + 0x7a, 0x7b, + /* 0x8e */ + 0x00, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, + 0x0b, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x17, + 0x18, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x29, + 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, + 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, + 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, + 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, + 0x4b, 0x4c, 0x4f, 0x50, 0x52, 0x53, 0x54, 0x56, + 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5f, 0x63, + 0x64, 0x65, 0x66, 0x67, 0x6b, 0x6c, 0x6e, 0x6f, + 0x70, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, + 0x09, 0x0b, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, + 0x15, 0x16, 0x18, 0x19, 0x1a, 0x1c, 0x1d, 0x1e, + 0x1f, 0x20, 0x21, 0x22, 0x25, 0x29, 0x2a, 0x2b, + 0x2c, 0x2d, 0x2e, 0x30, 0x31, 0x32, 0x34, 0x35, + 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, + 0x3e, 0x3f, 0x41, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4d, 0x4e, 0x50, 0x51, 0x52, + 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5d, + 0x5f, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x68, + 0x69, 0x6a, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, + 0x72, 0x73, + /* 0x8f */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, + 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, + 0x21, 0x22, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, + 0x2a, 0x2c, 0x2d, 0x2e, 0x30, 0x31, 0x32, 0x34, + 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3d, 0x3f, + 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x48, 0x49, + 0x4a, 0x4c, 0x4d, 0x4e, 0x50, 0x51, 0x52, 0x53, + 0x54, 0x55, 0x56, 0x57, 0x59, 0x5b, 0x5d, 0x5e, + 0x5f, 0x60, 0x61, 0x62, 0x65, 0x66, 0x68, 0x69, + 0x6a, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, + 0x09, 0x0b, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, + 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, + 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, + 0x24, 0x25, 0x26, 0x28, 0x29, 0x2a, 0x2b, 0x2c, + 0x2d, 0x2e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, + 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, + 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, + 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4d, 0x4e, 0x50, + 0x51, 0x52, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, + 0x5a, 0x5c, 0x5d, 0x5f, 0x61, 0x62, 0x63, 0x64, + 0x65, 0x66, + /* 0x90 */ + 0x00, 0x01, 0x03, 0x04, 0x05, 0x07, 0x08, 0x09, + 0x0a, 0x0b, 0x0c, 0x0d, 0x10, 0x12, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1c, 0x1d, 0x1f, 0x20, + 0x21, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, + 0x2c, 0x2e, 0x31, 0x32, 0x35, 0x36, 0x37, 0x38, + 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, + 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, + 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, + 0x51, 0x54, 0x55, 0x57, 0x58, 0x59, 0x5b, 0x5c, + 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x64, 0x66, 0x68, + 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x70, 0x71, 0x73, + 0x79, 0x00, 0x01, 0x02, 0x03, 0x06, 0x08, 0x0b, + 0x0c, 0x0e, 0x12, 0x13, 0x15, 0x16, 0x17, 0x19, + 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x22, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2e, 0x2f, 0x30, 0x31, + 0x32, 0x33, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, + 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, + 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, + 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, + 0x66, 0x67, 0x69, 0x6a, 0x6b, 0x6d, 0x6f, 0x70, + 0x71, 0x72, + /* 0x91 */ + 0x00, 0x03, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0f, + 0x10, 0x12, 0x13, 0x14, 0x16, 0x17, 0x18, 0x19, + 0x1a, 0x1b, 0x1c, 0x1f, 0x23, 0x24, 0x25, 0x26, + 0x27, 0x28, 0x2b, 0x2c, 0x2e, 0x2f, 0x30, 0x32, + 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, + 0x3b, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x63, 0x66, 0x67, 0x68, 0x6a, 0x6c, 0x6d, + 0x6e, 0x6f, 0x70, 0x73, 0x75, 0x77, 0x78, 0x79, + 0x7a, 0x00, 0x01, 0x03, 0x04, 0x05, 0x07, 0x08, + 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, + 0x11, 0x12, 0x13, 0x14, 0x15, 0x18, 0x19, 0x1a, + 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, + 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, + 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, + 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3b, + 0x3c, 0x3d, 0x3f, 0x40, 0x41, 0x43, 0x44, 0x45, + 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4c, 0x4e, 0x50, + 0x51, 0x52, 0x53, 0x54, 0x55, 0x57, 0x58, 0x59, + 0x5b, 0x5c, 0x5d, 0x5f, 0x60, 0x61, 0x62, 0x63, + 0x64, 0x65, + /* 0x92 */ + 0x00, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, + 0x0a, 0x0b, 0x0f, 0x11, 0x12, 0x17, 0x18, 0x19, + 0x1a, 0x1b, 0x1e, 0x20, 0x22, 0x23, 0x24, 0x26, + 0x29, 0x2a, 0x2b, 0x2d, 0x2e, 0x2f, 0x31, 0x32, + 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x3a, 0x3c, + 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x45, + 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, + 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, + 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, + 0x5e, 0x5f, 0x61, 0x62, 0x63, 0x65, 0x66, 0x67, + 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, + 0x71, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, + 0x07, 0x08, 0x09, 0x0b, 0x0c, 0x0d, 0x0f, 0x10, + 0x11, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, + 0x1b, 0x1c, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, + 0x24, 0x25, 0x27, 0x28, 0x29, 0x2b, 0x2c, 0x2d, + 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x37, + 0x38, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, + 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, + 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, + 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, + 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x60, 0x61, 0x63, + 0x64, 0x67, + /* 0x93 */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x07, 0x0b, 0x0d, + 0x0f, 0x10, 0x16, 0x17, 0x1d, 0x1e, 0x1f, 0x20, + 0x23, 0x25, 0x27, 0x28, 0x29, 0x2b, 0x2c, 0x2f, + 0x30, 0x32, 0x33, 0x34, 0x36, 0x37, 0x38, 0x39, + 0x3a, 0x3b, 0x3c, 0x3f, 0x43, 0x44, 0x45, 0x47, + 0x48, 0x4b, 0x4c, 0x4e, 0x4f, 0x50, 0x51, 0x52, + 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5b, + 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, + 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, + 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, + 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, + 0x7c, 0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x09, + 0x0a, 0x0d, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x16, + 0x18, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x22, 0x23, + 0x25, 0x26, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, + 0x2f, 0x32, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, + 0x3e, 0x3f, 0x41, 0x42, 0x43, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4e, 0x52, 0x53, + 0x54, 0x56, 0x57, 0x59, 0x5a, 0x5b, 0x5d, 0x5e, + 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, + 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, + 0x6f, 0x70, 0x71, 0x72, 0x73, 0x77, 0x79, 0x7a, + 0x7b, 0x7d, + /* 0x94 */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x0a, + 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x13, 0x14, + 0x15, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, + 0x49, 0x4c, 0x4d, 0x4f, 0x50, 0x51, 0x53, 0x54, + 0x55, 0x56, 0x57, 0x58, 0x59, 0x5c, 0x5d, 0x5e, + 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x67, + 0x68, 0x00, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x1b, 0x1c, 0x1e, 0x1f, 0x24, 0x25, 0x26, + 0x27, 0x28, 0x2b, 0x2d, 0x2f, 0x30, 0x31, 0x34, + 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3e, + 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, + 0x47, 0x48, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, + 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, + 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, + 0x69, 0x6a, + /* 0x95 */ + 0x00, 0x01, 0x04, 0x05, 0x07, 0x08, 0x09, 0x0b, + 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, + 0x14, 0x15, 0x16, 0x18, 0x19, 0x1a, 0x1b, 0x1c, + 0x1d, 0x1f, 0x20, 0x21, 0x23, 0x24, 0x25, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2f, 0x30, + 0x32, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3c, + 0x3d, 0x3f, 0x40, 0x41, 0x43, 0x44, 0x45, 0x46, + 0x47, 0x48, 0x49, 0x4c, 0x4e, 0x4f, 0x50, 0x51, + 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, + 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, + 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, + 0x6a, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, + 0x09, 0x0a, 0x0c, 0x0d, 0x0e, 0x10, 0x12, 0x13, + 0x14, 0x15, 0x16, 0x19, 0x1b, 0x1f, 0x20, 0x21, + 0x22, 0x25, 0x26, 0x28, 0x29, 0x2a, 0x2c, 0x2e, + 0x2f, 0x30, 0x31, 0x32, 0x35, 0x39, 0x3a, 0x3b, + 0x3c, 0x3d, 0x41, 0x42, 0x44, 0x45, 0x46, 0x48, + 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x51, 0x55, + 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, + 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, + 0x79, 0x7a, + /* 0x96 */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x1a, 0x1b, 0x1d, 0x1e, 0x21, 0x22, 0x23, 0x24, + 0x25, 0x26, 0x27, 0x29, 0x2a, 0x2e, 0x2f, 0x30, + 0x31, 0x32, 0x33, 0x35, 0x36, 0x37, 0x38, 0x39, + 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, + 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x4a, + 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x52, 0x53, 0x54, + 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, + 0x5d, 0x5e, 0x5f, 0x62, 0x66, 0x67, 0x68, 0x69, + 0x6a, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, + 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, + 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1f, 0x20, + 0x22, 0x23, 0x24, 0x26, 0x27, 0x28, 0x29, 0x2a, + 0x2b, 0x2c, 0x2f, 0x30, 0x31, 0x33, 0x34, 0x35, + 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, + 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, + 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, + 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, + 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, + 0x5e, 0x5f, + /* 0x97 */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, + 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, + 0x29, 0x2a, 0x2b, 0x2c, 0x2e, 0x2f, 0x30, 0x31, + 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, + 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, + 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x4b, 0x4c, + 0x4e, 0x4f, 0x50, 0x52, 0x53, 0x54, 0x55, 0x56, + 0x57, 0x58, 0x5a, 0x5b, 0x5d, 0x5f, 0x60, 0x61, + 0x62, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, + 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, + 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, + 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, + 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, + 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, + 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, + 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, + 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, + 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x57, + 0x58, 0x59, + /* 0x98 */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x19, + 0x1a, 0x1b, 0x1d, 0x1e, 0x1f, 0x21, 0x22, 0x23, + 0x24, 0x25, 0x26, 0x27, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, + 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, + 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, + 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, + 0x4e, 0x4f, 0x52, 0x53, 0x55, 0x56, 0x57, 0x59, + 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x62, 0x64, + 0x66, 0x00, 0x01, 0x02, 0x03, 0x04, 0x07, 0x0a, + 0x0b, 0x10, 0x11, 0x12, 0x13, 0x14, 0x17, 0x1b, + 0x1c, 0x1d, 0x1f, 0x20, 0x23, 0x24, 0x26, 0x27, + 0x28, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, + 0x33, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3f, + 0x40, 0x42, 0x43, 0x44, 0x46, 0x47, 0x48, 0x49, + 0x4a, 0x4b, 0x4c, 0x4f, 0x51, 0x53, 0x54, 0x55, + 0x56, 0x57, 0x58, 0x5a, 0x5b, 0x5c, 0x5e, 0x5f, + 0x60, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, + 0x6a, 0x6b, 0x6c, 0x6d, 0x6f, 0x70, 0x71, 0x72, + 0x73, 0x74, 0x7a, 0x7b, 0x7e, 0x81, 0x82, 0x83, + 0x84, 0x87, + /* 0x99 */ + 0x00, 0x01, 0x02, 0x03, 0x05, 0x08, 0x09, 0x0b, + 0x0c, 0x0d, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, + 0x15, 0x18, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, + 0x24, 0x25, 0x27, 0x28, 0x29, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x34, 0x38, 0x39, 0x3a, + 0x3b, 0x3c, 0x3d, 0x3f, 0x40, 0x41, 0x43, 0x44, + 0x45, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, + 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x54, 0x55, 0x56, + 0x57, 0x58, 0x59, 0x5d, 0x5f, 0x60, 0x61, 0x63, + 0x65, 0x66, 0x67, 0x68, 0x69, 0x6c, 0x6e, 0x70, + 0x71, 0x72, 0x74, 0x75, 0x78, 0x79, 0x7b, 0x7c, + 0x7d, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x14, 0x15, 0x16, 0x18, 0x19, + 0x1a, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, + 0x24, 0x25, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x30, 0x31, 0x32, 0x34, 0x35, 0x36, 0x38, + 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x41, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4d, + 0x4e, 0x50, 0x51, 0x52, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5d, 0x5f, 0x61, 0x62, 0x63, + 0x64, 0x65, 0x66, 0x69, 0x6a, 0x6c, 0x6d, 0x70, + 0x71, 0x72, + /* 0x9a */ + 0x00, 0x01, 0x02, 0x03, 0x06, 0x08, 0x0a, 0x0c, + 0x0f, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x25, 0x26, 0x27, 0x28, + 0x29, 0x2a, 0x2b, 0x2e, 0x2f, 0x31, 0x32, 0x33, + 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3d, + 0x3e, 0x3f, 0x40, 0x42, 0x43, 0x44, 0x45, 0x46, + 0x47, 0x4a, 0x4b, 0x4d, 0x4e, 0x4f, 0x51, 0x52, + 0x53, 0x54, 0x55, 0x56, 0x57, 0x5a, 0x5c, 0x5e, + 0x5f, 0x60, 0x61, 0x62, 0x63, 0x66, 0x67, 0x68, + 0x69, 0x6a, 0x6b, 0x6d, 0x6e, 0x6f, 0x70, 0x71, + 0x72, 0x00, 0x02, 0x03, 0x05, 0x07, 0x08, 0x09, + 0x0a, 0x0b, 0x0c, 0x0f, 0x10, 0x12, 0x13, 0x14, + 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1f, 0x21, + 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, + 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, + 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, + 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, + 0x43, 0x44, 0x47, 0x48, 0x4a, 0x4b, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x57, 0x59, 0x5b, 0x5c, + 0x5d, 0x5e, 0x60, 0x63, 0x66, 0x67, 0x68, 0x6a, + 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x73, 0x74, + 0x77, 0x78, + /* 0x9b */ + 0x00, 0x01, 0x02, 0x06, 0x07, 0x09, 0x0a, 0x0b, + 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x16, + 0x17, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, + 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, + 0x31, 0x32, 0x33, 0x34, 0x36, 0x37, 0x38, 0x39, + 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, + 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, + 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, + 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x5a, 0x5b, + 0x5d, 0x5e, 0x5f, 0x61, 0x63, 0x64, 0x65, 0x66, + 0x67, 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x08, + 0x09, 0x0b, 0x0c, 0x0d, 0x0f, 0x10, 0x11, 0x13, + 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, + 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, + 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, + 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, + 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, + 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, + 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, + 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, + 0x5d, 0x60, + /* 0x9c */ + 0x00, 0x02, 0x03, 0x06, 0x08, 0x09, 0x0a, 0x0b, + 0x0c, 0x0f, 0x10, 0x11, 0x13, 0x14, 0x15, 0x16, + 0x17, 0x18, 0x1b, 0x1c, 0x1e, 0x1f, 0x20, 0x21, + 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, + 0x2a, 0x2b, 0x2c, 0x2e, 0x2f, 0x30, 0x31, 0x32, + 0x33, 0x34, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, + 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x4a, 0x4b, 0x4c, + 0x4d, 0x4e, 0x4f, 0x50, 0x52, 0x53, 0x54, 0x56, + 0x57, 0x58, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, + 0x6a, 0x00, 0x01, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x20, 0x21, + 0x23, 0x24, 0x25, 0x27, 0x28, 0x29, 0x2a, 0x2b, + 0x2c, 0x2d, 0x30, 0x31, 0x32, 0x34, 0x35, 0x36, + 0x37, 0x38, 0x39, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4f, 0x50, + 0x51, 0x52, 0x53, 0x54, 0x55, 0x57, 0x58, 0x59, + 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, + 0x62, 0x63, + /* 0x9d */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0f, 0x10, + 0x11, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, + 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, + 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, + 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, + 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, + 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x40, 0x41, 0x42, + 0x43, 0x44, 0x45, 0x48, 0x49, 0x4b, 0x4c, 0x4d, + 0x4f, 0x51, 0x52, 0x53, 0x54, 0x58, 0x59, 0x5a, + 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x63, + 0x64, 0x00, 0x02, 0x03, 0x04, 0x06, 0x07, 0x08, + 0x09, 0x0a, 0x0b, 0x0c, 0x0e, 0x0f, 0x10, 0x11, + 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x1b, + 0x1c, 0x1e, 0x1f, 0x20, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x2b, 0x2d, 0x2f, 0x30, 0x31, + 0x32, 0x33, 0x34, 0x37, 0x38, 0x3c, 0x40, 0x41, + 0x42, 0x43, 0x47, 0x4b, 0x4c, 0x4d, 0x50, 0x53, + 0x54, 0x56, 0x57, 0x58, 0x5a, 0x5b, 0x5c, 0x5d, + 0x5e, 0x5f, 0x60, 0x63, 0x67, 0x68, 0x69, 0x6a, + 0x6b, 0x6c, 0x6f, 0x70, 0x72, 0x73, 0x74, 0x76, + 0x77, 0x79, 0x7a, 0x7b, 0x7c, 0x7f, 0x81, 0x83, + 0x84, 0x85, + /* 0x9e */ + 0x00, 0x03, 0x04, 0x05, 0x07, 0x08, 0x09, 0x0b, + 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x14, + 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, + 0x1d, 0x20, 0x21, 0x24, 0x29, 0x2a, 0x2b, 0x2c, + 0x2d, 0x35, 0x37, 0x39, 0x3c, 0x3d, 0x3f, 0x40, + 0x41, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, + 0x4c, 0x4e, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, + 0x59, 0x5b, 0x5c, 0x5d, 0x5f, 0x62, 0x63, 0x64, + 0x65, 0x6c, 0x6d, 0x6e, 0x73, 0x74, 0x75, 0x77, + 0x78, 0x79, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, + 0x81, 0x84, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, + 0x8d, 0x00, 0x01, 0x03, 0x04, 0x05, 0x09, 0x0b, + 0x0c, 0x10, 0x12, 0x14, 0x16, 0x17, 0x18, 0x19, + 0x1c, 0x1d, 0x1f, 0x20, 0x21, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2c, 0x30, 0x31, 0x32, + 0x33, 0x34, 0x35, 0x38, 0x39, 0x3b, 0x3c, 0x3d, + 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, + 0x47, 0x48, 0x4a, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, + 0x51, 0x54, 0x55, 0x57, 0x58, 0x59, 0x5b, 0x5c, + 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x64, 0x66, 0x68, + 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x70, 0x71, 0x73, + 0x74, 0x75, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, + 0x7d, 0x80, + /* 0x9f */ + 0x00, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0a, + 0x0b, 0x0d, 0x0e, 0x0f, 0x13, 0x14, 0x15, 0x16, + 0x17, 0x1a, 0x1c, 0x1e, 0x1f, 0x20, 0x21, 0x22, + 0x23, 0x26, 0x27, 0x29, 0x2a, 0x2b, 0x2d, 0x2e, + 0x2f, 0x30, 0x31, 0x32, 0x33, 0x36, 0x37, 0x3a, + 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x42, 0x43, 0x45, + 0x46, 0x47, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, + 0x4f, 0x52, 0x53, 0x54, 0x56, 0x57, 0x58, 0x59, + 0x5a, 0x5b, 0x5e, 0x5f, 0x61, 0x62, 0x63, 0x65, + 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6e, 0x70, + 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x7a, 0x7b, + 0x7d, 0x00, 0x01, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0c, 0x0e, 0x10, 0x12, 0x13, 0x14, + 0x15, 0x18, 0x19, 0x1b, 0x1c, 0x1d, 0x1f, 0x20, + 0x21, 0x22, 0x23, 0x25, 0x28, 0x2a, 0x33, 0x34, + 0x35, 0x37, 0x38, 0x39, 0x3b, 0x3c, 0x3d, 0x3e, + 0x3f, 0x40, 0x41, 0x43, 0x44, 0x46, 0x47, 0x48, + 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x50, 0x51, 0x53, + 0x54, 0x55, 0x59, 0x5a, 0x5b, 0x5c, 0x60, 0x65, + 0x66, 0x67, 0x69, 0x6c, 0x6d, 0x6f, 0x73, 0x75, + 0x76, 0x77, 0x78, 0x79, 0x7c, 0x81, 0x82, 0x83, + 0x84, 0x85, 0x88, 0x89, 0x8b, 0x8c, 0x8d, 0x8f, + 0x90, 0x91, + /* 0xa0 */ + 0x00, 0x01, 0x02, 0x03, 0x06, 0x0a, 0x0b, 0x0c, + 0x0d, 0x0e, 0x0f, 0x12, 0x13, 0x15, 0x17, 0x19, + 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x21, 0x22, + 0x23, 0x24, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, + 0x2d, 0x2e, 0x2f, 0x31, 0x32, 0x33, 0x35, 0x36, + 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, + 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, + 0x47, 0x4a, 0x4b, 0x4d, 0x4e, 0x4f, 0x51, 0x53, + 0x54, 0x55, 0x56, 0x57, 0x5a, 0x5c, 0x5f, 0x60, + 0x61, 0x62, 0x63, 0x66, 0x67, 0x69, 0x6a, 0x6b, + 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x76, + 0x78, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x07, + 0x08, 0x09, 0x0b, 0x0c, 0x0d, 0x0f, 0x10, 0x11, + 0x12, 0x13, 0x14, 0x15, 0x18, 0x19, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x23, 0x24, 0x25, 0x26, + 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, + 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, + 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x40, + 0x41, 0x43, 0x44, 0x45, 0x47, 0x49, 0x4a, 0x4b, + 0x4c, 0x4d, 0x50, 0x52, 0x56, 0x57, 0x58, 0x5c, + 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x63, 0x64, 0x65, + 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6c, 0x6e, 0x70, + 0x71, 0x72, +}; + +static int +uhc_1_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 >= 0x81 && c1 <= 0xa0)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if ((c2 >= 0x41 && c2 < 0x5b) || (c2 >= 0x61 && c2 < 0x7b) || (c2 >= 0x81 && c2 < 0xff)) { + unsigned int row = c1 - 0x81; + unsigned int col = c2 - (c2 >= 0x81 ? 0x4d : c2 >= 0x61 ? 0x47 : 0x41); + unsigned int i = 178 * row + col; + if (i < 5696) { + *pwc = (ucs4_t) (uhc_1_2uni_main_page81[2*row+(col>=89?1:0)] + uhc_1_2uni_page81[i]); + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + +static const unsigned short uhc_1_2charset_main[45] = { + 0x8141, 0x81cd, 0x829b, 0x8363, 0x83e9, 0x84b7, 0x8585, 0x8647, + 0x86d3, 0x87a1, 0x8869, 0x88ef, 0x89bd, 0x8a8b, 0x8b4d, 0x8bd9, + 0x8ca7, 0x8d6f, 0x8df5, 0x8ec3, 0x8f91, 0x9053, 0x90df, 0x91ad, + 0x9275, 0x92fb, 0x93c9, 0x9497, 0x9559, 0x95e5, 0x96b3, 0x9781, + 0x9843, 0x98cf, 0x999d, 0x9a65, 0x9aeb, 0x9bb9, 0x9c87, 0x9d49, + 0x9dd5, 0x9ea3, 0x9f6b, 0x9ff1, 0xa0bf, +}; +static const unsigned char uhc_1_2charset[5696] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, + 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, + 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, + 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, + 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, + 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, + 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, + 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, + 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, + 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, + 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, + 0x8a, 0x8b, 0x8c, 0x8d, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xb4, 0xb5, + 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, + 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, + 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0xa6, 0xa7, 0xa8, 0xa9, + 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, + 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, + 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc6, 0xc7, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, + 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, + 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, + 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, + 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, + 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, + 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, + 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, + 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, + 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, + 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x58, 0x59, + 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, + 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, + 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, + 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, + 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, + 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, + 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, + 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, + 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, + 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, + 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, + 0xa2, 0xa3, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xca, 0xcb, 0xcc, 0xcd, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x3a, 0x3b, + 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, + 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, + 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, + 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, + 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, + 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, + 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, + 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x6e, 0x6f, 0x70, 0x71, + 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, + 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, + 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, + 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, + 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, + 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0xa0, 0xa1, + 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, + 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, + 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, + 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, + 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, + 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, + 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, + 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, + 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, + 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, + 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, + 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, + 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, + 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, + 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, + 0x6a, 0x6b, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x92, 0x93, 0x94, 0x95, + 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, + 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, + 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, + 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, + 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, + 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, + 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, + 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, + 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, + 0x9a, 0x9b, 0x9c, 0x9d, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xc4, 0xc5, + 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0xb6, 0xb7, 0xb8, 0xb9, + 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, + 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, + 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, + 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, + 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, + 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, + 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, + 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, + 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x68, 0x69, + 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, + 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, + 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, + 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, + 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, + 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, + 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, + 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, + 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, + 0xb2, 0xb3, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, + 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, + 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, + 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, + 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, + 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, + 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, + 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, + 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, + 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, + 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, + 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, + 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, + 0x62, 0x63, 0x64, 0x65, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x8c, 0x8d, + 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, + 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, + 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, + 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, + 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, + 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, + 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, + 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x7e, 0x7f, 0x80, 0x81, + 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, + 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, + 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, + 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0xb0, 0xb1, + 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, + 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, + 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, + 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, + 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, + 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, + 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, + 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, + 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, + 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, + 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, + 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, + 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, + 0x7a, 0x7b, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0xa2, 0xa3, 0xa4, 0xa5, + 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, + 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, + 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, + 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, + 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, + 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, + 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, + 0xaa, 0xab, 0xac, 0xad, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x0c, 0x0d, + 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, + 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, + 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, + 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, + 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, + 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, + 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, + 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, + 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, + 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, + 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, + 0x00, 0x01, 0x02, 0x03, 0x46, 0x47, 0x48, 0x49, + 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, + 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, + 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, + 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, + 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, + 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, + 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, + 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, + 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, + 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, + 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x78, 0x79, + 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, + 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, + 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, + 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, + 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, + 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, + 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, + 0x00, 0x01, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, + 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x28, 0x29, 0x2a, 0x2b, + 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, + 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, + 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, + 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, + 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, + 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, + 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, + 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, + 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, + 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, + 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, + 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, + 0x72, 0x73, 0x74, 0x75, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x9c, 0x9d, + 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, + 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, + 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, + 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, + 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, + 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x8e, 0x8f, 0x90, 0x91, + 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, + 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, + 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0xc0, 0xc1, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, + 0x36, 0x37, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, + 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, + 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, + 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, + 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, + 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, + 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, + 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, + 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, + 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, + 0x8a, 0x8b, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xb2, 0xb3, 0xb4, 0xb5, + 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, + 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, + 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, + 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, + 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, + 0xba, 0xbb, 0xbc, 0xbd, 0xc4, 0xc5, 0xc6, 0xc7, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, + 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, + 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, + 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, + 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, + 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, + 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, + 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, + 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, + 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, + 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x56, 0x57, 0x58, 0x59, + 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, + 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, + 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, + 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, + 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, + 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, + 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, + 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, + 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x88, 0x89, + 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, + 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, + 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x38, 0x39, 0x3a, 0x3b, + 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, + 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, + 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, + 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, + 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, + 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, + 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, + 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, + 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, + 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, + 0x82, 0x83, 0x84, 0x85, 0x8c, 0x8d, 0x8e, 0x8f, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, + 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xac, 0xad, + 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, + 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, + 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, + 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, + 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, + 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x9e, 0x9f, 0xa0, 0xa1, + 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, + 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, + 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, + 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, + 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, + 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, + 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, + 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, + 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, + 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, + 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, + 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, + 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x50, 0x51, + 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, + 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, + 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, + 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, + 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, + 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, + 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, + 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, + 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, + 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, +}; + +static const Summary16 uhc_1_uni2indx_pageac[459] = { + /* 0xac00 */ + { 0, 0xf86c }, { 9, 0xc100 }, { 12, 0x4fee }, { 23, 0xecfc }, + { 34, 0xd7fe }, { 47, 0xeeef }, { 60, 0xffff }, { 76, 0xfa6c }, + { 86, 0xe184 }, { 92, 0x4fee }, { 103, 0x68fc }, { 112, 0xc4fe }, + { 122, 0xeeed }, { 134, 0xff5f }, { 148, 0x6a6c }, { 156, 0xcf94 }, + /* 0xad00 */ + { 165, 0x4fae }, { 175, 0xeefd }, { 188, 0xcdfe }, { 200, 0xeecf }, + { 212, 0xfd4f }, { 224, 0xfeee }, { 237, 0xcff5 }, { 249, 0x4786 }, + { 256, 0xecf9 }, { 267, 0xcffe }, { 280, 0xffef }, { 295, 0xff7f }, + { 310, 0xfeec }, { 322, 0xeff4 }, { 334, 0xffee }, { 348, 0x6cff }, + /* 0xae00 */ + { 360, 0xd4fc }, { 370, 0xffef }, { 385, 0xffff }, { 401, 0xfa6c }, + { 411, 0x8b94 }, { 418, 0x4fae }, { 428, 0xecdc }, { 438, 0xc4fe }, + { 448, 0xefcf }, { 461, 0xffff }, { 477, 0xffff }, { 493, 0x8fff }, + { 506, 0x4fee }, { 517, 0xecfc }, { 528, 0xd6ff }, { 541, 0xeeef }, + /* 0xaf00 */ + { 554, 0xde7f }, { 567, 0xfffe }, { 582, 0xcfff }, { 596, 0x4fea }, + { 606, 0xfcf1 }, { 617, 0xcffe }, { 630, 0xffcf }, { 644, 0xfdff }, + { 659, 0xfeee }, { 672, 0xefdc }, { 684, 0xffff }, { 700, 0xecff }, + { 713, 0x947e }, { 722, 0xefef }, { 736, 0xfcff }, { 750, 0xfeec }, + /* 0xb000 */ + { 762, 0xefec }, { 774, 0xcfee }, { 786, 0xfeff }, { 801, 0xffff }, + { 817, 0xaacf }, { 827, 0xdd47 }, { 837, 0xffff }, { 853, 0xcfff }, + { 867, 0x4fee }, { 878, 0x68fd }, { 888, 0x04f8 }, { 894, 0xeec5 }, + { 904, 0xfc4f }, { 915, 0xfeec }, { 927, 0xffde }, { 941, 0xffff }, + /* 0xb100 */ + { 957, 0xe4ff }, { 969, 0xc4f2 }, { 977, 0xeec7 }, { 988, 0xfc4f }, + { 999, 0xfeec }, { 1011, 0xeecc }, { 1021, 0xfffe }, { 1036, 0xecff }, + { 1049, 0xd4fa }, { 1059, 0xeee3 }, { 1070, 0xfeff }, { 1085, 0xffff }, + { 1101, 0xefff }, { 1116, 0x4fee }, { 1127, 0xecff }, { 1140, 0xd5fe }, + /* 0xb200 */ + { 1152, 0xe6cf }, { 1163, 0xfd4f }, { 1175, 0xfffe }, { 1190, 0xefef }, + { 1204, 0xffff }, { 1220, 0xeeff }, { 1234, 0xfcfe }, { 1247, 0xefcf }, + { 1260, 0xfdcf }, { 1273, 0xf8ec }, { 1283, 0xeb94 }, { 1292, 0xffee }, + { 1306, 0xecff }, { 1319, 0xd4fa }, { 1329, 0x068b }, { 1335, 0x7047 }, + /* 0xb300 */ + { 1342, 0xfeec }, { 1354, 0xefc4 }, { 1364, 0xffff }, { 1380, 0xffff }, + { 1396, 0xffff }, { 1412, 0x268f }, { 1420, 0xb54f }, { 1430, 0xfeec }, + { 1442, 0xefc4 }, { 1452, 0xffee }, { 1466, 0xeefc }, { 1478, 0xffff }, + { 1494, 0xa6cf }, { 1504, 0xd54e }, { 1513, 0xfeee }, { 1526, 0xefff }, + /* 0xb400 */ + { 1541, 0xffff }, { 1557, 0xeefe }, { 1570, 0xf4fe }, { 1582, 0xffef }, + { 1597, 0xffff }, { 1613, 0xfeec }, { 1625, 0xefd4 }, { 1636, 0xffff }, + { 1652, 0xfefe }, { 1666, 0xdfff }, { 1681, 0xeeef }, { 1694, 0xfd5f }, + { 1707, 0xfeee }, { 1720, 0xcfde }, { 1732, 0x4fa6 }, { 1741, 0xfefd }, + /* 0xb500 */ + { 1755, 0xffff }, { 1771, 0xe6cf }, { 1782, 0xf84f }, { 1792, 0xfeec }, + { 1804, 0xc7c4 }, { 1812, 0x4fee }, { 1823, 0xfffc }, { 1837, 0xffff }, + { 1853, 0xffff }, { 1869, 0xffff }, { 1885, 0xf2ec }, { 1895, 0xc7c4 }, + { 1903, 0x4fee }, { 1914, 0xfefc }, { 1927, 0xefff }, { 1942, 0xffff }, + /* 0xb600 */ + { 1958, 0xffff }, { 1974, 0xfeec }, { 1986, 0xefdf }, { 2000, 0xffef }, + { 2015, 0xfeff }, { 2030, 0xffff }, { 2046, 0xfeef }, { 2060, 0xffff }, + { 2076, 0xffff }, { 2092, 0xcfff }, { 2106, 0xe7ee }, { 2118, 0xfffd }, + { 2133, 0xffff }, { 2149, 0xffef }, { 2164, 0xffff }, { 2180, 0xfeee }, + /* 0xb700 */ + { 2193, 0xffdc }, { 2206, 0xffff }, { 2222, 0x6cff }, { 2234, 0xf4fe }, + { 2246, 0xeeef }, { 2259, 0xffcf }, { 2273, 0xfeee }, { 2286, 0xcfd4 }, + { 2296, 0x4fee }, { 2307, 0xec38 }, { 2315, 0xc4fe }, { 2325, 0xfecf }, + { 2338, 0xfd7f }, { 2352, 0xffff }, { 2368, 0xcfff }, { 2382, 0x4fee }, + /* 0xb800 */ + { 2393, 0xec7c }, { 2403, 0xd4fe }, { 2414, 0xeecf }, { 2426, 0xfc4f }, + { 2437, 0xffee }, { 2451, 0xcff5 }, { 2463, 0x4fee }, { 2474, 0xeefd }, + { 2487, 0xdfff }, { 2502, 0xffff }, { 2518, 0xfeff }, { 2533, 0xfeee }, + { 2546, 0xefd4 }, { 2557, 0x5fee }, { 2569, 0xecfd }, { 2581, 0xd4fe }, + /* 0xb900 */ + { 2592, 0xffef }, { 2607, 0xfeff }, { 2622, 0xfffe }, { 2637, 0xcfff }, + { 2651, 0x6fee }, { 2663, 0xecfd }, { 2675, 0xd4fe }, { 2686, 0xeecf }, + { 2698, 0x994f }, { 2707, 0xffff }, { 2723, 0xcfff }, { 2737, 0x4fee }, + { 2748, 0x2cfd }, { 2758, 0x94f8 }, { 2766, 0xeec5 }, { 2776, 0xf84f }, + /* 0xba00 */ + { 2786, 0xfefc }, { 2799, 0xffdf }, { 2814, 0xffff }, { 2830, 0xecff }, + { 2843, 0x94fa }, { 2852, 0xeec7 }, { 2863, 0xfc4f }, { 2874, 0xfeec }, + { 2886, 0xef47 }, { 2897, 0xffff }, { 2913, 0xe4ff }, { 2925, 0xd4fa }, + { 2935, 0xfeef }, { 2949, 0xfcff }, { 2963, 0xffff }, { 2979, 0xefff }, + /* 0xbb00 */ + { 2994, 0x5fee }, { 3006, 0xeefd }, { 3019, 0xf5fe }, { 3032, 0x868f }, + { 3040, 0x5d4f }, { 3050, 0xfeee }, { 3063, 0xeff5 }, { 3076, 0xffff }, + { 3092, 0xeeff }, { 3106, 0xfffe }, { 3121, 0xeeef }, { 3134, 0xff6f }, + { 3148, 0xfeee }, { 3161, 0xfff6 }, { 3175, 0xffff }, { 3191, 0x6cff }, + /* 0xbc00 */ + { 3203, 0x44fa }, { 3211, 0x060d }, { 3216, 0xdd4f }, { 3227, 0xfeec }, + { 3239, 0xcdc4 }, { 3247, 0xdffe }, { 3261, 0xffff }, { 3277, 0xffff }, + { 3293, 0xa6cf }, { 3303, 0xf94f }, { 3314, 0xfe6c }, { 3325, 0xcfc4 }, + { 3334, 0x5fee }, { 3346, 0xeedc }, { 3357, 0xffff }, { 3373, 0xee8f }, + /* 0xbd00 */ + { 3384, 0xfd4f }, { 3396, 0xffee }, { 3410, 0xefef }, { 3424, 0xffff }, + { 3440, 0xecfe }, { 3452, 0xfcfe }, { 3465, 0xfeef }, { 3479, 0xffff }, + { 3495, 0xf86c }, { 3504, 0xe9d4 }, { 3513, 0xffef }, { 3528, 0xfefe }, + { 3542, 0xffff }, { 3558, 0xeecf }, { 3570, 0xfdff }, { 3585, 0xfeee }, + /* 0xbe00 */ + { 3598, 0xcfd6 }, { 3609, 0x4fee }, { 3620, 0xffff }, { 3636, 0xffff }, + { 3652, 0xaecf }, { 3663, 0xf14f }, { 3673, 0xfaec }, { 3684, 0xc7c4 }, + { 3692, 0x4fee }, { 3703, 0xfcfc }, { 3715, 0xfeff }, { 3730, 0xffff }, + { 3746, 0xffff }, { 3762, 0xfe6c }, { 3773, 0xefc6 }, { 3784, 0xffff }, + /* 0xbf00 */ + { 3800, 0xfcfd }, { 3813, 0xc4ff }, { 3824, 0xffff }, { 3840, 0xffff }, + { 3856, 0xfeec }, { 3868, 0xffdc }, { 3881, 0xffff }, { 3897, 0xffff }, + { 3913, 0xffff }, { 3929, 0xffef }, { 3944, 0xffff }, { 3960, 0xfffe }, + { 3975, 0xcfdf }, { 3988, 0x6fee }, { 4000, 0xfffd }, { 4015, 0xffff }, + /* 0xc000 */ + { 4031, 0xffff }, { 4047, 0xffff }, { 4063, 0xffff }, { 4079, 0xefff }, + { 4094, 0xffff }, { 4110, 0xeefd }, { 4123, 0xfcfe }, { 4136, 0xffff }, + { 4152, 0xffff }, { 4168, 0xfeec }, { 4180, 0x4fd4 }, { 4189, 0x4f86 }, + { 4197, 0xecdc }, { 4207, 0xc4fe }, { 4217, 0xeecf }, { 4229, 0xfd4f }, + /* 0xc100 */ + { 4241, 0xfeee }, { 4254, 0x0fde }, { 4264, 0x4f26 }, { 4272, 0xecbc }, + { 4282, 0xc4fe }, { 4292, 0xeecf }, { 4304, 0xfc4f }, { 4315, 0xfeee }, + { 4328, 0x8fdf }, { 4340, 0x4fae }, { 4350, 0xecdd }, { 4361, 0xdffe }, + { 4375, 0xeeef }, { 4388, 0xfe6f }, { 4401, 0xfeee }, { 4414, 0xcff4 }, + /* 0xc200 */ + { 4425, 0x4fee }, { 4436, 0x6cfd }, { 4447, 0x54fe }, { 4457, 0xffe9 }, + { 4470, 0xfeff }, { 4485, 0xfeec }, { 4497, 0xcfde }, { 4509, 0x4fee }, + { 4520, 0xfcfd }, { 4533, 0xd6fe }, { 4545, 0xcecf }, { 4556, 0xfd4f }, + { 4568, 0xffff }, { 4584, 0xcfff }, { 4598, 0x47e6 }, { 4607, 0xe4bd }, + /* 0xc300 */ + { 4617, 0xccfe }, { 4628, 0xeec7 }, { 4639, 0xfccf }, { 4651, 0xffff }, + { 4667, 0xffdf }, { 4682, 0xffff }, { 4698, 0xecff }, { 4711, 0xccfa }, + { 4721, 0xeeef }, { 4734, 0xffff }, { 4750, 0xffff }, { 4766, 0xffff }, + { 4782, 0xfffe }, { 4797, 0x6cff }, { 4809, 0xdcfa }, { 4820, 0xfecf }, + /* 0xc400 */ + { 4833, 0xfeff }, { 4848, 0xfffe }, { 4863, 0xefef }, { 4877, 0xcfee }, + { 4889, 0xfeff }, { 4904, 0xffff }, { 4920, 0xeecf }, { 4932, 0xfdcf }, + { 4945, 0xfffe }, { 4960, 0xefef }, { 4974, 0xffff }, { 4990, 0xeeff }, + { 5004, 0xffff }, { 5020, 0xffff }, { 5036, 0xfdff }, { 5051, 0x7aec }, + /* 0xc500 */ + { 5061, 0xeffc }, { 5074, 0xefee }, { 5087, 0xecff }, { 5100, 0xd4fe }, + { 5111, 0x88cf }, { 5119, 0x9c47 }, { 5127, 0xfeec }, { 5139, 0xcfc4 }, + { 5148, 0x4f6e }, { 5158, 0xee5d }, { 5169, 0xfdfe }, { 5183, 0x84cf }, + { 5191, 0xa80f }, { 5198, 0xfeec }, { 5210, 0x8fd4 }, { 5219, 0x0f2e }, + /* 0xc600 */ + { 5227, 0xee1c }, { 5236, 0xe4fe }, { 5247, 0x8ecf }, { 5257, 0xf546 }, + { 5266, 0xfeec }, { 5278, 0xcfc4 }, { 5287, 0x6ffe }, { 5300, 0xecfd }, + { 5312, 0xd4fe }, { 5323, 0xeecf }, { 5335, 0xfd4f }, { 5347, 0xf8ec }, + { 5357, 0xcfd4 }, { 5367, 0xcfee }, { 5379, 0xecfc }, { 5390, 0xdcfe }, + /* 0xc700 */ + { 5402, 0xeecf }, { 5414, 0xfd4f }, { 5426, 0xfeec }, { 5438, 0xcf54 }, + { 5447, 0x4bee }, { 5457, 0xee01 }, { 5464, 0xf6fe }, { 5477, 0x8ecf }, + { 5487, 0xb847 }, { 5495, 0xfa2c }, { 5504, 0xcf84 }, { 5512, 0x4fee }, + { 5523, 0xacfc }, { 5533, 0xdefe }, { 5546, 0xeeef }, { 5559, 0xffff }, + /* 0xc800 */ + { 5575, 0xfaec }, { 5586, 0xcf94 }, { 5595, 0x4fee }, { 5606, 0xeefd }, + { 5619, 0xccfe }, { 5630, 0xffef }, { 5645, 0xffff }, { 5661, 0xfaec }, + { 5672, 0xc714 }, { 5679, 0x5fef }, { 5692, 0x001d }, +}; + +static int +uhc_1_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (n >= 2) { + if (wc >= 0xac00 && wc < 0xc8b0) { + const Summary16 *summary = &uhc_1_uni2indx_pageac[(wc>>4)-0xac0]; + unsigned short used = summary->used; + unsigned int i = wc & 0x0f; + if (used & ((unsigned short) 1 << i)) { + unsigned short c; + /* Keep in `used' only the bits 0..i-1. */ + used &= ((unsigned short) 1 << i) - 1; + /* Add `summary->indx' and the number of bits set in `used'. */ + used = (used & 0x5555) + ((used & 0xaaaa) >> 1); + used = (used & 0x3333) + ((used & 0xcccc) >> 2); + used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); + used = (used & 0x00ff) + (used >> 8); + used += summary->indx; + c = uhc_1_2charset_main[used>>7] + uhc_1_2charset[used]; + r[0] = (c >> 8); r[1] = (c & 0xff); + return 2; + } + } + return RET_ILUNI; + } + return RET_TOOSMALL; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/uhc_2.h b/graf2d/win32gdk/gdk/src/iconv/uhc_2.h new file mode 100644 index 00000000000..4aa290a943b --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/uhc_2.h @@ -0,0 +1,1022 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * Unified Hangul Code part 2 + */ + +static const unsigned short uhc_2_2uni_main_pagea1[76] = { + 0xc8a5, 0xc8d8, 0xc910, 0xc93e, 0xc971, 0xc9a5, 0xc9de, 0xca1c, + 0xca47, 0xca7b, 0xcaa8, 0xcadd, 0xcb0b, 0xcb3a, 0xcb6d, 0xcb99, + 0xcbc5, 0xcbf3, 0xcc25, 0xcc67, 0xcc94, 0xcccf, 0xccfe, 0xcd34, + 0xcd61, 0xcd92, 0xcdc6, 0xcdf5, 0xce2c, 0xce5d, 0xce9a, 0xcecc, + 0xcf02, 0xcf3b, 0xcf6d, 0xcf9e, 0xcfcc, 0xcfff, 0xd02e, 0xd064, + 0xd095, 0xd0cc, 0xd105, 0xd132, 0xd16e, 0xd19b, 0xd1d0, 0xd1fd, + 0xd22a, 0xd25e, 0xd28d, 0xd2c5, 0xd2fb, 0xd33e, 0xd36a, 0xd3a1, + 0xd3d7, 0xd40d, 0xd438, 0xd467, 0xd49e, 0xd4c9, 0xd4fe, 0xd52e, + 0xd564, 0xd59d, 0xd5ca, 0xd606, 0xd63d, 0xd677, 0xd6ab, 0xd6e2, + 0xd715, 0xd74e, 0xd78d, 0xfffd, +}; +static const unsigned char uhc_2_2uni_pagea1[3126] = { + /* 0xa1 */ + 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, + 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x19, 0x1a, + 0x1b, 0x1c, 0x1d, 0x1e, 0x20, 0x21, 0x22, 0x24, + 0x25, 0x26, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x31, 0x00, 0x02, 0x03, 0x04, 0x05, 0x06, + 0x07, 0x0a, 0x0b, 0x0d, 0x0e, 0x0f, 0x10, 0x11, + 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, + 0x1a, 0x1b, 0x1c, 0x1e, 0x1f, 0x20, 0x21, 0x22, + 0x23, 0x26, 0x27, 0x29, 0x2a, 0x2b, 0x2f, 0x30, + 0x31, 0x32, 0x33, 0x36, + /* 0xa2 */ + 0x00, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x09, + 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, + 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, + 0x1a, 0x1b, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, + 0x23, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, + 0x2c, 0x2d, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, + 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, + 0x0e, 0x0f, 0x10, 0x11, 0x14, 0x15, 0x17, 0x18, + 0x19, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, + 0x24, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, + 0x2d, 0x2f, 0x30, 0x31, + /* 0xa3 */ + 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, + 0x09, 0x0a, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, + 0x12, 0x13, 0x14, 0x15, 0x16, 0x19, 0x1a, 0x1c, + 0x1d, 0x1e, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x29, 0x2b, 0x2d, 0x2e, 0x2f, 0x30, 0x31, + 0x32, 0x33, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, + 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, + 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1d, 0x1e, 0x20, + 0x21, 0x24, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2d, + 0x2f, 0x32, 0x33, 0x36, + /* 0xa4 */ + 0x00, 0x01, 0x03, 0x05, 0x07, 0x08, 0x0a, 0x0b, + 0x0c, 0x0d, 0x10, 0x14, 0x15, 0x16, 0x17, 0x18, + 0x19, 0x1c, 0x1d, 0x1f, 0x20, 0x21, 0x23, 0x24, + 0x25, 0x26, 0x27, 0x28, 0x29, 0x2c, 0x30, 0x31, + 0x32, 0x33, 0x34, 0x35, 0x37, 0x38, 0x39, 0x3b, + 0x3c, 0x3d, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, + 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0e, + 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, + 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, + 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, + 0x27, 0x28, 0x29, 0x2a, + /* 0xa5 */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x07, 0x08, 0x0a, + 0x0b, 0x0c, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, + 0x14, 0x17, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, + 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, + 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, + 0x32, 0x33, 0x00, 0x01, 0x03, 0x04, 0x05, 0x06, + 0x07, 0x08, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1e, 0x1f, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, + 0x29, 0x2a, 0x2b, 0x2c, + /* 0xa6 */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x16, 0x17, 0x19, 0x1a, + 0x1b, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, + 0x26, 0x28, 0x2a, 0x2c, 0x2d, 0x2e, 0x2f, 0x32, + 0x33, 0x34, 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x18, + 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, + 0x29, 0x2a, 0x2c, 0x2d, + /* 0xa7 */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x06, 0x07, 0x08, + 0x0a, 0x0b, 0x0c, 0x0e, 0x0f, 0x10, 0x11, 0x12, + 0x13, 0x14, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, + 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, + 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, + 0x2d, 0x2e, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, + 0x06, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x10, + 0x11, 0x13, 0x14, 0x15, 0x17, 0x18, 0x19, 0x1a, + 0x1b, 0x1c, 0x1d, 0x20, 0x21, 0x22, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2b, 0x2c, 0x2d, 0x2e, + 0x2f, 0x30, 0x31, 0x32, + /* 0xa8 */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0d, 0x0e, 0x0f, 0x10, 0x11, + 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, + 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, + 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, + 0x2a, 0x2b, 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, + 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, + 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, + /* 0xa9 */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x10, + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, + 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x20, 0x21, + 0x23, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, + 0x2c, 0x2d, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, + 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, + 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x1b, 0x1c, 0x1e, 0x1f, 0x20, + 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x2b, + 0x2c, 0x2d, 0x30, 0x31, + /* 0xaa */ + 0x00, 0x01, 0x05, 0x06, 0x08, 0x0a, 0x0c, 0x0d, + 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x15, 0x1a, 0x1b, + 0x1c, 0x1d, 0x1e, 0x21, 0x22, 0x24, 0x25, 0x26, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x31, + 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3c, 0x3d, + 0x3e, 0x40, 0x00, 0x02, 0x03, 0x04, 0x05, 0x06, + 0x07, 0x08, 0x0a, 0x0b, 0x0c, 0x0d, 0x0f, 0x10, + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, + 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, + 0x29, 0x2a, 0x2b, 0x2c, + /* 0xab */ + 0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x09, 0x0a, + 0x0b, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, + 0x16, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x22, + 0x23, 0x25, 0x26, 0x27, 0x29, 0x2a, 0x2b, 0x2c, + 0x2d, 0x2e, 0x2f, 0x32, 0x34, 0x36, 0x37, 0x38, + 0x39, 0x3a, 0x00, 0x02, 0x03, 0x04, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x16, 0x17, 0x18, + 0x19, 0x1a, 0x1b, 0x1c, 0x1e, 0x1f, 0x20, 0x22, + 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, + 0x2b, 0x2c, 0x2d, 0x2e, + /* 0xac */ + 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, + 0x09, 0x0c, 0x0d, 0x0f, 0x10, 0x11, 0x13, 0x14, + 0x15, 0x16, 0x17, 0x18, 0x19, 0x1c, 0x1e, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x27, 0x28, 0x29, + 0x2b, 0x2c, 0x2d, 0x2f, 0x30, 0x31, 0x32, 0x33, + 0x34, 0x35, 0x00, 0x01, 0x02, 0x03, 0x04, 0x06, + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, + 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, + 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, + 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, + 0x27, 0x29, 0x2a, 0x2b, + /* 0xad */ + 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, + 0x09, 0x0a, 0x0d, 0x0f, 0x11, 0x12, 0x13, 0x14, + 0x15, 0x16, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, + 0x2f, 0x30, 0x00, 0x01, 0x04, 0x05, 0x07, 0x08, + 0x09, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, + 0x14, 0x16, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, + 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, + 0x2f, 0x30, 0x31, 0x33, + /* 0xae */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x07, 0x08, + 0x09, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, + 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, + 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, + 0x23, 0x24, 0x25, 0x27, 0x28, 0x29, 0x2b, 0x2c, + 0x2d, 0x2e, 0x00, 0x01, 0x02, 0x05, 0x07, 0x09, + 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x10, 0x11, 0x12, + 0x14, 0x15, 0x16, 0x18, 0x19, 0x1a, 0x1b, 0x1c, + 0x1d, 0x1e, 0x20, 0x21, 0x22, 0x23, 0x25, 0x26, + 0x27, 0x28, 0x29, 0x2a, 0x2d, 0x2e, 0x30, 0x31, + 0x32, 0x34, 0x35, 0x36, + /* 0xaf */ + 0x00, 0x01, 0x02, 0x03, 0x06, 0x08, 0x0a, 0x0b, + 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, + 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, + 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, + 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, + 0x2e, 0x2f, 0x00, 0x01, 0x05, 0x06, 0x07, 0x08, + 0x09, 0x0a, 0x0d, 0x0f, 0x11, 0x12, 0x13, 0x14, + 0x15, 0x16, 0x19, 0x1a, 0x1c, 0x1d, 0x1e, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x29, 0x2b, + 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x35, 0x36, + 0x38, 0x39, 0x3a, 0x3c, + /* 0xb0 */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x0c, + 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x14, 0x15, 0x16, + 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, + 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, + 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, + 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x1a, 0x1b, 0x1d, 0x1e, 0x21, 0x22, + 0x23, 0x24, 0x25, 0x26, 0x27, 0x2a, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, + /* 0xb1 */ + 0x00, 0x01, 0x03, 0x04, 0x05, 0x07, 0x08, 0x09, + 0x0a, 0x0b, 0x0c, 0x0d, 0x10, 0x12, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1b, 0x1c, 0x1d, 0x1f, + 0x20, 0x21, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, + 0x29, 0x2c, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, + 0x37, 0x38, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, + 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, + 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x1b, 0x1c, 0x1e, 0x1f, 0x20, + 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x2b, + 0x2d, 0x2f, 0x30, 0x31, + /* 0xb2 */ + 0x00, 0x01, 0x02, 0x05, 0x06, 0x08, 0x09, 0x0a, + 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x14, + 0x15, 0x16, 0x17, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, + 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, + 0x2f, 0x30, 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, + 0x07, 0x08, 0x09, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, + 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x27, 0x28, 0x29, + 0x2a, 0x2b, 0x2c, 0x2d, + /* 0xb3 */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x16, 0x17, 0x19, 0x1a, + 0x1b, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, + 0x26, 0x28, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x31, 0x32, 0x00, 0x02, 0x03, 0x04, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, + 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, + 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, + 0x2a, 0x2b, 0x2c, 0x2d, + /* 0xb4 */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, + 0x0b, 0x0c, 0x0d, 0x0f, 0x10, 0x11, 0x12, 0x13, + 0x14, 0x15, 0x18, 0x1a, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x23, 0x24, 0x25, 0x27, 0x28, 0x29, + 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x33, + 0x34, 0x35, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, + 0x06, 0x07, 0x0a, 0x0b, 0x0d, 0x0e, 0x0f, 0x11, + 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x1a, 0x1b, + 0x1c, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, + 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, + 0x2d, 0x2e, 0x2f, 0x30, + /* 0xb5 */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x11, + 0x12, 0x14, 0x15, 0x16, 0x18, 0x19, 0x1a, 0x1b, + 0x1c, 0x1d, 0x1e, 0x21, 0x23, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2d, 0x2e, 0x30, 0x31, 0x32, + 0x35, 0x36, 0x00, 0x01, 0x02, 0x03, 0x06, 0x0a, + 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x12, 0x13, 0x15, + 0x16, 0x17, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, + 0x1f, 0x22, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, + 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, + 0x35, 0x36, 0x37, 0x38, + /* 0xb6 */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, + 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, + 0x29, 0x2a, 0x00, 0x01, 0x03, 0x04, 0x05, 0x07, + 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x10, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1c, 0x1d, 0x1f, 0x20, + 0x21, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, + 0x2c, 0x2e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, + 0x37, 0x38, 0x39, 0x3b, + /* 0xb7 */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0f, 0x10, + 0x11, 0x12, 0x13, 0x14, 0x15, 0x17, 0x18, 0x19, + 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, + 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, + 0x2b, 0x2c, 0x00, 0x01, 0x02, 0x03, 0x04, 0x07, + 0x08, 0x0a, 0x0b, 0x0c, 0x0e, 0x0f, 0x10, 0x11, + 0x12, 0x13, 0x14, 0x17, 0x19, 0x1b, 0x1c, 0x1d, + 0x1e, 0x20, 0x22, 0x23, 0x24, 0x26, 0x27, 0x28, + 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, + 0x31, 0x32, 0x33, 0x34, + /* 0xb8 */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, + 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, + 0x21, 0x22, 0x23, 0x25, 0x26, 0x27, 0x29, 0x2a, + 0x2b, 0x2c, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, + 0x06, 0x07, 0x08, 0x09, 0x0b, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x14, 0x15, 0x16, 0x17, 0x18, + 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, + 0x29, 0x2a, 0x2b, 0x2c, + /* 0xb9 */ + 0x00, 0x01, 0x04, 0x05, 0x07, 0x08, 0x09, 0x0b, + 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x14, 0x16, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1f, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, + 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, + 0x31, 0x33, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, + 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, + 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, + 0x1f, 0x20, 0x21, 0x24, 0x25, 0x27, 0x28, 0x29, + 0x2b, 0x2c, 0x2d, 0x2e, + /* 0xba */ + 0x00, 0x01, 0x02, 0x05, 0x06, 0x07, 0x09, 0x0a, + 0x0b, 0x0c, 0x0d, 0x0e, 0x10, 0x11, 0x12, 0x14, + 0x15, 0x16, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x20, 0x21, 0x22, 0x23, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2d, 0x2e, 0x30, 0x31, 0x34, + 0x36, 0x37, 0x00, 0x01, 0x02, 0x05, 0x07, 0x08, + 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x10, 0x11, + 0x12, 0x14, 0x15, 0x16, 0x18, 0x19, 0x1a, 0x1b, + 0x1c, 0x1d, 0x1e, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2d, 0x2e, 0x30, + 0x31, 0x32, 0x34, 0x35, + /* 0xbb */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x07, 0x09, 0x0b, + 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x14, 0x16, 0x17, + 0x18, 0x1a, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x23, + 0x27, 0x28, 0x29, 0x2b, 0x2c, 0x2f, 0x30, 0x32, + 0x33, 0x34, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, + 0x3c, 0x3f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, + 0x28, 0x29, 0x2a, 0x2b, + /* 0xbc */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x14, 0x15, 0x17, 0x18, 0x19, 0x1b, + 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x24, 0x28, + 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x30, 0x31, 0x33, + 0x34, 0x35, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, + 0x06, 0x09, 0x0b, 0x0d, 0x0e, 0x0f, 0x10, 0x11, + 0x12, 0x14, 0x15, 0x16, 0x18, 0x19, 0x1a, 0x1c, + 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x25, 0x26, + 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x30, 0x31, + 0x32, 0x33, 0x34, 0x35, + /* 0xbd */ + 0x00, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, + 0x09, 0x0b, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, + 0x13, 0x14, 0x17, 0x18, 0x1a, 0x1b, 0x1c, 0x1e, + 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x27, 0x29, + 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x32, 0x33, + 0x34, 0x35, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, + 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, + 0x0e, 0x0f, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, + 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, + 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, + 0x27, 0x28, 0x29, 0x2a, + /* 0xbe */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x09, 0x0a, 0x0b, 0x0d, 0x0e, 0x0f, 0x10, 0x11, + 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, + 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, + 0x22, 0x23, 0x25, 0x26, 0x27, 0x29, 0x2a, 0x2b, + 0x2d, 0x2e, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, + 0x07, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x13, 0x14, 0x16, 0x17, 0x1a, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x23, 0x25, 0x27, 0x28, 0x29, + 0x2a, 0x2b, 0x2c, 0x2e, 0x2f, 0x30, 0x31, 0x32, + 0x33, 0x34, 0x35, 0x36, + /* 0xbf */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, + 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, + 0x29, 0x2a, 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, + 0x08, 0x09, 0x0a, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, + 0x11, 0x12, 0x14, 0x15, 0x17, 0x18, 0x19, 0x1a, + 0x1b, 0x1c, 0x1d, 0x1e, 0x20, 0x21, 0x22, 0x24, + 0x25, 0x26, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x30, 0x31, 0x33, + /* 0xc0 */ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x07, 0x08, + 0x09, 0x0b, 0x0c, 0x0d, 0x0f, 0x10, 0x11, 0x12, + 0x13, 0x14, 0x15, 0x18, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, + 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, + 0x10, 0x11, 0x13, 0x14, 0x15, 0x17, 0x18, 0x19, + 0x1a, 0x1b, 0x1c, 0x1d, 0x20, 0x22, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2c, 0x2d, 0x2f, 0x30, + 0x31, 0x33, 0x34, 0x35, + /* 0xc1 */ + 0x00, 0x02, 0x03, 0x06, 0x08, 0x0a, 0x0b, 0x0c, + 0x0d, 0x0e, 0x0f, 0x12, 0x13, 0x15, 0x16, 0x17, + 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x22, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2d, 0x2e, + 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, + 0x37, 0x38, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, + 0x06, 0x07, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, + 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, + 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, + 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, + 0x27, 0x28, 0x29, 0x2a, + /* 0xc2 */ + 0x00, 0x01, 0x03, 0x04, 0x05, 0x07, 0x09, 0x0a, + 0x0b, 0x0c, 0x0d, 0x10, 0x12, 0x14, 0x15, 0x16, + 0x17, 0x18, 0x19, 0x1c, 0x1d, 0x1f, 0x20, 0x21, + 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2c, + 0x2e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x38, + 0x39, 0x3b, 0x00, 0x01, 0x03, 0x04, 0x05, 0x06, + 0x07, 0x08, 0x09, 0x0c, 0x10, 0x11, 0x12, 0x13, + 0x14, 0x15, 0x17, 0x18, 0x19, 0x1b, 0x1c, 0x1d, + 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x34, 0x35, + /* 0xc3 */ + 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x09, + 0x0a, 0x0d, 0x0f, 0x11, 0x12, 0x13, 0x15, 0x16, + 0x19, 0x1a, 0x1c, 0x1d, 0x1e, 0x20, 0x21, 0x22, + 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2b, + 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x35, 0x36, + 0x38, 0x39, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, + 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0d, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x17, 0x18, 0x1a, + 0x1b, 0x1c, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, + 0x24, 0x25, 0x27, 0x29, 0x2b, 0x2c, 0x2d, 0x2e, + 0x2f, 0x30, 0x32, 0x33, + /* 0xc4 */ + 0x00, 0x02, 0x03, 0x04, 0x06, 0x07, 0x08, 0x09, + 0x0a, 0x0b, 0x0c, 0x0d, 0x0f, 0x11, 0x12, 0x13, + 0x14, 0x15, 0x16, 0x17, 0x18, 0x1b, 0x1c, 0x1e, + 0x1f, 0x20, 0x22, 0x23, 0x24, 0x25, 0x27, 0x28, + 0x2a, 0x2b, 0x2d, 0x2f, 0x30, 0x31, 0x32, 0x33, + 0x34, 0x36, 0x00, 0x01, 0x03, 0x04, 0x05, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0f, 0x10, + 0x11, 0x12, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, + 0x1c, 0x1d, 0x1f, 0x20, 0x21, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x30, 0x31, 0x32, + /* 0xc5 */ + 0x00, 0x01, 0x02, 0x05, 0x06, 0x08, 0x09, 0x0a, + 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x15, + 0x17, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x21, + 0x22, 0x24, 0x25, 0x26, 0x28, 0x29, 0x2a, 0x2b, + 0x2c, 0x2d, 0x2e, 0x30, 0x31, 0x33, 0x35, 0x36, + 0x37, 0x38, 0x00, 0x01, 0x04, 0x05, 0x07, 0x0c, + 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x14, 0x16, 0x18, + 0x19, 0x1a, 0x1c, 0x1d, 0x1f, 0x20, 0x21, 0x23, + 0x24, 0x25, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, + 0x2d, 0x30, 0x31, 0x32, 0x34, 0x35, 0x36, 0x37, + 0x38, 0x39, 0x3c, 0x3d, + /* 0xc6 */ + 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, + 0x09, 0x0a, 0x0d, 0x0f, 0x11, 0x12, 0x13, 0x14, + 0x15, 0x16, +}; + +static int +uhc_2_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c1 = s[0]; + if ((c1 >= 0xa1 && c1 <= 0xc6)) { + if (n >= 2) { + unsigned char c2 = s[1]; + if ((c2 >= 0x41 && c2 < 0x5b) || (c2 >= 0x61 && c2 < 0x7b) || (c2 >= 0x81 && c2 < 0xa1)) { + unsigned int row = c1 - 0xa1; + unsigned int col = c2 - (c2 >= 0x81 ? 0x4d : c2 >= 0x61 ? 0x47 : 0x41); + unsigned int i = 84 * row + col; + if (i < 3126) { + *pwc = (ucs4_t) (uhc_2_2uni_main_pagea1[2*row+(col>=42?1:0)] + uhc_2_2uni_pagea1[i]); + return 2; + } + } + return RET_ILSEQ; + } + return RET_TOOFEW(0); + } + return RET_ILSEQ; +} + +static const unsigned short uhc_2_2charset_main[49] = { + 0xa141, 0xa18d, 0xa273, 0xa359, 0xa445, 0xa491, 0xa577, 0xa663, + 0xa749, 0xa795, 0xa881, 0xa967, 0xaa4d, 0xaa99, 0xab85, 0xac6b, + 0xad51, 0xad9d, 0xae89, 0xaf6f, 0xb055, 0xb141, 0xb18d, 0xb273, + 0xb359, 0xb445, 0xb491, 0xb577, 0xb663, 0xb749, 0xb795, 0xb881, + 0xb967, 0xba4d, 0xba99, 0xbb85, 0xbc6b, 0xbd51, 0xbd9d, 0xbe89, + 0xbf6f, 0xc055, 0xc141, 0xc18d, 0xc273, 0xc359, 0xc445, 0xc491, + 0xc577, +}; +static const unsigned char uhc_2_2charset[3126] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, + 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xd4, 0xd5, + 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, + 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, + 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, + 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, + 0x00, 0x01, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, + 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x28, 0x29, 0x2a, 0x2b, + 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, + 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, + 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0xe8, 0xe9, 0xea, 0xeb, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, + 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, + 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, + 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, + 0x00, 0x01, 0x02, 0x03, 0x0a, 0x0b, 0x0c, 0x0d, + 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0xca, 0xcb, 0xcc, 0xcd, + 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, + 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, + 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xea, 0xeb, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, + 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, + 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x38, 0x39, 0x3a, 0x3b, + 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xcc, 0xcd, + 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, + 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, + 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, + 0x36, 0x37, 0x38, 0x39, 0xda, 0xdb, 0xdc, 0xdd, + 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, + 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, + 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, + 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, + 0xde, 0xdf, 0xe0, 0xe1, 0xe8, 0xe9, 0xea, 0xeb, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xdc, 0xdd, + 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, + 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, + 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x30, 0x31, 0x32, 0x33, + 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, + 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x00, 0x01, 0x02, 0x03, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xc4, 0xc5, + 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, + 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, + 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, + 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, + 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0xd2, 0xd3, 0xd4, 0xd5, + 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, + 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x0c, 0x0d, + 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, + 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, + 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, + 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xd4, 0xd5, + 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, + 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, + 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, + 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, + 0x00, 0x01, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, + 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x28, 0x29, 0x2a, 0x2b, + 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, + 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, + 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0xe8, 0xe9, 0xea, 0xeb, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, + 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, + 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, + 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, + 0x00, 0x01, 0x02, 0x03, 0x0a, 0x0b, 0x0c, 0x0d, + 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0xca, 0xcb, 0xcc, 0xcd, + 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, + 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, + 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xea, 0xeb, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, + 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, + 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x38, 0x39, 0x3a, 0x3b, + 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xcc, 0xcd, + 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, + 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, + 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, + 0xd8, 0xd9, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, + 0x36, 0x37, 0x38, 0x39, 0xda, 0xdb, 0xdc, 0xdd, + 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, + 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, + 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, + 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, + 0xde, 0xdf, 0xe0, 0xe1, 0xe8, 0xe9, 0xea, 0xeb, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xdc, 0xdd, + 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, + 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, + 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x30, 0x31, 0x32, 0x33, + 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, + 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x00, 0x01, 0x02, 0x03, 0xa4, 0xa5, 0xa6, 0xa7, + 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xc4, 0xc5, + 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, + 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, + 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, + 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, + 0xd0, 0xd1, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, + 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0xd2, 0xd3, 0xd4, 0xd5, + 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, + 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x0c, 0x0d, + 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, + 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, + 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, + 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xd4, 0xd5, + 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, + 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, + 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, + 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, + 0x00, 0x01, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, + 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x28, 0x29, 0x2a, 0x2b, + 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, + 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, + 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0xe8, 0xe9, 0xea, 0xeb, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, + 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, + 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, + 0xc8, 0xc9, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, + 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, + 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, + 0x00, 0x01, 0x02, 0x03, 0x0a, 0x0b, 0x0c, 0x0d, + 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, + 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, + 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, + 0x26, 0x27, 0x28, 0x29, 0xca, 0xcb, 0xcc, 0xcd, + 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, + 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, +}; + +static const Summary16 uhc_2_uni2indx_pagec8[251] = { + /* 0xc800 */ + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, + { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0xfee0 }, { 10, 0xcfff }, + { 24, 0xeeef }, { 37, 0xfd4f }, { 49, 0xffec }, { 62, 0xcfdf }, + /* 0xc900 */ + { 75, 0x4f8e }, { 84, 0xfefd }, { 98, 0xefff }, { 113, 0xffef }, + { 128, 0xffff }, { 144, 0xfeec }, { 156, 0xeff4 }, { 168, 0xefee }, + { 181, 0xecff }, { 194, 0xd4fe }, { 205, 0xffff }, { 221, 0xffff }, + { 237, 0xfa6c }, { 247, 0xc994 }, { 254, 0x4f6a }, { 263, 0xecfc }, + /* 0xca00 */ + { 274, 0xc4fe }, { 284, 0xfeef }, { 298, 0xfdff }, { 313, 0xffff }, + { 329, 0xcfff }, { 343, 0x4fee }, { 354, 0xfefc }, { 367, 0xdfff }, + { 382, 0xffef }, { 397, 0xfeff }, { 412, 0xffff }, { 428, 0xcfff }, + { 442, 0x4fee }, { 453, 0xfcf5 }, { 465, 0xeffe }, { 479, 0xffef }, + /* 0xcb00 */ + { 494, 0xfeff }, { 509, 0xfeee }, { 522, 0xfffc }, { 536, 0xffff }, + { 552, 0xecfd }, { 564, 0xdcfe }, { 576, 0xffef }, { 591, 0xfcff }, + { 605, 0xffff }, { 621, 0xefff }, { 636, 0xffff }, { 652, 0xfeff }, + { 667, 0xffff }, { 683, 0xffef }, { 698, 0xfd6f }, { 711, 0xffff }, + /* 0xcc00 */ + { 727, 0xcfff }, { 741, 0xcfee }, { 753, 0xac79 }, { 762, 0x84fe }, + { 771, 0xeecf }, { 783, 0xfc4f }, { 794, 0xfeae }, { 806, 0xffde }, + { 820, 0xffff }, { 836, 0xecff }, { 849, 0xc4fe }, { 859, 0xeecf }, + { 871, 0xfd4f }, { 883, 0xffee }, { 897, 0xefef }, { 911, 0xfffe }, + /* 0xcd00 */ + { 926, 0xecfd }, { 938, 0xd4fe }, { 949, 0xeeef }, { 962, 0xfdff }, + { 977, 0xffff }, { 993, 0xefff }, { 1008, 0x4fee }, { 1019, 0xfefd }, + { 1033, 0xfeff }, { 1048, 0xeecf }, { 1060, 0xfd4f }, { 1072, 0xfffe }, + { 1087, 0xefef }, { 1101, 0xfffe }, { 1116, 0xeeff }, { 1130, 0xd4fe }, + /* 0xce00 */ + { 1141, 0xeeef }, { 1154, 0xfdef }, { 1168, 0xfeec }, { 1180, 0xffd4 }, + { 1192, 0xffff }, { 1208, 0x6cff }, { 1220, 0xd4fc }, { 1230, 0xeecf }, + { 1242, 0xfd4f }, { 1254, 0xfeec }, { 1266, 0xcfc4 }, { 1275, 0xffff }, + { 1291, 0xfffd }, { 1306, 0xffff }, { 1322, 0xe6cf }, { 1333, 0xfc4f }, + /* 0xcf00 */ + { 1344, 0xfeec }, { 1356, 0xefd4 }, { 1367, 0x4fee }, { 1378, 0xfefc }, + { 1391, 0xffff }, { 1407, 0xeecf }, { 1419, 0xfd4f }, { 1431, 0xfeec }, + { 1443, 0xefde }, { 1456, 0xffff }, { 1472, 0xfefd }, { 1486, 0xfffe }, + { 1501, 0xffef }, { 1516, 0xffff }, { 1532, 0xfeec }, { 1544, 0xefd4 }, + /* 0xd000 */ + { 1555, 0xffee }, { 1569, 0xfefd }, { 1583, 0xdfff }, { 1598, 0xeecf }, + { 1610, 0xfd4f }, { 1622, 0xfeee }, { 1635, 0xcffe }, { 1648, 0xcfee }, + { 1660, 0xfffd }, { 1675, 0xffff }, { 1691, 0xeecf }, { 1703, 0xfd4f }, + { 1715, 0xfcec }, { 1726, 0xcfc4 }, { 1735, 0x4fee }, { 1746, 0xfefc }, + /* 0xd100 */ + { 1759, 0xdfff }, { 1774, 0xffff }, { 1790, 0xffff }, { 1806, 0xfaec }, + { 1817, 0xcfc4 }, { 1826, 0x4fee }, { 1837, 0xeefd }, { 1850, 0xefff }, + { 1865, 0xfeef }, { 1879, 0xffff }, { 1895, 0xfeec }, { 1907, 0xebd4 }, + { 1917, 0xfffe }, { 1932, 0xfeff }, { 1947, 0xffff }, { 1963, 0xfeef }, + /* 0xd200 */ + { 1977, 0xfd7f }, { 1991, 0xfffe }, { 2006, 0xcfff }, { 2020, 0x4fee }, + { 2031, 0xfefd }, { 2045, 0xefff }, { 2060, 0xffef }, { 2075, 0xffff }, + { 2091, 0xfeec }, { 2103, 0xefdc }, { 2115, 0xefee }, { 2128, 0x6cfd }, + { 2139, 0xf4fa }, { 2150, 0xeeef }, { 2163, 0xffcf }, { 2177, 0xfeec }, + /* 0xd300 */ + { 2189, 0x8fd4 }, { 2198, 0x4fae }, { 2208, 0xecdc }, { 2218, 0xc4fe }, + { 2228, 0xffcf }, { 2242, 0xffff }, { 2258, 0xffff }, { 2274, 0xcfff }, + { 2288, 0x4fee }, { 2299, 0xecfc }, { 2310, 0xd4fe }, { 2321, 0xeeef }, + { 2334, 0xfccf }, { 2346, 0xfefe }, { 2360, 0xcff5 }, { 2372, 0x4fee }, + /* 0xd400 */ + { 2383, 0xfefd }, { 2397, 0xdfff }, { 2412, 0xffff }, { 2428, 0xffff }, + { 2444, 0xffee }, { 2458, 0xefff }, { 2473, 0x5fee }, { 2485, 0x6cff }, + { 2497, 0xd4fa }, { 2507, 0xffef }, { 2522, 0xfdff }, { 2537, 0xffff }, + { 2553, 0xefff }, { 2568, 0x6fee }, { 2580, 0xeeff }, { 2594, 0xd6fe }, + /* 0xd500 */ + { 2606, 0xeeef }, { 2619, 0xff4f }, { 2632, 0xffff }, { 2648, 0xcfff }, + { 2662, 0x4fee }, { 2673, 0xecfd }, { 2685, 0xd4de }, { 2695, 0xeecf }, + { 2707, 0xfc4f }, { 2718, 0xfffe }, { 2733, 0xffdf }, { 2748, 0xffff }, + { 2764, 0xecff }, { 2777, 0xd4fa }, { 2787, 0xeecf }, { 2799, 0xfd4f }, + /* 0xd600 */ + { 2811, 0xfeec }, { 2823, 0xefc4 }, { 2833, 0xdfee }, { 2846, 0xecff }, + { 2859, 0xd4de }, { 2869, 0xeecd }, { 2880, 0xfd7f }, { 2894, 0xffec }, + { 2907, 0xcfd7 }, { 2919, 0x5fee }, { 2931, 0xeefd }, { 2944, 0xf5fe }, + { 2957, 0xeecf }, { 2969, 0xfd6d }, { 2981, 0xfeee }, { 2994, 0xcfde }, + /* 0xd700 */ + { 3006, 0xffee }, { 3020, 0xecfd }, { 3032, 0xd4fe }, { 3043, 0xeecf }, + { 3055, 0xfd6f }, { 3068, 0xfc2c }, { 3077, 0xedd4 }, { 3087, 0xcfee }, + { 3099, 0xecfd }, { 3111, 0xd4fe }, { 3122, 0x000f }, +}; + +static int +uhc_2_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (n >= 2) { + if (wc >= 0xc800 && wc < 0xd7b0) { + const Summary16 *summary = &uhc_2_uni2indx_pagec8[(wc>>4)-0xc80]; + unsigned short used = summary->used; + unsigned int i = wc & 0x0f; + if (used & ((unsigned short) 1 << i)) { + unsigned short c; + /* Keep in `used' only the bits 0..i-1. */ + used &= ((unsigned short) 1 << i) - 1; + /* Add `summary->indx' and the number of bits set in `used'. */ + used = (used & 0x5555) + ((used & 0xaaaa) >> 1); + used = (used & 0x3333) + ((used & 0xcccc) >> 2); + used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); + used = (used & 0x00ff) + (used >> 8); + used += summary->indx; + c = uhc_2_2charset_main[used>>6] + uhc_2_2charset[used]; + r[0] = (c >> 8); r[1] = (c & 0xff); + return 2; + } + } + return RET_ILUNI; + } + return RET_TOOSMALL; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/utf16.h b/graf2d/win32gdk/gdk/src/iconv/utf16.h new file mode 100644 index 00000000000..99b5e2c2d85 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/utf16.h @@ -0,0 +1,113 @@ +/* + * Copyright (C) 1999-2001, 2008 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * UTF-16 + */ + +/* Specification: RFC 2781 */ + +/* Here we accept FFFE/FEFF marks as endianness indicators everywhere + in the stream, not just at the beginning. (This is contrary to what + RFC 2781 section 3.2 specifies, but it allows concatenation of byte + sequences to work flawlessly, while disagreeing with the RFC behaviour + only for strings containing U+FEFF characters, which is quite rare.) + The default is big-endian. */ +/* The state is 0 if big-endian, 1 if little-endian. */ +static int +utf16_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + state_t state = conv->istate; + int count = 0; + for (; n >= 2;) { + ucs4_t wc = (state ? s[0] + (s[1] << 8) : (s[0] << 8) + s[1]); + if (wc == 0xfeff) { + } else if (wc == 0xfffe) { + state ^= 1; + } else if (wc >= 0xd800 && wc < 0xdc00) { + if (n >= 4) { + ucs4_t wc2 = (state ? s[2] + (s[3] << 8) : (s[2] << 8) + s[3]); + if (!(wc2 >= 0xdc00 && wc2 < 0xe000)) + goto ilseq; + *pwc = 0x10000 + ((wc - 0xd800) << 10) + (wc2 - 0xdc00); + conv->istate = state; + return count+4; + } else + break; + } else if (wc >= 0xdc00 && wc < 0xe000) { + goto ilseq; + } else { + *pwc = wc; + conv->istate = state; + return count+2; + } + s += 2; n -= 2; count += 2; + } + conv->istate = state; + return RET_TOOFEW(count); + +ilseq: + conv->istate = state; + return RET_SHIFT_ILSEQ(count); +} + +/* We output UTF-16 in big-endian order, with byte-order mark. + See RFC 2781 section 3.3 for a rationale: Some document formats + mandate a BOM; the file concatenation issue is not so severe as + long as the above utf16_mbtowc function is used. */ +/* The state is 0 at the beginning, 1 after the BOM has been written. */ +static int +utf16_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (wc != 0xfffe && !(wc >= 0xd800 && wc < 0xe000)) { + int count = 0; + if (!conv->ostate) { + if (n >= 2) { + r[0] = 0xFE; + r[1] = 0xFF; + r += 2; n -= 2; count += 2; + } else + return RET_TOOSMALL; + } + if (wc < 0x10000) { + if (n >= 2) { + r[0] = (unsigned char) (wc >> 8); + r[1] = (unsigned char) wc; + conv->ostate = 1; + return count+2; + } else + return RET_TOOSMALL; + } + else if (wc < 0x110000) { + if (n >= 4) { + ucs4_t wc1 = 0xd800 + ((wc - 0x10000) >> 10); + ucs4_t wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff); + r[0] = (unsigned char) (wc1 >> 8); + r[1] = (unsigned char) wc1; + r[2] = (unsigned char) (wc2 >> 8); + r[3] = (unsigned char) wc2; + conv->ostate = 1; + return count+4; + } else + return RET_TOOSMALL; + } + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/utf16be.h b/graf2d/win32gdk/gdk/src/iconv/utf16be.h new file mode 100644 index 00000000000..a6d90ffb916 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/utf16be.h @@ -0,0 +1,80 @@ +/* + * Copyright (C) 1999-2001, 2008 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * UTF-16BE + */ + +/* Specification: RFC 2781 */ + +static int +utf16be_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + int count = 0; + if (n >= 2) { + ucs4_t wc = (s[0] << 8) + s[1]; + if (wc >= 0xd800 && wc < 0xdc00) { + if (n >= 4) { + ucs4_t wc2 = (s[2] << 8) + s[3]; + if (!(wc2 >= 0xdc00 && wc2 < 0xe000)) + goto ilseq; + *pwc = 0x10000 + ((wc - 0xd800) << 10) + (wc2 - 0xdc00); + return count+4; + } + } else if (wc >= 0xdc00 && wc < 0xe000) { + goto ilseq; + } else { + *pwc = wc; + return count+2; + } + } + return RET_TOOFEW(count); + +ilseq: + return RET_SHIFT_ILSEQ(count); +} + +static int +utf16be_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (!(wc >= 0xd800 && wc < 0xe000)) { + if (wc < 0x10000) { + if (n >= 2) { + r[0] = (unsigned char) (wc >> 8); + r[1] = (unsigned char) wc; + return 2; + } else + return RET_TOOSMALL; + } + else if (wc < 0x110000) { + if (n >= 4) { + ucs4_t wc1 = 0xd800 + ((wc - 0x10000) >> 10); + ucs4_t wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff); + r[0] = (unsigned char) (wc1 >> 8); + r[1] = (unsigned char) wc1; + r[2] = (unsigned char) (wc2 >> 8); + r[3] = (unsigned char) wc2; + return 4; + } else + return RET_TOOSMALL; + } + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/utf16le.h b/graf2d/win32gdk/gdk/src/iconv/utf16le.h new file mode 100644 index 00000000000..5bb2b026966 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/utf16le.h @@ -0,0 +1,80 @@ +/* + * Copyright (C) 1999-2001, 2008 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * UTF-16LE + */ + +/* Specification: RFC 2781 */ + +static int +utf16le_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + int count = 0; + if (n >= 2) { + ucs4_t wc = s[0] + (s[1] << 8); + if (wc >= 0xd800 && wc < 0xdc00) { + if (n >= 4) { + ucs4_t wc2 = s[2] + (s[3] << 8); + if (!(wc2 >= 0xdc00 && wc2 < 0xe000)) + goto ilseq; + *pwc = 0x10000 + ((wc - 0xd800) << 10) + (wc2 - 0xdc00); + return count+4; + } + } else if (wc >= 0xdc00 && wc < 0xe000) { + goto ilseq; + } else { + *pwc = wc; + return count+2; + } + } + return RET_TOOFEW(count); + +ilseq: + return RET_SHIFT_ILSEQ(count); +} + +static int +utf16le_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (!(wc >= 0xd800 && wc < 0xe000)) { + if (wc < 0x10000) { + if (n >= 2) { + r[0] = (unsigned char) wc; + r[1] = (unsigned char) (wc >> 8); + return 2; + } else + return RET_TOOSMALL; + } + else if (wc < 0x110000) { + if (n >= 4) { + ucs4_t wc1 = 0xd800 + ((wc - 0x10000) >> 10); + ucs4_t wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff); + r[0] = (unsigned char) wc1; + r[1] = (unsigned char) (wc1 >> 8); + r[2] = (unsigned char) wc2; + r[3] = (unsigned char) (wc2 >> 8); + return 4; + } else + return RET_TOOSMALL; + } + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/utf32.h b/graf2d/win32gdk/gdk/src/iconv/utf32.h new file mode 100644 index 00000000000..bc579ae0b8b --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/utf32.h @@ -0,0 +1,93 @@ +/* + * Copyright (C) 1999-2001, 2008 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * UTF-32 + */ + +/* Specification: Unicode 3.1 Standard Annex #19 */ + +/* Here we accept FFFE0000/0000FEFF marks as endianness indicators + everywhere in the stream, not just at the beginning. (This is contrary + to what #19 D36c specifies, but it allows concatenation of byte + sequences to work flawlessly, while disagreeing with #19 behaviour + only for strings containing U+FEFF characters, which is quite rare.) + The default is big-endian. */ +/* The state is 0 if big-endian, 1 if little-endian. */ +static int +utf32_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + state_t state = conv->istate; + int count = 0; + for (; n >= 4;) { + ucs4_t wc = (state + ? s[0] + (s[1] << 8) + (s[2] << 16) + (s[3] << 24) + : (s[0] << 24) + (s[1] << 16) + (s[2] << 8) + s[3]); + count += 4; + if (wc == 0x0000feff) { + } else if (wc == 0xfffe0000u) { + state ^= 1; + } else { + if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) { + *pwc = wc; + conv->istate = state; + return count; + } else { + conv->istate = state; + return RET_SHIFT_ILSEQ(count); + } + } + s += 4; n -= 4; + } + conv->istate = state; + return RET_TOOFEW(count); +} + +/* We output UTF-32 in big-endian order, with byte-order mark. */ +/* The state is 0 at the beginning, 1 after the BOM has been written. */ +static int +utf32_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) { + int count = 0; + if (!conv->ostate) { + if (n >= 4) { + r[0] = 0x00; + r[1] = 0x00; + r[2] = 0xFE; + r[3] = 0xFF; + r += 4; n -= 4; count += 4; + } else + return RET_TOOSMALL; + } + if (wc < 0x110000) { + if (n >= 4) { + r[0] = 0; + r[1] = (unsigned char) (wc >> 16); + r[2] = (unsigned char) (wc >> 8); + r[3] = (unsigned char) wc; + conv->ostate = 1; + return count+4; + } else + return RET_TOOSMALL; + } + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/utf32be.h b/graf2d/win32gdk/gdk/src/iconv/utf32be.h new file mode 100644 index 00000000000..50811298d63 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/utf32be.h @@ -0,0 +1,55 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * UTF-32BE + */ + +/* Specification: Unicode 3.1 Standard Annex #19 */ + +static int +utf32be_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + if (n >= 4) { + ucs4_t wc = (s[0] << 24) + (s[1] << 16) + (s[2] << 8) + s[3]; + if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) { + *pwc = wc; + return 4; + } else + return RET_ILSEQ; + } + return RET_TOOFEW(0); +} + +static int +utf32be_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) { + if (n >= 4) { + r[0] = 0; + r[1] = (unsigned char) (wc >> 16); + r[2] = (unsigned char) (wc >> 8); + r[3] = (unsigned char) wc; + return 4; + } else + return RET_TOOSMALL; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/utf32le.h b/graf2d/win32gdk/gdk/src/iconv/utf32le.h new file mode 100644 index 00000000000..9d3699bc98d --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/utf32le.h @@ -0,0 +1,55 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * UTF-32LE + */ + +/* Specification: Unicode 3.1 Standard Annex #19 */ + +static int +utf32le_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + if (n >= 4) { + ucs4_t wc = s[0] + (s[1] << 8) + (s[2] << 16) + (s[3] << 24); + if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) { + *pwc = wc; + return 4; + } else + return RET_ILSEQ; + } + return RET_TOOFEW(0); +} + +static int +utf32le_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) { + if (n >= 4) { + r[0] = (unsigned char) wc; + r[1] = (unsigned char) (wc >> 8); + r[2] = (unsigned char) (wc >> 16); + r[3] = 0; + return 4; + } else + return RET_TOOSMALL; + } + return RET_ILUNI; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/utf7.h b/graf2d/win32gdk/gdk/src/iconv/utf7.h new file mode 100644 index 00000000000..888bfb4d650 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/utf7.h @@ -0,0 +1,355 @@ +/* + * Copyright (C) 1999-2001, 2008 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * UTF-7 + */ + +/* Specification: RFC 2152 (and old RFC 1641, RFC 1642) */ +/* The original Base64 encoding is defined in RFC 2045. */ + +/* Set of direct characters: + * A-Z a-z 0-9 ' ( ) , - . / : ? space tab lf cr + */ +static const unsigned char direct_tab[128/8] = { + 0x00, 0x26, 0x00, 0x00, 0x81, 0xf3, 0xff, 0x87, + 0xfe, 0xff, 0xff, 0x07, 0xfe, 0xff, 0xff, 0x07, +}; +#define isdirect(ch) ((ch) < 128 && ((direct_tab[(ch)>>3] >> (ch & 7)) & 1)) + +/* Set of direct and optional direct characters: + * A-Z a-z 0-9 ' ( ) , - . / : ? space tab lf cr + * ! " # $ % & * ; < = > @ [ ] ^ _ ` { | } + */ +static const unsigned char xdirect_tab[128/8] = { + 0x00, 0x26, 0x00, 0x00, 0xff, 0xf7, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0x3f, +}; +#define isxdirect(ch) ((ch) < 128 && ((xdirect_tab[(ch)>>3] >> (ch & 7)) & 1)) + +/* Set of base64 characters, extended: + * A-Z a-z 0-9 + / - + */ +static const unsigned char xbase64_tab[128/8] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xff, 0x03, + 0xfe, 0xff, 0xff, 0x07, 0xfe, 0xff, 0xff, 0x07, +}; +#define isxbase64(ch) ((ch) < 128 && ((xbase64_tab[(ch)>>3] >> (ch & 7)) & 1)) + +/* + * The state is structured as follows: + * bit 1..0: shift + * bit 7..2: data + * Precise meaning: + * shift data + * 0 0 not inside base64 encoding + * 1 0 inside base64, no pending bits + * 2 XXXX00 inside base64, 4 bits remain from 2nd byte + * 3 XX0000 inside base64, 2 bits remain from 3rd byte + */ + +static int +utf7_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + state_t state = conv->istate; + int count = 0; /* number of input bytes already read */ + if (state & 3) + goto active; + else + goto inactive; + +inactive: + { + /* Here (state & 3) == 0 */ + if (n < count+1) + goto none; + { + unsigned char c = *s; + if (isxdirect(c)) { + *pwc = (ucs4_t) c; + conv->istate = state; + return count+1; + } + if (c == '+') { + if (n < count+2) + goto none; + if (s[1] == '-') { + *pwc = (ucs4_t) '+'; + conv->istate = state; + return count+2; + } + s++; count++; + state = 1; + goto active; + } + goto ilseq; + } + } + +active: + { + /* base64 encoding active */ + unsigned int wc = 0; + state_t base64state = state; + unsigned int kmax = 2; /* number of payload bytes to read */ + unsigned int k = 0; /* number of payload bytes already read */ + unsigned int base64count = 0; /* number of base64 bytes already read */ + for (;;) { + unsigned char c = *s; + unsigned int i; + if (c >= 'A' && c <= 'Z') + i = c-'A'; + else if (c >= 'a' && c <= 'z') + i = c-'a'+26; + else if (c >= '0' && c <= '9') + i = c-'0'+52; + else if (c == '+') + i = 62; + else if (c == '/') + i = 63; + else { + /* c terminates base64 encoding */ + if (base64state & -4) + goto ilseq; /* data must be 0, otherwise illegal */ + if (base64count) + goto ilseq; /* partial UTF-16 characters are invalid */ + if (c == '-') { + s++; count++; + } + state = 0; + goto inactive; + } + s++; base64count++; + /* read 6 bits: 0 <= i < 64 */ + switch (base64state & 3) { + case 1: /* inside base64, no pending bits */ + base64state = (i << 2) | 0; break; + case 0: /* inside base64, 6 bits remain from 1st byte */ + wc = (wc << 8) | (base64state & -4) | (i >> 4); k++; + base64state = ((i & 15) << 4) | 2; break; + case 2: /* inside base64, 4 bits remain from 2nd byte */ + wc = (wc << 8) | (base64state & -4) | (i >> 2); k++; + base64state = ((i & 3) << 6) | 3; break; + case 3: /* inside base64, 2 bits remain from 3rd byte */ + wc = (wc << 8) | (base64state & -4) | i; k++; + base64state = 1; break; + } + if (k == kmax) { + /* UTF-16: When we see a High Surrogate, we must also decode + the following Low Surrogate. */ + if (kmax == 2 && (wc >= 0xd800 && wc < 0xdc00)) + kmax = 4; + else + break; + } + if (n < count+base64count+1) + goto none; + } + /* Here k = kmax > 0, hence base64count > 0. */ + if ((base64state & 3) == 0) abort(); + if (kmax == 4) { + ucs4_t wc1 = wc >> 16; + ucs4_t wc2 = wc & 0xffff; + if (!(wc1 >= 0xd800 && wc1 < 0xdc00)) abort(); + if (!(wc2 >= 0xdc00 && wc2 < 0xe000)) goto ilseq; + *pwc = 0x10000 + ((wc1 - 0xd800) << 10) + (wc2 - 0xdc00); + } else { + *pwc = wc; + } + conv->istate = base64state; + return count+base64count; + } + +none: + conv->istate = state; + return RET_TOOFEW(count); + +ilseq: + conv->istate = state; + return RET_SHIFT_ILSEQ(count); +} + +/* + * The state is structured as follows: + * bit 1..0: shift + * bit 7..2: data + * Precise meaning: + * shift data + * 0 0 not inside base64 encoding + * 1 0 inside base64, no pending bits + * 2 XX00 inside base64, 2 bits known for 2nd byte + * 3 XXXX inside base64, 4 bits known for 3rd byte + */ + +/* Define this to 1 if you want the so-called "optional direct" characters + ! " # $ % & * ; < = > @ [ ] ^ _ ` { | } + to be encoded. Define to 0 if you want them to be passed straight through, + like the so-called "direct" characters. + We set this to 1 because it's safer. + */ +#define UTF7_ENCODE_OPTIONAL_CHARS 1 + +static int +utf7_wctomb (conv_t conv, unsigned char *r, ucs4_t iwc, int n) +{ + state_t state = conv->ostate; + unsigned int wc = iwc; + int count = 0; + if (state & 3) + goto active; + +/*inactive:*/ + { + if (UTF7_ENCODE_OPTIONAL_CHARS ? isdirect(wc) : isxdirect(wc)) { + r[0] = (unsigned char) wc; + /*conv->ostate = state;*/ + return 1; + } else { + *r++ = '+'; + if (wc == '+') { + if (n < 2) + return RET_TOOSMALL; + *r = '-'; + /*conv->ostate = state;*/ + return 2; + } + count = 1; + state = 1; + goto active; + } + } + +active: + { + /* base64 encoding active */ + if (UTF7_ENCODE_OPTIONAL_CHARS ? isdirect(wc) : isxdirect(wc)) { + /* deactivate base64 encoding */ + count += ((state & 3) >= 2 ? 1 : 0) + (isxbase64(wc) ? 1 : 0) + 1; + if (n < count) + return RET_TOOSMALL; + if ((state & 3) >= 2) { + unsigned int i = state & -4; + unsigned char c; + if (i < 26) + c = i+'A'; + else if (i < 52) + c = i-26+'a'; + else if (i < 62) + c = i-52+'0'; + else if (i == 62) + c = '+'; + else if (i == 63) + c = '/'; + else + abort(); + *r++ = c; + } + if (isxbase64(wc)) + *r++ = '-'; + state = 0; + *r++ = (unsigned char) wc; + conv->ostate = state; + return count; + } else { + unsigned int k; /* number of payload bytes to write */ + if (wc < 0x10000) { + k = 2; + count += ((state & 3) >= 2 ? 3 : 2); + } else if (wc < 0x110000) { + unsigned int wc1 = 0xd800 + ((wc - 0x10000) >> 10); + unsigned int wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff); + wc = (wc1 << 16) | wc2; + k = 4; + count += ((state & 3) >= 3 ? 6 : 5); + } else + return RET_ILUNI; + if (n < count) + return RET_TOOSMALL; + for (;;) { + unsigned int i; + unsigned char c; + switch (state & 3) { + case 0: /* inside base64, 6 bits known for 4th byte */ + c = (state & -4) >> 2; state = 1; break; + case 1: /* inside base64, no pending bits */ + i = (wc >> (8 * --k)) & 0xff; + c = i >> 2; state = ((i & 3) << 4) | 2; break; + case 2: /* inside base64, 2 bits known for 2nd byte */ + i = (wc >> (8 * --k)) & 0xff; + c = (state & -4) | (i >> 4); state = ((i & 15) << 2) | 3; break; + case 3: /* inside base64, 4 bits known for 3rd byte */ + i = (wc >> (8 * --k)) & 0xff; + c = (state & -4) | (i >> 6); state = ((i & 63) << 2) | 0; break; + default: abort(); /* stupid gcc */ + } + if (c < 26) + c = c+'A'; + else if (c < 52) + c = c-26+'a'; + else if (c < 62) + c = c-52+'0'; + else if (c == 62) + c = '+'; + else if (c == 63) + c = '/'; + else + abort(); + *r++ = c; + if ((state & 3) && (k == 0)) + break; + } + conv->ostate = state; + return count; + } + } +} + +static int +utf7_reset (conv_t conv, unsigned char *r, int n) +{ + state_t state = conv->ostate; + if (state & 3) { + /* deactivate base64 encoding */ + unsigned int count = ((state & 3) >= 2 ? 1 : 0) + 1; + if (n < count) + return RET_TOOSMALL; + if ((state & 3) >= 2) { + unsigned int i = state & -4; + unsigned char c; + if (i < 26) + c = i+'A'; + else if (i < 52) + c = i-26+'a'; + else if (i < 62) + c = i-52+'0'; + else if (i == 62) + c = '+'; + else if (i == 63) + c = '/'; + else + abort(); + *r++ = c; + } + *r++ = '-'; + /* conv->ostate = 0; will be done by the caller */ + return count; + } else + return 0; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/utf8.h b/graf2d/win32gdk/gdk/src/iconv/utf8.h new file mode 100644 index 00000000000..9d07219c8ad --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/utf8.h @@ -0,0 +1,128 @@ +/* + * Copyright (C) 1999-2001, 2004 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * UTF-8 + */ + +/* Specification: RFC 3629 */ + +static int +utf8_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = s[0]; + + if (c < 0x80) { + *pwc = c; + return 1; + } else if (c < 0xc2) { + return RET_ILSEQ; + } else if (c < 0xe0) { + if (n < 2) + return RET_TOOFEW(0); + if (!((s[1] ^ 0x80) < 0x40)) + return RET_ILSEQ; + *pwc = ((ucs4_t) (c & 0x1f) << 6) + | (ucs4_t) (s[1] ^ 0x80); + return 2; + } else if (c < 0xf0) { + if (n < 3) + return RET_TOOFEW(0); + if (!((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 + && (c >= 0xe1 || s[1] >= 0xa0))) + return RET_ILSEQ; + *pwc = ((ucs4_t) (c & 0x0f) << 12) + | ((ucs4_t) (s[1] ^ 0x80) << 6) + | (ucs4_t) (s[2] ^ 0x80); + return 3; + } else if (c < 0xf8 && sizeof(ucs4_t)*8 >= 32) { + if (n < 4) + return RET_TOOFEW(0); + if (!((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 + && (s[3] ^ 0x80) < 0x40 + && (c >= 0xf1 || s[1] >= 0x90))) + return RET_ILSEQ; + *pwc = ((ucs4_t) (c & 0x07) << 18) + | ((ucs4_t) (s[1] ^ 0x80) << 12) + | ((ucs4_t) (s[2] ^ 0x80) << 6) + | (ucs4_t) (s[3] ^ 0x80); + return 4; + } else if (c < 0xfc && sizeof(ucs4_t)*8 >= 32) { + if (n < 5) + return RET_TOOFEW(0); + if (!((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 + && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40 + && (c >= 0xf9 || s[1] >= 0x88))) + return RET_ILSEQ; + *pwc = ((ucs4_t) (c & 0x03) << 24) + | ((ucs4_t) (s[1] ^ 0x80) << 18) + | ((ucs4_t) (s[2] ^ 0x80) << 12) + | ((ucs4_t) (s[3] ^ 0x80) << 6) + | (ucs4_t) (s[4] ^ 0x80); + return 5; + } else if (c < 0xfe && sizeof(ucs4_t)*8 >= 32) { + if (n < 6) + return RET_TOOFEW(0); + if (!((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 + && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40 + && (s[5] ^ 0x80) < 0x40 + && (c >= 0xfd || s[1] >= 0x84))) + return RET_ILSEQ; + *pwc = ((ucs4_t) (c & 0x01) << 30) + | ((ucs4_t) (s[1] ^ 0x80) << 24) + | ((ucs4_t) (s[2] ^ 0x80) << 18) + | ((ucs4_t) (s[3] ^ 0x80) << 12) + | ((ucs4_t) (s[4] ^ 0x80) << 6) + | (ucs4_t) (s[5] ^ 0x80); + return 6; + } else + return RET_ILSEQ; +} + +static int +utf8_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) /* n == 0 is acceptable */ +{ + int count; + if (wc < 0x80) + count = 1; + else if (wc < 0x800) + count = 2; + else if (wc < 0x10000) + count = 3; + else if (wc < 0x200000) + count = 4; + else if (wc < 0x4000000) + count = 5; + else if (wc <= 0x7fffffff) + count = 6; + else + return RET_ILUNI; + if (n < count) + return RET_TOOSMALL; + switch (count) { /* note: code falls through cases! */ + case 6: r[5] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x4000000; + case 5: r[4] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x200000; + case 4: r[3] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x10000; + case 3: r[2] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x800; + case 2: r[1] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0xc0; + case 1: r[0] = wc; + } + return count; +} diff --git a/graf2d/win32gdk/gdk/src/iconv/vietcomb.h b/graf2d/win32gdk/gdk/src/iconv/vietcomb.h new file mode 100644 index 00000000000..34892cd440b --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/vietcomb.h @@ -0,0 +1,467 @@ +/* + * Copyright (C) 2001, 2004 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* Combining characters used in Vietnamese encodings CP1258, TCVN. */ + +#ifndef _VIETCOMB_H +#define _VIETCOMB_H + +/* Relevant combining characters: + 0x0300, 0x0301, 0x0303, 0x0309, 0x0323. */ + +/* Composition tables for each of the relevant combining characters. */ +static const struct { unsigned short base; unsigned short composed; } viet_comp_table_data[] = { +#define viet_comp_table0300_idx 0 +#define viet_comp_table0300_len 31 + { 0x0041, 0x00C0 }, + { 0x0045, 0x00C8 }, + { 0x0049, 0x00CC }, + { 0x004E, 0x01F8 }, + { 0x004F, 0x00D2 }, + { 0x0055, 0x00D9 }, + { 0x0057, 0x1E80 }, + { 0x0059, 0x1EF2 }, + { 0x0061, 0x00E0 }, + { 0x0065, 0x00E8 }, + { 0x0069, 0x00EC }, + { 0x006E, 0x01F9 }, + { 0x006F, 0x00F2 }, + { 0x0075, 0x00F9 }, + { 0x0077, 0x1E81 }, + { 0x0079, 0x1EF3 }, + { 0x00A8, 0x1FED }, + { 0x00C2, 0x1EA6 }, + { 0x00CA, 0x1EC0 }, + { 0x00D4, 0x1ED2 }, + { 0x00DC, 0x01DB }, + { 0x00E2, 0x1EA7 }, + { 0x00EA, 0x1EC1 }, + { 0x00F4, 0x1ED3 }, + { 0x00FC, 0x01DC }, + { 0x0102, 0x1EB0 }, + { 0x0103, 0x1EB1 }, +/*{ 0x0112, 0x1E14 },*/ +/*{ 0x0113, 0x1E15 },*/ +/*{ 0x014C, 0x1E50 },*/ +/*{ 0x014D, 0x1E51 },*/ + { 0x01A0, 0x1EDC }, + { 0x01A1, 0x1EDD }, + { 0x01AF, 0x1EEA }, + { 0x01B0, 0x1EEB }, +#define viet_comp_table0301_idx (viet_comp_table0300_idx+viet_comp_table0300_len) +#define viet_comp_table0301_len 64 + { 0x0041, 0x00C1 }, + { 0x0043, 0x0106 }, + { 0x0045, 0x00C9 }, + { 0x0047, 0x01F4 }, + { 0x0049, 0x00CD }, + { 0x004B, 0x1E30 }, + { 0x004C, 0x0139 }, + { 0x004D, 0x1E3E }, + { 0x004E, 0x0143 }, + { 0x004F, 0x00D3 }, + { 0x0050, 0x1E54 }, + { 0x0052, 0x0154 }, + { 0x0053, 0x015A }, + { 0x0055, 0x00DA }, + { 0x0057, 0x1E82 }, + { 0x0059, 0x00DD }, + { 0x005A, 0x0179 }, + { 0x0061, 0x00E1 }, + { 0x0063, 0x0107 }, + { 0x0065, 0x00E9 }, + { 0x0067, 0x01F5 }, + { 0x0069, 0x00ED }, + { 0x006B, 0x1E31 }, + { 0x006C, 0x013A }, + { 0x006D, 0x1E3F }, + { 0x006E, 0x0144 }, + { 0x006F, 0x00F3 }, + { 0x0070, 0x1E55 }, + { 0x0072, 0x0155 }, + { 0x0073, 0x015B }, + { 0x0075, 0x00FA }, + { 0x0077, 0x1E83 }, + { 0x0079, 0x00FD }, + { 0x007A, 0x017A }, + { 0x00A5, 0x0385 }, + { 0x00A8, 0x1FEE }, + { 0x00C2, 0x1EA4 }, + { 0x00C5, 0x01FA }, + { 0x00C6, 0x01FC }, + { 0x00C7, 0x1E08 }, + { 0x00CA, 0x1EBE }, + { 0x00CF, 0x1E2E }, + { 0x00D4, 0x1ED0 }, + { 0x00D5, 0x1E4C }, + { 0x00D8, 0x01FE }, + { 0x00DC, 0x01D7 }, + { 0x00E2, 0x1EA5 }, + { 0x00E5, 0x01FB }, + { 0x00E6, 0x01FD }, + { 0x00E7, 0x1E09 }, + { 0x00EA, 0x1EBF }, + { 0x00EF, 0x1E2F }, + { 0x00F4, 0x1ED1 }, + { 0x00F5, 0x1E4D }, + { 0x00F8, 0x01FF }, + { 0x00FC, 0x01D8 }, + { 0x0102, 0x1EAE }, + { 0x0103, 0x1EAF }, +/*{ 0x0112, 0x1E16 },*/ +/*{ 0x0113, 0x1E17 },*/ +/*{ 0x014C, 0x1E52 },*/ +/*{ 0x014D, 0x1E53 },*/ + { 0x0168, 0x1E78 }, + { 0x0169, 0x1E79 }, + { 0x01A0, 0x1EDA }, + { 0x01A1, 0x1EDB }, + { 0x01AF, 0x1EE8 }, + { 0x01B0, 0x1EE9 }, +#define viet_comp_table0303_idx (viet_comp_table0301_idx+viet_comp_table0301_len) +#define viet_comp_table0303_len 34 + { 0x0041, 0x00C3 }, + { 0x0045, 0x1EBC }, + { 0x0049, 0x0128 }, + { 0x004E, 0x00D1 }, + { 0x004F, 0x00D5 }, + { 0x0055, 0x0168 }, + { 0x0056, 0x1E7C }, + { 0x0059, 0x1EF8 }, + { 0x0061, 0x00E3 }, + { 0x0065, 0x1EBD }, + { 0x0069, 0x0129 }, + { 0x006E, 0x00F1 }, + { 0x006F, 0x00F5 }, + { 0x0075, 0x0169 }, + { 0x0076, 0x1E7D }, + { 0x0079, 0x1EF9 }, + { 0x00C2, 0x1EAA }, + { 0x00CA, 0x1EC4 }, + { 0x00D3, 0x1E4C }, + { 0x00D4, 0x1ED6 }, + { 0x00D6, 0x1E4E }, + { 0x00DA, 0x1E78 }, + { 0x00E2, 0x1EAB }, + { 0x00EA, 0x1EC5 }, + { 0x00F3, 0x1E4D }, + { 0x00F4, 0x1ED7 }, + { 0x00F6, 0x1E4F }, + { 0x00FA, 0x1E79 }, + { 0x0102, 0x1EB4 }, + { 0x0103, 0x1EB5 }, + { 0x01A0, 0x1EE0 }, + { 0x01A1, 0x1EE1 }, + { 0x01AF, 0x1EEE }, + { 0x01B0, 0x1EEF }, +#define viet_comp_table0309_idx (viet_comp_table0303_idx+viet_comp_table0303_len) +#define viet_comp_table0309_len 24 + { 0x0041, 0x1EA2 }, + { 0x0045, 0x1EBA }, + { 0x0049, 0x1EC8 }, + { 0x004F, 0x1ECE }, + { 0x0055, 0x1EE6 }, + { 0x0059, 0x1EF6 }, + { 0x0061, 0x1EA3 }, + { 0x0065, 0x1EBB }, + { 0x0069, 0x1EC9 }, + { 0x006F, 0x1ECF }, + { 0x0075, 0x1EE7 }, + { 0x0079, 0x1EF7 }, + { 0x00C2, 0x1EA8 }, + { 0x00CA, 0x1EC2 }, + { 0x00D4, 0x1ED4 }, + { 0x00E2, 0x1EA9 }, + { 0x00EA, 0x1EC3 }, + { 0x00F4, 0x1ED5 }, + { 0x0102, 0x1EB2 }, + { 0x0103, 0x1EB3 }, + { 0x01A0, 0x1EDE }, + { 0x01A1, 0x1EDF }, + { 0x01AF, 0x1EEC }, + { 0x01B0, 0x1EED }, +#define viet_comp_table0323_idx (viet_comp_table0309_idx+viet_comp_table0309_len) +#define viet_comp_table0323_len 50 + { 0x0041, 0x1EA0 }, + { 0x0042, 0x1E04 }, + { 0x0044, 0x1E0C }, + { 0x0045, 0x1EB8 }, + { 0x0048, 0x1E24 }, + { 0x0049, 0x1ECA }, + { 0x004B, 0x1E32 }, + { 0x004C, 0x1E36 }, + { 0x004D, 0x1E42 }, + { 0x004E, 0x1E46 }, + { 0x004F, 0x1ECC }, + { 0x0052, 0x1E5A }, + { 0x0053, 0x1E62 }, + { 0x0054, 0x1E6C }, + { 0x0055, 0x1EE4 }, + { 0x0056, 0x1E7E }, + { 0x0057, 0x1E88 }, + { 0x0059, 0x1EF4 }, + { 0x005A, 0x1E92 }, + { 0x0061, 0x1EA1 }, + { 0x0062, 0x1E05 }, + { 0x0064, 0x1E0D }, + { 0x0065, 0x1EB9 }, + { 0x0068, 0x1E25 }, + { 0x0069, 0x1ECB }, + { 0x006B, 0x1E33 }, + { 0x006C, 0x1E37 }, + { 0x006D, 0x1E43 }, + { 0x006E, 0x1E47 }, + { 0x006F, 0x1ECD }, + { 0x0072, 0x1E5B }, + { 0x0073, 0x1E63 }, + { 0x0074, 0x1E6D }, + { 0x0075, 0x1EE5 }, + { 0x0076, 0x1E7F }, + { 0x0077, 0x1E89 }, + { 0x0079, 0x1EF5 }, + { 0x007A, 0x1E93 }, + { 0x00C2, 0x1EAC }, + { 0x00CA, 0x1EC6 }, + { 0x00D4, 0x1ED8 }, + { 0x00E2, 0x1EAD }, + { 0x00EA, 0x1EC7 }, + { 0x00F4, 0x1ED9 }, + { 0x0102, 0x1EB6 }, + { 0x0103, 0x1EB7 }, + { 0x01A0, 0x1EE2 }, + { 0x01A1, 0x1EE3 }, + { 0x01AF, 0x1EF0 }, + { 0x01B0, 0x1EF1 }, +}; +static const struct { unsigned int len; unsigned int idx; } viet_comp_table[] = { + { viet_comp_table0300_len, viet_comp_table0300_idx }, + { viet_comp_table0301_len, viet_comp_table0301_idx }, + { viet_comp_table0303_len, viet_comp_table0303_idx }, + { viet_comp_table0309_len, viet_comp_table0309_idx }, + { viet_comp_table0323_len, viet_comp_table0323_idx }, +}; + +/* Decomposition table for the relevant Unicode characters. */ +struct viet_decomp { unsigned short composed; unsigned int base : 12; int comb1 : 4; }; +static const struct viet_decomp viet_decomp_table[] = { + { 0x00B4, 0x0020, 1 }, /* compatibility decomposition - for TCVN only */ + { 0x00C0, 0x0041, 0 }, + { 0x00C1, 0x0041, 1 }, + { 0x00C3, 0x0041, 2 }, + { 0x00C8, 0x0045, 0 }, + { 0x00C9, 0x0045, 1 }, + { 0x00CC, 0x0049, 0 }, + { 0x00CD, 0x0049, 1 }, + { 0x00D1, 0x004E, 2 }, + { 0x00D2, 0x004F, 0 }, + { 0x00D3, 0x004F, 1 }, + { 0x00D5, 0x004F, 2 }, + { 0x00D9, 0x0055, 0 }, + { 0x00DA, 0x0055, 1 }, + { 0x00DD, 0x0059, 1 }, + { 0x00E0, 0x0061, 0 }, + { 0x00E1, 0x0061, 1 }, + { 0x00E3, 0x0061, 2 }, + { 0x00E8, 0x0065, 0 }, + { 0x00E9, 0x0065, 1 }, + { 0x00EC, 0x0069, 0 }, + { 0x00ED, 0x0069, 1 }, + { 0x00F1, 0x006E, 2 }, + { 0x00F2, 0x006F, 0 }, + { 0x00F3, 0x006F, 1 }, + { 0x00F5, 0x006F, 2 }, + { 0x00F9, 0x0075, 0 }, + { 0x00FA, 0x0075, 1 }, + { 0x00FD, 0x0079, 1 }, + { 0x0106, 0x0043, 1 }, + { 0x0107, 0x0063, 1 }, + { 0x0128, 0x0049, 2 }, + { 0x0129, 0x0069, 2 }, + { 0x0139, 0x004C, 1 }, + { 0x013A, 0x006C, 1 }, + { 0x0143, 0x004E, 1 }, + { 0x0144, 0x006E, 1 }, + { 0x0154, 0x0052, 1 }, + { 0x0155, 0x0072, 1 }, + { 0x015A, 0x0053, 1 }, + { 0x015B, 0x0073, 1 }, + { 0x0168, 0x0055, 2 }, + { 0x0169, 0x0075, 2 }, + { 0x0179, 0x005A, 1 }, + { 0x017A, 0x007A, 1 }, + { 0x01D7, 0x00DC, 1 }, + { 0x01D8, 0x00FC, 1 }, + { 0x01DB, 0x00DC, 0 }, + { 0x01DC, 0x00FC, 0 }, + { 0x01F4, 0x0047, 1 }, + { 0x01F5, 0x0067, 1 }, + { 0x01F8, 0x004E, 0 }, + { 0x01F9, 0x006E, 0 }, + { 0x01FA, 0x00C5, 1 }, + { 0x01FB, 0x00E5, 1 }, + { 0x01FC, 0x00C6, 1 }, + { 0x01FD, 0x00E6, 1 }, + { 0x01FE, 0x00D8, 1 }, + { 0x01FF, 0x00F8, 1 }, + { 0x02DC, 0x0020, 2 }, /* compatibility decomposition - for TCVN only */ + { 0x0385, 0x00A5, 1 }, + { 0x1E04, 0x0042, 4 }, + { 0x1E05, 0x0062, 4 }, + { 0x1E08, 0x00C7, 1 }, + { 0x1E09, 0x00E7, 1 }, + { 0x1E0C, 0x0044, 4 }, + { 0x1E0D, 0x0064, 4 }, + { 0x1E24, 0x0048, 4 }, + { 0x1E25, 0x0068, 4 }, + { 0x1E2E, 0x00CF, 1 }, + { 0x1E2F, 0x00EF, 1 }, + { 0x1E30, 0x004B, 1 }, + { 0x1E31, 0x006B, 1 }, + { 0x1E32, 0x004B, 4 }, + { 0x1E33, 0x006B, 4 }, + { 0x1E36, 0x004C, 4 }, + { 0x1E37, 0x006C, 4 }, + { 0x1E3E, 0x004D, 1 }, + { 0x1E3F, 0x006D, 1 }, + { 0x1E42, 0x004D, 4 }, + { 0x1E43, 0x006D, 4 }, + { 0x1E46, 0x004E, 4 }, + { 0x1E47, 0x006E, 4 }, + { 0x1E4C, 0x00D3, 2 }, /*{ 0x1E4C, 0x00D5, 1 },*/ /*{ 0x1E4C, 0x004F, 1, 2 },*/ + { 0x1E4D, 0x00F3, 2 }, /*{ 0x1E4D, 0x00F5, 1 },*/ /*{ 0x1E4D, 0x006F, 1, 2 },*/ + { 0x1E4E, 0x00D6, 2 }, + { 0x1E4F, 0x00F6, 2 }, + { 0x1E54, 0x0050, 1 }, + { 0x1E55, 0x0070, 1 }, + { 0x1E5A, 0x0052, 4 }, + { 0x1E5B, 0x0072, 4 }, + { 0x1E62, 0x0053, 4 }, + { 0x1E63, 0x0073, 4 }, + { 0x1E6C, 0x0054, 4 }, + { 0x1E6D, 0x0074, 4 }, + { 0x1E78, 0x00DA, 2 }, /*{ 0x1E78, 0x0168, 1 },*/ /*{ 0x1E78, 0x0055, 1, 2 },*/ + { 0x1E79, 0x00FA, 2 }, /*{ 0x1E79, 0x0169, 1 },*/ /*{ 0x1E79, 0x0075, 1, 2 },*/ + { 0x1E7C, 0x0056, 2 }, + { 0x1E7D, 0x0076, 2 }, + { 0x1E7E, 0x0056, 4 }, + { 0x1E7F, 0x0076, 4 }, + { 0x1E80, 0x0057, 0 }, + { 0x1E81, 0x0077, 0 }, + { 0x1E82, 0x0057, 1 }, + { 0x1E83, 0x0077, 1 }, + { 0x1E88, 0x0057, 4 }, + { 0x1E89, 0x0077, 4 }, + { 0x1E92, 0x005A, 4 }, + { 0x1E93, 0x007A, 4 }, + { 0x1EA0, 0x0041, 4 }, + { 0x1EA1, 0x0061, 4 }, + { 0x1EA2, 0x0041, 3 }, + { 0x1EA3, 0x0061, 3 }, + { 0x1EA4, 0x00C2, 1 }, + { 0x1EA5, 0x00E2, 1 }, + { 0x1EA6, 0x00C2, 0 }, + { 0x1EA7, 0x00E2, 0 }, + { 0x1EA8, 0x00C2, 3 }, + { 0x1EA9, 0x00E2, 3 }, + { 0x1EAA, 0x00C2, 2 }, + { 0x1EAB, 0x00E2, 2 }, + { 0x1EAC, 0x00C2, 4 }, + { 0x1EAD, 0x00E2, 4 }, + { 0x1EAE, 0x0102, 1 }, + { 0x1EAF, 0x0103, 1 }, + { 0x1EB0, 0x0102, 0 }, + { 0x1EB1, 0x0103, 0 }, + { 0x1EB2, 0x0102, 3 }, + { 0x1EB3, 0x0103, 3 }, + { 0x1EB4, 0x0102, 2 }, + { 0x1EB5, 0x0103, 2 }, + { 0x1EB6, 0x0102, 4 }, + { 0x1EB7, 0x0103, 4 }, + { 0x1EB8, 0x0045, 4 }, + { 0x1EB9, 0x0065, 4 }, + { 0x1EBA, 0x0045, 3 }, + { 0x1EBB, 0x0065, 3 }, + { 0x1EBC, 0x0045, 2 }, + { 0x1EBD, 0x0065, 2 }, + { 0x1EBE, 0x00CA, 1 }, + { 0x1EBF, 0x00EA, 1 }, + { 0x1EC0, 0x00CA, 0 }, + { 0x1EC1, 0x00EA, 0 }, + { 0x1EC2, 0x00CA, 3 }, + { 0x1EC3, 0x00EA, 3 }, + { 0x1EC4, 0x00CA, 2 }, + { 0x1EC5, 0x00EA, 2 }, + { 0x1EC6, 0x00CA, 4 }, + { 0x1EC7, 0x00EA, 4 }, + { 0x1EC8, 0x0049, 3 }, + { 0x1EC9, 0x0069, 3 }, + { 0x1ECA, 0x0049, 4 }, + { 0x1ECB, 0x0069, 4 }, + { 0x1ECC, 0x004F, 4 }, + { 0x1ECD, 0x006F, 4 }, + { 0x1ECE, 0x004F, 3 }, + { 0x1ECF, 0x006F, 3 }, + { 0x1ED0, 0x00D4, 1 }, + { 0x1ED1, 0x00F4, 1 }, + { 0x1ED2, 0x00D4, 0 }, + { 0x1ED3, 0x00F4, 0 }, + { 0x1ED4, 0x00D4, 3 }, + { 0x1ED5, 0x00F4, 3 }, + { 0x1ED6, 0x00D4, 2 }, + { 0x1ED7, 0x00F4, 2 }, + { 0x1ED8, 0x00D4, 4 }, + { 0x1ED9, 0x00F4, 4 }, + { 0x1EDA, 0x01A0, 1 }, + { 0x1EDB, 0x01A1, 1 }, + { 0x1EDC, 0x01A0, 0 }, + { 0x1EDD, 0x01A1, 0 }, + { 0x1EDE, 0x01A0, 3 }, + { 0x1EDF, 0x01A1, 3 }, + { 0x1EE0, 0x01A0, 2 }, + { 0x1EE1, 0x01A1, 2 }, + { 0x1EE2, 0x01A0, 4 }, + { 0x1EE3, 0x01A1, 4 }, + { 0x1EE4, 0x0055, 4 }, + { 0x1EE5, 0x0075, 4 }, + { 0x1EE6, 0x0055, 3 }, + { 0x1EE7, 0x0075, 3 }, + { 0x1EE8, 0x01AF, 1 }, + { 0x1EE9, 0x01B0, 1 }, + { 0x1EEA, 0x01AF, 0 }, + { 0x1EEB, 0x01B0, 0 }, + { 0x1EEC, 0x01AF, 3 }, + { 0x1EED, 0x01B0, 3 }, + { 0x1EEE, 0x01AF, 2 }, + { 0x1EEF, 0x01B0, 2 }, + { 0x1EF0, 0x01AF, 4 }, + { 0x1EF1, 0x01B0, 4 }, + { 0x1EF2, 0x0059, 0 }, + { 0x1EF3, 0x0079, 0 }, + { 0x1EF4, 0x0059, 4 }, + { 0x1EF5, 0x0079, 4 }, + { 0x1EF6, 0x0059, 3 }, + { 0x1EF7, 0x0079, 3 }, + { 0x1EF8, 0x0059, 2 }, + { 0x1EF9, 0x0079, 2 }, + { 0x1FED, 0x00A8, 0 }, + { 0x1FEE, 0x00A8, 1 }, +}; + +#endif /* _VIETCOMB_H */ diff --git a/graf2d/win32gdk/gdk/src/iconv/viscii.h b/graf2d/win32gdk/gdk/src/iconv/viscii.h new file mode 100644 index 00000000000..04e68fa8153 --- /dev/null +++ b/graf2d/win32gdk/gdk/src/iconv/viscii.h @@ -0,0 +1,141 @@ +/* + * Copyright (C) 1999-2001 Free Software Foundation, Inc. + * This file is part of the GNU LIBICONV Library. + * + * The GNU LIBICONV Library is free software; you can redistribute it + * and/or modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * The GNU LIBICONV Library is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with the GNU LIBICONV Library; see the file COPYING.LIB. + * If not, write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* + * VISCII1.1-1 + */ + +/* Specification: RFC 1456 */ + +static const unsigned short viscii_2uni_1[32] = { + /* 0x00 */ + 0x0000, 0x0001, 0x1eb2, 0x0003, 0x0004, 0x1eb4, 0x1eaa, 0x0007, + 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, + /* 0x10 */ + 0x0010, 0x0011, 0x0012, 0x0013, 0x1ef6, 0x0015, 0x0016, 0x0017, + 0x0018, 0x1ef8, 0x001a, 0x001b, 0x001c, 0x001d, 0x1ef4, 0x001f, +}; +static const unsigned short viscii_2uni_2[128] = { + /* 0x80 */ + 0x1ea0, 0x1eae, 0x1eb0, 0x1eb6, 0x1ea4, 0x1ea6, 0x1ea8, 0x1eac, + 0x1ebc, 0x1eb8, 0x1ebe, 0x1ec0, 0x1ec2, 0x1ec4, 0x1ec6, 0x1ed0, + /* 0x90 */ + 0x1ed2, 0x1ed4, 0x1ed6, 0x1ed8, 0x1ee2, 0x1eda, 0x1edc, 0x1ede, + 0x1eca, 0x1ece, 0x1ecc, 0x1ec8, 0x1ee6, 0x0168, 0x1ee4, 0x1ef2, + /* 0xa0 */ + 0x00d5, 0x1eaf, 0x1eb1, 0x1eb7, 0x1ea5, 0x1ea7, 0x1ea9, 0x1ead, + 0x1ebd, 0x1eb9, 0x1ebf, 0x1ec1, 0x1ec3, 0x1ec5, 0x1ec7, 0x1ed1, + /* 0xb0 */ + 0x1ed3, 0x1ed5, 0x1ed7, 0x1ee0, 0x01a0, 0x1ed9, 0x1edd, 0x1edf, + 0x1ecb, 0x1ef0, 0x1ee8, 0x1eea, 0x1eec, 0x01a1, 0x1edb, 0x01af, + /* 0xc0 */ + 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x1ea2, 0x0102, 0x1eb3, 0x1eb5, + 0x00c8, 0x00c9, 0x00ca, 0x1eba, 0x00cc, 0x00cd, 0x0128, 0x1ef3, + /* 0xd0 */ + 0x0110, 0x1ee9, 0x00d2, 0x00d3, 0x00d4, 0x1ea1, 0x1ef7, 0x1eeb, + 0x1eed, 0x00d9, 0x00da, 0x1ef9, 0x1ef5, 0x00dd, 0x1ee1, 0x01b0, + /* 0xe0 */ + 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x1ea3, 0x0103, 0x1eef, 0x1eab, + 0x00e8, 0x00e9, 0x00ea, 0x1ebb, 0x00ec, 0x00ed, 0x0129, 0x1ec9, + /* 0xf0 */ + 0x0111, 0x1ef1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x1ecf, 0x1ecd, + 0x1ee5, 0x00f9, 0x00fa, 0x0169, 0x1ee7, 0x00fd, 0x1ee3, 0x1eee, +}; + +static int +viscii_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n) +{ + unsigned char c = *s; + if (c < 0x20) + *pwc = (ucs4_t) viscii_2uni_1[c]; + else if (c < 0x80) + *pwc = (ucs4_t) c; + else + *pwc = (ucs4_t) viscii_2uni_2[c-0x80]; + return 1; +} + +static const unsigned char viscii_page00[64+184] = { + 0xc0, 0xc1, 0xc2, 0xc3, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ + 0xc8, 0xc9, 0xca, 0x00, 0xcc, 0xcd, 0x00, 0x00, /* 0xc8-0xcf */ + 0x00, 0x00, 0xd2, 0xd3, 0xd4, 0xa0, 0x00, 0x00, /* 0xd0-0xd7 */ + 0x00, 0xd9, 0xda, 0x00, 0x00, 0xdd, 0x00, 0x00, /* 0xd8-0xdf */ + 0xe0, 0xe1, 0xe2, 0xe3, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ + 0xe8, 0xe9, 0xea, 0x00, 0xec, 0xed, 0x00, 0x00, /* 0xe8-0xef */ + 0x00, 0x00, 0xf2, 0xf3, 0xf4, 0xf5, 0x00, 0x00, /* 0xf0-0xf7 */ + 0x00, 0xf9, 0xfa, 0x00, 0x00, 0xfd, 0x00, 0x00, /* 0xf8-0xff */ + /* 0x0100 */ + 0x00, 0x00, 0xc5, 0xe5, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ + 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ + 0xce, 0xee, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ + 0x9d, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ + 0xb4, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, /* 0xa8-0xaf */ + 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ +}; +static const unsigned char viscii_page1e[96] = { + 0x80, 0xd5, 0xc4, 0xe4, 0x84, 0xa4, 0x85, 0xa5, /* 0xa0-0xa7 */ + 0x86, 0xa6, 0x06, 0xe7, 0x87, 0xa7, 0x81, 0xa1, /* 0xa8-0xaf */ + 0x82, 0xa2, 0x02, 0xc6, 0x05, 0xc7, 0x83, 0xa3, /* 0xb0-0xb7 */ + 0x89, 0xa9, 0xcb, 0xeb, 0x88, 0xa8, 0x8a, 0xaa, /* 0xb8-0xbf */ + 0x8b, 0xab, 0x8c, 0xac, 0x8d, 0xad, 0x8e, 0xae, /* 0xc0-0xc7 */ + 0x9b, 0xef, 0x98, 0xb8, 0x9a, 0xf7, 0x99, 0xf6, /* 0xc8-0xcf */ + 0x8f, 0xaf, 0x90, 0xb0, 0x91, 0xb1, 0x92, 0xb2, /* 0xd0-0xd7 */ + 0x93, 0xb5, 0x95, 0xbe, 0x96, 0xb6, 0x97, 0xb7, /* 0xd8-0xdf */ + 0xb3, 0xde, 0x94, 0xfe, 0x9e, 0xf8, 0x9c, 0xfc, /* 0xe0-0xe7 */ + 0xba, 0xd1, 0xbb, 0xd7, 0xbc, 0xd8, 0xff, 0xe6, /* 0xe8-0xef */ + 0xb9, 0xf1, 0x9f, 0xcf, 0x1e, 0xdc, 0x14, 0xd6, /* 0xf0-0xf7 */ + 0x19, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ +}; + +static int +viscii_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n) +{ + unsigned char c = 0; + if (wc < 0x0080 && (wc >= 0x0020 || (0x42100064 & (1 << wc)) == 0)) { + *r = wc; + return 1; + } + else if (wc >= 0x00c0 && wc < 0x01b8) + c = viscii_page00[wc-0x00c0]; + else if (wc >= 0x1ea0 && wc < 0x1f00) + c = viscii_page1e[wc-0x1ea0]; + if (c != 0) { + *r = c; + return 1; + } + return RET_ILUNI; +} -- GitLab